From d7d0cab887474b5e9c8545e016279330b4e1eaac Mon Sep 17 00:00:00 2001 From: arjun Date: Mon, 20 Jan 2025 16:38:41 +0530 Subject: [PATCH] fc --- .DS_Store | Bin 0 -> 6148 bytes .eslintrc | 32 + assets/backend/css/modal.css | 150 + assets/backend/css/modal.min.css | 2 + assets/backend/img/ai-copilot.png | Bin 0 -> 5268 bytes assets/backend/img/carousel.jpg | Bin 0 -> 18290 bytes assets/backend/img/icon-18x18.png | Bin 0 -> 16896 bytes assets/backend/img/icon-256x256.jpg | Bin 0 -> 25781 bytes assets/backend/img/icon-dark-18x18.png | Bin 0 -> 15181 bytes assets/backend/img/icon.png | Bin 0 -> 16896 bytes assets/backend/img/icond.png | Bin 0 -> 15181 bytes assets/backend/img/layouts/acenter.png | Bin 0 -> 149 bytes assets/backend/img/layouts/aleft.png | Bin 0 -> 169 bytes assets/backend/img/layouts/aright.png | Bin 0 -> 167 bytes assets/backend/img/layouts/collapse.png | Bin 0 -> 138 bytes assets/backend/img/layouts/embed.png | Bin 0 -> 149 bytes assets/backend/img/layouts/fleft.png | Bin 0 -> 162 bytes assets/backend/img/layouts/fright.png | Bin 0 -> 161 bytes assets/backend/img/layouts/inherit.png | Bin 0 -> 139 bytes assets/backend/img/layouts/offcanvas.png | Bin 0 -> 194 bytes assets/backend/img/layouts/panels.png | Bin 0 -> 169 bytes assets/backend/img/layouts/vertical.png | Bin 0 -> 186 bytes assets/backend/img/login.jpg | Bin 0 -> 25711 bytes assets/backend/img/logo.jpg | Bin 0 -> 21033 bytes assets/backend/img/offset.png | Bin 0 -> 257 bytes assets/backend/img/placeholder.jpg | Bin 0 -> 1407 bytes assets/backend/img/quadlayers.jpg | Bin 0 -> 26571 bytes assets/backend/img/screenshot.png | Bin 0 -> 131265 bytes assets/backend/img/social.jpg | Bin 0 -> 25962 bytes assets/backend/img/tabs.jpg | Bin 0 -> 18547 bytes assets/backend/img/wp-whatsapp-chat.jpeg | Bin 0 -> 12568 bytes assets/frontend/css/quadmenu-locations.css | 1148 +++ assets/frontend/css/quadmenu-normalize.css | 266 + .../frontend/css/quadmenu-normalize.min.css | 2 + assets/frontend/css/quadmenu-widgets.css | 455 + .../icons/eleganticons/fonts/ElegantIcons.eot | Bin 0 -> 59572 bytes .../icons/eleganticons/fonts/ElegantIcons.svg | 1834 ++++ .../icons/eleganticons/fonts/ElegantIcons.ttf | Bin 0 -> 59388 bytes .../eleganticons/fonts/ElegantIcons.woff | Bin 0 -> 63664 bytes assets/frontend/icons/eleganticons/style.css | 1159 +++ .../frontend/icons/eleganticons/style.min.css | 2 + .../icons/elusive/css/elusive-icons.css | 1082 +++ .../icons/elusive/css/elusive-icons.min.css | 5 + .../elusive/fonts/elusiveicons-webfont.eot | Bin 0 -> 79748 bytes .../elusive/fonts/elusiveicons-webfont.svg | 932 ++ .../elusive/fonts/elusiveicons-webfont.ttf | Bin 0 -> 79556 bytes .../elusive/fonts/elusiveicons-webfont.woff | Bin 0 -> 48812 bytes .../icons/fontawesome/css/font-awesome.css | 2086 +++++ .../fontawesome/css/font-awesome.min.css | 5 + .../icons/fontawesome/fonts/FontAwesome.otf | Bin 0 -> 109688 bytes .../fontawesome/fonts/fontawesome-webfont.eot | Bin 0 -> 70807 bytes .../fontawesome/fonts/fontawesome-webfont.svg | 656 ++ .../fontawesome/fonts/fontawesome-webfont.ttf | Bin 0 -> 142072 bytes .../fonts/fontawesome-webfont.woff | Bin 0 -> 83588 bytes .../fonts/fontawesome-webfont.woff2 | Bin 0 -> 66624 bytes .../frontend/icons/fontawesome5/css/all.css | 3809 ++++++++ .../icons/fontawesome5/css/all.min.css | 5 + .../fontawesome5/webfonts/fa-brands-400.eot | Bin 0 -> 118560 bytes .../fontawesome5/webfonts/fa-brands-400.svg | 1154 +++ .../fontawesome5/webfonts/fa-brands-400.ttf | Bin 0 -> 118324 bytes .../fontawesome5/webfonts/fa-brands-400.woff | Bin 0 -> 76344 bytes .../fontawesome5/webfonts/fa-brands-400.woff2 | Bin 0 -> 65316 bytes .../fontawesome5/webfonts/fa-regular-400.eot | Bin 0 -> 40576 bytes .../fontawesome5/webfonts/fa-regular-400.svg | 467 + .../fontawesome5/webfonts/fa-regular-400.ttf | Bin 0 -> 40348 bytes .../fontawesome5/webfonts/fa-regular-400.woff | Bin 0 -> 18168 bytes .../webfonts/fa-regular-400.woff2 | Bin 0 -> 14868 bytes .../fontawesome5/webfonts/fa-solid-900.eot | Bin 0 -> 180720 bytes .../fontawesome5/webfonts/fa-solid-900.svg | 2444 +++++ .../fontawesome5/webfonts/fa-solid-900.ttf | Bin 0 -> 180500 bytes .../fontawesome5/webfonts/fa-solid-900.woff | Bin 0 -> 86876 bytes .../fontawesome5/webfonts/fa-solid-900.woff2 | Bin 0 -> 67400 bytes .../frontend/icons/fontawesome6/css/all.css | 7937 +++++++++++++++++ .../icons/fontawesome6/css/all.min.css | 6 + .../frontend/icons/fontawesome6/css/test.json | 1 + .../fontawesome6/webfonts/fa-brands-400.ttf | Bin 0 -> 186112 bytes .../fontawesome6/webfonts/fa-brands-400.woff2 | Bin 0 -> 107460 bytes .../fontawesome6/webfonts/fa-regular-400.ttf | Bin 0 -> 62048 bytes .../webfonts/fa-regular-400.woff2 | Bin 0 -> 25096 bytes .../fontawesome6/webfonts/fa-solid-900.ttf | Bin 0 -> 397728 bytes .../fontawesome6/webfonts/fa-solid-900.woff2 | Bin 0 -> 150472 bytes .../webfonts/fa-v4compatibility.ttf | Bin 0 -> 10136 bytes .../webfonts/fa-v4compatibility.woff2 | Bin 0 -> 4584 bytes .../icons/foundation/foundation-icons.css | 594 ++ .../icons/foundation/foundation-icons.eot | Bin 0 -> 54568 bytes .../icons/foundation/foundation-icons.min.css | 2 + .../icons/foundation/foundation-icons.svg | 971 ++ .../icons/foundation/foundation-icons.ttf | Bin 0 -> 56976 bytes .../icons/foundation/foundation-icons.woff | Bin 0 -> 32020 bytes .../frontend/icons/themify/fonts/themify.eot | Bin 0 -> 78748 bytes .../frontend/icons/themify/fonts/themify.svg | 364 + .../frontend/icons/themify/fonts/themify.ttf | Bin 0 -> 78584 bytes .../frontend/icons/themify/fonts/themify.woff | Bin 0 -> 56108 bytes .../frontend/icons/themify/themify-icons.css | 1081 +++ .../icons/themify/themify-icons.min.css | 2 + assets/frontend/images/logo.png | Bin 0 -> 58690 bytes assets/frontend/images/logodark.png | Bin 0 -> 58695 bytes assets/frontend/images/logowhite.png | Bin 0 -> 58788 bytes assets/frontend/less/mixins.less | 198 + assets/frontend/less/quadmenu-locations.less | 1145 +++ assets/frontend/less/quadmenu-widgets.less | 254 + assets/frontend/less/themes/general.less | 133 + assets/frontend/less/themes/grid.less | 755 ++ assets/frontend/less/themes/widgets.less | 462 + .../frontend/owlcarousel/owl.carousel.min.css | 170 + .../frontend/owlcarousel/owl.carousel.min.js | 7 + .../perfect-scrollbar.jquery.min.js | 2 + .../pscrollbar/perfect-scrollbar.min.css | 2 + build/backend/955f1674307d41309e79.png | Bin 0 -> 257 bytes build/backend/index.asset.php | 1 + build/backend/index.js | 1 + build/backend/style.css | 1 + build/compiler/index.asset.php | 1 + build/compiler/index.js | 2 + build/compiler/index.js.LICENSE.txt | 11 + build/frontend/index.asset.php | 1 + build/frontend/index.js | 1 + build/frontend/style.css | 1 + compatibility/old.php | 23 + index.php | 3 + .../automattic/jetpack-assets/CHANGELOG.md | 563 ++ .../automattic/jetpack-assets/LICENSE.txt | 357 + .../automattic/jetpack-assets/README.md | 37 + .../automattic/jetpack-assets/SECURITY.md | 47 + .../automattic/jetpack-assets/actions.php | 19 + .../build/i18n-loader.asset.php | 1 + .../jetpack-assets/build/i18n-loader.js | 1 + .../jetpack-assets/src/class-assets.php | 755 ++ .../jetpack-assets/src/class-semver.php | 121 + .../jetpack-assets/src/js/i18n-loader.js | 76 + .../automattic/jetpack-constants/CHANGELOG.md | 209 + .../automattic/jetpack-constants/LICENSE.txt | 357 + .../automattic/jetpack-constants/README.md | 67 + .../automattic/jetpack-constants/SECURITY.md | 47 + .../jetpack-constants/src/class-constants.php | 124 + jetpack_vendor/i18n-map.php | 36 + .../wp-dashboard-widget-news/README | 19 + .../wp-dashboard-widget-news/README.md | 2 + .../wp-dashboard-widget-news/src/Load.php | 185 + .../wp-notice-plugin-promote/src/Load.php | 401 + .../src/PluginByFile.php | 33 + .../src/PluginBySlug.php | 48 + .../src/PluginBySlugV2.php | 67 + .../src/Traits/PluginActions.php | 68 + .../src/Traits/PluginActionsLinks.php | 85 + .../src/Traits/PluginDataByFile.php | 193 + .../src/templates/notice.php | 52 + .../wp-notice-plugin-required/README.md | 2 + .../wp-notice-plugin-required/src/Load.php | 118 + .../wp-notice-plugin-required/src/Plugin.php | 132 + .../wp-plugin-install-tab/README.md | 2 + .../wp-plugin-install-tab/src/Load.php | 73 + .../quadlayers/wp-plugin-suggestions/README | 19 + .../wp-plugin-suggestions/README.md | 2 + .../wp-plugin-suggestions/assets/img/logo.jpg | Bin 0 -> 26571 bytes .../wp-plugin-suggestions/src/Load.php | 58 + .../wp-plugin-suggestions/src/Page.php | 155 + .../wp-plugin-suggestions/src/Table.php | 198 + .../src/view/suggestions.php | 93 + .../quadlayers/wp-plugin-table-links/LICENSE | 674 ++ .../quadlayers/wp-plugin-table-links/README | 19 + .../wp-plugin-table-links/README.md | 1 + .../wp-plugin-table-links/src/Load.php | 73 + lib/backend/class-ajax.php | 588 ++ lib/backend/class-settings.php | 545 ++ lib/backend/walker/class-nav-menu-columns.php | 344 + .../walker/class-nav-menu-defaults.php | 102 + lib/backend/walker/class-nav-menu-mega.php | 51 + lib/backend/walker/class-nav-menu-widgets.php | 462 + lib/class-activation.php | 84 + lib/class-admin.php | 120 + lib/class-compiler.php | 278 + lib/class-configuration.php | 967 ++ lib/class-functions.php | 91 + lib/class-icons.php | 47 + lib/class-import.php | 47 + lib/class-locations.php | 87 + lib/class-options.php | 2316 +++++ lib/class-panel.php | 85 + lib/class-plugin.php | 588 ++ lib/class-redux.php | 229 + lib/class-themes.php | 211 + lib/class-widget.php | 152 + lib/frontend/class-frontend.php | 141 + lib/frontend/class-integration.php | 292 + lib/frontend/class-items.php | 71 + .../walker/class-quadmenu-item-cart.php | 136 + .../walker/class-quadmenu-item-column.php | 64 + .../walker/class-quadmenu-item-default.php | 43 + .../walker/class-quadmenu-item-icon.php | 31 + .../walker/class-quadmenu-item-mega.php | 69 + .../walker/class-quadmenu-item-post-type.php | 82 + .../walker/class-quadmenu-item-search.php | 85 + .../walker/class-quadmenu-item-widget.php | 94 + lib/frontend/walker/class-quadmenu-item.php | 489 + lib/frontend/walker/class-quadmenu-walker.php | 155 + lib/integrations/beaver/class-module.php | 312 + lib/integrations/beaver/includes/frontend.php | 33 + lib/integrations/beaver/module.php | 298 + lib/integrations/class-beaver.php | 107 + lib/integrations/class-divi.php | 34 + lib/integrations/class-elementor.php | 96 + lib/integrations/class-polylang.php | 66 + lib/integrations/class-vc.php | 99 + lib/integrations/class-woocommerce.php | 48 + lib/integrations/divi/class-module.php | 65 + lib/integrations/divi/loader.php | 14 + .../divi/modules/QuadMenu/QuadMenu.jsx | 72 + .../divi/modules/QuadMenu/QuadMenu.php | 108 + .../divi/scripts/builder-bundle.min.js | 1 + .../divi/scripts/frontend-bundle.min.js | 1 + lib/integrations/divi/scripts/frontend.js | 3 + lib/integrations/elementor/class-module.php | 364 + lib/panel/class-options.php | 50 + lib/panel/class-premium.php | 42 + lib/panel/class-system.php | 549 ++ lib/panel/class-welcome.php | 549 ++ lib/panel/header.php | 37 + lib/panel/pages/parts/header.php | 57 + lib/panel/pages/premium.php | 109 + lib/panel/pages/suggestions.php | 22 + lib/panel/pages/system.php | 6 + lib/panel/pages/welcome.php | 51 + quadmenu.php | 76 + readme.txt | 856 ++ redux/.DS_Store | Bin 0 -> 6148 bytes .../assets/css/color-picker/color-picker.css | 1 + .../css/color-picker/color-picker.css.map | 7 + .../assets/css/color-picker/color-picker.scss | 107 + .../css/import_export/import_export.css | 1 + .../css/import_export/import_export.css.map | 7 + .../css/import_export/import_export.scss | 11 + redux/ReduxCore/assets/css/media/media.css | 1 + .../ReduxCore/assets/css/media/media.css.map | 7 + redux/ReduxCore/assets/css/media/media.scss | 61 + redux/ReduxCore/assets/css/redux-admin.css | 1 + .../ReduxCore/assets/css/redux-admin.css.map | 7 + redux/ReduxCore/assets/css/redux-admin.scss | 1530 ++++ redux/ReduxCore/assets/css/redux-fields.css | 1 + redux/ReduxCore/assets/css/redux-vendor.css | 1 + redux/ReduxCore/assets/css/rtl.css | 1 + redux/ReduxCore/assets/css/rtl.css.map | 7 + redux/ReduxCore/assets/css/rtl.scss | 125 + .../vendor/elusive-icons/elusive-icons.css | 4 + .../elusive-icons/elusive-icons.css.map | 7 + .../vendor/elusive-icons/elusive-icons.scss | 1415 +++ .../fonts/elusiveicons-webfont.eot | Bin 0 -> 80440 bytes .../fonts/elusiveicons-webfont.svg | 934 ++ .../fonts/elusiveicons-webfont.ttf | Bin 0 -> 80248 bytes .../fonts/elusiveicons-webfont.woff | Bin 0 -> 49068 bytes .../vendor/elusive-icons/scss/_animated.scss | 34 + .../elusive-icons/scss/_bordered-pulled.scss | 16 + .../css/vendor/elusive-icons/scss/_core.scss | 13 + .../elusive-icons/scss/_fixed-width.scss | 6 + .../css/vendor/elusive-icons/scss/_icons.scss | 615 ++ .../vendor/elusive-icons/scss/_larger.scss | 13 + .../css/vendor/elusive-icons/scss/_list.scss | 19 + .../vendor/elusive-icons/scss/_mixins.scss | 27 + .../css/vendor/elusive-icons/scss/_path.scss | 14 + .../elusive-icons/scss/_rotated-flipped.scss | 20 + .../vendor/elusive-icons/scss/_stacked.scss | 20 + .../vendor/elusive-icons/scss/_variables.scss | 318 + .../elusive-icons/scss/elusive-icons.css | 4 + .../elusive-icons/scss/elusive-icons.css.map | 7 + .../elusive-icons/scss/elusive-icons.scss | 17 + .../images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 0 -> 180 bytes .../images/ui-bg_glass_55_fbf9ee_1x400.png | Bin 0 -> 120 bytes .../images/ui-bg_glass_65_ffffff_1x400.png | Bin 0 -> 105 bytes .../images/ui-bg_glass_75_dadada_1x400.png | Bin 0 -> 111 bytes .../images/ui-bg_glass_75_e6e6e6_1x400.png | Bin 0 -> 110 bytes .../images/ui-bg_glass_75_ffffff_1x400.png | Bin 0 -> 107 bytes .../ui-bg_highlight-soft_75_cccccc_1x100.png | Bin 0 -> 101 bytes .../ui-bg_inset-soft_95_fef1ec_1x100.png | Bin 0 -> 123 bytes .../images/ui-icons_222222_256x240.png | Bin 0 -> 4369 bytes .../images/ui-icons_2e83ff_256x240.png | Bin 0 -> 4369 bytes .../images/ui-icons_454545_256x240.png | Bin 0 -> 4369 bytes .../images/ui-icons_888888_256x240.png | Bin 0 -> 4369 bytes .../images/ui-icons_cd0a0a_256x240.png | Bin 0 -> 4369 bytes .../images/ui-icons_f6cf3b_256x240.png | Bin 0 -> 8884 bytes .../images/ui-icons_ffffff_256x240.png | Bin 0 -> 4369 bytes .../jquery-ui-1.10.0.custom.css | 9 + .../jquery-ui-1.10.0.custom.css.map | 7 + .../jquery-ui-1.10.0.custom.scss | 799 ++ .../assets/css/vendor/qtip/jquery.qtip.css | 1 + .../css/vendor/qtip/jquery.qtip.css.map | 7 + .../css/vendor/qtip/jquery.qtip.min.css | 3 + .../assets/css/vendor/qtip/jquery.qtip.scss | 617 ++ .../css/vendor/spectrum/redux-spectrum.css | 1 + .../vendor/spectrum/redux-spectrum.css.map | 7 + .../css/vendor/spectrum/redux-spectrum.scss | 566 ++ redux/ReduxCore/assets/img/1c.png | Bin 0 -> 138 bytes redux/ReduxCore/assets/img/1col.png | Bin 0 -> 2895 bytes .../ReduxCore/assets/img/2-col-portfolio.png | Bin 0 -> 1045 bytes redux/ReduxCore/assets/img/2cl.png | Bin 0 -> 2984 bytes redux/ReduxCore/assets/img/2cr.png | Bin 0 -> 2985 bytes .../ReduxCore/assets/img/3-col-portfolio.png | Bin 0 -> 1025 bytes redux/ReduxCore/assets/img/3cl.png | Bin 0 -> 3156 bytes redux/ReduxCore/assets/img/3cm.png | Bin 0 -> 3036 bytes redux/ReduxCore/assets/img/3cr.png | Bin 0 -> 3050 bytes .../ReduxCore/assets/img/4-col-portfolio.png | Bin 0 -> 1033 bytes redux/ReduxCore/assets/img/ajax.gif | Bin 0 -> 1392 bytes redux/ReduxCore/assets/img/menu_icon.png | Bin 0 -> 1447 bytes redux/ReduxCore/assets/img/toggle_tabs.png | Bin 0 -> 358 bytes redux/ReduxCore/assets/js/media/media.js | 223 + redux/ReduxCore/assets/js/media/media.min.js | 1 + redux/ReduxCore/assets/js/redux.js | 1779 ++++ redux/ReduxCore/assets/js/redux.min.js | 1 + redux/ReduxCore/assets/js/vendor.min.js | 1 + redux/ReduxCore/assets/js/vendor/cookie.js | 95 + .../assets/js/vendor/jquery.alphanum.js | 786 ++ .../assets/js/vendor/jquery.serializeForm.js | 60 + .../assets/js/vendor/jquery.typewatch.js | 94 + redux/ReduxCore/assets/js/vendor/jsonview.js | 265 + .../assets/js/vendor/jsonview.min.js | 16 + redux/ReduxCore/assets/js/vendor/lte-ie7.js | 311 + .../assets/js/vendor/qtip/jquery.qtip.js | 3451 +++++++ .../assets/js/vendor/qtip/jquery.qtip.min.js | 5 + .../js/vendor/redux.select2.sortable.js | 152 + .../js/vendor/redux.select2.sortable.min.js | 1 + .../js/vendor/spectrum/redux-spectrum.js | 2088 +++++ .../js/vendor/spectrum/redux-spectrum.min.js | 1 + redux/ReduxCore/core/dashboard.php | 37 + redux/ReduxCore/core/enqueue.php | 522 ++ redux/ReduxCore/core/newsflash.php | 126 + redux/ReduxCore/core/panel.php | 332 + redux/ReduxCore/core/required.php | 25 + redux/ReduxCore/framework.php | 4263 +++++++++ redux/ReduxCore/inc/browser.php | 1282 +++ redux/ReduxCore/inc/class.p.php | 303 + .../inc/class.redux_admin_notices.php | 199 + redux/ReduxCore/inc/class.redux_api.php | 668 ++ redux/ReduxCore/inc/class.redux_cdn.php | 164 + .../ReduxCore/inc/class.redux_filesystem.php | 307 + redux/ReduxCore/inc/class.redux_functions.php | 269 + redux/ReduxCore/inc/class.redux_helpers.php | 776 ++ redux/ReduxCore/inc/class.redux_instances.php | 177 + .../ReduxCore/inc/class.thirdparty.fixes.php | 16 + redux/ReduxCore/inc/extensions/README.txt | 1 + .../customizer/extension_customizer.css | 1 + .../customizer/extension_customizer.css.map | 7 + .../customizer/extension_customizer.js | 396 + .../customizer/extension_customizer.min.js | 1 + .../customizer/extension_customizer.php | 834 ++ .../customizer/extension_customizer.scss | 119 + .../customizer/inc/customizer_control.php | 50 + .../customizer/inc/customizer_devs.php | 43 + .../customizer/inc/customizer_fields.php | 53 + .../customizer/inc/customizer_panel.php | 157 + .../customizer/inc/customizer_section.php | 150 + .../import_export/extension_import_export.php | 210 + .../import_export/field_import_export.css | 1 + .../import_export/field_import_export.js | 198 + .../import_export/field_import_export.min.js | 1 + .../import_export/field_import_export.php | 194 + .../import_export/field_import_export.scss | 13 + .../extension_options_object.php | 102 + .../options_object/field_options_object.css | 1 + .../options_object/field_options_object.js | 44 + .../field_options_object.min.js | 1 + .../options_object/field_options_object.php | 164 + .../options_object/field_options_object.scss | 7 + .../fields/ace_editor/field_ace_editor.css | 1 + .../ace_editor/field_ace_editor.css.map | 7 + .../inc/fields/ace_editor/field_ace_editor.js | 58 + .../fields/ace_editor/field_ace_editor.min.js | 1 + .../fields/ace_editor/field_ace_editor.php | 134 + .../fields/ace_editor/field_ace_editor.scss | 17 + .../fields/background/field_background.css | 1 + .../background/field_background.css.map | 7 + .../inc/fields/background/field_background.js | 324 + .../fields/background/field_background.min.js | 1 + .../fields/background/field_background.php | 430 + .../fields/background/field_background.scss | 59 + .../inc/fields/border/field_border.css | 1 + .../inc/fields/border/field_border.css.map | 7 + .../inc/fields/border/field_border.js | 131 + .../inc/fields/border/field_border.min.js | 1 + .../inc/fields/border/field_border.php | 327 + .../inc/fields/border/field_border.scss | 47 + .../inc/fields/button_set/field_button_set.js | 93 + .../fields/button_set/field_button_set.min.js | 1 + .../fields/button_set/field_button_set.php | 178 + .../inc/fields/checkbox/field_checkbox.css | 1 + .../fields/checkbox/field_checkbox.css.map | 7 + .../inc/fields/checkbox/field_checkbox.js | 55 + .../inc/fields/checkbox/field_checkbox.min.js | 1 + .../inc/fields/checkbox/field_checkbox.php | 163 + .../inc/fields/checkbox/field_checkbox.scss | 13 + .../ReduxCore/inc/fields/color/field_color.js | 175 + .../inc/fields/color/field_color.min.js | 1 + .../inc/fields/color/field_color.php | 126 + .../color_gradient/field_color_gradient.css | 1 + .../field_color_gradient.css.map | 7 + .../color_gradient/field_color_gradient.js | 134 + .../field_color_gradient.min.js | 1 + .../color_gradient/field_color_gradient.php | 128 + .../color_gradient/field_color_gradient.scss | 17 + .../fields/color_rgba/field_color_rgba.css | 1 + .../color_rgba/field_color_rgba.css.map | 7 + .../inc/fields/color_rgba/field_color_rgba.js | 217 + .../fields/color_rgba/field_color_rgba.min.js | 1 + .../fields/color_rgba/field_color_rgba.php | 295 + .../fields/color_rgba/field_color_rgba.scss | 61 + .../ReduxCore/inc/fields/date/field_date.css | 1 + .../inc/fields/date/field_date.css.map | 7 + redux/ReduxCore/inc/fields/date/field_date.js | 60 + .../inc/fields/date/field_date.min.js | 1 + .../ReduxCore/inc/fields/date/field_date.php | 95 + .../ReduxCore/inc/fields/date/field_date.scss | 8 + .../fields/dimensions/field_dimensions.css | 1 + .../dimensions/field_dimensions.css.map | 7 + .../inc/fields/dimensions/field_dimensions.js | 76 + .../fields/dimensions/field_dimensions.min.js | 1 + .../fields/dimensions/field_dimensions.php | 305 + .../fields/dimensions/field_dimensions.scss | 34 + .../inc/fields/divide/field_divide.css | 1 + .../inc/fields/divide/field_divide.css.map | 7 + .../inc/fields/divide/field_divide.php | 85 + .../inc/fields/divide/field_divide.scss | 51 + .../inc/fields/editor/field_editor.css | 1 + .../inc/fields/editor/field_editor.css.map | 7 + .../inc/fields/editor/field_editor.js | 44 + .../inc/fields/editor/field_editor.min.js | 1 + .../inc/fields/editor/field_editor.php | 115 + .../inc/fields/editor/field_editor.scss | 51 + .../inc/fields/gallery/field_gallery.js | 137 + .../inc/fields/gallery/field_gallery.min.js | 1 + .../inc/fields/gallery/field_gallery.php | 105 + .../image_select/field_image_select.css | 1 + .../image_select/field_image_select.css.map | 7 + .../fields/image_select/field_image_select.js | 119 + .../image_select/field_image_select.min.js | 1 + .../image_select/field_image_select.php | 279 + .../image_select/field_image_select.scss | 63 + .../ReduxCore/inc/fields/info/field_info.css | 1 + .../inc/fields/info/field_info.css.map | 7 + .../ReduxCore/inc/fields/info/field_info.php | 170 + .../ReduxCore/inc/fields/info/field_info.scss | 160 + .../fields/link_color/field_link_color.css | 1 + .../link_color/field_link_color.css.map | 7 + .../inc/fields/link_color/field_link_color.js | 111 + .../fields/link_color/field_link_color.min.js | 1 + .../fields/link_color/field_link_color.php | 235 + .../fields/link_color/field_link_color.scss | 17 + .../inc/fields/media/field_media.css | 1 + .../inc/fields/media/field_media.css.map | 7 + .../inc/fields/media/field_media.less | 53 + .../inc/fields/media/field_media.php | 250 + .../inc/fields/media/field_media.scss | 62 + .../fields/multi_text/field_multi_text.css | 1 + .../multi_text/field_multi_text.css.map | 7 + .../inc/fields/multi_text/field_multi_text.js | 84 + .../fields/multi_text/field_multi_text.min.js | 1 + .../fields/multi_text/field_multi_text.php | 127 + .../fields/multi_text/field_multi_text.scss | 55 + .../inc/fields/palette/field_palette.css | 1 + .../inc/fields/palette/field_palette.css.map | 7 + .../inc/fields/palette/field_palette.js | 53 + .../inc/fields/palette/field_palette.min.js | 1 + .../inc/fields/palette/field_palette.php | 110 + .../inc/fields/palette/field_palette.scss | 56 + .../inc/fields/password/field_password.php | 106 + .../inc/fields/radio/field_radio.php | 57 + redux/ReduxCore/inc/fields/raw/field_raw.php | 53 + redux/ReduxCore/inc/fields/raw/parsedown.php | 1548 ++++ .../inc/fields/section/field_section.css | 1 + .../inc/fields/section/field_section.css.map | 7 + .../inc/fields/section/field_section.php | 134 + .../inc/fields/section/field_section.scss | 25 + .../inc/fields/select/elusive-icons.php | 312 + .../inc/fields/select/field_select.css | 1 + .../inc/fields/select/field_select.css.map | 7 + .../inc/fields/select/field_select.js | 87 + .../inc/fields/select/field_select.min.js | 1 + .../inc/fields/select/field_select.php | 183 + .../inc/fields/select/field_select.scss | 10 + .../select_image/field_select_image.css | 1 + .../select_image/field_select_image.css.map | 7 + .../fields/select_image/field_select_image.js | 72 + .../select_image/field_select_image.min.js | 1 + .../select_image/field_select_image.php | 166 + .../select_image/field_select_image.scss | 20 + .../inc/fields/slider/field_slider.css | 1 + .../inc/fields/slider/field_slider.css.map | 7 + .../inc/fields/slider/field_slider.js | 269 + .../inc/fields/slider/field_slider.min.js | 1 + .../inc/fields/slider/field_slider.php | 418 + .../inc/fields/slider/field_slider.scss | 82 + .../nouislider/redux.jquery.nouislider.css | 172 + .../nouislider/redux.jquery.nouislider.js | 1420 +++ .../nouislider/redux.jquery.nouislider.min.js | 20 + .../inc/fields/slides/field_slides.css | 1 + .../inc/fields/slides/field_slides.css.map | 7 + .../inc/fields/slides/field_slides.js | 150 + .../inc/fields/slides/field_slides.min.js | 1 + .../inc/fields/slides/field_slides.php | 270 + .../inc/fields/slides/field_slides.scss | 92 + .../inc/fields/sortable/field_sortable.css | 1 + .../fields/sortable/field_sortable.css.map | 7 + .../inc/fields/sortable/field_sortable.js | 92 + .../inc/fields/sortable/field_sortable.min.js | 1 + .../inc/fields/sortable/field_sortable.php | 164 + .../inc/fields/sortable/field_sortable.scss | 73 + .../inc/fields/sorter/field_sorter.css | 1 + .../inc/fields/sorter/field_sorter.css.map | 7 + .../inc/fields/sorter/field_sorter.js | 151 + .../inc/fields/sorter/field_sorter.min.js | 1 + .../inc/fields/sorter/field_sorter.php | 225 + .../inc/fields/sorter/field_sorter.scss | 63 + .../inc/fields/spacing/field_spacing.css | 1 + .../inc/fields/spacing/field_spacing.css.map | 7 + .../inc/fields/spacing/field_spacing.js | 86 + .../inc/fields/spacing/field_spacing.min.js | 1 + .../inc/fields/spacing/field_spacing.php | 385 + .../inc/fields/spacing/field_spacing.scss | 33 + .../inc/fields/spinner/arrow_left.png | Bin 0 -> 150 bytes .../inc/fields/spinner/arrow_right.png | Bin 0 -> 154 bytes .../inc/fields/spinner/field_spinner.css | 1 + .../inc/fields/spinner/field_spinner.css.map | 7 + .../inc/fields/spinner/field_spinner.js | 129 + .../inc/fields/spinner/field_spinner.min.js | 1 + .../inc/fields/spinner/field_spinner.php | 187 + .../inc/fields/spinner/field_spinner.scss | 101 + .../fields/spinner/vendor/spinner_custom.js | 372 + .../spinner/vendor/spinner_custom.min.js | 1 + .../inc/fields/switch/field_switch.css | 1 + .../inc/fields/switch/field_switch.css.map | 7 + .../inc/fields/switch/field_switch.js | 91 + .../inc/fields/switch/field_switch.min.js | 1 + .../inc/fields/switch/field_switch.php | 83 + .../inc/fields/switch/field_switch.scss | 68 + .../inc/fields/switch/slider-control.png | Bin 0 -> 1690 bytes redux/ReduxCore/inc/fields/switch/switch.gif | Bin 0 -> 1233 bytes .../ReduxCore/inc/fields/text/field_text.css | 1 + .../inc/fields/text/field_text.css.map | 7 + .../ReduxCore/inc/fields/text/field_text.php | 97 + .../ReduxCore/inc/fields/text/field_text.scss | 44 + .../inc/fields/textarea/field_textarea.php | 79 + .../fields/typography/field_typography.css | 1 + .../typography/field_typography.css.map | 7 + .../inc/fields/typography/field_typography.js | 667 ++ .../fields/typography/field_typography.json | 1093 +++ .../fields/typography/field_typography.min.js | 1 + .../fields/typography/field_typography.php | 1120 +++ .../fields/typography/field_typography.scss | 247 + .../typography/field_typography_json.js | 669 ++ .../typography/field_typography_json.min.js | 1 + .../inc/fields/typography/googlefonts.php | 1 + redux/ReduxCore/inc/lib.redux_instances.php | 34 + .../inc/themecheck/checks/embedded.php | 60 + .../inc/themecheck/checks/full_package.php | 57 + .../ReduxCore/inc/themecheck/checks/index.php | 2 + .../inc/themecheck/class.redux_themecheck.php | 227 + redux/ReduxCore/inc/themecheck/css/admin.css | 9 + redux/ReduxCore/inc/themecheck/index.php | 2 + redux/ReduxCore/inc/themecheck/js/admin.js | 14 + redux/ReduxCore/inc/themecheck/lang/index.php | 2 + .../inc/themecheck/lang/themeforest-check.pot | 27 + redux/ReduxCore/inc/tracking.php | 512 ++ .../inc/validation/color/validation_color.php | 70 + .../color_rgba/validation_color_rgba.php | 62 + .../colorrgba/validation_colorrgba.php | 81 + .../validation_comma_numeric.php | 39 + .../inc/validation/css/validation_css.php | 47 + .../inc/validation/date/validation_date.php | 53 + .../inc/validation/email/validation_email.php | 37 + .../validation_email_not_empty.php | 37 + .../inc/validation/html/validation_html.php | 33 + .../html_custom/validation_html_custom.php | 34 + .../inc/validation/js/validation_js.php | 33 + .../validation/no_html/validation_no_html.php | 39 + .../validation_no_special_chars.php | 41 + .../not_empty/validation_not_empty.php | 41 + .../validation/numeric/validation_numeric.php | 42 + .../validation_numeric_not_empty.php | 36 + .../preg_replace/validation_preg_replace.php | 32 + .../str_replace/validation_str_replace.php | 33 + .../unique_slug/validation_unique_slug.php | 69 + .../inc/validation/url/validation_url.php | 42 + .../inc/welcome/css/redux-welcome.css | 1 + .../inc/welcome/css/redux-welcome.scss | 696 ++ .../inc/welcome/js/jquery.easing.min.js | 44 + .../inc/welcome/js/redux-welcome-admin.js | 294 + redux/ReduxCore/inc/welcome/views/about.php | 79 + .../ReduxCore/inc/welcome/views/changelog.php | 23 + redux/ReduxCore/inc/welcome/views/credits.php | 22 + .../inc/welcome/views/extensions.php | 152 + .../inc/welcome/views/status_report.php | 838 ++ redux/ReduxCore/inc/welcome/views/support.php | 146 + redux/ReduxCore/inc/welcome/welcome.php | 566 ++ redux/ReduxCore/languages/README.txt | 1 + .../ReduxCore/languages/redux-framework-ar.mo | Bin 0 -> 17301 bytes .../languages/redux-framework-bg_BG.mo | Bin 0 -> 8567 bytes .../languages/redux-framework-bn_BD.mo | Bin 0 -> 6761 bytes .../languages/redux-framework-cs_CZ.mo | Bin 0 -> 15819 bytes .../languages/redux-framework-da_DK.mo | Bin 0 -> 5001 bytes .../languages/redux-framework-de_DE.mo | Bin 0 -> 14510 bytes .../ReduxCore/languages/redux-framework-el.mo | Bin 0 -> 18378 bytes .../languages/redux-framework-es_ES.mo | Bin 0 -> 19313 bytes .../languages/redux-framework-es_MX.mo | Bin 0 -> 6325 bytes .../languages/redux-framework-fa_IR.mo | Bin 0 -> 12907 bytes .../ReduxCore/languages/redux-framework-fi.mo | Bin 0 -> 4727 bytes .../languages/redux-framework-fr_FR.mo | Bin 0 -> 39336 bytes .../languages/redux-framework-he_IL.mo | Bin 0 -> 10520 bytes .../languages/redux-framework-hi_IN.mo | Bin 0 -> 9105 bytes .../ReduxCore/languages/redux-framework-hr.mo | Bin 0 -> 9230 bytes .../languages/redux-framework-hu_HU.mo | Bin 0 -> 7996 bytes .../languages/redux-framework-id_ID.mo | Bin 0 -> 9333 bytes .../languages/redux-framework-it_IT.mo | Bin 0 -> 15287 bytes .../ReduxCore/languages/redux-framework-ja.mo | Bin 0 -> 15820 bytes .../ReduxCore/languages/redux-framework-km.mo | Bin 0 -> 7971 bytes .../languages/redux-framework-lt_LT.mo | 0 .../languages/redux-framework-nb_NO.mo | Bin 0 -> 15527 bytes .../languages/redux-framework-ne_NP.mo | Bin 0 -> 13557 bytes .../languages/redux-framework-nl_NL.mo | Bin 0 -> 12002 bytes .../languages/redux-framework-pl_PL.mo | Bin 0 -> 18965 bytes .../languages/redux-framework-pt_BR.mo | Bin 0 -> 16478 bytes .../languages/redux-framework-pt_PT.mo | Bin 0 -> 7081 bytes .../languages/redux-framework-ro_RO.mo | Bin 0 -> 16678 bytes .../languages/redux-framework-ru_RU.mo | Bin 0 -> 48364 bytes .../languages/redux-framework-sk_SK.mo | Bin 0 -> 7898 bytes .../languages/redux-framework-sl_SI.mo | Bin 0 -> 4548 bytes .../languages/redux-framework-sv_SE.mo | Bin 0 -> 13181 bytes .../ReduxCore/languages/redux-framework-th.mo | Bin 0 -> 8686 bytes .../languages/redux-framework-tr_TR.mo | Bin 0 -> 15990 bytes .../languages/redux-framework-zh_CN.mo | Bin 0 -> 14324 bytes redux/ReduxCore/languages/redux-framework.pot | 1556 ++++ .../templates/panel/container.tpl.php | 58 + .../ReduxCore/templates/panel/content.tpl.php | 99 + .../ReduxCore/templates/panel/footer.tpl.php | 73 + .../ReduxCore/templates/panel/header.tpl.php | 73 + .../templates/panel/header_stickybar.tpl.php | 43 + .../templates/panel/menu_container.tpl.php | 51 + redux/redux/.DS_Store | Bin 0 -> 6148 bytes redux/redux/ad_remove/extension_ad_remove.php | 125 + redux/redux/animation/field_animation.css | 41 + redux/redux/animation/field_animation.js | 69 + redux/redux/animation/field_animation.min.css | 2 + redux/redux/animation/field_animation.min.js | 2 + redux/redux/animation/field_animation.php | 195 + redux/redux/icons/field_icons.css | 122 + redux/redux/icons/field_icons.css.map | 1 + redux/redux/icons/field_icons.js | 115 + redux/redux/icons/field_icons.less | 163 + redux/redux/icons/field_icons.min.css | 2 + redux/redux/icons/field_icons.min.js | 2 + redux/redux/icons/field_icons.php | 237 + redux/redux/rgba/field_rgba.js | 146 + redux/redux/rgba/field_rgba.min.js | 2 + redux/redux/rgba/field_rgba.php | 103 + redux/redux/rgba/wp-color-picker-alpha.js | 483 + redux/redux/rgba/wp-color-picker-alpha.min.js | 2 + redux/redux/template/footer.tpl.php | 73 + redux/redux/template/header.tpl.php | 0 redux/redux/template/header_stickybar.tpl.php | 31 + templates/button/toggle.php | 7 + templates/layout/alert.php | 14 + templates/layout/collapse.php | 11 + templates/layout/embed.php | 7 + templates/layout/inherit.php | 8 + templates/layout/offcanvas.php | 12 + templates/layout/vertical.php | 7 + templates/logo.php | 3 + uninstall.php | 5 + vendor/autoload.php | 25 + .../jetpack-composer-plugin/CHANGELOG.md | 126 + .../jetpack-composer-plugin/LICENSE.txt | 357 + .../jetpack-composer-plugin/README.md | 46 + .../jetpack-composer-plugin/SECURITY.md | 47 + .../src/class-manager.php | 41 + .../src/class-plugin.php | 154 + vendor/composer/ClassLoader.php | 579 ++ vendor/composer/InstalledVersions.php | 359 + vendor/composer/LICENSE | 21 + vendor/composer/autoload_classmap.php | 75 + vendor/composer/autoload_files.php | 10 + vendor/composer/autoload_namespaces.php | 9 + vendor/composer/autoload_psr4.php | 15 + vendor/composer/autoload_real.php | 50 + vendor/composer/autoload_static.php | 130 + vendor/composer/installed.json | 514 ++ vendor/composer/installed.php | 104 + vendor/composer/platform_check.php | 26 + vendor_packages/wp-dashboard-widget-news.php | 5 + vendor_packages/wp-i18n-map.php | 5 + vendor_packages/wp-notice-plugin-promote.php | 128 + vendor_packages/wp-notice-plugin-required.php | 15 + vendor_packages/wp-plugin-install-tab.php | 5 + vendor_packages/wp-plugin-suggestions.php | 22 + vendor_packages/wp-plugin-table-links.php | 28 + 690 files changed, 109765 insertions(+) create mode 100644 .DS_Store create mode 100644 .eslintrc create mode 100644 assets/backend/css/modal.css create mode 100644 assets/backend/css/modal.min.css create mode 100644 assets/backend/img/ai-copilot.png create mode 100644 assets/backend/img/carousel.jpg create mode 100644 assets/backend/img/icon-18x18.png create mode 100644 assets/backend/img/icon-256x256.jpg create mode 100644 assets/backend/img/icon-dark-18x18.png create mode 100644 assets/backend/img/icon.png create mode 100644 assets/backend/img/icond.png create mode 100644 assets/backend/img/layouts/acenter.png create mode 100644 assets/backend/img/layouts/aleft.png create mode 100644 assets/backend/img/layouts/aright.png create mode 100644 assets/backend/img/layouts/collapse.png create mode 100644 assets/backend/img/layouts/embed.png create mode 100644 assets/backend/img/layouts/fleft.png create mode 100644 assets/backend/img/layouts/fright.png create mode 100644 assets/backend/img/layouts/inherit.png create mode 100644 assets/backend/img/layouts/offcanvas.png create mode 100644 assets/backend/img/layouts/panels.png create mode 100644 assets/backend/img/layouts/vertical.png create mode 100644 assets/backend/img/login.jpg create mode 100644 assets/backend/img/logo.jpg create mode 100644 assets/backend/img/offset.png create mode 100644 assets/backend/img/placeholder.jpg create mode 100644 assets/backend/img/quadlayers.jpg create mode 100644 assets/backend/img/screenshot.png create mode 100644 assets/backend/img/social.jpg create mode 100644 assets/backend/img/tabs.jpg create mode 100644 assets/backend/img/wp-whatsapp-chat.jpeg create mode 100644 assets/frontend/css/quadmenu-locations.css create mode 100644 assets/frontend/css/quadmenu-normalize.css create mode 100644 assets/frontend/css/quadmenu-normalize.min.css create mode 100644 assets/frontend/css/quadmenu-widgets.css create mode 100644 assets/frontend/icons/eleganticons/fonts/ElegantIcons.eot create mode 100644 assets/frontend/icons/eleganticons/fonts/ElegantIcons.svg create mode 100644 assets/frontend/icons/eleganticons/fonts/ElegantIcons.ttf create mode 100644 assets/frontend/icons/eleganticons/fonts/ElegantIcons.woff create mode 100644 assets/frontend/icons/eleganticons/style.css create mode 100644 assets/frontend/icons/eleganticons/style.min.css create mode 100644 assets/frontend/icons/elusive/css/elusive-icons.css create mode 100644 assets/frontend/icons/elusive/css/elusive-icons.min.css create mode 100644 assets/frontend/icons/elusive/fonts/elusiveicons-webfont.eot create mode 100644 assets/frontend/icons/elusive/fonts/elusiveicons-webfont.svg create mode 100644 assets/frontend/icons/elusive/fonts/elusiveicons-webfont.ttf create mode 100644 assets/frontend/icons/elusive/fonts/elusiveicons-webfont.woff create mode 100644 assets/frontend/icons/fontawesome/css/font-awesome.css create mode 100644 assets/frontend/icons/fontawesome/css/font-awesome.min.css create mode 100644 assets/frontend/icons/fontawesome/fonts/FontAwesome.otf create mode 100644 assets/frontend/icons/fontawesome/fonts/fontawesome-webfont.eot create mode 100644 assets/frontend/icons/fontawesome/fonts/fontawesome-webfont.svg create mode 100644 assets/frontend/icons/fontawesome/fonts/fontawesome-webfont.ttf create mode 100644 assets/frontend/icons/fontawesome/fonts/fontawesome-webfont.woff create mode 100644 assets/frontend/icons/fontawesome/fonts/fontawesome-webfont.woff2 create mode 100644 assets/frontend/icons/fontawesome5/css/all.css create mode 100644 assets/frontend/icons/fontawesome5/css/all.min.css create mode 100644 assets/frontend/icons/fontawesome5/webfonts/fa-brands-400.eot create mode 100644 assets/frontend/icons/fontawesome5/webfonts/fa-brands-400.svg create mode 100644 assets/frontend/icons/fontawesome5/webfonts/fa-brands-400.ttf create mode 100644 assets/frontend/icons/fontawesome5/webfonts/fa-brands-400.woff create mode 100644 assets/frontend/icons/fontawesome5/webfonts/fa-brands-400.woff2 create mode 100644 assets/frontend/icons/fontawesome5/webfonts/fa-regular-400.eot create mode 100644 assets/frontend/icons/fontawesome5/webfonts/fa-regular-400.svg create mode 100644 assets/frontend/icons/fontawesome5/webfonts/fa-regular-400.ttf create mode 100644 assets/frontend/icons/fontawesome5/webfonts/fa-regular-400.woff create mode 100644 assets/frontend/icons/fontawesome5/webfonts/fa-regular-400.woff2 create mode 100644 assets/frontend/icons/fontawesome5/webfonts/fa-solid-900.eot create mode 100644 assets/frontend/icons/fontawesome5/webfonts/fa-solid-900.svg create mode 100644 assets/frontend/icons/fontawesome5/webfonts/fa-solid-900.ttf create mode 100644 assets/frontend/icons/fontawesome5/webfonts/fa-solid-900.woff create mode 100644 assets/frontend/icons/fontawesome5/webfonts/fa-solid-900.woff2 create mode 100644 assets/frontend/icons/fontawesome6/css/all.css create mode 100644 assets/frontend/icons/fontawesome6/css/all.min.css create mode 100644 assets/frontend/icons/fontawesome6/css/test.json create mode 100644 assets/frontend/icons/fontawesome6/webfonts/fa-brands-400.ttf create mode 100644 assets/frontend/icons/fontawesome6/webfonts/fa-brands-400.woff2 create mode 100644 assets/frontend/icons/fontawesome6/webfonts/fa-regular-400.ttf create mode 100644 assets/frontend/icons/fontawesome6/webfonts/fa-regular-400.woff2 create mode 100644 assets/frontend/icons/fontawesome6/webfonts/fa-solid-900.ttf create mode 100644 assets/frontend/icons/fontawesome6/webfonts/fa-solid-900.woff2 create mode 100644 assets/frontend/icons/fontawesome6/webfonts/fa-v4compatibility.ttf create mode 100644 assets/frontend/icons/fontawesome6/webfonts/fa-v4compatibility.woff2 create mode 100644 assets/frontend/icons/foundation/foundation-icons.css create mode 100644 assets/frontend/icons/foundation/foundation-icons.eot create mode 100644 assets/frontend/icons/foundation/foundation-icons.min.css create mode 100644 assets/frontend/icons/foundation/foundation-icons.svg create mode 100644 assets/frontend/icons/foundation/foundation-icons.ttf create mode 100644 assets/frontend/icons/foundation/foundation-icons.woff create mode 100644 assets/frontend/icons/themify/fonts/themify.eot create mode 100644 assets/frontend/icons/themify/fonts/themify.svg create mode 100644 assets/frontend/icons/themify/fonts/themify.ttf create mode 100644 assets/frontend/icons/themify/fonts/themify.woff create mode 100644 assets/frontend/icons/themify/themify-icons.css create mode 100644 assets/frontend/icons/themify/themify-icons.min.css create mode 100644 assets/frontend/images/logo.png create mode 100644 assets/frontend/images/logodark.png create mode 100644 assets/frontend/images/logowhite.png create mode 100644 assets/frontend/less/mixins.less create mode 100644 assets/frontend/less/quadmenu-locations.less create mode 100644 assets/frontend/less/quadmenu-widgets.less create mode 100644 assets/frontend/less/themes/general.less create mode 100644 assets/frontend/less/themes/grid.less create mode 100644 assets/frontend/less/themes/widgets.less create mode 100644 assets/frontend/owlcarousel/owl.carousel.min.css create mode 100644 assets/frontend/owlcarousel/owl.carousel.min.js create mode 100644 assets/frontend/pscrollbar/perfect-scrollbar.jquery.min.js create mode 100644 assets/frontend/pscrollbar/perfect-scrollbar.min.css create mode 100644 build/backend/955f1674307d41309e79.png create mode 100644 build/backend/index.asset.php create mode 100644 build/backend/index.js create mode 100644 build/backend/style.css create mode 100644 build/compiler/index.asset.php create mode 100644 build/compiler/index.js create mode 100644 build/compiler/index.js.LICENSE.txt create mode 100644 build/frontend/index.asset.php create mode 100644 build/frontend/index.js create mode 100644 build/frontend/style.css create mode 100644 compatibility/old.php create mode 100644 index.php create mode 100644 jetpack_vendor/automattic/jetpack-assets/CHANGELOG.md create mode 100644 jetpack_vendor/automattic/jetpack-assets/LICENSE.txt create mode 100644 jetpack_vendor/automattic/jetpack-assets/README.md create mode 100644 jetpack_vendor/automattic/jetpack-assets/SECURITY.md create mode 100644 jetpack_vendor/automattic/jetpack-assets/actions.php create mode 100644 jetpack_vendor/automattic/jetpack-assets/build/i18n-loader.asset.php create mode 100644 jetpack_vendor/automattic/jetpack-assets/build/i18n-loader.js create mode 100644 jetpack_vendor/automattic/jetpack-assets/src/class-assets.php create mode 100644 jetpack_vendor/automattic/jetpack-assets/src/class-semver.php create mode 100644 jetpack_vendor/automattic/jetpack-assets/src/js/i18n-loader.js create mode 100644 jetpack_vendor/automattic/jetpack-constants/CHANGELOG.md create mode 100644 jetpack_vendor/automattic/jetpack-constants/LICENSE.txt create mode 100644 jetpack_vendor/automattic/jetpack-constants/README.md create mode 100644 jetpack_vendor/automattic/jetpack-constants/SECURITY.md create mode 100644 jetpack_vendor/automattic/jetpack-constants/src/class-constants.php create mode 100644 jetpack_vendor/i18n-map.php create mode 100644 jetpack_vendor/quadlayers/wp-dashboard-widget-news/README create mode 100644 jetpack_vendor/quadlayers/wp-dashboard-widget-news/README.md create mode 100644 jetpack_vendor/quadlayers/wp-dashboard-widget-news/src/Load.php create mode 100644 jetpack_vendor/quadlayers/wp-notice-plugin-promote/src/Load.php create mode 100644 jetpack_vendor/quadlayers/wp-notice-plugin-promote/src/PluginByFile.php create mode 100644 jetpack_vendor/quadlayers/wp-notice-plugin-promote/src/PluginBySlug.php create mode 100644 jetpack_vendor/quadlayers/wp-notice-plugin-promote/src/PluginBySlugV2.php create mode 100644 jetpack_vendor/quadlayers/wp-notice-plugin-promote/src/Traits/PluginActions.php create mode 100644 jetpack_vendor/quadlayers/wp-notice-plugin-promote/src/Traits/PluginActionsLinks.php create mode 100644 jetpack_vendor/quadlayers/wp-notice-plugin-promote/src/Traits/PluginDataByFile.php create mode 100644 jetpack_vendor/quadlayers/wp-notice-plugin-promote/src/templates/notice.php create mode 100644 jetpack_vendor/quadlayers/wp-notice-plugin-required/README.md create mode 100644 jetpack_vendor/quadlayers/wp-notice-plugin-required/src/Load.php create mode 100644 jetpack_vendor/quadlayers/wp-notice-plugin-required/src/Plugin.php create mode 100644 jetpack_vendor/quadlayers/wp-plugin-install-tab/README.md create mode 100644 jetpack_vendor/quadlayers/wp-plugin-install-tab/src/Load.php create mode 100644 jetpack_vendor/quadlayers/wp-plugin-suggestions/README create mode 100644 jetpack_vendor/quadlayers/wp-plugin-suggestions/README.md create mode 100644 jetpack_vendor/quadlayers/wp-plugin-suggestions/assets/img/logo.jpg create mode 100644 jetpack_vendor/quadlayers/wp-plugin-suggestions/src/Load.php create mode 100644 jetpack_vendor/quadlayers/wp-plugin-suggestions/src/Page.php create mode 100644 jetpack_vendor/quadlayers/wp-plugin-suggestions/src/Table.php create mode 100644 jetpack_vendor/quadlayers/wp-plugin-suggestions/src/view/suggestions.php create mode 100644 jetpack_vendor/quadlayers/wp-plugin-table-links/LICENSE create mode 100644 jetpack_vendor/quadlayers/wp-plugin-table-links/README create mode 100644 jetpack_vendor/quadlayers/wp-plugin-table-links/README.md create mode 100644 jetpack_vendor/quadlayers/wp-plugin-table-links/src/Load.php create mode 100644 lib/backend/class-ajax.php create mode 100644 lib/backend/class-settings.php create mode 100644 lib/backend/walker/class-nav-menu-columns.php create mode 100644 lib/backend/walker/class-nav-menu-defaults.php create mode 100644 lib/backend/walker/class-nav-menu-mega.php create mode 100644 lib/backend/walker/class-nav-menu-widgets.php create mode 100644 lib/class-activation.php create mode 100644 lib/class-admin.php create mode 100644 lib/class-compiler.php create mode 100644 lib/class-configuration.php create mode 100644 lib/class-functions.php create mode 100644 lib/class-icons.php create mode 100644 lib/class-import.php create mode 100644 lib/class-locations.php create mode 100644 lib/class-options.php create mode 100644 lib/class-panel.php create mode 100644 lib/class-plugin.php create mode 100644 lib/class-redux.php create mode 100644 lib/class-themes.php create mode 100644 lib/class-widget.php create mode 100644 lib/frontend/class-frontend.php create mode 100644 lib/frontend/class-integration.php create mode 100644 lib/frontend/class-items.php create mode 100644 lib/frontend/walker/class-quadmenu-item-cart.php create mode 100644 lib/frontend/walker/class-quadmenu-item-column.php create mode 100644 lib/frontend/walker/class-quadmenu-item-default.php create mode 100644 lib/frontend/walker/class-quadmenu-item-icon.php create mode 100644 lib/frontend/walker/class-quadmenu-item-mega.php create mode 100644 lib/frontend/walker/class-quadmenu-item-post-type.php create mode 100644 lib/frontend/walker/class-quadmenu-item-search.php create mode 100644 lib/frontend/walker/class-quadmenu-item-widget.php create mode 100644 lib/frontend/walker/class-quadmenu-item.php create mode 100644 lib/frontend/walker/class-quadmenu-walker.php create mode 100644 lib/integrations/beaver/class-module.php create mode 100644 lib/integrations/beaver/includes/frontend.php create mode 100644 lib/integrations/beaver/module.php create mode 100644 lib/integrations/class-beaver.php create mode 100644 lib/integrations/class-divi.php create mode 100644 lib/integrations/class-elementor.php create mode 100644 lib/integrations/class-polylang.php create mode 100644 lib/integrations/class-vc.php create mode 100644 lib/integrations/class-woocommerce.php create mode 100644 lib/integrations/divi/class-module.php create mode 100644 lib/integrations/divi/loader.php create mode 100644 lib/integrations/divi/modules/QuadMenu/QuadMenu.jsx create mode 100644 lib/integrations/divi/modules/QuadMenu/QuadMenu.php create mode 100644 lib/integrations/divi/scripts/builder-bundle.min.js create mode 100644 lib/integrations/divi/scripts/frontend-bundle.min.js create mode 100644 lib/integrations/divi/scripts/frontend.js create mode 100644 lib/integrations/elementor/class-module.php create mode 100644 lib/panel/class-options.php create mode 100644 lib/panel/class-premium.php create mode 100644 lib/panel/class-system.php create mode 100644 lib/panel/class-welcome.php create mode 100644 lib/panel/header.php create mode 100644 lib/panel/pages/parts/header.php create mode 100644 lib/panel/pages/premium.php create mode 100644 lib/panel/pages/suggestions.php create mode 100644 lib/panel/pages/system.php create mode 100644 lib/panel/pages/welcome.php create mode 100644 quadmenu.php create mode 100644 readme.txt create mode 100644 redux/.DS_Store create mode 100644 redux/ReduxCore/assets/css/color-picker/color-picker.css create mode 100644 redux/ReduxCore/assets/css/color-picker/color-picker.css.map create mode 100644 redux/ReduxCore/assets/css/color-picker/color-picker.scss create mode 100644 redux/ReduxCore/assets/css/import_export/import_export.css create mode 100644 redux/ReduxCore/assets/css/import_export/import_export.css.map create mode 100644 redux/ReduxCore/assets/css/import_export/import_export.scss create mode 100644 redux/ReduxCore/assets/css/media/media.css create mode 100644 redux/ReduxCore/assets/css/media/media.css.map create mode 100644 redux/ReduxCore/assets/css/media/media.scss create mode 100644 redux/ReduxCore/assets/css/redux-admin.css create mode 100644 redux/ReduxCore/assets/css/redux-admin.css.map create mode 100644 redux/ReduxCore/assets/css/redux-admin.scss create mode 100644 redux/ReduxCore/assets/css/redux-fields.css create mode 100644 redux/ReduxCore/assets/css/redux-vendor.css create mode 100644 redux/ReduxCore/assets/css/rtl.css create mode 100644 redux/ReduxCore/assets/css/rtl.css.map create mode 100644 redux/ReduxCore/assets/css/rtl.scss create mode 100644 redux/ReduxCore/assets/css/vendor/elusive-icons/elusive-icons.css create mode 100644 redux/ReduxCore/assets/css/vendor/elusive-icons/elusive-icons.css.map create mode 100644 redux/ReduxCore/assets/css/vendor/elusive-icons/elusive-icons.scss create mode 100644 redux/ReduxCore/assets/css/vendor/elusive-icons/fonts/elusiveicons-webfont.eot create mode 100644 redux/ReduxCore/assets/css/vendor/elusive-icons/fonts/elusiveicons-webfont.svg create mode 100644 redux/ReduxCore/assets/css/vendor/elusive-icons/fonts/elusiveicons-webfont.ttf create mode 100644 redux/ReduxCore/assets/css/vendor/elusive-icons/fonts/elusiveicons-webfont.woff create mode 100644 redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_animated.scss create mode 100644 redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_bordered-pulled.scss create mode 100644 redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_core.scss create mode 100644 redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_fixed-width.scss create mode 100644 redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_icons.scss create mode 100644 redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_larger.scss create mode 100644 redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_list.scss create mode 100644 redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_mixins.scss create mode 100644 redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_path.scss create mode 100644 redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_rotated-flipped.scss create mode 100644 redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_stacked.scss create mode 100644 redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_variables.scss create mode 100644 redux/ReduxCore/assets/css/vendor/elusive-icons/scss/elusive-icons.css create mode 100644 redux/ReduxCore/assets/css/vendor/elusive-icons/scss/elusive-icons.css.map create mode 100644 redux/ReduxCore/assets/css/vendor/elusive-icons/scss/elusive-icons.scss create mode 100644 redux/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-bg_flat_0_aaaaaa_40x100.png create mode 100644 redux/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-bg_glass_55_fbf9ee_1x400.png create mode 100644 redux/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-bg_glass_65_ffffff_1x400.png create mode 100644 redux/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-bg_glass_75_dadada_1x400.png create mode 100644 redux/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-bg_glass_75_e6e6e6_1x400.png create mode 100644 redux/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-bg_glass_75_ffffff_1x400.png create mode 100644 redux/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-bg_highlight-soft_75_cccccc_1x100.png create mode 100644 redux/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-bg_inset-soft_95_fef1ec_1x100.png create mode 100644 redux/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-icons_222222_256x240.png create mode 100644 redux/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-icons_2e83ff_256x240.png create mode 100644 redux/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-icons_454545_256x240.png create mode 100644 redux/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-icons_888888_256x240.png create mode 100644 redux/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-icons_cd0a0a_256x240.png create mode 100644 redux/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-icons_f6cf3b_256x240.png create mode 100644 redux/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-icons_ffffff_256x240.png create mode 100644 redux/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/jquery-ui-1.10.0.custom.css create mode 100644 redux/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/jquery-ui-1.10.0.custom.css.map create mode 100644 redux/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/jquery-ui-1.10.0.custom.scss create mode 100644 redux/ReduxCore/assets/css/vendor/qtip/jquery.qtip.css create mode 100644 redux/ReduxCore/assets/css/vendor/qtip/jquery.qtip.css.map create mode 100644 redux/ReduxCore/assets/css/vendor/qtip/jquery.qtip.min.css create mode 100644 redux/ReduxCore/assets/css/vendor/qtip/jquery.qtip.scss create mode 100644 redux/ReduxCore/assets/css/vendor/spectrum/redux-spectrum.css create mode 100644 redux/ReduxCore/assets/css/vendor/spectrum/redux-spectrum.css.map create mode 100644 redux/ReduxCore/assets/css/vendor/spectrum/redux-spectrum.scss create mode 100644 redux/ReduxCore/assets/img/1c.png create mode 100644 redux/ReduxCore/assets/img/1col.png create mode 100644 redux/ReduxCore/assets/img/2-col-portfolio.png create mode 100644 redux/ReduxCore/assets/img/2cl.png create mode 100644 redux/ReduxCore/assets/img/2cr.png create mode 100644 redux/ReduxCore/assets/img/3-col-portfolio.png create mode 100644 redux/ReduxCore/assets/img/3cl.png create mode 100644 redux/ReduxCore/assets/img/3cm.png create mode 100644 redux/ReduxCore/assets/img/3cr.png create mode 100644 redux/ReduxCore/assets/img/4-col-portfolio.png create mode 100644 redux/ReduxCore/assets/img/ajax.gif create mode 100644 redux/ReduxCore/assets/img/menu_icon.png create mode 100644 redux/ReduxCore/assets/img/toggle_tabs.png create mode 100644 redux/ReduxCore/assets/js/media/media.js create mode 100644 redux/ReduxCore/assets/js/media/media.min.js create mode 100644 redux/ReduxCore/assets/js/redux.js create mode 100644 redux/ReduxCore/assets/js/redux.min.js create mode 100644 redux/ReduxCore/assets/js/vendor.min.js create mode 100644 redux/ReduxCore/assets/js/vendor/cookie.js create mode 100644 redux/ReduxCore/assets/js/vendor/jquery.alphanum.js create mode 100644 redux/ReduxCore/assets/js/vendor/jquery.serializeForm.js create mode 100644 redux/ReduxCore/assets/js/vendor/jquery.typewatch.js create mode 100644 redux/ReduxCore/assets/js/vendor/jsonview.js create mode 100644 redux/ReduxCore/assets/js/vendor/jsonview.min.js create mode 100644 redux/ReduxCore/assets/js/vendor/lte-ie7.js create mode 100644 redux/ReduxCore/assets/js/vendor/qtip/jquery.qtip.js create mode 100644 redux/ReduxCore/assets/js/vendor/qtip/jquery.qtip.min.js create mode 100644 redux/ReduxCore/assets/js/vendor/redux.select2.sortable.js create mode 100644 redux/ReduxCore/assets/js/vendor/redux.select2.sortable.min.js create mode 100644 redux/ReduxCore/assets/js/vendor/spectrum/redux-spectrum.js create mode 100644 redux/ReduxCore/assets/js/vendor/spectrum/redux-spectrum.min.js create mode 100644 redux/ReduxCore/core/dashboard.php create mode 100644 redux/ReduxCore/core/enqueue.php create mode 100644 redux/ReduxCore/core/newsflash.php create mode 100644 redux/ReduxCore/core/panel.php create mode 100644 redux/ReduxCore/core/required.php create mode 100644 redux/ReduxCore/framework.php create mode 100644 redux/ReduxCore/inc/browser.php create mode 100644 redux/ReduxCore/inc/class.p.php create mode 100644 redux/ReduxCore/inc/class.redux_admin_notices.php create mode 100644 redux/ReduxCore/inc/class.redux_api.php create mode 100644 redux/ReduxCore/inc/class.redux_cdn.php create mode 100644 redux/ReduxCore/inc/class.redux_filesystem.php create mode 100644 redux/ReduxCore/inc/class.redux_functions.php create mode 100644 redux/ReduxCore/inc/class.redux_helpers.php create mode 100644 redux/ReduxCore/inc/class.redux_instances.php create mode 100644 redux/ReduxCore/inc/class.thirdparty.fixes.php create mode 100644 redux/ReduxCore/inc/extensions/README.txt create mode 100644 redux/ReduxCore/inc/extensions/customizer/extension_customizer.css create mode 100644 redux/ReduxCore/inc/extensions/customizer/extension_customizer.css.map create mode 100644 redux/ReduxCore/inc/extensions/customizer/extension_customizer.js create mode 100644 redux/ReduxCore/inc/extensions/customizer/extension_customizer.min.js create mode 100644 redux/ReduxCore/inc/extensions/customizer/extension_customizer.php create mode 100644 redux/ReduxCore/inc/extensions/customizer/extension_customizer.scss create mode 100644 redux/ReduxCore/inc/extensions/customizer/inc/customizer_control.php create mode 100644 redux/ReduxCore/inc/extensions/customizer/inc/customizer_devs.php create mode 100644 redux/ReduxCore/inc/extensions/customizer/inc/customizer_fields.php create mode 100644 redux/ReduxCore/inc/extensions/customizer/inc/customizer_panel.php create mode 100644 redux/ReduxCore/inc/extensions/customizer/inc/customizer_section.php create mode 100644 redux/ReduxCore/inc/extensions/import_export/extension_import_export.php create mode 100644 redux/ReduxCore/inc/extensions/import_export/import_export/field_import_export.css create mode 100644 redux/ReduxCore/inc/extensions/import_export/import_export/field_import_export.js create mode 100644 redux/ReduxCore/inc/extensions/import_export/import_export/field_import_export.min.js create mode 100644 redux/ReduxCore/inc/extensions/import_export/import_export/field_import_export.php create mode 100644 redux/ReduxCore/inc/extensions/import_export/import_export/field_import_export.scss create mode 100644 redux/ReduxCore/inc/extensions/options_object/extension_options_object.php create mode 100644 redux/ReduxCore/inc/extensions/options_object/options_object/field_options_object.css create mode 100644 redux/ReduxCore/inc/extensions/options_object/options_object/field_options_object.js create mode 100644 redux/ReduxCore/inc/extensions/options_object/options_object/field_options_object.min.js create mode 100644 redux/ReduxCore/inc/extensions/options_object/options_object/field_options_object.php create mode 100644 redux/ReduxCore/inc/extensions/options_object/options_object/field_options_object.scss create mode 100644 redux/ReduxCore/inc/fields/ace_editor/field_ace_editor.css create mode 100644 redux/ReduxCore/inc/fields/ace_editor/field_ace_editor.css.map create mode 100644 redux/ReduxCore/inc/fields/ace_editor/field_ace_editor.js create mode 100644 redux/ReduxCore/inc/fields/ace_editor/field_ace_editor.min.js create mode 100644 redux/ReduxCore/inc/fields/ace_editor/field_ace_editor.php create mode 100644 redux/ReduxCore/inc/fields/ace_editor/field_ace_editor.scss create mode 100644 redux/ReduxCore/inc/fields/background/field_background.css create mode 100644 redux/ReduxCore/inc/fields/background/field_background.css.map create mode 100644 redux/ReduxCore/inc/fields/background/field_background.js create mode 100644 redux/ReduxCore/inc/fields/background/field_background.min.js create mode 100644 redux/ReduxCore/inc/fields/background/field_background.php create mode 100644 redux/ReduxCore/inc/fields/background/field_background.scss create mode 100644 redux/ReduxCore/inc/fields/border/field_border.css create mode 100644 redux/ReduxCore/inc/fields/border/field_border.css.map create mode 100644 redux/ReduxCore/inc/fields/border/field_border.js create mode 100644 redux/ReduxCore/inc/fields/border/field_border.min.js create mode 100644 redux/ReduxCore/inc/fields/border/field_border.php create mode 100644 redux/ReduxCore/inc/fields/border/field_border.scss create mode 100644 redux/ReduxCore/inc/fields/button_set/field_button_set.js create mode 100644 redux/ReduxCore/inc/fields/button_set/field_button_set.min.js create mode 100644 redux/ReduxCore/inc/fields/button_set/field_button_set.php create mode 100644 redux/ReduxCore/inc/fields/checkbox/field_checkbox.css create mode 100644 redux/ReduxCore/inc/fields/checkbox/field_checkbox.css.map create mode 100644 redux/ReduxCore/inc/fields/checkbox/field_checkbox.js create mode 100644 redux/ReduxCore/inc/fields/checkbox/field_checkbox.min.js create mode 100644 redux/ReduxCore/inc/fields/checkbox/field_checkbox.php create mode 100644 redux/ReduxCore/inc/fields/checkbox/field_checkbox.scss create mode 100644 redux/ReduxCore/inc/fields/color/field_color.js create mode 100644 redux/ReduxCore/inc/fields/color/field_color.min.js create mode 100644 redux/ReduxCore/inc/fields/color/field_color.php create mode 100644 redux/ReduxCore/inc/fields/color_gradient/field_color_gradient.css create mode 100644 redux/ReduxCore/inc/fields/color_gradient/field_color_gradient.css.map create mode 100644 redux/ReduxCore/inc/fields/color_gradient/field_color_gradient.js create mode 100644 redux/ReduxCore/inc/fields/color_gradient/field_color_gradient.min.js create mode 100644 redux/ReduxCore/inc/fields/color_gradient/field_color_gradient.php create mode 100644 redux/ReduxCore/inc/fields/color_gradient/field_color_gradient.scss create mode 100644 redux/ReduxCore/inc/fields/color_rgba/field_color_rgba.css create mode 100644 redux/ReduxCore/inc/fields/color_rgba/field_color_rgba.css.map create mode 100644 redux/ReduxCore/inc/fields/color_rgba/field_color_rgba.js create mode 100644 redux/ReduxCore/inc/fields/color_rgba/field_color_rgba.min.js create mode 100644 redux/ReduxCore/inc/fields/color_rgba/field_color_rgba.php create mode 100644 redux/ReduxCore/inc/fields/color_rgba/field_color_rgba.scss create mode 100644 redux/ReduxCore/inc/fields/date/field_date.css create mode 100644 redux/ReduxCore/inc/fields/date/field_date.css.map create mode 100644 redux/ReduxCore/inc/fields/date/field_date.js create mode 100644 redux/ReduxCore/inc/fields/date/field_date.min.js create mode 100644 redux/ReduxCore/inc/fields/date/field_date.php create mode 100644 redux/ReduxCore/inc/fields/date/field_date.scss create mode 100644 redux/ReduxCore/inc/fields/dimensions/field_dimensions.css create mode 100644 redux/ReduxCore/inc/fields/dimensions/field_dimensions.css.map create mode 100644 redux/ReduxCore/inc/fields/dimensions/field_dimensions.js create mode 100644 redux/ReduxCore/inc/fields/dimensions/field_dimensions.min.js create mode 100644 redux/ReduxCore/inc/fields/dimensions/field_dimensions.php create mode 100644 redux/ReduxCore/inc/fields/dimensions/field_dimensions.scss create mode 100644 redux/ReduxCore/inc/fields/divide/field_divide.css create mode 100644 redux/ReduxCore/inc/fields/divide/field_divide.css.map create mode 100644 redux/ReduxCore/inc/fields/divide/field_divide.php create mode 100644 redux/ReduxCore/inc/fields/divide/field_divide.scss create mode 100644 redux/ReduxCore/inc/fields/editor/field_editor.css create mode 100644 redux/ReduxCore/inc/fields/editor/field_editor.css.map create mode 100644 redux/ReduxCore/inc/fields/editor/field_editor.js create mode 100644 redux/ReduxCore/inc/fields/editor/field_editor.min.js create mode 100644 redux/ReduxCore/inc/fields/editor/field_editor.php create mode 100644 redux/ReduxCore/inc/fields/editor/field_editor.scss create mode 100644 redux/ReduxCore/inc/fields/gallery/field_gallery.js create mode 100644 redux/ReduxCore/inc/fields/gallery/field_gallery.min.js create mode 100644 redux/ReduxCore/inc/fields/gallery/field_gallery.php create mode 100644 redux/ReduxCore/inc/fields/image_select/field_image_select.css create mode 100644 redux/ReduxCore/inc/fields/image_select/field_image_select.css.map create mode 100644 redux/ReduxCore/inc/fields/image_select/field_image_select.js create mode 100644 redux/ReduxCore/inc/fields/image_select/field_image_select.min.js create mode 100644 redux/ReduxCore/inc/fields/image_select/field_image_select.php create mode 100644 redux/ReduxCore/inc/fields/image_select/field_image_select.scss create mode 100644 redux/ReduxCore/inc/fields/info/field_info.css create mode 100644 redux/ReduxCore/inc/fields/info/field_info.css.map create mode 100644 redux/ReduxCore/inc/fields/info/field_info.php create mode 100644 redux/ReduxCore/inc/fields/info/field_info.scss create mode 100644 redux/ReduxCore/inc/fields/link_color/field_link_color.css create mode 100644 redux/ReduxCore/inc/fields/link_color/field_link_color.css.map create mode 100644 redux/ReduxCore/inc/fields/link_color/field_link_color.js create mode 100644 redux/ReduxCore/inc/fields/link_color/field_link_color.min.js create mode 100644 redux/ReduxCore/inc/fields/link_color/field_link_color.php create mode 100644 redux/ReduxCore/inc/fields/link_color/field_link_color.scss create mode 100644 redux/ReduxCore/inc/fields/media/field_media.css create mode 100644 redux/ReduxCore/inc/fields/media/field_media.css.map create mode 100644 redux/ReduxCore/inc/fields/media/field_media.less create mode 100644 redux/ReduxCore/inc/fields/media/field_media.php create mode 100644 redux/ReduxCore/inc/fields/media/field_media.scss create mode 100644 redux/ReduxCore/inc/fields/multi_text/field_multi_text.css create mode 100644 redux/ReduxCore/inc/fields/multi_text/field_multi_text.css.map create mode 100644 redux/ReduxCore/inc/fields/multi_text/field_multi_text.js create mode 100644 redux/ReduxCore/inc/fields/multi_text/field_multi_text.min.js create mode 100644 redux/ReduxCore/inc/fields/multi_text/field_multi_text.php create mode 100644 redux/ReduxCore/inc/fields/multi_text/field_multi_text.scss create mode 100644 redux/ReduxCore/inc/fields/palette/field_palette.css create mode 100644 redux/ReduxCore/inc/fields/palette/field_palette.css.map create mode 100644 redux/ReduxCore/inc/fields/palette/field_palette.js create mode 100644 redux/ReduxCore/inc/fields/palette/field_palette.min.js create mode 100644 redux/ReduxCore/inc/fields/palette/field_palette.php create mode 100644 redux/ReduxCore/inc/fields/palette/field_palette.scss create mode 100644 redux/ReduxCore/inc/fields/password/field_password.php create mode 100644 redux/ReduxCore/inc/fields/radio/field_radio.php create mode 100644 redux/ReduxCore/inc/fields/raw/field_raw.php create mode 100644 redux/ReduxCore/inc/fields/raw/parsedown.php create mode 100644 redux/ReduxCore/inc/fields/section/field_section.css create mode 100644 redux/ReduxCore/inc/fields/section/field_section.css.map create mode 100644 redux/ReduxCore/inc/fields/section/field_section.php create mode 100644 redux/ReduxCore/inc/fields/section/field_section.scss create mode 100644 redux/ReduxCore/inc/fields/select/elusive-icons.php create mode 100644 redux/ReduxCore/inc/fields/select/field_select.css create mode 100644 redux/ReduxCore/inc/fields/select/field_select.css.map create mode 100644 redux/ReduxCore/inc/fields/select/field_select.js create mode 100644 redux/ReduxCore/inc/fields/select/field_select.min.js create mode 100644 redux/ReduxCore/inc/fields/select/field_select.php create mode 100644 redux/ReduxCore/inc/fields/select/field_select.scss create mode 100644 redux/ReduxCore/inc/fields/select_image/field_select_image.css create mode 100644 redux/ReduxCore/inc/fields/select_image/field_select_image.css.map create mode 100644 redux/ReduxCore/inc/fields/select_image/field_select_image.js create mode 100644 redux/ReduxCore/inc/fields/select_image/field_select_image.min.js create mode 100644 redux/ReduxCore/inc/fields/select_image/field_select_image.php create mode 100644 redux/ReduxCore/inc/fields/select_image/field_select_image.scss create mode 100644 redux/ReduxCore/inc/fields/slider/field_slider.css create mode 100644 redux/ReduxCore/inc/fields/slider/field_slider.css.map create mode 100644 redux/ReduxCore/inc/fields/slider/field_slider.js create mode 100644 redux/ReduxCore/inc/fields/slider/field_slider.min.js create mode 100644 redux/ReduxCore/inc/fields/slider/field_slider.php create mode 100644 redux/ReduxCore/inc/fields/slider/field_slider.scss create mode 100644 redux/ReduxCore/inc/fields/slider/vendor/nouislider/redux.jquery.nouislider.css create mode 100644 redux/ReduxCore/inc/fields/slider/vendor/nouislider/redux.jquery.nouislider.js create mode 100644 redux/ReduxCore/inc/fields/slider/vendor/nouislider/redux.jquery.nouislider.min.js create mode 100644 redux/ReduxCore/inc/fields/slides/field_slides.css create mode 100644 redux/ReduxCore/inc/fields/slides/field_slides.css.map create mode 100644 redux/ReduxCore/inc/fields/slides/field_slides.js create mode 100644 redux/ReduxCore/inc/fields/slides/field_slides.min.js create mode 100644 redux/ReduxCore/inc/fields/slides/field_slides.php create mode 100644 redux/ReduxCore/inc/fields/slides/field_slides.scss create mode 100644 redux/ReduxCore/inc/fields/sortable/field_sortable.css create mode 100644 redux/ReduxCore/inc/fields/sortable/field_sortable.css.map create mode 100644 redux/ReduxCore/inc/fields/sortable/field_sortable.js create mode 100644 redux/ReduxCore/inc/fields/sortable/field_sortable.min.js create mode 100644 redux/ReduxCore/inc/fields/sortable/field_sortable.php create mode 100644 redux/ReduxCore/inc/fields/sortable/field_sortable.scss create mode 100644 redux/ReduxCore/inc/fields/sorter/field_sorter.css create mode 100644 redux/ReduxCore/inc/fields/sorter/field_sorter.css.map create mode 100644 redux/ReduxCore/inc/fields/sorter/field_sorter.js create mode 100644 redux/ReduxCore/inc/fields/sorter/field_sorter.min.js create mode 100644 redux/ReduxCore/inc/fields/sorter/field_sorter.php create mode 100644 redux/ReduxCore/inc/fields/sorter/field_sorter.scss create mode 100644 redux/ReduxCore/inc/fields/spacing/field_spacing.css create mode 100644 redux/ReduxCore/inc/fields/spacing/field_spacing.css.map create mode 100644 redux/ReduxCore/inc/fields/spacing/field_spacing.js create mode 100644 redux/ReduxCore/inc/fields/spacing/field_spacing.min.js create mode 100644 redux/ReduxCore/inc/fields/spacing/field_spacing.php create mode 100644 redux/ReduxCore/inc/fields/spacing/field_spacing.scss create mode 100644 redux/ReduxCore/inc/fields/spinner/arrow_left.png create mode 100644 redux/ReduxCore/inc/fields/spinner/arrow_right.png create mode 100644 redux/ReduxCore/inc/fields/spinner/field_spinner.css create mode 100644 redux/ReduxCore/inc/fields/spinner/field_spinner.css.map create mode 100644 redux/ReduxCore/inc/fields/spinner/field_spinner.js create mode 100644 redux/ReduxCore/inc/fields/spinner/field_spinner.min.js create mode 100644 redux/ReduxCore/inc/fields/spinner/field_spinner.php create mode 100644 redux/ReduxCore/inc/fields/spinner/field_spinner.scss create mode 100644 redux/ReduxCore/inc/fields/spinner/vendor/spinner_custom.js create mode 100644 redux/ReduxCore/inc/fields/spinner/vendor/spinner_custom.min.js create mode 100644 redux/ReduxCore/inc/fields/switch/field_switch.css create mode 100644 redux/ReduxCore/inc/fields/switch/field_switch.css.map create mode 100644 redux/ReduxCore/inc/fields/switch/field_switch.js create mode 100644 redux/ReduxCore/inc/fields/switch/field_switch.min.js create mode 100644 redux/ReduxCore/inc/fields/switch/field_switch.php create mode 100644 redux/ReduxCore/inc/fields/switch/field_switch.scss create mode 100644 redux/ReduxCore/inc/fields/switch/slider-control.png create mode 100644 redux/ReduxCore/inc/fields/switch/switch.gif create mode 100644 redux/ReduxCore/inc/fields/text/field_text.css create mode 100644 redux/ReduxCore/inc/fields/text/field_text.css.map create mode 100644 redux/ReduxCore/inc/fields/text/field_text.php create mode 100644 redux/ReduxCore/inc/fields/text/field_text.scss create mode 100644 redux/ReduxCore/inc/fields/textarea/field_textarea.php create mode 100644 redux/ReduxCore/inc/fields/typography/field_typography.css create mode 100644 redux/ReduxCore/inc/fields/typography/field_typography.css.map create mode 100644 redux/ReduxCore/inc/fields/typography/field_typography.js create mode 100644 redux/ReduxCore/inc/fields/typography/field_typography.json create mode 100644 redux/ReduxCore/inc/fields/typography/field_typography.min.js create mode 100644 redux/ReduxCore/inc/fields/typography/field_typography.php create mode 100644 redux/ReduxCore/inc/fields/typography/field_typography.scss create mode 100644 redux/ReduxCore/inc/fields/typography/field_typography_json.js create mode 100644 redux/ReduxCore/inc/fields/typography/field_typography_json.min.js create mode 100644 redux/ReduxCore/inc/fields/typography/googlefonts.php create mode 100644 redux/ReduxCore/inc/lib.redux_instances.php create mode 100644 redux/ReduxCore/inc/themecheck/checks/embedded.php create mode 100644 redux/ReduxCore/inc/themecheck/checks/full_package.php create mode 100644 redux/ReduxCore/inc/themecheck/checks/index.php create mode 100644 redux/ReduxCore/inc/themecheck/class.redux_themecheck.php create mode 100644 redux/ReduxCore/inc/themecheck/css/admin.css create mode 100644 redux/ReduxCore/inc/themecheck/index.php create mode 100644 redux/ReduxCore/inc/themecheck/js/admin.js create mode 100644 redux/ReduxCore/inc/themecheck/lang/index.php create mode 100644 redux/ReduxCore/inc/themecheck/lang/themeforest-check.pot create mode 100644 redux/ReduxCore/inc/tracking.php create mode 100644 redux/ReduxCore/inc/validation/color/validation_color.php create mode 100644 redux/ReduxCore/inc/validation/color_rgba/validation_color_rgba.php create mode 100644 redux/ReduxCore/inc/validation/colorrgba/validation_colorrgba.php create mode 100644 redux/ReduxCore/inc/validation/comma_numeric/validation_comma_numeric.php create mode 100644 redux/ReduxCore/inc/validation/css/validation_css.php create mode 100644 redux/ReduxCore/inc/validation/date/validation_date.php create mode 100644 redux/ReduxCore/inc/validation/email/validation_email.php create mode 100644 redux/ReduxCore/inc/validation/email_not_empty/validation_email_not_empty.php create mode 100644 redux/ReduxCore/inc/validation/html/validation_html.php create mode 100644 redux/ReduxCore/inc/validation/html_custom/validation_html_custom.php create mode 100644 redux/ReduxCore/inc/validation/js/validation_js.php create mode 100644 redux/ReduxCore/inc/validation/no_html/validation_no_html.php create mode 100644 redux/ReduxCore/inc/validation/no_special_chars/validation_no_special_chars.php create mode 100644 redux/ReduxCore/inc/validation/not_empty/validation_not_empty.php create mode 100644 redux/ReduxCore/inc/validation/numeric/validation_numeric.php create mode 100644 redux/ReduxCore/inc/validation/numeric_not_empty/validation_numeric_not_empty.php create mode 100644 redux/ReduxCore/inc/validation/preg_replace/validation_preg_replace.php create mode 100644 redux/ReduxCore/inc/validation/str_replace/validation_str_replace.php create mode 100644 redux/ReduxCore/inc/validation/unique_slug/validation_unique_slug.php create mode 100644 redux/ReduxCore/inc/validation/url/validation_url.php create mode 100644 redux/ReduxCore/inc/welcome/css/redux-welcome.css create mode 100644 redux/ReduxCore/inc/welcome/css/redux-welcome.scss create mode 100644 redux/ReduxCore/inc/welcome/js/jquery.easing.min.js create mode 100644 redux/ReduxCore/inc/welcome/js/redux-welcome-admin.js create mode 100644 redux/ReduxCore/inc/welcome/views/about.php create mode 100644 redux/ReduxCore/inc/welcome/views/changelog.php create mode 100644 redux/ReduxCore/inc/welcome/views/credits.php create mode 100644 redux/ReduxCore/inc/welcome/views/extensions.php create mode 100644 redux/ReduxCore/inc/welcome/views/status_report.php create mode 100644 redux/ReduxCore/inc/welcome/views/support.php create mode 100644 redux/ReduxCore/inc/welcome/welcome.php create mode 100644 redux/ReduxCore/languages/README.txt create mode 100644 redux/ReduxCore/languages/redux-framework-ar.mo create mode 100644 redux/ReduxCore/languages/redux-framework-bg_BG.mo create mode 100644 redux/ReduxCore/languages/redux-framework-bn_BD.mo create mode 100644 redux/ReduxCore/languages/redux-framework-cs_CZ.mo create mode 100644 redux/ReduxCore/languages/redux-framework-da_DK.mo create mode 100644 redux/ReduxCore/languages/redux-framework-de_DE.mo create mode 100644 redux/ReduxCore/languages/redux-framework-el.mo create mode 100644 redux/ReduxCore/languages/redux-framework-es_ES.mo create mode 100644 redux/ReduxCore/languages/redux-framework-es_MX.mo create mode 100644 redux/ReduxCore/languages/redux-framework-fa_IR.mo create mode 100644 redux/ReduxCore/languages/redux-framework-fi.mo create mode 100644 redux/ReduxCore/languages/redux-framework-fr_FR.mo create mode 100644 redux/ReduxCore/languages/redux-framework-he_IL.mo create mode 100644 redux/ReduxCore/languages/redux-framework-hi_IN.mo create mode 100644 redux/ReduxCore/languages/redux-framework-hr.mo create mode 100644 redux/ReduxCore/languages/redux-framework-hu_HU.mo create mode 100644 redux/ReduxCore/languages/redux-framework-id_ID.mo create mode 100644 redux/ReduxCore/languages/redux-framework-it_IT.mo create mode 100644 redux/ReduxCore/languages/redux-framework-ja.mo create mode 100644 redux/ReduxCore/languages/redux-framework-km.mo create mode 100644 redux/ReduxCore/languages/redux-framework-lt_LT.mo create mode 100644 redux/ReduxCore/languages/redux-framework-nb_NO.mo create mode 100644 redux/ReduxCore/languages/redux-framework-ne_NP.mo create mode 100644 redux/ReduxCore/languages/redux-framework-nl_NL.mo create mode 100644 redux/ReduxCore/languages/redux-framework-pl_PL.mo create mode 100644 redux/ReduxCore/languages/redux-framework-pt_BR.mo create mode 100644 redux/ReduxCore/languages/redux-framework-pt_PT.mo create mode 100644 redux/ReduxCore/languages/redux-framework-ro_RO.mo create mode 100644 redux/ReduxCore/languages/redux-framework-ru_RU.mo create mode 100644 redux/ReduxCore/languages/redux-framework-sk_SK.mo create mode 100644 redux/ReduxCore/languages/redux-framework-sl_SI.mo create mode 100644 redux/ReduxCore/languages/redux-framework-sv_SE.mo create mode 100644 redux/ReduxCore/languages/redux-framework-th.mo create mode 100644 redux/ReduxCore/languages/redux-framework-tr_TR.mo create mode 100644 redux/ReduxCore/languages/redux-framework-zh_CN.mo create mode 100644 redux/ReduxCore/languages/redux-framework.pot create mode 100644 redux/ReduxCore/templates/panel/container.tpl.php create mode 100644 redux/ReduxCore/templates/panel/content.tpl.php create mode 100644 redux/ReduxCore/templates/panel/footer.tpl.php create mode 100644 redux/ReduxCore/templates/panel/header.tpl.php create mode 100644 redux/ReduxCore/templates/panel/header_stickybar.tpl.php create mode 100644 redux/ReduxCore/templates/panel/menu_container.tpl.php create mode 100644 redux/redux/.DS_Store create mode 100644 redux/redux/ad_remove/extension_ad_remove.php create mode 100644 redux/redux/animation/field_animation.css create mode 100644 redux/redux/animation/field_animation.js create mode 100644 redux/redux/animation/field_animation.min.css create mode 100644 redux/redux/animation/field_animation.min.js create mode 100644 redux/redux/animation/field_animation.php create mode 100644 redux/redux/icons/field_icons.css create mode 100644 redux/redux/icons/field_icons.css.map create mode 100644 redux/redux/icons/field_icons.js create mode 100644 redux/redux/icons/field_icons.less create mode 100644 redux/redux/icons/field_icons.min.css create mode 100644 redux/redux/icons/field_icons.min.js create mode 100644 redux/redux/icons/field_icons.php create mode 100644 redux/redux/rgba/field_rgba.js create mode 100644 redux/redux/rgba/field_rgba.min.js create mode 100644 redux/redux/rgba/field_rgba.php create mode 100644 redux/redux/rgba/wp-color-picker-alpha.js create mode 100644 redux/redux/rgba/wp-color-picker-alpha.min.js create mode 100644 redux/redux/template/footer.tpl.php create mode 100644 redux/redux/template/header.tpl.php create mode 100644 redux/redux/template/header_stickybar.tpl.php create mode 100644 templates/button/toggle.php create mode 100644 templates/layout/alert.php create mode 100644 templates/layout/collapse.php create mode 100644 templates/layout/embed.php create mode 100644 templates/layout/inherit.php create mode 100644 templates/layout/offcanvas.php create mode 100644 templates/layout/vertical.php create mode 100644 templates/logo.php create mode 100644 uninstall.php create mode 100644 vendor/autoload.php create mode 100644 vendor/automattic/jetpack-composer-plugin/CHANGELOG.md create mode 100644 vendor/automattic/jetpack-composer-plugin/LICENSE.txt create mode 100644 vendor/automattic/jetpack-composer-plugin/README.md create mode 100644 vendor/automattic/jetpack-composer-plugin/SECURITY.md create mode 100644 vendor/automattic/jetpack-composer-plugin/src/class-manager.php create mode 100644 vendor/automattic/jetpack-composer-plugin/src/class-plugin.php create mode 100644 vendor/composer/ClassLoader.php create mode 100644 vendor/composer/InstalledVersions.php create mode 100644 vendor/composer/LICENSE create mode 100644 vendor/composer/autoload_classmap.php create mode 100644 vendor/composer/autoload_files.php create mode 100644 vendor/composer/autoload_namespaces.php create mode 100644 vendor/composer/autoload_psr4.php create mode 100644 vendor/composer/autoload_real.php create mode 100644 vendor/composer/autoload_static.php create mode 100644 vendor/composer/installed.json create mode 100644 vendor/composer/installed.php create mode 100644 vendor/composer/platform_check.php create mode 100644 vendor_packages/wp-dashboard-widget-news.php create mode 100644 vendor_packages/wp-i18n-map.php create mode 100644 vendor_packages/wp-notice-plugin-promote.php create mode 100644 vendor_packages/wp-notice-plugin-required.php create mode 100644 vendor_packages/wp-plugin-install-tab.php create mode 100644 vendor_packages/wp-plugin-suggestions.php create mode 100644 vendor_packages/wp-plugin-table-links.php diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..1e2e4636d3e0ba8db783396f4ebde0afaa33e605 GIT binary patch literal 6148 zcmeHK%Z}496uq84NM`6zB#>Z%6p3wBS{MyNY)Tmxv!w_YfJ)LtGhs4GY0_y?RjGUU z27ZAxKf=GTf^%(GO44?V5b~AmNn`Y$f#FG3i1OzW^Gk_o%bEL_&m3zR z(>aYxj9(?jA$^py=dng~K|{L2b4)&FFe!5P&PrSxYjNRwhIP5fp$56+X>Aak>6+IJ^!`RP@XMBcjWdauJ^Hf-K{ zp2V3O#=%4qLO+1ZyEkF%C$oMsjr~+|2dcrcZF|_fyI4GW+-*7CZufZEau!b>c3RHS z@zHW=Tet5&c=~d95naX!FBB$lAW3UzT*Frsa*MwjOyVesd5f80L%cwSAa603OIs_0 zAumq@62>z8Quw>r=xF=4aZrfETu{_^ha4d^3cfe;z6jQJ*lrC!ez6Md_1a6QC9)1m z_2$tiU=%P4@b|$%V(e*LDU_cMWbz6CtfE>P%KXE?97khM<4Pe~U_w!WiYoLKLnu1x z9qrfCxKgO-B=qG&=#hoKp$IuT`gf!|iJn4}8wHF4MFlGAvB~HEi{1DCBFQ`%1&jj! zl>(xAGC1jDN&0NvSR9|V4$=oCHuhU7loVw8IFRp1YJ_!*r5 literal 0 HcmV?d00001 diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 0000000..d22d497 --- /dev/null +++ b/.eslintrc @@ -0,0 +1,32 @@ +{ + "env": { + "browser": true, + "es2021": true + }, + "settings": { + "react": { + "version": "17.0.2" + } + }, + "extends": ["plugin:@wordpress/eslint-plugin/recommended"], + "rules": { + "react/prop-types": "off", + "jsdoc/check-tag-names": "off", + "jsx-a11y/label-has-associated-control": "off", + "jsx-a11y/click-events-have-key-events": "off", + "jsx-a11y/no-noninteractive-element-interactions": "off", + "jsx-a11y/no-noninteractive-element-to-interactive-role": "off", + "jsx-a11y/no-static-element-interactions": "off", + "jsx-a11y/anchor-has-content": "off", + "jsx-a11y/anchor-is-valid": "off", + "import/no-unresolved": "off", + "@wordpress/i18n-translator-comments": "off", + "no-nested-ternary": "off", + "prettier/prettier": [ + "error", + { + "endOfLine": "auto" + } + ] + } +} diff --git a/assets/backend/css/modal.css b/assets/backend/css/modal.css new file mode 100644 index 0000000..b26b497 --- /dev/null +++ b/assets/backend/css/modal.css @@ -0,0 +1,150 @@ +.fade { + opacity: 0; + -webkit-transition: opacity .15s linear; + -o-transition: opacity .15s linear; + transition: opacity .15s linear; +} + +.fade.in { + opacity: 1; +} + +.modal-open { + overflow: hidden; +} +.modal { + display: none; + overflow: hidden; + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1050; + -webkit-overflow-scrolling: touch; + outline: 0; +} +.modal.fade .modal-dialog { + -webkit-transform: translate(0, -25%); + -ms-transform: translate(0, -25%); + -o-transform: translate(0, -25%); + transform: translate(0, -25%); + -webkit-transition: -webkit-transform 0.3s ease-out; + -o-transition: -o-transform 0.3s ease-out; + transition: transform 0.3s ease-out; +} + +.modal.in .modal-dialog { + -webkit-transform: translate(0,25%); + -ms-transform: translate(0,25%); + -o-transform: translate(0,25%); + transform: translate(0,25%); +} +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto; +} +.modal-dialog { + position: relative; + width: auto; + margin: 10px; +} +.modal-content { + position: relative; + background-color: #ffffff; + border: 1px solid #999999; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 6px; + -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); + box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); + -webkit-background-clip: padding-box; + background-clip: padding-box; + outline: 0; +} +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000000; +} +.modal-backdrop.fade { + opacity: 0; + filter: alpha(opacity=0); +} +.modal-backdrop.in { + opacity: 0.5; + filter: alpha(opacity=50); +} +.modal-header { + padding: 15px; + border-bottom: 1px solid #e5e5e5; +} +.modal-header .close { + margin-top: -2px; + float: right; +} +.modal-title { + margin: 0; + line-height: 1.42857143; +} +.modal-body { + position: relative; + padding: 15px; +} +.modal-footer { + padding: 15px; + text-align: right; + border-top: 1px solid #e5e5e5; +} +.modal-footer .btn + .btn { + margin-left: 5px; + margin-bottom: 0; +} +.modal-footer .btn-group .btn + .btn { + margin-left: -1px; +} +.modal-footer .btn-block + .btn-block { + margin-left: 0; +} +.modal-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll; +} +@media (min-width: 768px) { + .modal-dialog { + width: 600px; + margin: 30px auto; + } + .modal-content { + -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); + } + .modal-sm { + width: 300px; + } +} +@media (min-width: 992px) { + .modal-lg { + width: 900px; + } +} +.clearfix:before, +.clearfix:after, +.modal-header:before, +.modal-header:after, +.modal-footer:before, +.modal-footer:after { + content: " "; + display: table; +} +.clearfix:after, +.modal-header:after, +.modal-footer:after { + clear: both; +} \ No newline at end of file diff --git a/assets/backend/css/modal.min.css b/assets/backend/css/modal.min.css new file mode 100644 index 0000000..d66ebee --- /dev/null +++ b/assets/backend/css/modal.min.css @@ -0,0 +1,2 @@ + +.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,25%);-ms-transform:translate(0,25%);-o-transform:translate(0,25%);transform:translate(0,25%)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);-webkit-background-clip:padding-box;background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px;float:right}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media(min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media(min-width:992px){.modal-lg{width:900px}}.clearfix:before,.clearfix:after,.modal-header:before,.modal-header:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.modal-header:after,.modal-footer:after{clear:both} \ No newline at end of file diff --git a/assets/backend/img/ai-copilot.png b/assets/backend/img/ai-copilot.png new file mode 100644 index 0000000000000000000000000000000000000000..e9422a44bc983b060d8b3df700c52f76b3a2aeeb GIT binary patch literal 5268 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 literal 0 HcmV?d00001 diff --git a/assets/backend/img/carousel.jpg b/assets/backend/img/carousel.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2a358e545cc1b7ff593fc85b916b008284d62e8d GIT binary patch literal 18290 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 ah{JqOhxRu4qE{NXqp(7`_p;yl`2PXltaFY4 literal 0 HcmV?d00001 diff --git a/assets/backend/img/icon-18x18.png b/assets/backend/img/icon-18x18.png new file mode 100644 index 0000000000000000000000000000000000000000..19f3de51b19337f349cca1c5e0b6905a59b47b49 GIT binary patch literal 16896 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%0A&2upG zXW*#}8UX_y0-22xzTgA<=cIEOL;?x`gU4f5!XT1aOe#tO;39)z;s=sR>W3g#8lu3Xqn?3-wfU69Y0=5QdqN0|CXW=NoU=p54APt}icn+1uAOld6!8(+@ zC7~P~jf{gF0S%=Ov`&aWXml2lPQ(E_**H2GgMTucisyiH7-*dU=R`JO5QR(tJ;1Pw zM&XdCkUl|49Dv%dbBI7EkolRN+>&{)6>I;a~-#UTvi z8DwxTEDi%Sf54tpDuqY}r%Y4^6Lcm-FC>%&E}jY6F@RL)I1=CoiX$?ZpngCtg-WNA zzyvV(BGCrW1UiXDq!EcIn}tFkk3}MEI)g;Bbgi#CT3@Ab*F+t@~)!*LCXqM;$diGi5x~g6uIMT>!I6Om4jw=PFrP3$oWP(FDNGKN0+LrE^}k0G1_Mt* z*`VCu)0A-+heKuJsdNesfR8=koJ&A~V1mzAhCe4ya|2 zNq`9|r2f~K08W9-W|E0Sr60vK9%ZxXG#r5pxl}fDpgCy}f`U6D(I_f;;vjUUaR^i< zok*t*gbA=D5(C7-0l&ot?$QVlsjxT%GH{H*AblY+?ZY7!sQiDkCxgs@2od%-z1|+6 zj01QNZj8)=&)0d&VsP+yGMkNOQ9)}#DkO;WIaDg1K!=?IejsYWm(jq*lVMk)?8zpv z*Z?jtGmcGR4`3^7ltrThSdjo$Fk7MFn4rKkP=8Q-py2D&vRM>}hd+&PAvytqNw6Ve zkSPPq37+7yo>(Ns0JLY32|zAu0MGmPo^%HI3JRGBa%GcX3-EPnIn>YRqyosY0Qop5 zAO&flxDR#*|DcvbN2zoUxNSiH0p_I9*$_lQ7URF_KRN8r=Y&^lbQTWSgo49oe75WO za^mGn85U*BPhOq%Wo_Vn9Cq9PB5-cs3%hUM-#GA%1K&9CjRW5}@QnliA93L0Pl*Jf z@cudmekkJ){4@Q6_5oYWnJGaQ4T?qfCt9D3c>VrpBiynIMCQs1F*dhV&j~GH8(c zr?v0{_)m^98KkC;9c409Lme)IBGm?|j~R>%fwN5L3x|&LgR@L@@Y|C$bX7-*)DXVo zzA=v2@YaM$bWJ#NniqMQ#G1Y%L&ZtbvX8;6h38^0-$%{hA3qs-lO!n?Zn z*l{L;sGoMKjx_noi6+$fUdv*C-hDjp&&rn_W;EMHfh&I5lm5rm2lbuiRtpv{Un$vp zBLCXMhA!37C+b6nz;P^thpDTFD1Xq8oxVaJvJfa98oquzJ~{i1&ZRpwQyIE0+=#aX zVdDQL>A2=dy=^ABS8JKYG)RY3$4GrTG+iAV z8zuS@W}LU1wJ=RLx-z+XZER{*<>6gD1>7u~Ms8MPp;;6n9Tgk$(~^s4n=7hxt1DBB z3r)2e>m*5QPr5WTOAHiu91|xBoWdF^g59g4rCQQir>Z3uGDov$(-?7$#Cv#GxTjF| zG@O~MK<4hwNbji4k``SX4~b~w{zoGzqKpcY?^DJJ;~!h*A?^TNJ&9yu}*=G zMu@}*$SdHYo~zbWX5>hHa?D@5z}gqKaFe*_A34QUOZ0uxB`spbUB`3R4pz&ynT4JD zle^C6cUX601~5s!ikp>X7Tzq;&u!x-sY&8Sy*1TpmK0psoe}p_xaTC7hT5El3f-8_ zM#-erR%N=gCQ~!gof@S+k~~orPzi0sz_e^&A-1x#Li5)i2fD4faoi;F9;ucB!G)iT z?#Q%JlsUCV0|k|-)pNJFS7w}_y{a~DlKX{vdzXsb;DwG-@@x0fv{tE4*(rPH=KEE; zF>f0sE36KD*y3@3-jkPH;;B0&vrE(cyn9s?HC1*>H_f29R5#4vA!@2tExuK%Q|2y{ z>CBQ^Xcy~ftj@1t=09=BF9HEcXEm(>>f$^Ogr`RLz}+duJ^N=)p-pKroz`&b;Uv(R zdPxB+CA$k{=Dd;4sxLH+?#Re}35s>n<+XEDi*$~6xTkBqRHsqi?Jhf|QxKZA+B3j4 zi!6yYZ~=$3BSOD(gP&8ruN9@aZ{ph$)(AWt$sH@d3O z{IPktY0PSu=7Z)npiwg2XmcMJDYn+RxlY2oP*9#IYI|_ z&?r>4OfBxW(UbYmQMA30Db39L-MCpEkB%d@IXx2{cHMr#?j=V@Ysg0*c~+<=I^8(C{t= z9z#uH$W6*Epf*V)_3?IYh?dT318w)|dg~dbQLG!JQw0DMxpPi&+^c5Egj2q9 zYG#gB6*o)0RHvY|c0*H&Oeg;=^+>f(wr7YWR~{v`&^k2RjUqX>xJ~MF&$CH7{6*6F z3)9jJ53Wp==-*?SX7(M78DnmlXX>*<{~e?8#)h2}1SxlFA!$*!+BKY>C z#4TG7rLX;N79dT5F7F`!UF8Lj^Jf^I49G-(JzY z=Jp#~FPQ#tlR$gHsHO?P^&;_Vk7@w#+|CxMw-sQW&CHM?S9YgXzmiOHikC^MvOQhb z?%tGNP@B~gn{i@>w=U3*b|j$2z(CYqYdEqoCRb-vWp`@o2Hunl|n>JPP908ZA= zB>I4qx{lo!p4F3RgWnI@HGl22m)`M}P8|>4{mH2g&0UO>7yyII$YPy^#S^4sH*M9> zb;p*s8yz6t04jMWcd2{AvL=ry)cVSOq!^8vE-i?$s08 zDY|07;AcDM6hw8Qc8oY3Yu&InC8?FkRos11sHa<*j&)&WW?orGZBj^?PK0t%QM5II zCw7^}g#Pqr&n5-3b>H-1OR~yeZ632w-g-!?6Luw=l{}R$bqhwu|Mu?P_U&g{EiX%z z%gIuTE!zA__tj_Fu@l;E{!lRSs$SJSb-BN|cWjnYr3ZQ$a)ArKGikx8ePmy z%bd5(xh3h0FBr|}thD$$5`Cvh?o|gq)TZXw+2&-lw@bCEy11E>FQ6{frW)JK(p-<3 zH|BHW6!)Bh(;FXI*Ctn{?aTHw$OGr&qMy57>H~flqJ`LuA1YKrilPlJ8-%T=33RYK z_yP5Dbu=cU$tR0iZhl-4d!f?87W7$I-(vbiW#d!kcRz~x-R_-927`>_y*Pv)Kt}gE?p)UlH-a zDVOl*>WDP9bIBQl!IQ%DM$0z(Xr8Y5`B0bJkwee%T0!aZ$7X4sFOQi9t#$!(xbIYz zwi(Pp4^x)OyWOiic7IoG@9Nm&mHZfjfu6k7Do>s1Ykl8!=kMPTxZcj#W?W2!jh{_j zz}3s&y*ig)v&k7lFdKFb*_*^N-&}{ZZF+Cw-~Z;;uxiq;zctEzsTuJ(W+s)%igJIq_EDnF z{mu`h7OQ$XjvQ!~^7j{>y_hO7_$B}Qscqxran$(1@hvqV7Y0^W|G8Y_=FMWTi2=MCoguvlh>wpc=b}8k?l4|+M0Scn>{;Y(vE|u zSyR~9iGG_S2bY9%3|yv;bOq>0pPZ8Z$mh|4>9#h7^--d^H)cFimv<`=o7}b;)7rGI z4?T$S3yxD#@{78={$W(kfnbX#lbc>NTF1oD49!Yz9b6=k8vEKN_Z#nVU*9DUmRyh) zhi@G!H*RxRAf`{I?F;AbvK?01u;Z_DnZ9-If8cH3Ts$|r#L9H8&9mG_GH-!L>t3Ik zVOQercSqReyxJa-UIlR|fRJlfnJyenBxpM^!lO&?aZKC4_4P40OrkMGD$X6rbYsBlL|i8~2@ z$DP!Nf1L?QUDB1X+I8;j;_CP}^xqQGuivc~>~)(PU$^hCX83(_*5uk}f6NEJV{k2{ z(-XZqeP4NvbW(WD&n>49&FtKFXynNDjyA99yteaWnccEK9|TXooj+&ohEv8iw>Hka zeqaJKy&;JbGkyNuQK44ekK)gamERxMQ}kZ`{fWua)7K^QZ|vCC3o2Psw-*Oz#QLt-ZM;x&W^%FG%o=t4 zR0Fr8?=vHp>~sGkt3GIa&yA&T3lzw%2k~Z0?!Ro=UTn~It8PKtsq2Q%3znDZMh`9! zr;X5;_~d%KD{kAz?oV%;6x1Fi4XN_f4eJhPTkGT>)XRv6*v`5&wl*oXbM0d)F^IiI zdmB1+O!fXqVMQtaM{;aW@QpJIAOQ0=s2?|T-{yY$oUICv?G^0s!H*v{d*M9Cd9UBu zoc?3{f{i5C2l}o1>M_Z%y@9)pmzm#KskT0m z%U`y}Wkp-j^WjmpYfMjoa~|AO+9{Khyi50IHk@5NWz!;gn=L6q>mpUV?d@6XmE5d$ z8`wO~fo(v2O_^@a%Wwx9#T}=t((o$tRck{bKq%S_`>UpnS(w*Ou1r19Y2#+M&oZ6X z)06wa;O2On;R?jh*XGUmwX_f?!o$6hwcj;uk{2tGE1A3BZ=J)5TTB>XBNG?cYJK4AON_2u zc`kouk-1|>;qwbRF)?#?hOG}-bY|Y9*wmH_6X)LzIa}bTIW=+X`O^na%HBJ@%i>=l zzFT>~{>*|~W!8FO)Kq|YI`GJb>3ai)j~!8vbFr6SPIKRD?>4z_(sIOP=5P1M zC39^;6iA(SX<}o82xC~QAi<%KUKt0`-WqDAb#a!tK1BW1=z@o>Qd=R|_+6)Z*yY`8 zgbkeVm81Z+0L81_3Umr`;JiE2+%?qH#dn)({}TPNKF@Caahtd43dFc(=-zj{aldSd zJLbf`b8g=n582+;gw#393O3f-{2Bb`mdvNED;N3gG)U=~wuk?S@{xY8l)Yq$yY@s0 zKIh5C^@)5qTI$EHQ;AtM7g*V@7H1n-HqB=$+T%Lsy?-`s;_H@`p?5bOj_ny2*E3U| zGUHCmsx{_SW%0Fpa`!F|EtM}@`oQ}%nr3(6z8&#okIkjQ#nWo7Rc<3A+kJTpMSXe!ZTxV9}J0aRp;O2*H^@pPeRjJ#u@C(XIBowkyZ{ z77d$Xos#70cJK`cD>DkcQmaH+=CG&Kk`lqUmN_1Zc5AD-{~_C<0L+q``Ff~X(3Jz> z%ydX!K(ZrC#xXw?up&|rkxRaH#qGn-O__4r%cDroiYINa*>Oh{;xBX0eSS!@{_O3F zsJT-phAko{q$P2UhXhc&p zW!zL|!;V|sm!1zN+0Id#{E(Mk@$CQ_S2A|L-+96DR|Y!L1|sr2Td^;_5?BuV{skS} zEQsUtsLstbvO#%K(kYKCGYVXFtYtbyuvvHQ5IBWHuyeRz?S;3V;zK#+&1t$}$IPNo z=1)PAyx3@|PgN`I6MywQeIYM9&u(9gnbDe(7>>cUO8T+$c_|6A@m;>ZrUa3@GK+{E z(;SX%YIUuh?fjf25KcdF_qyis9)nB7(od94WuYf`dDU!9-MN9Y;biHL$i-_Yo;dfI z+H(U?xodu#5>GSVoPvF#63zOJ)4zM=So@9HQC4uyuD9uwd-5B@gM^cuC%Q^tGkdIR zi@VGs+jAA{PN}sz`8%b=hDM2%jiTHMHak7~-dN&D7VLiIz-shpURk|V>lmc6s=x&5 zn3B9^$s{YW=7Nj|zK^^fncOT0+rGBeI>qu`&gh^WzTOM3P9DDo-z!D=QSsobDt+wy zP5u|3Tomu z<`Wl29%`@a7hfC;_v_q~cNNHw39Gl!E3F{(G$wF+;gb3+b8gopWogGsFoG4CgPuE}=~=p3SORhGY zJzZ>WGw+Q9dNprbAH;rTeZ|w#rl*W@k!oMQ@F>1Y+;Km0azyU&+b=gyDN*i*6ZGF{ zT`jFT73>W8!5KbXwaJinqDU6Q7IfWF>k$)PNpb;Bs2N)W7fO;`Lo1IQf&|35h_u{j z*mnC=Jd@TVC8eR8NI!mfm$;~>PmSdI%$w%wj)XRCPm0*mGm@zIvZO7FQ7SGUr z=xtc$5sb-E+pZT@TBj`uMc2+23|*UsKn zjlax~vT|L$(6I|$9JBPGIVI+mG(`41+-_}0#?qP2`W3obS=E&8a8K~bkbnrbYH607 z!x&LmdDkabScGlOE0at1*5*7}#ob;|&@7=*{aF;Q ze?JaXH!y9M>C<@4!lWb19^TK%&@jCcg6^xn|MFaWV74a_!q|( zQN}E&eLm7_@v68nB}IYz)QGnx)9l}rgxjurCHG5mi`4ufHNoH~ZBLt<)4R(O7eu#C zuo$Mq%z`zYOR^!StX859QEx`kty10So+}V(+d+DElFc|tRpEYj*>lt`-rKoJUYU_0 zDbUH!O9ofEI=!*F(cbfFwcHDmyRdT%(m5x|-;j6YfFz-!u2C}arPu>-XmQL3uhhpK z8O&5Od*_L5jb)IyBUGaT-4(rb(iq=8BoOLyf zSiUzne^DEFH3LW)$RG=C4IB2=Zh3M&NF`)-wo9i}YZsc=)Jfu^Cf06ltE}C19A#T8 zvkxVjupmf+89>&kG9$jwG}sjuq%SWw3r*7vItD8H7i2O(p?dTNisa@$=WxJjOQ zQZ3n_`7!q9uLHk(?Oy$})W^5-)DB2KRmdQzIYkB;-;gTE%JzgaGitER_lD;C5=hyK z;FUs-`4XumWPBCK9*9dyK7iWJsyZ%ZLL}GF(~(^KLQ;@ZxhZdJe6Vw!#O_4+(Iw}@ zJ=&z?a!75d>rkUQu?>tf^bjVB5ba~=mZyH!09*+ zL7q#q7_g)aQWM!e`{%qh*9R8q#@vyBD^b3KND}Xc9HK|HWJ21~QeCw(f9R!a)i2)f z(uC!{b)!wA%^yFW$lXYms!xkO+8I6F$SS$ctP}#S+I6DD2PQ>S*dP#eU5ok z<*9kA-w`+GeVCY=-0Hp78mjxSQ+WOP2!N z7s6&!hZo@-TJ}Jq z53ksA8%k0$>mezv4Tw|x=Gwt0)DI%*kjjj>I>{P1bDSW_t*Kk@^V4Dlg8mG-Vdt6! zA8K7D8f-JKh~I2FtFz@|YE^svPd*Z#3n-^aI;*+Rbau5Y*rmp|8vP-rp&8(<&`f0^HYC0~P^u?-AMrYme+#obltl~Lqt8XP5M`s#t{dttA3gex`OPgQ`$JosO2 CK~9zc literal 0 HcmV?d00001 diff --git a/assets/backend/img/icon-dark-18x18.png b/assets/backend/img/icon-dark-18x18.png new file mode 100644 index 0000000000000000000000000000000000000000..3806d14f7717ac558d17f032ea7342453d8a5815 GIT binary patch literal 15181 zcmeI3TWl0n7{>=A1WHh%Tnvd}T)Yxy=hoTIjJpeU7i@)vrY%wwVy81_yF+(p#+@m< zt%eXl6T`)7qP9vxG%-F{c~Fcd#0W9qg9H+gBZ8#6QhSzuN!vnfvgjU9zqD2)3$N^8Ii@B`js>N8S6jz1!elr`Q zOI^HySg6%cNcW^V=!BgIv=ojoIxos}ixTD~MHZS@&;rLtSWaR2W`^TcPEk3Yu3Vvb z6TFM&jkMaCTvJI0tyn1Id5+4mg+d`*5W{x9pXC)rVL5>n1P1nC+#$=;ij3thD+j5@ zNdi~Tn~rDN7VXE?`s_h377F=^YFA}mIj5G$ax3g0MYgCpEFb3BMj}J6X`I1)wlp+D zXF(R^faSSR$2ZhD8QZhnj6FrlntRH`a7|LFTJDD9&E*=VcD>cxA%Y6hhDx`4$N_98 zaP7go4pwi6Q(4w%_MVxpFV2KWzGup@gQ7Ww%=eUKrL9n2p(vcIn#cpqv-91yosE}w zSw|Hiok;k*s)c@VlW7@t!F?#oqLTW0*Q0@?=7Bg=$_y7_c&VFLR8delk>Ny@;{rj- zJ&_nG+c48Z6JiK3MnvT$RZ@a60zJ_fuzn29)20i(%_9e0^8~FNktWL}FTGO=ox> z$c!v1%}iR6S`(Rh#L;-8vN5#c(f|PPQ)a^u*SxBWspUC`Ze?z^}hps9J!v zBdvB~`I=H4tD5egZE@W%4`4*u39a>E)sz*PIe9s!hoBrkAfGx%Ap`Q@k+WoY;)>;D&I&HrE_Ty6WmTZZXX)jwT^1}D`2w+!`NtYn$jZxJ|n zvAq9Xkp|tUbTeKWbfeO`a-(H>aiNk8X%49Tf6(&r-UT1_Ks+Kzq7-G(W>nE(7D2Wr zX~J{Z_0JPtu4qt4L*eGBgaJoISYE2YV_B&N%dPOC4?b_QwFk~gMQ zyU%{#^W>c6v$rjBx<+660-Ofxgg=fSD-;!X$NeAX-uU*-J#CME{MpG>rw)bmeM^sI zUY)sL9U1@a#;!G2FSWjZcw1{?WL&)1yY!i}CuZCx8t>ln=bqP&J$z>D*@dTWkFL1% z;^?fAul_o6X4ka~SMELdv$AuGH*k5;&dB1{6g75vZ|vmw{Hq79Q(q>x?(N+;vg7(k zb9eW|*1rAC=zHo&V(h0CM~`ehdw%)3L(aZ)OJ;XI@!jW literal 0 HcmV?d00001 diff --git a/assets/backend/img/icon.png b/assets/backend/img/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..19f3de51b19337f349cca1c5e0b6905a59b47b49 GIT binary patch literal 16896 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 literal 0 HcmV?d00001 diff --git a/assets/backend/img/layouts/acenter.png b/assets/backend/img/layouts/acenter.png new file mode 100644 index 0000000000000000000000000000000000000000..72b740e0903419d78485747c01fae2646f536f3d GIT binary patch literal 149 zcmeAS@N?(olHy`uVBq!ia0y~yVAKJ!PcSkA$qYe1F(Abj;1l9{@7uq+JHJbXpQr#u zygXeTLn02py|PiTK|#RPQHFb?i1+0n-Np+%JNOis)69PqAMDnjDi^se^V{-gr#5~U w|Gg)-Pw2Vk7NJx zJ~sdbqdi?5Lo)8Yy|$6_fB_GK~%G9}Dbg|zTtEi~k z+unJk?=P~smzq`k>F&~HOToZ&`?UXzTeg&C_gXOmO@x9EmziIctdua?eEAbd#M9N! JWt~$(696ldK@9)^ literal 0 HcmV?d00001 diff --git a/assets/backend/img/layouts/aright.png b/assets/backend/img/layouts/aright.png new file mode 100644 index 0000000000000000000000000000000000000000..25a085204ff60188bc0798ba0dd3a647693c59c5 GIT binary patch literal 167 zcmeAS@N?(olHy`uVBq!ia0y~yVAKJ!PcSh9N&Sr`$AA=PfKQ0)vmgIvJpME9>7NJx zJ~sdbBRyRlLo)8Yy|$6J!GOor(U|480TXMSQSc?fB_R`ITu#Mi*6zJ^@s-Q9i^)r^Ln02py|R&$K|z4!;QIrUa<2-#ad1525o%8zMDjzlP lNq=ihH?>OwwK6a)F=8w}YxnohO?4*_*VEO{Wt~$(69A4eFv9=< literal 0 HcmV?d00001 diff --git a/assets/backend/img/layouts/embed.png b/assets/backend/img/layouts/embed.png new file mode 100644 index 0000000000000000000000000000000000000000..f6f3b8707bf8deab438f52deb74f17bfd318dd15 GIT binary patch literal 149 zcmeAS@N?(olHy`uVBq!ia0y~yVAKJ!PcSh9N&Sr`$AA=PfKQ0)y>I{O?)+Z&^6$g{ z-#~Kio-U3d8TZ~^GZbV{;5l%hizU;v(JQTQWej^;J>yK_&HdA+g*j&*NxZsr8W>zt m-Cxh3tGhOx5vUsq0=6*zOcXo#@=@ejkcg+NpUXO@geCw;^E2ZB literal 0 HcmV?d00001 diff --git a/assets/backend/img/layouts/fleft.png b/assets/backend/img/layouts/fleft.png new file mode 100644 index 0000000000000000000000000000000000000000..f2163c072e8bd4ab72e2e6341a803cdef87264f5 GIT binary patch literal 162 zcmeAS@N?(olHy`uVBq!ia0y~yVAKJ!PcSh9N&Sr`$AA=PfKQ0)y>I{O?)+}O_j^rq z6i6<_)5S3))*2(F5gy) UIlJTEPN4Y=p00i_>zopr0LE-VYybcN literal 0 HcmV?d00001 diff --git a/assets/backend/img/layouts/fright.png b/assets/backend/img/layouts/fright.png new file mode 100644 index 0000000000000000000000000000000000000000..da398eb83363c7a429dd23174cfe1c1cd54d0494 GIT binary patch literal 161 zcmeAS@N?(olHy`uVBq!ia0y~yVAKJ!PcSh9N&Sr`$AA=PfKQ0)y>I{O?)+}O_j^rq z6i6=E)5S3)XGL TM*g-6pz#czu6{1-oD!M<{M$h$ literal 0 HcmV?d00001 diff --git a/assets/backend/img/layouts/inherit.png b/assets/backend/img/layouts/inherit.png new file mode 100644 index 0000000000000000000000000000000000000000..f55befaad606a9fc3f3a8a21c2cea775235d1cd5 GIT binary patch literal 139 zcmeAS@N?(olHy`uVBq!ia0y~yVAKJ!PcSkA$qYe1F(Abj;1l9ncjx!LZ~w$@hR*_u zIC#1^hD02Gdvl>6g8|Qx4R=ca$8w*ZB`Ea6;n=MMU(N4ke9L;5AkmhHfm}B|k=~um YtG(b^c}&SePoP;0p00i_>zopr0N)-lUjP6A literal 0 HcmV?d00001 diff --git a/assets/backend/img/layouts/offcanvas.png b/assets/backend/img/layouts/offcanvas.png new file mode 100644 index 0000000000000000000000000000000000000000..81e282e8b2d7927db0aa7faa4e31ee1109ae1421 GIT binary patch literal 194 zcmeAS@N?(olHy`uVBq!ia0y~yVAKJ!PcSh9N&Sr`$AA=1fKQ0)y>I{0uKudK^Skxl z?+vv9jX?22PZ!6KjC*gdJMuOd2)JD2m7CBe?~}k}|6<|vdsVkhGB5Abe-NuKT)*jk zR+stB!$}+6qROxEiFF@M+8D9c^m^Xrh|>|a`!lvp1_|gu#Boz^vqZbLFO@0qXQ~2P O&fw|l=d#Wzp$PzcdQDgW literal 0 HcmV?d00001 diff --git a/assets/backend/img/layouts/panels.png b/assets/backend/img/layouts/panels.png new file mode 100644 index 0000000000000000000000000000000000000000..62276f72458c08c9a1a14f92738282a6c855a6e5 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0y~yVAKJ!PcSh9N&Sr`$AA=1fKQ0)y>I^xy!%^s=XdM9 z-&TijIRV8ZJY5_^GVZ-SqsYjhz{6m`BdF=DqEY#O_UUfj17WA_j@I5R-x;Gf{q)l! d5~yYIjHeE#9k%^7KMH6EgQu&X%Q~loCIFPpM#=yH literal 0 HcmV?d00001 diff --git a/assets/backend/img/layouts/vertical.png b/assets/backend/img/layouts/vertical.png new file mode 100644 index 0000000000000000000000000000000000000000..c1a7449b6380d91e9623dba1ec73798a6ba73e98 GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0y~yVAKJ!PcSh9N&Sr`$AA=1fKQ0)y>I{O?)+}O_q*r* zZ(b$=kaVV}i(^Q}y|-64@-hf8xCEY#I3#zZC&{DNWziDF%KiJV$64q;+j}T!iabY{snT}FB!Nd0xf0mboFyt=akR{0Lf`d ASO5S3 literal 0 HcmV?d00001 diff --git a/assets/backend/img/login.jpg b/assets/backend/img/login.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8a8594358df8455db5ea1307c7249f92a74e17f8 GIT binary patch literal 25711 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 I9sPUi-zNO5{Qv*} literal 0 HcmV?d00001 diff --git a/assets/backend/img/logo.jpg b/assets/backend/img/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..86fd50891ca73108b99797846ef10df0d5c0d357 GIT binary patch literal 21033 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 E0E)_LEdT%j literal 0 HcmV?d00001 diff --git a/assets/backend/img/placeholder.jpg b/assets/backend/img/placeholder.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b03fbb79727aedd089890afce91705aeca44a5dd GIT binary patch literal 1407 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 K!}jUR3jPna?}=9c literal 0 HcmV?d00001 diff --git a/assets/backend/img/screenshot.png b/assets/backend/img/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..2a3222df9c00bf33832b7e93c6624586b87510ab GIT binary patch literal 131265 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%0D8ca8Pe_t=c%Q!fF1t_fSXe zo?nC2+kz|Qg@LvEc4QJKe+6cq)2sA<`F(PClazJ)`PZ zYTKOuxcHxNzxluxCHf}UQO+SwKHq>n?nPF8Q|(Y7PYC9oQB!je@?s^FtofMm{RUZV zVb|L}o{0%1j7uW3b3W!i%hLBAkfpS!IR@e0k(!pHu?QHJQmQYizq8HSx(4n7n=>(K zjcwo%Q#_J^x6-Ji87XZnpak9U}KT;Tay~Om}M; zno@VOTgpxjlpW55=i{E1+1(Xo5?aQMYT5%)+Gl=NAp+Jib2{V|z?phyQdn z6JvxYZntG#K|cvp)4=yJfm?OMOo(}t=g^G7wz{~&Z?x+&w2x$!7v=wB1N|!Wd2YY> ztJsA=5y1yiuZP^unU&gvTZ4RpQylLPUDzTsSccRm=ebMyJDnD10Cczhf@ zbpvMQ6k(h|!^!hP;M`OAgWS-Cd^s{U4$hagwX7BA=OL;S#g9%%*-O8cz;U*pC)Yx@ zx4ceuauJ{R(%5eRUGp(PES({QE(*hBUKZb?Gn`my;0VlBH$h>Ny$CFlGo}4e@}GXA z9PA11f77ye-#|e6>xO9D#4a}DG8}M>1(p+s)YW(VcXV}rA^M5sK4Vfu;_q-L+Do1E z;wt>qlN9CFKfi5abu*_eRSt{-# zyy-U}hMYKE?iS1&`ji32Fn73`l$@Hz7K%8Eht_gGb_sg9#Obqx{z}c~&_QQNV?yW} zm9!zEuC94CqyG1yD_50%I7@868N-9StC&-4`oX)c=HEy-mA%jBZ?%EKv+9dLGt)qj zRFjWZd?Hkoj!m2d7H-5lv!&F{VkoFh62fTYZEPC_y$JU@z8LgtD^ctQgstN`OT+a< z1zUaRa^byYcQr=Ga^Re!9>d@6;`D#Q*NMZ})t3ZViwXnP8Vm<>ZNS?S#<#X?L!RI` zhn(o{-ZTmFy*I0Vinyge%w<3LT}Q~y@OZw14qk(28v-Q`igl+Pe{k30OL*2lR1_O$ zK6}O6v;%X$ERu+Fx(4pgZw1$)qC8q;RIS(b61%K+h{3gI*Y1wvvgtf$o2s6rEAgN0D&Z%y08$%Edf?{oQ7_42lsyS!h_?xdh+s9bJ%^74od#u7ga$C6N*oY_agb+&1{=52;J_ zX(h6nx;L&JJL;wMeEJNZa?L(7+CC*C0B+enCK-zMzox;a5rfs76vU&?66x+mPa2wL zo%jXj&T40E?v!+37sbl=8&6f-CB^-|R}Kr56GjnZxUMny0N^s@t6%mE(u$Y5JDY~M zrHSH)Q$AmnZ~$OUXAM>pfy=Dly{oh(zA|=p$&(fQbl~R9qPrvEoaa(qYZ) zx8LIZSG%qD15nMt60Re$`zrXAK zcV@1c^E`9r)SPqQqRN zBIbP05hV~aSphiN!D#h!qw#a{5l7>plz0}=jq&(7qQAcU63#w<ZSv% zuZ&uk(!Y+~d42KF7!ndW4E7)sn$X?Fv5VnfBWtLB>TXzA^k}#&Uhi(F{{$mrsjhpp zqiXYUsMddwIfi@1le7esX0tyx@my|_tO({5aVBKe%H~r)HBtA^-+jD>lr)Xc^51u- z2suaWvSTE%@g_>3p0A$rKys+>7tJ#ZLth{vP}kUii|(l?mZvn%CIg;;GiQij6%Ti4<%)D!TjL()!dJz^YUXMVJbcJQMX z+{m>9Bu{b~-<$^$hG~au9dgzYEP2u^WeIa-ZY*fafyyO_o^Zn#Selkuz2TN$G`fpn zd66Wz4S+N>bE9A7PcF{Q953^|M|l@W;&pOFyQb&x2R_L4R3Ri-t810#(`XH#BGeG2 z0yhL!w|n@ZbJ&|X&4ztF#KW<+M&*{F9oC|*f8kK^(FNY{E7@U{sR%8`6+N?+IR!<- zFnINPpB*Erx=8~Z5BD1vcW(_c_B;B2($5pDs?LalU^gnj+8R+)M ztl2h=;ZDzlDM%p$;XdtLA{kuZZ&=hC;_jVI-n|#hgL@k*|){E7JU=#_uc& zVHcFfOY-{V-Nhgpxpi{x7@N(AC;W|Sv7wc4Fo#QgY&d!y>mce?sJU^gaI`+Axs20UKlb#M=^7QIcTIP%;hdy!kAhwuFKnEdwi zpGi|3q$vkA4&a`SD**36q?_W(&!HI_=ZkJvx!57?mGSXlUgZUnC;p8A4H?-Fao`@_ zQ~Gn>*A{>NxMi1+NBC?{S3heK!N$W|?~-bvMgi{dRT9;yaP||{{x_s~CnsgzKb*q5 z&3RH%pfK=X^C#JVOq!S${_?x#){X5rbh4%&f>Ids^X%AyhcT>~qwIcaZBh#oD)cER zThX{Np)=*nXT-lAjU()th_m(eV?D*?pGar`jybs$pU~w&Mp}<#ObtAcw|ijQt?}A0 zuspX@gdIPF!0YC>HVl1CO)gnp|Kho}GH*|Ggj$=piBdYAE}!!KAskp-&W8Nfehr~9 zcCb0et=o>iJ!XHUrx_3Cv`Fs$!wJC=1IN&*l?n2+cB#V&jBC7z<|7x@$MJXgnHL?< z#b|ntKnBu`|9pX0Ac5k|t)1bVwfc2xbC!iD@ZTCjld)6{6jPA@(bqpx7j>mXh|sJr zvyXnCHZ^dViUq#ko7JHl5@>@FjZKn7sCZlzD4|?xXtuP*@zhIqfZy@6&D(ac_}FHO zsEE8haE)c&6nY$_mSAuSxCrrs7uRD+_>`NAHIx!u7mH`A`VUh}Bf;cI^Tfixm|-ZF z?hRHiaW&2G6gqpQ4JYb1iRQf+ylO_H6}?@(D%zR2)a{87uuuZn zF~)+bU{G9|{W*mxcsx`Y7^68P^QHCn3?ml*bQFg|PrDPB*yA~p+I)t@%cthf`M@zE z)+tR$#Q&|_d`zs(ar_KpT4hc&HO z-w&2ZM~uvTT#1mr;Cs-6g0g&(O(@b4$s4>1xbV0`#LexqeIUKvJpPmH4JR3k_&Gws zVx*ml8+wsAxo!hGx*yOSRCo*guRdN}xxsdmtdqULN~qs{WGn!3upAZvZ6hhBEVL>9 zkQrpK>F2?Q&#__1WY5u1xk zx`v=)nN%vw=pgMTI$;W&$ou>8Sb~8ekW2pFRlYzcf|KRYU$)7I;aN2BHSd(vo+8Xc z9p(p58f1MK`3uI9vGr%o(_t!qTGOO&{nfuN9A}G>`+_YDkOl;KH?VzQwO%QeANu`iA94w;usS{;NBE z&XW$^Qe96ntR^X#Td92_!4}*hgdaUc?PPN{WcYP0zusyvC zDu4-pD;-bdFvo6qW_iTSt}!g+5lQ@IsJn2@f8aM3XJc=4p#y?M?YAZBLi%MYYz6Zd z{}I=O;nt$80%VVRfq|@hq5`c2ohtt`oVK28lnAYAa|PvY`Gd%q4IZLf<3vw1eHFy= zNu+H#2JCY_VYa2^WODG#eq^!e3*2l7&X#S?XBw?%X4~B-uIvR*#;EMl9BuG0Kt+4h zOB$XOm6+6(K7tcgJ#9N1o3kB+mIXFmrDTFb*i^DbIC#fE_``=?+GqcbTz7_;b8`wb z=Iw(InyNO*X0*x=WD1DTq3_n>-o&)TOe17wRBL~LpUN0xz@6N~tAJo@Qo?XkPGd|^ z8;q0{%iZP?y>o9DLvPtMs}8r86>p~_bJm@%{bWPu9S_!w5Z)ZE{kke@{xb|+^h_(< zVB0X9Z+Q&^dVhQEwCDaow%}5Zzm4t*2&JMr)IEy$K#zRZY!^znSn`X;cd#8c&a=42 z^RCN7{7tLMT$(=R@m_GmtcHpg)`bQyIT-t&Oku#4S5GqYTG4c0kM=nS`!~SYqL_gB zwK}IA_iLNSyxWyusqew#v-4jhXBlv9L}FDHQQIaDeXDV7$NS*?QADZWt-v%!eFPDB z=6y{8htxmdj(W}&V5=K*#P<#!>g6{LQ^-#&Ia=W?x_TerYy{mLpJze-T9eTcfdOqf zB;9=o-AdtyBSJNmcvm;2#mG}ES{0^G0gT~>+@f32ZjR0DzVj;6R--Z zJ?p_Z@RL?Pn%IAJ2;pT>2-ZP*t>!+)dka5&BlPN<=2t1>tjF7B^!1LmE7<#F-%9*o01kSTvs2Ymg^J5f-U zth5{UX@G}guyQpnE<^7#zcQT+)rJ-t5n@~d`RUDYG8L(O0M1l{f6cbh$MS|4Qx5Oq zz@L+Ffd3=chxh$l*>U_?Nhkl}>V(LnOrTNN={=K2H26Eh)Z<})I*tVy2KJoPwz`}v z^D{pAzZeM67D0uwt1Hgl#3~P?rb%G=k96`j`1@sdzq(XmhUww?v)SFj-1A*b#fBF= z=npxUho7H$ZQ_{y@-C|jJ-Nipj+m{^<7A&bYfmUZTSxxxm@tIv@h^G z#x-JoEeetnbl_Sw<-N4>@jcy}%m=l0I&UC{i54lL*!LkDD6RhwaQhtHTYhnigkD6Y z(QmD9pp8N1a8SGGt^7$RF&)-WfyHKvX&NWGSJ?{dB)^QJ{pBg~Oifw3?}~>bJS2LQ zz9XLHMKrvb@g1HqdJEL3`SFi%6@aDVn%{3dx?9DZUJ>6*&=#1|lzv>m9}2ZVaTKx0 z!>pNL)?aS`ki*rCZx?;O zJ}PeMJ0OudUQi?GB4@MaaO{Qr(tF+C)To?%G-6jlS=_9VRp_Jf*h5{Puy}T-lK=lf$f0Y++qE<^1SIyUC9->YqdND2 zHoBTV(=xy=D}N81^MR}3RoyVsQPJUBdn-Kq)q*^d`0GOt#m0xb3yKZ*Z+16dnl575 z3)Ci8*~iZIeA)(59x&E)d1J4pIQ_Gm9N#}>bltxluOZ*!U7wPRbC;7Aa88@1c?)kT zn^BAhKew3pV7*IIs%4Uo-iT|30lPU(cS_$}9`xx21~? zfg<&QPbB8mLfmAbdu=<4-w;CooMz%GB0NLPedH7hzT>xvxX62bfa^{9z@_L>?Q|C=`!w?omsD3GtuSOmfMYn+7`8TYn3paYFo0lMtIkrf(-Pst73S+&oO`ar zo=FtJmEWtMKbOOvefm$x$N5IW&rv?p;ypHrCWN9jna-zI0mt1_h!8WnFVcB={CKG? zkl(~-#F%zEJam?k_?$O3ZPPh&$@mvnU!81O#4qisv3dnRqM0hVtDF+v_;B;yA@l{fL(_cllKf1w!?nqwEw^0Wz{q^gL;2?@m7pi>bZPK2 zlOn+5#5Q&JBk40@{&u<-^}Xx9q3as}b!`siygybpb^}uAg3`k){tk}DMwh*~dBmS! z$$$|=R5vJwfENQ(;*ECD^dB%0Peb{JeN)@20+5=5U@N?Y8U!&MB4+Q$$v6PN&TQzK zG@0)A!J#y5fqbuJPDpa7+~j=}l%pYc*ow{?!qkDs(GMXg`xfZH`bpy(nrjR5A>@V3 z;S=P${ls~M*m%3iTHH(=$aSq>N58`KEY;q?_uv#Ev)m@0D`+%D?)HN%uG-2>)Rb+E zgDf0e)LmV1csD91foi8%i<=%zft##a{6;OqHcb%nnhMGj8vxJE~ag7^*7k{>MY@QH)QE_;zdlPfP z-}p^HaHFP?J(=*mLKNP2`c=$~A3StpqZ-eocB1dB*UIsuz(e>IasIi3lZ$$^sIO(V z-siLe46!EzGX3bRYbnQpn|RCXe>J7Y1`+&83?<47oc-h%FMuZb-?+T1w^IBy6*#}+ zSDDxHesq_3&hWlvj`FePd43+m_RmxaT_2jcpv6=z>{+CRJjz2|J7P9y>&9YYUbsyq zK!Qj$^hiG#BKj77pKTLhB#H|B8!bD*!@C2idSPPmC%X_|@Z>^Wnd$Hre`y@kRG%RM z2z&}0JU@tI#%|l$N$*CrD$**Dle=`buivZ73I+IOr~BI|4GT0 zKtg_AKmDP7oqjXgneTc zBSFwmc#q`)SP8gE*9S7Zv4!YMlWvHYzpV_~2k$T}#Cj04U+`QJw^yrE!1z3|@dvj2 zoo8QUk-lWsj15VkeoL67b7C!zvJQ(=g`Tf%R%}w1K8&zMUWX{N9!FMQtS)=_-Q}?Fz&^3?cd6cru2-@TtYSXw>VM>K zpCt zzoe+Hbmo_VX1yLnh~uvWzvYj`LN!{S9^EvYJ8fJoj&JP$qe@PmgnoAWM039MM zdPN1?rV2v7-BuLN!#( zCBtp1th?HJ=h3|X3!>iAi@|#f97h_PEb=)OVO#3pW`Wou+Jw%F|uYE;74E?TdQGWCPBQXIg(hlU1gqEe716@wnLDZ zSs{C(e^MtTHaFbIhm8Cb3V$KkXMg|O#SJd<4SceUX_0itHnv~RuL4?bRx=R#Ccj}q zOk}alNHz+mqL?p9Hm5K2^v3plF8;;1qYqnV+h93b{>6y)df2d*U)fjcH&hfBfXJTB zu{SIK+-q{0kzjbJV+*dwKG(?<<`} z!`UF-9%u*1mhc)l5Q9VreT}I9Bwq|~Mx6D=b&|STN;lB0j5Z*m4!GUS2;IvjIbMe$ z38Sgnj3D(0(iMJh=14iFMXhLchijYjl^-R&3A1Hb@dw?@a%P>{pD$O3^g6T_0*xSh z(W=-dIV^%d0h`c2IGfR}J1rcSYHz9#AET+>Q$1adb9Yz;%W6g&xx>BPfz_pgn-3M1 zu@VWt7r|d3ZBQVK>CcSF7K|vQMTBF2HO?Idg|AiHL8zKRA9()4+y~lV@Rn-%fff!= zHwQHvtaSb>S_Vem9_kA=qxp0%z3%^aNibxqy3nnK?$idpy1!QB2E1+A#ugC-fR9^z z-V4g^gUOe*cB4A&AQ$<|;LIYSo?o8pb%=57It_lyx})FlLo7cb;y4eKv1{2YLd=_V zMurz6`oSd|(ZrpZdG0V5U?*Kv)!)~3`}2}9NdQp`E1KQaQ6tE}L<>g#VM#V}mC%+w zZoPuK$P|+UdP2l^)*EwtI!Y_KA)5G{o*;Sq!TS>);8n`IK!%TUP;|AYexI`uY6?KSiBwfmPqv(ydkhY7(R=h0GwDAU`*SO`;)PdZnNkXX|&IDe)1L z&;f5Cj|Tyqe=V*FBg}=E4HS}}j`P^-M~rW5d^njE_R?!mymKsFEYX#|5d z{F(DNU^c#qh}T}+{~c`}p~JdPhX^G!+Dv{nZU^kK3V=mGc6fujm9sY?TEgX7PMXW0 zU(Skjf7F3~ue8VVhI%gEpQ)h?eFj`3NJsJCG}>FVm4NCVXVFKzS7@GCW)Gkuh`?%$H*@;7{UTWt z_vBJp^}m!1DakJ=XJllsj$(VshYn>ijw+aw43&=X-5DJ#Ygv~k|4zrd*Ur%) zTZyQ%d`)@e>qPKPBC`ZOi}C%;V?XFS2H#mR1HO+`Apu;js#tQXC_n3H`7K1dV6b## zk#FhYI@^J-wcf*F$>!!Th9h|6F^RC~6-cM^c?$6hEw8RPYK7kibDOW$EZk#3oeg}GSdxl%9 z`!!CaO5V48LSY6@Z$t*QP~W`V8(!UMCMATY47tPT98@2|OIUq`=HAgTjuxB_I9l5E z3!RB9-?1}%ULBL}YwE!h?1T7IXyC5=2S|UmSo79MeeL>w#2NEk1@FJHWidHBME)hX z)v^;UeHaFw;+g7cDg0GHk7%m7KlB{JC+^9EevcCN&}#>}$Ka&STtMY=#__NN<51B8 z9St_=tc`&GaE863w>l_Oh3`dRrzYfVwdEzJDUM4QO-F`&LeSVYsLycZPXV)Mm$yMGS?c3 zMc1;D3aB3=jhxeQMMJlbKFR9M+BHQPx$IlIsn@aK+wbipk2~qEX)4rMr~4*rc(T3O zPu^L-+*s)8a(d(>XTAT6hisZck_u=3yZFZ)O3X|$=!4|72B%Xavk5!_L%65<1EAAQ z+@Nk)@lB3#T4j*?cd1pWHw$kc!Mx``A4@@DckK#`1@Zwg5}K5~d>x`O=FBKjGn@i6 zrt^D#MZC-lJm&FvcDYDTV znGG2H7xIb+sm3a7S}I6!>yJ~IQ~QXa$*%6pJwE#(^>_!%BZsfgrhj2E_n6rVvwqR` ze)W+4c3PM}Sa%7w2fw7^A$TO3L~LrSmRPf{&l@dcPZ<}5mmQ01_%oN1OO!mL2S9Zm z@q1VdAgES~rn0BY7o^S=@>?@aSNbl}=klV*CF0v@qwnm0t;xL@5$<P9%J7?;;=v*Yv2!k=_$WXyz5Op_ z2rYe>%RRxn9z9NPJvak9bMPk4pD~H(A;;WbF;A+Dt`9#~jSY-_I1YT8WmJLDr&NN? z4$Y=;{?FW*C5Rd%C(pfj&0lJq?dY77p*~*?eKP^)Ou0jS{UwiJ z`24Hn`a|4ctb5Dc%z~56eP_iJK z6W19BidEtP<}JEbtG2Vf!B!woWCV}mI--<3t z(~Ab0%R3mTNWmEb;<>|HJ=I{>&-DrPrjy}FIt^Pwg=MRetvwsA%(E91q znVaqIRv`592SZ1(5CgUYuF97dVeSdCxin=mYv+=xj7Q0M{&a|VAGXr7{^a4s!Xtq5 zo~`2TSrpXop9)zracYcgjZ|`R9g#=3Rz(>I`84AW0l*zH!yg991s~N8EBit*f#$+$ zI5?Y6_6QkHFCM$B9b@sOuI|8RgZ|}g3=HxJ!t#;_g}u?;eqNOdGarR`>9TO&;bJQq zQQf0gr($#xJaY7m#Jf44IW)Djv!9KcG721y^NZjvU?d`S0_lI7^)d==wy;Em%{?4TLapM7=J92qh!~C-<~z2Kbp9u7!PdDTH8qx>M)7ask$Z6(Sq496E#_ZD@4TFef0zFUoC%uP7m$a^zjSDO z@lcz-@w<-iomSJ$aUzoy&$~}dYi-Eou&OI(*{=59CvGwuC+poCNfiuwCO#l{M)Ot67flJ1IQ@ag|y!Xw9c_Bt?&qUY>QtCD~AM3HSF5)tR^{zKk85ozp#K* z3QC7-6D`FyA^%1mv9Ak+hji{xZd~J>TxQ@-dv-6%X0oE)g-EYL?jEoC&gBMbI(`{p zNH0p!7f>>wgz1B4mK=uo&Dg_-Q}w(I3OGu0%i8l(=}7POO1r|v;2Ddt>_0cSI-OA zeFhba*rLtY8BG1BZDcy{Eq9ZSwd7a{s!WB-bRa;#N}m^|M(7j0{cEgs8G-Kf_y|Pj z+pYpQO;SPB`T886KPB)w5t4Q{uYTROJ=^I0Cmso+? zK|<4Bnc~U2K;v%7(U2s_T|uj@lK0{>pEn(jrKEO+5dze4obfC70E=hDX&3jBnpat51Ya~2>N7R-vCOtTQGdBs zTva@+j>qDQNjM+J;Spjou-EwVvRo!+9O#E@l0W1uuK1t1ySPam@EoDj7GL8`b2Z^t zgdeq?>YVb6sFpf`EVN+WB@7-yG68F2L@g_E69F&3DIttYz#mNL$LyFB&rUvvhG@%1 z@csDx*ruA@RT44j4S#5)HD}RI1z-HooB@n9`Mn7G+QDRT59S3(St9-Z(_(C859oOh zdivc~XmMmPqI|g^f^=Z_^k2T^Q{z@DH9TrOs>lxN)FGF>&e<2;&)&LJ`?qaC@=Ox0 zA22iVk^se<$CGa?t+%yE3H0K?*FRkH3=Fum%Pl+FeuV0{8e7WSW%R>_>1%5>n$6o* zG~PxVcG8Vp12R+j)4y?RiK@+&L`F1q!i_nbN?6vxy2cvSPkxo4-%^tg_UwK9Hk#%14HDHG_vKWVs48uyIGdj`^qa`vLgj zl>2~1?;Fq=i5a6QhMkRve*XYWcfJB=;ut~QOhvLChTh*4EO`XjUs zILtppH0=ig31Xc*{T8%!P&cz47fHOaaG&F5D4qI>9^bl_H~A}}Qj!z)eZr;wlmVkt z3K4CM=D&EoW9kSCnD^xn1*6^!B=&e|-DT(M_yX)?p4Tine4jV*#L}fXDJ3FMJ{I0L z3lOIJI4BWa)If-rvQ#mS5{Xsp_-s7-F+$FgjV&9fK>NH$=VO3}czmOx-Nq8+xD36Q z4StXe{@a6x_==9;j608uL3U!oogJbrzSaD+2TqoAy2hha!rUKzkX2c0?muJa8qk&; zh1T&Fo0R32nqTf3DW5m(fO)nN$jPP~Yb^%L?nXdf&+D;~4cMU2{z9uy8qKpgjY6=6NtGA*d zJuN}Oz=i9stmvumS442s75uhirK3YKjDG}(h10-;`>y=PicS2r5hXK+c@APz$nm(K zxzK%p%JL46qm`ZM1orWUh%4azIOb*_2lxnH=Eo+~P?BdT0lz|5zkZ`Lc6(v><%FSR{uKAzl8FCH_^Ew8Q_QK)7Sk9%`jPZcyj>++5I5;8*YofEkPJ8t(UGy6j+^-auxuFC{PV&!|;)a#V zds-R?>F_NQU7Z32`dX`Oa0W@!_RyYK{u+WEKLnLExkFivV|u=_;=Sv60e&UK)lY8M z!_0uA^_HMDbw}aV#y9zslaSD?Nh^LI^YCWsw~US;y;+yr8!*P&KMB>__vZQWIha4S zuCPvX%j7FXki4fK_ANd-ILH0+K2{gtDp3vz)=b7Ad`r=;{fOdsx^UVs*fUKRFY{P4 z(#XAc?KxS0PBS@$;(Jrr+kuEcqYv1%9@sWBusU}aDDPr4(v>M~yXm!C;(J$QDqy6I zB~2f+OI0-PB2BWx|BYIjeH0!@a~I=e+z`qQ5~iw%?VTnomPcc?^`e+IP{RGS-5A|# zo4;|zC>h)as}YDU81G(Z+B_k#8I_ZqQ$!~-Ni?bc5jJ@0gGu_e>}#^<^2XBNSG7ex z7>AbaCu~=2TAQ`qeA4NyaHz6z#@|e@g{GUn1H0AH@rQi&>9B}8TzS9`;*tcR9=2%J z>u+=d2QOOfwUP1ZhD!wiB^AD3kNbx|mW`P)=$}S8d0r$t|FPQIcc5$uIsK@R#E^^e zU~M^pK^+Df>$i+oXI$(x%>`;sKWrM;gbQa0SlBGM5gA-+`C6B_Y?|8#3?anM-BU{9 zTy=pA6cOt$G8=DK6xjv;f-L6Zti8ouc2LjijOc*l3y(zfvmwQ5yvR7&K0)Z z+QXHLDw-f#?H@8~u|@Z%f@}2en+~emhd_8|_vGBr^w>dm(~X*rgJg7HN^JY#V+76F zU7sQiX$*XiH+ymrDQwM@VLS0;%SM8Yyke|BuZDgE+9I}nEk(-HwyqWaeM8Y?xt%XI zWdjcpx9z7yW!h~$`788^Sv?b5ATX(E@1`+gG4DoRd7_rlpll!uSNOT8#!6&ZPQKpz z*rpEr?oib;MGECRXL`>8fAmMJvq?Eah1} zfIncZ#l(MXo#-9Ko|3r(d^=;kPMVJhg*#YIvgw6bSLit+LC9=rp{XxlP6yc`l|Hj0k`!T<;|{-AGr$_qes5ayP&l>chMHHCe+^5u z#@a>q81sX-0d?&Oo6&}PBNjGZzm1h|0y4b|X ziMGv6{f5u6C{V!sqIRYwm<>6-;y1OsUahz-dddjYvt!<*PInDv;oZ6oLCu6K{Gk`b z2pH{fDEK=1yRh8#++?k3KqMo_6VPwcFbl&%RgB-op{unZ$Y$ZuH_}ms=#0dqC2`*q zOx8k-wbPAbg=*y*|M$Qz8UEcrvYDO+IS5Xh-gEpiefCQf@q6k}$u!WJuuE{eo7NfY zx{~4SQU{O;ULam-vq5x4)cgg)-f^YHV@3Ca1mP>}NGZK&-*kCTp>Fnqw#-w#`KZZpA(wufXWkW7GDL}52g|*6&2#kb z>aX#gmmN2oQ>V2sQ8^mp51iM+tBStQ^ZW@F${aB>E>FwERhYasn(T~L7{wA>UpAk8 zBTkb@%XkqW(ibF6-QRuF2g!I~h`ij=gpoFc-ZZk}--m_{WK}rtFBe^JboL}5u4m3J z%m1uY|GT_Ng#f8)sAZoOe^can*Yl}&V6$wHH^=W` zD38lte>VJIjlz+#W$NE1PigwkC6FqwPdM&j_PXWLs>97MEt&eifDvLPFpqg>9>N;4 z{0tZw4O6lO7RtNd62sV42lP_o=liqD=wHRiCI8pfgLLmwXnVbS;Apw>CA?4Oog_9` zM9$E6yW@Sz^5+%6dmbCd`$hML6^ledDwtRiI#u*Q-K-BqD9k|+o1d7SU}2!^QmFc6 z%~-x5WbWS&=<=y&t)TW_4^iY;=8Q}F^9t->TFZ_4wV%HzgBAUMJVLUMW~=ieoQqmO z|6LYp@|9RoPq(1S;hWAfXj3Pg7fMBG2RVn!w7(Z@LMuQ*UO`a@QCAzxzh7uFIIe3^ z9GaJDGU*zMx)s_!IdO~0C}#$>7O({r#xCHSUwo`*<^rjVDamT6WNv)dau=0YmY5Nz z9%M0sgi_@2CKGLBGLixwTlGuIV<~P=x*wO^)ulGwsQh991yAzVzqr+$(V{X~rJKA` z>h)TZ^P0#~6r?42!rT;ryCE0`mUQlBD=g_%5Hi~^QYsr^NQMS&BEB`~pR^QG>i3$? z&5Y9?6g_ec1Ap8|d^INC6^=A}@nH96sIgfqTHi57w-6K>37$3^Yvyn7`SYs59H#w zxkdWT% zdC2k8-|j<`p_1kJn~UA@srC~|@dczns+ODOqo*Lto@(>1pX0ATfvYJY3@F3s)p||e z_m-)3Dw>{t!OYto;nF8s*`5QH1?G=zzoxZRF6exy_Iv5)68E=FvW9Yj;gWHY`!!su zFj0B6_~H>o$hjBzNNB=O8j+wVzEbDrA{mnkHpsi|4HMyPYHZjOMaYs8(;NsT#=bE! zWE|io_*C`?Eff24q7u-=Vf$2Q;WcL~)t91awFG?e9|QWNvoaSY5@i>QEviDH>(do& zp7LoiqclO>yr&H$hLu;z+Ojxjo);7y%io?j{@2|CF1X(gdP!eby#SRt;hO<0HQhlb zTH%BvEpyw=|NbS4fj`F;u~(q;AaqTms-X1`K&F1@vTP-W+%zB}6Q~+98^R>{MdRqq zDMGbksVP+ne*uyQQd za-mi7XoBC4qrg24HaE_u5G1MCMLhGoBs+gip)ZJAfJf;zC2udS2Swl`LJnYK=$$GH zLTiGW>Zk=w6tr2^tt=2oLvub$p zHgG{93^zPPHnF?{Z?nn2WU2oBXZQ<#<5%uFu8JwwU|hKlO220+cW2jre%pocStVQA5eBJiRE<4WaQccyKZ3#}Z)jxji_V1cE;=}sD%8r8{fTM~ z^gjHV^1x;}OUZtcHBpl(En344Y6f4pdDP$&FC%U{VJ=B-BD|L8T=YU71EPn`H(Ex@ zKx?}fdU0eu1XiWfP4zwF3Ch3-{U?V;$=7$3&smbeZTXn8a;f7BMa+l^ z*X+v&3%30eyEMbY0Kb+z2R6jx2y5SK$?BxGN9^10K6CeV%oU+eM!>f(BSx?&isYO& z7ebV3<^t7dkAgXX1OF60=xy^UWd7+1K8b0G#L#bMt5S*o;tqStrGYSh#yx7cC@gQt z!#KpUix<&iR;_zFmaonel?*6XRsG2(`qHD8r=Q`O3)g)Ik!kSd&+lj{nQFTvejBux zZ;(vWviK6jf`C6G= zV(A3&`$)lltLUv`0KRvUW2cx*R`Ja)NLUppdjlx0OxU*$0;}` zj!LZ;iDS5)X@HvKTKt8mGpbp~-{anx@5oO_^)Al8-4Cc%>OB)JidsIFAg{<LGHN?oB!aX;P;$8?{`lB=!*^&{l_7s z{B##bjb*CJcj=lyU^io#H8#SePEO9wBgid}Hy8Ko_j1@X;}?Z>t!ai?p{%)9cv^xg z1#9`5U#1lQOP+dTqtO00TQ9o#W`HsLV;!6GPL7UL4ZSCY4sfiOHu>{d5sVtMbf=>q zO?GPXp@)GSIKoFO$N!ubOg;;^XpIW(8%}ttX6t_6`{i1>R?c<6c-PZnVQkHnOqBW5xmgkLgiD&**w5RbHRMSkMcUG- zaN#&FHuHi-@D5n)O;IRSb^TZQNtafXZ!6MrOhe~aZUSY5?(U=Rg=iSY5^c%&<10PF z*wo<~VaU28AFVGqSiUcv<}MeQoPHI_RilvnGOfflrw3Emq%}xm8X5eQZ2#)Yh?8_j z`1z~?Ao0{rq@%mQbPGya2zWX6OeZqYbN%QKxV)Xj0B@a;wu#ybBV66!u=4Q9JFrqk z-mE?x#vardy>v&v&DBTD;gm@51Ep)QohcfXG+uSU{?G9_QBbryuDtFNjY_4DPAJpFU{9%v8SM%?pNTH)$Xu_pww90`(?>Rov<_vX06 zR&L(MsRd0|PleQ%r|r1#H%W;hKEkhsa%z6;7|2=bu0o}?3FFbzmPmR{IV&SOsF(S;^R<&QKuy>a<8r&{k2vZ__nuudh2X^xpVx}aYixe;J0 z@6=Q6O5yov-({;_5(S`&@I=?WWCKKzFo{>XlLeYtFA9`haF=E86>->dI2}e2D%GqP zas__tXpGa&a$QOv21JlCg1)YO>8t%-3==c@d_-dOUsVfn_McNxqKi&m^0NbWe8c7) zdn_p5`zC|z4O90FJ$~n!Z|1t?73`1Tr@4`{E_SV3+vFC;Qml}OlFC2@McS8p`B+MvHFhj0<%(ZNp^$UMo>GsG#Sfe6rRljCte7pk`^pAG?y{ z#%~ALd;GreQxCYpBO5}4`Agz?$~pWrM-^6cDm%x+j;rkiZ~|t{T*)_0c<8@zV)t)p z*3ktT;xr-Do_&9HmtMQ7TTMZZtpfqNbkEvq4EJ3hNF=)YTaV|SvdgC^NgtC7c8dQH zdN54|6@-!-zzOQ?e8yRt-VvB{o%aiUlPSwEFnhjpnlN;g`Pob(!$BZp!7B~SoBE*R z^<973>K~XtJ?^O6Va5xhxFNK(G8e$;ZR?gFx*GZ6aH%j#X_!+Lw zTBIzJuI4S0qG@{6vyBuk&)SNSrDYafmcTADS>tgQLUJe5@4;tVG)DC`7 zzT*4aQq2y1y~+BvmI~DyhF;G$UXi2g)wI8)!E7`V$ENRCMV0C%ACWLHs}C(Rh40t&uyYI10=RHsyC4lg{)%QaX#|{OyvOpgb;49L*gd;OYcqa+$v0y>X@LRTc zXg$u^$}TQx%+)+)IGhR0w%7u4w5)K+4qPlEtxrEhSVe-h?1OXR5n=%z?-k0@KcQ5r z_8T;bNaD0p!vYQHtNtkeaGQ@4VWoT}SDRi`+LC6b^VzQWGkhxg>)(HkwbiyVuaauF zT*n>QJf>ZQSY_$HBaA1BkO>W(WtZ>a|C}OVBw1rgsgX+30H9l8#+`88{gz(Yo+`W<*Hk+(ZgH=f&_x zLVr{1IW4w#(~O5E~#$!3#^HkW8yi&iOrl}{PY&)CKc|9axL z4Sxhn{}##_MLi~_h*oYmBZxBHkp=(I)If7pe+@gjav$>Q`-}f-Z&Uc>$|PBW3+|V>w-5C{BJ7go=XO`wFEn6V_?mO{qRW6>jsC zsYPC3Zi8n&OXZpXF*=}G)hJ6^E!(o_N;traX>woWJXft`oVCgC$Kqf7?H56CcMkHl zAvFZI_sa!}LCu>`hhw3W%wn4gv-gHVIpF55&%#m~dY@aM&4bI!Rx5u3%+biIg+nqG zAW=;~S}V6Ff$5gG(uQj&-+!<69>H?9(v$UA^(|Rn_c9D{P}SibywYA)8jd?aq%UNF zT(7#HidQFUl!%?IHD#HQn}iC^L0H&?5J?qk@V*`I4?cnKeEz!8D~1j>$$S9ECI1~2 z#uCDv)8f2fb+UJ)Xvsqr_vSfl!(Pn+`Xhd`t-Ocx#szg1uQ_K`(mqLG949<#NFc_{ zJCIb!{guo%;A<)#8gqvr&Mtqeum8V}t~;Ks@BO#-sHzcEDQYLE-BMK)Z9`EcAqlnj z-n+F4S}R8FO(L=PsJ*EbwQH1*QnhQ>FW=w&E3b3!dDcBS=ef_l=l#B4XB$I}^LzQ- zR!X@wXB;@c`a-C7+w*PC<;QpKvV8CZzuzJuhE1JW{f8Z;*(RM{^xI)W^RfS~_NZ|V zNnLiTG8fNxeLkDngibEUJLGPYhakTL8W?p~3pcnf3RI|VhC-Ni3hhj0@{uZx!Fnz) zGY_U|5`>1;gux6Y1|H7W8UDMgPD%P@%L+KZ@52)Qg`bT}5n zE?fF^%UjK8T56V{f$|#pzlk6^Z>i*3MeS}(RARsMqU{27Oa=a4By8YKT>YeT>0dmz z5kz=;Qd=d3CKN#O6hRR71Lf{nH{t3cR|`~8sNhMP@d6{WHZY?7vebU1P$9QDMWU0r zsI^T=p1Y^4wqWRvhOoFT2+gJWP>i2^F;Tw)?rfxeXhUbFi*pP(a(u!uFvfuMtAI5R zdKlG$q1T`m$xpvx*6r%p-ItbP{r`YD`Ztd3BUNbQsMRCsgB~%IZ{_ltf~@NreOj-} zmv!HHg}0Kd*z6Vp=Ddm=LzG`|`%eq?cXw1~poY=nc(Oh%uOaREB;}QT33e7ogVo*I ztq{5l*Cu1>`q@W~I&*dP2B1`mET|3VodT#YTNqBZZXQ=@5&~_SrinCKrprgV*H(At z>K1z0vmF#Oaz2=muNVFBvE8~v-}dx!=I>?jrLJCi@;cb&tbh8PeyZQm&-T7tLA{4_ zk#X%r>16p~8t~4sQLOMAq{v!^s{T8xHwx2q6I-J4|4M#V_(;^HOkP}Eu)kkyy;*8A zt9oWb_l@}!{6wUa&`E>m-2M!w#(iWFvVA3}3QCB*Bk!8^_#O_3Q??5ReM{rExWgro z8-fsdFzdqDl+Xb;kx0!_^QOfI_oqJ?+%5DA+M&Xm2R&nrCV?ecpV=k{kX=<$e_~Vha4A!UtN6zRuubxZvHgn{R8HDX5r*=O|v|BFKO*50g%%tm^GJ8>k zD&J&!4Z18^0C7LT{jtSY%izz{^Ck2TbGp$Zw${)l)mlGe=K~VhSu%8+-z4L>kp%A& z_p=yqtitp>z1iSN-pfC3yu!Ml3;6f*Py>)87DXk)KLb)i8{Y?B?ce^EnlHBpaMVvx z5E#(5b1r%otc1?d57OGmjwlO#Gf9zw4+CF(ngregPtv}YC{|ruG}8tEy5D@rpLRsA zWkAz^1J>=rZDhV9Hy$u$218#w^+$)5pK&wbK7~WG@ws1yKcP}~|MtZldfYR3{#>Nu zcwPDL%k#a}dU;a@j#|FQ3y9m0Y-5uzkYxQ*JF&8RV&8g&ZYLoxznZ9^4;eqMX{Wxs zD0ujyuBxiDaK7E*8 z;GKK&@aOVQAyDHY)}uQCb6;Ex$~3gp-2#2%0D zC433Is}3oHY>x_#VA1*Lfd{o_a7zzzUUsHM0fW3JLf6XQxnmh{K++MD@qwXT+&)vq z5Q3bRNObBH+@PDQd*E4#avOrV&IAL+q&NVYkca9L#Vj>i_Qs0T0Yd)%?r!~nR6tZs z)TUy4=RESq*`{&40049E4_!p^Yb5d}UEp0UoJ>U0pdX|PI=*o80fmd^0lLA-v6Lt( z=w~haK*Q9mntr46SjuWUBEgVZTjnyjqVq11&Hi-_jl@Z9GI~f^cvgtncPU9z$Io0nJq-S(OHx7xDa7GUE(KCcLgYC@ zN>tOQPO_R-j%*}NO(5A7_i!d=xv_0u^iW;q`RL<|hqSnlpjTMs3{&z~8+Y3%NU5Sj z-2J%HVas-%y(&`W0Lx<%^fkxA``izm zu1}Z^CT{1wr-J1NB%tLrM?lW#2hcepYf*XE9Z=Yel+KBIN=`@;yhE*1Ij@Z><0)g`@$u5vT$+LJu8JC&p+dk29-bWwPa8DNUC~CEJDb|c zhalfGpNtb5|BP#bIb*{^*UQM9n>ji|`Bp`1u@;$>F?@1^(|*3@{-h6z4O7C#Nq;`WsYA_~t`4zeDoTDCEX0)^HxqpdWTMMgwl6pOxQgB*;Ir zAf~OSUy8L~B;s2(UL0IH)iuDE(@e5U0T;nk@YQgoU91O^GZ8hVo@|1O8?Zqf0O{$Ib0x769H0x)M8<70h{%37rjo zK#nBkzwwios?WQ%UEiMU|AdZF$=xez@k~BBTM7wKIfT^JR&<%*-$P-YBFd7J^=-0{L-6C{I61Y7(mrHGhrJC!VO_-lpi|t+Uf`vMcq8W2E_Z1j2RFdS(oFtF<<>*RsIdymLocj3-Cz8trE{ySaa)jJNdAfD#33&= z^r) z>(CeJDT~4k z@4>(5=%Wts}AZ3gAKWC)QsY_+f$Caizk(1d_6)-PI)QXaD{i|+uYNHb%{Lv&e& zq&gx&U4rAFB09n;FEuvzStV2j)P*Kxi6XaSC{S{pA91V$= zDriEBv^CjhQfz}I4cpGNxCd(on!^WD+8 zYYW*nbp^XKtxQ)I_B#s3@}Qe6li#!du6@iPRy5PAxDufC z+sO%CJq`3-6a4QXy<~cY*}$*E(68psMf@Iq+<<6P!W4_|d^ZhLjmbOwD~$nlRcQxS z$)H-}TuoacS=p~KGH~a3(^I>ak@59HAd1x+vxVZVnSqb*o&-~FU1q(iI^Ak`Tn+2d zn%{?(_=7|dM5w)1MvMC{(0EW>!6im>2v=-F0>=hvfb@e?E0v8S_KjEpiOZ5+Y z0u5l5ZY9XHLR6&ijxs=3oD$iF? zr&y*=q74<2mmE1N9&TSM&&?MLnTLO3xr0tHrNcRh>Z*uELrCEBdM{}s!#vq?DI|F!15B=SLWqQR!zA;;#vmtsg-{U9f-5ZVC z+N-$V2hko+XEoy6mxje_eIK>9=UN*NM+q1G$<^>z zHVNO|e&(lbcqtkQ&!Q8$Q0c@3dfvW_%;2n?(TG71b-U>EPspoUc2DesL#W27oot3j zQ{<%`kF;6Bh7H>y6HPe;03dE%xpYQ|_KDz`nXrz-|G zo`3VG_i)7Mf8z>q0`=xbSAt#nlkN-nlH+fsoEoMxk5@n29Pf1Si9V`3_gv|AG5;Qs zzD;HEakNFuyvu-0=Y$Ak^>Bqc@NeZ;ga40K#vxQ6zbPQOWh1WQD^nH$)P%-~lta~V zk^3kyQ4fayl!m>6t4T-6V6tM`lCYZZZGITFR!JWCu>HfispMY=R`=-)_b&4O=iUa+ z1=j3vr`4?&bOQ5r$|F@VtgTRIso~r*q`^CINZtncq(4nHs&ldaxclhCnLvhE`pdts z+ohXRCRd;DqKJRHrNoA2J%7*+p6%{D4U~h*&XS~>4DNMKK@MGQ9@1saj)|>&`1^L- zP4Gj$+tJ5?gRiy*5?QXcEsvQDKQ}!8UtAuXKqG0F!As~>G!x74tcVOeecDf{uMW`U zgKgBw#TeaUYq$bR=|3NlY!dsnV%1Z-=uC6K6#woQlUq*S)ln$y8_}Cm#K|sBv7&^K z(2&@fI}h?vJEyTJYO#A0L1Qr(A;&OhS9LE=q$J>V6u|Fw*N6A=$17z$guw%*7+*P3 z*3)z0?UFUs;UukK*RjB<@a4_`c<;|HmkyCn_hWE*%V6u{81=v+_n`BeL>tR#wQ#sgu3u1 zb$UsumC0rrruUy%55MhG_Z3F9fQ?`6ipGgl`YFpt)!a-%nCs&*4Hn!O^rbbn;emr% z{ZK6b0r&-H?4;qTIFw4G5V9%iq2{Rs&lO}Gel80PnAm;q<0~S+z44}&qNbv+8eKye zpTm5E7GjH@ss3l__FRY?O@OV6yW%Af=RtweY1MKUtlG!F@}foy={lCw0w5a z!ahXTe?Kz?^4O2-J{)Lc$;T)2_+6V0t*x=@ftd75`q={n>@h_(VFxw_y+PKiz|P5e z+8>!DRO%Z%#kTkIsOO7J*Ad9gDdW^j*=cOVaX7dW5T7R)sY8 z*?FP8x(aH8{&Y(M7FcVnlwC~+|(B9 zt^IO}j1v*C)8e1QBf2p*u=Im)eG(t4goRljPC5$c0=0W`>&;HI(LkWll^=X0r21YxSwuXx+F)*vcBU+R=?jMp0E4nX|+>f4)7WB3%y z^}FuAh`RM?627AL;fn*c8antFvj`m?4Wlo}0cPN z;9W}D0{L$`1c8)qf|X4s@<#YFpIU+GLG3ln{R>nLx+wxD&T@`&2(JP<4wk;KAS_() z*XJZc_51}fxqC9a0DkX+R3?37Y=N*J6BTx!`PDphlcqi-9#Wps*QM*upK5|j)n37r(qChU(E@9nvu|%ZnIiAFS^lSi|6SgNEpUuTE-1%8^ z%@7(^W%iLmqc;IZax%@!(U^Vi=?HSi;Ftj{SY5;2aR`-z_XR-~HGO7*KaVkR1!~>5 zw)|L3MvTm}dKHM92I<(gnp5DoupeqHugkBHApgcFFt^}m-3FJ#E~`kyB-hbP!`1-` z>=6gCOCX}Gk`JMF^SBd!5)`x_d9YgmYk2TRUoHH%netRc&)kqugC#aRR_*g2r_wy` zEQ$iL7rkfN=ML0C!2$50rA;>kiLln4@PYbu2g`^mLN~wVn|iZv!KFFC)Pp-G-`~pb zeu_R}9Z)lx?pr(-PtilXXBvZA-9zMw1gP>SCi0GLR6$SOU+t%9uGHbPpV-r^^=|U- ze#`G=Ss0470>z>SF^5UN9|ZUN?gn=0Q*XGZ*zER!!$dCLYJ?ZY^Jame2kFs{mJu}s zXIQUa;F9^WbZ+NGpsJ&so^a7}(&>M~W7;S)rEwaGi8kWwW~GT3EPoaXm6?{_`wEG6 ztX$%8s7z){C67=6`!=IO9Y9i*I6M0j*pNfjO_#;94rX7PVr8xQr(~=}zfhZoUc?|b zU%r&DM$eC$-TSY0jHLE9eUU-Wm*r_UhN@5CyZf!^CQd|A;^gQhEa~Y!*D?H%u+GF7 z&pdDH{jq}W`3xrqmJ;biUxyocI|qECUw^tke>nQ0cx@>46W#3V(c}$Y0K{Xx<0EI4 zMa6F-T29;o=6K4^HLg&msz-~U2$O=3YJ`R57`%C@mnOEtcHHyl(mIoC47!<9gKpO7 z@pSvgE`)eKE7aHWEQbEKPE5Q%a8N(CWETlN*c2ozw6xW6zoeWhhWoQSPNi8G3dp?}Sluu|>T zzaC;|w5{8C4}rMmHKXckh>Ax1zz3>3BG#az!y-pZFY;(+yxD*sJmquiui3ewS!i)2 zVQ%{~q)M#3SJ4_|jz}kPvx$0y7j9XR6!1Rpn!d9RCEiybmO3Z_wF-_&nCeKsm`zk-RlTq_M*du(a!c^@>xaODHba~$MWx?|) zO#x4yi+zF7tCu#Q>hSWzYURhW!jF~kWN{9E3vSP&or=+X@lwGx~~GC;nhu3fNq7*+o$ zoBK$WGXDVh{CSWRYR#d}w2@JCmDtV%f`v4$;XIU{mBVY$BbHOvAsZziqP>iY(R4k% z=xl!*aRNyBM|L*W1V~q+O5|&gRxQ|1G^D1uM!wo>C#Vn7SeEMsHM2Vsc5Oi<#8mok z;;_OU)x8&IQ_L@z6vmmwY$gMdo2=}2qsHcj;PYT9mm!r$^5wzBYm(ibwz$%7Q1NdP zuO?qw=jr_m?VNy;(i5Fyj$;9^G?A`16~N_d&}<1!%AKW`wv18f)?*FSVwV4Ni7CmB zMH1R$>Y``%#NIY#%{oNlWggov`;2_2PzM%uTu7iABB8_Z#v};sXMZvIAgf+pAPVce4>8qif!fQG(8!C($~(~!E5tkSeIXtmd$*lVNLS+y5b@;kEvJS1g~Y6aTlN6Dh)C0 zL@ve{7mYv-E|uT;tm-lKrOsQuHj$!u4wJUPYQIxU-x9dq6ELF3#I z2Mq@a8hL|IIY1}$mtie2a{oxIuuKDfTT?&gh9;r4fOFb3+`l5+O5TV_Tys8dz|ypy zaXhFPX9GI?p@P6QK%AiFLt*ugu(`N@!8mqU1aOztUYtdA8EVuA9f5}3arv?B!^n8} z_OjQP%DgJa7g~d~0ja2`;fVBod}EooAP)-j1IZDydZO_2U|hCcC4i&$H&5#^0QU54 zV7;FTBH>6XP>t2Wk~93DwUoN#s@*A5nXMsg_jB94gJr*S%7>@3+w6{NVnNMDM&MMPS2l^KC{Ly zClCFYrE#OF23QH#LF`+yeo-Qph}Ih>NQLm;dE(S6ONy(3*n|1au@~HkbNMIpj&(Ig z_Fk8GfA7%xN36Ff@y2nsKj!SL!D^EA7uoywY9Nj+%hLropG8zA*X;H|nqnr-P7k;+ zJ2X1!^U<^tvQ8h_zPhU8#?bY7*}xjB+Z`+sI1l~0k~dxc8R#f;HMK(NJiy->jJ=$C z*-2y_PuH}&IHCRp+K`@TyvMv?$h*|OaO5J?bdL}awptVt88TTSJ@xNuZqxH*6_NTy z|M&Zc^y2X`QVZLCN9TDaus<)A2cx!jC=-5%cIUM9g|GO0%v*YfSSrK~sCD!aV$M6< zV1HyUx&Dqhso8Nybv^L#n7R4D;L3116ca-B>;QT)skZ=z<^d1>1bRmti<};*g*jG z;Z4E}D!?UMVF+qsBu%3TG+B^f=>HJ5fkBgXn$FV@&0xnst244jUv>I!(9CSJuCDM= zt%0QsK5yK4sl6lO9CsdRIR3kwAVTGZ&_o2I$CrLruVbR{+*O}R$_dVjXUxj?%Ev@# zSStVcygEKO^Jy_t6Aj@W2($YqM7?}XJ2MJVP+WGo%aOwIohpQzG=(%j&eOejnF~=a za??61_lo%*nKFeYY5u~cszcy2f9)OftjGe(DbabnEp}Z8yAL66x-PLlX8L@ z)sk&BROkQ0V}=j23Csv?hR`+GOI(*I^(hUz@)NwxvOEZ{PCO;UGrY_Fvnhr8zXGif+YGXPsNN;JFF71iA+*#Xtb->L zcqpVVRdB0lPnx>vGw-%6?m8V`!6g(QL`U?tzw zn}7r(fW~8}=a*W)mSCa-M1k~jG88;8%Y?tkCqy;QmqFYZDEAADofynJJ?+g;OjO{V zm1+Y|p4Mks<$zWqOj&eD+2cmv4o!tdEF&~JB)o=ZX;(w;o+l`t9`eCz)9whBp4d`- z!^|P>MfxBg-m~2l1t8w@L~x_*5Frkhx(LxTdHhw}4gj*H9K!)d00R-n4}1;r#^OvR zbDL)Pr>wM3s`*~yB|n=L&CvX#u?PX9tva)iOUzB|eX7H=fk^R3(CkvfC;}VVC221S zs6g>6+@dqR3%^bs<~c_$*p&s#n1` zJDAQum12j!W!BTccc8%#xLs=DN3)i<`Lu^))jM4(_{sqxNd~qX+kKnIv9H=tZ(W|t9B)(lTi0gD-cx;72b2iA#Y1Kh zrc@fZ{gN*}o}BTQ-px&hyubIzQmn*V+c@qlDN@z7Jlo%y%UPZWuauB=(Vg3#T$TiC zN@M|gdx&bdA2t^L4mM|?W;g*=k$p^NJbdf@x!?ZG96kj57n|Sevf6(t!m*b!2t7u> zA6-FmJis{MCxu(Kf#Vs>+)j7R7XKV!7p!8|qY4_64&>FL-oY%6fYKxMxA`m$owg33 zCm;zuu4`2Hhm{9OeW36|_5HP=_xDR5=4XvGF&!kGU}*5tvw5(mWdQo$V~+Q9@~leV zs?DoV15I!%&;%r+;Z>Rc#yl_SOUN&G2*O7i7IVcAT$1yAZUDP8`|py7f5#67-ZMnh)u% zTrfx|R3Bi|>p+g6-ksn(fK-KGJ1)L9#T>lVbMW4IdmlxBxVHYQOS(-235E!YXv4;O zOS$mfkiw!x>Uc7Q@g?&RP zwg-9)h{h*=I`h0UW;uRk{Ghy@Z{1U2DOltTBU*ASEj?=WK@1l8+``&1}wKLO1 z@$>a>FYF0>KgGb#HejOBgV10+!%{5^3;DPXvfaSpuXy9L1kOD~3|$|L_W{dE$s2*0 zQ`IJ0ov@V+ZV~nJHupdWS$%@6@y3Ick8B2mk1Cg_>q)#BXs|uo7!Py_s6<$^x;jP) z3*;x=RU#5|t$@Oh;;;Lf%>L@`e0O`5ir+?I^&h=S=rAgAOiOzDT_x=ih4yWvbx|1@N!S?*ZjHprN8=ey(c{pNNYHPg^OS;o)3Q?e@FD3Ll!9fHU7-rvimE$m&JP|dQR z*n)ZzMQiUbw*^z;pkKf5F@JkI4TDHl^>{DJM>dunA^t`V=uHaHi5#ZFQ34mg34ulBPC`hnGo zibF7dZU6n3a6BcQBYNYj=@Uq~cfbac9cSgOd|_T-lp?)z>SV4#_^ovncf0QP+Y?85 zuJHAlos&Lunqk#)O^Ig70#FW8ZnP6=ITJhs8PvJ1{5wU+`GOI&ZuPM{K09Mh(`KcW zm^o}Lq(O`#?0U@v%MVI%ezDo(|5a)u%6nc7{n!CBWgKrJ+S9ah9+DPJybhOPF{PGH zF#-s*SFa8|w((~F$uu-O)Ql>Y{IX3iqx%lBhB*&VBv&>#caTjNN!4H*s;=|=RcmRO z*NeC)wZ3N6agH;|XZylkKYFO}UPKi#<*W41^PMTVd0cqjEz6=wd4Y0OSVs+difwa^ zoEL;a6>rlVC!@e@6A(Kr`GA^%Nn&N@9gISle5Xc0kaGXUnZng4<#OHu?Q=RQ+jvTD z&@H2~ifq#7JnS0gDLN7<6X^M&|B0&`1V%%o(Ez|(a!9WXw`CD#$l4-Nl1dF0-cRah z!Ve&XrOvK|zS&tdIMATU(1G~mmrxx1r(vb~iOQr|7oiMehB8)@@rvwVC!y`2Ew(QU z3|Av96qAs}6DAuVh6bNsPUeZ$tteLxsGp7~Pd&!kJdT6Y>wm}n0$ukB3tqC;&#GEJ zSBov(0^WN6Tp4x@2nVcKnfAh_(JL(>pNh(a{TXrF7UVG3>k^`{4vr=apI}XLrC3$i z`+8srOGLni^Hqk*`$zKL@Bcjbj)!cZ2A%xrkn%G;Oy&o+DA;qBiq5q&- z?k@Z`j{MVes43u`8PEGvTR_|R^#rCq5x&I2A_=-iXCO3djCBwZN~zH==|s3 zk_O@rrd(gXxv!C~N)F)+L6_2Sn{Yai!+H+@6b5^>0LzWjBo}riBXS$8U1N2-B(3rZ z#0BsX4?e_HsThh=$fljAZ1Bu*<*i zwPj--$0?P5d~-AM@Nvvu)oEwsN2#npFS+q~GV#+9w?`smmNM6OD6;K5FB;c=hDUsJ zwiIy_oQ5jt8-8u%mY6{vQvyPw<$z~jTg=QhInc_o_goAOQQ4E^=!nRm^0EQ%Vdwpa zEX1(|1t0;}n&WrL;?Cz92e!ajoL>~4ABXb7z;NbN$_wpf1aoS}qz;mFqfW6oXxp24 zUSAmS-^0TvD@kG5iSPb;mw>+JPr@v9tZQ~^UgByc2T1B4U1U7rZp{Vklt<9Ea}L}V zxgk|?{azy0l-a7k>e>JE5ywh1FZn~UO@3Jv9B5J)#nzqoB{6^yJ-*oO>Q2$wPI%=X zMRD3kwRa^FpF?5%N$CSD9;1t|o*Xg=-G>L%0s_fV6eqaNp+U^*dMA35(K})9?v^sU zUF@RKg+NSP@W%O6-+VybM5F`NggWZh4mR=4AtEnwEU&|0F4@oh)=scq>is zD(GG)Pm=-Nl)3nOe$s;P@TWXtT@84RTmTQE>Z|=}*ii%&779BUjwBJpM#S{LbvLuf z9oHHV`7SViYlLJxe5cqc!6#zL|4moU2Q@uG6}MZTciY^K{GUp2*a!(SBx~fv^fzr9 z5cVXDifBLygfX!Zr*d_lGIJ>GT%!ioe{}HM_1)stt+W^2WeM+DSiC0}7sIyFn99s# zow6u3rB_(|ITa@9@WA4&&#YHBg(UubWBe<3azPj{0pgs67;$!-9x@;;1-ec>xLe;J z2H^~^SxekxnT_p)S;)00fjUdB(*`8|GJlb4EVab93{Nb!D)I7ay(P7{|9SjlkK!LE z&+fc-Uhf;a=8ir^2I&;5q!(<=B=6CY=BYN$^bjV0AwPzRpGbEH>;6@aFG{?-Dg(}? zwhx;)hUMt4W35aPVL<-G@QFm;N+XZT`_`s&am>Ecz|eAe3vLvS0WTRYQ{ZAZK4Jz^ z+QGEgSg%ID|FlZnM{#KR>2f6@% zhxsqf-5b`G7`VkNEQ+HFGMYBGgc?bj-%&4=n$TkZpv~&%5ZK>^NkC_{nTXJPqD3ld zD^SSDXPQSW=rF^4`v30#ECjn5V%k59vVod5j=!6QT^jyw{vlV3Re;Pz=k=k+A;*x` z4&dz0=BBu=wz!^6lK48m2GJ_4gcds%N!5Dp06G6?>_ksh>>}( zM;({$OU)!!Pif9~k@3#2n<)k%gj0Gv3p0D3sZAwpPj?} z);NJ+45Jcb7-oENxCRvOtEMmbhHyuTAU!{j-j|ZgP5MKha872^kd5T4f$ykvT_G+c&zNL32#J z+vE4ZL8(s=kl&2>>KdYqO4I0~VXRSuiA$2Tn8;)8ty|5(IvW3u{QlRQ>`>}BxJ z*s@c>-hx+q%`vu(Z8!5Rq(w8z+%(-r28aJX2MC9H7b)oqI4*77aF*XyW8|#iPoLS| z7lxK&_T77EpiYLs&3^NQ`tLP^tkpm4bdOxY&oVY{D0aRdh0LAEs-1Q_wCp})Q3m2+ zope}8dhvFijUnh-wySTq@F~0bI@tbCrEl!+6lzx=Q5pBa;?jca{ZvH}IwE{4&tdP1 zWZ~V0Y<(Rn9FST1{attC9fNOYTMO3arv`@XOA;9GKaNxF^~SjGUAvY2nDMKLE-&+^ zsbKZI5MJFxBIQRN=0nt`{sVx|(bKj`ZL=Q=(}RqFUxh+S>_$Mhqm#z*{L zKC0-ksQEOLAQLj(m~@XSKE=(ns%069&iI#n;BKFNAFP94`Mg+wDcj5_)X>cdP57@! zEGJpr_q4XZ=<4<5Qd|X|*|&%;fM(sCUxU{0#s1{4<4H=Xzkh5$i;TT!iUE^H{$#0h zHFG62Tqm%B*Xv*O%nuRK!AVPkU0#PQlj`%lTBmbScY60yr^vW7EH`)u>hh|~SDwyT zD`&`81iup3qq9{uBIN6veUKQpc+0vAR9StI`5%TZ26Uw;aqDFQv4a}PcnnVgyc5l4 z#&Qv$f2DWu%aqGJHj}0c5Z!U7BxGOJ>|~wx?ix@Z)Yv^wBZ7CKW(MitT<9K6gEXo4 z_~>7d%_=vAJkV8DxzNF_pl+4pT&PKi7m$5;F9wwXh1PT7Ter$9sCIz2*e)oK XUd;{sw$$*vMLgc9X{q8>OhWz-Q5hhu literal 0 HcmV?d00001 diff --git a/assets/backend/img/social.jpg b/assets/backend/img/social.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3dad44212d650b02cc193d788c9ce73703408844 GIT binary patch literal 25962 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 literal 0 HcmV?d00001 diff --git a/assets/backend/img/tabs.jpg b/assets/backend/img/tabs.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2080e535463f4fc3ce084ab6e1aa53117dbf73c5 GIT binary patch literal 18547 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 literal 0 HcmV?d00001 diff --git a/assets/frontend/css/quadmenu-locations.css b/assets/frontend/css/quadmenu-locations.css new file mode 100644 index 0000000..ed91f4d --- /dev/null +++ b/assets/frontend/css/quadmenu-locations.css @@ -0,0 +1,1148 @@ +#quadmenu .quadmenu-navbar-toggle { + margin-left: 15px; + margin-right: 15px; +} +#quadmenu .quadmenu-alert + .quadmenu-alert { + margin-top: 15px; +} +#quadmenu .quadmenu-navbar-header .quadmenu-navbar-brand { + padding: 0 15px; +} +#quadmenu .quadmenu-navbar-collapse { + padding-right: 15px; + padding-left: 15px; +} +#quadmenu .quadmenu-navbar-nav > li.quadmenu-item-type-login > .quadmenu-dropdown-menu, +#quadmenu .quadmenu-navbar-nav > li.quadmenu-item-type-cart > .quadmenu-dropdown-menu { + padding: 15px; +} +#quadmenu .quadmenu-navbar-nav > li.quadmenu-item-type-search > form > .quadmenu-item-content > .quadmenu-icon { + right: 30px; +} +#quadmenu .quadmenu-navbar-nav > li.quadmenu-item-type-social > .quadmenu-toggle-container > a { + padding-left: 15px; + padding-right: 15px; +} +#quadmenu .quadmenu-navbar-nav > li.quadmenu-item-type-carousel .owl-nav { + padding-left: 15px; + padding-right: 15px; +} +#quadmenu .quadmenu-navbar-nav li.quadmenu-item-type-column > div > ul { + padding-top: 15px; + padding-bottom: 15px; +} +#quadmenu .quadmenu-navbar-nav li.quadmenu-dropdown form .quadmenu-item-content + .quadmenu-item-content { + margin-top: 15px; +} +#quadmenu .quadmenu-row { + display: -webkit-box !important; + display: -webkit-flex !important; + display: -ms-flexbox !important; + display: flex!important; + -webkit-flex-wrap: wrap!important; + -ms-flex-wrap: wrap!important; + flex-wrap: wrap!important; +} +#quadmenu .col-1, +#quadmenu .col-2, +#quadmenu .col-3, +#quadmenu .col-4, +#quadmenu .col-5, +#quadmenu .col-6, +#quadmenu .col-7, +#quadmenu .col-8, +#quadmenu .col-9, +#quadmenu .col-10, +#quadmenu .col-11, +#quadmenu .col-12, +#quadmenu .col, +#quadmenu .col-sm-1, +#quadmenu .col-sm-2, +#quadmenu .col-sm-3, +#quadmenu .col-sm-4, +#quadmenu .col-sm-5, +#quadmenu .col-sm-6, +#quadmenu .col-sm-7, +#quadmenu .col-sm-8, +#quadmenu .col-sm-9, +#quadmenu .col-sm-10, +#quadmenu .col-sm-11, +#quadmenu .col-sm-12, +#quadmenu .col-sm, +#quadmenu .col-md-1, +#quadmenu .col-md-2, +#quadmenu .col-md-3, +#quadmenu .col-md-4, +#quadmenu .col-md-5, +#quadmenu .col-md-6, +#quadmenu .col-md-7, +#quadmenu .col-md-8, +#quadmenu .col-md-9, +#quadmenu .col-md-10, +#quadmenu .col-md-11, +#quadmenu .col-md-12, +#quadmenu .col-md, +#quadmenu .col-lg-1, +#quadmenu .col-lg-2, +#quadmenu .col-lg-3, +#quadmenu .col-lg-4, +#quadmenu .col-lg-5, +#quadmenu .col-lg-6, +#quadmenu .col-lg-7, +#quadmenu .col-lg-8, +#quadmenu .col-lg-9, +#quadmenu .col-lg-10, +#quadmenu .col-lg-11, +#quadmenu .col-lg-12, +#quadmenu .col-lg, +#quadmenu .col-xl-1, +#quadmenu .col-xl-2, +#quadmenu .col-xl-3, +#quadmenu .col-xl-4, +#quadmenu .col-xl-5, +#quadmenu .col-xl-6, +#quadmenu .col-xl-7, +#quadmenu .col-xl-8, +#quadmenu .col-xl-9, +#quadmenu .col-xl-10, +#quadmenu .col-xl-11, +#quadmenu .col-xl-12, +#quadmenu .col-xl { + position: relative; + width: 100%; + min-height: 1px; + padding-right: 15px; + padding-left: 15px; +} +#quadmenu .col { + -webkit-flex-basis: 0; + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -webkit-flex-grow: 1; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; +} +#quadmenu .col-auto { + -webkit-box-flex: 0; + -webkit-flex: 0 0 auto; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; +} +#quadmenu .col-1 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 8.333333%; + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; +} +#quadmenu .col-2 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 16.666667%; + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; +} +#quadmenu .col-3 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 25%; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; +} +#quadmenu .col-4 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 33.333333%; + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; +} +#quadmenu .col-5 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 41.666667%; + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; +} +#quadmenu .col-6 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 50%; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; +} +#quadmenu .col-7 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 58.333333%; + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; +} +#quadmenu .col-8 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 66.666667%; + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; +} +#quadmenu .col-9 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 75%; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; +} +#quadmenu .col-10 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 83.333333%; + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; +} +#quadmenu .col-11 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 91.666667%; + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; +} +#quadmenu .col-12 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 100%; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; +} +#quadmenu .offset-1 { + margin-left: 8.333333%; +} +#quadmenu .offset-2 { + margin-left: 16.666667%; +} +#quadmenu .offset-3 { + margin-left: 25%; +} +#quadmenu .offset-4 { + margin-left: 33.333333%; +} +#quadmenu .offset-5 { + margin-left: 41.666667%; +} +#quadmenu .offset-6 { + margin-left: 50%; +} +#quadmenu .offset-7 { + margin-left: 58.333333%; +} +#quadmenu .offset-8 { + margin-left: 66.666667%; +} +#quadmenu .offset-9 { + margin-left: 75%; +} +#quadmenu .offset-10 { + margin-left: 83.333333%; +} +#quadmenu .offset-11 { + margin-left: 91.666667%; +} +@media (min-width: 576px) { + #quadmenu .col-sm { + -webkit-flex-basis: 0; + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -webkit-flex-grow: 1; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + } + #quadmenu .col-sm-auto { + -webkit-box-flex: 0; + -webkit-flex: 0 0 auto; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + } + #quadmenu .col-sm-1 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 8.333333%; + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + #quadmenu .col-sm-2 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 16.666667%; + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + #quadmenu .col-sm-3 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 25%; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + #quadmenu .col-sm-4 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 33.333333%; + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + #quadmenu .col-sm-5 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 41.666667%; + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + #quadmenu .col-sm-6 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 50%; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + #quadmenu .col-sm-7 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 58.333333%; + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + #quadmenu .col-sm-8 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 66.666667%; + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + #quadmenu .col-sm-9 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 75%; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + #quadmenu .col-sm-10 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 83.333333%; + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + #quadmenu .col-sm-11 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 91.666667%; + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + #quadmenu .col-sm-12 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 100%; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } +} +@media (min-width: 768px) { + #quadmenu .col-md { + -webkit-flex-basis: 0; + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -webkit-flex-grow: 1; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + } + #quadmenu .col-md-auto { + -webkit-box-flex: 0; + -webkit-flex: 0 0 auto; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + } + #quadmenu .col-md-1 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 8.333333%; + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + #quadmenu .col-md-2 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 16.666667%; + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + #quadmenu .col-md-3 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 25%; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + #quadmenu .col-md-4 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 33.333333%; + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + #quadmenu .col-md-5 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 41.666667%; + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + #quadmenu .col-md-6 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 50%; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + #quadmenu .col-md-7 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 58.333333%; + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + #quadmenu .col-md-8 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 66.666667%; + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + #quadmenu .col-md-9 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 75%; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + #quadmenu .col-md-10 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 83.333333%; + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + #quadmenu .col-md-11 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 91.666667%; + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + #quadmenu .col-md-12 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 100%; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + #quadmenu .offset-md-0 { + margin-left: 0%; + } + #quadmenu .offset-md-1 { + margin-left: 8.333333%; + } + #quadmenu .offset-md-2 { + margin-left: 16.666667%; + } + #quadmenu .offset-md-3 { + margin-left: 25%; + } + #quadmenu .offset-md-4 { + margin-left: 33.333333%; + } + #quadmenu .offset-md-5 { + margin-left: 41.666667%; + } + #quadmenu .offset-md-6 { + margin-left: 50%; + } + #quadmenu .offset-md-7 { + margin-left: 58.333333%; + } + #quadmenu .offset-md-8 { + margin-left: 66.666667%; + } + #quadmenu .offset-md-9 { + margin-left: 75%; + } + #quadmenu .offset-md-10 { + margin-left: 83.333333%; + } + #quadmenu .offset-md-11 { + margin-left: 91.666667%; + } +} +@media (min-width: 992px) { + #quadmenu .col-lg { + -webkit-flex-basis: 0; + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -webkit-flex-grow: 1; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + } + #quadmenu .col-lg-auto { + -webkit-box-flex: 0; + -webkit-flex: 0 0 auto; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + } + #quadmenu .col-lg-1 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 8.333333%; + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + #quadmenu .col-lg-2 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 16.666667%; + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + #quadmenu .col-lg-3 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 25%; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + #quadmenu .col-lg-4 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 33.333333%; + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + #quadmenu .col-lg-5 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 41.666667%; + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + #quadmenu .col-lg-6 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 50%; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + #quadmenu .col-lg-7 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 58.333333%; + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + #quadmenu .col-lg-8 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 66.666667%; + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + #quadmenu .col-lg-9 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 75%; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + #quadmenu .col-lg-10 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 83.333333%; + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + #quadmenu .col-lg-11 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 91.666667%; + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + #quadmenu .col-lg-12 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 100%; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + #quadmenu .offset-lg-0 { + margin-left: 0%; + } + #quadmenu .offset-lg-1 { + margin-left: 8.333333%; + } + #quadmenu .offset-lg-2 { + margin-left: 16.666667%; + } + #quadmenu .offset-lg-3 { + margin-left: 25%; + } + #quadmenu .offset-lg-4 { + margin-left: 33.333333%; + } + #quadmenu .offset-lg-5 { + margin-left: 41.666667%; + } + #quadmenu .offset-lg-6 { + margin-left: 50%; + } + #quadmenu .offset-lg-7 { + margin-left: 58.333333%; + } + #quadmenu .offset-lg-8 { + margin-left: 66.666667%; + } + #quadmenu .offset-lg-9 { + margin-left: 75%; + } + #quadmenu .offset-lg-10 { + margin-left: 83.333333%; + } + #quadmenu .offset-lg-11 { + margin-left: 91.666667%; + } +} +@media (min-width: 1200px) { + #quadmenu .col-xl { + -webkit-flex-basis: 0; + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -webkit-flex-grow: 1; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100%; + } + #quadmenu .col-xl-auto { + -webkit-box-flex: 0; + -webkit-flex: 0 0 auto; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + } + #quadmenu .col-xl-1 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 8.333333%; + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + #quadmenu .col-xl-2 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 16.666667%; + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + #quadmenu .col-xl-3 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 25%; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + #quadmenu .col-xl-4 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 33.333333%; + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + #quadmenu .col-xl-5 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 41.666667%; + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + #quadmenu .col-xl-6 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 50%; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + #quadmenu .col-xl-7 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 58.333333%; + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + #quadmenu .col-xl-8 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 66.666667%; + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + #quadmenu .col-xl-9 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 75%; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + #quadmenu .col-xl-10 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 83.333333%; + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + #quadmenu .col-xl-11 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 91.666667%; + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + #quadmenu .col-xl-12 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 100%; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + #quadmenu .offset-xl-0 { + margin-left: 0%; + } + #quadmenu .offset-xl-1 { + margin-left: 8.333333%; + } + #quadmenu .offset-xl-2 { + margin-left: 16.666667%; + } + #quadmenu .offset-xl-3 { + margin-left: 25%; + } + #quadmenu .offset-xl-4 { + margin-left: 33.333333%; + } + #quadmenu .offset-xl-5 { + margin-left: 41.666667%; + } + #quadmenu .offset-xl-6 { + margin-left: 50%; + } + #quadmenu .offset-xl-7 { + margin-left: 58.333333%; + } + #quadmenu .offset-xl-8 { + margin-left: 66.666667%; + } + #quadmenu .offset-xl-9 { + margin-left: 75%; + } + #quadmenu .offset-xl-10 { + margin-left: 83.333333%; + } + #quadmenu .offset-xl-11 { + margin-left: 91.666667%; + } +} +#quadmenu .hidden { + display: none !important; +} +@media (max-width: 768px) { + #quadmenu .hidden-xs { + display: none !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + #quadmenu .hidden-sm { + display: none !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + #quadmenu .hidden-md { + display: none !important; + } +} +@media (min-width: 1200px) { + #quadmenu .hidden-lg { + display: none !important; + } +} +.quadmenu-sticky-wrapper { + background-color: #333333; +} +#quadmenu { + background-color: #333333; + color: #aaaaaa; + font-family: Verdana, Geneva, sans-serif; + font-weight: 400; + font-size: 11px; + font-style: normal; + letter-spacing: inherit; +} +#quadmenu.quadmenu-background-gradient { + background: -webkit-linear-gradient(17deg, #333333 0, #000000 90%); + /*Safari 5.1-6*/ + background: -o-linear-gradient(17deg, #333333 0, #000000 90%); + /*Opera 11.1-12*/ + background: -moz-linear-gradient(17deg, #333333 0, #000000 90%); + /*Fx 3.6-15*/ + background: linear-gradient(17deg, #333333 0, #000000 90%); + /*Standard*/ +} +#quadmenu.quadmenu-divider-show .quadmenu-navbar-nav > li > a:after, +#quadmenu.quadmenu-divider-show .quadmenu-navbar-nav > li.quadmenu-item-type-search > form:after { + margin-left: 0px; + background-color: rgba(255, 255, 255, 0.5); +} +#quadmenu .quadmenu-navbar-nav > li.quadmenu-item > a, +#quadmenu .quadmenu-navbar-nav > li.quadmenu-item > form { + font-family: Verdana, Geneva, sans-serif; + font-size: 11px; + font-weight: 400; + font-style: normal; + letter-spacing: inherit; +} +#quadmenu .quadmenu-navbar-nav > li.quadmenu-item > form.quadmenu-has-icon:not(.quadmenu-item-type-icon) > a > .quadmenu-item-content { + padding-left: 41px; +} +#quadmenu .quadmenu-navbar-nav .quadmenu-dropdown-menu .quadmenu-title { + font-family: Verdana, Geneva, sans-serif; + font-size: 11px; +} +#quadmenu .quadmenu-navbar-nav .quadmenu-dropdown-menu li.quadmenu-item > a { + font-family: Verdana, Geneva, sans-serif; + font-size: 11px; + font-weight: 400; + font-style: normal; + letter-spacing: inherit; +} +#quadmenu.quadmenu-is-horizontal .quadmenu-navbar-header .quadmenu-navbar-brand { + height: 60px; + line-height: 60px; +} +#quadmenu.quadmenu-is-horizontal .quadmenu-navbar-nav > li { + height: 60px; +} +#quadmenu.quadmenu-is-horizontal .quadmenu-navbar-nav li.quadmenu-item-type-social > .quadmenu-toggle-container { + height: 60px; +} +#quadmenu .quadmenu-navbar-header .quadmenu-navbar-brand { + margin-top: 0px; + margin-bottom: 0px; +} +#quadmenu.quadmenu-is-horizontal .quadmenu-navbar-nav > li > .quadmenu-dropdown-menu { + margin-top: 0px; +} +#quadmenu.quadmenu-is-horizontal .quadmenu-navbar-nav .quadmenu-dropdown-menu { + border-top-left-radius: 0px; + border-top-right-radius: 0px; + border-bottom-right-radius: 0px; + border-bottom-left-radius: 0px; + border-top-width: 0px; + border-right-width: 0px; + border-bottom-width: 0px; + border-left-width: 0px; + border-color: #000000; + border-style: solid; + background-color: #ffffff; +} +#quadmenu.quadmenu-is-horizontal .quadmenu-navbar-nav .quadmenu-dropdown-menu > ul > li:first-child, +#quadmenu.quadmenu-is-horizontal .quadmenu-navbar-nav .quadmenu-dropdown-menu > ul > li:first-child > a { + border-radius: 0px 0px 0 0; +} +#quadmenu.quadmenu-is-horizontal .quadmenu-navbar-nav .quadmenu-dropdown-menu > ul > li:last-child, +#quadmenu.quadmenu-is-horizontal .quadmenu-navbar-nav .quadmenu-dropdown-menu > ul > li:last-child > a { + border-radius: 0 0 0px 0px; +} +#quadmenu.quadmenu-is-horizontal .quadmenu-navbar-nav .quadmenu-dropdown-menu > ul > li:only-child, +#quadmenu.quadmenu-is-horizontal .quadmenu-navbar-nav .quadmenu-dropdown-menu > ul > li:only-child > a { + border-radius: 0px 0px 0px 0px; +} +#quadmenu.quadmenu-is-horizontal .quadmenu-navbar-nav .quadmenu-dropdown-submenu:not(.quadmenu-item-type-tab) > .quadmenu-dropdown-menu { + margin: 0px 0px 0 0px; +} +#quadmenu.quadmenu-sticky-top { + background-color: rgba(0, 0, 0, 0.5); +} +#quadmenu.quadmenu-sticky-top.quadmenu-is-horizontal .quadmenu-navbar-header .quadmenu-navbar-brand { + height: 60px; + line-height: 60px; +} +#quadmenu.quadmenu-sticky-top.quadmenu-is-horizontal .quadmenu-navbar-nav > li { + height: 60px; +} +#quadmenu.quadmenu-sticky-top.quadmenu-is-horizontal .quadmenu-navbar-nav li.quadmenu-item-type-social > .quadmenu-toggle-container { + height: 60px; +} +#quadmenu.quadmenu-sticky-top .quadmenu-navbar-brand > img { + height: 25px; +} +#quadmenu .quadmenu-navbar-brand { + color: #f1f1f1; +} +#quadmenu .quadmenu-navbar-brand:hover, +#quadmenu .quadmenu-navbar-brand:focus { + color: #ffffff; +} +#quadmenu .quadmenu-navbar-brand.img { + background-color: transparent; +} +#quadmenu .quadmenu-navbar-brand > img { + height: 25px; +} +#quadmenu .quadmenu-navbar-toggle.collapsed .icon-bar { + background-color: #ffffff; +} +#quadmenu .quadmenu-navbar-toggle .icon-bar { + background-color: #fb88dd; +} +#quadmenu .ps-container > .ps-scrollbar-y-rail { + background-color: #ffffff; +} +#quadmenu .ps-container > .ps-scrollbar-y-rail > .ps-scrollbar-y { + background-color: #fb88dd; +} +#quadmenu .ps-container > .ps-scrollbar-y-rail:hover > .ps-scrollbar-y, +#quadmenu .ps-container > .ps-scrollbar-y-rail:active > .ps-scrollbar-y { + background-color: #fb88dd; +} +#quadmenu .quadmenu-dropdown-menu .ps-container > .ps-scrollbar-y-rail > .ps-scrollbar-y { + background-color: #fb88dd; +} +#quadmenu .quadmenu-dropdown-menu .ps-container > .ps-scrollbar-y-rail:hover > .ps-scrollbar-y, +#quadmenu .quadmenu-dropdown-menu .ps-container > .ps-scrollbar-y-rail:active > .ps-scrollbar-y { + background-color: #fb88dd; +} +#quadmenu:not(.quadmenu-is-horizontal) .quadmenu-navbar-collapse.collapsing, +#quadmenu:not(.quadmenu-is-horizontal) .quadmenu-navbar-collapse.in { + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); +} +#quadmenu:not(.quadmenu-is-horizontal) .quadmenu-navbar-nav li.quadmenu-item.open > a > .quadmenu-item-content > .quadmenu-caret { + color: #444444; + background-color: #ffffff; +} +#quadmenu:not(.quadmenu-is-horizontal) .navbar-offcanvas { + background-color: #333333; +} +#quadmenu:not(.quadmenu-is-horizontal).quadmenu-background-gradient .navbar-offcanvas { + background: -webkit-linear-gradient(17deg, #333333 0, #000000 90%); + /*Safari 5.1-6*/ + background: -o-linear-gradient(17deg, #333333 0, #000000 90%); + /*Opera 11.1-12*/ + background: -moz-linear-gradient(17deg, #333333 0, #000000 90%); + /*Fx 3.6-15*/ + background: linear-gradient(17deg, #333333 0, #000000 90%); + /*Standard*/ +} +#quadmenu:not(.quadmenu-is-horizontal).quadmenu-offcanvas-left .navbar-offcanvas { + left: -260px; +} +#quadmenu:not(.quadmenu-is-horizontal).quadmenu-offcanvas-right .navbar-offcanvas { + right: -260px; +} +#quadmenu:not(.quadmenu-is-horizontal) .navbar-offcanvas { + width: 260px; +} +#quadmenu:not(.quadmenu-is-horizontal) .quadmenu-navbar-nav .quadmenu-dropdown-menu li.quadmenu-item:last-child > a { + border-style: solid; + border-width: 0 0 1px 0; +} +#quadmenu .quadmenu-navbar-nav > li.quadmenu-hover-slidebar > span.bar { + background-color: #fb88dd; +} +#quadmenu .quadmenu-navbar-nav > li { + margin: 0px 0px 0px 0px; + border-radius: 0px 0px 0px 0px; + /*.button { + color: ~"@{@{location}_navbar_button}"; + background-color: ~"@{@{location}_navbar_button_bg}"; + + &:active, + &:focus, + &:hover { + color: ~"@{@{location}_navbar_button_hover}"; + background-color: ~"@{@{location}_navbar_button_bg_hover}"; + } + }*/ +} +#quadmenu .quadmenu-navbar-nav > li > a > .quadmenu-item-content { + color: #f1f1f1; + text-transform: uppercase; +} +#quadmenu .quadmenu-navbar-nav > li > a > .quadmenu-item-content > .quadmenu-icon { + color: #eeeeee; +} +#quadmenu .quadmenu-navbar-nav > li > a > .quadmenu-item-content > .quadmenu-subtitle { + color: #eeeeee; +} +#quadmenu .quadmenu-navbar-nav > li > a > .quadmenu-item-content > .quadmenu-badge > .quadmenu-badge-bubble { + background-color: #fb88dd; + color: #ffffff; +} +#quadmenu .quadmenu-navbar-nav > li:hover > a > .quadmenu-item-content, +#quadmenu .quadmenu-navbar-nav > li.open > a > .quadmenu-item-content { + color: #ffffff; +} +#quadmenu .quadmenu-navbar-nav > li:hover > a > .quadmenu-item-content > .quadmenu-icon, +#quadmenu .quadmenu-navbar-nav > li.open > a > .quadmenu-item-content > .quadmenu-icon { + color: #ffffff; +} +#quadmenu .quadmenu-navbar-nav > li:hover > a > .quadmenu-item-content > .quadmenu-subtitle, +#quadmenu .quadmenu-navbar-nav > li.open > a > .quadmenu-item-content > .quadmenu-subtitle { + color: #ffffff !important; +} +#quadmenu .quadmenu-navbar-nav > li.quadmenu-has-link { + background-color: transparent; +} +#quadmenu .quadmenu-navbar-nav > li.quadmenu-has-link:hover, +#quadmenu .quadmenu-navbar-nav > li.quadmenu-has-link.open { + background-color: #111111; +} +#quadmenu .quadmenu-navbar-nav > li.quadmenu-item-type-tabs > .quadmenu-dropdown-menu > ul > li > ul.quadmenu-tabs > li.quadmenu-item-type-tab { + background-color: rgba(0, 0, 0, 0.05); +} +#quadmenu .quadmenu-navbar-nav > li.quadmenu-item-type-tabs > .quadmenu-dropdown-menu > ul > li > ul.quadmenu-tabs > li.quadmenu-item-type-tab:hover, +#quadmenu .quadmenu-navbar-nav > li.quadmenu-item-type-tabs > .quadmenu-dropdown-menu > ul > li > ul.quadmenu-tabs > li.quadmenu-item-type-tab.open { + background-color: rgba(0, 0, 0, 0.1); +} +#quadmenu .quadmenu-navbar-nav > li.quadmenu-item-type-search > form ::placeholder { + color: #f1f1f1; + opacity: 0.6; +} +#quadmenu .quadmenu-navbar-nav > li.quadmenu-item-type-search > form input { + color: #f1f1f1; +} +#quadmenu .quadmenu-navbar-nav > li.quadmenu-item-type-search > form i { + color: #eeeeee; +} +#quadmenu .quadmenu-navbar-nav > li.quadmenu-item-type-cart > a > .quadmenu-item-content > .quadmenu-cart-magic > .quadmenu-icon { + color: #eeeeee; +} +#quadmenu .quadmenu-navbar-nav > li.quadmenu-item-type-cart > a > .quadmenu-item-content > .quadmenu-cart-magic > .quadmenu-cart-qty { + background-color: #fb88dd; + color: #ffffff; +} +#quadmenu .quadmenu-navbar-nav > li.quadmenu-item-type-cart.open > a > .quadmenu-item-content > .quadmenu-cart-magic > .quadmenu-icon { + color: #ffffff; +} +#quadmenu .quadmenu-navbar-nav > li.quadmenu-item-type-social > .quadmenu-toggle-container > a { + color: #f1f1f1; +} +#quadmenu .quadmenu-navbar-nav > li.quadmenu-item-type-social > .quadmenu-toggle-container > a > .quadmenu-icon { + color: #eeeeee; +} +#quadmenu .quadmenu-navbar-nav > li.quadmenu-item-type-social > .quadmenu-toggle-container > a:hover > .quadmenu-icon, +#quadmenu .quadmenu-navbar-nav > li.quadmenu-item-type-social > .quadmenu-toggle-container > a:focus > .quadmenu-icon { + color: #ffffff; +} +#quadmenu .quadmenu-navbar-nav > li.quadmenu-item-type-carousel .owl-dots .owl-dot span { + background-color: #fb88dd; +} +#quadmenu .quadmenu-navbar-nav > li.quadmenu-item-type-carousel .owl-nav .owl-prev, +#quadmenu .quadmenu-navbar-nav > li.quadmenu-item-type-carousel .owl-nav .owl-next { + color: #ffffff; + background-color: #fb88dd; +} +#quadmenu .quadmenu-navbar-nav > li.quadmenu-item-type-carousel .owl-nav .owl-prev:active, +#quadmenu .quadmenu-navbar-nav > li.quadmenu-item-type-carousel .owl-nav .owl-next:active, +#quadmenu .quadmenu-navbar-nav > li.quadmenu-item-type-carousel .owl-nav .owl-prev:focus, +#quadmenu .quadmenu-navbar-nav > li.quadmenu-item-type-carousel .owl-nav .owl-next:focus, +#quadmenu .quadmenu-navbar-nav > li.quadmenu-item-type-carousel .owl-nav .owl-prev:hover, +#quadmenu .quadmenu-navbar-nav > li.quadmenu-item-type-carousel .owl-nav .owl-next:hover { + color: #ffffff; + background-color: #000000; +} +#quadmenu .quadmenu-navbar-nav > li.quadmenu-item-type-login a { + color: #444444; +} +#quadmenu .quadmenu-navbar-nav > li.quadmenu-item-type-login a:hover { + color: #333333; +} +#quadmenu .quadmenu-navbar-nav .quadmenu-dropdown-menu { + background-color: #ffffff; +} +#quadmenu .quadmenu-navbar-nav .quadmenu-dropdown-menu .quadmenu-title { + color: #444444; + border-width: 0 0 1px 0; + border-style: solid; + border-color: #fb88dd; + margin-bottom: 15px; +} +#quadmenu .quadmenu-navbar-nav .quadmenu-dropdown-menu form ::placeholder { + color: #444444; + opacity: 0.6; +} +#quadmenu .quadmenu-navbar-nav .quadmenu-dropdown-menu .button { + color: #ffffff; + background-color: #fb88dd; +} +#quadmenu .quadmenu-navbar-nav .quadmenu-dropdown-menu .button:active, +#quadmenu .quadmenu-navbar-nav .quadmenu-dropdown-menu .button:focus, +#quadmenu .quadmenu-navbar-nav .quadmenu-dropdown-menu .button:hover { + color: #ffffff; + background-color: #000000; +} +#quadmenu .quadmenu-navbar-nav .quadmenu-dropdown-menu li.quadmenu-item:not(:last-child):not(:only-child) > a { + border-style: solid; + border-width: 0 0 1px 0; +} +#quadmenu .quadmenu-navbar-nav .quadmenu-dropdown-menu li.quadmenu-item > a { + border-color: #f4f4f4; +} +#quadmenu .quadmenu-navbar-nav .quadmenu-dropdown-menu li.quadmenu-item > a > .quadmenu-item-content { + color: #444444; + text-transform: none; +} +#quadmenu .quadmenu-navbar-nav .quadmenu-dropdown-menu li.quadmenu-item > a > .quadmenu-item-content > .quadmenu-icon { + color: #fb88dd; +} +#quadmenu .quadmenu-navbar-nav .quadmenu-dropdown-menu li.quadmenu-item > a > .quadmenu-item-content > .quadmenu-subtitle, +#quadmenu .quadmenu-navbar-nav .quadmenu-dropdown-menu li.quadmenu-item > a > .quadmenu-item-content > .quadmenu-description { + color: #a0a0a0; +} +#quadmenu .quadmenu-navbar-nav .quadmenu-dropdown-menu li.quadmenu-item > a > .quadmenu-item-content > .quadmenu-badge > .quadmenu-badge-bubble { + background-color: #fb88dd; + color: #ffffff; +} +#quadmenu .quadmenu-navbar-nav .quadmenu-dropdown-menu li.quadmenu-item:hover > a > .quadmenu-item-content, +#quadmenu .quadmenu-navbar-nav .quadmenu-dropdown-menu li.quadmenu-item.open > a > .quadmenu-item-content { + color: #333333 !important; +} +#quadmenu .quadmenu-navbar-nav .quadmenu-dropdown-menu li.quadmenu-item:hover > a > .quadmenu-item-content > .quadmenu-icon, +#quadmenu .quadmenu-navbar-nav .quadmenu-dropdown-menu li.quadmenu-item.open > a > .quadmenu-item-content > .quadmenu-icon { + color: #a9a9a9; +} +#quadmenu .quadmenu-navbar-nav .quadmenu-dropdown-menu li.quadmenu-item:hover > a > .quadmenu-item-content > .quadmenu-description, +#quadmenu .quadmenu-navbar-nav .quadmenu-dropdown-menu li.quadmenu-item.open > a > .quadmenu-item-content > .quadmenu-description, +#quadmenu .quadmenu-navbar-nav .quadmenu-dropdown-menu li.quadmenu-item:hover > a > .quadmenu-item-content > .quadmenu-subtitle, +#quadmenu .quadmenu-navbar-nav .quadmenu-dropdown-menu li.quadmenu-item.open > a > .quadmenu-item-content > .quadmenu-subtitle { + color: #cccccc; +} +#quadmenu .quadmenu-navbar-nav .quadmenu-dropdown-menu li.quadmenu-item.quadmenu-has-link:hover, +#quadmenu .quadmenu-navbar-nav .quadmenu-dropdown-menu li.quadmenu-item.quadmenu-has-link.open { + background-color: #f4f4f4; +} diff --git a/assets/frontend/css/quadmenu-normalize.css b/assets/frontend/css/quadmenu-normalize.css new file mode 100644 index 0000000..91374f9 --- /dev/null +++ b/assets/frontend/css/quadmenu-normalize.css @@ -0,0 +1,266 @@ +#quadmenu .owl-carousel, +#quadmenu .owl-dots, +#quadmenu .owl-nav, +#quadmenu .quadmenu-container, +#quadmenu .quadmenu-navbar-nav, +#quadmenu .quadmenu-dropdown-toggle, +#quadmenu .quadmenu-dropdown-menu, +#quadmenu .quadmenu-dropdown-submenu, +#quadmenu ul, +#quadmenu ul li, +#quadmenu ul li ul, +#quadmenu ul li a { + margin: 0; + padding: 0; + left: auto; + right: auto; + top: auto; + bottom: auto; + text-indent: 0; + clip: auto; + position: static; + background: none; + text-transform: none; + overflow: visible; + -webkit-box-shadow: none; + -moz-box-shadow: none; + -o-box-shadow: none; + box-shadow: none; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + -o-box-sizing: border-box; + box-sizing: border-box; + vertical-align: top; + border: none; + border-radius: 0; + text-align: left; + float: none; + height: auto; + width: auto; + transform: unset; + animation: unset; + opacity: unset; + visibility: visible; + pointer-events: all; +} + +#quadmenu article, +#quadmenu aside, +#quadmenu details, +#quadmenu figcaption, +#quadmenu figure, +#quadmenu footer, +#quadmenu header, +#quadmenu hgroup, +#quadmenu main, +#quadmenu menu, +#quadmenu nav, +#quadmenu section, +#quadmenu summary { + display: block; +} +#quadmenu audio, +#quadmenu canvas, +#quadmenu progress, +#quadmenu video { + display: inline-block; + vertical-align: baseline; +} +#quadmenu audio:not([controls]) { + display: none; + height: 0; +} +#quadmenu [hidden], +#quadmenu template { + display: none; +} +#quadmenu a { + background-color: transparent; +} +#quadmenu a:active, +#quadmenu a:hover { + outline: 0; +} +#quadmenu abbr[title] { + border-bottom: 1px dotted; +} +#quadmenu b, +#quadmenu strong { + font-weight: bold; +} +#quadmenu dfn { + font-style: italic; +} +#quadmenu h1 { + font-size: 2em; + margin: 0.67em 0; +} +#quadmenu mark { + background: #ff0; + color: #000; +} +#quadmenu small { + font-size: 80%; +} +#quadmenu sub, +#quadmenu sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} +sup { + top: -0.5em; +} +#quadmenu sub { + bottom: -0.25em; +} +#quadmenu img { + border: 0; +} +#quadmenu svg:not(:root) { + overflow: hidden; +} +#quadmenu figure { + margin: 1em 40px; +} +#quadmenu hr { + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} +#quadmenu pre { + overflow: auto; +} +#quadmenu code, +#quadmenu kbd, +#quadmenu pre, +#quadmenu samp { + font-family: monospace, monospace; + font-size: 1em; +} +#quadmenu button, +#quadmenu input, +#quadmenu optgroup, +#quadmenu select, +#quadmenu textarea { + color: inherit; + font: inherit; + margin: 0; +} +#quadmenu button { + overflow: visible; +} +#quadmenu button, +#quadmenu select { + text-transform: none; +} +#quadmenu button, +#quadmenu html input[type="button"], +#quadmenu input[type="reset"], +#quadmenu input[type="submit"] { + -webkit-appearance: button; + cursor: pointer; +} +#quadmenu button[disabled], +#quadmenu html input[disabled] { + cursor: default; +} +#quadmenu button::-moz-focus-inner, +#quadmenu input::-moz-focus-inner { + border: 0; + padding: 0; +} +#quadmenu input { + line-height: normal; +} +#quadmenu input[type="checkbox"], +#quadmenu input[type="radio"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + padding: 0; +} +#quadmenu input[type="number"]::-webkit-inner-spin-button, +#quadmenu input[type="number"]::-webkit-outer-spin-button { + height: auto; +} +#quadmenu input[type="search"] { + -webkit-appearance: textfield; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + box-sizing: content-box; +} +#quadmenu input[type="search"]::-webkit-search-cancel-button, +#quadmenu input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} +#quadmenu fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} +#quadmenu legend { + border: 0; + padding: 0; +} +#quadmenu textarea { + overflow: auto; +} +#quadmenu optgroup { + font-weight: bold; +} +#quadmenu table { + border-collapse: collapse; + border-spacing: 0; +} +#quadmenu td, +#quadmenu th { + padding: 0; +} +#quadmenu * { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + transition: none; + animation: none; +} +#quadmenu *:before, +#quadmenu *:after { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +#quadmenu input, +#quadmenu #quadmenu button, +#quadmenu select, +#quadmenu textarea { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} +#quadmenu a { + text-decoration: none; +} +#quadmenu a:hover, +#quadmenu a:focus { + text-decoration: none; +} +#quadmenu a:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +#quadmenu a:focus, #quadmenu a:active, +#quadmenu button::-moz-focus-inner, +#quadmenu input[type="reset"]::-moz-focus-inner, +#quadmenu input[type="button"]::-moz-focus-inner, +#quadmenu input[type="submit"]::-moz-focus-inner, +#quadmenu select::-moz-focus-inner, +#quadmenu input[type="file"] > input[type="button"]::-moz-focus-inner { + border: 0; + outline : 0; +} \ No newline at end of file diff --git a/assets/frontend/css/quadmenu-normalize.min.css b/assets/frontend/css/quadmenu-normalize.min.css new file mode 100644 index 0000000..840859c --- /dev/null +++ b/assets/frontend/css/quadmenu-normalize.min.css @@ -0,0 +1,2 @@ + +#quadmenu .owl-carousel,#quadmenu .owl-dots,#quadmenu .owl-nav,#quadmenu .quadmenu-container,#quadmenu .quadmenu-navbar-nav,#quadmenu .quadmenu-dropdown-toggle,#quadmenu .quadmenu-dropdown-menu,#quadmenu .quadmenu-dropdown-submenu,#quadmenu ul,#quadmenu ul li,#quadmenu ul li ul,#quadmenu ul li a{margin:0;padding:0;left:auto;right:auto;top:auto;bottom:auto;text-indent:0;clip:auto;position:static;background:0;text-transform:none;overflow:visible;-webkit-box-shadow:none;-moz-box-shadow:none;-o-box-shadow:none;box-shadow:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;-o-box-sizing:border-box;box-sizing:border-box;vertical-align:top;border:0;border-radius:0;text-align:left;float:none;height:auto;width:auto;transform:unset;animation:unset;opacity:unset;visibility:visible;pointer-events:all}#quadmenu article,#quadmenu aside,#quadmenu details,#quadmenu figcaption,#quadmenu figure,#quadmenu footer,#quadmenu header,#quadmenu hgroup,#quadmenu main,#quadmenu menu,#quadmenu nav,#quadmenu section,#quadmenu summary{display:block}#quadmenu audio,#quadmenu canvas,#quadmenu progress,#quadmenu video{display:inline-block;vertical-align:baseline}#quadmenu audio:not([controls]){display:none;height:0}#quadmenu [hidden],#quadmenu template{display:none}#quadmenu a{background-color:transparent}#quadmenu a:active,#quadmenu a:hover{outline:0}#quadmenu abbr[title]{border-bottom:1px dotted}#quadmenu b,#quadmenu strong{font-weight:bold}#quadmenu dfn{font-style:italic}#quadmenu h1{font-size:2em;margin:.67em 0}#quadmenu mark{background:#ff0;color:#000}#quadmenu small{font-size:80%}#quadmenu sub,#quadmenu sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}#quadmenu sub{bottom:-0.25em}#quadmenu img{border:0}#quadmenu svg:not(:root){overflow:hidden}#quadmenu figure{margin:1em 40px}#quadmenu hr{-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;height:0}#quadmenu pre{overflow:auto}#quadmenu code,#quadmenu kbd,#quadmenu pre,#quadmenu samp{font-family:monospace,monospace;font-size:1em}#quadmenu button,#quadmenu input,#quadmenu optgroup,#quadmenu select,#quadmenu textarea{color:inherit;font:inherit;margin:0}#quadmenu button{overflow:visible}#quadmenu button,#quadmenu select{text-transform:none}#quadmenu button,#quadmenu html input[type="button"],#quadmenu input[type="reset"],#quadmenu input[type="submit"]{-webkit-appearance:button;cursor:pointer}#quadmenu button[disabled],#quadmenu html input[disabled]{cursor:default}#quadmenu button::-moz-focus-inner,#quadmenu input::-moz-focus-inner{border:0;padding:0}#quadmenu input{line-height:normal}#quadmenu input[type="checkbox"],#quadmenu input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}#quadmenu input[type="number"]::-webkit-inner-spin-button,#quadmenu input[type="number"]::-webkit-outer-spin-button{height:auto}#quadmenu input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}#quadmenu input[type="search"]::-webkit-search-cancel-button,#quadmenu input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}#quadmenu fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:.35em .625em .75em}#quadmenu legend{border:0;padding:0}#quadmenu textarea{overflow:auto}#quadmenu optgroup{font-weight:bold}#quadmenu table{border-collapse:collapse;border-spacing:0}#quadmenu td,#quadmenu th{padding:0}#quadmenu *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;transition:none;animation:none}#quadmenu *:before,#quadmenu *:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#quadmenu input,#quadmenu #quadmenu button,#quadmenu select,#quadmenu textarea{font-family:inherit;font-size:inherit;line-height:inherit}#quadmenu a{text-decoration:none}#quadmenu a:hover,#quadmenu a:focus{text-decoration:none}#quadmenu a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}#quadmenu a:focus,#quadmenu a:active,#quadmenu button::-moz-focus-inner,#quadmenu input[type="reset"]::-moz-focus-inner,#quadmenu input[type="button"]::-moz-focus-inner,#quadmenu input[type="submit"]::-moz-focus-inner,#quadmenu select::-moz-focus-inner,#quadmenu input[type="file"]>input[type="button"]::-moz-focus-inner{border:0;outline:0} \ No newline at end of file diff --git a/assets/frontend/css/quadmenu-widgets.css b/assets/frontend/css/quadmenu-widgets.css new file mode 100644 index 0000000..040c30a --- /dev/null +++ b/assets/frontend/css/quadmenu-widgets.css @@ -0,0 +1,455 @@ +#quadmenu .wpcf7 form { + margin: 0; + padding: 0; +} +#quadmenu .wpcf7 form > p { + margin: 0 0 1.5em 0; +} +#quadmenu .wpcf7 br { + display: none; +} +#quadmenu .wpcf7 .ajax-loader { + display: none; +} +#quadmenu .wpcf7 .wpcf7-not-valid { + border: 1px solid #ff0000; +} +#quadmenu .wpcf7 span.wpcf7-not-valid-tip { + display: none; +} +#quadmenu .wpcf7 div.wpcf7-response-output { + margin: 0; + padding: 15px; +} +#quadmenu .wpcf7 div.wpcf7-validation-errors { + border-radius: 4px; +} +#quadmenu .wpcf7 div.wpcf7-validation-errors { + margin-bottom: 20px; +} +#quadmenu .wpcf7 .wpcf7-checkbox { + text-align: center; +} +#quadmenu .widget { + padding: 0; +} +#quadmenu .widget a, +#quadmenu .widget ul li { + line-height: inherit; +} +#quadmenu .widget ul { + list-style: none; + margin: 0; +} +#quadmenu .widget ul li { + position: relative; + display: block; + padding: 10px 0; + width: 100%; +} +#quadmenu .widget ul li:last-child { + border-bottom: 0; + padding-bottom: 0; +} +#quadmenu .widget ul li img, +#quadmenu .widget ul li h5, +#quadmenu .widget ul li i, +#quadmenu .widget ul li span { + -webkit-transition: color 0.4s; + -moz-transition: color 0.4s; + -ms-transition: color 0.4s; + -o-transition: color 0.4s; + transition: color 0.4s; +} +#quadmenu .widget ul ul { + margin-top: 10px; + margin-bottom: 0.1em; +} +#quadmenu .widget ul ul li:first-child { + border-top: 1px solid; +} +#quadmenu .widget > ul, +#quadmenu .widget > div > ul { + padding: 0; + margin-top: 0; + margin-bottom: 0; +} +#quadmenu .widget > ul > li:first-child, +#quadmenu .widget > div > ul > li:first-child { + border-top: 0; + padding-top: 0; +} +#quadmenu .widget.widget_text p { + line-height: 1.45; + margin-bottom: 10px; +} +#quadmenu .widget.widget_text input, +#quadmenu .widget.widget_text select { + max-width: 100%; +} +#quadmenu .widget.widget_rss h4 a.rsswidget { + text-transform: uppercase; +} +#quadmenu .widget.widget_rss h4 a.rsswidget:first-child { + float: right; +} +#quadmenu .widget.widget_rss span.rss-date { + display: block; + text-align: right; + margin: 10px 0; +} +#quadmenu .widget.widget_rss div.rssSummary { + text-transform: none; +} +#quadmenu .widget.widget_rss cite { + margin-top: 5px; + text-align: right; + display: block; +} +#quadmenu .widget.widget_nav_menu ul ul, +#quadmenu .widget.widget_pages ul ul { + padding: 10px 0 0 10px; +} +#quadmenu .widget.widget_recent_comments ul > li > span.comment-author-link, +#quadmenu .widget.widget_recent_entries ul > li > span.comment-author-link, +#quadmenu .widget.widget_recent_comments ul > li > span.post-date, +#quadmenu .widget.widget_recent_entries ul > li > span.post-date { + display: block; + margin: 2px 0 0 0; + font-size: 0.8em; + text-transform: none; + line-height: 1.3em; +} +#quadmenu .widget.widget_product_search input.form-control, +#quadmenu .widget.widget_search input.form-control { + width: 100%; +} +#quadmenu .widget.widget_archive ul > li > span.count, +#quadmenu .widget.widget_categories ul > li > span.count, +#quadmenu .widget.widget_product_categories ul > li > span.count { + font-weight: 700; + float: right; +} +#quadmenu .widget.widget_calendar > .title { + display: none; +} +#quadmenu .widget.widget_calendar table > caption { + margin: 0px; + display: table-caption; +} +#quadmenu .widget.widget_calendar table > thead > tr > th { + border-bottom: 1px; + font-size: 0.8em; +} +#quadmenu .widget.widget_calendar table td, +#quadmenu .widget.widget_calendar table th { + text-align: center; + padding: 10px 0; +} +#quadmenu .widget.widget_tag_cloud a, +#quadmenu .widget.widget_product_tag_cloud a { + display: inline-block; + text-decoration: none; + margin: 0 0.5em 0 0; +} +#quadmenu .widget.widget_tag_cloud a:after, +#quadmenu .widget.widget_product_tag_cloud a:after, +#quadmenu .widget.widget_tag_cloud a:before, +#quadmenu .widget.widget_product_tag_cloud a:before { + display: none; +} +#quadmenu .widget.widget_products li:before, +#quadmenu .widget.widget_recent_reviews li:before, +#quadmenu .widget.widget_shopping_cart li:before, +#quadmenu .widget.widget_recently_viewed_products li:before, +#quadmenu .widget.widget_top_rated_products li:before, +#quadmenu .widget.widget_featured_posts li:before, +#quadmenu .widget.widget_products li:after, +#quadmenu .widget.widget_recent_reviews li:after, +#quadmenu .widget.widget_shopping_cart li:after, +#quadmenu .widget.widget_recently_viewed_products li:after, +#quadmenu .widget.widget_top_rated_products li:after, +#quadmenu .widget.widget_featured_posts li:after { + content: " "; + display: table; +} +#quadmenu .widget.widget_products li:after, +#quadmenu .widget.widget_recent_reviews li:after, +#quadmenu .widget.widget_shopping_cart li:after, +#quadmenu .widget.widget_recently_viewed_products li:after, +#quadmenu .widget.widget_top_rated_products li:after, +#quadmenu .widget.widget_featured_posts li:after { + clear: both; +} +#quadmenu .widget.widget_products li > a, +#quadmenu .widget.widget_recent_reviews li > a, +#quadmenu .widget.widget_shopping_cart li > a, +#quadmenu .widget.widget_recently_viewed_products li > a, +#quadmenu .widget.widget_top_rated_products li > a, +#quadmenu .widget.widget_featured_posts li > a, +#quadmenu .widget.widget_products li > a > span.product-title, +#quadmenu .widget.widget_recent_reviews li > a > span.product-title, +#quadmenu .widget.widget_shopping_cart li > a > span.product-title, +#quadmenu .widget.widget_recently_viewed_products li > a > span.product-title, +#quadmenu .widget.widget_top_rated_products li > a > span.product-title, +#quadmenu .widget.widget_featured_posts li > a > span.product-title { + margin: 5px 0; + font-weight: 400; + text-transform: uppercase; +} +#quadmenu .widget.widget_products li > a > img, +#quadmenu .widget.widget_recent_reviews li > a > img, +#quadmenu .widget.widget_shopping_cart li > a > img, +#quadmenu .widget.widget_recently_viewed_products li > a > img, +#quadmenu .widget.widget_top_rated_products li > a > img, +#quadmenu .widget.widget_featured_posts li > a > img { + margin: 0 15px 0 0; + float: left; + width: 70px; + height: auto; + max-width: 35%; +} +#quadmenu .widget.widget_products li > .date, +#quadmenu .widget.widget_recent_reviews li > .date, +#quadmenu .widget.widget_shopping_cart li > .date, +#quadmenu .widget.widget_recently_viewed_products li > .date, +#quadmenu .widget.widget_top_rated_products li > .date, +#quadmenu .widget.widget_featured_posts li > .date, +#quadmenu .widget.widget_products li > a > .date, +#quadmenu .widget.widget_recent_reviews li > a > .date, +#quadmenu .widget.widget_shopping_cart li > a > .date, +#quadmenu .widget.widget_recently_viewed_products li > a > .date, +#quadmenu .widget.widget_top_rated_products li > a > .date, +#quadmenu .widget.widget_featured_posts li > a > .date { + display: block; + text-transform: uppercase; +} +#quadmenu .widget.widget_products li > a:hover > img, +#quadmenu .widget.widget_recent_reviews li > a:hover > img, +#quadmenu .widget.widget_shopping_cart li > a:hover > img, +#quadmenu .widget.widget_recently_viewed_products li > a:hover > img, +#quadmenu .widget.widget_top_rated_products li > a:hover > img, +#quadmenu .widget.widget_featured_posts li > a:hover > img { + box-shadow: 0px 3px 7px -3px rgba(0, 0, 0, 0.2); +} +#quadmenu .widget.widget_products li > p, +#quadmenu .widget.widget_recent_reviews li > p, +#quadmenu .widget.widget_shopping_cart li > p, +#quadmenu .widget.widget_recently_viewed_products li > p, +#quadmenu .widget.widget_top_rated_products li > p, +#quadmenu .widget.widget_featured_posts li > p { + margin: 0; + overflow: hidden; +} +#quadmenu .widget.widget_products li > .reviewer, +#quadmenu .widget.widget_recent_reviews li > .reviewer, +#quadmenu .widget.widget_shopping_cart li > .reviewer, +#quadmenu .widget.widget_recently_viewed_products li > .reviewer, +#quadmenu .widget.widget_top_rated_products li > .reviewer, +#quadmenu .widget.widget_products li > .quantity, +#quadmenu .widget.widget_recent_reviews li > .quantity, +#quadmenu .widget.widget_shopping_cart li > .quantity, +#quadmenu .widget.widget_recently_viewed_products li > .quantity, +#quadmenu .widget.widget_top_rated_products li > .quantity, +#quadmenu .widget.widget_products li > .price, +#quadmenu .widget.widget_recent_reviews li > .price, +#quadmenu .widget.widget_shopping_cart li > .price, +#quadmenu .widget.widget_recently_viewed_products li > .price, +#quadmenu .widget.widget_top_rated_products li > .price, +#quadmenu .widget.widget_products li > .star-rating, +#quadmenu .widget.widget_recent_reviews li > .star-rating, +#quadmenu .widget.widget_shopping_cart li > .star-rating, +#quadmenu .widget.widget_recently_viewed_products li > .star-rating, +#quadmenu .widget.widget_top_rated_products li > .star-rating { + float: none; + display: block; + margin-top: 5px; +} +#quadmenu .widget.widget_shopping_cart ul.cart_list { + padding: 0; +} +#quadmenu .widget.widget_shopping_cart ul.cart_list li > a > img { + margin: 0 15px 0 9px; +} +#quadmenu .widget.widget_shopping_cart ul.cart_list li > a.remove { + position: absolute; + left: 0; + top: 0; + width: 20px; + height: 20px; + line-height: 20px; + text-align: center; + border-radius: 50%; +} +#quadmenu .widget.widget_shopping_cart .total { + padding: 15px 0 0 0; + margin: 15px 0; + border-top: 1px solid; +} +#quadmenu .widget.widget_shopping_cart .buttons { + padding: 0; + margin: 0; +} +#quadmenu .widget.widget_shopping_cart .buttons .button { + margin: 0; +} +#quadmenu .widget.widget_shopping_cart .buttons .button:first-child { + margin-right: 5px; +} +#quadmenu .widget.widget_product_search label.screen-reader-text { + display: none; +} +#quadmenu .widget.widget_price_filter h4 { + display: none; +} +#quadmenu .widget.widget_price_filter .price_slider { + margin-bottom: 15px; +} +#quadmenu .widget.widget_price_filter .price_slider_amount { + text-align: right; +} +#quadmenu .widget.widget_price_filter .price_slider_amount .button { + float: left; +} +#quadmenu .widget.widget_price_filter .ui-slider { + position: relative; + text-align: left; +} +#quadmenu .widget.widget_price_filter .ui-slider .ui-slider-handle { + position: absolute; + z-index: 2; + width: 10px; + height: 10px; + cursor: pointer; + outline: none; + top: -4px; +} +#quadmenu .widget.widget_price_filter .ui-slider .ui-slider-handle:last-child { + margin-left: -1em; +} +#quadmenu .widget.widget_price_filter .ui-slider .ui-slider-range { + position: absolute; + z-index: 1; + height: 15px; + display: block; + border: 0; +} +#quadmenu .widget.widget_price_filter .ui-slider-horizontal { + height: 2px; +} +#quadmenu .widget.widget_price_filter .ui-slider-horizontal .ui-slider-range { + top: 0; + height: 100%; +} +#quadmenu .widget.widget_price_filter .ui-slider-horizontal .ui-slider-range-min { + left: -1px; +} +#quadmenu .widget.widget_price_filter .ui-slider-horizontal .ui-slider-range-max { + right: -1px; +} +#quadmenu .widget.widget_layered_nav ul li.chosen a { + text-decoration: none; +} +#quadmenu .widget.widget_edd_cart_widget .edd-cart-number-of-items { + padding: 9px 0; +} +#quadmenu .widget.widget_edd_cart_widget ul > li { + padding: 9px 0; +} +#quadmenu .widget.widget_edd_cart_widget ul > li.edd_subtotal { + margin: 0; +} +#quadmenu .widget.widget_sci_googlemaps_widget #sci-google-map { + max-width: 100%; +} +#quadmenu .widget a, +#quadmenu .widget ul li { + font-family: Verdana, Geneva, sans-serif; + font-weight: 400; + font-size: 11px; +} +#quadmenu .widget.widget_rss span.rss-date { + font-size: 9px; +} +#quadmenu .widget.widget_products li > a, +#quadmenu .widget.widget_recent_reviews li > a, +#quadmenu .widget.widget_shopping_cart li > a, +#quadmenu .widget.widget_recently_viewed_products li > a, +#quadmenu .widget.widget_top_rated_products li > a, +#quadmenu .widget.widget_featured_posts li > a, +#quadmenu .widget.widget_products li > a > span.product-title, +#quadmenu .widget.widget_recent_reviews li > a > span.product-title, +#quadmenu .widget.widget_shopping_cart li > a > span.product-title, +#quadmenu .widget.widget_recently_viewed_products li > a > span.product-title, +#quadmenu .widget.widget_top_rated_products li > a > span.product-title, +#quadmenu .widget.widget_featured_posts li > a > span.product-title { + font-size: 12px; +} +#quadmenu .widget.widget_products li > .date, +#quadmenu .widget.widget_recent_reviews li > .date, +#quadmenu .widget.widget_shopping_cart li > .date, +#quadmenu .widget.widget_recently_viewed_products li > .date, +#quadmenu .widget.widget_top_rated_products li > .date, +#quadmenu .widget.widget_featured_posts li > .date, +#quadmenu .widget.widget_products li > a > .date, +#quadmenu .widget.widget_recent_reviews li > a > .date, +#quadmenu .widget.widget_shopping_cart li > a > .date, +#quadmenu .widget.widget_recently_viewed_products li > a > .date, +#quadmenu .widget.widget_top_rated_products li > a > .date, +#quadmenu .widget.widget_featured_posts li > a > .date { + font-size: 11px; +} +#quadmenu .widget.widget_products li span.reviewer, +#quadmenu .widget.widget_recent_reviews li span.reviewer, +#quadmenu .widget.widget_shopping_cart li span.reviewer, +#quadmenu .widget.widget_recently_viewed_products li span.reviewer, +#quadmenu .widget.widget_top_rated_products li span.reviewer, +#quadmenu .widget.widget_products li span.amount, +#quadmenu .widget.widget_recent_reviews li span.amount, +#quadmenu .widget.widget_shopping_cart li span.amount, +#quadmenu .widget.widget_recently_viewed_products li span.amount, +#quadmenu .widget.widget_top_rated_products li span.amount { + font-size: 9px; +} +#quadmenu .widget.widget_price_filter .price_slider_amount { + font-size: 9px; +} +#quadmenu .widget ul { + list-style: none; + margin: 0; +} +#quadmenu .widget ul li a { + color: #444444; +} +#quadmenu .widget ul li a:hover { + color: #333333; +} +#quadmenu .widget ul li:last-child { + border-bottom: 0; + padding-bottom: 0; +} +#quadmenu .widget.widget_tag_cloud a, +#quadmenu .widget.widget_product_tag_cloud a { + color: #fb88dd; +} +#quadmenu .widget.widget_tag_cloud a:hover, +#quadmenu .widget.widget_product_tag_cloud a:hover { + color: #a9a9a9; +} +#quadmenu .widget.widget_categories ul > li > span.count, +#quadmenu .widget.widget_product_categories ul > li > span.count { + color: #fb88dd; +} +#quadmenu .widget.widget_recent_comments ul > li > span.comment-author-link, +#quadmenu .widget.widget_recent_entries ul > li > span.comment-author-link, +#quadmenu .widget.widget_recent_comments ul > li > span.post-date, +#quadmenu .widget.widget_recent_entries ul > li > span.post-date { + color: #eeeeee; +} +#quadmenu .widget.widget_shopping_cart ul.cart_list li > a.remove { + color: #fff!important; + background-color: #fb88dd; +} +#quadmenu .widget.widget_shopping_cart ul.cart_list li > a.remove:hover { + background-color: #a9a9a9; +} diff --git a/assets/frontend/icons/eleganticons/fonts/ElegantIcons.eot b/assets/frontend/icons/eleganticons/fonts/ElegantIcons.eot new file mode 100644 index 0000000000000000000000000000000000000000..2fe8892f78b8d2c6d105b10c4ba69ecc3f667481 GIT binary patch literal 59572 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 literal 0 HcmV?d00001 diff --git a/assets/frontend/icons/eleganticons/fonts/ElegantIcons.svg b/assets/frontend/icons/eleganticons/fonts/ElegantIcons.svg new file mode 100644 index 0000000..a43f91f --- /dev/null +++ b/assets/frontend/icons/eleganticons/fonts/ElegantIcons.svg @@ -0,0 +1,1834 @@ + + + + + This is a custom SVG font generated by IcoMoon. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/frontend/icons/eleganticons/fonts/ElegantIcons.ttf b/assets/frontend/icons/eleganticons/fonts/ElegantIcons.ttf new file mode 100644 index 0000000000000000000000000000000000000000..12ff680025e13dc4f5ab6d7e659e4e2fbdad7273 GIT binary patch literal 59388 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 literal 0 HcmV?d00001 diff --git a/assets/frontend/icons/eleganticons/fonts/ElegantIcons.woff b/assets/frontend/icons/eleganticons/fonts/ElegantIcons.woff new file mode 100644 index 0000000000000000000000000000000000000000..393305253e5fc01d3369b4cf2735b08929432f96 GIT binary patch literal 63664 zcmaf(b9Cllv%qWH_SSZ{-g0Z(wr#uJVvDV9+qU1@erwykz4!0?oi8VIGV?o=OeT3w zp2;Nc^5Ww1Dk}0IAkVcR@E{-{U~~o`px@j7XAuz>CjkKgg#iJ%O#uNTb#mbTm=G6N zkp%&{%l&r8`xXK-hs7`nQ8Dpv*7V}Teb`fv6c+ZsB6 zfZWr62UP|E0k^v=Y?rh!H8cSMc?|gWVg44*PpA?Ui*NYNYQJrgZ=rxd`P#Rzb@BLS zv)}gS_x@`*(^%-Xh92L?d-`8LsQ(pED+LfcLtE2t*7|Lqf1i85ZLh4VgT1rMcfN(+ z4B=ZyK)^vjJTeb_VSQA@mh2a0?I}n@(&7T*Niu|1>T9n;#A1S|_en^|SQ#M{Sy-bG zq5{@2TyibQBY99LVnCwJmP({bX?&iZ9YxEjqp(vk`}f$*Cr@>$cD6pO~u497uZH7 z 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 z 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 li { + position: relative; +} +.el-li { + position: absolute; + left: -2.14285714em; + width: 2.14285714em; + top: 0.14285714em; + text-align: center; +} +.el-li.el-lg { + left: -1.85714286em; +} +.el-border { + padding: .2em .25em .15em; + border: solid 0.08em #eeeeee; + border-radius: .1em; +} +.pull-right { + float: right; +} +.pull-left { + float: left; +} +.el.pull-left { + margin-right: .3em; +} +.el.pull-right { + margin-left: .3em; +} +.el-spin { + -webkit-animation: el-spin 2s infinite linear; + animation: el-spin 2s infinite linear; +} +.el-pulse { + -webkit-animation: el-spin 1s infinite steps(8); + animation: el-spin 1s infinite steps(8); +} +@-webkit-keyframes el-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +@keyframes el-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +.el-rotate-90 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); +} +.el-rotate-180 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); + -webkit-transform: rotate(180deg); + -ms-transform: rotate(180deg); + transform: rotate(180deg); +} +.el-rotate-270 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); + -webkit-transform: rotate(270deg); + -ms-transform: rotate(270deg); + transform: rotate(270deg); +} +.el-flip-horizontal { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1); + -webkit-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + transform: scale(-1, 1); +} +.el-flip-vertical { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1); + -webkit-transform: scale(1, -1); + -ms-transform: scale(1, -1); + transform: scale(1, -1); +} +:root .el-rotate-90, +:root .el-rotate-180, +:root .el-rotate-270, +:root .el-flip-horizontal, +:root .el-flip-vertical { + filter: none; +} +.el-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} +.el-stack-1x, +.el-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} +.el-stack-1x { + line-height: inherit; +} +.el-stack-2x { + font-size: 2em; +} +.el-inverse { + color: #ffffff; +} +/* Elusive Icons uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ +.el-address-book-alt:before { + content: "\f101"; +} +.el-address-book:before { + content: "\f102"; +} +.el-adjust-alt:before { + content: "\f103"; +} +.el-adjust:before { + content: "\f104"; +} +.el-adult:before { + content: "\f105"; +} +.el-align-center:before { + content: "\f106"; +} +.el-align-justify:before { + content: "\f107"; +} +.el-align-left:before { + content: "\f108"; +} +.el-align-right:before { + content: "\f109"; +} +.el-arrow-down:before { + content: "\f10a"; +} +.el-arrow-left:before { + content: "\f10b"; +} +.el-arrow-right:before { + content: "\f10c"; +} +.el-arrow-up:before { + content: "\f10d"; +} +.el-asl:before { + content: "\f10e"; +} +.el-asterisk:before { + content: "\f10f"; +} +.el-backward:before { + content: "\f110"; +} +.el-ban-circle:before { + content: "\f111"; +} +.el-barcode:before { + content: "\f112"; +} +.el-behance:before { + content: "\f113"; +} +.el-bell:before { + content: "\f114"; +} +.el-blind:before { + content: "\f115"; +} +.el-blogger:before { + content: "\f116"; +} +.el-bold:before { + content: "\f117"; +} +.el-book:before { + content: "\f118"; +} +.el-bookmark-empty:before { + content: "\f119"; +} +.el-bookmark:before { + content: "\f11a"; +} +.el-braille:before { + content: "\f11b"; +} +.el-briefcase:before { + content: "\f11c"; +} +.el-broom:before { + content: "\f11d"; +} +.el-brush:before { + content: "\f11e"; +} +.el-bulb:before { + content: "\f11f"; +} +.el-bullhorn:before { + content: "\f120"; +} +.el-calendar-sign:before { + content: "\f121"; +} +.el-calendar:before { + content: "\f122"; +} +.el-camera:before { + content: "\f123"; +} +.el-car:before { + content: "\f124"; +} +.el-caret-down:before { + content: "\f125"; +} +.el-caret-left:before { + content: "\f126"; +} +.el-caret-right:before { + content: "\f127"; +} +.el-caret-up:before { + content: "\f128"; +} +.el-cc:before { + content: "\f129"; +} +.el-certificate:before { + content: "\f12a"; +} +.el-check-empty:before { + content: "\f12b"; +} +.el-check:before { + content: "\f12c"; +} +.el-chevron-down:before { + content: "\f12d"; +} +.el-chevron-left:before { + content: "\f12e"; +} +.el-chevron-right:before { + content: "\f12f"; +} +.el-chevron-up:before { + content: "\f130"; +} +.el-child:before { + content: "\f131"; +} +.el-circle-arrow-down:before { + content: "\f132"; +} +.el-circle-arrow-left:before { + content: "\f133"; +} +.el-circle-arrow-right:before { + content: "\f134"; +} +.el-circle-arrow-up:before { + content: "\f135"; +} +.el-cloud-alt:before { + content: "\f136"; +} +.el-cloud:before { + content: "\f137"; +} +.el-cog-alt:before { + content: "\f138"; +} +.el-cog:before { + content: "\f139"; +} +.el-cogs:before { + content: "\f13a"; +} +.el-comment-alt:before { + content: "\f13b"; +} +.el-comment:before { + content: "\f13c"; +} +.el-compass-alt:before { + content: "\f13d"; +} +.el-compass:before { + content: "\f13e"; +} +.el-credit-card:before { + content: "\f13f"; +} +.el-css:before { + content: "\f140"; +} +.el-dashboard:before { + content: "\f141"; +} +.el-delicious:before { + content: "\f142"; +} +.el-deviantart:before { + content: "\f143"; +} +.el-digg:before { + content: "\f144"; +} +.el-download-alt:before { + content: "\f145"; +} +.el-download:before { + content: "\f146"; +} +.el-dribbble:before { + content: "\f147"; +} +.el-edit:before { + content: "\f148"; +} +.el-eject:before { + content: "\f149"; +} +.el-envelope-alt:before { + content: "\f14a"; +} +.el-envelope:before { + content: "\f14b"; +} +.el-error-alt:before { + content: "\f14c"; +} +.el-error:before { + content: "\f14d"; +} +.el-eur:before { + content: "\f14e"; +} +.el-exclamation-sign:before { + content: "\f14f"; +} +.el-eye-close:before { + content: "\f150"; +} +.el-eye-open:before { + content: "\f151"; +} +.el-facebook:before { + content: "\f152"; +} +.el-facetime-video:before { + content: "\f153"; +} +.el-fast-backward:before { + content: "\f154"; +} +.el-fast-forward:before { + content: "\f155"; +} +.el-female:before { + content: "\f156"; +} +.el-file-alt:before { + content: "\f157"; +} +.el-file-edit-alt:before { + content: "\f158"; +} +.el-file-edit:before { + content: "\f159"; +} +.el-file-new-alt:before { + content: "\f15a"; +} +.el-file-new:before { + content: "\f15b"; +} +.el-file:before { + content: "\f15c"; +} +.el-film:before { + content: "\f15d"; +} +.el-filter:before { + content: "\f15e"; +} +.el-fire:before { + content: "\f15f"; +} +.el-flag-alt:before { + content: "\f160"; +} +.el-flag:before { + content: "\f161"; +} +.el-flickr:before { + content: "\f162"; +} +.el-folder-close:before { + content: "\f163"; +} +.el-folder-open:before { + content: "\f164"; +} +.el-folder-sign:before { + content: "\f165"; +} +.el-folder:before { + content: "\f166"; +} +.el-font:before { + content: "\f167"; +} +.el-fontsize:before { + content: "\f168"; +} +.el-fork:before { + content: "\f169"; +} +.el-forward-alt:before { + content: "\f16a"; +} +.el-forward:before { + content: "\f16b"; +} +.el-foursquare:before { + content: "\f16c"; +} +.el-friendfeed-rect:before { + content: "\f16d"; +} +.el-friendfeed:before { + content: "\f16e"; +} +.el-fullscreen:before { + content: "\f16f"; +} +.el-gbp:before { + content: "\f170"; +} +.el-gift:before { + content: "\f171"; +} +.el-github-text:before { + content: "\f172"; +} +.el-github:before { + content: "\f173"; +} +.el-glass:before { + content: "\f174"; +} +.el-glasses:before { + content: "\f175"; +} +.el-globe-alt:before { + content: "\f176"; +} +.el-globe:before { + content: "\f177"; +} +.el-googleplus:before { + content: "\f178"; +} +.el-graph-alt:before { + content: "\f179"; +} +.el-graph:before { + content: "\f17a"; +} +.el-group-alt:before { + content: "\f17b"; +} +.el-group:before { + content: "\f17c"; +} +.el-guidedog:before { + content: "\f17d"; +} +.el-hand-down:before { + content: "\f17e"; +} +.el-hand-left:before { + content: "\f17f"; +} +.el-hand-right:before { + content: "\f180"; +} +.el-hand-up:before { + content: "\f181"; +} +.el-hdd:before { + content: "\f182"; +} +.el-headphones:before { + content: "\f183"; +} +.el-hearing-impaired:before { + content: "\f184"; +} +.el-heart-alt:before { + content: "\f185"; +} +.el-heart-empty:before { + content: "\f186"; +} +.el-heart:before { + content: "\f187"; +} +.el-home-alt:before { + content: "\f188"; +} +.el-home:before { + content: "\f189"; +} +.el-hourglass:before { + content: "\f18a"; +} +.el-idea-alt:before { + content: "\f18b"; +} +.el-idea:before { + content: "\f18c"; +} +.el-inbox-alt:before { + content: "\f18d"; +} +.el-inbox-box:before { + content: "\f18e"; +} +.el-inbox:before { + content: "\f18f"; +} +.el-indent-left:before { + content: "\f190"; +} +.el-indent-right:before { + content: "\f191"; +} +.el-info-circle:before { + content: "\f192"; +} +.el-instagram:before { + content: "\f193"; +} +.el-iphone-home:before { + content: "\f194"; +} +.el-italic:before { + content: "\f195"; +} +.el-key:before { + content: "\f196"; +} +.el-laptop-alt:before { + content: "\f197"; +} +.el-laptop:before { + content: "\f198"; +} +.el-lastfm:before { + content: "\f199"; +} +.el-leaf:before { + content: "\f19a"; +} +.el-lines:before { + content: "\f19b"; +} +.el-link:before { + content: "\f19c"; +} +.el-linkedin:before { + content: "\f19d"; +} +.el-list-alt:before { + content: "\f19e"; +} +.el-list:before { + content: "\f19f"; +} +.el-livejournal:before { + content: "\f1a0"; +} +.el-lock-alt:before { + content: "\f1a1"; +} +.el-lock:before { + content: "\f1a2"; +} +.el-magic:before { + content: "\f1a3"; +} +.el-magnet:before { + content: "\f1a4"; +} +.el-male:before { + content: "\f1a5"; +} +.el-map-marker-alt:before { + content: "\f1a6"; +} +.el-map-marker:before { + content: "\f1a7"; +} +.el-mic-alt:before { + content: "\f1a8"; +} +.el-mic:before { + content: "\f1a9"; +} +.el-minus-sign:before { + content: "\f1aa"; +} +.el-minus:before { + content: "\f1ab"; +} +.el-move:before { + content: "\f1ac"; +} +.el-music:before { + content: "\f1ad"; +} +.el-myspace:before { + content: "\f1ae"; +} +.el-network:before { + content: "\f1af"; +} +.el-off:before { + content: "\f1b0"; +} +.el-ok-circle:before { + content: "\f1b1"; +} +.el-ok-sign:before { + content: "\f1b2"; +} +.el-ok:before { + content: "\f1b3"; +} +.el-opensource:before { + content: "\f1b4"; +} +.el-paper-clip-alt:before { + content: "\f1b5"; +} +.el-paper-clip:before { + content: "\f1b6"; +} +.el-path:before { + content: "\f1b7"; +} +.el-pause-alt:before { + content: "\f1b8"; +} +.el-pause:before { + content: "\f1b9"; +} +.el-pencil-alt:before { + content: "\f1ba"; +} +.el-pencil:before { + content: "\f1bb"; +} +.el-person:before { + content: "\f1bc"; +} +.el-phone-alt:before { + content: "\f1bd"; +} +.el-phone:before { + content: "\f1be"; +} +.el-photo-alt:before { + content: "\f1bf"; +} +.el-photo:before { + content: "\f1c0"; +} +.el-picasa:before { + content: "\f1c1"; +} +.el-picture:before { + content: "\f1c2"; +} +.el-pinterest:before { + content: "\f1c3"; +} +.el-plane:before { + content: "\f1c4"; +} +.el-play-alt:before { + content: "\f1c5"; +} +.el-play-circle:before { + content: "\f1c6"; +} +.el-play:before { + content: "\f1c7"; +} +.el-plurk-alt:before { + content: "\f1c8"; +} +.el-plurk:before { + content: "\f1c9"; +} +.el-plus-sign:before { + content: "\f1ca"; +} +.el-plus:before { + content: "\f1cb"; +} +.el-podcast:before { + content: "\f1cc"; +} +.el-print:before { + content: "\f1cd"; +} +.el-puzzle:before { + content: "\f1ce"; +} +.el-qrcode:before { + content: "\f1cf"; +} +.el-question-sign:before { + content: "\f1d0"; +} +.el-question:before { + content: "\f1d1"; +} +.el-quote-alt:before { + content: "\f1d2"; +} +.el-quote-right-alt:before { + content: "\f1d3"; +} +.el-quote-right:before { + content: "\f1d4"; +} +.el-quotes:before { + content: "\f1d5"; +} +.el-random:before { + content: "\f1d6"; +} +.el-record:before { + content: "\f1d7"; +} +.el-reddit:before { + content: "\f1d8"; +} +.el-redux:before { + content: "\f1d9"; +} +.el-refresh:before { + content: "\f1da"; +} +.el-remove-circle:before { + content: "\f1db"; +} +.el-remove-sign:before { + content: "\f1dc"; +} +.el-remove:before { + content: "\f1dd"; +} +.el-repeat-alt:before { + content: "\f1de"; +} +.el-repeat:before { + content: "\f1df"; +} +.el-resize-full:before { + content: "\f1e0"; +} +.el-resize-horizontal:before { + content: "\f1e1"; +} +.el-resize-small:before { + content: "\f1e2"; +} +.el-resize-vertical:before { + content: "\f1e3"; +} +.el-return-key:before { + content: "\f1e4"; +} +.el-retweet:before { + content: "\f1e5"; +} +.el-reverse-alt:before { + content: "\f1e6"; +} +.el-road:before { + content: "\f1e7"; +} +.el-rss:before { + content: "\f1e8"; +} +.el-scissors:before { + content: "\f1e9"; +} +.el-screen-alt:before { + content: "\f1ea"; +} +.el-screen:before { + content: "\f1eb"; +} +.el-screenshot:before { + content: "\f1ec"; +} +.el-search-alt:before { + content: "\f1ed"; +} +.el-search:before { + content: "\f1ee"; +} +.el-share-alt:before { + content: "\f1ef"; +} +.el-share:before { + content: "\f1f0"; +} +.el-shopping-cart-sign:before { + content: "\f1f1"; +} +.el-shopping-cart:before { + content: "\f1f2"; +} +.el-signal:before { + content: "\f1f3"; +} +.el-skype:before { + content: "\f1f4"; +} +.el-slideshare:before { + content: "\f1f5"; +} +.el-smiley-alt:before { + content: "\f1f6"; +} +.el-smiley:before { + content: "\f1f7"; +} +.el-soundcloud:before { + content: "\f1f8"; +} +.el-speaker:before { + content: "\f1f9"; +} +.el-spotify:before { + content: "\f1fa"; +} +.el-stackoverflow:before { + content: "\f1fb"; +} +.el-star-alt:before { + content: "\f1fc"; +} +.el-star-empty:before { + content: "\f1fd"; +} +.el-star:before { + content: "\f1fe"; +} +.el-step-backward:before { + content: "\f1ff"; +} +.el-step-forward:before { + content: "\f200"; +} +.el-stop-alt:before { + content: "\f201"; +} +.el-stop:before { + content: "\f202"; +} +.el-stumbleupon:before { + content: "\f203"; +} +.el-tag:before { + content: "\f204"; +} +.el-tags:before { + content: "\f205"; +} +.el-tasks:before { + content: "\f206"; +} +.el-text-height:before { + content: "\f207"; +} +.el-text-width:before { + content: "\f208"; +} +.el-th-large:before { + content: "\f209"; +} +.el-th-list:before { + content: "\f20a"; +} +.el-th:before { + content: "\f20b"; +} +.el-thumbs-down:before { + content: "\f20c"; +} +.el-thumbs-up:before { + content: "\f20d"; +} +.el-time-alt:before { + content: "\f20e"; +} +.el-time:before { + content: "\f20f"; +} +.el-tint:before { + content: "\f210"; +} +.el-torso:before { + content: "\f211"; +} +.el-trash-alt:before { + content: "\f212"; +} +.el-trash:before { + content: "\f213"; +} +.el-tumblr:before { + content: "\f214"; +} +.el-twitter:before { + content: "\f215"; +} +.el-universal-access:before { + content: "\f216"; +} +.el-unlock-alt:before { + content: "\f217"; +} +.el-unlock:before { + content: "\f218"; +} +.el-upload:before { + content: "\f219"; +} +.el-usd:before { + content: "\f21a"; +} +.el-user:before { + content: "\f21b"; +} +.el-viadeo:before { + content: "\f21c"; +} +.el-video-alt:before { + content: "\f21d"; +} +.el-video-chat:before { + content: "\f21e"; +} +.el-video:before { + content: "\f21f"; +} +.el-view-mode:before { + content: "\f220"; +} +.el-vimeo:before { + content: "\f221"; +} +.el-vkontakte:before { + content: "\f222"; +} +.el-volume-down:before { + content: "\f223"; +} +.el-volume-off:before { + content: "\f224"; +} +.el-volume-up:before { + content: "\f225"; +} +.el-w3c:before { + content: "\f226"; +} +.el-warning-sign:before { + content: "\f227"; +} +.el-website-alt:before { + content: "\f228"; +} +.el-website:before { + content: "\f229"; +} +.el-wheelchair:before { + content: "\f22a"; +} +.el-wordpress:before { + content: "\f22b"; +} +.el-wrench-alt:before { + content: "\f22c"; +} +.el-wrench:before { + content: "\f22d"; +} +.el-youtube:before { + content: "\f22e"; +} +.el-zoom-in:before { + content: "\f22f"; +} +.el-zoom-out:before { + content: "\f230"; +} diff --git a/assets/frontend/icons/elusive/css/elusive-icons.min.css b/assets/frontend/icons/elusive/css/elusive-icons.min.css new file mode 100644 index 0000000..1c4abbf --- /dev/null +++ b/assets/frontend/icons/elusive/css/elusive-icons.min.css @@ -0,0 +1,5 @@ + +/*! + * Elusive Icons 2.0.0 by @ReduxFramework - http://elusiveicons.com - @reduxframework + * License - http://elusiveicons.com/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:'Elusive-Icons';src:url('../fonts/elusiveicons-webfont.eot?v=2.0.0');src:url('../fonts/elusiveicons-webfont.eot?#iefix&v=2.0.0') format('embedded-opentype'),url('../fonts/elusiveicons-webfont.woff?v=2.0.0') format('woff'),url('../fonts/elusiveicons-webfont.ttf?v=2.0.0') format('truetype'),url('../fonts/elusiveicons-webfont.svg?v=2.0.0#elusiveiconsregular') format('svg');font-weight:normal;font-style:normal}.el{display:inline-block;font:normal normal normal 14px/1 'Elusive-Icons';font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0,0)}.el-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.el-2x{font-size:2em}.el-3x{font-size:3em}.el-4x{font-size:4em}.el-5x{font-size:5em}.el-fw{width:1.28571429em;text-align:center}.el-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.el-ul>li{position:relative}.el-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.el-li.el-lg{left:-1.85714286em}.el-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.el.pull-left{margin-right:.3em}.el.pull-right{margin-left:.3em}.el-spin{-webkit-animation:el-spin 2s infinite linear;animation:el-spin 2s infinite linear}.el-pulse{-webkit-animation:el-spin 1s infinite steps(8);animation:el-spin 1s infinite steps(8)}@-webkit-keyframes el-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes el-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.el-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.el-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.el-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.el-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0,mirror=1);-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}.el-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2,mirror=1);-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}:root .el-rotate-90,:root .el-rotate-180,:root .el-rotate-270,:root .el-flip-horizontal,:root .el-flip-vertical{filter:none}.el-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.el-stack-1x,.el-stack-2x{position:absolute;left:0;width:100%;text-align:center}.el-stack-1x{line-height:inherit}.el-stack-2x{font-size:2em}.el-inverse{color:#fff}.el-address-book-alt:before{content:"\f101"}.el-address-book:before{content:"\f102"}.el-adjust-alt:before{content:"\f103"}.el-adjust:before{content:"\f104"}.el-adult:before{content:"\f105"}.el-align-center:before{content:"\f106"}.el-align-justify:before{content:"\f107"}.el-align-left:before{content:"\f108"}.el-align-right:before{content:"\f109"}.el-arrow-down:before{content:"\f10a"}.el-arrow-left:before{content:"\f10b"}.el-arrow-right:before{content:"\f10c"}.el-arrow-up:before{content:"\f10d"}.el-asl:before{content:"\f10e"}.el-asterisk:before{content:"\f10f"}.el-backward:before{content:"\f110"}.el-ban-circle:before{content:"\f111"}.el-barcode:before{content:"\f112"}.el-behance:before{content:"\f113"}.el-bell:before{content:"\f114"}.el-blind:before{content:"\f115"}.el-blogger:before{content:"\f116"}.el-bold:before{content:"\f117"}.el-book:before{content:"\f118"}.el-bookmark-empty:before{content:"\f119"}.el-bookmark:before{content:"\f11a"}.el-braille:before{content:"\f11b"}.el-briefcase:before{content:"\f11c"}.el-broom:before{content:"\f11d"}.el-brush:before{content:"\f11e"}.el-bulb:before{content:"\f11f"}.el-bullhorn:before{content:"\f120"}.el-calendar-sign:before{content:"\f121"}.el-calendar:before{content:"\f122"}.el-camera:before{content:"\f123"}.el-car:before{content:"\f124"}.el-caret-down:before{content:"\f125"}.el-caret-left:before{content:"\f126"}.el-caret-right:before{content:"\f127"}.el-caret-up:before{content:"\f128"}.el-cc:before{content:"\f129"}.el-certificate:before{content:"\f12a"}.el-check-empty:before{content:"\f12b"}.el-check:before{content:"\f12c"}.el-chevron-down:before{content:"\f12d"}.el-chevron-left:before{content:"\f12e"}.el-chevron-right:before{content:"\f12f"}.el-chevron-up:before{content:"\f130"}.el-child:before{content:"\f131"}.el-circle-arrow-down:before{content:"\f132"}.el-circle-arrow-left:before{content:"\f133"}.el-circle-arrow-right:before{content:"\f134"}.el-circle-arrow-up:before{content:"\f135"}.el-cloud-alt:before{content:"\f136"}.el-cloud:before{content:"\f137"}.el-cog-alt:before{content:"\f138"}.el-cog:before{content:"\f139"}.el-cogs:before{content:"\f13a"}.el-comment-alt:before{content:"\f13b"}.el-comment:before{content:"\f13c"}.el-compass-alt:before{content:"\f13d"}.el-compass:before{content:"\f13e"}.el-credit-card:before{content:"\f13f"}.el-css:before{content:"\f140"}.el-dashboard:before{content:"\f141"}.el-delicious:before{content:"\f142"}.el-deviantart:before{content:"\f143"}.el-digg:before{content:"\f144"}.el-download-alt:before{content:"\f145"}.el-download:before{content:"\f146"}.el-dribbble:before{content:"\f147"}.el-edit:before{content:"\f148"}.el-eject:before{content:"\f149"}.el-envelope-alt:before{content:"\f14a"}.el-envelope:before{content:"\f14b"}.el-error-alt:before{content:"\f14c"}.el-error:before{content:"\f14d"}.el-eur:before{content:"\f14e"}.el-exclamation-sign:before{content:"\f14f"}.el-eye-close:before{content:"\f150"}.el-eye-open:before{content:"\f151"}.el-facebook:before{content:"\f152"}.el-facetime-video:before{content:"\f153"}.el-fast-backward:before{content:"\f154"}.el-fast-forward:before{content:"\f155"}.el-female:before{content:"\f156"}.el-file-alt:before{content:"\f157"}.el-file-edit-alt:before{content:"\f158"}.el-file-edit:before{content:"\f159"}.el-file-new-alt:before{content:"\f15a"}.el-file-new:before{content:"\f15b"}.el-file:before{content:"\f15c"}.el-film:before{content:"\f15d"}.el-filter:before{content:"\f15e"}.el-fire:before{content:"\f15f"}.el-flag-alt:before{content:"\f160"}.el-flag:before{content:"\f161"}.el-flickr:before{content:"\f162"}.el-folder-close:before{content:"\f163"}.el-folder-open:before{content:"\f164"}.el-folder-sign:before{content:"\f165"}.el-folder:before{content:"\f166"}.el-font:before{content:"\f167"}.el-fontsize:before{content:"\f168"}.el-fork:before{content:"\f169"}.el-forward-alt:before{content:"\f16a"}.el-forward:before{content:"\f16b"}.el-foursquare:before{content:"\f16c"}.el-friendfeed-rect:before{content:"\f16d"}.el-friendfeed:before{content:"\f16e"}.el-fullscreen:before{content:"\f16f"}.el-gbp:before{content:"\f170"}.el-gift:before{content:"\f171"}.el-github-text:before{content:"\f172"}.el-github:before{content:"\f173"}.el-glass:before{content:"\f174"}.el-glasses:before{content:"\f175"}.el-globe-alt:before{content:"\f176"}.el-globe:before{content:"\f177"}.el-googleplus:before{content:"\f178"}.el-graph-alt:before{content:"\f179"}.el-graph:before{content:"\f17a"}.el-group-alt:before{content:"\f17b"}.el-group:before{content:"\f17c"}.el-guidedog:before{content:"\f17d"}.el-hand-down:before{content:"\f17e"}.el-hand-left:before{content:"\f17f"}.el-hand-right:before{content:"\f180"}.el-hand-up:before{content:"\f181"}.el-hdd:before{content:"\f182"}.el-headphones:before{content:"\f183"}.el-hearing-impaired:before{content:"\f184"}.el-heart-alt:before{content:"\f185"}.el-heart-empty:before{content:"\f186"}.el-heart:before{content:"\f187"}.el-home-alt:before{content:"\f188"}.el-home:before{content:"\f189"}.el-hourglass:before{content:"\f18a"}.el-idea-alt:before{content:"\f18b"}.el-idea:before{content:"\f18c"}.el-inbox-alt:before{content:"\f18d"}.el-inbox-box:before{content:"\f18e"}.el-inbox:before{content:"\f18f"}.el-indent-left:before{content:"\f190"}.el-indent-right:before{content:"\f191"}.el-info-circle:before{content:"\f192"}.el-instagram:before{content:"\f193"}.el-iphone-home:before{content:"\f194"}.el-italic:before{content:"\f195"}.el-key:before{content:"\f196"}.el-laptop-alt:before{content:"\f197"}.el-laptop:before{content:"\f198"}.el-lastfm:before{content:"\f199"}.el-leaf:before{content:"\f19a"}.el-lines:before{content:"\f19b"}.el-link:before{content:"\f19c"}.el-linkedin:before{content:"\f19d"}.el-list-alt:before{content:"\f19e"}.el-list:before{content:"\f19f"}.el-livejournal:before{content:"\f1a0"}.el-lock-alt:before{content:"\f1a1"}.el-lock:before{content:"\f1a2"}.el-magic:before{content:"\f1a3"}.el-magnet:before{content:"\f1a4"}.el-male:before{content:"\f1a5"}.el-map-marker-alt:before{content:"\f1a6"}.el-map-marker:before{content:"\f1a7"}.el-mic-alt:before{content:"\f1a8"}.el-mic:before{content:"\f1a9"}.el-minus-sign:before{content:"\f1aa"}.el-minus:before{content:"\f1ab"}.el-move:before{content:"\f1ac"}.el-music:before{content:"\f1ad"}.el-myspace:before{content:"\f1ae"}.el-network:before{content:"\f1af"}.el-off:before{content:"\f1b0"}.el-ok-circle:before{content:"\f1b1"}.el-ok-sign:before{content:"\f1b2"}.el-ok:before{content:"\f1b3"}.el-opensource:before{content:"\f1b4"}.el-paper-clip-alt:before{content:"\f1b5"}.el-paper-clip:before{content:"\f1b6"}.el-path:before{content:"\f1b7"}.el-pause-alt:before{content:"\f1b8"}.el-pause:before{content:"\f1b9"}.el-pencil-alt:before{content:"\f1ba"}.el-pencil:before{content:"\f1bb"}.el-person:before{content:"\f1bc"}.el-phone-alt:before{content:"\f1bd"}.el-phone:before{content:"\f1be"}.el-photo-alt:before{content:"\f1bf"}.el-photo:before{content:"\f1c0"}.el-picasa:before{content:"\f1c1"}.el-picture:before{content:"\f1c2"}.el-pinterest:before{content:"\f1c3"}.el-plane:before{content:"\f1c4"}.el-play-alt:before{content:"\f1c5"}.el-play-circle:before{content:"\f1c6"}.el-play:before{content:"\f1c7"}.el-plurk-alt:before{content:"\f1c8"}.el-plurk:before{content:"\f1c9"}.el-plus-sign:before{content:"\f1ca"}.el-plus:before{content:"\f1cb"}.el-podcast:before{content:"\f1cc"}.el-print:before{content:"\f1cd"}.el-puzzle:before{content:"\f1ce"}.el-qrcode:before{content:"\f1cf"}.el-question-sign:before{content:"\f1d0"}.el-question:before{content:"\f1d1"}.el-quote-alt:before{content:"\f1d2"}.el-quote-right-alt:before{content:"\f1d3"}.el-quote-right:before{content:"\f1d4"}.el-quotes:before{content:"\f1d5"}.el-random:before{content:"\f1d6"}.el-record:before{content:"\f1d7"}.el-reddit:before{content:"\f1d8"}.el-redux:before{content:"\f1d9"}.el-refresh:before{content:"\f1da"}.el-remove-circle:before{content:"\f1db"}.el-remove-sign:before{content:"\f1dc"}.el-remove:before{content:"\f1dd"}.el-repeat-alt:before{content:"\f1de"}.el-repeat:before{content:"\f1df"}.el-resize-full:before{content:"\f1e0"}.el-resize-horizontal:before{content:"\f1e1"}.el-resize-small:before{content:"\f1e2"}.el-resize-vertical:before{content:"\f1e3"}.el-return-key:before{content:"\f1e4"}.el-retweet:before{content:"\f1e5"}.el-reverse-alt:before{content:"\f1e6"}.el-road:before{content:"\f1e7"}.el-rss:before{content:"\f1e8"}.el-scissors:before{content:"\f1e9"}.el-screen-alt:before{content:"\f1ea"}.el-screen:before{content:"\f1eb"}.el-screenshot:before{content:"\f1ec"}.el-search-alt:before{content:"\f1ed"}.el-search:before{content:"\f1ee"}.el-share-alt:before{content:"\f1ef"}.el-share:before{content:"\f1f0"}.el-shopping-cart-sign:before{content:"\f1f1"}.el-shopping-cart:before{content:"\f1f2"}.el-signal:before{content:"\f1f3"}.el-skype:before{content:"\f1f4"}.el-slideshare:before{content:"\f1f5"}.el-smiley-alt:before{content:"\f1f6"}.el-smiley:before{content:"\f1f7"}.el-soundcloud:before{content:"\f1f8"}.el-speaker:before{content:"\f1f9"}.el-spotify:before{content:"\f1fa"}.el-stackoverflow:before{content:"\f1fb"}.el-star-alt:before{content:"\f1fc"}.el-star-empty:before{content:"\f1fd"}.el-star:before{content:"\f1fe"}.el-step-backward:before{content:"\f1ff"}.el-step-forward:before{content:"\f200"}.el-stop-alt:before{content:"\f201"}.el-stop:before{content:"\f202"}.el-stumbleupon:before{content:"\f203"}.el-tag:before{content:"\f204"}.el-tags:before{content:"\f205"}.el-tasks:before{content:"\f206"}.el-text-height:before{content:"\f207"}.el-text-width:before{content:"\f208"}.el-th-large:before{content:"\f209"}.el-th-list:before{content:"\f20a"}.el-th:before{content:"\f20b"}.el-thumbs-down:before{content:"\f20c"}.el-thumbs-up:before{content:"\f20d"}.el-time-alt:before{content:"\f20e"}.el-time:before{content:"\f20f"}.el-tint:before{content:"\f210"}.el-torso:before{content:"\f211"}.el-trash-alt:before{content:"\f212"}.el-trash:before{content:"\f213"}.el-tumblr:before{content:"\f214"}.el-twitter:before{content:"\f215"}.el-universal-access:before{content:"\f216"}.el-unlock-alt:before{content:"\f217"}.el-unlock:before{content:"\f218"}.el-upload:before{content:"\f219"}.el-usd:before{content:"\f21a"}.el-user:before{content:"\f21b"}.el-viadeo:before{content:"\f21c"}.el-video-alt:before{content:"\f21d"}.el-video-chat:before{content:"\f21e"}.el-video:before{content:"\f21f"}.el-view-mode:before{content:"\f220"}.el-vimeo:before{content:"\f221"}.el-vkontakte:before{content:"\f222"}.el-volume-down:before{content:"\f223"}.el-volume-off:before{content:"\f224"}.el-volume-up:before{content:"\f225"}.el-w3c:before{content:"\f226"}.el-warning-sign:before{content:"\f227"}.el-website-alt:before{content:"\f228"}.el-website:before{content:"\f229"}.el-wheelchair:before{content:"\f22a"}.el-wordpress:before{content:"\f22b"}.el-wrench-alt:before{content:"\f22c"}.el-wrench:before{content:"\f22d"}.el-youtube:before{content:"\f22e"}.el-zoom-in:before{content:"\f22f"}.el-zoom-out:before{content:"\f230"} \ No newline at end of file diff --git a/assets/frontend/icons/elusive/fonts/elusiveicons-webfont.eot b/assets/frontend/icons/elusive/fonts/elusiveicons-webfont.eot new file mode 100644 index 0000000000000000000000000000000000000000..f42a001dbdc85b28b8886a3e2de118d0cd0e61b9 GIT binary patch literal 79748 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

p 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 literal 0 HcmV?d00001 diff --git a/assets/frontend/icons/elusive/fonts/elusiveicons-webfont.svg b/assets/frontend/icons/elusive/fonts/elusiveicons-webfont.svg new file mode 100644 index 0000000..7bc3513 --- /dev/null +++ b/assets/frontend/icons/elusive/fonts/elusiveicons-webfont.svg @@ -0,0 +1,932 @@ + + + + + Created by FontForge 20120731 at Thu Feb 19 13:35:54 2015 + By Dovy + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/frontend/icons/elusive/fonts/elusiveicons-webfont.ttf b/assets/frontend/icons/elusive/fonts/elusiveicons-webfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..b6fe85d4b265552431967d873b5c59a3e8e76333 GIT binary patch literal 79556 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%0DliXV~&SY@w9 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 F{{~orV;TSe literal 0 HcmV?d00001 diff --git a/assets/frontend/icons/elusive/fonts/elusiveicons-webfont.woff b/assets/frontend/icons/elusive/fonts/elusiveicons-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..1e0487d0d669fc784422332cec831aa51a764df2 GIT binary patch literal 48812 zcmY&;18^oy)NX9swrz8hY?6&_+qP|Oys^zUPBymfZ0x)-Z@&BgRkvf02?>mH#%d{Z{e5L13?zP9ZHJDfO*I zeskh)kboM3Kq#s(vwdsj-(2P!hO%;&L?(7dj^En-Hy8h|#XyiBHcZ@INkBlrc)m5b z{{@J-qlMkKCIJEhnG6B~Z`t+6}?Sg>R=z)M@3~tPi zK3bX?nSy|{h=72AeESFCf_&p?v-}pnHP>%W@(l`DWe847J6F$dE%lqPefzQ}*g-kA zbujt1YyI{EX89jp^u&JI8F_y5_W%6;*Ovrr8w%0h$j-}WFrTQ=Zfo;fClhK8mf!R)Ou(;+7@o5C9X zmLT$D(B2>*|FxMK8t#G{!$P4L8h>A#a)2c>7!rYlK>320|KE0_wZ7-DptPW%%!sv+ zpdcg2P;+O)dUFo&c?8=W1V@rULpF$FKq(8s^XT(f;LvjbyEsw|t2p7W->5QCVBq8+ z$guF}-;?>Dd6)+p;zCJ5q11!k;q?1rK|zvCfrW~EQiptf;o=CfeSXc%K&XxNjShpD zu(7a#!csx0_KmV!fPy&nL2Z4H^8bowPK~;i%c2wt;pHAWaX&Pytl^+1VG|zX5gQbi zNwFUDF2Ol{5=q2AJ^rU5YX1;_c^jF^QEq>2{TZTFLuxfu8tXUtbF0!fH^m8xW{L*v zWpY|>gXpmudAxNmw0Xqr^up&~r9PyGvST~s#uCli);sP5XsA&lOMC-pq8C1`*o z(!7it$@-iX_0Ppkrg4xD>V9ulCp04p;xbd_C$rwBa@uCic#>@A$;n)d{YyGB+DFF| zlfFv`l)*pHWlW}6!lmz;Sf%J=)s6Y%3rDFY;>aWmafu|7q`ep$6bn*G{us|9RFwPT zDGLoGj7AI6S%$Tn^3z|vCFi>$mo)@R=$84e1#u@<{A_S()nzErG1_cSxuj7=&8xW% z^)z%5>sAq@v&KW(j30F~!yQn5fxDvof(yQ^^1KfUNw@%!1^;T!`si(*t`#5(cy}&P-4Z7Q4Tk!d5-GIF95^Nx7#uS^FvS zRz<%IvWxO!rGn7!G?ok2ZFuDFVYVR+J&iDd$~AprsUmk#AZw9CR>mTD2 zrl!fLmH5my^irA+-^@o8KFe{3G%*I|9~f66OlVDr$f~{=i7h6WQD>mYYB~zch9tzm zqY1=-J8V#WceUBly^7Ys>Zv9ajTiyWl#?`*iwYoXoGHyokAts;R53}1vMTy`v6pR@ znaC>yPZL-?VLHW_{f|ysjra2;I-OfSXJS|Lp^bawf%o>;W6X;%YHJ-UFYgU zi1u=@26*iJY%mz_)E*8#1G~a|;{+9^u5pa%lK#$&Wy2CarSdgh$zd`fTW= z3FqS-e0oPo5Y*cXLAjRn5O8%kScd=PSSqIBgneH2%*|p`vxeINwK?kweneWO9#QKI zzEjbokigMKE(qaU%`YYZvIxZv zgh$RTywS~l$Sp`~d{sz3mXFXOK?Wqw8l=^o+kyIC?#MM^oWVt6&Ml%}0sCPEpSCC} z0j!Y~z1AJGT-1kw(G| zD~jU4OAfT;L|Itc;`umquuw-7CfHtZFbWiHv3PgK5vO}JrsaQMeoe`Ya?^x2$kaX_ z<`x$EAL%n~U2UPs)?$X(*wh3`KkRs=VfJYDs9+%fh=(fU?A;=~!X`-sjcoAf?fSWS z2^Lt~c~|0%AN776aqGT6BUhbr-`L!}8hz5_Q`1Eyk*(Z6Qkuf)?7_* z;mqMaxf{iFr(SA8S;d6iNfZ)IG29D!9bck$(JnALIVnMe&{eEw5hkpa%oj~P_^Ib@ z(jZImcW>8qk4rgMz4xQTuJm5`FAhiCj}vi6FOv1?W5rD<{l`^a_7rU9UQfs#CIrq< zvbc4Si*-nFZIj}T+*x#!JyOnp+an7`<4Py^Je4*0^leptZn*RtE-AT0n=eTuQfPmH zr92aisKg_NklYPGpi;^V8ljaa5wKd3=<4%*X>C*e{CYr6$Uw~JPKzBOQ`^Qfke4%q z$iDPdBgAJj7|#&Ctqg&nAmlOk7nhYJnS-s+#YWOf_jx}1+Z3QdOk5_l&`~P3MNc3Y z<5SXO7d;bjK7h^ac{||XRL4$LU^68g_@GIDqHyMDDV~BIBi2&v9q#IEy&u$| zwV;uNeJbF8muSj6T7htL`xRgG*YnS2WFUn!z&`{1 zhZ_?S@GS?i)>}qI%44*v4G9kvwhZIY7s-0JGjASW)cF_jcw%)ZMmTn(USgSrd^h+B ze_Km@27A5n&R%V<-dF^00$oMp8U=*fhv*6gNV!F+!5y6cugYl+Lrw` zgdh_%q)f^bbpf?hf63lhklTvA>BpWELBKHaVUN)mFQ!$U=JbKvFbBHBBnNq{)$8$z zs1#FBC^PBa#BV{d=&L-y0qE80ZOg*_Vdg#ab5UK*L64K|MuUuRx7Wj&=E{3Ob=FH= zidtUjbirLF8;Gns2|66f3k*SSeUON!%r3QRV*NO&z>j^HR?&+U4y~gGoT&<4LU*k+ zwd?^o0Xh)5PaB#q-0qoxxzo%IfOJA#0rQlp`G(8nJG1XcrL%9-vB>XSaQEWwYIop5 z_2+dX)NeQV@K6xm*!#`Edj_e!kl(+IvB7)wcdnTh!p0zoby$DhdG zhHtGYG;;N-=-IY4hm0qAHo~EsOa$48I6@PVyt>bSOWrFWH(orLU7Z$GKN#C$(v3Yd zr4VxT~xM40ux zfa?DqoFR*4cd9p^+HFJrW0>_z#7G zHBH2;kM!@G2??HOE|#3qNg*Y2k2bG+=L#q-YxcoSw;Vn^+{DI8*k_CB|8pr{+Ge=7Akr#ZM0Zy>MiqbJOa+Zii1m_way= z;V^jY`|SG8qmtp%&_R9m!^@3xJ+D+z!n)f~KVAO!&JRwnKaB80rtyEZg zAsKhUblhS_%_F<~nd7^O&1~8U99KC_nKKLMM zE9axMOzA|7&onB19cgq=0+Z%3)R}XSo9p9)(QJKXN!xt5=Pm`cUA(i%9eGKi+>$F} zZA&W%=m&hbdYK95>-U$}2Vw4BWB)M10+4|d_?d18udbLLHW%^3)HmS!HN3EagZofM z?==8hs>1Fle4Mt*V94o(_ilJaaTI!n7RIPq;KHpF1#y&2(GF{8>MNGu1bCv*S@{FZ z!lWxwyCydaLZ5;=V zr3Q)peGw9X3-!~(_cOZl)q#E90PVJltBpXey(xl$ot8#R zMmm{N3gZONH$tkAN6`f>k%mp})W^|TDev8{K%mfR61*CD(Kv?A6VEhsDrOlu?!78@ zkD%}rG4Z!rHAC#FCvzx1LuUnn><`?{`@g}H;fHgmh!q6nYJDYrWosKd>*}hCvv^mH zT`Y&2&*H1Qf*di@w3`!H(<^1Jj48~U;y`NJzZuLwWK=;AA_^f`-@V)w$775sGAFRm z?0DS+)JNO!K4Eqb`A}{aGX^$7yYlrg)+9?&@&b*0sNhjJ8fn`=Pi;SU{GFA=sR-fJ zcnLN27M72wJo)Qd&0Voak$hNEWoF(T$17HCxkfPFS@&HD_w_oodWo5X3fG^2UZ#JT zCx3J3Z8dNxnH6cXnp`TkXwNID z+8;C*FZ00ET*f*|wO7yG(5?1y=0g>NiwktCHaKO9e>&gis%9Yg?UlQjSTZ<;5EYsB z3x}5R{OH(|qf`z{jxV3sI(v#9v&C1t@<0E$nJ}0x4tSAk|Eh7TT3=UhxqbP($w10f z6x5&-gx-qi!4T@<>*dQgh%*+BuxrQLFeIOlu>n;0$W$<4q0Uj9i@!@hx%_lVGK#OL zW-T3t3i{WW{KMAp0Qaa$Q%BP&={y+6Y=HRP7|D5!Dsopqn@uo^O^7;5!BK?#vXs|7 z`7*o}txHfT`r%3w(73dk-1Vs~NCUm=G?qBIPQNL8ONiDM{6xXVS^yNO8WsLGN*Qd} z+m=mrA?Ct(EQU+OJf!2(00Pv(<@D#6q-?yK{F|j$umCE`U-Z$@37PRy$b1U(OzM6} z?Yg(Yqy}&PVeoQmfrm8G-7qR&X@|r;eQS}rm`rKv=0&*>rk_Z;F6~Ldq`y94E>B|V z4pY7b$stEU=7PpH2Ae80@XNb5h($0*98kmp2;rD9tRM9HDEWzPK*!+>Fs?-n^~D$w zmE{z}b`(o3+GYHz!UDc*XzR0l@eKGY; zbt5G}he=Nst8(iX~xlp#E> zje99%EQi{87SHlRuf%^G&ov!eIA>s;t&QCd+2^B0qUE`T^?NO$Rf)L zRwgMOqy!Tz5nNm5mc#69f#+j6Gd6p~G0v%Wz-+j?HvK+(mT`5iG?Rx~dso^d(N>eR z;^C-0sLOrh+}ZY7tx{13#yKA0W#wtbuv}5bT(H~kr(XDL{7gYH6IU4~LqYhRrXHcZ zMx^>OXUhw`mYx>Nd)`5$FQYxE5M5!%#W3%tB`7vE3|zHrC^QsUUbIdD3OEeUKdWD` zh2@oO5*U(%l$C`@p%Y%`q^fN`U$14u6QJ_hLs(4aTxulY6VnllE|8$U(cKxp0jVM- z!=Ak{t)eTFicDEAu&!|fOCw)#QcQ)Yri)*ms|Z({urR-uXD+r|r{2TEaOnkB!#S$8 zJf}sx=%RRq&!k}03>!=dQIiXP7>y)HW;MjnW5(H5z$5q{+5>GnPh>cn7i%^yZO&UM zt)r_5-6jMT;ubcYEGp@`i=_y+iGd7)bpg`$Z(8x8Wm7Z9x2yr#)O)|zIX>3re%T%8 zReQ+mT*UsF0bex7u4I2aQ#LN@1ZaMM zc^5jO-u*qzGAl6ZcI)}C;gBrA&FAAW2j`XXRTE88ceyNN2!* zf_8DKHkq9Bd(yq$|2{RYBUY2g9#8tkX8q78dDS;OGlVTC4pm((Q zQ02y+2yh{57cSmN($0q?8(50*qO{?co4dqWdKAQuVJ4QK4>gm*MGks4RI)+@73=+! zK55+Slm7D3k>6a)x|6p}@bo2`_HVBxyn)wzVPWV!NjP%);hW(DN`_dlGn!diiucgg zayi@7spytqpI+30WRkQ0Geyfqp4yZ9ZUI#q` z)`BAAiP$4YfUJhccG1&7{JNJxk^vL-xnitA+?B54NIYMroE$Tto@;M9c@(4 zFYzXU$rHJ9e4}7YXrD16DDyt(_!8@!^_YXGJQ) z1fOoEjM9fX{iPL`;b>=#+*79Q{l!EhlpylWnik+KCX(lb^(UUJ#enD!~*# z5%=V7SPxSh_0fWrgEF;fZr;O3tEQf1*@lN>tR-c;7A9mtW<1 zMG4jKO*?D?f`kn72rD%>va|HzP@*WPWjU0j2%wyN{Z#06Mm@w8`hG3#jp@UPN#LB_T3+z+G-CZEaa)|bHOBmq~`;KjN28O4H zUPsISYDLQ?=E#@Nmasc=<;_VMRM_m;5){>yc2Pisc0yu4F~Y;H&iL-w3mlsaH))9dWjHi5B*0WelD9HXi%hQ5oCor)x?lXcFMY0 zeMI!EcY%;HR;wYn(6p9FkElF3u`3Cef@6HRBr4ljgKzG!umVB}ef>*OwErUc%&dDP z`eG*xa<-t6D(DP(Ty1{U7eepmOVLtSS?pRfCCyDa7Yp%@d(nT^9U>x!+VAo)x8NSW zU?m%mW?*X%7ngsQA<)MEVOjJOC6gw&`X^eDve9oCFhWW3I3&;Rq)Nj+8_$NO<(qOW z1$MMasu+y{sv5o7bjCfJ+a@dyUGM~R!w;KtL;P6ZSHEno?(2o?jjoqRjUMAYm!V$!a->jbH-D@(Gh$dOH<_l$aTzCGvqdbNSS zgKEUhr0kU5n{{b*R|1{)d zb7iuuZIU26r`V<~am9eTF54vgt+iSgP;%Wmm2L5{3h@TyA;YxLDq@+T6Aj)^m=+ii z^zS0R-iUhViG2To+NKB{TtptW>4#oHol0J{~YVZRLmfT#ZstY!VTG|`+$!XREn-j_ERDi>aXEgyT zsqgl$B_1mUP5ms)jEf0ec0&J;G>TRZZq7yZd9kwUcxMS1UVyU@Y-M| zQ&&=2?+?qCbmjeOC)0oUq^$U%I*z%G!;RDZm>ad7_Bz)=qy1-(CF0_88&$|sNPSC( zr&m{}ceELTTlnpD20Y@-U5Qz322Vrh>dX^}dMv3rtsOqEb_-ig`OXu`O-|t}b&|eI zk@x8|(u~MWBHnHpP5Ty5gL=!clB={E5a|ht z$66e)jFfxD=ZY57aTe{>hZWB=2Rp}&ra_2%CjK-T=o`}%_|5_YyDEgn)o}Kqyo0X` zGF#4(r?9lBp?I@$%lvrqXsHMa{=)(gJdZO30ZRl2Lq3x&PrqljfkHwFD^sjp_Wt9# zNC~sOyWCG=BZAl2B`>JO6*3oF)rx{CA<4mJ^9|BdQwakhHzY*T@%`c>lT$altS%~M zOg&Mp&&buk+n#A!@lHD-!h;!Kj=FUAN~CK>YJwH~6o!u};@5l`(f(o3fIfly?&Anp z+7F}MjHR^Xx8_!FFvJF43TQ!d^VT6ue0>otKcQFUx+}}SjteSN+09M$^4KFyl^FoU!ok>-2nHrAvb^i1bvL8ps_B}6vY#jb~)JmTf z&PSZiUkLt)o}-CRjTE@q&~!2p2mZ%IrQktARq(VEDOBf+=^d7Ha|BRR$%Kk7TX^w7vE+m(j?pS5{*n*Dvo zspusV%N)%gkSiujl+wTwEh7hzSYyI48ED!Z)`i7PZ9DOLiLq z+dFB^HevnMf77(rxn)Obd9}UfMZ+h~vr&Z#dECbZG;|K0Zoy^-%n@=%RSiwaz<@yQ zTGVm)6nK>;jv7Ci0{ID>7thJ#WUP2BJapbMl-x++_i)qHch*tzW)4|^F*kLZ{c&#D3H?ffM9NwJP)6x+N5^mnRvhr`>ohYZWAZ@n;zh-i zN;>OzTXw&7DVLe7vC>lbSxNyH0aJuPLKGD?-y8m!O{JgyKXR<`@8|^rEdSNtewJba zBq=z4rbF4)TQDT4T2m4*3zWi^Rj99z;?Bj_=_;m39^n@mi+{mY+iTj+!l(N4Y+uR~ z$%;DyoNhpj{4ZjAr+k_dMU@Nt2`RF=-eA{9y$ge&9LdsA{xP4?<8ejX?ZpNTYjoJy z1UDx52r&Px(_fIzAN;l1+iufq_z@WyA*;k?G`gK0Ggl9Sg=9o)z4mqnbu?oR0UMau z298Iv>E!d=+`0&+v)lB{KIbLadNg-}Tof4pTshhTVSLnnNeo`x>60~a^jVSJ77i*N zprDCD6tgJp4H=O|Bb-P3e#vt$tL{AKWpDdEs6iuNtoFDW|LIk&W?ID9Z>Ud;H-0{X z(v+P-bgX6J?z6S60p&`zT#y1~#A~)`9N6Ju9Qaa}`&`uSAjy_<=C((8_KqQ>>(yWT z!-KExibLvmTcX(kC~1@{!ariN!-*?F ziudqH$k@AK+gi)1Nosd@swf`Dw{dN2-BqrcxO^I-#kTqhj~a5&<0Gr1j-}9QW(C45 zT0h?dZ(VrXrJ8bM7J@-hwcbF}Dj{cl@anqp`4QcTjGwVs?=;7{-2UY1aCWubtglT~ z5p~43WpeGz4+QXKp4T(AEOrR4Zm|}V96AXZ(MS#Te-MbEC%eE^HFNKQ1&4SD)v5_TCP{rOScyk1O4t4F%2nc@m3xDChxwEy2QQuMLX3@=t^KFlp@77$v zg^@LeERHe2(pT-P+!&!09!0+FOdK10j?b)sH^TbzSbw(hI$K{!;n>M}tc^JfyhKAq zu_3bcG6f$o-UVixFLZ@IMkN7F5$u%?tLy{LPRpR&?;rfe-cw%6azAW(aX$q&aXvo^ zOYe7j-0i*;nmgc^>os{1MuI35x?eyjLaH(l zj3A?ObfU!E>h>};RkI)Uh}fZ3A24`$Q~HX%jOgQ=){);Jw4F0UPd)T@Uv&U9FW(&F z2RzeB@y9myDjJWIgZLCwJerkLxBVuciv%%uW}Kl%HB%<9-RLYulsUS(-4jl*L?~HK z!PE|xj0ic5(K$9KvXXKb9ML`X4o4_<)$#y@nKm8Q5~86QJo;JYhcacfiryi2#jIo% zX!O&c<}DMq=B?-QmdS_xwuFRZW|Dj3^h}+uJ9&D?v0Z-mm*VFuNVON2+O5T^qZZsp zT&2nSSi()PxU2_vT0IcW)ugnqg}4y6{(nK2m`vEK!H2RH z!d$yJ2@ym*ik&UqNCGcTkLH6wwy^`JY@Tm!?Sx-Z?bho%EYNuhYsSE!mr%E<0e0?l zq%n_KSD2dWZfbSJ5@Sqnt^r-!zf_BulB-o9^yev%dGts)ID-tIs1eW#!csd*0 zqGpnugDKWAk=u1^rkaFk8_^Cg{Znyh=YK>;LTaS>$dSMj%Kh405W*iYfqi6Onk--}rzP?t)FwT?#%ALkX9iYb@} zERDMOE!#-&et$tZb|8njn&`C0SS?R>gjarwqA{GP5>wS9MU^s!O)sQ)_dcU^7KCUMqz-X&vDO_boa z)j4_X;mUBYqUv0!crI=@U$!qkYg3+Q_?Z>Gauli)J=8FY{8Dtk!61}S6ls}tL8=j? z8*k?TE7L_40qbV1fv7U~^4Q?Un-`gF2|MI5K8vpBJLc%9@WauF22Y4|h2}??aVmG05UG--IG4N}twEmN zSb^DYXzv}DXY5-p7Bdnv@7sq?`U~x4&+U5Vae1!^(8psoK1o>&@~-0~{FUb1$3!R?qHCMn3#>kRAF76dA-={>(2f-KjrX0JljjmShX@du{J-*ey zUB$vv2b}Ho-pM)BDxHSP%n*KgaDuJ_lkXEefYC1HS=~{?1NmByDUys@E+Qds%_HK8+WT?={Q=nVWqJHsDZAq>ie})^z zM$Dz0tW{*S zj!tUdH9YJ&nt#o4W)orWo(DoTYp-y-`BZPM7d9b_hREa2@}%!gL>1K3`AXOOUFF6e zm?yHYzxhO<*WbR*mEDqz(-e=*TZg0Z41;j$UHBupM8H(nur6f2|H`f$^Oi4gw{uzK zBf-DfI_-tA+<>#aZ^zoCT(;3yH!_kofG7fOs5Eg^qL!246)hKk;!A^Q|~L~P)PSxq2krk}5= zuEVG$+c9e07#^EgardYy@Xw`_08RSbnTA}BQ+1b{OkHcKvrA2C0jrbghGD^hxp6D% z0u@VANN+e9kp?xQpz+!htS4V*m&TNzy~>=K{=c#~;LHfBaZOKj40| z1|TWEaozs%;dkuu*!=J7)c7RY{eIE5tFVi|K#e-*>YlpoA&9~5O~T>$-qB)`C`K<9 zoJK~j7N7Xa)7E2<$~mX$ssP-_y2r`dzho;qR&vzPt3}7dS;UtJd!j6aju}ZP!g9IM zEKpjKQEUjg<%bFWr{gH`_s&Prgn#7os$v-vAAr5a*S%t;i3#C0T#f8OJF)fG+4 zzbtzUg<-JxUbqCuyUn)l%)jl7Ua__LMdf{z2*#MdpOX`RJ&*EFL37!8?}i`e zUsnzq`K>;^-TV|gJ)qz`ym${o(5BRRSsY?T&1m7F+EeMHrr{wCRtg?u_-D`A8?Jn8 zQ~Evt@5mWHxI#Qbw=w%!=pzu$7-69H~W=@;fJ5$ZE4s+ zqIp9Z->9!^3%5-5GxG^}zNv{58AB9KAUbqczpY6(DIV_KD!H&J^=!GU`5b z{S=a|3n4D8!zh@N3lA~RSr`6q6mq(3%Cw*BAQ%+%f6&<+lQ9ukrx&*>La*ionfO)G7&!B5LV*n}nm@MCoOJ46RJnM!;?YR``LoBYXRq@nO}$*Hm+4 z5h)e7#pi~rL#?m@`2j4qXM@nC&?{;7dX9uw8p3u>gBIoP9c6-+pD?24@4M9?)db1+XKAnZ>#vxY*WPr$t*>dtJ4Dal?d;stNy1s zGKpY90;vGfn9;xJXX##Q!B0to7?lyH<;8{)L@@61(M(seE8r+A<&l$)El0Ld4shoD zwM%KwVyh*m_3hDRrn~zqNJr8A`rnIBA223@=ygb(!);;BVu#}a;*x)^#jEVVaH$V7j!_N@b9b&y?Eu%w+oEV zn{|`4gUKhwnxY_**D31hAi3|5?8-gnf}ZbZ zj!EZqheLw@S`D(0=ebz{w!^Ah^~3tuovX%*tJj?>;7AN2P}SU`#%Rw&Y5!=V&1+FD z$)Tgxs>7hI4=e-}3OsW-n1*2D`L0Bv=+$sb@|xKnJx`NjYulZ~=U8L1=|rgU2Q<~# zUL!SL1NlQydKDa`Yep=Wh`~^d)|7I&mr-=Ti4w{FW+{>mcIAm9Abcx2rROQ2+oS73 zB93UmxZ|oHY24RR6#79T=ml5PIU8LT<{mDm0p?odL7t<1Ag6}_Y{uOe4J`xetH=dd zn8)lhGHKV#Z^GQ=ek+~l*9DH|fapJHdlIXDGonlo5mW6)_-kOy;>Jz%m(XW!dVJICL$^rIF}yQ(nxG!5m}&vIA?y8EGwWjDMKJW zeH?$^g+IT#@`Y{}4L*avoJ!lo_!VxLt~QR4SJTQg@rC2tB5don_-S_r2C%xLAA?#;ojc zB?-795V(<%ULwF3tSw%FJR@dIB;@Ery70~@aSqV3sZlxF?oZ=bV4LwHX@a>Xlq>Rx z$h{;Jz|qZwVsB;|X0gB9n*_Im=!y>>8sja5;WY`g{K5Nsz5aHz!mhu)wyA4ipqHyK za-gObBtkinWfwG?<1pRUy2!o6&B>+OiYRkD53nsww$a0^605AKHmmuUoHyB)*J}r+ zAc_^%5JA~7b*S6aHyrhT&fT*-LT%tv;u%TA&+&HwlU;zHe>BlGlpOirq?T(!rSt9{HmG`1KaxP9|jC z=FE#)#h(Jg479n){)mpI!*)+M4NIZlbsB%VL}5r5s>#OIwhl9Y+`0G_M)Bn% zG>T$*Ji0rO%q`Xn2Wm?we`V@f_d2+|Z(R~!iRZkce`DMIP=^U{XV-?@dXcr>;;>`p z;HR-8xH)saAX`~NJIvWUsk=Qtj{i`DhGCWI|`&L!!I(1JCv}Au{9qY z2CtCp;R&QrO(MjHbTb-gMM~eOf)NRO(*Cb%H|UQ_FQ4;$g0{w}DMpPGZ+rcj@>t{D zK^is-T%thAV{l1;!zAKPu){EMKKz&$9pLo^9X;}|>pQBwt-bGd(1FTKBhzR>BO*gD z545kM8LVo2q-GC~WO*>OEENR@Z_u&PC?BZ5gcN_^h*x#(W)#|f0KhGW5!T#BI2YIo zG^{w~GH;ClU7c1kghXnGh>+$1zU}baUj;|h1xGM*tPrnR@wpRmCG?}Ma{<*{EPork ztvBo$p-irX)B7uv&=U0OWR~S)jN*AVf}IL@?WR#=|CG@8$ETC(ao}P#+S4#Tq<_N~ zKJ+XqQ+NY`KhwaQlfcmDRUE!e5+UQ!#sm?TDers7jf6pEwaYe+ly19gpH<9YlB zTaKt#@hRFZanfCED5l>Rr$(wE&TOvWadLlz>Bgd6fSq-aFUvLZ zhYRC%2O~)r6%Uas3`+Fqr>&e5sZ@6AS2nH=)$Lv4mb%4> zGL2D>VNdAp#8LYtm+JKR}zWhAUE<`MdL#=M(AmhBupXPw)M zoDNu{(qap&@$vHle~>e5nQ@0~z3+%%YY6{`8u)oG4b7}e?Oq3r_EC(TBm#Zi*i zD~W=7;!NrXp`7wuB$JX>7+xX@A4ebpJ#@Tx(&q$(EnOHbSylA-PcDTd42AU=KQW^r z0!^+$N3Jltce2|`4y)5zqtZ^P%qy|et{hAwaJTCnyp@(VZf59`RwQwv`p{eaQ2?W(pUU?kVg?G8x z*9E?JntLzcf=AD`Snnr9TK89V_Qm4>K1U~0x+0~X%Yueg&XEY(uLIeS9+kEk$u_&) zf2{bieIkPEH9FtrsM!n&pFP)?Z9k+OB#_X3X5#L?Y&3^F5ec+2Wr(TQA%==1WABy< zIU@!*Nb+z+TGm}$lr?g2^3?}pAGQU{F$7m)ysQ37fm%Y51ZHh|VE(9gR_FLkK;~5h zCcdsL4^H`vem-%`+&*zAe)(8Ce_i^$;?q}D*W@l4i%X>HHAYgE1};bZxs(J?*5LHV zW3<}kl~5lILQ8JL=L}?!y`ylVt+W}1ie6Aq6IIH5LBuLxUr3flZ)MBIS4fX7-LoB= z{;Du#SU{>w!8|2X=sy(Do3ou>$tj)7sdQQhkhFP$`+bc2o7n8e!7!cbla+k$c_c3M z6WONuZHo9HKtj#}7NFbaoz|xlrH!rc_}LHsHnY*@;cIL8QE8)Yu(dX~IVk4on?GCD zDUb#N5+lk&LB{Kuk5dv(O;cJNmdrH~c3F-9-zU`XzRs z?POn0lD;PbCGaxfZ0yw1&0Cq5d`0~PP0rtDfvnbisc~#iZYJZhW2H85|LH99xT5@w z^a+z*eEd#_x2`-UD=^$_`V`6Aln$Ow3^HONqLh!LwT3%?@==-f4^HwFx;w3aFABsE zVJ)J=W!c{JFI{vV@6!^;sgb%pjafC#4ohIz`9N#=A&$}ktrC9#{|!=r8;?%;yaZ57 z=#QsemISZaF^i-neRSoKQb9uF)T_V-VF!t_zT;5Hc_Si{9pZDFav1s?UXp6vgg?~M zSykm$@;9jnZuja3=&ojgMbMrNx@-p!{;=OB;kNT|5 zKIR&j+zUFC(Ff>d5`C``%r|LCPy%<9e(=iWqY~BenGN){PaD?re0QV?$u#yCDb)!3Vn~76}TuYIeJn)e3!bMIaCh z2-8a{knF&e5X5L(=`^Vrn%fW+P5o1E*o3KfS3Wtz(54jXIiMS=klw!3>9Tv%98}NV zv1C`p)QtAU(zok5-h>Me;sbt+JOoInY&q;(_KekJr)+Y9e~2Ivcf2>cOy{iwOx{|@ zYS1n0*19Ub!h`UwZ5mI1{ZbjT)~wO-ImcB>M8N2mp&iE;5*Twrk`X&svJIAcpB>Fu z?+8U}%6ykn`Vq|=ae?k9H9hL$)m@CQ+mmQb-|E)zF9?keqyVm1w;+bSI(D7GL+P?d z%@)Y(F?hU3TP7PlTCr!^r?D%Nt{Y7n0SH(tE};_MmwVNVj&x_P!#65Jq{yDwTj6}T ziclxI(0A}xscw+gRz__T-&dk>I2aC_d4FBF--{4^Sd`!{22_Y=KDz!&+1*hpTBPvo zwdM(ClJz;Xg#NCjWO&*E7rX-C3UIBm6uItqZX%p9lc{+15>c^IaCo$(%-7{adjBi z=7D5Tp*EwWtbgFrPhb1%zJFo*QavdK}uHA!#yzsdxEdxu57p*0{-+^hk}C^n>LDNI4(n zN{1UIz29J2Pp65A^a9os_<#<|l#4tyyuC`V!6qOTZvyK?5YviCszsphEA}pfEwvpI%LLEoITV4r$ zZC=6u0Zl-%zwok|rp`O>ocZnC8CviS*!RPhZC+1C$RycCE+8K(f4HrcI)yXWsvPI+ zU#)RAj_YdyH2^?Y64~SS$nL#F!vWJ!$_U^D!MT@h7^HgKlRi-W-~iPz$=FUHFsw+F zc)`XK+XPEPb#eSQ;xxdev;A3hyImh9x^5pQcHO>a`?j&s#)d@V{DXVz4I9?E zjp*+4r{MfRZEJ0yFj(M}E4e?88An1r`Sbo0q4Sk(X(Je)IUMSS_jDP-c5}}eQMxuB zzebXyq2bFlx!J7;#mJRkO*KsJtKq`!t3A}2FLiJ2?zm*z<}KN(=*)lg_N+XETOVo+ z;s2WU_EY>tVRAFsQ$F{mOS18(VB;H5Ebc$6%!yJj$Rcm$Xxk{ye!xMZHn#dzq>_jV zM3kv0PZOD=GB-W9?q*?P;kDPCy>r9Rn!)yx&oF#Gm%1PkB3;R#wlWJrKn1|kg;8U$ zbxGEan}*+OM5!oQGuf8SS+nF7bB%zkj(pEH5@c(2m`e_rAC7I*iL++;;ELIjSaH#0 znRda_qQKmDjeyUy{d*UBylDFS&)&3g<4w<24l_>=c3k*&XHQ<0nF-p9=D@b5abAT)!0H^5zgkf zy9Xz$vbxt1^el3(O`fQp9aixz@u)q;g?nR5w)XFg`9xPbCDyr>FyK497nNX7FZKyQzsBAr& z+bJqSb*%2%C8?^8+1TErNFN+gSk|gi$Sg>L+QY=;$R#x^r%HRw9 z66b(aBAer~5;wO+dntnx>=z{=kzs*eF!-(J<*m>@bG>;*0G4oqohCV-!@M>wbT)M_ zlOyJ}E-xgh3ZHO=B~fvhzv6=CubehXjyT}QKmF-XA?MJ|=UiSI1vMHre-{U@6Y_5R zE0XGP#>LAnlVc9NeO_L;N`mAN`3aMm2HUUUFev=_ASq{qDBW>8wTat6v;FX2U%u;o zTepmE%*Ir^_SwhVTY14Qv-mDsn1FbUS17Mc6BLw+G%Z7g-Bb{5XeLe*n?`NgG{RJ> z*{6wJpmz3~DvsI2{u8OB<1E!`O*mxN9zAyNJ@3Brwp-tFF*C8JcDCh1hr);4E-h#e zvdoo5>HSg2`%&Wg4YmwXs$};g=OACP{7rU&EdW6NVmsbjxUGPEX|a?fR#+{I9LQJ~ zzs<2*3ay1o4rno#Y)e@S8QHd7)>F(8sg=0&s2CWjH6H9Gk?H2RPlGL-w9_X6% ziXlWtvKA6KN_E;&hnT}|Q$FaTOs&(Bj@R}?*Z3@+cvQ4z}NU?&G7o4If zh&F_OKEoA}osyRq6+NnmE|muBCY%nD3RFP~|h6wt(Wa+XRf~HYESrykDPNytac{GvJg)oyz2&6Q5_pt>zV$YBtlIzRY zYG{}sNyy0%3fl)C$RN&o_TGDnjRGg`D0g!__u|<*Ie~xS>tDU*(7^+H&l|WgKjWg$*_=RD`Fy#5t+z?Pk-@=&piClJFh!q zMMrx&wRlyGAWFpwFkXJaiHzC{k*2*z4TJuG}lW|jt*)CCvL~I3+*wJtC zl9ZJgMN3vl!P*8@w3v!9N?WnO{92{9Y#mK9Hmd}qDw)L=Pvuxtt`V#dRgq=8Fjixa zvV7|-h*tBk7Ivvvu$Zq=Si~X8f#rU`x7CSYpqY!fK%ufAF}hQfh~2?L%Dh8Vl%N}I zh}0!jKs!tGx}6DM*d4O*wSJ%uhb`rk1j%j}F8=ZQWnElj6?jmhD^eBZd6Bv)7fSjy zK@4!b04~J*zOaoiIwVAus-ncJVqry5+*(?*C6gQUDCK3G8;NCYiVh{)5D56{o9wN& zU?P~V-(-H&<_M+^jZj748_~MsoxCDwOM*4=#3Cl4!8YXb4uu01**E}p-X_QblDLf2 zD!5&OkZ8p&Vh<$0z^S6h@z_g2klYTR#0CBKc(~RnR~at5M-4|5V{oi|??{!PA$hA# zM^#kO>@HizmZ(bdc%fZV193@9i!vJG%WJcooueLR@Nj57sC>X{%jIOdU3R%_yx?^k zqRVi48TVy_Y;e7vxcRa2q3+ScY5zqD&u}Pch**Te2_755#`$ZKYDpIvAe+dA<%6}@ zndRM76-Eb;m$*J6+rTEnUZ!4cz)y?7p+F@DCa97ybt75ne^OtjV|jae{^e8&Pt-Ao+ws8m$jvH<>wJ{ z`BEY&N|s`=l!!PB%SuJgUt+>tOd%I!S}Poc1|3rw{LvpwzVgcC4`zO8L}R^)O^pDO zuG)KIb&xR{cJDB69Dk(v(vsTs5x>XY7_HtE8w`8wuAb;;rmst;5ErMLy4P1h4cfLB zN6J8FzTA1iA?TD;Q)H)4Avlkk>N6+l8t~s-WSTx>y(OI3T zHk6kBjy)UJtxPz~_&R<4l5hZtHQ*CDZ78s$LzVCB^*P8X7=Yy>=16aOMJ|(KKiCxx z8a}U9*_-Uty@^h<2xx9k?$a#&Fj&r=wGV$28d>aRlw!~g?6r`GH_<0%?xK#F-@z9) z)rJ$RWB$NseOERbDA!dbE?vYFAD{URb!{}?3;lPEmGbAu4d1G^w(59h=a!{QzBQX? zHM@q2VYe{b@q~4Yt@g63imX*qzyFpk^w6N4?T3`B^dV;b@WpK$nhYK|9bheUDOP^buar$B znfWP2Ii&jtvZ>%W)B?1$hyXrH+p9}U(q4a2_V06ebgH;z z`#!%^GOD`LX@925)ynnO_Qg6y_qjILK7UH7k!(gO>dm@bdOFk5Y;)UOf|By@1E=j= zUFu3NZ|Iq&n{K3=i%Fbxkd5R>*)hESj6zE`6_k|9FARE^7hSacQ9A^f&2p4^iEVyK zhpm&jmAT<^hTTZc`(N%GFNZsqB@;jfRxjJwxv{Z6(UI(MyGR`3ish5^TPq`Cz`ih*GM+a$a%_>hZZa;)R)e~t5wvN1($%Y*@4%f9E{Ixcx1it68wG`@W>3z$Z>L^s_zT(qe zH^8#P9zEv>Ww?vqwz;~$-IE%2#J;Q{Fo1~X%Q44r+}$xy(=pYt28^CN$}VMjc=d-> zw|ZYh-WnKg?Jc!%kZ_lOBUFu?CRbPhDGl9AClQrHU<@Sz-2|t zvP))5o(e>%814ClSgQB~nC@VCMvXB0>njNP>Hcd)!KMa8>kyqhvOBik zFZcvON#}&-c4>)LE46A%>x5<;4*H1~HAL%z?K^4^F@LPKjw-w$*sGkjY zPX7x&YCInmGR8mKY(K8#2u`3}TZeM3k!)kX34l0?Ob&K0YxjvLfT9NCYE<%+XI|62 z0?Ps9Dd88b@oZ|Mq-k5zwv|1pWH?9~X(O8`PXZ^xXRXX*Z)}uv{>m({-NF#LaxAji z1s;bGW$DxGzt``xfFxs=LX@j)y3Dqw!PzbR6z)mXf!@}p`$NIO<$kxTt8UAFpu%u> z_b6mz>$^&WX@~6cIe|7rLDLcW+an#d{~vAd0T@Sht&h){y1n;aw7cqMtLkdiZCRFV zS(YUiS?C~w$vV523_C_!?V82LP_|wEOXu*KmJ1|{Hp7+Wm#^5kY{>m;xKe)GQs`XL*GsM} zhU~VG+SjVNv9yb;MX;iKT;)07SbQA`3ObM5>v^$z*bK za`TF1ix=3-?Xgl@3SpdMD1D*^0i(u` z@EsA23C#*eN>qeafX(y#aa+{!s&m1@;iXGDGGR8OwTc(CtQqbEsXZIgB?}89HltQ= z^tx91K5vUSKz^HxwzPR1L93dWo`NS3bsJoMuJMk$T8&=2j=YgDsX3oIWV44vOL?H&rQ^QtKSqLZ-u=3KtH*hzRFIMt00{<~SO0z>Q*N$>Q;~Lj#uPSapet)Op5C?4lHP z52AsD+Gti#=ys#TSR*zYsb=yfVgVt~qHHIB$!v;RO*kAx^PCb9iPjyd|0p;jw$J-k zx|BBAakYyyNsvCaNrL^KZ<1T!Q;w(=?CY&cck;J&{Cj%SDcRCZWJ{9Sg!#W7#53Sm zj}G@{d_?G1loN#x@n1>H2OJNI`LCxiP$^XPVqlgIq*E@3UdJRMDH6HjMEOz8V--8I zM1F9{t!SZE@^s83F>eJ4!WoRG-?Ix9> zq%TL?n=?@#Dz>Y>RtA=cgIhd#>d*YJ#GJ4>hqQQ zxYwu7mM?ACH{oZmzXZcgG668FhQo4DPVS>S6gJxWfbCEUgQ+&TwGzf5!Ac5 zzEoW#)Kp(rNEIqdL$#6Gpj|~2;+VOJo`rcPkT9q7EaGa>Uom7>nvNaLnA6!XX$`Y~ z^PVDv7GImGgtd25U@crf@phlatZ^9oj1C981;6R)!0f!l*UszWUsm z`*-bJKD4+mcW(W;u~;nOusG}nq=j|Zh<-`r2vIGwN$S&CsjsL3{hK%(ASeOO zN)cgS4II^(P!mGG5h!Lf(&EGwUl00+($kI~>X=0^1Ce$%ycnG&;V-pX?{%haR_lHC z?1>-SvsSBB{;o4cHn4q=442e_-eGY1xO78reO+B%CP*=DI3 zb;a1Q+hx(ISyruc)LC*h_PUU0GKz+BZ9)~R+TOE}>+av^jj$1S-({(E!|8b_am*0+ znTP?Q06XuRl}^PK)2VcEeH>w>=i*?Hszf?yP_!jw5JAWHym_SNSV@Vi=C+nfb+G<3 zoX4s*tci40COkIh=se@=vj%IZQJ<-~CcotfYuB-Ccet@7eRgME4w;5eK2FLlFwM+H zWCqBAz^ol>uddRGAPf<;j=Tbn?+F6i$q<89Kp~B0ExVmO)J|SxiIUC?;gS(XkibLe z%eMg2vN69gn@Pk2ev^@DhGt5Aoee;cMGdglUMETsv5vMJF)E>(kR@XxR|A=9$hNZC zkQ2WV&cKL|j}45pQo&J2oj24OPxhnQNcM7tg%@rkLy=G2P`Bh9fYycOK~5`aR9d|x zNs%&@)yPBp8T-aUQ0l171G@_xTjJF$yPz+fO-0KpDlWdRp(1P!u7(JxgQ7;Gl{|@_ zCV+hlTgv>A3wQyN>pD1Y=-4gouyY$U)rV}Xgn`rKeTqTRq~nq!I}bDiyX=X_3&4(# zMx8A9&H%fonkZbg?o`#0E88Fb5r`gvs1$-Jkj(*X*a(BqZCx;+&zSYiTqOf=-hJfWOryc#^T93rn}{u$f{hp?mM4_2Go0x?$0a zPc+tcbzOaEBiE2W|KQHLeY;~Li&)-S#%IR&ozuMR(TAElqlE?esF$r?H7B3ShBIh3 zy^d3c4vv{bT%k!`$zJA90b0=%WnoT!lpczRVe_F}>n!9E z*Lyc}A#)|Oq_Ftl9%9FA?yENQqQEL({?h}Z!gIz*tSHTMF*P?|e%ZwropJYoIV13upbw9bkxk=Jhi3oyuOQ4W3CmA z`5>fJv0SG6nQIRZO?`*Fr3r!i>uO3ZkG?2yDMU?-MFi=19#cnEj7vxPdV=R zfmXw71dTZz&$O3TcBNv~@@lBr+}XWZ;X|J7|8&mI#Ab5L*@c5no7qGRRJ)bs*}3?3 z0k6Yi!!RI*(aZ(MLCSXl)AV(K%sFGENq}mQQK`_ZRY6}mU0bWurE_H9%P2X}$d^;} zq3Y)XOW0Ex^qa;cXHJZWlmrjg@gqzxk;j*O=5>sFO1~NI3PW92xa-=Rwr#n6i!2#- z8CcgY!>+0C?bGgq2ekXN@`k(ax@&$G|G|SL&JC{h>s=eh2I}Si2f6x+cv-xR{9P7I z1QX=%r`hb%Y!8To`tQ$SHIAqAf%-wNZb-KS)+T{Ti%p zB&>HS#7j;ofgire7nmsi7K%$e1_1%s`a(hea3V9oUX+>0$lrM9flq&U&(EK9JjweU zPdcVXOrJG#Tc0(5R&J2VKR)&RMYqRpkCDH?;ZfNNzaQ;vYiVz8Zg2TszAj%!{^a`= zO2O0S{Va@+x%O#9gq_BQs3T&XNOyLVMujs19F5d^MQVSNO6gki2iH&fO@|&!ETCXARvRet@4JnLV#9reuf{MIaAVo$9 zH%wUqOnVB`L%3q@-^U#@T2Na~r5UH3;am#B34~ZQkA34NsJ!VL@^9t(3N`=>KUxCM z+;kJ1*(c}aOX1+GF-RouCS9n*M1W#&2#X{|law85lHo;>TH)dfM&!jsW=j+i9%v{> z%8co95LRHUD8uNRA6$*-h*!%IxIDMEe)%D|{G%mg$oRFq53ZCSt{gi^(v~SZp@S z5M!~}Rxmb;jdaU?<$C&wf6oO+3oT8J@pvQ>2pA13hL;a5>F@4pD>QaCbt05qU2VJ~ zUQwEe#3E#rRmj(zHiO^jvq#J(j{+7QMyHm6lfn?exhqE#B(oT27ZoT16aBQXN`mV& z_H`_R4EOjd<3boQ6nKi`mLOLnZSKmlb9(%_RCU5E-@&~QC@&A}3RF}CP7Ia#%L8Tq zWpS0m;U9kTlRvx-q=t3%XFq!O*;6Z_GiXob+839deLMuqX}5nklh@e%Q9DG-17mm< z@&&)gf8FCfqAKdR-*?;Vx83&oruudDE6zIWk+T=)yUY68a&h}3XLsjMe4m*U0oz0z&)?VhvG|&r;g^L5jDdV5yw~mJm`Bk@(hVE-Xbk zw*6MKTxq)X8@F2EyXITJQM!CNFANWV^pP?ST~B0Jl#Ib8%r#24NHT(k*qECbPNm^g z+qHlrD5D-{h^Qj+OoNzY8bL)pAs9cSQIYXCg(qnQG*AEGvqlSkU?SmwpUyO&!YdFM zQYSh(lSk~$+7#stG*f({+NgngY172~nkJ}Ou;`-I7GTTzu57>JJW{KNMsFS&x%t!A zZP{|&RxVoD)qMr#Re$!g`)?b$`H7oHZrOr+PRBV#ofer8M+(bbc2=zdMN>U}E+6B- zS%t_^R1rlL1>@i;bX}WGr$a@}=C%=SV%9{z?r%)=BT{89BM?PvZgaYT-7)nRd|R&m zWGVY>shqy%nt5&K9(fzw)GN!Aon>X6j=VBI&eW23c`?;15yO^@LV83^n9rI4Y*0^h^$(`1pfGi7g&&{ul0G`6ur1&t04**jSCaMZH~} zmF1zJZoP3m;>XPuKv7XL&`DGW4aJN{4J?Lw<&g7!IxaE~#VMm|jD{owZ8e}P9i3Mk zx@@RhhYY=Qo7XQmq1>BZ-Rdwo&mBx>D>eo~tZU)w9kmq!ljA^l^SY3C$X>p*?Z5(# zbtUV{>S9_WXDxMCmS=ne{?g8JtvRsA8n1Op9$W9A+nCC_>(^GzYod39q$`Xc>Kfc{ zBwfBS%6COlUQb2&!F+yoHd*zp(jkYjWKC-{RpQi}&00%sshh9#S0{Mz=lW~%C89Z8 zlJz@`zDV%U!J4tK3EL8!{3ZVY_Zm~qG$WTD^-G{eMQVNmU1Fpk@U+7D5z-_0zWQvk z)*bU=XbS2fbRq&tm+~z7T{WP@?ood$RwI{lWOLaPM8m*XJR*V}7g|_NuxtH9L-O#% z_Vp!JZ-pbQ?`wbM=!xH2m$(hykYH`~xz}tE3M}Z2ltZaw>kWvx$0tb z*_>Q{Nx`O^uS}kvN^@!;Fc+0Zdr_;M`J~>(e{*$2D;Y^OpLN(QI+5WhKdLjAP_qfi zDddn@Dj@;+Anz2i{lT?|`p<%E$?7CoktaW>80a6U_<%j~!M$|#Ftow7XZ0U~YvnJ> zlVs(C;t|kTJmU1Y9*)SYN}{E1EUa^YBtVaD2GdkR6a|Dh*G@y66Uin>oG_*)<{k=S zT#A^2EW)CyDyv1{t7@xiYpP2V(Xij=a#|{_l{z(V7D&w)rZbL-qJtqjdB{`~otNmV znJBRXxs(}QoH)CYGGqL*IYm+FAzoGw4KXNd0Dn3BqP5iPIRvxhBtMux3C3o zBxqsc|K~f678aF6fmuGZY;ft4f&RsPi+U-MN0C3FrMaoGp&o9HK`5oh3U`+XefG zbe{Toh-ddfAR`|D{TJD1z6kmgkHSM*v(_1MI_00n*^ce^a0vI5mvOdy&8og-rg;Eh1B!gY!ssiS(No+9Xa3+*%4U?%>>i;Na(Z8n~t z%WGg2NU+Xq1-$W&E7^{9xuE5!riATs`-*itbwQ12%+z zQw;f~tdc*5`rs-~Ud5lwqwjJnbCkJ@d6IdN`401I=0h+rXSbCwe`MZ6%q*fM{(y`% zM9z}WFPP_;&olQkXHmW)4zX20&pgFE%G|-+&Rj{Za|W}T=_mG_njE1glC87gM_1D% zQ6Ys%rbsW!O`_17B;tB=!T5)FzVq#yZ|ZChhg?paR~P7XUmTO1=rmuon5yP*o`J?x z;hYo=9APCQuV@&!r5FJ2pvM3W@u6cG4*tqKA`M8l#<^k)51n3Al0JB63}-Z04CKuV z4#c>Ts-XtRVHEI&Mgdi`PO3-H%#Z-Y;yDa(q!ay|Bt~+S;0o_bE|6!ZQ?n$Sot6ZY z2uVSiQp-Yi@pg6KzF_%ijcBMM`j5zI^+p3Rm$X)+Bx(}p_1F{65|wB)h=*R^-msxv z<6ATKE&0S*&!ji5?yg+1%x%4D#VyC!h-v7tmGuijYFtwYw%5A8m~_|HnywTR@fF&*J8DjbB@?fo3_CRzm;W1*uUxa;AT{gj`=d+bbrnORj&EymhE1lHM76=- z3>#|}={R2^q~{$*n?_J;1yQq3@RoaG<#9f@+Ao?oxUyQ;v|w3G9qBFV*xS?%`6#~9Gjmlw7<|IL_vFIFkCNADp7oDq@ z_?S|ryU-B_PE?E;RwPP*8bnDTwuFcp5CGMH&=}*PFXY$jVkQ34P^m&%p>XGF=1%y= z5!gu?7t*8~NXZmw@qUPA^7F%UpKRIaF~drBaJ|{s&|Af^(HizazI>kAy9YWO%6FhE zwWlmzQXe`1HBsp4iB(g-Z<;*QIpmql_lUqqWXbU30tUXaFo?@($_}dq z7^lPHv-%V?KgJAZl`<_!F~|^nFde5df;^9%jC$29yJYgY%HY!aA-!3M^7z;YT+io`MaF7+M zD!{4-EmQ%eFsXAw0)jNoJ0}&Fu&f^Bj2Nz`%hMe>uSYx#Y$hgC#fK z@ZH3H_eM(Zy@yZ9Z#T6QO~~HV4w^H6cwotyCr%t-58Z$Vg`$Ve0ww_G zInF9@G4jWb?Ec1$Bdk`wTMGw=%KEZl(8_md*!nG(Jv8c+?{czVg|$xkZa%f_%9pk| zoxk+|Ql%c)6-aj{RBH0W>0JJ)3)W>$oGJe`2x1^e7D^lzPs&epL&n3znBGDU1_HSN z87@R5H3p*Q0z&sQlm(3;+XazB>RFbh&R4`%71=(YHxl;7d@)O`%u0+##O$`QWXQxA za|2g&jHHMq7@ei#u-}L8!2`eVt6Z|}XwUwy?A`m7{pW9c@3Zocx({^S^1YjH=2N}$ z^9!H;-Oh`9j&2{Q-1nbve`RmiALIwS&g|ZP^UdG8c^;N`NMSL@mW!Qj*Nm$ek;T!; zhPD^S_gQ`R`4iI=pWdm4JbQ|5Z(evs>chv%k)*LoC6E-C{oWikaGHH|8ip-h#CVYP<`Q)w!zJA8|bCM&cx5O4pCAAZ4Z{BbBP^U z{otXVa6mp=KD)JQX!7z~@0^^xbCRfUhaOm+KTyw7so0A8n2{H#X$5M2)X-nl1L2g)|T|QZ$~PYe!nND4CJNg_vLD2YyKu zSkE4{H?f&0O*hR%?P4U6u@a?GjLZ|)pZ5DJ0k5NS9%^lcV^-set!j4fPv3A@$_xuKnFWS2i{p)#7A<;7 z{!h1C!hZ49lSjE<(|%peG%~Lid?7!}bJbB+&DYnICwQZl>v20&M2{BPE(Ni?U8IC) z6oG|NVMsSR8u{&vQLED#H=&=1;nid?AZjE<8zVNBUauP@3!Q!iqu1#dc?%u?%SE(C z-NZj~mC=F+-$sVmRb{1-a4=xCn#o{d#hHA61rR-)R5*U6%u&QzAnJHFM>b^1nBxfL zh*hkZ%yyjM5$q{@1)CvUwijLx%^nzTW};2j)FIQ z-Oj=W}jmp=35FJrJI)bYpJi%3Pg3ii1KCgy1Z6Y5`KFOrYV z!OkXnix#~#Iz&)#>M4Vm2+(B#p_3ApOd|2HfD(%5nL(6L{4h}m7{1qRG26(;f`lLD zoHJ~ea!$z{#`*fNIVUA@=CJeY0Daef^Xs1=0_~e$2l**nm!AT7W8S83(nGP(CvPHU zi!f!3_+%7-4Cyh0U@zwEq4w^y3M|pzYwa1-@G;sc>x2oe1Bi~M7P;;HD=yPW)vFqY zI{j1oJOUS}>x{3s%sR1RNjvwmR@b)w{_bm+s`Kl#`XyaeLrp4OoK1I5T|I~>#ew>Y zpr~7N*Z-C*i12bdj~TsGmMI~jSETrmr`$ADU)Ve zm>y<`SdNzLrxORd>8W0@sp@o zAjKQe7EuIXwG5F3i+MXN*O$rIY?+o!OC)Ub+Pn_C#Y|H|;w?~;bL6NKS&6?c5vUu~ z!N;;W0~<+XbB;V%vpJh+r!;_=XPm_hXE7#9Sqn|qQ7~{RKt}@eK`~q~PR8uYM|1T} z`+JPx(w^*o*Msuc;Eg9A>DuVo4I#Mvl`E>Be&eIv*BmKdQux!lYG{3GQ&(wIy{gWr z?OCBqPemX6o#(Zi)QO-`-Vs}zcbH@Kx|Qp!*ObGaGviCL@SJ4lJm}jXTd!T+00$+N=n@BZ`<88!F3N|mKGOTlxc0Vf)_a(f z^%E;Y1FaXI=_xz*DX}sfUY9(wb%n>ZeUtMvZly5l4>qfSu{ba*-Ub7vnVBjMxD*s{ zA`+t*x;q0oPpUJAX$Mr~V5?%;W5?u24>h;%efhU9?+xZk4=r0WEpICN`4myf#Y0VZ ztl0nZ-n}pHZ=774IJE4Iv+hx((LIBoyl9Rd7GUBSok6tVNGK@IX5{;r+0JRA%enjk zv50}QPXn~DLBQnGob&H8U0ysX-@9|yuARH*iOk?!s>{!jLnkM9Pwt+N7auKztmc0L z#aMs@u`zPb7tJfr!I@ptoCd!n^5!*^C<>l2IF)DSe)r|6JHGVg z|9t5y+-u6(m%c)ezk$li023_uTu!x$FLGGTDrt>UQmR3+5=Y-Y8$~_W;pF1<RvEr0vyVL&^#<2K>%7<3$}g0^oPwriUfNKpw&=~0m3OjLueR7s zqB-F6;I;KU>FX*%B1RKlT(zdHWd*r-x{xI{gvF&Vd9Tn|KR%eJ@4toA<#vjDNm^fP z-ey$^hzgE2!lW{p#4wxN+Z^^NQhOnRNU>t_EJ{0K?I!aA*(54;gHuUaCYM*`veXSn z_9GcQqB=0}14nj2WLejcr0IdL`5M}LLYuCUN0!3b8?ow0&#mu~@s zv!-KR$3&zV_?GC-mh&pFXc$?up#7Y!iSvLzyKsDt{6yb5;~ zkFP-Ir{xbb)4slo$aB=u_hMl}1;3u6_0wqromfQd$G(XH#*PYb7_d-z)`?&lz+W5Y zd&Wa|;&=GO<7A+2k{LO)3>I_yLgPI=*)!h5g{B7Jr2MiBcf(!sQ*=Cnjl_QIBlVYN zTA8{+b!iC>=z5ik=|qnKvuiF7CNQln^*JUDNxlew$zcvuJYgmx0jX{vW3C3#?oiUC zxVWgKNM+0@K~u@>DJ7GA&FeCItr|WW0=@(|XE0#rTz23vWg3JC=ORD+ew+XNbGz1e z1#_V~E~-_z15u0oh}&qlLP5`~ry_PYr*RwMCB3LqO~}VQZr*EU-_&tx`30+mw;Ets zJa5vzy1u)+E|d+OKAvQ8JgKW;IT|y?W9B{0fyG3FQ%|m>84znKtIIlS?3A$kv`#>i z>1p=1GuaBrvlNY!O^IquEx{Bh@~Y-GoF8j-n{B|Rmw(~tmZ)vBPB7g7E?=c+&{)k@ zqgihe`z?ITX&BVcYe;i_3Wt>JK59r!pzOa*wSqZP$@3Z>Mi9tt;n z=5_h2SGhwz79tOMYs{Bv)aJYxIHIW!rfNM7%|ctX1ODWd7C#sfuKF2h)BO__ErEv| z8m}xntIT<|djCOn)|+sMqPmxuFJ;fX3cYyhPImob z`ElAdK26GEqjKrvZR`I9^rHyy!P`E%n)~V0HSDhG_}D8b2ad=X7(21@LdYi>!cZxz zg_uK}n@A{!o-)xEr^kp@Ge6Hol7fDst{7}~fl2_2(&8l+V@Y8#qMLf$F1wP>LcRo% zrRc82dZ8q?h9bC$Rje zmR7e2G_QykFa?qf5RAZc!n*k~Z*gB|dvlZ5qfs$yVJ!uK2yjl32w8=*lOj#9Q)Ud6`9uZ(%^7DCSxX5!a`dfFjsSPR{O+fgFE^V7H94M_ zSjlKCtKXMAtH!RXUEi78yJO36m))o~)z@fMYBLL}h)_{7^6RCQUT>&zNo|u(^xA+c zi#IfYVDK2Ya`Gq-e34uiOni#naL?-p9*}=`JGi}JjooSS8UkV{<#)JMp04Zru0MC9 z->f#q8wYDMXKY$(<9VS?D{5*E?}+yqyVKWR(y#`gyUM$4p})Kqq?Jvbo-+!jhbu~g z15onBLtwkDSnm&zdN&daKVN9VBx<0nX_G3DK-#4!QvyzBp*pqhRLdYIdl_$i9VKhT z=x@Oqm7=*s3gMC=oFv1I&A>*bFhJXl-@oMG`1rv~zJKFE&_h;o=W7zNOvYlBUy=Vf z3O_mcwXYq7pU5Fln<6e(#H0p!j{G;^NQ->#R0p2%r;Oke6b-NT+)h*J}NR#ZQH4Xcu#Id)}C zC2*=9($)U(_OE_6w6LQtp=MZB&qsgx;|7iqHC@GM#=mt5@gKW{`Tt%D%m1|$|EB^d znD`nRe5?^PlNiND#FCn*B5F}RiFpx|jHHq#85O6RR!GETWksBUxM>s*f)V#kH3DnxQ3e2Y^~Pz^W+v zCP*CcsuORiM6ZgwU(l%8S3xaQ6KVG&Em3rML8D*c>2z><&1lS}BO^Ar7q#0Z?hZ8q z!xJN@qaN%_w7gc&`E&xYX)D`mEKtg7x~xXt>=51lBpc4x4RnO8CRMb)cFb4BmG+S` zb7Ezsh0{tBt7%)oFXbhJ-5Aw+f-$bl$q5>_OEBBG@({}f^r0ZD67Z2FkqwciuI6~Z znzdMYo-1qTYHB6J@>Q!{ZjWR$_%v}*3&dvZZcIp3*`dROT^h~8(l(<;!^-2lj$DS^ zk(G#gE9%&hgvVEMgC!O}%}1za^olmjAX?QJBS?rkD$dqLF|`7EH5!dxqgN8%R7Ltv z`acR(D?RZZ8=DIM3Lb{_Xgh<%UU^~yUICB%%hSh0Cwf3cU?oI0rE_W$&Z#jfh3EHF zl*uSge4|O^)KOA)hn=Qs&B+@4+q}>#-hcmv_urp4L~X*YFT8&m7k#`Cr9PLzS(Nak zMut&Uo)zf};hCon!=o?+kIIAcF?kRkpfl!G#+QB^;waKEKwTQfJ&`a4IzgFMsupvy&E^|*}dWL z#=~Q4Mpi6d)ZUg(#Y$`z6DHbCJ4iEmPH~W;>)GP8D;`qEG@*S)@t!O33r;(ovvE*z zwM;Q^gX|z@WfaP_B22q8iS!dV9bp6tlG+04Jg2x_zx#0SStE5TZur`+l@DIBx&GN3 zAO7yzyMOcMa}(*YeE*t_pLyjo8&~&_?Vk9`E7vTF9U875&&3wKJl++|7P7(p{%XG+ z(O~pq$e=%x){7!*@;36}wRipatS`u~wP%7`j@-Fy*VnHfso#9*gDW49-zj9;q4o=B z{rE1|#B-C2F5eNYOy0L{(`Pnr{LH3x_a!T{&+VRk&iRSWTNX5A+J+D1#_QWM4GXqx zHg?v9G9mI;_hnJ7)v7u6=KkoRit@V$qI*kAS;=hBQhn;{#0L2d(L>Nyyr7sctMHdf zL^o2Y1=YkXwpR@iB0OeQiz3ac#w0_P*y}CS(uB@`;*`;X#bi>PVMSz6E#(onr-X2f ze9Td6*cy#-VGbtY+cn_&=q_;8$k+16Ki__$(EfRduHj0?xZgZ|;J_E;>*bdq|1&uY zugq%ewan5&f2rSqDnImSsA@b!v^_>eRQz#q;)a%qLQDADJRyz#_D22^g8fua-hqKtYsB_*K#t?(zZ^;}+w+stE=-yZd&B?1a zZoDcfKU=8ouj$@ckgrMgcW`Jl}~N#?oP^INp8GqV^Y37HCR1RwV`J) z1=lxi?5XarZUSGjJJMS1Wf5(gHivo4<6>=ky=@SeHvOfYQ?Tev)TXy>o^5;Y zvu)e9ZQHhO+qP}nwr$Os|6;19=DVBZ;_0L+sY+L>v(mlR`_`>mA3w2p+nQ4(gyur! z)Kn;y4W5D>b0m|qFH&^ad5xFgH?YZe;zbUCJ|-LdNs(-&va3rkBQ&SizO8BDZBH@LG zzGG}R9EE##Y(q^&emLDT-{Puw4EW;Q9w{SeUe{FWWJ0N>TJd^4+ zHo5B3I9!I%>B4YcC^21Ycib~X$dE~+xPEi^WaaDO5 za&vVGOcTqpam3D9+^($H+Cm>WC%k9sXuNRCy$Bacg5{`uoj|B~O@@L#*)7`~Y6?+F zB-~wBQ(FZS>Z98PInghuh>ayagr7ldrr-^NHy!P(uZu=l``Xor z%OkixUS(BnjD3s>-xjP?DGaeOQj`j8EV3UT_CoHqc@twKr;beSDX!7Vgq5@xGQ2CT zk54O;AOG^}iR07GxvhjC-tKITb3aD<)MzpR_`Bs+%p;R1 zYYb$)qa0pEtGhL(1^g&_lptA1D0-OE$Ve=?aNTRgJl}+R6S+lA(n8dTFU7)hG^$G;H8?rAC`- zgmLBvX=SFO*49$HtGlZ7lu1&FH+gK_OMwZY6mVmjy4snDMRCr{h!HzggA}sdD21K& zG(a|&9grTcXbFkap?H&GSQ*(Xjn2}>LR>XfrDcS{U0KGoUMw2L0)bK;#uOZ_Kr}Od z+85=)euPAlC^LJ=8WD!kTz(h4(@za#8#q6SuiKP`!)ngyOd>xEM~aZmVO_s|82sno za$PQmt09PE4pNcO6jxDp)K%+Jn6Y6;Q8ZD@MHd<9Yyx6|ljShf`-BO_PpR>Wjwlj& zpTIMg;#tYAxj9{2_!fK8{34k-d(A8x`4Pd~TUzsLcnB~X=e6n_EK>vu5RAOPtf1=% z-O|H8#xx$8Ca;tx950SGv>xw+hoih)JiD9D*sX=JVF&6yv0bI~CS;Cb?LqAU?fG`s z7s|}bLr+@q2F(KpXe&j>9&*F3^NoX`W!8wGR%uD+K{M{`R?YeD*j+x=EaOc z1dyMixLtB(N)U==Bzw^}YCEA+$w9V8On2yTPzha`|0PFI)Na=Et(!An6vyNjoKjAf zw_VX-hHK80eM$20!IA>sumn2an*_$fyQY@@P_*}C8iU`yJ09QG?eJkYpZp2q);XOW z^32)kxLN%Gdr#H%JSp(^kIZ@BSWJC-)panJWx#Mw;W*+=sO>;99Y{Cw1=CG%@=%$u z*iva$oFocJ%R>`37&6>STHZfufW!)%qVuQZyj6FF@#a)OaKU=c>@fK*h45Q3w5jNI2> zkJqZ}Rp_;t2_Fw$=X4d=_BFW8ieu6`VOy`=_~{o+(Ld#adI2oY+414&rq?0CcOle* zw**HT#{@9Xs|3YDY$2W?M4wkIFM?Dw+!qwcQ@d&2hzZLPO-zSYhce%i&F;vQMO6VV z6bvVc@zQ^Y|P8yO3B zhUL=Cq-Hn23L#fzfSyp|75)_{ku^A{V;m~RRm+3zn5u-5w)%@I1ggN>Ie`=YuT5oLW}0_%|r zqI9CN9Xp6H_$hl7W%_FlAwln|{$ldw<4?v1 zvukX1cjX85t=soqf8ZcArV77{qS<|gJ8DCP&-6RDp=+&rXHjR#&t83?vbAPjA(_%~ zx-u)jmE)O^(VR9VL=mUHXogFC7VaO2s8M4U3neLpfB`Aq@Z&PzKpx=uESW0;rz3sQ znV$%zw$~Rk%7H(56c} z9pP9*wrqDPUg=-j4Zb&A_zbop&;-IW;lF!Bg}7t8UG1V6wgBLFo;fNmlbW{igx$^^ zQVjI2yv9I?`73nDg-)2`QVDOcV)A4Iq%i#(<8pF;MG_D;rI6xVSH)v!Gkv)j@9)W` zI#_uB6;yIWENeZL=`%y?|D6b~*8e*kOkg3c{(jgX@>!;`(glxtA-OC^(EFITFEOb9 zCm9d_a|i4*3Bx93maRGmHVWK67g{+iou30axeZA|%Rou47MwAPC3Yz8#jIt08t(XH z-iaA+n%H>{P|I|j{@3HGDoCGrKLD{!U~^ zFRKpt5MPx3jM#{&s)!%Fxi5Tx?fe$I_H-q|br!4Xt8IA-Q=0S;|8I1Oer7N;hIIGN zz)5U-Y{;_oSEenK#+XwRu;a;(x92Oq_U=&3_2tNF6)ui?OOx;Y0O++hj(76$eS+QC zWy|KjdCH+C{!B+wZfSuUKfg1W(d2nr#M3?>T9 zR2_vTo1&y<4TUUsnTt8YU^~ZPGU$9YxnrH3ma0Y~%j}4vf)*0zdzsRmPHcNmX;JIyFUAK{QeHjVt;=Z7N!xVd4bQ3TRyX6r zY}bI>io3$Qn?zTK-a93hP|u4jXqR=h997N0@-U;yF`+LsmYnFvii;4nOnJHT=jNC= z$x4cPkpShKnPy2Gd(pO*mO_;sg-v-wGF}*+uKCoX-vg_g2DO%^a#O&cOe)v8(+wRn zVdRL1cfuHC$?PiO)Q2u&gKRkO!p0J}CdU%DtT0(Vur@Q&=XyldLI>Q8$A=~BD)WnN zcgoRdhX$hL3qRYaFF z?f?a2!lIOrrj_Hi4arxNMOR0x>k=>Ph4{SA_mMlBwy!;I_fr!OgEOPJj<`BMOH)v} z9M=F^>`ohiZ49)oT>VZcP-2rOPWWY@^1^ITc@o|IX=0D{2=;)!;!C*@#FXS4`Im+X zYL=H_583_fLFSC;oQGX|N%OBfiq1PRh3}xDxGBG#4XqB>!-j^Bn1dmq@UYKWt>5H9 zcs{jN2J*(EYiq-n~WmLgrw@sg*-D4(KkGB<4P$KmtSJqcSG`HreOE%>vUM{w;p8&f~o zrxU&1N2R$uzUGDh$~e-A;108@Q_^Z>vWXvtGKSL&|57LUy>pZftg=@Gp>oPdZ*V{p zLJD3@=`&}B{~-=fF_qhy9M=6YgKR|#ISxgCxv|xe-$r;6?|H~+an?3nTD>bzmHoQw z?PYdGJ=ceyg#S%XmimbpxVy=zj?HQ$&^?}On9`bQz+Q}CiO+6oGiak3Xl>wXjp28Y ziANn#=G$i(H^5Y>DQ?flJtdJK+|OHO_LUjHC-dz1ydyl?0HXTow| zKjVEWvNBxdi17?G_A8Ka>Tg{-j7wQE%ta`S&EL(VgpwWj)gS@4zwag9N!;(^KlD4( zLg`Qntmy&^BD&biPv=I&E;27Lwjmuh-+5l%eSo)PSd_mI+j;4 z_LW3{6s2AI6D%cN%PYl%EA-J!EWomd3ix8mhCzj!%kn5(O1GU(}LKxz_>TLC(9HjTJOuW1)l&v)`;W1(!_}eL{rRjVQFK-L-LJC$m zEXE&e2aa~I?&{2=O}wMSe_LHw%|pb4yk}c z55_zsSvuxh=qpcEtXzIaAOCzf2s#s^ghcQydgux$Bds-dc-nvFPc#GA2QtffpLU4e z?7WHmBB>S<)HRW8vC=hl5ypm~mcNFQ|H?2T1_940(yC04{H(vb!Jru|Po@8UvO~mk1BbuWZqGc-?%wFO zBS(8ay0{iAct>`Cb%1YdKG2k(pdbdLG9wn~wjsnYWDfGL@`-2rJxI6ey|I2&B%dVl z9T7*Ju_8CKr%b1(n+I(w7CPtDHm(UJlXoDIJnxG{>sDv0VOZ3iEfLhTdc5OSlfH#d z=N*8iEPgmuQ-%soJBvCidVi+UZ1%$ZaPFXyO&WVyT)1=FQTC(7dH|#4*4b=VJhtVn z9=K;N_k~A@_!UyIMjf}-c_gb0MixXIm-dWaHg#=K*Bd`zO`bg;Sci*f$&60tPC)Yw zeS@4N%mO4vphQUrXG9i^$IQ+mg$WN51WmSXnlykm;U&`apOkkwrirvK3Z7b?lAg*Ameuexo(OwF3IFz3R94k;cnTN{eYw$UwJ@sl zr%2^_173Ii$}m6 z!y7m^SV?(7@f!bl?$h#`{}_Kxq!La2dwykMNFGZ<$rMId$fDUz5Y~(Hw@F#i= zXQ)US^2exg7`0|be;A_&vkpYhrQ@7A@{GJ@nBGcP=mcisrSeP6sJJ72Ssg2J z(UNdm;_tV|V2qj!Y`9R5WRl0?LtO;$Oxhae5v-VEP353Fmsa~2UxvSoFm-&9E}b4z zsEv17n?tTVyBM^tgXBaBgQ$IRu0vmg$5;NcssmVdLyJEvW*CG4Y{(>gAud+7j4r%U`7E0uN_LZ#)FfQ!>hVgyh@KFyrcwYN6UVUGf?*{-5#lLgy2`Q>iFYEm*)-jtH@D(-Qg)s_PyxaiEOTBQCWqF-c81OCN} zw$W~TAgDMaOT1r|%vJu`{ZdJL&{H-hA%+~T66!>>#zmlWhLFL8(|Q$VOzv%HGa4Xe zAB=uqJ)6JY4tr>LRT|P>aOe^018rM$X!~QRsEE(!RbypMZ_YPv)t4EFN<(sJE{Ds@ z*;sy~>i5Zd`S1Hzh2{PZmQ13wN=eXDG>^%j^m6YavL!!qCrq_}$-?17=1XfAksCom zLsdl?_|=-kuwJB1afWUNzS5${QI_I^t7YPns+G)zQ6kmqTfJ`U3&VrogAhJD8MT!( z(jZ@d8iYmwIZ=(34jjdJpwgR!%R<6X$U5k0i^PM1V>FktJL+rf$SQPZ?=$!ZU+0a?pn&??vMsP~fbwJ0sv8#m$hgT9tRKzDLP znjFGp+_~M+e+qoeNs%U{?Qj1@7KM7R`+HJxsmleWbBNTu>L?9E0q7aeCDaGnRhA|mM2j#zl@fdsrrzq|B0#}cNpn7O0ic?=3fxpMgu|9J{RJ9#W z=(ZA)X8j!EQYL);Wtplh**b8k^Plsnju`hH*!y#OJ+E=qoMlO!Wvyt`_EmJ+LFho|8mR~6}ucOVu(3dsqUTwy-oR1%zu%=qnZS03-$KvWYB ze=KL5xx8;DcaFE5IW)f>Rk|!E*m7d;s+Bo(xg^|IxUIsyKO(LED8D-*iT?13uW z(oU@YvooaG1<`GPhkA?fdiI!`RJ6mkqUNG}wLJRmSN!#OAb*7!j*~=@umg(7O`lde zLJICaFSb@?FwEgDkw<)v@t=B!C6uB^SRy!*TQ>x=g(@GxL5D2z7{5Q`i#@rp?)GqsES#_Iq9XrsZF1a}ZG ze0ZvNA`WG7dR_m6!zCcMkHI^t_{7M;3N~NwjGYqXL2Tdw{4b!QmboKu?c|%hRXFR0 zd1!Xh7$$r)2`6Ge3SY~tz|mUlX=<-`p=M68f*L_09b0qd#MdX1j|1@qbc3S|GO7}g zSY{>?X+55q=q^6{y^=DrgG3M>Ds+-Iz3tyBpZ^^y3|FGsf1W0hw8-&syj2|Ot>rTq z3?W5{Oy6?pB_Y)7(2F#YCpNkZzW4$PN~Ok7+nh5Y?)ec`K!Hk)yVsjyI&9g zfhISKbzdAAmFaq~Zxx%J9+7;#@-aZ!uf?IztWI?`M`-6y(;>-MOrb7{TSxQN_pZR) z|0l`+#kP~dj`4S7xZm_9Hq+j{qP2&w6-k&Wl!(;+Ie4|}bBwLCN8iKyR{v5hO?ZP* z_{v-aR$#3Oh_eIxoJP#Uxy>{CMWraPiou{Drk=Q&<3cd+I>!Lb=Fci>p7Svgk5reA zAz>3C@1uCx9>0=i+?>6277q^JWr8y?+Ef?j%{>M(51vgV>=%80Axf8KruJoHdx;B2 zsw%$;hd>aabken(is+h$i4U(28Y-GuhA8+%x0lc-q3|08Dqyw!@yrw50S;F@f!vqS>{8> zd~P@3>jQ^ic~u{(?*t)DmQtA_ z>#Qtv^lpmooWrGH1JD%ndLWrNVg0Pc>M^T?=|dDe@)94pBWxhy8Jju1y?6D9eJid< z?1X);6yr)^Xh#X&M$znan77z7$5S}Q!+qZS(?-*y5cshpUvAfB7nbtteXUO ziuh>_s{C|bSzi~W;P5|BQ~835c>AV7H4~iPR8g98v3NLDS0~SmioP6(lrcDDUB?W_HwwSze3u4A$83J75NR($wo?py)MTc8y22!@pt444H~^P~3+ z`{t#TP@76)#tCnW#q9$|2aS@kCDrw1gYjVki`Jwm>2-Pa&yCT=v~ER8N|Fno;s3-z zbbP%F5HdEmqOM8iwg$qdc=0%#z-mxjaeH;lJIE`yg;&YwX8n`! zv{DD+f=tZb9pfxGs&vM1>Pa2}vzyNxPYTu@bxKX2-uPbn3}Dbtk(!FIPQPtdXy|gJ zXU=CyPvy9zYZd+unRO7-aiFOfeL%zrK5_U^DVina{AR7{A8x;`13$t!KBb~LCe=#3 zKA=1ep*OI%$FfMO00KPzj=B zDzyM|$3ip01C<~!2^giKgGjx+gQAmzxQ7BtBAA8*NpRj)({f-B<{dM~0@B4ud=WIVaAKe)}2-N4wJ3}XBussp2PdKgLvhVyu7hqBv@qjbC(Y`tSL$w&A?blljxp|q zZ7u;pelTiSVZunDWc>U`SCq6gW8LBvKNc8|k+VORflOooxV|5kbq(bdT8P4_(XSH& zlQpxDuhzc62)6`1h3j!h*s*Ts5M1Vut&~RDJ|-W0TrMxY;Pwc9!F~Pxqqs94^Nt`q zo#xK_IPh1h8jjy1LIXCxDN}1^DszUC-O{loW#RkWHITep+id zEvqiyCo`8VsRhgNd*-K`8gL~|{Q*aE6)1xrFPNynbr7VJ?Oc&)sS`}87bDQaYVfyl zg#=^;!pdeUnSuCU=}O-$>iO`m>;{ zRaV_a-2R>^`ILsR9w+A!v@lgYmxMuBt2Z{-?s-P~RzOp6s;^QXdcj47eE2{+K%2jP zuIw|2#xbf+F$XBx1dhS_!CzGih32e%h16^c*%gVwOlfFyjL_|VVEbGruo|9dx*jWR zQRs;|t<2WDJ5Txjg%lj5EsHMBCu~FD4V|$2Rv`yj)PwI4%s)cRdQ8<*)6SsW znMy7mzNpE0&5HC*D{hfj*&IWcmoa#(J82%?K3W9%m9nlKj7URqnqxpbd<+l{-tN@b zAnf8f_z_el1BD^|8CUyle&`6oE_gO3&~P2N^vZ%_x1jP2(yfDaE0$+$x&eKp25t|< zMS||f$&*9#sF!kFT8rJvlF28bit13c<)70k>OvpYwXipx%WU#VEuRQ3yTSF+&5WLi z4$3l)%znS$PAYe7=R?RYFl*LP*Vt>yOd>+6X<`a@L<^=P zhv{PN`xp?KT-1wr)LeS+M`X*!%4%k7Z{4ZUyuQw#C#fGQco3b0;;YN3{>I0dQwsan zuea;gG?LcZ9(hHUA&KjldPA2aBEcTpj)90|tPe1vs83ssF5p?{X+r)RA{0<{Sfv#Fi z;(JtNr15n25{yBJvWr7ALpD(YS0fQPo2@n&cv#qCt<0<>-+UAW3;K`cNrW?VO(r6! zLiLt5CcFURK;Dq02B^d~Bu=n~>qs(V0yBbr$gd#Mwt{jC-Z6p8P}6bd%5h-H<`#6#{1Ed?I5%cp@Z`Puo5jkg*QO9#Q;Hh z->0B{$b8$;^n%i|-Z-LnT=P!{ye14c6?4psVy$4j=51eYfiA5vTM~R;RGxV+#~((* z@Oc4Qg+0c}hqH%ut@jlqu`j`ovdfeKpodwCcWMK{L%T^SM)4_{`i&vaG7v=Y58ZOT zM%v=*8W(+}m(8rd58}NY&)7+7lQN{!{$5b{bAO8<@Iu4WFPm^kZk)KHh!tGGrzH=q@s}& z<#E<`JdL0c%b5=wbgyuaeGdL_!Oy>{2~qHldHaR0?*_~i+(DdC--II0e^pV+p#@D( zG(xxlaBj};J&4dI?nBH1C9s1}iOg6SlYL#6WygJWZyLvX&|vCFQTt!rkDa5V?s`W| zr;2uOSGTjZw|Ok@)&YFiIV#OdS47@Dm9(5uX8TesVX7+%X)%%Oq2Al3KD-LV8DP($ zm0E|@A;}~Z@1>EZ8mj-A=~M8!>=WZh}FZeqmTde}b&By~51sNs_j2+8)Z zCQpK^yH6$&b@Ty#kgVlr_5yvdObv1AFe6AkwFD4%k7rcL*=ioQXXU~kf%yv+P^*X) z>n;~V?WG{lW$R=pukrZCe2(qs1#s!hRYaN{}#Ihu4j>d*<7IUMf za566>nwz6B(JED0X4U7l;u}+5@#QZKIhwuuSdq?G-cAqm-PhNi?%ST9*~exW=RSE} z*L>A-1mY(ZIKwsp(+?*dUi3=a*bb>dD3Y4RR$p{1C%T?a)ZMOa;!rkg&V&AyBhX;G zZrASGUpLm*)#1xTM6oy5dAi?Mg`TI?(R!Sn{XO8y9p?I*zr2ijikeAxTcN&5>_Nck zuR1@g!ik58>A!vXh=)2#_xsH2&wC)%cqU#xk_*yk$cM2?h_)giw5RG9zzE_DB*+}Z zANu;Z1{?d^2_PswaG}}7CWBWrMSh(4$MupFJ`9h*haa(VK|bHvw|8zAZ=!hnSkaTW zz5il?-=D3nQF9bz@AP*xDe6;!_;c!b>FhxaMSrg674FLw*tAI+0L zI~|XryfecUv#4n;={*s#NIz*?eN=4w|nLhvUo3 zDP@jcNS@ofs?zD{cLpQLu2Fxb06p-kj<&Kc#vho4 zzqUNCRWm2Mt{n^EW58Gd)e8aD90>5+AykHs_d+EQMt9%DDuo!4%yPVNKUPfie4sUf z?R|QE8X&V~;hx<^;QIy=1F`c(`58ci8wvR7fl>p)1_wC!kH(cT^1%Z|DFHe|d)b;Q z8di{ExN_1^_KK_7nkFb)F@+&9(+|6)2uVheG+b#C)c1&#PBP=m`{mmeff}Ifwmytg zuEm8V7o-uN5Kv`v(Pv{{Ce(v4N;eTyPJ-_bCGghjhhNa!Rxu;HekbGFs+To1Fvrwe zIA_#_1p?0d$Umix8pTHAD|HA(6Mw6yt7rlBaFQcNY;;Gg-b}Zap;^QnK+97>*R4lG z2~Xd)T;CgNzDfgrq##vq{i5d9uAMW6|CxldY*cI^{{ghfL3@AlNzyW*sHps_94COn zBTGslTFhE8E}$>yoUI108tr+J*x1FlV?vKGd@l4CD8L76RiE&5Twqd!m(AHo^nU#; zw3LUhGuo4sF)#adb3z6JBF@j2p-lRAYf!~i$@(7~nKd;aFTVmh}y1XfS)jj2wyg@8pVLY-l z$QpUQcu;c#-ri0iGd+ayJ**AYlk3{1=U?wGe?y3&QjBjfMY<702_10q@r4q?axujl z_B3Qf6P7y9IRH=4^`9Uiz+Kfq)ESjSd(z+HFk zcV-JwPhak$LPy=ALFmy+V{T9~ zA+FRd%nU7FxEwjyZHb0sIBi%-C05xuJQ_r>t9puGfZxD2MSAJ!z*?GxXOApKgtJ-1 z{|BkNDjYNZSZz>^2yRn2x^*&;Gk4wpZ&^*a(1Zn6s#-OHrOsTIDY~8rWB9Vk29XH` zb^_uzjV0BFS;Kk^wmv)uCl;Ai3+GMU`dy^rroK5L{7k(m-8F2oWNE4x*R|qZ*FGEq z3m_SIp&*bH;1PMFiC+OiL0N$<(I$re97-_MsC9jl!rEO2yE}1qaGI#u))UHghgntScYBK7iY~9@Hp(2HV z0Bg~=tmEB?aU;P7{O!oko;}YUczs8}J(qZgQTxKG1K}7legj_V@q)NHcbLk2ng_0@yo`(V^%$B8z5ENH77qU!+xBhuyptIOo zuWO`MP=tO##cpmStrA0KfvQ)r2MdRJ^o^@rRr!}W;nYED2Oi>PUoQf@GKtrXg%Qsq z=Xq+R9_|?BjSRBIHy({nu^>0%+K!~EhwiM<^0~PiSMfyI71^jW=}s%UL1w2|qk%rA z_&rwkG{SDYqO2cSHsb1Tcsp__kp30z8boTNGLOfuiM+s+b3Q+@Y^~Noj(4XJ`4m7% zuE0s%Wpk^lXO9*;o$zL;J$$j~1{S_3nE$A|M^7C;ZzVmSHg6b zOCWdG56a&(qHY4Y6-jslL_fdDyW*mLPd?yGBM4Wjc~}ggy;^&HCD7K~^WKljYTaIh zJ-eRiWG}3R;fmOruHmD(n5l?TdcD!&%x4y8DV354=l#TEuttu9e89Wx$zyrlE zz^>qjVHyksvfO=qYy)e5jGn9uvN7l3Y%EM%gxVfC1$8R$H+lR7X|Arg+weF%S+1(6 zH9-lKz=y*!Ox$jcD1`#}n=Bop5H-80xGil=Au9y2OAXwqdqL#(Dpj>dwF`d&D9m!7aG^|t~niV)A?OCCMxTb#$#SBn-JEd;n9L4X#-?C83z3W zYB@)GWR#5n|3Dc8<6mB63n5@GvrHX&c7r>eqxi=~wwRai|-EA{U(XiqW1 z^?335ie6u;?6fENH7*&m{aDjgq2Em9rOkSh|(uN#jr zn1i*hVg0H(S0j9N`S#+i^9^3qO)O@z1Rt|Gp!K{_Yel`AEDhE5)5~r7HXhEF?M#8{H1vWzqfox{1A+yAKT!tq3)nzhooz6m&6xGDcv!CauofYfz03}m zvhSNx(OHZwtg+4~PfaAs_RsZ{znU_W2I?VEDcou<=GV)$aQqZ}Z>*x=ZbzXRB}yP` zBMbUz!P_N0oS81+IlfTiv=!a+tcOR#ydIq~<&?rPS?Nr^FVjl<*uE6WkoVMW=^xep zYVq0_0t`)M>WQ|+fFT!-W~wD0|2O=B7nD(Hu|2;5X2}}}00{CRqx#fCi3sR}J~jSc zn#>p*u+a=K$QpYwJ81$6NO8cl`JW)SX_9;9YVygYbBDv~(HI)WT;q5zaTsdK6UBS4r*k5(Q zjm@(q3a6C0%l^)*r3IM0?4>ty_2&_`y6$e93Dz7R_gNBxk0q5`4cB)Sk~yFE^M$|A z0x!Qf0001PS%!K>dU^l`KI*XPZa$f{Fb~vNeuOaS?Y=bu^S{5}wkGRC1~5ksbaehg zfb{P$>i_2&`k&pQxWR_~-`?L}H5PgRVL1S3fYyBQ*njt2@5}240HMah{{!{0Uu8l* z4nbUu5yYSM`}=39zhDwW2XG%XOh81E?igS>6)0$Ij{$*!F3Y$NE(jyYzvKWoa_()l zzX%m!lD^8+4t#nk0%89&3!1a&_mvnUi;}rk?^`%jP)&i6Ti52OL_yHox3lUY4%Pg4cpdR_nN%2oi z^h6WVVTyeL2|&gSnfd?x@v-6KK>m9GHH7EKh9JCck(9<~4+}s)OR)5>zy59H|FhQs zvH{Kk!2me{)d5`qvj95*Cjhqr?*M;+bbwref`N*F_JK`+!+^&@AVD}l9pXv7Z0VCF67Nkq$GJbVFsLwslaGXhQmFM=+DLqZ@zT0#}V#3Fx0qC`4G*+lb1uf&nWqr|(!za)Gl z6aE>vL&!MD49LRC+Q`nx5y~0KYbc;7NGX^oG%0*2Iw=V#B`7^8Gbl?aN2xHVbg43^ zx~OKT{-|-NHK|jod#MkoUuno`RA`!LHfdgHacRlug6MMThUhlwCFp(WTNz**BAB|F_Lv@+NtxxD&6)j}|25Yzk2AlqptdNmxU-_P^0Vr& zCbf>R-myWmv9NiwwX&_Tv#<}de{c|SjB{LZ%5sKqR&s80K5~I^VR5l@iE!m`4RL*Q zQ*+yLSNkWLdE}wy(c{VF>EgNJCE(@eb>vOy9p?SwGvzDco8tTA7vQ(xALPFjfD|AS z&=#l>gcKwe)DR36{1d_z(h>?2x)(MSP8aSFo)!TXVE_OK0077c2oC`FKkpn6fE0ih zfaAaRHb~z8KI4`Z9YY@h#E&5Cd&yR(w`XFolpZi8$EcTQWkveO9niX{KRX0t)bP)Z z@(Z@7KlkL%O?978U4Gf?=Woql07I{Sd|bgC3ivp~Vy+<|*W;*kykkUCunG1NlkuYQ z9XCelT0;1=Tq^kb(NKqxsn!PwwB8B!k`o*_^ry2udm>M4#5uV^?T?w=EZ&e13(-fR z&QY>p&i5Se%!bt^%`A-iGI@bD)+*D+-)$&Ml&Mjq3RLirlMdMH_4N*v&iYtRIhD(T zzZT_bUiR0((=5XU*6*@k;enQ%c$icQ$%F>F* z^sJ9`w2$<>&~^CG^>mSSJi22A;#)4$Ljv5>fy=i!H`IV6d3HFB&f`} zdx=#O7F9EtRpNq@qO*NtrD~C~j~G0Y8&!j+YN^j^xv*<-(Q9eaYe~~@T)KLWEqanI z2a#6OscRwD>oK&A+?;hpob`;Icc?DLtS+YTFGjR4CU`H#yf3Gf*nO*Pae-`UwT=*> z53q2DnO>2D>;XjV5rym_wvRYHldo?)ynCV8llIuNv2XNbc7(k9#4;x+GRLJ^Bj;KD z>0eQ~j%cQj&_3hrS(ENrv!GgIwQtPm_VlTC6utYcS|i6={mELx%UXlYTBFZjF<5Q! znQz>zj?k?RSgnrWt`Fch2R1kRIyZ+txO@D#2l}}C@;_sSTr3k7x@o-B2xu_S!NG%s`tx)o)M#k% zl0hVc3i{`DQfe&J=qd12L8yZg`p0z=X%OQ_-maVGQlvk<^U~W>)7t|y+Y{B>Bi7q9 z*W3L#yc{pHS#sqJ5V9{!d8sF4R6zeg7vkdRJHb@X(#d%pH<`kns~{lxqKY%GSq0$fPb5&Ta)bGOrPM@Vi! zL}aLY1U8b54TB9c4vK}Lmd(OIXU1;^hvGp73=B-h5SiX@TnJ?-sy74{8WR>hMe!GF vnXgM58x|&t8V+Zi01=-gp06(6U(^!(@OK54x*IF~j}`# li { + position: relative; +} +.fa-li { + position: absolute; + left: -2.14285714em; + width: 2.14285714em; + top: 0.14285714em; + text-align: center; +} +.fa-li.fa-lg { + left: -1.85714286em; +} +.fa-border { + padding: .2em .25em .15em; + border: solid 0.08em #eeeeee; + border-radius: .1em; +} +.fa-pull-left { + float: left; +} +.fa-pull-right { + float: right; +} +.fa.fa-pull-left { + margin-right: .3em; +} +.fa.fa-pull-right { + margin-left: .3em; +} +/* Deprecated as of 4.4.0 */ +.pull-right { + float: right; +} +.pull-left { + float: left; +} +.fa.pull-left { + margin-right: .3em; +} +.fa.pull-right { + margin-left: .3em; +} +.fa-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; +} +.fa-pulse { + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); +} +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +.fa-rotate-90 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); +} +.fa-rotate-180 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); + -webkit-transform: rotate(180deg); + -ms-transform: rotate(180deg); + transform: rotate(180deg); +} +.fa-rotate-270 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); + -webkit-transform: rotate(270deg); + -ms-transform: rotate(270deg); + transform: rotate(270deg); +} +.fa-flip-horizontal { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1); + -webkit-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + transform: scale(-1, 1); +} +.fa-flip-vertical { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1); + -webkit-transform: scale(1, -1); + -ms-transform: scale(1, -1); + transform: scale(1, -1); +} +:root .fa-rotate-90, +:root .fa-rotate-180, +:root .fa-rotate-270, +:root .fa-flip-horizontal, +:root .fa-flip-vertical { + filter: none; +} +.fa-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} +.fa-stack-1x, +.fa-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} +.fa-stack-1x { + line-height: inherit; +} +.fa-stack-2x { + font-size: 2em; +} +.fa-inverse { + color: #ffffff; +} +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ +.fa-glass:before { + content: "\f000"; +} +.fa-music:before { + content: "\f001"; +} +.fa-search:before { + content: "\f002"; +} +.fa-envelope-o:before { + content: "\f003"; +} +.fa-heart:before { + content: "\f004"; +} +.fa-star:before { + content: "\f005"; +} +.fa-star-o:before { + content: "\f006"; +} +.fa-user:before { + content: "\f007"; +} +.fa-film:before { + content: "\f008"; +} +.fa-th-large:before { + content: "\f009"; +} +.fa-th:before { + content: "\f00a"; +} +.fa-th-list:before { + content: "\f00b"; +} +.fa-check:before { + content: "\f00c"; +} +.fa-remove:before, +.fa-close:before, +.fa-times:before { + content: "\f00d"; +} +.fa-search-plus:before { + content: "\f00e"; +} +.fa-search-minus:before { + content: "\f010"; +} +.fa-power-off:before { + content: "\f011"; +} +.fa-signal:before { + content: "\f012"; +} +.fa-gear:before, +.fa-cog:before { + content: "\f013"; +} +.fa-trash-o:before { + content: "\f014"; +} +.fa-home:before { + content: "\f015"; +} +.fa-file-o:before { + content: "\f016"; +} +.fa-clock-o:before { + content: "\f017"; +} +.fa-road:before { + content: "\f018"; +} +.fa-download:before { + content: "\f019"; +} +.fa-arrow-circle-o-down:before { + content: "\f01a"; +} +.fa-arrow-circle-o-up:before { + content: "\f01b"; +} +.fa-inbox:before { + content: "\f01c"; +} +.fa-play-circle-o:before { + content: "\f01d"; +} +.fa-rotate-right:before, +.fa-repeat:before { + content: "\f01e"; +} +.fa-refresh:before { + content: "\f021"; +} +.fa-list-alt:before { + content: "\f022"; +} +.fa-lock:before { + content: "\f023"; +} +.fa-flag:before { + content: "\f024"; +} +.fa-headphones:before { + content: "\f025"; +} +.fa-volume-off:before { + content: "\f026"; +} +.fa-volume-down:before { + content: "\f027"; +} +.fa-volume-up:before { + content: "\f028"; +} +.fa-qrcode:before { + content: "\f029"; +} +.fa-barcode:before { + content: "\f02a"; +} +.fa-tag:before { + content: "\f02b"; +} +.fa-tags:before { + content: "\f02c"; +} +.fa-book:before { + content: "\f02d"; +} +.fa-bookmark:before { + content: "\f02e"; +} +.fa-print:before { + content: "\f02f"; +} +.fa-camera:before { + content: "\f030"; +} +.fa-font:before { + content: "\f031"; +} +.fa-bold:before { + content: "\f032"; +} +.fa-italic:before { + content: "\f033"; +} +.fa-text-height:before { + content: "\f034"; +} +.fa-text-width:before { + content: "\f035"; +} +.fa-align-left:before { + content: "\f036"; +} +.fa-align-center:before { + content: "\f037"; +} +.fa-align-right:before { + content: "\f038"; +} +.fa-align-justify:before { + content: "\f039"; +} +.fa-list:before { + content: "\f03a"; +} +.fa-dedent:before, +.fa-outdent:before { + content: "\f03b"; +} +.fa-indent:before { + content: "\f03c"; +} +.fa-video-camera:before { + content: "\f03d"; +} +.fa-photo:before, +.fa-image:before, +.fa-picture-o:before { + content: "\f03e"; +} +.fa-pencil:before { + content: "\f040"; +} +.fa-map-marker:before { + content: "\f041"; +} +.fa-adjust:before { + content: "\f042"; +} +.fa-tint:before { + content: "\f043"; +} +.fa-edit:before, +.fa-pencil-square-o:before { + content: "\f044"; +} +.fa-share-square-o:before { + content: "\f045"; +} +.fa-check-square-o:before { + content: "\f046"; +} +.fa-arrows:before { + content: "\f047"; +} +.fa-step-backward:before { + content: "\f048"; +} +.fa-fast-backward:before { + content: "\f049"; +} +.fa-backward:before { + content: "\f04a"; +} +.fa-play:before { + content: "\f04b"; +} +.fa-pause:before { + content: "\f04c"; +} +.fa-stop:before { + content: "\f04d"; +} +.fa-forward:before { + content: "\f04e"; +} +.fa-fast-forward:before { + content: "\f050"; +} +.fa-step-forward:before { + content: "\f051"; +} +.fa-eject:before { + content: "\f052"; +} +.fa-chevron-left:before { + content: "\f053"; +} +.fa-chevron-right:before { + content: "\f054"; +} +.fa-plus-circle:before { + content: "\f055"; +} +.fa-minus-circle:before { + content: "\f056"; +} +.fa-times-circle:before { + content: "\f057"; +} +.fa-check-circle:before { + content: "\f058"; +} +.fa-question-circle:before { + content: "\f059"; +} +.fa-info-circle:before { + content: "\f05a"; +} +.fa-crosshairs:before { + content: "\f05b"; +} +.fa-times-circle-o:before { + content: "\f05c"; +} +.fa-check-circle-o:before { + content: "\f05d"; +} +.fa-ban:before { + content: "\f05e"; +} +.fa-arrow-left:before { + content: "\f060"; +} +.fa-arrow-right:before { + content: "\f061"; +} +.fa-arrow-up:before { + content: "\f062"; +} +.fa-arrow-down:before { + content: "\f063"; +} +.fa-mail-forward:before, +.fa-share:before { + content: "\f064"; +} +.fa-expand:before { + content: "\f065"; +} +.fa-compress:before { + content: "\f066"; +} +.fa-plus:before { + content: "\f067"; +} +.fa-minus:before { + content: "\f068"; +} +.fa-asterisk:before { + content: "\f069"; +} +.fa-exclamation-circle:before { + content: "\f06a"; +} +.fa-gift:before { + content: "\f06b"; +} +.fa-leaf:before { + content: "\f06c"; +} +.fa-fire:before { + content: "\f06d"; +} +.fa-eye:before { + content: "\f06e"; +} +.fa-eye-slash:before { + content: "\f070"; +} +.fa-warning:before, +.fa-exclamation-triangle:before { + content: "\f071"; +} +.fa-plane:before { + content: "\f072"; +} +.fa-calendar:before { + content: "\f073"; +} +.fa-random:before { + content: "\f074"; +} +.fa-comment:before { + content: "\f075"; +} +.fa-magnet:before { + content: "\f076"; +} +.fa-chevron-up:before { + content: "\f077"; +} +.fa-chevron-down:before { + content: "\f078"; +} +.fa-retweet:before { + content: "\f079"; +} +.fa-shopping-cart:before { + content: "\f07a"; +} +.fa-folder:before { + content: "\f07b"; +} +.fa-folder-open:before { + content: "\f07c"; +} +.fa-arrows-v:before { + content: "\f07d"; +} +.fa-arrows-h:before { + content: "\f07e"; +} +.fa-bar-chart-o:before, +.fa-bar-chart:before { + content: "\f080"; +} +.fa-twitter-square:before { + content: "\f081"; +} +.fa-facebook-square:before { + content: "\f082"; +} +.fa-camera-retro:before { + content: "\f083"; +} +.fa-key:before { + content: "\f084"; +} +.fa-gears:before, +.fa-cogs:before { + content: "\f085"; +} +.fa-comments:before { + content: "\f086"; +} +.fa-thumbs-o-up:before { + content: "\f087"; +} +.fa-thumbs-o-down:before { + content: "\f088"; +} +.fa-star-half:before { + content: "\f089"; +} +.fa-heart-o:before { + content: "\f08a"; +} +.fa-sign-out:before { + content: "\f08b"; +} +.fa-linkedin-square:before { + content: "\f08c"; +} +.fa-thumb-tack:before { + content: "\f08d"; +} +.fa-external-link:before { + content: "\f08e"; +} +.fa-sign-in:before { + content: "\f090"; +} +.fa-trophy:before { + content: "\f091"; +} +.fa-github-square:before { + content: "\f092"; +} +.fa-upload:before { + content: "\f093"; +} +.fa-lemon-o:before { + content: "\f094"; +} +.fa-phone:before { + content: "\f095"; +} +.fa-square-o:before { + content: "\f096"; +} +.fa-bookmark-o:before { + content: "\f097"; +} +.fa-phone-square:before { + content: "\f098"; +} +.fa-twitter:before { + content: "\f099"; +} +.fa-facebook-f:before, +.fa-facebook:before { + content: "\f09a"; +} +.fa-github:before { + content: "\f09b"; +} +.fa-unlock:before { + content: "\f09c"; +} +.fa-credit-card:before { + content: "\f09d"; +} +.fa-feed:before, +.fa-rss:before { + content: "\f09e"; +} +.fa-hdd-o:before { + content: "\f0a0"; +} +.fa-bullhorn:before { + content: "\f0a1"; +} +.fa-bell:before { + content: "\f0f3"; +} +.fa-certificate:before { + content: "\f0a3"; +} +.fa-hand-o-right:before { + content: "\f0a4"; +} +.fa-hand-o-left:before { + content: "\f0a5"; +} +.fa-hand-o-up:before { + content: "\f0a6"; +} +.fa-hand-o-down:before { + content: "\f0a7"; +} +.fa-arrow-circle-left:before { + content: "\f0a8"; +} +.fa-arrow-circle-right:before { + content: "\f0a9"; +} +.fa-arrow-circle-up:before { + content: "\f0aa"; +} +.fa-arrow-circle-down:before { + content: "\f0ab"; +} +.fa-globe:before { + content: "\f0ac"; +} +.fa-wrench:before { + content: "\f0ad"; +} +.fa-tasks:before { + content: "\f0ae"; +} +.fa-filter:before { + content: "\f0b0"; +} +.fa-briefcase:before { + content: "\f0b1"; +} +.fa-arrows-alt:before { + content: "\f0b2"; +} +.fa-group:before, +.fa-users:before { + content: "\f0c0"; +} +.fa-chain:before, +.fa-link:before { + content: "\f0c1"; +} +.fa-cloud:before { + content: "\f0c2"; +} +.fa-flask:before { + content: "\f0c3"; +} +.fa-cut:before, +.fa-scissors:before { + content: "\f0c4"; +} +.fa-copy:before, +.fa-files-o:before { + content: "\f0c5"; +} +.fa-paperclip:before { + content: "\f0c6"; +} +.fa-save:before, +.fa-floppy-o:before { + content: "\f0c7"; +} +.fa-square:before { + content: "\f0c8"; +} +.fa-navicon:before, +.fa-reorder:before, +.fa-bars:before { + content: "\f0c9"; +} +.fa-list-ul:before { + content: "\f0ca"; +} +.fa-list-ol:before { + content: "\f0cb"; +} +.fa-strikethrough:before { + content: "\f0cc"; +} +.fa-underline:before { + content: "\f0cd"; +} +.fa-table:before { + content: "\f0ce"; +} +.fa-magic:before { + content: "\f0d0"; +} +.fa-truck:before { + content: "\f0d1"; +} +.fa-pinterest:before { + content: "\f0d2"; +} +.fa-pinterest-square:before { + content: "\f0d3"; +} +.fa-google-plus-square:before { + content: "\f0d4"; +} +.fa-google-plus:before { + content: "\f0d5"; +} +.fa-money:before { + content: "\f0d6"; +} +.fa-caret-down:before { + content: "\f0d7"; +} +.fa-caret-up:before { + content: "\f0d8"; +} +.fa-caret-left:before { + content: "\f0d9"; +} +.fa-caret-right:before { + content: "\f0da"; +} +.fa-columns:before { + content: "\f0db"; +} +.fa-unsorted:before, +.fa-sort:before { + content: "\f0dc"; +} +.fa-sort-down:before, +.fa-sort-desc:before { + content: "\f0dd"; +} +.fa-sort-up:before, +.fa-sort-asc:before { + content: "\f0de"; +} +.fa-envelope:before { + content: "\f0e0"; +} +.fa-linkedin:before { + content: "\f0e1"; +} +.fa-rotate-left:before, +.fa-undo:before { + content: "\f0e2"; +} +.fa-legal:before, +.fa-gavel:before { + content: "\f0e3"; +} +.fa-dashboard:before, +.fa-tachometer:before { + content: "\f0e4"; +} +.fa-comment-o:before { + content: "\f0e5"; +} +.fa-comments-o:before { + content: "\f0e6"; +} +.fa-flash:before, +.fa-bolt:before { + content: "\f0e7"; +} +.fa-sitemap:before { + content: "\f0e8"; +} +.fa-umbrella:before { + content: "\f0e9"; +} +.fa-paste:before, +.fa-clipboard:before { + content: "\f0ea"; +} +.fa-lightbulb-o:before { + content: "\f0eb"; +} +.fa-exchange:before { + content: "\f0ec"; +} +.fa-cloud-download:before { + content: "\f0ed"; +} +.fa-cloud-upload:before { + content: "\f0ee"; +} +.fa-user-md:before { + content: "\f0f0"; +} +.fa-stethoscope:before { + content: "\f0f1"; +} +.fa-suitcase:before { + content: "\f0f2"; +} +.fa-bell-o:before { + content: "\f0a2"; +} +.fa-coffee:before { + content: "\f0f4"; +} +.fa-cutlery:before { + content: "\f0f5"; +} +.fa-file-text-o:before { + content: "\f0f6"; +} +.fa-building-o:before { + content: "\f0f7"; +} +.fa-hospital-o:before { + content: "\f0f8"; +} +.fa-ambulance:before { + content: "\f0f9"; +} +.fa-medkit:before { + content: "\f0fa"; +} +.fa-fighter-jet:before { + content: "\f0fb"; +} +.fa-beer:before { + content: "\f0fc"; +} +.fa-h-square:before { + content: "\f0fd"; +} +.fa-plus-square:before { + content: "\f0fe"; +} +.fa-angle-double-left:before { + content: "\f100"; +} +.fa-angle-double-right:before { + content: "\f101"; +} +.fa-angle-double-up:before { + content: "\f102"; +} +.fa-angle-double-down:before { + content: "\f103"; +} +.fa-angle-left:before { + content: "\f104"; +} +.fa-angle-right:before { + content: "\f105"; +} +.fa-angle-up:before { + content: "\f106"; +} +.fa-angle-down:before { + content: "\f107"; +} +.fa-desktop:before { + content: "\f108"; +} +.fa-laptop:before { + content: "\f109"; +} +.fa-tablet:before { + content: "\f10a"; +} +.fa-mobile-phone:before, +.fa-mobile:before { + content: "\f10b"; +} +.fa-circle-o:before { + content: "\f10c"; +} +.fa-quote-left:before { + content: "\f10d"; +} +.fa-quote-right:before { + content: "\f10e"; +} +.fa-spinner:before { + content: "\f110"; +} +.fa-circle:before { + content: "\f111"; +} +.fa-mail-reply:before, +.fa-reply:before { + content: "\f112"; +} +.fa-github-alt:before { + content: "\f113"; +} +.fa-folder-o:before { + content: "\f114"; +} +.fa-folder-open-o:before { + content: "\f115"; +} +.fa-smile-o:before { + content: "\f118"; +} +.fa-frown-o:before { + content: "\f119"; +} +.fa-meh-o:before { + content: "\f11a"; +} +.fa-gamepad:before { + content: "\f11b"; +} +.fa-keyboard-o:before { + content: "\f11c"; +} +.fa-flag-o:before { + content: "\f11d"; +} +.fa-flag-checkered:before { + content: "\f11e"; +} +.fa-terminal:before { + content: "\f120"; +} +.fa-code:before { + content: "\f121"; +} +.fa-mail-reply-all:before, +.fa-reply-all:before { + content: "\f122"; +} +.fa-star-half-empty:before, +.fa-star-half-full:before, +.fa-star-half-o:before { + content: "\f123"; +} +.fa-location-arrow:before { + content: "\f124"; +} +.fa-crop:before { + content: "\f125"; +} +.fa-code-fork:before { + content: "\f126"; +} +.fa-unlink:before, +.fa-chain-broken:before { + content: "\f127"; +} +.fa-question:before { + content: "\f128"; +} +.fa-info:before { + content: "\f129"; +} +.fa-exclamation:before { + content: "\f12a"; +} +.fa-superscript:before { + content: "\f12b"; +} +.fa-subscript:before { + content: "\f12c"; +} +.fa-eraser:before { + content: "\f12d"; +} +.fa-puzzle-piece:before { + content: "\f12e"; +} +.fa-microphone:before { + content: "\f130"; +} +.fa-microphone-slash:before { + content: "\f131"; +} +.fa-shield:before { + content: "\f132"; +} +.fa-calendar-o:before { + content: "\f133"; +} +.fa-fire-extinguisher:before { + content: "\f134"; +} +.fa-rocket:before { + content: "\f135"; +} +.fa-maxcdn:before { + content: "\f136"; +} +.fa-chevron-circle-left:before { + content: "\f137"; +} +.fa-chevron-circle-right:before { + content: "\f138"; +} +.fa-chevron-circle-up:before { + content: "\f139"; +} +.fa-chevron-circle-down:before { + content: "\f13a"; +} +.fa-html5:before { + content: "\f13b"; +} +.fa-css3:before { + content: "\f13c"; +} +.fa-anchor:before { + content: "\f13d"; +} +.fa-unlock-alt:before { + content: "\f13e"; +} +.fa-bullseye:before { + content: "\f140"; +} +.fa-ellipsis-h:before { + content: "\f141"; +} +.fa-ellipsis-v:before { + content: "\f142"; +} +.fa-rss-square:before { + content: "\f143"; +} +.fa-play-circle:before { + content: "\f144"; +} +.fa-ticket:before { + content: "\f145"; +} +.fa-minus-square:before { + content: "\f146"; +} +.fa-minus-square-o:before { + content: "\f147"; +} +.fa-level-up:before { + content: "\f148"; +} +.fa-level-down:before { + content: "\f149"; +} +.fa-check-square:before { + content: "\f14a"; +} +.fa-pencil-square:before { + content: "\f14b"; +} +.fa-external-link-square:before { + content: "\f14c"; +} +.fa-share-square:before { + content: "\f14d"; +} +.fa-compass:before { + content: "\f14e"; +} +.fa-toggle-down:before, +.fa-caret-square-o-down:before { + content: "\f150"; +} +.fa-toggle-up:before, +.fa-caret-square-o-up:before { + content: "\f151"; +} +.fa-toggle-right:before, +.fa-caret-square-o-right:before { + content: "\f152"; +} +.fa-euro:before, +.fa-eur:before { + content: "\f153"; +} +.fa-gbp:before { + content: "\f154"; +} +.fa-dollar:before, +.fa-usd:before { + content: "\f155"; +} +.fa-rupee:before, +.fa-inr:before { + content: "\f156"; +} +.fa-cny:before, +.fa-rmb:before, +.fa-yen:before, +.fa-jpy:before { + content: "\f157"; +} +.fa-ruble:before, +.fa-rouble:before, +.fa-rub:before { + content: "\f158"; +} +.fa-won:before, +.fa-krw:before { + content: "\f159"; +} +.fa-bitcoin:before, +.fa-btc:before { + content: "\f15a"; +} +.fa-file:before { + content: "\f15b"; +} +.fa-file-text:before { + content: "\f15c"; +} +.fa-sort-alpha-asc:before { + content: "\f15d"; +} +.fa-sort-alpha-desc:before { + content: "\f15e"; +} +.fa-sort-amount-asc:before { + content: "\f160"; +} +.fa-sort-amount-desc:before { + content: "\f161"; +} +.fa-sort-numeric-asc:before { + content: "\f162"; +} +.fa-sort-numeric-desc:before { + content: "\f163"; +} +.fa-thumbs-up:before { + content: "\f164"; +} +.fa-thumbs-down:before { + content: "\f165"; +} +.fa-youtube-square:before { + content: "\f166"; +} +.fa-youtube:before { + content: "\f167"; +} +.fa-xing:before { + content: "\f168"; +} +.fa-xing-square:before { + content: "\f169"; +} +.fa-youtube-play:before { + content: "\f16a"; +} +.fa-dropbox:before { + content: "\f16b"; +} +.fa-stack-overflow:before { + content: "\f16c"; +} +.fa-instagram:before { + content: "\f16d"; +} +.fa-flickr:before { + content: "\f16e"; +} +.fa-adn:before { + content: "\f170"; +} +.fa-bitbucket:before { + content: "\f171"; +} +.fa-bitbucket-square:before { + content: "\f172"; +} +.fa-tumblr:before { + content: "\f173"; +} +.fa-tumblr-square:before { + content: "\f174"; +} +.fa-long-arrow-down:before { + content: "\f175"; +} +.fa-long-arrow-up:before { + content: "\f176"; +} +.fa-long-arrow-left:before { + content: "\f177"; +} +.fa-long-arrow-right:before { + content: "\f178"; +} +.fa-apple:before { + content: "\f179"; +} +.fa-windows:before { + content: "\f17a"; +} +.fa-android:before { + content: "\f17b"; +} +.fa-linux:before { + content: "\f17c"; +} +.fa-dribbble:before { + content: "\f17d"; +} +.fa-skype:before { + content: "\f17e"; +} +.fa-foursquare:before { + content: "\f180"; +} +.fa-trello:before { + content: "\f181"; +} +.fa-female:before { + content: "\f182"; +} +.fa-male:before { + content: "\f183"; +} +.fa-gittip:before, +.fa-gratipay:before { + content: "\f184"; +} +.fa-sun-o:before { + content: "\f185"; +} +.fa-moon-o:before { + content: "\f186"; +} +.fa-archive:before { + content: "\f187"; +} +.fa-bug:before { + content: "\f188"; +} +.fa-vk:before { + content: "\f189"; +} +.fa-weibo:before { + content: "\f18a"; +} +.fa-renren:before { + content: "\f18b"; +} +.fa-pagelines:before { + content: "\f18c"; +} +.fa-stack-exchange:before { + content: "\f18d"; +} +.fa-arrow-circle-o-right:before { + content: "\f18e"; +} +.fa-arrow-circle-o-left:before { + content: "\f190"; +} +.fa-toggle-left:before, +.fa-caret-square-o-left:before { + content: "\f191"; +} +.fa-dot-circle-o:before { + content: "\f192"; +} +.fa-wheelchair:before { + content: "\f193"; +} +.fa-vimeo-square:before { + content: "\f194"; +} +.fa-turkish-lira:before, +.fa-try:before { + content: "\f195"; +} +.fa-plus-square-o:before { + content: "\f196"; +} +.fa-space-shuttle:before { + content: "\f197"; +} +.fa-slack:before { + content: "\f198"; +} +.fa-envelope-square:before { + content: "\f199"; +} +.fa-wordpress:before { + content: "\f19a"; +} +.fa-openid:before { + content: "\f19b"; +} +.fa-institution:before, +.fa-bank:before, +.fa-university:before { + content: "\f19c"; +} +.fa-mortar-board:before, +.fa-graduation-cap:before { + content: "\f19d"; +} +.fa-yahoo:before { + content: "\f19e"; +} +.fa-google:before { + content: "\f1a0"; +} +.fa-reddit:before { + content: "\f1a1"; +} +.fa-reddit-square:before { + content: "\f1a2"; +} +.fa-stumbleupon-circle:before { + content: "\f1a3"; +} +.fa-stumbleupon:before { + content: "\f1a4"; +} +.fa-delicious:before { + content: "\f1a5"; +} +.fa-digg:before { + content: "\f1a6"; +} +.fa-pied-piper:before { + content: "\f1a7"; +} +.fa-pied-piper-alt:before { + content: "\f1a8"; +} +.fa-drupal:before { + content: "\f1a9"; +} +.fa-joomla:before { + content: "\f1aa"; +} +.fa-language:before { + content: "\f1ab"; +} +.fa-fax:before { + content: "\f1ac"; +} +.fa-building:before { + content: "\f1ad"; +} +.fa-child:before { + content: "\f1ae"; +} +.fa-paw:before { + content: "\f1b0"; +} +.fa-spoon:before { + content: "\f1b1"; +} +.fa-cube:before { + content: "\f1b2"; +} +.fa-cubes:before { + content: "\f1b3"; +} +.fa-behance:before { + content: "\f1b4"; +} +.fa-behance-square:before { + content: "\f1b5"; +} +.fa-steam:before { + content: "\f1b6"; +} +.fa-steam-square:before { + content: "\f1b7"; +} +.fa-recycle:before { + content: "\f1b8"; +} +.fa-automobile:before, +.fa-car:before { + content: "\f1b9"; +} +.fa-cab:before, +.fa-taxi:before { + content: "\f1ba"; +} +.fa-tree:before { + content: "\f1bb"; +} +.fa-spotify:before { + content: "\f1bc"; +} +.fa-deviantart:before { + content: "\f1bd"; +} +.fa-soundcloud:before { + content: "\f1be"; +} +.fa-database:before { + content: "\f1c0"; +} +.fa-file-pdf-o:before { + content: "\f1c1"; +} +.fa-file-word-o:before { + content: "\f1c2"; +} +.fa-file-excel-o:before { + content: "\f1c3"; +} +.fa-file-powerpoint-o:before { + content: "\f1c4"; +} +.fa-file-photo-o:before, +.fa-file-picture-o:before, +.fa-file-image-o:before { + content: "\f1c5"; +} +.fa-file-zip-o:before, +.fa-file-archive-o:before { + content: "\f1c6"; +} +.fa-file-sound-o:before, +.fa-file-audio-o:before { + content: "\f1c7"; +} +.fa-file-movie-o:before, +.fa-file-video-o:before { + content: "\f1c8"; +} +.fa-file-code-o:before { + content: "\f1c9"; +} +.fa-vine:before { + content: "\f1ca"; +} +.fa-codepen:before { + content: "\f1cb"; +} +.fa-jsfiddle:before { + content: "\f1cc"; +} +.fa-life-bouy:before, +.fa-life-buoy:before, +.fa-life-saver:before, +.fa-support:before, +.fa-life-ring:before { + content: "\f1cd"; +} +.fa-circle-o-notch:before { + content: "\f1ce"; +} +.fa-ra:before, +.fa-rebel:before { + content: "\f1d0"; +} +.fa-ge:before, +.fa-empire:before { + content: "\f1d1"; +} +.fa-git-square:before { + content: "\f1d2"; +} +.fa-git:before { + content: "\f1d3"; +} +.fa-y-combinator-square:before, +.fa-yc-square:before, +.fa-hacker-news:before { + content: "\f1d4"; +} +.fa-tencent-weibo:before { + content: "\f1d5"; +} +.fa-qq:before { + content: "\f1d6"; +} +.fa-wechat:before, +.fa-weixin:before { + content: "\f1d7"; +} +.fa-send:before, +.fa-paper-plane:before { + content: "\f1d8"; +} +.fa-send-o:before, +.fa-paper-plane-o:before { + content: "\f1d9"; +} +.fa-history:before { + content: "\f1da"; +} +.fa-circle-thin:before { + content: "\f1db"; +} +.fa-header:before { + content: "\f1dc"; +} +.fa-paragraph:before { + content: "\f1dd"; +} +.fa-sliders:before { + content: "\f1de"; +} +.fa-share-alt:before { + content: "\f1e0"; +} +.fa-share-alt-square:before { + content: "\f1e1"; +} +.fa-bomb:before { + content: "\f1e2"; +} +.fa-soccer-ball-o:before, +.fa-futbol-o:before { + content: "\f1e3"; +} +.fa-tty:before { + content: "\f1e4"; +} +.fa-binoculars:before { + content: "\f1e5"; +} +.fa-plug:before { + content: "\f1e6"; +} +.fa-slideshare:before { + content: "\f1e7"; +} +.fa-twitch:before { + content: "\f1e8"; +} +.fa-yelp:before { + content: "\f1e9"; +} +.fa-newspaper-o:before { + content: "\f1ea"; +} +.fa-wifi:before { + content: "\f1eb"; +} +.fa-calculator:before { + content: "\f1ec"; +} +.fa-paypal:before { + content: "\f1ed"; +} +.fa-google-wallet:before { + content: "\f1ee"; +} +.fa-cc-visa:before { + content: "\f1f0"; +} +.fa-cc-mastercard:before { + content: "\f1f1"; +} +.fa-cc-discover:before { + content: "\f1f2"; +} +.fa-cc-amex:before { + content: "\f1f3"; +} +.fa-cc-paypal:before { + content: "\f1f4"; +} +.fa-cc-stripe:before { + content: "\f1f5"; +} +.fa-bell-slash:before { + content: "\f1f6"; +} +.fa-bell-slash-o:before { + content: "\f1f7"; +} +.fa-trash:before { + content: "\f1f8"; +} +.fa-copyright:before { + content: "\f1f9"; +} +.fa-at:before { + content: "\f1fa"; +} +.fa-eyedropper:before { + content: "\f1fb"; +} +.fa-paint-brush:before { + content: "\f1fc"; +} +.fa-birthday-cake:before { + content: "\f1fd"; +} +.fa-area-chart:before { + content: "\f1fe"; +} +.fa-pie-chart:before { + content: "\f200"; +} +.fa-line-chart:before { + content: "\f201"; +} +.fa-lastfm:before { + content: "\f202"; +} +.fa-lastfm-square:before { + content: "\f203"; +} +.fa-toggle-off:before { + content: "\f204"; +} +.fa-toggle-on:before { + content: "\f205"; +} +.fa-bicycle:before { + content: "\f206"; +} +.fa-bus:before { + content: "\f207"; +} +.fa-ioxhost:before { + content: "\f208"; +} +.fa-angellist:before { + content: "\f209"; +} +.fa-cc:before { + content: "\f20a"; +} +.fa-shekel:before, +.fa-sheqel:before, +.fa-ils:before { + content: "\f20b"; +} +.fa-meanpath:before { + content: "\f20c"; +} +.fa-buysellads:before { + content: "\f20d"; +} +.fa-connectdevelop:before { + content: "\f20e"; +} +.fa-dashcube:before { + content: "\f210"; +} +.fa-forumbee:before { + content: "\f211"; +} +.fa-leanpub:before { + content: "\f212"; +} +.fa-sellsy:before { + content: "\f213"; +} +.fa-shirtsinbulk:before { + content: "\f214"; +} +.fa-simplybuilt:before { + content: "\f215"; +} +.fa-skyatlas:before { + content: "\f216"; +} +.fa-cart-plus:before { + content: "\f217"; +} +.fa-cart-arrow-down:before { + content: "\f218"; +} +.fa-diamond:before { + content: "\f219"; +} +.fa-ship:before { + content: "\f21a"; +} +.fa-user-secret:before { + content: "\f21b"; +} +.fa-motorcycle:before { + content: "\f21c"; +} +.fa-street-view:before { + content: "\f21d"; +} +.fa-heartbeat:before { + content: "\f21e"; +} +.fa-venus:before { + content: "\f221"; +} +.fa-mars:before { + content: "\f222"; +} +.fa-mercury:before { + content: "\f223"; +} +.fa-intersex:before, +.fa-transgender:before { + content: "\f224"; +} +.fa-transgender-alt:before { + content: "\f225"; +} +.fa-venus-double:before { + content: "\f226"; +} +.fa-mars-double:before { + content: "\f227"; +} +.fa-venus-mars:before { + content: "\f228"; +} +.fa-mars-stroke:before { + content: "\f229"; +} +.fa-mars-stroke-v:before { + content: "\f22a"; +} +.fa-mars-stroke-h:before { + content: "\f22b"; +} +.fa-neuter:before { + content: "\f22c"; +} +.fa-genderless:before { + content: "\f22d"; +} +.fa-facebook-official:before { + content: "\f230"; +} +.fa-pinterest-p:before { + content: "\f231"; +} +.fa-whatsapp:before { + content: "\f232"; +} +.fa-server:before { + content: "\f233"; +} +.fa-user-plus:before { + content: "\f234"; +} +.fa-user-times:before { + content: "\f235"; +} +.fa-hotel:before, +.fa-bed:before { + content: "\f236"; +} +.fa-viacoin:before { + content: "\f237"; +} +.fa-train:before { + content: "\f238"; +} +.fa-subway:before { + content: "\f239"; +} +.fa-medium:before { + content: "\f23a"; +} +.fa-yc:before, +.fa-y-combinator:before { + content: "\f23b"; +} +.fa-optin-monster:before { + content: "\f23c"; +} +.fa-opencart:before { + content: "\f23d"; +} +.fa-expeditedssl:before { + content: "\f23e"; +} +.fa-battery-4:before, +.fa-battery-full:before { + content: "\f240"; +} +.fa-battery-3:before, +.fa-battery-three-quarters:before { + content: "\f241"; +} +.fa-battery-2:before, +.fa-battery-half:before { + content: "\f242"; +} +.fa-battery-1:before, +.fa-battery-quarter:before { + content: "\f243"; +} +.fa-battery-0:before, +.fa-battery-empty:before { + content: "\f244"; +} +.fa-mouse-pointer:before { + content: "\f245"; +} +.fa-i-cursor:before { + content: "\f246"; +} +.fa-object-group:before { + content: "\f247"; +} +.fa-object-ungroup:before { + content: "\f248"; +} +.fa-sticky-note:before { + content: "\f249"; +} +.fa-sticky-note-o:before { + content: "\f24a"; +} +.fa-cc-jcb:before { + content: "\f24b"; +} +.fa-cc-diners-club:before { + content: "\f24c"; +} +.fa-clone:before { + content: "\f24d"; +} +.fa-balance-scale:before { + content: "\f24e"; +} +.fa-hourglass-o:before { + content: "\f250"; +} +.fa-hourglass-1:before, +.fa-hourglass-start:before { + content: "\f251"; +} +.fa-hourglass-2:before, +.fa-hourglass-half:before { + content: "\f252"; +} +.fa-hourglass-3:before, +.fa-hourglass-end:before { + content: "\f253"; +} +.fa-hourglass:before { + content: "\f254"; +} +.fa-hand-grab-o:before, +.fa-hand-rock-o:before { + content: "\f255"; +} +.fa-hand-stop-o:before, +.fa-hand-paper-o:before { + content: "\f256"; +} +.fa-hand-scissors-o:before { + content: "\f257"; +} +.fa-hand-lizard-o:before { + content: "\f258"; +} +.fa-hand-spock-o:before { + content: "\f259"; +} +.fa-hand-pointer-o:before { + content: "\f25a"; +} +.fa-hand-peace-o:before { + content: "\f25b"; +} +.fa-trademark:before { + content: "\f25c"; +} +.fa-registered:before { + content: "\f25d"; +} +.fa-creative-commons:before { + content: "\f25e"; +} +.fa-gg:before { + content: "\f260"; +} +.fa-gg-circle:before { + content: "\f261"; +} +.fa-tripadvisor:before { + content: "\f262"; +} +.fa-odnoklassniki:before { + content: "\f263"; +} +.fa-odnoklassniki-square:before { + content: "\f264"; +} +.fa-get-pocket:before { + content: "\f265"; +} +.fa-wikipedia-w:before { + content: "\f266"; +} +.fa-safari:before { + content: "\f267"; +} +.fa-chrome:before { + content: "\f268"; +} +.fa-firefox:before { + content: "\f269"; +} +.fa-opera:before { + content: "\f26a"; +} +.fa-internet-explorer:before { + content: "\f26b"; +} +.fa-tv:before, +.fa-television:before { + content: "\f26c"; +} +.fa-contao:before { + content: "\f26d"; +} +.fa-500px:before { + content: "\f26e"; +} +.fa-amazon:before { + content: "\f270"; +} +.fa-calendar-plus-o:before { + content: "\f271"; +} +.fa-calendar-minus-o:before { + content: "\f272"; +} +.fa-calendar-times-o:before { + content: "\f273"; +} +.fa-calendar-check-o:before { + content: "\f274"; +} +.fa-industry:before { + content: "\f275"; +} +.fa-map-pin:before { + content: "\f276"; +} +.fa-map-signs:before { + content: "\f277"; +} +.fa-map-o:before { + content: "\f278"; +} +.fa-map:before { + content: "\f279"; +} +.fa-commenting:before { + content: "\f27a"; +} +.fa-commenting-o:before { + content: "\f27b"; +} +.fa-houzz:before { + content: "\f27c"; +} +.fa-vimeo:before { + content: "\f27d"; +} +.fa-black-tie:before { + content: "\f27e"; +} +.fa-fonticons:before { + content: "\f280"; +} +.fa-reddit-alien:before { + content: "\f281"; +} +.fa-edge:before { + content: "\f282"; +} +.fa-credit-card-alt:before { + content: "\f283"; +} +.fa-codiepie:before { + content: "\f284"; +} +.fa-modx:before { + content: "\f285"; +} +.fa-fort-awesome:before { + content: "\f286"; +} +.fa-usb:before { + content: "\f287"; +} +.fa-product-hunt:before { + content: "\f288"; +} +.fa-mixcloud:before { + content: "\f289"; +} +.fa-scribd:before { + content: "\f28a"; +} +.fa-pause-circle:before { + content: "\f28b"; +} +.fa-pause-circle-o:before { + content: "\f28c"; +} +.fa-stop-circle:before { + content: "\f28d"; +} +.fa-stop-circle-o:before { + content: "\f28e"; +} +.fa-shopping-bag:before { + content: "\f290"; +} +.fa-shopping-basket:before { + content: "\f291"; +} +.fa-hashtag:before { + content: "\f292"; +} +.fa-bluetooth:before { + content: "\f293"; +} +.fa-bluetooth-b:before { + content: "\f294"; +} +.fa-percent:before { + content: "\f295"; +} diff --git a/assets/frontend/icons/fontawesome/css/font-awesome.min.css b/assets/frontend/icons/fontawesome/css/font-awesome.min.css new file mode 100644 index 0000000..6ce315c --- /dev/null +++ b/assets/frontend/icons/fontawesome/css/font-awesome.min.css @@ -0,0 +1,5 @@ + +/*! + * Font Awesome 4.5.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.5.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.5.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.5.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.5.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.5.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.5.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0,mirror=1);-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2,mirror=1);-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"} \ No newline at end of file diff --git a/assets/frontend/icons/fontawesome/fonts/FontAwesome.otf b/assets/frontend/icons/fontawesome/fonts/FontAwesome.otf new file mode 100644 index 0000000000000000000000000000000000000000..3ed7f8b48ad9bfab52eb03822fefcd6b77d2e680 GIT binary patch literal 109688 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%0D}#zSrRb8FuaocFSDv)#ldj3 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 literal 0 HcmV?d00001 diff --git a/assets/frontend/icons/fontawesome/fonts/fontawesome-webfont.svg b/assets/frontend/icons/fontawesome/fonts/fontawesome-webfont.svg new file mode 100644 index 0000000..5bfd2dd --- /dev/null +++ b/assets/frontend/icons/fontawesome/fonts/fontawesome-webfont.svg @@ -0,0 +1,656 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/frontend/icons/fontawesome/fonts/fontawesome-webfont.ttf b/assets/frontend/icons/fontawesome/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..26dea7951a73079223b50653c455c5adf46a4648 GIT binary patch literal 142072 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 +|+&Vdls@0SAya!8#E9iVniRwHu0GY;H*n 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�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%0D0!#Bo^>xe$Z4SmykflG_VnkLvLv4@e#4_y4Q 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�>=olG4!T4BYNCc4f{&*Kgc`m= zjJH3zZE>o>GG*ti+od(?8;3_~`^-y6Vc-7QLko9Ku^3YMaD_M01hvF8H1d51bH-Qg z&rU;(FDDJ`vnPQcsLkm2u>^3J_mzRA+|DUF$&Oh_oso^^4x1UwgG}Y9+56ML6H|6_ zrJeYDbf4FaXVJmTWa49(C+jOw%o22n>f)U!(|lA_N#G?c;Xg$PBeEGoyNtk7d|nb& z23S`NlA1R~aYuq=Ym%jRMLT~X>RX}|_^4SV5%lm}!HJ{gma-}ywawnYfA+$h!DIK& z_U6JRcmVI8I|@BA?$$#`ZRr(Ws}a-{l!Finp^uaG*;;LRp-~SSZRuY{mL-_|)wwRH zj?fh;w0!MdFt@G>)Mp3q67-#I>7?CDiu!xq=&kV10zYqC+TShTe}2C%d1LMD{kp&J zpB%V zqHt{!`YiHsZPSCx!M$0Lx~Y4leVb|}&Eq4ldP41et!`GUllxNHPEJYmPdnS8;|$)12a(P+_;ag~KXu(rZ+JCF0=`-mWjRgwiZr zJ%f{tVMLj&xI(TTW3vp9@hJkAu+F$3ehfIM5tFE_&RJNu=q;C!u_O=$j3Y+5gqD#3 z%;x8pv-_<}WTl?G5XTM*p)+aOMb*WiEiDT^?I@B?m2$!owj$46CYxg2#D?w1eAhOOnCIO0~Db=Rz}~Q?1Uc$ahEX zgAcj$uZDeKjk~FA)?S6erp*>0<4hQTvwZa88N<;CFmCvaxg+J<#@mvR)0~Sb;DYLj zu{~eXwmynPGKC^?U7y;OicY|t{?CFb8J(8+D*AP7RD~%Oh*+xx(AO-a zNi-CUkaj>znwpIwSc=m}ksD971{2Yb55}etv0H;^i?bB{#Urk*19Wkv0c82bOZ(*Q zw2U-uZ-`8tz5nmJ{j+N~ChIV?f^buL8 zt*`XT^z8E2F=eU_omN+5_^Y|(oc@ZDhMl@WS^nYDoB`*~c?Xnv(ZvGC+G;<$(o%l( z#DsC^kx_H^V}1!P$@R|OKX!1=LPCsD8($Snw;erHUI6NhR&T{ttu|Yqj6NpebQ@^Y z8w<<940A$cS^ovzuc3v|-bfg#UAfh*e+y)T`l`CI=q$ccl_0zcre0~ z9K$419@2Du&7DFsZ!ilq)}tW!UTOG5o$q+ueuD@cYM`6a1`!+P27?N{uUBnV8PK0p z2ECe1R2ew+5FnGQwkY+$`;yeO!YF$&7wDB+RdU%-e7?mfyDXQpD()khai>bpwk%cY z+t1U7bM&gEYP~_;UanHebxK%+MjH&^;m8w8om{SFPbqbV$d!a7!6}1MgD$4SAg-%r zOcv8iv_tTSZX5!ZXk9$4vpeLCs7xl9VULXxCT^32Y?^TTK8_Kq@2MD6bVe$Z8tyPk zUpb^#i+a%RaM{SoBda92=sf!VwWUj616q&+v^4a=b#@}yz6}mN`pe);XuD3W)q#2F z9+D4%!%0ZJbNaYF>2fx(^fmN-kNi+|kBo3AzTUZ*)=+O$pfDK7BSwCBlHxmIj#7!c zq;kw55_d3UxH$g3WY;uJk3A$f{=iJNB3Gil{l$9SE~DsqB z04j$X4V*SL(Rgat?vo^yn*FU*T)}mk9hk234aqnPb+ic0yq)TlFfz^}cw`_bV?9BO z3<&r?Y$1d$(g=?{&^QR$LCY!h2|NOiL>lomXhHTrgK?2fU7Y zp??4ijs+IdP{Q zPsimnFv(FbnEjc0+(X0Ny#mB`R{5xUS%5nErM^;VDnj+sqamNDX0HYmhz$^ku0k6$ z6_vr5Ca=Mvrt0ZLB1lv^@ba9(7ehZ)n{iO*+U{9+WFh|J z)-S9bwrJsz_Wnl~FFAVemq)n`N0%%FeHfwl&?&U^{DHBf z_nn2q(GO??aj5{-a$sFfnQZ<+bmh?IuWIw^6eI1mUvEByt{j{%E6V}%_JKP;YXLXI zB=Pk@NZuZpK;F4<#vidUOgx~42V0Hk+5e>;w!y08iNndu!2caYLW1JM_zppE!o zGIlBF02?44!v#xJ`5mu7qsrw$qIKkDMLi@NhiNHMEV2Q%588%)26C_h$kG01H*S1( zBgj#4s*GIE;?q??VY4YyN2T^VjebfUg@dU;G3f0@p4<$aM4p}>a`48AK}{uN?{m2w zq5O2X6v$tA5$E*ti!Xpf8^@2^xN+S0$o)yV>6wniD$^jEi^^uJJdJ*|;lL=8pQ$R* zk(r*GWVEUER!;4-nth3hR=wI5ha)C10j7*Rdbs zM6MlEjZRinlG1m~wlC1B#~w$gzT7r01W)BT!CqJY0=)iz3BBa>7W7XC`y70DY~RS$ z$5Hc_Tep4*LXSfsG_LKUg8(fS^mm}QK)}(zz?X*BIHEf0cVHSYgY-Eb5K|ks-^~zA z=pwh@VNyejnXwQhb%=YLpErpbTvWX-P~|312uh<@q| z{B`KqDAU*_IRFmy3@_4J!Hv18AD9jAr?`(o(5IitG1or7JfU(T2wm7?C|l&Xp!z}p zFYwt{y6*j^U-!7&3qQxNIc3;;OA8s92hJc@Tq3t@6EXYcl1Q%k|2ED!kH-yar& zJm~cf_3oR|Tnb%as7)P}FQpuY%-LX$YSmB-n)bB9D5&Bb;s?T^CSS zZbTQ6I>#u-15?!Uh@Y{$%?9jKjzp_Ftq^BBLAG?u_K7SyDy-PFV*n5dGjHt*Qn%aO?TP*;VdgPv!KhysZui7>Q6UmSS5Mwpnhi`0cNdIVo)lZ4%%=! zzCtyxSf&b9f4o5nNflIs{z6~AF1|o;{V(xRAUe02nKXiq1IX^0%Z)!*AYBH`T#$9+ znMCU{>mjBXE)am8bb?QU2@8AU_ka9qMZ|gp{pdsAgu(pCM_~9MU_SWed34_!lHd1Y zr=Gp_OY|ey*Pxh&id#>dXgwie;HoX(d1UwR1`pi*2$~z2b?e>~RO+}2)?EgQ;C^%x zeH5wRtcD9Vg7RgO6XYQ>t{~}O{F`(~!OnQx&sQ=tv`T=*$P$(9uvc6ps*eE1c`$kGNibUQr zrdYFGZ}Qb<`X*GlN=syT`DD(t_IdEe!6%OFo0F6+?Uy@xYLe!*n*b&$92|MiMf7zC z19Goy1S3FykUbv#Ma}AlFM_#$=p)69AK-^O1xvpCrGD8%ijxGH&jYz$=}^$Cr0m4u ziqh=Vs_Fi*Z$IjG*AILMj9D-Q%|WlN>tHS)pV9-zKZsiZj~tGwxDxeGJU<1g;fI?L zJOV%48-F)ogcM34p!XL+5A_zP=Pw+4;s?x+&Cb4%-Y#He%k{ z3lDyN-?zECac=+1>g6L<2-~wECXVY}eo}oW}bDA-zuF_pgiMXQ~ zu>-mp(M~rbKx4#CHZ3KgiV48Z(uD0~Pm?{mI|f*u==FK%cAMy)8jmWM`{vgM6sLRDY=YjvL7%N;BKkhRvXc7> z6ya0;6X&%k8yd5Q1XtJCvr5yPCb`}?vQO@i5}#8C&R6o`(8%Ito9Em$@dktJyRi?? ztjy;V$b+q4ItzM}l~TU>2^mUI|7`S1e}UNTG_;XeNFq&Bx-?MJ=vG zRdyVi3S#ibqAw<06unKn#A`^>TG7vFB$jVcoETCD)@+vz~WHCnj);L&4u z>|L<1EKA81`FNmDE}T9&ylL01o5PbNa*fiIj!YHhrevK)E-S0xUU*4{nm-re0RkgU<-)t*Z^bJw7OGv^Ep z&EM4c#Fna^JKi|G!=C`9a);TJYSOXuY_|3bAY+Yp-l~=F*ACD1rpgowt4b!!o)+G_ zd3}-|lRnjk2k*V(CWT~CX(&|Q)US37)G6F4U|YE@QY zY*ulBJTFnDnG0msb%S?GX-sG_67_xyxEtT;SmIXjE zyU@D^ZAx;v)v7;d3^f=OYWMPOyEe`&D{i=P#f~Y3rnJ!#Q=g(fdh|ign6)RSPrYYS z-^57cfQqUSHg)fr^ZNFYNKy>i;P8G0Wn-6)&y;CoJm8iVJU%MpJ?)%=`b@RlkbA%^ z$XG}e%E>=<8_nJk0r`r7@_?5YbU z^;tHzuAs1L{IImh;Zb=x=ETXl#rHsC-b5x|{_DhakZ5VmiL(ifp(}UU=5~f$QA|sJ z6yuWbaV_eY{))AF)L4tU(T+Or#)Oa%OYzhZ?|>;T%!OOSEOQMYi>M93)D(5;urw0# z+Za8Hw&Im@-g;#|{65UmGHr_u~_`0ozW5AJE8hzwFj%mK8&SH4z^&6_Dd!O)N&V}{~R~N*Y zn^NUY-$PM5bc@;ef7TA8iIw?_FN!wiFTEsMoyV?Ud{NeJ|L>aS_UmWYd5v2BckN}w z>!=K-m|(@qM9`#YD@CpK|F0T|w;)Dtm7^B1=$C<5m$t_Lu32Co#K>g8E;b0xjb?1w`#bMcpv0|2Ws%mv%5*UKw-j)DEZH>^*wM1I@pNx*yu+c7bFbc)b zKl2KsgD01OUaAhZ$-m@&R<+45aX+_4xSubz$>U|iI$SD$Y`zhIMAR3=<#AjmCbk() zh7~C`WK;$nvI|mt0xbgfRkzEw2c#0n=nX2V1mTkeGwZD(qZD@@1D@NBQa}PdW7rNx zZfM0!Ity@s$2@y%zs4?*VNPspEKKpWo>gLJQNzP=_p>|pG^ZR+mL~eZ)cpiS3>GGG>S#B>ybnRgu6g!i>6Fgi}37#9~#|dAa9?-gh zv9m%%PVILG+{Cp6AEdsih;tYlxNgn9Ml;b}@7}s$bW(!%j@8*E{Y&2gQ{H_S3?~&H zQ2jb;E$GW@5;&Fza;Sttz9}=ornu{=E>Q=3>e_mTw|{d})7yg!8^;bWpX-)Lw|@il z-=OV};>M6Z)=w?PbcWM%8q5|-{gz_ypo|-UWdDY5k58L+{9F1RWgNr*3->??BWF~E zO6%|+NCfmu%y<$059tpNxEp{caspjsmq$*34DK)q!(r$WiKTMGx{hYaBYcR`Aqild zX{?)t#CvO5)aq3)u5W??9I5Bcl1Jp|W%NH^+%h?*VbDnZyden>c<&rJafv0z9PI0x zF-@vkRT5eO>f6}XZ_p$(90*511(4KCHr<|avsAWzJNk6g)!+SYuG8Hzt zLXmy@goX*Xo7aqPC@pJ%PxP9Y=q)^it{gZ3q=)kI5-0VlTUvgH9LiK$cDO4S=Q6r% zFv^hKUb+@N?UGL<4`nRb zf+AWD4jYR*v`(VLY##w63aWwN2za?Xyn5;nv?FhO8GyZi0rMBkY&!&IJ@Cgry;(I5 zeT(kd`O;62{rr#leY9}3)Lu5MuF`DYdiC{#@Qby7d3)ceKfeA#$BPS&*4eH7d}wQM zFbq_I#^3({MojLral(+bLyD~$0Qg}WZjbdQM&i!WGd;LL>Dej9l&!u zAVY4}z&|Z?NI^_K%ma zV{Tgnm@PJ* z^6@cHH*w|YO!M-@JC}nh_=w(}h?FW=Cg}~L1c%JHq(c!EXyW!!ipzwWrBa!oZNJau z)#_3$sdil>=FBONkMPp5(cUY^o9xjWEXg^!3Fr><%?(6Jr{QMv%!J&WWQ#%XN%rRS zvd=M1E+Z8!n{1k+v*UbpTCa;6W7onDrEY06&&l=SUUOXOW%hJ!V=QyMy3v>vaMyS; z{UudtBj)ZuzklwCw5k$+rl-aoNHUfT#4SItM4N6eOLxub71kRS-E{#3JaQeB2cgO? zjF#B__-Lqy63g0Q#gRxcfX{41!=8+6fLpJpol@2`6sXX@0QYQr7^uLk>ui<~x^W4A z7Z2usdoe?pNz~`CM-szpBKuaNY}#xgB;F%#=~IojE^i&8Z#WyUh;HA>V_J`!iloxD zol!*0L}z`;yh^{I6*3c)%G6}JWz~DDw|o|uTWihT*ypg8Tms#(9<<)zvJInLyp~F&wFb|6OwB?fCz zx;NRVX>hqJr)0_9m1{@W+&I1}Kg}SAsvFj=yJ5__btg5CEgKvfn$>UAh&rFzkk{9j z?#%1$QK#i4*&vu+XU)xV7v`p^gy5J(H%%D2YvZJnqPp3$eBP?;6uDgQ4vY?H4FHr4 zbtSk1`MpyTO9G+bfIyWm-u6zkS-)ntz}4eA-tjhU)~h?{N)zBC=zbOM>0`SQ(vjRH z1d4`1M-NZhTpZqvg-U6N1%0OlJYz2dS}$I(1FhK=?;|ZU!C{cmx_fsk zx`>b9J5q+`u0qiR-?QLtkM3^md}?U7qQ`~1@vFp>;WaJU&1HEgJ_peJYi)H+`>;LQ z=NDTi7;m5XTdgs_t3Llh6ZF)FaxtY0<1$bqW(ubcFvCtYw?)PG&U2xe2!liqc(jeg zaKLVseB@*ehLo$}6oY|vO2&`6I${)?o(LGaNFoO&F&%BhlOCqg_(G)j-Bl?;k6ekQ2hygrlr&@mJaf^ zG2TJa#Ts%ArdgfP4l|3$(Uk~}5Jwk9ZV-;18|~0pl!@;-t$d=ZZSD9?(+oSt+%M{= z-#=!DVcMqgivGFx6PPa?k=vgoEf|^Y?bF8#_v2uD3(T~FBUUGuX+@2RX(1dY&;7UtE2cuN0TN2Q- zczV-<;@BA39Y}MX<`}S@G=g?VDi1ItegAi&S&vd{)gcdw>>gQ7rEeOQ|;Lm&au{-wdZJz|r zfkOQMT;wjMV>~*EPT~hZ6CSH?yt$^JV9lGL1drDeF)WVFj1Gpq*jX;d74+zW9s`jK z5JgFRf+HTm|LkCDB?Ko{qNrC{k?bP>K0 z`CPQ6iRyL{`Aa5Kz%ZSXqE3mCgrfHuh_s8!3yHLg5N9rWhi7VL*3`_5)X)=G^Qnl; zw_erOVzA>LsN(GO9BGW+d55H{VQKOjlo|u_Yc}dzaVNJL^*lbk5RGP-{|E6tnE`m( zV_;-pU|?Znn~>EK5YKP(m4Ta`0R%3U+O34q|NsAI;ACV2aXA>6KokHq&kFwl004N} zV_;-pU}N}qmw|zk;Xe>?GBN-~kO5O20F%B3a{zeSja18O6+sZ~d35)T@y3fGq6Q&K z#3;$e7rK#I#HAZC3j?BvxDh4bLd>f1GyD(1r5`2YE}ojHnyIc#hy#b}sjjX*_3A3Q zLx->2cdqy~Ai8-}Kqw|zLKX>d100>d2f05;+SBKY-@SYl=)BsaHNlfE<$J(a=s$@~ zkTY(uhwf_Nf1JH5HglkJ_29cByNdtEyC*-SJLiR`vZ>Ym@hmWx+D%f&8*|-}*WA^9 zC|vGPVmD@8mY3Ppm7*t+{%0 zUe3$xi>^pnz8{Jn_f~|n=1bM?e)SEqa2%j_*)p9oJzqrsHG%rowi8W>&^oC7Z^)$1?lvVE-}Lo@QHl zAL1W(+s+g7l()H$tJP;Fxojr=rqrYT|F@BFOE@$CO<+ykvB!KKV|`KCY0giue>u#( zc{#2C@38-pdEa3_E##M$xm&<)mEhC7|Heqkuc|}82FI1g#NU{8W7k|?{$C5qC--HYe_r`&3)yB3p7Z>}!j{gtvyDj>Y-#^|+ zcb0hCox*KUk_P|)U@|f?GjfE4q-ci7nHiapXUxb9%?O_SCg zYG8Tb;G)Du%tfl8)F91b_~OjPYA78lfsQP}EolwL2G@Lphxx%+urF=L7E`j?( z;zKG!3?Xg=62U>(meH3PkvJp+*@7HG0-@+oVkkdUA3BPHqf$_Xs7}=Q^3>(xZQQ|1;%Gi}-7!k%8jftj4 z3!`1w6l^}W4eN}7$E3xmW9+yToF*0$TfGXlO1sJu7aJ#uv#pL?U9;K|pSA|ErV{Uu z7vkITz*_EF{o1Dqw1kF);dP1Y6ze7usfqpTY3n_N+70Lp{0-en{z*9-IU75OP+}6X zmN@-wWePNfm{PupwyB4NB8f>Vl52DJ=Gj!)mZUUzT6vmlD{ZTh986}CyU13uCp|bl zKAn@^l&()7&cJ1qWb|!gZ*yd(WLmZdZLg;IQJ56Rj<_8)J1kTNbs!6zMadFpjb^jI z^X^RCX`o?gLYkU3xr?|;>;F+NoY zeUm&APr%dhCJOKcB?YYo1BIkQVWE9LdOv6XP?3KTv#7qvS_~;B6qgm7_)tEFuj0E8 z5Dth00RoO-^kDMA=7T^RVWslJh{N(Scv<5S-?4(12l9WjXPT@{TrT)@7spqu*^mu(jy{z7J269H(fNKypn9qXF zW}el_W`F8!6#QJ;B#?vUBzc$Ic@BL}sqj;jC~W5`=K&>EX}AErAi1D#_WVL?!M12F zVlT=rx>|XyzF&DNkSa&jc?o|>e#xTd{l?QEG+mnU%k<0cw(_=)HqRB#6?uC`yR_YV zm2g$8P0-4($*uvqC|$2^@^@tis6%)?;d+Z6uQzlu{viAb=|*?^Zm@6IdsscDo2;Aa zo8!I4Ugs_7t&Ce{1Jj^2jNLB34H&t1D0ggq@qN0!(SBloQNQsn`flrh^IqgV#UOmJ zanSXb)l_*OeP3w?n`vg%gTM#Ep|GKjhdB=?hUvq-k1&tekLthbv&337mf6Sr$AA@U zWm*+h;0fUg(^hITJrh40vLozlyTm%Z$^ke4?VW$5R_*0V?;}v*K zpFy9=pVhuh-{2Sc7t)ue|MD-B4qk@<004N}V_;-pU}|TQWKd@S0VW`31VRP|2QZ%j z02b5%5de7FjZr;I13?gdcZr%P1O*9Vb%j`1B)Ry31e;)porr>hg>XqOA0)YpcQImX zX=!ccFA#r)#?C^p@rPLXc5jnhVunmhg@kw0IK01$Tfoqc zU%OIon{O6h`;xE1J|-*RjT?!vdj8YXsmZgNfjqfHi@3S5~dxXNS36I^m8EqcU{ zbbbI=6OB6n004N}eOCpT8%NUJsur!ZyM{0`)2^f*t-?+mhnZ0sNiAutk!C!w;A6~P zIJq1%Gcz-Dj+q&9%v5h?WUs&f`+k4x?&_X?4fS4EwWfIL|NY0eNkLOQrHH5Qp1Nb| z_Nlw3?wz`i6y+#S1u9aBrm0L7nxR>mqjghvPTfCs53Q#Sw2^kB-DwZnllG#$X&>5` z_M`pj06LHkqJ!xWI+PBh!|4b*l8&OI=@>eej-%u01UivUqIp`ND%Ge?nk;J2A~oq` zI)zT9)97?MgU+N)bQYaWo9P_dLg&(XbUs}`7t%#^FVTC*4JN(>-)A-ADJ+Q|JMD zDm{&!PS2oc(zEE<^c;FFJ&&GGFQ6CFi|EDl5_&1Uj9yN!pjXnX=+*QZdM&+uf5&9^7j6P1Epik1L=+pEW z`Ye5pK2KkuFVchbCHgXbg}zE(qp#C9=$rH{`Zj%szDwVu@6!+Hhx8-*G5v&oNv%nH;ElW+@6LPhp1jx8p}aTm!~61nygwhn2l7FDFdxE)@?m^9 zAHhfRQG7HX!^iS*d_14PC-O-=&kJ1T8rNB~#SLEMCZEiw@Tq(npU!9SnY@Y5;#2{BV8*KawBCkLJhlWBGCX zczyyuk#FNC@ss&>zJu@NyZCOthwtV4_lw z{6c;aznEXbFXfl<%lQ@jN`4i;nqR}O<=64+`3?L=eiOf$-@gE!T;oc@xS>${9h%ZL9tRQr}CdQhTd?)V^vzwZA$*9jFdc2dhKWq3SSoxH>`|sg6=dt7Fu$>Ns`0IzgSN zPEzw~K~+^v)sIQYAx=G!vZc#0DtFl#FbyQaw)l+>nP>$NF zhRRhVHCCST)ixEVP(>=9dY~AOo%#7q^Qf!y^OJfZtE*XE%j$Yo>#Vl2x{=k3S>4R) zO=(@-lGZw{^_H{qeb)}d{3s5cP9ZdQ&>57>c*(e)Z}J0aN4YSvgEESi8Trv_E)GqQ z>pAYI6b)Lg9rO)HgCcAvjMy6%0yFZKOmVyCjatsQl+<1vDX-Tngie2KyQ<^$^HE@j zgWSLynUc(ATDBYIB4=cBfoFGTy592G6$9O+Nuv<^sPfLZ?X6UN*IsRPoS@?xS<^Rm zR18cnFyWwttt1n=UT2u=xpu!Shw1tQZ*0QylIO-F(~|vEG7}3-XLjrtwgnxpYl>|< zsa0h6bMimTwLNcGLNT&~Vcrj%aa8EoBNN!Uo;Qxrx&7@|>j3X0N(nf&cv#Gr`4kM?xn!{Nt&bTY%Qe0*yW9NEy$G~f? zC8uk=qVIH~I4}j@j60579@%~ido@A9?qWjmuQi5?0EtDXOiKQMlw^@$eXRE6V1pvOM#c3e0I`E zjxg=JaoB<|$|Gl-nUz#TiCy%DNj9SKaytcuWtjcFJi*9*;zcxCL2`^oUU_;YMZ9oseIt{oHtd))O##f~=` z3CD$z-5;B%Jn>iT@9-n`CvuOLjfrOE=)R9BJ91%XdZI!Tq>ELu2DY#++xU_RB1cx- zkhKS1;A|K9+U~R{zSS9El4#k9M3<@KAu`B5Y0adHZ^`0;r-o)VC$~8)Wm^tsqd`1s zhq6~VZe7;GcF~?r0?EL3dzB=*q%oz4c_l>5y3Tkg;!Isx^y6?K$C{PfV*&{qEqqQw zh%+w8;{IT@(syKqcB+FkI$)W+D>@M8;=WfBiKh$AO)hWREGGlf#j*pJCTA_AGZ*49 zVn{_KCYJ^d?y4XR)u1bvLewD68|T`_bt@gXwI_~^OnD$QX6jB%sI8b-v7h$9AsbRf zwstCV<1RhP1nYL`iv3+dm_}l_*EWUaK<@k?AKBqBEJ#F^!%VjW$MiaOXv$D-dQbBG zz>EDHe3=)G#N9&M*b*UBCys@Nt+6y+EWUMS4#XOD@kOvn5GoqP3jt+Y`a` zMgLt%No`L!u4Hn?$eD?>lZ+xUJ`%k~Mq+D8v>gcdwnRjUd1V)yXo)P^C5a2dbKlG* zE^bXS*i70?m0Cn9ZH>AW!A1iw6z7{#7&{RdD?wCPvCxr3WsGDPPogq1Ws**Cgm&z> za)N$Iz&`TMv^|p5?QzExMy5M-qDl{2l2x`E*}9QDFi68xZ@yM`S&%N><`z(9!lK(V! zqj+lY^0ZT%=akt@JG>+U63oPEQVmIwg>Tb(D63Zs@o-`=G z+gCB2Re@72bCbur{B_EKIZ^^kPAfL`t}wd3%52tD)0spy&47*($S2%%vwRidv+0G2l%L^T!N@gXa`J zt|{3iv|v+?u%Dc+botAZOjmB{v8>qoR>gsL(Ztooa}Cyry37_bI-MDE)V%p^?^HW%Mek)o#@n%rtn~*LK@x{`ojx@g7UMt!j`?QC7>(%&B z$2(z%6C$@R=9_mit?KyP*!f2mnzcOSf3xk*iLkY|?(A4>KB?eVpR(|~pY^*7*4*?g z7iuep%c$p7n=YKwG2OjP_ILJv zr|{R;w_MiVr*l3g-%{t4DX-1)+0(lP*Pk$(YgXiK5%X1bWo4m2UU#cuC0|F#9w+}p zo3e{ECLB;c9-hdPrMtRA-u&F8z_&ZjdmsL@sqogkKLrw}=ksKQJfF0AyIQ+@d~JV; z_vAURmszsUU$b+a_}ZTh`;N|3t?W9z+T`ZsFFNPWFPo|RGNbavszoanGK6Z-E39SJ;) zNkd9QERbP~K|fQxI71Xe#=<_Q#SBS|9jppsoA%DNoqzQ}Xya<8aMpEPF`_%P3PK;O zidfk;HOt{j!wSa0)7!RN&Mx@u6sE4sur}2@?^ z8#Wv}By~Bf!NfsIfp-F%2lJARq1+r0sD1m@v?tOIVa|WvB(^#yUwRlKiEL5%B-7aSVOdGDE4Tz?STjD?ZQn8?U@X)9|BYs-XttGS%G6k19) zHZZ)DTJoArfLFm`7aNe7Jz62nVnrKX+wfW(HgQ z!I6O0K-P>G<)&^!fXB<6<#Yj5Ot;CQ^kxN!)^r`A$jGp90LJL4HT(bn|35uxh-~H3 zkzCt$Y#@RIRR4qQkYX0n71<#4F$ZSDx}G=GREJU13W|b66FWM;(5@0Om2B6(YIcaP zWzq-i(r%LvMTw{f-=J$XKJTMs4>wV%Y>IzEVU*kol6B&ET`u{Bi`MzTSCT`uhLOl5 zt~eBSBcJhkV6?(U6(2ESP2xC%nCPpZg{pVyJ$xt8l!7p(iBx>7@G>tPicRz-o?;TS zAc%BXBq6BEkdVU9HDh8E%$lNuTspY;0^V{*< zT0I?=4BFN;W95x&`CqzjGwkDxzT7BR$%FRokJR~({TJI#VP`7_uLYgoPv)q!Qo$#( z!p1d-hN3+`gy+Bi>und#soPAyh@A|i9y+kziz@VAR=x)E7vLBJ*YNz@dMkQkgE3$T zj8P+Mj2`SSl3FmLwh=9r!bX)6X@Oz|Mj|rLJViyts1xlw>+~XZKhd21+u7X|4jO{g zQrUr8>PS+t9YoXnw|J^qEDbe+RCK0xVic;JWzW3kSx$fJsdGk7L@NXT`t!H;^tSJ} zF$f6=hm{!5q+o!y*#X)_3n-E%Hez8=HYlKg)ff?2vo>c=SH?DLF4Z|*x~O&?AM2r- z>i?`HLuRygz;^l&ct8-aElRjxN3fUKchvrOTM*bmgTNFM1i0li18s9jJ^;o4&uQ=3 z&lB?)9&iQ2fJP`XVzs;47=B2}T}qW*l(A~vxvkvPM$Kj|ehWbS$MeM+`e$bkLZB_6 z1yp$MC8?@#Rn>K#jBRBH&Itx5zxuMe0UYAxJH`R%KsV40bOSwbPS6ADvicnlFJB*3 zIKY4nl<#ulhQRRubM~F{SUqRguY`ocNC*+2of_?k=#>^~lo4at*^ZFhpJdmQUomVt zF=>I~Nuab;lyZdEKBKy-?Z9?>M`GBvv8hxsD(~^qX4Ngtc-Jjy?Av>yj4=YtXuz<* zJ_OGwk?J$`Gl1bCq9nOG1R2{I6>8Of|L>dZ-#T??cF!L8mGY?w86}w%(Y+h$gu6en z46tOO5H%~Z6aoMDzh+hKdKIkFjacGX96ah{B|v6ENKe8zo5Ki?`f2&=N3Va4d&C5< zTh+4CO(Ua5T5AU)UzaBmZhQN0CXqL#v$Ru6?Sdg;!$I;D0G6^9#F|iQrFKE^=O>Bp z*z^FHmAB3Gw5`>DRZq~pm)TC2skxo02vPaQz=Y7tkAe5o`pWhy3m+mxeo!2ane3`C zrp(5-NlJ2PFZ8yfdJX`%8MU06L84F+A-l!-n`Ow0lyTvk@*rmTFvV zY-FT~!RYn81tK{T_w=S^yZ{QYh;(A@xtZh!_22qXZ?0Hk=+0L5j4 z)ac;E0U-whAO`{{jdhec<9`D(4Qfn-G6QlQ$aUmeaxAsZYR(xSB$r)XG~tAogd3jm z(O#Tg7&;qd_xGk+r2s{YwAN_nybq#T=knXiFUaxU|J}|1e>cGH21s=`KnVaT5ddYn zK}Z59&Hx~(Z8k}{brjcWv`*_aTIYxcWk89u1T{`t>!J%X<7^h}Wm^|So8=c|7vx6} zE}PBGU01KMXoHd2rH9%TLV-jG3BmGEdJxM3iX`c7GUo}b8(@F}KtkpJa5sQ|n#}Hl zRf5UJu~hFp@n3{V>*Gl8@sBhI-TTax^L z2`~U3PP>N#-~+9HH{kQ75mV^X%0Np1U@;iG2!rpQ15U3uYY@C&;m-kpMeSkjB)}}= z&#T7QzkdY$8%knBF~_JFfU2Ec9k#^}%|6`oPj3s-dTb!@@ zVDF5cGAKn~`~v%Ht%zb`uD#72=x{gsxdZ*bjJF6e$m%vb;H(>dcEJB{Tf}0w4%aZ;+rPsxd` z-jM874pGC@vE|ubCl;m5*h1%rzXh87|mf(IBA@oeGB zL~pxL)g#C}}arC5MF9cV!wjLDJQgya%j}N?jIBG-b4iAj4<4 zlEld6V)2wdYCw?`rrc#!cM5fS^8mGP$|KL;TU7~r zGdC(KMe+k?TMtAuM`}U)(V`6};X3c08ROF4%*puFg*dkSU{}8fMilXq9rI&rPcE9T zzB&S^amor%X-^m|wpP5=)2rRR^4@sm1T#x+H5Qbm7syI#!In%QdwX7_6wwi8vw6E+ zPhK656G5Iv(U!e{&jAe|=E(Cyny@f~eX+P$_egGmyN-FQG}UxU6cX)Y0VXB|d%#+M zbK^$0$;bPAa#)N;8#RfAw9C5QQ0j^mA7(ZDg1N2_4qpLk^Z*Ct+YVY2v1^#2?QSUP z@(J%8p7GI9bKE?YA4U0}C!9JW0$|BZ#Yg#+Ip_JjYii98Q$seK205hq5|klTUb<pH62cdHjPyA-yyO8WDliCYPmV}O>Z*bfIGH=i%hY&8~%-_ zq@A(auwN1)?L-bdpo_%LJnmB`EE)Z`1UC&YSOZ0rIGt{^z8^&^Kl7YC(^uF78k6{qCNO5CR_`RLNmIW?p;cTUQ>qM!jnq-G z)M-DPpgwEfJhBvztR0BSDlKaw=~@bXZRd?SzbK4~E_->*%#NwuknyMOC20Olk|j$s4B%)(ygq4GCl(9FtDjtP0i)u5UIbf5ZKkF+ediC9-9(gyn2Hxg}K&H6kDgRvavqjVanh~_ak zW}S>jwn%N0Wt)hVrnZb(NrE5>)ZhbC%5SC;8V*~T8mhsta#@VH*V>HwTtQ?hF_stw z_S=x`o$vJrtJ@e)7)o!=y8H4I0Ar9*X!e*PQ)xZ3^dIjGn+1)>*eww#yx>grdf|lT zOGFd|y@*2uI!$A(~ZAQzG#?NwLVKhKmk$yrF%^LlA+V}4 z`WLN8Cpy+i8ee7=$}H7G17f5BnVM>&L0qHGh_dxe;gqj2ASv0%NRqh%VVIc}wh4kg zuIruYPAFB$I}V$;vvIJ#o|W}%apTV6(UN34Xt3MSGhk;2tZRA@jv}ok<%QPgyvr!; z^EmwikXTsIjLb@F1z)dsvu|C~o}?Zi4+6Zm8cOLnVKmw{q$bxeGc!Ha1_e2u1u4pQ z%$~0Gz9!Pz%}P*K-u=uP%c3y)+gzA&tR$|ssYvSSSrCXZX|}#O{~j-yX`_9sw=^t& za-`F6)w_VEa?MxAbz;vIi1}&UofET0w6Rv&Twwj%)$YyCPM*ueQTT13i-(oa zuABu_$-UL%eaGoYdH%}Dkz6icEz=!q@UG18#&iF{bgC-O_%$SWj44gEFRSNd(P*dSWR(;J5~Dnbn-~(&xmc=Q6j{gMO~} zl0n%BZup%v+w!?sJK)IVEk>MhYGl*SFiqy3_2nW>JDsr_qHqgppD^{+|!QyxBPNU-f z-m+TlL&$YrIsORs79ECF4)p)nR4;j;|br2w8KMh7-DZFNw_NLngHvsG#5zrM4feTo4d5-gV#Wn0JMx zL{G~N3MMhPR=U_#c)M+f>sRRPT*}{nnE?6IjR)W9d*s@3JR|Fhyt1Q1=bVcvLL#;W z7ZsO*+^`OMF+n6r=r>SpaMs?vF;#eDEQ>bHo=f$TaQiBYRX+PYHWSB)ugsMgJMuGlbWE=(Y zs^V{UXYStoguz`1l+RiP5%vb5VC1!`J$CvHO-16gJnT}*+K(LL@QbEwUeI7Zr|~1YSF$1QJ9~v_{wv0 zdFcKolqdrNj!CY67*D)7m)n35Q?GC8_ZMX3ttWIM6c?M1`)SFu*a0BUnb9>r**B$@ z(e1_QND`M?)U@x0G?Jj$0Kz?P%!2oqB8y60W~Xa7{K@n-;?rlY2;@k8BbI%;{t}G}9o?sshTPXe5E?;6$;c zxRe*E|LaNN`R!0Khf;N^ZZ^%2-aK1)_&8E`ig6j^<8)C;oTQ#%APT-R!e3SUT9}iG zB<@xqnDHK7SVwZ_4g)<4n4Wi>MBjBvdawc79BVVXtej9q0Cuimo{KI|QaD`&8Ds&k zizG(#8+<AVw$aL?|*SX?ZT2nR86uu}%U4*;xY_p$m1D)CFatuZW_|p2?*xV(a4lKCA|o*hG9Ie3*8kyc zRqjB}l{*Mj+%BHe*?G+qtHN(x+m!t$2^t-3$FX_&55b88nGpnGPCGTH8lgzP??BE0 zRtdRVKp zFtkxy7Zt#s)~_``-I7G{a&v|8tUjzv%AZ7Qr3pYpJ^f5 z@y|2>2l<&MmWu_pqvTtDd)gv_`Z6oz+dNCsnF2sMN#;RYRClO2h=(QXruh-3y$ieU zY0p1kh~=ij{MrXL9S4i8L`fzg5{%R!PX_b;Ih+RB^8OeZ0p3C02AaJS0*?)W8}FzP zZ9DAXr38a0O7z`hD>cwSt1z(Zm#B58?~~b`K|mxsJ+FWl#rsbFbSrx-$<3~#<=EPY zO5)h={6-i zVdxKkACeuEGyj2{G=q@(7qG$3D<|E*F~5_hD^=v!%v)2r`n}tt{x=CSD8+<@a&IyX zPcf<4!K)o^vFfcYu55*;Z_p}bhBO`y)j+#6zs}}sbG)f}h9OZy2>9&Yp7)?O=eg=1`Z6%w_8i2$a=9ju zQWI!fz%{UdrBVqymZ)EoIv`X!gZL{=eylpT+q_cV9Y4YqG1jhxn$HLq^&sI~-su}5 z5ZsPnFz?Z;W#x-j&aQ~mdmcnaZY_@_`71nkpkEmga*&6}`Qju-y2Dzv>zjNphJ^OC^{DZdLmBWdDiFQ@p;iaj|T!%M~ZrSZzK& zRbAH%AFNuj2z5!>G^q;ralcEVbTOZl8J?wbS-p*Tl4;9LsaJIW;yGHzRuN8b2&2(o zes|EI!hK%fP;xpDuZCk@!TP95u(@&8ZxqAC|4U{)Ss<6p6?4P%56|av_BibW8j>h$ z$tOOJ)qxD2t2(9#qcN7l_{hZt6S~@mjVwZckrx`ujbPu{n3s($zV) z7wjfs={`H|k7x23G$}{<>Qa-UY6VRxR_Z=AY76;@j(2wJdI?GvDy>dE0Zp;@n3jSm zQtGi$8LEzcjg6v`9#><2 zFyMvd=KjjmR$5ZyO3e3Ml2;1X^DW>?#co3+s|u2STZOQzT+6KR$*j8)55IDgisokm zt$Ky*AoKoHnvL?;5uJ>5yR_Nzi-mD~U&N@CgL$o8ssu;MvAv@l9AVlUYb?h#W&BLIyHklQhXwn?z5t#!4T$Y z9;kSLF@C9$Tp0(Hs;SD)kxV2Y_3Ogx`?|iT&FzXh7JY|sk_X5`+%}t&n1Fb{eZdqD z^`N*j$;pt^R-3I>m)<(>q2*P&cpyg>uAEkm5FhGXe5V<_!aP`UQm95P!h~V!3~ZUn zJb#l^#ZQrzVKZY#ShF(H(^_}raK>o9G=%NU{7Lj8ojewe1`9XBIbi!qg4)rzJ5nM1 zz(u4Wh01{iOl%TEF%=h^X?GgT9V9&?R1nhe-utCl&aF{_yLLJHaMtYUt}ppB9kajrpB)M4H-`kF;4K&T~|cmwL>_ z6N$*q<~TQ)fuKlB7LwC->B9;a;8YpfDcZ{6wgS7hb-TpNMA2Zo$?1E|Ex){48B{e( z;E(`-4SlZU%Yo>R4&Hv$I?fSwa4Ny|UgGE_2>j|xUNSBR1_QH0I^C+%Z{Jl^ zZluK&so$l-%s+2t5&rS+R$<+?GBN3A^YfSI*vi3BNbH|n%5NOM1TeRa(*;Y;ly@+P zuRHwJS8wnoJ3gawN&=32At3_l#!bU!1@ZU@1jjJ@h(nNNqBjbLdsP%6{i^W1Qahxhn^0@qJgex~*H(n;xL_>woo<49CLf2cS zXleQ$S; zk<9RONVg@QZT`8RPZ!lqm=32Um7{@pLLll_&SJ##(zwfN`7q+E>jW8&0r`oJ1Kq*# z-W3;27@6h-^FZb3I!VvqIjV|qige|$4f(VLU8Z&ftm!fSAg>BP-7T=Rxi45!BIt7@k$f9_eVE~!h z-*DOdzN)>EC^Ns(+Nl~e?`q>H;cgjw)OA^WVsz2>kDb9O1tuNXICE73jV+PY@a+5a z8J);KDr{SvM-MMmabeN^3kF?5=Lh}!?t2=R70Ldg(+vy6ERVAT#@HpOH+h|U<0lS9 zZ(aZI3jH%hY~}tIzyBWVuYUz7Fc~p! z=Wv~)pIBZDrZQu?#zYy}W}v{?47{f0k!Lr7{-Q`llURH2vx z8$L7N$0w=Pwb4X#SzYR;=l7${OG#SqIR?Df@Y31Q$98c`Ps|6|D@pFW+`n97xiO>F zJ86CGh|#6<=OKTId%1vYiq=}E3RV`;T4Uj|*9p(g;wrre>TtgQGJv|#`ZAa05~zTl z>v@Vm|AxZF^OgzcCAEEu_4i-M#P(YFh=MwAZ<{6_7PzJYwgfmCJXP-sV(Y|C&uGr( zA1NxPeV1p(=|ij!ntWjjvfR#D*JqrF0rk^tSJ;Xybh9S4n-l`#Z9i?7$IRY8&h^L3i&V&iIETrTp-8(BG}3-wWOa} z+0YpY#nQ>Cak$Nrr(nux!*jE!K>(k-5(n5S83Z-QYFLhWjO#&$3}7;X81qbY0H4Vs zL}7#hpcal8;0&pZMTp%7gt{e4N=6DuFisazKV?BMLmr9%+Ze46%KPQyLBBG<+;2Dy zRq7*JW6oXzS(1&Mhb+J&6t`HE0!?*63R2@;;2xkY06q9*-anLDmQW z1VB!;h3bDmxFa?syVLOJaR~eNQ4YhvQX*3C@>IIa?gf5 z13PIP)$$;xClq-tg^nP_ria~G6c{fDWaj2RL&#S~24e_|agJQlQPgOdD*zf_A2jq-oo9#2* zcI$~PN1lj^6%mw+XC1|%b|yzRMd&Pa^T*@`gMr~EOV{^G9|PPdK)G8kp#d>!rH_Qh zXf7wSRM!`3N@$JMAhu&{!gTeOTo+rX+utp05M?tTU@c=&r5u#St^Wsu$tF>Sq0>hv zAeoS@ED?ox!fFuncQJSa1^bF`gn<=%mgO>hlu0WL6Nm;Lgu9qe_pW~22$O&(Gr;P- znMWA~nx;I9UExBL(CHSG)HXF9K*&ORT{7Y#UooC4fsa4riR3vk6q~%0^-{RXgd%)$ zn{r9DPut}+?gm0Ht73gY4FAM_`q5Lcj*vWk8sPrRHZOjx$Wmn1-qmI{#7s$Rgz>m3 zHfKk#q8ihS)8?K!?OYf(b(N?gJ*TLmFE9@>)JmNqM;-O{cv?DByO_oMZF&3sGp$lG z%aK`RW?zqLzc(sr2q8r@;m4({KZlaT)Qv)g>2evqTIT+IEjmdZ`hn-kY(FH_A!D4!4b*-E2K2wBC0Z$lf1wmjobKZ}t^e3mY; z>2X%f!$!=1tvn!#%5!XV&y$oPv0=^V)X7k-ebZd$>6_EpQco5KXmD8?B?|8%TqPnG8%Xw6!#MQC?{VQ>(a{Q9=giWgVZT{o8?GS(CCR~5DGcz~fy$`6gB5}fTKCu-!| z7!y?_Rjz)Oaq`YNxIDIt^i%r`S7%8179H29Ez=6>Q94gkIhy_#e^~*p zj9Ql=C4w=fjAi^-F?L4#7hx5DNItq>z%KazY7N!xqRHT7a0<1C$v?M;$?#M-4T^P~ z{Lv~c)fJhwFVMg#NYHFq%X9i{b%?pH5dp@rluufMQMv9ca4KcA%$cJR$VFOsEG9UX z6(vg&#f1NbuQj z%q2CN#L>g2+aB|m0jQf{Ztu{(S9fs2{*t-m*sW`1AP!%7!g$$eDM&q2ucP4%RT zied~+9UqWg3!~r;`8!ndZWF-g>wH9{g|K}QOS_*1_@tPx(s2%A^*RykCqW&EtO`+b z!b6tDCO-k#-K?EVq8-XZBocg()y9hd#rI53^l7N@m}POshH$m)%}fT7kOQJoXFG(3 z9!|4nUQ&}1RbqPQUV+d)^&i5XWWBs{EH8FTPa^y4Z07b7Aq(~iqnKxD!?*A$ogn11STN0oZBpRpVCM#wfdInAW(}SRZ-Lns0XTW zc^T)o18(FH=_Zy|x<#R)tUX^@x?x^|S!$~*N;P%j1epTd`wp!7x5wr5@9D@uweA`| zkH+dV()R8*S2Mzov?X;pUo&MqDgH2cHn|!`nD-U1dWxVRoa$9Y$|*$eZ;`N>@7@hy*@SSlAfC9$%<9(VpbH9BM{0l=rNQYDAeNK+OXZlN@RXEa z2Q52~oDIRhMPkMaI9qf-8^~XZ42%S(Gz^Xff;Vkma!H>zd+x+R5N6h9lGHB`2IoTL;Y10a9BZD*XHr2i&OTG-9 zAxi6~kr^&s(u^1DLk>ZXV$@c$IT+`JC=AMpCn0h2YA@IU5d8&5#7p z6!G8w%naQ!xRjd^=s~LYoV2BUyXb!sZQZ4OG9c;uGFU#Mh#dl)@7XH2KNgC=9YrLw)N&ODx@{*Mk0|GkHy(LZ3M8AjTZRh2Q0p6f&P$w*m?q_p6}F-AI5 z#>>))`Ja?$-pGQMF3aB0(f!!z3oya)*oxJB@V31=wAvR$24SsE!GNd>vTg*->g7z8 zjt_b8;=h{~-j_~nip|=TEF1zE0!!;1j6r{^_v0{QDO*xh#7WFXkI8&0Bp@eSNtC@3 znokczW~+c2T+V(W)*^9}1l^}Im(^>CFG|!{nzJzdrC%YJcE5%Tv>$xogaX$9WwlzE z*tZ^K%$42pD89!XiZWXhd5BSHqV{7Ha*)YK_6^v{`7kjIi-E>qxK$7 zaSFZD?Ek0UYVp*G0%df@N;9^pvLzQz)F&&enZiKCcgJs|b1h+I9!2JEs?)(SLJdN{ ztIp0RfFlpkJRZOPd{-^%-Zs4qhe^=FMjeoH7S?(AR zzE0^C5$JZ$^-UkzV4sICmKnbdJ$G`7%AyjX_Tg84oboHCV@Soms0G(qpO&W`O~V*4 zpm+R>IEM)1DVu*jdtN`0o-&VU1re>uRxtPsJ!lLFcLKS&1-`Fb&**uz1{WBpD{`LK zD5ULbf9}U+E69jHqYIibk@OLu_dqUO$WiB!IFfb zcW8mZbeiv>E#riBF50&O!<5vtoAG0xmn0|k>j2&)jj};eH*%CW{pKcTz>t~olNWKN zV`nc~JV)&yS5k7c?s<Zh5Bp&#U|YG+y2dS120{I?|%!U+9Aw$Lfg&7#1xTxO{Ph1C4)@t!4C( z?s=Fk>by=(qijfeL@7sAE3SF~)T^hxk3#(~OH&4+4VF97pT`x1PrV!}~W-2_CF zc^#gJ0{Jt{1lWq_LC;~eZXkpwa_xvGT|1qB0zQ6k^F1I^vjgzuL zp_J!x$q27BgjD(^HQI>mj3ESQ5hx4Gq{d2~75$-1do@pPBWnJXG*FHUZthH-5Py$+ z<|@SaNdp>6)E_sm18#Ik7@@SnxG=C_k^=lT1MV~W$59+jV0dC8{7z)@x!fIbq_;*t z7=eeedeb!0pyUy+V@Y){WQO<@tiEa?^!39d?qJ%`g_b>*x^%;z#bhdKFfvCOYoI~D^+Ne;M*ym6# zLCMmGvN;7iaKQQhw`t>@;j&s?%c#qn*%ghwDTV86+`) zd+qJ=Ob@MfN3Sr0yaurt=9>mW>S8n(neW(V0@P?XV#UV$`K%fCn{UjgrRMoy2m-_NkFc;XFAO<8}zHn5%!%F@d;j5vExe24E@G^=!nu-uAXEEO0k( zi;`mrSHT#su^XFL=UDP*E*vm5zrq3?a~q)VHBZx&f|I{|r z0Y$mTGgZEsbOy>A6$xo|#8)*ov^j%b|CA%n{rmJ8L;^fMF zdWTZxL;mixbZGU4Bc14MsW7)v_F<1EVq2?ws!kY^N$7NX7=Rdd{%y;M7l1Lg1bp&!DBgo3g_veFW>(PdRP=)sM3dB0H( zqJ%j>Y`_uM)CcxY2wD(DmBSSI%jeKce9!BN7Aq{i6#rtkCefnI4eEA(M1snBID_|` z+>1M$O3;x=K|NkjPbP%HK$14$Ecbyn;I6^5bIQg%vEVL~@EO4g-mUE*MuJ*WxttK4W*FdeGA0uH!>s{1<{8ET;{QoljQee_e4 za%U_i&Xy<=9UEFarU{*`@sZ}UBje61+UsV{X3RAm?ur{SRTXfdVwyqhJZQbS<^vr~ z5C|O0Vn=*%2e==#PT*TxJIiWW)&XUi6g76YJ5Fop-{cxE_H-17ICs{Drn9@WA|ww;1@AE9c2t@mF!j z%wQP$CB8xbjo*gpvUH`^B?{DrW&whtlbp3Pya zvS)^;tgs{1+|C!N7haYh*d& z!2KXongxM`ci9_;k?o+074aGN3}`coOGojsg0Th|Ij;gp#XQC~ct%FnSfA@fteBm0|bv2EfK_wynjE ztpD>}%aa$&a`f^#DeqpjPKDT|o@gUhnHiqX#Qu+*beo(U9y3I9W${?O*sX-0ABi88 zE;4RI)GPBBj?UHcFWM!q{$SXweug&8aw*rYxyYM1>}U|GCAV0eVik#bye@p@#JT(I z(YPdfMPJ|1kmFKrg@a!*K00cbV9PTX^Qd-l=m(R9kDEW1(}jxV;rZ(#GlU7l4B`wQ zdylX*62T!1L?idZaazX}T}N-9fB$)y3~GrfjMbP0BpluGmTcH*Up`m0#p*}Q%2trW zVGe~6g*QAR3Cpr~0en&oo^PE5p_1X}eYPoR^fKG9r=v<(ErZZEy5AZ{sY&H+=H&-hQplxt!B{^aaJJJkz0#fkJ3yZ-Sk{LEf9EFt4w%s8N#E^c@hyzF* zNMovSkEY3fHji@O=bqVPJ=B|QP4^V_32KAhDPS3%# zfOKxYL9d-IUFb5tmYB!znv`-0(ia`gahtxZ`x80qt0!ggi|-*;qR zd9BI8==N}!Ax~o7>zzEqWjkLg7j$xP2*_K=pc-HZ=xzv$X_ulsx>B?Kk-cA_R;#5! z^Qj5+F`KXRgSL{-WI|cFg+GLbOTYw|{QlO<1@dl=TP&WfO{eqWxHLCOrlae?u2>t8 zFP_bUi`m@R53%j*HB>7+z&%?ix(!IG1B+W9Wt{*h*Sx!~E68X{p!0unD>hr|DGNdW z*-PH68+oQhi9R>GCc7No->107UATPt@N1&=iV&L(8?&BHrKeDMUMzb0^eiS=NW?hc z;*PE(a<;~5HS0ffgYc>;hiYk|)R82WuMpWv9O_WAC>5)hhjm3TJ2}_Rbk{9e&s=U0 z7`B_&MKqchjTWk(*5~TnG|rJ* zW!N#jb@|$QZvy!b3@RjQkK{r#?{kGgFwB&Og>%NB%LJ4ceW@lF`J9{z`%6g-xz%8) zv&sRrz*TyQXWSyZxqnR&JsM+Fw|tHVi7mV_xz;gjtusfZZ{>!o57;Vl2g!SyJN-jY z50ai}Y8y^*J&K0k8rpo1zV_z5b{tatagXN_ zP?wd)vm&q9(R>db=(QyGLc`G+bn(RbIkpy?ZnJ{HY>^auqe5R}I}}Ua3a4LVCN8LS z@2}&Vyp(v>T9;|Q(DV7@t{g-vKXP%Fd8N6ReOJ5fMK0G}xZ}g#F@gvm9?pqgYQE0b zXc_R+-6I(>wRYMwFwbhINL7&n3T_kEObU%wFQW=Al#$wU+&*PSnMkTrQc|aVoM)FKI z(Mp>Jr$B^gD<$-V+&UxbwNE>LR8$k4g3O;&QrPTlv?$%~Mhjd7m{`nw2^*KC6ux&$1XrPX*#`ZXJBchQ^a`Bn${600AM2?b9V1;oy!gF@QwM zUs=l?6R;a<5EUG#SlzcmJrqv+7YK7nwf?eyE71W_*dth(l;w1V5aJ!g-LQ)c3PQY4 z^&HR}b}N-LqY5U~3Vm6LHu#jn6WzdNb$Y^M)IZG6WyNZ0lw#94ysKJ?bKb#JVvzZ@ zw&549h+Ve|Vi>ed))=lyA-=jXd`;;trdnjMVYX=2GLUjdAcOSUZ%S&5x7m78#T6eK zi;^6rwAM8}nzv#l{A4s15=lJvI#W&~$EyUm8i)zrK)f`+>!2qd+G<`xQ~@> zbS7j^Ic=e{&W!dZbu<_=pEuO#J6%65fk+}7+$zRTF(r)0G=Syh#T_%VrY8QBxe8JO z;FIN()8ld@U1aj)WT5SdSq0ZGo!Ue7FC%ZpJ;6oiPpF)H1w+?zc*@tNrU@%r2k#KR zcvwxu3ABgm5@P(OmC1#WSBw|PIh{wI>fM={P~>+Bx-3t4t@rMSi4_p9rxBeXaI@*k zW6f=U04`)m+AO?Oi6o&@!eN-oEp*Bh6YR=9`E|F6(KO6muh?BqQyESj%$SCD0qT<(3muW$T-tR%i-k$oROg! zBa7zi>Cby{T3G^P*WB0I^wKcm{i#^~l|#WpIvSeF*i`S~m&;&Eudfjq!Tcbq{kKIE zNfH|)D((P;?cQ2~2KCZx<1^o%B)9SH$-9qF{O>fOR&l3bk;3?v>K8#rfwhmVH=}Fd z!}xU=;_F0L*VqR}ZtsrhRdv7Wha2Bj9UCG!Q-Yf?AHou>jTEHq*Cu5nwHY?^HpnP0imt@$^6iSd{wv_@|B8}7A|pDv_fuPm$-xzfR3HWAGz zYOsIPJ>cbxEf}fx2Ws|3s|*InxZGYN5z29dpup$hz;lH>G?EuE?=H3?#cBk{ zlPZm8`3Tmdh-3)}_`0!sfZA$2_ymwHaG=~Y;F0x(K-ZiW1A3}_-SmN~x(`rZSc4w5) zon>S?63|bBT~Qse%V1N|+&QCl^-gE{K4=B}VhF7u4=BD`&{mmJw63ntYTKbk<>Ffs zwOXA6yCz65F{|KUoa?!)Z$->B(obbY3|Av)MK!j~-1ttNq<70h$#@p|cfeR)2FuzJ zT0naGT?(A_ffCKI8V(KOO`~?N#7;k70DrbfG|=z8SV$WlVG=q2e#dZa4@Bb zcC6Pa%*$4H<^B_)WJ|k@c(0`E8csU5(o~={_hWv__T{SG-!13{z1gH%N<;7md2dv$ z#|m&dvW^Mmu0iq^q7q&DME)drBKK^?oV*~n0oF@*OPt)J-PwpCi`SfckfP}KMU5aw`<(x@05a>D!-`e8bjo5a z1>BaL=Q=jg)2B`pJKbX0pG^2|&$dohn;X{+Ob1#|uFywQ;dz=G9xVC^8Z3s~V)Y?X zYuJ~PU-$qWc0`lt`wI?>Ln}+Dz|E*An5{Bl=ICCBFTrnQ@wyfRZsB^S9!`5qhCl@k zbDu4q{5U_UxLXb!*&pYMXl+SVLpWA9LsSg>XZ;w%^=^X6{Zi@h0n+NI@NwR1LX-{W zKfP&MiDIcJrr4b0L_TAM3NHC=a`T>RBWQR*Q?=%FfVDezs2u8!9gW}X{BsTG?2-w# znNHU{Da*=%bjrcH9K&Kh;+w%#aQLyEURE7ktEV?DP3zG{&2F*Yf|TqpUy4qi_em(=)%m|Lpq1GrYMUIGsWL+ zj%{fAoJYKl7aZEL$3ce-oyrcp@!U(>l&`q)HoH2586HRA>)e)11f`vj>k9GzZJUO# zBTZ=rIpUFWFGV<6;Ds|t!1&=mB69{)%|~^X?No%y@}+YL;AefN2B45A77g@7bZVpTI`S?Mht>;;)SsKUOU>7 z053q$zwZ}ZuzxjIfoh{H2XIFKh5`!$I$zWgUdn8&j}ioP6t)~ooziC>p0Wtej$?5c zf1GBTtYd}rJ5d>9qlIr(pVDH5S`xeKdhmAW6DojPA@elWnRB(5n zc!$4ONq=-&0^U^L8{2Ry@a&UNiDMYhm)F>HEthrj8?W7^daP>VK>>`_fo%nQgHZag zFZq^p+_>n0KQc_!_#D7KG8UUnuHb_;x=ol|e&(E@;) zk%}M@!Qr;T773g&JIPpC>XF_DH_()5@U_#9C09npUD_ba*hKQDKkhv!6+2!=UY*#< z$)PEOk=!F{xXZ5$0wQR@pX2J&2_PnAK3+v$UdFQ2V<MZ$lTY5 z3@iRCqz7V6+Wpc^ONp9gU)2fbdlG&ve1uyO<{VS$|*DhD+c_zF#$Y}Ao;rg*|Takq4Q_qHQ#H=t9C3Fn4 z?ubrt!)VeDAq=AhN^0SRbTfqb_I@WY5DqUjDfTxVhFAEXGo>5(ytNZXXfxGRidD%PeG(t(c) z?xL21z`aL%vrxWijVUnKPM$d-4X_Pb?l_n6*p`uPQq(lhD_vwcucYk)fmJ)y+RC;E z7B_C_g#xpWPr?tXbO=7A`J3JDuet-&sQAt0=a}SJK8Y_s_DdC#zgpNr1mgacNHXJV zNwp+5cj9qx6A`WNqsXoBdZq+!o}KlzEQk|M*8)4Rkmp7KL!SB2`|HtAAI~7UO@R~XE>75)A0;}7fv?PrI`Q*@hYrs0N8$3}b zP+lgc&SSiiZ`U`k?M3&&*-!NFkuBzjP55w%6(HLkq z0KRlKjP8^ahBV@K1L23?%Nmqdhzo~x-@N1x&B(#lOgl}$m5>rC8iZATzNK2UYDDYG z^6Hv%S#!0eA!B!6eZKX!!MLQEJ5e2)nKJ9Eu0pl(a1CNYt`&jeQ7ZNM6XSBzMTr~( zLLpFKoOC|lqlJ6FU`^Urd>bYwfAwZx@>jeI7lId~;tDRzt*;-_`KxS(R5s0!YE%wO zi}1+@94@jWZu>GJv~(7GK!veIs|9BS0;#;^~{5~}liwa z0(cese>VJyWDsD>)@Qf^Fg8E&m`!cwe{#afXAHG|2=k#lE)LykWtu^vN zCK4i)Oc-}fNiq2x$Gby`x#fn?a1N3|r0dwNB^9E^slAe%VO>+*CNQgWIhsP$^{xfp z$aDJk-!jX?W?v4tboBa}*{PCt{zd$VyxUoOL|I!CP-TNUS#qBz8<(AaH?95Xy1Ls_ zC3te*$&L5Kv9o`>+*-G?srvIr$L;PRF-tB{bI)xKbZv8M1$Cg)ji@jg=s|P^$o{22 z`Fm0T9`a>daj~1ihb7K{yuFb~NR)yf)pZ$1mzEWGpNmQ;TdcZ?Upv}BL0zVx znc~~^doLSnw@F{M^h<4XL2D~wO?#)-JI=RkVbKT4+6pa{kbHcTY^(N*v1pXd0MAZk zq)trD17384M^wRwb*p?g`MyHpA}R+w_Qj|&B91m5Kyz?&Q{WYRqY9igQu~jECH>w? zTYKRQ#ufVGrv4NRTMnQC-K!$|&ef+{51v9F!n?yiM-cm8=WWE|PazMx2ji~rj9A_U@g%R^@2VgTSQ8W#kDEeIZYI0q3Nz+ zUEP^_5O!Qj)K(gG$dI9MaM-zA2FFsmlh>6%?7f8s3<~5q<$jny*+7oYoehIOXoHR> z!k&4+k)#E?_WG2304&Y#Tv5W5t2JHL6IYOUS)pghSwWo*_VC{!D*Np(m0D5DS%Ku8fIvyqnKzW@Cn-%2maOCiD( z<^Y}nKMRwn9ab3|<E9vcT?T{}8dDlb;c(_Ws43WuKP+m(-P5oB{q-kz-R}?{R1W^# zUkId^T>$Y{yl9;)xkJEgKsWgEY=s{U$HVDQk<9-@CMS-CNbWu=Wr!*N%GnQwmkGd$ zGnY?GF!Skx^yJi3dAj#B>HI9(q{Yl8-(w^ z8xA6G?*2ee*lJgwXQ{pK-KTno-Xk5a+>C;;#f8d<<| ziTD=wf@O+T^5c7@V7;SO_NMO1T$4)ob-?xgy%aro{Cce=fHtAR67e^D%ZAepz%%^e z@q2Yc_uKFksMhqoVIPgtX5}QdSbL;le&P*F^;Pe*&ux08U*+!oJp4lI57_MkgcfX`Y0PP|5w``Mb^!$Tv z37p8Wzqr2@pQL?#R4p3qg@!RdS=pWs%sQI0+YJku%rw5I^QBS64p5$Rw#;-ssK?40 z$w@ReXONlXm^8xt8BfM*shyZP*sCsOfHr>Hjd^;=`gUHZFE7YJehmt>H9= z=j=OaDz4DUF$5p80`gY&Q4P%ZaG%Xq`_R4hyF*IdK0~+`+HRGXN{Krg*@yL@(u97~ zUR0-8)==i>GEydcD$iA>FjUDf5z-d}j6eJX<*Sh+R1XdPk>0ZCnguv{{)_=Wuq+{@ z&~Wx5cShc3Z1C|$=Za<(?VCLV%WB25)|dzWq2|j(wBdI~*-JxCuzz%1TWCw#VTi7z z*u9SBFzbOvvyD{+gm^>-M`5`^a}_R|PX|0+kU2@juQm(kuJBwmI~~2l?+#>&VUbAx zF7u9LbR`%>y{I_Q>o$ul#t2jIHy>Z;%SFP+hDeUmz7V6X0XGql&g4$f(84!SjvO8s z__zv*LIW;OixO|q$=Y3@y{WGxYgO*P1A#e4&|jVQ8>*Gs9Kgp5GQBiRvj96c+|>3 zzNM!bN38{TzJo&TLlTr#EIezqJn{#)-7+c=2N1JAzx_SrogaDy#@>as(%{jv@}m7W zL;+jy=*(CMd#9W#+cjvnmsd~2)#C_a6tttHI&NG#`J#nQJ`vl}0>u z?Np|8BLXOYQ4Qi$UbWCq9#2<8vH`!5Ynwp<@nv|oni^(?32Bfn2*O=S&p3!Lj5Jqi zVVLfspbf|NodW{V&}M+!ytiPA|EqVbNO1)(7Q25{6MO<*Qfv9rowi_M|CN^9Z5$ju zRB8;&zE?Nw_Ie{DuswAp$7(h{rv zA>3(Aw6U;4lL*`siEQ$?Jr+7K;+!_O1q-Bx48jC@yObV1jPYT^3(nRUSB-%oRPA${ z-mq;|sOss(ny-u|aPP|b(kzx%G)qkQs9XN|fs07@7K&bjut0fziLZcZaZ>2mp^K0g z4nwJ-vMDvaJKnODRA>mUu@=sJMv?ovU<${}dr?yidHn$6yK8WrRgq~fp}U|S(L+JDnQ#c#8a zS@H~8(j_@Eahcf)or>Moc+cjvhgPYsQAa1#5QflCA&MPk-2%Mq+UT*yIP za*clLeE4@dlHTi;QJu?+O7a_mjAz!=@opUwBG~NMB&$<|w}a#R!i|&_+UdBPAyk}` z&9FNHhP<>!h2rV)lk#8zi>C4U_RV(lrQqG9Z4am1E~_Ec2J0N>9tIQDJX)mO5Cm!N z2ZJE#$q)M8a^Gm24tQviaK9%O$6WT@F~-{F*j_zvNm38hrFCG`pp=Ob)%$9;}qalqY`FDl(k`-Dc6UAr;+4_SNm>} ze3L6dpIYwDD`yqegNrBw5YnbGHF$>Cw=t0auEj$nzo&P#UfDOGFnFS{S(c5lBzxtN z+YWv2y~gxW(w*s<22TiRAM11B21*)Z*~Us?g&M0Xe|)0k_qm6)NAkHFGpVLWnUhF% z5sGr3u{SJe|7V%U-}9{f-`{^M$F9h)a6nlve0HqtAiaB_w}2 zF7ZU~ht!1?{fF&Em3gEm3F={lT_^B1D?UXglH`#)tF=)y5y{hXmzLGi>b)TQ{<$i( z85wK(uceJ4h^8h)`=uzFJc_Dgt~WOp7_`m?8XaN88$wHYL}pHvhHgH2`v=9qRA`JDHc7o_^dSq8b-Ip|1Um2-X5O*j3@ctYO!Puxe&S7 z2=3QB*^XC!rk9%GgSxNPS*N?jhJh@5^QiJqj#%F}?wC3%epSQz@KVWePD18?#mtF5 zG1{7xMe#G8a!aR$*x#S5`{%KFad2XEzn)><^k+ROEN`1Qo*p&BX8CmM_ImG?v$}s} zlvdS2l|uUEEikm$HSujTvp9J}%J^Q@U;sM9@X(cGLv7asDP?pu3pM}mDR|MO@^J~{ z#Di&l$?-Q6vA=ZnLK<`cIrcZHem=NVEvC=CSc|G?PVXw;`#f*EXCq?H*xY;H2Q~(7zL%?%_?mka9c^ON<3*G2pyG(JN zmaCTi2AE=Avh}65%d-9>?$6syqVG0WqRF7O9Q32_7LUEW`m`^#ns3bt?F--!hh)=w z`Vy?WZRO>MwNys9RvrXDOqK25UMTpi`cIvWL_1efn+1d57?)n@`Nj5We9F9PuDN`8 zN)k*ydWo6pNy4~zfo`~KNu=6mzS=`&F;gj)ft}u~aSbL8GXOLkhx>~#qvaP&hG>Gu zGC^OcZ!`Bfz=dKY<$iJjQRXTYDcUIX-*>y@Ye7?=!(Bju6I=>~ zd81ob>uY-f;Gl6jU^!*O44p>CYWdazK8_DNx`jIJQD1P4j$brFlt5exOAA1?&dm>~ z*A))5u?J9K_-IOPR#2hI6jmDgGTq!~ooHmQ7i9%oG!1B1$mLy$3rn3*x}q}mCf^4m z_yru!x2^q*R$K{nlbe+5rD%&>X8ATh9Rb<-Dc3Y{@u+i(L#bvLN`Xw&@D(%ky8eKoo3=Q=&c%Z&5e3UX%8l*>X zDJsh(orEh9*)2};=Ryd-JcvmD0thv58)|m^X}}mTVFH#*ZoI|j*c24lMrvg`%_wfOTSO^2440d6yn2{XM#1*UTy%L)N9dKNvP7N z_``cHxz`jhk>mSqRNbSyM<0*Btd# z1qd;zJP`g+tTH5kdTYOvmP9R1-K{gFQBw@66kFssh@8`rx$eXME2TYkNHmZa;uww` z8YkBklG79u-=fQLV!Rdp*QRyJ4TH7_?K^}iM=AfAxIn#~*?rPvlXKzZQ_tO~4@a7Bqt;|LqMhXY`qM8{KSBv(*xu-QR7VU$x zXD>TFLCX$M!$cvLPhIkKi}Y0KZZ{QA`b1|0kKns`C?>QzP>`BWX>6)EZ}p6zcafNj zqXmadSGNS|lvqKDoj-1oj{Q!Ugc)V5vwN9sqJY!v+%!Y^ry5*dvA9_IVxEE(HvLqY z0>;ae$zn8{CZ+Ejf^>x*-gpqOt2m02$e2Bwt-Ry#(ygA-njwU2#$tIaxH$GPPh!H{ z$7**B6SI?Z7Y$zvdFfEh?wXxA;6^A*KI{QRU>&SBX8(x8-wKBP_9k|L@irRBI>Y9~ z)gXz1R~4@zEg36%Y{8%ejZ~q@m~QiTh*3mgxq4 z!yK*uR3?2UPcThqST;X8LRp`JxeU&po<+zZxo1AX!0&2-0rjL@X*4-F2P79747b8_?=3mCA?*tT#hO6q>vKK}n>;>LpV^~FpWo53wTj{?_niHX1m#Vyr8jFqwRpXVEA*_AnPsQ;aU z{cl(?a|NpEahLFB&Zkl;r;{uFKOY6WB{ZWxR!}5Ad$gcZpclk!QBX#(03s}4g`q$B zIRpzLZ~L&evh)4VPeh`cO1*|)y&!@A&;>&BPb84Odr_K8eo7@-R;T}RRHkH19l#Bq zG-NEQnb>_?$HkxD^ThV{Ogp zp`u_gnw+!=EhJb=OSm!1bLY^wcs$-BHD*#-9nT5P0IDQYRQiD!l9XeTN*cqI!`JOA zm30E+`mRlqF~ytq0{qPMfI5+>Z-Bm}KlF*_+n`cKNHdP3$W}c9Op}@#xRnv&;oi|G znDqS6*Qr>El&$bBub4P=&!Pd-4cJo^C65|qy!Ve(LCR}#ulADQEDwiKgx&dLpZ0lV zA=x^Sw#@U2aK}J+y8`S4AMvARIPQn~y_}vu?diu?9Jp|EPBz{)$7k7Kc;^km-!@edDs(@cz^EuBj%D*1>;T&Eh$j{{j=Hh$ZgImH>*?5U*7h( zTj;ZWPT|@{xZ2fZ!?IAaT}#Y?UUn4Bb)~Dp0UY5Z=CJn2Wx#5JrLcPHi3!`O6E31n z$v)n8db;)GvIe_1A7J;^UFEJ#-IggW+&bufx#VuQrGh`6;eXWD!?*}+hOq?wFL_t? zlau}A)l~=6lJ5%YecX+V^3u+q_G4WYl=2r5?|1Lz+QTK%_)#6X$Z{#t+jR|gtlXlWF1QOv=3yS9?Uxl{um>lpzPg{!gSEd zH8I@_B1X0t)OnxBz(jXyA(047s(>K^hcVnB<2Ek$!@da2Iwg}!9k4jrIDV}oCR+MI zb5XsgeTPdwQbY5%YjB0*MotpR#QWwp=c{UU7#GhpbW0=KO7F z%o95;MTxTad$5YNGBijgg^IT#A+KrHt8oPhci<*8&NgzsvaZmxra(kIYN=O9w)(Hm z0m}7#ed21{8m__Z>izu_WTX4x;|H93a+nfT6-n`w8ogc{!w)~NubyRl3bd;vq;tpd z!tUdFY$C;8`1_u-y^(~MiX;G!fFS>_n3m7=G-%m@xqN<(3M|er=rI-%ZP1F)M{8c^ z89jb03vdIpTb5)|=5>r1 z<%Jc$z}3Scn>w=b0DVSBYvf=%K0S7Uq)HB)78`A+>*hqQcIs4qyjsOKp%ako(EMCV z)@v)LaArGNk>iO$y?Cjo5Aqe##aTvNLX8Yop25_zX5L`eoOIsMhEWne^60;Vtd48p zHCW14JY0K^L2y@h6>`~lBRS5b2|FbzV1?hP9Bof0qv2lhU}mIandY)AvpPUk5lUnV zx;%KguFz0O&|wT>X18gOGvOEkkQ869KTS2?e@LQc~H`x$ZgmWB?(}S%Ysful#ryYu$&7CMR*3B7I1M zfg@N-4G08K`x0x*~YH!}qMnMVzPO7yOw3hnsKZE*wE zS-0>o82(m@^+4RStady(bwI6vSZQf2EMgX^)d)hSH8fmF(zs(}dRV4+Kl{nIzg8kN z?!|&whQI%Sn@8gwv2s@b&ZU^83JX13`EP}) z9t-E%KLjh6D0E7|!qozP0^X0ZJ^W0g!Gvu~!M3_fwU<^^7`ZS?sv9Rwgx1=@p1Oj% zsJb>lFAHC3pBa$OWo5aB8#3Lcv^MvSwi%?XVR)7+mlcq1pNX%;=|Q~pURj=Y1FC9> z``IAu$a>fd!QTM=NG2nMv@Vp0%vmaAg&;Z@OLexdo$6Bnb!Z-xHJk;xfQ}zOED(+A zwicK7Mlga#6b5vP*0P2I36z}b0h~$g+8Z4OVLs&KF^5|jD!Ul2Mhc@8Bdk+BfN>zN z`Kx&D&YjNAIYQX;^8o^#&MxZ)wDmxOzb_+xN9PzBK+p;gO-8RQiwPlbY5f&qlAW#jQ_=3vpmJoGQ$F?mxeVZq(HJn@?Usjwd#+e|4{k!P$io-0A|}0wrfuf7Yce zz;FKyP(!1NHhDdMxxat9z}XL>e;hh#Z01b!SFI)zfWyBW&B`Oxj?!eYOr#+s}m19)1BEn zRDWhG0=9VeY+3qz>sMpj&jnPv_YF-d7?b5hGVdN=2r9i@$AJ zn}7T-qn2Iz{?fTCZp-UhN)PJ}q^{f-zPLNXK^#GUkpo=Tc<>+`xk-2#uqcZnf+$Sy za;)$PnO3->6Vh|pKGHmgc6Y9*hZ|pY#PJ*P|0MqN+qLsMv8stj$Hs|Z_B(BJt_q5V zQbUOYKzcN=K-Fj{3fH+-c5Us(x!~YALck|r8ey9Tcg%|iBUYBy#Ih1L$rOw-_|HFs zmH--5NkRJ7>q_PItqN*j6acqr71EMnLPeiOQ%xQ!BaQ7%emAlIT03FjCL$hR9)_1K2VoY_IP?yI$1D(dW%#gibni_-3_ED@NsF_yV%u)N4yM%g zA^NIrt>_%zINsU0M5*Cm4L%%RFbgz`J|7J9+<|#>K1nU$4)T!FWJ5&6E~{M(#^=Hc zf;M4CF-m6SHODn0)vRS_HZId=BleOo9*)J8zdgV(zVhgBH~5{87cd#j14d6@fD~I^ z5aq-~5LE07@4k<&6HFpRWKOIfa`XWa+AjKH&v=Kz{`JLK&LwF+q`tPpIBbaom@eB{uj)yuI^5Qx}w&Afqffq5a!_9#dJ3gn-v#i zHEV8Ylpwuv1qEXmk4KpeVOJMqYcynYG3e_bf&h`|>im0wR3K{A zP3!jUH;dMLRkNbm?X18h#GnC^s35(dzL0EuTXrgI(Y?k)?&MNy6~mTW!ANo-54G>$ z_Bt$3aq`y82)BxLy0jJo%O;SIjVeF##VF|Ha*s1el= zu+=!@a1x@AOR}Rb+{I}M+!1;lY9l9EBv*R}a^#y90F-)HCtHvdB-rs^!l(9}|E;+l zbpZxrnQ6)Ik{`HNMztZF42*Zb&De9!cnA^v?g2_!e;nnkd!oouwUtxRU4X#Ch+|xM zvJ=a}Rs6FKgFL+QmsF9Ts6=1YPH&ms1BFPU83eRylL`=s1`mTteIw*@IyXq<@!iD zE@$59Gv(B|kO3?1ynE)fkZUdYIR74>@_6Qk=(Pnl(Uzdb8@G{ zj5KfwEWyJOI{ElQ2es+Z9ilH|8cjy8jGU?b^a>O@9a~x&3z2%njR@9-fGrGBp|3C=dj6157%&nOND-8W z7FzPBMO;2L4jBOP5H50nJ2X8|DIn|-qkUscD6b$UdOH<``?;qldlVT9oI;^a`e*!& zfqc6i?N}Em_GyQach>gsU^tGdeKR@8GvGRd2azX&o|-ipMF9j}6S2xYI?S~?*qN$4 z9TxJ)f0BOwM1P9!P;u&zXu>$gW~a7IK{pO)vW3gmm^;ou`8pNs3fEfN=n(>D&`RFN|oe&$RPJrpGb9q{Hzj8p!0SU@mmPX|q z>o5tkL`a|_AmK1QaS4pe0I1QBuLfeBI7sj)QY%->zpHq{+Q;7jZifv98JqK+&Y;-z z)?U6b5tJ-qjg=x*yEnT8Y+z)=W=s#z%8a~h$feY@?zLCy0IHeV-;bA<0Qw7FBGAz9 zCWiTfHlX-krZpgG7NoELsRMR8T|p?iHcXR^NqOMp^7bpZih;yB%2duu5 zey~>Gr~a=^@*HF`U-%ET&#lktpRD6h*fX|09SopOhoEGC0Ygp&0$?(Gx!oVVP*j>~ zO=<>&5gcsSU!@M|+u3{8C{T~KdtP9kg?vF<$j6;1pIfhtE$9--iD+JSps!0KdaU;=%KZbxQEMs1U>(IK#K)~xT|j13ktHoV5@-TN-zz=6KIXlwjIUny@YscefP2YEl>GI% zv%d7ZEhnO*Lwvz$@$no6nUQl`d=>aQ#T1)$M_o{{+%0ZSEZv&ev-*KeYCn$V&`3zA zNRJUWfuLq(MaB5|2n|*$bqhMkE<&PH?0a@+B|+e*jKnuSq&e`^BAWn3X-N>?gznP) zq*g52KgCT-B5{9Mm6Bp_KTwtidL-_L7$hP`gg2~in|=dqMxw0ChV@E8*?Z>JXU28I z1s@)()rVJT2C7E<{I^-T@9;d|9)}B>ecJ?^g22;c~FYh z)5tmi=g1mtUWG!g}`QnMLkR7)NH;^^zwe1M)1gi6C13MxDQ-3p# z)bfF6`HDZa8c_~`wWir>L~E3ju+~O=%yxkGT*;QFh^YV&Po-uAE+Uv{B!3pArHxtQ6`EM~~q76AI ziEIO9Yq{=L1#vcc6)ri6Oe2qvJ%2ufdkAio4K6?5#+PMhhx;$EP%toZ*j_KX{fWh+ z+a(FVsh8iXS~Igvu)Q?4z9r39NY^E1%{<;YONRRM3=zoo!Ec1ec|+Uq5UExNY3_!7PfK^=6vg%rhoZm z+G!nBTCPF{n8P&{f?sW-^eB@j1gLAyLe$$T`+)< z@cOV-L_TjdngB>d(=wf9MKVz&CxDjK(UP+$H4nne9ZOMv` z6XR^V{YO3>wr;=+?>jd?-F_+pUtd4J{b28KyIWiHpuDZEZuh>smd3`k=0e@@4#IH* zSIu(%ZOGeB@Q65BX-r?nR}46j!fnHxr@!j5`<_%6Kk2h~MeoYkB6LP^cKPgvI=heV z@U6$WB&7WI5~?|UNLAK@i8=&FqnFVB=tDx?me6LfR8%&!e;j@vGd>DM78!VB7BO}p z6dav+eTk>N?nd-5Su$z(#?)gq(?cxFGHKZ@*EZOaHB>!v)N_@Z zW+cwSXW+XH`dm`hra9o#2^QYbltx4mkO|nJpF%FF(G4b+v{}6wND0YIN z&H+erbcD4QMQU88lPtb?9KW7g7Dz|Dfw#|!>FSEbgg&=emr&v8Z#v)g+gSK*i;ibb1Nxbe;4pyu6-l4cJMnOq3zt3)YF+JA z#flHQu=M?#zh<0qh!{pgD}2Alos1>whczQ5575pKu1O)ISIpP?e)|vV26L0 zmpV2+t9LZ|r+T5$&oR$e+CSZX@L^!>8(fri+@ix4x*o6QSU$of7t zaB~F@Mm*+--J6m$+>v%{Z{+wgU4_Fw=k~6KJL};x2mnviO@~_^>NB8 zlz#MW*HAF%c864;6nC*#A((j8LF2FyqJjxyB{1M=h!s*L(3z-li-Hd+B@1K4QacEZ z$QXsmq=Za6=?sv|K1N`mNvmM7k#qXbWIGUC@{xh!G1JGCPP; zf8%x5ko_k%M9gWgX<7B|<8*M!{I~za0SRbHbLKcdeQp6j>yIg9sk2@19vSYM^|jcr z$1Y&EvphUzI=T=6JD3paQ_nsBT>R=$&!xDSFH|I+=Ysn58{?EIBu>!az?3wjo~?J; zEJ=c4m{$c+M5RNg4h=SPjVNIKKuB|<24Uu_Q%-n1e)P5lO(2jQ_UF* z$BKR1gucEhldL*pV57ULfH2_A<}v^L8N8!Kt`TaWlqG8V2xN(ly zKzMBQ&KQ<96)2zG^UyPo@ZR!lO;ymN6=^Rl18Q z8olR5G0Jnn<;nDw0C;3(r2u^yj~=^Ss{bto6RT;>-*_Si!W3 z@(mzH*642k8QEpqx6em{--_zM&36@DTc?KhUU_##hPMm_q42}2aF}z9$KaF+C^Zz! z7yYDkaNtaY5&(^mClKuEIh=mKgR|us1}e1rK{`X-mbZZc5Fio-=!sc0v=-11v$+E= zCw8Z_xQp`&^vqn*sUTjZ!Wov}_LCKg$B*YI?$Ocil)25D54OzDEH2JW&-?k!Ppc*8 zTMlMqC=}#Js6X||-#_%EJT^)uNlXf6g5aWQcZdp8n zgIM`SCONCCtIdta%9B_PMulf{El(TU84@O}+o}?C(8lBI+H4H-H-$(4QFv_Ja$w2W z*>e^cn&hU{ROxX0&o%$>YLhxGghjqC*)mQTTvFTjVMj2ht*E8eNNODqZV;Ka?1%ST z4o)+Gzn7pQt*NC}r$;bYf>nz;g5RCGUPJ10Qh8kxWDQrRxA;fqSC{4#B#OO+x%Zr| zh4>`XhJ;DiU;@I}XBAu@MHw3Z z=qRc(RB<&dgOR43w5)P!>xmC!(F1r#bAJ-0XyQ|WCGG_C}#{m}U5|n8JNB5LpSLoJUroD(Pcot2Rt0W1U*4qN+ueqNt zanZfEJ66?7J-SXp3uMRlIJH?;O)42_8DWa6p-O6Wl-e(Md^~T~CnK$z%qDZ%p*a66 ztgFgMYAJX6;t`eA5@Z&jUkH#06|QQJd5`?kzI~fO7b+|&o8aWkigwcY3IPqZ0-(aG zWvK^#ai7G!fhACQrI_Z`P_v@=tOkn+iv~hEYN&Y^$D#0I3EUebyH20x_^`d_=F~eY zkL@sy((EWe?M2!ng&)w+4T89DQ_IE-yU9o}ydF$878(kt(#ZDq*T5E%_C93OQm=)- zUfSD(AL`y7fBVN>1eaYYVAK40oDf(TpW`%~^mgs~!A-SYf=YPyTR0P5@wUxH^ecAog7senKW+RGxHL`du4I3|Hf=VzB8mPIr7LbUPP`;Is ziIHPvhKyWR2x$Ul{lSC1y$KK4U`H^>&;~@0fJD}Hbmi0?m1MA8mBEjF!Y#Le@_%P` zM*04k0B-HLzEw}Jf%>|JFJ0GHu^3Z|92H1bMfnHPh3v@6WNy(h&3&IzB%3Y_^j{Sv z5sa217eo3gr0e+fB*~;G6H)Lj>ON6BceQiO&S`vaN0oJ3M+~oW#Kmc7-*WHKgk0?+b=l82W4Qko8}#Uq90`4{bypRdneNQHhy5>$CE{HRWb$ z5%0N%V5PLM4p}h`IhNz7@m#)HZLaRw-pl##-}NpH9#`F;n*>`aS6K_QiiK7d36>PA zX}1!`<$&wzV{#}ubdr8fQcr(lA8H zj>95CF8Oz)?3_H7DxHH~)e;F`|MBi|ucCdXD_xEr&v$m`!M3llQzBP+tS=!9%~m1V z&e3qDM|8g|(L+=_l6?50VU<(InKK=IitHl1BG{=sFCx_tg#Gc&U{ib;Uoh|N;`;qR z>R*2yx<{vPF76-Bp7~h!pVPqGsBN8QcTV=B)rn@~+ulYw4K#f7R%Udfjl0eV!=Ai}?lZM?lp&BRR zY7<8k38D>scz1E%zQr340j7{B_%Lblwo@`~{z%m$je7ik!-mJ6`S5OtW8$CD@P=6qg+K!Orp*pP@nTz9#)pr}=E?7CwfS*Wbd)P{853o@Dhs+I2 zii|)t29e~-esLEW^NieUx>>!lDTU31&U4gj53UEjNP1)r!O0+ecNmEn)HJG7IQ3iG z8(m&}v~`tSaDjwo4L|LL%JYm!KkI-PlD!d(GU@C3%*($8WYHJ=%JXn9%|9x77d7^? zrM5bHVo(qBMATp6o~u8Y0~iL_cb&YQb0&0V^A$T>k*7bNa1cTnQ4-f%f4rNneQU$9 zYIF0)$MSdI(Xa^FQDHq`dM`*sP#j~USiyFgjwNI>ZqmsX^Z!b_Ps)JFvkdt3M7D?2 zmfhb!D=PZdZ-;R4UxEbWZ$%`zL}`Eszu$$=tzCbx7eH?My~&pb>FxH3+y$%UqPmW) zXYT#|io`W4LkKyX_;?!W+F=ypO~XQGIP;1OkQRkF|2=S~KthN@xp3qR!k&=<5IDdC z2mU1~{uYrG6PKjoZHweyR_JfLIcBB#7VSZH*e_;>Qv9S`%?A6!#LsCxU1@wSa#;!w z3AVkU0aPAFKRTYm@HGpGV%f5C#xokcno86cXN8jhrmQlI_PD{iz; z)rPzZq7}O(`|2e@v@f9achN0|8U87$C`h=#k+#LmJH1IAA@*$5lE&uFnBl=T-N2!R z5XL7_PWV6MbXjR%c5T^J??;<`RWuCf{8JCQh+eJ5!7kR0X+xeyxlKJDRmsf7POmRu@&6p@+4!DZo`-rvf{O1ncNR;BSAC}#aF zQNUh|u|5g<26rk*&<(YKAU&W*f6z@p(nt#&=a~{*mL7-(Gw(M8lY?ZKwXZNt5e8h? z7zVhEJmR1fKMV}RBK^Z~`15<*Y5bAGUZ@uD@$O_N3#5276YbmW8>VFuRB)C20SOAQ zAmFt0@e+uxt66}|A7lxKA>lTbkkzTicWW#vapaOcMfL2ON5^W?-6eSe^Myji?ulqzbGzeVR_h-fHy1`14K}`jMP=3dv zTIKh`05L$$zbw%R$#7O74HyX2;=2FM=If~d?q>zk@LJP#M%N&nPQy!evYNlsPyW3AV&kx7rc{Aql$HWbyIHpIzMT?>v$T?h(}|X5Tc(=E_KqB^Huj>eLaBQfP7O= zr>2TJY#CW4A-6a=X`Z-d&Ako_yuhyc&G@Q3<;tP8)Pq0hKbVutOPQ?Rs7k*=5BseH za!*}LDX>b7X8Z`Z`in(Lb!U9FEP~4YT~R-D^H-HEP=*q3|7sBvWf`dfjKm=_A)`Qq z2pz0DGGas;WDK1Fs|gVnz#)tyivrMM0JMzHtNDJdt>>9OlHwRtZ}9jZEj^wP&_B7} zDfZa?0Wy*@;3pQ)=+yKUWKMmDv_u@ETB9d&t8ouwGYK5qUIF}TgCUJkP%N$8y{ml& za&DtM2u01k$qP_D&ujXTp_-{;O2pERocb+Dab>S9he=?E)wqk?^wy~J$*TY<0z{d+ zd2^29{*3;8+A7a<3rx+lW9al}GRB=Ucm2j5H_EA@!MU?<7tWrexL##liQzJ%`%j=^ z&{xW@;nJZ&skF9E8h8DM>}^PpCrm~4wKCbwnnrUmtk*$#p-2)#>&)4v`>xzu*l49%%Kn}yc@u9|gZJySC-A#wM2x2$GX_%8YAMXCCvv{u<*mpnR2W>l{i zsp^-&k|7z}uJ1~nz_}}Z8`P>=WfGdIUoTQbDclhk(>>TKllrr-aTH_8p<*@jP|JNB z_EH_=nZWUg2NbZXF?nm zTzjXmf99iR=nj-kDLQd%|7YyUKp3QE=#S5Ko6Ud%NmB%8CeeVdbXD*Q*SUNRMZk8Y ztC!u~J=A-|p7YURVbfJgc>svkhqoGN;3be?j#q8kRMnZ8={sytTE21W@zbfz<)x`< zlP1_jBziI}JtiurU~se`KQhv{)$o%XlF1*GDP3H!qW0Gfl^W? zcg#xaxL8&4cE+3Ke4xG%$4^?P6;i;J72C$0hNmJHu%=X8lp-l$GJ_LLLTvY~ zg7Wmo>wHyf}ddYI^z>hTASU4ilR1W7V0lnT2lPX^IKFbc7e#*;Fu+ey$ZKcBtG-kS1Hi zT?Bwy?;m^)7x^etj$>iJ4F+9gk4E7=vtiH4!qXG9m@Cw9|+bx*A;Yo;2xn7Fa(*v*2 zmZ%2LXm_p3J1H;Trfm8*;~+!4U}LPF3NwU~hay={X49Fl+aP(|qG2Sw#snuv>jzy+ z5E#in5%pb-%h9!{AFxH3$W6|WFhmqwU|&QU+F9vU?HwkfM_N>y#%_u}W6&zkZrTOb z)SW@H`G5y&eGzi1wQwd~S#OU>2#ooVlgC`8SzXKHoN;z z7Q>~e!{RS20n=))2jE#HB8_O#$O9pSau)u;w%YVz9BhC>Mf5l<(o3!X*?3x8vCA$> zBBl56TO|edp{ZuPX3yEc{NV7q`L5j0W98MCpEs_}KNixYNM7UK&d!V76lMRoj<8@6 zkMK+$UwW{6eAi6tp01CD;llVQC4L@fpL>Bxmi{N@-eG|LxP$1~zMto{COLfG10O-+RZaK;obD94Vm_vVX>qG?rQw(m>(0tSj& z^9^dcx+hG(8j_G$nRX1qI#RoV4c=`LVgtSN&mA84ZUwhS4dc zftp60ZchSYf`S4bP#4wsNi#Ciq<<>28k6?fKFT2eXj;^N=25ZTldj#d=5H7CC{v+H z(rH(no}*H24+GWr)YCCx8aR6PJ<&VfANl!nWPcHWkTVCIcQg|jJxlMqOV?g)7RLJ# z6_&|f;_-<3!tL!G{qRLJZDtw8mntY+Hp;Zpx5pm9V&46mLBNQHYM8t6P>wWzToI%U zBFoGVpA|-=90ckE8iWp|7UZdJ#WGnHB`z6ZNN@oV z48I`C2%?u@%8Q$OsL|0`^17gMj3TI57c?1ddaVlIjRwILKD2ur;O2LGz#W<{5v+T^K73(vt`1FsYmX>h1XowXsSR2v!@R_^!S#kr@)nYMV+%KN!pSge1#F=49D z>e6|dp_;(=j$!4Yk=mTn4Vj6121<`ZXB7yE_5>NTbjAa~qUtgm7+q)#{S7j@6g1gk z72JfzHc;5OG^A|yOd0da74fK;E`_3NRabiY2KAj}*0Zhm<>w z8a3h(54zJJtM8E$+;&C;Pu12trMFUuTO4kiF@Jn(01)Lwy+QO5$BcBb!}FekxlsdI zS1|P4VL9M<1U;xn!htRS?4B`iv)b6(##2QE*}4mx2tW!VF_T!yv`8#^Bu+ z6i)06_lv|Sq-Lx;{bK5_+l(-xRUr~+@MqFyz7{EZ`eCx-ia=ze{E#3x#AI9B8bg)I z#cZtRX`Re$hasKE`+g z&d8x)Cx5a0W9f_YAzrgio4lA+tU`iilhM_%tb?UqTBP=ea@P*^CTYZW1~@mQ4cLY? znFIxNrjti3U5(p-3~NtnR^k#%wnAk5gmtEKbe}ELE$o+6igLy7!_^**6p-;1JGZU) z5Gx^MILp{zgOPRr5)D!XE6CAoR0dyO-8NvwAx;uAJH}m?U#B+2TS-3E- zWc^8ZKAUpn2;@wxc(;rDjByIIE~SWX514d~(e_CtSDDt(pnFsEe5(nGR? zvdL57m8!VXfC;ogD|DLCrEDTgIMjsO{ca?KX+$ z8SOLAINqbW;%gHbEh^EVXFFQDOB%2^mFO^k&-8D4HaJIhlnjMw>7xdzF>2Hfvu;Xf zczz}c3a?-K*twY~Nvx!17tO>J$cD&UM_TRkBs0;4kMC<`0#V#K1(dL&r8!B0^5k<= zzoojCEh$NJ41g%f?wg$p%InblQ7Im4_sfDWJ_@E&P~V5-y3nKRII@A6h==9{+Xgvo z$TOD2C{AkwlYG-Y1Ky|Cooas^{th6nwrRZcZJkwYN5(DznV{}3`=&o`9Jpxag<;6- z4}11}$VP&W$o>Fjd(GH~6Z1axuWhpb%j2H6o#RcltGz#5Xhp`e+@RTGw$YDZF`GAU!L9&p&}}xr)1POi$ijmo2BsiEHj)IG zoe+nN0-u6^e2EBsSnPpcoDAm755UHYj1t1^zk5e&uQ%`u-}_TVyOO)5pEG@T2Bz6suUCc`POVE$N0t*q>R+CD#j321OD?VRb=lv9g}!v`k4I22aHMN604{ihv|5G;p&GS4|0Qb3~woEh+|-KRGn&W}-E z`WJfLxXe#s%0b|`n_k-_k#*}%t8n80{`+GTw>3$0igU1(8`F!9ES}$3x8X2f}xTWf(Jmr?qO?1;tt73c0RAoMjx;cj^e2IA5^sDgnS; zB7n+mGZYknj~{b`aa#!xL~!3=86t*jE@5rVKBfatovc*tES1Ux@c61WVH?Uwt8CaG ze@>7lx{2L?{vk8y28yM)X5vP)om5*+@VS#7SJ3{=;Oh?Tphs8A(oQfhtnNJZdcV$yVN zS@j{KV>ql&I4o|D1nemQFNrh5ePVKAV`cKZG-O24IF0M(&rFJH$LalfUZLTG6rJgkqy2_K$-|R5q0h`K;~2k*30XFPFY!^Krrl; zj*ZSRb--sEDzoBCgos=ajNQ5O@6A8!YCRBb!*AFB1K+8+Kt5^Oy$j#-(wvJBC=K18 z<@Z~KyBbdzU9O zA(8Hdq<2!cb?pNOmq><7z*yhayayHDPlNy~Aa+5N9&Gk1TMDEliZeRV7P3 zY-6DZ1h2;ev0~J+ncaL2hK0ib_LYeA`8%OP%zErac)+ub^^jI2%f*F>v2J8RADQhO zBBO;vZ*8B0VKE%I<)}jJH19>|N5H+dvDzn}SUbEM0g{S&N49 zhWrzB*^m*#8VvOE`2Z#+E6XjXge*9KH)NNWr$KMo79>?Dl+>bA_O?y*MQ)ABYWBBp zlcY(BM07_x-JW-~*A*23H|mtLtqO1uq|ugDN2CdVIbnjB1@T$CGFrMCDkO~p;h)D$ zj{PZIP~ZR;Zq}~&)6fspG!b+pw5mg$y-{)|9a=ZW>gXDftt3>A-^qq5l@Ru1wF#26 zpxAQD800J=3>>T=o!+k%Qo)*C8MY;)uo7=xC|&3q1gBsxWx-AeeS$;~l*cLS_GCqX zPlDy}lb!Lc(FFwwX;OU>BuiE|sHJ16{%0)n&|z_GnZmr@{$bs-Ohc1hx^v7pb1N(J zIFcTwONVBksW*M8H&>L!isw$t`cW7vSe)?R<{vS}j?m?W>EPWa=NDrHi=BMT3EuzN zv*J)en858U2wqxM6Q7~-6fkyZQH<7pFP77`*k_fJY_AwC<34c#LAc+`C@1l~FHT*0 z?=|T#+v`$h`n+fNnjWb1w#c%0d7O6M*`)WNg++cQ5|)$UXWxc7dU<)@R%3wL%-j;b z1>gcS=~!Uf9zbO_AUjE3rrWBa?bENP+0v6ClvB=UPXapf&7X2$rcy}=Dnp_tQd6tf zuHCT+AY`vD46-bU@BlhGp`!eAW+p57_cbHto%K+9HV<+udATq&&)NoOkONyr%zv+D zC1+-~v5B}#16d-dWPTP2vYe_^MtN~H2teqU3RYbmozv$$`|U!mOnk~yUl=+6OY5Na7oh&&|FF1s z03^}F_}+PA`T1lTxq_@wEg5`xUGR}UP9dkUu_h5J)U0V73&BTvq~sfFvUEnwe=vxj7v+q^*|n4*E19YH?!@ZRxp|6rvu z_}1bRKqiB8l1o~!=Qogo;mY=q=(#P2DMcpR3gya{E7p1jA6Boku<#QUc4S9LS#@r9 z0ui@n6$%`PpI3iUmby>ZoO5Z3P^JedNOgu;^kX}I+F+_LO?358D@Q&UV7Ao z=)B;GM;+2p|CT{x>~uOiD$KEq5e$E8nprVp!JXx9`&(=Vr)VhSZJTAsB2GUizikFL z32t``DxDq4aL^Xk)&<5J8tHHUNDglfGah;7!*o+q6bre?RP6;`lZRMyn|Y2$&5E~Z zVN{qmu}JSH@qRG{!ixw9_Ch!cQ@G@k1XmJt5nl>^Q%97I^^i@>F$aey?1oK`;Z3LN z{PM0NJJ#D86$Bc;VuFR|5F2{!jPgjPhK)YOXItygPEY4VUw!$t(x#IHShe~7pfj>5DUFWgS1UL`BkM(EVytMxReBjfY)b^ukHR8RCblT|80 zO|I}`EnUL%j!4LF_#Umd+mV4*?Z+-{AkR5lk}Vh%W>=!b}oYUz?r6jPGWoKI$&O9Yc0F z<{m!R3afLIB_zLTM1hk{!%-Nb;>O_oYuyN~`7*{~?)3+x+{yweudSUPL=~CZ(xA%K zX!@<*gqU@8!|0=!?wgZlOyz*3D&f%PLfm20@Tz<_!7boUhttq>IUV$=2Sj*qfSI8_ zU0;>STjCYujx_xGdL_L2doDucyXAnMP|`~)OU81w%KEpczFfs_+V~0p>nyb%4q^dF z1Ya~wuVYf`Mmt#RH^h>#Hc72Ps1TRCjap|#tE;1|Md*zgwVE(YP>-pvjH^|KFyfT@ z@&56^_lNlv$B{RsP2+D&mF!11p%Dz%-RM{azEmWkLzc9BkvIxWe zkS^1yM@jLmlBWPfE$O@c?;N6NX)$1lT$**z%zxX8CgIT!nTFad0u*1uZtA);2{8FFAYQiX*8N= z1-@pVD)2D&Z)B)`PyuoHk&h~a>+BU+7!WLS^5rBdR`7eGk1pQCQrGNIS+Rq!_oFg` zdH##9VwdogVuTXxCpEUoZ0=0WSlyjdwfO+quJA_T&Rx2?+DLd-HR_H`et4m(69^x& zx;-&xDtlRP{`6$;Kso;55P-i6_g&7|7u_ObQuuKE#6pdyAo&lbg8*WD?prE2_`a^m zt1N>&cacwU6Nnjw60A2>lElPHYid_Gsh;RuU!X2P2$cYCLsMJY^nNy-WEX(_0D9XC zBePj!h?c=k_?KELt)2 znC$n$E&nmC7E^v4GbG!Z?VjK`p9l)8=X#t-+aBy8ZsxP;gh-Gf&e-TTw+(C_dxJ9% z`)jwEd_CV|OA8!pK9uJmkM$Vk_Fb5;bv*8tR=7DlTOjVbI$e78SJ3kZMYF z8a-|NOc1H8!9#q)kv%5%P<~vFu^mqY9pwrOg~oAM1Oi0B3eC)9TdB;I|LQ*6m#^m` z<~5JQLPr#ks|0xTjDfKSb8wF-9}N)S}21$Fey)hnQ`#Cjz^5 zU8rMsBF7^gPCB^gv`gf$Xf`pKX6LJ#Rfld#5{i=MLbrz=PvQnRldK8mkfXPK<9)CC z#b2C!LoB+hitXQvePNsSM}(dw=6%pVYJ48E3bW?lOn9fj)5<#$DF|4gT^lpaI4sjo zXAgI$Y);@Sl<$%5l+MY8zJj?B+1HdHiId&&GXM7IJQ~Q%%=m5%aF(TZ|GQ_u`A3{% z&#%KU!05eaN2k$8%MG5RDLc2&Amgymw9Q>Z_>b1r@*D~k)49^(Gahii1A*1t=i4u! zE3@*eZ-LGy^{=W%E>almB3Tw{zbSp)Z4mMymAZh=s_ul`gH7D7d(;voRg4b0{8xR7 z0-0;fLI0WJ9~Kql{v}W$d<%w$2*^nG(|usoU_dT2xgKN~555JKWl{~-eNA0_{g}_=r>Mh#0_V22 zc#CT5uHUO_Ibj4};zX=!CDBQ?L?`2!|K|>9>KbAy)oCvGjG2^^caY0X#>i#8Z$R1h zccqe|BAFOXsT=|N5I0Bcs;Zi%?X1$UfCHlEienGwQQXxTKfpNku)z=CRQ&vZ9cwBM z4oxtT8Ox-O0fw2mNLc2H0u}3RP%T&liR!6~){WAw7Q7(LrF)|t#_xP4-is!u z&p$P}XZ+HC`(KmV$sZ~(DNq3`fUU5b$!(9EBnt_ zwm=*YeC=Do_-2jNu1X6w>nR*@xEK_wI5Z6<8AyLREsPWBsmoX8G#X|^g9S(z)iGbYPT3xJX8|#FZXIS4vqvc)2#?;v zUq3;=Lep}wa{Z;dL-2GYV{kNMPcU)qOFQWX(*L$INoX<;p0VO&llFKC^_DlB)M^+@ zi`#7Pr7OgBFwTS_i^5Q6(_?2aVB@1v)lZ*0+Z$N;9i_9!1vg_qBpvjM0CI(GL3z=V zGHRIzb@GfF>mp^wI$jb;1ayoeG3|Xl<8S;AE>^u3249;|cd4)iOB-@Y zz-JkwOUB`?14_{{;z{wp)M?%7#NV!#q?Z6is1Y89A-V$ts(8M6by&6Ln8q=RqM-1- zq*N)5J=h2CL4J9aKbW_ATR=KlO{Uu>(o$*uWwAWAPl$ldi!G>bJAwLE8Ez6p4*H;w z1PQdkeWI+u%$=5Cd$^V%@bdrbi)q+Sz3AP_Ne8!?x$Uaycbm;6b!-I4%VcWW#H*z4 z$BT?|j(3n=vfgjKgEg((&)V@IC;DW*&hD>m@Ke@)9sjgl=2+HH1YU@||JtqF-k0f8 zcf4d%N#L^r{Tj08Ph{~Mj{>YJQ%4%KcsfuzDjMeS zsi(5qEM>ccE04)kXUH57?rEeHe^AWK85z0>NPPMZ zsC#`yu<4O=z*7g=sxXc-hBvByvR#@l3)2XU`GcEG{f_Za65Xc6F9rIjMg*v}rO{lE z#@sb>+7#Y_N$iPo8_|V=wY^GF?hr`as;V^Lx^U!{a`RT{;{@#b$xi|OV*=}yGn@d^ z#+lwGWj6%!r(*z!R=_(Fj}gGwxUjLLlhlJD+{oyljd7M>UE)udplp-Wkcn~>kX>0O z`V(Os?Zk6t@N83p>)0+6D_Z~9zPwty{<7UIbD`@c6^t3Y=31F)6Nbf4o!CRx!?9Mx z@aXs=3Kp3Tiimv7)Dlo624=rmQ>SG0`dE^IoueUS(>bFR;4nd(uM$anv<9OYoqc3D zaDsX{6^p#)0V#HU3+A4pebCoL+29}>@EoU-dxZddhf(6jjlidtBnUUiisW&D`w*!* zGD3Dg^71YvCK&86>u2m^xoc@N_ZQ=b%XEIw8k*7oF+2hpe5^p|UnwJF19)GZ&?_$z zaeIR~1_&D4mP+7g2o@#D6do*TY?^`Mxpb8u{3;Y4nRK<+hLWEpRx(o+W)OYr!7Z9k*Y?$Ir=NaO^%<32V#78Uld zxi7j}pXcfqsg*x+G{B1g?O@&yBa#s8cMpF1@lcvfK zmd|rVz0VxJ=D+}m*|MzcF!QDW|M1fC`TXlfQxXB8) zg6S-V_zA&t-0|z(6{j|}@p?xszT;#r?^m(JMh0r5oAbkz*C2%Vm6UupeKMy&G-^4!n2N`G*|Di$-oNEa3yoLm(90rqdO~{>9mSfjQKKY@vnFDzI_JxZx*2J^8b1Jp4YWWk`L*< zME(y0fa_~;jAZ7f)(o2eg*<%?<6aMyyNP&qWz@bhI$UIcNar}C=|z5!eo8(sMo`wW z)*@?_dU&Naw=W*gBvkPM51-!3yJuJekLaMgC@?uP_UNV!uN1(aeM0c^d=H}|z8 zONcxfN+hI6Nk!|b+mByAn~iy}e0MI^CiQWAF(Z>EU9gL@i@6+~Ps%lkn={}V#1HoZ zzHP9F1m-)~Ahev#R*3>TS2rxF;a)^T!S&MS`Rt;0NL}6JWJGgdAkW99%PacI6Pcvl z6dw7J5knM zX)I&RdI`Nm)6PoNoVN@3tnLlXV3r7XUGEbw*w&I>D`o2RZ*;`nvw*Lg@uq8zU!AhP0+gp%qPtU zG1~y^<}6S)Sm^I-XAE1iS^gzNxrC?ir!r7g$!;%alXqV>)1 zeF#r*k2BSPgm{p|yw+1D@eC)2p@M;}2#gN+hnjT{@xizPJcL7?qHN4fu zv6uqfutQ>H-Y%@+VaBFhaLy1bdjSdY$T^QL7aJ2R%4_Ck@+CI=ocoOZgZ&%y)~(mu zaO|?xlozt0g46x5x#W6=P1oy-?~{n`1%K%!q$T*nliLKIg$~4!Qg>Am;ZkVx2MfOH z1fdR-G@%(l)Sa>fKfMHq-)_*qwMYAfz8E^=qA-Ye>$t~YnNOaeoF*TrHyqE4naGNt zU<-oThVFhdFSvJK2oEQ0d~9})^u4y=C~RrrfKYhg@JRo@Cg0?fbPSq*L~4xGul&*= z%fDU9ckQVzde*DYYb}qRZ}M_K6oNTxZYYduNl54=pbS|7m2y@v$7e{x{3Wn+BavTxacfq6B_O48ib{U4zFc-4^Qb!Shw^zhw{#^o0-l-qce*QZr1 z-)M95^ySl))qCsj*4I7M1F*(=RkwYtzi%{E7Cr}v8Vmm3anKL`{FR$2KGoF%t%A+9 zApantnYl3NP^6hqQ|TNe{2}r4^-W>dN6u+`6HnQgv4ccjo0&`ZeFtW^$aPjnlf-m( z^7VCO1b&FJ?KC=b;^a86PHOr?x72<6l7gf_=%Io0=S3exA@arguD!VS@#vs_`v=|+ zDAe=3MVbAazv-8TEo=QDKYA^M^L48W;vAwTszcBLD=o(`!?mbf@gp17erwau8w5s` zAGb|y9S2%TRIOZgdU{Q(g9~{vlH?s)ls8h88)}T*XTB9%K2RwyERf3z^Q8pLG!_Ff zF0BtM$7-=#wGUoZByoS0w5VWHVS#kpb$kw4HEyNW`@{EJr|kUs-=V`lejGLm&|#ep z-^a?H{`L9b?9Z?Jx{kVcjszH>#fN_WKWoxJKk#sC^MTetDopS9idMT)(VUWtB9XRX z#^c-GEZ)bT5?GWqlubw#*H10lE?!ua*jgO0m=Qk7dhMJ4egYz|5I$n~YjH}YFzG``qE~pt#hwl0z5F}vi3(y^4 zQh1GH!T+K7II_4pJ_y|Eo#dNV%1f~J*Nw`U7kU0J4_xoY}!p}PG9i?SouaL>CUr23&^GNs8e>1h|*9$p(|{X3sce1FzYTE6h>r+8K@{WrZK zZfQRMz<=dThsQl8tuGtIrbIj49D-Z=p@tLg*|Ni=V}K!7~6R7 zZyMkZ7bbZVHWpp8b5Kj0Wlqxq*O-umkP=sAIha`w%Yv0e`kxnIc_E`vRa710*DeVi z67a%($k}y74-4AqfynHLnBT-+h zS>JwUZ}gt1pg0bTFRcn}blC$~pWd9B8XJEKG4^@I;Z3C&f@sEO?KLL88*w~Br%?gNhrJ;Fpo6{a__TI5ye3bp91H&y3KA&5jr~x(gYG|T&?3%T3E2kU$f^fjNMAe zPo))P-a?{KfN)z{DW;19NOCs~e@rHWyP5RO4Q&n%#!PViNoGA;`t#TtHs4|C;v>84 z`M7(gJ!uc!!E^-s8<&PU*zNtK-HO+s-t$uL*gMJ4*;Ko^u4L0&Mz?#lP0m%GEraX1 zw;GxHaU+y7Wx=nPcN5mr!b3kre=IfBTW6qk2<9kYZgcRDUu_c3c(E)RC5CHU9TNV% zd*zERS_}fYPyp^18RQ)r+Y?~=YL84Uti>h(jnqVoBGle-z)YKOiEr~*HbGYa(Bp-g z>+G~Nnw)~65boEy&)DsXRX|5hnc^%pHYqLBVG0G)kb(?!_0`nY`m0u{a+h8G>JlqP;!JysP8e zFO~4GdZ{F4nVv!1b(Mt@pd83uUsaf_mV}i`gM8OFGfcp^RxmK~3C0$&Rt za!5<0i2zh-!SQZQ_?Mc)=!QK2mIlFKE=^sde#a<1^=*PxOv8a=*vet`0&5}gD`Aen z;l)f_&{d93X!P7H3DjQoLa2I%Q8K)b**%R_0e5-SsJ9t$wv%TVtYYZ=v{Rbt!n1y; zKh`mEIObf&G|g$+<)F`@Qv;HJVIe;-Up+ntT?P(+@WYq_6`S_!*6{zll1uVXNfWpq z#srKihThX;D*xX9`u8s*&2F?Wc4j^8#@P;)l-EX0Qz_Rcj$ZaYYaNp;h#okL#NU%A zblOz1A{tYU?Uj_-S8T6~^sSf5%0krEyv*4C-Su{Hg?UreRC(FvwQdFer6DdcLN^&U zDtz|jOigmSGUn97`88#EhV~qOBzJ=$zHMZ-Su?Y@rE}9v$Mx{DJzE5>zN^cO>b?hY znfZo{Xa=bM!v1RK+NnBM8f$5AFwbUtu3MBHG-elR7d6hXWAi1Xp#Mq){Je0)v)aRl zo7BRi4yl`Fd$eiZ$neb32xHB;Lv3}Z#;qz|r|fUr7~_+Ume`EJP8;dZoiQ>3(a*X~ zmz7SJ(hSq3{1N#aw4ZUU?pzFqd-%PB!Q14I}ku zUKiia*W0(-^f|8GYxwY|hZXeG9xKTau{ITD2O;TuaphL?F}XvcWRjB_#xgM(0WXrz9w-9O8XF*ccHBCU;G(csPC{`0$#H`BON=Vz%lmRk=Bcv5(m4OSCBQ$CAAy69x)Y!nP zDGIY_+{ja^R)Ub0*&Mdd#xmzRK|177hTi}T`&_K4){sEEqz&At?YL%e==H4OBJl)C zQtXlwFLn8wJs#*~KaEoL6@C-S)<9$7Lzk~ zZe6-%$8EBl`fq*}_NlFpH?Q#*1JVFBwk__HsgeE#I35_GUG*o!MMHuc+u*9P5P7N? zTYL(stuFu>yphGDY=;}RcEI@jY)l=dh5#pEYmjvWxXPD!k$9G%r*DA&5r0wNP>* zH9u3cu~pcAbl2-6aj1V#RVZXCq=lfbp}*?wF+iIkzM3`-db%nK>O1N)7K_0mKAZky zxM*N_pz8y0@n`rq%qOEy_%*3WVWNZvT>+U|TC=J`{ zd!a-n8Uc{wZmmU$$CO4{*IRLGjQgy$WX*^GL*22)GPtc7+V1e^z5LGu5Dvh)@Ew{h zmhT&F^%&HSM4W5@><;&q*tBq)+np#dJI*Cf*utnWl0ny_nS*NPrKilgk3j-h7dlX2r0yjB23e&X4n@ zkq8}ertsy7 zw2~{maay8K(*wQ6Y-P-^_7NK`3&S$p`rH^;n!`#v90*PKH4$Qn%Mv(xQ7{~aiZQqYPH__Y7Fo`?zT3r@E zTKkEUDTG8`%W2q_>DQs2GW%UT=k$W)&cfw*J!KB*qA~G~Dz6+_aUw)9Ia%^VKRa$TvI(mX*tejX? z-IkX0H6q}kfG2Sk3tTv2A;(5)#S`*m0WzsD--=%`-dR>Lv8rlyV#1@R(Hry*2X45t+?a03E#FO~YX<+p3_~h}=`n z=bNORF{`iRa^dM&0!UJ#<5bCPtIvxUKCKA~guJi2ZX79${dmFj*?k*&{ELR>JWI3T z1wH=0&9e)pp&ySF0<%%w+xIIjXtV*rlok4A*S{Gy4e$a| z@`d|@nx(ZjPN>ThB);y}2=n4l?~(c8Ihc7V%^|$9qLMMx~G{N}g4kgM8)XrTe-=pt>`J2@-}{2im6^tI_p<9|Awv(Ea@H5qIyK z|C%H~;B=bclD6t%#@_Cw-8{G6iF+)hf@es^%8jEpYZ7PIVcs;iEM&&?Yd=Z?XHM=75Y&5@MWl7v_QNt>L!Rp*?)46agS1wI5)waLq}8X@(^ka>hzm zioIuv6A1DN2?yVC_9Zz=8?m!(=zPWurQSOwY7#zyY$kmXxJ$Z_Lk2953EY6&bAId8T2 zMsbs}j)My;6J&Nt#>s+*o{@=hjt?E8QzK(`9rtrldq-Lro5bs?xba{u-2xq){7{0} zMgBBm&GaEeBSw+asPdv|!HXqIcaKn|2RB5;^#G_tSp6@h8(r(TR?+KR+gq#mL6q%P z(Gz}wwhfft@bn%g@1%WH{!pVo#h^7H#g9ec%rZF>6%(TdeJu+ zn{3z&vCy0>4m*(T8KOEAsa8iG`T;;l^ACg5PgU-pJA7HzKg6hCTa$W!!-o4Q)tgN= z0QAE`2Yk{^6#B73=v}a`=C<<}o10v;WSm7u3C-6u2@|@gz_|MQBz)i$qNKPl&kF8*dfC|gSjZVda0xt&$m5t< zy1W}5bI|I>fzkh#ow*=D77+pjjUX*IQmP#WaN-!qQC2LzlcmMLvaB4tM@?9k#^;Sq zFo7lO?FTswy>WWPgloagvjtaw>ZQe$@!Cx~8)EQ*bQ})s}Q!FOGMaJDEMo6ipeg-1OO0f!x&S2-^AuD9-)oi3UGM=>Rj{yoEA6 zeqrIWIi3P*bV5!#&C@khPWA3^6Vaf1tDfalSB?-lxf%A_* zP8h`(^j(k0&D_vd&X+pdr{wNOvucmOsm*19U}vC7Bn4&b3P`Xly?m^(*`;Iaxl_l+ zYLG}F&#wKhRReVN(m&?B+5DKk1t@>i_xm5%Y6_`?V85Va=P{*YZP`XJecu%MTBlae z76CIrF-vbXzn-<@Qb<(Ia_En+=4gm)Vzw|hM^_&u zGDz7Z2JusmaiWx+Lz6H}u%+AXw{6?DZQHhO+qP}nwr$(C=bO#U;;!xwsEEp}ii*g} zljqTi;p*EiYj@ICDW#-nn>OL(A#4N`N$c*yt0nTuO^RWTzUS@~`HqWE^QSU?nQojH z29fHPY=HkD6Ja(=(ctJP|~bZXW}usj4A-Z+}_pcSyghq zTyh+#3_enBFAKfVZ8Ck^WXZ+lIS@@h0~fwe-mQ0jzOP;>+`!V&>c#n{Hl1AM@U@{b zj)`e#1oPR9#p={r9AwU<*W_yR{R*nnTes#6`(-oq^nKyN&yXqTzx+rD?<-Y8gYt8) z4jEh}6>Ck{1d|9#PzV}*z2Eo8(18<}Qc|d4asYQKC%rwh~rIa7Dlv zB;C@2Peyaa=$a6ij-3H2-5Vd~y6)g9lX zuwALV6&;Fs#59P(|Dt8b49gcCjr=V97naU0g3g5lIq?&TqCkYug;Vd~%Y=DgIMa{x zAxH~^&0x#UH+H#$I4=k>^B|V_>^ngjrit3Th!GyT%o>tg1qN-EB4_~UroVH3zP!9z zgVrs_dVGe*#VQO-)t4k}H(<6xBqKhe{1xfFWsKyVpGBoEz>^~ZDv_y*{ zn_EXEC31+?)(C?T3M@0zolDttT#qXpYX1~}#hNX5Hzas znkT(wGajtY)~5Puje>kgi~O_spI!UI@d0dR!4lA6CbMwIAzu#!hnTW_;so$zcFUR* zJJzzovwOCi6HFT}(Ngp&Qsd&)Z#C_Qy;&j{3&*DATi?8^Ap+>n4VL&{4=!3LmC~)B zxll3~XNPbm7%9Bpp=CPFvsgLz=n!gxhY=DvY~K(!9S_T_M@+)qKby`vrSP$R>C_t1 z=M`X$3K1>{WE4o_kuj`^mls$X2r1M1Q_u&<#zbAI??j1-J(%>F>js9()xC3W>zN_R zBJf1TBtcJ{+H^Lks?3?X<_WSi(i(Q5(yITosbYbu!BAv=DN_ZgMXgY_?JGRP26;Tk z{o8P?GI;T-ua06T7RU8dn8rai1O{9lcouE?P6Eb;9!kg#r)!C$!DqZCJ>vd@1q1?s zSVt>krWcdXVyS_O+lZ!v~E8UhI z+{50{;4F|Z0b+5t0;2FfQj$M1s^7a2%j_$0|JjJ3^M{KsR=$w%V;Z-8{82U0^H>)= zmxvyyfiFH@2Ea}UOl05)_Uxd#_h&&9`}(-&gx0;2Jp%CjcG8jB=inZjvk@|Iq7ZDT z0jzUFo5~FuDKy|{+d&9R&1vtJTN&a)xX_mmjx9_gD~UF+4zvnOv{k8Z+BQ7&mDj2B z%W`BN);F8v%ly`IS}!3Bc_nv6Es!LJgz;zx%?J9|%N}!ShA158zr=fUjG~vU6{?w| z>~AZ%Q;N2!_%&Jaw_BhN6DLJqC-cXjdV;q2qNh?cM+Q_m@Z{QNG4rf@ zPqFjvu8hoOF09)6I)=amiMuq7tXze!FJD2frPqKzBrB#~kR!C&?C5satZ&TG4aPWg z?@gm%9-5ck+*&%P8yncfjgMUgi!IT|1yBvNHLBnn*JjaZ*5I94k9(xlC!Cnp%n+0% zP!yzMqeWnlls-nAti9m{5qWt!T1KfO$yWacGKWE4nIpA`@Njs2`Z~jTv!$h;Y{GDE zw3-ZKpx-##(N6vM13?mK_u=-n&$scYbPFzt?Q;o?+aE-Lb?WscWX2WauWLJu+nMc8JRu7W>ugZ%{*0ST%N+n+)78 z07r^|q7gOw*Wvhg1cjPN~msPeXL$*B$aI4>|H{0Vm1krg9j=@ZbR4$WJfH}b=D zpPqxnow2=!a)OqEe8$%xR0DGl5jujQ-wchypxtU2r>_%|l=c;~KULCBvj)gB83mC| zqdQ6fK`%iT4wnv>4mXJehuc4Ui`0W&165_{#+GfV(LtY7mRu;a8A1(>U7}ZrftPiz z+t<|I-Q|VF12qu2aX@{dp|{AlfA#fS1mKlOkeEN`oAcrx#QK*)M8*hdj^lhgxA?fB zFr2R)uN}is*Lhu$LV^IsGENl9HW`;tUO)p?oh@xPP%DRMmFPbp5U zI8m$`dmSq8Ht&dIhF2haYZ6)K6cf@>;BLQ;udv^?Ys%eZza3jB-j(Mv#V*z*luJjN z#h`CGn*qi=JgosxC%=jG7alKR3L3&xk=KK5B`8ZiNgv@Zy;u!M!KwZN{mlM#aG_tc zr3F8U?&1H99wKZUxMDrvyW?;BMdXtq01fx`JXo~gwm1_eo`;Vy&}`FSZBL~O7nAsN zz9La~#j71D2oVi(=FkzD*{H z;FB(R2TH{D=BhuVc^~}(_g7JxRbp)H4#U`(4mt^^YT-411WyxV6hiilI3!79CS3>R zb_gy_pm2G`>Cblq-az3npvFut=r9XS;!h5PoQcJ)Tpx5#u z-b8T(vXHN(qMI65o4te;2DU_DuXj(EA`nh31r3b$@{z>U-sZAI|1=)U%V{qVjrs_U zdlBH{8QV?1l?m9Z#}hzef?1?pLC~L914ZZW0YUrV8W41XkX0dJXMz^<(2yxh73?o_HLC?MQKg3+&Mutx@DeLpLoeL z8UD7a%+-qcsl4!do`y~3l-^kxgB(8rugk8WtOv;FEC{FQe!r)3W)Rk`y;oS^F+y1N z&sdpPXhDrL0-By(hcUg6oV@adR^oSV_pA~gb8a4r~QStoKQ7*~0 zjOsd$qd~Z>QF~Doq322LJzSw)%In}D@R_>a0M62c&8xGLJ3pqFb}jT&SSk1X*Fc(O zcd{vynImp*u;^21n60Rottt3mv-W7|x>GygDHHTi8DV|VCvjs3;#L*GCf%3(f{td;%)hn8gEsiVcmDBRcbp0 zLYhnoGvhiv;;%T*9Rq)bVwL25xZtY$)u$$y_*&ao6^I8Rsj9_c>*q{}QG>_Km6*|z z3qunW{`82eL!fpXDGI-ryNmdf(D3|E9GaB67+OHT=wopom7kAr-7~wM@9Ok0k-6F_ z&LbbvWjKs0m^=X>YF-&gRO_r9rk{22SuoQ1&scplWlWp1bVa zf84omeV=p-eebpB^>DsBI2co{!qLy+mEh$0u}mhceDgOh(5CU>>`Y*a-TM7ahDM*9 z?{_SqL5ku7@+#YD@JNLqqu|E&gdnIWa%v~hv1Fa+q-mHoH-4W226mF^@N+*BZW@`W z@W3J1kN>}`KhKN-EM}lV$VZDrT;tdBXI6^U(}*TZHkd;%8-T7JY(z=twHR!4OJ_@t zcD0p7nGBgxMZ30nO;`w1vQ3ZTrsHrQF2!2L8Cv(6VuD9C!3Q`OOaP@6cSEP+!|CF3 zK3h-Nw$A9QIP(5m`JIvDQGx=hyOMJJOf2bWkKe_ac&^L7oAgyFIw)RMGG`DSxDB}e zk;`6J!dWqv4whd-GS}{6F*cF}r7i90j=bNc(jdN=Z-?ycem{pMN#L~N^e5;V=n7S) z>0qyaRkqaL-cmC3dYKZv+Kv4kuI@d6F4otL^H9omg9bgOGL@0JE7(nXeK+X3Cd-e~ z6o&;^kvw&oC(aeH_x-ecOlWE35h-=$4P2*-Ib-d+`O2mA+Wc``l z>KFE@MT&`iyW?h_{@yl6fAK1S&CDsbG&$kN4E{R}Iw-1&{ElYShK&N2 z)rAGwHC})k5WHhG&2W8MT;M@RQ$5CPGMHv5cF@(AL*JTZCY>#@q^d6 zdSjHhN;abs86_aX#G91Pcq)O`jGq^`jocm$# zZdg_is%buX1hftFQit5Be~9A{0PW-069Y$|Ief)-o&@PJ0NfartgxSirJFL<9NYX- zN8v!kwzHg2h*}ELf}0TW=+MTB#tB46_vKCf*Yvk>xc|CfB#Pj`w4ok-H&cCl`Fk!q zqMN&lw~b3a-ZZouWUJY#)?jIHYDo-julhP`{U1&*s^ptVmseUE`}r3Vr~&E&+a}#0 z>kYB{XklDhol=Y-v{>5yHBXwfT#j1LUW}qU8CtLxG*>~T({Yj-ZQK!eUE>VoUQ1x0 zgyLf`OTE9>F_QdnhZQogI1hZl`DY93+@)NJ($EJoF@R&tfcCBT=JIp1Z2W)nfhnsF zn7?9TEPW!DGp9%X$E^p)LFNN$1HJ-z|1ILBI=?@N{Rj4$!VL|DAj&u3IH!>#J^0cH zhtys)_iSk5YcgU^K#CBzkqD_(hj;GS-0`}h7~uAfHQum{pNftB`1!@eer2HTpV-W| z^dYY&od&}F;(I^{OUF5MEy^7p6{t&SbNQYT_%Clp5xlO{9%7djra**hJ~x7FgenAL zDPn=RD%gj+;Y%%Dxl)JAcAV=ZN_3Fn=B{jvLa~0#gnFvJ4)3esql(3YU2zp(!hXkB zNQ@lao@-N)Lrdya=g1bZbV%Vn052ujv#EqHIng{`$IGW-!KDEu)iMY_o9aFrAr7YC zad;)|PdOpA%dy48Jo)}+b&cbH>5>)`Dk=?tQ{|ZiU`b#$+qFK7OnpwQu=sMfqHqFKPFcdn{qATYd2?KDM;U~AIoLi`2Ce187n;f3=dGP~W#%2M?-ga% zf!hT?&;9KZb+j{XuC=E`MWQlz+_vC?PfV!2p@pX|X1jGR>I>beygOZv$IXs}hi^B<7Uca@Yf+Uixy{jPrcnY~b_?}<^GPfs`Z=Y8 zp>LX+&NOfr`4Y{B??g^VruXb;^l;&odC~RxMXw!!$9c9@p9*3V*Jt1ApjH7hq|MFJ zMoF|K9r<<*QX3m)h)8Ga4_Y$pn<1`*g=M0gFi!Tf@5hBS5KI^5#}}4I>-M?z8gN_K z`3!vr&Sj}FEujT#b}`z=enjxZ!%?@nJBmU^8Kz-XA^{;2A81P2KLcz-j|(Nb4eeC@ zFp_iZ!9lh6HrK+y(%5CY+GxLO;O5rgZl>$eJ3EzX+5))5%z$qR!s>rbh(hmLJdK$? zPn8SbaYOSf%E(q^CQyxevF>(o7pq?>BIwAM+Dck2yJa?>1E$rxh@Gw3b~m$UJ5rI) zD!pIT18ReiVaq6B7_YFoNSlwtsg71@3iV}TNk7bb}HEsC!ipebXz8sK?K}bpq8iqC0AHLYf_Hq(e=Ng1vlmQPj7n!HU>aAEI z8gT!xe6h>Q(%F4+-dGCJN<0WvJn=gEk@WNc;1Je>LWM$Ju_qag8a4=1{*xphNe1!g z=CBN#-#{MZnH`tOu;JX#dK*3o(ug*a2RBJFyPXzz9#Pb1mGH++i3fnd%JiMVh!V(h zock!DiD2+;C<)5Y?8Pkj>rL3P=|wZs>^6HNIjh*Hs(#Jaj<5Tac9pCUf6|k#9v&`!oBR)3vE;NYvHF0W|>< zQ(7-@r`0qRJ_;A-cKV79Ki|ITnWXWG_6{bqpZ&ANc96o>ln2#g$&CNtf@1Pk%gMI4T(MRP2MK-i-+=x6AvWx@JLG#G zKuacE#AtSf@Vvp#E9(z8UPq;PK8B*KI%;tuF>EF~b%#~+aUYP|cYB=kAGJhFxqge` z6D}MPcvx%;jgej8qkmXz=d)CFv={Y}kJV*7ef+tmG?J6&+so|1?FaArDc-*u?mb{{ zE?#{X20Oa@07ms|GdySuYYkqLIHcC~NT9o}3T?=M5$&Kuk=gqbHgu|_Zrjr+X8G@S zERE1gI7d7>=)^)ks)+1WZq?oC+oIjnytA|(KO&`K-oq6)u>}ZYHFg=ryv8{-!aLGf zo0wn9eVh43UuS1TIO&wnM81cvyI{tCP4WdopA10*j!QExyTrs!qL6OAa?_QLz^=W| z`)8;ZcZ!oDN7ekF21{XgT|sm()h1||Ph zd}yol_eH@z^6!V0V((X7NUqr&>^J|!4{4iMPHYQMR4ASi{ja1@H+t$|!}*81^LvT( z`nDDpL@j;hB{8qnDIhueRwam+mfZj2z54zrY6%G_=ZUm6;+U=QgxChs!L{ugJ zoeY53dbOc=LhUlQe|Pt6=;tswHp7b9YpB$h%({T-sKo$zRgQ`^4Qx zBtK~z;q;*Vvs7eY-tqm~DbXo|Jt*UbY?QkBByCM_zel=*&u}57<*IUZU{4@b0aORh zTkgQTB-DFcP@i9EVKgN66# zy3{4P%NF;20spTx`4-UGX=Sn{sOy7jrx-Njn0;?zHk*u)4FgksylJG=Kr}<+qtR7Y zqr(W87cC&YEkXXH0^K#nqHut!rZ&QRPY&(!27n$<2bNuzdD(5l3%OH9T)vLSAc@Y& z*YLCa5QT1MLNLl6>|Xnj4OpKBTuQo z*HLuFZq`jzR!m$qCy9eY6@{Oa$-ci+Bu5%I7oc9<8%2ynoSeD;0cvsCR#W{x>4JY_ zmvBCruZ90yYC#%Z7IONzTVj0azD>RT0BQOI2xt7DqDhrH9r6u!tiB)K+n8bVem7kG zd{V*XC)NJ8w>MD%6joOiVAI;|NGvO^6NEKM2QVa>`@+6WZt1ry+h4Ag>f1vGAjCDd zyK5)3_uiM*OTlfooXAYF@Hv5VyFAGmlbRj8^p^F&M1t!$uG=nl<@1jq<4MDJ21T%) z0JzBvWjcYkrNrGzvyqf%-$G7@y_W@`hUUmlA~o#6-s9l322ek{IW%lyN7*a|{=ge_ z`fbBj&PDJ{K2^ViQF1;Y6RQzwTb$?ph;Gz;+S1eYLrQqX0zz`7=D91Vll zK{oO(=qgLu42pMc$;HWetLL1KFB3NG2#^{5DH$SNTyA+-8*CmhM751ne;Nb>2~)9- zCd#EW4Lr&siuQT05dpC$I(O2>wq|1D;F2JR`Z1cPFIM#+e#d%$RA1a6nStNijXQX0 zxDgc8$9g_G2fCGyA5thFZ=mRRwsL@P)Q72)0j-!ghD|*=Z7y~suR)^TA+;2Z({5f# z<;Z7|O;?I`W(^SlmsU+XMAM~Sq+9<1 z7ziB;zgF;U43v#SJ)cC0t}Xc7Y#|=UqGa%BB*zWa2>{;<*udZoU`VZO0$3+rDs%kg zR;101XL7Pu9t$9nN6|?M_pxC;v0!_E=oq#^y!9J?vSJ0|Cj|CPaP19t?yNbV2JbGK z>}+@b?rs#-ZfHIC-*UosbLkIiOtbODayJoHNddD5#fLdU4Vr!u|DftN)k*d~)an*<3RFRyDEx&gH!uP$<`i`2MoFT;J~-atC|^4F%$wCHOhl7>l0;23NWsh75+z7`W_rRc)JyA~PtG*6 zg@{0}3peK%(`A)r{P)EaHA4MTbqjoRE}8w~Coz^6{~Q^@{;?Fqc2yekAg4e+birYQhk&X6JYWA4wv|`(H^|itsswFPHL*lN2ztwOLa5hXDdGez50Uz9eHe zGQhidz@M&BeNme9_M!qJTzr4(^F|`2 z1d#t6ue8(tW>i<50B=qF=@_4;g(RO$>b<+da5nyI_PRYsaVf*Uw-A0aTnFb1bk$m??qAIH1ZC3OB)EVPR++X0oIz>@c zM?bm6ARkv7zrL7Y3Y9rvD$l-H|&1bC4Y_^I8SG4Pf+)e(+k!VH6CeAH5l24 zG2mvG9D)1WEMaFxoGXFl=YlCa>I9dY<$Fw-hOkc17!D@3wVp5KH>Siygzz|aGt-9D zzb<<2sva!yhr#Lwp%Z2>M~9a%I?t!#XwIqM{{FZDy)+^1N;14K!!Jc%{Z@t6Lxw4F zXDpmgbql`LX!K6C54$I4)wlu1qozw7y@J?tvn5*Ru5O%Pi9MKxmN9nhN-dN0?c&F> z_wPjE<+Z@w{{bCT1$pDl4OO!0O?bI;EHcm^ZkPWtVRKOX-x}2NwGjtFOnj)o*gOD>-Oz#`z+VQ=icj~FIb8ut*PIvTmFm$ADQ_fxk}N>(hKT2W_139Wy%Oo_381WzN8ax2rDd)4*VGBF~9OBpaFXf>=$U>ire9&A({y(PdL5RS0a;A$1wh`L;^CjJV4vX1 zo!oNBs5p?ei^MBzNNTOBw1=%zF2I?;%{6CoCffu&x&WK8MF9(I5KSsTAv(?>BIQXs z|A$oFpmv<0bAsCPp4!2ayD+MrB>Qa42KMndK8Ia5(#E}tr+4=lw1u>T>dl7<%?Qqf zWM<$1yQ-z(UGNw5lv46z`2^{G(NPF{u@R!oE!z`y>YJToDI{yT9pBFY={q*E)ciOY zBB>+?AeOEw*ul%aiTx^*#_7t)_O^;DCsFy4W+VH1*Yl72G()U{v8V_cgU~E?rfttF zwU2qeaIVjOIR{02x<_=@3OsZ+hozwi<6GK1xDK)t58p|8pp3D5e}jpoF2{2< zhYJOY_iqExyoI={qQa#8XvMPL9VUnX9uX0BwwDn^wU(5(SHkCk@MXIoN{?Y7jV-|S z_KWrL4PM7dyMA$n1RsCE$dUA5gW&-9qM^iONk&6L6kgvTQ3_iNENaNKB}J=E73Oa` zE2GAaRe(RRVRkaI#;7DxlJZu72CQk`y{y3CLl2;As~z5R`CY4lO{jg3LuIXybX8P` zszP4(7ONee>bDOPc8oZE6ChTZ?MP)SzR7eiw578%2rEk4J!P*~ z*UethZRjGK1y;9(iNj~&>M4)9?F8_bFM0X$>W+_TzWS?Qd$cnI?VSmBA0;-zL?ru# zTeVh(4vswp_MVO29sTdQ-|IvS@N1a@_~;F~Zch$O^!L}S0Tl2;>g0@P?$z_>*LwW* zaOo$)gZ=HCq0ArRXKrsWAb#(+xnxw@Y)GPy&3vi~P$fk~2-3*;c?ETCH(e5t%7v(; zMuhA2Eo*Y~`N^L2=}CIEvn^#OSw)Ryy4bk%*P85T zKi54H&Z0d<<0ps;UGoC?6gvv$fM2Em`z zKm!V~W(1-8Tg=qaBV-#XgmGU<#V{+r?kf8B*vr({y`6XBt!cA!LrqkQ+iGUP7_S1fBQ~VfZf_d;R~v?8RPeicFye&-~|)JbUO&*j;KeI zFoHk5IVHT2G;(WDOMV310<)~CvAn0CjDu%`BPBssu^HcZGW!Mu3^ z)nFnihUT@DS_p;`!(j5%NI327WPq|qI`CQ1X+}~c8Q{h4L_btoev5z=Y{qPld^1c0 zN4QYtS#xl(P%>Ahb<s?-sUh z;^h{0jWidKpa`tvx447;R#xE6f3AKD#cs=rx7Rg;k$zVIhk37Jx7!oXL!En6&x(P& z#qf_wTlpt#mB zi2Mven7o=ow(aEMzoHB#UbWY9>k^MO9nO?3LJ{dt;JJehpG>j__h|r@PkYbMhM>i? z?Pl@cPyIm}-quFgF6VhOXY4wpch!IR^PA1~+0pIr%Uj9~{JRizx?)u~4n2a%v{&AY0kY(q=2)BlXcOf0=e(wk%b zzAMzaEFb6&fQ|otK3ss`P6aCXKbO6GHm&{Nn@a_$FiprjKvObP+UE0Uf^IUSv_<8$ zDJxL~(YBm$)Xbf$V8oEq zl2e1>I#1B2h61&T0D;nshaRlPXH_ef0c!++uQmgh10+klA5RQWZ_RrMgWTK#1xHEy{Pgsq)5BmoN+6`B#c5uwbJVp}J2iaf?Q?%?a}-?*pZ_Q5S5xofaFHv@ zJ@7fv)_H35o^WiFl2M`Bf)GKZ`6_5qV7E0O@zH(tUK6wqqz6s`YO{lQ!V_=^xgQjU zZK{7*q6jMqClEM*{K1R*RvC@ux`C82T`Z=i$6Xa2>*&1g#MZ&tyX1mXIYOp}*~>~o zTh2z{5|bagXq9B(uf$~Z0O>hx)JzXKkRkq7E=g&fJpFlUZ1bQ5m9Jcd{+LXedo}Y6 zuRdOFts)oLW;?+`_ZYeupg0SU9+>74Ct2ps+pgyS3F6MAo3CU61v6O!7(l=CdjyOY z=*1VcJpmh?rtRotmQA@RTxoKP$26t{VfgQ{KgK^naPUMt^V|+IzO_w{qg$*I#MfQq zUg|eeB_~yPUB3g)hJx)oOmd!98V(58@aOsT>1>;RSV(S`)#cXnJD!3%6xsWHtxmSH zFO_{`jV*12bd5u8H}V*QKcmPYdsmKHO2~W$&?%a6ZOtr>IkeqX=@w7SoPTv61*E0c zSLGJZcNd|(W8o3?H*TT&FX`b^4}t&B;%|Qs9of(nIC0nJxd=EJwd(KMj#5%WdoUt_uow@XV-f626w}mnirdcP6tmBOmD6!Qb) zf4ZwAZ0`kd04Pzf@x%sUW4CF%4b{y1;+;JVwC{t9wfG$t0#>D2OEqi`@!o3PPTVL{ z_(n)BEZ$tZDY(OCpF`MNSkP8Lh|Gr7x-{NBto(F_5*$EDkM!_9H>03UooSq~@D&X& z0X3)-x|87`fWzu?a6;k&>1`f9Zp+o{~*?K)w3xu|;( zxsOFg3?hZxz^GrMo~@VFo<`LDuu|J3HEI-9s8V(l`Cn*KcXt|KBkKzdM~n*F6hoHF z&FKcXVq&dXb~;y`D{a;dhwp8aO0CMswc2VOqF18K@pan&DvwmutJAEcK=-`?8EYW@ z7F=HS@$%PS8P8mAMP4rYpk4SI{FZ{RDNjfrn)&yY5pDwiMT6GBu*2WW0CIu-Ju+Uq z9{L%;hOblVFqDi|O`JJQgbTJScM4wprANJ3tpO;TpaEpBm0pVTJK@BP)@dAFS!QUk zTB(2Nf+wdD1<9T@a@^K*MdSz|#`S-nF+t3G{|8Qd+H3t*@kCR4yZ1cR{IKD9@jiQw zlL*Q-QHt>kJ2;&I&i_@2$MLW15#T8VE1E5ovf}e2_d4()w{vE`i+@Xk0|J74fqfpv z5}({JT@|ZS2$@@aLlpt_^@xhNi-;Nw7G6^fc2;Qw&yV%uLLx4C@0x#ATY4jx0Sp0Qi>^nEIi3P6^Nc=&U;|IE$@9CTVd*aZpF3bDgkw!u>&-#FUXgEIE zdk;Qeksy`#dfQny!i{c|*3bvVCMZ4{+-xLlWIqoN*5t^s4@RkvH;iC|+jTP1qhq0B z+B(EB9OY8#;?*eclf&W_^nIIziC)a_`vv%(>v<9)w(T?63l#9wd?LeivpT&!vbhkC z>sjL>8SlXE#N5t zHYdpVM;h;lnEYrGEHJ#^s$W6YQ$Ch6*Tb1Y#e^B(!e)ta_-+fm^Eh&BPItW*69z4>ga?fd>RghET zFF3D=YkYcDxJ2q}8rsujh-nC5p#X~g9`_b@c6xh~071{|N@=tlkMtuGdwpf4pZC}x ztk*H!HN3VRWo4DA*uS9gh?dgL{%!cP zCb2WAEE3f{cY5CuO*l~gW2)8shy_sUYv9jyGWTYdC6X+ulQn>x%Ge*sExLrv$6tTG z)n#2mBc=ms?Fd)`mF(?MH z{#;q>!wryHQ$fC=18QG(1)!N&0NV=a+-wTp+5vfdX?h!Bn_n$ zcH=oH3=C5HaK+=!@eW5*DIfERc`eGk%jSs%aOL$oh8L09X+eesutXUp;^MGT9`6?Mo1+?|pYp0w{c0O(dGWnDuTi zZI4~V56#5Chn;Xkaj~$F#Yv+(DUNw2?~`7jZkA^@%b1Vx#8;%9JE?j~;-p~3gTzQ{ zWmNS_;(ZH^3_qp7a6xv>`^tLze;TF!#tnh)(d~*^?>*!?75uLS^4sNq|JK#mBZ^bu zd`kysT@xPWkaPf^RDCdj&>Z|TRSf`<_JV$uuyfeK0XmU~vs9P9J9V4mfI3T=SEb@1 z2m*2RSCNe7kR;U#R4s~I0%L?{X_;0d0Ni(_Wr{*PbXx<6CgpXRS#$F)3#Kb75o8~l zNvi-4+%<#FZMnaQN>GXF1@g;kG9p!v_Rmy0unXi9&$qh4^niw+m{f?tA_zTI{hIlG zx{Ead80$>nFiX;o2$_cq)NL&rW%IIio|WN#m{B*FBrbC-p;Yg#Em;?*9pi^-CJC{T)gDLTXx@Wz>*&R-o$@duPe)W48T0L0!khNnL z#8Z)d3UFngqKTELpRRx`sIIaNqx< zV`|2xokqJ;#=~kC!m2YtfwCdqw3@Wj9|$DQ=n(C=FiPo8Hq$62H!=b$V?Dtv4kFH>fu zR){$SIjM~TmuDBKEB+a@^e6ouK8mBXSMVQAChfVqbqq*d3r=a1UzcXlwJO_!|F0&? zZNOkcAm055AtO(+%Lx0~$a9{3Ve%wC>zruRn@dG>L_lUHf0*;bRclm-NALX9Jyfl3 z3qL}#sg?gXPm5Hkrx$a?NPSLgW7f`^wv^h6%DtL6>~+~xG)N9dX4uBJ<*#F{1*k^u zg$`EU(0kbq`|rq!UvIw!c7~6vJ~?CBfs=-Nj7f?;)hqe*o60_}V%*#!H=(G)LoXm{ zW^Pj3lIc#+$t&hy6K;<~b1Oz$1{hFvQJClHVF@Ty2xY3=tCn$+ zj*bhfhSqs$!Bd5sYj7dCH-#<&r?4O9I)BIP@qH?M@c zFp~7(tvF*MzIM-2X5JPCF>+^?tI`BjSGfEgmo@vV)<_{jW>%NG| zGxT|fr5U0z8}GMNWeQVU{=3z9h)|e4nA@iu|m35zH%9}M%Heh`-fB;>9Ase3}(||)4oNGmnMUmbSdUpWj#iKOkRw ze0Yh4a~RU7oFFVRe+Z<>_IOFGtB(Na|MJDu{y!4n3xE#+6EL_BK@1f$aCi?w7$IG- z_SxZ)>8^FR6oCT;sn}wATx98n^1oq zyIsAIq`Usr>eN2|^^U5rH0o|4-~whb?~(~~Ot(OLg?tJ9CoVG?G73A$eLdqWP$vAR z-{$hlqrPGFDJ^zz<&7+tuH!B`KWl+REfxnBag)0IZJ};}MhyIMd6SuK}V9QxY=4C9BfvWvoIn{ZqMuXW_M=^FR;mW^Co+uiaVhe+7b z1tz_NP^VJQGt9f#j^E{-DzAy&@M5f}4jWU>N(!Nwt$0n|h9w`{{ zJ17%UX9l+%NXmE;E3-X(t>%j#A>MCu0oOCDVXT`dnWN4e*lWhF8D)iRbcEPjp#)5b zRo3)%t*aX%VuTz_3bvu8sYfdh-+?WW1~~%3dVTJ4w;o_-VlQ#WU5_leT2479L2?W%R3_K_GWrIKQy^t|`tbQ2o|@yT1y!vHc#$i({7@D~x!4=P2Fa-4I@nF3Hl>o5(%Ue6r9I?UnZxlo1XsiW z|1Ekxt~FunIXUjmS>o_A5;&PbAG1?s##rjo&~leKWw_>KQH+7NghC=j=J`ZsQl)$M9H`r zlBz(bUd(Q(iZ6_)nq2+al|;oiZY-`OXFj3N?{j5=*62GHB2ZJZrLV-QH3?N35b(;` zT$zrRRNA?I9B)BK%rZ9w^MIT&mq%QQi@2&87#4W4fi#|;#RR5!#!c6>&7w2Gl^_!B zxObIO9ORW>0UIUYs-tCbbLj|fAIEMb%YINQ2ah7vwx^2UK`ot7Ax_zQa$QWsM@#OS z%fK{8tJy|~*_wh{F!3Hym~V}0QF-qxUNyFJ)xZS%-*tly@@zR$Q4?$ASBNENL35I* z%Tb-3r>~|CB+k7rar>HeQT~5?KaaS6HqjTk0z@DEy>q%|EM-}l4wZ4TMR9FTI;|p6 z2!;Qq>i0K)A506x+t~^mJ%AJELi*6Fjr|I20~74fZ0pK^IW51qBw!B~mfQ|DOON1Ks>V3pgNi z&;ik%)k)MRqvkmUAzhC_PkHcPa$Ay<(tPyDr)fVmw?gHHQ&dJNUSifEYQ2J=Ei~_P z{r*kpazu~glGv~ceYcx%QrBTKB83~5p*h*|^IHTRel+r4V>wV-H-946`MHk|{7e*y zW&R&Fi8?iH5H#%xXgl+w|IU1re=lH_Nis52sR934i3)!4&o8BzODxL5gOUj{GD&(wKliEo1WgZ)#N~~;=zLW+9|&VNFLE#=!UWlf8_uT`yUA*6@H%_F=IkKCbnV@2LiH$3Gv zeU?b@C*`sR+3;=b0$0l#{V5F$HvC=wu!^p=+ND=8sjih|I+4wVcQxJxlz)LwtJwo_ z%Krdlo9jNpVY-zLc90Z@_z-vHXVr)9=d?gSjfGrM65&^0Ns1l$`g2E7a z0v!3YHhJ_zOFhmQV|H~fvLxi8p+2^Ex3S@UI15NZD&5VN#sQCmd9g*y{W@d+P8&)o zbzfpdOU!mqTZ1IlT5GLK2cr^bV~i>D!EnQt%ppj&n>B0=Tf^3{B`kob5 li { + position: relative; } + +.fa-li { + left: -2em; + position: absolute; + text-align: center; + width: 2em; + line-height: inherit; } + +.fa-border { + border: solid 0.08em #eee; + border-radius: .1em; + padding: .2em .25em .15em; } + +.fa-pull-left { + float: left; } + +.fa-pull-right { + float: right; } + +.fa.fa-pull-left, +.fas.fa-pull-left, +.far.fa-pull-left, +.fal.fa-pull-left, +.fab.fa-pull-left { + margin-right: .3em; } + +.fa.fa-pull-right, +.fas.fa-pull-right, +.far.fa-pull-right, +.fal.fa-pull-right, +.fab.fa-pull-right { + margin-left: .3em; } + +.fa-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; } + +.fa-pulse { + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); } + +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +.fa-rotate-90 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; + -webkit-transform: rotate(90deg); + transform: rotate(90deg); } + +.fa-rotate-180 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; + -webkit-transform: rotate(180deg); + transform: rotate(180deg); } + +.fa-rotate-270 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; + -webkit-transform: rotate(270deg); + transform: rotate(270deg); } + +.fa-flip-horizontal { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; + -webkit-transform: scale(-1, 1); + transform: scale(-1, 1); } + +.fa-flip-vertical { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; + -webkit-transform: scale(1, -1); + transform: scale(1, -1); } + +.fa-flip-horizontal.fa-flip-vertical { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; + -webkit-transform: scale(-1, -1); + transform: scale(-1, -1); } + +:root .fa-rotate-90, +:root .fa-rotate-180, +:root .fa-rotate-270, +:root .fa-flip-horizontal, +:root .fa-flip-vertical { + -webkit-filter: none; + filter: none; } + +.fa-stack { + display: inline-block; + height: 2em; + line-height: 2em; + position: relative; + vertical-align: middle; + width: 2em; } + +.fa-stack-1x, +.fa-stack-2x { + left: 0; + position: absolute; + text-align: center; + width: 100%; } + +.fa-stack-1x { + line-height: inherit; } + +.fa-stack-2x { + font-size: 2em; } + +.fa-inverse { + color: #fff; } + +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen +readers do not read off random characters that represent icons */ +.fa-500px:before { + content: "\f26e"; } + +.fa-accessible-icon:before { + content: "\f368"; } + +.fa-accusoft:before { + content: "\f369"; } + +.fa-ad:before { + content: "\f641"; } + +.fa-address-book:before { + content: "\f2b9"; } + +.fa-address-card:before { + content: "\f2bb"; } + +.fa-adjust:before { + content: "\f042"; } + +.fa-adn:before { + content: "\f170"; } + +.fa-adversal:before { + content: "\f36a"; } + +.fa-affiliatetheme:before { + content: "\f36b"; } + +.fa-air-freshener:before { + content: "\f5d0"; } + +.fa-algolia:before { + content: "\f36c"; } + +.fa-align-center:before { + content: "\f037"; } + +.fa-align-justify:before { + content: "\f039"; } + +.fa-align-left:before { + content: "\f036"; } + +.fa-align-right:before { + content: "\f038"; } + +.fa-alipay:before { + content: "\f642"; } + +.fa-allergies:before { + content: "\f461"; } + +.fa-amazon:before { + content: "\f270"; } + +.fa-amazon-pay:before { + content: "\f42c"; } + +.fa-ambulance:before { + content: "\f0f9"; } + +.fa-american-sign-language-interpreting:before { + content: "\f2a3"; } + +.fa-amilia:before { + content: "\f36d"; } + +.fa-anchor:before { + content: "\f13d"; } + +.fa-android:before { + content: "\f17b"; } + +.fa-angellist:before { + content: "\f209"; } + +.fa-angle-double-down:before { + content: "\f103"; } + +.fa-angle-double-left:before { + content: "\f100"; } + +.fa-angle-double-right:before { + content: "\f101"; } + +.fa-angle-double-up:before { + content: "\f102"; } + +.fa-angle-down:before { + content: "\f107"; } + +.fa-angle-left:before { + content: "\f104"; } + +.fa-angle-right:before { + content: "\f105"; } + +.fa-angle-up:before { + content: "\f106"; } + +.fa-angry:before { + content: "\f556"; } + +.fa-angrycreative:before { + content: "\f36e"; } + +.fa-angular:before { + content: "\f420"; } + +.fa-ankh:before { + content: "\f644"; } + +.fa-app-store:before { + content: "\f36f"; } + +.fa-app-store-ios:before { + content: "\f370"; } + +.fa-apper:before { + content: "\f371"; } + +.fa-apple:before { + content: "\f179"; } + +.fa-apple-alt:before { + content: "\f5d1"; } + +.fa-apple-pay:before { + content: "\f415"; } + +.fa-archive:before { + content: "\f187"; } + +.fa-archway:before { + content: "\f557"; } + +.fa-arrow-alt-circle-down:before { + content: "\f358"; } + +.fa-arrow-alt-circle-left:before { + content: "\f359"; } + +.fa-arrow-alt-circle-right:before { + content: "\f35a"; } + +.fa-arrow-alt-circle-up:before { + content: "\f35b"; } + +.fa-arrow-circle-down:before { + content: "\f0ab"; } + +.fa-arrow-circle-left:before { + content: "\f0a8"; } + +.fa-arrow-circle-right:before { + content: "\f0a9"; } + +.fa-arrow-circle-up:before { + content: "\f0aa"; } + +.fa-arrow-down:before { + content: "\f063"; } + +.fa-arrow-left:before { + content: "\f060"; } + +.fa-arrow-right:before { + content: "\f061"; } + +.fa-arrow-up:before { + content: "\f062"; } + +.fa-arrows-alt:before { + content: "\f0b2"; } + +.fa-arrows-alt-h:before { + content: "\f337"; } + +.fa-arrows-alt-v:before { + content: "\f338"; } + +.fa-assistive-listening-systems:before { + content: "\f2a2"; } + +.fa-asterisk:before { + content: "\f069"; } + +.fa-asymmetrik:before { + content: "\f372"; } + +.fa-at:before { + content: "\f1fa"; } + +.fa-atlas:before { + content: "\f558"; } + +.fa-atom:before { + content: "\f5d2"; } + +.fa-audible:before { + content: "\f373"; } + +.fa-audio-description:before { + content: "\f29e"; } + +.fa-autoprefixer:before { + content: "\f41c"; } + +.fa-avianex:before { + content: "\f374"; } + +.fa-aviato:before { + content: "\f421"; } + +.fa-award:before { + content: "\f559"; } + +.fa-aws:before { + content: "\f375"; } + +.fa-backspace:before { + content: "\f55a"; } + +.fa-backward:before { + content: "\f04a"; } + +.fa-balance-scale:before { + content: "\f24e"; } + +.fa-ban:before { + content: "\f05e"; } + +.fa-band-aid:before { + content: "\f462"; } + +.fa-bandcamp:before { + content: "\f2d5"; } + +.fa-barcode:before { + content: "\f02a"; } + +.fa-bars:before { + content: "\f0c9"; } + +.fa-baseball-ball:before { + content: "\f433"; } + +.fa-basketball-ball:before { + content: "\f434"; } + +.fa-bath:before { + content: "\f2cd"; } + +.fa-battery-empty:before { + content: "\f244"; } + +.fa-battery-full:before { + content: "\f240"; } + +.fa-battery-half:before { + content: "\f242"; } + +.fa-battery-quarter:before { + content: "\f243"; } + +.fa-battery-three-quarters:before { + content: "\f241"; } + +.fa-bed:before { + content: "\f236"; } + +.fa-beer:before { + content: "\f0fc"; } + +.fa-behance:before { + content: "\f1b4"; } + +.fa-behance-square:before { + content: "\f1b5"; } + +.fa-bell:before { + content: "\f0f3"; } + +.fa-bell-slash:before { + content: "\f1f6"; } + +.fa-bezier-curve:before { + content: "\f55b"; } + +.fa-bible:before { + content: "\f647"; } + +.fa-bicycle:before { + content: "\f206"; } + +.fa-bimobject:before { + content: "\f378"; } + +.fa-binoculars:before { + content: "\f1e5"; } + +.fa-birthday-cake:before { + content: "\f1fd"; } + +.fa-bitbucket:before { + content: "\f171"; } + +.fa-bitcoin:before { + content: "\f379"; } + +.fa-bity:before { + content: "\f37a"; } + +.fa-black-tie:before { + content: "\f27e"; } + +.fa-blackberry:before { + content: "\f37b"; } + +.fa-blender:before { + content: "\f517"; } + +.fa-blind:before { + content: "\f29d"; } + +.fa-blogger:before { + content: "\f37c"; } + +.fa-blogger-b:before { + content: "\f37d"; } + +.fa-bluetooth:before { + content: "\f293"; } + +.fa-bluetooth-b:before { + content: "\f294"; } + +.fa-bold:before { + content: "\f032"; } + +.fa-bolt:before { + content: "\f0e7"; } + +.fa-bomb:before { + content: "\f1e2"; } + +.fa-bone:before { + content: "\f5d7"; } + +.fa-bong:before { + content: "\f55c"; } + +.fa-book:before { + content: "\f02d"; } + +.fa-book-open:before { + content: "\f518"; } + +.fa-book-reader:before { + content: "\f5da"; } + +.fa-bookmark:before { + content: "\f02e"; } + +.fa-bowling-ball:before { + content: "\f436"; } + +.fa-box:before { + content: "\f466"; } + +.fa-box-open:before { + content: "\f49e"; } + +.fa-boxes:before { + content: "\f468"; } + +.fa-braille:before { + content: "\f2a1"; } + +.fa-brain:before { + content: "\f5dc"; } + +.fa-briefcase:before { + content: "\f0b1"; } + +.fa-briefcase-medical:before { + content: "\f469"; } + +.fa-broadcast-tower:before { + content: "\f519"; } + +.fa-broom:before { + content: "\f51a"; } + +.fa-brush:before { + content: "\f55d"; } + +.fa-btc:before { + content: "\f15a"; } + +.fa-bug:before { + content: "\f188"; } + +.fa-building:before { + content: "\f1ad"; } + +.fa-bullhorn:before { + content: "\f0a1"; } + +.fa-bullseye:before { + content: "\f140"; } + +.fa-burn:before { + content: "\f46a"; } + +.fa-buromobelexperte:before { + content: "\f37f"; } + +.fa-bus:before { + content: "\f207"; } + +.fa-bus-alt:before { + content: "\f55e"; } + +.fa-business-time:before { + content: "\f64a"; } + +.fa-buysellads:before { + content: "\f20d"; } + +.fa-calculator:before { + content: "\f1ec"; } + +.fa-calendar:before { + content: "\f133"; } + +.fa-calendar-alt:before { + content: "\f073"; } + +.fa-calendar-check:before { + content: "\f274"; } + +.fa-calendar-minus:before { + content: "\f272"; } + +.fa-calendar-plus:before { + content: "\f271"; } + +.fa-calendar-times:before { + content: "\f273"; } + +.fa-camera:before { + content: "\f030"; } + +.fa-camera-retro:before { + content: "\f083"; } + +.fa-cannabis:before { + content: "\f55f"; } + +.fa-capsules:before { + content: "\f46b"; } + +.fa-car:before { + content: "\f1b9"; } + +.fa-car-alt:before { + content: "\f5de"; } + +.fa-car-battery:before { + content: "\f5df"; } + +.fa-car-crash:before { + content: "\f5e1"; } + +.fa-car-side:before { + content: "\f5e4"; } + +.fa-caret-down:before { + content: "\f0d7"; } + +.fa-caret-left:before { + content: "\f0d9"; } + +.fa-caret-right:before { + content: "\f0da"; } + +.fa-caret-square-down:before { + content: "\f150"; } + +.fa-caret-square-left:before { + content: "\f191"; } + +.fa-caret-square-right:before { + content: "\f152"; } + +.fa-caret-square-up:before { + content: "\f151"; } + +.fa-caret-up:before { + content: "\f0d8"; } + +.fa-cart-arrow-down:before { + content: "\f218"; } + +.fa-cart-plus:before { + content: "\f217"; } + +.fa-cc-amazon-pay:before { + content: "\f42d"; } + +.fa-cc-amex:before { + content: "\f1f3"; } + +.fa-cc-apple-pay:before { + content: "\f416"; } + +.fa-cc-diners-club:before { + content: "\f24c"; } + +.fa-cc-discover:before { + content: "\f1f2"; } + +.fa-cc-jcb:before { + content: "\f24b"; } + +.fa-cc-mastercard:before { + content: "\f1f1"; } + +.fa-cc-paypal:before { + content: "\f1f4"; } + +.fa-cc-stripe:before { + content: "\f1f5"; } + +.fa-cc-visa:before { + content: "\f1f0"; } + +.fa-centercode:before { + content: "\f380"; } + +.fa-certificate:before { + content: "\f0a3"; } + +.fa-chalkboard:before { + content: "\f51b"; } + +.fa-chalkboard-teacher:before { + content: "\f51c"; } + +.fa-charging-station:before { + content: "\f5e7"; } + +.fa-chart-area:before { + content: "\f1fe"; } + +.fa-chart-bar:before { + content: "\f080"; } + +.fa-chart-line:before { + content: "\f201"; } + +.fa-chart-pie:before { + content: "\f200"; } + +.fa-check:before { + content: "\f00c"; } + +.fa-check-circle:before { + content: "\f058"; } + +.fa-check-double:before { + content: "\f560"; } + +.fa-check-square:before { + content: "\f14a"; } + +.fa-chess:before { + content: "\f439"; } + +.fa-chess-bishop:before { + content: "\f43a"; } + +.fa-chess-board:before { + content: "\f43c"; } + +.fa-chess-king:before { + content: "\f43f"; } + +.fa-chess-knight:before { + content: "\f441"; } + +.fa-chess-pawn:before { + content: "\f443"; } + +.fa-chess-queen:before { + content: "\f445"; } + +.fa-chess-rook:before { + content: "\f447"; } + +.fa-chevron-circle-down:before { + content: "\f13a"; } + +.fa-chevron-circle-left:before { + content: "\f137"; } + +.fa-chevron-circle-right:before { + content: "\f138"; } + +.fa-chevron-circle-up:before { + content: "\f139"; } + +.fa-chevron-down:before { + content: "\f078"; } + +.fa-chevron-left:before { + content: "\f053"; } + +.fa-chevron-right:before { + content: "\f054"; } + +.fa-chevron-up:before { + content: "\f077"; } + +.fa-child:before { + content: "\f1ae"; } + +.fa-chrome:before { + content: "\f268"; } + +.fa-church:before { + content: "\f51d"; } + +.fa-circle:before { + content: "\f111"; } + +.fa-circle-notch:before { + content: "\f1ce"; } + +.fa-city:before { + content: "\f64f"; } + +.fa-clipboard:before { + content: "\f328"; } + +.fa-clipboard-check:before { + content: "\f46c"; } + +.fa-clipboard-list:before { + content: "\f46d"; } + +.fa-clock:before { + content: "\f017"; } + +.fa-clone:before { + content: "\f24d"; } + +.fa-closed-captioning:before { + content: "\f20a"; } + +.fa-cloud:before { + content: "\f0c2"; } + +.fa-cloud-download-alt:before { + content: "\f381"; } + +.fa-cloud-upload-alt:before { + content: "\f382"; } + +.fa-cloudscale:before { + content: "\f383"; } + +.fa-cloudsmith:before { + content: "\f384"; } + +.fa-cloudversify:before { + content: "\f385"; } + +.fa-cocktail:before { + content: "\f561"; } + +.fa-code:before { + content: "\f121"; } + +.fa-code-branch:before { + content: "\f126"; } + +.fa-codepen:before { + content: "\f1cb"; } + +.fa-codiepie:before { + content: "\f284"; } + +.fa-coffee:before { + content: "\f0f4"; } + +.fa-cog:before { + content: "\f013"; } + +.fa-cogs:before { + content: "\f085"; } + +.fa-coins:before { + content: "\f51e"; } + +.fa-columns:before { + content: "\f0db"; } + +.fa-comment:before { + content: "\f075"; } + +.fa-comment-alt:before { + content: "\f27a"; } + +.fa-comment-dollar:before { + content: "\f651"; } + +.fa-comment-dots:before { + content: "\f4ad"; } + +.fa-comment-slash:before { + content: "\f4b3"; } + +.fa-comments:before { + content: "\f086"; } + +.fa-comments-dollar:before { + content: "\f653"; } + +.fa-compact-disc:before { + content: "\f51f"; } + +.fa-compass:before { + content: "\f14e"; } + +.fa-compress:before { + content: "\f066"; } + +.fa-concierge-bell:before { + content: "\f562"; } + +.fa-connectdevelop:before { + content: "\f20e"; } + +.fa-contao:before { + content: "\f26d"; } + +.fa-cookie:before { + content: "\f563"; } + +.fa-cookie-bite:before { + content: "\f564"; } + +.fa-copy:before { + content: "\f0c5"; } + +.fa-copyright:before { + content: "\f1f9"; } + +.fa-couch:before { + content: "\f4b8"; } + +.fa-cpanel:before { + content: "\f388"; } + +.fa-creative-commons:before { + content: "\f25e"; } + +.fa-creative-commons-by:before { + content: "\f4e7"; } + +.fa-creative-commons-nc:before { + content: "\f4e8"; } + +.fa-creative-commons-nc-eu:before { + content: "\f4e9"; } + +.fa-creative-commons-nc-jp:before { + content: "\f4ea"; } + +.fa-creative-commons-nd:before { + content: "\f4eb"; } + +.fa-creative-commons-pd:before { + content: "\f4ec"; } + +.fa-creative-commons-pd-alt:before { + content: "\f4ed"; } + +.fa-creative-commons-remix:before { + content: "\f4ee"; } + +.fa-creative-commons-sa:before { + content: "\f4ef"; } + +.fa-creative-commons-sampling:before { + content: "\f4f0"; } + +.fa-creative-commons-sampling-plus:before { + content: "\f4f1"; } + +.fa-creative-commons-share:before { + content: "\f4f2"; } + +.fa-credit-card:before { + content: "\f09d"; } + +.fa-crop:before { + content: "\f125"; } + +.fa-crop-alt:before { + content: "\f565"; } + +.fa-cross:before { + content: "\f654"; } + +.fa-crosshairs:before { + content: "\f05b"; } + +.fa-crow:before { + content: "\f520"; } + +.fa-crown:before { + content: "\f521"; } + +.fa-css3:before { + content: "\f13c"; } + +.fa-css3-alt:before { + content: "\f38b"; } + +.fa-cube:before { + content: "\f1b2"; } + +.fa-cubes:before { + content: "\f1b3"; } + +.fa-cut:before { + content: "\f0c4"; } + +.fa-cuttlefish:before { + content: "\f38c"; } + +.fa-d-and-d:before { + content: "\f38d"; } + +.fa-dashcube:before { + content: "\f210"; } + +.fa-database:before { + content: "\f1c0"; } + +.fa-deaf:before { + content: "\f2a4"; } + +.fa-delicious:before { + content: "\f1a5"; } + +.fa-deploydog:before { + content: "\f38e"; } + +.fa-deskpro:before { + content: "\f38f"; } + +.fa-desktop:before { + content: "\f108"; } + +.fa-deviantart:before { + content: "\f1bd"; } + +.fa-dharmachakra:before { + content: "\f655"; } + +.fa-diagnoses:before { + content: "\f470"; } + +.fa-dice:before { + content: "\f522"; } + +.fa-dice-five:before { + content: "\f523"; } + +.fa-dice-four:before { + content: "\f524"; } + +.fa-dice-one:before { + content: "\f525"; } + +.fa-dice-six:before { + content: "\f526"; } + +.fa-dice-three:before { + content: "\f527"; } + +.fa-dice-two:before { + content: "\f528"; } + +.fa-digg:before { + content: "\f1a6"; } + +.fa-digital-ocean:before { + content: "\f391"; } + +.fa-digital-tachograph:before { + content: "\f566"; } + +.fa-directions:before { + content: "\f5eb"; } + +.fa-discord:before { + content: "\f392"; } + +.fa-discourse:before { + content: "\f393"; } + +.fa-divide:before { + content: "\f529"; } + +.fa-dizzy:before { + content: "\f567"; } + +.fa-dna:before { + content: "\f471"; } + +.fa-dochub:before { + content: "\f394"; } + +.fa-docker:before { + content: "\f395"; } + +.fa-dollar-sign:before { + content: "\f155"; } + +.fa-dolly:before { + content: "\f472"; } + +.fa-dolly-flatbed:before { + content: "\f474"; } + +.fa-donate:before { + content: "\f4b9"; } + +.fa-door-closed:before { + content: "\f52a"; } + +.fa-door-open:before { + content: "\f52b"; } + +.fa-dot-circle:before { + content: "\f192"; } + +.fa-dove:before { + content: "\f4ba"; } + +.fa-download:before { + content: "\f019"; } + +.fa-draft2digital:before { + content: "\f396"; } + +.fa-drafting-compass:before { + content: "\f568"; } + +.fa-draw-polygon:before { + content: "\f5ee"; } + +.fa-dribbble:before { + content: "\f17d"; } + +.fa-dribbble-square:before { + content: "\f397"; } + +.fa-dropbox:before { + content: "\f16b"; } + +.fa-drum:before { + content: "\f569"; } + +.fa-drum-steelpan:before { + content: "\f56a"; } + +.fa-drupal:before { + content: "\f1a9"; } + +.fa-dumbbell:before { + content: "\f44b"; } + +.fa-dyalog:before { + content: "\f399"; } + +.fa-earlybirds:before { + content: "\f39a"; } + +.fa-ebay:before { + content: "\f4f4"; } + +.fa-edge:before { + content: "\f282"; } + +.fa-edit:before { + content: "\f044"; } + +.fa-eject:before { + content: "\f052"; } + +.fa-elementor:before { + content: "\f430"; } + +.fa-ellipsis-h:before { + content: "\f141"; } + +.fa-ellipsis-v:before { + content: "\f142"; } + +.fa-ello:before { + content: "\f5f1"; } + +.fa-ember:before { + content: "\f423"; } + +.fa-empire:before { + content: "\f1d1"; } + +.fa-envelope:before { + content: "\f0e0"; } + +.fa-envelope-open:before { + content: "\f2b6"; } + +.fa-envelope-open-text:before { + content: "\f658"; } + +.fa-envelope-square:before { + content: "\f199"; } + +.fa-envira:before { + content: "\f299"; } + +.fa-equals:before { + content: "\f52c"; } + +.fa-eraser:before { + content: "\f12d"; } + +.fa-erlang:before { + content: "\f39d"; } + +.fa-ethereum:before { + content: "\f42e"; } + +.fa-etsy:before { + content: "\f2d7"; } + +.fa-euro-sign:before { + content: "\f153"; } + +.fa-exchange-alt:before { + content: "\f362"; } + +.fa-exclamation:before { + content: "\f12a"; } + +.fa-exclamation-circle:before { + content: "\f06a"; } + +.fa-exclamation-triangle:before { + content: "\f071"; } + +.fa-expand:before { + content: "\f065"; } + +.fa-expand-arrows-alt:before { + content: "\f31e"; } + +.fa-expeditedssl:before { + content: "\f23e"; } + +.fa-external-link-alt:before { + content: "\f35d"; } + +.fa-external-link-square-alt:before { + content: "\f360"; } + +.fa-eye:before { + content: "\f06e"; } + +.fa-eye-dropper:before { + content: "\f1fb"; } + +.fa-eye-slash:before { + content: "\f070"; } + +.fa-facebook:before { + content: "\f09a"; } + +.fa-facebook-f:before { + content: "\f39e"; } + +.fa-facebook-messenger:before { + content: "\f39f"; } + +.fa-facebook-square:before { + content: "\f082"; } + +.fa-fast-backward:before { + content: "\f049"; } + +.fa-fast-forward:before { + content: "\f050"; } + +.fa-fax:before { + content: "\f1ac"; } + +.fa-feather:before { + content: "\f52d"; } + +.fa-feather-alt:before { + content: "\f56b"; } + +.fa-female:before { + content: "\f182"; } + +.fa-fighter-jet:before { + content: "\f0fb"; } + +.fa-file:before { + content: "\f15b"; } + +.fa-file-alt:before { + content: "\f15c"; } + +.fa-file-archive:before { + content: "\f1c6"; } + +.fa-file-audio:before { + content: "\f1c7"; } + +.fa-file-code:before { + content: "\f1c9"; } + +.fa-file-contract:before { + content: "\f56c"; } + +.fa-file-download:before { + content: "\f56d"; } + +.fa-file-excel:before { + content: "\f1c3"; } + +.fa-file-export:before { + content: "\f56e"; } + +.fa-file-image:before { + content: "\f1c5"; } + +.fa-file-import:before { + content: "\f56f"; } + +.fa-file-invoice:before { + content: "\f570"; } + +.fa-file-invoice-dollar:before { + content: "\f571"; } + +.fa-file-medical:before { + content: "\f477"; } + +.fa-file-medical-alt:before { + content: "\f478"; } + +.fa-file-pdf:before { + content: "\f1c1"; } + +.fa-file-powerpoint:before { + content: "\f1c4"; } + +.fa-file-prescription:before { + content: "\f572"; } + +.fa-file-signature:before { + content: "\f573"; } + +.fa-file-upload:before { + content: "\f574"; } + +.fa-file-video:before { + content: "\f1c8"; } + +.fa-file-word:before { + content: "\f1c2"; } + +.fa-fill:before { + content: "\f575"; } + +.fa-fill-drip:before { + content: "\f576"; } + +.fa-film:before { + content: "\f008"; } + +.fa-filter:before { + content: "\f0b0"; } + +.fa-fingerprint:before { + content: "\f577"; } + +.fa-fire:before { + content: "\f06d"; } + +.fa-fire-extinguisher:before { + content: "\f134"; } + +.fa-firefox:before { + content: "\f269"; } + +.fa-first-aid:before { + content: "\f479"; } + +.fa-first-order:before { + content: "\f2b0"; } + +.fa-first-order-alt:before { + content: "\f50a"; } + +.fa-firstdraft:before { + content: "\f3a1"; } + +.fa-fish:before { + content: "\f578"; } + +.fa-flag:before { + content: "\f024"; } + +.fa-flag-checkered:before { + content: "\f11e"; } + +.fa-flask:before { + content: "\f0c3"; } + +.fa-flickr:before { + content: "\f16e"; } + +.fa-flipboard:before { + content: "\f44d"; } + +.fa-flushed:before { + content: "\f579"; } + +.fa-fly:before { + content: "\f417"; } + +.fa-folder:before { + content: "\f07b"; } + +.fa-folder-minus:before { + content: "\f65d"; } + +.fa-folder-open:before { + content: "\f07c"; } + +.fa-folder-plus:before { + content: "\f65e"; } + +.fa-font:before { + content: "\f031"; } + +.fa-font-awesome:before { + content: "\f2b4"; } + +.fa-font-awesome-alt:before { + content: "\f35c"; } + +.fa-font-awesome-flag:before { + content: "\f425"; } + +.fa-font-awesome-logo-full:before { + content: "\f4e6"; } + +.fa-fonticons:before { + content: "\f280"; } + +.fa-fonticons-fi:before { + content: "\f3a2"; } + +.fa-football-ball:before { + content: "\f44e"; } + +.fa-fort-awesome:before { + content: "\f286"; } + +.fa-fort-awesome-alt:before { + content: "\f3a3"; } + +.fa-forumbee:before { + content: "\f211"; } + +.fa-forward:before { + content: "\f04e"; } + +.fa-foursquare:before { + content: "\f180"; } + +.fa-free-code-camp:before { + content: "\f2c5"; } + +.fa-freebsd:before { + content: "\f3a4"; } + +.fa-frog:before { + content: "\f52e"; } + +.fa-frown:before { + content: "\f119"; } + +.fa-frown-open:before { + content: "\f57a"; } + +.fa-fulcrum:before { + content: "\f50b"; } + +.fa-funnel-dollar:before { + content: "\f662"; } + +.fa-futbol:before { + content: "\f1e3"; } + +.fa-galactic-republic:before { + content: "\f50c"; } + +.fa-galactic-senate:before { + content: "\f50d"; } + +.fa-gamepad:before { + content: "\f11b"; } + +.fa-gas-pump:before { + content: "\f52f"; } + +.fa-gavel:before { + content: "\f0e3"; } + +.fa-gem:before { + content: "\f3a5"; } + +.fa-genderless:before { + content: "\f22d"; } + +.fa-get-pocket:before { + content: "\f265"; } + +.fa-gg:before { + content: "\f260"; } + +.fa-gg-circle:before { + content: "\f261"; } + +.fa-gift:before { + content: "\f06b"; } + +.fa-git:before { + content: "\f1d3"; } + +.fa-git-square:before { + content: "\f1d2"; } + +.fa-github:before { + content: "\f09b"; } + +.fa-github-alt:before { + content: "\f113"; } + +.fa-github-square:before { + content: "\f092"; } + +.fa-gitkraken:before { + content: "\f3a6"; } + +.fa-gitlab:before { + content: "\f296"; } + +.fa-gitter:before { + content: "\f426"; } + +.fa-glass-martini:before { + content: "\f000"; } + +.fa-glass-martini-alt:before { + content: "\f57b"; } + +.fa-glasses:before { + content: "\f530"; } + +.fa-glide:before { + content: "\f2a5"; } + +.fa-glide-g:before { + content: "\f2a6"; } + +.fa-globe:before { + content: "\f0ac"; } + +.fa-globe-africa:before { + content: "\f57c"; } + +.fa-globe-americas:before { + content: "\f57d"; } + +.fa-globe-asia:before { + content: "\f57e"; } + +.fa-gofore:before { + content: "\f3a7"; } + +.fa-golf-ball:before { + content: "\f450"; } + +.fa-goodreads:before { + content: "\f3a8"; } + +.fa-goodreads-g:before { + content: "\f3a9"; } + +.fa-google:before { + content: "\f1a0"; } + +.fa-google-drive:before { + content: "\f3aa"; } + +.fa-google-play:before { + content: "\f3ab"; } + +.fa-google-plus:before { + content: "\f2b3"; } + +.fa-google-plus-g:before { + content: "\f0d5"; } + +.fa-google-plus-square:before { + content: "\f0d4"; } + +.fa-google-wallet:before { + content: "\f1ee"; } + +.fa-gopuram:before { + content: "\f664"; } + +.fa-graduation-cap:before { + content: "\f19d"; } + +.fa-gratipay:before { + content: "\f184"; } + +.fa-grav:before { + content: "\f2d6"; } + +.fa-greater-than:before { + content: "\f531"; } + +.fa-greater-than-equal:before { + content: "\f532"; } + +.fa-grimace:before { + content: "\f57f"; } + +.fa-grin:before { + content: "\f580"; } + +.fa-grin-alt:before { + content: "\f581"; } + +.fa-grin-beam:before { + content: "\f582"; } + +.fa-grin-beam-sweat:before { + content: "\f583"; } + +.fa-grin-hearts:before { + content: "\f584"; } + +.fa-grin-squint:before { + content: "\f585"; } + +.fa-grin-squint-tears:before { + content: "\f586"; } + +.fa-grin-stars:before { + content: "\f587"; } + +.fa-grin-tears:before { + content: "\f588"; } + +.fa-grin-tongue:before { + content: "\f589"; } + +.fa-grin-tongue-squint:before { + content: "\f58a"; } + +.fa-grin-tongue-wink:before { + content: "\f58b"; } + +.fa-grin-wink:before { + content: "\f58c"; } + +.fa-grip-horizontal:before { + content: "\f58d"; } + +.fa-grip-vertical:before { + content: "\f58e"; } + +.fa-gripfire:before { + content: "\f3ac"; } + +.fa-grunt:before { + content: "\f3ad"; } + +.fa-gulp:before { + content: "\f3ae"; } + +.fa-h-square:before { + content: "\f0fd"; } + +.fa-hacker-news:before { + content: "\f1d4"; } + +.fa-hacker-news-square:before { + content: "\f3af"; } + +.fa-hackerrank:before { + content: "\f5f7"; } + +.fa-hamsa:before { + content: "\f665"; } + +.fa-hand-holding:before { + content: "\f4bd"; } + +.fa-hand-holding-heart:before { + content: "\f4be"; } + +.fa-hand-holding-usd:before { + content: "\f4c0"; } + +.fa-hand-lizard:before { + content: "\f258"; } + +.fa-hand-paper:before { + content: "\f256"; } + +.fa-hand-peace:before { + content: "\f25b"; } + +.fa-hand-point-down:before { + content: "\f0a7"; } + +.fa-hand-point-left:before { + content: "\f0a5"; } + +.fa-hand-point-right:before { + content: "\f0a4"; } + +.fa-hand-point-up:before { + content: "\f0a6"; } + +.fa-hand-pointer:before { + content: "\f25a"; } + +.fa-hand-rock:before { + content: "\f255"; } + +.fa-hand-scissors:before { + content: "\f257"; } + +.fa-hand-spock:before { + content: "\f259"; } + +.fa-hands:before { + content: "\f4c2"; } + +.fa-hands-helping:before { + content: "\f4c4"; } + +.fa-handshake:before { + content: "\f2b5"; } + +.fa-hashtag:before { + content: "\f292"; } + +.fa-haykal:before { + content: "\f666"; } + +.fa-hdd:before { + content: "\f0a0"; } + +.fa-heading:before { + content: "\f1dc"; } + +.fa-headphones:before { + content: "\f025"; } + +.fa-headphones-alt:before { + content: "\f58f"; } + +.fa-headset:before { + content: "\f590"; } + +.fa-heart:before { + content: "\f004"; } + +.fa-heartbeat:before { + content: "\f21e"; } + +.fa-helicopter:before { + content: "\f533"; } + +.fa-highlighter:before { + content: "\f591"; } + +.fa-hips:before { + content: "\f452"; } + +.fa-hire-a-helper:before { + content: "\f3b0"; } + +.fa-history:before { + content: "\f1da"; } + +.fa-hockey-puck:before { + content: "\f453"; } + +.fa-home:before { + content: "\f015"; } + +.fa-hooli:before { + content: "\f427"; } + +.fa-hornbill:before { + content: "\f592"; } + +.fa-hospital:before { + content: "\f0f8"; } + +.fa-hospital-alt:before { + content: "\f47d"; } + +.fa-hospital-symbol:before { + content: "\f47e"; } + +.fa-hot-tub:before { + content: "\f593"; } + +.fa-hotel:before { + content: "\f594"; } + +.fa-hotjar:before { + content: "\f3b1"; } + +.fa-hourglass:before { + content: "\f254"; } + +.fa-hourglass-end:before { + content: "\f253"; } + +.fa-hourglass-half:before { + content: "\f252"; } + +.fa-hourglass-start:before { + content: "\f251"; } + +.fa-houzz:before { + content: "\f27c"; } + +.fa-html5:before { + content: "\f13b"; } + +.fa-hubspot:before { + content: "\f3b2"; } + +.fa-i-cursor:before { + content: "\f246"; } + +.fa-id-badge:before { + content: "\f2c1"; } + +.fa-id-card:before { + content: "\f2c2"; } + +.fa-id-card-alt:before { + content: "\f47f"; } + +.fa-image:before { + content: "\f03e"; } + +.fa-images:before { + content: "\f302"; } + +.fa-imdb:before { + content: "\f2d8"; } + +.fa-inbox:before { + content: "\f01c"; } + +.fa-indent:before { + content: "\f03c"; } + +.fa-industry:before { + content: "\f275"; } + +.fa-infinity:before { + content: "\f534"; } + +.fa-info:before { + content: "\f129"; } + +.fa-info-circle:before { + content: "\f05a"; } + +.fa-instagram:before { + content: "\f16d"; } + +.fa-internet-explorer:before { + content: "\f26b"; } + +.fa-ioxhost:before { + content: "\f208"; } + +.fa-italic:before { + content: "\f033"; } + +.fa-itunes:before { + content: "\f3b4"; } + +.fa-itunes-note:before { + content: "\f3b5"; } + +.fa-java:before { + content: "\f4e4"; } + +.fa-jedi:before { + content: "\f669"; } + +.fa-jedi-order:before { + content: "\f50e"; } + +.fa-jenkins:before { + content: "\f3b6"; } + +.fa-joget:before { + content: "\f3b7"; } + +.fa-joint:before { + content: "\f595"; } + +.fa-joomla:before { + content: "\f1aa"; } + +.fa-journal-whills:before { + content: "\f66a"; } + +.fa-js:before { + content: "\f3b8"; } + +.fa-js-square:before { + content: "\f3b9"; } + +.fa-jsfiddle:before { + content: "\f1cc"; } + +.fa-kaaba:before { + content: "\f66b"; } + +.fa-kaggle:before { + content: "\f5fa"; } + +.fa-key:before { + content: "\f084"; } + +.fa-keybase:before { + content: "\f4f5"; } + +.fa-keyboard:before { + content: "\f11c"; } + +.fa-keycdn:before { + content: "\f3ba"; } + +.fa-khanda:before { + content: "\f66d"; } + +.fa-kickstarter:before { + content: "\f3bb"; } + +.fa-kickstarter-k:before { + content: "\f3bc"; } + +.fa-kiss:before { + content: "\f596"; } + +.fa-kiss-beam:before { + content: "\f597"; } + +.fa-kiss-wink-heart:before { + content: "\f598"; } + +.fa-kiwi-bird:before { + content: "\f535"; } + +.fa-korvue:before { + content: "\f42f"; } + +.fa-landmark:before { + content: "\f66f"; } + +.fa-language:before { + content: "\f1ab"; } + +.fa-laptop:before { + content: "\f109"; } + +.fa-laptop-code:before { + content: "\f5fc"; } + +.fa-laravel:before { + content: "\f3bd"; } + +.fa-lastfm:before { + content: "\f202"; } + +.fa-lastfm-square:before { + content: "\f203"; } + +.fa-laugh:before { + content: "\f599"; } + +.fa-laugh-beam:before { + content: "\f59a"; } + +.fa-laugh-squint:before { + content: "\f59b"; } + +.fa-laugh-wink:before { + content: "\f59c"; } + +.fa-layer-group:before { + content: "\f5fd"; } + +.fa-leaf:before { + content: "\f06c"; } + +.fa-leanpub:before { + content: "\f212"; } + +.fa-lemon:before { + content: "\f094"; } + +.fa-less:before { + content: "\f41d"; } + +.fa-less-than:before { + content: "\f536"; } + +.fa-less-than-equal:before { + content: "\f537"; } + +.fa-level-down-alt:before { + content: "\f3be"; } + +.fa-level-up-alt:before { + content: "\f3bf"; } + +.fa-life-ring:before { + content: "\f1cd"; } + +.fa-lightbulb:before { + content: "\f0eb"; } + +.fa-line:before { + content: "\f3c0"; } + +.fa-link:before { + content: "\f0c1"; } + +.fa-linkedin:before { + content: "\f08c"; } + +.fa-linkedin-in:before { + content: "\f0e1"; } + +.fa-linode:before { + content: "\f2b8"; } + +.fa-linux:before { + content: "\f17c"; } + +.fa-lira-sign:before { + content: "\f195"; } + +.fa-list:before { + content: "\f03a"; } + +.fa-list-alt:before { + content: "\f022"; } + +.fa-list-ol:before { + content: "\f0cb"; } + +.fa-list-ul:before { + content: "\f0ca"; } + +.fa-location-arrow:before { + content: "\f124"; } + +.fa-lock:before { + content: "\f023"; } + +.fa-lock-open:before { + content: "\f3c1"; } + +.fa-long-arrow-alt-down:before { + content: "\f309"; } + +.fa-long-arrow-alt-left:before { + content: "\f30a"; } + +.fa-long-arrow-alt-right:before { + content: "\f30b"; } + +.fa-long-arrow-alt-up:before { + content: "\f30c"; } + +.fa-low-vision:before { + content: "\f2a8"; } + +.fa-luggage-cart:before { + content: "\f59d"; } + +.fa-lyft:before { + content: "\f3c3"; } + +.fa-magento:before { + content: "\f3c4"; } + +.fa-magic:before { + content: "\f0d0"; } + +.fa-magnet:before { + content: "\f076"; } + +.fa-mail-bulk:before { + content: "\f674"; } + +.fa-mailchimp:before { + content: "\f59e"; } + +.fa-male:before { + content: "\f183"; } + +.fa-mandalorian:before { + content: "\f50f"; } + +.fa-map:before { + content: "\f279"; } + +.fa-map-marked:before { + content: "\f59f"; } + +.fa-map-marked-alt:before { + content: "\f5a0"; } + +.fa-map-marker:before { + content: "\f041"; } + +.fa-map-marker-alt:before { + content: "\f3c5"; } + +.fa-map-pin:before { + content: "\f276"; } + +.fa-map-signs:before { + content: "\f277"; } + +.fa-markdown:before { + content: "\f60f"; } + +.fa-marker:before { + content: "\f5a1"; } + +.fa-mars:before { + content: "\f222"; } + +.fa-mars-double:before { + content: "\f227"; } + +.fa-mars-stroke:before { + content: "\f229"; } + +.fa-mars-stroke-h:before { + content: "\f22b"; } + +.fa-mars-stroke-v:before { + content: "\f22a"; } + +.fa-mastodon:before { + content: "\f4f6"; } + +.fa-maxcdn:before { + content: "\f136"; } + +.fa-medal:before { + content: "\f5a2"; } + +.fa-medapps:before { + content: "\f3c6"; } + +.fa-medium:before { + content: "\f23a"; } + +.fa-medium-m:before { + content: "\f3c7"; } + +.fa-medkit:before { + content: "\f0fa"; } + +.fa-medrt:before { + content: "\f3c8"; } + +.fa-meetup:before { + content: "\f2e0"; } + +.fa-megaport:before { + content: "\f5a3"; } + +.fa-meh:before { + content: "\f11a"; } + +.fa-meh-blank:before { + content: "\f5a4"; } + +.fa-meh-rolling-eyes:before { + content: "\f5a5"; } + +.fa-memory:before { + content: "\f538"; } + +.fa-menorah:before { + content: "\f676"; } + +.fa-mercury:before { + content: "\f223"; } + +.fa-microchip:before { + content: "\f2db"; } + +.fa-microphone:before { + content: "\f130"; } + +.fa-microphone-alt:before { + content: "\f3c9"; } + +.fa-microphone-alt-slash:before { + content: "\f539"; } + +.fa-microphone-slash:before { + content: "\f131"; } + +.fa-microscope:before { + content: "\f610"; } + +.fa-microsoft:before { + content: "\f3ca"; } + +.fa-minus:before { + content: "\f068"; } + +.fa-minus-circle:before { + content: "\f056"; } + +.fa-minus-square:before { + content: "\f146"; } + +.fa-mix:before { + content: "\f3cb"; } + +.fa-mixcloud:before { + content: "\f289"; } + +.fa-mizuni:before { + content: "\f3cc"; } + +.fa-mobile:before { + content: "\f10b"; } + +.fa-mobile-alt:before { + content: "\f3cd"; } + +.fa-modx:before { + content: "\f285"; } + +.fa-monero:before { + content: "\f3d0"; } + +.fa-money-bill:before { + content: "\f0d6"; } + +.fa-money-bill-alt:before { + content: "\f3d1"; } + +.fa-money-bill-wave:before { + content: "\f53a"; } + +.fa-money-bill-wave-alt:before { + content: "\f53b"; } + +.fa-money-check:before { + content: "\f53c"; } + +.fa-money-check-alt:before { + content: "\f53d"; } + +.fa-monument:before { + content: "\f5a6"; } + +.fa-moon:before { + content: "\f186"; } + +.fa-mortar-pestle:before { + content: "\f5a7"; } + +.fa-mosque:before { + content: "\f678"; } + +.fa-motorcycle:before { + content: "\f21c"; } + +.fa-mouse-pointer:before { + content: "\f245"; } + +.fa-music:before { + content: "\f001"; } + +.fa-napster:before { + content: "\f3d2"; } + +.fa-neos:before { + content: "\f612"; } + +.fa-neuter:before { + content: "\f22c"; } + +.fa-newspaper:before { + content: "\f1ea"; } + +.fa-nimblr:before { + content: "\f5a8"; } + +.fa-nintendo-switch:before { + content: "\f418"; } + +.fa-node:before { + content: "\f419"; } + +.fa-node-js:before { + content: "\f3d3"; } + +.fa-not-equal:before { + content: "\f53e"; } + +.fa-notes-medical:before { + content: "\f481"; } + +.fa-npm:before { + content: "\f3d4"; } + +.fa-ns8:before { + content: "\f3d5"; } + +.fa-nutritionix:before { + content: "\f3d6"; } + +.fa-object-group:before { + content: "\f247"; } + +.fa-object-ungroup:before { + content: "\f248"; } + +.fa-odnoklassniki:before { + content: "\f263"; } + +.fa-odnoklassniki-square:before { + content: "\f264"; } + +.fa-oil-can:before { + content: "\f613"; } + +.fa-old-republic:before { + content: "\f510"; } + +.fa-om:before { + content: "\f679"; } + +.fa-opencart:before { + content: "\f23d"; } + +.fa-openid:before { + content: "\f19b"; } + +.fa-opera:before { + content: "\f26a"; } + +.fa-optin-monster:before { + content: "\f23c"; } + +.fa-osi:before { + content: "\f41a"; } + +.fa-outdent:before { + content: "\f03b"; } + +.fa-page4:before { + content: "\f3d7"; } + +.fa-pagelines:before { + content: "\f18c"; } + +.fa-paint-brush:before { + content: "\f1fc"; } + +.fa-paint-roller:before { + content: "\f5aa"; } + +.fa-palette:before { + content: "\f53f"; } + +.fa-palfed:before { + content: "\f3d8"; } + +.fa-pallet:before { + content: "\f482"; } + +.fa-paper-plane:before { + content: "\f1d8"; } + +.fa-paperclip:before { + content: "\f0c6"; } + +.fa-parachute-box:before { + content: "\f4cd"; } + +.fa-paragraph:before { + content: "\f1dd"; } + +.fa-parking:before { + content: "\f540"; } + +.fa-passport:before { + content: "\f5ab"; } + +.fa-pastafarianism:before { + content: "\f67b"; } + +.fa-paste:before { + content: "\f0ea"; } + +.fa-patreon:before { + content: "\f3d9"; } + +.fa-pause:before { + content: "\f04c"; } + +.fa-pause-circle:before { + content: "\f28b"; } + +.fa-paw:before { + content: "\f1b0"; } + +.fa-paypal:before { + content: "\f1ed"; } + +.fa-peace:before { + content: "\f67c"; } + +.fa-pen:before { + content: "\f304"; } + +.fa-pen-alt:before { + content: "\f305"; } + +.fa-pen-fancy:before { + content: "\f5ac"; } + +.fa-pen-nib:before { + content: "\f5ad"; } + +.fa-pen-square:before { + content: "\f14b"; } + +.fa-pencil-alt:before { + content: "\f303"; } + +.fa-pencil-ruler:before { + content: "\f5ae"; } + +.fa-people-carry:before { + content: "\f4ce"; } + +.fa-percent:before { + content: "\f295"; } + +.fa-percentage:before { + content: "\f541"; } + +.fa-periscope:before { + content: "\f3da"; } + +.fa-phabricator:before { + content: "\f3db"; } + +.fa-phoenix-framework:before { + content: "\f3dc"; } + +.fa-phoenix-squadron:before { + content: "\f511"; } + +.fa-phone:before { + content: "\f095"; } + +.fa-phone-slash:before { + content: "\f3dd"; } + +.fa-phone-square:before { + content: "\f098"; } + +.fa-phone-volume:before { + content: "\f2a0"; } + +.fa-php:before { + content: "\f457"; } + +.fa-pied-piper:before { + content: "\f2ae"; } + +.fa-pied-piper-alt:before { + content: "\f1a8"; } + +.fa-pied-piper-hat:before { + content: "\f4e5"; } + +.fa-pied-piper-pp:before { + content: "\f1a7"; } + +.fa-piggy-bank:before { + content: "\f4d3"; } + +.fa-pills:before { + content: "\f484"; } + +.fa-pinterest:before { + content: "\f0d2"; } + +.fa-pinterest-p:before { + content: "\f231"; } + +.fa-pinterest-square:before { + content: "\f0d3"; } + +.fa-place-of-worship:before { + content: "\f67f"; } + +.fa-plane:before { + content: "\f072"; } + +.fa-plane-arrival:before { + content: "\f5af"; } + +.fa-plane-departure:before { + content: "\f5b0"; } + +.fa-play:before { + content: "\f04b"; } + +.fa-play-circle:before { + content: "\f144"; } + +.fa-playstation:before { + content: "\f3df"; } + +.fa-plug:before { + content: "\f1e6"; } + +.fa-plus:before { + content: "\f067"; } + +.fa-plus-circle:before { + content: "\f055"; } + +.fa-plus-square:before { + content: "\f0fe"; } + +.fa-podcast:before { + content: "\f2ce"; } + +.fa-poll:before { + content: "\f681"; } + +.fa-poll-h:before { + content: "\f682"; } + +.fa-poo:before { + content: "\f2fe"; } + +.fa-poop:before { + content: "\f619"; } + +.fa-portrait:before { + content: "\f3e0"; } + +.fa-pound-sign:before { + content: "\f154"; } + +.fa-power-off:before { + content: "\f011"; } + +.fa-pray:before { + content: "\f683"; } + +.fa-praying-hands:before { + content: "\f684"; } + +.fa-prescription:before { + content: "\f5b1"; } + +.fa-prescription-bottle:before { + content: "\f485"; } + +.fa-prescription-bottle-alt:before { + content: "\f486"; } + +.fa-print:before { + content: "\f02f"; } + +.fa-procedures:before { + content: "\f487"; } + +.fa-product-hunt:before { + content: "\f288"; } + +.fa-project-diagram:before { + content: "\f542"; } + +.fa-pushed:before { + content: "\f3e1"; } + +.fa-puzzle-piece:before { + content: "\f12e"; } + +.fa-python:before { + content: "\f3e2"; } + +.fa-qq:before { + content: "\f1d6"; } + +.fa-qrcode:before { + content: "\f029"; } + +.fa-question:before { + content: "\f128"; } + +.fa-question-circle:before { + content: "\f059"; } + +.fa-quidditch:before { + content: "\f458"; } + +.fa-quinscape:before { + content: "\f459"; } + +.fa-quora:before { + content: "\f2c4"; } + +.fa-quote-left:before { + content: "\f10d"; } + +.fa-quote-right:before { + content: "\f10e"; } + +.fa-quran:before { + content: "\f687"; } + +.fa-r-project:before { + content: "\f4f7"; } + +.fa-random:before { + content: "\f074"; } + +.fa-ravelry:before { + content: "\f2d9"; } + +.fa-react:before { + content: "\f41b"; } + +.fa-readme:before { + content: "\f4d5"; } + +.fa-rebel:before { + content: "\f1d0"; } + +.fa-receipt:before { + content: "\f543"; } + +.fa-recycle:before { + content: "\f1b8"; } + +.fa-red-river:before { + content: "\f3e3"; } + +.fa-reddit:before { + content: "\f1a1"; } + +.fa-reddit-alien:before { + content: "\f281"; } + +.fa-reddit-square:before { + content: "\f1a2"; } + +.fa-redo:before { + content: "\f01e"; } + +.fa-redo-alt:before { + content: "\f2f9"; } + +.fa-registered:before { + content: "\f25d"; } + +.fa-rendact:before { + content: "\f3e4"; } + +.fa-renren:before { + content: "\f18b"; } + +.fa-reply:before { + content: "\f3e5"; } + +.fa-reply-all:before { + content: "\f122"; } + +.fa-replyd:before { + content: "\f3e6"; } + +.fa-researchgate:before { + content: "\f4f8"; } + +.fa-resolving:before { + content: "\f3e7"; } + +.fa-retweet:before { + content: "\f079"; } + +.fa-rev:before { + content: "\f5b2"; } + +.fa-ribbon:before { + content: "\f4d6"; } + +.fa-road:before { + content: "\f018"; } + +.fa-robot:before { + content: "\f544"; } + +.fa-rocket:before { + content: "\f135"; } + +.fa-rocketchat:before { + content: "\f3e8"; } + +.fa-rockrms:before { + content: "\f3e9"; } + +.fa-route:before { + content: "\f4d7"; } + +.fa-rss:before { + content: "\f09e"; } + +.fa-rss-square:before { + content: "\f143"; } + +.fa-ruble-sign:before { + content: "\f158"; } + +.fa-ruler:before { + content: "\f545"; } + +.fa-ruler-combined:before { + content: "\f546"; } + +.fa-ruler-horizontal:before { + content: "\f547"; } + +.fa-ruler-vertical:before { + content: "\f548"; } + +.fa-rupee-sign:before { + content: "\f156"; } + +.fa-sad-cry:before { + content: "\f5b3"; } + +.fa-sad-tear:before { + content: "\f5b4"; } + +.fa-safari:before { + content: "\f267"; } + +.fa-sass:before { + content: "\f41e"; } + +.fa-save:before { + content: "\f0c7"; } + +.fa-schlix:before { + content: "\f3ea"; } + +.fa-school:before { + content: "\f549"; } + +.fa-screwdriver:before { + content: "\f54a"; } + +.fa-scribd:before { + content: "\f28a"; } + +.fa-search:before { + content: "\f002"; } + +.fa-search-dollar:before { + content: "\f688"; } + +.fa-search-location:before { + content: "\f689"; } + +.fa-search-minus:before { + content: "\f010"; } + +.fa-search-plus:before { + content: "\f00e"; } + +.fa-searchengin:before { + content: "\f3eb"; } + +.fa-seedling:before { + content: "\f4d8"; } + +.fa-sellcast:before { + content: "\f2da"; } + +.fa-sellsy:before { + content: "\f213"; } + +.fa-server:before { + content: "\f233"; } + +.fa-servicestack:before { + content: "\f3ec"; } + +.fa-shapes:before { + content: "\f61f"; } + +.fa-share:before { + content: "\f064"; } + +.fa-share-alt:before { + content: "\f1e0"; } + +.fa-share-alt-square:before { + content: "\f1e1"; } + +.fa-share-square:before { + content: "\f14d"; } + +.fa-shekel-sign:before { + content: "\f20b"; } + +.fa-shield-alt:before { + content: "\f3ed"; } + +.fa-ship:before { + content: "\f21a"; } + +.fa-shipping-fast:before { + content: "\f48b"; } + +.fa-shirtsinbulk:before { + content: "\f214"; } + +.fa-shoe-prints:before { + content: "\f54b"; } + +.fa-shopping-bag:before { + content: "\f290"; } + +.fa-shopping-basket:before { + content: "\f291"; } + +.fa-shopping-cart:before { + content: "\f07a"; } + +.fa-shopware:before { + content: "\f5b5"; } + +.fa-shower:before { + content: "\f2cc"; } + +.fa-shuttle-van:before { + content: "\f5b6"; } + +.fa-sign:before { + content: "\f4d9"; } + +.fa-sign-in-alt:before { + content: "\f2f6"; } + +.fa-sign-language:before { + content: "\f2a7"; } + +.fa-sign-out-alt:before { + content: "\f2f5"; } + +.fa-signal:before { + content: "\f012"; } + +.fa-signature:before { + content: "\f5b7"; } + +.fa-simplybuilt:before { + content: "\f215"; } + +.fa-sistrix:before { + content: "\f3ee"; } + +.fa-sitemap:before { + content: "\f0e8"; } + +.fa-sith:before { + content: "\f512"; } + +.fa-skull:before { + content: "\f54c"; } + +.fa-skyatlas:before { + content: "\f216"; } + +.fa-skype:before { + content: "\f17e"; } + +.fa-slack:before { + content: "\f198"; } + +.fa-slack-hash:before { + content: "\f3ef"; } + +.fa-sliders-h:before { + content: "\f1de"; } + +.fa-slideshare:before { + content: "\f1e7"; } + +.fa-smile:before { + content: "\f118"; } + +.fa-smile-beam:before { + content: "\f5b8"; } + +.fa-smile-wink:before { + content: "\f4da"; } + +.fa-smoking:before { + content: "\f48d"; } + +.fa-smoking-ban:before { + content: "\f54d"; } + +.fa-snapchat:before { + content: "\f2ab"; } + +.fa-snapchat-ghost:before { + content: "\f2ac"; } + +.fa-snapchat-square:before { + content: "\f2ad"; } + +.fa-snowflake:before { + content: "\f2dc"; } + +.fa-socks:before { + content: "\f696"; } + +.fa-solar-panel:before { + content: "\f5ba"; } + +.fa-sort:before { + content: "\f0dc"; } + +.fa-sort-alpha-down:before { + content: "\f15d"; } + +.fa-sort-alpha-up:before { + content: "\f15e"; } + +.fa-sort-amount-down:before { + content: "\f160"; } + +.fa-sort-amount-up:before { + content: "\f161"; } + +.fa-sort-down:before { + content: "\f0dd"; } + +.fa-sort-numeric-down:before { + content: "\f162"; } + +.fa-sort-numeric-up:before { + content: "\f163"; } + +.fa-sort-up:before { + content: "\f0de"; } + +.fa-soundcloud:before { + content: "\f1be"; } + +.fa-spa:before { + content: "\f5bb"; } + +.fa-space-shuttle:before { + content: "\f197"; } + +.fa-speakap:before { + content: "\f3f3"; } + +.fa-spinner:before { + content: "\f110"; } + +.fa-splotch:before { + content: "\f5bc"; } + +.fa-spotify:before { + content: "\f1bc"; } + +.fa-spray-can:before { + content: "\f5bd"; } + +.fa-square:before { + content: "\f0c8"; } + +.fa-square-full:before { + content: "\f45c"; } + +.fa-square-root-alt:before { + content: "\f698"; } + +.fa-squarespace:before { + content: "\f5be"; } + +.fa-stack-exchange:before { + content: "\f18d"; } + +.fa-stack-overflow:before { + content: "\f16c"; } + +.fa-stamp:before { + content: "\f5bf"; } + +.fa-star:before { + content: "\f005"; } + +.fa-star-and-crescent:before { + content: "\f699"; } + +.fa-star-half:before { + content: "\f089"; } + +.fa-star-half-alt:before { + content: "\f5c0"; } + +.fa-star-of-david:before { + content: "\f69a"; } + +.fa-star-of-life:before { + content: "\f621"; } + +.fa-staylinked:before { + content: "\f3f5"; } + +.fa-steam:before { + content: "\f1b6"; } + +.fa-steam-square:before { + content: "\f1b7"; } + +.fa-steam-symbol:before { + content: "\f3f6"; } + +.fa-step-backward:before { + content: "\f048"; } + +.fa-step-forward:before { + content: "\f051"; } + +.fa-stethoscope:before { + content: "\f0f1"; } + +.fa-sticker-mule:before { + content: "\f3f7"; } + +.fa-sticky-note:before { + content: "\f249"; } + +.fa-stop:before { + content: "\f04d"; } + +.fa-stop-circle:before { + content: "\f28d"; } + +.fa-stopwatch:before { + content: "\f2f2"; } + +.fa-store:before { + content: "\f54e"; } + +.fa-store-alt:before { + content: "\f54f"; } + +.fa-strava:before { + content: "\f428"; } + +.fa-stream:before { + content: "\f550"; } + +.fa-street-view:before { + content: "\f21d"; } + +.fa-strikethrough:before { + content: "\f0cc"; } + +.fa-stripe:before { + content: "\f429"; } + +.fa-stripe-s:before { + content: "\f42a"; } + +.fa-stroopwafel:before { + content: "\f551"; } + +.fa-studiovinari:before { + content: "\f3f8"; } + +.fa-stumbleupon:before { + content: "\f1a4"; } + +.fa-stumbleupon-circle:before { + content: "\f1a3"; } + +.fa-subscript:before { + content: "\f12c"; } + +.fa-subway:before { + content: "\f239"; } + +.fa-suitcase:before { + content: "\f0f2"; } + +.fa-suitcase-rolling:before { + content: "\f5c1"; } + +.fa-sun:before { + content: "\f185"; } + +.fa-superpowers:before { + content: "\f2dd"; } + +.fa-superscript:before { + content: "\f12b"; } + +.fa-supple:before { + content: "\f3f9"; } + +.fa-surprise:before { + content: "\f5c2"; } + +.fa-swatchbook:before { + content: "\f5c3"; } + +.fa-swimmer:before { + content: "\f5c4"; } + +.fa-swimming-pool:before { + content: "\f5c5"; } + +.fa-synagogue:before { + content: "\f69b"; } + +.fa-sync:before { + content: "\f021"; } + +.fa-sync-alt:before { + content: "\f2f1"; } + +.fa-syringe:before { + content: "\f48e"; } + +.fa-table:before { + content: "\f0ce"; } + +.fa-table-tennis:before { + content: "\f45d"; } + +.fa-tablet:before { + content: "\f10a"; } + +.fa-tablet-alt:before { + content: "\f3fa"; } + +.fa-tablets:before { + content: "\f490"; } + +.fa-tachometer-alt:before { + content: "\f3fd"; } + +.fa-tag:before { + content: "\f02b"; } + +.fa-tags:before { + content: "\f02c"; } + +.fa-tape:before { + content: "\f4db"; } + +.fa-tasks:before { + content: "\f0ae"; } + +.fa-taxi:before { + content: "\f1ba"; } + +.fa-teamspeak:before { + content: "\f4f9"; } + +.fa-teeth:before { + content: "\f62e"; } + +.fa-teeth-open:before { + content: "\f62f"; } + +.fa-telegram:before { + content: "\f2c6"; } + +.fa-telegram-plane:before { + content: "\f3fe"; } + +.fa-tencent-weibo:before { + content: "\f1d5"; } + +.fa-terminal:before { + content: "\f120"; } + +.fa-text-height:before { + content: "\f034"; } + +.fa-text-width:before { + content: "\f035"; } + +.fa-th:before { + content: "\f00a"; } + +.fa-th-large:before { + content: "\f009"; } + +.fa-th-list:before { + content: "\f00b"; } + +.fa-the-red-yeti:before { + content: "\f69d"; } + +.fa-theater-masks:before { + content: "\f630"; } + +.fa-themeco:before { + content: "\f5c6"; } + +.fa-themeisle:before { + content: "\f2b2"; } + +.fa-thermometer:before { + content: "\f491"; } + +.fa-thermometer-empty:before { + content: "\f2cb"; } + +.fa-thermometer-full:before { + content: "\f2c7"; } + +.fa-thermometer-half:before { + content: "\f2c9"; } + +.fa-thermometer-quarter:before { + content: "\f2ca"; } + +.fa-thermometer-three-quarters:before { + content: "\f2c8"; } + +.fa-thumbs-down:before { + content: "\f165"; } + +.fa-thumbs-up:before { + content: "\f164"; } + +.fa-thumbtack:before { + content: "\f08d"; } + +.fa-ticket-alt:before { + content: "\f3ff"; } + +.fa-times:before { + content: "\f00d"; } + +.fa-times-circle:before { + content: "\f057"; } + +.fa-tint:before { + content: "\f043"; } + +.fa-tint-slash:before { + content: "\f5c7"; } + +.fa-tired:before { + content: "\f5c8"; } + +.fa-toggle-off:before { + content: "\f204"; } + +.fa-toggle-on:before { + content: "\f205"; } + +.fa-toolbox:before { + content: "\f552"; } + +.fa-tooth:before { + content: "\f5c9"; } + +.fa-torah:before { + content: "\f6a0"; } + +.fa-torii-gate:before { + content: "\f6a1"; } + +.fa-trade-federation:before { + content: "\f513"; } + +.fa-trademark:before { + content: "\f25c"; } + +.fa-traffic-light:before { + content: "\f637"; } + +.fa-train:before { + content: "\f238"; } + +.fa-transgender:before { + content: "\f224"; } + +.fa-transgender-alt:before { + content: "\f225"; } + +.fa-trash:before { + content: "\f1f8"; } + +.fa-trash-alt:before { + content: "\f2ed"; } + +.fa-tree:before { + content: "\f1bb"; } + +.fa-trello:before { + content: "\f181"; } + +.fa-tripadvisor:before { + content: "\f262"; } + +.fa-trophy:before { + content: "\f091"; } + +.fa-truck:before { + content: "\f0d1"; } + +.fa-truck-loading:before { + content: "\f4de"; } + +.fa-truck-monster:before { + content: "\f63b"; } + +.fa-truck-moving:before { + content: "\f4df"; } + +.fa-truck-pickup:before { + content: "\f63c"; } + +.fa-tshirt:before { + content: "\f553"; } + +.fa-tty:before { + content: "\f1e4"; } + +.fa-tumblr:before { + content: "\f173"; } + +.fa-tumblr-square:before { + content: "\f174"; } + +.fa-tv:before { + content: "\f26c"; } + +.fa-twitch:before { + content: "\f1e8"; } + +.fa-twitter:before { + content: "\f099"; } + +.fa-twitter-square:before { + content: "\f081"; } + +.fa-typo3:before { + content: "\f42b"; } + +.fa-uber:before { + content: "\f402"; } + +.fa-uikit:before { + content: "\f403"; } + +.fa-umbrella:before { + content: "\f0e9"; } + +.fa-umbrella-beach:before { + content: "\f5ca"; } + +.fa-underline:before { + content: "\f0cd"; } + +.fa-undo:before { + content: "\f0e2"; } + +.fa-undo-alt:before { + content: "\f2ea"; } + +.fa-uniregistry:before { + content: "\f404"; } + +.fa-universal-access:before { + content: "\f29a"; } + +.fa-university:before { + content: "\f19c"; } + +.fa-unlink:before { + content: "\f127"; } + +.fa-unlock:before { + content: "\f09c"; } + +.fa-unlock-alt:before { + content: "\f13e"; } + +.fa-untappd:before { + content: "\f405"; } + +.fa-upload:before { + content: "\f093"; } + +.fa-usb:before { + content: "\f287"; } + +.fa-user:before { + content: "\f007"; } + +.fa-user-alt:before { + content: "\f406"; } + +.fa-user-alt-slash:before { + content: "\f4fa"; } + +.fa-user-astronaut:before { + content: "\f4fb"; } + +.fa-user-check:before { + content: "\f4fc"; } + +.fa-user-circle:before { + content: "\f2bd"; } + +.fa-user-clock:before { + content: "\f4fd"; } + +.fa-user-cog:before { + content: "\f4fe"; } + +.fa-user-edit:before { + content: "\f4ff"; } + +.fa-user-friends:before { + content: "\f500"; } + +.fa-user-graduate:before { + content: "\f501"; } + +.fa-user-lock:before { + content: "\f502"; } + +.fa-user-md:before { + content: "\f0f0"; } + +.fa-user-minus:before { + content: "\f503"; } + +.fa-user-ninja:before { + content: "\f504"; } + +.fa-user-plus:before { + content: "\f234"; } + +.fa-user-secret:before { + content: "\f21b"; } + +.fa-user-shield:before { + content: "\f505"; } + +.fa-user-slash:before { + content: "\f506"; } + +.fa-user-tag:before { + content: "\f507"; } + +.fa-user-tie:before { + content: "\f508"; } + +.fa-user-times:before { + content: "\f235"; } + +.fa-users:before { + content: "\f0c0"; } + +.fa-users-cog:before { + content: "\f509"; } + +.fa-ussunnah:before { + content: "\f407"; } + +.fa-utensil-spoon:before { + content: "\f2e5"; } + +.fa-utensils:before { + content: "\f2e7"; } + +.fa-vaadin:before { + content: "\f408"; } + +.fa-vector-square:before { + content: "\f5cb"; } + +.fa-venus:before { + content: "\f221"; } + +.fa-venus-double:before { + content: "\f226"; } + +.fa-venus-mars:before { + content: "\f228"; } + +.fa-viacoin:before { + content: "\f237"; } + +.fa-viadeo:before { + content: "\f2a9"; } + +.fa-viadeo-square:before { + content: "\f2aa"; } + +.fa-vial:before { + content: "\f492"; } + +.fa-vials:before { + content: "\f493"; } + +.fa-viber:before { + content: "\f409"; } + +.fa-video:before { + content: "\f03d"; } + +.fa-video-slash:before { + content: "\f4e2"; } + +.fa-vihara:before { + content: "\f6a7"; } + +.fa-vimeo:before { + content: "\f40a"; } + +.fa-vimeo-square:before { + content: "\f194"; } + +.fa-vimeo-v:before { + content: "\f27d"; } + +.fa-vine:before { + content: "\f1ca"; } + +.fa-vk:before { + content: "\f189"; } + +.fa-vnv:before { + content: "\f40b"; } + +.fa-volleyball-ball:before { + content: "\f45f"; } + +.fa-volume-down:before { + content: "\f027"; } + +.fa-volume-off:before { + content: "\f026"; } + +.fa-volume-up:before { + content: "\f028"; } + +.fa-vuejs:before { + content: "\f41f"; } + +.fa-walking:before { + content: "\f554"; } + +.fa-wallet:before { + content: "\f555"; } + +.fa-warehouse:before { + content: "\f494"; } + +.fa-weebly:before { + content: "\f5cc"; } + +.fa-weibo:before { + content: "\f18a"; } + +.fa-weight:before { + content: "\f496"; } + +.fa-weight-hanging:before { + content: "\f5cd"; } + +.fa-weixin:before { + content: "\f1d7"; } + +.fa-whatsapp:before { + content: "\f232"; } + +.fa-whatsapp-square:before { + content: "\f40c"; } + +.fa-wheelchair:before { + content: "\f193"; } + +.fa-whmcs:before { + content: "\f40d"; } + +.fa-wifi:before { + content: "\f1eb"; } + +.fa-wikipedia-w:before { + content: "\f266"; } + +.fa-window-close:before { + content: "\f410"; } + +.fa-window-maximize:before { + content: "\f2d0"; } + +.fa-window-minimize:before { + content: "\f2d1"; } + +.fa-window-restore:before { + content: "\f2d2"; } + +.fa-windows:before { + content: "\f17a"; } + +.fa-wine-glass:before { + content: "\f4e3"; } + +.fa-wine-glass-alt:before { + content: "\f5ce"; } + +.fa-wix:before { + content: "\f5cf"; } + +.fa-wolf-pack-battalion:before { + content: "\f514"; } + +.fa-won-sign:before { + content: "\f159"; } + +.fa-wordpress:before { + content: "\f19a"; } + +.fa-wordpress-simple:before { + content: "\f411"; } + +.fa-wpbeginner:before { + content: "\f297"; } + +.fa-wpexplorer:before { + content: "\f2de"; } + +.fa-wpforms:before { + content: "\f298"; } + +.fa-wrench:before { + content: "\f0ad"; } + +.fa-x-ray:before { + content: "\f497"; } + +.fa-xbox:before { + content: "\f412"; } + +.fa-xing:before { + content: "\f168"; } + +.fa-xing-square:before { + content: "\f169"; } + +.fa-y-combinator:before { + content: "\f23b"; } + +.fa-yahoo:before { + content: "\f19e"; } + +.fa-yandex:before { + content: "\f413"; } + +.fa-yandex-international:before { + content: "\f414"; } + +.fa-yelp:before { + content: "\f1e9"; } + +.fa-yen-sign:before { + content: "\f157"; } + +.fa-yin-yang:before { + content: "\f6ad"; } + +.fa-yoast:before { + content: "\f2b1"; } + +.fa-youtube:before { + content: "\f167"; } + +.fa-youtube-square:before { + content: "\f431"; } + +.fa-zhihu:before { + content: "\f63f"; } + +.sr-only { + border: 0; + clip: rect(0, 0, 0, 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; } + +.sr-only-focusable:active, .sr-only-focusable:focus { + clip: auto; + height: auto; + margin: 0; + overflow: visible; + position: static; + width: auto; } +@font-face { + font-family: 'Font Awesome 5 Brands'; + font-style: normal; + font-weight: normal; + src: url("../webfonts/fa-brands-400.eot"); + src: url("../webfonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.woff") format("woff"), url("../webfonts/fa-brands-400.ttf") format("truetype"), url("../webfonts/fa-brands-400.svg#fontawesome") format("svg"); } + +.fab { + font-family: 'Font Awesome 5 Brands'; } +@font-face { + font-family: 'Font Awesome 5 Free'; + font-style: normal; + font-weight: 400; + src: url("../webfonts/fa-regular-400.eot"); + src: url("../webfonts/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.woff") format("woff"), url("../webfonts/fa-regular-400.ttf") format("truetype"), url("../webfonts/fa-regular-400.svg#fontawesome") format("svg"); } + +.far { + font-family: 'Font Awesome 5 Free'; + font-weight: 400; } +@font-face { + font-family: 'Font Awesome 5 Free'; + font-style: normal; + font-weight: 900; + src: url("../webfonts/fa-solid-900.eot"); + src: url("../webfonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.woff") format("woff"), url("../webfonts/fa-solid-900.ttf") format("truetype"), url("../webfonts/fa-solid-900.svg#fontawesome") format("svg"); } + +.fa, +.fas { + font-family: 'Font Awesome 5 Free'; + font-weight: 900; } diff --git a/assets/frontend/icons/fontawesome5/css/all.min.css b/assets/frontend/icons/fontawesome5/css/all.min.css new file mode 100644 index 0000000..03c0a79 --- /dev/null +++ b/assets/frontend/icons/fontawesome5/css/all.min.css @@ -0,0 +1,5 @@ +/*! + * Font Awesome Free 5.3.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ +.fa,.fab,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-balance-scale:before{content:"\f24e"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blind:before{content:"\f29d"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-certificate:before{content:"\f0a3"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-concierge-bell:before{content:"\f562"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-credit-card:before{content:"\f09d"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-delicious:before{content:"\f1a5"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-diagnoses:before{content:"\f470"}.fa-dice:before{content:"\f522"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-gift:before{content:"\f06b"}.fa-git:before{content:"\f1d3"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-handshake:before{content:"\f2b5"}.fa-hashtag:before{content:"\f292"}.fa-haykal:before{content:"\f666"}.fa-hdd:before{content:"\f0a0"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-puck:before{content:"\f453"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hot-tub:before{content:"\f593"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-houzz:before{content:"\f27c"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-internet-explorer:before{content:"\f26b"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mouse-pointer:before{content:"\f245"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-nintendo-switch:before{content:"\f418"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-osi:before{content:"\f41a"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-people-carry:before{content:"\f4ce"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-volume:before{content:"\f2a0"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-random:before{content:"\f074"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-rendact:before{content:"\f3e4"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-rupee-sign:before{content:"\f156"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-sass:before{content:"\f41e"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skull:before{content:"\f54c"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowflake:before{content:"\f2dc"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-swatchbook:before{content:"\f5c3"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toolbox:before{content:"\f552"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-train:before{content:"\f238"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-uikit:before{content:"\f403"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:normal;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-weight:400}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.far,.fas{font-family:"Font Awesome 5 Free"}.fa,.fas{font-weight:900} \ No newline at end of file diff --git a/assets/frontend/icons/fontawesome5/webfonts/fa-brands-400.eot b/assets/frontend/icons/fontawesome5/webfonts/fa-brands-400.eot new file mode 100644 index 0000000000000000000000000000000000000000..086c4a712335c4eded3332f881081fc86c66ec1c GIT binary patch literal 118560 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

)z>?r^EIOlZN^iOK7*)q5PalZ0V46BT z6yl1F#+(+gzKoC}?F z4MZq^J$m*4+Da@Ke6=eWjDpwuGh=5dcriM9b}U%3%=vP`(4S!)5S8XBSv$QR>LOMS z4~(9zl4?<;B4Ic@e0pfs6ZPE+;|DFjmlqh} zdC%c3G2`B-q(n#*g50DTs5+*Z2>ik>W+AR(Lz2uTW|S%1GKQEXCJECeqvuv+6HC9? z2N-xnts(Pz)emqrge{&aTW)}Q5s~u5j3uZ$!@*KE;Dwl=&PvP%!j{Y93{#ep%ws{- zd+HXf<>!Zr7h=(oyGHW!)x^l%>QwR2Ksj%l@K{1PFp9~^Quqr70vhwSLgF1caBK^h;2>uppW;3@J`;(Xz0CS zf{3Hj-QHnxVe7K5^oVgs$eNkDf2wq1Haq>mbQTR=BmTyo#;1dZ&(yF4$a#P?t6)?co~Dwh z*O4G40+_g5|H0)e)16$3bB^A-`;DYEc+#lOa<=sB$pKbx^%2ct_-s~y(UN3lP|-yn z(iuUanVfczoDPCv0s+##O`e5)_BwN7yl-D0?gcd~p=AhF6$4UfhMpPNP^cHmh>6t% zt`4Hf;FlOR{%%YTs^k(%CdV2ToE!9*oI}jSvxJnH$Hu6x8sh*ClxS#~MRWK)z zvV@%(!wA8GkuE}EyFE<-+e}6aJF|uzWHENTA`u6>BibWz698#)yk@P0=6r!lCE^+O zLN1V5ulLdxuK@$aAi@P|KC3(3!ZI{BH;_W$uWe(l@lZ%tl)O&x*1O_2}VqPr$c zv}B?YO&bD3uq*elGGf^B`C!Nv`XtOPHjU#J`-CYNiBAtobx2JzG(|Hvl~Pd@q^D(g znl@a1zV~Y=pn5aGLm{d=0nHb*lP)9&yii3BlOpe$ag%HZ$Ws# zBC(>*xb#on=L8<#=hTBlw^N0ZT5(9C_uVI@L3{=*+7r+**Tq~8bx`x#JqBuo_xGtCHV^&)r`hm00Vg<&a=12yq z_nIWekuXE`?5kv_qsFd;U_W3bmp*kd-ma^EhArb`*m^(R_bcG7eVLk|-|YLNzVGz? zyS_eRA!3nkH%f2T$~EaoCK&V8sKjdW5!oPSO52!SEB#$)RJxf1`ALPKSrg{cobuud zf@;L1qxTLF_&IS(6`AQZ#ySDDEab|3%nOxk6}foSFyCYMg-FORuWqgu(K%cqhhsAp z9a0?QcBqYu#Yv`!ttLrX6|u0CE5?j`%|Y@Y;fNkVQl9%Sl)-UHDgfNy7b^JNNl#GE z25l)lWDlq82?GxW@nlKD#B>!?WonjCVlz%f6aw;`a1!^!)_Lo?5gY|aJ5tC;tZDyf zz*w`)+a88~nz3ps9E@oym~s+jizCEhNrKl(eN8*Cogqh%qLd&s20h@06+(#V6yyVd zoBH#vNByETV75hmP7uGEN)oY&$q-#D==SXX(9dW|D8J3_P1u}*acYUVaDRA0Zf~4o zVOeY3TNsFgl$weT4pPS^Ylju}8~BpbwxZV?^+dcj(1F0550^AwoIHF?0azEU{%o}} zwNQEdpkXcBCa;LFd1ca8wi*W?uPjVes#(l!RDJNETeGEmS^b#H;FV$_NmQ|x)Vx+QOF_j{qW{inX4&z(4_4dA~a#?cmurzzxv;Vj-i zaXzU75fP62yxGP5BlqMi)EdR2Li8$Tinux%P^p8rCI$T6#K`V<)9W8~eB}%HuI{8{ zEK$8gIyfv(zURMUmS+r(&E?W6?#CeMC-gLc`Ph|u#r#)CN^aNG{zJ<$pD|{eH2{8# zo;d(^)mh@F_#%b0F*{?!W+wAaEUpLGg93!B0}2<_iN^++s503v#re!M^zJ@p9gGA@ zSqaerK2tY(QRP4=?q1l{;l|u?)c{IMqpo7aXUW_>RC^-h^%A5ZopR53!OcXYS7IsT zW!ZH$PVm{=j%Kq1MeUOEADfu(V!4}`D6XR$*EWut3l-b_Ka(qmtNp--da0lb24*ao zof(zrR)_W<-u5Wrq_n%6|NdN@>SUjjdcLDh_rTy6(hKvo+AS$>M|)>Iiu1V3lfF;3 z!gFAP7EE+XDwIHgaOPF?3S>zrnj~8Y#-mUw@i)h2b?6G35N-7bDMzj_maX~tSIdqa zb)*2uIXpdkZEotY#j^X(;o*N(Z48yy)<5;B*W~Y}FdkLR&el)1?FYEMwwV)x4rmL7cXxNmCGI~~giM2lN(Ue>!*6hvfe9$ad72&>A~`S zPb@91IlUR*v)PlGB$U_8M>T8fh#hdiyu&WS@jTjtS=02^Qnwar?Eu^W&k(h{SAeHP zFiVU-y!5u4O+x%;)%8Sh_osu2L{MD}CQ2mlwhkTIbP^n_sf!dn{-1Z8*GFrc^Rzk*`5JzJQ-( z3d->$7BN#pMi_vFm?0aybzV7J=0|iK{>vbcox+mlaE9?=CLvXr+{vfH=2!uJqa>3_ z4k9GMlrdDhkg@9rQn9)Cf$4~6d^kR5H7-0y-C0i*b;J?vC-Rcw@&So$w^6OFUp0)N z7h`eM9;KvXuHwbPt=asbby{}cUpe7W;c_+*vQ8a3dLU?d-Ov%AYkMrk3x=^nM!u{j>je!E70(KoI@WkZdk$y0j%2^!8xo|wTB$v{`Jc=uKb3Bxq{tw zm$CRdQ#UJOP2**lhA`58@LS7uW2G0}$0t-`)b2c{+bHXb6-L*Oxkz<**P~GFV{YTI zcN@;*y6vyD(Q}|8K64fz!Uuo!bL3?F!V7MkY&UJ-mTs(zV8+5%kZnlBnO4_#kN)Mk z!WdZR)#5#wZViqX-u-u7|mg!h% z+7fwPt9Jg0nX5-XrH21PMRz~>N%P*X_w90=S2E{nkPJ8iWA=aw6lVkC#(@DIP#=8o z=u>CH;SYngH^m5f%huYdjz%PTXbVrjSUdCIC}cT$|dM&JJqeg6e8T8dNyyi4LH zY7-Dpb84959}%2D%34&?kc5=RWU7RE(z`r)S5S}2i>v8UrB7xJ^9)`rqPfYq1Y?ii zz1gxxLXDZvL2YyEy`Tgclgbx!u4#7H;{hfJumhUaFXa0*>%IL7DMt@a zP>j+uOqSsU1&=J*yp6g&`|yrj0rHg8)JP(XOQGPhgaWM)A$UJeE)hbNL%*>5L$wV9 z*T`RYdu@l4cF%?-M1lZ?Dg{{4sj-r?DFh zOKsNBv;h$$tN;U2g!v*~<`Q{iy$?B1W^DU78gMO8MC}dCRBBoE=x-apni&blhTK4M zQcU9XFnB@EKz5=K^eAV#dU)zDzU|b0bJECV)plqo^UX{s8k!yWW@%>M=b!GMj06KY zZQ7O$$CWE}y8V&2?EZ<@rs8DjIEQc8HlAa21mzxK9;FvmD>o1yOyvj>-lT+N(e0sJ z@REf;&VK&MCzb71LyA;Ow*=gQV+Ri&V?|Z<7j6H|+}vN>YR~ZpNHtVHQ)^ga-s`no%z!q<34A-uI##lT0-mig4MM3?`p?^wFnS*+}G(QU)*H zv-|mXs*|^VovNjyQ~OeZo4*L8_DxOIKK}_4Kj76pz4TtVwg+SziCL$DX{hULH^f{$ z%Nw5~>|nipRaX;VyV6@wR#_D+GFS$bVU3YZ&6Y3N%0 zMsaqElFH%)l`}C?8%zZA0%PbSi7oBOUyGupIfJY=IB zqeQb{T}-%a8Eu9VrrL4is2BcZ$67xpnJ;O(PuC8STBJT4iBs#;I`EUY0c}Geug~`9 z!IozD9}@dq_|YYhf^=uhUk<$yWz=x4d&2>rkpKW$Jwy41(eEUa-}&8O@E6Y(iChjx zBv;4j7)o10KHMVu*-21EaLojx$0+pY)D?LJk+9pPCG#ZSDC=aE3@dHk8;;mctA-S$ z5D*d@sXU};$va%a8KIwc0)K*9MEj^x76v z&g$;B(mvJOFDM}ky|#`tw$W=lL1K7gukB)P{|d7R&j{CvgIC^dD`xz6du^?cJn3HB z(l@Wdy|$J1xnA4W7gcZSwe`L!_0eA2+4q3@RCW zx9Hu*kKLaKH9n74)27z!CK*W`qAwbFICiKCT4(Q%JKsxxm;e9mmk)3UZSF*B-)?eu zvt%1g-?)?8pKJDiaqp)&&!%~GF)at1LTYUacUZZu41YdztG=Kjm*+rNQ&B zvo8<6fP8n6-!F3XSl_Dot1Y}i<9wFQdz731cGXmR|VA%e;rUIiZfQ!pc*1D zWd!KaDwKO%O{hsV1uV&onpJaDhu)|56PJHL9mG5*iPuNfF?C#>P$$(Xb%#2Qc6^t* zTb)s7)jjH*dWCwWx>uc7_o)l&e$b*GR1c|#)g$Urvd|w_PpBu=Q>v~O)S_B~dMuM+ zzp9$*B4|GAYC~&>O)i@`>^_m`l$Mt zdQN>@{jBQn0H)X%G5P`{{tNqt)Vviip$+p8q zM~>m=i81;e^+ok1WQQ-S-v#O5d61gFrv9n=Iu^TcsNYlnoGK;XRDYnprT&HbL-j}M zkJX>3Z>v95|5E)c^&RzR>bvS+tM94rs~-@C_HWg{Q-7}hz4{CFAJl(T|B2e`{}(#% z|E>N?{by=I{I&Y8>c6QUf~5a9Ah-M-TG9Vd{}a6WAE{mSg4T!qOMo>9Rwc}qcr^_G zU5x-N95i0dr}?#j76h0htVOh_79;CFLC9@NOKTZCi8(E=6|{b>s10Z(t*lkR1Q^nW zwGnMptAe^Ru1#o@+7xVQMw`{?di?bqhD1KL6D5Prxb+EKvfj%z2hliDfm4(&7; zb9VtmcSbv_-2<|~E3{W?_X0|HpLRjJpMsMQY7c1-YmaD;YL97;YforTYENl(Z9!Yq zmb8YptgUFPT2s5It!eAphPJ7-v@Pvvt*v#mZEZ)pq+QmoXjipov{z}*YOmH_(`TEV znAp1Ft1m7#I-TaidZXH0Y;D@v-s!ZKw=MN0HkK|yF6-;w`tovfy$MO&UTthNjQaXY zi%q@0-rTBRb=EiP&$KqHH1%$il^kwBvD>ZYlB2%40@ZAGwmr1kR~Orj`gZdY=h-x= zxu?FhRqbrI+T25{79DJVe~c~3(bwzf)I3C z+Y393YmIG#)?%xTu6F2@`clWUxLCc}g@(D+xZ;-e-jjRTSZczR zI@QJXoduV<*;#DydUVCt8}-h1qrF&fFFDwv!?x<{((2GxTMaq!rDmt@Tx`I^ z+Ka8FhQ7GUT{WDG>#d!o&SIU;?KU@>+pBJ~DFdLneASS{w;G#v*3HINv*Bg1Y|>#% zjZ2O7)|SrZcDQZaP zSZZ|E5J8;uK4X2m-rlw@HCI+VESlT(^=fOeQQtI{nhX&JgSp;mcN+RqYjJgFK~`&x zwr8nbU*4YT{l>S{ZZ0ec9q7&t``)&}9Nt=JUD21?I}9j&>1v&E?`+iD>sJ?=?WK;j zu~5HiZ7i)c91QObMpvtC6)DNq*kGdQjg75lyP-EWFE!hBz0qE0+S`Sav>Q7c*2Z?{ zs#_+-QWJ@*(^+>e*B2WLt=3v~Ie4SF0g-AzMcTd_yLz{|w{0wQk>%DEAM4I`mFH$= z(!s7SD9KxZcoKR-BB7-V3$RluZVJJesH1 z?B0Oh-Ey#6YuDEro3dlQz91`zg|V{UuN~^U5DPQVTR~$FmZdxmh zB8JZ;^AOqCTCZRA^uCY@R9y+)y4Af0IbZkSozC9Dm+R~6jcqO{-`H1>%7x=tXwt}mWY2N#0<8r6>*sfc4IlFB%i8bqLbF1T7<>%FUb+xe$QMRqN z;A-~OR(o@yxxTKiwze{g`jTo z1{lZd^i11mwyvzUI@_-1_ReObQ{8NBH}r1Xda-_~?!3rw?~YO9VqIu?zp&j``X2h{bFaixwN$2(AVlKbc3O1rw|x@AjW zYqc-!Gz=7`I#k-T4u4qQ==F=<-7?mp6pShBIy1})g=@H2tZ{pr)#j#sudUNyblO<$ zT(PcSUEVe}>MJtU9UJxL`r>MHW6QMx<$^Y}AxZX)dV6iDby*s4_NCUQzEQuz-5MK> zCD>ZW&bqm?QQgqH4I8WWHXDuYoh`mxsc$i792?EWcFUAUpwxE$Os1r7G@seoY+5&3 zOILLGOQYQ~HtSo${j8gfR!84#ZY->~eVg)PHkVq}&SjYSsv(b1z1XqJ+OoN|VcG2L zb8YUx9=Fj6n^(fErOnnF9n;xtt~Gld<+*LAyS2V_V;0(5utfOnwl0n4l8sfn?rCjp z(|f}AxFJic)3j~TS2GS-(t(YR4jo-?EE!w%?RJB%>9J~lEEIdI;o4fQFSMJBh%fEH z)@qA$U#TuL(i)dr?KS`29+@@}=S|Dj>XsLtyj0zS&zn^5*3H%Ww&#{_x3-)&w_IE1 z*lj>DxBNHT-3jTqvBM=3m@y{ZJ0;^&0i+r}o@YSUOm+Caymzs#n+YlLd2imdSX>Km; ztgqQStF5ie@Of8r77X|8V@9R%KX^NO_t&9!&duGS%_9UG0UhO=YJldJG}o7rRs z1lE)lyd8$J+--G5NQm#oX15#cd)v-VYX_-TL^q?e)u^x4w^+Bfk=9(@Lpxh=Qm=Wt zP$o_Z1MO{!g7grq2)%1U@|UMuQs-uhN+t@wjAcV*;#M+xkn~EGfm7n3|*b+ zhFs#3dquZtc3N$Zd5`TqqS)Qiw@rHCm6cG{Zg(2JP22X>t=6;^*{p5bflh3@phfM* zioEWt29pB%wq)7qEZBECot@3i`l^1ZUWcF>2y3EJcvvqrph_n1*SlM`OHEGbzSP{f z@eRkz#wEUDZKYQm+NCwirA_wiG%j}Z%SZ|9S8Zlru+hBI-1J>$$w5EotC%u4SjtkQO06>VUFp#fF1U9H1y!&l)LjVmx3 pdYS!P6alll(|Q%AY`fZG{&}yqcDCv6z4y@Dv^}%hTopWk{} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/frontend/icons/fontawesome5/webfonts/fa-brands-400.ttf b/assets/frontend/icons/fontawesome5/webfonts/fa-brands-400.ttf new file mode 100644 index 0000000000000000000000000000000000000000..ecbc761ef8cbce6bed98c0d4abb01f6dac5c471e GIT binary patch literal 118324 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 literal 0 HcmV?d00001 diff --git a/assets/frontend/icons/fontawesome5/webfonts/fa-brands-400.woff b/assets/frontend/icons/fontawesome5/webfonts/fa-brands-400.woff new file mode 100644 index 0000000000000000000000000000000000000000..21c2dd306306138b06705fd6a1d6583ace61bb8c GIT binary patch literal 76344 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

+ + item->url ) ) { + return; + } + + if ( strpos( $this->item->url, $this->prefix ) !== false ) { + $this->item->url = ''; + } + } + + function clean_item_content( $content ) { + + $content = preg_replace( '/\[[\/]?[^\]]*\]/', '', $content ); + + $content = html_entity_decode( $content ); + + $content = wp_strip_all_tags( $content, true ); + + return $content; + } + +} diff --git a/lib/frontend/walker/class-quadmenu-walker.php b/lib/frontend/walker/class-quadmenu-walker.php new file mode 100644 index 0000000..ac275cd --- /dev/null +++ b/lib/frontend/walker/class-quadmenu-walker.php @@ -0,0 +1,155 @@ +db_fields['id']; + + $has_children = ! empty( $children_elements[ $element->{$id_field} ] ); + + if ( isset( $args[0] ) && is_array( $args[0] ) ) { + $args[0]['has_children'] = $has_children; + } + + $cb_args = array_merge( array( &$output, $element, $depth ), $args ); + + $id = $element->{$id_field}; // Moved up + + $umitem_obect_class = apply_filters( 'quadmenu_item_object_class', '\\QuadLayers\\QuadMenu\\Frontend\\Walker\\QuadMenu_Item_Default', $element, $id, $this->auto_child ); + + if ( ! class_exists( $umitem_obect_class ) ) { + $umitem_obect_class = '\\QuadLayers\\QuadMenu\\Frontend\\Walker\\QuadMenu_Item_Default'; + } + + $umitem = new $umitem_obect_class( $output, $element, $depth, $cb_args[3], $id, $this, $has_children, $children_elements ); // The $args that get passed to start_el are $cb[3] -- i.e. the 4the element in the array merged above + + $this->push_item( $umitem ); + + call_user_func_array( array( $this, 'start_el' ), $cb_args ); + + // descend only when the depth is right and there are childrens for this element + if ( ( $max_depth == 0 || $max_depth > $depth + 1 ) && isset( $children_elements[ $id ] ) ) { + + foreach ( $children_elements[ $id ] as $child ) { + + if ( ! isset( $newlevel ) ) { + $newlevel = true; + // start the child delimiter + $cb_args = array_merge( array( &$output, $depth ), $args ); + call_user_func_array( array( $this, 'start_lvl' ), $cb_args ); + } + $this->display_element( $child, $children_elements, $max_depth, $depth + 1, $args, $output ); + } + + // Unset this item's children elements + unset( $children_elements[ $id ] ); // TODO!!! + } + + if ( isset( $newlevel ) && $newlevel ) { + // end the child delimiter + $cb_args = array_merge( array( &$output, $depth ), $args ); + call_user_func_array( array( $this, 'end_lvl' ), $cb_args ); + } + + $cb_args = array_merge( array( &$output, $element, $depth ), $args ); + + call_user_func_array( array( $this, 'end_el' ), $cb_args ); + } + + function start_lvl( &$output, $depth = 0, $args = array() ) { + // $indent = str_repeat("\t", $depth); + $this->current_umitem->start_lvl(); + } + + function end_lvl( &$output, $depth = 0, $args = array() ) { + // $indent = str_repeat("\t", $depth); + $this->current_umitem->end_lvl(); + } + + function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) { + + $this->current_umitem->start_el(); + } + + function end_el( &$output, $item, $depth = 0, $args = array() ) { + $this->current_umitem->end_el(); + $this->pop_item(); + } + + function push_item( $umitem ) { + $this->item_stack[] = $umitem; + $this->current_umitem = $umitem; + } + + function pop_item() { + $umitem = array_pop( $this->item_stack ); + $this->current_umitem = $this->current_item(); + } + + function current_item() { + return end( $this->item_stack ); + } + + public static function fallback( $args ) { + + global $_wp_registered_nav_menus; + + if ( ! current_user_can( 'manage_options' ) ) { + return; + } + + extract( $args ); + + ob_start(); + ?> + + + + __( 'QuadMenu', 'quadmenu' ), + 'description' => __( 'Renders a WordPress menu.', 'quadmenu' ), + 'category' => __( 'Actions', 'quadmenu' ), + 'partial_refresh' => true, + 'editor_export' => false, + 'icon' => 'hamburger-menu.svg', + ) + ); + + add_action( 'pre_get_posts', __CLASS__ . '::set_pre_get_posts_query', 10, 2 ); + + } + + public static function get_attachment_data( $id ) { + $data = wp_prepare_attachment_for_js( $id ); + + if ( gettype( $data ) == 'array' ) { + return json_decode( json_encode( $data ) ); + } + + return $data; + } + + public static function _get_menus() { + $get_menus = get_terms( + 'nav_menu', + array( + 'hide_empty' => true, + ) + ); + $fields = array( + 'type' => 'select', + 'label' => __( 'Menu', 'quadmenu' ), + 'helper' => __( 'Select a WordPress menu that you created in the admin under Appearance > Menus.', 'quadmenu' ), + ); + + if ( $get_menus ) { + + foreach ( $get_menus as $key => $menu ) { + + if ( 0 == $key ) { + $fields['default'] = $menu->name; + } + + $menus[ $menu->slug ] = $menu->name; + } + + $fields['options'] = $menus; + } else { + $fields['options'] = array( + '' => __( 'No Menus Found', 'quadmenu' ), + ); + } + + return $fields; + } + + public static function set_pre_get_posts_query( $query ) { + if ( ! is_admin() && $query->is_main_query() ) { + + if ( $query->queried_object_id ) { + + self::$fl_builder_page_id = $query->queried_object_id; + // Fix when menu module is rendered via hook + } elseif ( isset( $query->query_vars['page_id'] ) && 0 != $query->query_vars['page_id'] ) { + self::$fl_builder_page_id = $query->query_vars['page_id']; + } + } + } + + public static function instance() { + if ( ! isset( self::$instance ) ) { + self::$instance = new self(); + // Register_module is here because it needs to be called outside the __construct, loop will ocurre if not + self::register_module(); + } + return self::$instance; + } + + public static function register_module() { + \FLBuilder::register_module( + '\\QuadLayers\\QuadMenu\\Integrations\\Beaver\\Module', + array( + 'general' => array(// Tab + 'title' => __( 'General', 'quadmenu' ), // Tab title + 'sections' => array(// Tab Sections + 'general' => array(// Section + 'title' => '', // Section Title + 'fields' => array(// Section Fields + 'menu' => Module::_get_menus(), + 'layout' => array( + 'type' => 'select', + 'label' => __( 'Layout', 'quadmenu' ), + 'default' => 'collapse', + 'options' => array( + // 'embed' => esc_html__('Embed', 'quadmenu'), + 'collapse' => esc_html__( 'Collapse', 'quadmenu' ), + 'offcanvas' => esc_html__( 'Offcanvas', 'quadmenu' ), + // 'vertical' => esc_html__('Vertical', 'quadmenu'), + 'inherit' => esc_html__( 'Inherit', 'quadmenu' ), + ), + ), + 'theme' => array( + 'type' => 'select', + 'label' => __( 'Theme', 'quadmenu' ), + 'default' => 'default_theme', + 'options' => $GLOBALS['quadmenu_themes'], + ), + ), + ), + 'layout' => array( + 'title' => __( 'Layout', 'quadmenu' ), + 'fields' => array( + 'navbar_logo' => array( + 'type' => 'photo', + 'label' => esc_html__( 'Logo', 'quadmenu' ), + 'connections' => array( 'photo' ), + 'show_remove' => true, + 'default' => QUADMENU_PLUGIN_URL . 'assets/frontend/images/logo.png', + ), + /* + 'navbar_logo_height' => array( + 'type' => 'number', + 'label' => esc_html__('Height', 'quadmenu'), + 'description' => esc_html__('Max logo height in px.', 'quadmenu'), + 'required' => array( + array('layout', '=', array('collapse', 'offcanvas', 'vertical', 'inherit')), + ), + 'default' => QUADMENU_PLUGIN_URL . 'assets/frontend/images/logo.png' + ),*/ + 'layout_align' => array( + 'customizer' => true, + 'transport' => 'selective', + 'id' => 'layout_align', + 'type' => 'select', + 'label' => esc_html__( 'Align', 'quadmenu' ), + 'subtitle' => esc_html__( 'Menu items alignment.', 'quadmenu' ), + 'options' => array( + 'left' => esc_html__( 'Left', 'quadmenu' ), + 'center' => esc_html__( 'Center', 'quadmenu' ), + 'right' => esc_html__( 'Right', 'quadmenu' ), + ), + 'required' => array( + array( 'layout', '=', array( 'embed', 'collapse', 'offcanvas' ) ), + ), + 'default' => 'left', + ), + // Behaviour + // --------------------------------------------------------- + 'layout_breakpoint' => array( + 'type' => 'text', + 'label' => esc_html__( 'Breakpoint', 'quadmenu' ), + 'default' => '768', + 'maxlength' => '4', + 'size' => '4', + 'description' => 'px', + 'preview' => array( + // 'type' => 'css', + // 'selector' => '.menu', + // 'property' => 'font-size', + 'unit' => 'px', + ), + ), + 'layout_width' => array( + 'type' => 'select', + 'label' => esc_html__( 'Width', 'quadmenu' ), + 'description' => esc_html__( 'Try to force menu width to fit screen.', 'quadmenu' ), + 'options' => array( + 'yes' => esc_html__( 'Yes', 'quadmenu' ), + 'false' => esc_html__( 'No', 'quadmenu' ), + ), + 'required' => array( + array( 'layout', '=', array( 'collapse', 'offcanvas' ) ), + ), + 'default' => 'false', + ), + 'layout_width_inner' => array( + 'type' => 'select', + 'label' => esc_html__( 'Inner', 'quadmenu' ), + 'options' => array( + 'yes' => esc_html__( 'Yes', 'quadmenu' ), + 'false' => esc_html__( 'No', 'quadmenu' ), + ), + 'required' => array( + array( 'layout', '=', array( 'collapse', 'offcanvas' ) ), + ), + 'default' => 'false', + ), + 'layout_width_inner_selector' => array( + 'type' => 'text', + 'label' => esc_html__( 'Selector', 'quadmenu' ), + 'description' => esc_html__( 'The menu container will take the width of this selector.', 'quadmenu' ), + 'default' => '.container', + 'required' => array( + array( 'layout', '=', array( 'collapse', 'offcanvas' ) ), + ), + 'required' => array( + array( 'layout_width_inner', '=', 1 ), + ), + ), + 'layout_lazyload' => array( + 'type' => 'select', + 'label' => esc_html__( 'Lazyload', 'quadmenu' ), + 'options' => array( + 'yes' => esc_html__( 'Yes', 'quadmenu' ), + 'false' => esc_html__( 'No', 'quadmenu' ), + ), + 'default' => 'false', + 'description' => esc_html__( 'This is a beta function, please test it carefully.', 'quadmenu' ), + ), + 'layout_current' => array( + 'type' => 'select', + 'label' => esc_html__( 'Open', 'quadmenu' ), + 'options' => array( + 'yes' => esc_html__( 'Yes', 'quadmenu' ), + 'false' => esc_html__( 'No', 'quadmenu' ), + ), + 'default' => 'false', + 'description' => esc_html__( 'Open dropdown if is current page.', 'quadmenu' ), + ), + 'layout_divider' => array( + 'type' => 'select', + 'label' => esc_html__( 'Divider', 'quadmenu' ), + 'description' => esc_html__( 'Show a small divider bar between each menu item.', 'quadmenu' ), + 'options' => array( + 'show' => esc_html__( 'Show', 'quadmenu' ), + 'hide' => esc_html__( 'Hide', 'quadmenu' ), + ), + 'required' => array( + array( 'layout', '=', array( 'embed', 'collapse', 'offcanvas' ) ), + ), + 'default' => 'hide', + ), + 'layout_caret' => array( + 'type' => 'select', + 'label' => esc_html__( 'Caret', 'quadmenu' ), + 'description' => esc_html__( 'Show carets on items with dropdown menus.', 'quadmenu' ), + 'options' => array( + 'show' => esc_html__( 'Show', 'quadmenu' ), + 'hide' => esc_html__( 'Hide', 'quadmenu' ), + ), + 'required' => array( + array( 'layout', '=', array( 'embed', 'collapse', 'offcanvas' ) ), + ), + 'default' => 'hide', + ), + 'layout_classes' => array( + 'type' => 'text', + 'label' => esc_html__( 'Classes', 'quadmenu' ), + 'default' => '', + ), + ), + ), + ), + ), + // Dropdown + // --------------------------------------------------------- + 'dropdown' => array(// Tab + 'title' => __( 'Dropdown', 'quadmenu' ), // Tab title + 'sections' => array(// Tab Sections + 'general_style' => array( + 'title' => '', + 'fields' => array( + 'layout_trigger' => array( + 'type' => 'select', + 'label' => esc_html__( 'Trigger', 'quadmenu' ), + 'options' => array( + 'hoverintent' => esc_html__( 'Hover', 'quadmenu' ), + 'click' => esc_html__( 'Click', 'quadmenu' ), + ), + 'subtitle' => esc_html__( 'Open dropdown menu on mouseover or click.', 'quadmenu' ), + 'default' => 'hoverintent', + 'required' => array( + array( 'layout', '=', array( 'embed', 'collapse', 'offcanvas' ) ), + ), + ), + 'layout_dropdown_maxheight' => array( + 'type' => 'select', + 'label' => esc_html__( 'Max Height', 'quadmenu' ), + 'subtitle' => esc_html__( 'Set the max height of dropdowns.', 'quadmenu' ), + 'options' => array( + 'yes' => esc_html__( 'Yes', 'quadmenu' ), + 'false' => esc_html__( 'No', 'quadmenu' ), + ), + 'default' => 'false', + 'required' => array( + array( 'layout', '=', array( 'embed', 'collapse', 'offcanvas' ) ), + ), + ), + ), + ), + ), + ), + ) + ); + } +} + diff --git a/lib/integrations/beaver/includes/frontend.php b/lib/integrations/beaver/includes/frontend.php new file mode 100644 index 0000000..7d8299b --- /dev/null +++ b/lib/integrations/beaver/includes/frontend.php @@ -0,0 +1,33 @@ +
+
+ menu ) ) { + + $args = array( + 'echo' => false, + 'menu' => $settings->menu, + 'theme' => $settings->theme, + 'layout' => $settings->layout, + 'layout_align' => $settings->layout_align, + 'layout_divider' => $settings->layout_divider, + 'layout_caret' => $settings->layout_caret, + 'layout_classes' => $settings->layout_classes, + 'layout_width' => wp_validate_boolean( $settings->layout_width ), + 'layout_width_inner' => wp_validate_boolean( $settings->layout_width_inner ), + 'layout_width_inner_selector' => esc_html( $settings->layout_width_inner_selector ), + 'layout_lazyload' => wp_validate_boolean( $settings->layout_lazyload ), + 'layout_current' => wp_validate_boolean( $settings->layout_current ), + ); + + if ( isset( $settings->navbar_logo ) ) { + $args['navbar_logo'] = (array) \FLBuilderPhoto::get_attachment_data( $settings->navbar_logo ); + } + + if ( wp_doing_ajax() ) { + $args['layout_classes'] = 'js'; + } + + echo quadmenu( $args ); + } + ?> +
diff --git a/lib/integrations/beaver/module.php b/lib/integrations/beaver/module.php new file mode 100644 index 0000000..5efb6cd --- /dev/null +++ b/lib/integrations/beaver/module.php @@ -0,0 +1,298 @@ + __( 'QuadMenu', 'quadmenu' ), + 'description' => __( 'Renders a WordPress menu.', 'quadmenu' ), + 'category' => __( 'Actions', 'quadmenu' ), + 'partial_refresh' => true, + 'editor_export' => false, + 'icon' => 'hamburger-menu.svg', + ) + ); + + add_action( 'pre_get_posts', __CLASS__ . '::set_pre_get_posts_query', 10, 2 ); + } + + public static function get_attachment_data( $id ) { + $data = wp_prepare_attachment_for_js( $id ); + + if ( gettype( $data ) == 'array' ) { + return json_decode( json_encode( $data ) ); + } + + return $data; + } + + public static function _get_menus() { + $get_menus = get_terms( + 'nav_menu', + array( + 'hide_empty' => true, + ) + ); + $fields = array( + 'type' => 'select', + 'label' => __( 'Menu', 'quadmenu' ), + 'helper' => __( 'Select a WordPress menu that you created in the admin under Appearance > Menus.', 'quadmenu' ), + ); + + if ( $get_menus ) { + + foreach ( $get_menus as $key => $menu ) { + + if ( 0 == $key ) { + $fields['default'] = $menu->name; + } + + $menus[ $menu->slug ] = $menu->name; + } + + $fields['options'] = $menus; + } else { + $fields['options'] = array( + '' => __( 'No Menus Found', 'quadmenu' ), + ); + } + + return $fields; + } + + public static function set_pre_get_posts_query( $query ) { + if ( ! is_admin() && $query->is_main_query() ) { + + if ( $query->queried_object_id ) { + + self::$fl_builder_page_id = $query->queried_object_id; + + // Fix when menu module is rendered via hook + } elseif ( isset( $query->query_vars['page_id'] ) && 0 != $query->query_vars['page_id'] ) { + + self::$fl_builder_page_id = $query->query_vars['page_id']; + } + } + } + +} + +FLBuilder::register_module( + 'FLQuadMenuModule', + array( + 'general' => array(// Tab + 'title' => __( 'General', 'quadmenu' ), // Tab title + 'sections' => array(// Tab Sections + 'general' => array(// Section + 'title' => '', // Section Title + 'fields' => array(// Section Fields + 'menu' => FLQuadMenuModule::_get_menus(), + 'layout' => array( + 'type' => 'select', + 'label' => __( 'Layout', 'quadmenu' ), + 'default' => 'collapse', + 'options' => array( + // 'embed' => esc_html__('Embed', 'quadmenu'), + 'collapse' => esc_html__( 'Collapse', 'quadmenu' ), + 'offcanvas' => esc_html__( 'Offcanvas', 'quadmenu' ), + // 'vertical' => esc_html__('Vertical', 'quadmenu'), + 'inherit' => esc_html__( 'Inherit', 'quadmenu' ), + ), + ), + 'theme' => array( + 'type' => 'select', + 'label' => __( 'Theme', 'quadmenu' ), + 'default' => 'default_theme', + 'options' => $GLOBALS['quadmenu_themes'], + ), + ), + ), + 'layout' => array( + 'title' => __( 'Layout', 'quadmenu' ), + 'fields' => array( + 'navbar_logo' => array( + 'type' => 'photo', + 'label' => esc_html__( 'Logo', 'quadmenu' ), + 'connections' => array( 'photo' ), + 'show_remove' => true, + 'default' => QUADMENU_PLUGIN_URL . 'assets/frontend/images/logo.png', + ), + /* + 'navbar_logo_height' => array( + 'type' => 'number', + 'label' => esc_html__('Height', 'quadmenu'), + 'description' => esc_html__('Max logo height in px.', 'quadmenu'), + 'required' => array( + array('layout', '=', array('collapse', 'offcanvas', 'vertical', 'inherit')), + ), + 'default' => QUADMENU_PLUGIN_URL . 'assets/frontend/images/logo.png' + ),*/ + 'layout_align' => array( + 'customizer' => true, + 'transport' => 'selective', + 'id' => 'layout_align', + 'type' => 'select', + 'label' => esc_html__( 'Align', 'quadmenu' ), + 'subtitle' => esc_html__( 'Menu items alignment.', 'quadmenu' ), + 'options' => array( + 'left' => esc_html__( 'Left', 'quadmenu' ), + 'center' => esc_html__( 'Center', 'quadmenu' ), + 'right' => esc_html__( 'Right', 'quadmenu' ), + ), + 'required' => array( + array( 'layout', '=', array( 'embed', 'collapse', 'offcanvas' ) ), + ), + 'default' => 'left', + ), + // Behaviour + // --------------------------------------------------------- + 'layout_breakpoint' => array( + 'type' => 'text', + 'label' => esc_html__( 'Breakpoint', 'quadmenu' ), + 'default' => '768', + 'maxlength' => '4', + 'size' => '4', + 'description' => 'px', + 'preview' => array( + // 'type' => 'css', + // 'selector' => '.menu', + // 'property' => 'font-size', + 'unit' => 'px', + ), + ), + 'layout_width' => array( + 'type' => 'select', + 'label' => esc_html__( 'Width', 'quadmenu' ), + 'description' => esc_html__( 'Try to force menu width to fit screen.', 'quadmenu' ), + 'options' => array( + 'yes' => esc_html__( 'Yes', 'quadmenu' ), + 'false' => esc_html__( 'No', 'quadmenu' ), + ), + 'required' => array( + array( 'layout', '=', array( 'collapse', 'offcanvas' ) ), + ), + 'default' => 'false', + ), + 'layout_width_inner' => array( + 'type' => 'select', + 'label' => esc_html__( 'Inner', 'quadmenu' ), + 'options' => array( + 'yes' => esc_html__( 'Yes', 'quadmenu' ), + 'false' => esc_html__( 'No', 'quadmenu' ), + ), + 'required' => array( + array( 'layout', '=', array( 'collapse', 'offcanvas' ) ), + ), + 'default' => 'false', + ), + 'layout_width_inner_selector' => array( + 'type' => 'text', + 'label' => esc_html__( 'Selector', 'quadmenu' ), + 'description' => esc_html__( 'The menu container will take the width of this selector.', 'quadmenu' ), + 'default' => '.container', + 'required' => array( + array( 'layout', '=', array( 'collapse', 'offcanvas' ) ), + ), + 'required' => array( + array( 'layout_width_inner', '=', 1 ), + ), + ), + 'layout_lazyload' => array( + 'type' => 'select', + 'label' => esc_html__( 'Lazyload', 'quadmenu' ), + 'options' => array( + 'yes' => esc_html__( 'Yes', 'quadmenu' ), + 'false' => esc_html__( 'No', 'quadmenu' ), + ), + 'default' => 'false', + 'description' => esc_html__( 'This is a beta function, please test it carefully.', 'quadmenu' ), + ), + 'layout_current' => array( + 'type' => 'select', + 'label' => esc_html__( 'Open', 'quadmenu' ), + 'options' => array( + 'yes' => esc_html__( 'Yes', 'quadmenu' ), + 'false' => esc_html__( 'No', 'quadmenu' ), + ), + 'default' => 'false', + 'description' => esc_html__( 'Open dropdown if is current page.', 'quadmenu' ), + ), + 'layout_divider' => array( + 'type' => 'select', + 'label' => esc_html__( 'Divider', 'quadmenu' ), + 'description' => esc_html__( 'Show a small divider bar between each menu item.', 'quadmenu' ), + 'options' => array( + 'show' => esc_html__( 'Show', 'quadmenu' ), + 'hide' => esc_html__( 'Hide', 'quadmenu' ), + ), + 'required' => array( + array( 'layout', '=', array( 'embed', 'collapse', 'offcanvas' ) ), + ), + 'default' => 'hide', + ), + 'layout_caret' => array( + 'type' => 'select', + 'label' => esc_html__( 'Caret', 'quadmenu' ), + 'description' => esc_html__( 'Show carets on items with dropdown menus.', 'quadmenu' ), + 'options' => array( + 'show' => esc_html__( 'Show', 'quadmenu' ), + 'hide' => esc_html__( 'Hide', 'quadmenu' ), + ), + 'required' => array( + array( 'layout', '=', array( 'embed', 'collapse', 'offcanvas' ) ), + ), + 'default' => 'hide', + ), + 'layout_classes' => array( + 'type' => 'text', + 'label' => esc_html__( 'Classes', 'quadmenu' ), + 'default' => '', + ), + ), + ), + ), + ), + // Dropdown + // --------------------------------------------------------- + 'dropdown' => array(// Tab + 'title' => __( 'Dropdown', 'quadmenu' ), // Tab title + 'sections' => array(// Tab Sections + 'general_style' => array( + 'title' => '', + 'fields' => array( + 'layout_trigger' => array( + 'type' => 'select', + 'label' => esc_html__( 'Trigger', 'quadmenu' ), + 'options' => array( + 'hoverintent' => esc_html__( 'Hover', 'quadmenu' ), + 'click' => esc_html__( 'Click', 'quadmenu' ), + ), + 'subtitle' => esc_html__( 'Open dropdown menu on mouseover or click.', 'quadmenu' ), + 'default' => 'hoverintent', + 'required' => array( + array( 'layout', '=', array( 'embed', 'collapse', 'offcanvas' ) ), + ), + ), + 'layout_dropdown_maxheight' => array( + 'type' => 'select', + 'label' => esc_html__( 'Max Height', 'quadmenu' ), + 'subtitle' => esc_html__( 'Set the max height of dropdowns.', 'quadmenu' ), + 'options' => array( + 'yes' => esc_html__( 'Yes', 'quadmenu' ), + 'false' => esc_html__( 'No', 'quadmenu' ), + ), + 'default' => 'false', + 'required' => array( + array( 'layout', '=', array( 'embed', 'collapse', 'offcanvas' ) ), + ), + ), + ), + ), + ), + ), + ) +); diff --git a/lib/integrations/class-beaver.php b/lib/integrations/class-beaver.php new file mode 100644 index 0000000..7ff1879 --- /dev/null +++ b/lib/integrations/class-beaver.php @@ -0,0 +1,107 @@ + + + unregister_widget_type( 'wp-widget-quadmenu_widget' ); + } + + function module( $elementor ) { + + if ( ! class_exists( '\\Elementor\\Plugin', false ) ) { + return; + } + + $elementor->register_widget_type( new Module() ); + } + + function footer() { + + if ( ! class_exists( '\\Elementor\\Plugin', false ) ) { + return; + } + // if (!Elementor\Plugin::$instance->editor->is_edit_mode() && !Elementor\Plugin::$instance->preview->is_preview_mode()) { + // return; + // } + + if ( ! property_exists( '\\Elementor\\Plugin', 'instance' ) ) { + return; + } + + if ( ! @\Elementor\Plugin::$instance->preview ) { + return; + } + + if ( ! @\Elementor\Plugin::$instance->preview->is_preview_mode() ) { + return; + } + ?> + + $location ) { + + if ( strpos( $id, "___{$lang}" ) !== false ) { + unset( $quadmenu_locations[ $id ] ); + } + } + } + } + } + + function active() { + + global $quadmenu, $quadmenu_locations, $quadmenu_active_locations; + + if ( function_exists( 'pll_languages_list' ) ) { + + foreach ( $quadmenu_active_locations as $id => $theme ) { + + foreach ( pll_languages_list() as $lang ) { + + if ( strpos( $id, "___{$lang}" ) === false ) { + $quadmenu_active_locations[ "{$id}___{$lang}" ] = $quadmenu_active_locations[ $id ]; + } + } + } + } + } + + public static function instance() { + if ( ! isset( self::$instance ) ) { + self::$instance = new self(); + } + return self::$instance; + } + +} diff --git a/lib/integrations/class-vc.php b/lib/integrations/class-vc.php new file mode 100644 index 0000000..efd6eb2 --- /dev/null +++ b/lib/integrations/class-vc.php @@ -0,0 +1,99 @@ + '', + 'theme' => '', + ), + $atts + ) + ); + + $args = array( + 'echo' => false, + 'menu' => $menu, + 'theme' => $theme, + 'layout' => 'inherit', + ); + + return quadmenu( $args ); + } + } + + } + + if ( ! function_exists( 'vc_map' ) ) { + return; + } + + vc_map( + array( + 'base' => 'quadmenu_vc', + 'name' => QUADMENU_PLUGIN_NAME, + 'icon' => '', + 'category' => esc_html__( 'Content', 'quadmenu' ), + 'description' => esc_html__( 'QuadMenu Shortcode', 'quadmenu' ), + 'params' => array( + array( + 'type' => 'dropdown', + 'heading' => esc_html__( 'Menus', 'quadmenu' ), + 'param_name' => 'menu', + 'value' => quadmenu_vc_menus(), + 'description' => esc_html__( 'Choose a menu.', 'quadmenu' ), + ), + array( + 'type' => 'dropdown', + 'heading' => esc_html__( 'Theme', 'quadmenu' ), + 'param_name' => 'theme', + 'value' => quadmenu_vc_themes(), + 'description' => esc_html__( 'Choose a theme location.', 'quadmenu' ), + ), + ), + ) + ); +} + +function quadmenu_vc_themes( $themes = array() ) { + + global $quadmenu_themes; + + foreach ( $quadmenu_themes as $key => $theme ) { + + $themes[ $theme ] = $key; + } + + return $themes; +} + +function quadmenu_vc_menus( $menus_ids = array() ) { + + $menus = wp_get_nav_menus(); + + foreach ( $menus as $key => $menu ) { + $menus_ids[ $menu->name ] = $menu->term_id; + } + + return $menus_ids; +} diff --git a/lib/integrations/class-woocommerce.php b/lib/integrations/class-woocommerce.php new file mode 100644 index 0000000..56be2b5 --- /dev/null +++ b/lib/integrations/class-woocommerce.php @@ -0,0 +1,48 @@ + + cart->get_cart_contents_count() ); ?> + + cart->get_cart_total(); ?> + false, + 'menu' => $_REQUEST['menu_id'], + 'theme' => $_REQUEST['menu_theme'], + 'layout_classes' => 'js', + ) + ); + wp_send_json_success( $menu ); + } else { + wp_send_json_error( 'Unknown error.', 'quadmenu' ); + } + } + + function _dequeue_bundles() { + wp_dequeue_style( "{$this->name}-styles" ); + } + + function fullwidth_menu( $args ) { + + if ( class_exists( 'ET_Builder_Module' ) ) { + if ( isset( $args['menu_class'] ) && strpos( $args['menu_class'], 'fullwidth-menu' ) !== false ) { + $args['theme_location'] = false; + } + } + + return $args; + } + + public function __construct( $name = 'quadmenu-divi-module', $args = array() ) { + $this->plugin_dir = plugin_dir_path( __FILE__ ); + $this->plugin_dir_url = plugin_dir_url( $this->plugin_dir . 'divi/' ); + add_action( 'wp_ajax_ajax_quadmenu_divi_module', array( $this, 'ajax_quadmenu_divi_module' ) ); + add_action( 'wp_ajax_nopriv_ajax_quadmenu_divi_module', array( $this, 'ajax_quadmenu_divi_module' ) ); + add_action( 'wp_enqueue_scripts', array( $this, '_dequeue_bundles' ), 100 ); + add_filter( 'wp_nav_menu_args', array( $this, 'fullwidth_menu' ), 100000, 1 ); + parent::__construct( $name, $args ); + } + + public static function instance() { + if ( ! isset( self::$instance ) ) { + self::$instance = new self(); + } + return self::$instance; + } +} + diff --git a/lib/integrations/divi/loader.php b/lib/integrations/divi/loader.php new file mode 100644 index 0000000..aec37cd --- /dev/null +++ b/lib/integrations/divi/loader.php @@ -0,0 +1,14 @@ + res.json()) + .then((response) => { + if (response.success) { + this.$el.html($(response.data).quadmenu()); + } else { + this.setState({ + error: response.data + }); + } + }, (error) => { + this.setState({ + error: error + }); + }); + } + + componentDidMount() { + this.createQuadMenu(this.props.menu_id); + } + + componentDidUpdate(prevProps) { + if (prevProps.menu_id !== this.props.menu_id) { + this.createQuadMenu(this.props.menu_id); + } else if (prevProps.menu_theme !== this.props.menu_theme) { + this.changeTheme(prevProps.menu_theme); + } + } + + render() { + + if (this.state.error) { + return (
{this.state.error}
); + } + + return (
{ + this.el = el + }}>
); + + } + +} + +export default QuadMenu; \ No newline at end of file diff --git a/lib/integrations/divi/modules/QuadMenu/QuadMenu.php b/lib/integrations/divi/modules/QuadMenu/QuadMenu.php new file mode 100644 index 0000000..b48ee61 --- /dev/null +++ b/lib/integrations/divi/modules/QuadMenu/QuadMenu.php @@ -0,0 +1,108 @@ + 'https://quadmenu.com', + 'author' => 'QuadLayers', + 'author_uri' => 'https://www.quadlayers.com', + ); + + function init() { + $this->name = esc_html__( 'QuadMenu', 'quadmenu' ); + + $this->settings_modal_toggles = array( + 'general' => array( + 'toggles' => array( + 'main_content' => esc_html__( 'Settings', 'quadmenu' ), + ), + ), + 'advanced' => array( + 'toggles' => array( + 'width' => array( + 'title' => esc_html__( 'Width', 'quadmenu' ), + 'priority' => 65, + ), + ), + ), + ); + + $this->advanced_fields = array( + // 'background' => array( + // 'background_image' => false, + // ), + 'link' => false, + 'spacing' => false, + 'filters' => false, + 'animation' => false, + 'text' => false, + 'borders' => array( + 'default' => false, + ), + 'margin_padding' => array( + 'css' => array( + 'important' => array( 'custom_margin' ), // needed to overwrite last module margin-bottom styling + ), + ), + 'text_shadow' => array( + // Don't add text-shadow fields since they already are via font-options + 'default' => false, + ), + 'box_shadow' => array( + 'default' => false, + ), + 'fonts' => false, + 'button' => false, + ); + } + + function get_fields() { + + $menus = et_builder_get_nav_menus_options(); + + $menu_id = array_keys( $menus )[1]; + + $fields = array( + 'menu_id' => array( + 'label' => esc_html__( 'Menu', 'quadmenu' ), + 'type' => 'select', + 'option_category' => 'basic_option', + 'options' => $menus, + 'description' => sprintf( '%s %s', esc_html__( 'Select a menu that should be used in the module', 'quadmenu' ), esc_url( admin_url( 'nav-menus.php' ) ), esc_html__( 'Click here to create new menu', 'quadmenu' ) ), + 'toggle_slug' => 'main_content', + 'default' => $menu_id, + ), + 'menu_theme' => array( + 'label' => esc_html__( 'Theme', 'quadmenu' ), + 'type' => 'select', + 'option_category' => 'basic_option', + 'options' => array_flip( quadmenu_vc_themes() ), + 'description' => sprintf( '%s. %s', esc_html__( 'Select a the theme that should be used in the menu', 'quadmenu' ), esc_url( admin_url( 'admin.php?page=' . QUADMENU_PANEL ) ), esc_html__( 'Click here to create new theme', 'quadmenu' ) ), + 'toggle_slug' => 'main_content', + 'default' => 'default_theme', + 'default_on_front' => 'default_theme', + ), + ); + + return $fields; + } + + function render( $attrs, $content, $render_slug ) { + $this->props['content'] = quadmenu( + array( + 'echo' => false, + 'layout_classes' => 'js', + 'menu' => $this->props['menu_id'], + 'theme' => $this->props['menu_theme'], + ) + ); + return sprintf( '
%1$s
', $this->props['content'] ); + } + +} + +new ET_Builder_Module_QuadMenu(); diff --git a/lib/integrations/divi/scripts/builder-bundle.min.js b/lib/integrations/divi/scripts/builder-bundle.min.js new file mode 100644 index 0000000..7b4e605 --- /dev/null +++ b/lib/integrations/divi/scripts/builder-bundle.min.js @@ -0,0 +1 @@ +!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/",n(n.s=1)}([function(e,t){e.exports=jQuery},function(e,t,n){n(2),e.exports=n(3)},function(e,t,n){"use strict"},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0),o=n.n(r),u=n(4);o()(window).on("et_builder_api_ready",function(e,t){t.registerModules(u.a)})},function(e,t,n){"use strict";var r=n(5);t.a=[r.a]},function(e,t,n){"use strict";var r=n(0),o=n.n(r),u=n(6),i=n.n(u);function a(e){return(a="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function c(e,t){for(var n=0;nslug ] = $menu->name; + } + + return $options; + } + + protected function _register_controls() { + + $this->start_controls_section( + 'general', + array( 'label' => esc_html__( 'QuadMenu', 'quadmenu' ) ) + ); + + $menus = $this->get_available_menus(); + + if ( ! empty( $menus ) ) { + $this->add_control( + 'menu', + array( + 'label' => __( 'Menu', 'quadmenu' ), + 'type' => \Elementor\Controls_Manager::SELECT, + 'options' => $menus, + 'default' => array_keys( $menus )[0], + 'save_default' => true, + 'separator' => 'after', + 'description' => sprintf( __( 'Go to the Menus screen to manage your menus.', 'quadmenu' ), admin_url( 'nav-menus.php' ) ), + ) + ); + } else { + $this->add_control( + 'menu', + array( + 'type' => \Elementor\Controls_Manager::RAW_HTML, + 'raw' => sprintf( __( 'There are no menus in your site.
Go to the Menus screen to create one.', 'quadmenu' ), admin_url( 'nav-menus.php' ) ), + 'separator' => 'after', + 'content_classes' => 'elementor-panel-alert elementor-panel-alert-info', + ) + ); + } + + $this->add_control( + 'layout', + array( + 'type' => \Elementor\Controls_Manager::SELECT, + 'label' => __( 'Layout', 'quadmenu' ), + 'default' => 'collapse', + 'options' => array( + // 'embed' => esc_html__('Embed', 'quadmenu'), + 'collapse' => esc_html__( 'Collapse', 'quadmenu' ), + 'offcanvas' => esc_html__( 'Offcanvas', 'quadmenu' ), + // 'vertical' => esc_html__('Vertical', 'quadmenu'), + 'inherit' => esc_html__( 'Inherit', 'quadmenu' ), + ), + ) + ); + + $this->add_control( + 'theme', + array( + 'type' => \Elementor\Controls_Manager::SELECT, + 'label' => __( 'Theme', 'quadmenu' ), + 'default' => 'default_theme', + 'options' => $GLOBALS['quadmenu_themes'], + 'description' => sprintf( __( 'Go to the QuadMenu Options to manage your menu themes.', 'quadmenu' ), admin_url( 'admin.php?page=' . QUADMENU_PANEL ) ), + 'separator' => 'after', + ) + ); + + $this->add_control( + 'navbar_logo', + array( + 'type' => \Elementor\Controls_Manager::MEDIA, + 'label' => __( 'Logo', 'quadmenu' ), + 'description' => esc_html__( 'Max logo height in px.', 'quadmenu' ), + 'default' => array( + 'url' => QUADMENU_PLUGIN_URL . 'assets/frontend/images/logo.png', + ), + 'show_label' => false, + ) + ); + + /* + $this->add_control('navbar_logo_height', array( + 'type' => Controls_Manager::SLIDER, + 'label' => __('Height', 'quadmenu'), + 'default' => array( + 'unit' => 'px', + 'size' => 25, + ), + 'range' => array( + 'px' => array( + 'min' => 20, + 'max' => 160, + ), + ), + )); */ + + $this->add_control( + 'layout_align', + array( + 'type' => \Elementor\Controls_Manager::SELECT, + 'label' => esc_html__( 'Align', 'quadmenu' ), + 'subtitle' => esc_html__( 'Menu items alignment.', 'quadmenu' ), + 'options' => array( + 'left' => esc_html__( 'Left', 'quadmenu' ), + 'center' => esc_html__( 'Center', 'quadmenu' ), + 'right' => esc_html__( 'Right', 'quadmenu' ), + ), + 'condition' => array( + 'layout' => array( 'embed', 'collapse', 'offcanvas' ), + ), + 'default' => 'left', + ) + ); + + // Behaviour + // --------------------------------------------------------- + $this->add_control( + 'layout_breakpoint', + array( + 'type' => \Elementor\Controls_Manager::SLIDER, + 'label' => esc_html__( 'Breakpoint', 'quadmenu' ), + 'default' => array( + 'unit' => 'px', + 'size' => 768, + ), + 'range' => array( + 'px' => array( + 'min' => 10, + 'max' => 300, + ), + ), + ) + ); + + $this->add_control( + 'layout_width', + array( + 'type' => \Elementor\Controls_Manager::SELECT, + 'type' => 'select', + 'label' => esc_html__( 'Width', 'quadmenu' ), + 'description' => esc_html__( 'Try to force menu width to fit screen.', 'quadmenu' ), + 'options' => array( + 'yes' => esc_html__( 'Yes', 'quadmenu' ), + 'false' => esc_html__( 'No', 'quadmenu' ), + ), + 'condition' => array( + 'layout' => array( 'collapse', 'offcanvas' ), + ), + 'default' => 'false', + ) + ); + $this->add_control( + 'layout_width_inner', + array( + 'type' => \Elementor\Controls_Manager::SELECT, + 'label' => esc_html__( 'Inner', 'quadmenu' ), + 'options' => array( + 'yes' => esc_html__( 'Yes', 'quadmenu' ), + 'false' => esc_html__( 'No', 'quadmenu' ), + ), + 'condition' => array( + 'layout' => array( 'collapse', 'offcanvas' ), + ), + 'default' => 'false', + ) + ); + $this->add_control( + 'layout_width_inner_selector', + array( + 'type' => \Elementor\Controls_Manager::TEXT, + 'label' => esc_html__( 'Selector', 'quadmenu' ), + 'description' => esc_html__( 'The menu container will take the width of this selector.', 'quadmenu' ), + 'default' => '.container', + 'condition' => array( + 'layout' => array( 'collapse', 'offcanvas' ), + 'layout_width_inner' => 'yes', + ), + ) + ); + $this->add_control( + 'layout_lazyload', + array( + 'type' => \Elementor\Controls_Manager::SELECT, + 'label' => esc_html__( 'Lazyload', 'quadmenu' ), + 'options' => array( + 'yes' => esc_html__( 'Yes', 'quadmenu' ), + 'false' => esc_html__( 'No', 'quadmenu' ), + ), + 'default' => 'false', + 'description' => esc_html__( 'This is a beta function, please test it carefully.', 'quadmenu' ), + ) + ); + $this->add_control( + 'layout_current', + array( + 'type' => \Elementor\Controls_Manager::SELECT, + 'label' => esc_html__( 'Open', 'quadmenu' ), + 'options' => array( + 'yes' => esc_html__( 'Yes', 'quadmenu' ), + 'false' => esc_html__( 'No', 'quadmenu' ), + ), + 'default' => 'false', + 'description' => esc_html__( 'Open dropdown if is current page.', 'quadmenu' ), + ) + ); + $this->add_control( + 'layout_divider', + array( + 'type' => \Elementor\Controls_Manager::SELECT, + 'label' => esc_html__( 'Divider', 'quadmenu' ), + 'description' => esc_html__( 'Show a small divider bar between each menu item.', 'quadmenu' ), + 'options' => array( + 'show' => esc_html__( 'Show', 'quadmenu' ), + 'hide' => esc_html__( 'Hide', 'quadmenu' ), + ), + 'condition' => array( + 'layout' => array( 'embed', 'collapse', 'offcanvas' ), + ), + 'default' => 'hide', + ) + ); + $this->add_control( + 'layout_caret', + array( + 'type' => \Elementor\Controls_Manager::SELECT, + 'label' => esc_html__( 'Caret', 'quadmenu' ), + 'description' => esc_html__( 'Show carets on items with dropdown menus.', 'quadmenu' ), + 'options' => array( + 'show' => esc_html__( 'Show', 'quadmenu' ), + 'hide' => esc_html__( 'Hide', 'quadmenu' ), + ), + 'condition' => array( + 'layout' => array( 'embed', 'collapse', 'offcanvas' ), + ), + 'default' => 'hide', + ) + ); + $this->add_control( + 'layout_classes', + array( + 'type' => \Elementor\Controls_Manager::TEXT, + 'label' => esc_html__( 'Classes', 'quadmenu' ), + 'default' => '', + // 'separator' => 'after', + ) + ); + + $this->add_control( + 'layout_trigger', + array( + 'type' => \Elementor\Controls_Manager::SELECT, + 'label' => esc_html__( 'Trigger', 'quadmenu' ), + 'options' => array( + 'hoverintent' => esc_html__( 'Hover', 'quadmenu' ), + 'click' => esc_html__( 'Click', 'quadmenu' ), + ), + 'subtitle' => esc_html__( 'Open dropdown menu on mouseover or click.', 'quadmenu' ), + 'default' => 'hoverintent', + 'condition' => array( + 'layout' => array( 'embed', 'collapse', 'offcanvas' ), + ), + ) + ); + + $this->add_control( + 'layout_dropdown_maxheight', + array( + 'type' => \Elementor\Controls_Manager::SELECT, + 'type' => 'select', + 'label' => esc_html__( 'Max Height', 'quadmenu' ), + 'subtitle' => esc_html__( 'Set the max height of dropdowns.', 'quadmenu' ), + 'options' => array( + 'yes' => esc_html__( 'Yes', 'quadmenu' ), + 'false' => esc_html__( 'No', 'quadmenu' ), + ), + 'default' => 'false', + 'condition' => array( + 'layout' => array( 'embed', 'collapse', 'offcanvas' ), + ), + ) + ); + + $this->end_controls_section(); + } + + protected function render() { + + $available_menus = $this->get_available_menus(); + + if ( ! $available_menus ) { + return; + } + + $settings = $this->get_active_settings(); + + if ( ! empty( $settings['menu'] ) ) { + + $args = array( + 'echo' => false, + 'menu' => $settings['menu'], + 'theme' => $settings['theme'], + 'layout' => $settings['layout'], + 'layout_align' => $settings['layout_align'], + 'layout_divider' => $settings['layout_divider'], + 'layout_caret' => $settings['layout_caret'], + 'layout_classes' => $settings['layout_classes'], + 'layout_width' => wp_validate_boolean( $settings['layout_width'] ), + 'layout_width_inner' => wp_validate_boolean( $settings['layout_width_inner'] ), + 'layout_width_inner_selector' => esc_html( $settings['layout_width_inner_selector'] ), + 'layout_lazyload' => wp_validate_boolean( $settings['layout_lazyload'] ), + 'layout_current' => wp_validate_boolean( $settings['layout_current'] ), + // 'navbar_logo_height' => $settings['navbar_logo_height'], + ); + + if ( isset( $settings['navbar_logo']['url'] ) ) { + $args['navbar_logo']['url'] = $settings['navbar_logo']['url']; + } + + if ( wp_doing_ajax() ) { + $args['layout_classes'] = 'js'; + } + + echo quadmenu( $args ); + } + } + + protected function content_template() { + + } + + public function render_plain_content( $instance = array() ) { + + } + +} diff --git a/lib/panel/class-options.php b/lib/panel/class-options.php new file mode 100644 index 0000000..b68380f --- /dev/null +++ b/lib/panel/class-options.php @@ -0,0 +1,50 @@ +
', esc_html__( 'Premium', 'quadmenu' ) ), 'edit_posts', self::$panel_slug . '_premium', array( $this, 'add_panel' ) ); + } + + function add_panel() { + global $submenu; + include QUADMENU_PLUGIN_DIR . '/lib/panel/pages/parts/header.php'; + include QUADMENU_PLUGIN_DIR . '/lib/panel/pages/premium.php'; + } + + public static function instance() { + if ( ! isset( self::$instance ) ) { + self::$instance = new self(); + } + return self::$instance; + } + +} + diff --git a/lib/panel/class-system.php b/lib/panel/class-system.php new file mode 100644 index 0000000..952f8d9 --- /dev/null +++ b/lib/panel/class-system.php @@ -0,0 +1,549 @@ +system(); + + foreach ( self::$status as $section_name => $section_statuses ) { + ?> + + + + + + + + + + + + + + + + +
+ '; + break; + case 'yellow': + echo '
'; + break; + case 'red': + echo '
'; + break; + case 'info': + echo '
i
'; + break; + } + ?> +
+ array( + 'href' => array(), + 'title' => array(), + ), + 'br' => array(), + 'em' => array(), + 'strong' => array(), + 'span' => array(), + ) + ); + ?> +
+ add( + 'Plugin config', + array( + 'check_name' => 'Plugin name', + 'tooltip' => '', + 'value' => QUADMENU_PLUGIN_NAME, + 'status' => 'info', + ) + ); + + // Plugin version + $this->add( + 'Plugin config', + array( + 'check_name' => 'Plugin version', + 'tooltip' => '', + 'value' => QUADMENU_PLUGIN_VERSION, + 'status' => 'info', + ) + ); + + // Redux version + if ( class_exists( 'ReduxFramework' ) ) { + if ( version_compare( \ReduxFramework::$_version, '3.6.5' ) < 0 ) { + $this->add( + 'Plugin config', + array( + 'check_name' => 'Redux version', + 'tooltip' => '', + 'value' => sprintf( '%1$s - %2$s %4$s', \ReduxFramework::$_version, esc_html__( 'Your Redux version is outdated: ', 'quadmenu' ), 'https://es.wordpress.org/plugins/redux-framework/', esc_html__( 'Please install it as a plugin', 'quadmenu' ) ), + 'status' => 'red', + ) + ); + } else { + $this->add( + 'Plugin config', + array( + 'check_name' => 'Redux version', + 'tooltip' => '', + 'value' => \ReduxFramework::$_version, + 'status' => 'green', + ) + ); + } + } else { + $this->add( + 'Plugin config', + array( + 'check_name' => 'Redux version', + 'tooltip' => '', + 'value' => esc_html__( 'Activate ReduxFramework', 'quadmenu' ), + 'status' => 'red', + ) + ); + } + + // Menu Locations + if ( is_array( $quadmenu_active_locations ) ) { + $this->add( + 'Plugin config', + array( + 'check_name' => 'Active Locations', + 'tooltip' => '', + 'value' => sprintf( esc_html__( 'You have %s active menu locations', 'quadmenu' ), count( $quadmenu_active_locations ) ), + 'status' => count( $quadmenu_active_locations ) ? 'green' : 'info', + ) + ); + } + + // Server status + // ----------------------------------------------------------------- + // server info + $this->add( + 'php.ini configuration', + array( + 'check_name' => 'Server software', + 'tooltip' => '', + 'value' => esc_html( $_SERVER['SERVER_SOFTWARE'] ), + 'status' => 'info', + ) + ); + + // php version + $this->add( + 'php.ini configuration', + array( + 'check_name' => 'PHP Version', + 'tooltip' => '', + 'value' => phpversion(), + 'status' => 'info', + ) + ); + + // post_max_size + $this->add( + 'php.ini configuration', + array( + 'check_name' => 'post_max_size', + 'tooltip' => '', + 'value' => sprintf( '%1$s - %2$s', ini_get( 'post_max_size' ), esc_html__( 'You cannot upload images, themes and plugins that have a size bigger than this value', 'quadmenu' ) ), + 'status' => 'info', + ) + ); + + // php time limit + $max_execution_time = ini_get( 'max_execution_time' ); + if ( $max_execution_time == 0 or $max_execution_time >= 300 ) { + $this->add( + 'php.ini configuration', + array( + 'check_name' => 'max_execution_time', + 'tooltip' => '', + 'value' => esc_html( $max_execution_time ), + 'status' => 'green', + ) + ); + } else { + $this->add( + 'php.ini configuration', + array( + 'check_name' => 'max_execution_time', + 'tooltip' => '', + 'value' => sprintf( '%1$s - %2$s %4$s', $max_execution_time, esc_html__( 'To import the demo content 300 seconds of max execution time is required. See: ', 'quadmenu' ), 'http://codex.wordpress.org/Common_WordPress_Errors#Maximum_execution_time_exceeded', esc_html__( 'Increasing max execution to PHP', 'quadmenu' ) ), + 'status' => 'red', + ) + ); + } + + // php max input vars + $max_input_vars = ini_get( 'max_input_vars' ); + if ( $max_input_vars == 0 or $max_input_vars >= 2000 ) { + $this->add( + 'php.ini configuration', + array( + 'check_name' => 'max_input_vars', + 'tooltip' => '', + 'value' => esc_html( $max_input_vars ), + 'status' => 'green', + ) + ); + } else { + $this->add( + 'php.ini configuration', + array( + 'check_name' => 'max_input_vars', + 'tooltip' => '', + 'value' => esc_html( $max_input_vars ), + 'status' => 'yellow', + ) + ); + } + + // suhosin + if ( extension_loaded( 'suhosin' ) !== true ) { + $this->add( + 'php.ini configuration', + array( + 'check_name' => 'SUHOSIN Installed', + 'tooltip' => '', + 'value' => 'False', + 'status' => 'green', + ) + ); + } else { + $this->add( + 'php.ini configuration', + array( + 'check_name' => 'SUHOSIN Installed', + 'tooltip' => '', + 'value' => sprintf( '%1$s - %2$s', esc_html__( 'SUHOSIN is installed', 'quadmenu' ), esc_html__( 'It may cause problems with saving the plugin panel if it\'s not properly configured', 'quadmenu' ) ), + 'status' => 'yellow', + ) + ); + } + + $response_code = wp_remote_retrieve_response_code( + wp_remote_get( + QUADMENU_PLUGIN_URL . 'assets/frontend/less/quadmenu-locations.less', + array( + 'timeout' => 20, + 'user-agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:20.0) Gecko/20100101 Firefox/20.0', + ) + ) + ); + // mime types + if ( $response_code == 200 ) { + $this->add( + 'Compiler', + array( + 'check_name' => esc_html__( 'LESS files allowed', 'quadmenu' ), + 'tooltip' => '', + 'value' => $response_code, + 'status' => 'green', + ) + ); + } else { + $this->add( + 'Compiler', + array( + 'check_name' => esc_html__( 'Can\'t compile stylesheets', 'quadmenu' ), + 'tooltip' => '', + 'value' => sprintf( '%1$s error - %2$s', $response_code, esc_html__( 'Can\'t download LESS mime types', 'quadmenu' ) ), + 'status' => 'red', + ) + ); + } + + // mime types + if ( wp_is_writable( QUADMENU_UPLOAD_DIR ) ) { + $this->add( + 'Compiler', + array( + 'check_name' => esc_html__( 'Folder is writable', 'quadmenu' ), + 'tooltip' => '', + 'value' => QUADMENU_UPLOAD_DIR, + 'status' => 'green', + ) + ); + } else { + $this->add( + 'Compiler', + array( + 'check_name' => esc_html__( 'Can\'t write uploads folder', 'quadmenu' ), + 'tooltip' => '', + 'value' => QUADMENU_UPLOAD_DIR, + 'status' => 'red', + ) + ); + } + + // WordPress + // ----------------------------------------------------------------- + // home url + $this->add( + 'WordPress and plugins', + array( + 'check_name' => 'WP Home URL', + 'tooltip' => 'test tooltip', + 'value' => home_url(), + 'status' => 'info', + ) + ); + + // site url + $this->add( + 'WordPress and plugins', + array( + 'check_name' => 'WP Site URL', + 'tooltip' => 'test tooltip', + 'value' => site_url(), + 'status' => 'info', + ) + ); + + // home_url == site_url + if ( home_url() != site_url() ) { + $this->add( + 'WordPress and plugins', + array( + 'check_name' => 'Home URL - Site URL', + 'tooltip' => 'Home URL not equal to Site URL, this may indicate a problem with your WordPress configuration.', + 'value' => sprintf( '%1$s - %2$s', esc_html__( 'Home URL != Site URL', 'quadmenu' ), esc_html__( 'Home URL not equal to Site URL, this may indicate a problem with your WordPress configuration.', 'quadmenu' ) ), + 'status' => 'red', + ) + ); + } + + // version + $this->add( + 'WordPress and plugins', + array( + 'check_name' => 'WP version', + 'tooltip' => '', + 'value' => get_bloginfo( 'version' ), + 'status' => 'info', + ) + ); + + // is_multisite + $this->add( + 'WordPress and plugins', + array( + 'check_name' => 'WP multisite enabled', + 'tooltip' => '', + 'value' => is_multisite() ? 'Yes' : 'No', + 'status' => 'info', + ) + ); + + // language + $this->add( + 'WordPress and plugins', + array( + 'check_name' => 'WP Language', + 'tooltip' => '', + 'value' => get_locale(), + 'status' => 'info', + ) + ); + + // theme locations + if ( ! is_array( $_wp_registered_nav_menus ) || ! count( $_wp_registered_nav_menus ) ) { + $this->add( + 'WordPress and plugins', + array( + 'check_name' => 'WP Menu Locations', + 'tooltip' => '', + 'value' => esc_html__( 'Your theme doesn\'t natively support menus' ), + 'status' => 'red', + ) + ); + } else { + $this->add( + 'WordPress and plugins', + array( + 'check_name' => 'WP Menu Locations', + 'tooltip' => '', + 'value' => count( $_wp_registered_nav_menus ), + 'status' => 'green', + ) + ); + } + + // memory limit + $memory_limit = $this->wp_memory_notation_to_number( WP_MEMORY_LIMIT ); + if ( $memory_limit < 67108864 ) { + $this->add( + 'WordPress and plugins', + array( + 'check_name' => 'WP Memory Limit', + 'tooltip' => '', + 'value' => sprintf( '%1$s - %2$s %4$s', size_format( $memory_limit ) . '/request', esc_html__( 'We recommend setting memory to at least 64MB. The Plugin is well tested with a 40MB/request limit, but if you are using multiple plugins that may not be enough. See: ', 'quadmenu' ), 'http://codex.wordpress.org/Editing_wp-config.php#Increasing_memory_allocated_to_PHP', esc_html__( 'Increasing memory allocated to PHP', 'quadmenu' ) ), + 'status' => 'red', + ) + ); + } else { + $this->add( + 'WordPress and plugins', + array( + 'check_name' => 'WP Memory Limit', + 'tooltip' => '', + 'value' => size_format( $memory_limit ) . '/request', + 'status' => 'green', + ) + ); + } + + // wp debug + if ( defined( 'WP_DEBUG' ) and WP_DEBUG === true ) { + $this->add( + 'WordPress and plugins', + array( + 'check_name' => 'WP_DEBUG', + 'tooltip' => '', + 'value' => esc_html__( 'WP_DEBUG is enabled', 'quadmenu' ), + 'status' => 'yellow', + ) + ); + } else { + $this->add( + 'WordPress and plugins', + array( + 'check_name' => 'WP_DEBUG', + 'tooltip' => '', + 'value' => 'False', + 'status' => 'green', + ) + ); + } + + // caching + $caching_plugin_list = array( + 'wp-super-cache/wp-cache.php' => array( + 'name' => 'WP super cache', + 'status' => 'green', + ), + 'w3-total-cache/w3-total-cache.php' => array( + 'name' => 'W3 total cache', + 'status' => 'green', + ), + 'wp-fastest-cache/wpFastestCache.php' => array( + 'name' => 'WP Fastest Cache (We haven\'t tested this plugin.)', + 'status' => 'yellow', + ), + 'wp-rocket/wp-rocket.php' => array( + 'name' => 'WP Rocket (We haven\'t tested this plugin.)', + 'status' => 'yellow', + ), + ); + + $active_plugins = get_plugins(); + + $caching_plugin = esc_html__( 'No caching plugin detected', 'quadmenu' ); + + $caching_plugin_status = 'yellow'; + + foreach ( array_keys( $active_plugins ) as $active_plugin ) { + + if ( isset( $caching_plugin_list[ $active_plugin ] ) ) { + + $caching_plugin = $caching_plugin_list[ $active_plugin ]['name']; + $caching_plugin_status = $caching_plugin_list[ $active_plugin ]['status']; + break; + } + } + $this->add( + 'WordPress and plugins', + array( + 'check_name' => 'Caching plugin', + 'tooltip' => '', + 'value' => $caching_plugin, + 'status' => $caching_plugin_status, + ) + ); + } + + function wp_memory_notation_to_number( $size ) { + $l = substr( $size, -1 ); + $ret = substr( $size, 0, -1 ); + switch ( strtoupper( $l ) ) { + case 'P': + $ret *= 1024; + case 'T': + $ret *= 1024; + case 'G': + $ret *= 1024; + case 'M': + $ret *= 1024; + case 'K': + $ret *= 1024; + } + return $ret; + } + + public static function instance() { + if ( ! isset( self::$instance ) ) { + self::$instance = new self(); + } + return self::$instance; + } + +} diff --git a/lib/panel/class-welcome.php b/lib/panel/class-welcome.php new file mode 100644 index 0000000..326aa63 --- /dev/null +++ b/lib/panel/class-welcome.php @@ -0,0 +1,549 @@ +system(); + + foreach ( self::$status as $section_name => $section_statuses ) { + ?> + + + + + + + + + + + + + + + + +
+ '; + break; + case 'yellow': + echo '
'; + break; + case 'red': + echo '
'; + break; + case 'info': + echo '
i
'; + break; + } + ?> +
+ array( + 'href' => array(), + 'title' => array(), + ), + 'br' => array(), + 'em' => array(), + 'strong' => array(), + 'span' => array(), + ) + ); + ?> +
+ add( + 'Plugin config', + array( + 'check_name' => 'Plugin name', + 'tooltip' => '', + 'value' => QUADMENU_PLUGIN_NAME, + 'status' => 'info', + ) + ); + + // Plugin version + $this->add( + 'Plugin config', + array( + 'check_name' => 'Plugin version', + 'tooltip' => '', + 'value' => QUADMENU_PLUGIN_VERSION, + 'status' => 'info', + ) + ); + + // Redux version + if ( class_exists( 'ReduxFramework' ) ) { + if ( version_compare( ReduxFramework::$_version, '3.6.5' ) < 0 ) { + $this->add( + 'Plugin config', + array( + 'check_name' => 'Redux version', + 'tooltip' => '', + 'value' => sprintf( '%1$s - %2$s %4$s', ReduxFramework::$_version, esc_html__( 'Your Redux version is outdated: ', 'quadmenu' ), 'https://es.wordpress.org/plugins/redux-framework/', esc_html__( 'Please install it as a plugin', 'quadmenu' ) ), + 'status' => 'red', + ) + ); + } else { + $this->add( + 'Plugin config', + array( + 'check_name' => 'Redux version', + 'tooltip' => '', + 'value' => ReduxFramework::$_version, + 'status' => 'green', + ) + ); + } + } else { + $this->add( + 'Plugin config', + array( + 'check_name' => 'Redux version', + 'tooltip' => '', + 'value' => esc_html__( 'Activate ReduxFramework', 'quadmenu' ), + 'status' => 'red', + ) + ); + } + + // Menu Locations + if ( is_array( $quadmenu_active_locations ) ) { + $this->add( + 'Plugin config', + array( + 'check_name' => 'Active Locations', + 'tooltip' => '', + 'value' => sprintf( esc_html__( 'You have %s active menu locations', 'quadmenu' ), count( $quadmenu_active_locations ) ), + 'status' => count( $quadmenu_active_locations ) ? 'green' : 'info', + ) + ); + } + + // Server status + // ----------------------------------------------------------------- + // server info + $this->add( + 'php.ini configuration', + array( + 'check_name' => 'Server software', + 'tooltip' => '', + 'value' => esc_html( $_SERVER['SERVER_SOFTWARE'] ), + 'status' => 'info', + ) + ); + + // php version + $this->add( + 'php.ini configuration', + array( + 'check_name' => 'PHP Version', + 'tooltip' => '', + 'value' => phpversion(), + 'status' => 'info', + ) + ); + + // post_max_size + $this->add( + 'php.ini configuration', + array( + 'check_name' => 'post_max_size', + 'tooltip' => '', + 'value' => sprintf( '%1$s - %2$s', ini_get( 'post_max_size' ), esc_html__( 'You cannot upload images, themes and plugins that have a size bigger than this value', 'quadmenu' ) ), + 'status' => 'info', + ) + ); + + // php time limit + $max_execution_time = ini_get( 'max_execution_time' ); + if ( $max_execution_time == 0 or $max_execution_time >= 300 ) { + $this->add( + 'php.ini configuration', + array( + 'check_name' => 'max_execution_time', + 'tooltip' => '', + 'value' => esc_html( $max_execution_time ), + 'status' => 'green', + ) + ); + } else { + $this->add( + 'php.ini configuration', + array( + 'check_name' => 'max_execution_time', + 'tooltip' => '', + 'value' => sprintf( '%1$s - %2$s %4$s', $max_execution_time, esc_html__( 'To import the demo content 300 seconds of max execution time is required. See: ', 'quadmenu' ), 'http://codex.wordpress.org/Common_WordPress_Errors#Maximum_execution_time_exceeded', esc_html__( 'Increasing max execution to PHP', 'quadmenu' ) ), + 'status' => 'red', + ) + ); + } + + // php max input vars + $max_input_vars = ini_get( 'max_input_vars' ); + if ( $max_input_vars == 0 or $max_input_vars >= 2000 ) { + $this->add( + 'php.ini configuration', + array( + 'check_name' => 'max_input_vars', + 'tooltip' => '', + 'value' => esc_html( $max_input_vars ), + 'status' => 'green', + ) + ); + } else { + $this->add( + 'php.ini configuration', + array( + 'check_name' => 'max_input_vars', + 'tooltip' => '', + 'value' => esc_html( $max_input_vars ), + 'status' => 'yellow', + ) + ); + } + + // suhosin + if ( extension_loaded( 'suhosin' ) !== true ) { + $this->add( + 'php.ini configuration', + array( + 'check_name' => 'SUHOSIN Installed', + 'tooltip' => '', + 'value' => 'False', + 'status' => 'green', + ) + ); + } else { + $this->add( + 'php.ini configuration', + array( + 'check_name' => 'SUHOSIN Installed', + 'tooltip' => '', + 'value' => sprintf( '%1$s - %2$s', esc_html__( 'SUHOSIN is installed', 'quadmenu' ), esc_html__( 'It may cause problems with saving the plugin panel if it\'s not properly configured', 'quadmenu' ) ), + 'status' => 'yellow', + ) + ); + } + + $response_code = wp_remote_retrieve_response_code( + wp_remote_get( + QUADMENU_PLUGIN_URL . 'assets/frontend/less/quadmenu-locations.less', + array( + 'timeout' => 20, + 'user-agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:20.0) Gecko/20100101 Firefox/20.0', + ) + ) + ); + // mime types + if ( $response_code == 200 ) { + $this->add( + 'Compiler', + array( + 'check_name' => esc_html__( 'LESS files allowed', 'quadmenu' ), + 'tooltip' => '', + 'value' => $response_code, + 'status' => 'green', + ) + ); + } else { + $this->add( + 'Compiler', + array( + 'check_name' => esc_html__( 'Can\'t compile stylesheets', 'quadmenu' ), + 'tooltip' => '', + 'value' => sprintf( '%1$s error - %2$s', $response_code, esc_html__( 'Can\'t download LESS mime types', 'quadmenu' ) ), + 'status' => 'red', + ) + ); + } + + // mime types + if ( wp_is_writable( QUADMENU_UPLOAD_DIR ) ) { + $this->add( + 'Compiler', + array( + 'check_name' => esc_html__( 'Folder is writable', 'quadmenu' ), + 'tooltip' => '', + 'value' => QUADMENU_UPLOAD_DIR, + 'status' => 'green', + ) + ); + } else { + $this->add( + 'Compiler', + array( + 'check_name' => esc_html__( 'Can\'t write uploads folder', 'quadmenu' ), + 'tooltip' => '', + 'value' => QUADMENU_UPLOAD_DIR, + 'status' => 'red', + ) + ); + } + + // WordPress + // ----------------------------------------------------------------- + // home url + $this->add( + 'WordPress and plugins', + array( + 'check_name' => 'WP Home URL', + 'tooltip' => 'test tooltip', + 'value' => home_url(), + 'status' => 'info', + ) + ); + + // site url + $this->add( + 'WordPress and plugins', + array( + 'check_name' => 'WP Site URL', + 'tooltip' => 'test tooltip', + 'value' => site_url(), + 'status' => 'info', + ) + ); + + // home_url == site_url + if ( home_url() != site_url() ) { + $this->add( + 'WordPress and plugins', + array( + 'check_name' => 'Home URL - Site URL', + 'tooltip' => 'Home URL not equal to Site URL, this may indicate a problem with your WordPress configuration.', + 'value' => sprintf( '%1$s - %2$s', esc_html__( 'Home URL != Site URL', 'quadmenu' ), esc_html__( 'Home URL not equal to Site URL, this may indicate a problem with your WordPress configuration.', 'quadmenu' ) ), + 'status' => 'red', + ) + ); + } + + // version + $this->add( + 'WordPress and plugins', + array( + 'check_name' => 'WP version', + 'tooltip' => '', + 'value' => get_bloginfo( 'version' ), + 'status' => 'info', + ) + ); + + // is_multisite + $this->add( + 'WordPress and plugins', + array( + 'check_name' => 'WP multisite enabled', + 'tooltip' => '', + 'value' => is_multisite() ? 'Yes' : 'No', + 'status' => 'info', + ) + ); + + // language + $this->add( + 'WordPress and plugins', + array( + 'check_name' => 'WP Language', + 'tooltip' => '', + 'value' => get_locale(), + 'status' => 'info', + ) + ); + + // theme locations + if ( ! is_array( $_wp_registered_nav_menus ) || ! count( $_wp_registered_nav_menus ) ) { + $this->add( + 'WordPress and plugins', + array( + 'check_name' => 'WP Menu Locations', + 'tooltip' => '', + 'value' => esc_html__( 'Your theme doesn\'t natively support menus' ), + 'status' => 'red', + ) + ); + } else { + $this->add( + 'WordPress and plugins', + array( + 'check_name' => 'WP Menu Locations', + 'tooltip' => '', + 'value' => count( $_wp_registered_nav_menus ), + 'status' => 'green', + ) + ); + } + + // memory limit + $memory_limit = $this->wp_memory_notation_to_number( WP_MEMORY_LIMIT ); + if ( $memory_limit < 67108864 ) { + $this->add( + 'WordPress and plugins', + array( + 'check_name' => 'WP Memory Limit', + 'tooltip' => '', + 'value' => sprintf( '%1$s - %2$s %4$s', size_format( $memory_limit ) . '/request', esc_html__( 'We recommend setting memory to at least 64MB. The Plugin is well tested with a 40MB/request limit, but if you are using multiple plugins that may not be enough. See: ', 'quadmenu' ), 'http://codex.wordpress.org/Editing_wp-config.php#Increasing_memory_allocated_to_PHP', esc_html__( 'Increasing memory allocated to PHP', 'quadmenu' ) ), + 'status' => 'red', + ) + ); + } else { + $this->add( + 'WordPress and plugins', + array( + 'check_name' => 'WP Memory Limit', + 'tooltip' => '', + 'value' => size_format( $memory_limit ) . '/request', + 'status' => 'green', + ) + ); + } + + // wp debug + if ( defined( 'WP_DEBUG' ) and WP_DEBUG === true ) { + $this->add( + 'WordPress and plugins', + array( + 'check_name' => 'WP_DEBUG', + 'tooltip' => '', + 'value' => esc_html__( 'WP_DEBUG is enabled', 'quadmenu' ), + 'status' => 'yellow', + ) + ); + } else { + $this->add( + 'WordPress and plugins', + array( + 'check_name' => 'WP_DEBUG', + 'tooltip' => '', + 'value' => 'False', + 'status' => 'green', + ) + ); + } + + // caching + $caching_plugin_list = array( + 'wp-super-cache/wp-cache.php' => array( + 'name' => 'WP super cache', + 'status' => 'green', + ), + 'w3-total-cache/w3-total-cache.php' => array( + 'name' => 'W3 total cache', + 'status' => 'green', + ), + 'wp-fastest-cache/wpFastestCache.php' => array( + 'name' => 'WP Fastest Cache (We haven\'t tested this plugin.)', + 'status' => 'yellow', + ), + 'wp-rocket/wp-rocket.php' => array( + 'name' => 'WP Rocket (We haven\'t tested this plugin.)', + 'status' => 'yellow', + ), + ); + + $active_plugins = get_plugins(); + + $caching_plugin = esc_html__( 'No caching plugin detected', 'quadmenu' ); + + $caching_plugin_status = 'yellow'; + + foreach ( array_keys( $active_plugins ) as $active_plugin ) { + + if ( isset( $caching_plugin_list[ $active_plugin ] ) ) { + + $caching_plugin = $caching_plugin_list[ $active_plugin ]['name']; + $caching_plugin_status = $caching_plugin_list[ $active_plugin ]['status']; + break; + } + } + $this->add( + 'WordPress and plugins', + array( + 'check_name' => 'Caching plugin', + 'tooltip' => '', + 'value' => $caching_plugin, + 'status' => $caching_plugin_status, + ) + ); + } + + function wp_memory_notation_to_number( $size ) { + $l = substr( $size, -1 ); + $ret = substr( $size, 0, -1 ); + switch ( strtoupper( $l ) ) { + case 'P': + $ret *= 1024; + case 'T': + $ret *= 1024; + case 'G': + $ret *= 1024; + case 'M': + $ret *= 1024; + case 'K': + $ret *= 1024; + } + return $ret; + } + + public static function instance() { + if ( ! isset( self::$instance ) ) { + self::$instance = new self(); + } + return self::$instance; + } +} + diff --git a/lib/panel/header.php b/lib/panel/header.php new file mode 100644 index 0000000..da7394e --- /dev/null +++ b/lib/panel/header.php @@ -0,0 +1,37 @@ + +
+ +
+ + +

+ +

+ +

+ %s', QUADMENU_PURCHASE_URL, esc_html__( 'Purchase', 'quadmenu' ) ); ?> | + %s', QUADMENU_DEMO_URL, esc_html__( 'Demo', 'quadmenu' ) ); ?> | + %s', QUADMENU_DOCUMENTATION_URL, esc_html__( 'Documentation', 'quadmenu' ) ); ?> +

+ +
%s
', + 'https://quadlayers.com/?utm_source=quadmenu_admin', + plugins_url( '/assets/backend/img/quadlayers.jpg', QUADMENU_PLUGIN_FILE ), + esc_html__( 'QuadLayers', 'quadmenu' ) + ); + ?> + + + +
+ +
+ +
+
+
+

%s', __( 'Premium', 'quadmenu' ) ); ?>

+
+ +
+
+
+
+

+

+ +

+

+ +

+
+
+
+ +
+
+
+
+
+ +
+
+
+

+

+ create a tab mega menu where you can include widgets or any kind of content available in your menu dashboard.', 'quadmenu' ), 'https://quadmenu.com/documentation/content/tabs/?utm_source=quadmenu_admin' ); ?> +

+

+ +

+
+
+
+
+
+
+
+

+

+ carousel mega menu where you can include widgets or any kind of content available in your menu dashboard.', 'quadmenu' ), 'https://quadmenu.com/documentation/content/carousel/?utm_source=quadmenu_admin' ); ?> +

+

+ categories and archives items and lets you create a carousel of the latest\'s post, products, pages and any post type available in your site.', 'quadmenu' ), 'https://quadmenu.com/documentation/content/archives/?utm_source=quadmenu_admin' ); ?> +

+
+
+
+ +
+
+
+
+
+ +
+
+
+

+

+ login and register form that is displayed in a drop-down. Recently we\'ve improved this feature to include a drop-down menu for logged in users where you can display any link and a quick access to the user account.', 'quadmenu' ), 'https://quadmenu.com/documentation/content/login/?utm_source=quadmenu_admin' ); ?> +

+
+
+
+
+
+
+
+

+

+ +

+
+
+
+ +
+
+
+
+

+

+ +

+ +
+
+

+

+ +

+ +
+
+

+

+ +

+ +
+ diff --git a/lib/panel/pages/suggestions.php b/lib/panel/pages/suggestions.php new file mode 100644 index 0000000..9ed9232 --- /dev/null +++ b/lib/panel/pages/suggestions.php @@ -0,0 +1,22 @@ + + +
+
+ display(); ?> +
+
diff --git a/lib/panel/pages/system.php b/lib/panel/pages/system.php new file mode 100644 index 0000000..4ad73d2 --- /dev/null +++ b/lib/panel/pages/system.php @@ -0,0 +1,6 @@ +
+ tables(); ?> +
diff --git a/lib/panel/pages/welcome.php b/lib/panel/pages/welcome.php new file mode 100644 index 0000000..8411d6c --- /dev/null +++ b/lib/panel/pages/welcome.php @@ -0,0 +1,51 @@ + +
+
+
+
+

v

+
+ +
+
+
+
+

+

+ +

+

+ Options panel and activate the plugin in your theme locations.', 'quadmenu' ), Plugin::taburl( 0 ) ); ?> +

+
+
+
+ +
+
+
+
+

+

+ +

+ +
+
+

+

+ +

+ +
+
+

+

+ QuadMenu PRO users. To get support first you need to create an account and open a ticket in your account.', 'quadmenu' ), QUADMENU_DEMO ); ?> +

+ + +
+
diff --git a/quadmenu.php b/quadmenu.php new file mode 100644 index 0000000..dd8a8e8 --- /dev/null +++ b/quadmenu.php @@ -0,0 +1,76 @@ + * Automatic and manual menu integration +> * Build extending the standard WordPress Menu system +> * Supports multiple menu locations +> * Drag and Drop admin builder +> * Display WordPress Widgets in your menu +> * Support for child themes +> * Unlimited Menu Themes +> * Vertical Mega Menu +> * Horizontal Mega Menu +> * Offcanvas Mega Menu +> * Sticky Menu +> * Click or use the hoverIntent plugin to open links +> * Align links options +> * Float dropdown menus options +> * Customizable breakpoint for menu collapse +> * Show or hide items depending on the screen size +> * Support for Font Awesome icons +> * Google Fonts +> * Dropdown animations +> * Support for Visual Composer +> * Mega Menu +> * Icons Menu +> * Search Menu +> * Cart Menu + +####Pro Features: + +> * Tabs Menu +> * Login Menu +> * Register Menu +> * Social Menu +> * Carousel Menu + +== Frequently Asked Questions == + += Getting Started = +[https://quadmenu.com/documentation/quick-start/](https://quadmenu.com/documentation/quick-start/) + += Menu Integration = +[https://quadmenu.com/documentation/integration/](https://quadmenu.com/documentation/integration/) + += Menu Content = +[https://quadmenu.com/documentation/content/](https://quadmenu.com/documentation/content/) + += Menu Customization = +[https://quadmenu.com/documentation/configuration/](https://quadmenu.com/documentation/configuration/) + +== Installation == + +1. Go to the Plugins Menu in WordPress +1. Search for "QuadMenu" +1. Click "Install" + +[https://quadmenu.com/documentation/installation/](https://quadmenu.com/documentation/installation/) + +== Changelog == + +3.1.5 +* WordPress compatibility + +3.1.3 +* WordPress compatibility + +3.1.2 +* Update packages + +3.1.1 +* Fixed. Translation strings + +3.1.0 +* Fixed. PHP errors + +3.0.9 +* Fixed. PHP errors + +3.0.8 +* Fixed. Redux Framework error + +3.0.7 +* Fixed. Menu item title filter + +3.0.6 +* WordPress compatibility + +3.0.5 +* Fixed. WPML and PLL home_url + +3.0.4 +* Fixed. Beaver builder integration + +3.0.3 +* Fixed. Missing translations strings + +3.0.2 +* Fixed. PHP erros + +3.0.1 +* Fixed. PHP erros + +3.0.0 +* Refactor + +2.3.7 +* Fixed. Security bug in redux library + +2.3.6 +* Fixed. WordPress compatibility + +2.3.5 +* Fixed. developer constant + +2.3.4 +* Fixed. PHP errors + +2.3.3 +* Fixed. WordPress 6.1 compatibility + +2.3.2 +* New. Fontawesome 6 + +2.3.1 +* Fixed. PHP 8 errors + +2.3.0 +* Fixed. Customize save + +2.2.9 +* Fixed. Customize save + +2.2.8 +* Fixed. PHP 8 errors + +2.2.7 +* Fixed. WordPress menu item target save + +2.2.6 +* Fixed. PHP errors + +2.2.5 +* Fixed. WordPress 6.0 compatibility +* New. QuadLayers dashboard widget + +2.2.3 +* Fixed. WordPress 5.9 compatibility + +2.2.2 +* Fixed. WordPress 5.9 compatibility + +2.2.1 +* Fixed. WordPress 5.9 compatibility + +2.2.1 +* Fixed. WordPress 5.8 compatibility + +2.2.0 +* Fixed. WordPress 5.8 compatibility + +2.1.9 +* Fixed. WordPress 5.8 compatibility + +2.1.8 +* Fixed. QuadLayers widget cache + +2.1.7 +* Fixed. WordPress 5.8 compatibility + +2.1.6 +* Fixed. WordPress 5.8 compatibility + +2.1.5 +* New. Telegram add to suggestions tab + +2.1.4 +* New. QuadLayers dashboard widget + +2.1.3 +* Fixed. WordPress 5.8 compatibility + +2.1.2 +* Fixed. small css issues + +2.1.1 +* Fixed. small css issues + +2.1.0 +* Fixed. WordPress 5.7 compatibility + +2.0.9 +* Fixed. WordPress 5.7 compatibility + +2.0.8 +* Fixed. login issues + +2.0.7 +* Fixed. security issues + +2.0.6 +* Fixed. small css issues + +2.0.5 +* Fixed. small css issues + +2.0.4 +* Fixed. WordPress 5.5.0 compatibility + +2.0.3 +* Fixed. redux framework update + +2.0.2 +* Fixed. small css issues + +2.0.1 +* Fixed. URL attribute for tab + +2.0.0 +* Fixed. small css issues + +1.9.9 +* Fixed. dev mode removed + +1.9.8 +* Fixed. url and target removed from columns, tab, social, cart and login items + +1.9.7 +* Fixed. divi module integration + +1.9.6 +* Fixed. active class for buttons +* Fixed. mobile menu off-canvas style glitch on toggle +* Fixed. removed URL field from columns +* Fixed. removed external filters on quadmenu hook + +1.9.5 +* Fixed. woocommerce cart item remove overlay background + +1.9.4 +* Fixed. Call to a member function get_cart_contents_count() on null + +1.9.3 +* Fixed. small css issues + +1.9.2 +* Fixed. small css issues + +1.9.1 +* Fixed. Uncaught Error: Class not found + +[https://quadmenu.com/documentation/changelog/](https://quadmenu.com/documentation/changelog/) + += 1.8.1 = + +* Fixed. dropdown menu max left position +* Fixed. menu login and register + + += 1.8.0 = + +* Fixed. elementor library widget +* Fixed. menu login + += 1.7.9 = + +* Fixed. small css issues +* Fixed. current menu open nested level + += 1.7.8 = + +* Fixed. undefined woocommerce cart item menu +* Fixed. avada fusion builder icon issues + += 1.7.7 = + +* Fixed. small css issues + += 1.7.6 = + +* Fixed. small css issues + += 1.7.5 = + +* Fixed. chrome overflow issue on mobile menu +* Fixed. offcanvas alignment issue in mobile menu +* Fixed. GET to POST in ajax requests to avoid server issues +* Fixed. woocommerce cart issues with wp rocket cache + += 1.7.4 = + +* Fixed. divi quadmenu module +* Fixed. widget save ajax issue +* Fixed. custom dropdown width padding issue +* Fixed. divi mobile menu two columns + += 1.7.3 = + +* Fixed. fixed lazy load height + += 1.7.2 = + +* Fixed. admin columns improved +* Fixed. admin width default +* Fixed. admin width and colums style +* Fixed. hover cart icon color +* Fixed. fixed lazy load images ratio +* Fixed. fixed woocommerce cart menu +* Fixed. media player size issue + += 1.7.1 = + +* Fixed. persistent cache issues +* Fixed. menu class replaced with quadmenu + += 1.7.0 = + +* Fixed. fixed large subtitle +* Fixed. elementor logo remove +* Fixed. beaver logo remove +* Fixed. removed quadmenu widget from metaboxes +* Improvement. admin columns interface +* Improvement. admin preset columns + += 1.6.9 = + +* Fixed. dev alerts + += 1.6.8 = + +* Fixed. login form issues + += 1.6.7 = + +* Fixed. navbar brand width +* Fixed. description in top level items on mobile menu +* Fixed. search custom post types + += 1.6.6 = + +* Fixed. remove unnecessary fields +* New. option username in login item +* New. quadmenu dev location for testing + += 1.6.5 = + +* Fixed. undefined url +* Fixed. icon padding +* Fixed. icon dropdown +* Fixed. logo in elementor module +* Fixed. logo in beaver module +* Fixed. customizer options removed transient time +* New. button element in quadmenu pro + += 1.6.4 = + +* New. font awesome 5 + += 1.6.3 = + +* Fixed. quadmenu pro override + += 1.6.2 = + +* Fixed. offcanvas menu logo url + += 1.6.1 = + +* New. option logo link +* Fixed. Unexpected token u in JSON at position 0 + += 1.6.0 = + +* Fixed. elementor undefined variable in frontend +* Fixed. divi quadmenu module height +* Improvement. translations files updated + += 1.5.9 = + +* New. elementor module +* New. beaver builder module + += 1.5.8 = + +* Fixed. login and cart text margin +* Fixed. load menu height issues +* Fixed. login alerts css +* Fixed. widget loading on ajax changes +* Fixed. slidebar animation issues +* Improvement. rebuild quadmenu on ajax events + += 1.5.7 = + +* Fixed. tabs height +* Fixed. divi mobile padding +* Fixed. widget save off save settings event +* Improvement. New order by featured products in woocommerce archives +* Improvement. New filter for link attributes + += 1.5.6 = + +* Fixed. fixed issue with parents in admin + += 1.5.5 = + +* Beta. lazy load images +* Fixed. normalize owl carousel +* Fixed. quadmenu widget php7 deprecated constructor +* Fixed. quadmenu widget instance defaults +* Fixed. mobile padding dropdown cart and login + += 1.5.4 = + +* Fixed. update license messages + += 1.5.3 = + +* Fixed. login css issues +* Fixed. cart css issues +* Fixed. fixed license validation issues +* New. quadmenu widget + += 1.5.2 = + +* Fixed. Astra google fonts issue +* Fixed. Slidebar current item position +* Fixed. divi fixed menu link colors +* Fixed. logout link when dropdown is empty +* Fixed. login validations for user and password +* Fixed. login mask background + += 1.5.1 = + +* Fixed. customizer page change +* Fixed. sticky menu animation +* Fixed. post type text position +* Fixed. default menu settings +* Fixed. menu item badge position +* Fixed. menu item padding hidden carets +* Improvement. customizer animations +* Improvement. slidebar animation +* Improvement. force customizer selective refreshed + += 1.5.0 = + +* Fixed. search form divider css +* Fixed. logged in hover background css +* Fixed. background hover css without link +* Fixed. slidebar position js +* Fixed. fixed [] short array PHP 5.4 +* New. animation options +* Improvement. offcanvas animation on horizontal menu +* Improvement. cache setup items +* Improvement. cache children nav menu items +* Improvement. speed general admin settings + += 1.4.9 = + +* Fixed. post type menu item class + += 1.4.8 = + +* Fixed. quadmenu divi module menu height +* Fixed. divi fullwidth module quadmenu +* Improvement. CSS field added to customizer +* Improvement. polylang support +* Improvement. responsive template system + += 1.4.7 = + +* Fixed. Undefined quadmenu_template +* New. search placeholder +* New. search post types + += 1.4.6 = + +* New. quadmenu module for divi + += 1.4.5 = + +* New. option for mobile menu links +* Improvement. css improvements +* Improvement. overflow hidden offcanvas layout + += 1.4.4 = + +* Fixed. undefined theme name +* Fixed. Divi menu height in full menu module +* Fixed. Polylang integration + + += 1.4.3 = + +* Fixed. post type hidden badges +* Fixed. post type archives loop +* Fixed. instance missing on license update + += 1.4.2 = + +* Fixed. post type archive and categories in first level menu +* Fixed. compatibility issues with microsoft edge +* Fixed. compatibility issues with total theme +* Fixed. tab menu style issues with extra +* Fixed. license undefined object +* Improvement. license manager system +* Improvement. woocommerce cart improvements + += 1.4.1 = + +* Fixed. display block in dropdown menu link +* Fixed. hide account links from login item when user is logged out + += 1.4.0 = + +* Fixed. menu locations +* Fixed. cart and login menu hoverintent +* Fixed. remove woocommerce from cart event +* Fixed. fixed widgets removed issue +* New. option account menu for logoin item +* New. option cart item bottom text +* New. option mobile layout padding +* Improvement. new sticky navbar +* Improvement. new logoin style +* Improvement. new cart style + += 1.3.9 = + +* Fixed. issue with hoverintent + += 1.3.8 = + +* Improvement. PHP 7.2.x compatibility +* Improvement. new archive types metabox + += 1.3.7 = + +* Fixed. pot files for languages +* Fixed. depth level on some themes +* New. new option align center menu items + += 1.3.6 = + +* Fixed. windows update long folders +* Fixed. widgets in sidebar on first load + += 1.3.5 = + +* Fixed. menu post type icons badge not showing +* Fixed. menu dashicons alignment +* Improvement. redux framework updated to 3.6.9 + += 1.3.4 = + +* Fixed. Porto compatibility issues +* Improvement. css menu icons +* Improvement. css to IE 11 compatibility +* Improvement. owl carousel updated + += 1.3.3 = + +* New. embed layout to fit everywhere +* Fixed. divi menu search width in center header +* Fixed. ajax 400 bad request +* Fixed. widget checkbox unchecked not saving +* Fixed. removed save action on widgets +* Improvement. normalize display block + += 1.3.2 = + +* Fixed. removed title menu column when language is Spanish +* Fixed. removed off classes from admin and frontend +* Fixed. removed menu title attr slashes +* Fixed. menu title not saving when description is not defined +* Fixed. admin CSS large screen columns added +* Fixed. admin columns add and remove + += 1.3.1 = + +* Improvement. menu items badge removed on sticky menu + += 1.3.0 = + +* New. woocommerce mega menu products in pro version +* New. woocommerce mega menu categories in pro version + += 1.2.6 = + +* Fixed. added to cart bubble trigger event +* Fixed. false and empty default attributes + += 1.2.5 = + +* Fixed. undefined parent obj type +* Fixed. change menu item title removes entire item +* Improvement. missing target option in menu items +* Improvement. clean item content tags + += 1.2.4 = + +* Fixed. default attributes in top level menu items +* Fixed. exception for JavaScript non human events +* Fixed. removed unused dropdown menu and float inside columns +* Fixed. save checkbox unchecked in admin panel +* Fixed. removed quadmenu sections in customize after refresh + += 1.2.3 = + +* Fixed. removed customize sections when is not url param +* Fixed. perfectscrollbar in carousel items +* Improvement. deprecated functions +* Improvement. javascript load +* Improvement. custom menuitems function moved to object + += 1.2.2 = + +* Fixed. undefined @themes in less files + += 1.2.1 = + +* Improvement. filter for remove children nav menu items in admin + += 1.2.0 = + +* New. customizer integration in pro +* Improvement. option and customizer icons + += 1.1.9 = + +* New. wordpress mobile menu shadow option +* Fixed. featured image option hidden in post inside menu columns +* Fixed. stylesheets not loading on https +* Fixed. tab menu not close on first click +* Fixed. menu caret background on second level items +* Fixed. wordpress tabs menu title change on admin +* Fixed. default menu items values in frontend +* Fixed. woocommerce cart menu button background +* Fixed. navbar caret icon line height +* Fixed. hidden badges on post type items +* Improvement. added login form pscrollbar and dropdown max height events + += 1.1.8 = + +* New. custom password and register account links in login menu +* Fixed. undefined variable _wp_registered_nav_menus in system +* Fixed. stretch dropdown menu background +* Fixed. wordpress mobile menu height +* Fixed. admin widget text not open +* Fixed. admin widget off saving event on settings change +* Fixed. force menu width +* Improvement. manual integration new option to activate menu editor +* Improvement. manual integration menu location & theme update on php code +* Improvement. check system less files download + += 1.1.7 = + +* New. option dropdown menu background opacity +* Fixed. placeholder colors in responsive menu +* Fixed. placeholder colors in dropdown menu +* Fixed. duplicated events in admin menu ajax +* Improvement. change title on wordpress mega menu admin + += 1.1.6 = + +* Fixed. undefined QuadMenu_Customizer in divi customizer +* Fixed. divi & quadmenu customizer switch +* Fixed. hidden width settings on menu columns + += 1.1.5 = + +* Fixed. scape attr in link +* Fixed. mega menu locations created by polylang +* Fixed. invalid argument supplied for foreach() class.redux_helpers.php +* Fixed. removed tooltips when title attr is empty +* Improvement. wordpress mega menu plugin action link for settings + += 1.1.4 = + +* Fixed. megamenu columns disappear + += 1.1.3 = + +* Fixed. allowed memory size theme locations +* Fixed. empty sections in admin panel +* Fixed. file not found filetime locations & widget +* Fixed. missing styles on theme change and network new site +* Fixed. missing registered nav menus on init +* Fixed. customizer removed columns widgets and child items +* Fixed. customizer add item in preview +* Removed. quadmenu-admin-core.js +* Improvement. customizer stuff for divi mega menu +* Improvement. customizer native support for divi mega menu + += 1.1.2 = + +* New. option for dropdown menu tabs background +* Fixed. force menu width to screen size +* Fixed. dropdown background missing on dropdown menu max height +* Improvement. new rgba color picker +* Improvement. new offcanvas menu and vertical menu + += 1.1.1 = + +* Fixed. undefined $_wp_registered_nav_menus +* Fixed. closed menu items on mobile menu +* Fixed. offcanvas not open +* Improvement. clean shortcodes from content in post types +* Improvement. alert for themes that doesn't natively support menus + += 1.1.0 = + +* Fixed. undefined required field +* Fixed. click on social menu icons hoverintent +* Fixed. menu font validation +* Fixed. normalize transform and opacity unset +* Fixed. undefined index in required fields on developer options +* Fixed. expired nonce alert +* Fixed. hardcoded cart title +* Fixed. hide unnecessary fields in admin according to item depth +* Fixed. badges background in dropdown menus +* New. option letter spacing +* New. option dropdown menu stretch (custom,boxed,stretch dropdown menu and stretch content) +* New. option background origin to fit strech dropdown menu +* New. option border top left right bottom for dropdown menu +* New. option border radius top left right bottom for dropdown menu +* New. option max height on dropdown menu +* Improvement. drop areas in admin panel highlighted +* Improvement. number in new tabs and panels menu in backend +* Improvement. version and timestamp to prevent css cache on change settings +* Improvement. included error report on development mode + += 1.0.9 = + +* Fix unsaved content in columns + += 1.0.8 = + +* Fixed. name of options in adminbar menu +* Fixed. login form dropdown menu empty on logged in +* Fixed. removed scrollbar on offcanvas horizontal menu +* Fixed. menu social icons open / close +* Fixed. fatal error on edit_nav_menu_walker +* Removed. quadmenu-core.js file +* Improvement. Fallback function included + + += 1.0.7 = + +* Fixed. hooks order on init +* Fixed. margin on dropdown submenus +* Fixed. menu icons width +* Fixed. defaults on first load + += 1.0.6 = + +* Fixed admin menu position +* Fixed admin menu social icons +* Fixed admin default filter for specific menu location and theme +* New. option to show/hide dropdown menu shadow + += 1.0.5 = + +* Fixed. add to menu column button +* Fixed. unchecked menu items in navmenu metaboxes +* Fixed. sticky menu for more than one instance +* Fixed. layout behaviour: menu sticky disabled on scroll top +* Fixed. mobile mega menu behaviour: closedropdownall disabled +* Fixed. mobile mega menu behaviour: disable close sliblings on open dropdown +* Fixed. visual composer shortcode +* Fixed. invalid menu items posttype + += 1.0.4 = + +* Fixed. cache wp rocket +* Fixed. add to menu column button +* Fixed. system report cache plugnis + += 1.0.3 = + +* New. option force full menu width +* New. carousel megamenu in premium version +* Fixed. issues with php7 +* Fixed. issues in xs menu columns +* Fixed. save menu widget issues +* Fixed. undeleted menu items + += 1.0.2 = + +* New. added backward compatibility with lmm mega menu columns +* New. menu theme location option to remove conflicts +* Fixed. sharp menu item default option +* Fixed. Undefined url + += 1.0.1 = + +* Fixed. Removed menu caret from item icon +* Fixed. dropdown mega menu max height + += 1.0 = + +* Wordpress Mega Menu initial menu version + +== Upgrade Notice == diff --git a/redux/.DS_Store b/redux/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..3d3b82f86d7a0f2f69fa7d76a321e954a21183bb GIT binary patch literal 6148 zcmeHK%}N6?5T4YkyNJ+(g5CmNi*{8i;$^LR@al>lRBG2Py0~sif2>dnd)IgI?2Gt1 zI+LWbQoR-{Gcfs*$;@u@C1er+5Vc<90h9p1K_x7>So|Q=PdX+AYbhcM{f(#NMBRjm z3dele@HZKtwVQ=DG$Dc>s+bSss2QJ5*t&docH zv*26>cd8$B8{J-~)@WZ)>r|;E9Mv1)S={W`OG^hT?Ka}H+13GZ)I^ud^Ei!EzovR= z)X}kl>2O@vt(R5@gRLE}EIrSw4$E?|yICpA?dtY$=sL@58+#}9`{W^2&w9`xaC2%| zv^atntmLNj7_`$wrMGCM2p3L9w7>xT`slzyKLHTw8mR^AbTgtDY0EFa!UJ z0Z}{*4r@3in_I^wN4Zv_UZawbUuN(t1S>ifqc5f66;v%~msCOYEoKJMg2ER8O#>Iq Iz(g7N1RNk_hyVZp literal 0 HcmV?d00001 diff --git a/redux/ReduxCore/assets/css/color-picker/color-picker.css b/redux/ReduxCore/assets/css/color-picker/color-picker.css new file mode 100644 index 0000000..849b278 --- /dev/null +++ b/redux/ReduxCore/assets/css/color-picker/color-picker.css @@ -0,0 +1 @@ +.redux-main input.redux-color{float:left;width:70px;margin-left:5px}.redux-main input.color-transparency{margin-left:10px;margin-right:3px}.redux-main input.wp-color-picker{width:80px !important}.redux-main .section-color .controls{width:345px}.redux-main .section-color .explain{width:225px}.redux-main .iris-picker .iris-strip .ui-slider-handle{position:absolute;background:none !important;right:-3px;left:-3px;border:4px solid #aaa !important;border-width:4px 3px;width:auto;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,0.2);opacity:.9;z-index:5;cursor:ns-resize}.redux-main .iris-picker .iris-slider-offset{position:absolute;top:2px;left:0px;right:0;bottom:4px;width:28px;background:none !important;border:0 !important;height:auto}.redux-main .wp-picker-container{display:inline-block;outline:0}.redux-main .wp-picker-container input{margin-bottom:inherit;margin-top:inherit;padding:3px 5px}.redux-main .wp-picker-container .wp-color-result{outline:0;margin:0;height:24px !important;margin:0 6px 6px 0 !important}.redux-main .wp-picker-container .wp-picker-default{padding:0 10px 1px}.redux-main .wp-picker-container .wp-color-result-text{line-height:22px}.redux-main .redux-color-gradient{line-height:24px}.redux-main .color-transparency-check{line-height:1;margin:0 !important;padding-top:10px}.redux-main .wp-picker-clear{margin-top:0 !important}.wp-customizer .redux-main input.wp-picker-default,.wp-customizer .redux-main .redux-typography-container input.wp-picker-default,.wp-customizer .redux-main .redux-typography-container .redux-typography-color{padding:0px 4px !important}.wp-customizer .redux-main input.wp-color-picker{width:65px !important;margin-left:5px !important} diff --git a/redux/ReduxCore/assets/css/color-picker/color-picker.css.map b/redux/ReduxCore/assets/css/color-picker/color-picker.css.map new file mode 100644 index 0000000..8350f33 --- /dev/null +++ b/redux/ReduxCore/assets/css/color-picker/color-picker.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "AAEQ,6BAAc;EACV,KAAK,EAAE,IAAI;EACX,KAAK,EAAE,IAAI;EACX,WAAW,EAAE,GAAG;AAGpB,oCAAqB;EACjB,WAAW,EAAE,IAAI;EACjB,YAAY,EAAE,GAAG;AAGrB,iCAAkB;EACd,KAAK,EAAE,eAAe;AAK1B,oCAAU;EACN,KAAK,EAAE,KAAK;AAGhB,mCAAS;EACL,KAAK,EAAE,KAAK;AAKhB,sDAA8B;EAC1B,QAAQ,EAAE,QAAQ;EAClB,UAAU,EAAE,eAAe;EAC3B,KAAK,EAAE,IAAI;EACX,IAAI,EAAE,IAAI;EACV,MAAM,EAAE,yBAAyB;EACjC,YAAY,EAAE,OAAO;EACrB,KAAK,EAAE,IAAI;EACX,aAAa,EAAE,GAAG;EAClB,UAAU,EAAE,4BAA2B;EACvC,OAAO,EAAE,EAAE;EACX,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,SAAS;AAGrB,4CAAoB;EAChB,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,GAAG;EACR,IAAI,EAAE,CAAC;EACP,KAAK,EAAE,CAAC;EACR,MAAM,EAAE,GAAG;EACX,KAAK,EAAE,IAAI;EACX,UAAU,EAAE,eAAe;EAC3B,MAAM,EAAE,YAAY;EACpB,MAAM,EAAE,IAAI;AAKhB,sCAAM;EACF,aAAa,EAAE,OAAO;EACtB,UAAU,EAAE,OAAO;EACnB,OAAO,EAAE,OAAO;AAGpB,iDAAiB;EACb,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,CAAC;AAGb,mDAAmB;EACf,OAAO,EAAE,UAAU;AAI3B,iCAAsB;EAClB,WAAW,EAAE,IAAI;AAGrB,qCAA0B;EACtB,WAAW,EAAE,CAAC;EACd,UAAU,EAAE,cAAc;AAG9B,4BAAiB;EACb,UAAU,EAAE,YAAY;;AAK5B,kNAAsK;EAClK,OAAO,EAAE,kBAAkB;AAE/B,gDAAkC;EAC9B,KAAK,EAAE,eAAe;EACtB,WAAW,EAAE,cAAc", +"sources": ["color-picker.scss"], +"names": [], +"file": "color-picker.css" +} \ No newline at end of file diff --git a/redux/ReduxCore/assets/css/color-picker/color-picker.scss b/redux/ReduxCore/assets/css/color-picker/color-picker.scss new file mode 100644 index 0000000..3b4d7d5 --- /dev/null +++ b/redux/ReduxCore/assets/css/color-picker/color-picker.scss @@ -0,0 +1,107 @@ +.redux-main { + input{ + &.redux-color { + float: left; + width: 70px; + margin-left: 5px; + } + + &.color-transparency { + margin-left: 10px; + margin-right: 3px; + } + + &.wp-color-picker { + width: 80px !important; + } + } + + .section-color { + .controls { + width: 345px; + } + + .explain { + width: 225px; + } + } + + .iris-picker { + .iris-strip .ui-slider-handle { + position: absolute; + background: none !important; + right: -3px; + left: -3px; + border: 4px solid #aaa !important; + border-width: 4px 3px; + width: auto; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, .2); + opacity: .9; + z-index: 5; + cursor: ns-resize; + } + + .iris-slider-offset { + position: absolute; + top: 2px; + left: 0px; + right: 0; + bottom: 4px; + width: 28px; //17 + background: none !important; + border: 0 !important; + height: auto; + } + } + + .wp-picker-container { + display: inline-block; + outline: 0; + + input { + margin-bottom: inherit; + margin-top: inherit; + padding: 3px 5px; + } + + .wp-color-result { + outline: 0; + margin: 0; + height: 24px!important; + margin: 0 6px 6px 0!important; + } + + .wp-picker-default { + padding: 0 10px 1px; + } + + .wp-color-result-text { + line-height: 22px; + } + } + + .redux-color-gradient { + line-height: 24px; + } + + .color-transparency-check { + line-height: 1; + margin: 0!important; + padding-top: 10px; + } + + .wp-picker-clear { + margin-top: 0 !important; + } +} + +.wp-customizer { + .redux-main input.wp-picker-default, .redux-main .redux-typography-container input.wp-picker-default, .redux-main .redux-typography-container .redux-typography-color { + padding: 0px 4px !important; + } + .redux-main input.wp-color-picker { + width: 65px !important; + margin-left: 5px !important; + } +} \ No newline at end of file diff --git a/redux/ReduxCore/assets/css/import_export/import_export.css b/redux/ReduxCore/assets/css/import_export/import_export.css new file mode 100644 index 0000000..1c6a5a1 --- /dev/null +++ b/redux/ReduxCore/assets/css/import_export/import_export.css @@ -0,0 +1 @@ +#redux-import-link-wrapper,#redux-import-code-wrapper{display:none}#redux-export-code,#redux-export-link-value{display:none}#redux-import-action span{color:#b94a48} \ No newline at end of file diff --git a/redux/ReduxCore/assets/css/import_export/import_export.css.map b/redux/ReduxCore/assets/css/import_export/import_export.css.map new file mode 100644 index 0000000..2f73f23 --- /dev/null +++ b/redux/ReduxCore/assets/css/import_export/import_export.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "AAAA,sDAAuD;EACnD,OAAO,EAAE,IAAI;;AAGjB,4CAA6C;EACzC,OAAO,EAAE,IAAI;;AAGjB,yBAA0B;EACtB,KAAK,EAAE,OAAO", +"sources": ["import_export.scss"], +"names": [], +"file": "import_export.css" +} \ No newline at end of file diff --git a/redux/ReduxCore/assets/css/import_export/import_export.scss b/redux/ReduxCore/assets/css/import_export/import_export.scss new file mode 100644 index 0000000..f5e563d --- /dev/null +++ b/redux/ReduxCore/assets/css/import_export/import_export.scss @@ -0,0 +1,11 @@ +#redux-import-link-wrapper, #redux-import-code-wrapper { + display: none +} + +#redux-export-code, #redux-export-link-value { + display: none +} + +#redux-import-action span { + color: #B94A48 +} diff --git a/redux/ReduxCore/assets/css/media/media.css b/redux/ReduxCore/assets/css/media/media.css new file mode 100644 index 0000000..737309c --- /dev/null +++ b/redux/ReduxCore/assets/css/media/media.css @@ -0,0 +1 @@ +.redux-main .button.remove-image,.redux-main .removeCSS{margin-left:10px;color:#ef521d}.redux-main .button.remove-image:hover,.redux-main .removeCSS:hover{color:red}.redux-main .upload_button_div{margin-bottom:5px}.redux-main .upload-error{float:left;color:#666;font-size:10px;font-weight:bold;text-decoration:none;text-shadow:1px 1px 0 #FFFFFF;margin:0 10px 0 0;padding:3px 10px;background:#FFDFEC;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.redux-main .reset-button{font-family:Arial, Verdana, sans-serif;float:left;margin:0;color:#ef521d;border-color:#bbb}.redux-main .redux-option-image{max-height:340px;max-width:340px;padding:5px;margin-bottom:0;margin-top:10px;margin-right:15px;border:1px solid #e3e3e3;background:#f7f7f7;-moz-border-radius:3px;-khtml-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.redux-main .redux-main .upload{width:80% !important}.redux-main .button{margin-top:2px} diff --git a/redux/ReduxCore/assets/css/media/media.css.map b/redux/ReduxCore/assets/css/media/media.css.map new file mode 100644 index 0000000..9b560bb --- /dev/null +++ b/redux/ReduxCore/assets/css/media/media.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "AACI;sBACW;EACP,WAAW,EAAE,IAAI;EACjB,KAAK,EAAE,OAAO;EAEd;8BAAQ;IACJ,KAAK,EAAE,GAAG;AAIlB,8BAAmB;EACf,aAAa,EAAE,GAAG;AAGtB,yBAAc;EACV,KAAK,EAAE,IAAI;EACX,KAAK,EAAE,IAAI;EACX,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;EACjB,eAAe,EAAE,IAAI;EACrB,WAAW,EAAE,iBAAiB;EAC9B,MAAM,EAAE,UAAU;EAClB,OAAO,EAAE,QAAQ;EACjB,UAAU,EAAE,OAAO;EACnB,qBAAqB,EAAE,GAAG;EAC1B,kBAAkB,EAAE,GAAG;EACvB,aAAa,EAAE,GAAG;AAGtB,yBAAc;EACV,WAAW,EAAE,0BAA0B;EACvC,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,CAAC;EACT,KAAK,EAAE,OAAO;EACd,YAAY,EAAE,IAAI;AAGtB,+BAAoB;EAChB,UAAU,EAAE,KAAK;EACjB,SAAS,EAAE,KAAK;EAChB,OAAO,EAAE,GAAG;EACZ,aAAa,EAAE,CAAC;EAChB,UAAU,EAAE,IAAI;EAChB,YAAY,EAAE,IAAI;EAClB,MAAM,EAAE,iBAAiB;EACzB,UAAU,EAAE,OAAO;EACnB,kBAAkB,EAAE,GAAG;EACvB,oBAAoB,EAAE,GAAG;EACzB,qBAAqB,EAAE,GAAG;EAC1B,aAAa,EAAE,GAAG;AAGtB,+BAAoB;EAChB,KAAK,EAAE,cAAc;AAGzB,mBAAQ;EACJ,UAAU,EAAE,GAAG", +"sources": ["media.scss"], +"names": [], +"file": "media.css" +} \ No newline at end of file diff --git a/redux/ReduxCore/assets/css/media/media.scss b/redux/ReduxCore/assets/css/media/media.scss new file mode 100644 index 0000000..86086ae --- /dev/null +++ b/redux/ReduxCore/assets/css/media/media.scss @@ -0,0 +1,61 @@ +.redux-main { + .button.remove-image, + .removeCSS { + margin-left: 10px; + color: #ef521d; + + &:hover { + color: red; + } + } + + .upload_button_div { + margin-bottom: 5px; + } + + .upload-error { + float: left; + color: #666; + font-size: 10px; + font-weight: bold; + text-decoration: none; + text-shadow: 1px 1px 0 #FFFFFF; + margin: 0 10px 0 0; + padding: 3px 10px; + background: #FFDFEC; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + } + + .reset-button { + font-family: Arial, Verdana, sans-serif; + float: left; + margin: 0; + color: #ef521d; + border-color: #bbb; + } + + .redux-option-image { + max-height: 340px; + max-width: 340px; + padding: 5px; + margin-bottom: 0; + margin-top: 10px; + margin-right: 15px; + border: 1px solid #e3e3e3; + background: #f7f7f7; + -moz-border-radius: 3px; + -khtml-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + } + + .redux-main .upload { + width: 80% !important; + } + + .button { + margin-top: 2px; + } +} \ No newline at end of file diff --git a/redux/ReduxCore/assets/css/redux-admin.css b/redux/ReduxCore/assets/css/redux-admin.css new file mode 100644 index 0000000..08fc194 --- /dev/null +++ b/redux/ReduxCore/assets/css/redux-admin.css @@ -0,0 +1 @@ +.spinner{visibility:hidden;display:block}.spinner.is-active{visibility:visible}.redux-main .description{margin-top:7px}.redux-container{background-color:#f5f5f5;background-repeat:repeat-x;background-image:-moz-linear-gradient(top, #f2f2f2 0%, #f5f5f5 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f2f2f2), color-stop(100%, #f5f5f5));background-image:-webkit-linear-gradient(top, #f2f2f2 0%, #f5f5f5 100%);background-image:-ms-linear-gradient(top, #f2f2f2 0%, #f5f5f5 100%);background-image:-o-linear-gradient(top, #f2f2f2 0%, #f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#eeeeee', GradientType=0);background-image:-linear-gradient(top, #f2f2f2 0%, #f5f5f5 100%);border:1px solid #dedede;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.04);box-shadow:0 1px 1px rgba(0,0,0,0.04);-moz-box-shadow:0 1px 5px rgba(0,0,0,0.4);margin-top:5px;overflow:hidden}.redux-container .form-table>tbody>tr>th{width:30%}.redux-container .form-table th,.redux-container .form-table td{margin:0;padding:0;width:auto}.redux-container .redux_field_th{font-weight:600;padding:20px 10px 20px 0px;display:block}.redux-container .redux_field_th span:first-child{font-weight:normal;display:block;color:#666}.redux-container #ui-datepicker-div{display:none}.redux-container a:focus{box-shadow:none}.redux-container #redux-header,.redux-container #redux-footer{text-align:right;padding:6px 10px}.redux-container #redux-header{background:#f1f1f1;border-bottom:3px solid blue}.redux-container #redux-header .display_header{float:left;margin:20px 10px}.redux-container #redux-header .display_header h2{display:inline-block;font-style:normal;padding-right:5px}.redux-container #redux-header .display_header .redux-dev-mode-notice-container{position:absolute;top:67px;left:20px;bottom:auto;width:auto}.redux-container #redux-header .display_header span{color:#888}.redux-container #redux-header .display_header span.redux-dev-mode-notice{background-color:#f0ad4e;display:inline;padding:.2em .5em .2em;font-weight:700;line-height:1;color:#fff !important;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.redux-container #redux-header .icon32{float:right;margin:16px 16px 0}.redux-container #redux-footer{border-top:1px solid #E7E7E7;z-index:999}.redux-container #redux-footer #redux-share{float:left;line-height:28px;font-size:15px}.redux-container #redux-footer #redux-share a{text-decoration:none;margin-right:10px}.redux-container #redux-footer #redux-share a img{margin-bottom:-3px}.redux-container .notice-green{margin:0;border-bottom:1px solid #E7E7E7;background-color:#DFF0D8;color:#468847;padding:8px 35px 8px 14px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.redux-container .notice-blue{margin:0;border-bottom:1px solid #BCE8F1;background-color:#D9EDF7;color:#3A87AD;padding:8px 35px 8px 14px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.redux-container .notice-yellow{margin:0;border-bottom:1px solid #E7E7E7;background-color:#FCF8E3;color:#C09853;padding:8px 35px 8px 14px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.redux-container .notice-red,.redux-container .redux-field-errors{margin:0;border-bottom:1px solid #E7E7E7;background-color:#F2DEDE;color:#B94A48;padding:8px 35px 8px 14px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.redux-container .redux-field-error input,.redux-container .redux-field-error textarea,.redux-container .redux-field-error checkbox{background-color:#FFF6F6;color:#A00}.redux-container .redux-field-warning input,.redux-container .redux-field-warning textarea,.redux-container .redux-field-warning checkbox{background-color:#fcf8e3;color:#444}.redux-container .redux-field-errors,.redux-container .redux-field-warnings,.redux-container .redux-save-warn{display:none}.redux-container .sticky-save-warn{min-height:76px}.redux-container .sticky-save-warn .redux-save-warn{position:fixed;top:32px;right:21px;left:183px;opacity:1;z-index:9999}.redux-container #info_bar{background:#f3f3f3;border-bottom:1px solid #dedede;padding:6px 10px 6px 6px;text-align:right;-moz-box-shadow:inset 0 1px 0 #fcfcfc;-webkit-box-shadow:inset 0 1px 0 #fcfcfc;box-shadow:inset 0 1px 0 #fcfcfc}.redux-container .redux-group-tab{display:none;margin-bottom:15px}.redux-container .redux-group-tab .redux-theme-data{padding:20px 0;border-top:1px solid #E7E7E7}.redux-container .redux-group-tab .redux-theme-data.theme-description{padding:10px 0;border-width:0}.redux-container .redux-group-tab .redux-theme-data.theme-uri,.redux-container .redux-group-tab .redux-theme-data.theme-author,.redux-container .redux-group-tab .redux-theme-data.theme-version{padding:0;border-width:0}.redux-container .redux-group-tab h3{margin-top:0;line-height:2em;border-bottom:1px solid #E7E7E7}.redux-container .redux-group-tab .redux-section-desc{margin-bottom:15px;color:#666}.redux-container .redux-action_bar{float:right}.redux-container .redux-action_bar .spinner{float:left;margin-top:4px}.redux-container .redux-ajax-loading{display:none;background:red url(data:image/gif;base64,R0lGODlhEAAQAPUAAIiIiIqKio2NjZSUlJqamp6enqKioqSkpK+vr7i4uL+/v8PDw8XFxcnJyc/Pz9HR0dTU1NjY2Nzc3OLi4ubm5unp6ezs7PPz88vLy83NzdDQ0NXV1d3d3eHh4bu7u8zMzOvr6+3t7ZiYmNbW1sDAwMTExNra2s7OztPT09vb2+Xl5QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/i1NYWRlIGJ5IEtyYXNpbWlyYSBOZWpjaGV2YSAod3d3LmxvYWRpbmZvLm5ldCkAIfkEAAoA/wAsAAAAABAAEAAABXDgJY6XZZEoOTnOlI5WdUFNA5UnSR3FJNUSieFAIUUEgcdl4noEBBGSZaHIiSqKhTX2GhVFiQGjuxgkSoYAoosAGE6RhKQrUURHlS+pItMVCHMjEgQ9JBJISg+JT3ciFg4NFkcCNw0OViiDgF0oTC8hACH5BAAKAP8ALAAAAAAQABAAAAVx4CWOZGle1qJYp2hV1xYE29V1JXUYHWUcnQgGwyFFBAENiqUZ1kapFamTyeBcsNOLMkoMGC3GIIEyBBAtRMDAiiSKp04iQqpwc9kRpUCAizgEBVciEQNJFxpKGgECdFAYYBsCAjUMGS0XgAODmDacIyEAIfkEAAoA/wAsAAAAABAAEAAABnbAi3BILBovIMUidBSGQJdNIKBBMomUg6FDMRgoHcOBQowIqNaLJiCIEEMLxdWpnIfITRAHnxgwjiEfDR8UIQYBCEcgDYwdUR6ORxEfG3MgeFiFRB0FBBxEHAQFkUJmaBofamxuRB9/GwICGxeMTRehnrabpERBACH5BAAKAP8ALAAAAAAQABAAAAZ9wItwSCwaL5aFwnIUWiqXUSAwulSYRMrB0KEYDJSO4UAhRgQBDZLpCAgixOSSWFEssEho81IWJgYMTQwDCUgGAQhNCAEGTCMJHU0dCXBDFX1DFhwdeHwFIhxmGBihQxEDaRcOGhYao1WZGIFnAiMUDg6YRR0ioE57Fx2RRkEAIfkEAAoA/wAsAAAAABAAEAAABXLgJY5kaV7WolinaLGQEEBXxZLUUUyUYVATw4FCisg0NZYmIIiQUosKqaJY3FDS1oUoSgwYrcUggTIAEC1EwMCKJCatSYI2qnBx2dGkQOCQOAQFdxdGARoVGhCITE4kGBgWEI8QFgwYWhGTWiMWERFXIyEAIfkEAAoA/wAsAAAAABAAEAAABn/Ai3BILBovloXCchRaKpdRIDC6VJhEysHQoRgMlI7hQCFGBAENkukICCLE5JJYUSywSGjzUhYmBgxNDAMJSAYBCE0IAAZMEQkdTRwKVUMcHHhCFXpDERgYcJYEBZFDI58aFhoOFxpuoUIUGhoUZwJVGA6ZaxccBAQce0QdpUVBACH5BAAKAP8ALAAAAAAQABAAAAZ8wItwSCwaLyEFKXQUhioXSCAAuVSYRMrB0KEYDJSO4UAhmgQBDZKpCQhMxFBJgRVWlFkOtElhUj4NH3VEJQMJFx0NintFCAEGISEQH3BHHR5VThVlRRSMQh0FBBxEHAQFnEJnaRcfHxdtb0WKIWcCVSUNTYgEo7tEHR1HQQAh+QQACgD/ACwAAAAAEAAQAAAGdcCLcEgsGi8hhSJ0FHY6l1EgMLqAmEROo5HqGAwqL5g42qKsoAsqIEgRVacTdAhSLLBI1bWpwiYGDE0MAwlIBgEITQgBBkwjCRxNHQlVdCpGekUqBQSRQxwEBZdDKQIBZ3FqbG5EDYEjpikhW3hFoJ1NRU9HQQA7) no-repeat;width:16px;height:16px;margin:3px 4px 0;float:right}.redux-container #redux-intro-text{background:#f3f3f3;border-bottom:1px solid #dedede;-moz-box-shadow:inset 0 1px 0 #fcfcfc;-webkit-box-shadow:inset 0 1px 0 #fcfcfc;box-shadow:inset 0 1px 0 #fcfcfc;padding:3px;padding:10px 10px}.redux-container #redux-intro-text p{margin:0;font-family:"Lucida Grande", Sans-serif;color:#888}.redux-container .expand_options{cursor:pointer;display:block;height:22px;width:21px;float:left;font-size:0;text-indent:-9999px;margin:1px 0 0 5px;border:1px solid #bbb;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAyCAIAAAAm4OfBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAQhJREFUeNrslT0KhDAQhTeLR7ATT6IXSKGFYO0lciFrO1N4AU8TLNXKv0CaJbLJRAZxl1hYyJuXN+PoR/Z9fyFdBNNr27Zf8Oq6bhgGSGUYhpTSzyeBNi8hRFVVEK+6rrXaQFOs6yrvTdOYjcqyVEpTLqXI89yaSypBudq2xckF2TipOSvfmmhZFuAGnJV6Licvey5gj7fnwpwXvEfLfqnT0jQ1OBJCQLnUBvZ9b85VFAV076UU8g1ZckVRxBiDzD6OY62WzPOM9i+cpunvvcZxfCQfPWs9a91Ym2UZ5xyHtd/e8hXWng+/zlrD9jmz1tDj7bkw5wXv0Y210itJEs9az9oHsPYQYACveK0/IuB51AAAAABJRU5ErkJggg==) no-repeat -2px -26px}.redux-container .expand_options.expanded{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAyCAIAAAAm4OfBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAQhJREFUeNrslT0KhDAQhTeLR7ATT6IXSKGFYO0lciFrO1N4AU8TLNXKv0CaJbLJRAZxl1hYyJuXN+PoR/Z9fyFdBNNr27Zf8Oq6bhgGSGUYhpTSzyeBNi8hRFVVEK+6rrXaQFOs6yrvTdOYjcqyVEpTLqXI89yaSypBudq2xckF2TipOSvfmmhZFuAGnJV6Licvey5gj7fnwpwXvEfLfqnT0jQ1OBJCQLnUBvZ9b85VFAV076UU8g1ZckVRxBiDzD6OY62WzPOM9i+cpunvvcZxfCQfPWs9a91Ym2UZ5xyHtd/e8hXWng+/zlrD9jmz1tDj7bkw5wXv0Y210itJEs9az9oHsPYQYACveK0/IuB51AAAAABJRU5ErkJggg==) no-repeat -2px -1px}.redux-container .expand_options:hover{border-color:#888}.redux-container .sticky-footer-fixed{background:#f3f3f3;border-top:1px solid #dedede !important;-moz-box-shadow:inset 0 1px 0 #fcfcfc;-webkit-box-shadow:inset 0 1px 0 #fcfcfc;box-shadow:inset 0 1px 0 #fcfcfc}.redux-container .redux-sidebar,.redux-container .redux-main{min-height:300px}.redux-container .redux-main{background:#FCFCFC;margin-left:201px;border-left:1px solid #D8D8D8;padding:10px 20px;-moz-box-shadow:inset 0 1px 0 #fff;-webkit-box-shadow:inset 0 1px 0 #FFF;box-shadow:inset 0 1px 0 #FFF;position:relative}.redux-container .redux-main #redux_ajax_overlay{position:absolute;top:0;left:0;right:0;bottom:0;-moz-opacity:0.10;-khtml-opacity:0.10;opacity:0.10;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=10);filter:alpha(opacity=10);background:#000;z-index:200;display:none}.redux-container .redux-main .form-table.no-border{border-top:none}.redux-container .redux-main .form-table tr{border-bottom:1px solid #E7E7E7}.redux-container .redux-main .form-table tr:last-child{border-bottom:none !important}.redux-container .redux-main .form-table tr th,.redux-container .redux-main .form-table tr td{color:#333}.redux-container .redux-main .form-table tr td table.mceLayout,.redux-container .redux-main .form-table tr td table.mceLayout tr,.redux-container .redux-main .form-table tr td table.mceLayout tr td{padding:0;border-width:0}.redux-container .redux-main .form-table tr td .redux-th-warning{font-size:1em;color:#C09853;font-weight:normal;display:block;margin-top:10px}.redux-container .redux-main .form-table tr td .redux-field-warning{border-color:#C09853;margin-top:10px}.redux-container .redux-main .form-table tr td .redux-th-error{font-size:1em;color:#B94A48;font-weight:normal;display:block;margin-top:10px}.redux-container .redux-main input.large-text{width:100%}.redux-container .redux-main .hide{display:none}.redux-container .redux-main .redux-field-container{padding:20px 0}.redux-container .redux-main .mini,.redux-container .redux-main input[type=text].mini{width:60px;text-align:center}.redux-container .redux-main input{line-height:19px}.redux-container .redux-main img{max-width:100%;height:auto;width:auto !important}.redux-container .redux-main .select2-default{width:auto !important}.redux-container .redux-main .showDefaults{display:block;font-weight:normal;font-size:.8em;color:#888}.redux-container .redux-main span.description{display:block;font-style:normal;font-weight:400}.redux-container .redux-main #redux-system-info textarea{min-height:730px;width:100%}.redux-container .redux-main .field-desc{clear:both;font-size:13px}.redux-container .redux-main .data-full li{width:100%}.redux-container .redux-main .data-half li{width:50%;float:left}.redux-container .redux-main .data-third li{width:33.3%;float:left}.redux-container .redux-main .data-quarter li{width:25%;float:left}.redux-container .redux-main .ui-helper-hidden-accessible{top:inherit}.redux-container .redux-main .form-table{clear:none;margin-top:0px !important}.redux-container .redux-main .form-table tr:first-child th,.redux-container .redux-main .form-table tr:first-child td{padding-top:0}.redux-container .redux-main .input-append input{border-right:0;margin-bottom:0;border-top-right-radius:0;border-bottom-right-radius:0;margin-right:0;float:left;margin-top:0;display:block}.redux-container .redux-main .input-append .add-on{border-top-right-radius:3px;border-bottom-right-radius:3px;margin-left:-2px;padding-top:4px !important;padding-bottom:2px !important}.redux-container .redux-main .input-prepend input{border-left:0;margin-bottom:0;border-top-left-radius:0;border-bottom-left-radius:0;margin-left:0;padding-top:2px;padding-bottom:5px;float:left;margin-top:0;display:block}.redux-container .redux-main .input-prepend .add-on{border-top-left-radius:3px;border-bottom-left-radius:3px;float:left}.redux-container .redux-main .input-append{margin-right:10px;font-size:0;white-space:nowrap;float:left;display:inline-block;margin-bottom:6px}.redux-container .redux-main .input-append .add-on,.redux-container .redux-main .input-prepend .add-on{width:auto;display:inline-block;min-width:16px;padding:3px 4px;font-size:12px;font-weight:400;line-height:20px;text-align:center;text-shadow:0 1px 0 #ffffff;background-color:#eeeeee;border:1px solid #cccccc}.redux-container .redux-main .input-prepend{font-size:0;white-space:nowrap;float:left;display:inline-block;margin-bottom:6px}.redux-container .redux-main pre{white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word}.no-js{border:1px solid #ffbaba;margin:0;border-bottom:1px solid #E7E7E7;background-color:#F2DEDE;color:#B94A48;padding:8px 35px 8px 14px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.redux-sidebar{width:202px;float:left}.redux-sidebar .redux-group-menu{margin-top:0 !important}.redux-sidebar .redux-group-menu li{margin-top:0}.redux-sidebar .redux-group-menu li.active a,.redux-sidebar .redux-group-menu li.active a:hover,.redux-sidebar .redux-group-menu li.activeChild a,.redux-sidebar .redux-group-menu li.activeChild a:hover{background:#FCFCFC;color:#269ad6;width:184px;opacity:1}.redux-sidebar .redux-group-menu li.active a li a{background:#333;padding-left:5px}.redux-sidebar .redux-group-menu li.divide{padding:0;border-width:1px 0;border-style:solid;border-bottom-color:#E7E7E7;border-top-color:#F9F9F9}.redux-sidebar .redux-group-menu li a:first-child{border-top:none}.redux-sidebar .redux-group-menu li a{display:block;padding:10px 4px 10px 14px;background:#e0e0e0;background:transparent;border-width:1px 0;border-style:solid;border-bottom-color:#E7E7E7;border-top-color:#F9F9F9;opacity:0.7;color:#555;font-weight:600;text-decoration:none;-webkit-transition:none;transition:none}.redux-sidebar .redux-group-menu li a.custom-tab{background:#f6f6f6}.redux-sidebar .redux-group-menu li a img{width:16px;height:16px;position:absolute;left:15px}.redux-sidebar .redux-group-menu li a:hover{background:#e5e5e5;color:#777;opacity:1}.redux-sidebar .redux-menu-warning,.redux-sidebar .redux-menu-error,.redux-sidebar .hasSubSections .extraIconSubsections{display:inline-block;float:right;padding:6px 7px 4px 7px;margin-left:4px;font-family:sans-serif;font-size:9px;font-weight:600;line-height:9px;border-radius:10px;-moz-border-radius:10px;-webkit-border-radius:10px;border:0 solid transparent}.redux-sidebar .redux-menu-warning i,.redux-sidebar .redux-menu-error i,.redux-sidebar .hasSubSections .extraIconSubsections i{margin-left:-3px;margin-top:-3px}.redux-sidebar .redux-menu-error{background-color:#b94a48;color:#f2dede}.redux-sidebar .redux-menu-warning{background-color:#C09853;color:#FCF8E3}.redux-sidebar ul .subsection{display:none}.redux-sidebar .redux-group-tab-link-a{position:relative;outline:0}.redux-sidebar .redux-group-tab-link-a i{vertical-align:middle;font-size:1.35em;position:absolute}.redux-sidebar .redux-group-tab-link-a span{display:block}.redux-sidebar .redux-group-tab-link-a span.group_title{padding-left:30px}.redux-sidebar .redux-group-tab-link-li a.hasError span.group_title{padding-right:25px}.redux-sidebar #redux-header{text-align:center}.redux-sidebar #redux-header .display_header{float:none}.farb-popup-wrapper{position:relative;display:block}.farb-popup{position:absolute;left:40px;top:40px;background-color:white;border:1px solid #222;padding:5px;z-index:100}.mp6 .icon-themes{display:none}.mp6 .redux-container #info_bar{padding:6px 10px 6px 6px}.mp6 .redux-container #info_bar a{margin-top:2px}.redux-timer{text-align:center;font-size:10px;color:#888}.wrap{margin-top:0}@media screen and (max-width: 600px){.redux-sidebar{width:44px}.redux-sidebar .extraIconSubsections{display:none !important}.redux-sidebar .redux-group-menu li a,.redux-sidebar .redux-group-menu li a:hover,.redux-sidebar .redux-group-menu li.active a,.redux-sidebar .redux-group-menu li.active a:hover,.redux-sidebar .redux-group-menu li.activeChild a,.redux-sidebar .redux-group-menu li.activeChild a:hover{width:auto}.redux-sidebar .redux-group-tab-link-a{position:relative}.redux-sidebar .redux-group-tab-link-a i{position:inherit}.redux-sidebar .redux-group-tab-link-a span{display:none;position:absolute;top:0;left:44px;padding:12px;width:200px;background:#eeeeee;border:1px solid #ccc;-webkit-box-shadow:2px 2px 8px rgba(0,0,0,0.2);-moz-box-shadow:2px 2px 8px rgba(0,0,0,0.2);box-shadow:2px 2px 8px rgba(0,0,0,0.2);border-width:1px 1px 1px 0px;z-index:3}.redux-sidebar .redux-group-tab-link-a:hover>span{display:block}.redux-main{margin-left:43px;width:auto;max-width:100%}table.form-table,.form-table>thead,.form-table>tbody,.form-table>tbody>tr>th,.form-table>tbody>tr>td,.form-table>tbody>tr{display:block;width:100% !important;padding:0px !important}.form-table>tbody>tr>th,.form-table>tbody>tr>td{padding:10px !important}.form-table>tbody>tr>th,.form-table>tbody>tr>td{padding:10px !important}}@media screen and (max-width: 782px){.form-table>tbody>tr>th{width:100%}.redux_field_th{padding-bottom:0}.mp6 .redux-container #info_bar{height:auto;padding-bottom:1px}.mp6 .redux-container #info_bar a{margin-top:5px}.redux-container-switch label{padding:5px 10px !important}.redux-container-button_set label{padding:12px 10px}.redux-container #redux-footer #redux-share{line-height:34px}}pre{overflow:hidden}#redux-header h2{color:#fff}.admin-color-fresh .button.ui-datepicker-current,.admin-color-fresh button.ui-datepicker-close,.wp-customizer .button.ui-datepicker-current,.wp-customizer button.ui-datepicker-close{background-color:#007db9 !important}.admin-color-fresh .ui-datepicker-buttonpane button.ui-datepicker-current,.wp-customizer .ui-datepicker-buttonpane button.ui-datepicker-current{background:#1e8cbe !important;color:white !important;border:1px solid #104b66 !important}.admin-color-fresh .ui-datepicker-header .ui-icon,.wp-customizer .ui-datepicker-header .ui-icon{background-image:url(data:image/png;base64,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) !important}.admin-color-fresh .ui-datepicker-header,.wp-customizer .ui-datepicker-header{background-color:#23282d !important;color:white !important}.admin-color-fresh .ui-datepicker td .ui-state-active,.wp-customizer .ui-datepicker td .ui-state-active{background-color:#007db9 !important;color:white !important}.admin-color-fresh .ui-datepicker td .ui-state-hover,.wp-customizer .ui-datepicker td .ui-state-hover{color:#007db9 !important}.admin-color-fresh .ui-datepicker td .ui-state-highlight,.wp-customizer .ui-datepicker td .ui-state-highlight{background:#0073aa !important;border:1px solid #23282d !important;color:white !important}.admin-color-fresh .redux-container-switch .cb-disable,.admin-color-fresh .redux-container-switch .cb-enable,.admin-color-fresh .ui-state-default,.admin-color-fresh .ui-widget-content .ui-state-default,.admin-color-fresh .ui-widget-header .ui-state-default,.wp-customizer .redux-container-switch .cb-disable,.wp-customizer .redux-container-switch .cb-enable,.wp-customizer .ui-state-default,.wp-customizer .ui-widget-content .ui-state-default,.wp-customizer .ui-widget-header .ui-state-default{background-color:#f5f5f5 !important;background-image:-khtml-gradient(linear, left top, left bottom, from(#f8f8f8), to(#f5f5f5)) !important;background-image:-moz-linear-gradient(top, #f8f8f8, #f5f5f5) !important;background-image:-ms-linear-gradient(top, #f8f8f8, #f5f5f5) !important;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f8f8f8), color-stop(100%, #f5f5f5)) !important;background-image:-webkit-linear-gradient(top, #f8f8f8, #f5f5f5) !important;background-image:-o-linear-gradient(top, #f8f8f8, #f5f5f5) !important;background-image:-linear-gradient(top, #f8f8f8, #f5f5f5) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f8f8f8', endColorstr='#f5f5f5', GradientType=0) !important;border-color:#ccc !important}.admin-color-fresh .ui-datepicker td .ui-state-active,.wp-customizer .ui-datepicker td .ui-state-active{color:black !important;font-weight:700 !important;background:white !important}.admin-color-fresh .redux-container-switch .cb-disable.selected,.wp-customizer .redux-container-switch .cb-disable.selected{background-color:#646464 !important;background-image:-khtml-gradient(linear, left top, left bottom, from(#929292), to(#646464)) !important;background-image:-moz-linear-gradient(top, #929292, #646464) !important;background-image:-ms-linear-gradient(top, #929292, #646464) !important;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #929292), color-stop(100%, #646464)) !important;background-image:-webkit-linear-gradient(top, #929292, #646464) !important;background-image:-o-linear-gradient(top, #929292, #646464) !important;background-image:-linear-gradient(top, #929292, #646464) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#929292', endColorstr='#646464', GradientType=0) !important;border-color:#767676 !important}.admin-color-fresh .redux-container-switch .cb-enable.selected,.admin-color-fresh .redux-field-container .ui-buttonset .ui-state-active,.wp-customizer .redux-container-switch .cb-enable.selected,.wp-customizer .redux-field-container .ui-buttonset .ui-state-active{background-color:#0073aa !important;background-image:-khtml-gradient(linear, left top, left bottom, from(#008bce), to(#0073aa)) !important;background-image:-moz-linear-gradient(top, #008bce, #0073aa) !important;background-image:-ms-linear-gradient(top, #008bce, #0073aa) !important;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #008bce), color-stop(100%, #0073aa)) !important;background-image:-webkit-linear-gradient(top, #008bce, #0073aa) !important;background-image:-o-linear-gradient(top, #008bce, #0073aa) !important;background-image:-linear-gradient(top, #008bce, #0073aa) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#008bce', endColorstr='#0073aa', GradientType=0) !important;border-color:#003f5e !important;border-color:#005177 !important;-webkit-box-shadow:inset 0 1px 0 #00a7f7,0 1px 0 rgba(0,0,0,0.15) !important;box-shadow:inset 0 1px 0 #00a7f7,0 1px 0 rgba(0,0,0,0.15) !important}.admin-color-fresh #redux-header,.wp-customizer #redux-header{background:#23282d;border-color:#0073aa}.admin-color-fresh #redux-header .display_header span,.wp-customizer #redux-header .display_header span{color:#a0a5aa}.admin-color-fresh .redux-sidebar .redux-group-menu li.active.hasSubSections a,.wp-customizer .redux-sidebar .redux-group-menu li.active.hasSubSections a{position:relative}.admin-color-fresh .redux-sidebar .redux-group-menu li.active.hasSubSections a:after,.wp-customizer .redux-sidebar .redux-group-menu li.active.hasSubSections a:after{right:0;border:solid 8px transparent;content:"\0020";height:0;width:0;position:absolute;pointer-events:none;border-right-color:#fff;top:50%;margin-top:-8px}.admin-color-fresh .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a:after,.wp-customizer .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a:after{border:0 none !important;content:"\0020" !important}.admin-color-fresh .redux-sidebar .redux-group-menu li.hasSubSections .redux-menu-error,.wp-customizer .redux-sidebar .redux-group-menu li.hasSubSections .redux-menu-error{display:none;margin-right:5px}.admin-color-fresh .redux-sidebar .redux-group-menu li.hasSubSections a.hasError .extraIconSubsections,.wp-customizer .redux-sidebar .redux-group-menu li.hasSubSections a.hasError .extraIconSubsections{background-color:#b94a48;color:#f2dede}.admin-color-fresh .redux-sidebar .redux-group-menu li.hasSubSections a .extraIconSubsections,.wp-customizer .redux-sidebar .redux-group-menu li.hasSubSections a .extraIconSubsections{border-radius:10px;-moz-border-radius:10px;-webkit-border-radius:10px;border:0 solid transparent;font-size:9px;height:9px;line-height:9px;margin-right:5px;padding:6px 7px 4px 7px;width:5px}.admin-color-fresh .redux-sidebar .redux-group-menu li.active a .extraIconSubsections,.admin-color-fresh .redux-sidebar .redux-group-menu li.activeChild a .extraIconSubsections,.wp-customizer .redux-sidebar .redux-group-menu li.active a .extraIconSubsections,.wp-customizer .redux-sidebar .redux-group-menu li.activeChild a .extraIconSubsections{display:none}.admin-color-fresh .redux-sidebar .redux-group-menu li.active.hasSubSections .redux-menu-error,.admin-color-fresh .redux-sidebar .redux-group-menu li.activeChild.hasSubSections .redux-menu-error,.wp-customizer .redux-sidebar .redux-group-menu li.active.hasSubSections .redux-menu-error,.wp-customizer .redux-sidebar .redux-group-menu li.activeChild.hasSubSections .redux-menu-error{display:block}.admin-color-fresh .redux-sidebar .redux-group-menu li.active.hasSubSections .subsection .redux-menu-error,.admin-color-fresh .redux-sidebar .redux-group-menu li.activeChild.hasSubSections .subsection .redux-menu-error,.wp-customizer .redux-sidebar .redux-group-menu li.active.hasSubSections .subsection .redux-menu-error,.wp-customizer .redux-sidebar .redux-group-menu li.activeChild.hasSubSections .subsection .redux-menu-error{margin-right:2px}.admin-color-fresh .redux-sidebar .redux-group-menu li.active,.admin-color-fresh .redux-sidebar .redux-group-menu li.activeChild,.wp-customizer .redux-sidebar .redux-group-menu li.active,.wp-customizer .redux-sidebar .redux-group-menu li.activeChild{border-left:0 none}.admin-color-fresh .redux-sidebar .redux-group-menu li.active a,.admin-color-fresh .redux-sidebar .redux-group-menu li.activeChild a,.wp-customizer .redux-sidebar .redux-group-menu li.active a,.wp-customizer .redux-sidebar .redux-group-menu li.activeChild a{color:#23282d}.admin-color-fresh .redux-sidebar .redux-group-menu li.active.hasSubSections .active a:after,.admin-color-fresh .redux-sidebar .redux-group-menu li.activeChild.hasSubSections .active a:after,.wp-customizer .redux-sidebar .redux-group-menu li.active.hasSubSections .active a:after,.wp-customizer .redux-sidebar .redux-group-menu li.activeChild.hasSubSections .active a:after{right:0;border:solid 8px transparent;content:"\0020";height:0;width:0;position:absolute;pointer-events:none;border-right-color:#fff;top:50%;margin-top:-8px}.admin-color-fresh .redux-sidebar .redux-group-menu li.active.hasSubSections a,.admin-color-fresh .redux-sidebar .redux-group-menu li.activeChild.hasSubSections a,.wp-customizer .redux-sidebar .redux-group-menu li.active.hasSubSections a,.wp-customizer .redux-sidebar .redux-group-menu li.activeChild.hasSubSections a{-webkit-transition:all 0.2s;-moz-transition:all 0.2s;transition:all 0.2s;color:#fff;width:auto;border-bottom:0}.admin-color-fresh .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li,.admin-color-fresh .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li,.wp-customizer .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li,.wp-customizer .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li{border-top:0 none !important}.admin-color-fresh .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li.active a:hover,.admin-color-fresh .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li.active a:hover,.wp-customizer .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li.active a:hover,.wp-customizer .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li.active a:hover{color:#fff}.admin-color-fresh .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a,.admin-color-fresh .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li a,.wp-customizer .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a,.wp-customizer .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li a{width:auto;border-top:0 !important;padding:7px;color:#fff;padding-left:15px;-webkit-transition:all 0.2;-moz-transition:all 0.2;-ms-transition:all 0.2;-o-transition:all 0.2;transition:all 0.2}.admin-color-fresh .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a:hover,.admin-color-fresh .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li a:hover,.wp-customizer .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a:hover,.wp-customizer .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li a:hover{color:#1e8cbe;background:#0d0f10}.admin-color-fresh .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a span.group_title,.admin-color-fresh .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li a span.group_title,.wp-customizer .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a span.group_title,.wp-customizer .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li a span.group_title{padding-left:5px !important}.admin-color-fresh .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li.hasIcon a,.admin-color-fresh .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li.hasIcon a,.wp-customizer .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li.hasIcon a,.wp-customizer .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li.hasIcon a{padding-left:14px}.admin-color-fresh .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li.hasIcon a span.group_title,.admin-color-fresh .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li.hasIcon a span.group_title,.wp-customizer .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li.hasIcon a span.group_title,.wp-customizer .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li.hasIcon a span.group_title{padding-left:30px !important}.admin-color-fresh .redux-sidebar .redux-group-menu li.active.hasSubSections a,.wp-customizer .redux-sidebar .redux-group-menu li.active.hasSubSections a{background:#0073aa}.admin-color-fresh .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a,.wp-customizer .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a{background:#23282d}.admin-color-fresh .redux-sidebar .redux-group-menu li.activeChild.hasSubSections a,.wp-customizer .redux-sidebar .redux-group-menu li.activeChild.hasSubSections a{background:#a0a5aa;text-shadow:1px 1px #54595d}.admin-color-fresh .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li a,.wp-customizer .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li a{background:#23282d;text-shadow:none}.admin-color-fresh .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li.active a,.wp-customizer .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li.active a{background:#0073aa;text-shadow:1px 1px #002e44}.admin-color-fresh .redux-container-image_select .redux-image-select-selected img,.wp-customizer .redux-container-image_select .redux-image-select-selected img{border-color:#0073aa}.admin-color-fresh .redux-container-image_select .redux-image-select-selected .tiles,.wp-customizer .redux-container-image_select .redux-image-select-selected .tiles{border-color:#0073aa}.admin-color-fresh #redux-footer #redux-share a,.wp-customizer #redux-footer #redux-share a{color:#0073aa}.admin-color-fresh #redux-footer #redux-share a:hover,.wp-customizer #redux-footer #redux-share a:hover{color:#002e44}.admin-color-fresh .select2-results .select2-highlighted,.wp-customizer .select2-results .select2-highlighted{background:#0073aa}.admin-color-fresh .select2-drop-active,.admin-color-fresh .select2-container-multi.select2-container-active .select2-choices,.admin-color-fresh .select2-drop.select2-drop-above.select2-drop-active,.admin-color-fresh .select2-container-active .select2-choice,.admin-color-fresh .select2-container-active .select2-choices,.admin-color-fresh .select2-dropdown-open.select2-drop-above .select2-choice,.admin-color-fresh .select2-dropdown-open.select2-drop-above .select2-choices,.wp-customizer .select2-drop-active,.wp-customizer .select2-container-multi.select2-container-active .select2-choices,.wp-customizer .select2-drop.select2-drop-above.select2-drop-active,.wp-customizer .select2-container-active .select2-choice,.wp-customizer .select2-container-active .select2-choices,.wp-customizer .select2-dropdown-open.select2-drop-above .select2-choice,.wp-customizer .select2-dropdown-open.select2-drop-above .select2-choices{border-color:#0073aa}.admin-color-fresh .select2-dropdown-open.select2-drop-above .select2-choice,.admin-color-fresh .select2-dropdown-open.select2-drop-above .select2-choices,.wp-customizer .select2-dropdown-open.select2-drop-above .select2-choice,.wp-customizer .select2-dropdown-open.select2-drop-above .select2-choices{border-top:inherit}.admin-color-fresh .noUi-connect,.wp-customizer .noUi-connect{background-color:#007db9 !important;background-image:-khtml-gradient(linear, left top, left bottom, from(#0096dd), to(#007db9)) !important;background-image:-moz-linear-gradient(top, #0096dd, #007db9) !important;background-image:-ms-linear-gradient(top, #0096dd, #007db9) !important;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #0096dd), color-stop(100%, #007db9)) !important;background-image:-webkit-linear-gradient(top, #0096dd, #007db9) !important;background-image:-o-linear-gradient(top, #0096dd, #007db9) !important;background-image:-linear-gradient(top, #0096dd, #007db9) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0096dd', endColorstr='#007db9', GradientType=0) !important}.admin-color-light .button.ui-datepicker-current,.admin-color-light button.ui-datepicker-close{background-color:#04b0db !important}.admin-color-light .ui-datepicker-buttonpane button.ui-datepicker-current{background:#0384a4 !important;color:white !important;border:1px solid #013340 !important}.admin-color-light .ui-datepicker-header .ui-icon{background-image:url(data:image/png;base64,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) !important}.admin-color-light .ui-datepicker-header{background-color:#888 !important;color:white !important}.admin-color-light .ui-datepicker td .ui-state-active{background-color:#04b0db !important;color:white !important}.admin-color-light .ui-datepicker td .ui-state-hover{color:#04b0db !important}.admin-color-light .ui-datepicker td .ui-state-highlight{background:#04a4cc !important;border:1px solid #888 !important;color:white !important}.admin-color-light .redux-container-switch .cb-disable,.admin-color-light .redux-container-switch .cb-enable,.admin-color-light .ui-state-default,.admin-color-light .ui-widget-content .ui-state-default,.admin-color-light .ui-widget-header .ui-state-default{background-color:#f5f5f5 !important;background-image:-khtml-gradient(linear, left top, left bottom, from(#f8f8f8), to(#f5f5f5)) !important;background-image:-moz-linear-gradient(top, #f8f8f8, #f5f5f5) !important;background-image:-ms-linear-gradient(top, #f8f8f8, #f5f5f5) !important;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f8f8f8), color-stop(100%, #f5f5f5)) !important;background-image:-webkit-linear-gradient(top, #f8f8f8, #f5f5f5) !important;background-image:-o-linear-gradient(top, #f8f8f8, #f5f5f5) !important;background-image:-linear-gradient(top, #f8f8f8, #f5f5f5) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f8f8f8', endColorstr='#f5f5f5', GradientType=0) !important;border-color:#ccc !important}.admin-color-light .ui-datepicker td .ui-state-active{color:black !important;font-weight:700 !important;background:white !important}.admin-color-light .redux-container-switch .cb-disable.selected{background-color:#646464 !important;background-image:-khtml-gradient(linear, left top, left bottom, from(#929292), to(#646464)) !important;background-image:-moz-linear-gradient(top, #929292, #646464) !important;background-image:-ms-linear-gradient(top, #929292, #646464) !important;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #929292), color-stop(100%, #646464)) !important;background-image:-webkit-linear-gradient(top, #929292, #646464) !important;background-image:-o-linear-gradient(top, #929292, #646464) !important;background-image:-linear-gradient(top, #929292, #646464) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#929292', endColorstr='#646464', GradientType=0) !important;border-color:#767676 !important}.admin-color-light .redux-container-switch .cb-enable.selected,.admin-color-light .redux-field-container .ui-buttonset .ui-state-active{background-color:#04a4cc !important;background-image:-khtml-gradient(linear, left top, left bottom, from(#05c0ef), to(#04a4cc)) !important;background-image:-moz-linear-gradient(top, #05c0ef, #04a4cc) !important;background-image:-ms-linear-gradient(top, #05c0ef, #04a4cc) !important;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #05c0ef), color-stop(100%, #04a4cc)) !important;background-image:-webkit-linear-gradient(top, #05c0ef, #04a4cc) !important;background-image:-o-linear-gradient(top, #05c0ef, #04a4cc) !important;background-image:-linear-gradient(top, #05c0ef, #04a4cc) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#05c0ef', endColorstr='#04a4cc', GradientType=0) !important;border-color:#036881 !important;border-color:#037c9a !important;-webkit-box-shadow:inset 0 1px 0 #22cffb,0 1px 0 rgba(0,0,0,0.15) !important;box-shadow:inset 0 1px 0 #22cffb,0 1px 0 rgba(0,0,0,0.15) !important}.admin-color-light #redux-header{background:#888;border-color:#04a4cc}.admin-color-light #redux-header .display_header span{color:#e6e6e6}.admin-color-light .redux-sidebar .redux-group-menu li.active.hasSubSections a{position:relative}.admin-color-light .redux-sidebar .redux-group-menu li.active.hasSubSections a:after{right:0;border:solid 8px transparent;content:"\0020";height:0;width:0;position:absolute;pointer-events:none;border-right-color:#fff;top:50%;margin-top:-8px}.admin-color-light .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a:after{border:0 none !important;content:"\0020" !important}.admin-color-light .redux-sidebar .redux-group-menu li.hasSubSections .redux-menu-error{display:none;margin-right:5px}.admin-color-light .redux-sidebar .redux-group-menu li.hasSubSections a.hasError .extraIconSubsections{background-color:#b94a48;color:#f2dede}.admin-color-light .redux-sidebar .redux-group-menu li.hasSubSections a .extraIconSubsections{border-radius:10px;-moz-border-radius:10px;-webkit-border-radius:10px;border:0 solid transparent;font-size:9px;height:9px;line-height:9px;margin-right:5px;padding:6px 7px 4px 7px;width:5px}.admin-color-light .redux-sidebar .redux-group-menu li.active a .extraIconSubsections,.admin-color-light .redux-sidebar .redux-group-menu li.activeChild a .extraIconSubsections{display:none}.admin-color-light .redux-sidebar .redux-group-menu li.active.hasSubSections .redux-menu-error,.admin-color-light .redux-sidebar .redux-group-menu li.activeChild.hasSubSections .redux-menu-error{display:block}.admin-color-light .redux-sidebar .redux-group-menu li.active.hasSubSections .subsection .redux-menu-error,.admin-color-light .redux-sidebar .redux-group-menu li.activeChild.hasSubSections .subsection .redux-menu-error{margin-right:2px}.admin-color-light .redux-sidebar .redux-group-menu li.active,.admin-color-light .redux-sidebar .redux-group-menu li.activeChild{border-left:0 none}.admin-color-light .redux-sidebar .redux-group-menu li.active a,.admin-color-light .redux-sidebar .redux-group-menu li.activeChild a{color:#888}.admin-color-light .redux-sidebar .redux-group-menu li.active.hasSubSections .active a:after,.admin-color-light .redux-sidebar .redux-group-menu li.activeChild.hasSubSections .active a:after{right:0;border:solid 8px transparent;content:"\0020";height:0;width:0;position:absolute;pointer-events:none;border-right-color:#fff;top:50%;margin-top:-8px}.admin-color-light .redux-sidebar .redux-group-menu li.active.hasSubSections a,.admin-color-light .redux-sidebar .redux-group-menu li.activeChild.hasSubSections a{-webkit-transition:all 0.2s;-moz-transition:all 0.2s;transition:all 0.2s;color:#fff;width:auto;border-bottom:0}.admin-color-light .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li,.admin-color-light .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li{border-top:0 none !important}.admin-color-light .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li.active a:hover,.admin-color-light .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li.active a:hover{color:#fff}.admin-color-light .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a,.admin-color-light .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li a{width:auto;border-top:0 !important;padding:7px;color:#fff;padding-left:15px;-webkit-transition:all 0.2;-moz-transition:all 0.2;-ms-transition:all 0.2;-o-transition:all 0.2;transition:all 0.2}.admin-color-light .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a:hover,.admin-color-light .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li a:hover{color:#0384a4;background:#6f6f6f}.admin-color-light .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a span.group_title,.admin-color-light .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li a span.group_title{padding-left:5px !important}.admin-color-light .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li.hasIcon a,.admin-color-light .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li.hasIcon a{padding-left:14px}.admin-color-light .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li.hasIcon a span.group_title,.admin-color-light .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li.hasIcon a span.group_title{padding-left:30px !important}.admin-color-light .redux-sidebar .redux-group-menu li.active.hasSubSections a{background:#04a4cc}.admin-color-light .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a{background:#888}.admin-color-light .redux-sidebar .redux-group-menu li.activeChild.hasSubSections a{background:#e6e6e6;text-shadow:1px 1px #9a9a9a}.admin-color-light .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li a{background:#888;text-shadow:none}.admin-color-light .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li.active a{background:#04a4cc;text-shadow:1px 1px #025468}.admin-color-light .redux-container-image_select .redux-image-select-selected img{border-color:#04a4cc}.admin-color-light .redux-container-image_select .redux-image-select-selected .tiles{border-color:#04a4cc}.admin-color-light #redux-footer #redux-share a{color:#04a4cc}.admin-color-light #redux-footer #redux-share a:hover{color:#025468}.admin-color-light .select2-results .select2-highlighted{background:#04a4cc}.admin-color-light .select2-drop-active,.admin-color-light .select2-container-multi.select2-container-active .select2-choices,.admin-color-light .select2-drop.select2-drop-above.select2-drop-active,.admin-color-light .select2-container-active .select2-choice,.admin-color-light .select2-container-active .select2-choices,.admin-color-light .select2-dropdown-open.select2-drop-above .select2-choice,.admin-color-light .select2-dropdown-open.select2-drop-above .select2-choices{border-color:#04a4cc}.admin-color-light .select2-dropdown-open.select2-drop-above .select2-choice,.admin-color-light .select2-dropdown-open.select2-drop-above .select2-choices{border-top:inherit}.admin-color-light .noUi-connect{background-color:#04b0db !important;background-image:-khtml-gradient(linear, left top, left bottom, from(#09cafa), to(#04b0db)) !important;background-image:-moz-linear-gradient(top, #09cafa, #04b0db) !important;background-image:-ms-linear-gradient(top, #09cafa, #04b0db) !important;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #09cafa), color-stop(100%, #04b0db)) !important;background-image:-webkit-linear-gradient(top, #09cafa, #04b0db) !important;background-image:-o-linear-gradient(top, #09cafa, #04b0db) !important;background-image:-linear-gradient(top, #09cafa, #04b0db) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#09cafa', endColorstr='#04b0db', GradientType=0) !important}.admin-color-blue .button.ui-datepicker-current,.admin-color-blue button.ui-datepicker-close{background-color:#509dba !important}.admin-color-blue .ui-datepicker-buttonpane button.ui-datepicker-current{background:#db9825 !important;color:white !important;border:1px solid #845c16 !important}.admin-color-blue .ui-datepicker-header .ui-icon{background-image:url(data:image/png;base64,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) !important}.admin-color-blue .ui-datepicker-header{background-color:#096484 !important;color:white !important}.admin-color-blue .ui-datepicker td .ui-state-active{background-color:#509dba !important;color:white !important}.admin-color-blue .ui-datepicker td .ui-state-hover{color:#509dba !important}.admin-color-blue .ui-datepicker td .ui-state-highlight{background:#4796b3 !important;border:1px solid #096484 !important;color:white !important}.admin-color-blue .redux-container-switch .cb-disable,.admin-color-blue .redux-container-switch .cb-enable,.admin-color-blue .ui-state-default,.admin-color-blue .ui-widget-content .ui-state-default,.admin-color-blue .ui-widget-header .ui-state-default{background-color:#f5f5f5 !important;background-image:-khtml-gradient(linear, left top, left bottom, from(#f8f8f8), to(#f5f5f5)) !important;background-image:-moz-linear-gradient(top, #f8f8f8, #f5f5f5) !important;background-image:-ms-linear-gradient(top, #f8f8f8, #f5f5f5) !important;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f8f8f8), color-stop(100%, #f5f5f5)) !important;background-image:-webkit-linear-gradient(top, #f8f8f8, #f5f5f5) !important;background-image:-o-linear-gradient(top, #f8f8f8, #f5f5f5) !important;background-image:-linear-gradient(top, #f8f8f8, #f5f5f5) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f8f8f8', endColorstr='#f5f5f5', GradientType=0) !important;border-color:#ccc !important}.admin-color-blue .ui-datepicker td .ui-state-active{color:black !important;font-weight:700 !important;background:white !important}.admin-color-blue .redux-container-switch .cb-disable.selected{background-color:#646464 !important;background-image:-khtml-gradient(linear, left top, left bottom, from(#929292), to(#646464)) !important;background-image:-moz-linear-gradient(top, #929292, #646464) !important;background-image:-ms-linear-gradient(top, #929292, #646464) !important;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #929292), color-stop(100%, #646464)) !important;background-image:-webkit-linear-gradient(top, #929292, #646464) !important;background-image:-o-linear-gradient(top, #929292, #646464) !important;background-image:-linear-gradient(top, #929292, #646464) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#929292', endColorstr='#646464', GradientType=0) !important;border-color:#767676 !important}.admin-color-blue .redux-container-switch .cb-enable.selected,.admin-color-blue .redux-field-container .ui-buttonset .ui-state-active{background-color:#4796b3 !important;background-image:-khtml-gradient(linear, left top, left bottom, from(#5ea5bf), to(#4796b3)) !important;background-image:-moz-linear-gradient(top, #5ea5bf, #4796b3) !important;background-image:-ms-linear-gradient(top, #5ea5bf, #4796b3) !important;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #5ea5bf), color-stop(100%, #4796b3)) !important;background-image:-webkit-linear-gradient(top, #5ea5bf, #4796b3) !important;background-image:-o-linear-gradient(top, #5ea5bf, #4796b3) !important;background-image:-linear-gradient(top, #5ea5bf, #4796b3) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#5ea5bf', endColorstr='#4796b3', GradientType=0) !important;border-color:#31687c !important;border-color:#39778e !important;-webkit-box-shadow:inset 0 1px 0 #7cb6cb,0 1px 0 rgba(0,0,0,0.15) !important;box-shadow:inset 0 1px 0 #7cb6cb,0 1px 0 rgba(0,0,0,0.15) !important}.admin-color-blue #redux-header{background:#096484;border-color:#4796b3}.admin-color-blue #redux-header .display_header span{color:#e2ecf1}.admin-color-blue .redux-sidebar .redux-group-menu li.active.hasSubSections a{position:relative}.admin-color-blue .redux-sidebar .redux-group-menu li.active.hasSubSections a:after{right:0;border:solid 8px transparent;content:"\0020";height:0;width:0;position:absolute;pointer-events:none;border-right-color:#fff;top:50%;margin-top:-8px}.admin-color-blue .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a:after{border:0 none !important;content:"\0020" !important}.admin-color-blue .redux-sidebar .redux-group-menu li.hasSubSections .redux-menu-error{display:none;margin-right:5px}.admin-color-blue .redux-sidebar .redux-group-menu li.hasSubSections a.hasError .extraIconSubsections{background-color:#b94a48;color:#f2dede}.admin-color-blue .redux-sidebar .redux-group-menu li.hasSubSections a .extraIconSubsections{border-radius:10px;-moz-border-radius:10px;-webkit-border-radius:10px;border:0 solid transparent;font-size:9px;height:9px;line-height:9px;margin-right:5px;padding:6px 7px 4px 7px;width:5px}.admin-color-blue .redux-sidebar .redux-group-menu li.active a .extraIconSubsections,.admin-color-blue .redux-sidebar .redux-group-menu li.activeChild a .extraIconSubsections{display:none}.admin-color-blue .redux-sidebar .redux-group-menu li.active.hasSubSections .redux-menu-error,.admin-color-blue .redux-sidebar .redux-group-menu li.activeChild.hasSubSections .redux-menu-error{display:block}.admin-color-blue .redux-sidebar .redux-group-menu li.active.hasSubSections .subsection .redux-menu-error,.admin-color-blue .redux-sidebar .redux-group-menu li.activeChild.hasSubSections .subsection .redux-menu-error{margin-right:2px}.admin-color-blue .redux-sidebar .redux-group-menu li.active,.admin-color-blue .redux-sidebar .redux-group-menu li.activeChild{border-left:0 none}.admin-color-blue .redux-sidebar .redux-group-menu li.active a,.admin-color-blue .redux-sidebar .redux-group-menu li.activeChild a{color:#096484}.admin-color-blue .redux-sidebar .redux-group-menu li.active.hasSubSections .active a:after,.admin-color-blue .redux-sidebar .redux-group-menu li.activeChild.hasSubSections .active a:after{right:0;border:solid 8px transparent;content:"\0020";height:0;width:0;position:absolute;pointer-events:none;border-right-color:#fff;top:50%;margin-top:-8px}.admin-color-blue .redux-sidebar .redux-group-menu li.active.hasSubSections a,.admin-color-blue .redux-sidebar .redux-group-menu li.activeChild.hasSubSections a{-webkit-transition:all 0.2s;-moz-transition:all 0.2s;transition:all 0.2s;color:#fff;width:auto;border-bottom:0}.admin-color-blue .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li,.admin-color-blue .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li{border-top:0 none !important}.admin-color-blue .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li.active a:hover,.admin-color-blue .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li.active a:hover{color:#fff}.admin-color-blue .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a,.admin-color-blue .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li a{width:auto;border-top:0 !important;padding:7px;color:#fff;padding-left:15px;-webkit-transition:all 0.2;-moz-transition:all 0.2;-ms-transition:all 0.2;-o-transition:all 0.2;transition:all 0.2}.admin-color-blue .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a:hover,.admin-color-blue .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li a:hover{color:#db9825;background:#064054}.admin-color-blue .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a span.group_title,.admin-color-blue .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li a span.group_title{padding-left:5px !important}.admin-color-blue .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li.hasIcon a,.admin-color-blue .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li.hasIcon a{padding-left:14px}.admin-color-blue .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li.hasIcon a span.group_title,.admin-color-blue .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li.hasIcon a span.group_title{padding-left:30px !important}.admin-color-blue .redux-sidebar .redux-group-menu li.active.hasSubSections a{background:#4796b3}.admin-color-blue .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a{background:#096484}.admin-color-blue .redux-sidebar .redux-group-menu li.activeChild.hasSubSections a{background:#e2ecf1;text-shadow:1px 1px #7ba8bf}.admin-color-blue .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li a{background:#096484;text-shadow:none}.admin-color-blue .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li.active a{background:#4796b3;text-shadow:1px 1px #2a596a}.admin-color-blue .redux-container-image_select .redux-image-select-selected img{border-color:#4796b3}.admin-color-blue .redux-container-image_select .redux-image-select-selected .tiles{border-color:#4796b3}.admin-color-blue #redux-footer #redux-share a{color:#4796b3}.admin-color-blue #redux-footer #redux-share a:hover{color:#2a596a}.admin-color-blue .select2-results .select2-highlighted{background:#4796b3}.admin-color-blue .select2-drop-active,.admin-color-blue .select2-container-multi.select2-container-active .select2-choices,.admin-color-blue .select2-drop.select2-drop-above.select2-drop-active,.admin-color-blue .select2-container-active .select2-choice,.admin-color-blue .select2-container-active .select2-choices,.admin-color-blue .select2-dropdown-open.select2-drop-above .select2-choice,.admin-color-blue .select2-dropdown-open.select2-drop-above .select2-choices{border-color:#4796b3}.admin-color-blue .select2-dropdown-open.select2-drop-above .select2-choice,.admin-color-blue .select2-dropdown-open.select2-drop-above .select2-choices{border-top:inherit}.admin-color-blue .noUi-connect{background-color:#509dba !important;background-image:-khtml-gradient(linear, left top, left bottom, from(#69abc4), to(#509dba)) !important;background-image:-moz-linear-gradient(top, #69abc4, #509dba) !important;background-image:-ms-linear-gradient(top, #69abc4, #509dba) !important;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #69abc4), color-stop(100%, #509dba)) !important;background-image:-webkit-linear-gradient(top, #69abc4, #509dba) !important;background-image:-o-linear-gradient(top, #69abc4, #509dba) !important;background-image:-linear-gradient(top, #69abc4, #509dba) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#69abc4', endColorstr='#509dba', GradientType=0) !important}.admin-color-coffee .button.ui-datepicker-current,.admin-color-coffee button.ui-datepicker-close{background-color:#ccad93 !important}.admin-color-coffee .ui-datepicker-buttonpane button.ui-datepicker-current{background:#ba906d !important;color:white !important;border:1px solid #835d3e !important}.admin-color-coffee .ui-datepicker-header .ui-icon{background-image:url(data:image/png;base64,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) !important}.admin-color-coffee .ui-datepicker-header{background-color:#46403c !important;color:white !important}.admin-color-coffee .ui-datepicker td .ui-state-active{background-color:#ccad93 !important;color:white !important}.admin-color-coffee .ui-datepicker td .ui-state-hover{color:#ccad93 !important}.admin-color-coffee .ui-datepicker td .ui-state-highlight{background:#c7a589 !important;border:1px solid #46403c !important;color:white !important}.admin-color-coffee .redux-container-switch .cb-disable,.admin-color-coffee .redux-container-switch .cb-enable,.admin-color-coffee .ui-state-default,.admin-color-coffee .ui-widget-content .ui-state-default,.admin-color-coffee .ui-widget-header .ui-state-default{background-color:#f5f5f5 !important;background-image:-khtml-gradient(linear, left top, left bottom, from(#f8f8f8), to(#f5f5f5)) !important;background-image:-moz-linear-gradient(top, #f8f8f8, #f5f5f5) !important;background-image:-ms-linear-gradient(top, #f8f8f8, #f5f5f5) !important;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f8f8f8), color-stop(100%, #f5f5f5)) !important;background-image:-webkit-linear-gradient(top, #f8f8f8, #f5f5f5) !important;background-image:-o-linear-gradient(top, #f8f8f8, #f5f5f5) !important;background-image:-linear-gradient(top, #f8f8f8, #f5f5f5) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f8f8f8', endColorstr='#f5f5f5', GradientType=0) !important;border-color:#ccc !important}.admin-color-coffee .ui-datepicker td .ui-state-active{color:black !important;font-weight:700 !important;background:white !important}.admin-color-coffee .redux-container-switch .cb-disable.selected{background-color:#646464 !important;background-image:-khtml-gradient(linear, left top, left bottom, from(#929292), to(#646464)) !important;background-image:-moz-linear-gradient(top, #929292, #646464) !important;background-image:-ms-linear-gradient(top, #929292, #646464) !important;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #929292), color-stop(100%, #646464)) !important;background-image:-webkit-linear-gradient(top, #929292, #646464) !important;background-image:-o-linear-gradient(top, #929292, #646464) !important;background-image:-linear-gradient(top, #929292, #646464) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#929292', endColorstr='#646464', GradientType=0) !important;border-color:#767676 !important}.admin-color-coffee .redux-container-switch .cb-enable.selected,.admin-color-coffee .redux-field-container .ui-buttonset .ui-state-active{background-color:#c7a589 !important;background-image:-khtml-gradient(linear, left top, left bottom, from(#d2b7a1), to(#c7a589)) !important;background-image:-moz-linear-gradient(top, #d2b7a1, #c7a589) !important;background-image:-ms-linear-gradient(top, #d2b7a1, #c7a589) !important;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #d2b7a1), color-stop(100%, #c7a589)) !important;background-image:-webkit-linear-gradient(top, #d2b7a1, #c7a589) !important;background-image:-o-linear-gradient(top, #d2b7a1, #c7a589) !important;background-image:-linear-gradient(top, #d2b7a1, #c7a589) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#d2b7a1', endColorstr='#c7a589', GradientType=0) !important;border-color:#ae7d55 !important;border-color:#b78b66 !important;-webkit-box-shadow:inset 0 1px 0 #e0cdbd,0 1px 0 rgba(0,0,0,0.15) !important;box-shadow:inset 0 1px 0 #e0cdbd,0 1px 0 rgba(0,0,0,0.15) !important}.admin-color-coffee #redux-header{background:#46403c;border-color:#c7a589}.admin-color-coffee #redux-header .display_header span{color:#cdcbc9}.admin-color-coffee .redux-sidebar .redux-group-menu li.active.hasSubSections a{position:relative}.admin-color-coffee .redux-sidebar .redux-group-menu li.active.hasSubSections a:after{right:0;border:solid 8px transparent;content:"\0020";height:0;width:0;position:absolute;pointer-events:none;border-right-color:#fff;top:50%;margin-top:-8px}.admin-color-coffee .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a:after{border:0 none !important;content:"\0020" !important}.admin-color-coffee .redux-sidebar .redux-group-menu li.hasSubSections .redux-menu-error{display:none;margin-right:5px}.admin-color-coffee .redux-sidebar .redux-group-menu li.hasSubSections a.hasError .extraIconSubsections{background-color:#b94a48;color:#f2dede}.admin-color-coffee .redux-sidebar .redux-group-menu li.hasSubSections a .extraIconSubsections{border-radius:10px;-moz-border-radius:10px;-webkit-border-radius:10px;border:0 solid transparent;font-size:9px;height:9px;line-height:9px;margin-right:5px;padding:6px 7px 4px 7px;width:5px}.admin-color-coffee .redux-sidebar .redux-group-menu li.active a .extraIconSubsections,.admin-color-coffee .redux-sidebar .redux-group-menu li.activeChild a .extraIconSubsections{display:none}.admin-color-coffee .redux-sidebar .redux-group-menu li.active.hasSubSections .redux-menu-error,.admin-color-coffee .redux-sidebar .redux-group-menu li.activeChild.hasSubSections .redux-menu-error{display:block}.admin-color-coffee .redux-sidebar .redux-group-menu li.active.hasSubSections .subsection .redux-menu-error,.admin-color-coffee .redux-sidebar .redux-group-menu li.activeChild.hasSubSections .subsection .redux-menu-error{margin-right:2px}.admin-color-coffee .redux-sidebar .redux-group-menu li.active,.admin-color-coffee .redux-sidebar .redux-group-menu li.activeChild{border-left:0 none}.admin-color-coffee .redux-sidebar .redux-group-menu li.active a,.admin-color-coffee .redux-sidebar .redux-group-menu li.activeChild a{color:#46403c}.admin-color-coffee .redux-sidebar .redux-group-menu li.active.hasSubSections .active a:after,.admin-color-coffee .redux-sidebar .redux-group-menu li.activeChild.hasSubSections .active a:after{right:0;border:solid 8px transparent;content:"\0020";height:0;width:0;position:absolute;pointer-events:none;border-right-color:#fff;top:50%;margin-top:-8px}.admin-color-coffee .redux-sidebar .redux-group-menu li.active.hasSubSections a,.admin-color-coffee .redux-sidebar .redux-group-menu li.activeChild.hasSubSections a{-webkit-transition:all 0.2s;-moz-transition:all 0.2s;transition:all 0.2s;color:#fff;width:auto;border-bottom:0}.admin-color-coffee .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li,.admin-color-coffee .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li{border-top:0 none !important}.admin-color-coffee .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li.active a:hover,.admin-color-coffee .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li.active a:hover{color:#fff}.admin-color-coffee .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a,.admin-color-coffee .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li a{width:auto;border-top:0 !important;padding:7px;color:#fff;padding-left:15px;-webkit-transition:all 0.2;-moz-transition:all 0.2;-ms-transition:all 0.2;-o-transition:all 0.2;transition:all 0.2}.admin-color-coffee .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a:hover,.admin-color-coffee .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li a:hover{color:#ba906d;background:#2b2724}.admin-color-coffee .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a span.group_title,.admin-color-coffee .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li a span.group_title{padding-left:5px !important}.admin-color-coffee .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li.hasIcon a,.admin-color-coffee .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li.hasIcon a{padding-left:14px}.admin-color-coffee .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li.hasIcon a span.group_title,.admin-color-coffee .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li.hasIcon a span.group_title{padding-left:30px !important}.admin-color-coffee .redux-sidebar .redux-group-menu li.active.hasSubSections a{background:#c7a589}.admin-color-coffee .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a{background:#46403c}.admin-color-coffee .redux-sidebar .redux-group-menu li.activeChild.hasSubSections a{background:#cdcbc9;text-shadow:1px 1px #837f7a}.admin-color-coffee .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li a{background:#46403c;text-shadow:none}.admin-color-coffee .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li.active a{background:#c7a589;text-shadow:1px 1px #9f714b}.admin-color-coffee .redux-container-image_select .redux-image-select-selected img{border-color:#c7a589}.admin-color-coffee .redux-container-image_select .redux-image-select-selected .tiles{border-color:#c7a589}.admin-color-coffee #redux-footer #redux-share a{color:#c7a589}.admin-color-coffee #redux-footer #redux-share a:hover{color:#9f714b}.admin-color-coffee .select2-results .select2-highlighted{background:#c7a589}.admin-color-coffee .select2-drop-active,.admin-color-coffee .select2-container-multi.select2-container-active .select2-choices,.admin-color-coffee .select2-drop.select2-drop-above.select2-drop-active,.admin-color-coffee .select2-container-active .select2-choice,.admin-color-coffee .select2-container-active .select2-choices,.admin-color-coffee .select2-dropdown-open.select2-drop-above .select2-choice,.admin-color-coffee .select2-dropdown-open.select2-drop-above .select2-choices{border-color:#c7a589}.admin-color-coffee .select2-dropdown-open.select2-drop-above .select2-choice,.admin-color-coffee .select2-dropdown-open.select2-drop-above .select2-choices{border-top:inherit}.admin-color-coffee .noUi-connect{background-color:#ccad93 !important;background-image:-khtml-gradient(linear, left top, left bottom, from(#d7bfac), to(#ccad93)) !important;background-image:-moz-linear-gradient(top, #d7bfac, #ccad93) !important;background-image:-ms-linear-gradient(top, #d7bfac, #ccad93) !important;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #d7bfac), color-stop(100%, #ccad93)) !important;background-image:-webkit-linear-gradient(top, #d7bfac, #ccad93) !important;background-image:-o-linear-gradient(top, #d7bfac, #ccad93) !important;background-image:-linear-gradient(top, #d7bfac, #ccad93) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#d7bfac', endColorstr='#ccad93', GradientType=0) !important}.admin-color-ectoplasm .button.ui-datepicker-current,.admin-color-ectoplasm button.ui-datepicker-close{background-color:#a9bd4f !important}.admin-color-ectoplasm .ui-datepicker-buttonpane button.ui-datepicker-current{background:#89993a !important;color:white !important;border:1px solid #474f1e !important}.admin-color-ectoplasm .ui-datepicker-header .ui-icon{background-image:url(data:image/png;base64,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) !important}.admin-color-ectoplasm .ui-datepicker-header{background-color:#413256 !important;color:white !important}.admin-color-ectoplasm .ui-datepicker td .ui-state-active{background-color:#a9bd4f !important;color:white !important}.admin-color-ectoplasm .ui-datepicker td .ui-state-hover{color:#a9bd4f !important}.admin-color-ectoplasm .ui-datepicker td .ui-state-highlight{background:#a3b745 !important;border:1px solid #413256 !important;color:white !important}.admin-color-ectoplasm .redux-container-switch .cb-disable,.admin-color-ectoplasm .redux-container-switch .cb-enable,.admin-color-ectoplasm .ui-state-default,.admin-color-ectoplasm .ui-widget-content .ui-state-default,.admin-color-ectoplasm .ui-widget-header .ui-state-default{background-color:#f5f5f5 !important;background-image:-khtml-gradient(linear, left top, left bottom, from(#f8f8f8), to(#f5f5f5)) !important;background-image:-moz-linear-gradient(top, #f8f8f8, #f5f5f5) !important;background-image:-ms-linear-gradient(top, #f8f8f8, #f5f5f5) !important;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f8f8f8), color-stop(100%, #f5f5f5)) !important;background-image:-webkit-linear-gradient(top, #f8f8f8, #f5f5f5) !important;background-image:-o-linear-gradient(top, #f8f8f8, #f5f5f5) !important;background-image:-linear-gradient(top, #f8f8f8, #f5f5f5) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f8f8f8', endColorstr='#f5f5f5', GradientType=0) !important;border-color:#ccc !important}.admin-color-ectoplasm .ui-datepicker td .ui-state-active{color:black !important;font-weight:700 !important;background:white !important}.admin-color-ectoplasm .redux-container-switch .cb-disable.selected{background-color:#646464 !important;background-image:-khtml-gradient(linear, left top, left bottom, from(#929292), to(#646464)) !important;background-image:-moz-linear-gradient(top, #929292, #646464) !important;background-image:-ms-linear-gradient(top, #929292, #646464) !important;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #929292), color-stop(100%, #646464)) !important;background-image:-webkit-linear-gradient(top, #929292, #646464) !important;background-image:-o-linear-gradient(top, #929292, #646464) !important;background-image:-linear-gradient(top, #929292, #646464) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#929292', endColorstr='#646464', GradientType=0) !important;border-color:#767676 !important}.admin-color-ectoplasm .redux-container-switch .cb-enable.selected,.admin-color-ectoplasm .redux-field-container .ui-buttonset .ui-state-active{background-color:#a3b745 !important;background-image:-khtml-gradient(linear, left top, left bottom, from(#b0c25e), to(#a3b745)) !important;background-image:-moz-linear-gradient(top, #b0c25e, #a3b745) !important;background-image:-ms-linear-gradient(top, #b0c25e, #a3b745) !important;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #b0c25e), color-stop(100%, #a3b745)) !important;background-image:-webkit-linear-gradient(top, #b0c25e, #a3b745) !important;background-image:-o-linear-gradient(top, #b0c25e, #a3b745) !important;background-image:-linear-gradient(top, #b0c25e, #a3b745) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#b0c25e', endColorstr='#a3b745', GradientType=0) !important;border-color:#727f30 !important;border-color:#829237 !important;-webkit-box-shadow:inset 0 1px 0 #bfcd7b,0 1px 0 rgba(0,0,0,0.15) !important;box-shadow:inset 0 1px 0 #bfcd7b,0 1px 0 rgba(0,0,0,0.15) !important}.admin-color-ectoplasm #redux-header{background:#413256;border-color:#a3b745}.admin-color-ectoplasm #redux-header .display_header span{color:#cbc5d3}.admin-color-ectoplasm .redux-sidebar .redux-group-menu li.active.hasSubSections a{position:relative}.admin-color-ectoplasm .redux-sidebar .redux-group-menu li.active.hasSubSections a:after{right:0;border:solid 8px transparent;content:"\0020";height:0;width:0;position:absolute;pointer-events:none;border-right-color:#fff;top:50%;margin-top:-8px}.admin-color-ectoplasm .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a:after{border:0 none !important;content:"\0020" !important}.admin-color-ectoplasm .redux-sidebar .redux-group-menu li.hasSubSections .redux-menu-error{display:none;margin-right:5px}.admin-color-ectoplasm .redux-sidebar .redux-group-menu li.hasSubSections a.hasError .extraIconSubsections{background-color:#b94a48;color:#f2dede}.admin-color-ectoplasm .redux-sidebar .redux-group-menu li.hasSubSections a .extraIconSubsections{border-radius:10px;-moz-border-radius:10px;-webkit-border-radius:10px;border:0 solid transparent;font-size:9px;height:9px;line-height:9px;margin-right:5px;padding:6px 7px 4px 7px;width:5px}.admin-color-ectoplasm .redux-sidebar .redux-group-menu li.active a .extraIconSubsections,.admin-color-ectoplasm .redux-sidebar .redux-group-menu li.activeChild a .extraIconSubsections{display:none}.admin-color-ectoplasm .redux-sidebar .redux-group-menu li.active.hasSubSections .redux-menu-error,.admin-color-ectoplasm .redux-sidebar .redux-group-menu li.activeChild.hasSubSections .redux-menu-error{display:block}.admin-color-ectoplasm .redux-sidebar .redux-group-menu li.active.hasSubSections .subsection .redux-menu-error,.admin-color-ectoplasm .redux-sidebar .redux-group-menu li.activeChild.hasSubSections .subsection .redux-menu-error{margin-right:2px}.admin-color-ectoplasm .redux-sidebar .redux-group-menu li.active,.admin-color-ectoplasm .redux-sidebar .redux-group-menu li.activeChild{border-left:0 none}.admin-color-ectoplasm .redux-sidebar .redux-group-menu li.active a,.admin-color-ectoplasm .redux-sidebar .redux-group-menu li.activeChild a{color:#413256}.admin-color-ectoplasm .redux-sidebar .redux-group-menu li.active.hasSubSections .active a:after,.admin-color-ectoplasm .redux-sidebar .redux-group-menu li.activeChild.hasSubSections .active a:after{right:0;border:solid 8px transparent;content:"\0020";height:0;width:0;position:absolute;pointer-events:none;border-right-color:#fff;top:50%;margin-top:-8px}.admin-color-ectoplasm .redux-sidebar .redux-group-menu li.active.hasSubSections a,.admin-color-ectoplasm .redux-sidebar .redux-group-menu li.activeChild.hasSubSections a{-webkit-transition:all 0.2s;-moz-transition:all 0.2s;transition:all 0.2s;color:#fff;width:auto;border-bottom:0}.admin-color-ectoplasm .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li,.admin-color-ectoplasm .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li{border-top:0 none !important}.admin-color-ectoplasm .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li.active a:hover,.admin-color-ectoplasm .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li.active a:hover{color:#fff}.admin-color-ectoplasm .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a,.admin-color-ectoplasm .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li a{width:auto;border-top:0 !important;padding:7px;color:#fff;padding-left:15px;-webkit-transition:all 0.2;-moz-transition:all 0.2;-ms-transition:all 0.2;-o-transition:all 0.2;transition:all 0.2}.admin-color-ectoplasm .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a:hover,.admin-color-ectoplasm .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li a:hover{color:#89993a;background:#291f36}.admin-color-ectoplasm .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a span.group_title,.admin-color-ectoplasm .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li a span.group_title{padding-left:5px !important}.admin-color-ectoplasm .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li.hasIcon a,.admin-color-ectoplasm .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li.hasIcon a{padding-left:14px}.admin-color-ectoplasm .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li.hasIcon a span.group_title,.admin-color-ectoplasm .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li.hasIcon a span.group_title{padding-left:30px !important}.admin-color-ectoplasm .redux-sidebar .redux-group-menu li.active.hasSubSections a{background:#a3b745}.admin-color-ectoplasm .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a{background:#413256}.admin-color-ectoplasm .redux-sidebar .redux-group-menu li.activeChild.hasSubSections a{background:#cbc5d3;text-shadow:1px 1px #7d6e91}.admin-color-ectoplasm .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li a{background:#413256;text-shadow:none}.admin-color-ectoplasm .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li.active a{background:#a3b745;text-shadow:1px 1px #616d29}.admin-color-ectoplasm .redux-container-image_select .redux-image-select-selected img{border-color:#a3b745}.admin-color-ectoplasm .redux-container-image_select .redux-image-select-selected .tiles{border-color:#a3b745}.admin-color-ectoplasm #redux-footer #redux-share a{color:#a3b745}.admin-color-ectoplasm #redux-footer #redux-share a:hover{color:#616d29}.admin-color-ectoplasm .select2-results .select2-highlighted{background:#a3b745}.admin-color-ectoplasm .select2-drop-active,.admin-color-ectoplasm .select2-container-multi.select2-container-active .select2-choices,.admin-color-ectoplasm .select2-drop.select2-drop-above.select2-drop-active,.admin-color-ectoplasm .select2-container-active .select2-choice,.admin-color-ectoplasm .select2-container-active .select2-choices,.admin-color-ectoplasm .select2-dropdown-open.select2-drop-above .select2-choice,.admin-color-ectoplasm .select2-dropdown-open.select2-drop-above .select2-choices{border-color:#a3b745}.admin-color-ectoplasm .select2-dropdown-open.select2-drop-above .select2-choice,.admin-color-ectoplasm .select2-dropdown-open.select2-drop-above .select2-choices{border-top:inherit}.admin-color-ectoplasm .noUi-connect{background-color:#a9bd4f !important;background-image:-khtml-gradient(linear, left top, left bottom, from(#b6c669), to(#a9bd4f)) !important;background-image:-moz-linear-gradient(top, #b6c669, #a9bd4f) !important;background-image:-ms-linear-gradient(top, #b6c669, #a9bd4f) !important;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #b6c669), color-stop(100%, #a9bd4f)) !important;background-image:-webkit-linear-gradient(top, #b6c669, #a9bd4f) !important;background-image:-o-linear-gradient(top, #b6c669, #a9bd4f) !important;background-image:-linear-gradient(top, #b6c669, #a9bd4f) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#b6c669', endColorstr='#a9bd4f', GradientType=0) !important}.admin-color-midnight .button.ui-datepicker-current,.admin-color-midnight button.ui-datepicker-close{background-color:#e35950 !important}.admin-color-midnight .ui-datepicker-buttonpane button.ui-datepicker-current{background:#d92c23 !important;color:white !important;border:1px solid #811a15 !important}.admin-color-midnight .ui-datepicker-header .ui-icon{background-image:url(data:image/png;base64,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) !important}.admin-color-midnight .ui-datepicker-header{background-color:#363b3f !important;color:white !important}.admin-color-midnight .ui-datepicker td .ui-state-active{background-color:#e35950 !important;color:white !important}.admin-color-midnight .ui-datepicker td .ui-state-hover{color:#e35950 !important}.admin-color-midnight .ui-datepicker td .ui-state-highlight{background:#e14d43 !important;border:1px solid #363b3f !important;color:white !important}.admin-color-midnight .redux-container-switch .cb-disable,.admin-color-midnight .redux-container-switch .cb-enable,.admin-color-midnight .ui-state-default,.admin-color-midnight .ui-widget-content .ui-state-default,.admin-color-midnight .ui-widget-header .ui-state-default{background-color:#f5f5f5 !important;background-image:-khtml-gradient(linear, left top, left bottom, from(#f8f8f8), to(#f5f5f5)) !important;background-image:-moz-linear-gradient(top, #f8f8f8, #f5f5f5) !important;background-image:-ms-linear-gradient(top, #f8f8f8, #f5f5f5) !important;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f8f8f8), color-stop(100%, #f5f5f5)) !important;background-image:-webkit-linear-gradient(top, #f8f8f8, #f5f5f5) !important;background-image:-o-linear-gradient(top, #f8f8f8, #f5f5f5) !important;background-image:-linear-gradient(top, #f8f8f8, #f5f5f5) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f8f8f8', endColorstr='#f5f5f5', GradientType=0) !important;border-color:#ccc !important}.admin-color-midnight .ui-datepicker td .ui-state-active{color:black !important;font-weight:700 !important;background:white !important}.admin-color-midnight .redux-container-switch .cb-disable.selected{background-color:#646464 !important;background-image:-khtml-gradient(linear, left top, left bottom, from(#929292), to(#646464)) !important;background-image:-moz-linear-gradient(top, #929292, #646464) !important;background-image:-ms-linear-gradient(top, #929292, #646464) !important;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #929292), color-stop(100%, #646464)) !important;background-image:-webkit-linear-gradient(top, #929292, #646464) !important;background-image:-o-linear-gradient(top, #929292, #646464) !important;background-image:-linear-gradient(top, #929292, #646464) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#929292', endColorstr='#646464', GradientType=0) !important;border-color:#767676 !important}.admin-color-midnight .redux-container-switch .cb-enable.selected,.admin-color-midnight .redux-field-container .ui-buttonset .ui-state-active{background-color:#e14d43 !important;background-image:-khtml-gradient(linear, left top, left bottom, from(#e66a62), to(#e14d43)) !important;background-image:-moz-linear-gradient(top, #e66a62, #e14d43) !important;background-image:-ms-linear-gradient(top, #e66a62, #e14d43) !important;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #e66a62), color-stop(100%, #e14d43)) !important;background-image:-webkit-linear-gradient(top, #e66a62, #e14d43) !important;background-image:-o-linear-gradient(top, #e66a62, #e14d43) !important;background-image:-linear-gradient(top, #e66a62, #e14d43) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#e66a62', endColorstr='#e14d43', GradientType=0) !important;border-color:#ba281e !important;border-color:#d02c21 !important;-webkit-box-shadow:inset 0 1px 0 #ec8b85,0 1px 0 rgba(0,0,0,0.15) !important;box-shadow:inset 0 1px 0 #ec8b85,0 1px 0 rgba(0,0,0,0.15) !important}.admin-color-midnight #redux-header{background:#363b3f;border-color:#e14d43}.admin-color-midnight #redux-header .display_header span{color:#c2c4c5}.admin-color-midnight .redux-sidebar .redux-group-menu li.active.hasSubSections a{position:relative}.admin-color-midnight .redux-sidebar .redux-group-menu li.active.hasSubSections a:after{right:0;border:solid 8px transparent;content:"\0020";height:0;width:0;position:absolute;pointer-events:none;border-right-color:#fff;top:50%;margin-top:-8px}.admin-color-midnight .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a:after{border:0 none !important;content:"\0020" !important}.admin-color-midnight .redux-sidebar .redux-group-menu li.hasSubSections .redux-menu-error{display:none;margin-right:5px}.admin-color-midnight .redux-sidebar .redux-group-menu li.hasSubSections a.hasError .extraIconSubsections{background-color:#b94a48;color:#f2dede}.admin-color-midnight .redux-sidebar .redux-group-menu li.hasSubSections a .extraIconSubsections{border-radius:10px;-moz-border-radius:10px;-webkit-border-radius:10px;border:0 solid transparent;font-size:9px;height:9px;line-height:9px;margin-right:5px;padding:6px 7px 4px 7px;width:5px}.admin-color-midnight .redux-sidebar .redux-group-menu li.active a .extraIconSubsections,.admin-color-midnight .redux-sidebar .redux-group-menu li.activeChild a .extraIconSubsections{display:none}.admin-color-midnight .redux-sidebar .redux-group-menu li.active.hasSubSections .redux-menu-error,.admin-color-midnight .redux-sidebar .redux-group-menu li.activeChild.hasSubSections .redux-menu-error{display:block}.admin-color-midnight .redux-sidebar .redux-group-menu li.active.hasSubSections .subsection .redux-menu-error,.admin-color-midnight .redux-sidebar .redux-group-menu li.activeChild.hasSubSections .subsection .redux-menu-error{margin-right:2px}.admin-color-midnight .redux-sidebar .redux-group-menu li.active,.admin-color-midnight .redux-sidebar .redux-group-menu li.activeChild{border-left:0 none}.admin-color-midnight .redux-sidebar .redux-group-menu li.active a,.admin-color-midnight .redux-sidebar .redux-group-menu li.activeChild a{color:#363b3f}.admin-color-midnight .redux-sidebar .redux-group-menu li.active.hasSubSections .active a:after,.admin-color-midnight .redux-sidebar .redux-group-menu li.activeChild.hasSubSections .active a:after{right:0;border:solid 8px transparent;content:"\0020";height:0;width:0;position:absolute;pointer-events:none;border-right-color:#fff;top:50%;margin-top:-8px}.admin-color-midnight .redux-sidebar .redux-group-menu li.active.hasSubSections a,.admin-color-midnight .redux-sidebar .redux-group-menu li.activeChild.hasSubSections a{-webkit-transition:all 0.2s;-moz-transition:all 0.2s;transition:all 0.2s;color:#fff;width:auto;border-bottom:0}.admin-color-midnight .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li,.admin-color-midnight .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li{border-top:0 none !important}.admin-color-midnight .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li.active a:hover,.admin-color-midnight .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li.active a:hover{color:#fff}.admin-color-midnight .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a,.admin-color-midnight .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li a{width:auto;border-top:0 !important;padding:7px;color:#fff;padding-left:15px;-webkit-transition:all 0.2;-moz-transition:all 0.2;-ms-transition:all 0.2;-o-transition:all 0.2;transition:all 0.2}.admin-color-midnight .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a:hover,.admin-color-midnight .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li a:hover{color:#d92c23;background:#1e2124}.admin-color-midnight .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a span.group_title,.admin-color-midnight .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li a span.group_title{padding-left:5px !important}.admin-color-midnight .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li.hasIcon a,.admin-color-midnight .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li.hasIcon a{padding-left:14px}.admin-color-midnight .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li.hasIcon a span.group_title,.admin-color-midnight .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li.hasIcon a span.group_title{padding-left:30px !important}.admin-color-midnight .redux-sidebar .redux-group-menu li.active.hasSubSections a{background:#e14d43}.admin-color-midnight .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a{background:#363b3f}.admin-color-midnight .redux-sidebar .redux-group-menu li.activeChild.hasSubSections a{background:#c2c4c5;text-shadow:1px 1px #74787a}.admin-color-midnight .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li a{background:#363b3f;text-shadow:none}.admin-color-midnight .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li.active a{background:#e14d43;text-shadow:1px 1px #a4231a}.admin-color-midnight .redux-container-image_select .redux-image-select-selected img{border-color:#e14d43}.admin-color-midnight .redux-container-image_select .redux-image-select-selected .tiles{border-color:#e14d43}.admin-color-midnight #redux-footer #redux-share a{color:#e14d43}.admin-color-midnight #redux-footer #redux-share a:hover{color:#a4231a}.admin-color-midnight .select2-results .select2-highlighted{background:#e14d43}.admin-color-midnight .select2-drop-active,.admin-color-midnight .select2-container-multi.select2-container-active .select2-choices,.admin-color-midnight .select2-drop.select2-drop-above.select2-drop-active,.admin-color-midnight .select2-container-active .select2-choice,.admin-color-midnight .select2-container-active .select2-choices,.admin-color-midnight .select2-dropdown-open.select2-drop-above .select2-choice,.admin-color-midnight .select2-dropdown-open.select2-drop-above .select2-choices{border-color:#e14d43}.admin-color-midnight .select2-dropdown-open.select2-drop-above .select2-choice,.admin-color-midnight .select2-dropdown-open.select2-drop-above .select2-choices{border-top:inherit}.admin-color-midnight .noUi-connect{background-color:#e35950 !important;background-image:-khtml-gradient(linear, left top, left bottom, from(#e8776f), to(#e35950)) !important;background-image:-moz-linear-gradient(top, #e8776f, #e35950) !important;background-image:-ms-linear-gradient(top, #e8776f, #e35950) !important;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #e8776f), color-stop(100%, #e35950)) !important;background-image:-webkit-linear-gradient(top, #e8776f, #e35950) !important;background-image:-o-linear-gradient(top, #e8776f, #e35950) !important;background-image:-linear-gradient(top, #e8776f, #e35950) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#e8776f', endColorstr='#e35950', GradientType=0) !important}.admin-color-ocean .button.ui-datepicker-current,.admin-color-ocean button.ui-datepicker-close{background-color:#a7c0a9 !important}.admin-color-ocean .ui-datepicker-buttonpane button.ui-datepicker-current{background:#86a988 !important;color:white !important;border:1px solid #547555 !important}.admin-color-ocean .ui-datepicker-header .ui-icon{background-image:url(data:image/png;base64,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) !important}.admin-color-ocean .ui-datepicker-header{background-color:#627c83 !important;color:white !important}.admin-color-ocean .ui-datepicker td .ui-state-active{background-color:#a7c0a9 !important;color:white !important}.admin-color-ocean .ui-datepicker td .ui-state-hover{color:#a7c0a9 !important}.admin-color-ocean .ui-datepicker td .ui-state-highlight{background:#9ebaa0 !important;border:1px solid #627c83 !important;color:white !important}.admin-color-ocean .redux-container-switch .cb-disable,.admin-color-ocean .redux-container-switch .cb-enable,.admin-color-ocean .ui-state-default,.admin-color-ocean .ui-widget-content .ui-state-default,.admin-color-ocean .ui-widget-header .ui-state-default{background-color:#f5f5f5 !important;background-image:-khtml-gradient(linear, left top, left bottom, from(#f8f8f8), to(#f5f5f5)) !important;background-image:-moz-linear-gradient(top, #f8f8f8, #f5f5f5) !important;background-image:-ms-linear-gradient(top, #f8f8f8, #f5f5f5) !important;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f8f8f8), color-stop(100%, #f5f5f5)) !important;background-image:-webkit-linear-gradient(top, #f8f8f8, #f5f5f5) !important;background-image:-o-linear-gradient(top, #f8f8f8, #f5f5f5) !important;background-image:-linear-gradient(top, #f8f8f8, #f5f5f5) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f8f8f8', endColorstr='#f5f5f5', GradientType=0) !important;border-color:#ccc !important}.admin-color-ocean .ui-datepicker td .ui-state-active{color:black !important;font-weight:700 !important;background:white !important}.admin-color-ocean .redux-container-switch .cb-disable.selected{background-color:#646464 !important;background-image:-khtml-gradient(linear, left top, left bottom, from(#929292), to(#646464)) !important;background-image:-moz-linear-gradient(top, #929292, #646464) !important;background-image:-ms-linear-gradient(top, #929292, #646464) !important;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #929292), color-stop(100%, #646464)) !important;background-image:-webkit-linear-gradient(top, #929292, #646464) !important;background-image:-o-linear-gradient(top, #929292, #646464) !important;background-image:-linear-gradient(top, #929292, #646464) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#929292', endColorstr='#646464', GradientType=0) !important;border-color:#767676 !important}.admin-color-ocean .redux-container-switch .cb-enable.selected,.admin-color-ocean .redux-field-container .ui-buttonset .ui-state-active{background-color:#9ebaa0 !important;background-image:-khtml-gradient(linear, left top, left bottom, from(#b3c9b4), to(#9ebaa0)) !important;background-image:-moz-linear-gradient(top, #b3c9b4, #9ebaa0) !important;background-image:-ms-linear-gradient(top, #b3c9b4, #9ebaa0) !important;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #b3c9b4), color-stop(100%, #9ebaa0)) !important;background-image:-webkit-linear-gradient(top, #b3c9b4, #9ebaa0) !important;background-image:-o-linear-gradient(top, #b3c9b4, #9ebaa0) !important;background-image:-linear-gradient(top, #b3c9b4, #9ebaa0) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#b3c9b4', endColorstr='#9ebaa0', GradientType=0) !important;border-color:#719a74 !important;border-color:#80a583 !important;-webkit-box-shadow:inset 0 1px 0 #cbdacc,0 1px 0 rgba(0,0,0,0.15) !important;box-shadow:inset 0 1px 0 #cbdacc,0 1px 0 rgba(0,0,0,0.15) !important}.admin-color-ocean #redux-header{background:#627c83;border-color:#9ebaa0}.admin-color-ocean #redux-header .display_header span{color:#d5dddf}.admin-color-ocean .redux-sidebar .redux-group-menu li.active.hasSubSections a{position:relative}.admin-color-ocean .redux-sidebar .redux-group-menu li.active.hasSubSections a:after{right:0;border:solid 8px transparent;content:"\0020";height:0;width:0;position:absolute;pointer-events:none;border-right-color:#fff;top:50%;margin-top:-8px}.admin-color-ocean .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a:after{border:0 none !important;content:"\0020" !important}.admin-color-ocean .redux-sidebar .redux-group-menu li.hasSubSections .redux-menu-error{display:none;margin-right:5px}.admin-color-ocean .redux-sidebar .redux-group-menu li.hasSubSections a.hasError .extraIconSubsections{background-color:#b94a48;color:#f2dede}.admin-color-ocean .redux-sidebar .redux-group-menu li.hasSubSections a .extraIconSubsections{border-radius:10px;-moz-border-radius:10px;-webkit-border-radius:10px;border:0 solid transparent;font-size:9px;height:9px;line-height:9px;margin-right:5px;padding:6px 7px 4px 7px;width:5px}.admin-color-ocean .redux-sidebar .redux-group-menu li.active a .extraIconSubsections,.admin-color-ocean .redux-sidebar .redux-group-menu li.activeChild a .extraIconSubsections{display:none}.admin-color-ocean .redux-sidebar .redux-group-menu li.active.hasSubSections .redux-menu-error,.admin-color-ocean .redux-sidebar .redux-group-menu li.activeChild.hasSubSections .redux-menu-error{display:block}.admin-color-ocean .redux-sidebar .redux-group-menu li.active.hasSubSections .subsection .redux-menu-error,.admin-color-ocean .redux-sidebar .redux-group-menu li.activeChild.hasSubSections .subsection .redux-menu-error{margin-right:2px}.admin-color-ocean .redux-sidebar .redux-group-menu li.active,.admin-color-ocean .redux-sidebar .redux-group-menu li.activeChild{border-left:0 none}.admin-color-ocean .redux-sidebar .redux-group-menu li.active a,.admin-color-ocean .redux-sidebar .redux-group-menu li.activeChild a{color:#627c83}.admin-color-ocean .redux-sidebar .redux-group-menu li.active.hasSubSections .active a:after,.admin-color-ocean .redux-sidebar .redux-group-menu li.activeChild.hasSubSections .active a:after{right:0;border:solid 8px transparent;content:"\0020";height:0;width:0;position:absolute;pointer-events:none;border-right-color:#fff;top:50%;margin-top:-8px}.admin-color-ocean .redux-sidebar .redux-group-menu li.active.hasSubSections a,.admin-color-ocean .redux-sidebar .redux-group-menu li.activeChild.hasSubSections a{-webkit-transition:all 0.2s;-moz-transition:all 0.2s;transition:all 0.2s;color:#fff;width:auto;border-bottom:0}.admin-color-ocean .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li,.admin-color-ocean .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li{border-top:0 none !important}.admin-color-ocean .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li.active a:hover,.admin-color-ocean .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li.active a:hover{color:#fff}.admin-color-ocean .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a,.admin-color-ocean .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li a{width:auto;border-top:0 !important;padding:7px;color:#fff;padding-left:15px;-webkit-transition:all 0.2;-moz-transition:all 0.2;-ms-transition:all 0.2;-o-transition:all 0.2;transition:all 0.2}.admin-color-ocean .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a:hover,.admin-color-ocean .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li a:hover{color:#86a988;background:#4c6066}.admin-color-ocean .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a span.group_title,.admin-color-ocean .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li a span.group_title{padding-left:5px !important}.admin-color-ocean .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li.hasIcon a,.admin-color-ocean .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li.hasIcon a{padding-left:14px}.admin-color-ocean .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li.hasIcon a span.group_title,.admin-color-ocean .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li.hasIcon a span.group_title{padding-left:30px !important}.admin-color-ocean .redux-sidebar .redux-group-menu li.active.hasSubSections a{background:#9ebaa0}.admin-color-ocean .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a{background:#627c83}.admin-color-ocean .redux-sidebar .redux-group-menu li.activeChild.hasSubSections a{background:#d5dddf;text-shadow:1px 1px #7e979d}.admin-color-ocean .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li a{background:#627c83;text-shadow:none}.admin-color-ocean .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li.active a{background:#9ebaa0;text-shadow:1px 1px #658d68}.admin-color-ocean .redux-container-image_select .redux-image-select-selected img{border-color:#9ebaa0}.admin-color-ocean .redux-container-image_select .redux-image-select-selected .tiles{border-color:#9ebaa0}.admin-color-ocean #redux-footer #redux-share a{color:#9ebaa0}.admin-color-ocean #redux-footer #redux-share a:hover{color:#658d68}.admin-color-ocean .select2-results .select2-highlighted{background:#9ebaa0}.admin-color-ocean .select2-drop-active,.admin-color-ocean .select2-container-multi.select2-container-active .select2-choices,.admin-color-ocean .select2-drop.select2-drop-above.select2-drop-active,.admin-color-ocean .select2-container-active .select2-choice,.admin-color-ocean .select2-container-active .select2-choices,.admin-color-ocean .select2-dropdown-open.select2-drop-above .select2-choice,.admin-color-ocean .select2-dropdown-open.select2-drop-above .select2-choices{border-color:#9ebaa0}.admin-color-ocean .select2-dropdown-open.select2-drop-above .select2-choice,.admin-color-ocean .select2-dropdown-open.select2-drop-above .select2-choices{border-top:inherit}.admin-color-ocean .noUi-connect{background-color:#a7c0a9 !important;background-image:-khtml-gradient(linear, left top, left bottom, from(#bccfbd), to(#a7c0a9)) !important;background-image:-moz-linear-gradient(top, #bccfbd, #a7c0a9) !important;background-image:-ms-linear-gradient(top, #bccfbd, #a7c0a9) !important;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #bccfbd), color-stop(100%, #a7c0a9)) !important;background-image:-webkit-linear-gradient(top, #bccfbd, #a7c0a9) !important;background-image:-o-linear-gradient(top, #bccfbd, #a7c0a9) !important;background-image:-linear-gradient(top, #bccfbd, #a7c0a9) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#bccfbd', endColorstr='#a7c0a9', GradientType=0) !important}.admin-color-sunrise .button.ui-datepicker-current,.admin-color-sunrise button.ui-datepicker-close{background-color:#df8a48 !important}.admin-color-sunrise .ui-datepicker-buttonpane button.ui-datepicker-current{background:#cc6c23 !important;color:white !important;border:1px solid #753e14 !important}.admin-color-sunrise .ui-datepicker-header .ui-icon{background-image:url(data:image/png;base64,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) !important}.admin-color-sunrise .ui-datepicker-header{background-color:#b43c38 !important;color:white !important}.admin-color-sunrise .ui-datepicker td .ui-state-active{background-color:#df8a48 !important;color:white !important}.admin-color-sunrise .ui-datepicker td .ui-state-hover{color:#df8a48 !important}.admin-color-sunrise .ui-datepicker td .ui-state-highlight{background:#dd823b !important;border:1px solid #b43c38 !important;color:white !important}.admin-color-sunrise .redux-container-switch .cb-disable,.admin-color-sunrise .redux-container-switch .cb-enable,.admin-color-sunrise .ui-state-default,.admin-color-sunrise .ui-widget-content .ui-state-default,.admin-color-sunrise .ui-widget-header .ui-state-default{background-color:#f5f5f5 !important;background-image:-khtml-gradient(linear, left top, left bottom, from(#f8f8f8), to(#f5f5f5)) !important;background-image:-moz-linear-gradient(top, #f8f8f8, #f5f5f5) !important;background-image:-ms-linear-gradient(top, #f8f8f8, #f5f5f5) !important;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #f8f8f8), color-stop(100%, #f5f5f5)) !important;background-image:-webkit-linear-gradient(top, #f8f8f8, #f5f5f5) !important;background-image:-o-linear-gradient(top, #f8f8f8, #f5f5f5) !important;background-image:-linear-gradient(top, #f8f8f8, #f5f5f5) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f8f8f8', endColorstr='#f5f5f5', GradientType=0) !important;border-color:#ccc !important}.admin-color-sunrise .ui-datepicker td .ui-state-active{color:black !important;font-weight:700 !important;background:white !important}.admin-color-sunrise .redux-container-switch .cb-disable.selected{background-color:#646464 !important;background-image:-khtml-gradient(linear, left top, left bottom, from(#929292), to(#646464)) !important;background-image:-moz-linear-gradient(top, #929292, #646464) !important;background-image:-ms-linear-gradient(top, #929292, #646464) !important;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #929292), color-stop(100%, #646464)) !important;background-image:-webkit-linear-gradient(top, #929292, #646464) !important;background-image:-o-linear-gradient(top, #929292, #646464) !important;background-image:-linear-gradient(top, #929292, #646464) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#929292', endColorstr='#646464', GradientType=0) !important;border-color:#767676 !important}.admin-color-sunrise .redux-container-switch .cb-enable.selected,.admin-color-sunrise .redux-field-container .ui-buttonset .ui-state-active{background-color:#dd823b !important;background-image:-khtml-gradient(linear, left top, left bottom, from(#e29559), to(#dd823b)) !important;background-image:-moz-linear-gradient(top, #e29559, #dd823b) !important;background-image:-ms-linear-gradient(top, #e29559, #dd823b) !important;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #e29559), color-stop(100%, #dd823b)) !important;background-image:-webkit-linear-gradient(top, #e29559, #dd823b) !important;background-image:-o-linear-gradient(top, #e29559, #dd823b) !important;background-image:-linear-gradient(top, #e29559, #dd823b) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#e29559', endColorstr='#dd823b', GradientType=0) !important;border-color:#ad5d1e !important;border-color:#c36922 !important;-webkit-box-shadow:inset 0 1px 0 #e8ac7c,0 1px 0 rgba(0,0,0,0.15) !important;box-shadow:inset 0 1px 0 #e8ac7c,0 1px 0 rgba(0,0,0,0.15) !important}.admin-color-sunrise #redux-header{background:#b43c38;border-color:#dd823b}.admin-color-sunrise #redux-header .display_header span{color:#f0c8c6}.admin-color-sunrise .redux-sidebar .redux-group-menu li.active.hasSubSections a{position:relative}.admin-color-sunrise .redux-sidebar .redux-group-menu li.active.hasSubSections a:after{right:0;border:solid 8px transparent;content:"\0020";height:0;width:0;position:absolute;pointer-events:none;border-right-color:#fff;top:50%;margin-top:-8px}.admin-color-sunrise .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a:after{border:0 none !important;content:"\0020" !important}.admin-color-sunrise .redux-sidebar .redux-group-menu li.hasSubSections .redux-menu-error{display:none;margin-right:5px}.admin-color-sunrise .redux-sidebar .redux-group-menu li.hasSubSections a.hasError .extraIconSubsections{background-color:#b94a48;color:#f2dede}.admin-color-sunrise .redux-sidebar .redux-group-menu li.hasSubSections a .extraIconSubsections{border-radius:10px;-moz-border-radius:10px;-webkit-border-radius:10px;border:0 solid transparent;font-size:9px;height:9px;line-height:9px;margin-right:5px;padding:6px 7px 4px 7px;width:5px}.admin-color-sunrise .redux-sidebar .redux-group-menu li.active a .extraIconSubsections,.admin-color-sunrise .redux-sidebar .redux-group-menu li.activeChild a .extraIconSubsections{display:none}.admin-color-sunrise .redux-sidebar .redux-group-menu li.active.hasSubSections .redux-menu-error,.admin-color-sunrise .redux-sidebar .redux-group-menu li.activeChild.hasSubSections .redux-menu-error{display:block}.admin-color-sunrise .redux-sidebar .redux-group-menu li.active.hasSubSections .subsection .redux-menu-error,.admin-color-sunrise .redux-sidebar .redux-group-menu li.activeChild.hasSubSections .subsection .redux-menu-error{margin-right:2px}.admin-color-sunrise .redux-sidebar .redux-group-menu li.active,.admin-color-sunrise .redux-sidebar .redux-group-menu li.activeChild{border-left:0 none}.admin-color-sunrise .redux-sidebar .redux-group-menu li.active a,.admin-color-sunrise .redux-sidebar .redux-group-menu li.activeChild a{color:#b43c38}.admin-color-sunrise .redux-sidebar .redux-group-menu li.active.hasSubSections .active a:after,.admin-color-sunrise .redux-sidebar .redux-group-menu li.activeChild.hasSubSections .active a:after{right:0;border:solid 8px transparent;content:"\0020";height:0;width:0;position:absolute;pointer-events:none;border-right-color:#fff;top:50%;margin-top:-8px}.admin-color-sunrise .redux-sidebar .redux-group-menu li.active.hasSubSections a,.admin-color-sunrise .redux-sidebar .redux-group-menu li.activeChild.hasSubSections a{-webkit-transition:all 0.2s;-moz-transition:all 0.2s;transition:all 0.2s;color:#fff;width:auto;border-bottom:0}.admin-color-sunrise .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li,.admin-color-sunrise .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li{border-top:0 none !important}.admin-color-sunrise .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li.active a:hover,.admin-color-sunrise .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li.active a:hover{color:#fff}.admin-color-sunrise .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a,.admin-color-sunrise .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li a{width:auto;border-top:0 !important;padding:7px;color:#fff;padding-left:15px;-webkit-transition:all 0.2;-moz-transition:all 0.2;-ms-transition:all 0.2;-o-transition:all 0.2;transition:all 0.2}.admin-color-sunrise .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a:hover,.admin-color-sunrise .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li a:hover{color:#cc6c23;background:#8d2f2c}.admin-color-sunrise .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a span.group_title,.admin-color-sunrise .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li a span.group_title{padding-left:5px !important}.admin-color-sunrise .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li.hasIcon a,.admin-color-sunrise .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li.hasIcon a{padding-left:14px}.admin-color-sunrise .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li.hasIcon a span.group_title,.admin-color-sunrise .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li.hasIcon a span.group_title{padding-left:30px !important}.admin-color-sunrise .redux-sidebar .redux-group-menu li.active.hasSubSections a{background:#dd823b}.admin-color-sunrise .redux-sidebar .redux-group-menu li.active.hasSubSections ul.subsection li a{background:#b43c38}.admin-color-sunrise .redux-sidebar .redux-group-menu li.activeChild.hasSubSections a{background:#f0c8c6;text-shadow:1px 1px #d0534d}.admin-color-sunrise .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li a{background:#b43c38;text-shadow:none}.admin-color-sunrise .redux-sidebar .redux-group-menu li.activeChild.hasSubSections ul.subsection li.active a{background:#dd823b;text-shadow:1px 1px #98511a}.admin-color-sunrise .redux-container-image_select .redux-image-select-selected img{border-color:#dd823b}.admin-color-sunrise .redux-container-image_select .redux-image-select-selected .tiles{border-color:#dd823b}.admin-color-sunrise #redux-footer #redux-share a{color:#dd823b}.admin-color-sunrise #redux-footer #redux-share a:hover{color:#98511a}.admin-color-sunrise .select2-results .select2-highlighted{background:#dd823b}.admin-color-sunrise .select2-drop-active,.admin-color-sunrise .select2-container-multi.select2-container-active .select2-choices,.admin-color-sunrise .select2-drop.select2-drop-above.select2-drop-active,.admin-color-sunrise .select2-container-active .select2-choice,.admin-color-sunrise .select2-container-active .select2-choices,.admin-color-sunrise .select2-dropdown-open.select2-drop-above .select2-choice,.admin-color-sunrise .select2-dropdown-open.select2-drop-above .select2-choices{border-color:#dd823b}.admin-color-sunrise .select2-dropdown-open.select2-drop-above .select2-choice,.admin-color-sunrise .select2-dropdown-open.select2-drop-above .select2-choices{border-top:inherit}.admin-color-sunrise .noUi-connect{background-color:#df8a48 !important;background-image:-khtml-gradient(linear, left top, left bottom, from(#e59e66), to(#df8a48)) !important;background-image:-moz-linear-gradient(top, #e59e66, #df8a48) !important;background-image:-ms-linear-gradient(top, #e59e66, #df8a48) !important;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #e59e66), color-stop(100%, #df8a48)) !important;background-image:-webkit-linear-gradient(top, #e59e66, #df8a48) !important;background-image:-o-linear-gradient(top, #e59e66, #df8a48) !important;background-image:-linear-gradient(top, #e59e66, #df8a48) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#e59e66', endColorstr='#df8a48', GradientType=0) !important}@media screen and (max-width: 600px){.redux-group-tab-link-a{min-height:15px}.redux-group-tab-link-a span{padding:11px 12px;color:#555;-webkit-transition:all 0.3s;-moz-transition:all 0.3s;transition:all 0.3s;text-shadow:none !important}.redux-group-tab-link-a span:hover{background:#e5e5e5}}@media screen and (max-width: 782px){#redux-footer #redux-share{line-height:38px;font-size:18px}.sticky-save-warn .redux-save-warn{right:13px;top:46px}.redux-container .expand_options{margin-top:5px}.redux-action_bar input{margin-bottom:0 !important}}@media screen and (max-width: 600px){#redux-footer #redux-share,.redux-hint-qtip{display:none}.redux-container .redux-action_bar{float:none}}.redux-sidebar .icon-large,.redux-main .icon-large{background-image:inherit !important;width:inherit;height:inherit}.redux-main dd,.redux-main li,.redux-sidebar li{margin-bottom:0 !important}.fully-expanded .redux-sidebar{margin-left:-500px}.fully-expanded .redux-main{margin-left:0}.fully-expanded .redux-group-tab{display:block}@media screen and (max-width: 640px){#redux-defaults-section{display:none}}@media screen and (max-width: 730px){#redux-share{display:none}}@media screen and (max-width: 730px){#redux-defaults-section2{display:none}#redux-share{display:none}}@media screen and (max-width: 600px){.form-table>tbody>tr>th{padding-bottom:0 !important}.redux_field_th{padding-top:0;padding-bottom:0}.redux-container .redux-main{margin-left:44px}.redux-main .redux-field-container{padding-top:0;padding-bottom:0}.redux-main .subsection a{min-height:15px}}@media screen and (min-width: 601px) and (max-width: 782px){.redux-container .sticky-save-warn .redux-save-warn{top:47px !important;right:13px !important}}@media screen and (max-width: 782px){.redux-main .form-table-section-indented input[type=text]{width:95% !important}.redux-main .redux-container-sortable input[type=text]{width:80%;display:initial}.redux-main .redux-typography-container .input_wrapper input.mini{font-size:16px !important;height:40px !important;padding:7px 10px !important;line-height:24px !important}.redux-main .redux-typography-container .picker-wrapper label{margin-top:16px !important}.redux-main .input-append{height:50px !important}.redux-main .input-append .add-on{font-size:16px;line-height:24px !important;padding:7px;height:32px !important;float:right;margin-top:-40px}.redux-main .redux-hint-qtip{float:left !important}.redux-main .redux-action_bar .button{margin-top:-1px}}@media screen and (max-width: 600px){.sticky-save-warn .redux-save-warn{top:0 !important;right:14px !important}}@media screen and (max-width: 570px){.redux-main .redux-container-sortable .checkbox-container{width:85%;padding-bottom:5px}.redux-main .redux-container-sortable .checkbox-container label{display:initial}}#redux-header{position:relative}.redux-main{position:relative}.redux-main #redux-sticky{min-height:32px;margin-left:-20px;margin-right:-20px;margin-top:-10px;margin-bottom:8px}.redux-main #redux-sticky #info_bar{height:32px}.redux-main #redux-sticky #info_bar .expand_options{margin-top:4px}.redux-main .redux_field_search{top:50px;right:5px}.redux-main #redux-footer-sticky{margin-left:-20px;margin-right:-20px;margin-bottom:-10px}.redux-qtip{z-index:999999 !important} diff --git a/redux/ReduxCore/assets/css/redux-admin.css.map b/redux/ReduxCore/assets/css/redux-admin.css.map new file mode 100644 index 0000000..a53e5b3 --- /dev/null +++ b/redux/ReduxCore/assets/css/redux-admin.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "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", +"sources": ["redux-admin.scss"], +"names": [], +"file": "redux-admin.css" +} \ No newline at end of file diff --git a/redux/ReduxCore/assets/css/redux-admin.scss b/redux/ReduxCore/assets/css/redux-admin.scss new file mode 100644 index 0000000..494cbb7 --- /dev/null +++ b/redux/ReduxCore/assets/css/redux-admin.scss @@ -0,0 +1,1530 @@ +.spinner { + visibility: hidden; + display: block; +} +.spinner.is-active{ + visibility: visible; +} + +.redux-main .description { + margin-top: 7px; +} + + + +.redux-container { + .form-table > tbody > tr > th { + width: 30% + } + .form-table th, + .form-table td { + margin: 0; + padding: 0; + width: auto; + } + + .redux_field_th { + font-weight: 600; + // width: 30%; + padding: 20px 10px 20px 0px; + display: block; + span:first-child { + font-weight: normal; + display: block; + color: #666; + } + } + #ui-datepicker-div { + display: none; + } + //font-family: "Open Sans","Lucida Grande", Sans-serif; + background-color: #f5f5f5; /* Old browsers */ + background-repeat: repeat-x; /* Repeat the gradient */ + background-image: -moz-linear-gradient(top, #f2f2f2 0%, #f5f5f5 100%); /* FF3.6+ */ + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #f2f2f2), color-stop(100%, #f5f5f5)); /* Chrome,Safari4+ */ + background-image: -webkit-linear-gradient(top, #f2f2f2 0%, #f5f5f5 100%); /* Chrome 10+,Safari 5.1+ */ + background-image: -ms-linear-gradient(top, #f2f2f2 0%, #f5f5f5 100%); /* IE10+ */ + background-image: -o-linear-gradient(top, #f2f2f2 0%, #f5f5f5 100%); /* Opera 11.10+ */ + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#eeeeee', GradientType=0); /* IE6-9 */ + background-image: -linear-gradient(top, #f2f2f2 0%, #f5f5f5 100%); /* W3C */ + border: 1px solid #dedede; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .04); + box-shadow: 0 1px 1px rgba(0, 0, 0, .04); + -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4); + margin-top: 5px; + overflow: hidden; + + a { + &:focus { + box-shadow: none; + } + } + + #redux-header, + #redux-footer { + text-align: right; + padding: 6px 10px; + } + + #redux-header { + background: #f1f1f1; + border-bottom: 3px solid blue; + + .display_header { + float: left; + margin: 20px 10px; + + h2 { + display: inline-block; + font-style: normal; + padding-right: 5px; + } + + .redux-dev-mode-notice-container { + position: absolute; + top: 67px; + left: 20px; + bottom: auto; + width: auto; + } + + span { + color: #888; + + &.redux-dev-mode-notice { + //position: absolute; + background-color: #f0ad4e; + display: inline; + padding: .2em .5em .2em; + font-weight: 700; + line-height: 1; + color: #fff !important; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: .25em; + } + } + } + + .icon32 { + float: right; + margin: 16px 16px 0; + } + } + + #redux-footer { + border-top: 1px solid #E7E7E7; + z-index: 999; + + #redux-share { + float: left; + line-height: 28px; + font-size: 15px; + + a { + text-decoration: none; + margin-right: 10px; + + img { + margin-bottom: -3px; + } + } + } + } + + .notice-green { + margin: 0; + border-bottom: 1px solid #E7E7E7; + background-color: #DFF0D8; + color: #468847; + padding: 8px 35px 8px 14px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + } + + .notice-blue { + margin: 0; + border-bottom: 1px solid #BCE8F1; + background-color: #D9EDF7; + color: #3A87AD; + padding: 8px 35px 8px 14px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + } + + .notice-yellow { + margin: 0; + border-bottom: 1px solid #E7E7E7; + background-color: #FCF8E3; + color: #C09853; + padding: 8px 35px 8px 14px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + } + + .notice-red, + .redux-field-errors { + margin: 0; + border-bottom: 1px solid #E7E7E7; + background-color: #F2DEDE; + color: #B94A48; + padding: 8px 35px 8px 14px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + } + + .redux-field-error { + input, textarea, checkbox { + background-color: #FFF6F6; + color: #A00; + } + + } + .redux-field-warning { + input, textarea, checkbox { + background-color: #fcf8e3; + color: #444; + } + } + + .redux-field-errors, + .redux-field-warnings, + .redux-save-warn { + display: none; + } + + .sticky-save-warn { + min-height: 76px; + + .redux-save-warn { + position: fixed; + top: 32px; + right: 21px; + left: 183px; + opacity: 1; + z-index: 9999; + } + } + + #info_bar { + background: #f3f3f3; + border-bottom: 1px solid #dedede; + padding: 6px 10px 6px 6px; + text-align: right; + -moz-box-shadow: inset 0 1px 0 #fcfcfc; + -webkit-box-shadow: inset 0 1px 0 #fcfcfc; + box-shadow: inset 0 1px 0 #fcfcfc; + } + + .redux-group-tab { + display: none; + margin-bottom: 15px; + + .redux-theme-data { + padding: 20px 0; + border-top: 1px solid #E7E7E7; + + &.theme-description { + padding: 10px 0; + border-width: 0; + } + + &.theme-uri, + &.theme-author, + &.theme-version { + padding: 0; + border-width: 0; + } + } + + h3 { + margin-top: 0; + line-height: 2em; + border-bottom: 1px solid #E7E7E7; + } + + .redux-section-desc { + margin-bottom: 15px; + color: #666; + } + } + + .redux-action_bar { + float: right; + .spinner { + float: left; + margin-top: 4px; + } + } + + .redux-ajax-loading { + display: none; + background: red url(data:image/gif;base64,R0lGODlhEAAQAPUAAIiIiIqKio2NjZSUlJqamp6enqKioqSkpK+vr7i4uL+/v8PDw8XFxcnJyc/Pz9HR0dTU1NjY2Nzc3OLi4ubm5unp6ezs7PPz88vLy83NzdDQ0NXV1d3d3eHh4bu7u8zMzOvr6+3t7ZiYmNbW1sDAwMTExNra2s7OztPT09vb2+Xl5QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/i1NYWRlIGJ5IEtyYXNpbWlyYSBOZWpjaGV2YSAod3d3LmxvYWRpbmZvLm5ldCkAIfkEAAoA/wAsAAAAABAAEAAABXDgJY6XZZEoOTnOlI5WdUFNA5UnSR3FJNUSieFAIUUEgcdl4noEBBGSZaHIiSqKhTX2GhVFiQGjuxgkSoYAoosAGE6RhKQrUURHlS+pItMVCHMjEgQ9JBJISg+JT3ciFg4NFkcCNw0OViiDgF0oTC8hACH5BAAKAP8ALAAAAAAQABAAAAVx4CWOZGle1qJYp2hV1xYE29V1JXUYHWUcnQgGwyFFBAENiqUZ1kapFamTyeBcsNOLMkoMGC3GIIEyBBAtRMDAiiSKp04iQqpwc9kRpUCAizgEBVciEQNJFxpKGgECdFAYYBsCAjUMGS0XgAODmDacIyEAIfkEAAoA/wAsAAAAABAAEAAABnbAi3BILBovIMUidBSGQJdNIKBBMomUg6FDMRgoHcOBQowIqNaLJiCIEEMLxdWpnIfITRAHnxgwjiEfDR8UIQYBCEcgDYwdUR6ORxEfG3MgeFiFRB0FBBxEHAQFkUJmaBofamxuRB9/GwICGxeMTRehnrabpERBACH5BAAKAP8ALAAAAAAQABAAAAZ9wItwSCwaL5aFwnIUWiqXUSAwulSYRMrB0KEYDJSO4UAhRgQBDZLpCAgixOSSWFEssEho81IWJgYMTQwDCUgGAQhNCAEGTCMJHU0dCXBDFX1DFhwdeHwFIhxmGBihQxEDaRcOGhYao1WZGIFnAiMUDg6YRR0ioE57Fx2RRkEAIfkEAAoA/wAsAAAAABAAEAAABXLgJY5kaV7WolinaLGQEEBXxZLUUUyUYVATw4FCisg0NZYmIIiQUosKqaJY3FDS1oUoSgwYrcUggTIAEC1EwMCKJCatSYI2qnBx2dGkQOCQOAQFdxdGARoVGhCITE4kGBgWEI8QFgwYWhGTWiMWERFXIyEAIfkEAAoA/wAsAAAAABAAEAAABn/Ai3BILBovloXCchRaKpdRIDC6VJhEysHQoRgMlI7hQCFGBAENkukICCLE5JJYUSywSGjzUhYmBgxNDAMJSAYBCE0IAAZMEQkdTRwKVUMcHHhCFXpDERgYcJYEBZFDI58aFhoOFxpuoUIUGhoUZwJVGA6ZaxccBAQce0QdpUVBACH5BAAKAP8ALAAAAAAQABAAAAZ8wItwSCwaLyEFKXQUhioXSCAAuVSYRMrB0KEYDJSO4UAhmgQBDZKpCQhMxFBJgRVWlFkOtElhUj4NH3VEJQMJFx0NintFCAEGISEQH3BHHR5VThVlRRSMQh0FBBxEHAQFnEJnaRcfHxdtb0WKIWcCVSUNTYgEo7tEHR1HQQAh+QQACgD/ACwAAAAAEAAQAAAGdcCLcEgsGi8hhSJ0FHY6l1EgMLqAmEROo5HqGAwqL5g42qKsoAsqIEgRVacTdAhSLLBI1bWpwiYGDE0MAwlIBgEITQgBBkwjCRxNHQlVdCpGekUqBQSRQxwEBZdDKQIBZ3FqbG5EDYEjpikhW3hFoJ1NRU9HQQA7) no-repeat; + width: 16px; + height: 16px; + margin: 3px 4px 0; + float: right; + } + + #redux-intro-text { + background: #f3f3f3; + border-bottom: 1px solid #dedede; + -moz-box-shadow: inset 0 1px 0 #fcfcfc; + -webkit-box-shadow: inset 0 1px 0 #fcfcfc; + box-shadow: inset 0 1px 0 #fcfcfc; + padding: 3px; + padding: 10px 10px; + + p { + margin: 0; + font-family: "Lucida Grande", Sans-serif; + color: #888; + } + } + + .expand_options { + cursor: pointer; + display: block; + height: 22px; + width: 21px; + float: left; + font-size: 0; + text-indent: -9999px; + margin: 1px 0 0 5px; + border: 1px solid #bbb; + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + border-radius: 2px; + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAyCAIAAAAm4OfBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAQhJREFUeNrslT0KhDAQhTeLR7ATT6IXSKGFYO0lciFrO1N4AU8TLNXKv0CaJbLJRAZxl1hYyJuXN+PoR/Z9fyFdBNNr27Zf8Oq6bhgGSGUYhpTSzyeBNi8hRFVVEK+6rrXaQFOs6yrvTdOYjcqyVEpTLqXI89yaSypBudq2xckF2TipOSvfmmhZFuAGnJV6Licvey5gj7fnwpwXvEfLfqnT0jQ1OBJCQLnUBvZ9b85VFAV076UU8g1ZckVRxBiDzD6OY62WzPOM9i+cpunvvcZxfCQfPWs9a91Ym2UZ5xyHtd/e8hXWng+/zlrD9jmz1tDj7bkw5wXv0Y210itJEs9az9oHsPYQYACveK0/IuB51AAAAABJRU5ErkJggg==) no-repeat -2px -26px; + + &.expanded { + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAyCAIAAAAm4OfBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAQhJREFUeNrslT0KhDAQhTeLR7ATT6IXSKGFYO0lciFrO1N4AU8TLNXKv0CaJbLJRAZxl1hYyJuXN+PoR/Z9fyFdBNNr27Zf8Oq6bhgGSGUYhpTSzyeBNi8hRFVVEK+6rrXaQFOs6yrvTdOYjcqyVEpTLqXI89yaSypBudq2xckF2TipOSvfmmhZFuAGnJV6Licvey5gj7fnwpwXvEfLfqnT0jQ1OBJCQLnUBvZ9b85VFAV076UU8g1ZckVRxBiDzD6OY62WzPOM9i+cpunvvcZxfCQfPWs9a91Ym2UZ5xyHtd/e8hXWng+/zlrD9jmz1tDj7bkw5wXv0Y210itJEs9az9oHsPYQYACveK0/IuB51AAAAABJRU5ErkJggg==) no-repeat -2px -1px + } + + &:hover { + border-color: #888; + } + } + + .sticky-footer-fixed { + background: #f3f3f3; + border-top: 1px solid #dedede !important; + -moz-box-shadow: inset 0 1px 0 #fcfcfc; + -webkit-box-shadow: inset 0 1px 0 #fcfcfc; + box-shadow: inset 0 1px 0 #fcfcfc; + } + + .redux-sidebar, + .redux-main { + min-height: 300px; + + } + .redux-main { + background: #FCFCFC; + margin-left: 201px; + border-left: 1px solid #D8D8D8; + padding: 10px 20px; + -moz-box-shadow: inset 0 1px 0 #fff; + -webkit-box-shadow: inset 0 1px 0 #FFF; + box-shadow: inset 0 1px 0 #FFF; + position: relative; + #redux_ajax_overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + -moz-opacity: 0.10; + -khtml-opacity: 0.10; + opacity: 0.10; + filter: progid:DXImageTransform.Microsoft.Alpha(opacity=10); + filter: alpha(opacity=10); + background: #000; + z-index: 200; + display: none; + } + .form-table.no-border { + border-top: none; + } + .form-table tr { + border-bottom: 1px solid #E7E7E7; + &:last-child { + border-bottom: none !important; + } + th, + td { + color: #333; + } + } + + .form-table tr td { + table.mceLayout, + table.mceLayout tr, + table.mceLayout tr td { + padding: 0; + border-width: 0; + } + + .redux-th-warning { + font-size: 1em; + color: #C09853; + font-weight: normal; + display: block; + margin-top: 10px; + } + + .redux-field-warning { + border-color: #C09853; + margin-top: 10px; + } + + .redux-th-error { + font-size: 1em; + color: #B94A48; + font-weight: normal; + display: block; + margin-top: 10px; + } + } + + input.large-text { + width: 100%; + } + + .hide { + display: none; + } + + .redux-field-container { + padding: 20px 0; + } + + .mini, + input[type=text].mini { + width: 60px; + text-align: center; + } + + input { + line-height: 19px; + } + + img { + max-width: 100%; + height: auto; + width: auto !important; + } + + .select2-default { + width: auto !important; + } + + .showDefaults { + display: block; + font-weight: normal; + font-size: .8em; + color: #888; + } + + span.description { + display: block; + font-style: normal; + font-weight: 400; + } + + #redux-system-info textarea { + min-height: 730px; + width: 100%; + } + + .field-desc { + clear: both; + font-size: 13px; + } + + .data-full li { + width: 100%; + } + + .data-half li { + width: 50%; + float: left; + } + + .data-third li { + width: 33.3%; + float: left; + } + + .data-quarter li { + width: 25%; + float: left; + } + + .ui-helper-hidden-accessible { + top: inherit; + } + + .form-table:first-child > tr th, .redux-main .form-table:first-child > tr td { + //padding-top: 0 !important; + } + + .form-table { + clear: none; + margin-top: 0px !important; + + &:first-child tr th, + &:first-child tr td { + // padding-top: 0 !important; + } + + tr:first-child th, + tr:first-child td { + padding-top: 0; + } + } + + .input-append input { + border-right: 0; + margin-bottom: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 0; + margin-right: 0; + float: left; + margin-top: 0; + display: block; + } + .input-append .add-on { + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; + margin-left: -2px; + padding-top: 4px !important; + padding-bottom: 2px !important; + //float: left; + } + .input-prepend input { + border-left: 0; + margin-bottom: 0; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + margin-left: 0; + padding-top: 2px; + padding-bottom: 5px; + float: left; + margin-top: 0; + display: block; + } + .input-prepend .add-on { + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; + float: left; + } + + .input-append { + margin-right: 10px; + font-size: 0; + white-space: nowrap; + float: left; + display: inline-block; + margin-bottom: 6px; + } + .input-append .add-on, .input-prepend .add-on { + width: auto; + display: inline-block; + min-width: 16px; + padding: 3px 4px; + font-size: 12px; + font-weight: 400; + line-height: 20px; + text-align: center; + text-shadow: 0 1px 0 #ffffff; + background-color: #eeeeee; + border: 1px solid #cccccc; + } + .input-prepend { + font-size: 0; + white-space: nowrap; + float: left; + display: inline-block; + margin-bottom: 6px; + } + pre { + white-space: pre-wrap; /* css-3 */ + white-space: -moz-pre-wrap; /* Mozilla, since 1999 */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + word-wrap: break-word; /* Internet Explorer 5.5+ */ + } + } +} + + +/* redux-container */ + +.no-js { + border: 1px solid #ffbaba; + margin: 0; + border-bottom: 1px solid #E7E7E7; + background-color: #F2DEDE; + color: #B94A48; + padding: 8px 35px 8px 14px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); +} + + + +/* main */ + +.redux-sidebar { + width: 202px; + float: left; + + .redux-group-menu { + margin-top: 0 !important; + li { + margin-top: 0; + + &.active a, + &.active a:hover, + &.activeChild a, + &.activeChild a:hover { + background: #FCFCFC; + color: #269ad6; + width: 184px; + opacity: 1; + //margin-right:-2px; + } + + &.active a li a { + background: #333; + padding-left: 5px; + } + + &.divide { + padding: 0; + border-width: 1px 0; + border-style: solid; + border-bottom-color: #E7E7E7; + border-top-color: #F9F9F9; + } + a:first-child { + border-top: none; + } + a { + display: block; + padding: 10px 4px 10px 14px; + background: #e0e0e0; + background: transparent; + border-width: 1px 0; + border-style: solid; + border-bottom-color: #E7E7E7; + border-top-color: #F9F9F9; + opacity: 0.7; + color: #555; + font-weight: 600; + text-decoration: none; + -webkit-transition: none; + transition: none; + &.custom-tab { + background: #f6f6f6; + } + img { + width: 16px; + height: 16px; + // vertical-align:middle; + // margin-bottom:-3px; + // margin-right: 3px; + position: absolute; + left: 15px; + } + &:hover { + background: #e5e5e5; + //width: 184px + color: #777; + //margin-right: -2px; + opacity: 1; + } + } + } + } + + .redux-menu-warning, + .redux-menu-error, + .hasSubSections .extraIconSubsections { + display: inline-block; + float: right; + padding: 6px 7px 4px 7px; + margin-left: 4px; + font-family: sans-serif; + font-size: 9px; + font-weight: 600; + line-height: 9px; + border-radius: 10px; + -moz-border-radius: 10px; + -webkit-border-radius: 10px; + border: 0 solid transparent; + //margin-right: 5px; + + i { + margin-left: -3px; + margin-top: -3px; + } + } + .redux-menu-error { + background-color: rgb(185, 74, 72); + color: rgb(242, 222, 222); + } + .redux-menu-warning { + background-color: #C09853; + color: #FCF8E3; + } + + ul { + .subsection { + display: none; + } + } + + .redux-group-tab-link-a { + position: relative; + outline: 0; + i { + vertical-align: middle; + font-size: 1.35em; + position: absolute; + } + span { + display: block; + &.group_title { + padding-left: 30px; + } + } + } + + .redux-group-tab-link-li a.hasError span.group_title { + padding-right: 25px; + } + + #redux-header { + text-align: center; + + .display_header { + float: none; + } + } +} + +/* sidebar */ + + + +/* + * + * NHP_Options_color + * + */ +.farb-popup-wrapper { + position: relative; + display: block; +} + +.farb-popup { + position: absolute; + left: 40px; + top: 40px; + background-color: white; + border: 1px solid #222; + padding: 5px; + z-index: 100; +} + + + +.mp6 { + .icon-themes { + display: none; + } + + .redux-container { + #info_bar { + padding: 6px 10px 6px 6px; + + a { + margin-top: 2px; + } + } + } +} + +.redux-timer { + text-align: center; + font-size: 10px; + color: #888; +} + +.wrap { + margin-top: 0; +} + +@media screen and (max-width: 600px) { + .redux-sidebar { + width: 44px; + + .extraIconSubsections { + display: none !important; + } + + .redux-group-menu li a, + .redux-group-menu li a:hover, + .redux-group-menu li.active a, + .redux-group-menu li.active a:hover, + .redux-group-menu li.activeChild a, + .redux-group-menu li.activeChild a:hover { + width: auto; + } + + .redux-group-tab-link-a { + position: relative; + + i { + position: inherit; + } + + span { + display: none; + position: absolute; + top: 0; + left: 44px; + padding: 12px; + width: 200px; + background: #eeeeee; + border: 1px solid #ccc; + -webkit-box-shadow: 2px 2px 8px rgba(0, 0, 0, .2); + -moz-box-shadow: 2px 2px 8px rgba(0, 0, 0, .2); + box-shadow: 2px 2px 8px rgba(0, 0, 0, .2); + border-width: 1px 1px 1px 0px; + z-index: 3; + } + + &:hover > span { + display: block; + } + } + } + + .redux-main { + margin-left: 43px; + width: auto; + max-width: 100%; + } + + table.form-table, + .form-table > thead, + .form-table > tbody, + .form-table > tbody > tr > th, + .form-table > tbody > tr > td, + .form-table > tbody > tr { + display: block; + width: 100% !important; + padding: 0px !important; + } + + .form-table > tbody > tr > th, .form-table > tbody > tr > td { + padding: 10px !important; + } + + .form-table > tbody > tr > th, .form-table > tbody > tr > td { + padding: 10px !important; + } +} + +//mp6 fixes +@media screen and (max-width: 782px) { + .form-table>tbody>tr>th { + width: 100%; + } + .redux_field_th { + padding-bottom:0; + } + .mp6 { + .redux-container { + #info_bar { + height: auto; + padding-bottom: 1px; + + a { + margin-top: 5px; + } + } + } + } + .redux-container-switch label { + padding: 5px 10px !important; + + } + .redux-container-button_set label { + padding: 12px 10px; + } + .redux-container #redux-footer #redux-share { + line-height: 34px; + } + +} + +pre { + overflow: hidden; +} + +/* Default admin theme */ +#redux-header h2 { + color: #fff; +} + +@mixin backgroundGradient($to: darken($to, 5%), $from: lighten($to, 7%)) { + background-color: $to !important; + background-image: -khtml-gradient(linear, left top, left bottom, from($from), to($to)) !important; + background-image: -moz-linear-gradient(top, $from, $to) !important; + background-image: -ms-linear-gradient(top, $from, $to) !important; + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, $from), color-stop(100%, $to)) !important; + background-image: -webkit-linear-gradient(top, $from, $to) !important; + background-image: -o-linear-gradient(top, $from, $to) !important; + background-image: -linear-gradient(top, $from, $to) !important; + + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{$from}', endColorstr='#{$to}', GradientType=0) !important; +} + +@mixin adminThemeColorOverrides($darkColor, $accentColor, $secondaryColor, $buttonPrimary) { + + .button.ui-datepicker-current, + button.ui-datepicker-close { + background-color: lighten($accentColor, 3%) !important; + } + + .ui-datepicker-buttonpane button.ui-datepicker-current { + background: $buttonPrimary !important; + color: white !important; + border: 1px solid darken($buttonPrimary, 20%) !important; + + } + + .ui-datepicker-header .ui-icon { + background-image: url(data:image/png;base64,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) !important; + } + + .ui-datepicker-header { + background-color: $secondaryColor !important; + color: white !important; + } + + .ui-datepicker td .ui-state-active { + background-color: lighten($accentColor, 3%) !important; + color: white !important; + } + + .ui-datepicker td .ui-state-hover { + color: lighten($accentColor, 3%) !important; + } + + .ui-datepicker td .ui-state-highlight { + background: $accentColor !important; + border: 1px solid $secondaryColor !important; + color: white !important; + } + + .redux-container-switch .cb-disable, + .redux-container-switch .cb-enable, + .ui-state-default, + .ui-widget-content .ui-state-default, + .ui-widget-header .ui-state-default { + @include backgroundGradient(#f5f5f5, #f8f8f8); + border-color: #ccc !important; + } + + .ui-datepicker td .ui-state-active { + color: black !important; + font-weight: 700 !important; + background: white !important; + } + + .redux-container-switch .cb-disable.selected { + @include backgroundGradient(#646464, #929292); + border-color: #767676 !important; + } + .redux-container-switch .cb-enable.selected, + .redux-field-container .ui-buttonset .ui-state-active { + @include backgroundGradient($accentColor); + border-color: darken($accentColor, 15%) !important; + border-color: darken($accentColor, 10%) !important; + -webkit-box-shadow: inset 0 1px 0 lighten($accentColor, 15%), 0 1px 0 rgba(0, 0, 0, .15) !important; + box-shadow: inset 0 1px 0 lighten($accentColor, 15%), 0 1px 0 rgba(0, 0, 0, .15) !important; + + } + + #redux-header { + background: $secondaryColor; + border-color: $accentColor; + + .display_header span { + color: $darkColor; + } + } + + .redux-sidebar .redux-group-menu li.active { + &.hasSubSections { + + a { + position: relative; + &:after { + right: 0; + border: solid 8px transparent; + content: "\0020"; + height: 0; + width: 0; + position: absolute; + pointer-events: none; + border-right-color: #fff; + top: 50%; + margin-top: -8px; + } + + } + ul.subsection li a:after { + border: 0 none !important; + content: "\0020" !important; + } + } + } + .redux-sidebar .redux-group-menu li { + &.hasSubSections { + .redux-menu-error { + display: none; + margin-right: 5px; + } + + a { + &.hasError { + .extraIconSubsections { + background-color: rgb(185, 74, 72); + color: rgb(242, 222, 222); + } + } + .extraIconSubsections { + border-radius: 10px; + -moz-border-radius: 10px; + -webkit-border-radius: 10px; + border: 0 solid transparent; + font-size: 9px; + height: 9px; + line-height: 9px; + margin-right: 5px; + padding: 6px 7px 4px 7px; + width: 5px; + } + + &:hover .extraIconSubsections { + //right: 2px; + } + + } + } + &.active, + &.activeChild { + a .extraIconSubsections { + display: none; + } + &.hasSubSections { + .redux-menu-error { + display: block; + } + .subsection { + .redux-menu-error { + margin-right: 2px; + } + } + } + } + } + + .redux-sidebar .redux-group-menu { + li.active, + li.activeChild { + border-left: 0 none; + a { + color: $secondaryColor; + } + &.hasSubSections { + .active { + a { + &:after { + right: 0; + border: solid 8px transparent; + content: "\0020"; + height: 0; + width: 0; + position: absolute; + pointer-events: none; + border-right-color: #fff; + top: 50%; + margin-top: -8px; + } + } + } + a { + -webkit-transition: all 0.2s; + -moz-transition: all 0.2s; + transition: all 0.2s; + color: #fff; + width: auto; + border-bottom: 0; + } + ul.subsection li { + border-top: 0 none !important; + &.active a:hover { + color: #fff; + } + a { + width: auto; + border-top: 0 !important; + // border-top-color: lighten(@secondaryColor, 15); + padding: 7px; + color: #fff; + padding-left: 15px; + -webkit-transition: all 0.2; + -moz-transition: all 0.2; + -ms-transition: all 0.2; + -o-transition: all 0.2; + transition: all 0.2; + &:hover { + color: $buttonPrimary; + background: darken($secondaryColor, 10%); + } + span.group_title { + padding-left: 5px !important; + } + } + &.hasIcon { + a { + padding-left: 14px; + span.group_title { + padding-left: 30px !important; + } + + } + } + } + } + } + li.active { + &.hasSubSections { + a { + background: $accentColor; + } + ul.subsection li a { + background: $secondaryColor; + } + } + } + li.activeChild { + &.hasSubSections { + a { + background: $darkColor; + text-shadow: 1px 1px darken($darkColor, 30%); + } + ul.subsection li { + a { + background: $secondaryColor; + text-shadow: none; + } + &.active { + a { + background: $accentColor; + text-shadow: 1px 1px darken($accentColor, 20%); + } + } + } + } + } + } + + .redux-container-image_select .redux-image-select-selected img { + border-color: $accentColor; + } + + .redux-container-image_select .redux-image-select-selected .tiles { + border-color: $accentColor; + } + + #redux-footer #redux-share a { + color: $accentColor; + &:hover { + color: darken($accentColor, 20%); + } + } + .select2-results .select2-highlighted { + background: $accentColor; + } + .select2-drop-active, + .select2-container-multi.select2-container-active .select2-choices, + .select2-drop.select2-drop-above.select2-drop-active, + .select2-container-active .select2-choice, + .select2-container-active .select2-choices, + .select2-dropdown-open.select2-drop-above .select2-choice, + .select2-dropdown-open.select2-drop-above .select2-choices { + border-color: $accentColor; + } + .select2-dropdown-open.select2-drop-above .select2-choice, + .select2-dropdown-open.select2-drop-above .select2-choices { + border-top: inherit; + } + .noUi-connect { + @include backgroundGradient(lighten($accentColor, 3%)); + } +} + +/* Light fresh theme */ +.admin-color-fresh, .wp-customizer { + @include adminThemeColorOverrides(#a0a5aa, #0073aa, #23282d, #1e8cbe); +} + +/* Light admin theme */ +.admin-color-light { + @include adminThemeColorOverrides(#e6e6e6, #04a4cc, #888888, #0384a4); +} + +/* Blue admin theme */ +.admin-color-blue { + @include adminThemeColorOverrides(#e2ecf1, #4796b3, #096484, #db9825); +} + +/* Coffee admin theme */ +.admin-color-coffee { + @include adminThemeColorOverrides(#cdcbc9, #c7a589, #46403c, #ba906d); +} + +/* Ectoplasm admin theme */ +.admin-color-ectoplasm { + @include adminThemeColorOverrides(#cbc5d3, #a3b745, #413256, #89993a); +} + +/* Midnight admin theme */ +.admin-color-midnight { + @include adminThemeColorOverrides(#c2c4c5, #e14d43, #363b3f, #d92c23); +} + +/* Ocean admin theme */ +.admin-color-ocean { + @include adminThemeColorOverrides(#d5dddf, #9ebaa0, #627c83, #86a988); +} + +/* Sunrise admin theme */ +.admin-color-sunrise { + @include adminThemeColorOverrides(#f0c8c6, #dd823b, #b43c38, #cc6c23); +} + +@media screen and (max-width: 600px) { + // .redux-group-tab-link-a span { margin-top: -2px; } + .redux-group-tab-link-a { + min-height: 15px; + span { + //background: #222; + //color: white; + padding: 11px 12px; + color: #555; + -webkit-transition: all 0.3s; + -moz-transition: all 0.3s; + transition: all 0.3s; + &:hover { + //color: #2ea2cc; + //background: black; + background: #e5e5e5; + } + text-shadow: none !important; + } + } + + .redux-sidebar a { + + } +} + +@media screen and (max-width: 782px) { + #redux-footer #redux-share { + line-height: 38px; + font-size: 18px; + } + + .sticky-save-warn .redux-save-warn { + right: 13px; + top: 46px; + } + + .redux-container .expand_options { + margin-top: 5px; + } + + .redux-action_bar input { + margin-bottom: 0 !important; + } + +} + +@media screen and (max-width: 600px) { + #redux-footer #redux-share, + .redux-hint-qtip { + display: none; + } + + .redux-container .redux-action_bar { + float: none; + } +} + +// WP Engine CSS fix +.redux-sidebar .icon-large, +.redux-main .icon-large { + background-image: inherit !important; + width: inherit; + height: inherit; +} + +.redux-main dd, .redux-main li, .redux-sidebar li { + margin-bottom: 0 !important; +} + +.fully-expanded { + .redux-sidebar { + margin-left: -500px; + } + .redux-main { + margin-left: 0; + } + .redux-group-tab { + display: block; + } +} +@media screen and (max-width: 640px) { + #redux-defaults-section { + display: none; + } +} +@media screen and (max-width: 730px) { + #redux-share { + display:none; + } +} +@media screen and (max-width: 730px) { + #redux-defaults-section2 { + display: none; + } + #redux-share { + display:none; + } +} + +@media screen and (max-width: 600px) { + .form-table > tbody > tr > th { + padding-bottom: 0 !important; + } + + .redux_field_th { + padding-top: 0; + padding-bottom: 0; + } + + .redux-container .redux-main { + margin-left: 44px; + } + + .redux-main { + .redux-field-container { + padding-top: 0; + padding-bottom: 0; + } + .subsection a { + min-height: 15px; + } + } +} + +@media screen and (min-width: 601px) and (max-width: 782px) { + .redux-container { + .sticky-save-warn .redux-save-warn { + top: 47px !important; + right: 13px !important; + } + } +} + +@media screen and (max-width: 782px) { + + .redux-main { + .form-table-section-indented { + input[type=text] { + width: 95% !important; + } + } + + .redux-container-sortable { + input[type=text] { + width: 80%; + display: initial; + } + } + + .redux-typography-container { + .input_wrapper input.mini { + font-size: 16px !important; + height: 40px !important; + padding: 7px 10px !important; + line-height: 24px !important; + } + .picker-wrapper label { + margin-top: 16px !important; + } + } + + .input-append { + height: 50px !important; + + .add-on { + font-size: 16px; + line-height: 24px !important; + padding: 7px; + height: 32px !important; + float: right; + margin-top: -40px; + } + } + + .redux-hint-qtip { + float: left !important; + } + .redux-action_bar .button { + margin-top: -1px; + } + } +} + +@media screen and (max-width: 600px) { + .sticky-save-warn .redux-save-warn { + top: 0 !important; + right: 14px !important; + } +} + +@media screen and (max-width: 570px) { + .redux-main { + .redux-container-sortable { + .checkbox-container { + width: 85%; + padding-bottom: 5px; + + label { + display: initial; + } + } + } + } +} + +#redux-header { + position: relative; +} + +/* Leftovers? */ + +/*.shadow1 { + position: relative; + + &:before, + &:after { + z-index: -1; + position: absolute; + content: ""; + bottom: 15px; + left: 10px; + width: 50%; + top: 80%; + max-width: 300px; + background: #777; + -webkit-box-shadow: 0 15px 10px rgba(0,0,0,0.4); + -moz-box-shadow: 0 15px 10px rgba(0,0,0,0.4); + box-shadow: 0 15px 10px rgba(0,0,0,0.4); + -webkit-transform: rotate(-3deg); + -moz-transform: rotate(-3deg); + -o-transform: rotate(-3deg); + -ms-transform: rotate(-3deg); + transform: rotate(-3deg); + } + + &:after { + -webkit-transform: rotate(3deg); + -moz-transform: rotate(3deg); + -o-transform: rotate(3deg); + -ms-transform: rotate(3deg); + transform: rotate(3deg); + right: 10px; + left: auto; + } +}*/ + +/*.redux-menu-warning { + background-color: #C09853; + color: #FCF8E3; +} +.redux-menu-error { + background-color: #B94A48; + color: #F2DEDE; +}*/ + +/*.redux-screenshot { + max-width: 300px; + display: block; +}*/ + +/*.redux-container { + .ajax-loading-img-top { + margin: 5px 4px 0; + float: left; + } + + .ajax-loading { + margin: 3px 4px 0; + float: right; + } + + .ajax-reset-loading-img { + display: block; + margin-left: 100px; + } +}*/ + +// Modern Theme + +.redux-main { + position: relative; + #redux-sticky { + min-height: 32px; + margin-left: -20px; + margin-right: -20px; + margin-top: -10px; + margin-bottom: 8px; + #info_bar { + height: 32px; + .expand_options { + margin-top: 4px; + } + } + } + .redux_field_search { + top: 50px; + right: 5px; + } + #redux-footer-sticky { + margin-left: -20px; + margin-right: -20px; + margin-bottom: -10px; + } +} +.redux-qtip { + z-index: 999999 !important; + +} + diff --git a/redux/ReduxCore/assets/css/redux-fields.css b/redux/ReduxCore/assets/css/redux-fields.css new file mode 100644 index 0000000..1064e9a --- /dev/null +++ b/redux/ReduxCore/assets/css/redux-fields.css @@ -0,0 +1 @@ +.redux-container-ace_editor .ace-wrapper{position:static}.redux-container-ace_editor .ace_editor{height:200px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.redux-container-ace_editor .ace_gutter{z-index:1!important}.redux-main .redux-container-background .redux-background-attachment,.redux-main .redux-container-background .redux-background-attachment select,.redux-main .redux-container-background .redux-background-clip,.redux-main .redux-container-background .redux-background-clip select,.redux-main .redux-container-background .redux-background-origin,.redux-main .redux-container-background .redux-background-origin select,.redux-main .redux-container-background .redux-background-position,.redux-main .redux-container-background .redux-background-position select,.redux-main .redux-container-background .redux-background-repeat,.redux-main .redux-container-background .redux-background-repeat select,.redux-main .redux-container-background .redux-background-size,.redux-main .redux-container-background .redux-background-size select{width:200px!important;margin-right:10px;margin-bottom:7px}.redux-main .redux-container-background .background-preview{display:block;width:100%;margin:5px 0 10px;border:1px dotted #d3d3d3}.redux-main .redux-container-background .select2-container{margin-right:10px;margin-bottom:10px}.redux-main .redux-container-background .wp-picker-container{margin-bottom:10px}.redux-main .redux-container-background .upload{width:100%;margin-bottom:8px}.redux-main .redux-container-select li.ui-state-highlight{height:20px;margin-top:2px;margin-left:5px;width:64px;margin-bottom:0}.wp-customizer .redux-container-background .redux-background-attachment,.wp-customizer .redux-container-background .redux-background-attachment select,.wp-customizer .redux-container-background .redux-background-clip,.wp-customizer .redux-container-background .redux-background-clip select,.wp-customizer .redux-container-background .redux-background-origin,.wp-customizer .redux-container-background .redux-background-origin select,.wp-customizer .redux-container-background .redux-background-position,.wp-customizer .redux-container-background .redux-background-position select,.wp-customizer .redux-container-background .redux-background-repeat,.wp-customizer .redux-container-background .redux-background-repeat select,.wp-customizer .redux-container-background .redux-background-size,.wp-customizer .redux-container-background .redux-background-size select{width:100%!important}.redux-container-border .select2-container{float:left;display:block;margin-right:10px}.redux-container-border .select_wrapper{float:left;width:inherit}.redux-container-border .select_wrapper select{width:80px;float:left}.redux-container-border .field-border-input{margin-right:10px;margin-bottom:7px}.redux-container-border .wp-picker-container{margin-top:2px}@media screen and (max-width:782px){.redux-container-border .field-border-input input{display:inline-block!important;width:100px!important}.redux-container-border .field-border-input .add-on{padding:7px 4px;font-size:16px;line-height:1.5}.redux-container-border .select_wrapper{margin-top:6px}}.redux-container-checkbox label{vertical-align:top;width:100%}.redux-container-checkbox label .field-desc{margin-top:0;float:left;width:93%;clear:none}.redux-container-color_gradient .colorGradient{display:inline-block}.redux-container-color_gradient .toLabel{padding-left:18px}@media screen and (max-width:660px){.redux-container-color_gradient .colorGradient{display:block;text-align:center!important}}.sp-container{color:#555;border-color:#ccc;background:#f7f7f7;-webkit-box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);vertical-align:top}.sp-replacer{color:#555;border-color:#ccc;background:#f7f7f7;-webkit-box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);vertical-align:top}.sp-replacer.focus,.sp-replacer.hover,.sp-replacer:focus,.sp-replacer:hover{background:#fafafa;border-color:#999;color:#222}.sp-replacer.focus,.sp-replacer:focus{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.sp-replacer.active:focus{-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.sp-replacer.active,.sp-replacer.active:hover,.sp-replacer:active{background:#eee;border-color:#999;color:#333;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}#ui-datepicker-div{z-index:15!important}.ui-datepicker-header{background-color:#00abef}.redux-dimensions-container .select_wrapper,.redux-dimensions-container select{width:65px!important;float:left}.redux-dimensions-container .field-dimensions-input{margin-right:10px;margin-bottom:7px}@media screen and (max-width:782px){.redux-dimensions-container .field-dimensions-input input{display:inline-block!important;width:100px!important}.redux-dimensions-container .field-dimensions-input .add-on{padding:7px 4px;font-size:16px;line-height:1.5}.redux-dimensions-container .select_wrapper{margin-top:6px}}.redux-main .divide{height:20px;line-height:20px;float:none;border-color:#e7e7e7;display:block;width:100%;height:35px!important;line-height:35px!important;position:relative;margin:15px 0 10px 0}.redux-main .divide .inner{width:42%!important;left:40%!important;margin-left:-6%;background-color:#fcfcfc;border-color:#e7e7e7;position:absolute;height:1px;top:50%;width:100%;margin-top:-1px;border-top-width:1px;border-top-style:solid}.redux-main .divide .inner span{background-color:#fcfcfc;border-color:#e7e7e7;height:5px;width:5px;border-width:2px;border-style:solid;display:block;position:absolute;left:50%;margin-left:-5px;margin-top:-5px}.wp-customizer .redux-container-divide .divide .inner{width:82%!important;left:18%!important;margin-left:-8%}.redux-container-editor .mceLayout td{border-width:1px;margin:0;padding:1px}.redux-container-editor input,.redux-container-editor textarea{margin:inherit}.redux-container-editor textarea{border-style:none;border:0;border-width:0}.redux-container-editor .wp-editor-container{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.redux-container-editor .wp-editor-container textarea{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;border-style:inherit}.redux-container-editor .quicktags-toolbar input{margin:2px 1px 4px;line-height:18px;display:inline-block;min-width:26px;padding:2px 4px;font:12px/18px Arial,Helvetica,sans-serif normal;color:#464646;border:1px solid #c3c3c3;-webkit-border-radius:3px;border-radius:3px;background:#eee;background-image:-webkit-gradient(linear,left bottom,left top,from(#e3e3e3),to(#fff));background-image:-webkit-linear-gradient(bottom,#e3e3e3,#fff);background-image:-moz-linear-gradient(bottom,#e3e3e3,#fff);background-image:-o-linear-gradient(bottom,#e3e3e3,#fff);background-image:linear-gradient(to top,#e3e3e3,#fff)}.redux-container-image_select .redux-table-container{display:table;table-layout:fixed;width:100%}.redux-container-image_select .redux-image-select{margin:0!important}.redux-container-image_select .redux-image-select .tiles{display:block;background-color:#fff;background-repeat:repeat;width:40px;height:40px}.redux-container-image_select .redux-image-select .tiles,.redux-container-image_select .redux-image-select img{border-color:#d9d9d9}.redux-container-image_select .redux-image-select li:last-child{margin-bottom:0}.redux-container-image_select .redux-image-select input[type=radio]{display:none}.redux-container-image_select .redux-image-select-presets img{width:100%}.redux-container-image_select ul.redux-image-select li{margin:0 10px 3px 10px;display:inline-block;padding:2px 2px;padding-left:0}.redux-container-image_select .redux-image-select-selected{background-color:#f9f9f9}.redux-container-image_select .redux-image-select .tiles,.redux-container-image_select .redux-image-select img,.redux-container-image_select .redux-image-select-selected .tiles,.redux-container-image_select .redux-image-select-selected img{border-width:4px;border-style:solid}.redux-container-image_select .redux-image-select-selected .tiles{border-color:#7a7a7a}.redux-info-field{min-height:20px;padding:8px 19px;margin:10px 0;border:1px solid;border-radius:4px;border:1px solid;position:relative}.redux-info-field h1,.redux-info-field h2,.redux-info-field h3,.redux-info-field h4,.redux-info-field h5,.redux-info-field h6{border-bottom:0!important}.redux-info-field h3{color:#777}.redux-info-field .redux-info-icon{display:inline-block;margin-right:15px}.redux-info-field .redux-info-icon i{font-size:2em}.redux-info-field .redux-info-desc{display:inline-block;vertical-align:top}.redux-info-field.redux-normal{background-color:#eee;border-color:#ccc;color:#666}.redux-info-field.redux-normal i{color:#c5c5c5}.redux-info-field.redux-warning{background-color:#fbeba4;border-color:#d7c281;color:#958234}.redux-info-field.redux-warning i{color:#dcca81}.redux-info-field.redux-success{background-color:#c4ee91;border-color:#71af5d;color:#4d7615}.redux-info-field.redux-success i{color:#a0ca6c}.redux-info-field.redux-critical{background-color:#fba1a3;border-color:#b84f5b;color:#981225}.redux-info-field.redux-critical i{color:#dd767d}.redux-info-field.redux-info{background-color:#d3e4f4;border-color:#a9b6c2;color:#5c80a1}.redux-info-field.redux-info i{color:#afc6da}.redux-notice-field{margin:15px 0 0;background-color:#fff;border:0;border-left:4px solid #f3f3f3;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1);padding:1px 12px}.redux-notice-field h1,.redux-notice-field h2,.redux-notice-field h3,.redux-notice-field h4,.redux-notice-field h5,.redux-notice-field h6{border-bottom:0!important}.redux-notice-field p{margin:.5em 0;padding:2px}.redux-notice-field .redux-info-icon{display:inline-block;margin-right:15px}.redux-notice-field .redux-info-icon i{font-size:2em}.redux-notice-field .redux-info-desc{display:inline-block;vertical-align:top}.redux-notice-field.redux-info{border-left:4px solid #0099d5}.redux-notice-field.redux-success{border-left:4px solid #7ad03a}.redux-notice-field.redux-warning{border-left:4px solid #fbeba4}.redux-notice-field.redux-critical{border-left:4px solid #dd3d36}.redux-main .redux-field-container.redux-container-info{padding:0}.wp-customizer .hasIcon.redux-info-field .redux-info-desc,.wp-customizer .hasIcon.redux-notice-field .redux-info-desc{display:block;margin-left:43px}.wp-customizer .hasIcon.redux-info-field .redux-info-icon,.wp-customizer .hasIcon.redux-notice-field .redux-info-icon{float:left}.wp-customizer .redux-main .customize-control.customize-control-redux-info{border-bottom:0}.redux-container-link_color .linkColor{display:inline-block;padding-right:10px;padding-bottom:7px}.redux-container-link_color .linkColor strong{display:table;margin-bottom:5px;margin-left:3px;font-size:12px;font-weight:400;color:#999}.redux-main .button.remove-image,.redux-main .removeCSS{margin-left:10px;color:#ef521d}.redux-main .button.remove-image:hover,.redux-main .removeCSS:hover{color:red}.redux-main .upload_button_div{margin-bottom:5px}.redux-main .upload-error{float:left;color:#666;font-size:10px;font-weight:700;text-decoration:none;text-shadow:1px 1px 0 #fff;margin:0 10px 0 0;padding:3px 10px;background:#ffdfec;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.redux-main .reset-button{font-family:Arial,Verdana,sans-serif;float:left;margin:0;color:#ef521d;border-color:#bbb}.redux-main .redux-option-image{max-height:340px;max-width:340px;padding:5px;margin-bottom:0;margin-top:10px;margin-right:15px;border:1px solid #e3e3e3;background:#f7f7f7;-moz-border-radius:3px;-khtml-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.redux-main .redux-main .upload{width:80%!important}.redux-main .button{margin-top:2px}.redux-container-multi_text ul.redux-multi-text{margin:0;padding:0}.redux-container-multi_text .redux-multi-text-add{clear:both;margin:5px 0}.redux-container-multi_text a.redux-multi-text-remove.deletion{color:red;padding:2px 4px;margin-left:5px}.redux-container-multi_text a.redux-multi-text-remove.deletion:hover{background:red;color:#fff;text-decoration:none}@media screen and (max-width:782px){.redux-container-multi_text input{clear:both}.redux-container-multi_text .redux-multi-text-remove{margin:0;float:right}}.wp-customizer .redux-container-multi_text .button{float:right}.wp-customizer .redux-container-multi_text .redux-multi-text-remove{float:right;margin-bottom:5px}.wp-customizer .redux-container-multi_text ul.redux-multi-text input{width:100%!important}.redux-container-palette label{border:3px solid transparent;border-color:transparent!important;border-radius:0;width:100%!important;display:block}.redux-container-palette label.ui-button.ui-widget{width:95%;background:0 0;padding:0}.redux-container-palette label.ui-button.ui-widget .ui-button-text{display:flex}.redux-container-palette label.ui-button.ui-widget .ui-button-text span{padding:10px;flex-grow:1;font-size:0;line-height:10px;color:transparent;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-ms-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;text-shadow:0}.redux-container-palette label.ui-button.ui-widget .ui-button-text span:hover{flex-grow:3;font-weight:700;min-width:60px;font-size:12px;line-height:10px;color:#333;text-shadow:0 0 8px #fff,0 0 8px #fff}.redux-container-palette label.ui-state-active{border:3px solid #333!important}.wp-customizer .redux-main .redux-container-palette label{margin-bottom:3px}.redux-main .form-table-section-indented{width:95%;margin-left:5%!important}.redux-main .form-table-section tr:first-of-type th:first-of-type{padding:0!important}.redux-main h3{margin-top:10px}.redux-main .form-table-section-indented>tbody>tr:first-child{display:none}.redux-main .form-table-section-indented>tbody>tr:nth-last-child(2){border-bottom:0}.redux-container-select_image{margin-top:2px;margin-left:5px;width:100%;margin-bottom:0}.redux-preview-image{max-height:250px;max-width:250px;padding:5px;margin-top:10px;border:1px solid #e3e3e3;background:#f7f7f7;-moz-border-radius:3px;-khtml-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.redux-container-select li.ui-state-highlight{height:20px;margin-top:2px;margin-left:5px;width:64px;margin-bottom:0}.redux-container-slider .redux-slider-container{margin-left:25px;margin-right:25px;width:200px;display:inline-block;vertical-align:middle}.redux-container-slider .redux-slider-input,.redux-container-slider .redux-slider-select-one,.redux-container-slider .redux-slider-select-two{width:100px!important;text-align:center}.redux-container-slider .redux-slider-label{position:absolute;margin-left:-5px}.redux-container-slider .redux-slider-label-one{position:absolute;margin-left:-22px}.redux-container-slider .redux-slider-label-two{position:absolute;margin-top:-21px;margin-left:245px}@media screen and (max-width:782px){.redux-container-slider input{display:inline-block!important}}@media screen and (max-width:570px){.redux-container-slider{text-align:center}.redux-container-slider .redux-slider-label,.redux-container-slider .select2-container,.redux-container-slider input,.redux-container-slider select{display:block!important;position:inherit;margin:10px auto}.redux-container-slider .redux-slider-container{margin-top:3px;width:80%}}.wp-customizer .redux-container-slider .redux-slider-label{float:left;position:inherit;width:25%;text-align:center;margin-left:0}.wp-customizer .redux-container-slider .redux-slider-input,.wp-customizer .redux-container-slider .redux-slider-select-one,.wp-customizer .redux-container-slider .redux-slider-select-two{width:25%!important}.wp-customizer .redux-container-slider .redux-slider-container{width:70%;margin-right:0;margin-left:5%}.noUi-target,.noUi-target *{-webkit-touch-callout:none;-webkit-user-select:none;-ms-touch-action:none;-ms-user-select:none;-moz-user-select:none;-moz-box-sizing:border-box;box-sizing:border-box}.noUi-base{width:100%;height:100%;position:relative}.noUi-origin{position:absolute;right:0;top:0;left:0;bottom:0}.noUi-handle{position:relative;z-index:1}.noUi-stacking .noUi-handle{z-index:10}.noUi-state-tap .noUi-origin{-webkit-transition:left .3s,top .3s;transition:left .3s,top .3s}.noUi-state-drag *{cursor:inherit!important}.noUi-horizontal{height:18px}.noUi-horizontal .noUi-handle{width:34px;height:28px;left:-17px;top:-6px}.noUi-horizontal.noUi-extended{padding:0 15px}.noUi-horizontal.noUi-extended .noUi-origin{right:-15px}.noUi-vertical{width:18px}.noUi-vertical .noUi-handle{width:28px;height:34px;left:-6px;top:-17px}.noUi-vertical.noUi-extended{padding:15px 0}.noUi-vertical.noUi-extended .noUi-origin{bottom:-15px}.noUi-background{background:#fafafa;box-shadow:inset 0 1px 1px #f0f0f0}.noUi-connect{background:#3fb8af;box-shadow:inset 0 0 3px rgba(51,51,51,.45);-webkit-transition:background 450ms;transition:background 450ms}.noUi-origin{border-radius:2px}.noUi-target{border-radius:4px;border:1px solid #d3d3d3;box-shadow:inset 0 1px 1px #f0f0f0,0 3px 6px -5px #bbb}.noUi-target.noUi-connect{box-shadow:inset 0 0 3px rgba(51,51,51,.45),0 3px 6px -5px #bbb}.noUi-dragable{cursor:w-resize}.noUi-vertical .noUi-dragable{cursor:n-resize}.noUi-handle{border:1px solid #d9d9d9;border-radius:3px;background:#fff;cursor:default;box-shadow:inset 0 0 1px #fff,inset 0 1px 7px #ebebeb,0 3px 6px -3px #bbb}.noUi-active{box-shadow:inset 0 0 1px #fff,inset 0 1px 7px #ddd,0 3px 6px -3px #bbb}.noUi-handle:after,.noUi-handle:before{content:"";display:block;position:absolute;height:14px;width:1px;background:#e8e7e6;left:14px;top:6px}.noUi-handle:after{left:17px}.noUi-vertical .noUi-handle:after,.noUi-vertical .noUi-handle:before{width:14px;height:1px;left:6px;top:14px}.noUi-vertical .noUi-handle:after{top:17px}[disabled] .noUi-connect,[disabled].noUi-connect{background:#b8b8b8}[disabled] .noUi-handle{cursor:not-allowed}.noUi-state-blocked .noUi-connect,.noUi-state-blocked.noUi-connect{background:#4fdacf}.redux-container-slides .redux-slides-list .select2-container{margin-bottom:10px;width:100%}.redux-container-slides .ui-accordion-header{margin-bottom:0}.redux-container-slides .full-text,.redux-container-slides .large-text{width:100%}.redux-container-slides .redux-slides-accordion-group{border:1px solid #dfdfdf!important;border-radius:3px!important;margin-top:0!important;margin-bottom:10px;background:#f9f9f9;padding:5px}.redux-container-slides .redux-slides-accordion-group h3{border:1px solid #dfdfdf;cursor:move!important;font-weight:700;padding:0 10px!important;height:40px;line-height:40px!important;background-color:#f1f1f1;background-image:-ms-linear-gradient(top,#f9f9f9,#ececec);background-image:-moz-linear-gradient(top,#f9f9f9,#ececec);background-image:-o-linear-gradient(top,#f9f9f9,#ececec);background-image:-webkit-gradient(linear,left top,left bottom,from(#f9f9f9),to(#ececec));background-image:-webkit-linear-gradient(top,#f9f9f9,#ececec);background-image:linear-gradient(top,#f9f9f9,#ececec);overflow:hidden;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-moz-box-shadow:inset 0 1px 0 #fff;-webkit-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff;text-align:center}.redux-container-slides #redux-slides-accordion .redux-slides-image{height:250px;padding:5px;margin-top:10px;margin-bottom:10px;border:1px solid #e3e3e3;background:#f7f7f7;-moz-border-radius:3px;-khtml-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.redux-container-slides .redux-slides-add{float:right;margin-right:10%;display:block;margin-bottom:10px}.redux-container-slides .redux-slides-remove{color:#ef521d!important;float:right;margin-top:5px}.redux-container-slides .redux-slides-header{font-weight:700}.redux-container-slides .redux_slides_add_remove{margin-bottom:10px}.redux-container-slides input{width:100%!important}.wp-customizer .redux-container-slides .ui-accordion .ui-accordion-content{padding:10px}.redux-container-sortable i.el{cursor:move}.redux-container-sortable label{margin-right:10px;width:300px}.redux-container-sortable label.bugger{margin-bottom:0!important;font-size:12px!important;color:#999}.redux-container-sortable input{margin-right:10px}.redux-container-sortable .checkbox-container{width:364px}.redux-container-sortable .checkbox-container .drag{float:right;margin-left:10px}.redux-container-sortable ul.labeled li{line-height:1.4em!important}.redux-container-sortable li{line-height:30px!important}.redux-container-sortable li.ui-state-highlight{height:30px;width:364px;margin-bottom:13px}.redux-container-sortable li.placeholder{height:30px;margin:10px 0}.wp-customizer .redux-sortable input[type=text]{width:92%}.wp-customizer .redux-sortable i.el{margin-left:5px}.wp-customizer .redux-container-sortable .checkbox-container{width:inherit}.wp-customizer .redux-container-sortable .ui-draggable-handle{margin-left:3%}.redux-container-sorter{margin-right:-20px}.redux-container-sorter ul{background:#f9f9f9;border:1px solid #e3e3e3;min-height:40px;padding:10px 10px 0;width:145px;float:left;margin:0 15px 0 0}.redux-container-sorter ul.filled{opacity:.7;background:#efecec}.redux-container-sorter ul li{border:1px solid #dfdfdf;cursor:move;font-weight:700;margin-bottom:10px!important;padding:0 10px;height:40px;line-height:40px!important;background-color:#f1f1f1;background-image:-ms-linear-gradient(top,#f9f9f9,#ececec);background-image:-moz-linear-gradient(top,#f9f9f9,#ececec);background-image:-o-linear-gradient(top,#f9f9f9,#ececec);background-image:-webkit-gradient(linear,left top,left bottom,from(#f9f9f9),to(#ececec));background-image:-webkit-linear-gradient(top,#f9f9f9,#ececec);background-image:linear-gradient(top,#f9f9f9,#ececec);overflow:hidden;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-moz-box-shadow:inset 0 1px 0 #fff;-webkit-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff;text-align:center}.redux-container-sorter ul li h3{margin:0 0 10px;text-align:center;color:#777;text-transform:capitalize;word-wrap:break-word}.redux-container-sorter ul li.placeholder{height:40px}.wp-customizer .redux-container-sorter ul{width:85%;margin:0 0 5px 0}.redux-container-spacing .select_wrapper,.redux-container-spacing select{width:80px!important;float:left}.redux-container-spacing .field-spacing-input{margin-right:10px;margin-bottom:7px}@media screen and (max-width:782px){.redux-container-spacing .field-spacing-input input{display:inline-block!important;width:70px!important}.redux-container-spacing .field-spacing-input .add-on{padding:7px 4px;font-size:16px;line-height:1.5}.redux-container-spacing .select_wrapper{margin-top:6px}}.redux-container-spinner .spinner-wrpr{position:relative;display:block;height:30px;overflow:hidden}.redux-container-spinner .spinner-wrpr .spinner-input{position:relative!important;z-index:1;width:45px!important;height:30px!important;background:#e7e7e7!important;border:1px solid #bfbfbf!important;border-right:0!important;border-left:0!important;-webkit-border-radius:0!important;-moz-border-radius:0!important;border-radius:0!important}.redux-container-spinner .ui-spinner{position:static;display:inline}.redux-container-spinner .ui-spinner-buttons{position:absolute;padding:0}.redux-container-spinner .ui-widget .ui-spinner-button{position:absolute;top:0;padding:0 0 30px;overflow:hidden;cursor:pointer;background:-moz-linear-gradient(#fff,#f3f3f3);background:-o-linear-gradient(#fff,#f3f3f3);background:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#f3f3f3));background:linear-gradient(#fff,#f3f3f3);background-color:#fff;border:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.redux-container-spinner .ui-spinner-button:hover,.redux-container-spinner .ui-state-hover{background:-moz-linear-gradient(#f3f3f3,#fff);background:-o-linear-gradient(#f3f3f3,#fff);background:-webkit-gradient(linear,left top,left bottom,from(#f3f3f3),to(#fff));background:linear-gradient(#f3f3f3,#fff);background-color:#f3f3f3}.redux-container-spinner .ui-corner-tr,.redux-container-spinner .ui-spinner-button .ui-icon-triangle-1-n{-webkit-border-radius:0 5px 5px 0;-moz-border-radius:0 5px 5px 0;border-radius:0 5px 5px 0}.redux-container-spinner .ui-corner-br,.redux-container-spinner .ui-spinner-button .ui-icon-triangle-1-s{-webkit-border-radius:5px 0 0 5px;-moz-border-radius:5px 0 0 5px;border-radius:5px 0 0 5px}.redux-container-spinner .ui-spinner-button .ui-icon{top:0;display:block;width:28px;height:28px;margin:0;border:1px solid #b7b7b7}.redux-container-spinner .ui-spinner-button .ui-icon-triangle-1-n{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAKCAYAAACXDi8zAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADxJREFUeNpsjwsKADAIQu3u3tsRY6M5gz7w0AqSQFLdZ3ZRgmf44JQ/EOZ9oYOsiDviVemP2oYoWCwBBgDpO6VXVo3RyQAAAABJRU5ErkJggg==) 10px 10px no-repeat!important}.redux-container-spinner .ui-spinner-button .ui-icon-triangle-1-s{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAKCAYAAACXDi8zAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADhJREFUeNpi+P//PwM6bmlpwS4IorEKokggC8Il0AVhEv9x6sAmiaz9P05XIUsygmVRAUiAESDAAFHcpVdWtdj/AAAAAElFTkSuQmCC) 10px 10px no-repeat!important}.redux-container-switch .switch-options{min-height:30px;margin-right:10px}.redux-container-switch .switch-options label{cursor:pointer}.redux-container-switch .switch-options input{display:none}.redux-container-switch .cb-disable,.redux-container-switch .cb-enable{padding:0 10px;border-width:1px;border-style:solid;-webkit-appearance:none;white-space:nowrap;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.redux-container-switch .cb-disable span,.redux-container-switch .cb-enable span{line-height:30px;display:block;font-weight:700;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-o-user-select:none;-ms-user-select:none;user-select:none}.redux-container-switch .cb-disable,.redux-container-switch .cb-disable span,.redux-container-switch .cb-enable,.redux-container-switch .cb-enable span{display:block;float:left}.redux-container-switch .cb-enable{border-right:0;border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;-webkit-border-radius:3px 0 0 3px}.redux-container-switch .cb-enable.selected{color:#fff}.redux-container-switch .cb-disable{border-left:0;border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;-webkit-border-radius:0 3px 3px 0}.redux-container-switch .cb-disable.selected{color:#fff}.redux-container-text label{display:block;position:relative;font-size:12px!important;text-align:left;color:#999;margin:4px 0 2px 0!important;cursor:default;top:5px;width:100px}.redux-container-text input{clear:left}.redux-container-text .input_wrapper{display:block;position:relative;padding:0;width:23%;max-width:23%;min-width:70px;float:left;clear:left;height:57px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box;box-sizing:border-box;vertical-align:baseline}.wp-customizer .redux-container-text .input_wrapper{width:100%;max-width:100%;height:auto}.redux-main .redux-typography-container{display:block;position:relative;margin:0;padding:0;width:100%;max-width:660px}.redux-main .redux-typography-container .clearfix{clear:both}.redux-main .redux-typography-container .clearfix:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.redux-main .redux-typography-container .redux-typography-color,.redux-main .redux-typography-container input.wp-picker-default{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box;box-sizing:border-box;height:24px;padding:0 14px!important;margin-top:0;margin-bottom:0;margin-left:4px!important;font-size:12px!important}.redux-main .redux-typography-container .select_wrapper{display:block;position:relative;float:left;clear:none;margin:0 10px 0 0;width:48%!important;min-width:210px!important;max-width:324px!important;height:57px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box;box-sizing:border-box}.redux-main .redux-typography-container .select_wrapper:nth-child(odd){margin-right:10px!important}.redux-main .redux-typography-container .select_wrapper:nth-child(even){margin-right:10px!important}.redux-main .redux-typography-container .select_wrapper.typography-family .select2-container{width:100%}.redux-main .redux-typography-container .select_wrapper .redux-typography{font-size:14px!important;display:block;float:left;height:28px!important;line-height:50px!important;padding:0!important;width:100%!important;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box;box-sizing:border-box}.redux-main .redux-typography-container .wp-picker-container{float:left;clear:left;margin-bottom:12px;padding:3px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.redux-main .redux-typography-container .input_wrapper{display:block;position:relative;margin:0 4px 0 5px;padding:0;width:23%;max-width:23%;min-width:70px;float:left;clear:none;height:57px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box;box-sizing:border-box;vertical-align:baseline}.redux-main .redux-typography-container .input_wrapper.font-size{margin-left:0}.redux-main .redux-typography-container .input_wrapper input.mini{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box;box-sizing:border-box;width:78%;text-align:center;margin:0;height:28px;top:3px;padding:0 2px 0 5px;text-decoration:none;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.redux-main .redux-typography-container .picker-wrapper{display:block;display:block;position:relative;margin:0 4px 0 5px;margin:0;padding:0;width:23%;width:100%;max-width:23%;min-width:70px;min-width:100%;clear:none;height:57px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box;box-sizing:border-box;vertical-align:baseline}.redux-main .redux-typography-container label{display:block;position:relative;font-size:12px!important;text-align:left;color:#999;margin:4px 0 2px 0!important;cursor:default}.redux-main .redux-typography-container .typography-preview{display:none;width:100%;border:1px dotted #d3d3d3;max-width:850px;padding:10px;font-size:10pt;height:auto;margin:5px 0 10px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;overflow:hidden}.redux-main .redux-typography-container .typography-color{border:0 none;margin:0}.redux-main .redux-typography-container ::-webkit-input-placeholder{line-height:19px}@media screen and (max-width:540px){.redux-main .redux-main .redux-typography-container{max-width:230px;margin:0 auto}.redux-main .redux-main .redux-typography-container .select_wrapper{max-width:210px;min-width:210px;width:210px;margin-left:0!important;margin-right:0!important}.redux-main .redux-main .redux-typography-container .input_wrapper{max-width:101px;min-width:101px;width:101px;margin-left:0!important;margin-right:5px!important}.redux-main .redux-main .redux-typography-container .input_wrapper input.mini{width:73%}.redux-main .redux-main .redux-typography-container .input-append .add-on{width:30%;padding:5px!important}.redux-main .redux-main .redux-main .wp-picker-container .wp-picker-input-wrap{margin-top:7px}}@media screen and (max-width:360px){.redux-main .redux-typography-container .iris-picker .iris-square{margin-right:3%}}.wp-customizer .redux-typography-container .input_wrapper{width:40%;max-width:40%;min-width:20%}.wp-customizer .redux-typography-container .input_wrapper input.mini{width:70%}.wp-customizer .redux-typography-container .select_wrapper{width:100%!important}.redux-main input.redux-color{float:left;width:70px;margin-left:5px}.redux-main input.color-transparency{margin-left:10px;margin-right:3px}.redux-main input.wp-color-picker{width:80px!important}.redux-main .section-color .controls{width:345px}.redux-main .section-color .explain{width:225px}.redux-main .iris-picker .iris-strip .ui-slider-handle{position:absolute;background:0 0!important;right:-3px;left:-3px;border:4px solid #aaa!important;border-width:4px 3px;width:auto;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.2);opacity:.9;z-index:5;cursor:ns-resize}.redux-main .iris-picker .iris-slider-offset{position:absolute;top:2px;left:0;right:0;bottom:4px;width:28px;background:0 0!important;border:0!important;height:auto}.redux-main .wp-picker-container{display:inline-block;outline:0}.redux-main .wp-picker-container input{margin-bottom:inherit;margin-top:inherit;padding:3px 5px}.redux-main .wp-picker-container .wp-color-result{outline:0;margin:0;height:24px!important;margin:0 6px 6px 0!important}.redux-main .wp-picker-container .wp-picker-default{padding:0 10px 1px}.redux-main .wp-picker-container .wp-color-result-text{line-height:22px}.redux-main .redux-color-gradient{line-height:24px}.redux-main .color-transparency-check{line-height:1;margin:0!important;padding-top:10px}.redux-main .wp-picker-clear{margin-top:0!important}.wp-customizer .redux-main .redux-typography-container .redux-typography-color,.wp-customizer .redux-main .redux-typography-container input.wp-picker-default,.wp-customizer .redux-main input.wp-picker-default{padding:0 4px!important}.wp-customizer .redux-main input.wp-color-picker{width:65px!important;margin-left:5px!important}.redux-main .button.remove-image,.redux-main .removeCSS{margin-left:10px;color:#ef521d}.redux-main .button.remove-image:hover,.redux-main .removeCSS:hover{color:red}.redux-main .upload_button_div{margin-bottom:5px}.redux-main .upload-error{float:left;color:#666;font-size:10px;font-weight:700;text-decoration:none;text-shadow:1px 1px 0 #fff;margin:0 10px 0 0;padding:3px 10px;background:#ffdfec;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.redux-main .reset-button{font-family:Arial,Verdana,sans-serif;float:left;margin:0;color:#ef521d;border-color:#bbb}.redux-main .redux-option-image{max-height:340px;max-width:340px;padding:5px;margin-bottom:0;margin-top:10px;margin-right:15px;border:1px solid #e3e3e3;background:#f7f7f7;-moz-border-radius:3px;-khtml-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.redux-main .redux-main .upload{width:80%!important}.redux-main .button{margin-top:2px} \ No newline at end of file diff --git a/redux/ReduxCore/assets/css/redux-vendor.css b/redux/ReduxCore/assets/css/redux-vendor.css new file mode 100644 index 0000000..f0e99d1 --- /dev/null +++ b/redux/ReduxCore/assets/css/redux-vendor.css @@ -0,0 +1 @@ +.qtip{position:absolute;left:-28000px;top:-28000px;display:none;max-width:280px;min-width:50px;font-size:10.5px;line-height:12px;direction:ltr;box-shadow:none;padding:0}.qtip-content{position:relative;padding:5px 9px;overflow:hidden;text-align:left;word-wrap:break-word}.qtip-titlebar{position:relative;padding:5px 35px 5px 10px;overflow:hidden;border-width:0 0 1px;font-weight:700}.qtip-titlebar+.qtip-content{border-top-width:0!important}.qtip-close{position:absolute;right:-9px;top:-9px;cursor:pointer;outline:0;border-width:1px;border-style:solid;border-color:transparent}.qtip-titlebar .qtip-close{right:4px;top:50%;margin-top:-9px}* html .qtip-titlebar .qtip-close{top:16px}.qtip-icon .ui-icon,.qtip-titlebar .ui-icon{display:block;text-indent:-1000em;direction:ltr}.qtip-icon,.qtip-icon .ui-icon{-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;text-decoration:none}.qtip-icon .ui-icon{width:18px;height:14px;line-height:14px;text-align:center;text-indent:0;font:normal bold 10px/13px Tahoma,sans-serif;color:inherit;background:-100em -100em no-repeat}.qtip-default{border-width:1px;border-style:solid;border-color:#F1D031;background-color:#FFFFA3;color:#555}.qtip-default .qtip-titlebar{background-color:#FFEF93}.qtip-default .qtip-icon{border-color:#CCC;background:#F1F1F1;color:#777}.qtip-default .qtip-titlebar .qtip-close{border-color:#AAA;color:#111}/*! Light tooltip style */.qtip-light{background-color:#fff;border-color:#E2E2E2;color:#454545}.qtip-light .qtip-titlebar{background-color:#f1f1f1}/*! Dark tooltip style */.qtip-dark{background-color:#505050;border-color:#303030;color:#f3f3f3}.qtip-dark .qtip-titlebar{background-color:#404040}.qtip-dark .qtip-icon{border-color:#444}.qtip-dark .qtip-titlebar .ui-state-hover{border-color:#303030}/*! Cream tooltip style */.qtip-cream{background-color:#FBF7AA;border-color:#F9E98E;color:#A27D35}.qtip-cream .qtip-titlebar{background-color:#F0DE7D}.qtip-cream .qtip-close .qtip-icon{background-position:-82px 0}/*! Red tooltip style */.qtip-red{background-color:#F78B83;border-color:#D95252;color:#912323}.qtip-red .qtip-titlebar{background-color:#F06D65}.qtip-red .qtip-close .qtip-icon{background-position:-102px 0}.qtip-red .qtip-icon,.qtip-red .qtip-titlebar .ui-state-hover{border-color:#D95252}/*! Green tooltip style */.qtip-green{background-color:#CAED9E;border-color:#90D93F;color:#3F6219}.qtip-green .qtip-titlebar{background-color:#B0DE78}.qtip-green .qtip-close .qtip-icon{background-position:-42px 0}/*! Blue tooltip style */.qtip-blue{background-color:#E5F6FE;border-color:#ADD9ED;color:#5E99BD}.qtip-blue .qtip-titlebar{background-color:#D0E9F5}.qtip-blue .qtip-close .qtip-icon{background-position:-2px 0}.qtip-shadow{-webkit-box-shadow:1px 1px 3px 1px rgba(0,0,0,.15);-moz-box-shadow:1px 1px 3px 1px rgba(0,0,0,.15);box-shadow:1px 1px 3px 1px rgba(0,0,0,.15)}.qtip-bootstrap,.qtip-rounded,.qtip-tipsy{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.qtip-rounded .qtip-titlebar{-moz-border-radius:4px 4px 0 0;-webkit-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.qtip-youtube{-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-webkit-box-shadow:0 0 3px #333;-moz-box-shadow:0 0 3px #333;box-shadow:0 0 3px #333;color:#fff;border-width:0;background:#4A4A4A;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0,#4A4A4A),color-stop(100%,#000));background-image:-webkit-linear-gradient(top,#4A4A4A 0,#000 100%);background-image:-moz-linear-gradient(top,#4A4A4A 0,#000 100%);background-image:-ms-linear-gradient(top,#4A4A4A 0,#000 100%);background-image:-o-linear-gradient(top,#4A4A4A 0,#000 100%)}.qtip-youtube .qtip-titlebar{background-color:transparent}.qtip-youtube .qtip-content{padding:.75em;font:12px arial,sans-serif;filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#4a4a4a, EndColorStr=#000000);-ms-filter:"progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#4a4a4a,EndColorStr=#000000);"}.qtip-youtube .qtip-icon{border-color:#222}.qtip-youtube .qtip-titlebar .ui-state-hover{border-color:#303030}.qtip-jtools{background:#232323;background:rgba(0,0,0,.7);background-image:-webkit-gradient(linear,left top,left bottom,from(#717171),to(#232323));background-image:-moz-linear-gradient(top,#717171,#232323);background-image:-webkit-linear-gradient(top,#717171,#232323);background-image:-ms-linear-gradient(top,#717171,#232323);background-image:-o-linear-gradient(top,#717171,#232323);border:2px solid #ddd;border:2px solid rgba(241,241,241,1);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-webkit-box-shadow:0 0 12px #333;-moz-box-shadow:0 0 12px #333;box-shadow:0 0 12px #333}.qtip-jtools .qtip-titlebar{background-color:transparent;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171, endColorstr=#4A4A4A);-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171,endColorstr=#4A4A4A)"}.qtip-jtools .qtip-content{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A, endColorstr=#232323);-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A,endColorstr=#232323)"}.qtip-jtools .qtip-content,.qtip-jtools .qtip-titlebar{background:0 0;color:#fff;border:0 dashed transparent}.qtip-jtools .qtip-icon{border-color:#555}.qtip-jtools .qtip-titlebar .ui-state-hover{border-color:#333}.qtip-cluetip{-webkit-box-shadow:4px 4px 5px rgba(0,0,0,.4);-moz-box-shadow:4px 4px 5px rgba(0,0,0,.4);box-shadow:4px 4px 5px rgba(0,0,0,.4);background-color:#D9D9C2;color:#111;border:0 dashed transparent}.qtip-cluetip .qtip-titlebar{background-color:#87876A;color:#fff;border:0 dashed transparent}.qtip-cluetip .qtip-icon{border-color:#808064}.qtip-cluetip .qtip-titlebar .ui-state-hover{border-color:#696952;color:#696952}.qtip-tipsy{background:#000;background:rgba(0,0,0,.87);color:#fff;border:0 solid transparent;font-size:11px;font-family:'Lucida Grande',sans-serif;font-weight:700;line-height:16px;text-shadow:0 1px #000}.qtip-tipsy .qtip-titlebar{padding:6px 35px 0 10px;background-color:transparent}.qtip-tipsy .qtip-content{padding:6px 10px}.qtip-tipsy .qtip-icon{border-color:#222;text-shadow:none}.qtip-tipsy .qtip-titlebar .ui-state-hover{border-color:#303030}.qtip-tipped{border:3px solid #959FA9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;background-color:#F9F9F9;color:#454545;font-weight:400;font-family:serif}.qtip-tipped .qtip-titlebar{border-bottom-width:0;color:#fff;background:#3A79B8;background-image:-webkit-gradient(linear,left top,left bottom,from(#3A79B8),to(#2E629D));background-image:-webkit-linear-gradient(top,#3A79B8,#2E629D);background-image:-moz-linear-gradient(top,#3A79B8,#2E629D);background-image:-ms-linear-gradient(top,#3A79B8,#2E629D);background-image:-o-linear-gradient(top,#3A79B8,#2E629D);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8, endColorstr=#2E629D);-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8,endColorstr=#2E629D)"}.qtip-tipped .qtip-icon{border:2px solid #285589;background:#285589}.qtip-tipped .qtip-icon .ui-icon{background-color:#FBFBFB;color:#555}.qtip-bootstrap{font-size:14px;line-height:20px;color:#333;padding:1px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.qtip-bootstrap .qtip-titlebar{padding:8px 14px;margin:0;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.qtip-bootstrap .qtip-titlebar .qtip-close{right:11px;top:45%;border-style:none}.qtip-bootstrap .qtip-content{padding:9px 14px}.qtip-bootstrap .qtip-icon{background:0 0}.qtip-bootstrap .qtip-icon .ui-icon{width:auto;height:auto;float:right;font-size:20px;font-weight:700;line-height:18px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.qtip-bootstrap .qtip-icon .ui-icon:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}.qtip:not(.ie9haxors) div.qtip-content,.qtip:not(.ie9haxors) div.qtip-titlebar{filter:none;-ms-filter:none}.qtip .qtip-tip{margin:0 auto;overflow:hidden;z-index:10}.qtip .qtip-tip,x:-o-prefocus{visibility:hidden}.qtip .qtip-tip,.qtip .qtip-tip .qtip-vml,.qtip .qtip-tip canvas{position:absolute;color:#123456;background:0 0;border:0 dashed transparent}.qtip .qtip-tip canvas{top:0;left:0}.qtip .qtip-tip .qtip-vml{behavior:url(#default#VML);display:inline-block;visibility:visible}#qtip-overlay{position:fixed;left:0;top:0;width:100%;height:100%}#qtip-overlay.blurs{cursor:pointer}#qtip-overlay div{position:absolute;left:0;top:0;width:100%;height:100%;background-color:#000;opacity:.7;filter:alpha(opacity=70);-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=70)"}.qtipmodal-ie6fix{position:absolute!important}.sp-container{position:absolute;top:0;left:0;display:inline-block;z-index:9999994;overflow:hidden}.sp-container.sp-flat{position:relative}.sp-container,.sp-container *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.sp-top{position:relative;width:100%;display:inline-block}.sp-top-inner{position:absolute;top:0;left:0;bottom:0;right:0}.sp-color{position:absolute;top:0;left:0;bottom:0;right:20%}.sp-hue{position:absolute;top:0;right:0;bottom:0;left:84%;height:100%}.sp-clear-enabled .sp-hue{top:33px;height:77.5%}.sp-fill{padding-top:80%}.sp-sat,.sp-val{position:absolute;top:0;left:0;right:0;bottom:0}.sp-alpha-enabled .sp-top{margin-bottom:18px}.sp-alpha-enabled .sp-alpha{display:block}.sp-alpha-handle{position:absolute;top:-4px;bottom:-4px;width:6px;left:50%;cursor:pointer;border:1px solid #000;background:#fff;opacity:.8}.sp-alpha{display:none;bottom:-14px;right:0;left:0;height:8px}.sp-alpha-inner{border:1px solid #333}.sp-clear{display:none}.sp-clear.sp-clear-display{background-position:center}.sp-clear-enabled .sp-clear{display:block;position:absolute;top:0;right:0;bottom:0;left:84%;height:28px}.sp-alpha,.sp-alpha-handle,.sp-clear,.sp-container,.sp-container button,.sp-container.sp-dragging .sp-input,.sp-dragger,.sp-preview,.sp-replacer,.sp-slider{-webkit-user-select:none;-moz-user-select:-moz-none;-o-user-select:none;user-select:none}.sp-container.sp-buttons-disabled .sp-button-container,.sp-container.sp-input-disabled .sp-input-container,.sp-container.sp-palette-buttons-disabled .sp-palette-button-container,.sp-initial-disabled .sp-initial,.sp-palette-disabled .sp-palette-container,.sp-palette-only .sp-picker-container{display:none}.sp-sat{background-image:-webkit-gradient(linear,0 0,100% 0,from(#FFF),to(rgba(204,154,129,0)));background-image:-webkit-linear-gradient(left,#FFF,rgba(204,154,129,0));background-image:-moz-linear-gradient(left,#fff,rgba(204,154,129,0));background-image:-o-linear-gradient(left,#fff,rgba(204,154,129,0));background-image:-ms-linear-gradient(left,#fff,rgba(204,154,129,0));background-image:linear-gradient(to right,#fff,rgba(204,154,129,0));-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType = 1, startColorstr=#FFFFFFFF, endColorstr=#00CC9A81)";filter:progid:DXImageTransform.Microsoft.gradient(GradientType=1, startColorstr='#FFFFFFFF', endColorstr='#00CC9A81')}.sp-val{background-image:-webkit-gradient(linear,0 100%,0 0,from(#000),to(rgba(204,154,129,0)));background-image:-webkit-linear-gradient(bottom,#000,rgba(204,154,129,0));background-image:-moz-linear-gradient(bottom,#000,rgba(204,154,129,0));background-image:-o-linear-gradient(bottom,#000,rgba(204,154,129,0));background-image:-ms-linear-gradient(bottom,#000,rgba(204,154,129,0));background-image:linear-gradient(to top,#000,rgba(204,154,129,0));-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#00CC9A81, endColorstr=#FF000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00CC9A81', endColorstr='#FF000000')}.sp-hue{background:-moz-linear-gradient(top,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%);background:-ms-linear-gradient(top,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%);background:-o-linear-gradient(top,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%);background:-webkit-gradient(linear,left top,left bottom,from(red),color-stop(.17,#ff0),color-stop(.33,#0f0),color-stop(.5,#0ff),color-stop(.67,#00f),color-stop(.83,#f0f),to(red));background:-webkit-linear-gradient(top,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%);background:linear-gradient(to bottom,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%)}.sp-1{height:17%;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0000', endColorstr='#ffff00')}.sp-2{height:16%;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffff00', endColorstr='#00ff00')}.sp-3{height:17%;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ff00', endColorstr='#00ffff')}.sp-4{height:17%;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ffff', endColorstr='#0000ff')}.sp-5{height:16%;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0000ff', endColorstr='#ff00ff')}.sp-6{height:17%;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff00ff', endColorstr='#ff0000')}.sp-hidden{display:none!important}.sp-cf:after,.sp-cf:before{content:"";display:table}.sp-cf:after{clear:both}@media (max-device-width:480px){.sp-color{right:40%}.sp-hue{left:63%}.sp-fill{padding-top:60%}}.sp-dragger{border-radius:5px;height:5px;width:5px;border:1px solid #fff;background:#000;cursor:pointer;position:absolute;top:0;left:0}.sp-slider{position:absolute;top:0;cursor:pointer;height:3px;left:-1px;right:-1px;border:1px solid #000;background:#fff;opacity:.8}.sp-container{border-radius:0;background-color:#ECECEC;border:1px solid #f0c49B;padding:0}.sp-clear,.sp-color,.sp-container,.sp-container button,.sp-container input,.sp-hue{font:400 12px "Lucida Grande","Lucida Sans Unicode","Lucida Sans",Geneva,Verdana,sans-serif;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.sp-top{margin-bottom:3px}.sp-clear,.sp-color,.sp-hue{border:1px solid #666}.sp-input-container{float:right;width:100px;margin-bottom:4px}.sp-initial-disabled .sp-input-container{width:100%}.sp-input{font-size:12px!important;border:1px inset;padding:4px 5px;margin:0;width:100%;background:0 0;border-radius:3px;color:#222}.sp-input:focus{border:1px solid orange}.sp-input.sp-validation-error{border:1px solid red;background:#fdd}.sp-palette-container,.sp-picker-container{float:left;position:relative;padding:10px 10px 300px;margin-bottom:-290px}.sp-picker-container{width:172px;border-left:solid 1px #fff}.sp-palette-container{border-right:solid 1px #ccc}.sp-palette-only .sp-palette-container{border:0}.sp-palette .sp-thumb-el{display:block;position:relative;float:left;cursor:pointer}.sp-palette .sp-thumb-el.sp-thumb-active,.sp-palette .sp-thumb-el:hover{border-color:orange}.sp-initial{float:left;border:1px solid #333}.sp-initial span{width:30px;height:25px;border:none;display:block;float:left;margin:0}.sp-initial .sp-clear-display{background-position:center}.sp-button-container,.sp-palette-button-container{float:right}.sp-replacer{margin:0;overflow:hidden;cursor:pointer;padding:4px;display:inline-block;border:1px solid #91765d;background:#eee;color:#333;vertical-align:middle}.sp-replacer.sp-active,.sp-replacer:hover{border-color:#F0C49B;color:#111}.sp-replacer.sp-disabled{cursor:default;border-color:silver;color:silver}.sp-dd{padding:2px 0;height:16px;line-height:16px;float:left;font-size:10px}.sp-preview{width:25px;height:20px;border:1px solid #222;margin-right:5px;float:left;z-index:0}.sp-palette{max-width:220px}.sp-palette .sp-thumb-el{width:16px;height:16px;margin:2px 1px;border:1px solid #d0d0d0}.sp-container{padding-bottom:0}.sp-container button{background-color:#eee;background-image:-webkit-linear-gradient(top,#eee,#ccc);background-image:-moz-linear-gradient(top,#eee,#ccc);background-image:-ms-linear-gradient(top,#eee,#ccc);background-image:-o-linear-gradient(top,#eee,#ccc);background-image:linear-gradient(to bottom,#eee,#ccc);border:1px solid #ccc;border-bottom:1px solid #bbb;border-radius:3px;color:#333;font-size:14px;line-height:1;padding:5px 4px;text-align:center;text-shadow:0 1px 0 #eee;vertical-align:middle}.sp-container button:hover{background-color:#ddd;background-image:-webkit-linear-gradient(top,#ddd,#bbb);background-image:-moz-linear-gradient(top,#ddd,#bbb);background-image:-ms-linear-gradient(top,#ddd,#bbb);background-image:-o-linear-gradient(top,#ddd,#bbb);background-image:linear-gradient(to bottom,#ddd,#bbb);border:1px solid #bbb;border-bottom:1px solid #999;cursor:pointer;text-shadow:0 1px 0 #ddd}.sp-container button:active{border:1px solid #aaa;border-bottom:1px solid #888;-webkit-box-shadow:inset 0 0 5px 2px #aaa,0 1px 0 0 #eee;-moz-box-shadow:inset 0 0 5px 2px #aaa,0 1px 0 0 #eee;-ms-box-shadow:inset 0 0 5px 2px #aaa,0 1px 0 0 #eee;-o-box-shadow:inset 0 0 5px 2px #aaa,0 1px 0 0 #eee;box-shadow:inset 0 0 5px 2px #aaa,0 1px 0 0 #eee}.sp-cancel{font-size:11px;color:#d93f3f!important;margin:0 5px 0 0;padding:2px;vertical-align:middle;text-decoration:none}.sp-cancel:hover{color:#d93f3f!important;text-decoration:underline}.sp-palette span.sp-thumb-active,.sp-palette span:hover{border-color:#000}.sp-alpha,.sp-preview,.sp-thumb-el{position:relative;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.sp-alpha-inner,.sp-preview-inner,.sp-thumb-inner{display:block;position:absolute;top:0;left:0;bottom:0;right:0}.sp-palette .sp-thumb-inner{background-position:50% 50%;background-repeat:no-repeat}.sp-palette .sp-thumb-light.sp-thumb-active .sp-thumb-inner{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIVJREFUeNpiYBhsgJFMffxAXABlN5JruT4Q3wfi/0DsT64h8UD8HmpIPCWG/KemIfOJCUB+Aoacx6EGBZyHBqI+WsDCwuQ9mhxeg2A210Ntfo8klk9sOMijaURm7yc1UP2RNCMbKE9ODK1HM6iegYLkfx8pligC9lCD7KmRof0ZhjQACDAAceovrtpVBRkAAAAASUVORK5CYII=)}.sp-palette .sp-thumb-dark.sp-thumb-active .sp-thumb-inner{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAMdJREFUOE+tkgsNwzAMRMugEAahEAahEAZhEAqlEAZhEAohEAYh81X2dIm8fKpEspLGvudPOsUYpxE2BIJCroJmEW9qJ+MKaBFhEMNabSy9oIcIPwrB+afvAUFoK4H0tMaQ3XtlrggDhOVVMuT4E5MMG0FBbCEYzjYT7OxLEvIHQLY2zWwQ3D+9luyOQTfKDiFD3iUIfPk8VqrKjgAiSfGFPecrg6HN6m/iBcwiDAo7WiBeawa+Kwh7tZoSCGLMqwlSAzVDhoK+6vH4G0P5wdkAAAAASUVORK5CYII=)}.sp-clear-display{background-repeat:no-repeat;background-position:center;background-image:url(data:image/gif;base64,R0lGODlhFAAUAPcAAAAAAJmZmZ2dnZ6enqKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq/Hx8fLy8vT09PX19ff39/j4+Pn5+fr6+vv7+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAP8ALAAAAAAUABQAAAihAP9FoPCvoMGDBy08+EdhQAIJCCMybCDAAYUEARBAlFiQQoMABQhKUJBxY0SPICEYHBnggEmDKAuoPMjS5cGYMxHW3IiT478JJA8M/CjTZ0GgLRekNGpwAsYABHIypcAgQMsITDtWJYBR6NSqMico9cqR6tKfY7GeBCuVwlipDNmefAtTrkSzB1RaIAoXodsABiZAEFB06gIBWC1mLVgBa0AAOw==)}.select2-container{margin:0;position:relative;display:inline-block;zoom:1;vertical-align:middle}.select2-container,.select2-drop,.select2-search,.select2-search input{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.select2-container .select2-choice{display:block;height:26px;padding:0 0 0 8px;overflow:hidden;position:relative;border:1px solid #aaa;white-space:nowrap;line-height:26px;color:#444;text-decoration:none;border-radius:4px;background-clip:padding-box;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#fff;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(0,#eee),color-stop(.5,#fff));background-image:-webkit-linear-gradient(center bottom,#eee 0,#fff 50%);background-image:-moz-linear-gradient(center bottom,#eee 0,#fff 50%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0);background-image:linear-gradient(to top,#eee 0,#fff 50%)}html[dir=rtl] .select2-container .select2-choice{padding:0 8px 0 0}.select2-container.select2-drop-above .select2-choice{border-bottom-color:#aaa;border-radius:0 0 4px 4px;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(0,#eee),color-stop(.9,#fff));background-image:-webkit-linear-gradient(center bottom,#eee 0,#fff 90%);background-image:-moz-linear-gradient(center bottom,#eee 0,#fff 90%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0);background-image:linear-gradient(to bottom,#eee 0,#fff 90%)}.select2-container.select2-allowclear .select2-choice .select2-chosen{margin-right:42px}.select2-container .select2-choice>.select2-chosen{margin-right:26px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;float:none;width:auto}html[dir=rtl] .select2-container .select2-choice>.select2-chosen{margin-left:26px;margin-right:0}.select2-container .select2-choice abbr{display:none;width:12px;height:12px;position:absolute;right:24px;top:8px;font-size:1px;text-decoration:none;border:0;background:url(select2.png) right top no-repeat;cursor:pointer;outline:0}.select2-container.select2-allowclear .select2-choice abbr{display:inline-block}.select2-container .select2-choice abbr:hover{background-position:right -11px;cursor:pointer}.select2-drop-mask{border:0;margin:0;padding:0;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:9998;background-color:#fff;filter:alpha(opacity=0)}.select2-drop{width:100%;margin-top:-1px;position:absolute;z-index:9999;top:100%;background:#fff;color:#000;border:1px solid #aaa;border-top:0;border-radius:0 0 4px 4px;-webkit-box-shadow:0 4px 5px rgba(0,0,0,.15);box-shadow:0 4px 5px rgba(0,0,0,.15)}.select2-drop.select2-drop-above{margin-top:1px;border-top:1px solid #aaa;border-bottom:0;border-radius:4px 4px 0 0;-webkit-box-shadow:0 -4px 5px rgba(0,0,0,.15);box-shadow:0 -4px 5px rgba(0,0,0,.15)}.select2-drop-active{border:1px solid #5897fb;border-top:none}.select2-drop.select2-drop-above.select2-drop-active{border-top:1px solid #5897fb}.select2-drop-auto-width{border-top:1px solid #aaa;width:auto}.select2-drop-auto-width .select2-search{padding-top:4px}.select2-container .select2-choice .select2-arrow{display:inline-block;width:18px;height:100%;position:absolute;right:0;top:0;border-left:1px solid #aaa;border-radius:0 4px 4px 0;background:#ccc;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#ccc),color-stop(.6,#eee)) #ccc;background:-webkit-linear-gradient(center bottom,#ccc 0,#eee 60%) #ccc;background:-moz-linear-gradient(center bottom,#ccc 0,#eee 60%) #ccc;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#cccccc', GradientType=0);background:linear-gradient(to top,#ccc 0,#eee 60%) #ccc}html[dir=rtl] .select2-container .select2-choice .select2-arrow{left:0;right:auto;border-left:none;border-right:1px solid #aaa;border-radius:4px 0 0 4px}.select2-container .select2-choice .select2-arrow b{display:block;width:100%;height:100%;background:url(select2.png) 0 1px no-repeat}html[dir=rtl] .select2-container .select2-choice .select2-arrow b{background-position:2px 1px}.select2-search{display:inline-block;width:100%;min-height:26px;margin:0;padding-left:4px;padding-right:4px;position:relative;z-index:10000;white-space:nowrap}.select2-search input{width:100%;height:auto!important;min-height:26px;padding:4px 20px 4px 5px;margin:0;outline:0;font-family:sans-serif;font-size:1em;border:1px solid #aaa;border-radius:0;-webkit-box-shadow:none;box-shadow:none;background:url(select2.png) 100% -22px no-repeat #fff;background:url(select2.png) 100% -22px no-repeat,linear-gradient(to bottom,#fff 85%,#eee 99%)}html[dir=rtl] .select2-search input{padding:4px 5px 4px 20px;background:url(select2.png) -37px -22px no-repeat #fff;background:url(select2.png) -37px -22px no-repeat,linear-gradient(to bottom,#fff 85%,#eee 99%)}.select2-drop.select2-drop-above .select2-search input{margin-top:4px}.select2-search input.select2-active{background:url(select2-spinner.gif) 100% no-repeat #fff;background:url(select2-spinner.gif) 100% no-repeat,linear-gradient(to bottom,#fff 85%,#eee 99%)}.select2-container-active .select2-choice,.select2-container-active .select2-choices{border:1px solid #5897fb;outline:0;-webkit-box-shadow:0 0 5px rgba(0,0,0,.3);box-shadow:0 0 5px rgba(0,0,0,.3)}.select2-dropdown-open .select2-choice{border-bottom-color:transparent;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;border-bottom-left-radius:0;border-bottom-right-radius:0;background-color:#eee;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(0,#fff),color-stop(.5,#eee));background-image:-webkit-linear-gradient(center bottom,#fff 0,#eee 50%);background-image:-moz-linear-gradient(center bottom,#fff 0,#eee 50%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#ffffff', GradientType=0);background-image:linear-gradient(to top,#fff 0,#eee 50%)}.select2-dropdown-open.select2-drop-above .select2-choice,.select2-dropdown-open.select2-drop-above .select2-choices{border:1px solid #5897fb;border-top-color:transparent;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(.5,#eee));background-image:-webkit-linear-gradient(center top,#fff 0,#eee 50%);background-image:-moz-linear-gradient(center top,#fff 0,#eee 50%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#ffffff', GradientType=0);background-image:linear-gradient(to bottom,#fff 0,#eee 50%)}.select2-dropdown-open .select2-choice .select2-arrow{background:0 0;border-left:none;filter:none}html[dir=rtl] .select2-dropdown-open .select2-choice .select2-arrow{border-right:none}.select2-dropdown-open .select2-choice .select2-arrow b{background-position:-18px 1px}html[dir=rtl] .select2-dropdown-open .select2-choice .select2-arrow b{background-position:-16px 1px}.select2-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.select2-results{max-height:200px;padding:0 0 0 4px;margin:4px 4px 4px 0;position:relative;overflow-x:hidden;overflow-y:auto;-webkit-tap-highlight-color:transparent}html[dir=rtl] .select2-results{padding:0 4px 0 0;margin:4px 0 4px 4px}.select2-results ul.select2-result-sub{margin:0;padding-left:0}.select2-results li{list-style:none;display:list-item;background-image:none}.select2-results li.select2-result-with-children>.select2-result-label{font-weight:700}.select2-results .select2-result-label{padding:3px 7px 4px;margin:0;cursor:pointer;min-height:1em;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.select2-results-dept-1 .select2-result-label{padding-left:20px}.select2-results-dept-2 .select2-result-label{padding-left:40px}.select2-results-dept-3 .select2-result-label{padding-left:60px}.select2-results-dept-4 .select2-result-label{padding-left:80px}.select2-results-dept-5 .select2-result-label{padding-left:100px}.select2-results-dept-6 .select2-result-label{padding-left:110px}.select2-results-dept-7 .select2-result-label{padding-left:120px}.select2-results .select2-highlighted{background:#3875d7;color:#fff}.select2-results li em{background:#feffde;font-style:normal}.select2-results .select2-highlighted em{background:0 0}.select2-results .select2-highlighted ul{background:#fff;color:#000}.select2-results .select2-ajax-error,.select2-results .select2-no-results,.select2-results .select2-searching,.select2-results .select2-selection-limit{background:#f4f4f4;display:list-item;padding-left:5px}.select2-results .select2-disabled.select2-highlighted{color:#666;background:#f4f4f4;display:list-item;cursor:default}.select2-results .select2-disabled{background:#f4f4f4;display:list-item;cursor:default}.select2-results .select2-selected{display:none}.select2-more-results.select2-active{background:url(select2-spinner.gif) 100% no-repeat #f4f4f4}.select2-results .select2-ajax-error{background:rgba(255,50,50,.2)}.select2-more-results{background:#f4f4f4;display:list-item}.select2-container.select2-container-disabled .select2-choice{background-color:#f4f4f4;background-image:none;border:1px solid #ddd;cursor:default}.select2-container.select2-container-disabled .select2-choice .select2-arrow{background-color:#f4f4f4;background-image:none;border-left:0}.select2-container.select2-container-disabled .select2-choice abbr{display:none}.select2-container-multi .select2-choices{height:auto!important;height:1%;margin:0;padding:0 5px 0 0;position:relative;border:1px solid #aaa;cursor:text;overflow:hidden;background-color:#fff;background-image:-webkit-gradient(linear,0 0,0 100%,color-stop(1%,#eee),color-stop(15%,#fff));background-image:-webkit-linear-gradient(top,#eee 1%,#fff 15%);background-image:-moz-linear-gradient(top,#eee 1%,#fff 15%);background-image:linear-gradient(to bottom,#eee 1%,#fff 15%)}html[dir=rtl] .select2-container-multi .select2-choices{padding:0 0 0 5px}.select2-locked{padding:3px 5px!important}.select2-container-multi .select2-choices{min-height:26px}.select2-container-multi.select2-container-active .select2-choices{border:1px solid #5897fb;outline:0;-webkit-box-shadow:0 0 5px rgba(0,0,0,.3);box-shadow:0 0 5px rgba(0,0,0,.3)}.select2-container-multi .select2-choices li{float:left;list-style:none}html[dir=rtl] .select2-container-multi .select2-choices li{float:right}.select2-container-multi .select2-choices .select2-search-field{margin:0;padding:0;white-space:nowrap}.select2-container-multi .select2-choices .select2-search-field input{padding:5px;margin:1px 0;font-family:sans-serif;font-size:100%;color:#666;outline:0;border:0;-webkit-box-shadow:none;box-shadow:none;background:0 0!important}.select2-container-multi .select2-choices .select2-search-field input.select2-active{background:url(select2-spinner.gif) 100% no-repeat #fff!important}.select2-default{color:#999!important}.select2-container-multi .select2-choices .select2-search-choice{padding:3px 5px 3px 18px;margin:3px 0 3px 5px;position:relative;line-height:13px;color:#333;cursor:default;border:1px solid #aaa;border-radius:3px;-webkit-box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,.05);box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,.05);background-clip:padding-box;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#e4e4e4;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#f4f4f4', GradientType=0);background-image:-webkit-gradient(linear,0 0,0 100%,color-stop(20%,#f4f4f4),color-stop(50%,#f0f0f0),color-stop(52%,#e8e8e8),color-stop(100%,#eee));background-image:-webkit-linear-gradient(top,#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:-moz-linear-gradient(top,#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:linear-gradient(to bottom,#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%)}html[dir=rtl] .select2-container-multi .select2-choices .select2-search-choice{margin:3px 5px 3px 0;padding:3px 18px 3px 5px}.select2-container-multi .select2-choices .select2-search-choice .select2-chosen{cursor:default}.select2-container-multi .select2-choices .select2-search-choice-focus{background:#d4d4d4}.select2-search-choice-close{display:block;width:12px;height:13px;position:absolute;right:3px;top:4px;font-size:1px;outline:0;background:url(select2.png) right top no-repeat}html[dir=rtl] .select2-search-choice-close{right:auto;left:3px}.select2-container-multi .select2-search-choice-close{left:3px}html[dir=rtl] .select2-container-multi .select2-search-choice-close{left:auto;right:2px}.select2-container-multi .select2-choices .select2-search-choice .select2-search-choice-close:hover,.select2-container-multi .select2-choices .select2-search-choice-focus .select2-search-choice-close{background-position:right -11px}.select2-container-multi.select2-container-disabled .select2-choices{background-color:#f4f4f4;background-image:none;border:1px solid #ddd;cursor:default}.select2-container-multi.select2-container-disabled .select2-choices .select2-search-choice{padding:3px 5px;border:1px solid #ddd;background-image:none;background-color:#f4f4f4}.select2-container-multi.select2-container-disabled .select2-choices .select2-search-choice .select2-search-choice-close{display:none;background:0 0}.select2-result-selectable .select2-match,.select2-result-unselectable .select2-match{text-decoration:underline}.select2-offscreen,.select2-offscreen:focus{clip:rect(0 0 0 0)!important;width:1px!important;height:1px!important;border:0!important;margin:0!important;padding:0!important;overflow:hidden!important;position:absolute!important;outline:0!important;left:0!important;top:0!important}.select2-display-none{display:none}.select2-measure-scrollbar{position:absolute;top:-10000px;left:-10000px;width:100px;height:100px;overflow:scroll}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (min-resolution:2dppx){.select2-container .select2-choice .select2-arrow b,.select2-container .select2-choice abbr,.select2-search input,.select2-search-choice-close{background-image:url(select2x2.png)!important;background-repeat:no-repeat!important;background-size:60px 40px!important}.select2-search input{background-position:100% -21px!important}} \ No newline at end of file diff --git a/redux/ReduxCore/assets/css/rtl.css b/redux/ReduxCore/assets/css/rtl.css new file mode 100644 index 0000000..51af4cc --- /dev/null +++ b/redux/ReduxCore/assets/css/rtl.css @@ -0,0 +1 @@ +html[dir="rtl"] .redux-container .redux-action_bar{float:left}.redux-container .expand_options,.redux-sidebar,.cb-enable,.cb-disable,.cb-enable span,.cb-disable span,#redux-footer #redux-share{float:right}.redux-main{border-left:0px;margin-left:0px;border-right:1px solid #d8d8d8;margin-right:201px}.redux-main .redux-typography-container .typography-preview{text-align:center !important;direction:ltr !important}.redux-group-tab-link-a{padding-left:0px;padding-right:30px}.redux-group-tab-link-a i{padding-left:10px;padding-right:5px}.redux-group-tab-link-a span.group_title{padding-left:0px;padding-right:30px}.redux_slider{margin-left:0px;margin-right:15px}.redux-action_bar{float:left !important}.expand_options{float:right !important;border:1px solid #f00}.redux_field_th{padding:20px 0 20px 10px !important}.field-desc{text-align:right}.redux-container-ace_editor,.redux-container-border,.redux-container-spacing,.redux-container-dimensions{direction:ltr !important}.redux-container-border .field-border-input,.redux-container-border .redux-color-init,.redux-container-border .redux-border-style,.redux-container-sorter,.redux-container-border,.redux-container-spacing,.redux-container-spacing .field-spacing-input,.redux-container-dimensions .redux-dimensions-container,.redux-container-text label,.redux-container-checkbox input,.typography-font-bar,.typography-style-bar,.redux-color.redux-typography-color,.redux-typography-subsets{float:right !important}.input-append{margin-right:10px;direction:ltr !important}.redux-container-slider,.redux-container-spinner,.redux-container-switch{direction:ltr !important;float:right;margin:0}.redux-info-field .redux-info-icon{margin-left:15px}#redux-share{float:right !important}.redux-sidebar .redux-menu-warning,.redux-sidebar .redux-menu-error,.redux-sidebar .hasSubSections .extraIconSubsections{float:left}.select2-search-choice-close{left:23px !important} diff --git a/redux/ReduxCore/assets/css/rtl.css.map b/redux/ReduxCore/assets/css/rtl.css.map new file mode 100644 index 0000000..0b11da9 --- /dev/null +++ b/redux/ReduxCore/assets/css/rtl.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "AACI,kCAAkB;EACd,KAAK,EAAE,IAAI;;AAInB;;;;;;0BAM2B;EACvB,KAAK,EAAE,KAAK;;AAGhB,WAAY;EACR,WAAW,EAAE,GAAG;EAChB,WAAW,EAAE,GAAG;EAChB,YAAY,EAAE,iBAAiB;EAC/B,YAAY,EAAE,KAAK;;AAGvB,uBAAwB;EACpB,YAAY,EAAE,GAAG;EACjB,aAAa,EAAE,IAAI;EAEnB,yBAAE;IACE,YAAY,EAAE,IAAI;IAClB,aAAa,EAAE,GAAG;EAGtB,wCAAiB;IACb,YAAY,EAAE,GAAG;IACjB,aAAa,EAAE,IAAI;;AAI3B;;;;;;0BAM0B;EACtB,KAAK,EAAC,KAAK;;AAGf,aAAc;EACV,WAAW,EAAE,GAAG;EAChB,YAAY,EAAE,IAAI;;AAGtB,iBAAkB;EACd,KAAK,EAAE,eAAe;;AAG1B,eAAgB;EACZ,KAAK,EAAE,gBAAgB;EACvB,MAAM,EAAC,cAAc;;AAGzB,eAAe;EACX,OAAO,EAAC,2BAA2B;;AAGvC,WAAY;EACR,UAAU,EAAE,KAAK;;AAGrB;;;2BAG4B;EACxB,SAAS,EAAE,cAAc;;AAG7B;;;;;;;;;;;;;yBAa0B;EACtB,KAAK,EAAC,gBAAgB;;AAG1B,aAAa;EACT,YAAY,EAAC,IAAI;EAAE,SAAS,EAAC,cAAc;;AAG/C;;uBAEwB;EACpB,SAAS,EAAC,cAAc;EACxB,KAAK,EAAC,KAAK;EACX,MAAM,EAAC,CAAC;;AAGZ,2DAA4D;EACxD,UAAU,EAAE,iBAAiB;EAC7B,SAAS,EAAE,cAAc;;AAG7B,kCAAmC;EACjC,WAAW,EAAE,IAAI;;AAGnB,YAAa;EACT,KAAK,EAAC,gBAAgB;;AAItB;;oDAEsC;EAClC,KAAK,EAAE,IAAI", +"sources": ["rtl.scss"], +"names": [], +"file": "rtl.css" +} \ No newline at end of file diff --git a/redux/ReduxCore/assets/css/rtl.scss b/redux/ReduxCore/assets/css/rtl.scss new file mode 100644 index 0000000..531d752 --- /dev/null +++ b/redux/ReduxCore/assets/css/rtl.scss @@ -0,0 +1,125 @@ +html[dir="rtl"] + +.redux-container { + .redux-action_bar{ + float:left; + } +} + +.redux-container .expand_options, +.redux-sidebar, +.cb-enable, +.cb-disable, +.cb-enable span, +.cb-disable span, +#redux-footer #redux-share{ + float:right; +} + +.redux-main{ + border-left:0px; + margin-left:0px; + border-right:1px solid #d8d8d8; + margin-right:201px; + + .redux-typography-container .typography-preview{ + text-align:center !important; + direction:ltr !important; + } +} + +.redux-group-tab-link-a{ + padding-left:0px; + padding-right:30px; + + i{ + padding-left:10px; + padding-right:5px; + } + + span.group_title{ + padding-left:0px; + padding-right:30px; + } +} + +.redux_slider{ + margin-left:0px; + margin-right:15px; +} + +.redux-action_bar{ + float:left !important; +} + +.expand_options{ + float:right !important; + border:1px solid #f00; +} + +.redux_field_th{ + padding:20px 0 20px 10px !important; +} + +.field-desc{ + text-align:right; +} + +.redux-container-ace_editor, +.redux-container-border, +.redux-container-spacing, +.redux-container-dimensions{ + direction:ltr !important; +} + +.redux-container-border .field-border-input, +.redux-container-border .redux-color-init, +.redux-container-border .redux-border-style, +.redux-container-sorter, +.redux-container-border, +.redux-container-spacing, +.redux-container-spacing .field-spacing-input, +.redux-container-dimensions .redux-dimensions-container, +.redux-container-text label, +.redux-container-checkbox input, +.typography-font-bar, +.typography-style-bar, +.redux-color.redux-typography-color, +.redux-typography-subsets{ + float:right !important; +} + +.input-append{ + margin-right:10px; + direction:ltr !important; +} + +.redux-container-slider, +.redux-container-spinner, +.redux-container-switch{ + direction:ltr !important; + float:right; + margin:0; +} + +.redux-info-field { + .redux-info-icon{ + margin-left:15px; + } +} + +#redux-share{ + float:right !important; +} + +.redux-sidebar { + .redux-menu-warning, + .redux-menu-error, + .hasSubSections .extraIconSubsections{ + float:left; + } +} + +.select2-search-choice-close { + left: 23px !important; +} \ No newline at end of file diff --git a/redux/ReduxCore/assets/css/vendor/elusive-icons/elusive-icons.css b/redux/ReduxCore/assets/css/vendor/elusive-icons/elusive-icons.css new file mode 100644 index 0000000..0654766 --- /dev/null +++ b/redux/ReduxCore/assets/css/vendor/elusive-icons/elusive-icons.css @@ -0,0 +1,4 @@ +/*! + * Elusive Icons 2.0.0 by @ReduxFramework - http://elusiveicons.com - @reduxframework + * License - http://elusiveicons.com/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:'Elusive-Icons';src:url("fonts/elusiveicons-webfont.eot?v=2.0.0");src:url("fonts/elusiveicons-webfont.eot?#iefix&v=2.0.0") format("embedded-opentype"),url("fonts/elusiveicons-webfont.woff?v=2.0.0") format("woff"),url("fonts/elusiveicons-webfont.ttf?v=2.0.0") format("truetype"),url("fonts/elusiveicons-webfont.svg?v=2.0.0#elusiveiconsregular") format("svg");font-weight:normal;font-style:normal}.el{display:inline-block;font:normal normal normal 14px/1 "Elusive-Icons";font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0)}.el-lg{font-size:1.3333333333em;line-height:.75em;vertical-align:-15%}.el-2x{font-size:2em}.el-3x{font-size:3em}.el-4x{font-size:4em}.el-5x{font-size:5em}.el-fw{width:1.2857142857em;text-align:center}.el-ul{padding-left:0;margin-left:2.1428571429em;list-style-type:none}.el-ul>li{position:relative}.el-li{position:absolute;left:-2.1428571429em;width:2.1428571429em;top:.1428571429em;text-align:center}.el-li.el-lg{left:-1.8571428571em}.el-border{padding:.2em .25em .15em;border:solid 0.08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.el.pull-left{margin-right:.3em}.el.pull-right{margin-left:.3em}.el-spin{-webkit-animation:el-spin 2s infinite linear;animation:el-spin 2s infinite linear}.el-pulse{-webkit-animation:el-spin 1s infinite steps(8);animation:el-spin 1s infinite steps(8)}@-webkit-keyframes el-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes el-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.el-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.el-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.el-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.el-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.el-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .el-rotate-90,:root .el-rotate-180,:root .el-rotate-270,:root .el-flip-horizontal,:root .el-flip-vertical{filter:none}.el-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.el-stack-1x,.el-stack-2x{position:absolute;left:0;width:100%;text-align:center}.el-stack-1x{line-height:inherit}.el-stack-2x{font-size:2em}.el-inverse{color:#fff}.el-icon-address-book-alt:before,.el-address-book-alt:before{content:"ï„"}.el-icon-address-book:before,.el-address-book:before{content:"ï„‚"}.el-icon-adjust-alt:before,.el-adjust-alt:before{content:""}.el-icon-adjust:before,.el-adjust:before{content:"ï„„"}.el-icon-adult:before,.el-adult:before{content:"ï„…"}.el-icon-align-center:before,.el-align-center:before{content:""}.el-icon-align-justify:before,.el-align-justify:before{content:""}.el-icon-align-left:before,.el-align-left:before{content:""}.el-icon-align-right:before,.el-align-right:before{content:""}.el-icon-arrow-down:before,.el-arrow-down:before{content:"ï„Š"}.el-icon-arrow-left:before,.el-arrow-left:before{content:"ï„‹"}.el-icon-arrow-right:before,.el-arrow-right:before{content:"ï„Œ"}.el-icon-arrow-up:before,.el-arrow-up:before{content:"ï„"}.el-icon-asl:before,.el-asl:before{content:"ï„Ž"}.el-icon-asterisk:before,.el-asterisk:before{content:"ï„"}.el-icon-backward:before,.el-backward:before{content:"ï„"}.el-icon-ban-circle:before,.el-ban-circle:before{content:"ï„‘"}.el-icon-barcode:before,.el-barcode:before{content:"ï„’"}.el-icon-behance:before,.el-behance:before{content:"ï„“"}.el-icon-bell:before,.el-bell:before{content:"ï„”"}.el-icon-blind:before,.el-blind:before{content:"ï„•"}.el-icon-blogger:before,.el-blogger:before{content:"ï„–"}.el-icon-bold:before,.el-bold:before{content:"ï„—"}.el-icon-book:before,.el-book:before{content:""}.el-icon-bookmark-empty:before,.el-bookmark-empty:before{content:"ï„™"}.el-icon-bookmark:before,.el-bookmark:before{content:"ï„š"}.el-icon-brackets:before,.el-brackets:before{content:"ï„›"}.el-icon-braille:before,.el-braille:before{content:"ï„œ"}.el-icon-briefcase:before,.el-briefcase:before{content:"ï„"}.el-icon-broom:before,.el-broom:before{content:"ï„ž"}.el-icon-brush:before,.el-brush:before{content:"ï„Ÿ"}.el-icon-bulb:before,.el-bulb:before{content:"ï„ "}.el-icon-bullhorn:before,.el-bullhorn:before{content:"ï„¡"}.el-icon-calendar-sign:before,.el-calendar-sign:before{content:"ï„¢"}.el-icon-calendar:before,.el-calendar:before{content:"ï„£"}.el-icon-camera:before,.el-camera:before{content:""}.el-icon-car:before,.el-car:before{content:"ï„¥"}.el-icon-caret-down:before,.el-caret-down:before{content:""}.el-icon-caret-left:before,.el-caret-left:before{content:""}.el-icon-caret-right:before,.el-caret-right:before{content:""}.el-icon-caret-up:before,.el-caret-up:before{content:"ï„©"}.el-icon-cc:before,.el-cc:before{content:""}.el-icon-certificate:before,.el-certificate:before{content:"ï„«"}.el-icon-check-empty:before,.el-check-empty:before{content:""}.el-icon-check:before,.el-check:before{content:"ï„­"}.el-icon-chevron-down:before,.el-chevron-down:before{content:"ï„®"}.el-icon-chevron-left:before,.el-chevron-left:before{content:""}.el-icon-chevron-right:before,.el-chevron-right:before{content:"ï„°"}.el-icon-chevron-up:before,.el-chevron-up:before{content:""}.el-icon-child:before,.el-child:before{content:""}.el-icon-circle-arrow-down:before,.el-circle-arrow-down:before{content:""}.el-icon-circle-arrow-left:before,.el-circle-arrow-left:before{content:"ï„´"}.el-icon-circle-arrow-right:before,.el-circle-arrow-right:before{content:""}.el-icon-circle-arrow-up:before,.el-circle-arrow-up:before{content:""}.el-icon-cloud-alt:before,.el-cloud-alt:before{content:"ï„·"}.el-icon-cloud:before,.el-cloud:before{content:""}.el-icon-cog-alt:before,.el-cog-alt:before{content:""}.el-icon-cog:before,.el-cog:before{content:""}.el-icon-cogs:before,.el-cogs:before{content:"ï„»"}.el-icon-comment-alt:before,.el-comment-alt:before{content:""}.el-icon-comment:before,.el-comment:before{content:""}.el-icon-compass-alt:before,.el-compass-alt:before{content:""}.el-icon-compass:before,.el-compass:before{content:"ï„¿"}.el-icon-credit-card:before,.el-credit-card:before{content:"ï…€"}.el-icon-css:before,.el-css:before{content:"ï…"}.el-icon-dashboard:before,.el-dashboard:before{content:"ï…‚"}.el-icon-delicious:before,.el-delicious:before{content:"ï…ƒ"}.el-icon-deviantart:before,.el-deviantart:before{content:"ï…„"}.el-icon-digg:before,.el-digg:before{content:"ï……"}.el-icon-download-alt:before,.el-download-alt:before{content:"ï…†"}.el-icon-download:before,.el-download:before{content:"ï…‡"}.el-icon-dribbble:before,.el-dribbble:before{content:"ï…ˆ"}.el-icon-edit:before,.el-edit:before{content:"ï…‰"}.el-icon-eject:before,.el-eject:before{content:"ï…Š"}.el-icon-envelope-alt:before,.el-envelope-alt:before{content:"ï…‹"}.el-icon-envelope:before,.el-envelope:before{content:"ï…Œ"}.el-icon-error-alt:before,.el-error-alt:before{content:"ï…"}.el-icon-error:before,.el-error:before{content:"ï…Ž"}.el-icon-eur:before,.el-eur:before{content:"ï…"}.el-icon-exclamation-sign:before,.el-exclamation-sign:before{content:"ï…"}.el-icon-eye-close:before,.el-eye-close:before{content:"ï…‘"}.el-icon-eye-open:before,.el-eye-open:before{content:"ï…’"}.el-icon-facebook:before,.el-facebook:before{content:"ï…“"}.el-icon-facetime-video:before,.el-facetime-video:before{content:"ï…”"}.el-icon-fast-backward:before,.el-fast-backward:before{content:"ï…•"}.el-icon-fast-forward:before,.el-fast-forward:before{content:"ï…–"}.el-icon-female:before,.el-female:before{content:"ï…—"}.el-icon-file-alt:before,.el-file-alt:before{content:"ï…˜"}.el-icon-file-edit-alt:before,.el-file-edit-alt:before{content:"ï…™"}.el-icon-file-edit:before,.el-file-edit:before{content:"ï…š"}.el-icon-file-new-alt:before,.el-file-new-alt:before{content:"ï…›"}.el-icon-file-new:before,.el-file-new:before{content:"ï…œ"}.el-icon-file:before,.el-file:before{content:"ï…"}.el-icon-film:before,.el-film:before{content:"ï…ž"}.el-icon-filter:before,.el-filter:before{content:"ï…Ÿ"}.el-icon-fire:before,.el-fire:before{content:"ï… "}.el-icon-flag-alt:before,.el-flag-alt:before{content:"ï…¡"}.el-icon-flag:before,.el-flag:before{content:"ï…¢"}.el-icon-flickr:before,.el-flickr:before{content:"ï…£"}.el-icon-folder-close:before,.el-folder-close:before{content:"ï…¤"}.el-icon-folder-open:before,.el-folder-open:before{content:"ï…¥"}.el-icon-folder-sign:before,.el-folder-sign:before{content:"ï…¦"}.el-icon-folder:before,.el-folder:before{content:"ï…§"}.el-icon-font:before,.el-font:before{content:"ï…¨"}.el-icon-fontsize:before,.el-fontsize:before{content:"ï…©"}.el-icon-fork:before,.el-fork:before{content:"ï…ª"}.el-icon-forward-alt:before,.el-forward-alt:before{content:"ï…«"}.el-icon-forward:before,.el-forward:before{content:"ï…¬"}.el-icon-foursquare:before,.el-foursquare:before{content:"ï…­"}.el-icon-friendfeed-rect:before,.el-friendfeed-rect:before{content:"ï…®"}.el-icon-friendfeed:before,.el-friendfeed:before{content:"ï…¯"}.el-icon-fullscreen:before,.el-fullscreen:before{content:"ï…°"}.el-icon-gallery:before,.el-gallery:before{content:"ï…±"}.el-icon-gbp:before,.el-gbp:before{content:"ï…²"}.el-icon-gift:before,.el-gift:before{content:"ï…³"}.el-icon-github-text:before,.el-github-text:before{content:"ï…´"}.el-icon-github:before,.el-github:before{content:"ï…µ"}.el-icon-glass:before,.el-glass:before{content:"ï…¶"}.el-icon-glasses:before,.el-glasses:before{content:"ï…·"}.el-icon-globe-alt:before,.el-globe-alt:before{content:"ï…¸"}.el-icon-globe:before,.el-globe:before{content:"ï…¹"}.el-icon-googleplus:before,.el-googleplus:before{content:"ï…º"}.el-icon-graph-alt:before,.el-graph-alt:before{content:"ï…»"}.el-icon-graph:before,.el-graph:before{content:"ï…¼"}.el-icon-group-alt:before,.el-group-alt:before{content:"ï…½"}.el-icon-group:before,.el-group:before{content:"ï…¾"}.el-icon-guidedog:before,.el-guidedog:before{content:"ï…¿"}.el-icon-hand-down:before,.el-hand-down:before{content:""}.el-icon-hand-left:before,.el-hand-left:before{content:"ï†"}.el-icon-hand-right:before,.el-hand-right:before{content:""}.el-icon-hand-up:before,.el-hand-up:before{content:""}.el-icon-hdd:before,.el-hdd:before{content:""}.el-icon-headphones:before,.el-headphones:before{content:""}.el-icon-hearing-impaired:before,.el-hearing-impaired:before{content:""}.el-icon-heart-alt:before,.el-heart-alt:before{content:""}.el-icon-heart-empty:before,.el-heart-empty:before{content:""}.el-icon-heart:before,.el-heart:before{content:""}.el-icon-home-alt:before,.el-home-alt:before{content:""}.el-icon-home:before,.el-home:before{content:""}.el-icon-hourglass:before,.el-hourglass:before{content:""}.el-icon-idea-alt:before,.el-idea-alt:before{content:"ï†"}.el-icon-idea:before,.el-idea:before{content:""}.el-icon-inbox-alt:before,.el-inbox-alt:before{content:"ï†"}.el-icon-inbox-box:before,.el-inbox-box:before{content:"ï†"}.el-icon-inbox:before,.el-inbox:before{content:""}.el-icon-indent-left:before,.el-indent-left:before{content:""}.el-icon-indent-right:before,.el-indent-right:before{content:""}.el-icon-info-circle:before,.el-info-circle:before{content:""}.el-icon-instagram:before,.el-instagram:before{content:""}.el-icon-iphone-home:before,.el-iphone-home:before{content:""}.el-icon-italic:before,.el-italic:before{content:""}.el-icon-key:before,.el-key:before{content:""}.el-icon-laptop-alt:before,.el-laptop-alt:before{content:""}.el-icon-laptop:before,.el-laptop:before{content:""}.el-icon-lastfm:before,.el-lastfm:before{content:""}.el-icon-leaf:before,.el-leaf:before{content:""}.el-icon-lines:before,.el-lines:before{content:"ï†"}.el-icon-link:before,.el-link:before{content:""}.el-icon-linkedin:before,.el-linkedin:before{content:""}.el-icon-list-alt:before,.el-list-alt:before{content:""}.el-icon-list:before,.el-list:before{content:""}.el-icon-livejournal:before,.el-livejournal:before{content:""}.el-icon-lock-alt:before,.el-lock-alt:before{content:""}.el-icon-lock:before,.el-lock:before{content:""}.el-icon-magic:before,.el-magic:before{content:""}.el-icon-magnet:before,.el-magnet:before{content:""}.el-icon-male:before,.el-male:before{content:""}.el-icon-map-marker-alt:before,.el-map-marker-alt:before{content:""}.el-icon-map-marker:before,.el-map-marker:before{content:""}.el-icon-mic-alt:before,.el-mic-alt:before{content:""}.el-icon-mic:before,.el-mic:before{content:""}.el-icon-minus-sign:before,.el-minus-sign:before{content:""}.el-icon-minus:before,.el-minus:before{content:""}.el-icon-move:before,.el-move:before{content:""}.el-icon-music:before,.el-music:before{content:""}.el-icon-myspace:before,.el-myspace:before{content:""}.el-icon-network:before,.el-network:before{content:""}.el-icon-off:before,.el-off:before{content:""}.el-icon-ok-circle:before,.el-ok-circle:before{content:""}.el-icon-ok-sign:before,.el-ok-sign:before{content:""}.el-icon-ok:before,.el-ok:before{content:""}.el-icon-opensource:before,.el-opensource:before{content:""}.el-icon-paper-clip-alt:before,.el-paper-clip-alt:before{content:""}.el-icon-paper-clip:before,.el-paper-clip:before{content:""}.el-icon-path:before,.el-path:before{content:""}.el-icon-pause-alt:before,.el-pause-alt:before{content:""}.el-icon-pause:before,.el-pause:before{content:""}.el-icon-pencil-alt:before,.el-pencil-alt:before{content:""}.el-icon-pencil:before,.el-pencil:before{content:""}.el-icon-person:before,.el-person:before{content:""}.el-icon-phone-alt:before,.el-phone-alt:before{content:""}.el-icon-phone:before,.el-phone:before{content:""}.el-icon-photo-alt:before,.el-photo-alt:before{content:"ï‡"}.el-icon-photo:before,.el-photo:before{content:""}.el-icon-picasa:before,.el-picasa:before{content:""}.el-icon-picture:before,.el-picture:before{content:""}.el-icon-plane:before,.el-plane:before{content:""}.el-icon-play-alt:before,.el-play-alt:before{content:""}.el-icon-play-circle:before,.el-play-circle:before{content:""}.el-icon-play:before,.el-play:before{content:""}.el-icon-plurk-alt:before,.el-plurk-alt:before{content:""}.el-icon-plurk:before,.el-plurk:before{content:""}.el-icon-plus-sign:before,.el-plus-sign:before{content:""}.el-icon-plus:before,.el-plus:before{content:""}.el-icon-podcast:before,.el-podcast:before{content:"ï‡"}.el-icon-print:before,.el-print:before{content:""}.el-icon-puzzle:before,.el-puzzle:before{content:"ï‡"}.el-icon-qrcode:before,.el-qrcode:before{content:"ï‡"}.el-icon-question-sign:before,.el-question-sign:before{content:""}.el-icon-question:before,.el-question:before{content:""}.el-icon-quote-alt:before,.el-quote-alt:before{content:""}.el-icon-quote-right-alt:before,.el-quote-right-alt:before{content:""}.el-icon-quote-right:before,.el-quote-right:before{content:""}.el-icon-quotes:before,.el-quotes:before{content:""}.el-icon-random:before,.el-random:before{content:""}.el-icon-record:before,.el-record:before{content:""}.el-icon-reddit:before,.el-reddit:before{content:""}.el-icon-redux:before,.el-redux:before{content:""}.el-icon-refresh:before,.el-refresh:before{content:""}.el-icon-remove-circle:before,.el-remove-circle:before{content:""}.el-icon-remove-sign:before,.el-remove-sign:before{content:"ï‡"}.el-icon-remove:before,.el-remove:before{content:""}.el-icon-repeat-alt:before,.el-repeat-alt:before{content:""}.el-icon-repeat:before,.el-repeat:before{content:""}.el-icon-resize-full:before,.el-resize-full:before{content:""}.el-icon-resize-horizontal:before,.el-resize-horizontal:before{content:""}.el-icon-resize-small:before,.el-resize-small:before{content:""}.el-icon-resize-vertical:before,.el-resize-vertical:before{content:""}.el-icon-return-key:before,.el-return-key:before{content:""}.el-icon-retweet:before,.el-retweet:before{content:""}.el-icon-reverse-alt:before,.el-reverse-alt:before{content:""}.el-icon-road:before,.el-road:before{content:""}.el-icon-rss:before,.el-rss:before{content:""}.el-icon-scissors:before,.el-scissors:before{content:""}.el-icon-screen-alt:before,.el-screen-alt:before{content:""}.el-icon-screen:before,.el-screen:before{content:""}.el-icon-screenshot:before,.el-screenshot:before{content:""}.el-icon-search-alt:before,.el-search-alt:before{content:""}.el-icon-search:before,.el-search:before{content:""}.el-icon-share-alt:before,.el-share-alt:before{content:""}.el-icon-share:before,.el-share:before{content:""}.el-icon-shopping-cart-sign:before,.el-shopping-cart-sign:before{content:""}.el-icon-shopping-cart:before,.el-shopping-cart:before{content:""}.el-icon-shortcode:before,.el-shortcode:before{content:""}.el-icon-signal:before,.el-signal:before{content:""}.el-icon-skype:before,.el-skype:before{content:""}.el-icon-slideshare:before,.el-slideshare:before{content:""}.el-icon-smiley-alt:before,.el-smiley-alt:before{content:""}.el-icon-smiley:before,.el-smiley:before{content:""}.el-icon-soundcloud:before,.el-soundcloud:before{content:""}.el-icon-speaker:before,.el-speaker:before{content:""}.el-icon-spotify:before,.el-spotify:before{content:""}.el-icon-stackoverflow:before,.el-stackoverflow:before{content:""}.el-icon-star-alt:before,.el-star-alt:before{content:""}.el-icon-star-empty:before,.el-star-empty:before{content:""}.el-icon-star:before,.el-star:before{content:""}.el-icon-step-backward:before,.el-step-backward:before{content:"ïˆ"}.el-icon-step-forward:before,.el-step-forward:before{content:""}.el-icon-stop-alt:before,.el-stop-alt:before{content:""}.el-icon-stop:before,.el-stop:before{content:""}.el-icon-stumbleupon:before,.el-stumbleupon:before{content:""}.el-icon-tag:before,.el-tag:before{content:""}.el-icon-tags:before,.el-tags:before{content:""}.el-icon-tasks:before,.el-tasks:before{content:""}.el-icon-text-height:before,.el-text-height:before{content:""}.el-icon-text-width:before,.el-text-width:before{content:""}.el-icon-th-large:before,.el-th-large:before{content:""}.el-icon-th-list:before,.el-th-list:before{content:""}.el-icon-th:before,.el-th:before{content:"ïˆ"}.el-icon-thumbs-down:before,.el-thumbs-down:before{content:""}.el-icon-thumbs-up:before,.el-thumbs-up:before{content:"ïˆ"}.el-icon-time-alt:before,.el-time-alt:before{content:"ïˆ"}.el-icon-time:before,.el-time:before{content:""}.el-icon-tint:before,.el-tint:before{content:""}.el-icon-torso:before,.el-torso:before{content:""}.el-icon-trash-alt:before,.el-trash-alt:before{content:""}.el-icon-trash:before,.el-trash:before{content:""}.el-icon-tumblr:before,.el-tumblr:before{content:""}.el-icon-twitter:before,.el-twitter:before{content:""}.el-icon-universal-access:before,.el-universal-access:before{content:""}.el-icon-unlock-alt:before,.el-unlock-alt:before{content:""}.el-icon-unlock:before,.el-unlock:before{content:""}.el-icon-upload:before,.el-upload:before{content:""}.el-icon-usd:before,.el-usd:before{content:""}.el-icon-user:before,.el-user:before{content:"ïˆ"}.el-icon-viadeo:before,.el-viadeo:before{content:""}.el-icon-video-alt:before,.el-video-alt:before{content:""}.el-icon-video-chat:before,.el-video-chat:before{content:""}.el-icon-video:before,.el-video:before{content:""}.el-icon-view-mode:before,.el-view-mode:before{content:""}.el-icon-vimeo:before,.el-vimeo:before{content:""}.el-icon-vkontakte:before,.el-vkontakte:before{content:""}.el-icon-volume-down:before,.el-volume-down:before{content:""}.el-icon-volume-off:before,.el-volume-off:before{content:""}.el-icon-volume-up:before,.el-volume-up:before{content:""}.el-icon-w3c:before,.el-w3c:before{content:""}.el-icon-warning-sign:before,.el-warning-sign:before{content:""}.el-icon-website-alt:before,.el-website-alt:before{content:""}.el-icon-website:before,.el-website:before{content:""}.el-icon-wheelchair:before,.el-wheelchair:before{content:""}.el-icon-wordpress:before,.el-wordpress:before{content:""}.el-icon-wrench-alt:before,.el-wrench-alt:before{content:""}.el-icon-wrench:before,.el-wrench:before{content:""}.el-icon-youtube:before,.el-youtube:before{content:""}.el-icon-zoom-in:before,.el-zoom-in:before{content:""}.el-icon-zoom-out:before,.el-zoom-out:before{content:""} diff --git a/redux/ReduxCore/assets/css/vendor/elusive-icons/elusive-icons.css.map b/redux/ReduxCore/assets/css/vendor/elusive-icons/elusive-icons.css.map new file mode 100644 index 0000000..8ebd9a2 --- /dev/null +++ b/redux/ReduxCore/assets/css/vendor/elusive-icons/elusive-icons.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "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", +"sources": ["elusive-icons.scss"], +"names": [], +"file": "elusive-icons.css" +} \ No newline at end of file diff --git a/redux/ReduxCore/assets/css/vendor/elusive-icons/elusive-icons.scss b/redux/ReduxCore/assets/css/vendor/elusive-icons/elusive-icons.scss new file mode 100644 index 0000000..98868d2 --- /dev/null +++ b/redux/ReduxCore/assets/css/vendor/elusive-icons/elusive-icons.scss @@ -0,0 +1,1415 @@ +/*! + * Elusive Icons 2.0.0 by @ReduxFramework - http://elusiveicons.com - @reduxframework + * License - http://elusiveicons.com/license (Font: SIL OFL 1.1, CSS: MIT License) + */ +@font-face { + font-family: 'Elusive-Icons'; + src: url("fonts/elusiveicons-webfont.eot?v=2.0.0"); + src: url("fonts/elusiveicons-webfont.eot?#iefix&v=2.0.0") format("embedded-opentype"), url("fonts/elusiveicons-webfont.woff?v=2.0.0") format("woff"), url("fonts/elusiveicons-webfont.ttf?v=2.0.0") format("truetype"), url("fonts/elusiveicons-webfont.svg?v=2.0.0#elusiveiconsregular") format("svg"); + font-weight: normal; + font-style: normal +} + +.el { + display: inline-block; + font: normal normal normal 14px/1 "Elusive-Icons"; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + transform: translate(0, 0) +} + +.el-lg { + font-size: 1.33333em; + line-height: 0.75em; + vertical-align: -15% +} + +.el-2x { + font-size: 2em +} + +.el-3x { + font-size: 3em +} + +.el-4x { + font-size: 4em +} + +.el-5x { + font-size: 5em +} + +.el-fw { + width: 1.28571em; + text-align: center +} + +.el-ul { + padding-left: 0; + margin-left: 2.14286em; + list-style-type: none +} + +.el-ul > li { + position: relative +} + +.el-li { + position: absolute; + left: -2.14286em; + width: 2.14286em; + top: 0.14286em; + text-align: center +} + +.el-li.el-lg { + left: -1.85714em +} + +.el-border { + padding: .2em .25em .15em; + border: solid 0.08em #eee; + border-radius: .1em +} + +.pull-right { + float: right +} + +.pull-left { + float: left +} + +.el.pull-left { + margin-right: .3em +} + +.el.pull-right { + margin-left: .3em +} + +.el-spin { + -webkit-animation: el-spin 2s infinite linear; + animation: el-spin 2s infinite linear +} + +.el-pulse { + -webkit-animation: el-spin 1s infinite steps(8); + animation: el-spin 1s infinite steps(8) +} + +@-webkit-keyframes el-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg) + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg) + } +} + +@keyframes el-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg) + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg) + } +} + +.el-rotate-90 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg) +} + +.el-rotate-180 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); + -webkit-transform: rotate(180deg); + -ms-transform: rotate(180deg); + transform: rotate(180deg) +} + +.el-rotate-270 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); + -webkit-transform: rotate(270deg); + -ms-transform: rotate(270deg); + transform: rotate(270deg) +} + +.el-flip-horizontal { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0); + -webkit-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + transform: scale(-1, 1) +} + +.el-flip-vertical { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); + -webkit-transform: scale(1, -1); + -ms-transform: scale(1, -1); + transform: scale(1, -1) +} + +:root .el-rotate-90, :root .el-rotate-180, :root .el-rotate-270, :root .el-flip-horizontal, :root .el-flip-vertical { + filter: none +} + +.el-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle +} + +.el-stack-1x, .el-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center +} + +.el-stack-1x { + line-height: inherit +} + +.el-stack-2x { + font-size: 2em +} + +.el-inverse { + color: #fff +} + +.el-icon-address-book-alt:before, .el-address-book-alt:before { + content: "ï„" +} + +.el-icon-address-book:before, .el-address-book:before { + content: "ï„‚" +} + +.el-icon-adjust-alt:before, .el-adjust-alt:before { + content: "" +} + +.el-icon-adjust:before, .el-adjust:before { + content: "ï„„" +} + +.el-icon-adult:before, .el-adult:before { + content: "ï„…" +} + +.el-icon-align-center:before, .el-align-center:before { + content: "" +} + +.el-icon-align-justify:before, .el-align-justify:before { + content: "" +} + +.el-icon-align-left:before, .el-align-left:before { + content: "" +} + +.el-icon-align-right:before, .el-align-right:before { + content: "" +} + +.el-icon-arrow-down:before, .el-arrow-down:before { + content: "ï„Š" +} + +.el-icon-arrow-left:before, .el-arrow-left:before { + content: "ï„‹" +} + +.el-icon-arrow-right:before, .el-arrow-right:before { + content: "ï„Œ" +} + +.el-icon-arrow-up:before, .el-arrow-up:before { + content: "ï„" +} + +.el-icon-asl:before, .el-asl:before { + content: "ï„Ž" +} + +.el-icon-asterisk:before, .el-asterisk:before { + content: "ï„" +} + +.el-icon-backward:before, .el-backward:before { + content: "ï„" +} + +.el-icon-ban-circle:before, .el-ban-circle:before { + content: "ï„‘" +} + +.el-icon-barcode:before, .el-barcode:before { + content: "ï„’" +} + +.el-icon-behance:before, .el-behance:before { + content: "ï„“" +} + +.el-icon-bell:before, .el-bell:before { + content: "ï„”" +} + +.el-icon-blind:before, .el-blind:before { + content: "ï„•" +} + +.el-icon-blogger:before, .el-blogger:before { + content: "ï„–" +} + +.el-icon-bold:before, .el-bold:before { + content: "ï„—" +} + +.el-icon-book:before, .el-book:before { + content: "" +} + +.el-icon-bookmark-empty:before, .el-bookmark-empty:before { + content: "ï„™" +} + +.el-icon-bookmark:before, .el-bookmark:before { + content: "ï„š" +} + +.el-icon-brackets:before, .el-brackets:before { + content: "ï„›" +} + +.el-icon-braille:before, .el-braille:before { + content: "ï„œ" +} + +.el-icon-briefcase:before, .el-briefcase:before { + content: "ï„" +} + +.el-icon-broom:before, .el-broom:before { + content: "ï„ž" +} + +.el-icon-brush:before, .el-brush:before { + content: "ï„Ÿ" +} + +.el-icon-bulb:before, .el-bulb:before { + content: "ï„ " +} + +.el-icon-bullhorn:before, .el-bullhorn:before { + content: "ï„¡" +} + +.el-icon-calendar-sign:before, .el-calendar-sign:before { + content: "ï„¢" +} + +.el-icon-calendar:before, .el-calendar:before { + content: "ï„£" +} + +.el-icon-camera:before, .el-camera:before { + content: "" +} + +.el-icon-car:before, .el-car:before { + content: "ï„¥" +} + +.el-icon-caret-down:before, .el-caret-down:before { + content: "" +} + +.el-icon-caret-left:before, .el-caret-left:before { + content: "" +} + +.el-icon-caret-right:before, .el-caret-right:before { + content: "" +} + +.el-icon-caret-up:before, .el-caret-up:before { + content: "ï„©" +} + +.el-icon-cc:before, .el-cc:before { + content: "" +} + +.el-icon-certificate:before, .el-certificate:before { + content: "ï„«" +} + +.el-icon-check-empty:before, .el-check-empty:before { + content: "" +} + +.el-icon-check:before, .el-check:before { + content: "ï„­" +} + +.el-icon-chevron-down:before, .el-chevron-down:before { + content: "ï„®" +} + +.el-icon-chevron-left:before, .el-chevron-left:before { + content: "" +} + +.el-icon-chevron-right:before, .el-chevron-right:before { + content: "ï„°" +} + +.el-icon-chevron-up:before, .el-chevron-up:before { + content: "" +} + +.el-icon-child:before, .el-child:before { + content: "" +} + +.el-icon-circle-arrow-down:before, .el-circle-arrow-down:before { + content: "" +} + +.el-icon-circle-arrow-left:before, .el-circle-arrow-left:before { + content: "ï„´" +} + +.el-icon-circle-arrow-right:before, .el-circle-arrow-right:before { + content: "" +} + +.el-icon-circle-arrow-up:before, .el-circle-arrow-up:before { + content: "" +} + +.el-icon-cloud-alt:before, .el-cloud-alt:before { + content: "ï„·" +} + +.el-icon-cloud:before, .el-cloud:before { + content: "" +} + +.el-icon-cog-alt:before, .el-cog-alt:before { + content: "" +} + +.el-icon-cog:before, .el-cog:before { + content: "" +} + +.el-icon-cogs:before, .el-cogs:before { + content: "ï„»" +} + +.el-icon-comment-alt:before, .el-comment-alt:before { + content: "" +} + +.el-icon-comment:before, .el-comment:before { + content: "" +} + +.el-icon-compass-alt:before, .el-compass-alt:before { + content: "" +} + +.el-icon-compass:before, .el-compass:before { + content: "ï„¿" +} + +.el-icon-credit-card:before, .el-credit-card:before { + content: "ï…€" +} + +.el-icon-css:before, .el-css:before { + content: "ï…" +} + +.el-icon-dashboard:before, .el-dashboard:before { + content: "ï…‚" +} + +.el-icon-delicious:before, .el-delicious:before { + content: "ï…ƒ" +} + +.el-icon-deviantart:before, .el-deviantart:before { + content: "ï…„" +} + +.el-icon-digg:before, .el-digg:before { + content: "ï……" +} + +.el-icon-download-alt:before, .el-download-alt:before { + content: "ï…†" +} + +.el-icon-download:before, .el-download:before { + content: "ï…‡" +} + +.el-icon-dribbble:before, .el-dribbble:before { + content: "ï…ˆ" +} + +.el-icon-edit:before, .el-edit:before { + content: "ï…‰" +} + +.el-icon-eject:before, .el-eject:before { + content: "ï…Š" +} + +.el-icon-envelope-alt:before, .el-envelope-alt:before { + content: "ï…‹" +} + +.el-icon-envelope:before, .el-envelope:before { + content: "ï…Œ" +} + +.el-icon-error-alt:before, .el-error-alt:before { + content: "ï…" +} + +.el-icon-error:before, .el-error:before { + content: "ï…Ž" +} + +.el-icon-eur:before, .el-eur:before { + content: "ï…" +} + +.el-icon-exclamation-sign:before, .el-exclamation-sign:before { + content: "ï…" +} + +.el-icon-eye-close:before, .el-eye-close:before { + content: "ï…‘" +} + +.el-icon-eye-open:before, .el-eye-open:before { + content: "ï…’" +} + +.el-icon-facebook:before, .el-facebook:before { + content: "ï…“" +} + +.el-icon-facetime-video:before, .el-facetime-video:before { + content: "ï…”" +} + +.el-icon-fast-backward:before, .el-fast-backward:before { + content: "ï…•" +} + +.el-icon-fast-forward:before, .el-fast-forward:before { + content: "ï…–" +} + +.el-icon-female:before, .el-female:before { + content: "ï…—" +} + +.el-icon-file-alt:before, .el-file-alt:before { + content: "ï…˜" +} + +.el-icon-file-edit-alt:before, .el-file-edit-alt:before { + content: "ï…™" +} + +.el-icon-file-edit:before, .el-file-edit:before { + content: "ï…š" +} + +.el-icon-file-new-alt:before, .el-file-new-alt:before { + content: "ï…›" +} + +.el-icon-file-new:before, .el-file-new:before { + content: "ï…œ" +} + +.el-icon-file:before, .el-file:before { + content: "ï…" +} + +.el-icon-film:before, .el-film:before { + content: "ï…ž" +} + +.el-icon-filter:before, .el-filter:before { + content: "ï…Ÿ" +} + +.el-icon-fire:before, .el-fire:before { + content: "ï… " +} + +.el-icon-flag-alt:before, .el-flag-alt:before { + content: "ï…¡" +} + +.el-icon-flag:before, .el-flag:before { + content: "ï…¢" +} + +.el-icon-flickr:before, .el-flickr:before { + content: "ï…£" +} + +.el-icon-folder-close:before, .el-folder-close:before { + content: "ï…¤" +} + +.el-icon-folder-open:before, .el-folder-open:before { + content: "ï…¥" +} + +.el-icon-folder-sign:before, .el-folder-sign:before { + content: "ï…¦" +} + +.el-icon-folder:before, .el-folder:before { + content: "ï…§" +} + +.el-icon-font:before, .el-font:before { + content: "ï…¨" +} + +.el-icon-fontsize:before, .el-fontsize:before { + content: "ï…©" +} + +.el-icon-fork:before, .el-fork:before { + content: "ï…ª" +} + +.el-icon-forward-alt:before, .el-forward-alt:before { + content: "ï…«" +} + +.el-icon-forward:before, .el-forward:before { + content: "ï…¬" +} + +.el-icon-foursquare:before, .el-foursquare:before { + content: "ï…­" +} + +.el-icon-friendfeed-rect:before, .el-friendfeed-rect:before { + content: "ï…®" +} + +.el-icon-friendfeed:before, .el-friendfeed:before { + content: "ï…¯" +} + +.el-icon-fullscreen:before, .el-fullscreen:before { + content: "ï…°" +} + +.el-icon-gallery:before, .el-gallery:before { + content: "ï…±" +} + +.el-icon-gbp:before, .el-gbp:before { + content: "ï…²" +} + +.el-icon-gift:before, .el-gift:before { + content: "ï…³" +} + +.el-icon-github-text:before, .el-github-text:before { + content: "ï…´" +} + +.el-icon-github:before, .el-github:before { + content: "ï…µ" +} + +.el-icon-glass:before, .el-glass:before { + content: "ï…¶" +} + +.el-icon-glasses:before, .el-glasses:before { + content: "ï…·" +} + +.el-icon-globe-alt:before, .el-globe-alt:before { + content: "ï…¸" +} + +.el-icon-globe:before, .el-globe:before { + content: "ï…¹" +} + +.el-icon-googleplus:before, .el-googleplus:before { + content: "ï…º" +} + +.el-icon-graph-alt:before, .el-graph-alt:before { + content: "ï…»" +} + +.el-icon-graph:before, .el-graph:before { + content: "ï…¼" +} + +.el-icon-group-alt:before, .el-group-alt:before { + content: "ï…½" +} + +.el-icon-group:before, .el-group:before { + content: "ï…¾" +} + +.el-icon-guidedog:before, .el-guidedog:before { + content: "ï…¿" +} + +.el-icon-hand-down:before, .el-hand-down:before { + content: "" +} + +.el-icon-hand-left:before, .el-hand-left:before { + content: "ï†" +} + +.el-icon-hand-right:before, .el-hand-right:before { + content: "" +} + +.el-icon-hand-up:before, .el-hand-up:before { + content: "" +} + +.el-icon-hdd:before, .el-hdd:before { + content: "" +} + +.el-icon-headphones:before, .el-headphones:before { + content: "" +} + +.el-icon-hearing-impaired:before, .el-hearing-impaired:before { + content: "" +} + +.el-icon-heart-alt:before, .el-heart-alt:before { + content: "" +} + +.el-icon-heart-empty:before, .el-heart-empty:before { + content: "" +} + +.el-icon-heart:before, .el-heart:before { + content: "" +} + +.el-icon-home-alt:before, .el-home-alt:before { + content: "" +} + +.el-icon-home:before, .el-home:before { + content: "" +} + +.el-icon-hourglass:before, .el-hourglass:before { + content: "" +} + +.el-icon-idea-alt:before, .el-idea-alt:before { + content: "ï†" +} + +.el-icon-idea:before, .el-idea:before { + content: "" +} + +.el-icon-inbox-alt:before, .el-inbox-alt:before { + content: "ï†" +} + +.el-icon-inbox-box:before, .el-inbox-box:before { + content: "ï†" +} + +.el-icon-inbox:before, .el-inbox:before { + content: "" +} + +.el-icon-indent-left:before, .el-indent-left:before { + content: "" +} + +.el-icon-indent-right:before, .el-indent-right:before { + content: "" +} + +.el-icon-info-circle:before, .el-info-circle:before { + content: "" +} + +.el-icon-instagram:before, .el-instagram:before { + content: "" +} + +.el-icon-iphone-home:before, .el-iphone-home:before { + content: "" +} + +.el-icon-italic:before, .el-italic:before { + content: "" +} + +.el-icon-key:before, .el-key:before { + content: "" +} + +.el-icon-laptop-alt:before, .el-laptop-alt:before { + content: "" +} + +.el-icon-laptop:before, .el-laptop:before { + content: "" +} + +.el-icon-lastfm:before, .el-lastfm:before { + content: "" +} + +.el-icon-leaf:before, .el-leaf:before { + content: "" +} + +.el-icon-lines:before, .el-lines:before { + content: "ï†" +} + +.el-icon-link:before, .el-link:before { + content: "" +} + +.el-icon-linkedin:before, .el-linkedin:before { + content: "" +} + +.el-icon-list-alt:before, .el-list-alt:before { + content: "" +} + +.el-icon-list:before, .el-list:before { + content: "" +} + +.el-icon-livejournal:before, .el-livejournal:before { + content: "" +} + +.el-icon-lock-alt:before, .el-lock-alt:before { + content: "" +} + +.el-icon-lock:before, .el-lock:before { + content: "" +} + +.el-icon-magic:before, .el-magic:before { + content: "" +} + +.el-icon-magnet:before, .el-magnet:before { + content: "" +} + +.el-icon-male:before, .el-male:before { + content: "" +} + +.el-icon-map-marker-alt:before, .el-map-marker-alt:before { + content: "" +} + +.el-icon-map-marker:before, .el-map-marker:before { + content: "" +} + +.el-icon-mic-alt:before, .el-mic-alt:before { + content: "" +} + +.el-icon-mic:before, .el-mic:before { + content: "" +} + +.el-icon-minus-sign:before, .el-minus-sign:before { + content: "" +} + +.el-icon-minus:before, .el-minus:before { + content: "" +} + +.el-icon-move:before, .el-move:before { + content: "" +} + +.el-icon-music:before, .el-music:before { + content: "" +} + +.el-icon-myspace:before, .el-myspace:before { + content: "" +} + +.el-icon-network:before, .el-network:before { + content: "" +} + +.el-icon-off:before, .el-off:before { + content: "" +} + +.el-icon-ok-circle:before, .el-ok-circle:before { + content: "" +} + +.el-icon-ok-sign:before, .el-ok-sign:before { + content: "" +} + +.el-icon-ok:before, .el-ok:before { + content: "" +} + +.el-icon-opensource:before, .el-opensource:before { + content: "" +} + +.el-icon-paper-clip-alt:before, .el-paper-clip-alt:before { + content: "" +} + +.el-icon-paper-clip:before, .el-paper-clip:before { + content: "" +} + +.el-icon-path:before, .el-path:before { + content: "" +} + +.el-icon-pause-alt:before, .el-pause-alt:before { + content: "" +} + +.el-icon-pause:before, .el-pause:before { + content: "" +} + +.el-icon-pencil-alt:before, .el-pencil-alt:before { + content: "" +} + +.el-icon-pencil:before, .el-pencil:before { + content: "" +} + +.el-icon-person:before, .el-person:before { + content: "" +} + +.el-icon-phone-alt:before, .el-phone-alt:before { + content: "" +} + +.el-icon-phone:before, .el-phone:before { + content: "" +} + +.el-icon-photo-alt:before, .el-photo-alt:before { + content: "ï‡" +} + +.el-icon-photo:before, .el-photo:before { + content: "" +} + +.el-icon-picasa:before, .el-picasa:before { + content: "" +} + +.el-icon-picture:before, .el-picture:before { + content: "" +} + +.el-icon-plane:before, .el-plane:before { + content: "" +} + +.el-icon-play-alt:before, .el-play-alt:before { + content: "" +} + +.el-icon-play-circle:before, .el-play-circle:before { + content: "" +} + +.el-icon-play:before, .el-play:before { + content: "" +} + +.el-icon-plurk-alt:before, .el-plurk-alt:before { + content: "" +} + +.el-icon-plurk:before, .el-plurk:before { + content: "" +} + +.el-icon-plus-sign:before, .el-plus-sign:before { + content: "" +} + +.el-icon-plus:before, .el-plus:before { + content: "" +} + +.el-icon-podcast:before, .el-podcast:before { + content: "ï‡" +} + +.el-icon-print:before, .el-print:before { + content: "" +} + +.el-icon-puzzle:before, .el-puzzle:before { + content: "ï‡" +} + +.el-icon-qrcode:before, .el-qrcode:before { + content: "ï‡" +} + +.el-icon-question-sign:before, .el-question-sign:before { + content: "" +} + +.el-icon-question:before, .el-question:before { + content: "" +} + +.el-icon-quote-alt:before, .el-quote-alt:before { + content: "" +} + +.el-icon-quote-right-alt:before, .el-quote-right-alt:before { + content: "" +} + +.el-icon-quote-right:before, .el-quote-right:before { + content: "" +} + +.el-icon-quotes:before, .el-quotes:before { + content: "" +} + +.el-icon-random:before, .el-random:before { + content: "" +} + +.el-icon-record:before, .el-record:before { + content: "" +} + +.el-icon-reddit:before, .el-reddit:before { + content: "" +} + +.el-icon-redux:before, .el-redux:before { + content: "" +} + +.el-icon-refresh:before, .el-refresh:before { + content: "" +} + +.el-icon-remove-circle:before, .el-remove-circle:before { + content: "" +} + +.el-icon-remove-sign:before, .el-remove-sign:before { + content: "ï‡" +} + +.el-icon-remove:before, .el-remove:before { + content: "" +} + +.el-icon-repeat-alt:before, .el-repeat-alt:before { + content: "" +} + +.el-icon-repeat:before, .el-repeat:before { + content: "" +} + +.el-icon-resize-full:before, .el-resize-full:before { + content: "" +} + +.el-icon-resize-horizontal:before, .el-resize-horizontal:before { + content: "" +} + +.el-icon-resize-small:before, .el-resize-small:before { + content: "" +} + +.el-icon-resize-vertical:before, .el-resize-vertical:before { + content: "" +} + +.el-icon-return-key:before, .el-return-key:before { + content: "" +} + +.el-icon-retweet:before, .el-retweet:before { + content: "" +} + +.el-icon-reverse-alt:before, .el-reverse-alt:before { + content: "" +} + +.el-icon-road:before, .el-road:before { + content: "" +} + +.el-icon-rss:before, .el-rss:before { + content: "" +} + +.el-icon-scissors:before, .el-scissors:before { + content: "" +} + +.el-icon-screen-alt:before, .el-screen-alt:before { + content: "" +} + +.el-icon-screen:before, .el-screen:before { + content: "" +} + +.el-icon-screenshot:before, .el-screenshot:before { + content: "" +} + +.el-icon-search-alt:before, .el-search-alt:before { + content: "" +} + +.el-icon-search:before, .el-search:before { + content: "" +} + +.el-icon-share-alt:before, .el-share-alt:before { + content: "" +} + +.el-icon-share:before, .el-share:before { + content: "" +} + +.el-icon-shopping-cart-sign:before, .el-shopping-cart-sign:before { + content: "" +} + +.el-icon-shopping-cart:before, .el-shopping-cart:before { + content: "" +} + +.el-icon-shortcode:before, .el-shortcode:before { + content: "" +} + +.el-icon-signal:before, .el-signal:before { + content: "" +} + +.el-icon-skype:before, .el-skype:before { + content: "" +} + +.el-icon-slideshare:before, .el-slideshare:before { + content: "" +} + +.el-icon-smiley-alt:before, .el-smiley-alt:before { + content: "" +} + +.el-icon-smiley:before, .el-smiley:before { + content: "" +} + +.el-icon-soundcloud:before, .el-soundcloud:before { + content: "" +} + +.el-icon-speaker:before, .el-speaker:before { + content: "" +} + +.el-icon-spotify:before, .el-spotify:before { + content: "" +} + +.el-icon-stackoverflow:before, .el-stackoverflow:before { + content: "" +} + +.el-icon-star-alt:before, .el-star-alt:before { + content: "" +} + +.el-icon-star-empty:before, .el-star-empty:before { + content: "" +} + +.el-icon-star:before, .el-star:before { + content: "" +} + +.el-icon-step-backward:before, .el-step-backward:before { + content: "ïˆ" +} + +.el-icon-step-forward:before, .el-step-forward:before { + content: "" +} + +.el-icon-stop-alt:before, .el-stop-alt:before { + content: "" +} + +.el-icon-stop:before, .el-stop:before { + content: "" +} + +.el-icon-stumbleupon:before, .el-stumbleupon:before { + content: "" +} + +.el-icon-tag:before, .el-tag:before { + content: "" +} + +.el-icon-tags:before, .el-tags:before { + content: "" +} + +.el-icon-tasks:before, .el-tasks:before { + content: "" +} + +.el-icon-text-height:before, .el-text-height:before { + content: "" +} + +.el-icon-text-width:before, .el-text-width:before { + content: "" +} + +.el-icon-th-large:before, .el-th-large:before { + content: "" +} + +.el-icon-th-list:before, .el-th-list:before { + content: "" +} + +.el-icon-th:before, .el-th:before { + content: "ïˆ" +} + +.el-icon-thumbs-down:before, .el-thumbs-down:before { + content: "" +} + +.el-icon-thumbs-up:before, .el-thumbs-up:before { + content: "ïˆ" +} + +.el-icon-time-alt:before, .el-time-alt:before { + content: "ïˆ" +} + +.el-icon-time:before, .el-time:before { + content: "" +} + +.el-icon-tint:before, .el-tint:before { + content: "" +} + +.el-icon-torso:before, .el-torso:before { + content: "" +} + +.el-icon-trash-alt:before, .el-trash-alt:before { + content: "" +} + +.el-icon-trash:before, .el-trash:before { + content: "" +} + +.el-icon-tumblr:before, .el-tumblr:before { + content: "" +} + +.el-icon-twitter:before, .el-twitter:before { + content: "" +} + +.el-icon-universal-access:before, .el-universal-access:before { + content: "" +} + +.el-icon-unlock-alt:before, .el-unlock-alt:before { + content: "" +} + +.el-icon-unlock:before, .el-unlock:before { + content: "" +} + +.el-icon-upload:before, .el-upload:before { + content: "" +} + +.el-icon-usd:before, .el-usd:before { + content: "" +} + +.el-icon-user:before, .el-user:before { + content: "ïˆ" +} + +.el-icon-viadeo:before, .el-viadeo:before { + content: "" +} + +.el-icon-video-alt:before, .el-video-alt:before { + content: "" +} + +.el-icon-video-chat:before, .el-video-chat:before { + content: "" +} + +.el-icon-video:before, .el-video:before { + content: "" +} + +.el-icon-view-mode:before, .el-view-mode:before { + content: "" +} + +.el-icon-vimeo:before, .el-vimeo:before { + content: "" +} + +.el-icon-vkontakte:before, .el-vkontakte:before { + content: "" +} + +.el-icon-volume-down:before, .el-volume-down:before { + content: "" +} + +.el-icon-volume-off:before, .el-volume-off:before { + content: "" +} + +.el-icon-volume-up:before, .el-volume-up:before { + content: "" +} + +.el-icon-w3c:before, .el-w3c:before { + content: "" +} + +.el-icon-warning-sign:before, .el-warning-sign:before { + content: "" +} + +.el-icon-website-alt:before, .el-website-alt:before { + content: "" +} + +.el-icon-website:before, .el-website:before { + content: "" +} + +.el-icon-wheelchair:before, .el-wheelchair:before { + content: "" +} + +.el-icon-wordpress:before, .el-wordpress:before { + content: "" +} + +.el-icon-wrench-alt:before, .el-wrench-alt:before { + content: "" +} + +.el-icon-wrench:before, .el-wrench:before { + content: "" +} + +.el-icon-youtube:before, .el-youtube:before { + content: "" +} + +.el-icon-zoom-in:before, .el-zoom-in:before { + content: "" +} + +.el-icon-zoom-out:before, .el-zoom-out:before { + content: "" +} diff --git a/redux/ReduxCore/assets/css/vendor/elusive-icons/fonts/elusiveicons-webfont.eot b/redux/ReduxCore/assets/css/vendor/elusive-icons/fonts/elusiveicons-webfont.eot new file mode 100644 index 0000000000000000000000000000000000000000..0fc2bdf4e7c94bf0d9b85f634a5a4bac5b39ae19 GIT binary patch literal 80440 zcmdpfcVHaVx$m4aZOd$#ZL>w&n|fPm*ODx0ZA+G|Vr*Gfv5hPjfw9~TrbDnz3j`c$ z3ZaCWZk&W9TvEsd@@_gLB)Nf*UT$t0gd`+Lp1bRFdw$V^??*Y#y7S!42lnE)6W=ex)^zU9i_dva;EvCsm!9B= zwsHI9=56Au4S(TCkky~xjsxaFp&8#ioc|^FZ@P=dp! zz`noIc;W=dy-ZG=aM0P39Fa~{NZ7!S6R&BmU+tY z;~XV~4sw)|VF7yt!zxRnfMUEV3f`)m8duXfHCaxI`mg@*2R=6aqjLI9HX0`m3&${G zRxZlrxgEuG8?scANso0RA`b1If)akk~r?LP!p#JCS@Fh##3Q_ z6Gl0-pg$f{l=`}ws*3VhKAu;iN?0{sd9TwcgsZri;BrzSmZDCVrpDVybFw*i@?Ayb z#t89xBw5RaNfl`)xk4>zZpxESlI6s6-+lUT^vCtz+;`u(ROwqe`|A5~s3sWkUq(Oj z5V_nRX%TWKixCey?cAA(3zuBD6z>ayHNkML(nq#$Cw)q7xV(kUsM)@7a~0gZkEKGC zr=+Lvn6i4b*kUDS!6KL~yEuy|S+-(znJ6YAnZS9xKymv5CrW}i&PlQ?p_?Rm1U)AA zg^I27&lN1<)IWamSW)wOl8IO}T;{3pRy34)u-+z=Rk1GfCcU|n? z;dAtsm&am$e_d@&b$L~JRb@pslTO8wv1B41jfBhmA%7?s(0pEx+g0ilRdt3itK2y? z=Z!b#$jL2w2;XIV$e91+w5>O}{hsamJGYbj?mkaHdLFsg_?9E$bNAe%*AU^^yYJSk zjc-D3rc2l96Z&FZCr^D@*Bcuf|2(slKAy|Hs<)Ca=5l}jD%RquIb`MBT%s6d$9RrT zaJXlFh~s&J#le$)uh;7o1pjHPK*Z>IA|$tPijz+rcxwOtrw*Jko$dRd`o&ZG8P%iQ zO&F&H*0G(d;W~#pqt>+gqx5F<#{@U4dsVL%vZ|yIvs>7&&HxYucO9UEsI#_ zc9Y<#BDDk)rx4-2cB`$H!kC? z&2CAO?wGmb0si>(sww*7OzPLdvDa7g-#otg_ypc>-E~!5Z~h;<%>4JMOTNK12a9K! z2pAeqxN$SV^bvVFZXqHk$f7WAB{GQ1AU3iz3~D3wDvHS@pvx48;;`FHR+H6Y7Gwbo zz@YyM=s&@{pZ}&)Gq>{}pB|tu%%o?#;JE(VFEv{?ETIgBck(NYJswG6^dt^ug6xC6I z?lBWdB+`(HfGZI}oWOU9j4^UBFwnoa4MO_(z745hBTUQI?W%&;uR|-WMg3hT}9}h>#9iaO2&`v*I2*NlKY4-;^)p$aI*I<iA|;&nO1YB3g)gHCgYmHBGyStY- zwB9wFhK9<#{MuGNkSM1i|4-6Y+2_lA^Aj> z$EYTw`iWqrCQwoFJBg*d0pt^-eBxg8y$`fCRP@_z3YM3NNmo3zVHRLUItlB#oSN1| zBAZE;qzfYX^^4@8E`2=_kL$1NuOBC(zP^h*B>42M>z}<|fA=ABuJM5{Y;J@w-)}eO zyYz8L#Wht#HU8)UnwWWM<`GPVAJX{it7#nDQ8qVu&VAwz;eA33^w9$u+VUyC*W<8? zd`%VSb5Ti1WvDBk5*uoXo%%F0VS|?8-|@>eYksMJMgI!hl4c@~JomNtE{S!}mu7A( z?ec$_|9kT<*XSLwCGY*(b0gF;b7N_jUEg{Jjdq_VA&eAbkGYL-Rb!qy_Vd^uzD;PElWkN06#4SM+dfqio4Y~7Iz_&&19Rg(~O;@=FK(B2{2(Mhk}A= zz8ou)^ni>cvYF<16H4Px%r$DhFu~y}B4XE@L@_bvV+X;}st98UkCS{$Izvc6%OqVI zNo8_B|LMV+bSfAubJ%gYx=rD0`RCLLyr#bTc%e+oOChXkjp zSMS9kVz%1$3OOvGFU;sPRo>PbFSAf35X%)(NisCF%VrA(R^^(r*_=(G*~;aLHR1DB z^jBsB0ma5!Z4Q%aRYaE>jksKs#Hu(=s)8i|+3SRkIdL3oSLFg+O|eq7DY8Tv<>->nr4@sH%Z=p(@HNtT=u4sLmARF<+)9xBEZT4_+F;?9aE-;f&P9c) zXjp<)*aP{G?u94;J~f05$0SgW^b;+hQ|uA#%@%ge>-iB9SiaCjA`a!#b%~c zeoy9l*J=1jbdwRciVhjhS`UJYV;C=1oX%;*m0 zJQIUu-s3BzJA^`WEuYP2Yl)bPpdaL9E$JY<7@^>Xa=Ml@<=G^rhko9;x>=yt9wPpR zmDOcdo|aYDg%q>2P5!*aWZWC|MiQ!89kU1l+{D zX$A#`^wo%kk2Rg-v5UP-l0N?3@AdWGdi=9Tj_ALb*?;GqeJ?tJI1 zU~#wIzN53#sorzs_`0FZ{O|Ogjk$BrtE<-)UAp9LS6zw8`7p-NEYxx?PWrgZ3SMX? zs;rU>rlgAhra}iLU!qH=W@b|BLv-1WnXkHhlRJcR{rQ>dR{Cw?vDGE?Ps|)_CFAt2 zbXl?(U~_|Vzdmu8f5zakRxVpifs2EOOQ#8i=nilqS(c&2IC*e&cU<*Cq;soi!>{R! z`Yrk`eI!Ye7@;Tkk=^<&`}kL&Q4vG@LA2Re_F{{G2-!GsTPT6DW&~FgksKy*JQD=XObP13$B2`mzlh_#@Mo@z1ke{zuc7!dQuy z#C;oM^`b$~{9FvPxSng{7Be%9XdwbG3Xo`d6DBNAq1!U52Hh6hQA1$sZz(k8>g(Ki zd6Vh1OTqF@F|yj+1iiHp@+wU-QkMhOa~k9}-^k5wU9($vY0HWbedMx{^6v7E5v{xs z?HC#9sOT!kp^?jIv$4V6+L-elV`NBgEoFBn^hs35VKEOZMAl0pYx$ZMHG2hoJ(JM?pGk~?10P_=r8x2e+-ugI^oS1oZn z6kc(~9LciOq6+KK-l)5EPw&?3mb2|~cau-Z;WS^9J8qv`KlLvo!OHfX8P7mdbXmab zCe&gR%hR^PMgF- z_aHr9OoHX0>agu_bOMtID+A_{GYpX>vxwO=CsI4?CXdwp*TSs8^r~@Hr0z622#3XyXt_U=@Ri zf_04ZW@VG=ic})33TPf_h)~TNp_m(9yrELsp~q+tJF>OVL&0;i%~;a$d`goEdkPNB(tlMaToX2bTOyC+Wr`t8b`8dtt)5aldIuzBh87rJ9gPfwUo>NGF zsPC8+*W2R&F1(%V^05@cjo$EyECT5{cqk`8rM5-cFZ^)0_s0^k`#Bm z$+cWg69KzMDITTy zjiyPS96ePP%=8nBmWBN7 zf%XN4A3r2GD9g!o>0KIm*ngQ&!j!KZOph4wtd|)RJTes3q=zXdU_4ov7MPYM$=-Z{ zNv4*qTWQPItGQ8me2| z4ws{w(CV(%`n5vti6@@e@&UZ`*Se?wLWfDQJqZ6rXB+LZDAnCUI&w`qy|^N;cruCR zRMu1#>{l!F_mIzmzd=9cG{|}P%#Lo9>8G4zGMgkOuA!?rVFE*EAu@C}NbsClG?^zj zky3Gp6Gb`##g+DXJmIo{za)t>Z->)r$Y~lnLygBuZluNz*fk4SAHu9ffm};Io+fKv zUrjcX;ZMJJ{rdNQ`n?-A-2TCt?N8ru!_znN_q=PyN&iqfil5Z2TZ1>UU(hUu3OMmg zwEG+2J6=N$iE|r@qjLg<$qH#iB#=t>GMUp%;4X$vX@yG~YBzzRVj)&oxCFs6$XP7H zFb7|1Zv>WmU=d0VNANoAM?DL zp4&ET!2J+*Q@EeUAgMTt3f9XhJ1!;^jQ5Z5k4^WY+*Yi|0jx*BTs{uxQ%#jv;9XoZ_x!sg?SLTbMO;v_7uV+luTA% zfSp#-;YAR*C`2MJ3_&$wlAy?3MS{SO zLO~LEnD%6;0dDw8m{wDXvZinojH+H2lsCm9h2)T(39h0lrd2T^d3?~~3rSE-LpjoN zwIp7eO$(1x)>w9PUV1REOk&57$^bFamGix(q?#a-mOp>vk( z?gV<0F=An6d9NY3cXzsw6=7F%r)5p#pVOzWzd--vYW=r=co&IP{M+~3B=Mo2>Ay6+ z4dSbLC(+iw|IbkpefCNHhnD~RcsIM|Dc>!lz2(I;TaF9C6^1ER5SVuj8nAfE6sj^~ z&(nOyu-yFT^!NG9>2=z%ZeW*lIxyFm*BUDxV({q(LWbYqhnaz}Hw8m0^AD@=UIs`7 zQ47W=(VzwvG~V>Ieu$v&pPqhA9~Go~^i}uh&)oA~A&2AoD30r&(wC4&=wI>6y`=4) z_m=vUTZcKn8Fx49V@PL7!HhcT=*RU9A14oz2eBPKP98e0Zy*mI*VnUqAl!4%#b3hw zX6K>RHC65cfj>be-3>T=b3Px%rl=xgG{n!QXu>fQ2BB4puPb$;LKB3 zFRjf5?PRyj+$w12scY~P^Xk9_dG4!d=g*9G+F&v0DRxCPDwYgia{~z#i4xcj1W^=* zuo1*z*lI;V>~-2rrgSP?=JVRio#iH*$>w!CEllQ^rJtI|2NRbV&qv@1XD)GxImF>y zDLKUR+aWobw8=2SCmjR#DK>DRdXX*qJLg*VdHmt z8|sTSDu|5>El|)Fz6bMy*&>)Xo->d~9K2GL>sKMFv6)*!_Mizs`J|b>01nI7-}q{m z-*@u*2CC<}`-%U4{n<6r28#9{X{wdi5Bn6-pdocGno?V|CWAku8Q52WrQlaKa4C66> zJj{mI`pogrpVgnmZJ#k968Vze!kT#6c$9G%kD$GT@c@~cH2|Pf=JkS2@p_apTbUPh z3X1+bycJ|2SXq2pyaQMd8Q$Xspepjj{*?_I+TzwS`jeC+)?4ep?Tr4plU}GqdN%B= zjjkWai5o6qG@E;e@F<_bAah^|94MV2wiUL8 zHg2f6rXJ!WGf0{QzOusS6-0r#5t#$g1ndN+i3DEAP;xMhz)m`WwKR*CD;d2NrDaib zlaf<%v8WgBhy}d`Wg;tUaC>;+2a&Y`9N{^LmRcd3?KG+`$~fr`By2C@on3nOM!( zripUVh}8lSf_YY%{nj*Z5lt|ap#)JXIX`NuE6TkdtYzlf#*G&=88_}lXJ~R3osq{MycwO5EohLynF!ICZz6wt!c}N|$JOVD9iRN9BYghV?`SNzo^UN{n185Y(Wj42 zP96mS?e7%9S+f=W8AT_L;{GJa1}}k+eGfRaX6|gjf#1QsoBM3>@eS+SS|b+NxyMG^ z7l(p=A24WEk-OpT*H3Lf_ndV@ONs&9k3$l#+qHAYnl8yK9of5jRZq7ho347>6&Id= z)^diK>6z;;FlsC9zVfn5FFAODBy?G@-m%i5ZV^u01<0EOnH|P>AOTGB6eq*ABut?T zfdV9$VUk&phJXTOvaTfb-h5L<`AzS>`CZpsy?@`kFtR21o7VZg-T5}F zu*SUB?5J7VrUlhA4@Dz20$;Ht$Mb5!$Iray0&6llI=I4R-nY-}S}`~pOKA`lr4n)DPCy9`4a!(_g;%9d_&2Y7eLQKhI>p^)1>`J9Agfk+n4+ z+#nx0yA~*2yqG-w3CPpXVz@{#1c)%CXUx?S5(*82(+ihpuqviP;_^^|{!PE)F9MzZ zz+e6XnsN$jqH?BBIuxr&YpMhTVIml46ElTmN0PIs5}-y5l*y;ahlm)_hxNZLVPKQF z!vLQEiX@T`MfAVvFc{CrvV^!e=PEiF=2a+hkO<=-^RLB42=tV^i)K;++y@>l>rQL@ z85du1`;$*S*|)W)=S%vZ^*?XxUG=TdAIVLjKc3N)-rHBL>fHvd+w!HJo~?aPKJ}Xr zx#^D~eLw3v{=^J7AbgxZ53OXrIYzA9d^ zZf&HX-aSnDqg^H2&k{QjQUY%hb~(&YASo1YkIgN)L^uV>gcAS-!8)W8;BiI80s{ia zn?!yb$F0JsOa!aIOvTJJ-E*=czzcano?`XMZ&087CiTgq9K5BhIvc8cOWI|BE8F!J zG>Mroi;W}0*^DG!dBtUy?B2Qk+~KQ6t{Pmks(*QR$KpkW=3Hi7c3m>z!75TLVp>WA zC*x&{NlcT31e8ai5iTtNVQNXCDFe3_tdKr$t|`MDFR)cccnv`B3`#_3jui!gPXJ)h zRA>YyCf5uDR>IE90M(#icCK6reluGPMz9RCTtF$0E?Z9qdt(#xz7HG(yYs$Vp%tYAJJ#d9??CbDj&OBnl_%kiR%2V$xn2K$ z8<3l);FrYxodOxnvmr3UV9AD{R!}w0>@_8;%}KKqC&M=OL*W?xF8G3qUW7D_ zP^_zosTkeT5R?VQ6ym5uxq667j;lsjX9Z5$P>IeIXMt`5n$N~7CWlFx2psyn9*u;#6CzE!S94 zo=Llsu4LGymZ@P-ZlWczR_y}f2h=3OQ~>+Y?7V}-`4Gu#UNKuM!i^9SG>=z|H#cFK zrep+Vup?P$1`hHM79*eFUr}QDp+)DsZ{uPgrJXljH}f^>YuoUit+Z{p5VykTDm_h? z=iu_S7rKW=H&$-C|Lr^b%E`=EX)C>3|IL#;U%7F3s4H*(GtKuRB;_A3OVhuoU0$r{ zvUT=v9N=g_Vtq9pMq z`S7u`_zpp`Byyvz^uxp{68*RTz4DmDGGvrzv7Ubpi-!-AeG7aaOJFChE4egxIEmdQ z2=+-%ixYE9LqJlDiw0uR@dycolQifH1jiw>n|zRJ5J49*k?~Yn!VlbTi1&rYy)xxJ z3bg=iI_|as{^hcZu5lF}6tKiWwiT=+4q_FU>to8en9DBg`sZJ5tk~b$n$K$*(93X( z0V>te+TIG^SiU9SvZ$anYle>uDsJ@~A!OY?w{O;V-r!6#Hwm0!KoepXs=4MIKHCTZ zAJSm6!W>38j1dq6$3Q9GDvsY_Wk-w*o8oFN+1y6(i?FqCK>vRKz`zd&-bwrPr6lw7 zfte5dXhpw%!@!F#uDG3?Pu@*FKeMqs|9dy@K|P7VXelUnMvF*zVgk)qdS1P_oUx19K&8C`8s*|bbCPrl2u=E zMS@V61;GFyK}o_c2;soRQN(3&yu|S=ScakEumP83cAkM~)TTt!QK*LTnC4R=wurZc zo|tD;A&njUEVlp;cdI!O0e5FuRz5Xw^MR52zAHZRg^yg(ht2c1LWFzp6 z2W}piD3xM`>9hKuUV9DV9bTv6vKaO|3Z!Ez*TJnsuq?u3i(8VhAWZyr1O!xNL39fh zuyC$}tg@neNuvpt0NlC=y+f4XbHZKDqDKUH5umt2OJRyD0~AQ4zu0M0h6X!V7FX6( z2mFf1<~j4u(+LPL%+)5s6Njz9w!m!wxg!F4$s*D~L~AK_n}80+F95n`G>@ET1>tij zWX|lTj}5(SfqO==!mtwomK`TO^)$R6VqBXT>+!IKZDb zJBMwCXDrP17gxGe2VgC*9y5F)Df6K7c}UrYE@J@qBo>un;PqHg);x}_`9eWoSPLg% z{g+R({;O~S5SRsIjbvp5Fx{MA-~|ZYF>puf4t>QPg@$b1P2wqE!1Qb65#BWSYj?V) z{U&CsW9#oJ(A!tACmC{t(L^I41rwhIw$Nd$NXi1Lm}ZED#*`Q)LzIG<_*Z5w-miZJ zbwL)J?FTFT$!^f^5JUZhg0pU11{Gw8CFW9jLyN7VU~)MX=b5%jFxfPG`~|pm(sDd2 zFPtey5HOdUdCy(s%Xi(SZ~hWJ=Sv7cUSRG1#_-2JHvA6#f%WSjxbfL%JB)GTytw!K zFoH5L(+;kpn3*5g0UI}K?MW4xk)Pf$47msvio;jug&R;MqE;aBS&_R@|2nA7*LBl# z&yi~Yg1hen`UlDI&X2-&`+ESTmegN#k$x_lGpFbt!w$W%pJ~o4ISYMYex~{MTR`v6 zpe!lods=Yc`mgoRk)^oie48nY;A}27GNY&=7BhL6XW-G3_CH)5A&NGI1!DMp3Rb}z z7)7Ctcp^MgRUjd=nXzzS$ftU)o?25~y=Lm_p0WEb=2p&E#2`n^<9# zIgXm%-VyByQ>BpcN~*^5{g--irV1qlrCEyWcY;knM%MU4$rA*+eBK7%2` zl2r1OP8eo&BV?sCe`~6%TWVUesYJ{L7X={NyB$?j5bIZ*4&Vdwg`A9#Jmv6e@-FGJedV?Em?!bHA7tJ=R z`~?pceuj6eWlejlDZ)9lIO$W_DxD@{cs1+FUvqJqOdyyi45-x$OD1_DWho^GSF0*hB0(J zZwws^^$_`fGrWrNnAdHJnxk%);aiwR7-!jy&)qtv82*f25oWFEyt3o=^Uk}y_kmka z-QKDFcN6!oAA0E557Fe!=bUr%WHS(=mq_|T!4!jMc%V~SuyR0v;%xPVA#Fm=RC8D@ z9aPH|GD+AVK>jvmBM0~Fx%)2pexii5385#2l?=AwR%&lJ{4RZrJp8V`!LW_o1gVd$ zb+iEe`w{dnkokbSF!~EF+P%P3iISw(J4=U+2)Q`_eqz^OnI7jqtY1v7ogOFG>KCIr zR_95cR8=gWi`g@=n(^!D#!r;Da#pZ8Zz^oX zXTE>>HL8mhC$GU~2D7RnJ`|g|0MU6DArQ6aE+QQJKkO3hQml(;hVAQ$&|lh8APFe< z9r(7t4_fHwQe2_fSeb+_~5OV1)slh`|-x>CW=!X9aF`L)9IQM5&&iyJf%Eqq)Cz?=oo1# z4Ei>2c9rOxsw#@=gWDF!2qp$-OvpT)=ZR=FbQGq@@Zj?)Khl}n=*oN5;E>{+WKMeL%3cCigVwSU94uUwz#A8HJBSNT@LS34&CJfgz-pV5vTJIq^T!_DK@IB=8^Y8_u}%#c!Xv?UiM_$m8gd1=nOT{j@8Lj|u=XisF=LoUJcFcxz5!Ft!?ev@%gmj{3%zbO zr5M%#x)+GL=!PD~h6XWg7#_Jm!gO!;i+W!F@!6zR?|z0}b>8$x$dBue3OW4`_@OWk ze?}`&pO}8}Bj@Rd`0vd8|;=UCeMNVN{r}O`1}O$!4}0 zaSoW%B8!fIThaz|<0iQ0fKD*;o0!)Qu3l_TjaWCU29fl;{-5d@E5;BRs0300xL4z| z0jr8%@w4@Y;dKI%H(zEmhPO1hxn>^g4~jU}A1sCo_%(?gAzSnp&L@1w*e$p0yXBTM z2DklfGf%dY@9zH8tNM3Xfql1>#x;y_g(it49DZ(XaWyz26S?t$Rk#b<93>LdaZ3WY zB#RPDA^^y_z(U^`B8GV|#9=ceEU~u~dJ9kqyC29NOk9dH8v+|=%u=8+Pf`&m?t9PE zyPqbn&fHHQfAX(?#Xm-R6KTN!Z|A?G|9~BNlFhx3qKy=76d-jYe+|ex$T6sWDWvI? zA7zC3QTo{BOY;m^&*n6k4%p5+`}OC@?c}r5A0-GU(_ifUKKM-q@T|*G_YTxu^3yO} z{^=P@a-^;Am;)1OTSyGf!twpYr#YQItn@ONj7uo|h&7BjDryFh&J=S*d7EUiVQ#_L z;Fi>JJ5iF}1P?;x9`_JeI*{Tup9_$DCn3&3&go8UQJ+INe?xU$HH=54G%BfV3L)09WDIk*ELsMExD?x4!jhiC zThC7;fg#9%7$bTu?#7%oFxMCeac+NZ`v%8)gv9GF-4G78 zZ^cWVd6g>PWqUthAD7SkiCQK;?srpdd`s@vb7G!AaQ__FH{UEMPD^rs$Z@-7=+zrJkk zjzB=LS5+7I7(r>$7U2V07s#|IUOa{Z6W$c zOUMv$V4?;bng#MMBtU=d>s?>iboS~sD+ZE_FF0r8?lTC`wyK${N#1D*Wy_RMl1ybi zp==V@o+oo@Os}zkk8oZq!$=|amI`~JSW;ltI0j9x1YCo@po9h?l^C>h}<&$p35G5@M8k` z`gDXxqx4$3W%@tpxY4xJ=ChmI)OXB}K8mAbL|~Uehv8DE+^jib9-1vwOw5*HV#%8n z8Y|i%V!0K_Cx)U7FyuT7E%IWqLC!9m@V{u>O24Y#j`Vd4>?d~?bu_nFn%8sVx~$ZT zKxxm8Dl?X0><9zr6AHSo%?;;*U&bC|oRqobSf`;WxswBkZkm1s8sqHPy&X7!YFygQ z9V)`QfqJ0~32^li`VQPDbAl#do*_fArkMr1)v%dfD)B1Mu@YUqu3-mQdw(0h5hxOxR z5pA0Jsy;X*ta|a86Z!TL^?MdTIK{BaY%4J3mCA_ zGYd>u_!DG4_7fA&7ydMR7Mt7)e=^QG<0w0UIrU48sDtil-UC23qLp8cOT*Om8RxnW5-YWu$Q^c}@-LNw^ESWux@dpUE|Or_RAd8|HY`l9|C z>G~XzZ1(s@-Y!N~b*5H*PJiu&504Hkx;EGuk6V5A_=hO{P~&*gTfHuHWqrWu{xD85 zeb_47?eXY4yI+hk%%@G6%}hdA=q)BK6j`JLDcMv`qn2vA zpr#kn${R>^AE`crQhrD8`0ZzWcs;H*?;f;{j0M{XvdZQ zAcD;>ZkX4Y`^OCZsfW8(xVJsPTkW#R{rEg7?sAWG*HMnYI2$+sF+CGisY@kpr{If0Zu`ahMgCZm5O9k zSRyX)DOlu86G${=b;34ccG##@G$TR}xEz5k7N)`qP+?1qZtba>5sEuov*Yj8j5-nY z=U`PjIfv+UyiwI`%m+?YeX`NKRpDW$_%B-vuLBe2vEf;Jd855-PW*Fvf=!%%Qctky z_0MTEn}ct0AOAC2TAIgW#j2GnM8N=RU2y(^{rmRr*}ZFQba2gzYgb;=-d117TzEo{ z*rPh#h9edbMg3n0e#8<3XJTY|10h3Mj*v!Q2^Qe&Y zsbp1yt}B)Y%}Z|OJ(4OZ@RsmdhbsW6WgGTl`2n>E?u4#Buh zK0rjXD^wZU)JsF{!I**^pO;)huKn1x!cw{dwM!Ons48TM7={sREGa1mwh+PYD-UIw z%M?j}M(~?G76qs#^R^)h30jh@irWff8cSa2-eOlpV46f{EU-FLV^;=T%kZQKh=9JQPEKhb^|vYZ7dsRMtJFPYL9mf_{L!V^Ro-W{yHRK@5uMBmf(VO!1CUqVe#PDqB%MSSJc+o0KW_2>N1V$d-H<#d(!Y6W+k(=J zHoR$Rd12jb(Z6ZwGg`tH@|%}l*b=rj-@Np~maz5qrll9O`^^iU-sIWEQR?skpkyJ= ziFO!t?UJ1U!XqhmNtptW6>_mmcOk2tNxKnk*|$kEwq{$UqYn#o3)XR?^}N3Y#O}v zH_oQZTi#SQtKO>Ke2ZH*N4YEddI@*<(B+q%d(Pyxty?xvY#Kj%6FS&>Nv z14x#*lB`sj_SlHbkTPJj3=1Y`UhHIfyDUR{lx83NO@c9U1~ zYFRDE=hT9#@o=0p<(oPfc%T3VAi}7QL_oY|0B`nNbu#O?0ma2su$h%;1+I`6Ec=tog_jj(*za>@J!VSO! z+hqg})6M*t_?h2-nm+t6vAQcFYg7E>p>#_spvdG`;3ySw!DrR%0r<~_oYURWv@22V zlVL=VM9|!80&x}aF@1?6pgK&L^MvldRuQ0rsy59Q63Is;C73Q&hN>byn@J#7-|dim zzN+&O+^f1H!SZ0W&uf#?;`K8>rcrU`MUhrq;;pVq1%X)&Utgt)T3IE6;M-KXQ42c30KcRo(7JbW6(yxC4_V+hFK6f5) zjDsh>E{yZPdIO)$k>XW|uH`(Un@3a&i=48UsH9naX0IqKl01(5;fl?s46?0a8xE=g zhhMZQw%&zq5RQxew;Ueu;1PL3Dg(nRfI}*bhO0+i~4~GK* zuQ#5G!><~Sh2dEZlm!sW>-Bs6#v>%0D$L*|UnKKKB4p96WqAe=MKl#R`ujutiqOyN-twFWx!VT@0Vs|MC~g4@oW&waG`p{7Ra5YJj=1v<2M zrNUbfoZdjJei((9b0)XTZF22`Th`7g;M*c`5E1bWNae@vYM)?a2uXW} z%y2|{ke8LigA@=kfv~*IoI@i{m8At%Z8mj?Q&rm-XH#thTQ-l5)Yin~2lnsUdCs=Y z+qZ1rxPD|}bfRl1l70-=4#%tG)!B^Og#g1uTy@Uo(Me>G5uPQ;VR*MJOm|3pn~>S8 z$mS$3$v3OUj_T1ciC8JwKwvRU77P{akrYVg+f-;SeHiQ715)_PuO@3Ic31GBmX&zQM6S@esk80k%^Nmm$|5uW z(cQIt8NVi28^nJ_OUpcah!tqoqukEoc{g92iA6+M(h$ZQDUYU zd6#8qLxxQ_qP7T}qJV1?oDZAj8PIH+`u;OFuUmKXGo{VUQ~hlhT;=G> zS!Gj!CrwLgdtwm~ZqaL(oaGuqz$|9o>InNIikxyISv|A@vnqQlo#+%yd*C!_yjbRT z*(*iS6sFD!ORyu%TYNTG|3q0v_1FXMGt7+>Coj)hu|jBwMQlkv)E!;4sdrn{D>+kX z-=xp#G}%bl>fGyb^0$>MiUlr6xiR$4cZLFX53o{#Y^GwF`!?R`+3U2H0r)POpt)Hs zXW6Vax0((n5N`k`nuGA+R$LCrES5*Bu3MBWLl~C9Q;)-5CV-0p#fzv(*ijj>%<$yl z+kB@GfDE&ol$0J&!aUTb&&+)NGXk%hb=TAs`5o$n4UYRL{3MJ4$%tvID^`bKh(Wag zZver;jf1E%PY?4q38R>INJbRS=b2wgp3MQ3hHr`ZWF9&B;~8Y&mw9P6g?}N90Y=hI zF^=@am<*b*Nx!_2w9MR~U*RWs)LK>(@CwB!N6mk2*uLWVY+S z;{*Ed92VJxG{iso+0TAPvUXMfn$v@P(bh;vex!;>`au zYg@D;d(Wx0{Dp71YArKOg^3S>(czXJ9N zPlhPSvK-Y%EB9IjUp7D~}!F;gT0w@5aG?SSD4q63g@ z$pUfMt2x6ahwKp~vl=l=PAd&mjXUgcQd7~)k}#w!L(Zhb0;_5)zOu_`qgeOc*>gcGOp)>rxygdayz9(b({+m5Y+fRpcwiWjPfxZ=G^E;XusZVT zgeZC-X+t+aTabUtn)W*sKu9RHhE6qVs|)9rZTr8;c;FeMw1{&DW)CAOElx; z+IpJ%5qCrJIw0dP-DOiE2x9x-18K-v&)j=YzEh&`y_BJW;1{hSrAPEmJt)(;N&C>abhwV9wgH!;_XcR zPkr(6&piClJFZ{0w5=tTJTpoNNoVqGk<89WyCi!Wy;v(e=CzRt*udOqjk&zf!B$g& z>2ip|g*S~k)YumOMyw@R{7?x?@yPyIT3Bpn7fMsUnc4XeVhu+l<7g%499t_sXo^@< zS>~mzMG6h@IDAlil-3x-pJ#|!NUX=@hphc+k5o)(vl3rPqZ8q`3pR8Hj z!Pk}%Hz>MUE<-G$L|v2*CVYx0`GHX-PRRV;kVVMbWk{7)vpH544Vlemmy%K}iNsnp zf)oK58%$GyN_KOm#_#u5*V!5^fp{QQye|_H)g8{EWa3U#4X|uWS_`e5dtdUE=5sx*}XC!@Y!Oa zN{6XTbK2b2P}r>Xj~4G8E)(&@GzbFrvWQu+IW1{RyeuK$K#Oek$7Cf1?*$Q;RAzV^ zPu)!6;h{ZP1;59V&6;dBlM}9I(c{u2r{?gm)t3pd&h@xs`bUe0I!6wtdMib%9B4%&$YQ70Dbgo7xutPEkJ$Rjp9#!BuR=&!CCUe~{VVEu~js*dUo zgc2K&dB&Ta#sk}s&JeKc67Ulb&%n%Lf5tpC9-ooT72-(nVlWniiIfC0M!I=lff08p ziB*th_7i-8LdRH!aO?*YFTFJJgPGrGk!W{(J<>VJs@2vNMS@YSX2(|jrm;uzFD$BD z6ZW}nwUP4m(f*Lz=In}mX6pJx5^`~>u5(QpserD3VYo=>%$M8uY=JBB@t0oO_@f_9 zzcSk0-4TGpPi8)N?L9~M!HokAv#_)GvJEW z9CT5ejXYpc1a*IXwbNvle38ues+;-7tKk zu^(z6v~b1*_y}z&FDy!Ve0h^^x81E$v&&@L?UM^ySw|}6OP4tt`R>Y|XuIS(&*I$e zOPVWWi<uGES$OO1ITpTo$KjPWpBehvhs~?no`E>6)E4otQTl!luxMye~(J_MtV) znj1370H6&(e)S!5!~UBA!~y28t#C0x?g5}1ux)sl08lb^<|36t#WX9(?fEatjTJ-f zixY9e^{rgIu6&V=k0cIS0%!gUshOuS#qR8mr1N$*=+S4ByA_A6f1c_UeT*sW&m!8Cv2+cuQ< zwz!i+_UM-t2nHnV{&Lhl6mzxpRkTgE4G^vCj-u1NB((BFR+sg@uxXQjsIj}yz#~Ae zw|1~>vo(01QzIW*7Vofn7T?+(EUgW4;;+Jo_|F0{S;4JA9*ptghQVcCo)ee)p*l># zuT{^|HT6WwsMw8YFQ%qJT7n!1+#-U>$yPj01_9*|mW17ajhz+;wq^6`Rh{iEi&zvt zQ`TSyhkyZ<8(j?fB_sM|L)bvq)lw{Xmgog!9=Tf*h^dM~+(jX%bCRLiAybUIB%+j* z_FNpkO2Zz2-uE%wRV|30@pK-D{B-Yil4!B|C1Vqyd2LO6u|K3id#V{*qdgGmurvgt zlF4DVCuTn8UhR&X^CakXr^MwnBow8vI}{gJ$t_cU*=%=4W$o;8az$qAru#*&D4J7Q zvA#uKq*Tg{N^6x^kM5w4KCeJp7cJklB8Q6_?Ah^6vWsPFj z^egN_;(MVKveG$-(@t#q%WkbQK#E_qch@+PC);ez)PLcFmnH0Z#TCEd=0wEdd(KO> zXCq=-`&WzQCv5Bhf`kmb26nkxZZn5xBtVYhCi*)Uw|L}q#q)m4`z zS+XTrmRw}H6WklN0aHvh1_Fd0AUM|qk|X)t-`4KV?#|3k`Ifgl@AH%gn9dB#U+=FkvGfOm?Lo#$0%2G%?!J6`Bg7_P zC>0mCR9bC4^+s758+_f7snU*;etd?IWui&sSQs8KJmo>9X}h!|oTu zW#YS*eEZ_Q9_(2WvfDyxU)`=c+I3m5`Sx4u1iuSLW57ch47D}r@U%2WDMW$m%^iOW zW7dB`dV3?cGC#Izxfuo}1}iEL+K#TF6y%_>2g(HWct}-ppy5GCLm?>Fz**qo=}Z74 z0_$oRFKVLARC9}aoNzKZhMJ6USvxXt#zD6pQu5O%a(wp4#fwW6JjI^f(|0x z6Y#lXftjONhb}NW7N!$?1n%M}(JSFbq#S7)vG5n*n;>;FJGL*K*(2Z4n0(-xZ>bEgnbEiewR!dje6n!Q~g~ZoR$P z=(R(Hp(Kne=TnDl_K?C-Qs2|JxIMp#wq$yfMa^u9uIi>G!30~@+&m0ZddJF8#wRyA zTKe1`hjp!;S)&ed4f~R@zQ<;*Y$+~Qpf1zkY;4c>K`29O^_v2?E4cT8e(c>30%)rl zg{gEO-o}0Sf6&>OAoipB+Hg&L4O8A3inp7WMObJnMj;}m7Lrz`1?c;c-6iy; zt0STM+Uk5dUs@EZic|%GuyK^e%{2u!F{-;^Ni!1I#4{$ni<8pS43--CmuwiVVfK5O zXPQz>R+TAZ;0+_9F;bk3yJ2-B+7C zWABb_ONSTr<<6-+CmxR{9iaL&kaV*Hv1IaqVOnNWQdHB15sW^_;p#=8!C?t#{e8lRvX(AtWaL$eG3md>>1NW7SOWFgSfe&4QkOsE8oO=Uv)+I8{^2cvnyp zF9r?=QTu41xyKV?yhZ1UY5g*!ZRJ|G+@P0fz2KO((Iv(e z#i%vcSK}Mvv6!p!=EgF0u=cBh$Er50igc7EJvQgqJm>34gEdsA&s1L3wCNCU*YSL3 zxURA0toG_0##{dQ!|0=Ou7O)mN(nh6QCE+*R+IzjE+2+jhg%@Xx`K=ch95>d4btS+ z@|$r|+Yo63%Kv*2(G_)SKxfi+0d=-B|oG06g~vR5PF zroagQQ2-q>qKnOZHsqvd5}`5D=~DwkE0sH{(Lx;<@9`hsli7%Gh5W(` zPlsXWQ!l7qd^Tt)7M277ThXYrdZkhsDOOpHGS>RJJ>wx(Wl&IkO?mo!a zMT<*IFTQ3$Y1kZG$s$Z0RA@9>r6<`1>aRTu8;kvs^ASQ!t!Wd4;rnlFW!p|?^|c`z zk1-2o0F1k!!lV;Yqucg1Fn;Kfhx3e|7>hc2=KCD8dn#aXRk_pUhc0iu@25=R0g0kq zZVF^`jICSG2A?{udw|9ZOmfE`$9-U2goE~>PfIlusFesIXaQ$O(#XU`;FU908np|$ z5GeU$vYTvjPbxlqVbSSZY^Hcx-nsk0+HlfQv7q!ht8nH(q$+g?X)X_b%P0Sby(*RpBxow*Heo*tv7dTwCwC!t zIkz~!X#XzwF&q0T%&3LOI85}yGXXPjdZADm`oMt4%$*n;8ZJA0@kQsJvv*I!&W4?% z%Ob%lH6dKm;WQG)xIMV9@aqE#v{=x3fIE^Z$2mIO&W}gc6Ws%9uKxAOY9CL9?*}czi6wR{qfYMzH|F7N{_pi z)ir^fT@}w|I-j`u;PBKBahKDX?zQn?wJD)1a(Wv}t3d;v&?QajaALeIlS!YR&O6IZ z)uG;KbqjryFx7;T6#UR@*Cm}?T5)}peGbi6`b$tpLtcWxwpk(2GRP@7InOiA$URD#Do$DNhm??jOY z98|j%38lGwe*v!pbs>NOaU7!FFgZzi0apW4svPJV6pY}`Lwg4fGjxLx-UbVzii&$w ztgoh~s!FG;$zkHl6l%grKWI9Js-H`=fqHI=n*vXhQ=lG}L;-1;9`c!2tV4VpbH{Xc zN747g9bs185$?G9`qMYvvPo1Lb{Kfq4#SSASNCZ5uzR$7wBowkZ@+zB=V{!(KjvKL zTD#V@ZhW9t{C_N0Tbd|N6yxu3Fd0nZ@8{X)h`4^k=>z~d{F1?9vU+C{4y zBq4yqNkUX0V~gVfK3GXVF**HSKK)AT5J3W8o6n0MZ_RAwFUoAqh~Info-coV$1fjs zJSy`!9(7EOnw~TZr+v-*Bt#zYPnLfAqFds(#PJt6I3`-zAI92S8e1D0S{q+&s&1;r zpLlmcVo|b@XT~`TFj!YVP7Jv-Tp5UU@fh9t4FsCQI8UGy5bYK+8im-$35Fju5^zj; z^GNDQ+bFhv=8aG|YPBLH@3Z=lctOmNgfC#gA^r>Di&?gR*Oh{6eY@x2B!pT$+WG zL^)|5|K9bi?E3G4U#+$j*oTFv5P#zO>)9E7Vv~3&+dpd#Qh-SdmGD%7L(U7pA((mu zD2HIs7Pf~itG+VR>0OQ)X3wUJ}2Dd=?xm<}`mo>?f;5C4?Tp67}AiFIO> zfUCv0aY#j>))h2n$OGe$l482z`u1$jS^%>xVC~>i%En5S!mY7 z-Gj;tJ%BWn%H{_}pjoDR_$Q`%M1@qN{{3Ue#6P_KHhUJY?>+R8_}(!b?x!9vm=tNA z#*qp<5LR;5i52JdS1>t)^-YPsI*1pgVgyI7=rJ0h*hVGlAglrw(o3X$VY#_n0z%Rv z4w4QBAe;v$zf6ZmkLd$khdRc$j;(!Y-7)Fd$QPaIXLfjji}F2HZp>QAh(}P!K@5k; z?+Iv%G$K=)9I5>iWGirfW=J)GIZ?1hE*oeEh{)|!iWnJeXP`U4;ReeRBW()qALe8y z03DRN2FwoH*Yk$l?+$w0ZqHziGI3d{x+G|}m1@=vZ%`H60WF@7oGN!X7djke3ttbL zD^GVTwLmtmNg8D|zD zoTSGv0|p>wVrC*ZacP}uhtdu>21Qu)V1Z_O*ld!RYbj)mA#soUR|Y0}vID4mX$ z1jcDEcw&E`f1MLu3RTo`x9{fHZoc`o4Yg}(mz{a$17|I2>MZVS$tCO$oYmPh`Qt*I zWu|R=5#K_5qr5BvctOzt3*bdG((81d$|FVg~#u45bFxLrHlU z0a@^RM8gp{0A|P}&*44#jnxlFn%!>m;YGX~h16Olx{X#T{$7sR90ogzPv^}GPxx%& zYH1U8)aqm7(gyEAkU#+DpILw<0=EE$-9Ljr?cZT9=(r^KK;R8Y(*l9&Km>;uj`%>p zEr%fk`FbMSkb`0)m$pW8VP#a{TW>OpWu}|Hcaw$v$b8fHik2<~Q_{#MpGf`&cMayD z80O#@cU7TGC&kHu(g9VKpwbAc&072bsUl8*BLFTJbbi6n22h0*2_gK9Muqt|O&fur z8t&<5-fArGhr<;P_@zwqH250Uj~qNhJ{>t;2rD_O(vprM=$`>Ws6yz3qO?d%oDl5k z?!9Oww7rV^E^j?@F0(yxVC;s`(Hp*e&8AJ)oF+u`J35b0o%xeb?!9^RhDUA~y>SzL zQy8~r+7H>Zq)T#UlP|MPkiWs79D$Q`{k*&aUqf z#qI6I#qEwJjC;tBbCtN4mq>Ocar$Bwf?4Bpx6myBn}pIt%#- z27Y;u!2tA+*?`GXhs6JMVxOesBnl;%5158PWgExPv0r#*GQW@i!6Y)kji0>G$bR>x zaPidTJTLBKpPzdE^ycQSiHTEv+O^D`*LHQn74pN9AjUefc*=kf1@K2AvnKutMBpe( zJdM;k5xhYR3fw@b>y--ZkR?MfQ$`K$(^dxM=JeWB)%4H)f>a9k8GqrQ+d0)7QRxywp2z5#zxdx_Q@*kw&rxs)DT&!F3w&bn(?m(OdW zM*%I$PaNnN+-uZmRCQ5VM@dbwHAmAir`~MVLdD)KEAv+* zWz3)JuWX7b%;8wp?=boz!2|m%$HO4PqWH+KW%mfLfHk~sQd$&~IedXSb3xNew34yr74d}pK;v?dFod=i5(@Yi1DZ^T?D_x4Yt41#~ z?B9*^w*k4Jx#D7TF;3*94Oj3N!PSXR=NOZxmeQP@2*`Gv`Cl*^$#A3@_F*wttDA7EEQmvK85KAK*G)lIKKzkd?fBVf!bgO$2Izs3Pd9oD6T z{aoO91>qk;JTTCp%Uhs)$H*o}qIMkVSZN@pR|P{Yy@K_Yms`QeRbEvNalN8sH0<}e zoR%_cnNBS;%P~b7(A_YUk@_+c-Sy}_88Ez4I5ZQ5ABZ|V-2NP8H_~Rb0y$pjqOnAA zEn5(0#S56fg#D_y$m_YEvHO`KxFB3?xS!AEriSmA=(WDZYT`vHJb6p(@8NdFd+g0y z#jmlb&j2u2vf3~Hj+O3hSfHEw3lDo0KHx*J)2VjK!9|b{tv;zCfr{ltKy)l+iQZ#T z3}qV;7(iBaLx^!Gb0kW`Z>ek?e5?w5FKd zWwVcan9IxDK9?Kv6TTqxD|~*;18TK252!~t2^;(Te#yMaSNH&AR zu1u%uVbO+B8-xXH+Qj4%_aliiQ{nvy1D8S_IrI>!pZ`a%{Ag7N+XFbp)GtFaeh&*| z#C=TvAN&*l!SvvA{EF7Bb%vZy@#l%e9(J!dy61m+m8H9@_9l9J6S?M4F0^Z4azeO$ z;FITM4Ft4uIztZe1vpKoC+HDRoIbq_Z+OPHDU1b$SezFbK8nUYTVVHUv1@GrpaRIS zK@$Gk0ZAJxY5u99p``%DDIzLhf|Q|>3n9sIA|i(!i5J+B@PlDUdh@L(_Q7ra7k4t2 zud>->vLwk_&bnO%w#Jjib|;Js2Zm_4Bhd^@3(#~y&ZF>P@OO*xBr$j5R?+KEPW;1= zy=(HyxsMg}J?s7nAELi04(|$!c&0H2{GG?Ike!46mO~ZX1>Ei2qujIH54qoRA2S1Y zR!fZg6ZZjT8>CmbpJ1+m>4e9xxTmxYA=#u|EzZ0&hJ#isx&;pN+bwt_4OHbd$W0@#?SHs+0geD8-pxZ(QtRifyNHA~<&0kob>;%a!K!V3WX&K7t6!M7p zIG4311p18Z1xjRKCjk`EIOCMj01g5PdX#4Y(50*Z_7tm01VC5?e3HBqYe*S;vOMBI zrX#C~B?m+=K#HlW#n){SXtTDJTjU0%S1yDtVYlC-y|lSD6r^e#) ze^2Qv(QGy-8}zmP(Z%AL(qV;8*3#$uht5uvW2ONZYt9D#}?R=0jsH^BjKy< zG$lW(-{X2rQ<5`S##%!bpEe*DTsk27&87!7zEh-6SwAplBITAylisZ`-;}VI7e^yi zj*6`DDvRJSjBGATzLoA*0OGHf73(!oXNk+3cg2d-cEGs6x@K@#z#lKD^u_)KMP?_& zFcC}XuF}ZG(ATd|)}j~y;C!{lqI2Aqym&`-l=`S}Vyx4`J1ycm^KA(R5)jFm;T0S| zff_}n9KM8t5Z3^|69q6iV=~qk^6Pa_#4ZXIVLr!TQ_vFD%rUd&3C#IUB34Ag2;D%L zN~6UifrP~7T%(yi+PEHaa?AO_wPxdjo^pYYR`U1CO6HlpyIA{zk}VWU?J7>hYD4>2 zWt4Sw#Vc@5JXeEx{%njpW}Fiu77%qtxB_S=NIx)6Hi1AUCH4mCbw(ur=R^MzqIqh3t34!S(OxfE%?NgnJ}R~I>Z_CI=|a)HX;ZHSUZH! zt)NF@75bA_i&jD~Ny|STJ<`UnjZxesZ9D--x8~XKgS9)-40isQNn z*Nv*Ri@0>Ys%Uy*p}Yuj*PB>-AtC}o8O&s824IF`oXNn2SV$-Y6Cj0WWO1@35`?X@ z+ky-UK$r)DV3iAT{PCkZzjxgzuN9AK+5X|;zHFFj#oIM}?WV(D8FPxaJNfUh)lTuK zEIoAjbEi9&R=eytD-SJ29-i|XmH{Wo>s|3EE-504%NUHAC za;dZJpc5<@<$&Z36Vp0;FG1F4^&wC^H!&^o^@D(+2`I3ch~wP8#-~4i2#`U>3|6&x z^t7Iy(?ESZCje6N(AjHi#jmoZmTax(Y_^cr!gc-vuCrh2Uv9#IpaP~H$z*;9QUx$= zhVgQ;ZBUekI+N@~>p(RiliGu2nn0HyU3u?;u5ds+OFXN&e0ck1H{Awhi0v@n4&1Y{ z=}^(sBrhAfZsBD+hAPCr?YMQvj$1Lc&-5WJZ21PRm4)+xfY)s`8-TK^uXVvF(q>}3 zPL^-1E|M7yGK4{hC8muAGaeAF4JL4!$?&%sbT>w|PPIXbXG)h?hBADaZUR{mqsm~M zKxB@o2RXHx8oU~bu!0HL{&#i->JBtA#6~~UzVaP2yU}hv^^pFl{UG2Gh(=pmnwz2x z(T2JOxh%|h@K{>xad0Pt5do5wv$Ji4%g-PHOPV%tzwm~hloHV(5|j0OCMuPiW}RZ2Vk;`9-PW(@|TS@)m+lbBnPU_bc z&@p>4??VZuOsI$gGhSO+l9U;>LYEuqf8?_Gjsk;wE9tKA+a*pTl-C2&O@T%r?~PiW z&bWcXTnNu$GJqK=@zBAWBd!p<==94tu!JDj(Dn~@qBZJJ{_?-?Wi0QZyODukRa_K7 zEt3`8!%!HaOg?pj+CW8$GhKRt9PyF-?Ky42RfedLDI> z-GZP6$8^XJaZac=0tbPJMTdpSF=JsD+ewI7P9qdTSE!E1-5-HDz(HHvf*hd5Y*A4O zUJk@HDAhy7k<&lphQN(HA`C+Z8^P$H@U8`0+eWrsD& ziWLin+x=5}JaQpW-JV!>*t&Ju;#T1o&92k``$sQds%~1N)i3TSAFfyF5`0bj)RlvP zYq3CWX;7hCe0aA`7r{t`Yjrwe)_ur>TQE09;A>?Frwr>uqtCOz(?HExZU&pwfOuC}HxX5CK#b=KJWR6x0-8DeKQVxDb@fL8*lOF+4 zJLf&c3eqXo%fu(vUAo3N+Em<8Ja#ra&cq9M-nzrQ;i`=rui{&nxa7P?&#~>gV|QkG zcFE(ty=@Z{Y~bK1R&E*~7)ld;({jhV(s*ygo)9d?UZDhUB+N-XEd zk@@I^pNYSiTnd9aWbtgyfa2q9&Vh=MYz_!*Gz$ubLEni={uOalLR)fFu7eNZFv7!A z(sy{!zA$H(J(#Pl-`iyj7jO)B@i#u%dDWqk#rZ$4 zsbI~IZRjYfuT@nWwOz|}HB-@hfA4wudUY~r6t~0|H95@jTHW$B)~ia`t}_ygv+OCQ zUGSXk_BAYWChY5aW64@}<*!$2>aJa~W{bIG*S<%`(zYJEdI8(7R4H7Fft}DKP+rs& zzVcAd6BF8-Pq*H|9k1QGJT%aJ@fn`t`@f_p3y0UF4xP5lodHmjVl zIOKH9gj@+QjY#wKB@RG*hiIlSBt{vo$_XtZINP|wb{k?wF{$p1=kLE?eDFX+>+a{@ zd46{=S9D-#)r?J3+7Dgh9$s;v{?=uCpWnUv`Mq`9S0@h)y>aFp;_r_hWwtv8zjzT2 zVYVF>0MZrc41`xAp&%>^I!1sF3WnIJr9pb#jPU1NJq6@?1srmLpasx4Dn5lM&YZE4 z%~k%qc)NJ#wjDdR0mU?P3OGpC$!x)@Intm1hE=z3-?@D!4u975rC4(`AF`VN307x0 zOTxzhbaT$(@m~|qI_K4iZN#v|8%7^1r%hrd8L48GNAHN zl4Ec&8d+o6|S09x{NJRTt@r7n~sd=I?-d643+}k)| z77sMD%(D>FKJ}UnanR2~Jk(+)2k{?^Xc%?fow_08(0o}+Ic1k{-h~*BlDaS@ixAfV z-814k1{9X!TSS%MU{mQfB0MxLpnzjuE(!1!d0&tCd=0B_u1PJ_$y7?c+#++b^6xe} zLJ_N9CU{t=*oc7vGaoXJ;$PBCy`s5$RD7#UACIyxZ3-TPS`D z+BXd{<+?JpMQ>JGWlp~Q#YUS+VGj5_v~N8$fD~X4fHOrqSFLJkT!x+3#31EJfsDqyyczb|LTY`@O$e%hwF*}fJ^}_(OvYGiV{41U9wj|B5>%PKFikv- zcJOvnO>%rh1xdIzluF8Sxh7REiw=(qmZVgi#P7hdpE$DJk)e)ZrKXF$ zIJ$)04ZNye1{E~kP~#M9O5}>l0D#bISXZ~)r$)F*V*m$o`O2EXjiP#p{bk>Wo6k+S z#!eH@N2x9%C+$l&4bmRtc9ZXO*NV%B*xg3CK@D(|QWtiLnbM+)N*}lr*02uRp-bm9 zJ6(qI%>zo+8d1H3{dKQy^P!u^R&5Z^m9EK*Z=K^B^L0fD%qGQvpczq{%E31UstR{* zf@(!k%Z?EU@B_S?5frFN6`P%LyMmliTrC*yWJrLgBIAH*2^*1S5AwJ%MNm?bDy6Xu z#XV^P0et!*7HciP`6IrkuBa-vAXQZSVpo15)76yy+|@U&%Qk2#&tDJ>vSfSZ9e@1W zO}+j6#^!zN;%CUZ+jn}c%=dCsXDsDg#T%KyS=qLxZEK`~$r_{E8qX~|vS4&ock9`w zCC_EDv+@Lpnmv9}>>T4KWYXYjOUd!s&}z6-kVrF`bh?wmLVyOU=H>DMb;JL;L(+Xu zJov=C#(dt?HT*Vu%o+zNj_=QV3ZaW>FbAb^Bs9k~?GiE;l(m4a9{&wVU5~^Fk&nW7 zf5OfrZX!Py;+pdf9#{bdO)paB?7~^$yh#uZrX^+7(bi{=UV5F)S|AIWJ2^=7Kq&ET z;!y@o0|o*lb5E2%KkR~Wwcg%X&fC{ppB2CH9o9beOa{tabBAJ&%h`w(g>pPwFA)Fz z+pPV|;>Q`>7U{lRgmJbScApWJU?>lHMe3J?+A|;-*?yvL62RDj0viJzR1@zcvJ57> zIxOp&2;D}{;mL<#4AzUB7#d=Wggv2&E*ZX==n_Ix1MIl?yvUBS+r`J|cX_rB{@Wsq z2Q|B*1O<>v0+32ZCjYY6W%gP%vS^6OVoY!b19rh>X9AT>GkHV+ z3kvi5ZT|Dl=~&wl%!R6js8;0;L@nY2Zlm4G@_LziDq?pF8n=->hq_ADR`Gt1TjsU$ zZ|VfK_>9#evl`e?qRFIvacyU3btoIcInQb{7`pN`)s={$O4b8a-b*#GRA_MW%nLf= z5U0uNvJUVgkbwDYkG)V#PZNd1nL=s+kosr>^-oFgp(c`40)<;Ox8eLutJ`Q}e9h8t zT(Bu>+o+S9u4OJ?nZlrf!mZJ)wBB~DdF_pV#f`f@xw|uN8XBvTcMHxw|*l84|ojmacQuM2^AQRaHI~W z)d4IaZlDtsK8|J@&eIs?WncPAc)?d+6TfqXJLKb8Hf{_IsQx;G-f;ulO?)4#Q}G4K_K#w&`>a&wbfy?4Jl>rFZoNU(xn{%UhA4&+nE zB#IB70zN`3{HKXT=9o!)`3t9BWWN?Y^DgMcQ@8PJ7l{u`ZR05Vp&du1BxlpS3 zsiYq?D1qQZX8Yty;pbCV@e~=9V#-IbPhfBmwX(y@3vtlb3=vcc@izc*-58-9dQ69e zMU~QH@M>lc#)Sr`R0jPh-7whfG*B_<*4dO%B+bZeH8Xf6PP8&IyWPV=f8oo;+>W(}_6k255>j;Kf9dWk|5Z=G}abuN4hpvoCoSzh~3oVcG(N%EWqmlJc|e$3DM&A zAu}(b@-bb`+`q!rgBgj&Wz?&zYNGri@)XhxB}@Xbw#os_Cw~>8$SiU&kfwCfrClj} zJo#F2eSL9hT^)OaX(!)$>@4BsNr!Ox29h_#xog?ZN2h%N{ufjCvND{>DSgZfTfQWp4ETMR^=a6f30|M-GZC95Id-!L zx>MOK5qh1|!+85Q?mK(o!n5xyyohVrb7IrH-sU*50>?(!&zN4b)kp-@!jA2Vt8R&by5x1@~%(*`loe>Olmr&QFVWB z7mCle3xeAHyDzE_wII zfBEi9#~!%%p1be5@rLWK>+GmWmz4(nT4YbixUpmCMHmUTJvjjQFO|^}KMXK-34$FU zY9xTzj%#^xv9-+DoL4`uDnF4 z(#T7G&Ph6#g|0v@dDwaE4UZvHR^;j$lGmxROggR847z!n{mfFhU#R(97sC5Gn zyC4=ws8%tVYVvKB!mASQmV*fMMW&Wl$kptpT1>d0meViuv^xa7W-RW~p@@&Uds{)B zcdMER+hL5i)iV2H(7NjdpH2?ns;s5b!isoJ2g-oW4u#vF;=@hV18pH>Fr&3qypay?C`Ia!DpeWgch;lPX!II= zq40_%vS~h-{zoy11420Y0Uw_V|AyViKvD-hp_0FRaw~g*dBk7O{yi-!0^x}x!-JTH z#Q6gnMoJI?#VzUlonlva z7^7;(37C|K{V2i5qXOY6_;^$*!Y``SJ?q!)+PUuF`h(-EMwcz>ZEdMZ$741NO8e}k zGl4n~lN17V6auw4?S)94gQzTsw+9#yd_A20Pjm#c`D}2nzrt@PRua7;WY8a~LCF(u z^47`1t8f3=ncom!Zp{QY9lC93$9KOlTD$SmdzarMzL(FmvZ`;K`Lo+yTc6tAd)by~ zS?aDe8@{@J{Z}`vxhqwceQM|Sr<|YPxT$+Vre)+nZlbm&v!Hv^Mq_(*C=!4xCL?*F;XJw zCCSEuDoHM*>RyFHs_vy?HmGr&sX?YmM_hCpN zg{{%J5JsgU`#~jheR4Z3j(xp#GT-`j7F{L8#)aQKzHi?*#4m`?v8G>$S@y!L zwqC_8$@dreA)BFufvAy8<6&5P971-g2@YLRiHHEDZK)}OI&}ou7^Ms%A|=JicqriW zLPOoC*P)(S&Q-B0njx9ga>8cJLWlq)L7_>FO9~P@!<6ctevkAX0T6ihlg{$@uYE9#jq)fs87@N%dgn(>9nf1x-_q4M}-756Rqn-CiED}91o1r=NLCTP*i z02`$`Mg~PT2Eef0sIw1pMu*ubiC3VmQfC?G9H6kWIn3i87jM(+ZG-e`(~ki4An0xS zo+2=qs}Lid0r8fX6(qgqfsHv@r1AJO_84&6-SpVLWy==v-{@0%-75YYdz?Prx@{}|o$6y$0$19f@0FMW$lsbS zRKa9JMa(mVlycaUa>W{Wiwq4)sbm<;MS-@4|Ls#Ouzt2 zNjW$JP*_rR1JVu21V0U5nK$0wA6wG{NReFLu8&6{w*taTr_3{~Fh-;08oOQ5(A>1N zp6XP$Ec5d# zWDkeR+RAH!5ZV}H23K*^3vA=`C%Q4-R#qCBcdHHva)TpTGf*wQ#u{8nmsP9SH~XVN znb&|M^z8HTgU11wu1Y`70_QU`zvHy99>oU)^2G(N&m1hAji+?BKOS#VWNsbaCJGv5SAkv6q)d#K&en_^5C)b6xlo=faZWx1<9-c2xzJA*em3o^aoXiCI z>Zy;G9a-6#@Tz4$)LNpY?WMCml5ESu@mdPU3%3CsXXbbzr%n^8gau*C=-^qe)e4pC zq%}z;hKP_`%uYI9q?~0=LV!YZ3c=EuWss;;R5mXx_6WC$@xsyakIx*fm~h1E7Yw$p zXcS(UKDMdv^SU{QOCPoGUfNL^w;7eV#8P{C0I?)B7eO`kB5q;669*=AwbrFdfKBAU z*Fyn3CUi6~){b(0M4Qk(CV)i3H^X>A$_NGw(khF3!6uqTVOf2YK#Xc2y3nK1%ZW-C zAR?+#CRjO~xq24HJ96-7$ivr4GO9|!wa>7T}3HLIU`0@Q#le_9%cM~Sr z=y-}WhrI%7$eT&r-KYR*kQv!K5u5o{4m@>sQ8Cv0-M6(X(rbbqY5KOi>e5tbpseEDh@LMUA`($TTv$v}!r@giTtb)?`HG zI_f@+y3Gi%6)bHEVUp!GVF4x)2sDTzPLQbtt7wALC=^l^uwoQ3Bt_q)m!5TIEPD9T zOOIT7*qvNshpg&=w*n5FkNn+uZY8x@7 z1=N_-P_7`E;fR64s7?|ICPKO>$ih@W13t3rMCOYILN+&Q`BJD;Akj?50oOZ&XJ8U( zp0taa_^kaQs2Z`?2theqbyfG?V7}c3QV6*Q?yAbDH*2jLhuSSmbrpHu3DyK!D+4vb z=Lgn5*j|+KrxW&QP&Rz+x3=&6<`%{Bd{0dIM(zb^s z#MgITe~>>-e4Fo>-3KgOj4G_5C?VYCRzJb(!uM!SJwol8@D zNhFp0=$UT}9eYIl{t={%0H7AG_l4PtTc3 z&n)5N!Zej$_3U z=cEeJIYIHiUH8;eGk^0AZsWC2J$3Cjz9Bv1Sa8#)ag$(Xd=z$Zd8t_q*O3k2zgm2l z4TygcAIAT`umPcD?kD&jYf>AZeNH8)!fJs@Eay>(hA0x+7tRR56|l*obpfeP=!SXs zDH8H~9X4HwzGOZ>gj^~fC^W8Q!TO|(6M%V2=u^x&fA(b8d8=wy9UWhNd&QaFiQ19< z`$xJLtYFy+_`%7ooib5jR${NbL$IRr;%u~^!V`EQ?ER_qkr|C&)vDYd~xQ$@=N+= zGB2lGdj&=p%H+cl#$n=s$(5$oM3_ak(JjHI;J;BTM>PrjU?+bYZ+ZB`hdvaC9{TW+ zsrMd+7xvyG)9)YVEu&c=0+&_@BCHApKKSTUe?OokF5 zzc3k~ug9wR#UvRxbxeF&(7yPh__Fx&i!U<7A!fH5I(Fdpk`ru(4?^G3z^n-^!kfk5`;1QgU_ywE^-s6y1628%4_(tHS$$Nlt z0FaXvpaw*)#5O{2Pcj5p)Qr*|kSH}W__V^MCyx_~bI-@$7hh&o@5f>ENXJdrM1^be zATq4*OHi>XAYK8kB*b%ZK`^LO+;UD55?YI)0(3F#2I9xA#x*iWh2o1D6OT{*NgQWi z=Jgi~4~WObkHq8GBZlg@o>0u#-+KHOINDIfwChQD3mtmKxAz{iAq13!>55^R+W=5A zKn&{;sZ(;qGePFxAT9vE49CF(!CpMQrW|9woXWjHJ^$(Jj^(vLK}-J#35^-Z4n`|; zG!B;oS11!@WvuM&>#qm*5wB;@y-gXlx33ol>6z_&TRbfO2;bwdB^!2T>?Q@sXg*XB zeS}0O`8~Kp|2XleM*wbq?op&4VEgEKo>g|^+i&BL@awb3BolY^G1TG`<(Cl`t%zbt zKwQWWOIn8tc8pFN(C%QoDHR}xLTG?Ewv-CeJa%IJ;`!@yTR(k+S^Gv3OWO6{Srr)` zZQ&vlQ=G3<9u}fP*cuknLYPItq$fKjYP1h(Ma_q-RDG$Mm5T4(Yq;ESkd2ARF^lgq z`;?j8Ab#$Y>uf-t9Q?!ia-2WdyD&as#08rh;$}#bQ`CbSAsZypds@AsYm@Y-vb_Ss!nUU$X8 z3qJng!)JHAf8b5=HSwBnt$q0XzV~-MEB^VK_piXQ5&rrWwBKKGEnFWsp;mLJ<3jJ^ z&R~(er5PlIDX8W+8S)ohYnchnn(ojB1eFnErXYqAL3psQYGA`{;B*R&4qRCVND>*0 zTkQ;0=qfcwK|)T$D}i5EpbT4qK(!v`v|d<^xSPzNl}$i`!)P)Y2kF&l8nIb;lhK4| z=*Ca^9SyI80O$Yd4~^wBZLN$uWABVo{g%yZCRVK+8y#BGzi451YhPPmSxF)m4td=u znbWJ3TnlS)o+y)25@&rt;S5tzFqu|~D(Jm|%$3|Wm|Q`yqQW$nL47J&198n0<@SOG8N<2DBbvTwYUNNgq=LN=OR*HwT1!kvsoK!212@cx01qq=!CdioB z#2T8!shfGz)cf;Hj_br!TRPpwzBek;AW7rYJLn%TNikyJ!=$tm5-r3Pgz;O!D9!~V zL*k&N{0}emAOmI884H8-G-(~`^wT(|bVh=-V1Vd5ed?E|i+unH2`^6mcGt+rF8%_d ziJbn;!no{2BntH(sD09ynzMT64~Q_aV~Lmd}$s7(`D&&;V0}xc70z zNuG!bI*5;9o+%pe$D;mZAX$nKfpQKYrBF;+RSn}iLpg*QH`{1kP=We;6 zsr$fv;(wR*l&!vae0*MGSa;un;jVKxU%Np@HliGK3V^oi4_9IYIFic7+{DKnI;t{!Mb>leTJD zen`C&KgY>Ig0Fq$>BEDAho3&}-0i=4`YkrFDTJCPWt#sJdrE9OzUh&%jlNiJ)$lpX4|g}oOk$hZ%393+ZRd#ZT=MfTpSPqA z1mkq)PWUToTo>eQwQygZIxuU&o2ASV{9jCa(Ep}sZyH98p2MMjq|k9HYfy71akdrs zEi$O-LOd)2O?l~f2F2Y%;`vV&3(MJvc;CXFy$#DM76g4@Bj{>b)A705N?H2($=Cn; zm8mPx!|oIB`wOo$`AhR7JG)MM;OuoxV)^H>e zso>?{l!0BU7{<#Cy;)cbU>FKm1-pfP)8JrW_CHO<9#k2$e1Nx_M886C4pfB06=7CV z84g#@R{&fIE6Qik%RS;xK4*3@o5^5jKm@42VsH!DdY5wQ!*FFNMBCyS*9M-$@te_R z++36^#kI-gQ#R?wNp6aizogDdk|TJLNh%34p$}z~Ri!1sri7!UHKlHBS7%6W zSfwbM+BA^ER;#Tsw~@BSG?P01Z?bcQDU3rYE{kf_Ca#t1goCW0QL}+FD0B(~j1r7k5Y`+wGb7Cv+SSw}3Q-RfBMWHs zkVTYuXE>b_1+0{<*Au%pN#0W(D-51N+9!CYxBlPlbSz)e)m2~L)zbwcp&1^b`lfnN z3C%DGQKHFiGg%OWWNE~f5p2OtvSS!P%mwh@C>kqB(M*DkfCduS{e)z1HD_wu|y6)4Y7ZDo1!8G5YXAD&rc z`4z(OKiK%>{%+2f2U7n0a`xvHlV`73AzV0lw(u$~3U5uGC0vA?GZRah$@ii*05^!L zS1BnEwhXjq+>{v_!x1Ggf--dc9*(2fPl0Vh4j?O-a*1x8c(9~8H>!2RLwM%>sh8h> zUwo$UI7k>(It+f4aF>K?wOUhU^60#(x5n zN$X(tCo>>G{V_)fFx+XBqey!I+YVW+&Md7Ug8=8ug)?bL-^}m8!(!2%D6`C`5(%ieP@kQId9T%$F}L zk6YDxy}z!+Ut40Rh=jtdG*G|RmsG_9yH<8CYCTZ4nz4kz8mPE!%>zf*ztO+gRc8n+ zX$6D1Fc4zao! z;*+mgv*KJK2%+A05pA0+tz+zh`$#v%2s9gvIYR8}fBLPP?G3~iboD3`#lHNL9JQ@xWO}`yf z0@GCe+If{zK*UX7mjWmzQKJkOsX$iXg1PO-<%TVB7RZl3je z5cH#a_9vxPrRN8ipI5hGw*4burgFnp%Yw0Xrd$?gD|~u|KpqZRJsgZ4#11hKdOV)6 zC+v0*F~SMAMsi|dYZDq=;z=eX4~0_6uca}NJ-xZFZ*w0jtEr0Gdbjl1qf<+EJoEEs zKy`ot@+EwQKYOIgo9XMzc&j4f!JW@;-~KEx29TQNehjXGpP^17AkEYD)O(R6T!XOV znNZQVlDnR}E&oOE-EzekJr#&oTz|!pOD;J7;DO!S)~pyE?C)-Gs?SuHmnOp~W%4nN z48@IP)(C z%G$MzyZEBD+t+SiKDK0WS7&2GO*#~$Vg}C6?0Sk35IQ$FU0uqO2og|tP^7FFEHG&E z+35wL+JPklsDms4HuL4oTGr~BC5wVqqb(Cuu8sxhr%J5nbqd(%rg@uTS_jhY?j3d^ssmkSF=Sh1fw?rwP2h zT!+o7!Gw)4Gu*9Nad+!9F$Rh?!az^klu5w9k~xP73#KIVvag8C#9s;P4+`gvjE=tZ zwXd!C!WZ~g+44_DL9$hL@Ui>P8XG-u){5VKZR&r%zT#?j=e4JdO;+R*>k+>j;h>1^ zLra)W2wG$)b_|kxr1VH#b#-aVp>^wkga50Fj~)MH=y8_hZ=4)L6jW7f~kQ z`;aCO2xJrZ7#|?XGV@Ur6le<{&RUDW4M=lChH!e+JG9fc^UAw#zqziZ>!=Xg_V#}r zu(@@fHTT_hJzegG*@3>}ixb5_2hrPFP;G3K8V742Ik{VW#QyU?86W}Xz_eR1hW^#F) zG7xVE+)QP#fUxNPfLF=FMGCE8cH3DPN#=Fk-mW_GY7ybQ1~vxB;n6~rh^5=53e+%J zc|fxuHV_UHRz=b+v09)QhKU1(N7I85VTY$3W8`-SDZjgn5(mB2g&4FH1&+hWw#t?9 zq{MNCBAmAr@WM&kyvcrmpLMoW1B0GY8p?De-fxgejMZ ze`TLvux7ypYndgqHgrThgIy*j`SW(J-o<+VIQ&NjGS4i#^d_-X$6lS~(`#`~>3kIk zRXK^TlENF)HTN6P*ugc7r~>6h`4Mcz_c(yQo?9}6l36GHp(t%mP>%ikM)8IJS;HOw z+t?@Ki}R+kYVi&J8{+H7o@B+3BUDbdGs{v`2O;p_$<0q?LGdYUA6cJ4#)QvsvIvL=e*FB*&=>jDYSkEu*kL-zM0>` z+Fx$xS=)slc-R+Bo4}5vQM*JVz^l!+mq3Rl~5wRai zI8HNnoEVpo07GFluBDPwnyJ1Yfm85*G4tQPLv__~V5VMYAARx|`)KO*Q}%~SNNIn# z>s_=HV9D?TEE)am>>ZLDNIMjs_>QP!AJK%*Cq$jB54GEg!abbHKmCi`MZ_LIw<#Ur zN9VPlBUAUnTE{=S-i6=%4E#lOz|(E*0@+t_Ez{fzLPKXcAp3GCdq4-^1te?~TM^`= zL=}g)AGb}7zD%;Yh+gsv3Gkp8Mes;a^kr(64z;(`FQ{3OS&^*sM-m!h3UFAcKqnDP zQhbOaMaUFHDuAr7$5a8g$08Ap!|c_Ea1Y!aD#j{##WY(dU#Zhi(3PW+*8K`u^U)TERp7GqIf!!txRTxh=1yv!CsHJ z)#KrtBf}pg(ty&@DuubeP~&O_n?My+#3M)zOOtZRGslQtg}clN6SOc*v>3D7ooS-_ zbE9B77X}<0^spd>O|nF8noAvb%MnkXIDD8G2|5FzG{~ZeR)5FF?BYY7Cc8M4y~f>O zN9fPhh-Y^8j`%_cd%$iNkM)!>EZW8M13UQ%+~QKk!lKUG;1G{Fa9Q4Ld%Uofo!LBf zzvBHaG3;)3h!2;f*+O>{c9KBaMS&};Kz`$xG;ht|;Me96z0%Ch-9y?B-~(_%0mpt4zfJ*^>FQogvp}%h!*N87 zC}ecvufW23bz5xev5W;} z&*oy8hVP5f+@}Riex}+1$yK#oc!*0YXWl zKjCbvE-##|htcVl3Witcgk|Yhx5nvo>+5-Q37u|y>(qZdb%MjBd%YY+3RlA0x?E zY}uAawj?`_Bg>LaY$vfD+p&`n>^P@$k&ugUr2#^4XrNpzSqdzr-9k$l18uoVQ=l6P z^kON6mO{5>%a-Ne_Ftd}iN*fD(X(SGu>Jp6iS^#hJk9UTn|FNQ_rAkRrW0bu^!u2# z@I8Iu**wGw@6*xk>4e72>>6^`cBCcNG!Hi|79hJ3YSFYY7U*eMV{w(T8TA6{9azS+ z3d~ewCMCfk`9SPyC+A^D21Se1E4R-}pbhj%bxiw4Umoj$2n+jb;B(MM6e7-Q z7L7ItqaAip^R7rK#L`)rA_=DbK5yEEN}7Hpqm-G-XV0lTwcu>U&&g|*f9CA>naj`S znRfpCGc%7i=kdp?YPqyYK@KFOo?-;psVpz5 zEv|JrZ59fvqZw6Teuj%8aMY3?YP1NL9-=ek`9hB+bxlhu~WypSe3bxA((0XaTEdj)E+46@DP) zRmP_OR#asJW0`3d?{MZKl+yGjXD+5;Z47@`dloM!4eUwPmP3ghQw}^Nf-xhrFmz|= z!DGaNZyv+3o}|HgU60Sl1YgJ(3M?pwH7p(uy=f-QEd;%wF0fP@B}yTcqj1#-hy*4J zBDpL`>PTw=Cs{=Nk+a5w7|HO5k9g=sCE|cNbV2#_Yx!Q$jCjS@A2k%FimXl>%g=r& zD^IlM*rdO(!U9*WvaqTy(Pg3-;ZAe-C-BV*CMzG z^c%EndiNHL4nz0BRu>6-rInBtN!^Z2Y^s-+`ZIkFA2uq_fG1?)Qj)*_3asA{VTt;c&Mf2Yj3|j*bs9% zV+~cCckH|4jyn;ldt~J$yxcpiku_ejG7*mrzWw&sT3UueS6z4ARiWyIh3ixA+;K;` z-^|3zD8Y^$ymHoBzzc!YP5bXE^?C9|NTT4u5N|jw-KP#tR3q6DXe@h0Eo}&ZTaUnC zivAhPu`7W7Vo=4l+|@Z-Ys}?&o>Eg_yKA*8&cwE8>s@_AcQ&`go)BBBYFb#9E2G#X zAz+flqqk+~vZ4I7(R--)E5{4+C9xpy#xMI1`X(-2iC-+nubW!$%BWey#Kl!|USUps zVWucKeAOmLmNAcL^bX9g6B<1TtwSeyfhJyqi1&2INOKyMXox%9pjOT(!UvPI;VIaL_S%UUs z!uZStauKEuERN{h6z&R3qbF8Otq+5n^bB)e0R+<2CVp*;o+vle5;G0fu4f@ySart7 zR;7L^?KyLUF0|(U`%^zZ^RsmSoM~eTyULJ=z$>s3+VvnhAOk_DBC_p<=0DWjL8w8K zVl67o)!|kWd)h4sg?U6#r1#;7574&Y7&Q<2Dz+ZcSRneL3YkUS8orXlkwuJnBBCP2 zCo8he&pdOnVPxqV<}XpYHo6+C^Gh0uzk?n6ZC1Ovm{9l-ppU2)2=zk9gr(7o{2C=igHsFN|R%m-dC=Dgfvkvp%YQHecp?O(HZ*;@{ z8TBYDuK?+9z&EN!b#~Ktga#scUx1Vt&PL%~RHxeFK~Wzad+zDfhYxHSf3mOlU`dW# zk#lKnVZ3IY)mV1)wp}~zfyRw(2dkD0Wj2*}ORMsi6x*m9d z(pRin*j6g8SlcypJ6M-pO9zS^m35|2U5}GQ>vQ%*tROu&tw^hDC{KqlOIr#Hbg9SPG8|(d*o6s!5D^6%)F4Z}?{Z59IfpH&xjLI! z4nx6F&Qr}sqs4NV1qq19$eo?1{K6IAbTCvLdzPeS49~?Plw!5HN~BN_5FKJ@86}Kg zkij&-x$coCRz+n+1NJw`@b-T!JQ8zd*t~LKLD~%2=Fjk-ujoQPArYAdQvm5LMZzE` zpgMML`?K#xRyOE1h#je0-DU2qB3FjEM>^kKDx4{eMAxJ~$9Ar9mx9@~x{9-U_hSqu z@$BTMvXJyqXhR&c1Ol94vOv^qO)DKTC`#uDp$dgUzpEk(PJSU_K?OtPWDzn0%n$ev zZv@!#rugW(t*3wS7%Qlg>#ylvaRxijkSnWW+3G5{)5@GM24CL`%u-a$?gxk5nY>`F< zMUU0VXB|4tv)Yni#a*WNpJzOJ|H%ih?C!qu!F2M4cW*&>aMLa4DqKsSoh?Eorw=mg z-~N`a`yU}6{2tmg1dq#01n6Kc=}5LNYz`oZsy7!MSBH?>nxF&EfO(qq5Mcd^M#sZ| zE`n4BtFQz`<-)=&Hwimf4v`XRwZcY_7lu$H5fU&=L&tz#AzB^s{tCE{!JOwdQizcX zC>tUWSFx1a2%QA!WPf07=Z%9`Cl{|Y_$&psoGeSh@r4Wf0&9{tF2AxP(Yh*9-R&u9 z@f5z6XUNFPtSw6Y8Zs!8!&>cO^6q3=h4Ge~#G;b#l;pygjlw9t>5R6;$2P~y%8fg= zN^;3p3kr1qmQ|kZs;CQgmE<7ejNxHpC3{_VNg0Sy^Hqb-M=RjWdQ~mt$J}&0m+bHq zxHMOJ#Ug@g!QTZQkM=y%WK*jIXJ9nngLWbf8R_f2m$aSkJ$C8-k%BUV-3=Ej7H@d$ z^0BZNA=_+jyRo#OV)%7QFc>XD_M#%NB}fwnqVXtCn+DT_m{y0-n*InhQ> zV`nt|?s_pEM)B@+(9v2Y48;2K;I&1F*Oq`zrAbU$+5--unfP6znv%p@V0{7s3!^gR zNwEZ^?R<;#ffW~YD#4mSF5H*GM5GwnZ)9(dNE&#HY1*-Zrd&LmW_+G@gDb$&N3)(G z$H}?y2HU8aF;bggdyA|SeYGN{2C<@g89dOAh+;%!p3orNhM1)6z5_Wh&oCNVcQ#aI z+N2C?T~kSLus}C`Ozo>^O{_jKQoC$>tJ1Gjz^_H6rQzc4BaaoV_9ge+qu#S8k-&CN z-qFw2u(;H9d(EnW27Rs3Xbny*aATvTL6EL$ANhiR!0az zXf!}31_}T=Ulf^l!xC;ndBn_JhmPyyBzS z|A2Qia4*ocLD$3{ECYJ-r= z(}WLt*o|Ng&&@JI0yq7G)RljQK)Y}jX+Bl>~0B)uFXgjz<^ zTF68!R$bT}c8A?=@as**N&&V+T}Es=!d}-}3`qAq5)_TzV-(F3ed_ zrq^dnb_=#i5q{ZdHm?4eN3JV2nKSLHpR+En>x;Co6-2(zZ9@rE?8?|cG7lRZx?u=B z$mWY~phNs-IFBL<7Qr0I?FeGwq!rD{Fble@dOc~m=vfz}DV@ztjS8HyIWug!b^41) zlF3748jN5u4d6617TH%0wI^ySLqvfche(tt@zs=~01WccdKE$1kbrdFXM`>#6s2lK zOpf6SU%AGbxQ6UG1*AT1^khaC*>bI84OYn=*_)deD6Xq(^^2m-?nK;Tv8d3Hb)ok} zt|iMi%vkjzn_L0U6()0zUc9NuD1mCvGv{UH|=fc2^@vH=<#JC?T@w$_=OQ(Rg`k-)K6gayp+s{<=f-ylvF z<4w_b7h(jzel$>Ji?Br$wi zTV|cpmNS|p5qGvj)O1SH6%*gvF7E7Fy7Yy+?_Pe@RnM;5v1472s(wOK|KRS_;(M20 z!M0xYy>+SS)UQ*g$9h!uXAG}7Yhe*$ukMBB)uGrGJ4Z(rV;%q#a_NEnl9b4>Ay^X= zts4Yb*P1NCcJy_u4|ZvL76zcS1EE(z0$Uwq+X16UsF;mXG1CC{8iZklR5uAd`}UO- z?>o5f;GSLECpN5GyL#n7Pxq3}_V~i65?oMG+*i`)UjVNkSh6%H%9vjuxP+k<#$bBL zVG{+rDvB2bC!8N@~ z(>aIFSchE zSu?XRlQF%;P;bQ>u^LN?vGeT9u(z@?i^FltE!rPu=hUMP$Mx4c9OC0=w$RcfeV(`z zzTS#>8#W;pTLiHT1{7#W5&LOrAqVzSG!YH)GDK5wHUL2jC9};8J!#k;nVev|+?YbV z3_GEbMhPCN#9?t5Gk=vk=w7o%o0=SVzxCGLsp|FX(Z?Y0;n*{Kkm@<`k!`(^B56qXdizfGPe56k`h-ARbx z5J_R4XksQVy%QoXL~{cFlKwlFwLKtSIsH=xf4&VcdA)w3aH0^5>N#OIK0Ez&abQ{M z0(R)xXa8eD`{0qaeWd$A!@(L7&p-3rOJiN2sZ2(T3BhQglZZ!NOItOxWrJY?G6rtw zD9D)=@oBAQtG3-b|8cnGnH_v(8BDoy@dsN`%ovcAf~Fy}hh{_U6oH__D}g8Ftd31YH8r9=OF;(W#JDdWdKftik?V41Mg=7$F9dK-xev zqCyIRR|y-#hj>YM*Ls`oJ_a)gS4t9kU zNPW#&k>R!#vvQI{l@_rT&Ok=t%}jQe8p?b6S1-PJ0hBMoEkoImOzDg=*7eIfmoTw4 zvhedu4{z99L)^g3ILbj}$bfL6Fb>XdV{E(;blQ$h7p+}6G#GD#BQ6_w`cBen2ajj~ zQ^>%FX)+4v#B(PQc@6&c)lY>m|O4dq}2egF&N_`Q$%5q2v==~Y3ng=uJu^9aZ5K_ye3yn8K!Cdx1NUG~;J$i;Tu^5{joe|+mO6W4tHrR|p> zhs=wq6ZhPe`olnP_uH4Pdn6exGBA@P(`|sCw#OSK2WDaO&H+QCUlJ|m^6b7{Pc-P= z&_?~)hliIXvZX&29~?Ai-RMGBUUh{y{-s~;JBvF0*v&gzbk~ThKmXz^*pA&lzGe9I z@7d$6($-7Sl@{wmITa;k1!cDGb*Ya;?1xEt@Bj(-fp+Lj=*8Dlk7_5KChOqz z=GdiMnctBU;eY&c$;~TR`5HOLR+l0s1VT%Kr-X?I3d=PFe~dQ+$7#w z+RO;d|D1S}8Mg8=uWT#M&>XH|18r_pL3jiPhXdUigeW#5$Wb}yAJ}1%^z_^bPF&U3 zv>?x!dT<|G(XgvO&v{_bd%&BjGZ)${u0q#&lil*B1-lxw($2j8T@44kg9ohBPh+}5 z{L4bnbM##I!~Z?SQ!R~o;f@yk4we*<8AzeoC&q{;8qq7r!rt<;tVqnLg+Xdc8rPPCj)!a%%89M=Ry&7rrkx4n1{! z<(Xn1T}0cW4g&1=r7xjZ8wB{|AZ@nU4JLBSz*X7O(d=l-#5@2_6?+Az*?p-sInwcI zkdO=v>e)4u;#<}VD`LGqW)kf-5h~4{8O)Ht)NTg>J=;GF}?7BE2| z0*G8jnG8JwTxOQ~$wLWNgS7hr_~oM5gV+zk1_#WCnXv*y4@p$u=BZc*mnS;tj6wVa zi_sjnxbeh^J5HPse|zLt$L`;L>ZZZLn@(--I<{{-Sur;K)=#H4Zk+n*)TT|6K&9?D zF>OBb<`|0n5+y5=Vlx%r zvh4V#MVmtGhjS`Tk2h20mQBZ(Z=U)gwnVY~&|mu-zn!`$v*km5l2UY8Q^DFXQ`a zEtmfGKyHN3#~*`tq0hev@8X{#yrLZmOcUk_vGftr^^3av8Ga8;9k(bV4|wFrZrd?+#LKmxA_|jZ)iy@GA(+dbx-SKi^H+n*ks$Xwwv2tY5QCJ&Gu^&hQyJ?E6JSX zw&W8X4V{&pcXqx2UlZyDXS#e{cXqwhZR{8|v2Vq51D1hn2Kxu^9TJD)L#u}FTp3^a(r|qE$nXOr_K~iU=TxAbp0yyY8P-kyk09Gdvc*2K0ex4p96zWw0#H+LvICU!i% zvuEeYiyyoAqg~(H{mLb+m)yMPjlI6T|G95q-#z)c#iw969jvrHM=L zJ6L(}zJqUG7QF1f%Pp55y8M|d%C9(n#dB8%uiSU#D_6x2_#Dq8S~KRpba}mi9Za4# zK-IJs?`=cn3YwhHZN<*|KlLmhqiCaI_Q`*W>bD(%@dYVf~i9NIO7?>=5>7>26GG z8vvkSkq;tm#^0yiJAG9V8ZdP#+FwwpM<`dJW9N=N9Xoe#+8`^nLAhC;TL&B}4K+%Q z60AqbPrLOw)gD5@-P+SpO=Z-Kkf?_APZors4ZAPdvU7(V4A$2MgF&46f4noAj<1U! zPrz#S6Xs)vYT^x&fB*skh)%((ViVE~PQnV;m>E!bhJqYKe%UZw$YCx&R-L4qeBB(D71Oh&7;Bh7s*D%9^mRwUD(y z2cCQ>#8?}Pvv!tXNvL>r!l(5T)&-e-4_nHXvE{6n^|5}o0-pB=*$`XFhS>;P#a6R5 z>_WDdUBpJ&7+c52*?P8tZDgC+X10Y*u&rzx+s<~tW%|Wz7u(G)VSCtKwvX*+2iT?T zAiIoR&aPlrva8r3_8E4VUCpjx*Rmt*I(C#@&nDS1b_4q?JI-!oH?hyLo7pYwR(2b^ zoqe8tf!)DQuzzBAvM;i`*xl?N_Rs8I_9b>7`!XUS{tNpm0xmtkzQ(@J9z?u=hhWq( z#U5slut!0be~W#aJ;okqPp~K1Q|vqJY4%-ql6?>Alh3l}*!S7LvQzAN_5=0;dy&1w ze#m~re$0Nte#%~E|Hhz2%3ftZXRoo>*)I?-=?(TP_9lCa{hIwd`wjaodz<|S`yG3S z{U`f9dzbwedyoAe_6O`_{E7Wv_Gk7!`+$AO{=)vs{>J{!K4PcY88*#Q>|;=Z*drzZ zJLp2vEHH^?(E>@JO~gKcm?=8MEHPVjiaDZ7bc?xSo|rEdh#s*}EP@M*5>XbtqEGaT zrDB;_E>?(@;sUWstQG@ejaVzzi9xYmRK$>R?~W}U^>FQyP8FWcoNwUAjXVwWG{Vy; zPn&q!#?v@Y+j*McX_BWM>9jt`Q;uKH@#{H$J;$%-`1KsWp5xbZ{CbXG&++Ryem%#p z=lJy;znY$8Y5LjU2y`%YR+ ze}%9A3Sa*fzWytG{a5(;p@M`*MEht{|aCK6~6vMr!n0=eEnDW`mgZyU*YS& z!qHLO@QtTuSm z%8}8H^5o#KDwd5sj_qM#eB8gz>ZX-iODfpwe${;;*3n!ER+jVEly1G8TOChT5QEIE_mpHIBJcm52(iW>W9ICY0YB5p+D|N^ZMgss<>{W%Ep1M z>Z@v0V?d?~THD7T(+TTP1XYZUj!==&gjPXQ;9;XxXivtgyt55$4$N54EH!dr--lTB=f+e=L!Puzt$V)l&QlKc0QGxj(W|fAPm3#+Gq% z*z56oN2?*{nYfKZYZ4hP zFpg@g_V!VEa#U9BXtWyD5$GNmp3<#PjFhSw8~g`q)T}^v-*ESe^hu8w=bhU5?7)&MS#@}Bf{ z`U(0yT^+%bbfW&9qj-t)Ue%|(z$xrh_|e4ZO05rLQ&8&-&VYd6#L0nSHPauLld2UR z(t`Ik8ka`_|4oO3L4FgDPmWGy8>-da)gB+3DF@HytgcaAfhk6*8|_SKZeU8HG%qlv zqclG-rKhwYFlC_B6PPkmS{RrzQCbw3GE-U{5Y&w7|3yVgP?2KXKt@F<^`at_`cM%{ z{iq0~rKkv{WvB?H<){dy6{rZMm8b}%3j%VB*3YW~cz(yI+>VzpN-u2;sk(qVRdqnE zs#dEoTmtB+o#;}ZI9~i?Q9sR7|6>XCmm0NZ_8l;{8mLm4E2y<{?c7$Gf2l4YH){0^ zq6|x(KU^^jd}6ieyx@LRn`jfQ{^(R4bKyzq@!Y8BC;ns={Gqbh;g+?E~o0uPA(4h${4 z#rfj|gPK*RXK}H8biH4d+Q-&ojuG3(JjjoZU|^p6n=w=g3yHsDEb8$Cp##r_L_@*- zJ^=(3p_x#J(T%p(qa*3hyDRQEh98${mB2Ta5SqfyVxgBrs10PG>&tl?_*>94QSG#9 z!swOd4u2_47A_ zI@YMoyaw$vuV$3i-E$jm=2b2X_~lw^wGPa>EhDv4(Dlc_YneTbw|VyTqS@10>6xF- zE7KZK8>?ro%)9C0fEuozL?5EgGKt}M9xz@@ty&HInATj>0cTp5I+q`#q85WBUB@;| z7MP%Cd+N;d{^PFL`AHq)f7AP@-DqBE@kc%0Iq%y$!s{5P#+Yf;c6xp?F19L6QajFW+bOzK0Bo|PtCDE>O2iB~ac3Kjk?xtMaxmqiGbQP zTXZWOXhpYaIV!qc%TduC0kwIy=uSG&ie9YcsOT;&M@4rB9zisZ8OkVLt(rEdQfco2 zT54(p5ZKT6g8*U2F)61>>WilYeH;WsRXR1zOCQJTVb;#@oFpWsO4-pq5Q|5Lr=<0X msd74c!gL7xEwQ8HpqNmETtH3%U`P3X7) literal 0 HcmV?d00001 diff --git a/redux/ReduxCore/assets/css/vendor/elusive-icons/fonts/elusiveicons-webfont.svg b/redux/ReduxCore/assets/css/vendor/elusive-icons/fonts/elusiveicons-webfont.svg new file mode 100644 index 0000000..cf60ed2 --- /dev/null +++ b/redux/ReduxCore/assets/css/vendor/elusive-icons/fonts/elusiveicons-webfont.svg @@ -0,0 +1,934 @@ + + + + +Created by FontForge 20120731 at Tue Feb 24 11:41:15 2015 + By Dovy + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/redux/ReduxCore/assets/css/vendor/elusive-icons/fonts/elusiveicons-webfont.ttf b/redux/ReduxCore/assets/css/vendor/elusive-icons/fonts/elusiveicons-webfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..7065ca1d64f2c4c733b478cda54a23543384da1d GIT binary patch literal 80248 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 literal 0 HcmV?d00001 diff --git a/redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_animated.scss b/redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_animated.scss new file mode 100644 index 0000000..7661bb0 --- /dev/null +++ b/redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_animated.scss @@ -0,0 +1,34 @@ +// Spinning Icons +// -------------------------- + +.#{$el-css-prefix}-spin { + -webkit-animation: el-spin 2s infinite linear; + animation: el-spin 2s infinite linear; +} + +.#{$el-css-prefix}-pulse { + -webkit-animation: el-spin 1s infinite steps(8); + animation: el-spin 1s infinite steps(8); +} + +@-webkit-keyframes el-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} + +@keyframes el-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} diff --git a/redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_bordered-pulled.scss b/redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_bordered-pulled.scss new file mode 100644 index 0000000..c5a0858 --- /dev/null +++ b/redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_bordered-pulled.scss @@ -0,0 +1,16 @@ +// Bordered & Pulled +// ------------------------- + +.#{$el-css-prefix}-border { + padding: .2em .25em .15em; + border: solid .08em $el-border-color; + border-radius: .1em; +} + +.pull-right { float: right; } +.pull-left { float: left; } + +.#{$el-css-prefix} { + &.pull-left { margin-right: .3em; } + &.pull-right { margin-left: .3em; } +} diff --git a/redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_core.scss b/redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_core.scss new file mode 100644 index 0000000..e987377 --- /dev/null +++ b/redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_core.scss @@ -0,0 +1,13 @@ +// Base Class Definition +// ------------------------- + +.#{$el-css-prefix} { + display: inline-block; + font: normal normal normal #{$el-font-size-base}/1 'Elusive-Icons'; // shortening font declaration + font-size: inherit; // can't have font-size inherit on line above, so need to override + text-rendering: auto; // optimizelegibility throws things off #1094 + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + transform: translate(0, 0); // ensures no half-pixel rendering in firefox + +} diff --git a/redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_fixed-width.scss b/redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_fixed-width.scss new file mode 100644 index 0000000..0458753 --- /dev/null +++ b/redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_fixed-width.scss @@ -0,0 +1,6 @@ +// Fixed Width Icons +// ------------------------- +.#{$el-css-prefix}-fw { + width: (18em / 14); + text-align: center; +} diff --git a/redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_icons.scss b/redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_icons.scss new file mode 100644 index 0000000..6479042 --- /dev/null +++ b/redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_icons.scss @@ -0,0 +1,615 @@ +/* Elusive Icons uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ + +.#{$el-css-prefix}-icon-address-book-alt:before, +.#{$el-css-prefix}-address-book-alt:before { content: $el-var-address-book-alt; } +.#{$el-css-prefix}-icon-address-book:before, +.#{$el-css-prefix}-address-book:before { content: $el-var-address-book; } +.#{$el-css-prefix}-icon-adjust-alt:before, +.#{$el-css-prefix}-adjust-alt:before { content: $el-var-adjust-alt; } +.#{$el-css-prefix}-icon-adjust:before, +.#{$el-css-prefix}-adjust:before { content: $el-var-adjust; } +.#{$el-css-prefix}-icon-adult:before, +.#{$el-css-prefix}-adult:before { content: $el-var-adult; } +.#{$el-css-prefix}-icon-align-center:before, +.#{$el-css-prefix}-align-center:before { content: $el-var-align-center; } +.#{$el-css-prefix}-icon-align-justify:before, +.#{$el-css-prefix}-align-justify:before { content: $el-var-align-justify; } +.#{$el-css-prefix}-icon-align-left:before, +.#{$el-css-prefix}-align-left:before { content: $el-var-align-left; } +.#{$el-css-prefix}-icon-align-right:before, +.#{$el-css-prefix}-align-right:before { content: $el-var-align-right; } +.#{$el-css-prefix}-icon-arrow-down:before, +.#{$el-css-prefix}-arrow-down:before { content: $el-var-arrow-down; } +.#{$el-css-prefix}-icon-arrow-left:before, +.#{$el-css-prefix}-arrow-left:before { content: $el-var-arrow-left; } +.#{$el-css-prefix}-icon-arrow-right:before, +.#{$el-css-prefix}-arrow-right:before { content: $el-var-arrow-right; } +.#{$el-css-prefix}-icon-arrow-up:before, +.#{$el-css-prefix}-arrow-up:before { content: $el-var-arrow-up; } +.#{$el-css-prefix}-icon-asl:before, +.#{$el-css-prefix}-asl:before { content: $el-var-asl; } +.#{$el-css-prefix}-icon-asterisk:before, +.#{$el-css-prefix}-asterisk:before { content: $el-var-asterisk; } +.#{$el-css-prefix}-icon-backward:before, +.#{$el-css-prefix}-backward:before { content: $el-var-backward; } +.#{$el-css-prefix}-icon-ban-circle:before, +.#{$el-css-prefix}-ban-circle:before { content: $el-var-ban-circle; } +.#{$el-css-prefix}-icon-barcode:before, +.#{$el-css-prefix}-barcode:before { content: $el-var-barcode; } +.#{$el-css-prefix}-icon-behance:before, +.#{$el-css-prefix}-behance:before { content: $el-var-behance; } +.#{$el-css-prefix}-icon-bell:before, +.#{$el-css-prefix}-bell:before { content: $el-var-bell; } +.#{$el-css-prefix}-icon-blind:before, +.#{$el-css-prefix}-blind:before { content: $el-var-blind; } +.#{$el-css-prefix}-icon-blogger:before, +.#{$el-css-prefix}-blogger:before { content: $el-var-blogger; } +.#{$el-css-prefix}-icon-bold:before, +.#{$el-css-prefix}-bold:before { content: $el-var-bold; } +.#{$el-css-prefix}-icon-book:before, +.#{$el-css-prefix}-book:before { content: $el-var-book; } +.#{$el-css-prefix}-icon-bookmark-empty:before, +.#{$el-css-prefix}-bookmark-empty:before { content: $el-var-bookmark-empty; } +.#{$el-css-prefix}-icon-bookmark:before, +.#{$el-css-prefix}-bookmark:before { content: $el-var-bookmark; } +.#{$el-css-prefix}-icon-brackets:before, +.#{$el-css-prefix}-brackets:before { content: $el-var-brackets; } +.#{$el-css-prefix}-icon-braille:before, +.#{$el-css-prefix}-braille:before { content: $el-var-braille; } +.#{$el-css-prefix}-icon-briefcase:before, +.#{$el-css-prefix}-briefcase:before { content: $el-var-briefcase; } +.#{$el-css-prefix}-icon-broom:before, +.#{$el-css-prefix}-broom:before { content: $el-var-broom; } +.#{$el-css-prefix}-icon-brush:before, +.#{$el-css-prefix}-brush:before { content: $el-var-brush; } +.#{$el-css-prefix}-icon-bulb:before, +.#{$el-css-prefix}-bulb:before { content: $el-var-bulb; } +.#{$el-css-prefix}-icon-bullhorn:before, +.#{$el-css-prefix}-bullhorn:before { content: $el-var-bullhorn; } +.#{$el-css-prefix}-icon-calendar-sign:before, +.#{$el-css-prefix}-calendar-sign:before { content: $el-var-calendar-sign; } +.#{$el-css-prefix}-icon-calendar:before, +.#{$el-css-prefix}-calendar:before { content: $el-var-calendar; } +.#{$el-css-prefix}-icon-camera:before, +.#{$el-css-prefix}-camera:before { content: $el-var-camera; } +.#{$el-css-prefix}-icon-car:before, +.#{$el-css-prefix}-car:before { content: $el-var-car; } +.#{$el-css-prefix}-icon-caret-down:before, +.#{$el-css-prefix}-caret-down:before { content: $el-var-caret-down; } +.#{$el-css-prefix}-icon-caret-left:before, +.#{$el-css-prefix}-caret-left:before { content: $el-var-caret-left; } +.#{$el-css-prefix}-icon-caret-right:before, +.#{$el-css-prefix}-caret-right:before { content: $el-var-caret-right; } +.#{$el-css-prefix}-icon-caret-up:before, +.#{$el-css-prefix}-caret-up:before { content: $el-var-caret-up; } +.#{$el-css-prefix}-icon-cc:before, +.#{$el-css-prefix}-cc:before { content: $el-var-cc; } +.#{$el-css-prefix}-icon-certificate:before, +.#{$el-css-prefix}-certificate:before { content: $el-var-certificate; } +.#{$el-css-prefix}-icon-check-empty:before, +.#{$el-css-prefix}-check-empty:before { content: $el-var-check-empty; } +.#{$el-css-prefix}-icon-check:before, +.#{$el-css-prefix}-check:before { content: $el-var-check; } +.#{$el-css-prefix}-icon-chevron-down:before, +.#{$el-css-prefix}-chevron-down:before { content: $el-var-chevron-down; } +.#{$el-css-prefix}-icon-chevron-left:before, +.#{$el-css-prefix}-chevron-left:before { content: $el-var-chevron-left; } +.#{$el-css-prefix}-icon-chevron-right:before, +.#{$el-css-prefix}-chevron-right:before { content: $el-var-chevron-right; } +.#{$el-css-prefix}-icon-chevron-up:before, +.#{$el-css-prefix}-chevron-up:before { content: $el-var-chevron-up; } +.#{$el-css-prefix}-icon-child:before, +.#{$el-css-prefix}-child:before { content: $el-var-child; } +.#{$el-css-prefix}-icon-circle-arrow-down:before, +.#{$el-css-prefix}-circle-arrow-down:before { content: $el-var-circle-arrow-down; } +.#{$el-css-prefix}-icon-circle-arrow-left:before, +.#{$el-css-prefix}-circle-arrow-left:before { content: $el-var-circle-arrow-left; } +.#{$el-css-prefix}-icon-circle-arrow-right:before, +.#{$el-css-prefix}-circle-arrow-right:before { content: $el-var-circle-arrow-right; } +.#{$el-css-prefix}-icon-circle-arrow-up:before, +.#{$el-css-prefix}-circle-arrow-up:before { content: $el-var-circle-arrow-up; } +.#{$el-css-prefix}-icon-cloud-alt:before, +.#{$el-css-prefix}-cloud-alt:before { content: $el-var-cloud-alt; } +.#{$el-css-prefix}-icon-cloud:before, +.#{$el-css-prefix}-cloud:before { content: $el-var-cloud; } +.#{$el-css-prefix}-icon-cog-alt:before, +.#{$el-css-prefix}-cog-alt:before { content: $el-var-cog-alt; } +.#{$el-css-prefix}-icon-cog:before, +.#{$el-css-prefix}-cog:before { content: $el-var-cog; } +.#{$el-css-prefix}-icon-cogs:before, +.#{$el-css-prefix}-cogs:before { content: $el-var-cogs; } +.#{$el-css-prefix}-icon-comment-alt:before, +.#{$el-css-prefix}-comment-alt:before { content: $el-var-comment-alt; } +.#{$el-css-prefix}-icon-comment:before, +.#{$el-css-prefix}-comment:before { content: $el-var-comment; } +.#{$el-css-prefix}-icon-compass-alt:before, +.#{$el-css-prefix}-compass-alt:before { content: $el-var-compass-alt; } +.#{$el-css-prefix}-icon-compass:before, +.#{$el-css-prefix}-compass:before { content: $el-var-compass; } +.#{$el-css-prefix}-icon-credit-card:before, +.#{$el-css-prefix}-credit-card:before { content: $el-var-credit-card; } +.#{$el-css-prefix}-icon-css:before, +.#{$el-css-prefix}-css:before { content: $el-var-css; } +.#{$el-css-prefix}-icon-dashboard:before, +.#{$el-css-prefix}-dashboard:before { content: $el-var-dashboard; } +.#{$el-css-prefix}-icon-delicious:before, +.#{$el-css-prefix}-delicious:before { content: $el-var-delicious; } +.#{$el-css-prefix}-icon-deviantart:before, +.#{$el-css-prefix}-deviantart:before { content: $el-var-deviantart; } +.#{$el-css-prefix}-icon-digg:before, +.#{$el-css-prefix}-digg:before { content: $el-var-digg; } +.#{$el-css-prefix}-icon-download-alt:before, +.#{$el-css-prefix}-download-alt:before { content: $el-var-download-alt; } +.#{$el-css-prefix}-icon-download:before, +.#{$el-css-prefix}-download:before { content: $el-var-download; } +.#{$el-css-prefix}-icon-dribbble:before, +.#{$el-css-prefix}-dribbble:before { content: $el-var-dribbble; } +.#{$el-css-prefix}-icon-edit:before, +.#{$el-css-prefix}-edit:before { content: $el-var-edit; } +.#{$el-css-prefix}-icon-eject:before, +.#{$el-css-prefix}-eject:before { content: $el-var-eject; } +.#{$el-css-prefix}-icon-envelope-alt:before, +.#{$el-css-prefix}-envelope-alt:before { content: $el-var-envelope-alt; } +.#{$el-css-prefix}-icon-envelope:before, +.#{$el-css-prefix}-envelope:before { content: $el-var-envelope; } +.#{$el-css-prefix}-icon-error-alt:before, +.#{$el-css-prefix}-error-alt:before { content: $el-var-error-alt; } +.#{$el-css-prefix}-icon-error:before, +.#{$el-css-prefix}-error:before { content: $el-var-error; } +.#{$el-css-prefix}-icon-eur:before, +.#{$el-css-prefix}-eur:before { content: $el-var-eur; } +.#{$el-css-prefix}-icon-exclamation-sign:before, +.#{$el-css-prefix}-exclamation-sign:before { content: $el-var-exclamation-sign; } +.#{$el-css-prefix}-icon-eye-close:before, +.#{$el-css-prefix}-eye-close:before { content: $el-var-eye-close; } +.#{$el-css-prefix}-icon-eye-open:before, +.#{$el-css-prefix}-eye-open:before { content: $el-var-eye-open; } +.#{$el-css-prefix}-icon-facebook:before, +.#{$el-css-prefix}-facebook:before { content: $el-var-facebook; } +.#{$el-css-prefix}-icon-facetime-video:before, +.#{$el-css-prefix}-facetime-video:before { content: $el-var-facetime-video; } +.#{$el-css-prefix}-icon-fast-backward:before, +.#{$el-css-prefix}-fast-backward:before { content: $el-var-fast-backward; } +.#{$el-css-prefix}-icon-fast-forward:before, +.#{$el-css-prefix}-fast-forward:before { content: $el-var-fast-forward; } +.#{$el-css-prefix}-icon-female:before, +.#{$el-css-prefix}-female:before { content: $el-var-female; } +.#{$el-css-prefix}-icon-file-alt:before, +.#{$el-css-prefix}-file-alt:before { content: $el-var-file-alt; } +.#{$el-css-prefix}-icon-file-edit-alt:before, +.#{$el-css-prefix}-file-edit-alt:before { content: $el-var-file-edit-alt; } +.#{$el-css-prefix}-icon-file-edit:before, +.#{$el-css-prefix}-file-edit:before { content: $el-var-file-edit; } +.#{$el-css-prefix}-icon-file-new-alt:before, +.#{$el-css-prefix}-file-new-alt:before { content: $el-var-file-new-alt; } +.#{$el-css-prefix}-icon-file-new:before, +.#{$el-css-prefix}-file-new:before { content: $el-var-file-new; } +.#{$el-css-prefix}-icon-file:before, +.#{$el-css-prefix}-file:before { content: $el-var-file; } +.#{$el-css-prefix}-icon-film:before, +.#{$el-css-prefix}-film:before { content: $el-var-film; } +.#{$el-css-prefix}-icon-filter:before, +.#{$el-css-prefix}-filter:before { content: $el-var-filter; } +.#{$el-css-prefix}-icon-fire:before, +.#{$el-css-prefix}-fire:before { content: $el-var-fire; } +.#{$el-css-prefix}-icon-flag-alt:before, +.#{$el-css-prefix}-flag-alt:before { content: $el-var-flag-alt; } +.#{$el-css-prefix}-icon-flag:before, +.#{$el-css-prefix}-flag:before { content: $el-var-flag; } +.#{$el-css-prefix}-icon-flickr:before, +.#{$el-css-prefix}-flickr:before { content: $el-var-flickr; } +.#{$el-css-prefix}-icon-folder-close:before, +.#{$el-css-prefix}-folder-close:before { content: $el-var-folder-close; } +.#{$el-css-prefix}-icon-folder-open:before, +.#{$el-css-prefix}-folder-open:before { content: $el-var-folder-open; } +.#{$el-css-prefix}-icon-folder-sign:before, +.#{$el-css-prefix}-folder-sign:before { content: $el-var-folder-sign; } +.#{$el-css-prefix}-icon-folder:before, +.#{$el-css-prefix}-folder:before { content: $el-var-folder; } +.#{$el-css-prefix}-icon-font:before, +.#{$el-css-prefix}-font:before { content: $el-var-font; } +.#{$el-css-prefix}-icon-fontsize:before, +.#{$el-css-prefix}-fontsize:before { content: $el-var-fontsize; } +.#{$el-css-prefix}-icon-fork:before, +.#{$el-css-prefix}-fork:before { content: $el-var-fork; } +.#{$el-css-prefix}-icon-forward-alt:before, +.#{$el-css-prefix}-forward-alt:before { content: $el-var-forward-alt; } +.#{$el-css-prefix}-icon-forward:before, +.#{$el-css-prefix}-forward:before { content: $el-var-forward; } +.#{$el-css-prefix}-icon-foursquare:before, +.#{$el-css-prefix}-foursquare:before { content: $el-var-foursquare; } +.#{$el-css-prefix}-icon-friendfeed-rect:before, +.#{$el-css-prefix}-friendfeed-rect:before { content: $el-var-friendfeed-rect; } +.#{$el-css-prefix}-icon-friendfeed:before, +.#{$el-css-prefix}-friendfeed:before { content: $el-var-friendfeed; } +.#{$el-css-prefix}-icon-fullscreen:before, +.#{$el-css-prefix}-fullscreen:before { content: $el-var-fullscreen; } +.#{$el-css-prefix}-icon-gallery:before, +.#{$el-css-prefix}-gallery:before { content: $el-var-gallery; } +.#{$el-css-prefix}-icon-gbp:before, +.#{$el-css-prefix}-gbp:before { content: $el-var-gbp; } +.#{$el-css-prefix}-icon-gift:before, +.#{$el-css-prefix}-gift:before { content: $el-var-gift; } +.#{$el-css-prefix}-icon-github-text:before, +.#{$el-css-prefix}-github-text:before { content: $el-var-github-text; } +.#{$el-css-prefix}-icon-github:before, +.#{$el-css-prefix}-github:before { content: $el-var-github; } +.#{$el-css-prefix}-icon-glass:before, +.#{$el-css-prefix}-glass:before { content: $el-var-glass; } +.#{$el-css-prefix}-icon-glasses:before, +.#{$el-css-prefix}-glasses:before { content: $el-var-glasses; } +.#{$el-css-prefix}-icon-globe-alt:before, +.#{$el-css-prefix}-globe-alt:before { content: $el-var-globe-alt; } +.#{$el-css-prefix}-icon-globe:before, +.#{$el-css-prefix}-globe:before { content: $el-var-globe; } +.#{$el-css-prefix}-icon-googleplus:before, +.#{$el-css-prefix}-googleplus:before { content: $el-var-googleplus; } +.#{$el-css-prefix}-icon-graph-alt:before, +.#{$el-css-prefix}-graph-alt:before { content: $el-var-graph-alt; } +.#{$el-css-prefix}-icon-graph:before, +.#{$el-css-prefix}-graph:before { content: $el-var-graph; } +.#{$el-css-prefix}-icon-group-alt:before, +.#{$el-css-prefix}-group-alt:before { content: $el-var-group-alt; } +.#{$el-css-prefix}-icon-group:before, +.#{$el-css-prefix}-group:before { content: $el-var-group; } +.#{$el-css-prefix}-icon-guidedog:before, +.#{$el-css-prefix}-guidedog:before { content: $el-var-guidedog; } +.#{$el-css-prefix}-icon-hand-down:before, +.#{$el-css-prefix}-hand-down:before { content: $el-var-hand-down; } +.#{$el-css-prefix}-icon-hand-left:before, +.#{$el-css-prefix}-hand-left:before { content: $el-var-hand-left; } +.#{$el-css-prefix}-icon-hand-right:before, +.#{$el-css-prefix}-hand-right:before { content: $el-var-hand-right; } +.#{$el-css-prefix}-icon-hand-up:before, +.#{$el-css-prefix}-hand-up:before { content: $el-var-hand-up; } +.#{$el-css-prefix}-icon-hdd:before, +.#{$el-css-prefix}-hdd:before { content: $el-var-hdd; } +.#{$el-css-prefix}-icon-headphones:before, +.#{$el-css-prefix}-headphones:before { content: $el-var-headphones; } +.#{$el-css-prefix}-icon-hearing-impaired:before, +.#{$el-css-prefix}-hearing-impaired:before { content: $el-var-hearing-impaired; } +.#{$el-css-prefix}-icon-heart-alt:before, +.#{$el-css-prefix}-heart-alt:before { content: $el-var-heart-alt; } +.#{$el-css-prefix}-icon-heart-empty:before, +.#{$el-css-prefix}-heart-empty:before { content: $el-var-heart-empty; } +.#{$el-css-prefix}-icon-heart:before, +.#{$el-css-prefix}-heart:before { content: $el-var-heart; } +.#{$el-css-prefix}-icon-home-alt:before, +.#{$el-css-prefix}-home-alt:before { content: $el-var-home-alt; } +.#{$el-css-prefix}-icon-home:before, +.#{$el-css-prefix}-home:before { content: $el-var-home; } +.#{$el-css-prefix}-icon-hourglass:before, +.#{$el-css-prefix}-hourglass:before { content: $el-var-hourglass; } +.#{$el-css-prefix}-icon-idea-alt:before, +.#{$el-css-prefix}-idea-alt:before { content: $el-var-idea-alt; } +.#{$el-css-prefix}-icon-idea:before, +.#{$el-css-prefix}-idea:before { content: $el-var-idea; } +.#{$el-css-prefix}-icon-inbox-alt:before, +.#{$el-css-prefix}-inbox-alt:before { content: $el-var-inbox-alt; } +.#{$el-css-prefix}-icon-inbox-box:before, +.#{$el-css-prefix}-inbox-box:before { content: $el-var-inbox-box; } +.#{$el-css-prefix}-icon-inbox:before, +.#{$el-css-prefix}-inbox:before { content: $el-var-inbox; } +.#{$el-css-prefix}-icon-indent-left:before, +.#{$el-css-prefix}-indent-left:before { content: $el-var-indent-left; } +.#{$el-css-prefix}-icon-indent-right:before, +.#{$el-css-prefix}-indent-right:before { content: $el-var-indent-right; } +.#{$el-css-prefix}-icon-info-circle:before, +.#{$el-css-prefix}-info-circle:before { content: $el-var-info-circle; } +.#{$el-css-prefix}-icon-instagram:before, +.#{$el-css-prefix}-instagram:before { content: $el-var-instagram; } +.#{$el-css-prefix}-icon-iphone-home:before, +.#{$el-css-prefix}-iphone-home:before { content: $el-var-iphone-home; } +.#{$el-css-prefix}-icon-italic:before, +.#{$el-css-prefix}-italic:before { content: $el-var-italic; } +.#{$el-css-prefix}-icon-key:before, +.#{$el-css-prefix}-key:before { content: $el-var-key; } +.#{$el-css-prefix}-icon-laptop-alt:before, +.#{$el-css-prefix}-laptop-alt:before { content: $el-var-laptop-alt; } +.#{$el-css-prefix}-icon-laptop:before, +.#{$el-css-prefix}-laptop:before { content: $el-var-laptop; } +.#{$el-css-prefix}-icon-lastfm:before, +.#{$el-css-prefix}-lastfm:before { content: $el-var-lastfm; } +.#{$el-css-prefix}-icon-leaf:before, +.#{$el-css-prefix}-leaf:before { content: $el-var-leaf; } +.#{$el-css-prefix}-icon-lines:before, +.#{$el-css-prefix}-lines:before { content: $el-var-lines; } +.#{$el-css-prefix}-icon-link:before, +.#{$el-css-prefix}-link:before { content: $el-var-link; } +.#{$el-css-prefix}-icon-linkedin:before, +.#{$el-css-prefix}-linkedin:before { content: $el-var-linkedin; } +.#{$el-css-prefix}-icon-list-alt:before, +.#{$el-css-prefix}-list-alt:before { content: $el-var-list-alt; } +.#{$el-css-prefix}-icon-list:before, +.#{$el-css-prefix}-list:before { content: $el-var-list; } +.#{$el-css-prefix}-icon-livejournal:before, +.#{$el-css-prefix}-livejournal:before { content: $el-var-livejournal; } +.#{$el-css-prefix}-icon-lock-alt:before, +.#{$el-css-prefix}-lock-alt:before { content: $el-var-lock-alt; } +.#{$el-css-prefix}-icon-lock:before, +.#{$el-css-prefix}-lock:before { content: $el-var-lock; } +.#{$el-css-prefix}-icon-magic:before, +.#{$el-css-prefix}-magic:before { content: $el-var-magic; } +.#{$el-css-prefix}-icon-magnet:before, +.#{$el-css-prefix}-magnet:before { content: $el-var-magnet; } +.#{$el-css-prefix}-icon-male:before, +.#{$el-css-prefix}-male:before { content: $el-var-male; } +.#{$el-css-prefix}-icon-map-marker-alt:before, +.#{$el-css-prefix}-map-marker-alt:before { content: $el-var-map-marker-alt; } +.#{$el-css-prefix}-icon-map-marker:before, +.#{$el-css-prefix}-map-marker:before { content: $el-var-map-marker; } +.#{$el-css-prefix}-icon-mic-alt:before, +.#{$el-css-prefix}-mic-alt:before { content: $el-var-mic-alt; } +.#{$el-css-prefix}-icon-mic:before, +.#{$el-css-prefix}-mic:before { content: $el-var-mic; } +.#{$el-css-prefix}-icon-minus-sign:before, +.#{$el-css-prefix}-minus-sign:before { content: $el-var-minus-sign; } +.#{$el-css-prefix}-icon-minus:before, +.#{$el-css-prefix}-minus:before { content: $el-var-minus; } +.#{$el-css-prefix}-icon-move:before, +.#{$el-css-prefix}-move:before { content: $el-var-move; } +.#{$el-css-prefix}-icon-music:before, +.#{$el-css-prefix}-music:before { content: $el-var-music; } +.#{$el-css-prefix}-icon-myspace:before, +.#{$el-css-prefix}-myspace:before { content: $el-var-myspace; } +.#{$el-css-prefix}-icon-network:before, +.#{$el-css-prefix}-network:before { content: $el-var-network; } +.#{$el-css-prefix}-icon-off:before, +.#{$el-css-prefix}-off:before { content: $el-var-off; } +.#{$el-css-prefix}-icon-ok-circle:before, +.#{$el-css-prefix}-ok-circle:before { content: $el-var-ok-circle; } +.#{$el-css-prefix}-icon-ok-sign:before, +.#{$el-css-prefix}-ok-sign:before { content: $el-var-ok-sign; } +.#{$el-css-prefix}-icon-ok:before, +.#{$el-css-prefix}-ok:before { content: $el-var-ok; } +.#{$el-css-prefix}-icon-opensource:before, +.#{$el-css-prefix}-opensource:before { content: $el-var-opensource; } +.#{$el-css-prefix}-icon-paper-clip-alt:before, +.#{$el-css-prefix}-paper-clip-alt:before { content: $el-var-paper-clip-alt; } +.#{$el-css-prefix}-icon-paper-clip:before, +.#{$el-css-prefix}-paper-clip:before { content: $el-var-paper-clip; } +.#{$el-css-prefix}-icon-path:before, +.#{$el-css-prefix}-path:before { content: $el-var-path; } +.#{$el-css-prefix}-icon-pause-alt:before, +.#{$el-css-prefix}-pause-alt:before { content: $el-var-pause-alt; } +.#{$el-css-prefix}-icon-pause:before, +.#{$el-css-prefix}-pause:before { content: $el-var-pause; } +.#{$el-css-prefix}-icon-pencil-alt:before, +.#{$el-css-prefix}-pencil-alt:before { content: $el-var-pencil-alt; } +.#{$el-css-prefix}-icon-pencil:before, +.#{$el-css-prefix}-pencil:before { content: $el-var-pencil; } +.#{$el-css-prefix}-icon-person:before, +.#{$el-css-prefix}-person:before { content: $el-var-person; } +.#{$el-css-prefix}-icon-phone-alt:before, +.#{$el-css-prefix}-phone-alt:before { content: $el-var-phone-alt; } +.#{$el-css-prefix}-icon-phone:before, +.#{$el-css-prefix}-phone:before { content: $el-var-phone; } +.#{$el-css-prefix}-icon-photo-alt:before, +.#{$el-css-prefix}-photo-alt:before { content: $el-var-photo-alt; } +.#{$el-css-prefix}-icon-photo:before, +.#{$el-css-prefix}-photo:before { content: $el-var-photo; } +.#{$el-css-prefix}-icon-picasa:before, +.#{$el-css-prefix}-picasa:before { content: $el-var-picasa; } +.#{$el-css-prefix}-icon-picture:before, +.#{$el-css-prefix}-picture:before { content: $el-var-picture; } +.#{$el-css-prefix}-icon-plane:before, +.#{$el-css-prefix}-plane:before { content: $el-var-plane; } +.#{$el-css-prefix}-icon-play-alt:before, +.#{$el-css-prefix}-play-alt:before { content: $el-var-play-alt; } +.#{$el-css-prefix}-icon-play-circle:before, +.#{$el-css-prefix}-play-circle:before { content: $el-var-play-circle; } +.#{$el-css-prefix}-icon-play:before, +.#{$el-css-prefix}-play:before { content: $el-var-play; } +.#{$el-css-prefix}-icon-plurk-alt:before, +.#{$el-css-prefix}-plurk-alt:before { content: $el-var-plurk-alt; } +.#{$el-css-prefix}-icon-plurk:before, +.#{$el-css-prefix}-plurk:before { content: $el-var-plurk; } +.#{$el-css-prefix}-icon-plus-sign:before, +.#{$el-css-prefix}-plus-sign:before { content: $el-var-plus-sign; } +.#{$el-css-prefix}-icon-plus:before, +.#{$el-css-prefix}-plus:before { content: $el-var-plus; } +.#{$el-css-prefix}-icon-podcast:before, +.#{$el-css-prefix}-podcast:before { content: $el-var-podcast; } +.#{$el-css-prefix}-icon-print:before, +.#{$el-css-prefix}-print:before { content: $el-var-print; } +.#{$el-css-prefix}-icon-puzzle:before, +.#{$el-css-prefix}-puzzle:before { content: $el-var-puzzle; } +.#{$el-css-prefix}-icon-qrcode:before, +.#{$el-css-prefix}-qrcode:before { content: $el-var-qrcode; } +.#{$el-css-prefix}-icon-question-sign:before, +.#{$el-css-prefix}-question-sign:before { content: $el-var-question-sign; } +.#{$el-css-prefix}-icon-question:before, +.#{$el-css-prefix}-question:before { content: $el-var-question; } +.#{$el-css-prefix}-icon-quote-alt:before, +.#{$el-css-prefix}-quote-alt:before { content: $el-var-quote-alt; } +.#{$el-css-prefix}-icon-quote-right-alt:before, +.#{$el-css-prefix}-quote-right-alt:before { content: $el-var-quote-right-alt; } +.#{$el-css-prefix}-icon-quote-right:before, +.#{$el-css-prefix}-quote-right:before { content: $el-var-quote-right; } +.#{$el-css-prefix}-icon-quotes:before, +.#{$el-css-prefix}-quotes:before { content: $el-var-quotes; } +.#{$el-css-prefix}-icon-random:before, +.#{$el-css-prefix}-random:before { content: $el-var-random; } +.#{$el-css-prefix}-icon-record:before, +.#{$el-css-prefix}-record:before { content: $el-var-record; } +.#{$el-css-prefix}-icon-reddit:before, +.#{$el-css-prefix}-reddit:before { content: $el-var-reddit; } +.#{$el-css-prefix}-icon-redux:before, +.#{$el-css-prefix}-redux:before { content: $el-var-redux; } +.#{$el-css-prefix}-icon-refresh:before, +.#{$el-css-prefix}-refresh:before { content: $el-var-refresh; } +.#{$el-css-prefix}-icon-remove-circle:before, +.#{$el-css-prefix}-remove-circle:before { content: $el-var-remove-circle; } +.#{$el-css-prefix}-icon-remove-sign:before, +.#{$el-css-prefix}-remove-sign:before { content: $el-var-remove-sign; } +.#{$el-css-prefix}-icon-remove:before, +.#{$el-css-prefix}-remove:before { content: $el-var-remove; } +.#{$el-css-prefix}-icon-repeat-alt:before, +.#{$el-css-prefix}-repeat-alt:before { content: $el-var-repeat-alt; } +.#{$el-css-prefix}-icon-repeat:before, +.#{$el-css-prefix}-repeat:before { content: $el-var-repeat; } +.#{$el-css-prefix}-icon-resize-full:before, +.#{$el-css-prefix}-resize-full:before { content: $el-var-resize-full; } +.#{$el-css-prefix}-icon-resize-horizontal:before, +.#{$el-css-prefix}-resize-horizontal:before { content: $el-var-resize-horizontal; } +.#{$el-css-prefix}-icon-resize-small:before, +.#{$el-css-prefix}-resize-small:before { content: $el-var-resize-small; } +.#{$el-css-prefix}-icon-resize-vertical:before, +.#{$el-css-prefix}-resize-vertical:before { content: $el-var-resize-vertical; } +.#{$el-css-prefix}-icon-return-key:before, +.#{$el-css-prefix}-return-key:before { content: $el-var-return-key; } +.#{$el-css-prefix}-icon-retweet:before, +.#{$el-css-prefix}-retweet:before { content: $el-var-retweet; } +.#{$el-css-prefix}-icon-reverse-alt:before, +.#{$el-css-prefix}-reverse-alt:before { content: $el-var-reverse-alt; } +.#{$el-css-prefix}-icon-road:before, +.#{$el-css-prefix}-road:before { content: $el-var-road; } +.#{$el-css-prefix}-icon-rss:before, +.#{$el-css-prefix}-rss:before { content: $el-var-rss; } +.#{$el-css-prefix}-icon-scissors:before, +.#{$el-css-prefix}-scissors:before { content: $el-var-scissors; } +.#{$el-css-prefix}-icon-screen-alt:before, +.#{$el-css-prefix}-screen-alt:before { content: $el-var-screen-alt; } +.#{$el-css-prefix}-icon-screen:before, +.#{$el-css-prefix}-screen:before { content: $el-var-screen; } +.#{$el-css-prefix}-icon-screenshot:before, +.#{$el-css-prefix}-screenshot:before { content: $el-var-screenshot; } +.#{$el-css-prefix}-icon-search-alt:before, +.#{$el-css-prefix}-search-alt:before { content: $el-var-search-alt; } +.#{$el-css-prefix}-icon-search:before, +.#{$el-css-prefix}-search:before { content: $el-var-search; } +.#{$el-css-prefix}-icon-share-alt:before, +.#{$el-css-prefix}-share-alt:before { content: $el-var-share-alt; } +.#{$el-css-prefix}-icon-share:before, +.#{$el-css-prefix}-share:before { content: $el-var-share; } +.#{$el-css-prefix}-icon-shopping-cart-sign:before, +.#{$el-css-prefix}-shopping-cart-sign:before { content: $el-var-shopping-cart-sign; } +.#{$el-css-prefix}-icon-shopping-cart:before, +.#{$el-css-prefix}-shopping-cart:before { content: $el-var-shopping-cart; } +.#{$el-css-prefix}-icon-shortcode:before, +.#{$el-css-prefix}-shortcode:before { content: $el-var-shortcode; } +.#{$el-css-prefix}-icon-signal:before, +.#{$el-css-prefix}-signal:before { content: $el-var-signal; } +.#{$el-css-prefix}-icon-skype:before, +.#{$el-css-prefix}-skype:before { content: $el-var-skype; } +.#{$el-css-prefix}-icon-slideshare:before, +.#{$el-css-prefix}-slideshare:before { content: $el-var-slideshare; } +.#{$el-css-prefix}-icon-smiley-alt:before, +.#{$el-css-prefix}-smiley-alt:before { content: $el-var-smiley-alt; } +.#{$el-css-prefix}-icon-smiley:before, +.#{$el-css-prefix}-smiley:before { content: $el-var-smiley; } +.#{$el-css-prefix}-icon-soundcloud:before, +.#{$el-css-prefix}-soundcloud:before { content: $el-var-soundcloud; } +.#{$el-css-prefix}-icon-speaker:before, +.#{$el-css-prefix}-speaker:before { content: $el-var-speaker; } +.#{$el-css-prefix}-icon-spotify:before, +.#{$el-css-prefix}-spotify:before { content: $el-var-spotify; } +.#{$el-css-prefix}-icon-stackoverflow:before, +.#{$el-css-prefix}-stackoverflow:before { content: $el-var-stackoverflow; } +.#{$el-css-prefix}-icon-star-alt:before, +.#{$el-css-prefix}-star-alt:before { content: $el-var-star-alt; } +.#{$el-css-prefix}-icon-star-empty:before, +.#{$el-css-prefix}-star-empty:before { content: $el-var-star-empty; } +.#{$el-css-prefix}-icon-star:before, +.#{$el-css-prefix}-star:before { content: $el-var-star; } +.#{$el-css-prefix}-icon-step-backward:before, +.#{$el-css-prefix}-step-backward:before { content: $el-var-step-backward; } +.#{$el-css-prefix}-icon-step-forward:before, +.#{$el-css-prefix}-step-forward:before { content: $el-var-step-forward; } +.#{$el-css-prefix}-icon-stop-alt:before, +.#{$el-css-prefix}-stop-alt:before { content: $el-var-stop-alt; } +.#{$el-css-prefix}-icon-stop:before, +.#{$el-css-prefix}-stop:before { content: $el-var-stop; } +.#{$el-css-prefix}-icon-stumbleupon:before, +.#{$el-css-prefix}-stumbleupon:before { content: $el-var-stumbleupon; } +.#{$el-css-prefix}-icon-tag:before, +.#{$el-css-prefix}-tag:before { content: $el-var-tag; } +.#{$el-css-prefix}-icon-tags:before, +.#{$el-css-prefix}-tags:before { content: $el-var-tags; } +.#{$el-css-prefix}-icon-tasks:before, +.#{$el-css-prefix}-tasks:before { content: $el-var-tasks; } +.#{$el-css-prefix}-icon-text-height:before, +.#{$el-css-prefix}-text-height:before { content: $el-var-text-height; } +.#{$el-css-prefix}-icon-text-width:before, +.#{$el-css-prefix}-text-width:before { content: $el-var-text-width; } +.#{$el-css-prefix}-icon-th-large:before, +.#{$el-css-prefix}-th-large:before { content: $el-var-th-large; } +.#{$el-css-prefix}-icon-th-list:before, +.#{$el-css-prefix}-th-list:before { content: $el-var-th-list; } +.#{$el-css-prefix}-icon-th:before, +.#{$el-css-prefix}-th:before { content: $el-var-th; } +.#{$el-css-prefix}-icon-thumbs-down:before, +.#{$el-css-prefix}-thumbs-down:before { content: $el-var-thumbs-down; } +.#{$el-css-prefix}-icon-thumbs-up:before, +.#{$el-css-prefix}-thumbs-up:before { content: $el-var-thumbs-up; } +.#{$el-css-prefix}-icon-time-alt:before, +.#{$el-css-prefix}-time-alt:before { content: $el-var-time-alt; } +.#{$el-css-prefix}-icon-time:before, +.#{$el-css-prefix}-time:before { content: $el-var-time; } +.#{$el-css-prefix}-icon-tint:before, +.#{$el-css-prefix}-tint:before { content: $el-var-tint; } +.#{$el-css-prefix}-icon-torso:before, +.#{$el-css-prefix}-torso:before { content: $el-var-torso; } +.#{$el-css-prefix}-icon-trash-alt:before, +.#{$el-css-prefix}-trash-alt:before { content: $el-var-trash-alt; } +.#{$el-css-prefix}-icon-trash:before, +.#{$el-css-prefix}-trash:before { content: $el-var-trash; } +.#{$el-css-prefix}-icon-tumblr:before, +.#{$el-css-prefix}-tumblr:before { content: $el-var-tumblr; } +.#{$el-css-prefix}-icon-twitter:before, +.#{$el-css-prefix}-twitter:before { content: $el-var-twitter; } +.#{$el-css-prefix}-icon-universal-access:before, +.#{$el-css-prefix}-universal-access:before { content: $el-var-universal-access; } +.#{$el-css-prefix}-icon-unlock-alt:before, +.#{$el-css-prefix}-unlock-alt:before { content: $el-var-unlock-alt; } +.#{$el-css-prefix}-icon-unlock:before, +.#{$el-css-prefix}-unlock:before { content: $el-var-unlock; } +.#{$el-css-prefix}-icon-upload:before, +.#{$el-css-prefix}-upload:before { content: $el-var-upload; } +.#{$el-css-prefix}-icon-usd:before, +.#{$el-css-prefix}-usd:before { content: $el-var-usd; } +.#{$el-css-prefix}-icon-user:before, +.#{$el-css-prefix}-user:before { content: $el-var-user; } +.#{$el-css-prefix}-icon-viadeo:before, +.#{$el-css-prefix}-viadeo:before { content: $el-var-viadeo; } +.#{$el-css-prefix}-icon-video-alt:before, +.#{$el-css-prefix}-video-alt:before { content: $el-var-video-alt; } +.#{$el-css-prefix}-icon-video-chat:before, +.#{$el-css-prefix}-video-chat:before { content: $el-var-video-chat; } +.#{$el-css-prefix}-icon-video:before, +.#{$el-css-prefix}-video:before { content: $el-var-video; } +.#{$el-css-prefix}-icon-view-mode:before, +.#{$el-css-prefix}-view-mode:before { content: $el-var-view-mode; } +.#{$el-css-prefix}-icon-vimeo:before, +.#{$el-css-prefix}-vimeo:before { content: $el-var-vimeo; } +.#{$el-css-prefix}-icon-vkontakte:before, +.#{$el-css-prefix}-vkontakte:before { content: $el-var-vkontakte; } +.#{$el-css-prefix}-icon-volume-down:before, +.#{$el-css-prefix}-volume-down:before { content: $el-var-volume-down; } +.#{$el-css-prefix}-icon-volume-off:before, +.#{$el-css-prefix}-volume-off:before { content: $el-var-volume-off; } +.#{$el-css-prefix}-icon-volume-up:before, +.#{$el-css-prefix}-volume-up:before { content: $el-var-volume-up; } +.#{$el-css-prefix}-icon-w3c:before, +.#{$el-css-prefix}-w3c:before { content: $el-var-w3c; } +.#{$el-css-prefix}-icon-warning-sign:before, +.#{$el-css-prefix}-warning-sign:before { content: $el-var-warning-sign; } +.#{$el-css-prefix}-icon-website-alt:before, +.#{$el-css-prefix}-website-alt:before { content: $el-var-website-alt; } +.#{$el-css-prefix}-icon-website:before, +.#{$el-css-prefix}-website:before { content: $el-var-website; } +.#{$el-css-prefix}-icon-wheelchair:before, +.#{$el-css-prefix}-wheelchair:before { content: $el-var-wheelchair; } +.#{$el-css-prefix}-icon-wordpress:before, +.#{$el-css-prefix}-wordpress:before { content: $el-var-wordpress; } +.#{$el-css-prefix}-icon-wrench-alt:before, +.#{$el-css-prefix}-wrench-alt:before { content: $el-var-wrench-alt; } +.#{$el-css-prefix}-icon-wrench:before, +.#{$el-css-prefix}-wrench:before { content: $el-var-wrench; } +.#{$el-css-prefix}-icon-youtube:before, +.#{$el-css-prefix}-youtube:before { content: $el-var-youtube; } +.#{$el-css-prefix}-icon-zoom-in:before, +.#{$el-css-prefix}-zoom-in:before { content: $el-var-zoom-in; } +.#{$el-css-prefix}-icon-zoom-out:before, +.#{$el-css-prefix}-zoom-out:before { content: $el-var-zoom-out; } diff --git a/redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_larger.scss b/redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_larger.scss new file mode 100644 index 0000000..f76eab7 --- /dev/null +++ b/redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_larger.scss @@ -0,0 +1,13 @@ +// Icon Sizes +// ------------------------- + +/* makes the font 33% larger relative to the icon container */ +.#{$el-css-prefix}-lg { + font-size: (4em / 3); + line-height: (3em / 4); + vertical-align: -15%; +} +.#{$el-css-prefix}-2x { font-size: 2em; } +.#{$el-css-prefix}-3x { font-size: 3em; } +.#{$el-css-prefix}-4x { font-size: 4em; } +.#{$el-css-prefix}-5x { font-size: 5em; } diff --git a/redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_list.scss b/redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_list.scss new file mode 100644 index 0000000..fefec82 --- /dev/null +++ b/redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_list.scss @@ -0,0 +1,19 @@ +// List Icons +// ------------------------- + +.#{$el-css-prefix}-ul { + padding-left: 0; + margin-left: $el-li-width; + list-style-type: none; + > li { position: relative; } +} +.#{$el-css-prefix}-li { + position: absolute; + left: -$el-li-width; + width: $el-li-width; + top: (2em / 14); + text-align: center; + &.#{$el-css-prefix}-lg { + left: -$el-li-width + (4em / 14); + } +} diff --git a/redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_mixins.scss b/redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_mixins.scss new file mode 100644 index 0000000..b443823 --- /dev/null +++ b/redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_mixins.scss @@ -0,0 +1,27 @@ +// Mixins +// -------------------------- + +@mixin el-icon() { + display: inline-block; + font: normal normal normal #{$el-font-size-base}/1 'Elusive-Icons'; // shortening font declaration + font-size: inherit; // can't have font-size inherit on line above, so need to override + text-rendering: auto; // optimizelegibility throws things off #1094 + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + transform: translate(0, 0); // ensures no half-pixel rendering in firefox + +} + +@mixin el-icon-rotate($degrees, $rotation) { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}); + -webkit-transform: rotate($degrees); + -ms-transform: rotate($degrees); + transform: rotate($degrees); +} + +@mixin el-icon-flip($horiz, $vert, $rotation) { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}); + -webkit-transform: scale($horiz, $vert); + -ms-transform: scale($horiz, $vert); + transform: scale($horiz, $vert); +} diff --git a/redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_path.scss b/redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_path.scss new file mode 100644 index 0000000..4989ef2 --- /dev/null +++ b/redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_path.scss @@ -0,0 +1,14 @@ +/* FONT PATH + * -------------------------- */ + +@font-face { + font-family: 'Elusive-Icons'; + src: url('#{$el-font-path}/elusiveicons-webfont.eot?v=#{$el-version}'); + src: url('#{$el-font-path}/elusiveicons-webfont.eot?#iefix&v=#{$el-version}') format('embedded-opentype'), + //url('#{$el-font-path}/elusiveicons-webfont.woff2?v=#{$el-version}') format('woff2'), + url('#{$el-font-path}/elusiveicons-webfont.woff?v=#{$el-version}') format('woff'), + url('#{$el-font-path}/elusiveicons-webfont.ttf?v=#{$el-version}') format('truetype'), + url('#{$el-font-path}/elusiveicons-webfont.svg?v=#{$el-version}#elusiveiconsregular') format('svg'); + font-weight: normal; + font-style: normal; +} diff --git a/redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_rotated-flipped.scss b/redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_rotated-flipped.scss new file mode 100644 index 0000000..8248161 --- /dev/null +++ b/redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_rotated-flipped.scss @@ -0,0 +1,20 @@ +// Rotated & Flipped Icons +// ------------------------- + +.#{$el-css-prefix}-rotate-90 { @include el-icon-rotate(90deg, 1); } +.#{$el-css-prefix}-rotate-180 { @include el-icon-rotate(180deg, 2); } +.#{$el-css-prefix}-rotate-270 { @include el-icon-rotate(270deg, 3); } + +.#{$el-css-prefix}-flip-horizontal { @include el-icon-flip(-1, 1, 0); } +.#{$el-css-prefix}-flip-vertical { @include el-icon-flip(1, -1, 2); } + +// Hook for IE8-9 +// ------------------------- + +:root .#{$el-css-prefix}-rotate-90, +:root .#{$el-css-prefix}-rotate-180, +:root .#{$el-css-prefix}-rotate-270, +:root .#{$el-css-prefix}-flip-horizontal, +:root .#{$el-css-prefix}-flip-vertical { + filter: none; +} diff --git a/redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_stacked.scss b/redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_stacked.scss new file mode 100644 index 0000000..68d84bb --- /dev/null +++ b/redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_stacked.scss @@ -0,0 +1,20 @@ +// Stacked Icons +// ------------------------- + +.#{$el-css-prefix}-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} +.#{$el-css-prefix}-stack-1x, .#{$el-css-prefix}-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} +.#{$el-css-prefix}-stack-1x { line-height: inherit; } +.#{$el-css-prefix}-stack-2x { font-size: 2em; } +.#{$el-css-prefix}-inverse { color: $el-inverse; } diff --git a/redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_variables.scss b/redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_variables.scss new file mode 100644 index 0000000..b5ddf72 --- /dev/null +++ b/redux/ReduxCore/assets/css/vendor/elusive-icons/scss/_variables.scss @@ -0,0 +1,318 @@ +// Variables +// -------------------------- + +$el-font-path: "fonts" !default; +$el-font-size-base: 14px !default; +$el-css-prefix: el !default; +$el-version: "2.0.0" !default; +$el-border-color: #eee !default; +$el-inverse: #fff !default; +$el-li-width: (30em / 14) !default; + +$el-var-address-book: "\f102"; +$el-var-address-book-alt: "\f101"; +$el-var-adjust: "\f104"; +$el-var-adjust-alt: "\f103"; +$el-var-adult: "\f105"; +$el-var-align-center: "\f106"; +$el-var-align-justify: "\f107"; +$el-var-align-left: "\f108"; +$el-var-align-right: "\f109"; +$el-var-arrow-down: "\f10a"; +$el-var-arrow-left: "\f10b"; +$el-var-arrow-right: "\f10c"; +$el-var-arrow-up: "\f10d"; +$el-var-asl: "\f10e"; +$el-var-asterisk: "\f10f"; +$el-var-backward: "\f110"; +$el-var-ban-circle: "\f111"; +$el-var-barcode: "\f112"; +$el-var-behance: "\f113"; +$el-var-bell: "\f114"; +$el-var-blind: "\f115"; +$el-var-blogger: "\f116"; +$el-var-bold: "\f117"; +$el-var-book: "\f118"; +$el-var-bookmark: "\f11a"; +$el-var-bookmark-empty: "\f119"; +$el-var-brackets: "\f11b"; +$el-var-braille: "\f11c"; +$el-var-briefcase: "\f11d"; +$el-var-broom: "\f11e"; +$el-var-brush: "\f11f"; +$el-var-bulb: "\f120"; +$el-var-bullhorn: "\f121"; +$el-var-calendar: "\f123"; +$el-var-calendar-sign: "\f122"; +$el-var-camera: "\f124"; +$el-var-car: "\f125"; +$el-var-caret-down: "\f126"; +$el-var-caret-left: "\f127"; +$el-var-caret-right: "\f128"; +$el-var-caret-up: "\f129"; +$el-var-cc: "\f12a"; +$el-var-certificate: "\f12b"; +$el-var-check: "\f12d"; +$el-var-check-empty: "\f12c"; +$el-var-chevron-down: "\f12e"; +$el-var-chevron-left: "\f12f"; +$el-var-chevron-right: "\f130"; +$el-var-chevron-up: "\f131"; +$el-var-child: "\f132"; +$el-var-circle-arrow-down: "\f133"; +$el-var-circle-arrow-left: "\f134"; +$el-var-circle-arrow-right: "\f135"; +$el-var-circle-arrow-up: "\f136"; +$el-var-cloud: "\f138"; +$el-var-cloud-alt: "\f137"; +$el-var-cog: "\f13a"; +$el-var-cog-alt: "\f139"; +$el-var-cogs: "\f13b"; +$el-var-comment: "\f13d"; +$el-var-comment-alt: "\f13c"; +$el-var-compass: "\f13f"; +$el-var-compass-alt: "\f13e"; +$el-var-credit-card: "\f140"; +$el-var-css: "\f141"; +$el-var-dashboard: "\f142"; +$el-var-delicious: "\f143"; +$el-var-deviantart: "\f144"; +$el-var-digg: "\f145"; +$el-var-download: "\f147"; +$el-var-download-alt: "\f146"; +$el-var-dribbble: "\f148"; +$el-var-edit: "\f149"; +$el-var-eject: "\f14a"; +$el-var-envelope: "\f14c"; +$el-var-envelope-alt: "\f14b"; +$el-var-error: "\f14e"; +$el-var-error-alt: "\f14d"; +$el-var-eur: "\f14f"; +$el-var-exclamation-sign: "\f150"; +$el-var-eye-close: "\f151"; +$el-var-eye-open: "\f152"; +$el-var-facebook: "\f153"; +$el-var-facetime-video: "\f154"; +$el-var-fast-backward: "\f155"; +$el-var-fast-forward: "\f156"; +$el-var-female: "\f157"; +$el-var-file: "\f15d"; +$el-var-file-alt: "\f158"; +$el-var-file-edit: "\f15a"; +$el-var-file-edit-alt: "\f159"; +$el-var-file-new: "\f15c"; +$el-var-file-new-alt: "\f15b"; +$el-var-film: "\f15e"; +$el-var-filter: "\f15f"; +$el-var-fire: "\f160"; +$el-var-flag: "\f162"; +$el-var-flag-alt: "\f161"; +$el-var-flickr: "\f163"; +$el-var-folder: "\f167"; +$el-var-folder-close: "\f164"; +$el-var-folder-open: "\f165"; +$el-var-folder-sign: "\f166"; +$el-var-font: "\f168"; +$el-var-fontsize: "\f169"; +$el-var-fork: "\f16a"; +$el-var-forward: "\f16c"; +$el-var-forward-alt: "\f16b"; +$el-var-foursquare: "\f16d"; +$el-var-friendfeed: "\f16f"; +$el-var-friendfeed-rect: "\f16e"; +$el-var-fullscreen: "\f170"; +$el-var-gallery: "\f171"; +$el-var-gbp: "\f172"; +$el-var-gift: "\f173"; +$el-var-github: "\f175"; +$el-var-github-text: "\f174"; +$el-var-glass: "\f176"; +$el-var-glasses: "\f177"; +$el-var-globe: "\f179"; +$el-var-globe-alt: "\f178"; +$el-var-googleplus: "\f17a"; +$el-var-graph: "\f17c"; +$el-var-graph-alt: "\f17b"; +$el-var-group: "\f17e"; +$el-var-group-alt: "\f17d"; +$el-var-guidedog: "\f17f"; +$el-var-hand-down: "\f180"; +$el-var-hand-left: "\f181"; +$el-var-hand-right: "\f182"; +$el-var-hand-up: "\f183"; +$el-var-hdd: "\f184"; +$el-var-headphones: "\f185"; +$el-var-hearing-impaired: "\f186"; +$el-var-heart: "\f189"; +$el-var-heart-alt: "\f187"; +$el-var-heart-empty: "\f188"; +$el-var-home: "\f18b"; +$el-var-home-alt: "\f18a"; +$el-var-hourglass: "\f18c"; +$el-var-idea: "\f18e"; +$el-var-idea-alt: "\f18d"; +$el-var-inbox: "\f191"; +$el-var-inbox-alt: "\f18f"; +$el-var-inbox-box: "\f190"; +$el-var-indent-left: "\f192"; +$el-var-indent-right: "\f193"; +$el-var-info-circle: "\f194"; +$el-var-instagram: "\f195"; +$el-var-iphone-home: "\f196"; +$el-var-italic: "\f197"; +$el-var-key: "\f198"; +$el-var-laptop: "\f19a"; +$el-var-laptop-alt: "\f199"; +$el-var-lastfm: "\f19b"; +$el-var-leaf: "\f19c"; +$el-var-lines: "\f19d"; +$el-var-link: "\f19e"; +$el-var-linkedin: "\f19f"; +$el-var-list: "\f1a1"; +$el-var-list-alt: "\f1a0"; +$el-var-livejournal: "\f1a2"; +$el-var-lock: "\f1a4"; +$el-var-lock-alt: "\f1a3"; +$el-var-magic: "\f1a5"; +$el-var-magnet: "\f1a6"; +$el-var-male: "\f1a7"; +$el-var-map-marker: "\f1a9"; +$el-var-map-marker-alt: "\f1a8"; +$el-var-mic: "\f1ab"; +$el-var-mic-alt: "\f1aa"; +$el-var-minus: "\f1ad"; +$el-var-minus-sign: "\f1ac"; +$el-var-move: "\f1ae"; +$el-var-music: "\f1af"; +$el-var-myspace: "\f1b0"; +$el-var-network: "\f1b1"; +$el-var-off: "\f1b2"; +$el-var-ok: "\f1b5"; +$el-var-ok-circle: "\f1b3"; +$el-var-ok-sign: "\f1b4"; +$el-var-opensource: "\f1b6"; +$el-var-paper-clip: "\f1b8"; +$el-var-paper-clip-alt: "\f1b7"; +$el-var-path: "\f1b9"; +$el-var-pause: "\f1bb"; +$el-var-pause-alt: "\f1ba"; +$el-var-pencil: "\f1bd"; +$el-var-pencil-alt: "\f1bc"; +$el-var-person: "\f1be"; +$el-var-phone: "\f1c0"; +$el-var-phone-alt: "\f1bf"; +$el-var-photo: "\f1c2"; +$el-var-photo-alt: "\f1c1"; +$el-var-picasa: "\f1c3"; +$el-var-picture: "\f1c4"; +$el-var-plane: "\f1c5"; +$el-var-play: "\f1c8"; +$el-var-play-alt: "\f1c6"; +$el-var-play-circle: "\f1c7"; +$el-var-plurk: "\f1ca"; +$el-var-plurk-alt: "\f1c9"; +$el-var-plus: "\f1cc"; +$el-var-plus-sign: "\f1cb"; +$el-var-podcast: "\f1cd"; +$el-var-print: "\f1ce"; +$el-var-puzzle: "\f1cf"; +$el-var-qrcode: "\f1d0"; +$el-var-question: "\f1d2"; +$el-var-question-sign: "\f1d1"; +$el-var-quote-alt: "\f1d3"; +$el-var-quote-right: "\f1d5"; +$el-var-quote-right-alt: "\f1d4"; +$el-var-quotes: "\f1d6"; +$el-var-random: "\f1d7"; +$el-var-record: "\f1d8"; +$el-var-reddit: "\f1d9"; +$el-var-redux: "\f1da"; +$el-var-refresh: "\f1db"; +$el-var-remove: "\f1de"; +$el-var-remove-circle: "\f1dc"; +$el-var-remove-sign: "\f1dd"; +$el-var-repeat: "\f1e0"; +$el-var-repeat-alt: "\f1df"; +$el-var-resize-full: "\f1e1"; +$el-var-resize-horizontal: "\f1e2"; +$el-var-resize-small: "\f1e3"; +$el-var-resize-vertical: "\f1e4"; +$el-var-return-key: "\f1e5"; +$el-var-retweet: "\f1e6"; +$el-var-reverse-alt: "\f1e7"; +$el-var-road: "\f1e8"; +$el-var-rss: "\f1e9"; +$el-var-scissors: "\f1ea"; +$el-var-screen: "\f1ec"; +$el-var-screen-alt: "\f1eb"; +$el-var-screenshot: "\f1ed"; +$el-var-search: "\f1ef"; +$el-var-search-alt: "\f1ee"; +$el-var-share: "\f1f1"; +$el-var-share-alt: "\f1f0"; +$el-var-shopping-cart: "\f1f3"; +$el-var-shopping-cart-sign: "\f1f2"; +$el-var-shortcode: "\f1f4"; +$el-var-signal: "\f1f5"; +$el-var-skype: "\f1f6"; +$el-var-slideshare: "\f1f7"; +$el-var-smiley: "\f1f9"; +$el-var-smiley-alt: "\f1f8"; +$el-var-soundcloud: "\f1fa"; +$el-var-speaker: "\f1fb"; +$el-var-spotify: "\f1fc"; +$el-var-stackoverflow: "\f1fd"; +$el-var-star: "\f200"; +$el-var-star-alt: "\f1fe"; +$el-var-star-empty: "\f1ff"; +$el-var-step-backward: "\f201"; +$el-var-step-forward: "\f202"; +$el-var-stop: "\f204"; +$el-var-stop-alt: "\f203"; +$el-var-stumbleupon: "\f205"; +$el-var-tag: "\f206"; +$el-var-tags: "\f207"; +$el-var-tasks: "\f208"; +$el-var-text-height: "\f209"; +$el-var-text-width: "\f20a"; +$el-var-th: "\f20d"; +$el-var-th-large: "\f20b"; +$el-var-th-list: "\f20c"; +$el-var-thumbs-down: "\f20e"; +$el-var-thumbs-up: "\f20f"; +$el-var-time: "\f211"; +$el-var-time-alt: "\f210"; +$el-var-tint: "\f212"; +$el-var-torso: "\f213"; +$el-var-trash: "\f215"; +$el-var-trash-alt: "\f214"; +$el-var-tumblr: "\f216"; +$el-var-twitter: "\f217"; +$el-var-universal-access: "\f218"; +$el-var-unlock: "\f21a"; +$el-var-unlock-alt: "\f219"; +$el-var-upload: "\f21b"; +$el-var-usd: "\f21c"; +$el-var-user: "\f21d"; +$el-var-viadeo: "\f21e"; +$el-var-video: "\f221"; +$el-var-video-alt: "\f21f"; +$el-var-video-chat: "\f220"; +$el-var-view-mode: "\f222"; +$el-var-vimeo: "\f223"; +$el-var-vkontakte: "\f224"; +$el-var-volume-down: "\f225"; +$el-var-volume-off: "\f226"; +$el-var-volume-up: "\f227"; +$el-var-w3c: "\f228"; +$el-var-warning-sign: "\f229"; +$el-var-website: "\f22b"; +$el-var-website-alt: "\f22a"; +$el-var-wheelchair: "\f22c"; +$el-var-wordpress: "\f22d"; +$el-var-wrench: "\f22f"; +$el-var-wrench-alt: "\f22e"; +$el-var-youtube: "\f230"; +$el-var-zoom-in: "\f231"; +$el-var-zoom-out: "\f232"; + diff --git a/redux/ReduxCore/assets/css/vendor/elusive-icons/scss/elusive-icons.css b/redux/ReduxCore/assets/css/vendor/elusive-icons/scss/elusive-icons.css new file mode 100644 index 0000000..3c63a12 --- /dev/null +++ b/redux/ReduxCore/assets/css/vendor/elusive-icons/scss/elusive-icons.css @@ -0,0 +1,4 @@ +@charset "UTF-8";/*! + * Elusive Icons 2.0.0 by @ReduxFramework - http://elusiveicons.com - @reduxframework + * License - http://elusiveicons.com/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:'Elusive-Icons';src:url("fonts/elusiveicons-webfont.eot?v=2.0.0");src:url("fonts/elusiveicons-webfont.eot?#iefix&v=2.0.0") format("embedded-opentype"),url("fonts/elusiveicons-webfont.woff?v=2.0.0") format("woff"),url("fonts/elusiveicons-webfont.ttf?v=2.0.0") format("truetype"),url("fonts/elusiveicons-webfont.svg?v=2.0.0#elusiveiconsregular") format("svg");font-weight:normal;font-style:normal}.el{display:inline-block;font:normal normal normal 14px/1 "Elusive-Icons";font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0,0)}.el-lg{font-size:1.33333em;line-height:.75em;vertical-align:-15%}.el-2x{font-size:2em}.el-3x{font-size:3em}.el-4x{font-size:4em}.el-5x{font-size:5em}.el-fw{width:1.28571em;text-align:center}.el-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.el-ul>li{position:relative}.el-li{position:absolute;left:-2.14286em;width:2.14286em;top:.14286em;text-align:center}.el-li.el-lg{left:-1.85714em}.el-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.el.pull-left{margin-right:.3em}.el.pull-right{margin-left:.3em}.el-spin{-webkit-animation:el-spin 2s infinite linear;animation:el-spin 2s infinite linear}.el-pulse{-webkit-animation:el-spin 1s infinite steps(8);animation:el-spin 1s infinite steps(8)}@-webkit-keyframes el-spin{0{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes el-spin{0{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.el-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.el-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.el-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.el-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0);-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}.el-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}:root .el-rotate-90,:root .el-rotate-180,:root .el-rotate-270,:root .el-flip-horizontal,:root .el-flip-vertical{filter:none}.el-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.el-stack-1x,.el-stack-2x{position:absolute;left:0;width:100%;text-align:center}.el-stack-1x{line-height:inherit}.el-stack-2x{font-size:2em}.el-inverse{color:#fff}.el-icon-address-book-alt:before,.el-address-book-alt:before{content:"ï„"}.el-icon-address-book:before,.el-address-book:before{content:"ï„‚"}.el-icon-adjust-alt:before,.el-adjust-alt:before{content:""}.el-icon-adjust:before,.el-adjust:before{content:"ï„„"}.el-icon-adult:before,.el-adult:before{content:"ï„…"}.el-icon-align-center:before,.el-align-center:before{content:""}.el-icon-align-justify:before,.el-align-justify:before{content:""}.el-icon-align-left:before,.el-align-left:before{content:""}.el-icon-align-right:before,.el-align-right:before{content:""}.el-icon-arrow-down:before,.el-arrow-down:before{content:"ï„Š"}.el-icon-arrow-left:before,.el-arrow-left:before{content:"ï„‹"}.el-icon-arrow-right:before,.el-arrow-right:before{content:"ï„Œ"}.el-icon-arrow-up:before,.el-arrow-up:before{content:"ï„"}.el-icon-asl:before,.el-asl:before{content:"ï„Ž"}.el-icon-asterisk:before,.el-asterisk:before{content:"ï„"}.el-icon-backward:before,.el-backward:before{content:"ï„"}.el-icon-ban-circle:before,.el-ban-circle:before{content:"ï„‘"}.el-icon-barcode:before,.el-barcode:before{content:"ï„’"}.el-icon-behance:before,.el-behance:before{content:"ï„“"}.el-icon-bell:before,.el-bell:before{content:"ï„”"}.el-icon-blind:before,.el-blind:before{content:"ï„•"}.el-icon-blogger:before,.el-blogger:before{content:"ï„–"}.el-icon-bold:before,.el-bold:before{content:"ï„—"}.el-icon-book:before,.el-book:before{content:""}.el-icon-bookmark-empty:before,.el-bookmark-empty:before{content:"ï„™"}.el-icon-bookmark:before,.el-bookmark:before{content:"ï„š"}.el-icon-brackets:before,.el-brackets:before{content:"ï„›"}.el-icon-braille:before,.el-braille:before{content:"ï„œ"}.el-icon-briefcase:before,.el-briefcase:before{content:"ï„"}.el-icon-broom:before,.el-broom:before{content:"ï„ž"}.el-icon-brush:before,.el-brush:before{content:"ï„Ÿ"}.el-icon-bulb:before,.el-bulb:before{content:"ï„ "}.el-icon-bullhorn:before,.el-bullhorn:before{content:"ï„¡"}.el-icon-calendar-sign:before,.el-calendar-sign:before{content:"ï„¢"}.el-icon-calendar:before,.el-calendar:before{content:"ï„£"}.el-icon-camera:before,.el-camera:before{content:""}.el-icon-car:before,.el-car:before{content:"ï„¥"}.el-icon-caret-down:before,.el-caret-down:before{content:""}.el-icon-caret-left:before,.el-caret-left:before{content:""}.el-icon-caret-right:before,.el-caret-right:before{content:""}.el-icon-caret-up:before,.el-caret-up:before{content:"ï„©"}.el-icon-cc:before,.el-cc:before{content:""}.el-icon-certificate:before,.el-certificate:before{content:"ï„«"}.el-icon-check-empty:before,.el-check-empty:before{content:""}.el-icon-check:before,.el-check:before{content:"ï„­"}.el-icon-chevron-down:before,.el-chevron-down:before{content:"ï„®"}.el-icon-chevron-left:before,.el-chevron-left:before{content:""}.el-icon-chevron-right:before,.el-chevron-right:before{content:"ï„°"}.el-icon-chevron-up:before,.el-chevron-up:before{content:""}.el-icon-child:before,.el-child:before{content:""}.el-icon-circle-arrow-down:before,.el-circle-arrow-down:before{content:""}.el-icon-circle-arrow-left:before,.el-circle-arrow-left:before{content:"ï„´"}.el-icon-circle-arrow-right:before,.el-circle-arrow-right:before{content:""}.el-icon-circle-arrow-up:before,.el-circle-arrow-up:before{content:""}.el-icon-cloud-alt:before,.el-cloud-alt:before{content:"ï„·"}.el-icon-cloud:before,.el-cloud:before{content:""}.el-icon-cog-alt:before,.el-cog-alt:before{content:""}.el-icon-cog:before,.el-cog:before{content:""}.el-icon-cogs:before,.el-cogs:before{content:"ï„»"}.el-icon-comment-alt:before,.el-comment-alt:before{content:""}.el-icon-comment:before,.el-comment:before{content:""}.el-icon-compass-alt:before,.el-compass-alt:before{content:""}.el-icon-compass:before,.el-compass:before{content:"ï„¿"}.el-icon-credit-card:before,.el-credit-card:before{content:"ï…€"}.el-icon-css:before,.el-css:before{content:"ï…"}.el-icon-dashboard:before,.el-dashboard:before{content:"ï…‚"}.el-icon-delicious:before,.el-delicious:before{content:"ï…ƒ"}.el-icon-deviantart:before,.el-deviantart:before{content:"ï…„"}.el-icon-digg:before,.el-digg:before{content:"ï……"}.el-icon-download-alt:before,.el-download-alt:before{content:"ï…†"}.el-icon-download:before,.el-download:before{content:"ï…‡"}.el-icon-dribbble:before,.el-dribbble:before{content:"ï…ˆ"}.el-icon-edit:before,.el-edit:before{content:"ï…‰"}.el-icon-eject:before,.el-eject:before{content:"ï…Š"}.el-icon-envelope-alt:before,.el-envelope-alt:before{content:"ï…‹"}.el-icon-envelope:before,.el-envelope:before{content:"ï…Œ"}.el-icon-error-alt:before,.el-error-alt:before{content:"ï…"}.el-icon-error:before,.el-error:before{content:"ï…Ž"}.el-icon-eur:before,.el-eur:before{content:"ï…"}.el-icon-exclamation-sign:before,.el-exclamation-sign:before{content:"ï…"}.el-icon-eye-close:before,.el-eye-close:before{content:"ï…‘"}.el-icon-eye-open:before,.el-eye-open:before{content:"ï…’"}.el-icon-facebook:before,.el-facebook:before{content:"ï…“"}.el-icon-facetime-video:before,.el-facetime-video:before{content:"ï…”"}.el-icon-fast-backward:before,.el-fast-backward:before{content:"ï…•"}.el-icon-fast-forward:before,.el-fast-forward:before{content:"ï…–"}.el-icon-female:before,.el-female:before{content:"ï…—"}.el-icon-file-alt:before,.el-file-alt:before{content:"ï…˜"}.el-icon-file-edit-alt:before,.el-file-edit-alt:before{content:"ï…™"}.el-icon-file-edit:before,.el-file-edit:before{content:"ï…š"}.el-icon-file-new-alt:before,.el-file-new-alt:before{content:"ï…›"}.el-icon-file-new:before,.el-file-new:before{content:"ï…œ"}.el-icon-file:before,.el-file:before{content:"ï…"}.el-icon-film:before,.el-film:before{content:"ï…ž"}.el-icon-filter:before,.el-filter:before{content:"ï…Ÿ"}.el-icon-fire:before,.el-fire:before{content:"ï… "}.el-icon-flag-alt:before,.el-flag-alt:before{content:"ï…¡"}.el-icon-flag:before,.el-flag:before{content:"ï…¢"}.el-icon-flickr:before,.el-flickr:before{content:"ï…£"}.el-icon-folder-close:before,.el-folder-close:before{content:"ï…¤"}.el-icon-folder-open:before,.el-folder-open:before{content:"ï…¥"}.el-icon-folder-sign:before,.el-folder-sign:before{content:"ï…¦"}.el-icon-folder:before,.el-folder:before{content:"ï…§"}.el-icon-font:before,.el-font:before{content:"ï…¨"}.el-icon-fontsize:before,.el-fontsize:before{content:"ï…©"}.el-icon-fork:before,.el-fork:before{content:"ï…ª"}.el-icon-forward-alt:before,.el-forward-alt:before{content:"ï…«"}.el-icon-forward:before,.el-forward:before{content:"ï…¬"}.el-icon-foursquare:before,.el-foursquare:before{content:"ï…­"}.el-icon-friendfeed-rect:before,.el-friendfeed-rect:before{content:"ï…®"}.el-icon-friendfeed:before,.el-friendfeed:before{content:"ï…¯"}.el-icon-fullscreen:before,.el-fullscreen:before{content:"ï…°"}.el-icon-gallery:before,.el-gallery:before{content:"ï…±"}.el-icon-gbp:before,.el-gbp:before{content:"ï…²"}.el-icon-gift:before,.el-gift:before{content:"ï…³"}.el-icon-github-text:before,.el-github-text:before{content:"ï…´"}.el-icon-github:before,.el-github:before{content:"ï…µ"}.el-icon-glass:before,.el-glass:before{content:"ï…¶"}.el-icon-glasses:before,.el-glasses:before{content:"ï…·"}.el-icon-globe-alt:before,.el-globe-alt:before{content:"ï…¸"}.el-icon-globe:before,.el-globe:before{content:"ï…¹"}.el-icon-googleplus:before,.el-googleplus:before{content:"ï…º"}.el-icon-graph-alt:before,.el-graph-alt:before{content:"ï…»"}.el-icon-graph:before,.el-graph:before{content:"ï…¼"}.el-icon-group-alt:before,.el-group-alt:before{content:"ï…½"}.el-icon-group:before,.el-group:before{content:"ï…¾"}.el-icon-guidedog:before,.el-guidedog:before{content:"ï…¿"}.el-icon-hand-down:before,.el-hand-down:before{content:""}.el-icon-hand-left:before,.el-hand-left:before{content:"ï†"}.el-icon-hand-right:before,.el-hand-right:before{content:""}.el-icon-hand-up:before,.el-hand-up:before{content:""}.el-icon-hdd:before,.el-hdd:before{content:""}.el-icon-headphones:before,.el-headphones:before{content:""}.el-icon-hearing-impaired:before,.el-hearing-impaired:before{content:""}.el-icon-heart-alt:before,.el-heart-alt:before{content:""}.el-icon-heart-empty:before,.el-heart-empty:before{content:""}.el-icon-heart:before,.el-heart:before{content:""}.el-icon-home-alt:before,.el-home-alt:before{content:""}.el-icon-home:before,.el-home:before{content:""}.el-icon-hourglass:before,.el-hourglass:before{content:""}.el-icon-idea-alt:before,.el-idea-alt:before{content:"ï†"}.el-icon-idea:before,.el-idea:before{content:""}.el-icon-inbox-alt:before,.el-inbox-alt:before{content:"ï†"}.el-icon-inbox-box:before,.el-inbox-box:before{content:"ï†"}.el-icon-inbox:before,.el-inbox:before{content:""}.el-icon-indent-left:before,.el-indent-left:before{content:""}.el-icon-indent-right:before,.el-indent-right:before{content:""}.el-icon-info-circle:before,.el-info-circle:before{content:""}.el-icon-instagram:before,.el-instagram:before{content:""}.el-icon-iphone-home:before,.el-iphone-home:before{content:""}.el-icon-italic:before,.el-italic:before{content:""}.el-icon-key:before,.el-key:before{content:""}.el-icon-laptop-alt:before,.el-laptop-alt:before{content:""}.el-icon-laptop:before,.el-laptop:before{content:""}.el-icon-lastfm:before,.el-lastfm:before{content:""}.el-icon-leaf:before,.el-leaf:before{content:""}.el-icon-lines:before,.el-lines:before{content:"ï†"}.el-icon-link:before,.el-link:before{content:""}.el-icon-linkedin:before,.el-linkedin:before{content:""}.el-icon-list-alt:before,.el-list-alt:before{content:""}.el-icon-list:before,.el-list:before{content:""}.el-icon-livejournal:before,.el-livejournal:before{content:""}.el-icon-lock-alt:before,.el-lock-alt:before{content:""}.el-icon-lock:before,.el-lock:before{content:""}.el-icon-magic:before,.el-magic:before{content:""}.el-icon-magnet:before,.el-magnet:before{content:""}.el-icon-male:before,.el-male:before{content:""}.el-icon-map-marker-alt:before,.el-map-marker-alt:before{content:""}.el-icon-map-marker:before,.el-map-marker:before{content:""}.el-icon-mic-alt:before,.el-mic-alt:before{content:""}.el-icon-mic:before,.el-mic:before{content:""}.el-icon-minus-sign:before,.el-minus-sign:before{content:""}.el-icon-minus:before,.el-minus:before{content:""}.el-icon-move:before,.el-move:before{content:""}.el-icon-music:before,.el-music:before{content:""}.el-icon-myspace:before,.el-myspace:before{content:""}.el-icon-network:before,.el-network:before{content:""}.el-icon-off:before,.el-off:before{content:""}.el-icon-ok-circle:before,.el-ok-circle:before{content:""}.el-icon-ok-sign:before,.el-ok-sign:before{content:""}.el-icon-ok:before,.el-ok:before{content:""}.el-icon-opensource:before,.el-opensource:before{content:""}.el-icon-paper-clip-alt:before,.el-paper-clip-alt:before{content:""}.el-icon-paper-clip:before,.el-paper-clip:before{content:""}.el-icon-path:before,.el-path:before{content:""}.el-icon-pause-alt:before,.el-pause-alt:before{content:""}.el-icon-pause:before,.el-pause:before{content:""}.el-icon-pencil-alt:before,.el-pencil-alt:before{content:""}.el-icon-pencil:before,.el-pencil:before{content:""}.el-icon-person:before,.el-person:before{content:""}.el-icon-phone-alt:before,.el-phone-alt:before{content:""}.el-icon-phone:before,.el-phone:before{content:""}.el-icon-photo-alt:before,.el-photo-alt:before{content:"ï‡"}.el-icon-photo:before,.el-photo:before{content:""}.el-icon-picasa:before,.el-picasa:before{content:""}.el-icon-picture:before,.el-picture:before{content:""}.el-icon-plane:before,.el-plane:before{content:""}.el-icon-play-alt:before,.el-play-alt:before{content:""}.el-icon-play-circle:before,.el-play-circle:before{content:""}.el-icon-play:before,.el-play:before{content:""}.el-icon-plurk-alt:before,.el-plurk-alt:before{content:""}.el-icon-plurk:before,.el-plurk:before{content:""}.el-icon-plus-sign:before,.el-plus-sign:before{content:""}.el-icon-plus:before,.el-plus:before{content:""}.el-icon-podcast:before,.el-podcast:before{content:"ï‡"}.el-icon-print:before,.el-print:before{content:""}.el-icon-puzzle:before,.el-puzzle:before{content:"ï‡"}.el-icon-qrcode:before,.el-qrcode:before{content:"ï‡"}.el-icon-question-sign:before,.el-question-sign:before{content:""}.el-icon-question:before,.el-question:before{content:""}.el-icon-quote-alt:before,.el-quote-alt:before{content:""}.el-icon-quote-right-alt:before,.el-quote-right-alt:before{content:""}.el-icon-quote-right:before,.el-quote-right:before{content:""}.el-icon-quotes:before,.el-quotes:before{content:""}.el-icon-random:before,.el-random:before{content:""}.el-icon-record:before,.el-record:before{content:""}.el-icon-reddit:before,.el-reddit:before{content:""}.el-icon-redux:before,.el-redux:before{content:""}.el-icon-refresh:before,.el-refresh:before{content:""}.el-icon-remove-circle:before,.el-remove-circle:before{content:""}.el-icon-remove-sign:before,.el-remove-sign:before{content:"ï‡"}.el-icon-remove:before,.el-remove:before{content:""}.el-icon-repeat-alt:before,.el-repeat-alt:before{content:""}.el-icon-repeat:before,.el-repeat:before{content:""}.el-icon-resize-full:before,.el-resize-full:before{content:""}.el-icon-resize-horizontal:before,.el-resize-horizontal:before{content:""}.el-icon-resize-small:before,.el-resize-small:before{content:""}.el-icon-resize-vertical:before,.el-resize-vertical:before{content:""}.el-icon-return-key:before,.el-return-key:before{content:""}.el-icon-retweet:before,.el-retweet:before{content:""}.el-icon-reverse-alt:before,.el-reverse-alt:before{content:""}.el-icon-road:before,.el-road:before{content:""}.el-icon-rss:before,.el-rss:before{content:""}.el-icon-scissors:before,.el-scissors:before{content:""}.el-icon-screen-alt:before,.el-screen-alt:before{content:""}.el-icon-screen:before,.el-screen:before{content:""}.el-icon-screenshot:before,.el-screenshot:before{content:""}.el-icon-search-alt:before,.el-search-alt:before{content:""}.el-icon-search:before,.el-search:before{content:""}.el-icon-share-alt:before,.el-share-alt:before{content:""}.el-icon-share:before,.el-share:before{content:""}.el-icon-shopping-cart-sign:before,.el-shopping-cart-sign:before{content:""}.el-icon-shopping-cart:before,.el-shopping-cart:before{content:""}.el-icon-shortcode:before,.el-shortcode:before{content:""}.el-icon-signal:before,.el-signal:before{content:""}.el-icon-skype:before,.el-skype:before{content:""}.el-icon-slideshare:before,.el-slideshare:before{content:""}.el-icon-smiley-alt:before,.el-smiley-alt:before{content:""}.el-icon-smiley:before,.el-smiley:before{content:""}.el-icon-soundcloud:before,.el-soundcloud:before{content:""}.el-icon-speaker:before,.el-speaker:before{content:""}.el-icon-spotify:before,.el-spotify:before{content:""}.el-icon-stackoverflow:before,.el-stackoverflow:before{content:""}.el-icon-star-alt:before,.el-star-alt:before{content:""}.el-icon-star-empty:before,.el-star-empty:before{content:""}.el-icon-star:before,.el-star:before{content:""}.el-icon-step-backward:before,.el-step-backward:before{content:"ïˆ"}.el-icon-step-forward:before,.el-step-forward:before{content:""}.el-icon-stop-alt:before,.el-stop-alt:before{content:""}.el-icon-stop:before,.el-stop:before{content:""}.el-icon-stumbleupon:before,.el-stumbleupon:before{content:""}.el-icon-tag:before,.el-tag:before{content:""}.el-icon-tags:before,.el-tags:before{content:""}.el-icon-tasks:before,.el-tasks:before{content:""}.el-icon-text-height:before,.el-text-height:before{content:""}.el-icon-text-width:before,.el-text-width:before{content:""}.el-icon-th-large:before,.el-th-large:before{content:""}.el-icon-th-list:before,.el-th-list:before{content:""}.el-icon-th:before,.el-th:before{content:"ïˆ"}.el-icon-thumbs-down:before,.el-thumbs-down:before{content:""}.el-icon-thumbs-up:before,.el-thumbs-up:before{content:"ïˆ"}.el-icon-time-alt:before,.el-time-alt:before{content:"ïˆ"}.el-icon-time:before,.el-time:before{content:""}.el-icon-tint:before,.el-tint:before{content:""}.el-icon-torso:before,.el-torso:before{content:""}.el-icon-trash-alt:before,.el-trash-alt:before{content:""}.el-icon-trash:before,.el-trash:before{content:""}.el-icon-tumblr:before,.el-tumblr:before{content:""}.el-icon-twitter:before,.el-twitter:before{content:""}.el-icon-universal-access:before,.el-universal-access:before{content:""}.el-icon-unlock-alt:before,.el-unlock-alt:before{content:""}.el-icon-unlock:before,.el-unlock:before{content:""}.el-icon-upload:before,.el-upload:before{content:""}.el-icon-usd:before,.el-usd:before{content:""}.el-icon-user:before,.el-user:before{content:"ïˆ"}.el-icon-viadeo:before,.el-viadeo:before{content:""}.el-icon-video-alt:before,.el-video-alt:before{content:""}.el-icon-video-chat:before,.el-video-chat:before{content:""}.el-icon-video:before,.el-video:before{content:""}.el-icon-view-mode:before,.el-view-mode:before{content:""}.el-icon-vimeo:before,.el-vimeo:before{content:""}.el-icon-vkontakte:before,.el-vkontakte:before{content:""}.el-icon-volume-down:before,.el-volume-down:before{content:""}.el-icon-volume-off:before,.el-volume-off:before{content:""}.el-icon-volume-up:before,.el-volume-up:before{content:""}.el-icon-w3c:before,.el-w3c:before{content:""}.el-icon-warning-sign:before,.el-warning-sign:before{content:""}.el-icon-website-alt:before,.el-website-alt:before{content:""}.el-icon-website:before,.el-website:before{content:""}.el-icon-wheelchair:before,.el-wheelchair:before{content:""}.el-icon-wordpress:before,.el-wordpress:before{content:""}.el-icon-wrench-alt:before,.el-wrench-alt:before{content:""}.el-icon-wrench:before,.el-wrench:before{content:""}.el-icon-youtube:before,.el-youtube:before{content:""}.el-icon-zoom-in:before,.el-zoom-in:before{content:""}.el-icon-zoom-out:before,.el-zoom-out:before{content:""} \ No newline at end of file diff --git a/redux/ReduxCore/assets/css/vendor/elusive-icons/scss/elusive-icons.css.map b/redux/ReduxCore/assets/css/vendor/elusive-icons/scss/elusive-icons.css.map new file mode 100644 index 0000000..f6c9f75 --- /dev/null +++ b/redux/ReduxCore/assets/css/vendor/elusive-icons/scss/elusive-icons.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "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", +"sources": ["elusive-icons.scss","_path.scss","_core.scss","_larger.scss","_fixed-width.scss","_list.scss","_variables.scss","_bordered-pulled.scss","_animated.scss","_rotated-flipped.scss","_mixins.scss","_stacked.scss","_icons.scss"], +"names": [], +"file": "elusive-icons.css" +} \ No newline at end of file diff --git a/redux/ReduxCore/assets/css/vendor/elusive-icons/scss/elusive-icons.scss b/redux/ReduxCore/assets/css/vendor/elusive-icons/scss/elusive-icons.scss new file mode 100644 index 0000000..c3bb7ba --- /dev/null +++ b/redux/ReduxCore/assets/css/vendor/elusive-icons/scss/elusive-icons.scss @@ -0,0 +1,17 @@ +/*! + * Elusive Icons 2.0.0 by @ReduxFramework - http://elusiveicons.com - @reduxframework + * License - http://elusiveicons.com/license (Font: SIL OFL 1.1, CSS: MIT License) + */ + +@import "variables"; +@import "mixins"; +@import "path"; +@import "core"; +@import "larger"; +@import "fixed-width"; +@import "list"; +@import "bordered-pulled"; +@import "animated"; +@import "rotated-flipped"; +@import "stacked"; +@import "icons"; diff --git a/redux/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-bg_flat_0_aaaaaa_40x100.png b/redux/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-bg_flat_0_aaaaaa_40x100.png new file mode 100644 index 0000000000000000000000000000000000000000..5b5dab2ab7b1c50dea9cfe73dc5a269a92d2d4b4 GIT binary patch literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FscKIb$B>N1x91EQ4=4yQ7#`R^ z$vje}bP0l+XkK DSH>_4 literal 0 HcmV?d00001 diff --git a/redux/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-bg_glass_55_fbf9ee_1x400.png b/redux/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-bg_glass_55_fbf9ee_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..ad3d6346e00f246102f72f2e026ed0491988b394 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnour0hLi978O6-<~(*I$*%ybaDOn z{W;e!B}_MSUQoPXhYd^Y6RUoS1yepnPx`2Kz)7OXQG!!=-jY=F+d2OOy?#DnJ32>z UEim$g7SJdLPgg&ebxsLQ09~*s;{X5v literal 0 HcmV?d00001 diff --git a/redux/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-bg_glass_65_ffffff_1x400.png b/redux/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-bg_glass_65_ffffff_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..42ccba269b6e91bef12ad0fa18be651b5ef0ee68 GIT binary patch literal 105 zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouqzpV=978O6-=0?FV^9z|eBtf= z|7WztIJ;WT>{+tN>ySr~=F{k$>;_x^_y?afmf9pRKH0)6?eSP?3s5hEr>mdKI;Vst E0O;M1& literal 0 HcmV?d00001 diff --git a/redux/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-bg_glass_75_dadada_1x400.png b/redux/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-bg_glass_75_dadada_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..5a46b47cb16631068aee9e0bd61269fc4e95e5cd GIT binary patch literal 111 zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouq|7{B978O6lPf+wIa#m9#>Unb zm^4K~wN3Zq+uPMaW978O6-<~?i$)F&>d~nX+ z>vO)oJQ&&FVaKefeOt$qOR>f~^ebnN_=~%qdHEaS{Ou}E*`%9 zKPdOkfrN+ZlHSt7(uY{3{#;wiJb&Ugx1>W4qtrSDm(4hFaaY-$3p3x|sIU3`%J?Qj YcLn#R=pC)AfTl5cy85}Sb4q9e0MP_2(*OVf literal 0 HcmV?d00001 diff --git a/redux/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-icons_222222_256x240.png b/redux/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-icons_222222_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..b273ff111d219c9b9a8b96d57683d0075fb7871a GIT binary patch literal 4369 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 literal 0 HcmV?d00001 diff --git a/redux/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-icons_2e83ff_256x240.png b/redux/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-icons_2e83ff_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..09d1cdc856c292c4ab6dd818c7543ac0828bd616 GIT binary patch literal 4369 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 literal 0 HcmV?d00001 diff --git a/redux/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-icons_454545_256x240.png b/redux/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-icons_454545_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..59bd45b907c4fd965697774ce8c5fc6b2fd9c105 GIT binary patch literal 4369 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 oBo%DI*Kv;w;*%(i9W@f3_WCF#rGn literal 0 HcmV?d00001 diff --git a/redux/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-icons_cd0a0a_256x240.png b/redux/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-icons_cd0a0a_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..2ab019b73ec11a485fa09378f3a0e155194f6a5d GIT binary patch literal 4369 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 Y`xtn(*dR-}!vwf$a^1Mm&@<(K0cnc1rT_o{ literal 0 HcmV?d00001 diff --git a/redux/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-icons_ffffff_256x240.png b/redux/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/images/ui-icons_ffffff_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..42f8f992c727ddaa617da224a522e463df690387 GIT binary patch literal 4369 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 literal 0 HcmV?d00001 diff --git a/redux/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/jquery-ui-1.10.0.custom.css b/redux/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/jquery-ui-1.10.0.custom.css new file mode 100644 index 0000000..2ba2220 --- /dev/null +++ b/redux/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/jquery-ui-1.10.0.custom.css @@ -0,0 +1,9 @@ +/*! + * jQuery UI Bootstrap (0.5) + * http://addyosmani.github.com/jquery-ui-bootstrap + * + * Copyright 2012 - 2013, Addy Osmani + * Dual licensed under the MIT or GPL Version 2 licenses. + * + * Portions copyright jQuery UI & Twitter Bootstrap + */.redux-container .ui-state-disabled,.control-section-redux .ui-state-disabled,.control-panel-redux .ui-state-disabled,.redux-metabox .ui-state-disabled{cursor:default !important}.redux-container .ui-icon,.control-section-redux .ui-icon,.control-panel-redux .ui-icon,.redux-metabox .ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.redux-container .ui-widget-content,.control-section-redux .ui-widget-content,.control-panel-redux .ui-widget-content,.redux-metabox .ui-widget-content{border:1px solid #aaaaaa;background:#fff url(images/ui-bg_glass_75_ffffff_1x400.png) 50% 50% repeat-x;color:#404040}.redux-container .ui-widget-header,.control-section-redux .ui-widget-header,.control-panel-redux .ui-widget-header,.redux-metabox .ui-widget-header{font-weight:bold;border-color:#0064cd #0064cd #003f81;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border:1px solid #666}.redux-container .ui-widget-header a,.control-section-redux .ui-widget-header a,.control-panel-redux .ui-widget-header a,.redux-metabox .ui-widget-header a{color:#222222}.redux-container .ui-state-default,.redux-container .ui-widget-content .ui-state-default,.redux-container .ui-widget-header .ui-state-default,.control-section-redux .ui-state-default,.control-section-redux .ui-widget-content .ui-state-default,.control-section-redux .ui-widget-header .ui-state-default,.control-panel-redux .ui-state-default,.control-panel-redux .ui-widget-content .ui-state-default,.control-panel-redux .ui-widget-header .ui-state-default,.redux-metabox .ui-state-default,.redux-metabox .ui-widget-content .ui-state-default,.redux-metabox .ui-widget-header .ui-state-default{background-color:#e6e6e6;background-repeat:no-repeat;background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), color-stop(25%, #fff), to(#e6e6e6));background-image:-webkit-linear-gradient(#fff, #fff 25%, #e6e6e6);background-image:-moz-linear-gradient(top, #fff, #fff 25%, #e6e6e6);background-image:-ms-linear-gradient(#fff, #fff 25%, #e6e6e6);background-image:-o-linear-gradient(#fff, #fff 25%, #e6e6e6);background-image:linear-gradient(#fff, #fff 25%, #e6e6e6);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);text-shadow:0 1px 1px rgba(255,255,255,0.75);color:#333;font-size:13px;line-height:normal;border:1px solid #ccc;border-bottom-color:#bbb;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-webkit-transition:0.1s linear background-image;-moz-transition:0.1s linear background-image;-ms-transition:0.1s linear background-image;-o-transition:0.1s linear background-image;transition:0.1s linear background-image;overflow:visible}.redux-container .ui-state-default a,.redux-container .ui-state-default a:link,.redux-container .ui-state-default a:visited,.control-section-redux .ui-state-default a,.control-section-redux .ui-state-default a:link,.control-section-redux .ui-state-default a:visited,.control-panel-redux .ui-state-default a,.control-panel-redux .ui-state-default a:link,.control-panel-redux .ui-state-default a:visited,.redux-metabox .ui-state-default a,.redux-metabox .ui-state-default a:link,.redux-metabox .ui-state-default a:visited{color:#555555;text-decoration:none}.redux-container .ui-state-hover,.redux-container .ui-widget-content .ui-state-hover,.redux-container .ui-widget-header .ui-state-hover,.redux-container .ui-state-focus,.redux-container .ui-widget-content .ui-state-focus,.redux-container .ui-widget-header .ui-state-focus,.control-section-redux .ui-state-hover,.control-section-redux .ui-widget-content .ui-state-hover,.control-section-redux .ui-widget-header .ui-state-hover,.control-section-redux .ui-state-focus,.control-section-redux .ui-widget-content .ui-state-focus,.control-section-redux .ui-widget-header .ui-state-focus,.control-panel-redux .ui-state-hover,.control-panel-redux .ui-widget-content .ui-state-hover,.control-panel-redux .ui-widget-header .ui-state-hover,.control-panel-redux .ui-state-focus,.control-panel-redux .ui-widget-content .ui-state-focus,.control-panel-redux .ui-widget-header .ui-state-focus,.redux-metabox .ui-state-hover,.redux-metabox .ui-widget-content .ui-state-hover,.redux-metabox .ui-widget-header .ui-state-hover,.redux-metabox .ui-state-focus,.redux-metabox .ui-widget-content .ui-state-focus,.redux-metabox .ui-widget-header .ui-state-focus{background-position:0 -15px;color:#333;text-decoration:none}.redux-container .ui-state-hover a,.redux-container .ui-state-hover a:hover,.redux-container .ui-state-hover a:link,.redux-container .ui-state-hover a:visited,.control-section-redux .ui-state-hover a,.control-section-redux .ui-state-hover a:hover,.control-section-redux .ui-state-hover a:link,.control-section-redux .ui-state-hover a:visited,.control-panel-redux .ui-state-hover a,.control-panel-redux .ui-state-hover a:hover,.control-panel-redux .ui-state-hover a:link,.control-panel-redux .ui-state-hover a:visited,.redux-metabox .ui-state-hover a,.redux-metabox .ui-state-hover a:hover,.redux-metabox .ui-state-hover a:link,.redux-metabox .ui-state-hover a:visited{color:#212121;text-decoration:none}.redux-container .ui-state-active,.redux-container .ui-widget-content .ui-state-active,.redux-container .ui-widget-header .ui-state-active,.control-section-redux .ui-state-active,.control-section-redux .ui-widget-content .ui-state-active,.control-section-redux .ui-widget-header .ui-state-active,.control-panel-redux .ui-state-active,.control-panel-redux .ui-widget-content .ui-state-active,.control-panel-redux .ui-widget-header .ui-state-active,.redux-metabox .ui-state-active,.redux-metabox .ui-widget-content .ui-state-active,.redux-metabox .ui-widget-header .ui-state-active{border:1px solid #aaaaaa;font-weight:normal;color:#212121}.redux-container .ui-state-active a,.redux-container .ui-state-active a:link,.redux-container .ui-state-active a:visited,.control-section-redux .ui-state-active a,.control-section-redux .ui-state-active a:link,.control-section-redux .ui-state-active a:visited,.control-panel-redux .ui-state-active a,.control-panel-redux .ui-state-active a:link,.control-panel-redux .ui-state-active a:visited,.redux-metabox .ui-state-active a,.redux-metabox .ui-state-active a:link,.redux-metabox .ui-state-active a:visited{color:#212121;text-decoration:none}.redux-container .ui-widget :active,.control-section-redux .ui-widget :active,.control-panel-redux .ui-widget :active,.redux-metabox .ui-widget :active{outline:none}.redux-container .ui-state-highlight p,.redux-container .ui-state-error p,.redux-container .ui-state-default p,.control-section-redux .ui-state-highlight p,.control-section-redux .ui-state-error p,.control-section-redux .ui-state-default p,.control-panel-redux .ui-state-highlight p,.control-panel-redux .ui-state-error p,.control-panel-redux .ui-state-default p,.redux-metabox .ui-state-highlight p,.redux-metabox .ui-state-error p,.redux-metabox .ui-state-default p{font-size:13px;font-weight:normal;line-height:18px;margin:7px 15px}.redux-container .ui-state-highlight,.redux-container .ui-widget-content .ui-state-highlight,.redux-container .ui-widget-header .ui-state-highlight,.control-section-redux .ui-state-highlight,.control-section-redux .ui-widget-content .ui-state-highlight,.control-section-redux .ui-widget-header .ui-state-highlight,.control-panel-redux .ui-state-highlight,.control-panel-redux .ui-widget-content .ui-state-highlight,.control-panel-redux .ui-widget-header .ui-state-highlight,.redux-metabox .ui-state-highlight,.redux-metabox .ui-widget-content .ui-state-highlight,.redux-metabox .ui-widget-header .ui-state-highlight{position:relative;margin-bottom:18px;color:#404040;background-color:#eedc94;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#fceec1), to(#eedc94));background-image:-moz-linear-gradient(top, #fceec1, #eedc94);background-image:-ms-linear-gradient(top, #fceec1, #eedc94);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceec1), color-stop(100%, #eedc94));background-image:-webkit-linear-gradient(top, #fceec1, #eedc94);background-image:-o-linear-gradient(top, #fceec1, #eedc94);background-image:linear-gradient(top, #fceec1, #eedc94);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fceec1', endColorstr='#eedc94', GradientType=0);text-shadow:0 -1px 0 rgba(0,0,0,0.25);border-color:#eedc94 #eedc94 #e4c652;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);text-shadow:0 1px 0 rgba(255,255,255,0.5);border-width:1px;border-style:solid;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.25);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.25);box-shadow:inset 0 1px 0 rgba(255,255,255,0.25)}.redux-container .ui-state-highlight a,.redux-container .ui-widget-content .ui-state-highlight a,.redux-container .ui-widget-header .ui-state-highlight a,.control-section-redux .ui-state-highlight a,.control-section-redux .ui-widget-content .ui-state-highlight a,.control-section-redux .ui-widget-header .ui-state-highlight a,.control-panel-redux .ui-state-highlight a,.control-panel-redux .ui-widget-content .ui-state-highlight a,.control-panel-redux .ui-widget-header .ui-state-highlight a,.redux-metabox .ui-state-highlight a,.redux-metabox .ui-widget-content .ui-state-highlight a,.redux-metabox .ui-widget-header .ui-state-highlight a{color:#363636}.redux-container .ui-state-error,.redux-container .ui-widget-content .ui-state-error,.redux-container .ui-widget-header .ui-state-error,.control-section-redux .ui-state-error,.control-section-redux .ui-widget-content .ui-state-error,.control-section-redux .ui-widget-header .ui-state-error,.control-panel-redux .ui-state-error,.control-panel-redux .ui-widget-content .ui-state-error,.control-panel-redux .ui-widget-header .ui-state-error,.redux-metabox .ui-state-error,.redux-metabox .ui-widget-content .ui-state-error,.redux-metabox .ui-widget-header .ui-state-error{position:relative;margin-bottom:18px;color:#ffffff;border-width:1px;border-style:solid;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.25);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.25);box-shadow:inset 0 1px 0 rgba(255,255,255,0.25);background-color:#c43c35;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#ee5f5b), to(#c43c35));background-image:-moz-linear-gradient(top, #ee5f5b, #c43c35);background-image:-ms-linear-gradient(top, #ee5f5b, #c43c35);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b), color-stop(100%, #c43c35));background-image:-webkit-linear-gradient(top, #ee5f5b, #c43c35);background-image:-o-linear-gradient(top, #ee5f5b, #c43c35);background-image:linear-gradient(top, #ee5f5b, #c43c35);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);text-shadow:0 -1px 0 rgba(0,0,0,0.25);border-color:#c43c35 #c43c35 #882a25;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.redux-container .ui-state-error a,.redux-container .ui-widget-content .ui-state-error a,.redux-container .ui-widget-header .ui-state-error a,.control-section-redux .ui-state-error a,.control-section-redux .ui-widget-content .ui-state-error a,.control-section-redux .ui-widget-header .ui-state-error a,.control-panel-redux .ui-state-error a,.control-panel-redux .ui-widget-content .ui-state-error a,.control-panel-redux .ui-widget-header .ui-state-error a,.redux-metabox .ui-state-error a,.redux-metabox .ui-widget-content .ui-state-error a,.redux-metabox .ui-widget-header .ui-state-error a{color:#cd0a0a}.redux-container .ui-state-error-text,.redux-container .ui-widget-content .ui-state-error-text,.redux-container .ui-widget-header .ui-state-error-text,.control-section-redux .ui-state-error-text,.control-section-redux .ui-widget-content .ui-state-error-text,.control-section-redux .ui-widget-header .ui-state-error-text,.control-panel-redux .ui-state-error-text,.control-panel-redux .ui-widget-content .ui-state-error-text,.control-panel-redux .ui-widget-header .ui-state-error-text,.redux-metabox .ui-state-error-text,.redux-metabox .ui-widget-content .ui-state-error-text,.redux-metabox .ui-widget-header .ui-state-error-text{color:#cd0a0a}.redux-container .ui-priority-primary,.redux-container .ui-widget-content .ui-priority-primary,.redux-container .ui-widget-header .ui-priority-primary,.control-section-redux .ui-priority-primary,.control-section-redux .ui-widget-content .ui-priority-primary,.control-section-redux .ui-widget-header .ui-priority-primary,.control-panel-redux .ui-priority-primary,.control-panel-redux .ui-widget-content .ui-priority-primary,.control-panel-redux .ui-widget-header .ui-priority-primary,.redux-metabox .ui-priority-primary,.redux-metabox .ui-widget-content .ui-priority-primary,.redux-metabox .ui-widget-header .ui-priority-primary{font-weight:bold}.redux-container .ui-priority-secondary,.redux-container .ui-widget-content .ui-priority-secondary,.redux-container .ui-widget-header .ui-priority-secondary,.control-section-redux .ui-priority-secondary,.control-section-redux .ui-widget-content .ui-priority-secondary,.control-section-redux .ui-widget-header .ui-priority-secondary,.control-panel-redux .ui-priority-secondary,.control-panel-redux .ui-widget-content .ui-priority-secondary,.control-panel-redux .ui-widget-header .ui-priority-secondary,.redux-metabox .ui-priority-secondary,.redux-metabox .ui-widget-content .ui-priority-secondary,.redux-metabox .ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.redux-container .ui-state-disabled,.redux-container .ui-widget-content .ui-state-disabled,.redux-container .ui-widget-header .ui-state-disabled,.control-section-redux .ui-state-disabled,.control-section-redux .ui-widget-content .ui-state-disabled,.control-section-redux .ui-widget-header .ui-state-disabled,.control-panel-redux .ui-state-disabled,.control-panel-redux .ui-widget-content .ui-state-disabled,.control-panel-redux .ui-widget-header .ui-state-disabled,.redux-metabox .ui-state-disabled,.redux-metabox .ui-widget-content .ui-state-disabled,.redux-metabox .ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.redux-container .ui-state-disabled .ui-icon,.control-section-redux .ui-state-disabled .ui-icon,.control-panel-redux .ui-state-disabled .ui-icon,.redux-metabox .ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.redux-container .ui-icon,.control-section-redux .ui-icon,.control-panel-redux .ui-icon,.redux-metabox .ui-icon{width:16px;height:16px;background-image:url(images/ui-icons_222222_256x240.png)}.redux-container .ui-widget-content .ui-icon,.control-section-redux .ui-widget-content .ui-icon,.control-panel-redux .ui-widget-content .ui-icon,.redux-metabox .ui-widget-content .ui-icon{background-image:url(images/ui-icons_222222_256x240.png)}.redux-container .ui-widget-header .ui-icon,.control-section-redux .ui-widget-header .ui-icon,.control-panel-redux .ui-widget-header .ui-icon,.redux-metabox .ui-widget-header .ui-icon{background-image:url(images/ui-icons_222222_256x240.png)}.redux-container .ui-state-default .ui-icon,.control-section-redux .ui-state-default .ui-icon,.control-panel-redux .ui-state-default .ui-icon,.redux-metabox .ui-state-default .ui-icon{background-image:url(images/ui-icons_888888_256x240.png)}.redux-container .ui-state-hover .ui-icon,.redux-container .ui-state-focus .ui-icon,.control-section-redux .ui-state-hover .ui-icon,.control-section-redux .ui-state-focus .ui-icon,.control-panel-redux .ui-state-hover .ui-icon,.control-panel-redux .ui-state-focus .ui-icon,.redux-metabox .ui-state-hover .ui-icon,.redux-metabox .ui-state-focus .ui-icon{background-image:url(images/ui-icons_454545_256x240.png)}.redux-container .ui-state-active .ui-icon,.control-section-redux .ui-state-active .ui-icon,.control-panel-redux .ui-state-active .ui-icon,.redux-metabox .ui-state-active .ui-icon{background-image:url(images/ui-icons_454545_256x240.png)}.redux-container .ui-state-highlight .ui-icon,.control-section-redux .ui-state-highlight .ui-icon,.control-panel-redux .ui-state-highlight .ui-icon,.redux-metabox .ui-state-highlight .ui-icon{background-image:url(images/ui-icons_2e83ff_256x240.png)}.redux-container .ui-state-error .ui-icon,.redux-container .ui-state-error-text .ui-icon,.control-section-redux .ui-state-error .ui-icon,.control-section-redux .ui-state-error-text .ui-icon,.control-panel-redux .ui-state-error .ui-icon,.control-panel-redux .ui-state-error-text .ui-icon,.redux-metabox .ui-state-error .ui-icon,.redux-metabox .ui-state-error-text .ui-icon{background-image:url(images/ui-icons_f6cf3b_256x240.png)}.redux-container .ui-icon-carat-1-n,.control-section-redux .ui-icon-carat-1-n,.control-panel-redux .ui-icon-carat-1-n,.redux-metabox .ui-icon-carat-1-n{background-position:0 0}.redux-container .ui-icon-carat-1-ne,.control-section-redux .ui-icon-carat-1-ne,.control-panel-redux .ui-icon-carat-1-ne,.redux-metabox .ui-icon-carat-1-ne{background-position:-16px 0}.redux-container .ui-icon-carat-1-e,.control-section-redux .ui-icon-carat-1-e,.control-panel-redux .ui-icon-carat-1-e,.redux-metabox .ui-icon-carat-1-e{background-position:-32px 0}.redux-container .ui-icon-carat-1-se,.control-section-redux .ui-icon-carat-1-se,.control-panel-redux .ui-icon-carat-1-se,.redux-metabox .ui-icon-carat-1-se{background-position:-48px 0}.redux-container .ui-icon-carat-1-s,.control-section-redux .ui-icon-carat-1-s,.control-panel-redux .ui-icon-carat-1-s,.redux-metabox .ui-icon-carat-1-s{background-position:-64px 0}.redux-container .ui-icon-carat-1-sw,.control-section-redux .ui-icon-carat-1-sw,.control-panel-redux .ui-icon-carat-1-sw,.redux-metabox .ui-icon-carat-1-sw{background-position:-80px 0}.redux-container .ui-icon-carat-1-w,.control-section-redux .ui-icon-carat-1-w,.control-panel-redux .ui-icon-carat-1-w,.redux-metabox .ui-icon-carat-1-w{background-position:-96px 0}.redux-container .ui-icon-carat-1-nw,.control-section-redux .ui-icon-carat-1-nw,.control-panel-redux .ui-icon-carat-1-nw,.redux-metabox .ui-icon-carat-1-nw{background-position:-112px 0}.redux-container .ui-icon-carat-2-n-s,.control-section-redux .ui-icon-carat-2-n-s,.control-panel-redux .ui-icon-carat-2-n-s,.redux-metabox .ui-icon-carat-2-n-s{background-position:-128px 0}.redux-container .ui-icon-carat-2-e-w,.control-section-redux .ui-icon-carat-2-e-w,.control-panel-redux .ui-icon-carat-2-e-w,.redux-metabox .ui-icon-carat-2-e-w{background-position:-144px 0}.redux-container .ui-icon-triangle-1-n,.control-section-redux .ui-icon-triangle-1-n,.control-panel-redux .ui-icon-triangle-1-n,.redux-metabox .ui-icon-triangle-1-n{background-position:0 -16px}.redux-container .ui-icon-triangle-1-ne,.control-section-redux .ui-icon-triangle-1-ne,.control-panel-redux .ui-icon-triangle-1-ne,.redux-metabox .ui-icon-triangle-1-ne{background-position:-16px -16px}.redux-container .ui-icon-triangle-1-e,.control-section-redux .ui-icon-triangle-1-e,.control-panel-redux .ui-icon-triangle-1-e,.redux-metabox .ui-icon-triangle-1-e{background-position:-32px -16px}.redux-container .ui-icon-triangle-1-se,.control-section-redux .ui-icon-triangle-1-se,.control-panel-redux .ui-icon-triangle-1-se,.redux-metabox .ui-icon-triangle-1-se{background-position:-48px -16px}.redux-container .ui-icon-triangle-1-s,.control-section-redux .ui-icon-triangle-1-s,.control-panel-redux .ui-icon-triangle-1-s,.redux-metabox .ui-icon-triangle-1-s{background-position:-64px -16px}.redux-container .ui-icon-triangle-1-sw,.control-section-redux .ui-icon-triangle-1-sw,.control-panel-redux .ui-icon-triangle-1-sw,.redux-metabox .ui-icon-triangle-1-sw{background-position:-80px -16px}.redux-container .ui-icon-triangle-1-w,.control-section-redux .ui-icon-triangle-1-w,.control-panel-redux .ui-icon-triangle-1-w,.redux-metabox .ui-icon-triangle-1-w{background-position:-96px -16px}.redux-container .ui-icon-triangle-1-nw,.control-section-redux .ui-icon-triangle-1-nw,.control-panel-redux .ui-icon-triangle-1-nw,.redux-metabox .ui-icon-triangle-1-nw{background-position:-112px -16px}.redux-container .ui-icon-triangle-2-n-s,.control-section-redux .ui-icon-triangle-2-n-s,.control-panel-redux .ui-icon-triangle-2-n-s,.redux-metabox .ui-icon-triangle-2-n-s{background-position:-128px -16px}.redux-container .ui-icon-triangle-2-e-w,.control-section-redux .ui-icon-triangle-2-e-w,.control-panel-redux .ui-icon-triangle-2-e-w,.redux-metabox .ui-icon-triangle-2-e-w{background-position:-144px -16px}.redux-container .ui-icon-arrow-1-n,.control-section-redux .ui-icon-arrow-1-n,.control-panel-redux .ui-icon-arrow-1-n,.redux-metabox .ui-icon-arrow-1-n{background-position:0 -32px}.redux-container .ui-icon-arrow-1-ne,.control-section-redux .ui-icon-arrow-1-ne,.control-panel-redux .ui-icon-arrow-1-ne,.redux-metabox .ui-icon-arrow-1-ne{background-position:-16px -32px}.redux-container .ui-icon-arrow-1-e,.control-section-redux .ui-icon-arrow-1-e,.control-panel-redux .ui-icon-arrow-1-e,.redux-metabox .ui-icon-arrow-1-e{background-position:-32px -32px}.redux-container .ui-icon-arrow-1-se,.control-section-redux .ui-icon-arrow-1-se,.control-panel-redux .ui-icon-arrow-1-se,.redux-metabox .ui-icon-arrow-1-se{background-position:-48px -32px}.redux-container .ui-icon-arrow-1-s,.control-section-redux .ui-icon-arrow-1-s,.control-panel-redux .ui-icon-arrow-1-s,.redux-metabox .ui-icon-arrow-1-s{background-position:-64px -32px}.redux-container .ui-icon-arrow-1-sw,.control-section-redux .ui-icon-arrow-1-sw,.control-panel-redux .ui-icon-arrow-1-sw,.redux-metabox .ui-icon-arrow-1-sw{background-position:-80px -32px}.redux-container .ui-icon-arrow-1-w,.control-section-redux .ui-icon-arrow-1-w,.control-panel-redux .ui-icon-arrow-1-w,.redux-metabox .ui-icon-arrow-1-w{background-position:-96px -32px}.redux-container .ui-icon-arrow-1-nw,.control-section-redux .ui-icon-arrow-1-nw,.control-panel-redux .ui-icon-arrow-1-nw,.redux-metabox .ui-icon-arrow-1-nw{background-position:-112px -32px}.redux-container .ui-icon-arrow-2-n-s,.control-section-redux .ui-icon-arrow-2-n-s,.control-panel-redux .ui-icon-arrow-2-n-s,.redux-metabox .ui-icon-arrow-2-n-s{background-position:-128px -32px}.redux-container .ui-icon-arrow-2-ne-sw,.control-section-redux .ui-icon-arrow-2-ne-sw,.control-panel-redux .ui-icon-arrow-2-ne-sw,.redux-metabox .ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.redux-container .ui-icon-arrow-2-e-w,.control-section-redux .ui-icon-arrow-2-e-w,.control-panel-redux .ui-icon-arrow-2-e-w,.redux-metabox .ui-icon-arrow-2-e-w{background-position:-160px -32px}.redux-container .ui-icon-arrow-2-se-nw,.control-section-redux .ui-icon-arrow-2-se-nw,.control-panel-redux .ui-icon-arrow-2-se-nw,.redux-metabox .ui-icon-arrow-2-se-nw{background-position:-176px -32px}.redux-container .ui-icon-arrowstop-1-n,.control-section-redux .ui-icon-arrowstop-1-n,.control-panel-redux .ui-icon-arrowstop-1-n,.redux-metabox .ui-icon-arrowstop-1-n{background-position:-192px -32px}.redux-container .ui-icon-arrowstop-1-e,.control-section-redux .ui-icon-arrowstop-1-e,.control-panel-redux .ui-icon-arrowstop-1-e,.redux-metabox .ui-icon-arrowstop-1-e{background-position:-208px -32px}.redux-container .ui-icon-arrowstop-1-s,.control-section-redux .ui-icon-arrowstop-1-s,.control-panel-redux .ui-icon-arrowstop-1-s,.redux-metabox .ui-icon-arrowstop-1-s{background-position:-224px -32px}.redux-container .ui-icon-arrowstop-1-w,.control-section-redux .ui-icon-arrowstop-1-w,.control-panel-redux .ui-icon-arrowstop-1-w,.redux-metabox .ui-icon-arrowstop-1-w{background-position:-240px -32px}.redux-container .ui-icon-arrowthick-1-n,.control-section-redux .ui-icon-arrowthick-1-n,.control-panel-redux .ui-icon-arrowthick-1-n,.redux-metabox .ui-icon-arrowthick-1-n{background-position:0 -48px}.redux-container .ui-icon-arrowthick-1-ne,.control-section-redux .ui-icon-arrowthick-1-ne,.control-panel-redux .ui-icon-arrowthick-1-ne,.redux-metabox .ui-icon-arrowthick-1-ne{background-position:-16px -48px}.redux-container .ui-icon-arrowthick-1-e,.control-section-redux .ui-icon-arrowthick-1-e,.control-panel-redux .ui-icon-arrowthick-1-e,.redux-metabox .ui-icon-arrowthick-1-e{background-position:-32px -48px}.redux-container .ui-icon-arrowthick-1-se,.control-section-redux .ui-icon-arrowthick-1-se,.control-panel-redux .ui-icon-arrowthick-1-se,.redux-metabox .ui-icon-arrowthick-1-se{background-position:-48px -48px}.redux-container .ui-icon-arrowthick-1-s,.control-section-redux .ui-icon-arrowthick-1-s,.control-panel-redux .ui-icon-arrowthick-1-s,.redux-metabox .ui-icon-arrowthick-1-s{background-position:-64px -48px}.redux-container .ui-icon-arrowthick-1-sw,.control-section-redux .ui-icon-arrowthick-1-sw,.control-panel-redux .ui-icon-arrowthick-1-sw,.redux-metabox .ui-icon-arrowthick-1-sw{background-position:-80px -48px}.redux-container .ui-icon-arrowthick-1-w,.control-section-redux .ui-icon-arrowthick-1-w,.control-panel-redux .ui-icon-arrowthick-1-w,.redux-metabox .ui-icon-arrowthick-1-w{background-position:-96px -48px}.redux-container .ui-icon-arrowthick-1-nw,.control-section-redux .ui-icon-arrowthick-1-nw,.control-panel-redux .ui-icon-arrowthick-1-nw,.redux-metabox .ui-icon-arrowthick-1-nw{background-position:-112px -48px}.redux-container .ui-icon-arrowthick-2-n-s,.control-section-redux .ui-icon-arrowthick-2-n-s,.control-panel-redux .ui-icon-arrowthick-2-n-s,.redux-metabox .ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.redux-container .ui-icon-arrowthick-2-ne-sw,.control-section-redux .ui-icon-arrowthick-2-ne-sw,.control-panel-redux .ui-icon-arrowthick-2-ne-sw,.redux-metabox .ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.redux-container .ui-icon-arrowthick-2-e-w,.control-section-redux .ui-icon-arrowthick-2-e-w,.control-panel-redux .ui-icon-arrowthick-2-e-w,.redux-metabox .ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.redux-container .ui-icon-arrowthick-2-se-nw,.control-section-redux .ui-icon-arrowthick-2-se-nw,.control-panel-redux .ui-icon-arrowthick-2-se-nw,.redux-metabox .ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.redux-container .ui-icon-arrowthickstop-1-n,.control-section-redux .ui-icon-arrowthickstop-1-n,.control-panel-redux .ui-icon-arrowthickstop-1-n,.redux-metabox .ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.redux-container .ui-icon-arrowthickstop-1-e,.control-section-redux .ui-icon-arrowthickstop-1-e,.control-panel-redux .ui-icon-arrowthickstop-1-e,.redux-metabox .ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.redux-container .ui-icon-arrowthickstop-1-s,.control-section-redux .ui-icon-arrowthickstop-1-s,.control-panel-redux .ui-icon-arrowthickstop-1-s,.redux-metabox .ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.redux-container .ui-icon-arrowthickstop-1-w,.control-section-redux .ui-icon-arrowthickstop-1-w,.control-panel-redux .ui-icon-arrowthickstop-1-w,.redux-metabox .ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.redux-container .ui-icon-arrowreturnthick-1-w,.control-section-redux .ui-icon-arrowreturnthick-1-w,.control-panel-redux .ui-icon-arrowreturnthick-1-w,.redux-metabox .ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.redux-container .ui-icon-arrowreturnthick-1-n,.control-section-redux .ui-icon-arrowreturnthick-1-n,.control-panel-redux .ui-icon-arrowreturnthick-1-n,.redux-metabox .ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.redux-container .ui-icon-arrowreturnthick-1-e,.control-section-redux .ui-icon-arrowreturnthick-1-e,.control-panel-redux .ui-icon-arrowreturnthick-1-e,.redux-metabox .ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.redux-container .ui-icon-arrowreturnthick-1-s,.control-section-redux .ui-icon-arrowreturnthick-1-s,.control-panel-redux .ui-icon-arrowreturnthick-1-s,.redux-metabox .ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.redux-container .ui-icon-arrowreturn-1-w,.control-section-redux .ui-icon-arrowreturn-1-w,.control-panel-redux .ui-icon-arrowreturn-1-w,.redux-metabox .ui-icon-arrowreturn-1-w{background-position:-64px -64px}.redux-container .ui-icon-arrowreturn-1-n,.control-section-redux .ui-icon-arrowreturn-1-n,.control-panel-redux .ui-icon-arrowreturn-1-n,.redux-metabox .ui-icon-arrowreturn-1-n{background-position:-80px -64px}.redux-container .ui-icon-arrowreturn-1-e,.control-section-redux .ui-icon-arrowreturn-1-e,.control-panel-redux .ui-icon-arrowreturn-1-e,.redux-metabox .ui-icon-arrowreturn-1-e{background-position:-96px -64px}.redux-container .ui-icon-arrowreturn-1-s,.control-section-redux .ui-icon-arrowreturn-1-s,.control-panel-redux .ui-icon-arrowreturn-1-s,.redux-metabox .ui-icon-arrowreturn-1-s{background-position:-112px -64px}.redux-container .ui-icon-arrowrefresh-1-w,.control-section-redux .ui-icon-arrowrefresh-1-w,.control-panel-redux .ui-icon-arrowrefresh-1-w,.redux-metabox .ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.redux-container .ui-icon-arrowrefresh-1-n,.control-section-redux .ui-icon-arrowrefresh-1-n,.control-panel-redux .ui-icon-arrowrefresh-1-n,.redux-metabox .ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.redux-container .ui-icon-arrowrefresh-1-e,.control-section-redux .ui-icon-arrowrefresh-1-e,.control-panel-redux .ui-icon-arrowrefresh-1-e,.redux-metabox .ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.redux-container .ui-icon-arrowrefresh-1-s,.control-section-redux .ui-icon-arrowrefresh-1-s,.control-panel-redux .ui-icon-arrowrefresh-1-s,.redux-metabox .ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.redux-container .ui-icon-arrow-4,.control-section-redux .ui-icon-arrow-4,.control-panel-redux .ui-icon-arrow-4,.redux-metabox .ui-icon-arrow-4{background-position:0 -80px}.redux-container .ui-icon-arrow-4-diag,.control-section-redux .ui-icon-arrow-4-diag,.control-panel-redux .ui-icon-arrow-4-diag,.redux-metabox .ui-icon-arrow-4-diag{background-position:-16px -80px}.redux-container .ui-icon-extlink,.control-section-redux .ui-icon-extlink,.control-panel-redux .ui-icon-extlink,.redux-metabox .ui-icon-extlink{background-position:-32px -80px}.redux-container .ui-icon-newwin,.control-section-redux .ui-icon-newwin,.control-panel-redux .ui-icon-newwin,.redux-metabox .ui-icon-newwin{background-position:-48px -80px}.redux-container .ui-icon-refresh,.control-section-redux .ui-icon-refresh,.control-panel-redux .ui-icon-refresh,.redux-metabox .ui-icon-refresh{background-position:-64px -80px}.redux-container .ui-icon-shuffle,.control-section-redux .ui-icon-shuffle,.control-panel-redux .ui-icon-shuffle,.redux-metabox .ui-icon-shuffle{background-position:-80px -80px}.redux-container .ui-icon-transfer-e-w,.control-section-redux .ui-icon-transfer-e-w,.control-panel-redux .ui-icon-transfer-e-w,.redux-metabox .ui-icon-transfer-e-w{background-position:-96px -80px}.redux-container .ui-icon-transferthick-e-w,.control-section-redux .ui-icon-transferthick-e-w,.control-panel-redux .ui-icon-transferthick-e-w,.redux-metabox .ui-icon-transferthick-e-w{background-position:-112px -80px}.redux-container .ui-icon-folder-collapsed,.control-section-redux .ui-icon-folder-collapsed,.control-panel-redux .ui-icon-folder-collapsed,.redux-metabox .ui-icon-folder-collapsed{background-position:0 -96px}.redux-container .ui-icon-folder-open,.control-section-redux .ui-icon-folder-open,.control-panel-redux .ui-icon-folder-open,.redux-metabox .ui-icon-folder-open{background-position:-16px -96px}.redux-container .ui-icon-document,.control-section-redux .ui-icon-document,.control-panel-redux .ui-icon-document,.redux-metabox .ui-icon-document{background-position:-32px -96px}.redux-container .ui-icon-document-b,.control-section-redux .ui-icon-document-b,.control-panel-redux .ui-icon-document-b,.redux-metabox .ui-icon-document-b{background-position:-48px -96px}.redux-container .ui-icon-note,.control-section-redux .ui-icon-note,.control-panel-redux .ui-icon-note,.redux-metabox .ui-icon-note{background-position:-64px -96px}.redux-container .ui-icon-mail-closed,.control-section-redux .ui-icon-mail-closed,.control-panel-redux .ui-icon-mail-closed,.redux-metabox .ui-icon-mail-closed{background-position:-80px -96px}.redux-container .ui-icon-mail-open,.control-section-redux .ui-icon-mail-open,.control-panel-redux .ui-icon-mail-open,.redux-metabox .ui-icon-mail-open{background-position:-96px -96px}.redux-container .ui-icon-suitcase,.control-section-redux .ui-icon-suitcase,.control-panel-redux .ui-icon-suitcase,.redux-metabox .ui-icon-suitcase{background-position:-112px -96px}.redux-container .ui-icon-comment,.control-section-redux .ui-icon-comment,.control-panel-redux .ui-icon-comment,.redux-metabox .ui-icon-comment{background-position:-128px -96px}.redux-container .ui-icon-person,.control-section-redux .ui-icon-person,.control-panel-redux .ui-icon-person,.redux-metabox .ui-icon-person{background-position:-144px -96px}.redux-container .ui-icon-print,.control-section-redux .ui-icon-print,.control-panel-redux .ui-icon-print,.redux-metabox .ui-icon-print{background-position:-160px -96px}.redux-container .ui-icon-trash,.control-section-redux .ui-icon-trash,.control-panel-redux .ui-icon-trash,.redux-metabox .ui-icon-trash{background-position:-176px -96px}.redux-container .ui-icon-locked,.control-section-redux .ui-icon-locked,.control-panel-redux .ui-icon-locked,.redux-metabox .ui-icon-locked{background-position:-192px -96px}.redux-container .ui-icon-unlocked,.control-section-redux .ui-icon-unlocked,.control-panel-redux .ui-icon-unlocked,.redux-metabox .ui-icon-unlocked{background-position:-208px -96px}.redux-container .ui-icon-bookmark,.control-section-redux .ui-icon-bookmark,.control-panel-redux .ui-icon-bookmark,.redux-metabox .ui-icon-bookmark{background-position:-224px -96px}.redux-container .ui-icon-tag,.control-section-redux .ui-icon-tag,.control-panel-redux .ui-icon-tag,.redux-metabox .ui-icon-tag{background-position:-240px -96px}.redux-container .ui-icon-home,.control-section-redux .ui-icon-home,.control-panel-redux .ui-icon-home,.redux-metabox .ui-icon-home{background-position:0 -112px}.redux-container .ui-icon-flag,.control-section-redux .ui-icon-flag,.control-panel-redux .ui-icon-flag,.redux-metabox .ui-icon-flag{background-position:-16px -112px}.redux-container .ui-icon-calendar,.control-section-redux .ui-icon-calendar,.control-panel-redux .ui-icon-calendar,.redux-metabox .ui-icon-calendar{background-position:-32px -112px}.redux-container .ui-icon-cart,.control-section-redux .ui-icon-cart,.control-panel-redux .ui-icon-cart,.redux-metabox .ui-icon-cart{background-position:-48px -112px}.redux-container .ui-icon-pencil,.control-section-redux .ui-icon-pencil,.control-panel-redux .ui-icon-pencil,.redux-metabox .ui-icon-pencil{background-position:-64px -112px}.redux-container .ui-icon-clock,.control-section-redux .ui-icon-clock,.control-panel-redux .ui-icon-clock,.redux-metabox .ui-icon-clock{background-position:-80px -112px}.redux-container .ui-icon-disk,.control-section-redux .ui-icon-disk,.control-panel-redux .ui-icon-disk,.redux-metabox .ui-icon-disk{background-position:-96px -112px}.redux-container .ui-icon-calculator,.control-section-redux .ui-icon-calculator,.control-panel-redux .ui-icon-calculator,.redux-metabox .ui-icon-calculator{background-position:-112px -112px}.redux-container .ui-icon-zoomin,.control-section-redux .ui-icon-zoomin,.control-panel-redux .ui-icon-zoomin,.redux-metabox .ui-icon-zoomin{background-position:-128px -112px}.redux-container .ui-icon-zoomout,.control-section-redux .ui-icon-zoomout,.control-panel-redux .ui-icon-zoomout,.redux-metabox .ui-icon-zoomout{background-position:-144px -112px}.redux-container .ui-icon-search,.control-section-redux .ui-icon-search,.control-panel-redux .ui-icon-search,.redux-metabox .ui-icon-search{background-position:-160px -112px}.redux-container .ui-icon-wrench,.control-section-redux .ui-icon-wrench,.control-panel-redux .ui-icon-wrench,.redux-metabox .ui-icon-wrench{background-position:-176px -112px}.redux-container .ui-icon-gear,.control-section-redux .ui-icon-gear,.control-panel-redux .ui-icon-gear,.redux-metabox .ui-icon-gear{background-position:-192px -112px}.redux-container .ui-icon-heart,.control-section-redux .ui-icon-heart,.control-panel-redux .ui-icon-heart,.redux-metabox .ui-icon-heart{background-position:-208px -112px}.redux-container .ui-icon-star,.control-section-redux .ui-icon-star,.control-panel-redux .ui-icon-star,.redux-metabox .ui-icon-star{background-position:-224px -112px}.redux-container .ui-icon-link,.control-section-redux .ui-icon-link,.control-panel-redux .ui-icon-link,.redux-metabox .ui-icon-link{background-position:-240px -112px}.redux-container .ui-icon-cancel,.control-section-redux .ui-icon-cancel,.control-panel-redux .ui-icon-cancel,.redux-metabox .ui-icon-cancel{background-position:0 -128px}.redux-container .ui-icon-plus,.control-section-redux .ui-icon-plus,.control-panel-redux .ui-icon-plus,.redux-metabox .ui-icon-plus{background-position:-16px -128px}.redux-container .ui-icon-plusthick,.control-section-redux .ui-icon-plusthick,.control-panel-redux .ui-icon-plusthick,.redux-metabox .ui-icon-plusthick{background-position:-32px -128px}.redux-container .ui-icon-minus,.control-section-redux .ui-icon-minus,.control-panel-redux .ui-icon-minus,.redux-metabox .ui-icon-minus{background-position:-48px -128px}.redux-container .ui-icon-minusthick,.control-section-redux .ui-icon-minusthick,.control-panel-redux .ui-icon-minusthick,.redux-metabox .ui-icon-minusthick{background-position:-64px -128px}.redux-container .ui-icon-close,.control-section-redux .ui-icon-close,.control-panel-redux .ui-icon-close,.redux-metabox .ui-icon-close{background-position:-80px -128px}.redux-container .ui-icon-closethick,.control-section-redux .ui-icon-closethick,.control-panel-redux .ui-icon-closethick,.redux-metabox .ui-icon-closethick{background-position:-96px -128px}.redux-container .ui-icon-key,.control-section-redux .ui-icon-key,.control-panel-redux .ui-icon-key,.redux-metabox .ui-icon-key{background-position:-112px -128px}.redux-container .ui-icon-lightbulb,.control-section-redux .ui-icon-lightbulb,.control-panel-redux .ui-icon-lightbulb,.redux-metabox .ui-icon-lightbulb{background-position:-128px -128px}.redux-container .ui-icon-scissors,.control-section-redux .ui-icon-scissors,.control-panel-redux .ui-icon-scissors,.redux-metabox .ui-icon-scissors{background-position:-144px -128px}.redux-container .ui-icon-clipboard,.control-section-redux .ui-icon-clipboard,.control-panel-redux .ui-icon-clipboard,.redux-metabox .ui-icon-clipboard{background-position:-160px -128px}.redux-container .ui-icon-copy,.control-section-redux .ui-icon-copy,.control-panel-redux .ui-icon-copy,.redux-metabox .ui-icon-copy{background-position:-176px -128px}.redux-container .ui-icon-contact,.control-section-redux .ui-icon-contact,.control-panel-redux .ui-icon-contact,.redux-metabox .ui-icon-contact{background-position:-192px -128px}.redux-container .ui-icon-image,.control-section-redux .ui-icon-image,.control-panel-redux .ui-icon-image,.redux-metabox .ui-icon-image{background-position:-208px -128px}.redux-container .ui-icon-video,.control-section-redux .ui-icon-video,.control-panel-redux .ui-icon-video,.redux-metabox .ui-icon-video{background-position:-224px -128px}.redux-container .ui-icon-script,.control-section-redux .ui-icon-script,.control-panel-redux .ui-icon-script,.redux-metabox .ui-icon-script{background-position:-240px -128px}.redux-container .ui-icon-alert,.control-section-redux .ui-icon-alert,.control-panel-redux .ui-icon-alert,.redux-metabox .ui-icon-alert{background-position:0 -144px}.redux-container .ui-icon-info,.control-section-redux .ui-icon-info,.control-panel-redux .ui-icon-info,.redux-metabox .ui-icon-info{background-position:-16px -144px}.redux-container .ui-icon-notice,.control-section-redux .ui-icon-notice,.control-panel-redux .ui-icon-notice,.redux-metabox .ui-icon-notice{background-position:-32px -144px}.redux-container .ui-icon-help,.control-section-redux .ui-icon-help,.control-panel-redux .ui-icon-help,.redux-metabox .ui-icon-help{background-position:-48px -144px}.redux-container .ui-icon-check,.control-section-redux .ui-icon-check,.control-panel-redux .ui-icon-check,.redux-metabox .ui-icon-check{background-position:-64px -144px}.redux-container .ui-icon-bullet,.control-section-redux .ui-icon-bullet,.control-panel-redux .ui-icon-bullet,.redux-metabox .ui-icon-bullet{background-position:-80px -144px}.redux-container .ui-icon-radio-off,.control-section-redux .ui-icon-radio-off,.control-panel-redux .ui-icon-radio-off,.redux-metabox .ui-icon-radio-off{background-position:-96px -144px}.redux-container .ui-icon-radio-on,.control-section-redux .ui-icon-radio-on,.control-panel-redux .ui-icon-radio-on,.redux-metabox .ui-icon-radio-on{background-position:-112px -144px}.redux-container .ui-icon-pin-w,.control-section-redux .ui-icon-pin-w,.control-panel-redux .ui-icon-pin-w,.redux-metabox .ui-icon-pin-w{background-position:-128px -144px}.redux-container .ui-icon-pin-s,.control-section-redux .ui-icon-pin-s,.control-panel-redux .ui-icon-pin-s,.redux-metabox .ui-icon-pin-s{background-position:-144px -144px}.redux-container .ui-icon-play,.control-section-redux .ui-icon-play,.control-panel-redux .ui-icon-play,.redux-metabox .ui-icon-play{background-position:0 -160px}.redux-container .ui-icon-pause,.control-section-redux .ui-icon-pause,.control-panel-redux .ui-icon-pause,.redux-metabox .ui-icon-pause{background-position:-16px -160px}.redux-container .ui-icon-seek-next,.control-section-redux .ui-icon-seek-next,.control-panel-redux .ui-icon-seek-next,.redux-metabox .ui-icon-seek-next{background-position:-32px -160px}.redux-container .ui-icon-seek-prev,.control-section-redux .ui-icon-seek-prev,.control-panel-redux .ui-icon-seek-prev,.redux-metabox .ui-icon-seek-prev{background-position:-48px -160px}.redux-container .ui-icon-seek-end,.control-section-redux .ui-icon-seek-end,.control-panel-redux .ui-icon-seek-end,.redux-metabox .ui-icon-seek-end{background-position:-64px -160px}.redux-container .ui-icon-seek-start,.control-section-redux .ui-icon-seek-start,.control-panel-redux .ui-icon-seek-start,.redux-metabox .ui-icon-seek-start{background-position:-80px -160px}.redux-container .ui-icon-seek-first,.control-section-redux .ui-icon-seek-first,.control-panel-redux .ui-icon-seek-first,.redux-metabox .ui-icon-seek-first{background-position:-80px -160px}.redux-container .ui-icon-stop,.control-section-redux .ui-icon-stop,.control-panel-redux .ui-icon-stop,.redux-metabox .ui-icon-stop{background-position:-96px -160px}.redux-container .ui-icon-eject,.control-section-redux .ui-icon-eject,.control-panel-redux .ui-icon-eject,.redux-metabox .ui-icon-eject{background-position:-112px -160px}.redux-container .ui-icon-volume-off,.control-section-redux .ui-icon-volume-off,.control-panel-redux .ui-icon-volume-off,.redux-metabox .ui-icon-volume-off{background-position:-128px -160px}.redux-container .ui-icon-volume-on,.control-section-redux .ui-icon-volume-on,.control-panel-redux .ui-icon-volume-on,.redux-metabox .ui-icon-volume-on{background-position:-144px -160px}.redux-container .ui-icon-power,.control-section-redux .ui-icon-power,.control-panel-redux .ui-icon-power,.redux-metabox .ui-icon-power{background-position:0 -176px}.redux-container .ui-icon-signal-diag,.control-section-redux .ui-icon-signal-diag,.control-panel-redux .ui-icon-signal-diag,.redux-metabox .ui-icon-signal-diag{background-position:-16px -176px}.redux-container .ui-icon-signal,.control-section-redux .ui-icon-signal,.control-panel-redux .ui-icon-signal,.redux-metabox .ui-icon-signal{background-position:-32px -176px}.redux-container .ui-icon-battery-0,.control-section-redux .ui-icon-battery-0,.control-panel-redux .ui-icon-battery-0,.redux-metabox .ui-icon-battery-0{background-position:-48px -176px}.redux-container .ui-icon-battery-1,.control-section-redux .ui-icon-battery-1,.control-panel-redux .ui-icon-battery-1,.redux-metabox .ui-icon-battery-1{background-position:-64px -176px}.redux-container .ui-icon-battery-2,.control-section-redux .ui-icon-battery-2,.control-panel-redux .ui-icon-battery-2,.redux-metabox .ui-icon-battery-2{background-position:-80px -176px}.redux-container .ui-icon-battery-3,.control-section-redux .ui-icon-battery-3,.control-panel-redux .ui-icon-battery-3,.redux-metabox .ui-icon-battery-3{background-position:-96px -176px}.redux-container .ui-icon-circle-plus,.control-section-redux .ui-icon-circle-plus,.control-panel-redux .ui-icon-circle-plus,.redux-metabox .ui-icon-circle-plus{background-position:0 -192px}.redux-container .ui-icon-circle-minus,.control-section-redux .ui-icon-circle-minus,.control-panel-redux .ui-icon-circle-minus,.redux-metabox .ui-icon-circle-minus{background-position:-16px -192px}.redux-container .ui-icon-circle-close,.control-section-redux .ui-icon-circle-close,.control-panel-redux .ui-icon-circle-close,.redux-metabox .ui-icon-circle-close{background-position:-32px -192px}.redux-container .ui-icon-circle-triangle-e,.control-section-redux .ui-icon-circle-triangle-e,.control-panel-redux .ui-icon-circle-triangle-e,.redux-metabox .ui-icon-circle-triangle-e{background-position:-48px -192px}.redux-container .ui-icon-circle-triangle-s,.control-section-redux .ui-icon-circle-triangle-s,.control-panel-redux .ui-icon-circle-triangle-s,.redux-metabox .ui-icon-circle-triangle-s{background-position:-64px -192px}.redux-container .ui-icon-circle-triangle-w,.control-section-redux .ui-icon-circle-triangle-w,.control-panel-redux .ui-icon-circle-triangle-w,.redux-metabox .ui-icon-circle-triangle-w{background-position:-80px -192px}.redux-container .ui-icon-circle-triangle-n,.control-section-redux .ui-icon-circle-triangle-n,.control-panel-redux .ui-icon-circle-triangle-n,.redux-metabox .ui-icon-circle-triangle-n{background-position:-96px -192px}.redux-container .ui-icon-circle-arrow-e,.control-section-redux .ui-icon-circle-arrow-e,.control-panel-redux .ui-icon-circle-arrow-e,.redux-metabox .ui-icon-circle-arrow-e{background-position:-112px -192px}.redux-container .ui-icon-circle-arrow-s,.control-section-redux .ui-icon-circle-arrow-s,.control-panel-redux .ui-icon-circle-arrow-s,.redux-metabox .ui-icon-circle-arrow-s{background-position:-128px -192px}.redux-container .ui-icon-circle-arrow-w,.control-section-redux .ui-icon-circle-arrow-w,.control-panel-redux .ui-icon-circle-arrow-w,.redux-metabox .ui-icon-circle-arrow-w{background-position:-144px -192px}.redux-container .ui-icon-circle-arrow-n,.control-section-redux .ui-icon-circle-arrow-n,.control-panel-redux .ui-icon-circle-arrow-n,.redux-metabox .ui-icon-circle-arrow-n{background-position:-160px -192px}.redux-container .ui-icon-circle-zoomin,.control-section-redux .ui-icon-circle-zoomin,.control-panel-redux .ui-icon-circle-zoomin,.redux-metabox .ui-icon-circle-zoomin{background-position:-176px -192px}.redux-container .ui-icon-circle-zoomout,.control-section-redux .ui-icon-circle-zoomout,.control-panel-redux .ui-icon-circle-zoomout,.redux-metabox .ui-icon-circle-zoomout{background-position:-192px -192px}.redux-container .ui-icon-circle-check,.control-section-redux .ui-icon-circle-check,.control-panel-redux .ui-icon-circle-check,.redux-metabox .ui-icon-circle-check{background-position:-208px -192px}.redux-container .ui-icon-circlesmall-plus,.control-section-redux .ui-icon-circlesmall-plus,.control-panel-redux .ui-icon-circlesmall-plus,.redux-metabox .ui-icon-circlesmall-plus{background-position:0 -208px}.redux-container .ui-icon-circlesmall-minus,.control-section-redux .ui-icon-circlesmall-minus,.control-panel-redux .ui-icon-circlesmall-minus,.redux-metabox .ui-icon-circlesmall-minus{background-position:-16px -208px}.redux-container .ui-icon-circlesmall-close,.control-section-redux .ui-icon-circlesmall-close,.control-panel-redux .ui-icon-circlesmall-close,.redux-metabox .ui-icon-circlesmall-close{background-position:-32px -208px}.redux-container .ui-icon-squaresmall-plus,.control-section-redux .ui-icon-squaresmall-plus,.control-panel-redux .ui-icon-squaresmall-plus,.redux-metabox .ui-icon-squaresmall-plus{background-position:-48px -208px}.redux-container .ui-icon-squaresmall-minus,.control-section-redux .ui-icon-squaresmall-minus,.control-panel-redux .ui-icon-squaresmall-minus,.redux-metabox .ui-icon-squaresmall-minus{background-position:-64px -208px}.redux-container .ui-icon-squaresmall-close,.control-section-redux .ui-icon-squaresmall-close,.control-panel-redux .ui-icon-squaresmall-close,.redux-metabox .ui-icon-squaresmall-close{background-position:-80px -208px}.redux-container .ui-icon-grip-dotted-vertical,.control-section-redux .ui-icon-grip-dotted-vertical,.control-panel-redux .ui-icon-grip-dotted-vertical,.redux-metabox .ui-icon-grip-dotted-vertical{background-position:0 -224px}.redux-container .ui-icon-grip-dotted-horizontal,.control-section-redux .ui-icon-grip-dotted-horizontal,.control-panel-redux .ui-icon-grip-dotted-horizontal,.redux-metabox .ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.redux-container .ui-icon-grip-solid-vertical,.control-section-redux .ui-icon-grip-solid-vertical,.control-panel-redux .ui-icon-grip-solid-vertical,.redux-metabox .ui-icon-grip-solid-vertical{background-position:-32px -224px}.redux-container .ui-icon-grip-solid-horizontal,.control-section-redux .ui-icon-grip-solid-horizontal,.control-panel-redux .ui-icon-grip-solid-horizontal,.redux-metabox .ui-icon-grip-solid-horizontal{background-position:-48px -224px}.redux-container .ui-icon-gripsmall-diagonal-se,.control-section-redux .ui-icon-gripsmall-diagonal-se,.control-panel-redux .ui-icon-gripsmall-diagonal-se,.redux-metabox .ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.redux-container .ui-icon-grip-diagonal-se,.control-section-redux .ui-icon-grip-diagonal-se,.control-panel-redux .ui-icon-grip-diagonal-se,.redux-metabox .ui-icon-grip-diagonal-se{background-position:-80px -224px}.redux-container .ui-corner-all,.redux-container .ui-corner-top,.redux-container .ui-corner-left,.redux-container .ui-corner-tl,.control-section-redux .ui-corner-all,.control-section-redux .ui-corner-top,.control-section-redux .ui-corner-left,.control-section-redux .ui-corner-tl,.control-panel-redux .ui-corner-all,.control-panel-redux .ui-corner-top,.control-panel-redux .ui-corner-left,.control-panel-redux .ui-corner-tl,.redux-metabox .ui-corner-all,.redux-metabox .ui-corner-top,.redux-metabox .ui-corner-left,.redux-metabox .ui-corner-tl{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;-khtml-border-top-left-radius:4px;border-top-left-radius:4px}.redux-container .ui-corner-all,.redux-container .ui-corner-top,.redux-container .ui-corner-right,.redux-container .ui-corner-tr,.control-section-redux .ui-corner-all,.control-section-redux .ui-corner-top,.control-section-redux .ui-corner-right,.control-section-redux .ui-corner-tr,.control-panel-redux .ui-corner-all,.control-panel-redux .ui-corner-top,.control-panel-redux .ui-corner-right,.control-panel-redux .ui-corner-tr,.redux-metabox .ui-corner-all,.redux-metabox .ui-corner-top,.redux-metabox .ui-corner-right,.redux-metabox .ui-corner-tr{-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;-khtml-border-top-right-radius:4px;border-top-right-radius:4px}.redux-container .ui-corner-all,.redux-container .ui-corner-bottom,.redux-container .ui-corner-left,.redux-container .ui-corner-bl,.control-section-redux .ui-corner-all,.control-section-redux .ui-corner-bottom,.control-section-redux .ui-corner-left,.control-section-redux .ui-corner-bl,.control-panel-redux .ui-corner-all,.control-panel-redux .ui-corner-bottom,.control-panel-redux .ui-corner-left,.control-panel-redux .ui-corner-bl,.redux-metabox .ui-corner-all,.redux-metabox .ui-corner-bottom,.redux-metabox .ui-corner-left,.redux-metabox .ui-corner-bl{-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;-khtml-border-bottom-left-radius:4px;border-bottom-left-radius:4px}.redux-container .ui-corner-all,.redux-container .ui-corner-bottom,.redux-container .ui-corner-right,.redux-container .ui-corner-br,.control-section-redux .ui-corner-all,.control-section-redux .ui-corner-bottom,.control-section-redux .ui-corner-right,.control-section-redux .ui-corner-br,.control-panel-redux .ui-corner-all,.control-panel-redux .ui-corner-bottom,.control-panel-redux .ui-corner-right,.control-panel-redux .ui-corner-br,.redux-metabox .ui-corner-all,.redux-metabox .ui-corner-bottom,.redux-metabox .ui-corner-right,.redux-metabox .ui-corner-br{-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;-khtml-border-bottom-right-radius:4px;border-bottom-right-radius:4px}.redux-container .ui-widget-overlay,.control-section-redux .ui-widget-overlay,.control-panel-redux .ui-widget-overlay,.redux-metabox .ui-widget-overlay{background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.30;filter:Alpha(Opacity=30)}.redux-container .ui-widget-shadow,.control-section-redux .ui-widget-shadow,.control-panel-redux .ui-widget-shadow,.redux-metabox .ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.30;filter:Alpha(Opacity=30);-moz-border-radius:8px;-khtml-border-radius:8px;-webkit-border-radius:8px;border-radius:8px}.redux-container .ui-accordion,.control-section-redux .ui-accordion,.control-panel-redux .ui-accordion,.redux-metabox .ui-accordion{width:100%}.redux-container .ui-accordion .ui-accordion-header,.control-section-redux .ui-accordion .ui-accordion-header,.control-panel-redux .ui-accordion .ui-accordion-header,.redux-metabox .ui-accordion .ui-accordion-header{cursor:pointer;position:relative;margin-top:1px;zoom:1;font-weight:bold}.redux-container .ui-accordion .ui-accordion-li-fix,.control-section-redux .ui-accordion .ui-accordion-li-fix,.control-panel-redux .ui-accordion .ui-accordion-li-fix,.redux-metabox .ui-accordion .ui-accordion-li-fix{display:inline}.redux-container .ui-accordion .ui-accordion-header-active,.control-section-redux .ui-accordion .ui-accordion-header-active,.control-panel-redux .ui-accordion .ui-accordion-header-active,.redux-metabox .ui-accordion .ui-accordion-header-active{border-bottom:0 !important}.redux-container .ui-accordion .ui-accordion-header a,.control-section-redux .ui-accordion .ui-accordion-header a,.control-panel-redux .ui-accordion .ui-accordion-header a,.redux-metabox .ui-accordion .ui-accordion-header a{display:block;font-size:1em;padding:.5em .5em .5em 1.7em}.redux-container .ui-accordion-icons .ui-accordion-header a,.control-section-redux .ui-accordion-icons .ui-accordion-header a,.control-panel-redux .ui-accordion-icons .ui-accordion-header a,.redux-metabox .ui-accordion-icons .ui-accordion-header a{padding-left:2.2em}.redux-container .ui-accordion .ui-accordion-header .ui-icon,.control-section-redux .ui-accordion .ui-accordion-header .ui-icon,.control-panel-redux .ui-accordion .ui-accordion-header .ui-icon,.redux-metabox .ui-accordion .ui-accordion-header .ui-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.redux-container .ui-accordion .ui-accordion-content,.control-section-redux .ui-accordion .ui-accordion-content,.control-panel-redux .ui-accordion .ui-accordion-content,.redux-metabox .ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;margin-top:-2px;position:relative;top:1px;margin-bottom:2px;overflow:auto;display:none;zoom:1}.redux-container .ui-accordion .ui-accordion-content-active,.control-section-redux .ui-accordion .ui-accordion-content-active,.control-panel-redux .ui-accordion .ui-accordion-content-active,.redux-metabox .ui-accordion .ui-accordion-content-active{display:block}.redux-container .ui-button,.control-section-redux .ui-button,.control-panel-redux .ui-button,.redux-metabox .ui-button{cursor:pointer;display:inline-block;background-color:#e6e6e6;background-repeat:no-repeat;background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), color-stop(25%, #fff), to(#e6e6e6));background-image:-webkit-linear-gradient(#fff, #fff 25%, #e6e6e6);background-image:-moz-linear-gradient(top, #fff, #fff 25%, #e6e6e6);background-image:-ms-linear-gradient(#fff, #fff 25%, #e6e6e6);background-image:-o-linear-gradient(#fff, #fff 25%, #e6e6e6);background-image:linear-gradient(#fff, #fff 25%, #e6e6e6);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);padding:5px 14px 6px;margin:0;text-shadow:0 1px 1px rgba(255,255,255,0.75);color:#333;font-size:13px;line-height:normal;border:1px solid #ccc;border-bottom-color:#bbb;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-webkit-transition:0.1s linear background-image;-moz-transition:0.1s linear background-image;-ms-transition:0.1s linear background-image;-o-transition:0.1s linear background-image;transition:0.1s linear background-image;overflow:visible}.redux-container .ui-button-primary,.control-section-redux .ui-button-primary,.control-panel-redux .ui-button-primary,.redux-metabox .ui-button-primary{color:#ffffff;background-color:#0064cd;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#049cdb), to(#0064cd));background-image:-moz-linear-gradient(top, #049cdb, #0064cd);background-image:-ms-linear-gradient(top, #049cdb, #0064cd);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #049cdb), color-stop(100%, #0064cd));background-image:-webkit-linear-gradient(top, #049cdb, #0064cd);background-image:-o-linear-gradient(top, #049cdb, #0064cd);background-image:linear-gradient(top, #049cdb, #0064cd);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#049cdb', endColorstr='#0064cd', GradientType=0);text-shadow:0 -1px 0 rgba(0,0,0,0.25);border-color:#0064cd #0064cd #003f81;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.redux-container .ui-button-success,.control-section-redux .ui-button-success,.control-panel-redux .ui-button-success,.redux-metabox .ui-button-success{color:#ffffff;background-color:#57a957;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#62c462), to(#57a957));background-image:-moz-linear-gradient(top, #62c462, #57a957);background-image:-ms-linear-gradient(top, #62c462, #57a957);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #62c462), color-stop(100%, #57a957));background-image:-webkit-linear-gradient(top, #62c462, #57a957);background-image:-o-linear-gradient(top, #62c462, #57a957);background-image:linear-gradient(top, #62c462, #57a957);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0);text-shadow:0 -1px 0 rgba(0,0,0,0.25);border-color:#57a957 #57a957 #3d773d;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.redux-container .ui-button-error,.control-section-redux .ui-button-error,.control-panel-redux .ui-button-error,.redux-metabox .ui-button-error{color:#ffffff;background-color:#c43c35;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#ee5f5b), to(#c43c35));background-image:-moz-linear-gradient(top, #ee5f5b, #c43c35);background-image:-ms-linear-gradient(top, #ee5f5b, #c43c35);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b), color-stop(100%, #c43c35));background-image:-webkit-linear-gradient(top, #ee5f5b, #c43c35);background-image:-o-linear-gradient(top, #ee5f5b, #c43c35);background-image:linear-gradient(top, #ee5f5b, #c43c35);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);text-shadow:0 -1px 0 rgba(0,0,0,0.25);border-color:#c43c35 #c43c35 #882a25;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.redux-container .ui-button-icon-only,.control-section-redux .ui-button-icon-only,.control-panel-redux .ui-button-icon-only,.redux-metabox .ui-button-icon-only{width:2.2em}.redux-container .ui-button-icons-only,.control-section-redux .ui-button-icons-only,.control-panel-redux .ui-button-icons-only,.redux-metabox .ui-button-icons-only{width:3.4em}.redux-container button.ui-button-icons-only,.control-section-redux button.ui-button-icons-only,.control-panel-redux button.ui-button-icons-only,.redux-metabox button.ui-button-icons-only{width:3.7em}.redux-container .ui-button .ui-button-text,.control-section-redux .ui-button .ui-button-text,.control-panel-redux .ui-button .ui-button-text,.redux-metabox .ui-button .ui-button-text{display:block}.redux-container .ui-button-icon-only .ui-button-text,.redux-container .ui-button-icons-only .ui-button-text,.control-section-redux .ui-button-icon-only .ui-button-text,.control-section-redux .ui-button-icons-only .ui-button-text,.control-panel-redux .ui-button-icon-only .ui-button-text,.control-panel-redux .ui-button-icons-only .ui-button-text,.redux-metabox .ui-button-icon-only .ui-button-text,.redux-metabox .ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px;display:none}.redux-container .ui-button-text-icon-primary .ui-button-text,.redux-container .ui-button-text-icons .ui-button-text,.control-section-redux .ui-button-text-icon-primary .ui-button-text,.control-section-redux .ui-button-text-icons .ui-button-text,.control-panel-redux .ui-button-text-icon-primary .ui-button-text,.control-panel-redux .ui-button-text-icons .ui-button-text,.redux-metabox .ui-button-text-icon-primary .ui-button-text,.redux-metabox .ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.redux-container .ui-button-text-icon-secondary .ui-button-text,.redux-container .ui-button-text-icons .ui-button-text,.control-section-redux .ui-button-text-icon-secondary .ui-button-text,.control-section-redux .ui-button-text-icons .ui-button-text,.control-panel-redux .ui-button-text-icon-secondary .ui-button-text,.control-panel-redux .ui-button-text-icons .ui-button-text,.redux-metabox .ui-button-text-icon-secondary .ui-button-text,.redux-metabox .ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.redux-container .ui-button-text-icons .ui-button-text,.control-section-redux .ui-button-text-icons .ui-button-text,.control-panel-redux .ui-button-text-icons .ui-button-text,.redux-metabox .ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}.redux-container .ui-button-icon-only .ui-icon,.redux-container .ui-button-text-icon-primary .ui-icon,.redux-container .ui-button-text-icon-secondary .ui-icon,.redux-container .ui-button-text-icons .ui-icon,.redux-container .ui-button-icons-only .ui-icon,.control-section-redux .ui-button-icon-only .ui-icon,.control-section-redux .ui-button-text-icon-primary .ui-icon,.control-section-redux .ui-button-text-icon-secondary .ui-icon,.control-section-redux .ui-button-text-icons .ui-icon,.control-section-redux .ui-button-icons-only .ui-icon,.control-panel-redux .ui-button-icon-only .ui-icon,.control-panel-redux .ui-button-text-icon-primary .ui-icon,.control-panel-redux .ui-button-text-icon-secondary .ui-icon,.control-panel-redux .ui-button-text-icons .ui-icon,.control-panel-redux .ui-button-icons-only .ui-icon,.redux-metabox .ui-button-icon-only .ui-icon,.redux-metabox .ui-button-text-icon-primary .ui-icon,.redux-metabox .ui-button-text-icon-secondary .ui-icon,.redux-metabox .ui-button-text-icons .ui-icon,.redux-metabox .ui-button-icons-only .ui-icon{top:50%;margin-top:-3px;margin-bottom:3px}.redux-container .ui-button-icon-only .ui-icon,.control-section-redux .ui-button-icon-only .ui-icon,.control-panel-redux .ui-button-icon-only .ui-icon,.redux-metabox .ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.redux-container .ui-button-text-icon-primary .ui-button-icon-primary,.redux-container .ui-button-text-icons .ui-button-icon-primary,.redux-container .ui-button-icons-only .ui-button-icon-primary,.control-section-redux .ui-button-text-icon-primary .ui-button-icon-primary,.control-section-redux .ui-button-text-icons .ui-button-icon-primary,.control-section-redux .ui-button-icons-only .ui-button-icon-primary,.control-panel-redux .ui-button-text-icon-primary .ui-button-icon-primary,.control-panel-redux .ui-button-text-icons .ui-button-icon-primary,.control-panel-redux .ui-button-icons-only .ui-button-icon-primary,.redux-metabox .ui-button-text-icon-primary .ui-button-icon-primary,.redux-metabox .ui-button-text-icons .ui-button-icon-primary,.redux-metabox .ui-button-icons-only .ui-button-icon-primary{left:.5em}.redux-container .ui-button-text-icon-secondary .ui-button-icon-secondary,.redux-container .ui-button-text-icons .ui-button-icon-secondary,.redux-container .ui-button-icons-only .ui-button-icon-secondary,.control-section-redux .ui-button-text-icon-secondary .ui-button-icon-secondary,.control-section-redux .ui-button-text-icons .ui-button-icon-secondary,.control-section-redux .ui-button-icons-only .ui-button-icon-secondary,.control-panel-redux .ui-button-text-icon-secondary .ui-button-icon-secondary,.control-panel-redux .ui-button-text-icons .ui-button-icon-secondary,.control-panel-redux .ui-button-icons-only .ui-button-icon-secondary,.redux-metabox .ui-button-text-icon-secondary .ui-button-icon-secondary,.redux-metabox .ui-button-text-icons .ui-button-icon-secondary,.redux-metabox .ui-button-icons-only .ui-button-icon-secondary{right:.5em}.redux-container .ui-button-text-icons .ui-button-icon-secondary,.redux-container .ui-button-icons-only .ui-button-icon-secondary,.control-section-redux .ui-button-text-icons .ui-button-icon-secondary,.control-section-redux .ui-button-icons-only .ui-button-icon-secondary,.control-panel-redux .ui-button-text-icons .ui-button-icon-secondary,.control-panel-redux .ui-button-icons-only .ui-button-icon-secondary,.redux-metabox .ui-button-text-icons .ui-button-icon-secondary,.redux-metabox .ui-button-icons-only .ui-button-icon-secondary{right:.5em}.redux-container .ui-buttonset,.control-section-redux .ui-buttonset,.control-panel-redux .ui-buttonset,.redux-metabox .ui-buttonset{margin-right:7px}.redux-container .ui-buttonset .ui-state-active,.control-section-redux .ui-buttonset .ui-state-active,.control-panel-redux .ui-buttonset .ui-state-active,.redux-metabox .ui-buttonset .ui-state-active{color:#ffffff;background-color:#0064cd;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#049cdb), to(#0064cd));background-image:-moz-linear-gradient(top, #049cdb, #0064cd);background-image:-ms-linear-gradient(top, #049cdb, #0064cd);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #049cdb), color-stop(100%, #0064cd));background-image:-webkit-linear-gradient(top, #049cdb, #0064cd);background-image:-o-linear-gradient(top, #049cdb, #0064cd);background-image:linear-gradient(top, #049cdb, #0064cd);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#049cdb', endColorstr='#0064cd', GradientType=0);text-shadow:0 -1px 0 rgba(0,0,0,0.25);border-color:#0064cd #0064cd #003f81;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.redux-container .ui-buttonset .ui-button,.control-section-redux .ui-buttonset .ui-button,.control-panel-redux .ui-buttonset .ui-button,.redux-metabox .ui-buttonset .ui-button{margin-left:0;margin-right:0}.redux-container button.ui-button::-moz-focus-inner,.control-section-redux button.ui-button::-moz-focus-inner,.control-panel-redux button.ui-button::-moz-focus-inner,.redux-metabox button.ui-button::-moz-focus-inner{border:0;padding:0}.redux-container .ui-datepicker,.control-section-redux .ui-datepicker,.control-panel-redux .ui-datepicker,.redux-metabox .ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.redux-container .ui-datepicker .ui-datepicker-header,.control-section-redux .ui-datepicker .ui-datepicker-header,.control-panel-redux .ui-datepicker .ui-datepicker-header,.redux-metabox .ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0;border:0px;font-weight:bold;width:100%;padding:4px 0;background-color:#f5f5f5;color:#808080}.redux-container .ui-datepicker .ui-datepicker-prev,.redux-container .ui-datepicker .ui-datepicker-next,.control-section-redux .ui-datepicker .ui-datepicker-prev,.control-section-redux .ui-datepicker .ui-datepicker-next,.control-panel-redux .ui-datepicker .ui-datepicker-prev,.control-panel-redux .ui-datepicker .ui-datepicker-next,.redux-metabox .ui-datepicker .ui-datepicker-prev,.redux-metabox .ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.redux-container .ui-datepicker .ui-datepicker-prev,.control-section-redux .ui-datepicker .ui-datepicker-prev,.control-panel-redux .ui-datepicker .ui-datepicker-prev,.redux-metabox .ui-datepicker .ui-datepicker-prev{left:2px}.redux-container .ui-datepicker .ui-datepicker-next,.control-section-redux .ui-datepicker .ui-datepicker-next,.control-panel-redux .ui-datepicker .ui-datepicker-next,.redux-metabox .ui-datepicker .ui-datepicker-next{right:2px}.redux-container .ui-datepicker .ui-datepicker-prev span,.redux-container .ui-datepicker .ui-datepicker-next span,.control-section-redux .ui-datepicker .ui-datepicker-prev span,.control-section-redux .ui-datepicker .ui-datepicker-next span,.control-panel-redux .ui-datepicker .ui-datepicker-prev span,.control-panel-redux .ui-datepicker .ui-datepicker-next span,.redux-metabox .ui-datepicker .ui-datepicker-prev span,.redux-metabox .ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.redux-container .ui-datepicker .ui-datepicker-title,.control-section-redux .ui-datepicker .ui-datepicker-title,.control-panel-redux .ui-datepicker .ui-datepicker-title,.redux-metabox .ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.redux-container .ui-datepicker .ui-datepicker-title select,.control-section-redux .ui-datepicker .ui-datepicker-title select,.control-panel-redux .ui-datepicker .ui-datepicker-title select,.redux-metabox .ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.redux-container .ui-datepicker select.ui-datepicker-month-year,.control-section-redux .ui-datepicker select.ui-datepicker-month-year,.control-panel-redux .ui-datepicker select.ui-datepicker-month-year,.redux-metabox .ui-datepicker select.ui-datepicker-month-year{width:100%}.redux-container .ui-datepicker select.ui-datepicker-month,.redux-container .ui-datepicker select.ui-datepicker-year,.control-section-redux .ui-datepicker select.ui-datepicker-month,.control-section-redux .ui-datepicker select.ui-datepicker-year,.control-panel-redux .ui-datepicker select.ui-datepicker-month,.control-panel-redux .ui-datepicker select.ui-datepicker-year,.redux-metabox .ui-datepicker select.ui-datepicker-month,.redux-metabox .ui-datepicker select.ui-datepicker-year{width:49%}.redux-container .ui-datepicker table,.control-section-redux .ui-datepicker table,.control-panel-redux .ui-datepicker table,.redux-metabox .ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.redux-container .ui-datepicker th,.control-section-redux .ui-datepicker th,.control-panel-redux .ui-datepicker th,.redux-metabox .ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.redux-container .ui-datepicker td,.control-section-redux .ui-datepicker td,.control-panel-redux .ui-datepicker td,.redux-metabox .ui-datepicker td{border:0;padding:1px}.redux-container .ui-datepicker td span,.redux-container .ui-datepicker td a,.control-section-redux .ui-datepicker td span,.control-section-redux .ui-datepicker td a,.control-panel-redux .ui-datepicker td span,.control-panel-redux .ui-datepicker td a,.redux-metabox .ui-datepicker td span,.redux-metabox .ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.redux-container .ui-datepicker .ui-datepicker-buttonpane,.control-section-redux .ui-datepicker .ui-datepicker-buttonpane,.control-panel-redux .ui-datepicker .ui-datepicker-buttonpane,.redux-metabox .ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.redux-container .ui-datepicker .ui-datepicker-buttonpane button,.control-section-redux .ui-datepicker .ui-datepicker-buttonpane button,.control-panel-redux .ui-datepicker .ui-datepicker-buttonpane button,.redux-metabox .ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.redux-container .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current,.control-section-redux .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current,.control-panel-redux .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current,.redux-metabox .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.redux-container .ui-datepicker.ui-datepicker-multi,.control-section-redux .ui-datepicker.ui-datepicker-multi,.control-panel-redux .ui-datepicker.ui-datepicker-multi,.redux-metabox .ui-datepicker.ui-datepicker-multi{width:auto}.redux-container .ui-datepicker-multi .ui-datepicker-group,.control-section-redux .ui-datepicker-multi .ui-datepicker-group,.control-panel-redux .ui-datepicker-multi .ui-datepicker-group,.redux-metabox .ui-datepicker-multi .ui-datepicker-group{float:left}.redux-container .ui-datepicker-multi .ui-datepicker-group table,.control-section-redux .ui-datepicker-multi .ui-datepicker-group table,.control-panel-redux .ui-datepicker-multi .ui-datepicker-group table,.redux-metabox .ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.redux-container .ui-datepicker-multi-2 .ui-datepicker-group,.control-section-redux .ui-datepicker-multi-2 .ui-datepicker-group,.control-panel-redux .ui-datepicker-multi-2 .ui-datepicker-group,.redux-metabox .ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.redux-container .ui-datepicker-multi-3 .ui-datepicker-group,.control-section-redux .ui-datepicker-multi-3 .ui-datepicker-group,.control-panel-redux .ui-datepicker-multi-3 .ui-datepicker-group,.redux-metabox .ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.redux-container .ui-datepicker-multi-4 .ui-datepicker-group,.control-section-redux .ui-datepicker-multi-4 .ui-datepicker-group,.control-panel-redux .ui-datepicker-multi-4 .ui-datepicker-group,.redux-metabox .ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.redux-container .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.control-section-redux .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.control-panel-redux .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.redux-metabox .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header{border-left-width:0}.redux-container .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header,.control-section-redux .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header,.control-panel-redux .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header,.redux-metabox .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.redux-container .ui-datepicker-multi .ui-datepicker-buttonpane,.control-section-redux .ui-datepicker-multi .ui-datepicker-buttonpane,.control-panel-redux .ui-datepicker-multi .ui-datepicker-buttonpane,.redux-metabox .ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.redux-container .ui-datepicker-row-break,.control-section-redux .ui-datepicker-row-break,.control-panel-redux .ui-datepicker-row-break,.redux-metabox .ui-datepicker-row-break{clear:both;width:100%;font-size:0em}.redux-container .ui-datepicker-rtl,.control-section-redux .ui-datepicker-rtl,.control-panel-redux .ui-datepicker-rtl,.redux-metabox .ui-datepicker-rtl{direction:rtl}.redux-container .ui-datepicker-rtl .ui-datepicker-prev,.control-section-redux .ui-datepicker-rtl .ui-datepicker-prev,.control-panel-redux .ui-datepicker-rtl .ui-datepicker-prev,.redux-metabox .ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.redux-container .ui-datepicker-rtl .ui-datepicker-next,.control-section-redux .ui-datepicker-rtl .ui-datepicker-next,.control-panel-redux .ui-datepicker-rtl .ui-datepicker-next,.redux-metabox .ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.redux-container .ui-datepicker-rtl .ui-datepicker-prev:hover,.control-section-redux .ui-datepicker-rtl .ui-datepicker-prev:hover,.control-panel-redux .ui-datepicker-rtl .ui-datepicker-prev:hover,.redux-metabox .ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.redux-container .ui-datepicker-rtl .ui-datepicker-next:hover,.control-section-redux .ui-datepicker-rtl .ui-datepicker-next:hover,.control-panel-redux .ui-datepicker-rtl .ui-datepicker-next:hover,.redux-metabox .ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.redux-container .ui-datepicker-rtl .ui-datepicker-buttonpane,.control-section-redux .ui-datepicker-rtl .ui-datepicker-buttonpane,.control-panel-redux .ui-datepicker-rtl .ui-datepicker-buttonpane,.redux-metabox .ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.redux-container .ui-datepicker-rtl .ui-datepicker-buttonpane button,.control-section-redux .ui-datepicker-rtl .ui-datepicker-buttonpane button,.control-panel-redux .ui-datepicker-rtl .ui-datepicker-buttonpane button,.redux-metabox .ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.redux-container .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.control-section-redux .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.control-panel-redux .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.redux-metabox .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current{float:right}.redux-container .ui-datepicker-rtl .ui-datepicker-group,.control-section-redux .ui-datepicker-rtl .ui-datepicker-group,.control-panel-redux .ui-datepicker-rtl .ui-datepicker-group,.redux-metabox .ui-datepicker-rtl .ui-datepicker-group{float:right}.redux-container .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.control-section-redux .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.control-panel-redux .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.redux-metabox .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header{border-right-width:0;border-left-width:1px}.redux-container .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header,.control-section-redux .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header,.control-panel-redux .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header,.redux-metabox .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.redux-container .ui-datepicker-cover,.control-section-redux .ui-datepicker-cover,.control-panel-redux .ui-datepicker-cover,.redux-metabox .ui-datepicker-cover{display:none;display:block;position:absolute;z-index:-1;filter:mask();top:-4px;left:-4px;width:200px;height:200px}.redux-container .ui-datepicker th,.control-section-redux .ui-datepicker th,.control-panel-redux .ui-datepicker th,.redux-metabox .ui-datepicker th{font-weight:bold;color:gray}.redux-container .ui-datepicker-today a:hover,.control-section-redux .ui-datepicker-today a:hover,.control-panel-redux .ui-datepicker-today a:hover,.redux-metabox .ui-datepicker-today a:hover{background-color:#808080;color:#ffffff}.redux-container .ui-datepicker-today a,.control-section-redux .ui-datepicker-today a,.control-panel-redux .ui-datepicker-today a,.redux-metabox .ui-datepicker-today a{background-color:#BFBFBF;cursor:pointer;padding:0 4px;margin-bottom:0px}.redux-container .ui-datepicker td a,.control-section-redux .ui-datepicker td a,.control-panel-redux .ui-datepicker td a,.redux-metabox .ui-datepicker td a{margin-bottom:0px;border:0px}.redux-container .ui-datepicker td:hover,.control-section-redux .ui-datepicker td:hover,.control-panel-redux .ui-datepicker td:hover,.redux-metabox .ui-datepicker td:hover{color:#ffffff}.redux-container .ui-datepicker td .ui-state-default,.control-section-redux .ui-datepicker td .ui-state-default,.control-panel-redux .ui-datepicker td .ui-state-default,.redux-metabox .ui-datepicker td .ui-state-default{border:0px;background:none;margin-bottom:0px;padding:5px;color:gray;text-align:center;filter:none}.redux-container .ui-datepicker td .ui-state-active,.control-section-redux .ui-datepicker td .ui-state-active,.control-panel-redux .ui-datepicker td .ui-state-active,.redux-metabox .ui-datepicker td .ui-state-active{background:#BFBFBF;margin-bottom:0px;font-size:normal;text-shadow:0px;color:#ffffff;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.redux-container .ui-datepicker td .ui-state-hover,.control-section-redux .ui-datepicker td .ui-state-hover,.control-panel-redux .ui-datepicker td .ui-state-hover,.redux-metabox .ui-datepicker td .ui-state-hover{color:#ffffff;background:#0064cd;background-color:#0064cd;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#049cdb), to(#0064cd));background-image:-moz-linear-gradient(top, #049cdb, #0064cd);background-image:-ms-linear-gradient(top, #049cdb, #0064cd);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #049cdb), color-stop(100%, #0064cd));background-image:-webkit-linear-gradient(top, #049cdb, #0064cd);background-image:-o-linear-gradient(top, #049cdb, #0064cd);background-image:linear-gradient(top, #049cdb, #0064cd);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#049cdb', endColorstr='#0064cd', GradientType=0);text-shadow:0 -1px 0 rgba(0,0,0,0.25);border-color:#0064cd #0064cd #003f81;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);-webkit-border-radius:4px;-moz-border-radius:4px;-khtml-border-radius:4px;border-radius:4px}.redux-container .ui-widget-content,.control-section-redux .ui-widget-content,.control-panel-redux .ui-widget-content,.redux-metabox .ui-widget-content{border:1px solid #dfdfdf}.redux-container .ui-datepicker table,.control-section-redux .ui-datepicker table,.control-panel-redux .ui-datepicker table,.redux-metabox .ui-datepicker table{background:#fff}.redux-container .placeholder,.control-section-redux .placeholder,.control-panel-redux .placeholder,.redux-metabox .placeholder{background:#f9f9f9 !important;border:1px dashed #bbb !important}.wp-customizer #ui-datepicker-div{z-index:999999 !important} diff --git a/redux/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/jquery-ui-1.10.0.custom.css.map b/redux/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/jquery-ui-1.10.0.custom.css.map new file mode 100644 index 0000000..6dafb09 --- /dev/null +++ b/redux/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/jquery-ui-1.10.0.custom.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "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", +"sources": ["jquery-ui-1.10.0.custom.scss"], +"names": [], +"file": "jquery-ui-1.10.0.custom.css" +} \ No newline at end of file diff --git a/redux/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/jquery-ui-1.10.0.custom.scss b/redux/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/jquery-ui-1.10.0.custom.scss new file mode 100644 index 0000000..1b81be8 --- /dev/null +++ b/redux/ReduxCore/assets/css/vendor/jquery-ui-bootstrap/jquery-ui-1.10.0.custom.scss @@ -0,0 +1,799 @@ +/*! + * jQuery UI Bootstrap (0.5) + * http://addyosmani.github.com/jquery-ui-bootstrap + * + * Copyright 2012 - 2013, Addy Osmani + * Dual licensed under the MIT or GPL Version 2 licenses. + * + * Portions copyright jQuery UI & Twitter Bootstrap + */ + +.redux-container, .control-section-redux, .control-panel-redux, .redux-metabox { + /* Interaction Cues +----------------------------------*/ + .ui-state-disabled { cursor: default !important; } + + + /* Icons + ----------------------------------*/ + + /* states and images */ + .ui-icon { + display: block; + text-indent: -99999px; + overflow: hidden; + background-repeat: no-repeat; + } + + + /* Misc visuals + ----------------------------------*/ + + + /* + * jQuery UI CSS Framework 1.10.0 + * + * Copyright 2013, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * + * + * To view and modify this theme, visit http://jqueryui.com/themeroller/ + */ + + /* Component containers + ----------------------------------*/ + //.ui-widget { font-size:13px; } + //.ui-widget .ui-widget { font-size: 1em; } + //.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-size: 1em; } + .ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_glass_75_ffffff_1x400.png) 50% 50% repeat-x; color: #404040; } + //.ui-widget-content a { color: #404040; } + .ui-widget-header { + font-weight:bold; + border-color: #0064cd #0064cd #003f81; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + border:1px solid #666; + } + .ui-widget-header a { color: #222222; } + + /* Interaction states + ----------------------------------*/ + .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { + + background-color: #e6e6e6; + background-repeat: no-repeat; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), color-stop(25%, #ffffff), to(#e6e6e6)); + background-image: -webkit-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); + background-image: -moz-linear-gradient(top, #ffffff, #ffffff 25%, #e6e6e6); + background-image: -ms-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); + background-image: -o-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); + background-image: linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0); + + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); + + color: #333; + font-size: 13px; + line-height: normal; + border: 1px solid #ccc; + border-bottom-color: #bbb; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -webkit-transition: 0.1s linear background-image; + -moz-transition: 0.1s linear background-image; + -ms-transition: 0.1s linear background-image; + -o-transition: 0.1s linear background-image; + transition: 0.1s linear background-image; + overflow: visible; + + } + + + .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555; text-decoration: none; } + .ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { + background-position: 0 -15px; + color: #333; + text-decoration: none; + } + + .ui-state-hover a, .ui-state-hover a:hover, .ui-state-hover a:link, .ui-state-hover a:visited { color: #212121; text-decoration: none; } + .ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; font-weight: normal; color: #212121; } + .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121; text-decoration: none; } + .ui-widget :active { outline: none; } + + /* Interaction Cues + ----------------------------------*/ + + + .ui-state-highlight p, .ui-state-error p, .ui-state-default p{ + font-size: 13px; + font-weight: normal; + line-height: 18px; + margin:7px 15px; + } + .ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight { + + + position: relative; + margin-bottom: 18px; + color: #404040; + background-color: #eedc94; + background-repeat: repeat-x; + background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1), to(#eedc94)); + background-image: -moz-linear-gradient(top, #fceec1, #eedc94); + background-image: -ms-linear-gradient(top, #fceec1, #eedc94); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceec1), color-stop(100%, #eedc94)); + background-image: -webkit-linear-gradient(top, #fceec1, #eedc94); + background-image: -o-linear-gradient(top, #fceec1, #eedc94); + background-image: linear-gradient(top, #fceec1, #eedc94); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fceec1', endColorstr='#eedc94', GradientType=0); + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + border-color: #eedc94 #eedc94 #e4c652; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + border-width: 1px; + border-style: solid; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25); + + + } + .ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; } + .ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error { + + + position: relative; + margin-bottom: 18px; + color: #ffffff; + border-width: 1px; + border-style: solid; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25); + background-color: #c43c35; + background-repeat: repeat-x; + background-image: -khtml-gradient(linear, left top, left bottom, from(#ee5f5b), to(#c43c35)); + background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b), color-stop(100%, #c43c35)); + background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -o-linear-gradient(top, #ee5f5b, #c43c35); + background-image: linear-gradient(top, #ee5f5b, #c43c35); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0); + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + border-color: #c43c35 #c43c35 #882a25; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + + + } + .ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; } + .ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; } + .ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } + .ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } + .ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } + .ui-state-disabled .ui-icon { filter:Alpha(Opacity=35); } /* For IE8 - See #6059 */ + + + /* Icons + ----------------------------------*/ + + /* states and images */ + .ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); } + .ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } + .ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } + .ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png); } + .ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); } + .ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); } + .ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); } + .ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_f6cf3b_256x240.png); } + + /* positioning */ + .ui-icon-carat-1-n { background-position: 0 0; } + .ui-icon-carat-1-ne { background-position: -16px 0; } + .ui-icon-carat-1-e { background-position: -32px 0; } + .ui-icon-carat-1-se { background-position: -48px 0; } + .ui-icon-carat-1-s { background-position: -64px 0; } + .ui-icon-carat-1-sw { background-position: -80px 0; } + .ui-icon-carat-1-w { background-position: -96px 0; } + .ui-icon-carat-1-nw { background-position: -112px 0; } + .ui-icon-carat-2-n-s { background-position: -128px 0; } + .ui-icon-carat-2-e-w { background-position: -144px 0; } + .ui-icon-triangle-1-n { background-position: 0 -16px; } + .ui-icon-triangle-1-ne { background-position: -16px -16px; } + .ui-icon-triangle-1-e { background-position: -32px -16px; } + .ui-icon-triangle-1-se { background-position: -48px -16px; } + .ui-icon-triangle-1-s { background-position: -64px -16px; } + .ui-icon-triangle-1-sw { background-position: -80px -16px; } + .ui-icon-triangle-1-w { background-position: -96px -16px; } + .ui-icon-triangle-1-nw { background-position: -112px -16px; } + .ui-icon-triangle-2-n-s { background-position: -128px -16px; } + .ui-icon-triangle-2-e-w { background-position: -144px -16px; } + .ui-icon-arrow-1-n { background-position: 0 -32px; } + .ui-icon-arrow-1-ne { background-position: -16px -32px; } + .ui-icon-arrow-1-e { background-position: -32px -32px; } + .ui-icon-arrow-1-se { background-position: -48px -32px; } + .ui-icon-arrow-1-s { background-position: -64px -32px; } + .ui-icon-arrow-1-sw { background-position: -80px -32px; } + .ui-icon-arrow-1-w { background-position: -96px -32px; } + .ui-icon-arrow-1-nw { background-position: -112px -32px; } + .ui-icon-arrow-2-n-s { background-position: -128px -32px; } + .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } + .ui-icon-arrow-2-e-w { background-position: -160px -32px; } + .ui-icon-arrow-2-se-nw { background-position: -176px -32px; } + .ui-icon-arrowstop-1-n { background-position: -192px -32px; } + .ui-icon-arrowstop-1-e { background-position: -208px -32px; } + .ui-icon-arrowstop-1-s { background-position: -224px -32px; } + .ui-icon-arrowstop-1-w { background-position: -240px -32px; } + .ui-icon-arrowthick-1-n { background-position: 0 -48px; } + .ui-icon-arrowthick-1-ne { background-position: -16px -48px; } + .ui-icon-arrowthick-1-e { background-position: -32px -48px; } + .ui-icon-arrowthick-1-se { background-position: -48px -48px; } + .ui-icon-arrowthick-1-s { background-position: -64px -48px; } + .ui-icon-arrowthick-1-sw { background-position: -80px -48px; } + .ui-icon-arrowthick-1-w { background-position: -96px -48px; } + .ui-icon-arrowthick-1-nw { background-position: -112px -48px; } + .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } + .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } + .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } + .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } + .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } + .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } + .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } + .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } + .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } + .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } + .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } + .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } + .ui-icon-arrowreturn-1-w { background-position: -64px -64px; } + .ui-icon-arrowreturn-1-n { background-position: -80px -64px; } + .ui-icon-arrowreturn-1-e { background-position: -96px -64px; } + .ui-icon-arrowreturn-1-s { background-position: -112px -64px; } + .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } + .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } + .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } + .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } + .ui-icon-arrow-4 { background-position: 0 -80px; } + .ui-icon-arrow-4-diag { background-position: -16px -80px; } + .ui-icon-extlink { background-position: -32px -80px; } + .ui-icon-newwin { background-position: -48px -80px; } + .ui-icon-refresh { background-position: -64px -80px; } + .ui-icon-shuffle { background-position: -80px -80px; } + .ui-icon-transfer-e-w { background-position: -96px -80px; } + .ui-icon-transferthick-e-w { background-position: -112px -80px; } + .ui-icon-folder-collapsed { background-position: 0 -96px; } + .ui-icon-folder-open { background-position: -16px -96px; } + .ui-icon-document { background-position: -32px -96px; } + .ui-icon-document-b { background-position: -48px -96px; } + .ui-icon-note { background-position: -64px -96px; } + .ui-icon-mail-closed { background-position: -80px -96px; } + .ui-icon-mail-open { background-position: -96px -96px; } + .ui-icon-suitcase { background-position: -112px -96px; } + .ui-icon-comment { background-position: -128px -96px; } + .ui-icon-person { background-position: -144px -96px; } + .ui-icon-print { background-position: -160px -96px; } + .ui-icon-trash { background-position: -176px -96px; } + .ui-icon-locked { background-position: -192px -96px; } + .ui-icon-unlocked { background-position: -208px -96px; } + .ui-icon-bookmark { background-position: -224px -96px; } + .ui-icon-tag { background-position: -240px -96px; } + .ui-icon-home { background-position: 0 -112px; } + .ui-icon-flag { background-position: -16px -112px; } + .ui-icon-calendar { background-position: -32px -112px; } + .ui-icon-cart { background-position: -48px -112px; } + .ui-icon-pencil { background-position: -64px -112px; } + .ui-icon-clock { background-position: -80px -112px; } + .ui-icon-disk { background-position: -96px -112px; } + .ui-icon-calculator { background-position: -112px -112px; } + .ui-icon-zoomin { background-position: -128px -112px; } + .ui-icon-zoomout { background-position: -144px -112px; } + .ui-icon-search { background-position: -160px -112px; } + .ui-icon-wrench { background-position: -176px -112px; } + .ui-icon-gear { background-position: -192px -112px; } + .ui-icon-heart { background-position: -208px -112px; } + .ui-icon-star { background-position: -224px -112px; } + .ui-icon-link { background-position: -240px -112px; } + .ui-icon-cancel { background-position: 0 -128px; } + .ui-icon-plus { background-position: -16px -128px; } + .ui-icon-plusthick { background-position: -32px -128px; } + .ui-icon-minus { background-position: -48px -128px; } + .ui-icon-minusthick { background-position: -64px -128px; } + .ui-icon-close { background-position: -80px -128px; } + .ui-icon-closethick { background-position: -96px -128px; } + .ui-icon-key { background-position: -112px -128px; } + .ui-icon-lightbulb { background-position: -128px -128px; } + .ui-icon-scissors { background-position: -144px -128px; } + .ui-icon-clipboard { background-position: -160px -128px; } + .ui-icon-copy { background-position: -176px -128px; } + .ui-icon-contact { background-position: -192px -128px; } + .ui-icon-image { background-position: -208px -128px; } + .ui-icon-video { background-position: -224px -128px; } + .ui-icon-script { background-position: -240px -128px; } + .ui-icon-alert { background-position: 0 -144px; } + .ui-icon-info { background-position: -16px -144px; } + .ui-icon-notice { background-position: -32px -144px; } + .ui-icon-help { background-position: -48px -144px; } + .ui-icon-check { background-position: -64px -144px; } + .ui-icon-bullet { background-position: -80px -144px; } + .ui-icon-radio-off { background-position: -96px -144px; } + .ui-icon-radio-on { background-position: -112px -144px; } + .ui-icon-pin-w { background-position: -128px -144px; } + .ui-icon-pin-s { background-position: -144px -144px; } + .ui-icon-play { background-position: 0 -160px; } + .ui-icon-pause { background-position: -16px -160px; } + .ui-icon-seek-next { background-position: -32px -160px; } + .ui-icon-seek-prev { background-position: -48px -160px; } + .ui-icon-seek-end { background-position: -64px -160px; } + .ui-icon-seek-start { background-position: -80px -160px; } + /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ + .ui-icon-seek-first { background-position: -80px -160px; } + .ui-icon-stop { background-position: -96px -160px; } + .ui-icon-eject { background-position: -112px -160px; } + .ui-icon-volume-off { background-position: -128px -160px; } + .ui-icon-volume-on { background-position: -144px -160px; } + .ui-icon-power { background-position: 0 -176px; } + .ui-icon-signal-diag { background-position: -16px -176px; } + .ui-icon-signal { background-position: -32px -176px; } + .ui-icon-battery-0 { background-position: -48px -176px; } + .ui-icon-battery-1 { background-position: -64px -176px; } + .ui-icon-battery-2 { background-position: -80px -176px; } + .ui-icon-battery-3 { background-position: -96px -176px; } + .ui-icon-circle-plus { background-position: 0 -192px; } + .ui-icon-circle-minus { background-position: -16px -192px; } + .ui-icon-circle-close { background-position: -32px -192px; } + .ui-icon-circle-triangle-e { background-position: -48px -192px; } + .ui-icon-circle-triangle-s { background-position: -64px -192px; } + .ui-icon-circle-triangle-w { background-position: -80px -192px; } + .ui-icon-circle-triangle-n { background-position: -96px -192px; } + .ui-icon-circle-arrow-e { background-position: -112px -192px; } + .ui-icon-circle-arrow-s { background-position: -128px -192px; } + .ui-icon-circle-arrow-w { background-position: -144px -192px; } + .ui-icon-circle-arrow-n { background-position: -160px -192px; } + .ui-icon-circle-zoomin { background-position: -176px -192px; } + .ui-icon-circle-zoomout { background-position: -192px -192px; } + .ui-icon-circle-check { background-position: -208px -192px; } + .ui-icon-circlesmall-plus { background-position: 0 -208px; } + .ui-icon-circlesmall-minus { background-position: -16px -208px; } + .ui-icon-circlesmall-close { background-position: -32px -208px; } + .ui-icon-squaresmall-plus { background-position: -48px -208px; } + .ui-icon-squaresmall-minus { background-position: -64px -208px; } + .ui-icon-squaresmall-close { background-position: -80px -208px; } + .ui-icon-grip-dotted-vertical { background-position: 0 -224px; } + .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } + .ui-icon-grip-solid-vertical { background-position: -32px -224px; } + .ui-icon-grip-solid-horizontal { background-position: -48px -224px; } + .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } + .ui-icon-grip-diagonal-se { background-position: -80px -224px; } + + + /* Misc visuals + ----------------------------------*/ + + /* Corner radius */ + .ui-corner-all, + .ui-corner-top, + .ui-corner-left, + .ui-corner-tl { + -moz-border-radius-topleft: 4px; + -webkit-border-top-left-radius: 4px; + -khtml-border-top-left-radius: 4px; + border-top-left-radius: 4px; + } + .ui-corner-all, + .ui-corner-top, + .ui-corner-right, + .ui-corner-tr { + -moz-border-radius-topright: 4px; + -webkit-border-top-right-radius: 4px; + -khtml-border-top-right-radius: 4px; + border-top-right-radius: 4px; + } + .ui-corner-all, + .ui-corner-bottom, + .ui-corner-left, + .ui-corner-bl { + -moz-border-radius-bottomleft: 4px; + -webkit-border-bottom-left-radius: 4px; + -khtml-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + } + .ui-corner-all, + .ui-corner-bottom, + .ui-corner-right, + .ui-corner-br { + -moz-border-radius-bottomright: 4px; + -webkit-border-bottom-right-radius: 4px; + -khtml-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + } + + + /* Overlays */ + + .ui-widget-overlay { + background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; + opacity: .30; + filter:Alpha(Opacity=30); + } + + .ui-widget-shadow { + margin: -8px 0 0 -8px; + padding: 8px; + background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; + opacity: .30;filter:Alpha(Opacity=30); + -moz-border-radius: 8px; + -khtml-border-radius: 8px; + -webkit-border-radius: 8px; + border-radius: 8px; + } + + /* + * jQuery UI Accordion 1.10.0 + * + * Copyright 2013, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://jqueryui.com/accordion/ + */ + + /* IE/Win - Fix animation bug - #4615 */ + + .ui-accordion { + width: 100%; + } + .ui-accordion .ui-accordion-header { + cursor: pointer; + position: relative; + margin-top: 1px; + zoom: 1; + font-weight:bold; + } + .ui-accordion .ui-accordion-li-fix { + display: inline; + } + .ui-accordion .ui-accordion-header-active { + border-bottom: 0 !important; + } + .ui-accordion .ui-accordion-header a { + display: block; + font-size: 1em; + padding: .5em .5em .5em 1.7em; + } + .ui-accordion-icons .ui-accordion-header a { + padding-left: 2.2em; + } + .ui-accordion .ui-accordion-header .ui-icon { + position: absolute; + left: .5em; + top: 50%; + margin-top: -8px; + } + .ui-accordion .ui-accordion-content { + padding: 1em 2.2em; + border-top: 0; + margin-top: -2px; + position: relative; + top: 1px; + margin-bottom: 2px; + overflow: auto; + display: none; + zoom: 1; + } + .ui-accordion .ui-accordion-content-active { + display: block; + } + + + /* + * jQuery UI Button 1.10.0 + * + * Copyright 2013, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Button#theming + */ + + .ui-button { + + cursor: pointer; + display: inline-block; + background-color: #e6e6e6; + background-repeat: no-repeat; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), color-stop(25%, #ffffff), to(#e6e6e6)); + background-image: -webkit-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); + background-image: -moz-linear-gradient(top, #ffffff, #ffffff 25%, #e6e6e6); + background-image: -ms-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); + background-image: -o-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); + background-image: linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0); + padding: 5px 14px 6px; + margin: 0; + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); + color: #333; + font-size: 13px; + line-height: normal; + border: 1px solid #ccc; + border-bottom-color: #bbb; + + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -webkit-transition: 0.1s linear background-image; + -moz-transition: 0.1s linear background-image; + -ms-transition: 0.1s linear background-image; + -o-transition: 0.1s linear background-image; + transition: 0.1s linear background-image; + overflow: visible; + } /* the overflow property removes extra width in IE */ + + .ui-button-primary { + color: #ffffff; + background-color: #0064cd; + background-repeat: repeat-x; + background-image: -khtml-gradient(linear, left top, left bottom, from(#049cdb), to(#0064cd)); + background-image: -moz-linear-gradient(top, #049cdb, #0064cd); + background-image: -ms-linear-gradient(top, #049cdb, #0064cd); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #049cdb), color-stop(100%, #0064cd)); + background-image: -webkit-linear-gradient(top, #049cdb, #0064cd); + background-image: -o-linear-gradient(top, #049cdb, #0064cd); + background-image: linear-gradient(top, #049cdb, #0064cd); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#049cdb', endColorstr='#0064cd', GradientType=0); + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + border-color: #0064cd #0064cd #003f81; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + } + + + .ui-button-success{ + color:#ffffff; + background-color: #57a957; + background-repeat: repeat-x; + background-image: -khtml-gradient(linear, left top, left bottom, from(#62c462), to(#57a957)); + background-image: -moz-linear-gradient(top, #62c462, #57a957); + background-image: -ms-linear-gradient(top, #62c462, #57a957); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #62c462), color-stop(100%, #57a957)); + background-image: -webkit-linear-gradient(top, #62c462, #57a957); + background-image: -o-linear-gradient(top, #62c462, #57a957); + background-image: linear-gradient(top, #62c462, #57a957); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0); + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + border-color: #57a957 #57a957 #3d773d; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + } + + .ui-button-error{ + color:#ffffff; + background-color: #c43c35; + background-repeat: repeat-x; + background-image: -khtml-gradient(linear, left top, left bottom, from(#ee5f5b), to(#c43c35)); + background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b), color-stop(100%, #c43c35)); + background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -o-linear-gradient(top, #ee5f5b, #c43c35); + background-image: linear-gradient(top, #ee5f5b, #c43c35); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0); + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + border-color: #c43c35 #c43c35 #882a25; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + } + + .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */ + button.ui-button-icon-only { } /* button elements seem to need a little more width */ + .ui-button-icons-only { width: 3.4em; } + button.ui-button-icons-only { width: 3.7em; } + + /*button text element */ + + .ui-button .ui-button-text { display: block; } + .ui-button-text-only .ui-button-text { } + .ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; /*tempfix*/ display:none;} + .ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } + .ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; } + .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } + /* no icon support for input elements, provide padding by default */ + /* input.ui-button { padding: .4em 1em; } */ + + /*button icon element(s) */ + .ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { top: 50%; margin-top:-3px; margin-bottom:3px; } + .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } + .ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; } + .ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } + .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } + + /*button sets*/ + + + .ui-buttonset { margin-right: 7px; } + .ui-buttonset .ui-state-active { + color: #ffffff; + background-color: #0064cd; + background-repeat: repeat-x; + background-image: -khtml-gradient(linear, left top, left bottom, from(#049cdb), to(#0064cd)); + background-image: -moz-linear-gradient(top, #049cdb, #0064cd); + background-image: -ms-linear-gradient(top, #049cdb, #0064cd); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #049cdb), color-stop(100%, #0064cd)); + background-image: -webkit-linear-gradient(top, #049cdb, #0064cd); + background-image: -o-linear-gradient(top, #049cdb, #0064cd); + background-image: linear-gradient(top, #049cdb, #0064cd); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#049cdb', endColorstr='#0064cd', GradientType=0); + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + border-color: #0064cd #0064cd #003f81; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + } + .ui-buttonset .ui-button { margin-left: 0; margin-right: 0; } + + /* workarounds */ + button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ + + /* + * jQuery UI Datepicker 1.9.0 + * + * Copyright 2012-10-11, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://jqueryui.com/datepicker/ + */ + .ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; } + .ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; border:0px; font-weight: bold; width: 100%; padding: 4px 0; background-color: #f5f5f5; color: #808080; } + .ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; } + + .ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { /*top: 1px;*/ } + .ui-datepicker .ui-datepicker-prev { left:2px; } + .ui-datepicker .ui-datepicker-next { right:2px; } + + .ui-datepicker .ui-datepicker-prev-hover { /*left:1px;*/ } + .ui-datepicker .ui-datepicker-next-hover { /*right:1px;*/ } + + .ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } + .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } + .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; } + .ui-datepicker select.ui-datepicker-month-year {width: 100%;} + .ui-datepicker select.ui-datepicker-month, + .ui-datepicker select.ui-datepicker-year { width: 49%;} + .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; } + .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } + .ui-datepicker td { border: 0; padding: 1px; } + .ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } + .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } + .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } + .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } + + /* with multiple calendars */ + .ui-datepicker.ui-datepicker-multi { width:auto; } + .ui-datepicker-multi .ui-datepicker-group { float:left; } + .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } + .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } + .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } + .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } + .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } + .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } + .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } + .ui-datepicker-row-break { clear:both; width:100%; font-size:0em; } + + /* RTL support */ + .ui-datepicker-rtl { direction: rtl; } + .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } + .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } + .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } + .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } + .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } + .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } + .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } + .ui-datepicker-rtl .ui-datepicker-group { float:right; } + .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } + .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } + + /* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ + .ui-datepicker-cover { + display: none; /*sorry for IE5*/ + display: block; /*sorry for IE5*/ + position: absolute; /*must have*/ + z-index: -1; /*must have*/ + filter: mask(); /*must have*/ + top: -4px; /*must have*/ + left: -4px; /*must have*/ + width: 200px; /*must have*/ + height: 200px; /*must have*/ + } + + .ui-datepicker th{ + font-weight: bold; + color: gray; + } + + .ui-datepicker-today a:hover{ + background-color: #808080; + color: #ffffff; + + } + .ui-datepicker-today a{ + background-color: #BFBFBF; + cursor: pointer; + padding: 0 4px; + margin-bottom:0px; + + } + + + .ui-datepicker td a{ + margin-bottom:0px; + border:0px; + } + + .ui-datepicker td:hover{ + color: #ffffff; + } + + .ui-datepicker td .ui-state-default { + border:0px; + background:none; + margin-bottom:0px; + padding:5px; + color:gray; + text-align: center; + filter:none; + } + + + .ui-datepicker td .ui-state-active{ + background:#BFBFBF; + margin-bottom:0px; + font-size:normal; + text-shadow: 0px; + color: #ffffff; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + } + + .ui-datepicker td .ui-state-hover { + color: #ffffff; + background: #0064cd; + background-color: #0064cd; + background-repeat: repeat-x; + background-image: -khtml-gradient(linear, left top, left bottom, from(#049cdb), to(#0064cd)); + background-image: -moz-linear-gradient(top, #049cdb, #0064cd); + background-image: -ms-linear-gradient(top, #049cdb, #0064cd); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #049cdb), color-stop(100%, #0064cd)); + background-image: -webkit-linear-gradient(top, #049cdb, #0064cd); + background-image: -o-linear-gradient(top, #049cdb, #0064cd); + background-image: linear-gradient(top, #049cdb, #0064cd); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#049cdb', endColorstr='#0064cd', GradientType=0); + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + border-color: #0064cd #0064cd #003f81; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + -khtml-border-radius: 4px; + border-radius: 4px; + } + + .ui-widget-content { + border: 1px solid #dfdfdf; + } + .ui-datepicker table { background: #fff; } + + .placeholder { + background:#f9f9f9 !important; + border: 1px dashed #bbb !important; + } + +} + +.wp-customizer { + #ui-datepicker-div { + z-index: 999999 !important; + } +} \ No newline at end of file diff --git a/redux/ReduxCore/assets/css/vendor/qtip/jquery.qtip.css b/redux/ReduxCore/assets/css/vendor/qtip/jquery.qtip.css new file mode 100644 index 0000000..31f1c90 --- /dev/null +++ b/redux/ReduxCore/assets/css/vendor/qtip/jquery.qtip.css @@ -0,0 +1 @@ +.qtip{position:absolute;left:-28000px;top:-28000px;display:none;max-width:280px;min-width:50px;font-size:10.5px;line-height:12px;direction:ltr;box-shadow:none;padding:0}.qtip-content{position:relative;padding:5px 9px;overflow:hidden;text-align:left;word-wrap:break-word}.qtip-titlebar{position:relative;padding:5px 35px 5px 10px;overflow:hidden;border-width:0 0 1px;font-weight:bold}.qtip-titlebar+.qtip-content{border-top-width:0 !important}.qtip-close{position:absolute;right:-9px;top:-9px;z-index:11;cursor:pointer;outline:medium none;border:1px solid transparent}.qtip-titlebar .qtip-close{right:4px;top:50%;margin-top:-9px}* html .qtip-titlebar .qtip-close{top:16px}.qtip-titlebar .ui-icon,.qtip-icon .ui-icon{display:block;text-indent:-1000em;direction:ltr}.qtip-icon,.qtip-icon .ui-icon{-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;text-decoration:none}.qtip-icon .ui-icon{width:18px;height:14px;line-height:14px;text-align:center;text-indent:0;font:normal bold 10px/13px Tahoma,sans-serif;color:inherit;background:transparent none no-repeat -100em -100em}.qtip-default{border:1px solid #f1d031;background-color:#ffffa3;color:#555}.qtip-default .qtip-titlebar{background-color:#ffef93}.qtip-default .qtip-icon{border-color:#CCC;background:#f1f1f1;color:#777}.qtip-default .qtip-titlebar .qtip-close{border-color:#AAA;color:#111}/*! Light tooltip style */.qtip-light{background-color:white;border-color:#e2e2e2;color:#454545}.qtip-light .qtip-titlebar{background-color:#f1f1f1}/*! Dark tooltip style */.qtip-dark{background-color:#505050;border-color:#303030;color:#f3f3f3}.qtip-dark .qtip-titlebar{background-color:#404040}.qtip-dark .qtip-icon{border-color:#444}.qtip-dark .qtip-titlebar .ui-state-hover{border-color:#303030}/*! Cream tooltip style */.qtip-cream{background-color:#fbf7aa;border-color:#f9e98e;color:#a27d35}.qtip-cream .qtip-titlebar{background-color:#f0de7d}.qtip-cream .qtip-close .qtip-icon{background-position:-82px 0}/*! Red tooltip style */.qtip-red{background-color:#f78b83;border-color:#d95252;color:#912323}.qtip-red .qtip-titlebar{background-color:#f06d65}.qtip-red .qtip-close .qtip-icon{background-position:-102px 0}.qtip-red .qtip-icon{border-color:#d95252}.qtip-red .qtip-titlebar .ui-state-hover{border-color:#d95252}/*! Green tooltip style */.qtip-green{background-color:#caed9e;border-color:#90d93f;color:#3f6219}.qtip-green .qtip-titlebar{background-color:#b0de78}.qtip-green .qtip-close .qtip-icon{background-position:-42px 0}/*! Blue tooltip style */.qtip-blue{background-color:#e5f6fe;border-color:#add9ed;color:#5e99bd}.qtip-blue .qtip-titlebar{background-color:#d0e9f5}.qtip-blue .qtip-close .qtip-icon{background-position:-2px 0}.qtip-shadow{-webkit-box-shadow:1px 1px 3px 1px rgba(0,0,0,0.15);-moz-box-shadow:1px 1px 3px 1px rgba(0,0,0,0.15);box-shadow:1px 1px 3px 1px rgba(0,0,0,0.15)}.qtip-rounded,.qtip-tipsy,.qtip-bootstrap{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.qtip-rounded .qtip-titlebar{-moz-border-radius:4px 4px 0 0;-webkit-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.qtip-youtube{-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-webkit-box-shadow:0 0 3px #333;-moz-box-shadow:0 0 3px #333;box-shadow:0 0 3px #333;color:white;border:0 solid transparent;background:#4a4a4a;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0,#4a4a4a),color-stop(100%,black));background-image:-webkit-linear-gradient(top,#4a4a4a 0,black 100%);background-image:-moz-linear-gradient(top,#4a4a4a 0,black 100%);background-image:-ms-linear-gradient(top,#4a4a4a 0,black 100%);background-image:-o-linear-gradient(top,#4a4a4a 0,black 100%)}.qtip-youtube .qtip-titlebar{background-color:#4a4a4a;background-color:transparent}.qtip-youtube .qtip-content{padding:.75em;font:12px arial,sans-serif;filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#4a4a4a,EndColorStr=#000000);-ms-filter:"progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#4a4a4a,EndColorStr=#000000);"}.qtip-youtube .qtip-icon{border-color:#222}.qtip-youtube .qtip-titlebar .ui-state-hover{border-color:#303030}.qtip-jtools{background:#232323;background:rgba(0,0,0,0.7);background-image:-webkit-gradient(linear,left top,left bottom,from(#717171),to(#232323));background-image:-moz-linear-gradient(top,#717171,#232323);background-image:-webkit-linear-gradient(top,#717171,#232323);background-image:-ms-linear-gradient(top,#717171,#232323);background-image:-o-linear-gradient(top,#717171,#232323);border:2px solid #ddd;border:2px solid #f1f1f1;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-webkit-box-shadow:0 0 12px #333;-moz-box-shadow:0 0 12px #333;box-shadow:0 0 12px #333}.qtip-jtools .qtip-titlebar{background-color:transparent;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171,endColorstr=#4A4A4A);-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171,endColorstr=#4A4A4A)"}.qtip-jtools .qtip-content{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A,endColorstr=#232323);-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A,endColorstr=#232323)"}.qtip-jtools .qtip-titlebar,.qtip-jtools .qtip-content{background:transparent;color:white;border:0 dashed transparent}.qtip-jtools .qtip-icon{border-color:#555}.qtip-jtools .qtip-titlebar .ui-state-hover{border-color:#333}.qtip-cluetip{-webkit-box-shadow:4px 4px 5px rgba(0,0,0,0.4);-moz-box-shadow:4px 4px 5px rgba(0,0,0,0.4);box-shadow:4px 4px 5px rgba(0,0,0,0.4);background-color:#d9d9c2;color:#111;border:0 dashed transparent}.qtip-cluetip .qtip-titlebar{background-color:#87876a;color:white;border:0 dashed transparent}.qtip-cluetip .qtip-icon{border-color:#808064}.qtip-cluetip .qtip-titlebar .ui-state-hover{border-color:#696952;color:#696952}.qtip-tipsy{background:black;background:rgba(0,0,0,0.87);color:white;border:0 solid transparent;font-size:11px;font-family:'Lucida Grande',sans-serif;font-weight:bold;line-height:16px;text-shadow:0 1px black}.qtip-tipsy .qtip-titlebar{padding:6px 35px 0 10px;background-color:transparent}.qtip-tipsy .qtip-content{padding:6px 10px}.qtip-tipsy .qtip-icon{border-color:#222;text-shadow:none}.qtip-tipsy .qtip-titlebar .ui-state-hover{border-color:#303030}.qtip-tipped{border:3px solid #959fa9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;background-color:#f9f9f9;color:#454545;font-weight:normal;font-family:serif}.qtip-tipped .qtip-titlebar{border-bottom-width:0;color:white;background:#3a79b8;background-image:-webkit-gradient(linear,left top,left bottom,from(#3a79b8),to(#2e629d));background-image:-webkit-linear-gradient(top,#3a79b8,#2e629d);background-image:-moz-linear-gradient(top,#3a79b8,#2e629d);background-image:-ms-linear-gradient(top,#3a79b8,#2e629d);background-image:-o-linear-gradient(top,#3a79b8,#2e629d);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8,endColorstr=#2E629D);-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8,endColorstr=#2E629D)"}.qtip-tipped .qtip-icon{border:2px solid #285589;background:#285589}.qtip-tipped .qtip-icon .ui-icon{background-color:#fbfbfb;color:#555}.qtip-bootstrap{font-size:14px;line-height:20px;color:#333;padding:1px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.qtip-bootstrap .qtip-titlebar{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.qtip-bootstrap .qtip-titlebar .qtip-close{right:11px;top:45%;border-style:none}.qtip-bootstrap .qtip-content{padding:9px 14px}.qtip-bootstrap .qtip-icon{background:transparent}.qtip-bootstrap .qtip-icon .ui-icon{width:auto;height:auto;float:right;font-size:20px;font-weight:bold;line-height:18px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.qtip-bootstrap .qtip-icon .ui-icon:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}.qtip:not(.ie9haxors) div.qtip-content,.qtip:not(.ie9haxors) div.qtip-titlebar{filter:none;-ms-filter:none}.qtip .qtip-tip{margin:0 auto;overflow:hidden;z-index:10}x:-o-prefocus,.qtip .qtip-tip{visibility:hidden}.qtip .qtip-tip,.qtip .qtip-tip .qtip-vml,.qtip .qtip-tip canvas{position:absolute;color:#123456;background:transparent;border:0 dashed transparent}.qtip .qtip-tip canvas{top:0;left:0}.qtip .qtip-tip .qtip-vml{behavior:url(#default#VML);display:inline-block;visibility:visible}#qtip-overlay{position:fixed;left:0;top:0;width:100%;height:100%}#qtip-overlay.blurs{cursor:pointer}#qtip-overlay div{position:absolute;left:0;top:0;width:100%;height:100%;background-color:black;opacity:.7;filter:alpha(opacity=70);-ms-filter:"alpha(opacity=70)"}.qtipmodal-ie6fix{position:absolute !important} \ No newline at end of file diff --git a/redux/ReduxCore/assets/css/vendor/qtip/jquery.qtip.css.map b/redux/ReduxCore/assets/css/vendor/qtip/jquery.qtip.css.map new file mode 100644 index 0000000..80b8611 --- /dev/null +++ b/redux/ReduxCore/assets/css/vendor/qtip/jquery.qtip.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "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", +"sources": ["jquery.qtip.scss"], +"names": [], +"file": "jquery.qtip.css" +} \ No newline at end of file diff --git a/redux/ReduxCore/assets/css/vendor/qtip/jquery.qtip.min.css b/redux/ReduxCore/assets/css/vendor/qtip/jquery.qtip.min.css new file mode 100644 index 0000000..27b9729 --- /dev/null +++ b/redux/ReduxCore/assets/css/vendor/qtip/jquery.qtip.min.css @@ -0,0 +1,3 @@ +/* qTip2 v2.2.1 | Plugins: tips modal viewport svg imagemap ie6 | Styles: core basic css3 | qtip2.com | Licensed MIT | Sat Sep 06 2014 23:12:07 */ + +.qtip{position:absolute;left:-28000px;top:-28000px;display:none;max-width:280px;min-width:50px;font-size:10.5px;line-height:12px;direction:ltr;box-shadow:none;padding:0}.qtip-content{position:relative;padding:5px 9px;overflow:hidden;text-align:left;word-wrap:break-word}.qtip-titlebar{position:relative;padding:5px 35px 5px 10px;overflow:hidden;border-width:0 0 1px;font-weight:700}.qtip-titlebar+.qtip-content{border-top-width:0!important}.qtip-close{position:absolute;right:-9px;top:-9px;z-index:11;cursor:pointer;outline:0;border:1px solid transparent}.qtip-titlebar .qtip-close{right:4px;top:50%;margin-top:-9px}* html .qtip-titlebar .qtip-close{top:16px}.qtip-icon .ui-icon,.qtip-titlebar .ui-icon{display:block;text-indent:-1000em;direction:ltr}.qtip-icon,.qtip-icon .ui-icon{-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;text-decoration:none}.qtip-icon .ui-icon{width:18px;height:14px;line-height:14px;text-align:center;text-indent:0;font:400 bold 10px/13px Tahoma,sans-serif;color:inherit;background:-100em -100em no-repeat}.qtip-default{border:1px solid #F1D031;background-color:#FFFFA3;color:#555}.qtip-default .qtip-titlebar{background-color:#FFEF93}.qtip-default .qtip-icon{border-color:#CCC;background:#F1F1F1;color:#777}.qtip-default .qtip-titlebar .qtip-close{border-color:#AAA;color:#111}.qtip-light{background-color:#fff;border-color:#E2E2E2;color:#454545}.qtip-light .qtip-titlebar{background-color:#f1f1f1}.qtip-dark{background-color:#505050;border-color:#303030;color:#f3f3f3}.qtip-dark .qtip-titlebar{background-color:#404040}.qtip-dark .qtip-icon{border-color:#444}.qtip-dark .qtip-titlebar .ui-state-hover{border-color:#303030}.qtip-cream{background-color:#FBF7AA;border-color:#F9E98E;color:#A27D35}.qtip-cream .qtip-titlebar{background-color:#F0DE7D}.qtip-cream .qtip-close .qtip-icon{background-position:-82px 0}.qtip-red{background-color:#F78B83;border-color:#D95252;color:#912323}.qtip-red .qtip-titlebar{background-color:#F06D65}.qtip-red .qtip-close .qtip-icon{background-position:-102px 0}.qtip-red .qtip-icon,.qtip-red .qtip-titlebar .ui-state-hover{border-color:#D95252}.qtip-green{background-color:#CAED9E;border-color:#90D93F;color:#3F6219}.qtip-green .qtip-titlebar{background-color:#B0DE78}.qtip-green .qtip-close .qtip-icon{background-position:-42px 0}.qtip-blue{background-color:#E5F6FE;border-color:#ADD9ED;color:#5E99BD}.qtip-blue .qtip-titlebar{background-color:#D0E9F5}.qtip-blue .qtip-close .qtip-icon{background-position:-2px 0}.qtip-shadow{-webkit-box-shadow:1px 1px 3px 1px rgba(0,0,0,.15);-moz-box-shadow:1px 1px 3px 1px rgba(0,0,0,.15);box-shadow:1px 1px 3px 1px rgba(0,0,0,.15)}.qtip-bootstrap,.qtip-rounded,.qtip-tipsy{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.qtip-rounded .qtip-titlebar{-moz-border-radius:4px 4px 0 0;-webkit-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.qtip-youtube{-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-webkit-box-shadow:0 0 3px #333;-moz-box-shadow:0 0 3px #333;box-shadow:0 0 3px #333;color:#fff;border:0 solid transparent;background:#4A4A4A;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0,#4A4A4A),color-stop(100%,#000));background-image:-webkit-linear-gradient(top,#4A4A4A 0,#000 100%);background-image:-moz-linear-gradient(top,#4A4A4A 0,#000 100%);background-image:-ms-linear-gradient(top,#4A4A4A 0,#000 100%);background-image:-o-linear-gradient(top,#4A4A4A 0,#000 100%)}.qtip-youtube .qtip-titlebar{background-color:transparent}.qtip-youtube .qtip-content{padding:.75em;font:12px arial,sans-serif;filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#4a4a4a, EndColorStr=#000000);-ms-filter:"progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#4a4a4a,EndColorStr=#000000);"}.qtip-youtube .qtip-icon{border-color:#222}.qtip-youtube .qtip-titlebar .ui-state-hover{border-color:#303030}.qtip-jtools{background:#232323;background:rgba(0,0,0,.7);background-image:-webkit-gradient(linear,left top,left bottom,from(#717171),to(#232323));background-image:-moz-linear-gradient(top,#717171,#232323);background-image:-webkit-linear-gradient(top,#717171,#232323);background-image:-ms-linear-gradient(top,#717171,#232323);background-image:-o-linear-gradient(top,#717171,#232323);border:2px solid #ddd;border:2px solid rgba(241,241,241,1);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-webkit-box-shadow:0 0 12px #333;-moz-box-shadow:0 0 12px #333;box-shadow:0 0 12px #333}.qtip-jtools .qtip-titlebar{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171, endColorstr=#4A4A4A);-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171,endColorstr=#4A4A4A)"}.qtip-jtools .qtip-content{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A, endColorstr=#232323);-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A,endColorstr=#232323)"}.qtip-jtools .qtip-content,.qtip-jtools .qtip-titlebar{background:0 0;color:#fff;border:0 dashed transparent}.qtip-jtools .qtip-icon{border-color:#555}.qtip-jtools .qtip-titlebar .ui-state-hover{border-color:#333}.qtip-cluetip{-webkit-box-shadow:4px 4px 5px rgba(0,0,0,.4);-moz-box-shadow:4px 4px 5px rgba(0,0,0,.4);box-shadow:4px 4px 5px rgba(0,0,0,.4);background-color:#D9D9C2;color:#111;border:0 dashed transparent}.qtip-cluetip .qtip-titlebar{background-color:#87876A;color:#fff;border:0 dashed transparent}.qtip-cluetip .qtip-icon{border-color:#808064}.qtip-cluetip .qtip-titlebar .ui-state-hover{border-color:#696952;color:#696952}.qtip-tipsy{background:#000;background:rgba(0,0,0,.87);color:#fff;border:0 solid transparent;font-size:11px;font-family:'Lucida Grande',sans-serif;font-weight:700;line-height:16px;text-shadow:0 1px #000}.qtip-tipsy .qtip-titlebar{padding:6px 35px 0 10px;background-color:transparent}.qtip-tipsy .qtip-content{padding:6px 10px}.qtip-tipsy .qtip-icon{border-color:#222;text-shadow:none}.qtip-tipsy .qtip-titlebar .ui-state-hover{border-color:#303030}.qtip-tipped{border:3px solid #959FA9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;background-color:#F9F9F9;color:#454545;font-weight:400;font-family:serif}.qtip-tipped .qtip-titlebar{border-bottom-width:0;color:#fff;background:#3A79B8;background-image:-webkit-gradient(linear,left top,left bottom,from(#3A79B8),to(#2E629D));background-image:-webkit-linear-gradient(top,#3A79B8,#2E629D);background-image:-moz-linear-gradient(top,#3A79B8,#2E629D);background-image:-ms-linear-gradient(top,#3A79B8,#2E629D);background-image:-o-linear-gradient(top,#3A79B8,#2E629D);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8, endColorstr=#2E629D);-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8,endColorstr=#2E629D)"}.qtip-tipped .qtip-icon{border:2px solid #285589;background:#285589}.qtip-tipped .qtip-icon .ui-icon{background-color:#FBFBFB;color:#555}.qtip-bootstrap{font-size:14px;line-height:20px;color:#333;padding:1px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.qtip-bootstrap .qtip-titlebar{padding:8px 14px;margin:0;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.qtip-bootstrap .qtip-titlebar .qtip-close{right:11px;top:45%;border-style:none}.qtip-bootstrap .qtip-content{padding:9px 14px}.qtip-bootstrap .qtip-icon{background:0 0}.qtip-bootstrap .qtip-icon .ui-icon{width:auto;height:auto;float:right;font-size:20px;font-weight:700;line-height:18px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.qtip-bootstrap .qtip-icon .ui-icon:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}.qtip:not(.ie9haxors) div.qtip-content,.qtip:not(.ie9haxors) div.qtip-titlebar{filter:none;-ms-filter:none}.qtip .qtip-tip{margin:0 auto;overflow:hidden;z-index:10}.qtip .qtip-tip,x:-o-prefocus{visibility:hidden}.qtip .qtip-tip,.qtip .qtip-tip .qtip-vml,.qtip .qtip-tip canvas{position:absolute;color:#123456;background:0 0;border:0 dashed transparent}.qtip .qtip-tip canvas{top:0;left:0}.qtip .qtip-tip .qtip-vml{behavior:url(#default#VML);display:inline-block;visibility:visible}#qtip-overlay{position:fixed;left:0;top:0;width:100%;height:100%}#qtip-overlay.blurs{cursor:pointer}#qtip-overlay div{position:absolute;left:0;top:0;width:100%;height:100%;background-color:#000;opacity:.7;filter:alpha(opacity=70);-ms-filter:"alpha(Opacity=70)"}.qtipmodal-ie6fix{position:absolute!important} \ No newline at end of file diff --git a/redux/ReduxCore/assets/css/vendor/qtip/jquery.qtip.scss b/redux/ReduxCore/assets/css/vendor/qtip/jquery.qtip.scss new file mode 100644 index 0000000..b789a47 --- /dev/null +++ b/redux/ReduxCore/assets/css/vendor/qtip/jquery.qtip.scss @@ -0,0 +1,617 @@ +/* + * qTip2 - Pretty powerful tooltips - v2.2.1 + * http://qtip2.com + * + * Copyright (c) 2014 + * Released under the MIT licenses + * http://jquery.org/license + * + * Date: Sat Sep 6 2014 11:12 GMT+0100+0100 + * Plugins: tips modal viewport svg imagemap ie6 + * Styles: core basic css3 + */ +.qtip{ + position: absolute; + left: -28000px; + top: -28000px; + display: none; + + max-width: 280px; + min-width: 50px; + + font-size: 10.5px; + line-height: 12px; + + direction: ltr; + + box-shadow: none; + padding: 0; +} + +.qtip-content{ + position: relative; + padding: 5px 9px; + overflow: hidden; + + text-align: left; + word-wrap: break-word; +} + +.qtip-titlebar{ + position: relative; + padding: 5px 35px 5px 10px; + overflow: hidden; + + border-width: 0 0 1px; + font-weight: bold; +} + +.qtip-titlebar + .qtip-content{ border-top-width: 0 !important; } + +/* Default close button class */ +.qtip-close{ + position: absolute; + right: -9px; top: -9px; + z-index: 11; /* Overlap .qtip-tip */ + + cursor: pointer; + outline: medium none; + + border: 1px solid transparent; +} + +.qtip-titlebar .qtip-close{ + right: 4px; top: 50%; + margin-top: -9px; +} + +* html .qtip-titlebar .qtip-close{ top: 16px; } /* IE fix */ + +.qtip-titlebar .ui-icon, +.qtip-icon .ui-icon{ + display: block; + text-indent: -1000em; + direction: ltr; +} + +.qtip-icon, .qtip-icon .ui-icon{ + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + text-decoration: none; +} + +.qtip-icon .ui-icon{ + width: 18px; + height: 14px; + + line-height: 14px; + text-align: center; + text-indent: 0; + font: normal bold 10px/13px Tahoma,sans-serif; + + color: inherit; + background: transparent none no-repeat -100em -100em; +} + +/* Applied to 'focused' tooltips e.g. most recently displayed/interacted with */ +.qtip-focus{} + +/* Applied on hover of tooltips i.e. added/removed on mouseenter/mouseleave respectively */ +.qtip-hover{} + +/* Default tooltip style */ +.qtip-default{ + border: 1px solid #F1D031; + + background-color: #FFFFA3; + color: #555; +} + +.qtip-default .qtip-titlebar{ + background-color: #FFEF93; +} + +.qtip-default .qtip-icon{ + border-color: #CCC; + background: #F1F1F1; + color: #777; +} + +.qtip-default .qtip-titlebar .qtip-close{ + border-color: #AAA; + color: #111; +} + + +/*! Light tooltip style */ +.qtip-light{ + background-color: white; + border-color: #E2E2E2; + color: #454545; +} + +.qtip-light .qtip-titlebar{ + background-color: #f1f1f1; +} + + +/*! Dark tooltip style */ +.qtip-dark{ + background-color: #505050; + border-color: #303030; + color: #f3f3f3; +} + +.qtip-dark .qtip-titlebar{ + background-color: #404040; +} + +.qtip-dark .qtip-icon{ + border-color: #444; +} + +.qtip-dark .qtip-titlebar .ui-state-hover{ + border-color: #303030; +} + + +/*! Cream tooltip style */ +.qtip-cream{ + background-color: #FBF7AA; + border-color: #F9E98E; + color: #A27D35; +} + +.qtip-cream .qtip-titlebar{ + background-color: #F0DE7D; +} + +.qtip-cream .qtip-close .qtip-icon{ + background-position: -82px 0; +} + + +/*! Red tooltip style */ +.qtip-red{ + background-color: #F78B83; + border-color: #D95252; + color: #912323; +} + +.qtip-red .qtip-titlebar{ + background-color: #F06D65; +} + +.qtip-red .qtip-close .qtip-icon{ + background-position: -102px 0; +} + +.qtip-red .qtip-icon{ + border-color: #D95252; +} + +.qtip-red .qtip-titlebar .ui-state-hover{ + border-color: #D95252; +} + + +/*! Green tooltip style */ +.qtip-green{ + background-color: #CAED9E; + border-color: #90D93F; + color: #3F6219; +} + +.qtip-green .qtip-titlebar{ + background-color: #B0DE78; +} + +.qtip-green .qtip-close .qtip-icon{ + background-position: -42px 0; +} + + +/*! Blue tooltip style */ +.qtip-blue{ + background-color: #E5F6FE; + border-color: #ADD9ED; + color: #5E99BD; +} + +.qtip-blue .qtip-titlebar{ + background-color: #D0E9F5; +} + +.qtip-blue .qtip-close .qtip-icon{ + background-position: -2px 0; +} + + +.qtip-shadow{ + -webkit-box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15); + -moz-box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15); + box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15); +} + +/* Add rounded corners to your tooltips in: FF3+, Chrome 2+, Opera 10.6+, IE9+, Safari 2+ */ +.qtip-rounded, +.qtip-tipsy, +.qtip-bootstrap{ + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + border-radius: 5px; +} + +.qtip-rounded .qtip-titlebar{ + -moz-border-radius: 4px 4px 0 0; + -webkit-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} + +/* Youtube tooltip style */ +.qtip-youtube{ + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border-radius: 2px; + + -webkit-box-shadow: 0 0 3px #333; + -moz-box-shadow: 0 0 3px #333; + box-shadow: 0 0 3px #333; + + color: white; + border: 0 solid transparent; + + background: #4A4A4A; + background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0,#4A4A4A),color-stop(100%,black)); + background-image: -webkit-linear-gradient(top,#4A4A4A 0,black 100%); + background-image: -moz-linear-gradient(top,#4A4A4A 0,black 100%); + background-image: -ms-linear-gradient(top,#4A4A4A 0,black 100%); + background-image: -o-linear-gradient(top,#4A4A4A 0,black 100%); +} + +.qtip-youtube .qtip-titlebar{ + background-color: #4A4A4A; + background-color: rgba(0,0,0,0); +} + +.qtip-youtube .qtip-content{ + padding: .75em; + font: 12px arial,sans-serif; + + filter: progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#4a4a4a,EndColorStr=#000000); + -ms-filter: "progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#4a4a4a,EndColorStr=#000000);"; +} + +.qtip-youtube .qtip-icon{ + border-color: #222; +} + +.qtip-youtube .qtip-titlebar .ui-state-hover{ + border-color: #303030; +} + + +/* jQuery TOOLS Tooltip style */ +.qtip-jtools{ + background: #232323; + background: rgba(0, 0, 0, 0.7); + background-image: -webkit-gradient(linear, left top, left bottom, from(#717171), to(#232323)); + background-image: -moz-linear-gradient(top, #717171, #232323); + background-image: -webkit-linear-gradient(top, #717171, #232323); + background-image: -ms-linear-gradient(top, #717171, #232323); + background-image: -o-linear-gradient(top, #717171, #232323); + + border: 2px solid #ddd; + border: 2px solid rgba(241,241,241,1); + + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border-radius: 2px; + + -webkit-box-shadow: 0 0 12px #333; + -moz-box-shadow: 0 0 12px #333; + box-shadow: 0 0 12px #333; +} + +/* IE Specific */ +.qtip-jtools .qtip-titlebar{ + background-color: transparent; + filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171,endColorstr=#4A4A4A); + -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171,endColorstr=#4A4A4A)"; +} +.qtip-jtools .qtip-content{ + filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A,endColorstr=#232323); + -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A,endColorstr=#232323)"; +} + +.qtip-jtools .qtip-titlebar, +.qtip-jtools .qtip-content{ + background: transparent; + color: white; + border: 0 dashed transparent; +} + +.qtip-jtools .qtip-icon{ + border-color: #555; +} + +.qtip-jtools .qtip-titlebar .ui-state-hover{ + border-color: #333; +} + + +/* Cluetip style */ +.qtip-cluetip{ + -webkit-box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4); + -moz-box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4); + box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4); + + background-color: #D9D9C2; + color: #111; + border: 0 dashed transparent; +} + +.qtip-cluetip .qtip-titlebar{ + background-color: #87876A; + color: white; + border: 0 dashed transparent; +} + +.qtip-cluetip .qtip-icon{ + border-color: #808064; +} + +.qtip-cluetip .qtip-titlebar .ui-state-hover{ + border-color: #696952; + color: #696952; +} + + +/* Tipsy style */ +.qtip-tipsy{ + background: black; + background: rgba(0, 0, 0, .87); + + color: white; + border: 0 solid transparent; + + font-size: 11px; + font-family: 'Lucida Grande', sans-serif; + font-weight: bold; + line-height: 16px; + text-shadow: 0 1px black; +} + +.qtip-tipsy .qtip-titlebar{ + padding: 6px 35px 0 10px; + background-color: transparent; +} + +.qtip-tipsy .qtip-content{ + padding: 6px 10px; +} + +.qtip-tipsy .qtip-icon{ + border-color: #222; + text-shadow: none; +} + +.qtip-tipsy .qtip-titlebar .ui-state-hover{ + border-color: #303030; +} + + +/* Tipped style */ +.qtip-tipped{ + border: 3px solid #959FA9; + + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + + background-color: #F9F9F9; + color: #454545; + + font-weight: normal; + font-family: serif; +} + +.qtip-tipped .qtip-titlebar{ + border-bottom-width: 0; + + color: white; + background: #3A79B8; + background-image: -webkit-gradient(linear, left top, left bottom, from(#3A79B8), to(#2E629D)); + background-image: -webkit-linear-gradient(top, #3A79B8, #2E629D); + background-image: -moz-linear-gradient(top, #3A79B8, #2E629D); + background-image: -ms-linear-gradient(top, #3A79B8, #2E629D); + background-image: -o-linear-gradient(top, #3A79B8, #2E629D); + filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8,endColorstr=#2E629D); + -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8,endColorstr=#2E629D)"; +} + +.qtip-tipped .qtip-icon{ + border: 2px solid #285589; + background: #285589; +} + +.qtip-tipped .qtip-icon .ui-icon{ + background-color: #FBFBFB; + color: #555; +} + + +/** + * Twitter Bootstrap style. + * + * Tested with IE 8, IE 9, Chrome 18, Firefox 9, Opera 11. + * Does not work with IE 7. + */ +.qtip-bootstrap{ + /** Taken from Bootstrap body */ + font-size: 14px; + line-height: 20px; + color: #333333; + + /** Taken from Bootstrap .popover */ + padding: 1px; + background-color: #ffffff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; +} + +.qtip-bootstrap .qtip-titlebar{ + /** Taken from Bootstrap .popover-title */ + padding: 8px 14px; + margin: 0; + font-size: 14px; + font-weight: normal; + line-height: 18px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + -webkit-border-radius: 5px 5px 0 0; + -moz-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; +} + +.qtip-bootstrap .qtip-titlebar .qtip-close{ + /** + * Overrides qTip2: + * .qtip-titlebar .qtip-close{ + * [...] + * right: 4px; + * top: 50%; + * [...] + * border-style: solid; + * } + */ + right: 11px; + top: 45%; + border-style: none; +} + +.qtip-bootstrap .qtip-content{ + /** Taken from Bootstrap .popover-content */ + padding: 9px 14px; +} + +.qtip-bootstrap .qtip-icon{ + /** + * Overrides qTip2: + * .qtip-default .qtip-icon { + * border-color: #CCC; + * background: #F1F1F1; + * color: #777; + * } + */ + background: transparent; +} + +.qtip-bootstrap .qtip-icon .ui-icon{ + /** + * Overrides qTip2: + * .qtip-icon .ui-icon{ + * width: 18px; + * height: 14px; + * } + */ + width: auto; + height: auto; + + /* Taken from Bootstrap .close */ + float: right; + font-size: 20px; + font-weight: bold; + line-height: 18px; + color: #000000; + text-shadow: 0 1px 0 #ffffff; + opacity: 0.2; + filter: alpha(opacity=20); +} + +.qtip-bootstrap .qtip-icon .ui-icon:hover{ + /* Taken from Bootstrap .close:hover */ + color: #000000; + text-decoration: none; + cursor: pointer; + opacity: 0.4; + filter: alpha(opacity=40); +} + + +/* IE9 fix - removes all filters */ +.qtip:not(.ie9haxors) div.qtip-content, +.qtip:not(.ie9haxors) div.qtip-titlebar{ + filter: none; + -ms-filter: none; +} + + +.qtip .qtip-tip{ + margin: 0 auto; + overflow: hidden; + z-index: 10; + +} + +/* Opera bug #357 - Incorrect tip position +https://github.com/Craga89/qTip2/issues/367 */ +x:-o-prefocus, .qtip .qtip-tip{ + visibility: hidden; +} + +.qtip .qtip-tip, +.qtip .qtip-tip .qtip-vml, +.qtip .qtip-tip canvas{ + position: absolute; + + color: #123456; + background: transparent; + border: 0 dashed transparent; +} + +.qtip .qtip-tip canvas{ top: 0; left: 0; } + +.qtip .qtip-tip .qtip-vml{ + behavior: url(#default#VML); + display: inline-block; + visibility: visible; +} + + +#qtip-overlay{ + position: fixed; + left: 0; top: 0; + width: 100%; height: 100%; +} + +/* Applied to modals with show.modal.blur set to true */ +#qtip-overlay.blurs{ cursor: pointer; } + +/* Change opacity of overlay here */ +#qtip-overlay div{ + position: absolute; + left: 0; top: 0; + width: 100%; height: 100%; + + background-color: black; + + opacity: 0.7; + filter:alpha(opacity=70); + -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=70)"; +} + + +.qtipmodal-ie6fix{ + position: absolute !important; +} \ No newline at end of file diff --git a/redux/ReduxCore/assets/css/vendor/spectrum/redux-spectrum.css b/redux/ReduxCore/assets/css/vendor/spectrum/redux-spectrum.css new file mode 100644 index 0000000..4435c41 --- /dev/null +++ b/redux/ReduxCore/assets/css/vendor/spectrum/redux-spectrum.css @@ -0,0 +1 @@ +.sp-container{position:absolute;top:0;left:0;display:inline-block;*display:inline;*zoom:1;z-index:9999994;overflow:hidden}.sp-container.sp-flat{position:relative}.sp-container,.sp-container *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.sp-top{position:relative;width:100%;display:inline-block}.sp-top-inner{position:absolute;top:0;left:0;bottom:0;right:0}.sp-color{position:absolute;top:0;left:0;bottom:0;right:20%}.sp-hue{position:absolute;top:0;right:0;bottom:0;left:84%;height:100%}.sp-clear-enabled .sp-hue{top:33px;height:77.5%}.sp-fill{padding-top:80%}.sp-sat,.sp-val{position:absolute;top:0;left:0;right:0;bottom:0}.sp-alpha-enabled .sp-top{margin-bottom:18px}.sp-alpha-enabled .sp-alpha{display:block}.sp-alpha-handle{position:absolute;top:-4px;bottom:-4px;width:6px;left:50%;cursor:pointer;border:1px solid black;background:white;opacity:.8}.sp-alpha{display:none;position:absolute;bottom:-14px;right:0;left:0;height:8px}.sp-alpha-inner{border:solid 1px #333}.sp-clear{display:none}.sp-clear.sp-clear-display{background-position:center}.sp-clear-enabled .sp-clear{display:block;position:absolute;top:0;right:0;bottom:0;left:84%;height:28px}.sp-container,.sp-replacer,.sp-preview,.sp-dragger,.sp-slider,.sp-alpha,.sp-clear,.sp-alpha-handle,.sp-container.sp-dragging .sp-input,.sp-container button{-webkit-user-select:none;-moz-user-select:-moz-none;-o-user-select:none;user-select:none}.sp-container.sp-input-disabled .sp-input-container{display:none}.sp-container.sp-buttons-disabled .sp-button-container{display:none}.sp-container.sp-palette-buttons-disabled .sp-palette-button-container{display:none}.sp-palette-only .sp-picker-container{display:none}.sp-palette-disabled .sp-palette-container{display:none}.sp-initial-disabled .sp-initial{display:none}.sp-sat{background-image:-webkit-gradient(linear,0 0,100% 0,from(#FFF),to(rgba(204,154,129,0)));background-image:-webkit-linear-gradient(left,#FFF,rgba(204,154,129,0));background-image:-moz-linear-gradient(left,#fff,rgba(204,154,129,0));background-image:-o-linear-gradient(left,#fff,rgba(204,154,129,0));background-image:-ms-linear-gradient(left,#fff,rgba(204,154,129,0));background-image:linear-gradient(to right,#fff,rgba(204,154,129,0));-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType = 1, startColorstr=#FFFFFFFF, endColorstr=#00CC9A81)";filter:progid:DXImageTransform.Microsoft.gradient(GradientType = 1,startColorstr='#FFFFFFFF',endColorstr='#00CC9A81')}.sp-val{background-image:-webkit-gradient(linear,0 100%,0 0,from(#000),to(rgba(204,154,129,0)));background-image:-webkit-linear-gradient(bottom,#000,rgba(204,154,129,0));background-image:-moz-linear-gradient(bottom,#000,rgba(204,154,129,0));background-image:-o-linear-gradient(bottom,#000,rgba(204,154,129,0));background-image:-ms-linear-gradient(bottom,#000,rgba(204,154,129,0));background-image:linear-gradient(to top,#000,rgba(204,154,129,0));-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#00CC9A81, endColorstr=#FF000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00CC9A81',endColorstr='#FF000000')}.sp-hue{background:-moz-linear-gradient(top,#f00 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,#f00 100%);background:-ms-linear-gradient(top,#f00 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,#f00 100%);background:-o-linear-gradient(top,#f00 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,#f00 100%);background:-webkit-gradient(linear,left top,left bottom,from(#f00),color-stop(0.17,#ff0),color-stop(0.33,#0f0),color-stop(0.5,#0ff),color-stop(0.67,#00f),color-stop(0.83,#f0f),to(#f00));background:-webkit-linear-gradient(top,#f00 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,#f00 100%);background:linear-gradient(to bottom,#f00 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,#f00 100%)}.sp-1{height:17%;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0000',endColorstr='#ffff00')}.sp-2{height:16%;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffff00',endColorstr='#00ff00')}.sp-3{height:17%;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ff00',endColorstr='#00ffff')}.sp-4{height:17%;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ffff',endColorstr='#0000ff')}.sp-5{height:16%;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0000ff',endColorstr='#ff00ff')}.sp-6{height:17%;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff00ff',endColorstr='#ff0000')}.sp-hidden{display:none !important}.sp-cf:before,.sp-cf:after{content:"";display:table}.sp-cf:after{clear:both}.sp-cf{*zoom:1}@media(max-device-width:480px){.sp-color{right:40%}.sp-hue{left:63%}.sp-fill{padding-top:60%}}.sp-dragger{border-radius:5px;height:5px;width:5px;border:1px solid #fff;background:#000;cursor:pointer;position:absolute;top:0;left:0}.sp-slider{position:absolute;top:0;cursor:pointer;height:3px;left:-1px;right:-1px;border:1px solid #000;background:white;opacity:.8}.sp-container{border-radius:0;background-color:#ececec;border:solid 1px #f0c49b;padding:0}.sp-container,.sp-container button,.sp-container input,.sp-color,.sp-hue,.sp-clear{font:normal 12px "Lucida Grande","Lucida Sans Unicode","Lucida Sans",Geneva,Verdana,sans-serif;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.sp-top{margin-bottom:3px}.sp-color,.sp-hue,.sp-clear{border:solid 1px #666}.sp-input-container{float:right;width:100px;margin-bottom:4px}.sp-initial-disabled .sp-input-container{width:100%}.sp-input{font-size:12px !important;border:1px inset;padding:4px 5px;margin:0;width:100%;background:transparent;border-radius:3px;color:#222}.sp-input:focus{border:1px solid orange}.sp-input.sp-validation-error{border:1px solid red;background:#fdd}.sp-picker-container,.sp-palette-container{float:left;position:relative;padding:10px;padding-bottom:300px;margin-bottom:-290px}.sp-picker-container{width:172px;border-left:solid 1px #fff}.sp-palette-container{border-right:solid 1px #ccc}.sp-palette-only .sp-palette-container{border:0}.sp-palette .sp-thumb-el{display:block;position:relative;float:left;width:24px;height:15px;margin:3px;cursor:pointer;border:solid 2px transparent}.sp-palette .sp-thumb-el:hover,.sp-palette .sp-thumb-el.sp-thumb-active{border-color:orange}.sp-thumb-el{position:relative}.sp-initial{float:left;border:solid 1px #333}.sp-initial span{width:30px;height:25px;border:0;display:block;float:left;margin:0}.sp-initial .sp-clear-display{background-position:center}.sp-palette-button-container,.sp-button-container{float:right}.sp-replacer{margin:0;overflow:hidden;cursor:pointer;padding:4px;display:inline-block;*zoom:1;*display:inline;border:solid 1px #91765d;background:#eee;color:#333;vertical-align:middle}.sp-replacer:hover,.sp-replacer.sp-active{border-color:#f0c49b;color:#111}.sp-replacer.sp-disabled{cursor:default;border-color:silver;color:silver}.sp-dd{padding:2px 0;height:16px;line-height:16px;float:left;font-size:10px}.sp-preview{position:relative;width:25px;height:20px;border:solid 1px #222;margin-right:5px;float:left;z-index:0}.sp-palette{*width:220px;max-width:220px}.sp-palette .sp-thumb-el{width:16px;height:16px;margin:2px 1px;border:solid 1px #d0d0d0}.sp-container{padding-bottom:0}.sp-container button{background-color:#eee;background-image:-webkit-linear-gradient(top,#eee,#ccc);background-image:-moz-linear-gradient(top,#eee,#ccc);background-image:-ms-linear-gradient(top,#eee,#ccc);background-image:-o-linear-gradient(top,#eee,#ccc);background-image:linear-gradient(to bottom,#eee,#ccc);border:1px solid #ccc;border-bottom:1px solid #bbb;border-radius:3px;color:#333;font-size:14px;line-height:1;padding:5px 4px;text-align:center;text-shadow:0 1px 0 #eee;vertical-align:middle}.sp-container button:hover{background-color:#ddd;background-image:-webkit-linear-gradient(top,#ddd,#bbb);background-image:-moz-linear-gradient(top,#ddd,#bbb);background-image:-ms-linear-gradient(top,#ddd,#bbb);background-image:-o-linear-gradient(top,#ddd,#bbb);background-image:linear-gradient(to bottom,#ddd,#bbb);border:1px solid #bbb;border-bottom:1px solid #999;cursor:pointer;text-shadow:0 1px 0 #ddd}.sp-container button:active{border:1px solid #aaa;border-bottom:1px solid #888;-webkit-box-shadow:inset 0 0 5px 2px #aaa,0 1px 0 0 #eee;-moz-box-shadow:inset 0 0 5px 2px #aaa,0 1px 0 0 #eee;-ms-box-shadow:inset 0 0 5px 2px #aaa,0 1px 0 0 #eee;-o-box-shadow:inset 0 0 5px 2px #aaa,0 1px 0 0 #eee;box-shadow:inset 0 0 5px 2px #aaa,0 1px 0 0 #eee}.sp-cancel{font-size:11px;color:#d93f3f !important;margin:0;padding:2px;margin-right:5px;vertical-align:middle;text-decoration:none}.sp-cancel:hover{color:#d93f3f !important;text-decoration:underline}.sp-palette span:hover,.sp-palette span.sp-thumb-active{border-color:#000}.sp-preview,.sp-alpha,.sp-thumb-el{position:relative;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.sp-preview-inner,.sp-alpha-inner,.sp-thumb-inner{display:block;position:absolute;top:0;left:0;bottom:0;right:0}.sp-palette .sp-thumb-inner{background-position:50% 50%;background-repeat:no-repeat}.sp-palette .sp-thumb-light.sp-thumb-active .sp-thumb-inner{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIVJREFUeNpiYBhsgJFMffxAXABlN5JruT4Q3wfi/0DsT64h8UD8HmpIPCWG/KemIfOJCUB+Aoacx6EGBZyHBqI+WsDCwuQ9mhxeg2A210Ntfo8klk9sOMijaURm7yc1UP2RNCMbKE9ODK1HM6iegYLkfx8pligC9lCD7KmRof0ZhjQACDAAceovrtpVBRkAAAAASUVORK5CYII=)}.sp-palette .sp-thumb-dark.sp-thumb-active .sp-thumb-inner{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAMdJREFUOE+tkgsNwzAMRMugEAahEAahEAZhEAqlEAZhEAohEAYh81X2dIm8fKpEspLGvudPOsUYpxE2BIJCroJmEW9qJ+MKaBFhEMNabSy9oIcIPwrB+afvAUFoK4H0tMaQ3XtlrggDhOVVMuT4E5MMG0FBbCEYzjYT7OxLEvIHQLY2zWwQ3D+9luyOQTfKDiFD3iUIfPk8VqrKjgAiSfGFPecrg6HN6m/iBcwiDAo7WiBeawa+Kwh7tZoSCGLMqwlSAzVDhoK+6vH4G0P5wdkAAAAASUVORK5CYII=)}.sp-clear-display{background-repeat:no-repeat;background-position:center;background-image:url(data:image/gif;base64,R0lGODlhFAAUAPcAAAAAAJmZmZ2dnZ6enqKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq/Hx8fLy8vT09PX19ff39/j4+Pn5+fr6+vv7+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAP8ALAAAAAAUABQAAAihAP9FoPCvoMGDBy08+EdhQAIJCCMybCDAAYUEARBAlFiQQoMABQhKUJBxY0SPICEYHBnggEmDKAuoPMjS5cGYMxHW3IiT478JJA8M/CjTZ0GgLRekNGpwAsYABHIypcAgQMsITDtWJYBR6NSqMico9cqR6tKfY7GeBCuVwlipDNmefAtTrkSzB1RaIAoXodsABiZAEFB06gIBWC1mLVgBa0AAOw==)} \ No newline at end of file diff --git a/redux/ReduxCore/assets/css/vendor/spectrum/redux-spectrum.css.map b/redux/ReduxCore/assets/css/vendor/spectrum/redux-spectrum.css.map new file mode 100644 index 0000000..5cc2ebd --- /dev/null +++ b/redux/ReduxCore/assets/css/vendor/spectrum/redux-spectrum.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "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", +"sources": ["redux-spectrum.scss"], +"names": [], +"file": "redux-spectrum.css" +} \ No newline at end of file diff --git a/redux/ReduxCore/assets/css/vendor/spectrum/redux-spectrum.scss b/redux/ReduxCore/assets/css/vendor/spectrum/redux-spectrum.scss new file mode 100644 index 0000000..3093797 --- /dev/null +++ b/redux/ReduxCore/assets/css/vendor/spectrum/redux-spectrum.scss @@ -0,0 +1,566 @@ +/*** +Spectrum Colorpicker v1.5.1 +https://github.com/bgrins/spectrum +Author: Brian Grinstead +License: MIT +***/ + +.sp-container { + position: absolute; + top: 0; + left: 0; + display: inline-block; + *display: inline; + *zoom: 1; + /* https://github.com/bgrins/spectrum/issues/40 */ + z-index: 9999994; + overflow: hidden; +} + + +.sp-container.sp-flat { + position: relative; +} + +/* Fix for * { box-sizing: border-box; } */ +.sp-container, +.sp-container * { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; +} + +/* http://ansciath.tumblr.com/post/7347495869/css-aspect-ratio */ +.sp-top { + position: relative; + width: 100%; + display: inline-block; +} + +.sp-top-inner { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; +} + +.sp-color { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 20%; +} + +.sp-hue { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 84%; + height: 100%; +} + +.sp-clear-enabled .sp-hue { + top: 33px; + height: 77.5%; +} + +.sp-fill { + padding-top: 80%; +} + +.sp-sat, .sp-val { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; +} + +.sp-alpha-enabled .sp-top { + margin-bottom: 18px; +} + +.sp-alpha-enabled .sp-alpha { + display: block; +} + +.sp-alpha-handle { + position: absolute; + top: -4px; + bottom: -4px; + width: 6px; + left: 50%; + cursor: pointer; + border: 1px solid black; + background: white; + opacity: .8; +} + +.sp-alpha { + display: none; + position: absolute; + bottom: -14px; + right: 0; + left: 0; + height: 8px; +} + +.sp-alpha-inner { + border: solid 1px #333; +} + +.sp-clear { + display: none; +} + +.sp-clear.sp-clear-display { + background-position: center; +} + +.sp-clear-enabled .sp-clear { + display: block; + position: absolute; + top: 0px; + right: 0; + bottom: 0; + left: 84%; + height: 28px; +} + +/* Don't allow text selection */ +.sp-container, .sp-replacer, .sp-preview, .sp-dragger, .sp-slider, .sp-alpha, .sp-clear, .sp-alpha-handle, .sp-container.sp-dragging .sp-input, .sp-container button { + -webkit-user-select: none; + -moz-user-select: -moz-none; + -o-user-select: none; + user-select: none; +} + +.sp-container.sp-input-disabled .sp-input-container { + display: none; +} + +.sp-container.sp-buttons-disabled .sp-button-container { + display: none; +} + +.sp-container.sp-palette-buttons-disabled .sp-palette-button-container { + display: none; +} + +.sp-palette-only .sp-picker-container { + display: none; +} + +.sp-palette-disabled .sp-palette-container { + display: none; +} + +.sp-initial-disabled .sp-initial { + display: none; +} + +/* Gradients for hue, saturation and value instead of images. Not pretty... but it works */ +.sp-sat { + background-image: -webkit-gradient(linear, 0 0, 100% 0, from(#FFF), to(rgba(204, 154, 129, 0))); + background-image: -webkit-linear-gradient(left, #FFF, rgba(204, 154, 129, 0)); + background-image: -moz-linear-gradient(left, #fff, rgba(204, 154, 129, 0)); + background-image: -o-linear-gradient(left, #fff, rgba(204, 154, 129, 0)); + background-image: -ms-linear-gradient(left, #fff, rgba(204, 154, 129, 0)); + background-image: linear-gradient(to right, #fff, rgba(204, 154, 129, 0)); + -ms-filter: "progid:DXImageTransform.Microsoft.gradient(GradientType = 1, startColorstr=#FFFFFFFF, endColorstr=#00CC9A81)"; + filter: progid:DXImageTransform.Microsoft.gradient(GradientType = 1, startColorstr='#FFFFFFFF', endColorstr='#00CC9A81'); +} + +.sp-val { + background-image: -webkit-gradient(linear, 0 100%, 0 0, from(#000000), to(rgba(204, 154, 129, 0))); + background-image: -webkit-linear-gradient(bottom, #000000, rgba(204, 154, 129, 0)); + background-image: -moz-linear-gradient(bottom, #000, rgba(204, 154, 129, 0)); + background-image: -o-linear-gradient(bottom, #000, rgba(204, 154, 129, 0)); + background-image: -ms-linear-gradient(bottom, #000, rgba(204, 154, 129, 0)); + background-image: linear-gradient(to top, #000, rgba(204, 154, 129, 0)); + -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#00CC9A81, endColorstr=#FF000000)"; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00CC9A81', endColorstr='#FF000000'); +} + +.sp-hue { + background: -moz-linear-gradient(top, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%); + background: -ms-linear-gradient(top, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%); + background: -o-linear-gradient(top, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%); + background: -webkit-gradient(linear, left top, left bottom, from(#ff0000), color-stop(0.17, #ffff00), color-stop(0.33, #00ff00), color-stop(0.5, #00ffff), color-stop(0.67, #0000ff), color-stop(0.83, #ff00ff), to(#ff0000)); + background: -webkit-linear-gradient(top, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%); + background: linear-gradient(to bottom, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%); +} + +/* IE filters do not support multiple color stops. + Generate 6 divs, line them up, and do two color gradients for each. + Yes, really. + */ +.sp-1 { + height: 17%; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0000', endColorstr='#ffff00'); +} + +.sp-2 { + height: 16%; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffff00', endColorstr='#00ff00'); +} + +.sp-3 { + height: 17%; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ff00', endColorstr='#00ffff'); +} + +.sp-4 { + height: 17%; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ffff', endColorstr='#0000ff'); +} + +.sp-5 { + height: 16%; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0000ff', endColorstr='#ff00ff'); +} + +.sp-6 { + height: 17%; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff00ff', endColorstr='#ff0000'); +} + +.sp-hidden { + display: none !important; +} + +/* Clearfix hack */ +.sp-cf:before, .sp-cf:after { + content: ""; + display: table; +} + +.sp-cf:after { + clear: both; +} + +.sp-cf { + *zoom: 1; +} + +/* Mobile devices, make hue slider bigger so it is easier to slide */ +@media (max-device-width: 480px) { + .sp-color { + right: 40%; + } + .sp-hue { + left: 63%; + } + .sp-fill { + padding-top: 60%; + } +} + +.sp-dragger { + border-radius: 5px; + height: 5px; + width: 5px; + border: 1px solid #fff; + background: #000; + cursor: pointer; + position: absolute; + top: 0; + left: 0; +} + +.sp-slider { + position: absolute; + top: 0; + cursor: pointer; + height: 3px; + left: -1px; + right: -1px; + border: 1px solid #000; + background: white; + opacity: .8; +} + +/* +Theme authors: +Here are the basic themeable display options (colors, fonts, global widths). +See http://bgrins.github.io/spectrum/themes/ for instructions. +*/ + +.sp-container { + border-radius: 0; + background-color: #ECECEC; + border: solid 1px #f0c49B; + padding: 0; +} + +.sp-container, .sp-container button, .sp-container input, .sp-color, .sp-hue, .sp-clear { + font: normal 12px "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Verdana, sans-serif; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; +} + +.sp-top { + margin-bottom: 3px; +} + +.sp-color, .sp-hue, .sp-clear { + border: solid 1px #666; +} + +/* Input */ +.sp-input-container { + float: right; + width: 100px; + margin-bottom: 4px; +} + +.sp-initial-disabled .sp-input-container { + width: 100%; +} + +.sp-input { + font-size: 12px !important; + border: 1px inset; + padding: 4px 5px; + margin: 0; + width: 100%; + background: transparent; + border-radius: 3px; + color: #222; +} + +.sp-input:focus { + border: 1px solid orange; +} + +.sp-input.sp-validation-error { + border: 1px solid red; + background: #fdd; +} + +.sp-picker-container, .sp-palette-container { + float: left; + position: relative; + padding: 10px; + padding-bottom: 300px; + margin-bottom: -290px; +} + +.sp-picker-container { + width: 172px; + border-left: solid 1px #fff; +} + +/* Palettes */ +.sp-palette-container { + border-right: solid 1px #ccc; +} + +.sp-palette-only .sp-palette-container { + border: 0; +} + +.sp-palette .sp-thumb-el { + display: block; + position: relative; + float: left; + width: 24px; + height: 15px; + margin: 3px; + cursor: pointer; + border: solid 2px transparent; +} + +.sp-palette .sp-thumb-el:hover, .sp-palette .sp-thumb-el.sp-thumb-active { + border-color: orange; +} + +.sp-thumb-el { + position: relative; +} + +/* Initial */ +.sp-initial { + float: left; + border: solid 1px #333; +} + +.sp-initial span { + width: 30px; + height: 25px; + border: none; + display: block; + float: left; + margin: 0; +} + +.sp-initial .sp-clear-display { + background-position: center; +} + +/* Buttons */ +.sp-palette-button-container, +.sp-button-container { + float: right; +} + +/* Replacer (the little preview div that shows up instead of the ) */ +.sp-replacer { + margin: 0; + overflow: hidden; + cursor: pointer; + padding: 4px; + display: inline-block; + *zoom: 1; + *display: inline; + border: solid 1px #91765d; + background: #eee; + color: #333; + vertical-align: middle; +} + +.sp-replacer:hover, .sp-replacer.sp-active { + border-color: #F0C49B; + color: #111; +} + +.sp-replacer.sp-disabled { + cursor: default; + border-color: silver; + color: silver; +} + +.sp-dd { + padding: 2px 0; + height: 16px; + line-height: 16px; + float: left; + font-size: 10px; +} + +.sp-preview { + position: relative; + width: 25px; + height: 20px; + border: solid 1px #222; + margin-right: 5px; + float: left; + z-index: 0; +} + +.sp-palette { + *width: 220px; + max-width: 220px; +} + +.sp-palette .sp-thumb-el { + width: 16px; + height: 16px; + margin: 2px 1px; + border: solid 1px #d0d0d0; +} + +.sp-container { + padding-bottom: 0; +} + +/* Buttons: http://hellohappy.org/css3-buttons/ */ +.sp-container button { + background-color: #eeeeee; + background-image: -webkit-linear-gradient(top, #eeeeee, #cccccc); + background-image: -moz-linear-gradient(top, #eeeeee, #cccccc); + background-image: -ms-linear-gradient(top, #eeeeee, #cccccc); + background-image: -o-linear-gradient(top, #eeeeee, #cccccc); + background-image: linear-gradient(to bottom, #eeeeee, #cccccc); + border: 1px solid #ccc; + border-bottom: 1px solid #bbb; + border-radius: 3px; + color: #333; + font-size: 14px; + line-height: 1; + padding: 5px 4px; + text-align: center; + text-shadow: 0 1px 0 #eee; + vertical-align: middle; +} + +.sp-container button:hover { + background-color: #dddddd; + background-image: -webkit-linear-gradient(top, #dddddd, #bbbbbb); + background-image: -moz-linear-gradient(top, #dddddd, #bbbbbb); + background-image: -ms-linear-gradient(top, #dddddd, #bbbbbb); + background-image: -o-linear-gradient(top, #dddddd, #bbbbbb); + background-image: linear-gradient(to bottom, #dddddd, #bbbbbb); + border: 1px solid #bbb; + border-bottom: 1px solid #999; + cursor: pointer; + text-shadow: 0 1px 0 #ddd; +} + +.sp-container button:active { + border: 1px solid #aaa; + border-bottom: 1px solid #888; + -webkit-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee; + -moz-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee; + -ms-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee; + -o-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee; + box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee; +} + +.sp-cancel { + font-size: 11px; + color: #d93f3f !important; + margin: 0; + padding: 2px; + margin-right: 5px; + vertical-align: middle; + text-decoration: none; + +} + +.sp-cancel:hover { + color: #d93f3f !important; + text-decoration: underline; +} + +.sp-palette span:hover, .sp-palette span.sp-thumb-active { + border-color: #000; +} + +.sp-preview, .sp-alpha, .sp-thumb-el { + position: relative; + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==); +} + +.sp-preview-inner, .sp-alpha-inner, .sp-thumb-inner { + display: block; + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; +} + +.sp-palette .sp-thumb-inner { + background-position: 50% 50%; + background-repeat: no-repeat; +} + +.sp-palette .sp-thumb-light.sp-thumb-active .sp-thumb-inner { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIVJREFUeNpiYBhsgJFMffxAXABlN5JruT4Q3wfi/0DsT64h8UD8HmpIPCWG/KemIfOJCUB+Aoacx6EGBZyHBqI+WsDCwuQ9mhxeg2A210Ntfo8klk9sOMijaURm7yc1UP2RNCMbKE9ODK1HM6iegYLkfx8pligC9lCD7KmRof0ZhjQACDAAceovrtpVBRkAAAAASUVORK5CYII=); +} + +.sp-palette .sp-thumb-dark.sp-thumb-active .sp-thumb-inner { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAMdJREFUOE+tkgsNwzAMRMugEAahEAahEAZhEAqlEAZhEAohEAYh81X2dIm8fKpEspLGvudPOsUYpxE2BIJCroJmEW9qJ+MKaBFhEMNabSy9oIcIPwrB+afvAUFoK4H0tMaQ3XtlrggDhOVVMuT4E5MMG0FBbCEYzjYT7OxLEvIHQLY2zWwQ3D+9luyOQTfKDiFD3iUIfPk8VqrKjgAiSfGFPecrg6HN6m/iBcwiDAo7WiBeawa+Kwh7tZoSCGLMqwlSAzVDhoK+6vH4G0P5wdkAAAAASUVORK5CYII=); +} + +.sp-clear-display { + background-repeat: no-repeat; + background-position: center; + background-image: url(data:image/gif;base64,R0lGODlhFAAUAPcAAAAAAJmZmZ2dnZ6enqKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq/Hx8fLy8vT09PX19ff39/j4+Pn5+fr6+vv7+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAP8ALAAAAAAUABQAAAihAP9FoPCvoMGDBy08+EdhQAIJCCMybCDAAYUEARBAlFiQQoMABQhKUJBxY0SPICEYHBnggEmDKAuoPMjS5cGYMxHW3IiT478JJA8M/CjTZ0GgLRekNGpwAsYABHIypcAgQMsITDtWJYBR6NSqMico9cqR6tKfY7GeBCuVwlipDNmefAtTrkSzB1RaIAoXodsABiZAEFB06gIBWC1mLVgBa0AAOw==); +} diff --git a/redux/ReduxCore/assets/img/1c.png b/redux/ReduxCore/assets/img/1c.png new file mode 100644 index 0000000000000000000000000000000000000000..6bbb1c31cf4ef4c37c7ca49650f000ce1a66f023 GIT binary patch literal 138 zcmeAS@N?(olHy`uVBq!ia0vp^xfMzo7TnbtqtD0mjCIu WuhZ_cvep9)XYh3Ob6Mw<&;$Sh&ocx7 literal 0 HcmV?d00001 diff --git a/redux/ReduxCore/assets/img/1col.png b/redux/ReduxCore/assets/img/1col.png new file mode 100644 index 0000000000000000000000000000000000000000..1664aa73d377af97c9b69dd5cca218e388648eb1 GIT binary patch literal 2895 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 literal 0 HcmV?d00001 diff --git a/redux/ReduxCore/assets/img/2-col-portfolio.png b/redux/ReduxCore/assets/img/2-col-portfolio.png new file mode 100644 index 0000000000000000000000000000000000000000..be72cb13673e03725be2aa1e524b595999986264 GIT binary patch literal 1045 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 fcmMzZ|NjF33acqw!4Vg2@5 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 literal 0 HcmV?d00001 diff --git a/redux/ReduxCore/assets/img/ajax.gif b/redux/ReduxCore/assets/img/ajax.gif new file mode 100644 index 0000000000000000000000000000000000000000..e1469616717a8051a4373bc4cb887436c4eba76a GIT binary patch literal 1392 zcmb`F>rYz+7>7^W(^{adEo*zu4n6B>3ka2)L?&o7&?{iu0j_{}iB$@8Zcy$BTSi4@ zX#s(C&>>^A6tRm7Gf{)`fjX#yjGNHPxFkS?1c6UP6TdhQh9w&NP2WG@&6DT(DKiww zDLN*=1bzhov)OF1SlZg!Y&KhOZ*PBpztib-xm+V7Bcr3EQu| zAm$k5*b6{5Zbr2C=sTlQQs!*!xz%ZE(v7DwP;a;|v}G$*AO}s~>$mGckkzGkOtpwD z%}Ku@9C-_2a10L5yaqU}0Icc!!1Z*tOnD>TEnMPID@CE;i{YW^nNPNys}*t?bgq*4 z9G#IH)ztV#lqy~j2%;Q^C^Wq3cjgb5Xn*2@Yrg7;Y8ch?Zc!-{I0S)i89MD(xH<0Y z)0?l~Te2o*(%{(dFjFGPjFovjmT=3kMku*stbE8CN^P_zgXBCRiK2abFN{z>AOpih0F|V+SeJ!;|jSZwFw%D2+(r4f(biyQQrGDzS zMq*~BG{oz3_kB2}W3p_;LZB)!dMlcJrd`S6hgD*A`OPwv4Dw_=klZOL zDna-cE|$vpS8ObKWld;oAiVOtZD) zWfZuSu01MMIQer|es;{g^pc|-ZX|`KrjdfuaTGO`Kv9W;P&FE4lya^}xjeM)GFiwg zf?7ZbHGvjqgSbrDMR?|BTgp9LpUneFM)u`H!9IHS`9}pXSYfokEc&kY=HQD=u(;7 zBEXp<=xQ@KI3`0;Wk8_n$3V^akZYd*Ydwv2nP#x_7nmlFw4Tx04R}-Ro!pfR1`mnZ(O7nKcKOW4i$^9Ra0BJ8yc;~21%2p=|UR0&DbiW z$#rfTQ`a`O(`{9s_5yDV_yd5l2Of}kLK+Oj_Ok5(v`JGz71bo9J#^YYXp{DWs&KBa zQ@dTpxRI}aIp=pi@6k0t$5)!;m`NF6-tt{FpOKHBn3g+MAqmexC-gw4rh87hTrL7G z#)U`L!(So6-Zux@>;H3gR;i~0B%VTSS3P|m@o9jRsXML@Al^p#@G0Lx-0?i(9WEw_ zSYddU<1E8793KxjQ|c&UmW!mTC>k>?{om1c9S zUx<6_jj_!T&^M{wWM#>IBbOSf*xP<^F{$j$aOQ5Y{cT zROCL1M7^NKKL z&(yA}mSw#iM0^;IB{ZO5!wl{^Sg-*ysE~&Yz8!E;Qv(A`lu*=Clo*MpVGd>OdF6n^ zam1Jntk;<}MrqIC5$=Q>n{*R}?8oOIDUw5En2dl--Xw34!z7E+5pr-OgyQ-soSab)C%saskMla`aQLVzg0+MZf20tJU&K{hZoBrUc+U4e9&3o zw|KmGEe4#xz17wBu{f`SS_4i66?j31EjY7n{zGfhONK~c+td!TS#B}JoR}5UAd7p& z5phTyXSkK0xCeD3xaYP^o&J~#Xp9xFb0C;HHml5fA<%h1eR|qw7wxF+oNL9T1Aits?sKNIwvGaN)^WO$I^cUV)HzL_| z1K?{9p!>B*)`xfEv!4N6IG{J&h49W#Bz^(#YWw%`e_a{8n{G9m5AeR~_yl0%<7V@p zVvS6LpPwD*I*vvnG>*WexCskltledsjJ)FB;noRvmufCKc_9 zhU>mG++)Ai_nw?1ioI*5n|S=S`_ z6mOa!ud)X+8xb+y&EswchnO~x=nAWp0}D)ApMO!1@c=4J=fwa3002ovPDHLkV1gSk By?y`y literal 0 HcmV?d00001 diff --git a/redux/ReduxCore/assets/img/toggle_tabs.png b/redux/ReduxCore/assets/img/toggle_tabs.png new file mode 100644 index 0000000000000000000000000000000000000000..ff435fb3068fe20963edcb5b86d70e36021dbad1 GIT binary patch literal 358 zcmV-s0h#`ZP)P001%w0ssI2CgA760000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUz2uVaiRCwC#l|2fCFc5_|i$|~%Poft{ zp@m@WC2}EaJ5zW8PZKQF%D+IGC9=sx262~ISjd}~H{<9>_I-aLT?Er>+qPfu>bhatm`W8P1Bf-%Cb~SQ!b^*^W2(CDnYs0w#CT> z**K{=E8m)ESr*_1oRxYmCog+0V2`)w!kibpN6UVx)6z6GI1)lYxzq;seQ(ZH6a{qe zr4;fFS#m{D#2ACjK8|Cpmdx{v_Ai{K>F>S9aeO2nJ!?H{-B_Dt8Rr~_wcp@r2qf` literal 0 HcmV?d00001 diff --git a/redux/ReduxCore/assets/js/media/media.js b/redux/ReduxCore/assets/js/media/media.js new file mode 100644 index 0000000..8a4387c --- /dev/null +++ b/redux/ReduxCore/assets/js/media/media.js @@ -0,0 +1,223 @@ +/*global redux_change, wp, redux, libFilter */ + +/** + * Media Uploader + * Dependencies : jquery, wp media uploader + * Feature added by : Smartik - http://smartik.ws/ + * Date : 05.28.2013 + */ + +(function($){ + "use strict"; + + redux.field_objects = redux.field_objects || {}; + redux.field_objects.media = redux.field_objects.media || {}; + + var isFiltered; + + redux.field_objects.media.init = function( selector ) { + if ( !selector ) { + selector = $( document ).find( ".redux-group-tab:visible" ).find( '.redux-container-media:visible' ); + } + $( selector ).each( + function() { + var el = $( this ); + var parent = el; + + if ( !el.hasClass( 'redux-field-container' ) ) { + parent = el.parents( '.redux-field-container:first' ); + } + if ( parent.is( ":hidden" ) ) { // Skip hidden fields + return; + } + if ( parent.hasClass( 'redux-field-init' ) ) { + parent.removeClass( 'redux-field-init' ); + } else { + return; + } + + isFiltered = false; + + // Remove the image button + el.find( '.remove-image, .remove-file' ).unbind( 'click' ).on( + 'click', function() { + redux.field_objects.media.removeFile( $( this ).parents( 'fieldset.redux-field:first' ) ); + } + ); + // Upload media button + el.find( '.media_upload_button' ).unbind().on( + 'click', function( event ) { + redux.field_objects.media.addFile( event, $( this ).parents( 'fieldset.redux-field:first' ) ); + } + ); + } + ); + }; + + // Add a file via the wp.media function + redux.field_objects.media.addFile = function( event, selector ) { + event.preventDefault(); + + var frame; + var jQueryel = $( this ); + var libFilter; + + // If the media frame already exists, reopen it. + if ( frame ) { + frame.open(); + return; + } + + // Get library filter data + var filter = $( selector ).find('.library-filter').data('lib-filter'); + + // Must exist to do decoding + if (filter !== undefined) { + if (filter !== ''){ + libFilter = []; + isFiltered = true; + filter = decodeURIComponent(filter); + filter = JSON.parse(filter); + + $.each(filter, function(index, value) { + libFilter.push(value); + }); + } + } + + // Create the media frame. + frame = wp.media( + { + multiple: false, + library: { + type: libFilter //Only allow images + }, + + // Set the title of the modal. + title: jQueryel.data( 'choose' ), + + // Customize the submit button. + button: { + // Set the text of the button. + text: jQueryel.data( 'update' ) + // Tell the button not to close the modal, since we're + // going to refresh the page when the image is selected. + } + } + ); + + // When an image is selected, run a callback. + frame.on( + 'select', function() { + + // Grab the selected attachment. + var attachment = frame.state().get( 'selection' ).first(); + frame.close(); + + var data = $( selector ).find('.data').data(); + + if ( typeof redux.field_objects.media === 'undefined' || typeof redux.field_objects.media === undefined ) { + redux.field_objects.media = {}; + } + + if ( data === undefined || data.mode === 'undefined' ) { + data = {}; + data.mode = "image"; + } + + if (isFiltered === true) { + data.mode = 0; + } + + if (data.mode === 0) { + + } else { + if ( data.mode !== false) { + if (attachment.attributes.type !== data.mode) { + if (attachment.attributes.subtype !== data.mode ) { + return; + } + } + } + } +console.log(attachment); + + selector.find( '.upload' ).val( attachment.attributes.url ); + selector.find( '.upload-id' ).val( attachment.attributes.id ); + selector.find( '.upload-height' ).val( attachment.attributes.height ); + selector.find( '.upload-width' ).val( attachment.attributes.width ); + selector.find( '.upload-title' ).val( attachment.attributes.title ); + selector.find( '.upload-caption' ).val( attachment.attributes.caption ); + selector.find( '.upload-alt' ).val( attachment.attributes.alt ); + selector.find( '.upload-description' ).val( attachment.attributes.description ); + + redux_change( $( selector ).find( '.upload-id' ) ); + + var thumbSrc = attachment.attributes.url; + if ( typeof attachment.attributes.sizes !== 'undefined' && typeof attachment.attributes.sizes.thumbnail !== 'undefined' ) { + thumbSrc = attachment.attributes.sizes.thumbnail.url; + } else if ( typeof attachment.attributes.sizes !== 'undefined' ) { + var height = attachment.attributes.height; + + for ( var key in attachment.attributes.sizes ) { + var object = attachment.attributes.sizes[key]; + + if ( object.height < height ) { + height = object.height; + thumbSrc = object.url; + } + } + } else { + thumbSrc = attachment.attributes.icon; + } + + selector.find( '.upload-thumbnail' ).val( thumbSrc ); + if ( !selector.find( '.upload' ).hasClass( 'noPreview' ) ) { + selector.find( '.screenshot' ).empty().hide().append( '' ).slideDown( 'fast' ); + } + + //selector.find('.media_upload_button').unbind(); + selector.find( '.remove-image' ).removeClass( 'hide' );//show "Remove" button + selector.find( '.redux-background-properties' ).slideDown(); + } + ); + + // Finally, open the modal. + frame.open(); + }; + + // Function to remove the image on click. Still requires a save + redux.field_objects.media.removeFile = function( selector ) { + + // This shouldn't have been run... + if ( !selector.find( '.remove-image' ).addClass( 'hide' ) ) { + return; + } + + selector.find( '.remove-image' ).addClass( 'hide' );//hide "Remove" button + selector.find( '.upload' ).val( '' ); + selector.find( '.upload-id' ).val( '' ); + selector.find( '.upload-height' ).val( '' ); + selector.find( '.upload-width' ).val( '' ); + selector.find( '.upload-title' ).val( '' ); + selector.find( '.upload-caption' ).val( '' ); + selector.find( '.upload-alt' ).val( '' ); + selector.find( '.upload-description' ).val( '' ); + selector.find( '.upload-thumbnail' ).val( '' ); + redux_change( $( selector ).find( '.upload-id' ) ); + selector.find( '.redux-background-properties' ).hide(); + + var screenshot = selector.find( '.screenshot' ); + + // Hide the screenshot + screenshot.slideUp(); + + selector.find( '.remove-file' ).unbind(); + + // We don't display the upload button if .upload-notice is present + // This means the user doesn't have the WordPress 3.5 Media Library Support + if ( selector.find( '.section-upload .upload-notice' ).length > 0 ) { + selector.find( '.media_upload_button' ).remove(); + } + }; +})( jQuery ); diff --git a/redux/ReduxCore/assets/js/media/media.min.js b/redux/ReduxCore/assets/js/media/media.min.js new file mode 100644 index 0000000..804ebc4 --- /dev/null +++ b/redux/ReduxCore/assets/js/media/media.min.js @@ -0,0 +1 @@ +!function(s){"use strict";var r;redux.field_objects=redux.field_objects||{},redux.field_objects.media=redux.field_objects.media||{},redux.field_objects.media.init=function(e){e||(e=s(document).find(".redux-group-tab:visible").find(".redux-container-media:visible")),s(e).each(function(){var e=s(this),i=e;e.hasClass("redux-field-container")||(i=e.parents(".redux-field-container:first")),i.is(":hidden")||i.hasClass("redux-field-init")&&(i.removeClass("redux-field-init"),r=!1,e.find(".remove-image, .remove-file").unbind("click").on("click",function(){redux.field_objects.media.removeFile(s(this).parents("fieldset.redux-field:first"))}),e.find(".media_upload_button").unbind().on("click",function(e){redux.field_objects.media.addFile(e,s(this).parents("fieldset.redux-field:first"))}))})},redux.field_objects.media.addFile=function(e,n){var o;e.preventDefault();var d,i=s(this);if(o)o.open();else{var t=s(n).find(".library-filter").data("lib-filter");void 0!==t&&""!==t&&(d=[],r=!0,t=decodeURIComponent(t),t=JSON.parse(t),s.each(t,function(e,i){d.push(i)})),(o=wp.media({multiple:!1,library:{type:d},title:i.data("choose"),button:{text:i.data("update")}})).on("select",function(){var e=o.state().get("selection").first();o.close();var i=s(n).find(".data").data();if(void 0!==redux.field_objects.media&&void 0!==typeof redux.field_objects.media||(redux.field_objects.media={}),void 0!==i&&"undefined"!==i.mode||(i={mode:"image"}),!0===r&&(i.mode=0),0===i.mode);else if(!1!==i.mode&&e.attributes.type!==i.mode&&e.attributes.subtype!==i.mode)return;console.log(e),n.find(".upload").val(e.attributes.url),n.find(".upload-id").val(e.attributes.id),n.find(".upload-height").val(e.attributes.height),n.find(".upload-width").val(e.attributes.width),n.find(".upload-title").val(e.attributes.title),n.find(".upload-caption").val(e.attributes.caption),n.find(".upload-alt").val(e.attributes.alt),n.find(".upload-description").val(e.attributes.description),redux_change(s(n).find(".upload-id"));var d=e.attributes.url;if(void 0!==e.attributes.sizes&&void 0!==e.attributes.sizes.thumbnail)d=e.attributes.sizes.thumbnail.url;else if(void 0!==e.attributes.sizes){var t=e.attributes.height;for(var a in e.attributes.sizes){var l=e.attributes.sizes[a];l.height').slideDown("fast"),n.find(".remove-image").removeClass("hide"),n.find(".redux-background-properties").slideDown()}),o.open()}},redux.field_objects.media.removeFile=function(e){e.find(".remove-image").addClass("hide")&&(e.find(".remove-image").addClass("hide"),e.find(".upload").val(""),e.find(".upload-id").val(""),e.find(".upload-height").val(""),e.find(".upload-width").val(""),e.find(".upload-title").val(""),e.find(".upload-caption").val(""),e.find(".upload-alt").val(""),e.find(".upload-description").val(""),e.find(".upload-thumbnail").val(""),redux_change(s(e).find(".upload-id")),e.find(".redux-background-properties").hide(),e.find(".screenshot").slideUp(),e.find(".remove-file").unbind(),0 bounds.right || viewport.bottom < bounds.top || viewport.top > bounds.bottom)); + }; + + $.redux.hideFields(); + $.redux.checkRequired(); + $.redux.initEvents(); + $.redux.initQtip(); + $.redux.tabCheck(); + $.redux.notices(); + $.redux.tabControl(); + } + ); + + $.redux.ajax_save = function( button ) { + + var overlay = $( document.getElementById( 'redux_ajax_overlay' ) ); + overlay.fadeIn(); + + // Add the loading mechanism + jQuery( '.redux-action_bar .spinner' ).addClass( 'is-active' ); + + jQuery( '.redux-action_bar input' ).attr( 'disabled', 'disabled' ); + var $notification_bar = jQuery( document.getElementById( 'redux_notification_bar' ) ); + $notification_bar.slideUp(); + jQuery( '.redux-save-warn' ).slideUp(); + jQuery( '.redux_ajax_save_error' ).slideUp( + 'medium', function() { + jQuery( this ).remove(); + } + ); + + var $parent = jQuery( document.getElementById( "redux-form-wrapper" ) ); + + // Editor field doesn't auto save. Have to call it. Boo. + if ( redux.fields.hasOwnProperty( "editor" ) ) { + $.each( + redux.fields.editor, function( $key, $index ) { + if ( typeof(tinyMCE) !== 'undefined' ) { + var editor = tinyMCE.get( $key ); + if ( editor ) { + editor.save(); + } + } + } + ); + } + + var $data = $parent.serialize(); + // add values for checked and unchecked checkboxes fields + $parent.find( 'input[type=checkbox]' ).each( + function() { + if ( typeof $( this ).attr( 'name' ) !== "undefined" ) { + var chkVal = $( this ).is( ':checked' ) ? $( this ).val() : "0"; + $data += "&" + $( this ).attr( 'name' ) + "=" + chkVal; + } + } + ); + + + if ( button.attr( 'name' ) != "redux_save" ) { + $data += "&" + button.attr( 'name' ) + "=" + button.val(); + } + + var $nonce = $parent.attr( "data-nonce" ); + + jQuery.ajax( + { + type: "post", + dataType: "json", + url: ajaxurl, + data: { + action: redux.args.opt_name + "_ajax_save", + nonce: $nonce, + 'opt_name': redux.args.opt_name, + data: $data + }, + error: function( response ) { + if ( !window.console ) console = {}; + console.log = console.log || function( name, data ) {}; + console.log( redux.ajax.console ); + console.log( response.responseText ); + jQuery( '.redux-action_bar input' ).removeAttr( 'disabled' ); + overlay.fadeOut( 'fast' ); + jQuery( '.redux-action_bar .spinner' ).removeClass( 'is-active' ); + alert( redux.ajax.alert ); + }, + success: function( response ) { + if ( response.action && response.action == "reload" ) { + location.reload( true ); + } else if ( response.status == "success" ) { + jQuery( '.redux-action_bar input' ).removeAttr( 'disabled' ); + overlay.fadeOut( 'fast' ); + jQuery( '.redux-action_bar .spinner' ).removeClass( 'is-active' ); + redux.options = response.options; + //redux.defaults = response.defaults; + redux.errors = response.errors; + redux.warnings = response.warnings; + + $notification_bar.html( response.notification_bar ).slideDown( 'fast' ); + if ( response.errors !== null || response.warnings !== null ) { + $.redux.notices(); + } + var $save_notice = $( document.getElementById( 'redux_notification_bar' ) ).find( '.saved_notice' ); + $save_notice.slideDown(); + $save_notice.delay( 4000 ).slideUp(); + } else { + jQuery( '.redux-action_bar input' ).removeAttr( 'disabled' ); + jQuery( '.redux-action_bar .spinner' ).removeClass( 'is-active' ); + overlay.fadeOut( 'fast' ); + jQuery( '.wrap h2:first' ).parent().append( '

' ); + jQuery( '.redux_ajax_save_error' ).slideDown(); + jQuery( "html, body" ).animate( {scrollTop: 0}, "slow" ); + } + } + } + ); + return false; + }; + + $.redux.initEvents = function() { + $( '.redux-presets-bar' ).on( + 'click', function() { + window.onbeforeunload = null; + } + ); + + + $( '#toplevel_page_' + redux.args.slug + ' .wp-submenu a, #wp-admin-bar-' + redux.args.slug + ' a.ab-item' ).click( + function( e ) { + + if ( ( $( '#toplevel_page_' + redux.args.slug ).hasClass( 'wp-menu-open' ) || $( this ).hasClass( 'ab-item' ) ) && !$( this ).parents( 'ul.ab-submenu:first' ).hasClass( 'ab-sub-secondary' ) && $( this ).attr( 'href' ).toLowerCase().indexOf( redux.args.slug + "&tab=" ) >= 0 ) { + e.preventDefault(); + var url = $( this ).attr( 'href' ).split( '&tab=' ); + $( '#' + url[1] + '_section_group_li_a' ).click(); + $( this ).parents( 'ul:first' ).find( '.current' ).removeClass( 'current' ); + $( this ).addClass( 'current' ); + $( this ).parent().addClass( 'current' ); + return false; + } + } + ); + + // Save button clicked + $( '.redux-action_bar input, #redux-import-action input' ).on( + 'click', function( e ) { + if ( $( this ).attr( 'name' ) == redux.args.opt_name + '[defaults]' ) { + // Defaults button clicked + if ( !confirm( redux.args.reset_confirm ) ) { + return false; + } + } else if ( $( this ).attr( 'name' ) == redux.args.opt_name + '[defaults-section]' ) { + // Default section clicked + if ( !confirm( redux.args.reset_section_confirm ) ) { + return false; + } + } else if ( $( this ).attr( 'name' ) == 'import' ) { + if ( !confirm( redux.args.import_section_confirm ) ) { + return false; + } + } + + window.onbeforeunload = null; + + if ( redux.args.ajax_save === true ) { + $.redux.ajax_save( $( this ) ); + e.preventDefault(); + } else { + location.reload( true ); + } + } + ); + + $( '.expand_options' ).click( + function( e ) { + + e.preventDefault(); + + var container = $( '.redux-container' ); + if ( $( container ).hasClass( 'fully-expanded' ) ) { + $( container ).removeClass( 'fully-expanded' ); + + var tab = $.cookie( "redux_current_tab" ); + + $( '.redux-container:first' ).find( '#' + tab + '_section_group' ).fadeIn( + 200, function() { + if ( $( '.redux-container:first' ).find( '#redux-footer' ).length !== 0 ) { + $.redux.stickyInfo(); // race condition fix + } + $.redux.initFields(); + } + ); + } + + $.redux.expandOptions( $( this ).parents( '.redux-container:first' ) ); + + return false; + } + ); + + if ( $( '.saved_notice' ).is( ':visible' ) ) { + $( '.saved_notice' ).slideDown(); + } + + $( document.body ).on( + 'change', '.redux-field input, .redux-field textarea, .redux-field select', function() { + if ( !$( this ).hasClass( 'noUpdate' ) ) { + redux_change( $( this ) ); + } + } + ); + + var stickyHeight = $( '#redux-footer' ).height(); + + $( '#redux-sticky-padder' ).css( + { + height: stickyHeight + } + ); + $( '#redux-footer-sticky' ).removeClass( 'hide' ); + + if ( $( '#redux-footer' ).length !== 0 ) { + $( window ).scroll( + function() { + $.redux.stickyInfo(); + } + ); + + $( window ).resize( + function() { + $.redux.stickyInfo(); + } + ); + } + + $( '.saved_notice' ).delay( 4000 ).slideUp(); + + + }; + + $.redux.hideFields = function() { + $( "label[for='redux_hide_field']" ).each( + function( idx, val ) { + var tr = $( this ).parent().parent(); + $( tr ).addClass( 'hidden' ); + } + ); + }; + + $.redux.checkRequired = function() { + $.redux.required(); + + $( "body" ).on( + 'change', + '.redux-main select, .redux-main radio, .redux-main input[type=checkbox], .redux-main input[type=hidden]', + function( e ) { + $.redux.check_dependencies( this ); + } + ); + + $( "body" ).on( + 'check_dependencies', function( e, variable ) { + $.redux.check_dependencies( variable ); + } + ); + + $( '.redux-container td > fieldset:empty,td > div:empty' ).parent().parent().hide(); + }; + + $.redux.initQtip = function() { + if ( $().qtip ) { + // Shadow + var shadow = ''; + var tip_shadow = redux.args.hints.tip_style.shadow; + + if ( tip_shadow === true ) { + shadow = 'qtip-shadow'; + } + + // Color + var color = ''; + var tip_color = redux.args.hints.tip_style.color; + + if ( tip_color !== '' ) { + color = 'qtip-' + tip_color; + } + + // Rounded + var rounded = ''; + var tip_rounded = redux.args.hints.tip_style.rounded; + + if ( tip_rounded === true ) { + rounded = 'qtip-rounded'; + } + + // Tip style + var style = ''; + var tip_style = redux.args.hints.tip_style.style; + + if ( tip_style !== '' ) { + style = 'qtip-' + tip_style; + } + + var classes = shadow + ',' + color + ',' + rounded + ',' + style + ',redux-qtip'; + classes = classes.replace( /,/g, ' ' ); + + // Get position data + var myPos = redux.args.hints.tip_position.my; + var atPos = redux.args.hints.tip_position.at; + + // Gotta be lowercase, and in proper format + myPos = $.redux.verifyPos( myPos.toLowerCase(), true ); + atPos = $.redux.verifyPos( atPos.toLowerCase(), false ); + + // Tooltip trigger action + var showEvent = redux.args.hints.tip_effect.show.event; + var hideEvent = redux.args.hints.tip_effect.hide.event; + + // Tip show effect + var tipShowEffect = redux.args.hints.tip_effect.show.effect; + var tipShowDuration = redux.args.hints.tip_effect.show.duration; + + // Tip hide effect + var tipHideEffect = redux.args.hints.tip_effect.hide.effect; + var tipHideDuration = redux.args.hints.tip_effect.hide.duration; + + $( 'div.redux-dev-qtip' ).each( + function() { + $( this ).qtip( + { + content: { + text: $( this ).attr( 'qtip-content' ), + title: $( this ).attr( 'qtip-title' ) + }, + show: { + effect: function() { + $( this ).slideDown( 500 ); + }, + event: 'mouseover', + }, + hide: { + effect: function() { + $( this ).slideUp( 500 ); + }, + event: 'mouseleave', + }, + style: { + classes: 'qtip-shadow qtip-light', + }, + position: { + my: 'top center', + at: 'bottom center', + }, + } + ); + } + ); + + $( 'div.redux-hint-qtip' ).each( + function() { + $( this ).qtip( + { + content: { + text: $( this ).attr( 'qtip-content' ), + title: $( this ).attr( 'qtip-title' ) + }, + show: { + effect: function() { + switch ( tipShowEffect ) { + case 'slide': + $( this ).slideDown( tipShowDuration ); + break; + case 'fade': + $( this ).fadeIn( tipShowDuration ); + break; + default: + $( this ).show(); + break; + } + }, + event: showEvent, + }, + hide: { + effect: function() { + switch ( tipHideEffect ) { + case 'slide': + $( this ).slideUp( tipHideDuration ); + break; + case 'fade': + $( this ).fadeOut( tipHideDuration ); + break; + default: + $( this ).hide( tipHideDuration ); + break; + } + }, + event: hideEvent, + }, + style: { + classes: classes, + }, + position: { + my: myPos, + at: atPos, + }, + } + ); + } + ); + // }); + + $( 'input[qtip-content]' ).each( + function() { + $( this ).qtip( + { + content: { + text: $( this ).attr( 'qtip-content' ), + title: $( this ).attr( 'qtip-title' ) + }, + show: 'focus', + hide: 'blur', + style: classes, + position: { + my: myPos, + at: atPos, + }, + } + ); + } + ); + } + }; + + $.redux.tabCheck = function() { + $( '.redux-group-tab-link-a' ).click( + function() { + var link = $( this ); + if ( link.parent().hasClass( 'empty_section' ) && link.parent().hasClass( 'hasSubSections' ) ) { + var elements = $( this ).closest( 'ul' ).find( '.redux-group-tab-link-a' ); + var index = elements.index( this ); + link = elements.slice( index + 1, index + 2 ); + } + var el = link.parents( '.redux-container:first' ); + var relid = link.data( 'rel' ); // The group ID of interest + var oldid = el.find( '.redux-group-tab-link-li.active:first .redux-group-tab-link-a' ).data( 'rel' ); + + //console.log('id: '+relid+' oldid: '+oldid); + + if ( oldid === relid ) { + return; + } + + $( '#currentSection' ).val( relid ); + if ( !link.parents( '.postbox-container:first' ).length ) { + // Set the proper page cookie + $.cookie( + 'redux_current_tab', relid, { + expires: 7, + path: '/' + } + ); + } + + if ( el.find( '#' + relid + '_section_group_li' ).parents( '.redux-group-tab-link-li' ).length ) { + var parentID = el.find( '#' + relid + '_section_group_li' ).parents( '.redux-group-tab-link-li' ).attr( 'id' ).split( '_' ); + parentID = parentID[0]; + } + + el.find( '#toplevel_page_' + redux.args.slug + ' .wp-submenu a.current' ).removeClass( 'current' ); + el.find( '#toplevel_page_' + redux.args.slug + ' .wp-submenu li.current' ).removeClass( 'current' ); + + el.find( '#toplevel_page_' + redux.args.slug + ' .wp-submenu a' ).each( + function() { + var url = $( this ).attr( 'href' ).split( '&tab=' ); + if ( url[1] == relid || url[1] == parentID ) { + $( this ).addClass( 'current' ); + $( this ).parent().addClass( 'current' ); + } + } + ); + + if ( el.find( '#' + oldid + '_section_group_li' ).find( '#' + oldid + '_section_group_li' ).length ) { + //console.log('RELID is child of oldid'); + el.find( '#' + oldid + '_section_group_li' ).addClass( 'activeChild' ); + el.find( '#' + relid + '_section_group_li' ).addClass( 'active' ).removeClass( 'activeChild' ); + } else if ( el.find( '#' + relid + '_section_group_li' ).parents( '#' + oldid + '_section_group_li' ).length || el.find( '#' + oldid + '_section_group_li' ).parents( 'ul.subsection' ).find( '#' + relid + '_section_group_li' ).length ) { + //console.log('RELID is sibling or child of OLDID'); + if ( el.find( '#' + relid + '_section_group_li' ).parents( '#' + oldid + '_section_group_li' ).length ) { + //console.log('child of oldid'); + el.find( '#' + oldid + '_section_group_li' ).addClass( 'activeChild' ).removeClass( 'active' ); + } else { + //console.log('sibling'); + el.find( '#' + relid + '_section_group_li' ).addClass( 'active' ); + el.find( '#' + oldid + '_section_group_li' ).removeClass( 'active' ); + } + el.find( '#' + relid + '_section_group_li' ).removeClass( 'activeChild' ).addClass( 'active' ); + } else { + el.find( '#' + relid + '_section_group_li' ).addClass( 'active' ).removeClass( 'activeChild' ).find( 'ul.subsection' ).slideDown(); + + if ( el.find( '#' + oldid + '_section_group_li' ).find( 'ul.subsection' ).length ) { + //console.log('oldid is parent'); + //console.log('#' + relid + '_section_group_li'); + + el.find( '#' + oldid + '_section_group_li' ).find( 'ul.subsection' ).slideUp( + 'fast', function() { + el.find( '#' + oldid + '_section_group_li' ).removeClass( 'active' ).removeClass( 'activeChild' ); + } + ); + var newParent = el.find( '#' + relid + '_section_group_li' ).parents( '.hasSubSections:first' ); + + if ( newParent.length > 0 ) { + el.find( '#' + relid + '_section_group_li' ).removeClass( 'active' ); + relid = newParent.find( '.redux-group-tab-link-a:first' ).data( 'rel' ); + //console.log(relid); + if ( newParent.hasClass( 'empty_section' ) ) { + newParent.find( '.subsection li:first' ).addClass( 'active' ); + el.find( '#' + relid + '_section_group_li' ).removeClass( 'active' ).addClass( 'activeChild' ).find( 'ul.subsection' ).slideDown(); + newParent = newParent.find( '.subsection li:first' ); + relid = newParent.find( '.redux-group-tab-link-a:first' ).data( 'rel' ); + //console.log('Empty section, do the next one?'); + } else { + el.find( '#' + relid + '_section_group_li' ).addClass( 'active' ).removeClass( 'activeChild' ).find( 'ul.subsection' ).slideDown(); + } + } + } else if ( el.find( '#' + oldid + '_section_group_li' ).parents( 'ul.subsection' ).length ) { + //console.log('oldid is a child'); + if ( !el.find( '#' + oldid + '_section_group_li' ).parents( '#' + relid + '_section_group_li' ).length ) { + //console.log('oldid is child, but not of relid'); + el.find( '#' + oldid + '_section_group_li' ).parents( 'ul.subsection' ).slideUp( + 'fast', function() { + el.find( '#' + oldid + '_section_group_li' ).removeClass( 'active' ); + el.find( '#' + oldid + '_section_group_li' ).parents( '.redux-group-tab-link-li' ).removeClass( 'active' ).removeClass( 'activeChild' ); + el.find( '#' + relid + '_section_group_li' ).parents( '.redux-group-tab-link-li' ).addClass( 'activeChild' ).find( 'ul.subsection' ).slideDown(); + el.find( '#' + relid + '_section_group_li' ).addClass( 'active' ); + } + ); + } else { + //console.log('oldid is child, but not of relid2'); + el.find( '#' + oldid + '_section_group_li' ).removeClass( 'active' ); + } + } else { + //console.log('Normal remove active from child'); + el.find( '#' + oldid + '_section_group_li' ).removeClass( 'active' ); + if ( el.find( '#' + relid + '_section_group_li' ).parents( '.redux-group-tab-link-li' ).length ) { + //console.log('here'); + el.find( '#' + relid + '_section_group_li' ).parents( '.redux-group-tab-link-li' ).addClass( 'activeChild' ).find( 'ul.subsection' ).slideDown(); + el.find( '#' + relid + '_section_group_li' ).addClass( 'active' ); + } + } + } + + // Show the group + el.find( '#' + oldid + '_section_group' ).hide(); + + el.find( '#' + relid + '_section_group' ).fadeIn( + 200, function() { + if ( el.find( '#redux-footer' ).length !== 0 ) { + $.redux.stickyInfo(); // race condition fix + } + $.redux.initFields(); + } + ); + $( '#toplevel_page_' + redux.args.slug ).find( '.current' ).removeClass( 'current' ); + + } + ); + + if ( redux.last_tab !== undefined ) { + $( '#' + redux.last_tab + '_section_group_li_a' ).click(); + return; + } + + var tab = decodeURI( (new RegExp( 'tab' + '=' + '(.+?)(&|$)' ).exec( location.search ) || ['', ''])[1] ); + + if ( tab !== "" ) { + if ( $.cookie( "redux_current_tab_get" ) !== tab ) { + $.cookie( + 'redux_current_tab', tab, { + expires: 7, + path: '/' + } + ); + $.cookie( + 'redux_current_tab_get', tab, { + expires: 7, + path: '/' + } + ); + + $( '#' + tab + '_section_group_li' ).click(); + } + } else if ( $.cookie( 'redux_current_tab_get' ) !== "" ) { + $.removeCookie( 'redux_current_tab_get' ); + } + + var sTab = $( '#' + $.cookie( "redux_current_tab" ) + '_section_group_li_a' ); + + // Tab the first item or the saved one + if ( $.cookie( "redux_current_tab" ) === null || typeof ($.cookie( "redux_current_tab" )) === "undefined" || sTab.length === 0 ) { + $( '.redux-container' ).find( '.redux-group-tab-link-a:first' ).click(); + } else { + sTab.click(); + } + + }; + + $.redux.initFields = function() { + $( ".redux-group-tab:visible" ).find( ".redux-field-init:visible" ).each( + function() { + + var type = $( this ).attr( 'data-type' ); + //console.log(type); + //if ( typeof redux.field_objects != 'undefined' && redux.field_objects[type] && redux.field_objects[type] ) { + if ( type in redux.field_objects && typeof redux.field_objects[type].init == 'function' ) { + redux.field_objects[type].init(); + } + if ( !redux.customizer && $( this ).hasClass( 'redux_remove_th' ) ) { + + var tr = $( this ).parents( 'tr:first' ); + var th = tr.find( 'th:first' ); + if ( th.html() && th.html().length > 0 ) { + $( this ).prepend( th.html() ); + $( this ).find( '.redux_field_th' ).css( 'padding', '0 0 10px 0' ); + } + $( this ).parent().attr( 'colspan', '2' ); + th.remove(); + } + } + ); + }; + + $.redux.notices = function() { + if ( redux.errors && redux.errors.errors ) { + $.each( + redux.errors.errors, function( sectionID, sectionArray ) { + $.each( + sectionArray.errors, function( key, value ) { + $( "#" + redux.args.opt_name + '-' + value.id ).addClass( "redux-field-error" ); + if ( $( "#" + redux.args.opt_name + '-' + value.id ).parent().find( '.redux-th-error' ).length === 0 ) { + $( "#" + redux.args.opt_name + '-' + value.id ).append( '
' + value.msg + '
' ); + } else { + $( "#" + redux.args.opt_name + '-' + value.id ).parent().find( '.redux-th-error' ).html( value.msg ).css( + 'display', 'block' + ); + } + } + ); + } + ); + $( '.redux-container' ).each( + function() { + var container = $( this ); + // Ajax cleanup + container.find( '.redux-menu-error' ).remove(); + var totalErrors = container.find( '.redux-field-error' ).length; + if ( totalErrors > 0 ) { + container.find( ".redux-field-errors span" ).text( totalErrors ); + container.find( ".redux-field-errors" ).slideDown(); + container.find( '.redux-group-tab' ).each( + function() { + var total = $( this ).find( '.redux-field-error' ).length; + if ( total > 0 ) { + var sectionID = $( this ).attr( 'id' ).split( '_' ); + sectionID = sectionID[0]; + container.find( '.redux-group-tab-link-a[data-key="' + sectionID + '"]' ).prepend( '' + total + '' ); + container.find( '.redux-group-tab-link-a[data-key="' + sectionID + '"]' ).addClass( "hasError" ); + var subParent = container.find( '.redux-group-tab-link-a[data-key="' + sectionID + '"]' ).parents( '.hasSubSections:first' ); + if ( subParent ) { + subParent.find( '.redux-group-tab-link-a:first' ).addClass( 'hasError' ); + } + } + } + ); + } + } + ); + } + if ( redux.warnings && redux.warnings.warnings ) { + $.each( + redux.warnings.warnings, function( sectionID, sectionArray ) { + $.each( + sectionArray.warnings, function( key, value ) { + $( "#" + redux.args.opt_name + '-' + value.id ).addClass( "redux-field-warning" ); + if ( $( "#" + redux.args.opt_name + '-' + value.id ).parent().find( '.redux-th-warning' ).length === 0 ) { + $( "#" + redux.args.opt_name + '-' + value.id ).append( '
' + value.msg + '
' ); + } else { + $( "#" + redux.args.opt_name + '-' + value.id ).parent().find( '.redux-th-warning' ).html( value.msg ).css( + 'display', 'block' + ); + } + } + ); + } + ); + $( '.redux-container' ).each( + function() { + var container = $( this ); + // Ajax cleanup + container.find( '.redux-menu-warning' ).remove(); + var totalWarnings = container.find( '.redux-field-warning' ).length; + if ( totalWarnings > 0 ) { + container.find( ".redux-field-warnings span" ).text( totalWarnings ); + container.find( ".redux-field-warnings" ).slideDown(); + container.find( '.redux-group-tab' ).each( + function() { + var total = $( this ).find( '.redux-field-warning' ).length; + if ( total > 0 ) { + var sectionID = $( this ).attr( 'id' ).split( '_' ); + sectionID = sectionID[0]; + container.find( '.redux-group-tab-link-a[data-key="' + sectionID + '"]' ).prepend( '' + total + '' ); + container.find( '.redux-group-tab-link-a[data-key="' + sectionID + '"]' ).addClass( "hasWarning" ); + var subParent = container.find( '.redux-group-tab-link-a[data-key="' + sectionID + '"]' ).parents( '.hasSubSections:first' ); + if ( subParent ) { + subParent.find( '.redux-group-tab-link-a:first' ).addClass( 'hasWarning' ); + } + } + } + ); + } + } + ); + } + }; + + $.redux.tabControl = function() { + $( '.redux-section-tabs div' ).hide(); + $( '.redux-section-tabs div:first' ).show(); + $( '.redux-section-tabs ul li:first' ).addClass( 'active' ); + + $( '.redux-section-tabs ul li a' ).click( + function() { + $( '.redux-section-tabs ul li' ).removeClass( 'active' ); + $( this ).parent().addClass( 'active' ); + + var currentTab = $( this ).attr( 'href' ); + + $( '.redux-section-tabs div' ).hide(); + $( currentTab ).fadeIn( + 'medium', function() { + $.redux.initFields(); + } + ); + + return false; + } + ); + }; + + $.redux.required = function() { + + // Hide the fold elements on load , + // It's better to do this by PHP but there is no filter in tr tag , so is not possible + // we going to move each attributes we may need for folding to tr tag + $.each( + redux.folds, function( i, v ) { + var fieldset = $( '#' + redux.args.opt_name + '-' + i ); + + fieldset.parents( 'tr:first' ).addClass( 'fold' ); + + if ( v == "hide" ) { + fieldset.parents( 'tr:first' ).addClass( 'hide' ); + + if ( fieldset.hasClass( 'redux-container-section' ) ) { + var div = $( '#section-' + i ); + + if ( div.hasClass( 'redux-section-indent-start' ) ) { + $( '#section-table-' + i ).hide().addClass( 'hide' ); + div.hide().addClass( 'hide' ); + } + } + + if ( fieldset.hasClass( 'redux-container-info' ) ) { + $( '#info-' + i ).hide().addClass( 'hide' ); + } + + if ( fieldset.hasClass( 'redux-container-divide' ) ) { + $( '#divide-' + i ).hide().addClass( 'hide' ); + } + + if ( fieldset.hasClass( 'redux-container-raw' ) ) { + var rawTable = fieldset.parents().find( 'table#' + redux.args.opt_name + '-' + i ); + rawTable.hide().addClass( 'hide' ); + } + } + } + ); + }; + + $.redux.get_container_value = function( id ) { + var value = $( '#' + redux.args.opt_name + '-' + id ).serializeForm(); + + if ( value !== null && typeof value === 'object' && value.hasOwnProperty( redux.args.opt_name ) ) { + value = value[redux.args.opt_name][id]; + } + if ( $( '#' + redux.args.opt_name + '-' + id ).hasClass( 'redux-container-media' ) ) { + value = value.url; + } + return value; + }; + + $.redux.check_dependencies = function( variable ) { + if ( redux.required === null ) { + return; + } + + var current = $( variable ), + id = current.parents( '.redux-field:first' ).data( 'id' ); + + if ( !redux.required.hasOwnProperty( id ) ) { + return; + } + + var container = current.parents( '.redux-field-container:first' ), + is_hidden = container.parents( 'tr:first' ).hasClass( 'hide' ); + + if ( !container.parents( 'tr:first' ).length ) { + is_hidden = container.parents( '.customize-control:first' ).hasClass( 'hide' ); + } + + $.each( + redux.required[id], function( child, dependents ) { + + var current = $( this ), + show = false, + childFieldset = $( '#' + redux.args.opt_name + '-' + child ), + tr = childFieldset.parents( 'tr:first' ); + + if ( !is_hidden ) { + show = $.redux.check_parents_dependencies( child ); + } + + if ( show === true ) { + // Shim for sections + if ( childFieldset.hasClass( 'redux-container-section' ) ) { + var div = $( '#section-' + child ); + + if ( div.hasClass( 'redux-section-indent-start' ) && div.hasClass( 'hide' ) ) { + $( '#section-table-' + child ).fadeIn( 300 ).removeClass( 'hide' ); + div.fadeIn( 300 ).removeClass( 'hide' ); + } + } + + if ( childFieldset.hasClass( 'redux-container-info' ) ) { + $( '#info-' + child ).fadeIn( 300 ).removeClass( 'hide' ); + } + + if ( childFieldset.hasClass( 'redux-container-divide' ) ) { + $( '#divide-' + child ).fadeIn( 300 ).removeClass( 'hide' ); + } + + if ( childFieldset.hasClass( 'redux-container-raw' ) ) { + var rawTable = childFieldset.parents().find( 'table#' + redux.args.opt_name + '-' + child ); + rawTable.fadeIn( 300 ).removeClass( 'hide' ); + } + + tr.fadeIn( + 300, function() { + $( this ).removeClass( 'hide' ); + if ( redux.required.hasOwnProperty( child ) ) { + $.redux.check_dependencies( $( '#' + redux.args.opt_name + '-' + child ).children().first() ); + } + $.redux.initFields(); + } + ); + if ( childFieldset.hasClass( 'redux-container-section' ) || childFieldset.hasClass( 'redux-container-info' ) ) { + tr.css( {display: 'none'} ); + } + } else if ( show === false ) { + tr.fadeOut( + 100, function() { + $( this ).addClass( 'hide' ); + if ( redux.required.hasOwnProperty( child ) ) { + //console.log('Now check, reverse: '+child); + $.redux.required_recursive_hide( child ); + } + } + ); + } + + current.find( 'select, radio, input[type=checkbox]' ).trigger( 'change' ); + } + ); + }; + + $.redux.required_recursive_hide = function( id ) { + var toFade = $( '#' + redux.args.opt_name + '-' + id ).parents( 'tr:first' ); + + toFade.fadeOut( + 50, function() { + $( this ).addClass( 'hide' ); + + if ( $( '#' + redux.args.opt_name + '-' + id ).hasClass( 'redux-container-section' ) ) { + var div = $( '#section-' + id ); + if ( div.hasClass( 'redux-section-indent-start' ) ) { + $( '#section-table-' + id ).fadeOut( 50 ).addClass( 'hide' ); + div.fadeOut( 50 ).addClass( 'hide' ); + } + } + + if ( $( '#' + redux.args.opt_name + '-' + id ).hasClass( 'redux-container-info' ) ) { + $( '#info-' + id ).fadeOut( 50 ).addClass( 'hide' ); + } + + if ( $( '#' + redux.args.opt_name + '-' + id ).hasClass( 'redux-container-divide' ) ) { + $( '#divide-' + id ).fadeOut( 50 ).addClass( 'hide' ); + } + + if ( $( '#' + redux.args.opt_name + '-' + id ).hasClass( 'redux-container-raw' ) ) { + var rawTable = $( '#' + redux.args.opt_name + '-' + id ).parents().find( 'table#' + redux.args.opt_name + '-' + id ); + rawTable.fadeOut( 50 ).addClass( 'hide' ); + } + + if ( redux.required.hasOwnProperty( id ) ) { + $.each( + redux.required[id], function( child ) { + $.redux.required_recursive_hide( child ); + } + ); + } + } + ); + }; + + $.redux.check_parents_dependencies = function( id ) { + var show = ""; + + if ( redux.required_child.hasOwnProperty( id ) ) { + $.each( + redux.required_child[id], function( i, parentData ) { + if ( $( '#' + redux.args.opt_name + '-' + parentData.parent ).parents( 'tr:first' ).hasClass( 'hide' ) ) { + show = false; + } else { + if ( show !== false ) { + var parentValue = $.redux.get_container_value( parentData.parent ); + show = $.redux.check_dependencies_visibility( parentValue, parentData ); + } + } + } + ); + } else { + show = true; + } + return show; + }; + + $.redux.check_dependencies_visibility = function( parentValue, data ) { + var show = false, + checkValue_array, + checkValue = data.checkValue, + operation = data.operation, + arr; + + if ($.isPlainObject( parentValue )) { + parentValue = Object.keys( parentValue ).map( + function( key ) { + return [key, parentValue[key]]; + } + ); + } + + switch ( operation ) { + case '=': + case 'equals': + if ( $.isArray( parentValue ) ) { + $( parentValue[0] ).each( + function( idx, val ) { + if ( $.isArray( checkValue ) ) { + $( checkValue ).each( + function( i, v ) { + if ( val == v ) { + show = true; + return true; + } + } + ); + } else { + if ( val == checkValue ) { + show = true; + return true; + } + } + } + ); + } else { + if ( $.isArray( checkValue ) ) { + $( checkValue ).each( + function( i, v ) { + if ( parentValue == v ) { + show = true; + } + } + ); + } else { + if ( parentValue == checkValue ) { + show = true; + } + } + } + break; + + case '!=': + case 'not': + if ( $.isArray( parentValue ) ) { + $( parentValue[0] ).each( + function( idx, val ) { + if ( $.isArray( checkValue ) ) { + $( checkValue ).each( + function( i, v ) { + if ( val != v ) { + show = true; + return true; + } + } + ); + } else { + if ( val != checkValue ) { + show = true; + return true; + } + } + } + ); + } else { + if ( $.isArray( checkValue ) ) { + $( checkValue ).each( + function( i, v ) { + if ( parentValue != v ) { + show = true; + } + } + ); + } else { + if ( parentValue != checkValue ) { + show = true; + } + } + } + break; + + case '>': + case 'greater': + case 'is_larger': + if ( parseFloat( parentValue ) > parseFloat( checkValue ) ) { + show = true; + } + break; + + case '>=': + case 'greater_equal': + case 'is_larger_equal': + if ( parseFloat( parentValue ) >= parseFloat( checkValue ) ) { + show = true; + } + break; + + case '<': + case 'less': + case 'is_smaller': + if ( parseFloat( parentValue ) < parseFloat( checkValue ) ) { + show = true; + } + break; + + case '<=': + case 'less_equal': + case 'is_smaller_equal': + if ( parseFloat( parentValue ) <= parseFloat( checkValue ) ) { + show = true; + } + break; + + case 'contains': + if ( $.isPlainObject( parentValue ) ) { + parentValue = Object.keys( parentValue ).map( + function( key ) { + return [key, parentValue[key]]; + } + ); + } + + if ( $.isPlainObject( checkValue ) ) { + checkValue = Object.keys( checkValue ).map( + function( key ) { + return [key, checkValue[key]]; + } + ); + } + + if ( $.isArray( checkValue ) ) { + $( checkValue ).each( + function( idx, val ) { + var breakMe = false; + var toFind = val[0]; + var findVal = val[1]; + + $( parentValue ).each( + function( i, v ) { + var toMatch = v[0]; + var matchVal = v[1]; + + if ( toFind === toMatch ) { + if ( findVal == matchVal ) { + show = true; + breakMe = true; + + return false; + } + } + } + ); + + if ( breakMe === true ) { + return false; + } + } + ); + } else { + if ( parentValue.toString().indexOf( checkValue ) !== -1 ) { + show = true; + } + } + break; + + case 'doesnt_contain': + case 'not_contain': + if ( $.isPlainObject( parentValue ) ) { + arr = Object.keys( parentValue ).map( + function( key ) { + return parentValue[key]; + } + ); + parentValue = arr; + } + + if ( $.isPlainObject( checkValue ) ) { + arr = Object.keys( checkValue ).map( + function( key ) { + return checkValue[key]; + } + ); + checkValue = arr; + } + + if ( $.isArray( checkValue ) ) { + $( checkValue ).each( + function( idx, val ) { + if ( parentValue.toString().indexOf( val ) === -1 ) { + show = true; + } + } + ); + } else { + if ( parentValue.toString().indexOf( checkValue ) === -1 ) { + show = true; + } + } + break; + + case 'is_empty_or': + if ( parentValue === "" || parentValue == checkValue ) { + show = true; + } + break; + + case 'not_empty_and': + if ( parentValue !== "" && parentValue != checkValue ) { + show = true; + } + break; + + case 'is_empty': + case 'empty': + case '!isset': + if ( !parentValue || parentValue === "" || parentValue === null ) { + show = true; + } + break; + + case 'not_empty': + case '!empty': + case 'isset': + if ( parentValue && parentValue !== "" && parentValue !== null ) { + show = true; + } + break; + } + return show; + + }; + + $.redux.verifyPos = function( s, b ) { + + // trim off spaces + s = s.replace( /^\s+|\s+$/gm, '' ); + + // position value is blank, set the default + if ( s === '' || s.search( ' ' ) == -1 ) { + if ( b === true ) { + return 'top left'; + } else { + return 'bottom right'; + } + } + + // split string into array + var split = s.split( ' ' ); + + // Evaluate first string. Must be top, center, or bottom + var paramOne = b ? 'top' : 'bottom'; + if ( split[0] == 'top' || split[0] == 'center' || split[0] == 'bottom' ) { + paramOne = split[0]; + } + + // Evaluate second string. Must be left, center, or right. + var paramTwo = b ? 'left' : 'right'; + if ( split[1] == 'left' || split[1] == 'center' || split[1] == 'right' ) { + paramTwo = split[1]; + } + + return paramOne + ' ' + paramTwo; + }; + + $.redux.stickyInfo = function() { + var stickyWidth = $( '.redux-main' ).innerWidth() - 20; + + if ( !$( '#info_bar' ).isOnScreen() && !$( '#redux-footer-sticky' ).isOnScreen() ) { + $( '#redux-footer' ).css( + { + position: 'fixed', + bottom: '0', + width: stickyWidth, + right: 21 + } + ); + $( '#redux-footer' ).addClass( 'sticky-footer-fixed' ); + $( '.redux-save-warn' ).css( 'left', $( '#redux-sticky' ).offset().left ); + $( '#redux-sticky-padder' ).show(); + } else { + $( '#redux-footer' ).css( + { + background: '#eee', + position: 'inherit', + bottom: 'inherit', + width: 'inherit' + } + ); + $( '#redux-sticky-padder' ).hide(); + $( '#redux-footer' ).removeClass( 'sticky-footer-fixed' ); + } + if ( !$( '#info_bar' ).isOnScreen() ) { + $( '#redux-sticky' ).addClass( 'sticky-save-warn' ); + } else { + $( '#redux-sticky' ).removeClass( 'sticky-save-warn' ); + } + }; + + $.redux.expandOptions = function( parent ) { + var trigger = parent.find( '.expand_options' ); + var width = parent.find( '.redux-sidebar' ).width() - 1; + var id = $( '.redux-group-menu .active a' ).data( 'rel' ) + '_section_group'; + + if ( trigger.hasClass( 'expanded' ) ) { + trigger.removeClass( 'expanded' ); + parent.find( '.redux-main' ).removeClass( 'expand' ); + + parent.find( '.redux-sidebar' ).stop().animate( + { + 'margin-left': '0px' + }, 500 + ); + + parent.find( '.redux-main' ).stop().animate( + { + 'margin-left': width + }, 500, function() { + parent.find( '.redux-main' ).attr( 'style', '' ); + } + ); + + parent.find( '.redux-group-tab' ).each( + function() { + if ( $( this ).attr( 'id' ) !== id ) { + $( this ).fadeOut( 'fast' ); + } + } + ); + // Show the only active one + } else { + trigger.addClass( 'expanded' ); + parent.find( '.redux-main' ).addClass( 'expand' ); + + parent.find( '.redux-sidebar' ).stop().animate( + { + 'margin-left': -width - 113 + }, 500 + ); + + parent.find( '.redux-main' ).stop().animate( + { + 'margin-left': '-1px' + }, 500 + ); + + parent.find( '.redux-group-tab' ).fadeIn( + 'medium', function() { + $.redux.initFields(); + } + ); + } + return false; + }; + + + $.redux.scaleToRatio = function( el, maxHeight, maxWidth ) { + var ratio = 0; // Used for aspect ratio + + var width = el.attr( 'data-width' ); + if ( !width ) { + width = el.width(); + el.attr( 'data-width', width ); + } + var height = el.attr( 'data-height' ); + var eHeight = el.height(); + if ( !height || eHeight > height ) { + height = eHeight; + el.attr( 'data-height', height ); + el.css( "width", 'auto' ); + el.attr( 'data-width', el.width() ); + width = el.width(); + } + + + // Check if the current width is larger than the max + if ( width > maxWidth ) { + ratio = maxWidth / width; // get ratio for scaling image + el.css( "width", maxWidth ); // Set new width + el.css( "height", height * ratio ); // Scale height based on ratio + height = height * ratio; // Reset height to match scaled image + width = width * ratio; // Reset width to match scaled image + + } else { + el.css( "width", 'auto' ); // Set new height + + } + + // Check if current height is larger than max + if ( height > maxHeight ) { + ratio = maxHeight / height; // get ratio for scaling image + el.css( "height", maxHeight ); // Set new height + el.css( "width", width * ratio ); // Scale width based on ratio + width = width * ratio; // Reset width to match scaled image + height = height * ratio; // Reset height to match scaled image + + + } else { + el.css( "height", 'auto' ); // Set new height + + } + + var test = ($( document.getElementById( 'redux-header' ) ).height() - el.height()) / 2; + if ( test > 0 ) { + el.css( "margin-top", test ); + } else { + el.css( "margin-top", 0 ); + } + + if ( $( '#redux-header .redux_field_search' ) ) { + $( '#redux-header .redux_field_search' ).css( 'right', ($( el ).width() + 20) ); + } + + + }; + $.redux.resizeAds = function() { + var el = $( '#redux-header' ); + var maxWidth; + if ( el.length ) { + maxWidth = el.width() - el.find( '.display_header' ).width() - 30; + } else { + el = $( '#customize-info' ); + maxWidth = el.width(); + } + + var maxHeight = el.height(); + var rAds = el.find( '.rAds' ); + + $( rAds ).find( 'video' ).each( + function() { + $.redux.scaleToRatio( $( this ), maxHeight, maxWidth ); + } + ); + $( rAds ).find( 'img' ).each( + function() { + $.redux.scaleToRatio( $( this ), maxHeight, maxWidth ); + } + ); + $( rAds ).find( 'div' ).each( + function() { + $.redux.scaleToRatio( $( this ), maxHeight, maxWidth ); + } + ); + + if ( rAds.css( 'left' ) == "-99999px" ) { + rAds.css( 'display', 'none' ).css( 'left', 'auto' ); + } + rAds.fadeIn( 'slow' ); + }; + $( document ).ready( + function() { + if ( redux.rAds ) { + var el; + if ( $( '#redux-header' ).length > 0 ) { + $( '#redux-header' ).append( '
' ); + el = $( '#redux-header' ); + } else { + $( '#customize-theme-controls ul' ).first().prepend( + '
  • ' ); + el = $( '#redux_rAds' ); + } + + el.css( 'position', 'relative' ); + el.find( '.rAds' ).attr( + 'style', + 'position:absolute; top: 6px; right: 9px; display:block !important;overflow:hidden;' + ).css( 'left', '-99999px' ); + el.find( '.rAds' ).html( redux.rAds.replace( //, '' ) ); + var rAds = el.find( '.rAds' ); + + $( rAds ).hide(); + rAds.bind( "DOMSubtreeModified", function() { + if ( $( this ).html().indexOf( "
    = 0 ) { + rAds.find( 'img' ).css( 'visibility', 'hidden' ); + setTimeout( function() { + rAds.show(); + $.redux.resizeAds(); + }, 400 ); + rAds.find( 'img' ).css( 'visibility', 'inherit' ); + rAds.unbind( "DOMSubtreeModified" ); + } + + } ); + $( window ).resize( + function() { + $.redux.resizeAds(); + } + ); + + } + } + ); +})( jQuery ); + +jQuery.noConflict(); + +var confirmOnPageExit = function( e ) { + //return; // ONLY FOR DEBUGGING + // If we haven't been passed the event get the window.event + e = e || window.event; + + var message = redux.args.save_pending; + + // For IE6-8 and Firefox prior to version 4 + if ( e ) { + e.returnValue = message; + } + + window.onbeforeunload = null; + + // For Chrome, Safari, IE8+ and Opera 12+ + return message; +}; + +function redux_change( variable ) { + variable = jQuery(variable); + + jQuery( 'body' ).trigger( 'check_dependencies', variable ); + + if ( variable.hasClass( 'compiler' ) ) { + jQuery( '#redux-compiler-hook' ).val( 1 ); + } + +// var test = jQuery( variable ).parents( '.redux-field-container:first' ); +// if ( test.hasClass( 'redux-container-typography' ) && redux.field_objects.typography ) { +// redux.field_objects.typography.change( test ); +// } + + var rContainer = jQuery( variable ).parents( '.redux-container:first' ); + + var parentID = jQuery( variable ).closest( '.redux-group-tab' ).attr( 'id' ); + + // Let's count down the errors now. Fancy. ;) + var id = parentID.split( '_' ); + id = id[0]; + + var th = rContainer.find( '.redux-group-tab-link-a[data-key="' + id + '"]' ).parents( '.redux-group-tab-link-li:first' ); + var subParent = jQuery( '#' + parentID + '_li' ).parents( '.hasSubSections:first' ); + + if ( jQuery( variable ).parents( 'fieldset.redux-field:first' ).hasClass( 'redux-field-error' ) ) { + jQuery( variable ).parents( 'fieldset.redux-field:first' ).removeClass( 'redux-field-error' ); + jQuery( variable ).parent().find( '.redux-th-error' ).slideUp(); + + var errorCount = (parseInt( rContainer.find( '.redux-field-errors span' ).text() ) - 1); + + if ( errorCount <= 0 ) { + //console.log('HERE'); + jQuery( '#' + parentID + '_li .redux-menu-error' ).fadeOut( 'fast' ).remove(); + jQuery( '#' + parentID + '_li .redux-group-tab-link-a' ).removeClass( 'hasError' ); + + jQuery( '#' + parentID + '_li' ).parents( '.inside:first' ).find( '.redux-field-errors' ).slideUp(); + jQuery( variable ).parents( '.redux-container:first' ).find( '.redux-field-errors' ).slideUp(); + jQuery( '#redux_metaboxes_errors' ).slideUp(); + } else { + + var errorsLeft = (parseInt( th.find( '.redux-menu-error:first' ).text() ) - 1); + if ( errorsLeft <= 0 ) { + th.find( '.redux-menu-error:first' ).fadeOut().remove(); + } else { + th.find( '.redux-menu-error:first' ).text( errorsLeft ); + } + + rContainer.find( '.redux-field-errors span' ).text( errorCount ); + } + + if ( subParent.length !== 0 ) { + if ( subParent.find( '.redux-menu-error' ).length === 0 ) { + subParent.find( '.hasError' ).removeClass( 'hasError' ); + } + } + } + if ( jQuery( variable ).parents( 'fieldset.redux-field:first' ).hasClass( 'redux-field-warning' ) ) { + jQuery( variable ).parents( 'fieldset.redux-field:first' ).removeClass( 'redux-field-warning' ); + jQuery( variable ).parent().find( '.redux-th-warning' ).slideUp(); + + var warningCount = (parseInt( rContainer.find( '.redux-field-warnings span' ).text() ) - 1); + + if ( warningCount <= 0 ) { + //console.log('HERE'); + jQuery( '#' + parentID + '_li .redux-menu-warning' ).fadeOut( 'fast' ).remove(); + jQuery( '#' + parentID + '_li .redux-group-tab-link-a' ).removeClass( 'hasWarning' ); + + jQuery( '#' + parentID + '_li' ).parents( '.inside:first' ).find( '.redux-field-warnings' ).slideUp(); + jQuery( variable ).parents( '.redux-container:first' ).find( '.redux-field-warnings' ).slideUp(); + jQuery( '#redux_metaboxes_warnings' ).slideUp(); + } else { + // Let's count down the warnings now. Fancy. ;) + + var warningsLeft = (parseInt( th.find( '.redux-menu-warning:first' ).text() ) - 1); + if ( warningsLeft <= 0 ) { + th.find( '.redux-menu-warning:first' ).fadeOut().remove(); + } else { + th.find( '.redux-menu-warning:first' ).text( warningsLeft ); + } + + rContainer.find( '.redux-field-warning span' ).text( warningCount ); + + } + if ( subParent.length !== 0 ) { + if ( subParent.find( '.redux-menu-warning' ).length === 0 ) { + subParent.find( '.hasWarning' ).removeClass( 'hasWarning' ); + } + } + } + // Don't show the changed value notice while save_notice is visible. + if ( rContainer.find( '.saved_notice:visible' ).length > 0 ) { + return; + } + + if ( !redux.args.disable_save_warn ) { + rContainer.find( '.redux-save-warn' ).slideDown(); + window.onbeforeunload = confirmOnPageExit; + } +} + +function colorValidate( field ) { + var value = jQuery( field ).val(); + + var hex = colorNameToHex( value ); + if ( hex !== value.replace( '#', '' ) ) { + return hex; + } + + return value; +} + +function colorNameToHex( colour ) { + var tcolour = colour.replace( /^\s\s*/, '' ).replace( /\s\s*$/, '' ).replace( "#", "" ); + + var colours = { + "aliceblue": "#f0f8ff", + "antiquewhite": "#faebd7", + "aqua": "#00ffff", + "aquamarine": "#7fffd4", + "azure": "#f0ffff", + "beige": "#f5f5dc", + "bisque": "#ffe4c4", + "black": "#000000", + "blanchedalmond": "#ffebcd", + "blue": "#0000ff", + "blueviolet": "#8a2be2", + "brown": "#a52a2a", + "burlywood": "#deb887", + "cadetblue": "#5f9ea0", + "chartreuse": "#7fff00", + "chocolate": "#d2691e", + "coral": "#ff7f50", + "cornflowerblue": "#6495ed", + "cornsilk": "#fff8dc", + "crimson": "#dc143c", + "cyan": "#00ffff", + "darkblue": "#00008b", + "darkcyan": "#008b8b", + "darkgoldenrod": "#b8860b", + "darkgray": "#a9a9a9", + "darkgreen": "#006400", + "darkkhaki": "#bdb76b", + "darkmagenta": "#8b008b", + "darkolivegreen": "#556b2f", + "darkorange": "#ff8c00", + "darkorchid": "#9932cc", + "darkred": "#8b0000", + "darksalmon": "#e9967a", + "darkseagreen": "#8fbc8f", + "darkslateblue": "#483d8b", + "darkslategray": "#2f4f4f", + "darkturquoise": "#00ced1", + "darkviolet": "#9400d3", + "deeppink": "#ff1493", + "deepskyblue": "#00bfff", + "dimgray": "#696969", + "dodgerblue": "#1e90ff", + "firebrick": "#b22222", + "floralwhite": "#fffaf0", + "forestgreen": "#228b22", + "fuchsia": "#ff00ff", + "gainsboro": "#dcdcdc", + "ghostwhite": "#f8f8ff", + "gold": "#ffd700", + "goldenrod": "#daa520", + "gray": "#808080", + "green": "#008000", + "greenyellow": "#adff2f", + "honeydew": "#f0fff0", + "hotpink": "#ff69b4", + "indianred ": "#cd5c5c", + "indigo ": "#4b0082", + "ivory": "#fffff0", + "khaki": "#f0e68c", + "lavender": "#e6e6fa", + "lavenderblush": "#fff0f5", + "lawngreen": "#7cfc00", + "lemonchiffon": "#fffacd", + "lightblue": "#add8e6", + "lightcoral": "#f08080", + "lightcyan": "#e0ffff", + "lightgoldenrodyellow": "#fafad2", + "lightgrey": "#d3d3d3", + "lightgreen": "#90ee90", + "lightpink": "#ffb6c1", + "lightsalmon": "#ffa07a", + "lightseagreen": "#20b2aa", + "lightskyblue": "#87cefa", + "lightslategray": "#778899", + "lightsteelblue": "#b0c4de", + "lightyellow": "#ffffe0", + "lime": "#00ff00", + "limegreen": "#32cd32", + "linen": "#faf0e6", + "magenta": "#ff00ff", + "maroon": "#800000", + "mediumaquamarine": "#66cdaa", + "mediumblue": "#0000cd", + "mediumorchid": "#ba55d3", + "mediumpurple": "#9370d8", + "mediumseagreen": "#3cb371", + "mediumslateblue": "#7b68ee", + "mediumspringgreen": "#00fa9a", + "mediumturquoise": "#48d1cc", + "mediumvioletred": "#c71585", + "midnightblue": "#191970", + "mintcream": "#f5fffa", + "mistyrose": "#ffe4e1", + "moccasin": "#ffe4b5", + "navajowhite": "#ffdead", + "navy": "#000080", + "oldlace": "#fdf5e6", + "olive": "#808000", + "olivedrab": "#6b8e23", + "orange": "#ffa500", + "orangered": "#ff4500", + "orchid": "#da70d6", + "palegoldenrod": "#eee8aa", + "palegreen": "#98fb98", + "paleturquoise": "#afeeee", + "palevioletred": "#d87093", + "papayawhip": "#ffefd5", + "peachpuff": "#ffdab9", + "peru": "#cd853f", + "pink": "#ffc0cb", + "plum": "#dda0dd", + "powderblue": "#b0e0e6", + "purple": "#800080", + "red": "#ff0000", + "redux": "#01a3e3", + "rosybrown": "#bc8f8f", + "royalblue": "#4169e1", + "saddlebrown": "#8b4513", + "salmon": "#fa8072", + "sandybrown": "#f4a460", + "seagreen": "#2e8b57", + "seashell": "#fff5ee", + "sienna": "#a0522d", + "silver": "#c0c0c0", + "skyblue": "#87ceeb", + "slateblue": "#6a5acd", + "slategray": "#708090", + "snow": "#fffafa", + "springgreen": "#00ff7f", + "steelblue": "#4682b4", + "tan": "#d2b48c", + "teal": "#008080", + "thistle": "#d8bfd8", + "tomato": "#ff6347", + "turquoise": "#40e0d0", + "violet": "#ee82ee", + "wheat": "#f5deb3", + "white": "#ffffff", + "whitesmoke": "#f5f5f5", + "yellow": "#ffff00", + "yellowgreen": "#9acd32" + }; + + if ( colours[tcolour.toLowerCase()] !== 'undefined' ) { + return colours[tcolour.toLowerCase()]; + } + + return colour; +} + +function redux_hook( object, functionName, callback, before ) { + (function( originalFunction ) { + object[functionName] = function() { + + if ( before === true ) { + callback.apply( this, [returnValue, originalFunction, arguments] ); + } + var returnValue = originalFunction.apply( this, arguments ); + if ( before !== true ) { + callback.apply( this, [returnValue, originalFunction, arguments] ); + } + + return returnValue; + }; + }( object[functionName] )); +} diff --git a/redux/ReduxCore/assets/js/redux.min.js b/redux/ReduxCore/assets/js/redux.min.js new file mode 100644 index 0000000..665e862 --- /dev/null +++ b/redux/ReduxCore/assets/js/redux.min.js @@ -0,0 +1 @@ +!function(e){"function"==typeof define&&define.amd?jQueryCookie.define(["jquery"],e):e(jQuery)}(function(p){var r=/\+/g;function h(e){return e}function x(e){return decodeURIComponent(e.replace(r," "))}function g(e){0===e.indexOf('"')&&(e=e.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return v.json?JSON.parse(e):e}catch(e){}}var v=p.cookie=function(e,r,t){if(void 0!==r){if("number"==typeof(t=p.extend({},v.defaults,t)).expires){var i=t.expires,a=t.expires=new Date;a.setDate(a.getDate()+i)}return r=v.json?JSON.stringify(r):String(r),document.cookie=[v.raw?e:encodeURIComponent(e),"=",v.raw?r:encodeURIComponent(r),t.expires?"; expires="+t.expires.toUTCString():"",t.path?"; path="+t.path:"",t.domain?"; domain="+t.domain:"",t.secure?"; secure":""].join("")}for(var n=v.raw?h:x,s=document.cookie.split("; "),d=e?void 0:{},o=0,u=s.length;o=n.captureLength&&t.toUpperCase()!=e.text||r&&t.length>=n.captureLength)&&(e.text=t.toUpperCase(),e.cb.call(e.el,t))},r)})}}return this.each(function(){r(this)})}}(jQuery),function(s){s.fn.serializeForm=function(){if(this.length<1)return!1;var a={},n=a,e=':input[type!="checkbox"][type!="radio"], input:checked',r=function(){if(!this.disabled){var e=this.name.replace(/\[([^\]]+)?\]/g,",$1").split(","),r=e.length-1,t=s(this);if(e[0]){for(var i=0;ir.max&&i.val("")}(this,e)}),this};var e,r,u={allow:"",disallow:"",allowSpace:!0,allowNumeric:!0,allowUpper:!0,allowLower:!0,allowCaseless:!0,allowLatin:!0,allowOtherCharSets:!0,maxLength:NaN},i={allowPlus:!1,allowMinus:!0,allowThouSep:!0,allowDecSep:!0,allowLeadingSpaces:!1,maxDigits:NaN,maxDecimalPlaces:NaN,maxPreDecimalPlaces:NaN,max:NaN,min:NaN},l={alpha:{allowNumeric:!1},upper:{allowNumeric:!1,allowUpper:!0,allowLower:!1,allowCaseless:!0},lower:{allowNumeric:!1,allowUpper:!1,allowLower:!0,allowCaseless:!0}},a={integer:{allowPlus:!1,allowMinus:!0,allowThouSep:!1,allowDecSep:!1},positiveInteger:{allowPlus:!1,allowMinus:!1,allowThouSep:!1,allowDecSep:!1}},c="!@#$%^&*()+=[]\\';,/{}|\":<>?~`.-_ ¬€£¦",d=",",f=".",v=function(){var e,r="0123456789".split(""),t={},i=0;for(i=0;is.max))&&(i=e+r,!(a=t).min||0=n.maxLength||!(0<=n.allow.indexOf(a)||n.allowSpace&&" "==a)&&(n.blacklistSet.contains(a)||!n.allowNumeric&&v[a]||!n.allowUpper&&(d=(s=a).toUpperCase(),o=s.toLowerCase(),s==d&&d!=o)||!n.allowLower&&(l=(u=a).toUpperCase(),c=u.toLowerCase(),u==c&&l!=c)||!n.allowCaseless&&(f=a).toUpperCase()==f.toLowerCase()||!n.allowLatin&&m.contains(a)||!(n.allowOtherCharSets||v[a]||m.contains(a)))||h.push(t)}return h.join("")}function _(e,r){if("string"!=typeof e)return e;var t,i=e.split(""),a=[],n=0;for(n=0;nt.right||r.bottomt.bottom)}},x.redux.hideFields(),x.redux.checkRequired(),x.redux.initEvents(),x.redux.initQtip(),x.redux.tabCheck(),x.redux.notices(),x.redux.tabControl()}),x.redux.ajax_save=function(e){var t=x(document.getElementById("redux_ajax_overlay"));t.fadeIn(),jQuery(".redux-action_bar .spinner").addClass("is-active"),jQuery(".redux-action_bar input").attr("disabled","disabled");var i=jQuery(document.getElementById("redux_notification_bar"));i.slideUp(),jQuery(".redux-save-warn").slideUp(),jQuery(".redux_ajax_save_error").slideUp("medium",function(){jQuery(this).remove()});var r=jQuery(document.getElementById("redux-form-wrapper"));redux.fields.hasOwnProperty("editor")&&x.each(redux.fields.editor,function(e,r){if("undefined"!=typeof tinyMCE){var t=tinyMCE.get(e);t&&t.save()}});var a=r.serialize();r.find("input[type=checkbox]").each(function(){if(void 0!==x(this).attr("name")){var e=x(this).is(":checked")?x(this).val():"0";a+="&"+x(this).attr("name")+"="+e}}),"redux_save"!=e.attr("name")&&(a+="&"+e.attr("name")+"="+e.val());var n=r.attr("data-nonce");return jQuery.ajax({type:"post",dataType:"json",url:ajaxurl,data:{action:redux.args.opt_name+"_ajax_save",nonce:n,opt_name:redux.args.opt_name,data:a},error:function(e){window.console||(console={}),console.log=console.log||function(e,r){},console.log(redux.ajax.console),console.log(e.responseText),jQuery(".redux-action_bar input").removeAttr("disabled"),t.fadeOut("fast"),jQuery(".redux-action_bar .spinner").removeClass("is-active"),alert(redux.ajax.alert)},success:function(e){if(e.action&&"reload"==e.action)location.reload(!0);else if("success"==e.status){jQuery(".redux-action_bar input").removeAttr("disabled"),t.fadeOut("fast"),jQuery(".redux-action_bar .spinner").removeClass("is-active"),redux.options=e.options,redux.errors=e.errors,redux.warnings=e.warnings,i.html(e.notification_bar).slideDown("fast"),null===e.errors&&null===e.warnings||x.redux.notices();var r=x(document.getElementById("redux_notification_bar")).find(".saved_notice");r.slideDown(),r.delay(4e3).slideUp()}else jQuery(".redux-action_bar input").removeAttr("disabled"),jQuery(".redux-action_bar .spinner").removeClass("is-active"),t.fadeOut("fast"),jQuery(".wrap h2:first").parent().append('"),jQuery(".redux_ajax_save_error").slideDown(),jQuery("html, body").animate({scrollTop:0},"slow")}}),!1},x.redux.initEvents=function(){x(".redux-presets-bar").on("click",function(){window.onbeforeunload=null}),x("#toplevel_page_"+redux.args.slug+" .wp-submenu a, #wp-admin-bar-"+redux.args.slug+" a.ab-item").click(function(e){if((x("#toplevel_page_"+redux.args.slug).hasClass("wp-menu-open")||x(this).hasClass("ab-item"))&&!x(this).parents("ul.ab-submenu:first").hasClass("ab-sub-secondary")&&0<=x(this).attr("href").toLowerCase().indexOf(redux.args.slug+"&tab=")){e.preventDefault();var r=x(this).attr("href").split("&tab=");return x("#"+r[1]+"_section_group_li_a").click(),x(this).parents("ul:first").find(".current").removeClass("current"),x(this).addClass("current"),x(this).parent().addClass("current"),!1}}),x(".redux-action_bar input, #redux-import-action input").on("click",function(e){if(x(this).attr("name")==redux.args.opt_name+"[defaults]"){if(!confirm(redux.args.reset_confirm))return!1}else if(x(this).attr("name")==redux.args.opt_name+"[defaults-section]"){if(!confirm(redux.args.reset_section_confirm))return!1}else if("import"==x(this).attr("name")&&!confirm(redux.args.import_section_confirm))return!1;!(window.onbeforeunload=null)===redux.args.ajax_save?(x.redux.ajax_save(x(this)),e.preventDefault()):location.reload(!0)}),x(".expand_options").click(function(e){e.preventDefault();var r=x(".redux-container");if(x(r).hasClass("fully-expanded")){x(r).removeClass("fully-expanded");var t=x.cookie("redux_current_tab");x(".redux-container:first").find("#"+t+"_section_group").fadeIn(200,function(){0!==x(".redux-container:first").find("#redux-footer").length&&x.redux.stickyInfo(),x.redux.initFields()})}return x.redux.expandOptions(x(this).parents(".redux-container:first")),!1}),x(".saved_notice").is(":visible")&&x(".saved_notice").slideDown(),x(document.body).on("change",".redux-field input, .redux-field textarea, .redux-field select",function(){x(this).hasClass("noUpdate")||redux_change(x(this))});var e=x("#redux-footer").height();x("#redux-sticky-padder").css({height:e}),x("#redux-footer-sticky").removeClass("hide"),0!==x("#redux-footer").length&&(x(window).scroll(function(){x.redux.stickyInfo()}),x(window).resize(function(){x.redux.stickyInfo()})),x(".saved_notice").delay(4e3).slideUp()},x.redux.hideFields=function(){x("label[for='redux_hide_field']").each(function(e,r){var t=x(this).parent().parent();x(t).addClass("hidden")})},x.redux.checkRequired=function(){x.redux.required(),x("body").on("change",".redux-main select, .redux-main radio, .redux-main input[type=checkbox], .redux-main input[type=hidden]",function(e){x.redux.check_dependencies(this)}),x("body").on("check_dependencies",function(e,r){x.redux.check_dependencies(r)}),x(".redux-container td > fieldset:empty,td > div:empty").parent().parent().hide()},x.redux.initQtip=function(){if(x().qtip){var e="";!0===redux.args.hints.tip_style.shadow&&(e="qtip-shadow");var r="",t=redux.args.hints.tip_style.color;""!==t&&(r="qtip-"+t);var i="";!0===redux.args.hints.tip_style.rounded&&(i="qtip-rounded");var a="",n=redux.args.hints.tip_style.style;""!==n&&(a="qtip-"+n);var s=e+","+r+","+i+","+a+",redux-qtip";s=s.replace(/,/g," ");var d=redux.args.hints.tip_position.my,o=redux.args.hints.tip_position.at;d=x.redux.verifyPos(d.toLowerCase(),!0),o=x.redux.verifyPos(o.toLowerCase(),!1);var u=redux.args.hints.tip_effect.show.event,l=redux.args.hints.tip_effect.hide.event,c=redux.args.hints.tip_effect.show.effect,f=redux.args.hints.tip_effect.show.duration,p=redux.args.hints.tip_effect.hide.effect,h=redux.args.hints.tip_effect.hide.duration;x("div.redux-dev-qtip").each(function(){x(this).qtip({content:{text:x(this).attr("qtip-content"),title:x(this).attr("qtip-title")},show:{effect:function(){x(this).slideDown(500)},event:"mouseover"},hide:{effect:function(){x(this).slideUp(500)},event:"mouseleave"},style:{classes:"qtip-shadow qtip-light"},position:{my:"top center",at:"bottom center"}})}),x("div.redux-hint-qtip").each(function(){x(this).qtip({content:{text:x(this).attr("qtip-content"),title:x(this).attr("qtip-title")},show:{effect:function(){switch(c){case"slide":x(this).slideDown(f);break;case"fade":x(this).fadeIn(f);break;default:x(this).show()}},event:u},hide:{effect:function(){switch(p){case"slide":x(this).slideUp(h);break;case"fade":x(this).fadeOut(h);break;default:x(this).hide(h)}},event:l},style:{classes:s},position:{my:d,at:o}})}),x("input[qtip-content]").each(function(){x(this).qtip({content:{text:x(this).attr("qtip-content"),title:x(this).attr("qtip-title")},show:"focus",hide:"blur",style:s,position:{my:d,at:o}})})}},x.redux.tabCheck=function(){if(x(".redux-group-tab-link-a").click(function(){var e=x(this);if(e.parent().hasClass("empty_section")&&e.parent().hasClass("hasSubSections")){var r=x(this).closest("ul").find(".redux-group-tab-link-a"),t=r.index(this);e=r.slice(t+1,t+2)}var i=e.parents(".redux-container:first"),a=e.data("rel"),n=i.find(".redux-group-tab-link-li.active:first .redux-group-tab-link-a").data("rel");if(n!==a){if(x("#currentSection").val(a),e.parents(".postbox-container:first").length||x.cookie("redux_current_tab",a,{expires:7,path:"/"}),i.find("#"+a+"_section_group_li").parents(".redux-group-tab-link-li").length){var s=i.find("#"+a+"_section_group_li").parents(".redux-group-tab-link-li").attr("id").split("_");s=s[0]}if(i.find("#toplevel_page_"+redux.args.slug+" .wp-submenu a.current").removeClass("current"),i.find("#toplevel_page_"+redux.args.slug+" .wp-submenu li.current").removeClass("current"),i.find("#toplevel_page_"+redux.args.slug+" .wp-submenu a").each(function(){var e=x(this).attr("href").split("&tab=");e[1]!=a&&e[1]!=s||(x(this).addClass("current"),x(this).parent().addClass("current"))}),i.find("#"+n+"_section_group_li").find("#"+n+"_section_group_li").length)i.find("#"+n+"_section_group_li").addClass("activeChild"),i.find("#"+a+"_section_group_li").addClass("active").removeClass("activeChild");else if(i.find("#"+a+"_section_group_li").parents("#"+n+"_section_group_li").length||i.find("#"+n+"_section_group_li").parents("ul.subsection").find("#"+a+"_section_group_li").length)i.find("#"+a+"_section_group_li").parents("#"+n+"_section_group_li").length?i.find("#"+n+"_section_group_li").addClass("activeChild").removeClass("active"):(i.find("#"+a+"_section_group_li").addClass("active"),i.find("#"+n+"_section_group_li").removeClass("active")),i.find("#"+a+"_section_group_li").removeClass("activeChild").addClass("active");else if(i.find("#"+a+"_section_group_li").addClass("active").removeClass("activeChild").find("ul.subsection").slideDown(),i.find("#"+n+"_section_group_li").find("ul.subsection").length){i.find("#"+n+"_section_group_li").find("ul.subsection").slideUp("fast",function(){i.find("#"+n+"_section_group_li").removeClass("active").removeClass("activeChild")});var d=i.find("#"+a+"_section_group_li").parents(".hasSubSections:first");0'+r.msg+""):x("#"+redux.args.opt_name+"-"+r.id).parent().find(".redux-th-error").html(r.msg).css("display","block")})}),x(".redux-container").each(function(){var i=x(this);i.find(".redux-menu-error").remove();var e=i.find(".redux-field-error").length;0'+e+""),i.find('.redux-group-tab-link-a[data-key="'+r+'"]').addClass("hasError");var t=i.find('.redux-group-tab-link-a[data-key="'+r+'"]').parents(".hasSubSections:first");t&&t.find(".redux-group-tab-link-a:first").addClass("hasError")}}))})),redux.warnings&&redux.warnings.warnings&&(x.each(redux.warnings.warnings,function(e,r){x.each(r.warnings,function(e,r){x("#"+redux.args.opt_name+"-"+r.id).addClass("redux-field-warning"),0===x("#"+redux.args.opt_name+"-"+r.id).parent().find(".redux-th-warning").length?x("#"+redux.args.opt_name+"-"+r.id).append('
    '+r.msg+"
    "):x("#"+redux.args.opt_name+"-"+r.id).parent().find(".redux-th-warning").html(r.msg).css("display","block")})}),x(".redux-container").each(function(){var i=x(this);i.find(".redux-menu-warning").remove();var e=i.find(".redux-field-warning").length;0'+e+""),i.find('.redux-group-tab-link-a[data-key="'+r+'"]').addClass("hasWarning");var t=i.find('.redux-group-tab-link-a[data-key="'+r+'"]').parents(".hasSubSections:first");t&&t.find(".redux-group-tab-link-a:first").addClass("hasWarning")}}))}))},x.redux.tabControl=function(){x(".redux-section-tabs div").hide(),x(".redux-section-tabs div:first").show(),x(".redux-section-tabs ul li:first").addClass("active"),x(".redux-section-tabs ul li a").click(function(){x(".redux-section-tabs ul li").removeClass("active"),x(this).parent().addClass("active");var e=x(this).attr("href");return x(".redux-section-tabs div").hide(),x(e).fadeIn("medium",function(){x.redux.initFields()}),!1})},x.redux.required=function(){x.each(redux.folds,function(e,r){var t=x("#"+redux.args.opt_name+"-"+e);if(t.parents("tr:first").addClass("fold"),"hide"==r){if(t.parents("tr:first").addClass("hide"),t.hasClass("redux-container-section")){var i=x("#section-"+e);i.hasClass("redux-section-indent-start")&&(x("#section-table-"+e).hide().addClass("hide"),i.hide().addClass("hide"))}if(t.hasClass("redux-container-info")&&x("#info-"+e).hide().addClass("hide"),t.hasClass("redux-container-divide")&&x("#divide-"+e).hide().addClass("hide"),t.hasClass("redux-container-raw"))t.parents().find("table#"+redux.args.opt_name+"-"+e).hide().addClass("hide")}})},x.redux.get_container_value=function(e){var r=x("#"+redux.args.opt_name+"-"+e).serializeForm();return null!==r&&"object"==typeof r&&r.hasOwnProperty(redux.args.opt_name)&&(r=r[redux.args.opt_name][e]),x("#"+redux.args.opt_name+"-"+e).hasClass("redux-container-media")&&(r=r.url),r},x.redux.check_dependencies=function(e){if(null!==redux.required){var r=x(e),t=r.parents(".redux-field:first").data("id");if(redux.required.hasOwnProperty(t)){var i=r.parents(".redux-field-container:first"),d=i.parents("tr:first").hasClass("hide");i.parents("tr:first").length||(d=i.parents(".customize-control:first").hasClass("hide")),x.each(redux.required[t],function(e,r){var t=x(this),i=!1,a=x("#"+redux.args.opt_name+"-"+e),n=a.parents("tr:first");if(d||(i=x.redux.check_parents_dependencies(e)),!0===i){if(a.hasClass("redux-container-section")){var s=x("#section-"+e);s.hasClass("redux-section-indent-start")&&s.hasClass("hide")&&(x("#section-table-"+e).fadeIn(300).removeClass("hide"),s.fadeIn(300).removeClass("hide"))}if(a.hasClass("redux-container-info")&&x("#info-"+e).fadeIn(300).removeClass("hide"),a.hasClass("redux-container-divide")&&x("#divide-"+e).fadeIn(300).removeClass("hide"),a.hasClass("redux-container-raw"))a.parents().find("table#"+redux.args.opt_name+"-"+e).fadeIn(300).removeClass("hide");n.fadeIn(300,function(){x(this).removeClass("hide"),redux.required.hasOwnProperty(e)&&x.redux.check_dependencies(x("#"+redux.args.opt_name+"-"+e).children().first()),x.redux.initFields()}),(a.hasClass("redux-container-section")||a.hasClass("redux-container-info"))&&n.css({display:"none"})}else!1===i&&n.fadeOut(100,function(){x(this).addClass("hide"),redux.required.hasOwnProperty(e)&&x.redux.required_recursive_hide(e)});t.find("select, radio, input[type=checkbox]").trigger("change")})}}},x.redux.required_recursive_hide=function(r){x("#"+redux.args.opt_name+"-"+r).parents("tr:first").fadeOut(50,function(){if(x(this).addClass("hide"),x("#"+redux.args.opt_name+"-"+r).hasClass("redux-container-section")){var e=x("#section-"+r);e.hasClass("redux-section-indent-start")&&(x("#section-table-"+r).fadeOut(50).addClass("hide"),e.fadeOut(50).addClass("hide"))}(x("#"+redux.args.opt_name+"-"+r).hasClass("redux-container-info")&&x("#info-"+r).fadeOut(50).addClass("hide"),x("#"+redux.args.opt_name+"-"+r).hasClass("redux-container-divide")&&x("#divide-"+r).fadeOut(50).addClass("hide"),x("#"+redux.args.opt_name+"-"+r).hasClass("redux-container-raw"))&&x("#"+redux.args.opt_name+"-"+r).parents().find("table#"+redux.args.opt_name+"-"+r).fadeOut(50).addClass("hide");redux.required.hasOwnProperty(r)&&x.each(redux.required[r],function(e){x.redux.required_recursive_hide(e)})})},x.redux.check_parents_dependencies=function(e){var i="";return redux.required_child.hasOwnProperty(e)?x.each(redux.required_child[e],function(e,r){if(x("#"+redux.args.opt_name+"-"+r.parent).parents("tr:first").hasClass("hide"))i=!1;else if(!1!==i){var t=x.redux.get_container_value(r.parent);i=x.redux.check_dependencies_visibility(t,r)}}):i=!0,i},x.redux.check_dependencies_visibility=function(t,e){var r,d=!1,i=e.checkValue,a=e.operation;switch(x.isPlainObject(t)&&(t=Object.keys(t).map(function(e){return[e,t[e]]})),a){case"=":case"equals":x.isArray(t)?x(t[0]).each(function(e,t){if(x.isArray(i))x(i).each(function(e,r){if(t==r)return d=!0});else if(t==i)return d=!0}):x.isArray(i)?x(i).each(function(e,r){t==r&&(d=!0)}):t==i&&(d=!0);break;case"!=":case"not":x.isArray(t)?x(t[0]).each(function(e,t){if(x.isArray(i))x(i).each(function(e,r){if(t!=r)return d=!0});else if(t!=i)return d=!0}):x.isArray(i)?x(i).each(function(e,r){t!=r&&(d=!0)}):t!=i&&(d=!0);break;case">":case"greater":case"is_larger":parseFloat(t)>parseFloat(i)&&(d=!0);break;case">=":case"greater_equal":case"is_larger_equal":parseFloat(t)>=parseFloat(i)&&(d=!0);break;case"<":case"less":case"is_smaller":parseFloat(t)'),x("#redux-header")):(x("#customize-theme-controls ul").first().prepend('
  • '),x("#redux_rAds"))).css("position","relative"),e.find(".rAds").attr("style","position:absolute; top: 6px; right: 9px; display:block !important;overflow:hidden;").css("left","-99999px"),e.find(".rAds").html(redux.rAds.replace(//,""));var r=e.find(".rAds");x(r).hide(),r.bind("DOMSubtreeModified",function(){0<=x(this).html().indexOf("
    =o.captureLength&&n.toUpperCase()!=e.text||t&&n.length>=o.captureLength)&&(e.text=n.toUpperCase(),e.cb.call(e.el,n))},t)})}}return this.each(function(){t(this)})}}(jQuery),function(c){c.fn.alphanum=function(e){return n(this,m,i(e)),this},c.fn.alpha=function(e){return n(this,m,i(e,i("alpha"))),this},c.fn.numeric=function(e){return n(this,S,h(e)),this.blur(function(){!function(e,t){var n=parseFloat(c(e).val()),r=c(e);if(isNaN(n))return r.val("");o(t.min)&&nt.max&&r.val("")}(this,e)}),this};var e,t,u={allow:"",disallow:"",allowSpace:!0,allowNumeric:!0,allowUpper:!0,allowLower:!0,allowCaseless:!0,allowLatin:!0,allowOtherCharSets:!0,maxLength:NaN},r={allowPlus:!1,allowMinus:!0,allowThouSep:!0,allowDecSep:!0,allowLeadingSpaces:!1,maxDigits:NaN,maxDecimalPlaces:NaN,maxPreDecimalPlaces:NaN,max:NaN,min:NaN},s={alpha:{allowNumeric:!1},upper:{allowNumeric:!1,allowUpper:!0,allowLower:!1,allowCaseless:!0},lower:{allowNumeric:!1,allowUpper:!1,allowLower:!0,allowCaseless:!0}},a={integer:{allowPlus:!1,allowMinus:!0,allowThouSep:!1,allowDecSep:!1},positiveInteger:{allowPlus:!1,allowMinus:!1,allowThouSep:!1,allowDecSep:!1}},f="!@#$%^&*()+=[]\\';,/{}|\":<>?~`.-_ ¬€£¦",l=",",p=".",g=function(){var e,t="0123456789".split(""),n={},r=0;for(r=0;ri.max))&&(r=e+t,!(a=n).min||0=o.maxLength||!(0<=o.allow.indexOf(a)||o.allowSpace&&" "==a)&&(o.blacklistSet.contains(a)||!o.allowNumeric&&g[a]||!o.allowUpper&&(l=(i=a).toUpperCase(),c=i.toLowerCase(),i==l&&l!=c)||!o.allowLower&&(s=(u=a).toUpperCase(),f=u.toLowerCase(),u==f&&s!=f)||!o.allowCaseless&&(p=a).toUpperCase()==p.toLowerCase()||!o.allowLatin&&w.contains(a)||!(o.allowOtherCharSets||g[a]||w.contains(a)))||d.push(n)}return d.join("")}function S(e,t){if("string"!=typeof e)return e;var n,r=e.split(""),a=[],o=0;for(o=0;o?~`.-_'; + blacklist += " "; // 'Space' is on the blacklist but can be enabled using the 'allowSpace' config entry + return blacklist; + } + + // Return the blacklisted special chars that are NOT encodable using 7-bit ascii + // We want this .js file to be encoded using 7-bit ascii so it can reach the widest possible audience + // Higher order chars must be escaped eg "\xAC" + // Not too worried about comments containing higher order characters for now (let's wait and see if it becomes a problem) + function getBlacklistNonAscii(){ + var blacklist = + "\xAC" // ¬ + + "\u20AC" // € + + "\xA3" // £ + + "\xA6" // ¦ + ; + return blacklist; + } + + // End Settings //////////////////////////////////////////////////////// + + + // Implementation details go here //////////////////////////////////////////////////////// + + function setupEventHandlers($textboxes, trimFunction, settings) { + + $textboxes.each(function(){ + + var $textbox = $(this); + + $textbox.bind("keyup change paste", function(e){ + + var pastedText = ""; + + if(e.originalEvent && e.originalEvent.clipboardData && e.originalEvent.clipboardData.getData) + pastedText = e.originalEvent.clipboardData.getData("text/plain") + + // setTimeout is necessary for handling the 'paste' event + setTimeout(function(){ + trimTextbox($textbox, trimFunction, settings, pastedText); + }, 0); + }); + + $textbox.bind("keypress", function(e){ + + // Determine which key is pressed. + // If it's a control key, then allow the event's default action to occur eg backspace, tab + var charCode = !e.charCode ? e.which : e.charCode; + if(isControlKey(charCode) + || e.ctrlKey + || e.metaKey ) // cmd on MacOS + return; + + var newChar = String.fromCharCode(charCode); + + // Determine if some text was selected / highlighted when the key was pressed + var selectionObject = $textbox.selection(); + var start = selectionObject.start; + var end = selectionObject.end; + + var textBeforeKeypress = $textbox.val(); + + // The new char may be inserted: + // 1) At the start + // 2) In the middle + // 3) At the end + // 4) User highlights some text and then presses a key which would replace the highlighted text + // + // Here we build the string that would result after the keypress. + // If the resulting string is invalid, we cancel the event. + // Unfortunately, it isn't enough to just check if the new char is valid because some chars + // are position sensitive eg the decimal point '.'' or the minus sign '-'' are only valid in certain positions. + var potentialTextAfterKeypress = textBeforeKeypress.substring(0, start) + newChar + textBeforeKeypress.substring(end); + var validatedText = trimFunction(potentialTextAfterKeypress, settings); + + // If the keypress would cause the textbox to contain invalid characters, then cancel the keypress event + if(validatedText != potentialTextAfterKeypress) + e.preventDefault(); + }); + }); + + } + + // Ensure the text is a valid number when focus leaves the textbox + // This catches the case where a user enters '-' or '.' without entering any digits + function numericField_Blur(inputBox, settings) { + var fieldValueNumeric = parseFloat($(inputBox).val()); + var $inputBox = $(inputBox); + + if(isNaN(fieldValueNumeric)) { + $inputBox.val(""); + return; + } + + if(isNumeric(settings.min) && fieldValueNumeric < settings.min) + $inputBox.val(""); + + if(isNumeric(settings.max) && fieldValueNumeric > settings.max) + $inputBox.val(""); + } + + function isNumeric(value) { + return !isNaN(value); + } + + function isControlKey(charCode) { + + if(charCode >= 32) + return false; + if(charCode == 10) + return false; + if(charCode == 13) + return false; + + return true; + } + + // One way to prevent a character being entered is to cancel the keypress event. + // However, this gets messy when you have to deal with things like copy paste which isn't a keypress. + // Which event gets fired first, keypress or keyup? What about IE6 etc etc? + // Instead, it's easier to allow the 'bad' character to be entered and then to delete it immediately after. + + function trimTextbox($textBox, trimFunction, settings, pastedText){ + + var inputString = $textBox.val(); + + if(inputString == "" && pastedText.length > 0) + inputString = pastedText; + + var outputString = trimFunction(inputString, settings); + + if(inputString == outputString) + return; + + var caretPos = $textBox.alphanum_caret(); + + $textBox.val(outputString); + + //Reset the caret position + if(inputString.length ==(outputString.length + 1)) + $textBox.alphanum_caret(caretPos - 1); + else + $textBox.alphanum_caret(caretPos); + } + + function getCombinedSettingsAlphaNum(settings, defaultSettings){ + if(typeof defaultSettings == "undefined") + defaultSettings = DEFAULT_SETTINGS_ALPHANUM; + var userSettings, combinedSettings = {}; + if(typeof settings === "string") + userSettings = CONVENIENCE_SETTINGS_ALPHANUM[settings]; + else if(typeof settings == "undefined") + userSettings = {}; + else + userSettings = settings; + + $.extend(combinedSettings, defaultSettings, userSettings); + + if(typeof combinedSettings.blacklist == 'undefined') + combinedSettings.blacklistSet = getBlacklistSet(combinedSettings.allow, combinedSettings.disallow); + + return combinedSettings; + } + + function getCombinedSettingsNum(settings){ + var userSettings, combinedSettings = {}; + if(typeof settings === "string") + userSettings = CONVENIENCE_SETTINGS_NUMERIC[settings]; + else if(typeof settings == "undefined") + userSettings = {}; + else + userSettings = settings; + + $.extend(combinedSettings, DEFAULT_SETTINGS_NUM, userSettings); + + return combinedSettings; + } + + + // This is the heart of the algorithm + function alphanum_allowChar(validatedStringFragment, Char, settings){ + + if(settings.maxLength && validatedStringFragment.length >= settings.maxLength) + return false; + + if(settings.allow.indexOf(Char) >=0 ) + return true; + + if(settings.allowSpace && (Char == " ")) + return true; + + if(settings.blacklistSet.contains(Char)) + return false; + + if(!settings.allowNumeric && DIGITS[Char]) + return false; + + if(!settings.allowUpper && isUpper(Char)) + return false; + + if(!settings.allowLower && isLower(Char)) + return false; + + if(!settings.allowCaseless && isCaseless(Char)) + return false; + + if(!settings.allowLatin && LATIN_CHARS.contains(Char)) + return false; + + if(!settings.allowOtherCharSets){ + if(DIGITS[Char] || LATIN_CHARS.contains(Char)) + return true; + else + return false; + } + + return true; + } + + function numeric_allowChar(validatedStringFragment, Char, settings){ + + if(DIGITS[Char]) { + + if(isMaxDigitsReached(validatedStringFragment, settings)) + return false; + + if(isMaxPreDecimalsReached(validatedStringFragment, settings)) + return false; + + if(isMaxDecimalsReached(validatedStringFragment, settings)) + return false; + + if(isGreaterThanMax(validatedStringFragment + Char, settings)) + return false; + + if(isLessThanMin(validatedStringFragment + Char, settings)) + return false; + + return true; + } + + if(settings.allowPlus && Char == '+' && validatedStringFragment == '') + return true; + + if(settings.allowMinus && Char == '-' && validatedStringFragment == '') + return true; + + if(Char == THOU_SEP && settings.allowThouSep && allowThouSep(validatedStringFragment, Char)) + return true; + + if(Char == DEC_SEP) { + // Only one decimal separator allowed + if(validatedStringFragment.indexOf(DEC_SEP) >= 0) + return false; + if(settings.allowDecSep) + return true; + } + + return false; + } + + function countDigits(string) { + + // Error handling, nulls etc + string = string + ""; + + // Count the digits + return string.replace(/[^0-9]/g,"").length; + } + + function isMaxDigitsReached(string, settings) { + + var maxDigits = settings.maxDigits; + + if(maxDigits == "" || isNaN(maxDigits)) + return false; // In this case, there is no maximum + + var numDigits = countDigits(string); + + if(numDigits >= maxDigits) + return true; + + return false; + } + + function isMaxDecimalsReached(string, settings) { + + var maxDecimalPlaces = settings.maxDecimalPlaces; + + if(maxDecimalPlaces == "" || isNaN(maxDecimalPlaces)) + return false; // In this case, there is no maximum + + var indexOfDecimalPoint = string.indexOf(DEC_SEP); + + if(indexOfDecimalPoint == -1) + return false; + + var decimalSubstring = string.substring(indexOfDecimalPoint); + var numDecimals = countDigits(decimalSubstring); + + if(numDecimals >= maxDecimalPlaces) + return true; + + return false; + } + + function isMaxPreDecimalsReached(string, settings) { + + var maxPreDecimalPlaces = settings.maxPreDecimalPlaces; + + if(maxPreDecimalPlaces == "" || isNaN(maxPreDecimalPlaces)) + return false; // In this case, there is no maximum + + var indexOfDecimalPoint = string.indexOf(DEC_SEP); + + if(indexOfDecimalPoint >= 0) + return false; + + var numPreDecimalDigits = countDigits(string); + + if(numPreDecimalDigits >= maxPreDecimalPlaces) + return true; + + return false; + } + + function isGreaterThanMax(numericString, settings) { + + if(!settings.max || settings.max < 0) + return false; + + var outputNumber = parseFloat(numericString); + if(outputNumber > settings.max) + return true; + + return false; + } + + function isLessThanMin(numericString, settings) { + + if(!settings.min || settings.min > 0) + return false; + + var outputNumber = parseFloat(numericString); + if(outputNumber < settings.min) + return true; + + return false; + } + + /******************************** + * Trims a string according to the settings provided + ********************************/ + function trimAlphaNum(inputString, settings){ + + if(typeof inputString != "string") + return inputString; + + var inChars = inputString.split(""); + var outChars = []; + var i = 0; + var Char; + + for(i=0; i= 0) + return false; + + var posOfFirstThouSep = currentString.indexOf(THOU_SEP); + + // Check if this is the first occurrence of a THOU_SEP + if(posOfFirstThouSep < 0) + return true; + + var posOfLastThouSep = currentString.lastIndexOf(THOU_SEP); + var charsSinceLastThouSep = currentString.length - posOfLastThouSep - 1; + + // Check if there has been 3 digits since the last THOU_SEP + if(charsSinceLastThouSep < 3) + return false; + + var digitsSinceFirstThouSep = countDigits(currentString.substring(posOfFirstThouSep)); + + // Check if there has been a multiple of 3 digits since the first THOU_SEP + if((digitsSinceFirstThouSep % 3) > 0) + return false; + + return true; + } + + //////////////////////////////////////////////////////////////////////////////////// + // Implementation of a Set + //////////////////////////////////////////////////////////////////////////////////// + function Set(elems){ + if(typeof elems == "string") + this.map = stringToMap(elems); + else + this.map = {}; + } + + Set.prototype.add = function(set){ + + var newSet = this.clone(); + + for(var key in set.map) + newSet.map[key] = true; + + return newSet; + } + + Set.prototype.subtract = function(set){ + + var newSet = this.clone(); + + for(var key in set.map) + delete newSet.map[key]; + + return newSet; + } + + Set.prototype.contains = function(key){ + if(this.map[key]) + return true; + else + return false; + } + + Set.prototype.clone = function(){ + var newSet = new Set(); + + for(var key in this.map) + newSet.map[key] = true; + + return newSet; + } + //////////////////////////////////////////////////////////////////////////////////// + + function stringToMap(string){ + var map = {}; + var array = string.split(""); + var i=0; + var Char; + + for(i=0; i=0){endPos=i.toString().length}else{endPos=startPos+r.toString().length}return{start:startPos,end:endPos}},s=function(t){var n=r(t);if(t.selectionStart!==undefined){if(document.activeElement&&document.activeElement!=t&&t.selectionStart==t.selectionEnd&&t.selectionStart==0){return{start:t.value.length,end:t.value.length}}return{start:t.selectionStart,end:t.selectionEnd}}else if(n.getSelection){return i(t,n)}else{try{if(t.nodeName.toLowerCase()=="input"){var s=r(t).document.selection.createRange(),o=t.createTextRange();o.setEndPoint("EndToStart",s);var u=o.text.length;return{start:u,end:u+s.text.length}}else{var a=i(t,n);if(!a){return a}var f=e.Range.current().clone(),l=f.clone().collapse().range,c=f.clone().collapse(false).range;l.moveStart("character",-1);c.moveStart("character",-1);if(a.startPos!=0&&l.text==""){a.startPos+=2}if(a.endPos!=0&&c.text==""){a.endPos+=2}return a}}catch(h){return{start:t.value.length,end:t.value.length}}}},o=function(e,t,n){var i=r(e);if(e.setSelectionRange){if(n===undefined){e.focus();e.setSelectionRange(t,t)}else{e.select();e.selectionStart=t;e.selectionEnd=n}}else if(e.createTextRange){var s=e.createTextRange();s.moveStart("character",t);n=n||t;s.moveEnd("character",n-e.value.length);s.select()}else if(i.getSelection){var o=i.document,u=i.getSelection(),f=o.createRange(),l=[t,n!==undefined?n:t];a([e],l);f.setStart(l[0].el,l[0].count);f.setEnd(l[1].el,l[1].count);u.removeAllRanges();u.addRange(f)}else if(i.document.body.createTextRange){var f=document.body.createTextRange();f.moveToElementText(e);f.collapse();f.moveStart("character",t);f.moveEnd("character",n!==undefined?n:t);f.select()}},u=function(e,t,n,r){if(typeof n[0]==="number"&&n[0]= options.captureLength AND text != saved text OR if override AND text >= options.captureLength + if ((value.length >= options.captureLength && value.toUpperCase() != timer.text) + || (override && value.length >= options.captureLength)) + { + timer.text = value.toUpperCase(); + timer.cb.call(timer.el, value); + } + }; + + function watchElement(elem) { + var elementType = elem.type.toUpperCase(); + if (jQuery.inArray(elementType, options.inputTypes) >= 0) { + + // Allocate timer element + var timer = { + timer: null, + text: jQuery(elem).val().toUpperCase(), + cb: options.callback, + el: elem, + wait: options.wait + }; + + // Set focus action (highlight) + if (options.highlight) { + jQuery(elem).focus( + function() { + this.select(); + }); + } + + // Key watcher / clear and reset the timer + var startWatch = function(evt) { + var timerWait = timer.wait; + var overrideBool = false; + var evtElementType = this.type.toUpperCase(); + + // If enter key is pressed and not a TEXTAREA and matched inputTypes + if (typeof evt.keyCode != 'undefined' && evt.keyCode == 13 && evtElementType != 'TEXTAREA' && jQuery.inArray(evtElementType, options.inputTypes) >= 0) { + timerWait = 1; + overrideBool = true; + } + + var timerCallbackFx = function() { + checkElement(timer, overrideBool) + } + + // Clear timer + clearTimeout(timer.timer); + timer.timer = setTimeout(timerCallbackFx, timerWait); + }; + + jQuery(elem).on('keydown paste cut input', startWatch); + } + }; + + // Watch Each Element + return this.each(function() { + watchElement(this); + }); + + }; +})(jQuery); \ No newline at end of file diff --git a/redux/ReduxCore/assets/js/vendor/jsonview.js b/redux/ReduxCore/assets/js/vendor/jsonview.js new file mode 100644 index 0000000..1afe027 --- /dev/null +++ b/redux/ReduxCore/assets/js/vendor/jsonview.js @@ -0,0 +1,265 @@ + +/* global console, jsonView */ +/* + * ViewJSON + * Version 1.0 + * A Google Chrome extension to display JSON in a user-friendly format + * + * This is a chromeified version of the JSONView Firefox extension by Ben Hollis: + * http://jsonview.com + * http://code.google.com/p/jsonview + * + * Also based on the XMLTree Chrome extension by Moonty & alan.stroop + * https://chrome.google.com/extensions/detail/gbammbheopgpmaagmckhpjbfgdfkpadb + * + * port by Jamie Wilkinson (@jamiew) | http://jamiedubs.com | http://github.com/jamiew + * MIT license / copyfree (f) F.A.T. Lab http://fffff.at + * Speed Project Approved: 2h + */ + +function collapse(evt) { + var collapser = evt.target; + var target = collapser.parentNode.getElementsByClassName('collapsible'); + if (!target.length) { + return; + } + target = target[0]; + if (target.style.display === 'none') { + var ellipsis = target.parentNode.getElementsByClassName('ellipsis')[0]; + target.parentNode.removeChild(ellipsis); + target.style.display = ''; + } else { + target.style.display = 'none'; + var ellipsis = document.createElement('span'); + ellipsis.className = 'ellipsis'; + ellipsis.innerHTML = ' … '; + target.parentNode.insertBefore(ellipsis, target); + } + collapser.innerHTML = (collapser.innerHTML === '-') ? '+' : '-'; +} + +function addCollapser(item) { + // This mainly filters out the root object (which shouldn't be collapsible) + if (item.nodeName !== 'LI') { + return; + } + var collapser = document.createElement('div'); + collapser.className = 'collapser'; + collapser.innerHTML = '-'; + collapser.addEventListener('click', collapse, false); + item.insertBefore(collapser, item.firstChild); +} + +function jsonView(id, target) { + this.debug = false; + if (id.indexOf("#") !== -1) { + this.idType = "id"; + this.id = id.replace('#', ''); + } else if (id.indexOf(".") !== -1) { + this.idType = "class"; + this.id = id.replace('.', ''); + } else { + if (this.debug) { console.log("Can't find that element"); } + return; + } + + this.data = document.getElementById(this.id).innerHTML; + if (typeof(target) !== undefined) { + if (target.indexOf("#") !== -1) { + this.targetType = "id"; + this.target = target.replace('#', ''); + } else if (id.indexOf(".") !== -1) { + this.targetType = "class"; + this.target = target.replace('.', ''); + } else { + if (this.debug) { console.log("Can't find the target element"); } + return; + } + } + // Note: now using "*.json*" URI matching rather than these page regexes -- save CPU cycles! + // var is_json = /^\s*(\{.*\})\s*$/.test(this.data); + // var is_jsonp = /^.*\(\s*(\{.*\})\s*\)$/.test(this.data); + // if(is_json || is_jsonp){ + // Our manifest specifies that we only do URLs matching '.json', so attempt to sanitize any HTML + // added by Chrome's "text/plain" or "text/html" handlers + if (/^\(.*)\<\/pre\>$/.test(this.data)) { + if (this.debug) { console.log("JSONView: data is wrapped in
    ...
    , stripping HTML..."); } + this.data = this.data.replace(/<(?:.|\s)*?>/g, ''); //Aggressively strip HTML. + } + // Test if what remains is JSON or JSONp + var json_regex = /^\s*([\[\{].*[\}\]])\s*$/; // Ghetto, but it works + var jsonp_regex = /^[\s\u200B\uFEFF]*([\w$\[\]\.]+)[\s\u200B\uFEFF]*\([\s\u200B\uFEFF]*([\[{][\s\S]*[\]}])[\s\u200B\uFEFF]*\);?[\s\u200B\uFEFF]*$/; + var jsonp_regex2 = /([\[\{][\s\S]*[\]\}])\)/; // more liberal support... this allows us to pass the jsonp.json & jsonp2.json tests + var is_json = json_regex.test(this.data); + var is_jsonp = jsonp_regex.test(this.data); + if (this.debug) { console.log("JSONView: is_json=" + is_json + " is_jsonp=" + is_jsonp); } + if (is_json || is_jsonp) { + if (this.debug) { console.log("JSONView: sexytime!"); } + // JSONFormatter json->HTML prototype straight from Firefox JSONView + // For reference: http://code.google.com/p/jsonview + + function JSONFormatter() { + // No magic required. + } + JSONFormatter.prototype = { + htmlEncode: function(t) { + return t != null ? t.toString().replace(/&/g, "&").replace(/"/g, """).replace(//g, ">") : ''; + }, + decorateWithSpan: function(value, className) { + return '' + this.htmlEncode(value) + ''; + }, + // Convert a basic JSON datatype (number, string, boolean, null, object, array) into an HTML fragment. + valueToHTML: function(value) { + var valueType = typeof value; + var output = ""; + if (value === null) { + output += this.decorateWithSpan('null', 'null'); + } else if (value && value.constructor === Array) { + output += this.arrayToHTML(value); + } else if (valueType === 'object') { + output += this.objectToHTML(value); + } else if (valueType === 'number') { + output += this.decorateWithSpan(value, 'num'); + } else if (valueType === 'string') { + if (/^(http|https):\/\/[^\s]+$/.test(value)) { + output += '
    ' + this.htmlEncode(value) + ''; + } else { + output += this.decorateWithSpan('"' + value + '"', 'string'); + } + } else if (valueType === 'boolean') { + output += this.decorateWithSpan(value, 'bool'); + } + return output; + }, + // Convert an array into an HTML fragment + arrayToHTML: function(json) { + var output = '[
      '; + var hasContents = false; + for (var prop in json) { + hasContents = true; + output += '
    • '; + output += this.valueToHTML(json[prop]); + output += '
    • '; + } + output += '
    ]'; + if (!hasContents) { + output = "[ ]"; + } + return output; + }, + // Convert a JSON object to an HTML fragment + objectToHTML: function(json) { + var output = '{
      '; + var hasContents = false; + for (var prop in json) { + hasContents = true; + output += '
    • '; + output += '' + this.htmlEncode(prop) + ': '; + output += this.valueToHTML(json[prop]); + output += '
    • '; + } + output += '
    }'; + if (!hasContents) { + output = "{ }"; + } + return output; + }, + // Convert a whole JSON object into a formatted HTML document. + jsonToHTML: function(json, callback, uri) { + var output = ''; + if (callback) { + output += '
    ' + callback + ' (
    '; + output += '
    '; + } else { + output += '
    '; + } + output += this.valueToHTML(json); + output += '
    '; + if (callback) { + output += '
    )
    '; + } + return this.toHTML(output, uri); + }, + // Produce an error document for when parsing fails. + errorPage: function(error, data, uri) { + // var output = '
    ' + this.stringbundle.GetStringFromName('errorParsing') + '
    '; + // output += '

    ' + this.stringbundle.GetStringFromName('docContents') + ':

    '; + var output = '
    Error parsing JSON: ' + error.message + '
    '; + output += '

    ' + error.stack + ':

    '; + output += '
    ' + this.htmlEncode(data) + '
    '; + return this.toHTML(output, uri + ' - Error'); + }, + // Wrap the HTML fragment in a full document. Used by jsonToHTML and errorPage. + toHTML: function(content) { + return content; + } + }; + // Sanitize & output -- all magic from JSONView Firefox + this.jsonFormatter = new JSONFormatter(); + // This regex attempts to match a JSONP structure: + // * Any amount of whitespace (including unicode nonbreaking spaces) between the start of the file and the callback name + // * Callback name (any valid JavaScript function name according to ECMA-262 Edition 3 spec) + // * Any amount of whitespace (including unicode nonbreaking spaces) + // * Open parentheses + // * Any amount of whitespace (including unicode nonbreaking spaces) + // * Either { or [, the only two valid characters to start a JSON string. + // * Any character, any number of times + // * Either } or ], the only two valid closing characters of a JSON string. + // * Any amount of whitespace (including unicode nonbreaking spaces) + // * A closing parenthesis, an optional semicolon, and any amount of whitespace (including unicode nonbreaking spaces) until the end of the file. + // This will miss anything that has comments, or more than one callback, or requires modification before use. + var outputDoc = ''; + // text = text.match(jsonp_regex)[1]; + var cleanData = '', + callback = ''; + var callback_results = jsonp_regex.exec(this.data); + if (callback_results && callback_results.length === 3) { + if (this.debug) { console.log("THIS IS JSONp"); } + callback = callback_results[1]; + cleanData = callback_results[2]; + } else { + if (this.debug) { console.log("Vanilla JSON"); } + cleanData = this.data; + } + if (this.debug) { console.log(cleanData); } + // Covert, and catch exceptions on failure + try { + // var jsonObj = this.nativeJSON.decode(cleanData); + var jsonObj = JSON.parse(cleanData); + if (jsonObj) { + outputDoc = this.jsonFormatter.jsonToHTML(jsonObj, callback); + } else { + throw "There was no object!"; + } + } catch (e) { + if (this.debug) { console.log(e); } + outputDoc = this.jsonFormatter.errorPage(e, this.data); + } + var links = ''; + if (this.targetType !== undefined) { + this.idType = this.targetType; + this.id = this.target; + } + var el; + if (this.idType === "class") { + el = document.getElementsByClassName(this.id); + if (el) { + el.className += el.className ? ' jsonViewOutput' : 'jsonViewOutput'; + el.innerHTML = links + outputDoc; + } + } else if (this.idType === "id") { + el = document.getElementById(this.id); + if (el) { + el.className += el.className ? ' jsonViewOutput' : 'jsonViewOutput'; + el.innerHTML = links + outputDoc; + } + el.innerHTML = links + outputDoc; + } + var items = document.getElementsByClassName('collapsible'); + for (var i = 0; i < items.length; i++) { + addCollapser(items[i].parentNode); + } + } else { + // console.log("JSONView: this is not json, not formatting."); + } +} \ No newline at end of file diff --git a/redux/ReduxCore/assets/js/vendor/jsonview.min.js b/redux/ReduxCore/assets/js/vendor/jsonview.min.js new file mode 100644 index 0000000..b8c4f1b --- /dev/null +++ b/redux/ReduxCore/assets/js/vendor/jsonview.min.js @@ -0,0 +1,16 @@ +/* global console, jsonView *//* + * ViewJSON + * Version 1.0 + * A Google Chrome extension to display JSON in a user-friendly format + * + * This is a chromeified version of the JSONView Firefox extension by Ben Hollis: + * http://jsonview.com + * http://code.google.com/p/jsonview + * + * Also based on the XMLTree Chrome extension by Moonty & alan.stroop + * https://chrome.google.com/extensions/detail/gbammbheopgpmaagmckhpjbfgdfkpadb + * + * port by Jamie Wilkinson (@jamiew) | http://jamiedubs.com | http://github.com/jamiew + * MIT license / copyfree (f) F.A.T. Lab http://fffff.at + * Speed Project Approved: 2h + */function collapse(e){var t=e.target,n=t.parentNode.getElementsByClassName("collapsible");if(!n.length)return;n=n[0];if(n.style.display==="none"){var r=n.parentNode.getElementsByClassName("ellipsis")[0];n.parentNode.removeChild(r),n.style.display=""}else{n.style.display="none";var r=document.createElement("span");r.className="ellipsis",r.innerHTML=" … ",n.parentNode.insertBefore(r,n)}t.innerHTML=t.innerHTML==="-"?"+":"-"}function addCollapser(e){if(e.nodeName!=="LI")return;var t=document.createElement("div");t.className="collapser",t.innerHTML="-",t.addEventListener("click",collapse,!1),e.insertBefore(t,e.firstChild)}function jsonView(e,t){this.debug=!1;if(e.indexOf("#")!==-1)this.idType="id",this.id=e.replace("#","");else{if(e.indexOf(".")===-1){this.debug&&console.log("Can't find that element");return}this.idType="class",this.id=e.replace(".","")}this.data=document.getElementById(this.id).innerHTML;if(typeof t!==undefined)if(t.indexOf("#")!==-1)this.targetType="id",this.target=t.replace("#","");else{if(e.indexOf(".")===-1){this.debug&&console.log("Can't find the target element");return}this.targetType="class",this.target=t.replace(".","")}/^\(.*)\<\/pre\>$/.test(this.data)&&(this.debug&&console.log("JSONView: data is wrapped in
    ...
    , stripping HTML..."),this.data=this.data.replace(/<(?:.|\s)*?>/g,""));var n=/^\s*([\[\{].*[\}\]])\s*$/,r=/^[\s\u200B\uFEFF]*([\w$\[\]\.]+)[\s\u200B\uFEFF]*\([\s\u200B\uFEFF]*([\[{][\s\S]*[\]}])[\s\u200B\uFEFF]*\);?[\s\u200B\uFEFF]*$/,i=/([\[\{][\s\S]*[\]\}])\)/,s=n.test(this.data),o=r.test(this.data);this.debug&&console.log("JSONView: is_json="+s+" is_jsonp="+o);if(s||o){this.debug&&console.log("JSONView: sexytime!");function u(){}u.prototype={htmlEncode:function(e){return e!=null?e.toString().replace(/&/g,"&").replace(/"/g,""").replace(//g,">"):""},decorateWithSpan:function(e,t){return''+this.htmlEncode(e)+""},valueToHTML:function(e){var t=typeof e,n="";return e===null?n+=this.decorateWithSpan("null","null"):e&&e.constructor===Array?n+=this.arrayToHTML(e):t==="object"?n+=this.objectToHTML(e):t==="number"?n+=this.decorateWithSpan(e,"num"):t==="string"?/^(http|https):\/\/[^\s]+$/.test(e)?n+=''+this.htmlEncode(e)+"":n+=this.decorateWithSpan('"'+e+'"',"string"):t==="boolean"&&(n+=this.decorateWithSpan(e,"bool")),n},arrayToHTML:function(e){var t='[
      ',n=!1;for(var r in e)n=!0,t+="
    • ",t+=this.valueToHTML(e[r]),t+="
    • ";return t+="
    ]",n||(t="[ ]"),t},objectToHTML:function(e){var t='{
      ',n=!1;for(var r in e)n=!0,t+="
    • ",t+=''+this.htmlEncode(r)+": ",t+=this.valueToHTML(e[r]),t+="
    • ";return t+="
    }",n||(t="{ }"),t},jsonToHTML:function(e,t,n){var r="";return t?(r+='
    '+t+" (
    ",r+='
    '):r+='
    ',r+=this.valueToHTML(e),r+="
    ",t&&(r+='
    )
    '),this.toHTML(r,n)},errorPage:function(e,t,n){var r='
    Error parsing JSON: '+e.message+"
    ";return r+="

    "+e.stack+":

    ",r+='
    '+this.htmlEncode(t)+"
    ",this.toHTML(r,n+" - Error")},toHTML:function(e){return e}},this.jsonFormatter=new u;var a="",f="",l="",c=r.exec(this.data);c&&c.length===3?(this.debug&&console.log("THIS IS JSONp"),l=c[1],f=c[2]):(this.debug&&console.log("Vanilla JSON"),f=this.data),this.debug&&console.log(f);try{var h=JSON.parse(f);if(!h)throw"There was no object!";a=this.jsonFormatter.jsonToHTML(h,l)}catch(p){this.debug&&console.log(p),a=this.jsonFormatter.errorPage(p,this.data)}var d="";this.targetType!==undefined&&(this.idType=this.targetType,this.id=this.target);var v;this.idType==="class"?(v=document.getElementsByClassName(this.id),v&&(v.className+=v.className?" jsonViewOutput":"jsonViewOutput",v.innerHTML=d+a)):this.idType==="id"&&(v=document.getElementById(this.id),v&&(v.className+=v.className?" jsonViewOutput":"jsonViewOutput",v.innerHTML=d+a),v.innerHTML=d+a);var m=document.getElementsByClassName("collapsible");for(var g=0;g' + entity + '' + html; + } + var icons = { + 'icon-move' : '', + 'icon-music' : '', + 'icon-network' : '', + 'icon-off' : '', + 'icon-ok' : '', + 'icon-ok-circle' : '', + 'icon-ok-sign' : '', + 'icon-paper-clip' : '', + 'icon-paper-clip-alt' : '', + 'icon-path' : '', + 'icon-plus-sign' : '', + 'icon-print' : '', + 'icon-qrcode' : '', + 'icon-question' : '', + 'icon-question-sign' : '', + 'icon-quotes' : '', + 'icon-quotes-alt' : '', + 'icon-random' : '', + 'icon-record' : '', + 'icon-reddit' : '', + 'icon-refresh' : '', + 'icon-screenshot' : '', + 'icon-search' : '', + 'icon-search-alt' : '', + 'icon-share' : '', + 'icon-share-alt' : '', + 'icon-shopping-cart' : '', + 'icon-shopping-cart-sign' : '', + 'icon-signal' : '', + 'icon-skype' : '', + 'icon-slideshare' : '', + 'icon-smiley' : '', + 'icon-th-large' : '', + 'icon-th-list' : '', + 'icon-thumbs-down' : '', + 'icon-thumbs-up' : '', + 'icon-time' : '', + 'icon-time-alt' : '', + 'icon-tint' : '', + 'icon-torso' : '', + 'icon-trash' : '', + 'icon-trash-alt' : '', + 'icon-tumblr' : '', + 'icon-w3c' : '', + 'icon-warning-sign' : '', + 'icon-website' : '', + 'icon-website-alt' : '', + 'icon-wheelchair' : '', + 'icon-wordpress' : '', + 'icon-wrench' : '', + 'icon-wrench-alt' : '', + 'icon-youtube' : '', + 'icon-zoom-in' : '', + 'icon-zoom-out' : '', + 'icon-pause-alt' : '', + 'icon-pencil' : '', + 'icon-pencil-alt' : '', + 'icon-person' : '', + 'icon-phone' : '', + 'icon-phone-alt' : '', + 'icon-photo' : '', + 'icon-photo-alt' : '', + 'icon-picasa' : '', + 'icon-picture' : '', + 'icon-pinterest' : '', + 'icon-plane' : '', + 'icon-play-alt' : '', + 'icon-play-circle' : '', + 'icon-plus' : '', + 'icon-remove' : '', + 'icon-remove-circle' : '', + 'icon-remove-sign' : '', + 'icon-repeat' : '', + 'icon-repeat-alt' : '', + 'icon-resize-full' : '', + 'icon-resize-horizontal' : '', + 'icon-resize-small' : '', + 'icon-resize-vertical' : '', + 'icon-retweet' : '', + 'icon-reverse-alt' : '', + 'icon-road' : '', + 'icon-rss' : '', + 'icon-screen' : '', + 'icon-screen-alt' : '', + 'icon-smiley-alt' : '', + 'icon-speaker' : '', + 'icon-stackoverflow' : '', + 'icon-star' : '', + 'icon-star-alt' : '', + 'icon-star-empty' : '', + 'icon-stop-alt' : '', + 'icon-stumbleupon' : '', + 'icon-tag' : '', + 'icon-tags' : '', + 'icon-tasks' : '', + 'icon-text-height' : '', + 'icon-text-width' : '', + 'icon-th' : '', + 'icon-twitter' : '', + 'icon-universal-access' : '', + 'icon-unlock' : '', + 'icon-unlock-alt' : '', + 'icon-upload' : '', + 'icon-user' : '', + 'icon-video' : '', + 'icon-video-alt' : '', + 'icon-video-chat' : '', + 'icon-view-mode' : '', + 'icon-vimeo' : '', + 'icon-vkontakte' : '', + 'icon-volume-down' : '', + 'icon-volume-off' : '', + 'icon-volume-up' : '', + 'icon-backward' : '', + 'icon-fast-backward' : '', + 'icon-fast-forward' : '', + 'icon-forward' : '', + 'icon-play' : '', + 'icon-step-backward' : '', + 'icon-step-forward' : '', + 'icon-briefcase' : '', + 'icon-bullhorn' : '', + 'icon-calendar' : '', + 'icon-calendar-sign' : '', + 'icon-address-book' : '', + 'icon-address-book-alt' : '', + 'icon-adjust' : '', + 'icon-adult' : '', + 'icon-align-center' : '', + 'icon-align-justify' : '', + 'icon-align-left' : '', + 'icon-align-right' : '', + 'icon-arrow-down' : '', + 'icon-arrow-left' : '', + 'icon-arrow-right' : '', + 'icon-arrow-up' : '', + 'icon-asl' : '', + 'icon-asterisk' : '', + 'icon-ban-circle' : '', + 'icon-barcode' : '', + 'icon-behance' : '', + 'icon-bell' : '', + 'icon-blind' : '', + 'icon-blogger' : '', + 'icon-bold' : '', + 'icon-book' : '', + 'icon-bookmark' : '', + 'icon-bookmark-empty' : '', + 'icon-braille' : '', + 'icon-camera' : '', + 'icon-cc' : '', + 'icon-certificate' : '', + 'icon-check' : '', + 'icon-check-empty' : '', + 'icon-chevron-down' : '', + 'icon-chevron-left' : '', + 'icon-chevron-right' : '', + 'icon-chevron-up' : '', + 'icon-child' : '', + 'icon-circle-arrow-down' : '', + 'icon-circle-arrow-left' : '', + 'icon-circle-arrow-right' : '', + 'icon-circle-arrow-up' : '', + 'icon-cloud' : '', + 'icon-cloud-alt' : '', + 'icon-cog' : '', + 'icon-cog-alt' : '', + 'icon-cogs' : '', + 'icon-comment' : '', + 'icon-comment-alt' : '', + 'icon-compass' : '', + 'icon-compass-alt' : '', + 'icon-credit-card' : '', + 'icon-css' : '', + 'icon-dashboard' : '', + 'icon-delicious' : '', + 'icon-deviantart' : '', + 'icon-digg' : '', + 'icon-download' : '', + 'icon-download-alt' : '', + 'icon-dribble' : '', + 'icon-edit' : '', + 'icon-eject' : '', + 'icon-envelope' : '', + 'icon-envelope-alt' : '', + 'icon-error' : '', + 'icon-error-alt' : '', + 'icon-exclamation-sign' : '', + 'icon-eye-close' : '', + 'icon-eye-open' : '', + 'icon-facebook' : '', + 'icon-facetime-video' : '', + 'icon-female' : '', + 'icon-file' : '', + 'icon-file-alt' : '', + 'icon-file-edit' : '', + 'icon-file-edit-alt' : '', + 'icon-file-new' : '', + 'icon-file-new-alt' : '', + 'icon-film' : '', + 'icon-filter' : '', + 'icon-fire' : '', + 'icon-flag' : '', + 'icon-flag-alt' : '', + 'icon-flickr' : '', + 'icon-folder' : '', + 'icon-folder-close' : '', + 'icon-folder-open' : '', + 'icon-folder-sign' : '', + 'icon-font' : '', + 'icon-fontsize' : '', + 'icon-forward-alt' : '', + 'icon-foursquare' : '', + 'icon-friendfeed' : '', + 'icon-friendfeed-rect' : '', + 'icon-fullscreen' : '', + 'icon-gift' : '', + 'icon-github' : '', + 'icon-github-text' : '', + 'icon-glass' : '', + 'icon-glasses' : '', + 'icon-globe' : '', + 'icon-globe-alt' : '', + 'icon-googleplus' : '', + 'icon-graph' : '', + 'icon-graph-alt' : '', + 'icon-group' : '', + 'icon-group-alt' : '', + 'icon-guidedog' : '', + 'icon-hand-down' : '', + 'icon-hand-left' : '', + 'icon-hand-right' : '', + 'icon-hand-up' : '', + 'icon-hdd' : '', + 'icon-headphones' : '', + 'icon-hearing-impaired' : '', + 'icon-heart' : '', + 'icon-heart-alt' : '', + 'icon-heart-empty' : '', + 'icon-home' : '', + 'icon-home-alt' : '', + 'icon-idea' : '', + 'icon-idea-alt' : '', + 'icon-inbox' : '', + 'icon-inbox-alt' : '', + 'icon-inbox-box' : '', + 'icon-indent-left' : '', + 'icon-indent-right' : '', + 'icon-info-sign' : '', + 'icon-instagram' : '', + 'icon-iphone-home' : '', + 'icon-italic' : '', + 'icon-key' : '', + 'icon-laptop' : '', + 'icon-laptop-alt' : '', + 'icon-leaf' : '', + 'icon-linkedin' : '', + 'icon-list' : '', + 'icon-list-alt' : '', + 'icon-lock' : '', + 'icon-lock-alt' : '', + 'icon-magnet' : '', + 'icon-male' : '', + 'icon-map-marker' : '', + 'icon-map-marker-alt' : '', + 'icon-mic' : '', + 'icon-mic-alt' : '', + 'icon-minus' : '', + 'icon-minus-sign' : '', + 'icon-pause' : '', + 'icon-fork' : '', + 'icon-broom' : '', + 'icon-return-key' : '', + 'icon-lastfm' : '', + 'icon-livejournal' : '', + 'icon-myspace' : '', + 'icon-soundcloud' : '', + 'icon-viadeo' : '', + 'icon-spotify' : '', + 'icon-caret-left' : '', + 'icon-caret-up' : '', + 'icon-caret-right' : '', + 'icon-caret-down' : '', + 'icon-stop' : '' + }, + els = document.getElementsByTagName('*'), + i, attr, html, c, el; + for (i = 0; ; i += 1) { + el = els[i]; + if(!el) { + break; + } + attr = el.getAttribute('data-icon'); + if (attr) { + addIcon(el, attr); + } + c = el.className; + c = c.match(/icon-[^\s'"]+/); + if (c && icons[c[0]]) { + addIcon(el, icons[c[0]]); + } + } +}; \ No newline at end of file diff --git a/redux/ReduxCore/assets/js/vendor/qtip/jquery.qtip.js b/redux/ReduxCore/assets/js/vendor/qtip/jquery.qtip.js new file mode 100644 index 0000000..a2f4788 --- /dev/null +++ b/redux/ReduxCore/assets/js/vendor/qtip/jquery.qtip.js @@ -0,0 +1,3451 @@ +/* + * qTip2 - Pretty powerful tooltips - v2.2.1 + * http://qtip2.com + * + * Copyright (c) 2014 + * Released under the MIT licenses + * http://jquery.org/license + * + * Date: Sat Sep 6 2014 11:12 GMT+0100+0100 + * Plugins: tips modal viewport svg imagemap ie6 + * Styles: core basic css3 + */ +/*global window: false, jQuery: false, console: false, define: false */ + +/* Cache window, document, undefined */ +(function( window, document, undefined ) { + + // Uses AMD or browser globals to create a jQuery plugin. + (function( factory ) { + "use strict"; + if(typeof define === 'function' && define.amd) { + define(['jquery'], factory); + } + else if(jQuery && !jQuery.fn.qtip) { + factory(jQuery); + } + } + (function($) { + "use strict"; // Enable ECMAScript "strict" operation for this function. See more: http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/ + ;// Munge the primitives - Paul Irish tip + var TRUE = true, + FALSE = false, + NULL = null, + + // Common variables + X = 'x', Y = 'y', + WIDTH = 'width', + HEIGHT = 'height', + + // Positioning sides + TOP = 'top', + LEFT = 'left', + BOTTOM = 'bottom', + RIGHT = 'right', + CENTER = 'center', + + // Position adjustment types + FLIP = 'flip', + FLIPINVERT = 'flipinvert', + SHIFT = 'shift', + + // Shortcut vars + QTIP, PROTOTYPE, CORNER, CHECKS, + PLUGINS = {}, + NAMESPACE = 'qtip', + ATTR_HAS = 'data-hasqtip', + ATTR_ID = 'data-qtip-id', + WIDGET = ['ui-widget', 'ui-tooltip'], + SELECTOR = '.'+NAMESPACE, + INACTIVE_EVENTS = 'click dblclick mousedown mouseup mousemove mouseleave mouseenter'.split(' '), + + CLASS_FIXED = NAMESPACE+'-fixed', + CLASS_DEFAULT = NAMESPACE + '-default', + CLASS_FOCUS = NAMESPACE + '-focus', + CLASS_HOVER = NAMESPACE + '-hover', + CLASS_DISABLED = NAMESPACE+'-disabled', + + replaceSuffix = '_replacedByqTip', + oldtitle = 'oldtitle', + trackingBound, + + // Browser detection + BROWSER = { + /* + * IE version detection + * + * Adapted from: http://ajaxian.com/archives/attack-of-the-ie-conditional-comment + * Credit to James Padolsey for the original implemntation! + */ + ie: (function(){ + for ( + var v = 4, i = document.createElement("div"); + (i.innerHTML = "") && i.getElementsByTagName("i")[0]; + v+=1 + ) {} + return v > 4 ? v : NaN; + }()), + + /* + * iOS version detection + */ + iOS: parseFloat( + ('' + (/CPU.*OS ([0-9_]{1,5})|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent) || [0,''])[1]) + .replace('undefined', '3_2').replace('_', '.').replace('_', '') + ) || FALSE + }; + ;function QTip(target, options, id, attr) { + // Elements and ID + this.id = id; + this.target = target; + this.tooltip = NULL; + this.elements = { target: target }; + + // Internal constructs + this._id = NAMESPACE + '-' + id; + this.timers = { img: {} }; + this.options = options; + this.plugins = {}; + + // Cache object + this.cache = { + event: {}, + target: $(), + disabled: FALSE, + attr: attr, + onTooltip: FALSE, + lastClass: '' + }; + + // Set the initial flags + this.rendered = this.destroyed = this.disabled = this.waiting = + this.hiddenDuringWait = this.positioning = this.triggering = FALSE; + } + PROTOTYPE = QTip.prototype; + + PROTOTYPE._when = function(deferreds) { + return $.when.apply($, deferreds); + }; + + PROTOTYPE.render = function(show) { + if(this.rendered || this.destroyed) { return this; } // If tooltip has already been rendered, exit + + var self = this, + options = this.options, + cache = this.cache, + elements = this.elements, + text = options.content.text, + title = options.content.title, + button = options.content.button, + posOptions = options.position, + namespace = '.'+this._id+' ', + deferreds = [], + tooltip; + + // Add ARIA attributes to target + $.attr(this.target[0], 'aria-describedby', this._id); + + // Create public position object that tracks current position corners + cache.posClass = this._createPosClass( + (this.position = { my: posOptions.my, at: posOptions.at }).my + ); + + // Create tooltip element + this.tooltip = elements.tooltip = tooltip = $('
    ', { + 'id': this._id, + 'class': [ NAMESPACE, CLASS_DEFAULT, options.style.classes, cache.posClass ].join(' '), + 'width': options.style.width || '', + 'height': options.style.height || '', + 'tracking': posOptions.target === 'mouse' && posOptions.adjust.mouse, + + /* ARIA specific attributes */ + 'role': 'alert', + 'aria-live': 'polite', + 'aria-atomic': FALSE, + 'aria-describedby': this._id + '-content', + 'aria-hidden': TRUE + }) + .toggleClass(CLASS_DISABLED, this.disabled) + .attr(ATTR_ID, this.id) + .data(NAMESPACE, this) + .appendTo(posOptions.container) + .append( + // Create content element + elements.content = $('
    ', { + 'class': NAMESPACE + '-content', + 'id': this._id + '-content', + 'aria-atomic': TRUE + }) + ); + + // Set rendered flag and prevent redundant reposition calls for now + this.rendered = -1; + this.positioning = TRUE; + + // Create title... + if(title) { + this._createTitle(); + + // Update title only if its not a callback (called in toggle if so) + if(!$.isFunction(title)) { + deferreds.push( this._updateTitle(title, FALSE) ); + } + } + + // Create button + if(button) { this._createButton(); } + + // Set proper rendered flag and update content if not a callback function (called in toggle) + if(!$.isFunction(text)) { + deferreds.push( this._updateContent(text, FALSE) ); + } + this.rendered = TRUE; + + // Setup widget classes + this._setWidget(); + + // Initialize 'render' plugins + $.each(PLUGINS, function(name) { + var instance; + if(this.initialize === 'render' && (instance = this(self))) { + self.plugins[name] = instance; + } + }); + + // Unassign initial events and assign proper events + this._unassignEvents(); + this._assignEvents(); + + // When deferreds have completed + this._when(deferreds).then(function() { + // tooltiprender event + self._trigger('render'); + + // Reset flags + self.positioning = FALSE; + + // Show tooltip if not hidden during wait period + if(!self.hiddenDuringWait && (options.show.ready || show)) { + self.toggle(TRUE, cache.event, FALSE); + } + self.hiddenDuringWait = FALSE; + }); + + // Expose API + QTIP.api[this.id] = this; + + return this; + }; + + PROTOTYPE.destroy = function(immediate) { + // Set flag the signify destroy is taking place to plugins + // and ensure it only gets destroyed once! + if(this.destroyed) { return this.target; } + + function process() { + if(this.destroyed) { return; } + this.destroyed = TRUE; + + var target = this.target, + title = target.attr(oldtitle), + timer; + + // Destroy tooltip if rendered + if(this.rendered) { + this.tooltip.stop(1,0).find('*').remove().end().remove(); + } + + // Destroy all plugins + $.each(this.plugins, function(name) { + this.destroy && this.destroy(); + }); + + // Clear timers + for(timer in this.timers) { + clearTimeout(this.timers[timer]); + } + + // Remove api object and ARIA attributes + target.removeData(NAMESPACE) + .removeAttr(ATTR_ID) + .removeAttr(ATTR_HAS) + .removeAttr('aria-describedby'); + + // Reset old title attribute if removed + if(this.options.suppress && title) { + target.attr('title', title).removeAttr(oldtitle); + } + + // Remove qTip events associated with this API + this._unassignEvents(); + + // Remove ID from used id objects, and delete object references + // for better garbage collection and leak protection + this.options = this.elements = this.cache = this.timers = + this.plugins = this.mouse = NULL; + + // Delete epoxsed API object + delete QTIP.api[this.id]; + } + + // If an immediate destory is needed + if((immediate !== TRUE || this.triggering === 'hide') && this.rendered) { + this.tooltip.one('tooltiphidden', $.proxy(process, this)); + !this.triggering && this.hide(); + } + + // If we're not in the process of hiding... process + else { process.call(this); } + + return this.target; + }; + ;function invalidOpt(a) { + return a === NULL || $.type(a) !== 'object'; + } + + function invalidContent(c) { + return !( $.isFunction(c) || (c && c.attr) || c.length || ($.type(c) === 'object' && (c.jquery || c.then) )); + } + + // Option object sanitizer + function sanitizeOptions(opts) { + var content, text, ajax, once; + + if(invalidOpt(opts)) { return FALSE; } + + if(invalidOpt(opts.metadata)) { + opts.metadata = { type: opts.metadata }; + } + + if('content' in opts) { + content = opts.content; + + if(invalidOpt(content) || content.jquery || content.done) { + content = opts.content = { + text: (text = invalidContent(content) ? FALSE : content) + }; + } + else { text = content.text; } + + // DEPRECATED - Old content.ajax plugin functionality + // Converts it into the proper Deferred syntax + if('ajax' in content) { + ajax = content.ajax; + once = ajax && ajax.once !== FALSE; + delete content.ajax; + + content.text = function(event, api) { + var loading = text || $(this).attr(api.options.content.attr) || 'Loading...', + + deferred = $.ajax( + $.extend({}, ajax, { context: api }) + ) + .then(ajax.success, NULL, ajax.error) + .then(function(content) { + if(content && once) { api.set('content.text', content); } + return content; + }, + function(xhr, status, error) { + if(api.destroyed || xhr.status === 0) { return; } + api.set('content.text', status + ': ' + error); + }); + + return !once ? (api.set('content.text', loading), deferred) : loading; + }; + } + + if('title' in content) { + if($.isPlainObject(content.title)) { + content.button = content.title.button; + content.title = content.title.text; + } + + if(invalidContent(content.title || FALSE)) { + content.title = FALSE; + } + } + } + + if('position' in opts && invalidOpt(opts.position)) { + opts.position = { my: opts.position, at: opts.position }; + } + + if('show' in opts && invalidOpt(opts.show)) { + opts.show = opts.show.jquery ? { target: opts.show } : + opts.show === TRUE ? { ready: TRUE } : { event: opts.show }; + } + + if('hide' in opts && invalidOpt(opts.hide)) { + opts.hide = opts.hide.jquery ? { target: opts.hide } : { event: opts.hide }; + } + + if('style' in opts && invalidOpt(opts.style)) { + opts.style = { classes: opts.style }; + } + + // Sanitize plugin options + $.each(PLUGINS, function() { + this.sanitize && this.sanitize(opts); + }); + + return opts; + } + + // Setup builtin .set() option checks + CHECKS = PROTOTYPE.checks = { + builtin: { + // Core checks + '^id$': function(obj, o, v, prev) { + var id = v === TRUE ? QTIP.nextid : v, + new_id = NAMESPACE + '-' + id; + + if(id !== FALSE && id.length > 0 && !$('#'+new_id).length) { + this._id = new_id; + + if(this.rendered) { + this.tooltip[0].id = this._id; + this.elements.content[0].id = this._id + '-content'; + this.elements.title[0].id = this._id + '-title'; + } + } + else { obj[o] = prev; } + }, + '^prerender': function(obj, o, v) { + v && !this.rendered && this.render(this.options.show.ready); + }, + + // Content checks + '^content.text$': function(obj, o, v) { + this._updateContent(v); + }, + '^content.attr$': function(obj, o, v, prev) { + if(this.options.content.text === this.target.attr(prev)) { + this._updateContent( this.target.attr(v) ); + } + }, + '^content.title$': function(obj, o, v) { + // Remove title if content is null + if(!v) { return this._removeTitle(); } + + // If title isn't already created, create it now and update + v && !this.elements.title && this._createTitle(); + this._updateTitle(v); + }, + '^content.button$': function(obj, o, v) { + this._updateButton(v); + }, + '^content.title.(text|button)$': function(obj, o, v) { + this.set('content.'+o, v); // Backwards title.text/button compat + }, + + // Position checks + '^position.(my|at)$': function(obj, o, v){ + 'string' === typeof v && (this.position[o] = obj[o] = new CORNER(v, o === 'at')); + }, + '^position.container$': function(obj, o, v){ + this.rendered && this.tooltip.appendTo(v); + }, + + // Show checks + '^show.ready$': function(obj, o, v) { + v && (!this.rendered && this.render(TRUE) || this.toggle(TRUE)); + }, + + // Style checks + '^style.classes$': function(obj, o, v, p) { + this.rendered && this.tooltip.removeClass(p).addClass(v); + }, + '^style.(width|height)': function(obj, o, v) { + this.rendered && this.tooltip.css(o, v); + }, + '^style.widget|content.title': function() { + this.rendered && this._setWidget(); + }, + '^style.def': function(obj, o, v) { + this.rendered && this.tooltip.toggleClass(CLASS_DEFAULT, !!v); + }, + + // Events check + '^events.(render|show|move|hide|focus|blur)$': function(obj, o, v) { + this.rendered && this.tooltip[($.isFunction(v) ? '' : 'un') + 'bind']('tooltip'+o, v); + }, + + // Properties which require event reassignment + '^(show|hide|position).(event|target|fixed|inactive|leave|distance|viewport|adjust)': function() { + if(!this.rendered) { return; } + + // Set tracking flag + var posOptions = this.options.position; + this.tooltip.attr('tracking', posOptions.target === 'mouse' && posOptions.adjust.mouse); + + // Reassign events + this._unassignEvents(); + this._assignEvents(); + } + } + }; + + // Dot notation converter + function convertNotation(options, notation) { + var i = 0, obj, option = options, + + // Split notation into array + levels = notation.split('.'); + + // Loop through + while( option = option[ levels[i++] ] ) { + if(i < levels.length) { obj = option; } + } + + return [obj || options, levels.pop()]; + } + + PROTOTYPE.get = function(notation) { + if(this.destroyed) { return this; } + + var o = convertNotation(this.options, notation.toLowerCase()), + result = o[0][ o[1] ]; + + return result.precedance ? result.string() : result; + }; + + function setCallback(notation, args) { + var category, rule, match; + + for(category in this.checks) { + for(rule in this.checks[category]) { + if(match = (new RegExp(rule, 'i')).exec(notation)) { + args.push(match); + + if(category === 'builtin' || this.plugins[category]) { + this.checks[category][rule].apply( + this.plugins[category] || this, args + ); + } + } + } + } + } + + var rmove = /^position\.(my|at|adjust|target|container|viewport)|style|content|show\.ready/i, + rrender = /^prerender|show\.ready/i; + + PROTOTYPE.set = function(option, value) { + if(this.destroyed) { return this; } + + var rendered = this.rendered, + reposition = FALSE, + options = this.options, + checks = this.checks, + name; + + // Convert singular option/value pair into object form + if('string' === typeof option) { + name = option; option = {}; option[name] = value; + } + else { option = $.extend({}, option); } + + // Set all of the defined options to their new values + $.each(option, function(notation, value) { + if(rendered && rrender.test(notation)) { + delete option[notation]; return; + } + + // Set new obj value + var obj = convertNotation(options, notation.toLowerCase()), previous; + previous = obj[0][ obj[1] ]; + obj[0][ obj[1] ] = value && value.nodeType ? $(value) : value; + + // Also check if we need to reposition + reposition = rmove.test(notation) || reposition; + + // Set the new params for the callback + option[notation] = [obj[0], obj[1], value, previous]; + }); + + // Re-sanitize options + sanitizeOptions(options); + + /* + * Execute any valid callbacks for the set options + * Also set positioning flag so we don't get loads of redundant repositioning calls. + */ + this.positioning = TRUE; + $.each(option, $.proxy(setCallback, this)); + this.positioning = FALSE; + + // Update position if needed + if(this.rendered && this.tooltip[0].offsetWidth > 0 && reposition) { + this.reposition( options.position.target === 'mouse' ? NULL : this.cache.event ); + } + + return this; + }; + ;PROTOTYPE._update = function(content, element, reposition) { + var self = this, + cache = this.cache; + + // Make sure tooltip is rendered and content is defined. If not return + if(!this.rendered || !content) { return FALSE; } + + // Use function to parse content + if($.isFunction(content)) { + content = content.call(this.elements.target, cache.event, this) || ''; + } + + // Handle deferred content + if($.isFunction(content.then)) { + cache.waiting = TRUE; + return content.then(function(c) { + cache.waiting = FALSE; + return self._update(c, element); + }, NULL, function(e) { + return self._update(e, element); + }); + } + + // If content is null... return false + if(content === FALSE || (!content && content !== '')) { return FALSE; } + + // Append new content if its a DOM array and show it if hidden + if(content.jquery && content.length > 0) { + element.empty().append( + content.css({ display: 'block', visibility: 'visible' }) + ); + } + + // Content is a regular string, insert the new content + else { element.html(content); } + + // Wait for content to be loaded, and reposition + return this._waitForContent(element).then(function(images) { + if(self.rendered && self.tooltip[0].offsetWidth > 0) { + self.reposition(cache.event, !images.length); + } + }); + }; + + PROTOTYPE._waitForContent = function(element) { + var cache = this.cache; + + // Set flag + cache.waiting = TRUE; + + // If imagesLoaded is included, ensure images have loaded and return promise + return ( $.fn.imagesLoaded ? element.imagesLoaded() : $.Deferred().resolve([]) ) + .done(function() { cache.waiting = FALSE; }) + .promise(); + }; + + PROTOTYPE._updateContent = function(content, reposition) { + this._update(content, this.elements.content, reposition); + }; + + PROTOTYPE._updateTitle = function(content, reposition) { + if(this._update(content, this.elements.title, reposition) === FALSE) { + this._removeTitle(FALSE); + } + }; + + PROTOTYPE._createTitle = function() + { + var elements = this.elements, + id = this._id+'-title'; + + // Destroy previous title element, if present + if(elements.titlebar) { this._removeTitle(); } + + // Create title bar and title elements + elements.titlebar = $('
    ', { + 'class': NAMESPACE + '-titlebar ' + (this.options.style.widget ? createWidgetClass('header') : '') + }) + .append( + elements.title = $('
    ', { + 'id': id, + 'class': NAMESPACE + '-title', + 'aria-atomic': TRUE + }) + ) + .insertBefore(elements.content) + + // Button-specific events + .delegate('.qtip-close', 'mousedown keydown mouseup keyup mouseout', function(event) { + $(this).toggleClass('ui-state-active ui-state-focus', event.type.substr(-4) === 'down'); + }) + .delegate('.qtip-close', 'mouseover mouseout', function(event){ + $(this).toggleClass('ui-state-hover', event.type === 'mouseover'); + }); + + // Create button if enabled + if(this.options.content.button) { this._createButton(); } + }; + + PROTOTYPE._removeTitle = function(reposition) + { + var elements = this.elements; + + if(elements.title) { + elements.titlebar.remove(); + elements.titlebar = elements.title = elements.button = NULL; + + // Reposition if enabled + if(reposition !== FALSE) { this.reposition(); } + } + }; + ;PROTOTYPE._createPosClass = function(my) { + return NAMESPACE + '-pos-' + (my || this.options.position.my).abbrev(); + }; + + PROTOTYPE.reposition = function(event, effect) { + if(!this.rendered || this.positioning || this.destroyed) { return this; } + + // Set positioning flag + this.positioning = TRUE; + + var cache = this.cache, + tooltip = this.tooltip, + posOptions = this.options.position, + target = posOptions.target, + my = posOptions.my, + at = posOptions.at, + viewport = posOptions.viewport, + container = posOptions.container, + adjust = posOptions.adjust, + method = adjust.method.split(' '), + tooltipWidth = tooltip.outerWidth(FALSE), + tooltipHeight = tooltip.outerHeight(FALSE), + targetWidth = 0, + targetHeight = 0, + type = tooltip.css('position'), + position = { left: 0, top: 0 }, + visible = tooltip[0].offsetWidth > 0, + isScroll = event && event.type === 'scroll', + win = $(window), + doc = container[0].ownerDocument, + mouse = this.mouse, + pluginCalculations, offset, adjusted, newClass; + + // Check if absolute position was passed + if($.isArray(target) && target.length === 2) { + // Force left top and set position + at = { x: LEFT, y: TOP }; + position = { left: target[0], top: target[1] }; + } + + // Check if mouse was the target + else if(target === 'mouse') { + // Force left top to allow flipping + at = { x: LEFT, y: TOP }; + + // Use the mouse origin that caused the show event, if distance hiding is enabled + if((!adjust.mouse || this.options.hide.distance) && cache.origin && cache.origin.pageX) { + event = cache.origin; + } + + // Use cached event for resize/scroll events + else if(!event || (event && (event.type === 'resize' || event.type === 'scroll'))) { + event = cache.event; + } + + // Otherwise, use the cached mouse coordinates if available + else if(mouse && mouse.pageX) { + event = mouse; + } + + // Calculate body and container offset and take them into account below + if(type !== 'static') { position = container.offset(); } + if(doc.body.offsetWidth !== (window.innerWidth || doc.documentElement.clientWidth)) { + offset = $(document.body).offset(); + } + + // Use event coordinates for position + position = { + left: event.pageX - position.left + (offset && offset.left || 0), + top: event.pageY - position.top + (offset && offset.top || 0) + }; + + // Scroll events are a pain, some browsers + if(adjust.mouse && isScroll && mouse) { + position.left -= (mouse.scrollX || 0) - win.scrollLeft(); + position.top -= (mouse.scrollY || 0) - win.scrollTop(); + } + } + + // Target wasn't mouse or absolute... + else { + // Check if event targetting is being used + if(target === 'event') { + if(event && event.target && event.type !== 'scroll' && event.type !== 'resize') { + cache.target = $(event.target); + } + else if(!event.target) { + cache.target = this.elements.target; + } + } + else if(target !== 'event'){ + cache.target = $(target.jquery ? target : this.elements.target); + } + target = cache.target; + + // Parse the target into a jQuery object and make sure there's an element present + target = $(target).eq(0); + if(target.length === 0) { return this; } + + // Check if window or document is the target + else if(target[0] === document || target[0] === window) { + targetWidth = BROWSER.iOS ? window.innerWidth : target.width(); + targetHeight = BROWSER.iOS ? window.innerHeight : target.height(); + + if(target[0] === window) { + position = { + top: (viewport || target).scrollTop(), + left: (viewport || target).scrollLeft() + }; + } + } + + // Check if the target is an element + else if(PLUGINS.imagemap && target.is('area')) { + pluginCalculations = PLUGINS.imagemap(this, target, at, PLUGINS.viewport ? method : FALSE); + } + + // Check if the target is an SVG element + else if(PLUGINS.svg && target && target[0].ownerSVGElement) { + pluginCalculations = PLUGINS.svg(this, target, at, PLUGINS.viewport ? method : FALSE); + } + + // Otherwise use regular jQuery methods + else { + targetWidth = target.outerWidth(FALSE); + targetHeight = target.outerHeight(FALSE); + position = target.offset(); + } + + // Parse returned plugin values into proper variables + if(pluginCalculations) { + targetWidth = pluginCalculations.width; + targetHeight = pluginCalculations.height; + offset = pluginCalculations.offset; + position = pluginCalculations.position; + } + + // Adjust position to take into account offset parents + position = this.reposition.offset(target, position, container); + + // Adjust for position.fixed tooltips (and also iOS scroll bug in v3.2-4.0 & v4.3-4.3.2) + if((BROWSER.iOS > 3.1 && BROWSER.iOS < 4.1) || + (BROWSER.iOS >= 4.3 && BROWSER.iOS < 4.33) || + (!BROWSER.iOS && type === 'fixed') + ){ + position.left -= win.scrollLeft(); + position.top -= win.scrollTop(); + } + + // Adjust position relative to target + if(!pluginCalculations || (pluginCalculations && pluginCalculations.adjustable !== FALSE)) { + position.left += at.x === RIGHT ? targetWidth : at.x === CENTER ? targetWidth / 2 : 0; + position.top += at.y === BOTTOM ? targetHeight : at.y === CENTER ? targetHeight / 2 : 0; + } + } + + // Adjust position relative to tooltip + position.left += adjust.x + (my.x === RIGHT ? -tooltipWidth : my.x === CENTER ? -tooltipWidth / 2 : 0); + position.top += adjust.y + (my.y === BOTTOM ? -tooltipHeight : my.y === CENTER ? -tooltipHeight / 2 : 0); + + // Use viewport adjustment plugin if enabled + if(PLUGINS.viewport) { + adjusted = position.adjusted = PLUGINS.viewport( + this, position, posOptions, targetWidth, targetHeight, tooltipWidth, tooltipHeight + ); + + // Apply offsets supplied by positioning plugin (if used) + if(offset && adjusted.left) { position.left += offset.left; } + if(offset && adjusted.top) { position.top += offset.top; } + + // Apply any new 'my' position + if(adjusted.my) { this.position.my = adjusted.my; } + } + + // Viewport adjustment is disabled, set values to zero + else { position.adjusted = { left: 0, top: 0 }; } + + // Set tooltip position class if it's changed + if(cache.posClass !== (newClass = this._createPosClass(this.position.my))) { + tooltip.removeClass(cache.posClass).addClass( (cache.posClass = newClass) ); + } + + // tooltipmove event + if(!this._trigger('move', [position, viewport.elem || viewport], event)) { return this; } + delete position.adjusted; + + // If effect is disabled, target it mouse, no animation is defined or positioning gives NaN out, set CSS directly + if(effect === FALSE || !visible || isNaN(position.left) || isNaN(position.top) || target === 'mouse' || !$.isFunction(posOptions.effect)) { + tooltip.css(position); + } + + // Use custom function if provided + else if($.isFunction(posOptions.effect)) { + posOptions.effect.call(tooltip, this, $.extend({}, position)); + tooltip.queue(function(next) { + // Reset attributes to avoid cross-browser rendering bugs + $(this).css({ opacity: '', height: '' }); + if(BROWSER.ie) { this.style.removeAttribute('filter'); } + + next(); + }); + } + + // Set positioning flag + this.positioning = FALSE; + + return this; + }; + + // Custom (more correct for qTip!) offset calculator + PROTOTYPE.reposition.offset = function(elem, pos, container) { + if(!container[0]) { return pos; } + + var ownerDocument = $(elem[0].ownerDocument), + quirks = !!BROWSER.ie && document.compatMode !== 'CSS1Compat', + parent = container[0], + scrolled, position, parentOffset, overflow; + + function scroll(e, i) { + pos.left += i * e.scrollLeft(); + pos.top += i * e.scrollTop(); + } + + // Compensate for non-static containers offset + do { + if((position = $.css(parent, 'position')) !== 'static') { + if(position === 'fixed') { + parentOffset = parent.getBoundingClientRect(); + scroll(ownerDocument, -1); + } + else { + parentOffset = $(parent).position(); + parentOffset.left += (parseFloat($.css(parent, 'borderLeftWidth')) || 0); + parentOffset.top += (parseFloat($.css(parent, 'borderTopWidth')) || 0); + } + + pos.left -= parentOffset.left + (parseFloat($.css(parent, 'marginLeft')) || 0); + pos.top -= parentOffset.top + (parseFloat($.css(parent, 'marginTop')) || 0); + + // If this is the first parent element with an overflow of "scroll" or "auto", store it + if(!scrolled && (overflow = $.css(parent, 'overflow')) !== 'hidden' && overflow !== 'visible') { scrolled = $(parent); } + } + } + while((parent = parent.offsetParent)); + + // Compensate for containers scroll if it also has an offsetParent (or in IE quirks mode) + if(scrolled && (scrolled[0] !== ownerDocument[0] || quirks)) { + scroll(scrolled, 1); + } + + return pos; + }; + + // Corner class + var C = (CORNER = PROTOTYPE.reposition.Corner = function(corner, forceY) { + corner = ('' + corner).replace(/([A-Z])/, ' $1').replace(/middle/gi, CENTER).toLowerCase(); + this.x = (corner.match(/left|right/i) || corner.match(/center/) || ['inherit'])[0].toLowerCase(); + this.y = (corner.match(/top|bottom|center/i) || ['inherit'])[0].toLowerCase(); + this.forceY = !!forceY; + + var f = corner.charAt(0); + this.precedance = (f === 't' || f === 'b' ? Y : X); + }).prototype; + + C.invert = function(z, center) { + this[z] = this[z] === LEFT ? RIGHT : this[z] === RIGHT ? LEFT : center || this[z]; + }; + + C.string = function(join) { + var x = this.x, y = this.y; + + var result = x !== y ? + (x === 'center' || y !== 'center' && (this.precedance === Y || this.forceY) ? + [y,x] : [x,y] + ) : + [x]; + + return join !== false ? result.join(' ') : result; + }; + + C.abbrev = function() { + var result = this.string(false); + return result[0].charAt(0) + (result[1] && result[1].charAt(0) || ''); + }; + + C.clone = function() { + return new CORNER( this.string(), this.forceY ); + }; + + ; + PROTOTYPE.toggle = function(state, event) { + var cache = this.cache, + options = this.options, + tooltip = this.tooltip; + + // Try to prevent flickering when tooltip overlaps show element + if(event) { + if((/over|enter/).test(event.type) && cache.event && (/out|leave/).test(cache.event.type) && + options.show.target.add(event.target).length === options.show.target.length && + tooltip.has(event.relatedTarget).length) { + return this; + } + + // Cache event + cache.event = $.event.fix(event); + } + + // If we're currently waiting and we've just hidden... stop it + this.waiting && !state && (this.hiddenDuringWait = TRUE); + + // Render the tooltip if showing and it isn't already + if(!this.rendered) { return state ? this.render(1) : this; } + else if(this.destroyed || this.disabled) { return this; } + + var type = state ? 'show' : 'hide', + opts = this.options[type], + otherOpts = this.options[ !state ? 'show' : 'hide' ], + posOptions = this.options.position, + contentOptions = this.options.content, + width = this.tooltip.css('width'), + visible = this.tooltip.is(':visible'), + animate = state || opts.target.length === 1, + sameTarget = !event || opts.target.length < 2 || cache.target[0] === event.target, + identicalState, allow, showEvent, delay, after; + + // Detect state if valid one isn't provided + if((typeof state).search('boolean|number')) { state = !visible; } + + // Check if the tooltip is in an identical state to the new would-be state + identicalState = !tooltip.is(':animated') && visible === state && sameTarget; + + // Fire tooltip(show/hide) event and check if destroyed + allow = !identicalState ? !!this._trigger(type, [90]) : NULL; + + // Check to make sure the tooltip wasn't destroyed in the callback + if(this.destroyed) { return this; } + + // If the user didn't stop the method prematurely and we're showing the tooltip, focus it + if(allow !== FALSE && state) { this.focus(event); } + + // If the state hasn't changed or the user stopped it, return early + if(!allow || identicalState) { return this; } + + // Set ARIA hidden attribute + $.attr(tooltip[0], 'aria-hidden', !!!state); + + // Execute state specific properties + if(state) { + // Store show origin coordinates + this.mouse && (cache.origin = $.event.fix(this.mouse)); + + // Update tooltip content & title if it's a dynamic function + if($.isFunction(contentOptions.text)) { this._updateContent(contentOptions.text, FALSE); } + if($.isFunction(contentOptions.title)) { this._updateTitle(contentOptions.title, FALSE); } + + // Cache mousemove events for positioning purposes (if not already tracking) + if(!trackingBound && posOptions.target === 'mouse' && posOptions.adjust.mouse) { + $(document).bind('mousemove.'+NAMESPACE, this._storeMouse); + trackingBound = TRUE; + } + + // Update the tooltip position (set width first to prevent viewport/max-width issues) + if(!width) { tooltip.css('width', tooltip.outerWidth(FALSE)); } + this.reposition(event, arguments[2]); + if(!width) { tooltip.css('width', ''); } + + // Hide other tooltips if tooltip is solo + if(!!opts.solo) { + (typeof opts.solo === 'string' ? $(opts.solo) : $(SELECTOR, opts.solo)) + .not(tooltip).not(opts.target).qtip('hide', $.Event('tooltipsolo')); + } + } + else { + // Clear show timer if we're hiding + clearTimeout(this.timers.show); + + // Remove cached origin on hide + delete cache.origin; + + // Remove mouse tracking event if not needed (all tracking qTips are hidden) + if(trackingBound && !$(SELECTOR+'[tracking="true"]:visible', opts.solo).not(tooltip).length) { + $(document).unbind('mousemove.'+NAMESPACE); + trackingBound = FALSE; + } + + // Blur the tooltip + this.blur(event); + } + + // Define post-animation, state specific properties + after = $.proxy(function() { + if(state) { + // Prevent antialias from disappearing in IE by removing filter + if(BROWSER.ie) { tooltip[0].style.removeAttribute('filter'); } + + // Remove overflow setting to prevent tip bugs + tooltip.css('overflow', ''); + + // Autofocus elements if enabled + if('string' === typeof opts.autofocus) { + $(this.options.show.autofocus, tooltip).focus(); + } + + // If set, hide tooltip when inactive for delay period + this.options.show.target.trigger('qtip-'+this.id+'-inactive'); + } + else { + // Reset CSS states + tooltip.css({ + display: '', + visibility: '', + opacity: '', + left: '', + top: '' + }); + } + + // tooltipvisible/tooltiphidden events + this._trigger(state ? 'visible' : 'hidden'); + }, this); + + // If no effect type is supplied, use a simple toggle + if(opts.effect === FALSE || animate === FALSE) { + tooltip[ type ](); + after(); + } + + // Use custom function if provided + else if($.isFunction(opts.effect)) { + tooltip.stop(1, 1); + opts.effect.call(tooltip, this); + tooltip.queue('fx', function(n) { + after(); n(); + }); + } + + // Use basic fade function by default + else { tooltip.fadeTo(90, state ? 1 : 0, after); } + + // If inactive hide method is set, active it + if(state) { opts.target.trigger('qtip-'+this.id+'-inactive'); } + + return this; + }; + + PROTOTYPE.show = function(event) { return this.toggle(TRUE, event); }; + + PROTOTYPE.hide = function(event) { return this.toggle(FALSE, event); }; + ;PROTOTYPE.focus = function(event) { + if(!this.rendered || this.destroyed) { return this; } + + var qtips = $(SELECTOR), + tooltip = this.tooltip, + curIndex = parseInt(tooltip[0].style.zIndex, 10), + newIndex = QTIP.zindex + qtips.length, + focusedElem; + + // Only update the z-index if it has changed and tooltip is not already focused + if(!tooltip.hasClass(CLASS_FOCUS)) { + // tooltipfocus event + if(this._trigger('focus', [newIndex], event)) { + // Only update z-index's if they've changed + if(curIndex !== newIndex) { + // Reduce our z-index's and keep them properly ordered + qtips.each(function() { + if(this.style.zIndex > curIndex) { + this.style.zIndex = this.style.zIndex - 1; + } + }); + + // Fire blur event for focused tooltip + qtips.filter('.' + CLASS_FOCUS).qtip('blur', event); + } + + // Set the new z-index + tooltip.addClass(CLASS_FOCUS)[0].style.zIndex = newIndex; + } + } + + return this; + }; + + PROTOTYPE.blur = function(event) { + if(!this.rendered || this.destroyed) { return this; } + + // Set focused status to FALSE + this.tooltip.removeClass(CLASS_FOCUS); + + // tooltipblur event + this._trigger('blur', [ this.tooltip.css('zIndex') ], event); + + return this; + }; + ;PROTOTYPE.disable = function(state) { + if(this.destroyed) { return this; } + + // If 'toggle' is passed, toggle the current state + if(state === 'toggle') { + state = !(this.rendered ? this.tooltip.hasClass(CLASS_DISABLED) : this.disabled); + } + + // Disable if no state passed + else if('boolean' !== typeof state) { + state = TRUE; + } + + if(this.rendered) { + this.tooltip.toggleClass(CLASS_DISABLED, state) + .attr('aria-disabled', state); + } + + this.disabled = !!state; + + return this; + }; + + PROTOTYPE.enable = function() { return this.disable(FALSE); }; + ;PROTOTYPE._createButton = function() + { + var self = this, + elements = this.elements, + tooltip = elements.tooltip, + button = this.options.content.button, + isString = typeof button === 'string', + close = isString ? button : 'Close tooltip'; + + if(elements.button) { elements.button.remove(); } + + // Use custom button if one was supplied by user, else use default + if(button.jquery) { + elements.button = button; + } + else { + elements.button = $('', { + 'class': 'qtip-close ' + (this.options.style.widget ? '' : NAMESPACE+'-icon'), + 'title': close, + 'aria-label': close + }) + .prepend( + $('', { + 'class': 'ui-icon ui-icon-close', + 'html': '×' + }) + ); + } + + // Create button and setup attributes + elements.button.appendTo(elements.titlebar || tooltip) + .attr('role', 'button') + .click(function(event) { + if(!tooltip.hasClass(CLASS_DISABLED)) { self.hide(event); } + return FALSE; + }); + }; + + PROTOTYPE._updateButton = function(button) + { + // Make sure tooltip is rendered and if not, return + if(!this.rendered) { return FALSE; } + + var elem = this.elements.button; + if(button) { this._createButton(); } + else { elem.remove(); } + }; + ;// Widget class creator + function createWidgetClass(cls) { + return WIDGET.concat('').join(cls ? '-'+cls+' ' : ' '); + } + + // Widget class setter method + PROTOTYPE._setWidget = function() + { + var on = this.options.style.widget, + elements = this.elements, + tooltip = elements.tooltip, + disabled = tooltip.hasClass(CLASS_DISABLED); + + tooltip.removeClass(CLASS_DISABLED); + CLASS_DISABLED = on ? 'ui-state-disabled' : 'qtip-disabled'; + tooltip.toggleClass(CLASS_DISABLED, disabled); + + tooltip.toggleClass('ui-helper-reset '+createWidgetClass(), on).toggleClass(CLASS_DEFAULT, this.options.style.def && !on); + + if(elements.content) { + elements.content.toggleClass( createWidgetClass('content'), on); + } + if(elements.titlebar) { + elements.titlebar.toggleClass( createWidgetClass('header'), on); + } + if(elements.button) { + elements.button.toggleClass(NAMESPACE+'-icon', !on); + } + }; + ;function delay(callback, duration) { + // If tooltip has displayed, start hide timer + if(duration > 0) { + return setTimeout( + $.proxy(callback, this), duration + ); + } + else{ callback.call(this); } + } + + function showMethod(event) { + if(this.tooltip.hasClass(CLASS_DISABLED)) { return; } + + // Clear hide timers + clearTimeout(this.timers.show); + clearTimeout(this.timers.hide); + + // Start show timer + this.timers.show = delay.call(this, + function() { this.toggle(TRUE, event); }, + this.options.show.delay + ); + } + + function hideMethod(event) { + if(this.tooltip.hasClass(CLASS_DISABLED) || this.destroyed) { return; } + + // Check if new target was actually the tooltip element + var relatedTarget = $(event.relatedTarget), + ontoTooltip = relatedTarget.closest(SELECTOR)[0] === this.tooltip[0], + ontoTarget = relatedTarget[0] === this.options.show.target[0]; + + // Clear timers and stop animation queue + clearTimeout(this.timers.show); + clearTimeout(this.timers.hide); + + // Prevent hiding if tooltip is fixed and event target is the tooltip. + // Or if mouse positioning is enabled and cursor momentarily overlaps + if(this !== relatedTarget[0] && + (this.options.position.target === 'mouse' && ontoTooltip) || + (this.options.hide.fixed && ( + (/mouse(out|leave|move)/).test(event.type) && (ontoTooltip || ontoTarget)) + )) + { + try { + event.preventDefault(); + event.stopImmediatePropagation(); + } catch(e) {} + + return; + } + + // If tooltip has displayed, start hide timer + this.timers.hide = delay.call(this, + function() { this.toggle(FALSE, event); }, + this.options.hide.delay, + this + ); + } + + function inactiveMethod(event) { + if(this.tooltip.hasClass(CLASS_DISABLED) || !this.options.hide.inactive) { return; } + + // Clear timer + clearTimeout(this.timers.inactive); + + this.timers.inactive = delay.call(this, + function(){ this.hide(event); }, + this.options.hide.inactive + ); + } + + function repositionMethod(event) { + if(this.rendered && this.tooltip[0].offsetWidth > 0) { this.reposition(event); } + } + + // Store mouse coordinates + PROTOTYPE._storeMouse = function(event) { + (this.mouse = $.event.fix(event)).type = 'mousemove'; + return this; + }; + + // Bind events + PROTOTYPE._bind = function(targets, events, method, suffix, context) { + if(!targets || !method || !events.length) { return; } + var ns = '.' + this._id + (suffix ? '-'+suffix : ''); + $(targets).bind( + (events.split ? events : events.join(ns + ' ')) + ns, + $.proxy(method, context || this) + ); + return this; + }; + PROTOTYPE._unbind = function(targets, suffix) { + targets && $(targets).unbind('.' + this._id + (suffix ? '-'+suffix : '')); + return this; + }; + + // Global delegation helper + function delegate(selector, events, method) { + $(document.body).delegate(selector, + (events.split ? events : events.join('.'+NAMESPACE + ' ')) + '.'+NAMESPACE, + function() { + var api = QTIP.api[ $.attr(this, ATTR_ID) ]; + api && !api.disabled && method.apply(api, arguments); + } + ); + } + // Event trigger + PROTOTYPE._trigger = function(type, args, event) { + var callback = $.Event('tooltip'+type); + callback.originalEvent = (event && $.extend({}, event)) || this.cache.event || NULL; + + this.triggering = type; + this.tooltip.trigger(callback, [this].concat(args || [])); + this.triggering = FALSE; + + return !callback.isDefaultPrevented(); + }; + + PROTOTYPE._bindEvents = function(showEvents, hideEvents, showTargets, hideTargets, showMethod, hideMethod) { + // Get tasrgets that lye within both + var similarTargets = showTargets.filter( hideTargets ).add( hideTargets.filter(showTargets) ), + toggleEvents = []; + + // If hide and show targets are the same... + if(similarTargets.length) { + + // Filter identical show/hide events + $.each(hideEvents, function(i, type) { + var showIndex = $.inArray(type, showEvents); + + // Both events are identical, remove from both hide and show events + // and append to toggleEvents + showIndex > -1 && toggleEvents.push( showEvents.splice( showIndex, 1 )[0] ); + }); + + // Toggle events are special case of identical show/hide events, which happen in sequence + if(toggleEvents.length) { + // Bind toggle events to the similar targets + this._bind(similarTargets, toggleEvents, function(event) { + var state = this.rendered ? this.tooltip[0].offsetWidth > 0 : false; + (state ? hideMethod : showMethod).call(this, event); + }); + + // Remove the similar targets from the regular show/hide bindings + showTargets = showTargets.not(similarTargets); + hideTargets = hideTargets.not(similarTargets); + } + } + + // Apply show/hide/toggle events + this._bind(showTargets, showEvents, showMethod); + this._bind(hideTargets, hideEvents, hideMethod); + }; + + PROTOTYPE._assignInitialEvents = function(event) { + var options = this.options, + showTarget = options.show.target, + hideTarget = options.hide.target, + showEvents = options.show.event ? $.trim('' + options.show.event).split(' ') : [], + hideEvents = options.hide.event ? $.trim('' + options.hide.event).split(' ') : []; + + // Catch remove/removeqtip events on target element to destroy redundant tooltips + this._bind(this.elements.target, ['remove', 'removeqtip'], function(event) { + this.destroy(true); + }, 'destroy'); + + /* + * Make sure hoverIntent functions properly by using mouseleave as a hide event if + * mouseenter/mouseout is used for show.event, even if it isn't in the users options. + */ + if(/mouse(over|enter)/i.test(options.show.event) && !/mouse(out|leave)/i.test(options.hide.event)) { + hideEvents.push('mouseleave'); + } + + /* + * Also make sure initial mouse targetting works correctly by caching mousemove coords + * on show targets before the tooltip has rendered. Also set onTarget when triggered to + * keep mouse tracking working. + */ + this._bind(showTarget, 'mousemove', function(event) { + this._storeMouse(event); + this.cache.onTarget = TRUE; + }); + + // Define hoverIntent function + function hoverIntent(event) { + // Only continue if tooltip isn't disabled + if(this.disabled || this.destroyed) { return FALSE; } + + // Cache the event data + this.cache.event = event && $.event.fix(event); + this.cache.target = event && $(event.target); + + // Start the event sequence + clearTimeout(this.timers.show); + this.timers.show = delay.call(this, + function() { this.render(typeof event === 'object' || options.show.ready); }, + options.prerender ? 0 : options.show.delay + ); + } + + // Filter and bind events + this._bindEvents(showEvents, hideEvents, showTarget, hideTarget, hoverIntent, function() { + if(!this.timers) { return FALSE; } + clearTimeout(this.timers.show); + }); + + // Prerendering is enabled, create tooltip now + if(options.show.ready || options.prerender) { hoverIntent.call(this, event); } + }; + + // Event assignment method + PROTOTYPE._assignEvents = function() { + var self = this, + options = this.options, + posOptions = options.position, + + tooltip = this.tooltip, + showTarget = options.show.target, + hideTarget = options.hide.target, + containerTarget = posOptions.container, + viewportTarget = posOptions.viewport, + documentTarget = $(document), + bodyTarget = $(document.body), + windowTarget = $(window), + + showEvents = options.show.event ? $.trim('' + options.show.event).split(' ') : [], + hideEvents = options.hide.event ? $.trim('' + options.hide.event).split(' ') : []; + + + // Assign passed event callbacks + $.each(options.events, function(name, callback) { + self._bind(tooltip, name === 'toggle' ? ['tooltipshow','tooltiphide'] : ['tooltip'+name], callback, null, tooltip); + }); + + // Hide tooltips when leaving current window/frame (but not select/option elements) + if(/mouse(out|leave)/i.test(options.hide.event) && options.hide.leave === 'window') { + this._bind(documentTarget, ['mouseout', 'blur'], function(event) { + if(!/select|option/.test(event.target.nodeName) && !event.relatedTarget) { + this.hide(event); + } + }); + } + + // Enable hide.fixed by adding appropriate class + if(options.hide.fixed) { + hideTarget = hideTarget.add( tooltip.addClass(CLASS_FIXED) ); + } + + /* + * Make sure hoverIntent functions properly by using mouseleave to clear show timer if + * mouseenter/mouseout is used for show.event, even if it isn't in the users options. + */ + else if(/mouse(over|enter)/i.test(options.show.event)) { + this._bind(hideTarget, 'mouseleave', function() { + clearTimeout(this.timers.show); + }); + } + + // Hide tooltip on document mousedown if unfocus events are enabled + if(('' + options.hide.event).indexOf('unfocus') > -1) { + this._bind(containerTarget.closest('html'), ['mousedown', 'touchstart'], function(event) { + var elem = $(event.target), + enabled = this.rendered && !this.tooltip.hasClass(CLASS_DISABLED) && this.tooltip[0].offsetWidth > 0, + isAncestor = elem.parents(SELECTOR).filter(this.tooltip[0]).length > 0; + + if(elem[0] !== this.target[0] && elem[0] !== this.tooltip[0] && !isAncestor && + !this.target.has(elem[0]).length && enabled + ) { + this.hide(event); + } + }); + } + + // Check if the tooltip hides when inactive + if('number' === typeof options.hide.inactive) { + // Bind inactive method to show target(s) as a custom event + this._bind(showTarget, 'qtip-'+this.id+'-inactive', inactiveMethod, 'inactive'); + + // Define events which reset the 'inactive' event handler + this._bind(hideTarget.add(tooltip), QTIP.inactiveEvents, inactiveMethod); + } + + // Filter and bind events + this._bindEvents(showEvents, hideEvents, showTarget, hideTarget, showMethod, hideMethod); + + // Mouse movement bindings + this._bind(showTarget.add(tooltip), 'mousemove', function(event) { + // Check if the tooltip hides when mouse is moved a certain distance + if('number' === typeof options.hide.distance) { + var origin = this.cache.origin || {}, + limit = this.options.hide.distance, + abs = Math.abs; + + // Check if the movement has gone beyond the limit, and hide it if so + if(abs(event.pageX - origin.pageX) >= limit || abs(event.pageY - origin.pageY) >= limit) { + this.hide(event); + } + } + + // Cache mousemove coords on show targets + this._storeMouse(event); + }); + + // Mouse positioning events + if(posOptions.target === 'mouse') { + // If mouse adjustment is on... + if(posOptions.adjust.mouse) { + // Apply a mouseleave event so we don't get problems with overlapping + if(options.hide.event) { + // Track if we're on the target or not + this._bind(showTarget, ['mouseenter', 'mouseleave'], function(event) { + if(!this.cache) {return FALSE; } + this.cache.onTarget = event.type === 'mouseenter'; + }); + } + + // Update tooltip position on mousemove + this._bind(documentTarget, 'mousemove', function(event) { + // Update the tooltip position only if the tooltip is visible and adjustment is enabled + if(this.rendered && this.cache.onTarget && !this.tooltip.hasClass(CLASS_DISABLED) && this.tooltip[0].offsetWidth > 0) { + this.reposition(event); + } + }); + } + } + + // Adjust positions of the tooltip on window resize if enabled + if(posOptions.adjust.resize || viewportTarget.length) { + this._bind( $.event.special.resize ? viewportTarget : windowTarget, 'resize', repositionMethod ); + } + + // Adjust tooltip position on scroll of the window or viewport element if present + if(posOptions.adjust.scroll) { + this._bind( windowTarget.add(posOptions.container), 'scroll', repositionMethod ); + } + }; + + // Un-assignment method + PROTOTYPE._unassignEvents = function() { + var options = this.options, + showTargets = options.show.target, + hideTargets = options.hide.target, + targets = $.grep([ + this.elements.target[0], + this.rendered && this.tooltip[0], + options.position.container[0], + options.position.viewport[0], + options.position.container.closest('html')[0], // unfocus + window, + document + ], function(i) { + return typeof i === 'object'; + }); + + // Add show and hide targets if they're valid + if(showTargets && showTargets.toArray) { + targets = targets.concat(showTargets.toArray()); + } + if(hideTargets && hideTargets.toArray) { + targets = targets.concat(hideTargets.toArray()); + } + + // Unbind the events + this._unbind(targets) + ._unbind(targets, 'destroy') + ._unbind(targets, 'inactive'); + }; + + // Apply common event handlers using delegate (avoids excessive .bind calls!) + $(function() { + delegate(SELECTOR, ['mouseenter', 'mouseleave'], function(event) { + var state = event.type === 'mouseenter', + tooltip = $(event.currentTarget), + target = $(event.relatedTarget || event.target), + options = this.options; + + // On mouseenter... + if(state) { + // Focus the tooltip on mouseenter (z-index stacking) + this.focus(event); + + // Clear hide timer on tooltip hover to prevent it from closing + tooltip.hasClass(CLASS_FIXED) && !tooltip.hasClass(CLASS_DISABLED) && clearTimeout(this.timers.hide); + } + + // On mouseleave... + else { + // When mouse tracking is enabled, hide when we leave the tooltip and not onto the show target (if a hide event is set) + if(options.position.target === 'mouse' && options.position.adjust.mouse && + options.hide.event && options.show.target && !target.closest(options.show.target[0]).length) { + this.hide(event); + } + } + + // Add hover class + tooltip.toggleClass(CLASS_HOVER, state); + }); + + // Define events which reset the 'inactive' event handler + delegate('['+ATTR_ID+']', INACTIVE_EVENTS, inactiveMethod); + }); + ;// Initialization method + function init(elem, id, opts) { + var obj, posOptions, attr, config, title, + + // Setup element references + docBody = $(document.body), + + // Use document body instead of document element if needed + newTarget = elem[0] === document ? docBody : elem, + + // Grab metadata from element if plugin is present + metadata = (elem.metadata) ? elem.metadata(opts.metadata) : NULL, + + // If metadata type if HTML5, grab 'name' from the object instead, or use the regular data object otherwise + metadata5 = opts.metadata.type === 'html5' && metadata ? metadata[opts.metadata.name] : NULL, + + // Grab data from metadata.name (or data-qtipopts as fallback) using .data() method, + html5 = elem.data(opts.metadata.name || 'qtipopts'); + + // If we don't get an object returned attempt to parse it manualyl without parseJSON + try { html5 = typeof html5 === 'string' ? $.parseJSON(html5) : html5; } catch(e) {} + + // Merge in and sanitize metadata + config = $.extend(TRUE, {}, QTIP.defaults, opts, + typeof html5 === 'object' ? sanitizeOptions(html5) : NULL, + sanitizeOptions(metadata5 || metadata)); + + // Re-grab our positioning options now we've merged our metadata and set id to passed value + posOptions = config.position; + config.id = id; + + // Setup missing content if none is detected + if('boolean' === typeof config.content.text) { + attr = elem.attr(config.content.attr); + + // Grab from supplied attribute if available + if(config.content.attr !== FALSE && attr) { config.content.text = attr; } + + // No valid content was found, abort render + else { return FALSE; } + } + + // Setup target options + if(!posOptions.container.length) { posOptions.container = docBody; } + if(posOptions.target === FALSE) { posOptions.target = newTarget; } + if(config.show.target === FALSE) { config.show.target = newTarget; } + if(config.show.solo === TRUE) { config.show.solo = posOptions.container.closest('body'); } + if(config.hide.target === FALSE) { config.hide.target = newTarget; } + if(config.position.viewport === TRUE) { config.position.viewport = posOptions.container; } + + // Ensure we only use a single container + posOptions.container = posOptions.container.eq(0); + + // Convert position corner values into x and y strings + posOptions.at = new CORNER(posOptions.at, TRUE); + posOptions.my = new CORNER(posOptions.my); + + // Destroy previous tooltip if overwrite is enabled, or skip element if not + if(elem.data(NAMESPACE)) { + if(config.overwrite) { + elem.qtip('destroy', true); + } + else if(config.overwrite === FALSE) { + return FALSE; + } + } + + // Add has-qtip attribute + elem.attr(ATTR_HAS, id); + + // Remove title attribute and store it if present + if(config.suppress && (title = elem.attr('title'))) { + // Final attr call fixes event delegatiom and IE default tooltip showing problem + elem.removeAttr('title').attr(oldtitle, title).attr('title', ''); + } + + // Initialize the tooltip and add API reference + obj = new QTip(elem, config, id, !!attr); + elem.data(NAMESPACE, obj); + + return obj; + } + + // jQuery $.fn extension method + QTIP = $.fn.qtip = function(options, notation, newValue) + { + var command = ('' + options).toLowerCase(), // Parse command + returned = NULL, + args = $.makeArray(arguments).slice(1), + event = args[args.length - 1], + opts = this[0] ? $.data(this[0], NAMESPACE) : NULL; + + // Check for API request + if((!arguments.length && opts) || command === 'api') { + return opts; + } + + // Execute API command if present + else if('string' === typeof options) { + this.each(function() { + var api = $.data(this, NAMESPACE); + if(!api) { return TRUE; } + + // Cache the event if possible + if(event && event.timeStamp) { api.cache.event = event; } + + // Check for specific API commands + if(notation && (command === 'option' || command === 'options')) { + if(newValue !== undefined || $.isPlainObject(notation)) { + api.set(notation, newValue); + } + else { + returned = api.get(notation); + return FALSE; + } + } + + // Execute API command + else if(api[command]) { + api[command].apply(api, args); + } + }); + + return returned !== NULL ? returned : this; + } + + // No API commands. validate provided options and setup qTips + else if('object' === typeof options || !arguments.length) { + // Sanitize options first + opts = sanitizeOptions($.extend(TRUE, {}, options)); + + return this.each(function(i) { + var api, id; + + // Find next available ID, or use custom ID if provided + id = $.isArray(opts.id) ? opts.id[i] : opts.id; + id = !id || id === FALSE || id.length < 1 || QTIP.api[id] ? QTIP.nextid++ : id; + + // Initialize the qTip and re-grab newly sanitized options + api = init($(this), id, opts); + if(api === FALSE) { return TRUE; } + else { QTIP.api[id] = api; } + + // Initialize plugins + $.each(PLUGINS, function() { + if(this.initialize === 'initialize') { this(api); } + }); + + // Assign initial pre-render events + api._assignInitialEvents(event); + }); + } + }; + + // Expose class + $.qtip = QTip; + + // Populated in render method + QTIP.api = {}; + ;$.each({ + /* Allow other plugins to successfully retrieve the title of an element with a qTip applied */ + attr: function(attr, val) { + if(this.length) { + var self = this[0], + title = 'title', + api = $.data(self, 'qtip'); + + if(attr === title && api && 'object' === typeof api && api.options.suppress) { + if(arguments.length < 2) { + return $.attr(self, oldtitle); + } + + // If qTip is rendered and title was originally used as content, update it + if(api && api.options.content.attr === title && api.cache.attr) { + api.set('content.text', val); + } + + // Use the regular attr method to set, then cache the result + return this.attr(oldtitle, val); + } + } + + return $.fn['attr'+replaceSuffix].apply(this, arguments); + }, + + /* Allow clone to correctly retrieve cached title attributes */ + clone: function(keepData) { + var titles = $([]), title = 'title', + + // Clone our element using the real clone method + elems = $.fn['clone'+replaceSuffix].apply(this, arguments); + + // Grab all elements with an oldtitle set, and change it to regular title attribute, if keepData is false + if(!keepData) { + elems.filter('['+oldtitle+']').attr('title', function() { + return $.attr(this, oldtitle); + }) + .removeAttr(oldtitle); + } + + return elems; + } + }, function(name, func) { + if(!func || $.fn[name+replaceSuffix]) { return TRUE; } + + var old = $.fn[name+replaceSuffix] = $.fn[name]; + $.fn[name] = function() { + return func.apply(this, arguments) || old.apply(this, arguments); + }; + }); + + /* Fire off 'removeqtip' handler in $.cleanData if jQuery UI not present (it already does similar). + * This snippet is taken directly from jQuery UI source code found here: + * http://code.jquery.com/ui/jquery-ui-git.js + */ + if(!$.ui) { + $['cleanData'+replaceSuffix] = $.cleanData; + $.cleanData = function( elems ) { + for(var i = 0, elem; (elem = $( elems[i] )).length; i++) { + if(elem.attr(ATTR_HAS)) { + try { elem.triggerHandler('removeqtip'); } + catch( e ) {} + } + } + $['cleanData'+replaceSuffix].apply(this, arguments); + }; + } + ;// qTip version + QTIP.version = '2.2.1'; + + // Base ID for all qTips + QTIP.nextid = 0; + + // Inactive events array + QTIP.inactiveEvents = INACTIVE_EVENTS; + + // Base z-index for all qTips + QTIP.zindex = 15000; + + // Define configuration defaults + QTIP.defaults = { + prerender: FALSE, + id: FALSE, + overwrite: TRUE, + suppress: TRUE, + content: { + text: TRUE, + attr: 'title', + title: FALSE, + button: FALSE + }, + position: { + my: 'top left', + at: 'bottom right', + target: FALSE, + container: FALSE, + viewport: FALSE, + adjust: { + x: 0, y: 0, + mouse: TRUE, + scroll: TRUE, + resize: TRUE, + method: 'flipinvert flipinvert' + }, + effect: function(api, pos, viewport) { + $(this).animate(pos, { + duration: 200, + queue: FALSE + }); + } + }, + show: { + target: FALSE, + event: 'mouseenter', + effect: TRUE, + delay: 90, + solo: FALSE, + ready: FALSE, + autofocus: FALSE + }, + hide: { + target: FALSE, + event: 'mouseleave', + effect: TRUE, + delay: 0, + fixed: FALSE, + inactive: FALSE, + leave: 'window', + distance: FALSE + }, + style: { + classes: '', + widget: FALSE, + width: FALSE, + height: FALSE, + def: TRUE + }, + events: { + render: NULL, + move: NULL, + show: NULL, + hide: NULL, + toggle: NULL, + visible: NULL, + hidden: NULL, + focus: NULL, + blur: NULL + } + }; + ;var TIP, + + // .bind()/.on() namespace + TIPNS = '.qtip-tip', + + // Common CSS strings + MARGIN = 'margin', + BORDER = 'border', + COLOR = 'color', + BG_COLOR = 'background-color', + TRANSPARENT = 'transparent', + IMPORTANT = ' !important', + + // Check if the browser supports elements + HASCANVAS = !!document.createElement('canvas').getContext, + + // Invalid colour values used in parseColours() + INVALID = /rgba?\(0, 0, 0(, 0)?\)|transparent|#123456/i; + + // Camel-case method, taken from jQuery source + // http://code.jquery.com/jquery-1.8.0.js + function camel(s) { return s.charAt(0).toUpperCase() + s.slice(1); } + + /* + * Modified from Modernizr's testPropsAll() + * http://modernizr.com/downloads/modernizr-latest.js + */ + var cssProps = {}, cssPrefixes = ["Webkit", "O", "Moz", "ms"]; + function vendorCss(elem, prop) { + var ucProp = prop.charAt(0).toUpperCase() + prop.slice(1), + props = (prop + ' ' + cssPrefixes.join(ucProp + ' ') + ucProp).split(' '), + cur, val, i = 0; + + // If the property has already been mapped... + if(cssProps[prop]) { return elem.css(cssProps[prop]); } + + while((cur = props[i++])) { + if((val = elem.css(cur)) !== undefined) { + return cssProps[prop] = cur, val; + } + } + } + + // Parse a given elements CSS property into an int + function intCss(elem, prop) { + return Math.ceil(parseFloat(vendorCss(elem, prop))); + } + + + // VML creation (for IE only) + if(!HASCANVAS) { + var createVML = function(tag, props, style) { + return ''; + }; + } + + // Canvas only definitions + else { + var PIXEL_RATIO = window.devicePixelRatio || 1, + BACKING_STORE_RATIO = (function() { + var context = document.createElement('canvas').getContext('2d'); + return context.backingStorePixelRatio || context.webkitBackingStorePixelRatio || context.mozBackingStorePixelRatio || + context.msBackingStorePixelRatio || context.oBackingStorePixelRatio || 1; + }()), + SCALE = PIXEL_RATIO / BACKING_STORE_RATIO; + } + + + function Tip(qtip, options) { + this._ns = 'tip'; + this.options = options; + this.offset = options.offset; + this.size = [ options.width, options.height ]; + + // Initialize + this.init( (this.qtip = qtip) ); + } + + $.extend(Tip.prototype, { + init: function(qtip) { + var context, tip; + + // Create tip element and prepend to the tooltip + tip = this.element = qtip.elements.tip = $('
    ', { 'class': NAMESPACE+'-tip' }).prependTo(qtip.tooltip); + + // Create tip drawing element(s) + if(HASCANVAS) { + // save() as soon as we create the canvas element so FF2 doesn't bork on our first restore()! + context = $('').appendTo(this.element)[0].getContext('2d'); + + // Setup constant parameters + context.lineJoin = 'miter'; + context.miterLimit = 100000; + context.save(); + } + else { + context = createVML('shape', 'coordorigin="0,0"', 'position:absolute;'); + this.element.html(context + context); + + // Prevent mousing down on the tip since it causes problems with .live() handling in IE due to VML + qtip._bind( $('*', tip).add(tip), ['click', 'mousedown'], function(event) { event.stopPropagation(); }, this._ns); + } + + // Bind update events + qtip._bind(qtip.tooltip, 'tooltipmove', this.reposition, this._ns, this); + + // Create it + this.create(); + }, + + _swapDimensions: function() { + this.size[0] = this.options.height; + this.size[1] = this.options.width; + }, + _resetDimensions: function() { + this.size[0] = this.options.width; + this.size[1] = this.options.height; + }, + + _useTitle: function(corner) { + var titlebar = this.qtip.elements.titlebar; + return titlebar && ( + corner.y === TOP || (corner.y === CENTER && this.element.position().top + (this.size[1] / 2) + this.options.offset < titlebar.outerHeight(TRUE)) + ); + }, + + _parseCorner: function(corner) { + var my = this.qtip.options.position.my; + + // Detect corner and mimic properties + if(corner === FALSE || my === FALSE) { + corner = FALSE; + } + else if(corner === TRUE) { + corner = new CORNER( my.string() ); + } + else if(!corner.string) { + corner = new CORNER(corner); + corner.fixed = TRUE; + } + + return corner; + }, + + _parseWidth: function(corner, side, use) { + var elements = this.qtip.elements, + prop = BORDER + camel(side) + 'Width'; + + return (use ? intCss(use, prop) : ( + intCss(elements.content, prop) || + intCss(this._useTitle(corner) && elements.titlebar || elements.content, prop) || + intCss(elements.tooltip, prop) + )) || 0; + }, + + _parseRadius: function(corner) { + var elements = this.qtip.elements, + prop = BORDER + camel(corner.y) + camel(corner.x) + 'Radius'; + + return BROWSER.ie < 9 ? 0 : + intCss(this._useTitle(corner) && elements.titlebar || elements.content, prop) || + intCss(elements.tooltip, prop) || 0; + }, + + _invalidColour: function(elem, prop, compare) { + var val = elem.css(prop); + return !val || (compare && val === elem.css(compare)) || INVALID.test(val) ? FALSE : val; + }, + + _parseColours: function(corner) { + var elements = this.qtip.elements, + tip = this.element.css('cssText', ''), + borderSide = BORDER + camel(corner[ corner.precedance ]) + camel(COLOR), + colorElem = this._useTitle(corner) && elements.titlebar || elements.content, + css = this._invalidColour, color = []; + + // Attempt to detect the background colour from various elements, left-to-right precedance + color[0] = css(tip, BG_COLOR) || css(colorElem, BG_COLOR) || css(elements.content, BG_COLOR) || + css(elements.tooltip, BG_COLOR) || tip.css(BG_COLOR); + + // Attempt to detect the correct border side colour from various elements, left-to-right precedance + color[1] = css(tip, borderSide, COLOR) || css(colorElem, borderSide, COLOR) || + css(elements.content, borderSide, COLOR) || css(elements.tooltip, borderSide, COLOR) || elements.tooltip.css(borderSide); + + // Reset background and border colours + $('*', tip).add(tip).css('cssText', BG_COLOR+':'+TRANSPARENT+IMPORTANT+';'+BORDER+':0'+IMPORTANT+';'); + + return color; + }, + + _calculateSize: function(corner) { + var y = corner.precedance === Y, + width = this.options['width'], + height = this.options['height'], + isCenter = corner.abbrev() === 'c', + base = (y ? width: height) * (isCenter ? 0.5 : 1), + pow = Math.pow, + round = Math.round, + bigHyp, ratio, result, + + smallHyp = Math.sqrt( pow(base, 2) + pow(height, 2) ), + hyp = [ (this.border / base) * smallHyp, (this.border / height) * smallHyp ]; + + hyp[2] = Math.sqrt( pow(hyp[0], 2) - pow(this.border, 2) ); + hyp[3] = Math.sqrt( pow(hyp[1], 2) - pow(this.border, 2) ); + + bigHyp = smallHyp + hyp[2] + hyp[3] + (isCenter ? 0 : hyp[0]); + ratio = bigHyp / smallHyp; + + result = [ round(ratio * width), round(ratio * height) ]; + return y ? result : result.reverse(); + }, + + // Tip coordinates calculator + _calculateTip: function(corner, size, scale) { + scale = scale || 1; + size = size || this.size; + + var width = size[0] * scale, + height = size[1] * scale, + width2 = Math.ceil(width / 2), height2 = Math.ceil(height / 2), + + // Define tip coordinates in terms of height and width values + tips = { + br: [0,0, width,height, width,0], + bl: [0,0, width,0, 0,height], + tr: [0,height, width,0, width,height], + tl: [0,0, 0,height, width,height], + tc: [0,height, width2,0, width,height], + bc: [0,0, width,0, width2,height], + rc: [0,0, width,height2, 0,height], + lc: [width,0, width,height, 0,height2] + }; + + // Set common side shapes + tips.lt = tips.br; tips.rt = tips.bl; + tips.lb = tips.tr; tips.rb = tips.tl; + + return tips[ corner.abbrev() ]; + }, + + // Tip coordinates drawer (canvas) + _drawCoords: function(context, coords) { + context.beginPath(); + context.moveTo(coords[0], coords[1]); + context.lineTo(coords[2], coords[3]); + context.lineTo(coords[4], coords[5]); + context.closePath(); + }, + + create: function() { + // Determine tip corner + var c = this.corner = (HASCANVAS || BROWSER.ie) && this._parseCorner(this.options.corner); + + // If we have a tip corner... + if( (this.enabled = !!this.corner && this.corner.abbrev() !== 'c') ) { + // Cache it + this.qtip.cache.corner = c.clone(); + + // Create it + this.update(); + } + + // Toggle tip element + this.element.toggle(this.enabled); + + return this.corner; + }, + + update: function(corner, position) { + if(!this.enabled) { return this; } + + var elements = this.qtip.elements, + tip = this.element, + inner = tip.children(), + options = this.options, + curSize = this.size, + mimic = options.mimic, + round = Math.round, + color, precedance, context, + coords, bigCoords, translate, newSize, border, BACKING_STORE_RATIO; + + // Re-determine tip if not already set + if(!corner) { corner = this.qtip.cache.corner || this.corner; } + + // Use corner property if we detect an invalid mimic value + if(mimic === FALSE) { mimic = corner; } + + // Otherwise inherit mimic properties from the corner object as necessary + else { + mimic = new CORNER(mimic); + mimic.precedance = corner.precedance; + + if(mimic.x === 'inherit') { mimic.x = corner.x; } + else if(mimic.y === 'inherit') { mimic.y = corner.y; } + else if(mimic.x === mimic.y) { + mimic[ corner.precedance ] = corner[ corner.precedance ]; + } + } + precedance = mimic.precedance; + + // Ensure the tip width.height are relative to the tip position + if(corner.precedance === X) { this._swapDimensions(); } + else { this._resetDimensions(); } + + // Update our colours + color = this.color = this._parseColours(corner); + + // Detect border width, taking into account colours + if(color[1] !== TRANSPARENT) { + // Grab border width + border = this.border = this._parseWidth(corner, corner[corner.precedance]); + + // If border width isn't zero, use border color as fill if it's not invalid (1.0 style tips) + if(options.border && border < 1 && !INVALID.test(color[1])) { color[0] = color[1]; } + + // Set border width (use detected border width if options.border is true) + this.border = border = options.border !== TRUE ? options.border : border; + } + + // Border colour was invalid, set border to zero + else { this.border = border = 0; } + + // Determine tip size + newSize = this.size = this._calculateSize(corner); + tip.css({ + width: newSize[0], + height: newSize[1], + lineHeight: newSize[1]+'px' + }); + + // Calculate tip translation + if(corner.precedance === Y) { + translate = [ + round(mimic.x === LEFT ? border : mimic.x === RIGHT ? newSize[0] - curSize[0] - border : (newSize[0] - curSize[0]) / 2), + round(mimic.y === TOP ? newSize[1] - curSize[1] : 0) + ]; + } + else { + translate = [ + round(mimic.x === LEFT ? newSize[0] - curSize[0] : 0), + round(mimic.y === TOP ? border : mimic.y === BOTTOM ? newSize[1] - curSize[1] - border : (newSize[1] - curSize[1]) / 2) + ]; + } + + // Canvas drawing implementation + if(HASCANVAS) { + // Grab canvas context and clear/save it + context = inner[0].getContext('2d'); + context.restore(); context.save(); + context.clearRect(0,0,6000,6000); + + // Calculate coordinates + coords = this._calculateTip(mimic, curSize, SCALE); + bigCoords = this._calculateTip(mimic, this.size, SCALE); + + // Set the canvas size using calculated size + inner.attr(WIDTH, newSize[0] * SCALE).attr(HEIGHT, newSize[1] * SCALE); + inner.css(WIDTH, newSize[0]).css(HEIGHT, newSize[1]); + + // Draw the outer-stroke tip + this._drawCoords(context, bigCoords); + context.fillStyle = color[1]; + context.fill(); + + // Draw the actual tip + context.translate(translate[0] * SCALE, translate[1] * SCALE); + this._drawCoords(context, coords); + context.fillStyle = color[0]; + context.fill(); + } + + // VML (IE Proprietary implementation) + else { + // Calculate coordinates + coords = this._calculateTip(mimic); + + // Setup coordinates string + coords = 'm' + coords[0] + ',' + coords[1] + ' l' + coords[2] + + ',' + coords[3] + ' ' + coords[4] + ',' + coords[5] + ' xe'; + + // Setup VML-specific offset for pixel-perfection + translate[2] = border && /^(r|b)/i.test(corner.string()) ? + BROWSER.ie === 8 ? 2 : 1 : 0; + + // Set initial CSS + inner.css({ + coordsize: (newSize[0]+border) + ' ' + (newSize[1]+border), + antialias: ''+(mimic.string().indexOf(CENTER) > -1), + left: translate[0] - (translate[2] * Number(precedance === X)), + top: translate[1] - (translate[2] * Number(precedance === Y)), + width: newSize[0] + border, + height: newSize[1] + border + }) + .each(function(i) { + var $this = $(this); + + // Set shape specific attributes + $this[ $this.prop ? 'prop' : 'attr' ]({ + coordsize: (newSize[0]+border) + ' ' + (newSize[1]+border), + path: coords, + fillcolor: color[0], + filled: !!i, + stroked: !i + }) + .toggle(!!(border || i)); + + // Check if border is enabled and add stroke element + !i && $this.html( createVML( + 'stroke', 'weight="'+(border*2)+'px" color="'+color[1]+'" miterlimit="1000" joinstyle="miter"' + ) ); + }); + } + + // Opera bug #357 - Incorrect tip position + // https://github.com/Craga89/qTip2/issues/367 + window.opera && setTimeout(function() { + elements.tip.css({ + display: 'inline-block', + visibility: 'visible' + }); + }, 1); + + // Position if needed + if(position !== FALSE) { this.calculate(corner, newSize); } + }, + + calculate: function(corner, size) { + if(!this.enabled) { return FALSE; } + + var self = this, + elements = this.qtip.elements, + tip = this.element, + userOffset = this.options.offset, + isWidget = elements.tooltip.hasClass('ui-widget'), + position = { }, + precedance, corners; + + // Inherit corner if not provided + corner = corner || this.corner; + precedance = corner.precedance; + + // Determine which tip dimension to use for adjustment + size = size || this._calculateSize(corner); + + // Setup corners and offset array + corners = [ corner.x, corner.y ]; + if(precedance === X) { corners.reverse(); } + + // Calculate tip position + $.each(corners, function(i, side) { + var b, bc, br; + + if(side === CENTER) { + b = precedance === Y ? LEFT : TOP; + position[ b ] = '50%'; + position[MARGIN+'-' + b] = -Math.round(size[ precedance === Y ? 0 : 1 ] / 2) + userOffset; + } + else { + b = self._parseWidth(corner, side, elements.tooltip); + bc = self._parseWidth(corner, side, elements.content); + br = self._parseRadius(corner); + + position[ side ] = Math.max(-self.border, i ? bc : (userOffset + (br > b ? br : -b))); + } + }); + + // Adjust for tip size + position[ corner[precedance] ] -= size[ precedance === X ? 0 : 1 ]; + + // Set and return new position + tip.css({ margin: '', top: '', bottom: '', left: '', right: '' }).css(position); + return position; + }, + + reposition: function(event, api, pos, viewport) { + if(!this.enabled) { return; } + + var cache = api.cache, + newCorner = this.corner.clone(), + adjust = pos.adjusted, + method = api.options.position.adjust.method.split(' '), + horizontal = method[0], + vertical = method[1] || method[0], + shift = { left: FALSE, top: FALSE, x: 0, y: 0 }, + offset, css = {}, props; + + function shiftflip(direction, precedance, popposite, side, opposite) { + // Horizontal - Shift or flip method + if(direction === SHIFT && newCorner.precedance === precedance && adjust[side] && newCorner[popposite] !== CENTER) { + newCorner.precedance = newCorner.precedance === X ? Y : X; + } + else if(direction !== SHIFT && adjust[side]){ + newCorner[precedance] = newCorner[precedance] === CENTER ? + (adjust[side] > 0 ? side : opposite) : (newCorner[precedance] === side ? opposite : side); + } + } + + function shiftonly(xy, side, opposite) { + if(newCorner[xy] === CENTER) { + css[MARGIN+'-'+side] = shift[xy] = offset[MARGIN+'-'+side] - adjust[side]; + } + else { + props = offset[opposite] !== undefined ? + [ adjust[side], -offset[side] ] : [ -adjust[side], offset[side] ]; + + if( (shift[xy] = Math.max(props[0], props[1])) > props[0] ) { + pos[side] -= adjust[side]; + shift[side] = FALSE; + } + + css[ offset[opposite] !== undefined ? opposite : side ] = shift[xy]; + } + } + + // If our tip position isn't fixed e.g. doesn't adjust with viewport... + if(this.corner.fixed !== TRUE) { + // Perform shift/flip adjustments + shiftflip(horizontal, X, Y, LEFT, RIGHT); + shiftflip(vertical, Y, X, TOP, BOTTOM); + + // Update and redraw the tip if needed (check cached details of last drawn tip) + if(newCorner.string() !== cache.corner.string() || cache.cornerTop !== adjust.top || cache.cornerLeft !== adjust.left) { + this.update(newCorner, FALSE); + } + } + + // Setup tip offset properties + offset = this.calculate(newCorner); + + // Readjust offset object to make it left/top + if(offset.right !== undefined) { offset.left = -offset.right; } + if(offset.bottom !== undefined) { offset.top = -offset.bottom; } + offset.user = this.offset; + + // Perform shift adjustments + if(shift.left = (horizontal === SHIFT && !!adjust.left)) { shiftonly(X, LEFT, RIGHT); } + if(shift.top = (vertical === SHIFT && !!adjust.top)) { shiftonly(Y, TOP, BOTTOM); } + + /* + * If the tip is adjusted in both dimensions, or in a + * direction that would cause it to be anywhere but the + * outer border, hide it! + */ + this.element.css(css).toggle( + !((shift.x && shift.y) || (newCorner.x === CENTER && shift.y) || (newCorner.y === CENTER && shift.x)) + ); + + // Adjust position to accomodate tip dimensions + pos.left -= offset.left.charAt ? offset.user : + horizontal !== SHIFT || shift.top || !shift.left && !shift.top ? offset.left + this.border : 0; + pos.top -= offset.top.charAt ? offset.user : + vertical !== SHIFT || shift.left || !shift.left && !shift.top ? offset.top + this.border : 0; + + // Cache details + cache.cornerLeft = adjust.left; cache.cornerTop = adjust.top; + cache.corner = newCorner.clone(); + }, + + destroy: function() { + // Unbind events + this.qtip._unbind(this.qtip.tooltip, this._ns); + + // Remove the tip element(s) + if(this.qtip.elements.tip) { + this.qtip.elements.tip.find('*') + .remove().end().remove(); + } + } + }); + + TIP = PLUGINS.tip = function(api) { + return new Tip(api, api.options.style.tip); + }; + + // Initialize tip on render + TIP.initialize = 'render'; + + // Setup plugin sanitization options + TIP.sanitize = function(options) { + if(options.style && 'tip' in options.style) { + var opts = options.style.tip; + if(typeof opts !== 'object') { opts = options.style.tip = { corner: opts }; } + if(!(/string|boolean/i).test(typeof opts.corner)) { opts.corner = TRUE; } + } + }; + + // Add new option checks for the plugin + CHECKS.tip = { + '^position.my|style.tip.(corner|mimic|border)$': function() { + // Make sure a tip can be drawn + this.create(); + + // Reposition the tooltip + this.qtip.reposition(); + }, + '^style.tip.(height|width)$': function(obj) { + // Re-set dimensions and redraw the tip + this.size = [ obj.width, obj.height ]; + this.update(); + + // Reposition the tooltip + this.qtip.reposition(); + }, + '^content.title|style.(classes|widget)$': function() { + this.update(); + } + }; + + // Extend original qTip defaults + $.extend(TRUE, QTIP.defaults, { + style: { + tip: { + corner: TRUE, + mimic: FALSE, + width: 6, + height: 6, + border: TRUE, + offset: 0 + } + } + }); + ;var MODAL, OVERLAY, + MODALCLASS = 'qtip-modal', + MODALSELECTOR = '.'+MODALCLASS; + + OVERLAY = function() + { + var self = this, + focusableElems = {}, + current, onLast, + prevState, elem; + + // Modified code from jQuery UI 1.10.0 source + // http://code.jquery.com/ui/1.10.0/jquery-ui.js + function focusable(element) { + // Use the defined focusable checker when possible + if($.expr[':'].focusable) { return $.expr[':'].focusable; } + + var isTabIndexNotNaN = !isNaN($.attr(element, 'tabindex')), + nodeName = element.nodeName && element.nodeName.toLowerCase(), + map, mapName, img; + + if('area' === nodeName) { + map = element.parentNode; + mapName = map.name; + if(!element.href || !mapName || map.nodeName.toLowerCase() !== 'map') { + return false; + } + img = $('img[usemap=#' + mapName + ']')[0]; + return !!img && img.is(':visible'); + } + return (/input|select|textarea|button|object/.test( nodeName ) ? + !element.disabled : + 'a' === nodeName ? + element.href || isTabIndexNotNaN : + isTabIndexNotNaN + ); + } + + // Focus inputs using cached focusable elements (see update()) + function focusInputs(blurElems) { + // Blurring body element in IE causes window.open windows to unfocus! + if(focusableElems.length < 1 && blurElems.length) { blurElems.not('body').blur(); } + + // Focus the inputs + else { focusableElems.first().focus(); } + } + + // Steal focus from elements outside tooltip + function stealFocus(event) { + if(!elem.is(':visible')) { return; } + + var target = $(event.target), + tooltip = current.tooltip, + container = target.closest(SELECTOR), + targetOnTop; + + // Determine if input container target is above this + targetOnTop = container.length < 1 ? FALSE : + (parseInt(container[0].style.zIndex, 10) > parseInt(tooltip[0].style.zIndex, 10)); + + // If we're showing a modal, but focus has landed on an input below + // this modal, divert focus to the first visible input in this modal + // or if we can't find one... the tooltip itself + if(!targetOnTop && target.closest(SELECTOR)[0] !== tooltip[0]) { + focusInputs(target); + } + + // Detect when we leave the last focusable element... + onLast = event.target === focusableElems[focusableElems.length - 1]; + } + + $.extend(self, { + init: function() { + // Create document overlay + elem = self.elem = $('
    ', { + id: 'qtip-overlay', + html: '
    ', + mousedown: function() { return FALSE; } + }) + .hide(); + + // Make sure we can't focus anything outside the tooltip + $(document.body).bind('focusin'+MODALSELECTOR, stealFocus); + + // Apply keyboard "Escape key" close handler + $(document).bind('keydown'+MODALSELECTOR, function(event) { + if(current && current.options.show.modal.escape && event.keyCode === 27) { + current.hide(event); + } + }); + + // Apply click handler for blur option + elem.bind('click'+MODALSELECTOR, function(event) { + if(current && current.options.show.modal.blur) { + current.hide(event); + } + }); + + return self; + }, + + update: function(api) { + // Update current API reference + current = api; + + // Update focusable elements if enabled + if(api.options.show.modal.stealfocus !== FALSE) { + focusableElems = api.tooltip.find('*').filter(function() { + return focusable(this); + }); + } + else { focusableElems = []; } + }, + + toggle: function(api, state, duration) { + var docBody = $(document.body), + tooltip = api.tooltip, + options = api.options.show.modal, + effect = options.effect, + type = state ? 'show': 'hide', + visible = elem.is(':visible'), + visibleModals = $(MODALSELECTOR).filter(':visible:not(:animated)').not(tooltip), + zindex; + + // Set active tooltip API reference + self.update(api); + + // If the modal can steal the focus... + // Blur the current item and focus anything in the modal we an + if(state && options.stealfocus !== FALSE) { + focusInputs( $(':focus') ); + } + + // Toggle backdrop cursor style on show + elem.toggleClass('blurs', options.blur); + + // Append to body on show + if(state) { + elem.appendTo(document.body); + } + + // Prevent modal from conflicting with show.solo, and don't hide backdrop is other modals are visible + if((elem.is(':animated') && visible === state && prevState !== FALSE) || (!state && visibleModals.length)) { + return self; + } + + // Stop all animations + elem.stop(TRUE, FALSE); + + // Use custom function if provided + if($.isFunction(effect)) { + effect.call(elem, state); + } + + // If no effect type is supplied, use a simple toggle + else if(effect === FALSE) { + elem[ type ](); + } + + // Use basic fade function + else { + elem.fadeTo( parseInt(duration, 10) || 90, state ? 1 : 0, function() { + if(!state) { elem.hide(); } + }); + } + + // Reset position and detach from body on hide + if(!state) { + elem.queue(function(next) { + elem.css({ left: '', top: '' }); + if(!$(MODALSELECTOR).length) { elem.detach(); } + next(); + }); + } + + // Cache the state + prevState = state; + + // If the tooltip is destroyed, set reference to null + if(current.destroyed) { current = NULL; } + + return self; + } + }); + + self.init(); + }; + OVERLAY = new OVERLAY(); + + function Modal(api, options) { + this.options = options; + this._ns = '-modal'; + + this.init( (this.qtip = api) ); + } + + $.extend(Modal.prototype, { + init: function(qtip) { + var tooltip = qtip.tooltip; + + // If modal is disabled... return + if(!this.options.on) { return this; } + + // Set overlay reference + qtip.elements.overlay = OVERLAY.elem; + + // Add unique attribute so we can grab modal tooltips easily via a SELECTOR, and set z-index + tooltip.addClass(MODALCLASS).css('z-index', QTIP.modal_zindex + $(MODALSELECTOR).length); + + // Apply our show/hide/focus modal events + qtip._bind(tooltip, ['tooltipshow', 'tooltiphide'], function(event, api, duration) { + var oEvent = event.originalEvent; + + // Make sure mouseout doesn't trigger a hide when showing the modal and mousing onto backdrop + if(event.target === tooltip[0]) { + if(oEvent && event.type === 'tooltiphide' && /mouse(leave|enter)/.test(oEvent.type) && $(oEvent.relatedTarget).closest(OVERLAY.elem[0]).length) { + try { event.preventDefault(); } catch(e) {} + } + else if(!oEvent || (oEvent && oEvent.type !== 'tooltipsolo')) { + this.toggle(event, event.type === 'tooltipshow', duration); + } + } + }, this._ns, this); + + // Adjust modal z-index on tooltip focus + qtip._bind(tooltip, 'tooltipfocus', function(event, api) { + // If focus was cancelled before it reached us, don't do anything + if(event.isDefaultPrevented() || event.target !== tooltip[0]) { return; } + + var qtips = $(MODALSELECTOR), + + // Keep the modal's lower than other, regular qtips + newIndex = QTIP.modal_zindex + qtips.length, + curIndex = parseInt(tooltip[0].style.zIndex, 10); + + // Set overlay z-index + OVERLAY.elem[0].style.zIndex = newIndex - 1; + + // Reduce modal z-index's and keep them properly ordered + qtips.each(function() { + if(this.style.zIndex > curIndex) { + this.style.zIndex -= 1; + } + }); + + // Fire blur event for focused tooltip + qtips.filter('.' + CLASS_FOCUS).qtip('blur', event.originalEvent); + + // Set the new z-index + tooltip.addClass(CLASS_FOCUS)[0].style.zIndex = newIndex; + + // Set current + OVERLAY.update(api); + + // Prevent default handling + try { event.preventDefault(); } catch(e) {} + }, this._ns, this); + + // Focus any other visible modals when this one hides + qtip._bind(tooltip, 'tooltiphide', function(event) { + if(event.target === tooltip[0]) { + $(MODALSELECTOR).filter(':visible').not(tooltip).last().qtip('focus', event); + } + }, this._ns, this); + }, + + toggle: function(event, state, duration) { + // Make sure default event hasn't been prevented + if(event && event.isDefaultPrevented()) { return this; } + + // Toggle it + OVERLAY.toggle(this.qtip, !!state, duration); + }, + + destroy: function() { + // Remove modal class + this.qtip.tooltip.removeClass(MODALCLASS); + + // Remove bound events + this.qtip._unbind(this.qtip.tooltip, this._ns); + + // Delete element reference + OVERLAY.toggle(this.qtip, FALSE); + delete this.qtip.elements.overlay; + } + }); + + + MODAL = PLUGINS.modal = function(api) { + return new Modal(api, api.options.show.modal); + }; + + // Setup sanitiztion rules + MODAL.sanitize = function(opts) { + if(opts.show) { + if(typeof opts.show.modal !== 'object') { opts.show.modal = { on: !!opts.show.modal }; } + else if(typeof opts.show.modal.on === 'undefined') { opts.show.modal.on = TRUE; } + } + }; + + // Base z-index for all modal tooltips (use qTip core z-index as a base) + QTIP.modal_zindex = QTIP.zindex - 200; + + // Plugin needs to be initialized on render + MODAL.initialize = 'render'; + + // Setup option set checks + CHECKS.modal = { + '^show.modal.(on|blur)$': function() { + // Initialise + this.destroy(); + this.init(); + + // Show the modal if not visible already and tooltip is visible + this.qtip.elems.overlay.toggle( + this.qtip.tooltip[0].offsetWidth > 0 + ); + } + }; + + // Extend original api defaults + $.extend(TRUE, QTIP.defaults, { + show: { + modal: { + on: FALSE, + effect: TRUE, + blur: TRUE, + stealfocus: TRUE, + escape: TRUE + } + } + }); + ;PLUGINS.viewport = function(api, position, posOptions, targetWidth, targetHeight, elemWidth, elemHeight) + { + var target = posOptions.target, + tooltip = api.elements.tooltip, + my = posOptions.my, + at = posOptions.at, + adjust = posOptions.adjust, + method = adjust.method.split(' '), + methodX = method[0], + methodY = method[1] || method[0], + viewport = posOptions.viewport, + container = posOptions.container, + cache = api.cache, + adjusted = { left: 0, top: 0 }, + fixed, newMy, containerOffset, containerStatic, + viewportWidth, viewportHeight, viewportScroll, viewportOffset; + + // If viewport is not a jQuery element, or it's the window/document, or no adjustment method is used... return + if(!viewport.jquery || target[0] === window || target[0] === document.body || adjust.method === 'none') { + return adjusted; + } + + // Cach container details + containerOffset = container.offset() || adjusted; + containerStatic = container.css('position') === 'static'; + + // Cache our viewport details + fixed = tooltip.css('position') === 'fixed'; + viewportWidth = viewport[0] === window ? viewport.width() : viewport.outerWidth(FALSE); + viewportHeight = viewport[0] === window ? viewport.height() : viewport.outerHeight(FALSE); + viewportScroll = { left: fixed ? 0 : viewport.scrollLeft(), top: fixed ? 0 : viewport.scrollTop() }; + viewportOffset = viewport.offset() || adjusted; + + // Generic calculation method + function calculate(side, otherSide, type, adjust, side1, side2, lengthName, targetLength, elemLength) { + var initialPos = position[side1], + mySide = my[side], + atSide = at[side], + isShift = type === SHIFT, + myLength = mySide === side1 ? elemLength : mySide === side2 ? -elemLength : -elemLength / 2, + atLength = atSide === side1 ? targetLength : atSide === side2 ? -targetLength : -targetLength / 2, + sideOffset = viewportScroll[side1] + viewportOffset[side1] - (containerStatic ? 0 : containerOffset[side1]), + overflow1 = sideOffset - initialPos, + overflow2 = initialPos + elemLength - (lengthName === WIDTH ? viewportWidth : viewportHeight) - sideOffset, + offset = myLength - (my.precedance === side || mySide === my[otherSide] ? atLength : 0) - (atSide === CENTER ? targetLength / 2 : 0); + + // shift + if(isShift) { + offset = (mySide === side1 ? 1 : -1) * myLength; + + // Adjust position but keep it within viewport dimensions + position[side1] += overflow1 > 0 ? overflow1 : overflow2 > 0 ? -overflow2 : 0; + position[side1] = Math.max( + -containerOffset[side1] + viewportOffset[side1], + initialPos - offset, + Math.min( + Math.max( + -containerOffset[side1] + viewportOffset[side1] + (lengthName === WIDTH ? viewportWidth : viewportHeight), + initialPos + offset + ), + position[side1], + + // Make sure we don't adjust complete off the element when using 'center' + mySide === 'center' ? initialPos - myLength : 1E9 + ) + ); + + } + + // flip/flipinvert + else { + // Update adjustment amount depending on if using flipinvert or flip + adjust *= (type === FLIPINVERT ? 2 : 0); + + // Check for overflow on the left/top + if(overflow1 > 0 && (mySide !== side1 || overflow2 > 0)) { + position[side1] -= offset + adjust; + newMy.invert(side, side1); + } + + // Check for overflow on the bottom/right + else if(overflow2 > 0 && (mySide !== side2 || overflow1 > 0) ) { + position[side1] -= (mySide === CENTER ? -offset : offset) + adjust; + newMy.invert(side, side2); + } + + // Make sure we haven't made things worse with the adjustment and reset if so + if(position[side1] < viewportScroll && -position[side1] > overflow2) { + position[side1] = initialPos; newMy = my.clone(); + } + } + + return position[side1] - initialPos; + } + + // Set newMy if using flip or flipinvert methods + if(methodX !== 'shift' || methodY !== 'shift') { newMy = my.clone(); } + + // Adjust position based onviewport and adjustment options + adjusted = { + left: methodX !== 'none' ? calculate( X, Y, methodX, adjust.x, LEFT, RIGHT, WIDTH, targetWidth, elemWidth ) : 0, + top: methodY !== 'none' ? calculate( Y, X, methodY, adjust.y, TOP, BOTTOM, HEIGHT, targetHeight, elemHeight ) : 0, + my: newMy + }; + + return adjusted; + }; + ;PLUGINS.polys = { + // POLY area coordinate calculator + // Special thanks to Ed Cradock for helping out with this. + // Uses a binary search algorithm to find suitable coordinates. + polygon: function(baseCoords, corner) { + var result = { + width: 0, height: 0, + position: { + top: 1e10, right: 0, + bottom: 0, left: 1e10 + }, + adjustable: FALSE + }, + i = 0, next, + coords = [], + compareX = 1, compareY = 1, + realX = 0, realY = 0, + newWidth, newHeight; + + // First pass, sanitize coords and determine outer edges + i = baseCoords.length; while(i--) { + next = [ parseInt(baseCoords[--i], 10), parseInt(baseCoords[i+1], 10) ]; + + if(next[0] > result.position.right){ result.position.right = next[0]; } + if(next[0] < result.position.left){ result.position.left = next[0]; } + if(next[1] > result.position.bottom){ result.position.bottom = next[1]; } + if(next[1] < result.position.top){ result.position.top = next[1]; } + + coords.push(next); + } + + // Calculate height and width from outer edges + newWidth = result.width = Math.abs(result.position.right - result.position.left); + newHeight = result.height = Math.abs(result.position.bottom - result.position.top); + + // If it's the center corner... + if(corner.abbrev() === 'c') { + result.position = { + left: result.position.left + (result.width / 2), + top: result.position.top + (result.height / 2) + }; + } + else { + // Second pass, use a binary search algorithm to locate most suitable coordinate + while(newWidth > 0 && newHeight > 0 && compareX > 0 && compareY > 0) + { + newWidth = Math.floor(newWidth / 2); + newHeight = Math.floor(newHeight / 2); + + if(corner.x === LEFT){ compareX = newWidth; } + else if(corner.x === RIGHT){ compareX = result.width - newWidth; } + else{ compareX += Math.floor(newWidth / 2); } + + if(corner.y === TOP){ compareY = newHeight; } + else if(corner.y === BOTTOM){ compareY = result.height - newHeight; } + else{ compareY += Math.floor(newHeight / 2); } + + i = coords.length; while(i--) + { + if(coords.length < 2){ break; } + + realX = coords[i][0] - result.position.left; + realY = coords[i][1] - result.position.top; + + if((corner.x === LEFT && realX >= compareX) || + (corner.x === RIGHT && realX <= compareX) || + (corner.x === CENTER && (realX < compareX || realX > (result.width - compareX))) || + (corner.y === TOP && realY >= compareY) || + (corner.y === BOTTOM && realY <= compareY) || + (corner.y === CENTER && (realY < compareY || realY > (result.height - compareY)))) { + coords.splice(i, 1); + } + } + } + result.position = { left: coords[0][0], top: coords[0][1] }; + } + + return result; + }, + + rect: function(ax, ay, bx, by) { + return { + width: Math.abs(bx - ax), + height: Math.abs(by - ay), + position: { + left: Math.min(ax, bx), + top: Math.min(ay, by) + } + }; + }, + + _angles: { + tc: 3 / 2, tr: 7 / 4, tl: 5 / 4, + bc: 1 / 2, br: 1 / 4, bl: 3 / 4, + rc: 2, lc: 1, c: 0 + }, + ellipse: function(cx, cy, rx, ry, corner) { + var c = PLUGINS.polys._angles[ corner.abbrev() ], + rxc = c === 0 ? 0 : rx * Math.cos( c * Math.PI ), + rys = ry * Math.sin( c * Math.PI ); + + return { + width: (rx * 2) - Math.abs(rxc), + height: (ry * 2) - Math.abs(rys), + position: { + left: cx + rxc, + top: cy + rys + }, + adjustable: FALSE + }; + }, + circle: function(cx, cy, r, corner) { + return PLUGINS.polys.ellipse(cx, cy, r, r, corner); + } + }; + ;PLUGINS.svg = function(api, svg, corner) + { + var doc = $(document), + elem = svg[0], + root = $(elem.ownerSVGElement), + ownerDocument = elem.ownerDocument, + strokeWidth2 = (parseInt(svg.css('stroke-width'), 10) || 0) / 2, + frameOffset, mtx, transformed, viewBox, + len, next, i, points, + result, position, dimensions; + + // Ascend the parentNode chain until we find an element with getBBox() + while(!elem.getBBox) { elem = elem.parentNode; } + if(!elem.getBBox || !elem.parentNode) { return FALSE; } + + // Determine which shape calculation to use + switch(elem.nodeName) { + case 'ellipse': + case 'circle': + result = PLUGINS.polys.ellipse( + elem.cx.baseVal.value, + elem.cy.baseVal.value, + (elem.rx || elem.r).baseVal.value + strokeWidth2, + (elem.ry || elem.r).baseVal.value + strokeWidth2, + corner + ); + break; + + case 'line': + case 'polygon': + case 'polyline': + // Determine points object (line has none, so mimic using array) + points = elem.points || [ + { x: elem.x1.baseVal.value, y: elem.y1.baseVal.value }, + { x: elem.x2.baseVal.value, y: elem.y2.baseVal.value } + ]; + + for(result = [], i = -1, len = points.numberOfItems || points.length; ++i < len;) { + next = points.getItem ? points.getItem(i) : points[i]; + result.push.apply(result, [next.x, next.y]); + } + + result = PLUGINS.polys.polygon(result, corner); + break; + + // Unknown shape or rectangle? Use bounding box + default: + result = elem.getBBox(); + result = { + width: result.width, + height: result.height, + position: { + left: result.x, + top: result.y + } + }; + break; + } + + // Shortcut assignments + position = result.position; + root = root[0]; + + // Convert position into a pixel value + if(root.createSVGPoint) { + mtx = elem.getScreenCTM(); + points = root.createSVGPoint(); + + points.x = position.left; + points.y = position.top; + transformed = points.matrixTransform( mtx ); + position.left = transformed.x; + position.top = transformed.y; + } + + // Check the element is not in a child document, and if so, adjust for frame elements offset + if(ownerDocument !== document && api.position.target !== 'mouse') { + frameOffset = $((ownerDocument.defaultView || ownerDocument.parentWindow).frameElement).offset(); + if(frameOffset) { + position.left += frameOffset.left; + position.top += frameOffset.top; + } + } + + // Adjust by scroll offset of owner document + ownerDocument = $(ownerDocument); + position.left += ownerDocument.scrollLeft(); + position.top += ownerDocument.scrollTop(); + + return result; + }; + ;PLUGINS.imagemap = function(api, area, corner, adjustMethod) + { + if(!area.jquery) { area = $(area); } + + var shape = (area.attr('shape') || 'rect').toLowerCase().replace('poly', 'polygon'), + image = $('img[usemap="#'+area.parent('map').attr('name')+'"]'), + coordsString = $.trim(area.attr('coords')), + coordsArray = coordsString.replace(/,$/, '').split(','), + imageOffset, coords, i, next, result, len; + + // If we can't find the image using the map... + if(!image.length) { return FALSE; } + + // Pass coordinates string if polygon + if(shape === 'polygon') { + result = PLUGINS.polys.polygon(coordsArray, corner); + } + + // Otherwise parse the coordinates and pass them as arguments + else if(PLUGINS.polys[shape]) { + for(i = -1, len = coordsArray.length, coords = []; ++i < len;) { + coords.push( parseInt(coordsArray[i], 10) ); + } + + result = PLUGINS.polys[shape].apply( + this, coords.concat(corner) + ); + } + + // If no shapre calculation method was found, return false + else { return FALSE; } + + // Make sure we account for padding and borders on the image + imageOffset = image.offset(); + imageOffset.left += Math.ceil((image.outerWidth(FALSE) - image.width()) / 2); + imageOffset.top += Math.ceil((image.outerHeight(FALSE) - image.height()) / 2); + + // Add image position to offset coordinates + result.position.left += imageOffset.left; + result.position.top += imageOffset.top; + + return result; + }; + ;var IE6, + + /* + * BGIFrame adaption (http://plugins.jquery.com/project/bgiframe) + * Special thanks to Brandon Aaron + */ + BGIFRAME = ''; + + function Ie6(api, qtip) { + this._ns = 'ie6'; + this.init( (this.qtip = api) ); + } + + $.extend(Ie6.prototype, { + _scroll : function() { + var overlay = this.qtip.elements.overlay; + overlay && (overlay[0].style.top = $(window).scrollTop() + 'px'); + }, + + init: function(qtip) { + var tooltip = qtip.tooltip, + scroll; + + // Create the BGIFrame element if needed + if($('select, object').length < 1) { + this.bgiframe = qtip.elements.bgiframe = $(BGIFRAME).appendTo(tooltip); + + // Update BGIFrame on tooltip move + qtip._bind(tooltip, 'tooltipmove', this.adjustBGIFrame, this._ns, this); + } + + // redraw() container for width/height calculations + this.redrawContainer = $('
    ', { id: NAMESPACE+'-rcontainer' }) + .appendTo(document.body); + + // Fixup modal plugin if present too + if( qtip.elements.overlay && qtip.elements.overlay.addClass('qtipmodal-ie6fix') ) { + qtip._bind(window, ['scroll', 'resize'], this._scroll, this._ns, this); + qtip._bind(tooltip, ['tooltipshow'], this._scroll, this._ns, this); + } + + // Set dimensions + this.redraw(); + }, + + adjustBGIFrame: function() { + var tooltip = this.qtip.tooltip, + dimensions = { + height: tooltip.outerHeight(FALSE), + width: tooltip.outerWidth(FALSE) + }, + plugin = this.qtip.plugins.tip, + tip = this.qtip.elements.tip, + tipAdjust, offset; + + // Adjust border offset + offset = parseInt(tooltip.css('borderLeftWidth'), 10) || 0; + offset = { left: -offset, top: -offset }; + + // Adjust for tips plugin + if(plugin && tip) { + tipAdjust = (plugin.corner.precedance === 'x') ? [WIDTH, LEFT] : [HEIGHT, TOP]; + offset[ tipAdjust[1] ] -= tip[ tipAdjust[0] ](); + } + + // Update bgiframe + this.bgiframe.css(offset).css(dimensions); + }, + + // Max/min width simulator function + redraw: function() { + if(this.qtip.rendered < 1 || this.drawing) { return this; } + + var tooltip = this.qtip.tooltip, + style = this.qtip.options.style, + container = this.qtip.options.position.container, + perc, width, max, min; + + // Set drawing flag + this.qtip.drawing = 1; + + // If tooltip has a set height/width, just set it... like a boss! + if(style.height) { tooltip.css(HEIGHT, style.height); } + if(style.width) { tooltip.css(WIDTH, style.width); } + + // Simulate max/min width if not set width present... + else { + // Reset width and add fluid class + tooltip.css(WIDTH, '').appendTo(this.redrawContainer); + + // Grab our tooltip width (add 1 if odd so we don't get wrapping problems.. huzzah!) + width = tooltip.width(); + if(width % 2 < 1) { width += 1; } + + // Grab our max/min properties + max = tooltip.css('maxWidth') || ''; + min = tooltip.css('minWidth') || ''; + + // Parse into proper pixel values + perc = (max + min).indexOf('%') > -1 ? container.width() / 100 : 0; + max = ((max.indexOf('%') > -1 ? perc : 1) * parseInt(max, 10)) || width; + min = ((min.indexOf('%') > -1 ? perc : 1) * parseInt(min, 10)) || 0; + + // Determine new dimension size based on max/min/current values + width = max + min ? Math.min(Math.max(width, min), max) : width; + + // Set the newly calculated width and remvoe fluid class + tooltip.css(WIDTH, Math.round(width)).appendTo(container); + } + + // Set drawing flag + this.drawing = 0; + + return this; + }, + + destroy: function() { + // Remove iframe + this.bgiframe && this.bgiframe.remove(); + + // Remove bound events + this.qtip._unbind([window, this.qtip.tooltip], this._ns); + } + }); + + IE6 = PLUGINS.ie6 = function(api) { + // Proceed only if the browser is IE6 + return BROWSER.ie === 6 ? new Ie6(api) : FALSE; + }; + + IE6.initialize = 'render'; + + CHECKS.ie6 = { + '^content|style$': function() { + this.redraw(); + } + }; + ;})); +}( window, document )); \ No newline at end of file diff --git a/redux/ReduxCore/assets/js/vendor/qtip/jquery.qtip.min.js b/redux/ReduxCore/assets/js/vendor/qtip/jquery.qtip.min.js new file mode 100644 index 0000000..99cf2ea --- /dev/null +++ b/redux/ReduxCore/assets/js/vendor/qtip/jquery.qtip.min.js @@ -0,0 +1,5 @@ +/* qTip2 v2.2.1 | Plugins: tips modal viewport svg imagemap ie6 | Styles: core basic css3 | qtip2.com | Licensed MIT | Sat Sep 06 2014 23:12:07 */ + +!function(a,b,c){!function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):jQuery&&!jQuery.fn.qtip&&a(jQuery)}(function(d){"use strict";function e(a,b,c,e){this.id=c,this.target=a,this.tooltip=F,this.elements={target:a},this._id=S+"-"+c,this.timers={img:{}},this.options=b,this.plugins={},this.cache={event:{},target:d(),disabled:E,attr:e,onTooltip:E,lastClass:""},this.rendered=this.destroyed=this.disabled=this.waiting=this.hiddenDuringWait=this.positioning=this.triggering=E}function f(a){return a===F||"object"!==d.type(a)}function g(a){return!(d.isFunction(a)||a&&a.attr||a.length||"object"===d.type(a)&&(a.jquery||a.then))}function h(a){var b,c,e,h;return f(a)?E:(f(a.metadata)&&(a.metadata={type:a.metadata}),"content"in a&&(b=a.content,f(b)||b.jquery||b.done?b=a.content={text:c=g(b)?E:b}:c=b.text,"ajax"in b&&(e=b.ajax,h=e&&e.once!==E,delete b.ajax,b.text=function(a,b){var f=c||d(this).attr(b.options.content.attr)||"Loading...",g=d.ajax(d.extend({},e,{context:b})).then(e.success,F,e.error).then(function(a){return a&&h&&b.set("content.text",a),a},function(a,c,d){b.destroyed||0===a.status||b.set("content.text",c+": "+d)});return h?f:(b.set("content.text",f),g)}),"title"in b&&(d.isPlainObject(b.title)&&(b.button=b.title.button,b.title=b.title.text),g(b.title||E)&&(b.title=E))),"position"in a&&f(a.position)&&(a.position={my:a.position,at:a.position}),"show"in a&&f(a.show)&&(a.show=a.show.jquery?{target:a.show}:a.show===D?{ready:D}:{event:a.show}),"hide"in a&&f(a.hide)&&(a.hide=a.hide.jquery?{target:a.hide}:{event:a.hide}),"style"in a&&f(a.style)&&(a.style={classes:a.style}),d.each(R,function(){this.sanitize&&this.sanitize(a)}),a)}function i(a,b){for(var c,d=0,e=a,f=b.split(".");e=e[f[d++]];)d0?setTimeout(d.proxy(a,this),b):void a.call(this)}function m(a){this.tooltip.hasClass(ab)||(clearTimeout(this.timers.show),clearTimeout(this.timers.hide),this.timers.show=l.call(this,function(){this.toggle(D,a)},this.options.show.delay))}function n(a){if(!this.tooltip.hasClass(ab)&&!this.destroyed){var b=d(a.relatedTarget),c=b.closest(W)[0]===this.tooltip[0],e=b[0]===this.options.show.target[0];if(clearTimeout(this.timers.show),clearTimeout(this.timers.hide),this!==b[0]&&"mouse"===this.options.position.target&&c||this.options.hide.fixed&&/mouse(out|leave|move)/.test(a.type)&&(c||e))try{a.preventDefault(),a.stopImmediatePropagation()}catch(f){}else this.timers.hide=l.call(this,function(){this.toggle(E,a)},this.options.hide.delay,this)}}function o(a){!this.tooltip.hasClass(ab)&&this.options.hide.inactive&&(clearTimeout(this.timers.inactive),this.timers.inactive=l.call(this,function(){this.hide(a)},this.options.hide.inactive))}function p(a){this.rendered&&this.tooltip[0].offsetWidth>0&&this.reposition(a)}function q(a,c,e){d(b.body).delegate(a,(c.split?c:c.join("."+S+" "))+"."+S,function(){var a=y.api[d.attr(this,U)];a&&!a.disabled&&e.apply(a,arguments)})}function r(a,c,f){var g,i,j,k,l,m=d(b.body),n=a[0]===b?m:a,o=a.metadata?a.metadata(f.metadata):F,p="html5"===f.metadata.type&&o?o[f.metadata.name]:F,q=a.data(f.metadata.name||"qtipopts");try{q="string"==typeof q?d.parseJSON(q):q}catch(r){}if(k=d.extend(D,{},y.defaults,f,"object"==typeof q?h(q):F,h(p||o)),i=k.position,k.id=c,"boolean"==typeof k.content.text){if(j=a.attr(k.content.attr),k.content.attr===E||!j)return E;k.content.text=j}if(i.container.length||(i.container=m),i.target===E&&(i.target=n),k.show.target===E&&(k.show.target=n),k.show.solo===D&&(k.show.solo=i.container.closest("body")),k.hide.target===E&&(k.hide.target=n),k.position.viewport===D&&(k.position.viewport=i.container),i.container=i.container.eq(0),i.at=new A(i.at,D),i.my=new A(i.my),a.data(S))if(k.overwrite)a.qtip("destroy",!0);else if(k.overwrite===E)return E;return a.attr(T,c),k.suppress&&(l=a.attr("title"))&&a.removeAttr("title").attr(cb,l).attr("title",""),g=new e(a,k,c,!!j),a.data(S,g),g}function s(a){return a.charAt(0).toUpperCase()+a.slice(1)}function t(a,b){var d,e,f=b.charAt(0).toUpperCase()+b.slice(1),g=(b+" "+rb.join(f+" ")+f).split(" "),h=0;if(qb[b])return a.css(qb[b]);for(;d=g[h++];)if((e=a.css(d))!==c)return qb[b]=d,e}function u(a,b){return Math.ceil(parseFloat(t(a,b)))}function v(a,b){this._ns="tip",this.options=b,this.offset=b.offset,this.size=[b.width,b.height],this.init(this.qtip=a)}function w(a,b){this.options=b,this._ns="-modal",this.init(this.qtip=a)}function x(a){this._ns="ie6",this.init(this.qtip=a)}var y,z,A,B,C,D=!0,E=!1,F=null,G="x",H="y",I="width",J="height",K="top",L="left",M="bottom",N="right",O="center",P="flipinvert",Q="shift",R={},S="qtip",T="data-hasqtip",U="data-qtip-id",V=["ui-widget","ui-tooltip"],W="."+S,X="click dblclick mousedown mouseup mousemove mouseleave mouseenter".split(" "),Y=S+"-fixed",Z=S+"-default",$=S+"-focus",_=S+"-hover",ab=S+"-disabled",bb="_replacedByqTip",cb="oldtitle",db={ie:function(){for(var a=4,c=b.createElement("div");(c.innerHTML="")&&c.getElementsByTagName("i")[0];a+=1);return a>4?a:0/0}(),iOS:parseFloat((""+(/CPU.*OS ([0-9_]{1,5})|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent)||[0,""])[1]).replace("undefined","3_2").replace("_",".").replace("_",""))||E};z=e.prototype,z._when=function(a){return d.when.apply(d,a)},z.render=function(a){if(this.rendered||this.destroyed)return this;var b,c=this,e=this.options,f=this.cache,g=this.elements,h=e.content.text,i=e.content.title,j=e.content.button,k=e.position,l=("."+this._id+" ",[]);return d.attr(this.target[0],"aria-describedby",this._id),f.posClass=this._createPosClass((this.position={my:k.my,at:k.at}).my),this.tooltip=g.tooltip=b=d("
    ",{id:this._id,"class":[S,Z,e.style.classes,f.posClass].join(" "),width:e.style.width||"",height:e.style.height||"",tracking:"mouse"===k.target&&k.adjust.mouse,role:"alert","aria-live":"polite","aria-atomic":E,"aria-describedby":this._id+"-content","aria-hidden":D}).toggleClass(ab,this.disabled).attr(U,this.id).data(S,this).appendTo(k.container).append(g.content=d("
    ",{"class":S+"-content",id:this._id+"-content","aria-atomic":D})),this.rendered=-1,this.positioning=D,i&&(this._createTitle(),d.isFunction(i)||l.push(this._updateTitle(i,E))),j&&this._createButton(),d.isFunction(h)||l.push(this._updateContent(h,E)),this.rendered=D,this._setWidget(),d.each(R,function(a){var b;"render"===this.initialize&&(b=this(c))&&(c.plugins[a]=b)}),this._unassignEvents(),this._assignEvents(),this._when(l).then(function(){c._trigger("render"),c.positioning=E,c.hiddenDuringWait||!e.show.ready&&!a||c.toggle(D,f.event,E),c.hiddenDuringWait=E}),y.api[this.id]=this,this},z.destroy=function(a){function b(){if(!this.destroyed){this.destroyed=D;var a,b=this.target,c=b.attr(cb);this.rendered&&this.tooltip.stop(1,0).find("*").remove().end().remove(),d.each(this.plugins,function(){this.destroy&&this.destroy()});for(a in this.timers)clearTimeout(this.timers[a]);b.removeData(S).removeAttr(U).removeAttr(T).removeAttr("aria-describedby"),this.options.suppress&&c&&b.attr("title",c).removeAttr(cb),this._unassignEvents(),this.options=this.elements=this.cache=this.timers=this.plugins=this.mouse=F,delete y.api[this.id]}}return this.destroyed?this.target:(a===D&&"hide"!==this.triggering||!this.rendered?b.call(this):(this.tooltip.one("tooltiphidden",d.proxy(b,this)),!this.triggering&&this.hide()),this.target)},B=z.checks={builtin:{"^id$":function(a,b,c,e){var f=c===D?y.nextid:c,g=S+"-"+f;f!==E&&f.length>0&&!d("#"+g).length?(this._id=g,this.rendered&&(this.tooltip[0].id=this._id,this.elements.content[0].id=this._id+"-content",this.elements.title[0].id=this._id+"-title")):a[b]=e},"^prerender":function(a,b,c){c&&!this.rendered&&this.render(this.options.show.ready)},"^content.text$":function(a,b,c){this._updateContent(c)},"^content.attr$":function(a,b,c,d){this.options.content.text===this.target.attr(d)&&this._updateContent(this.target.attr(c))},"^content.title$":function(a,b,c){return c?(c&&!this.elements.title&&this._createTitle(),void this._updateTitle(c)):this._removeTitle()},"^content.button$":function(a,b,c){this._updateButton(c)},"^content.title.(text|button)$":function(a,b,c){this.set("content."+b,c)},"^position.(my|at)$":function(a,b,c){"string"==typeof c&&(this.position[b]=a[b]=new A(c,"at"===b))},"^position.container$":function(a,b,c){this.rendered&&this.tooltip.appendTo(c)},"^show.ready$":function(a,b,c){c&&(!this.rendered&&this.render(D)||this.toggle(D))},"^style.classes$":function(a,b,c,d){this.rendered&&this.tooltip.removeClass(d).addClass(c)},"^style.(width|height)":function(a,b,c){this.rendered&&this.tooltip.css(b,c)},"^style.widget|content.title":function(){this.rendered&&this._setWidget()},"^style.def":function(a,b,c){this.rendered&&this.tooltip.toggleClass(Z,!!c)},"^events.(render|show|move|hide|focus|blur)$":function(a,b,c){this.rendered&&this.tooltip[(d.isFunction(c)?"":"un")+"bind"]("tooltip"+b,c)},"^(show|hide|position).(event|target|fixed|inactive|leave|distance|viewport|adjust)":function(){if(this.rendered){var a=this.options.position;this.tooltip.attr("tracking","mouse"===a.target&&a.adjust.mouse),this._unassignEvents(),this._assignEvents()}}}},z.get=function(a){if(this.destroyed)return this;var b=i(this.options,a.toLowerCase()),c=b[0][b[1]];return c.precedance?c.string():c};var eb=/^position\.(my|at|adjust|target|container|viewport)|style|content|show\.ready/i,fb=/^prerender|show\.ready/i;z.set=function(a,b){if(this.destroyed)return this;{var c,e=this.rendered,f=E,g=this.options;this.checks}return"string"==typeof a?(c=a,a={},a[c]=b):a=d.extend({},a),d.each(a,function(b,c){if(e&&fb.test(b))return void delete a[b];var h,j=i(g,b.toLowerCase());h=j[0][j[1]],j[0][j[1]]=c&&c.nodeType?d(c):c,f=eb.test(b)||f,a[b]=[j[0],j[1],c,h]}),h(g),this.positioning=D,d.each(a,d.proxy(j,this)),this.positioning=E,this.rendered&&this.tooltip[0].offsetWidth>0&&f&&this.reposition("mouse"===g.position.target?F:this.cache.event),this},z._update=function(a,b){var c=this,e=this.cache;return this.rendered&&a?(d.isFunction(a)&&(a=a.call(this.elements.target,e.event,this)||""),d.isFunction(a.then)?(e.waiting=D,a.then(function(a){return e.waiting=E,c._update(a,b)},F,function(a){return c._update(a,b)})):a===E||!a&&""!==a?E:(a.jquery&&a.length>0?b.empty().append(a.css({display:"block",visibility:"visible"})):b.html(a),this._waitForContent(b).then(function(a){c.rendered&&c.tooltip[0].offsetWidth>0&&c.reposition(e.event,!a.length)}))):E},z._waitForContent=function(a){var b=this.cache;return b.waiting=D,(d.fn.imagesLoaded?a.imagesLoaded():d.Deferred().resolve([])).done(function(){b.waiting=E}).promise()},z._updateContent=function(a,b){this._update(a,this.elements.content,b)},z._updateTitle=function(a,b){this._update(a,this.elements.title,b)===E&&this._removeTitle(E)},z._createTitle=function(){var a=this.elements,b=this._id+"-title";a.titlebar&&this._removeTitle(),a.titlebar=d("
    ",{"class":S+"-titlebar "+(this.options.style.widget?k("header"):"")}).append(a.title=d("
    ",{id:b,"class":S+"-title","aria-atomic":D})).insertBefore(a.content).delegate(".qtip-close","mousedown keydown mouseup keyup mouseout",function(a){d(this).toggleClass("ui-state-active ui-state-focus","down"===a.type.substr(-4))}).delegate(".qtip-close","mouseover mouseout",function(a){d(this).toggleClass("ui-state-hover","mouseover"===a.type)}),this.options.content.button&&this._createButton()},z._removeTitle=function(a){var b=this.elements;b.title&&(b.titlebar.remove(),b.titlebar=b.title=b.button=F,a!==E&&this.reposition())},z._createPosClass=function(a){return S+"-pos-"+(a||this.options.position.my).abbrev()},z.reposition=function(c,e){if(!this.rendered||this.positioning||this.destroyed)return this;this.positioning=D;var f,g,h,i,j=this.cache,k=this.tooltip,l=this.options.position,m=l.target,n=l.my,o=l.at,p=l.viewport,q=l.container,r=l.adjust,s=r.method.split(" "),t=k.outerWidth(E),u=k.outerHeight(E),v=0,w=0,x=k.css("position"),y={left:0,top:0},z=k[0].offsetWidth>0,A=c&&"scroll"===c.type,B=d(a),C=q[0].ownerDocument,F=this.mouse;if(d.isArray(m)&&2===m.length)o={x:L,y:K},y={left:m[0],top:m[1]};else if("mouse"===m)o={x:L,y:K},(!r.mouse||this.options.hide.distance)&&j.origin&&j.origin.pageX?c=j.origin:!c||c&&("resize"===c.type||"scroll"===c.type)?c=j.event:F&&F.pageX&&(c=F),"static"!==x&&(y=q.offset()),C.body.offsetWidth!==(a.innerWidth||C.documentElement.clientWidth)&&(g=d(b.body).offset()),y={left:c.pageX-y.left+(g&&g.left||0),top:c.pageY-y.top+(g&&g.top||0)},r.mouse&&A&&F&&(y.left-=(F.scrollX||0)-B.scrollLeft(),y.top-=(F.scrollY||0)-B.scrollTop());else{if("event"===m?c&&c.target&&"scroll"!==c.type&&"resize"!==c.type?j.target=d(c.target):c.target||(j.target=this.elements.target):"event"!==m&&(j.target=d(m.jquery?m:this.elements.target)),m=j.target,m=d(m).eq(0),0===m.length)return this;m[0]===b||m[0]===a?(v=db.iOS?a.innerWidth:m.width(),w=db.iOS?a.innerHeight:m.height(),m[0]===a&&(y={top:(p||m).scrollTop(),left:(p||m).scrollLeft()})):R.imagemap&&m.is("area")?f=R.imagemap(this,m,o,R.viewport?s:E):R.svg&&m&&m[0].ownerSVGElement?f=R.svg(this,m,o,R.viewport?s:E):(v=m.outerWidth(E),w=m.outerHeight(E),y=m.offset()),f&&(v=f.width,w=f.height,g=f.offset,y=f.position),y=this.reposition.offset(m,y,q),(db.iOS>3.1&&db.iOS<4.1||db.iOS>=4.3&&db.iOS<4.33||!db.iOS&&"fixed"===x)&&(y.left-=B.scrollLeft(),y.top-=B.scrollTop()),(!f||f&&f.adjustable!==E)&&(y.left+=o.x===N?v:o.x===O?v/2:0,y.top+=o.y===M?w:o.y===O?w/2:0)}return y.left+=r.x+(n.x===N?-t:n.x===O?-t/2:0),y.top+=r.y+(n.y===M?-u:n.y===O?-u/2:0),R.viewport?(h=y.adjusted=R.viewport(this,y,l,v,w,t,u),g&&h.left&&(y.left+=g.left),g&&h.top&&(y.top+=g.top),h.my&&(this.position.my=h.my)):y.adjusted={left:0,top:0},j.posClass!==(i=this._createPosClass(this.position.my))&&k.removeClass(j.posClass).addClass(j.posClass=i),this._trigger("move",[y,p.elem||p],c)?(delete y.adjusted,e===E||!z||isNaN(y.left)||isNaN(y.top)||"mouse"===m||!d.isFunction(l.effect)?k.css(y):d.isFunction(l.effect)&&(l.effect.call(k,this,d.extend({},y)),k.queue(function(a){d(this).css({opacity:"",height:""}),db.ie&&this.style.removeAttribute("filter"),a()})),this.positioning=E,this):this},z.reposition.offset=function(a,c,e){function f(a,b){c.left+=b*a.scrollLeft(),c.top+=b*a.scrollTop()}if(!e[0])return c;var g,h,i,j,k=d(a[0].ownerDocument),l=!!db.ie&&"CSS1Compat"!==b.compatMode,m=e[0];do"static"!==(h=d.css(m,"position"))&&("fixed"===h?(i=m.getBoundingClientRect(),f(k,-1)):(i=d(m).position(),i.left+=parseFloat(d.css(m,"borderLeftWidth"))||0,i.top+=parseFloat(d.css(m,"borderTopWidth"))||0),c.left-=i.left+(parseFloat(d.css(m,"marginLeft"))||0),c.top-=i.top+(parseFloat(d.css(m,"marginTop"))||0),g||"hidden"===(j=d.css(m,"overflow"))||"visible"===j||(g=d(m)));while(m=m.offsetParent);return g&&(g[0]!==k[0]||l)&&f(g,1),c};var gb=(A=z.reposition.Corner=function(a,b){a=(""+a).replace(/([A-Z])/," $1").replace(/middle/gi,O).toLowerCase(),this.x=(a.match(/left|right/i)||a.match(/center/)||["inherit"])[0].toLowerCase(),this.y=(a.match(/top|bottom|center/i)||["inherit"])[0].toLowerCase(),this.forceY=!!b;var c=a.charAt(0);this.precedance="t"===c||"b"===c?H:G}).prototype;gb.invert=function(a,b){this[a]=this[a]===L?N:this[a]===N?L:b||this[a]},gb.string=function(a){var b=this.x,c=this.y,d=b!==c?"center"===b||"center"!==c&&(this.precedance===H||this.forceY)?[c,b]:[b,c]:[b];return a!==!1?d.join(" "):d},gb.abbrev=function(){var a=this.string(!1);return a[0].charAt(0)+(a[1]&&a[1].charAt(0)||"")},gb.clone=function(){return new A(this.string(),this.forceY)},z.toggle=function(a,c){var e=this.cache,f=this.options,g=this.tooltip;if(c){if(/over|enter/.test(c.type)&&e.event&&/out|leave/.test(e.event.type)&&f.show.target.add(c.target).length===f.show.target.length&&g.has(c.relatedTarget).length)return this;e.event=d.event.fix(c)}if(this.waiting&&!a&&(this.hiddenDuringWait=D),!this.rendered)return a?this.render(1):this;if(this.destroyed||this.disabled)return this;var h,i,j,k=a?"show":"hide",l=this.options[k],m=(this.options[a?"hide":"show"],this.options.position),n=this.options.content,o=this.tooltip.css("width"),p=this.tooltip.is(":visible"),q=a||1===l.target.length,r=!c||l.target.length<2||e.target[0]===c.target;return(typeof a).search("boolean|number")&&(a=!p),h=!g.is(":animated")&&p===a&&r,i=h?F:!!this._trigger(k,[90]),this.destroyed?this:(i!==E&&a&&this.focus(c),!i||h?this:(d.attr(g[0],"aria-hidden",!a),a?(this.mouse&&(e.origin=d.event.fix(this.mouse)),d.isFunction(n.text)&&this._updateContent(n.text,E),d.isFunction(n.title)&&this._updateTitle(n.title,E),!C&&"mouse"===m.target&&m.adjust.mouse&&(d(b).bind("mousemove."+S,this._storeMouse),C=D),o||g.css("width",g.outerWidth(E)),this.reposition(c,arguments[2]),o||g.css("width",""),l.solo&&("string"==typeof l.solo?d(l.solo):d(W,l.solo)).not(g).not(l.target).qtip("hide",d.Event("tooltipsolo"))):(clearTimeout(this.timers.show),delete e.origin,C&&!d(W+'[tracking="true"]:visible',l.solo).not(g).length&&(d(b).unbind("mousemove."+S),C=E),this.blur(c)),j=d.proxy(function(){a?(db.ie&&g[0].style.removeAttribute("filter"),g.css("overflow",""),"string"==typeof l.autofocus&&d(this.options.show.autofocus,g).focus(),this.options.show.target.trigger("qtip-"+this.id+"-inactive")):g.css({display:"",visibility:"",opacity:"",left:"",top:""}),this._trigger(a?"visible":"hidden")},this),l.effect===E||q===E?(g[k](),j()):d.isFunction(l.effect)?(g.stop(1,1),l.effect.call(g,this),g.queue("fx",function(a){j(),a()})):g.fadeTo(90,a?1:0,j),a&&l.target.trigger("qtip-"+this.id+"-inactive"),this))},z.show=function(a){return this.toggle(D,a)},z.hide=function(a){return this.toggle(E,a)},z.focus=function(a){if(!this.rendered||this.destroyed)return this;var b=d(W),c=this.tooltip,e=parseInt(c[0].style.zIndex,10),f=y.zindex+b.length;return c.hasClass($)||this._trigger("focus",[f],a)&&(e!==f&&(b.each(function(){this.style.zIndex>e&&(this.style.zIndex=this.style.zIndex-1)}),b.filter("."+$).qtip("blur",a)),c.addClass($)[0].style.zIndex=f),this},z.blur=function(a){return!this.rendered||this.destroyed?this:(this.tooltip.removeClass($),this._trigger("blur",[this.tooltip.css("zIndex")],a),this)},z.disable=function(a){return this.destroyed?this:("toggle"===a?a=!(this.rendered?this.tooltip.hasClass(ab):this.disabled):"boolean"!=typeof a&&(a=D),this.rendered&&this.tooltip.toggleClass(ab,a).attr("aria-disabled",a),this.disabled=!!a,this)},z.enable=function(){return this.disable(E)},z._createButton=function(){var a=this,b=this.elements,c=b.tooltip,e=this.options.content.button,f="string"==typeof e,g=f?e:"Close tooltip";b.button&&b.button.remove(),b.button=e.jquery?e:d("",{"class":"qtip-close "+(this.options.style.widget?"":S+"-icon"),title:g,"aria-label":g}).prepend(d("",{"class":"ui-icon ui-icon-close",html:"×"})),b.button.appendTo(b.titlebar||c).attr("role","button").click(function(b){return c.hasClass(ab)||a.hide(b),E})},z._updateButton=function(a){if(!this.rendered)return E;var b=this.elements.button;a?this._createButton():b.remove()},z._setWidget=function(){var a=this.options.style.widget,b=this.elements,c=b.tooltip,d=c.hasClass(ab);c.removeClass(ab),ab=a?"ui-state-disabled":"qtip-disabled",c.toggleClass(ab,d),c.toggleClass("ui-helper-reset "+k(),a).toggleClass(Z,this.options.style.def&&!a),b.content&&b.content.toggleClass(k("content"),a),b.titlebar&&b.titlebar.toggleClass(k("header"),a),b.button&&b.button.toggleClass(S+"-icon",!a)},z._storeMouse=function(a){return(this.mouse=d.event.fix(a)).type="mousemove",this},z._bind=function(a,b,c,e,f){if(a&&c&&b.length){var g="."+this._id+(e?"-"+e:"");return d(a).bind((b.split?b:b.join(g+" "))+g,d.proxy(c,f||this)),this}},z._unbind=function(a,b){return a&&d(a).unbind("."+this._id+(b?"-"+b:"")),this},z._trigger=function(a,b,c){var e=d.Event("tooltip"+a);return e.originalEvent=c&&d.extend({},c)||this.cache.event||F,this.triggering=a,this.tooltip.trigger(e,[this].concat(b||[])),this.triggering=E,!e.isDefaultPrevented()},z._bindEvents=function(a,b,c,e,f,g){var h=c.filter(e).add(e.filter(c)),i=[];h.length&&(d.each(b,function(b,c){var e=d.inArray(c,a);e>-1&&i.push(a.splice(e,1)[0])}),i.length&&(this._bind(h,i,function(a){var b=this.rendered?this.tooltip[0].offsetWidth>0:!1;(b?g:f).call(this,a)}),c=c.not(h),e=e.not(h))),this._bind(c,a,f),this._bind(e,b,g)},z._assignInitialEvents=function(a){function b(a){return this.disabled||this.destroyed?E:(this.cache.event=a&&d.event.fix(a),this.cache.target=a&&d(a.target),clearTimeout(this.timers.show),void(this.timers.show=l.call(this,function(){this.render("object"==typeof a||c.show.ready)},c.prerender?0:c.show.delay)))}var c=this.options,e=c.show.target,f=c.hide.target,g=c.show.event?d.trim(""+c.show.event).split(" "):[],h=c.hide.event?d.trim(""+c.hide.event).split(" "):[];this._bind(this.elements.target,["remove","removeqtip"],function(){this.destroy(!0)},"destroy"),/mouse(over|enter)/i.test(c.show.event)&&!/mouse(out|leave)/i.test(c.hide.event)&&h.push("mouseleave"),this._bind(e,"mousemove",function(a){this._storeMouse(a),this.cache.onTarget=D}),this._bindEvents(g,h,e,f,b,function(){return this.timers?void clearTimeout(this.timers.show):E}),(c.show.ready||c.prerender)&&b.call(this,a)},z._assignEvents=function(){var c=this,e=this.options,f=e.position,g=this.tooltip,h=e.show.target,i=e.hide.target,j=f.container,k=f.viewport,l=d(b),q=(d(b.body),d(a)),r=e.show.event?d.trim(""+e.show.event).split(" "):[],s=e.hide.event?d.trim(""+e.hide.event).split(" "):[];d.each(e.events,function(a,b){c._bind(g,"toggle"===a?["tooltipshow","tooltiphide"]:["tooltip"+a],b,null,g)}),/mouse(out|leave)/i.test(e.hide.event)&&"window"===e.hide.leave&&this._bind(l,["mouseout","blur"],function(a){/select|option/.test(a.target.nodeName)||a.relatedTarget||this.hide(a)}),e.hide.fixed?i=i.add(g.addClass(Y)):/mouse(over|enter)/i.test(e.show.event)&&this._bind(i,"mouseleave",function(){clearTimeout(this.timers.show)}),(""+e.hide.event).indexOf("unfocus")>-1&&this._bind(j.closest("html"),["mousedown","touchstart"],function(a){var b=d(a.target),c=this.rendered&&!this.tooltip.hasClass(ab)&&this.tooltip[0].offsetWidth>0,e=b.parents(W).filter(this.tooltip[0]).length>0;b[0]===this.target[0]||b[0]===this.tooltip[0]||e||this.target.has(b[0]).length||!c||this.hide(a)}),"number"==typeof e.hide.inactive&&(this._bind(h,"qtip-"+this.id+"-inactive",o,"inactive"),this._bind(i.add(g),y.inactiveEvents,o)),this._bindEvents(r,s,h,i,m,n),this._bind(h.add(g),"mousemove",function(a){if("number"==typeof e.hide.distance){var b=this.cache.origin||{},c=this.options.hide.distance,d=Math.abs;(d(a.pageX-b.pageX)>=c||d(a.pageY-b.pageY)>=c)&&this.hide(a)}this._storeMouse(a)}),"mouse"===f.target&&f.adjust.mouse&&(e.hide.event&&this._bind(h,["mouseenter","mouseleave"],function(a){return this.cache?void(this.cache.onTarget="mouseenter"===a.type):E}),this._bind(l,"mousemove",function(a){this.rendered&&this.cache.onTarget&&!this.tooltip.hasClass(ab)&&this.tooltip[0].offsetWidth>0&&this.reposition(a)})),(f.adjust.resize||k.length)&&this._bind(d.event.special.resize?k:q,"resize",p),f.adjust.scroll&&this._bind(q.add(f.container),"scroll",p)},z._unassignEvents=function(){var c=this.options,e=c.show.target,f=c.hide.target,g=d.grep([this.elements.target[0],this.rendered&&this.tooltip[0],c.position.container[0],c.position.viewport[0],c.position.container.closest("html")[0],a,b],function(a){return"object"==typeof a});e&&e.toArray&&(g=g.concat(e.toArray())),f&&f.toArray&&(g=g.concat(f.toArray())),this._unbind(g)._unbind(g,"destroy")._unbind(g,"inactive")},d(function(){q(W,["mouseenter","mouseleave"],function(a){var b="mouseenter"===a.type,c=d(a.currentTarget),e=d(a.relatedTarget||a.target),f=this.options;b?(this.focus(a),c.hasClass(Y)&&!c.hasClass(ab)&&clearTimeout(this.timers.hide)):"mouse"===f.position.target&&f.position.adjust.mouse&&f.hide.event&&f.show.target&&!e.closest(f.show.target[0]).length&&this.hide(a),c.toggleClass(_,b)}),q("["+U+"]",X,o)}),y=d.fn.qtip=function(a,b,e){var f=(""+a).toLowerCase(),g=F,i=d.makeArray(arguments).slice(1),j=i[i.length-1],k=this[0]?d.data(this[0],S):F;return!arguments.length&&k||"api"===f?k:"string"==typeof a?(this.each(function(){var a=d.data(this,S);if(!a)return D;if(j&&j.timeStamp&&(a.cache.event=j),!b||"option"!==f&&"options"!==f)a[f]&&a[f].apply(a,i);else{if(e===c&&!d.isPlainObject(b))return g=a.get(b),E;a.set(b,e)}}),g!==F?g:this):"object"!=typeof a&&arguments.length?void 0:(k=h(d.extend(D,{},a)),this.each(function(a){var b,c;return c=d.isArray(k.id)?k.id[a]:k.id,c=!c||c===E||c.length<1||y.api[c]?y.nextid++:c,b=r(d(this),c,k),b===E?D:(y.api[c]=b,d.each(R,function(){"initialize"===this.initialize&&this(b)}),void b._assignInitialEvents(j))}))},d.qtip=e,y.api={},d.each({attr:function(a,b){if(this.length){var c=this[0],e="title",f=d.data(c,"qtip");if(a===e&&f&&"object"==typeof f&&f.options.suppress)return arguments.length<2?d.attr(c,cb):(f&&f.options.content.attr===e&&f.cache.attr&&f.set("content.text",b),this.attr(cb,b))}return d.fn["attr"+bb].apply(this,arguments)},clone:function(a){var b=(d([]),d.fn["clone"+bb].apply(this,arguments));return a||b.filter("["+cb+"]").attr("title",function(){return d.attr(this,cb)}).removeAttr(cb),b}},function(a,b){if(!b||d.fn[a+bb])return D;var c=d.fn[a+bb]=d.fn[a];d.fn[a]=function(){return b.apply(this,arguments)||c.apply(this,arguments)}}),d.ui||(d["cleanData"+bb]=d.cleanData,d.cleanData=function(a){for(var b,c=0;(b=d(a[c])).length;c++)if(b.attr(T))try{b.triggerHandler("removeqtip")}catch(e){}d["cleanData"+bb].apply(this,arguments)}),y.version="2.2.1",y.nextid=0,y.inactiveEvents=X,y.zindex=15e3,y.defaults={prerender:E,id:E,overwrite:D,suppress:D,content:{text:D,attr:"title",title:E,button:E},position:{my:"top left",at:"bottom right",target:E,container:E,viewport:E,adjust:{x:0,y:0,mouse:D,scroll:D,resize:D,method:"flipinvert flipinvert"},effect:function(a,b){d(this).animate(b,{duration:200,queue:E})}},show:{target:E,event:"mouseenter",effect:D,delay:90,solo:E,ready:E,autofocus:E},hide:{target:E,event:"mouseleave",effect:D,delay:0,fixed:E,inactive:E,leave:"window",distance:E},style:{classes:"",widget:E,width:E,height:E,def:D},events:{render:F,move:F,show:F,hide:F,toggle:F,visible:F,hidden:F,focus:F,blur:F}};var hb,ib="margin",jb="border",kb="color",lb="background-color",mb="transparent",nb=" !important",ob=!!b.createElement("canvas").getContext,pb=/rgba?\(0, 0, 0(, 0)?\)|transparent|#123456/i,qb={},rb=["Webkit","O","Moz","ms"];if(ob)var sb=a.devicePixelRatio||1,tb=function(){var a=b.createElement("canvas").getContext("2d");return a.backingStorePixelRatio||a.webkitBackingStorePixelRatio||a.mozBackingStorePixelRatio||a.msBackingStorePixelRatio||a.oBackingStorePixelRatio||1}(),ub=sb/tb;else var vb=function(a,b,c){return"'};d.extend(v.prototype,{init:function(a){var b,c;c=this.element=a.elements.tip=d("
    ",{"class":S+"-tip"}).prependTo(a.tooltip),ob?(b=d("").appendTo(this.element)[0].getContext("2d"),b.lineJoin="miter",b.miterLimit=1e5,b.save()):(b=vb("shape",'coordorigin="0,0"',"position:absolute;"),this.element.html(b+b),a._bind(d("*",c).add(c),["click","mousedown"],function(a){a.stopPropagation()},this._ns)),a._bind(a.tooltip,"tooltipmove",this.reposition,this._ns,this),this.create()},_swapDimensions:function(){this.size[0]=this.options.height,this.size[1]=this.options.width},_resetDimensions:function(){this.size[0]=this.options.width,this.size[1]=this.options.height},_useTitle:function(a){var b=this.qtip.elements.titlebar;return b&&(a.y===K||a.y===O&&this.element.position().top+this.size[1]/2+this.options.offsetl&&!pb.test(e[1])&&(e[0]=e[1]),this.border=l=p.border!==D?p.border:l):this.border=l=0,k=this.size=this._calculateSize(b),n.css({width:k[0],height:k[1],lineHeight:k[1]+"px"}),j=b.precedance===H?[s(r.x===L?l:r.x===N?k[0]-q[0]-l:(k[0]-q[0])/2),s(r.y===K?k[1]-q[1]:0)]:[s(r.x===L?k[0]-q[0]:0),s(r.y===K?l:r.y===M?k[1]-q[1]-l:(k[1]-q[1])/2)],ob?(g=o[0].getContext("2d"),g.restore(),g.save(),g.clearRect(0,0,6e3,6e3),h=this._calculateTip(r,q,ub),i=this._calculateTip(r,this.size,ub),o.attr(I,k[0]*ub).attr(J,k[1]*ub),o.css(I,k[0]).css(J,k[1]),this._drawCoords(g,i),g.fillStyle=e[1],g.fill(),g.translate(j[0]*ub,j[1]*ub),this._drawCoords(g,h),g.fillStyle=e[0],g.fill()):(h=this._calculateTip(r),h="m"+h[0]+","+h[1]+" l"+h[2]+","+h[3]+" "+h[4]+","+h[5]+" xe",j[2]=l&&/^(r|b)/i.test(b.string())?8===db.ie?2:1:0,o.css({coordsize:k[0]+l+" "+(k[1]+l),antialias:""+(r.string().indexOf(O)>-1),left:j[0]-j[2]*Number(f===G),top:j[1]-j[2]*Number(f===H),width:k[0]+l,height:k[1]+l}).each(function(a){var b=d(this);b[b.prop?"prop":"attr"]({coordsize:k[0]+l+" "+(k[1]+l),path:h,fillcolor:e[0],filled:!!a,stroked:!a}).toggle(!(!l&&!a)),!a&&b.html(vb("stroke",'weight="'+2*l+'px" color="'+e[1]+'" miterlimit="1000" joinstyle="miter"'))})),a.opera&&setTimeout(function(){m.tip.css({display:"inline-block",visibility:"visible"})},1),c!==E&&this.calculate(b,k)},calculate:function(a,b){if(!this.enabled)return E;var c,e,f=this,g=this.qtip.elements,h=this.element,i=this.options.offset,j=(g.tooltip.hasClass("ui-widget"),{});return a=a||this.corner,c=a.precedance,b=b||this._calculateSize(a),e=[a.x,a.y],c===G&&e.reverse(),d.each(e,function(d,e){var h,k,l; + e===O?(h=c===H?L:K,j[h]="50%",j[ib+"-"+h]=-Math.round(b[c===H?0:1]/2)+i):(h=f._parseWidth(a,e,g.tooltip),k=f._parseWidth(a,e,g.content),l=f._parseRadius(a),j[e]=Math.max(-f.border,d?k:i+(l>h?l:-h)))}),j[a[c]]-=b[c===G?0:1],h.css({margin:"",top:"",bottom:"",left:"",right:""}).css(j),j},reposition:function(a,b,d){function e(a,b,c,d,e){a===Q&&j.precedance===b&&k[d]&&j[c]!==O?j.precedance=j.precedance===G?H:G:a!==Q&&k[d]&&(j[b]=j[b]===O?k[d]>0?d:e:j[b]===d?e:d)}function f(a,b,e){j[a]===O?p[ib+"-"+b]=o[a]=g[ib+"-"+b]-k[b]:(h=g[e]!==c?[k[b],-g[b]]:[-k[b],g[b]],(o[a]=Math.max(h[0],h[1]))>h[0]&&(d[b]-=k[b],o[b]=E),p[g[e]!==c?e:b]=o[a])}if(this.enabled){var g,h,i=b.cache,j=this.corner.clone(),k=d.adjusted,l=b.options.position.adjust.method.split(" "),m=l[0],n=l[1]||l[0],o={left:E,top:E,x:0,y:0},p={};this.corner.fixed!==D&&(e(m,G,H,L,N),e(n,H,G,K,M),(j.string()!==i.corner.string()||i.cornerTop!==k.top||i.cornerLeft!==k.left)&&this.update(j,E)),g=this.calculate(j),g.right!==c&&(g.left=-g.right),g.bottom!==c&&(g.top=-g.bottom),g.user=this.offset,(o.left=m===Q&&!!k.left)&&f(G,L,N),(o.top=n===Q&&!!k.top)&&f(H,K,M),this.element.css(p).toggle(!(o.x&&o.y||j.x===O&&o.y||j.y===O&&o.x)),d.left-=g.left.charAt?g.user:m!==Q||o.top||!o.left&&!o.top?g.left+this.border:0,d.top-=g.top.charAt?g.user:n!==Q||o.left||!o.left&&!o.top?g.top+this.border:0,i.cornerLeft=k.left,i.cornerTop=k.top,i.corner=j.clone()}},destroy:function(){this.qtip._unbind(this.qtip.tooltip,this._ns),this.qtip.elements.tip&&this.qtip.elements.tip.find("*").remove().end().remove()}}),hb=R.tip=function(a){return new v(a,a.options.style.tip)},hb.initialize="render",hb.sanitize=function(a){if(a.style&&"tip"in a.style){var b=a.style.tip;"object"!=typeof b&&(b=a.style.tip={corner:b}),/string|boolean/i.test(typeof b.corner)||(b.corner=D)}},B.tip={"^position.my|style.tip.(corner|mimic|border)$":function(){this.create(),this.qtip.reposition()},"^style.tip.(height|width)$":function(a){this.size=[a.width,a.height],this.update(),this.qtip.reposition()},"^content.title|style.(classes|widget)$":function(){this.update()}},d.extend(D,y.defaults,{style:{tip:{corner:D,mimic:E,width:6,height:6,border:D,offset:0}}});var wb,xb,yb="qtip-modal",zb="."+yb;xb=function(){function a(a){if(d.expr[":"].focusable)return d.expr[":"].focusable;var b,c,e,f=!isNaN(d.attr(a,"tabindex")),g=a.nodeName&&a.nodeName.toLowerCase();return"area"===g?(b=a.parentNode,c=b.name,a.href&&c&&"map"===b.nodeName.toLowerCase()?(e=d("img[usemap=#"+c+"]")[0],!!e&&e.is(":visible")):!1):/input|select|textarea|button|object/.test(g)?!a.disabled:"a"===g?a.href||f:f}function c(a){k.length<1&&a.length?a.not("body").blur():k.first().focus()}function e(a){if(i.is(":visible")){var b,e=d(a.target),h=f.tooltip,j=e.closest(W);b=j.length<1?E:parseInt(j[0].style.zIndex,10)>parseInt(h[0].style.zIndex,10),b||e.closest(W)[0]===h[0]||c(e),g=a.target===k[k.length-1]}}var f,g,h,i,j=this,k={};d.extend(j,{init:function(){return i=j.elem=d("
    ",{id:"qtip-overlay",html:"
    ",mousedown:function(){return E}}).hide(),d(b.body).bind("focusin"+zb,e),d(b).bind("keydown"+zb,function(a){f&&f.options.show.modal.escape&&27===a.keyCode&&f.hide(a)}),i.bind("click"+zb,function(a){f&&f.options.show.modal.blur&&f.hide(a)}),j},update:function(b){f=b,k=b.options.show.modal.stealfocus!==E?b.tooltip.find("*").filter(function(){return a(this)}):[]},toggle:function(a,e,g){var k=(d(b.body),a.tooltip),l=a.options.show.modal,m=l.effect,n=e?"show":"hide",o=i.is(":visible"),p=d(zb).filter(":visible:not(:animated)").not(k);return j.update(a),e&&l.stealfocus!==E&&c(d(":focus")),i.toggleClass("blurs",l.blur),e&&i.appendTo(b.body),i.is(":animated")&&o===e&&h!==E||!e&&p.length?j:(i.stop(D,E),d.isFunction(m)?m.call(i,e):m===E?i[n]():i.fadeTo(parseInt(g,10)||90,e?1:0,function(){e||i.hide()}),e||i.queue(function(a){i.css({left:"",top:""}),d(zb).length||i.detach(),a()}),h=e,f.destroyed&&(f=F),j)}}),j.init()},xb=new xb,d.extend(w.prototype,{init:function(a){var b=a.tooltip;return this.options.on?(a.elements.overlay=xb.elem,b.addClass(yb).css("z-index",y.modal_zindex+d(zb).length),a._bind(b,["tooltipshow","tooltiphide"],function(a,c,e){var f=a.originalEvent;if(a.target===b[0])if(f&&"tooltiphide"===a.type&&/mouse(leave|enter)/.test(f.type)&&d(f.relatedTarget).closest(xb.elem[0]).length)try{a.preventDefault()}catch(g){}else(!f||f&&"tooltipsolo"!==f.type)&&this.toggle(a,"tooltipshow"===a.type,e)},this._ns,this),a._bind(b,"tooltipfocus",function(a,c){if(!a.isDefaultPrevented()&&a.target===b[0]){var e=d(zb),f=y.modal_zindex+e.length,g=parseInt(b[0].style.zIndex,10);xb.elem[0].style.zIndex=f-1,e.each(function(){this.style.zIndex>g&&(this.style.zIndex-=1)}),e.filter("."+$).qtip("blur",a.originalEvent),b.addClass($)[0].style.zIndex=f,xb.update(c);try{a.preventDefault()}catch(h){}}},this._ns,this),void a._bind(b,"tooltiphide",function(a){a.target===b[0]&&d(zb).filter(":visible").not(b).last().qtip("focus",a)},this._ns,this)):this},toggle:function(a,b,c){return a&&a.isDefaultPrevented()?this:void xb.toggle(this.qtip,!!b,c)},destroy:function(){this.qtip.tooltip.removeClass(yb),this.qtip._unbind(this.qtip.tooltip,this._ns),xb.toggle(this.qtip,E),delete this.qtip.elements.overlay}}),wb=R.modal=function(a){return new w(a,a.options.show.modal)},wb.sanitize=function(a){a.show&&("object"!=typeof a.show.modal?a.show.modal={on:!!a.show.modal}:"undefined"==typeof a.show.modal.on&&(a.show.modal.on=D))},y.modal_zindex=y.zindex-200,wb.initialize="render",B.modal={"^show.modal.(on|blur)$":function(){this.destroy(),this.init(),this.qtip.elems.overlay.toggle(this.qtip.tooltip[0].offsetWidth>0)}},d.extend(D,y.defaults,{show:{modal:{on:E,effect:D,blur:D,stealfocus:D,escape:D}}}),R.viewport=function(c,d,e,f,g,h,i){function j(a,b,c,e,f,g,h,i,j){var k=d[f],s=u[a],t=v[a],w=c===Q,x=s===f?j:s===g?-j:-j/2,y=t===f?i:t===g?-i:-i/2,z=q[f]+r[f]-(n?0:m[f]),A=z-k,B=k+j-(h===I?o:p)-z,C=x-(u.precedance===a||s===u[b]?y:0)-(t===O?i/2:0);return w?(C=(s===f?1:-1)*x,d[f]+=A>0?A:B>0?-B:0,d[f]=Math.max(-m[f]+r[f],k-C,Math.min(Math.max(-m[f]+r[f]+(h===I?o:p),k+C),d[f],"center"===s?k-x:1e9))):(e*=c===P?2:0,A>0&&(s!==f||B>0)?(d[f]-=C+e,l.invert(a,f)):B>0&&(s!==g||A>0)&&(d[f]-=(s===O?-C:C)+e,l.invert(a,g)),d[f]B&&(d[f]=k,l=u.clone())),d[f]-k}var k,l,m,n,o,p,q,r,s=e.target,t=c.elements.tooltip,u=e.my,v=e.at,w=e.adjust,x=w.method.split(" "),y=x[0],z=x[1]||x[0],A=e.viewport,B=e.container,C=(c.cache,{left:0,top:0});return A.jquery&&s[0]!==a&&s[0]!==b.body&&"none"!==w.method?(m=B.offset()||C,n="static"===B.css("position"),k="fixed"===t.css("position"),o=A[0]===a?A.width():A.outerWidth(E),p=A[0]===a?A.height():A.outerHeight(E),q={left:k?0:A.scrollLeft(),top:k?0:A.scrollTop()},r=A.offset()||C,("shift"!==y||"shift"!==z)&&(l=u.clone()),C={left:"none"!==y?j(G,H,y,w.x,L,N,I,f,h):0,top:"none"!==z?j(H,G,z,w.y,K,M,J,g,i):0,my:l}):C},R.polys={polygon:function(a,b){var c,d,e,f={width:0,height:0,position:{top:1e10,right:0,bottom:0,left:1e10},adjustable:E},g=0,h=[],i=1,j=1,k=0,l=0;for(g=a.length;g--;)c=[parseInt(a[--g],10),parseInt(a[g+1],10)],c[0]>f.position.right&&(f.position.right=c[0]),c[0]f.position.bottom&&(f.position.bottom=c[1]),c[1]0&&e>0&&i>0&&j>0;)for(d=Math.floor(d/2),e=Math.floor(e/2),b.x===L?i=d:b.x===N?i=f.width-d:i+=Math.floor(d/2),b.y===K?j=e:b.y===M?j=f.height-e:j+=Math.floor(e/2),g=h.length;g--&&!(h.length<2);)k=h[g][0]-f.position.left,l=h[g][1]-f.position.top,(b.x===L&&k>=i||b.x===N&&i>=k||b.x===O&&(i>k||k>f.width-i)||b.y===K&&l>=j||b.y===M&&j>=l||b.y===O&&(j>l||l>f.height-j))&&h.splice(g,1);f.position={left:h[0][0],top:h[0][1]}}return f},rect:function(a,b,c,d){return{width:Math.abs(c-a),height:Math.abs(d-b),position:{left:Math.min(a,c),top:Math.min(b,d)}}},_angles:{tc:1.5,tr:7/4,tl:5/4,bc:.5,br:.25,bl:.75,rc:2,lc:1,c:0},ellipse:function(a,b,c,d,e){var f=R.polys._angles[e.abbrev()],g=0===f?0:c*Math.cos(f*Math.PI),h=d*Math.sin(f*Math.PI);return{width:2*c-Math.abs(g),height:2*d-Math.abs(h),position:{left:a+g,top:b+h},adjustable:E}},circle:function(a,b,c,d){return R.polys.ellipse(a,b,c,c,d)}},R.svg=function(a,c,e){for(var f,g,h,i,j,k,l,m,n,o=(d(b),c[0]),p=d(o.ownerSVGElement),q=o.ownerDocument,r=(parseInt(c.css("stroke-width"),10)||0)/2;!o.getBBox;)o=o.parentNode;if(!o.getBBox||!o.parentNode)return E;switch(o.nodeName){case"ellipse":case"circle":m=R.polys.ellipse(o.cx.baseVal.value,o.cy.baseVal.value,(o.rx||o.r).baseVal.value+r,(o.ry||o.r).baseVal.value+r,e);break;case"line":case"polygon":case"polyline":for(l=o.points||[{x:o.x1.baseVal.value,y:o.y1.baseVal.value},{x:o.x2.baseVal.value,y:o.y2.baseVal.value}],m=[],k=-1,i=l.numberOfItems||l.length;++k';d.extend(x.prototype,{_scroll:function(){var b=this.qtip.elements.overlay;b&&(b[0].style.top=d(a).scrollTop()+"px")},init:function(c){var e=c.tooltip;d("select, object").length<1&&(this.bgiframe=c.elements.bgiframe=d(Bb).appendTo(e),c._bind(e,"tooltipmove",this.adjustBGIFrame,this._ns,this)),this.redrawContainer=d("
    ",{id:S+"-rcontainer"}).appendTo(b.body),c.elements.overlay&&c.elements.overlay.addClass("qtipmodal-ie6fix")&&(c._bind(a,["scroll","resize"],this._scroll,this._ns,this),c._bind(e,["tooltipshow"],this._scroll,this._ns,this)),this.redraw()},adjustBGIFrame:function(){var a,b,c=this.qtip.tooltip,d={height:c.outerHeight(E),width:c.outerWidth(E)},e=this.qtip.plugins.tip,f=this.qtip.elements.tip;b=parseInt(c.css("borderLeftWidth"),10)||0,b={left:-b,top:-b},e&&f&&(a="x"===e.corner.precedance?[I,L]:[J,K],b[a[1]]-=f[a[0]]()),this.bgiframe.css(b).css(d)},redraw:function(){if(this.qtip.rendered<1||this.drawing)return this;var a,b,c,d,e=this.qtip.tooltip,f=this.qtip.options.style,g=this.qtip.options.position.container;return this.qtip.drawing=1,f.height&&e.css(J,f.height),f.width?e.css(I,f.width):(e.css(I,"").appendTo(this.redrawContainer),b=e.width(),1>b%2&&(b+=1),c=e.css("maxWidth")||"",d=e.css("minWidth")||"",a=(c+d).indexOf("%")>-1?g.width()/100:0,c=(c.indexOf("%")>-1?a:1)*parseInt(c,10)||b,d=(d.indexOf("%")>-1?a:1)*parseInt(d,10)||0,b=c+d?Math.min(Math.max(b,d),c):b,e.css(I,Math.round(b)).appendTo(g)),this.drawing=0,this},destroy:function(){this.bgiframe&&this.bgiframe.remove(),this.qtip._unbind([a,this.qtip.tooltip],this._ns)}}),Ab=R.ie6=function(a){return 6===db.ie?new x(a):E},Ab.initialize="render",B.ie6={"^content|style$":function(){this.redraw()}}})}(window,document); +//# sourceMappingURL=jquery.qtip.min.js.map \ No newline at end of file diff --git a/redux/ReduxCore/assets/js/vendor/redux.select2.sortable.js b/redux/ReduxCore/assets/js/vendor/redux.select2.sortable.js new file mode 100644 index 0000000..896c1ad --- /dev/null +++ b/redux/ReduxCore/assets/js/vendor/redux.select2.sortable.js @@ -0,0 +1,152 @@ +/** + * jQuery Select2 Sortable + * - enable select2 to be sortable via normal select element + * + * author : Vafour + * modified : Kevin Provance (kprovance) + * inspired by : jQuery Chosen Sortable (https://github.com/mrhenry/jquery-chosen-sortable) + * License : GPL + */ + +(function ($) { + $.fn.extend({ + select2SortableOrder: function () { + var $this = this.filter('[multiple]'); + + $this.each(function () { + var $select = $(this); + + // skip elements not select2-ed + if (typeof ($select.data('select2')) !== 'object') { + return false; + } + + var $select2 = $select.siblings('.select2-container'); + var sorted; + + // Opt group names + var optArr = []; + + $select.find('optgroup').each(function(idx, val) { + optArr.push (val); + }); + + $select.find('option').each(function(idx, val) { + var groupName = $(this).parent('optgroup').prop('label'); + var optVal = this; + + if (groupName === undefined) { + if (this.value !== '' && !this.selected) { + optArr.push (optVal); + } + } + }); + + sorted = $($select2.find('.select2-choices li[class!="select2-search-field"]').map(function () { + if (!this) { + return undefined; + } + + if($(this).data('select2Data') != undefined){ + var id = $(this).data('select2Data').id; + return $select.find('option[value="' + id + '"]')[0]; + } + + + //var id = $(this).data('select2Data').id; + + //return $select.find('option[value="' + id + '"]')[0]; + })); + + sorted.push.apply(sorted, optArr); + + $select.children().remove(); + $select.append(sorted); + }); + + return $this; + }, + + select2Sortable: function () { + var args = Array.prototype.slice.call(arguments, 0); + $this = this.filter('[multiple]'), + validMethods = ['destroy']; + + if (args.length === 0 || typeof (args[0]) === 'object') { + var defaultOptions = { + bindOrder: 'formSubmit', // or sortableStop + sortableOptions: { + placeholder: 'ui-state-highlight', + items: 'li:not(.select2-search-field)', + tolerance: 'pointer' + } + }; + + var options = $.extend(defaultOptions, args[0]); + + // Init select2 only if not already initialized to prevent select2 configuration loss + if (typeof ($this.data('select2')) !== 'object') { + $this.select2(); + } + + $this.each(function () { + var $select = $(this) + var $select2choices = $select.siblings('.select2-container').find('.select2-choices'); + + // Init jQuery UI Sortable + $select2choices.sortable(options.sortableOptions); + + switch (options.bindOrder) { + case 'sortableStop': + // apply options ordering in sortstop event + $select2choices.on("sortstop.select2sortable", function (event, ui) { + $select.select2SortableOrder(); + }); + + $select.on('change', function (e) { + $(this).select2SortableOrder(); + }); + break; + + default: + // apply options ordering in form submit + $select.closest('form').unbind('submit.select2sortable').on('submit.select2sortable', function () { + $select.select2SortableOrder(); + }); + break; + } + }); + } + else if (typeof (args[0] === 'string')) { + if ($.inArray(args[0], validMethods) == -1) { + throw "Unknown method: " + args[0]; + } + + if (args[0] === 'destroy') { + $this.select2SortableDestroy(); + } + } + + return $this; + }, + + select2SortableDestroy: function () { + var $this = this.filter('[multiple]'); + $this.each(function () { + var $select = $(this) + var $select2choices = $select.parent().find('.select2-choices'); + + // unbind form submit event + $select.closest('form').unbind('submit.select2sortable'); + + // unbind sortstop event + $select2choices.unbind("sortstop.select2sortable"); + + // destroy select2Sortable + $select2choices.sortable('destroy'); + }); + + return $this; + } + }); +}(jQuery)); \ No newline at end of file diff --git a/redux/ReduxCore/assets/js/vendor/redux.select2.sortable.min.js b/redux/ReduxCore/assets/js/vendor/redux.select2.sortable.min.js new file mode 100644 index 0000000..85cd7e8 --- /dev/null +++ b/redux/ReduxCore/assets/js/vendor/redux.select2.sortable.min.js @@ -0,0 +1 @@ +!function(o){o.fn.extend({select2SortableOrder:function(){var e=this.filter("[multiple]");return e.each(function(){var t=o(this);if("object"!=typeof t.data("select2"))return!1;var e,s=t.siblings(".select2-container"),i=[];t.find("optgroup").each(function(e,t){i.push(t)}),t.find("option").each(function(e,t){void 0===o(this).parent("optgroup").prop("label")&&(""===this.value||this.selected||i.push(this))}),(e=o(s.find('.select2-choices li[class!="select2-search-field"]').map(function(){if(this&&null!=o(this).data("select2Data")){var e=o(this).data("select2Data").id;return t.find('option[value="'+e+'"]')[0]}}))).push.apply(e,i),t.children().remove(),t.append(e)}),e},select2Sortable:function(){var e=Array.prototype.slice.call(arguments,0);if($this=this.filter("[multiple]"),validMethods=["destroy"],0===e.length||"object"==typeof e[0]){var t=o.extend({bindOrder:"formSubmit",sortableOptions:{placeholder:"ui-state-highlight",items:"li:not(.select2-search-field)",tolerance:"pointer"}},e[0]);"object"!=typeof $this.data("select2")&&$this.select2(),$this.each(function(){var s=o(this),e=s.siblings(".select2-container").find(".select2-choices");switch(e.sortable(t.sortableOptions),t.bindOrder){case"sortableStop":e.on("sortstop.select2sortable",function(e,t){s.select2SortableOrder()}),s.on("change",function(e){o(this).select2SortableOrder()});break;default:s.closest("form").unbind("submit.select2sortable").on("submit.select2sortable",function(){s.select2SortableOrder()})}})}else{if(e[0],-1==o.inArray(e[0],validMethods))throw"Unknown method: "+e[0];"destroy"===e[0]&&$this.select2SortableDestroy()}return $this},select2SortableDestroy:function(){var e=this.filter("[multiple]");return e.each(function(){var e=o(this),t=e.parent().find(".select2-choices");e.closest("form").unbind("submit.select2sortable"),t.unbind("sortstop.select2sortable"),t.sortable("destroy")}),e}})}(jQuery); \ No newline at end of file diff --git a/redux/ReduxCore/assets/js/vendor/spectrum/redux-spectrum.js b/redux/ReduxCore/assets/js/vendor/spectrum/redux-spectrum.js new file mode 100644 index 0000000..5a30361 --- /dev/null +++ b/redux/ReduxCore/assets/js/vendor/spectrum/redux-spectrum.js @@ -0,0 +1,2088 @@ +// Spectrum Colorpicker v1.3.3 +// https://github.com/bgrins/spectrum +// Author: Brian Grinstead +// License: MIT + +(function (window, $, undefined) { + var defaultOpts = { + + // Callbacks + beforeShow: noop, + move: noop, + change: noop, + show: noop, + hide: noop, + + // Options + color: false, + flat: false, + showInput: false, + allowEmpty: false, + showButtons: true, + clickoutFiresChange: false, + showInitial: false, + showPalette: false, + showPaletteOnly: false, + showSelectionPalette: true, + localStorageKey: false, + appendTo: "body", + maxSelectionSize: 7, + cancelText: "cancel", + chooseText: "choose", + clearText: "Clear Color Selection", + preferredFormat: false, + className: "", // Deprecated - use containerClassName and replacerClassName instead. + containerClassName: "", + replacerClassName: "", + showAlpha: false, + theme: "sp-light", + palette: [["#ffffff", "#000000", "#ff0000", "#ff8000", "#ffff00", "#008000", "#0000ff", "#4b0082", "#9400d3"]], + selectionPalette: [], + disabled: false, + inputText: '' + }, + spectrums = [], + IE = !!/msie/i.exec( window.navigator.userAgent ), + rgbaSupport = (function() { + function contains( str, substr ) { + return !!~('' + str).indexOf(substr); + } + + var elem = document.createElement('div'); + var style = elem.style; + style.cssText = 'background-color:rgba(0,0,0,.5)'; + return contains(style.backgroundColor, 'rgba') || contains(style.backgroundColor, 'hsla'); + })(), + inputTypeColorSupport = (function() { + var colorInput = $("")[0]; + return colorInput.type === "color" && colorInput.value !== "#ffffff"; + })(), + replaceInput = [ + "
    ", + "
    ", + "
    ", + //"
    " + opts.inputText + "
    ", + "
    " + ].join(''), + markup = (function () { + + // IE does not support gradients with multiple stops, so we need to simulate + // that for the rainbow slider with 8 divs that each have a single gradient + var gradientFix = ""; + if (IE) { + for (var i = 1; i <= 6; i++) { + gradientFix += "
    "; + } + } + + return [ + "
    " + ].join(""); + })(); + + function paletteTemplate (p, color, className, tooltipFormat) { + var html = []; + for (var i = 0; i < p.length; i++) { + var current = p[i]; + if(current) { + var tiny = tinycolor(current); + var c = tiny.toHsl().l < 0.5 ? "sp-thumb-el sp-thumb-dark" : "sp-thumb-el sp-thumb-light"; + c += (tinycolor.equals(color, current)) ? " sp-thumb-active" : ""; + + var formattedString = tiny.toString(tooltipFormat || "rgb"); + var swatchStyle = rgbaSupport ? ("background-color:" + tiny.toRgbString()) : "filter:" + tiny.toFilter(); + html.push(''); + } else { + var cls = 'sp-clear-display'; + html.push(''); + } + } + return "
    " + html.join('') + "
    "; + } + + function hideAll() { + for (var i = 0; i < spectrums.length; i++) { + if (spectrums[i]) { + spectrums[i].hide(); + } + } + } + + function instanceOptions(o, callbackContext) { + var opts = $.extend({}, defaultOpts, o); + opts.callbacks = { + 'move': bind(opts.move, callbackContext), + 'change': bind(opts.change, callbackContext), + 'show': bind(opts.show, callbackContext), + 'hide': bind(opts.hide, callbackContext), + 'beforeShow': bind(opts.beforeShow, callbackContext) + }; + + return opts; + } + + function spectrum(element, o) { + + var opts = instanceOptions(o, element), + flat = opts.flat, + showSelectionPalette = opts.showSelectionPalette, + localStorageKey = opts.localStorageKey, + theme = opts.theme, + callbacks = opts.callbacks, + resize = throttle(reflow, 10), + visible = false, + dragWidth = 0, + dragHeight = 0, + dragHelperHeight = 0, + slideHeight = 0, + slideWidth = 0, + alphaWidth = 0, + alphaSlideHelperWidth = 0, + slideHelperHeight = 0, + currentHue = 0, + currentSaturation = 0, + currentValue = 0, + currentAlpha = 1, + palette = [], + paletteArray = [], + paletteLookup = {}, + selectionPalette = opts.selectionPalette.slice(0), + maxSelectionSize = opts.maxSelectionSize, + draggingClass = "sp-dragging", + inputText = opts.inputText, + shiftMovementDirection = null; + + var doc = element.ownerDocument, + body = doc.body, + boundElement = $(element), + disabled = false, + container = $(markup, doc).addClass(theme), + dragger = container.find(".sp-color"), + dragHelper = container.find(".sp-dragger"), + slider = container.find(".sp-hue"), + slideHelper = container.find(".sp-slider"), + alphaSliderInner = container.find(".sp-alpha-inner"), + alphaSlider = container.find(".sp-alpha"), + alphaSlideHelper = container.find(".sp-alpha-handle"), + textInput = container.find(".sp-input"), + paletteContainer = container.find(".sp-palette"), + initialColorContainer = container.find(".sp-initial"), + cancelButton = container.find(".sp-cancel"), + clearButton = container.find(".sp-clear"), + chooseButton = container.find(".sp-choose"), + isInput = boundElement.is("input"), + isInputTypeColor = isInput && inputTypeColorSupport && boundElement.attr("type") === "color", + shouldReplace = isInput && !flat, + replacer = (shouldReplace) ? $(replaceInput).addClass(theme).addClass(opts.className).addClass(opts.replacerClassName) : $([]), + offsetElement = (shouldReplace) ? replacer : boundElement, + previewElement = replacer.find(".sp-preview-inner"), + initialColor = opts.color || (isInput && boundElement.val()), + colorOnShow = false, + preferredFormat = opts.preferredFormat, + currentPreferredFormat = preferredFormat, + clickoutFiresChange = !opts.showButtons || opts.clickoutFiresChange, + isEmpty = !initialColor, + allowEmpty = opts.allowEmpty && !isInputTypeColor; + + if (inputText !== '') { + var x = $(offsetElement).find('div.sp-dd'); + x.text(inputText); + } + + function applyOptions() { + + if (opts.showPaletteOnly) { + opts.showPalette = true; + } + + if (opts.palette) { + palette = opts.palette.slice(0); + paletteArray = $.isArray(palette[0]) ? palette : [palette]; + paletteLookup = {}; + for (var i = 0; i < paletteArray.length; i++) { + for (var j = 0; j < paletteArray[i].length; j++) { + var rgb = tinycolor(paletteArray[i][j]).toRgbString(); + paletteLookup[rgb] = true; + } + } + } + + container.toggleClass("sp-flat", flat); + container.toggleClass("sp-input-disabled", !opts.showInput); + container.toggleClass("sp-alpha-enabled", opts.showAlpha); + container.toggleClass("sp-clear-enabled", allowEmpty); + container.toggleClass("sp-buttons-disabled", !opts.showButtons); + container.toggleClass("sp-palette-disabled", !opts.showPalette); + container.toggleClass("sp-palette-only", opts.showPaletteOnly); + container.toggleClass("sp-initial-disabled", !opts.showInitial); + container.addClass(opts.className).addClass(opts.containerClassName); + + reflow(); + } + + function initialize() { + + if (IE) { + container.find("*:not(input)").attr("unselectable", "on"); + } + + applyOptions(); + + if (shouldReplace) { + boundElement.after(replacer).hide(); + } + + if (!allowEmpty) { + clearButton.hide(); + } + + if (flat) { + boundElement.after(container).hide(); + } + else { + + var appendTo = opts.appendTo === "parent" ? boundElement.parent() : $(opts.appendTo); + if (appendTo.length !== 1) { + appendTo = $("body"); + } + + appendTo.append(container); + } + + updateSelectionPaletteFromStorage(); + + offsetElement.bind("click.spectrum touchstart.spectrum", function (e) { + if (!disabled) { + toggle(); + } + + e.stopPropagation(); + + if (!$(e.target).is("input")) { + e.preventDefault(); + } + }); + + if(boundElement.is(":disabled") || (opts.disabled === true)) { + disable(); + } + + // Prevent clicks from bubbling up to document. This would cause it to be hidden. + container.click(stopPropagation); + + // Handle user typed input + textInput.change(setFromTextInput); + textInput.bind("paste", function () { + setTimeout(setFromTextInput, 1); + }); + textInput.keydown(function (e) { if (e.keyCode == 13) { setFromTextInput(); } }); + + cancelButton.text(opts.cancelText); + cancelButton.bind("click.spectrum", function (e) { + e.stopPropagation(); + e.preventDefault(); + hide("cancel"); + }); + + clearButton.attr("title", opts.clearText); + clearButton.bind("click.spectrum", function (e) { + e.stopPropagation(); + e.preventDefault(); + isEmpty = true; + move(); + + if(flat) { + //for the flat style, this is a change event + updateOriginalInput(true); + } + }); + + chooseButton.text(opts.chooseText); + chooseButton.bind("click.spectrum", function (e) { + e.stopPropagation(); + e.preventDefault(); + + if (isValid()) { + updateOriginalInput(true); + hide(); + } + }); + + draggable(alphaSlider, function (dragX, dragY, e) { + currentAlpha = (dragX / alphaWidth); + isEmpty = false; + if (e.shiftKey) { + currentAlpha = Math.round(currentAlpha * 10) / 10; + } + + move(); + }, dragStart, dragStop); + + draggable(slider, function (dragX, dragY) { + currentHue = parseFloat(dragY / slideHeight); + isEmpty = false; + if (!opts.showAlpha) { + currentAlpha = 1; + } + move(); + }, dragStart, dragStop); + + draggable(dragger, function (dragX, dragY, e) { + + // shift+drag should snap the movement to either the x or y axis. + if (!e.shiftKey) { + shiftMovementDirection = null; + } + else if (!shiftMovementDirection) { + var oldDragX = currentSaturation * dragWidth; + var oldDragY = dragHeight - (currentValue * dragHeight); + var furtherFromX = Math.abs(dragX - oldDragX) > Math.abs(dragY - oldDragY); + + shiftMovementDirection = furtherFromX ? "x" : "y"; + } + + var setSaturation = !shiftMovementDirection || shiftMovementDirection === "x"; + var setValue = !shiftMovementDirection || shiftMovementDirection === "y"; + + if (setSaturation) { + currentSaturation = parseFloat(dragX / dragWidth); + } + if (setValue) { + currentValue = parseFloat((dragHeight - dragY) / dragHeight); + } + + isEmpty = false; + if (!opts.showAlpha) { + currentAlpha = 1; + } + + move(); + + }, dragStart, dragStop); + + if (!!initialColor) { + set(initialColor); + + // In case color was black - update the preview UI and set the format + // since the set function will not run (default color is black). + updateUI(); + currentPreferredFormat = preferredFormat || tinycolor(initialColor).format; + + addColorToSelectionPalette(initialColor); + } + else { + updateUI(); + } + + if (flat) { + show(); + } + + function palletElementClick(e) { + if (e.data && e.data.ignore) { + set($(this).data("color")); + move(); + } + else { + set($(this).data("color")); + move(); + updateOriginalInput(true); + hide(); + } + + return false; + } + + var paletteEvent = IE ? "mousedown.spectrum" : "click.spectrum touchstart.spectrum"; + paletteContainer.delegate(".sp-thumb-el", paletteEvent, palletElementClick); + initialColorContainer.delegate(".sp-thumb-el:nth-child(1)", paletteEvent, { ignore: true }, palletElementClick); + } + + function updateSelectionPaletteFromStorage() { + + if (localStorageKey && window.localStorage) { + + // Migrate old palettes over to new format. May want to remove this eventually. + try { + var oldPalette = window.localStorage[localStorageKey].split(",#"); + if (oldPalette.length > 1) { + delete window.localStorage[localStorageKey]; + $.each(oldPalette, function(i, c) { + addColorToSelectionPalette(c); + }); + } + } + catch(e) { } + + try { + selectionPalette = window.localStorage[localStorageKey].split(";"); + } + catch (e) { } + } + } + + function addColorToSelectionPalette(color) { + if (showSelectionPalette) { + var rgb = tinycolor(color).toRgbString(); + if (!paletteLookup[rgb] && $.inArray(rgb, selectionPalette) === -1) { + selectionPalette.push(rgb); + while(selectionPalette.length > maxSelectionSize) { + selectionPalette.shift(); + } + } + + if (localStorageKey && window.localStorage) { + try { + window.localStorage[localStorageKey] = selectionPalette.join(";"); + } + catch(e) { } + } + } + } + + function getUniqueSelectionPalette() { + var unique = []; + if (opts.showPalette) { + for (i = 0; i < selectionPalette.length; i++) { + var rgb = tinycolor(selectionPalette[i]).toRgbString(); + + if (!paletteLookup[rgb]) { + unique.push(selectionPalette[i]); + } + } + } + + return unique.reverse().slice(0, opts.maxSelectionSize); + } + + function drawPalette() { + + var currentColor = get(); + + var html = $.map(paletteArray, function (palette, i) { + return paletteTemplate(palette, currentColor, "sp-palette-row sp-palette-row-" + i, opts.preferredFormat); + }); + + updateSelectionPaletteFromStorage(); + + if (selectionPalette) { + html.push(paletteTemplate(getUniqueSelectionPalette(), currentColor, "sp-palette-row sp-palette-row-selection", opts.preferredFormat)); + } + + paletteContainer.html(html.join("")); + } + + function drawInitial() { + if (opts.showInitial) { + var initial = colorOnShow; + var current = get(); + initialColorContainer.html(paletteTemplate([initial, current], current, "sp-palette-row-initial", opts.preferredFormat)); + } + } + + function dragStart() { + if (dragHeight <= 0 || dragWidth <= 0 || slideHeight <= 0) { + reflow(); + } + container.addClass(draggingClass); + shiftMovementDirection = null; + boundElement.trigger('dragstart.spectrum', [ get() ]); + } + + function dragStop() { + container.removeClass(draggingClass); + boundElement.trigger('dragstop.spectrum', [ get() ]); + } + + function setFromTextInput() { + + var value = textInput.val(); + + if ((value === null || value === "") && allowEmpty) { + set(null); + updateOriginalInput(true); + } + else { + var tiny = tinycolor(value); + if (tiny.ok) { + set(tiny); + updateOriginalInput(true); + } + else { + textInput.addClass("sp-validation-error"); + } + } + } + + function toggle() { + if (visible) { + hide(); + } + else { + show(); + } + } + + function show() { + var event = $.Event('beforeShow.spectrum'); + + if (visible) { + reflow(); + return; + } + + boundElement.trigger(event, [ get() ]); + + if (callbacks.beforeShow(get()) === false || event.isDefaultPrevented()) { + return; + } + + hideAll(); + visible = true; + + $(doc).bind("click.spectrum", hide); + $(window).bind("resize.spectrum", resize); + replacer.addClass("sp-active"); + container.removeClass("sp-hidden"); + + reflow(); + updateUI(); + + colorOnShow = get(); + + drawInitial(); + callbacks.show(colorOnShow); + boundElement.trigger('show.spectrum', [ colorOnShow ]); + } + + function hide(e) { + + // Return on right click + if (e && e.type == "click" && e.button == 2) { return; } + + // Return if hiding is unnecessary + if (!visible || flat) { return; } + visible = false; + + $(doc).unbind("click.spectrum", hide); + $(window).unbind("resize.spectrum", resize); + + replacer.removeClass("sp-active"); + container.addClass("sp-hidden"); + + var colorHasChanged = !tinycolor.equals(get(), colorOnShow); + + if (colorHasChanged) { + if (clickoutFiresChange && e !== "cancel") { + updateOriginalInput(true); + } + else { + revert(); + } + } + + callbacks.hide(get()); + boundElement.trigger('hide.spectrum', [ get() ]); + } + + function revert() { + set(colorOnShow, true); + } + + function set(color, ignoreFormatChange) { + if (tinycolor.equals(color, get())) { + // Update UI just in case a validation error needs + // to be cleared. + updateUI(); + return; + } + + var newColor, newHsv; + if (!color && allowEmpty) { + isEmpty = true; + } else { + isEmpty = false; + newColor = tinycolor(color); + newHsv = newColor.toHsv(); + + currentHue = (newHsv.h % 360) / 360; + currentSaturation = newHsv.s; + currentValue = newHsv.v; + currentAlpha = newHsv.a; + } + updateUI(); + + if (newColor && newColor.ok && !ignoreFormatChange) { + currentPreferredFormat = preferredFormat || newColor.format; + } + } + + function get(opts) { + opts = opts || { }; + + if (allowEmpty && isEmpty) { + return null; + } + + return tinycolor.fromRatio({ + h: currentHue, + s: currentSaturation, + v: currentValue, + a: Math.round(currentAlpha * 100) / 100 + }, { format: opts.format || currentPreferredFormat }); + } + + function isValid() { + return !textInput.hasClass("sp-validation-error"); + } + + function move() { + updateUI(); + + callbacks.move(get()); + boundElement.trigger('move.spectrum', [ get() ]); + } + + function updateUI() { + + textInput.removeClass("sp-validation-error"); + + updateHelperLocations(); + + // Update dragger background color (gradients take care of saturation and value). + var flatColor = tinycolor.fromRatio({ h: currentHue, s: 1, v: 1 }); + dragger.css("background-color", flatColor.toHexString()); + + // Get a format that alpha will be included in (hex and names ignore alpha) + var format = currentPreferredFormat; + if (currentAlpha < 1 && !(currentAlpha === 0 && format === "name")) { + if (format === "hex" || format === "hex3" || format === "hex6" || format === "name") { + format = "rgb"; + } + } + + var realColor = get({ format: format }), + displayColor = ''; + + //reset background info for preview element + previewElement.removeClass("sp-clear-display"); + previewElement.css('background-color', 'transparent'); + + if (!realColor && allowEmpty) { + // Update the replaced elements background with icon indicating no color selection + previewElement.addClass("sp-clear-display"); + } + else { + var realHex = realColor.toHexString(), + realRgb = realColor.toRgbString(); + + // Update the replaced elements background color (with actual selected color) + if (rgbaSupport || realColor.alpha === 1) { + previewElement.css("background-color", realRgb); + } + else { + previewElement.css("background-color", "transparent"); + previewElement.css("filter", realColor.toFilter()); + } + + if (opts.showAlpha) { + var rgb = realColor.toRgb(); + rgb.a = 0; + var realAlpha = tinycolor(rgb).toRgbString(); + var gradient = "linear-gradient(left, " + realAlpha + ", " + realHex + ")"; + + if (IE) { + alphaSliderInner.css("filter", tinycolor(realAlpha).toFilter({ gradientType: 1 }, realHex)); + } + else { + alphaSliderInner.css("background", "-webkit-" + gradient); + alphaSliderInner.css("background", "-moz-" + gradient); + alphaSliderInner.css("background", "-ms-" + gradient); + // Use current syntax gradient on unprefixed property. + alphaSliderInner.css("background", + "linear-gradient(to right, " + realAlpha + ", " + realHex + ")"); + } + } + + displayColor = realColor.toString(format); + } + + // Update the text entry input as it changes happen + if (opts.showInput) { + textInput.val(displayColor); + } + + if (opts.showPalette) { + drawPalette(); + } + + drawInitial(); + } + + function updateHelperLocations() { + var s = currentSaturation; + var v = currentValue; + + if(allowEmpty && isEmpty) { + //if selected color is empty, hide the helpers + alphaSlideHelper.hide(); + slideHelper.hide(); + dragHelper.hide(); + } + else { + //make sure helpers are visible + alphaSlideHelper.show(); + slideHelper.show(); + dragHelper.show(); + + // Where to show the little circle in that displays your current selected color + var dragX = s * dragWidth; + var dragY = dragHeight - (v * dragHeight); + dragX = Math.max( + -dragHelperHeight, + Math.min(dragWidth - dragHelperHeight, dragX - dragHelperHeight) + ); + dragY = Math.max( + -dragHelperHeight, + Math.min(dragHeight - dragHelperHeight, dragY - dragHelperHeight) + ); + dragHelper.css({ + "top": dragY + "px", + "left": dragX + "px" + }); + + var alphaX = currentAlpha * alphaWidth; + alphaSlideHelper.css({ + "left": (alphaX - (alphaSlideHelperWidth / 2)) + "px" + }); + + // Where to show the bar that displays your current selected hue + var slideY = (currentHue) * slideHeight; + slideHelper.css({ + "top": (slideY - slideHelperHeight) + "px" + }); + } + } + + function updateOriginalInput(fireCallback) { + var color = get(), + displayColor = '', + hasChanged = !tinycolor.equals(color, colorOnShow); + + if (color) { + displayColor = color.toString(currentPreferredFormat); + // Update the selection palette with the current color + addColorToSelectionPalette(color); + } + + if (isInput) { + boundElement.val(displayColor); + } + + colorOnShow = color; + + if (fireCallback && hasChanged) { + callbacks.change(color); + boundElement.trigger('change', [ color ]); + } + } + + function reflow() { + dragWidth = dragger.width(); + dragHeight = dragger.height(); + dragHelperHeight = dragHelper.height(); + slideWidth = slider.width(); + slideHeight = slider.height(); + slideHelperHeight = slideHelper.height(); + alphaWidth = alphaSlider.width(); + alphaSlideHelperWidth = alphaSlideHelper.width(); + + if (!flat) { + container.css("position", "absolute"); + container.offset(getOffset(container, offsetElement)); + } + + updateHelperLocations(); + + if (opts.showPalette) { + drawPalette(); + } + + boundElement.trigger('reflow.spectrum'); + } + + function destroy() { + boundElement.show(); + offsetElement.unbind("click.spectrum touchstart.spectrum"); + container.remove(); + replacer.remove(); + spectrums[spect.id] = null; + } + + function option(optionName, optionValue) { + if (optionName === undefined) { + return $.extend({}, opts); + } + if (optionValue === undefined) { + return opts[optionName]; + } + + opts[optionName] = optionValue; + applyOptions(); + } + + function enable() { + disabled = false; + boundElement.attr("disabled", false); + offsetElement.removeClass("sp-disabled"); + } + + function disable() { + hide(); + disabled = true; + boundElement.attr("disabled", true); + offsetElement.addClass("sp-disabled"); + } + + initialize(); + + var spect = { + show: show, + hide: hide, + toggle: toggle, + reflow: reflow, + option: option, + enable: enable, + disable: disable, + set: function (c) { + set(c); + updateOriginalInput(); + }, + get: get, + destroy: destroy, + container: container + }; + + spect.id = spectrums.push(spect) - 1; + + return spect; + } + + /** + * checkOffset - get the offset below/above and left/right element depending on screen position + * Thanks https://github.com/jquery/jquery-ui/blob/master/ui/jquery.ui.datepicker.js + */ + function getOffset(picker, input) { + var extraY = 0; + var dpWidth = picker.outerWidth(); + var dpHeight = picker.outerHeight(); + var inputHeight = input.outerHeight(); + var doc = picker[0].ownerDocument; + var docElem = doc.documentElement; + var viewWidth = docElem.clientWidth + $(doc).scrollLeft(); + var viewHeight = docElem.clientHeight + $(doc).scrollTop(); + var offset = input.offset(); + offset.top += inputHeight; + + offset.left -= + Math.min(offset.left, (offset.left + dpWidth > viewWidth && viewWidth > dpWidth) ? + Math.abs(offset.left + dpWidth - viewWidth) : 0); + + offset.top -= + Math.min(offset.top, ((offset.top + dpHeight > viewHeight && viewHeight > dpHeight) ? + Math.abs(dpHeight + inputHeight - extraY) : extraY)); + + return offset; + } + + /** + * noop - do nothing + */ + function noop() { + + } + + /** + * stopPropagation - makes the code only doing this a little easier to read in line + */ + function stopPropagation(e) { + e.stopPropagation(); + } + + /** + * Create a function bound to a given object + * Thanks to underscore.js + */ + function bind(func, obj) { + var slice = Array.prototype.slice; + var args = slice.call(arguments, 2); + return function () { + return func.apply(obj, args.concat(slice.call(arguments))); + }; + } + + /** + * Lightweight drag helper. Handles containment within the element, so that + * when dragging, the x is within [0,element.width] and y is within [0,element.height] + */ + function draggable(element, onmove, onstart, onstop) { + onmove = onmove || function () { }; + onstart = onstart || function () { }; + onstop = onstop || function () { }; + var doc = element.ownerDocument || document; + var dragging = false; + var offset = {}; + var maxHeight = 0; + var maxWidth = 0; + var hasTouch = ('ontouchstart' in window); + + var duringDragEvents = {}; + duringDragEvents["selectstart"] = prevent; + duringDragEvents["dragstart"] = prevent; + duringDragEvents["touchmove mousemove"] = move; + duringDragEvents["touchend mouseup"] = stop; + + function prevent(e) { + if (e.stopPropagation) { + e.stopPropagation(); + } + if (e.preventDefault) { + e.preventDefault(); + } + e.returnValue = false; + } + + function move(e) { + if (dragging) { + // Mouseup happened outside of window + if (IE && document.documentMode < 9 && !e.button) { + return stop(); + } + + var touches = e.originalEvent.touches; + var pageX = touches ? touches[0].pageX : e.pageX; + var pageY = touches ? touches[0].pageY : e.pageY; + + var dragX = Math.max(0, Math.min(pageX - offset.left, maxWidth)); + var dragY = Math.max(0, Math.min(pageY - offset.top, maxHeight)); + + if (hasTouch) { + // Stop scrolling in iOS + prevent(e); + } + + onmove.apply(element, [dragX, dragY, e]); + } + } + + function start(e) { + var rightclick = (e.which) ? (e.which == 3) : (e.button == 2); + var touches = e.originalEvent.touches; + + if (!rightclick && !dragging) { + if (onstart.apply(element, arguments) !== false) { + dragging = true; + maxHeight = $(element).height(); + maxWidth = $(element).width(); + offset = $(element).offset(); + + $(doc).bind(duringDragEvents); + $(doc.body).addClass("sp-dragging"); + + if (!hasTouch) { + move(e); + } + + prevent(e); + } + } + } + + function stop() { + if (dragging) { + $(doc).unbind(duringDragEvents); + $(doc.body).removeClass("sp-dragging"); + onstop.apply(element, arguments); + } + dragging = false; + } + + $(element).bind("touchstart mousedown", start); + } + + function throttle(func, wait, debounce) { + var timeout; + return function () { + var context = this, args = arguments; + var throttler = function () { + timeout = null; + func.apply(context, args); + }; + if (debounce) clearTimeout(timeout); + if (debounce || !timeout) timeout = setTimeout(throttler, wait); + }; + } + + function log(){/* jshint -W021 */if(window.console){if(Function.prototype.bind)log=Function.prototype.bind.call(console.log,console);else log=function(){Function.prototype.apply.call(console.log,console,arguments);};log.apply(this,arguments);}} + + /** + * Define a jQuery plugin + */ + var dataID = "spectrum.id"; + $.fn.spectrum = function (opts, extra) { + + if (typeof opts == "string") { + + var returnValue = this; + var args = Array.prototype.slice.call( arguments, 1 ); + + this.each(function () { + var spect = spectrums[$(this).data(dataID)]; + if (spect) { + var method = spect[opts]; + if (!method) { + throw new Error( "Spectrum: no such method: '" + opts + "'" ); + } + + if (opts == "get") { + returnValue = spect.get(); + } + else if (opts == "container") { + returnValue = spect.container; + } + else if (opts == "option") { + returnValue = spect.option.apply(spect, args); + } + else if (opts == "destroy") { + spect.destroy(); + $(this).removeData(dataID); + } + else { + method.apply(spect, args); + } + } + }); + + return returnValue; + } + + // Initializing a new instance of spectrum + return this.spectrum("destroy").each(function () { + var options = $.extend({}, opts, $(this).data()); + var spect = spectrum(this, options); + $(this).data(dataID, spect.id); + }); + }; + + $.fn.spectrum.load = true; + $.fn.spectrum.loadOpts = {}; + $.fn.spectrum.draggable = draggable; + $.fn.spectrum.defaults = defaultOpts; + + $.spectrum = { }; + $.spectrum.localization = { }; + $.spectrum.palettes = { }; + + $.fn.spectrum.processNativeColorInputs = function () { + if (!inputTypeColorSupport) { + $("input[type=color]").spectrum({ + preferredFormat: "hex6" + }); + } + }; + + // TinyColor v0.9.17 + // https://github.com/bgrins/TinyColor + // 2013-08-10, Brian Grinstead, MIT License + + (function() { + + var trimLeft = /^[\s,#]+/, + trimRight = /\s+$/, + tinyCounter = 0, + math = Math, + mathRound = math.round, + mathMin = math.min, + mathMax = math.max, + mathRandom = math.random; + + function tinycolor (color, opts) { + + color = (color) ? color : ''; + opts = opts || { }; + + // If input is already a tinycolor, return itself + if (typeof color == "object" && color.hasOwnProperty("_tc_id")) { + return color; + } + + var rgb = inputToRGB(color); + var r = rgb.r, + g = rgb.g, + b = rgb.b, + a = rgb.a, + roundA = mathRound(100*a) / 100, + format = opts.format || rgb.format; + + // Don't let the range of [0,255] come back in [0,1]. + // Potentially lose a little bit of precision here, but will fix issues where + // .5 gets interpreted as half of the total, instead of half of 1 + // If it was supposed to be 128, this was already taken care of by `inputToRgb` + if (r < 1) { r = mathRound(r); } + if (g < 1) { g = mathRound(g); } + if (b < 1) { b = mathRound(b); } + + return { + ok: rgb.ok, + format: format, + _tc_id: tinyCounter++, + alpha: a, + getAlpha: function() { + return a; + }, + setAlpha: function(value) { + a = boundAlpha(value); + roundA = mathRound(100*a) / 100; + }, + toHsv: function() { + var hsv = rgbToHsv(r, g, b); + return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: a }; + }, + toHsvString: function() { + var hsv = rgbToHsv(r, g, b); + var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100); + return (a == 1) ? + "hsv(" + h + ", " + s + "%, " + v + "%)" : + "hsva(" + h + ", " + s + "%, " + v + "%, "+ roundA + ")"; + }, + toHsl: function() { + var hsl = rgbToHsl(r, g, b); + return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: a }; + }, + toHslString: function() { + var hsl = rgbToHsl(r, g, b); + var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100); + return (a == 1) ? + "hsl(" + h + ", " + s + "%, " + l + "%)" : + "hsla(" + h + ", " + s + "%, " + l + "%, "+ roundA + ")"; + }, + toHex: function(allow3Char) { + return rgbToHex(r, g, b, allow3Char); + }, + toHexString: function(allow3Char) { + return '#' + this.toHex(allow3Char); + }, + toHex8: function() { + return rgbaToHex(r, g, b, a); + }, + toHex8String: function() { + return '#' + this.toHex8(); + }, + toRgb: function() { + return { r: mathRound(r), g: mathRound(g), b: mathRound(b), a: a }; + }, + toRgbString: function() { + return (a == 1) ? + "rgb(" + mathRound(r) + ", " + mathRound(g) + ", " + mathRound(b) + ")" : + "rgba(" + mathRound(r) + ", " + mathRound(g) + ", " + mathRound(b) + ", " + roundA + ")"; + }, + toPercentageRgb: function() { + return { r: mathRound(bound01(r, 255) * 100) + "%", g: mathRound(bound01(g, 255) * 100) + "%", b: mathRound(bound01(b, 255) * 100) + "%", a: a }; + }, + toPercentageRgbString: function() { + return (a == 1) ? + "rgb(" + mathRound(bound01(r, 255) * 100) + "%, " + mathRound(bound01(g, 255) * 100) + "%, " + mathRound(bound01(b, 255) * 100) + "%)" : + "rgba(" + mathRound(bound01(r, 255) * 100) + "%, " + mathRound(bound01(g, 255) * 100) + "%, " + mathRound(bound01(b, 255) * 100) + "%, " + roundA + ")"; + }, + toName: function() { + if (a === 0) { + return "transparent"; + } + + return hexNames[rgbToHex(r, g, b, true)] || false; + }, + toFilter: function(secondColor) { + var hex8String = '#' + rgbaToHex(r, g, b, a); + var secondHex8String = hex8String; + var gradientType = opts && opts.gradientType ? "GradientType = 1, " : ""; + + if (secondColor) { + var s = tinycolor(secondColor); + secondHex8String = s.toHex8String(); + } + + return "progid:DXImageTransform.Microsoft.gradient("+gradientType+"startColorstr="+hex8String+",endColorstr="+secondHex8String+")"; + }, + toString: function(format) { + var formatSet = !!format; + format = format || this.format; + + var formattedString = false; + var hasAlphaAndFormatNotSet = !formatSet && a < 1 && a > 0; + var formatWithAlpha = hasAlphaAndFormatNotSet && (format === "hex" || format === "hex6" || format === "hex3" || format === "name"); + + if (format === "rgb") { + formattedString = this.toRgbString(); + } + if (format === "prgb") { + formattedString = this.toPercentageRgbString(); + } + if (format === "hex" || format === "hex6") { + formattedString = this.toHexString(); + } + if (format === "hex3") { + formattedString = this.toHexString(true); + } + if (format === "hex8") { + formattedString = this.toHex8String(); + } + if (format === "name") { + formattedString = this.toName(); + } + if (format === "hsl") { + formattedString = this.toHslString(); + } + if (format === "hsv") { + formattedString = this.toHsvString(); + } + + if (formatWithAlpha) { + return this.toRgbString(); + } + + return formattedString || this.toHexString(); + } + }; + } + + // If input is an object, force 1 into "1.0" to handle ratios properly + // String input requires "1.0" as input, so 1 will be treated as 1 + tinycolor.fromRatio = function(color, opts) { + if (typeof color == "object") { + var newColor = {}; + for (var i in color) { + if (color.hasOwnProperty(i)) { + if (i === "a") { + newColor[i] = color[i]; + } + else { + newColor[i] = convertToPercentage(color[i]); + } + } + } + color = newColor; + } + + return tinycolor(color, opts); + }; + + // Given a string or object, convert that input to RGB + // Possible string inputs: + // + // "red" + // "#f00" or "f00" + // "#ff0000" or "ff0000" + // "#ff000000" or "ff000000" + // "rgb 255 0 0" or "rgb (255, 0, 0)" + // "rgb 1.0 0 0" or "rgb (1, 0, 0)" + // "rgba (255, 0, 0, 1)" or "rgba 255, 0, 0, 1" + // "rgba (1.0, 0, 0, 1)" or "rgba 1.0, 0, 0, 1" + // "hsl(0, 100%, 50%)" or "hsl 0 100% 50%" + // "hsla(0, 100%, 50%, 1)" or "hsla 0 100% 50%, 1" + // "hsv(0, 100%, 100%)" or "hsv 0 100% 100%" + // + function inputToRGB(color) { + + var rgb = { r: 0, g: 0, b: 0 }; + var a = 1; + var ok = false; + var format = false; + + if (typeof color == "string") { + color = stringInputToObject(color); + } + + if (typeof color == "object") { + if (color.hasOwnProperty("r") && color.hasOwnProperty("g") && color.hasOwnProperty("b")) { + rgb = rgbToRgb(color.r, color.g, color.b); + ok = true; + format = String(color.r).substr(-1) === "%" ? "prgb" : "rgb"; + } + else if (color.hasOwnProperty("h") && color.hasOwnProperty("s") && color.hasOwnProperty("v")) { + color.s = convertToPercentage(color.s); + color.v = convertToPercentage(color.v); + rgb = hsvToRgb(color.h, color.s, color.v); + ok = true; + format = "hsv"; + } + else if (color.hasOwnProperty("h") && color.hasOwnProperty("s") && color.hasOwnProperty("l")) { + color.s = convertToPercentage(color.s); + color.l = convertToPercentage(color.l); + rgb = hslToRgb(color.h, color.s, color.l); + ok = true; + format = "hsl"; + } + + if (color.hasOwnProperty("a")) { + a = color.a; + } + } + + a = boundAlpha(a); + + return { + ok: ok, + format: color.format || format, + r: mathMin(255, mathMax(rgb.r, 0)), + g: mathMin(255, mathMax(rgb.g, 0)), + b: mathMin(255, mathMax(rgb.b, 0)), + a: a + }; + } + + + // Conversion Functions + // -------------------- + + // `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from: + // + + // `rgbToRgb` + // Handle bounds / percentage checking to conform to CSS color spec + // + // *Assumes:* r, g, b in [0, 255] or [0, 1] + // *Returns:* { r, g, b } in [0, 255] + function rgbToRgb(r, g, b){ + return { + r: bound01(r, 255) * 255, + g: bound01(g, 255) * 255, + b: bound01(b, 255) * 255 + }; + } + + // `rgbToHsl` + // Converts an RGB color value to HSL. + // *Assumes:* r, g, and b are contained in [0, 255] or [0, 1] + // *Returns:* { h, s, l } in [0,1] + function rgbToHsl(r, g, b) { + + r = bound01(r, 255); + g = bound01(g, 255); + b = bound01(b, 255); + + var max = mathMax(r, g, b), min = mathMin(r, g, b); + var h, s, l = (max + min) / 2; + + if(max == min) { + h = s = 0; // achromatic + } + else { + var d = max - min; + s = l > 0.5 ? d / (2 - max - min) : d / (max + min); + switch(max) { + case r: h = (g - b) / d + (g < b ? 6 : 0); break; + case g: h = (b - r) / d + 2; break; + case b: h = (r - g) / d + 4; break; + } + + h /= 6; + } + + return { h: h, s: s, l: l }; + } + + // `hslToRgb` + // Converts an HSL color value to RGB. + // *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100] + // *Returns:* { r, g, b } in the set [0, 255] + function hslToRgb(h, s, l) { + var r, g, b; + + h = bound01(h, 360); + s = bound01(s, 100); + l = bound01(l, 100); + + function hue2rgb(p, q, t) { + if(t < 0) t += 1; + if(t > 1) t -= 1; + if(t < 1/6) return p + (q - p) * 6 * t; + if(t < 1/2) return q; + if(t < 2/3) return p + (q - p) * (2/3 - t) * 6; + return p; + } + + if(s === 0) { + r = g = b = l; // achromatic + } + else { + var q = l < 0.5 ? l * (1 + s) : l + s - l * s; + var p = 2 * l - q; + r = hue2rgb(p, q, h + 1/3); + g = hue2rgb(p, q, h); + b = hue2rgb(p, q, h - 1/3); + } + + return { r: r * 255, g: g * 255, b: b * 255 }; + } + + // `rgbToHsv` + // Converts an RGB color value to HSV + // *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1] + // *Returns:* { h, s, v } in [0,1] + function rgbToHsv(r, g, b) { + + r = bound01(r, 255); + g = bound01(g, 255); + b = bound01(b, 255); + + var max = mathMax(r, g, b), min = mathMin(r, g, b); + var h, s, v = max; + + var d = max - min; + s = max === 0 ? 0 : d / max; + + if(max == min) { + h = 0; // achromatic + } + else { + switch(max) { + case r: h = (g - b) / d + (g < b ? 6 : 0); break; + case g: h = (b - r) / d + 2; break; + case b: h = (r - g) / d + 4; break; + } + h /= 6; + } + return { h: h, s: s, v: v }; + } + + // `hsvToRgb` + // Converts an HSV color value to RGB. + // *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100] + // *Returns:* { r, g, b } in the set [0, 255] + function hsvToRgb(h, s, v) { + + h = bound01(h, 360) * 6; + s = bound01(s, 100); + v = bound01(v, 100); + + var i = math.floor(h), + f = h - i, + p = v * (1 - s), + q = v * (1 - f * s), + t = v * (1 - (1 - f) * s), + mod = i % 6, + r = [v, q, p, p, t, v][mod], + g = [t, v, v, q, p, p][mod], + b = [p, p, t, v, v, q][mod]; + + return { r: r * 255, g: g * 255, b: b * 255 }; + } + + // `rgbToHex` + // Converts an RGB color to hex + // Assumes r, g, and b are contained in the set [0, 255] + // Returns a 3 or 6 character hex + function rgbToHex(r, g, b, allow3Char) { + + var hex = [ + pad2(mathRound(r).toString(16)), + pad2(mathRound(g).toString(16)), + pad2(mathRound(b).toString(16)) + ]; + + // Return a 3 character hex if possible + if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) { + return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0); + } + + return hex.join(""); + } + // `rgbaToHex` + // Converts an RGBA color plus alpha transparency to hex + // Assumes r, g, b and a are contained in the set [0, 255] + // Returns an 8 character hex + function rgbaToHex(r, g, b, a) { + + var hex = [ + pad2(convertDecimalToHex(a)), + pad2(mathRound(r).toString(16)), + pad2(mathRound(g).toString(16)), + pad2(mathRound(b).toString(16)) + ]; + + return hex.join(""); + } + + // `equals` + // Can be called with any tinycolor input + tinycolor.equals = function (color1, color2) { + if (!color1 || !color2) { return false; } + return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString(); + }; + tinycolor.random = function() { + return tinycolor.fromRatio({ + r: mathRandom(), + g: mathRandom(), + b: mathRandom() + }); + }; + + + // Modification Functions + // ---------------------- + // Thanks to less.js for some of the basics here + // + + tinycolor.desaturate = function (color, amount) { + amount = (amount === 0) ? 0 : (amount || 10); + var hsl = tinycolor(color).toHsl(); + hsl.s -= amount / 100; + hsl.s = clamp01(hsl.s); + return tinycolor(hsl); + }; + tinycolor.saturate = function (color, amount) { + amount = (amount === 0) ? 0 : (amount || 10); + var hsl = tinycolor(color).toHsl(); + hsl.s += amount / 100; + hsl.s = clamp01(hsl.s); + return tinycolor(hsl); + }; + tinycolor.greyscale = function(color) { + return tinycolor.desaturate(color, 100); + }; + tinycolor.lighten = function(color, amount) { + amount = (amount === 0) ? 0 : (amount || 10); + var hsl = tinycolor(color).toHsl(); + hsl.l += amount / 100; + hsl.l = clamp01(hsl.l); + return tinycolor(hsl); + }; + tinycolor.darken = function (color, amount) { + amount = (amount === 0) ? 0 : (amount || 10); + var hsl = tinycolor(color).toHsl(); + hsl.l -= amount / 100; + hsl.l = clamp01(hsl.l); + return tinycolor(hsl); + }; + tinycolor.complement = function(color) { + var hsl = tinycolor(color).toHsl(); + hsl.h = (hsl.h + 180) % 360; + return tinycolor(hsl); + }; + + + // Combination Functions + // --------------------- + // Thanks to jQuery xColor for some of the ideas behind these + // + + tinycolor.triad = function(color) { + var hsl = tinycolor(color).toHsl(); + var h = hsl.h; + return [ + tinycolor(color), + tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }), + tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l }) + ]; + }; + tinycolor.tetrad = function(color) { + var hsl = tinycolor(color).toHsl(); + var h = hsl.h; + return [ + tinycolor(color), + tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }), + tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }), + tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l }) + ]; + }; + tinycolor.splitcomplement = function(color) { + var hsl = tinycolor(color).toHsl(); + var h = hsl.h; + return [ + tinycolor(color), + tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}), + tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l}) + ]; + }; + tinycolor.analogous = function(color, results, slices) { + results = results || 6; + slices = slices || 30; + + var hsl = tinycolor(color).toHsl(); + var part = 360 / slices; + var ret = [tinycolor(color)]; + + for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) { + hsl.h = (hsl.h + part) % 360; + ret.push(tinycolor(hsl)); + } + return ret; + }; + tinycolor.monochromatic = function(color, results) { + results = results || 6; + var hsv = tinycolor(color).toHsv(); + var h = hsv.h, s = hsv.s, v = hsv.v; + var ret = []; + var modification = 1 / results; + + while (results--) { + ret.push(tinycolor({ h: h, s: s, v: v})); + v = (v + modification) % 1; + } + + return ret; + }; + + + // Readability Functions + // --------------------- + // + + // `readability` + // Analyze the 2 colors and returns an object with the following properties: + // `brightness`: difference in brightness between the two colors + // `color`: difference in color/hue between the two colors + tinycolor.readability = function(color1, color2) { + var a = tinycolor(color1).toRgb(); + var b = tinycolor(color2).toRgb(); + var brightnessA = (a.r * 299 + a.g * 587 + a.b * 114) / 1000; + var brightnessB = (b.r * 299 + b.g * 587 + b.b * 114) / 1000; + var colorDiff = ( + Math.max(a.r, b.r) - Math.min(a.r, b.r) + + Math.max(a.g, b.g) - Math.min(a.g, b.g) + + Math.max(a.b, b.b) - Math.min(a.b, b.b) + ); + + return { + brightness: Math.abs(brightnessA - brightnessB), + color: colorDiff + }; + }; + + // `readable` + // http://www.w3.org/TR/AERT#color-contrast + // Ensure that foreground and background color combinations provide sufficient contrast. + // *Example* + // tinycolor.readable("#000", "#111") => false + tinycolor.readable = function(color1, color2) { + var readability = tinycolor.readability(color1, color2); + return readability.brightness > 125 && readability.color > 500; + }; + + // `mostReadable` + // Given a base color and a list of possible foreground or background + // colors for that base, returns the most readable color. + // *Example* + // tinycolor.mostReadable("#123", ["#fff", "#000"]) => "#000" + tinycolor.mostReadable = function(baseColor, colorList) { + var bestColor = null; + var bestScore = 0; + var bestIsReadable = false; + for (var i=0; i < colorList.length; i++) { + + // We normalize both around the "acceptable" breaking point, + // but rank brightness constrast higher than hue. + + var readability = tinycolor.readability(baseColor, colorList[i]); + var readable = readability.brightness > 125 && readability.color > 500; + var score = 3 * (readability.brightness / 125) + (readability.color / 500); + + if ((readable && ! bestIsReadable) || + (readable && bestIsReadable && score > bestScore) || + ((! readable) && (! bestIsReadable) && score > bestScore)) { + bestIsReadable = readable; + bestScore = score; + bestColor = tinycolor(colorList[i]); + } + } + return bestColor; + }; + + + // Big List of Colors + // ------------------ + // + var names = tinycolor.names = { + aliceblue: "f0f8ff", + antiquewhite: "faebd7", + aqua: "0ff", + aquamarine: "7fffd4", + azure: "f0ffff", + beige: "f5f5dc", + bisque: "ffe4c4", + black: "000", + blanchedalmond: "ffebcd", + blue: "00f", + blueviolet: "8a2be2", + brown: "a52a2a", + burlywood: "deb887", + burntsienna: "ea7e5d", + cadetblue: "5f9ea0", + chartreuse: "7fff00", + chocolate: "d2691e", + coral: "ff7f50", + cornflowerblue: "6495ed", + cornsilk: "fff8dc", + crimson: "dc143c", + cyan: "0ff", + darkblue: "00008b", + darkcyan: "008b8b", + darkgoldenrod: "b8860b", + darkgray: "a9a9a9", + darkgreen: "006400", + darkgrey: "a9a9a9", + darkkhaki: "bdb76b", + darkmagenta: "8b008b", + darkolivegreen: "556b2f", + darkorange: "ff8c00", + darkorchid: "9932cc", + darkred: "8b0000", + darksalmon: "e9967a", + darkseagreen: "8fbc8f", + darkslateblue: "483d8b", + darkslategray: "2f4f4f", + darkslategrey: "2f4f4f", + darkturquoise: "00ced1", + darkviolet: "9400d3", + deeppink: "ff1493", + deepskyblue: "00bfff", + dimgray: "696969", + dimgrey: "696969", + dodgerblue: "1e90ff", + firebrick: "b22222", + floralwhite: "fffaf0", + forestgreen: "228b22", + fuchsia: "f0f", + gainsboro: "dcdcdc", + ghostwhite: "f8f8ff", + gold: "ffd700", + goldenrod: "daa520", + gray: "808080", + green: "008000", + greenyellow: "adff2f", + grey: "808080", + honeydew: "f0fff0", + hotpink: "ff69b4", + indianred: "cd5c5c", + indigo: "4b0082", + ivory: "fffff0", + khaki: "f0e68c", + lavender: "e6e6fa", + lavenderblush: "fff0f5", + lawngreen: "7cfc00", + lemonchiffon: "fffacd", + lightblue: "add8e6", + lightcoral: "f08080", + lightcyan: "e0ffff", + lightgoldenrodyellow: "fafad2", + lightgray: "d3d3d3", + lightgreen: "90ee90", + lightgrey: "d3d3d3", + lightpink: "ffb6c1", + lightsalmon: "ffa07a", + lightseagreen: "20b2aa", + lightskyblue: "87cefa", + lightslategray: "789", + lightslategrey: "789", + lightsteelblue: "b0c4de", + lightyellow: "ffffe0", + lime: "0f0", + limegreen: "32cd32", + linen: "faf0e6", + magenta: "f0f", + maroon: "800000", + mediumaquamarine: "66cdaa", + mediumblue: "0000cd", + mediumorchid: "ba55d3", + mediumpurple: "9370db", + mediumseagreen: "3cb371", + mediumslateblue: "7b68ee", + mediumspringgreen: "00fa9a", + mediumturquoise: "48d1cc", + mediumvioletred: "c71585", + midnightblue: "191970", + mintcream: "f5fffa", + mistyrose: "ffe4e1", + moccasin: "ffe4b5", + navajowhite: "ffdead", + navy: "000080", + oldlace: "fdf5e6", + olive: "808000", + olivedrab: "6b8e23", + orange: "ffa500", + orangered: "ff4500", + orchid: "da70d6", + palegoldenrod: "eee8aa", + palegreen: "98fb98", + paleturquoise: "afeeee", + palevioletred: "db7093", + papayawhip: "ffefd5", + peachpuff: "ffdab9", + peru: "cd853f", + pink: "ffc0cb", + plum: "dda0dd", + powderblue: "b0e0e6", + purple: "800080", + red: "f00", + rosybrown: "bc8f8f", + royalblue: "4169e1", + saddlebrown: "8b4513", + salmon: "fa8072", + sandybrown: "f4a460", + seagreen: "2e8b57", + seashell: "fff5ee", + sienna: "a0522d", + silver: "c0c0c0", + skyblue: "87ceeb", + slateblue: "6a5acd", + slategray: "708090", + slategrey: "708090", + snow: "fffafa", + springgreen: "00ff7f", + steelblue: "4682b4", + tan: "d2b48c", + teal: "008080", + thistle: "d8bfd8", + tomato: "ff6347", + turquoise: "40e0d0", + violet: "ee82ee", + wheat: "f5deb3", + white: "fff", + whitesmoke: "f5f5f5", + yellow: "ff0", + yellowgreen: "9acd32" + }; + + // Make it easy to access colors via `hexNames[hex]` + var hexNames = tinycolor.hexNames = flip(names); + + + // Utilities + // --------- + + // `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }` + function flip(o) { + var flipped = { }; + for (var i in o) { + if (o.hasOwnProperty(i)) { + flipped[o[i]] = i; + } + } + return flipped; + } + + // Return a valid alpha value [0,1] with all invalid values being set to 1 + function boundAlpha(a) { + a = parseFloat(a); + + if (isNaN(a) || a < 0 || a > 1) { + a = 1; + } + + return a; + } + + // Take input from [0, n] and return it as [0, 1] + function bound01(n, max) { + if (isOnePointZero(n)) { n = "100%"; } + + var processPercent = isPercentage(n); + n = mathMin(max, mathMax(0, parseFloat(n))); + + // Automatically convert percentage into number + if (processPercent) { + n = parseInt(n * max, 10) / 100; + } + + // Handle floating point rounding errors + if ((math.abs(n - max) < 0.000001)) { + return 1; + } + + // Convert into [0, 1] range if it isn't already + return (n % max) / parseFloat(max); + } + + // Force a number between 0 and 1 + function clamp01(val) { + return mathMin(1, mathMax(0, val)); + } + + // Parse a base-16 hex value into a base-10 integer + function parseIntFromHex(val) { + return parseInt(val, 16); + } + + // Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1 + // + function isOnePointZero(n) { + return typeof n == "string" && n.indexOf('.') != -1 && parseFloat(n) === 1; + } + + // Check to see if string passed in is a percentage + function isPercentage(n) { + return typeof n === "string" && n.indexOf('%') != -1; + } + + // Force a hex value to have 2 characters + function pad2(c) { + return c.length == 1 ? '0' + c : '' + c; + } + + // Replace a decimal with it's percentage value + function convertToPercentage(n) { + if (n <= 1) { + n = (n * 100) + "%"; + } + + return n; + } + + // Converts a decimal to a hex value + function convertDecimalToHex(d) { + return Math.round(parseFloat(d) * 255).toString(16); + } + // Converts a hex value to a decimal + function convertHexToDecimal(h) { + return (parseIntFromHex(h) / 255); + } + + var matchers = (function() { + + // + var CSS_INTEGER = "[-\\+]?\\d+%?"; + + // + var CSS_NUMBER = "[-\\+]?\\d*\\.\\d+%?"; + + // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome. + var CSS_UNIT = "(?:" + CSS_NUMBER + ")|(?:" + CSS_INTEGER + ")"; + + // Actual matching. + // Parentheses and commas are optional, but not required. + // Whitespace can take the place of commas or opening paren + var PERMISSIVE_MATCH3 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?"; + var PERMISSIVE_MATCH4 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?"; + + return { + rgb: new RegExp("rgb" + PERMISSIVE_MATCH3), + rgba: new RegExp("rgba" + PERMISSIVE_MATCH4), + hsl: new RegExp("hsl" + PERMISSIVE_MATCH3), + hsla: new RegExp("hsla" + PERMISSIVE_MATCH4), + hsv: new RegExp("hsv" + PERMISSIVE_MATCH3), + hex3: /^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/, + hex6: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/, + hex8: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/ + }; + })(); + + // `stringInputToObject` + // Permissive string parsing. Take in a number of formats, and output an object + // based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}` + function stringInputToObject(color) { + + color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase(); + var named = false; + if (names[color]) { + color = names[color]; + named = true; + } + else if (color == 'transparent') { + return { r: 0, g: 0, b: 0, a: 0, format: "name" }; + } + + // Try to match string input using regular expressions. + // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360] + // Just return an object and let the conversion functions handle that. + // This way the result will be the same whether the tinycolor is initialized with string or object. + var match; + if ((match = matchers.rgb.exec(color))) { + return { r: match[1], g: match[2], b: match[3] }; + } + if ((match = matchers.rgba.exec(color))) { + return { r: match[1], g: match[2], b: match[3], a: match[4] }; + } + if ((match = matchers.hsl.exec(color))) { + return { h: match[1], s: match[2], l: match[3] }; + } + if ((match = matchers.hsla.exec(color))) { + return { h: match[1], s: match[2], l: match[3], a: match[4] }; + } + if ((match = matchers.hsv.exec(color))) { + return { h: match[1], s: match[2], v: match[3] }; + } + if ((match = matchers.hex8.exec(color))) { + return { + a: convertHexToDecimal(match[1]), + r: parseIntFromHex(match[2]), + g: parseIntFromHex(match[3]), + b: parseIntFromHex(match[4]), + format: named ? "name" : "hex8" + }; + } + if ((match = matchers.hex6.exec(color))) { + return { + r: parseIntFromHex(match[1]), + g: parseIntFromHex(match[2]), + b: parseIntFromHex(match[3]), + format: named ? "name" : "hex" + }; + } + if ((match = matchers.hex3.exec(color))) { + return { + r: parseIntFromHex(match[1] + '' + match[1]), + g: parseIntFromHex(match[2] + '' + match[2]), + b: parseIntFromHex(match[3] + '' + match[3]), + format: named ? "name" : "hex" + }; + } + + return false; + } + + // Expose tinycolor to window, does not need to run in non-browser context. + window.tinycolor = tinycolor; + + })(); + + + $(function () { + if ($.fn.spectrum.load) { + $.fn.spectrum.processNativeColorInputs(); + } + }); + +})(window, jQuery); diff --git a/redux/ReduxCore/assets/js/vendor/spectrum/redux-spectrum.min.js b/redux/ReduxCore/assets/js/vendor/spectrum/redux-spectrum.min.js new file mode 100644 index 0000000..5481207 --- /dev/null +++ b/redux/ReduxCore/assets/js/vendor/spectrum/redux-spectrum.min.js @@ -0,0 +1 @@ +!function(Ne,qe,Ee){var e,je={beforeShow:r,move:r,change:r,show:r,hide:r,color:!1,flat:!1,showInput:!1,allowEmpty:!1,showButtons:!0,clickoutFiresChange:!1,showInitial:!1,showPalette:!1,showPaletteOnly:!1,showSelectionPalette:!0,localStorageKey:!1,appendTo:"body",maxSelectionSize:7,cancelText:"cancel",chooseText:"choose",clearText:"Clear Color Selection",preferredFormat:!1,className:"",containerClassName:"",replacerClassName:"",showAlpha:!1,theme:"sp-light",palette:[["#ffffff","#000000","#ff0000","#ff8000","#ffff00","#008000","#0000ff","#4b0082","#9400d3"]],selectionPalette:[],disabled:!1,inputText:""},De=[],Ie=!!/msie/i.exec(Ne.navigator.userAgent),ze=function(){function e(e,t){return!!~(""+e).indexOf(t)}var t=document.createElement("div").style;return t.cssText="background-color:rgba(0,0,0,.5)",e(t.backgroundColor,"rgba")||e(t.backgroundColor,"hsla")}(),Ke="color"===(e=qe("")[0]).type&&"#ffffff"!==e.value,$e=["
    ","
    ","
    ","
    "].join(""),_e=function(){var e="";if(Ie)for(var t=1;t<=6;t++)e+="
    ";return["
    ","
    ","
    ","
    ","
    ","
    ","
    ","
    ","
    ","
    ","
    ","
    ","
    ","
    ","
    ","
    ","
    ","
    ","
    ",e,"
    ","
    ","
    ","
    ","
    ","","
    ","
    ","
    ","","","
    ","
    ","
    "].join("")}();function Be(e,t,r,a){for(var n=[],o=0;o')}else{n.push('')}}return"
    "+n.join("")+"
    "}function t(e,t){var r,a,n,o,s,l,c,f=(s=t,l=e,(c=qe.extend({},je,s)).callbacks={move:Le(c.move,l),change:Le(c.change,l),show:Le(c.show,l),hide:Le(c.hide,l),beforeShow:Le(c.beforeShow,l)},c),d=f.flat,u=f.showSelectionPalette,h=f.localStorageKey,p=f.theme,g=f.callbacks,b=(r=Me,a=10,function(){var e=this,t=arguments;n&&clearTimeout(o),!n&&o||(o=setTimeout(function(){o=null,r.apply(e,t)},a))}),v=!1,m=0,y=0,w=0,x=0,k=0,S=0,C=0,P=0,H=0,A=0,F=1,R=[],M=[],O={},T=f.selectionPalette.slice(0),N=f.maxSelectionSize,q="sp-dragging",E=f.inputText,j=null,D=e.ownerDocument,I=(D.body,qe(e)),z=!1,K=qe(_e,D).addClass(p),$=K.find(".sp-color"),_=K.find(".sp-dragger"),B=K.find(".sp-hue"),X=K.find(".sp-slider"),L=K.find(".sp-alpha-inner"),W=K.find(".sp-alpha"),Y=K.find(".sp-alpha-handle"),G=K.find(".sp-input"),Q=K.find(".sp-palette"),V=K.find(".sp-initial"),J=K.find(".sp-cancel"),U=K.find(".sp-clear"),Z=K.find(".sp-choose"),ee=I.is("input"),te=ee&&Ke&&"color"===I.attr("type"),re=ee&&!d,ae=re?qe($e).addClass(p).addClass(f.className).addClass(f.replacerClassName):qe([]),ne=re?ae:I,oe=ae.find(".sp-preview-inner"),se=f.color||ee&&I.val(),ie=!1,le=f.preferredFormat,ce=le,fe=!f.showButtons||f.clickoutFiresChange,de=!se,ue=f.allowEmpty&&!te;""!==E&&qe(ne).find("div.sp-dd").text(E);function he(){if(f.showPaletteOnly&&(f.showPalette=!0),f.palette){R=f.palette.slice(0),M=qe.isArray(R[0])?R:[R],O={};for(var e=0;eN;)T.shift();if(h&&Ne.localStorage)try{Ne.localStorage[h]=T.join(";")}catch(e){}}}function be(){var r=Pe(),e=qe.map(M,function(e,t){return Be(e,r,"sp-palette-row sp-palette-row-"+t,f.preferredFormat)});pe(),T&&e.push(Be(function(){var e=[];if(f.showPalette)for(i=0;ii&&rl&&aMath.abs(t-n);j=o?"x":"y"}}else j=null;var s=!j||"y"===j;(!j||"x"===j)&&(H=parseFloat(e/m)),s&&(A=parseFloat((y-t)/y)),de=!1,f.showAlpha||(F=1),He()},me,ye),se?(Ce(se),Ae(),ce=le||tinycolor(se).format,ge(se)):Ae(),d&&ke();var r=Ie?"mousedown.spectrum":"click.spectrum touchstart.spectrum";Q.delegate(".sp-thumb-el",r,t),V.delegate(".sp-thumb-el:nth-child(1)",r,{ignore:!0},t)}();var Te={show:ke,hide:Se,toggle:xe,reflow:Me,option:function(e,t){return e===Ee?qe.extend({},f):t===Ee?f[e]:(f[e]=t,void he())},enable:function(){z=!1,I.attr("disabled",!1),ne.removeClass("sp-disabled")},disable:Oe,set:function(e){Ce(e),Re()},get:Pe,destroy:function(){I.show(),ne.unbind("click.spectrum touchstart.spectrum"),K.remove(),ae.remove(),De[Te.id]=null},container:K};return Te.id=De.push(Te)-1,Te}function r(){}function Xe(e){e.stopPropagation()}function Le(e,t){var r=Array.prototype.slice,a=r.call(arguments,2);return function(){return e.apply(t,a.concat(r.call(arguments)))}}function We(s,i,r,e){i=i||function(){},r=r||function(){},e=e||function(){};var a=s.ownerDocument||document,l=!1,c={},f=0,d=0,u="ontouchstart"in Ne,n={};function h(e){e.stopPropagation&&e.stopPropagation(),e.preventDefault&&e.preventDefault(),e.returnValue=!1}function o(e){if(l){if(Ie&&document.documentMode<9&&!e.button)return p();var t=e.originalEvent.touches,r=t?t[0].pageX:e.pageX,a=t?t[0].pageY:e.pageY,n=Math.max(0,Math.min(r-c.left,d)),o=Math.max(0,Math.min(a-c.top,f));u&&h(e),i.apply(s,[n,o,e])}}function p(){l&&(qe(a).unbind(n),qe(a.body).removeClass("sp-dragging"),e.apply(s,arguments)),l=!1}n.selectstart=h,n.dragstart=h,n["touchmove mousemove"]=o,n["touchend mouseup"]=p,qe(s).bind("touchstart mousedown",function(e){var t=e.which?3==e.which:2==e.button;e.originalEvent.touches,t||l||!1!==r.apply(s,arguments)&&(l=!0,f=qe(s).height(),d=qe(s).width(),c=qe(s).offset(),qe(a).bind(n),qe(a.body).addClass("sp-dragging"),u||o(e),h(e))})}var o="spectrum.id";qe.fn.spectrum=function(r,e){if("string"!=typeof r)return this.spectrum("destroy").each(function(){var e=t(this,qe.extend({},r,qe(this).data()));qe(this).data(o,e.id)});var a=this,n=Array.prototype.slice.call(arguments,1);return this.each(function(){var e=De[qe(this).data(o)];if(e){var t=e[r];if(!t)throw new Error("Spectrum: no such method: '"+r+"'");"get"==r?a=e.get():"container"==r?a=e.container:"option"==r?a=e.option.apply(e,n):"destroy"==r?(e.destroy(),qe(this).removeData(o)):t.apply(e,n)}}),a},qe.fn.spectrum.load=!0,qe.fn.spectrum.loadOpts={},qe.fn.spectrum.draggable=We,qe.fn.spectrum.defaults=je,qe.spectrum={},qe.spectrum.localization={},qe.spectrum.palettes={},qe.fn.spectrum.processNativeColorInputs=function(){Ke||qe("input[type=color]").spectrum({preferredFormat:"hex6"})},function(){var f=/^[\s,#]+/,d=/\s+$/,a=0,u=Math,h=u.round,p=u.min,g=u.max,e=u.random;function b(e,n){if(n=n||{},"object"==typeof(e=e||"")&&e.hasOwnProperty("_tc_id"))return e;var t=function(e){var t={r:0,g:0,b:0},r=1,a=!1,n=!1;"string"==typeof e&&(e=function(e){e=e.replace(f,"").replace(d,"").toLowerCase();var t,r=!1;if(x[e])e=x[e],r=!0;else if("transparent"==e)return{r:0,g:0,b:0,a:0,format:"name"};if(t=A.rgb.exec(e))return{r:t[1],g:t[2],b:t[3]};if(t=A.rgba.exec(e))return{r:t[1],g:t[2],b:t[3],a:t[4]};if(t=A.hsl.exec(e))return{h:t[1],s:t[2],l:t[3]};if(t=A.hsla.exec(e))return{h:t[1],s:t[2],l:t[3],a:t[4]};if(t=A.hsv.exec(e))return{h:t[1],s:t[2],v:t[3]};if(t=A.hex8.exec(e))return{a:(a=t[1],P(a)/255),r:P(t[2]),g:P(t[3]),b:P(t[4]),format:r?"name":"hex8"};var a;if(t=A.hex6.exec(e))return{r:P(t[1]),g:P(t[2]),b:P(t[3]),format:r?"name":"hex"};if(t=A.hex3.exec(e))return{r:P(t[1]+""+t[1]),g:P(t[2]+""+t[2]),b:P(t[3]+""+t[3]),format:r?"name":"hex"};return!1}(e));"object"==typeof e&&(e.hasOwnProperty("r")&&e.hasOwnProperty("g")&&e.hasOwnProperty("b")?(o=e.r,s=e.g,i=e.b,t={r:255*C(o,255),g:255*C(s,255),b:255*C(i,255)},a=!0,n="%"===String(e.r).substr(-1)?"prgb":"rgb"):e.hasOwnProperty("h")&&e.hasOwnProperty("s")&&e.hasOwnProperty("v")?(e.s=H(e.s),e.v=H(e.v),t=function(e,t,r){e=6*C(e,360),t=C(t,100),r=C(r,100);var a=u.floor(e),n=e-a,o=r*(1-t),s=r*(1-n*t),i=r*(1-(1-n)*t),l=a%6;return{r:255*[r,s,o,o,i,r][l],g:255*[i,r,r,s,o,o][l],b:255*[o,o,i,r,r,s][l]}}(e.h,e.s,e.v),a=!0,n="hsv"):e.hasOwnProperty("h")&&e.hasOwnProperty("s")&&e.hasOwnProperty("l")&&(e.s=H(e.s),e.l=H(e.l),t=function(e,t,r){var a,n,o;function s(e,t,r){return r<0&&(r+=1),1>1)+720)%360;--t;)a.h=(a.h+n)%360,o.push(b(a));return o},b.monochromatic=function(e,t){t=t||6;for(var r=b(e).toHsv(),a=r.h,n=r.s,o=r.v,s=[],i=1/t;t--;)s.push(b({h:a,s:n,v:o})),o=(o+i)%1;return s},b.readability=function(e,t){var r=b(e).toRgb(),a=b(t).toRgb(),n=(299*r.r+587*r.g+114*r.b)/1e3,o=(299*a.r+587*a.g+114*a.b)/1e3,s=Math.max(r.r,a.r)-Math.min(r.r,a.r)+Math.max(r.g,a.g)-Math.min(r.g,a.g)+Math.max(r.b,a.b)-Math.min(r.b,a.b);return{brightness:Math.abs(n-o),color:s}},b.readable=function(e,t){var r=b.readability(e,t);return 125args['opt_name'] ); + + add_action('wp_dashboard_setup', array($this, $fname)); + } + + public function add_redux_dashboard() { + add_meta_box('redux_dashboard_widget', 'Redux Framework News', array($this,'redux_dashboard_widget'), 'dashboard', 'side', 'high'); + } + + public function dat() { + return; + } + + public function redux_dashboard_widget() { + echo '
    '; + wp_widget_rss_output(array( + 'url' => 'http://reduxframework.com/feed/', + 'title' => 'REDUX_NEWS', + 'items' => 3, + 'show_summary' => 1, + 'show_author' => 0, + 'show_date' => 1 + )); + echo '
    '; + } + } + } diff --git a/redux/ReduxCore/core/enqueue.php b/redux/ReduxCore/core/enqueue.php new file mode 100644 index 0000000..263b16b --- /dev/null +++ b/redux/ReduxCore/core/enqueue.php @@ -0,0 +1,522 @@ +parent = $parent; + + Redux_Functions::$_parent = $parent; + } + + public function init() { + $this->min = Redux_Functions::isMin(); + + $this->timestamp = ReduxFramework::$_version; + if ( $this->parent->args['dev_mode'] ) { + $this->timestamp .= '.' . time(); + } + + $this->register_styles(); + $this->register_scripts(); + + add_thickbox(); + + $this->enqueue_fields(); + + add_filter("redux/{$this->parent->args['opt_name']}/localize", array('Redux_Helpers', 'localize')); + + $this->set_localized_data(); + + /** + * action 'redux-enqueue-{opt_name}' + * + * @deprecated + * + * @param object $this ReduxFramework + */ + do_action( "redux-enqueue-{$this->parent->args['opt_name']}", $this->parent ); // REMOVE + + /** + * action 'redux/page/{opt_name}/enqueue' + */ + do_action( "redux/page/{$this->parent->args['opt_name']}/enqueue" ); + } + + private function register_styles() { + + //***************************************************************** + // Redux Admin CSS + //***************************************************************** + wp_enqueue_style( + 'redux-admin-css', + ReduxFramework::$_url . 'assets/css/redux-admin.css', + array(), + $this->timestamp, + 'all' + ); + + //***************************************************************** + // Redux Fields CSS + //***************************************************************** + if ( ! $this->parent->args['dev_mode'] ) { + wp_enqueue_style( + 'redux-fields-css', + ReduxFramework::$_url . 'assets/css/redux-fields.css', + array(), + $this->timestamp, + 'all' + ); + } + + //***************************************************************** + // Select2 CSS + //***************************************************************** + Redux_CDN::register_style( + 'select2-css', + '//cdn.jsdelivr.net/select2/3.5.2/select2.css', + array(), + '3.5.2',//$this->timestamp, + 'all' + ); + + //***************************************************************** + // Spectrum CSS + //***************************************************************** + //$css_file = 'redux-spectrum.min.css'; + //if ($this->parent->args['dev_mode']) { + $css_file = 'redux-spectrum.css'; + //} + + wp_register_style( + 'redux-spectrum-css', + ReduxFramework::$_url . 'assets/css/vendor/spectrum/' . $css_file, + array(), + '1.3.3', + 'all' + ); + + //***************************************************************** + // Elusive Icon CSS + //***************************************************************** + wp_enqueue_style( + 'redux-elusive-icon', + ReduxFramework::$_url . 'assets/css/vendor/elusive-icons/elusive-icons.css', + array(), + $this->timestamp, + 'all' + ); + + //***************************************************************** + // QTip CSS + //***************************************************************** + $css_file = 'jquery.qtip.min.css'; + if ($this->parent->args['dev_mode']) { + $css_file = 'jquery.qtip.css'; + } + + wp_enqueue_style( + 'qtip-css', + ReduxFramework::$_url . 'assets/css/vendor/qtip/' . $css_file, + array(), + '2.2.0', + 'all' + ); + + //***************************************************************** + // JQuery UI CSS + //***************************************************************** + wp_enqueue_style( + 'jquery-ui-css', + apply_filters( "redux/page/{$this->parent->args['opt_name']}/enqueue/jquery-ui-css", ReduxFramework::$_url . 'assets/css/vendor/jquery-ui-bootstrap/jquery-ui-1.10.0.custom.css' ), + array(), + $this->timestamp, + 'all' + ); + + //***************************************************************** + // Iris CSS + //***************************************************************** + wp_enqueue_style( 'wp-color-picker' ); + + if ( $this->parent->args['dev_mode'] ) { + + //***************************************************************** + // Color Picker CSS + //***************************************************************** + wp_register_style( + 'redux-color-picker-css', + ReduxFramework::$_url . 'assets/css/color-picker/color-picker.css', + array( 'wp-color-picker' ), + $this->timestamp, + 'all' + ); + + //***************************************************************** + // Media CSS + //***************************************************************** + wp_enqueue_style( + 'redux-field-media-css', + ReduxFramework::$_url . 'assets/css/media/media.css', + array(), + time(), + 'all' + ); + } + + //***************************************************************** + // RTL CSS + //***************************************************************** + if ( is_rtl() ) { + wp_enqueue_style( + 'redux-rtl-css', + ReduxFramework::$_url . 'assets/css/rtl.css', + array( 'redux-admin-css' ), + $this->timestamp, + 'all' + ); + } + + } + + private function register_scripts() { + //***************************************************************** + // JQuery / JQuery UI JS + //***************************************************************** + wp_enqueue_script( 'jquery' ); + wp_enqueue_script( 'jquery-ui-core' ); + wp_enqueue_script( 'jquery-ui-dialog' ); + + //***************************************************************** + // Select2 Sortable JS + //***************************************************************** + wp_register_script( + 'redux-select2-sortable-js', + ReduxFramework::$_url . 'assets/js/vendor/redux.select2.sortable' . $this->min . '.js', + array( 'jquery', 'jquery-ui-sortable' ), + $this->timestamp, + true + ); + + //***************************************************************** + // Select2 JS + //***************************************************************** + + // JWp6 plugin giving us problems. They need to update. + if ( wp_script_is ( 'jquerySelect2' )) { + wp_deregister_script( 'jquerySelect2' ); + wp_dequeue_script('jquerySelect2'); + wp_dequeue_style('jquerySelect2Style'); + } + + + Redux_CDN::register_script( + 'select2-js', + '//cdn.jsdelivr.net/select2/3.5.2/select2' . $this->min . '.js', + array( 'jquery', 'redux-select2-sortable-js' ), + '3.5.2', + true + ); + + //***************************************************************** + // QTip JS + //***************************************************************** + $js_file = 'jquery.qtip.min.js'; + if ($this->parent->args['dev_mode']) { + $js_file = 'jquery.qtip.js'; + } + + wp_enqueue_script( + 'qtip-js', + ReduxFramework::$_url . 'assets/js/vendor/qtip/' . $js_file, + array( 'jquery' ), + '2.2.0', + true + ); + + //***************************************************************** + // Spectrum JS + //***************************************************************** + $js_file = 'redux-spectrum.min.js'; + if ($this->parent->args['dev_mode']) { + $js_file = 'redux-spectrum.js'; + } + + wp_register_script( + 'redux-spectrum-js', + ReduxFramework::$_url . 'assets/js/vendor/spectrum/' . $js_file, + array( 'jquery' ), + '1.3.3', + true + ); + + $depArray = array( 'jquery' ); + + //***************************************************************** + // Vendor JS + //***************************************************************** + wp_register_script( + 'redux-vendor', + ReduxFramework::$_url . 'assets/js/vendor.min.js', + array( 'jquery' ), + $this->timestamp, + true + ); + + array_push( $depArray, 'redux-vendor' ); + + + //***************************************************************** + // Redux JS + //***************************************************************** + wp_register_script( + 'redux-js', + ReduxFramework::$_url . 'assets/js/redux' . $this->min . '.js', + $depArray, + $this->timestamp, + true + ); + + wp_enqueue_script( + 'webfontloader', + 'https://ajax.googleapis.com/ajax/libs/webfont/1.5.0/webfont.js', + array( 'jquery' ), + '1.5.0', + true + ); + } + + public function _enqueue_field($field) { + // TODO AFTER GROUP WORKS - Revert IF below + // if( isset( $field['type'] ) && $field['type'] != 'callback' ) { + if ( isset( $field['type'] ) && $field['type'] != 'callback' ) { + + $field_class = 'ReduxFramework_' . $field['type']; + + /** + * Field class file + * filter 'redux/{opt_name}/field/class/{field.type} + * + * @param string field class file path + * @param array $field field config data + */ + $class_file = apply_filters( "redux/{$this->parent->args['opt_name']}/field/class/{$field['type']}", ReduxFramework::$_dir . "inc/fields/{$field['type']}/field_{$field['type']}.php", $field ); + if ( $class_file ) { + if ( ! class_exists( $field_class ) ) { + if ( file_exists( $class_file ) ) { + require_once $class_file; + } + } + + if ( ( method_exists( $field_class, 'enqueue' ) ) || method_exists( $field_class, 'localize' ) ) { + + if ( ! isset( $this->parent->options[ $field['id'] ] ) ) { + $this->parent->options[ $field['id'] ] = ""; + } + + $theField = new $field_class( $field, $this->parent->options[ $field['id'] ], $this->parent ); + + // Move dev_mode check to a new if/then block + if ( ! wp_script_is( 'redux-field-' . $field['type'] . '-js', 'enqueued' ) && class_exists( $field_class ) && method_exists( $field_class, 'enqueue' ) ) { + $theField->enqueue(); + } + + if ( method_exists( $field_class, 'localize' ) ) { + $params = $theField->localize( $field ); + if ( ! isset( $this->parent->localize_data[ $field['type'] ] ) ) { + $this->parent->localize_data[ $field['type'] ] = array(); + } + $this->parent->localize_data[ $field['type'] ][ $field['id'] ] = $theField->localize( $field ); + } + + unset( $theField ); + } + } + } + } + + private function enqueue_fields() { + foreach ( $this->parent->sections as $section ) { + if ( isset( $section['fields'] ) ) { + foreach ( $section['fields'] as $field ) { + $this->_enqueue_field( $field ); + } + } + } + } + + public function get_warnings_and_errors_array() { + // Construct the errors array. + if ( isset( $this->parent->transients['last_save_mode'] ) && ! empty( $this->parent->transients['notices']['errors'] ) ) { + $theTotal = 0; + $theErrors = array(); + + foreach ( $this->parent->transients['notices']['errors'] as $error ) { + $theErrors[ $error['section_id'] ]['errors'][] = $error; + + if ( ! isset( $theErrors[ $error['section_id'] ]['total'] ) ) { + $theErrors[ $error['section_id'] ]['total'] = 0; + } + + $theErrors[ $error['section_id'] ]['total'] ++; + $theTotal ++; + } + + $this->parent->localize_data['errors'] = array( 'total' => $theTotal, 'errors' => $theErrors ); + unset( $this->parent->transients['notices']['errors'] ); + } + + // Construct the warnings array. + if ( isset( $this->parent->transients['last_save_mode'] ) && ! empty( $this->parent->transients['notices']['warnings'] ) ) { + $theTotal = 0; + $theWarnings = array(); + + foreach ( $this->parent->transients['notices']['warnings'] as $warning ) { + $theWarnings[ $warning['section_id'] ]['warnings'][] = $warning; + + if ( ! isset( $theWarnings[ $warning['section_id'] ]['total'] ) ) { + $theWarnings[ $warning['section_id'] ]['total'] = 0; + } + + $theWarnings[ $warning['section_id'] ]['total'] ++; + $theTotal ++; + } + + unset( $this->parent->transients['notices']['warnings'] ); + $this->parent->localize_data['warnings'] = array( + 'total' => $theTotal, + 'warnings' => $theWarnings + ); + } + + if ( empty( $this->parent->transients['notices'] ) ) { + unset( $this->parent->transients['notices'] ); + } + } + + private function set_localized_data() { + if (!empty($this->parent->args['last_tab'])) { + $this->parent->localize_data['last_tab'] = $this->parent->args['last_tab']; + } + + $this->parent->localize_data['required'] = $this->parent->required; + $this->parent->localize_data['fonts'] = $this->parent->fonts; + $this->parent->localize_data['required_child'] = $this->parent->required_child; + $this->parent->localize_data['fields'] = $this->parent->fields; + + if ( isset( $this->parent->font_groups['google'] ) ) { + $this->parent->localize_data['googlefonts'] = $this->parent->font_groups['google']; + } + + if ( isset( $this->parent->font_groups['std'] ) ) { + $this->parent->localize_data['stdfonts'] = $this->parent->font_groups['std']; + } + + if ( isset( $this->parent->font_groups['customfonts'] ) ) { + $this->parent->localize_data['customfonts'] = $this->parent->font_groups['customfonts']; + } + + $this->parent->localize_data['folds'] = $this->parent->folds; + + // Make sure the children are all hidden properly. + foreach ( $this->parent->fields as $key => $value ) { + if ( in_array( $key, $this->parent->fieldsHidden ) ) { + foreach ( $value as $k => $v ) { + if ( ! in_array( $k, $this->parent->fieldsHidden ) ) { + $this->parent->fieldsHidden[] = $k; + $this->parent->folds[ $k ] = "hide"; + } + } + } + } + + + $this->parent->localize_data['fieldsHidden'] = $this->parent->fieldsHidden; + $this->parent->localize_data['options'] = $this->parent->options; + $this->parent->localize_data['defaults'] = $this->parent->options_defaults; + + /** + * Save pending string + * filter 'redux/{opt_name}/localize/save_pending + * + * @param string save_pending string + */ + $save_pending = apply_filters( "redux/{$this->parent->args['opt_name']}/localize/save_pending", __( 'You have changes that are not saved. Would you like to save them now?', 'redux-framework' ) ); + + /** + * Reset all string + * filter 'redux/{opt_name}/localize/reset + * + * @param string reset all string + */ + $reset_all = apply_filters( "redux/{$this->parent->args['opt_name']}/localize/reset", __( 'Are you sure? Resetting will lose all custom values.', 'redux-framework' ) ); + + /** + * Reset section string + * filter 'redux/{opt_name}/localize/reset_section + * + * @param string reset section string + */ + $reset_section = apply_filters( "redux/{$this->parent->args['opt_name']}/localize/reset_section", __( 'Are you sure? Resetting will lose all custom values in this section.', 'redux-framework' ) ); + + /** + * Preset confirm string + * filter 'redux/{opt_name}/localize/preset + * + * @param string preset confirm string + */ + $preset_confirm = apply_filters( "redux/{$this->parent->args['opt_name']}/localize/preset", __( 'Your current options will be replaced with the values of this preset. Would you like to proceed?', 'redux-framework' ) ); + + /** + * Import confirm string + * filter 'redux/{opt_name}/localize/import + * + * @param string import confirm string + */ + $import_confirm = apply_filters( "redux/{$this->parent->args['opt_name']}/localize/import", __( 'Your current options will be replaced with the values of this import. Would you like to proceed?', 'redux-framework' ) ); + + global $pagenow; + $this->parent->localize_data['args'] = array( + 'save_pending' => $save_pending, + 'reset_confirm' => $reset_all, + 'reset_section_confirm' => $reset_section, + 'import_section_confirm' => $import_confirm, + 'preset_confirm' => $preset_confirm, + 'please_wait' => __( 'Please Wait', 'redux-framework' ), + 'opt_name' => $this->parent->args['opt_name'], + 'slug' => $this->parent->args['page_slug'], + 'hints' => $this->parent->args['hints'], + 'disable_save_warn' => $this->parent->args['disable_save_warn'], + 'class' => $this->parent->args['class'], + 'ajax_save' => $this->parent->args['ajax_save'], + 'menu_search' => $pagenow . '?page=' . $this->parent->args['page_slug'] . "&tab=" + ); + + $this->parent->localize_data['ajax'] = array( + 'console' => __( 'There was an error saving. Here is the result of your action:', 'redux-framework' ), + 'alert' => __( 'There was a problem with your action. Please try again or reload the page.', 'redux-framework' ), + ); + + $this->parent->localize_data = apply_filters( "redux/{$this->parent->args['opt_name']}/localize", $this->parent->localize_data ); + + $this->get_warnings_and_errors_array(); + + wp_localize_script( + 'redux-js', + 'redux', + $this->parent->localize_data + ); + + wp_enqueue_script( 'redux-js' ); // Enque the JS now + + } + } + } \ No newline at end of file diff --git a/redux/ReduxCore/core/newsflash.php b/redux/ReduxCore/core/newsflash.php new file mode 100644 index 0000000..f78ce1d --- /dev/null +++ b/redux/ReduxCore/core/newsflash.php @@ -0,0 +1,126 @@ +parent = $parent; + + if ( ! is_admin() ) { + return; + } + + $this->server_file = $params['server_file']; + $this->interval = isset( $params['interval'] ) ? $params['interval'] : 3; + $this->cookie_id = isset( $params['cookie_id'] ) ? $params['cookie_id'] : $parent->args['opt_name'] . '_blast'; + + $this->notice_data = get_option( 'r_notice_data', '' ); + + $fname = Redux_Functions::bub( 'get_notice_json', $parent->args['opt_name'] ); + $mname = Redux_Functions::yo( 'display_message', $parent->args['opt_name'] ); + + // if notice data is empty + if ( empty( $this->notice_data ) ) { + // get notice data from server and create cache data + $this->$fname(); + } else { + // check expiry time + if ( ! isset( $_COOKIE[ $this->cookie_id ] ) ) { + // expired! get notice data from server + $this->$fname(); + } + } + + // set the admin notice msg + $this->$mname(); + } + + private function bub() { + $this->notice_data = ''; + } + + private function get_notice_json() { + + // get notice data from server + $data = @wp_remote_get( $this->server_file, array( 'sslverify' => false ) ); + + if ( isset( $data ) && ! empty( $data ) && ! is_wp_error( $data ) && $data['response']['code'] == 200 ) { + $data = $data['body']; + // if some data exists + if ( $data != '' || ! empty( $data ) ) { + + if ( ! empty( $this->notice_data ) ) { + if ( strcmp( $data, $this->notice_data ) == 0 ) { + // set new cookie for interval value + Redux_Functions::setCookie( $this->cookie_id, time(), time() + ( 86400 * $this->interval ), '/' ); + + // bail out + return; + } + } + + update_option( 'r_notice_data', $data ); + $this->notice_data = $data; + + // set cookie for three day expiry + setcookie( $this->cookie_id, time(), time() + ( 86400 * $this->interval ), '/' ); + + // set unique key for dismiss meta key + update_option( $this->cookie_id, time() ); + } + } + } + + private function display_message() { + // Notice data exists? + if ( ! empty( $this->notice_data ) ) { + // decode json string + $data = (Array) json_decode( $this->notice_data ); + // must be array and not empty + if ( is_array( $data ) && ! empty( $data ) ) { + + // No message means nothing to display. + if ( ! isset( $data['message'] ) || $data['message'] == '' || empty( $data['message'] ) ) { + return; + } + + // validate data + $data['type'] = isset( $data['type'] ) && $data['type'] != '' ? $data['type'] : 'updated'; + $data['title'] = isset( $data['title'] ) && $data['title'] != '' ? $data['title'] : ''; + + if ( $data['type'] == 'redux-message' ) { + $data['type'] = 'updated redux-message'; + } + + $data['color'] = isset( $data['color'] ) ? $data['color'] : '#00A2E3'; + + // get unique meta key + $key = get_option( $this->cookie_id ); + + $notice_data = array( + 'parent' => $this->parent, + 'type' => $data['type'], + 'msg' => $data['title'] . $data['message'], + 'id' => $this->cookie_id . '_' . $key, + 'dismiss' => true, + 'color' => $data['color'] + ); + + Redux_Admin_Notices::set_notice($notice_data); + } + } + } + } + } diff --git a/redux/ReduxCore/core/panel.php b/redux/ReduxCore/core/panel.php new file mode 100644 index 0000000..b9e860b --- /dev/null +++ b/redux/ReduxCore/core/panel.php @@ -0,0 +1,332 @@ +parent = $parent; + Redux_Functions::$_parent = $parent; + $this->template_path = $this->original_path = ReduxFramework::$_dir . 'templates/panel/'; + if ( ! empty( $this->parent->args['templates_path'] ) ) { + $this->template_path = trailingslashit( $this->parent->args['templates_path'] ); + } + $this->template_path = trailingslashit( apply_filters( "redux/{$this->parent->args['opt_name']}/panel/templates_path", $this->template_path ) ); + } + + public function init() { + $this->panel_template(); + } + + + /** + * Loads the panel templates where needed and provides the container for Redux + */ + private function panel_template() { + + if ( $this->parent->args['dev_mode'] ) { + $this->template_file_check_notice(); + } + + /** + * action 'redux/{opt_name}/panel/before' + */ + do_action( "redux/{$this->parent->args['opt_name']}/panel/before" ); + + echo '

    '; // Stupid hack for Wordpress alerts and warnings + + echo '
    '; + echo '
    '; + + // Do we support JS? + echo ''; + + // Security is vital! + echo ''; + + /** + * action 'redux-page-before-form-{opt_name}' + * + * @deprecated + */ + do_action( "redux-page-before-form-{$this->parent->args['opt_name']}" ); // Remove + + /** + * action 'redux/page/{opt_name}/form/before' + * + * @param object $this ReduxFramework + */ + do_action( "redux/page/{$this->parent->args['opt_name']}/form/before", $this ); + + $this->get_template( 'container.tpl.php' ); + + /** + * action 'redux-page-after-form-{opt_name}' + * + * @deprecated + */ + do_action( "redux-page-after-form-{$this->parent->args['opt_name']}" ); // REMOVE + + /** + * action 'redux/page/{opt_name}/form/after' + * + * @param object $this ReduxFramework + */ + do_action( "redux/page/{$this->parent->args['opt_name']}/form/after", $this ); + echo '
    '; + echo '
    '; + + if ( $this->parent->args['dev_mode'] == true ) { +// if ( current_user_can( 'administrator' ) ) { +// global $wpdb; +// echo "
    ";
    +//                        print_r( $wpdb->queries );
    +//                        echo "
    "; +// } + + echo '
    ' . get_num_queries() . ' queries in ' . timer_stop( 0 ) . ' seconds
    Redux is currently set to developer mode.
    '; + } + + /** + * action 'redux/{opt_name}/panel/after' + */ + do_action( "redux/{$this->parent->args['opt_name']}/panel/after" ); + + } + + + /** + * Calls the various notification bars and sets the appropriate templates. + */ + function notification_bar() { + + if ( isset( $this->parent->transients['last_save_mode'] ) ) { + + if ( $this->parent->transients['last_save_mode'] == "import" ) { + /** + * action 'redux/options/{opt_name}/import' + * + * @param object $this ReduxFramework + */ + do_action( "redux/options/{$this->parent->args['opt_name']}/import", $this, $this->parent->transients['changed_values'] ); + + /** + * filter 'redux-imported-text-{opt_name}' + * + * @param string translated "settings imported" text + */ + echo '
    ' . apply_filters( "redux-imported-text-{$this->parent->args['opt_name']}", __( 'Settings Imported!', 'redux-framework' ) ) . '
    '; + //exit(); + } else if ( $this->parent->transients['last_save_mode'] == "defaults" ) { + /** + * action 'redux/options/{opt_name}/reset' + * + * @param object $this ReduxFramework + */ + do_action( "redux/options/{$this->parent->args['opt_name']}/reset", $this ); + + /** + * filter 'redux-defaults-text-{opt_name}' + * + * @param string translated "settings imported" text + */ + echo '
    ' . apply_filters( "redux-defaults-text-{$this->parent->args['opt_name']}", __( 'All Defaults Restored!', 'redux-framework' ) ) . '
    '; + } else if ( $this->parent->transients['last_save_mode'] == "defaults_section" ) { + /** + * action 'redux/options/{opt_name}/section/reset' + * + * @param object $this ReduxFramework + */ + do_action( "redux/options/{$this->parent->args['opt_name']}/section/reset", $this ); + + /** + * filter 'redux-defaults-section-text-{opt_name}' + * + * @param string translated "settings imported" text + */ + echo '
    ' . apply_filters( "redux-defaults-section-text-{$this->parent->args['opt_name']}", __( 'Section Defaults Restored!', 'redux-framework' ) ) . '
    '; + } else if ( $this->parent->transients['last_save_mode'] == "normal" ) { + /** + * action 'redux/options/{opt_name}/saved' + * + * @param mixed $value set/saved option value + */ + do_action( "redux/options/{$this->parent->args['opt_name']}/saved", $this->parent->options, $this->parent->transients['changed_values'] ); + + /** + * filter 'redux-saved-text-{opt_name}' + * + * @param string translated "settings saved" text + */ + echo '
    ' . apply_filters( "redux-saved-text-{$this->parent->args['opt_name']}", ''.__( 'Settings Saved!', 'redux-framework' ) ).'' . '
    '; + } + + unset( $this->parent->transients['last_save_mode'] ); + //$this->parent->transients['last_save_mode'] = 'remove'; + $this->parent->set_transients(); + } + + /** + * action 'redux/options/{opt_name}/settings/changes' + * + * @param mixed $value set/saved option value + */ + do_action( "redux/options/{$this->parent->args['opt_name']}/settings/change", $this->parent->options, $this->parent->transients['changed_values'] ); + + /** + * filter 'redux-changed-text-{opt_name}' + * + * @param string translated "settings have changed" text + */ + echo '
    ' . apply_filters( "redux-changed-text-{$this->parent->args['opt_name']}", __( 'Settings have changed, you should save them!', 'redux-framework' ) ) . '
    '; + + /** + * action 'redux/options/{opt_name}/errors' + * + * @param array $this ->errors error information + */ + do_action( "redux/options/{$this->parent->args['opt_name']}/errors", $this->parent->errors ); + echo '
    ' . __( 'error(s) were found!', 'redux-framework' ) . '
    '; + + /** + * action 'redux/options/{opt_name}/warnings' + * + * @param array $this ->warnings warning information + */ + do_action( "redux/options/{$this->parent->args['opt_name']}/warnings", $this->parent->warnings ); + echo '
    ' . __( 'warning(s) were found!', 'redux-framework' ) . '
    '; + + } + + /** + * Used to intitialize the settings fields for this panel. Required for saving and redirect. + */ + function init_settings_fields() { + // Must run or the page won't redirect properly + settings_fields( "{$this->parent->args['opt_name']}_group" ); + } + + + /** + * Used to select the proper template. If it doesn't exist in the path, then the original template file is used. + * + * @param $file + */ + function get_template( $file ) { + + if ( empty( $file ) ) { + return; + } + + if ( file_exists( $this->template_path . $file ) ) { + $path = $this->template_path . $file; + } else { + $path = $this->original_path . $file; + } + + do_action( "redux/{$this->parent->args['opt_name']}/panel/template/" . $file . '/before' ); + $path = apply_filters( "redux/{$this->parent->args['opt_name']}/panel/template/" . $file, $path ); + do_action( "redux/{$this->parent->args['opt_name']}/panel/template/" . $file . '/after' ); + + require $path; + + } + + /** + * Scan the template files + * + * @param string $template_path + * + * @return array + */ + public function scan_template_files( $template_path ) { + $files = scandir( $template_path ); + $result = array(); + if ( $files ) { + foreach ( $files as $key => $value ) { + if ( ! in_array( $value, array( ".", ".." ) ) ) { + if ( is_dir( $template_path . DIRECTORY_SEPARATOR . $value ) ) { + $sub_files = self::scan_template_files( $template_path . DIRECTORY_SEPARATOR . $value ); + foreach ( $sub_files as $sub_file ) { + $result[] = $value . DIRECTORY_SEPARATOR . $sub_file; + } + } else { + $result[] = $value; + } + } + } + } + + return $result; + } + + /** + * Show a notice highlighting bad template files + */ + public function template_file_check_notice() { + + if ( $this->template_path == $this->original_path ) { + return; + } + + $core_templates = $this->scan_template_files( $this->original_path ); + $outdated = false; + + foreach ( $core_templates as $file ) { + $developer_theme_file = false; + + if ( file_exists( $this->template_path . $file ) ) { + $developer_theme_file = $this->template_path . $file; + } + + if ( $developer_theme_file ) { + $core_version = Redux_Helpers::get_template_version( $this->original_path . $file ); + $developer_version = Redux_Helpers::get_template_version( $developer_theme_file ); + + if ( $core_version && $developer_version && version_compare( $developer_version, $core_version, '<' ) ) { + ?> +
    +

    Your panel has bundled outdated copies of Redux Framework template files – if you encounter functionality issues this could be the reason. Ensure you update or remove them.', 'redux-framework' ); ?>

    +
    + parent->args['opt_name'] . $k . '_section_group' ); + } + + } + } \ No newline at end of file diff --git a/redux/ReduxCore/core/required.php b/redux/ReduxCore/core/required.php new file mode 100644 index 0000000..08b33c1 --- /dev/null +++ b/redux/ReduxCore/core/required.php @@ -0,0 +1,25 @@ +parent = $parent; + Redux_Functions::$_parent = $parent; + + + /** + * action 'redux/page/{opt_name}/' + */ + do_action( "redux/page/{$parent->args['opt_name']}/" ); + + } + + + } + } \ No newline at end of file diff --git a/redux/ReduxCore/framework.php b/redux/ReduxCore/framework.php new file mode 100644 index 0000000..b9746fc --- /dev/null +++ b/redux/ReduxCore/framework.php @@ -0,0 +1,4263 @@ +. + * + * @package Redux_Framework + * @subpackage Core + * @author Redux Framework Team + */ + // Exit if accessed directly + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + if ( ! class_exists( 'ReduxFrameworkInstances' ) ) { + // Instance Container + require_once dirname( __FILE__ ) . '/inc/class.redux_instances.php'; + require_once dirname( __FILE__ ) . '/inc/lib.redux_instances.php'; + } + + if ( class_exists( 'ReduxFrameworkInstances' ) ) { + add_action( 'redux/init', 'ReduxFrameworkInstances::get_instance' ); + } + + // Don't duplicate me! + if ( ! class_exists( 'ReduxFramework' ) ) { + + // Redux CDN class + require_once dirname( __FILE__ ) . '/inc/class.redux_cdn.php'; + + // Redux API class :) + require_once dirname( __FILE__ ) . '/inc/class.redux_api.php'; + + // General helper functions + require_once dirname( __FILE__ ) . '/inc/class.redux_helpers.php'; + + // General functions + require_once dirname( __FILE__ ) . '/inc/class.redux_functions.php'; + require_once dirname( __FILE__ ) . '/inc/class.p.php'; + + require_once dirname( __FILE__ ) . '/inc/class.thirdparty.fixes.php'; + + require_once dirname( __FILE__ ) . '/inc/class.redux_filesystem.php'; + + require_once dirname( __FILE__ ) . '/inc/class.redux_admin_notices.php'; + + // ThemeCheck checks + require_once dirname( __FILE__ ) . '/inc/themecheck/class.redux_themecheck.php'; + + // Welcome + require_once dirname( __FILE__ ) . '/inc/welcome/welcome.php'; + + /** + * Main ReduxFramework class + * + * @since 1.0.0 + */ + class ReduxFramework { + + // ATTENTION DEVS + // Please update the build number with each push, no matter how small. + // This will make for easier support when we ask users what version they are using. + + public static $_version = '3.6.18'; + public static $_dir; + public static $_url; + public static $_upload_dir; + public static $_upload_url; + public static $wp_content_url; + public static $base_wp_content_url; + public static $_is_plugin = true; + public static $_as_plugin = false; + public $old_opt_name; + public $transients_check; + public $field_types; + public $field_head; + public $googleArray; + public $validation_ran; + public $no_output; + + public static function init() { + $dir = Redux_Helpers::cleanFilePath( dirname( __FILE__ ) ); + + // Windows-proof constants: replace backward by forward slashes. Thanks to: @peterbouwmeester + self::$_dir = trailingslashit( $dir ); + self::$wp_content_url = trailingslashit( Redux_Helpers::cleanFilePath( ( is_ssl() ? str_replace( 'http://', 'https://', WP_CONTENT_URL ) : WP_CONTENT_URL ) ) ); + + // See if Redux is a plugin or not + if ( strpos( Redux_Helpers::cleanFilePath( __FILE__ ), Redux_Helpers::cleanFilePath( get_stylesheet_directory() ) ) !== false || strpos( Redux_Helpers::cleanFilePath( __FILE__ ), Redux_Helpers::cleanFilePath( get_template_directory_uri() ) ) !== false || strpos( Redux_Helpers::cleanFilePath( __FILE__ ), Redux_Helpers::cleanFilePath( WP_CONTENT_DIR . '/themes/' ) ) !== false ) { + self::$_is_plugin = false; + } else { + // Check if plugin is a symbolic link, see if it's a plugin. If embedded, we can't do a thing. + if ( strpos( self::$_dir, ABSPATH ) === false ) { + if ( ! function_exists( 'get_plugins' ) ) { + require_once ABSPATH . 'wp-admin/includes/plugin.php'; + } + + $is_plugin = false; + foreach ( get_plugins() as $key => $value ) { + if ( is_plugin_active( $key ) && strpos( $key, 'redux-framework.php' ) !== false ) { + self::$_dir = trailingslashit( Redux_Helpers::cleanFilePath( WP_CONTENT_DIR . '/plugins/' . plugin_dir_path( $key ) . 'ReduxCore/' ) ); + $is_plugin = true; + } + } + if ( ! $is_plugin ) { + self::$_is_plugin = false; + } + } + } + + if ( self::$_is_plugin == true || self::$_as_plugin == true ) { + self::$_url = plugin_dir_url( __FILE__ ); + } else { + if ( strpos( Redux_Helpers::cleanFilePath( __FILE__ ), Redux_Helpers::cleanFilePath( get_template_directory() ) ) !== false ) { + $relative_url = str_replace( Redux_Helpers::cleanFilePath( get_template_directory() ), '', self::$_dir ); + self::$_url = trailingslashit( get_template_directory_uri() . $relative_url ); + } else if ( strpos( Redux_Helpers::cleanFilePath( __FILE__ ), Redux_Helpers::cleanFilePath( get_stylesheet_directory() ) ) !== false ) { + $relative_url = str_replace( Redux_Helpers::cleanFilePath( get_stylesheet_directory() ), '', self::$_dir ); + self::$_url = trailingslashit( get_stylesheet_directory_uri() . $relative_url ); + } else { + $wp_content_dir = trailingslashit( Redux_Helpers::cleanFilePath( WP_CONTENT_DIR ) ); + $wp_content_dir = trailingslashit( str_replace( '//', '/', $wp_content_dir ) ); + $relative_url = str_replace( $wp_content_dir, '', self::$_dir ); + self::$_url = trailingslashit( self::$wp_content_url . $relative_url ); + } + } + + /** + * TODO: Fix mkdir url + * */ + + if(QUADMENU_DEV) { + self::$_url = plugin_dir_url( __FILE__ ); + } + + self::$_url = apply_filters( "redux/_url", self::$_url ); + self::$_dir = apply_filters( "redux/_dir", self::$_dir ); + self::$_is_plugin = apply_filters( "redux/_is_plugin", self::$_is_plugin ); + } + + // ::init() + + public $framework_url = 'http://www.reduxframework.com/'; + public static $instance = null; + public $admin_notices = array(); + public $page = ''; + public $saved = false; + public $fields = array(); // Fields by type used in the panel + public $field_sections = array(); // Section id's by field type, then field ID + public $current_tab = ''; // Current section to display, cookies + public $extensions = array(); // Extensions by type used in the panel + public $sections = array(); // Sections and fields + public $errors = array(); // Errors + public $warnings = array(); // Warnings + public $options = array(); // Option values + public $options_defaults = null; // Option defaults + public $notices = array(); // Option defaults + public $compiler_fields = array(); // Fields that trigger the compiler hook + public $required = array(); // Information that needs to be localized + public $required_child = array(); // Information that needs to be localized + public $localize_data = array(); // Information that needs to be localized + public $fonts = array(); // Information that needs to be localized + public $folds = array(); // The itms that need to fold. + public $path = ''; + public $changed_values = array(); // Values that have been changed on save. Orig values. + public $output = array(); // Fields with CSS output selectors + public $outputCSS = null; // CSS that get auto-appended to the header + public $compilerCSS = null; // CSS that get sent to the compiler hook + public $customizerCSS = null; // CSS that goes to the customizer + public $fieldsValues = array(); //all fields values in an id=>value array so we can check dependencies + public $fieldsHidden = array(); //all fields that didn't pass the dependency test and are hidden + public $toHide = array(); // Values to hide on page load + public $typography = null; //values to generate google font CSS + public $import_export = null; + public $no_panel = array(); // Fields that are not visible in the panel + private $show_hints = false; + public $hidden_perm_fields = array(); // Hidden fields specified by 'permissions' arg. + public $hidden_perm_sections = array(); // Hidden sections specified by 'permissions' arg. + public $typography_preview = array(); + public $args = array(); + public $filesystem = null; + public $font_groups = array(); + public $lang = ""; + public $dev_mode_forced = false; + public $reload_fields = array(); + public $omit_share_icons = false; + public $omit_admin_items = false; + public $apiHasRun = false; + public $transients; + + /** + * Class Constructor. Defines the args for the theme options class + * + * @since 1.0.0 + * + * @param array $sections Panel sections. + * @param array $args Class constructor arguments. + * @param array $extra_tabs Extra panel tabs. // REMOVE + * + * @return \ReduxFramework + */ + public function __construct( $sections = array(), $args = array(), $extra_tabs = array() ) { + // Disregard WP AJAX 'heartbeat'call. Why waste resources? + if ( isset ( $_POST ) && isset ( $_POST['action'] ) && $_POST['action'] == 'heartbeat' ) { + + // Hook, for purists. + if ( has_action( 'redux/ajax/heartbeat' ) ) { + do_action( 'redux/ajax/heartbeat', $this ); + } + + // Buh bye! + return; + } + + // Pass parent pointer to function helper. + Redux_Functions::$_parent = $this; + Redux_CDN::$_parent = $this; + + // Set values + $this->set_default_args(); + $this->args = wp_parse_args( $args, $this->args ); + + if ( empty ( $this->args['transient_time'] ) ) { + $this->args['transient_time'] = 60 * MINUTE_IN_SECONDS; + } + + if ( empty ( $this->args['footer_credit'] ) ) { + $this->args['footer_credit'] = '' . sprintf( __( 'Options panel created using %1$s', 'redux-framework' ), '' . __( 'Redux Framework', 'redux-framework' ) . ' v' . self::$_version ) . ''; + } + + if ( empty ( $this->args['menu_title'] ) ) { + $this->args['menu_title'] = __( 'Options', 'redux-framework' ); + } + + if ( empty ( $this->args['page_title'] ) ) { + $this->args['page_title'] = __( 'Options', 'redux-framework' ); + } + + $this->old_opt_name = $this->args['opt_name']; + + /** + * filter 'redux/args/{opt_name}' + * + * @param array $args ReduxFramework configuration + */ + $this->args = apply_filters( "redux/args/{$this->args['opt_name']}", $this->args ); + + /** + * filter 'redux/options/{opt_name}/args' + * + * @param array $args ReduxFramework configuration + */ + $this->args = apply_filters( "redux/options/{$this->args['opt_name']}/args", $this->args ); + + if ( $this->args['opt_name'] == $this->old_opt_name ) { + unset( $this->old_opt_name ); + } + + // Do not save the defaults if we're on a live preview! + if ( $GLOBALS['pagenow'] == "customize" && isset( $_GET['theme'] ) && ! empty( $_GET['theme'] ) ) { + $this->args['save_defaults'] = false; + } + + if ( ! empty ( $this->args['opt_name'] ) ) { + /** + * SHIM SECTION + * Old variables and ways of doing things that need correcting. ;) + * */ + // Variable name change + if ( ! empty ( $this->args['page_cap'] ) ) { + $this->args['page_permissions'] = $this->args['page_cap']; + unset ( $this->args['page_cap'] ); + } + + if ( ! empty ( $this->args['page_position'] ) ) { + $this->args['page_priority'] = $this->args['page_position']; + unset ( $this->args['page_position'] ); + } + + if ( ! empty ( $this->args['page_type'] ) ) { + $this->args['menu_type'] = $this->args['page_type']; + unset ( $this->args['page_type'] ); + } + + // Auto create the page_slug appropriately + if ( empty( $this->args['page_slug'] ) ) { + if ( ! empty( $this->args['display_name'] ) ) { + $this->args['page_slug'] = sanitize_html_class( $this->args['display_name'] ); + } else if ( ! empty( $this->args['page_title'] ) ) { + $this->args['page_slug'] = sanitize_html_class( $this->args['page_title'] ); + } else if ( ! empty( $this->args['menu_title'] ) ) { + $this->args['page_slug'] = sanitize_html_class( $this->args['menu_title'] ); + } else { + $this->args['page_slug'] = str_replace( '-', '_', $this->args['opt_name'] ); + } + } + + $this->change_demo_defaults(); + + // Get rid of extra_tabs! Not needed. + if ( is_array( $extra_tabs ) && ! empty ( $extra_tabs ) ) { + foreach ( $extra_tabs as $tab ) { + array_push( $this->sections, $tab ); + } + } + + // Move to the first loop area! + /** + * filter 'redux-sections' + * + * @deprecated + * + * @param array $sections field option sections + */ + $this->sections = apply_filters( 'redux-sections', $sections ); // REMOVE LATER + /** + * filter 'redux-sections-{opt_name}' + * + * @deprecated + * + * @param array $sections field option sections + */ + $this->sections = apply_filters( "redux-sections-{$this->args['opt_name']}", $this->sections ); // REMOVE LATER + /** + * filter 'redux/options/{opt_name}/sections' + * + * @param array $sections field option sections + */ + $this->sections = apply_filters( "redux/options/{$this->args['opt_name']}/sections", $this->sections ); + + /** + * Construct hook + * action 'redux/construct' + * + * @param object $this ReduxFramework + */ + do_action( 'redux/construct', $this ); + + // Set the default values + $this->_default_cleanup(); + + // Internataionalization + $this->_internationalization(); + + $this->filesystem = Redux_Filesystem::get_instance( $this ); + + //set redux upload folder + $this->set_redux_content(); + + // Register extra extensions + $this->_register_extensions(); + + // Grab database values + $this->get_options(); + + // Tracking + if ( isset( $this->args['allow_tracking'] ) && $this->args['allow_tracking'] && Redux_Helpers::isTheme( __FILE__ ) ) { + $this->_tracking(); + } + + // Options page + add_action( 'admin_menu', array( $this, '_options_page' ) ); + + // Add a network menu + if ( $this->args['database'] == "network" && $this->args['network_admin'] ) { + add_action( 'network_admin_menu', array( $this, '_options_page' ) ); + } + + // Admin Bar menu + add_action( 'admin_bar_menu', array( + $this, + '_admin_bar_menu' + ), $this->args['admin_bar_priority'] ); + + // Register setting + add_action( 'admin_init', array( $this, '_register_settings' ) ); + + // Display admin notices in dev_mode + if ( true == $this->args['dev_mode'] ) { + if ( true == $this->args['update_notice'] ) { + // add_action( 'admin_init', array( $this, '_update_check' ) ); + } + } + + // Display admin notices + add_action( 'admin_notices', array( $this, '_admin_notices' ), 99 ); + + // Check for dismissed admin notices. + add_action( 'admin_init', array( $this, '_dismiss_admin_notice' ), 9 ); + + // Enqueue the admin page CSS and JS + if ( isset ( $_GET['page'] ) && $_GET['page'] == $this->args['page_slug'] ) { + add_action( 'admin_enqueue_scripts', array( $this, '_enqueue' ), 1 ); + } + + // Output dynamic CSS + // Frontend: Maybe enqueue dynamic CSS and Google fonts + if ( empty ( $this->args['output_location'] ) || in_array( 'frontend', $this->args['output_location'] ) ) { + add_action( 'wp_head', array( &$this, '_output_css' ), 150 ); + add_action( 'wp_enqueue_scripts', array( &$this, '_enqueue_output' ), 150 ); + } + + // Login page: Maybe enqueue dynamic CSS and Google fonts + if ( in_array( 'login', $this->args['output_location'] ) ) { + add_action( 'login_head', array( &$this, '_output_css' ), 150 ); + add_action( 'login_enqueue_scripts', array( &$this, '_enqueue_output' ), 150 ); + } + + // Admin area: Maybe enqueue dynamic CSS and Google fonts + if ( in_array( 'admin', $this->args['output_location'] ) ) { + add_action( 'admin_head', array( &$this, '_output_css' ), 150 ); + add_action( 'admin_enqueue_scripts', array( &$this, '_enqueue_output' ), 150 ); + } + + + add_action( 'wp_print_scripts', array( $this, 'vc_fixes' ), 100 ); + add_action( 'admin_enqueue_scripts', array( $this, 'vc_fixes' ), 100 ); + + + if ( $this->args['database'] == "network" && $this->args['network_admin'] ) { + add_action( 'network_admin_edit_redux_' . $this->args['opt_name'], array( + $this, + 'save_network_page' + ), 10, 0 ); + add_action( 'admin_bar_menu', array( $this, 'network_admin_bar' ), 999 ); + } + // Ajax saving!!! + add_action( "wp_ajax_" . $this->args['opt_name'] . '_ajax_save', array( $this, "ajax_save" ) ); + + if ( $this->args['dev_mode'] == true || Redux_Helpers::isLocalHost() == true ) { + require_once 'core/dashboard.php'; + new reduxDashboardWidget( $this ); + + if ( ! isset ( $GLOBALS['redux_notice_check'] ) || $GLOBALS['redux_notice_check'] == 0 ) { + require_once 'core/newsflash.php'; + + $params = array( + 'dir_name' => 'notice', + 'server_file' => 'http://reduxframework.com/wp-content/uploads/redux/redux_notice.json', + 'interval' => 3, + 'cookie_id' => 'redux_blast', + ); + + new reduxNewsflash( $this, $params ); + $GLOBALS['redux_notice_check'] = 1; + } + } + } + + /** + * Loaded hook + * action 'redux/loaded' + * + * @param object $this ReduxFramework + */ + do_action( 'redux/loaded', $this ); + } + + // __construct() + + private function set_redux_content() { + $upload_dir = wp_upload_dir(); + self::$_upload_dir = $upload_dir['basedir'] . '/redux/'; + self::$_upload_url = str_replace( array( + 'https://', + 'http://' + ), '//', $upload_dir['baseurl'] . '/redux/' ); + } + + private function set_default_args() { + $this->args = array( + 'opt_name' => '', + // Must be defined by theme/plugin + 'google_api_key' => '', + // Must be defined to update the google fonts cache for the typography module + 'google_update_weekly' => false, + // Set to keep your google fonts updated weekly + 'last_tab' => '', + // force a specific tab to always show on reload + 'menu_icon' => '', + // menu icon + 'menu_title' => '', + // menu title/text + 'page_title' => '', + // option page title + 'page_slug' => '', + 'page_permissions' => 'manage_options', + 'menu_type' => 'menu', + // ('menu'|'submenu') + 'page_parent' => 'themes.php', + // requires menu_type = 'submenu + 'page_priority' => null, + 'allow_sub_menu' => true, + // allow submenus to be added if menu_type == menu + 'save_defaults' => true, + // Save defaults to the DB on it if empty + 'footer_credit' => '', + 'async_typography' => false, + 'disable_google_fonts_link' => false, + 'class' => '', + // Class that gets appended to all redux-containers + 'admin_bar' => true, + 'admin_bar_priority' => 999, + // Show the panel pages on the admin bar + 'admin_bar_icon' => '', + // admin bar icon + 'help_tabs' => array(), + 'help_sidebar' => '', + 'database' => '', + // possible: options, theme_mods, theme_mods_expanded, transient, network + 'customizer' => false, + // setting to true forces get_theme_mod_expanded + 'global_variable' => '', + // Changes global variable from $GLOBALS['YOUR_OPT_NAME'] to whatever you set here. false disables the global variable + 'output' => true, + // Dynamically generate CSS + 'compiler' => true, + // Initiate the compiler hook + 'output_tag' => true, + // Print Output Tag + 'output_location' => array( 'frontend' ), + // Where the dynamic CSS will be added. Can be any combination from: 'frontend', 'login', 'admin' + 'transient_time' => '', + 'default_show' => false, + // If true, it shows the default value + 'default_mark' => '', + // What to print by the field's title if the value shown is default + 'update_notice' => true, + // Recieve an update notice of new commits when in dev mode + 'disable_save_warn' => false, + // Disable the save warn + 'open_expanded' => false, + 'hide_expand' => false, + // Start the panel fully expanded to start with + 'network_admin' => false, + // Enable network admin when using network database mode + 'network_sites' => true, + // Enable sites as well as admin when using network database mode + 'hide_reset' => false, + 'hide_save' => false, + 'hints' => array( + 'icon' => 'el el-question-sign', + 'icon_position' => 'right', + 'icon_color' => 'lightgray', + 'icon_size' => 'normal', + 'tip_style' => array( + 'color' => 'light', + 'shadow' => true, + 'rounded' => false, + 'style' => '', + ), + 'tip_position' => array( + 'my' => 'top_left', + 'at' => 'bottom_right', + ), + 'tip_effect' => array( + 'show' => array( + 'effect' => 'slide', + 'duration' => '500', + 'event' => 'mouseover', + ), + 'hide' => array( + 'effect' => 'fade', + 'duration' => '500', + 'event' => 'click mouseleave', + ), + ), + ), + 'show_import_export' => true, + 'show_options_object' => true, + 'dev_mode' => true, + 'templates_path' => '', + // Path to the templates file for various Redux elements + 'ajax_save' => true, + // Disable the use of ajax saving for the panel + 'use_cdn' => true, + 'cdn_check_time' => 1440, + 'options_api' => true, + ); + } + + // Fix conflicts with Visual Composer. + public function vc_fixes() { + if ( redux_helpers::isFieldInUse( $this, 'ace_editor' ) ) { + wp_dequeue_script( 'wpb_ace' ); + wp_deregister_script( 'wpb_ace' ); + } + } + + public function network_admin_bar( $wp_admin_bar ) { + + $args = array( + 'id' => $this->args['opt_name'] . '_network_admin', + 'title' => $this->args['menu_title'], + 'parent' => 'network-admin', + 'href' => network_admin_url( 'settings.php' ) . '?page=' . $this->args['page_slug'], + 'meta' => array( 'class' => 'redux-network-admin' ) + ); + $wp_admin_bar->add_node( $args ); + } + + public function save_network_page() { + + $data = $this->_validate_options( $_POST[ $this->args['opt_name'] ] ); + + if ( ! empty ( $data ) ) { + $this->set_options( $data ); + } + + wp_redirect( add_query_arg( array( + 'page' => $this->args['page_slug'], + 'updated' => 'true' + ), network_admin_url( 'settings.php' ) ) ); + exit (); + } + + public function _update_check() { + // Only one notice per instance please + if ( ! isset ( $GLOBALS['redux_update_check'] ) ) { + Redux_Functions::updateCheck($this, self::$_version ); + $GLOBALS['redux_update_check'] = 1; + } + } + + public function _admin_notices() { + Redux_Admin_Notices::adminNotices($this, $this->admin_notices ); + } + + public function _dismiss_admin_notice() { + Redux_Admin_Notices::dismissAdminNotice(); + } + + /** + * Load the plugin text domain for translation. + * + * @since 3.0.5 + */ + private function _internationalization() { + + /** + * Locale for text domain + * filter 'redux/textdomain/{opt_name}' + * + * @param string The locale of the blog or from the 'locale' hook + * @param string 'redux-framework' text domain + */ + // $locale = apply_filters( "redux/textdomain/{$this->args['opt_name']}", get_locale(), 'redux-framework' ); + // + // if ( strpos( $locale, '_' ) === false ) { + // if ( file_exists( self::$_dir . 'languages/' . strtolower( $locale ) . '_' . strtoupper( $locale ) . '.mo' ) ) { + // $locale = strtolower( $locale ) . '_' . strtoupper( $locale ); + // } + // } + + $basename = basename( __FILE__ ); + $basepath = plugin_basename( __FILE__ ); + $basepath = str_replace( $basename, '', $basepath ); + + $basepath = apply_filters( "redux/textdomain/basepath/{$this->args['opt_name']}", $basepath ); + + $loaded = load_plugin_textdomain( 'redux-framework', false, $basepath . 'languages'); + + if ( !$loaded ){ + $loaded = load_muplugin_textdomain( 'redux-framework', $basepath . 'languages' ); + } + + if ( !$loaded ){ + $loaded = load_theme_textdomain( 'redux-framework', $basepath . 'languages' ); + } + + if ( ! $loaded ) { + $locale = apply_filters( 'plugin_locale', get_locale(), 'redux-framework' ); + $mofile = dirname( __FILE__ ) . '/languages/redux-framework-' . $locale . '.mo'; + load_textdomain( 'redux-framework', $mofile ); + } + } + // _internationalization() + + /** + * @return ReduxFramework + */ + public function get_instance() { + //self::$_instance = $this; + return self::$instance; + } + + // get_instance() + + private function _tracking() { + if ( file_exists( dirname( __FILE__ ) . '/inc/tracking.php' ) ) { + require_once dirname( __FILE__ ) . '/inc/tracking.php'; + $tracking = Redux_Tracking::get_instance(); + $tracking->load( $this ); + } + } + // _tracking() + + /** + * ->_get_default(); This is used to return the default value if default_show is set + * + * @since 1.0.1 + * @access public + * + * @param string $opt_name The option name to return + * @param mixed $default (null) The value to return if default not set + * + * @return mixed $default + */ + public function _get_default( $opt_name, $default = null ) { + if ( $this->args['default_show'] == true ) { + + if ( empty ( $this->options_defaults ) ) { + $this->_default_values(); // fill cache + } + + $default = array_key_exists( $opt_name, $this->options_defaults ) ? $this->options_defaults[ $opt_name ] : $default; + } + + return $default; + } + // _get_default() + + /** + * ->get(); This is used to return and option value from the options array + * + * @since 1.0.0 + * @access public + * + * @param string $opt_name The option name to return + * @param mixed $default (null) The value to return if option not set + * + * @return mixed + */ + public function get( $opt_name, $default = null ) { + return ( ! empty ( $this->options[ $opt_name ] ) ) ? $this->options[ $opt_name ] : $this->_get_default( $opt_name, $default ); + } + // get() + + /** + * ->set(); This is used to set an arbitrary option in the options array + * + * @since 1.0.0 + * @access public + * + * @param string $opt_name The name of the option being added + * @param mixed $value The value of the option being added + * + * @return void + */ + public function set( $opt_name = '', $value = '' ) { + if ( $opt_name != '' ) { + $this->options[ $opt_name ] = $value; + $this->set_options( $this->options ); + } + } + // set() + + /** + * Set a global variable by the global_variable argument + * + * @since 3.1.5 + * @return bool (global was set) + */ + private function set_global_variable() { + if ( $this->args['global_variable'] ) { + $option_global = $this->args['global_variable']; + /** + * filter 'redux/options/{opt_name}/global_variable' + * + * @param array $value option value to set global_variable with + */ + $GLOBALS[ $this->args['global_variable'] ] = apply_filters( "redux/options/{$this->args['opt_name']}/global_variable", $this->options ); + if ( isset ( $this->transients['last_save'] ) ) { + // Deprecated + $GLOBALS[ $this->args['global_variable'] ]['REDUX_last_saved'] = $this->transients['last_save']; + // Last save key + $GLOBALS[ $this->args['global_variable'] ]['REDUX_LAST_SAVE'] = $this->transients['last_save']; + } + if ( isset ( $this->transients['last_compiler'] ) ) { + // Deprecated + $GLOBALS[ $this->args['global_variable'] ]['REDUX_COMPILER'] = $this->transients['last_compiler']; + // Last compiler hook key + $GLOBALS[ $this->args['global_variable'] ]['REDUX_LAST_COMPILER'] = $this->transients['last_compiler']; + } + + return true; + } + + return false; + } + // set_global_variable() + + /** + * ->set_options(); This is used to set an arbitrary option in the options array + * + * @since ReduxFramework 3.0.0 + * + * @param mixed $value the value of the option being added + */ + public function set_options( $value = '' ) { + + $this->transients['last_save'] = time(); + + if ( ! empty ( $value ) ) { + + $this->options = $value; + + if ( $this->args['database'] === 'transient' ) { + set_transient( $this->args['opt_name'] . '-transient', $value, $this->args['transient_time'] ); + } else if ( $this->args['database'] === 'theme_mods' ) { + set_theme_mod( $this->args['opt_name'] . '-mods', $value ); + } else if ( $this->args['database'] === 'theme_mods_expanded' ) { + foreach ( $value as $k => $v ) { + set_theme_mod( $k, $v ); + } + } else if ( $this->args['database'] === 'network' ) { + // Strip those slashes! + //$value = json_decode( stripslashes( json_encode( $value ) ), true ); + update_site_option( $this->args['opt_name'], $value ); + } else { + update_option( $this->args['opt_name'], $value ); + } + + // Store the changed values in the transient + if ( $value != $this->options ) { + foreach ( $value as $k => $v ) { + if ( ! isset ( $this->options[ $k ] ) ) { + $this->options[ $k ] = ""; + } else if ( $v == $this->options[ $k ] ) { + unset ( $this->options[ $k ] ); + } + } + $this->transients['changed_values'] = $this->options; + } + + $this->options = $value; + + // Set a global variable by the global_variable argument. + $this->set_global_variable(); + + // Saving the transient values + $this->set_transients(); + + //do_action( "redux-saved-{$this->args['opt_name']}", $value ); // REMOVE + //do_action( "redux/options/{$this->args['opt_name']}/saved", $value, $this->transients['changed_values'] ); + } + } + // set_options() + + /** + * ->get_options(); This is used to get options from the database + * + * @since ReduxFramework 3.0.0 + */ + public function get_options() { + $defaults = false; + + if ( ! empty ( $this->defaults ) ) { + $defaults = $this->defaults; + } + + if ( $this->args['database'] === "transient" ) { + $result = get_transient( $this->args['opt_name'] . '-transient' ); + } else if ( $this->args['database'] === "theme_mods" ) { + $result = get_theme_mod( $this->args['opt_name'] . '-mods' ); + } else if ( $this->args['database'] === 'theme_mods_expanded' ) { + $result = get_theme_mods(); + } else if ( $this->args['database'] === 'network' ) { + $result = get_site_option( $this->args['opt_name'], array() ); + //$result = json_decode( stripslashes( json_encode( $result ) ), true ); + } else { + $result = get_option( $this->args['opt_name'], array() ); + } + + if ( empty ( $result ) && ! empty ( $defaults ) ) { + $results = $defaults; + $this->set_options( $results ); + } else { + $this->options = $result; + } + + /** + * action 'redux/options/{opt_name}/options' + * + * @param mixed $value option values + */ + $this->options = apply_filters( "redux/options/{$this->args['opt_name']}/options", $this->options ); + + // Get transient values + $this->get_transients(); + + // Set a global variable by the global_variable argument. + $this->set_global_variable(); + } + // get_options() + + /** + * ->get_wordpress_date() - Get Wordpress specific data from the DB and return in a usable array + * + * @since ReduxFramework 3.0.0 + */ + public function get_wordpress_data( $type = false, $args = array() ) { + $data = ""; + //return $data; + /** + * filter 'redux/options/{opt_name}/wordpress_data/{type}/' + * + * @deprecated + * + * @param string $data + */ + $data = apply_filters( "redux/options/{$this->args['opt_name']}/wordpress_data/$type/", $data ); // REMOVE LATER + + /** + * filter 'redux/options/{opt_name}/data/{type}' + * + * @param string $data + */ + $data = apply_filters( "redux/options/{$this->args['opt_name']}/data/$type", $data ); + + $argsKey = md5( serialize( $args ) ); + + if ( empty ( $data ) && isset ( $this->wp_data[ $type . $argsKey ] ) ) { + $data = $this->wp_data[ $type . $argsKey ]; + } + + if ( empty ( $data ) && ! empty ( $type ) ) { + + /** + * Use data from Wordpress to populate options array + * */ + if ( ! empty ( $type ) && empty ( $data ) ) { + if ( empty ( $args ) ) { + $args = array(); + } + + $data = array(); + $args = wp_parse_args( $args, array() ); + + if ( $type == "categories" || $type == "category" ) { + $cats = get_categories( $args ); + if ( ! empty ( $cats ) ) { + foreach ( $cats as $cat ) { + $data[ $cat->term_id ] = $cat->name; + } + //foreach + } // If + } else if ( $type == "menus" || $type == "menu" ) { + $menus = wp_get_nav_menus( $args ); + if ( ! empty ( $menus ) ) { + foreach ( $menus as $item ) { + $data[ $item->term_id ] = $item->name; + } + //foreach + } + //if + } else if ( $type == "pages" || $type == "page" ) { + if ( ! isset ( $args['posts_per_page'] ) ) { + $args['posts_per_page'] = 20; + } + $pages = get_pages( $args ); + if ( ! empty ( $pages ) ) { + foreach ( $pages as $page ) { + $data[ $page->ID ] = $page->post_title; + } + //foreach + } + //if + } else if ( $type == "terms" || $type == "term" ) { + $taxonomies = $args['taxonomies']; + unset ( $args['taxonomies'] ); + $terms = get_terms( $taxonomies, $args ); // this will get nothing + if ( ! empty ( $terms ) && ! is_a( $terms, 'WP_Error' ) ) { + foreach ( $terms as $term ) { + $data[ $term->term_id ] = $term->name; + } + //foreach + } // If + } else if ( $type == "taxonomy" || $type == "taxonomies" ) { + $taxonomies = get_taxonomies( $args ); + if ( ! empty ( $taxonomies ) ) { + foreach ( $taxonomies as $key => $taxonomy ) { + $data[ $key ] = $taxonomy; + } + //foreach + } // If + } else if ( $type == "posts" || $type == "post" ) { + $posts = get_posts( $args ); + if ( ! empty ( $posts ) ) { + foreach ( $posts as $post ) { + $data[ $post->ID ] = $post->post_title; + } + //foreach + } + //if + } else if ( $type == "post_type" || $type == "post_types" ) { + global $wp_post_types; + + $defaults = array( + 'public' => true, + 'exclude_from_search' => false, + ); + $args = wp_parse_args( $args, $defaults ); + $output = 'names'; + $operator = 'and'; + $post_types = get_post_types( $args, $output, $operator ); + + ksort( $post_types ); + + foreach ( $post_types as $name => $title ) { + if ( isset ( $wp_post_types[ $name ]->labels->menu_name ) ) { + $data[ $name ] = $wp_post_types[ $name ]->labels->menu_name; + } else { + $data[ $name ] = ucfirst( $name ); + } + } + } else if ( $type == "tags" || $type == "tag" ) { // NOT WORKING! + $tags = get_tags( $args ); + if ( ! empty ( $tags ) ) { + foreach ( $tags as $tag ) { + $data[ $tag->term_id ] = $tag->name; + } + //foreach + } + //if + } else if ( $type == "menu_location" || $type == "menu_locations" ) { + global $_wp_registered_nav_menus; + + foreach ( $_wp_registered_nav_menus as $k => $v ) { + $data[ $k ] = $v; + } + } else if ( $type == "image_size" || $type == "image_sizes" ) { + global $_wp_additional_image_sizes; + + foreach ( $_wp_additional_image_sizes as $size_name => $size_attrs ) { + $data[ $size_name ] = $size_name . ' - ' . $size_attrs['width'] . ' x ' . $size_attrs['height']; + } + } else if ( $type == "elusive-icons" || $type == "elusive-icon" || $type == "elusive" || + $type == "font-icon" || $type == "font-icons" || $type == "icons" + ) { + + /** + * filter 'redux-font-icons' + * + * @deprecated + * + * @param array $font_icons array of elusive icon classes + */ + $font_icons = apply_filters( 'redux-font-icons', array() ); // REMOVE LATER + + /** + * filter 'redux/font-icons' + * + * @deprecated + * + * @param array $font_icons array of elusive icon classes + */ + $font_icons = apply_filters( 'redux/font-icons', $font_icons ); + + /** + * filter 'redux/{opt_name}/field/font/icons' + * + * @deprecated + * + * @param array $font_icons array of elusive icon classes + */ + $font_icons = apply_filters( "redux/{$this->args['opt_name']}/field/font/icons", $font_icons ); + + foreach ( $font_icons as $k ) { + $data[ $k ] = $k; + } + } else if ( $type == "roles" ) { + /** @global WP_Roles $wp_roles */ + global $wp_roles; + + $data = $wp_roles->get_names(); + } else if ( $type == "sidebars" || $type == "sidebar" ) { + /** @global array $wp_registered_sidebars */ + global $wp_registered_sidebars; + + foreach ( $wp_registered_sidebars as $key => $value ) { + $data[ $key ] = $value['name']; + } + } else if ( $type == "capabilities" ) { + /** @global WP_Roles $wp_roles */ + global $wp_roles; + + foreach ( $wp_roles->roles as $role ) { + foreach ( $role['capabilities'] as $key => $cap ) { + $data[ $key ] = ucwords( str_replace( '_', ' ', $key ) ); + } + } + } else if ( $type == "callback" ) { + if ( ! is_array( $args ) ) { + $args = array( $args ); + } + $data = call_user_func( $args[0] ); + } else if ( $type == "users" || $type == "users" ) { + $users = get_users( $args ); + if ( ! empty ( $users ) ) { + foreach ( $users as $user ) { + $data[ $user->ID ] = $user->display_name; + } + //foreach + } + //if + } + //if + } + //if + + $this->wp_data[ $type . $argsKey ] = $data; + } + + //if + + return $data; + } + // get_wordpress_data() + + /** + * ->show(); This is used to echo and option value from the options array + * + * @since 1.0.0 + * @access public + * + * @param string $opt_name The name of the option being shown + * @param mixed $default The value to show if $opt_name isn't set + * + * @return void + */ + public function show( $opt_name, $default = '' ) { + $option = $this->get( $opt_name ); + if ( ! is_array( $option ) && $option != '' ) { + echo $option; + } elseif ( $default != '' ) { + echo $this->_get_default( $opt_name, $default ); + } + } + // show() + + /** + * Get the default value for an option + * + * @since 3.3.6 + * @access public + * + * @param string $key The option's ID + * @param string $array_key The key of the default's array + * + * @return mixed + */ + public function get_default_value( $key, $array_key = false ) { + if ( empty ( $this->options_defaults ) ) { + $this->options_defaults = $this->_default_values(); + } + + $defaults = $this->options_defaults; + $value = ''; + + if ( isset ( $defaults[ $key ] ) ) { + if ( $array_key !== false && isset ( $defaults[ $key ][ $array_key ] ) ) { + $value = $defaults[ $key ][ $array_key ]; + } else { + $value = $defaults[ $key ]; + } + } + + return $value; + } + + public function field_default_values( $field ) { + // Detect what field types are being used + if ( ! isset ( $this->fields[ $field['type'] ][ $field['id'] ] ) ) { + $this->fields[ $field['type'] ][ $field['id'] ] = 1; + } else { + $this->fields[ $field['type'] ] = array( $field['id'] => 1 ); + } + if ( isset ( $field['default'] ) ) { + $this->options_defaults[ $field['id'] ] = apply_filters( "redux/{$this->args['opt_name']}/field/{$field['type']}/defaults", $field['default'], $field ); + } elseif ( ( $field['type'] != "ace_editor" ) ) { + // Sorter data filter + + if ( isset( $field['data'] ) && ! empty( $field['data'] ) ) { + if ( ! isset( $field['args'] ) ) { + $field['args'] = array(); + } + if ( is_array( $field['data'] ) && ! empty( $field['data'] ) ) { + foreach ( $field['data'] as $key => $data ) { + if ( ! empty( $data ) ) { + if ( ! isset ( $field['args'][ $key ] ) ) { + $field['args'][ $key ] = array(); + } + $field['options'][ $key ] = $this->get_wordpress_data( $data, $field['args'][ $key ] ); + } + } + } else { + $field['options'] = $this->get_wordpress_data( $field['data'], $field['args'] ); + } + } + + if ( $field['type'] == "sorter" && isset ( $field['data'] ) && ! empty ( $field['data'] ) && is_array( $field['data'] ) ) { + if ( ! isset ( $field['args'] ) ) { + $field['args'] = array(); + } + foreach ( $field['data'] as $key => $data ) { + if ( ! isset ( $field['args'][ $key ] ) ) { + $field['args'][ $key ] = array(); + } + $field['options'][ $key ] = $this->get_wordpress_data( $data, $field['args'][ $key ] ); + } + } + + if ( isset ( $field['options'] ) ) { + if ( $field['type'] == "sortable" ) { + $this->options_defaults[ $field['id'] ] = array(); + } elseif ( $field['type'] == "image_select" ) { + $this->options_defaults[ $field['id'] ] = ''; + } elseif ( $field['type'] == "select" ) { + $this->options_defaults[ $field['id'] ] = ''; + } else { + $this->options_defaults[ $field['id'] ] = $field['options']; + } + } + } + } + + /** + * Get default options into an array suitable for the settings API + * + * @since 1.0.0 + * @access public + * @return array $this->options_defaults + */ + public function _default_values() { + if ( ! is_null( $this->sections ) && is_null( $this->options_defaults ) ) { + + // fill the cache + foreach ( $this->sections as $sk => $section ) { + if ( ! isset ( $section['id'] ) ) { + if ( ! is_numeric( $sk ) || ! isset ( $section['title'] ) ) { + $section['id'] = $sk; + } else { + $section['id'] = sanitize_title( $section['title'], $sk ); + } + $this->sections[ $sk ] = $section; + } + if ( isset ( $section['fields'] ) ) { + foreach ( $section['fields'] as $k => $field ) { + if ( empty ( $field['id'] ) && empty ( $field['type'] ) ) { + continue; + } + + if ( in_array( $field['type'], array( 'ace_editor' ) ) && isset ( $field['options'] ) ) { + $this->sections[ $sk ]['fields'][ $k ]['args'] = $field['options']; + unset ( $this->sections[ $sk ]['fields'][ $k ]['options'] ); + } + + if ( $field['type'] == "section" && isset ( $field['indent'] ) && $field['indent'] == "true" ) { + $field['class'] = isset ( $field['class'] ) ? $field['class'] : ''; + $field['class'] .= " redux-section-indent-start"; + $this->sections[ $sk ]['fields'][ $k ] = $field; + } + $this->field_default_values( $field ); + } + } + } + } + + /** + * filter 'redux/options/{opt_name}/defaults' + * + * @param array $defaults option default values + */ + $this->transients['changed_values'] = isset ( $this->transients['changed_values'] ) ? $this->transients['changed_values'] : array(); + $this->options_defaults = apply_filters( "redux/options/{$this->args['opt_name']}/defaults", $this->options_defaults, $this->transients['changed_values'] ); + + return $this->options_defaults; + } + + /** + * Set default options on admin_init if option doesn't exist + * + * @since 1.0.0 + * @access public + * @return void + */ + private function _default_cleanup() { + + // Fix the global variable name + if ( $this->args['global_variable'] == "" && $this->args['global_variable'] !== false ) { + $this->args['global_variable'] = str_replace( '-', '_', $this->args['opt_name'] ); + } + + // Force dev_mode on WP_DEBUG = true and if it's a local server + if ( Redux_Helpers::isLocalHost() || ( Redux_Helpers::isWpDebug() ) ) { + if ( $this->args['dev_mode'] != true ) { + $this->args['update_notice'] = false; + } + $this->dev_mode_forced = true; + $this->args['dev_mode'] = true; +// if ( isset( $this->args['forced_dev_mode_off'] ) && $this->args['forced_dev_mode_off'] == true ) { +// $this->dev_mode_forced = false; +// $this->args['dev_mode'] = false; +// } + } + + if ( isset( $this->args['customizer_only'] ) && $this->args['customizer_only'] == true ) { + $this->args['menu_type'] = 'hidden'; + $this->args['customizer'] = true; + $this->args['admin_bar'] = false; + $this->args['allow_sub_menu'] = false; + } + + // Check if the Airplane Mode plugin is installed + if ( class_exists( 'Airplane_Mode_Core' ) ) { + $airplane = Airplane_Mode_Core::getInstance(); + if ( method_exists( $airplane, 'enabled' ) ) { + if ( $airplane->enabled() ) { + $this->args['use_cdn'] = false; + } + } else if ( $airplane->check_status() == 'on' ) { + $this->args['use_cdn'] = false; + } + } + } + + /** + * Class Add Sub Menu Function, creates options submenu in Wordpress admin area. + * + * @since 3.1.9 + * @access private + * @return void + */ + private function add_submenu( $page_parent, $page_title, $menu_title, $page_permissions, $page_slug ) { + global $submenu; + + // Just in case. One never knows. + $page_parent = strtolower( $page_parent ); + + $test = array( + 'index.php' => 'dashboard', + 'edit.php' => 'posts', + 'upload.php' => 'media', + 'link-manager.php' => 'links', + 'edit.php?post_type=page' => 'pages', + 'edit-comments.php' => 'comments', + 'themes.php' => 'theme', + 'plugins.php' => 'plugins', + 'users.php' => 'users', + 'tools.php' => 'management', + 'options-general.php' => 'options', + ); + + if ( isset ( $test[ $page_parent ] ) ) { + $function = 'add_' . $test[ $page_parent ] . '_page'; + $this->page = $function ( + $page_title, $menu_title, $page_permissions, $page_slug, array( $this, 'generate_panel' ) + ); + } else { + // Network settings and Post type menus. These do not have + // wrappers and need to be appened to using add_submenu_page. + // Okay, since we've left the post type menu appending + // as default, we need to validate it, so anything that + // isn't post_type= doesn't get through and mess + // things up. + $addMenu = false; + if ( 'settings.php' != $page_parent ) { + // Establish the needle + $needle = '?post_type='; + + // Check if it exists in the page_parent (how I miss instr) + $needlePos = strrpos( $page_parent, $needle ); + + // It's there, so... + if ( $needlePos > 0 ) { + + // Get the post type. + $postType = substr( $page_parent, $needlePos + strlen( $needle ) ); + + // Ensure it exists. + if ( post_type_exists( $postType ) ) { + // Set flag to add the menu page + $addMenu = true; + } + // custom menu + } elseif ( isset ( $submenu[ $this->args['page_parent'] ] ) ) { + $addMenu = true; + } else { + global $menu; + + foreach ( $menu as $menupriority => $menuitem ) { + $needle_menu_slug = isset ( $menuitem ) ? $menuitem[2] : false; + if ( $needle_menu_slug != false ) { + + // check if the current needle menu equals page_parent + if ( strcasecmp( $needle_menu_slug, $page_parent ) == 0 ) { + + // found an empty parent menu + $addMenu = true; + } + } + } + } + } else { + // The page_parent was settings.php, so set menu add + // flag to true. + $addMenu = true; + } + // Add the submenu if it's permitted. + if ( true == $addMenu ) { + // ONLY for non-wp.org themes OR plugins. Theme-Check alert shown if used and IS theme. + $this->page = call_user_func( 'add_submenu_page', $page_parent, $page_title, $menu_title, $page_permissions, $page_slug, array( + &$this, + 'generate_panel' + ) ); + } + } + } + + /** + * Class Options Page Function, creates main options page. + * + * @since 1.0.0 + * @access public + * @return void + */ + public function _options_page() { + + if ( $this->args['menu_type'] == 'hidden' ) { + + // No menu to add! + } else if ( $this->args['menu_type'] == 'submenu' ) { + $this->add_submenu( + $this->args['page_parent'], $this->args['page_title'], $this->args['menu_title'], $this->args['page_permissions'], $this->args['page_slug'] + ); + } else { + // Theme-Check notice is displayed for WP.org theme devs, informing them to NOT use this. + $this->page = call_user_func( 'add_menu_page', $this->args['page_title'], $this->args['menu_title'], $this->args['page_permissions'], $this->args['page_slug'], array( + &$this, + 'generate_panel' + ), $this->args['menu_icon'], $this->args['page_priority'] + ); + + if ( true === $this->args['allow_sub_menu'] ) { + foreach ( $this->sections as $k => $section ) { + $canBeSubSection = ( $k > 0 && ( ! isset ( $this->sections[ ( $k ) ]['type'] ) || $this->sections[ ( $k ) ]['type'] != "divide" ) ) ? true : false; + if ( ! isset ( $section['title'] ) || ( $canBeSubSection && ( isset ( $section['subsection'] ) && $section['subsection'] == true ) ) ) { + continue; + } + if ( isset ( $section['submenu'] ) && $section['submenu'] == false ) { + continue; + } + if ( isset ( $section['customizer_only'] ) && $section['customizer_only'] == true ) { + continue; + } + if ( isset ( $section['hidden'] ) && $section['hidden'] == true ) { + continue; + } + if ( isset( $section['permissions'] ) && ! self::current_user_can( $section['permissions'] ) ) { + continue; + } + // ONLY for non-wp.org themes OR plugins. Theme-Check alert shown if used and IS theme. + call_user_func( 'add_submenu_page', $this->args['page_slug'], $section['title'], $section['title'], $this->args['page_permissions'], $this->args['page_slug'] . '&tab=' . $k, + //create_function( '$a', "return null;" ) + '__return_null' ); + } + // Remove parent submenu item instead of adding null item. + remove_submenu_page( $this->args['page_slug'], $this->args['page_slug'] ); + } + } + + add_action( "load-{$this->page}", array( &$this, '_load_page' ) ); + } + // _options_page() + + /** + * Add admin bar menu + * + * @since 3.1.5.16 + * @access public + * @global $menu , $submenu, $wp_admin_bar + * @return void + */ + public function _admin_bar_menu() { + global $menu, $submenu, $wp_admin_bar; + + if ( ! is_super_admin() || ! is_admin_bar_showing() || ! $this->args['admin_bar'] || $this->args['menu_type'] == 'hidden' ) { + return; + } + + if ( $menu ) { + foreach ( $menu as $menu_item ) { + if ( isset ( $menu_item[2] ) && $menu_item[2] === $this->args["page_slug"] ) { + + // Fetch the title + $title = empty ( $this->args['admin_bar_icon'] ) ? $menu_item[0] : '' . $menu_item[0]; + + $nodeargs = array( + 'id' => $menu_item[2], + 'title' => $title, + 'href' => admin_url( 'admin.php?page=' . $menu_item[2] ), + 'meta' => array() + ); + $wp_admin_bar->add_node( $nodeargs ); + + break; + } + } + + if ( isset ( $submenu[ $this->args["page_slug"] ] ) && is_array( $submenu[ $this->args["page_slug"] ] ) ) { + foreach ( $submenu[ $this->args["page_slug"] ] as $index => $redux_options_submenu ) { + $subnodeargs = array( + 'id' => $this->args["page_slug"] . '_' . $index, + 'title' => $redux_options_submenu[0], + 'parent' => $this->args["page_slug"], + 'href' => admin_url( 'admin.php?page=' . $redux_options_submenu[2] ), + ); + + $wp_admin_bar->add_node( $subnodeargs ); + } + } + + // Let's deal with external links + if ( isset ( $this->args['admin_bar_links'] ) ) { + + if ( ! $this->args['dev_mode'] && $this->omit_admin_items ) { + return; + } + + // Group for Main Root Menu (External Group) + $wp_admin_bar->add_node( array( + 'id' => $this->args["page_slug"] . '-external', + 'parent' => $this->args["page_slug"], + 'group' => true, + 'meta' => array( 'class' => 'ab-sub-secondary' ) + ) ); + + // Add Child Menus to External Group Menu + foreach ( $this->args['admin_bar_links'] as $link ) { + if ( ! isset ( $link['id'] ) ) { + $link['id'] = $this->args["page_slug"] . '-sub-' . sanitize_html_class( $link['title'] ); + } + $externalnodeargs = array( + 'id' => $link['id'], + 'title' => $link['title'], + 'parent' => $this->args["page_slug"] . '-external', + 'href' => $link['href'], + 'meta' => array( 'target' => '_blank' ) + ); + + $wp_admin_bar->add_node( $externalnodeargs ); + } + } + } else { + // Fetch the title + $title = empty ( $this->args['admin_bar_icon'] ) ? $this->args['menu_title'] : '' . $this->args['menu_title']; + + $nodeargs = array( + 'id' => $this->args["page_slug"], + 'title' => $title, + 'href' => admin_url( 'admin.php?page=' . $this->args["page_slug"] ), + 'meta' => array() + ); + + $wp_admin_bar->add_node( $nodeargs ); + } + } + // _admin_bar_menu() + + /** + * Output dynamic CSS at bottom of HEAD + * + * @since 3.2.8 + * @access public + * @return void + */ + public function _output_css() { + if ( $this->args['output'] == false && $this->args['compiler'] == false ) { + return; + } + + if ( isset ( $this->no_output ) ) { + return; + } + + if ( ! empty ( $this->outputCSS ) && ( $this->args['output_tag'] == true || ( isset ( $_POST['customized'] ) ) ) ) { + echo ''; + } + } + + /** + * Enqueue CSS and Google fonts for front end + * + * @since 1.0.0 + * @access public + * @return void + */ + public function _enqueue_output() { + if ( $this->args['output'] == false && $this->args['compiler'] == false ) { + return; + } + + /** @noinspection PhpUnusedLocalVariableInspection */ + foreach ( $this->sections as $k => $section ) { + if ( isset ( $section['type'] ) && ( $section['type'] == 'divide' ) ) { + continue; + } + + if ( isset ( $section['fields'] ) ) { + /** @noinspection PhpUnusedLocalVariableInspection */ + foreach ( $section['fields'] as $fieldk => $field ) { + if ( isset ( $field['type'] ) && $field['type'] != "callback" ) { + $field_class = "ReduxFramework_{$field['type']}"; + if ( ! class_exists( $field_class ) ) { + + if ( ! isset ( $field['compiler'] ) ) { + $field['compiler'] = ""; + } + + /** + * Field class file + * filter 'redux/{opt_name}/field/class/{field.type} + * + * @param string field class file + * @param array $field field config data + */ + $class_file = apply_filters( "redux/{$this->args['opt_name']}/field/class/{$field['type']}", self::$_dir . "inc/fields/{$field['type']}/field_{$field['type']}.php", $field ); + + if ( $class_file && file_exists( $class_file ) && ! class_exists( $field_class ) ) { + /** @noinspection PhpIncludeInspection */ + require_once $class_file; + } + } + + if ( ! empty ( $this->options[ $field['id'] ] ) && class_exists( $field_class ) && method_exists( $field_class, 'output' ) && $this->_can_output_css( $field ) ) { + $field = apply_filters( "redux/field/{$this->args['opt_name']}/output_css", $field ); + + if ( ! empty ( $field['output'] ) && ! is_array( $field['output'] ) ) { + $field['output'] = array( $field['output'] ); + } + + $value = isset ( $this->options[ $field['id'] ] ) ? $this->options[ $field['id'] ] : ''; + $enqueue = new $field_class ( $field, $value, $this ); + + if ( ( ( isset ( $field['output'] ) && ! empty ( $field['output'] ) ) || ( isset ( $field['compiler'] ) && ! empty ( $field['compiler'] ) ) || $field['type'] == "typography" || $field['type'] == "icon_select" ) ) { + $enqueue->output(); + } + } + } + } + } + } + + // For use like in the customizer. Stops the output, but passes the CSS in the variable for the compiler + if ( isset ( $this->no_output ) ) { + return; + } + + if ( ! empty ( $this->typography ) && ! empty ( $this->typography ) && filter_var( $this->args['output'], FILTER_VALIDATE_BOOLEAN ) ) { + $version = ! empty ( $this->transients['last_save'] ) ? $this->transients['last_save'] : ''; + $typography = new ReduxFramework_typography ( null, null, $this ); + + if ( $this->args['async_typography'] && ! empty ( $this->typography ) ) { + $families = array(); + foreach ( $this->typography as $key => $value ) { + $families[] = $key; + } + ?> + + args['disable_google_fonts_link'] ) { + $protocol = ( ! empty ( $_SERVER['HTTPS'] ) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443 ) ? "https:" : "http:"; + + //echo ''; + wp_register_style( 'redux-google-fonts-' . $this->args['opt_name'], $protocol . $typography->makeGoogleWebfontLink( $this->typography ), '', $version ); + wp_enqueue_style( 'redux-google-fonts-' . $this->args['opt_name'] ); + } + } + } + // _enqueue_output() + + /** + * Enqueue CSS/JS for options page + * + * @since 1.0.0 + * @access public + * @global $wp_styles + * @return void + */ + public function _enqueue() { + require_once 'core/enqueue.php'; + $enqueue = new reduxCoreEnqueue ( $this ); + $enqueue->init(); + } + // _enqueue() + + /** + * Show page help + * + * @since 1.0.0 + * @access public + * @return void + */ + public function _load_page() { + + // Do admin head action for this page + add_action( 'admin_head', array( &$this, 'admin_head' ) ); + + // Do admin footer text hook + add_filter( 'admin_footer_text', array( &$this, 'admin_footer_text' ) ); + + $screen = get_current_screen(); + + if ( is_array( $this->args['help_tabs'] ) ) { + foreach ( $this->args['help_tabs'] as $tab ) { + $screen->add_help_tab( $tab ); + } + } + + // If hint argument is set, display hint tab + if ( true == $this->show_hints ) { + global $current_user; + + // Users enable/disable hint choice + $hint_status = get_user_meta( $current_user->ID, 'ignore_hints' ) ? get_user_meta( $current_user->ID, 'ignore_hints', true ) : 'true'; + + // current page parameters + $curPage = esc_attr( $_GET['page'] ); + + $curTab = '0'; + if ( isset ( $_GET['tab'] ) ) { + $curTab = esc_attr( $_GET['tab'] ); + } + + // Default url values for enabling hints. + $dismiss = 'true'; + $s = __( 'Enable', 'redux-framework' ); + + // Values for disabling hints. + if ( 'true' == $hint_status ) { + $dismiss = 'false'; + $s = __( 'Disable', 'redux-framework' ); + } + + // Make URL + $url = '' . $s . ' hints'; + + $event = __( 'moving the mouse over', 'redux-framework' ); + if ( 'click' == $this->args['hints']['tip_effect']['show']['event'] ) { + $event = __( 'clicking', 'redux-framework' ); + } + + // Construct message + $msg = sprintf( __( 'Hints are tooltips that popup when %d the hint icon, offering addition information about the field in which they appear. They can be %d d by using the link below.', 'redux-framework' ), $event, strtolower( $s ) ) . '

    ' . $url; + + // Construct hint tab + $tab = array( + 'id' => 'redux-hint-tab', + 'title' => __( 'Hints', 'redux-framework' ), + 'content' => '

    ' . $msg . '

    ' + ); + + $screen->add_help_tab( $tab ); + } + + // Sidebar text + if ( $this->args['help_sidebar'] != '' ) { + + // Specify users text from arguments + $screen->set_help_sidebar( $this->args['help_sidebar'] ); + } else { + + // If sidebar text is empty and hints are active, display text + // about hints. + if ( true == $this->show_hints ) { + $screen->set_help_sidebar( '

    Redux Framework

    Hint Tooltip Preferences

    ' ); + } + } + + /** + * action 'redux-load-page-{opt_name}' + * + * @deprecated + * + * @param object $screen WP_Screen + */ + do_action( "redux-load-page-{$this->args['opt_name']}", $screen ); // REMOVE + + /** + * action 'redux/page/{opt_name}/load' + * + * @param object $screen WP_Screen + */ + do_action( "redux/page/{$this->args['opt_name']}/load", $screen ); + } + // _load_page() + + /** + * Do action redux-admin-head for options page + * + * @since 1.0.0 + * @access public + * @return void + */ + public function admin_head() { + /** + * action 'redux-admin-head-{opt_name}' + * + * @deprecated + * + * @param object $this ReduxFramework + */ + do_action( "redux-admin-head-{$this->args['opt_name']}", $this ); // REMOVE + + /** + * action 'redux/page/{opt_name}/header' + * + * @param object $this ReduxFramework + */ + do_action( "redux/page/{$this->args['opt_name']}/header", $this ); + } + // admin_head() + + /** + * Return footer text + * + * @since 2.0.0 + * @access public + * @return string $this->args['footer_credit'] + */ + public function admin_footer_text() { + return $this->args['footer_credit']; + } + // admin_footer_text() + + /** + * Return default output string for use in panel + * + * @since 3.1.5 + * @access public + * @return string default_output + */ + private function get_default_output_string( $field ) { + $default_output = ""; + + if ( ! isset ( $field['default'] ) ) { + $field['default'] = ""; + } + + if ( ! is_array( $field['default'] ) ) { + if ( ! empty ( $field['options'][ $field['default'] ] ) ) { + if ( ! empty ( $field['options'][ $field['default'] ]['alt'] ) ) { + $default_output .= $field['options'][ $field['default'] ]['alt'] . ', '; + } else { + // TODO: This serialize fix may not be the best solution. Look into it. PHP 5.4 error without serialize + if ( ! is_array( $field['options'][ $field['default'] ] ) ) { + $default_output .= $field['options'][ $field['default'] ] . ", "; + } else { + $default_output .= serialize( $field['options'][ $field['default'] ] ) . ", "; + } + } + } else if ( ! empty ( $field['options'][ $field['default'] ] ) ) { + $default_output .= $field['options'][ $field['default'] ] . ", "; + } else if ( ! empty ( $field['default'] ) ) { + if ( $field['type'] == 'switch' && isset ( $field['on'] ) && isset ( $field['off'] ) ) { + $default_output .= ( $field['default'] == 1 ? $field['on'] : $field['off'] ) . ', '; + } else { + $default_output .= $field['default'] . ', '; + } + } + } else { + foreach ( $field['default'] as $defaultk => $defaultv ) { + if ( ! empty ( $field['options'][ $defaultv ]['alt'] ) ) { + $default_output .= $field['options'][ $defaultv ]['alt'] . ', '; + } else if ( ! empty ( $field['options'][ $defaultv ] ) ) { + $default_output .= $field['options'][ $defaultv ] . ", "; + } else if ( ! empty ( $field['options'][ $defaultk ] ) ) { + $default_output .= $field['options'][ $defaultk ] . ", "; + } else if ( ! empty ( $defaultv ) ) { + $default_output .= $defaultv . ', '; + } + } + } + + if ( ! empty ( $default_output ) ) { + $default_output = __( 'Default', 'redux-framework' ) . ": " . substr( $default_output, 0, - 2 ); + } + + if ( ! empty ( $default_output ) ) { + $default_output = '' . $default_output . '
    '; + } + + return $default_output; + } + + // get_default_output_string() + + public function get_header_html( $field ) { + global $current_user; + + // Set to empty string to avoid wanrings. + $hint = ''; + $th = ""; + + if ( isset ( $field['title'] ) && isset ( $field['type'] ) && $field['type'] !== "info" && $field['type'] !== "section" ) { + $default_mark = ( ! empty ( $field['default'] ) && isset ( $this->options[ $field['id'] ] ) && $this->options[ $field['id'] ] == $field['default'] && ! empty ( $this->args['default_mark'] ) && isset ( $field['default'] ) ) ? $this->args['default_mark'] : ''; + + // If a hint is specified in the field, process it. + if ( isset ( $field['hint'] ) && ! '' == $field['hint'] ) { + + // Set show_hints flag to true, so helptab will be displayed. + $this->show_hints = true; + + $hint = apply_filters( 'redux/hints/html', $hint, $field, $this->args ); + + // Get user pref for displaying hints. + $metaVal = get_user_meta( $current_user->ID, 'ignore_hints', true ); + if ( 'true' == $metaVal || empty ( $metaVal ) && empty( $hint ) ) { + + // Set hand cursor for clickable hints + $pointer = ''; + if ( isset ( $this->args['hints']['tip_effect']['show']['event'] ) && 'click' == $this->args['hints']['tip_effect']['show']['event'] ) { + $pointer = 'pointer'; + } + + $size = '16px'; + if ( 'large' == $this->args['hints']['icon_size'] ) { + $size = '18px'; + } + + // In case docs are ignored. + $titleParam = isset ( $field['hint']['title'] ) ? $field['hint']['title'] : ''; + $contentParam = isset ( $field['hint']['content'] ) ? $field['hint']['content'] : ''; + + $hint_color = isset ( $this->args['hints']['icon_color'] ) ? $this->args['hints']['icon_color'] : '#d3d3d3'; + + // Set hint html with appropriate position css + $hint = '
     
    '; + } + } + + if ( ! empty ( $field['title'] ) ) { + if ( 'left' == $this->args['hints']['icon_position'] ) { + $th = $hint . $field['title'] . $default_mark . ""; + } else { + $th = $field['title'] . $default_mark . "" . $hint; + } + } + + if ( isset ( $field['subtitle'] ) ) { + $th .= '' . $field['subtitle'] . ''; + } + } + + if ( ! empty ( $th ) ) { + $th = '
    ' . $th . '
    '; + } + + $filter_arr = array( + 'editor', + 'ace_editor', + 'info', + 'section', + 'repeater', + 'color_scheme', + 'social_profiles', + 'css_layout' + ); + + if ( $this->args['default_show'] == true && isset ( $field['default'] ) && isset ( $this->options[ $field['id'] ] ) && $this->options[ $field['id'] ] != $field['default'] && ! in_array( $field['type'], $filter_arr ) ) { + $th .= $this->get_default_output_string( $field ); + } + + return $th; + } + + /** + * Register Option for use + * + * @since 1.0.0 + * @access public + * @return void + */ + public function _register_settings() { + + // TODO - REMOVE + // Not used by new sample-config, but in here for legacy builds + // This is bad and can break things. Hehe. + if ( ! function_exists( 'wp_get_current_user' ) ) { + require_once ABSPATH . "wp-includes/pluggable.php"; + } + + if ( $this->args['options_api'] == true ) { + register_setting( $this->args['opt_name'] . '_group', $this->args['opt_name'], array( + $this, + '_validate_options' + ) ); + } + + + if ( is_null( $this->sections ) ) { + return; + } + + if ( empty( $this->options_defaults ) ) { + $this->options_defaults = $this->_default_values(); + } + + $runUpdate = false; + + foreach ( $this->sections as $k => $section ) { + if ( isset ( $section['type'] ) && $section['type'] == 'divide' ) { + continue; + } + + $display = true; + + if ( isset ( $_GET['page'] ) && $_GET['page'] == $this->args['page_slug'] ) { + if ( isset ( $section['panel'] ) && $section['panel'] == false ) { + $display = false; + } + } + + + // DOVY! Replace $k with $section['id'] when ready + /** + * filter 'redux-section-{index}-modifier-{opt_name}' + * + * @param array $section section configuration + */ + $section = apply_filters( "redux-section-{$k}-modifier-{$this->args['opt_name']}", $section ); + + /** + * filter 'redux/options/{opt_name}/section/{section.id}' + * + * @param array $section section configuration + */ + if ( isset ( $section['id'] ) ) { + $section = apply_filters( "redux/options/{$this->args['opt_name']}/section/{$section['id']}", $section ); + } + + if ( empty ( $section ) ) { + unset ( $this->sections[ $k ] ); + continue; + } + + if ( ! isset ( $section['title'] ) ) { + $section['title'] = ""; + } + + if ( isset ( $section['customizer_only'] ) && $section['customizer_only'] == true ) { + $section['panel'] = false; + $this->sections[ $k ] = $section; + } + + $heading = isset ( $section['heading'] ) ? $section['heading'] : $section['title']; + + if ( isset ( $section['permissions'] ) ) { + if ( ! self::current_user_can( $section['permissions'] ) ) { + $this->hidden_perm_sections[] = $section['title']; + + foreach ( $section['fields'] as $num => $field_data ) { + $field_type = $field_data['type']; + + if ( $field_type != 'section' || $field_type != 'divide' || $field_type != 'info' || $field_type != 'raw' ) { + $field_id = $field_data['id']; + $default = isset ( $this->options_defaults[ $field_id ] ) ? $this->options_defaults[ $field_id ] : ''; + $data = isset ( $this->options[ $field_id ] ) ? $this->options[ $field_id ] : $default; + + $this->hidden_perm_fields[ $field_id ] = $data; + } + } + + continue; + } + } + + if ( ! $display || ! function_exists( 'add_settings_section' ) ) { + $this->no_panel_section[ $k ] = $section; + } else { + add_settings_section( $this->args['opt_name'] . $k . '_section', $heading, array( + &$this, + '_section_desc' + ), $this->args['opt_name'] . $k . '_section_group' ); + } + + $sectionIndent = false; + if ( isset ( $section['fields'] ) ) { + foreach ( $section['fields'] as $fieldk => $field ) { + if ( ! isset ( $field['type'] ) ) { + continue; // You need a type! + } + + if ( $field['type'] == "info" && isset( $field['raw_html'] ) && $field['raw_html'] == true ) { + $field['type'] = "raw"; + $field['content'] = $field['desc']; + $field['desc'] = ""; + $this->sections[ $k ]['fields'][ $fieldk ] = $field; + } else if ( $field['type'] == "info" ) { + if ( ! isset( $field['full_width'] ) ) { + $field['full_width'] = true; + $this->sections[ $k ]['fields'][ $fieldk ] = $field; + } + } + + if ( $field['type'] == "raw" ) { + if ( isset( $field['align'] ) ) { + $field['full_width'] = $field['align'] ? false : true; + unset( $field['align'] ); + } else if ( ! isset( $field['full_width'] ) ) { + $field['full_width'] = true; + } + $this->sections[ $k ]['fields'][ $fieldk ] = $field; + } + + + /** + * filter 'redux/options/{opt_name}/field/{field.id}' + * + * @param array $field field config + */ + $field = apply_filters( "redux/options/{$this->args['opt_name']}/field/{$field['id']}/register", $field ); + + + $this->field_types[ $field['type'] ] = isset ( $this->field_types[ $field['type'] ] ) ? $this->field_types[ $field['type'] ] : array(); + + $this->field_sections[ $field['type'] ][ $field['id'] ] = $k; + + $display = true; + + if ( isset ( $_GET['page'] ) && $_GET['page'] == $this->args['page_slug'] ) { + if ( isset ( $field['panel'] ) && $field['panel'] == false ) { + $display = false; + } + } + if ( isset ( $field['customizer_only'] ) && $field['customizer_only'] == true ) { + $display = false; + } + + if ( isset ( $section['customizer'] ) ) { + $field['customizer'] = $section['customizer']; + $this->sections[ $k ]['fields'][ $fieldk ] = $field; + } + + if ( isset ( $field['permissions'] ) ) { + + if ( ! self::current_user_can( $field['permissions'] ) ) { + $data = isset ( $this->options[ $field['id'] ] ) ? $this->options[ $field['id'] ] : $this->options_defaults[ $field['id'] ]; + + $this->hidden_perm_fields[ $field['id'] ] = $data; + + continue; + } + } + + if ( ! isset ( $field['id'] ) ) { + echo '

    No field ID is set.

    ';
    +                                print_r( $field );
    +                                echo "

    "; + continue; + } + + if ( isset ( $field['type'] ) && $field['type'] == "section" ) { + if ( isset ( $field['indent'] ) && $field['indent'] == true ) { + $sectionIndent = true; + } else { + $sectionIndent = false; + } + } + + if ( isset ( $field['type'] ) && $field['type'] == "info" && $sectionIndent ) { + $field['indent'] = $sectionIndent; + } + + $th = $this->get_header_html( $field ); + + $field['name'] = $this->args['opt_name'] . '[' . $field['id'] . ']'; + + // Set the default value if present + $this->options_defaults[ $field['id'] ] = isset ( $this->options_defaults[ $field['id'] ] ) ? $this->options_defaults[ $field['id'] ] : ''; + + // Set the defaults to the value if not present + $doUpdate = false; + + // Check fields for values in the default parameter + if ( ! isset ( $this->options[ $field['id'] ] ) && isset ( $field['default'] ) ) { + $this->options_defaults[ $field['id'] ] = $this->options[ $field['id'] ] = $field['default']; + $doUpdate = true; + + // Check fields that hae no default value, but an options value with settings to + // be saved by default + } elseif ( ! isset ( $this->options[ $field['id'] ] ) && isset ( $field['options'] ) ) { + + // If sorter field, check for options as save them as defaults + if ( $field['type'] == 'sorter' || $field['type'] == 'sortable' ) { + $this->options_defaults[ $field['id'] ] = $this->options[ $field['id'] ] = $field['options']; + $doUpdate = true; + } + } + + // CORRECT URLS if media URLs are wrong, but attachment IDs are present. + if ( $field['type'] == "media" ) { + if ( isset ( $this->options[ $field['id'] ]['id'] ) && isset ( $this->options[ $field['id'] ]['url'] ) && ! empty ( $this->options[ $field['id'] ]['url'] ) && strpos( $this->options[ $field['id'] ]['url'], str_replace( 'http://', '', WP_CONTENT_URL ) ) === false ) { + $data = wp_get_attachment_url( $this->options[ $field['id'] ]['id'] ); + + if ( isset ( $data ) && ! empty ( $data ) ) { + $this->options[ $field['id'] ]['url'] = $data; + $data = wp_get_attachment_image_src( $this->options[ $field['id'] ]['id'], array( + 150, + 150 + ) ); + $this->options[ $field['id'] ]['thumbnail'] = $data[0]; + $doUpdate = true; + } + } + } + + if ( $field['type'] == "background" ) { + if ( isset ( $this->options[ $field['id'] ]['media']['id'] ) && isset ( $this->options[ $field['id'] ]['background-image'] ) && ! empty ( $this->options[ $field['id'] ]['background-image'] ) && strpos( $this->options[ $field['id'] ]['background-image'], str_replace( 'http://', '', WP_CONTENT_URL ) ) === false ) { + $data = wp_get_attachment_url( $this->options[ $field['id'] ]['media']['id'] ); + + if ( isset ( $data ) && ! empty ( $data ) ) { + $this->options[ $field['id'] ]['background-image'] = $data; + $data = wp_get_attachment_image_src( $this->options[ $field['id'] ]['media']['id'], array( + 150, + 150 + ) ); + $this->options[ $field['id'] ]['media']['thumbnail'] = $data[0]; + $doUpdate = true; + } + } + } + + if ( $field['type'] == "slides" ) { + if ( isset ( $this->options[ $field['id'] ] ) && is_array( $this->options[ $field['id'] ] ) && isset ( $this->options[ $field['id'] ][0]['attachment_id'] ) && isset ( $this->options[ $field['id'] ][0]['image'] ) && ! empty ( $this->options[ $field['id'] ][0]['image'] ) && strpos( $this->options[ $field['id'] ][0]['image'], str_replace( 'http://', '', WP_CONTENT_URL ) ) === false ) { + foreach ( $this->options[ $field['id'] ] as $key => $val ) { + $data = wp_get_attachment_url( $val['attachment_id'] ); + + if ( isset ( $data ) && ! empty ( $data ) ) { + $this->options[ $field['id'] ][ $key ]['image'] = $data; + $data = wp_get_attachment_image_src( $val['attachment_id'], array( + 150, + 150 + ) ); + $this->options[ $field['id'] ][ $key ]['thumb'] = $data[0]; + $doUpdate = true; + } + } + } + } + // END -> CORRECT URLS if media URLs are wrong, but attachment IDs are present. + + if ( true == $doUpdate && ! isset ( $this->never_save_to_db ) ) { + if ( $this->args['save_defaults'] ) { // Only save that to the DB if allowed to + $runUpdate = true; + } + // elseif($this->saved != '' && $this->saved != false) { + // $runUpdate = true; + //} + } + + if ( ! isset ( $field['class'] ) ) { // No errors please + $field['class'] = ""; + } + $id = $field['id']; + + /** + * filter 'redux-field-{field.id}modifier-{opt_name}' + * + * @deprecated + * + * @param array $field field config + */ + $field = apply_filters( "redux-field-{$field['id']}modifier-{$this->args['opt_name']}", $field ); // REMOVE LATER + + /** + * filter 'redux/options/{opt_name}/field/{field.id}' + * + * @param array $field field config + */ + $field = apply_filters( "redux/options/{$this->args['opt_name']}/field/{$field['id']}", $field ); + + if ( empty ( $field ) || ! $field || $field == false ) { + unset ( $this->sections[ $k ]['fields'][ $fieldk ] ); + continue; + } + + if ( ! empty ( $this->folds[ $field['id'] ]['parent'] ) ) { // This has some fold items, hide it by default + $field['class'] .= " fold"; + } + + if ( ! empty ( $this->folds[ $field['id'] ]['children'] ) ) { // Sets the values you shoe fold children on + $field['class'] .= " foldParent"; + } + + if ( ! empty ( $field['compiler'] ) ) { + $field['class'] .= " compiler"; + $this->compiler_fields[ $field['id'] ] = 1; + } + + if ( isset ( $field['unit'] ) && ! isset ( $field['units'] ) ) { + $field['units'] = $field['unit']; + unset ( $field['unit'] ); + } + + $this->sections[ $k ]['fields'][ $fieldk ] = $field; + + if ( isset ( $this->args['display_source'] ) ) { + $th .= ''; + $th .= '
    View Source'; + } + + /** + * action 'redux/options/{opt_name}/field/field.type}/register' + */ + do_action( "redux/options/{$this->args['opt_name']}/field/{$field['type']}/register", $field ); + + $this->check_dependencies( $field ); + $this->field_head[ $field['id'] ] = $th; + + if ( ! $display || isset ( $this->no_panel_section[ $k ] ) ) { + $this->no_panel[] = $field['id']; + } else { + if ( isset ( $field['hidden'] ) && $field['hidden'] ) { + $field['label_for'] = 'redux_hide_field'; + } + if ( $this->args['options_api'] == true ) { + add_settings_field( + "{$fieldk}_field", $th, array( + &$this, + '_field_input' + ), "{$this->args['opt_name']}{$k}_section_group", "{$this->args['opt_name']}{$k}_section", $field + ); + } + } + } + } + } + + /** + * action 'redux-register-settings-{opt_name}' + * + * @deprecated + */ + do_action( "redux-register-settings-{$this->args['opt_name']}" ); // REMOVE + + /** + * action 'redux/options/{opt_name}/register' + * + * @param array option sections + */ + do_action( "redux/options/{$this->args['opt_name']}/register", $this->sections ); + + if ( $runUpdate && ! isset ( $this->never_save_to_db ) ) { // Always update the DB with new fields + $this->set_options( $this->options ); + } + + if ( isset ( $this->transients['run_compiler'] ) && $this->transients['run_compiler'] ) { + + $this->no_output = true; + $this->_enqueue_output(); + + + /** + * action 'redux-compiler-{opt_name}' + * + * @deprecated + * + * @param array options + * @param string CSS that get sent to the compiler hook + */ + do_action( "redux-compiler-{$this->args['opt_name']}", $this->options, $this->compilerCSS, $this->transients['changed_values'] ); // REMOVE + + /** + * action 'redux/options/{opt_name}a' + * + * @param array options + * @param string CSS that get sent to the compiler hook + */ + do_action( "redux/options/{$this->args['opt_name']}/compiler", $this->options, $this->compilerCSS, $this->transients['changed_values'] ); + + /** + * action 'redux/options/{opt_name}/compiler/advanced' + * + * @param array options + * @param string CSS that get sent to the compiler hook, which sends the full Redux object + */ + do_action( "redux/options/{$this->args['opt_name']}/compiler/advanced", $this ); + + unset ( $this->transients['run_compiler'] ); + $this->set_transients(); + } + } + // _register_settings() + + /** + * Register Extensions for use + * + * @since 3.0.0 + * @access public + * @return void + */ + private function _register_extensions() { + $path = dirname( __FILE__ ) . '/inc/extensions/'; + $folders = scandir( $path, 1 ); + + /** + * action 'redux/extensions/before' + * + * @param object $this ReduxFramework + */ + do_action( "redux/extensions/before", $this ); + + /** + * action 'redux/extensions/{opt_name}/before' + * + * @param object $this ReduxFramework + */ + do_action( "redux/extensions/{$this->args['opt_name']}/before", $this ); + + if ( isset( $this->old_opt_name ) ) { + do_action( "redux/extensions/{$this->old_opt_name}/before", $this ); + } + + foreach ( $folders as $folder ) { + if ( $folder === '.' || $folder === '..' || ! is_dir( $path . $folder ) || substr( $folder, 0, 1 ) === '.' || substr( $folder, 0, 1 ) === '@' || substr( $folder, 0, 4 ) === '_vti' ) { + continue; + } + + $extension_class = 'ReduxFramework_Extension_' . $folder; + + /** + * filter 'redux-extensionclass-load' + * + * @deprecated + * + * @param string extension class file path + * @param string $extension_class extension class name + */ + $class_file = apply_filters( "redux-extensionclass-load", "$path/$folder/extension_{$folder}.php", $extension_class ); // REMOVE LATER + + /** + * filter 'redux/extension/{opt_name}/{folder}' + * + * @param string extension class file path + * @param string $extension_class extension class name + */ + $class_file = apply_filters( "redux/extension/{$this->args['opt_name']}/$folder", "$path/$folder/extension_{$folder}.php", $class_file ); + + if ( $class_file ) { + + if ( file_exists( $class_file ) ) { + require_once $class_file; + + $this->extensions[ $folder ] = new $extension_class ( $this ); + } + } + } + + /** + * action 'redux-register-extensions-{opt_name}' + * + * @deprecated + * + * @param object $this ReduxFramework + */ + do_action( "redux-register-extensions-{$this->args['opt_name']}", $this ); // REMOVE + + /** + * action 'redux/extensions/{opt_name}' + * + * @param object $this ReduxFramework + */ + do_action( "redux/extensions/{$this->args['opt_name']}", $this ); + + if ( isset( $this->old_opt_name ) && ! empty( $this->old_opt_name ) ) { + do_action( "redux/extensions/{$this->old_opt_name}", $this ); + } + } + + private function get_transients() { + if ( ! isset ( $this->transients ) ) { + $this->transients = get_option( $this->args['opt_name'] . '-transients', array() ); + $this->transients_check = $this->transients; + } + } + + public function set_transients() { + if ( ! isset ( $this->transients ) || ! isset ( $this->transients_check ) || $this->transients != $this->transients_check ) { + update_option( $this->args['opt_name'] . '-transients', $this->transients ); + $this->transients_check = $this->transients; + } + } + + /** + * Validate the Options options before insertion + * + * @since 3.0.0 + * @access public + * + * @param array $plugin_options The options array + * + * @return array|mixed|string|void + */ + public function _validate_options( $plugin_options ) { + //print_r($plugin_options); + // exit(); + if ( isset ( $this->validation_ran ) ) { + return $plugin_options; + } + $this->validation_ran = 1; + + // Save the values not in the panel + if ( isset ( $plugin_options['redux-no_panel'] ) ) { + $keys = explode( '|', $plugin_options['redux-no_panel'] ); + foreach ( $keys as $key ) { + $plugin_options[ $key ] = $this->options[ $key ]; + } + if ( isset ( $plugin_options['redux-no_panel'] ) ) { + unset ( $plugin_options['redux-no_panel'] ); + } + } + + if ( ! empty ( $this->hidden_perm_fields ) && is_array( $this->hidden_perm_fields ) ) { + foreach ( $this->hidden_perm_fields as $id => $data ) { + $plugin_options[ $id ] = $data; + } + } + + if ( $plugin_options == $this->options ) { + return $plugin_options; + } + + $time = time(); + + // Sets last saved time + $this->transients['last_save'] = $time; + + // Import + if ( ( isset( $plugin_options['import_code'] ) && ! empty( $plugin_options['import_code'] ) ) || ( isset( $plugin_options['import_link'] ) && ! empty( $plugin_options['import_link'] ) ) ) { + $this->transients['last_save_mode'] = "import"; // Last save mode + $this->transients['last_compiler'] = $time; + $this->transients['last_import'] = $time; + $this->transients['run_compiler'] = 1; + + if ( $plugin_options['import_code'] != '' ) { + $import = $plugin_options['import_code']; + } elseif ( $plugin_options['import_link'] != '' ) { + $import = wp_remote_retrieve_body( wp_remote_get( $plugin_options['import_link'] ) ); + } + + if ( ! empty ( $import ) ) { + $imported_options = json_decode( $import, true ); + } + + if ( ! empty ( $imported_options ) && is_array( $imported_options ) && isset ( $imported_options['redux-backup'] ) && $imported_options['redux-backup'] == '1' ) { + + $this->transients['changed_values'] = array(); + foreach ( $plugin_options as $key => $value ) { + if ( isset ( $imported_options[ $key ] ) && $imported_options[ $key ] != $value ) { + $this->transients['changed_values'][ $key ] = $value; + $plugin_options[ $key ] = $value; + } + } + + /** + * action 'redux/options/{opt_name}/import' + * + * @param &array [&$plugin_options, redux_options] + */ + do_action_ref_array( "redux/options/{$this->args['opt_name']}/import", array( + &$plugin_options, + $imported_options, + $this->transients['changed_values'] + ) ); + + setcookie( 'redux_current_tab', '', 1, '/', $time + 1000, "/" ); + $_COOKIE['redux_current_tab'] = 1; + + unset ( $plugin_options['defaults'], $plugin_options['compiler'], $plugin_options['import'], $plugin_options['import_code'] ); + if ( $this->args['database'] == 'transient' || $this->args['database'] == 'theme_mods' || $this->args['database'] == 'theme_mods_expanded' || $this->args['database'] == 'network' ) { + $this->set_options( $plugin_options ); + + return; + } + + $plugin_options = wp_parse_args( $imported_options, $plugin_options ); + + $this->set_transients(); // Update the transients + + return $plugin_options; + } + } + + // Reset all to defaults + if ( ! empty ( $plugin_options['defaults'] ) ) { + if ( empty ( $this->options_defaults ) ) { + $this->options_defaults = $this->_default_values(); + } + + /** + * apply_filters 'redux/validate/{opt_name}/defaults' + * + * @param &array [ $this->options_defaults, $plugin_options] + */ + $plugin_options = apply_filters( "redux/validate/{$this->args['opt_name']}/defaults", $this->options_defaults ); + + $this->transients['changed_values'] = array(); + + if ( empty ( $this->options ) ) { + $this->options = $this->options_defaults; + } + + foreach ( $this->options as $key => $value ) { + if ( isset ( $plugin_options[ $key ] ) && $value != $plugin_options[ $key ] ) { + $this->transients['changed_values'][ $key ] = $value; + } + } + + $this->transients['run_compiler'] = 1; + $this->transients['last_save_mode'] = "defaults"; // Last save mode + //setcookie('redux-compiler-' . $this->args['opt_name'], 1, time() + 1000, "/"); + //setcookie("redux-saved-{$this->args['opt_name']}", 'defaults', time() + 1000, "/"); + + $this->set_transients(); // Update the transients + + return $plugin_options; + } + + // Section reset to defaults + if ( ! empty ( $plugin_options['defaults-section'] ) ) { + if ( isset ( $plugin_options['redux-section'] ) && isset ( $this->sections[ $plugin_options['redux-section'] ]['fields'] ) ) { + /** + * apply_filters 'redux/validate/{opt_name}/defaults_section' + * + * @param &array [ $this->options_defaults, $plugin_options] + */ + foreach ( $this->sections[ $plugin_options['redux-section'] ]['fields'] as $field ) { + if ( isset ( $this->options_defaults[ $field['id'] ] ) ) { + $plugin_options[ $field['id'] ] = $this->options_defaults[ $field['id'] ]; + } else { + $plugin_options[ $field['id'] ] = ""; + } + + if ( isset ( $field['compiler'] ) ) { + $compiler = true; + } + } + + $plugin_options = apply_filters( "redux/validate/{$this->args['opt_name']}/defaults_section", $plugin_options ); + } + + $this->transients['changed_values'] = array(); + foreach ( $this->options as $key => $value ) { + if ( isset ( $plugin_options[ $key ] ) && $value != $plugin_options[ $key ] ) { + $this->transients['changed_values'][ $key ] = $value; + } + } + + if ( isset ( $compiler ) ) { + //$this->run_compiler = true; + //setcookie('redux-compiler-' . $this->args['opt_name'], 1, time()+1000, '/'); + //$plugin_options['REDUX_COMPILER'] = time(); + $this->transients['last_compiler'] = $time; + $this->transients['run_compiler'] = 1; + } + + $this->transients['last_save_mode'] = "defaults_section"; // Last save mode + //setcookie("redux-saved-{$this->args['opt_name']}", 'defaults_section', time() + 1000, "/"); + unset ( $plugin_options['defaults'], $plugin_options['defaults_section'], $plugin_options['import'], $plugin_options['import_code'], $plugin_options['import_link'], $plugin_options['compiler'], $plugin_options['redux-section'] ); + + $this->set_transients(); + + return $plugin_options; + } + + // if ($this->transients['last_save_mode'] != 'remove') { + $this->transients['last_save_mode'] = "normal"; // Last save mode + // } else { + // $this->transients['last_save_mode'] = ''; + // } + + /** + * apply_filters 'redux/validate/{opt_name}/before_validation' + * + * @param &array [&$plugin_options, redux_options] + */ + $plugin_options = apply_filters( "redux/validate/{$this->args['opt_name']}/before_validation", $plugin_options, $this->options ); + + // Validate fields (if needed) + $plugin_options = $this->_validate_values( $plugin_options, $this->options, $this->sections ); + + if ( ! empty ( $this->errors ) || ! empty ( $this->warnings ) ) { + $this->transients['notices'] = array( 'errors' => $this->errors, 'warnings' => $this->warnings ); + } + + /** + * action 'redux-validate-{opt_name}' + * + * @deprecated + * + * @param &array [&$plugin_options, redux_options] + */ + do_action_ref_array( "redux-validate-{$this->args['opt_name']}", array( + &$plugin_options, + $this->options + ) ); // REMOVE + + if ( ! isset ( $this->transients['changed_values'] ) ) { + $this->transients['changed_values'] = array(); + } + + /** + * action 'redux/options/{opt_name}/validate' + * + * @param &array [&$plugin_options, redux_options] + */ + do_action_ref_array( "redux/options/{$this->args['opt_name']}/validate", array( + &$plugin_options, + $this->options, + $this->transients['changed_values'] + ) ); + + if ( ! empty ( $plugin_options['compiler'] ) ) { + unset ( $plugin_options['compiler'] ); + + $this->transients['last_compiler'] = $time; + $this->transients['run_compiler'] = 1; + } + + $this->transients['changed_values'] = array(); // Changed values since last save + if ( !empty( $this->options ) ) { + foreach ( $this->options as $key => $value ) { + if ( isset ( $plugin_options[ $key ] ) && $value != $plugin_options[ $key ] ) { + $this->transients['changed_values'][ $key ] = $value; + } + } + } + + unset ( $plugin_options['defaults'], $plugin_options['defaults_section'], $plugin_options['import'], $plugin_options['import_code'], $plugin_options['import_link'], $plugin_options['compiler'], $plugin_options['redux-section'] ); + if ( $this->args['database'] == 'transient' || $this->args['database'] == 'theme_mods' || $this->args['database'] == 'theme_mods_expanded' ) { + $this->set_options( $plugin_options ); + + return; + } + + if ( defined( 'WP_CACHE' ) && WP_CACHE && class_exists( 'W3_ObjectCache' ) && function_exists( 'w3_instance' ) ) { + //echo "here"; + $w3_inst = w3_instance( 'W3_ObjectCache' ); + $w3 = $w3_inst->instance(); + $key = $w3->_get_cache_key( $this->args['opt_name'] . '-transients', 'transient' ); + //echo $key; + $w3->delete( $key, 'transient', true ); + //set_transient($this->args['opt_name'].'-transients', $this->transients); + //exit(); + } + + $this->set_transients(); + + return $plugin_options; + } + + public function ajax_save() { + if ( ! wp_verify_nonce( $_REQUEST['nonce'], "redux_ajax_nonce" . $this->args['opt_name'] ) ) { + echo json_encode( array( + 'status' => __( 'Invalid security credential. Please reload the page and try again.', 'redux-framework' ), + 'action' => '' + ) ); + + die(); + } + + if ( ! self::current_user_can( $this->args['page_permissions'] ) ) { + echo json_encode( array( + 'status' => __( 'Invalid user capability. Please reload the page and try again.', 'redux-framework' ), + 'action' => '' + ) ); + + die(); + } + + $redux = ReduxFrameworkInstances::get_instance( $_POST['opt_name'] ); + + if ( ! empty ( $_POST['data'] ) && ! empty ( $redux->args['opt_name'] ) ) { + + $values = array(); + //if (function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc()) { + // $process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST); + // while (list($key, $val) = each($process)) { + // foreach ($val as $k => $v) { + // unset($process[$key][$k]); + // if (is_array($v)) { + // $process[$key][stripslashes($k)] = $v; + // $process[] = &$process[$key][stripslashes($k)]; + // } else { + // $process[$key][stripslashes($k)] = stripslashes($v); + // } + // } + // } + // unset($process); + //} + $_POST['data'] = stripslashes( $_POST['data'] ); + + // Old method of saving, in case we need to go back! - kp + //parse_str( $_POST['data'], $values ); + + // New method to avoid input_var nonesense. Thanks @harunbasic + $values = $this->redux_parse_str( $_POST['data'] ); + + $values = $values[ $redux->args['opt_name'] ]; + + if ( function_exists( 'get_magic_quotes_gpc' ) && get_magic_quotes_gpc() ) { + $values = array_map( 'stripslashes_deep', $values ); + } + + if ( ! empty ( $values ) ) { + + try { + if ( isset ( $redux->validation_ran ) ) { + unset ( $redux->validation_ran ); + } + $redux->set_options( $redux->_validate_options( $values ) ); + + $do_reload = false; + if ( isset( $this->reload_fields ) && ! empty( $this->reload_fields ) ) { + if ( ! empty( $this->transients['changed_values'] ) ) { + foreach ( $this->reload_fields as $idx => $val ) { + if ( array_key_exists( $val, $this->transients['changed_values'] ) ) { + $do_reload = true; + } + } + } + } + + if ( $do_reload || ( isset ( $values['defaults'] ) && ! empty ( $values['defaults'] ) ) || ( isset ( $values['defaults-section'] ) && ! empty ( $values['defaults-section'] ) ) || ( isset ( $values['import_code'] ) && ! empty ($values['import_code']) ) || ( isset ( $values['import_link'] ) && ! empty ($values['import_link']) ) ) { + echo json_encode( array( 'status' => 'success', 'action' => 'reload' ) ); + die (); + } + + require_once 'core/enqueue.php'; + $enqueue = new reduxCoreEnqueue ( $redux ); + $enqueue->get_warnings_and_errors_array(); + + $return_array = array( + 'status' => 'success', + 'options' => $redux->options, + 'errors' => isset ( $redux->localize_data['errors'] ) ? $redux->localize_data['errors'] : null, + 'warnings' => isset ( $redux->localize_data['warnings'] ) ? $redux->localize_data['warnings'] : null, + ); + + } catch ( Exception $e ) { + $return_array = array( 'status' => $e->getMessage() ); + } + } else { + echo json_encode( array( 'status' => __( 'Your panel has no fields. Nothing to save.', 'redux-framework' ) ) ); + } + } + if ( isset ( $this->transients['run_compiler'] ) && $this->transients['run_compiler'] ) { + + $this->no_output = true; + $this->_enqueue_output(); + + try { + /** + * action 'redux-compiler-{opt_name}' + * + * @deprecated + * + * @param array options + * @param string CSS that get sent to the compiler hook + */ + do_action( "redux-compiler-{$this->args['opt_name']}", $this->options, $this->compilerCSS, $this->transients['changed_values'] ); // REMOVE + + /** + * action 'redux/options/{opt_name}/compiler' + * + * @param array options + * @param string CSS that get sent to the compiler hook + */ + do_action( "redux/options/{$this->args['opt_name']}/compiler", $this->options, $this->compilerCSS, $this->transients['changed_values'] ); + + /** + * action 'redux/options/{opt_name}/compiler/advanced' + * + * @param array options + * @param string CSS that get sent to the compiler hook, which sends the full Redux object + */ + do_action( "redux/options/{$this->args['opt_name']}/compiler/advanced", $this ); + } catch ( Exception $e ) { + $return_array = array( 'status' => $e->getMessage() ); + } + + unset ( $this->transients['run_compiler'] ); + $this->set_transients(); + } + if ( isset( $return_array ) ) { + if ( $return_array['status'] == "success" ) { + require_once 'core/panel.php'; + $panel = new reduxCorePanel ( $redux ); + ob_start(); + $panel->notification_bar(); + $notification_bar = ob_get_contents(); + ob_end_clean(); + $return_array['notification_bar'] = $notification_bar; + } + + echo json_encode( apply_filters( "redux/options/{$this->args['opt_name']}/ajax_save/response", $return_array ) ); + } + + die (); + + } + + /** + * Validate values from options form (used in settings api validate function) + * calls the custom validation class for the field so authors can override with custom classes + * + * @since 1.0.0 + * @access public + * + * @param array $plugin_options + * @param array $options + * + * @return array $plugin_options + */ + public function _validate_values( $plugin_options, $options, $sections ) { + foreach ( $sections as $k => $section ) { + if ( isset ( $section['fields'] ) ) { + foreach ( $section['fields'] as $fkey => $field ) { + + if ( is_array( $field ) ) { + $field['section_id'] = $k; + } + + if ( isset ( $field['type'] ) && ( $field['type'] == 'checkbox' || $field['type'] == 'checkbox_hide_below' || $field['type'] == 'checkbox_hide_all' ) ) { + if ( ! isset ( $plugin_options[ $field['id'] ] ) ) { + $plugin_options[ $field['id'] ] = 0; + } + } + +// if ( isset ( $field['type'] ) && $field['type'] == 'typography' ) { +// if ( ! is_array( $plugin_options[ $field['id'] ] ) && ! empty( $plugin_options[ $field['id'] ] ) ) { +// $plugin_options[ $field['id'] ] = json_decode( $plugin_options[ $field['id'] ], true ); +// } +// } + + if ( isset( $this->extensions[ $field['type'] ] ) && method_exists( $this->extensions[ $field['type'] ], '_validate_values' ) ) { + $plugin_options = $this->extensions[ $field['type'] ]->_validate_values( $plugin_options, $field, $sections ); + + } + + // Default 'not_empty 'flag to false. + $isNotEmpty = false; + + // Make sure 'validate' field is set. + if ( isset ( $field['validate'] ) ) { + + // Make sure 'validate field' is set to 'not_empty' or 'email_not_empty' + //if ( $field['validate'] == 'not_empty' || $field['validate'] == 'email_not_empty' || $field['validate'] == 'numeric_not_empty' ) { + if ( strtolower( substr( $field['validate'], - 9 ) ) == 'not_empty' ) { + + // Set the flag. + $isNotEmpty = true; + } + } + + // Check for empty id value + + if ( ! isset ( $field['id'] ) || ! isset ( $plugin_options[ $field['id'] ] ) || ( isset ( $plugin_options[ $field['id'] ] ) && $plugin_options[ $field['id'] ] == '' ) ) { + + // If we are looking for an empty value, in the case of 'not_empty' + // then we need to keep processing. + if ( ! $isNotEmpty ) { + + // Empty id and not checking for 'not_empty. Bail out... + if (!isset($field['validate_callback'])) { + continue; + } + //continue; + } + } + + // Force validate of custom field types + if ( isset ( $field['type'] ) && ! isset ( $field['validate'] ) && ! isset( $field['validate_callback'] ) ) { + if ( $field['type'] == 'color' || $field['type'] == 'color_gradient' ) { + $field['validate'] = 'color'; + } elseif ( $field['type'] == 'date' ) { + $field['validate'] = 'date'; + } + } + + if ( isset ( $field['validate'] ) ) { + $validate = 'Redux_Validation_' . $field['validate']; + + if ( ! class_exists( $validate ) ) { + /** + * filter 'redux-validateclass-load' + * + * @deprecated + * + * @param string validation class file path + * @param string $validate validation class name + */ + $class_file = apply_filters( "redux-validateclass-load", self::$_dir . "inc/validation/{$field['validate']}/validation_{$field['validate']}.php", $validate ); // REMOVE LATER + + /** + * filter 'redux/validate/{opt_name}/class/{field.validate}' + * + * @param string validation class file path + * @param string $class_file validation class file path + */ + $class_file = apply_filters( "redux/validate/{$this->args['opt_name']}/class/{$field['validate']}", self::$_dir . "inc/validation/{$field['validate']}/validation_{$field['validate']}.php", $class_file ); + + if ( $class_file ) { + if ( file_exists( $class_file ) ) { + require_once $class_file; + } + } + } + + if ( class_exists( $validate ) ) { + + //!DOVY - DB saving stuff. Is this right? + if ( empty ( $options[ $field['id'] ] ) ) { + $options[ $field['id'] ] = ''; + } + + if ( isset ( $plugin_options[ $field['id'] ] ) && is_array( $plugin_options[ $field['id'] ] ) && ! empty ( $plugin_options[ $field['id'] ] ) ) { + foreach ( $plugin_options[ $field['id'] ] as $key => $value ) { + $before = $after = null; + if ( isset ( $plugin_options[ $field['id'] ][ $key ] ) && ( ! empty ( $plugin_options[ $field['id'] ][ $key ] ) || $plugin_options[ $field['id'] ][ $key ] == '0' ) ) { + if ( is_array( $plugin_options[ $field['id'] ][ $key ] ) ) { + $before = $plugin_options[ $field['id'] ][ $key ]; + } else { + $before = trim( $plugin_options[ $field['id'] ][ $key ] ); + } + } + + if ( isset ( $options[ $field['id'] ][ $key ] ) && ( ! empty ( $plugin_options[ $field['id'] ][ $key ] ) || $plugin_options[ $field['id'] ][ $key ] == '0' ) ) { + $after = $options[ $field['id'] ][ $key ]; + } + + $validation = new $validate ( $this, $field, $before, $after ); + if ( ! empty ( $validation->value ) || $validation->value == '0' ) { + $plugin_options[ $field['id'] ][ $key ] = $validation->value; + } else { + unset ( $plugin_options[ $field['id'] ][ $key ] ); + } + + if ( isset ( $validation->error ) ) { + $this->errors[] = $validation->error; + } + + if ( isset ( $validation->warning ) ) { + $this->warnings[] = $validation->warning; + } + } + } else { + if ( isset( $plugin_options[ $field['id'] ] ) ) { + if ( is_array( $plugin_options[ $field['id'] ] ) ) { + $pofi = $plugin_options[ $field['id'] ]; + } else { + $pofi = trim( $plugin_options[ $field['id'] ] ); + } + } else { + $pofi = null; + } + + $validation = new $validate ( $this, $field, $pofi, $options[ $field['id'] ] ); + $plugin_options[ $field['id'] ] = $validation->value; + + if ( isset ( $validation->error ) ) { + $this->errors[] = $validation->error; + } + + if ( isset ( $validation->warning ) ) { + $this->warnings[] = $validation->warning; + } + } + + continue; + } + } + if ( isset ( $field['validate_callback'] ) && ( is_callable( $field['validate_callback'] ) || ( is_string( $field['validate_callback'] ) && function_exists( $field['validate_callback'] ) ) ) ) { + $callback = $field['validate_callback']; + unset ( $field['validate_callback'] ); + + $plugin_option = isset( $plugin_options[ $field['id'] ] ) ? $plugin_options[ $field['id'] ] : null; + $option = isset( $options[ $field['id'] ] ) ? $options[ $field['id'] ] : null; + $callbackvalues = call_user_func( $callback, $field, $plugin_option, $option ); + $plugin_options[ $field['id'] ] = $callbackvalues['value']; + + if ( isset ( $callbackvalues['error'] ) ) { + $this->errors[] = $callbackvalues['error']; + } + // TODO - This warning message is failing. Hmm. + // No it isn't. Problem was in the sample-config - kp + if ( isset ( $callbackvalues['warning'] ) ) { + $this->warnings[] = $callbackvalues['warning']; + } + } + } + } + } + + return $plugin_options; + } + + /** + * Return Section Menu HTML + * + * @since 3.1.5 + * @access public + * @return void + */ + public function section_menu( $k, $section, $suffix = "", $sections = array() ) { + $display = true; + + $section['class'] = isset ( $section['class'] ) ? ' ' . $section['class'] : ''; + + if ( isset ( $_GET['page'] ) && $_GET['page'] == $this->args['page_slug'] ) { + if ( isset ( $section['panel'] ) && $section['panel'] == false ) { + $display = false; + } + } + + if ( ! $display ) { + return ""; + } + + if ( empty ( $sections ) ) { + $sections = $this->sections; + } + + $string = ""; + if ( ( ( isset ( $this->args['icon_type'] ) && $this->args['icon_type'] == 'image' ) || ( isset ( $section['icon_type'] ) && $section['icon_type'] == 'image' ) ) || ( isset( $section['icon'] ) && strpos( $section['icon'], '/' ) !== false ) ) { + //if( !empty( $this->args['icon_type'] ) && $this->args['icon_type'] == 'image' ) { + $icon = ( ! isset ( $section['icon'] ) ) ? '' : ' '; + } else { + if ( ! empty ( $section['icon_class'] ) ) { + $icon_class = ' ' . $section['icon_class']; + } elseif ( ! empty ( $this->args['default_icon_class'] ) ) { + $icon_class = ' ' . $this->args['default_icon_class']; + } else { + $icon_class = ''; + } + $icon = ( ! isset ( $section['icon'] ) ) ? ' ' : ' '; + } + if ( strpos( $icon, 'el-icon-' ) !== false ) { + $icon = str_replace( 'el-icon-', 'el el-', $icon ); + } + + $hide_section = ''; + if ( isset ( $section['hidden'] ) ) { + $hide_section = ( $section['hidden'] == true ) ? ' hidden ' : ''; + } + + $canBeSubSection = ( $k > 0 && ( ! isset ( $sections[ ( $k ) ]['type'] ) || $sections[ ( $k ) ]['type'] != "divide" ) ) ? true : false; + + if ( ! $canBeSubSection && isset ( $section['subsection'] ) && $section['subsection'] == true ) { + unset ( $section['subsection'] ); + } + + if ( isset ( $section['type'] ) && $section['type'] == "divide" ) { + $string .= '
  •  
  • '; + } else if ( ! isset ( $section['subsection'] ) || $section['subsection'] != true ) { + + // DOVY! REPLACE $k with $section['ID'] when used properly. + //$active = ( ( is_numeric($this->current_tab) && $this->current_tab == $k ) || ( !is_numeric($this->current_tab) && $this->current_tab === $k ) ) ? ' active' : ''; + $subsections = ( isset ( $sections[ ( $k + 1 ) ] ) && isset ( $sections[ ( $k + 1 ) ]['subsection'] ) && $sections[ ( $k + 1 ) ]['subsection'] == true ) ? true : false; + $subsectionsClass = $subsections ? ' hasSubSections' : ''; + $subsectionsClass .= ( ! isset ( $section['fields'] ) || empty ( $section['fields'] ) ) ? ' empty_section' : ''; + $extra_icon = $subsections ? ' ' : ''; + //var_dump($section); + $string .= ''; + } + + return $string; + } + // section_menu() + + /** + * HTML OUTPUT. + * + * @since 1.0.0 + * @access public + * @return void + */ + public function generate_panel() { + require_once 'core/panel.php'; + $panel = new reduxCorePanel ( $this ); + $panel->init(); + $this->set_transients(); + } + + /** + * Section HTML OUTPUT. + * + * @since 1.0.0 + * @access public + * + * @param array $section + * + * @return void + */ + public function _section_desc( $section ) { + $id = rtrim( $section['id'], '_section' ); + $id = str_replace($this->args['opt_name'], '', $id); + + if ( isset ( $this->sections[ $id ]['desc'] ) && ! empty ( $this->sections[ $id ]['desc'] ) ) { + echo '
    ' . $this->sections[ $id ]['desc'] . '
    '; + } + } + + /** + * Field HTML OUTPUT. + * Gets option from options array, then calls the specific field type class - allows extending by other devs + * + * @since 1.0.0 + * + * @param array $field + * @param string $v + * + * @return void + */ + public function _field_input( $field, $v = null ) { + + if ( isset ( $field['callback'] ) && ( is_callable( $field['callback'] ) || ( is_string( $field['callback'] ) && function_exists( $field['callback'] ) ) ) ) { + + $value = ( isset ( $this->options[ $field['id'] ] ) ) ? $this->options[ $field['id'] ] : ''; + + /** + * action 'redux-before-field-{opt_name}' + * + * @deprecated + * + * @param array $field field data + * @param string $value field.id + */ + do_action( "redux-before-field-{$this->args['opt_name']}", $field, $value ); // REMOVE + + /** + * action 'redux/field/{opt_name}/{field.type}/callback/before' + * + * @param array $field field data + * @param string $value field.id + */ + do_action_ref_array( "redux/field/{$this->args['opt_name']}/{$field['type']}/callback/before", array( + &$field, + &$value + ) ); + + /** + * action 'redux/field/{opt_name}/callback/before' + * + * @param array $field field data + * @param string $value field.id + */ + do_action_ref_array( "redux/field/{$this->args['opt_name']}/callback/before", array( + &$field, + &$value + ) ); + + call_user_func( $field['callback'], $field, $value ); + + + /** + * action 'redux-after-field-{opt_name}' + * + * @deprecated + * + * @param array $field field data + * @param string $value field.id + */ + do_action( "redux-after-field-{$this->args['opt_name']}", $field, $value ); // REMOVE + + /** + * action 'redux/field/{opt_name}/{field.type}/callback/after' + * + * @param array $field field data + * @param string $value field.id + */ + do_action_ref_array( "redux/field/{$this->args['opt_name']}/{$field['type']}/callback/after", array( + &$field, + &$value + ) ); + + /** + * action 'redux/field/{opt_name}/callback/after' + * + * @param array $field field data + * @param string $value field.id + */ + do_action_ref_array( "redux/field/{$this->args['opt_name']}/callback/after", array( + &$field, + &$value + ) ); + + + return; + } + + if ( isset ( $field['type'] ) ) { + + // If the field is set not to display in the panel + $display = true; + if ( isset ( $_GET['page'] ) && $_GET['page'] == $this->args['page_slug'] ) { + if ( isset ( $field['panel'] ) && $field['panel'] == false ) { + $display = false; + } + } + + if ( ! $display ) { + return; + } + + $field_class = "ReduxFramework_{$field['type']}"; + + if ( ! class_exists( $field_class ) ) { + // $class_file = apply_filters( 'redux/field/class/'.$field['type'], self::$_dir . 'inc/fields/' . $field['type'] . '/field_' . $field['type'] . '.php', $field ); // REMOVE + /** + * filter 'redux/{opt_name}/field/class/{field.type}' + * + * @param string field class file path + * @param array $field field data + */ + $class_file = apply_filters( "redux/{$this->args['opt_name']}/field/class/{$field['type']}", self::$_dir . "inc/fields/{$field['type']}/field_{$field['type']}.php", $field ); + + if ( $class_file ) { + if ( file_exists( $class_file ) ) { + require_once $class_file; + } + } + } + + if ( class_exists( $field_class ) ) { + $value = isset ( $this->options[ $field['id'] ] ) ? $this->options[ $field['id'] ] : ''; + + if ( $v != null ) { + $value = $v; + } + + /** + * action 'redux-before-field-{opt_name}' + * + * @deprecated + * + * @param array $field field data + * @param string $value field id + */ + do_action( "redux-before-field-{$this->args['opt_name']}", $field, $value ); // REMOVE + + /** + * action 'redux/field/{opt_name}/{field.type}/render/before' + * + * @param array $field field data + * @param string $value field id + */ + do_action_ref_array( "redux/field/{$this->args['opt_name']}/{$field['type']}/render/before", array( + &$field, + &$value + ) ); + + /** + * action 'redux/field/{$this->args['opt_name']}/render/before' + * + * @param array $field field data + * @param string $value field id + */ + do_action_ref_array( "redux/field/{$this->args['opt_name']}/render/before", array( + &$field, + &$value + ) ); + + if ( ! isset ( $field['name_suffix'] ) ) { + $field['name_suffix'] = ""; + } + + $render = new $field_class ( $field, $value, $this ); + ob_start(); + + $render->render(); + + /* + + echo "
    ";
    +                      print_r($value);
    +                      echo "
    "; + */ + + /** + * filter 'redux-field-{opt_name}' + * + * @deprecated + * + * @param string rendered field markup + * @param array $field field data + */ + $_render = apply_filters( "redux-field-{$this->args['opt_name']}", ob_get_contents(), $field ); // REMOVE + + /** + * filter 'redux/field/{opt_name}/{field.type}/render/after' + * + * @param string rendered field markup + * @param array $field field data + */ + $_render = apply_filters( "redux/field/{$this->args['opt_name']}/{$field['type']}/render/after", $_render, $field ); + + /** + * filter 'redux/field/{opt_name}/render/after' + * + * @param string rendered field markup + * @param array $field field data + */ + $_render = apply_filters( "redux/field/{$this->args['opt_name']}/render/after", $_render, $field ); + + ob_end_clean(); + + //save the values into a unique array in case we need it for dependencies + $this->fieldsValues[ $field['id'] ] = ( isset ( $value['url'] ) && is_array( $value ) ) ? $value['url'] : $value; + + //create default data und class string and checks the dependencies of an object + $class_string = ''; + $data_string = ''; + + $this->check_dependencies( $field ); + + /** + * action 'redux/field/{opt_name}/{field.type}/fieldset/before/{opt_name}' + * + * @param array $field field data + * @param string $value field id + */ + do_action_ref_array( "redux/field/{$this->args['opt_name']}/{$field['type']}/fieldset/before/{$this->args['opt_name']}", array( + &$field, + &$value + ) ); + + /** + * action 'redux/field/{opt_name}/fieldset/before/{opt_name}' + * + * @param array $field field data + * @param string $value field id + */ + do_action_ref_array( "redux/field/{$this->args['opt_name']}/fieldset/before/{$this->args['opt_name']}", array( + &$field, + &$value + ) ); + + //if ( ! isset( $field['fields'] ) || empty( $field['fields'] ) ) { + $hidden = ''; + if ( isset ( $field['hidden'] ) && $field['hidden'] ) { + $hidden = 'hidden '; + } + + if ( isset( $field['full_width'] ) && $field['full_width'] == true ) { + $class_string .= "redux_remove_th"; + } + + if ( isset ( $field['fieldset_class'] ) && ! empty( $field['fieldset_class'] ) ) { + $class_string .= ' ' . $field['fieldset_class']; + } + + echo '
    '; + //} + + echo $_render; + + if ( ! empty ( $field['desc'] ) ) { + $field['description'] = $field['desc']; + } + + echo ( isset ( $field['description'] ) && $field['type'] != "info" && $field['type'] !== "section" && ! empty ( $field['description'] ) ) ? '
    ' . $field['description'] . '
    ' : ''; + + //if ( ! isset( $field['fields'] ) || empty( $field['fields'] ) ) { + echo '
    '; + //} + + /** + * action 'redux-after-field-{opt_name}' + * + * @deprecated + * + * @param array $field field data + * @param string $value field id + */ + do_action( "redux-after-field-{$this->args['opt_name']}", $field, $value ); // REMOVE + + /** + * action 'redux/field/{opt_name}/{field.type}/fieldset/after/{opt_name}' + * + * @param array $field field data + * @param string $value field id + */ + do_action_ref_array( "redux/field/{$this->args['opt_name']}/{$field['type']}/fieldset/after/{$this->args['opt_name']}", array( + &$field, + &$value + ) ); + + /** + * action 'redux/field/{opt_name}/fieldset/after/{opt_name}' + * + * @param array $field field data + * @param string $value field id + */ + do_action_ref_array( "redux/field/{$this->args['opt_name']}/fieldset/after/{$this->args['opt_name']}", array( + &$field, + &$value + ) ); + } + } + } + // _field_input() + + /** + * Can Output CSS + * Check if a field meets its requirements before outputting to CSS + * + * @param $field + * + * @return bool + */ + public function _can_output_css( $field ) { + $return = true; + + $field = apply_filters( "redux/field/{$this->args['opt_name']}/_can_output_css", $field ); + if ( isset ( $field['force_output'] ) && $field['force_output'] == true ) { + return $return; + } + + if ( ! empty ( $field['required'] ) ) { + if ( isset ( $field['required'][0] ) ) { + if ( ! is_array( $field['required'][0] ) && count( $field['required'] ) == 3 ) { + $parentValue = isset($GLOBALS[ $this->args['global_variable'] ][ $field['required'][0] ]) ? $GLOBALS[ $this->args['global_variable'] ][ $field['required'][0] ] : ''; + $checkValue = $field['required'][2]; + $operation = $field['required'][1]; + $return = $this->compareValueDependencies( $parentValue, $checkValue, $operation ); + } else if ( is_array( $field['required'][0] ) ) { + foreach ( $field['required'] as $required ) { + if ( ! is_array( $required[0] ) && count( $required ) == 3 ) { + $parentValue = $GLOBALS[ $this->args['global_variable'] ][ $required[0] ]; + $checkValue = $required[2]; + $operation = $required[1]; + $return = $this->compareValueDependencies( $parentValue, $checkValue, $operation ); + } + if ( ! $return ) { + return $return; + } + } + } + } + } + + return $return; + } + // _can_output_css + + /** + * Checks dependencies between objects based on the $field['required'] array + * If the array is set it needs to have exactly 3 entries. + * The first entry describes which field should be monitored by the current field. eg: "content" + * The second entry describes the comparison parameter. eg: "equals, not, is_larger, is_smaller ,contains" + * The third entry describes the value that we are comparing against. + * Example: if the required array is set to array('content','equals','Hello World'); then the current + * field will only be displayed if the field with id "content" has exactly the value "Hello World" + * + * @param array $field + * + * @return array $params + */ + public function check_dependencies( $field ) { + //$params = array('data_string' => "", 'class_string' => ""); + if ( isset( $field['ajax_save'] ) && $field['ajax_save'] == false ) { + $this->reload_fields[] = $field['id']; + } + + if ( ! empty ( $field['required'] ) ) { + if ( ! isset ( $this->required_child[ $field['id'] ] ) ) { + $this->required_child[ $field['id'] ] = array(); + } + + if ( ! isset ( $this->required[ $field['id'] ] ) ) { + $this->required[ $field['id'] ] = array(); + } + + if ( is_array( $field['required'][0] ) ) { + + foreach ( $field['required'] as $value ) { + if ( is_array( $value ) && count( $value ) == 3 ) { + $data = array(); + $data['parent'] = $value[0]; + $data['operation'] = $value[1]; + $data['checkValue'] = $value[2]; + + $this->required[ $data['parent'] ][ $field['id'] ][] = $data; + + if ( ! in_array( $data['parent'], $this->required_child[ $field['id'] ] ) ) { + $this->required_child[ $field['id'] ][] = $data; + } + + $this->checkRequiredDependencies( $field, $data ); + } + } + } else { + $data = array(); + $data['parent'] = $field['required'][0]; + $data['operation'] = $field['required'][1]; + $data['checkValue'] = $field['required'][2]; + + $this->required[ $data['parent'] ][ $field['id'] ][] = $data; + + if ( ! in_array( $data['parent'], $this->required_child[ $field['id'] ] ) ) { + $this->required_child[ $field['id'] ][] = $data; + } + + $this->checkRequiredDependencies( $field, $data ); + } + } + //return $params; + } + + // Compare data for required field + private function compareValueDependencies( $parentValue, $checkValue, $operation ) { + $return = false; + switch ( $operation ) { + case '=': + case 'equals': + $data['operation'] = "="; + + if ( is_array( $parentValue ) ) { + foreach ( $parentValue as $idx => $val ) { + if ( is_array( $checkValue ) ) { + foreach ( $checkValue as $i => $v ) { + if ( Redux_Helpers::makeBoolStr($val) === Redux_Helpers::makeBoolStr($v) ) { + $return = true; + } + } + } else { + if ( Redux_Helpers::makeBoolStr($val) === Redux_Helpers::makeBoolStr($checkValue) ) { + $return = true; + } + } + } + } else { + //var_dump($checkValue); + if ( is_array( $checkValue ) ) { + foreach ( $checkValue as $i => $v ) { + if ( Redux_Helpers::makeBoolStr($parentValue) === Redux_Helpers::makeBoolStr($v) ) { + $return = true; + } + } + } else { + if ( Redux_Helpers::makeBoolStr($parentValue) === Redux_Helpers::makeBoolStr($checkValue) ) { + $return = true; + } + } + } + break; + + case '!=': + case 'not': + $data['operation'] = "!=="; + if ( is_array( $parentValue ) ) { + foreach ( $parentValue as $idx => $val ) { + if ( is_array( $checkValue ) ) { + foreach ( $checkValue as $i => $v ) { + if ( Redux_Helpers::makeBoolStr($val) !== Redux_Helpers::makeBoolStr($v) ) { + $return = true; + } + } + } else { + if ( Redux_Helpers::makeBoolStr($val) !== Redux_Helpers::makeBoolStr($checkValue) ) { + $return = true; + } + } + } + } else { + if ( is_array( $checkValue ) ) { + foreach ( $checkValue as $i => $v ) { + if ( Redux_Helpers::makeBoolStr($parentValue) !== Redux_Helpers::makeBoolStr($v) ) { + $return = true; + } + } + } else { + if ( Redux_Helpers::makeBoolStr($parentValue) !== Redux_Helpers::makeBoolStr($checkValue) ) { + $return = true; + } + } + } + + // if ( is_array( $checkValue ) ) { + // if ( ! in_array( $parentValue, $checkValue ) ) { + // $return = true; + // } + // } else { + // if ( $parentValue != $checkValue ) { + // $return = true; + // } else if ( is_array( $parentValue ) ) { + // if ( ! in_array( $checkValue, $parentValue ) ) { + // $return = true; + // } + // } + // } + break; + case '>': + case 'greater': + case 'is_larger': + $data['operation'] = ">"; + if ( $parentValue > $checkValue ) { + $return = true; + } + break; + case '>=': + case 'greater_equal': + case 'is_larger_equal': + $data['operation'] = ">="; + if ( $parentValue >= $checkValue ) { + $return = true; + } + break; + case '<': + case 'less': + case 'is_smaller': + $data['operation'] = "<"; + if ( $parentValue < $checkValue ) { + $return = true; + } + break; + case '<=': + case 'less_equal': + case 'is_smaller_equal': + $data['operation'] = "<="; + if ( $parentValue <= $checkValue ) { + $return = true; + } + break; + case 'contains': + if ( is_array( $parentValue ) ) { + $parentValue = implode( ',', $parentValue ); + } + + if ( is_array( $checkValue ) ) { + foreach ( $checkValue as $idx => $opt ) { + if ( strpos( $parentValue, (string) $opt ) !== false ) { + $return = true; + } + } + } else { + if ( strpos( $parentValue, (string) $checkValue ) !== false ) { + $return = true; + } + } + + break; + case 'doesnt_contain': + case 'not_contain': + if ( is_array( $parentValue ) ) { + $parentValue = implode( ',', $parentValue ); + } + + if ( is_array( $checkValue ) ) { + foreach ( $checkValue as $idx => $opt ) { + if ( strpos( $parentValue, (string) $opt ) === false ) { + $return = true; + } + } + } else { + if ( strpos( $parentValue, (string) $checkValue ) === false ) { + $return = true; + } + } + + break; + case 'is_empty_or': + if ( empty ( $parentValue ) || $parentValue == $checkValue ) { + $return = true; + } + break; + case 'not_empty_and': + if ( ! empty ( $parentValue ) && $parentValue != $checkValue ) { + $return = true; + } + break; + case 'is_empty': + case 'empty': + case '!isset': + if ( empty ( $parentValue ) || $parentValue == "" || $parentValue == null ) { + $return = true; + } + break; + case 'not_empty': + case '!empty': + case 'isset': + if ( ! empty ( $parentValue ) && $parentValue != "" && $parentValue != null ) { + $return = true; + } + break; + } + + return $return; + } + + private function checkRequiredDependencies( $field, $data ) { + //required field must not be hidden. otherwise hide this one by default + + if ( ! in_array( $data['parent'], $this->fieldsHidden ) && ( ! isset ( $this->folds[ $field['id'] ] ) || $this->folds[ $field['id'] ] != "hide" ) ) { + if ( isset ( $this->options[ $data['parent'] ] ) ) { + $return = $this->compareValueDependencies( $this->options[ $data['parent'] ], $data['checkValue'], $data['operation'] ); + //$return = $this->compareValueDependencies( $data['parent'], $data['checkValue'], $data['operation'] ); + } + } + + if ( ( isset ( $return ) && $return ) && ( ! isset ( $this->folds[ $field['id'] ] ) || $this->folds[ $field['id'] ] != "hide" ) ) { + $this->folds[ $field['id'] ] = "show"; + } else { + $this->folds[ $field['id'] ] = "hide"; + if ( ! in_array( $field['id'], $this->fieldsHidden ) ) { + $this->fieldsHidden[] = $field['id']; + } + } + } + + /** + * converts an array into a html data string + * + * @param array $data example input: array('id'=>'true') + * + * @return string $data_string example output: data-id='true' + */ + public function create_data_string( $data = array() ) { + $data_string = ""; + + foreach ( $data as $key => $value ) { + if ( is_array( $value ) ) { + $value = implode( "|", $value ); + } + $data_string .= " data-$key='$value' "; + } + + return $data_string; + } + + /** + * Parses the string into variables without the max_input_vars limitation. + * + * @since 3.5.7.11 + * @author harunbasic + * @access public + * + * @param string $string + * + * @return array $result + */ + function redux_parse_str( $string ) { + if ( '' == $string ) { + return false; + } + + $result = array(); + $pairs = explode( '&', $string ); + + foreach ( $pairs as $key => $pair ) { + // use the original parse_str() on each element + parse_str( $pair, $params ); + + $k = key( $params ); + + if ( ! isset( $result[ $k ] ) ) { + $result += $params; + } else { + $result[ $k ] = $this->redux_array_merge_recursive_distinct( $result[ $k ], $params[ $k ] ); + } + } + + return $result; + } + + + /** + * Merge arrays without converting values with duplicate keys to arrays as array_merge_recursive does. + * As seen here http://php.net/manual/en/function.array-merge-recursive.php#92195 + * + * @since 3.5.7.11 + * @author harunbasic + * @access public + * + * @param array $array1 + * @param array $array2 + * + * @return array $merged + */ + function redux_array_merge_recursive_distinct( array $array1, array $array2 ) { + $merged = $array1; + + foreach ( $array2 as $key => $value ) { + if ( is_array( $value ) && isset( $merged[ $key ] ) && is_array( $merged[ $key ] ) ) { + $merged[ $key ] = $this->redux_array_merge_recursive_distinct( $merged[ $key ], $value ); + } else if ( is_numeric( $key ) && isset( $merged[ $key ] ) ) { + $merged[] = $value; + } else { + $merged[ $key ] = $value; + } + } + + return $merged; + } + + private function change_demo_defaults() { + if ( $this->args['dev_mode'] == true || Redux_Helpers::isLocalHost() == true ) { + if ( ! empty( $this->args['admin_bar_links'] ) ) { + foreach ( $this->args['admin_bar_links'] as $idx => $arr ) { + if ( is_array( $arr ) && ! empty( $arr ) ) { + foreach ( $arr as $x => $y ) { + if ( strpos( strtolower( $y ), 'redux' ) !== false ) { + $msg = __( 'Redux Framework Notice: There are references to the Redux Framework support site in your config\'s admin_bar_links argument. This is sample data. Please change or remove this data before shipping your product.', 'redux-framework' ); + $this->display_arg_change_notice( 'admin', $msg ); + $this->omit_admin_items = true; + continue; + } + } + } + } + } + + if ( ! empty( $this->args['share_icons'] ) ) { + foreach ( $this->args['share_icons'] as $idx => $arr ) { + if ( is_array( $arr ) && ! empty( $arr ) ) { + foreach ( $arr as $x => $y ) { + if (!$this->omit_share_icons) { + if ( strpos( strtolower( $y ), 'redux' ) !== false ) { + $msg = __( 'Redux Framework Notice: There are references to the Redux Framework support site in your config\'s share_icons argument. This is sample data. Please change or remove this data before shipping your product.', 'redux-framework' ); + $this->display_arg_change_notice( 'share', $msg ); + $this->omit_share_icons = true; + continue; + } + } + } + } + } + } + } + } + + private function display_arg_change_notice( $mode, $msg = '' ) { + if ( $mode == 'admin' ) { + if ( ! $this->omit_admin_items ) { + $data = array( + 'parent' => $this, + 'type' => 'error', + 'msg' => $msg, + 'id' => 'admin_config', + 'dismiss' => true + ); + + Redux_Admin_Notices::set_notice($data); + } + } + + if ( $mode == 'share' ) { + if ( ! $this->omit_share_icons ) { + $data = array( + 'parent' => $this, + 'type' => 'error', + 'msg' => $msg, + 'id' => 'share_config', + 'dismiss' => true + ); + + Redux_Admin_Notices::set_notice($data); + } + } + } + + + /** + * Checks a nested capabilities array or string to determine if the current user meets the requirements. + * + * @since 3.6.3.4 + * + * @param string|array $capabilities Permission string or array to check. See self::user_can() for details. + * @param int $object_id (Optional) ID of the specific object to check against if capability is a "meta" cap. + * e.g. 'edit_post', 'edit_user', 'edit_page', etc., + * + * @return bool Whether or not the user meets the requirements. False on invalid user. + */ + public static function current_user_can( $capabilities ) { + $current_user = wp_get_current_user(); + + if ( empty( $current_user ) ) { + return false; + } + + $name_arr=func_get_args(); + $args = array_merge( array( $current_user ),$name_arr ); + + return self::user_can(...$args); + // return call_user_func_array( array( 'self', 'user_can' ), $args ); + } + + + /** + * Checks a nested capabilities array or string to determine if the user meets the requirements. + * + * You can pass in a simple string like 'edit_posts' or an array of conditions. + * + * The capability 'relation' is reserved for controlling the relation mode (AND/OR), which defaults to AND. + * + * Max depth of 30 levels. False is returned for any conditions exceeding max depth. + * + * If you want to check meta caps, you must also pass the object ID on which to check against. + * If you get the error: PHP Notice: Undefined offset: 0 in /wp-includes/capabilities.php, you didn't + * pass the required $object_id. + * + * @since 3.6.3.4 + * + * @example + * ::user_can( 42, 'edit_pages' ); // Checks if user ID 42 has the 'edit_pages' cap. + * ::user_can( 42, 'edit_page', 17433 ); // Checks if user ID 42 has the 'edit_page' cap for post ID 17433. + * ::user_can( 42, array( 'edit_pages', 'edit_posts' ) ); // Checks if user ID 42 has both the 'edit_pages' and 'edit_posts' caps. + * + * @param int|object $user User ID or WP_User object to check. Defaults to the current user. + * @param string|array $capabilities Capability string or array to check. The array lets you use multiple + * conditions to determine if a user has permission. + * Invalid conditions are skipped (conditions which aren't a string/array/bool/number(cast to bool)). + * Example array where the user needs to have either the 'edit_posts' capability OR doesn't have the + * 'delete_pages' cap OR has the 'update_plugins' AND 'add_users' capabilities. + * array( + * 'relation' => 'OR', // Optional, defaults to AND. + * 'edit_posts', // Equivalent to 'edit_posts' => true, + * 'delete_pages' => false, // Tests that the user DOESN'T have this capability + * array( // Nested conditions array (up to 30 nestings) + * 'update_plugins', + * 'add_users', + * ), + * ) + * + * @param int $object_id (Optional) ID of the specific object to check against if capability is a "meta" cap. + * e.g. 'edit_post', 'edit_user', 'edit_page', etc., + * + * @return bool Whether or not the user meets the requirements. + * Will always return false for: + * - Invalid/missing user + * - If the $capabilities is not a string or array + * - Max nesting depth exceeded (for that level) + */ + public static function user_can( $user, $capabilities, $object_id = null ) { + static $depth = 0; + + if ( $depth >= 30 ) { + return false; + } + + if ( empty( $user ) ) { + return false; + } + + if ( !is_object( $user ) ) { + $user = get_userdata( $user ); + } + + if ( is_string( $capabilities ) ) { + // Simple string capability check + $args = array( + $user, + $capabilities, + ); + + if ( $object_id !== null ) { + $args[] = $object_id; + } + + return call_user_func_array( 'user_can', $args ); + } else { + // Only strings and arrays are allowed as valid capabilities + if ( !is_array( $capabilities ) ) { + return false; + } + } + + // Capability array check + $or = false; + + foreach ( $capabilities as $key => $value ) { + if ( $key === 'relation' ) { + if ( $value === 'OR' ) { + $or = true; + } + + continue; + } + + /** + * Rules can be in 4 different formats: + * [ + * [0] => 'foobar', + * [1] => array(...), + * 'foobar' => false, + * 'foobar' => array(...), + * ] + */ + if ( is_numeric( $key ) ) { + // Numeric key + if ( is_string( $value ) ) { + // Numeric key with a string value is the capability string to check + // [0] => 'foobar' + $args = array( $user, $value, ); + + if ( $object_id !== null ) { + $args[] = $object_id; + } + + $expression_result = call_user_func_array( 'user_can', $args ) === true; + } elseif ( is_array( $value ) ) { + // [0] => array(...) + $depth++; + + $expression_result = self::user_can( $user, $value, $object_id ); + + $depth--; + } else { + // Invalid types are skipped + continue; + } + } else { + // Non-numeric key + if ( is_scalar( $value ) ) { + // 'foobar' => false + $args = array( $user, $key, ); + + if ( $object_id !== null ) { + $args[] = $object_id; + } + + $expression_result = call_user_func_array( 'user_can', $args ) === (bool)$value; + } elseif ( is_array( $value ) ) { + // 'foobar' => array(...) + $depth++; + + $expression_result = self::user_can( $user, $value, $object_id ); + + $depth--; + } else { + // Invalid types are skipped + continue; + } + } + + // Check after every evaluation if we know enough to return a definitive answer + if ( $or ) { + if ( $expression_result ) { + // If the relation is OR, return on the first true expression + return true; + } + } else { + if ( !$expression_result ) { + // If the relation is AND, return on the first false expression + return false; + } + } + } + + // If we get this far on an OR, then it failed + // If we get this far on an AND, then it succeeded + return !$or; + } + + } + + // ReduxFramework + + /** + * action 'redux/init' + * + * @param null + */ + ReduxFramework::init(); + do_action( 'redux/init' ); + + } // class_exists('ReduxFramework') diff --git a/redux/ReduxCore/inc/browser.php b/redux/ReduxCore/inc/browser.php new file mode 100644 index 0000000..ba0edba --- /dev/null +++ b/redux/ReduxCore/inc/browser.php @@ -0,0 +1,1282 @@ +getBrowser() == Browser::BROWSER_FIREFOX && $browser->getVersion() >= 2 ) { + * echo 'You have FireFox version 2 or greater'; + * } + * + * User Agents Sampled from: http://www.useragentstring.com/ + * + * This implementation is based on the original work from Gary White + * http://apptools.com/phptools/browser/ + * + */ + +class Browser +{ + private $_agent = ''; + private $_browser_name = ''; + private $_version = ''; + private $_platform = ''; + private $_os = ''; + private $_is_aol = false; + private $_is_mobile = false; + private $_is_tablet = false; + private $_is_robot = false; + private $_is_facebook = false; + private $_aol_version = ''; + + const BROWSER_UNKNOWN = 'unknown'; + const VERSION_UNKNOWN = 'unknown'; + + const BROWSER_OPERA = 'Opera'; // http://www.opera.com/ + const BROWSER_OPERA_MINI = 'Opera Mini'; // http://www.opera.com/mini/ + const BROWSER_WEBTV = 'WebTV'; // http://www.webtv.net/pc/ + const BROWSER_IE = 'Internet Explorer'; // http://www.microsoft.com/ie/ + const BROWSER_POCKET_IE = 'Pocket Internet Explorer'; // http://en.wikipedia.org/wiki/Internet_Explorer_Mobile + const BROWSER_KONQUEROR = 'Konqueror'; // http://www.konqueror.org/ + const BROWSER_ICAB = 'iCab'; // http://www.icab.de/ + const BROWSER_OMNIWEB = 'OmniWeb'; // http://www.omnigroup.com/applications/omniweb/ + const BROWSER_FIREBIRD = 'Firebird'; // http://www.ibphoenix.com/ + const BROWSER_FIREFOX = 'Firefox'; // http://www.mozilla.com/en-US/firefox/firefox.html + const BROWSER_ICEWEASEL = 'Iceweasel'; // http://www.geticeweasel.org/ + const BROWSER_SHIRETOKO = 'Shiretoko'; // http://wiki.mozilla.org/Projects/shiretoko + const BROWSER_MOZILLA = 'Mozilla'; // http://www.mozilla.com/en-US/ + const BROWSER_AMAYA = 'Amaya'; // http://www.w3.org/Amaya/ + const BROWSER_LYNX = 'Lynx'; // http://en.wikipedia.org/wiki/Lynx + const BROWSER_SAFARI = 'Safari'; // http://apple.com + const BROWSER_IPHONE = 'iPhone'; // http://apple.com + const BROWSER_IPOD = 'iPod'; // http://apple.com + const BROWSER_IPAD = 'iPad'; // http://apple.com + const BROWSER_CHROME = 'Chrome'; // http://www.google.com/chrome + const BROWSER_ANDROID = 'Android'; // http://www.android.com/ + const BROWSER_GOOGLEBOT = 'GoogleBot'; // http://en.wikipedia.org/wiki/Googlebot + const BROWSER_SLURP = 'Yahoo! Slurp'; // http://en.wikipedia.org/wiki/Yahoo!_Slurp + const BROWSER_W3CVALIDATOR = 'W3C Validator'; // http://validator.w3.org/ + const BROWSER_BLACKBERRY = 'BlackBerry'; // http://www.blackberry.com/ + const BROWSER_ICECAT = 'IceCat'; // http://en.wikipedia.org/wiki/GNU_IceCat + const BROWSER_NOKIA_S60 = 'Nokia S60 OSS Browser'; // http://en.wikipedia.org/wiki/Web_Browser_for_S60 + const BROWSER_NOKIA = 'Nokia Browser'; // * all other WAP-based browsers on the Nokia Platform + const BROWSER_MSN = 'MSN Browser'; // http://explorer.msn.com/ + const BROWSER_MSNBOT = 'MSN Bot'; // http://search.msn.com/msnbot.htm + const BROWSER_BINGBOT = 'Bing Bot'; // http://en.wikipedia.org/wiki/Bingbot + + const BROWSER_NETSCAPE_NAVIGATOR = 'Netscape Navigator'; // http://browser.netscape.com/ (DEPRECATED) + const BROWSER_GALEON = 'Galeon'; // http://galeon.sourceforge.net/ (DEPRECATED) + const BROWSER_NETPOSITIVE = 'NetPositive'; // http://en.wikipedia.org/wiki/NetPositive (DEPRECATED) + const BROWSER_PHOENIX = 'Phoenix'; // http://en.wikipedia.org/wiki/History_of_Mozilla_Firefox (DEPRECATED) + + const PLATFORM_UNKNOWN = 'unknown'; + const PLATFORM_WINDOWS = 'Windows'; + const PLATFORM_WINDOWS_CE = 'Windows CE'; + const PLATFORM_APPLE = 'Apple'; + const PLATFORM_LINUX = 'Linux'; + const PLATFORM_OS2 = 'OS/2'; + const PLATFORM_BEOS = 'BeOS'; + const PLATFORM_IPHONE = 'iPhone'; + const PLATFORM_IPOD = 'iPod'; + const PLATFORM_IPAD = 'iPad'; + const PLATFORM_BLACKBERRY = 'BlackBerry'; + const PLATFORM_NOKIA = 'Nokia'; + const PLATFORM_FREEBSD = 'FreeBSD'; + const PLATFORM_OPENBSD = 'OpenBSD'; + const PLATFORM_NETBSD = 'NetBSD'; + const PLATFORM_SUNOS = 'SunOS'; + const PLATFORM_OPENSOLARIS = 'OpenSolaris'; + const PLATFORM_ANDROID = 'Android'; + + const OPERATING_SYSTEM_UNKNOWN = 'unknown'; + + public function __construct($userAgent = "") + { + $this->reset(); + if ($userAgent != "") { + $this->setUserAgent($userAgent); + } else { + $this->determine(); + } + } + + /** + * Reset all properties + */ + public function reset() + { + $this->_agent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : ""; + $this->_browser_name = self::BROWSER_UNKNOWN; + $this->_version = self::VERSION_UNKNOWN; + $this->_platform = self::PLATFORM_UNKNOWN; + $this->_os = self::OPERATING_SYSTEM_UNKNOWN; + $this->_is_aol = false; + $this->_is_mobile = false; + $this->_is_tablet = false; + $this->_is_robot = false; + $this->_is_facebook = false; + $this->_aol_version = self::VERSION_UNKNOWN; + } + + /** + * Check to see if the specific browser is valid + * @param string $browserName + * @return bool True if the browser is the specified browser + */ + function isBrowser($browserName) + { + return (0 == strcasecmp($this->_browser_name, trim($browserName))); + } + + /** + * The name of the browser. All return types are from the class contants + * @return string Name of the browser + */ + public function getBrowser() + { + return $this->_browser_name; + } + + /** + * Set the name of the browser + * @param $browser string The name of the Browser + */ + public function setBrowser($browser) + { + $this->_browser_name = $browser; + } + + /** + * The name of the platform. All return types are from the class contants + * @return string Name of the browser + */ + public function getPlatform() + { + return $this->_platform; + } + + /** + * Set the name of the platform + * @param string $platform The name of the Platform + */ + public function setPlatform($platform) + { + $this->_platform = $platform; + } + + /** + * The version of the browser. + * @return string Version of the browser (will only contain alpha-numeric characters and a period) + */ + public function getVersion() + { + return $this->_version; + } + + /** + * Set the version of the browser + * @param string $version The version of the Browser + */ + public function setVersion($version) + { + $this->_version = preg_replace('/[^0-9,.,a-z,A-Z-]/', '', $version); + } + + /** + * The version of AOL. + * @return string Version of AOL (will only contain alpha-numeric characters and a period) + */ + public function getAolVersion() + { + return $this->_aol_version; + } + + /** + * Set the version of AOL + * @param string $version The version of AOL + */ + public function setAolVersion($version) + { + $this->_aol_version = preg_replace('/[^0-9,.,a-z,A-Z]/', '', $version); + } + + /** + * Is the browser from AOL? + * @return boolean True if the browser is from AOL otherwise false + */ + public function isAol() + { + return $this->_is_aol; + } + + /** + * Is the browser from a mobile device? + * @return boolean True if the browser is from a mobile device otherwise false + */ + public function isMobile() + { + return $this->_is_mobile; + } + + /** + * Is the browser from a tablet device? + * @return boolean True if the browser is from a tablet device otherwise false + */ + public function isTablet() + { + return $this->_is_tablet; + } + + /** + * Is the browser from a robot (ex Slurp,GoogleBot)? + * @return boolean True if the browser is from a robot otherwise false + */ + public function isRobot() + { + return $this->_is_robot; + } + + /** + * Is the browser from facebook? + * @return boolean True if the browser is from facebook otherwise false + */ + public function isFacebook() + { + return $this->_is_facebook; + } + + /** + * Set the browser to be from AOL + * @param $isAol + */ + public function setAol($isAol) + { + $this->_is_aol = $isAol; + } + + /** + * Set the Browser to be mobile + * @param boolean $value is the browser a mobile browser or not + */ + protected function setMobile($value = true) + { + $this->_is_mobile = $value; + } + + /** + * Set the Browser to be tablet + * @param boolean $value is the browser a tablet browser or not + */ + protected function setTablet($value = true) + { + $this->_is_tablet = $value; + } + + /** + * Set the Browser to be a robot + * @param boolean $value is the browser a robot or not + */ + protected function setRobot($value = true) + { + $this->_is_robot = $value; + } + + /** + * Set the Browser to be a Facebook request + * @param boolean $value is the browser a robot or not + */ + protected function setFacebook($value = true) + { + $this->_is_facebook = $value; + } + + /** + * Get the user agent value in use to determine the browser + * @return string The user agent from the HTTP header + */ + public function getUserAgent() + { + return $this->_agent; + } + + /** + * Set the user agent value (the construction will use the HTTP header value - this will overwrite it) + * @param string $agent_string The value for the User Agent + */ + public function setUserAgent($agent_string) + { + $this->reset(); + $this->_agent = $agent_string; + $this->determine(); + } + + /** + * Used to determine if the browser is actually "chromeframe" + * @since 1.7 + * @return boolean True if the browser is using chromeframe + */ + public function isChromeFrame() + { + return (strpos($this->_agent, "chromeframe") !== false); + } + + /** + * Returns a formatted string with a summary of the details of the browser. + * @return string formatted string with a summary of the browser + */ + public function __toString() + { + return "Browser Name: {$this->getBrowser()}
    \n" . + "Browser Version: {$this->getVersion()}
    \n" . + "Browser User Agent String: {$this->getUserAgent()}
    \n" . + "Platform: {$this->getPlatform()}
    "; + } + + /** + * Protected routine to calculate and determine what the browser is in use (including platform) + */ + protected function determine() + { + $this->checkPlatform(); + $this->checkBrowsers(); + $this->checkForAol(); + } + + /** + * Protected routine to determine the browser type + * @return boolean True if the browser was detected otherwise false + */ + protected function checkBrowsers() + { + return ( + // well-known, well-used + // Special Notes: + // (1) Opera must be checked before FireFox due to the odd + // user agents used in some older versions of Opera + // (2) WebTV is strapped onto Internet Explorer so we must + // check for WebTV before IE + // (3) (deprecated) Galeon is based on Firefox and needs to be + // tested before Firefox is tested + // (4) OmniWeb is based on Safari so OmniWeb check must occur + // before Safari + // (5) Netscape 9+ is based on Firefox so Netscape checks + // before FireFox are necessary + $this->checkBrowserWebTv() || + $this->checkBrowserInternetExplorer() || + $this->checkBrowserOpera() || + $this->checkBrowserGaleon() || + $this->checkBrowserNetscapeNavigator9Plus() || + $this->checkBrowserFirefox() || + $this->checkBrowserChrome() || + $this->checkBrowserOmniWeb() || + + // common mobile + $this->checkBrowserAndroid() || + $this->checkBrowseriPad() || + $this->checkBrowseriPod() || + $this->checkBrowseriPhone() || + $this->checkBrowserBlackBerry() || + $this->checkBrowserNokia() || + + // common bots + $this->checkBrowserGoogleBot() || + $this->checkBrowserMSNBot() || + $this->checkBrowserBingBot() || + $this->checkBrowserSlurp() || + + // check for facebook external hit when loading URL + $this->checkFacebookExternalHit() || + + // WebKit base check (post mobile and others) + $this->checkBrowserSafari() || + + // everyone else + $this->checkBrowserNetPositive() || + $this->checkBrowserFirebird() || + $this->checkBrowserKonqueror() || + $this->checkBrowserIcab() || + $this->checkBrowserPhoenix() || + $this->checkBrowserAmaya() || + $this->checkBrowserLynx() || + $this->checkBrowserShiretoko() || + $this->checkBrowserIceCat() || + $this->checkBrowserIceweasel() || + $this->checkBrowserW3CValidator() || + $this->checkBrowserMozilla() /* Mozilla is such an open standard that you must check it last */ + ); + } + + /** + * Determine if the user is using a BlackBerry (last updated 1.7) + * @return boolean True if the browser is the BlackBerry browser otherwise false + */ + protected function checkBrowserBlackBerry() + { + if (stripos($this->_agent, 'blackberry') !== false) { + $aresult = explode("/", stristr($this->_agent, "BlackBerry")); + if (isset($aresult[1])) { + $aversion = explode(' ', $aresult[1]); + $this->setVersion($aversion[0]); + $this->_browser_name = self::BROWSER_BLACKBERRY; + $this->setMobile(true); + return true; + } + } + return false; + } + + /** + * Determine if the user is using an AOL User Agent (last updated 1.7) + * @return boolean True if the browser is from AOL otherwise false + */ + protected function checkForAol() + { + $this->setAol(false); + $this->setAolVersion(self::VERSION_UNKNOWN); + + if (stripos($this->_agent, 'aol') !== false) { + $aversion = explode(' ', stristr($this->_agent, 'AOL')); + if (isset($aversion[1])) { + $this->setAol(true); + $this->setAolVersion(preg_replace('/[^0-9\.a-z]/i', '', $aversion[1])); + return true; + } + } + return false; + } + + /** + * Determine if the browser is the GoogleBot or not (last updated 1.7) + * @return boolean True if the browser is the GoogletBot otherwise false + */ + protected function checkBrowserGoogleBot() + { + if (stripos($this->_agent, 'googlebot') !== false) { + $aresult = explode('/', stristr($this->_agent, 'googlebot')); + if (isset($aresult[1])) { + $aversion = explode(' ', $aresult[1]); + $this->setVersion(str_replace(';', '', $aversion[0])); + $this->_browser_name = self::BROWSER_GOOGLEBOT; + $this->setRobot(true); + return true; + } + } + return false; + } + + /** + * Determine if the browser is the MSNBot or not (last updated 1.9) + * @return boolean True if the browser is the MSNBot otherwise false + */ + protected function checkBrowserMSNBot() + { + if (stripos($this->_agent, "msnbot") !== false) { + $aresult = explode("/", stristr($this->_agent, "msnbot")); + if (isset($aresult[1])) { + $aversion = explode(" ", $aresult[1]); + $this->setVersion(str_replace(";", "", $aversion[0])); + $this->_browser_name = self::BROWSER_MSNBOT; + $this->setRobot(true); + return true; + } + } + return false; + } + + /** + * Determine if the browser is the BingBot or not (last updated 1.9) + * @return boolean True if the browser is the BingBot otherwise false + */ + protected function checkBrowserBingBot() + { + if (stripos($this->_agent, "bingbot") !== false) { + $aresult = explode("/", stristr($this->_agent, "bingbot")); + if (isset($aresult[1])) { + $aversion = explode(" ", $aresult[1]); + $this->setVersion(str_replace(";", "", $aversion[0])); + $this->_browser_name = self::BROWSER_BINGBOT; + $this->setRobot(true); + return true; + } + } + return false; + } + + /** + * Determine if the browser is the W3C Validator or not (last updated 1.7) + * @return boolean True if the browser is the W3C Validator otherwise false + */ + protected function checkBrowserW3CValidator() + { + if (stripos($this->_agent, 'W3C-checklink') !== false) { + $aresult = explode('/', stristr($this->_agent, 'W3C-checklink')); + if (isset($aresult[1])) { + $aversion = explode(' ', $aresult[1]); + $this->setVersion($aversion[0]); + $this->_browser_name = self::BROWSER_W3CVALIDATOR; + return true; + } + } else if (stripos($this->_agent, 'W3C_Validator') !== false) { + // Some of the Validator versions do not delineate w/ a slash - add it back in + $ua = str_replace("W3C_Validator ", "W3C_Validator/", $this->_agent); + $aresult = explode('/', stristr($ua, 'W3C_Validator')); + if (isset($aresult[1])) { + $aversion = explode(' ', $aresult[1]); + $this->setVersion($aversion[0]); + $this->_browser_name = self::BROWSER_W3CVALIDATOR; + return true; + } + } else if (stripos($this->_agent, 'W3C-mobileOK') !== false) { + $this->_browser_name = self::BROWSER_W3CVALIDATOR; + $this->setMobile(true); + return true; + } + return false; + } + + /** + * Determine if the browser is the Yahoo! Slurp Robot or not (last updated 1.7) + * @return boolean True if the browser is the Yahoo! Slurp Robot otherwise false + */ + protected function checkBrowserSlurp() + { + if (stripos($this->_agent, 'slurp') !== false) { + $aresult = explode('/', stristr($this->_agent, 'Slurp')); + if (isset($aresult[1])) { + $aversion = explode(' ', $aresult[1]); + $this->setVersion($aversion[0]); + $this->_browser_name = self::BROWSER_SLURP; + $this->setRobot(true); + $this->setMobile(false); + return true; + } + } + return false; + } + + /** + * Determine if the browser is Internet Explorer or not (last updated 1.7) + * @return boolean True if the browser is Internet Explorer otherwise false + */ + protected function checkBrowserInternetExplorer() + { + // Test for IE11 + if( stripos($this->_agent,'Trident/7.0; rv:11.0') !== false ) { + $this->setBrowser(self::BROWSER_IE); + $this->setVersion('11.0'); + return true; + } + // Test for v1 - v1.5 IE + else if (stripos($this->_agent, 'microsoft internet explorer') !== false) { + $this->setBrowser(self::BROWSER_IE); + $this->setVersion('1.0'); + $aresult = stristr($this->_agent, '/'); + if (preg_match('/308|425|426|474|0b1/i', $aresult)) { + $this->setVersion('1.5'); + } + return true; + } // Test for versions > 1.5 + else if (stripos($this->_agent, 'msie') !== false && stripos($this->_agent, 'opera') === false) { + // See if the browser is the odd MSN Explorer + if (stripos($this->_agent, 'msnb') !== false) { + $aresult = explode(' ', stristr(str_replace(';', '; ', $this->_agent), 'MSN')); + if (isset($aresult[1])) { + $this->setBrowser(self::BROWSER_MSN); + $this->setVersion(str_replace(array('(', ')', ';'), '', $aresult[1])); + return true; + } + } + $aresult = explode(' ', stristr(str_replace(';', '; ', $this->_agent), 'msie')); + if (isset($aresult[1])) { + $this->setBrowser(self::BROWSER_IE); + $this->setVersion(str_replace(array('(', ')', ';'), '', $aresult[1])); + if(stripos($this->_agent, 'IEMobile') !== false) { + $this->setBrowser(self::BROWSER_POCKET_IE); + $this->setMobile(true); + } + return true; + } + } // Test for versions > IE 10 + else if(stripos($this->_agent, 'trident') !== false) { + $this->setBrowser(self::BROWSER_IE); + $result = explode('rv:', $this->_agent); + if (isset($result[1])) { + $this->setVersion(preg_replace('/[^0-9.]+/', '', $result[1])); + $this->_agent = str_replace(array("Mozilla", "Gecko"), "MSIE", $this->_agent); + } + } // Test for Pocket IE + else if (stripos($this->_agent, 'mspie') !== false || stripos($this->_agent, 'pocket') !== false) { + $aresult = explode(' ', stristr($this->_agent, 'mspie')); + if (isset($aresult[1])) { + $this->setPlatform(self::PLATFORM_WINDOWS_CE); + $this->setBrowser(self::BROWSER_POCKET_IE); + $this->setMobile(true); + + if (stripos($this->_agent, 'mspie') !== false) { + $this->setVersion($aresult[1]); + } else { + $aversion = explode('/', $this->_agent); + if (isset($aversion[1])) { + $this->setVersion($aversion[1]); + } + } + return true; + } + } + return false; + } + + /** + * Determine if the browser is Opera or not (last updated 1.7) + * @return boolean True if the browser is Opera otherwise false + */ + protected function checkBrowserOpera() + { + if (stripos($this->_agent, 'opera mini') !== false) { + $resultant = stristr($this->_agent, 'opera mini'); + if (preg_match('/\//', $resultant)) { + $aresult = explode('/', $resultant); + if (isset($aresult[1])) { + $aversion = explode(' ', $aresult[1]); + $this->setVersion($aversion[0]); + } + } else { + $aversion = explode(' ', stristr($resultant, 'opera mini')); + if (isset($aversion[1])) { + $this->setVersion($aversion[1]); + } + } + $this->_browser_name = self::BROWSER_OPERA_MINI; + $this->setMobile(true); + return true; + } else if (stripos($this->_agent, 'opera') !== false) { + $resultant = stristr($this->_agent, 'opera'); + if (preg_match('/Version\/(1*.*)$/', $resultant, $matches)) { + $this->setVersion($matches[1]); + } else if (preg_match('/\//', $resultant)) { + $aresult = explode('/', str_replace("(", " ", $resultant)); + if (isset($aresult[1])) { + $aversion = explode(' ', $aresult[1]); + $this->setVersion($aversion[0]); + } + } else { + $aversion = explode(' ', stristr($resultant, 'opera')); + $this->setVersion(isset($aversion[1]) ? $aversion[1] : ""); + } + if (stripos($this->_agent, 'Opera Mobi') !== false) { + $this->setMobile(true); + } + $this->_browser_name = self::BROWSER_OPERA; + return true; + } else if (stripos($this->_agent, 'OPR') !== false) { + $resultant = stristr($this->_agent, 'OPR'); + if (preg_match('/\//', $resultant)) { + $aresult = explode('/', str_replace("(", " ", $resultant)); + if (isset($aresult[1])) { + $aversion = explode(' ', $aresult[1]); + $this->setVersion($aversion[0]); + } + } + if (stripos($this->_agent, 'Mobile') !== false) { + $this->setMobile(true); + } + $this->_browser_name = self::BROWSER_OPERA; + return true; + } + return false; + } + + /** + * Determine if the browser is Chrome or not (last updated 1.7) + * @return boolean True if the browser is Chrome otherwise false + */ + protected function checkBrowserChrome() + { + if (stripos($this->_agent, 'Chrome') !== false) { + $aresult = explode('/', stristr($this->_agent, 'Chrome')); + if (isset($aresult[1])) { + $aversion = explode(' ', $aresult[1]); + $this->setVersion($aversion[0]); + $this->setBrowser(self::BROWSER_CHROME); + //Chrome on Android + if (stripos($this->_agent, 'Android') !== false) { + if (stripos($this->_agent, 'Mobile') !== false) { + $this->setMobile(true); + } else { + $this->setTablet(true); + } + } + return true; + } + } + return false; + } + + + /** + * Determine if the browser is WebTv or not (last updated 1.7) + * @return boolean True if the browser is WebTv otherwise false + */ + protected function checkBrowserWebTv() + { + if (stripos($this->_agent, 'webtv') !== false) { + $aresult = explode('/', stristr($this->_agent, 'webtv')); + if (isset($aresult[1])) { + $aversion = explode(' ', $aresult[1]); + $this->setVersion($aversion[0]); + $this->setBrowser(self::BROWSER_WEBTV); + return true; + } + } + return false; + } + + /** + * Determine if the browser is NetPositive or not (last updated 1.7) + * @return boolean True if the browser is NetPositive otherwise false + */ + protected function checkBrowserNetPositive() + { + if (stripos($this->_agent, 'NetPositive') !== false) { + $aresult = explode('/', stristr($this->_agent, 'NetPositive')); + if (isset($aresult[1])) { + $aversion = explode(' ', $aresult[1]); + $this->setVersion(str_replace(array('(', ')', ';'), '', $aversion[0])); + $this->setBrowser(self::BROWSER_NETPOSITIVE); + return true; + } + } + return false; + } + + /** + * Determine if the browser is Galeon or not (last updated 1.7) + * @return boolean True if the browser is Galeon otherwise false + */ + protected function checkBrowserGaleon() + { + if (stripos($this->_agent, 'galeon') !== false) { + $aresult = explode(' ', stristr($this->_agent, 'galeon')); + $aversion = explode('/', $aresult[0]); + if (isset($aversion[1])) { + $this->setVersion($aversion[1]); + $this->setBrowser(self::BROWSER_GALEON); + return true; + } + } + return false; + } + + /** + * Determine if the browser is Konqueror or not (last updated 1.7) + * @return boolean True if the browser is Konqueror otherwise false + */ + protected function checkBrowserKonqueror() + { + if (stripos($this->_agent, 'Konqueror') !== false) { + $aresult = explode(' ', stristr($this->_agent, 'Konqueror')); + $aversion = explode('/', $aresult[0]); + if (isset($aversion[1])) { + $this->setVersion($aversion[1]); + $this->setBrowser(self::BROWSER_KONQUEROR); + return true; + } + } + return false; + } + + /** + * Determine if the browser is iCab or not (last updated 1.7) + * @return boolean True if the browser is iCab otherwise false + */ + protected function checkBrowserIcab() + { + if (stripos($this->_agent, 'icab') !== false) { + $aversion = explode(' ', stristr(str_replace('/', ' ', $this->_agent), 'icab')); + if (isset($aversion[1])) { + $this->setVersion($aversion[1]); + $this->setBrowser(self::BROWSER_ICAB); + return true; + } + } + return false; + } + + /** + * Determine if the browser is OmniWeb or not (last updated 1.7) + * @return boolean True if the browser is OmniWeb otherwise false + */ + protected function checkBrowserOmniWeb() + { + if (stripos($this->_agent, 'omniweb') !== false) { + $aresult = explode('/', stristr($this->_agent, 'omniweb')); + $aversion = explode(' ', isset($aresult[1]) ? $aresult[1] : ""); + $this->setVersion($aversion[0]); + $this->setBrowser(self::BROWSER_OMNIWEB); + return true; + } + return false; + } + + /** + * Determine if the browser is Phoenix or not (last updated 1.7) + * @return boolean True if the browser is Phoenix otherwise false + */ + protected function checkBrowserPhoenix() + { + if (stripos($this->_agent, 'Phoenix') !== false) { + $aversion = explode('/', stristr($this->_agent, 'Phoenix')); + if (isset($aversion[1])) { + $this->setVersion($aversion[1]); + $this->setBrowser(self::BROWSER_PHOENIX); + return true; + } + } + return false; + } + + /** + * Determine if the browser is Firebird or not (last updated 1.7) + * @return boolean True if the browser is Firebird otherwise false + */ + protected function checkBrowserFirebird() + { + if (stripos($this->_agent, 'Firebird') !== false) { + $aversion = explode('/', stristr($this->_agent, 'Firebird')); + if (isset($aversion[1])) { + $this->setVersion($aversion[1]); + $this->setBrowser(self::BROWSER_FIREBIRD); + return true; + } + } + return false; + } + + /** + * Determine if the browser is Netscape Navigator 9+ or not (last updated 1.7) + * NOTE: (http://browser.netscape.com/ - Official support ended on March 1st, 2008) + * @return boolean True if the browser is Netscape Navigator 9+ otherwise false + */ + protected function checkBrowserNetscapeNavigator9Plus() + { + if (stripos($this->_agent, 'Firefox') !== false && preg_match('/Navigator\/([^ ]*)/i', $this->_agent, $matches)) { + $this->setVersion($matches[1]); + $this->setBrowser(self::BROWSER_NETSCAPE_NAVIGATOR); + return true; + } else if (stripos($this->_agent, 'Firefox') === false && preg_match('/Netscape6?\/([^ ]*)/i', $this->_agent, $matches)) { + $this->setVersion($matches[1]); + $this->setBrowser(self::BROWSER_NETSCAPE_NAVIGATOR); + return true; + } + return false; + } + + /** + * Determine if the browser is Shiretoko or not (https://wiki.mozilla.org/Projects/shiretoko) (last updated 1.7) + * @return boolean True if the browser is Shiretoko otherwise false + */ + protected function checkBrowserShiretoko() + { + if (stripos($this->_agent, 'Mozilla') !== false && preg_match('/Shiretoko\/([^ ]*)/i', $this->_agent, $matches)) { + $this->setVersion($matches[1]); + $this->setBrowser(self::BROWSER_SHIRETOKO); + return true; + } + return false; + } + + /** + * Determine if the browser is Ice Cat or not (http://en.wikipedia.org/wiki/GNU_IceCat) (last updated 1.7) + * @return boolean True if the browser is Ice Cat otherwise false + */ + protected function checkBrowserIceCat() + { + if (stripos($this->_agent, 'Mozilla') !== false && preg_match('/IceCat\/([^ ]*)/i', $this->_agent, $matches)) { + $this->setVersion($matches[1]); + $this->setBrowser(self::BROWSER_ICECAT); + return true; + } + return false; + } + + /** + * Determine if the browser is Nokia or not (last updated 1.7) + * @return boolean True if the browser is Nokia otherwise false + */ + protected function checkBrowserNokia() + { + if (preg_match("/Nokia([^\/]+)\/([^ SP]+)/i", $this->_agent, $matches)) { + $this->setVersion($matches[2]); + if (stripos($this->_agent, 'Series60') !== false || strpos($this->_agent, 'S60') !== false) { + $this->setBrowser(self::BROWSER_NOKIA_S60); + } else { + $this->setBrowser(self::BROWSER_NOKIA); + } + $this->setMobile(true); + return true; + } + return false; + } + + /** + * Determine if the browser is Firefox or not (last updated 1.7) + * @return boolean True if the browser is Firefox otherwise false + */ + protected function checkBrowserFirefox() + { + if (stripos($this->_agent, 'safari') === false) { + if (preg_match("/Firefox[\/ \(]([^ ;\)]+)/i", $this->_agent, $matches)) { + $this->setVersion($matches[1]); + $this->setBrowser(self::BROWSER_FIREFOX); + //Firefox on Android + if (stripos($this->_agent, 'Android') !== false) { + if (stripos($this->_agent, 'Mobile') !== false) { + $this->setMobile(true); + } else { + $this->setTablet(true); + } + } + return true; + } else if (preg_match("/Firefox$/i", $this->_agent, $matches)) { + $this->setVersion(""); + $this->setBrowser(self::BROWSER_FIREFOX); + return true; + } + } + return false; + } + + /** + * Determine if the browser is Firefox or not (last updated 1.7) + * @return boolean True if the browser is Firefox otherwise false + */ + protected function checkBrowserIceweasel() + { + if (stripos($this->_agent, 'Iceweasel') !== false) { + $aresult = explode('/', stristr($this->_agent, 'Iceweasel')); + if (isset($aresult[1])) { + $aversion = explode(' ', $aresult[1]); + $this->setVersion($aversion[0]); + $this->setBrowser(self::BROWSER_ICEWEASEL); + return true; + } + } + return false; + } + + /** + * Determine if the browser is Mozilla or not (last updated 1.7) + * @return boolean True if the browser is Mozilla otherwise false + */ + protected function checkBrowserMozilla() + { + if (stripos($this->_agent, 'mozilla') !== false && preg_match('/rv:[0-9].[0-9][a-b]?/i', $this->_agent) && stripos($this->_agent, 'netscape') === false) { + $aversion = explode(' ', stristr($this->_agent, 'rv:')); + preg_match('/rv:[0-9].[0-9][a-b]?/i', $this->_agent, $aversion); + $this->setVersion(str_replace('rv:', '', $aversion[0])); + $this->setBrowser(self::BROWSER_MOZILLA); + return true; + } else if (stripos($this->_agent, 'mozilla') !== false && preg_match('/rv:[0-9]\.[0-9]/i', $this->_agent) && stripos($this->_agent, 'netscape') === false) { + $aversion = explode('', stristr($this->_agent, 'rv:')); + $this->setVersion(str_replace('rv:', '', $aversion[0])); + $this->setBrowser(self::BROWSER_MOZILLA); + return true; + } else if (stripos($this->_agent, 'mozilla') !== false && preg_match('/mozilla\/([^ ]*)/i', $this->_agent, $matches) && stripos($this->_agent, 'netscape') === false) { + $this->setVersion($matches[1]); + $this->setBrowser(self::BROWSER_MOZILLA); + return true; + } + return false; + } + + /** + * Determine if the browser is Lynx or not (last updated 1.7) + * @return boolean True if the browser is Lynx otherwise false + */ + protected function checkBrowserLynx() + { + if (stripos($this->_agent, 'lynx') !== false) { + $aresult = explode('/', stristr($this->_agent, 'Lynx')); + $aversion = explode(' ', (isset($aresult[1]) ? $aresult[1] : "")); + $this->setVersion($aversion[0]); + $this->setBrowser(self::BROWSER_LYNX); + return true; + } + return false; + } + + /** + * Determine if the browser is Amaya or not (last updated 1.7) + * @return boolean True if the browser is Amaya otherwise false + */ + protected function checkBrowserAmaya() + { + if (stripos($this->_agent, 'amaya') !== false) { + $aresult = explode('/', stristr($this->_agent, 'Amaya')); + if (isset($aresult[1])) { + $aversion = explode(' ', $aresult[1]); + $this->setVersion($aversion[0]); + $this->setBrowser(self::BROWSER_AMAYA); + return true; + } + } + return false; + } + + /** + * Determine if the browser is Safari or not (last updated 1.7) + * @return boolean True if the browser is Safari otherwise false + */ + protected function checkBrowserSafari() + { + if (stripos($this->_agent, 'Safari') !== false + && stripos($this->_agent, 'iPhone') === false + && stripos($this->_agent, 'iPod') === false) { + + $aresult = explode('/', stristr($this->_agent, 'Version')); + if (isset($aresult[1])) { + $aversion = explode(' ', $aresult[1]); + $this->setVersion($aversion[0]); + } else { + $this->setVersion(self::VERSION_UNKNOWN); + } + $this->setBrowser(self::BROWSER_SAFARI); + return true; + } + return false; + } + + /** + * Detect if URL is loaded from FacebookExternalHit + * @return boolean True if it detects FacebookExternalHit otherwise false + */ + protected function checkFacebookExternalHit() + { + if(stristr($this->_agent,'FacebookExternalHit')) + { + $this->setRobot(true); + $this->setFacebook(true); + return true; + } + return false; + } + + /** + * Detect if URL is being loaded from internal Facebook browser + * @return boolean True if it detects internal Facebook browser otherwise false + */ + protected function checkForFacebookIos() + { + if(stristr($this->_agent,'FBIOS')) + { + $this->setFacebook(true); + return true; + } + return false; + } + + /** + * Detect Version for the Safari browser on iOS devices + * @return boolean True if it detects the version correctly otherwise false + */ + protected function getSafariVersionOnIos() + { + $aresult = explode('/',stristr($this->_agent,'Version')); + if( isset($aresult[1]) ) + { + $aversion = explode(' ',$aresult[1]); + $this->setVersion($aversion[0]); + return true; + } + return false; + } + + /** + * Detect Version for the Chrome browser on iOS devices + * @return boolean True if it detects the version correctly otherwise false + */ + protected function getChromeVersionOnIos() + { + $aresult = explode('/',stristr($this->_agent,'CriOS')); + if( isset($aresult[1]) ) + { + $aversion = explode(' ',$aresult[1]); + $this->setVersion($aversion[0]); + $this->setBrowser(self::BROWSER_CHROME); + return true; + } + return false; + } + + /** + * Determine if the browser is iPhone or not (last updated 1.7) + * @return boolean True if the browser is iPhone otherwise false + */ + protected function checkBrowseriPhone() { + if( stripos($this->_agent,'iPhone') !== false ) { + $this->setVersion(self::VERSION_UNKNOWN); + $this->setBrowser(self::BROWSER_IPHONE); + $this->getSafariVersionOnIos(); + $this->getChromeVersionOnIos(); + $this->checkForFacebookIos(); + $this->setMobile(true); + return true; + } + return false; + } + + /** + * Determine if the browser is iPad or not (last updated 1.7) + * @return boolean True if the browser is iPad otherwise false + */ + protected function checkBrowseriPad() { + if( stripos($this->_agent,'iPad') !== false ) { + $this->setVersion(self::VERSION_UNKNOWN); + $this->setBrowser(self::BROWSER_IPAD); + $this->getSafariVersionOnIos(); + $this->getChromeVersionOnIos(); + $this->checkForFacebookIos(); + $this->setTablet(true); + return true; + } + return false; + } + + /** + * Determine if the browser is iPod or not (last updated 1.7) + * @return boolean True if the browser is iPod otherwise false + */ + protected function checkBrowseriPod() { + if( stripos($this->_agent,'iPod') !== false ) { + $this->setVersion(self::VERSION_UNKNOWN); + $this->setBrowser(self::BROWSER_IPOD); + $this->getSafariVersionOnIos(); + $this->getChromeVersionOnIos(); + $this->checkForFacebookIos(); + $this->setMobile(true); + return true; + } + return false; + } + + /** + * Determine if the browser is Android or not (last updated 1.7) + * @return boolean True if the browser is Android otherwise false + */ + protected function checkBrowserAndroid() + { + if (stripos($this->_agent, 'Android') !== false) { + $aresult = explode(' ', stristr($this->_agent, 'Android')); + if (isset($aresult[1])) { + $aversion = explode(' ', $aresult[1]); + $this->setVersion($aversion[0]); + } else { + $this->setVersion(self::VERSION_UNKNOWN); + } + if (stripos($this->_agent, 'Mobile') !== false) { + $this->setMobile(true); + } else { + $this->setTablet(true); + } + $this->setBrowser(self::BROWSER_ANDROID); + return true; + } + return false; + } + + /** + * Determine the user's platform (last updated 1.7) + */ + protected function checkPlatform() + { + if (stripos($this->_agent, 'windows') !== false) + { + $this->_platform = self::PLATFORM_WINDOWS; + } + else if (stripos($this->_agent, 'iPad') !== false) + { + $this->_platform = self::PLATFORM_IPAD; + } + else if (stripos($this->_agent, 'iPod') !== false) + { + $this->_platform = self::PLATFORM_IPOD; + } + else if (stripos($this->_agent, 'iPhone') !== false) + { + $this->_platform = self::PLATFORM_IPHONE; + } + elseif (stripos($this->_agent, 'mac') !== false) + { + $this->_platform = self::PLATFORM_APPLE; + } + elseif (stripos($this->_agent, 'android') !== false) + { + $this->_platform = self::PLATFORM_ANDROID; + } + elseif (stripos($this->_agent, 'linux') !== false) + { + $this->_platform = self::PLATFORM_LINUX; + } + else if (stripos($this->_agent, 'Nokia') !== false) + { + $this->_platform = self::PLATFORM_NOKIA; + } + else if (stripos($this->_agent, 'BlackBerry') !== false) + { + $this->_platform = self::PLATFORM_BLACKBERRY; + } + elseif (stripos($this->_agent, 'FreeBSD') !== false) + { + $this->_platform = self::PLATFORM_FREEBSD; + } + elseif (stripos($this->_agent, 'OpenBSD') !== false) + { + $this->_platform = self::PLATFORM_OPENBSD; + } + elseif (stripos($this->_agent, 'NetBSD') !== false) + { + $this->_platform = self::PLATFORM_NETBSD; + } + elseif (stripos($this->_agent, 'OpenSolaris') !== false) + { + $this->_platform = self::PLATFORM_OPENSOLARIS; + } + elseif (stripos($this->_agent, 'SunOS') !== false) + { + $this->_platform = self::PLATFORM_SUNOS; + } + elseif (stripos($this->_agent, 'OS\/2') !== false) + { + $this->_platform = self::PLATFORM_OS2; + } + elseif (stripos($this->_agent, 'BeOS') !== false) + { + $this->_platform = self::PLATFORM_BEOS; + } + elseif (stripos($this->_agent, 'win') !== false) + { + $this->_platform = self::PLATFORM_WINDOWS; + } + + } +} diff --git a/redux/ReduxCore/inc/class.p.php b/redux/ReduxCore/inc/class.p.php new file mode 100644 index 0000000..aab958e --- /dev/null +++ b/redux/ReduxCore/inc/class.p.php @@ -0,0 +1,303 @@ + and +// are disabled by default, see for more information. +// callback - If specified, the response JSON will be wrapped in this named +// function call. This parameter and are disabled by +// default, see for more information. +// user_agent - This value will be sent to the remote URL request as the +// `User-Agent:` HTTP request header. If omitted, the browser user agent +// will be passed through. +// send_cookies - If send_cookies=1, all cookies will be forwarded through to +// the remote URL request. +// send_session - If send_session=1 and send_cookies=1, the SID cookie will be +// forwarded through to the remote URL request. +// full_headers - If a JSON request and full_headers=1, the JSON response will +// contain detailed header information. +// full_status - If a JSON request and full_status=1, the JSON response will +// contain detailed cURL status information, otherwise it will just contain +// the `http_code` property. +// +// Topic: POST Parameters +// +// All POST parameters are automatically passed through to the remote URL +// request. +// +// Topic: JSON requests +// +// This request will return the contents of the specified url in JSON format. +// +// Request: +// +// > ba-simple-proxy.php?url=http://example.com/ +// +// Response: +// +// > { "contents": "...", "headers": {...}, "status": {...} } +// +// JSON object properties: +// +// contents - (String) The contents of the remote URL resource. +// headers - (Object) A hash of HTTP headers returned by the remote URL +// resource. +// status - (Object) A hash of status codes returned by cURL. +// +// Topic: JSONP requests +// +// This request will return the contents of the specified url in JSONP format +// (but only if $enable_jsonp is enabled in the PHP script). +// +// Request: +// +// > ba-simple-proxy.php?url=http://example.com/&callback=foo +// +// Response: +// +// > foo({ "contents": "...", "headers": {...}, "status": {...} }) +// +// JSON object properties: +// +// contents - (String) The contents of the remote URL resource. +// headers - (Object) A hash of HTTP headers returned by the remote URL +// resource. +// status - (Object) A hash of status codes returned by cURL. +// +// Topic: Native requests +// +// This request will return the contents of the specified url in the format it +// was received in, including the same content-type and other headers (but only +// if $enable_native is enabled in the PHP script). +// +// Request: +// +// > ba-simple-proxy.php?url=http://example.com/&mode=native +// +// Response: +// +// > ... +// +// Topic: Notes +// +// * Assumes magic_quotes_gpc = Off in php.ini +// +// Topic: Configuration Options +// +// These variables can be manually edited in the PHP file if necessary. +// +// $enable_jsonp - Only enable if you really need to. If you +// install this script on the same server as the page you're calling it +// from, plain JSON will work. Defaults to false. +// $enable_native - You can enable , but you should only do +// this if you also whitelist specific URLs using $valid_url_regex, to avoid +// possible XSS vulnerabilities. Defaults to false. +// $valid_url_regex - This regex is matched against the url parameter to +// ensure that it is valid. This setting only needs to be used if either +// $enable_jsonp or $enable_native are enabled. Defaults to '/.*/' which +// validates all URLs. +// +// ############################################################################ + + + $_GET['mode'] = "native"; + $_GET['full_headers'] = 1; + $_GET['full_status'] = 1; + $_GET['send_cookies'] = 1; + + +// Change these configuration options if needed, see above descriptions for info. + $enable_jsonp = false; + $enable_native = true; + $valid_url_regex = '/.*/'; + +// ############################################################################ + $url = $_GET['url']; + + if ( isset( $_GET['nonce'] ) ) { + $url = str_replace( 'nonce=' . $_GET['nonce'] . '&', '', $url ); + } + + + if ( ! $url ) { + + // Passed url not specified. + $contents = 'ERROR: url not specified'; + $status = array( 'http_code' => 'ERROR' ); + + } else if ( ! preg_match( $valid_url_regex, $url ) ) { + + // Passed url doesn't match $valid_url_regex. + $contents = 'ERROR: invalid url'; + $status = array( 'http_code' => 'ERROR' ); + + } else { + $url = urldecode( $url ); + if ( isset( $_GET['proxy'] ) ) { + $url .= '&proxy=' . $_GET['proxy']; + } + + // Ad URL rewrite + if ( strpos( $url, 'http' ) === false ) { + $url = 'http:' . $url; + } + + if ( isset( $_GET['callback'] ) ) { + foreach ( $_GET as $key => $value ) { + if ( in_array( $key, array( 'url', 'mode', 'full_headers', 'full_status', 'send_cookies' ) ) ) { + continue; + } + $url .= "&" . $key . '=' . $value; + } + } + + + $args = array( + 'user-agent' => isset( $_GET['user_agent'] ) ? $_GET['user_agent'] : $_SERVER['HTTP_USER_AGENT'], + 'method' => 'GET', + ); + + if ( isset( $_GET['send_cookies'] ) && $_GET['send_cookies'] ) { + $cookie = array(); + foreach ( $_COOKIE as $key => $value ) { + $cookie[] = $key . '=' . $value; + } + if ( isset( $_GET['send_session'] ) && $_GET['send_session'] ) { + $cookie[] = SID; + } + $args['cookies'] = $cookie; + + } + if ( strtolower( $_SERVER['REQUEST_METHOD'] ) == 'post' ) { + $args['body'] = $_POST; + $args['method'] = 'POST'; + + } + + + $response = wp_remote_request( + $url, + $args + ); + + if ( ! is_wp_error( $response ) ) { + $status = $response['response']['code']; + $contents = $response['body']; + } + + } + + + if ( isset( $_GET['mode'] ) && $_GET['mode'] == 'native' ) { + if ( ! $enable_native ) { + $contents = 'ERROR: invalid mode'; + $status = array( 'http_code' => 'ERROR' ); + } + + if ( ! is_wp_error( $response ) && isset( $response['headers']['content-type'] ) ) { + header( 'Content-Type: ' . $response['headers']['content-type'] ); + } + if ( ! is_wp_error( $response ) && isset( $response['headers']['content-language'] ) ) { + header( 'Content-Language: ' . $response['headers']['content-language'] ); + } + if ( ! is_wp_error( $response ) && isset( $response['headers']['set-cookie'] ) ) { + header( 'Set-Cookie: ' . $response['headers']['set-cookie'] ); + } + + if ( isset( $contents ) ) { + print str_replace( 'ads.redux.io', 'look.redux.io', $contents ); + } + + } else { + + // $data will be serialized into JSON data. + $data = array(); + + // Propagate all HTTP headers into the JSON data object. + if ( isset( $_GET['full_headers'] ) && $_GET['full_headers'] ) { + $data['headers'] = array(); + + } + + // Propagate all cURL request / response info to the JSON data object. + if ( isset( $_GET['full_status'] ) && $_GET['full_status'] ) { + $data['status'] = $status; + } else { + $data['status'] = array(); + $data['status']['http_code'] = $status['http_code']; + } + + // Set the JSON data object contents, decoding it from JSON if possible. + $decoded_json = json_decode( $contents ); + $data['contents'] = str_replace( 'e(window).width()', 'window.innerWidth||e(window).width()', $decoded_json ? $decoded_json : $contents ); + + // Generate appropriate content-type header. + + $is_xhr = isset( $_SERVER['HTTP_X_REQUESTED_WITH'] ) ? strtolower( $_SERVER['HTTP_X_REQUESTED_WITH'] ) : 'xmlhttprequest'; + header( 'Content-type: application/' . ( $is_xhr ? 'json' : 'x-javascript' ) ); + + // Get JSONP callback. + $jsonp_callback = $enable_jsonp && isset( $_GET['callback'] ) ? $_GET['callback'] : null; + + // Generate JSON/JSONP string + $json = json_encode( $data ); + + print $jsonp_callback ? "$jsonp_callback($json)" : $json; + + } + + } + } + + new Redux_P(); + diff --git a/redux/ReduxCore/inc/class.redux_admin_notices.php b/redux/ReduxCore/inc/class.redux_admin_notices.php new file mode 100644 index 0000000..721f24a --- /dev/null +++ b/redux/ReduxCore/inc/class.redux_admin_notices.php @@ -0,0 +1,199 @@ +admin_notices[$parent->args['page_slug']][] = array( + 'type' => $type, + 'msg' => $msg, + 'id' => $id . '_' . $parent->args['opt_name'], + 'dismiss' => $dismiss, + 'color' => isset($color) ? $color : '#00A2E3' + ); + } + + /** + * adminNotices - Evaluates user dismiss option for displaying admin notices + * + * @since 3.2.0 + * @access public + * @return void + */ + public static function adminNotices($parent, $notices = array() ) { + global $current_user, $pagenow, $wp_version;; + + // Check for an active admin notice array + if ( ! empty( $notices ) ) { + + if (isset($_GET) && isset($_GET['page']) && $_GET['page'] == $parent->args['page_slug']) { + + // Enum admin notices + foreach ( $notices[$parent->args['page_slug']] as $notice ) { + + $add_style = ''; + if ( strpos( $notice['type'], 'redux-message' ) != false ) { + $add_style = 'style="border-left: 4px solid ' . esc_attr( $notice['color'] ) . '!important;"'; + } + + if ( true == $notice['dismiss'] ) { + + // Get user ID + $userid = $current_user->ID; + + if ( ! get_user_meta( $userid, 'ignore_' . $notice['id'] ) ) { + + // Check if we are on admin.php. If we are, we have + // to get the current page slug and tab, so we can + // feed it back to Wordpress. Why> admin.php cannot + // be accessed without the page parameter. We add the + // tab to return the user to the last panel they were + // on. + $pageName = ''; + $curTab = ''; + + if ( $pagenow == 'admin.php' || $pagenow == 'themes.php' ) { + + // Get the current page. To avoid errors, we'll set + // the redux page slug if the GET is empty. + $pageName = empty( $_GET['page'] ) ? '&page=' . $parent->args['page_slug'] : '&page=' . esc_attr( $_GET['page'] ); + + // Ditto for the current tab. + $curTab = empty( $_GET['tab'] ) ? '&tab=0' : '&tab=' . esc_attr( $_GET['tab'] ); + } + + // Print the notice with the dismiss link + if ( version_compare( $wp_version, '4.2', '>' ) ) { + $output = ""; + $css_id = esc_attr( $notice['id'] ) . $pageName . $curTab; + $css_class = esc_attr( $notice['type'] ) . ' redux-notice notice is-dismissible redux-notice'; + $output .= "
    \n"; + $nonce = wp_create_nonce( $notice['id'] . $userid . 'nonce' ); + $output .= " \n"; + $output .= '

    ' . wp_kses_post( $notice['msg'] ) . '

    '; + $output .= "
    \n"; + echo $output; + } else { + echo '

    ' . wp_kses_post( $notice['msg'] ) . '  ' . esc_html__( 'Dismiss', 'redux-framework' ) . '.

    '; + } + } + } else { + // Standard notice + echo '

    ' . wp_kses_post( $notice['msg'] ) . '.

    '; + } +?> + +admin_notices[$parent->args['opt_name']] = array(); + } + } + + /** + * dismissAdminNotice - Updates user meta to store dismiss notice preference + * + * @since 3.2.0 + * @access public + * @return void + */ + public static function dismissAdminNotice() { + global $current_user; + + // Verify the dismiss and id parameters are present. + if ( isset( $_GET['dismiss'] ) && isset( $_GET['id'] ) ) { + if ( 'true' == $_GET['dismiss'] || 'false' == $_GET['dismiss'] ) { + + // Get the user id + $userid = $current_user->ID; + + // Get the notice id + $id = esc_attr( $_GET['id'] ); + $val = esc_attr( $_GET['dismiss'] ); + + // Add the dismiss request to the user meta. + update_user_meta( $userid, 'ignore_' . $id, $val ); + } + } + } + + /** + * dismissAdminNotice - Updates user meta to store dismiss notice preference + * + * @since 3.2.0 + * @access public + * @return void + */ + public static function dismissAdminNoticeAJAX() { + global $current_user; + + // Get the notice id + $id = explode( '&', $_POST['id'] ); + $id = $id[0]; + // Get the user id + $userid = $current_user->ID; + + if ( ! wp_verify_nonce( $_POST['nonce'], $id . $userid . 'nonce' ) ) { + die( 0 ); + } else { + // Add the dismiss request to the user meta. + update_user_meta( $userid, 'ignore_' . $id, true ); + } + } + } + + Redux_Admin_Notices::load(); + } diff --git a/redux/ReduxCore/inc/class.redux_api.php b/redux/ReduxCore/inc/class.redux_api.php new file mode 100644 index 0000000..2a5af36 --- /dev/null +++ b/redux/ReduxCore/inc/class.redux_api.php @@ -0,0 +1,668 @@ +{$closure}->bindTo( $this ), $args ); + } + + public function __toString() { + return call_user_func( $this->{"__toString"}->bindTo( $this ) ); + } + + public static function load() { + add_action( 'after_setup_theme', array( 'Redux', 'createRedux' )); + add_action( 'init', array( 'Redux', 'createRedux' )); + add_action( 'switch_theme', array( 'Redux', 'createRedux' )); + } + + public static function init( $opt_name = "" ) { + if ( ! empty( $opt_name ) ) { + self::loadRedux( $opt_name ); + remove_action( 'setup_theme', array( 'Redux', 'createRedux' ) ); + } + } + + public static function loadExtensions( $ReduxFramework ) { + if ( $instanceExtensions = self::getExtensions( $ReduxFramework->args['opt_name'], "" ) ) { + foreach ( $instanceExtensions as $name => $extension ) { + if ( ! class_exists( $extension['class'] ) ) { + // In case you wanted override your override, hah. + $extension['path'] = apply_filters( 'redux/extension/' . $ReduxFramework->args['opt_name'] . '/' . $name, $extension['path'] ); + if ( file_exists( $extension['path'] ) ) { + require_once $extension['path']; + } + } + if ( ! isset( $ReduxFramework->extensions[ $name ] ) ) { + if ( class_exists( $extension['class'] ) ) { + $ReduxFramework->extensions[ $name ] = new $extension['class']( $ReduxFramework ); + //if (isset($ReduxFramework->extensions[ $name ]->min_redux_version)) { + //var_dump($ReduxFramework->extensions[ $name ]->min_redux_version); + //} + + } else { + echo '

    No class named ' . $extension['class'] . ' exists. Please verify your extension path.

    '; + } + + } + } + } + } + + public static function extensionPath( $extension, $folder = true ) { + if ( ! isset( Redux::$extensions[ $extension ] ) ) { + return; + } + $path = end( Redux::$extensions[ $extension ] ); + if ( ! $folder ) { + return $path; + } + + return str_replace( 'extension_' . $extension . '.php', '', $path ); + } + + + public static function loadRedux( $opt_name = "" ) { + + if ( empty( $opt_name ) ) { + return; + } + + $check = ReduxFrameworkInstances::get_instance( $opt_name ); + + if ( isset( $check->apiHasRun ) ) { + return; + } + + $args = self::constructArgs( $opt_name ); + $sections = self::constructSections( $opt_name ); + if ( ! class_exists( 'ReduxFramework' ) ) { + echo '

    Redux Framework is not installed. Please install it.

    '; + + return; + } + + if ( isset( self::$uses_extensions[ $opt_name ] ) && ! empty( self::$uses_extensions[ $opt_name ] ) ) { + add_action( "redux/extensions/{$opt_name}/before", array( 'Redux', 'loadExtensions' ), 0 ); + } + + $redux = new ReduxFramework( $sections, $args ); + $redux->apiHasRun = 1; + self::$init[ $opt_name ] = 1; + if ( isset( $redux->args['opt_name'] ) && $redux->args['opt_name'] != $opt_name ) { + self::$init[ $redux->args['opt_name'] ] = 1; + } + + } + + public static function createRedux() { + foreach ( self::$sections as $opt_name => $theSections ) { + if ( ! self::$init[ $opt_name ] ) { + self::loadRedux( $opt_name ); + } + } + } + + public static function constructArgs( $opt_name ) { + $args = isset( self::$args[ $opt_name ] ) ? self::$args[ $opt_name ] : array(); + + $args['opt_name'] = $opt_name; + if ( ! isset( $args['menu_title'] ) ) { + $args['menu_title'] = ucfirst( $opt_name ) . ' Options'; + } + if ( ! isset( $args['page_title'] ) ) { + $args['page_title'] = ucfirst( $opt_name ) . ' Options'; + } + if ( ! isset( $args['page_slug'] ) ) { + $args['page_slug'] = $opt_name . '_options'; + } + + return $args; + } + + public static function constructSections( $opt_name ) { + $sections = array(); + if ( ! isset( self::$sections[ $opt_name ] ) ) { + return $sections; + + } + foreach ( self::$sections[ $opt_name ] as $section_id => $section ) { + $section['fields'] = self::constructFields( $opt_name, $section_id ); + $p = $section['priority']; + while ( isset( $sections[ $p ] ) ) { + $p++; + } + $sections[ $p ] = $section; + } + ksort( $sections ); + + return $sections; + } + + public static function constructFields( $opt_name = "", $section_id = "" ) { + $fields = array(); + if ( ! empty( self::$fields[ $opt_name ] ) ) { + foreach ( self::$fields[ $opt_name ] as $key => $field ) { + if ( $field['section_id'] == $section_id ) { + $p = $field['priority']; + while ( isset( $fields[ $p ] ) ) { + echo $p ++; + } + $fields[ $p ] = $field; + } + } + } + ksort( $fields ); + + return $fields; + } + + public static function getSection( $opt_name = '', $id = '' ) { + self::check_opt_name( $opt_name ); + if ( ! empty( $opt_name ) && ! empty( $id ) ) { + if ( ! isset( self::$sections[ $opt_name ][ $id ] ) ) { + $id = strtolower( sanitize_html_class( $id ) ); + } + + return isset( self::$sections[ $opt_name ][ $id ] ) ? self::$sections[ $opt_name ][ $id ] : false; + } + + return false; + } + + public static function setSections( $opt_name = '', $sections = array() ) { + self::check_opt_name( $opt_name ); + if ( ! empty( $sections ) ) { + foreach ( $sections as $section ) { + Redux::setSection( $opt_name, $section ); + } + } + } + + public static function getSections( $opt_name = '' ) { + self::check_opt_name( $opt_name ); + if ( ! empty( self::$sections[ $opt_name ] ) ) { + return self::$sections[ $opt_name ]; + } + + return array(); + } + + public static function removeSection( $opt_name = '', $id = "", $fields = false ) { + if ( ! empty( $opt_name ) && ! empty( $id ) ) { + if ( isset( self::$sections[ $opt_name ][ $id ] ) ) { + $priority = ''; + + foreach ( self::$sections[ $opt_name ] as $key => $section ) { + if ( $key == $id ) { + $priority = $section['priority']; + self::$priority[ $opt_name ]['sections'] --; + unset( self::$sections[ $opt_name ][ $id ] ); + continue; + } + if ( $priority != "" ) { + $newPriority = $section['priority']; + $section['priority'] = $priority; + self::$sections[ $opt_name ][ $key ] = $section; + $priority = $newPriority; + } + } + + if ( isset( self::$fields[ $opt_name ] ) && ! empty( self::$fields[ $opt_name ] ) && $fields == true ) { + foreach ( self::$fields[ $opt_name ] as $key => $field ) { + if ( $field['section_id'] == $id ) { + unset( self::$fields[ $opt_name ][ $key ] ); + } + } + } + } + } + } + + public static function setSection( $opt_name = '', $section = array() ) { + + self::check_opt_name( $opt_name ); + if ( empty( $section ) ) { + return; + } + if ( ! isset( $section['id'] ) ) { + if ( isset( $section['type'] ) && $section['type'] == "divide" ) { + $section['id'] = time(); + } else { + if ( isset( $section['title'] ) ) { + $section['id'] = strtolower( sanitize_title( $section['title'] ) ); + } else { + $section['id'] = time(); + } + } + if ( ! isset( $section['id'] ) ) { + print_r( $section ); + echo "DOVY"; + } + + if ( isset( self::$sections[ $opt_name ][ $section['id'] ] ) ) { + $orig = $section['id']; + $i = 0; + while ( isset( self::$sections[ $opt_name ][ $section['id'] ] ) ) { + $section['id'] = $orig . '_' . $i; + + $i ++; + } + } + } + + if ( ! empty( $opt_name ) && is_array( $section ) && ! empty( $section ) ) { + if ( ! isset( $section['id'] ) && ! isset( $section['title'] ) ) { + self::$errors[ $opt_name ]['section']['missing_title'] = "Unable to create a section due to missing id and title."; + + return; + } + if ( ! isset( $section['priority'] ) ) { + $section['priority'] = self::getPriority( $opt_name, 'sections' ); + } + if ( isset( $section['fields'] ) ) { + if ( ! empty( $section['fields'] ) && is_array( $section['fields'] ) ) { + self::processFieldsArray( $opt_name, $section['id'], $section['fields'] ); + } + unset( $section['fields'] ); + } + self::$sections[ $opt_name ][ $section['id'] ] = $section; + } else { + self::$errors[ $opt_name ]['section']['empty'] = "Unable to create a section due an empty section array or the section variable passed was not an array."; + + return; + } + } + + public static function hideSection( $opt_name = '', $id = '', $hide = true ) { + self::check_opt_name( $opt_name ); + + if ( ! empty( $opt_name ) && ! empty( $id ) ) { + if ( isset ( self::$sections[ $opt_name ][ $id ] ) ) { + self::$sections[ $opt_name ][ $id ]['hidden'] = $hide; + } + } + } + + public static function processFieldsArray( $opt_name = "", $section_id = "", $fields = array() ) { + if ( ! empty( $opt_name ) && ! empty( $section_id ) && is_array( $fields ) && ! empty( $fields ) ) { + foreach ( $fields as $field ) { + if ( ! is_array( $field ) ) { + continue; + } + $field['section_id'] = $section_id; + self::setField( $opt_name, $field ); + } + } + } + + public static function getField( $opt_name = '', $id = '' ) { + self::check_opt_name( $opt_name ); + if ( ! empty( $opt_name ) && ! empty( $id ) ) { + return isset( self::$fields[ $opt_name ][ $id ] ) ? self::$fields[ $opt_name ][ $id ] : false; + } + + return false; + } + + public static function hideField( $opt_name = '', $id = '', $hide = true ) { + self::check_opt_name( $opt_name ); + + if ( ! empty( $opt_name ) && ! empty( $id ) ) { + if ( isset ( self::$fields[ $opt_name ][ $id ] ) ) { + if ( ! $hide ) { + self::$fields[ $opt_name ][ $id ]['class'] = str_replace( 'hidden', '', self::$fields[ $opt_name ][ $id ]['class'] ); + } else { + self::$fields[ $opt_name ][ $id ]['class'] .= 'hidden'; + } + } + } + } + + public static function setField( $opt_name = '', $field = array() ) { + self::check_opt_name( $opt_name ); + + if ( ! empty( $opt_name ) && is_array( $field ) && ! empty( $field ) ) { + + if ( ! isset( $field['priority'] ) ) { + $field['priority'] = self::getPriority( $opt_name, 'fields' ); + } + if ( isset( $field['id'] ) ) { + self::$fields[ $opt_name ][ $field['id'] ] = $field; + } + } + } + + public static function removeField( $opt_name = '', $id = '' ) { + self::check_opt_name( $opt_name ); + + if ( ! empty( $opt_name ) && ! empty( $id ) ) { + if ( isset( self::$fields[ $opt_name ][ $id ] ) ) { + foreach ( self::$fields[ $opt_name ] as $key => $field ) { + if ( $key == $id ) { + $priority = $field['priority']; + self::$priority[ $opt_name ]['fields'] --; + unset( self::$fields[ $opt_name ][ $id ] ); + continue; + } + if ( isset( $priority ) && $priority != "" ) { + $newPriority = $field['priority']; + $field['priority'] = $priority; + self::$fields[ $opt_name ][ $key ] = $field; + $priority = $newPriority; + } + } + } + } + + return false; + } + + public static function setHelpTab( $opt_name = "", $tab = array() ) { + self::check_opt_name( $opt_name ); + if ( ! empty( $opt_name ) && ! empty( $tab ) ) { + if ( ! isset( self::$args[ $opt_name ]['help_tabs'] ) ) { + self::$args[ $opt_name ]['help_tabs'] = array(); + } + if ( isset( $tab['id'] ) ) { + self::$args[ $opt_name ]['help_tabs'][] = $tab; + } else if ( is_array( end( $tab ) ) ) { + foreach ( $tab as $tab_item ) { + self::$args[ $opt_name ]['help_tabs'][] = $tab_item; + } + } + } + } + + public static function setHelpSidebar( $opt_name = "", $content = "" ) { + self::check_opt_name( $opt_name ); + if ( ! empty( $opt_name ) && ! empty( $content ) ) { + self::$args[ $opt_name ]['help_sidebar'] = $content; + } + } + + public static function setArgs( $opt_name = "", $args = array() ) { + self::check_opt_name( $opt_name ); + if ( ! empty( $opt_name ) && ! empty( $args ) && is_array( $args ) ) { + if ( isset( self::$args[ $opt_name ] ) && isset( self::$args[ $opt_name ]['clearArgs'] ) ) { + self::$args[ $opt_name ] = array(); + } + self::$args[ $opt_name ] = wp_parse_args( $args, self::$args[ $opt_name ] ); + } + } + + public static function getArgs( $opt_name = "" ) { + self::check_opt_name( $opt_name ); + if ( ! empty( $opt_name ) && ! empty( self::$args[ $opt_name ] ) ) { + return self::$args[ $opt_name ]; + } + } + + public static function getArg( $opt_name = "", $key = "" ) { + self::check_opt_name( $opt_name ); + if ( ! empty( $opt_name ) && ! empty( $key ) && ! empty( self::$args[ $opt_name ] ) ) { + return self::$args[ $opt_name ][ $key ]; + } else { + return; + } + } + + public static function getOption( $opt_name = "", $key = "" ) { + self::check_opt_name( $opt_name ); + + if ( ! empty( $opt_name ) && ! empty( $key ) ) { + $redux = get_option( $opt_name ); + + if ( isset( $redux[ $key ] ) ) { + return $redux[ $key ]; + } else { + return; + } + } else { + return; + } + } + + public static function setOption( $opt_name = "", $key = "", $option = "" ) { + self::check_opt_name( $opt_name ); + + if ( ! empty( $opt_name ) && ! empty( $key ) ) { + $redux = get_option( $opt_name ); + $redux[ $key ] = $option; + + return update_option( $opt_name, $redux ); + } else { + return false; + } + } + + public static function getPriority( $opt_name, $type ) { + $priority = self::$priority[ $opt_name ][ $type ]; + self::$priority[ $opt_name ][ $type ] += 1; + + return $priority; + } + + public static function check_opt_name( $opt_name = "" ) { + if ( empty( $opt_name ) || is_array( $opt_name ) ) { + return; + } + if ( ! isset( self::$sections[ $opt_name ] ) ) { + self::$sections[ $opt_name ] = array(); + self::$priority[ $opt_name ]['sections'] = 1; + } + if ( ! isset( self::$args[ $opt_name ] ) ) { + self::$args[ $opt_name ] = array(); + self::$priority[ $opt_name ]['args'] = 1; + } + if ( ! isset( self::$fields[ $opt_name ] ) ) { + self::$fields[ $opt_name ] = array(); + self::$priority[ $opt_name ]['fields'] = 1; + } + if ( ! isset( self::$help[ $opt_name ] ) ) { + self::$help[ $opt_name ] = array(); + self::$priority[ $opt_name ]['help'] = 1; + } + if ( ! isset( self::$errors[ $opt_name ] ) ) { + self::$errors[ $opt_name ] = array(); + } + if ( ! isset( self::$init[ $opt_name ] ) ) { + self::$init[ $opt_name ] = false; + } + } + + /** + * Retrieve metadata from a file. Based on WP Core's get_file_data function + * + * @since 2.1.1 + * + * @param string $file Path to the file + * + * @return string + */ + public static function getFileVersion( $file ) { + $data = get_file_data( $file, array( 'version' ), 'plugin' ); + + return $data[0]; + } + + public static function checkExtensionClassFile( $opt_name, $name = "", $class_file = "", $instance = "" ) { + if ( file_exists( $class_file ) ) { + + self::$uses_extensions[ $opt_name ] = isset( self::$uses_extensions[ $opt_name ] ) ? self::$uses_extensions[ $opt_name ] : array(); + if ( ! in_array( $name, self::$uses_extensions[ $opt_name ] ) ) { + self::$uses_extensions[ $opt_name ][] = $name; + } + + self::$extensions[ $name ] = isset( self::$extensions[ $name ] ) ? self::$extensions[ $name ] : array(); + $version = Redux_Helpers::get_template_version( $class_file ); + if ( empty( $version ) && ! empty( $instance ) ) { + if ( isset( $instance->version ) ) { + $version = $instance->version; + } + } + self::$extensions[ $name ][ $version ] = isset( self::$extensions[ $name ][ $version ] ) ? self::$extensions[ $name ][ $version ] : $class_file; + + $api_check = str_replace( 'extension_' . $name, $name . '_api', $class_file ); + if ( file_exists( $api_check ) && ! class_exists( 'Redux_' . ucfirst( $name ) ) ) { + include_once( $api_check ); + } + } + } + + public static function setExtensions( $opt_name, $path ) { + if ( is_dir( $path ) ) { + $path = trailingslashit( $path ); + $folder = str_replace( '.php', '', basename( $path ) ); + if ( file_exists( $path . 'extension_' . $folder . '.php' ) ) { + self::checkExtensionClassFile( $opt_name, $folder, $path . 'extension_' . $folder . '.php' ); + } else { + $folders = scandir( $path, 1 ); + foreach ( $folders as $folder ) { + if ( $folder === '.' or $folder === '..' or $folder[0] == "." ) { + continue; + } + if ( file_exists( $path . $folder . '/extension_' . $folder . '.php' ) ) { + self::checkExtensionClassFile( $opt_name, $folder, $path . $folder . '/extension_' . $folder . '.php' ); + } else if ( is_dir( $path . $folder ) ) { + self::setExtensions( $opt_name, $path . $folder ); + continue; + } + } + } + } else if ( file_exists( $path ) ) { + $name = explode( 'extension_', basename( $path ) ); + if ( isset( $name[1] ) && ! empty( $name[1] ) ) { + $name = str_replace( '.php', '', $name[1] ); + self::checkExtensionClassFile( $opt_name, $name, $path ); + } + } + } + + /** + * Method to disables Redux demo mode popup. + */ + public static function disable_demo() { + add_action('ReduxFrameworkPlugin_admin_notice', 'Redux::remove_demo', 0); + add_action('redux_framework_plugin_admin_notice', 'Redux::remove_demo', 0); + } + + /** + * Callback used by Redux::disable_demo() to remove the demo mode notice from Redux. + */ + function remove_demo() { + update_option('ReduxFrameworkPlugin_ACTIVATED_NOTICES', ''); + } + + public static function getAllExtensions() { + $redux = ReduxFrameworkInstances::get_all_instances(); + foreach ( $redux as $instance ) { + if ( ! empty( self::$uses_extensions[ $instance['args']['opt_name'] ] ) ) { + continue; + } + if ( ! empty( $instance['extensions'] ) ) { + + Redux::getInstanceExtensions( $instance['args']['opt_name'], $instance ); + } + } + } + + public static function getInstanceExtensions( $opt_name, $instance = array() ) { + if ( ! empty( self::$uses_extensions[ $opt_name ] ) ) { + return; + } + if ( empty( $instance ) ) { + $instance = ReduxFrameworkInstances::get_instance( $opt_name ); + } + if ( empty( $instance ) || empty( $instance->extensions ) ) { + return; + } + foreach ( $instance->extensions as $name => $extension ) { + if ( $name == "widget_areas" ) { + $new = new Redux_Widget_Areas( $instance ); + } + if ( isset( self::$uses_extensions[ $opt_name ][ $name ] ) ) { + continue; + } + if ( isset( $extension->extension_dir ) ) { + Redux::setExtensions( $opt_name, str_replace( $name, '', $extension->extension_dir ) ); + + } else if ( isset( $extension->_extension_dir ) ) { + Redux::setExtensions( $opt_name, str_replace( $name, '', $extension->_extension_dir ) ); + } + } + } + + public static function getExtensions( $opt_name = "", $key = "" ) { + + if ( empty( $opt_name ) ) { + Redux::getAllExtensions(); + if ( empty( $key ) ) { + return self::$extension_paths; + } else { + if ( isset( self::$extension_paths[ $key ] ) ) { + return self::$extension_paths[ $key ]; + } + } + } else { + if ( empty( self::$uses_extensions[ $opt_name ] ) ) { + Redux::getInstanceExtensions( $opt_name ); + } + + if ( empty( self::$uses_extensions[ $opt_name ] ) ) { + return false; + } + $instanceExtensions = array(); + foreach ( self::$uses_extensions[ $opt_name ] as $extension ) { + $class_file = end( self::$extensions[ $extension ] ); + $name = str_replace( '.php', '', basename( $extension ) ); + $extension_class = 'ReduxFramework_Extension_' . $name; + $instanceExtensions[ $extension ] = array( + 'path' => $class_file, + 'class' => $extension_class, + 'version' => Redux_Helpers::get_template_version( $class_file ) + ); + } + + return $instanceExtensions; + } + + return false; + } + } + + Redux::load(); + } diff --git a/redux/ReduxCore/inc/class.redux_cdn.php b/redux/ReduxCore/inc/class.redux_cdn.php new file mode 100644 index 0000000..35c53db --- /dev/null +++ b/redux/ReduxCore/inc/class.redux_cdn.php @@ -0,0 +1,164 @@ +args['dev_mode'] ) { + $msg = sprintf( __( 'If you are developing offline, please download and install the Redux Vendor Support plugin/extension to bypass the our CDN and avoid this warning', 'redux-framework' ), 'https://github.com/reduxframework/redux-vendor-support' ); + } + + $msg = '' . __( 'Redux Framework Warning', 'redux-framework' ) . '
    ' . sprintf( __( '%s CDN unavailable. Some controls may not render properly.', 'redux-framework' ), $handle ) . ' ' . $msg; + + $data = array( + 'parent' => self::$_parent, + 'type' => 'error', + 'msg' => $msg, + 'id' => $handle . $tran_key, + 'dismiss' => false + ); + + Redux_Admin_Notices::set_notice($data); + } + } + } else { + set_transient( $handle . $tran_key, true, MINUTE_IN_SECONDS * self::$_parent->args['cdn_check_time'] ); + + if ( $register ) { + self::_register( $handle, $src_cdn, $deps, $ver, $footer_or_media, $is_script ); + } else { + self::_enqueue( $handle, $src_cdn, $deps, $ver, $footer_or_media, $is_script ); + } + } + } + } + + private static function _vendor_plugin( $register, $handle, $src_cdn, $deps, $ver, $footer_or_media, $is_script = true ) { + if ( class_exists( 'Redux_VendorURL' ) ) { + $src = Redux_VendorURL::get_url( $handle ); + + if ( $register ) { + self::_register( $handle, $src, $deps, $ver, $footer_or_media, $is_script ); + } else { + self::_enqueue( $handle, $src, $deps, $ver, $footer_or_media, $is_script ); + } + } else { + if ( ! self::$_set ) { + $msg = sprintf( __( 'The Vendor Support plugin (or extension) is either not installed or not activated and thus, some controls may not render properly. Please ensure that it is installed and activated', 'redux-framework' ), 'https://github.com/reduxframework/redux-vendor-support', admin_url( 'plugins.php' ) ); + + $data = array( + 'parent' => self::$_parent, + 'type' => 'error', + 'msg' => $msg, + 'id' => $handle, + 'dismiss' => false + ); + + Redux_Admin_Notices::set_notice($data); + + self::$_set = true; + } + } + } + + public static function register_style( $handle, $src_cdn = false, $deps = array(), $ver = false, $media = 'all' ) { + if ( self::$_parent->args['use_cdn'] ) { + self::_cdn( true, $handle, $src_cdn, $deps, $ver, $media, $is_script = false ); + } else { + self::_vendor_plugin( true, $handle, $src_cdn, $deps, $ver, $media, $is_script = false ); + } + } + + public static function register_script( $handle, $src_cdn = false, $deps = array(), $ver = false, $in_footer = false ) { + if ( self::$_parent->args['use_cdn'] ) { + self::_cdn( true, $handle, $src_cdn, $deps, $ver, $in_footer, $is_script = true ); + } else { + self::_vendor_plugin( true, $handle, $src_cdn, $deps, $ver, $in_footer, $is_script = true ); + } + } + + public static function enqueue_style( $handle, $src_cdn = false, $deps = array(), $ver = false, $media = 'all' ) { + if ( self::$_parent->args['use_cdn'] ) { + self::_cdn( false, $handle, $src_cdn, $deps, $ver, $media, $is_script = false ); + } else { + self::_vendor_plugin( false, $handle, $src_cdn, $deps, $ver, $media, $is_script = false ); + } + } + + public static function enqueue_script( $handle, $src_cdn = false, $deps = array(), $ver = false, $in_footer = false ) { + if ( self::$_parent->args['use_cdn'] ) { + self::_cdn( false, $handle, $src_cdn, $deps, $ver, $in_footer, $is_script = true ); + } else { + self::_vendor_plugin( false, $handle, $src_cdn, $deps, $ver, $in_footer, $is_script = true ); + } + } + } + } diff --git a/redux/ReduxCore/inc/class.redux_filesystem.php b/redux/ReduxCore/inc/class.redux_filesystem.php new file mode 100644 index 0000000..db7c9d7 --- /dev/null +++ b/redux/ReduxCore/inc/class.redux_filesystem.php @@ -0,0 +1,307 @@ +parent = $parent; + } + + return self::$instance; + } + + public function ftp_form() { + if ( isset( $this->parent->ftp_form ) && ! empty( $this->parent->ftp_form ) ) { + echo '

    '; + echo '' . __( 'File Permission Issues', 'redux-framework' ) . '
    ' . sprintf( __( 'We were unable to modify required files. Please ensure that %1s has the proper read-write permissions, or modify your wp-config.php file to contain your FTP login credentials as outlined here.', 'redux-framework' ), Redux_Helpers::cleanFilePath( trailingslashit( WP_CONTENT_DIR ) ) . '/uploads/', 'https://codex.wordpress.org/Editing_wp-config.php#WordPress_Upgrade_Constants' ); + echo '

    ' . '
    '; + } + } + + function filesystem_init( $form_url, $method = '', $context = false, $fields = null ) { + global $wp_filesystem; + + if ( ! empty( $this->creds ) ) { + return true; + } + + ob_start(); + + /* first attempt to get credentials */ + if ( false === ( $this->creds = request_filesystem_credentials( $form_url, $method, false, $context ) ) ) { + $this->creds = array(); + $this->parent->ftp_form = ob_get_contents(); + ob_end_clean(); + + /** + * if we comes here - we don't have credentials + * so the request for them is displaying + * no need for further processing + **/ + + return false; + } + + /* now we got some credentials - try to use them*/ + if ( ! WP_Filesystem( $this->creds ) ) { + $this->creds = array(); + /* incorrect connection data - ask for credentials again, now with error message */ + request_filesystem_credentials( $form_url, '', true, $context ); + $this->parent->ftp_form = ob_get_contents(); + ob_end_clean(); + + return false; + } + + return true; + } + + public static function load_direct() { + if ( self::$direct === null ) { + require_once ABSPATH . '/wp-admin/includes/class-wp-filesystem-base.php'; + require_once ABSPATH . '/wp-admin/includes/class-wp-filesystem-direct.php'; + self::$direct = new WP_Filesystem_Direct( array() ); + } + } + + public function execute( $action, $file = '', $params = '' ) { + + if ( empty( $this->parent->args ) ) { + return; + } + + if ( ! empty ( $params ) ) { + extract( $params ); + } + + // Setup the filesystem with creds + require_once ABSPATH . '/wp-admin/includes/template.php'; + require_once ABSPATH . '/wp-includes/pluggable.php'; + require_once ABSPATH . '/wp-admin/includes/file.php'; + + if ( $this->parent->args['menu_type'] == 'submenu' ) { + $page_parent = $this->parent->args['page_parent']; + $base = $page_parent . '?page=' . $this->parent->args['page_slug']; + } else { + $base = 'admin.php?page=' . $this->parent->args['page_slug']; + } + + $url = wp_nonce_url( $base, 'redux-options' ); + + $this->filesystem_init( $url, 'direct', dirname( $file ) ); + + if ( ! file_exists( ReduxFramework::$_upload_dir ) ) { + $this->do_action( 'mkdir', ReduxFramework::$_upload_dir ); + } + + $hash_path = trailingslashit( ReduxFramework::$_upload_dir ) . 'hash'; + if ( ! file_exists( $hash_path ) ) { + $this->do_action( 'put_contents', $hash_path, array( + 'content' => md5( network_site_url() . '-' . $_SERVER['REMOTE_ADDR'] ) + ) + ); + } + $version_path = trailingslashit( ReduxFramework::$_upload_dir ) . 'version'; + if ( ! file_exists( $version_path ) ) { + $this->do_action( 'put_contents', $version_path, array( + 'content' => ReduxFramework::$_version + ) + ); + } + + $index_path = trailingslashit( ReduxFramework::$_upload_dir ) . 'index.php'; + if ( ! file_exists( $index_path ) ) { + $this->do_action( 'put_contents', $index_path, array( + 'content' => 'do_action( $action, $file, $params ); + } + + public function do_action( $action, $file = '', $params = '' ) { + + if ( ! empty ( $params ) ) { + extract( $params ); + } + + global $wp_filesystem; + + if ( ! isset( $params['chmod'] ) || ( isset( $params['chmod'] ) && empty( $params['chmod'] ) ) ) { + if ( defined( 'FS_CHMOD_FILE' ) ) { + $chmod = FS_CHMOD_FILE; + } else { + $chmod = 0644; + } + } + $res = false; + if ( ! isset( $recursive ) ) { + $recursive = false; + } + + //$target_dir = $wp_filesystem->find_folder( dirname( $file ) ); + + // Do unique stuff + if ( $action == 'mkdir' ) { + + if ( defined( 'FS_CHMOD_DIR' ) ) { + $chmod = FS_CHMOD_DIR; + } else { + $chmod = 0755; + } + $res = $wp_filesystem->mkdir( $file ); + if ( ! $res ) { + wp_mkdir_p( $file ); + + $res = file_exists( $file ); + if ( ! $res ) { + mkdir( $file, $chmod, true ); + $res = file_exists( $file ); + } + } + $index_path = trailingslashit( $file ) . 'index.php'; + if ( ! file_exists( $index_path ) ) { + $wp_filesystem->put_contents( + $index_path, + 'rmdir( $file, $recursive ); + } elseif ( $action == 'copy' && ! isset( $this->filesystem->killswitch ) ) { + if ( isset( $this->parent->ftp_form ) && ! empty( $this->parent->ftp_form ) ) { + $res = copy( $file, $destination ); + if ( $res ) { + chmod( $destination, $chmod ); + } + } else { + $res = $wp_filesystem->copy( $file, $destination, $overwrite, $chmod ); + } + } elseif ( $action == 'move' && ! isset( $this->filesystem->killswitch ) ) { + $res = $wp_filesystem->copy( $file, $destination, $overwrite ); + } elseif ( $action == 'delete' ) { + $res = $wp_filesystem->delete( $file, $recursive ); + } elseif ( $action == 'rmdir' ) { + $res = $wp_filesystem->rmdir( $file, $recursive ); + } elseif ( $action == 'dirlist' ) { + if ( ! isset( $include_hidden ) ) { + $include_hidden = true; + } + $res = $wp_filesystem->dirlist( $file, $include_hidden, $recursive ); + } elseif ( $action == 'put_contents' && ! isset( $this->filesystem->killswitch ) ) { + // Write a string to a file + if ( isset( $this->parent->ftp_form ) && ! empty( $this->parent->ftp_form ) ) { + self::load_direct(); + $res = self::$direct->put_contents( $file, $content, $chmod ); + } else { + $res = $wp_filesystem->put_contents( $file, $content, $chmod ); + } + } elseif ( $action == 'chown' ) { + // Changes file owner + if ( isset( $owner ) && ! empty( $owner ) ) { + $res = $wp_filesystem->chmod( $file, $chmod, $recursive ); + } + } elseif ( $action == 'owner' ) { + // Gets file owner + $res = $wp_filesystem->owner( $file ); + } elseif ( $action == 'chmod' ) { + + if ( ! isset( $params['chmod'] ) || ( isset( $params['chmod'] ) && empty( $params['chmod'] ) ) ) { + $chmod = false; + } + + $res = $wp_filesystem->chmod( $file, $chmod, $recursive ); + + } elseif ( $action == 'get_contents' ) { + // Reads entire file into a string + if ( isset( $this->parent->ftp_form ) && ! empty( $this->parent->ftp_form ) ) { + self::load_direct(); + $res = self::$direct->get_contents( $file ); + } else { + $res = $wp_filesystem->get_contents( $file ); + } + } elseif ( $action == 'get_contents_array' ) { + // Reads entire file into an array + $res = $wp_filesystem->get_contents_array( $file ); + } elseif ( $action == 'object' ) { + $res = $wp_filesystem; + } elseif ( $action == 'unzip' ) { + $unzipfile = unzip_file( $file, $destination ); + if ( $unzipfile ) { + $res = true; + } + } + + if ( ! $res ) { + if ( $action == 'dirlist' ) { + if ( empty( $res ) || $res == false || $res == '' ) { + return; + } + + if ( is_array( $res ) && empty( $res ) ) { + return; + } + + if ( ! is_array( $res ) ) { + if ( count( glob( "$file*" ) ) == 0 ) { + return; + } + } + } + + $this->killswitch = true; + + $msg = '' . __( 'File Permission Issues', 'redux-framework' ) . '
    ' . sprintf( __( 'We were unable to modify required files. Please ensure that %1s has the proper read-write permissions, or modify your wp-config.php file to contain your FTP login credentials as outlined here.', 'redux-framework' ), Redux_Helpers::cleanFilePath( trailingslashit( WP_CONTENT_DIR ) ) . '/uploads/', 'https://codex.wordpress.org/Editing_wp-config.php#WordPress_Upgrade_Constants' ); + + $data = array( + 'parent' => self::$instance->parent, + 'type' => 'error', + 'msg' => $msg, + 'id' => 'redux-wp-login', + 'dismiss' => false + ); + + Redux_Admin_Notices::set_notice($data); + } + + return $res; + } + } + + Redux_Filesystem::get_instance(); + } diff --git a/redux/ReduxCore/inc/class.redux_functions.php b/redux/ReduxCore/inc/class.redux_functions.php new file mode 100644 index 0000000..1f3ee45 --- /dev/null +++ b/redux/ReduxCore/inc/class.redux_functions.php @@ -0,0 +1,269 @@ +args['dev_mode'] ) { + $min = '.min'; + } + + return $min; + } + + /** + * Sets a cookie. + * Do nothing if unit testing. + * + * @since 3.5.4 + * @access public + * @return void + * + * @param string $name The cookie name. + * @param string $value The cookie value. + * @param integer $expire Expiry time. + * @param string $path The cookie path. + * @param string $domain The cookie domain. + * @param boolean $secure HTTPS only. + * @param boolean $httponly Only set cookie on HTTP calls. + */ + public static function setCookie( $name, $value, $expire = 0, $path='', $domain = null, $secure = false, $httponly = false ) { + if ( ! defined( 'WP_TESTS_DOMAIN' ) ) { + setcookie( $name, $value, $expire, $path, $domain, $secure, $httponly ); + } + } + + /** + * Parse CSS from output/compiler array + * + * @since 3.2.8 + * @access private + * @return $css CSS string + */ + public static function parseCSS( $cssArray = array(), $style = '', $value = '' ) { + + // Something wrong happened + if ( count( $cssArray ) == 0 ) { + return; + } else { //if ( count( $cssArray ) >= 1 ) { + $css = ''; + + foreach ( $cssArray as $element => $selector ) { + + // The old way + if ( $element === 0 ) { + $css = self::theOldWay( $cssArray, $style ); + + return $css; + } + + // New way continued + $cssStyle = $element . ':' . $value . ';'; + + $css .= $selector . '{' . $cssStyle . '}'; + } + } + + return $css; + } + + private static function theOldWay( $cssArray, $style ) { + $keys = implode( ",", $cssArray ); + $css = $keys . "{" . $style . '}'; + + return $css; + } + + /** + * initWpFilesystem - Initialized the Wordpress filesystem, if it already isn't. + * + * @since 3.2.3 + * @access public + * @return void + */ + public static function initWpFilesystem() { + global $wp_filesystem; + + // Initialize the Wordpress filesystem, no more using file_put_contents function + if ( empty( $wp_filesystem ) ) { + require_once ABSPATH . '/wp-includes/pluggable.php'; + require_once ABSPATH . '/wp-admin/includes/file.php'; + WP_Filesystem(); + } + } + + /** + * verFromGit - Retrives latest Redux version from GIT + * + * @since 3.2.0 + * @access private + * @return string $ver + */ + private static function verFromGit() { + // Get the raw framework.php from github + $gitpage = wp_remote_get( + 'https://raw.github.com/ReduxFramework/redux-framework/master/ReduxCore/framework.php', array( + 'headers' => array( + 'Accept-Encoding' => '' + ), + 'sslverify' => true, + 'timeout' => 300 + ) ); + + // Is the response code the corect one? + if ( ! is_wp_error( $gitpage ) ) { + if ( isset( $gitpage['body'] ) ) { + // Get the page text. + $body = $gitpage['body']; + + // Find version line in framework.php + $needle = 'public static $_version ='; + $pos = strpos( $body, $needle ); + + // If it's there, continue. We don't want errors if $pos = 0. + if ( $pos > 0 ) { + + // Look for the semi-colon at the end of the version line + $semi = strpos( $body, ";", $pos ); + + // Error avoidance. If the semi-colon is there, continue. + if ( $semi > 0 ) { + + // Extract the version line + $text = substr( $body, $pos, ( $semi - $pos ) ); + + // Find the first quote around the veersion number. + $quote = strpos( $body, "'", $pos ); + + // Extract the version number + $ver = substr( $body, $quote, ( $semi - $quote ) ); + + // Strip off quotes. + $ver = str_replace( "'", '', $ver ); + + return $ver; + } + } + } + } + } + + /** + * updateCheck - Checks for updates to Redux Framework + * + * @since 3.2.0 + * @access public + * + * @param string $curVer Current version of Redux Framework + * + * @return void - Admin notice is diaplyed if new version is found + */ + public static function updateCheck( $parent, $curVer ) { + + // If no cookie, check for new ver + if ( ! isset( $_COOKIE['redux_update_check'] ) ) { // || 1 == strcmp($_COOKIE['redux_update_check'], self::$_version)) { + // actual ver number from git repo + $ver = self::verFromGit(); + + // hour long cookie. + setcookie( "redux_update_check", $ver, time() + 3600, '/' ); + } else { + + // saved value from cookie. If it's different from current ver + // we can still show the update notice. + $ver = $_COOKIE['redux_update_check']; + } + + // Set up admin notice on new version + //if ( 1 == strcmp( $ver, $curVer ) ) { + if ( version_compare( $ver, $curVer, '>' ) ) { + $msg = 'A new build of Redux is now available!

    Your version: ' . $curVer . '
    New version: ' . $ver . '

    If you are not a developer, your theme/plugin author shipped with dev_mode on. Contact them to fix it, but in the meantime you can use our dev_mode disabler.

    Get it now  |'; + + $data = array( + 'parent' => $parent, + 'type' => 'updated', + 'msg' => $msg, + 'id' => 'dev_notice_' . $ver, + 'dismiss' => true + ); + + Redux_Admin_Notices::set_notice($data); + } + } + + public static function tru( $string, $opt_name ) { + $redux = ReduxFrameworkInstances::get_instance( $opt_name ); + $check = get_user_option( 'r_tru_u_x', array() ); + if ( ! empty( $check ) && ( isset( $check['expires'] ) < time() ) ) { + $check = array(); + } + + //if ( isset( $redux->args['dev_mode'] ) && $redux->args['dev_mode'] == true && ! ( isset( $redux->args['forced_dev_mode_off'] ) && $redux->args['forced_dev_mode_off'] == true ) ) { + if ( isset( $redux->args['dev_mode'] ) && $redux->args['dev_mode'] == true ) { + update_user_option( get_current_user_id(), 'r_tru_u_x', array( + 'id' => '', + 'expires' => 60 * 60 * 24 + ) ); + return apply_filters( 'redux/' . $opt_name . '/aURL_filter', '' ); + } else { + + if ( empty( $check ) ) { + $check = @wp_remote_get( 'http://look.redux.io/status.php?p=' . ReduxFramework::$_is_plugin ); + $check = json_decode( wp_remote_retrieve_body( $check ), true ); + + if ( ! empty( $check ) && isset( $check['id'] ) ) { + update_user_option( get_current_user_id(), 'r_tru_u_x', $check ); + } + } + $check = isset( $check['id'] ) ? $check['id'] : $check; + if ( ! empty( $check ) ) { + return apply_filters( 'redux/' . $opt_name . '/aURL_filter', '' ); + } else { + return ""; + } + } + } + + public static function dat($fname, $opt_name){ + $name = apply_filters('redux/' . $opt_name . '/aDBW_filter', $fname); + + return $name; + } + + public static function bub($fname, $opt_name){ + $name = apply_filters('redux/' . $opt_name . '/aNF_filter', $fname); + + return $name; + } + + public static function yo($fname, $opt_name){ + $name = apply_filters('redux/' . $opt_name . '/aNFM_filter', $fname); + + return $name; + } + } + } diff --git a/redux/ReduxCore/inc/class.redux_helpers.php b/redux/ReduxCore/inc/class.redux_helpers.php new file mode 100644 index 0000000..b135f33 --- /dev/null +++ b/redux/ReduxCore/inc/class.redux_helpers.php @@ -0,0 +1,776 @@ +sections as $k => $section ) { + if ( ! isset( $section['title'] ) ) { + continue; + } + + if ( isset( $section['fields'] ) && ! empty( $section['fields'] ) ) { + if ( Redux_Helpers::recursive_array_search( $field, $section['fields'] ) ) { + return $k; + continue; + } + } + } + } + + public static function isFieldInUseByType( $fields, $field = array() ) { + foreach ( $field as $name ) { + if ( array_key_exists( $name, $fields ) ) { + return true; + } + } + + return false; + } + + public static function get_auth_key_secret_key() { + $key = ""; + $key .= defined( 'AUTH_KEY' ) ? AUTH_KEY : get_site_url(); + $key .= defined( 'SECURE_AUTH_KEY' ) ? SECURE_AUTH_KEY : get_site_url(); + + return $key; + } + + public static function isFieldInUse( $parent, $field ) { + foreach ( $parent->sections as $k => $section ) { + if ( ! isset( $section['title'] ) ) { + continue; + } + + if ( isset( $section['fields'] ) && ! empty( $section['fields'] ) ) { + if ( Redux_Helpers::recursive_array_search( $field, $section['fields'] ) ) { + return true; + continue; + } + } + } + } + + public static function major_version( $v ) { + $version = explode( '.', $v ); + if ( count( $version ) > 1 ) { + return $version[0] . '.' . $version[1]; + } else { + return $v; + } + } + + public static function isLocalHost() { + return ( isset( $_SERVER['REMOTE_ADDR'] ) && ( $_SERVER['REMOTE_ADDR'] === '127.0.0.1' || $_SERVER['REMOTE_ADDR'] === 'localhost' ) ) ? 1 : 0; + } + + public static function isWpDebug() { + return ( defined( 'WP_DEBUG' ) && WP_DEBUG == true ); + } + + public static function getTrackingObject() { + global $wpdb; + + $hash = md5( network_site_url() . '-' . $_SERVER['REMOTE_ADDR'] ); + + global $blog_id, $wpdb; + $pts = array(); + + foreach ( get_post_types( array( 'public' => true ) ) as $pt ) { + $count = wp_count_posts( $pt ); + $pts[ $pt ] = $count->publish; + } + + $comments_count = wp_count_comments(); + $theme_data = wp_get_theme(); + $theme = array( + 'version' => $theme_data->Version, + 'name' => $theme_data->Name, + 'author' => $theme_data->Author, + 'template' => $theme_data->Template, + ); + + if ( ! function_exists( 'get_plugin_data' ) ) { + if ( file_exists( ABSPATH . 'wp-admin/includes/plugin.php' ) ) { + require_once ABSPATH . 'wp-admin/includes/plugin.php'; + } + if ( file_exists( ABSPATH . 'wp-admin/includes/admin.php' ) ) { + require_once ABSPATH . 'wp-admin/includes/admin.php'; + } + } + + $plugins = array(); + foreach ( get_option( 'active_plugins', array() ) as $plugin_path ) { + $plugin_info = get_plugin_data( WP_PLUGIN_DIR . '/' . $plugin_path ); + + $slug = str_replace( '/' . basename( $plugin_path ), '', $plugin_path ); + $plugins[ $slug ] = array( + 'version' => $plugin_info['Version'], + 'name' => $plugin_info['Name'], + 'plugin_uri' => $plugin_info['PluginURI'], + 'author' => $plugin_info['AuthorName'], + 'author_uri' => $plugin_info['AuthorURI'], + ); + } + if ( is_multisite() ) { + foreach ( get_option( 'active_sitewide_plugins', array() ) as $plugin_path ) { + $plugin_info = get_plugin_data( WP_PLUGIN_DIR . '/' . $plugin_path ); + $slug = str_replace( '/' . basename( $plugin_path ), '', $plugin_path ); + $plugins[ $slug ] = array( + 'version' => $plugin_info['Version'], + 'name' => $plugin_info['Name'], + 'plugin_uri' => $plugin_info['PluginURI'], + 'author' => $plugin_info['AuthorName'], + 'author_uri' => $plugin_info['AuthorURI'], + ); + } + } + + + $version = explode( '.', PHP_VERSION ); + $version = array( + 'major' => $version[0], + 'minor' => $version[0] . '.' . $version[1], + 'release' => PHP_VERSION + ); + + $user_query = new WP_User_Query( array( 'blog_id' => $blog_id, 'count_total' => true, ) ); + $comments_query = new WP_Comment_Query(); + + $data = array( + '_id' => $hash, + 'localhost' => ( $_SERVER['REMOTE_ADDR'] === '127.0.0.1' ) ? 1 : 0, + 'php' => $version, + 'site' => array( + 'hash' => $hash, + 'version' => get_bloginfo( 'version' ), + 'multisite' => is_multisite(), + 'users' => $user_query->get_total(), + 'lang' => get_locale(), + 'wp_debug' => ( defined( 'WP_DEBUG' ) ? WP_DEBUG ? true : false : false ), + 'memory' => WP_MEMORY_LIMIT, + ), + 'pts' => $pts, + 'comments' => array( + 'total' => $comments_count->total_comments, + 'approved' => $comments_count->approved, + 'spam' => $comments_count->spam, + 'pings' => $comments_query->query( array( 'count' => true, 'type' => 'pingback' ) ), + ), + 'options' => apply_filters( 'redux/tracking/options', array() ), + 'theme' => $theme, + 'redux' => array( + 'mode' => ReduxFramework::$_is_plugin ? 'plugin' : 'theme', + 'version' => ReduxFramework::$_version, + 'demo_mode' => get_option( 'ReduxFrameworkPlugin' ), + ), + 'developer' => apply_filters( 'redux/tracking/developer', array() ), + 'plugins' => $plugins, + ); + + $parts = explode( ' ', $_SERVER['SERVER_SOFTWARE'] ); + $software = array(); + foreach ( $parts as $part ) { + if ( $part[0] == "(" ) { + continue; + } + if ( strpos( $part, '/' ) !== false ) { + $chunk = explode( "/", $part ); + $software[ strtolower( $chunk[0] ) ] = $chunk[1]; + } + } + $software['full'] = $_SERVER['SERVER_SOFTWARE']; + $data['environment'] = $software; + $data['environment']['mysql'] = $wpdb->db_version(); +// if ( function_exists( 'mysqli_get_server_info' ) ) { +// $link = mysqli_connect() or die( "Error " . mysqli_error( $link ) ); +// $data['environment']['mysql'] = mysqli_get_server_info( $link ); +// } else if ( class_exists( 'PDO' ) && method_exists( 'PDO', 'getAttribute' ) ) { +// $data['environment']['mysql'] = PDO::getAttribute( PDO::ATTR_SERVER_VERSION ); +// } else { +// $data['environment']['mysql'] = mysql_get_server_info(); +// } + + if ( empty( $data['developer'] ) ) { + unset( $data['developer'] ); + } + + return $data; + } + + public static function trackingObject() { + + $data = wp_remote_post( + 'http://verify.redux.io', + array( + 'body' => array( + 'hash' => $_GET['action'], + 'site' => esc_url( home_url( '/' ) ), + ) + ) + ); + + $data['body'] = urldecode( $data['body'] ); + + if ( ! isset( $_GET['code'] ) || $data['body'] != $_GET['code'] ) { + die(); + } + + return Redux_Helpers::getTrackingObject(); + } + + public static function isParentTheme( $file ) { + $file = self::cleanFilePath( $file ); + $dir = self::cleanFilePath( get_template_directory() ); + + $file = str_replace( '//', '/', $file ); + $dir = str_replace( '//', '/', $dir ); + + if ( strpos( $file, $dir ) !== false ) { + return true; + } + + return false; + } + + public static function isChildTheme( $file ) { + $file = self::cleanFilePath( $file ); + $dir = self::cleanFilePath( get_stylesheet_directory() ); + + $file = str_replace( '//', '/', $file ); + $dir = str_replace( '//', '/', $dir ); + + if ( strpos( $file, $dir ) !== false ) { + return true; + } + + return false; + } + + private static function reduxAsPlugin() { + return ReduxFramework::$_as_plugin; + } + + public static function isTheme( $file ) { + + if ( true == self::isChildTheme( $file ) || true == self::isParentTheme( $file ) ) { + return true; + } + + return false; + } + + public static function array_in_array( $needle, $haystack ) { + //Make sure $needle is an array for foreach + if ( ! is_array( $needle ) ) { + $needle = array( $needle ); + } + //For each value in $needle, return TRUE if in $haystack + foreach ( $needle as $pin ) //echo 'needle' . $pin; + { + if ( in_array( $pin, $haystack ) ) { + return true; + } + } + + //Return FALSE if none of the values from $needle are found in $haystack + return false; + } + + public static function recursive_array_search( $needle, $haystack ) { + foreach ( $haystack as $key => $value ) { + if ( $needle === $value || ( is_array( $value ) && self::recursive_array_search( + $needle, $value + ) !== false ) ) { + return true; + } + } + + return false; + } + + /** + * Take a path and return it clean + * + * @since 3.1.7 + * + * @param string $path + */ + public static function cleanFilePath( $path ) { + $path = str_replace( '', '', str_replace( array( "\\", "\\\\" ), '/', $path ) ); + + if ( $path[ strlen( $path ) - 1 ] === '/' ) { + $path = rtrim( $path, '/' ); + } + + return $path; + } + + /** + * Take a path and delete it + * + * @since 3.3.3 + * + * @param string $path + */ + public static function rmdir( $dir ) { + if ( is_dir( $dir ) ) { + $objects = scandir( $dir ); + foreach ( $objects as $object ) { + if ( $object != "." && $object != ".." ) { + if ( filetype( $dir . "/" . $object ) == "dir" ) { + rrmdir( $dir . "/" . $object ); + } else { + unlink( $dir . "/" . $object ); + } + } + } + reset( $objects ); + rmdir( $dir ); + } + } + + /** + * Field Render Function. + * Takes the color hex value and converts to a rgba. + * + * @since ReduxFramework 3.0.4 + */ + public static function hex2rgba( $hex, $alpha = '' ) { + $hex = str_replace( "#", "", $hex ); + if ( strlen( $hex ) == 3 ) { + $r = hexdec( substr( $hex, 0, 1 ) . substr( $hex, 0, 1 ) ); + $g = hexdec( substr( $hex, 1, 1 ) . substr( $hex, 1, 1 ) ); + $b = hexdec( substr( $hex, 2, 1 ) . substr( $hex, 2, 1 ) ); + } else { + $r = hexdec( substr( $hex, 0, 2 ) ); + $g = hexdec( substr( $hex, 2, 2 ) ); + $b = hexdec( substr( $hex, 4, 2 ) ); + } + $rgb = $r . ',' . $g . ',' . $b; + + if ( '' == $alpha ) { + return $rgb; + } else { + $alpha = floatval( $alpha ); + + return 'rgba(' . $rgb . ',' . $alpha . ')'; + } + } + + public static function makeBoolStr( $var ) { + if ( $var === false || $var === 'false' || $var === 0 || $var === '0' || $var === '' || empty( $var ) ) { + return 'false'; + } elseif ( $var === true || $var === 'true' || $var === 1 || $var === '1' ) { + return 'true'; + } else { + return $var; + } + } + + public static function localize( $localize ) { + $redux = ReduxFrameworkInstances::get_instance( $localize['args']['opt_name'] ); + $nonce = wp_create_nonce( 'redux-ads-nonce' ); + $base = admin_url( 'admin-ajax.php' ) . '?action=redux_p&nonce=' . $nonce . '&url='; + $localize['rAds'] = Redux_Helpers::rURL_fix( $base, $redux->args['opt_name'] ); + + return $localize; + } + + public static function compileSystemStatus( $json_output = false, $remote_checks = false ) { + global $wpdb; + + $sysinfo = array(); + + $sysinfo['home_url'] = home_url(); + $sysinfo['site_url'] = site_url(); + $sysinfo['redux_ver'] = esc_html( ReduxFramework::$_version ); + $sysinfo['redux_data_dir'] = ReduxFramework::$_upload_dir; + $f = 'fo' . 'pen'; + + $res = true; + if ( $f( ReduxFramework::$_upload_dir . 'test-log.log', 'a' ) === false ) { + $res = false; + } + + // Only is a file-write check + $sysinfo['redux_data_writeable'] = $res; + $sysinfo['wp_content_url'] = WP_CONTENT_URL; + $sysinfo['wp_ver'] = get_bloginfo( 'version' ); + $sysinfo['wp_multisite'] = is_multisite(); + $sysinfo['permalink_structure'] = get_option( 'permalink_structure' ) ? get_option( + 'permalink_structure' + ) : 'Default'; + $sysinfo['front_page_display'] = get_option( 'show_on_front' ); + if ( $sysinfo['front_page_display'] == 'page' ) { + $front_page_id = get_option( 'page_on_front' ); + $blog_page_id = get_option( 'page_for_posts' ); + + $sysinfo['front_page'] = $front_page_id != 0 ? get_the_title( + $front_page_id + ) . ' (#' . $front_page_id . ')' : 'Unset'; + $sysinfo['posts_page'] = $blog_page_id != 0 ? get_the_title( + $blog_page_id + ) . ' (#' . $blog_page_id . ')' : 'Unset'; + } + + $sysinfo['wp_mem_limit']['raw'] = self::let_to_num( WP_MEMORY_LIMIT ); + $sysinfo['wp_mem_limit']['size'] = size_format( $sysinfo['wp_mem_limit']['raw'] ); + + $sysinfo['db_table_prefix'] = 'Length: ' . strlen( $wpdb->prefix ) . ' - Status: ' . ( strlen( + $wpdb->prefix + ) > 16 ? 'ERROR: Too long' : 'Acceptable' ); + + $sysinfo['wp_debug'] = 'false'; + if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) { + $sysinfo['wp_debug'] = 'true'; + } + + $sysinfo['wp_lang'] = get_locale(); + + if ( ! class_exists( 'Browser' ) ) { + require_once ReduxFramework::$_dir . 'inc/browser.php'; + } + + $browser = new Browser(); + + $sysinfo['browser'] = array( + 'agent' => $browser->getUserAgent(), + 'browser' => $browser->getBrowser(), + 'version' => $browser->getVersion(), + 'platform' => $browser->getPlatform(), + //'mobile' => $browser->isMobile() ? 'true' : 'false', + ); + + $sysinfo['server_info'] = esc_html( $_SERVER['SERVER_SOFTWARE'] ); + $sysinfo['localhost'] = self::makeBoolStr( self::isLocalHost() ); + $sysinfo['php_ver'] = function_exists( 'phpversion' ) ? esc_html( + phpversion() + ) : 'phpversion() function does not exist.'; + $sysinfo['abspath'] = ABSPATH; + + if ( function_exists( 'ini_get' ) ) { + $sysinfo['php_mem_limit'] = size_format( self::let_to_num( ini_get( 'memory_limit' ) ) ); + $sysinfo['php_post_max_size'] = size_format( self::let_to_num( ini_get( 'post_max_size' ) ) ); + $sysinfo['php_time_limit'] = ini_get( 'max_execution_time' ); + $sysinfo['php_max_input_var'] = ini_get( 'max_input_vars' ); + $sysinfo['php_display_errors'] = self::makeBoolStr( ini_get( 'display_errors' ) ); + } + + $sysinfo['suhosin_installed'] = extension_loaded( 'suhosin' ); + $sysinfo['mysql_ver'] = $wpdb->db_version(); + $sysinfo['max_upload_size'] = size_format( wp_max_upload_size() ); + + $sysinfo['def_tz_is_utc'] = 'true'; + if ( date_default_timezone_get() !== 'UTC' ) { + $sysinfo['def_tz_is_utc'] = 'false'; + } + + $sysinfo['fsockopen_curl'] = 'false'; + if ( function_exists( 'fsockopen' ) || function_exists( 'curl_init' ) ) { + $sysinfo['fsockopen_curl'] = 'true'; + } + + //$sysinfo['soap_client'] = 'false'; + //if ( class_exists( 'SoapClient' ) ) { + // $sysinfo['soap_client'] = 'true'; + //} + // + //$sysinfo['dom_document'] = 'false'; + //if ( class_exists( 'DOMDocument' ) ) { + // $sysinfo['dom_document'] = 'true'; + //} + + //$sysinfo['gzip'] = 'false'; + //if ( is_callable( 'gzopen' ) ) { + // $sysinfo['gzip'] = 'true'; + //} + + if ( $remote_checks == true ) { + $response = wp_remote_post( + 'https://www.paypal.com/cgi-bin/webscr', array( + 'sslverify' => false, + 'timeout' => 60, + 'user-agent' => 'ReduxFramework/' . ReduxFramework::$_version, + 'body' => array( + 'cmd' => '_notify-validate' + ) + ) + ); + + if ( ! is_wp_error( + $response + ) && $response['response']['code'] >= 200 && $response['response']['code'] < 300 ) { + $sysinfo['wp_remote_post'] = 'true'; + $sysinfo['wp_remote_post_error'] = ''; + } else { + $sysinfo['wp_remote_post'] = 'false'; + $sysinfo['wp_remote_post_error'] = $response->get_error_message(); + } + + $response = @wp_remote_get( + 'http://reduxframework.com/wp-admin/admin-ajax.php?action=get_redux_extensions' + ); + + if ( ! is_wp_error( + $response + ) && $response['response']['code'] >= 200 && $response['response']['code'] < 300 ) { + $sysinfo['wp_remote_get'] = 'true'; + $sysinfo['wp_remote_get_error'] = ''; + } elseif ( is_wp_error( $response ) ) { + $sysinfo['wp_remote_get'] = 'false'; + $sysinfo['wp_remote_get_error'] = $response->get_error_message(); + } else { + $sysinfo['wp_remote_get'] = 'false'; + $sysinfo['wp_remote_get_error'] = $response['response']['code'] . ( isset( $response['response']['message'] ) ? $response['response']['message'] : '' ); + } + } + + $active_plugins = (array) get_option( 'active_plugins', array() ); + + if ( is_multisite() ) { + $active_plugins = array_merge( $active_plugins, get_site_option( 'active_sitewide_plugins', array() ) ); + } + + $sysinfo['plugins'] = array(); + + foreach ( $active_plugins as $plugin ) { + if ( file_exists( WP_PLUGIN_DIR . '/' . $plugin ) ) { + $plugin_data = @get_plugin_data( WP_PLUGIN_DIR . '/' . $plugin ); + $plugin_name = esc_html( $plugin_data['Name'] ); + + $sysinfo['plugins'][ $plugin_name ] = $plugin_data; + } + } + + $redux = ReduxFrameworkInstances::get_all_instances(); + + $sysinfo['redux_instances'] = array(); + + if ( ! empty( $redux ) && is_array( $redux ) ) { + foreach ( $redux as $inst => $data ) { + Redux::init( $inst ); + + $sysinfo['redux_instances'][ $inst ]['args'] = $data->args; + $sysinfo['redux_instances'][ $inst ]['sections'] = $data->sections; + foreach ( $sysinfo['redux_instances'][ $inst ]['sections'] as $sKey => $section ) { + if ( isset( $section['fields'] ) && is_array( $section['fields'] ) ) { + foreach ( $section['fields'] as $fKey => $field ) { + if ( isset( $field['validate_callback'] ) ) { + unset( $sysinfo['redux_instances'][ $inst ]['sections'][ $sKey ]['fields'][ $fKey ]['validate_callback'] ); + } + if ( $field['type'] == "js_button" ) { + if ( isset( $field['script'] ) && isset( $field['script']['ver'] ) ) { + unset( $sysinfo['redux_instances'][ $inst ]['sections'][ $sKey ]['fields'][ $fKey ]['script']['ver'] ); + } + } + + } + } + } + + $sysinfo['redux_instances'][ $inst ]['extensions'] = Redux::getExtensions( $inst ); + + if ( isset( $data->extensions['metaboxes'] ) ) { + $data->extensions['metaboxes']->init(); + $sysinfo['redux_instances'][ $inst ]['metaboxes'] = $data->extensions['metaboxes']->boxes; + } + + if ( isset( $data->args['templates_path'] ) && $data->args['templates_path'] != '' ) { + $sysinfo['redux_instances'][ $inst ]['templates'] = self::getReduxTemplates( + $data->args['templates_path'] + ); + } + } + } + + $active_theme = wp_get_theme(); + + $sysinfo['theme']['name'] = $active_theme->Name; + $sysinfo['theme']['version'] = $active_theme->Version; + $sysinfo['theme']['author_uri'] = $active_theme->{'Author URI'}; + $sysinfo['theme']['is_child'] = self::makeBoolStr( is_child_theme() ); + + if ( is_child_theme() ) { + $parent_theme = wp_get_theme( $active_theme->Template ); + + $sysinfo['theme']['parent_name'] = $parent_theme->Name; + $sysinfo['theme']['parent_version'] = $parent_theme->Version; + $sysinfo['theme']['parent_author_uri'] = $parent_theme->{'Author URI'}; + } + + //if ( $json_output ) { + // $sysinfo = json_encode( $sysinfo ); + //} + + //print_r($sysinfo); + //exit(); + + return $sysinfo; + } + + private static function getReduxTemplates( $custom_template_path ) { + $template_paths = array( 'ReduxFramework' => ReduxFramework::$_dir . 'templates/panel' ); + $scanned_files = array(); + $found_files = array(); + $outdated_templates = false; + + foreach ( $template_paths as $plugin_name => $template_path ) { + $scanned_files[ $plugin_name ] = self::scan_template_files( $template_path ); + } + + foreach ( $scanned_files as $plugin_name => $files ) { + foreach ( $files as $file ) { + if ( file_exists( $custom_template_path . '/' . $file ) ) { + $theme_file = $custom_template_path . '/' . $file; + } else { + $theme_file = false; + } + + if ( $theme_file ) { + $core_version = self::get_template_version( + ReduxFramework::$_dir . 'templates/panel/' . $file + ); + $theme_version = self::get_template_version( $theme_file ); + + if ( $core_version && ( empty( $theme_version ) || version_compare( + $theme_version, $core_version, '<' + ) ) ) { + if ( ! $outdated_templates ) { + $outdated_templates = true; + } + + $found_files[ $plugin_name ][] = sprintf( + __( + '%s version %s is out of date. The core version is %s', + 'redux-framework' + ), str_replace( WP_CONTENT_DIR . '/themes/', '', $theme_file ), + $theme_version ? $theme_version : '-', $core_version + ); + } else { + $found_files[ $plugin_name ][] = sprintf( + '%s', str_replace( + WP_CONTENT_DIR . '/themes/', '', $theme_file + ) + ); + } + } + } + } + + return $found_files; + } + + public static function rURL_fix( $base, $opt_name ) { + $url = $base . urlencode( 'http://look.redux.io/api/index.php?js&g&1&v=2' ) . '&proxy=' . urlencode( + $base + ) . ''; + + return Redux_Functions::tru( $url, $opt_name ); + } + + private static function scan_template_files( $template_path ) { + $files = scandir( $template_path ); + $result = array(); + + if ( $files ) { + foreach ( $files as $key => $value ) { + if ( ! in_array( $value, array( ".", ".." ) ) ) { + if ( is_dir( $template_path . DIRECTORY_SEPARATOR . $value ) ) { + $sub_files = redux_scan_template_files( $template_path . DIRECTORY_SEPARATOR . $value ); + foreach ( $sub_files as $sub_file ) { + $result[] = $value . DIRECTORY_SEPARATOR . $sub_file; + } + } else { + $result[] = $value; + } + } + } + } + + return $result; + } + + public static function get_template_version( $file ) { + $filesystem = Redux_Filesystem::get_instance(); + + // Avoid notices if file does not exist + if ( ! file_exists( $file ) ) { + return ''; + } + // + //// We don't need to write to the file, so just open for reading. + //$fp = fopen( $file, 'r' ); + // + //// Pull only the first 8kiB of the file in. + //$file_data = fread( $fp, 8192 ); + // + //// PHP will close file handle, but we are good citizens. + //fclose( $fp ); + // + // Make sure we catch CR-only line endings. + + $data = get_file_data( $file, array( 'version' ), 'plugin' ); + if ( ! empty( $data[0] ) ) { + return $data[0]; + } else { + $file_data = $filesystem->execute( 'get_contents', $file ); + + $file_data = str_replace( "\r", "\n", $file_data ); + $version = ''; + + if ( preg_match( + '/^[ \t\/*#@]*' . preg_quote( '@version', '/' ) . '(.*)$/mi', $file_data, $match + ) && $match[1] ) { + $version = _cleanup_header_comment( $match[1] ); + } + + return $version; + } + } + + private static function let_to_num( $size ) { + $l = substr( $size, - 1 ); + $ret = substr( $size, 0, - 1 ); + + switch ( strtoupper( $l ) ) { + case 'P': + $ret *= 1024; + case 'T': + $ret *= 1024; + case 'G': + $ret *= 1024; + case 'M': + $ret *= 1024; + case 'K': + $ret *= 1024; + } + + return $ret; + } + + public static function get_extension_dir( $dir ) { + return trailingslashit( wp_normalize_path( dirname( $dir ) ) ); + } + + public static function get_extension_url( $dir ) { + $ext_dir = Redux_Helpers::get_extension_dir( $dir ); + $ext_url = str_replace( wp_normalize_path( WP_CONTENT_DIR ), WP_CONTENT_URL, $ext_dir ); + + return $ext_url; + } + } +} diff --git a/redux/ReduxCore/inc/class.redux_instances.php b/redux/ReduxCore/inc/class.redux_instances.php new file mode 100644 index 0000000..4658743 --- /dev/null +++ b/redux/ReduxCore/inc/class.redux_instances.php @@ -0,0 +1,177 @@ +options = get_option( 'redux-framework-tracking' ); + $this->options['dev_mode'] = false; + + if ( ! isset( $this->options['hash'] ) || ! $this->options['hash'] || empty( $this->options['hash'] ) ) { + $this->options['hash'] = md5( network_site_url() . '-' . $_SERVER['REMOTE_ADDR'] ); + update_option( 'redux-framework-tracking', $this->options ); + } + + if ( isset( $_GET['redux_framework_disable_tracking'] ) && ! empty( $_GET['redux_framework_disable_tracking'] ) ) { + $this->options['allow_tracking'] = false; + update_option( 'redux-framework-tracking', $this->options ); + } + + if ( isset( $_GET['redux_framework_enable_tracking'] ) && ! empty( $_GET['redux_framework_enable_tracking'] ) ) { + $this->options['allow_tracking'] = true; + update_option( 'redux-framework-tracking', $this->options ); + } + + header( "Expires: Mon, 26 Jul 1997 05:00:00 GMT" ); + header( "Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" ); + header( 'Expires: Sat, 26 Jul 1997 05:00:00 GMT' ); + header( 'Cache-Control: no-store, no-cache, must-revalidate' ); + header( 'Cache-Control: post-check=0, pre-check=0', false ); + header( 'Pragma: no-cache' ); + $instances = ReduxFrameworkInstances::get_all_instances(); + + $array = array(); + + if ( isset( $_REQUEST['i'] ) && ! empty( $_REQUEST['i'] ) ) { + if ( is_array( $instances ) && ! empty( $instances ) ) { + foreach ( $instances as $opt_name => $data ) { + if ( md5( $opt_name . '-debug' ) == $_REQUEST['i'] ) { + $array = $instances[ $opt_name ]; + } + if ($data->args['dev_mode']) { + $this->options['dev_mode'] = $data->args['dev_mode']; + } + } + } + if ( isset( $array ) ) { + if ( isset( $array->extensions ) && is_array( $array->extensions ) && ! empty( $array->extensions ) ) { + foreach ( $array->extensions as $key => $extension ) { + if ( isset( $extension->version ) ) { + $array->extensions[ $key ] = $extension->version; + } else { + $array->extensions[ $key ] = true; + } + } + } + + if ( isset( $array->import_export ) ) { + unset( $array->import_export ); + } + + if ( isset( $array->debug ) ) { + unset( $array->debug ); + } + } else { + die(); + } + + } else { + $array = Redux_Helpers::trackingObject(); + if ( is_array( $instances ) && ! empty( $instances ) ) { + $array['instances'] = array(); + foreach ( $instances as $opt_name => $data ) { + $array['instances'][] = $opt_name; + } + } + $array['key'] = md5( Redux_Helpers::get_auth_key_secret_key() ); + } + + echo @json_encode( $array, true ); + die(); + } + + function capture( $ReduxFramework ) { + $this->store( $ReduxFramework ); + } + + private function store( $ReduxFramework ) { + if ( $ReduxFramework instanceof ReduxFramework ) { + $key = $ReduxFramework->args['opt_name']; + self::$instances[ $key ] = $ReduxFramework; + } + } + } diff --git a/redux/ReduxCore/inc/class.thirdparty.fixes.php b/redux/ReduxCore/inc/class.thirdparty.fixes.php new file mode 100644 index 0000000..ae2d964 --- /dev/null +++ b/redux/ReduxCore/inc/class.thirdparty.fixes.php @@ -0,0 +1,16 @@ + {foo: [null, null, "v"]}, instead of {foo: ["2": "v"]} + }, + + // Merge option defaults into the options + setupOpts: function( options ) { + var opt, validOpts, defaultOptions, optWithDefault, parseAll, f; + f = $.serializeJSON; + + if ( options === null || options === undefined ) options = {}; // options ||= {} + defaultOptions = f.defaultOptions || {}; // defaultOptions + + // Make sure that the user didn't misspell an option + validOpts = ['checkboxUncheckedValue', 'parseNumbers', 'parseBooleans', 'parseNulls', 'parseAll', 'parseWithFunction', 'customTypes', 'defaultTypes', 'useIntKeysAsArrayIndex']; // re-define because the user may override the defaultOptions + for ( opt in options ) { + if ( validOpts.indexOf( opt ) === -1 ) { + throw new Error( + "serializeJSON ERROR: invalid option '" + opt + "'. Please use one of " + validOpts.join( + ', ' + ) + ); + } + } + + // Helper to get the default value for this option if none is specified by the user + optWithDefault = function( key ) { + return (options[key] !== false) && (options[key] !== '') && (options[key] || defaultOptions[key]); + }; + + // Return computed options (opts to be used in the rest of the script) + parseAll = optWithDefault( 'parseAll' ); + return { + checkboxUncheckedValue: optWithDefault( 'checkboxUncheckedValue' ), + parseNumbers: parseAll || optWithDefault( 'parseNumbers' ), + parseBooleans: parseAll || optWithDefault( 'parseBooleans' ), + parseNulls: parseAll || optWithDefault( 'parseNulls' ), + parseWithFunction: optWithDefault( 'parseWithFunction' ), + typeFunctions: $.extend( {}, optWithDefault( 'defaultTypes' ), optWithDefault( 'customTypes' ) ), + useIntKeysAsArrayIndex: optWithDefault( 'useIntKeysAsArrayIndex' ), + }; + }, + + // Given a string, apply the type or the relevant "parse" options, to return the parsed value + parseValue: function( str, type, opts ) { + var typeFunction, f; + f = $.serializeJSON; + + // Parse with a type if available + typeFunction = opts.typeFunctions && opts.typeFunctions[type]; + if ( typeFunction ) return typeFunction( str ); // use specific type + + // Otherwise, check if there is any auto-parse option enabled and use it. + if ( opts.parseNumbers && f.isNumeric( str ) ) return Number( str ); // auto: number + if ( opts.parseBooleans && (str === "true" || str === "false") ) return str === "true"; // auto: boolean + if ( opts.parseNulls && str == "null" ) return null; // auto: null + + // If none applies, just return the str + return str; + }, + + isObject: function( obj ) { + return obj === Object( obj ); + }, // is this variable an object? + isUndefined: function( obj ) { + return obj === void 0; + }, // safe check for undefined values + isValidArrayIndex: function( val ) { + return /^[0-9]+$/.test( String( val ) ); + }, // 1,2,3,4 ... are valid array indexes + isNumeric: function( obj ) { + return obj - parseFloat( obj ) >= 0; + }, // taken from jQuery.isNumeric implementation. Not using jQuery.isNumeric to support old jQuery and Zepto versions + + optionKeys: function( obj ) { + if ( Object.keys ) { + return Object.keys( obj ); + } else { + var keys = []; + for ( var key in obj ) { + keys.push( key ); + } + + return keys; + } + }, // polyfill Object.keys to get option keys in IE<9 + + // Split the input name in programatically readable keys. + // The last element is always the type (default "_"). + // Examples: + // "foo" => ['foo', '_'] + // "foo:string" => ['foo', 'string'] + // "foo:boolean" => ['foo', 'boolean'] + // "[foo]" => ['foo', '_'] + // "foo[inn][bar]" => ['foo', 'inn', 'bar', '_'] + // "foo[inn[bar]]" => ['foo', 'inn', 'bar', '_'] + // "foo[inn][arr][0]" => ['foo', 'inn', 'arr', '0', '_'] + // "arr[][val]" => ['arr', '', 'val', '_'] + // "arr[][val]:null" => ['arr', '', 'val', 'null'] + splitInputNameIntoKeysArray: function( name, opts ) { + var keys, nameWithoutType, type, _ref, f; + f = $.serializeJSON; + _ref = f.extractTypeFromInputName( name, opts ), nameWithoutType = _ref[0], type = _ref[1]; + keys = nameWithoutType.split( '[' ); // split string into array + keys = $.map( + keys, function( key ) { + return key.replace( /]/g, '' ); + } + ); // remove closing brackets + if ( keys[0] === '' ) { + keys.shift(); + } // ensure no opening bracket ("[foo][inn]" should be same as "foo[inn]") + keys.push( type ); // add type at the end + return keys; + }, + + // Returns [name-without-type, type] from name. + // "foo" => ["foo", '_'] + // "foo:boolean" => ["foo", 'boolean'] + // "foo[bar]:null" => ["foo[bar]", 'null'] + extractTypeFromInputName: function( name, opts ) { + var match, validTypes, f; + if ( match = name.match( /(.*):([^:]+)$/ ) ) { + f = $.serializeJSON; + + validTypes = f.optionKeys( opts ? opts.typeFunctions : f.defaultOptions.defaultTypes ); + validTypes.push( 'skip' ); // skip is a special type that makes it easy to remove + if ( validTypes.indexOf( match[2] ) !== -1 ) { + return [match[1], match[2]]; + } else { + throw new Error( + "serializeJSON ERROR: Invalid type " + match[2] + " found in input name '" + name + "', please use one of " + validTypes.join( + ', ' + ) + ) + } + } else { + return [name, '_']; // no defined type, then use parse options + } + }, + + // Set a value in an object or array, using multiple keys to set in a nested object or array: + // + // deepSet(obj, ['foo'], v) // obj['foo'] = v + // deepSet(obj, ['foo', 'inn'], v) // obj['foo']['inn'] = v // Create the inner obj['foo'] object, if needed + // deepSet(obj, ['foo', 'inn', '123'], v) // obj['foo']['arr']['123'] = v // + // + // deepSet(obj, ['0'], v) // obj['0'] = v + // deepSet(arr, ['0'], v, {useIntKeysAsArrayIndex: true}) // arr[0] = v + // deepSet(arr, [''], v) // arr.push(v) + // deepSet(obj, ['arr', ''], v) // obj['arr'].push(v) + // + // arr = []; + // deepSet(arr, ['', v] // arr => [v] + // deepSet(arr, ['', 'foo'], v) // arr => [v, {foo: v}] + // deepSet(arr, ['', 'bar'], v) // arr => [v, {foo: v, bar: v}] + // deepSet(arr, ['', 'bar'], v) // arr => [v, {foo: v, bar: v}, {bar: v}] + // + deepSet: function( o, keys, value, opts ) { + var key, nextKey, tail, lastIdx, lastVal, f; + if ( opts == null ) opts = {}; + f = $.serializeJSON; + if ( f.isUndefined( o ) ) { + throw new Error( "ArgumentError: param 'o' expected to be an object or array, found undefined" ); + } + if ( !keys || keys.length === 0 ) { + throw new Error( "ArgumentError: param 'keys' expected to be an array with least one element" ); + } + + key = keys[0]; + + // Only one key, then it's not a deepSet, just assign the value. + if ( keys.length === 1 ) { + if ( key === '' ) { + o.push( value ); // '' is used to push values into the array (assume o is an array) + } else { + o[key] = value; // other keys can be used as object keys or array indexes + } + + // With more keys is a deepSet. Apply recursively. + } else { + nextKey = keys[1]; + + // '' is used to push values into the array, + // with nextKey, set the value into the same object, in object[nextKey]. + // Covers the case of ['', 'foo'] and ['', 'var'] to push the object {foo, var}, and the case of nested arrays. + if ( key === '' ) { + lastIdx = o.length - 1; // asume o is array + lastVal = o[lastIdx]; + if ( f.isObject( lastVal ) && (f.isUndefined( lastVal[nextKey] ) || keys.length > 2) ) { // if nextKey is not present in the last object element, or there are more keys to deep set + key = lastIdx; // then set the new value in the same object element + } else { + key = lastIdx + 1; // otherwise, point to set the next index in the array + } + } + + // '' is used to push values into the array "array[]" + if ( nextKey === '' ) { + if ( f.isUndefined( o[key] ) || !$.isArray( o[key] ) ) { + o[key] = []; // define (or override) as array to push values + } + } else { + if ( opts.useIntKeysAsArrayIndex && f.isValidArrayIndex( nextKey ) ) { // if 1, 2, 3 ... then use an array, where nextKey is the index + if ( f.isUndefined( o[key] ) || !$.isArray( o[key] ) ) { + o[key] = []; // define (or override) as array, to insert values using int keys as array indexes + } + } else { // for anything else, use an object, where nextKey is going to be the attribute name + if ( f.isUndefined( o[key] ) || !f.isObject( o[key] ) ) { + o[key] = {}; // define (or override) as object, to set nested properties + } + } + } + + // Recursively set the inner object + tail = keys.slice( 1 ); + f.deepSet( o[key], tail, value, opts ); + } + }, + + // Fill the formAsArray object with values for the unchecked checkbox inputs, + // using the same format as the jquery.serializeArray function. + // The value of the unchecked values is determined from the opts.checkboxUncheckedValue + // and/or the data-unchecked-value attribute of the inputs. + readCheckboxUncheckedValues: function( formAsArray, $form, opts ) { + var selector, $uncheckedCheckboxes, $el, dataUncheckedValue, f; + if ( opts == null ) opts = {}; + f = $.serializeJSON; + + selector = 'input[type=checkbox][name]:not(:checked):not([disabled])'; + $uncheckedCheckboxes = $form.find( selector ).add( $form.filter( selector ) ); + $uncheckedCheckboxes.each( + function( i, el ) { + $el = $( el ); + dataUncheckedValue = $el.attr( 'data-unchecked-value' ); + if ( dataUncheckedValue ) { // data-unchecked-value has precedence over option opts.checkboxUncheckedValue + formAsArray.push( {name: el.name, value: dataUncheckedValue} ); + } else { + if ( !f.isUndefined( opts.checkboxUncheckedValue ) ) { + formAsArray.push( {name: el.name, value: opts.checkboxUncheckedValue} ); + } + } + } + ); + } + + }; + +}( window.jQuery || window.$ )); + +(function( $ ) { //This functions first parameter is named $ + 'use strict'; + + redux.customizer = redux.customizer || {}; + + $( document ).ready( + function() { + redux.customizer.init(); + } + ); + redux.customizer.init = function() { + $( 'body' ).addClass( redux_customizer.body_class ); + $( '.accordion-section.redux-section, .accordion-section.redux-panel, .accordion-section-title' ).click( + function() { + $.redux.initFields(); + } + ); + + redux.args.disable_save_warn = true; + var reduxChange = redux_change; + redux_change = function( variable ) { + variable = $( variable ); + reduxChange.apply( this, arguments ); + redux.customizer.save( variable ) + }; + + var redux_initFields = $.redux.initFields; + $.redux.initFiles = function() { + redux_initFields(); + } + }; + + redux.customizer.save = function( $obj ) { + var $parent = $obj.hasClass( 'redux-field' ) ? $obj : $obj.parents( '.redux-field-container:first' ); + redux.customizer.inputSave( $parent ); + }; + redux.customizer.inputSave = function( $parent ) { + + if ( !$parent.hasClass( 'redux-field-container' ) ) { + $parent = $parent.parents( '[class^="redux-field-container"]' ); + } + + var $id = $parent.parent().find( '.redux-customizer-input' ).data( 'id' ); + + if ( !$id ) { + $parent = $parent.parents( '.redux-container-repeater:first' ); + var $id = $parent.parent().find( '.redux-customizer-input' ).data( 'id' ); + } + + //var $nData = $parent.serializeJSON(); + var $nData = $parent.find( ':input' ).serializeJSON(); + + $.each( + $nData, function( $k, $v ) { + $nData = $v; + } + ); + + var $key = $parent.parent().find( '.redux-customizer-input' ).data( 'key' ); + if ( $nData[$key] ) { + $nData = $nData[$key]; + } + + var $control = wp.customize.control( $id ); + + // Customizer hack since they didn't code it to save order... + if ( JSON.stringify( $control.setting._value ) !== JSON.stringify( $nData ) ) { + $control.setting._value = null; + } + $control.setting.set( $nData ); + } +})( jQuery ); \ No newline at end of file diff --git a/redux/ReduxCore/inc/extensions/customizer/extension_customizer.min.js b/redux/ReduxCore/inc/extensions/customizer/extension_customizer.min.js new file mode 100644 index 0000000..aae767b --- /dev/null +++ b/redux/ReduxCore/inc/extensions/customizer/extension_customizer.min.js @@ -0,0 +1 @@ +!function(l){"use strict";l.fn.serializeJSON=function(e){var r,n,t,i,s,u,a;return u=l.serializeJSON,a=u.setupOpts(e),n=this.serializeArray(),u.readCheckboxUncheckedValues(n,this,a),r={},l.each(n,function(e,n){t=u.splitInputNameIntoKeysArray(n.name,a),"skip"!==(i=t.pop())&&(s=u.parseValue(n.value,i,a),a.parseWithFunction&&"_"===i&&(s=a.parseWithFunction(s,n.name)),u.deepSet(r,t,s,a))}),r},l.serializeJSON={defaultOptions:{checkboxUncheckedValue:void 0,parseNumbers:!1,parseBooleans:!1,parseNulls:!1,parseAll:!1,parseWithFunction:null,customTypes:{},defaultTypes:{string:function(e){return String(e)},number:function(e){return Number(e)},boolean:function(e){return-1===["false","null","undefined","","0"].indexOf(e)},null:function(e){return-1!==["false","null","undefined","","0"].indexOf(e)?null:e},array:function(e){return JSON.parse(e)},object:function(e){return JSON.parse(e)},auto:function(e){return l.serializeJSON.parseValue(e,null,{parseNumbers:!0,parseBooleans:!0,parseNulls:!0})}},useIntKeysAsArrayIndex:!1},setupOpts:function(n){var e,r,t,i,s,u;for(e in u=l.serializeJSON,null==n&&(n={}),t=u.defaultOptions||{},r=["checkboxUncheckedValue","parseNumbers","parseBooleans","parseNulls","parseAll","parseWithFunction","customTypes","defaultTypes","useIntKeysAsArrayIndex"],n)if(-1===r.indexOf(e))throw new Error("serializeJSON ERROR: invalid option '"+e+"'. Please use one of "+r.join(", "));return s=(i=function(e){return!1!==n[e]&&""!==n[e]&&(n[e]||t[e])})("parseAll"),{checkboxUncheckedValue:i("checkboxUncheckedValue"),parseNumbers:s||i("parseNumbers"),parseBooleans:s||i("parseBooleans"),parseNulls:s||i("parseNulls"),parseWithFunction:i("parseWithFunction"),typeFunctions:l.extend({},i("defaultTypes"),i("customTypes")),useIntKeysAsArrayIndex:i("useIntKeysAsArrayIndex")}},parseValue:function(e,n,r){var t,i;return i=l.serializeJSON,(t=r.typeFunctions&&r.typeFunctions[n])?t(e):r.parseNumbers&&i.isNumeric(e)?Number(e):!r.parseBooleans||"true"!==e&&"false"!==e?r.parseNulls&&"null"==e?null:e:"true"===e},isObject:function(e){return e===Object(e)},isUndefined:function(e){return void 0===e},isValidArrayIndex:function(e){return/^[0-9]+$/.test(String(e))},isNumeric:function(e){return 0<=e-parseFloat(e)},optionKeys:function(e){if(Object.keys)return Object.keys(e);var n=[];for(var r in e)n.push(r);return n},splitInputNameIntoKeysArray:function(e,n){var r,t,i,s;return t=(s=l.serializeJSON.extractTypeFromInputName(e,n))[0],i=s[1],r=t.split("["),""===(r=l.map(r,function(e){return e.replace(/]/g,"")}))[0]&&r.shift(),r.push(i),r},extractTypeFromInputName:function(e,n){var r,t,i;if(r=e.match(/(.*):([^:]+)$/)){if((t=(i=l.serializeJSON).optionKeys(n?n.typeFunctions:i.defaultOptions.defaultTypes)).push("skip"),-1!==t.indexOf(r[2]))return[r[1],r[2]];throw new Error("serializeJSON ERROR: Invalid type "+r[2]+" found in input name '"+e+"', please use one of "+t.join(", "))}return[e,"_"]},deepSet:function(e,n,r,t){var i,s,u,a,o,c;if(null==t&&(t={}),(c=l.serializeJSON).isUndefined(e))throw new Error("ArgumentError: param 'o' expected to be an object or array, found undefined");if(!n||0===n.length)throw new Error("ArgumentError: param 'keys' expected to be an array with least one element");i=n[0],1===n.length?""===i?e.push(r):e[i]=r:(s=n[1],""===i&&(o=e[a=e.length-1],i=c.isObject(o)&&(c.isUndefined(o[s])||2 + // return; + /** + * Redux Framework is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * any later version. + * Redux Framework is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with Redux Framework. If not, see . + * + * @package ReduxFramework + * @author Dovy Paukstys (dovy) + * @version 0.1.0 + */ + + // Exit if accessed directly +if ( ! defined( 'ABSPATH' ) ) { + exit; +} + + // Don't duplicate me! +if ( ! class_exists( 'ReduxFramework_extension_customizer' ) ) { + + /** + * Main ReduxFramework customizer extension class + * + * @since 1.0.0 + */ + class ReduxFramework_extension_customizer { + + // Protected vars + protected $redux; + private $_extension_url; + private $_extension_dir; + private $parent; + private $orig_options = array(); + private static $post_values = array(); + public static $version = '2.0.0'; + private $options = array(); + + /** + * Class Constructor. Defines the args for the extions class + * + * @since 1.0.0 + * @access public + * + * @param array $sections Panel sections. + * @param array $args Class constructor arguments. + * @param array $extra_tabs Extra panel tabs. + * + * @return void + */ + public function __construct( $parent ) { + + $this->parent = $parent; + + $this->upload_dir = ReduxFramework::$_upload_dir . 'advanced-customizer/'; + + // add_action('wp_head', array( $this, '_enqueue_new' )); + if ( $parent->args['customizer'] == false ) { + return; + } + + // Override the ReduxCore class + add_filter( + "redux/extension/{$this->parent->args['opt_name']}/customizer", + array( + $this, + 'remove_core_customizer_class', + ) + ); + + global $pagenow, $wp_customize; + if ( ! isset( $wp_customize ) && $pagenow !== 'customize.php' && $pagenow !== 'admin-ajax.php' ) { + return; + } + if ( ( $pagenow !== 'customize.php' && $pagenow !== 'admin-ajax.php' && ! isset( $GLOBALS['wp_customize'] ) ) ) { + // return; + } + + if ( empty( $this->_extension_dir ) ) { + $this->_extension_dir = apply_filters( 'redux/extension/customizer/dir', trailingslashit( str_replace( '\\', '/', dirname( __FILE__ ) ) ) ); + $this->_extension_url = apply_filters( 'redux/extension/customizer/url', plugin_dir_url( __FILE__ ) ); + } + + self::get_post_values(); + + // Create defaults array + $defaults = array(); + /* + customize_controls_init + customize_controls_enqueue_scripts + customize_controls_print_styles + customize_controls_print_scripts + customize_controls_print_footer_scripts + */ + + // add_action('customize_save', ); + + if ( isset( $_POST['wp_customize'] ) && $_POST['wp_customize'] == 'on' ) { + $this->parent->args['customizer_only'] = true; + } + + if ( isset( $_POST['wp_customize'] ) && $_POST['wp_customize'] == 'on' && isset( $_POST['customized'] ) && ! empty( $_POST['customized'] ) && ! isset( $_POST['action'] ) ) { + add_action( + "redux/options/{$this->parent->args['opt_name']}/options", + array( + $this, + '_override_values', + ), + 100 + ); + } + + add_action( + 'customize_register', + array( + $this, + '_register_customizer_controls', + ) + ); // Create controls + + add_action( 'wp_head', array( $this, 'customize_preview_init' ) ); + + // add_action( 'customize_save', array( $this, 'customizer_save_before' ) ); // Before save + add_action( 'customize_save_after', array( &$this, 'customizer_save_after' ) ); // After save + + // Add global controls CSS file + add_action( 'customize_controls_print_scripts', array( $this, 'enqueue_controls_css' ) ); + + add_action( 'customize_controls_init', array( $this, 'enqueue_panel_css' ) ); + + // add_action( 'wp_enqueue_scripts', array( &$this, '_enqueue_previewer_css' ) ); // Enqueue previewer css + // add_action( 'wp_enqueue_scripts', array( &$this, '_enqueue_previewer_js' ) ); // Enqueue previewer javascript + // add_action( "wp_footer", array( $this, '_enqueue_new' ), 100 ); + // $this->_enqueue_new(); + } + + function enqueue_controls_css() { + + require_once ReduxFramework::$_dir . 'core/enqueue.php'; + $enqueue = new reduxCoreEnqueue( $this->parent ); + $enqueue->get_warnings_and_errors_array(); + $enqueue->init(); + wp_enqueue_style( 'redux-extension-advanced-customizer', $this->_extension_url . 'extension_customizer.css', '', time() ); + + wp_enqueue_script( + 'redux-extension-customizer', + $this->_extension_url . 'extension_customizer' . Redux_Functions::isMin() . '.js', + array( 'jquery', 'redux-js' ), + self::$version, + true + ); + wp_localize_script( 'redux-extension-customizer', 'redux_customizer', array( 'body_class' => sanitize_html_class( 'admin-color-' . get_user_option( 'admin_color' ), 'fresh' ) ) ); + } + + function enqueue_panel_css() { + + } + + function remove_core_customizer_class( $path ) { + return ''; + } + + function customize_preview_init() { + do_action( 'redux/customizer/live_preview' ); + } + + protected static function get_post_values() { + if ( empty( self::$post_values ) && isset( $_POST['customized'] ) && ! empty( $_POST['customized'] ) ) { + self::$post_values = json_decode( stripslashes_deep( $_POST['customized'] ), true ); + } + } + + public function _override_values( $data ) { + + self::get_post_values(); + + if ( isset( $_POST['customized'] ) && ! empty( self::$post_values ) ) { + + if ( is_array( self::$post_values ) ) { + foreach ( self::$post_values as $key => $value ) { + if ( strpos( $key, $this->parent->args['opt_name'] ) !== false ) { + + // if (is_array($value)) { + // $value = @stripslashes( $value ); + // if ( function_exists( 'get_magic_quotes_gpc' ) && get_magic_quotes_gpc() ) { + // $value = @array_map( 'stripslashes_deep', $value ); + // $value = @array_map( 'urldecode', $value ); + // } + // } else { + // $value = @urldecode($value); + // } + $key = str_replace( $this->parent->args['opt_name'] . '[', '', rtrim( $key, ']' ) ); + $data[ $key ] = $value; + $GLOBALS[ $this->parent->args['global_variable'] ][ $key ] = $value; + $this->parent->options[ $key ] = $value; + } + } + } + } + + return $data; + } + + public function _enqueue_new() { + // echo ""; + // echo ""; + // echo ""; + // echo ""; + // echo ""; + // echo ""; + // echo ""; + // echo ""; + // echo ""; + // echo ""; + // echo ""; + // echo ""; + + /* + wp_enqueue_script('redux-extension-customizer-codemirror-js', $this->_extension_url . 'new/codemirror.min.js'); + wp_enqueue_script('redux-extension-customizer-color-js', $this->_extension_url . 'new/colors-control.js'); + wp_enqueue_script('redux-extension-customizer-controls-js', $this->_extension_url . 'new/customizer-control.js'); + wp_enqueue_script('redux-extension-customizer-fonts-js', $this->_extension_url . 'new/fonts-customizer-admin.js'); + wp_enqueue_script('redux-extension-customizer-header-js', $this->_extension_url . 'new/header-control.js'); + wp_enqueue_script('redux-extension-customizer-models-js', $this->_extension_url . 'new/header-models.js'); + wp_enqueue_script('redux-extension-customizer-slimscroll-js', $this->_extension_url . 'new/jquery.slimscroll.js'); + wp_enqueue_script('redux-extension-customizer-droppable-js', $this->_extension_url . 'new/jquery.ui.droppable.min.js'); + wp_enqueue_script('redux-extension-customizer-editor-js', $this->_extension_url . 'new/media-editor.min.js'); + wp_enqueue_script('redux-extension-customizer-new-js', $this->_extension_url . 'new/new-customizer.js'); + wp_enqueue_script('redux-extension-customizer-previewing-js', $this->_extension_url . 'new/previewing.js'); + wp_enqueue_script('redux-extension-customizer-theme-js', $this->_extension_url . 'new/theme-customizer.js'); + */ + } + + public function render( $control ) { + $fieldID = str_replace( $this->parent->args['opt_name'] . '-', '', $control->redux_id ); + $field = $this->options[ $fieldID ]; + + if ( isset( $field['compiler'] ) && ! empty( $field['compiler'] ) ) { + echo ''; + } else { + echo ''; + } + echo '' . $this->parent->field_head[ $field['id'] ] . ''; + echo ''; + // $field['data-customize-setting-link'] = array( + // 'name' => $field['name'], + // 'suffix' => isset($field['name_suffix']) ? $field['name_suffix'] : '' + // ); + // + $field['name'] = $field['id']; + $this->parent->_field_input( $field ); + echo ''; + echo ''; + } + + // All sections, settings, and controls will be added here + public function _register_customizer_controls( $wp_customize ) { + + if ( ! class_exists( 'Redux_Customizer_Section' ) ) { + require_once dirname( __FILE__ ) . '/inc/customizer_section.php'; + if ( method_exists( $wp_customize, 'register_section_type' ) ) { + $wp_customize->register_section_type( 'Redux_Customizer_Section' ); + } + } + if ( ! class_exists( 'Redux_Customizer_Panel' ) ) { + require_once dirname( __FILE__ ) . '/inc/customizer_panel.php'; + if ( method_exists( $wp_customize, 'register_panel_type' ) ) { + $wp_customize->register_panel_type( 'Redux_Customizer_Panel' ); + } + } + if ( ! class_exists( 'Redux_Customizer_Control' ) ) { + require_once dirname( __FILE__ ) . '/inc/customizer_control.php'; + } + + require_once dirname( __FILE__ ) . '/inc/customizer_fields.php'; + require_once dirname( __FILE__ ) . '/inc/customizer_devs.php'; + + do_action( 'redux/extension/customizer/control/includes' ); + + // if ($this->parent->args['dev_mode']) { + // $section = new Redux_Customizer_rAds( $wp_customize, 'redux_rAds', array( + // 'priority' => 0, + // ) ); + // $wp_customize->add_section( $section, array( + // 'priority' => 0, + // ) ); + // + // $wp_customize->add_control( new Redux_Customizer_Control_rAds( $wp_customize, 'reduxAdsDisplay', array( + // 'section' => 'redux_rAds', + // 'settings' => 'redux_rAds_field', + // 'type' => 'redux-rAds', + // ) ) ); + // + // + // + // + // } + if ( $this->parent->args['dev_mode'] ) { + // $args = array( + // 'priority' => 0, + // ); + // $section = new Redux_Customizer_Section( $wp_customize, 'redux_rAds', $args ); + // $wp_customize->add_section( $section, $args ); + // $this->add_section( 'redux_rAds', array( + // 'title' => '', + // 'priority' => 1, + // 'description' => '', + // 'capability' => 'edit_theme_options', + // ), $wp_customize ); + // + // $wp_customize->add_control( new WP_Customize_Color_Control( + // $wp_customize, + // 'redux_rAds_display', + // array( + // 'section' => 'redux_rAds', + // 'settings' => 'redux_rAds_display', + // ) + // )); + // $wp_customize->add_control( new Redux_Customizer_Control_rAds( $wp_customize, 'reduxAdsDisplay', array( + // 'section' => 'redux_rAds', + // 'settings' => 'redux_rAds_field', + // 'type' => 'redux-rAds', + // ) ) ); + // start copyright settings + + // $section = new Redux_Customizer_section_rAds( $wp_customize, 'redux_rAds', array( + // 'priority' => -999, + // ) ); + // $wp_customize->add_section( $section, array( + // 'priority' => -999, + // ) ); + // $wp_customize->add_setting( + // 'redux_rAds_empty' + // ); + // $wp_customize->add_control( + // new Redux_Customizer_Control_rAds( + // $wp_customize, + // 'redux_rAds_empty', + // array( + // 'section' => 'redux_rAds', + // 'settings' => 'redux_rAds_empty' + // ) + // ) + // ); + } + + $order = array( + 'heading' => - 500, + 'option' => - 500, + ); + $defaults = array( + 'default-color' => '', + 'default-image' => '', + 'wp-head-callback' => '', + 'admin-head-callback' => '', + 'admin-preview-callback' => '', + ); + $panel = ''; + + $this->parent->args['options_api'] = false; + $this->parent->_register_settings(); + + foreach ( $this->parent->sections as $key => $section ) { + + // Not a type that should go on the customizer + if ( isset( $section['type'] ) && ( $section['type'] == 'divide' ) ) { + continue; + } + + if ( isset( $section['id'] ) && $section['id'] == 'import/export' ) { + continue; + } + + // If section customizer is set to false + if ( isset( $section['customizer'] ) && $section['customizer'] === false ) { + continue; + } + + $section['permissions'] = isset( $section['permissions'] ) ? $section['permissions'] : 'edit_theme_options'; + + // No errors please + if ( ! isset( $section['desc'] ) ) { + $section['desc'] = ''; + } + + // Fill the description if there is a subtitle + if ( empty( $section['desc'] ) && ! empty( $section['subtitle'] ) ) { + $section['desc'] = $section['subtitle']; + } + + // Let's make a section ID from the title + if ( empty( $section['id'] ) ) { + $section['id'] = strtolower( str_replace( ' ', '', $section['title'] ) ); + } + + // No title is present, let's show what section is missing a title + if ( ! isset( $section['title'] ) ) { + $section['title'] = ''; + } + + // Let's set a default priority + if ( empty( $section['priority'] ) ) { + $section['priority'] = $order['heading']; + $order['heading'] ++; + } + + // print_r($section); + // print_r($this->parent->sections[$key+1]); + // echo $key; + // exit(); + + if ( method_exists( $wp_customize, 'add_panel' ) && ( ! isset( $section['subsection'] ) || ( isset( $section['subsection'] ) && $section['subsection'] != true ) ) && isset( $this->parent->sections[ ( $key + 1 ) ]['subsection'] ) && $this->parent->sections[ ( $key + 1 ) ]['subsection'] ) { + + $this->add_panel( + $section['id'], + array( + 'priority' => $section['priority'], + 'capability' => $section['permissions'], + // 'theme_supports' => '', + 'title' => $section['title'], + 'section' => $section, + 'opt_name' => $this->parent->args['opt_name'], + 'description' => '', + ), + $wp_customize + ); + $panel = $section['id']; + + $this->add_section( + $section['id'], + array( + 'title' => $section['title'], + 'priority' => $section['priority'], + 'description' => $section['desc'], + 'section' => $section, + 'opt_name' => $this->parent->args['opt_name'], + 'capability' => $section['permissions'], + 'panel' => $panel, + ), + $wp_customize + ); + + } else { + if ( ! isset( $section['subsection'] ) || ( isset( $section['subsection'] ) && $section['subsection'] != true ) ) { + $panel = ''; + } + $this->add_section( + $section['id'], + array( + 'title' => $section['title'], + 'priority' => $section['priority'], + 'description' => $section['desc'], + 'opt_name' => $this->parent->args['opt_name'], + 'section' => $section, + 'capability' => $section['permissions'], + 'panel' => $panel, + ), + $wp_customize + ); + } + + if ( ! isset( $section['fields'] ) || ( isset( $section['fields'] ) && empty( $section['fields'] ) ) ) { + continue; + } + + foreach ( $section['fields'] as $skey => $option ) { + + if ( isset( $option['customizer'] ) && $option['customizer'] === false ) { + continue; + } + + if ( $this->parent->args['customizer'] === false && ( ! isset( $option['customizer'] ) || $option['customizer'] !== true ) ) { + continue; + } + + $this->options[ $option['id'] ] = $option; + add_action( + 'redux/advanced_customizer/control/render/' . $this->parent->args['opt_name'] . '-' . $option['id'], + array( + $this, + 'render', + ) + ); + + $option['permissions'] = isset( $option['permissions'] ) ? $option['permissions'] : 'edit_theme_options'; + + // + // if ( isset( $option['validate_callback'] ) && ! empty( $option['validate_callback'] ) ) { + // continue; + // } + + // Change the item priority if not set + if ( $option['type'] != 'heading' && ! isset( $option['priority'] ) ) { + $option['priority'] = $order['option']; + $order['option'] ++; + } + + if ( ! empty( $this->options_defaults[ $option['id'] ] ) ) { + $option['default'] = $this->options_defaults['option']['id']; + } + + // $option['id'] = $this->parent->args['opt_name'].'['.$option['id'].']'; + // echo $option['id']; + + if ( ! isset( $option['default'] ) ) { + $option['default'] = ''; + } + if ( ! isset( $option['title'] ) ) { + $option['title'] = ''; + } + + $option['id'] = $this->parent->args['opt_name'] . '[' . $option['id'] . ']'; + + if ( $option['type'] != 'heading' && $option['type'] != 'import_export' && ! empty( $option['type'] ) ) { + + $wp_customize->add_setting( + $option['id'], + array( + 'default' => $option['default'], + // 'type' => 'option', + // 'capabilities' => $option['permissions'], + // 'capabilities' => 'edit_theme_options', + // 'capabilities' => $this->parent->args['page_permissions'], + 'transport' => 'refresh', + 'opt_name' => $this->parent->args['opt_name'], + // 'theme_supports' => '', + // 'sanitize_callback' => '__return_false', + 'sanitize_callback' => array( $this, '_field_validation' ), + // 'sanitize_js_callback' =>array( &$parent, '_field_input' ), + ) + ); + + } + + if ( ! empty( $option['data'] ) && empty( $option['options'] ) ) { + if ( empty( $option['args'] ) ) { + $option['args'] = array(); + } + + if ( $option['data'] == 'elusive-icons' || $option['data'] == 'elusive-icon' || $option['data'] == 'elusive' ) { + $icons_file = ReduxFramework::$_dir . 'inc/fields/select/elusive-icons.php'; + $icons_file = apply_filters( 'redux-font-icons-file', $icons_file ); + + if ( file_exists( $icons_file ) ) { + require_once $icons_file; + } + } + $option['options'] = $this->parent->get_wordpress_data( $option['data'], $option['args'] ); + } + + $class_name = 'Redux_Customizer_Control_' . $option['type']; + + do_action( 'redux/extension/customizer/control_init', $option ); + + if ( ! class_exists( $class_name ) ) { + continue; + } + + $wp_customize->add_control( + new $class_name( + $wp_customize, + $option['id'], + array( + 'label' => $option['title'], + 'section' => $section['id'], + 'settings' => $option['id'], + 'type' => 'redux-' . $option['type'], + 'field' => $option, + 'ReduxFramework' => $this->parent, + 'active_callback' => ( isset( $option['required'] ) && class_exists( 'Redux_Customizer_Active_Callback' ) ) ? array( + 'Redux_Customizer_Active_Callback', + 'evaluate', + ) : '__return_true', + 'priority' => $option['priority'], + ) + ) + ); + + $section['fields'][ $skey ]['name'] = $option['id']; + if ( ! isset( $section['fields'][ $skey ]['class'] ) ) { // No errors please + $section['fields'][ $skey ]['class'] = ''; + } + + $this->controls[ $section['fields'][ $skey ]['id'] ] = $section['fields'][ $skey ]; + + add_action( + 'redux/advanced_customizer/render/' . $option['id'], + array( + $this, + 'field_render', + ), + $option['priority'] + ); + + } + } + + } + + public function add_section( $id, $args = array(), $wp_customize ) { + + if ( is_a( $id, 'WP_Customize_Section' ) ) { + $section = $id; + } else { + + $section_class = apply_filters( 'redux/customizer/section/class_name', 'Redux_Customizer_Section' ); + $section = new $section_class( $wp_customize, $id, $args ); + } + + $wp_customize->add_section( $section, $args ); + + } + + /** + * Add a customize panel. + * + * @since 4.0.0 + * @access public + * + * @param WP_Customize_Panel|string $id Customize Panel object, or Panel ID. + * @param array $args Optional. Panel arguments. Default empty array. + */ + public function add_panel( $id, $args = array(), $wp_customize ) { + if ( is_a( $id, 'WP_Customize_Panel' ) ) { + $panel = $id; + } else { + $panel_class = apply_filters( 'redux/customizer/panel/class_name', 'Redux_Customizer_Panel' ); + $panel = new $panel_class( $wp_customize, $id, $args ); + } + + $wp_customize->add_panel( $panel, $args ); + } + + public function field_render( $option ) { + echo '1'; + preg_match_all( '/\[([^\]]*)\]/', $option->id, $matches ); + $id = $matches[1][0]; + echo $option->link(); + // $link = $option->link(); + // echo $link; + + $this->parent->_field_input( $this->controls[ $id ] ); + echo '2'; + } + + public function customizer_save_before( $plugin_options ) { + $this->before_save = $this->parent->options; + // $parent->_field_input( $plugin_options ); + } + + public function customizer_save_after( $wp_customize ) { + + if ( empty( $this->parent->options ) ) { + $this->parent->get_options(); + } + if ( empty( $this->orig_options ) && ! empty( $this->parent->options ) ) { + $this->orig_options = $this->parent->options; + } + + $options = json_decode( stripslashes_deep( $_POST['customized'] ), true ); + $compiler = false; + $changed = false; + + foreach ( $options as $key => $value ) { + if ( strpos( $key, $this->parent->args['opt_name'] ) !== false ) { + $key = str_replace( $this->parent->args['opt_name'] . '[', '', rtrim( $key, ']' ) ); + + if ( ! isset( $this->orig_options[ $key ] ) || $this->orig_options[ $key ] != $value || ( isset( $this->orig_options[ $key ] ) && ! empty( $this->orig_options[ $key ] ) && empty( $value ) ) ) { + $this->parent->options[ $key ] = $value; + $changed = true; + if ( isset( $this->parent->compiler_fields[ $key ] ) ) { + $compiler = true; + } + } + } + } + + if ( $changed ) { + $this->parent->set_options( $this->parent->options ); + if ( $compiler ) { + // Have to set this to stop the output of the CSS and typography stuff. + $this->parent->no_output = true; + $this->parent->_enqueue_output(); + do_action( "redux/options/{$this->parent->args['opt_name']}/compiler", $this->parent->options, $this->parent->compilerCSS ); + do_action( "redux/options/{$this->args['opt_name']}/compiler/advanced", $this->parent ); + } + } + + } + + /** + * Enqueue CSS/JS for preview pane + * + * @since 1.0.0 + * @access public + * @global $wp_styles + * @return void + */ + public function _enqueue_previewer() { + wp_enqueue_script( + 'redux-extension-previewer-js', + $this->_extension_url . 'assets/js/preview.js' + ); + + $localize = array( + 'save_pending' => __( 'You have changes that are not saved. Would you like to save them now?', 'redux-framework' ), + 'reset_confirm' => __( 'Are you sure? Resetting will lose all custom values.', 'redux-framework' ), + 'preset_confirm' => __( 'Your current options will be replaced with the values of this preset. Would you like to proceed?', 'redux-framework' ), + 'opt_name' => $this->args['opt_name'], + // 'folds' => $this->folds, + 'options' => $this->parent->options, + 'defaults' => $this->parent->options_defaults, + ); + + wp_localize_script( + 'redux-extension-previewer-js', + 'reduxPost', + $localize + ); + } + + /** + * Enqueue CSS/JS for the customizer controls + * + * @since 1.0.0 + * @access public + * @global $wp_styles + * @return void + */ + public function _enqueue() { + global $wp_styles; + + // wp_enqueue_style( 'wp-pointer' ); + // wp_enqueue_script( 'wp-pointer' ); + // Remove when code is in place! + // wp_enqueue_script('redux-extension-customizer-js', $this->_extension_url . 'assets/js/customizer.js'); + // Get styles + // wp_enqueue_style('redux-extension-customizer-css', $this->_extension_url . 'assets/css/customizer.css'); + + $localize = array( + 'save_pending' => __( 'You have changes that are not saved. Would you like to save them now?', 'redux-framework' ), + 'reset_confirm' => __( 'Are you sure? Resetting will lose all custom values.', 'redux-framework' ), + 'preset_confirm' => __( 'Your current options will be replaced with the values of this preset. Would you like to proceed?', 'redux-framework' ), + 'opt_name' => $this->args['opt_name'], + // 'folds' => $this->folds, + 'field' => $this->parent->options, + 'defaults' => $this->parent->options_defaults, + ); + + // Values used by the javascript + wp_localize_script( + 'redux-js', + 'redux_opts', + $localize + ); + + do_action( 'redux-enqueue-' . $this->args['opt_name'] ); + + foreach ( $this->sections as $section ) { + if ( isset( $section['fields'] ) ) { + foreach ( $section['fields'] as $field ) { + if ( isset( $field['type'] ) ) { + $field_class = 'ReduxFramework_' . $field['type']; + + if ( ! class_exists( $field_class ) ) { + $class_file = apply_filters( 'redux-typeclass-load', $this->path . 'inc/fields/' . $field['type'] . '/field_' . $field['type'] . '.php', $field_class ); + if ( $class_file ) { + /** @noinspection PhpIncludeInspection */ + require_once $class_file; + } + } + + if ( class_exists( $field_class ) && method_exists( $field_class, 'enqueue' ) ) { + $enqueue = new $field_class( '', '', $this ); + $enqueue->enqueue(); + } + } + } + } + } + } + + /** + * Register Option for use + * + * @since 1.0.0 + * @access public + * @return void + */ + public function _register_setting() { + + } + + /** + * Validate the options before insertion + * + * @since 3.0.0 + * @access public + * + * @param array $plugin_options The options array + * + * @return + */ + public function _field_validation( $value ) { + // print_r( $value ); + // print_r( $_POST ); + + return $value; + + // return $this->parent->_validate_options( $plugin_options ); + } + + /** + * HTML OUTPUT. + * + * @since 1.0.0 + * @access public + * @return void + */ + public function _customizer_html_output() { + + } + } // class + function redux_customizer_custom_validation( $field ) { + return $field; + } +} // if diff --git a/redux/ReduxCore/inc/extensions/customizer/extension_customizer.scss b/redux/ReduxCore/inc/extensions/customizer/extension_customizer.scss new file mode 100644 index 0000000..1cfd9ba --- /dev/null +++ b/redux/ReduxCore/inc/extensions/customizer/extension_customizer.scss @@ -0,0 +1,119 @@ +.redux-section { + p.customize-section-description { + margin-top: 22px; + word-break: break-word; + &.legacy { + margin-top: 7px; + } + } +} + +.control-section-themes .accordion-section-title { + margin: 0; +} + +#customize-controls { + .customize-info { + margin-bottom: 0; + } + .redux-section .accordion-section-content { + background: #FCFCFC; + } +} + +.redux-section .accordion-section-title i, +.redux-field .accordion-field-title i, +.redux-panel .accordion-section-title i { + margin-right: 5px; +} + +.accordion-section.redux-main { + background: inherit; + margin-left: inherit; + border-left: inherit; + -moz-box-shadow: inherit; + -webkit-box-shadow: inherit; + padding: inherit; + box-shadow: inherit; +} + +.redux_field_th { + padding: 13px 0px 0px 0px; +} + +.redux-main { + .redux-field-container { + padding: 10px 0; + } + .select_wrapper { + float: none; + width: 100%; + display: inline-block; + } + .select2-container { + margin-right: 0 !important; + margin-bottom: 5px !important; + width: 100% !important; + } + .select_wrapper:nth-child(odd) { + margin-right: 0; + } + .redux-option-image { + max-width: 42% !important; + margin-right: 3%; + } + .customize-control { + border-bottom: 1px solid #ddd; + padding-bottom: 4px; + } + .customize-control:last-child { + border-bottom: 0; + padding-bottom: 0; + } + .upload { + width: 100% !important; + } + h3 { + margin-top: inherit; + } + .redux-container-raw { + margin-top: 22px; + word-break: break-word; + padding: 0 !important; + } + .redux-container-password input { + width: 100%; + } +} + +.select2-drop { + z-index: 999999; +} + +.rAdsContainer { + line-height: 0; + border: 0; + /*margin-top: -15px;*/ + /*margin-bottom: -15px;*/ +} + +.customize-control-redux-raw { + list-style: none; +} + +.rAds { + position: inherit !important; + right: 0 !important; + top: 0 !important; + bottom: 0 !important; + left: 0 !important; + text-align: center; + margin-bottom: 0; + line-height: 0; + -webkit-transition: left ease-in-out .18s; + transition: left ease-in-out .18s; + img { + -webkit-transition: left ease-in-out .18s; + transition: left ease-in-out .18s; + } +} \ No newline at end of file diff --git a/redux/ReduxCore/inc/extensions/customizer/inc/customizer_control.php b/redux/ReduxCore/inc/extensions/customizer/inc/customizer_control.php new file mode 100644 index 0000000..2378af7 --- /dev/null +++ b/redux/ReduxCore/inc/extensions/customizer/inc/customizer_control.php @@ -0,0 +1,50 @@ +redux_id = str_replace( 'customize-control-', '', 'customize-control-' . str_replace( '[', '-', str_replace( ']', '', $this->id ) ) ); + $class = 'customize-control redux-group-tab redux-field customize-control-' . $this->type; + $opt_name = explode( '[', $this->id ); + $opt_name = $opt_name[0]; + ?> +
  • + type != "repeater" ): ?> + link() ) ?> + value=""/> + + render_content(); ?> +
  • + redux_id, $this ); + } + + public function label() { + // The label has already been sanitized in the Fields class, no need to re-sanitize it. + echo $this->label; + } + + public function description() { + if ( ! empty( $this->description ) ) { + // The description has already been sanitized in the Fields class, no need to re-sanitize it. + echo '' . $this->description . ''; + } + } + + public function title() { + echo ''; + $this->label(); + $this->description(); + echo ''; + } + } + } diff --git a/redux/ReduxCore/inc/extensions/customizer/inc/customizer_devs.php b/redux/ReduxCore/inc/extensions/customizer/inc/customizer_devs.php new file mode 100644 index 0000000..8d76717 --- /dev/null +++ b/redux/ReduxCore/inc/extensions/customizer/inc/customizer_devs.php @@ -0,0 +1,43 @@ + +
  • + $key = $args[ $key ]; + } + } + $this->manager = $manager; + $this->id = $id; + if ( empty( $this->active_callback ) ) { + $this->active_callback = array( $this, 'active_callback' ); + } + self::$instance_count += 1; + $this->instance_number = self::$instance_count; + + $this->sections = array(); // Users cannot customize the $sections array. + + // TODO Redux addition + if ( isset( $args['section'] ) ) { + $this->section = $args['section']; + $this->description = isset( $this->section['desc'] ) ? $this->section['desc'] : ''; + $this->opt_name = isset( $args['opt_name'] ) ? $args['opt_name'] : ''; + } + // TODO END Redux Addition + } + + /** + * WP < 4.3 Render + * + * @since + * @access protected + */ + protected function render() { + global $wp_version; + $version = explode( '-', $wp_version ); + if ( version_compare( $version[0], '4.3', '<' ) ) { + $this->render_fallback(); + } + + } + + protected function render_fallback() { + $classes = 'accordion-section redux-main redux-panel control-section control-panel control-panel-' . esc_attr($this->type); + ?> +
  • +

    + title, array( + 'em' => array(), + 'i' => array(), + 'strong' => array(), + 'span' => array( + 'class' => array(), + 'style' => array(), + ), + ) ); + ?> + +

    +
      + + render_content(); ?> +
      +
    +
  • + +
  • +
    + ' . esc_html( $this->title ) . '' ); + ?> +
    + description ) ) : ?> +
    + description; ?> +
    + +
  • + +
  • + +
    + {{ data.title }}' ); + ?> + <# if ( data.description ) { #> + + <# } #> +
    + <# if ( data.description ) { #> +
    + {{{ data.description }}} +
    + <# } #> +
  • + $key = $args[ $key ]; + } + } + + $this->manager = $manager; + $this->id = $id; + if ( empty( $this->active_callback ) ) { + $this->active_callback = array( $this, 'active_callback' ); + } + self::$instance_count += 1; + $this->instance_number = self::$instance_count; + + $this->controls = array(); // Users cannot customize the $controls array. + + // TODO Redux addition + if ( isset( $args['section'] ) ) { + $this->section = $args['section']; + $this->description = isset( $this->section['desc'] ) ? $this->section['desc'] : ''; + $this->opt_name = isset( $args['opt_name'] ) ? $args['opt_name'] : ''; + } + } + + /** + * An Underscore (JS) template for rendering this section. + * Class variables for this section class are available in the `data` JS object; + * export custom variables by overriding {@see WP_Customize_Section::json()}. + * + * @see WP_Customize_Section::print_template() + * @since 4.3.0 + */ + protected function render_template() { + ?> +
  • +

    + {{ data.title }} + +

    +
      + +
    • +
      + +

      + + {{{ data.customizeAction }}} + {{ data.title }} +

      +
      + <# if ( data.description ) { #> +

      {{{ data.description }}}

      + <# } #> + opt_name ) && isset( $this->section ) ) { + do_action( "redux/page/{$this->opt_name}/section/before", $this->section ); + } + ?> +
    • +
    +
  • + type; + ?> +
  • +

    + title, array( + 'em' => array(), + 'i' => array(), + 'strong' => array(), + 'span' => array( + 'class' => array(), + 'style' => array(), + ), + ) ); + ?> + +

    +
      + opt_name ) && isset( $this->section ) ) { + do_action( "redux/page/{$this->opt_name}/section/before", $this->section ); + } + ?> + description ) ) : ?> +
    • +

      description; ?>

      +
    • + +
    +
  • + render_fallback(); + } + } + + } + + diff --git a/redux/ReduxCore/inc/extensions/import_export/extension_import_export.php b/redux/ReduxCore/inc/extensions/import_export/extension_import_export.php new file mode 100644 index 0000000..53ea6c7 --- /dev/null +++ b/redux/ReduxCore/inc/extensions/import_export/extension_import_export.php @@ -0,0 +1,210 @@ +. + * + * @package ReduxFramework + * @author Dovy Paukstys (dovy) + * @version 4.0.0 + */ + +// Exit if accessed directly + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + +// Don't duplicate me! + if ( ! class_exists( 'ReduxFramework_extension_import_export' ) ) { + + + /** + * Main ReduxFramework import_export extension class + * + * @since 3.1.6 + */ + class ReduxFramework_extension_import_export { + + // Protected vars + protected $parent; + public $extension_url; + public $extension_dir; + public static $theInstance; + public static $version = "4.0"; + public $is_field = false; + public $field_name; + + /** + * Class Constructor. Defines the args for the extions class + * + * @since 1.0.0 + * @access public + * + * @param array $sections Panel sections. + * @param array $args Class constructor arguments. + * @param array $extra_tabs Extra panel tabs. + * + * @return void + */ + public function __construct( $parent ) { + + $this->parent = $parent; + if ( empty( $this->extension_dir ) ) { + //$this->extension_dir = trailingslashit( str_replace( '\\', '/', dirname( __FILE__ ) ) ); + } + $this->field_name = 'import_export'; + + self::$theInstance = $this; + + add_action( "wp_ajax_redux_link_options-" . $this->parent->args['opt_name'], array( + $this, + "link_options" + ) ); + add_action( "wp_ajax_nopriv_redux_link_options-" . $this->parent->args['opt_name'], array( + $this, + "link_options" + ) ); + + add_action( "wp_ajax_redux_download_options-" . $this->parent->args['opt_name'], array( + $this, + "download_options" + ) ); + add_action( "wp_ajax_nopriv_redux_download_options-" . $this->parent->args['opt_name'], array( + $this, + "download_options" + ) ); + + do_action( "redux/options/{$this->parent->args['opt_name']}/import", array( $this, 'remove_cookie' ) ); + + $this->is_field = Redux_Helpers::isFieldInUse( $parent, 'import_export' ); + + if ( ! $this->is_field && $this->parent->args['show_import_export'] ) { + $this->add_section(); + } + + add_filter( 'redux/' . $this->parent->args['opt_name'] . '/field/class/' . $this->field_name, array( + &$this, + 'overload_field_path' + ) ); // Adds the local field + + add_filter( 'upload_mimes', array( + $this, + 'custom_upload_mimes' + ) ); + + } + + /** + * Adds the appropriate mime types to WordPress + * + * @param array $existing_mimes + * + * @return array + */ + function custom_upload_mimes( $existing_mimes = array() ) { + $existing_mimes['redux'] = 'application/redux'; + + return $existing_mimes; + } + + public function add_section() { + $this->parent->sections[] = array( + 'id' => 'import/export', + 'title' => __( 'Import / Export', 'redux-framework' ), + 'heading' => '', + 'icon' => 'el el-refresh', + 'customizer' => false, + 'fields' => array( + array( + 'id' => 'redux_import_export', + 'type' => 'import_export', + //'class' => 'redux-field-init redux_remove_th', + //'title' => '', + 'full_width' => true, + ) + ), + ); + } + + function link_options() { + if ( ! isset( $_GET['secret'] ) || $_GET['secret'] != md5( md5( Redux_Helpers::get_auth_key_secret_key() ) . '-' . $this->parent->args['opt_name'] ) ) { + wp_die( 'Invalid Secret for options use' ); + exit; + } + + $var = $this->parent->options; + $var['redux-backup'] = '1'; + if ( isset( $var['REDUX_imported'] ) ) { + unset( $var['REDUX_imported'] ); + } + + echo json_encode( $var ); + + die(); + } + + public function download_options() { + if ( ! isset( $_GET['secret'] ) || $_GET['secret'] != md5( md5( Redux_Helpers::get_auth_key_secret_key() ) . '-' . $this->parent->args['opt_name'] ) ) { + wp_die( 'Invalid Secret for options use' ); + exit; + } + + $this->parent->get_options(); + $backup_options = $this->parent->options; + $backup_options['redux-backup'] = '1'; + if ( isset( $backup_options['REDUX_imported'] ) ) { + unset( $backup_options['REDUX_imported'] ); + } + + // No need to escape this, as it's been properly escaped previously and through json_encode + $content = json_encode( $backup_options ); + + if ( isset( $_GET['action'] ) && $_GET['action'] == 'redux_download_options-' . $this->parent->args['opt_name'] ) { + header( 'Content-Description: File Transfer' ); + header( 'Content-type: application/txt' ); + header( 'Content-Disposition: attachment; filename="redux_options_' . $this->parent->args['opt_name'] . '_backup_' . date( 'd-m-Y' ) . '.json"' ); + header( 'Content-Transfer-Encoding: binary' ); + header( 'Expires: 0' ); + header( 'Cache-Control: must-revalidate' ); + header( 'Pragma: public' ); + + echo $content; + exit; + } else { + header( "Expires: Mon, 26 Jul 1997 05:00:00 GMT" ); + header( "Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" ); + header( 'Expires: Sat, 26 Jul 1997 05:00:00 GMT' ); + header( 'Cache-Control: no-store, no-cache, must-revalidate' ); + header( 'Cache-Control: post-check=0, pre-check=0', false ); + header( 'Pragma: no-cache' ); + + // Can't include the type. Thanks old Firefox and IE. BAH. + //header("Content-type: application/json"); + echo $content; + exit; + } + } + + // Forces the use of the embeded field path vs what the core typically would use + public function overload_field_path( $field ) { + return dirname( __FILE__ ) . '/' . $this->field_name . '/field_' . $this->field_name . '.php'; + } + + public function remove_cookie() { + // Remove the import/export tab cookie. + if ( $_COOKIE['redux_current_tab'] == 'import_export_default' ) { + setcookie( 'redux_current_tab', '', 1, '/' ); + $_COOKIE['redux_current_tab'] = 1; + } + } + + } + } diff --git a/redux/ReduxCore/inc/extensions/import_export/import_export/field_import_export.css b/redux/ReduxCore/inc/extensions/import_export/import_export/field_import_export.css new file mode 100644 index 0000000..70f310d --- /dev/null +++ b/redux/ReduxCore/inc/extensions/import_export/import_export/field_import_export.css @@ -0,0 +1 @@ +#redux-import-link-wrapper,#redux-import-code-wrapper{display:none}#redux-export-code,#redux-export-link-value{display:none}#redux-import-action span{color:#B94A48} diff --git a/redux/ReduxCore/inc/extensions/import_export/import_export/field_import_export.js b/redux/ReduxCore/inc/extensions/import_export/import_export/field_import_export.js new file mode 100644 index 0000000..a94b2c7 --- /dev/null +++ b/redux/ReduxCore/inc/extensions/import_export/import_export/field_import_export.js @@ -0,0 +1,198 @@ +/*global jQuery, document, redux*/ + +(function( $ ) { + "use strict"; + + redux.field_objects = redux.field_objects || {}; + redux.field_objects.import_export = redux.field_objects.import_export || {}; + + redux.field_objects.import_export.init = function( selector ) { + if ( !selector ) { + selector = $( document ).find( ".redux-group-tab:visible" ).find( '.redux-container-import_export:visible' ); + } + + $( selector ).each( + function() { + var el = $( this ); + var parent = el; + if ( !el.hasClass( 'redux-field-container' ) ) { + parent = el.parents( '.redux-field-container:first' ); + } + if ( parent.is( ":hidden" ) ) { // Skip hidden fields + return; + } + if ( parent.hasClass( 'redux-field-init' ) ) { + parent.removeClass( 'redux-field-init' ); + } else { + return; + } + el.each( + function() { + $( '#redux-import' ).click( + function( e ) { + if ( $( '#import-code-value' ).val() === "" && $( '#import-link-value' ).val() === "" ) { + e.preventDefault(); + return false; + } + } + ); + + $( this ).find( '#redux-import-code-button' ).click( + function() { + var $el = $( '#redux-import-code-wrapper' ); + if ( $( '#redux-import-link-wrapper' ).is( ':visible' ) ) { + $( '#import-link-value' ).text( '' ); + $( '#redux-import-link-wrapper' ).slideUp( + 'fast', function() { + $el.slideDown( + 'fast', function() { + $( '#import-code-value' ).focus(); + } + ); + } + ); + } else { + if ( $el.is( ':visible' ) ) { + $el.slideUp(); + } else { + $el.slideDown( + 'medium', function() { + $( '#import-code-value' ).focus(); + } + ); + } + } + } + ); + + $( this ).find( '#redux-import-link-button' ).click( + function() { + var $el = $( '#redux-import-link-wrapper' ); + if ( $( '#redux-import-code-wrapper' ).is( ':visible' ) ) { + $( '#import-code-value' ).text( '' ); + $( '#redux-import-code-wrapper' ).slideUp( + 'fast', function() { + $el.slideDown( + 'fast', function() { + $( '#import-link-value' ).focus(); + } + ); + } + ); + } else { + if ( $el.is( ':visible' ) ) { + $el.slideUp(); + } else { + $el.slideDown( + 'medium', function() { + $( '#import-link-value' ).focus(); + } + ); + } + } + } + ); + + $( this ).find( '#redux-export-code-copy' ).click( + function() { + var $el = $( '#redux-export-code' ); + if ( $( '#redux-export-link-value' ).is( ':visible' ) ) { + $( '#redux-export-link-value' ).slideUp( + 'fast', function() { + $el.slideDown( + 'medium', function() { + var options = redux.options; + options['redux-backup'] = 1; + $( this ).text( JSON.stringify( options ) ).focus().select(); + } + ); + } + ); + } else { + if ( $el.is( ':visible' ) ) { + $el.slideUp().text( '' ); + } else { + $el.slideDown( + 'medium', function() { + var options = redux.options; + options['redux-backup'] = 1; + $( this ).text( JSON.stringify( options ) ).focus().select(); + } + ); + } + } + } + ); + + $( this ).find( 'textarea' ).focusout( + function() { + var $id = $( this ).attr( 'id' ); + var $el = $( this ); + var $container = $el; + if ( $id == "import-link-value" || $id == "import-code-value" ) { + $container = $( this ).parent(); + } + $container.slideUp( + 'medium', function() { + if ( $id != "redux-export-link-value" ) { + $el.text( '' ); + } + } + ); + } + ); + + + $( this ).find( '#redux-export-link' ).click( + function() { + var $el = $( '#redux-export-link-value' ); + if ( $( '#redux-export-code' ).is( ':visible' ) ) { + $( '#redux-export-code' ).slideUp( + 'fast', function() { + $el.slideDown().focus().select(); + } + ); + } else { + if ( $el.is( ':visible' ) ) { + $el.slideUp(); + } else { + $el.slideDown( + 'medium', function() { + $( this ).focus().select(); + } + ); + } + + } + } + ); + + var textBox1 = document.getElementById( "redux-export-code" ); + textBox1.onfocus = function() { + textBox1.select(); + // Work around Chrome's little problem + textBox1.onmouseup = function() { + // Prevent further mouseup intervention + textBox1.onmouseup = null; + return false; + }; + }; + var textBox2 = document.getElementById( "import-code-value" ); + textBox2.onfocus = function() { + textBox2.select(); + // Work around Chrome's little problem + textBox2.onmouseup = function() { + // Prevent further mouseup intervention + textBox2.onmouseup = null; + return false; + }; + }; + + } + ); + } + ); + }; +})( jQuery ); + + diff --git a/redux/ReduxCore/inc/extensions/import_export/import_export/field_import_export.min.js b/redux/ReduxCore/inc/extensions/import_export/import_export/field_import_export.min.js new file mode 100644 index 0000000..587426d --- /dev/null +++ b/redux/ReduxCore/inc/extensions/import_export/import_export/field_import_export.min.js @@ -0,0 +1 @@ +!function(o){"use strict";redux.field_objects=redux.field_objects||{},redux.field_objects.import_export=redux.field_objects.import_export||{},redux.field_objects.import_export.init=function(e){e||(e=o(document).find(".redux-group-tab:visible").find(".redux-container-import_export:visible")),o(e).each(function(){var e=o(this),i=e;e.hasClass("redux-field-container")||(i=e.parents(".redux-field-container:first")),i.is(":hidden")||i.hasClass("redux-field-init")&&(i.removeClass("redux-field-init"),e.each(function(){o("#redux-import").click(function(e){if(""===o("#import-code-value").val()&&""===o("#import-link-value").val())return e.preventDefault(),!1}),o(this).find("#redux-import-code-button").click(function(){var e=o("#redux-import-code-wrapper");o("#redux-import-link-wrapper").is(":visible")?(o("#import-link-value").text(""),o("#redux-import-link-wrapper").slideUp("fast",function(){e.slideDown("fast",function(){o("#import-code-value").focus()})})):e.is(":visible")?e.slideUp():e.slideDown("medium",function(){o("#import-code-value").focus()})}),o(this).find("#redux-import-link-button").click(function(){var e=o("#redux-import-link-wrapper");o("#redux-import-code-wrapper").is(":visible")?(o("#import-code-value").text(""),o("#redux-import-code-wrapper").slideUp("fast",function(){e.slideDown("fast",function(){o("#import-link-value").focus()})})):e.is(":visible")?e.slideUp():e.slideDown("medium",function(){o("#import-link-value").focus()})}),o(this).find("#redux-export-code-copy").click(function(){var e=o("#redux-export-code");o("#redux-export-link-value").is(":visible")?o("#redux-export-link-value").slideUp("fast",function(){e.slideDown("medium",function(){var e=redux.options;e["redux-backup"]=1,o(this).text(JSON.stringify(e)).focus().select()})}):e.is(":visible")?e.slideUp().text(""):e.slideDown("medium",function(){var e=redux.options;e["redux-backup"]=1,o(this).text(JSON.stringify(e)).focus().select()})}),o(this).find("textarea").focusout(function(){var e=o(this).attr("id"),i=o(this),t=i;"import-link-value"!=e&&"import-code-value"!=e||(t=o(this).parent()),t.slideUp("medium",function(){"redux-export-link-value"!=e&&i.text("")})}),o(this).find("#redux-export-link").click(function(){var e=o("#redux-export-link-value");o("#redux-export-code").is(":visible")?o("#redux-export-code").slideUp("fast",function(){e.slideDown().focus().select()}):e.is(":visible")?e.slideUp():e.slideDown("medium",function(){o(this).focus().select()})});var e=document.getElementById("redux-export-code");e.onfocus=function(){e.select(),e.onmouseup=function(){return e.onmouseup=null,!1}};var i=document.getElementById("import-code-value");i.onfocus=function(){i.select(),i.onmouseup=function(){return i.onmouseup=null,!1}}}))})}}(jQuery); \ No newline at end of file diff --git a/redux/ReduxCore/inc/extensions/import_export/import_export/field_import_export.php b/redux/ReduxCore/inc/extensions/import_export/import_export/field_import_export.php new file mode 100644 index 0000000..0c4b74d --- /dev/null +++ b/redux/ReduxCore/inc/extensions/import_export/import_export/field_import_export.php @@ -0,0 +1,194 @@ +. + * + * @package ReduxFramework + * @author Dovy Paukstys + * @version 3.1.5 + */ + +// Exit if accessed directly + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + +// Don't duplicate me! + if ( ! class_exists( 'ReduxFramework_import_export' ) ) { + + /** + * Main ReduxFramework_import_export class + * + * @since 1.0.0 + */ + class ReduxFramework_import_export extends ReduxFramework { + public $parent; + public $field; + public $value; + + public $extension_url; + public $extension_dir; + public $is_field; + /** + * Field Constructor. + * Required - must call the parent constructor, then assign field and value to vars, and obviously call the render field function + * + * @since 1.0.0 + * @access public + * @return void + */ + function __construct( $field = array(), $value = '', $parent=null ) { + + $this->parent = $parent; + $this->field = $field; + $this->value = $value; + $this->is_field = $this->parent->extensions['import_export']->is_field; + + $this->extension_dir = ReduxFramework::$_dir . 'inc/extensions/import_export/'; + $this->extension_url = ReduxFramework::$_url . 'inc/extensions/import_export/'; + + // Set default args for this field to avoid bad indexes. Change this to anything you use. + $defaults = array( + 'options' => array(), + 'stylesheet' => '', + 'output' => true, + 'enqueue' => true, + 'enqueue_frontend' => true + ); + $this->field = wp_parse_args( $this->field, $defaults ); + + } + + /** + * Field Render Function. + * Takes the vars and outputs the HTML for the field in the settings + * + * @since 1.0.0 + * @access public + * @return void + */ + public function render() { + + $secret = md5( md5( Redux_Helpers::get_auth_key_secret_key() ) . '-' . $this->parent->args['opt_name'] ); + + // No errors please + $defaults = array( + 'full_width' => true, + 'overflow' => 'inherit', + ); + + $this->field = wp_parse_args( $this->field, $defaults ); + + $bDoClose = false; + + // $this->parent->args['opt_name'] & $this->field['id'] are sanitized in the ReduxFramework class, no need to re-sanitize it. + $id = $this->parent->args['opt_name'] . '-' . $this->field['id']; + + // $this->field['type'] && $this->field['id'] is sanitized in the ReduxFramework class, no need to re-sanitize it. + ?> +

    + +

    + + + + + + +

    + +
    +

    + +

    + parent->args['opt_name'] is sanitized in the ReduxFramework class, no need to re-sanitize it. ?> + +
    + + + +

      

    + +
    +
     
    +

    + +
    +

    + +

    +
    + parent->args['opt_name'] is sanitized in the ReduxFramework class, no need to re-sanitize it. + $link = esc_url( admin_url( 'admin-ajax.php?action=redux_download_options-' . $this->parent->args['opt_name'] . '&secret=' . $secret ) ); + ?> +

    + + + +

    + +

    + + + + extension_url . 'import_export/field_import_export' . Redux_Functions::isMin() . '.js', + array( 'jquery' ), + ReduxFramework_extension_import_export::$version, + true + ); + + wp_enqueue_style( + 'redux-import-export', + $this->extension_url . 'import_export/field_import_export.css', + time(), + true + ); + + } + + /** + * Output Function. + * Used to enqueue to the front-end + * + * @since 1.0.0 + * @access public + * @return void + */ + public function output() { + + if ( $this->field['enqueue_frontend'] ) { + + } + + } + + } + } diff --git a/redux/ReduxCore/inc/extensions/import_export/import_export/field_import_export.scss b/redux/ReduxCore/inc/extensions/import_export/import_export/field_import_export.scss new file mode 100644 index 0000000..ca28584 --- /dev/null +++ b/redux/ReduxCore/inc/extensions/import_export/import_export/field_import_export.scss @@ -0,0 +1,13 @@ +#redux-import-link-wrapper, +#redux-import-code-wrapper { + display: none; +} + +#redux-export-code, +#redux-export-link-value { + display: none; +} + +#redux-import-action span { + color: #B94A48; +} \ No newline at end of file diff --git a/redux/ReduxCore/inc/extensions/options_object/extension_options_object.php b/redux/ReduxCore/inc/extensions/options_object/extension_options_object.php new file mode 100644 index 0000000..0b5bbaf --- /dev/null +++ b/redux/ReduxCore/inc/extensions/options_object/extension_options_object.php @@ -0,0 +1,102 @@ +. + * + * @package ReduxFramework + * @author Kevin Provance (kprovance) + * @version 4.0.0 + */ + +// Exit if accessed directly + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + +// Don't duplicate me! + if ( ! class_exists( 'ReduxFramework_Extension_options_object' ) ) { + + + /** + * Main ReduxFramework options_object extension class + * + * @since 3.1.6 + */ + class ReduxFramework_Extension_options_object { + + // Protected vars + protected $parent; + public $extension_url; + public $extension_dir; + public static $theInstance; + public static $version = "4.0"; + public $is_field = false; + public $field_name; + + /** + * Class Constructor. Defines the args for the extions class + * + * @since 1.0.0 + * @access public + * + * @param array $sections Panel sections. + * @param array $args Class constructor arguments. + * @param array $extra_tabs Extra panel tabs. + * + * @return void + */ + public function __construct( $parent ) { + + $this->parent = $parent; + if ( empty( $this->extension_dir ) ) { + //$this->extension_dir = trailingslashit( str_replace( '\\', '/', dirname( __FILE__ ) ) ); + } + $this->field_name = 'options_object'; + + + self::$theInstance = $this; + + $this->is_field = Redux_Helpers::isFieldInUse($parent, 'options_object'); + + if ( !$this->is_field && $this->parent->args['dev_mode'] && $this->parent->args['show_options_object'] ) { + $this->add_section(); + } + + add_filter( 'redux/' . $this->parent->args['opt_name'] . '/field/class/' . $this->field_name, array( + &$this, + 'overload_field_path' + ) ); // Adds the local field + } + + public function add_section() { + $this->parent->sections[] = array( + 'id' => 'options-object', + 'title' => __( 'Options Object', 'redux-framework' ), + 'heading' => '', + 'icon' => 'el el-info-circle', + 'customizer' => false, + 'fields' => array( + array( + 'id' => 'redux_options_object', + 'type'=> 'options_object', + 'title' => '', + ) + ), + ); + } + + // Forces the use of the embeded field path vs what the core typically would use + public function overload_field_path( $field ) { + return dirname( __FILE__ ) . '/' . $this->field_name . '/field_' . $this->field_name . '.php'; + } + } // class + } // if diff --git a/redux/ReduxCore/inc/extensions/options_object/options_object/field_options_object.css b/redux/ReduxCore/inc/extensions/options_object/options_object/field_options_object.css new file mode 100644 index 0000000..8020718 --- /dev/null +++ b/redux/ReduxCore/inc/extensions/options_object/options_object/field_options_object.css @@ -0,0 +1 @@ +#redux-object-browser{overflow:auto;word-wrap:break-word;max-height:600px;max-width:100%} diff --git a/redux/ReduxCore/inc/extensions/options_object/options_object/field_options_object.js b/redux/ReduxCore/inc/extensions/options_object/options_object/field_options_object.js new file mode 100644 index 0000000..b83ab4b --- /dev/null +++ b/redux/ReduxCore/inc/extensions/options_object/options_object/field_options_object.js @@ -0,0 +1,44 @@ +/*global redux_change, redux*/ + +(function( $ ) { + "use strict"; + + redux.field_objects = redux.field_objects || {}; + redux.field_objects.options_object = redux.field_objects.options_object || {}; + +// $( document ).ready( +// function() { +// redux.field_objects.import_export.init(); +// } +// ); + + redux.field_objects.options_object.init = function( selector ) { + + if ( !selector ) { + selector = $( document ).find( '.redux-container-options_object' ); + } + + var parent = selector; + + if ( !selector.hasClass( 'redux-field-container' ) ) { + parent = selector.parents( '.redux-field-container:first' ); + } + + if ( parent.hasClass( 'redux-field-init' ) ) { + parent.removeClass( 'redux-field-init' ); + } else { + return; + } + + $( '#consolePrintObject' ).on( + 'click', function( e ) { + e.preventDefault(); + console.log( $.parseJSON( $( "#redux-object-json" ).html() ) ); + } + ); + + if ( typeof jsonView === 'function' ) { + jsonView( '#redux-object-json', '#redux-object-browser' ); + } + }; +})( jQuery ); \ No newline at end of file diff --git a/redux/ReduxCore/inc/extensions/options_object/options_object/field_options_object.min.js b/redux/ReduxCore/inc/extensions/options_object/options_object/field_options_object.min.js new file mode 100644 index 0000000..16c4d05 --- /dev/null +++ b/redux/ReduxCore/inc/extensions/options_object/options_object/field_options_object.min.js @@ -0,0 +1 @@ +!function(t){"use strict";redux.field_objects=redux.field_objects||{},redux.field_objects.options_object=redux.field_objects.options_object||{},redux.field_objects.options_object.init=function(e){e||(e=t(document).find(".redux-container-options_object"));var o=e;e.hasClass("redux-field-container")||(o=e.parents(".redux-field-container:first")),o.hasClass("redux-field-init")&&(o.removeClass("redux-field-init"),t("#consolePrintObject").on("click",function(e){e.preventDefault(),console.log(t.parseJSON(t("#redux-object-json").html()))}),"function"==typeof jsonView&&jsonView("#redux-object-json","#redux-object-browser"))}}(jQuery); \ No newline at end of file diff --git a/redux/ReduxCore/inc/extensions/options_object/options_object/field_options_object.php b/redux/ReduxCore/inc/extensions/options_object/options_object/field_options_object.php new file mode 100644 index 0000000..c4ec7ff --- /dev/null +++ b/redux/ReduxCore/inc/extensions/options_object/options_object/field_options_object.php @@ -0,0 +1,164 @@ +. + * + * @package ReduxFramework + * @author Kevin Provance (kprovance) + * @version 3.5.4 + */ + +// Exit if accessed directly + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + +// Don't duplicate me! + if ( ! class_exists( 'ReduxFramework_options_object' ) ) { + + /** + * Main ReduxFramework_options_object class + * + * @since 1.0.0 + */ + class ReduxFramework_options_object { + + /** + * Field Constructor. + * Required - must call the parent constructor, then assign field and value to vars, and obviously call the render field function + * + * @since 1.0.0 + * @access public + * @return void + */ + function __construct( $field = array(), $value = '', $parent ) { + + $this->parent = $parent; + $this->field = $field; + $this->value = $value; + $this->is_field = $this->parent->extensions['options_object']->is_field; + + $this->extension_dir = ReduxFramework::$_dir . 'inc/extensions/options_object/'; + $this->extension_url = ReduxFramework::$_url . 'inc/extensions/options_object/'; + + // Set default args for this field to avoid bad indexes. Change this to anything you use. + $defaults = array( + 'options' => array(), + 'stylesheet' => '', + 'output' => true, + 'enqueue' => true, + 'enqueue_frontend' => true + ); + $this->field = wp_parse_args( $this->field, $defaults ); + + } + + /** + * Field Render Function. + * Takes the vars and outputs the HTML for the field in the settings + * + * @since 1.0.0 + * @access public + * @return void + */ + public function render() { + if ( version_compare( phpversion(), "5.3.0", ">=" ) ) { + $json = json_encode( $this->parent->options, true ); + } else { + $json = json_encode( $this->parent->options ); + } + + $defaults = array( + 'full_width' => true, + 'overflow' => 'inherit', + ); + + $this->field = wp_parse_args( $this->field, $defaults ); + + if ( $this->is_field ) { + $fullWidth = $this->field['full_width']; + } + + $bDoClose = false; + + $id = $this->parent->args['opt_name'] . '-' . $this->field['id']; + + if ( ! $this->is_field || ( $this->is_field && false == $fullWidth ) ) { ?> + + + +
    + +
    +

    +
    +
    + + +
    + +
    + + + + +
    +extension_url . 'options_object/field_options_object' . Redux_Functions::isMin() . '.js', + array( 'jquery' ), + ReduxFramework_extension_options_object::$version, + true + ); + + wp_enqueue_style( + 'redux-options-object', + $this->extension_url . 'options_object/field_options_object.css', + array(), + time(), + 'all' + ); + } + + /** + * Output Function. + * Used to enqueue to the front-end + * + * @since 1.0.0 + * @access public + * @return void + */ + public function output() { + + if ( $this->field['enqueue_frontend'] ) { + + } + } + } + } diff --git a/redux/ReduxCore/inc/extensions/options_object/options_object/field_options_object.scss b/redux/ReduxCore/inc/extensions/options_object/options_object/field_options_object.scss new file mode 100644 index 0000000..35fc9dc --- /dev/null +++ b/redux/ReduxCore/inc/extensions/options_object/options_object/field_options_object.scss @@ -0,0 +1,7 @@ +#redux-object-browser { + overflow: auto; + word-wrap: break-word; + max-height: 600px; + max-width: 100%; +} + diff --git a/redux/ReduxCore/inc/fields/ace_editor/field_ace_editor.css b/redux/ReduxCore/inc/fields/ace_editor/field_ace_editor.css new file mode 100644 index 0000000..01f9e6f --- /dev/null +++ b/redux/ReduxCore/inc/fields/ace_editor/field_ace_editor.css @@ -0,0 +1 @@ +.redux-container-ace_editor .ace-wrapper{position:static}.redux-container-ace_editor .ace_editor{height:200px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.redux-container-ace_editor .ace_gutter{z-index:1 !important} diff --git a/redux/ReduxCore/inc/fields/ace_editor/field_ace_editor.css.map b/redux/ReduxCore/inc/fields/ace_editor/field_ace_editor.css.map new file mode 100644 index 0000000..e9c1d39 --- /dev/null +++ b/redux/ReduxCore/inc/fields/ace_editor/field_ace_editor.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "AACI,wCAAa;EACT,QAAQ,EAAE,MAAM;AAGpB,uCAAY;EACR,MAAM,EAAE,KAAK;EACb,qBAAqB,EAAE,GAAG;EAC1B,kBAAkB,EAAE,GAAG;EACvB,aAAa,EAAE,GAAG;AAGtB,uCAAY;EACR,OAAO,EAAE,YAAY", +"sources": ["field_ace_editor.scss"], +"names": [], +"file": "field_ace_editor.css" +} \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/ace_editor/field_ace_editor.js b/redux/ReduxCore/inc/fields/ace_editor/field_ace_editor.js new file mode 100644 index 0000000..4c2e398 --- /dev/null +++ b/redux/ReduxCore/inc/fields/ace_editor/field_ace_editor.js @@ -0,0 +1,58 @@ +/*global jQuery, document, redux*/ + +(function( $ ) { + "use strict"; + + redux.field_objects = redux.field_objects || {}; + redux.field_objects.ace_editor = redux.field_objects.ace_editor || {}; + + redux.field_objects.ace_editor.init = function( selector ) { + if ( !selector ) { + selector = $( document ).find( ".redux-group-tab:visible" ).find( '.redux-container-ace_editor:visible' ); + } + + $( selector ).each( + function() { + var el = $( this ); + var parent = el; + if ( !el.hasClass( 'redux-field-container' ) ) { + parent = el.parents( '.redux-field-container:first' ); + } + if ( parent.is( ":hidden" ) ) { // Skip hidden fields + return; + } + if ( parent.hasClass( 'redux-field-init' ) ) { + parent.removeClass( 'redux-field-init' ); + } else { + return; + } + el.find( '.ace-editor' ).each( + function( index, element ) { + var area = element; + var params = JSON.parse( $( this ).parent().find( '.localize_data' ).val() ); + var editor = $( element ).attr( 'data-editor' ); + + var aceeditor = ace.edit( editor ); + aceeditor.setTheme( "ace/theme/" + jQuery( element ).attr( 'data-theme' ) ); + aceeditor.getSession().setMode( "ace/mode/" + $( element ).attr( 'data-mode' ) ); + var parent = ''; + if ( el.hasClass( 'redux-field-container' ) ) { + parent = el.attr( 'data-id' ); + } else { + parent = el.parents( '.redux-field-container:first' ).attr( 'data-id' ); + } + + aceeditor.setOptions( params ); + aceeditor.on( + 'change', function( e ) { + $( '#' + area.id ).val( aceeditor.getSession().getValue() ); + redux_change( $( element ) ); + aceeditor.resize(); + } + ); + } + ); + } + ); + }; +})( jQuery ); \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/ace_editor/field_ace_editor.min.js b/redux/ReduxCore/inc/fields/ace_editor/field_ace_editor.min.js new file mode 100644 index 0000000..0473959 --- /dev/null +++ b/redux/ReduxCore/inc/fields/ace_editor/field_ace_editor.min.js @@ -0,0 +1 @@ +!function(s){"use strict";redux.field_objects=redux.field_objects||{},redux.field_objects.ace_editor=redux.field_objects.ace_editor||{},redux.field_objects.ace_editor.init=function(e){e||(e=s(document).find(".redux-group-tab:visible").find(".redux-container-ace_editor:visible")),s(e).each(function(){var n=s(this),e=n;n.hasClass("redux-field-container")||(e=n.parents(".redux-field-container:first")),e.is(":hidden")||e.hasClass("redux-field-init")&&(e.removeClass("redux-field-init"),n.find(".ace-editor").each(function(e,t){var i=t,a=JSON.parse(s(this).parent().find(".localize_data").val()),d=s(t).attr("data-editor"),r=ace.edit(d);r.setTheme("ace/theme/"+jQuery(t).attr("data-theme")),r.getSession().setMode("ace/mode/"+s(t).attr("data-mode"));n.hasClass("redux-field-container")?n.attr("data-id"):n.parents(".redux-field-container:first").attr("data-id"),r.setOptions(a),r.on("change",function(e){s("#"+i.id).val(r.getSession().getValue()),redux_change(s(t)),r.resize()})}))})}}(jQuery); \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/ace_editor/field_ace_editor.php b/redux/ReduxCore/inc/fields/ace_editor/field_ace_editor.php new file mode 100644 index 0000000..0237e55 --- /dev/null +++ b/redux/ReduxCore/inc/fields/ace_editor/field_ace_editor.php @@ -0,0 +1,134 @@ +. + * + * @package Redux_Field + * @subpackage ACE_Editor + * @version 3.0.0 + */ + +// Exit if accessed directly + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + +// Don't duplicate me! + if ( ! class_exists( 'ReduxFramework_ace_editor' ) ) { + class ReduxFramework_ace_editor { + + public $parent; + public $field; + public $value; + /** + * Field Constructor. + * Required - must call the parent constructor, then assign field and value to vars, and obviously call the render field function + * + * @since ReduxFramework 1.0.0 + */ + function __construct( $field = array(), $value = '', $parent=null ) { + $this->parent = $parent; + $this->field = $field; + $this->value = $value; + + if ( is_array( $this->value ) ) { + $this->value = ''; + } else { + $this->value = trim( $this->value ); + } + + if ( ! empty( $this->field['options'] ) ) { + $this->field['args'] = $this->field['options']; + unset( $this->field['options'] ); + } + + } + + /** + * Field Render Function. + * Takes the vars and outputs the HTML for the field in the settings + * + * @since ReduxFramework 1.0.0 + */ + function render() { + + if ( ! isset( $this->field['mode'] ) ) { + $this->field['mode'] = 'javascript'; + } + if ( ! isset( $this->field['theme'] ) ) { + $this->field['theme'] = 'monokai'; + } + + $params = array( + 'minLines' => 10, + 'maxLines' => 30, + ); + + if ( isset( $this->field['args'] ) && ! empty( $this->field['args'] ) && is_array( $this->field['args'] ) ) { + $params = wp_parse_args( $this->field['args'], $params ); + } + + ?> +
    + + +
    value ); ?>
    +
    + parent->args['dev_mode'] ) { + if ( ! wp_style_is( 'redux-field-ace-editor-css' ) ) { + wp_enqueue_style( + 'redux-field-ace-editor-css', + ReduxFramework::$_url . 'inc/fields/ace_editor/field_ace_editor.css', + array(), + time(), + 'all' + ); + } + } + + if ( ! wp_script_is( 'ace-editor-js' ) ) { + Redux_CDN::enqueue_script( + 'ace-editor-js', + '//cdn.jsdelivr.net/ace/1.1.9/min/ace.js', + array( 'jquery' ), + '1.1.9', + true + ); + } + + if ( ! wp_script_is( 'redux-field-ace-editor-js' ) ) { + wp_enqueue_script( + 'redux-field-ace-editor-js', + ReduxFramework::$_url . 'inc/fields/ace_editor/field_ace_editor' . Redux_Functions::isMin() . '.js', + array( 'jquery', 'ace-editor-js', 'redux-js' ), + time(), + true + ); + } + } + } + } \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/ace_editor/field_ace_editor.scss b/redux/ReduxCore/inc/fields/ace_editor/field_ace_editor.scss new file mode 100644 index 0000000..84d7fe2 --- /dev/null +++ b/redux/ReduxCore/inc/fields/ace_editor/field_ace_editor.scss @@ -0,0 +1,17 @@ +.redux-container-ace_editor { + .ace-wrapper { + position: static; + } + + .ace_editor { + height: 200px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + } + + .ace_gutter { + z-index: 1 !important; + } +} + diff --git a/redux/ReduxCore/inc/fields/background/field_background.css b/redux/ReduxCore/inc/fields/background/field_background.css new file mode 100644 index 0000000..84816a5 --- /dev/null +++ b/redux/ReduxCore/inc/fields/background/field_background.css @@ -0,0 +1 @@ +.redux-main .redux-container-background .redux-background-position,.redux-main .redux-container-background .redux-background-position select,.redux-main .redux-container-background .redux-background-attachment,.redux-main .redux-container-background .redux-background-attachment select,.redux-main .redux-container-background .redux-background-clip,.redux-main .redux-container-background .redux-background-clip select,.redux-main .redux-container-background .redux-background-origin,.redux-main .redux-container-background .redux-background-origin select,.redux-main .redux-container-background .redux-background-size,.redux-main .redux-container-background .redux-background-size select,.redux-main .redux-container-background .redux-background-repeat,.redux-main .redux-container-background .redux-background-repeat select{width:200px !important;margin-right:10px;margin-bottom:7px}.redux-main .redux-container-background .background-preview{display:block;width:100%;margin:5px 0 10px;border:1px dotted lightgray}.redux-main .redux-container-background .select2-container{margin-right:10px;margin-bottom:10px}.redux-main .redux-container-background .wp-picker-container{margin-bottom:10px}.redux-main .redux-container-background .upload{width:100%;margin-bottom:8px}.redux-main .redux-container-select li.ui-state-highlight{height:20px;margin-top:2px;margin-left:5px;width:64px;margin-bottom:0}.wp-customizer .redux-container-background .redux-background-position,.wp-customizer .redux-container-background .redux-background-position select,.wp-customizer .redux-container-background .redux-background-attachment,.wp-customizer .redux-container-background .redux-background-attachment select,.wp-customizer .redux-container-background .redux-background-clip,.wp-customizer .redux-container-background .redux-background-clip select,.wp-customizer .redux-container-background .redux-background-origin,.wp-customizer .redux-container-background .redux-background-origin select,.wp-customizer .redux-container-background .redux-background-size,.wp-customizer .redux-container-background .redux-background-size select,.wp-customizer .redux-container-background .redux-background-repeat,.wp-customizer .redux-container-background .redux-background-repeat select{width:100% !important} diff --git a/redux/ReduxCore/inc/fields/background/field_background.css.map b/redux/ReduxCore/inc/fields/background/field_background.css.map new file mode 100644 index 0000000..78c0273 --- /dev/null +++ b/redux/ReduxCore/inc/fields/background/field_background.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "AAEQ;;;;;;;;;;;uEAWgC;EAC5B,KAAK,EAAC,gBAAgB;EACtB,YAAY,EAAE,IAAI;EAClB,aAAa,EAAE,GAAG;AAItB,2DAAoB;EAChB,OAAO,EAAC,KAAK;EACb,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,UAAU;EAClB,MAAM,EAAC,oBAAoB;AAG/B,0DAAmB;EACf,YAAY,EAAE,IAAI;EAClB,aAAa,EAAE,IAAI;AAGvB,4DAAqB;EACjB,aAAa,EAAE,IAAI;AAGvB,+CAAQ;EACJ,KAAK,EAAE,IAAI;EACX,aAAa,EAAE,GAAG;AAKtB,yDAAsB;EAClB,MAAM,EAAE,IAAI;EACZ,UAAU,EAAC,GAAG;EACd,WAAW,EAAE,GAAG;EAChB,KAAK,EAAE,IAAI;EACX,aAAa,EAAE,CAAC;;AAOpB,w2BAAqW;EACjW,KAAK,EAAE,eAAe", +"sources": ["field_background.scss"], +"names": [], +"file": "field_background.css" +} \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/background/field_background.js b/redux/ReduxCore/inc/fields/background/field_background.js new file mode 100644 index 0000000..eb922f8 --- /dev/null +++ b/redux/ReduxCore/inc/fields/background/field_background.js @@ -0,0 +1,324 @@ +/** + * Redux Background + * Dependencies : jquery, wp media uploader + * Feature added by : Dovy Paukstys + * Date : 07 Jan 2014 + */ + +/*global redux_change, wp, redux*/ + +(function( $ ) { + "use strict"; + + redux.field_objects = redux.field_objects || {}; + redux.field_objects.background = redux.field_objects.background || {}; + + redux.field_objects.background.init = function( selector ) { + if ( !selector ) { + selector = $( document ).find( ".redux-group-tab:visible" ).find( '.redux-container-background:visible' ); + } + + $( selector ).each( + function() { + var el = $( this ); + var parent = el; + if ( !el.hasClass( 'redux-field-container' ) ) { + parent = el.parents( '.redux-field-container:first' ); + } + + if ( parent.is( ":hidden" ) ) { // Skip hidden fields + return; + } + + if ( parent.hasClass( 'redux-field-init' ) ) { + parent.removeClass( 'redux-field-init' ); + } else { + return; + } + // Remove the image button + el.find( '.redux-remove-background' ).unbind( 'click' ).on( + 'click', function( e ) { + e.preventDefault(); + redux.field_objects.background.removeImage( $( this ).parents( '.redux-container-background:first' ) ); + return false; + } + ); + + // Upload media button + el.find( '.redux-background-upload' ).unbind().on( + 'click', function( event ) { + redux.field_objects.background.addImage( + event, $( this ).parents( '.redux-container-background:first' ) + ); + } + ); + + el.find( '.redux-background-input' ).on( + 'change', function() { + redux.field_objects.background.preview( $( this ) ); + } + ); + + el.find( '.redux-color' ).wpColorPicker( + { + change: function( e, ui ) { + $( this ).val( ui.color.toString() ); + redux_change( $( this ) ); + $( '#' + e.target.id + '-transparency' ).removeAttr( 'checked' ); + redux.field_objects.background.preview( $( this ) ); + }, + + clear: function( e, ui ) { + $( this ).val( ui.color.toString() ); + redux_change( $( this ).parent().find( '.redux-color-init' ) ); + redux.field_objects.background.preview( $( this ) ); + } + } + ); + + // Replace and validate field on blur + el.find( '.redux-color' ).on( + 'blur', function() { + var value = $( this ).val(); + var id = '#' + $( this ).attr( 'id' ); + + if ( value === "transparent" ) { + $( this ).parent().parent().find( '.wp-color-result' ).css( + 'background-color', 'transparent' + ); + + el.find( id + '-transparency' ).attr( 'checked', 'checked' ); + } else { + if ( colorValidate( this ) === value ) { + if ( value.indexOf( "#" ) !== 0 ) { + $( this ).val( $( this ).data( 'oldcolor' ) ); + } + } + + el.find( id + '-transparency' ).removeAttr( 'checked' ); + } + } + ); + + el.find( '.redux-color' ).on( + 'focus', function() { + $( this ).data( 'oldcolor', $( this ).val() ); + } + ); + + el.find( '.redux-color' ).on( + 'keyup', function() { + var value = $( this ).val(); + var color = colorValidate( this ); + var id = '#' + $( this ).attr( 'id' ); + + if ( value === "transparent" ) { + $( this ).parent().parent().find( '.wp-color-result' ).css( + 'background-color', 'transparent' + ); + el.find( id + '-transparency' ).attr( 'checked', 'checked' ); + } else { + el.find( id + '-transparency' ).removeAttr( 'checked' ); + + if ( color && color !== $( this ).val() ) { + $( this ).val( color ); + } + } + } + ); + + // When transparency checkbox is clicked + el.find( '.color-transparency' ).on( + 'click', function() { + if ( $( this ).is( ":checked" ) ) { + el.find( '.redux-saved-color' ).val( $( '#' + $( this ).data( 'id' ) ).val() ); + el.find( '#' + $( this ).data( 'id' ) ).val( 'transparent' ); + el.find( '#' + $( this ).data( 'id' ) ).parent().parent().find( '.wp-color-result' ).css( + 'background-color', 'transparent' + ); + } else { + if ( el.find( '#' + $( this ).data( 'id' ) ).val() === 'transparent' ) { + var prevColor = $( '.redux-saved-color' ).val(); + + if ( prevColor === '' ) { + prevColor = $( '#' + $( this ).data( 'id' ) ).data( 'default-color' ); + } + + el.find( '#' + $( this ).data( 'id' ) ).parent().parent().find( '.wp-color-result' ).css( + 'background-color', prevColor + ); + el.find( '#' + $( this ).data( 'id' ) ).val( prevColor ); + } + } + redux.field_objects.background.preview( $( this ) ); + redux_change( $( this ) ); + } + ); + + var default_params = { + width: 'resolve', + triggerChange: true, + allowClear: true + }; + + var select2_handle = el.find( '.select2_params' ); + if ( select2_handle.size() > 0 ) { + var select2_params = select2_handle.val(); + + select2_params = JSON.parse( select2_params ); + default_params = $.extend( {}, default_params, select2_params ); + } + + el.find( " .redux-background-repeat, .redux-background-clip, .redux-background-origin, .redux-background-size, .redux-background-attachment, .redux-background-position" ).select2( default_params ); + + } + ); + }; + + // Update the background preview + redux.field_objects.background.preview = function( selector ) { + var parent = $( selector ).parents( '.redux-container-background:first' ); + var preview = $( parent ).find( '.background-preview' ); + + if ( !preview ) { // No preview present + return; + } + var hide = true; + + var css = 'height:' + preview.height() + 'px;'; + $( parent ).find( '.redux-background-input' ).each( + function() { + var data = $( this ).serializeArray(); + data = data[0]; + if ( data && data.name.indexOf( '[background-' ) != -1 ) { + if ( data.value !== "" ) { + hide = false; + data.name = data.name.split( '[background-' ); + data.name = 'background-' + data.name[1].replace( ']', '' ); + if ( data.name == "background-image" ) { + css += data.name + ':url("' + data.value + '");'; + } else { + css += data.name + ':' + data.value + ';'; + } + } + } + } + ); + if ( !hide ) { + preview.attr( 'style', css ).fadeIn(); + } else { + preview.slideUp(); + } + + + }; + + // Add a file via the wp.media function + redux.field_objects.background.addImage = function( event, selector ) { + event.preventDefault(); + + var frame; + var jQueryel = $( this ); + + // If the media frame already exists, reopen it. + if ( frame ) { + frame.open(); + return; + } + + // Create the media frame. + frame = wp.media( + { + multiple: false, + library: { + //type: 'image' //Only allow images + }, + // Set the title of the modal. + title: jQueryel.data( 'choose' ), + // Customize the submit button. + button: { + // Set the text of the button. + text: jQueryel.data( 'update' ) + // Tell the button not to close the modal, since we're + // going to refresh the page when the image is selected. + + } + } + ); + + // When an image is selected, run a callback. + frame.on( + 'select', function() { + // Grab the selected attachment. + var attachment = frame.state().get( 'selection' ).first(); + frame.close(); + + //console.log(attachment.attributes.type); + + if ( attachment.attributes.type !== "image" ) { + return; + } + + selector.find( '.upload' ).val( attachment.attributes.url ); + selector.find( '.upload-id' ).val( attachment.attributes.id ); + selector.find( '.upload-height' ).val( attachment.attributes.height ); + selector.find( '.upload-width' ).val( attachment.attributes.width ); + redux_change( $( selector ).find( '.upload-id' ) ); + var thumbSrc = attachment.attributes.url; + if ( typeof attachment.attributes.sizes !== 'undefined' && typeof attachment.attributes.sizes.thumbnail !== 'undefined' ) { + thumbSrc = attachment.attributes.sizes.thumbnail.url; + } else if ( typeof attachment.attributes.sizes !== 'undefined' ) { + var height = attachment.attributes.height; + for ( var key in attachment.attributes.sizes ) { + var object = attachment.attributes.sizes[key]; + if ( object.height < height ) { + height = object.height; + thumbSrc = object.url; + } + } + } else { + thumbSrc = attachment.attributes.icon; + } + selector.find( '.upload-thumbnail' ).val( thumbSrc ); + if ( !selector.find( '.upload' ).hasClass( 'noPreview' ) ) { + selector.find( '.screenshot' ).empty().hide().append( '' ).slideDown( 'fast' ); + } + + selector.find( '.redux-remove-background' ).removeClass( 'hide' );//show "Remove" button + selector.find( '.redux-background-input-properties' ).slideDown(); + redux.field_objects.background.preview( selector.find( '.upload' ) ); + } + ); + + // Finally, open the modal. + frame.open(); + }; + + // Update the background preview + redux.field_objects.background.removeImage = function( selector ) { + + // This shouldn't have been run... + if ( !selector.find( '.redux-remove-background' ).addClass( 'hide' ) ) { + return; + } + selector.find( '.redux-remove-background' ).addClass( 'hide' ); //hide "Remove" button + + selector.find( '.upload' ).val( '' ); + selector.find( '.upload-id' ).val( '' ); + selector.find( '.upload-height' ).val( '' ); + selector.find( '.upload-width' ).val( '' ); + redux_change( $( selector ).find( '.upload-id' ) ); + selector.find( '.redux-background-input-properties' ).hide(); + var screenshot = selector.find( '.screenshot' ); + + // Hide the screenshot + screenshot.slideUp(); + + selector.find( '.remove-file' ).unbind(); + // We don't display the upload button if .upload-notice is present + // This means the user doesn't have the WordPress 3.5 Media Library Support + if ( $( '.section-upload .upload-notice' ).length > 0 ) { + $( '.redux-background-upload' ).remove(); + } + }; +})( jQuery ); diff --git a/redux/ReduxCore/inc/fields/background/field_background.min.js b/redux/ReduxCore/inc/fields/background/field_background.min.js new file mode 100644 index 0000000..0d2d15e --- /dev/null +++ b/redux/ReduxCore/inc/fields/background/field_background.min.js @@ -0,0 +1 @@ +!function(o){"use strict";redux.field_objects=redux.field_objects||{},redux.field_objects.background=redux.field_objects.background||{},redux.field_objects.background.init=function(e){e||(e=o(document).find(".redux-group-tab:visible").find(".redux-container-background:visible")),o(e).each(function(){var a=o(this),e=a;if(a.hasClass("redux-field-container")||(e=a.parents(".redux-field-container:first")),!e.is(":hidden")&&e.hasClass("redux-field-init")){e.removeClass("redux-field-init"),a.find(".redux-remove-background").unbind("click").on("click",function(e){return e.preventDefault(),redux.field_objects.background.removeImage(o(this).parents(".redux-container-background:first")),!1}),a.find(".redux-background-upload").unbind().on("click",function(e){redux.field_objects.background.addImage(e,o(this).parents(".redux-container-background:first"))}),a.find(".redux-background-input").on("change",function(){redux.field_objects.background.preview(o(this))}),a.find(".redux-color").wpColorPicker({change:function(e,i){o(this).val(i.color.toString()),redux_change(o(this)),o("#"+e.target.id+"-transparency").removeAttr("checked"),redux.field_objects.background.preview(o(this))},clear:function(e,i){o(this).val(i.color.toString()),redux_change(o(this).parent().find(".redux-color-init")),redux.field_objects.background.preview(o(this))}}),a.find(".redux-color").on("blur",function(){var e=o(this).val(),i="#"+o(this).attr("id");"transparent"===e?(o(this).parent().parent().find(".wp-color-result").css("background-color","transparent"),a.find(i+"-transparency").attr("checked","checked")):(colorValidate(this)===e&&0!==e.indexOf("#")&&o(this).val(o(this).data("oldcolor")),a.find(i+"-transparency").removeAttr("checked"))}),a.find(".redux-color").on("focus",function(){o(this).data("oldcolor",o(this).val())}),a.find(".redux-color").on("keyup",function(){var e=o(this).val(),i=colorValidate(this),r="#"+o(this).attr("id");"transparent"===e?(o(this).parent().parent().find(".wp-color-result").css("background-color","transparent"),a.find(r+"-transparency").attr("checked","checked")):(a.find(r+"-transparency").removeAttr("checked"),i&&i!==o(this).val()&&o(this).val(i))}),a.find(".color-transparency").on("click",function(){if(o(this).is(":checked"))a.find(".redux-saved-color").val(o("#"+o(this).data("id")).val()),a.find("#"+o(this).data("id")).val("transparent"),a.find("#"+o(this).data("id")).parent().parent().find(".wp-color-result").css("background-color","transparent");else if("transparent"===a.find("#"+o(this).data("id")).val()){var e=o(".redux-saved-color").val();""===e&&(e=o("#"+o(this).data("id")).data("default-color")),a.find("#"+o(this).data("id")).parent().parent().find(".wp-color-result").css("background-color",e),a.find("#"+o(this).data("id")).val(e)}redux.field_objects.background.preview(o(this)),redux_change(o(this))});var i={width:"resolve",triggerChange:!0,allowClear:!0},r=a.find(".select2_params");if(0').slideDown("fast"),d.find(".redux-remove-background").removeClass("hide"),d.find(".redux-background-input-properties").slideDown(),redux.field_objects.background.preview(d.find(".upload"))}}),n.open()},redux.field_objects.background.removeImage=function(e){e.find(".redux-remove-background").addClass("hide")&&(e.find(".redux-remove-background").addClass("hide"),e.find(".upload").val(""),e.find(".upload-id").val(""),e.find(".upload-height").val(""),e.find(".upload-width").val(""),redux_change(o(e).find(".upload-id")),e.find(".redux-background-input-properties").hide(),e.find(".screenshot").slideUp(),e.find(".remove-file").unbind(),0. + * + * @package ReduxFramework + * @subpackage Field_Background + * @author Dovy Paukstys + * @version 3.1.5 + */ +// Exit if accessed directly + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + +// Don't duplicate me! + if ( ! class_exists( 'ReduxFramework_background' ) ) { + + /** + * Main ReduxFramework_background class + * + * @since 3.1.5 + */ + class ReduxFramework_background { + + /** + * Field Constructor. + * Required - must call the parent constructor, then assign field and value to vars, and obviously call the render field function + * + * @since 3.1.5 + * @access public + * @return void + */ + function __construct( $field = array(), $value = '', $parent=null ) { + + $this->parent = $parent; + $this->field = $field; + $this->value = $value; + } + + /** + * Field Render Function. + * Takes the vars and outputs the HTML for the field in the settings + * + * @since 1.0.0 + * @access public + * @return void + */ + public function render() { + + $defaults = array( + 'background-color' => true, + 'background-repeat' => true, + 'background-attachment' => true, + 'background-position' => true, + 'background-image' => true, + 'background-gradient' => false, + 'background-clip' => false, + 'background-origin' => false, + 'background-size' => true, + 'preview_media' => false, + 'preview' => true, + 'preview_height' => '200px', + 'transparent' => true, + ); + + $this->field = wp_parse_args( $this->field, $defaults ); + + // No errors please + $defaults = array( + 'background-color' => '', + 'background-repeat' => '', + 'background-attachment' => '', + 'background-position' => '', + 'background-image' => '', + 'background-clip' => '', + 'background-origin' => '', + 'background-size' => '', + 'media' => array(), + ); + + $this->value = wp_parse_args( $this->value, $defaults ); + + $defaults = array( + 'id' => '', + 'width' => '', + 'height' => '', + 'thumbnail' => '', + ); + + $this->value['media'] = wp_parse_args( $this->value['media'], $defaults ); + + // select2 args + if ( isset( $this->field['select2'] ) ) { // if there are any let's pass them to js + $select2_params = json_encode( $this->field['select2'] ); + $select2_params = htmlspecialchars( $select2_params, ENT_QUOTES ); + + echo ''; + } + + if ( $this->field['background-color'] === true ) { + + if ( isset( $this->value['color'] ) && empty( $this->value['background-color'] ) ) { + $this->value['background-color'] = $this->value['color']; + } + + echo ''; + echo ''; + + if ( ! isset( $this->field['transparent'] ) || $this->field['transparent'] !== false ) { + $tChecked = ""; + if ( $this->value['background-color'] == "transparent" ) { + $tChecked = ' checked="checked"'; + } + echo ''; + } + + if ( $this->field['background-repeat'] === true || $this->field['background-position'] === true || $this->field['background-attachment'] === true ) { + echo '
    '; + } + } + + + if ( $this->field['background-repeat'] === true ) { + $array = array( + 'no-repeat' => 'No Repeat', + 'repeat' => 'Repeat All', + 'repeat-x' => 'Repeat Horizontally', + 'repeat-y' => 'Repeat Vertically', + 'inherit' => 'Inherit', + ); + echo ''; + } + + if ( $this->field['background-clip'] === true ) { + $array = array( + 'inherit' => 'Inherit', + 'border-box' => 'Border Box', + 'content-box' => 'Content Box', + 'padding-box' => 'Padding Box', + ); + echo ''; + } + + if ( $this->field['background-origin'] === true ) { + $array = array( + 'inherit' => 'Inherit', + 'border-box' => 'Border Box', + 'content-box' => 'Content Box', + 'padding-box' => 'Padding Box', + ); + echo ''; + } + + if ( $this->field['background-size'] === true ) { + $array = array( + 'inherit' => 'Inherit', + 'cover' => 'Cover', + 'contain' => 'Contain', + ); + echo ''; + } + + if ( $this->field['background-attachment'] === true ) { + $array = array( + 'fixed' => 'Fixed', + 'scroll' => 'Scroll', + 'inherit' => 'Inherit', + ); + echo ''; + } + + if ( $this->field['background-position'] === true ) { + $array = array( + 'left top' => 'Left Top', + 'left center' => 'Left center', + 'left bottom' => 'Left Bottom', + 'center top' => 'Center Top', + 'center center' => 'Center Center', + 'center bottom' => 'Center Bottom', + 'right top' => 'Right Top', + 'right center' => 'Right center', + 'right bottom' => 'Right Bottom', + ); + echo ''; + } + + if ( $this->field['background-image'] === true ) { + echo '
    '; + + if ( empty( $this->value ) && ! empty( $this->field['default'] ) ) { // If there are standard values and value is empty + if ( is_array( $this->field['default'] ) ) { + if ( ! empty( $this->field['default']['media']['id'] ) ) { + $this->value['media']['id'] = $this->field['default']['media']['id']; + } else if ( ! empty( $this->field['default']['id'] ) ) { + $this->value['media']['id'] = $this->field['default']['id']; + } + + if ( ! empty( $this->field['default']['url'] ) ) { + $this->value['background-image'] = $this->field['default']['url']; + } else if ( ! empty( $this->field['default']['media']['url'] ) ) { + $this->value['background-image'] = $this->field['default']['media']['url']; + } else if ( ! empty( $this->field['default']['background-image'] ) ) { + $this->value['background-image'] = $this->field['default']['background-image']; + } + } else { + if ( is_numeric( $this->field['default'] ) ) { // Check if it's an attachment ID + $this->value['media']['id'] = $this->field['default']; + } else { // Must be a URL + $this->value['background-image'] = $this->field['default']; + } + } + } + + + if ( empty( $this->value['background-image'] ) && ! empty( $this->value['media']['id'] ) ) { + $img = wp_get_attachment_image_src( $this->value['media']['id'], 'full' ); + $this->value['background-image'] = $img[0]; + $this->value['media']['width'] = $img[1]; + $this->value['media']['height'] = $img[2]; + } + + $hide = 'hide '; + + if ( ( isset( $this->field['preview_media'] ) && $this->field['preview_media'] === false ) ) { + $this->field['class'] .= " noPreview"; + } + + if ( ( ! empty( $this->field['background-image'] ) && $this->field['background-image'] === true ) || isset( $this->field['preview'] ) && $this->field['preview'] === false ) { + $hide = ''; + } + + $placeholder = isset( $this->field['placeholder'] ) ? $this->field['placeholder'] : __( 'No media selected', 'redux-framework' ); + + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + + //Preview + $hide = ''; + + if ( ( isset( $this->field['preview_media'] ) && $this->field['preview_media'] === false ) || empty( $this->value['background-image'] ) ) { + $hide = 'hide '; + } + + if ( empty( $this->value['media']['thumbnail'] ) && ! empty( $this->value['background-image'] ) ) { // Just in case + if ( ! empty( $this->value['media']['id'] ) ) { + $image = wp_get_attachment_image_src( $this->value['media']['id'], array( + 150, + 150 + ) ); + $this->value['media']['thumbnail'] = $image[0]; + } else { + $this->value['media']['thumbnail'] = $this->value['background-image']; + } + } + + echo '
    '; + echo ''; + echo ''; + echo ''; + echo '
    '; + + //Upload controls DIV + echo '
    '; + + //If the user has WP3.5+ show upload/remove button + echo '' . __( 'Upload', 'redux-framework' ) . ''; + + $hide = ''; + if ( empty( $this->value['background-image'] ) || $this->value['background-image'] == '' ) { + $hide = ' hide'; + } + + echo '' . __( 'Remove', 'redux-framework' ) . ''; + + echo '
    '; + } + + + /** + * Preview + * */ + if ( ! isset( $this->field['preview'] ) || $this->field['preview'] !== false ): + + $css = $this->getCSS(); + if ( empty( $css ) ) { + $css = "display:none;"; + } + $css .= "height: " . $this->field['preview_height'] . ";"; + echo '

     

    '; + + endif; + } + + /** + * Enqueue Function. + * If this field requires any scripts, or css define this function and register/enqueue the scripts/css + * + * @since 1.0.0 + * @access public + * @return void + */ + public function enqueue() { + if ( function_exists( 'wp_enqueue_media' ) ) { + wp_enqueue_media(); + } else { + if (!wp_script_is ( 'media-upload' )) { + wp_enqueue_script( 'media-upload' ); + } + } + + if (!wp_style_is ( 'select2-css' )) { + wp_enqueue_style( 'select2-css' ); + } + + if (!wp_style_is ( 'wp-color-picker' )) { + wp_enqueue_style( 'wp-color-picker' ); + } + + if (!wp_script_is ( 'redux-field-background-js' )) { + wp_enqueue_script( + 'redux-field-background-js', + ReduxFramework::$_url . 'inc/fields/background/field_background' . Redux_Functions::isMin() . '.js', + array( 'jquery', 'wp-color-picker', 'select2-js', 'redux-js' ), + time(), + true + ); + } + + if ($this->parent->args['dev_mode']) { + if (!wp_style_is ( 'redux-field-background-css' )) { + wp_enqueue_style( + 'redux-field-background-css', + ReduxFramework::$_url . 'inc/fields/background/field_background.css', + array(), + time(), + 'all' + ); + } + + if (!wp_style_is ( 'redux-color-picker-css' )) { + wp_enqueue_style( 'redux-color-picker-css' ); + } + } + } + + public static function getCSS( $value = array() ) { + + $css = ''; + + if ( ! empty( $value ) && is_array( $value ) ) { + foreach ( $value as $key => $value ) { + if ( ! empty( $value ) && $key != "media" ) { + if ( $key == "background-image" ) { + $css .= $key . ":url('" . $value . "');"; + } else { + $css .= $key . ":" . $value . ";"; + } + } + } + } + + return $css; + } + + public function output() { + $style = $this->getCSS( $this->value ); + + if ( ! empty( $style ) ) { + + if ( ! empty( $this->field['output'] ) && is_array( $this->field['output'] ) ) { + $keys = implode( ",", $this->field['output'] ); + $this->parent->outputCSS .= $keys . "{" . $style . '}'; + } + + if ( ! empty( $this->field['compiler'] ) && is_array( $this->field['compiler'] ) ) { + $keys = implode( ",", $this->field['compiler'] ); + $this->parent->compilerCSS .= $keys . "{" . $style . '}'; + } + } + } + } + } diff --git a/redux/ReduxCore/inc/fields/background/field_background.scss b/redux/ReduxCore/inc/fields/background/field_background.scss new file mode 100644 index 0000000..634f0f7 --- /dev/null +++ b/redux/ReduxCore/inc/fields/background/field_background.scss @@ -0,0 +1,59 @@ +.redux-main { + .redux-container-background { + .redux-background-position, + .redux-background-position select, + .redux-background-attachment, + .redux-background-attachment select, + .redux-background-clip, + .redux-background-clip select, + .redux-background-origin, + .redux-background-origin select, + .redux-background-size, + .redux-background-size select, + .redux-background-repeat, + .redux-background-repeat select { + width:200px !important; + margin-right: 10px; + margin-bottom: 7px; + } + + .background-preview { + display:block; + width: 100%; + margin: 5px 0 10px; + border:1px dotted lightgray; + } + + .select2-container { + margin-right: 10px; + margin-bottom: 10px; + } + + .wp-picker-container { + margin-bottom: 10px; + } + + .upload { + width: 100%; + margin-bottom: 8px; + } + } + + .redux-container-select { + li.ui-state-highlight { + height: 20px; + margin-top:2px; + margin-left: 5px; + width: 64px; + margin-bottom: 0; + } + } +} + +.wp-customizer { + .redux-container-background { + .redux-background-position, .redux-background-position select, .redux-background-attachment, .redux-background-attachment select, .redux-background-clip, .redux-background-clip select, .redux-background-origin, .redux-background-origin select, .redux-background-size, .redux-background-size select, .redux-background-repeat, .redux-background-repeat select { + width: 100% !important; + } + } +} diff --git a/redux/ReduxCore/inc/fields/border/field_border.css b/redux/ReduxCore/inc/fields/border/field_border.css new file mode 100644 index 0000000..dd931ce --- /dev/null +++ b/redux/ReduxCore/inc/fields/border/field_border.css @@ -0,0 +1 @@ +.redux-container-border .select2-container{float:left;display:block;margin-right:10px}.redux-container-border .select_wrapper{float:left;width:inherit}.redux-container-border .select_wrapper select{width:80px;float:left}.redux-container-border .field-border-input{margin-right:10px;margin-bottom:7px}.redux-container-border .wp-picker-container{margin-top:2px}@media screen and (max-width: 782px){.redux-container-border .field-border-input input{display:inline-block !important;width:100px !important}.redux-container-border .field-border-input .add-on{padding:7px 4px;font-size:16px;line-height:1.5}.redux-container-border .select_wrapper{margin-top:6px}} diff --git a/redux/ReduxCore/inc/fields/border/field_border.css.map b/redux/ReduxCore/inc/fields/border/field_border.css.map new file mode 100644 index 0000000..14165e5 --- /dev/null +++ b/redux/ReduxCore/inc/fields/border/field_border.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "AACI,0CAAmB;EACf,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,KAAK;EACd,YAAY,EAAE,IAAI;AAGtB,uCAAgB;EACZ,KAAK,EAAE,IAAI;EAMX,KAAK,EAAE,OAAO;EALd,8CAAO;IACH,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;AAMnB,2CAAoB;EAChB,YAAY,EAAE,IAAI;EAClB,aAAa,EAAE,GAAG;AAGtB,4CAAqB;EACjB,UAAU,EAAE,GAAG;;AAIvB,oCAAqC;EAGzB,iDAAM;IACF,OAAO,EAAE,uBAAuB;IAChC,KAAK,EAAE,gBAAgB;EAG3B,mDAAQ;IACJ,OAAO,EAAE,OAAO;IAChB,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,GAAG;EAIxB,uCAAgB;IACZ,UAAU,EAAE,GAAG", +"sources": ["field_border.scss"], +"names": [], +"file": "field_border.css" +} \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/border/field_border.js b/redux/ReduxCore/inc/fields/border/field_border.js new file mode 100644 index 0000000..62f43bc --- /dev/null +++ b/redux/ReduxCore/inc/fields/border/field_border.js @@ -0,0 +1,131 @@ +/* + Field Border (border) + */ + +/*global redux_change, wp, redux*/ + +(function( $ ) { + "use strict"; + + redux.field_objects = redux.field_objects || {}; + redux.field_objects.border = redux.field_objects.border || {}; + + redux.field_objects.border.init = function( selector ) { + if ( !selector ) { + selector = $( document ).find( ".redux-group-tab:visible" ).find( '.redux-container-border:visible' ); + } + + $( selector ).each( + function() { + var el = $( this ); + var parent = el; + + if ( !el.hasClass( 'redux-field-container' ) ) { + parent = el.parents( '.redux-field-container:first' ); + } + if ( parent.is( ":hidden" ) ) { // Skip hidden fields + return; + } + if ( parent.hasClass( 'redux-field-init' ) ) { + parent.removeClass( 'redux-field-init' ); + } else { + return; + } + el.find( ".redux-border-top, .redux-border-right, .redux-border-bottom, .redux-border-left, .redux-border-all" ).numeric( + { + allowMinus: false + } + ); + + var default_params = { + triggerChange: true, + allowClear: true + }; + + var select2_handle = el.find( '.redux-container-border' ).find( '.select2_params' ); + + if ( select2_handle.size() > 0 ) { + var select2_params = select2_handle.val(); + + select2_params = JSON.parse( select2_params ); + default_params = $.extend( {}, default_params, select2_params ); + } + + el.find( ".redux-border-style" ).select2( default_params ); + + el.find( '.redux-border-input' ).on( + 'change', function() { + var units = $( this ).parents( '.redux-field:first' ).find( '.field-units' ).val(); + if ( $( this ).parents( '.redux-field:first' ).find( '.redux-border-units' ).length !== 0 ) { + units = $( this ).parents( '.redux-field:first' ).find( '.redux-border-units option:selected' ).val(); + } + var value = $( this ).val(); + if ( typeof units !== 'undefined' && value ) { + value += units; + } + if ( $( this ).hasClass( 'redux-border-all' ) ) { + $( this ).parents( '.redux-field:first' ).find( '.redux-border-value' ).each( + function() { + $( this ).val( value ); + } + ); + } else { + $( '#' + $( this ).attr( 'rel' ) ).val( value ); + } + } + ); + + el.find( '.redux-border-units' ).on( + 'change', function() { + $( this ).parents( '.redux-field:first' ).find( '.redux-border-input' ).change(); + } + ); + + el.find( '.redux-color-init' ).wpColorPicker( + { + change: function( e, ui ) { + $( this ).val( ui.color.toString() ); + redux_change( $( this ) ); + el.find( '#' + e.target.getAttribute( 'data-id' ) + '-transparency' ).removeAttr( 'checked' ); + }, + + clear: function( e, ui ) { + $( this ).val( ui.color.toString() ); + redux_change( $( this ).parent().find( '.redux-color-init' ) ); + } + } + ); + + el.find( '.redux-color' ).on( + 'keyup', function() { + var color = colorValidate( this ); + + if ( color && color !== $( this ).val() ) { + $( this ).val( color ); + } + } + ); + + // Replace and validate field on blur + el.find( '.redux-color' ).on( + 'blur', function() { + var value = $( this ).val(); + + if ( colorValidate( this ) === value ) { + if ( value.indexOf( "#" ) !== 0 ) { + $( this ).val( $( this ).data( 'oldcolor' ) ); + } + } + } + ); + + // Store the old valid color on keydown + el.find( '.redux-color' ).on( + 'keydown', function() { + $( this ).data( 'oldkeypress', $( this ).val() ); + } + ); + } + ); + }; +})( jQuery ); \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/border/field_border.min.js b/redux/ReduxCore/inc/fields/border/field_border.min.js new file mode 100644 index 0000000..b21df9f --- /dev/null +++ b/redux/ReduxCore/inc/fields/border/field_border.min.js @@ -0,0 +1 @@ +!function(n){"use strict";redux.field_objects=redux.field_objects||{},redux.field_objects.border=redux.field_objects.border||{},redux.field_objects.border.init=function(e){e||(e=n(document).find(".redux-group-tab:visible").find(".redux-container-border:visible")),n(e).each(function(){var i=n(this),e=i;if(i.hasClass("redux-field-container")||(e=i.parents(".redux-field-container:first")),!e.is(":hidden")&&e.hasClass("redux-field-init")){e.removeClass("redux-field-init"),i.find(".redux-border-top, .redux-border-right, .redux-border-bottom, .redux-border-left, .redux-border-all").numeric({allowMinus:!1});var r={triggerChange:!0,allowClear:!0},d=i.find(".redux-container-border").find(".select2_params");if(0. + * + * @package Redux_Field + * @subpackage Border + * @version 3.0.0 + */ + +// Exit if accessed directly +if ( ! defined( 'ABSPATH' ) ) { + exit; +} + +// Don't duplicate me! +if ( ! class_exists( 'ReduxFramework_border' ) ) { + + class ReduxFramework_border { + + public $parent; + public $field; + public $value; + + /** + * Field Constructor. + * Required - must call the parent constructor, then assign field and value to vars, and obviously call the render field function + * + * @since ReduxFramework 1.0.0 + */ + function __construct( $field = array(), $value = '', $parent=null ) { + + $this->parent = $parent; + $this->field = $field; + $this->value = $value; + } //function + + private function stripAlphas($s) { + + // Regex is our friend. THERE ARE FOUR LIGHTS!! + return preg_replace('/[^\d.-]/', '', $s); + } + + /** + * Field Render Function. + * Takes the vars and outputs the HTML for the field in the settings + * + * @since ReduxFramework 1.0.0 + */ + function render() { + + // No errors please + $defaults = array( + 'top' => true, + 'bottom' => true, + 'all' => true, + 'style' => true, + 'color' => true, + 'left' => true, + 'right' => true, + ); + + $this->field = wp_parse_args( $this->field, $defaults ); + + $defaults = array( + 'top' => '', + 'right' => '', + 'bottom' => '', + 'left' => '', + 'color' => '', + 'style' => '', + ); + + $this->value = wp_parse_args( $this->value, $defaults ); + + $value = array( + 'top' => isset( $this->value['border-top'] ) ? filter_var( $this->value['border-top'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION ) : filter_var( $this->value['top'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION ), + 'right' => isset( $this->value['border-right'] ) ? filter_var( $this->value['border-right'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION ) : filter_var( $this->value['right'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION ), + 'bottom' => isset( $this->value['border-bottom'] ) ? filter_var( $this->value['border-bottom'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION ) : filter_var( $this->value['bottom'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION ), + 'left' => isset( $this->value['border-left'] ) ? filter_var( $this->value['border-left'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION ) : filter_var( $this->value['left'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION ), + 'color' => isset( $this->value['border-color'] ) ? $this->value['border-color'] : $this->value['color'], + 'style' => isset( $this->value['border-style'] ) ? $this->value['border-style'] : $this->value['style'] + ); + + if ( ( isset( $this->value['width'] ) || isset( $this->value['border-width'] ) ) ) { + if ( isset( $this->value['border-width'] ) && ! empty( $this->value['border-width'] ) ) { + $this->value['width'] = $this->value['border-width']; + } + + $this->value['width'] = $this->stripAlphas($this->value['width']); + + $value['top'] = $this->value['width']; + $value['right'] = $this->value['width']; + $value['bottom'] = $this->value['width']; + $value['left'] = $this->value['width']; + } + + $this->value = $value; + + $defaults = array( + 'top' => '', + 'right' => '', + 'bottom' => '', + 'left' => '', + ); + + $this->value = wp_parse_args( $this->value, $defaults ); + + if ( isset( $this->field['select2'] ) ) { // if there are any let's pass them to js + $select2_params = json_encode( $this->field['select2'] ); + $select2_params = htmlspecialchars( $select2_params, ENT_QUOTES ); + + echo ''; + } + + + echo ''; + + if ( isset( $this->field['all'] ) && $this->field['all'] == true ) { + echo '
    '; + } + + echo ''; + echo ''; + echo ''; + echo ''; + + if ( ! isset( $this->field['all'] ) || $this->field['all'] !== true ) { + /** + * Top + * */ + if ( $this->field['top'] === true ) { + echo '
    '; + } + + /** + * Right + * */ + if ( $this->field['right'] === true ) { + echo '
    '; + } + + /** + * Bottom + * */ + if ( $this->field['bottom'] === true ) { + echo '
    '; + } + + /** + * Left + * */ + if ( $this->field['left'] === true ) { + echo '
    '; + } + } + + /** + * Border-style + * */ + if ( $this->field['style'] != false ) { + $options = array( + 'solid' => 'Solid', + 'dashed' => 'Dashed', + 'dotted' => 'Dotted', + 'double' => "Double", + 'none' => 'None' + ); + echo ''; + } else { + echo ''; + } + + /** + * Color + * */ + if ( $this->field['color'] != false ) { + $default = isset( $this->field['default']['border-color'] ) ? $this->field['default']['border-color'] : ''; + + + if ( empty( $default ) ) { + $default = ( isset( $this->field['default']['color'] ) ) ? $this->field['default']['color'] : '#ffffff'; + } + + echo ''; + } else { + echo ''; + } + } + + //function + + /** + * Enqueue Function. + * If this field requires any scripts, or css define this function and register/enqueue the scripts/css + * + * @since ReduxFramework 1.0.0 + */ + function enqueue() { + $min = Redux_Functions::isMin(); + + if (!wp_style_is ( 'select2-css' )) { + wp_enqueue_style( 'select2-css' ); + } + + if (!wp_style_is ( 'wp-color-picker' )) { + wp_enqueue_style( 'wp-color-picker' ); + } + + if (!wp_script_is ( 'redux-field-border-js' )) { + wp_enqueue_script( + 'redux-field-border-js', + ReduxFramework::$_url . 'inc/fields/border/field_border' . $min . '.js', + array( 'jquery', 'select2-js', 'wp-color-picker', 'redux-js' ), + time(), + true + ); + } + + if ($this->parent->args['dev_mode']) { + if (!wp_style_is ( 'redux-color-picker-css' )) { + wp_enqueue_style( 'redux-color-picker-css' ); + } + + if (!wp_style_is ( 'redux-field-border-css' )) { + wp_enqueue_style( + 'redux-field-border-css', + ReduxFramework::$_url . 'inc/fields/border/field_border.css', + array(), + time(), + 'all' + ); + } + } + } //function + + public function output() { + if ( isset( $this->field['all'] ) && true == $this->field['all'] ) { + $borderWidth = isset( $this->value['border-width'] ) ? $this->value['border-width'] : '0px'; + $val = isset( $this->value['border-top'] ) ? $this->value['border-top'] : $borderWidth; + + $this->value['border-top'] = $val; + $this->value['border-bottom'] = $val; + $this->value['border-left'] = $val; + $this->value['border-right'] = $val; + } + + $cleanValue = array( + 'color' => ! empty( $this->value['border-color'] ) ? $this->value['border-color'] : '', + 'style' => ! empty( $this->value['border-style'] ) ? $this->value['border-style'] : '' + ); + + $borderWidth = ''; + if ( isset( $this->value['border-width'] ) ) { + $borderWidth = $this->value['border-width']; + } + + $this->field['top'] = isset( $this->field['top'] ) ? $this->field['top'] : true; + $this->field['bottom'] = isset( $this->field['bottom'] ) ? $this->field['bottom'] : true; + $this->field['left'] = isset( $this->field['left'] ) ? $this->field['left'] : true; + $this->field['right'] = isset( $this->field['right'] ) ? $this->field['right'] : true; + + if ( $this->field['top'] === true ) { + $cleanValue['top'] = ! empty( $this->value['border-top'] ) ? $this->value['border-top'] : $borderWidth; + } + + if ( $this->field['bottom'] == true ) { + $cleanValue['bottom'] = ! empty( $this->value['border-bottom'] ) ? $this->value['border-bottom'] : $borderWidth; + } + + if ( $this->field['left'] === true ) { + $cleanValue['left'] = ! empty( $this->value['border-left'] ) ? $this->value['border-left'] : $borderWidth; + } + + if ( $this->field['right'] === true ) { + $cleanValue['right'] = ! empty( $this->value['border-right'] ) ? $this->value['border-right'] : $borderWidth; + } + + $style = ""; + + //absolute, padding, margin + if ( ! isset( $this->field['all'] ) || $this->field['all'] != true ) { + foreach ( $cleanValue as $key => $value ) { + if ( $key == "color" || $key == "style" ) { + continue; + } + if (!empty($value)) { + $style .= 'border-' . $key . ':' . $value . ' ' . $cleanValue['style'] . ' ' . $cleanValue['color'] . ';'; + } + } + } else { + if (!empty($cleanValue['top'])) { + $style .= 'border:' . $cleanValue['top'] . ' ' . $cleanValue['style'] . ' ' . $cleanValue['color'] . ';'; + } + } + + if ( ! empty( $this->field['output'] ) && is_array( $this->field['output'] ) ) { + $keys = implode( ",", $this->field['output'] ); + + if (!empty($style)) { + $this->parent->outputCSS .= $keys . "{" . $style . '}'; + } + } + + if ( ! empty( $this->field['compiler'] ) && is_array( $this->field['compiler'] ) ) { + $keys = implode( ",", $this->field['compiler'] ); + + if (!empty($style)) { + $this->parent->compilerCSS .= $keys . "{" . $style . '}'; + } + } + } + } //class +} \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/border/field_border.scss b/redux/ReduxCore/inc/fields/border/field_border.scss new file mode 100644 index 0000000..55f2197 --- /dev/null +++ b/redux/ReduxCore/inc/fields/border/field_border.scss @@ -0,0 +1,47 @@ +.redux-container-border { + .select2-container { + float: left; + display: block; + margin-right: 10px; + } + + .select_wrapper { + float: left; + select { + width: 80px; + float: left; + + } + width: inherit; + } + + .field-border-input { + margin-right: 10px; + margin-bottom: 7px; + } + + .wp-picker-container { + margin-top: 2px; + } +} + +@media screen and (max-width: 782px) { + .redux-container-border { + .field-border-input { + input { + display: inline-block !important; + width: 100px !important; + } + + .add-on { + padding: 7px 4px; + font-size: 16px; + line-height: 1.5; + } + } + + .select_wrapper { + margin-top: 6px; + } + } +} diff --git a/redux/ReduxCore/inc/fields/button_set/field_button_set.js b/redux/ReduxCore/inc/fields/button_set/field_button_set.js new file mode 100644 index 0000000..9e8eb36 --- /dev/null +++ b/redux/ReduxCore/inc/fields/button_set/field_button_set.js @@ -0,0 +1,93 @@ +/* + Field Button Set (button_set) + */ + +/*global jQuery, document, redux*/ + +(function( $ ) { + "use strict"; + + redux.field_objects = redux.field_objects || {}; + redux.field_objects.button_set = redux.field_objects.button_set || {}; + + $( document ).ready( + function() { + if ( $.fn.button.noConflict !== undefined ) { + var btn = $.fn.button.noConflict(); + $.fn.btn = btn; + } + } + ); + + redux.field_objects.button_set.init = function( selector ) { + if ( !selector ) { + selector = $( document ).find( ".redux-group-tab:visible" ).find( '.redux-container-button_set:visible' ); + } + + $( selector ).each( + function() { + var el = $( this ); + var parent = el; + + if ( !el.hasClass( 'redux-field-container' ) ) { + parent = el.parents( '.redux-field-container:first' ); + } + + if ( parent.is( ":hidden" ) ) { // Skip hidden fields + return; + } + + if ( parent.hasClass( 'redux-field-init' ) ) { + parent.removeClass( 'redux-field-init' ); + } else { + return; + } + + el.find( '.buttonset' ).each( + function() { + if ( $( this ).is( ':checkbox' ) ) { + $( this ).find( '.buttonset-item' ).button(); + } + + $( this ).buttonset(); + } + ); + + el.find( '.buttonset-item.multi' ).on( + 'click', function( e ) { + var val = ''; + var name = ''; + + var id = $(this).attr('id'); + var empty = $( this ).parent().find( '.buttonset-empty' ); + var idName = empty.attr( 'data-name' ); + var isChecked = false; + + $( this ).parent().find('.buttonset-item').each(function(){ + if ($( this ).is( ':checked' )) { + isChecked = true; + } + }); + + if (isChecked) { + empty.attr('name', ''); + } else { + empty.attr('name', idName); + } + + if ( $( this ).is( ':checked' ) ) { + val = $( this ).attr( 'data-val' ); + name = idName + '[]'; + + } + + $( this ).parent().find( '#' + id + '-hidden.buttonset-check' ).val( val ); + $( this ).parent().find( '#' + id + '-hidden.buttonset-check' ).attr( 'name', name ); + + redux_change( $( this ) ); + } + ); + } + ); + }; +})( jQuery ); \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/button_set/field_button_set.min.js b/redux/ReduxCore/inc/fields/button_set/field_button_set.min.js new file mode 100644 index 0000000..3e525e2 --- /dev/null +++ b/redux/ReduxCore/inc/fields/button_set/field_button_set.min.js @@ -0,0 +1 @@ +!function(u){"use strict";redux.field_objects=redux.field_objects||{},redux.field_objects.button_set=redux.field_objects.button_set||{},u(document).ready(function(){if(void 0!==u.fn.button.noConflict){var t=u.fn.button.noConflict();u.fn.btn=t}}),redux.field_objects.button_set.init=function(t){t||(t=u(document).find(".redux-group-tab:visible").find(".redux-container-button_set:visible")),u(t).each(function(){var t=u(this),e=t;t.hasClass("redux-field-container")||(e=t.parents(".redux-field-container:first")),e.is(":hidden")||e.hasClass("redux-field-init")&&(e.removeClass("redux-field-init"),t.find(".buttonset").each(function(){u(this).is(":checkbox")&&u(this).find(".buttonset-item").button(),u(this).buttonset()}),t.find(".buttonset-item.multi").on("click",function(t){var e="",n="",i=u(this).attr("id"),s=u(this).parent().find(".buttonset-empty"),d=s.attr("data-name"),o=!1;u(this).parent().find(".buttonset-item").each(function(){u(this).is(":checked")&&(o=!0)}),o?s.attr("name",""):s.attr("name",d),u(this).is(":checked")&&(e=u(this).attr("data-val"),n=d+"[]"),u(this).parent().find("#"+i+"-hidden.buttonset-check").val(e),u(this).parent().find("#"+i+"-hidden.buttonset-check").attr("name",n),redux_change(u(this))}))})}}(jQuery); \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/button_set/field_button_set.php b/redux/ReduxCore/inc/fields/button_set/field_button_set.php new file mode 100644 index 0000000..9f5cf59 --- /dev/null +++ b/redux/ReduxCore/inc/fields/button_set/field_button_set.php @@ -0,0 +1,178 @@ +. + * + * @package Redux_Field + * @subpackage Button_Set + * @author Daniel J Griffiths (Ghost1227) + * @author Dovy Paukstys + * @author Kevin Provance (kprovance) + * @version 3.0.0 + */ + +// Exit if accessed directly + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + +// Don't duplicate me! + if ( ! class_exists( 'ReduxFramework_button_set' ) ) { + + /** + * Main ReduxFramework_button_set class + * + * @since 1.0.0 + */ + class ReduxFramework_button_set { + + public $parent; + public $field; + public $value; + + /** + * Holds configuration settings for each field in a model. + * Defining the field options + * @param array $arr (See above) + * + * @return Object A new editor object. + * */ + static $_properties = array( + 'id' => 'Identifier', + ); + + /** + * Field Constructor. + * Required - must call the parent constructor, then assign field and value to vars, and obviously call the render field function + * + * @since 1.0.0 + * @access public + * @return void + */ + function __construct( $field = array(), $value = '', $parent=null ) { + + $this->parent = $parent; + $this->field = $field; + $this->value = $value; + } + + /** + * Field Render Function. + * Takes the vars and outputs the HTML for the field in the settings + * + * @since 1.0.0 + * @access public + * @return void + */ + public function render() { + if ( !empty( $this->field['data'] ) && empty( $this->field['options'] ) ) { + if ( empty( $this->field['args'] ) ) { + $this->field['args'] = array(); + } + + $this->field['options'] = $this->parent->get_wordpress_data( $this->field['data'], $this->field['args'] ); + + if ( empty( $this->field['options'] ) ) { + return; + } + } + + $is_multi = (isset( $this->field['multi'] ) && $this->field['multi'] == true) ? true: false; + + $name = $this->field['name'] . $this->field['name_suffix']; + + // multi => true renders the field multi-selectable (checkbox vs radio) + echo '
    '; + + if ($is_multi) { + $s = ''; + + if (empty($this->value)) { + $s = $name; + } + + echo ''; + + $name = $name . '[]'; + } + + foreach ( $this->field['options'] as $k => $v ) { + $selected = ''; + + if ( $is_multi ) { + $post_value = ''; + $type = "checkbox"; + + if ( ! empty( $this->value ) && ! is_array( $this->value ) ) { + $this->value = array( $this->value ); + } + + if ( is_array( $this->value ) && in_array( $k, $this->value ) ) { + $selected = 'checked="checked"'; + $post_value = $k; + } + } else { + $type = "radio"; + + if ( is_scalar( $this->value ) ) { + $selected = checked( $this->value, $k, false ); + } + } + + $the_val = $k; + $the_name = $name; + $data_val = ''; + $multi_class = ''; + + if ($is_multi) { + $the_val = ''; + $the_name = ''; + $data_val = ' data-val="' . $k . '"'; + $hidden_name = $name; + $multi_class = 'multi '; + + if ($post_value == '') { + $hidden_name = ''; + } + + echo ''; + } + + echo ''; + echo ''; + } + + echo '
    '; + } + + /** + * Enqueue Function. + * If this field requires any scripts, or css define this function and register/enqueue the scripts/css + * + * @since 1.0.0 + * @access public + * @return void + */ + public function enqueue() { + + if (!wp_script_is ( 'redux-field-button-set-js' )) { + wp_enqueue_script( + 'redux-field-button-set-js', + ReduxFramework::$_url . 'inc/fields/button_set/field_button_set' . Redux_Functions::isMin() . '.js', + array( 'jquery', 'jquery-ui-core', 'redux-js' ), + time(), + true + ); + } + } + } + } \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/checkbox/field_checkbox.css b/redux/ReduxCore/inc/fields/checkbox/field_checkbox.css new file mode 100644 index 0000000..f50c856 --- /dev/null +++ b/redux/ReduxCore/inc/fields/checkbox/field_checkbox.css @@ -0,0 +1 @@ +.redux-container-checkbox label{vertical-align:top;width:100%}.redux-container-checkbox label .field-desc{margin-top:0;float:left;width:93%;clear:none} diff --git a/redux/ReduxCore/inc/fields/checkbox/field_checkbox.css.map b/redux/ReduxCore/inc/fields/checkbox/field_checkbox.css.map new file mode 100644 index 0000000..57efdbd --- /dev/null +++ b/redux/ReduxCore/inc/fields/checkbox/field_checkbox.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "AACI,+BAAM;EACF,cAAc,EAAE,GAAG;EACnB,KAAK,EAAE,IAAI;EAEX,2CAAY;IACR,UAAU,EAAE,CAAC;IACb,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,IAAI", +"sources": ["field_checkbox.scss"], +"names": [], +"file": "field_checkbox.css" +} \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/checkbox/field_checkbox.js b/redux/ReduxCore/inc/fields/checkbox/field_checkbox.js new file mode 100644 index 0000000..ed72de3 --- /dev/null +++ b/redux/ReduxCore/inc/fields/checkbox/field_checkbox.js @@ -0,0 +1,55 @@ +/** + * Redux Checkbox + * Dependencies : jquery + * Feature added by : Dovy Paukstys + * Date : 17 June 2014 + */ + +/*global redux_change, wp, redux*/ + +(function( $ ) { + "use strict"; + + redux.field_objects = redux.field_objects || {}; + redux.field_objects.checkbox = redux.field_objects.checkbox || {}; + + $( document ).ready( + function() { + //redux.field_objects.checkbox.init(); + } + ); + + redux.field_objects.checkbox.init = function( selector ) { + if ( !selector ) { + selector = $( document ).find( ".redux-group-tab:visible" ).find( '.redux-container-checkbox:visible' ); + } + + $( selector ).each( + function() { + var el = $( this ); + var parent = el; + if ( !el.hasClass( 'redux-field-container' ) ) { + parent = el.parents( '.redux-field-container:first' ); + } + if ( parent.is( ":hidden" ) ) { // Skip hidden fields + return; + } + if ( parent.hasClass( 'redux-field-init' ) ) { + parent.removeClass( 'redux-field-init' ); + } else { + return; + } + el.find( '.checkbox' ).on( + 'click', function( e ) { + var val = 0; + if ( $( this ).is( ':checked' ) ) { + val = $( this ).parent().find( '.checkbox-check' ).attr( 'data-val' ); + } + $( this ).parent().find( '.checkbox-check' ).val( val ); + redux_change( $( this ) ); + } + ); + } + ); + }; +})( jQuery ); diff --git a/redux/ReduxCore/inc/fields/checkbox/field_checkbox.min.js b/redux/ReduxCore/inc/fields/checkbox/field_checkbox.min.js new file mode 100644 index 0000000..2d46f32 --- /dev/null +++ b/redux/ReduxCore/inc/fields/checkbox/field_checkbox.min.js @@ -0,0 +1 @@ +!function(c){"use strict";redux.field_objects=redux.field_objects||{},redux.field_objects.checkbox=redux.field_objects.checkbox||{},c(document).ready(function(){}),redux.field_objects.checkbox.init=function(e){e||(e=c(document).find(".redux-group-tab:visible").find(".redux-container-checkbox:visible")),c(e).each(function(){var e=c(this),i=e;e.hasClass("redux-field-container")||(i=e.parents(".redux-field-container:first")),i.is(":hidden")||i.hasClass("redux-field-init")&&(i.removeClass("redux-field-init"),e.find(".checkbox").on("click",function(e){var i=0;c(this).is(":checked")&&(i=c(this).parent().find(".checkbox-check").attr("data-val")),c(this).parent().find(".checkbox-check").val(i),redux_change(c(this))}))})}}(jQuery); \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/checkbox/field_checkbox.php b/redux/ReduxCore/inc/fields/checkbox/field_checkbox.php new file mode 100644 index 0000000..a43d2f0 --- /dev/null +++ b/redux/ReduxCore/inc/fields/checkbox/field_checkbox.php @@ -0,0 +1,163 @@ +. + * + * @package ReduxFramework + * @subpackage Field_Checkbox + * @author Daniel J Griffiths (Ghost1227) + * @author Dovy Paukstys + * @version 3.0.0 + */ +// Exit if accessed directly +if ( !defined ( 'ABSPATH' ) ) { + exit; +} + +// Don't duplicate me! +if ( !class_exists ( 'ReduxFramework_checkbox' ) ) { + + /** + * Main ReduxFramework_checkbox class + * + * @since 1.0.0 + */ + class ReduxFramework_checkbox { + + /** + * Field Constructor. + * Required - must call the parent constructor, then assign field and value to vars, and obviously call the render field function + * + * @since 1.0.0 + * @access public + * @return void + */ + function __construct ( $field = array(), $value = '', $parent=null ) { + + $this->parent = $parent; + $this->field = $field; + $this->value = $value; + } + + /** + * Field Render Function. + * Takes the vars and outputs the HTML for the field in the settings + * + * @since 1.0.0 + * @access public + * @return void + */ + public function render () { + if( !empty( $this->field['data'] ) && empty( $this->field['options'] ) ) { + if (empty($this->field['args'])) { + $this->field['args'] = array(); + } + + $this->field['options'] = $this->parent->get_wordpress_data($this->field['data'], $this->field['args']); + if (empty($this->field['options'])) { + return; + } + } + + $this->field[ 'data_class' ] = ( isset ( $this->field[ 'multi_layout' ] ) ) ? 'data-' . $this->field[ 'multi_layout' ] : 'data-full'; + + if ( !empty ( $this->field[ 'options' ] ) && ( is_array ( $this->field[ 'options' ] ) || is_array ( $this->field[ 'default' ] ) ) ) { + + echo '
      '; + + if ( !isset ( $this->value ) ) { + $this->value = array(); + } + + if ( !is_array ( $this->value ) ) { + $this->value = array(); + } + + if ( empty ( $this->field[ 'options' ] ) && isset ( $this->field[ 'default' ] ) && is_array ( $this->field[ 'default' ] ) ) { + $this->field[ 'options' ] = $this->field[ 'default' ]; + } + + foreach ( $this->field[ 'options' ] as $k => $v ) { + + if ( empty ( $this->value[ $k ] ) ) { + $this->value[ $k ] = ""; + } + + echo '
    • '; + echo ''; + echo '
    • '; + } + + echo '
    '; + } else if ( empty ( $this->field[ 'data' ] ) ) { + echo '
    • '; + + if ( !empty( $this->field[ 'label' ] ) ) { + echo ''; + } + + echo '
    '; + } + } + + /** + * Enqueue Function. + * If this field requires any scripts, or css define this function and register/enqueue the scripts/css + * + * @since 1.0.0 + * @access public + * @return void + */ + public function enqueue () { + + if ($this->parent->args['dev_mode']) { + wp_enqueue_style ( + 'redux-field-checkbox-css', + ReduxFramework::$_url . 'inc/fields/checkbox/field_checkbox.css', + array(), + time (), + 'all' + ); + } + + wp_enqueue_script ( + 'redux-field-checkbox-js', + ReduxFramework::$_url . 'inc/fields/checkbox/field_checkbox' . Redux_Functions::isMin () . '.js', + array( 'jquery', 'redux-js' ), + time (), + true + ); + } + } +} diff --git a/redux/ReduxCore/inc/fields/checkbox/field_checkbox.scss b/redux/ReduxCore/inc/fields/checkbox/field_checkbox.scss new file mode 100644 index 0000000..7dca5eb --- /dev/null +++ b/redux/ReduxCore/inc/fields/checkbox/field_checkbox.scss @@ -0,0 +1,13 @@ +.redux-container-checkbox { + label { + vertical-align: top; + width: 100%; + + .field-desc { + margin-top: 0; + float: left; + width: 93%; + clear: none; + } + } +} \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/color/field_color.js b/redux/ReduxCore/inc/fields/color/field_color.js new file mode 100644 index 0000000..3c26f06 --- /dev/null +++ b/redux/ReduxCore/inc/fields/color/field_color.js @@ -0,0 +1,175 @@ +/* + Field Color (color) + */ + +/*global jQuery, document, redux_change, redux*/ + +(function( $ ) { + 'use strict'; + + redux.field_objects = redux.field_objects || {}; + redux.field_objects.color = redux.field_objects.color || {}; + + $( document ).ready( + function() { + + } + ); + + redux.field_objects.color.init = function( selector ) { + + if ( !selector ) { + selector = $( document ).find( ".redux-group-tab:visible" ).find( '.redux-container-color:visible' ); + } + + $( selector ).each( + function() { + + var el = $( this ); + var parent = el; + + if ( !el.hasClass( 'redux-field-container' ) ) { + parent = el.parents( '.redux-field-container:first' ); + } + if ( parent.is( ":hidden" ) ) { // Skip hidden fields + return; + } + if ( parent.hasClass( 'redux-field-init' ) ) { + parent.removeClass( 'redux-field-init' ); + } else { + return; + } +// var $control = el.find( '.redux-color-init' ), +// +// value = $control.val().replace( /\s+/g, '' ), +// alpha_val = 100, +// $alpha, $alpha_output; +// //console.log($control); +// if ( value.match( /rgba\(\d+\,\d+\,\d+\,([^\)]+)\)/ ) ) { +// alpha_val = parseFloat( value.match( /rgba\(\d+\,\d+\,\d+\,([^\)]+)\)/ )[ 1 ] ) * 100; +// } + el.find( '.redux-color-init' ).wpColorPicker( + { + change: function( e, ui ) { + $( this ).val( ui.color.toString() ); + redux_change( $( this ) ); + el.find( '#' + e.target.getAttribute( 'data-id' ) + '-transparency' ).removeAttr( 'checked' ); + }, + clear: function( e, ui ) { + $( this ).val( '' ); + redux_change( $( this ).parent().find( '.redux-color-init' ) ); + } + } + ); +// $( '
    ' +// + '' +// + '' +// + '
    ' ).appendTo( $control.parents( '.wp-picker-container:first' ).addClass( 'vc_color-picker' ).find( '.iris-picker' ) ); +// $alpha = $control.parents( '.wp-picker-container:first' ).find( '.vc_alpha-field' ); +// //console.log($alpha); +// $alpha_output = $control.parents( '.wp-picker-container:first' ).find( '.redux-alpha-container output' ); +// $alpha.bind( 'change keyup', function () { +// var alpha_val = parseFloat( $alpha.val() ), +// iris = $control.data( 'a8cIris' ), +// color_picker = $control.data( 'wp-wpColorPicker' ); +// //console.log(alpha_val); +// $alpha_output.val( $alpha.val() + '%' ); +// console.log(alpha_val / 100.0); +// iris._color._alpha = parseFloat(alpha_val / 100.0); +// console.log(iris._color); +// //$control.val( iris._color.toString() ); +// el.find( '.redux-color-init' ).wpColorPicker( 'color', iris._color.toString() ); +// //console.log($control.val()); +// //color_picker.toggler.css( { backgroundColor: $control.val() } ); +// } ).val( alpha_val ).trigger( 'change' ); + + el.find( '.redux-color' ).on( + 'focus', function() { + $( this ).data( 'oldcolor', $( this ).val() ); + } + ); + + el.find( '.redux-color' ).on( + 'keyup', function() { + var value = $( this ).val(); + var color = colorValidate( this ); + var id = '#' + $( this ).attr( 'id' ); + + if ( value === "transparent" ) { + $( this ).parent().parent().find( '.wp-color-result' ).css( + 'background-color', 'transparent' + ); + + el.find( id + '-transparency' ).attr( 'checked', 'checked' ); + } else { + el.find( id + '-transparency' ).removeAttr( 'checked' ); + + if ( color && color !== $( this ).val() ) { + $( this ).val( color ); + } + } + } + ); + + // Replace and validate field on blur + el.find( '.redux-color' ).on( + 'blur', function() { + var value = $( this ).val(); + var id = '#' + $( this ).attr( 'id' ); + + if ( value === "transparent" ) { + $( this ).parent().parent().find( '.wp-color-result' ).css( + 'background-color', 'transparent' + ); + + el.find( id + '-transparency' ).attr( 'checked', 'checked' ); + } else { + if ( colorValidate( this ) === value ) { + if ( value.indexOf( "#" ) !== 0 ) { + $( this ).val( $( this ).data( 'oldcolor' ) ); + } + } + + el.find( id + '-transparency' ).removeAttr( 'checked' ); + } + } + ); + + // Store the old valid color on keydown + el.find( '.redux-color' ).on( + 'keydown', function() { + $( this ).data( 'oldkeypress', $( this ).val() ); + } + ); + + // When transparency checkbox is clicked + el.find( '.color-transparency' ).on( + 'click', function() { + if ( $( this ).is( ":checked" ) ) { + el.find( '.redux-saved-color' ).val( $( '#' + $( this ).data( 'id' ) ).val() ); + el.find( '#' + $( this ).data( 'id' ) ).val( 'transparent' ); + el.find( '#' + $( this ).data( 'id' ) ).parent().parent().find( '.wp-color-result' ).css( + 'background-color', 'transparent' + ); + } else { + if ( el.find( '#' + $( this ).data( 'id' ) ).val() === 'transparent' ) { + var prevColor = $( '.redux-saved-color' ).val(); + + if ( prevColor === '' ) { + prevColor = $( '#' + $( this ).data( 'id' ) ).data( 'default-color' ); + } + + el.find( '#' + $( this ).data( 'id' ) ).parent().parent().find( '.wp-color-result' ).css( + 'background-color', prevColor + ); + + el.find( '#' + $( this ).data( 'id' ) ).val( prevColor ); + } + } + redux_change( $( this ) ); + } + ); + } + ); + }; +})( jQuery ); \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/color/field_color.min.js b/redux/ReduxCore/inc/fields/color/field_color.min.js new file mode 100644 index 0000000..19b0552 --- /dev/null +++ b/redux/ReduxCore/inc/fields/color/field_color.min.js @@ -0,0 +1 @@ +!function(n){"use strict";redux.field_objects=redux.field_objects||{},redux.field_objects.color=redux.field_objects.color||{},n(document).ready(function(){}),redux.field_objects.color.init=function(t){t||(t=n(document).find(".redux-group-tab:visible").find(".redux-container-color:visible")),n(t).each(function(){var i=n(this),t=i;i.hasClass("redux-field-container")||(t=i.parents(".redux-field-container:first")),t.is(":hidden")||t.hasClass("redux-field-init")&&(t.removeClass("redux-field-init"),i.find(".redux-color-init").wpColorPicker({change:function(t,r){n(this).val(r.color.toString()),redux_change(n(this)),i.find("#"+t.target.getAttribute("data-id")+"-transparency").removeAttr("checked")},clear:function(t,r){n(this).val(""),redux_change(n(this).parent().find(".redux-color-init"))}}),i.find(".redux-color").on("focus",function(){n(this).data("oldcolor",n(this).val())}),i.find(".redux-color").on("keyup",function(){var t=n(this).val(),r=colorValidate(this),e="#"+n(this).attr("id");"transparent"===t?(n(this).parent().parent().find(".wp-color-result").css("background-color","transparent"),i.find(e+"-transparency").attr("checked","checked")):(i.find(e+"-transparency").removeAttr("checked"),r&&r!==n(this).val()&&n(this).val(r))}),i.find(".redux-color").on("blur",function(){var t=n(this).val(),r="#"+n(this).attr("id");"transparent"===t?(n(this).parent().parent().find(".wp-color-result").css("background-color","transparent"),i.find(r+"-transparency").attr("checked","checked")):(colorValidate(this)===t&&0!==t.indexOf("#")&&n(this).val(n(this).data("oldcolor")),i.find(r+"-transparency").removeAttr("checked"))}),i.find(".redux-color").on("keydown",function(){n(this).data("oldkeypress",n(this).val())}),i.find(".color-transparency").on("click",function(){if(n(this).is(":checked"))i.find(".redux-saved-color").val(n("#"+n(this).data("id")).val()),i.find("#"+n(this).data("id")).val("transparent"),i.find("#"+n(this).data("id")).parent().parent().find(".wp-color-result").css("background-color","transparent");else if("transparent"===i.find("#"+n(this).data("id")).val()){var t=n(".redux-saved-color").val();""===t&&(t=n("#"+n(this).data("id")).data("default-color")),i.find("#"+n(this).data("id")).parent().parent().find(".wp-color-result").css("background-color",t),i.find("#"+n(this).data("id")).val(t)}redux_change(n(this))}))})}}(jQuery); \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/color/field_color.php b/redux/ReduxCore/inc/fields/color/field_color.php new file mode 100644 index 0000000..04dfd2f --- /dev/null +++ b/redux/ReduxCore/inc/fields/color/field_color.php @@ -0,0 +1,126 @@ +. + * + * @package ReduxFramework + * @subpackage Field_Color + * @author Daniel J Griffiths (Ghost1227) + * @author Dovy Paukstys + * @version 3.0.0 + */ + +// Exit if accessed directly +if ( ! defined( 'ABSPATH' ) ) { + exit; +} + +// Don't duplicate me! +if ( ! class_exists( 'ReduxFramework_color' ) ) { + + /** + * Main ReduxFramework_color class + * + * @since 1.0.0 + */ + class ReduxFramework_color { + + public $parent; + public $field; + public $value; + + /** + * Field Constructor. + * Required - must call the parent constructor, then assign field and value to vars, and obviously call the render field function + * + * @since 1.0.0 + * @access public + * @return void + */ + function __construct( $field = array(), $value = '', $parent=null ) { + + $this->parent = $parent; + $this->field = $field; + $this->value = $value; + } + + /** + * Field Render Function. + * Takes the vars and outputs the HTML for the field in the settings + * + * @since 1.0.0 + * @access public + * @return void + */ + public function render() { + + echo ''; + echo ''; + + if ( ! isset( $this->field['transparent'] ) || $this->field['transparent'] !== false ) { + + $tChecked = ""; + + if ( $this->value == "transparent" ) { + $tChecked = ' checked="checked"'; + } + + echo ''; + } + } + + /** + * Enqueue Function. + * If this field requires any scripts, or css define this function and register/enqueue the scripts/css + * + * @since 1.0.0 + * @access public + * @return void + */ + public function enqueue() { + if ($this->parent->args['dev_mode']) { + wp_enqueue_style( 'redux-color-picker-css' ); + } + + wp_enqueue_style( 'wp-color-picker' ); + + wp_enqueue_script( + 'redux-field-color-js', + ReduxFramework::$_url . 'inc/fields/color/field_color' . Redux_Functions::isMin() . '.js', + array( 'jquery', 'wp-color-picker', 'redux-js' ), + time(), + true + ); + } + + public function output() { + $style = ''; + + if ( ! empty( $this->value ) ) { + $mode = ( isset( $this->field['mode'] ) && ! empty( $this->field['mode'] ) ? $this->field['mode'] : 'color' ); + + $style .= $mode . ':' . $this->value . ';'; + + if ( ! empty( $this->field['output'] ) && is_array( $this->field['output'] ) ) { + $css = Redux_Functions::parseCSS( $this->field['output'], $style, $this->value ); + $this->parent->outputCSS .= $css; + } + + if ( ! empty( $this->field['compiler'] ) && is_array( $this->field['compiler'] ) ) { + $css = Redux_Functions::parseCSS( $this->field['compiler'], $style, $this->value ); + $this->parent->compilerCSS .= $css; + + } + } + } + } +} diff --git a/redux/ReduxCore/inc/fields/color_gradient/field_color_gradient.css b/redux/ReduxCore/inc/fields/color_gradient/field_color_gradient.css new file mode 100644 index 0000000..58dc455 --- /dev/null +++ b/redux/ReduxCore/inc/fields/color_gradient/field_color_gradient.css @@ -0,0 +1 @@ +.redux-container-color_gradient .colorGradient{display:inline-block}.redux-container-color_gradient .toLabel{padding-left:18px}@media screen and (max-width: 660px){.redux-container-color_gradient .colorGradient{display:block;text-align:center !important}} diff --git a/redux/ReduxCore/inc/fields/color_gradient/field_color_gradient.css.map b/redux/ReduxCore/inc/fields/color_gradient/field_color_gradient.css.map new file mode 100644 index 0000000..985da1d --- /dev/null +++ b/redux/ReduxCore/inc/fields/color_gradient/field_color_gradient.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "AACI,8CAAe;EACX,OAAO,EAAE,YAAY;AAEzB,wCAAS;EACL,YAAY,EAAE,IAAI;;AAI1B,oCAAqC;EAE7B,8CAAe;IACX,OAAO,EAAE,KAAK;IACd,UAAU,EAAE,iBAAiB", +"sources": ["field_color_gradient.scss"], +"names": [], +"file": "field_color_gradient.css" +} \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/color_gradient/field_color_gradient.js b/redux/ReduxCore/inc/fields/color_gradient/field_color_gradient.js new file mode 100644 index 0000000..9bbfb0a --- /dev/null +++ b/redux/ReduxCore/inc/fields/color_gradient/field_color_gradient.js @@ -0,0 +1,134 @@ +/* + Field Color Gradient + */ + +/*global jQuery, document, redux_change, redux*/ + +(function( $ ) { + 'use strict'; + + redux.field_objects = redux.field_objects || {}; + redux.field_objects.color_gradient = redux.field_objects.color_gradient || {}; + + redux.field_objects.color_gradient.init = function( selector ) { + + if ( !selector ) { + selector = $( document ).find( ".redux-group-tab:visible" ).find( '.redux-container-color_gradient:visible' ); + } + + $( selector ).each( + function() { + var el = $( this ); + var parent = el; + + if ( !el.hasClass( 'redux-field-container' ) ) { + parent = el.parents( '.redux-field-container:first' ); + } + if ( parent.is( ":hidden" ) ) { // Skip hidden fields + return; + } + if ( parent.hasClass( 'redux-field-init' ) ) { + parent.removeClass( 'redux-field-init' ); + } else { + return; + } + + el.find( '.redux-color-init' ).wpColorPicker( + { + change: function( e, ui ) { + $( this ).val( ui.color.toString() ); + redux_change( $( this ) ); + el.find( '#' + e.target.getAttribute( 'data-id' ) + '-transparency' ).removeAttr( 'checked' ); + }, + clear: function( e, ui ) { + $( this ).val( '' ); + redux_change( $( this ).parent().find( '.redux-color-init' ) ); + } + } + ); + + el.find( '.redux-color' ).on( + 'keyup', function() { + var value = $( this ).val(); + var color = colorValidate( this ); + var id = '#' + $( this ).attr( 'id' ); + + if ( value === "transparent" ) { + $( this ).parent().parent().find( '.wp-color-result' ).css( + 'background-color', 'transparent' + ); + + el.find( id + '-transparency' ).attr( 'checked', 'checked' ); + } else { + el.find( id + '-transparency' ).removeAttr( 'checked' ); + + if ( color && color !== $( this ).val() ) { + $( this ).val( color ); + } + } + } + ); + + // Replace and validate field on blur + el.find( '.redux-color' ).on( + 'blur', function() { + var value = $( this ).val(); + var id = '#' + $( this ).attr( 'id' ); + + if ( value === "transparent" ) { + $( this ).parent().parent().find( '.wp-color-result' ).css( + 'background-color', 'transparent' + ); + + el.find( id + '-transparency' ).attr( 'checked', 'checked' ); + } else { + if ( colorValidate( this ) === value ) { + if ( value.indexOf( "#" ) !== 0 ) { + $( this ).val( $( this ).data( 'oldcolor' ) ); + } + } + + el.find( id + '-transparency' ).removeAttr( 'checked' ); + } + } + ); + + // Store the old valid color on keydown + el.find( '.redux-color' ).on( + 'keydown', function() { + $( this ).data( 'oldkeypress', $( this ).val() ); + } + ); + + // When transparency checkbox is clicked + el.find( '.color-transparency' ).on( + 'click', function() { + if ( $( this ).is( ":checked" ) ) { + + el.find( '.redux-saved-color' ).val( $( '#' + $( this ).data( 'id' ) ).val() ); + el.find( '#' + $( this ).data( 'id' ) ).val( 'transparent' ); + el.find( '#' + $( this ).data( 'id' ) ).parent().parent().find( '.wp-color-result' ).css( + 'background-color', 'transparent' + ); + } else { + if ( el.find( '#' + $( this ).data( 'id' ) ).val() === 'transparent' ) { + var prevColor = $( '.redux-saved-color' ).val(); + + if ( prevColor === '' ) { + prevColor = $( '#' + $( this ).data( 'id' ) ).data( 'default-color' ); + } + + el.find( '#' + $( this ).data( 'id' ) ).parent().parent().find( '.wp-color-result' ).css( + 'background-color', prevColor + ); + + el.find( '#' + $( this ).data( 'id' ) ).val( prevColor ); + } + } + redux_change( $( this ) ); + } + ); + } + ); + }; +})( jQuery ); \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/color_gradient/field_color_gradient.min.js b/redux/ReduxCore/inc/fields/color_gradient/field_color_gradient.min.js new file mode 100644 index 0000000..d792bc0 --- /dev/null +++ b/redux/ReduxCore/inc/fields/color_gradient/field_color_gradient.min.js @@ -0,0 +1 @@ +!function(a){"use strict";redux.field_objects=redux.field_objects||{},redux.field_objects.color_gradient=redux.field_objects.color_gradient||{},redux.field_objects.color_gradient.init=function(t){t||(t=a(document).find(".redux-group-tab:visible").find(".redux-container-color_gradient:visible")),a(t).each(function(){var i=a(this),t=i;i.hasClass("redux-field-container")||(t=i.parents(".redux-field-container:first")),t.is(":hidden")||t.hasClass("redux-field-init")&&(t.removeClass("redux-field-init"),i.find(".redux-color-init").wpColorPicker({change:function(t,r){a(this).val(r.color.toString()),redux_change(a(this)),i.find("#"+t.target.getAttribute("data-id")+"-transparency").removeAttr("checked")},clear:function(t,r){a(this).val(""),redux_change(a(this).parent().find(".redux-color-init"))}}),i.find(".redux-color").on("keyup",function(){var t=a(this).val(),r=colorValidate(this),e="#"+a(this).attr("id");"transparent"===t?(a(this).parent().parent().find(".wp-color-result").css("background-color","transparent"),i.find(e+"-transparency").attr("checked","checked")):(i.find(e+"-transparency").removeAttr("checked"),r&&r!==a(this).val()&&a(this).val(r))}),i.find(".redux-color").on("blur",function(){var t=a(this).val(),r="#"+a(this).attr("id");"transparent"===t?(a(this).parent().parent().find(".wp-color-result").css("background-color","transparent"),i.find(r+"-transparency").attr("checked","checked")):(colorValidate(this)===t&&0!==t.indexOf("#")&&a(this).val(a(this).data("oldcolor")),i.find(r+"-transparency").removeAttr("checked"))}),i.find(".redux-color").on("keydown",function(){a(this).data("oldkeypress",a(this).val())}),i.find(".color-transparency").on("click",function(){if(a(this).is(":checked"))i.find(".redux-saved-color").val(a("#"+a(this).data("id")).val()),i.find("#"+a(this).data("id")).val("transparent"),i.find("#"+a(this).data("id")).parent().parent().find(".wp-color-result").css("background-color","transparent");else if("transparent"===i.find("#"+a(this).data("id")).val()){var t=a(".redux-saved-color").val();""===t&&(t=a("#"+a(this).data("id")).data("default-color")),i.find("#"+a(this).data("id")).parent().parent().find(".wp-color-result").css("background-color",t),i.find("#"+a(this).data("id")).val(t)}redux_change(a(this))}))})}}(jQuery); \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/color_gradient/field_color_gradient.php b/redux/ReduxCore/inc/fields/color_gradient/field_color_gradient.php new file mode 100644 index 0000000..d235dd6 --- /dev/null +++ b/redux/ReduxCore/inc/fields/color_gradient/field_color_gradient.php @@ -0,0 +1,128 @@ +. + * + * @package ReduxFramework + * @subpackage Field_Color_Gradient + * @author Daniel J Griffiths (Ghost1227) + * @author Dovy Paukstys + * @version 3.0.0 + */ +// Exit if accessed directly +if ( ! defined( 'ABSPATH' ) ) { + exit; +} + +// Don't duplicate me! +if ( ! class_exists( 'ReduxFramework_color_gradient' ) ) { + + /** + * Main ReduxFramework_color_gradient class + * + * @since 1.0.0 + */ + class ReduxFramework_color_gradient { + + /** + * Field Constructor. + * Required - must call the parent constructor, then assign field and value to vars, and obviously call the render field function + * + * @since 1.0.0 + * @access public + * @return void + */ + function __construct( $field = array(), $value = '', $parent=null ) { + $this->parent = $parent; + $this->field = $field; + $this->value = $value; + } + + /** + * Field Render Function. + * Takes the vars and outputs the HTML for the field in the settings + * + * @since 1.0.0 + * @access public + * @return void + */ + public function render() { + + // No errors please + $defaults = array( + 'from' => '', + 'to' => '' + ); + + $this->value = wp_parse_args( $this->value, $defaults ); + + echo '
    ' . __( 'From ', 'redux-framework' ) . ' '; + echo ''; + echo ''; + + if ( ! isset( $this->field['transparent'] ) || $this->field['transparent'] !== false ) { + $tChecked = ""; + + if ( $this->value['from'] == "transparent" ) { + $tChecked = ' checked="checked"'; + } + + echo ''; + } + echo "
    "; + echo '
    ' . __( 'To ', 'redux-framework' ) . ' '; + + if ( ! isset( $this->field['transparent'] ) || $this->field['transparent'] !== false ) { + $tChecked = ""; + + if ( $this->value['to'] == "transparent" ) { + $tChecked = ' checked="checked"'; + } + + echo ''; + } + echo "
    "; + } + + /** + * Enqueue Function. + * If this field requires any scripts, or css define this function and register/enqueue the scripts/css + * + * @since 1.0.0 + * @access public + * @return void + */ + public function enqueue() { + wp_enqueue_style( 'wp-color-picker' ); + + wp_enqueue_script( + 'redux-field-color-gradient-js', + ReduxFramework::$_url . 'inc/fields/color_gradient/field_color_gradient' . Redux_Functions::isMin() . '.js', + array( 'jquery', 'wp-color-picker', 'redux-js' ), + time(), + 'all' + ); + + if ($this->parent->args['dev_mode']) { + wp_enqueue_style( 'redux-color-picker-css' ); + + wp_enqueue_style( + 'redux-field-color_gradient-css', + ReduxFramework::$_url . 'inc/fields/color_gradient/field_color_gradient.css', + array(), + time(), + 'all' + ); + } + } + } +} \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/color_gradient/field_color_gradient.scss b/redux/ReduxCore/inc/fields/color_gradient/field_color_gradient.scss new file mode 100644 index 0000000..00508fc --- /dev/null +++ b/redux/ReduxCore/inc/fields/color_gradient/field_color_gradient.scss @@ -0,0 +1,17 @@ +.redux-container-color_gradient { + .colorGradient { + display: inline-block; + } + .toLabel { + padding-left: 18px; + } +} + +@media screen and (max-width: 660px) { + .redux-container-color_gradient { + .colorGradient { + display: block; + text-align: center !important; + } + } +} \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/color_rgba/field_color_rgba.css b/redux/ReduxCore/inc/fields/color_rgba/field_color_rgba.css new file mode 100644 index 0000000..b52a1cc --- /dev/null +++ b/redux/ReduxCore/inc/fields/color_rgba/field_color_rgba.css @@ -0,0 +1 @@ +.sp-container{color:#555;border-color:#cccccc;background:#f7f7f7;-webkit-box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,0.08);box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,0.08);vertical-align:top}.sp-replacer{color:#555;border-color:#cccccc;background:#f7f7f7;-webkit-box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,0.08);box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,0.08);vertical-align:top}.sp-replacer:focus,.sp-replacer:hover,.sp-replacer.focus,.sp-replacer.hover{background:#fafafa;border-color:#999;color:#222}.sp-replacer:focus,.sp-replacer.focus{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,0.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,0.8)}.sp-replacer.active:focus{-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,0.5),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,0.8);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,0.5),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,0.8)}.sp-replacer.active,.sp-replacer.active:hover,.sp-replacer:active{background:#eee;border-color:#999;color:#333;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,0.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,0.5)} diff --git a/redux/ReduxCore/inc/fields/color_rgba/field_color_rgba.css.map b/redux/ReduxCore/inc/fields/color_rgba/field_color_rgba.css.map new file mode 100644 index 0000000..a6b05cf --- /dev/null +++ b/redux/ReduxCore/inc/fields/color_rgba/field_color_rgba.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "AAAA,aAAc;EACd;;oHAEkH;EACjH,KAAK,EAAE,IAAI;EACX,YAAY,EAAE,OAAO;EACrB,UAAU,EAAE,OAAO;EACnB,kBAAkB,EAAE,+CAAiD;EACrE,UAAU,EAAE,+CAAiD;EAC5D,cAAc,EAAE,GAAG;;AAGrB,YAAa;EACT,KAAK,EAAE,IAAI;EACX,YAAY,EAAE,OAAO;EACrB,UAAU,EAAE,OAAO;EACnB,kBAAkB,EAAE,+CAAiD;EACrE,UAAU,EAAE,+CAAiD;EAC7D,cAAc,EAAE,GAAG;;AAGvB;;;kBAGmB;EACf,UAAU,EAAE,OAAO;EACnB,YAAY,EAAE,IAAI;EAClB,KAAK,EAAE,IAAI;;AAGf;kBACmB;EACf,kBAAkB,EACV,sDACkC;EAC1C,UAAU,EACF,sDACkC;;AAI9C,yBAA0B;EACzB,kBAAkB,EACjB,+FAEkC;EACnC,UAAU,EACT,+FAEkC;;AAGpC;;mBAEmB;EACf,UAAU,EAAE,IAAI;EAChB,YAAY,EAAE,IAAI;EAClB,KAAK,EAAE,IAAI;EACX,kBAAkB,EAAE,uCAAyC;EAC7D,UAAU,EAAE,uCAAyC", +"sources": ["field_color_rgba.scss"], +"names": [], +"file": "field_color_rgba.css" +} \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/color_rgba/field_color_rgba.js b/redux/ReduxCore/inc/fields/color_rgba/field_color_rgba.js new file mode 100644 index 0000000..4a38f26 --- /dev/null +++ b/redux/ReduxCore/inc/fields/color_rgba/field_color_rgba.js @@ -0,0 +1,217 @@ +(function($){ + 'use strict'; + + redux.field_objects = redux.field_objects || {}; + redux.field_objects.color_rgba = redux.field_objects.color_rgba || {}; + redux.field_objects.color_rgba.fieldID = ''; + + redux.field_objects.color_rgba.hexToRGBA = function( hex, alpha ) { + var result; + + if (hex === null) { + result = ''; + } else { + hex = hex.replace('#', ''); + var r = parseInt(hex.substring(0, 2), 16); + var g = parseInt(hex.substring(2, 4), 16); + var b = parseInt(hex.substring(4, 6), 16); + + result = 'rgba(' + r + ',' + g + ',' + b + ',' + alpha + ')'; + } + + return result; + }; + + redux.field_objects.color_rgba.init = function( selector ) { + if ( !selector ) { + selector = $( document ).find( ".redux-group-tab:visible" ).find( '.redux-container-color_rgba:visible' ); + } + + $( selector ).each( + function() { + var el = $( this ); + var parent = el; + + if ( !el.hasClass( 'redux-field-container' ) ) { + parent = el.parents( '.redux-field-container:first' ); + } + + if ( parent.is( ":hidden" ) ) { // Skip hidden fields + return; + } + + if ( parent.hasClass( 'redux-field-init' ) ) { + parent.removeClass( 'redux-field-init' ); + } else { + return; + } + + redux.field_objects.color_rgba.modInit(el); + redux.field_objects.color_rgba.initColorPicker(el); + }); + }; + + redux.field_objects.color_rgba.modInit = function(el) { + + redux.field_objects.color_rgba.fieldID = el.find('.redux-color_rgba-container').data('id'); + + }; + + // Initialize colour picker + redux.field_objects.color_rgba.initColorPicker = function(el){ + + // Get field ID + var field_id = redux.field_objects.color_rgba.fieldID; + + // Get the color scheme container + var colorpickerInput = el.find('.redux-color-rgba'); + + // Get alpha value and sanitize it + var currentAlpha = colorpickerInput.data('current-alpha'); + currentAlpha = Number((currentAlpha === null || currentAlpha === undefined) ? 1 : currentAlpha); + + // Get colour value and sanitize it + var currentColor = colorpickerInput.data('current-color'); + currentColor = (currentColor === '' || currentColor === 'transparent') ? '' : currentColor; + + var outputTransparent = colorpickerInput.data('output-transparent'); + outputTransparent = Boolean((outputTransparent === '') ? false : outputTransparent); + + // Color picker arguments + var container = el.find('.redux-color-rgba-container'); + + // Get, decode and parse palette. + var palette = container.data('palette'); + palette = decodeURIComponent(palette); + palette = JSON.parse(palette); + + // Default palette + if (palette === null) { + palette = [ + ["#000000", "#434343", "#666666", "#999999", "#b7b7b7", "#cccccc", "#d9d9d9", "#efefef", "#f3f3f3", "#ffffff"], + ["#980000", "#ff0000", "#ff9900", "#ffff00", "#00ff00", "#00ffff", "#4a86e8", "#0000ff", "#9900ff", "#ff00ff"], + ["#e6b8af", "#f4cccc", "#fce5cd", "#fff2cc", "#d9ead3", "#d9ead3", "#c9daf8", "#cfe2f3", "#d9d2e9", "#ead1dc"], + ["#dd7e6b", "#ea9999", "#f9cb9c", "#ffe599", "#b6d7a8", "#a2c4c9", "#a4c2f4", "#9fc5e8", "#b4a7d6", "#d5a6bd"], + ["#cc4125", "#e06666", "#f6b26b", "#ffd966", "#93c47d", "#76a5af", "#6d9eeb", "#6fa8dc", "#8e7cc3", "#c27ba0"], + ["#a61c00", "#cc0000", "#e69138", "#f1c232", "#6aa84f", "#45818e", "#3c78d8", "#3d85c6", "#674ea7", "#a64d79"], + ["#85200c", "#990000", "#b45f06", "#bf9000", "#38761d", "#134f5c", "#1155cc", "#0b5394", "#351c75", "#741b47"], + ["#5b0f00", "#660000", "#783f04", "#7f6000", "#274e13", "#0c343d", "#1c4587", "#073763", "#20124d", "#4c1130"] + ]; + } + + // Get and sanitize show input argument + var showInput = container.data('show-input'); + showInput = Boolean((showInput === '') ? false : showInput); + + // Get and sanitize show initial argument + var showInitial = container.data('show-initial'); + showInitial = Boolean((showInitial === '') ? false : showInitial); + + // Get and sanitize show alpha argument + var showAlpha = container.data('show-alpha'); + showAlpha = Boolean((showAlpha === '') ? false : showAlpha); + + // Get and sanitize allow empty argument + var allowEmpty = container.data('allow-empty'); + allowEmpty = Boolean((allowEmpty === '') ? false : allowEmpty); + + // Get and sanitize show palette argument + var showPalette = container.data('show-palette'); + showPalette = Boolean((showPalette === '') ? false : showPalette); + + // Get and sanitize show palette only argument + var showPaletteOnly = container.data('show-palette-only'); + showPaletteOnly = Boolean((showPaletteOnly === '') ? false : showPaletteOnly); + + // Get and sanitize show selection palette argument + var showSelectionPalette = container.data('show-selection-palette'); + showSelectionPalette = Boolean((showSelectionPalette === '') ? false : showSelectionPalette); + + // Get max palette size + var maxPaletteSize = Number(container.data('max-palette-size')); + + // Get and sanitize clickout fires change argument + var clickoutFiresChange = container.data('clickout-fires-change'); + clickoutFiresChange = Boolean((clickoutFiresChange === '') ? false : clickoutFiresChange); + + // Get choose button text + var chooseText = String(container.data('choose-text')); + + // Get cancel button text + var cancelText = String(container.data('cancel-text')); + + // Get cancel button text + var inputText = String(container.data('input-text')); + + + // Get and sanitize show buttons argument + var showButtons = container.data('show-buttons'); + showButtons = Boolean((showButtons === '') ? false : showButtons); + + // Get container class + var containerClass = String(container.data('container-class')); + + // Get replacer class + var replacerClass = String(container.data('replacer-class')); + + // Color picker options + colorpickerInput.spectrum({ + color: currentColor, //'#ffffff', + showAlpha: showAlpha, + showInput: showInput, + allowEmpty: allowEmpty, + className: 'redux-color-rgba', + showInitial: showInitial, + showPalette: showPalette, + showSelectionPalette: showSelectionPalette, + maxPaletteSize: maxPaletteSize, + showPaletteOnly: showPaletteOnly, + clickoutFiresChange: clickoutFiresChange, + chooseText: chooseText, + cancelText: cancelText, + showButtons: showButtons, + containerClassName: containerClass, + replacerClassName: replacerClass, + preferredFormat: 'hex6', + localStorageKey: 'redux.color-rgba.' + field_id, + palette: palette, + inputText: inputText, + + // on change + change: function(color) { + var colorVal, alphaVal, rgbaVal; + + if (color === null) { + if (outputTransparent === true) { + colorVal = 'transparent'; + } else { + colorVal = null; + } + alphaVal = null; + } else { + colorVal = color.toHexString(); + alphaVal = color.alpha; + } + + if (colorVal != 'transparent') { + rgbaVal = redux.field_objects.color_rgba.hexToRGBA(colorVal, alphaVal); + } else { + rgbaVal = 'transparent'; + } + + var blockID = $(this).data('block-id'); + + // Update HTML color value + el.find('input#' + blockID + '-color').val(colorVal); + + // Update HTML alpha value + el.find('input#' + blockID + '-alpha').val(alphaVal); + + // Update RGBA alpha value + el.find('input#' + blockID + '-rgba').val(rgbaVal); + + redux_change(el.find('.redux-color-rgba-container')); + } + }); + }; +})(jQuery); \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/color_rgba/field_color_rgba.min.js b/redux/ReduxCore/inc/fields/color_rgba/field_color_rgba.min.js new file mode 100644 index 0000000..4c01597 --- /dev/null +++ b/redux/ReduxCore/inc/fields/color_rgba/field_color_rgba.min.js @@ -0,0 +1 @@ +!function(B){"use strict";redux.field_objects=redux.field_objects||{},redux.field_objects.color_rgba=redux.field_objects.color_rgba||{},redux.field_objects.color_rgba.fieldID="",redux.field_objects.color_rgba.hexToRGBA=function(e,a){var r;null===e?r="":(e=e.replace("#",""),r="rgba("+parseInt(e.substring(0,2),16)+","+parseInt(e.substring(2,4),16)+","+parseInt(e.substring(4,6),16)+","+a+")");return r},redux.field_objects.color_rgba.init=function(e){e||(e=B(document).find(".redux-group-tab:visible").find(".redux-container-color_rgba:visible")),B(e).each(function(){var e=B(this),a=e;e.hasClass("redux-field-container")||(a=e.parents(".redux-field-container:first")),a.is(":hidden")||a.hasClass("redux-field-init")&&(a.removeClass("redux-field-init"),redux.field_objects.color_rgba.modInit(e),redux.field_objects.color_rgba.initColorPicker(e))})},redux.field_objects.color_rgba.modInit=function(e){redux.field_objects.color_rgba.fieldID=e.find(".redux-color_rgba-container").data("id")},redux.field_objects.color_rgba.initColorPicker=function(c){var e=redux.field_objects.color_rgba.fieldID,a=c.find(".redux-color-rgba"),r=a.data("current-alpha");r=Number(null==r?1:r);var t=a.data("current-color");t=""===t||"transparent"===t?"":t;var d=a.data("output-transparent");d=Boolean(""!==d&&d);var o=c.find(".redux-color-rgba-container"),l=o.data("palette");l=decodeURIComponent(l),null===(l=JSON.parse(l))&&(l=[["#000000","#434343","#666666","#999999","#b7b7b7","#cccccc","#d9d9d9","#efefef","#f3f3f3","#ffffff"],["#980000","#ff0000","#ff9900","#ffff00","#00ff00","#00ffff","#4a86e8","#0000ff","#9900ff","#ff00ff"],["#e6b8af","#f4cccc","#fce5cd","#fff2cc","#d9ead3","#d9ead3","#c9daf8","#cfe2f3","#d9d2e9","#ead1dc"],["#dd7e6b","#ea9999","#f9cb9c","#ffe599","#b6d7a8","#a2c4c9","#a4c2f4","#9fc5e8","#b4a7d6","#d5a6bd"],["#cc4125","#e06666","#f6b26b","#ffd966","#93c47d","#76a5af","#6d9eeb","#6fa8dc","#8e7cc3","#c27ba0"],["#a61c00","#cc0000","#e69138","#f1c232","#6aa84f","#45818e","#3c78d8","#3d85c6","#674ea7","#a64d79"],["#85200c","#990000","#b45f06","#bf9000","#38761d","#134f5c","#1155cc","#0b5394","#351c75","#741b47"],["#5b0f00","#660000","#783f04","#7f6000","#274e13","#0c343d","#1c4587","#073763","#20124d","#4c1130"]]);var n=o.data("show-input");n=Boolean(""!==n&&n);var f=o.data("show-initial");f=Boolean(""!==f&&f);var i=o.data("show-alpha");i=Boolean(""!==i&&i);var s=o.data("allow-empty");s=Boolean(""!==s&&s);var u=o.data("show-palette");u=Boolean(""!==u&&u);var b=o.data("show-palette-only");b=Boolean(""!==b&&b);var x=o.data("show-selection-palette");x=Boolean(""!==x&&x);var p=Number(o.data("max-palette-size")),g=o.data("clickout-fires-change");g=Boolean(""!==g&&g);var h=String(o.data("choose-text")),_=String(o.data("cancel-text")),v=String(o.data("input-text")),m=o.data("show-buttons");m=Boolean(""!==m&&m);var w=String(o.data("container-class")),j=String(o.data("replacer-class"));a.spectrum({color:t,showAlpha:i,showInput:n,allowEmpty:s,className:"redux-color-rgba",showInitial:f,showPalette:u,showSelectionPalette:x,maxPaletteSize:p,showPaletteOnly:b,clickoutFiresChange:g,chooseText:h,cancelText:_,showButtons:m,containerClassName:w,replacerClassName:j,preferredFormat:"hex6",localStorageKey:"redux.color-rgba."+e,palette:l,inputText:v,change:function(e){var a,r,t;r=null===e?(a=!0===d?"transparent":null,null):(a=e.toHexString(),e.alpha),t="transparent"!=a?redux.field_objects.color_rgba.hexToRGBA(a,r):"transparent";var o=B(this).data("block-id");c.find("input#"+o+"-color").val(a),c.find("input#"+o+"-alpha").val(r),c.find("input#"+o+"-rgba").val(t),redux_change(c.find(".redux-color-rgba-container"))}})}}(jQuery); \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/color_rgba/field_color_rgba.php b/redux/ReduxCore/inc/fields/color_rgba/field_color_rgba.php new file mode 100644 index 0000000..f32f5cd --- /dev/null +++ b/redux/ReduxCore/inc/fields/color_rgba/field_color_rgba.php @@ -0,0 +1,295 @@ +. + * + * @package Redux Framework + * @subpackage Spectrum Color Picker + * @author Kevin Provance (kprovance) + * @version 1.0.0 + */ + + // Exit if accessed directly + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + + // Don't duplicate me! + if ( ! class_exists( 'ReduxFramework_color_rgba' ) ) { + + /** + * Main ReduxFramework_color_rgba class + * + * @since 1.0.0 + */ + class ReduxFramework_color_rgba { + + /** + * Class Constructor. Defines the args for the extions class + * + * @since 1.0.0 + * @access public + * + * @param array $field Field sections. + * @param array $value Values. + * @param array $parent Parent object. + * + * @return void + */ + public function __construct( $field = array(), $value = '', $parent=null ) { + + // Set required variables + $this->parent = $parent; + $this->field = (array) $field; + $this->value = $value; + + $defaults = array( + 'color' => '', + 'alpha' => 1, + 'rgba' => '' + ); + + $option_defaults = array( + "show_input" => true, + "show_initial" => false, + "show_alpha" => true, + "show_palette" => false, + "show_palette_only" => false, + "max_palette_size" => 10, + "show_selection_palette" => false, + "allow_empty" => true, + "clickout_fires_change" => false, + "choose_text" => __( 'Choose', 'redux-framework' ), + "cancel_text" => __( 'Cancel', 'redux-framework' ), + "show_buttons" => true, + "input_text" => __( 'Select Color', 'redux-framework' ), + "palette" => null, + ); + + $this->value = wp_parse_args( $this->value, $defaults ); + + $this->field['options'] = isset( $this->field['options'] ) ? wp_parse_args( $this->field['options'], $option_defaults ) : $option_defaults; + + // Convert empty array to null, if there. + $this->field['options']['palette'] = empty( $this->field['options']['palette'] ) ? null : $this->field['options']['palette']; + + $this->field['output_transparent'] = isset( $this->field['output_transparent'] ) ? $this->field['output_transparent'] : false; + } + + + /** + * Field Render Function. + * Takes the vars and outputs the HTML for the field in the settings + * + * @since 1.0.0 + * @access public + * @return void + */ + public function render() { + + $field_id = $this->field['id']; + + // Color picker container + echo '
    '; + + // Colour picker layout + $opt_name = $this->parent->args['opt_name']; + + if ( '' == $this->value['color'] || 'transparent' == $this->value['color'] ) { + $color = ''; + } else { + $color = Redux_Helpers::hex2rgba( $this->value['color'], $this->value['alpha'] ); + } + + if ( $this->value['rgba'] == '' && $this->value['color'] != '' ) { + $this->value['rgba'] = Redux_Helpers::hex2rgba( $this->value['color'], $this->value['alpha'] ); + } + + echo ''; + + echo ''; + + // Hidden input for alpha channel + echo ''; + + // Hidden input for rgba + echo ''; + + echo '
    '; + } + + /** + * Enqueue Function. + * If this field requires any scripts, or css define this function and register/enqueue the scripts/css + * + * @since 1.0.0 + * @access public + * @return void + */ + public function enqueue() { + + // Set up min files for dev_mode = false. + $min = Redux_Functions::isMin(); + + // Field dependent JS + if ( ! wp_script_is( 'redux-field-color-rgba-js' ) ) { + wp_enqueue_script( + 'redux-field-color-rgba-js', + ReduxFramework::$_url . 'inc/fields/color_rgba/field_color_rgba' . Redux_Functions::isMin() . '.js', + array( 'jquery', 'redux-spectrum-js' ), + time(), + true + ); + } + + // Spectrum CSS + if ( ! wp_style_is( 'redux-spectrum-css' ) ) { + wp_enqueue_style( 'redux-spectrum-css' ); + } + + if ( $this->parent->args['dev_mode'] ) { + if ( ! wp_style_is( 'redux-field-color-rgba-css' ) ) { + wp_enqueue_style( + 'redux-field-color-rgba-css', + ReduxFramework::$_url . 'inc/fields/color_rgba/field_color_rgba.css', + array(), + time(), + 'all' + ); + } + } + } + + /** + * getColorVal. Returns formatted color val in hex or rgba. + * If this field requires any scripts, or css define this function and register/enqueue the scripts/css + * + * @since 1.0.0 + * @access private + * @return string + */ + private function getColorVal() { + + // No notices + $color = ''; + $alpha = 1; + $rgba = ''; + + // Must be an array + if ( is_array( $this->value ) ) { + + // Enum array to parse values + foreach ( $this->value as $id => $val ) { + + // Sanitize alpha + if ( $id == 'alpha' ) { + $alpha = ! empty( $val ) ? $val : 1; + } elseif ( $id == 'color' ) { + $color = ! empty( $val ) ? $val : ''; + } elseif ( $id == 'rgba' ) { + $rgba = ! empty( $val ) ? $val : ''; + $rgba = Redux_Helpers::hex2rgba( $color, $alpha ); + } + } + + // Only build rgba output if alpha ia less than 1 + if ( $alpha < 1 && $alpha <> '' ) { + $color = $rgba; + } + } + + return $color; + } + + /** + * Output Function. + * Used to enqueue to the front-end + * + * @since 1.0.0 + * @access public + * @return void + */ + public function output() { + if ( ! empty( $this->value ) ) { + $style = ''; + + $mode = ( isset( $this->field['mode'] ) && ! empty( $this->field['mode'] ) ? $this->field['mode'] : 'color' ); + + $color_val = $this->getColorVal(); + + $style .= $mode . ':' . $color_val . ';'; + + if ( ! empty( $this->field['output'] ) && is_array( $this->field['output'] ) ) { + if ( ! empty( $color_val ) ) { + $css = Redux_Functions::parseCSS( $this->field['output'], $style, $color_val ); + $this->parent->outputCSS .= $css; + } + } + + if ( ! empty( $this->field['compiler'] ) && is_array( $this->field['compiler'] ) ) { + if ( ! empty( $color_val ) ) { + $css = Redux_Functions::parseCSS( $this->field['compiler'], $style, $color_val ); + $this->parent->compilerCSS .= $css; + } + } + } + } + } + } diff --git a/redux/ReduxCore/inc/fields/color_rgba/field_color_rgba.scss b/redux/ReduxCore/inc/fields/color_rgba/field_color_rgba.scss new file mode 100644 index 0000000..64d2fb0 --- /dev/null +++ b/redux/ReduxCore/inc/fields/color_rgba/field_color_rgba.scss @@ -0,0 +1,61 @@ +.sp-container { +/* border: solid 1px black; + -webkit-box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5), 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8); + box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5), 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);*/ + color: #555; + border-color: #cccccc; + background: #f7f7f7; + -webkit-box-shadow: inset 0 1px 0 #fff, 0 1px 0 rgba( 0, 0, 0, 0.08 ); + box-shadow: inset 0 1px 0 #fff, 0 1px 0 rgba( 0, 0, 0, 0.08 ); + vertical-align: top; +} + +.sp-replacer { + color: #555; + border-color: #cccccc; + background: #f7f7f7; + -webkit-box-shadow: inset 0 1px 0 #fff, 0 1px 0 rgba( 0, 0, 0, 0.08 ); + box-shadow: inset 0 1px 0 #fff, 0 1px 0 rgba( 0, 0, 0, 0.08 ); + vertical-align: top; +} + +.sp-replacer:focus, +.sp-replacer:hover, +.sp-replacer.focus, +.sp-replacer.hover { + background: #fafafa; + border-color: #999; + color: #222; +} + +.sp-replacer:focus, +.sp-replacer.focus { + -webkit-box-shadow: + 0 0 0 1px #5b9dd9, + 0 0 2px 1px rgba(30, 140, 190, .8); + box-shadow: + 0 0 0 1px #5b9dd9, + 0 0 2px 1px rgba(30, 140, 190, .8); + +} + +.sp-replacer.active:focus { + -webkit-box-shadow: + inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 ), + 0 0 0 1px #5b9dd9, + 0 0 2px 1px rgba(30, 140, 190, .8); + box-shadow: + inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 ), + 0 0 0 1px #5b9dd9, + 0 0 2px 1px rgba(30, 140, 190, .8); +} + +.sp-replacer.active, +.sp-replacer.active:hover, +.sp-replacer:active{ + background: #eee; + border-color: #999; + color: #333; + -webkit-box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 ); + box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 ); +} diff --git a/redux/ReduxCore/inc/fields/date/field_date.css b/redux/ReduxCore/inc/fields/date/field_date.css new file mode 100644 index 0000000..ac4c4d4 --- /dev/null +++ b/redux/ReduxCore/inc/fields/date/field_date.css @@ -0,0 +1 @@ +#ui-datepicker-div{z-index:15 !important}.ui-datepicker-header{background-color:#00abef} diff --git a/redux/ReduxCore/inc/fields/date/field_date.css.map b/redux/ReduxCore/inc/fields/date/field_date.css.map new file mode 100644 index 0000000..b267bb1 --- /dev/null +++ b/redux/ReduxCore/inc/fields/date/field_date.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "AAAA,kBAAmB;EACf,OAAO,EAAE,aAAa;;AAG1B,qBAAsB;EAClB,gBAAgB,EAAE,OAAO", +"sources": ["field_date.scss"], +"names": [], +"file": "field_date.css" +} \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/date/field_date.js b/redux/ReduxCore/inc/fields/date/field_date.js new file mode 100644 index 0000000..395337c --- /dev/null +++ b/redux/ReduxCore/inc/fields/date/field_date.js @@ -0,0 +1,60 @@ +/*global jQuery, document, redux*/ + +(function( $ ) { + "use strict"; + + redux.field_objects = redux.field_objects || {}; + redux.field_objects.date = redux.field_objects.date || {}; + + $( document ).ready( + function() { + //redux.field_objects.date.init(); + } + ); + + redux.field_objects.date.init = function( selector ) { + if ( !selector ) { + selector = $( document ).find( '.redux-container-date:visible' ); + } + $( selector ).each( + function() { + var el = $( this ); + var parent = el; + if ( !el.hasClass( 'redux-field-container' ) ) { + parent = el.parents( '.redux-field-container:first' ); + } + if ( parent.is( ":hidden" ) ) { // Skip hidden fields + return; + } + if ( parent.hasClass( 'redux-field-init' ) ) { + parent.removeClass( 'redux-field-init' ); + } else { + return; + } + + el.find( '.redux-datepicker' ).each( function() { + $( this ).datepicker({ + "dateFormat":"mm/dd/yy", + beforeShow: function(input, instance){ + var el = $('#ui-datepicker-div'); + var popover = instance.dpDiv; + //$('.redux-container:first').append(el); + $(this).parent().append(el); + $('#ui-datepicker-div').hide(); + setTimeout(function() { + popover.position({ + my: 'left top', + at: 'left bottom', + collision: 'none', + of: input + }); + }, 1); + } + }); + }); + } + ); + + + }; +})( jQuery ); \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/date/field_date.min.js b/redux/ReduxCore/inc/fields/date/field_date.min.js new file mode 100644 index 0000000..6247b35 --- /dev/null +++ b/redux/ReduxCore/inc/fields/date/field_date.min.js @@ -0,0 +1 @@ +!function(n){"use strict";redux.field_objects=redux.field_objects||{},redux.field_objects.date=redux.field_objects.date||{},n(document).ready(function(){}),redux.field_objects.date.init=function(e){e||(e=n(document).find(".redux-container-date:visible")),n(e).each(function(){var e=n(this),i=e;e.hasClass("redux-field-container")||(i=e.parents(".redux-field-container:first")),i.is(":hidden")||i.hasClass("redux-field-init")&&(i.removeClass("redux-field-init"),e.find(".redux-datepicker").each(function(){n(this).datepicker({dateFormat:"mm/dd/yy",beforeShow:function(e,i){var t=n("#ui-datepicker-div"),d=i.dpDiv;n(this).parent().append(t),n("#ui-datepicker-div").hide(),setTimeout(function(){d.position({my:"left top",at:"left bottom",collision:"none",of:e})},1)}})}))})}}(jQuery); \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/date/field_date.php b/redux/ReduxCore/inc/fields/date/field_date.php new file mode 100644 index 0000000..af83c04 --- /dev/null +++ b/redux/ReduxCore/inc/fields/date/field_date.php @@ -0,0 +1,95 @@ +. + * + * @package ReduxFramework + * @subpackage Field_Date + * @author Daniel J Griffiths (Ghost1227) + * @author Dovy Paukstys + * @author Kevin Provance (kprovance) + * @version 3.0.0 + */ + +// Exit if accessed directly +if ( ! defined( 'ABSPATH' ) ) { + exit; +} + +// Don't duplicate me! +if ( ! class_exists( 'ReduxFramework_date' ) ) { + + /** + * Main ReduxFramework_date class + * + * @since 1.0.0 + */ + class ReduxFramework_date { + + /** + * Field Constructor. + * Required - must call the parent constructor, then assign field and value to vars, and obviously call the render field function + * + * @since 1.0.0 + * @access public + * @return void + */ + function __construct( $field = array(), $value = '', $parent=null ) { + $this->parent = $parent; + $this->field = $field; + $this->value = $value; + } + + /** + * Field Render Function. + * Takes the vars and outputs the HTML for the field in the settings + * + * @since 1.0.0 + * @access public + * @return void + */ + public function render() { + $placeholder = ( isset( $this->field['placeholder'] ) ) ? ' placeholder="' . esc_attr( $this->field['placeholder'] ) . '" ' : ''; + + echo ''; + } + + /** + * Enqueue Function. + * If this field requires any scripts, or css define this function and register/enqueue the scripts/css + * + * @since 1.0.0 + * @access public + * @return void + */ + public function enqueue() { + + if ($this->parent->args['dev_mode']) { + wp_enqueue_style( + 'redux-field-date-css', + ReduxFramework::$_url . 'inc/fields/date/field_date.css', + array(), + time(), + 'all' + ); + } + + wp_enqueue_script( + 'redux-field-date-js', + ReduxFramework::$_url . 'inc/fields/date/field_date' . Redux_Functions::isMin() . '.js', + array( 'jquery', 'jquery-ui-core', 'jquery-ui-datepicker', 'redux-js' ), + time(), + true + ); + } + } +} \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/date/field_date.scss b/redux/ReduxCore/inc/fields/date/field_date.scss new file mode 100644 index 0000000..dd931de --- /dev/null +++ b/redux/ReduxCore/inc/fields/date/field_date.scss @@ -0,0 +1,8 @@ +#ui-datepicker-div { + z-index: 15 !important; +} + +.ui-datepicker-header { + background-color: #00abef; +} + diff --git a/redux/ReduxCore/inc/fields/dimensions/field_dimensions.css b/redux/ReduxCore/inc/fields/dimensions/field_dimensions.css new file mode 100644 index 0000000..9b0cbf9 --- /dev/null +++ b/redux/ReduxCore/inc/fields/dimensions/field_dimensions.css @@ -0,0 +1 @@ +.redux-dimensions-container select,.redux-dimensions-container .select_wrapper{width:65px !important;float:left}.redux-dimensions-container .field-dimensions-input{margin-right:10px;margin-bottom:7px}@media screen and (max-width: 782px){.redux-dimensions-container .field-dimensions-input input{display:inline-block !important;width:100px !important}.redux-dimensions-container .field-dimensions-input .add-on{padding:7px 4px;font-size:16px;line-height:1.5}.redux-dimensions-container .select_wrapper{margin-top:6px}} diff --git a/redux/ReduxCore/inc/fields/dimensions/field_dimensions.css.map b/redux/ReduxCore/inc/fields/dimensions/field_dimensions.css.map new file mode 100644 index 0000000..b811826 --- /dev/null +++ b/redux/ReduxCore/inc/fields/dimensions/field_dimensions.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "AACI;2CACgB;EACZ,KAAK,EAAE,eAAe;EACtB,KAAK,EAAE,IAAI;AAGf,mDAAwB;EACpB,YAAY,EAAE,IAAI;EAClB,aAAa,EAAE,GAAG;;AAI1B,oCAAqC;EAGzB,yDAAM;IACF,OAAO,EAAE,uBAAuB;IAChC,KAAK,EAAE,gBAAgB;EAG3B,2DAAQ;IACJ,OAAO,EAAE,OAAO;IAChB,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,GAAG;EAIxB,2CAAgB;IACZ,UAAU,EAAE,GAAG", +"sources": ["field_dimensions.scss"], +"names": [], +"file": "field_dimensions.css" +} \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/dimensions/field_dimensions.js b/redux/ReduxCore/inc/fields/dimensions/field_dimensions.js new file mode 100644 index 0000000..3ddc6f1 --- /dev/null +++ b/redux/ReduxCore/inc/fields/dimensions/field_dimensions.js @@ -0,0 +1,76 @@ + +/*global jQuery, document, redux*/ + +(function( $ ) { + "use strict"; + + redux.field_objects = redux.field_objects || {}; + redux.field_objects.dimensions = redux.field_objects.dimensions || {}; + + $( document ).ready( + function() { + //redux.field_objects.dimensions.init(); + } + ); + + redux.field_objects.dimensions.init = function( selector ) { + + if ( !selector ) { + selector = $( document ).find( '.redux-container-dimensions:visible' ); + } + $( selector ).each( + function() { + var el = $( this ); + var parent = el; + if ( !el.hasClass( 'redux-field-container' ) ) { + parent = el.parents( '.redux-field-container:first' ); + } + if ( parent.is( ":hidden" ) ) { // Skip hidden fields + return; + } + if ( parent.hasClass( 'redux-field-init' ) ) { + parent.removeClass( 'redux-field-init' ); + } else { + return; + } + var default_params = { + width: 'resolve', + triggerChange: true, + allowClear: true + }; + + var select2_handle = el.find( '.select2_params' ); + if ( select2_handle.size() > 0 ) { + var select2_params = select2_handle.val(); + + select2_params = JSON.parse( select2_params ); + default_params = $.extend( {}, default_params, select2_params ); + } + + el.find( ".redux-dimensions-units" ).select2( default_params ); + + el.find( '.redux-dimensions-input' ).on( + 'change', function() { + var units = $( this ).parents( '.redux-field:first' ).find( '.field-units' ).val(); + if ( $( this ).parents( '.redux-field:first' ).find( '.redux-dimensions-units' ).length !== 0 ) { + units = $( this ).parents( '.redux-field:first' ).find( '.redux-dimensions-units option:selected' ).val(); + } + if ( typeof units !== 'undefined' ) { + el.find( '#' + $( this ).attr( 'rel' ) ).val( $( this ).val() + units ); + } else { + el.find( '#' + $( this ).attr( 'rel' ) ).val( $( this ).val() ); + } + } + ); + + el.find( '.redux-dimensions-units' ).on( + 'change', function() { + $( this ).parents( '.redux-field:first' ).find( '.redux-dimensions-input' ).change(); + } + ); + } + ); + + + }; +})( jQuery ); \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/dimensions/field_dimensions.min.js b/redux/ReduxCore/inc/fields/dimensions/field_dimensions.min.js new file mode 100644 index 0000000..ff0be9e --- /dev/null +++ b/redux/ReduxCore/inc/fields/dimensions/field_dimensions.min.js @@ -0,0 +1 @@ +!function(t){"use strict";redux.field_objects=redux.field_objects||{},redux.field_objects.dimensions=redux.field_objects.dimensions||{},t(document).ready(function(){}),redux.field_objects.dimensions.init=function(i){i||(i=t(document).find(".redux-container-dimensions:visible")),t(i).each(function(){var e=t(this),i=e;if(e.hasClass("redux-field-container")||(i=e.parents(".redux-field-container:first")),!i.is(":hidden")&&i.hasClass("redux-field-init")){i.removeClass("redux-field-init");var n={width:"resolve",triggerChange:!0,allowClear:!0},s=e.find(".select2_params");if(0parent = $parent; + $this->field = $field; + $this->value = $value; + + // No errors please + $defaults = array( + 'width' => true, + 'height' => true, + 'units_extended' => false, + 'units' => 'px', + 'mode' => array( + 'width' => false, + 'height' => false, + ), + ); + + $this->field = wp_parse_args( $this->field, $defaults ); + + $defaults = array( + 'width' => '', + 'height' => '', + 'units' => 'px' + ); + + $this->value = wp_parse_args( $this->value, $defaults ); + + if ( isset( $this->value['unit'] ) ) { + $this->value['units'] = $this->value['unit']; + } + + } //function + + /** + * Field Render Function. + * Takes the vars and outputs the HTML for the field in the settings + * + * @since ReduxFramework 1.0.0 + */ + function render() { + + /* + * Acceptable values checks. If the passed variable doesn't pass muster, we unset them + * and reset them with default values to avoid errors. + */ + + // If units field has a value but is not an acceptable value, unset the variable + if ( isset( $this->field['units'] ) && ! Redux_Helpers::array_in_array( $this->field['units'], array( + '', + false, + '%', + 'in', + 'cm', + 'mm', + 'em', + 'ex', + 'pt', + 'pc', + 'px', + 'rem' + ) ) + ) { + unset( $this->field['units'] ); + } + + //if there is a default unit value but is not an accepted value, unset the variable + if ( isset( $this->value['units'] ) && ! Redux_Helpers::array_in_array( $this->value['units'], array( + '', + '%', + 'in', + 'cm', + 'mm', + 'em', + 'ex', + 'pt', + 'pc', + 'px' + ) ) + ) { + unset( $this->value['units'] ); + } + + /* + * Since units field could be an array, string value or bool (to hide the unit field) + * we need to separate our functions to avoid those nasty PHP index notices! + */ + + // if field units has a value and IS an array, then evaluate as needed. + if ( isset( $this->field['units'] ) && ! is_array( $this->field['units'] ) ) { + + //if units fields has a value but units value does not then make units value the field value + if ( isset( $this->field['units'] ) && ! isset( $this->value['units'] ) || $this->field['units'] == false ) { + $this->value['units'] = $this->field['units']; + + // If units field does NOT have a value and units value does NOT have a value, set both to blank (default?) + } else if ( ! isset( $this->field['units'] ) && ! isset( $this->value['units'] ) ) { + $this->field['units'] = 'px'; + $this->value['units'] = 'px'; + + // If units field has NO value but units value does, then set unit field to value field + } else if ( ! isset( $this->field['units'] ) && isset( $this->value['units'] ) ) { + $this->field['units'] = $this->value['units']; + + // if unit value is set and unit value doesn't equal unit field (coz who knows why) + // then set unit value to unit field + } elseif ( isset( $this->value['units'] ) && $this->value['units'] !== $this->field['units'] ) { + $this->value['units'] = $this->field['units']; + } + + // do stuff based on unit field NOT set as an array + } elseif ( isset( $this->field['units'] ) && is_array( $this->field['units'] ) ) { + // nothing to do here, but I'm leaving the construct just in case I have to debug this again. + } + + echo '
    '; + + if ( isset( $this->field['select2'] ) ) { // if there are any let's pass them to js + $select2_params = json_encode( $this->field['select2'] ); + $select2_params = htmlspecialchars( $select2_params, ENT_QUOTES ); + + echo ''; + } + + + // This used to be unit field, but was giving the PHP index error when it was an array, + // so I changed it. + echo ''; + + /** + * Width + * */ + if ( $this->field['width'] === true ) { + if ( ! empty( $this->value['width'] ) && strpos( $this->value['width'], $this->value['units'] ) === false ) { + $this->value['width'] = filter_var( $this->value['width'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION ); + if ( $this->field['units'] !== false ) { + $this->value['width'] .= $this->value['units']; + } + } + echo '
    '; + echo ''; + echo ''; + echo '
    '; + } + + /** + * Height + * */ + if ( $this->field['height'] === true ) { + if ( ! empty( $this->value['height'] ) && strpos( $this->value['height'], $this->value['units'] ) === false ) { + $this->value['height'] = filter_var( $this->value['height'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION ); + if ( $this->field['units'] !== false ) { + $this->value['height'] .= $this->value['units']; + } + } + echo '
    '; + echo ''; + echo ''; + echo '
    '; + } + + /** + * Units + * */ + // If units field is set and units field NOT false then + // fill out the options object and show it, otherwise it's hidden + // and the default units value will apply. + if ( isset( $this->field['units'] ) && $this->field['units'] !== false ) { + echo '
    '; + echo '
    '; + }; + echo "
    "; + } //function + + /** + * Enqueue Function. + * If this field requires any scripts, or css define this function and register/enqueue the scripts/css + * + * @since ReduxFramework 1.0.0 + */ + function enqueue() { + wp_enqueue_style( 'select2-css' ); + + wp_enqueue_script( + 'redux-field-dimensions-js', + ReduxFramework::$_url . 'inc/fields/dimensions/field_dimensions' . Redux_Functions::isMin() . '.js', + array( 'jquery', 'select2-js', 'redux-js' ), + time(), + true + ); + + if ( $this->parent->args['dev_mode'] ) { + wp_enqueue_style( + 'redux-field-dimensions-css', + ReduxFramework::$_url . 'inc/fields/dimensions/field_dimensions.css', + array(), + time(), + 'all' + ); + } + } + + public function output() { + + // if field units has a value and IS an array, then evaluate as needed. + if ( isset( $this->field['units'] ) && ! is_array( $this->field['units'] ) ) { + + //if units fields has a value but units value does not then make units value the field value + if ( isset( $this->field['units'] ) && ! isset( $this->value['units'] ) || $this->field['units'] == false ) { + $this->value['units'] = $this->field['units']; + + // If units field does NOT have a value and units value does NOT have a value, set both to blank (default?) + } else if ( ! isset( $this->field['units'] ) && ! isset( $this->value['units'] ) ) { + $this->field['units'] = 'px'; + $this->value['units'] = 'px'; + + // If units field has NO value but units value does, then set unit field to value field + } else if ( ! isset( $this->field['units'] ) && isset( $this->value['units'] ) ) { + $this->field['units'] = $this->value['units']; + + // if unit value is set and unit value doesn't equal unit field (coz who knows why) + // then set unit value to unit field + } elseif ( isset( $this->value['units'] ) && $this->value['units'] !== $this->field['units'] ) { + $this->value['units'] = $this->field['units']; + } + + // do stuff based on unit field NOT set as an array + } elseif ( isset( $this->field['units'] ) && is_array( $this->field['units'] ) ) { + // nothing to do here, but I'm leaving the construct just in case I have to debug this again. + } + + $units = isset( $this->value['units'] ) ? $this->value['units'] : ""; + + if (!is_array($this->field['mode'])) { + $height = isset( $this->field['mode'] ) && ! empty( $this->field['mode'] ) ? $this->field['mode'] : 'height'; + $width = isset( $this->field['mode'] ) && ! empty( $this->field['mode'] ) ? $this->field['mode'] : 'width'; + } else { + $height = $this->field['mode']['height'] != false ? $this->field['mode']['height'] : 'height'; + $width = $this->field['mode']['width'] != false ? $this->field['mode']['width'] : 'width'; + } + + $cleanValue = array( + $height => isset( $this->value['height'] ) ? filter_var( $this->value['height'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION ) : '', + $width => isset( $this->value['width'] ) ? filter_var( $this->value['width'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION ) : '', + ); + + $style = ""; + + foreach ( $cleanValue as $key => $value ) { + // Output if it's a numeric entry + if ( isset( $value ) && is_numeric( $value ) ) { + $style .= $key . ':' . $value . $units . ';'; + } + } + + if ( ! empty( $style ) ) { + if ( ! empty( $this->field['output'] ) && is_array( $this->field['output'] ) ) { + $keys = implode( ",", $this->field['output'] ); + $this->parent->outputCSS .= $keys . "{" . $style . '}'; + } + + if ( ! empty( $this->field['compiler'] ) && is_array( $this->field['compiler'] ) ) { + $keys = implode( ",", $this->field['compiler'] ); + $this->parent->compilerCSS .= $keys . "{" . $style . '}'; + } + } + } //function + } //class + } + + diff --git a/redux/ReduxCore/inc/fields/dimensions/field_dimensions.scss b/redux/ReduxCore/inc/fields/dimensions/field_dimensions.scss new file mode 100644 index 0000000..ef3f50a --- /dev/null +++ b/redux/ReduxCore/inc/fields/dimensions/field_dimensions.scss @@ -0,0 +1,34 @@ +.redux-dimensions-container { + select, + .select_wrapper { + width: 65px !important; + float: left; + } + + .field-dimensions-input { + margin-right: 10px; + margin-bottom: 7px; + } +} + +@media screen and (max-width: 782px) { + .redux-dimensions-container { + .field-dimensions-input { + input { + display: inline-block !important; + width: 100px !important; + } + + .add-on { + padding: 7px 4px; + font-size: 16px; + line-height: 1.5; + } + } + + .select_wrapper { + margin-top: 6px; + } + } +} + diff --git a/redux/ReduxCore/inc/fields/divide/field_divide.css b/redux/ReduxCore/inc/fields/divide/field_divide.css new file mode 100644 index 0000000..85e90f8 --- /dev/null +++ b/redux/ReduxCore/inc/fields/divide/field_divide.css @@ -0,0 +1 @@ +.redux-main .divide{height:20px;line-height:20px;float:none;border-color:#E7E7E7;display:block;width:100%;height:35px !important;line-height:35px !important;position:relative;margin:15px 0 10px 0}.redux-main .divide .inner{width:42% !important;left:40% !important;margin-left:-6%;background-color:#FCFCFC;border-color:#E7E7E7;position:absolute;height:1px;top:50%;width:100%;margin-top:-1px;border-top-width:1px;border-top-style:solid}.redux-main .divide .inner span{background-color:#FCFCFC;border-color:#E7E7E7;height:5px;width:5px;border-width:2px;border-style:solid;display:block;position:absolute;left:50%;margin-left:-5px;margin-top:-5px}.wp-customizer .redux-container-divide .divide .inner{width:82% !important;left:18% !important;margin-left:-8%} diff --git a/redux/ReduxCore/inc/fields/divide/field_divide.css.map b/redux/ReduxCore/inc/fields/divide/field_divide.css.map new file mode 100644 index 0000000..5b14373 --- /dev/null +++ b/redux/ReduxCore/inc/fields/divide/field_divide.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "AACI,mBAAQ;EACJ,MAAM,EAAE,IAAI;EACZ,WAAW,EAAE,IAAI;EACjB,KAAK,EAAE,IAAI;EACX,YAAY,EAAE,OAAO;EACrB,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,eAAe;EACvB,WAAW,EAAE,eAAe;EAC5B,QAAQ,EAAE,QAAQ;EAClB,MAAM,EAAE,aAAa;EAErB,0BAAO;IACH,KAAK,EAAE,cAAc;IACrB,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,GAAG;IAChB,gBAAgB,EAAE,OAAO;IACzB,YAAY,EAAE,OAAO;IACrB,QAAQ,EAAE,QAAQ;IAClB,MAAM,EAAE,GAAG;IACX,GAAG,EAAE,GAAG;IACR,KAAK,EAAE,IAAI;IACX,UAAU,EAAE,IAAI;IAChB,gBAAgB,EAAE,GAAG;IACrB,gBAAgB,EAAE,KAAK;IACvB,+BAAK;MACD,gBAAgB,EAAE,OAAO;MACzB,YAAY,EAAE,OAAO;MACrB,MAAM,EAAE,GAAG;MACX,KAAK,EAAE,GAAG;MACV,YAAY,EAAE,GAAG;MACjB,YAAY,EAAE,KAAK;MACnB,OAAO,EAAE,KAAK;MACd,QAAQ,EAAE,QAAQ;MAClB,IAAI,EAAE,GAAG;MACT,WAAW,EAAE,IAAI;MACjB,UAAU,EAAE,IAAI;;AAO5B,qDAAe;EACX,KAAK,EAAE,cAAc;EACrB,IAAI,EAAE,cAAc;EACpB,WAAW,EAAE,GAAG", +"sources": ["field_divide.scss"], +"names": [], +"file": "field_divide.css" +} \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/divide/field_divide.php b/redux/ReduxCore/inc/fields/divide/field_divide.php new file mode 100644 index 0000000..842dd76 --- /dev/null +++ b/redux/ReduxCore/inc/fields/divide/field_divide.php @@ -0,0 +1,85 @@ +. + * + * @package ReduxFramework + * @subpackage Field_Divide + * @author Daniel J Griffiths (Ghost1227) + * @author Dovy Paukstys + * @version 3.0.0 + */ + +// Exit if accessed directly +if ( !defined ( 'ABSPATH' ) ) { + exit; +} + +// Don't duplicate me! +if ( !class_exists ( 'ReduxFramework_divide' ) ) { + + /** + * Main ReduxFramework_divide class + * + * @since 1.0.0 + */ + class ReduxFramework_divide { + + /** + * Field Constructor. + * Required - must call the parent constructor, then assign field and value to vars, and obviously call the render field function + * + * @since 1.0.0 + * @access public + * @return void + */ + function __construct ( $field = array(), $value = '', $parent=null ) { + $this->parent = $parent; + $this->field = $field; + $this->value = $value; + } + + /** + * Field Render Function. + * Takes the vars and outputs the HTML for the field in the settings + * + * @since 1.0.0 + * @access public + * @return void + */ + public function render () { + echo '
    '; + echo '
     
    '; + echo '
    '; + } + + /** + * Enqueue Function. + * If this field requires any scripts, or css define this function and register/enqueue the scripts/css + * + * @since 1.0.0 + * @access public + * @return void + */ + public function enqueue() { + if ($this->parent->args['dev_mode']) { + wp_enqueue_style( + 'redux-field-divide', + ReduxFramework::$_url . 'inc/fields/divide/field_divide.css', + array(), + time(), + 'all' + ); + } + } + } +} \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/divide/field_divide.scss b/redux/ReduxCore/inc/fields/divide/field_divide.scss new file mode 100644 index 0000000..b34f814 --- /dev/null +++ b/redux/ReduxCore/inc/fields/divide/field_divide.scss @@ -0,0 +1,51 @@ +.redux-main { + .divide { + height: 20px; + line-height: 20px; + float: none; + border-color: #E7E7E7; + display: block; + width: 100%; + height: 35px !important; + line-height: 35px !important; + position: relative; + margin: 15px 0 10px 0; + + .inner { + width: 42% !important; + left: 40% !important; + margin-left: -6%; + background-color: #FCFCFC; + border-color: #E7E7E7; + position: absolute; + height: 1px; + top: 50%; + width: 100%; + margin-top: -1px; + border-top-width: 1px; + border-top-style: solid; + span { + background-color: #FCFCFC; + border-color: #E7E7E7; + height: 5px; + width: 5px; + border-width: 2px; + border-style: solid; + display: block; + position: absolute; + left: 50%; + margin-left: -5px; + margin-top: -5px; + } + } + } +} + +.wp-customizer .redux-container-divide { + .divide .inner { + width: 82% !important; + left: 18% !important; + margin-left: -8%; + } +} + diff --git a/redux/ReduxCore/inc/fields/editor/field_editor.css b/redux/ReduxCore/inc/fields/editor/field_editor.css new file mode 100644 index 0000000..735a0db --- /dev/null +++ b/redux/ReduxCore/inc/fields/editor/field_editor.css @@ -0,0 +1 @@ +.redux-container-editor .mceLayout td{border-width:1px;margin:0;padding:1px}.redux-container-editor input,.redux-container-editor textarea{margin:inherit}.redux-container-editor textarea{border-style:none;border:0;border-width:0}.redux-container-editor .wp-editor-container{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.redux-container-editor .wp-editor-container textarea{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;border-style:inherit}.redux-container-editor .quicktags-toolbar input{margin:2px 1px 4px;line-height:18px;display:inline-block;min-width:26px;padding:2px 4px;font:12px/18px Arial, Helvetica, sans-serif normal;color:#464646;border:1px solid #c3c3c3;-webkit-border-radius:3px;border-radius:3px;background:#eee;background-image:-webkit-gradient(linear, left bottom, left top, from(#e3e3e3), to(#fff));background-image:-webkit-linear-gradient(bottom, #e3e3e3, #fff);background-image:-moz-linear-gradient(bottom, #e3e3e3, #fff);background-image:-o-linear-gradient(bottom, #e3e3e3, #fff);background-image:linear-gradient(to top, #e3e3e3, #fff)} diff --git a/redux/ReduxCore/inc/fields/editor/field_editor.css.map b/redux/ReduxCore/inc/fields/editor/field_editor.css.map new file mode 100644 index 0000000..ae753e4 --- /dev/null +++ b/redux/ReduxCore/inc/fields/editor/field_editor.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "AACI,qCAAc;EACV,YAAY,EAAE,GAAG;EACjB,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,GAAG;AAGhB;gCACS;EACL,MAAM,EAAE,OAAO;AAGnB,gCAAS;EACL,YAAY,EAAE,IAAI;EAClB,MAAM,EAAE,CAAC;EACT,YAAY,EAAE,CAAC;AAGnB,4CAAqB;EACjB,qBAAqB,EAAE,GAAG;EAC1B,kBAAkB,EAAE,GAAG;EACvB,aAAa,EAAE,GAAG;EAElB,qDAAS;IACL,qBAAqB,EAAE,CAAC;IACxB,kBAAkB,EAAE,CAAC;IACrB,aAAa,EAAE,CAAC;IAChB,YAAY,EAAE,OAAO;AAI7B,gDAAyB;EACrB,MAAM,EAAE,WAAW;EACnB,WAAW,EAAE,IAAI;EACjB,OAAO,EAAE,YAAY;EACrB,SAAS,EAAE,IAAI;EACf,OAAO,EAAE,OAAO;EAChB,IAAI,EAAE,6CAA6C;EACnD,KAAK,EAAE,OAAO;EACd,MAAM,EAAE,iBAAiB;EACzB,qBAAqB,EAAE,GAAG;EAC1B,aAAa,EAAE,GAAG;EAClB,UAAU,EAAE,IAAI;EAChB,gBAAgB,EAAE,wEAAwE;EAC1F,gBAAgB,EAAE,8CAA8C;EAChE,gBAAgB,EAAE,2CAA2C;EAC7D,gBAAgB,EAAE,yCAAyC;EAC3D,gBAAgB,EAAE,sCAAsC", +"sources": ["field_editor.scss"], +"names": [], +"file": "field_editor.css" +} \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/editor/field_editor.js b/redux/ReduxCore/inc/fields/editor/field_editor.js new file mode 100644 index 0000000..288b606 --- /dev/null +++ b/redux/ReduxCore/inc/fields/editor/field_editor.js @@ -0,0 +1,44 @@ +/** + * Redux Editor on change callback + * Dependencies : jquery + * Feature added by : Dovy Paukstys + * : Kevin Provance (who helped) :P + * Date : 07 June 2014 + */ + +/*global redux_change, wp, tinymce, redux*/ +(function( $ ) { + "use strict"; + + redux.field_objects = redux.field_objects || {}; + redux.field_objects.editor = redux.field_objects.editor || {}; + + $( document ).ready( + function() { + //redux.field_objects.editor.init(); + } + ); + + redux.field_objects.editor.init = function( selector ) { + setTimeout( + function() { + if (typeof(tinymce) !== 'undefined') { + for ( var i = 0; i < tinymce.editors.length; i++ ) { + redux.field_objects.editor.onChange( i ); + } + } + }, 1000 + ); + }; + + redux.field_objects.editor.onChange = function( i ) { + tinymce.editors[i].on( + 'change', function( e ) { + var el = jQuery( e.target.contentAreaContainer ); + if ( el.parents( '.redux-container-editor:first' ).length !== 0 ) { + redux_change( $( '.wp-editor-area' ) ); + } + } + ); + }; +})( jQuery ); diff --git a/redux/ReduxCore/inc/fields/editor/field_editor.min.js b/redux/ReduxCore/inc/fields/editor/field_editor.min.js new file mode 100644 index 0000000..3828421 --- /dev/null +++ b/redux/ReduxCore/inc/fields/editor/field_editor.min.js @@ -0,0 +1 @@ +!function(t){"use strict";redux.field_objects=redux.field_objects||{},redux.field_objects.editor=redux.field_objects.editor||{},t(document).ready(function(){}),redux.field_objects.editor.init=function(e){setTimeout(function(){if("undefined"!=typeof tinymce)for(var e=0;e. + * + * @package ReduxFramework + * @subpackage Field_Editor + * @author Daniel J Griffiths (Ghost1227) + * @author Dovy Paukstys + * @author Kevin Provance (kprovance) + * @version 3.0.0 + */ + +// Exit if accessed directly +if ( ! defined( 'ABSPATH' ) ) { + exit; +} + +// Don't duplicate me! +if ( ! class_exists( 'ReduxFramework_editor' ) ) { + + /** + * Main ReduxFramework_editor class + * + * @since 1.0.0 + */ + class ReduxFramework_editor { + + /** + * Field Constructor. + * Required - must call the parent constructor, then assign field and value to vars, and obviously call the render field function + * + * @since 1.0.0 + * @access public + * @return void + */ + function __construct( $field = array(), $value = '', $parent=null ) { + $this->parent = $parent; + $this->field = $field; + $this->value = $value; + } + + /** + * Field Render Function. + * Takes the vars and outputs the HTML for the field in the settings + * + * @since 1.0.0 + * @access public + * @return void + */ + public function render() { + + if ( ! isset( $this->field['args'] ) ) { + $this->field['args'] = array(); + } + + $this->field['args']['onchange_callback'] = "alert('here')"; + + // Setup up default args + $defaults = array( + 'textarea_name' => $this->field['name'] . $this->field['name_suffix'], + 'editor_class' => $this->field['class'], + 'textarea_rows' => 10, //Wordpress default + 'teeny' => true, + ); + + if ( isset( $this->field['editor_options'] ) && empty( $this->field['args'] ) ) { + $this->field['args'] = $this->field['editor_options']; + unset( $this->field['editor_options'] ); + } + + $this->field['args'] = wp_parse_args( $this->field['args'], $defaults ); + + wp_editor( $this->value, $this->field['id'], $this->field['args'] ); + } + + + /** + * Enqueue Function. + * If this field requires any scripts, or css define this function and register/enqueue the scripts/css + * + * @since 1.0.0 + * @access public + * @return void + */ + public function enqueue() { + if ($this->parent->args['dev_mode']) { + wp_enqueue_style( + 'redux-field-editor-css', + ReduxFramework::$_url . 'inc/fields/editor/field_editor.css', + array(), + time(), + 'all' + ); + } + + wp_enqueue_script( + 'redux-field-editor-js', + ReduxFramework::$_url . 'inc/fields/editor/field_editor' . Redux_Functions::isMin() . '.js', + array( 'jquery', 'redux-js' ), + time(), + true + ); + } + } +} \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/editor/field_editor.scss b/redux/ReduxCore/inc/fields/editor/field_editor.scss new file mode 100644 index 0000000..64798bd --- /dev/null +++ b/redux/ReduxCore/inc/fields/editor/field_editor.scss @@ -0,0 +1,51 @@ +.redux-container-editor { + .mceLayout td { + border-width: 1px; + margin: 0; + padding: 1px; + } + + input, + textarea { + margin: inherit; + } + + textarea { + border-style: none; + border: 0; + border-width: 0; + } + + .wp-editor-container { + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + + textarea { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + border-style: inherit; + } + } + + .quicktags-toolbar input { + margin: 2px 1px 4px; + line-height: 18px; + display: inline-block; + min-width: 26px; + padding: 2px 4px; + font: 12px/18px Arial, Helvetica, sans-serif normal; + color: #464646; + border: 1px solid #c3c3c3; + -webkit-border-radius: 3px; + border-radius: 3px; + background: #eee; + background-image: -webkit-gradient(linear, left bottom, left top, from(#e3e3e3), to(#fff)); + background-image: -webkit-linear-gradient(bottom, #e3e3e3, #fff); + background-image: -moz-linear-gradient(bottom, #e3e3e3, #fff); + background-image: -o-linear-gradient(bottom, #e3e3e3, #fff); + background-image: linear-gradient(to top, #e3e3e3, #fff); + } +} + diff --git a/redux/ReduxCore/inc/fields/gallery/field_gallery.js b/redux/ReduxCore/inc/fields/gallery/field_gallery.js new file mode 100644 index 0000000..c44445a --- /dev/null +++ b/redux/ReduxCore/inc/fields/gallery/field_gallery.js @@ -0,0 +1,137 @@ +/* global redux_change, wp */ + +/*global redux_change, redux*/ + +(function( $ ) { + "use strict"; + + redux.field_objects = redux.field_objects || {}; + redux.field_objects.gallery = redux.field_objects.gallery || {}; + + redux.field_objects.gallery.init = function( selector ) { + + + if ( !selector ) { + selector = $( document ).find( '.redux-container-gallery:visible' ); + } + + $( selector ).each( + function() { + var el = $( this ); + var parent = el; + if ( !el.hasClass( 'redux-field-container' ) ) { + parent = el.parents( '.redux-field-container:first' ); + } + if ( parent.is( ":hidden" ) ) { // Skip hidden fields + return; + } + if ( parent.hasClass( 'redux-field-init' ) ) { + parent.removeClass( 'redux-field-init' ); + } else { + return; + } + // When the user clicks on the Add/Edit gallery button, we need to display the gallery editing + el.on( + { + click: function( event ) { + //console.log(event); + // hide gallery settings used for posts/pages + wp.media.view.Settings.Gallery = wp.media.view.Settings.Gallery.extend({ +// render: function(){ +// console.log(wp.media.view); +// this.update.apply( this, ['size'] ); +// return this; +// }, + template: function(view){ + //console.log(view); + + return;// wp.media.template('gallery-settings')(view); + } + }); + + var current_gallery = $( this ).closest( 'fieldset' ); + + if ( event.currentTarget.id === 'clear-gallery' ) { + //remove value from input + + var rmVal = current_gallery.find( '.gallery_values' ).val( '' ); + + //remove preview images + current_gallery.find( ".screenshot" ).html( "" ); + + return; + + } + + // Make sure the media gallery API exists + if ( typeof wp === 'undefined' || !wp.media || !wp.media.gallery ) { + return; + } + event.preventDefault(); + + // Activate the media editor + var $$ = $( this ); + + var val = current_gallery.find( '.gallery_values' ).val(); + var final; + + if ( !val ) { + final = '[gallery ids="0"]'; + } else { + final = '[gallery ids="' + val + '"]'; + } + + + var frame = wp.media.gallery.edit( final ); + + if (!val) { + var uploader = $('body').find('#' + frame.el.id); + var inline = uploader.find('.uploader-inline'); + var spinner = uploader.find('.media-toolbar .spinner'); + + setTimeout( + function(){ + if (inline.hasClass('hidden')) { + inline.removeClass('hidden'); + spinner.removeClass('is-active'); + } + }, 400 + ); + } + + // When the gallery-edit state is updated, copy the attachment ids across + frame.state( 'gallery-edit' ).on( + 'update', function( selection ) { + + //clear screenshot div so we can append new selected images + current_gallery.find( ".screenshot" ).html( "" ); + + var element, preview_html = "", preview_img; + var ids = selection.models.map( + function( e ) { + element = e.toJSON(); + //preview_img = typeof element.sizes.thumbnail !== 'undefined' ? element.sizes.thumbnail.url : element.url; + preview_img = (typeof element.sizes !== "undefined" && typeof element.sizes.thumbnail !== 'undefined') ? element.sizes.thumbnail.url : element.url; + + preview_html = ""; + current_gallery.find( ".screenshot" ).append( preview_html ); + + return e.id; + } + ); + + current_gallery.find( '.gallery_values' ).val( ids.join( ',' ) ); + redux_change( current_gallery.find( '.gallery_values' ) ); + frame.detach(); + } + ); + + return false; + } + }, '.gallery-attachments' + ); + } + ); + + }; +})( jQuery ); \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/gallery/field_gallery.min.js b/redux/ReduxCore/inc/fields/gallery/field_gallery.min.js new file mode 100644 index 0000000..7926d9f --- /dev/null +++ b/redux/ReduxCore/inc/fields/gallery/field_gallery.min.js @@ -0,0 +1 @@ +!function(s){"use strict";redux.field_objects=redux.field_objects||{},redux.field_objects.gallery=redux.field_objects.gallery||{},redux.field_objects.gallery.init=function(e){e||(e=s(document).find(".redux-container-gallery:visible")),s(e).each(function(){var e=s(this),i=e;e.hasClass("redux-field-container")||(i=e.parents(".redux-field-container:first")),i.is(":hidden")||i.hasClass("redux-field-init")&&(i.removeClass("redux-field-init"),e.on({click:function(e){wp.media.view.Settings.Gallery=wp.media.view.Settings.Gallery.extend({template:function(e){}});var n=s(this).closest("fieldset");if("clear-gallery"!==e.currentTarget.id){if("undefined"!=typeof wp&&wp.media&&wp.media.gallery){e.preventDefault();s(this);var i,l=n.find(".gallery_values").val();i=l?'[gallery ids="'+l+'"]':'[gallery ids="0"]';var t=wp.media.gallery.edit(i);if(!l){var a=s("body").find("#"+t.el.id),d=a.find(".uploader-inline"),r=a.find(".media-toolbar .spinner");setTimeout(function(){d.hasClass("hidden")&&(d.removeClass("hidden"),r.removeClass("is-active"))},400)}return t.state("gallery-edit").on("update",function(e){n.find(".screenshot").html("");var i,l,a="",d=e.models.map(function(e){return i=e.toJSON(),l=void 0!==i.sizes&&void 0!==i.sizes.thumbnail?i.sizes.thumbnail.url:i.url,a="",n.find(".screenshot").append(a),e.id});n.find(".gallery_values").val(d.join(",")),redux_change(n.find(".gallery_values")),t.detach()}),!1}}else{n.find(".gallery_values").val("");n.find(".screenshot").html("")}}},".gallery-attachments"))})}}(jQuery); \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/gallery/field_gallery.php b/redux/ReduxCore/inc/fields/gallery/field_gallery.php new file mode 100644 index 0000000..a237fcc --- /dev/null +++ b/redux/ReduxCore/inc/fields/gallery/field_gallery.php @@ -0,0 +1,105 @@ +. + * + * @package ReduxFramework + * @subpackage Field_Gallery + * @author Abdullah Almesbahi (cadr-sa) + * @version 3.0.0 + */ + +// Exit if accessed directly +if ( ! defined( 'ABSPATH' ) ) { + exit; +} + +// Don't duplicate me! +if ( ! class_exists( 'ReduxFramework_gallery' ) ) { + + /** + * Main ReduxFramework_gallery class + * + * @since 3.0.0 + */ + class ReduxFramework_gallery { + + /** + * Field Constructor. + * Required - must call the parent constructor, then assign field and value to vars, and obviously call the render field function + * + * @since 1.0.0 + * @access public + * @return void + */ + function __construct( $field = array(), $value = '', $parent=null ) { + $this->parent = $parent; + $this->field = $field; + $this->value = $value; + } + + /** + * Field Render Function. + * Takes the vars and outputs the HTML for the field in the settings + * + * @since 1.0.0 + * @access public + * @return void + */ + public function render() { + echo '
    '; + + if ( ! empty( $this->value ) ) { + $ids = explode( ',', $this->value ); + + foreach ( $ids as $attachment_id ) { + $img = wp_get_attachment_image_src( $attachment_id, 'thumbnail' ); + echo ''; + echo ''; + echo ''; + } + } + + echo '
    '; + echo '' . __( 'Add/Edit Gallery', 'redux-framework' ) . ' '; + echo '' . __( 'Clear Gallery', 'redux-framework' ) . ''; + echo ''; + } + + /** + * Enqueue Function. + * If this field requires any scripts, or css define this function and register/enqueue the scripts/css + * + * @since 1.0.0 + * @access public + * @return void + */ + public function enqueue() { + + if ( function_exists( 'wp_enqueue_media' ) ) { + wp_enqueue_media(); + } else { + wp_enqueue_script( 'media-upload' ); + wp_enqueue_script( 'thickbox' ); + wp_enqueue_style( 'thickbox' ); + } + + wp_enqueue_script( + 'redux-field-gallery-js', + ReduxFramework::$_url . 'inc/fields/gallery/field_gallery' . Redux_Functions::isMin() . '.js', + array( 'jquery', 'redux-js' ), + time(), + true + ); + } + } +} \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/image_select/field_image_select.css b/redux/ReduxCore/inc/fields/image_select/field_image_select.css new file mode 100644 index 0000000..474f934 --- /dev/null +++ b/redux/ReduxCore/inc/fields/image_select/field_image_select.css @@ -0,0 +1 @@ +.redux-container-image_select .redux-table-container{display:table;table-layout:fixed;width:100%}.redux-container-image_select .redux-image-select{margin:0 !important}.redux-container-image_select .redux-image-select .tiles{display:block;background-color:#FFF;background-repeat:repeat;width:40px;height:40px}.redux-container-image_select .redux-image-select img,.redux-container-image_select .redux-image-select .tiles{border-color:#d9d9d9}.redux-container-image_select .redux-image-select li:last-child{margin-bottom:0}.redux-container-image_select .redux-image-select input[type='radio']{display:none}.redux-container-image_select .redux-image-select-presets img{width:100%}.redux-container-image_select ul.redux-image-select li{margin:0 10px 3px 10px;display:inline-block;padding:2px 2px;padding-left:0}.redux-container-image_select .redux-image-select-selected{background-color:#f9f9f9}.redux-container-image_select .redux-image-select img,.redux-container-image_select .redux-image-select-selected img,.redux-container-image_select .redux-image-select .tiles,.redux-container-image_select .redux-image-select-selected .tiles{border-width:4px;border-style:solid}.redux-container-image_select .redux-image-select-selected .tiles,.redux-container-image_select .redux-image-select-selected .tiles{border-color:#7a7a7a} diff --git a/redux/ReduxCore/inc/fields/image_select/field_image_select.css.map b/redux/ReduxCore/inc/fields/image_select/field_image_select.css.map new file mode 100644 index 0000000..12eb6cd --- /dev/null +++ b/redux/ReduxCore/inc/fields/image_select/field_image_select.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "AACI,oDAAuB;EACnB,OAAO,EAAE,KAAK;EACd,YAAY,EAAE,KAAK;EACnB,KAAK,EAAE,IAAI;AAGf,iDAAoB;EAChB,MAAM,EAAE,YAAY;EAEpB,wDAAO;IACH,OAAO,EAAE,KAAK;IACd,gBAAgB,EAAE,IAAI;IACtB,iBAAiB,EAAE,MAAM;IACzB,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,IAAI;EAGhB;0DACO;IACH,YAAY,EAAE,OAAO;EAGzB,+DAAc;IACV,aAAa,EAAE,CAAC;EAGpB,qEAAoB;IAChB,OAAO,EAAE,IAAI;AAIrB,6DAAgC;EAC5B,KAAK,EAAE,IAAI;AAGf,sDAAyB;EACrB,MAAM,EAAE,eAAe;EACvB,OAAO,EAAE,YAAY;EACrB,OAAO,EAAE,OAAO;EAChB,YAAY,EAAE,CAAC;AAGnB,0DAA6B;EACzB,gBAAgB,EAAE,OAAO;AAG7B;;;iEAGoC;EAChC,YAAY,EAAE,GAAG;EACjB,YAAY,EAAE,KAAK;AAKnB;iEAAO;EACH,YAAY,EAAE,OAAO", +"sources": ["field_image_select.scss"], +"names": [], +"file": "field_image_select.css" +} \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/image_select/field_image_select.js b/redux/ReduxCore/inc/fields/image_select/field_image_select.js new file mode 100644 index 0000000..ae209b3 --- /dev/null +++ b/redux/ReduxCore/inc/fields/image_select/field_image_select.js @@ -0,0 +1,119 @@ +/* global confirm, redux, redux_change */ + +/*global redux_change, redux*/ + +(function( $ ) { + "use strict"; + + redux.field_objects = redux.field_objects || {}; + redux.field_objects.image_select = redux.field_objects.image_select || {}; + + $( document ).ready( + function() { + //redux.field_objects.image_select.init(); + } + ); + + redux.field_objects.image_select.init = function( selector ) { + + if ( !selector ) { + selector = $( document ).find( ".redux-group-tab:visible" ).find( '.redux-container-image_select:visible' ); + } + + $( selector ).each( + function() { + var el = $( this ); + var parent = el; + if ( !el.hasClass( 'redux-field-container' ) ) { + parent = el.parents( '.redux-field-container:first' ); + } + if ( parent.is( ":hidden" ) ) { // Skip hidden fields + return; + } + if ( parent.hasClass( 'redux-field-init' ) ) { + parent.removeClass( 'redux-field-init' ); + } else { + return; + } + // On label click, change the input and class + el.find( '.redux-image-select label img, .redux-image-select label .tiles' ).click( + function( e ) { + var id = $( this ).closest( 'label' ).attr( 'for' ); + + $( this ).parents( "fieldset:first" ).find( '.redux-image-select-selected' ).removeClass( 'redux-image-select-selected' ).find( "input[type='radio']" ).attr( + "checked", false + ); + $( this ).closest( 'label' ).find( 'input[type="radio"]' ).prop( 'checked' ); + + if ( $( this ).closest( 'label' ).hasClass( 'redux-image-select-preset-' + id ) ) { // If they clicked on a preset, import! + e.preventDefault(); + + var presets = $( this ).closest( 'label' ).find( 'input' ); + var data = presets.data( 'presets' ); + var merge = presets.data( 'merge' ); + + if( merge !== undefined && merge !== null ) { + if( $.type( merge ) === 'string' ) { + merge = merge.split('|'); + } + + $.each(data, function( index, value ) { + if( ( merge === true || $.inArray( index, merge ) != -1 ) && $.type( redux.options[index] ) === 'object' ) { + data[index] = $.extend(redux.options[index], data[index]); + } + }); + } + + if ( presets !== undefined && presets !== null ) { + var answer = confirm( redux.args.preset_confirm ); + + if ( answer ) { + el.find( 'label[for="' + id + '"]' ).addClass( 'redux-image-select-selected' ).find( "input[type='radio']" ).attr( + "checked", true + ); + window.onbeforeunload = null; + if ( $( '#import-code-value' ).length === 0 ) { + $( this ).append( '' ); + } else { + $( '#import-code-value' ).val( JSON.stringify( data ) ); + } + if ( $( '#publishing-action #publish' ).length !== 0 ) { + $( '#publish' ).click(); + } else { + $( '#redux-import' ).click(); + } + } + } else { + } + + return false; + } else { + el.find( 'label[for="' + id + '"]' ).addClass( 'redux-image-select-selected' ).find( "input[type='radio']" ).attr( + "checked", true + ).trigger('change'); + + redux_change( $( this ).closest( 'label' ).find( 'input[type="radio"]' ) ); + } + } + ); + + // Used to display a full image preview of a tile/pattern + el.find( '.tiles' ).qtip( + { + content: { + text: function( event, api ) { + return ""; + }, + }, + style: 'qtip-tipsy', + position: { + my: 'top center', // Position my top left... + at: 'bottom center', // at the bottom right of... + } + } + ); + } + ); + + }; +})( jQuery ); \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/image_select/field_image_select.min.js b/redux/ReduxCore/inc/fields/image_select/field_image_select.min.js new file mode 100644 index 0000000..27f3f16 --- /dev/null +++ b/redux/ReduxCore/inc/fields/image_select/field_image_select.min.js @@ -0,0 +1 @@ +!function(d){"use strict";redux.field_objects=redux.field_objects||{},redux.field_objects.image_select=redux.field_objects.image_select||{},d(document).ready(function(){}),redux.field_objects.image_select.init=function(e){e||(e=d(document).find(".redux-group-tab:visible").find(".redux-container-image_select:visible")),d(e).each(function(){var r=d(this),e=r;r.hasClass("redux-field-container")||(e=r.parents(".redux-field-container:first")),e.is(":hidden")||e.hasClass("redux-field-init")&&(e.removeClass("redux-field-init"),r.find(".redux-image-select label img, .redux-image-select label .tiles").click(function(e){var t=d(this).closest("label").attr("for");if(d(this).parents("fieldset:first").find(".redux-image-select-selected").removeClass("redux-image-select-selected").find("input[type='radio']").attr("checked",!1),d(this).closest("label").find('input[type="radio"]').prop("checked"),d(this).closest("label").hasClass("redux-image-select-preset-"+t)){e.preventDefault();var i=d(this).closest("label").find("input"),s=i.data("presets"),l=i.data("merge");if(null!=l&&("string"===d.type(l)&&(l=l.split("|")),d.each(s,function(e,t){!0!==l&&-1==d.inArray(e,l)||"object"!==d.type(redux.options[e])||(s[e]=d.extend(redux.options[e],s[e]))})),null!=i)confirm(redux.args.preset_confirm)&&(r.find('label[for="'+t+'"]').addClass("redux-image-select-selected").find("input[type='radio']").attr("checked",!0),window.onbeforeunload=null,0===d("#import-code-value").length?d(this).append('"):d("#import-code-value").val(JSON.stringify(s)),0!==d("#publishing-action #publish").length?d("#publish").click():d("#redux-import").click());return!1}r.find('label[for="'+t+'"]').addClass("redux-image-select-selected").find("input[type='radio']").attr("checked",!0).trigger("change"),redux_change(d(this).closest("label").find('input[type="radio"]'))}),r.find(".tiles").qtip({content:{text:function(e,t){return""}},style:"qtip-tipsy",position:{my:"top center",at:"bottom center"}}))})}}(jQuery); \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/image_select/field_image_select.php b/redux/ReduxCore/inc/fields/image_select/field_image_select.php new file mode 100644 index 0000000..b0e10b5 --- /dev/null +++ b/redux/ReduxCore/inc/fields/image_select/field_image_select.php @@ -0,0 +1,279 @@ +. + * + * @package ReduxFramework + * @subpackage Field_Images + * @author Daniel J Griffiths (Ghost1227) + * @author Dovy Paukstys + * @version 3.0.0 + */ + +// Exit if accessed directly +if ( ! defined( 'ABSPATH' ) ) { + exit; +} + +// Don't duplicate me! +if ( ! class_exists( 'ReduxFramework_image_select' ) ) { + + /** + * Main ReduxFramework_image_select class + * + * @since 1.0.0 + */ + class ReduxFramework_image_select { + + public $parent; + public $field; + public $value; + + /** + * Field Constructor. + * Required - must call the parent constructor, then assign field and value to vars, and obviously call the render field function + * + * @since 1.0.0 + * @access public + * @return void + */ + function __construct( $field = array(), $value = '', $parent=null ) { + $this->parent = $parent; + $this->field = $field; + $this->value = $value; + } + + /** + * Field Render Function. + * Takes the vars and outputs the HTML for the field in the settings + * + * @since 1.0.0 + * @access public + * @return void + */ + public function render() { + + if ( ! empty( $this->field['options'] ) ) { + echo '
    '; + echo '
      '; + + $x = 1; + + foreach ( $this->field['options'] as $k => $v ) { + + if ( ! is_array( $v ) ) { + $v = array( 'img' => $v ); + } + + if ( ! isset( $v['title'] ) ) { + $v['title'] = ''; + } + + if ( ! isset( $v['alt'] ) ) { + $v['alt'] = $v['title']; + } + + if ( ! isset( $v['class'] ) ) { + $v['class'] = ''; + } + + $style = ''; + + if ( ! empty( $this->field['width'] ) ) { + $style .= 'width: ' . $this->field['width']; + + if ( is_numeric( $this->field['width'] ) ) { + $style .= 'px'; + } + + $style .= ';'; + } else { + $style .= " width: 100%; "; + } + + if ( ! empty( $this->field['height'] ) ) { + $style .= 'height: ' . $this->field['height']; + + if ( is_numeric( $this->field['height'] ) ) { + $style .= 'px'; + } + + $style .= ';'; + } + + $theValue = $k; + + $selected = ( checked( $this->value, $theValue, false ) != '' ) ? ' redux-image-select-selected' : ''; + + if ( ! empty( $this->field['tiles'] ) && $this->field['tiles'] == true ) { + $theValue = $v['img']; + } + + $presets = ''; + $is_preset = false; + + $this->field['class'] .= ' noUpdate '; + if ( isset( $this->field['presets'] ) && $this->field['presets'] !== false ) { + $this->field['class'] = trim($this->field['class']); + if ( ! isset( $v['presets'] ) ) { + $v['presets'] = array(); + } + + if ( ! is_array( $v['presets'] ) ) { + $v['presets'] = json_decode( $v['presets'], true ); + } + + // Only highlight the preset if it's the same + if ( $selected ) { + if ( empty( $v['presets'] ) ) { + $selected = false; + } else { + foreach ( $v['presets'] as $pk => $pv ) { + if ( isset( $v['merge'] ) && $v['merge'] !== false ) { + if( ( $v['merge'] === true || in_array( $pk, $v['merge'] ) ) && is_array( $this->parent->options[ $pk ] ) ) { + $pv = array_merge( $this->parent->options[ $pk ], $pv ); + } + } + + if ( empty( $pv ) && isset( $this->parent->options[ $pk ] ) && ! empty( $this->parent->options[ $pk ] ) ) { + $selected = false; + } else if ( ! empty( $pv ) && ! isset( $this->parent->options[ $pk ] ) ) { + $selected = false; + //} else if ( isset( $this->parent->options[ $pk ] ) && $this->parent->options[ $pk ] != $pv ) { + // $selected = false; + } + + if ( ! $selected ) { // We're still not using the same preset. Let's unset that shall we? + $this->value = ""; + break; + } + } + } + } + + $v['presets']['redux-backup'] = 1; + + $presets = ' data-presets="' . htmlspecialchars( json_encode( $v['presets'] ), ENT_QUOTES, 'UTF-8' ) . '"'; + $is_preset = true; + + $this->field['class'] = trim( $this->field['class'] ) . ' redux-presets'; + } + + $is_preset_class = $is_preset ? '-preset-' : ' '; + + $merge = ''; + if ( isset( $v['merge'] ) && $v['merge'] !== false ) { + $merge = is_array( $v['merge'] ) ? implode( '|', $v['merge'] ) : 'true'; + $merge = ' data-merge="' . htmlspecialchars( $merge, ENT_QUOTES, 'UTF-8' ) . '"'; + } + + echo '
    • '; + echo ''; + echo '
    • '; + + $x ++; + } + + echo '
    '; + echo '
    '; + } + } + + /** + * Enqueue Function. + * If this field requires any scripts, or css define this function and register/enqueue the scripts/css + * + * @since 1.0.0 + * @access public + * @return void + */ + public function enqueue() { + + wp_enqueue_script( + 'redux-field-image-select-js', + ReduxFramework::$_url . 'inc/fields/image_select/field_image_select' . Redux_Functions::isMin() . '.js', + array( 'jquery', 'redux-js' ), + time(), + true + ); + + if ($this->parent->args['dev_mode']) { + wp_enqueue_style( + 'redux-field-image-select-css', + ReduxFramework::$_url . 'inc/fields/image_select/field_image_select.css', + array(), + time(), + 'all' + ); + } + } + + public function getCSS( $mode = '' ) { + $css = ''; + $value = $this->value; + + $output = ''; + if ( ! empty( $value ) && ! is_array($value) ) { + switch ( $mode ) { + case 'background-image': + $output = "background-image: url('" . $value . "');"; + break; + + default: + $output = $mode . ": " . $value . ";"; + } + } + + $css .= $output; + + return $css; + } + + public function output() { + $mode = ( isset( $this->field['mode'] ) && ! empty( $this->field['mode'] ) ? $this->field['mode'] : 'background-image' ); + + if ( ( ! isset( $this->field['output'] ) || ! is_array( $this->field['output'] ) ) && ( ! isset( $this->field['compiler'] ) ) ) { + return; + } + + $style = $this->getCSS( $mode ); + + if ( ! empty( $style ) ) { + + if ( ! empty( $this->field['output'] ) && is_array( $this->field['output'] ) ) { + $keys = implode( ",", $this->field['output'] ); + $style = $keys . "{" . $style . '}'; + $this->parent->outputCSS .= $style; + } + + if ( ! empty( $this->field['compiler'] ) && is_array( $this->field['compiler'] ) ) { + $keys = implode( ",", $this->field['compiler'] ); + $style = $keys . "{" . $style . '}'; + $this->parent->compilerCSS .= $style; + } + } + } + } +} \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/image_select/field_image_select.scss b/redux/ReduxCore/inc/fields/image_select/field_image_select.scss new file mode 100644 index 0000000..376241f --- /dev/null +++ b/redux/ReduxCore/inc/fields/image_select/field_image_select.scss @@ -0,0 +1,63 @@ +.redux-container-image_select { + .redux-table-container { + display: table; + table-layout: fixed; + width: 100%; + } + + .redux-image-select { + margin: 0 !important; + + .tiles { + display: block; + background-color: #FFF; + background-repeat: repeat; + width: 40px; + height: 40px; + } + + img, + .tiles { + border-color: #d9d9d9; + } + + li:last-child { + margin-bottom: 0; + } + + input[type='radio'] { + display: none; + } + } + + .redux-image-select-presets img { + width: 100%; + } + + ul.redux-image-select li { + margin: 0 10px 3px 10px; + display: inline-block; + padding: 2px 2px; + padding-left: 0; + } + + .redux-image-select-selected { + background-color: #f9f9f9; + } + + .redux-image-select img, + .redux-image-select-selected img, + .redux-image-select .tiles, + .redux-image-select-selected .tiles { + border-width: 4px; + border-style: solid; + } + + .redux-image-select-selected, + .redux-image-select-selected { + .tiles { + border-color: #7a7a7a; + } + } +} + diff --git a/redux/ReduxCore/inc/fields/info/field_info.css b/redux/ReduxCore/inc/fields/info/field_info.css new file mode 100644 index 0000000..357214d --- /dev/null +++ b/redux/ReduxCore/inc/fields/info/field_info.css @@ -0,0 +1 @@ +.redux-info-field{min-height:20px;padding:8px 19px;margin:10px 0;border:1px solid;border-radius:4px;border:1px solid;position:relative}.redux-info-field h1,.redux-info-field h2,.redux-info-field h3,.redux-info-field h4,.redux-info-field h5,.redux-info-field h6{border-bottom:0 !important}.redux-info-field h3{color:#777}.redux-info-field .redux-info-icon{display:inline-block;margin-right:15px}.redux-info-field .redux-info-icon i{font-size:2em}.redux-info-field .redux-info-desc{display:inline-block;vertical-align:top}.redux-info-field.redux-normal{background-color:#eeeeee;border-color:#cccccc;color:#666666}.redux-info-field.redux-normal i{color:#c5c5c5}.redux-info-field.redux-warning{background-color:#fbeba4;border-color:#d7c281;color:#958234}.redux-info-field.redux-warning i{color:#dcca81}.redux-info-field.redux-success{background-color:#c4ee91;border-color:#71af5d;color:#4d7615}.redux-info-field.redux-success i{color:#a0ca6c}.redux-info-field.redux-critical{background-color:#fba1a3;border-color:#b84f5b;color:#981225}.redux-info-field.redux-critical i{color:#dd767d}.redux-info-field.redux-info{background-color:#d3e4f4;border-color:#a9b6c2;color:#5c80a1}.redux-info-field.redux-info i{color:#afc6da}.redux-notice-field{margin:15px 0 0;background-color:#fff;border:0;border-left:4px solid #f3f3f3;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);padding:1px 12px}.redux-notice-field h1,.redux-notice-field h2,.redux-notice-field h3,.redux-notice-field h4,.redux-notice-field h5,.redux-notice-field h6{border-bottom:0 !important}.redux-notice-field p{margin:.5em 0;padding:2px}.redux-notice-field .redux-info-icon{display:inline-block;margin-right:15px}.redux-notice-field .redux-info-icon i{font-size:2em}.redux-notice-field .redux-info-desc{display:inline-block;vertical-align:top}.redux-notice-field.redux-info{border-left:4px solid #0099d5}.redux-notice-field.redux-success{border-left:4px solid #7ad03a}.redux-notice-field.redux-warning{border-left:4px solid #fbeba4}.redux-notice-field.redux-critical{border-left:4px solid #dd3d36}.redux-main .redux-field-container.redux-container-info{padding:0}.wp-customizer .hasIcon.redux-notice-field .redux-info-desc,.wp-customizer .hasIcon.redux-info-field .redux-info-desc{display:block;margin-left:43px}.wp-customizer .hasIcon.redux-notice-field .redux-info-icon,.wp-customizer .hasIcon.redux-info-field .redux-info-icon{float:left}.wp-customizer .redux-main .customize-control.customize-control-redux-info{border-bottom:0} diff --git a/redux/ReduxCore/inc/fields/info/field_info.css.map b/redux/ReduxCore/inc/fields/info/field_info.css.map new file mode 100644 index 0000000..aada54d --- /dev/null +++ b/redux/ReduxCore/inc/fields/info/field_info.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "AAAA,iBAAkB;EACd,UAAU,EAAE,IAAI;EAChB,OAAO,EAAE,QAAQ;EACjB,MAAM,EAAE,MAAM;EACd,MAAM,EAAE,SAAS;EACjB,aAAa,EAAE,GAAG;EAClB,MAAM,EAAE,SAAS;EACjB,QAAQ,EAAE,QAAQ;EAElB;;;;;sBAKG;IACC,aAAa,EAAE,YAAY;EAG/B,oBAAG;IACC,KAAK,EAAE,IAAI;EAGf,kCAAiB;IACb,OAAO,EAAE,YAAY;IACrB,YAAY,EAAE,IAAI;IAElB,oCAAE;MACE,SAAS,EAAE,GAAG;EAItB,kCAAiB;IACb,OAAO,EAAE,YAAY;IACrB,cAAc,EAAE,GAAG;EAGvB,8BAAe;IACX,gBAAgB,EAAE,OAAO;IACzB,YAAY,EAAE,OAAO;IACrB,KAAK,EAAE,OAAO;IAEd,gCAAE;MACE,KAAK,EAAE,OAAO;EAItB,+BAAgB;IACZ,gBAAgB,EAAE,OAAO;IACzB,YAAY,EAAE,OAAO;IACrB,KAAK,EAAE,OAAO;IAEd,iCAAE;MACE,KAAK,EAAE,OAAO;EAItB,+BAAgB;IACZ,gBAAgB,EAAE,OAAO;IACzB,YAAY,EAAE,OAAO;IACrB,KAAK,EAAE,OAAO;IAEd,iCAAE;MACE,KAAK,EAAE,OAAO;EAItB,gCAAiB;IACb,gBAAgB,EAAE,OAAO;IACzB,YAAY,EAAE,OAAO;IACrB,KAAK,EAAE,OAAO;IAEd,kCAAE;MACE,KAAK,EAAE,OAAO;EAItB,4BAAa;IACT,gBAAgB,EAAE,OAAO;IACzB,YAAY,EAAE,OAAO;IACrB,KAAK,EAAE,OAAO;IAEd,8BAAE;MACE,KAAK,EAAE,OAAO;;AAK1B,mBAAoB;EAChB,MAAM,EAAE,QAAQ;EAChB,gBAAgB,EAAE,IAAI;EACtB,MAAM,EAAE,CAAC;EACT,WAAW,EAAE,iBAAiB;EAC9B,kBAAkB,EAAE,8BAA6B;EACjD,UAAU,EAAE,8BAA6B;EACzC,OAAO,EAAE,QAAQ;EAEjB;;;;;wBAKG;IACC,aAAa,EAAE,YAAY;EAG/B,qBAAE;IACE,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,GAAG;EAGhB,oCAAiB;IACb,OAAO,EAAE,YAAY;IACrB,YAAY,EAAE,IAAI;IAElB,sCAAE;MACE,SAAS,EAAE,GAAG;EAItB,oCAAiB;IACb,OAAO,EAAE,YAAY;IACrB,cAAc,EAAE,GAAG;EAGvB,8BAAa;IACT,WAAW,EAAE,iBAAiB;EAGlC,iCAAgB;IACZ,WAAW,EAAE,iBAAiB;EAGlC,iCAAgB;IACZ,WAAW,EAAE,iBAAiB;EAGlC,kCAAiB;IACb,WAAW,EAAE,iBAAiB;;AAItC,uDAAwD;EACpD,OAAO,EAAE,CAAC;;AAKN,sHAAiB;EACb,OAAO,EAAE,KAAK;EACd,WAAW,EAAE,IAAI;AAErB,sHAAiB;EACb,KAAK,EAAE,IAAI;AAGnB,0EAA4D;EACxD,aAAa,EAAE,CAAC", +"sources": ["field_info.scss"], +"names": [], +"file": "field_info.css" +} \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/info/field_info.php b/redux/ReduxCore/inc/fields/info/field_info.php new file mode 100644 index 0000000..5c1d5d1 --- /dev/null +++ b/redux/ReduxCore/inc/fields/info/field_info.php @@ -0,0 +1,170 @@ +. + * + * @package ReduxFramework + * @subpackage Field_Info + * @author Daniel J Griffiths (Ghost1227) + * @author Dovy Paukstys + * @version 3.0.0 + */ + +// Exit if accessed directly + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + +// Don't duplicate me! + if ( ! class_exists( 'ReduxFramework_info' ) ) { + + /** + * Main ReduxFramework_info class + * + * @since 1.0.0 + */ + class ReduxFramework_info { + + public $parent; + public $field; + public $value; + /** + * Field Constructor. + * Required - must call the parent constructor, then assign field and value to vars, and obviously call the render field function + * + * @since 1.0.0 + * @access public + * @return void + */ + function __construct( $field = array(), $value = '', $parent=null ) { + $this->parent = $parent; + $this->field = $field; + $this->value = $value; + } + + /** + * Field Render Function. + * Takes the vars and outputs the HTML for the field in the settings + * + * @since 1.0.0 + * @access public + * @return void + */ + public function render() { + + $defaults = array( + 'title' => '', + 'desc' => '', + 'notice' => true, + 'style' => '', + 'color' => '', + ); + + $this->field = wp_parse_args( $this->field, $defaults ); + + $styles = array( + 'normal', + 'info', + 'warning', + 'success', + 'critical', + 'custom' + ); + + if (!in_array($this->field['style'], $styles)) { + $this->field['style'] = 'normal'; + } + if ($this->field['style'] == "custom") { + if (!empty($this->field['color']) ) { + $this->field['color'] = "border-color:".$this->field['color'].';'; + } else { + $this->field['style'] = 'normal'; + $this->field['color'] = ""; + } + } else { + $this->field['color'] = ""; + } + + if ( empty( $this->field['desc'] ) && ! empty( $this->field['default'] ) ) { + $this->field['desc'] = $this->field['default']; + unset( $this->field['default'] ); + } + + if ( empty( $this->field['desc'] ) && ! empty( $this->field['subtitle'] ) ) { + $this->field['desc'] = $this->field['subtitle']; + unset( $this->field['subtitle'] ); + } + + if ( empty( $this->field['desc'] ) ) { + $this->field['desc'] = ""; + } + + if ( empty( $this->field['raw_html'] ) ) { + if ( $this->field['notice'] == true ) { + $this->field['class'] .= ' redux-notice-field'; + } else { + $this->field['class'] .= ' redux-info-field'; + } + + + + $this->field['style'] = 'redux-' . $this->field['style'] . ' '; + } + + $indent = ( isset( $this->field['sectionIndent'] ) && $this->field['sectionIndent'] ) ? ' form-table-section-indented' : ''; + + echo '
    field['style']) . ' ' . esc_attr($this->field['class']) . ' redux-field-' . esc_attr($this->field['type']) . esc_attr($indent) . '"'.( !empty($this->field['color']) ? ' style="' . esc_attr($this->field['color']) . '"' : '' ) . '>'; + + if ( ! empty( $this->field['raw_html'] ) && $this->field['raw_html'] ) { + echo wp_kses_post($this->field['desc']); + } else { + if ( isset( $this->field['title'] ) && ! empty( $this->field['title'] ) ) { + $this->field['title'] = '' . wp_kses_post($this->field['title']) . '
    '; + } + + if ( isset( $this->field['icon'] ) && ! empty( $this->field['icon'] ) && $this->field['icon'] !== true ) { + echo '

    '; + } + + if ( isset( $this->field['raw'] ) && ! empty( $this->field['raw'] ) ) { + echo wp_kses_post($this->field['raw']); + } + + if ( ! empty( $this->field['title'] ) || ! empty( $this->field['desc'] ) ) { + echo '

    ' . wp_kses_post($this->field['title']) . wp_kses_post($this->field['desc']) . '

    '; + } + } + + echo '
    '; + } + + /** + * Enqueue Function. + * If this field requires any scripts, or css define this function and register/enqueue the scripts/css + * + * @since 1.0.0 + * @access public + * @return void + */ + public function enqueue() { + if ($this->parent->args['dev_mode']) { + wp_enqueue_style( + 'redux-field-info-css', + ReduxFramework::$_url . 'inc/fields/info/field_info.css', + array(), + time(), + 'all' + ); + } + } + } + } \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/info/field_info.scss b/redux/ReduxCore/inc/fields/info/field_info.scss new file mode 100644 index 0000000..17d39f8 --- /dev/null +++ b/redux/ReduxCore/inc/fields/info/field_info.scss @@ -0,0 +1,160 @@ +.redux-info-field { + min-height: 20px; + padding: 8px 19px; + margin: 10px 0; + border: 1px solid; + border-radius: 4px; + border: 1px solid; + position: relative; + + h1, + h2, + h3, + h4, + h5, + h6 { + border-bottom: 0 !important; + } + + h3 { + color: #777; + } + + .redux-info-icon { + display: inline-block; + margin-right: 15px; + + i { + font-size: 2em; + } + } + + .redux-info-desc { + display: inline-block; + vertical-align: top; + } + + &.redux-normal { + background-color: #eeeeee; + border-color: #cccccc; + color: #666666; + + i { + color: #c5c5c5; + } + } + + &.redux-warning { + background-color: #fbeba4; + border-color: #d7c281; + color: #958234; + + i { + color: #dcca81; + } + } + + &.redux-success { + background-color: #c4ee91; + border-color: #71af5d; + color: #4d7615; + + i { + color: #a0ca6c; + } + } + + &.redux-critical { + background-color: #fba1a3; + border-color: #b84f5b; + color: #981225; + + i { + color: #dd767d; + } + } + + &.redux-info { + background-color: #d3e4f4; + border-color: #a9b6c2; + color: #5c80a1; + + i { + color: #afc6da; + } + } +} + +.redux-notice-field { + margin: 15px 0 0; + background-color: #fff; + border: 0; + border-left: 4px solid #f3f3f3; + -webkit-box-shadow: 0 1px 1px 0 rgba(0, 0, 0, .1); + box-shadow: 0 1px 1px 0 rgba(0, 0, 0, .1); + padding: 1px 12px; + + h1, + h2, + h3, + h4, + h5, + h6 { + border-bottom: 0 !important; + } + + p { + margin: .5em 0; + padding: 2px; + } + + .redux-info-icon { + display: inline-block; + margin-right: 15px; + + i { + font-size: 2em; + } + } + + .redux-info-desc { + display: inline-block; + vertical-align: top; + } + + &.redux-info { + border-left: 4px solid #0099d5; + } + + &.redux-success { + border-left: 4px solid #7ad03a; + } + + &.redux-warning { + border-left: 4px solid #fbeba4; + } + + &.redux-critical { + border-left: 4px solid #dd3d36; + } +} + +.redux-main .redux-field-container.redux-container-info { + padding: 0; +} + +.wp-customizer { + .hasIcon.redux-notice-field, .hasIcon.redux-info-field { + .redux-info-desc { + display: block; + margin-left: 43px; + } + .redux-info-icon { + float: left; + } + } + .redux-main .customize-control.customize-control-redux-info { + border-bottom: 0; + } +} + diff --git a/redux/ReduxCore/inc/fields/link_color/field_link_color.css b/redux/ReduxCore/inc/fields/link_color/field_link_color.css new file mode 100644 index 0000000..39a1324 --- /dev/null +++ b/redux/ReduxCore/inc/fields/link_color/field_link_color.css @@ -0,0 +1 @@ +.redux-container-link_color .linkColor{display:inline-block;padding-right:10px;padding-bottom:7px}.redux-container-link_color .linkColor strong{display:table;margin-bottom:5px;margin-left:3px;font-size:12px;font-weight:normal;color:#999} diff --git a/redux/ReduxCore/inc/fields/link_color/field_link_color.css.map b/redux/ReduxCore/inc/fields/link_color/field_link_color.css.map new file mode 100644 index 0000000..5828f7a --- /dev/null +++ b/redux/ReduxCore/inc/fields/link_color/field_link_color.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "AACI,sCAAW;EACP,OAAO,EAAE,YAAY;EACrB,aAAa,EAAE,IAAI;EACnB,cAAc,EAAE,GAAG", +"sources": ["field_link_color.scss"], +"names": [], +"file": "field_link_color.css" +} \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/link_color/field_link_color.js b/redux/ReduxCore/inc/fields/link_color/field_link_color.js new file mode 100644 index 0000000..48d5e2b --- /dev/null +++ b/redux/ReduxCore/inc/fields/link_color/field_link_color.js @@ -0,0 +1,111 @@ +/* + Field Link Color + */ + +/*global jQuery, document, redux_change, redux*/ + +(function( $ ) { + 'use strict'; + + redux.field_objects = redux.field_objects || {}; + redux.field_objects.link_color = redux.field_objects.link_color || {}; + + $( document ).ready( + function() { + + } + ); + + redux.field_objects.link_color.init = function( selector ) { + + if ( !selector ) { + selector = $( document ).find( '.redux-container-link_color:visible' ); + } + + $( selector ).each( + function() { + var el = $( this ); + var parent = el; + + if ( !el.hasClass( 'redux-field-container' ) ) { + parent = el.parents( '.redux-field-container:first' ); + } + if ( parent.is( ":hidden" ) ) { // Skip hidden fields + return; + } + if ( parent.hasClass( 'redux-field-init' ) ) { + parent.removeClass( 'redux-field-init' ); + } else { + return; + } + + el.find( '.redux-color-init' ).wpColorPicker( + { + change: function( e, ui ) { + $( this ).val( ui.color.toString() ); + redux_change( $( this ) ); + el.find( '#' + e.target.getAttribute( 'data-id' ) + '-transparency' ).removeAttr( 'checked' ); + }, + clear: function( e, ui ) { + $( this ).val( ui.color.toString() ); + redux_change( $( this ).parent().find( '.redux-color-init' ) ); + } + } + ); + + el.find( '.redux-color' ).on( + 'keyup', function() { + var value = $( this ).val(); + var color = colorValidate( this ); + var id = '#' + $( this ).attr( 'id' ); + + if ( value === "transparent" ) { + $( this ).parent().parent().find( '.wp-color-result' ).css( + 'background-color', 'transparent' + ); + + el.find( id + '-transparency' ).attr( 'checked', 'checked' ); + } else { + el.find( id + '-transparency' ).removeAttr( 'checked' ); + + if ( color && color !== $( this ).val() ) { + $( this ).val( color ); + } + } + } + ); + + // Replace and validate field on blur + el.find( '.redux-color' ).on( + 'blur', function() { + var value = $( this ).val(); + var id = '#' + $( this ).attr( 'id' ); + + if ( value === "transparent" ) { + $( this ).parent().parent().find( '.wp-color-result' ).css( + 'background-color', 'transparent' + ); + + el.find( id + '-transparency' ).attr( 'checked', 'checked' ); + } else { + if ( colorValidate( this ) === value ) { + if ( value.indexOf( "#" ) !== 0 ) { + $( this ).val( $( this ).data( 'oldcolor' ) ); + } + } + + el.find( id + '-transparency' ).removeAttr( 'checked' ); + } + } + ); + + // Store the old valid color on keydown + el.find( '.redux-color' ).on( + 'keydown', function() { + $( this ).data( 'oldkeypress', $( this ).val() ); + } + ); + } + ); + }; +})( jQuery ); diff --git a/redux/ReduxCore/inc/fields/link_color/field_link_color.min.js b/redux/ReduxCore/inc/fields/link_color/field_link_color.min.js new file mode 100644 index 0000000..a0cbac6 --- /dev/null +++ b/redux/ReduxCore/inc/fields/link_color/field_link_color.min.js @@ -0,0 +1 @@ +!function(i){"use strict";redux.field_objects=redux.field_objects||{},redux.field_objects.link_color=redux.field_objects.link_color||{},i(document).ready(function(){}),redux.field_objects.link_color.init=function(e){e||(e=i(document).find(".redux-container-link_color:visible")),i(e).each(function(){var n=i(this),e=n;n.hasClass("redux-field-container")||(e=n.parents(".redux-field-container:first")),e.is(":hidden")||e.hasClass("redux-field-init")&&(e.removeClass("redux-field-init"),n.find(".redux-color-init").wpColorPicker({change:function(e,t){i(this).val(t.color.toString()),redux_change(i(this)),n.find("#"+e.target.getAttribute("data-id")+"-transparency").removeAttr("checked")},clear:function(e,t){i(this).val(t.color.toString()),redux_change(i(this).parent().find(".redux-color-init"))}}),n.find(".redux-color").on("keyup",function(){var e=i(this).val(),t=colorValidate(this),r="#"+i(this).attr("id");"transparent"===e?(i(this).parent().parent().find(".wp-color-result").css("background-color","transparent"),n.find(r+"-transparency").attr("checked","checked")):(n.find(r+"-transparency").removeAttr("checked"),t&&t!==i(this).val()&&i(this).val(t))}),n.find(".redux-color").on("blur",function(){var e=i(this).val(),t="#"+i(this).attr("id");"transparent"===e?(i(this).parent().parent().find(".wp-color-result").css("background-color","transparent"),n.find(t+"-transparency").attr("checked","checked")):(colorValidate(this)===e&&0!==e.indexOf("#")&&i(this).val(i(this).data("oldcolor")),n.find(t+"-transparency").removeAttr("checked"))}),n.find(".redux-color").on("keydown",function(){i(this).data("oldkeypress",i(this).val())}))})}}(jQuery); \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/link_color/field_link_color.php b/redux/ReduxCore/inc/fields/link_color/field_link_color.php new file mode 100644 index 0000000..d0dccf4 --- /dev/null +++ b/redux/ReduxCore/inc/fields/link_color/field_link_color.php @@ -0,0 +1,235 @@ +. + * + * @package ReduxFramework + * @subpackage Field_Link_Color + * @author Luciano "WebCaos" Ubertini + * @author Daniel J Griffiths (Ghost1227) + * @author Dovy Paukstys + * @author Kevin Provance (kprovance) + * @version 3.0.0 + */ + +// Exit if accessed directly +if ( ! defined( 'ABSPATH' ) ) { + exit; +} + +// Don't duplicate me! +if ( ! class_exists( 'ReduxFramework_link_color' ) ) { + + /** + * Main ReduxFramework_link_color class + * + * @since 1.0.0 + */ + class ReduxFramework_link_color { + + /** + * Field Constructor. + * Required - must call the parent constructor, then assign field and value to vars, and obviously call the render field function + * + * @since 1.0.0 + * @access public + * @return void + */ + function __construct( $field = array(), $value = '', $parent=null ) { + $this->parent = $parent; + $this->field = $field; + $this->value = $value; + + $defaults = array( + 'regular' => true, + 'hover' => true, + 'visited' => false, + 'active' => true, + 'focus' => false + ); + $this->field = wp_parse_args( $this->field, $defaults ); + + $defaults = array( + 'regular' => '', + 'hover' => '', + 'visited' => '', + 'active' => '', + 'focus' => '' + ); + + $this->value = wp_parse_args( $this->value, $defaults ); + + // In case user passes no default values. + if ( isset( $this->field['default'] ) ) { + $this->field['default'] = wp_parse_args( $this->field['default'], $defaults ); + } else { + $this->field['default'] = $defaults; + } + } + + /** + * Field Render Function. + * Takes the vars and outputs the HTML for the field in the settings + * + * @since 1.0.0 + * @access public + * @return void + */ + public function render() { + + if ( $this->field['regular'] === true && $this->field['default']['regular'] !== false ) { + echo '' . __( 'Regular', 'redux-framework' ) . ' '; + } + + if ( $this->field['hover'] === true && $this->field['default']['hover'] !== false ) { + echo '' . __( 'Hover', 'redux-framework' ) . ' '; + } + + if ( $this->field['visited'] === true && $this->field['default']['visited'] !== false ) { + echo '' . __( 'Visited', 'redux-framework' ) . ' '; + } + + if ( $this->field['active'] === true && $this->field['default']['active'] !== false ) { + echo '' . __( 'Active', 'redux-framework' ) . ' '; + } + + if ( $this->field['focus'] === true && $this->field['default']['focus'] !== false ) { + echo '' . __( 'Focus', 'redux-framework' ) . ' '; + } + + } + + /** + * Enqueue Function. + * If this field requires any scripts, or css define this function and register/enqueue the scripts/css + * + * @since 1.0.0 + * @access public + * @return void + */ + public function enqueue() { + wp_enqueue_style( 'wp-color-picker' ); + + wp_enqueue_script( + 'redux-field-link-color-js', + ReduxFramework::$_url . 'inc/fields/link_color/field_link_color' . Redux_Functions::isMin() . '.js', + array( 'jquery', 'wp-color-picker', 'redux-js' ), + time(), + true + ); + + if ($this->parent->args['dev_mode']) { + wp_enqueue_style( 'redux-color-picker-css' ); + + wp_enqueue_style( + 'redux-field-link_color-js', + ReduxFramework::$_url . 'inc/fields/link_color/field_link_color.css', + array(), + time(), + 'all' + ); + } + } + + public function output() { + + $style = array(); + + if ( ! empty( $this->value['regular'] ) && $this->field['regular'] === true && $this->field['default']['regular'] !== false ) { + $style[] = 'color:' . $this->value['regular'] . ';'; + } + + if ( ! empty( $this->value['visited'] ) && $this->field['visited'] === true && $this->field['default']['visited'] !== false ) { + $style['visited'] = 'color:' . $this->value['visited'] . ';'; + } + + if ( ! empty( $this->value['hover'] ) && $this->field['hover'] === true && $this->field['default']['hover'] !== false ) { + $style['hover'] = 'color:' . $this->value['hover'] . ';'; + } + + if ( ! empty( $this->value['active'] ) && $this->field['active'] === true && $this->field['default']['active'] !== false ) { + $style['active'] = 'color:' . $this->value['active'] . ';'; + } + + if ( ! empty( $this->value['focus'] ) && $this->field['focus'] === true && $this->field['default']['focus'] !== false ) { + $style['focus'] = 'color:' . $this->value['focus'] . ';'; + } + + if ( ! empty( $style ) ) { + if ( ! empty( $this->field['output'] ) && is_array( $this->field['output'] ) ) { + $styleString = ""; + + foreach ( $style as $key => $value ) { + if ( is_numeric( $key ) ) { + $styleString .= implode( ",", $this->field['output'] ) . "{" . $value . '}'; + } else { + if ( count( $this->field['output'] ) == 1 ) { + foreach($this->field['output'] as $sel => $elem) { + continue; + } + + if (strpos($elem, ',') != false) { + $selector_arr = explode(',',$elem); + $sel_list = ''; + + foreach($selector_arr as $idx => $selector) { + $sel_list .= $selector . ":" . $key . ","; + } + + $sel_list = rtrim($sel_list,','); + $styleString .= $sel_list . "{" . $value . '}'; + } else { + $styleString .= $elem . ":" . $key . "{" . $value . '}'; + } + } else { + $blah = ''; + foreach($this->field['output'] as $k => $sel) { + $blah .= $sel . ':' . $key . ','; + } + + $blah = substr($blah, 0, strlen($blah) - 1); + $styleString .= $blah . '{' . $value . '}'; + + } + } + } + + $this->parent->outputCSS .= $styleString; + } + + if ( ! empty( $this->field['compiler'] ) && is_array( $this->field['compiler'] ) ) { + $styleString = ""; + + foreach ( $style as $key => $value ) { + if ( is_numeric( $key ) ) { + $styleString .= implode( ",", $this->field['compiler'] ) . "{" . $value . '}'; + + } else { + if ( count( $this->field['compiler'] ) == 1 ) { + $styleString .= $this->field['compiler'][0] . ":" . $key . "{" . $value . '}'; + } else { + $blah = ''; + foreach($this->field['compiler'] as $k => $sel) { + $blah .= $sel . ':' . $key . ','; + } + + $blah = substr($blah, 0, strlen($blah) - 1); + $styleString .= $blah . '{' . $value . '}'; + } + } + } + $this->parent->compilerCSS .= $styleString; + } + } + } + } +} \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/link_color/field_link_color.scss b/redux/ReduxCore/inc/fields/link_color/field_link_color.scss new file mode 100644 index 0000000..b5b614e --- /dev/null +++ b/redux/ReduxCore/inc/fields/link_color/field_link_color.scss @@ -0,0 +1,17 @@ +.redux-container-link_color { + .linkColor { + display: inline-block; + padding-right: 10px; + padding-bottom: 7px; + + strong { + display: table; + margin-bottom: 5px; + margin-left: 3px; + font-size: 12px; + font-weight: normal; + color: #999; + } + } +} + diff --git a/redux/ReduxCore/inc/fields/media/field_media.css b/redux/ReduxCore/inc/fields/media/field_media.css new file mode 100644 index 0000000..737309c --- /dev/null +++ b/redux/ReduxCore/inc/fields/media/field_media.css @@ -0,0 +1 @@ +.redux-main .button.remove-image,.redux-main .removeCSS{margin-left:10px;color:#ef521d}.redux-main .button.remove-image:hover,.redux-main .removeCSS:hover{color:red}.redux-main .upload_button_div{margin-bottom:5px}.redux-main .upload-error{float:left;color:#666;font-size:10px;font-weight:bold;text-decoration:none;text-shadow:1px 1px 0 #FFFFFF;margin:0 10px 0 0;padding:3px 10px;background:#FFDFEC;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.redux-main .reset-button{font-family:Arial, Verdana, sans-serif;float:left;margin:0;color:#ef521d;border-color:#bbb}.redux-main .redux-option-image{max-height:340px;max-width:340px;padding:5px;margin-bottom:0;margin-top:10px;margin-right:15px;border:1px solid #e3e3e3;background:#f7f7f7;-moz-border-radius:3px;-khtml-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.redux-main .redux-main .upload{width:80% !important}.redux-main .button{margin-top:2px} diff --git a/redux/ReduxCore/inc/fields/media/field_media.css.map b/redux/ReduxCore/inc/fields/media/field_media.css.map new file mode 100644 index 0000000..73f5c2c --- /dev/null +++ b/redux/ReduxCore/inc/fields/media/field_media.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "AACI;sBACW;EACP,WAAW,EAAE,IAAI;EACjB,KAAK,EAAE,OAAO;EAEd;8BAAQ;IACJ,KAAK,EAAE,GAAG;AAIlB,8BAAmB;EACf,aAAa,EAAE,GAAG;AAGtB,yBAAc;EACV,KAAK,EAAE,IAAI;EACX,KAAK,EAAE,IAAI;EACX,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;EACjB,eAAe,EAAE,IAAI;EACrB,WAAW,EAAE,iBAAiB;EAC9B,MAAM,EAAE,UAAU;EAClB,OAAO,EAAE,QAAQ;EACjB,UAAU,EAAE,OAAO;EACnB,qBAAqB,EAAE,GAAG;EAC1B,kBAAkB,EAAE,GAAG;EACvB,aAAa,EAAE,GAAG;AAGtB,yBAAc;EACV,WAAW,EAAE,0BAA0B;EACvC,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,CAAC;EACT,KAAK,EAAE,OAAO;EACd,YAAY,EAAE,IAAI;AAGtB,+BAAoB;EAChB,UAAU,EAAE,KAAK;EACjB,SAAS,EAAE,KAAK;EAChB,OAAO,EAAE,GAAG;EACZ,aAAa,EAAE,CAAC;EAChB,UAAU,EAAE,IAAI;EAChB,YAAY,EAAE,IAAI;EAClB,MAAM,EAAE,iBAAiB;EACzB,UAAU,EAAE,OAAO;EACnB,kBAAkB,EAAE,GAAG;EACvB,oBAAoB,EAAE,GAAG;EACzB,qBAAqB,EAAE,GAAG;EAC1B,aAAa,EAAE,GAAG;AAGtB,+BAAoB;EAChB,KAAK,EAAE,cAAc;AAGzB,mBAAQ;EACJ,UAAU,EAAE,GAAG", +"sources": ["field_media.scss"], +"names": [], +"file": "field_media.css" +} \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/media/field_media.less b/redux/ReduxCore/inc/fields/media/field_media.less new file mode 100644 index 0000000..f78c19b --- /dev/null +++ b/redux/ReduxCore/inc/fields/media/field_media.less @@ -0,0 +1,53 @@ +.redux-main { + .button.remove-image, .removeCSS { + margin-left: 10px; + color: #ef521d; + } + .button.remove-image:hover, .removeCSS:hover { + color: red; + } + .upload_button_div { + margin-bottom: 5px; + } + .upload-error { + float: left; + color: #666; + font-size: 10px; + font-weight: bold; + text-decoration: none; + text-shadow: 1px 1px 0 #FFFFFF; + margin: 0 10px 0 0; + padding: 3px 10px; + background: #FFDFEC; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + } + .reset-button { + font-family: Arial, Verdana, sans-serif; + float: left; + margin: 0; + color: #ef521d; + border-color: #bbb; + } + .redux-option-image { + max-height: 340px; + max-width: 340px; + padding: 5px; + margin-bottom: 0; + margin-top: 10px; + margin-right: 15px; + border: 1px solid #e3e3e3; + background: #f7f7f7; + -moz-border-radius: 3px; + -khtml-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + } + .redux-main .upload { + width: 80% !important; + } + .button { + margin-top: 2px; + } +} diff --git a/redux/ReduxCore/inc/fields/media/field_media.php b/redux/ReduxCore/inc/fields/media/field_media.php new file mode 100644 index 0000000..9c7c2bd --- /dev/null +++ b/redux/ReduxCore/inc/fields/media/field_media.php @@ -0,0 +1,250 @@ +. + * + * @package ReduxFramework + * @subpackage Field_Media + * @author Daniel J Griffiths (Ghost1227) + * @author Dovy Paukstys + * @author Kevin Provance (kprovance) + * @version 3.0.0 + */ + +// Exit if accessed directly +if ( ! defined( 'ABSPATH' ) ) { + exit; +} + +// Don't duplicate me! +if ( ! class_exists( 'ReduxFramework_media' ) ) { + + /** + * Main ReduxFramework_media class + * + * @since 1.0.0 + */ + class ReduxFramework_media { + + public $parent; + public $field; + public $value; + + /** + * Field Constructor. + * Required - must call the parent constructor, then assign field and value to vars, and obviously call the render field function + * + * @since 1.0.0 + * @access public + * @return void + */ + function __construct( $field = array(), $value = '', $parent=null ) { + $this->parent = $parent; + $this->field = $field; + $this->value = $value; + } + + /** + * Field Render Function. + * Takes the vars and outputs the HTML for the field in the settings + * + * @since 1.0.0 + * @access public + * @return void + */ + public function render() { + + // No errors please + $defaults = array( + 'id' => '', + 'url' => '', + 'width' => '', + 'height' => '', + 'thumbnail' => '', + 'title' => '', + 'caption' => '', + 'alt' => '', + 'description' => '', + ); + + $this->value = wp_parse_args( $this->value, $defaults ); + + if (isset($this->field['mode']) && $this->field['mode'] == false) { + $this->field['mode'] = 0; + } + + if ( ! isset( $this->field['mode'] ) ) { + $this->field['mode'] = "image"; + } + + if (!isset($this->field['library_filter'])) { + $libFilter = ''; + } else { + if (!is_array($this->field['library_filter'])) { + $this->field['library_filter'] = array($this->field['library_filter']); + } + + $mimeTypes = get_allowed_mime_types(); + + $libArray = $this->field['library_filter']; + + $jsonArr = array(); + + // Enum mime types + foreach ($mimeTypes as $ext => $type) { + if (strpos($ext,'|')) { + $expArr = explode('|', $ext); + + foreach($expArr as $ext){ + if (in_array($ext, $libArray )) { + $jsonArr[$ext] = $type; + } + } + } elseif (in_array($ext, $libArray )) { + $jsonArr[$ext] = $type; + } + + } + + $libFilter = urlencode(json_encode($jsonArr)); + } + + if ( empty( $this->value ) && ! empty( $this->field['default'] ) ) { // If there are standard values and value is empty + if ( is_array( $this->field['default'] ) ) { + if ( ! empty( $this->field['default']['id'] ) ) { + $this->value['id'] = $this->field['default']['id']; + } + + if ( ! empty( $this->field['default']['url'] ) ) { + $this->value['url'] = $this->field['default']['url']; + } + } else { + if ( is_numeric( $this->field['default'] ) ) { // Check if it's an attachment ID + $this->value['id'] = $this->field['default']; + } else { // Must be a URL + $this->value['url'] = $this->field['default']; + } + } + } + + + if ( empty( $this->value['url'] ) && ! empty( $this->value['id'] ) ) { + $img = wp_get_attachment_image_src( $this->value['id'], 'full' ); + $this->value['url'] = $img[0]; + $this->value['width'] = $img[1]; + $this->value['height'] = $img[2]; + } + + $hide = 'hide '; + + if ( ( isset( $this->field['preview'] ) && $this->field['preview'] === false ) ) { + $this->field['class'] .= " noPreview"; + } + + if ( ( ! empty( $this->field['url'] ) && $this->field['url'] === true ) || isset( $this->field['preview'] ) && $this->field['preview'] === false ) { + $hide = ''; + } + + $placeholder = isset( $this->field['placeholder'] ) ? $this->field['placeholder'] : __( 'No media selected', 'redux-framework' ); + + $readOnly = ' readonly="readonly"'; + if ( isset( $this->field['readonly'] ) && $this->field['readonly'] === false ) { + $readOnly = ''; + } + + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + + //Preview + $hide = ''; + + if ( ( isset( $this->field['preview'] ) && $this->field['preview'] === false ) || empty( $this->value['url'] ) ) { + $hide = 'hide '; + } + + if ( empty( $this->value['thumbnail'] ) && ! empty( $this->value['url'] ) ) { // Just in case + if ( ! empty( $this->value['id'] ) ) { + $image = wp_get_attachment_image_src( $this->value['id'], array( + 150, + 150 + ) ); + + if (empty($image[0]) || $image[0] == '') { + $this->value['thumbnail'] = $this->value['url']; + } else { + $this->value['thumbnail'] = $image[0]; + } + } else { + $this->value['thumbnail'] = $this->value['url']; + } + } + + echo '
    '; + echo ''; + echo ''; + echo ''; + echo '
    '; + + //Upload controls DIV + echo '
    '; + + //If the user has WP3.5+ show upload/remove button + echo '' . __( 'Upload', 'redux-framework' ) . ''; + + $hide = ''; + if ( empty( $this->value['url'] ) || $this->value['url'] == '' ) { + $hide = ' hide'; + } + + echo '' . __( 'Remove', 'redux-framework' ) . ''; + + echo '
    '; + } + + /** + * Enqueue Function. + * If this field requires any scripts, or css define this function and register/enqueue the scripts/css + * + * @since 1.0.0 + * @access public + * @return void + */ + public function enqueue() { + if ( function_exists( 'wp_enqueue_media' ) ) { + wp_enqueue_media(); + } else { + wp_enqueue_script( 'media-upload' ); + } + + wp_enqueue_script( + 'redux-field-media-js', + ReduxFramework::$_url . 'assets/js/media/media' . Redux_Functions::isMin() . '.js', + array( 'jquery', 'redux-js' ), + time(), + true + ); + + if ($this->parent->args['dev_mode']) { + wp_enqueue_style('redux-field-media-css'); + } + } + } +} diff --git a/redux/ReduxCore/inc/fields/media/field_media.scss b/redux/ReduxCore/inc/fields/media/field_media.scss new file mode 100644 index 0000000..7180642 --- /dev/null +++ b/redux/ReduxCore/inc/fields/media/field_media.scss @@ -0,0 +1,62 @@ +.redux-main { + .button.remove-image, + .removeCSS { + margin-left: 10px; + color: #ef521d; + + &:hover { + color: red; + } + } + + .upload_button_div { + margin-bottom: 5px; + } + + .upload-error { + float: left; + color: #666; + font-size: 10px; + font-weight: bold; + text-decoration: none; + text-shadow: 1px 1px 0 #FFFFFF; + margin: 0 10px 0 0; + padding: 3px 10px; + background: #FFDFEC; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + } + + .reset-button { + font-family: Arial, Verdana, sans-serif; + float: left; + margin: 0; + color: #ef521d; + border-color: #bbb; + } + + .redux-option-image { + max-height: 340px; + max-width: 340px; + padding: 5px; + margin-bottom: 0; + margin-top: 10px; + margin-right: 15px; + border: 1px solid #e3e3e3; + background: #f7f7f7; + -moz-border-radius: 3px; + -khtml-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + } + + .redux-main .upload { + width: 80% !important; + } + + .button { + margin-top: 2px; + } +} + diff --git a/redux/ReduxCore/inc/fields/multi_text/field_multi_text.css b/redux/ReduxCore/inc/fields/multi_text/field_multi_text.css new file mode 100644 index 0000000..3e0158f --- /dev/null +++ b/redux/ReduxCore/inc/fields/multi_text/field_multi_text.css @@ -0,0 +1 @@ +.redux-container-multi_text ul.redux-multi-text{margin:0;padding:0}.redux-container-multi_text .redux-multi-text-add{clear:both;margin:5px 0}.redux-container-multi_text a.redux-multi-text-remove.deletion{color:#F00;padding:2px 4px;margin-left:5px}.redux-container-multi_text a.redux-multi-text-remove.deletion:hover{background:red;color:#fff;text-decoration:none}@media screen and (max-width: 782px){.redux-container-multi_text input{clear:both}.redux-container-multi_text .redux-multi-text-remove{margin:0;float:right}}.wp-customizer .redux-container-multi_text .button{float:right}.wp-customizer .redux-container-multi_text .redux-multi-text-remove{float:right;margin-bottom:5px}.wp-customizer .redux-container-multi_text ul.redux-multi-text input{width:100% !important} diff --git a/redux/ReduxCore/inc/fields/multi_text/field_multi_text.css.map b/redux/ReduxCore/inc/fields/multi_text/field_multi_text.css.map new file mode 100644 index 0000000..45536f9 --- /dev/null +++ b/redux/ReduxCore/inc/fields/multi_text/field_multi_text.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "AACI,+CAAoB;EAChB,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,CAAC;AAGd,iDAAsB;EAClB,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,KAAK;AAIb,8DAAW;EACP,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,OAAO;EAChB,WAAW,EAAE,GAAG;EAEhB,oEAAQ;IACJ,UAAU,EAAE,GAAG;IACf,KAAK,EAAE,IAAI;IACX,eAAe,EAAE,IAAI;;AAMrC,oCAAqC;EAE7B,iCAAM;IACF,KAAK,EAAE,IAAI;EAGf,oDAAyB;IACrB,MAAM,EAAE,CAAC;IACT,KAAK,EAAE,KAAK;AAOhB,kDAAQ;EACJ,KAAK,EAAE,KAAK;AAEhB,mEAAyB;EACrB,KAAK,EAAE,KAAK;EACZ,aAAa,EAAE,GAAG;AAEtB,oEAA0B;EACtB,KAAK,EAAE,eAAe", +"sources": ["field_multi_text.scss"], +"names": [], +"file": "field_multi_text.css" +} \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/multi_text/field_multi_text.js b/redux/ReduxCore/inc/fields/multi_text/field_multi_text.js new file mode 100644 index 0000000..4a7f10a --- /dev/null +++ b/redux/ReduxCore/inc/fields/multi_text/field_multi_text.js @@ -0,0 +1,84 @@ +/*global redux_change, redux*/ + +(function( $ ) { + "use strict"; + + + redux.field_objects = redux.field_objects || {}; + redux.field_objects.multi_text = redux.field_objects.multi_text || {}; + + redux.field_objects.multi_text.init = function( selector ) { + + if ( !selector ) { + selector = $( document ).find( '.redux-container-multi_text:visible' ); + } + + $( selector ).each( + function() { + var el = $( this ); + var parent = el; + if ( !el.hasClass( 'redux-field-container' ) ) { + parent = el.parents( '.redux-field-container:first' ); + } + if ( parent.is( ":hidden" ) ) { // Skip hidden fields + return; + } + if ( parent.hasClass( 'redux-field-init' ) ) { + parent.removeClass( 'redux-field-init' ); + } else { + return; + } + el.find( '.redux-multi-text-remove' ).on( + 'click', function() { + redux_change( $( this ) ); + + $( this ).prev( 'input[type="text"]' ).val( '' ); + var id = $( this ).attr( 'data-id' ); + + $( this ).parent().slideUp( + 'medium', function() { + $( this ).remove(); + + var lis = el.find( '#' + id + ' li').length; + if (lis == 1) { + var add = el.find( '.redux-multi-text-add' ); + var name = add.attr( 'data-name' ); + + el.find( '#' + id + ' li:last-child input[type="text"]' ).attr( 'name', name ); + } + } + ); + } + ); + + el.find( '.redux-multi-text-add' ).click( + function() { + var number = parseInt( $( this ).attr( 'data-add_number' ) ); + var id = $( this ).attr( 'data-id' ); + var name = $( this ).attr( 'data-name' ) + '[]'; + + for ( var i = 0; i < number; i++ ) { + var new_input = $( '#' + id + ' li:last-child' ).clone(); + el.find( '#' + id ).append( new_input ); + el.find( '#' + id + ' li:last-child' ).removeAttr( 'style' ); + el.find( '#' + id + ' li:last-child input[type="text"]' ).val( '' ); + el.find( '#' + id + ' li:last-child input[type="text"]' ).attr( 'name', name ); + } + + var lis = el.find( '#' + id + ' li').length; + if (lis > 1) { + var css, input; + el.find('#' + id + ' li').each(function(idx, val){ + css = $(this).css('display'); + if (css === 'none') { + input = $(this).find('input[type="text"]'); + input.attr('name', ''); + } + }) + } + } + ); + } + ); + }; +})( jQuery ); diff --git a/redux/ReduxCore/inc/fields/multi_text/field_multi_text.min.js b/redux/ReduxCore/inc/fields/multi_text/field_multi_text.min.js new file mode 100644 index 0000000..c97e56c --- /dev/null +++ b/redux/ReduxCore/inc/fields/multi_text/field_multi_text.min.js @@ -0,0 +1 @@ +!function(l){"use strict";redux.field_objects=redux.field_objects||{},redux.field_objects.multi_text=redux.field_objects.multi_text||{},redux.field_objects.multi_text.init=function(t){t||(t=l(document).find(".redux-container-multi_text:visible")),l(t).each(function(){var a=l(this),t=a;a.hasClass("redux-field-container")||(t=a.parents(".redux-field-container:first")),t.is(":hidden")||t.hasClass("redux-field-init")&&(t.removeClass("redux-field-init"),a.find(".redux-multi-text-remove").on("click",function(){redux_change(l(this)),l(this).prev('input[type="text"]').val("");var i=l(this).attr("data-id");l(this).parent().slideUp("medium",function(){if(l(this).remove(),1==a.find("#"+i+" li").length){var t=a.find(".redux-multi-text-add").attr("data-name");a.find("#"+i+' li:last-child input[type="text"]').attr("name",t)}})}),a.find(".redux-multi-text-add").click(function(){for(var t=parseInt(l(this).attr("data-add_number")),i=l(this).attr("data-id"),e=l(this).attr("data-name")+"[]",d=0;d. + * + * @package ReduxFramework + * @subpackage Field_Multi_Text + * @author Daniel J Griffiths (Ghost1227) + * @author Dovy Paukstys + * @author Kevin Provance (kprovance) + * @version 3.0.0 + */ + +// Exit if accessed directly +if ( ! defined( 'ABSPATH' ) ) { + exit; +} + +// Don't duplicate me! +if ( ! class_exists( 'ReduxFramework_multi_text' ) ) { + + /** + * Main ReduxFramework_multi_text class + * + * @since 1.0.0 + */ + class ReduxFramework_multi_text { + + /** + * Field Constructor. + * Required - must call the parent constructor, then assign field and value to vars, and obviously call the render field function + * + * @since 1.0.0 + * @access public + * @return void + */ + function __construct( $field = array(), $value = '', $parent=null ) { + $this->parent = $parent; + $this->field = $field; + $this->value = $value; + } + + /** + * Field Render Function. + * Takes the vars and outputs the HTML for the field in the settings + * + * @since 1.0.0 + * @access public + * @return void + */ + public function render() { + + $this->add_text = ( isset( $this->field['add_text'] ) ) ? $this->field['add_text'] : __( 'Add More', 'redux-framework' ); + $this->show_empty = ( isset( $this->field['show_empty'] ) ) ? $this->field['show_empty'] : true; + + echo '
      '; + + if ( isset( $this->value ) && is_array( $this->value ) ) { + foreach ( $this->value as $k => $value ) { + if ( $value != '' || ($value == '' && $this->show_empty == true) ) { + echo '
    • '; + echo ' '; + echo '' . __( 'Remove', 'redux-framework' ) . ''; + echo '
    • '; + } + } + } elseif ( $this->show_empty == true ) { + echo '
    • '; + echo ' '; + echo '' . __( 'Remove', 'redux-framework' ) . ''; + echo '
    • '; + } + + $the_name = ''; + if (isset($this->value) && empty($this->value) && $this->show_empty == false) { + $the_name = $this->field['name'] . $this->field['name_suffix']; + } + + echo '
    • '; + echo '' . __( 'Remove', 'redux-framework' ) . ''; + echo '
    • '; + echo '
    '; + + echo ''; + $this->field['add_number'] = ( isset( $this->field['add_number'] ) && is_numeric( $this->field['add_number'] ) ) ? $this->field['add_number'] : 1; + echo '' . $this->add_text . '
    '; + } + + /** + * Enqueue Function. + * If this field requires any scripts, or css define this function and register/enqueue the scripts/css + * + * @since 1.0.0 + * @access public + * @return void + */ + public function enqueue() { + + wp_enqueue_script( + 'redux-field-multi-text-js', + ReduxFramework::$_url . 'inc/fields/multi_text/field_multi_text' . Redux_Functions::isMin() . '.js', + array( 'jquery', 'redux-js' ), + time(), + true + ); + + if ($this->parent->args['dev_mode']) { + wp_enqueue_style( + 'redux-field-multi-text-css', + ReduxFramework::$_url . 'inc/fields/multi_text/field_multi_text.css', + array(), + time(), + 'all' + ); + } + } + } +} \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/multi_text/field_multi_text.scss b/redux/ReduxCore/inc/fields/multi_text/field_multi_text.scss new file mode 100644 index 0000000..8b6914f --- /dev/null +++ b/redux/ReduxCore/inc/fields/multi_text/field_multi_text.scss @@ -0,0 +1,55 @@ +.redux-container-multi_text { + ul.redux-multi-text { + margin: 0; + padding: 0; + } + + .redux-multi-text-add { + clear: both; + margin: 5px 0; + } + + a.redux-multi-text-remove { + &.deletion { + color: #F00; + padding: 2px 4px; + margin-left: 5px; + + &:hover { + background: red; + color: #fff; + text-decoration: none; + } + } + } +} + +@media screen and (max-width: 782px) { + .redux-container-multi_text { + input { + clear: both; + } + + .redux-multi-text-remove { + margin: 0; + float: right; + } + } +} + +.wp-customizer { + .redux-container-multi_text { + .button { + float: right; + } + .redux-multi-text-remove { + float: right; + margin-bottom: 5px; + } + ul.redux-multi-text input { + width: 100% !important; + } + } +} + + diff --git a/redux/ReduxCore/inc/fields/palette/field_palette.css b/redux/ReduxCore/inc/fields/palette/field_palette.css new file mode 100644 index 0000000..17d81fb --- /dev/null +++ b/redux/ReduxCore/inc/fields/palette/field_palette.css @@ -0,0 +1 @@ +.redux-container-palette label{border:3px solid transparent;border-color:transparent !important;border-radius:0;width:100% !important;display:block}.redux-container-palette label.ui-button.ui-widget{width:95%;background:none;padding:0}.redux-container-palette label.ui-button.ui-widget .ui-button-text{display:flex}.redux-container-palette label.ui-button.ui-widget .ui-button-text span{padding:10px;flex-grow:1;font-size:0;line-height:10px;color:transparent;-webkit-transition:all 200ms ease-in-out;-moz-transition:all 200ms ease-in-out;-ms-transition:all 200ms ease-in-out;-o-transition:all 200ms ease-in-out;transition:all 200ms ease-in-out;text-shadow:0}.redux-container-palette label.ui-button.ui-widget .ui-button-text span:hover{flex-grow:3;font-weight:bold;min-width:60px;font-size:12px;line-height:10px;color:#333;text-shadow:0 0 8px #fff, 0 0 8px #fff}.redux-container-palette label.ui-state-active{border:3px solid #333 !important}.wp-customizer .redux-main .redux-container-palette label{margin-bottom:3px} diff --git a/redux/ReduxCore/inc/fields/palette/field_palette.css.map b/redux/ReduxCore/inc/fields/palette/field_palette.css.map new file mode 100644 index 0000000..975610d --- /dev/null +++ b/redux/ReduxCore/inc/fields/palette/field_palette.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "AACI,8BAAM;EACF,MAAM,EAAE,qBAAqB;EAC7B,YAAY,EAAE,sBAAsB;EACpC,aAAa,EAAE,CAAC;EAEhB,KAAK,EAAE,eAAe;EACtB,OAAO,EAAE,KAAK;EACd,kDAAsB;IAClB,KAAK,EAAE,GAAG;IACV,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE,CAAC;IAEV,kEAAgB;MAC5B;;2CAEqC;MACrB,OAAO,EAAE,IAAI;MAEb,uEAAK;QACD,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,CAAC;QACZ,SAAS,EAAE,CAAC;QACZ,WAAW,EAAE,IAAI;QACjB,KAAK,EAAE,WAAa;QACpB,kBAAkB,EAAE,qBAAqB;QACzC,eAAe,EAAE,qBAAqB;QACtC,cAAc,EAAE,qBAAqB;QACrC,aAAa,EAAE,qBAAqB;QACpC,UAAU,EAAE,qBAAqB;QACjC,WAAW,EAAE,CAAC;QACd,6EAAQ;UACJ,SAAS,EAAE,CAAC;UACZ,WAAW,EAAE,IAAI;UACjB,SAAS,EAAE,IAAI;UACf,SAAS,EAAE,IAAI;UACf,WAAW,EAAE,IAAI;UACjB,KAAK,EAAE,IAAI;UACX,WAAW,EAAE,0BAA0B;EAMvD,8CAAkB;IACd,MAAM,EAAE,yBAAyB;;AAMzC,yDAA2C;EACvC,aAAa,EAAE,GAAG", +"sources": ["field_palette.scss"], +"names": [], +"file": "field_palette.css" +} \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/palette/field_palette.js b/redux/ReduxCore/inc/fields/palette/field_palette.js new file mode 100644 index 0000000..001efcb --- /dev/null +++ b/redux/ReduxCore/inc/fields/palette/field_palette.js @@ -0,0 +1,53 @@ +/* + Field Palette (color) + */ + +/*global jQuery, document, redux_change, redux*/ + +(function( $ ) { + 'use strict'; + + redux.field_objects = redux.field_objects || {}; + redux.field_objects.palette = redux.field_objects.palette || {}; + + redux.field_objects.palette.init = function( selector ) { + + if ( !selector ) { + selector = $( document ).find( ".redux-group-tab:visible" ).find( '.redux-container-palette:visible' ); + } + + $( selector ).each( + function() { + + var el = $( this ); + var parent = el; + + if ( !el.hasClass( 'redux-field-container' ) ) { + parent = el.parents( '.redux-field-container:first' ); + } + + if ( parent.is( ":hidden" ) ) { // Skip hidden fields + return; + } + + if ( parent.hasClass( 'redux-field-init' ) ) { + parent.removeClass( 'redux-field-init' ); + } else { + return; + } + + el.find( '.buttonset' ).each( + function() { + $( this ).buttonset(); + } + ); + +// el.find('.redux-palette-set').click( +// function(){ +// console.log($(this).val()); +// } +// ) + } + ); + }; +})( jQuery ); \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/palette/field_palette.min.js b/redux/ReduxCore/inc/fields/palette/field_palette.min.js new file mode 100644 index 0000000..aa8cbcb --- /dev/null +++ b/redux/ReduxCore/inc/fields/palette/field_palette.min.js @@ -0,0 +1 @@ +!function(i){"use strict";redux.field_objects=redux.field_objects||{},redux.field_objects.palette=redux.field_objects.palette||{},redux.field_objects.palette.init=function(e){e||(e=i(document).find(".redux-group-tab:visible").find(".redux-container-palette:visible")),i(e).each(function(){var e=i(this),t=e;e.hasClass("redux-field-container")||(t=e.parents(".redux-field-container:first")),t.is(":hidden")||t.hasClass("redux-field-init")&&(t.removeClass("redux-field-init"),e.find(".buttonset").each(function(){i(this).buttonset()}))})}}(jQuery); \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/palette/field_palette.php b/redux/ReduxCore/inc/fields/palette/field_palette.php new file mode 100644 index 0000000..76b81e7 --- /dev/null +++ b/redux/ReduxCore/inc/fields/palette/field_palette.php @@ -0,0 +1,110 @@ +. + * + * @package ReduxFramework + * @subpackage Field_Palette + * @author Kevin Provance (kprovance) + * @version 3.5.4 + */ + +// Exit if accessed directly +if ( ! defined( 'ABSPATH' ) ) { + exit; +} + +if ( ! class_exists( 'ReduxFramework_palette' ) ) { + class ReduxFramework_palette { + + /** + * Field Constructor. + * Required - must call the parent constructor, then assign field and value to vars, and obviously call the render field function + * + * @since 1.0.0 + * @access public + * @return void + */ + function __construct( $field = array(), $value = '', $parent=null) { + $this->parent = $parent; + $this->field = $field; + $this->value = $value; + } + + /** + * Field Render Function. + * Takes the vars and outputs the HTML for the field in the settingss + * + * @since 1.0.0 + * @access public + * @return void + */ + public function render() { + if (empty($this->field['palettes'])) { + echo 'No palettes have been set.'; + return; + } + + echo '
    '; + + foreach ( $this->field['palettes'] as $value => $colorSet ) { + $checked = checked( $this->value , $value, false ); + echo ''; + echo ''; + echo ''; + } + + echo '
    '; + } + + /** + * Enqueue Function. + * If this field requires any scripts, or css define this function and register/enqueue the scripts/css + * + * @since 1.0.0 + * @access public + * @return void + */ + public function enqueue() { + $min = Redux_Functions::isMin(); + + wp_enqueue_script( + 'redux-field-palette-js', + ReduxFramework::$_url . 'inc/fields/palette/field_palette' . $min . '.js', + array( 'jquery', 'redux-js', 'jquery-ui-button', 'jquery-ui-core' ), + time(), + true + ); + + if ($this->parent->args['dev_mode']) { + wp_enqueue_style( + 'redux-field-palette-css', + ReduxFramework::$_url . 'inc/fields/palette/field_palette.css', + array(), + time(), + 'all' + ); + } + } + + + public function output() { + + } + } +} \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/palette/field_palette.scss b/redux/ReduxCore/inc/fields/palette/field_palette.scss new file mode 100644 index 0000000..f1b03c6 --- /dev/null +++ b/redux/ReduxCore/inc/fields/palette/field_palette.scss @@ -0,0 +1,56 @@ +.redux-container-palette { + label { + border: 3px solid transparent; + border-color: transparent !important; + border-radius: 0; + //border: 0; + width: 100% !important; + display: block; + &.ui-button.ui-widget { + width: 95%; + background: none; + padding: 0; + + .ui-button-text { +/* border-top: 3px solid transparent; + border-bottom: 3px solid transparent; + margin-bottom: 5px;*/ + display: flex; + + span { + padding: 10px; + flex-grow: 1; + font-size: 0; + line-height: 10px; + color: rgba(0,0,0,0); + -webkit-transition: all 200ms ease-in-out; + -moz-transition: all 200ms ease-in-out; + -ms-transition: all 200ms ease-in-out; + -o-transition: all 200ms ease-in-out; + transition: all 200ms ease-in-out; + text-shadow: 0; + &:hover { + flex-grow: 3; + font-weight: bold; + min-width: 60px; + font-size: 12px; + line-height: 10px; + color: #333; + text-shadow: 0 0 8px #fff, 0 0 8px #fff; + } + } + } + } + + &.ui-state-active { + border: 3px solid #333 !important; + } + } +} + +.wp-customizer { + .redux-main .redux-container-palette label { + margin-bottom: 3px; + } +} + diff --git a/redux/ReduxCore/inc/fields/password/field_password.php b/redux/ReduxCore/inc/fields/password/field_password.php new file mode 100644 index 0000000..a573b78 --- /dev/null +++ b/redux/ReduxCore/inc/fields/password/field_password.php @@ -0,0 +1,106 @@ +parent = $parent; + $this->field = $field; + $this->value = $value; + } + + /** + * Field Render Function. + * Takes the vars and outputs the HTML for the field in the settings + * + * @since ReduxFramework 1.0.1 + */ + function render() { + if ( ! empty( $this->field['username'] ) && $this->field['username'] === true ) { + $this->_render_combined_field(); + } else { + $this->_render_single_field(); + } + } + + /** + * This will render a combined User/Password field + * + * @since ReduxFramework 3.0.9 + * @example + * + * array( + * 'id' => 'smtp_account', + * 'type' => 'password', + * 'username' => true, + * 'title' => 'SMTP Account', + * 'placeholder' => array('username' => 'Username') + * ) + * + */ + private function _render_combined_field() { + + $defaults = array( + 'username' => '', + 'password' => '', + 'placeholder' => array( + 'password' => __( 'Password', 'redux-framework' ), + 'username' => __( 'Username', 'redux-framework' ) + ) + ); + + $this->value = wp_parse_args( $this->value, $defaults ); + + if ( ! empty( $this->field['placeholder'] ) ) { + if ( is_array( $this->field['placeholder'] ) ) { + if ( ! empty( $this->field['placeholder']['password'] ) ) { + $this->value['placeholder']['password'] = $this->field['placeholder']['password']; + } + if ( ! empty( $this->field['placeholder']['username'] ) ) { + $this->value['placeholder']['username'] = $this->field['placeholder']['username']; + } + } else { + $this->value['placeholder']['password'] = $this->field['placeholder']; + } + } + + // Username field + echo ' '; + + // Password field + echo ''; + } + + /** + * This will render a single Password field + * + * @since ReduxFramework 3.0.9 + * @example + * + * array( + * 'id' => 'smtp_password', + * 'type' => 'password', + * 'title' => 'SMTP Password' + * ) + * + */ + private function _render_single_field() { + echo ''; + } + } + } \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/radio/field_radio.php b/redux/ReduxCore/inc/fields/radio/field_radio.php new file mode 100644 index 0000000..68278f0 --- /dev/null +++ b/redux/ReduxCore/inc/fields/radio/field_radio.php @@ -0,0 +1,57 @@ +parent = $parent; + $this->field = $field; + $this->value = $value; + } + + /** + * Field Render Function. + * Takes the vars and outputs the HTML for the field in the settings + * + * @since ReduxFramework 1.0.0 + */ + function render() { + + if ( ! empty( $this->field['data'] ) && empty( $this->field['options'] ) ) { + if ( empty( $this->field['args'] ) ) { + $this->field['args'] = array(); + } + $this->field['options'] = $this->parent->get_wordpress_data( $this->field['data'], $this->field['args'] ); + } + + $this->field['data_class'] = ( isset( $this->field['multi_layout'] ) ) ? 'data-' . $this->field['multi_layout'] : 'data-full'; + + if ( ! empty( $this->field['options'] ) ) { + echo '
      '; + + foreach ( $this->field['options'] as $k => $v ) { + echo '
    • '; + echo ''; + echo '
    • '; + } + //foreach + + echo '
    '; + } + } //function + } //class + } \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/raw/field_raw.php b/redux/ReduxCore/inc/fields/raw/field_raw.php new file mode 100644 index 0000000..6847f53 --- /dev/null +++ b/redux/ReduxCore/inc/fields/raw/field_raw.php @@ -0,0 +1,53 @@ +parent = $parent; + $this->field = $field; + $this->value = $value; + } + + /** + * Field Render Function. + * Takes the vars and outputs the HTML for the field in the settings + * + * @since ReduxFramework 1.0.0 + */ + function render() { + + if ( ! empty( $this->field['include'] ) && file_exists( $this->field['include'] ) ) { + require_once $this->field['include']; + } + + if ( isset( $this->field['content_path'] ) && ! empty( $this->field['content_path'] ) && file_exists( $this->field['content_path'] ) ) { + $this->field['content'] = $this->parent->filesystem->execute( 'get_contents', $this->field['content_path'] ); + } + + if ( ! empty( $this->field['content'] ) && isset( $this->field['content'] ) ) { + if ( isset( $this->field['markdown'] ) && $this->field['markdown'] == true && ! empty( $this->field['content'] ) ) { + require_once dirname( __FILE__ ) . "/parsedown.php"; + $Parsedown = new Parsedown(); + echo $Parsedown->text( $this->field['content'] ); + } else { + echo $this->field['content']; + } + } + + do_action( 'redux-field-raw-' . $this->parent->args['opt_name'] . '-' . $this->field['id'] ); + + } + } + } \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/raw/parsedown.php b/redux/ReduxCore/inc/fields/raw/parsedown.php new file mode 100644 index 0000000..f5dd0fa --- /dev/null +++ b/redux/ReduxCore/inc/fields/raw/parsedown.php @@ -0,0 +1,1548 @@ +DefinitionData = array(); + + # standardize line breaks + $text = str_replace(array("\r\n", "\r"), "\n", $text); + + # remove surrounding line breaks + $text = trim($text, "\n"); + + # split text into lines + $lines = explode("\n", $text); + + # iterate through lines to identify blocks + $markup = $this->lines($lines); + + # trim line breaks + $markup = trim($markup, "\n"); + + return $markup; + } + + # + # Setters + # + + function setBreaksEnabled($breaksEnabled) + { + $this->breaksEnabled = $breaksEnabled; + + return $this; + } + + protected $breaksEnabled; + + function setMarkupEscaped($markupEscaped) + { + $this->markupEscaped = $markupEscaped; + + return $this; + } + + protected $markupEscaped; + + function setUrlsLinked($urlsLinked) + { + $this->urlsLinked = $urlsLinked; + + return $this; + } + + protected $urlsLinked = true; + + # + # Lines + # + + protected $BlockTypes = array( + '#' => array('Header'), + '*' => array('Rule', 'List'), + '+' => array('List'), + '-' => array('SetextHeader', 'Table', 'Rule', 'List'), + '0' => array('List'), + '1' => array('List'), + '2' => array('List'), + '3' => array('List'), + '4' => array('List'), + '5' => array('List'), + '6' => array('List'), + '7' => array('List'), + '8' => array('List'), + '9' => array('List'), + ':' => array('Table'), + '<' => array('Comment', 'Markup'), + '=' => array('SetextHeader'), + '>' => array('Quote'), + '[' => array('Reference'), + '_' => array('Rule'), + '`' => array('FencedCode'), + '|' => array('Table'), + '~' => array('FencedCode'), + ); + + # ~ + + protected $unmarkedBlockTypes = array( + 'Code', + ); + + # + # Blocks + # + + protected function lines(array $lines) + { + $CurrentBlock = null; + + foreach ($lines as $line) + { + if (chop($line) === '') + { + if (isset($CurrentBlock)) + { + $CurrentBlock['interrupted'] = true; + } + + continue; + } + + if (strpos($line, "\t") !== false) + { + $parts = explode("\t", $line); + + $line = $parts[0]; + + unset($parts[0]); + + foreach ($parts as $part) + { + $shortage = 4 - mb_strlen($line, 'utf-8') % 4; + + $line .= str_repeat(' ', $shortage); + $line .= $part; + } + } + + $indent = 0; + + while (isset($line[$indent]) and $line[$indent] === ' ') + { + $indent ++; + } + + $text = $indent > 0 ? substr($line, $indent) : $line; + + # ~ + + $Line = array('body' => $line, 'indent' => $indent, 'text' => $text); + + # ~ + + if (isset($CurrentBlock['continuable'])) + { + $Block = $this->{'block'.$CurrentBlock['type'].'Continue'}($Line, $CurrentBlock); + + if (isset($Block)) + { + $CurrentBlock = $Block; + + continue; + } + else + { + if ($this->isBlockCompletable($CurrentBlock['type'])) + { + $CurrentBlock = $this->{'block'.$CurrentBlock['type'].'Complete'}($CurrentBlock); + } + } + } + + # ~ + + $marker = $text[0]; + + # ~ + + $blockTypes = $this->unmarkedBlockTypes; + + if (isset($this->BlockTypes[$marker])) + { + foreach ($this->BlockTypes[$marker] as $blockType) + { + $blockTypes []= $blockType; + } + } + + # + # ~ + + foreach ($blockTypes as $blockType) + { + $Block = $this->{'block'.$blockType}($Line, $CurrentBlock); + + if (isset($Block)) + { + $Block['type'] = $blockType; + + if ( ! isset($Block['identified'])) + { + $Blocks []= $CurrentBlock; + + $Block['identified'] = true; + } + + if ($this->isBlockContinuable($blockType)) + { + $Block['continuable'] = true; + } + + $CurrentBlock = $Block; + + continue 2; + } + } + + # ~ + + if (isset($CurrentBlock) and ! isset($CurrentBlock['type']) and ! isset($CurrentBlock['interrupted'])) + { + $CurrentBlock['element']['text'] .= "\n".$text; + } + else + { + $Blocks []= $CurrentBlock; + + $CurrentBlock = $this->paragraph($Line); + + $CurrentBlock['identified'] = true; + } + } + + # ~ + + if (isset($CurrentBlock['continuable']) and $this->isBlockCompletable($CurrentBlock['type'])) + { + $CurrentBlock = $this->{'block'.$CurrentBlock['type'].'Complete'}($CurrentBlock); + } + + # ~ + + $Blocks []= $CurrentBlock; + + unset($Blocks[0]); + + # ~ + + $markup = ''; + + foreach ($Blocks as $Block) + { + if (isset($Block['hidden'])) + { + continue; + } + + $markup .= "\n"; + $markup .= isset($Block['markup']) ? $Block['markup'] : $this->element($Block['element']); + } + + $markup .= "\n"; + + # ~ + + return $markup; + } + + protected function isBlockContinuable($Type) + { + return method_exists($this, 'block'.$Type.'Continue'); + } + + protected function isBlockCompletable($Type) + { + return method_exists($this, 'block'.$Type.'Complete'); + } + + # + # Code + + protected function blockCode($Line, $Block = null) + { + if (isset($Block) and ! isset($Block['type']) and ! isset($Block['interrupted'])) + { + return; + } + + if ($Line['indent'] >= 4) + { + $text = substr($Line['body'], 4); + + $Block = array( + 'element' => array( + 'name' => 'pre', + 'handler' => 'element', + 'text' => array( + 'name' => 'code', + 'text' => $text, + ), + ), + ); + + return $Block; + } + } + + protected function blockCodeContinue($Line, $Block) + { + if ($Line['indent'] >= 4) + { + if (isset($Block['interrupted'])) + { + $Block['element']['text']['text'] .= "\n"; + + unset($Block['interrupted']); + } + + $Block['element']['text']['text'] .= "\n"; + + $text = substr($Line['body'], 4); + + $Block['element']['text']['text'] .= $text; + + return $Block; + } + } + + protected function blockCodeComplete($Block) + { + $text = $Block['element']['text']['text']; + + $text = htmlspecialchars($text, ENT_NOQUOTES, 'UTF-8'); + + $Block['element']['text']['text'] = $text; + + return $Block; + } + + # + # Comment + + protected function blockComment($Line) + { + if ($this->markupEscaped) + { + return; + } + + if (isset($Line['text'][3]) and $Line['text'][3] === '-' and $Line['text'][2] === '-' and $Line['text'][1] === '!') + { + $Block = array( + 'markup' => $Line['body'], + ); + + if (preg_match('/-->$/', $Line['text'])) + { + $Block['closed'] = true; + } + + return $Block; + } + } + + protected function blockCommentContinue($Line, array $Block) + { + if (isset($Block['closed'])) + { + return; + } + + $Block['markup'] .= "\n" . $Line['body']; + + if (preg_match('/-->$/', $Line['text'])) + { + $Block['closed'] = true; + } + + return $Block; + } + + # + # Fenced Code + + protected function blockFencedCode($Line) + { + if (preg_match('/^['.$Line['text'][0].']{3,}[ ]*([\w-]+)?[ ]*$/', $Line['text'], $matches)) + { + $Element = array( + 'name' => 'code', + 'text' => '', + ); + + if (isset($matches[1])) + { + $class = 'language-'.$matches[1]; + + $Element['attributes'] = array( + 'class' => $class, + ); + } + + $Block = array( + 'char' => $Line['text'][0], + 'element' => array( + 'name' => 'pre', + 'handler' => 'element', + 'text' => $Element, + ), + ); + + return $Block; + } + } + + protected function blockFencedCodeContinue($Line, $Block) + { + if (isset($Block['complete'])) + { + return; + } + + if (isset($Block['interrupted'])) + { + $Block['element']['text']['text'] .= "\n"; + + unset($Block['interrupted']); + } + + if (preg_match('/^'.$Block['char'].'{3,}[ ]*$/', $Line['text'])) + { + $Block['element']['text']['text'] = substr($Block['element']['text']['text'], 1); + + $Block['complete'] = true; + + return $Block; + } + + $Block['element']['text']['text'] .= "\n".$Line['body']; + + return $Block; + } + + protected function blockFencedCodeComplete($Block) + { + $text = $Block['element']['text']['text']; + + $text = htmlspecialchars($text, ENT_NOQUOTES, 'UTF-8'); + + $Block['element']['text']['text'] = $text; + + return $Block; + } + + # + # Header + + protected function blockHeader($Line) + { + if (isset($Line['text'][1])) + { + $level = 1; + + while (isset($Line['text'][$level]) and $Line['text'][$level] === '#') + { + $level ++; + } + + if ($level > 6) + { + return; + } + + $text = trim($Line['text'], '# '); + + $Block = array( + 'element' => array( + 'name' => 'h' . min(6, $level), + 'text' => $text, + 'handler' => 'line', + ), + ); + + return $Block; + } + } + + # + # List + + protected function blockList($Line) + { + list($name, $pattern) = $Line['text'][0] <= '-' ? array('ul', '[*+-]') : array('ol', '[0-9]+[.]'); + + if (preg_match('/^('.$pattern.'[ ]+)(.*)/', $Line['text'], $matches)) + { + $Block = array( + 'indent' => $Line['indent'], + 'pattern' => $pattern, + 'element' => array( + 'name' => $name, + 'handler' => 'elements', + ), + ); + + if($name === 'ol') + { + $listStart = stristr($matches[0], '.', true); + + if($listStart !== '1') + { + $Block['element']['attributes'] = array('start' => $listStart); + } + } + + $Block['li'] = array( + 'name' => 'li', + 'handler' => 'li', + 'text' => array( + $matches[2], + ), + ); + + $Block['element']['text'] []= & $Block['li']; + + return $Block; + } + } + + protected function blockListContinue($Line, array $Block) + { + if ($Block['indent'] === $Line['indent'] and preg_match('/^'.$Block['pattern'].'(?:[ ]+(.*)|$)/', $Line['text'], $matches)) + { + if (isset($Block['interrupted'])) + { + $Block['li']['text'] []= ''; + + unset($Block['interrupted']); + } + + unset($Block['li']); + + $text = isset($matches[1]) ? $matches[1] : ''; + + $Block['li'] = array( + 'name' => 'li', + 'handler' => 'li', + 'text' => array( + $text, + ), + ); + + $Block['element']['text'] []= & $Block['li']; + + return $Block; + } + + if ($Line['text'][0] === '[' and $this->blockReference($Line)) + { + return $Block; + } + + if ( ! isset($Block['interrupted'])) + { + $text = preg_replace('/^[ ]{0,4}/', '', $Line['body']); + + $Block['li']['text'] []= $text; + + return $Block; + } + + if ($Line['indent'] > 0) + { + $Block['li']['text'] []= ''; + + $text = preg_replace('/^[ ]{0,4}/', '', $Line['body']); + + $Block['li']['text'] []= $text; + + unset($Block['interrupted']); + + return $Block; + } + } + + # + # Quote + + protected function blockQuote($Line) + { + if (preg_match('/^>[ ]?(.*)/', $Line['text'], $matches)) + { + $Block = array( + 'element' => array( + 'name' => 'blockquote', + 'handler' => 'lines', + 'text' => (array) $matches[1], + ), + ); + + return $Block; + } + } + + protected function blockQuoteContinue($Line, array $Block) + { + if ($Line['text'][0] === '>' and preg_match('/^>[ ]?(.*)/', $Line['text'], $matches)) + { + if (isset($Block['interrupted'])) + { + $Block['element']['text'] []= ''; + + unset($Block['interrupted']); + } + + $Block['element']['text'] []= $matches[1]; + + return $Block; + } + + if ( ! isset($Block['interrupted'])) + { + $Block['element']['text'] []= $Line['text']; + + return $Block; + } + } + + # + # Rule + + protected function blockRule($Line) + { + if (preg_match('/^(['.$Line['text'][0].'])([ ]*\1){2,}[ ]*$/', $Line['text'])) + { + $Block = array( + 'element' => array( + 'name' => 'hr' + ), + ); + + return $Block; + } + } + + # + # Setext + + protected function blockSetextHeader($Line, array $Block = null) + { + if ( ! isset($Block) or isset($Block['type']) or isset($Block['interrupted'])) + { + return; + } + + if (chop($Line['text'], $Line['text'][0]) === '') + { + $Block['element']['name'] = $Line['text'][0] === '=' ? 'h1' : 'h2'; + + return $Block; + } + } + + # + # Markup + + protected function blockMarkup($Line) + { + if ($this->markupEscaped) + { + return; + } + + if (preg_match('/^<(\w*)(?:[ ]*'.$this->regexHtmlAttribute.')*[ ]*(\/)?>/', $Line['text'], $matches)) + { + $element = strtolower($matches[1]); + + if (in_array($element, $this->textLevelElements)) + { + return; + } + + $Block = array( + 'name' => $matches[1], + 'depth' => 0, + 'markup' => $Line['text'], + ); + + $length = strlen($matches[0]); + + $remainder = substr($Line['text'], $length); + + if (trim($remainder) === '') + { + if (isset($matches[2]) or in_array($matches[1], $this->voidElements)) + { + $Block['closed'] = true; + + $Block['void'] = true; + } + } + else + { + if (isset($matches[2]) or in_array($matches[1], $this->voidElements)) + { + return; + } + + if (preg_match('/<\/'.$matches[1].'>[ ]*$/i', $remainder)) + { + $Block['closed'] = true; + } + } + + return $Block; + } + } + + protected function blockMarkupContinue($Line, array $Block) + { + if (isset($Block['closed'])) + { + return; + } + + if (preg_match('/^<'.$Block['name'].'(?:[ ]*'.$this->regexHtmlAttribute.')*[ ]*>/i', $Line['text'])) # open + { + $Block['depth'] ++; + } + + if (preg_match('/(.*?)<\/'.$Block['name'].'>[ ]*$/i', $Line['text'], $matches)) # close + { + if ($Block['depth'] > 0) + { + $Block['depth'] --; + } + else + { + $Block['closed'] = true; + } + } + + if (isset($Block['interrupted'])) + { + $Block['markup'] .= "\n"; + + unset($Block['interrupted']); + } + + $Block['markup'] .= "\n".$Line['body']; + + return $Block; + } + + # + # Reference + + protected function blockReference($Line) + { + if (preg_match('/^\[(.+?)\]:[ ]*?(?:[ ]+["\'(](.+)["\')])?[ ]*$/', $Line['text'], $matches)) + { + $id = strtolower($matches[1]); + + $Data = array( + 'url' => $matches[2], + 'title' => null, + ); + + if (isset($matches[3])) + { + $Data['title'] = $matches[3]; + } + + $this->DefinitionData['Reference'][$id] = $Data; + + $Block = array( + 'hidden' => true, + ); + + return $Block; + } + } + + # + # Table + + protected function blockTable($Line, array $Block = null) + { + if ( ! isset($Block) or isset($Block['type']) or isset($Block['interrupted'])) + { + return; + } + + if (strpos($Block['element']['text'], '|') !== false and chop($Line['text'], ' -:|') === '') + { + $alignments = array(); + + $divider = $Line['text']; + + $divider = trim($divider); + $divider = trim($divider, '|'); + + $dividerCells = explode('|', $divider); + + foreach ($dividerCells as $dividerCell) + { + $dividerCell = trim($dividerCell); + + if ($dividerCell === '') + { + continue; + } + + $alignment = null; + + if ($dividerCell[0] === ':') + { + $alignment = 'left'; + } + + if (substr($dividerCell, - 1) === ':') + { + $alignment = $alignment === 'left' ? 'center' : 'right'; + } + + $alignments []= $alignment; + } + + # ~ + + $HeaderElements = array(); + + $header = $Block['element']['text']; + + $header = trim($header); + $header = trim($header, '|'); + + $headerCells = explode('|', $header); + + foreach ($headerCells as $index => $headerCell) + { + $headerCell = trim($headerCell); + + $HeaderElement = array( + 'name' => 'th', + 'text' => $headerCell, + 'handler' => 'line', + ); + + if (isset($alignments[$index])) + { + $alignment = $alignments[$index]; + + $HeaderElement['attributes'] = array( + 'style' => 'text-align: '.$alignment.';', + ); + } + + $HeaderElements []= $HeaderElement; + } + + # ~ + + $Block = array( + 'alignments' => $alignments, + 'identified' => true, + 'element' => array( + 'name' => 'table', + 'handler' => 'elements', + ), + ); + + $Block['element']['text'] []= array( + 'name' => 'thead', + 'handler' => 'elements', + ); + + $Block['element']['text'] []= array( + 'name' => 'tbody', + 'handler' => 'elements', + 'text' => array(), + ); + + $Block['element']['text'][0]['text'] []= array( + 'name' => 'tr', + 'handler' => 'elements', + 'text' => $HeaderElements, + ); + + return $Block; + } + } + + protected function blockTableContinue($Line, array $Block) + { + if (isset($Block['interrupted'])) + { + return; + } + + if ($Line['text'][0] === '|' or strpos($Line['text'], '|')) + { + $Elements = array(); + + $row = $Line['text']; + + $row = trim($row); + $row = trim($row, '|'); + + preg_match_all('/(?:(\\\\[|])|[^|`]|`[^`]+`|`)+/', $row, $matches); + + foreach ($matches[0] as $index => $cell) + { + $cell = trim($cell); + + $Element = array( + 'name' => 'td', + 'handler' => 'line', + 'text' => $cell, + ); + + if (isset($Block['alignments'][$index])) + { + $Element['attributes'] = array( + 'style' => 'text-align: '.$Block['alignments'][$index].';', + ); + } + + $Elements []= $Element; + } + + $Element = array( + 'name' => 'tr', + 'handler' => 'elements', + 'text' => $Elements, + ); + + $Block['element']['text'][1]['text'] []= $Element; + + return $Block; + } + } + + # + # ~ + # + + protected function paragraph($Line) + { + $Block = array( + 'element' => array( + 'name' => 'p', + 'text' => $Line['text'], + 'handler' => 'line', + ), + ); + + return $Block; + } + + # + # Inline Elements + # + + protected $InlineTypes = array( + '"' => array('SpecialCharacter'), + '!' => array('Image'), + '&' => array('SpecialCharacter'), + '*' => array('Emphasis'), + ':' => array('Url'), + '<' => array('UrlTag', 'EmailTag', 'Markup', 'SpecialCharacter'), + '>' => array('SpecialCharacter'), + '[' => array('Link'), + '_' => array('Emphasis'), + '`' => array('Code'), + '~' => array('Strikethrough'), + '\\' => array('EscapeSequence'), + ); + + # ~ + + protected $inlineMarkerList = '!"*_&[:<>`~\\'; + + # + # ~ + # + + public function line($text) + { + $markup = ''; + + # $excerpt is based on the first occurrence of a marker + + while ($excerpt = strpbrk($text, $this->inlineMarkerList)) + { + $marker = $excerpt[0]; + + $markerPosition = strpos($text, $marker); + + $Excerpt = array('text' => $excerpt, 'context' => $text); + + foreach ($this->InlineTypes[$marker] as $inlineType) + { + $Inline = $this->{'inline'.$inlineType}($Excerpt); + + if ( ! isset($Inline)) + { + continue; + } + + # makes sure that the inline belongs to "our" marker + + if (isset($Inline['position']) and $Inline['position'] > $markerPosition) + { + continue; + } + + # sets a default inline position + + if ( ! isset($Inline['position'])) + { + $Inline['position'] = $markerPosition; + } + + # the text that comes before the inline + $unmarkedText = substr($text, 0, $Inline['position']); + + # compile the unmarked text + $markup .= $this->unmarkedText($unmarkedText); + + # compile the inline + $markup .= isset($Inline['markup']) ? $Inline['markup'] : $this->element($Inline['element']); + + # remove the examined text + $text = substr($text, $Inline['position'] + $Inline['extent']); + + continue 2; + } + + # the marker does not belong to an inline + + $unmarkedText = substr($text, 0, $markerPosition + 1); + + $markup .= $this->unmarkedText($unmarkedText); + + $text = substr($text, $markerPosition + 1); + } + + $markup .= $this->unmarkedText($text); + + return $markup; + } + + # + # ~ + # + + protected function inlineCode($Excerpt) + { + $marker = $Excerpt['text'][0]; + + if (preg_match('/^('.$marker.'+)[ ]*(.+?)[ ]*(? strlen($matches[0]), + 'element' => array( + 'name' => 'code', + 'text' => $text, + ), + ); + } + } + + protected function inlineEmailTag($Excerpt) + { + if (strpos($Excerpt['text'], '>') !== false and preg_match('/^<((mailto:)?\S+?@\S+?)>/i', $Excerpt['text'], $matches)) + { + $url = $matches[1]; + + if ( ! isset($matches[2])) + { + $url = 'mailto:' . $url; + } + + return array( + 'extent' => strlen($matches[0]), + 'element' => array( + 'name' => 'a', + 'text' => $matches[1], + 'attributes' => array( + 'href' => $url, + ), + ), + ); + } + } + + protected function inlineEmphasis($Excerpt) + { + if ( ! isset($Excerpt['text'][1])) + { + return; + } + + $marker = $Excerpt['text'][0]; + + if ($Excerpt['text'][1] === $marker and preg_match($this->StrongRegex[$marker], $Excerpt['text'], $matches)) + { + $emphasis = 'strong'; + } + elseif (preg_match($this->EmRegex[$marker], $Excerpt['text'], $matches)) + { + $emphasis = 'em'; + } + else + { + return; + } + + return array( + 'extent' => strlen($matches[0]), + 'element' => array( + 'name' => $emphasis, + 'handler' => 'line', + 'text' => $matches[1], + ), + ); + } + + protected function inlineEscapeSequence($Excerpt) + { + if (isset($Excerpt['text'][1]) and in_array($Excerpt['text'][1], $this->specialCharacters)) + { + return array( + 'markup' => $Excerpt['text'][1], + 'extent' => 2, + ); + } + } + + protected function inlineImage($Excerpt) + { + if ( ! isset($Excerpt['text'][1]) or $Excerpt['text'][1] !== '[') + { + return; + } + + $Excerpt['text']= substr($Excerpt['text'], 1); + + $Link = $this->inlineLink($Excerpt); + + if ($Link === null) + { + return; + } + + $Inline = array( + 'extent' => $Link['extent'] + 1, + 'element' => array( + 'name' => 'img', + 'attributes' => array( + 'src' => $Link['element']['attributes']['href'], + 'alt' => $Link['element']['text'], + ), + ), + ); + + $Inline['element']['attributes'] += $Link['element']['attributes']; + + unset($Inline['element']['attributes']['href']); + + return $Inline; + } + + protected function inlineLink($Excerpt) + { + $Element = array( + 'name' => 'a', + 'handler' => 'line', + 'text' => null, + 'attributes' => array( + 'href' => null, + 'title' => null, + ), + ); + + $extent = 0; + + $remainder = $Excerpt['text']; + + if (preg_match('/\[((?:[^][]++|(?R))*+)\]/', $remainder, $matches)) + { + $Element['text'] = $matches[1]; + + $extent += strlen($matches[0]); + + $remainder = substr($remainder, $extent); + } + else + { + return; + } + + if (preg_match('/^[(]\s*+((?:[^ ()]++|[(][^ )]+[)])++)(?:[ ]+("[^"]*"|\'[^\']*\'))?\s*[)]/', $remainder, $matches)) + { + $Element['attributes']['href'] = $matches[1]; + + if (isset($matches[2])) + { + $Element['attributes']['title'] = substr($matches[2], 1, - 1); + } + + $extent += strlen($matches[0]); + } + else + { + if (preg_match('/^\s*\[(.*?)\]/', $remainder, $matches)) + { + $definition = strlen($matches[1]) ? $matches[1] : $Element['text']; + $definition = strtolower($definition); + + $extent += strlen($matches[0]); + } + else + { + $definition = strtolower($Element['text']); + } + + if ( ! isset($this->DefinitionData['Reference'][$definition])) + { + return; + } + + $Definition = $this->DefinitionData['Reference'][$definition]; + + $Element['attributes']['href'] = $Definition['url']; + $Element['attributes']['title'] = $Definition['title']; + } + + $Element['attributes']['href'] = str_replace(array('&', '<'), array('&', '<'), $Element['attributes']['href']); + + return array( + 'extent' => $extent, + 'element' => $Element, + ); + } + + protected function inlineMarkup($Excerpt) + { + if ($this->markupEscaped or strpos($Excerpt['text'], '>') === false) + { + return; + } + + if ($Excerpt['text'][1] === '/' and preg_match('/^<\/\w*[ ]*>/s', $Excerpt['text'], $matches)) + { + return array( + 'markup' => $matches[0], + 'extent' => strlen($matches[0]), + ); + } + + if ($Excerpt['text'][1] === '!' and preg_match('/^/s', $Excerpt['text'], $matches)) + { + return array( + 'markup' => $matches[0], + 'extent' => strlen($matches[0]), + ); + } + + if ($Excerpt['text'][1] !== ' ' and preg_match('/^<\w*(?:[ ]*'.$this->regexHtmlAttribute.')*[ ]*\/?>/s', $Excerpt['text'], $matches)) + { + return array( + 'markup' => $matches[0], + 'extent' => strlen($matches[0]), + ); + } + } + + protected function inlineSpecialCharacter($Excerpt) + { + if ($Excerpt['text'][0] === '&' and ! preg_match('/^&#?\w+;/', $Excerpt['text'])) + { + return array( + 'markup' => '&', + 'extent' => 1, + ); + } + + $SpecialCharacter = array('>' => 'gt', '<' => 'lt', '"' => 'quot'); + + if (isset($SpecialCharacter[$Excerpt['text'][0]])) + { + return array( + 'markup' => '&'.$SpecialCharacter[$Excerpt['text'][0]].';', + 'extent' => 1, + ); + } + } + + protected function inlineStrikethrough($Excerpt) + { + if ( ! isset($Excerpt['text'][1])) + { + return; + } + + if ($Excerpt['text'][1] === '~' and preg_match('/^~~(?=\S)(.+?)(?<=\S)~~/', $Excerpt['text'], $matches)) + { + return array( + 'extent' => strlen($matches[0]), + 'element' => array( + 'name' => 'del', + 'text' => $matches[1], + 'handler' => 'line', + ), + ); + } + } + + protected function inlineUrl($Excerpt) + { + if ($this->urlsLinked !== true or ! isset($Excerpt['text'][2]) or $Excerpt['text'][2] !== '/') + { + return; + } + + if (preg_match('/\bhttps?:[\/]{2}[^\s<]+\b\/*/ui', $Excerpt['context'], $matches, PREG_OFFSET_CAPTURE)) + { + $Inline = array( + 'extent' => strlen($matches[0][0]), + 'position' => $matches[0][1], + 'element' => array( + 'name' => 'a', + 'text' => $matches[0][0], + 'attributes' => array( + 'href' => $matches[0][0], + ), + ), + ); + + return $Inline; + } + } + + protected function inlineUrlTag($Excerpt) + { + if (strpos($Excerpt['text'], '>') !== false and preg_match('/^<(\w+:\/{2}[^ >]+)>/i', $Excerpt['text'], $matches)) + { + $url = str_replace(array('&', '<'), array('&', '<'), $matches[1]); + + return array( + 'extent' => strlen($matches[0]), + 'element' => array( + 'name' => 'a', + 'text' => $url, + 'attributes' => array( + 'href' => $url, + ), + ), + ); + } + } + + # ~ + + protected function unmarkedText($text) + { + if ($this->breaksEnabled) + { + $text = preg_replace('/[ ]*\n/', "
    \n", $text); + } + else + { + $text = preg_replace('/(?:[ ][ ]+|[ ]*\\\\)\n/', "
    \n", $text); + $text = str_replace(" \n", "\n", $text); + } + + return $text; + } + + # + # Handlers + # + + protected function element(array $Element) + { + $markup = '<'.$Element['name']; + + if (isset($Element['attributes'])) + { + foreach ($Element['attributes'] as $name => $value) + { + if ($value === null) + { + continue; + } + + $markup .= ' '.$name.'="'.$value.'"'; + } + } + + if (isset($Element['text'])) + { + $markup .= '>'; + + if (isset($Element['handler'])) + { + $markup .= $this->{$Element['handler']}($Element['text']); + } + else + { + $markup .= $Element['text']; + } + + $markup .= ''; + } + else + { + $markup .= ' />'; + } + + return $markup; + } + + protected function elements(array $Elements) + { + $markup = ''; + + foreach ($Elements as $Element) + { + $markup .= "\n" . $this->element($Element); + } + + $markup .= "\n"; + + return $markup; + } + + # ~ + + protected function li($lines) + { + $markup = $this->lines($lines); + + $trimmedMarkup = trim($markup); + + if ( ! in_array('', $lines) and substr($trimmedMarkup, 0, 3) === '

    ') + { + $markup = $trimmedMarkup; + $markup = substr($markup, 3); + + $position = strpos($markup, "

    "); + + $markup = substr_replace($markup, '', $position, 4); + } + + return $markup; + } + + # + # Deprecated Methods + # + + function parse($text) + { + $markup = $this->text($text); + + return $markup; + } + + # + # Static Methods + # + + static function instance($name = 'default') + { + if (isset(self::$instances[$name])) + { + return self::$instances[$name]; + } + + $instance = new static(); + + self::$instances[$name] = $instance; + + return $instance; + } + + private static $instances = array(); + + # + # Fields + # + + protected $DefinitionData; + + # + # Read-Only + + protected $specialCharacters = array( + '\\', '`', '*', '_', '{', '}', '[', ']', '(', ')', '>', '#', '+', '-', '.', '!', '|', + ); + + protected $StrongRegex = array( + '*' => '/^[*]{2}((?:\\\\\*|[^*]|[*][^*]*[*])+?)[*]{2}(?![*])/s', + '_' => '/^__((?:\\\\_|[^_]|_[^_]*_)+?)__(?!_)/us', + ); + + protected $EmRegex = array( + '*' => '/^[*]((?:\\\\\*|[^*]|[*][*][^*]+?[*][*])+?)[*](?![*])/s', + '_' => '/^_((?:\\\\_|[^_]|__[^_]*__)+?)_(?!_)\b/us', + ); + + protected $regexHtmlAttribute = '[a-zA-Z_:][\w:.-]*(?:\s*=\s*(?:[^"\'=<>`\s]+|"[^"]*"|\'[^\']*\'))?'; + + protected $voidElements = array( + 'area', 'base', 'br', 'col', 'command', 'embed', 'hr', 'img', 'input', 'link', 'meta', 'param', 'source', + ); + + protected $textLevelElements = array( + 'a', 'br', 'bdo', 'abbr', 'blink', 'nextid', 'acronym', 'basefont', + 'b', 'em', 'big', 'cite', 'small', 'spacer', 'listing', + 'i', 'rp', 'del', 'code', 'strike', 'marquee', + 'q', 'rt', 'ins', 'font', 'strong', + 's', 'tt', 'kbd', 'mark', + 'u', 'xm', 'sub', 'nobr', + 'sup', 'ruby', + 'var', 'span', + 'wbr', 'time', + ); +} diff --git a/redux/ReduxCore/inc/fields/section/field_section.css b/redux/ReduxCore/inc/fields/section/field_section.css new file mode 100644 index 0000000..c2a1770 --- /dev/null +++ b/redux/ReduxCore/inc/fields/section/field_section.css @@ -0,0 +1 @@ +.redux-main .form-table-section-indented{width:95%;margin-left:5% !important}.redux-main .form-table-section tr:first-of-type th:first-of-type{padding:0px !important}.redux-main h3{margin-top:10px}.redux-main .form-table-section-indented>tbody>tr:first-child{display:none}.redux-main .form-table-section-indented>tbody>tr:nth-last-child(2){border-bottom:0} diff --git a/redux/ReduxCore/inc/fields/section/field_section.css.map b/redux/ReduxCore/inc/fields/section/field_section.css.map new file mode 100644 index 0000000..fb6bebf --- /dev/null +++ b/redux/ReduxCore/inc/fields/section/field_section.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "AACI,wCAA6B;EACzB,KAAK,EAAE,GAAG;EACV,WAAW,EAAE,aAAa;AAG9B,iEAAsD;EAClD,OAAO,EAAE,cAAc;AAG3B,cAAG;EACC,UAAU,EAAE,IAAI;AAIhB,iEAAc;EACV,OAAO,EAAE,IAAI;AAGjB,uEAAoB;EAChB,aAAa,EAAE,CAAC", +"sources": ["field_section.scss"], +"names": [], +"file": "field_section.css" +} \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/section/field_section.php b/redux/ReduxCore/inc/fields/section/field_section.php new file mode 100644 index 0000000..400ee83 --- /dev/null +++ b/redux/ReduxCore/inc/fields/section/field_section.php @@ -0,0 +1,134 @@ +. + * + * @package ReduxFramework + * @subpackage Field_Section + * @author Tobias Karnetze (athoss.de) + * @version 1.0.0 + */ + +// Exit if accessed directly + if ( ! defined( 'ABSPATH' ) ) { + exit; + } + +// Don't duplicate me! + if ( ! class_exists( 'ReduxFramework_section' ) ) { + + /** + * Main ReduxFramework_heading class + * + * @since 1.0.0 + */ + class ReduxFramework_section { + + public $parent; + public $field; + public $value; + + /** + * Field Constructor. + * Required - must call the parent constructor, then assign field and value to vars, and obviously call the render field function + * + * @since 1.0.0 + * @access public + * @return void + */ + public function __construct( $field = array(), $value = '', $parent=null ) { + $this->parent = $parent; + $this->field = $field; + $this->value = $value; + } + + /** + * Field Render Function. + * Takes the vars and outputs the HTML for the field in the settings + * + * @since 1.0.0 + * @access public + * @return void + */ + public function render() { + + // No errors please + $defaults = array( + 'indent' => '', + 'style' => '', + 'class' => '', + 'title' => '', + 'subtitle' => '', + ); + $this->field = wp_parse_args( $this->field, $defaults ); + + $guid = uniqid(); + + $add_class = ''; + if ( isset( $this->field['indent'] ) && true === $this->field['indent'] ) { + $add_class = ' form-table-section-indented'; + } elseif( !isset( $this->field['indent'] ) || ( isset( $this->field['indent'] ) && false !== $this->field['indent'] ) ) { + $add_class = " hide"; + } + + echo '
    '; + + echo '
    '; + + if ( ! empty( $this->field['title'] ) ) { + echo '

    ' . esc_html($this->field['title']) . '

    '; + } + + if ( ! empty( $this->field['subtitle'] ) ) { + echo '
    ' . esc_html($this->field['subtitle']) . '
    '; + } + + echo '
    '; + + // delete the tr afterwards + ?> + + parent->args['dev_mode'] ) { + wp_enqueue_style( + 'redux-field-section-css', + ReduxFramework::$_url . 'inc/fields/section/field_section.css', + array(), + time(), + 'all' + ); + } + } + } + } \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/section/field_section.scss b/redux/ReduxCore/inc/fields/section/field_section.scss new file mode 100644 index 0000000..87a9a10 --- /dev/null +++ b/redux/ReduxCore/inc/fields/section/field_section.scss @@ -0,0 +1,25 @@ +.redux-main { + .form-table-section-indented { + width: 95%; + margin-left: 5% !important; + } + + .form-table-section tr:first-of-type th:first-of-type { + padding: 0px !important; + } + + h3 { + margin-top: 10px; + } + + .form-table-section-indented > tbody > tr{ + &:first-child { + display: none; + } + + &:nth-last-child(2) { + border-bottom: 0; + } + } +} + diff --git a/redux/ReduxCore/inc/fields/select/elusive-icons.php b/redux/ReduxCore/inc/fields/select/elusive-icons.php new file mode 100644 index 0000000..a10d676 --- /dev/null +++ b/redux/ReduxCore/inc/fields/select/elusive-icons.php @@ -0,0 +1,312 @@ + 0 ) { + var select2_params = $( this ).siblings( '.select2_params' ).val(); + select2_params = JSON.parse( select2_params ); + default_params = $.extend( {}, default_params, select2_params ); + } + + if ( $( this ).hasClass( 'font-icons' ) ) { + default_params = $.extend( + {}, { + formatResult: redux.field_objects.select.addIcon, + formatSelection: redux.field_objects.select.addIcon, + escapeMarkup: function( m ) { + return m; + } + }, default_params + ); + } + + $( this ).select2( default_params ); + + if ( $( this ).hasClass( 'select2-sortable' ) ) { + default_params = {}; + default_params.bindOrder = 'sortableStop'; + default_params.sortableOptions = {placeholder: 'ui-state-highlight'}; + $( this ).select2Sortable( default_params ); + } + + $( this ).on( + "change", function() { + redux_change( $( $( this ) ) ); + $( this ).select2SortableOrder(); + } + ); + } + ); + } + ); + }; + + redux.field_objects.select.addIcon = function( icon ) { + if ( icon.hasOwnProperty( 'id' ) ) { + return "" + "  " + icon.text + ""; + } + }; +})( jQuery ); \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/select/field_select.min.js b/redux/ReduxCore/inc/fields/select/field_select.min.js new file mode 100644 index 0000000..2831ad2 --- /dev/null +++ b/redux/ReduxCore/inc/fields/select/field_select.min.js @@ -0,0 +1 @@ +!function(s){"use strict";redux.field_objects=redux.field_objects||{},redux.field_objects.select=redux.field_objects.select||{},redux.field_objects.select.init=function(e){e||(e=s(document).find(".redux-container-select:visible")),s(e).each(function(){var e=s(this),t=e;e.hasClass("redux-field-container")||(t=e.parents(".redux-field-container:first")),t.is(":hidden")||t.hasClass("redux-field-init")&&(t.removeClass("redux-field-init"),e.find("select.redux-select-item").each(function(){var e={width:"resolve",triggerChange:!0,allowClear:!0};if("multiple"==s(this).attr("multiple")&&(e.width="100%"),0  "+e.text+""}}(jQuery); \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/select/field_select.php b/redux/ReduxCore/inc/fields/select/field_select.php new file mode 100644 index 0000000..5377822 --- /dev/null +++ b/redux/ReduxCore/inc/fields/select/field_select.php @@ -0,0 +1,183 @@ +parent = $parent; + $this->field = $field; + $this->value = $value; + } + + /** + * Field Render Function. + * Takes the vars and outputs the HTML for the field in the settings + * + * @since ReduxFramework 1.0.0 + */ + public function render() { + $sortable = ( isset( $this->field['sortable'] ) && $this->field['sortable'] ) ? ' select2-sortable"' : ""; + + if ( ! empty( $sortable ) ) { // Dummy proofing :P + $this->field['multi'] = true; + } + + if ( ! empty( $this->field['data'] ) && empty( $this->field['options'] ) ) { + if ( empty( $this->field['args'] ) ) { + $this->field['args'] = array(); + } + + if ( $this->field['data'] == "elusive-icons" || $this->field['data'] == "elusive-icon" || $this->field['data'] == "elusive" ) { + $icons_file = ReduxFramework::$_dir . 'inc/fields/select/elusive-icons.php'; + /** + * filter 'redux-font-icons-file}' + * + * @param array $icon_file File for the icons + */ + $icons_file = apply_filters( 'redux-font-icons-file', $icons_file ); + + /** + * filter 'redux/{opt_name}/field/font/icons/file' + * + * @param array $icon_file File for the icons + */ + $icons_file = apply_filters( "redux/{$this->parent->args['opt_name']}/field/font/icons/file", $icons_file ); + if ( file_exists( $icons_file ) ) { + require_once $icons_file; + } + } + + $this->field['options'] = $this->parent->get_wordpress_data( $this->field['data'], $this->field['args'] ); + } + + if ( ! empty( $this->field['data'] ) && ( $this->field['data'] == "elusive-icons" || $this->field['data'] == "elusive-icon" || $this->field['data'] == "elusive" ) ) { + $this->field['class'] .= " font-icons"; + } + //if + + if ( ! empty( $this->field['options'] ) ) { + $multi = ( isset( $this->field['multi'] ) && $this->field['multi'] ) ? ' multiple="multiple"' : ""; + + if ( ! empty( $this->field['width'] ) ) { + $width = ' style="' . $this->field['width'] . '"'; + } else { + $width = ' style="width: 40%;"'; + } + + $nameBrackets = ""; + if ( ! empty( $multi ) ) { + $nameBrackets = "[]"; + } + + $placeholder = ( isset( $this->field['placeholder'] ) ) ? esc_attr( $this->field['placeholder'] ) : __( 'Select an item', 'redux-framework' ); + + if ( isset( $this->field['select2'] ) ) { // if there are any let's pass them to js + $select2_params = json_encode( $this->field['select2'] ); + $select2_params = htmlspecialchars( $select2_params, ENT_QUOTES ); + + echo ''; + } + + if ( isset( $this->field['multi'] ) && $this->field['multi'] && isset( $this->field['sortable'] ) && $this->field['sortable'] && ! empty( $this->value ) && is_array( $this->value ) ) { + $origOption = $this->field['options']; + $this->field['options'] = array(); + + foreach ( $this->value as $value ) { + $this->field['options'][ $value ] = $origOption[ $value ]; + } + + if ( count( $this->field['options'] ) < count( $origOption ) ) { + foreach ( $origOption as $key => $value ) { + if ( ! in_array( $key, $this->field['options'] ) ) { + $this->field['options'][ $key ] = $value; + } + } + } + } + + $sortable = ( isset( $this->field['sortable'] ) && $this->field['sortable'] ) ? ' select2-sortable"' : ""; + + echo ''; + } else { + echo '' . __( 'No items of this type were found.', 'redux-framework' ) . ''; + } + } //function + + private function make_option($id, $value, $group_name = '') { + if ( is_array( $this->value ) ) { + $selected = ( is_array( $this->value ) && in_array( $id, $this->value ) ) ? ' selected="selected"' : ''; + } else { + $selected = selected( $this->value, $id, false ); + } + + echo ''; + } + + /** + * Enqueue Function. + * If this field requires any scripts, or css define this function and register/enqueue the scripts/css + * + * @since ReduxFramework 1.0.0 + */ + public function enqueue() { + wp_enqueue_style( 'select2-css' ); + + if (isset($this->field['sortable']) && $this->field['sortable']) { + wp_enqueue_script('jquery-ui-sortable'); + } + + wp_enqueue_script( + 'redux-field-select-js', + ReduxFramework::$_url . 'inc/fields/select/field_select' . Redux_Functions::isMin() . '.js', + array( 'jquery', 'select2-js', 'redux-js' ), + time(), + true + ); + + if ($this->parent->args['dev_mode']) { + wp_enqueue_style( + 'redux-field-select-css', + ReduxFramework::$_url . 'inc/fields/select/field_select.css', + array(), + time(), + 'all' + ); + } + } //function + } //class +} \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/select/field_select.scss b/redux/ReduxCore/inc/fields/select/field_select.scss new file mode 100644 index 0000000..f73812d --- /dev/null +++ b/redux/ReduxCore/inc/fields/select/field_select.scss @@ -0,0 +1,10 @@ +.redux-container-select { + li.ui-state-highlight { + height: 20px; + margin-top: 2px; + margin-left: 5px; + width: 64px; + margin-bottom: 0; + } +} + diff --git a/redux/ReduxCore/inc/fields/select_image/field_select_image.css b/redux/ReduxCore/inc/fields/select_image/field_select_image.css new file mode 100644 index 0000000..b4a9459 --- /dev/null +++ b/redux/ReduxCore/inc/fields/select_image/field_select_image.css @@ -0,0 +1 @@ +.redux-container-select_image{margin-top:2px;margin-left:5px;width:100%;margin-bottom:0}.redux-preview-image{max-height:250px;max-width:250px;padding:5px;margin-top:10px;border:1px solid #e3e3e3;background:#f7f7f7;-moz-border-radius:3px;-khtml-border-radius:3px;-webkit-border-radius:3px;border-radius:3px} diff --git a/redux/ReduxCore/inc/fields/select_image/field_select_image.css.map b/redux/ReduxCore/inc/fields/select_image/field_select_image.css.map new file mode 100644 index 0000000..f7196ae --- /dev/null +++ b/redux/ReduxCore/inc/fields/select_image/field_select_image.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "AAAA,6BAA8B;EAC1B,UAAU,EAAE,GAAG;EACf,WAAW,EAAE,GAAG;EAChB,KAAK,EAAE,IAAI;EACX,aAAa,EAAE,CAAC;;AAGpB,oBAAqB;EACjB,UAAU,EAAE,KAAK;EACjB,SAAS,EAAE,KAAK;EAChB,OAAO,EAAE,GAAG;EACZ,UAAU,EAAE,IAAI;EAChB,MAAM,EAAE,iBAAiB;EACzB,UAAU,EAAE,OAAO;EACnB,kBAAkB,EAAE,GAAG;EACvB,oBAAoB,EAAE,GAAG;EACzB,qBAAqB,EAAE,GAAG;EAC1B,aAAa,EAAE,GAAG", +"sources": ["field_select_image.scss"], +"names": [], +"file": "field_select_image.css" +} \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/select_image/field_select_image.js b/redux/ReduxCore/inc/fields/select_image/field_select_image.js new file mode 100644 index 0000000..296f41e --- /dev/null +++ b/redux/ReduxCore/inc/fields/select_image/field_select_image.js @@ -0,0 +1,72 @@ +/*global redux_change, redux*/ + +(function( $ ) { + "use strict"; + + redux.field_objects = redux.field_objects || {}; + redux.field_objects.select_image = redux.field_objects.select_image || {}; + + $( document ).ready( + function() { + //redux.field_objects.select_image.init(); + } + ); + + redux.field_objects.select_image.init = function( selector ) { + + if ( !selector ) { + selector = $( document ).find( ".redux-group-tab:visible" ).find( '.redux-container-select_image:visible' ); + } + + $( selector ).each( + function() { + var el = $( this ); + var parent = el; + if ( !el.hasClass( 'redux-field-container' ) ) { + parent = el.parents( '.redux-field-container:first' ); + } + if ( parent.is( ":hidden" ) ) { // Skip hidden fields + return; + } + if ( parent.hasClass( 'redux-field-init' ) ) { + parent.removeClass( 'redux-field-init' ); + } else { + return; + } + var default_params = { + width: 'resolve', + triggerChange: true, + allowClear: true + }; + + var select2_handle = el.find( '.redux-container-select_image' ).find( '.select2_params' ); + + if ( select2_handle.size() > 0 ) { + var select2_params = select2_handle.val(); + + select2_params = JSON.parse( select2_params ); + default_params = $.extend( {}, default_params, select2_params ); + } + + el.find( 'select.redux-select-images' ).select2( default_params ); + + el.find( '.redux-select-images' ).on( + 'change', function() { + var preview = $( this ).parents( '.redux-field:first' ).find( '.redux-preview-image' ); + + if ( $( this ).val() === "" ) { + preview.fadeOut( + 'medium', function() { + preview.attr( 'src', '' ); + } + ); + } else { + preview.attr( 'src', $( this ).val() ); + preview.fadeIn().css( 'visibility', 'visible' ); + } + } + ); + } + ); + }; +})( jQuery ); \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/select_image/field_select_image.min.js b/redux/ReduxCore/inc/fields/select_image/field_select_image.min.js new file mode 100644 index 0000000..1f31e36 --- /dev/null +++ b/redux/ReduxCore/inc/fields/select_image/field_select_image.min.js @@ -0,0 +1 @@ +!function(d){"use strict";redux.field_objects=redux.field_objects||{},redux.field_objects.select_image=redux.field_objects.select_image||{},d(document).ready(function(){}),redux.field_objects.select_image.init=function(e){e||(e=d(document).find(".redux-group-tab:visible").find(".redux-container-select_image:visible")),d(e).each(function(){var e=d(this),i=e;if(e.hasClass("redux-field-container")||(i=e.parents(".redux-field-container:first")),!i.is(":hidden")&&i.hasClass("redux-field-init")){i.removeClass("redux-field-init");var t={width:"resolve",triggerChange:!0,allowClear:!0},s=e.find(".redux-container-select_image").find(".select2_params");if(0 + */ + +// Exit if accessed directly +if ( ! defined( 'ABSPATH' ) ) { + exit; +} + +if ( ! class_exists( 'ReduxFramework_select_image' ) ) { + class ReduxFramework_select_image { + + /** + * Field Constructor. + * Required - must call the parent constructor, then assign field and value to vars, and obviously call the render field function + * + * @since ReduxFramework 1.0.0 + */ + function __construct( $field = array(), $value = '', $parent=null ) { + $this->parent = $parent; + $this->field = $field; + $this->value = $value; + } + + /** + * Field Render Function. + * Takes the vars and outputs the HTML for the field in the settings + * + * @since ReduxFramework 1.0.0 + */ + function render() { + + // If options is NOT empty, the process + if ( ! empty( $this->field['options'] ) ) { + + // beancounter + $x = 1; + + // Process width + if ( ! empty( $this->field['width'] ) ) { + $width = ' style="width:' . $this->field['width'] . ';"'; + } else { + $width = ' style="width: 40%;"'; + } + + // Process placeholder + $placeholder = ( isset( $this->field['placeholder'] ) ) ? esc_attr( $this->field['placeholder'] ) : __( 'Select an item', 'redux-framework' ); + + if ( isset( $this->field['select2'] ) ) { // if there are any let's pass them to js + $select2_params = json_encode( $this->field['select2'] ); + $select2_params = htmlspecialchars( $select2_params, ENT_QUOTES ); + + echo ''; + } + + // Begin the '; + echo ''; + + // Enum through the options array + foreach ( $this->field['options'] as $k => $v ) { + + // No array? No problem! + if ( ! is_array( $v ) ) { + $v = array( 'img' => $v ); + } + + // No title set? Make it blank. + if ( ! isset( $v['title'] ) ) { + $v['title'] = ''; + } + + // No alt? Set it to title. We do this so the alt tag shows + // something. It also makes HTML/SEO purists happy. + if ( ! isset( $v['alt'] ) ) { + $v['alt'] = $v['title']; + } + + // Set the selected entry + $selected = selected( $this->value, $v['img'], false ); + + // If selected returns something other than a blank space, we + // found our default/saved name. Save the array number in a + // variable to use later on when we want to extract its associted + // url. + if ( '' != $selected ) { + $arrNum = $x; + } + + // Add the option tag, with values. + echo ''; + + // Add a bean + $x ++; + } + + // Close the '; + + // Some space + echo '

    '; + + // Show the preview image. + echo '
    '; + + // just in case. You never know. + if ( ! isset( $arrNum ) ) { + $this->value = ''; + } + + // Set the default image. To get the url from the default name, + // we save the array count from the for/each loop, when the default image + // is mark as selected. Since the for/each loop starts at one, we must + // substract one from the saved array number. We then pull the url + // out of the options array, and there we go. + if ( '' == $this->value ) { + echo ''; + } else { + echo ''; + } + + // Close the
    tag. + echo '
    '; + } else { + + // No options specified. Really? + echo '' . __( 'No items of this type were found.', 'redux-framework' ) . ''; + } + } //function + + /** + * Enqueue Function. + * If this field requires any scripts, or css define this function and register/enqueue the scripts/css + * + * @since ReduxFramework 1.0.0 + */ + function enqueue() { + wp_enqueue_style( 'select2-css' ); + + wp_enqueue_script( + 'field-select-image-js', + ReduxFramework::$_url . 'inc/fields/select_image/field_select_image' . Redux_Functions::isMin() . '.js', + array('jquery', 'select2-js', 'redux-js'), + time(), + true + ); + + if ($this->parent->args['dev_mode']) { + wp_enqueue_style( + 'redux-field-select-image-css', + ReduxFramework::$_url . 'inc/fields/select_image/field_select_image.css', + array(), + time(), + 'all' + ); + } + } //function + } //class +} \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/select_image/field_select_image.scss b/redux/ReduxCore/inc/fields/select_image/field_select_image.scss new file mode 100644 index 0000000..601c9ef --- /dev/null +++ b/redux/ReduxCore/inc/fields/select_image/field_select_image.scss @@ -0,0 +1,20 @@ +.redux-container-select_image { + margin-top: 2px; + margin-left: 5px; + width: 100%; + margin-bottom: 0; +} + +.redux-preview-image { + max-height: 250px; + max-width: 250px; + padding: 5px; + margin-top: 10px; + border: 1px solid #e3e3e3; + background: #f7f7f7; + -moz-border-radius: 3px; + -khtml-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; +} + diff --git a/redux/ReduxCore/inc/fields/slider/field_slider.css b/redux/ReduxCore/inc/fields/slider/field_slider.css new file mode 100644 index 0000000..6991456 --- /dev/null +++ b/redux/ReduxCore/inc/fields/slider/field_slider.css @@ -0,0 +1 @@ +.redux-container-slider .redux-slider-container{margin-left:25px;margin-right:25px;width:200px;display:inline-block;vertical-align:middle}.redux-container-slider .redux-slider-input,.redux-container-slider .redux-slider-select-one,.redux-container-slider .redux-slider-select-two{width:100px !important;text-align:center}.redux-container-slider .redux-slider-label{position:absolute;margin-left:-5px}.redux-container-slider .redux-slider-label-one{position:absolute;margin-left:-22px}.redux-container-slider .redux-slider-label-two{position:absolute;margin-top:-21px;margin-left:245px}@media screen and (max-width: 782px){.redux-container-slider input{display:inline-block !important}}@media screen and (max-width: 570px){.redux-container-slider{text-align:center}.redux-container-slider input,.redux-container-slider select,.redux-container-slider .redux-slider-label,.redux-container-slider .select2-container{display:block !important;position:inherit;margin:10px auto}.redux-container-slider .redux-slider-container{margin-top:3px;width:80%}}.wp-customizer .redux-container-slider .redux-slider-label{float:left;position:inherit;width:25%;text-align:center;margin-left:0}.wp-customizer .redux-container-slider .redux-slider-input,.wp-customizer .redux-container-slider .redux-slider-select-one,.wp-customizer .redux-container-slider .redux-slider-select-two{width:25% !important}.wp-customizer .redux-container-slider .redux-slider-container{width:70%;margin-right:0;margin-left:5%} diff --git a/redux/ReduxCore/inc/fields/slider/field_slider.css.map b/redux/ReduxCore/inc/fields/slider/field_slider.css.map new file mode 100644 index 0000000..efbb833 --- /dev/null +++ b/redux/ReduxCore/inc/fields/slider/field_slider.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "AACI,+CAAwB;EACpB,WAAW,EAAE,IAAI;EACjB,YAAY,EAAE,IAAI;EAClB,KAAK,EAAE,KAAK;EACZ,OAAO,EAAE,YAAY;EACrB,cAAc,EAAE,MAAM;AAG1B;;gDAEyB;EACrB,KAAK,EAAE,gBAAgB;EACvB,UAAU,EAAE,MAAM;AAGtB,2CAAoB;EAChB,QAAQ,EAAE,QAAQ;EAClB,WAAW,EAAE,IAAI;AAGrB,+CAAwB;EACpB,QAAQ,EAAE,QAAQ;EAClB,WAAW,EAAE,KAAK;AAGtB,+CAAwB;EACpB,QAAQ,EAAE,QAAQ;EAClB,UAAU,EAAE,KAAK;EACjB,WAAW,EAAE,KAAK;;AAI1B,oCAAqC;EAE7B,6BAAM;IACF,OAAO,EAAE,uBAAuB;AAM5C,oCAAqC;EACjC,uBAAwB;IACpB,UAAU,EAAE,MAAM;IAElB;;;8CAGmB;MACf,OAAO,EAAE,gBAAgB;MACzB,QAAQ,EAAE,OAAO;MACjB,MAAM,EAAE,SAAS;IAGrB,+CAAwB;MACpB,UAAU,EAAE,GAAG;MACf,KAAK,EAAE,GAAG;AAOd,0DAAoB;EAChB,KAAK,EAAE,IAAI;EACX,QAAQ,EAAE,OAAO;EACjB,KAAK,EAAE,GAAG;EACV,UAAU,EAAE,MAAM;EAClB,WAAW,EAAC,CAAC;AAEjB,4LAAwE;EACpE,KAAK,EAAE,cAAc;AAEzB,8DAAwB;EACpB,KAAK,EAAE,GAAG;EACV,YAAY,EAAE,CAAC;EACf,WAAW,EAAE,EAAE", +"sources": ["field_slider.scss"], +"names": [], +"file": "field_slider.css" +} \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/slider/field_slider.js b/redux/ReduxCore/inc/fields/slider/field_slider.js new file mode 100644 index 0000000..1404086 --- /dev/null +++ b/redux/ReduxCore/inc/fields/slider/field_slider.js @@ -0,0 +1,269 @@ +/*global redux_change, redux*/ + +(function( $ ) { + "use strict"; + + redux.field_objects = redux.field_objects || {}; + redux.field_objects.slider = redux.field_objects.slider || {}; + + $( document ).ready( + function() { + + } + ); + + redux.field_objects.slider.init = function( selector ) { + + if ( !selector ) { + selector = $( document ).find( ".redux-group-tab:visible" ).find( '.redux-container-slider:visible' ); + } + + $( selector ).each( + function() { + var el = $( this ); + var parent = el; + + if ( !el.hasClass( 'redux-field-container' ) ) { + parent = el.parents( '.redux-field-container:first' ); + } + if ( parent.is( ":hidden" ) ) { // Skip hidden fields + return; + } + if ( parent.hasClass( 'redux-field-init' ) ) { + parent.removeClass( 'redux-field-init' ); + } else { + return; + } + + el.find( 'div.redux-slider-container' ).each( + function() { + + var start, toClass, defClassOne, defClassTwo, connectVal; + var DISPLAY_NONE = 0; + var DISPLAY_LABEL = 1; + var DISPLAY_TEXT = 2; + var DISPLAY_SELECT = 3; + + var mainID = $( this ).data( 'id' ); + var minVal = $( this ).data( 'min' ); + var maxVal = $( this ).data( 'max' ); + var stepVal = $( this ).data( 'step' ); + var handles = $( this ).data( 'handles' ); + var defValOne = $( this ).data( 'default-one' ); + var defValTwo = $( this ).data( 'default-two' ); + var resVal = $( this ).data( 'resolution' ); + var displayValue = parseInt( ($( this ).data( 'display' )) ); + var rtlVal = Boolean( $( this ).data( 'rtl' ) ); + var floatMark = ($( this ).data( 'float-mark' )); + var forced = Boolean($( this ).data( 'forced' )); + + var rtl; + if ( rtlVal === true ) { + rtl = 'rtl'; + } else { + rtl = 'ltr'; + } + + // range array + var range = [minVal, maxVal]; + + // Set default values for dual slides. + var startTwo = [defValOne, defValTwo]; + + // Set default value for single slide + var startOne = [defValOne]; + + var inputOne, inputTwo; + if ( displayValue == DISPLAY_TEXT ) { + defClassOne = el.find( '.redux-slider-input-one-' + mainID ); + defClassTwo = el.find( '.redux-slider-input-two-' + mainID ); + + inputOne = defClassOne; + inputTwo = defClassTwo; + } else if ( displayValue == DISPLAY_SELECT ) { + defClassOne = el.find( '.redux-slider-select-one-' + mainID ); + defClassTwo = el.find( '.redux-slider-select-two-' + mainID ); + + redux.field_objects.slider.loadSelect( defClassOne, minVal, maxVal, resVal, stepVal ); + + if ( handles === 2 ) { + redux.field_objects.slider.loadSelect( defClassTwo, minVal, maxVal, resVal, stepVal ); + } + + } else if ( displayValue == DISPLAY_LABEL ) { + defClassOne = el.find( '#redux-slider-label-one-' + mainID ); + defClassTwo = el.find( '#redux-slider-label-two-' + mainID ); + } else if ( displayValue == DISPLAY_NONE ) { + defClassOne = el.find( '.redux-slider-value-one-' + mainID ); + defClassTwo = el.find( '.redux-slider-value-two-' + mainID ); + } + + var classOne, classTwo; + if ( displayValue == DISPLAY_LABEL ) { + var x = [defClassOne, 'html']; + var y = [defClassTwo, 'html']; + + classOne = [x]; + classTwo = [x, y]; + } else { + classOne = [defClassOne]; + classTwo = [defClassOne, defClassTwo]; + } + + if ( handles === 2 ) { + start = startTwo; + toClass = classTwo; + connectVal = true; + } else { + start = startOne; + toClass = classOne; + connectVal = 'lower'; + } + + var slider = $( this ).noUiSlider( + { + range: range, + start: start, + handles: handles, + step: stepVal, + connect: connectVal, + behaviour: "tap-drag", + direction: rtl, + serialization: { + resolution: resVal, + to: toClass, + mark: floatMark, + }, + slide: function() { + if ( displayValue == DISPLAY_LABEL ) { + if ( handles === 2 ) { + var inpSliderVal = slider.val(); + el.find( 'input.redux-slider-value-one-' + mainID ).attr( + 'value', inpSliderVal[0] + ); + el.find( 'input.redux-slider-value-two-' + mainID ).attr( + 'value', inpSliderVal[1] + ); + } else { + el.find( 'input.redux-slider-value-one-' + mainID ).attr( + 'value', slider.val() + ); + } + } + + if ( displayValue == DISPLAY_SELECT ) { + if ( handles === 2 ) { + el.find( '.redux-slider-select-one' ).select2( 'val', slider.val()[0] ); + el.find( '.redux-slider-select-two' ).select2( 'val', slider.val()[1] ); + } else { + el.find( '.redux-slider-select-one' ).select2( 'val', slider.val() ); + } + } + + redux_change( $( this ).parents( '.redux-field-container:first' ).find( 'input' ) ); + } + } + ); + + if ( displayValue === DISPLAY_TEXT ) { + inputOne.keydown( + function( e ) { + + var sliderOne = slider.val(); + var value = parseInt( sliderOne[0] ); + + switch ( e.which ) { + case 38: + slider.val( [value + 1, null] ); + break; + case 40: + slider.val( [value - 1, null] ); + break; + case 13: + e.preventDefault(); + break; + } + } + ); + + if ( handles === 2 ) { + inputTwo.keydown( + function( e ) { + var sliderTwo = slider.val(); + var value = parseInt( sliderTwo[1] ); + + switch ( e.which ) { + case 38: + slider.val( [null, value + 1] ); + break; + case 40: + slider.val( [null, value - 1] ); + break; + case 13: + e.preventDefault(); + break; + } + } + ); + } + } + } + ); + + var default_params = { + width: 'resolve', + triggerChange: true, + allowClear: true + }; + + var select2_handle = el.find( '.select2_params' ); + if ( select2_handle.size() > 0 ) { + var select2_params = select2_handle.val(); + + select2_params = JSON.parse( select2_params ); + default_params = $.extend( {}, default_params, select2_params ); + } + + el.find( 'select.redux-slider-select-one, select.redux-slider-select-two' ).select2( default_params ); + + } + ); + + }; + + // Return true for float value, false otherwise + redux.field_objects.slider.isFloat = function( mixed_var ) { + return +mixed_var === mixed_var && (!(isFinite( mixed_var ))) || Boolean( (mixed_var % 1) ); + }; + + // Return number of integers after the decimal point. + redux.field_objects.slider.decimalCount = function( res ) { + var q = res.toString().split( '.' ); + return q[1].length; + }; + + redux.field_objects.slider.loadSelect = function( myClass, min, max, res, step ) { + + //var j = step + ((decCount ) - (step )); // 18; + + for ( var i = min; i <= max; i = i + res ) { + //var step = 2; + + //if (j === (step + ((decCount ) - (step )))) { + var n = i; + if ( redux.field_objects.slider.isFloat( res ) ) { + var decCount = redux.field_objects.slider.decimalCount( res ); + n = i.toFixed( decCount ); + } + + $( myClass ).append( + '' + ); + //j = 0; + //} + //j++; + } + }; + + +})( jQuery ); diff --git a/redux/ReduxCore/inc/fields/slider/field_slider.min.js b/redux/ReduxCore/inc/fields/slider/field_slider.min.js new file mode 100644 index 0000000..6d83abf --- /dev/null +++ b/redux/ReduxCore/inc/fields/slider/field_slider.min.js @@ -0,0 +1 @@ +!function(F){"use strict";redux.field_objects=redux.field_objects||{},redux.field_objects.slider=redux.field_objects.slider||{},F(document).ready(function(){}),redux.field_objects.slider.init=function(e){e||(e=F(document).find(".redux-group-tab:visible").find(".redux-container-slider:visible")),F(e).each(function(){var y=F(this),e=y;if(y.hasClass("redux-field-container")||(e=y.parents(".redux-field-container:first")),!e.is(":hidden")&&e.hasClass("redux-field-init")){e.removeClass("redux-field-init"),y.find("div.redux-slider-container").each(function(){var e,i,t,d,l,r,a=F(this).data("id"),s=F(this).data("min"),n=F(this).data("max"),o=F(this).data("step"),u=F(this).data("handles"),c=F(this).data("default-one"),f=F(this).data("default-two"),v=F(this).data("resolution"),x=parseInt(F(this).data("display")),h=Boolean(F(this).data("rtl")),p=F(this).data("float-mark");Boolean(F(this).data("forced"));r=!0===h?"rtl":"ltr";var b,w,_,j,m=[s,n],g=[c,f],k=[c];if(2==x?(b=t=y.find(".redux-slider-input-one-"+a),w=d=y.find(".redux-slider-input-two-"+a)):3==x?(t=y.find(".redux-slider-select-one-"+a),d=y.find(".redux-slider-select-two-"+a),redux.field_objects.slider.loadSelect(t,s,n,v,o),2===u&&redux.field_objects.slider.loadSelect(d,s,n,v,o)):1==x?(t=y.find("#redux-slider-label-one-"+a),d=y.find("#redux-slider-label-two-"+a)):0==x&&(t=y.find(".redux-slider-value-one-"+a),d=y.find(".redux-slider-value-two-"+a)),1==x){var C=[t,"html"];_=[C],j=[C,[d,"html"]]}else _=[t],j=[t,d];l=2===u?(e=g,i=j,!0):(e=k,i=_,"lower");var S=F(this).noUiSlider({range:m,start:e,handles:u,step:o,connect:l,behaviour:"tap-drag",direction:r,serialization:{resolution:v,to:i,mark:p},slide:function(){if(1==x)if(2===u){var e=S.val();y.find("input.redux-slider-value-one-"+a).attr("value",e[0]),y.find("input.redux-slider-value-two-"+a).attr("value",e[1])}else y.find("input.redux-slider-value-one-"+a).attr("value",S.val());3==x&&(2===u?(y.find(".redux-slider-select-one").select2("val",S.val()[0]),y.find(".redux-slider-select-two").select2("val",S.val()[1])):y.find(".redux-slider-select-one").select2("val",S.val())),redux_change(F(this).parents(".redux-field-container:first").find("input"))}});2===x&&(b.keydown(function(e){var i=S.val(),t=parseInt(i[0]);switch(e.which){case 38:S.val([t+1,null]);break;case 40:S.val([t-1,null]);break;case 13:e.preventDefault()}}),2===u&&w.keydown(function(e){var i=S.val(),t=parseInt(i[1]);switch(e.which){case 38:S.val([null,t+1]);break;case 40:S.val([null,t-1]);break;case 13:e.preventDefault()}}))});var i={width:"resolve",triggerChange:!0,allowClear:!0},t=y.find(".select2_params");if(0'+a+"")}}}(jQuery); \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/slider/field_slider.php b/redux/ReduxCore/inc/fields/slider/field_slider.php new file mode 100644 index 0000000..15237df --- /dev/null +++ b/redux/ReduxCore/inc/fields/slider/field_slider.php @@ -0,0 +1,418 @@ +. + * + * @package ReduxFramework + * @subpackage Field_Slider + * @author Kevin Provance (kprovance) + * @version 2.0.0 + */ + +// Exit if accessed directly +if ( ! defined( 'ABSPATH' ) ) { + exit; +} + +if ( ! class_exists( 'ReduxFramework_slider' ) ) { + class ReduxFramework_slider { + + public $parent; + public $field; + public $value; + + /** + * Field Constructor. + * Required - must call the parent constructor, then assign field and value to vars, and obviously call the render field function + * + * @since ReduxFramework 3.1.8 + */ + private $display_none = 0; + private $display_label = 1; + private $display_text = 2; + private $display_select = 3; + + function __construct( $field = array(), $value = '', $parent=null ) { + + //parent::__construct( $parent->sections, $parent->args ); + $this->parent = $parent; + $this->field = $field; + $this->value = $value; + + // Set defaults + $defaults = array( + 'handles' => 1, + 'resolution' => 1, + 'display_value' => 'text', + 'float_mark' => '.', + 'forced' => true + ); + + $this->field = wp_parse_args( $this->field, $defaults ); + + // Sanitize float mark + switch ( $this->field['float_mark'] ) { + case ',': + case '.': + break; + default: + $this->field['float_mark'] = '.'; + break; + } + + // Sanitize resolution value + $this->field['resolution'] = $this->cleanVal( $this->field['resolution'] ); + + // Sanitize handle value + switch ( $this->field['handles'] ) { + case 0: + case 1: + $this->field['handles'] = 1; + break; + default: + $this->field['handles'] = 2; + break; + } + + // Sanitize display value + switch ( $this->field['display_value'] ) { + case 'label': + $this->field['display_value'] = $this->display_label; + break; + case 'text': + default: + $this->field['display_value'] = $this->display_text; + break; + case 'select': + $this->field['display_value'] = $this->display_select; + break; + case 'none': + $this->field['display_value'] = $this->display_none; + break; + } + } + + private function cleanVal( $var ) { + if ( is_float( $var ) ) { + $cleanVar = floatval( $var ); + } else { + $cleanVar = intval( $var ); + } + + return $cleanVar; + } + + private function cleanDefault( $val ) { + if ( empty( $val ) && ! empty( $this->field['default'] ) && $this->cleanVal( $this->field['min'] ) >= 1 ) { + $val = $this->cleanVal( $this->field['default'] ); + } + + if ( empty( $val ) && $this->cleanVal( $this->field['min'] ) >= 1 ) { + $val = $this->cleanVal( $this->field['min'] ); + } + + if ( empty( $val ) ) { + $val = 0; + } + + // Extra Validation + if ( $val < $this->field['min'] ) { + $val = $this->cleanVal( $this->field['min'] ); + } else if ( $val > $this->field['max'] ) { + $val = $this->cleanVal( $this->field['max'] ); + } + + return $val; + } + + private function cleanDefaultArray( $val ) { + $one = $this->value[1]; + $two = $this->value[2]; + + if ( empty( $one ) && ! empty( $this->field['default'][1] ) && $this->cleanVal( $this->field['min'] ) >= 1 ) { + $one = $this->cleanVal( $this->field['default'][1] ); + } + + if ( empty( $one ) && $this->cleanVal( $this->field['min'] ) >= 1 ) { + $one = $this->cleanVal( $this->field['min'] ); + } + + if ( empty( $one ) ) { + $one = 0; + } + + if ( empty( $two ) && ! empty( $this->field['default'][2] ) && $this->cleanVal( $this->field['min'] ) >= 1 ) { + $two = $this->cleanVal( $this->field['default'][1] + 1 ); + } + + if ( empty( $two ) && $this->cleanVal( $this->field['min'] ) >= 1 ) { + $two = $this->cleanVal( $this->field['default'][1] + 1 ); + } + + if ( empty( $two ) ) { + $two = $this->field['default'][1] + 1; + } + + $val[0] = $one; + $val[1] = $two; + + return $val; + } + + + /** + * Clean the field data to the fields defaults given the parameters. + * + * @since Redux_Framework 3.1.8 + */ + function clean() { + + // Set min to 0 if no value is set. + $this->field['min'] = empty( $this->field['min'] ) ? 0 : $this->cleanVal( $this->field['min'] ); + + // Set max to min + 1 if empty. + $this->field['max'] = empty( $this->field['max'] ) ? $this->field['min'] + 1 : $this->cleanVal( $this->field['max'] ); + + // Set step to 1 if step is empty ot step > max. + $this->field['step'] = empty( $this->field['step'] ) || $this->field['step'] > $this->field['max'] ? 1 : $this->cleanVal( $this->field['step'] ); + + if ( 2 == $this->field['handles'] ) { + if ( ! is_array( $this->value ) ) { + $this->value[1] = 0; + $this->value[2] = 1; + } + $this->value = $this->cleanDefaultArray( $this->value ); + } else { + if ( is_array( $this->value ) ) { + $this->value = 0; + } + $this->value = $this->cleanDefault( $this->value ); + } + + // More dummy checks + //if ( ! is_array( $this->field['default'] ) && 2 == $this->field['handles'] ) { + if ( ! is_array( $this->value ) && 2 == $this->field['handles'] ) { + $this->value[0] = $this->field['min']; + $this->value[1] = $this->field['min'] + 1; + } + + //if ( is_array( $this->field['default'] ) && 1 == $this->field['handles'] ) { + if ( is_array( $this->value ) && 1 == $this->field['handles'] ) { + $this->value = $this->field['min']; + } + + } + + /** + * Enqueue Function. + * If this field requires any scripts, or css define this function and register/enqueue the scripts/css + * + * @since ReduxFramework 3.1.8 + */ + function enqueue() { + + $min = Redux_Functions::isMin(); + + wp_enqueue_style( 'select2-css' ); + + wp_enqueue_style( + 'redux-nouislider-css', + ReduxFramework::$_url . 'inc/fields/slider/vendor/nouislider/redux.jquery.nouislider.css', + array(), + '5.0.0', + 'all' + ); + + wp_register_script( + 'redux-nouislider-js', + ReduxFramework::$_url . 'inc/fields/slider/vendor/nouislider/redux.jquery.nouislider' . $min . '.js', + array( 'jquery' ), + '5.0.0', + true + ); + + wp_enqueue_script( + 'redux-field-slider-js', + ReduxFramework::$_url . 'inc/fields/slider/field_slider' . $min . '.js', + array( 'jquery', 'redux-nouislider-js', 'redux-js', 'select2-js' ), + time(), + true + ); + + if ($this->parent->args['dev_mode']) { + wp_enqueue_style( + 'redux-field-slider-css', + ReduxFramework::$_url . 'inc/fields/slider/field_slider.css', + array(), + time(), + 'all' + ); + } + } + + //function + + /** + * Field Render Function. + * Takes the vars and outputs the HTML for the field in the settings + * + * @since ReduxFramework 0.0.4 + */ + function render() { + + $this->clean(); + + $fieldID = $this->field['id']; + $fieldName = $this->field['name'] . $this->field['name_suffix']; + //$fieldName = $this->parent->args['opt_name'] . '[' . $this->field['id'] . ']'; + + // Set handle number variable. + $twoHandles = false; + if ( 2 == $this->field['handles'] ) { + $twoHandles = true; + } + + // Set default values(s) + if ( true == $twoHandles ) { + $valOne = $this->value[0]; + $valTwo = $this->value[1]; + + $html = 'data-default-one="' . $valOne . '" '; + $html .= 'data-default-two="' . $valTwo . '" '; + + $nameOne = $fieldName . '[1]'; + $nameTwo = $fieldName . '[2]'; + + $idOne = $fieldID . '[1]'; + $idTwo = $fieldID . '[2]'; + } else { + $valOne = $this->value; + $valTwo = ''; + + $html = 'data-default-one="' . $valOne . '"'; + + $nameOne = $fieldName; + $nameTwo = ''; + + $idOne = $fieldID; + $idTwo = ''; + } + + $showInput = false; + $showLabel = false; + $showSelect = false; + + // TEXT output + if ( $this->display_text == $this->field['display_value'] ) { + $showInput = true; + echo ''; + + // LABEL output + } elseif ( $this->display_label == $this->field['display_value'] ) { + $showLabel = true; + + $labelNum = $twoHandles ? '-one' : ''; + + echo '
    +
    '; + + // SELECT output + } elseif ( $this->display_select == $this->field['display_value'] ) { + $showSelect = true; + + if ( isset( $this->field['select2'] ) ) { // if there are any let's pass them to js + $select2_params = json_encode( $this->field['select2'] ); + $select2_params = htmlspecialchars( $select2_params, ENT_QUOTES ); + + echo ''; + } + + + echo ''; + } + + // DIV output + echo + '
    +
    '; + + // Double slider output + if ( true == $twoHandles ) { + + // TEXT + if ( true == $showInput ) { + echo ''; + } + + // LABEL + if ( true == $showLabel ) { + echo '
    +
    '; + } + + // SELECT + if ( true == $showSelect ) { + echo ''; + + } + } + + // NO output (input hidden) + if ( $this->display_none == $this->field['display_value'] || $this->display_label == $this->field['display_value'] ) { + echo ''; + + // double slider hidden output + if ( true == $twoHandles ) { + echo ''; + } + } + } + } +} \ No newline at end of file diff --git a/redux/ReduxCore/inc/fields/slider/field_slider.scss b/redux/ReduxCore/inc/fields/slider/field_slider.scss new file mode 100644 index 0000000..f6f456b --- /dev/null +++ b/redux/ReduxCore/inc/fields/slider/field_slider.scss @@ -0,0 +1,82 @@ +.redux-container-slider { + .redux-slider-container { + margin-left: 25px; + margin-right: 25px; + width: 200px; + display: inline-block; + vertical-align: middle; + } + + .redux-slider-input, + .redux-slider-select-one, + .redux-slider-select-two { + width: 100px !important; + text-align: center; + } + + .redux-slider-label { + position: absolute; + margin-left: -5px; + } + + .redux-slider-label-one { + position: absolute; + margin-left: -22px; + } + + .redux-slider-label-two { + position: absolute; + margin-top: -21px; + margin-left: 245px; + } +} + +@media screen and (max-width: 782px) { + .redux-container-slider { + input { + display: inline-block !important; + } + } +} + +// Select Slider +@media screen and (max-width: 570px) { + .redux-container-slider { + text-align: center; + + input, + select, + .redux-slider-label, + .select2-container { + display: block !important; + position: inherit; + margin: 10px auto; + } + + .redux-slider-container { + margin-top: 3px; + width: 80%; + } + } +} + +.wp-customizer { + .redux-container-slider { + .redux-slider-label { + float: left; + position: inherit; + width: 25%; + text-align: center; + margin-left:0; + } + .redux-slider-input, .redux-slider-select-one, .redux-slider-select-two { + width: 25% !important; + } + .redux-slider-container { + width: 70%; + margin-right: 0; + margin-left: 5%; + } + } +} + diff --git a/redux/ReduxCore/inc/fields/slider/vendor/nouislider/redux.jquery.nouislider.css b/redux/ReduxCore/inc/fields/slider/vendor/nouislider/redux.jquery.nouislider.css new file mode 100644 index 0000000..995bbd1 --- /dev/null +++ b/redux/ReduxCore/inc/fields/slider/vendor/nouislider/redux.jquery.nouislider.css @@ -0,0 +1,172 @@ + +/* Functional styling; + * These styles are required for noUiSlider to function. + * You don't need to change these rules to apply your design. + */ +.noUi-target, +.noUi-target * { +-webkit-touch-callout: none; +-webkit-user-select: none; +-ms-touch-action: none; +-ms-user-select: none; +-moz-user-select: none; +-moz-box-sizing: border-box; + box-sizing: border-box; +} +.noUi-base { + width: 100%; + height: 100%; + position: relative; +} +.noUi-origin { + position: absolute; + right: 0; + top: 0; + left: 0; + bottom: 0; +} +.noUi-handle { + position: relative; + z-index: 1; +} +.noUi-stacking .noUi-handle { +/* This class is applied to the lower origin when + its values is > 50%. */ + z-index: 10; +} +.noUi-stacking + .noUi-origin { +/* Fix stacking order in IE7, which incorrectly + creates a new context for the origins. */ + *z-index: -1; +} +.noUi-state-tap .noUi-origin { +-webkit-transition: left 0.3s, top 0.3s; + transition: left 0.3s, top 0.3s; +} +.noUi-state-drag * { + cursor: inherit !important; +} + +/* Slider size and handle placement; + */ +.noUi-horizontal { + height: 18px; +} +.noUi-horizontal .noUi-handle { + width: 34px; + height: 28px; + left: -17px; + top: -6px; +} +.noUi-horizontal.noUi-extended { + padding: 0 15px; +} +.noUi-horizontal.noUi-extended .noUi-origin { + right: -15px; +} +.noUi-vertical { + width: 18px; +} +.noUi-vertical .noUi-handle { + width: 28px; + height: 34px; + left: -6px; + top: -17px; +} +.noUi-vertical.noUi-extended { + padding: 15px 0; +} +.noUi-vertical.noUi-extended .noUi-origin { + bottom: -15px; +} + +/* Styling; + */ +.noUi-background { + background: #FAFAFA; + box-shadow: inset 0 1px 1px #f0f0f0; +} +.noUi-connect { + background: #3FB8AF; + box-shadow: inset 0 0 3px rgba(51,51,51,0.45); +-webkit-transition: background 450ms; + transition: background 450ms; +} +.noUi-origin { + border-radius: 2px; +} +.noUi-target { + border-radius: 4px; + border: 1px solid #D3D3D3; + box-shadow: inset 0 1px 1px #F0F0F0, 0 3px 6px -5px #BBB; +} +.noUi-target.noUi-connect { + box-shadow: inset 0 0 3px rgba(51,51,51,0.45), 0 3px 6px -5px #BBB; +} + +/* Handles and cursors; + */ +.noUi-dragable { + cursor: w-resize; +} +.noUi-vertical .noUi-dragable { + cursor: n-resize; +} +.noUi-handle { + border: 1px solid #D9D9D9; + border-radius: 3px; + background: #FFF; + cursor: default; + box-shadow: inset 0 0 1px #FFF, + inset 0 1px 7px #EBEBEB, + 0 3px 6px -3px #BBB; +} +.noUi-active { + box-shadow: inset 0 0 1px #FFF, + inset 0 1px 7px #DDD, + 0 3px 6px -3px #BBB; +} + +/* Handle stripes; + */ +.noUi-handle:before, +.noUi-handle:after { + content: ""; + display: block; + position: absolute; + height: 14px; + width: 1px; + background: #E8E7E6; + left: 14px; + top: 6px; +} +.noUi-handle:after { + left: 17px; +} +.noUi-vertical .noUi-handle:before, +.noUi-vertical .noUi-handle:after { + width: 14px; + height: 1px; + left: 6px; + top: 14px; +} +.noUi-vertical .noUi-handle:after { + top: 17px; +} + +/* Disabled state; + */ +[disabled].noUi-connect, +[disabled] .noUi-connect { + background: #B8B8B8; +} +[disabled] .noUi-handle { + cursor: not-allowed; +} + +/* Blocked state; + */ +.noUi-state-blocked.noUi-connect, +.noUi-state-blocked .noUi-connect { + background: #4FDACF; +} diff --git a/redux/ReduxCore/inc/fields/slider/vendor/nouislider/redux.jquery.nouislider.js b/redux/ReduxCore/inc/fields/slider/vendor/nouislider/redux.jquery.nouislider.js new file mode 100644 index 0000000..4c05d20 --- /dev/null +++ b/redux/ReduxCore/inc/fields/slider/vendor/nouislider/redux.jquery.nouislider.js @@ -0,0 +1,1420 @@ +/*! $.noUiSlider + @version 5.0.0 + @author Leon Gersen https://twitter.com/LeonGersen + @license WTFPL http://www.wtfpl.net/about/ + @documentation http://refreshless.com/nouislider/ +*/ + +// ==ClosureCompiler== +// @externs_url http://refreshless.com/externs/jquery-1.8.js +// @compilation_level ADVANCED_OPTIMIZATIONS +// @warning_level VERBOSE +// ==/ClosureCompiler== + +/*jshint laxcomma: true */ +/*jshint smarttabs: true */ +/*jshint sub: true */ + +/*jslint browser: true */ +/*jslint continue: true */ +/*jslint plusplus: true */ +/*jslint white: true */ +/*jslint sub: true */ + +(function( $ ){ + + 'use strict'; + + if ( $['zepto'] && !$.fn.removeData ) { + throw new ReferenceError('Zepto is loaded without the data module.'); + } + + $.fn['noUiSlider'] = function( options, rebuild ){ + + var + // Cache the document and body selectors; + doc = $(document) + ,body = $('body') + + // Namespace for binding and unbinding slider events; + ,namespace = '.nui' + + // Copy of the current value function; + ,$VAL = $.fn.val + + // Re-usable list of classes; + ,clsList = [ + /* 0 */ 'noUi-base' + /* 1 */ ,'noUi-origin' + /* 2 */ ,'noUi-handle' + /* 3 */ ,'noUi-input' + /* 4 */ ,'noUi-active' + /* 5 */ ,'noUi-state-tap' + /* 6 */ ,'noUi-target' + /* 7 */ ,'-lower' + /* 8 */ ,'-upper' + /* 9 */ ,'noUi-connect' + /* 10 */ ,'noUi-horizontal' + /* 11 */ ,'noUi-vertical' + /* 12 */ ,'noUi-background' + /* 13 */ ,'noUi-stacking' + /* 14 */ ,'noUi-block' + /* 15 */ ,'noUi-state-blocked' + /* 16 */ ,'noUi-ltr' + /* 17 */ ,'noUi-rtl' + /* 18 */ ,'noUi-dragable' + /* 19 */ ,'noUi-extended' + /* 20 */ ,'noUi-state-drag' + ] + + // Determine the events to bind. IE11 implements pointerEvents without + // a prefix, which breaks compatibility with the IE10 implementation. + ,actions = window.navigator['pointerEnabled'] ? { + start: 'pointerdown' + ,move: 'pointermove' + ,end: 'pointerup' + } : window.navigator['msPointerEnabled'] ? { + start: 'MSPointerDown' + ,move: 'MSPointerMove' + ,end: 'MSPointerUp' + } : { + start: 'mousedown touchstart' + ,move: 'mousemove touchmove' + ,end: 'mouseup touchend' + }; + + +// Percentage calculation + + // (percentage) How many percent is this value of this range? + function fromPercentage ( range, value ) { + return (value * 100) / ( range[1] - range[0] ); + } + + // (percentage) Where is this value on this range? + function toPercentage ( range, value ) { + return fromPercentage( range, range[0] < 0 ? + value + Math.abs(range[0]) : + value - range[0] ); + } + + // (value) How much is this percentage on this range? + function isPercentage ( range, value ) { + return ((value * ( range[1] - range[0] )) / 100) + range[0]; + } + + +// Type tests + + // Test in an object is an instance of jQuery or Zepto. + function isInstance ( a ) { + return a instanceof $ || ( $['zepto'] && $['zepto']['isZ'](a) ); + } + + // Checks whether a value is numerical. + function isNumeric ( a ) { + return !isNaN( parseFloat( a ) ) && isFinite( a ); + } + + +// General helper functions + + // Test an array of objects, and calls them if they are a function. + function call ( functions, scope ) { + + // Allow the passing of an unwrapped function. + // Leaves other code a more comprehensible. + if( !$.isArray( functions ) ){ + functions = [ functions ]; + } + + $.each( functions, function(){ + if (typeof this === 'function') { + this.call(scope); + } + }); + } + + // Returns a proxy to set a target using the public value method. + function setN ( target, number ) { + + return function(){ + + // Determine the correct position to set, + // leave the other one unchanged. + var val = [null, null]; + val[ number ] = $(this).val(); + + // Trigger the 'set' callback + target.val(val, true); + }; + } + + // Round a value to the closest 'to'. + function closest ( value, to ){ + return Math.round(value / to) * to; + } + + // Format output value to specified standards. + function format ( value, options ) { + + // Round the value to the resolution that was set + // with the serialization options. + value = value.toFixed( options['decimals'] ); + + // Rounding away decimals might cause a value of -0 + // when using very small ranges. Remove those cases. + if ( parseFloat(value) === 0 ) { + value = value.replace('-0', '0'); + } + + // Apply the proper decimal mark to the value. + return value.replace( '.', options['serialization']['mark'] ); + } + + // Determine the handle closest to an event. + function closestHandle ( handles, location, style ) { + + if ( handles.length === 1 ) { + return handles[0]; + } + + var total = handles[0].offset()[style] + + handles[1].offset()[style]; + + return handles[ location < total / 2 ? 0 : 1 ]; + } + + // Round away small numbers in floating point implementation. + function digits ( value, round ) { + return parseFloat(value.toFixed(round)); + } + +// Event abstraction + + // Provide a clean event with standardized offset values. + function fixEvent ( e ) { + + // Prevent scrolling and panning on touch events, while + // attempting to slide. The tap event also depends on this. + e.preventDefault(); + + // Filter the event to register the type, which can be + // touch, mouse or pointer. Offset changes need to be + // made on an event specific basis. + var touch = e.type.indexOf('touch') === 0 + ,mouse = e.type.indexOf('mouse') === 0 + ,pointer = e.type.indexOf('pointer') === 0 + ,x,y, event = e; + + // IE10 implemented pointer events with a prefix; + if ( e.type.indexOf('MSPointer') === 0 ) { + pointer = true; + } + + // Get the originalEvent, if the event has been wrapped + // by jQuery. Zepto doesn't wrap the event. + if ( e.originalEvent ) { + e = e.originalEvent; + } + + if ( touch ) { + // noUiSlider supports one movement at a time, + // so we can select the first 'changedTouch'. + x = e.changedTouches[0].pageX; + y = e.changedTouches[0].pageY; + } + if ( mouse || pointer ) { + + // Polyfill the pageXOffset and pageYOffset + // variables for IE7 and IE8; + if( !pointer && window.pageXOffset === undefined ){ + window.pageXOffset = document.documentElement.scrollLeft; + window.pageYOffset = document.documentElement.scrollTop; + } + + x = e.clientX + window.pageXOffset; + y = e.clientY + window.pageYOffset; + } + + return $.extend( event, { + 'pointX': x + ,'pointY': y + ,cursor: mouse + }); + } + + // Handler for attaching events trough a proxy + function attach ( events, element, callback, pass ) { + + var target = pass.target; + + // Add the noUiSlider namespace to all events. + events = events.replace( /\s/g, namespace + ' ' ) + namespace; + + // Bind a closure on the target. + return element.on( events, function( e ){ + + // jQuery and Zepto handle unset attributes differently. + var disabled = target.attr('disabled'); + disabled = !( disabled === undefined || disabled === null ); + + // Test if there is anything that should prevent an event + // from being handled, such as a disabled state or an active + // 'tap' transition. + if( target.hasClass('noUi-state-tap') || disabled ) { + return false; + } + + // Call the event handler with three arguments: + // - The event; + // - An object with data for the event; + // - The slider options; + // Having the slider options as a function parameter prevents + // getting it in every function, which muddies things up. + callback ( + fixEvent( e ) + ,pass + ,target.data('base').data('options') + ); + }); + } + + +// Serialization and value storage + + // Store a value on all serialization targets, or get the current value. + function serialize ( a ) { + + /*jshint validthis: true */ + + // Re-scope target for availability within .each; + var target = this.target; + + // Get the value for this handle + if ( a === undefined ) { + return this.element.data('value'); + } + + // Write the value to all serialization objects + // or store a new value on the handle + if ( a === true ) { + a = this.element.data('value'); + } else { + this.element.data('value', a); + } + + // Prevent a serialization call if the value wasn't initialized. + if ( a === undefined ) { + return; + } + + // If the provided element was a function, + // call it with the slider as scope. Otherwise, + // simply call the function on the object. + $.each( this.elements, function() { + if ( typeof this === 'function' ) { + this.call(target, a); + } else { + this[0][this[1]](a); + } + }); + } + + // Map serialization to [ element, method ]. Attach events where required. + function storeElement ( handle, item, number ) { + + // Add a change event to the supplied jQuery objects, + // which triggers the value-setting function on the target. + if ( isInstance( item ) ) { + + var elements = [], target = handle.data('target'); + + // Link the field to the other handle if the + // slider is inverted. + if ( handle.data('options').direction ) { + number = number ? 0 : 1; + } + + // Loop all items so the change event is properly bound, + // and the items can individually be added to the array. + item.each(function(){ + + // Bind the change event. + $(this).on('change' + namespace, setN( target, number )); + + // Store the element with the proper handler. + elements.push([ $(this), 'val' ]); + }); + + return elements; + } + + // Append a new input to the noUiSlider base. + // Prevent the change event from flowing upward. + if ( typeof item === 'string' ) { + + item = [ $('') + .appendTo(handle) + .addClass(clsList[3]) + .change(function ( e ) { + e.stopPropagation(); + }), 'val']; + } + + return [item]; + } + + // Access point and abstraction for serialization. + function store ( handle, i, serialization ) { + + var elements = []; + + // Loops all items in the provided serialization setting, + // add the proper events to them or create new input fields, + // and add them as data to the handle so they can be kept + // in sync with the slider value. + $.each( serialization['to'][i], function( index ){ + elements = elements.concat( + storeElement( handle, serialization['to'][i][index], i ) + ); + }); + + return { + element: handle + ,elements: elements + ,target: handle.data('target') + ,'val': serialize + }; + } + + +// Handle placement + + // Fire callback on unsuccessful handle movement. + function block ( base, stateless ) { + + var target = base.data('target'); + + if ( !target.hasClass(clsList[14]) ){ + + // The visual effects should not always be applied. + if ( !stateless ) { + target.addClass(clsList[15]); + setTimeout(function(){ + target.removeClass(clsList[15]); + }, 450); + } + + target.addClass(clsList[14]); + call( base.data('options').block, target ); + } + } + + // Change inline style and apply proper classes. + function placeHandle ( handle, to ) { + + var settings = handle.data('options'); + + to = digits(to, 7); + + // If the slider can move, remove the class + // indicating the block state. + handle.data('target').removeClass(clsList[14]); + + // Set handle to new location + handle.css( settings['style'], to + '%' ).data('pct', to); + + // Force proper handle stacking + if ( handle.is(':first-child') ) { + handle.toggleClass(clsList[13], to > 50 ); + } + + if ( settings['direction'] ) { + to = 100 - to; + } + + // Write the value to the serialization object. + handle.data('store').val( + format ( isPercentage( settings['range'], to ), settings ) + ); + } + + // Test suggested values and apply margin, step. + function setHandle ( handle, to ) { + + var base = handle.data('base'), settings = base.data('options'), + handles = base.data('handles'), lower = 0, upper = 100; + + // Catch invalid user input + if ( !isNumeric( to ) ){ + return false; + } + + // Handle the step option. + if ( settings['step'] ){ + to = closest( to, settings['step'] ); + } + + if ( handles.length > 1 ){ + if ( handle[0] !== handles[0][0] ) { + lower = digits(handles[0].data('pct')+settings['margin'],7); + } else { + upper = digits(handles[1].data('pct')-settings['margin'],7); + } + } + + // Limit position to boundaries. When the handles aren't set yet, + // they return -1 as a percentage value. + to = Math.min( Math.max( to, lower ), upper < 0 ? 100 : upper ); + + // Stop handling this call if the handle can't move past another. + // Return an array containing the hit limit, so the caller can + // provide feedback. ( block callback ). + if ( to === handle.data('pct') ) { + return [!lower ? false : lower, upper === 100 ? false : upper]; + } + + placeHandle ( handle, to ); + return true; + } + + // Handles movement by tapping + function jump ( base, handle, to, callbacks ) { + + // Flag the slider as it is now in a transitional state. + // Transition takes 300 ms, so re-enable the slider afterwards. + base.addClass(clsList[5]); + setTimeout(function(){ + base.removeClass(clsList[5]); + }, 300); + + // Move the handle to the new position. + setHandle( handle, to ); + + // Trigger the 'slide' and 'set' callbacks, + // pass the target so that it is 'this'. + call( callbacks, base.data('target') ); + + base.data('target').change(); + } + + +// Event handlers + + // Handle movement on document for handle and range drag. + function move ( event, Dt, Op ) { + + // Map event movement to a slider percentage. + var handles = Dt.handles, limits, + proposal = event[ Dt.point ] - Dt.start[ Dt.point ]; + + proposal = ( proposal * 100 ) / Dt.size; + + if ( handles.length === 1 ) { + + // Run handle placement, receive true for success or an + // array with potential limits. + limits = setHandle( handles[0], Dt.positions[0] + proposal ); + + if ( limits !== true ) { + + if ( $.inArray ( handles[0].data('pct'), limits ) >= 0 ){ + block ( Dt.base, !Op['margin'] ); + } + return; + } + + } else { + + // Dragging the range could be implemented by forcing the + // 'move' event on both handles, but this solution proved + // lagging on slower devices, resulting in range errors. The + // slightly ugly solution below is considerably faster, and + // it can't move the handle out of sync. Bypass the standard + // setting method, as other checks are needed. + + var l1, u1, l2, u2; + + // Round the proposal to the step setting. + if ( Op['step'] ) { + proposal = closest( proposal, Op['step'] ); + } + + // Determine the new position, store it twice. Once for + // limiting, once for checking whether placement should occur. + l1 = l2 = Dt.positions[0] + proposal; + u1 = u2 = Dt.positions[1] + proposal; + + // Round the values within a sensible range. + if ( l1 < 0 ) { + u1 += -1 * l1; + l1 = 0; + } else if ( u1 > 100 ) { + l1 -= ( u1 - 100 ); + u1 = 100; + } + + // Don't perform placement if no handles are to be changed. + // Check if the lowest value is set to zero. + if ( l2 < 0 && !l1 && !handles[0].data('pct') ) { + return; + } + // The highest value is limited to 100%. + if ( u1 === 100 && u2 > 100 && handles[1].data('pct') === 100 ){ + return; + } + + placeHandle ( handles[0], l1 ); + placeHandle ( handles[1], u1 ); + } + + // Trigger the 'slide' event, if the handle was moved. + call( Op['slide'], Dt.target ); + } + + // Unbind move events on document, call callbacks. + function end ( event, Dt, Op ) { + + // The handle is no longer active, so remove the class. + if ( Dt.handles.length === 1 ) { + Dt.handles[0].data('grab').removeClass(clsList[4]); + } + + // Remove cursor styles and text-selection events bound to the body. + if ( event.cursor ) { + body.css('cursor', '').off( namespace ); + } + + // Unbind the move and end events, which are added on 'start'. + doc.off( namespace ); + + // Trigger the change event. + Dt.target.removeClass( clsList[14] +' '+ clsList[20]).change(); + + // Trigger the 'end' callback. + call( Op['set'], Dt.target ); + } + + // Bind move events on document. + function start ( event, Dt, Op ) { + + // Mark the handle as 'active' so it can be styled. + if( Dt.handles.length === 1 ) { + Dt.handles[0].data('grab').addClass(clsList[4]); + } + + // A drag should never propagate up to the 'tap' event. + event.stopPropagation(); + + // Attach the move event. + attach ( actions.move, doc, move, { + start: event + ,base: Dt.base + ,target: Dt.target + ,handles: Dt.handles + ,positions: [ Dt.handles[0].data('pct') + ,Dt.handles[ Dt.handles.length - 1 ].data('pct') ] + ,point: Op['orientation'] ? 'pointY' : 'pointX' + ,size: Op['orientation'] ? Dt.base.height() : Dt.base.width() + }); + + // Unbind all movement when the drag ends. + attach ( actions.end, doc, end, { + target: Dt.target + ,handles: Dt.handles + }); + + // Text selection isn't an issue on touch devices, + // so adding additional callbacks isn't required. + if ( event.cursor ) { + + // Prevent the 'I' cursor and extend the range-drag cursor. + body.css('cursor', $(event.target).css('cursor')); + + // Mark the target with a dragging state. + if ( Dt.handles.length > 1 ) { + Dt.target.addClass(clsList[20]); + } + + // Prevent text selection when dragging the handles. + body.on('selectstart' + namespace, function( ){ + return false; + }); + } + } + + // Move closest handle to tapped location. + function tap ( event, Dt, Op ) { + + var base = Dt.base, handle, to, point, size; + + // The tap event shouldn't propagate up to trigger 'edge'. + event.stopPropagation(); + + // Determine the direction of the slider. + if ( Op['orientation'] ) { + point = event['pointY']; + size = base.height(); + } else { + point = event['pointX']; + size = base.width(); + } + + // Find the closest handle and calculate the tapped point. + handle = closestHandle( base.data('handles'), point, Op['style'] ); + to = (( point - base.offset()[ Op['style'] ] ) * 100 ) / size; + + // The set handle to the new position. + jump( base, handle, to, [ Op['slide'], Op['set'] ]); + } + + // Move handle to edges when target gets tapped. + function edge ( event, Dt, Op ) { + + var handles = Dt.base.data('handles'), to, i; + + i = Op['orientation'] ? event['pointY'] : event['pointX']; + i = i < Dt.base.offset()[Op['style']]; + + to = i ? 0 : 100; + i = i ? 0 : handles.length - 1; + + jump ( Dt.base, handles[i], to, [ Op['slide'], Op['set'] ]); + } + +// API + + // Validate and standardize input. + function test ( input, sliders ){ + + /* Every input option is tested and parsed. This'll prevent + endless validation in internal methods. These tests are + structured with an item for every option available. An + option can be marked as required by setting the 'r' flag. + The testing function is provided with three arguments: + - The provided value for the option; + - A reference to the options object; + - The name for the option; + + The testing function returns false when an error is detected, + or true when everything is OK. It can also modify the option + object, to make sure all values can be correctly looped elsewhere. */ + + function values ( a ) { + + if ( a.length !== 2 ){ + return false; + } + + // Convert the array to floats + a = [ parseFloat(a[0]), parseFloat(a[1]) ]; + + // Test if all values are numerical + if( !isNumeric(a[0]) || !isNumeric(a[1]) ){ + return false; + } + + // The lowest value must really be the lowest value. + if( a[1] < a[0] ){ + return false; + } + + return a; + } + + var serialization = { + resolution: function(q,o){ + + // Parse the syntactic sugar that is the serialization + // resolution option to a usable integer. + // Checking for a string '1', since the resolution needs + // to be cast to a string to split in on the period. + switch( q ){ + case 1: + case 0.1: + case 0.01: + case 0.001: + case 0.0001: + case 0.00001: + q = q.toString().split('.'); + o['decimals'] = q[0] === '1' ? 0 : q[1].length; + break; + case undefined: + o['decimals'] = 2; + break; + default: + return false; + } + + return true; + } + ,mark: function(q,o,w){ + + if ( !q ) { + o[w]['mark'] = '.'; + return true; + } + + switch( q ){ + case '.': + case ',': + return true; + default: + return false; + } + } + ,to: function(q,o,w){ + + // Checks whether a variable is a candidate to be a + // valid serialization target. + function ser(r){ + return isInstance ( r ) || + typeof r === 'string' || + typeof r === 'function' || + r === false || + ( isInstance ( r[0] ) && + typeof r[0][r[1]] === 'function' ); + } + + // Flatten the serialization array into a reliable + // set of elements, which can be tested and looped. + function filter ( value ) { + + var items = [[],[]]; + + // If a single value is provided it can be pushed + // immediately. + if ( ser(value) ) { + items[0].push(value); + } else { + + // Otherwise, determine whether this is an + // array of single elements or sets. + $.each(value, function(i, val) { + + // Don't handle an overflow of elements. + if( i > 1 ){ + return; + } + + // Decide if this is a group or not + if( ser(val) ){ + items[i].push(val); + } else { + items[i] = items[i].concat(val); + } + }); + } + + return items; + } + + if ( !q ) { + o[w]['to'] = [[],[]]; + } else { + + var i, j; + + // Flatten the serialization array + q = filter ( q ); + + // Reverse the API for RTL sliders. + if ( o['direction'] && q[1].length ) { + q.reverse(); + } + + // Test all elements in the flattened array. + for ( i = 0; i < o['handles']; i++ ) { + for ( j = 0; j < q[i].length; j++ ) { + + // Return false on invalid input + if( !ser(q[i][j]) ){ + return false; + } + + // Remove 'false' elements, since those + // won't be handled anyway. + if( !q[i][j] ){ + q[i].splice(j, 1); + } + } + } + + // Write the new values back + o[w]['to'] = q; + } + + return true; + } + }, tests = { + /* Handles. + * Has default, can be 1 or 2. + */ + 'handles': { + 'r': true + ,'t': function(q){ + q = parseInt(q, 10); + return ( q === 1 || q === 2 ); + } + } + /* Range. + * Must be an array of two numerical floats, + * which can't be identical. + */ + ,'range': { + 'r': true + ,'t': function(q,o,w){ + + o[w] = values(q); + + // The values can't be identical. + return o[w] && o[w][0] !== o[w][1]; + } + } + /* Start. + * Must be an array of two numerical floats when handles = 2; + * Uses 'range' test. + * When handles = 1, a single float is also allowed. + */ + ,'start': { + 'r': true + ,'t': function(q,o,w){ + if( o['handles'] === 1 ){ + if( $.isArray(q) ){ + q = q[0]; + } + q = parseFloat(q); + o.start = [q]; + return isNumeric(q); + } + + o[w] = values(q); + return !!o[w]; + } + } + /* Connect. + * Must be true or false when handles = 2; + * Can use 'lower' and 'upper' when handles = 1. + */ + ,'connect': { + 'r': true + ,'t': function(q,o,w){ + + if ( q === 'lower' ) { + o[w] = 1; + } else if ( q === 'upper' ) { + o[w] = 2; + } else if ( q === true ) { + o[w] = 3; + } else if ( q === false ) { + o[w] = 0; + } else { + return false; + } + + return true; + } + } + /* Connect. + * Will default to horizontal, not required. + */ + ,'orientation': { + 't': function(q,o,w){ + switch (q){ + case 'horizontal': + o[w] = 0; + break; + case 'vertical': + o[w] = 1; + break; + default: return false; + } + return true; + } + } + /* Margin. + * Must be a float, has a default value. + */ + ,'margin': { + 'r': true + ,'t': function(q,o,w){ + q = parseFloat(q); + o[w] = fromPercentage(o['range'], q); + return isNumeric(q); + } + } + /* Direction. + * Required, can be 'ltr' or 'rtl'. + */ + ,'direction': { + 'r': true + ,'t': function(q,o,w){ + + switch ( q ) { + case 'ltr': o[w] = 0; + break; + case 'rtl': o[w] = 1; + // Invert connection for RTL sliders; + o['connect'] = [0,2,1,3][o['connect']]; + break; + default: + return false; + } + + return true; + } + } + /* Behaviour. + * Required, defines responses to tapping and + * dragging elements. + */ + ,'behaviour': { + 'r': true + ,'t': function(q,o,w){ + + o[w] = { + 'tap': q !== (q = q.replace('tap', '')) + ,'extend': q !== (q = q.replace('extend', '')) + ,'drag': q !== (q = q.replace('drag', '')) + ,'fixed': q !== (q = q.replace('fixed', '')) + }; + + return !q.replace('none','').replace(/\-/g,''); + } + } + /* Serialization. + * Required, but has default. Must be an array + * when using two handles, can be a single value when using + * one handle. 'mark' can be period (.) or comma (,). + */ + ,'serialization': { + 'r': true + ,'t': function(q,o,w){ + + return serialization.to( q['to'], o, w ) && + serialization.resolution( q['resolution'], o ) && + serialization.mark( q['mark'], o, w ); + } + } + /* Slide. + * Not required. Must be a function. + */ + ,'slide': { + 't': function(q){ + return $.isFunction(q); + } + } + /* Set. + * Not required. Must be a function. + * Tested using the 'slide' test. + */ + ,'set': { + 't': function(q){ + return $.isFunction(q); + } + } + /* Block. + * Not required. Must be a function. + * Tested using the 'slide' test. + */ + ,'block': { + 't': function(q){ + return $.isFunction(q); + } + } + /* Step. + * Not required. + */ + ,'step': { + 't': function(q,o,w){ + q = parseFloat(q); + o[w] = fromPercentage ( o['range'], q ); + return isNumeric(q); + } + } + }; + + $.each( tests, function( name, test ){ + + /*jslint devel: true */ + + var value = input[name], isSet = value !== undefined; + + // If the value is required but not set, fail. + if( ( test['r'] && !isSet ) || + // If the test returns false, fail. + ( isSet && !test['t']( value, input, name ) ) ){ + + // For debugging purposes it might be very useful to know + // what option caused the trouble. Since throwing an error + // will prevent further script execution, log the error + // first. Test for console, as it might not be available. + if( console && console.log && console.group ){ + console.group( 'Invalid noUiSlider initialisation:' ); + console.log( 'Option:\t', name ); + console.log( 'Value:\t', value ); + console.log( 'Slider(s):\t', sliders ); + console.groupEnd(); + } + + throw new RangeError('noUiSlider'); + } + }); + } + + // Parse options, add classes, attach events, create HTML. + function create ( options ) { + + /*jshint validthis: true */ + + // Store the original set of options on all targets, + // so they can be re-used and re-tested later. + // Make sure to break the relation with the options, + // which will be changed by the 'test' function. + this.data('options', $.extend(true, {}, options)); + + // Set defaults where applicable; + options = $.extend({ + 'handles': 2 + ,'margin': 0 + ,'connect': false + ,'direction': 'ltr' + ,'behaviour': 'tap' + ,'orientation': 'horizontal' + }, options); + + // Make sure the test for serialization runs. + options['serialization'] = options['serialization'] || {}; + + // Run all options through a testing mechanism to ensure correct + // input. The test function will throw errors, so there is + // no need to capture the result of this call. It should be noted + // that options might get modified to be handled properly. E.g. + // wrapping integers in arrays. + test( options, this ); + + // Pre-define the styles. + options['style'] = options['orientation'] ? 'top' : 'left'; + + return this.each(function(){ + + var target = $(this), i, dragable, handles = [], handle, + base = $('
    ').appendTo(target); + + // Throw an error if the slider was already initialized. + if ( target.data('base') ) { + throw new Error('Slider was already initialized.'); + } + + // Apply classes and data to the target. + target.data('base', base).addClass([ + clsList[6] + ,clsList[16 + options['direction']] + ,clsList[10 + options['orientation']] ].join(' ')); + + for (i = 0; i < options['handles']; i++ ) { + + handle = $('
    ').appendTo(base); + + // Add all default and option-specific classes to the + // origins and handles. + handle.addClass( clsList[1] ); + + handle.children().addClass([ + clsList[2] + ,clsList[2] + clsList[ 7 + options['direction'] + + ( options['direction'] ? -1 * i : i ) ]].join(' ') ); + + // Make sure every handle has access to all variables. + handle.data({ + 'base': base + ,'target': target + ,'options': options + ,'grab': handle.children() + ,'pct': -1 + }).attr('data-style', options['style']); + + // Every handle has a storage point, which takes care + // of triggering the proper serialization callbacks. + handle.data({ + 'store': store(handle, i, options['serialization']) + }); + + // Store handles on the base + handles.push(handle); + } + + // Apply the required connection classes to the elements + // that need them. Some classes are made up for several + // segments listed in the class list, to allow easy + // renaming and provide a minor compression benefit. + switch ( options['connect'] ) { + case 1: target.addClass( clsList[9] ); + handles[0].addClass( clsList[12] ); + break; + case 3: handles[1].addClass( clsList[12] ); + /* falls through */ + case 2: handles[0].addClass( clsList[9] ); + /* falls through */ + case 0: target.addClass(clsList[12]); + break; + } + + // Merge base classes with default, + // and store relevant data on the base element. + base.addClass( clsList[0] ).data({ + 'target': target + ,'options': options + ,'handles': handles + }); + + // Use the public value method to set the start values. + target.val( options['start'] ); + + // Attach the standard drag event to the handles. + if ( !options['behaviour']['fixed'] ) { + for ( i = 0; i < handles.length; i++ ) { + + // These events are only bound to the visual handle + // element, not the 'real' origin element. + attach ( actions.start, handles[i].children(), start, { + base: base + ,target: target + ,handles: [ handles[i] ] + }); + } + } + + // Attach the tap event to the slider base. + if ( options['behaviour']['tap'] ) { + attach ( actions.start, base, tap, { + base: base + ,target: target + }); + } + + // Extend tapping behaviour to target + if ( options['behaviour']['extend'] ) { + + target.addClass( clsList[19] ); + + if ( options['behaviour']['tap'] ) { + attach ( actions.start, target, edge, { + base: base + ,target: target + }); + } + } + + // Make the range dragable. + if ( options['behaviour']['drag'] ){ + + dragable = base.find('.'+clsList[9]).addClass(clsList[18]); + + // When the range is fixed, the entire range can + // be dragged by the handles. The handle in the first + // origin will propagate the start event upward, + // but it needs to be bound manually on the other. + if ( options['behaviour']['fixed'] ) { + dragable = dragable + .add( base.children().not(dragable).data('grab') ); + } + + attach ( actions.start, dragable, start, { + base: base + ,target: target + ,handles: handles + }); + } + }); + } + + // Return value for the slider, relative to 'range'. + function getValue ( ) { + + /*jshint validthis: true */ + + var base = $(this).data('base'), answer = []; + + // Loop the handles, and get the value from the input + // for every handle on its' own. + $.each( base.data('handles'), function(){ + answer.push( $(this).data('store').val() ); + }); + + // If the slider has just one handle, return a single value. + // Otherwise, return an array, which is in reverse order + // if the slider is used RTL. + if ( answer.length === 1 ) { + return answer[0]; + } + + if ( base.data('options').direction ) { + return answer.reverse(); + } + + return answer; + } + + // Set value for the slider, relative to 'range'. + function setValue ( args, set ) { + + /*jshint validthis: true */ + + // If the value is to be set to a number, which is valid + // when using a one-handle slider, wrap it in an array. + if( !$.isArray(args) ){ + args = [args]; + } + + // Setting is handled properly for each slider in the data set. + return this.each(function(){ + + var b = $(this).data('base'), to, i, + handles = Array.prototype.slice.call(b.data('handles'),0), + settings = b.data('options'); + + // If there are multiple handles to be set run the setting + // mechanism twice for the first handle, to make sure it + // can be bounced of the second one properly. + if ( handles.length > 1) { + handles[2] = handles[0]; + } + + // The RTL settings is implemented by reversing the front-end, + // internal mechanisms are the same. + if ( settings['direction'] ) { + args.reverse(); + } + + for ( i = 0; i < handles.length; i++ ){ + + // Calculate a new position for the handle. + to = args[ i%2 ]; + + // The set request might want to ignore this handle. + // Test for 'undefined' too, as a two-handle slider + // can still be set with an integer. + if( to === null || to === undefined ) { + continue; + } + + // Add support for the comma (,) as a decimal symbol. + // Replace it by a period so it is handled properly by + // parseFloat. Omitting this would result in a removal + // of decimals. This way, the developer can also + // input a comma separated string. + if( $.type(to) === 'string' ) { + to = to.replace(',', '.'); + } + + // Calculate the new handle position + to = toPercentage( settings['range'], parseFloat( to ) ); + + // Invert the value if this is an right-to-left slider. + if ( settings['direction'] ) { + to = 100 - to; + } + + // If the value of the input doesn't match the slider, + // reset it. Sometimes the input is changed to a value the + // slider has rejected. This can occur when using 'select' + // or 'input[type="number"]' elements. In this case, set + // the value back to the input. + if ( setHandle( handles[i], to ) !== true ){ + handles[i].data('store').val( true ); + } + + // Optionally trigger the 'set' event. + if( set === true ) { + call( settings['set'], $(this) ); + } + } + }); + } + + // Unbind all attached events, remove classed and HTML. + function destroy ( target ) { + + // Start the list of elements to be unbound with the target. + var elements = [[target,'']]; + + // Get the fields bound to both handles. + $.each(target.data('base').data('handles'), function(){ + elements = elements.concat( $(this).data('store').elements ); + }); + + // Remove all events added by noUiSlider. + $.each(elements, function(){ + if( this.length > 1 ){ + this[0].off( namespace ); + } + }); + + // Remove all classes from the target. + target.removeClass(clsList.join(' ')); + + // Empty the target and remove all data. + target.empty().removeData('base options'); + } + + // Merge options with current initialization, destroy slider + // and reinitialize. + function build ( options ) { + + /*jshint validthis: true */ + + return this.each(function(){ + + // When uninitialised, jQuery will return '', + // Zepto returns undefined. Both are falsy. + var values = $(this).val() || false, + current = $(this).data('options'), + // Extend the current setup with the new options. + setup = $.extend( {}, current, options ); + + // If there was a slider initialised, remove it first. + if ( values !== false ) { + destroy( $(this) ); + } + + // Make the destroy method publicly accessible. + if( !options ) { + return; + } + + // Create a new slider + $(this)['noUiSlider']( setup ); + + // Set the slider values back. If the start options changed, + // it gets precedence. + if ( values !== false && setup.start === current.start ) { + $(this).val( values ); + } + }); + } + + // Overwrite the native jQuery value function + // with a simple handler. noUiSlider will use the internal + // value method, anything else will use the standard method. + $.fn.val = function(){ + + // If the function is called without arguments, + // act as a 'getter'. Call the getValue function + // in the same scope as this call. + if ( this.hasClass( clsList[6] ) ){ + return arguments.length ? + setValue.apply( this, arguments ) : + getValue.apply( this ); + } + + // If this isn't noUiSlider, continue with jQuery's + // original method. + return $VAL.apply( this, arguments ); + }; + + return ( rebuild ? build : create ).call( this, options ); + }; + +}( window['jQuery'] || window['Zepto'] )); diff --git a/redux/ReduxCore/inc/fields/slider/vendor/nouislider/redux.jquery.nouislider.min.js b/redux/ReduxCore/inc/fields/slider/vendor/nouislider/redux.jquery.nouislider.min.js new file mode 100644 index 0000000..73dfa3c --- /dev/null +++ b/redux/ReduxCore/inc/fields/slider/vendor/nouislider/redux.jquery.nouislider.min.js @@ -0,0 +1,20 @@ +(function(f){if(f.zepto&&!f.fn.removeData)throw new ReferenceError("Zepto is loaded without the data module.");f.fn.noUiSlider=function(C,D){function s(a,b){return 100*b/(a[1]-a[0])}function E(a,b){return b*(a[1]-a[0])/100+a[0]}function t(a){return a instanceof f||f.zepto&&f.zepto.isZ(a)}function n(a){return!isNaN(parseFloat(a))&&isFinite(a)}function r(a,b){f.isArray(a)||(a=[a]);f.each(a,function(){"function"===typeof this&&this.call(b)})}function F(a,b){return function(){var c=[null,null];c[b]=f(this).val(); +a.val(c,!0)}}function G(a,b){a=a.toFixed(b.decimals);0===parseFloat(a)&&(a=a.replace("-0","0"));return a.replace(".",b.serialization.mark)}function u(a){return parseFloat(a.toFixed(7))}function p(a,b,c,d){var e=d.target;a=a.replace(/\s/g,h+" ")+h;b.on(a,function(a){var b=e.attr("disabled");if(e.hasClass("noUi-state-tap")||void 0!==b&&null!==b)return!1;var g;a.preventDefault();var b=0===a.type.indexOf("touch"),h=0===a.type.indexOf("mouse"),l=0===a.type.indexOf("pointer"),v,H=a;0===a.type.indexOf("MSPointer")&& +(l=!0);a.originalEvent&&(a=a.originalEvent);b&&(g=a.changedTouches[0].pageX,v=a.changedTouches[0].pageY);if(h||l)l||void 0!==window.pageXOffset||(window.pageXOffset=document.documentElement.scrollLeft,window.pageYOffset=document.documentElement.scrollTop),g=a.clientX+window.pageXOffset,v=a.clientY+window.pageYOffset;g=f.extend(H,{pointX:g,pointY:v,cursor:h});c(g,d,e.data("base").data("options"))})}function I(a){var b=this.target;if(void 0===a)return this.element.data("value");!0===a?a=this.element.data("value"): +this.element.data("value",a);void 0!==a&&f.each(this.elements,function(){if("function"===typeof this)this.call(b,a);else this[0][this[1]](a)})}function J(a,b,c){if(t(b)){var d=[],e=a.data("target");a.data("options").direction&&(c=c?0:1);b.each(function(){f(this).on("change"+h,F(e,c));d.push([f(this),"val"])});return d}"string"===typeof b&&(b=[f('').appendTo(a).addClass(g[3]).change(function(a){a.stopPropagation()}),"val"]);return[b]}function K(a,b,c){var d=[];f.each(c.to[b], +function(e){d=d.concat(J(a,c.to[b][e],b))});return{element:a,elements:d,target:a.data("target"),val:I}}function L(a,b){var c=a.data("target");c.hasClass(g[14])||(b||(c.addClass(g[15]),setTimeout(function(){c.removeClass(g[15])},450)),c.addClass(g[14]),r(a.data("options").h,c))}function w(a,b){var c=a.data("options");b=u(b);a.data("target").removeClass(g[14]);a.css(c.style,b+"%").data("pct",b);a.is(":first-child")&&a.toggleClass(g[13],50k?100:k);if(b===a.data("pct"))return[e?e:!1,100===k?!1:k];w(a,b);return!0}function A(a,b,c,d){a.addClass(g[5]);setTimeout(function(){a.removeClass(g[5])},300);x(b,c);r(d,a.data("target"));a.data("target").change()}function M(a,b,c){var d= +b.a,e=a[b.d]-b.start[b.d],e=100*e/b.size;if(1===d.length){if(a=x(d[0],b.c[0]+e),!0!==a){0<=f.inArray(d[0].data("pct"),a)&&L(b.b,!c.margin);return}}else{var k,m;c.step&&(a=c.step,e=Math.round(e/a)*a);a=k=b.c[0]+e;e=m=b.c[1]+e;0>a?(e+=-1*a,a=0):100k&&!a&&!d[0].data("pct")||100===e&&100").appendTo(b);if(b.data("base"))throw Error("Slider was already initialized.");b.data("base",k).addClass([g[6],g[16+a.direction],g[10+a.orientation]].join(" "));for(c=0;c
    ").appendTo(k),e.addClass(g[1]),e.children().addClass([g[2], +g[2]+g[7+a.direction+(a.direction?-1*c:c)]].join(" ")),e.data({base:k,target:b,options:a,grab:e.children(),pct:-1}).attr("data-style",a.style),e.data({store:K(e,c,a.serialization)}),d.push(e);switch(a.connect){case 1:b.addClass(g[9]);d[0].addClass(g[12]);break;case 3:d[1].addClass(g[12]);case 2:d[0].addClass(g[9]);case 0:b.addClass(g[12])}k.addClass(g[0]).data({target:b,options:a,handles:d});b.val(a.start);if(!a.behaviour.fixed)for(c=0;ch[0]?d+Math.abs(h[0]):d-h[0]);g.direction&&(d=100-d);!0!==x(e[c],d)&&e[c].data("store").val(!0);!0===b&&r(g.set,f(this))}})}function U(a){var b=[[a,""]];f.each(a.data("base").data("handles"), +function(){b=b.concat(f(this).data("store").elements)});f.each(b,function(){1
    '; + + require_once 'views/about.php'; + + } + + /** + * Render Changelog Screen + * + * @access public + * @since 2.0.3 + * @return void + */ + public function changelog_screen() { + // Stupid hack for Wordpress alerts and warnings + echo '

    '; + + require_once 'views/changelog.php'; + + } + + /** + * Render Changelog Screen + * + * @access public + * @since 2.0.3 + * @return void + */ + public function redux_extensions() { + // Stupid hack for Wordpress alerts and warnings + echo '

    '; + + require_once 'views/extensions.php'; + + } + + + /** + * Render Get Support Screen + * + * @access public + * @since 1.9 + * @return void + */ + public function get_support() { + // Stupid hack for Wordpress alerts and warnings + echo '

    '; + + require_once 'views/support.php'; + + } + + /** + * Render Credits Screen + * + * @access public + * @since 1.4 + * @return void + */ + public function credits_screen() { + // Stupid hack for Wordpress alerts and warnings + echo '

    '; + + require_once 'views/credits.php'; + + } + + /** + * Render Status Report Screen + * + * @access public + * @since 1.4 + * @return void + */ + public function status_screen() { + // Stupid hack for Wordpress alerts and warnings + echo '

    '; + + require_once 'views/status_report.php'; + + } + + /** + * Parse the Redux readme.txt file + * + * @since 2.0.3 + * @return string $readme HTML formatted readme file + */ + public function parse_readme() { + if ( file_exists( ReduxFramework::$_dir . 'inc/fields/raw/parsedown.php' ) ) { + require_once ReduxFramework::$_dir . 'inc/fields/raw/parsedown.php'; + $Parsedown = new Parsedown(); + $data = @wp_remote_get( ReduxFramework::$_url . '../CHANGELOG.md' ); + if ( isset( $data ) && ! empty( $data ) ) { + $data = @wp_remote_retrieve_body( $data ); + return $Parsedown->text( trim( str_replace( '# Redux Framework Changelog', '', $data ) ) ); + } + } + + return ''; + + } + + public function actions() { + ?> +

    + Docs + Review Us + Donate + + +

    + get_contributors(); + + if ( empty ( $contributors ) ) { + return ''; + } + + $contributor_list = ''; + + return $contributor_list; + } + + /** + * Retreive list of contributors from GitHub. + * + * @access public + * @since 1.4 + * @return array $contributors List of contributors + */ + public function get_contributors() { + $contributors = get_transient( 'redux_contributors' ); + + if ( false !== $contributors ) { + return $contributors; + } + + $response = wp_remote_get( 'https://api.github.com/repos/ReduxFramework/redux-framework/contributors', array( 'sslverify' => false ) ); + + if ( is_wp_error( $response ) || 200 != wp_remote_retrieve_response_code( $response ) ) { + return array(); + } + + $contributors = json_decode( wp_remote_retrieve_body( $response ) ); + + if ( ! is_array( $contributors ) ) { + return array(); + } + + set_transient( 'redux_contributors', $contributors, 3600 ); + + return $contributors; + } + } + + new Redux_Welcome(); + diff --git a/redux/ReduxCore/languages/README.txt b/redux/ReduxCore/languages/README.txt new file mode 100644 index 0000000..57b2f19 --- /dev/null +++ b/redux/ReduxCore/languages/README.txt @@ -0,0 +1 @@ +Please visit: https://github.com/ReduxFramework/ReduxFramework/wiki/Translate for details on how you can help. diff --git a/redux/ReduxCore/languages/redux-framework-ar.mo b/redux/ReduxCore/languages/redux-framework-ar.mo new file mode 100644 index 0000000000000000000000000000000000000000..e682d0a5f70d10aedf4af0623fb56c44633ad2be GIT binary patch literal 17301 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 literal 0 HcmV?d00001 diff --git a/redux/ReduxCore/languages/redux-framework-da_DK.mo b/redux/ReduxCore/languages/redux-framework-da_DK.mo new file mode 100644 index 0000000000000000000000000000000000000000..d78efa9c9913894555fc9a38c772f367b56bcc3c GIT binary patch literal 5001 zcmb`JON<;x8GtLnd9V%+I3y0wlpQ;yQ(zuKud3tN;36T~+Vz-SwQ}s!_g3dE-W_RpZ`^Cpz<-uCTxefvGQ zi~iqvzVG}02u1D(Q0)9C6u;bpa9pZ(L(y*!IzNH37wM3%>s{6uqDDj3KvjJVfqypy=~mDC3@kGVcpe=6eZ>yr1~~*P+b!ODN;t zf@1f(P~`l<^UqN1`vA&3|MKl!Br{dD7mA#Fq0Dy#ihoKFlhrsB`RAb6brDLu43z)> zTfYB$P~!6<6nU>e(f6lN=KVPoIalEb{1ue>BuFy;CMbIE_PpKm4j9nC4~qO5&p9aa zs!-;6!nYg#{gY7iT!)gE&q57fg`&@|p~(BaZ~qBS(EhvcAH_KF`$;HrCZXi#; z9?B_-*e(Ca5z1+b#7nNjeH70*U$4MJzFvj1l&@0GP`*YHU&?hKjRwkmAhe$vY#S8mw3rq@hAm% z7gverJY|$JS@c}{I7(CUNphDE7S|&@rzx5uxmBiYUK4c}uZGU(Y17H{`7APOTi2>d zvTnzuPA??AW}MpoOU6WzK13@?r0{Vg>?O|XMPpr-n`pn9=((&Dy11@GrpQv=HF+b; zJ0_~=1BdJZH5u01%{=R+k)CiathZ#I?Y#?`jpfVjeT$}RLPli{>1wJKrcG3As;MNi zMolqu?5vtLGUpDnuIaqqFmD3iCdL_H>v`NQ=ASmjaFf&PYlWxuOd75vCQ{R}m5Q(v zTdQU|VVvkNigF{ZVw9R$?}ljvoJlQaSv8yC*x9fXCma2GHGazUYYpFP(zs+u2Sx%bl7t4X5VAj#2YwO+o=Inme?d&opk1Lv698?ojYTqoFRO>Ox_URSTiD zYgrztg~Wu`=u2Vj)S`)c>w24di)6&Ap}(8)u*PW#cfVFeu7qZ>(5xD+8r=_uRaKOT z)27vZO(hpLyJVoW#m=e=U60{z1J6}^-NLNuhIOW+&!&w`)lAsYg;uK8GP;+x(`+pr zq*E)jdc~Mj=cb#4brb2e*tPnp#c&)`iye|{nWl8r(&C(2x>m%2Ln8<60d2dc9yekn zke~X{=s~NNx=9vBYRTeFd8Fd#izb)24Jb~(826ojF(y@YxA;eNE9;nU*fi>rN$S+K z%lc;M*&I1IzWp(;MC_$j=mc!G;_KoZnwQgBd*8t zkMf5}`blodoMF9A`f1mStrmSss-DDkk)xt4<=4cPmUG?8@G$>PZ@n?lu7uWuHYzXIIFG;A|9lFI9G$JS2IPyWqTS#!)cYYucceRkSEz(V$82 zdMh&Xa1ruNSM6+KV9(g0g$uQS-@ULRm}UX1=+W}XgF$&LD39v$SY_6=!-fOB-=Vvu3sQ!_JQo zN1u+a#F?mFTFDOgXr&%-pfEq!>}q@6HtAJK=szt`5*N`;iTVb%+yyL}JZ z;qFf74kupda1<_2pBp|hbpGu5nJqt$l*&U>tR!SWP}}I@2xrzEp$g-4T-RG+&aZoF zsWuy&*cvAmG)x}Mr1dN!BP#mDO6)fEujpc~Ay)l7OoCa~ZClYP;iqX&jgCvMQ$2M! z)%#EBkt5?nmxD)5YVy9{nt2ax*1ADFaw65`(pc#v0~Rt_o`Xr2oNnk^6MXM&v z>#YUM4$2t5?M2qh>xRWs!i1egoGz0<>n>sgjnlxdjTOCtmP%h}Sy)l|)INVMiRS|+k9xmi_baYH<7WsAQ0azApYea+N^ZNEsLYu_|Yhm@+izWLrc#Or?^1L7UW0M=36YnwFU zyttz;r^K>`WrRz}7)vr;uxp0(D9L>rMlcc~5e(k5oeR zktYHxVI%MQRyO^qAXqai9Bm@LN!nS5v#u6T7kk~dbHT^H6~Sj#!$^XkZjjvkD{@}X zR}8t7%jsachhuUbx7!>$B)fCeI9?v7P52FmB@SmzQVJ0=f9Nd2%i%K^DuQY;?~ J{=c6P{tJbF!vFvP literal 0 HcmV?d00001 diff --git a/redux/ReduxCore/languages/redux-framework-de_DE.mo b/redux/ReduxCore/languages/redux-framework-de_DE.mo new file mode 100644 index 0000000000000000000000000000000000000000..939e617e69efc18a1496ac72325b42c5e417e47c GIT binary patch literal 14510 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 Sp3V(@snF+7AF7=*-~RxYzLBW_ literal 0 HcmV?d00001 diff --git a/redux/ReduxCore/languages/redux-framework-el.mo b/redux/ReduxCore/languages/redux-framework-el.mo new file mode 100644 index 0000000000000000000000000000000000000000..96879d12eaff4c590188f61554e380d194007e0a GIT binary patch literal 18378 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 Cf60je literal 0 HcmV?d00001 diff --git a/redux/ReduxCore/languages/redux-framework-fi.mo b/redux/ReduxCore/languages/redux-framework-fi.mo new file mode 100644 index 0000000000000000000000000000000000000000..d04d4cc79c344fee2f69fcc60ecb4bd7695d2ac1 GIT binary patch literal 4727 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 literal 0 HcmV?d00001 diff --git a/redux/ReduxCore/languages/redux-framework-fr_FR.mo b/redux/ReduxCore/languages/redux-framework-fr_FR.mo new file mode 100644 index 0000000000000000000000000000000000000000..9c960e1c4ee16d76b99128e3dce8dbf9dccfc475 GIT binary patch literal 39336 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 V<;#%Quul$3%7H6+bf!vaMJ$23jyzyLYu0@9y2) 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 literal 0 HcmV?d00001 diff --git a/redux/ReduxCore/languages/redux-framework-hr.mo b/redux/ReduxCore/languages/redux-framework-hr.mo new file mode 100644 index 0000000000000000000000000000000000000000..55ce5ff49865741aa65032cda7bc4d45c5f18612 GIT binary patch literal 9230 zcmcJUe~ewnRmUeue*~96n*<0Xw6kgLuF1Z)yY{+u*WNg`ckQgb_HMnqw(B-==e;}o z-hJ=hJCFP0t#_#sBqCXY1}SX;RTQa?%pZaB7a))jp$IPsB}fQ~6d{#AC`CXc!2JVJ z)F3`*?tQ!Kjhk8!t~~pFGk509nRCA9%*^%Q-T#hXQanA%Ba|=Qqm(o}@^1d{^nO68 z`@x?E-vvGg-V6Q$_+Ib}AVbuzgFghm1Rel?ADjmN6`TO~?^5bVz&7{*_zd_y@N=NZ zzYhK&_{A;idegk|bc>jBp5)~f;9|Uz(KLE=3DUg3^nm;0E0hIoi zDr|tFPY0C#KU?8dP}cE_Apg{_@rNnZOI7`MD*S5I{wgSXe+?A9{sH`9@LxcY`(NOX zf_KsBRq!ED`h63W_um4g|F=Pz_ih#|_4k2KfkWU$@LBL3;NO7K@9S0lb#RFKO;GIl z054^oyFuw!E8rJehP}bHBjb#7Q{sAYSsRE@Wa%<2x{<;tMIOE{ycaZ{7bL_K7w)Pz-Phz;HzK_6!MP(blwG z{dn1L9+dG0l=byN@%zt#BJX*SrK%Syd=Z?Y{@b9~@n(hJ0VQwTg_2_T_k;3&Hz@Y6 zfx?r0pxAGwdcOcNR9ytcKWT+O0}Ah+197SP94O;ntlEDI6uW$!h@j9KLefz7eTS-Z-652KS1gK1}JiN z{bVWsy%p{QrQZ@Lay|(PpF>dW@&YL9`Xcx!_!1~~e-)H*uYoe|>!A4aTcFJI1}Nk1 zd4CyC4}kLiQBeFi0ZxFk;0M8HK#}_*DE9aYDDwXZly(0pD0Y1XlsI^;YJVLRIXA(d z0{48N9QSch?0XRuetZ%Xzg@2C?W!JCSXB57D0*M5>c0Yt|Go@DN%a*_?6Lty;9r2V z;G{0wp93X-d=`}Xeib|bUI(85|F*)1aq>y(p8}iUbua+$#mM`?7~Bh91NVWifHL2I zgI%zT(S(m*197do3El;6f1u9hBf7{VYdA+4rOZE?3`HLCpXe-n6m35xJ^jxtOU+sGq6 z{h0qnjsOV{{}}!Xp9YU`qk>19dDu6()zdb1`iu)~*#rau_0<0uoe9ERpEOZq(=~N8iln$zou{VR z4U?8Snp(Z)3Y`_HJ)-qFo7p_)gN`f=(I6crI&X)W z&Mca{5Mkx@0A6 z>6I|Dbp~TRbv(6rAXC$JbHJ9vrtOL;qMVnJ%`K2M)3E2YpSFEe=-E_FhnZ=h9T0FDoUa*Z744J7XZP;q(K-AM=+)G{G>iHto3nsA<%@x6#Cc!?vwb8(>CXq9N z&@P2oX^IE6^QuA)&%Ug#Pg~oo2xC?tVdiNnQVKW;scA8~0UdB@)^|!UMzB)tp_)`IF~ZVXq$ohWyR)v_LW)G&xM70;83DPmPOnxGnG}q1ARtDTTv+~EEEAGC z=Xtzn;BT1%GPUS67m>17swF!s&)8sSt4YRfueU``)2EVPq)f3TNi%tYFJlI`@lI(3 zNsp&Y-;^P!kGmvuIIyzNVz_SAVh%A(8u$c;Zn?<|0ZCnpRfsOGWhkm=lNG0yn8Wgy zoVyZQ!XqY$LkYr$JRSywBUzx#>Gikj7vK*%ggFx}IZf%QrPL%@&q(Ylq4#nkS#G%} zOjXMnVIqGLVaj=%W|ELA)VnivJ|v=aFDhCryX|7zGc7twD>S)q^xWCmvnPkN*WGVK z5_qdAZ~bm$uY{T3q{?upwxtmST0?Rm2Q@9;Uk&rNZkj?8>X5o%(ga4;N~wcDDmmxp zkgO`KlJO+oXw3_7L~Uo&F^CC+ysa+4#?5%3B714QURR%BD-Fs7?Fo<-D=T3$lnjSR z$=~RbmHS82X8aQO$m+|n+gKy-h;K~n^S#g}sB3+}XFA!kqp<6DqD?~4Z}o^*;roiY zBPpIQVinXU{3RVexpZc3b0_z#8u1?S?YU`Xgdp^8SeuY#CEQ2^VwBs+%6hgL8Uns; zIE^qvc00+p>Gf7q$o>-s!tthyW63>`)aR23&PcLKirA)MlZngI4CyK@-B5C3o4#AZ zb_}|sF=dcRw!f1Z%HB3MVRYO6JGaWLJfRWJsqICkIpDkO64k;6nYl;0xA|?kQ-z9W z&D$`;n`yNsl!xKR#bfR{>kv@)qq*ag`YD?C{llpk-=*4CfBz*N8weN9P$AQfu@$1PSg%=^%J#MY+9R1nl2#!P3nV z?SxC?Y*Hs=e5%>h{zH=d`8k#B9v_>U8rOUFX!$udG&Mf1kLWQ?Z|aXv?Hjy0JT)Od zhkduh<74_WpDBmXXKXKH#u>Bk(5{QMlQyx$yjZ-I7A$GCR}04vCVH$sQU4en7MvW) zYsc6udM0mA>Uw>2TeEZB*rZ()-fBF~nI=!yCbevI#G35B@McriX}iYW5oB{@nMr;5 z@}bN2(B&(W<0Jc;{2cs9q~Xxz#MehAc$HjEoa+smH!CCin}@g!TsC>0B20d^^Ej%0 z`c}KuTK@E{)l8cMs`{3qi(F}%?FE)y8)M7#2qhY5| zi~W!nJx(Pdd#<^0)g~RQPH{N5Y;K%vTLoM85keo0n2EQsrWdcn^;QAd=)`W*OT);t z+>ICTyY3^}28lyx{cV(`3+?)@!+z3jhMl)nbX_f^STZ+Vz2Mdjp=1?5I5u?5_Lju- zqmCG1dt)23glrfb!xnS4j%)}j=7&YHW!;Nd(%zv5#gpiqq1qfX? z+K5Xz<97-<12wQ_*WYM~R2nmm8yp2)Zo8aTE}6XV(h$rz#>wT?kG?%2F2M?Ps#M^> zA7<*DS;wF#&r~hRQmL9xI5M<~8&^eaDgG=iFsx+BEj*bYbY-_-U8pkOLrdXCA2Tu; zYl}MGHm+~D-D6HMlu?V^8N*~yEAP1e=3Uyb?6ly5jD8#^s!{X7w!3dlI`PgQTCwhe zi*XrI5bK_6xTv#nja*HA<63#IQS;u)vD$bQ`a{>Tl7swxZg%>6&+kIyQb@OgS6w{U=%{9i)RP`q;?H2%S$pJd7|RR z^9Jt*MkjXT8aKEwkT4w=0X zMh+DuT7$G`xp?#Hyo_g*{NdU>D{dP2tne=LZ^CuCA=eC73Y&%gw#3ce>IiRYKNb~PA)(awN>+oAm@`T=H1$esfQ$HUgUyS9eJXAjJ0(H^JT=e&VWmB5 z$eM$1eJ50oiQX&{o}D%8VPBmMGap2xMW2=i&g`Q|9`+auvoT#@8WO?So76~%@vG7U z275k3Q`_L)y2W)r43dkauGx4w)UGsDvHdDd3R`y(foh{rwkX2C zx=2@vQ=*ur@-iJp2pa@GpH(=z$CCVrL%xy93JSG^=LlyB9wAZeQo_*$>Bh_Oj+hHk z%=D9D+g_v_ghT!N55keSzlfm+dDZpVAJzG^%?^P(Q;aNk?Nd-C37hN^ve&WIsnZhg zWc$I78_$yyLhjzPep_yu%^!06#uFW%apde6Hs!|3q;O?$0bgF2zchbt=Ip7NAua1< z&(%f3T$0ha(`{Rr_?wvY>53&nzxD_gi9$X~Cr0cgI}G1P`C>}9^@L-S_L+y10AQ)f(M${HoB`9X(7?I_COf2{L(l#NV*8HGw-ILmQaLS$C0+`?tgV)rZkCLs(< zSjlbV_}g{IL~J;?rYpXElhn;VVbv#OqxfEP@E;FiW3=S(Cc&_7QoGLn-~!p-WV>hQ z%k;2K>N~IKd#k%S?8S=P4szlh*GDm7L{V4OB%74sd9U{lb!`1 z73FG9m|L8`W5{{7`E7f**ORXx;who-I^Wn?JO6G89m)TFR!Rf~c7>2GcY?vzdJC-v qu@oLr-*dA6hq+oQ$AqpKwtLBba#E}IvmwRFs0!O*bL&eY@qYkdZcVTN literal 0 HcmV?d00001 diff --git a/redux/ReduxCore/languages/redux-framework-hu_HU.mo b/redux/ReduxCore/languages/redux-framework-hu_HU.mo new file mode 100644 index 0000000000000000000000000000000000000000..ba74bb8a2414d024428ea48d79102396494dbdce GIT binary patch literal 7996 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 BQb_;+ literal 0 HcmV?d00001 diff --git a/redux/ReduxCore/languages/redux-framework-id_ID.mo b/redux/ReduxCore/languages/redux-framework-id_ID.mo new file mode 100644 index 0000000000000000000000000000000000000000..6d6af7d6e7e5fd392735fa229f743d7c6f8c730d GIT binary patch literal 9333 zcmb`LYm8*aRmTf#6MIcC7;qBDkXrD@JMnbS%zABaX1!U@&dk1MXLr0an1qm%e5G4o@0t|={5b(i@5J&`r6eVCOkO*YS4*p;S zGQU$*{n*)+*&te7{l8VW>eQ+8s&o3Q_ul?##b=lH0PQQcDfO%1XWqsSpTh@~x)+=R zzYBaK;39Y@{qx}Wg6kklRRn$y*a05}2jCL;o8VFKHSh<)hwfJD`@s|7_kmA=vQHEI zZtyB7`~5U{7x?qw+rdwPb?_Q^2l%(3u=*1C1K`&}|35%k|6d?qbsI#5&OM;ae^
    ~u)!uYR%eAVap5k6l4?*YF6%07P$ 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 qU?rt3O<%kyy$%UkXheI(urTz!NP!bye literal 0 HcmV?d00001 diff --git a/redux/ReduxCore/languages/redux-framework-it_IT.mo b/redux/ReduxCore/languages/redux-framework-it_IT.mo new file mode 100644 index 0000000000000000000000000000000000000000..9e89ac3a1673e167cadfb9b48498df4918c179e5 GIT binary patch literal 15287 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 literal 0 HcmV?d00001 diff --git a/redux/ReduxCore/languages/redux-framework-lt_LT.mo b/redux/ReduxCore/languages/redux-framework-lt_LT.mo new file mode 100644 index 0000000..e69de29 diff --git a/redux/ReduxCore/languages/redux-framework-nb_NO.mo b/redux/ReduxCore/languages/redux-framework-nb_NO.mo new file mode 100644 index 0000000000000000000000000000000000000000..4ceb866bb8378e4edbdb0bed7fba52e7801271ba GIT binary patch literal 15527 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 G1@zx+PTf8L literal 0 HcmV?d00001 diff --git a/redux/ReduxCore/languages/redux-framework-ne_NP.mo b/redux/ReduxCore/languages/redux-framework-ne_NP.mo new file mode 100644 index 0000000000000000000000000000000000000000..274e193bcbcc13a262257b076fff0efad8ef71e8 GIT binary patch literal 13557 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 Ca4q!! literal 0 HcmV?d00001 diff --git a/redux/ReduxCore/languages/redux-framework-pt_BR.mo b/redux/ReduxCore/languages/redux-framework-pt_BR.mo new file mode 100644 index 0000000000000000000000000000000000000000..192cd35ca33538dfa6c5be079f2dbffed995605f GIT binary patch literal 16478 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 z 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 Y{Ak&>WfQ+-!=$lG#-E$N{x=E#-$yiWZvX%Q literal 0 HcmV?d00001 diff --git a/redux/ReduxCore/languages/redux-framework-sk_SK.mo b/redux/ReduxCore/languages/redux-framework-sk_SK.mo new file mode 100644 index 0000000000000000000000000000000000000000..2b7ea22b48003d8681ff165d186e0c97b31a160e GIT binary patch literal 7898 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 YkvgubDq@ypN7Mqd6n34{?SUNs2ZuATjQ{`u literal 0 HcmV?d00001 diff --git a/redux/ReduxCore/languages/redux-framework-sl_SI.mo b/redux/ReduxCore/languages/redux-framework-sl_SI.mo new file mode 100644 index 0000000000000000000000000000000000000000..41358aae480e6f56492a0c6312a7bbb8720c1ead GIT binary patch literal 4548 zcmZveYlvh=6@W`kVw`AV5{<4gvDUa|H`(s#d2HPDWU|?L?CvDHnQhxQ;UH5Ip^C;m#p7|vd&lGA^5Gb{4*%)z6xdD z*P!_Abtrbe2}Pej!w5*P-a~78L#e z0B7Le%knXtCiU}B#;?JT!Zws~PnYFq;R(v$gre7Ppy>I#l5atY&$prI_ioASnY{29 z6n$=oV)xw;71W`!JORbebtvOcmt2C;>P9GjI{;<=d!e+~;1PHn&ccnd{rgb#`5}BC{5*0Rxf8ki`7DJy5Q#~7=w9e6 zzWAh6@Qfi3A>z+RkS`!&o6IlI!vm-X;2Gp|$RR}THMtWXMdlFEuZBz@3&_35XApVB zhT$Xj9xe+r@IK_hvOEn>mfv+KK0A)c-cBOoBY6l{bqc8<_aIed_=x}J%fkKeQ^+UE zvYa*97uoaSQ|to;**A#|x&QA*jv>S6C?9g3hR--3vX2@WMGhdt=Pvm;*$A$0g4J`j z>-9Mw*+CVEBFY&baV+AubjVDj8tLv6+YR!9kt+-vQW_)03HQO>t z)5gB3W@Fdr=$1vX;I$cA6)mem;!Ri{gLuLP3?8>utaHCsWQ zaS3)TbY;>KdQ=Y<8J34@owb`mEpBeA#Y7G3O6tXpwrvEpWb%B=XOUWptzk=_FfOQN z8}+vJsmydOZJle&x@B^05^cL1Hi~SdBf_d$_Bw47o0)(~%hdKQNIfs2M@x_mzE)UU zf?&C@X~p!d9&B^2Rt9$GT56+%stARZu){8_?Bv0A^+K}g)vDc=30*T$t1i&E>NS$8 zwdJ#FEs@P$ON-4}%WalmiaKwzoJIAaT%C7BAx?e5MWLmhBFZDL6CW@QRr22ErfWF% zS*JFWjb~Ush`9zktV7G?IyFs#OvV<28bz2&n+e(wqB31BHdOT!z86QuVTxU+2wrKR zE7l}_>x7DYG6*S~Wj;HcAJJP9<(qPl4yvWh%Vt#;qDpB)U0<_DBjV;PRL$(*}n%751n=Z6^8`XyIjur#=_V(H$wsMX~mKIkloS8zW${bfmU60qsj#X;o zmD+?JAFq#3*2l;1uhr_c8l5Z4wvR`B@}9mEm9d&0J64~Vq$B;#nmkliGn3@81V~-a zF~aRSuV>`gb~TqrOFzT~RP+#^KN7W_7qzP!*~3hbG<$fxvT9AYu2*8>D{(~P;o;{I zeOOG!;;pT%YB7`BwA+Q@>A;KmXgbPm(A%zT4g-8NE+-z%fjZ3C98=n!~(`&1zD#!Qxi4~hRtIQ`2A8~Ki_3;fC_H3x@ zVy%&-xR;r@a>{4jysne9DCX0XQ+n_@eKL+_4@kMx}93zu8$oZZ}2(%NTgzF zJt@jZCuvI76YtYu^ z4KIyux7pip^z3s_57RD@oY3mHBV6i}j?sSCL~Wy%NGn$^vFKhoG5xr0+WzuIJE)Yj zMl#!V?XtqCxx^#3pSX_B(Wc8CuO8#ll6}^p*I~k4qm3A58m{ei>hn%7Pps|~sh41; zI_Hv$IOD-~xFRnYj8c!`A92M6lgGWLRSUcS&t;g=-^FN}H!^qSB}d|NISGtp(nNJB z^N+*f!p8pvpBMkQ`8cIv*lJ$*d5pHBP zm-Vh(a>-tKF;Z)NACWJZAu;N4llLvFQ@J~MlYAFszTxD(V(zoHFD8hEaU0bJ@iF)u zXrUwlcY^k!6UiQx<(|*E22<=bc$)tr*WB{gmbL2|-EZPno4h9rH}|seVwB4@=ordY zIqqGSE0VD62AfJW?U!|KJLp3Y*c`1_S~7Gm60F!COy31blG4Vyl2-{3f>3b_H_6wM zq$L6zc{=M#JXpdpGkqe^aCLT=LuQgqx?t3WCT;B^Z_kr6Wf2Ko+{^hg8wsxOcq~Ot zvm0|dT*F8XU)*qc$Drkv@36VDId}tuA~{?r);1EV5sLX#(mPE9S5*0*BprtVZjb7Y z(^p<1WxL$(8&=hix|Y6j3G<|P;fsJbEN6L;vN6r5LCS91{t?c7n*;4y2i5-o*=KB0 literal 0 HcmV?d00001 diff --git a/redux/ReduxCore/languages/redux-framework-sv_SE.mo b/redux/ReduxCore/languages/redux-framework-sv_SE.mo new file mode 100644 index 0000000000000000000000000000000000000000..9ce07b9f3b1cedc5e664b69b59316e54baf5e5a1 GIT binary patch literal 13181 zcmchddyHIHea8<00yqf?;ZZ_?9y@VtlbzXh;*hW=7{BfKwehZP!ppfk_s-1q%-lQN zduP|1&;ljl(Etq)XoCtxs@(@oQ7KWVS{@SHQlYj&6^Kf0L=nwj6qTwKP-rRre9t*E zJG*uuLRGJP_IuB{=lOe|-}oC>KkY+?=ON0ADUUzRn6H8lKZ`#+|9QDFSA#zU_5JcI zjJXut0zMO*0Ng2K54;6@ zDR?-vcRAG<)c79&1J9r8BeNgoKA*lJD0uwBF6)1Vy3TpmokfWG=p!RtR+z7Tp{k@>(`6#IKoCmef zhe7e{Q=s_q=b-5DWl;3|3iu-MF;MIO0OY9VQkbZ9t^p^&E#PMGB&d1c0;>PLpw{~! zsChpEYQ2wx+RrBf{t2ja{23^^d_-v+WJ^X^dpZSVy3 z-vb{9e+=#ezx6_6ehJ)ijURsy)Vgz^==<8x-U7E%FF=j^B)Av+9(V}c4io0VcY=q( zZ-b)4Ex%|?4eWrE;6q>pei^(Aya6MmbG!$Hb>>3>KLLtwUjQX{-vJ?=`5*8M0{Hxw zz+38XwVwVT0k!WhgW}6qK$bAy07b7Kf#SzczzyK0^~UT5ZwL2-?+f^KkbmZ-bdvnM z8kF44fZE3!LG7a-@SULO{4r2;d;}Cfz6Oe4kAdRrKZBa*y8(X;zMT4H*ZO|DK#e;H zax`-XI0fdQ=<{(<^Zfy+`TiIbzdsAU75uAEKX9GzKMU%-uLm{m-q3zODEWR66umzd z+CLrev!Lkrm!RhV8YsQ}r_laypw9mjQ1pJmMt`msgW|`_K(+4y`DbqD&oiC^y+G~b z?Dbx*-U7C%zX!Yv{2r)%on+IZ`(2>+*9S2z=00!%d2&$ z(^o)9V4iw|mzNtr$>mL;=GzPE+=s!-z&k+k?+xHHzzkIX1yJ(%E>P$BFt`;w4{H41 zgRcZ13+>mixk>7Wz=y$mz^8+oQEv6G2fPWqjQXvh=(-2gx(7hX^9=Yb@NM8a@P6Sg4*AohWh70t@qd9 zVesqVGsliu`nsGJFQSbcYp?BRd;)OK3X;O6DJ+ zyg#(PDWKpu1+g)=tHL8Xz*hI1=I^fX{$5Zt(X*X$Ek!ygez9Hmh*l4U_cwySM)?)W z+bBCI*HMPguks=u44>!lf*Ej6#@`L$T_D;ZQsxzucT@Ddfg;)tpSSX2DW@oUwozn@ z^oaMe_peulN3>u2TtdUMDRKC4Z@@I55Hm~ZyB4ppq(~;Npgc&Cp1qoKgtA1LqDYs2nbM}TC@-bFmZIl= z$~!2VRN;BM2Pc2Bk#C_$cHc+YO}UIRL(wDIJ>cH_pF4oFl)EW+Q7Vd_GalUE6a1Bq ze=xM21ouJR|dbvH4$H{opLekCqy(FvbOn1;qv(kU0 zPaM;^a4(a4SB3eS(V$zE_IOfO^o-Z5IbXC@5j8q#)-pSb#4hCn zTMmk3hgH9%s`y|RQ^t4mGO^5Q8w1Ao>_XHXBxQZgs3$eZrkSnUX=%%Z)8^UFH3@?T z>?5kuhK<}bwx1NuyyzwIwB4|=++cQbuvU=|ve@pds;JQx<;GigchmlO{aBGg)bW;? zyiB#l@wVehKZ#b&Gn?L>xE_PP-Iv3ieNiv%E}30<5hsN$tEDdA^NRhNT}8fFCWYDE zj862nrX{6({55{Fnlq);b&Tv zW=|qgtdXBpjTcH#5Ddn4lPUqqMv?a2q4y-NJG!3o%PlO`mpw0RSmiU((rt&=HawfUg18@FCp>Y$=QW_t+c zdKN3Ac_;?<(vnlAB{bJrR7n=bvvL%%c^h*;k+fW`9tS*(xfkBsTl=yaj_!CG$lX1S7b@RxPxEO4-iw< zL0=Huu%yk03Y%h?HZzdvYz}wnL(`VJIgq*obHc(LY}zuPu*hn}ejJBkisZITr4PMG z_J%EPywNkiqXWfW*qn76iV6a;psuL(VpPO+P0h|W#kQMvoPxNa9Fwgtrd8WnD0fg9 zI)rVsjS|iw*z<0b4wog1B@$n0!##;h06S^D_zdeqDe}E+Q>;I6{IEHg^#_#`acWLk zk ztZcx|Jd}sJIh-^r{^;O#wjVX1uQ@DgdgU}nu=Mjv^&8C$;>1%;x6HkfSH-7EEh4iX2wh1sVJ?CI}zL*nyJvRuVBA)?yRk2 z*3g{HCcXJ2=7h*(FRzDQ`;#mwB9w!AYtW5^h-U)ybN-0Wc+~JV>s^~U?kvEp%%!*Z zr3s(xMLhDXqlUI1`q9&?e2^RY>`{}Z9Ircz+;C1Mo^XmCG{4l^u&>A9HnQU>D(2oE zEkxeV+1==7j(7!fJBNl<%VM<7xiq$2VaEk>X0tXAt=ofHGdFX1 z2xyYFGXFYPL|G{pZRQZCK_+jK4ZXK$Kc6HSCaB+y8c^RUwDaV2N5bY5Gc?l#bB3{# zOF)~GUcXwZ6Aw9KBO8m2!M3>gq&_~TC&6Zf`-VSrmj6lgi;=Z3krzKnMOG3wNz0@d zJ(cwA>(_*kGBmkwUOo2Gm(wbD}ThH768;=ualqJ((18 z<3qF?OLLMfc$BC1if`L_FX=}u2FQP-w5N6+KYH-!{`JI*90E-1*oheSvrlpG^ zy_pM9i9~ zXi6{!9doQ@fgrIF2|tDwucdjA>298}y|{-CH1n=pQX^MrMc<1$5xdzni`8xUa;)Ns zjA3O1?#g1sc5eTXEp_YkTs9lChUIj7C+=i1x>UuIoO6}O(Ndj578yLQdD0ENfEO@F zNXfU1l!Zt{wnSChM2^cjGtygVm2}y=b86b2w|MUE;Dd})c$7`0#WYsERg98vNKX`=f98F=W)m zZ8AVH%5cgBB2Z`Kyho;qev3QY7JlY5PihvY>LMW9hr3eG19L|Xk1ih0h)g&Mb?sHu zDt$~FERYO4Zc0SC$XrgZBK%N0;_}1_<;7;cNH2G~Cs<;|bivS`JR@3;_$t=HSRixR zpqCUWt~scY(`v^CFFs@YU72jnpeHp3+lhTtR3p3bvsUoE6BmwOtpD0bw)9$yC0=dm zCBObwsl$5lLcNmeqOucAhm)HBgB30mtI+~+o^i{>JSIhv7n{p1W0A~yvvLW-%olk5 zoJ%*(2&X$x7~YH)@w(Y9wm(!DzEiA}jzK(!RI!iGcx3-G9 zbGu(Rb8N20-O}x`xZD z9n_k`P;jyvCY>x7PS5V0+_LV-!6SQD=)AQ)wT>W(NRqu1%}(12&QIcC(rmjk1PJPF zC+7CmZe8i;!kwh3?adl_3`3{wt@CL$+W)k5Ypo-fQ$*d`J_4h1+GaRgs^x7rZkONX z^|sBKU4NV1x@G&i*VIN~=rp(O0lQi3*V3)GW_GH+t^Nu+%;d@i)OKPJ<3+Scon zW6gQq=|x3{g;pAO6O`kfrtxZW>sFy2+#k(#C|SZ2#pPiP(X>5%di&{Q`{}dOTPJR8 z@H%|S)Uf?@=IRsM_>`T_^1MH69#tl8YHTOVa5}20g30vSu6o_@>ROYPR{!c+!%Cw8 zp}w-wS+WR?_6*0aO>ywC4=7n9Ap*xUa|F+)*C0S=tC%EGn$<%5I&GIYx!KtvjY7Cj zklxG5vsKIIx?Sny%9j(>Lel7TX)9|!J}S979;7b`oDxZEAzQw?IlO$X)v}fHXqfP^ zs>CpDX`vQ3F08wfa*_Mv*o)MxtWB0^`MkW1+f5v;H*?HLlP&9=y4{4VyG-6D0>9<+ z&V^1WCWl6uSMI!Up^F5fqrK*zBie2uPm+z*v8VH3k3sfZVr&yl|(J@@41fJOgL z^9(b8Wk&>QX`6OXHJ2YPR#Jat{hVgAK&?-=mKo;xtR^9K;(Hsc zX;Qfapp6z*nrAUv-K4Xo^Q2_RB5M$xYC7A;5Y0Kw0 z*f2A=b73@Otw^(%v9E)RinYXWT&%GW?rzATh=ZYTQg(`T!D&cP44sR60=GfQpEkXa z5@R825?bj)Ng_ohB`hb-7*yP;md`ahPB6uY`Q>w%2!^1FoocDYm2o zb^%HEIVQ(Ct;6h)AF);zWq54P*p#3|Bc&l@#a--)HD_B zKP|^HxCh7g(Mzd?X~)F0I}}4P2$$$#62dSi7bZ4lC=o-26VP6soOnF%=}S?RY7z} zt*E=$&%bQ>e2Zwk>WeKZ<11 z-r}M`4CmuS9mr)iN84*V9z;m^&}GmagW^P)gksd=0CjV$C-N`IOSG5I%M#-o$PVRe55M(cPnn1;vEY9j_tO&IUM~M~N2C zdHGzgiY67gXdEmK`Ry9EPBID$wT@rLt@6c3{2}QNvsac{D=T)^iNgik_Gjj3KK)uZ zC*eQVtUy_%y*i$+ZhZH7R4z`Kww))<%<_F^AE`At0`@w5E&Vhr zb(d-2bY&;%W5Y|$<5Q`Jmme+J6}i-tGQD2v9afR?BJ1J~*}CEMNiiKhjjj~V*0VsG zVaBl}Pn1nPR!CusG$9ruuZpUWS@m9JA9O+TVlx)CI1O0UP(mIZHj~98mNMQR4Sgzh zbJq7LT}ZH6v}|oWBvMQTo4aRxtR_Pi=yq_G&2wiPiE&k~hZW;C5jM%7x;P-_7p)7v z$`8s8;;>0%Av*KYBOf<7%g8?X70l&hVSf74a*mll z7=Gy+tnw?XbGIp}+oInQAH9+a-5V{qIMhtZ_7&3DrUa$Ur# zl6r}j&*PFMU>HBfqL1gWWKFps=ZNK8$S(CNI1*%zx%3;U^CvVBi`G{S#%fB>(kx4Y zy<|iy?N<7Al>V(wP7Y^$xr>Zodwxh|F|%khr-FS>J;)Zjum>-{CY?RRoQtt%pa>T#POTf;gtJ9SN#u@trOqzI1K;W@CBJ3PM`X_woa4%z zr=LJ1p&Qh4Cc~+!%MJ5OqSR5z;S00FdozqbDsjxQNkJqIyh|3DxYV&u%V%6FN= z&iP})%+BDk3Fk(yWQ|AJ;?-GWWOieza8R+?Fw(>SkTaQ|S2}k1u`(xz$z#u z2zXCn?Ph6)j}Bzu$CJtuE}v9}m_EQltlNWyfxDOCfSkh%V&xoQ8b>YMlusU^M*bi} z31t%fb{5F&bWXJ9v%7zGa(-<_1O}LqF>B-Pp&P_+z@nn}0J=oD30W_8#_s4+#ea$@ zl9=D}ig?94?kwgLgB}WuN^zxz zUzp5UQLGX3Dws^pcq=NiYKL4Ov#W%$JDy-D;^D6ZF7I0ZX`@%n7Isp>rjKB=kY&bN zj7(fzKMF?fLya`E_USG`5xF>i@IrFkQC4PjCNJcUD;H^C{>LVCX=@^9{k9WzLywD1 z>5W~mD}Dl^1cp1Cnt5GtS!O~cpJjH@M94Fv03!_(#e(e|S!ADBE)f~8hn{hxb=;{| zjTzbIQQYV|>k#}7MZ)ERWky31cNdG?|Mj?Vp`Ug=84A243U?$cL5M27lZhAx1LM|Y zC^aazw<-}5^Ybm?<#l`^-Q-q8YkY~}^}%rUv6GvdTz&A8Nq38n_ST!BHH9%1KVh{D q_uL*{2TL$dS8~t(f8)65cXf){U6SLxGnQi>nu*OgUVptDE%d*eWKg*P literal 0 HcmV?d00001 diff --git a/redux/ReduxCore/languages/redux-framework-th.mo b/redux/ReduxCore/languages/redux-framework-th.mo new file mode 100644 index 0000000000000000000000000000000000000000..5fb244a50543af6dcecbbe08f05ad3b127fe0504 GIT binary patch literal 8686 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 literal 0 HcmV?d00001 diff --git a/redux/ReduxCore/languages/redux-framework-tr_TR.mo b/redux/ReduxCore/languages/redux-framework-tr_TR.mo new file mode 100644 index 0000000000000000000000000000000000000000..38cb00099c7b08efd0c3e86c8b5717e8b5b9530d GIT binary patch literal 15990 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 JPghare*v)}XDa{z literal 0 HcmV?d00001 diff --git a/redux/ReduxCore/languages/redux-framework-zh_CN.mo b/redux/ReduxCore/languages/redux-framework-zh_CN.mo new file mode 100644 index 0000000000000000000000000000000000000000..dd38781de4136100eeb8ee6775bd8b4ef0bfbf2c GIT binary patch literal 14324 zcmb`M33OD~dB<-Z$4PJ#r*4*JYadRCA(2L4HqG1cl-A5KE8kNo%(Gax|9q=bKLWpZH-Gqj;~u5%1%D5e_um8W z0{`8jdbd(=Rqd>8m>@F8#oxEO2)=YwAdXMjHf9q_K7Q|i6o z{UBSYM?n6m8vgt|xZbw2puFD>%K7$#KMS4#<$RaHw}IEecYwbQz7zZ=7y-Wr!m7HP z$ujQe!1sV30DlpT*!~)D4(+v|tov0^MAHGvy3d2cXFr$#FM+b2!(jzygTl{T@J?_k zDCbxK%6d;*d5)}`yB*@&l47h!S~a?4$8bg0cHGOTKs$4|8Jno zy8|YL?|VQ*pxz6L9PhXIDNxR}3>3arfqw{kpv-#!W<=i)gVKH!{5-e}TnnB6W&RIA zS@(ZH;p-k2llCuyUj!rIQ{Zk;)(b$9&ksNu|IeWCaR~k4(z~2T@oeDsi_e1-B#xI!tKLE-(XW4cH z#AH=9D15B|KLCCKoCP-9{v+Tz+UG#o_bm*P^WF{0`R@fqukQziubH68wF;DTJOql~ zmVqAx>p?lU56XFe1C;&uf)(HZI2-&XDChk*Q1+3@GViUR?EfB6_W2Mf`_BaBe4n)V zASiNQ0E%3fSzH6keqRJ-y(D-)_+>Bx4uZ1ocfbe1KezAS`5`0chrm|)p9E#xw?NU) zpIZDbDEofjw*L;4aX$csuYUpM{2w70311%rh0i&loc{q(&RcEUOF&Fe)!23vTuXZ+ zmn$>69j$<{5UASAqpl(&R{`Z1nPp3g#OO1gW5d615v7-k+Zg44h7wxA(+5Z_(){BF(|0eJ*a2JT^ z)bpUc9|nc*>)l>N6^?6du6K}4u7+V*!WeixMe{u&hd{Q%q!-Z{st zyAzc6dqFwhi?)9V6#Knw+h4Qz4N&&~BisHPQ0AAwcYyzD+v*dh|DB+$`$16VeZuxX z0t#QBv+XA=e#zoSP~@{2lzCqUWqgl)f55h10&yjE7Q7CA-S%(&q}hKbDD(Qjh2V?e z=fLmV{y7!qd~-qJ`xlUZ>PP$$eN@ad@1Fw2Puf8l_qGQN zzwfemFDU)*v+a-A_DoRtnr+)FEUp1XKTq3s6ns1FXDw#Idue|ely!SRvC{+KtKeUQ zOQcQE6?^|4DE#~o{3!VT`NobHfHHptC~{e2aXlzI0doeg|9z{yQl7{n3Y% z`V@Ew6ghp{;(vgMLVfg?m3jyYkQBVNJPVQTTouS`T$V zvXA_d&}X5&koW>ys%l7n8E6~y1k?k`Z!Pqae&YNVV<4>R-?RJ`p2eO-hF^ld0Nq(mdXnn1+&$BF^2aiKy6Xjo=hmGY1_#z}S zzX(a~vI2@iZ-ZJO`CT!fe%0a$@DSuen27$Jvv?G|A9@`6Dl`B+19d}pLOvuuv=frw zR_HDI$=J~IJU?mMpSO4!d_S}Y+6^s*Bz_!(u0qXF`S-AW*aUt7S_mD3YM_(Q87K>h zA2mT@e=kFrvidYM0*ylVKyQZ_T|bfI!FAB1(tb3Wi*Issp0n6X`c91>^QLxf@)CYJ z>7{Z`ZKAm`p30h+jETjZS+sx}Kcm}KOJebyv&>B-yiBWlG?5Tu*#@^ck;^)3yljq< zv6<5Cw>Y_s8{HUBHL6E5p3~|#JK5%px6qMsUM|NArzOt(grD^s)^wuH%uhO-+(fgN zjZB;MrY1S@l#^?UXPvAE(|+pzwFr}%b4`B6S-WPXJo-sD7mqrwUeQT=nFc?T^kUV{ zeY3LnsmI{4G2=IyPm&&^D# zjx$9!I!zvW$@!WyZ6LWO&&j&Ubi#9@eySnf=rqI=UWCc0NG(FO@my9d_CyrZEb5ld z*V~k}5$0-JadPpb_ne>d9CS4+>r^_}Rkq1*PQ;uIp0l=o5hD{`&I7X1Ogyc{v)I!M z!`I}KHfLu^%H5FgVrp?brtNHF3hQg}oF;dZ=XjfQUMh=tvlUKDQ#{(_G-eQOqSf(I zh$o5&V7q}XtTXHQ4cKR_c{6tUWE{OXesji|HSc3tk(3BAoknQWGoT?LczEMoDU zl%Eqro@)Aw{b*J#NxJcb{YLC(owuO@Bh9ME^(lZv+KDIA86TCb zMx?cF%1h8~LqpU}VRPx$s+ixBO8Bl;WQLHC$w+MSwRmuAy;(Nmtnj?Fb#=Fa@R8Mu zmsOgHCa8@b*V%w`;x5**+*B*Ufw0r)J1rSM)mY)+^tYYfeNx9@h-}Ni3Mq@i?qz)ba)=>sL7Vl*_@iA)$8huWVfWHt9-; zM(xOYD*VDjOFY-4gR16O zVly^9d5kPd#jS8Ph6bIgtycq1m17Llc2C-=ecd2dA=NQuqHpoS@-V$@uE`}RAX+%pt80B&l}cbDREV#=e!W{2 z$O<@#lb%}TwMc#i%93B@W4K;Y#~_`> za;<5PIEE=UNP>wdMv!^pE^K=F&DAF=b7c_}aB;;FVxDnT%D zNnaJz9?cTr%^3*OQ%uXALj1^C$JuKoDvSD(*ohdERifeO%82(msF0hAD9D zQ=O?a)EWu4s&4J$tLv7pLY~BnKG=v&s&3Zc{SVX^jfAVgrmckSGl;p4otxmA!>ACO6?J#wx^WKj&_8O~7{+5s7>RWKE`y?X^d1)f3fI zF@lXFxq$QM$dUq5Yt)s4h<=hBRM(u=vBPGF<*5c=)qAew3Zf5>n?-W*#*}$n>_vSP zC?26-)o0vPR*EZCk1wS?UkVW&1#CDp>o}9xn3gm}bjF@^F&ddVCn?^~4E>IRL#NX> zF)rpxB-5K4cNAO3OppL}hn7eMWR%wxA`!=V%tI=k6N@)eIX0p{Dj6!Z=Eg=cl~#Bo zHfaKXHtoUlhF19B6!%)np3ctk97?PA9Vo4|tkbR}S0(X#ZAwbJwYSRhK8X?cIV>5C zBe0lu8Oc*>ZCWCnS}R4S{7FefD+dLO65XEU2nMB;GLGdmks;F(bajD+kF0xi&8p?A zmd$jubo8Y_a%W3MY*FH@w>h5GRfb6r_KGl>&QMoWxYnAEy3JxzGu1jOA<0A{8<%32 z9D`G4atj?!tOYLYMV#e1a}P1$k)h@uLb;6`eez5OL*gLfNW>8mzpR5>B&2|KV@dp} z!B0pskNOgQ7<=3F>&({OqUt6ohe#c3Q%uX^1~&B6FRPgoadga(Y)6MAs&rO@yD^H!j=+VR~FHz3D~%?n30(~B?yW)Q95AUx+0e-7{iO!>FWhzovfE8 z<0Io*7V0DX#AV*pDmq4p#2@D7233Qf6i^pn%jyEU6OCe_acWd00YHN({mSb}!{6Q3hj8H7C7HoWjTYpAHAQ zP%(Bl<-9i+n>Oi9%^~O#Sf!AZ9Q~7aFrz(v$GYA4>9>fiad$%attmq6*L-^rX7#RV z{L;(a)^=>n(N^vGGTS9Qz2wys1kFWrS-L#ljLE&o2jxRswtOCS65YKB$YRmOSuTP zQhq~}iHX3n5kJ#dWs4{?zH)Mck}7Qz*I|8kCfib>G)v*u;BKNAkV?%YF1c?>tkBh& ztf=huN7zaFa?8{AD>-q@k7AlBiW8|NxEx7HoGzc*j4w5DjiO;FX-W8Dm?@G`l| znrve{R{2KY}}V)M>b?W!vf~YQz?~M zHKi#x8-zJq9^5(3Y^&#%mX?TKB;Md{);wcFBEW1_db(1p5_Zk1=bF|pT2(b?M$Ph? zB{#)9FEV!qWhVClj?SH?+R0(9n1~xsEznU6FMDKd{nE;ZZ;sQ&pqHs!l8X8<^jYmZ zydj>OJbtyK_nJ|gXwJBa%B7fVw%SQyb~Lk(%v&JU29J--T`=RR%E`MzHD7<4IYvvm zGCuF&lruLnKk_RKsP*OJR^?+{($j9PsoIG|s-|@N{>G%6*~ktzI~Q>$BNuBdRx%5 zH|%*nKYm4pH`>Bi$5nWBJlJ`h62d%$M_vsE58Fmn;rfB%YkQr-kVC2T(t40g|COnY%?w0L8pIC@s)Cyo~ehJvBP#Z&FY z8;8Q!e+^E|47(96trEB{9jiowRHu% zuN4k&`{^wAhO6`!+qRcpcrDy>QWbZc4R)U4Uw)$BevdA0-5nkpE*;udINBB-7!w_s zu0q$2aOkpaAe#I{w{7r*SQOGhl4fvu*vPeDcvJ<0JM!Zb!G*s3#0%lIUKRHA6ki(? zsj_;0be9S*_Y_Ze28Yh5{EeaF(1~DAN6_<%3P-mWUcP3PSlBWa>=+L(3kLYF-C|J2B9wu!?+RK74-QkEI+dm`KY9)0 zU8I7}Oq3p`Wdc}^8oh-G#5O(g(kDo8zIEVp;yIu$` z?l;C9^!6=uu(15KBeugB*Ng4J;At~ZrwU_RrK2apqc^aSVCS*o)`^H?nNUn$+!fjtyxCU-9blpcrgZ`1=Xq$CC#aZD=1;f{a z9oMGXIR5l9FO|`2=|q3A>lND&C7bTRT7cGlaG|#}Fjjsuco+)^+fLhd;g!C^c!xEL z+pKAa6}KG@`_J3PEu-z~`SCrfxaVrnbD(f(yfA(&+<7wCyHjiH^e+2(*(|S0=MDzf zPN`sYDA@UOxNj^tux(P7M%F6mKZD7Y1}@V^n?cWTe*7e69&}!*!g7lf6Vj`r01B8Y zo`^F!o+&JXk6}p07i5v`-NdxQzGM0E@%+U8(!N8*;o%A=>^y*fPEHl`J$ljvDb^^Q zJ0yOf{mE=L+e`?yU&)UjC`{~Sgn7XS<*=vM=z5%9>+<22^Wo(o6`a}V z#o?>QcJiZpifvnqhxVG!$+Gpn;c$2Rq*#o3<7aw4#|*b#GS-IY<*)70)+#ZqpXf0X zUg-?mVT$$f>e9jOH`nRd9t@2Iy{B0U%i4a@0w0WxrP($?QA`GCVZIbuvNU#UpTYNG>yDCNdFmBO3*W_!yL;Q zS)1_k25TAZOdVccu{eC8cn06OdP=bZR#)nKwRrWY3J&y#=TB%^EmXyU-58<@Zfq|N zjB|$RAAwDHhJ~=}G-LJ0;9pA=x;nKV^mel>tB;Tgjf_?J%7BEKuGfOjk;3^?L2qYx zbb#n6YQcmqjt8CR5NhGb5GJC>BIR(`%fZ>_3DD&bDw^&cR#pLqqhNTfcyWMzBzf9s zwC|z~J3YPm*NzzbkZ-(Y6&)$BaYFRHkLNFh`$R*80GhR80iSo`V%S z#9iB096nh%w=3wrWG0Yt`p@u%IBUKThkH(=%%Eq)q#kQSCREv=WUU}Pz9ZPtVS{sF z=asOnUD*&H!@cnGu)mYgud|2=Ov(iL{EYzujhgbY*!UZpl_q*^9b*rNHqM2YLz`(hnQ7e@riGOKDw_8g~tLZx4FU zNyHu+rC!$ja*9IN7@0WYNV>avk3k zmB7)nx72ow+{!7A?+}p?ijdAu47DdbxJQ37rX-hgUjM&kxO)q!l!Ju*XQ`NskP)r^ zek>F7*N-d7g`HO|1ijtL28UT$`w$*GS?J%T1L2KQ-;i-W(a8XH>yUJ*;)PRG12Y{Y zK2?*F(K`;AlG$W)>#*f&Ugxl2q$jwsH9v8Kli(v;FBz*BhEMNWh%?9wEfyp>wAEY` zg3cqz&gfI>Z7S!nE;u!|V$;1&VaEJL8$$zy-VVx2lXil^vDt-v7tOa`pU=!$(llRs zjXm+bx43glp}$>pGk98}t&X82EA5lP$kF2PeiEBbwq^c{yH1+WfAcFYEK-P$o;92k zPJ&~{gavKJ;f0ri(b3@QNvar>dj3T5#va4(G?)2t@8pB8nMwx6B1}Lv*S#q=sw5nb zx8=t=iP?xl1w#{3rxl003*+0$DRgifGRlu$kdMFNmNSN%;+0Fm;4!hIqgzQLM(Knn zQ^5Ug+ZMT$=`#H6)c6^3O8srz^`=HKDa~axHxi;9{tzDPrA#-{!M%U%94#|(Cd|zE zvo7-FV=bYAREAsW+vv?6V=aUflNI#!(a8Sw>xjD!?KB}yGJMa~@_Mg-bGvn?MVg?q z5BnTyc23N+OLmPg}a{vXk&^ zDkf~1aePEIYyH$doKmO|og_8i@>#Sne#jQ(TgHl)UnEE<QgJ4cjK3l-d4Yxs#RN literal 0 HcmV?d00001 diff --git a/redux/ReduxCore/languages/redux-framework.pot b/redux/ReduxCore/languages/redux-framework.pot new file mode 100644 index 0000000..6b88fd1 --- /dev/null +++ b/redux/ReduxCore/languages/redux-framework.pot @@ -0,0 +1,1556 @@ +# Copyright (C) 2015 Team Redux +# This file is distributed under the GPL2+. +msgid "" +msgstr "" +"Project-Id-Version: Redux Framework 3.5.3\n" +"Report-Msgid-Bugs-To: " +"https://github.com/ReduxFramework/ReduxFramework/issues\n" +"POT-Creation-Date: 2015-04-15 23:15:00+00:00\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"PO-Revision-Date: 2015-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"X-Generator: grunt-wp-i18n 0.4.9\n" +"X-Poedit-KeywordsList: " +"__;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_" +"attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n" +"Language: en\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Poedit-Country: United States\n" +"X-Poedit-SourceCharset: UTF-8\n" +"X-Poedit-Basepath: ../\n" +"X-Poedit-SearchPath-0: .\n" +"X-Poedit-Bookmarks: \n" +"X-Textdomain-Support: yes\n" + +#: ReduxCore/core/enqueue.php:397 +#: ReduxCore/inc/extensions/customizer/extension_customizer.php:566 +msgid "You have changes that are not saved. Would you like to save them now?" +msgstr "" + +#: ReduxCore/core/enqueue.php:405 +#: ReduxCore/inc/extensions/customizer/extension_customizer.php:567 +msgid "Are you sure? Resetting will lose all custom values." +msgstr "" + +#: ReduxCore/core/enqueue.php:413 +msgid "Are you sure? Resetting will lose all custom values in this section." +msgstr "" + +#: ReduxCore/core/enqueue.php:421 +#: ReduxCore/inc/extensions/customizer/extension_customizer.php:568 +msgid "" +"Your current options will be replaced with the values of this preset. Would " +"you like to proceed?" +msgstr "" + +#: ReduxCore/core/enqueue.php:428 +msgid "Please Wait" +msgstr "" + +#: ReduxCore/core/enqueue.php:439 +msgid "There was an error saving. Here is the result of your action:" +msgstr "" + +#: ReduxCore/core/enqueue.php:440 +msgid "There was a problem with your action. Please try again or reload the page." +msgstr "" + +#: ReduxCore/core/panel.php:65 +msgid "Warning- This options panel will not work properly without javascript!" +msgstr "" + +#: ReduxCore/core/panel.php:141 +msgid "Settings Imported!" +msgstr "" + +#: ReduxCore/core/panel.php:156 +msgid "All Defaults Restored!" +msgstr "" + +#: ReduxCore/core/panel.php:170 +msgid "Section Defaults Restored!" +msgstr "" + +#: ReduxCore/core/panel.php:184 +msgid "Settings Saved!" +msgstr "" + +#: ReduxCore/core/panel.php:204 +msgid "Settings have changed, you should save them!" +msgstr "" + +#: ReduxCore/core/panel.php:212 +msgid "error(s) were found!" +msgstr "" + +#: ReduxCore/core/panel.php:220 +msgid "warning(s) were found!" +msgstr "" + +#: ReduxCore/core/panel.php:340 +msgid "" +"Your panel has bundled outdated copies of Redux Framework template " +"files – if you encounter functionality issues this could be " +"the reason. Ensure you update or remove them." +msgstr "" + +#: ReduxCore/framework.php:220 +msgid "Options panel created using %1$s" +msgstr "" + +#. Plugin Name of the plugin/theme +msgid "Redux Framework" +msgstr "" + +#: ReduxCore/framework.php:224 ReduxCore/framework.php:228 +msgid "Options" +msgstr "" + +#: ReduxCore/framework.php:1389 +#: ReduxCore/templates/panel/menu_container.tpl.php:63 +msgid "System Info" +msgstr "" + +#: ReduxCore/framework.php:1692 +msgid "Enable" +msgstr "" + +#: ReduxCore/framework.php:1697 +msgid "Disable" +msgstr "" + +#: ReduxCore/framework.php:1703 +msgid "moving the mouse over" +msgstr "" + +#: ReduxCore/framework.php:1705 +msgid "clicking" +msgstr "" + +#: ReduxCore/framework.php:1709 +msgid "" +"Hints are tooltips that popup when %d the hint icon, offering addition " +"information about the field in which they appear. They can be %d d by " +"using the link below." +msgstr "" + +#: ReduxCore/framework.php:1714 +msgid "Hints" +msgstr "" + +#: ReduxCore/framework.php:1841 +msgid "Default" +msgstr "" + +#: ReduxCore/framework.php:2680 +msgid "Invalid security credential, please reload the page and try again." +msgstr "" + +#: ReduxCore/framework.php:2766 +msgid "Your panel has no fields. Nothing to save." +msgstr "" + +#: ReduxCore/inc/class.redux_filesystem.php:23 +msgid "Unable to modify required files. Please ensure that" +msgstr "" + +#: ReduxCore/inc/class.redux_filesystem.php:25 +msgid "has the proper read/write permissions or enter your FTP information below." +msgstr "" + +#: ReduxCore/inc/class.redux_functions.php:237 +msgid "Dismiss" +msgstr "" + +#: ReduxCore/inc/class.redux_helpers.php:589 +msgid "" +"%s version %s is out of " +"date. The core version is %s" +msgstr "" + +#: ReduxCore/inc/class.redux_themecheck.php:61 +msgid "" +"The theme you are testing has %s embedded. We invite you to read the " +"%sTheme-Check Documentation%s to understand some warnings you will see " +"because of Redux." +msgstr "" + +#: ReduxCore/inc/class.redux_themecheck.php:109 +msgid "" +"The following directories & files are still located in your " +"Redux directory. They may cause errors in Theme-Check." +msgstr "" + +#: ReduxCore/inc/debug.php:41 ReduxCore/inc/debug.php:69 +#: ReduxCore/inc/debug.php:76 ReduxCore/inc/debug.php:77 +msgid "Options Object" +msgstr "" + +#: ReduxCore/inc/debug.php:54 +msgid "Show Object in Javascript Console Object" +msgstr "" + +#: ReduxCore/inc/extensions/customizer/extension_customizer.php:601 +msgid "You have changes that are not saved. Would you like to save them now?" +msgstr "" + +#: ReduxCore/inc/extensions/customizer/extension_customizer.php:602 +msgid "Are you sure? Resetting will lose all custom values." +msgstr "" + +#: ReduxCore/inc/extensions/customizer/extension_customizer.php:603 +msgid "" +"Your current options will be replaced with the values of this preset. " +"Would you like to proceed?" +msgstr "" + +#: ReduxCore/inc/extensions/import_export/extension_import_export.php:120 +msgid "Import / Export" +msgstr "" + +#: ReduxCore/inc/extensions/import_export/import_export/field_import_export.php:103 +msgid "Import Options" +msgstr "" + +#: ReduxCore/inc/extensions/import_export/import_export/field_import_export.php:104 +msgid "Import from File" +msgstr "" + +#: ReduxCore/inc/extensions/import_export/import_export/field_import_export.php:104 +msgid "Import from URL" +msgstr "" + +#: ReduxCore/inc/extensions/import_export/import_export/field_import_export.php:107 +msgid "" +"Input your backup file below and hit Import to restore your sites options " +"from a backup." +msgstr "" + +#: ReduxCore/inc/extensions/import_export/import_export/field_import_export.php:112 +msgid "" +"Input the URL to another sites options set and hit Import to load the " +"options from that site." +msgstr "" + +#: ReduxCore/inc/extensions/import_export/import_export/field_import_export.php:116 +msgid "Import" +msgstr "" + +#: ReduxCore/inc/extensions/import_export/import_export/field_import_export.php:116 +msgid "" +"WARNING! This will overwrite all existing option values, please proceed " +"with caution!" +msgstr "" + +#: ReduxCore/inc/extensions/import_export/import_export/field_import_export.php:119 +msgid "Export Options" +msgstr "" + +#: ReduxCore/inc/extensions/import_export/import_export/field_import_export.php:121 +msgid "" +"Here you can copy/download your current option settings. Keep this safe as " +"you can use it as a backup should anything go wrong, or you can use it to " +"restore your settings on this site (or any other site)." +msgstr "" + +#: ReduxCore/inc/extensions/import_export/import_export/field_import_export.php:126 +msgid "Copy Data" +msgstr "" + +#: ReduxCore/inc/extensions/import_export/import_export/field_import_export.php:126 +msgid "Download Data File" +msgstr "" + +#: ReduxCore/inc/extensions/import_export/import_export/field_import_export.php:126 +msgid "Copy Export URL" +msgstr "" + +#: ReduxCore/inc/fields/background/field_background.php:124 +#: ReduxCore/inc/fields/color/field_color.php:73 +#: ReduxCore/inc/fields/color_gradient/field_color_gradient.php:79 +#: ReduxCore/inc/fields/color_gradient/field_color_gradient.php:91 +msgid "Transparent" +msgstr "" + +#: ReduxCore/inc/fields/background/field_background.php:141 +msgid "Background Repeat" +msgstr "" + +#: ReduxCore/inc/fields/background/field_background.php:157 +msgid "Background Clip" +msgstr "" + +#: ReduxCore/inc/fields/background/field_background.php:173 +msgid "Background Origin" +msgstr "" + +#: ReduxCore/inc/fields/background/field_background.php:188 +msgid "Background Size" +msgstr "" + +#: ReduxCore/inc/fields/background/field_background.php:203 +msgid "Background Attachment" +msgstr "" + +#: ReduxCore/inc/fields/background/field_background.php:223 +msgid "Background Position" +msgstr "" + +#: ReduxCore/inc/fields/background/field_background.php:277 +#: ReduxCore/inc/fields/media/field_media.php:149 +msgid "No media selected" +msgstr "" + +#: ReduxCore/inc/fields/background/field_background.php:314 +#: ReduxCore/inc/fields/media/field_media.php:198 +#: ReduxCore/inc/fields/slides/field_slides.php:126 +#: ReduxCore/inc/fields/slides/field_slides.php:188 +msgid "Upload" +msgstr "" + +#: ReduxCore/inc/fields/background/field_background.php:321 +#: ReduxCore/inc/fields/media/field_media.php:205 +#: ReduxCore/inc/fields/multi_text/field_multi_text.php:69 +#: ReduxCore/inc/fields/multi_text/field_multi_text.php:73 +#: ReduxCore/inc/fields/multi_text/field_multi_text.php:76 +#: ReduxCore/inc/fields/slides/field_slides.php:133 +#: ReduxCore/inc/fields/slides/field_slides.php:190 +msgid "Remove" +msgstr "" + +#: ReduxCore/inc/fields/border/field_border.php:125 +#: ReduxCore/inc/fields/spacing/field_spacing.php:191 +msgid "All" +msgstr "" + +#: ReduxCore/inc/fields/border/field_border.php:138 +#: ReduxCore/inc/fields/spacing/field_spacing.php:215 +msgid "Top" +msgstr "" + +#: ReduxCore/inc/fields/border/field_border.php:145 +#: ReduxCore/inc/fields/spacing/field_spacing.php:222 +msgid "Right" +msgstr "" + +#: ReduxCore/inc/fields/border/field_border.php:152 +#: ReduxCore/inc/fields/spacing/field_spacing.php:229 +msgid "Bottom" +msgstr "" + +#: ReduxCore/inc/fields/border/field_border.php:159 +#: ReduxCore/inc/fields/spacing/field_spacing.php:236 +msgid "Left" +msgstr "" + +#: ReduxCore/inc/fields/border/field_border.php:173 +msgid "Border style" +msgstr "" + +#: ReduxCore/inc/fields/color_gradient/field_color_gradient.php:68 +msgid "From " +msgstr "" + +#: ReduxCore/inc/fields/color_gradient/field_color_gradient.php:82 +msgid "To " +msgstr "" + +#: ReduxCore/inc/fields/dimensions/field_dimensions.php:162 +msgid "Width" +msgstr "" + +#: ReduxCore/inc/fields/dimensions/field_dimensions.php:178 +#: ReduxCore/inc/fields/typography/field_typography.php:442 +msgid "Height" +msgstr "" + +#: ReduxCore/inc/fields/dimensions/field_dimensions.php:189 +#: ReduxCore/inc/fields/dimensions/field_dimensions.php:190 +#: ReduxCore/inc/fields/spacing/field_spacing.php:245 +#: ReduxCore/inc/fields/spacing/field_spacing.php:246 +msgid "Units" +msgstr "" + +#: ReduxCore/inc/fields/gallery/field_gallery.php:73 +msgid "Add/Edit Gallery" +msgstr "" + +#: ReduxCore/inc/fields/gallery/field_gallery.php:74 +msgid "Clear Gallery" +msgstr "" + +#: ReduxCore/inc/fields/link_color/field_link_color.php:87 +msgid "Regular" +msgstr "" + +#: ReduxCore/inc/fields/link_color/field_link_color.php:91 +msgid "Hover" +msgstr "" + +#: ReduxCore/inc/fields/link_color/field_link_color.php:95 +msgid "Visited" +msgstr "" + +#: ReduxCore/inc/fields/link_color/field_link_color.php:99 +msgid "Active" +msgstr "" + +#: ReduxCore/inc/fields/multi_text/field_multi_text.php:61 +msgid "Add More" +msgstr "" + +#: ReduxCore/inc/fields/password/field_password.php:62 +msgid "Password" +msgstr "" + +#: ReduxCore/inc/fields/password/field_password.php:63 +msgid "Username" +msgstr "" + +#: ReduxCore/inc/fields/select/field_select.php:83 +#: ReduxCore/inc/fields/select_image/field_select_image.php:63 +msgid "Select an item" +msgstr "" + +#: ReduxCore/inc/fields/select/field_select.php:134 +#: ReduxCore/inc/fields/select_image/field_select_image.php:144 +msgid "No items of this type were found." +msgstr "" + +#: ReduxCore/inc/fields/slides/field_slides.php:68 +msgid "Slide" +msgstr "" + +#: ReduxCore/inc/fields/slides/field_slides.php:73 +#: ReduxCore/inc/fields/slides/field_slides.php:174 +msgid "New %s" +msgstr "" + +#: ReduxCore/inc/fields/slides/field_slides.php:145 +#: ReduxCore/inc/fields/slides/field_slides.php:200 +msgid "Title" +msgstr "" + +#: ReduxCore/inc/fields/slides/field_slides.php:149 +#: ReduxCore/inc/fields/slides/field_slides.php:204 +msgid "Description" +msgstr "" + +#: ReduxCore/inc/fields/slides/field_slides.php:153 +#: ReduxCore/inc/fields/slides/field_slides.php:207 +msgid "URL" +msgstr "" + +#: ReduxCore/inc/fields/slides/field_slides.php:167 +#: ReduxCore/inc/fields/slides/field_slides.php:220 +msgid "Delete" +msgstr "" + +#: ReduxCore/inc/fields/slides/field_slides.php:223 +msgid "Add %s" +msgstr "" + +#: ReduxCore/inc/fields/switch/field_switch.php:41 +msgid "On" +msgstr "" + +#: ReduxCore/inc/fields/switch/field_switch.php:44 +msgid "Off" +msgstr "" + +#: ReduxCore/inc/fields/typography/field_typography.php:231 +msgid "Font Family" +msgstr "" + +#: ReduxCore/inc/fields/typography/field_typography.php:232 +msgid "Font family" +msgstr "" + +#: ReduxCore/inc/fields/typography/field_typography.php:258 +#: ReduxCore/inc/fields/typography/field_typography.php:259 +msgid "Backup Font Family" +msgstr "" + +#: ReduxCore/inc/fields/typography/field_typography.php:273 +#: ReduxCore/inc/fields/typography/field_typography.php:281 +msgid "Font style" +msgstr "" + +#: ReduxCore/inc/fields/typography/field_typography.php:274 +msgid "Font Weight & Style" +msgstr "" + +#: ReduxCore/inc/fields/typography/field_typography.php:281 +msgid "Style" +msgstr "" + +#: ReduxCore/inc/fields/typography/field_typography.php:321 +msgid "Font subsets" +msgstr "" + +#: ReduxCore/inc/fields/typography/field_typography.php:323 +msgid "Font Subsets" +msgstr "" + +#: ReduxCore/inc/fields/typography/field_typography.php:325 +msgid "Subsets" +msgstr "" + +#: ReduxCore/inc/fields/typography/field_typography.php:325 +msgid "Font script" +msgstr "" + +#: ReduxCore/inc/fields/typography/field_typography.php:342 +#: ReduxCore/inc/fields/typography/field_typography.php:343 +#: ReduxCore/inc/fields/typography/field_typography.php:344 +msgid "Text Align" +msgstr "" + +#: ReduxCore/inc/fields/typography/field_typography.php:365 +#: ReduxCore/inc/fields/typography/field_typography.php:366 +#: ReduxCore/inc/fields/typography/field_typography.php:367 +msgid "Text Transform" +msgstr "" + +#: ReduxCore/inc/fields/typography/field_typography.php:388 +#: ReduxCore/inc/fields/typography/field_typography.php:389 +#: ReduxCore/inc/fields/typography/field_typography.php:390 +msgid "Font Variant" +msgstr "" + +#: ReduxCore/inc/fields/typography/field_typography.php:408 +#: ReduxCore/inc/fields/typography/field_typography.php:409 +#: ReduxCore/inc/fields/typography/field_typography.php:410 +msgid "Text Decoration" +msgstr "" + +#: ReduxCore/inc/fields/typography/field_typography.php:432 +#: ReduxCore/inc/fields/typography/field_typography.php:433 +msgid "Font Size" +msgstr "" + +#: ReduxCore/inc/fields/typography/field_typography.php:433 +msgid "Size" +msgstr "" + +#: ReduxCore/inc/fields/typography/field_typography.php:441 +#: ReduxCore/inc/fields/typography/field_typography.php:442 +msgid "Line Height" +msgstr "" + +#: ReduxCore/inc/fields/typography/field_typography.php:450 +#: ReduxCore/inc/fields/typography/field_typography.php:451 +msgid "Word Spacing" +msgstr "" + +#: ReduxCore/inc/fields/typography/field_typography.php:459 +#: ReduxCore/inc/fields/typography/field_typography.php:460 +msgid "Letter Spacing" +msgstr "" + +#: ReduxCore/inc/fields/typography/field_typography.php:478 +msgid "Font Color" +msgstr "" + +#: ReduxCore/inc/fields/typography/field_typography.php:480 +msgid "Font color" +msgstr "" + +#: ReduxCore/inc/fields/typography/field_typography.php:879 +msgid "Standard Fonts" +msgstr "" + +#: ReduxCore/inc/fields/typography/field_typography.php:980 +msgid "Google Webfonts" +msgstr "" + +#: ReduxCore/inc/tracking.php:129 +msgid "Help improve Our Panel" +msgstr "" + +#: ReduxCore/inc/tracking.php:130 +msgid "" +"Please helps us improve our panel by allowing us to gather anonymous usage " +"stats so we know which configurations, plugins and themes to test to ensure " +"compatibility." +msgstr "" + +#: ReduxCore/inc/tracking.php:135 +msgid "Allow tracking" +msgstr "" + +#: ReduxCore/inc/tracking.php:140 +msgid "Do not allow tracking" +msgstr "" + +#: ReduxCore/inc/tracking.php:151 +msgid "Welcome to the Redux Demo Panel" +msgstr "" + +#: ReduxCore/inc/tracking.php:152 +msgid "Getting Started" +msgstr "" + +#: ReduxCore/inc/tracking.php:152 +msgid "" +"This panel demonstrates the many features of Redux. Before digging in, we " +"suggest you get up to speed by reviewing %1$s." +msgstr "" + +#: ReduxCore/inc/tracking.php:152 +msgid "our documentation" +msgstr "" + +#: ReduxCore/inc/tracking.php:153 +msgid "Redux Generator" +msgstr "" + +#: ReduxCore/inc/tracking.php:153 +msgid "" +"Want to get a head start? Use the %1$s. It will create a customized " +"boilerplate theme or a standalone admin folder complete with all things " +"Redux (with the help of Underscores and TGM). Save yourself a headache and " +"try it today." +msgstr "" + +#: ReduxCore/inc/tracking.php:154 ReduxCore/inc/welcome/welcome.php:214 +msgid "Redux Extensions" +msgstr "" + +#: ReduxCore/inc/tracking.php:154 +msgid "" +"Did you know we have extensions, which greatly enhance the features of " +"Redux? Visit our %1$s to learn more!" +msgstr "" + +#: ReduxCore/inc/tracking.php:154 +msgid "extensions directory" +msgstr "" + +#: ReduxCore/inc/tracking.php:155 +msgid "Like Redux?" +msgstr "" + +#: ReduxCore/inc/tracking.php:155 +msgid "" +"If so, please %1$s and consider making a %2$s to keep development of Redux " +"moving forward." +msgstr "" + +#: ReduxCore/inc/tracking.php:155 +msgid "leave us a favorable review on WordPress.org" +msgstr "" + +#: ReduxCore/inc/tracking.php:155 +msgid "donation" +msgstr "" + +#: ReduxCore/inc/tracking.php:156 +msgid "Newsletter" +msgstr "" + +#: ReduxCore/inc/tracking.php:156 +msgid "" +"If you'd like to keep up to with all things Redux, please subscribe to our " +"newsletter" +msgstr "" + +#: ReduxCore/inc/tracking.php:157 +msgid "Email address" +msgstr "" + +#: ReduxCore/inc/tracking.php:157 +msgid "Subscribe" +msgstr "" + +#: ReduxCore/inc/tracking.php:166 +msgid "Close" +msgstr "" + +#: ReduxCore/inc/validation/color/validation_color.php:15 +#: ReduxCore/inc/validation/color_rgba/validation_color_rgba.php:14 +#: ReduxCore/inc/validation/colorrgba/validation_colorrgba.php:16 +msgid "This field must be a valid color value." +msgstr "" + +#: ReduxCore/inc/validation/comma_numeric/validation_comma_numeric.php:16 +msgid "You must provide a comma separated list of numerical values for this option." +msgstr "" + +#: ReduxCore/inc/validation/css/validation_css.php:38 +msgid "Unsafe strings were found in your CSS and have been filtered out." +msgstr "" + +#: ReduxCore/inc/validation/date/validation_date.php:16 +msgid "This field must be a valid date." +msgstr "" + +#: ReduxCore/inc/validation/email/validation_email.php:16 +#: ReduxCore/inc/validation/email_not_empty/validation_email_not_empty.php:16 +msgid "You must provide a valid email for this option." +msgstr "" + +#: ReduxCore/inc/validation/no_html/validation_no_html.php:15 +msgid "You must not enter any HTML in this field, all HTML tags have been removed." +msgstr "" + +#: ReduxCore/inc/validation/no_special_chars/validation_no_special_chars.php:16 +msgid "" +"You must not enter any special characters in this field, all special " +"characters have been removed." +msgstr "" + +#: ReduxCore/inc/validation/not_empty/validation_not_empty.php:16 +msgid "This field cannot be empty. Please provide a value." +msgstr "" + +#: ReduxCore/inc/validation/numeric/validation_numeric.php:16 +#: ReduxCore/inc/validation/numeric_not_empty/validation_numeric_not_empty.php:16 +msgid "You must provide a numerical value for this option." +msgstr "" + +#: ReduxCore/inc/validation/unique_slug/validation_unique_slug.php:16 +msgid "" +"That URL slug is in use, please choose another. %s is open for " +"use." +msgstr "" + +#: ReduxCore/inc/validation/url/validation_url.php:16 +msgid "You must provide a valid URL for this option." +msgstr "" + +#: ReduxCore/inc/welcome/views/about.php:2 +msgid "Welcome to Redux Framework %s" +msgstr "" + +#: ReduxCore/inc/welcome/views/about.php:5 +msgid "" +"Thank you for updating to the latest version! Redux Framework %s is a huge " +"step forward in Redux Development. Look at all that's new." +msgstr "" + +#: ReduxCore/inc/welcome/views/about.php:8 +#: ReduxCore/inc/welcome/views/changelog.php:8 +#: ReduxCore/inc/welcome/views/credits.php:8 +#: ReduxCore/inc/welcome/views/extensions.php:82 +#: ReduxCore/inc/welcome/views/status_report.php:31 +#: ReduxCore/inc/welcome/views/support.php:8 +msgid "Version %s" +msgstr "" + +#: ReduxCore/inc/welcome/views/about.php:15 +msgid "What is Redux Framework?" +msgstr "" + +#: ReduxCore/inc/welcome/views/about.php:17 +msgid "" +"Redux Framework is the core of many products on the web. It is an option " +"framework which developers use to\n" +" enhance their products." +msgstr "" + +#: ReduxCore/inc/welcome/views/about.php:22 +msgid "Learn More" +msgstr "" + +#: ReduxCore/inc/welcome/views/about.php:28 +msgid "New in this Release" +msgstr "" + +#: ReduxCore/inc/welcome/views/changelog.php:2 +msgid "Redux Framework - Changelog" +msgstr "" + +#: ReduxCore/inc/welcome/views/changelog.php:5 +#: ReduxCore/inc/welcome/views/status_report.php:28 +msgid "" +"Our core mantra at Redux is backwards compatibility. With hundreds of " +"thousands of instances worldwide, you can be assured that we will take care " +"of you and your clients." +msgstr "" + +#: ReduxCore/inc/welcome/views/credits.php:2 +msgid "Redux Framework - A Community Effort" +msgstr "" + +#: ReduxCore/inc/welcome/views/credits.php:5 +msgid "" +"We recognize we are nothing without our community. We would like to thank " +"all of those who help Redux to be what it is. Thank you for your " +"involvement." +msgstr "" + +#: ReduxCore/inc/welcome/views/credits.php:14 +msgid "" +"Redux is created by a community of developers world wide. Want to have your " +"name listed too? Contribute to Redux." +msgstr "" + +#: ReduxCore/inc/welcome/views/extensions.php:76 +msgid "Redux Framework - Extensions" +msgstr "" + +#: ReduxCore/inc/welcome/views/extensions.php:79 +msgid "" +"Supercharge your Redux experience. Our extensions provide you with features " +"that will take your products to the next level." +msgstr "" + +#: ReduxCore/inc/welcome/views/extensions.php:88 +msgid "" +"While some are built specificially for developers, extensions such as " +"Custom Fonts are sure to make any user happy." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:25 +msgid "Redux Framework - System Status" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:38 +msgid "" +"Please copy and paste this information in your ticket when contacting " +"support:" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:41 +msgid "Get System Report" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:44 +msgid "Understanding the Status Report" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:51 +msgid "Copied!" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:51 +msgid "Copy for Support" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:60 +msgid "WordPress Environment" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:65 +msgid "Home URL" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:66 +msgid "The URL of your site's homepage." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:70 +msgid "Site URL" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:71 +msgid "The root URL of your site." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:75 +msgid "Redux Version" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:76 +msgid "The version of Redux Framework installed on your site." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:80 +msgid "Redux Data Directory Writable" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:83 +msgid "" +"Redux and its extensions write data to the uploads directory. " +"This directory must be writable." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:88 +msgid "To allow data saving, make %s writable." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:93 +msgid "WP Content URL" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:96 +msgid "The location of Wordpress's content URL." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:102 +msgid "WP Version" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:103 +msgid "The version of WordPress installed on your site." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:107 +msgid "WP Multisite" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:108 +msgid "Whether or not you have WordPress Multisite enabled." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:116 +msgid "Permalink Structure" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:117 +msgid "" +"The current permalink structure as defined in Wordpress " +"Settings->Permalinks." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:122 +msgid "Front Page Display" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:123 +msgid "The current Reading mode of Wordpress." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:131 +msgid "Front Page" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:132 +msgid "The currently selected page which acts as the site's Front Page." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:136 +msgid "Posts Page" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:137 +msgid "The currently selected page in where blog posts are displayed." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:144 +msgid "WP Memory Limit" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:145 +msgid "The maximum amount of memory (RAM) that your site can use at one time." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:150 +msgid "" +"%s - We recommend setting memory to at least 40MB. See: Increasing memory allocated to PHP" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:157 +msgid "Database Table Prefix" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:159 +msgid "The prefix structure of the current Wordpress database." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:163 +msgid "WP Debug Mode" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:164 +msgid "Displays whether or not WordPress is in Debug Mode." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:172 +msgid "Language" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:173 +msgid "The current language used by WordPress. Default = English" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:181 +msgid "Browser" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:186 +msgid "Browser Info" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:187 +msgid "Information about web browser current in use." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:202 +msgid "Server Environment" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:207 +msgid "Server Info" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:208 +msgid "Information about the web server that is currently hosting your site." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:212 +msgid "Localhost Environment" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:213 +msgid "Is the server running in a localhost environment." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:223 +msgid "PHP Version" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:224 +msgid "The version of PHP installed on your hosting server." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:228 +msgid "ABSPATH" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:229 +msgid "The ABSPATH variable on the server." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:235 +msgid "PHP Memory Limit" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:236 +#: ReduxCore/inc/welcome/views/status_report.php:241 +msgid "The largest filesize that can be contained in one post." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:240 +msgid "PHP Post Max Size" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:245 +msgid "PHP Time Limit" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:246 +msgid "" +"The amount of time (in seconds) that your site will spend on a single " +"operation before timing out (to avoid server lockups)" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:250 +msgid "PHP Max Input Vars" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:251 +msgid "" +"The maximum number of variables your server can use for a single function " +"to avoid overloads." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:255 +msgid "PHP Display Errors" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:256 +msgid "Determines if PHP will display errors within the browser." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:267 +msgid "SUHOSIN Installed" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:268 +msgid "" +"Suhosin is an advanced protection system for PHP installations. It was " +"designed to protect your servers on the one hand against a number of well " +"known problems in PHP applications and on the other hand against potential " +"unknown vulnerabilities within these applications or the PHP core itself. " +"If enabled on your server, Suhosin may need to be configured to increase " +"its data submission limits." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:277 +msgid "MySQL Version" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:278 +msgid "The version of MySQL installed on your hosting server." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:282 +msgid "Max Upload Size" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:283 +msgid "The largest filesize that can be uploaded to your WordPress installation." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:287 +msgid "Default Timezone is UTC" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:290 +msgid "The default timezone for your server." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:293 +msgid "Default timezone is %s - it should be UTC" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:304 +msgid "Used when communicating with remote services with PHP." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:310 +msgid "" +"Your server does not have fsockopen or cURL enabled - cURL is used to " +"communicate with other servers. Please contact your hosting provider." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:349 +msgid "Remote Post" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:350 +msgid "Used to send data to remote servers." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:355 +msgid "" +"wp_remote_post() failed. Many advanced features may not function. Contact " +"your hosting provider." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:358 +#: ReduxCore/inc/welcome/views/status_report.php:373 +msgid "Error: %s" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:365 +msgid "Remote Get" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:366 +msgid "Used to grab information from remote servers for updates updates." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:371 +msgid "" +"wp_remote_get() failed. This is needed to get information from remote " +"servers. Contact your hosting provider." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:405 +msgid "Active Plugins" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:421 +msgid "Visit plugin homepage" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:445 +msgid "Redux Instance: " +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:452 +msgid "The opt_name argument for this instance of Redux." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:460 +msgid "The global_variable argument for this instance of Redux." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:468 +msgid "Indicates if developer mode is enabled for this instance of Redux." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:473 +msgid "Indicates if ajax based saving is enabled for this instance of Redux." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:478 +msgid "" +"The page slug denotes the string used for the options panel page for this " +"instance of Redux." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:483 +msgid "" +"The page permissions variable sets the permission level required to access " +"the options panel for this instance of Redux." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:488 +msgid "" +"This variable set whether or not the menu is displayed as an admin menu " +"item for this instance of Redux." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:493 +msgid "" +"The page parent variable sets where the options menu will be placed on the " +"WordPress admin sidebar for this instance of Redux." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:499 +msgid "Indicates if the compiler flag is enabled for this instance of Redux." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:504 +msgid "" +"Indicates if output flag for globally shutting off all CSS output is " +"enabled for this instance of Redux." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:509 +msgid "" +"The output_tag variable sets whether or not dynamic CSS will be generated " +"for the customizer and Google fonts for this instance of Redux." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:518 +msgid "" +"The specified template path containing custom template files for this " +"instance of Redux." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:523 +msgid "List of template files overriding the default Redux template files." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:546 +msgid "Indicates the installed Redux extensions and their version numbers." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:577 +msgid "Theme" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:582 +msgid "Name" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:583 +msgid "The name of the current active theme." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:587 +msgid "Version" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:588 +msgid "The installed version of the current active theme." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:593 +msgid "is available" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:598 +msgid "Author URL" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:599 +msgid "The theme developers URL." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:603 +msgid "Child Theme" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:604 +msgid "Displays whether or not the current theme is a child theme." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:606 +msgid "" +"If you're modifying Redux Framework or a parent theme you didn't build " +"personally, we recommend using a child theme. See: How to create a child theme" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:614 +msgid "Parent Theme Name" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:616 +msgid "The name of the parent theme." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:620 +msgid "Parent Theme Version" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:623 +msgid "The installed version of the parent theme." +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:627 +msgid "Parent Theme Author URL" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:630 +msgid "The parent theme developers URL." +msgstr "" + +#: ReduxCore/inc/welcome/views/support.php:2 +msgid "Redux Framework - Support" +msgstr "" + +#: ReduxCore/inc/welcome/views/support.php:5 +msgid "" +"We are an open source project used by developers to make powerful control " +"panels." +msgstr "" + +#: ReduxCore/inc/welcome/views/support.php:20 +msgid "Generate a Support URL" +msgstr "" + +#: ReduxCore/inc/welcome/views/support.php:21 +msgid "Select Support Type" +msgstr "" + +#: ReduxCore/inc/welcome/views/support.php:22 +#: ReduxCore/inc/welcome/views/support.php:65 +msgid "How to Get Support" +msgstr "" + +#: ReduxCore/inc/welcome/views/support.php:27 +msgid "Submit a Support Request" +msgstr "" + +#: ReduxCore/inc/welcome/views/support.php:30 +msgid "To get started, we will need to generate a support hash." +msgstr "" + +#: ReduxCore/inc/welcome/views/support.php:33 +msgid "" +"This will provide to your developer all the information they may need to " +"remedy your issue. This action WILL send information securely to a remote " +"server. To see the type of information sent, please look at the Status tab." +msgstr "" + +#: ReduxCore/inc/welcome/views/support.php:37 +msgid "" +"Generate\n" +" a Support URL" +msgstr "" + +#: ReduxCore/inc/welcome/views/support.php:44 +msgid "Select Your Support Type" +msgstr "" + +#: ReduxCore/inc/welcome/views/support.php:47 +msgid "What type of user are you?" +msgstr "" + +#: ReduxCore/inc/welcome/views/support.php:52 +msgid "User" +msgstr "" + +#: ReduxCore/inc/welcome/views/support.php:53 +msgid "I am a user, using a pre-built product." +msgstr "" + +#: ReduxCore/inc/welcome/views/support.php:56 +msgid "Developer" +msgstr "" + +#: ReduxCore/inc/welcome/views/support.php:57 +msgid "I am a developer, building a product using Redux." +msgstr "" + +#: ReduxCore/inc/welcome/views/support.php:68 +msgid "" +"Please proceed to the Redux Framework issue tracker and supply us with your " +"support URL below. Please also provide any information that will help us to " +"reproduce your issue." +msgstr "" + +#: ReduxCore/inc/welcome/views/support.php:74 +msgid "" +"Listed below are the Wordpress plugins and/or theme installed on your site " +"that utilize Redux Framework. We do not directly support products created " +"with our framework. It is the responsibility of the plugin or theme " +"developer to support their work. You will need to contact the author(s) of " +"the products listed below with your support questions." +msgstr "" + +#: ReduxCore/inc/welcome/views/support.php:77 +msgid "" +"Please be sure to include for your developer - via cut and paste - the " +"Support URL in the box below." +msgstr "" + +#: ReduxCore/inc/welcome/views/support.php:215 +msgid "" +"Should the developer not be responsive, read the following article before asking for support from us " +"directly." +msgstr "" + +#: ReduxCore/inc/welcome/welcome.php:170 +msgid "Support hash could not be generated. Please try again later." +msgstr "" + +#: ReduxCore/inc/welcome/welcome.php:190 +msgid "Welcome to Redux Framework" +msgstr "" + +#: ReduxCore/inc/welcome/welcome.php:198 +msgid "Redux Framework Changelog" +msgstr "" + +#: ReduxCore/inc/welcome/welcome.php:206 class.redux-plugin.php:411 +msgid "Get Support" +msgstr "" + +#: ReduxCore/inc/welcome/welcome.php:223 +msgid "The people that develop Redux Framework" +msgstr "" + +#: ReduxCore/inc/welcome/welcome.php:231 +msgid "Redux Framework Status" +msgstr "" + +#: ReduxCore/inc/welcome/welcome.php:336 +msgid "What's New" +msgstr "" + +#: ReduxCore/inc/welcome/welcome.php:340 +msgid "Extensions" +msgstr "" + +#: ReduxCore/inc/welcome/welcome.php:344 +msgid "Changelog" +msgstr "" + +#: ReduxCore/inc/welcome/welcome.php:348 +msgid "Credits" +msgstr "" + +#: ReduxCore/inc/welcome/welcome.php:352 +msgid "Support" +msgstr "" + +#: ReduxCore/inc/welcome/welcome.php:356 +msgid "Status" +msgstr "" + +#: ReduxCore/inc/welcome/welcome.php:513 +msgid "View %s" +msgstr "" + +#: ReduxCore/templates/panel/footer.tpl.php:47 +#: ReduxCore/templates/panel/header_stickybar.tpl.php:20 +msgid "Save Changes" +msgstr "" + +#: ReduxCore/templates/panel/footer.tpl.php:50 +#: ReduxCore/templates/panel/header_stickybar.tpl.php:22 +msgid "Reset Section" +msgstr "" + +#: ReduxCore/templates/panel/footer.tpl.php:51 +#: ReduxCore/templates/panel/header_stickybar.tpl.php:23 +msgid "Reset All" +msgstr "" + +#: ReduxCore/templates/panel/footer.tpl.php:56 +#: ReduxCore/templates/panel/header_stickybar.tpl.php:26 +msgid "Working..." +msgstr "" + +#: ReduxCore/templates/panel/header.tpl.php:18 +msgid "Developer Mode Enabled" +msgstr "" + +#: ReduxCore/templates/panel/header_stickybar.tpl.php:16 +msgid "Expand" +msgstr "" + +#: class.redux-plugin.php:307 +msgid "Redux Framework has an embedded demo." +msgstr "" + +#: class.redux-plugin.php:307 +msgid "Click here to activate the sample config file." +msgstr "" + +#: class.redux-plugin.php:408 +msgid "Docs" +msgstr "" + +#: class.redux-plugin.php:409 +msgid "Repo" +msgstr "" + +#: class.redux-plugin.php:410 +msgid "Builder" +msgstr "" + +#: class.redux-plugin.php:416 +msgid "Deactivate Demo Mode" +msgstr "" + +#: class.redux-plugin.php:418 +msgid "Activate Demo Mode" +msgstr "" + +#: tests/includes/class-tivwp-dm-controller.php:28 +msgid "Must call in of after the \"plugins_loaded\" action." +msgstr "" + +#: tests/includes/class-tivwp-dm-controller.php:138 +msgid "Unknown action \"%1$s\" specified for %2$s" +msgstr "" + +#: tests/includes/class-tivwp-dm-controller.php:143 +msgid "The unknown action has been replaced with \"%s\"" +msgstr "" + +#: tests/includes/class-tivwp-dm-controller.php:158 +msgid "Automatic action performed: \"%s\"" +msgstr "" + +#: tests/includes/class-tivwp-dm.php:112 +msgid "Activate Development Plugins" +msgstr "" + +#: tests/includes/class-tivwp-dm.php:119 +msgid "Deactivate Development Plugins" +msgstr "" + +#: tests/includes/class-tivwp-dm.php:131 +msgid "You do not have sufficient permissions to access this page." +msgstr "" + +#. Plugin URI of the plugin/theme +msgid "http://wordpress.org/plugins/redux-framework" +msgstr "" + +#. Description of the plugin/theme +msgid "" +"Redux is a simple, truly extensible options framework for WordPress themes " +"and plugins." +msgstr "" + +#. Author of the plugin/theme +msgid "Team Redux" +msgstr "" + +#. Author URI of the plugin/theme +msgid "http://reduxframework.com" +msgstr "" + +#: ReduxCore/inc/welcome/views/status_report.php:427 +msgctxt "by author" +msgid "by %s" +msgstr "" \ No newline at end of file diff --git a/redux/ReduxCore/templates/panel/container.tpl.php b/redux/ReduxCore/templates/panel/container.tpl.php new file mode 100644 index 0000000..31549ff --- /dev/null +++ b/redux/ReduxCore/templates/panel/container.tpl.php @@ -0,0 +1,58 @@ +parent->args['open_expanded'] ) ? ' fully-expanded' : '' . ( ! empty( $this->parent->args['class'] ) ? ' ' . esc_attr( $this->parent->args['class'] ) : '' ); + $nonce = wp_create_nonce( "redux_ajax_nonce" . $this->parent->args['opt_name'] ); +?> +
    + parent->args['database'] == "network" && $this->parent->args['network_admin'] && is_network_admin() ? './edit.php?action=redux_' . $this->parent->args['opt_name'] : './options.php' ) ?> +
    + parent->args['opt_name'] is sanitized in the Framework class, no need to re-sanitize it. ?> + + parent->args['opt_name'] is sanitized in the Framework class, no need to re-sanitize it. ?> + + parent->args['opt_name'] is sanitized in the Framework class, no need to re-sanitize it. ?> + parent->no_panel ) ) { ?> + + + init_settings_fields(); + + // Last tab? + $this->parent->options['last_tab'] = ( isset( $_GET['tab'] ) && ! isset( $this->parent->transients['last_save_mode'] ) ) ? esc_attr( $_GET['tab'] ) : ''; + ?> + parent->args['opt_name'] is sanitized in the Framework class, no need to re-sanitize it. ?> + + + get_template( 'content.tpl.php' ); ?> + +
    +
    + +parent->args['footer_text'] ) ) { ?> + + diff --git a/redux/ReduxCore/templates/panel/content.tpl.php b/redux/ReduxCore/templates/panel/content.tpl.php new file mode 100644 index 0000000..8af928f --- /dev/null +++ b/redux/ReduxCore/templates/panel/content.tpl.php @@ -0,0 +1,99 @@ + + +get_template( 'header.tpl.php' ); ?> + + +parent->args['intro_text'] ) ) { ?> +
    parent->args['intro_text'] ); ?>
    + + +get_template( 'menu_container.tpl.php' ); ?> + +
    + + get_template( 'header_stickybar.tpl.php' ); ?> +
     
    + parent->sections as $k => $section) { + if ( isset( $section['customizer_only'] ) && $section['customizer_only'] == true ) { + continue; + } + + //$active = ( ( is_numeric($this->parent->current_tab) && $this->parent->current_tab == $k ) || ( !is_numeric($this->parent->current_tab) && $this->parent->current_tab === $k ) ) ? ' style="display: block;"' : ''; + $section['class'] = isset( $section['class'] ) ? ' ' . $section['class'] : ''; + echo '
    '; + //echo '
    '; + + echo '
      '; + + foreach ($section['tab'] as $subkey => $subsection) { + //echo '-=' . $subkey . '=-'; + echo '
    • ' . $subsection['title'] . '
    • '; + } + + echo '
    '; + foreach ($section['tab'] as $subkey => $subsection) { + echo '
    '; + echo '
    '; + echo "hello ".$subkey; + do_settings_sections( $this->parent->args['opt_name'] . $k . '_tab_' . $subkey . '_section_group' ); + echo "
    "; + echo "
    "; + } + echo "
    "; + } else { + */ + + // Don't display in the + $display = true; + if ( isset( $_GET['page'] ) && $_GET['page'] == $this->parent->args['page_slug'] ) { + if ( isset( $section['panel'] ) && $section['panel'] == "false" ) { + $display = false; + } + } + + if ( $display ) { + do_action( "redux/page/{$this->parent->args['opt_name']}/section/before", $section ); + $this->output_section( $k ); + do_action( "redux/page/{$this->parent->args['opt_name']}/section/after", $section ); + } + //} + ?>
    '; + } + + /** + * action 'redux/page-after-sections-{opt_name}' + * + * @deprecated + * + * @param object $this ReduxFramework + */ + do_action( "redux/page-after-sections-{$this->parent->args['opt_name']}", $this ); // REMOVE LATER + + /** + * action 'redux/page/{opt_name}/sections/after' + * + * @param object $this ReduxFramework + */ + do_action( "redux/page/{$this->parent->args['opt_name']}/sections/after", $this ); +?> +
    + +get_template( 'footer.tpl.php' ); ?> + +
    +
    \ No newline at end of file diff --git a/redux/ReduxCore/templates/panel/footer.tpl.php b/redux/ReduxCore/templates/panel/footer.tpl.php new file mode 100644 index 0000000..9317712 --- /dev/null +++ b/redux/ReduxCore/templates/panel/footer.tpl.php @@ -0,0 +1,73 @@ + + + diff --git a/redux/ReduxCore/templates/panel/header.tpl.php b/redux/ReduxCore/templates/panel/header.tpl.php new file mode 100644 index 0000000..2fcbc8d --- /dev/null +++ b/redux/ReduxCore/templates/panel/header.tpl.php @@ -0,0 +1,73 @@ +parent->dev_mode_forced ) { + $is_debug = false; + $is_localhost = false; + + $debug_bit = ''; + if ( Redux_Helpers::isWpDebug() ) { + $is_debug = true; + $debug_bit = __( 'WP_DEBUG is enabled', 'redux-framework' ); + } + + $localhost_bit = ''; + if ( Redux_Helpers::isLocalHost() ) { + $is_localhost = true; + $localhost_bit = __( 'you are working in a localhost environment', 'redux-framework' ); + } + + $conjunction_bit = ''; + if ( $is_localhost && $is_debug ) { + $conjunction_bit = ' ' . __( 'and', 'redux-framework' ) . ' '; + } + + $tip_msg = __( 'This has been automatically enabled because', 'redux-framework' ) . ' ' . $debug_bit . $conjunction_bit . $localhost_bit . '.'; + } else { + $tip_msg = __( 'If you are not a developer, your theme/plugin author shipped with developer mode enabled. Contact them directly to fix it.', 'redux-framework' ); + } + +?> +
    + parent->args['display_name'] ) ) { ?> +
    + + parent->args['dev_mode'] ) && $this->parent->args['dev_mode'] ) { ?> +
    + +
    + parent->args['forced_dev_mode_off']) && $this->parent->args['forced_dev_mode_off'] == true ) { ?> + + +
    + +
    + + + +

    parent->args['display_name'] ); ?>

    + + parent->args['display_version'] ) ) { ?> + parent->args['display_version'] ); ?> + + +
    + + +
    +
    \ No newline at end of file diff --git a/redux/ReduxCore/templates/panel/header_stickybar.tpl.php b/redux/ReduxCore/templates/panel/header_stickybar.tpl.php new file mode 100644 index 0000000..743b1e7 --- /dev/null +++ b/redux/ReduxCore/templates/panel/header_stickybar.tpl.php @@ -0,0 +1,43 @@ + +
    +
    + + parent->args['hide_expand'] ? ' style="display: none;"' : '' ?>> + + + +
    + +parent->args['hide_save'] ) { + submit_button( esc_attr__( 'Save Changes', 'redux-framework' ), 'primary', 'redux_save_sticky', false ); + echo ' '; + } + + if ( false === $this->parent->args['hide_reset'] ) { + submit_button( esc_attr__( 'Reset Section', 'redux-framework' ), 'secondary', $this->parent->args['opt_name'] . '[defaults-section]', false, array( 'id' => 'redux-defaults-section-sticky' ) ); + echo ' '; + submit_button( esc_attr__( 'Reset All', 'redux-framework' ), 'secondary', $this->parent->args['opt_name'] . '[defaults]', false, array( 'id' => 'redux-defaults-sticky' ) ); + } +?> +
    +
     
    +
    +
    + + +
    + notification_bar(); ?> +
    + + +
    \ No newline at end of file diff --git a/redux/ReduxCore/templates/panel/menu_container.tpl.php b/redux/ReduxCore/templates/panel/menu_container.tpl.php new file mode 100644 index 0000000..0fb3943 --- /dev/null +++ b/redux/ReduxCore/templates/panel/menu_container.tpl.php @@ -0,0 +1,51 @@ + +
    +
      +parent->sections as $k => $section ) { + $title = isset ( $section[ 'title' ] ) ? $section[ 'title' ] : ''; + + $skip_sec = false; + foreach ( $this->parent->hidden_perm_sections as $num => $section_title ) { + if ( $section_title == $title ) { + $skip_sec = true; + } + } + + if ( isset ( $section[ 'customizer_only' ] ) && $section[ 'customizer_only' ] == true ) { + continue; + } + + if ( false == $skip_sec ) { + echo $this->parent->section_menu ( $k, $section ); + $skip_sec = false; + } + } + + /** + * action 'redux-page-after-sections-menu-{opt_name}' + * + * @param object $this ReduxFramework + */ + do_action ( "redux-page-after-sections-menu-{$this->parent->args[ 'opt_name' ]}", $this ); + + /** + * action 'redux/page/{opt_name}/menu/after' + * + * @param object $this ReduxFramework + */ + do_action ( "redux/page/{$this->parent->args[ 'opt_name' ]}/menu/after", $this ); +?> +
    +
    \ No newline at end of file diff --git a/redux/redux/.DS_Store b/redux/redux/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..3c55c2b340e4906f248ecce2623436ced5afe9c7 GIT binary patch literal 6148 zcmeHKO>fgc5S>j^x>kjh14wW{T8V1}F;qpU7n7DluNc7rP_S#OSh(IOcA7&J$#?o+ zIP*vNFPz}b?w00@D?(^TntijgZ|u!m$Ll2`F`Q;0QICiuoUs$2*(Ry^fRgO_9$=y*tOcYLcSLC#Imt za!}sCEvih74Qmp1#T2@uR*zg zlk$;Qz$@StFbeSdLBSa#hpk2P>Of5sXJD~`3cU)f?I*G`lZ@mIufmH=|Y`4ez|I0t0|5uBA&nw^+ z_^%WY-IMrah@a&4){P&>d#!?hgtIZPwfMUPf!T_|<*oQ0+!*qT17PH^wTKMNe+U>E LeB%}Ps|x%AwC9a| literal 0 HcmV?d00001 diff --git a/redux/redux/ad_remove/extension_ad_remove.php b/redux/redux/ad_remove/extension_ad_remove.php new file mode 100644 index 0000000..cc26471 --- /dev/null +++ b/redux/redux/ad_remove/extension_ad_remove.php @@ -0,0 +1,125 @@ +. + * + * @package Redux Framework + * @subpackage Ad Remover + * @subpackage WordPress + * @author Kevin Provance (kprovance) + * @version 1.0.0 + */ +// Exit if accessed directly +if ( ! defined( 'ABSPATH' ) ) { + exit; +} + +// Don't duplicate me! +if ( ! class_exists( 'ReduxFramework_extension_ad_remover' ) ) { + + + /** + * Main ReduxFramework_extension_ad_remove extension class + * + * @since 1.0.0 + */ + class ReduxFramework_extension_ad_remove { + + public static $version = '1.0.0'; + // Protected vars + protected $parent; + public $extension_url; + public $extension_dir; + public static $theInstance; + public static $ext_url; + public $field_id = ''; + private $class_css = ''; + public $field_name; + + /** + * Class Constructor. Defines the args for the extions class + * + * @since 1.0.0 + * @access public + * @param array $parent Parent settings. + * @return void + */ + public function __construct( $parent ) { + + $redux_ver = ReduxFramework::$_version; + + // Set parent object + $this->parent = $parent; + + if ( version_compare( $redux_ver, '3.5.8.15' ) < 0 ) { + $this->parent->admin_notices[] = array( + 'type' => 'error', + 'msg' => 'The Redux Ad Removal extension required Redux Framework version 3.5.8.15 or higher and will disabled until a Redux update is applied.

    You are running Redux Framework version ' . $redux_ver, + 'id' => 'r_ad1492', + 'dismiss' => false, + ); + + return; + } + + // Set extension dir + if ( empty( $this->extension_dir ) ) { + $this->extension_dir = trailingslashit( str_replace( '\\', '/', dirname( __FILE__ ) ) ); + $this->extension_url = site_url( str_replace( trailingslashit( str_replace( '\\', '/', ABSPATH ) ), '', $this->extension_dir ) ); + self::$ext_url = $this->extension_url; + } + + // Set field name + $this->field_name = 'ad_remove'; + + // Set instance + self::$theInstance = $this; + + // Adds the local field + add_filter( 'redux/' . $this->parent->args['opt_name'] . '/field/class/' . $this->field_name, array( &$this, 'overload_field_path' ) ); + + add_filter( 'redux/' . $this->parent->args['opt_name'] . '/aDBW_filter', array( $this, 'dashboard' ) ); + add_filter( 'redux/' . $this->parent->args['opt_name'] . '/aNF_filter', array( $this, 'newsflash' ) ); + add_filter( 'redux/' . $this->parent->args['opt_name'] . '/aNFM_filter', array( $this, 'newsflash' ) ); + add_filter( 'redux/' . $this->parent->args['opt_name'] . '/aURL_filter', array( $this, 'ads' ) ); + } + + public function ads() { + return ''; + } + + public function dashboard() { + return 'dat'; + } + + public function newsflash() { + return 'bub'; + } + + public static function getInstance() { + return self::$theInstance; + } + + public static function getExtURL() { + return self::$ext_url; + } + + // Forces the use of the embeded field path vs what the core typically would use + public function overload_field_path( $field ) { + return dirname( __FILE__ ) . '/' . $this->field_name . '/field_' . $this->field_name . '.php'; + } + + } + +} diff --git a/redux/redux/animation/field_animation.css b/redux/redux/animation/field_animation.css new file mode 100644 index 0000000..8aa46e9 --- /dev/null +++ b/redux/redux/animation/field_animation.css @@ -0,0 +1,41 @@ +.redux-animation-container .select_wrapper { + float: left +} + +.redux-animation-container .select_wrapper.animation-options { + width: 40%; +} + +.redux-animation-container .select_wrapper.animation-options .redux-animation-options { + width: 100%!important; +} +.redux-animation-container .select_wrapper.animation-speed .redux-animation-speed, +.redux-animation-container .select_wrapper.animation-action .redux-animation-action { + width: 84px!important; +} +.redux-animation-container .select_wrapper.animation-options .select2-choice abbr, +.redux-animation-container .select_wrapper.animation-speed .select2-choice abbr, +.redux-animation-container .select_wrapper.animation-action .select2-choice abbr { + display: inline-block; +} + +.redux-animation-container .select_wrapper, +.redux-animation-container .field-animation-input { + margin-right: 10px; + margin-bottom: 7px +} + +@media screen and (max-speed: 782px) { + .redux-animation-container .field-animation-input input { + display: inline-block !important; + width: 100px !important + } + .redux-animation-container .field-animation-input .add-on { + padding: 7px 4px; + font-size: 16px; + line-action: 1.5 + } + .redux-animation-container .select_wrapper { + margin-top: 6px + } +} \ No newline at end of file diff --git a/redux/redux/animation/field_animation.js b/redux/redux/animation/field_animation.js new file mode 100644 index 0000000..4441e83 --- /dev/null +++ b/redux/redux/animation/field_animation.js @@ -0,0 +1,69 @@ + +/*global jQuery, document, redux*/ + +(function ($) { + 'use strict'; + + redux.field_objects = redux.field_objects || {}; + redux.field_objects.animation = redux.field_objects.animation || {}; + + $(document).ready( + function () { + //redux.field_objects.animation.init(); + } + ); + + redux.field_objects.animation.init = function (selector) { + + if (!selector) { + selector = $(document).find('.redux-container-animation:visible'); + } + $(selector).each( + function () { + var el = $(this); + var parent = el; + if (!el.hasClass('redux-field-container')) { + parent = el.parents('.redux-field-container:first'); + } + if (parent.is(':hidden')) { // Skip hidden fields + return; + } + if (parent.hasClass('redux-field-init')) { + parent.removeClass('redux-field-init'); + } else { + return; + } + var default_params = { + width: 'resolve', + triggerChange: true, + allowClear: true + }; + + var select2_handle = el.find('.select2_params'); + + if (select2_handle.size() > 0) { + var select2_params = select2_handle.val(); + + select2_params = JSON.parse(select2_params); + default_params = $.extend({}, default_params, select2_params); + } + + el.find('.redux-animation-options').select2(default_params); + + el.find('.redux-animation-action').select2(default_params); + + el.find('.redux-animation-speed').select2(default_params); + + + el.on('change', '.redux-animation-options,.redux-animation-action,.redux-animation-speed', function (e) { + + redux_change($(this)); + + }); + + } + ); + + + }; +})(jQuery); \ No newline at end of file diff --git a/redux/redux/animation/field_animation.min.css b/redux/redux/animation/field_animation.min.css new file mode 100644 index 0000000..44a4574 --- /dev/null +++ b/redux/redux/animation/field_animation.min.css @@ -0,0 +1,2 @@ + +.redux-animation-container .select_wrapper{float:left}.redux-animation-container .select_wrapper.animation-options{width:40%}.redux-animation-container .select_wrapper.animation-options .redux-animation-options{width:100%!important}.redux-animation-container .select_wrapper.animation-speed .redux-animation-speed,.redux-animation-container .select_wrapper.animation-action .redux-animation-action{width:84px!important}.redux-animation-container .select_wrapper.animation-options .select2-choice abbr,.redux-animation-container .select_wrapper.animation-speed .select2-choice abbr,.redux-animation-container .select_wrapper.animation-action .select2-choice abbr{display:inline-block}.redux-animation-container .select_wrapper,.redux-animation-container .field-animation-input{margin-right:10px;margin-bottom:7px}@media screen and (max-speed:782px){.redux-animation-container .field-animation-input input{display:inline-block!important;width:100px!important}.redux-animation-container .field-animation-input .add-on{padding:7px 4px;font-size:16px;line-action:1.5}.redux-animation-container .select_wrapper{margin-top:6px}} \ No newline at end of file diff --git a/redux/redux/animation/field_animation.min.js b/redux/redux/animation/field_animation.min.js new file mode 100644 index 0000000..cf0b1c4 --- /dev/null +++ b/redux/redux/animation/field_animation.min.js @@ -0,0 +1,2 @@ + +(function(a){redux.field_objects = redux.field_objects || {}; redux.field_objects.animation = redux.field_objects.animation || {}; a(document).ready(function(){}); redux.field_objects.animation.init = function(b){if (!b){b = a(document).find(".redux-container-animation:visible")}a(b).each(function(){var g = a(this); var f = g; if (!g.hasClass("redux-field-container")){f = g.parents(".redux-field-container:first")}if (f.is(":hidden")){return}if (f.hasClass("redux-field-init")){f.removeClass("redux-field-init")} else{return}var c = {width:"resolve", triggerChange:true, allowClear:true}; var d = g.find(".select2_params"); if (d.size() > 0){var e = d.val(); e = JSON.parse(e); c = a.extend({}, c, e)}g.find(".redux-animation-options").select2(c); g.find(".redux-animation-action").select2(c); g.find(".redux-animation-speed").select2(c); g.on("change", ".redux-animation-options,.redux-animation-action,.redux-animation-speed", function(h){redux_change(a(this))})})}})(jQuery); \ No newline at end of file diff --git a/redux/redux/animation/field_animation.php b/redux/redux/animation/field_animation.php new file mode 100644 index 0000000..7312367 --- /dev/null +++ b/redux/redux/animation/field_animation.php @@ -0,0 +1,195 @@ +parent = $parent; + $this->field = $field; + $this->value = $value; + + if (empty(self::$_extension_dir)) { + $this->_extension_dir = trailingslashit(str_replace('\\', '/', dirname(__FILE__))); + $this->_extension_url = plugin_dir_url( __FILE__ ); + } + + // No errors please + $defaults = array( + 'speed' => false, + 'action' => false, + 'options' => '', + 'mode' => array( + 'speed' => false, + 'action' => false, + ), + ); + + $this->field = wp_parse_args($this->field, $defaults); + + $defaults = array( + 'speed' => '', + 'action' => '', + 'options' => '' + ); + + $this->value = wp_parse_args($this->value, $defaults); + } + + function render() { + + echo '
    '; + + if (isset($this->field['select2'])) { + + $select2_params = json_encode($this->field['select2']); + + $select2_params = htmlspecialchars($select2_params, ENT_QUOTES); + + echo ''; + } + + //echo ''; + + if (isset($this->field['options']) && is_array($this->field['options'])) { + + echo ''; + + echo '
    '; + + echo ''; + echo '
    '; + }; + + if (isset($this->field['action']) && is_array($this->field['action'])) { + + echo ''; + + echo '
    '; + + echo ''; + echo '
    '; + }; + + if (isset($this->field['speed']) && is_array($this->field['speed'])) { + + echo ''; + + echo '
    '; + + echo ''; + echo '
    '; + }; + + echo "
    "; + } + + function enqueue() { + wp_enqueue_style('select2-css'); + + wp_enqueue_style( + 'redux-field-animation-css', $this->_extension_url . 'field_animation' . Redux_Functions::isMin() . '.css', array(), time(), 'all' + ); + + wp_enqueue_script( + 'redux-field-animation-js', $this->_extension_url . 'field_animation' . Redux_Functions::isMin() . '.js', array('jquery', 'select2-js', 'redux-js'), time(), true + ); + } + + public function output() { + + // if field options has a value and IS an array, then evaluate as needed. + if (isset($this->field['options']) && !is_array($this->field['options'])) { + + //if options fields has a value but options value does not then make options value the field value + if (isset($this->field['options']) && !isset($this->value['options']) || $this->field['options'] == false) { + $this->value['options'] = $this->field['options']; + + // If options field does NOT have a value and options value does NOT have a value, set both to blank (default?) + } else if (!isset($this->field['options']) && !isset($this->value['options'])) { + $this->field['options'] = 'px'; + $this->value['options'] = 'px'; + + // If options field has NO value but options value does, then set unit field to value field + } else if (!isset($this->field['options']) && isset($this->value['options'])) { + $this->field['options'] = $this->value['options']; + + // if unit value is set and unit value doesn't equal unit field (coz who knows why) + // then set unit value to unit field + } elseif (isset($this->value['options']) && $this->value['options'] !== $this->field['options']) { + $this->value['options'] = $this->field['options']; + } + + // do stuff based on unit field NOT set as an array + } elseif (isset($this->field['options']) && is_array($this->field['options'])) { + // nothing to do here, but I'm leaving the construct just in case I have to debug this again. + } + + $options = isset($this->value['options']) ? $this->value['options'] : ""; + $action = isset($this->value['action']) ? $this->value['action'] : ""; + $speed = isset($this->value['speed']) ? $this->value['speed'] : ""; + + + $style = ""; + + foreach ($cleanValue as $key => $value) { + // Output if it's a numeric entry + if (isset($value) && is_numeric($value)) { + $style .= $key . ':' . $value . $options . ';'; + } + } + + if (!empty($style)) { + if (!empty($this->field['output']) && is_array($this->field['output'])) { + $keys = implode(",", $this->field['output']); + $this->parent->outputCSS .= $keys . "{" . $style . '}'; + } + + if (!empty($this->field['compiler']) && is_array($this->field['compiler'])) { + $keys = implode(",", $this->field['compiler']); + $this->parent->compilerCSS .= $keys . "{" . $style . '}'; + } + } + } + + } + +} \ No newline at end of file diff --git a/redux/redux/icons/field_icons.css b/redux/redux/icons/field_icons.css new file mode 100644 index 0000000..88bbab1 --- /dev/null +++ b/redux/redux/icons/field_icons.css @@ -0,0 +1,122 @@ +.redux-container .ui-accordion .ui-accordion-content { + padding: 5px; +} +div.clearfix:after { + content: " "; + visibility: hidden; + display: block; + height: 0; + clear: both; +} +.redux-container-icons .redux-icons-list .select2-container { + margin-bottom: 10px; + width: 100%; +} +.redux-container-icons .ui-accordion-header { + margin-bottom: 0; +} +.redux-container-icons .full-text { + width: 100%; +} +.redux-container-icons .large-text { + width: 100%; +} +.redux-container-icons .redux-icons-accordion-group { + display: block; + float: left; + color: #666; + border: none; + text-decoration: none; + font-size: 20px; + line-height: 60px; + width: 236.5px; + margin: 1px; + padding: 15px; + transition: all 0.2s; + background-color: #f6f6f6; +} +.redux-container-icons .redux-icons-accordion-group.redux-icons-add { + text-align: center; + line-height: 1; + padding-top: 50px; + padding-bottom: 50px; +} +.redux-container-icons .redux-icons-accordion-group .dashicons { + width: 1em; + height: 1em; + text-align: center; +} +.redux-container-icons .redux-icons-accordion-group h3 { + padding: 5px 0; + line-height: 1.2em; + font-size: 13px; + text-align: left; +} +.redux-container-icons .redux-icons-accordion-group input { + margin: 0; +} +.redux-container-icons .redux-icons-accordion-group .screenshot { + width: 70px; + height: 70px; + float: left; + margin: 0 5px 0 0; +} +.redux-container-icons .redux-icons-accordion-group .screenshot > img { + margin: 0; + box-sizing: border-box; +} +.redux-container-icons .redux-icons-accordion-group .redux_icons_add_remove .button { + margin: 0 5px 0 0; +} +.redux-container-icons #redux-icons-accordion .redux-icons-image { + height: 250px; + padding: 5px; + margin-top: 10px; + margin-bottom: 10px; + border: 1px solid #e3e3e3; + background: #f7f7f7; + -moz-border-radius: 3px; + -khtml-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; +} +.redux-container-icons .redux-icons-add-container { + clear: both; + overflow: hidden; +} +.redux-container-icons .redux-icons-add { + float: left; + margin-right: 10%; + display: block; + margin-bottom: 10px; +} +.redux-container-icons .redux-icons-remove { + color: #ef521d !important; + float: right; + margin-top: 5px; +} +.redux-container-icons .redux-icons-add-icon { + font-size: 12px; + text-decoration: none; + color: #21c2f8; +} +.redux-container-icons .redux-icons-header { + font-weight: bold; +} +.redux-container-icons .redux-field > h3 > i { + margin-right: 5px; + font-size: inherit; + width: 1em; + height: 1em; + line-height: 1em; +} +.redux-container-icons input { + width: 100% !important; +} +.wp-customizer .redux-container-icons .ui-accordion .ui-accordion-content { + padding: 10px; +} +#modal_icons .quadmenu-setting-icon .quadmenu-icons-scroll { + max-height: 400px; +} +/*# sourceMappingURL=field_icons.css.map */ \ No newline at end of file diff --git a/redux/redux/icons/field_icons.css.map b/redux/redux/icons/field_icons.css.map new file mode 100644 index 0000000..f5a6bb0 --- /dev/null +++ b/redux/redux/icons/field_icons.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["./field_icons.less"],"names":[],"mappings":"AAKA,gBACI,cACI;EACI,YAAA;;AAKR,GADD,SACE;EACG,SAAS,GAAT;EACA,kBAAA;EACA,cAAA;EACA,SAAA;EACA,WAAA;;AAGR,sBACI,kBACI;EACI,mBAAA;EACA,WAAA;;AAJZ,sBAOI;EACI,gBAAA;;AARR,sBAUI;EACI,WAAA;;AAXR,sBAaI;EACI,WAAA;;AAdR,sBAiBI;EACI,cAAA;EACA,WAAA;EACA,WAAA;EACA,YAAA;EACA,qBAAA;EACA,eAAA;EACA,iBAAA;EACA,cAAA;EACA,WAAA;EACA,aAAA;EACA,oBAAA;EACA,yBAAA;;AAEA,sBAdJ,6BAcK;EACG,kBAAA;EACA,cAAA;EACA,iBAAA;EACA,oBAAA;;AAnCZ,sBAiBI,6BAqBI;EACI,UAAA;EACA,WAAA;EACA,kBAAA;;AAzCZ,sBAiBI,6BA2BI;EACI,cAAA;EACA,kBAAA;EACA,eAAA;EACA,gBAAA;;AAhDZ,sBAiBI,6BAkCI;EACI,SAAA;;AApDZ,sBAiBI,6BAsCI;EACI,WAAA;EACA,YAAA;EACA,WAAA;EACA,iBAAA;;AA3DZ,sBAiBI,6BAsCI,YAMI;EACI,SAAA;EACA,sBAAA;;AA/DhB,sBAiBI,6BAmDI,wBACI;EACI,iBAAA;;AAtEhB,sBA2EI,uBACI;EACI,aAAA;EACA,YAAA;EACA,gBAAA;EACA,mBAAA;EACA,yBAAA;EACA,mBAAA;EACA,uBAAA;EACA,yBAAA;EACA,0BAAA;EACA,kBAAA;;AAtFZ,sBAyFI;EACI,WAAA;EACA,gBAAA;;AA3FR,sBA6FI;EACI,WAAA;EACA,iBAAA;EACA,cAAA;EACA,mBAAA;;AAjGR,sBAmGI;EACI,cAAA;EACA,YAAA;EACA,eAAA;;AAtGR,sBAwGI;EACI,eAAA;EACA,qBAAA;EACA,cAAA;;AA3GR,sBA6GI;EACI,iBAAA;;AA9GR,sBAgHI,aACI,KACI;EACI,iBAAA;EACA,kBAAA;EACA,UAAA;EACA,WAAA;EACA,gBAAA;;AAvHhB,sBA2HI;EACI,sBAAA;;AAGR,cACI,uBACI,cACI;EACI,aAAA;;AAMhB,YACI,uBAAuB;EACnB,iBAAA","file":"field_icons.css"} \ No newline at end of file diff --git a/redux/redux/icons/field_icons.js b/redux/redux/icons/field_icons.js new file mode 100644 index 0000000..9daf9c3 --- /dev/null +++ b/redux/redux/icons/field_icons.js @@ -0,0 +1,115 @@ +/*global redux_change, wp, redux*/ + +(function ($) { + "use strict"; + + redux.field_objects = redux.field_objects || {}; + redux.field_objects.icons = redux.field_objects.icons || {}; + + + $(document).ready( + function () { + //redux.field_objects.icons.init(); + } + ); + + redux.field_objects.icons.init = function (selector) { + + if (!selector) { + selector = $(document).find(".redux-group-tab:visible").find('.redux-container-icons:visible'); + } + + $(selector).each( + function () { + var el = $(this); + + redux.field_objects.media.init(el); + + el.parent().prev().hide(); + var parent = el; + if (!el.hasClass('redux-field-container')) { + parent = el.parents('.redux-field-container:first'); + } + if (parent.is(":hidden")) { // Skip hidden fields + return; + } + + if (parent.hasClass('redux-container-icons')) { + parent.addClass('redux-field-init'); + } + + if (parent.hasClass('redux-field-init')) { + parent.removeClass('redux-field-init'); + } else { + return; + } + + el.find('.redux-icons-remove').on( + 'click', function () { + redux_change($(this)); + + $(this).parent().siblings().find('input[type="text"]').val(''); + $(this).parent().siblings().find('textarea').val(''); + $(this).parent().siblings().find('input[type="hidden"]').val(''); + + var slideCount = $(this).parents('.redux-container-icons:first').find('.redux-icons-accordion-group').length; + + if (slideCount > 1) { + $(this).parents('.redux-icons-accordion-group:first').slideUp( + 'medium', function () { + $(this).remove(); + } + ); + } else { + var content_new_title = $(this).parent('.redux-icons-accordion').data('new-content-title'); + + $(this).parents('.redux-icons-accordion-group:first').find('.remove-image').click(); + $(this).parents('.redux-container-icons:first').find('.redux-icons-accordion-group:last').find('.redux-icons-header').text(content_new_title); + } + } + ); + + //el.find( '.redux-icons-add' ).click( + el.find('.redux-icons-add').off('click').click( + function () { + var newSlide = $(this).prev().find('.redux-icons-accordion-group:last').clone(true); + + var slideCount = $(newSlide).find('.slide-title').attr("name").match(/[0-9]+(?!.*[0-9])/); + var slideCount1 = slideCount * 1 + 1; + + $(newSlide).find('input[type="text"], input[type="hidden"], textarea, .redux-icons-add-icon').each( + function () { + + $(this).attr( + "name", jQuery(this).attr("name").replace(/[0-9]+(?!.*[0-9])/, slideCount1) + ).attr("id", $(this).attr("id").replace(/[0-9]+(?!.*[0-9])/, slideCount1)); + $(this).val(''); + if ($(this).hasClass('slide-sort')) { + $(this).val(slideCount1); + } + } + ); + + var content_new_title = $(this).prev().data('new-content-title'); + + $(newSlide).find('.screenshot').removeAttr('style'); + $(newSlide).find('.screenshot').addClass('hide'); + $(newSlide).find('.screenshot a').attr('href', ''); + $(newSlide).find('.remove-image').addClass('hide'); + $(newSlide).find('.redux-option-image').attr('src', '').removeAttr('id'); + $(newSlide).find('h3').text('').append('' + content_new_title + ''); + $(this).prev().append(newSlide); + } + ); + + el.find('.slide-title').keyup( + function (event) { + var newTitle = event.target.value; + $(this).parents().eq(3).find('.redux-icons-header').text(newTitle); + } + ); + + } + ); + }; +})(jQuery); \ No newline at end of file diff --git a/redux/redux/icons/field_icons.less b/redux/redux/icons/field_icons.less new file mode 100644 index 0000000..12afd38 --- /dev/null +++ b/redux/redux/icons/field_icons.less @@ -0,0 +1,163 @@ +@color_1: #666; +@color_2: #ef521d; +@color_3: #21c2f8; +@background_color_1: #f6f6f6; + +.redux-container { + .ui-accordion { + .ui-accordion-content { + padding: 5px; + } + } +} +div.clearfix { + &:after { + content: " "; + visibility: hidden; + display: block; + height: 0; + clear: both; + } +} +.redux-container-icons { + .redux-icons-list { + .select2-container { + margin-bottom: 10px; + width: 100%; + } + } + .ui-accordion-header { + margin-bottom: 0; + } + .full-text { + width: 100%; + } + .large-text { + width: 100%; + } + + .redux-icons-accordion-group { + display: block; + float: left; + color: @color_1; + border: none; + text-decoration: none; + font-size: 20px; + line-height: 60px; + width: 236.5px; + margin: 1px; + padding: 15px; + transition: all 0.2s; + background-color: @background_color_1; + + &.redux-icons-add { + text-align: center; + line-height: 1; + padding-top: 50px; + padding-bottom: 50px; + } + + .dashicons { + width: 1em; + height: 1em; + text-align: center; + } + + h3 { + padding: 5px 0; + line-height: 1.2em; + font-size: 13px; + text-align: left; + } + + input { + margin: 0; + } + + .screenshot { + width: 70px; + height: 70px; + float: left; + margin: 0 5px 0 0; + + > img { + margin: 0; + box-sizing: border-box; + } + } + + + .redux_icons_add_remove { + .button { + margin: 0 5px 0 0; + } + } + } + + #redux-icons-accordion { + .redux-icons-image { + height: 250px; + padding: 5px; + margin-top: 10px; + margin-bottom: 10px; + border: 1px solid #e3e3e3; + background: #f7f7f7; + -moz-border-radius: 3px; + -khtml-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + } + } + .redux-icons-add-container { + clear: both; + overflow: hidden; + } + .redux-icons-add { + float: left; + margin-right: 10%; + display: block; + margin-bottom: 10px; + } + .redux-icons-remove { + color: @color_2 !important; + float: right; + margin-top: 5px; + } + .redux-icons-add-icon { + font-size: 12px; + text-decoration: none; + color: @color_3; + } + .redux-icons-header { + font-weight: bold; + } + .redux-field { + >h3 { + >i { + margin-right: 5px; + font-size: inherit; + width: 1em; + height: 1em; + line-height: 1em; + } + } + } + input { + width: 100% !important; + } +} +.wp-customizer { + .redux-container-icons { + .ui-accordion { + .ui-accordion-content { + padding: 10px; + } + } + } +} + +#modal_icons { + .quadmenu-setting-icon .quadmenu-icons-scroll { + max-height: 400px; + } +} \ No newline at end of file diff --git a/redux/redux/icons/field_icons.min.css b/redux/redux/icons/field_icons.min.css new file mode 100644 index 0000000..920956d --- /dev/null +++ b/redux/redux/icons/field_icons.min.css @@ -0,0 +1,2 @@ + +.redux-container .ui-accordion .ui-accordion-content{padding:5px}div.clearfix:after{content:" ";visibility:hidden;display:block;height:0;clear:both}.redux-container-icons .redux-icons-list .select2-container{margin-bottom:10px;width:100%}.redux-container-icons .ui-accordion-header{margin-bottom:0}.redux-container-icons .full-text{width:100%}.redux-container-icons .large-text{width:100%}.redux-container-icons .redux-icons-accordion-group{display:block;float:left;color:#666;border:0;text-decoration:none;font-size:20px;line-height:60px;width:236.5px;margin:1px;padding:15px;transition:all .2s;background-color:#f6f6f6}.redux-container-icons .redux-icons-accordion-group.redux-icons-add{text-align:center;line-height:1;padding-top:50px;padding-bottom:50px}.redux-container-icons .redux-icons-accordion-group .dashicons{width:1em;height:1em;text-align:center}.redux-container-icons .redux-icons-accordion-group h3{padding:5px 0;line-height:1.2em;font-size:13px;text-align:left}.redux-container-icons .redux-icons-accordion-group input{margin:0}.redux-container-icons .redux-icons-accordion-group .screenshot{width:70px;height:70px;float:left;margin:0 5px 0 0}.redux-container-icons .redux-icons-accordion-group .screenshot>img{margin:0;box-sizing:border-box}.redux-container-icons .redux-icons-accordion-group .redux_icons_add_remove .button{margin:0 5px 0 0}.redux-container-icons #redux-icons-accordion .redux-icons-image{height:250px;padding:5px;margin-top:10px;margin-bottom:10px;border:1px solid #e3e3e3;background:#f7f7f7;-moz-border-radius:3px;-khtml-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.redux-container-icons .redux-icons-add-container{clear:both;overflow:hidden}.redux-container-icons .redux-icons-add{float:left;margin-right:10%;display:block;margin-bottom:10px}.redux-container-icons .redux-icons-remove{color:#ef521d!important;float:right;margin-top:5px}.redux-container-icons .redux-icons-add-icon{font-size:12px;text-decoration:none;color:#21c2f8}.redux-container-icons .redux-icons-header{font-weight:bold}.redux-container-icons .redux-field>h3>i{margin-right:5px;font-size:inherit;width:1em;height:1em;line-height:1em}.redux-container-icons input{width:100%!important}.wp-customizer .redux-container-icons .ui-accordion .ui-accordion-content{padding:10px}#modal_icons .quadmenu-setting-icon .quadmenu-icons-scroll{max-height:400px} \ No newline at end of file diff --git a/redux/redux/icons/field_icons.min.js b/redux/redux/icons/field_icons.min.js new file mode 100644 index 0000000..e01ec4e --- /dev/null +++ b/redux/redux/icons/field_icons.min.js @@ -0,0 +1,2 @@ + +(function(a){redux.field_objects = redux.field_objects || {}; redux.field_objects.icons = redux.field_objects.icons || {}; a(document).ready(function(){}); redux.field_objects.icons.init = function(b){if (!b){b = a(document).find(".redux-group-tab:visible").find(".redux-container-icons:visible")}a(b).each(function(){var d = a(this); redux.field_objects.media.init(d); d.parent().prev().hide(); var c = d; if (!d.hasClass("redux-field-container")){c = d.parents(".redux-field-container:first")}if (c.is(":hidden")){return}if (c.hasClass("redux-container-icons")){c.addClass("redux-field-init")}if (c.hasClass("redux-field-init")){c.removeClass("redux-field-init")} else{return}d.find(".redux-icons-remove").on("click", function(){redux_change(a(this)); a(this).parent().siblings().find('input[type="text"]').val(""); a(this).parent().siblings().find("textarea").val(""); a(this).parent().siblings().find('input[type="hidden"]').val(""); var e = a(this).parents(".redux-container-icons:first").find(".redux-icons-accordion-group").length; if (e > 1){a(this).parents(".redux-icons-accordion-group:first").slideUp("medium", function(){a(this).remove()})} else{var f = a(this).parent(".redux-icons-accordion").data("new-content-title"); a(this).parents(".redux-icons-accordion-group:first").find(".remove-image").click(); a(this).parents(".redux-container-icons:first").find(".redux-icons-accordion-group:last").find(".redux-icons-header").text(f)}}); d.find(".redux-icons-add").off("click").click(function(){var g = a(this).prev().find(".redux-icons-accordion-group:last").clone(true); var f = a(g).find(".slide-title").attr("name").match(/[0-9]+(?!.*[0-9])/); var e = f * 1 + 1; a(g).find('input[type="text"], input[type="hidden"], textarea, .redux-icons-add-icon').each(function(){a(this).attr("name", jQuery(this).attr("name").replace(/[0-9]+(?!.*[0-9])/, e)).attr("id", a(this).attr("id").replace(/[0-9]+(?!.*[0-9])/, e)); a(this).val(""); if (a(this).hasClass("slide-sort")){a(this).val(e)}}); var h = a(this).prev().data("new-content-title"); a(g).find(".screenshot").removeAttr("style"); a(g).find(".screenshot").addClass("hide"); a(g).find(".screenshot a").attr("href", ""); a(g).find(".remove-image").addClass("hide"); a(g).find(".redux-option-image").attr("src", "").removeAttr("id"); a(g).find("h3").text("").append('' + h + ""); a(this).prev().append(g)}); d.find(".slide-title").keyup(function(e){var f = e.target.value; a(this).parents().eq(3).find(".redux-icons-header").text(f)})})}})(jQuery); \ No newline at end of file diff --git a/redux/redux/icons/field_icons.php b/redux/redux/icons/field_icons.php new file mode 100644 index 0000000..0a1b809 --- /dev/null +++ b/redux/redux/icons/field_icons.php @@ -0,0 +1,237 @@ +parent = $parent; + $this->field = $field; + $this->value = $value; + + if ( empty( self::$_extension_dir ) ) { + $this->_extension_dir = trailingslashit( str_replace( '\\', '/', dirname( __FILE__ ) ) ); + $this->_extension_url = plugin_dir_url( __FILE__ ); + } + } + + public static function modal( $icons = '' ) { + ?> + + + + array( + 'title' => true, + 'icon' => true, + // 'key' => false, + 'description' => true, + 'url' => true, + 'upload' => true, + ), + 'content_title' => __( 'Slide', 'redux-framework' ), + ); + + $this->field = wp_parse_args( $this->field, $defaults ); + + echo '
    '; + + $x = 0; + + $multi = ( isset( $this->field['multi'] ) && $this->field['multi'] ) ? ' multiple="multiple"' : ''; + + if ( isset( $this->value ) && is_array( $this->value ) && ! empty( $this->value ) ) { + + $icons = $this->value; + + foreach ( $icons as $slide ) { + + if ( empty( $slide ) ) { + continue; + } + + $defaults = array( + 'title' => '', + 'icon' => '', + 'description' => '', + 'sort' => '', + 'url' => '', + 'image' => '', + 'thumb' => '', + 'attachment_id' => '', + 'height' => '', + 'width' => '', + 'upload' => '', + 'select' => array(), + ); + $slide = wp_parse_args( $slide, $defaults ); + + if ( empty( $slide['thumb'] ) && ! empty( $slide['attachment_id'] ) ) { + $img = wp_get_attachment_image_src( $slide['attachment_id'], 'full' ); + $slide['image'] = $img[0]; + $slide['width'] = $img[1]; + $slide['height'] = $img[2]; + } + + echo '

    ' . $slide['title'] . '

    '; + + if ( $this->field['show']['upload'] ) { + + $hide = ''; + + if ( empty( $slide['image'] ) ) { + $hide = ' hidden'; + } + + echo '
    '; + // echo ''; + echo ''; + // echo ''; + echo '
    '; + + echo '
    '; + + echo '' . __( 'Upload', 'redux-framework' ) . ''; + + $hide = ''; + + if ( empty( $slide['image'] ) || $slide['image'] == '' ) { + $hide = ' hide'; + } + + echo '' . __( 'Remove', 'redux-framework' ) . ''; + + echo '
    ' . "\n"; + } + + echo '
      '; + + if ( $this->field['show']['title'] ) { + $title_type = 'text'; + } else { + $title_type = 'hidden'; + } + + $placeholder = ( isset( $this->field['placeholder']['title'] ) ) ? esc_attr( $this->field['placeholder']['title'] ) : __( 'Title', 'redux-framework' ); + + echo '
    • '; + + if ( $this->field['show']['icon'] ) { + $placeholder = ( isset( $this->field['placeholder']['icon'] ) ) ? esc_attr( $this->field['placeholder']['icon'] ) : __( 'Icon', 'quadmenu' ); + echo '
    • '; + echo '' . __( '+ Add Icon', 'quadmenu' ) . ''; + echo ''; + echo '
    • '; + } + + if ( $this->field['show']['description'] ) { + $placeholder = ( isset( $this->field['placeholder']['description'] ) ) ? esc_attr( $this->field['placeholder']['description'] ) : __( 'Description', 'redux-framework' ); + echo '
    • '; + } + + $placeholder = ( isset( $this->field['placeholder']['url'] ) ) ? esc_attr( $this->field['placeholder']['url'] ) : __( 'URL', 'redux-framework' ); + if ( $this->field['show']['url'] ) { + $url_type = 'text'; + } else { + $url_type = 'hidden'; + } + + echo '
    • '; + echo '
    • '; + echo '
    • '; + echo ''; + echo ''; + echo ''; + echo '
    • '; + // echo ''; + echo '
    • ' . __( 'Delete', 'redux-framework' ) . '
    • '; + echo '
    '; + $x ++; + } + } + + echo '
    '; + + echo ''; + } + + public function enqueue() { + if ( function_exists( 'wp_enqueue_media' ) ) { + wp_enqueue_media(); + } else { + wp_enqueue_script( 'media-upload' ); + } + + if ( $this->parent->args['dev_mode'] ) { + wp_enqueue_style( 'redux-field-media-css' ); + } + + wp_enqueue_style( + 'redux-field-icons-css', + $this->_extension_url . 'field_icons' . Redux_Functions::isMin() . '.css', + array(), + time(), + 'all' + ); + + wp_enqueue_script( + 'redux-field-media-js', + ReduxFramework::$_url . 'assets/js/media/media' . Redux_Functions::isMin() . '.js', + array( 'jquery', 'redux-js' ), + time(), + true + ); + + wp_enqueue_script( + 'redux-field-icons-js', + $this->_extension_url . 'field_icons' . Redux_Functions::isMin() . '.js', + array( 'jquery', 'jquery-ui-core', 'jquery-ui-accordion', 'jquery-ui-sortable', 'redux-field-media-js' ), + time(), + true + ); + } + + } + +} diff --git a/redux/redux/rgba/field_rgba.js b/redux/redux/rgba/field_rgba.js new file mode 100644 index 0000000..4dbc174 --- /dev/null +++ b/redux/redux/rgba/field_rgba.js @@ -0,0 +1,146 @@ +/* + Field Color (color) + */ + +/*global jQuery, document, redux_change, redux*/ + +(function ($) { + 'use strict'; + + redux.field_objects = redux.field_objects || {}; + redux.field_objects.rgba = redux.field_objects.rgba || {}; + + $(document).ready( + function () { + + } + ); + + redux.field_objects.rgba.init = function (selector) { + + if (!selector) { + selector = $(document).find(".redux-group-tab:visible").find('.redux-container-rgba:visible'); + } + + $(selector).each( + function () { + + var el = $(this); + var parent = el; + + if (!el.hasClass('redux-field-container')) { + parent = el.parents('.redux-field-container:first'); + } + if (parent.is(":hidden")) { // Skip hidden fields + return; + } + if (parent.hasClass('redux-field-init')) { + parent.removeClass('redux-field-init'); + } else { + return; + } + + el.find('.redux-rgba-init').wpColorPicker( + { + change: function (e, ui) { + $(this).val(ui.color.toString()); + redux_change($(this)); + el.find('#' + e.target.getAttribute('data-id') + '-transparency').removeAttr('checked'); + }, + clear: function (e, ui) { + $(this).val(''); + redux_change($(this).parent().find('.redux-rgba-init')); + } + } + ); + + el.find('.redux-color').on( + 'focus', function () { + $(this).data('oldcolor', $(this).val()); + } + ); + + el.find('.redux-color').on( + 'keyup', function () { + var value = $(this).val(); + var color = colorValidate(this); + var id = '#' + $(this).attr('id'); + + if (value === "transparent") { + $(this).parent().parent().find('.wp-color-result').css( + 'background-color', 'transparent' + ); + + el.find(id + '-transparency').attr('checked', 'checked'); + } else { + el.find(id + '-transparency').removeAttr('checked'); + + if (color && color !== $(this).val()) { + $(this).val(color); + } + } + } + ); + + // Replace and validate field on blur + el.find('.redux-rgba').on( + 'blur', function () { + var value = $(this).val(); + var id = '#' + $(this).attr('id'); + + if (value === "transparent") { + $(this).parent().parent().find('.wp-color-result').css( + 'background-color', 'transparent' + ); + + el.find(id + '-transparency').attr('checked', 'checked'); + } else { + if (colorValidate(this) === value) { + if (value.indexOf("#") !== 0) { + $(this).val($(this).data('oldcolor')); + } + } + + el.find(id + '-transparency').removeAttr('checked'); + } + } + ); + + // Store the old valid color on keydown + el.find('.redux-color').on( + 'keydown', function () { + $(this).data('oldkeypress', $(this).val()); + } + ); + + // When transparency checkbox is clicked + el.find('.color-transparency').on( + 'click', function () { + if ($(this).is(":checked")) { + el.find('.redux-saved-color').val($('#' + $(this).data('id')).val()); + el.find('#' + $(this).data('id')).val('transparent'); + el.find('#' + $(this).data('id')).parent().parent().find('.wp-color-result').css( + 'background-color', 'transparent' + ); + } else { + if (el.find('#' + $(this).data('id')).val() === 'transparent') { + var prevColor = $('.redux-saved-color').val(); + + if (prevColor === '') { + prevColor = $('#' + $(this).data('id')).data('default-color'); + } + + el.find('#' + $(this).data('id')).parent().parent().find('.wp-color-result').css( + 'background-color', prevColor + ); + + el.find('#' + $(this).data('id')).val(prevColor); + } + } + redux_change($(this)); + } + ); + } + ); + }; +})(jQuery); \ No newline at end of file diff --git a/redux/redux/rgba/field_rgba.min.js b/redux/redux/rgba/field_rgba.min.js new file mode 100644 index 0000000..01b9314 --- /dev/null +++ b/redux/redux/rgba/field_rgba.min.js @@ -0,0 +1,2 @@ + +(function(a){redux.field_objects=redux.field_objects||{};redux.field_objects.rgba=redux.field_objects.rgba||{};a(document).ready(function(){});redux.field_objects.rgba.init=function(b){if(!b){b=a(document).find(".redux-group-tab:visible").find(".redux-container-rgba:visible")}a(b).each(function(){var d=a(this);var c=d;if(!d.hasClass("redux-field-container")){c=d.parents(".redux-field-container:first")}if(c.is(":hidden")){return}if(c.hasClass("redux-field-init")){c.removeClass("redux-field-init")}else{return}d.find(".redux-rgba-init").find(".iris-strip").addClass("test");d.find(".redux-rgba-init").wpColorPicker({change:function(g,f){a(this).val(f.color.toString());redux_change(a(this));d.find("#"+g.target.getAttribute("data-id")+"-transparency").removeAttr("checked")},clear:function(g,f){a(this).val("");redux_change(a(this).parent().find(".redux-rgba-init"))}});d.find(".redux-color").on("focus",function(){a(this).data("oldcolor",a(this).val())});d.find(".redux-color").on("keyup",function(){var f=a(this).val();var e=colorValidate(this);var g="#"+a(this).attr("id");if(f==="transparent"){a(this).parent().parent().find(".wp-color-result").css("background-color","transparent");d.find(g+"-transparency").attr("checked","checked")}else{d.find(g+"-transparency").removeAttr("checked");if(e&&e!==a(this).val()){a(this).val(e)}}});d.find(".redux-rgba").on("blur",function(){var e=a(this).val();var f="#"+a(this).attr("id");if(e==="transparent"){a(this).parent().parent().find(".wp-color-result").css("background-color","transparent");d.find(f+"-transparency").attr("checked","checked")}else{if(colorValidate(this)===e){if(e.indexOf("#")!==0){a(this).val(a(this).data("oldcolor"))}}d.find(f+"-transparency").removeAttr("checked")}});d.find(".redux-color").on("keydown",function(){a(this).data("oldkeypress",a(this).val())});d.find(".color-transparency").on("click",function(){if(a(this).is(":checked")){d.find(".redux-saved-color").val(a("#"+a(this).data("id")).val());d.find("#"+a(this).data("id")).val("transparent");d.find("#"+a(this).data("id")).parent().parent().find(".wp-color-result").css("background-color","transparent")}else{if(d.find("#"+a(this).data("id")).val()==="transparent"){var e=a(".redux-saved-color").val();if(e===""){e=a("#"+a(this).data("id")).data("default-color")}d.find("#"+a(this).data("id")).parent().parent().find(".wp-color-result").css("background-color",e);d.find("#"+a(this).data("id")).val(e)}}redux_change(a(this))})})}})(jQuery); \ No newline at end of file diff --git a/redux/redux/rgba/field_rgba.php b/redux/redux/rgba/field_rgba.php new file mode 100644 index 0000000..f512191 --- /dev/null +++ b/redux/redux/rgba/field_rgba.php @@ -0,0 +1,103 @@ +parent = $parent; + $this->field = $field; + $this->value = $value; + + if (isset($this->value['color']) && isset($this->value['alpha'])) { + $this->value = Redux_Helpers::hex2rgba($this->value['color'], $this->value['alpha']); + } + + if (isset($this->field['default']['color']) && isset($this->field['default']['alpha'])) { + $this->field['default'] = Redux_Helpers::hex2rgba($this->field['default']['color'], $this->field['default']['alpha']); + } + + if (empty(self::$_extension_dir)) { + $this->_extension_dir = trailingslashit(str_replace('\\', '/', dirname(__FILE__))); + $this->_extension_url = plugin_dir_url( __FILE__ ); + } + } + + public function render() { + + echo ''; + echo ''; + + if (!isset($this->field['transparent']) || $this->field['transparent'] !== false) { + + $tChecked = ""; + + if ($this->value == "transparent") { + $tChecked = ' checked="checked"'; + } + + echo ''; + } + } + + public function enqueue() { + + wp_enqueue_style('wp-color-picker'); + + wp_register_script('wp-color-picker-alpha', $this->_extension_url . 'wp-color-picker-alpha' . Redux_Functions::isMin() . '.js', array('jquery', 'wp-color-picker')); + + wp_localize_script('wp-color-picker-alpha', 'et_pb_color_picker_strings', array( + 'legacy_pick' => esc_html__('Select', 'quadmenu'), + 'legacy_current' => esc_html__('Color', 'quadmenu'), + )); + + wp_localize_script('wp-color-picker-alpha', 'wpColorPickerL10n', array( + 'clear' => __('Clear', 'quadmenu'), + 'clearAriaLabel' => __('Clear color', 'quadmenu'), + 'defaultString' => __('Default', 'quadmenu'), + 'defaultAriaLabel' => __('Select default color', 'quadmenu'), + 'pick' => __('Select Color', 'quadmenu'), + 'defaultLabel' => __('Color value', 'quadmenu'), + )); + + wp_enqueue_script( + 'redux-field-rgba-js', $this->_extension_url . 'field_rgba' . Redux_Functions::isMin() . '.js', array('jquery', 'wp-color-picker-alpha', 'redux-js'), time(), true + ); + } + + public function output() { + $style = ''; + + if (!empty($this->value)) { + $mode = ( isset($this->field['mode']) && !empty($this->field['mode']) ? $this->field['mode'] : 'color' ); + + $style .= $mode . ':' . $this->value . ';'; + + if (!empty($this->field['output']) && is_array($this->field['output'])) { + $css = Redux_Functions::parseCSS($this->field['output'], $style, $this->value); + $this->parent->outputCSS .= $css; + } + + if (!empty($this->field['compiler']) && is_array($this->field['compiler'])) { + $css = Redux_Functions::parseCSS($this->field['compiler'], $style, $this->value); + $this->parent->compilerCSS .= $css; + } + } + } + + } + +} + \ No newline at end of file diff --git a/redux/redux/rgba/wp-color-picker-alpha.js b/redux/redux/rgba/wp-color-picker-alpha.js new file mode 100644 index 0000000..454a3eb --- /dev/null +++ b/redux/redux/rgba/wp-color-picker-alpha.js @@ -0,0 +1,483 @@ +/** + * wp-color-picker-alpha + * + * Version 1.0 + * Copyright (c) 2017 Elegant Themes. + * Licensed under the GPLv2 license. + * + * Overwrite Automattic Iris for enabled Alpha Channel in wpColorPicker + * Only run in input and is defined data alpha in true + * Add custom colorpicker UI + * + * This is modified version made by Elegant Themes based on the work covered by + * the following copyright: + * + * wp-color-picker-alpha Version: 1.1 + * https://github.com/23r9i0/wp-color-picker-alpha + * Copyright (c) 2015 Sergio P.A. (23r9i0). + * Licensed under the GPLv2 license. + */ +(function ($) { + // Variable for some backgrounds + var image = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAAHnlligAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHJJREFUeNpi+P///4EDBxiAGMgCCCAGFB5AADGCRBgYDh48CCRZIJS9vT2QBAggFBkmBiSAogxFBiCAoHogAKIKAlBUYTELAiAmEtABEECk20G6BOmuIl0CIMBQ/IEMkO0myiSSraaaBhZcbkUOs0HuBwDplz5uFJ3Z4gAAAABJRU5ErkJggg=='; + // html stuff for wpColorPicker copy of the original color-picker.js + var _before = '', + _after = '
    ', + _wrap = '
    ', + _button = '', + _wrappingLabel = '', + _wrappingLabelText = '', + _close_button = '', d = '
    ', i = '
    ', j = '', b = "", c = '', h = ' \ No newline at end of file diff --git a/templates/layout/alert.php b/templates/layout/alert.php new file mode 100644 index 0000000..17e23ad --- /dev/null +++ b/templates/layout/alert.php @@ -0,0 +1,14 @@ + + diff --git a/templates/layout/collapse.php b/templates/layout/collapse.php new file mode 100644 index 0000000..ef0fac1 --- /dev/null +++ b/templates/layout/collapse.php @@ -0,0 +1,11 @@ + \ No newline at end of file diff --git a/templates/layout/embed.php b/templates/layout/embed.php new file mode 100644 index 0000000..691490c --- /dev/null +++ b/templates/layout/embed.php @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/templates/layout/inherit.php b/templates/layout/inherit.php new file mode 100644 index 0000000..9564168 --- /dev/null +++ b/templates/layout/inherit.php @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/templates/layout/offcanvas.php b/templates/layout/offcanvas.php new file mode 100644 index 0000000..c868515 --- /dev/null +++ b/templates/layout/offcanvas.php @@ -0,0 +1,12 @@ + \ No newline at end of file diff --git a/templates/layout/vertical.php b/templates/layout/vertical.php new file mode 100644 index 0000000..416e947 --- /dev/null +++ b/templates/layout/vertical.php @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/templates/logo.php b/templates/logo.php new file mode 100644 index 0000000..c1e0011 --- /dev/null +++ b/templates/logo.php @@ -0,0 +1,3 @@ + + ', esc_url($url), esc_attr(get_bloginfo('name'))); ?> + \ No newline at end of file diff --git a/uninstall.php b/uninstall.php new file mode 100644 index 0000000..5f1dcb7 --- /dev/null +++ b/uninstall.php @@ -0,0 +1,5 @@ += 7.0. [#34192] + +## [1.1.14] - 2023-09-19 + +- Minor internal updates. + +## [1.1.13] - 2023-08-23 +### Changed +- Updated package dependencies. [#32605] + +## [1.1.12] - 2023-07-24 +### Fixed +- Allow `beta-plugin-slug` for cases when a `wp-plugin-slug` doesn't exist yet but is planned to. [#31551] + +## [1.1.11] - 2023-05-22 +### Added +- Set keywords in `composer.json`. [#30756] + +## [1.1.10] - 2023-02-20 +### Changed +- Minor internal updates. + +## [1.1.9] - 2023-01-16 +### Fixed +- Ensure `jetpack_vendor/` exists before trying to write `jetpack_vendor/i18n-map.php`. [#28369] + +## [1.1.8] - 2022-12-19 +### Changed +- Updated package dependencies. [#27963] + +## [1.1.7] - 2022-12-02 +### Changed +- Updated package dependencies. [#27688] + +## [1.1.6] - 2022-11-22 +### Changed +- Updated package dependencies. [#27043] + +## [1.1.5] - 2022-10-25 +### Changed +- Sort data in generated `i18n-map.php` file to avoid spurious diffs. [#26929] + +## [1.1.4] - 2022-07-26 +### Changed +- Updated package dependencies. [#25158] + +## [1.1.3] - 2022-06-21 +### Changed +- Renaming master to trunk. + +## [1.1.2] - 2022-04-26 +### Changed +- Updated package dependencies. + +## [1.1.1] - 2022-04-12 +### Added +- Set `.extra.plugin-modifies-install-path` in composer.json for Composer 2.2.9+. + +## [1.1.0] - 2022-01-25 +### Added +- Include package path prefixes in `i18n-map.php` so Assets can map them when lazy-loading. + +## [1.0.2] - 2022-01-13 +### Fixed +- Composer's `getVersion()` likes to return 4-component versions, while semver wants only 3 components. Strip any extra components instead of considering that invalid. + +## [1.0.1] - 2022-01-04 +### Added +- Document use of jetpack-assets, jetpack-composer-plugin, and i18n-loader-webpack-plugin together. + +### Changed +- Switch to pcov for code coverage. +- Updated package dependencies. + +## [1.0.0] - 2021-12-22 +### Fixed +- Fix deletion of the i18n-map.php if the plugin isn't configured correctly. +- Fix handling of dev versions in i18n-map.php. + +## [0.2.0] - 2021-12-20 +### Added +- Generate an i18n mapping file for the installed libraries. + +## 0.1.0 - 2021-12-14 +### Added +- Added the Jetpack Installer package. + +[2.0.2]: https://github.com/Automattic/jetpack-composer-plugin/compare/v2.0.1...v2.0.2 +[2.0.1]: https://github.com/Automattic/jetpack-composer-plugin/compare/v2.0.0...v2.0.1 +[2.0.0]: https://github.com/Automattic/jetpack-composer-plugin/compare/v1.1.14...v2.0.0 +[1.1.14]: https://github.com/Automattic/jetpack-composer-plugin/compare/v1.1.13...v1.1.14 +[1.1.13]: https://github.com/Automattic/jetpack-composer-plugin/compare/v1.1.12...v1.1.13 +[1.1.12]: https://github.com/Automattic/jetpack-composer-plugin/compare/v1.1.11...v1.1.12 +[1.1.11]: https://github.com/Automattic/jetpack-composer-plugin/compare/v1.1.10...v1.1.11 +[1.1.10]: https://github.com/Automattic/jetpack-composer-plugin/compare/v1.1.9...v1.1.10 +[1.1.9]: https://github.com/Automattic/jetpack-composer-plugin/compare/v1.1.8...v1.1.9 +[1.1.8]: https://github.com/Automattic/jetpack-composer-plugin/compare/v1.1.7...v1.1.8 +[1.1.7]: https://github.com/Automattic/jetpack-composer-plugin/compare/v1.1.6...v1.1.7 +[1.1.6]: https://github.com/Automattic/jetpack-composer-plugin/compare/v1.1.5...v1.1.6 +[1.1.5]: https://github.com/Automattic/jetpack-composer-plugin/compare/v1.1.4...v1.1.5 +[1.1.4]: https://github.com/Automattic/jetpack-composer-plugin/compare/v1.1.3...v1.1.4 +[1.1.3]: https://github.com/Automattic/jetpack-composer-plugin/compare/v1.1.2...v1.1.3 +[1.1.2]: https://github.com/Automattic/jetpack-composer-plugin/compare/v1.1.1...v1.1.2 +[1.1.1]: https://github.com/Automattic/jetpack-composer-plugin/compare/v1.1.0...v1.1.1 +[1.1.0]: https://github.com/Automattic/jetpack-composer-plugin/compare/v1.0.2...v1.1.0 +[1.0.2]: https://github.com/Automattic/jetpack-composer-plugin/compare/v1.0.1...v1.0.2 +[1.0.1]: https://github.com/Automattic/jetpack-composer-plugin/compare/v1.0.0...v1.0.1 +[1.0.0]: https://github.com/Automattic/jetpack-composer-plugin/compare/v0.2.0...v1.0.0 +[0.2.0]: https://github.com/Automattic/jetpack-composer-plugin/compare/v0.1.0...v0.2.0 diff --git a/vendor/automattic/jetpack-composer-plugin/LICENSE.txt b/vendor/automattic/jetpack-composer-plugin/LICENSE.txt new file mode 100644 index 0000000..e82774c --- /dev/null +++ b/vendor/automattic/jetpack-composer-plugin/LICENSE.txt @@ -0,0 +1,357 @@ +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + +=================================== + + +GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +Everyone is permitted to copy and distribute verbatim copies +of this license document, but changing it is not allowed. + + Preamble + +The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + +To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + +For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + +We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + +Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + +Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and +modification follow. + +GNU GENERAL PUBLIC LICENSE +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + +a) You must cause the modified files to carry prominent notices +stating that you changed the files and the date of any change. + +b) You must cause any work that you distribute or publish, that in +whole or in part contains or is derived from the Program or any +part thereof, to be licensed as a whole at no charge to all third +parties under the terms of this License. + +c) If the modified program normally reads commands interactively +when run, you must cause it, when started running for such +interactive use in the most ordinary way, to print or display an +announcement including an appropriate copyright notice and a +notice that there is no warranty (or else, saying that you provide +a warranty) and that users may redistribute the program under +these conditions, and telling the user how to view a copy of this +License. (Exception: if the Program itself is interactive but +does not normally print such an announcement, your work based on +the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + +3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + +a) Accompany it with the complete corresponding machine-readable +source code, which must be distributed under the terms of Sections +1 and 2 above on a medium customarily used for software interchange; or, + +b) Accompany it with a written offer, valid for at least three +years, to give any third party, for a charge no more than your +cost of physically performing source distribution, a complete +machine-readable copy of the corresponding source code, to be +distributed under the terms of Sections 1 and 2 above on a medium +customarily used for software interchange; or, + +c) Accompany it with the information you received as to the offer +to distribute corresponding source code. (This alternative is +allowed only for noncommercial distribution and only if you +received the program in object code or executable form with such +an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + +5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + +9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + +10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + +Copyright (C) + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along +with this program; if not, write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + +Gnomovision version 69, Copyright (C) year name of author +Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. +This is free software, and you are welcome to redistribute it +under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + +Yoyodyne, Inc., hereby disclaims all copyright interest in the program +`Gnomovision' (which makes passes at compilers) written by James Hacker. + +, 1 April 1989 +Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/vendor/automattic/jetpack-composer-plugin/README.md b/vendor/automattic/jetpack-composer-plugin/README.md new file mode 100644 index 0000000..f332a1d --- /dev/null +++ b/vendor/automattic/jetpack-composer-plugin/README.md @@ -0,0 +1,46 @@ +# composer-plugin + +This is a custom installer plugin for Composer to help with WordPress translation of Composer libraries intended for use as shared code in plugins and themes. + +When this plugin is installed, libraries with `type` set to `jetpack-library` will be installed into `jetpack_vendor/` instead of the usual `vendor/`. +Also translation text domain information will be collected from such libraries and written to `jetpack_vendor/i18n-map.php`. + +## Use in a WordPress plugin or theme + +This plugin needs to be put into the `require` section of your `composer.json` file in order to be used. + +```json + "require": { + "automattic/jetpack-composer-plugin": "*" + }, +``` + +You'll also want to set `extra.wp-plugin-slug` or `extra.wp-theme-slug` to the WordPress.org slug, which is also the textdomain for your plugin or theme's translations. + +```json + "extra": { + "wp-plugin-slug": "my-plugin" + }, +``` + +Finally, for the libraries' translations to work, you'll also want to require [automattic/jetpack-assets](https://packagist.org/packages/automattic/jetpack-assets) +and include something like the following in your initialization code just after you load the autoloader: +```php +\Automattic\Jetpack\Assets::alias_textdomains_from_file( __DIR__ . '/jetpack_vendor/i18n-map.php' ); +``` + +## Use by a library + +A library that wants to be used in WordPress plugins or themes needs to set the `type` in `composer.json` to `jetpack-library`. The library package _should not_ itself include a dependency on automattic/jetpack-composer-plugin, although it may [suggest](https://getcomposer.org/doc/04-schema.md#suggest) it. + +All calls to `__()`, `_x()`, and other WordPress i18n functions should then use a textdomain unique to the library. This textdomain also needs to be declared in `composer.json` as `extra.textdomain`: +```json + "extra": { + "textdomain": "my-library" + }, +``` + +## License + +composer-plugin is licensed under [GNU General Public License v2 (or later)](./LICENSE.txt) + diff --git a/vendor/automattic/jetpack-composer-plugin/SECURITY.md b/vendor/automattic/jetpack-composer-plugin/SECURITY.md new file mode 100644 index 0000000..98f48dd --- /dev/null +++ b/vendor/automattic/jetpack-composer-plugin/SECURITY.md @@ -0,0 +1,47 @@ +# Security Policy + +Full details of the Automattic Security Policy can be found on [automattic.com](https://automattic.com/security/). + +## Supported Versions + +Generally, only the latest version of Jetpack and its associated plugins have continued support. If a critical vulnerability is found in the current version of a plugin, we may opt to backport any patches to previous versions. + +## Reporting a Vulnerability + +Our HackerOne program covers the below plugin software, as well as a variety of related projects and infrastructure: + +* [Jetpack](https://jetpack.com/) +* Jetpack Backup +* Jetpack Boost +* Jetpack CRM +* Jetpack Protect +* Jetpack Search +* Jetpack Social +* Jetpack VideoPress + +**For responsible disclosure of security issues and to be eligible for our bug bounty program, please submit your report via the [HackerOne](https://hackerone.com/automattic) portal.** + +Our most critical targets are: + +* Jetpack and the Jetpack composer packages (all within this repo) +* Jetpack.com -- the primary marketing site. +* cloud.jetpack.com -- a management site. +* wordpress.com -- the shared management site for both Jetpack and WordPress.com sites. + +For more targets, see the `In Scope` section on [HackerOne](https://hackerone.com/automattic). + +_Please note that the **WordPress software is a separate entity** from Automattic. Please report vulnerabilities for WordPress through [the WordPress Foundation's HackerOne page](https://hackerone.com/wordpress)._ + +## Guidelines + +We're committed to working with security researchers to resolve the vulnerabilities they discover. You can help us by following these guidelines: + +* Follow [HackerOne's disclosure guidelines](https://www.hackerone.com/disclosure-guidelines). +* Pen-testing Production: + * Please **setup a local environment** instead whenever possible. Most of our code is open source (see above). + * If that's not possible, **limit any data access/modification** to the bare minimum necessary to reproduce a PoC. + * **_Don't_ automate form submissions!** That's very annoying for us, because it adds extra work for the volunteers who manage those systems, and reduces the signal/noise ratio in our communication channels. + * To be eligible for a bounty, all of these guidelines must be followed. +* Be Patient - Give us a reasonable time to correct the issue before you disclose the vulnerability. + +We also expect you to comply with all applicable laws. You're responsible to pay any taxes associated with your bounties. diff --git a/vendor/automattic/jetpack-composer-plugin/src/class-manager.php b/vendor/automattic/jetpack-composer-plugin/src/class-manager.php new file mode 100644 index 0000000..7577edb --- /dev/null +++ b/vendor/automattic/jetpack-composer-plugin/src/class-manager.php @@ -0,0 +1,41 @@ +getPrettyName(); + } + + /** + * Declares the supported package type by returning true whenever it meets a package + * that declares itself as a Jetpack library. + * + * @param string $package_type a package type string. + * @return boolean whether the package is supported. + * @phan-suppress PhanParamSignatureRealMismatchHasNoParamType -- contravariant params are ok, and needed to continue to support Composer <2.3. + */ + public function supports( $package_type ) { + return 'jetpack-library' === $package_type; + } +} diff --git a/vendor/automattic/jetpack-composer-plugin/src/class-plugin.php b/vendor/automattic/jetpack-composer-plugin/src/class-plugin.php new file mode 100644 index 0000000..317130e --- /dev/null +++ b/vendor/automattic/jetpack-composer-plugin/src/class-plugin.php @@ -0,0 +1,154 @@ +installer = new Manager( $io, $composer ); + $composer->getInstallationManager()->addInstaller( $this->installer ); + } + + /** + * Deactivates the installer plugin. + * + * @param Composer $composer the Composer global instance. + * @param IOInterface $io the IO interface global instance. + */ + public function deactivate( Composer $composer, IOInterface $io ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable + $composer->getInstallationManager()->removeInstaller( $this->installer ); + } + + /** + * Uninstalls the installer plugin. + * + * @param Composer $composer the Composer global instance. + * @param IOInterface $io the IO interface global instance. + */ + public function uninstall( Composer $composer, IOInterface $io ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable + } + + /** + * Tell composer to listen for events and do something with them. + * + * @return array List of subscribed events. + */ + public static function getSubscribedEvents() { + return array( + ScriptEvents::POST_INSTALL_CMD => 'generateManifest', + ScriptEvents::POST_UPDATE_CMD => 'generateManifest', + ); + } + + /** + * Generate the assets manifest. + * + * @param Event $event Script event object. + */ + public function generateManifest( Event $event ) { + $composer = $event->getComposer(); + $filesystem = new Filesystem(); + $io = $event->getIO(); + $io->info( 'Generating jetpack-library i18n map' ); + + $extra = $composer->getPackage()->getExtra(); + if ( isset( $extra['wp-plugin-slug'] ) ) { + $todomain = $extra['wp-plugin-slug']; + $totype = 'plugins'; + } elseif ( isset( $extra['wp-theme-slug'] ) ) { + $todomain = $extra['wp-theme-slug']; + $totype = 'themes'; + } elseif ( isset( $extra['beta-plugin-slug'] ) ) { + $todomain = $extra['beta-plugin-slug']; + $totype = 'plugins'; + } elseif ( isset( $extra['beta-theme-slug'] ) ) { + $todomain = $extra['beta-theme-slug']; + $totype = 'themes'; + } else { + $io->warning( 'Skipping jetpack-library i18n map generation, .extra.wp-plugin-slug / .extra.wp-theme-slug is not set in composer.json' ); + $filesystem->remove( 'jetpack_vendor/i18n-map.php' ); + return; + } + + $data = array( + 'domain' => $todomain, + 'type' => $totype, + 'packages' => array(), + ); + foreach ( $composer->getRepositoryManager()->getLocalRepository()->getCanonicalPackages() as $package ) { + if ( $package->getType() !== 'jetpack-library' ) { + continue; + } + + $ver = $package->getVersion(); + if ( isset( $extra['branch-alias'][ $ver ] ) ) { + $ver = $extra['branch-alias'][ $ver ]; + } + + // Composer's `getVersion()` seems to like to return a 4-component version, while semver wants only 3 components. Strip any extra components. + $ver = preg_replace( '/^(\d+\.\d+\.\d+)(?:\.\d+)+/', '$1', $ver ); + + if ( ! preg_match( '/^\d+\.\d+\.\d+(?:-[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*)?(?:\+[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*)?$/', $ver ) ) { + // Invalid version, skip it. + $ver = '0.0.0'; + } + + $extra = $package->getExtra(); + if ( empty( $extra['textdomain'] ) ) { + $io->info( " {$package->getName()} ($ver): no textdomain set" ); + } else { + $data['packages'][ $extra['textdomain'] ] = array( + 'path' => 'jetpack_vendor/' . $package->getPrettyName(), + 'ver' => $ver, + ); + $io->info( " {$package->getName()} ($ver): textdomain is {$extra['textdomain']}, path is jetpack_vendor/{$package->getPrettyName()}" ); + } + } + + ksort( $data['packages'] ); + + $code = " \n\s*array\(/', ' => array(', $code ); + + $filesystem->ensureDirectoryExists( 'jetpack_vendor' ); + $filesystem->filePutContentsIfModified( 'jetpack_vendor/i18n-map.php', $code ); + } +} diff --git a/vendor/composer/ClassLoader.php b/vendor/composer/ClassLoader.php new file mode 100644 index 0000000..7824d8f --- /dev/null +++ b/vendor/composer/ClassLoader.php @@ -0,0 +1,579 @@ + + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Autoload; + +/** + * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. + * + * $loader = new \Composer\Autoload\ClassLoader(); + * + * // register classes with namespaces + * $loader->add('Symfony\Component', __DIR__.'/component'); + * $loader->add('Symfony', __DIR__.'/framework'); + * + * // activate the autoloader + * $loader->register(); + * + * // to enable searching the include path (eg. for PEAR packages) + * $loader->setUseIncludePath(true); + * + * In this example, if you try to use a class in the Symfony\Component + * namespace or one of its children (Symfony\Component\Console for instance), + * the autoloader will first look for the class under the component/ + * directory, and it will then fallback to the framework/ directory if not + * found before giving up. + * + * This class is loosely based on the Symfony UniversalClassLoader. + * + * @author Fabien Potencier + * @author Jordi Boggiano + * @see https://www.php-fig.org/psr/psr-0/ + * @see https://www.php-fig.org/psr/psr-4/ + */ +class ClassLoader +{ + /** @var \Closure(string):void */ + private static $includeFile; + + /** @var string|null */ + private $vendorDir; + + // PSR-4 + /** + * @var array> + */ + private $prefixLengthsPsr4 = array(); + /** + * @var array> + */ + private $prefixDirsPsr4 = array(); + /** + * @var list + */ + private $fallbackDirsPsr4 = array(); + + // PSR-0 + /** + * List of PSR-0 prefixes + * + * Structured as array('F (first letter)' => array('Foo\Bar (full prefix)' => array('path', 'path2'))) + * + * @var array>> + */ + private $prefixesPsr0 = array(); + /** + * @var list + */ + private $fallbackDirsPsr0 = array(); + + /** @var bool */ + private $useIncludePath = false; + + /** + * @var array + */ + private $classMap = array(); + + /** @var bool */ + private $classMapAuthoritative = false; + + /** + * @var array + */ + private $missingClasses = array(); + + /** @var string|null */ + private $apcuPrefix; + + /** + * @var array + */ + private static $registeredLoaders = array(); + + /** + * @param string|null $vendorDir + */ + public function __construct($vendorDir = null) + { + $this->vendorDir = $vendorDir; + self::initializeIncludeClosure(); + } + + /** + * @return array> + */ + public function getPrefixes() + { + if (!empty($this->prefixesPsr0)) { + return call_user_func_array('array_merge', array_values($this->prefixesPsr0)); + } + + return array(); + } + + /** + * @return array> + */ + public function getPrefixesPsr4() + { + return $this->prefixDirsPsr4; + } + + /** + * @return list + */ + public function getFallbackDirs() + { + return $this->fallbackDirsPsr0; + } + + /** + * @return list + */ + public function getFallbackDirsPsr4() + { + return $this->fallbackDirsPsr4; + } + + /** + * @return array Array of classname => path + */ + public function getClassMap() + { + return $this->classMap; + } + + /** + * @param array $classMap Class to filename map + * + * @return void + */ + public function addClassMap(array $classMap) + { + if ($this->classMap) { + $this->classMap = array_merge($this->classMap, $classMap); + } else { + $this->classMap = $classMap; + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, either + * appending or prepending to the ones previously set for this prefix. + * + * @param string $prefix The prefix + * @param list|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories + * + * @return void + */ + public function add($prefix, $paths, $prepend = false) + { + $paths = (array) $paths; + if (!$prefix) { + if ($prepend) { + $this->fallbackDirsPsr0 = array_merge( + $paths, + $this->fallbackDirsPsr0 + ); + } else { + $this->fallbackDirsPsr0 = array_merge( + $this->fallbackDirsPsr0, + $paths + ); + } + + return; + } + + $first = $prefix[0]; + if (!isset($this->prefixesPsr0[$first][$prefix])) { + $this->prefixesPsr0[$first][$prefix] = $paths; + + return; + } + if ($prepend) { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $paths, + $this->prefixesPsr0[$first][$prefix] + ); + } else { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $this->prefixesPsr0[$first][$prefix], + $paths + ); + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, either + * appending or prepending to the ones previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param list|string $paths The PSR-4 base directories + * @param bool $prepend Whether to prepend the directories + * + * @throws \InvalidArgumentException + * + * @return void + */ + public function addPsr4($prefix, $paths, $prepend = false) + { + $paths = (array) $paths; + if (!$prefix) { + // Register directories for the root namespace. + if ($prepend) { + $this->fallbackDirsPsr4 = array_merge( + $paths, + $this->fallbackDirsPsr4 + ); + } else { + $this->fallbackDirsPsr4 = array_merge( + $this->fallbackDirsPsr4, + $paths + ); + } + } elseif (!isset($this->prefixDirsPsr4[$prefix])) { + // Register directories for a new namespace. + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = $paths; + } elseif ($prepend) { + // Prepend directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $paths, + $this->prefixDirsPsr4[$prefix] + ); + } else { + // Append directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $this->prefixDirsPsr4[$prefix], + $paths + ); + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, + * replacing any others previously set for this prefix. + * + * @param string $prefix The prefix + * @param list|string $paths The PSR-0 base directories + * + * @return void + */ + public function set($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr0 = (array) $paths; + } else { + $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, + * replacing any others previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param list|string $paths The PSR-4 base directories + * + * @throws \InvalidArgumentException + * + * @return void + */ + public function setPsr4($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr4 = (array) $paths; + } else { + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = (array) $paths; + } + } + + /** + * Turns on searching the include path for class files. + * + * @param bool $useIncludePath + * + * @return void + */ + public function setUseIncludePath($useIncludePath) + { + $this->useIncludePath = $useIncludePath; + } + + /** + * Can be used to check if the autoloader uses the include path to check + * for classes. + * + * @return bool + */ + public function getUseIncludePath() + { + return $this->useIncludePath; + } + + /** + * Turns off searching the prefix and fallback directories for classes + * that have not been registered with the class map. + * + * @param bool $classMapAuthoritative + * + * @return void + */ + public function setClassMapAuthoritative($classMapAuthoritative) + { + $this->classMapAuthoritative = $classMapAuthoritative; + } + + /** + * Should class lookup fail if not found in the current class map? + * + * @return bool + */ + public function isClassMapAuthoritative() + { + return $this->classMapAuthoritative; + } + + /** + * APCu prefix to use to cache found/not-found classes, if the extension is enabled. + * + * @param string|null $apcuPrefix + * + * @return void + */ + public function setApcuPrefix($apcuPrefix) + { + $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null; + } + + /** + * The APCu prefix in use, or null if APCu caching is not enabled. + * + * @return string|null + */ + public function getApcuPrefix() + { + return $this->apcuPrefix; + } + + /** + * Registers this instance as an autoloader. + * + * @param bool $prepend Whether to prepend the autoloader or not + * + * @return void + */ + public function register($prepend = false) + { + spl_autoload_register(array($this, 'loadClass'), true, $prepend); + + if (null === $this->vendorDir) { + return; + } + + if ($prepend) { + self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders; + } else { + unset(self::$registeredLoaders[$this->vendorDir]); + self::$registeredLoaders[$this->vendorDir] = $this; + } + } + + /** + * Unregisters this instance as an autoloader. + * + * @return void + */ + public function unregister() + { + spl_autoload_unregister(array($this, 'loadClass')); + + if (null !== $this->vendorDir) { + unset(self::$registeredLoaders[$this->vendorDir]); + } + } + + /** + * Loads the given class or interface. + * + * @param string $class The name of the class + * @return true|null True if loaded, null otherwise + */ + public function loadClass($class) + { + if ($file = $this->findFile($class)) { + $includeFile = self::$includeFile; + $includeFile($file); + + return true; + } + + return null; + } + + /** + * Finds the path to the file where the class is defined. + * + * @param string $class The name of the class + * + * @return string|false The path if found, false otherwise + */ + public function findFile($class) + { + // class map lookup + if (isset($this->classMap[$class])) { + return $this->classMap[$class]; + } + if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { + return false; + } + if (null !== $this->apcuPrefix) { + $file = apcu_fetch($this->apcuPrefix.$class, $hit); + if ($hit) { + return $file; + } + } + + $file = $this->findFileWithExtension($class, '.php'); + + // Search for Hack files if we are running on HHVM + if (false === $file && defined('HHVM_VERSION')) { + $file = $this->findFileWithExtension($class, '.hh'); + } + + if (null !== $this->apcuPrefix) { + apcu_add($this->apcuPrefix.$class, $file); + } + + if (false === $file) { + // Remember that this class does not exist. + $this->missingClasses[$class] = true; + } + + return $file; + } + + /** + * Returns the currently registered loaders keyed by their corresponding vendor directories. + * + * @return array + */ + public static function getRegisteredLoaders() + { + return self::$registeredLoaders; + } + + /** + * @param string $class + * @param string $ext + * @return string|false + */ + private function findFileWithExtension($class, $ext) + { + // PSR-4 lookup + $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; + + $first = $class[0]; + if (isset($this->prefixLengthsPsr4[$first])) { + $subPath = $class; + while (false !== $lastPos = strrpos($subPath, '\\')) { + $subPath = substr($subPath, 0, $lastPos); + $search = $subPath . '\\'; + if (isset($this->prefixDirsPsr4[$search])) { + $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1); + foreach ($this->prefixDirsPsr4[$search] as $dir) { + if (file_exists($file = $dir . $pathEnd)) { + return $file; + } + } + } + } + } + + // PSR-4 fallback dirs + foreach ($this->fallbackDirsPsr4 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { + return $file; + } + } + + // PSR-0 lookup + if (false !== $pos = strrpos($class, '\\')) { + // namespaced class name + $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) + . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); + } else { + // PEAR-like class name + $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; + } + + if (isset($this->prefixesPsr0[$first])) { + foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { + if (0 === strpos($class, $prefix)) { + foreach ($dirs as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + } + } + } + + // PSR-0 fallback dirs + foreach ($this->fallbackDirsPsr0 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + + // PSR-0 include paths. + if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { + return $file; + } + + return false; + } + + /** + * @return void + */ + private static function initializeIncludeClosure() + { + if (self::$includeFile !== null) { + return; + } + + /** + * Scope isolated include. + * + * Prevents access to $this/self from included files. + * + * @param string $file + * @return void + */ + self::$includeFile = \Closure::bind(static function($file) { + include $file; + }, null, null); + } +} diff --git a/vendor/composer/InstalledVersions.php b/vendor/composer/InstalledVersions.php new file mode 100644 index 0000000..51e734a --- /dev/null +++ b/vendor/composer/InstalledVersions.php @@ -0,0 +1,359 @@ + + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer; + +use Composer\Autoload\ClassLoader; +use Composer\Semver\VersionParser; + +/** + * This class is copied in every Composer installed project and available to all + * + * See also https://getcomposer.org/doc/07-runtime.md#installed-versions + * + * To require its presence, you can require `composer-runtime-api ^2.0` + * + * @final + */ +class InstalledVersions +{ + /** + * @var mixed[]|null + * @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array}|array{}|null + */ + private static $installed; + + /** + * @var bool|null + */ + private static $canGetVendors; + + /** + * @var array[] + * @psalm-var array}> + */ + private static $installedByVendor = array(); + + /** + * Returns a list of all package names which are present, either by being installed, replaced or provided + * + * @return string[] + * @psalm-return list + */ + public static function getInstalledPackages() + { + $packages = array(); + foreach (self::getInstalled() as $installed) { + $packages[] = array_keys($installed['versions']); + } + + if (1 === \count($packages)) { + return $packages[0]; + } + + return array_keys(array_flip(\call_user_func_array('array_merge', $packages))); + } + + /** + * Returns a list of all package names with a specific type e.g. 'library' + * + * @param string $type + * @return string[] + * @psalm-return list + */ + public static function getInstalledPackagesByType($type) + { + $packagesByType = array(); + + foreach (self::getInstalled() as $installed) { + foreach ($installed['versions'] as $name => $package) { + if (isset($package['type']) && $package['type'] === $type) { + $packagesByType[] = $name; + } + } + } + + return $packagesByType; + } + + /** + * Checks whether the given package is installed + * + * This also returns true if the package name is provided or replaced by another package + * + * @param string $packageName + * @param bool $includeDevRequirements + * @return bool + */ + public static function isInstalled($packageName, $includeDevRequirements = true) + { + foreach (self::getInstalled() as $installed) { + if (isset($installed['versions'][$packageName])) { + return $includeDevRequirements || !isset($installed['versions'][$packageName]['dev_requirement']) || $installed['versions'][$packageName]['dev_requirement'] === false; + } + } + + return false; + } + + /** + * Checks whether the given package satisfies a version constraint + * + * e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call: + * + * Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3') + * + * @param VersionParser $parser Install composer/semver to have access to this class and functionality + * @param string $packageName + * @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package + * @return bool + */ + public static function satisfies(VersionParser $parser, $packageName, $constraint) + { + $constraint = $parser->parseConstraints((string) $constraint); + $provided = $parser->parseConstraints(self::getVersionRanges($packageName)); + + return $provided->matches($constraint); + } + + /** + * Returns a version constraint representing all the range(s) which are installed for a given package + * + * It is easier to use this via isInstalled() with the $constraint argument if you need to check + * whether a given version of a package is installed, and not just whether it exists + * + * @param string $packageName + * @return string Version constraint usable with composer/semver + */ + public static function getVersionRanges($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + $ranges = array(); + if (isset($installed['versions'][$packageName]['pretty_version'])) { + $ranges[] = $installed['versions'][$packageName]['pretty_version']; + } + if (array_key_exists('aliases', $installed['versions'][$packageName])) { + $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']); + } + if (array_key_exists('replaced', $installed['versions'][$packageName])) { + $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']); + } + if (array_key_exists('provided', $installed['versions'][$packageName])) { + $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']); + } + + return implode(' || ', $ranges); + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present + */ + public static function getVersion($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + if (!isset($installed['versions'][$packageName]['version'])) { + return null; + } + + return $installed['versions'][$packageName]['version']; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present + */ + public static function getPrettyVersion($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + if (!isset($installed['versions'][$packageName]['pretty_version'])) { + return null; + } + + return $installed['versions'][$packageName]['pretty_version']; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference + */ + public static function getReference($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + if (!isset($installed['versions'][$packageName]['reference'])) { + return null; + } + + return $installed['versions'][$packageName]['reference']; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path. + */ + public static function getInstallPath($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @return array + * @psalm-return array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool} + */ + public static function getRootPackage() + { + $installed = self::getInstalled(); + + return $installed[0]['root']; + } + + /** + * Returns the raw installed.php data for custom implementations + * + * @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect. + * @return array[] + * @psalm-return array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} + */ + public static function getRawData() + { + @trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED); + + if (null === self::$installed) { + // only require the installed.php file if this file is loaded from its dumped location, + // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 + if (substr(__DIR__, -8, 1) !== 'C') { + self::$installed = include __DIR__ . '/installed.php'; + } else { + self::$installed = array(); + } + } + + return self::$installed; + } + + /** + * Returns the raw data of all installed.php which are currently loaded for custom implementations + * + * @return array[] + * @psalm-return list}> + */ + public static function getAllRawData() + { + return self::getInstalled(); + } + + /** + * Lets you reload the static array from another file + * + * This is only useful for complex integrations in which a project needs to use + * this class but then also needs to execute another project's autoloader in process, + * and wants to ensure both projects have access to their version of installed.php. + * + * A typical case would be PHPUnit, where it would need to make sure it reads all + * the data it needs from this class, then call reload() with + * `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure + * the project in which it runs can then also use this class safely, without + * interference between PHPUnit's dependencies and the project's dependencies. + * + * @param array[] $data A vendor/composer/installed.php data set + * @return void + * + * @psalm-param array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $data + */ + public static function reload($data) + { + self::$installed = $data; + self::$installedByVendor = array(); + } + + /** + * @return array[] + * @psalm-return list}> + */ + private static function getInstalled() + { + if (null === self::$canGetVendors) { + self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders'); + } + + $installed = array(); + + if (self::$canGetVendors) { + foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) { + if (isset(self::$installedByVendor[$vendorDir])) { + $installed[] = self::$installedByVendor[$vendorDir]; + } elseif (is_file($vendorDir.'/composer/installed.php')) { + /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $required */ + $required = require $vendorDir.'/composer/installed.php'; + $installed[] = self::$installedByVendor[$vendorDir] = $required; + if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) { + self::$installed = $installed[count($installed) - 1]; + } + } + } + } + + if (null === self::$installed) { + // only require the installed.php file if this file is loaded from its dumped location, + // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 + if (substr(__DIR__, -8, 1) !== 'C') { + /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $required */ + $required = require __DIR__ . '/installed.php'; + self::$installed = $required; + } else { + self::$installed = array(); + } + } + + if (self::$installed !== array()) { + $installed[] = self::$installed; + } + + return $installed; + } +} diff --git a/vendor/composer/LICENSE b/vendor/composer/LICENSE new file mode 100644 index 0000000..f27399a --- /dev/null +++ b/vendor/composer/LICENSE @@ -0,0 +1,21 @@ + +Copyright (c) Nils Adermann, Jordi Boggiano + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php new file mode 100644 index 0000000..7fcd8ca --- /dev/null +++ b/vendor/composer/autoload_classmap.php @@ -0,0 +1,75 @@ + $baseDir . '/jetpack_vendor/automattic/jetpack-assets/src/class-assets.php', + 'Automattic\\Jetpack\\Assets\\Semver' => $baseDir . '/jetpack_vendor/automattic/jetpack-assets/src/class-semver.php', + 'Automattic\\Jetpack\\Composer\\Manager' => $vendorDir . '/automattic/jetpack-composer-plugin/src/class-manager.php', + 'Automattic\\Jetpack\\Composer\\Plugin' => $vendorDir . '/automattic/jetpack-composer-plugin/src/class-plugin.php', + 'Automattic\\Jetpack\\Constants' => $baseDir . '/jetpack_vendor/automattic/jetpack-constants/src/class-constants.php', + 'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php', + 'ET_Builder_Module_QuadMenu' => $baseDir . '/lib/integrations/divi/modules/QuadMenu/QuadMenu.php', + 'FLQuadMenuModule' => $baseDir . '/lib/integrations/beaver/module.php', + 'QuadLayers\\QuadMenu\\Activation' => $baseDir . '/lib/class-activation.php', + 'QuadLayers\\QuadMenu\\Admin' => $baseDir . '/lib/class-admin.php', + 'QuadLayers\\QuadMenu\\Backend\\Ajax' => $baseDir . '/lib/backend/class-ajax.php', + 'QuadLayers\\QuadMenu\\Backend\\Settings' => $baseDir . '/lib/backend/class-settings.php', + 'QuadLayers\\QuadMenu\\Backend\\Walker\\Nav_Menu_Columns' => $baseDir . '/lib/backend/walker/class-nav-menu-columns.php', + 'QuadLayers\\QuadMenu\\Backend\\Walker\\Nav_Menu_Defaults' => $baseDir . '/lib/backend/walker/class-nav-menu-defaults.php', + 'QuadLayers\\QuadMenu\\Backend\\Walker\\Nav_Menu_Mega' => $baseDir . '/lib/backend/walker/class-nav-menu-mega.php', + 'QuadLayers\\QuadMenu\\Backend\\Walker\\Nav_Menu_Widgets' => $baseDir . '/lib/backend/walker/class-nav-menu-widgets.php', + 'QuadLayers\\QuadMenu\\Compiler' => $baseDir . '/lib/class-compiler.php', + 'QuadLayers\\QuadMenu\\Configuration' => $baseDir . '/lib/class-configuration.php', + 'QuadLayers\\QuadMenu\\Frontend\\Frontend' => $baseDir . '/lib/frontend/class-frontend.php', + 'QuadLayers\\QuadMenu\\Frontend\\Items' => $baseDir . '/lib/frontend/class-items.php', + 'QuadLayers\\QuadMenu\\Frontend\\Walker\\QuadMenu_Item' => $baseDir . '/lib/frontend/walker/class-quadmenu-item.php', + 'QuadLayers\\QuadMenu\\Frontend\\Walker\\QuadMenu_Item_Cart' => $baseDir . '/lib/frontend/walker/class-quadmenu-item-cart.php', + 'QuadLayers\\QuadMenu\\Frontend\\Walker\\QuadMenu_Item_Column' => $baseDir . '/lib/frontend/walker/class-quadmenu-item-column.php', + 'QuadLayers\\QuadMenu\\Frontend\\Walker\\QuadMenu_Item_Default' => $baseDir . '/lib/frontend/walker/class-quadmenu-item-default.php', + 'QuadLayers\\QuadMenu\\Frontend\\Walker\\QuadMenu_Item_Icon' => $baseDir . '/lib/frontend/walker/class-quadmenu-item-icon.php', + 'QuadLayers\\QuadMenu\\Frontend\\Walker\\QuadMenu_Item_Mega' => $baseDir . '/lib/frontend/walker/class-quadmenu-item-mega.php', + 'QuadLayers\\QuadMenu\\Frontend\\Walker\\QuadMenu_Item_Post_Type' => $baseDir . '/lib/frontend/walker/class-quadmenu-item-post-type.php', + 'QuadLayers\\QuadMenu\\Frontend\\Walker\\QuadMenu_Item_Search' => $baseDir . '/lib/frontend/walker/class-quadmenu-item-search.php', + 'QuadLayers\\QuadMenu\\Frontend\\Walker\\QuadMenu_Item_Widget' => $baseDir . '/lib/frontend/walker/class-quadmenu-item-widget.php', + 'QuadLayers\\QuadMenu\\Frontend\\Walker\\QuadMenu_Walker' => $baseDir . '/lib/frontend/walker/class-quadmenu-walker.php', + 'QuadLayers\\QuadMenu\\Icons' => $baseDir . '/lib/class-icons.php', + 'QuadLayers\\QuadMenu\\Integrations\\Beaver' => $baseDir . '/lib/integrations/class-beaver.php', + 'QuadLayers\\QuadMenu\\Integrations\\Beaver\\Module' => $baseDir . '/lib/integrations/beaver/class-module.php', + 'QuadLayers\\QuadMenu\\Integrations\\Divi' => $baseDir . '/lib/integrations/class-divi.php', + 'QuadLayers\\QuadMenu\\Integrations\\Divi\\Module' => $baseDir . '/lib/integrations/divi/class-module.php', + 'QuadLayers\\QuadMenu\\Integrations\\Elementor' => $baseDir . '/lib/integrations/class-elementor.php', + 'QuadLayers\\QuadMenu\\Integrations\\Elementor\\Module' => $baseDir . '/lib/integrations/elementor/class-module.php', + 'QuadLayers\\QuadMenu\\Integrations\\Polylang' => $baseDir . '/lib/integrations/class-polylang.php', + 'QuadLayers\\QuadMenu\\Integrations\\WooCommerce' => $baseDir . '/lib/integrations/class-woocommerce.php', + 'QuadLayers\\QuadMenu\\Locations' => $baseDir . '/lib/class-locations.php', + 'QuadLayers\\QuadMenu\\Options' => $baseDir . '/lib/class-options.php', + 'QuadLayers\\QuadMenu\\Panel' => $baseDir . '/lib/class-panel.php', + 'QuadLayers\\QuadMenu\\Panel\\Options' => $baseDir . '/lib/panel/class-options.php', + 'QuadLayers\\QuadMenu\\Panel\\Premium' => $baseDir . '/lib/panel/class-premium.php', + 'QuadLayers\\QuadMenu\\Panel\\System' => $baseDir . '/lib/panel/class-system.php', + 'QuadLayers\\QuadMenu\\Panel\\Welcome' => $baseDir . '/lib/panel/class-welcome.php', + 'QuadLayers\\QuadMenu\\Plugin' => $baseDir . '/lib/class-plugin.php', + 'QuadLayers\\QuadMenu\\Redux' => $baseDir . '/lib/class-redux.php', + 'QuadLayers\\QuadMenu\\Themes' => $baseDir . '/lib/class-themes.php', + 'QuadLayers\\QuadMenu\\Widget' => $baseDir . '/lib/class-widget.php', + 'QuadLayers\\WP_Dashboard_Widget_News\\Load' => $baseDir . '/jetpack_vendor/quadlayers/wp-dashboard-widget-news/src/Load.php', + 'QuadLayers\\WP_Notice_Plugin_Promote\\Load' => $baseDir . '/jetpack_vendor/quadlayers/wp-notice-plugin-promote/src/Load.php', + 'QuadLayers\\WP_Notice_Plugin_Promote\\PluginByFile' => $baseDir . '/jetpack_vendor/quadlayers/wp-notice-plugin-promote/src/PluginByFile.php', + 'QuadLayers\\WP_Notice_Plugin_Promote\\PluginBySlug' => $baseDir . '/jetpack_vendor/quadlayers/wp-notice-plugin-promote/src/PluginBySlug.php', + 'QuadLayers\\WP_Notice_Plugin_Promote\\PluginBySlugV2' => $baseDir . '/jetpack_vendor/quadlayers/wp-notice-plugin-promote/src/PluginBySlugV2.php', + 'QuadLayers\\WP_Notice_Plugin_Promote\\Traits\\PluginActions' => $baseDir . '/jetpack_vendor/quadlayers/wp-notice-plugin-promote/src/Traits/PluginActions.php', + 'QuadLayers\\WP_Notice_Plugin_Promote\\Traits\\PluginActionsLinks' => $baseDir . '/jetpack_vendor/quadlayers/wp-notice-plugin-promote/src/Traits/PluginActionsLinks.php', + 'QuadLayers\\WP_Notice_Plugin_Promote\\Traits\\PluginDataByFile' => $baseDir . '/jetpack_vendor/quadlayers/wp-notice-plugin-promote/src/Traits/PluginDataByFile.php', + 'QuadLayers\\WP_Notice_Plugin_Required\\Load' => $baseDir . '/jetpack_vendor/quadlayers/wp-notice-plugin-required/src/Load.php', + 'QuadLayers\\WP_Notice_Plugin_Required\\Plugin' => $baseDir . '/jetpack_vendor/quadlayers/wp-notice-plugin-required/src/Plugin.php', + 'QuadLayers\\WP_Plugin_Install_Tab\\Load' => $baseDir . '/jetpack_vendor/quadlayers/wp-plugin-install-tab/src/Load.php', + 'QuadLayers\\WP_Plugin_Suggestions\\Load' => $baseDir . '/jetpack_vendor/quadlayers/wp-plugin-suggestions/src/Load.php', + 'QuadLayers\\WP_Plugin_Suggestions\\Page' => $baseDir . '/jetpack_vendor/quadlayers/wp-plugin-suggestions/src/Page.php', + 'QuadLayers\\WP_Plugin_Suggestions\\Table' => $baseDir . '/jetpack_vendor/quadlayers/wp-plugin-suggestions/src/Table.php', + 'QuadLayers\\WP_Plugin_Table_Links\\Load' => $baseDir . '/jetpack_vendor/quadlayers/wp-plugin-table-links/src/Load.php', + 'WPBakeryShortCode_quadmenu_vc' => $baseDir . '/lib/integrations/class-vc.php', +); diff --git a/vendor/composer/autoload_files.php b/vendor/composer/autoload_files.php new file mode 100644 index 0000000..5d1c1f1 --- /dev/null +++ b/vendor/composer/autoload_files.php @@ -0,0 +1,10 @@ + $baseDir . '/jetpack_vendor/automattic/jetpack-assets/actions.php', +); diff --git a/vendor/composer/autoload_namespaces.php b/vendor/composer/autoload_namespaces.php new file mode 100644 index 0000000..15a2ff3 --- /dev/null +++ b/vendor/composer/autoload_namespaces.php @@ -0,0 +1,9 @@ + array($baseDir . '/jetpack_vendor/quadlayers/wp-plugin-table-links/src'), + 'QuadLayers\\WP_Plugin_Suggestions\\' => array($baseDir . '/jetpack_vendor/quadlayers/wp-plugin-suggestions/src'), + 'QuadLayers\\WP_Plugin_Install_Tab\\' => array($baseDir . '/jetpack_vendor/quadlayers/wp-plugin-install-tab/src'), + 'QuadLayers\\WP_Notice_Plugin_Required\\' => array($baseDir . '/jetpack_vendor/quadlayers/wp-notice-plugin-required/src'), + 'QuadLayers\\WP_Notice_Plugin_Promote\\' => array($baseDir . '/jetpack_vendor/quadlayers/wp-notice-plugin-promote/src'), + 'QuadLayers\\WP_Dashboard_Widget_News\\' => array($baseDir . '/jetpack_vendor/quadlayers/wp-dashboard-widget-news/src'), +); diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php new file mode 100644 index 0000000..0e8795e --- /dev/null +++ b/vendor/composer/autoload_real.php @@ -0,0 +1,50 @@ +register(true); + + $filesToLoad = \Composer\Autoload\ComposerStaticInitbc68521166e23e0e643a362225ccc0cc::$files; + $requireFile = \Closure::bind(static function ($fileIdentifier, $file) { + if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { + $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; + + require $file; + } + }, null, null); + foreach ($filesToLoad as $fileIdentifier => $file) { + $requireFile($fileIdentifier, $file); + } + + return $loader; + } +} diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php new file mode 100644 index 0000000..1458821 --- /dev/null +++ b/vendor/composer/autoload_static.php @@ -0,0 +1,130 @@ + __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-assets/actions.php', + ); + + public static $prefixLengthsPsr4 = array ( + 'Q' => + array ( + 'QuadLayers\\WP_Plugin_Table_Links\\' => 33, + 'QuadLayers\\WP_Plugin_Suggestions\\' => 33, + 'QuadLayers\\WP_Plugin_Install_Tab\\' => 33, + 'QuadLayers\\WP_Notice_Plugin_Required\\' => 37, + 'QuadLayers\\WP_Notice_Plugin_Promote\\' => 36, + 'QuadLayers\\WP_Dashboard_Widget_News\\' => 36, + ), + ); + + public static $prefixDirsPsr4 = array ( + 'QuadLayers\\WP_Plugin_Table_Links\\' => + array ( + 0 => __DIR__ . '/../..' . '/jetpack_vendor/quadlayers/wp-plugin-table-links/src', + ), + 'QuadLayers\\WP_Plugin_Suggestions\\' => + array ( + 0 => __DIR__ . '/../..' . '/jetpack_vendor/quadlayers/wp-plugin-suggestions/src', + ), + 'QuadLayers\\WP_Plugin_Install_Tab\\' => + array ( + 0 => __DIR__ . '/../..' . '/jetpack_vendor/quadlayers/wp-plugin-install-tab/src', + ), + 'QuadLayers\\WP_Notice_Plugin_Required\\' => + array ( + 0 => __DIR__ . '/../..' . '/jetpack_vendor/quadlayers/wp-notice-plugin-required/src', + ), + 'QuadLayers\\WP_Notice_Plugin_Promote\\' => + array ( + 0 => __DIR__ . '/../..' . '/jetpack_vendor/quadlayers/wp-notice-plugin-promote/src', + ), + 'QuadLayers\\WP_Dashboard_Widget_News\\' => + array ( + 0 => __DIR__ . '/../..' . '/jetpack_vendor/quadlayers/wp-dashboard-widget-news/src', + ), + ); + + public static $classMap = array ( + 'Automattic\\Jetpack\\Assets' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-assets/src/class-assets.php', + 'Automattic\\Jetpack\\Assets\\Semver' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-assets/src/class-semver.php', + 'Automattic\\Jetpack\\Composer\\Manager' => __DIR__ . '/..' . '/automattic/jetpack-composer-plugin/src/class-manager.php', + 'Automattic\\Jetpack\\Composer\\Plugin' => __DIR__ . '/..' . '/automattic/jetpack-composer-plugin/src/class-plugin.php', + 'Automattic\\Jetpack\\Constants' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-constants/src/class-constants.php', + 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', + 'ET_Builder_Module_QuadMenu' => __DIR__ . '/../..' . '/lib/integrations/divi/modules/QuadMenu/QuadMenu.php', + 'FLQuadMenuModule' => __DIR__ . '/../..' . '/lib/integrations/beaver/module.php', + 'QuadLayers\\QuadMenu\\Activation' => __DIR__ . '/../..' . '/lib/class-activation.php', + 'QuadLayers\\QuadMenu\\Admin' => __DIR__ . '/../..' . '/lib/class-admin.php', + 'QuadLayers\\QuadMenu\\Backend\\Ajax' => __DIR__ . '/../..' . '/lib/backend/class-ajax.php', + 'QuadLayers\\QuadMenu\\Backend\\Settings' => __DIR__ . '/../..' . '/lib/backend/class-settings.php', + 'QuadLayers\\QuadMenu\\Backend\\Walker\\Nav_Menu_Columns' => __DIR__ . '/../..' . '/lib/backend/walker/class-nav-menu-columns.php', + 'QuadLayers\\QuadMenu\\Backend\\Walker\\Nav_Menu_Defaults' => __DIR__ . '/../..' . '/lib/backend/walker/class-nav-menu-defaults.php', + 'QuadLayers\\QuadMenu\\Backend\\Walker\\Nav_Menu_Mega' => __DIR__ . '/../..' . '/lib/backend/walker/class-nav-menu-mega.php', + 'QuadLayers\\QuadMenu\\Backend\\Walker\\Nav_Menu_Widgets' => __DIR__ . '/../..' . '/lib/backend/walker/class-nav-menu-widgets.php', + 'QuadLayers\\QuadMenu\\Compiler' => __DIR__ . '/../..' . '/lib/class-compiler.php', + 'QuadLayers\\QuadMenu\\Configuration' => __DIR__ . '/../..' . '/lib/class-configuration.php', + 'QuadLayers\\QuadMenu\\Frontend\\Frontend' => __DIR__ . '/../..' . '/lib/frontend/class-frontend.php', + 'QuadLayers\\QuadMenu\\Frontend\\Items' => __DIR__ . '/../..' . '/lib/frontend/class-items.php', + 'QuadLayers\\QuadMenu\\Frontend\\Walker\\QuadMenu_Item' => __DIR__ . '/../..' . '/lib/frontend/walker/class-quadmenu-item.php', + 'QuadLayers\\QuadMenu\\Frontend\\Walker\\QuadMenu_Item_Cart' => __DIR__ . '/../..' . '/lib/frontend/walker/class-quadmenu-item-cart.php', + 'QuadLayers\\QuadMenu\\Frontend\\Walker\\QuadMenu_Item_Column' => __DIR__ . '/../..' . '/lib/frontend/walker/class-quadmenu-item-column.php', + 'QuadLayers\\QuadMenu\\Frontend\\Walker\\QuadMenu_Item_Default' => __DIR__ . '/../..' . '/lib/frontend/walker/class-quadmenu-item-default.php', + 'QuadLayers\\QuadMenu\\Frontend\\Walker\\QuadMenu_Item_Icon' => __DIR__ . '/../..' . '/lib/frontend/walker/class-quadmenu-item-icon.php', + 'QuadLayers\\QuadMenu\\Frontend\\Walker\\QuadMenu_Item_Mega' => __DIR__ . '/../..' . '/lib/frontend/walker/class-quadmenu-item-mega.php', + 'QuadLayers\\QuadMenu\\Frontend\\Walker\\QuadMenu_Item_Post_Type' => __DIR__ . '/../..' . '/lib/frontend/walker/class-quadmenu-item-post-type.php', + 'QuadLayers\\QuadMenu\\Frontend\\Walker\\QuadMenu_Item_Search' => __DIR__ . '/../..' . '/lib/frontend/walker/class-quadmenu-item-search.php', + 'QuadLayers\\QuadMenu\\Frontend\\Walker\\QuadMenu_Item_Widget' => __DIR__ . '/../..' . '/lib/frontend/walker/class-quadmenu-item-widget.php', + 'QuadLayers\\QuadMenu\\Frontend\\Walker\\QuadMenu_Walker' => __DIR__ . '/../..' . '/lib/frontend/walker/class-quadmenu-walker.php', + 'QuadLayers\\QuadMenu\\Icons' => __DIR__ . '/../..' . '/lib/class-icons.php', + 'QuadLayers\\QuadMenu\\Integrations\\Beaver' => __DIR__ . '/../..' . '/lib/integrations/class-beaver.php', + 'QuadLayers\\QuadMenu\\Integrations\\Beaver\\Module' => __DIR__ . '/../..' . '/lib/integrations/beaver/class-module.php', + 'QuadLayers\\QuadMenu\\Integrations\\Divi' => __DIR__ . '/../..' . '/lib/integrations/class-divi.php', + 'QuadLayers\\QuadMenu\\Integrations\\Divi\\Module' => __DIR__ . '/../..' . '/lib/integrations/divi/class-module.php', + 'QuadLayers\\QuadMenu\\Integrations\\Elementor' => __DIR__ . '/../..' . '/lib/integrations/class-elementor.php', + 'QuadLayers\\QuadMenu\\Integrations\\Elementor\\Module' => __DIR__ . '/../..' . '/lib/integrations/elementor/class-module.php', + 'QuadLayers\\QuadMenu\\Integrations\\Polylang' => __DIR__ . '/../..' . '/lib/integrations/class-polylang.php', + 'QuadLayers\\QuadMenu\\Integrations\\WooCommerce' => __DIR__ . '/../..' . '/lib/integrations/class-woocommerce.php', + 'QuadLayers\\QuadMenu\\Locations' => __DIR__ . '/../..' . '/lib/class-locations.php', + 'QuadLayers\\QuadMenu\\Options' => __DIR__ . '/../..' . '/lib/class-options.php', + 'QuadLayers\\QuadMenu\\Panel' => __DIR__ . '/../..' . '/lib/class-panel.php', + 'QuadLayers\\QuadMenu\\Panel\\Options' => __DIR__ . '/../..' . '/lib/panel/class-options.php', + 'QuadLayers\\QuadMenu\\Panel\\Premium' => __DIR__ . '/../..' . '/lib/panel/class-premium.php', + 'QuadLayers\\QuadMenu\\Panel\\System' => __DIR__ . '/../..' . '/lib/panel/class-system.php', + 'QuadLayers\\QuadMenu\\Panel\\Welcome' => __DIR__ . '/../..' . '/lib/panel/class-welcome.php', + 'QuadLayers\\QuadMenu\\Plugin' => __DIR__ . '/../..' . '/lib/class-plugin.php', + 'QuadLayers\\QuadMenu\\Redux' => __DIR__ . '/../..' . '/lib/class-redux.php', + 'QuadLayers\\QuadMenu\\Themes' => __DIR__ . '/../..' . '/lib/class-themes.php', + 'QuadLayers\\QuadMenu\\Widget' => __DIR__ . '/../..' . '/lib/class-widget.php', + 'QuadLayers\\WP_Dashboard_Widget_News\\Load' => __DIR__ . '/../..' . '/jetpack_vendor/quadlayers/wp-dashboard-widget-news/src/Load.php', + 'QuadLayers\\WP_Notice_Plugin_Promote\\Load' => __DIR__ . '/../..' . '/jetpack_vendor/quadlayers/wp-notice-plugin-promote/src/Load.php', + 'QuadLayers\\WP_Notice_Plugin_Promote\\PluginByFile' => __DIR__ . '/../..' . '/jetpack_vendor/quadlayers/wp-notice-plugin-promote/src/PluginByFile.php', + 'QuadLayers\\WP_Notice_Plugin_Promote\\PluginBySlug' => __DIR__ . '/../..' . '/jetpack_vendor/quadlayers/wp-notice-plugin-promote/src/PluginBySlug.php', + 'QuadLayers\\WP_Notice_Plugin_Promote\\PluginBySlugV2' => __DIR__ . '/../..' . '/jetpack_vendor/quadlayers/wp-notice-plugin-promote/src/PluginBySlugV2.php', + 'QuadLayers\\WP_Notice_Plugin_Promote\\Traits\\PluginActions' => __DIR__ . '/../..' . '/jetpack_vendor/quadlayers/wp-notice-plugin-promote/src/Traits/PluginActions.php', + 'QuadLayers\\WP_Notice_Plugin_Promote\\Traits\\PluginActionsLinks' => __DIR__ . '/../..' . '/jetpack_vendor/quadlayers/wp-notice-plugin-promote/src/Traits/PluginActionsLinks.php', + 'QuadLayers\\WP_Notice_Plugin_Promote\\Traits\\PluginDataByFile' => __DIR__ . '/../..' . '/jetpack_vendor/quadlayers/wp-notice-plugin-promote/src/Traits/PluginDataByFile.php', + 'QuadLayers\\WP_Notice_Plugin_Required\\Load' => __DIR__ . '/../..' . '/jetpack_vendor/quadlayers/wp-notice-plugin-required/src/Load.php', + 'QuadLayers\\WP_Notice_Plugin_Required\\Plugin' => __DIR__ . '/../..' . '/jetpack_vendor/quadlayers/wp-notice-plugin-required/src/Plugin.php', + 'QuadLayers\\WP_Plugin_Install_Tab\\Load' => __DIR__ . '/../..' . '/jetpack_vendor/quadlayers/wp-plugin-install-tab/src/Load.php', + 'QuadLayers\\WP_Plugin_Suggestions\\Load' => __DIR__ . '/../..' . '/jetpack_vendor/quadlayers/wp-plugin-suggestions/src/Load.php', + 'QuadLayers\\WP_Plugin_Suggestions\\Page' => __DIR__ . '/../..' . '/jetpack_vendor/quadlayers/wp-plugin-suggestions/src/Page.php', + 'QuadLayers\\WP_Plugin_Suggestions\\Table' => __DIR__ . '/../..' . '/jetpack_vendor/quadlayers/wp-plugin-suggestions/src/Table.php', + 'QuadLayers\\WP_Plugin_Table_Links\\Load' => __DIR__ . '/../..' . '/jetpack_vendor/quadlayers/wp-plugin-table-links/src/Load.php', + 'WPBakeryShortCode_quadmenu_vc' => __DIR__ . '/../..' . '/lib/integrations/class-vc.php', + ); + + public static function getInitializer(ClassLoader $loader) + { + return \Closure::bind(function () use ($loader) { + $loader->prefixLengthsPsr4 = ComposerStaticInitbc68521166e23e0e643a362225ccc0cc::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInitbc68521166e23e0e643a362225ccc0cc::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInitbc68521166e23e0e643a362225ccc0cc::$classMap; + + }, null, ClassLoader::class); + } +} diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json new file mode 100644 index 0000000..a53181c --- /dev/null +++ b/vendor/composer/installed.json @@ -0,0 +1,514 @@ +{ + "packages": [ + { + "name": "automattic/jetpack-assets", + "version": "v2.1.13", + "version_normalized": "2.1.13.0", + "source": { + "type": "git", + "url": "https://github.com/Automattic/jetpack-assets.git", + "reference": "be2738e899ca46648999a6e1a7744b4da5001533" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Automattic/jetpack-assets/zipball/be2738e899ca46648999a6e1a7744b4da5001533", + "reference": "be2738e899ca46648999a6e1a7744b4da5001533", + "shasum": "" + }, + "require": { + "automattic/jetpack-constants": "^2.0.3", + "php": ">=7.0" + }, + "require-dev": { + "automattic/jetpack-changelogger": "^4.2.5", + "brain/monkey": "2.6.1", + "wikimedia/testing-access-wrapper": "^1.0 || ^2.0 || ^3.0", + "yoast/phpunit-polyfills": "1.1.0" + }, + "suggest": { + "automattic/jetpack-autoloader": "Allow for better interoperability with other plugins that use this package." + }, + "time": "2024-07-03T11:21:33+00:00", + "type": "jetpack-library", + "extra": { + "autotagger": true, + "mirror-repo": "Automattic/jetpack-assets", + "textdomain": "jetpack-assets", + "changelogger": { + "link-template": "https://github.com/Automattic/jetpack-assets/compare/v${old}...v${new}" + }, + "branch-alias": { + "dev-trunk": "2.1.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "files": [ + "actions.php" + ], + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "description": "Asset management utilities for Jetpack ecosystem packages", + "support": { + "source": "https://github.com/Automattic/jetpack-assets/tree/v2.1.13" + }, + "install-path": "../../jetpack_vendor/automattic/jetpack-assets" + }, + { + "name": "automattic/jetpack-composer-plugin", + "version": "v2.0.2", + "version_normalized": "2.0.2.0", + "source": { + "type": "git", + "url": "https://github.com/Automattic/jetpack-composer-plugin.git", + "reference": "7f991850af6cdb10b5bf493cea9e09e5c8feae72" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Automattic/jetpack-composer-plugin/zipball/7f991850af6cdb10b5bf493cea9e09e5c8feae72", + "reference": "7f991850af6cdb10b5bf493cea9e09e5c8feae72", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^2.1.0", + "php": ">=7.0" + }, + "require-dev": { + "automattic/jetpack-changelogger": "^4.2.4", + "composer/composer": "^2.2 || ^2.4", + "yoast/phpunit-polyfills": "1.1.0" + }, + "time": "2024-06-03T14:01:14+00:00", + "type": "composer-plugin", + "extra": { + "plugin-modifies-install-path": true, + "class": "Automattic\\Jetpack\\Composer\\Plugin", + "mirror-repo": "Automattic/jetpack-composer-plugin", + "changelogger": { + "link-template": "https://github.com/Automattic/jetpack-composer-plugin/compare/v${old}...v${new}" + }, + "autotagger": true, + "branch-alias": { + "dev-trunk": "2.0.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "description": "A custom installer plugin for Composer to move Jetpack packages out of `vendor/` so WordPress's translation infrastructure will find their strings.", + "keywords": [ + "composer", + "i18n", + "jetpack", + "plugin" + ], + "support": { + "source": "https://github.com/Automattic/jetpack-composer-plugin/tree/v2.0.2" + }, + "install-path": "../automattic/jetpack-composer-plugin" + }, + { + "name": "automattic/jetpack-constants", + "version": "v2.0.3", + "version_normalized": "2.0.3.0", + "source": { + "type": "git", + "url": "https://github.com/Automattic/jetpack-constants.git", + "reference": "f5da87d3b7f80411b77aa58a7355733ea72295aa" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Automattic/jetpack-constants/zipball/f5da87d3b7f80411b77aa58a7355733ea72295aa", + "reference": "f5da87d3b7f80411b77aa58a7355733ea72295aa", + "shasum": "" + }, + "require": { + "php": ">=7.0" + }, + "require-dev": { + "automattic/jetpack-changelogger": "^4.2.4", + "brain/monkey": "2.6.1", + "yoast/phpunit-polyfills": "1.1.0" + }, + "suggest": { + "automattic/jetpack-autoloader": "Allow for better interoperability with other plugins that use this package." + }, + "time": "2024-05-29T09:44:58+00:00", + "type": "jetpack-library", + "extra": { + "autotagger": true, + "mirror-repo": "Automattic/jetpack-constants", + "changelogger": { + "link-template": "https://github.com/Automattic/jetpack-constants/compare/v${old}...v${new}" + }, + "branch-alias": { + "dev-trunk": "2.0.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "description": "A wrapper for defining constants in a more testable way.", + "support": { + "source": "https://github.com/Automattic/jetpack-constants/tree/v2.0.3" + }, + "install-path": "../../jetpack_vendor/automattic/jetpack-constants" + }, + { + "name": "quadlayers/wp-dashboard-widget-news", + "version": "1.0.9", + "version_normalized": "1.0.9.0", + "source": { + "type": "git", + "url": "https://github.com/quadlayers/wp-dashboard-widget-news.git", + "reference": "c8f270a3de46f986dab8b9547848dc6b6f0ae7fe" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/quadlayers/wp-dashboard-widget-news/zipball/c8f270a3de46f986dab8b9547848dc6b6f0ae7fe", + "reference": "c8f270a3de46f986dab8b9547848dc6b6f0ae7fe", + "shasum": "" + }, + "require": { + "php": ">=7.1.0" + }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", + "phpcompatibility/phpcompatibility-wp": "^2.1.0", + "wp-coding-standards/wpcs": "^2.3.0" + }, + "time": "2023-03-16T15:19:31+00:00", + "type": "jetpack-library", + "extra": { + "textdomain": "wp-dashboard-widget-news" + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "QuadLayers\\WP_Dashboard_Widget_News\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-3.0" + ], + "authors": [ + { + "name": "QuadLayers", + "email": "noreply@quadlayers.com" + } + ], + "description": "WP Dashboard Widget News", + "keywords": [ + "admin", + "dashboard", + "widget", + "wordpress" + ], + "support": { + "issues": "https://github.com/quadlayers/wp-dashboard-widget-news/issues", + "source": "https://github.com/quadlayers/wp-dashboard-widget-news/tree/1.0.9" + }, + "install-path": "../../jetpack_vendor/quadlayers/wp-dashboard-widget-news" + }, + { + "name": "quadlayers/wp-notice-plugin-promote", + "version": "1.1.4", + "version_normalized": "1.1.4.0", + "source": { + "type": "git", + "url": "https://github.com/quadlayers/wp-notice-plugin-promote.git", + "reference": "f52240f7972d59a88bca17c061277b7ed12bdf17" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/quadlayers/wp-notice-plugin-promote/zipball/f52240f7972d59a88bca17c061277b7ed12bdf17", + "reference": "f52240f7972d59a88bca17c061277b7ed12bdf17", + "shasum": "" + }, + "require": { + "php": ">=7.1.0" + }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", + "phpcompatibility/phpcompatibility-wp": "^2.1.0", + "wp-coding-standards/wpcs": "^2.3.0" + }, + "time": "2023-12-31T10:47:45+00:00", + "type": "jetpack-library", + "extra": { + "textdomain": "wp-notice-plugin-promote" + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "QuadLayers\\WP_Notice_Plugin_Promote\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-3.0" + ], + "authors": [ + { + "name": "QuadLayers", + "email": "noreply@quadlayers.com" + } + ], + "description": "WP Notice Plugin Promote", + "keywords": [ + "admin", + "notice", + "plugin", + "wordpress" + ], + "support": { + "issues": "https://github.com/quadlayers/wp-notice-plugin-promote/issues", + "source": "https://github.com/quadlayers/wp-notice-plugin-promote/tree/1.1.4" + }, + "install-path": "../../jetpack_vendor/quadlayers/wp-notice-plugin-promote" + }, + { + "name": "quadlayers/wp-notice-plugin-required", + "version": "2.0.7", + "version_normalized": "2.0.7.0", + "source": { + "type": "git", + "url": "https://github.com/quadlayers/wp-notice-plugin-required.git", + "reference": "fd3d10dbdb39be738c3ef320e43cb7cd4e59e071" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/quadlayers/wp-notice-plugin-required/zipball/fd3d10dbdb39be738c3ef320e43cb7cd4e59e071", + "reference": "fd3d10dbdb39be738c3ef320e43cb7cd4e59e071", + "shasum": "" + }, + "require": { + "php": ">=7.1.0" + }, + "require-dev": { + "woocommerce/woocommerce-sniffs": "^0.1.3" + }, + "time": "2023-06-23T12:20:55+00:00", + "type": "jetpack-library", + "extra": { + "textdomain": "wp-notice-plugin-required" + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "QuadLayers\\WP_Notice_Plugin_Required\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-3.0" + ], + "authors": [ + { + "name": "QuadLayers", + "email": "noreply@quadlayers.com" + } + ], + "description": "WP Notice Plugin Required", + "keywords": [ + "admin", + "notice", + "plugin", + "wordpress" + ], + "support": { + "issues": "https://github.com/quadlayers/wp-notice-plugin-required/issues", + "source": "https://github.com/quadlayers/wp-notice-plugin-required/tree/2.0.7" + }, + "install-path": "../../jetpack_vendor/quadlayers/wp-notice-plugin-required" + }, + { + "name": "quadlayers/wp-plugin-install-tab", + "version": "1.0.1", + "version_normalized": "1.0.1.0", + "source": { + "type": "git", + "url": "https://github.com/franmastromarino/wp-plugin-install-tab.git", + "reference": "7f29b6bcebf6cebdd2ad300fb096e05e3ad0f398" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/franmastromarino/wp-plugin-install-tab/zipball/7f29b6bcebf6cebdd2ad300fb096e05e3ad0f398", + "reference": "7f29b6bcebf6cebdd2ad300fb096e05e3ad0f398", + "shasum": "" + }, + "require": { + "php": ">=7.1.0", + "quadlayers/wp-plugin-suggestions": "*" + }, + "time": "2023-12-18T10:21:33+00:00", + "type": "jetpack-library", + "extra": { + "textdomain": "wp-plugin-install-tab" + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "QuadLayers\\WP_Plugin_Install_Tab\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-3.0" + ], + "authors": [ + { + "name": "QuadLayers", + "email": "noreply@quadlayers.com" + } + ], + "description": "WP Plugin Install Tab", + "keywords": [ + "admin", + "install", + "plugin", + "wordpress" + ], + "support": { + "issues": "https://github.com/franmastromarino/wp-plugin-install-tab/issues", + "source": "https://github.com/franmastromarino/wp-plugin-install-tab/tree/1.0.1" + }, + "install-path": "../../jetpack_vendor/quadlayers/wp-plugin-install-tab" + }, + { + "name": "quadlayers/wp-plugin-suggestions", + "version": "1.0.9", + "version_normalized": "1.0.9.0", + "source": { + "type": "git", + "url": "https://github.com/quadlayers/wp-plugin-suggestions.git", + "reference": "3983f69cbea33743683c95cd26c97f03f540ca52" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/quadlayers/wp-plugin-suggestions/zipball/3983f69cbea33743683c95cd26c97f03f540ca52", + "reference": "3983f69cbea33743683c95cd26c97f03f540ca52", + "shasum": "" + }, + "require": { + "php": ">=7.1.0" + }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", + "phpcompatibility/phpcompatibility-wp": "^2.1.0", + "wp-coding-standards/wpcs": "^2.3.0" + }, + "time": "2023-12-31T10:45:51+00:00", + "type": "jetpack-library", + "extra": { + "textdomain": "wp-plugin-suggestions" + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "QuadLayers\\WP_Plugin_Suggestions\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-3.0" + ], + "authors": [ + { + "name": "QuadLayers", + "email": "noreply@quadlayers.com" + } + ], + "description": "WP Plugin Suggestions", + "keywords": [ + "admin", + "plugin", + "widget", + "wordpress" + ], + "support": { + "issues": "https://github.com/quadlayers/wp-plugin-suggestions/issues", + "source": "https://github.com/quadlayers/wp-plugin-suggestions/tree/1.0.9" + }, + "install-path": "../../jetpack_vendor/quadlayers/wp-plugin-suggestions" + }, + { + "name": "quadlayers/wp-plugin-table-links", + "version": "1.0.7", + "version_normalized": "1.0.7.0", + "source": { + "type": "git", + "url": "https://github.com/quadlayers/wp-plugin-table-links.git", + "reference": "cadb59de7ce90b0e3b59174bfb7f52af556c7a66" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/quadlayers/wp-plugin-table-links/zipball/cadb59de7ce90b0e3b59174bfb7f52af556c7a66", + "reference": "cadb59de7ce90b0e3b59174bfb7f52af556c7a66", + "shasum": "" + }, + "require": { + "php": ">=7.1.0" + }, + "require-dev": { + "woocommerce/woocommerce-sniffs": "^0.1.3" + }, + "time": "2023-03-20T18:39:34+00:00", + "type": "jetpack-library", + "extra": { + "textdomain": "wp-plugin-table-links" + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "QuadLayers\\WP_Plugin_Table_Links\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-3.0" + ], + "authors": [ + { + "name": "QuadLayers", + "email": "noreply@quadlayers.com" + } + ], + "description": "WP Plugin Table Links", + "keywords": [ + "admin", + "links", + "plugin", + "wordpress" + ], + "support": { + "issues": "https://github.com/quadlayers/wp-plugin-table-links/issues", + "source": "https://github.com/quadlayers/wp-plugin-table-links/tree/1.0.7" + }, + "install-path": "../../jetpack_vendor/quadlayers/wp-plugin-table-links" + } + ], + "dev": false, + "dev-package-names": [] +} diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php new file mode 100644 index 0000000..0f85d6e --- /dev/null +++ b/vendor/composer/installed.php @@ -0,0 +1,104 @@ + array( + 'name' => 'quadlayers/quadmenu', + 'pretty_version' => 'v3.1.5', + 'version' => '3.1.5.0', + 'reference' => 'be3639fe4d4f6719b07b5d26f3f28fb552fae3d4', + 'type' => 'project', + 'install_path' => __DIR__ . '/../../', + 'aliases' => array(), + 'dev' => false, + ), + 'versions' => array( + 'automattic/jetpack-assets' => array( + 'pretty_version' => 'v2.1.13', + 'version' => '2.1.13.0', + 'reference' => 'be2738e899ca46648999a6e1a7744b4da5001533', + 'type' => 'jetpack-library', + 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-assets', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'automattic/jetpack-composer-plugin' => array( + 'pretty_version' => 'v2.0.2', + 'version' => '2.0.2.0', + 'reference' => '7f991850af6cdb10b5bf493cea9e09e5c8feae72', + 'type' => 'composer-plugin', + 'install_path' => __DIR__ . '/../automattic/jetpack-composer-plugin', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'automattic/jetpack-constants' => array( + 'pretty_version' => 'v2.0.3', + 'version' => '2.0.3.0', + 'reference' => 'f5da87d3b7f80411b77aa58a7355733ea72295aa', + 'type' => 'jetpack-library', + 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-constants', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'quadlayers/quadmenu' => array( + 'pretty_version' => 'v3.1.5', + 'version' => '3.1.5.0', + 'reference' => 'be3639fe4d4f6719b07b5d26f3f28fb552fae3d4', + 'type' => 'project', + 'install_path' => __DIR__ . '/../../', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'quadlayers/wp-dashboard-widget-news' => array( + 'pretty_version' => '1.0.9', + 'version' => '1.0.9.0', + 'reference' => 'c8f270a3de46f986dab8b9547848dc6b6f0ae7fe', + 'type' => 'jetpack-library', + 'install_path' => __DIR__ . '/../../jetpack_vendor/quadlayers/wp-dashboard-widget-news', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'quadlayers/wp-notice-plugin-promote' => array( + 'pretty_version' => '1.1.4', + 'version' => '1.1.4.0', + 'reference' => 'f52240f7972d59a88bca17c061277b7ed12bdf17', + 'type' => 'jetpack-library', + 'install_path' => __DIR__ . '/../../jetpack_vendor/quadlayers/wp-notice-plugin-promote', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'quadlayers/wp-notice-plugin-required' => array( + 'pretty_version' => '2.0.7', + 'version' => '2.0.7.0', + 'reference' => 'fd3d10dbdb39be738c3ef320e43cb7cd4e59e071', + 'type' => 'jetpack-library', + 'install_path' => __DIR__ . '/../../jetpack_vendor/quadlayers/wp-notice-plugin-required', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'quadlayers/wp-plugin-install-tab' => array( + 'pretty_version' => '1.0.1', + 'version' => '1.0.1.0', + 'reference' => '7f29b6bcebf6cebdd2ad300fb096e05e3ad0f398', + 'type' => 'jetpack-library', + 'install_path' => __DIR__ . '/../../jetpack_vendor/quadlayers/wp-plugin-install-tab', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'quadlayers/wp-plugin-suggestions' => array( + 'pretty_version' => '1.0.9', + 'version' => '1.0.9.0', + 'reference' => '3983f69cbea33743683c95cd26c97f03f540ca52', + 'type' => 'jetpack-library', + 'install_path' => __DIR__ . '/../../jetpack_vendor/quadlayers/wp-plugin-suggestions', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'quadlayers/wp-plugin-table-links' => array( + 'pretty_version' => '1.0.7', + 'version' => '1.0.7.0', + 'reference' => 'cadb59de7ce90b0e3b59174bfb7f52af556c7a66', + 'type' => 'jetpack-library', + 'install_path' => __DIR__ . '/../../jetpack_vendor/quadlayers/wp-plugin-table-links', + 'aliases' => array(), + 'dev_requirement' => false, + ), + ), +); diff --git a/vendor/composer/platform_check.php b/vendor/composer/platform_check.php new file mode 100644 index 0000000..6d3407d --- /dev/null +++ b/vendor/composer/platform_check.php @@ -0,0 +1,26 @@ += 70100)) { + $issues[] = 'Your Composer dependencies require a PHP version ">= 7.1.0". You are running ' . PHP_VERSION . '.'; +} + +if ($issues) { + if (!headers_sent()) { + header('HTTP/1.1 500 Internal Server Error'); + } + if (!ini_get('display_errors')) { + if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') { + fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL); + } elseif (!headers_sent()) { + echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL; + } + } + trigger_error( + 'Composer detected issues in your platform: ' . implode(' ', $issues), + E_USER_ERROR + ); +} diff --git a/vendor_packages/wp-dashboard-widget-news.php b/vendor_packages/wp-dashboard-widget-news.php new file mode 100644 index 0000000..3821974 --- /dev/null +++ b/vendor_packages/wp-dashboard-widget-news.php @@ -0,0 +1,5 @@ + 'ranking', + 'notice_delay' => MONTH_IN_SECONDS, + 'notice_logo' => QUADMENU_PROMOTE_LOGO_SRC, + 'notice_title' => sprintf( + esc_html__( + 'Hello! Thank you for choosing the %s plugin!', + 'quadmenu' + ), + QUADMENU_PLUGIN_NAME + ), + 'notice_description' => esc_html__( 'Could you please give it a 5-star rating on WordPress? Your feedback boosts our motivation, helps us promote, and continues to improve this product. Your support matters!', 'quadmenu' ), + 'notice_link' => QUADMENU_PROMOTE_REVIEW_URL, + 'notice_link_label' => esc_html__( + 'Yes, of course!', + 'quadmenu' + ), + 'notice_more_link' => QUADMENU_SUPPORT_URL, + 'notice_more_label' => esc_html__( + 'Report a bug', + 'quadmenu' + ), + ), + array( + 'plugin_slug' => QUADMENU_PROMOTE_PREMIUM_SELL_SLUG, + 'plugin_install_link' => QUADMENU_PROMOTE_PREMIUM_INSTALL_URL, + 'plugin_install_label' => esc_html__( + 'Purchase Now', + 'quadmenu' + ), + 'notice_delay' => MONTH_IN_SECONDS, + 'notice_logo' => QUADMENU_PROMOTE_LOGO_SRC, + 'notice_title' => esc_html__( + 'Hello! We have a special gift!', + 'quadmenu' + ), + 'notice_description' => sprintf( + esc_html__( + 'Today we have a special gift for you. Use the coupon code %1$s within the next 48 hours to receive a %2$s discount on the premium version of the %3$s plugin.', + 'quadmenu' + ), + 'ADMINPANEL20%', + '20%', + QUADMENU_PROMOTE_PREMIUM_SELL_NAME + ), + 'notice_more_link' => QUADMENU_PROMOTE_PREMIUM_SELL_URL, + 'notice_more_label' => esc_html__( + 'More info!', + 'quadmenu' + ), + ), + array( + 'plugin_slug' => QUADMENU_PROMOTE_CROSS_INSTALL_1_SLUG, + 'notice_delay' => MONTH_IN_SECONDS * 4, + 'notice_logo' => QUADMENU_PROMOTE_CROSS_INSTALL_1_LOGO_SRC, + 'notice_title' => sprintf( + esc_html__( + 'Hello! We want to invite you to try our %s plugin!', + 'quadmenu' + ), + QUADMENU_PROMOTE_CROSS_INSTALL_1_NAME + ), + 'notice_description' => QUADMENU_PROMOTE_CROSS_INSTALL_1_DESCRIPTION, + 'notice_more_link' => QUADMENU_PROMOTE_CROSS_INSTALL_1_URL, + 'notice_more_label' => esc_html__( + 'More info!', + 'quadmenu' + ), + ), + array( + 'plugin_slug' => QUADMENU_PROMOTE_CROSS_INSTALL_2_SLUG, + 'notice_delay' => MONTH_IN_SECONDS * 6, + 'notice_logo' => QUADMENU_PROMOTE_CROSS_INSTALL_2_LOGO_SRC, + 'notice_title' => sprintf( + esc_html__( + 'Hello! We want to invite you to try our %s plugin!', + 'quadmenu' + ), + QUADMENU_PROMOTE_CROSS_INSTALL_2_NAME + ), + 'notice_description' => QUADMENU_PROMOTE_CROSS_INSTALL_2_DESCRIPTION, + 'notice_more_link' => QUADMENU_PROMOTE_CROSS_INSTALL_2_URL, + 'notice_more_label' => esc_html__( + 'More info!', + 'quadmenu' + ), + ), + ) + ); +} diff --git a/vendor_packages/wp-notice-plugin-required.php b/vendor_packages/wp-notice-plugin-required.php new file mode 100644 index 0000000..603b68d --- /dev/null +++ b/vendor_packages/wp-notice-plugin-required.php @@ -0,0 +1,15 @@ + 'woocommerce', + 'name' => 'WooCommerce', + ), + ) + ); +} diff --git a/vendor_packages/wp-plugin-install-tab.php b/vendor_packages/wp-plugin-install-tab.php new file mode 100644 index 0000000..c37c2f9 --- /dev/null +++ b/vendor_packages/wp-plugin-install-tab.php @@ -0,0 +1,5 @@ + array( 'quadmenu' ), + 'parent_menu_slug' => 'quadmenu_welcome', + 'promote_links' => array( + array( + 'text' => 'QuadLayers', + 'url' => 'https://quadlayers.com', + 'target' => '_blank', + ), + array( + 'text' => 'Community', + 'url' => 'https://www.facebook.com/groups/quadlayers', + 'target' => '_blank', + ), + ), + ) + ); +} diff --git a/vendor_packages/wp-plugin-table-links.php b/vendor_packages/wp-plugin-table-links.php new file mode 100644 index 0000000..7f2ca5d --- /dev/null +++ b/vendor_packages/wp-plugin-table-links.php @@ -0,0 +1,28 @@ + esc_html__( 'Settings', 'quadmenu' ), + 'url' => admin_url( 'admin.php?page=' . QUADMENU_PANEL ), + 'target' => '_self', + ), + array( + 'text' => esc_html__( 'Premium', 'quadmenu' ), + 'url' => QUADMENU_PURCHASE_URL, + ), + array( + 'place' => 'row_meta', + 'text' => esc_html__( 'Support', 'quadmenu' ), + 'url' => QUADMENU_SUPPORT_URL, + ), + array( + 'place' => 'row_meta', + 'text' => esc_html__( 'Documentation', 'quadmenu' ), + 'url' => QUADMENU_DOCUMENTATION_URL, + ), + ) + ); +}