Speed Booster Pack - Version 4.4.1

Version Description

Release Date: 12 March 2021

  • Improved: Speed Booster Pack's wp-admin CSS file got a bit smaller.
  • Improved: Better onboarding with titles.
  • Improved: The CDN feature is now enabled with a toggle.
  • Improved: Code improvements in the "LiteSpeed cache" feature.
  • Improved:
  • Fixed: Fixed an issue when there were no fonts found inside page sources.
  • Fixed: The "set image dimensions" feature now correctly detects image URLs that start with http:// while the site URL starts with https:// (and vice versa).
  • Fixed:
  • Updated: Updated Codestar Framework to v2.2.6.
  • Updated: Updated intro.js to v5.0.0.
  • Removed: Custom Code Manager is now removed. Users who added custom codes will get a notice to copy their code to somewhere else
  • Removed:
Download this release

Release Info

Developer optimocha
Plugin Icon 128x128 Speed Booster Pack
Version 4.4.1
Comparing to
See all releases

Code changes from version 4.4.0 to 4.4.1

Files changed (54) hide show
  1. README.txt +18 -1
  2. admin/class-speed-booster-pack-admin.php +332 -279
  3. admin/css/intro.min.css +1 -2
  4. admin/css/speed-booster-pack-admin.css +0 -60
  5. admin/js/init-intro.js +11 -3
  6. admin/js/intro.min.js +5 -5
  7. admin/js/speed-booster-pack-admin.js +11 -0
  8. includes/class-speed-booster-pack.php +6 -0
  9. includes/classes/class-sbp-advanced-cache-generator.php +1 -0
  10. includes/classes/class-sbp-cdn.php +1 -1
  11. includes/classes/class-sbp-custom-code-manager.php +22 -53
  12. includes/classes/class-sbp-font-optimizer.php +9 -3
  13. includes/classes/class-sbp-image-dimensions.php +2 -0
  14. includes/classes/class-sbp-litespeed-cache.php +29 -14
  15. includes/classes/class-sbp-localize-tracker.php +1 -1
  16. includes/classes/class-sbp-migrator.php +8 -0
  17. includes/classes/class-sbp-notice-manager.php +9 -3
  18. includes/classes/class-sbp-special.php +7 -0
  19. includes/classes/class-sbp-utils.php +11 -0
  20. public/class-speed-booster-pack-public.php +6 -0
  21. speed-booster-pack.php +3 -3
  22. vendor/codestar-framework/assets/css/style-rtl.css +590 -590
  23. vendor/codestar-framework/assets/css/style.css +1036 -82
  24. vendor/codestar-framework/assets/css/style.min.css +1 -1
  25. vendor/codestar-framework/assets/images/wp-logo.svg +1 -1
  26. vendor/codestar-framework/assets/images/wp-plugin-logo.svg +1 -1
  27. vendor/codestar-framework/assets/js/gutenberg.js +79 -79
  28. vendor/codestar-framework/assets/js/main.js +37 -2
  29. vendor/codestar-framework/assets/js/main.min.js +2 -2
  30. vendor/codestar-framework/assets/js/plugins.js +2674 -1
  31. vendor/codestar-framework/assets/js/plugins.min.js +2 -2
  32. vendor/codestar-framework/assets/scss/partials/_base.scss +470 -470
  33. vendor/codestar-framework/assets/scss/partials/_chosen.scss +405 -405
  34. vendor/codestar-framework/assets/scss/partials/_customizer.scss +7 -1
  35. vendor/codestar-framework/assets/scss/partials/_fields.scss +134 -81
  36. vendor/codestar-framework/assets/scss/partials/_flatpickr.scss +794 -0
  37. vendor/codestar-framework/assets/scss/partials/_helper.scss +152 -152
  38. vendor/codestar-framework/assets/scss/partials/_modal.scss +330 -330
  39. vendor/codestar-framework/assets/scss/partials/_navmenu.scss +60 -60
  40. vendor/codestar-framework/assets/scss/partials/_profile.scss +67 -67
  41. vendor/codestar-framework/assets/scss/partials/_responsive.scss +157 -157
  42. vendor/codestar-framework/assets/scss/partials/_taxonomy.scss +114 -114
  43. vendor/codestar-framework/assets/scss/partials/_themes.scss +303 -303
  44. vendor/codestar-framework/assets/scss/partials/_welcome.scss +346 -346
  45. vendor/codestar-framework/assets/scss/partials/_widget.scss +67 -67
  46. vendor/codestar-framework/assets/scss/style-rtl.scss +728 -728
  47. vendor/codestar-framework/assets/scss/style.scss +30 -28
  48. vendor/codestar-framework/classes/abstract.class.php +132 -132
  49. vendor/codestar-framework/classes/admin-options.class.php +725 -725
  50. vendor/codestar-framework/classes/comment-options.class.php +347 -347
  51. vendor/codestar-framework/classes/customize-options.class.php +282 -282
  52. vendor/codestar-framework/classes/metabox-options.class.php +425 -425
  53. vendor/codestar-framework/classes/nav-menu-options.class.php +255 -255
  54. vendor/codestar-framework/classes/profile-options.class.php +104 -245
README.txt CHANGED
@@ -5,7 +5,7 @@ Tags: speed, pagespeed, optimization, core web vitals, cache
5
  Requires at least: 4.6
6
  Tested up to: 5.9
7
  Requires PHP: 5.6
8
- Stable tag: 4.4.0
9
  License: GPLv3 or later
10
  License URI: https://www.gnu.org/licenses/gpl-3.0.html
11
 
@@ -104,6 +104,23 @@ All the time! We're always looking for new ways to get this plugin to a better s
104
 
105
  == Changelog ==
106
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
107
  = 4.4.0 =
108
 
109
  *Release Date: 05 February 2021*
5
  Requires at least: 4.6
6
  Tested up to: 5.9
7
  Requires PHP: 5.6
8
+ Stable tag: 4.4.1
9
  License: GPLv3 or later
10
  License URI: https://www.gnu.org/licenses/gpl-3.0.html
11
 
104
 
105
  == Changelog ==
106
 
107
+ = 4.4.1 =
108
+
109
+ *Release Date: 12 March 2021*
110
+
111
+ * **Improved**: Speed Booster Pack's wp-admin CSS file got a bit smaller.
112
+ * **Improved**: Better onboarding with titles.
113
+ * **Improved**: The CDN feature is now enabled with a toggle.
114
+ * **Improved**: Code improvements in the "LiteSpeed cache" feature.
115
+ * **Improved**:
116
+ * **Fixed**: Fixed an issue when there were no fonts found inside page sources.
117
+ * **Fixed**: The "set image dimensions" feature now correctly detects image URLs that start with `http://` while the site URL starts with `https://` (and vice versa).
118
+ * **Fixed**:
119
+ * **Updated**: Updated Codestar Framework to v2.2.6.
120
+ * **Updated**: Updated intro.js to v5.0.0.
121
+ * **Removed**: Custom Code Manager is now removed. Users who added custom codes will get a notice to copy their code to somewhere else
122
+ * **Removed**:
123
+
124
  = 4.4.0 =
125
 
126
  *Release Date: 05 February 2021*
admin/class-speed-booster-pack-admin.php CHANGED
@@ -117,20 +117,36 @@ class Speed_Booster_Pack_Admin {
117
  wp_localize_script( 'sbp_intro_js',
118
  'sbp_intro_translations',
119
  [
 
 
120
  /* translators: onboarding modal, first step */
121
  'welcome' => __( 'Welcome to Speed Booster Pack! We\'d like to give you a quick tour - feel free to close this box and look around the options yourself, or click Next to see our short intro.', 'speed-booster-pack' ),
 
 
122
  /* translators: onboarding modal, second step */
123
  'caching' => __( 'This is our caching tab. Here, you can set caching for your pages to immediately speed up your website.', 'speed-booster-pack' ),
 
 
124
  /* translators: onboarding modal, third step */
125
- 'caching2' => __( 'Most tabs have an module toggle like this. Turning on or off the module toggle enables or disables the whole module.', 'speed-booster-pack' ),
 
 
126
  /* translators: onboarding modal, fourth step */
127
  'general' => __( 'The "General" tab includes various tweaks to clean up and speed up things. You can also disable Speed Booster Pack features for certain user roles (e.g. subscribers or customers) if you need to.', 'speed-booster-pack' ),
 
 
128
  /* translators: onboarding modal, fifth step */
129
  'cdn' => __( 'The CDN & Proxy tab has three main settings: You can set a CDN domain to serve all your assets from, you can connect to your Cloudflare account to change your Cloudflare settings, and you can connect to your Sucuri account so you can clear your Sucuri cache automatically.', 'speed-booster-pack' ),
 
 
130
  /* translators: onboarding modal, sixth step */
131
  'css' => __( 'The Optimize CSS tab has some delicate settings which, if configured properly, can drastically improve your website performance. Be sure to follow the directions properly - especially the Critical CSS settings!', 'speed-booster-pack' ),
 
 
132
  /* translators: onboarding modal, seventh step */
133
  'assets' => __( 'The Assets tab can improve your website performance using font optimization, lazy loading, asset preloading and JavaScript optimization. It\'s tempting to enable them all, but make sure you test each change thoroughly or else you can break your website! Think of these tools like powerful weapons which you can hurt yourself with.', 'speed-booster-pack' ),
 
 
134
  /* translators: onboarding modal, last step */
135
  'end' => __( 'That\'s it! Actually, that\'s not it - make sure you check the other tabs to see if you have more room to improve your website speed. Don\'t be afraid to experiment; even if you break something, resetting settings or simply deactivating Speed Booster Pack will undo everything.', 'speed-booster-pack' ),
136
  /* translators: onboarding modal, "Next" label */
@@ -636,7 +652,6 @@ class Speed_Booster_Pack_Admin {
636
  ],
637
  [
638
  'id' => 'caching_ls_cache_logged_in_users',
639
- // B_TODO: Change texts
640
  'title' => __( 'Cache logged in users', 'speed-booster-pack' ),
641
  'desc' => __( 'Enable cache for logged in users.', 'speed-booster-pack' ),
642
  'class' => $ls_caching_class,
@@ -729,219 +744,6 @@ class Speed_Booster_Pack_Admin {
729
  );
730
  /* END Section: Caching */
731
 
732
- /* BEGIN Section: CDN & Proxy */
733
- /* Begin Of Cloudflare Fields */
734
- $cloudflare_fields = [
735
- [
736
- 'title' => __( 'Cloudflare', 'speed-booster-pack' ),
737
- 'type' => 'subheading',
738
- ],
739
- [
740
- 'title' => __( 'Connect to Cloudflare', 'speed-booster-pack' ),
741
- 'id' => 'cloudflare_enable',
742
- 'type' => 'switcher',
743
- 'sanitize' => 'sbp_sanitize_boolean',
744
- ],
745
- [
746
- 'title' => __( 'Cloudflare global API key', 'speed-booster-pack' ),
747
- 'id' => 'cloudflare_api',
748
- 'type' => 'text',
749
- 'desc' => '<a href="https://support.cloudflare.com/hc/en-us/articles/200167836-Managing-API-Tokens-and-Keys#12345682" rel="external noopener" target="_blank">' . __( 'You can find it using this tutorial.', 'speed-booster-pack' ) . '</a>',
750
- 'dependency' => [ 'cloudflare_enable', '==', '1', '', 'visible' ],
751
- ],
752
- [
753
- 'title' => __( 'Cloudflare email address', 'speed-booster-pack' ),
754
- 'id' => 'cloudflare_email',
755
- 'type' => 'text',
756
- 'desc' => __( 'The email address you signed up for Cloudflare with.', 'speed-booster-pack' ),
757
- 'dependency' => [ 'cloudflare_enable', '==', '1', '', 'visible' ],
758
- ],
759
- [
760
- 'title' => __( 'Cloudflare zone ID', 'speed-booster-pack' ),
761
- 'id' => 'cloudflare_zone',
762
- 'type' => 'text',
763
- 'desc' => __( 'You can find your zone ID in the Overview tab on your Cloudflare panel.', 'speed-booster-pack' ),
764
- 'dependency' => [ 'cloudflare_enable', '==', '1', '', 'visible' ],
765
- ],
766
- [
767
- 'title' => __( 'Rocket Loader', 'speed-booster-pack' ),
768
- 'id' => 'cf_rocket_loader_enable',
769
- 'class' => 'with-preloader',
770
- 'type' => 'switcher',
771
- 'dependency' => [ 'cloudflare_enable', '==', '1', '', 'visible' ],
772
- 'sanitize' => 'sbp_sanitize_boolean',
773
- ],
774
- [
775
- 'title' => __( 'Development Mode', 'speed-booster-pack' ),
776
- 'id' => 'cf_dev_mode_enable',
777
- 'class' => 'with-preloader',
778
- 'type' => 'switcher',
779
- 'dependency' => [ 'cloudflare_enable', '==', '1', '', 'visible' ],
780
- 'sanitize' => 'sbp_sanitize_boolean',
781
- ],
782
- [
783
- 'title' => __( 'Minify CSS', 'speed-booster-pack' ),
784
- 'id' => 'cf_css_minify_enable',
785
- 'class' => 'with-preloader',
786
- 'type' => 'switcher',
787
- 'dependency' => [ 'cloudflare_enable', '==', '1', '', 'visible' ],
788
- 'sanitize' => 'sbp_sanitize_boolean',
789
- ],
790
- [
791
- 'title' => __( 'Minify HTML', 'speed-booster-pack' ),
792
- 'id' => 'cf_html_minify_enable',
793
- 'class' => 'with-preloader',
794
- 'type' => 'switcher',
795
- 'dependency' => [ 'cloudflare_enable', '==', '1', '', 'visible' ],
796
- 'sanitize' => 'sbp_sanitize_boolean',
797
- ],
798
- [
799
- 'title' => __( 'Minify JS', 'speed-booster-pack' ),
800
- 'id' => 'cf_js_minify_enable',
801
- 'class' => 'with-preloader',
802
- 'type' => 'switcher',
803
- 'dependency' => [ 'cloudflare_enable', '==', '1', '', 'visible' ],
804
- 'sanitize' => 'sbp_sanitize_boolean',
805
- ],
806
- [
807
- 'title' => __( 'Automatic Platform Optimization', 'speed-booster-pack' ),
808
- 'id' => 'cf_apo_enable',
809
- 'desc' => __( 'You need to be a paying Cloudflare user to enable this setting, otherwise it will get disabled again.', 'speed-booster-pack' ),
810
- 'class' => 'with-preloader',
811
- 'type' => 'switcher',
812
- 'dependency' => [ 'cloudflare_enable', '==', '1', '', 'visible' ],
813
- 'sanitize' => 'sbp_sanitize_boolean',
814
- ],
815
- [
816
- 'title' => __( 'APO: Cache By Device Type', 'speed-booster-pack' ),
817
- 'id' => 'cf_apo_device_type',
818
- 'class' => 'with-preloader',
819
- 'type' => 'switcher',
820
- 'dependency' => [ 'cloudflare_enable', '==', '1', '', 'visible' ],
821
- 'sanitize' => 'sbp_sanitize_boolean',
822
- ],
823
- [
824
- 'title' => __( 'Browser Cache TTL', 'speed-booster-pack' ),
825
- 'id' => 'cf_browser_cache_ttl',
826
- 'class' => 'with-preloader',
827
- 'type' => 'select',
828
- 'options' => [
829
- 0 => __( 'Respect Existing Headers', 'speed-booster-pack' ),
830
- 1800 => __( '30 minutes', 'speed-booster-pack' ),
831
- 3600 => __( '1 hour', 'speed-booster-pack' ),
832
- 7200 => __( '2 hours', 'speed-booster-pack' ),
833
- 10800 => __( '3 hours', 'speed-booster-pack' ),
834
- 14400 => __( '4 hours', 'speed-booster-pack' ),
835
- 18000 => __( '5 hours', 'speed-booster-pack' ),
836
- 28800 => __( '8 hours', 'speed-booster-pack' ),
837
- 43200 => __( '12 hours', 'speed-booster-pack' ),
838
- 57600 => __( '16 hours', 'speed-booster-pack' ),
839
- 72000 => __( '20 hours', 'speed-booster-pack' ),
840
- 86400 => __( '1 day', 'speed-booster-pack' ),
841
- 172800 => __( '2 days', 'speed-booster-pack' ),
842
- 259200 => __( '3 days', 'speed-booster-pack' ),
843
- 345600 => __( '4 days', 'speed-booster-pack' ),
844
- 432000 => __( '5 days', 'speed-booster-pack' ),
845
- 691200 => __( '8 days', 'speed-booster-pack' ),
846
- 1382400 => __( '16 days', 'speed-booster-pack' ),
847
- 2073600 => __( '24 days', 'speed-booster-pack' ),
848
- 2678400 => __( '1 month', 'speed-booster-pack' ),
849
- 5356800 => __( '2 months', 'speed-booster-pack' ),
850
- 16070400 => __( '6 months', 'speed-booster-pack' ),
851
- 31536000 => __( '1 year', 'speed-booster-pack' ),
852
- ],
853
- 'dependency' => [ 'cloudflare_enable', '==', '1', '', 'visible' ],
854
- ],
855
- [
856
- 'type' => 'content',
857
- 'content' => '
858
- <span>
859
- <a href="#" class="button button-small sbp-cloudflare-test">' . __( 'Test Cloudflare connection', 'speed-booster-pack' ) . '<span class="sbp-cloudflare-spinner"></span></a>
860
- <span class="sbp-cloudflare-fetching">' . __( 'Fetching Cloudflare settings...', 'speed-booster-pack' ) . '</span>
861
- </span>
862
- <span class="sbp-cloudflare-info-text sbp-cloudflare-incorrect" style="color:red; vertical-align: middle;"><i class="fa fa-exclamation-triangle"></i> ' . __( 'Your Cloudflare credentials are incorrect.', 'speed-booster-pack' ) . '</span>
863
- <span class="sbp-cloudflare-info-text sbp-cloudflare-connection-issue" style="color:red; vertical-align: middle;"><i class="fa fa-exclamation-triangle"></i> ' . __( 'Error occured while connecting to Cloudflare.', 'speed-booster-pack' ) . '</span>
864
- <span class="sbp-cloudflare-info-text sbp-cloudflare-correct" style="color:green; vertical-align: middle;"><i class="fa fa-check-circle"></i> ' . __( 'Your Cloudflare credentials are correct.', 'speed-booster-pack' ) . '</span>
865
- <span class="sbp-cloudflare-info-text sbp-cloudflare-warning" style="color:orange; vertical-align: middle;"><i class="fa fa-exclamation-circle"></i> ' . __( 'Enter your Cloudflare credentials and save settings to see CloudFlare options.', 'speed-booster-pack' ) . '</span>
866
- ',
867
- 'dependency' => [ 'cloudflare_enable', '==', '1', '', 'visible' ],
868
- ],
869
- ];
870
- /* End Of Cloudflare Fields */
871
-
872
- /* Begin Of Sucuri Fields */
873
- $sucuri_fields = [
874
- [
875
- 'title' => __( 'Sucuri', 'speed-booster-pack' ),
876
- 'type' => 'subheading',
877
- ],
878
- [
879
- 'title' => __( 'Connect to Sucuri', 'speed-booster-pack' ),
880
- 'id' => 'sucuri_enable',
881
- 'type' => 'switcher',
882
- 'desc' => sprintf( __( 'When you connect your Sucuri account, you\'ll be able to clear your Sucuri cache via your admin bar. Plus, every time %1$s Cache\'s cache is cleared, Sucuri\'s cache will be cleared as well.', 'speed-booster-pack' ), SBP_PLUGIN_NAME ),
883
- 'sanitize' => 'sbp_sanitize_boolean',
884
- ],
885
- [
886
- 'title' => __( 'Sucuri API key', 'speed-booster-pack' ),
887
- 'id' => 'sucuri_api',
888
- 'type' => 'text',
889
- 'dependency' => [ 'sucuri_enable', '==', '1', '', 'visible' ],
890
- ],
891
- [
892
- 'title' => __( 'Sucuri API Secret', 'speed-booster-pack' ),
893
- 'id' => 'sucuri_secret',
894
- 'type' => 'text',
895
- 'dependency' => [ 'sucuri_enable', '==', '1', '', 'visible' ],
896
- ],
897
- ];
898
- /* End Of Sucuri Fields */
899
-
900
- $proxy_fields = array_merge( [
901
- [
902
- 'title' => __( 'CDN', 'speed-booster-pack' ),
903
- 'type' => 'subheading',
904
- ],
905
- [
906
- 'title' => __( 'CDN domain', 'speed-booster-pack' ),
907
- 'id' => 'cdn_url',
908
- 'class' => 'cdn-url',
909
- 'type' => 'text',
910
- 'before' => 'http(s)://&nbsp;',
911
- 'after' => '&nbsp;/',
912
- 'desc' => __( 'Rewrites all asset URLs with the specified CDN domain. Enter the CDN domain without a protocol or a trailing slash; a relative protocol will be automatically added to all changed asset URLs.', 'speed-booster-pack' ),
913
- 'sanitize' => 'sbp_sanitize_url',
914
- ],
915
- [
916
- 'title' => __( 'Included Directories', 'speed-booster-pack' ),
917
- 'id' => 'cdn_includes',
918
- 'type' => 'code_editor',
919
- 'desc' => __( 'Anything other than WordPress\'s existing directories should be entered here to be rewritten with the CDN domain. Separated by new lines.', 'speed-booster-pack' ),
920
- 'sanitize' => 'sbp_sanitize_strip_tags',
921
- 'dependency' => [ 'cdn_url', '!=', '', '', 'visible' ],
922
- ],
923
- [
924
- 'title' => __( 'Excluded Extensions', 'speed-booster-pack' ),
925
- 'id' => 'cdn_excludes',
926
- 'type' => 'code_editor',
927
- 'desc' => __( 'If you want to exclude certain file types, enter the extensions here. Separated by new lines.', 'speed-booster-pack' ),
928
- 'sanitize' => 'sbp_sanitize_strip_tags',
929
- 'dependency' => [ 'cdn_url', '!=', '', '', 'visible' ],
930
- ],
931
- ],
932
- $cloudflare_fields,
933
- $sucuri_fields );
934
- CSF::createSection(
935
- $prefix,
936
- array(
937
- 'title' => __( 'CDN & Proxy', 'speed-booster-pack' ),
938
- 'id' => 'cdn_proxy',
939
- 'icon' => 'fa fa-directions',
940
- 'fields' => $proxy_fields,
941
- )
942
- );
943
- /* END Section: CDN & Proxy */
944
-
945
  /* BEGIN Section: Optimize CSS */
946
  $critical_css_fields = [
947
  [
@@ -1212,6 +1014,14 @@ class Speed_Booster_Pack_Admin {
1212
  'dependency' => [ 'module_assets', '==', '1', '', 'visible' ],
1213
  'sanitize' => 'sbp_sanitize_boolean',
1214
  ],
 
 
 
 
 
 
 
 
1215
  ];
1216
 
1217
  $should_disable_lazyload = sbp_should_disable_feature( 'lazyload' );
@@ -1334,6 +1144,91 @@ class Speed_Booster_Pack_Admin {
1334
  ],
1335
  ] );
1336
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1337
  CSF::createSection(
1338
  $prefix,
1339
  [
@@ -1345,6 +1240,228 @@ class Speed_Booster_Pack_Admin {
1345
  );
1346
  /* END Section: Assets */
1347
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1348
  /* BEGIN Section: Special */
1349
  CSF::createSection(
1350
  $prefix,
@@ -1364,70 +1481,6 @@ class Speed_Booster_Pack_Admin {
1364
  'default' => true,
1365
  'sanitize' => 'sbp_sanitize_boolean',
1366
  ],
1367
- [
1368
- 'title' => __( 'Localize Google Analytics & Google Tag Manager', 'speed-booster-pack' ),
1369
- 'id' => 'localize_tracking_scripts',
1370
- 'type' => 'switcher',
1371
- 'desc' => __( 'Searches for Google Analytics or Google Tag Manager scripts (analytics.js, gtag.js or gtm.js) in your page sources, and replaces them with a locally saved script.', 'speed-booster-pack' ),
1372
- 'dependency' => [ 'module_special', '==', '1', '', 'visible' ],
1373
- 'sanitize' => 'sbp_sanitize_boolean',
1374
- ],
1375
- [
1376
- 'title' => __( 'Custom code manager', 'speed-booster-pack' ),
1377
- 'id' => 'custom_codes',
1378
- 'type' => 'group',
1379
- 'before' => '<p>' . __( 'Code blocks added with this tool can be loaded in the header, the footer and can even be delayed.', 'speed-booster-pack' ) . '</p>',
1380
- 'accordion_title_number' => true,
1381
- 'accordion_title_auto' => false,
1382
- 'sanitize' => function ( $item ) {
1383
- if ( $item && is_iterable( $item ) ) {
1384
- foreach ( $item as &$code_item ) {
1385
- if ( isset( $code_item['custom_codes_item'] ) ) {
1386
- $code = $code_item['custom_codes_item'];
1387
- $code = preg_replace( '#<(textarea)>.*?<\/$1>#s', '', $code );
1388
- $code_item['custom_codes_item'] = str_replace( '</textarea>', '', $code );
1389
- }
1390
- }
1391
- }
1392
-
1393
- return $item;
1394
- },
1395
- 'fields' => [
1396
- [
1397
- 'id' => 'custom_codes_item',
1398
- 'type' => 'code_editor',
1399
- 'before' => '&lt;script&gt;',
1400
- 'after' => '&lt;/script&gt;',
1401
- /* translators: %s = script tag */
1402
- 'desc' => sprintf( __( 'Paste the inline JavaScript here. DON\'T include the %s tags or else you might break it!', 'speed-booster-pack' ), '<code>&lt;script&gt;</code>' ),
1403
- 'settings' => [ 'lineWrapping' => true ],
1404
- ],
1405
- [
1406
- 'title' => __( 'Placement', 'speed-booster-pack' ),
1407
- 'id' => 'custom_codes_place',
1408
- 'desc' => __( 'Set this to "Footer" to place the code before &lt;/body&gt;, or "Header" to place it before &lt;/head&gt;.', 'speed-booster-pack' ),
1409
- 'type' => 'button_set',
1410
- 'options' => [
1411
- 'footer' => __( 'Footer', 'speed-booster-pack' ),
1412
- 'header' => __( 'Header', 'speed-booster-pack' ),
1413
- ],
1414
- 'default' => 'footer',
1415
- ],
1416
- [
1417
- 'title' => __( 'Loading method', 'speed-booster-pack' ),
1418
- 'id' => 'custom_codes_method',
1419
- 'desc' => __( 'Set this to "onload" to defer the code to page onload, or "4-second delay" to defer it to four seconds after onload. When in doubt, set it to "Normal".', 'speed-booster-pack' ),
1420
- 'type' => 'button_set',
1421
- 'options' => [
1422
- 'normal' => __( 'Normal', 'speed-booster-pack' ),
1423
- 'onload' => __( 'onload', 'speed-booster-pack' ),
1424
- 'delayed' => __( '4-second delay', 'speed-booster-pack' ),
1425
- ],
1426
- 'default' => 'normal',
1427
- ],
1428
- ],
1429
- 'dependency' => [ 'module_special', '==', '1', '', 'visible' ],
1430
- ],
1431
  [
1432
  'title' => 'WooCommerce: ' . __( 'Disable cart fragments', 'speed-booster-pack' ),
1433
  'id' => 'woocommerce_disable_cart_fragments',
117
  wp_localize_script( 'sbp_intro_js',
118
  'sbp_intro_translations',
119
  [
120
+ /* translators: onboarding modal, first step title */
121
+ 'welcomeTitle' => __( 'Welcome!', 'speed-booster-pack' ),
122
  /* translators: onboarding modal, first step */
123
  'welcome' => __( 'Welcome to Speed Booster Pack! We\'d like to give you a quick tour - feel free to close this box and look around the options yourself, or click Next to see our short intro.', 'speed-booster-pack' ),
124
+ /* translators: onboarding modal, second step title */
125
+ 'cachingTitle' => __( 'Caching', 'speed-booster-pack' ),
126
  /* translators: onboarding modal, second step */
127
  'caching' => __( 'This is our caching tab. Here, you can set caching for your pages to immediately speed up your website.', 'speed-booster-pack' ),
128
+ /* translators: onboarding modal, third step title */
129
+ 'caching2Title' => __( 'Module Toggles', 'speed-booster-pack' ),
130
  /* translators: onboarding modal, third step */
131
+ 'caching2' => __( 'Most tabs have module toggles like this. Turning on or off the module toggle enables or disables the whole module.', 'speed-booster-pack' ),
132
+ /* translators: onboarding modal, fourth step title */
133
+ 'generalTitle' => __( 'General Settings', 'speed-booster-pack' ),
134
  /* translators: onboarding modal, fourth step */
135
  'general' => __( 'The "General" tab includes various tweaks to clean up and speed up things. You can also disable Speed Booster Pack features for certain user roles (e.g. subscribers or customers) if you need to.', 'speed-booster-pack' ),
136
+ /* translators: onboarding modal, fifth step title */
137
+ 'cdnTitle' => __( 'CDN & Proxy Settings', 'speed-booster-pack' ),
138
  /* translators: onboarding modal, fifth step */
139
  'cdn' => __( 'The CDN & Proxy tab has three main settings: You can set a CDN domain to serve all your assets from, you can connect to your Cloudflare account to change your Cloudflare settings, and you can connect to your Sucuri account so you can clear your Sucuri cache automatically.', 'speed-booster-pack' ),
140
+ /* translators: onboarding modal, sixth step title */
141
+ 'cssTitle' => __( 'CSS Settings', 'speed-booster-pack' ),
142
  /* translators: onboarding modal, sixth step */
143
  'css' => __( 'The Optimize CSS tab has some delicate settings which, if configured properly, can drastically improve your website performance. Be sure to follow the directions properly - especially the Critical CSS settings!', 'speed-booster-pack' ),
144
+ /* translators: onboarding modal, seventh step title */
145
+ 'assetsTitle' => __( 'Assets Settings', 'speed-booster-pack' ),
146
  /* translators: onboarding modal, seventh step */
147
  'assets' => __( 'The Assets tab can improve your website performance using font optimization, lazy loading, asset preloading and JavaScript optimization. It\'s tempting to enable them all, but make sure you test each change thoroughly or else you can break your website! Think of these tools like powerful weapons which you can hurt yourself with.', 'speed-booster-pack' ),
148
+ /* translators: onboarding modal, last step title */
149
+ 'endTitle' => __( 'Done!', 'speed-booster-pack' ),
150
  /* translators: onboarding modal, last step */
151
  'end' => __( 'That\'s it! Actually, that\'s not it - make sure you check the other tabs to see if you have more room to improve your website speed. Don\'t be afraid to experiment; even if you break something, resetting settings or simply deactivating Speed Booster Pack will undo everything.', 'speed-booster-pack' ),
152
  /* translators: onboarding modal, "Next" label */
652
  ],
653
  [
654
  'id' => 'caching_ls_cache_logged_in_users',
 
655
  'title' => __( 'Cache logged in users', 'speed-booster-pack' ),
656
  'desc' => __( 'Enable cache for logged in users.', 'speed-booster-pack' ),
657
  'class' => $ls_caching_class,
744
  );
745
  /* END Section: Caching */
746
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
747
  /* BEGIN Section: Optimize CSS */
748
  $critical_css_fields = [
749
  [
1014
  'dependency' => [ 'module_assets', '==', '1', '', 'visible' ],
1015
  'sanitize' => 'sbp_sanitize_boolean',
1016
  ],
1017
+ [
1018
+ 'title' => __( 'Localize Google Analytics & Google Tag Manager', 'speed-booster-pack' ),
1019
+ 'id' => 'localize_tracking_scripts',
1020
+ 'type' => 'switcher',
1021
+ 'desc' => __( 'Searches for Google Analytics or Google Tag Manager scripts (analytics.js, gtag.js or gtm.js) in your page sources, and replaces them with a locally saved script.', 'speed-booster-pack' ),
1022
+ 'dependency' => [ 'module_assets', '==', '1', '', 'visible' ],
1023
+ 'sanitize' => 'sbp_sanitize_boolean',
1024
+ ],
1025
  ];
1026
 
1027
  $should_disable_lazyload = sbp_should_disable_feature( 'lazyload' );
1144
  ],
1145
  ] );
1146
 
1147
+
1148
+ // Custom Code Manager
1149
+ if ( is_array( sbp_get_option( 'custom_codes', [] ) ) && count( sbp_get_option( 'custom_codes', [] ) ) ) {
1150
+ // We removed this feature but still need to keep it's content. So, hide it using only css.
1151
+ $custom_code_manager = [ [
1152
+ 'title' => __( 'Custom code manager', 'speed-booster-pack' ),
1153
+ 'id' => 'custom_codes',
1154
+ 'type' => 'group',
1155
+ 'class' => 'sbp-hidden',
1156
+ 'before' => '<p>' . __( 'Code blocks added with this tool can be loaded in the header, the footer and can even be delayed.', 'speed-booster-pack' ) . '</p>',
1157
+ 'accordion_title_number' => true,
1158
+ 'accordion_title_auto' => false,
1159
+ 'sanitize' => function ( $item ) {
1160
+ if ( $item && is_iterable( $item ) ) {
1161
+ foreach ( $item as &$code_item ) {
1162
+ if ( isset( $code_item['custom_codes_item'] ) ) {
1163
+ $code = $code_item['custom_codes_item'];
1164
+ $code = preg_replace( '#<(textarea)>.*?<\/$1>#s', '', $code );
1165
+ $code_item['custom_codes_item'] = str_replace( '</textarea>', '', $code );
1166
+ }
1167
+ }
1168
+ }
1169
+
1170
+ return $item;
1171
+ },
1172
+ 'fields' => [
1173
+ [
1174
+ 'id' => 'custom_codes_item',
1175
+ 'type' => 'code_editor',
1176
+ 'before' => '&lt;script&gt;',
1177
+ 'after' => '&lt;/script&gt;',
1178
+ /* translators: %s = script tag */
1179
+ 'desc' => sprintf( __( 'Paste the inline JavaScript here. DON\'T include the %s tags or else you might break it!', 'speed-booster-pack' ), '<code>&lt;script&gt;</code>' ),
1180
+ 'settings' => [ 'lineWrapping' => true ],
1181
+ ],
1182
+ [
1183
+ 'title' => __( 'Placement', 'speed-booster-pack' ),
1184
+ 'id' => 'custom_codes_place',
1185
+ 'desc' => __( 'Set this to "Footer" to place the code before &lt;/body&gt;, or "Header" to place it before &lt;/head&gt;.', 'speed-booster-pack' ),
1186
+ 'type' => 'button_set',
1187
+ 'options' => [
1188
+ 'footer' => __( 'Footer', 'speed-booster-pack' ),
1189
+ 'header' => __( 'Header', 'speed-booster-pack' ),
1190
+ ],
1191
+ 'default' => 'footer',
1192
+ ],
1193
+ [
1194
+ 'title' => __( 'Loading method', 'speed-booster-pack' ),
1195
+ 'id' => 'custom_codes_method',
1196
+ 'desc' => __( 'Set this to "onload" to defer the code to page onload, or "4-second delay" to defer it to four seconds after onload. When in doubt, set it to "Normal".', 'speed-booster-pack' ),
1197
+ 'type' => 'button_set',
1198
+ 'options' => [
1199
+ 'normal' => __( 'Normal', 'speed-booster-pack' ),
1200
+ 'onload' => __( 'onload', 'speed-booster-pack' ),
1201
+ 'delayed' => __( '4-second delay', 'speed-booster-pack' ),
1202
+ ],
1203
+ 'default' => 'normal',
1204
+ ],
1205
+ ],
1206
+ ] ];
1207
+
1208
+ $asset_fields = array_merge( $asset_fields, $custom_code_manager );
1209
+
1210
+ $custom_code_manager_backup = '';
1211
+
1212
+ $i = 1;
1213
+ foreach ( sbp_get_option( 'custom_codes', [] ) as $code ) {
1214
+ $custom_code_manager_backup .= '<!-- Custom code #' . $i . ' (' . $code['custom_codes_place'] . ') -->' . PHP_EOL;
1215
+ $custom_code_manager_backup .= '<script>' . PHP_EOL;
1216
+ $custom_code_manager_backup .= $code['custom_codes_item'] . PHP_EOL;
1217
+ $custom_code_manager_backup .= '</script>' . PHP_EOL . PHP_EOL;
1218
+ $i ++;
1219
+ }
1220
+
1221
+ SBP_Notice_Manager::display_notice(
1222
+ 'custom_code_manager_backup',
1223
+ '<p>' . __( 'Speed Booster Pack: We have removed the Custom Code Manager feature from our plugin because it\'s not totally related to performance. Since you were using this feature, here\'s a backup of your custom codes:', 'speed-booster-pack' ) . '</p>' .
1224
+ '<textarea style="max-width: 100%; width: 600px; min-height: 150px;" readonly>' . $custom_code_manager_backup . '</textarea>' .
1225
+ '<p>' . sprintf( __( 'You can use any plugin you want to add these custom codes (%s is a decent alternative). Better yet, you can use your theme if it has a custom code feature.', 'speed-booster-pack' ), '<a href="https://wordpress.org/plugins/insert-headers-and-footers/" target="_blank" rel="external nofollow">Insert Headers and Footers</a>' ) . '</p>' .
1226
+ '<p><button class="button button-primary sbp-dismiss-ccm-notice notice-dismiss-button" data-notice-id="custom_code_manager_backup" data-notice-action="sbp_dismiss_notice">' . __( 'I copied the code, dismiss this notice', 'speed-booster-pack' ) . '</button></p>',
1227
+ 'warning',
1228
+ false
1229
+ );
1230
+ }
1231
+
1232
  CSF::createSection(
1233
  $prefix,
1234
  [
1240
  );
1241
  /* END Section: Assets */
1242
 
1243
+ /* BEGIN Section: CDN & Proxy */
1244
+ /* Begin Of Cloudflare Fields */
1245
+ $cloudflare_fields = [
1246
+ [
1247
+ 'title' => __( 'Cloudflare', 'speed-booster-pack' ),
1248
+ 'type' => 'subheading',
1249
+ ],
1250
+ [
1251
+ 'title' => __( 'Connect to Cloudflare', 'speed-booster-pack' ),
1252
+ 'id' => 'cloudflare_enable',
1253
+ 'type' => 'switcher',
1254
+ 'sanitize' => 'sbp_sanitize_boolean',
1255
+ ],
1256
+ [
1257
+ 'title' => __( 'Cloudflare global API key', 'speed-booster-pack' ),
1258
+ 'id' => 'cloudflare_api',
1259
+ 'type' => 'text',
1260
+ 'desc' => '<a href="https://developers.cloudflare.com/api/keys/#view-your-api-key" rel="external noopener" target="_blank">' . __( 'You can find it using this tutorial.', 'speed-booster-pack' ) . '</a>',
1261
+ 'dependency' => [ 'cloudflare_enable', '==', '1', '', 'visible' ],
1262
+ ],
1263
+ [
1264
+ 'title' => __( 'Cloudflare email address', 'speed-booster-pack' ),
1265
+ 'id' => 'cloudflare_email',
1266
+ 'type' => 'text',
1267
+ 'desc' => __( 'The email address you signed up for Cloudflare with.', 'speed-booster-pack' ),
1268
+ 'dependency' => [ 'cloudflare_enable', '==', '1', '', 'visible' ],
1269
+ ],
1270
+ [
1271
+ 'title' => __( 'Cloudflare zone ID', 'speed-booster-pack' ),
1272
+ 'id' => 'cloudflare_zone',
1273
+ 'type' => 'text',
1274
+ 'desc' => __( 'You can find your zone ID in the Overview tab on your Cloudflare panel.', 'speed-booster-pack' ),
1275
+ 'dependency' => [ 'cloudflare_enable', '==', '1', '', 'visible' ],
1276
+ ],
1277
+ [
1278
+ 'title' => __( 'Rocket Loader', 'speed-booster-pack' ),
1279
+ 'id' => 'cf_rocket_loader_enable',
1280
+ 'class' => 'with-preloader',
1281
+ 'type' => 'switcher',
1282
+ 'dependency' => [ 'cloudflare_enable', '==', '1', '', 'visible' ],
1283
+ 'sanitize' => 'sbp_sanitize_boolean',
1284
+ ],
1285
+ [
1286
+ 'title' => __( 'Development Mode', 'speed-booster-pack' ),
1287
+ 'id' => 'cf_dev_mode_enable',
1288
+ 'class' => 'with-preloader',
1289
+ 'type' => 'switcher',
1290
+ 'dependency' => [ 'cloudflare_enable', '==', '1', '', 'visible' ],
1291
+ 'sanitize' => 'sbp_sanitize_boolean',
1292
+ ],
1293
+ [
1294
+ 'title' => __( 'Minify CSS', 'speed-booster-pack' ),
1295
+ 'id' => 'cf_css_minify_enable',
1296
+ 'class' => 'with-preloader',
1297
+ 'type' => 'switcher',
1298
+ 'dependency' => [ 'cloudflare_enable', '==', '1', '', 'visible' ],
1299
+ 'sanitize' => 'sbp_sanitize_boolean',
1300
+ ],
1301
+ [
1302
+ 'title' => __( 'Minify HTML', 'speed-booster-pack' ),
1303
+ 'id' => 'cf_html_minify_enable',
1304
+ 'class' => 'with-preloader',
1305
+ 'type' => 'switcher',
1306
+ 'dependency' => [ 'cloudflare_enable', '==', '1', '', 'visible' ],
1307
+ 'sanitize' => 'sbp_sanitize_boolean',
1308
+ ],
1309
+ [
1310
+ 'title' => __( 'Minify JS', 'speed-booster-pack' ),
1311
+ 'id' => 'cf_js_minify_enable',
1312
+ 'class' => 'with-preloader',
1313
+ 'type' => 'switcher',
1314
+ 'dependency' => [ 'cloudflare_enable', '==', '1', '', 'visible' ],
1315
+ 'sanitize' => 'sbp_sanitize_boolean',
1316
+ ],
1317
+ [
1318
+ 'title' => __( 'Automatic Platform Optimization', 'speed-booster-pack' ),
1319
+ 'id' => 'cf_apo_enable',
1320
+ 'desc' => __( 'You need to be a paying Cloudflare user to enable this setting, otherwise it will get disabled again.', 'speed-booster-pack' ),
1321
+ 'class' => 'with-preloader',
1322
+ 'type' => 'switcher',
1323
+ 'dependency' => [ 'cloudflare_enable', '==', '1', '', 'visible' ],
1324
+ 'sanitize' => 'sbp_sanitize_boolean',
1325
+ ],
1326
+ [
1327
+ 'title' => __( 'APO: Cache By Device Type', 'speed-booster-pack' ),
1328
+ 'id' => 'cf_apo_device_type',
1329
+ 'class' => 'with-preloader',
1330
+ 'type' => 'switcher',
1331
+ 'dependency' => [ 'cloudflare_enable', '==', '1', '', 'visible' ],
1332
+ 'sanitize' => 'sbp_sanitize_boolean',
1333
+ ],
1334
+ [
1335
+ 'title' => __( 'Browser Cache TTL', 'speed-booster-pack' ),
1336
+ 'id' => 'cf_browser_cache_ttl',
1337
+ 'class' => 'with-preloader',
1338
+ 'type' => 'select',
1339
+ 'options' => [
1340
+ 0 => __( 'Respect Existing Headers', 'speed-booster-pack' ),
1341
+ 1800 => __( '30 minutes', 'speed-booster-pack' ),
1342
+ 3600 => __( '1 hour', 'speed-booster-pack' ),
1343
+ 7200 => __( '2 hours', 'speed-booster-pack' ),
1344
+ 10800 => __( '3 hours', 'speed-booster-pack' ),
1345
+ 14400 => __( '4 hours', 'speed-booster-pack' ),
1346
+ 18000 => __( '5 hours', 'speed-booster-pack' ),
1347
+ 28800 => __( '8 hours', 'speed-booster-pack' ),
1348
+ 43200 => __( '12 hours', 'speed-booster-pack' ),
1349
+ 57600 => __( '16 hours', 'speed-booster-pack' ),
1350
+ 72000 => __( '20 hours', 'speed-booster-pack' ),
1351
+ 86400 => __( '1 day', 'speed-booster-pack' ),
1352
+ 172800 => __( '2 days', 'speed-booster-pack' ),
1353
+ 259200 => __( '3 days', 'speed-booster-pack' ),
1354
+ 345600 => __( '4 days', 'speed-booster-pack' ),
1355
+ 432000 => __( '5 days', 'speed-booster-pack' ),
1356
+ 691200 => __( '8 days', 'speed-booster-pack' ),
1357
+ 1382400 => __( '16 days', 'speed-booster-pack' ),
1358
+ 2073600 => __( '24 days', 'speed-booster-pack' ),
1359
+ 2678400 => __( '1 month', 'speed-booster-pack' ),
1360
+ 5356800 => __( '2 months', 'speed-booster-pack' ),
1361
+ 16070400 => __( '6 months', 'speed-booster-pack' ),
1362
+ 31536000 => __( '1 year', 'speed-booster-pack' ),
1363
+ ],
1364
+ 'dependency' => [ 'cloudflare_enable', '==', '1', '', 'visible' ],
1365
+ ],
1366
+ [
1367
+ 'type' => 'content',
1368
+ 'content' => '
1369
+ <span>
1370
+ <a href="#" class="button button-small sbp-cloudflare-test">' . __( 'Test Cloudflare connection', 'speed-booster-pack' ) . '<span class="sbp-cloudflare-spinner"></span></a>
1371
+ <span class="sbp-cloudflare-fetching">' . __( 'Fetching Cloudflare settings...', 'speed-booster-pack' ) . '</span>
1372
+ </span>
1373
+ <span class="sbp-cloudflare-info-text sbp-cloudflare-incorrect" style="color:red; vertical-align: middle;"><i class="fa fa-exclamation-triangle"></i> ' . __( 'Your Cloudflare credentials are incorrect.', 'speed-booster-pack' ) . '</span>
1374
+ <span class="sbp-cloudflare-info-text sbp-cloudflare-connection-issue" style="color:red; vertical-align: middle;"><i class="fa fa-exclamation-triangle"></i> ' . __( 'Error occured while connecting to Cloudflare.', 'speed-booster-pack' ) . '</span>
1375
+ <span class="sbp-cloudflare-info-text sbp-cloudflare-correct" style="color:green; vertical-align: middle;"><i class="fa fa-check-circle"></i> ' . __( 'Your Cloudflare credentials are correct.', 'speed-booster-pack' ) . '</span>
1376
+ <span class="sbp-cloudflare-info-text sbp-cloudflare-warning" style="color:orange; vertical-align: middle;"><i class="fa fa-exclamation-circle"></i> ' . __( 'Enter your Cloudflare credentials and save settings to see CloudFlare options.', 'speed-booster-pack' ) . '</span>
1377
+ ',
1378
+ 'dependency' => [ 'cloudflare_enable', '==', '1', '', 'visible' ],
1379
+ ],
1380
+ ];
1381
+ /* End Of Cloudflare Fields */
1382
+
1383
+ /* Begin Of Sucuri Fields */
1384
+ $sucuri_fields = [
1385
+ [
1386
+ 'title' => __( 'Sucuri', 'speed-booster-pack' ),
1387
+ 'type' => 'subheading',
1388
+ ],
1389
+ [
1390
+ 'title' => __( 'Connect to Sucuri', 'speed-booster-pack' ),
1391
+ 'id' => 'sucuri_enable',
1392
+ 'type' => 'switcher',
1393
+ 'desc' => sprintf( __( 'When you connect your Sucuri account, you\'ll be able to clear your Sucuri cache via your admin bar. Plus, every time %1$s Cache\'s cache is cleared, Sucuri\'s cache will be cleared as well.', 'speed-booster-pack' ), SBP_PLUGIN_NAME ),
1394
+ 'sanitize' => 'sbp_sanitize_boolean',
1395
+ ],
1396
+ [
1397
+ 'title' => __( 'Sucuri API key', 'speed-booster-pack' ),
1398
+ 'id' => 'sucuri_api',
1399
+ 'type' => 'text',
1400
+ 'dependency' => [ 'sucuri_enable', '==', '1', '', 'visible' ],
1401
+ ],
1402
+ [
1403
+ 'title' => __( 'Sucuri API Secret', 'speed-booster-pack' ),
1404
+ 'id' => 'sucuri_secret',
1405
+ 'type' => 'text',
1406
+ 'dependency' => [ 'sucuri_enable', '==', '1', '', 'visible' ],
1407
+ ],
1408
+ ];
1409
+ /* End Of Sucuri Fields */
1410
+
1411
+ $proxy_fields = array_merge( [
1412
+ [
1413
+ 'title' => __( 'CDN', 'speed-booster-pack' ),
1414
+ 'type' => 'subheading',
1415
+ ],
1416
+ [
1417
+ 'title' => __( 'Enable/Disable', 'speed-booster-pack' ) . ' ' . __( 'CDN', 'speed-booster-pack' ),
1418
+ 'id' => 'cdn_enable',
1419
+ 'type' => 'switcher',
1420
+ // B_TODO: Description text needed.
1421
+ 'desc' => __( '', 'speed-booster-pack' ),
1422
+ 'sanitize' => 'sbp_sanitize_boolean',
1423
+ ],
1424
+ [
1425
+ 'title' => __( 'CDN domain', 'speed-booster-pack' ),
1426
+ 'id' => 'cdn_url',
1427
+ 'class' => 'cdn-url',
1428
+ 'type' => 'text',
1429
+ 'before' => 'http(s)://&nbsp;',
1430
+ 'after' => '&nbsp;/',
1431
+ 'desc' => __( 'Rewrites all asset URLs with the specified CDN domain. Enter the CDN domain without a protocol or a trailing slash; a relative protocol will be automatically added to all changed asset URLs.', 'speed-booster-pack' ),
1432
+ 'sanitize' => 'sbp_sanitize_url',
1433
+ 'dependency' => [ 'cdn_enable', '!=', '', '', 'visible' ],
1434
+ ],
1435
+ [
1436
+ 'title' => __( 'Included Directories', 'speed-booster-pack' ),
1437
+ 'id' => 'cdn_includes',
1438
+ 'type' => 'code_editor',
1439
+ 'desc' => __( 'Anything other than WordPress\'s existing directories should be entered here to be rewritten with the CDN domain. Separated by new lines.', 'speed-booster-pack' ),
1440
+ 'sanitize' => 'sbp_sanitize_strip_tags',
1441
+ 'dependency' => [ 'cdn_enable', '!=', '', '', 'visible' ],
1442
+ ],
1443
+ [
1444
+ 'title' => __( 'Excluded Extensions', 'speed-booster-pack' ),
1445
+ 'id' => 'cdn_excludes',
1446
+ 'type' => 'code_editor',
1447
+ 'desc' => __( 'If you want to exclude certain file types, enter the extensions here. Separated by new lines.', 'speed-booster-pack' ),
1448
+ 'sanitize' => 'sbp_sanitize_strip_tags',
1449
+ 'dependency' => [ 'cdn_enable', '!=', '', '', 'visible' ],
1450
+ ],
1451
+ ],
1452
+ $cloudflare_fields,
1453
+ $sucuri_fields );
1454
+ CSF::createSection(
1455
+ $prefix,
1456
+ array(
1457
+ 'title' => __( 'CDN & Proxy', 'speed-booster-pack' ),
1458
+ 'id' => 'cdn_proxy',
1459
+ 'icon' => 'fa fa-directions',
1460
+ 'fields' => $proxy_fields,
1461
+ )
1462
+ );
1463
+ /* END Section: CDN & Proxy */
1464
+
1465
  /* BEGIN Section: Special */
1466
  CSF::createSection(
1467
  $prefix,
1481
  'default' => true,
1482
  'sanitize' => 'sbp_sanitize_boolean',
1483
  ],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1484
  [
1485
  'title' => 'WooCommerce: ' . __( 'Disable cart fragments', 'speed-booster-pack' ),
1486
  'id' => 'woocommerce_disable_cart_fragments',
admin/css/intro.min.css CHANGED
@@ -1,2 +1 @@
1
- @-webkit-keyframes introjspulse{0%{-webkit-transform:scale(0);transform:scale(0);opacity:0}25%{-webkit-transform:scale(0);transform:scale(0);opacity:.1}50%{-webkit-transform:scale(.1);transform:scale(.1);opacity:.3}75%{-webkit-transform:scale(.5);transform:scale(.5);opacity:.5}100%{-webkit-transform:scale(1);transform:scale(1);opacity:0}}@keyframes introjspulse{0%{-webkit-transform:scale(0);transform:scale(0);opacity:0}25%{-webkit-transform:scale(0);transform:scale(0);opacity:.1}50%{-webkit-transform:scale(.1);transform:scale(.1);opacity:.3}75%{-webkit-transform:scale(.5);transform:scale(.5);opacity:.5}100%{-webkit-transform:scale(1);transform:scale(1);opacity:0}}.introjs-overlay{position:absolute;-webkit-box-sizing:content-box;box-sizing:content-box;z-index:999999;opacity:0;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.introjs-showElement{z-index:9999999!important}tr.introjs-showElement>td{z-index:9999999!important;position:relative}tr.introjs-showElement>th{z-index:9999999!important;position:relative}.introjs-disableInteraction{z-index:99999999!important;position:absolute;background-color:#fff;opacity:0}.introjs-relativePosition{position:relative}.introjs-helperLayer{-webkit-box-sizing:content-box;box-sizing:content-box;position:absolute;z-index:9999998;border-radius:4px;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.introjs-helperLayer *{-webkit-box-sizing:content-box;box-sizing:content-box}.introjs-helperLayer :before{-webkit-box-sizing:content-box;box-sizing:content-box}.introjs-helperLayer :after{-webkit-box-sizing:content-box;box-sizing:content-box}.introjs-tooltipReferenceLayer{font-family:"Helvetica Neue",Inter,ui-sans-serif,"Apple Color Emoji",Helvetica,Arial,sans-serif;-webkit-box-sizing:content-box;box-sizing:content-box;position:absolute;visibility:hidden;z-index:100000000;background-color:transparent;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.introjs-tooltipReferenceLayer *{font-family:"Helvetica Neue",Inter,ui-sans-serif,"Apple Color Emoji",Helvetica,Arial,sans-serif}.introjs-helperNumberLayer{font-family:"Helvetica Neue",Inter,ui-sans-serif,"Apple Color Emoji",Helvetica,Arial,sans-serif;color:#9e9e9e;text-align:center;padding-top:10px;padding-bottom:10px}.introjs-arrow{border:5px solid transparent;content:"";position:absolute}.introjs-arrow.top{top:-10px;left:10px;border-bottom-color:#fff}.introjs-arrow.top-right{top:-10px;right:10px;border-bottom-color:#fff}.introjs-arrow.top-middle{top:-10px;left:50%;margin-left:-5px;border-bottom-color:#fff}.introjs-arrow.right{right:-10px;top:10px;border-left-color:#fff}.introjs-arrow.right-bottom{bottom:10px;right:-10px;border-left-color:#fff}.introjs-arrow.bottom{bottom:-10px;left:10px;border-top-color:#fff}.introjs-arrow.bottom-right{bottom:-10px;right:10px;border-top-color:#fff}.introjs-arrow.bottom-middle{bottom:-10px;left:50%;margin-left:-5px;border-top-color:#fff}.introjs-arrow.left{left:-10px;top:10px;border-right-color:#fff}.introjs-arrow.left-bottom{left:-10px;bottom:10px;border-right-color:#fff}.introjs-tooltip{-webkit-box-sizing:content-box;box-sizing:content-box;position:absolute;visibility:visible;background-color:#fff;min-width:250px;max-width:300px;border-radius:5px;-webkit-box-shadow:0 3px 30px rgba(33,33,33,.3);box-shadow:0 3px 30px rgba(33,33,33,.3);-webkit-transition:opacity .1s ease-out;-o-transition:opacity .1s ease-out;transition:opacity .1s ease-out}.introjs-tooltiptext{padding:20px}.introjs-tooltip-title{font-size:18px;margin:0;padding:0;font-weight:700;float:left;line-height:32px}.introjs-tooltip-header{padding-left:20px;padding-right:20px;padding-top:10px}.introjs-tooltip-header:after{content:".";visibility:hidden;display:block;height:0;clear:both}.introjs-tooltipbuttons{border-top:1px solid #e0e0e0;padding:10px;text-align:right;white-space:nowrap}.introjs-tooltipbuttons:after{content:"";visibility:hidden;display:block;height:0;clear:both}.introjs-button{-webkit-box-sizing:content-box;box-sizing:content-box;position:relative;overflow:visible;display:inline-block;padding:.5rem 1rem;border:1px solid #bdbdbd;text-decoration:none;text-shadow:1px 1px 0 #fff;font-size:14px;color:#424242;white-space:nowrap;cursor:pointer;outline:0;background-color:#f4f4f4;border-radius:.2em;zoom:1}.introjs-button:hover{outline:0;text-decoration:none;border-color:#9e9e9e;background-color:#e0e0e0;color:#212121}.introjs-button:focus{outline:0;text-decoration:none;background-color:#eee;-webkit-box-shadow:0 0 0 .2rem rgba(158,158,158,.5);box-shadow:0 0 0 .2rem rgba(158,158,158,.5);border:1px solid #616161;color:#212121}.introjs-button:active{outline:0;text-decoration:none;background-color:#e0e0e0;border-color:#9e9e9e;color:#212121}.introjs-button::-moz-focus-inner{padding:0;border:0}.introjs-skipbutton{-webkit-box-sizing:content-box;box-sizing:content-box;color:#616161;float:right;font-size:20px;cursor:pointer;font-weight:700;line-height:1;text-align:center;padding:7px 10px}.introjs-skipbutton:focus,.introjs-skipbutton:hover{color:#212121;outline:0;text-decoration:none}.introjs-prevbutton{float:left}.introjs-nextbutton{float:right}.introjs-disabled{color:#9e9e9e;border-color:#bdbdbd;-webkit-box-shadow:none;box-shadow:none;cursor:default;background-color:#f4f4f4;background-image:none;text-decoration:none}.introjs-disabled:focus,.introjs-disabled:hover{color:#9e9e9e;border-color:#bdbdbd;-webkit-box-shadow:none;box-shadow:none;cursor:default;background-color:#f4f4f4;background-image:none;text-decoration:none}.introjs-hidden{display:none}.introjs-bullets{text-align:center;padding-top:10px;padding-bottom:10px}.introjs-bullets ul{-webkit-box-sizing:content-box;box-sizing:content-box;clear:both;margin:0 auto 0;padding:0;display:inline-block}.introjs-bullets ul li{-webkit-box-sizing:content-box;box-sizing:content-box;list-style:none;float:left;margin:0 2px}.introjs-bullets ul li a{-webkit-transition:width .1s ease-in;-o-transition:width .1s ease-in;transition:width .1s ease-in;-webkit-box-sizing:content-box;box-sizing:content-box;display:block;width:6px;height:6px;background:#ccc;border-radius:10px;text-decoration:none;cursor:pointer}.introjs-bullets ul li a:focus,.introjs-bullets ul li a:hover{width:15px;background:#999;text-decoration:none;outline:0}.introjs-bullets ul li a.active{width:15px;background:#999}.introjs-progress{-webkit-box-sizing:content-box;box-sizing:content-box;overflow:hidden;height:10px;margin:10px;border-radius:4px;background-color:#e0e0e0}.introjs-progressbar{-webkit-box-sizing:content-box;box-sizing:content-box;float:left;width:0%;height:100%;font-size:10px;line-height:10px;text-align:center;background-color:#08c}.introjsFloatingElement{position:absolute;height:0;width:0;left:50%;top:50%}.introjs-fixedTooltip{position:fixed}.introjs-hint{-webkit-box-sizing:content-box;box-sizing:content-box;position:absolute;background:0 0;width:20px;height:15px;cursor:pointer}.introjs-hint:focus{border:0;outline:0}.introjs-hint:hover>.introjs-hint-pulse{border:5px solid rgba(60,60,60,.57)}.introjs-hidehint{display:none}.introjs-fixedhint{position:fixed}.introjs-hint-pulse{-webkit-box-sizing:content-box;box-sizing:content-box;width:10px;height:10px;border:5px solid rgba(60,60,60,.27);border-radius:30px;background-color:rgba(136,136,136,.24);z-index:10;position:absolute;-webkit-transition:all .2s ease-out;-o-transition:all .2s ease-out;transition:all .2s ease-out}.introjs-hint-no-anim .introjs-hint-dot{-webkit-animation:none;animation:none}.introjs-hint-dot{-webkit-box-sizing:content-box;box-sizing:content-box;border:10px solid rgba(146,146,146,.36);background:0 0;border-radius:60px;height:50px;width:50px;-webkit-animation:introjspulse 3s ease-out;animation:introjspulse 3s ease-out;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;position:absolute;top:-25px;left:-25px;z-index:1;opacity:0}
2
- /*# sourceMappingURL=introjs.min.css.map */
1
+ .introjs-overlay{position:absolute;-webkit-box-sizing:content-box;box-sizing:content-box;z-index:999999;opacity:0;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.introjs-showElement{z-index:9999999!important}tr.introjs-showElement>td{z-index:9999999!important;position:relative}tr.introjs-showElement>th{z-index:9999999!important;position:relative}.introjs-disableInteraction{z-index:99999999!important;position:absolute;background-color:#fff;opacity:0}.introjs-relativePosition{position:relative}.introjs-helperLayer{-webkit-box-sizing:content-box;box-sizing:content-box;position:absolute;z-index:9999998;border-radius:4px;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.introjs-helperLayer *{-webkit-box-sizing:content-box;box-sizing:content-box}.introjs-helperLayer :before{-webkit-box-sizing:content-box;box-sizing:content-box}.introjs-helperLayer :after{-webkit-box-sizing:content-box;box-sizing:content-box}.introjs-tooltipReferenceLayer{font-family:"Helvetica Neue",Inter,ui-sans-serif,"Apple Color Emoji",Helvetica,Arial,sans-serif;-webkit-box-sizing:content-box;box-sizing:content-box;position:absolute;visibility:hidden;z-index:100000000;background-color:transparent;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}.introjs-tooltipReferenceLayer *{font-family:"Helvetica Neue",Inter,ui-sans-serif,"Apple Color Emoji",Helvetica,Arial,sans-serif}.introjs-helperNumberLayer{font-family:"Helvetica Neue",Inter,ui-sans-serif,"Apple Color Emoji",Helvetica,Arial,sans-serif;color:#9e9e9e;text-align:center;padding-top:10px;padding-bottom:10px}.introjs-arrow{border:5px solid transparent;content:"";position:absolute}.introjs-arrow.top{top:-10px;left:10px;border-bottom-color:#fff}.introjs-arrow.top-right{top:-10px;right:10px;border-bottom-color:#fff}.introjs-arrow.top-middle{top:-10px;left:50%;margin-left:-5px;border-bottom-color:#fff}.introjs-arrow.right{right:-10px;top:10px;border-left-color:#fff}.introjs-arrow.right-bottom{bottom:10px;right:-10px;border-left-color:#fff}.introjs-arrow.bottom{bottom:-10px;left:10px;border-top-color:#fff}.introjs-arrow.bottom-right{bottom:-10px;right:10px;border-top-color:#fff}.introjs-arrow.bottom-middle{bottom:-10px;left:50%;margin-left:-5px;border-top-color:#fff}.introjs-arrow.left{left:-10px;top:10px;border-right-color:#fff}.introjs-arrow.left-bottom{left:-10px;bottom:10px;border-right-color:#fff}.introjs-tooltip{-webkit-box-sizing:content-box;box-sizing:content-box;position:absolute;visibility:visible;background-color:#fff;min-width:250px;max-width:300px;border-radius:5px;-webkit-box-shadow:0 3px 30px rgba(33,33,33,.3);box-shadow:0 3px 30px rgba(33,33,33,.3);-webkit-transition:opacity .1s ease-out;-o-transition:opacity .1s ease-out;transition:opacity .1s ease-out}.introjs-tooltiptext{padding:20px}.introjs-tooltip-title{font-size:18px;margin:0;padding:0;font-weight:700;float:left;line-height:32px}.introjs-tooltip-header{padding-left:20px;padding-right:20px;padding-top:10px}.introjs-tooltip-header:after{content:".";visibility:hidden;display:block;height:0;clear:both}.introjs-tooltipbuttons{border-top:1px solid #e0e0e0;padding:10px;text-align:right;white-space:nowrap}.introjs-tooltipbuttons:after{content:"";visibility:hidden;display:block;height:0;clear:both}.introjs-button{-webkit-box-sizing:content-box;box-sizing:content-box;position:relative;overflow:visible;display:inline-block;padding:.5rem 1rem;border:1px solid #bdbdbd;text-decoration:none;text-shadow:1px 1px 0 #fff;font-size:14px;color:#424242;white-space:nowrap;cursor:pointer;outline:0;background-color:#f4f4f4;border-radius:.2em;zoom:1;display:inline}.introjs-button:hover{outline:0;text-decoration:none;border-color:#9e9e9e;background-color:#e0e0e0;color:#212121}.introjs-button:focus{outline:0;text-decoration:none;background-color:#eee;-webkit-box-shadow:0 0 0 .2rem rgba(158,158,158,.5);box-shadow:0 0 0 .2rem rgba(158,158,158,.5);border:1px solid #616161;color:#212121}.introjs-button:active{outline:0;text-decoration:none;background-color:#e0e0e0;border-color:#9e9e9e;color:#212121}.introjs-button::-moz-focus-inner{padding:0;border:0}.introjs-skipbutton{-webkit-box-sizing:content-box;box-sizing:content-box;color:#616161;float:right;font-size:20px;cursor:pointer;font-weight:700;line-height:1;text-align:center;padding:7px 10px}.introjs-skipbutton:focus,.introjs-skipbutton:hover{color:#212121;outline:0;text-decoration:none}.introjs-prevbutton{float:left}.introjs-nextbutton{float:right}.introjs-disabled{color:#9e9e9e;border-color:#bdbdbd;-webkit-box-shadow:none;box-shadow:none;cursor:default;background-color:#f4f4f4;background-image:none;text-decoration:none}.introjs-disabled:focus,.introjs-disabled:hover{color:#9e9e9e;border-color:#bdbdbd;-webkit-box-shadow:none;box-shadow:none;cursor:default;background-color:#f4f4f4;background-image:none;text-decoration:none}.introjs-hidden{display:none}.introjs-bullets{text-align:center;padding-top:10px;padding-bottom:10px}.introjs-bullets ul{-webkit-box-sizing:content-box;box-sizing:content-box;clear:both;margin:0 auto 0;padding:0;display:inline-block}.introjs-bullets ul li{-webkit-box-sizing:content-box;box-sizing:content-box;list-style:none;float:left;margin:0 2px}.introjs-bullets ul li a{-webkit-transition:width .1s ease-in;-o-transition:width .1s ease-in;transition:width .1s ease-in;-webkit-box-sizing:content-box;box-sizing:content-box;display:block;width:6px;height:6px;background:#ccc;border-radius:10px;text-decoration:none;cursor:pointer}.introjs-bullets ul li a:focus,.introjs-bullets ul li a:hover{width:15px;background:#999;text-decoration:none;outline:0}.introjs-bullets ul li a.active{width:15px;background:#999}.introjs-progress{-webkit-box-sizing:content-box;box-sizing:content-box;overflow:hidden;height:10px;margin:10px;border-radius:4px;background-color:#e0e0e0}.introjs-progressbar{-webkit-box-sizing:content-box;box-sizing:content-box;float:left;width:0%;height:100%;font-size:10px;line-height:10px;text-align:center;background-color:#08c}.introjsFloatingElement{position:absolute;height:0;width:0;left:50%;top:50%}.introjs-fixedTooltip{position:fixed}.introjs-hint{-webkit-box-sizing:content-box;box-sizing:content-box;position:absolute;background:0 0;width:20px;height:15px;cursor:pointer}.introjs-hint:focus{border:0;outline:0}.introjs-hint:hover>.introjs-hint-pulse{background-color:rgba(60,60,60,.57)}.introjs-hidehint{display:none}.introjs-fixedhint{position:fixed}@-webkit-keyframes introjspulse{0%{-webkit-transform:scale(.95);transform:scale(.95);-webkit-box-shadow:0 0 0 0 rgba(0,0,0,.7);box-shadow:0 0 0 0 rgba(0,0,0,.7)}70%{-webkit-transform:scale(1);transform:scale(1);-webkit-box-shadow:0 0 0 10px transparent;box-shadow:0 0 0 10px transparent}100%{-webkit-transform:scale(.95);transform:scale(.95);-webkit-box-shadow:0 0 0 0 transparent;box-shadow:0 0 0 0 transparent}}@keyframes introjspulse{0%{-webkit-transform:scale(.95);transform:scale(.95);-webkit-box-shadow:0 0 0 0 rgba(0,0,0,.7);box-shadow:0 0 0 0 rgba(0,0,0,.7)}70%{-webkit-transform:scale(1);transform:scale(1);-webkit-box-shadow:0 0 0 10px transparent;box-shadow:0 0 0 10px transparent}100%{-webkit-transform:scale(.95);transform:scale(.95);-webkit-box-shadow:0 0 0 0 transparent;box-shadow:0 0 0 0 transparent}}.introjs-hint-pulse{-webkit-box-sizing:content-box;box-sizing:content-box;width:15px;height:15px;border-radius:30px;background-color:rgba(136,136,136,.24);z-index:10;position:absolute;-webkit-transition:all .2s ease-out;-o-transition:all .2s ease-out;transition:all .2s ease-out;-webkit-animation:introjspulse 2s infinite;animation:introjspulse 2s infinite}.introjs-hint-no-anim .introjs-hint-pulse{-webkit-animation:none;animation:none}.introjs-hint-dot{-webkit-box-sizing:content-box;box-sizing:content-box;background:0 0;border-radius:60px;height:50px;width:50px;position:absolute;top:-18px;left:-18px;z-index:1;opacity:0}
 
admin/css/speed-booster-pack-admin.css CHANGED
@@ -180,70 +180,10 @@
180
  color: #fff;
181
  }
182
 
183
- .sbp-advice {
184
- padding: 15px 5px;
185
- border-bottom: 1px solid #ddd;
186
- }
187
-
188
- .sbp-advice p {
189
- display: inline-block;
190
- position: relative;
191
- top: -5px;
192
- }
193
-
194
- .sbp-advice input {
195
- display: none;
196
- }
197
-
198
- .sbp-advice .circle {
199
- display: inline-block;
200
- width: 20px;
201
- height: 20px;
202
- border-radius: 100%;
203
- margin-right: 10px;
204
- }
205
-
206
- .sbp-advice input[type=checkbox]:checked + .circle {
207
- background: green;
208
- position: relative;
209
- }
210
-
211
- .sbp-advice input[type=checkbox]:checked + .circle:after {
212
- content: "✓";
213
- color: #fff;
214
- font-size: 22px;
215
- position: absolute;
216
- right: 0;
217
- }
218
-
219
- .sbp-advice input[type=checkbox]:not(:checked) + .circle {
220
- border: 1px solid #ddd;
221
- }
222
-
223
- .sbp-advice p {
224
- margin: 0!important;
225
- }
226
-
227
- .sbp-advice input[type=checkbox]:checked ~ p {
228
- text-decoration: line-through;
229
- color: #888;
230
- }
231
-
232
  .meta_box_critical_css_excludes.csf-depend-on {
233
  display: none!important;
234
  }
235
 
236
- @-webkit-keyframes loading {
237
- 0% {
238
- -webkit-transform: rotate(0deg);
239
- transform: rotate(0deg);
240
- }
241
- 100% {
242
- -webkit-transform: rotate(360deg);
243
- transform: rotate(360deg);
244
- }
245
- }
246
-
247
  @keyframes loading {
248
  0% {
249
  -webkit-transform: rotate(0deg);
180
  color: #fff;
181
  }
182
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
183
  .meta_box_critical_css_excludes.csf-depend-on {
184
  display: none!important;
185
  }
186
 
 
 
 
 
 
 
 
 
 
 
 
187
  @keyframes loading {
188
  0% {
189
  -webkit-transform: rotate(0deg);
admin/js/init-intro.js CHANGED
@@ -10,32 +10,40 @@ jQuery(function() {
10
  prevLabel: sbp_intro_translations.prevLabel,
11
  doneLabel: sbp_intro_translations.doneLabel,
12
  steps: [{
 
13
  intro: sbp_intro_translations.welcome
14
  }, {
15
  element: document.querySelector('.csf-tab-item:nth-child(3)'),
 
16
  intro: sbp_intro_translations.caching,
17
  position: 'right'
18
  }, {
19
  element: document.querySelector('.module-caching'),
 
20
  intro: sbp_intro_translations.caching2,
21
  position: 'bottom'
22
  }, {
23
  element: document.querySelector('.csf-tab-item:nth-child(2)'),
 
24
  intro: sbp_intro_translations.general,
25
  position: 'right'
26
  }, {
27
- element: document.querySelector('.csf-tab-item:nth-child(4)'),
 
28
  intro: sbp_intro_translations.cdn,
29
  position: 'right'
30
  }, {
31
- element: document.querySelector('.csf-tab-item:nth-child(5)'),
 
32
  intro: sbp_intro_translations.css,
33
  position: 'right'
34
  }, {
35
- element: document.querySelector('.csf-tab-item:nth-child(6)'),
 
36
  intro: sbp_intro_translations.assets,
37
  position: 'right'
38
  }, {
 
39
  intro: sbp_intro_translations.end
40
  }]
41
  }).start().onbeforechange(async function(targetElement) {
10
  prevLabel: sbp_intro_translations.prevLabel,
11
  doneLabel: sbp_intro_translations.doneLabel,
12
  steps: [{
13
+ title: sbp_intro_translations.welcomeTitle,
14
  intro: sbp_intro_translations.welcome
15
  }, {
16
  element: document.querySelector('.csf-tab-item:nth-child(3)'),
17
+ title: sbp_intro_translations.cachingTitle,
18
  intro: sbp_intro_translations.caching,
19
  position: 'right'
20
  }, {
21
  element: document.querySelector('.module-caching'),
22
+ title: sbp_intro_translations.caching2Title,
23
  intro: sbp_intro_translations.caching2,
24
  position: 'bottom'
25
  }, {
26
  element: document.querySelector('.csf-tab-item:nth-child(2)'),
27
+ title: sbp_intro_translations.generalTitle,
28
  intro: sbp_intro_translations.general,
29
  position: 'right'
30
  }, {
31
+ element: document.querySelector('.csf-tab-item:nth-child(6)'),
32
+ title: sbp_intro_translations.cdnTitle,
33
  intro: sbp_intro_translations.cdn,
34
  position: 'right'
35
  }, {
36
+ element: document.querySelector('.csf-tab-item:nth-child(4)'),
37
+ title: sbp_intro_translations.cssTitle,
38
  intro: sbp_intro_translations.css,
39
  position: 'right'
40
  }, {
41
+ element: document.querySelector('.csf-tab-item:nth-child(5)'),
42
+ title: sbp_intro_translations.assetsTitle,
43
  intro: sbp_intro_translations.assets,
44
  position: 'right'
45
  }, {
46
+ title: sbp_intro_translations.endTitle,
47
  intro: sbp_intro_translations.end
48
  }]
49
  }).start().onbeforechange(async function(targetElement) {
admin/js/intro.min.js CHANGED
@@ -1,10 +1,10 @@
1
  /*!
2
- * Intro.js v4.2.2
3
  * https://introjs.com
4
  *
5
- * Copyright (C) 2012-2021 Afshin Mehrabani (@afshinmeh).
6
- * https://raw.githubusercontent.com/usablica/intro.js/master/license.md
7
  *
8
- * Date: Fri, 27 Aug 2021 12:07:05 GMT
9
  */
10
- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).introJs=e()}(this,(function(){"use strict";function t(e){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(e)}var e=function(){var t={};return function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"introjs-stamp";return t[n]=t[n]||0,void 0===e[n]&&(e[n]=t[n]++),e[n]}}();function n(t,e,n){if(t)for(var i=0,o=t.length;i<o;i++)e(t[i],i);"function"==typeof n&&n()}var i=new function(){var t="introjs_event";this._id=function(t,n,i,o){return n+e(i)+(o?"_".concat(e(o)):"")},this.on=function(e,n,i,o,r){var l=this._id.apply(this,arguments),a=function(t){return i.call(o||e,t||window.event)};"addEventListener"in e?e.addEventListener(n,a,r):"attachEvent"in e&&e.attachEvent("on".concat(n),a),e[t]=e[t]||{},e[t][l]=a},this.off=function(e,n,i,o,r){var l=this._id.apply(this,arguments),a=e[t]&&e[t][l];a&&("removeEventListener"in e?e.removeEventListener(n,a,r):"detachEvent"in e&&e.detachEvent("on".concat(n),a),e[t][l]=null)}},o="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function r(t,e){return t(e={exports:{}},e.exports),e.exports}var l,a,s=function(t){return t&&t.Math==Math&&t},c=s("object"==typeof globalThis&&globalThis)||s("object"==typeof window&&window)||s("object"==typeof self&&self)||s("object"==typeof o&&o)||function(){return this}()||Function("return this")(),u=function(t){try{return!!t()}catch(t){return!0}},h=!u((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),f={}.propertyIsEnumerable,p=Object.getOwnPropertyDescriptor,d={f:p&&!f.call({1:2},1)?function(t){var e=p(this,t);return!!e&&e.enumerable}:f},g=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},v={}.toString,m=function(t){return v.call(t).slice(8,-1)},b="".split,y=u((function(){return!Object("z").propertyIsEnumerable(0)}))?function(t){return"String"==m(t)?b.call(t,""):Object(t)}:Object,w=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t},_=function(t){return y(w(t))},x=function(t){return"object"==typeof t?null!==t:"function"==typeof t},j=function(t){return"function"==typeof t?t:void 0},C=function(t,e){return arguments.length<2?j(c[t]):c[t]&&c[t][e]},S=C("navigator","userAgent")||"",E=c.process,A=c.Deno,k=E&&E.versions||A&&A.version,T=k&&k.v8;T?a=(l=T.split("."))[0]<4?1:l[0]+l[1]:S&&(!(l=S.match(/Edge\/(\d+)/))||l[1]>=74)&&(l=S.match(/Chrome\/(\d+)/))&&(a=l[1]);var N=a&&+a,I=!!Object.getOwnPropertySymbols&&!u((function(){var t=Symbol();return!String(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&N&&N<41})),O=I&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,P=O?function(t){return"symbol"==typeof t}:function(t){var e=C("Symbol");return"function"==typeof e&&Object(t)instanceof e},L=function(t,e){try{Object.defineProperty(c,t,{value:e,configurable:!0,writable:!0})}catch(n){c[t]=e}return e},q="__core-js_shared__",R=c[q]||L(q,{}),M=r((function(t){(t.exports=function(t,e){return R[t]||(R[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.16.1",mode:"global",copyright:"© 2021 Denis Pushkarev (zloirock.ru)"})})),B=function(t){return Object(w(t))},H={}.hasOwnProperty,$=Object.hasOwn||function(t,e){return H.call(B(t),e)},D=0,F=Math.random(),z=function(t){return"Symbol("+String(void 0===t?"":t)+")_"+(++D+F).toString(36)},W=M("wks"),V=c.Symbol,U=O?V:V&&V.withoutSetter||z,G=function(t){return $(W,t)&&(I||"string"==typeof W[t])||(I&&$(V,t)?W[t]=V[t]:W[t]=U("Symbol."+t)),W[t]},Y=G("toPrimitive"),K=function(t,e){if(!x(t)||P(t))return t;var n,i=t[Y];if(void 0!==i){if(void 0===e&&(e="default"),n=i.call(t,e),!x(n)||P(n))return n;throw TypeError("Can't convert object to primitive value")}return void 0===e&&(e="number"),function(t,e){var n,i;if("string"===e&&"function"==typeof(n=t.toString)&&!x(i=n.call(t)))return i;if("function"==typeof(n=t.valueOf)&&!x(i=n.call(t)))return i;if("string"!==e&&"function"==typeof(n=t.toString)&&!x(i=n.call(t)))return i;throw TypeError("Can't convert object to primitive value")}(t,e)},X=function(t){var e=K(t,"string");return P(e)?e:String(e)},J=c.document,Q=x(J)&&x(J.createElement),Z=function(t){return Q?J.createElement(t):{}},tt=!h&&!u((function(){return 7!=Object.defineProperty(Z("div"),"a",{get:function(){return 7}}).a})),et=Object.getOwnPropertyDescriptor,nt={f:h?et:function(t,e){if(t=_(t),e=X(e),tt)try{return et(t,e)}catch(t){}if($(t,e))return g(!d.f.call(t,e),t[e])}},it=function(t){if(!x(t))throw TypeError(String(t)+" is not an object");return t},ot=Object.defineProperty,rt={f:h?ot:function(t,e,n){if(it(t),e=X(e),it(n),tt)try{return ot(t,e,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(t[e]=n.value),t}},lt=h?function(t,e,n){return rt.f(t,e,g(1,n))}:function(t,e,n){return t[e]=n,t},at=Function.toString;"function"!=typeof R.inspectSource&&(R.inspectSource=function(t){return at.call(t)});var st,ct,ut,ht=R.inspectSource,ft=c.WeakMap,pt="function"==typeof ft&&/native code/.test(ht(ft)),dt=M("keys"),gt=function(t){return dt[t]||(dt[t]=z(t))},vt={},mt="Object already initialized",bt=c.WeakMap;if(pt||R.state){var yt=R.state||(R.state=new bt),wt=yt.get,_t=yt.has,xt=yt.set;st=function(t,e){if(_t.call(yt,t))throw new TypeError(mt);return e.facade=t,xt.call(yt,t,e),e},ct=function(t){return wt.call(yt,t)||{}},ut=function(t){return _t.call(yt,t)}}else{var jt=gt("state");vt[jt]=!0,st=function(t,e){if($(t,jt))throw new TypeError(mt);return e.facade=t,lt(t,jt,e),e},ct=function(t){return $(t,jt)?t[jt]:{}},ut=function(t){return $(t,jt)}}var Ct,St={set:st,get:ct,has:ut,enforce:function(t){return ut(t)?ct(t):st(t,{})},getterFor:function(t){return function(e){var n;if(!x(e)||(n=ct(e)).type!==t)throw TypeError("Incompatible receiver, "+t+" required");return n}}},Et=r((function(t){var e=St.get,n=St.enforce,i=String(String).split("String");(t.exports=function(t,e,o,r){var l,a=!!r&&!!r.unsafe,s=!!r&&!!r.enumerable,u=!!r&&!!r.noTargetGet;"function"==typeof o&&("string"!=typeof e||$(o,"name")||lt(o,"name",e),(l=n(o)).source||(l.source=i.join("string"==typeof e?e:""))),t!==c?(a?!u&&t[e]&&(s=!0):delete t[e],s?t[e]=o:lt(t,e,o)):s?t[e]=o:L(e,o)})(Function.prototype,"toString",(function(){return"function"==typeof this&&e(this).source||ht(this)}))})),At=Math.ceil,kt=Math.floor,Tt=function(t){return isNaN(t=+t)?0:(t>0?kt:At)(t)},Nt=Math.min,It=function(t){return t>0?Nt(Tt(t),9007199254740991):0},Ot=Math.max,Pt=Math.min,Lt=function(t,e){var n=Tt(t);return n<0?Ot(n+e,0):Pt(n,e)},qt=function(t){return function(e,n,i){var o,r=_(e),l=It(r.length),a=Lt(i,l);if(t&&n!=n){for(;l>a;)if((o=r[a++])!=o)return!0}else for(;l>a;a++)if((t||a in r)&&r[a]===n)return t||a||0;return!t&&-1}},Rt={includes:qt(!0),indexOf:qt(!1)},Mt=Rt.indexOf,Bt=function(t,e){var n,i=_(t),o=0,r=[];for(n in i)!$(vt,n)&&$(i,n)&&r.push(n);for(;e.length>o;)$(i,n=e[o++])&&(~Mt(r,n)||r.push(n));return r},Ht=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],$t=Ht.concat("length","prototype"),Dt={f:Object.getOwnPropertyNames||function(t){return Bt(t,$t)}},Ft={f:Object.getOwnPropertySymbols},zt=C("Reflect","ownKeys")||function(t){var e=Dt.f(it(t)),n=Ft.f;return n?e.concat(n(t)):e},Wt=function(t,e){for(var n=zt(e),i=rt.f,o=nt.f,r=0;r<n.length;r++){var l=n[r];$(t,l)||i(t,l,o(e,l))}},Vt=/#|\.prototype\./,Ut=function(t,e){var n=Yt[Gt(t)];return n==Xt||n!=Kt&&("function"==typeof e?u(e):!!e)},Gt=Ut.normalize=function(t){return String(t).replace(Vt,".").toLowerCase()},Yt=Ut.data={},Kt=Ut.NATIVE="N",Xt=Ut.POLYFILL="P",Jt=Ut,Qt=nt.f,Zt=function(t,e){var n,i,o,r,l,a=t.target,s=t.global,u=t.stat;if(n=s?c:u?c[a]||L(a,{}):(c[a]||{}).prototype)for(i in e){if(r=e[i],o=t.noTargetGet?(l=Qt(n,i))&&l.value:n[i],!Jt(s?i:a+(u?".":"#")+i,t.forced)&&void 0!==o){if(typeof r==typeof o)continue;Wt(r,o)}(t.sham||o&&o.sham)&&lt(r,"sham",!0),Et(n,i,r,t)}},te=function(t){if(P(t))throw TypeError("Cannot convert a Symbol value to a string");return String(t)},ee=function(){var t=it(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.dotAll&&(e+="s"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e},ne=function(t,e){return RegExp(t,e)},ie={UNSUPPORTED_Y:u((function(){var t=ne("a","y");return t.lastIndex=2,null!=t.exec("abcd")})),BROKEN_CARET:u((function(){var t=ne("^r","gy");return t.lastIndex=2,null!=t.exec("str")}))},oe=Object.keys||function(t){return Bt(t,Ht)},re=h?Object.defineProperties:function(t,e){it(t);for(var n,i=oe(e),o=i.length,r=0;o>r;)rt.f(t,n=i[r++],e[n]);return t},le=C("document","documentElement"),ae=gt("IE_PROTO"),se=function(){},ce=function(t){return"<script>"+t+"</"+"script>"},ue=function(t){t.write(ce("")),t.close();var e=t.parentWindow.Object;return t=null,e},he=function(){try{Ct=new ActiveXObject("htmlfile")}catch(t){}he=document.domain&&Ct?ue(Ct):function(){var t,e=Z("iframe");if(e.style)return e.style.display="none",le.appendChild(e),e.src=String("javascript:"),(t=e.contentWindow.document).open(),t.write(ce("document.F=Object")),t.close(),t.F}()||ue(Ct);for(var t=Ht.length;t--;)delete he.prototype[Ht[t]];return he()};vt[ae]=!0;var fe,pe,de=Object.create||function(t,e){var n;return null!==t?(se.prototype=it(t),n=new se,se.prototype=null,n[ae]=t):n=he(),void 0===e?n:re(n,e)},ge=u((function(){var t=RegExp(".","string".charAt(0));return!(t.dotAll&&t.exec("\n")&&"s"===t.flags)})),ve=u((function(){var t=RegExp("(?<a>b)","string".charAt(5));return"b"!==t.exec("b").groups.a||"bc"!=="b".replace(t,"$<a>c")})),me=St.get,be=RegExp.prototype.exec,ye=M("native-string-replace",String.prototype.replace),we=be,_e=(fe=/a/,pe=/b*/g,be.call(fe,"a"),be.call(pe,"a"),0!==fe.lastIndex||0!==pe.lastIndex),xe=ie.UNSUPPORTED_Y||ie.BROKEN_CARET,je=void 0!==/()??/.exec("")[1];(_e||je||xe||ge||ve)&&(we=function(t){var e,n,i,o,r,l,a,s=this,c=me(s),u=te(t),h=c.raw;if(h)return h.lastIndex=s.lastIndex,e=we.call(h,u),s.lastIndex=h.lastIndex,e;var f=c.groups,p=xe&&s.sticky,d=ee.call(s),g=s.source,v=0,m=u;if(p&&(-1===(d=d.replace("y","")).indexOf("g")&&(d+="g"),m=u.slice(s.lastIndex),s.lastIndex>0&&(!s.multiline||s.multiline&&"\n"!==u.charAt(s.lastIndex-1))&&(g="(?: "+g+")",m=" "+m,v++),n=new RegExp("^(?:"+g+")",d)),je&&(n=new RegExp("^"+g+"$(?!\\s)",d)),_e&&(i=s.lastIndex),o=be.call(p?n:s,m),p?o?(o.input=o.input.slice(v),o[0]=o[0].slice(v),o.index=s.lastIndex,s.lastIndex+=o[0].length):s.lastIndex=0:_e&&o&&(s.lastIndex=s.global?o.index+o[0].length:i),je&&o&&o.length>1&&ye.call(o[0],n,(function(){for(r=1;r<arguments.length-2;r++)void 0===arguments[r]&&(o[r]=void 0)})),o&&f)for(o.groups=l=de(null),r=0;r<f.length;r++)l[(a=f[r])[0]]=o[a[1]];return o});var Ce=we;Zt({target:"RegExp",proto:!0,forced:/./.exec!==Ce},{exec:Ce});var Se=G("species"),Ee=RegExp.prototype,Ae=function(t,e,n,i){var o=G(t),r=!u((function(){var e={};return e[o]=function(){return 7},7!=""[t](e)})),l=r&&!u((function(){var e=!1,n=/a/;return"split"===t&&((n={}).constructor={},n.constructor[Se]=function(){return n},n.flags="",n[o]=/./[o]),n.exec=function(){return e=!0,null},n[o](""),!e}));if(!r||!l||n){var a=/./[o],s=e(o,""[t],(function(t,e,n,i,o){var l=e.exec;return l===Ce||l===Ee.exec?r&&!o?{done:!0,value:a.call(e,n,i)}:{done:!0,value:t.call(n,e,i)}:{done:!1}}));Et(String.prototype,t,s[0]),Et(Ee,o,s[1])}i&&lt(Ee[o],"sham",!0)},ke=function(t){return function(e,n){var i,o,r=te(w(e)),l=Tt(n),a=r.length;return l<0||l>=a?t?"":void 0:(i=r.charCodeAt(l))<55296||i>56319||l+1===a||(o=r.charCodeAt(l+1))<56320||o>57343?t?r.charAt(l):i:t?r.slice(l,l+2):o-56320+(i-55296<<10)+65536}},Te={codeAt:ke(!1),charAt:ke(!0)}.charAt,Ne=function(t,e,n){return e+(n?Te(t,e).length:1)},Ie=function(t,e){var n=t.exec;if("function"==typeof n){var i=n.call(t,e);if("object"!=typeof i)throw TypeError("RegExp exec method returned something other than an Object or null");return i}if("RegExp"!==m(t))throw TypeError("RegExp#exec called on incompatible receiver");return Ce.call(t,e)};Ae("match",(function(t,e,n){return[function(e){var n=w(this),i=null==e?void 0:e[t];return void 0!==i?i.call(e,n):new RegExp(e)[t](te(n))},function(t){var i=it(this),o=te(t),r=n(e,i,o);if(r.done)return r.value;if(!i.global)return Ie(i,o);var l=i.unicode;i.lastIndex=0;for(var a,s=[],c=0;null!==(a=Ie(i,o));){var u=te(a[0]);s[c]=u,""===u&&(i.lastIndex=Ne(o,It(i.lastIndex),l)),c++}return 0===c?null:s}]}));var Oe=Array.isArray||function(t){return"Array"==m(t)},Pe=function(t,e,n){var i=X(e);i in t?rt.f(t,i,g(0,n)):t[i]=n},Le=G("species"),qe=function(t,e){return new(function(t){var e;return Oe(t)&&("function"!=typeof(e=t.constructor)||e!==Array&&!Oe(e.prototype)?x(e)&&null===(e=e[Le])&&(e=void 0):e=void 0),void 0===e?Array:e}(t))(0===e?0:e)},Re=G("species"),Me=function(t){return N>=51||!u((function(){var e=[];return(e.constructor={})[Re]=function(){return{foo:1}},1!==e[t](Boolean).foo}))},Be=G("isConcatSpreadable"),He=9007199254740991,$e="Maximum allowed index exceeded",De=N>=51||!u((function(){var t=[];return t[Be]=!1,t.concat()[0]!==t})),Fe=Me("concat"),ze=function(t){if(!x(t))return!1;var e=t[Be];return void 0!==e?!!e:Oe(t)};Zt({target:"Array",proto:!0,forced:!De||!Fe},{concat:function(t){var e,n,i,o,r,l=B(this),a=qe(l,0),s=0;for(e=-1,i=arguments.length;e<i;e++)if(ze(r=-1===e?l:arguments[e])){if(s+(o=It(r.length))>He)throw TypeError($e);for(n=0;n<o;n++,s++)n in r&&Pe(a,s,r[n])}else{if(s>=He)throw TypeError($e);Pe(a,s++,r)}return a.length=s,a}});var We={};We[G("toStringTag")]="z";var Ve="[object z]"===String(We),Ue=G("toStringTag"),Ge="Arguments"==m(function(){return arguments}()),Ye=Ve?m:function(t){var e,n,i;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),Ue))?n:Ge?m(e):"Object"==(i=m(e))&&"function"==typeof e.callee?"Arguments":i},Ke=Ve?{}.toString:function(){return"[object "+Ye(this)+"]"};Ve||Et(Object.prototype,"toString",Ke,{unsafe:!0});var Xe="toString",Je=RegExp.prototype,Qe=Je.toString,Ze=u((function(){return"/a/b"!=Qe.call({source:"a",flags:"b"})})),tn=Qe.name!=Xe;(Ze||tn)&&Et(RegExp.prototype,Xe,(function(){var t=it(this),e=te(t.source),n=t.flags;return"/"+e+"/"+te(void 0===n&&t instanceof RegExp&&!("flags"in Je)?ee.call(t):n)}),{unsafe:!0});var en=G("match"),nn=function(t){var e;return x(t)&&(void 0!==(e=t[en])?!!e:"RegExp"==m(t))},on=function(t){if("function"!=typeof t)throw TypeError(String(t)+" is not a function");return t},rn=G("species"),ln=ie.UNSUPPORTED_Y,an=[].push,sn=Math.min,cn=4294967295;function un(t,e){if(t instanceof SVGElement){var i=t.getAttribute("class")||"";i.match(e)||t.setAttribute("class","".concat(i," ").concat(e))}else{if(void 0!==t.classList)n(e.split(" "),(function(e){t.classList.add(e)}));else t.className.match(e)||(t.className+=" ".concat(e))}}function hn(t,e){var n="";return t.currentStyle?n=t.currentStyle[e]:document.defaultView&&document.defaultView.getComputedStyle&&(n=document.defaultView.getComputedStyle(t,null).getPropertyValue(e)),n&&n.toLowerCase?n.toLowerCase():n}function fn(t){var e=t.element;if(this._options.scrollToElement){var n=function(t){var e=window.getComputedStyle(t),n="absolute"===e.position,i=/(auto|scroll)/;if("fixed"===e.position)return document.body;for(var o=t;o=o.parentElement;)if(e=window.getComputedStyle(o),(!n||"static"!==e.position)&&i.test(e.overflow+e.overflowY+e.overflowX))return o;return document.body}(e);n!==document.body&&(n.scrollTop=e.offsetTop-n.offsetTop)}}function pn(){if(void 0!==window.innerWidth)return{width:window.innerWidth,height:window.innerHeight};var t=document.documentElement;return{width:t.clientWidth,height:t.clientHeight}}function dn(t,e,n){var i,o=e.element;if("off"!==t&&(this._options.scrollToElement&&(i="tooltip"===t?n.getBoundingClientRect():o.getBoundingClientRect(),!function(t){var e=t.getBoundingClientRect();return e.top>=0&&e.left>=0&&e.bottom+80<=window.innerHeight&&e.right<=window.innerWidth}(o)))){var r=pn().height;i.bottom-(i.bottom-i.top)<0||o.clientHeight>r?window.scrollBy(0,i.top-(r/2-i.height/2)-this._options.scrollPadding):window.scrollBy(0,i.top-(r/2-i.height/2)+this._options.scrollPadding)}}function gn(t){t.setAttribute("role","button"),t.tabIndex=0}Ae("split",(function(t,e,n){var i;return i="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(t,n){var i=te(w(this)),o=void 0===n?cn:n>>>0;if(0===o)return[];if(void 0===t)return[i];if(!nn(t))return e.call(i,t,o);for(var r,l,a,s=[],c=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":""),u=0,h=new RegExp(t.source,c+"g");(r=Ce.call(h,i))&&!((l=h.lastIndex)>u&&(s.push(i.slice(u,r.index)),r.length>1&&r.index<i.length&&an.apply(s,r.slice(1)),a=r[0].length,u=l,s.length>=o));)h.lastIndex===r.index&&h.lastIndex++;return u===i.length?!a&&h.test("")||s.push(""):s.push(i.slice(u)),s.length>o?s.slice(0,o):s}:"0".split(void 0,0).length?function(t,n){return void 0===t&&0===n?[]:e.call(this,t,n)}:e,[function(e,n){var o=w(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,o,n):i.call(te(o),e,n)},function(t,o){var r=it(this),l=te(t),a=n(i,r,l,o,i!==e);if(a.done)return a.value;var s=function(t,e){var n,i=it(t).constructor;return void 0===i||null==(n=it(i)[rn])?e:on(n)}(r,RegExp),c=r.unicode,u=(r.ignoreCase?"i":"")+(r.multiline?"m":"")+(r.unicode?"u":"")+(ln?"g":"y"),h=new s(ln?"^(?:"+r.source+")":r,u),f=void 0===o?cn:o>>>0;if(0===f)return[];if(0===l.length)return null===Ie(h,l)?[l]:[];for(var p=0,d=0,g=[];d<l.length;){h.lastIndex=ln?0:d;var v,m=Ie(h,ln?l.slice(d):l);if(null===m||(v=sn(It(h.lastIndex+(ln?d:0)),l.length))===p)d=Ne(l,d,c);else{if(g.push(l.slice(p,d)),g.length===f)return g;for(var b=1;b<=m.length-1;b++)if(g.push(m[b]),g.length===f)return g;d=p=v}}return g.push(l.slice(p)),g}]}),!!u((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n="ab".split(t);return 2!==n.length||"a"!==n[0]||"b"!==n[1]})),ln);var vn=Object.assign,mn=Object.defineProperty,bn=!vn||u((function(){if(h&&1!==vn({b:1},vn(mn({},"a",{enumerable:!0,get:function(){mn(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol(),i="abcdefghijklmnopqrst";return t[n]=7,i.split("").forEach((function(t){e[t]=t})),7!=vn({},t)[n]||oe(vn({},e)).join("")!=i}))?function(t,e){for(var n=B(t),i=arguments.length,o=1,r=Ft.f,l=d.f;i>o;)for(var a,s=y(arguments[o++]),c=r?oe(s).concat(r(s)):oe(s),u=c.length,f=0;u>f;)a=c[f++],h&&!l.call(s,a)||(n[a]=s[a]);return n}:vn;function yn(t){var e=t.parentNode;return!(!e||"HTML"===e.nodeName)&&("fixed"===hn(t,"position")||yn(e))}function wn(t,e){var n=document.body,i=document.documentElement,o=window.pageYOffset||i.scrollTop||n.scrollTop,r=window.pageXOffset||i.scrollLeft||n.scrollLeft;e=e||n;var l=t.getBoundingClientRect(),a=e.getBoundingClientRect(),s=hn(e,"position"),c={width:l.width,height:l.height};return"body"!==e.tagName.toLowerCase()&&"relative"===s||"sticky"===s?Object.assign(c,{top:l.top-a.top,left:l.left-a.left}):yn(t)?Object.assign(c,{top:l.top,left:l.left}):Object.assign(c,{top:l.top+o,left:l.left+r})}Zt({target:"Object",stat:!0,forced:Object.assign!==bn},{assign:bn});var _n=Math.floor,xn="".replace,jn=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,Cn=/\$([$&'`]|\d{1,2})/g,Sn=function(t,e,n,i,o,r){var l=n+t.length,a=i.length,s=Cn;return void 0!==o&&(o=B(o),s=jn),xn.call(r,s,(function(r,s){var c;switch(s.charAt(0)){case"$":return"$";case"&":return t;case"`":return e.slice(0,n);case"'":return e.slice(l);case"<":c=o[s.slice(1,-1)];break;default:var u=+s;if(0===u)return r;if(u>a){var h=_n(u/10);return 0===h?r:h<=a?void 0===i[h-1]?s.charAt(1):i[h-1]+s.charAt(1):r}c=i[u-1]}return void 0===c?"":c}))},En=G("replace"),An=Math.max,kn=Math.min,Tn="$0"==="a".replace(/./,"$0"),Nn=!!/./[En]&&""===/./[En]("a","$0");function In(t,e){if(t instanceof SVGElement){var n=t.getAttribute("class")||"";t.setAttribute("class",n.replace(e,"").replace(/^\s+|\s+$/g,""))}else t.className=t.className.replace(e,"").replace(/^\s+|\s+$/g,"")}function On(t,e){var n="";if(t.style.cssText&&(n+=t.style.cssText),"string"==typeof e)n+=e;else for(var i in e)n+="".concat(i,":").concat(e[i],";");t.style.cssText=n}function Pn(t){if(t){if(!this._introItems[this._currentStep])return;var e=this._introItems[this._currentStep],n=wn(e.element,this._targetElement),i=this._options.helperElementPadding;yn(e.element)?un(t,"introjs-fixedTooltip"):In(t,"introjs-fixedTooltip"),"floating"===e.position&&(i=0),On(t,{width:"".concat(n.width+i,"px"),height:"".concat(n.height+i,"px"),top:"".concat(n.top-i/2,"px"),left:"".concat(n.left-i/2,"px")})}}Ae("replace",(function(t,e,n){var i=Nn?"$":"$0";return[function(t,n){var i=w(this),o=null==t?void 0:t[En];return void 0!==o?o.call(t,i,n):e.call(te(i),t,n)},function(t,o){var r=it(this),l=te(t);if("string"==typeof o&&-1===o.indexOf(i)&&-1===o.indexOf("$<")){var a=n(e,r,l,o);if(a.done)return a.value}var s="function"==typeof o;s||(o=te(o));var c=r.global;if(c){var u=r.unicode;r.lastIndex=0}for(var h=[];;){var f=Ie(r,l);if(null===f)break;if(h.push(f),!c)break;""===te(f[0])&&(r.lastIndex=Ne(l,It(r.lastIndex),u))}for(var p,d="",g=0,v=0;v<h.length;v++){f=h[v];for(var m=te(f[0]),b=An(kn(Tt(f.index),l.length),0),y=[],w=1;w<f.length;w++)y.push(void 0===(p=f[w])?p:String(p));var _=f.groups;if(s){var x=[m].concat(y,b,l);void 0!==_&&x.push(_);var j=te(o.apply(void 0,x))}else j=Sn(m,l,b,y,_,o);b>=g&&(d+=l.slice(g,b)+j,g=b+m.length)}return d+l.slice(g)}]}),!!u((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$<a>")}))||!Tn||Nn);var Ln=G("unscopables"),qn=Array.prototype;null==qn[Ln]&&rt.f(qn,Ln,{configurable:!0,value:de(null)});var Rn,Mn=Rt.includes;Zt({target:"Array",proto:!0},{includes:function(t){return Mn(this,t,arguments.length>1?arguments[1]:void 0)}}),Rn="includes",qn[Ln][Rn]=!0;var Bn=Me("slice"),Hn=G("species"),$n=[].slice,Dn=Math.max;Zt({target:"Array",proto:!0,forced:!Bn},{slice:function(t,e){var n,i,o,r=_(this),l=It(r.length),a=Lt(t,l),s=Lt(void 0===e?l:e,l);if(Oe(r)&&("function"!=typeof(n=r.constructor)||n!==Array&&!Oe(n.prototype)?x(n)&&null===(n=n[Hn])&&(n=void 0):n=void 0,n===Array||void 0===n))return $n.call(r,a,s);for(i=new(void 0===n?Array:n)(Dn(s-a,0)),o=0;a<s;a++,o++)a in r&&Pe(i,o,r[a]);return i.length=o,i}});var Fn=function(t){if(nn(t))throw TypeError("The method doesn't accept regular expressions");return t},zn=G("match");Zt({target:"String",proto:!0,forced:!function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[zn]=!1,"/./"[t](e)}catch(t){}}return!1}("includes")},{includes:function(t){return!!~te(w(this)).indexOf(te(Fn(t)),arguments.length>1?arguments[1]:void 0)}});var Wn=function(t,e){var n=[][t];return!!n&&u((function(){n.call(null,e||function(){throw 1},1)}))},Vn=[].join,Un=y!=Object,Gn=Wn("join",",");Zt({target:"Array",proto:!0,forced:Un||!Gn},{join:function(t){return Vn.call(_(this),void 0===t?",":t)}});var Yn=[].push,Kn=function(t){var e=1==t,n=2==t,i=3==t,o=4==t,r=6==t,l=7==t,a=5==t||r;return function(s,c,u,h){for(var f,p,d=B(s),g=y(d),v=function(t,e,n){if(on(t),void 0===e)return t;switch(n){case 0:return function(){return t.call(e)};case 1:return function(n){return t.call(e,n)};case 2:return function(n,i){return t.call(e,n,i)};case 3:return function(n,i,o){return t.call(e,n,i,o)}}return function(){return t.apply(e,arguments)}}(c,u,3),m=It(g.length),b=0,w=h||qe,_=e?w(s,m):n||l?w(s,0):void 0;m>b;b++)if((a||b in g)&&(p=v(f=g[b],b,d),t))if(e)_[b]=p;else if(p)switch(t){case 3:return!0;case 5:return f;case 6:return b;case 2:Yn.call(_,f)}else switch(t){case 4:return!1;case 7:Yn.call(_,f)}return r?-1:i||o?o:_}},Xn={forEach:Kn(0),map:Kn(1),filter:Kn(2),some:Kn(3),every:Kn(4),find:Kn(5),findIndex:Kn(6),filterReject:Kn(7)}.filter;function Jn(t,e,n,i,o){return t.left+e+n.width>i.width?(o.style.left="".concat(i.width-n.width-t.left,"px"),!1):(o.style.left="".concat(e,"px"),!0)}function Qn(t,e,n,i){return t.left+t.width-e-n.width<0?(i.style.left="".concat(-t.left,"px"),!1):(i.style.right="".concat(e,"px"),!0)}Zt({target:"Array",proto:!0,forced:!Me("filter")},{filter:function(t){return Xn(this,t,arguments.length>1?arguments[1]:void 0)}});var Zn=Me("splice"),ti=Math.max,ei=Math.min,ni=9007199254740991,ii="Maximum allowed length exceeded";function oi(t,e){t.includes(e)&&t.splice(t.indexOf(e),1)}function ri(t,e,n){var i=this._options.positionPrecedence.slice(),o=pn(),r=wn(e).height+10,l=wn(e).width+20,a=t.getBoundingClientRect(),s="floating";a.bottom+r>o.height&&oi(i,"bottom"),a.top-r<0&&oi(i,"top"),a.right+l>o.width&&oi(i,"right"),a.left-l<0&&oi(i,"left");var c,u,h=-1!==(u=(c=n||"").indexOf("-"))?c.substr(u):"";return n&&(n=n.split("-")[0]),i.length&&(s=i.includes(n)?n:i[0]),["top","bottom"].includes(s)&&(s+=function(t,e,n,i){var o=n.width,r=e/2,l=Math.min(o,window.screen.width),a=["-left-aligned","-middle-aligned","-right-aligned"];return l-t<e&&oi(a,"-left-aligned"),(t<r||l-t<r)&&oi(a,"-middle-aligned"),t<e&&oi(a,"-right-aligned"),a.length?a.includes(i)?i:a[0]:"-middle-aligned"}(a.left,l,o,h)),s}function li(t,e,n,i){var o,r,l,a,s,c="";if(i=i||!1,e.style.top=null,e.style.right=null,e.style.bottom=null,e.style.left=null,e.style.marginLeft=null,e.style.marginTop=null,n.style.display="inherit",this._introItems[this._currentStep])switch(c="string"==typeof(o=this._introItems[this._currentStep]).tooltipClass?o.tooltipClass:this._options.tooltipClass,e.className=["introjs-tooltip",c].filter(Boolean).join(" "),e.setAttribute("role","dialog"),"floating"!==(s=this._introItems[this._currentStep].position)&&this._options.autoPosition&&(s=ri.call(this,t,e,s)),l=wn(t),r=wn(e),a=pn(),un(e,"introjs-".concat(s)),s){case"top-right-aligned":n.className="introjs-arrow bottom-right";var u=0;Qn(l,u,r,e),e.style.bottom="".concat(l.height+20,"px");break;case"top-middle-aligned":n.className="introjs-arrow bottom-middle";var h=l.width/2-r.width/2;i&&(h+=5),Qn(l,h,r,e)&&(e.style.right=null,Jn(l,h,r,a,e)),e.style.bottom="".concat(l.height+20,"px");break;case"top-left-aligned":case"top":n.className="introjs-arrow bottom",Jn(l,i?0:15,r,a,e),e.style.bottom="".concat(l.height+20,"px");break;case"right":e.style.left="".concat(l.width+20,"px"),l.top+r.height>a.height?(n.className="introjs-arrow left-bottom",e.style.top="-".concat(r.height-l.height-20,"px")):n.className="introjs-arrow left";break;case"left":i||!0!==this._options.showStepNumbers||(e.style.top="15px"),l.top+r.height>a.height?(e.style.top="-".concat(r.height-l.height-20,"px"),n.className="introjs-arrow right-bottom"):n.className="introjs-arrow right",e.style.right="".concat(l.width+20,"px");break;case"floating":n.style.display="none",e.style.left="50%",e.style.top="50%",e.style.marginLeft="-".concat(r.width/2,"px"),e.style.marginTop="-".concat(r.height/2,"px");break;case"bottom-right-aligned":n.className="introjs-arrow top-right",Qn(l,u=0,r,e),e.style.top="".concat(l.height+20,"px");break;case"bottom-middle-aligned":n.className="introjs-arrow top-middle",h=l.width/2-r.width/2,i&&(h+=5),Qn(l,h,r,e)&&(e.style.right=null,Jn(l,h,r,a,e)),e.style.top="".concat(l.height+20,"px");break;default:n.className="introjs-arrow top",Jn(l,0,r,a,e),e.style.top="".concat(l.height+20,"px")}}function ai(){n(document.querySelectorAll(".introjs-showElement"),(function(t){In(t,/introjs-[a-zA-Z]+/g)}))}function si(t,e){var n=document.createElement(t);e=e||{};var i=/^(?:role|data-|aria-)/;for(var o in e){var r=e[o];"style"===o?On(n,r):o.match(i)?n.setAttribute(o,r):n[o]=r}return n}function ci(t,e,n){if(n){var i=e.style.opacity||"1";On(e,{opacity:"0"}),window.setTimeout((function(){On(e,{opacity:i})}),10)}t.appendChild(e)}function ui(){return parseInt(this._currentStep+1,10)/this._introItems.length*100}function hi(){var t=document.querySelector(".introjs-disableInteraction");null===t&&(t=si("div",{className:"introjs-disableInteraction"}),this._targetElement.appendChild(t)),Pn.call(this,t)}function fi(t){var e=this,i=si("div",{className:"introjs-bullets"});!1===this._options.showBullets&&(i.style.display="none");var o=si("ul");o.setAttribute("role","tablist");var r=function(){e.goToStep(this.getAttribute("data-stepnumber"))};return n(this._introItems,(function(e,n){var i=e.step,l=si("li"),a=si("a");l.setAttribute("role","presentation"),a.setAttribute("role","tab"),a.onclick=r,n===t.step-1&&(a.className="active"),gn(a),a.innerHTML="&nbsp;",a.setAttribute("data-stepnumber",i),l.appendChild(a),o.appendChild(l)})),i.appendChild(o),i}function pi(t,e){if(this._options.showBullets){var n=document.querySelector(".introjs-bullets");n.parentNode.replaceChild(fi.call(this,e),n)}}function di(t,e){this._options.showBullets&&(t.querySelector(".introjs-bullets li > a.active").className="",t.querySelector('.introjs-bullets li > a[data-stepnumber="'.concat(e.step,'"]')).className="active")}function gi(){var t=si("div");t.className="introjs-progress",!1===this._options.showProgress&&(t.style.display="none");var e=si("div",{className:"introjs-progressbar"});return this._options.progressBarAdditionalClass&&(e.className+=" "+this._options.progressBarAdditionalClass),e.setAttribute("role","progress"),e.setAttribute("aria-valuemin",0),e.setAttribute("aria-valuemax",100),e.setAttribute("aria-valuenow",ui.call(this)),e.style.cssText="width:".concat(ui.call(this),"%;"),t.appendChild(e),t}function vi(t){t.querySelector(".introjs-progress .introjs-progressbar").style.cssText="width:".concat(ui.call(this),"%;"),t.querySelector(".introjs-progress .introjs-progressbar").setAttribute("aria-valuenow",ui.call(this))}function mi(t){var e=this;void 0!==this._introChangeCallback&&this._introChangeCallback.call(this,t.element);var n,i,o,r=this,l=document.querySelector(".introjs-helperLayer"),a=document.querySelector(".introjs-tooltipReferenceLayer"),s="introjs-helperLayer";if("string"==typeof t.highlightClass&&(s+=" ".concat(t.highlightClass)),"string"==typeof this._options.highlightClass&&(s+=" ".concat(this._options.highlightClass)),null!==l&&null!==a){var c=a.querySelector(".introjs-helperNumberLayer"),u=a.querySelector(".introjs-tooltiptext"),h=a.querySelector(".introjs-tooltip-title"),f=a.querySelector(".introjs-arrow"),p=a.querySelector(".introjs-tooltip");o=a.querySelector(".introjs-skipbutton"),i=a.querySelector(".introjs-prevbutton"),n=a.querySelector(".introjs-nextbutton"),l.className=s,p.style.opacity=0,p.style.display="none",fn.call(r,t),Pn.call(r,l),Pn.call(r,a),ai(),r._lastShowElementTimer&&window.clearTimeout(r._lastShowElementTimer),r._lastShowElementTimer=window.setTimeout((function(){null!==c&&(c.innerHTML="".concat(t.step," of ").concat(e._introItems.length)),u.innerHTML=t.intro,h.innerHTML=t.title,p.style.display="block",li.call(r,t.element,p,f),di.call(r,a,t),vi.call(r,a),p.style.opacity=1,(null!=n&&/introjs-donebutton/gi.test(n.className)||null!=n)&&n.focus(),dn.call(r,t.scrollTo,t,u)}),350)}else{var d=si("div",{className:s}),g=si("div",{className:"introjs-tooltipReferenceLayer"}),v=si("div",{className:"introjs-arrow"}),m=si("div",{className:"introjs-tooltip"}),b=si("div",{className:"introjs-tooltiptext"}),y=si("div",{className:"introjs-tooltip-header"}),w=si("h1",{className:"introjs-tooltip-title"}),_=si("div");On(d,{"box-shadow":"0 0 1px 2px rgba(33, 33, 33, 0.8), rgba(33, 33, 33, ".concat(r._options.overlayOpacity.toString(),") 0 0 0 5000px")}),fn.call(r,t),Pn.call(r,d),Pn.call(r,g),ci(this._targetElement,d,!0),ci(this._targetElement,g),b.innerHTML=t.intro,w.innerHTML=t.title,_.className="introjs-tooltipbuttons",!1===this._options.showButtons&&(_.style.display="none"),y.appendChild(w),m.appendChild(y),m.appendChild(b),m.appendChild(fi.call(this,t)),m.appendChild(gi.call(this));var x=si("div");!0===this._options.showStepNumbers&&(x.className="introjs-helperNumberLayer",x.innerHTML="".concat(t.step," of ").concat(this._introItems.length),m.appendChild(x)),m.appendChild(v),g.appendChild(m),(n=si("a")).onclick=function(){r._introItems.length-1!==r._currentStep?wi.call(r):/introjs-donebutton/gi.test(n.className)&&("function"==typeof r._introCompleteCallback&&r._introCompleteCallback.call(r),oo.call(r,r._targetElement))},gn(n),n.innerHTML=this._options.nextLabel,(i=si("a")).onclick=function(){0!==r._currentStep&&_i.call(r)},gn(i),i.innerHTML=this._options.prevLabel,gn(o=si("a",{className:"introjs-skipbutton"})),o.innerHTML=this._options.skipLabel,o.onclick=function(){r._introItems.length-1===r._currentStep&&"function"==typeof r._introCompleteCallback&&r._introCompleteCallback.call(r),"function"==typeof r._introSkipCallback&&r._introSkipCallback.call(r),oo.call(r,r._targetElement)},y.appendChild(o),this._introItems.length>1&&_.appendChild(i),_.appendChild(n),m.appendChild(_),li.call(r,t.element,m,v),dn.call(this,t.scrollTo,t,m)}var j=r._targetElement.querySelector(".introjs-disableInteraction");j&&j.parentNode.removeChild(j),t.disableInteraction&&hi.call(r),0===this._currentStep&&this._introItems.length>1?(null!=n&&(n.className="".concat(this._options.buttonClass," introjs-nextbutton"),n.innerHTML=this._options.nextLabel),!0===this._options.hidePrev?(null!=i&&(i.className="".concat(this._options.buttonClass," introjs-prevbutton introjs-hidden")),null!=n&&un(n,"introjs-fullbutton")):null!=i&&(i.className="".concat(this._options.buttonClass," introjs-prevbutton introjs-disabled"))):this._introItems.length-1===this._currentStep||1===this._introItems.length?(null!=i&&(i.className="".concat(this._options.buttonClass," introjs-prevbutton")),!0===this._options.hideNext?(null!=n&&(n.className="".concat(this._options.buttonClass," introjs-nextbutton introjs-hidden")),null!=i&&un(i,"introjs-fullbutton")):null!=n&&(!0===this._options.nextToDone?(n.innerHTML=this._options.doneLabel,un(n,"".concat(this._options.buttonClass," introjs-nextbutton introjs-donebutton"))):n.className="".concat(this._options.buttonClass," introjs-nextbutton introjs-disabled"))):(null!=i&&(i.className="".concat(this._options.buttonClass," introjs-prevbutton")),null!=n&&(n.className="".concat(this._options.buttonClass," introjs-nextbutton"),n.innerHTML=this._options.nextLabel)),null!=i&&i.setAttribute("role","button"),null!=n&&n.setAttribute("role","button"),null!=o&&o.setAttribute("role","button"),null!=n&&n.focus(),function(t){var e=t.element;un(e,"introjs-showElement");var n=hn(e,"position");"absolute"!==n&&"relative"!==n&&"sticky"!==n&&"fixed"!==n&&un(e,"introjs-relativePosition")}(t),void 0!==this._introAfterChangeCallback&&this._introAfterChangeCallback.call(this,t.element)}function bi(t){this._currentStep=t-2,void 0!==this._introItems&&wi.call(this)}function yi(t){this._currentStepNumber=t,void 0!==this._introItems&&wi.call(this)}function wi(){var t=this;this._direction="forward",void 0!==this._currentStepNumber&&n(this._introItems,(function(e,n){e.step===t._currentStepNumber&&(t._currentStep=n-1,t._currentStepNumber=void 0)})),void 0===this._currentStep?this._currentStep=0:++this._currentStep;var e=this._introItems[this._currentStep],i=!0;return void 0!==this._introBeforeChangeCallback&&(i=this._introBeforeChangeCallback.call(this,e&&e.element)),!1===i?(--this._currentStep,!1):this._introItems.length<=this._currentStep?("function"==typeof this._introCompleteCallback&&this._introCompleteCallback.call(this),void oo.call(this,this._targetElement)):void mi.call(this,e)}function _i(){if(this._direction="backward",0===this._currentStep)return!1;--this._currentStep;var t=this._introItems[this._currentStep],e=!0;if(void 0!==this._introBeforeChangeCallback&&(e=this._introBeforeChangeCallback.call(this,t&&t.element)),!1===e)return++this._currentStep,!1;mi.call(this,t)}function xi(){return this._currentStep}function ji(t){var e=void 0===t.code?t.which:t.code;if(null===e&&(e=null===t.charCode?t.keyCode:t.charCode),"Escape"!==e&&27!==e||!0!==this._options.exitOnEsc){if("ArrowLeft"===e||37===e)_i.call(this);else if("ArrowRight"===e||39===e)wi.call(this);else if("Enter"===e||"NumpadEnter"===e||13===e){var n=t.target||t.srcElement;n&&n.className.match("introjs-prevbutton")?_i.call(this):n&&n.className.match("introjs-skipbutton")?(this._introItems.length-1===this._currentStep&&"function"==typeof this._introCompleteCallback&&this._introCompleteCallback.call(this),oo.call(this,this._targetElement)):n&&n.getAttribute("data-stepnumber")?n.click():wi.call(this),t.preventDefault?t.preventDefault():t.returnValue=!1}}else oo.call(this,this._targetElement)}function Ci(e){if(null===e||"object"!==t(e)||void 0!==e.nodeType)return e;var n={};for(var i in e)void 0!==window.jQuery&&e[i]instanceof window.jQuery?n[i]=e[i]:n[i]=Ci(e[i]);return n}function Si(t){var e=document.querySelector(".introjs-hints");return e?e.querySelectorAll(t):[]}function Ei(t){var e=Si('.introjs-hint[data-step="'.concat(t,'"]'))[0];qi.call(this),e&&un(e,"introjs-hidehint"),void 0!==this._hintCloseCallback&&this._hintCloseCallback.call(this,t)}function Ai(){var t=this;n(Si(".introjs-hint"),(function(e){Ei.call(t,e.getAttribute("data-step"))}))}function ki(){var t=this,e=Si(".introjs-hint");e&&e.length?n(e,(function(e){Ti.call(t,e.getAttribute("data-step"))})):Ri.call(this,this._targetElement)}function Ti(t){var e=Si('.introjs-hint[data-step="'.concat(t,'"]'))[0];e&&In(e,/introjs-hidehint/g)}function Ni(){var t=this;n(Si(".introjs-hint"),(function(e){Ii.call(t,e.getAttribute("data-step"))}))}function Ii(t){var e=Si('.introjs-hint[data-step="'.concat(t,'"]'))[0];e&&e.parentNode.removeChild(e)}function Oi(){var t=this,e=this,i=document.querySelector(".introjs-hints");null===i&&(i=si("div",{className:"introjs-hints"}));n(this._introItems,(function(n,o){if(!document.querySelector('.introjs-hint[data-step="'.concat(o,'"]'))){var r=si("a",{className:"introjs-hint"});gn(r),r.onclick=function(t){return function(n){var i=n||window.event;i.stopPropagation&&i.stopPropagation(),null!==i.cancelBubble&&(i.cancelBubble=!0),Li.call(e,t)}}(o),n.hintAnimation||un(r,"introjs-hint-no-anim"),yn(n.element)&&un(r,"introjs-fixedhint");var l=si("div",{className:"introjs-hint-dot"}),a=si("div",{className:"introjs-hint-pulse"});r.appendChild(l),r.appendChild(a),r.setAttribute("data-step",o),n.targetElement=n.element,n.element=r,Pi.call(t,n.hintPosition,r,n.targetElement),i.appendChild(r)}})),document.body.appendChild(i),void 0!==this._hintsAddedCallback&&this._hintsAddedCallback.call(this)}function Pi(t,e,n){var i=e.style,o=wn.call(this,n),r=20,l=20;switch(t){default:case"top-left":i.left="".concat(o.left,"px"),i.top="".concat(o.top,"px");break;case"top-right":i.left="".concat(o.left+o.width-r,"px"),i.top="".concat(o.top,"px");break;case"bottom-left":i.left="".concat(o.left,"px"),i.top="".concat(o.top+o.height-l,"px");break;case"bottom-right":i.left="".concat(o.left+o.width-r,"px"),i.top="".concat(o.top+o.height-l,"px");break;case"middle-left":i.left="".concat(o.left,"px"),i.top="".concat(o.top+(o.height-l)/2,"px");break;case"middle-right":i.left="".concat(o.left+o.width-r,"px"),i.top="".concat(o.top+(o.height-l)/2,"px");break;case"middle-middle":i.left="".concat(o.left+(o.width-r)/2,"px"),i.top="".concat(o.top+(o.height-l)/2,"px");break;case"bottom-middle":i.left="".concat(o.left+(o.width-r)/2,"px"),i.top="".concat(o.top+o.height-l,"px");break;case"top-middle":i.left="".concat(o.left+(o.width-r)/2,"px"),i.top="".concat(o.top,"px")}}function Li(t){var e=document.querySelector('.introjs-hint[data-step="'.concat(t,'"]')),n=this._introItems[t];void 0!==this._hintClickCallback&&this._hintClickCallback.call(this,e,n,t);var i=qi.call(this);if(parseInt(i,10)!==t){var o=si("div",{className:"introjs-tooltip"}),r=si("div"),l=si("div"),a=si("div");o.onclick=function(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0},r.className="introjs-tooltiptext";var s=si("p");s.innerHTML=n.hint;var c=si("a");c.className=this._options.buttonClass,c.setAttribute("role","button"),c.innerHTML=this._options.hintButtonLabel,c.onclick=Ei.bind(this,t),r.appendChild(s),r.appendChild(c),l.className="introjs-arrow",o.appendChild(l),o.appendChild(r),this._currentStep=e.getAttribute("data-step"),a.className="introjs-tooltipReferenceLayer introjs-hintReference",a.setAttribute("data-step",e.getAttribute("data-step")),Pn.call(this,a),a.appendChild(o),document.body.appendChild(a),li.call(this,e,o,l,!0)}}function qi(){var t=document.querySelector(".introjs-hintReference");if(t){var e=t.getAttribute("data-step");return t.parentNode.removeChild(t),e}}function Ri(t){var e=this;if(this._introItems=[],this._options.hints)n(this._options.hints,(function(t){var n=Ci(t);"string"==typeof n.element&&(n.element=document.querySelector(n.element)),n.hintPosition=n.hintPosition||e._options.hintPosition,n.hintAnimation=n.hintAnimation||e._options.hintAnimation,null!==n.element&&e._introItems.push(n)}));else{var o=t.querySelectorAll("*[data-hint]");if(!o||!o.length)return!1;n(o,(function(t){var n=t.getAttribute("data-hintanimation");n=n?"true"===n:e._options.hintAnimation,e._introItems.push({element:t,hint:t.getAttribute("data-hint"),hintPosition:t.getAttribute("data-hintposition")||e._options.hintPosition,hintAnimation:n,tooltipClass:t.getAttribute("data-tooltipclass"),position:t.getAttribute("data-position")||e._options.tooltipPosition})}))}Oi.call(this),i.on(document,"click",qi,this,!1),i.on(window,"resize",Mi,this,!0)}function Mi(){var t=this;n(this._introItems,(function(e){var n=e.targetElement,i=e.hintPosition,o=e.element;void 0!==n&&Pi.call(t,i,o,n)}))}Zt({target:"Array",proto:!0,forced:!Zn},{splice:function(t,e){var n,i,o,r,l,a,s=B(this),c=It(s.length),u=Lt(t,c),h=arguments.length;if(0===h?n=i=0:1===h?(n=0,i=c-u):(n=h-2,i=ei(ti(Tt(e),0),c-u)),c+n-i>ni)throw TypeError(ii);for(o=qe(s,i),r=0;r<i;r++)(l=u+r)in s&&Pe(o,r,s[l]);if(o.length=i,n<i){for(r=u;r<c-i;r++)a=r+n,(l=r+i)in s?s[a]=s[l]:delete s[a];for(r=c;r>c-i+n;r--)delete s[r-1]}else if(n>i)for(r=c-i;r>u;r--)a=r+n-1,(l=r+i-1)in s?s[a]=s[l]:delete s[a];for(r=0;r<n;r++)s[r+u]=arguments[r+2];return s.length=c-i+n,o}});var Bi=Math.floor,Hi=function(t,e){var n=t.length,i=Bi(n/2);return n<8?$i(t,e):Di(Hi(t.slice(0,i),e),Hi(t.slice(i),e),e)},$i=function(t,e){for(var n,i,o=t.length,r=1;r<o;){for(i=r,n=t[r];i&&e(t[i-1],n)>0;)t[i]=t[--i];i!==r++&&(t[i]=n)}return t},Di=function(t,e,n){for(var i=t.length,o=e.length,r=0,l=0,a=[];r<i||l<o;)r<i&&l<o?a.push(n(t[r],e[l])<=0?t[r++]:e[l++]):a.push(r<i?t[r++]:e[l++]);return a},Fi=Hi,zi=S.match(/firefox\/(\d+)/i),Wi=!!zi&&+zi[1],Vi=/MSIE|Trident/.test(S),Ui=S.match(/AppleWebKit\/(\d+)\./),Gi=!!Ui&&+Ui[1],Yi=[],Ki=Yi.sort,Xi=u((function(){Yi.sort(void 0)})),Ji=u((function(){Yi.sort(null)})),Qi=Wn("sort"),Zi=!u((function(){if(N)return N<70;if(!(Wi&&Wi>3)){if(Vi)return!0;if(Gi)return Gi<603;var t,e,n,i,o="";for(t=65;t<76;t++){switch(e=String.fromCharCode(t),t){case 66:case 69:case 70:case 72:n=3;break;case 68:case 71:n=4;break;default:n=2}for(i=0;i<47;i++)Yi.push({k:e+i,v:n})}for(Yi.sort((function(t,e){return e.v-t.v})),i=0;i<Yi.length;i++)e=Yi[i].k.charAt(0),o.charAt(o.length-1)!==e&&(o+=e);return"DGBEFHACIJK"!==o}}));function to(t){var e=this,i=t.querySelectorAll("*[data-intro]"),o=[];if(this._options.steps)n(this._options.steps,(function(t){var n=Ci(t);if(n.step=o.length+1,n.title=n.title||"","string"==typeof n.element&&(n.element=document.querySelector(n.element)),void 0===n.element||null===n.element){var i=document.querySelector(".introjsFloatingElement");null===i&&(i=si("div",{className:"introjsFloatingElement"}),document.body.appendChild(i)),n.element=i,n.position="floating"}n.position=n.position||e._options.tooltipPosition,n.scrollTo=n.scrollTo||e._options.scrollTo,void 0===n.disableInteraction&&(n.disableInteraction=e._options.disableInteraction),null!==n.element&&o.push(n)}));else{var r;if(i.length<1)return[];n(i,(function(t){if((!e._options.group||t.getAttribute("data-intro-group")===e._options.group)&&"none"!==t.style.display){var n=parseInt(t.getAttribute("data-step"),10);r=t.hasAttribute("data-disable-interaction")?!!t.getAttribute("data-disable-interaction"):e._options.disableInteraction,n>0&&(o[n-1]={element:t,title:t.getAttribute("data-title")||"",intro:t.getAttribute("data-intro"),step:parseInt(t.getAttribute("data-step"),10),tooltipClass:t.getAttribute("data-tooltipclass"),highlightClass:t.getAttribute("data-highlightclass"),position:t.getAttribute("data-position")||e._options.tooltipPosition,scrollTo:t.getAttribute("data-scrollto")||e._options.scrollTo,disableInteraction:r})}}));var l=0;n(i,(function(t){if((!e._options.group||t.getAttribute("data-intro-group")===e._options.group)&&null===t.getAttribute("data-step")){for(;void 0!==o[l];)l++;r=t.hasAttribute("data-disable-interaction")?!!t.getAttribute("data-disable-interaction"):e._options.disableInteraction,o[l]={element:t,title:t.getAttribute("data-title")||"",intro:t.getAttribute("data-intro"),step:l+1,tooltipClass:t.getAttribute("data-tooltipclass"),highlightClass:t.getAttribute("data-highlightclass"),position:t.getAttribute("data-position")||e._options.tooltipPosition,scrollTo:t.getAttribute("data-scrollto")||e._options.scrollTo,disableInteraction:r}}}))}for(var a=[],s=0;s<o.length;s++)o[s]&&a.push(o[s]);return(o=a).sort((function(t,e){return t.step-e.step})),o}function eo(t){var e=document.querySelector(".introjs-tooltipReferenceLayer"),n=document.querySelector(".introjs-helperLayer"),i=document.querySelector(".introjs-disableInteraction");if(Pn.call(this,n),Pn.call(this,e),Pn.call(this,i),t&&(this._introItems=to.call(this,this._targetElement),pi.call(this,e,this._introItems[this._currentStep]),vi.call(this,e)),void 0!==this._currentStep&&null!==this._currentStep){var o=document.querySelector(".introjs-arrow"),r=document.querySelector(".introjs-tooltip");li.call(this,this._introItems[this._currentStep].element,r,o)}return Mi.call(this),this}function no(){eo.call(this)}function io(t,e){if(t&&t.parentElement){var n=t.parentElement;e?(On(t,{opacity:"0"}),window.setTimeout((function(){try{n.removeChild(t)}catch(t){}}),500)):n.removeChild(t)}}function oo(t,e){var o=!0;if(void 0!==this._introBeforeExitCallback&&(o=this._introBeforeExitCallback.call(this)),e||!1!==o){var r=t.querySelectorAll(".introjs-overlay");r&&r.length&&n(r,(function(t){return io(t)})),io(t.querySelector(".introjs-helperLayer"),!0),io(t.querySelector(".introjs-tooltipReferenceLayer")),io(t.querySelector(".introjs-disableInteraction")),io(document.querySelector(".introjsFloatingElement")),ai(),i.off(window,"keydown",ji,this,!0),i.off(window,"resize",no,this,!0),void 0!==this._introExitCallback&&this._introExitCallback.call(this),this._currentStep=void 0}}function ro(t){var e=this,n=si("div",{className:"introjs-overlay"});return On(n,{top:0,bottom:0,left:0,right:0,position:"fixed"}),t.appendChild(n),!0===this._options.exitOnOverlayClick&&(On(n,{cursor:"pointer"}),n.onclick=function(){oo.call(e,t)}),!0}function lo(t){var e=to.call(this,t);return 0===e.length||(this._introItems=e,ro.call(this,t)&&(wi.call(this),this._options.keyboardNavigation&&i.on(window,"keydown",ji,this,!0),i.on(window,"resize",no,this,!0))),!1}Zt({target:"Array",proto:!0,forced:Xi||!Ji||!Qi||!Zi},{sort:function(t){void 0!==t&&on(t);var e=B(this);if(Zi)return void 0===t?Ki.call(e):Ki.call(e,t);var n,i,o=[],r=It(e.length);for(i=0;i<r;i++)i in e&&o.push(e[i]);for(n=(o=Fi(o,function(t){return function(e,n){return void 0===n?-1:void 0===e?1:void 0!==t?+t(e,n)||0:te(e)>te(n)?1:-1}}(t))).length,i=0;i<n;)e[i]=o[i++];for(;i<r;)delete e[i++];return e}});function ao(t){this._targetElement=t,this._introItems=[],this._options={nextLabel:"Next",prevLabel:"Back",skipLabel:"×",doneLabel:"Done",hidePrev:!1,hideNext:!1,nextToDone:!0,tooltipPosition:"bottom",tooltipClass:"",group:"",highlightClass:"",exitOnEsc:!0,exitOnOverlayClick:!0,showStepNumbers:!1,keyboardNavigation:!0,showButtons:!0,showBullets:!0,showProgress:!1,scrollToElement:!0,scrollTo:"element",scrollPadding:30,overlayOpacity:.5,autoPosition:!0,positionPrecedence:["bottom","top","right","left"],disableInteraction:!1,helperElementPadding:10,hintPosition:"top-middle",hintButtonLabel:"Got it",hintAnimation:!0,buttonClass:"introjs-button",progressBarAdditionalClass:!1}}var so=function n(i){var o;if("object"===t(i))o=new ao(i);else if("string"==typeof i){var r=document.querySelector(i);if(!r)throw new Error("There is no element with given selector.");o=new ao(r)}else o=new ao(document.body);return n.instances[e(o,"introjs-instance")]=o,o};return so.version="4.2.2",so.instances={},so.fn=ao.prototype={clone:function(){return new ao(this)},setOption:function(t,e){return this._options[t]=e,this},setOptions:function(t){return this._options=function(t,e){var n,i={};for(n in t)i[n]=t[n];for(n in e)i[n]=e[n];return i}(this._options,t),this},start:function(){return lo.call(this,this._targetElement),this},goToStep:function(t){return bi.call(this,t),this},addStep:function(t){return this._options.steps||(this._options.steps=[]),this._options.steps.push(t),this},addSteps:function(t){if(t.length){for(var e=0;e<t.length;e++)this.addStep(t[e]);return this}},goToStepNumber:function(t){return yi.call(this,t),this},nextStep:function(){return wi.call(this),this},previousStep:function(){return _i.call(this),this},currentStep:function(){return xi.call(this)},exit:function(t){return oo.call(this,this._targetElement,t),this},refresh:function(t){return eo.call(this,t),this},onbeforechange:function(t){if("function"!=typeof t)throw new Error("Provided callback for onbeforechange was not a function");return this._introBeforeChangeCallback=t,this},onchange:function(t){if("function"!=typeof t)throw new Error("Provided callback for onchange was not a function.");return this._introChangeCallback=t,this},onafterchange:function(t){if("function"!=typeof t)throw new Error("Provided callback for onafterchange was not a function");return this._introAfterChangeCallback=t,this},oncomplete:function(t){if("function"!=typeof t)throw new Error("Provided callback for oncomplete was not a function.");return this._introCompleteCallback=t,this},onhintsadded:function(t){if("function"!=typeof t)throw new Error("Provided callback for onhintsadded was not a function.");return this._hintsAddedCallback=t,this},onhintclick:function(t){if("function"!=typeof t)throw new Error("Provided callback for onhintclick was not a function.");return this._hintClickCallback=t,this},onhintclose:function(t){if("function"!=typeof t)throw new Error("Provided callback for onhintclose was not a function.");return this._hintCloseCallback=t,this},onexit:function(t){if("function"!=typeof t)throw new Error("Provided callback for onexit was not a function.");return this._introExitCallback=t,this},onskip:function(t){if("function"!=typeof t)throw new Error("Provided callback for onskip was not a function.");return this._introSkipCallback=t,this},onbeforeexit:function(t){if("function"!=typeof t)throw new Error("Provided callback for onbeforeexit was not a function.");return this._introBeforeExitCallback=t,this},addHints:function(){return Ri.call(this,this._targetElement),this},hideHint:function(t){return Ei.call(this,t),this},hideHints:function(){return Ai.call(this),this},showHint:function(t){return Ti.call(this,t),this},showHints:function(){return ki.call(this),this},removeHints:function(){return Ni.call(this),this},removeHint:function(t){return Ii().call(this,t),this},showHintDialog:function(t){return Li.call(this,t),this}},so}));
1
  /*!
2
+ * Intro.js v5.0.0
3
  * https://introjs.com
4
  *
5
+ * Copyright (C) 2012-2022 Afshin Mehrabani (@afshinmeh).
6
+ * https://introjs.com
7
  *
8
+ * Date: Sun, 06 Feb 2022 13:57:52 GMT
9
  */
10
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).introJs=e()}(this,(function(){"use strict";function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t(e)}var e=function(){var t={};return function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"introjs-stamp";return t[n]=t[n]||0,void 0===e[n]&&(e[n]=t[n]++),e[n]}}();function n(t,e,n){if(t)for(var i=0,o=t.length;i<o;i++)e(t[i],i);"function"==typeof n&&n()}var i=new function(){var t="introjs_event";this._id=function(t,n,i,o){return n+e(i)+(o?"_".concat(e(o)):"")},this.on=function(e,n,i,o,r){var a=this._id.apply(this,arguments),l=function(t){return i.call(o||e,t||window.event)};"addEventListener"in e?e.addEventListener(n,l,r):"attachEvent"in e&&e.attachEvent("on".concat(n),l),e[t]=e[t]||{},e[t][a]=l},this.off=function(e,n,i,o,r){var a=this._id.apply(this,arguments),l=e[t]&&e[t][a];l&&("removeEventListener"in e?e.removeEventListener(n,l,r):"detachEvent"in e&&e.detachEvent("on".concat(n),l),e[t][a]=null)}},o="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function r(t,e){return t(e={exports:{}},e.exports),e.exports}var a,l,s=function(t){return t&&t.Math==Math&&t},c=s("object"==typeof globalThis&&globalThis)||s("object"==typeof window&&window)||s("object"==typeof self&&self)||s("object"==typeof o&&o)||function(){return this}()||Function("return this")(),u=function(t){try{return!!t()}catch(t){return!0}},h=!u((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),f=!u((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")})),p=Function.prototype.call,d=f?p.bind(p):function(){return p.apply(p,arguments)},g={}.propertyIsEnumerable,v=Object.getOwnPropertyDescriptor,b={f:v&&!g.call({1:2},1)?function(t){var e=v(this,t);return!!e&&e.enumerable}:g},m=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},y=Function.prototype,w=y.bind,_=y.call,x=f&&w.bind(_,_),S=f?function(t){return t&&x(t)}:function(t){return t&&function(){return _.apply(t,arguments)}},j=S({}.toString),C=S("".slice),k=function(t){return C(j(t),8,-1)},E=c.Object,A=S("".split),I=u((function(){return!E("z").propertyIsEnumerable(0)}))?function(t){return"String"==k(t)?A(t,""):E(t)}:E,T=c.TypeError,N=function(t){if(null==t)throw T("Can't call method on "+t);return t},O=function(t){return I(N(t))},P=function(t){return"function"==typeof t},L=function(t){return"object"==typeof t?null!==t:P(t)},R=function(t){return P(t)?t:void 0},q=function(t,e){return arguments.length<2?R(c[t]):c[t]&&c[t][e]},B=S({}.isPrototypeOf),M=q("navigator","userAgent")||"",H=c.process,F=c.Deno,$=H&&H.versions||F&&F.version,D=$&&$.v8;D&&(l=(a=D.split("."))[0]>0&&a[0]<4?1:+(a[0]+a[1])),!l&&M&&(!(a=M.match(/Edge\/(\d+)/))||a[1]>=74)&&(a=M.match(/Chrome\/(\d+)/))&&(l=+a[1]);var z=l,G=!!Object.getOwnPropertySymbols&&!u((function(){var t=Symbol();return!String(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&z&&z<41})),W=G&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,V=c.Object,U=W?function(t){return"symbol"==typeof t}:function(t){var e=q("Symbol");return P(e)&&B(e.prototype,V(t))},K=c.String,Y=function(t){try{return K(t)}catch(t){return"Object"}},X=c.TypeError,J=function(t){if(P(t))return t;throw X(Y(t)+" is not a function")},Q=function(t,e){var n=t[e];return null==n?void 0:J(n)},Z=c.TypeError,tt=Object.defineProperty,et=function(t,e){try{tt(c,t,{value:e,configurable:!0,writable:!0})}catch(n){c[t]=e}return e},nt="__core-js_shared__",it=c[nt]||et(nt,{}),ot=r((function(t){(t.exports=function(t,e){return it[t]||(it[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.21.0",mode:"global",copyright:"© 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.21.0/LICENSE",source:"https://github.com/zloirock/core-js"})})),rt=c.Object,at=function(t){return rt(N(t))},lt=S({}.hasOwnProperty),st=Object.hasOwn||function(t,e){return lt(at(t),e)},ct=0,ut=Math.random(),ht=S(1..toString),ft=function(t){return"Symbol("+(void 0===t?"":t)+")_"+ht(++ct+ut,36)},pt=ot("wks"),dt=c.Symbol,gt=dt&&dt.for,vt=W?dt:dt&&dt.withoutSetter||ft,bt=function(t){if(!st(pt,t)||!G&&"string"!=typeof pt[t]){var e="Symbol."+t;G&&st(dt,t)?pt[t]=dt[t]:pt[t]=W&&gt?gt(e):vt(e)}return pt[t]},mt=c.TypeError,yt=bt("toPrimitive"),wt=function(t,e){if(!L(t)||U(t))return t;var n,i=Q(t,yt);if(i){if(void 0===e&&(e="default"),n=d(i,t,e),!L(n)||U(n))return n;throw mt("Can't convert object to primitive value")}return void 0===e&&(e="number"),function(t,e){var n,i;if("string"===e&&P(n=t.toString)&&!L(i=d(n,t)))return i;if(P(n=t.valueOf)&&!L(i=d(n,t)))return i;if("string"!==e&&P(n=t.toString)&&!L(i=d(n,t)))return i;throw Z("Can't convert object to primitive value")}(t,e)},_t=function(t){var e=wt(t,"string");return U(e)?e:e+""},xt=c.document,St=L(xt)&&L(xt.createElement),jt=function(t){return St?xt.createElement(t):{}},Ct=!h&&!u((function(){return 7!=Object.defineProperty(jt("div"),"a",{get:function(){return 7}}).a})),kt=Object.getOwnPropertyDescriptor,Et={f:h?kt:function(t,e){if(t=O(t),e=_t(e),Ct)try{return kt(t,e)}catch(t){}if(st(t,e))return m(!d(b.f,t,e),t[e])}},At=h&&u((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype})),It=c.String,Tt=c.TypeError,Nt=function(t){if(L(t))return t;throw Tt(It(t)+" is not an object")},Ot=c.TypeError,Pt=Object.defineProperty,Lt=Object.getOwnPropertyDescriptor,Rt="enumerable",qt="configurable",Bt="writable",Mt={f:h?At?function(t,e,n){if(Nt(t),e=_t(e),Nt(n),"function"==typeof t&&"prototype"===e&&"value"in n&&Bt in n&&!n.writable){var i=Lt(t,e);i&&i.writable&&(t[e]=n.value,n={configurable:qt in n?n.configurable:i.configurable,enumerable:Rt in n?n.enumerable:i.enumerable,writable:!1})}return Pt(t,e,n)}:Pt:function(t,e,n){if(Nt(t),e=_t(e),Nt(n),Ct)try{return Pt(t,e,n)}catch(t){}if("get"in n||"set"in n)throw Ot("Accessors not supported");return"value"in n&&(t[e]=n.value),t}},Ht=h?function(t,e,n){return Mt.f(t,e,m(1,n))}:function(t,e,n){return t[e]=n,t},Ft=S(Function.toString);P(it.inspectSource)||(it.inspectSource=function(t){return Ft(t)});var $t,Dt,zt,Gt=it.inspectSource,Wt=c.WeakMap,Vt=P(Wt)&&/native code/.test(Gt(Wt)),Ut=ot("keys"),Kt=function(t){return Ut[t]||(Ut[t]=ft(t))},Yt={},Xt="Object already initialized",Jt=c.TypeError,Qt=c.WeakMap;if(Vt||it.state){var Zt=it.state||(it.state=new Qt),te=S(Zt.get),ee=S(Zt.has),ne=S(Zt.set);$t=function(t,e){if(ee(Zt,t))throw new Jt(Xt);return e.facade=t,ne(Zt,t,e),e},Dt=function(t){return te(Zt,t)||{}},zt=function(t){return ee(Zt,t)}}else{var ie=Kt("state");Yt[ie]=!0,$t=function(t,e){if(st(t,ie))throw new Jt(Xt);return e.facade=t,Ht(t,ie,e),e},Dt=function(t){return st(t,ie)?t[ie]:{}},zt=function(t){return st(t,ie)}}var oe={set:$t,get:Dt,has:zt,enforce:function(t){return zt(t)?Dt(t):$t(t,{})},getterFor:function(t){return function(e){var n;if(!L(e)||(n=Dt(e)).type!==t)throw Jt("Incompatible receiver, "+t+" required");return n}}},re=Function.prototype,ae=h&&Object.getOwnPropertyDescriptor,le=st(re,"name"),se={EXISTS:le,PROPER:le&&"something"===function(){}.name,CONFIGURABLE:le&&(!h||h&&ae(re,"name").configurable)},ce=r((function(t){var e=se.CONFIGURABLE,n=oe.get,i=oe.enforce,o=String(String).split("String");(t.exports=function(t,n,r,a){var l,s=!!a&&!!a.unsafe,u=!!a&&!!a.enumerable,h=!!a&&!!a.noTargetGet,f=a&&void 0!==a.name?a.name:n;P(r)&&("Symbol("===String(f).slice(0,7)&&(f="["+String(f).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),(!st(r,"name")||e&&r.name!==f)&&Ht(r,"name",f),(l=i(r)).source||(l.source=o.join("string"==typeof f?f:""))),t!==c?(s?!h&&t[n]&&(u=!0):delete t[n],u?t[n]=r:Ht(t,n,r)):u?t[n]=r:et(n,r)})(Function.prototype,"toString",(function(){return P(this)&&n(this).source||Gt(this)}))})),ue=Math.ceil,he=Math.floor,fe=function(t){var e=+t;return e!=e||0===e?0:(e>0?he:ue)(e)},pe=Math.max,de=Math.min,ge=function(t,e){var n=fe(t);return n<0?pe(n+e,0):de(n,e)},ve=Math.min,be=function(t){return t>0?ve(fe(t),9007199254740991):0},me=function(t){return be(t.length)},ye=function(t){return function(e,n,i){var o,r=O(e),a=me(r),l=ge(i,a);if(t&&n!=n){for(;a>l;)if((o=r[l++])!=o)return!0}else for(;a>l;l++)if((t||l in r)&&r[l]===n)return t||l||0;return!t&&-1}},we={includes:ye(!0),indexOf:ye(!1)},_e=we.indexOf,xe=S([].push),Se=function(t,e){var n,i=O(t),o=0,r=[];for(n in i)!st(Yt,n)&&st(i,n)&&xe(r,n);for(;e.length>o;)st(i,n=e[o++])&&(~_e(r,n)||xe(r,n));return r},je=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Ce=je.concat("length","prototype"),ke={f:Object.getOwnPropertyNames||function(t){return Se(t,Ce)}},Ee={f:Object.getOwnPropertySymbols},Ae=S([].concat),Ie=q("Reflect","ownKeys")||function(t){var e=ke.f(Nt(t)),n=Ee.f;return n?Ae(e,n(t)):e},Te=function(t,e,n){for(var i=Ie(e),o=Mt.f,r=Et.f,a=0;a<i.length;a++){var l=i[a];st(t,l)||n&&st(n,l)||o(t,l,r(e,l))}},Ne=/#|\.prototype\./,Oe=function(t,e){var n=Le[Pe(t)];return n==qe||n!=Re&&(P(e)?u(e):!!e)},Pe=Oe.normalize=function(t){return String(t).replace(Ne,".").toLowerCase()},Le=Oe.data={},Re=Oe.NATIVE="N",qe=Oe.POLYFILL="P",Be=Oe,Me=Et.f,He=function(t,e){var n,i,o,r,a,l=t.target,s=t.global,u=t.stat;if(n=s?c:u?c[l]||et(l,{}):(c[l]||{}).prototype)for(i in e){if(r=e[i],o=t.noTargetGet?(a=Me(n,i))&&a.value:n[i],!Be(s?i:l+(u?".":"#")+i,t.forced)&&void 0!==o){if(typeof r==typeof o)continue;Te(r,o)}(t.sham||o&&o.sham)&&Ht(r,"sham",!0),ce(n,i,r,t)}},Fe={};Fe[bt("toStringTag")]="z";var $e,De="[object z]"===String(Fe),ze=bt("toStringTag"),Ge=c.Object,We="Arguments"==k(function(){return arguments}()),Ve=De?k:function(t){var e,n,i;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=Ge(t),ze))?n:We?k(e):"Object"==(i=k(e))&&P(e.callee)?"Arguments":i},Ue=c.String,Ke=function(t){if("Symbol"===Ve(t))throw TypeError("Cannot convert a Symbol value to a string");return Ue(t)},Ye=function(){var t=Nt(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.dotAll&&(e+="s"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e},Xe=c.RegExp,Je=u((function(){var t=Xe("a","y");return t.lastIndex=2,null!=t.exec("abcd")})),Qe=Je||u((function(){return!Xe("a","y").sticky})),Ze={BROKEN_CARET:Je||u((function(){var t=Xe("^r","gy");return t.lastIndex=2,null!=t.exec("str")})),MISSED_STICKY:Qe,UNSUPPORTED_Y:Je},tn=Object.keys||function(t){return Se(t,je)},en=h&&!At?Object.defineProperties:function(t,e){Nt(t);for(var n,i=O(e),o=tn(e),r=o.length,a=0;r>a;)Mt.f(t,n=o[a++],i[n]);return t},nn={f:en},on=q("document","documentElement"),rn=Kt("IE_PROTO"),an=function(){},ln=function(t){return"<script>"+t+"</"+"script>"},sn=function(t){t.write(ln("")),t.close();var e=t.parentWindow.Object;return t=null,e},cn=function(){try{$e=new ActiveXObject("htmlfile")}catch(t){}var t,e;cn="undefined"!=typeof document?document.domain&&$e?sn($e):((e=jt("iframe")).style.display="none",on.appendChild(e),e.src=String("javascript:"),(t=e.contentWindow.document).open(),t.write(ln("document.F=Object")),t.close(),t.F):sn($e);for(var n=je.length;n--;)delete cn.prototype[je[n]];return cn()};Yt[rn]=!0;var un,hn,fn=Object.create||function(t,e){var n;return null!==t?(an.prototype=Nt(t),n=new an,an.prototype=null,n[rn]=t):n=cn(),void 0===e?n:nn.f(n,e)},pn=c.RegExp,dn=u((function(){var t=pn(".","s");return!(t.dotAll&&t.exec("\n")&&"s"===t.flags)})),gn=c.RegExp,vn=u((function(){var t=gn("(?<a>b)","g");return"b"!==t.exec("b").groups.a||"bc"!=="b".replace(t,"$<a>c")})),bn=oe.get,mn=ot("native-string-replace",String.prototype.replace),yn=RegExp.prototype.exec,wn=yn,_n=S("".charAt),xn=S("".indexOf),Sn=S("".replace),jn=S("".slice),Cn=(hn=/b*/g,d(yn,un=/a/,"a"),d(yn,hn,"a"),0!==un.lastIndex||0!==hn.lastIndex),kn=Ze.BROKEN_CARET,En=void 0!==/()??/.exec("")[1];(Cn||En||kn||dn||vn)&&(wn=function(t){var e,n,i,o,r,a,l,s=this,c=bn(s),u=Ke(t),h=c.raw;if(h)return h.lastIndex=s.lastIndex,e=d(wn,h,u),s.lastIndex=h.lastIndex,e;var f=c.groups,p=kn&&s.sticky,g=d(Ye,s),v=s.source,b=0,m=u;if(p&&(g=Sn(g,"y",""),-1===xn(g,"g")&&(g+="g"),m=jn(u,s.lastIndex),s.lastIndex>0&&(!s.multiline||s.multiline&&"\n"!==_n(u,s.lastIndex-1))&&(v="(?: "+v+")",m=" "+m,b++),n=new RegExp("^(?:"+v+")",g)),En&&(n=new RegExp("^"+v+"$(?!\\s)",g)),Cn&&(i=s.lastIndex),o=d(yn,p?n:s,m),p?o?(o.input=jn(o.input,b),o[0]=jn(o[0],b),o.index=s.lastIndex,s.lastIndex+=o[0].length):s.lastIndex=0:Cn&&o&&(s.lastIndex=s.global?o.index+o[0].length:i),En&&o&&o.length>1&&d(mn,o[0],n,(function(){for(r=1;r<arguments.length-2;r++)void 0===arguments[r]&&(o[r]=void 0)})),o&&f)for(o.groups=a=fn(null),r=0;r<f.length;r++)a[(l=f[r])[0]]=o[l[1]];return o});var An=wn;He({target:"RegExp",proto:!0,forced:/./.exec!==An},{exec:An});var In=bt("species"),Tn=RegExp.prototype,Nn=function(t,e,n,i){var o=bt(t),r=!u((function(){var e={};return e[o]=function(){return 7},7!=""[t](e)})),a=r&&!u((function(){var e=!1,n=/a/;return"split"===t&&((n={}).constructor={},n.constructor[In]=function(){return n},n.flags="",n[o]=/./[o]),n.exec=function(){return e=!0,null},n[o](""),!e}));if(!r||!a||n){var l=S(/./[o]),s=e(o,""[t],(function(t,e,n,i,o){var a=S(t),s=e.exec;return s===An||s===Tn.exec?r&&!o?{done:!0,value:l(e,n,i)}:{done:!0,value:a(n,e,i)}:{done:!1}}));ce(String.prototype,t,s[0]),ce(Tn,o,s[1])}i&&Ht(Tn[o],"sham",!0)},On=S("".charAt),Pn=S("".charCodeAt),Ln=S("".slice),Rn=function(t){return function(e,n){var i,o,r=Ke(N(e)),a=fe(n),l=r.length;return a<0||a>=l?t?"":void 0:(i=Pn(r,a))<55296||i>56319||a+1===l||(o=Pn(r,a+1))<56320||o>57343?t?On(r,a):i:t?Ln(r,a,a+2):o-56320+(i-55296<<10)+65536}},qn={codeAt:Rn(!1),charAt:Rn(!0)}.charAt,Bn=function(t,e,n){return e+(n?qn(t,e).length:1)},Mn=c.TypeError,Hn=function(t,e){var n=t.exec;if(P(n)){var i=d(n,t,e);return null!==i&&Nt(i),i}if("RegExp"===k(t))return d(An,t,e);throw Mn("RegExp#exec called on incompatible receiver")};Nn("match",(function(t,e,n){return[function(e){var n=N(this),i=null==e?void 0:Q(e,t);return i?d(i,e,n):new RegExp(e)[t](Ke(n))},function(t){var i=Nt(this),o=Ke(t),r=n(e,i,o);if(r.done)return r.value;if(!i.global)return Hn(i,o);var a=i.unicode;i.lastIndex=0;for(var l,s=[],c=0;null!==(l=Hn(i,o));){var u=Ke(l[0]);s[c]=u,""===u&&(i.lastIndex=Bn(o,be(i.lastIndex),a)),c++}return 0===c?null:s}]}));var Fn=Array.isArray||function(t){return"Array"==k(t)},$n=function(t,e,n){var i=_t(e);i in t?Mt.f(t,i,m(0,n)):t[i]=n},Dn=function(){},zn=[],Gn=q("Reflect","construct"),Wn=/^\s*(?:class|function)\b/,Vn=S(Wn.exec),Un=!Wn.exec(Dn),Kn=function(t){if(!P(t))return!1;try{return Gn(Dn,zn,t),!0}catch(t){return!1}},Yn=function(t){if(!P(t))return!1;switch(Ve(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return Un||!!Vn(Wn,Gt(t))}catch(t){return!0}};Yn.sham=!0;var Xn=!Gn||u((function(){var t;return Kn(Kn.call)||!Kn(Object)||!Kn((function(){t=!0}))||t}))?Yn:Kn,Jn=bt("species"),Qn=c.Array,Zn=function(t,e){return new(function(t){var e;return Fn(t)&&(e=t.constructor,(Xn(e)&&(e===Qn||Fn(e.prototype))||L(e)&&null===(e=e[Jn]))&&(e=void 0)),void 0===e?Qn:e}(t))(0===e?0:e)},ti=bt("species"),ei=function(t){return z>=51||!u((function(){var e=[];return(e.constructor={})[ti]=function(){return{foo:1}},1!==e[t](Boolean).foo}))},ni=bt("isConcatSpreadable"),ii=9007199254740991,oi="Maximum allowed index exceeded",ri=c.TypeError,ai=z>=51||!u((function(){var t=[];return t[ni]=!1,t.concat()[0]!==t})),li=ei("concat"),si=function(t){if(!L(t))return!1;var e=t[ni];return void 0!==e?!!e:Fn(t)};He({target:"Array",proto:!0,forced:!ai||!li},{concat:function(t){var e,n,i,o,r,a=at(this),l=Zn(a,0),s=0;for(e=-1,i=arguments.length;e<i;e++)if(si(r=-1===e?a:arguments[e])){if(s+(o=me(r))>ii)throw ri(oi);for(n=0;n<o;n++,s++)n in r&&$n(l,s,r[n])}else{if(s>=ii)throw ri(oi);$n(l,s++,r)}return l.length=s,l}});var ci=De?{}.toString:function(){return"[object "+Ve(this)+"]"};De||ce(Object.prototype,"toString",ci,{unsafe:!0});var ui=se.PROPER,hi="toString",fi=RegExp.prototype,pi=fi.toString,di=S(Ye),gi=u((function(){return"/a/b"!=pi.call({source:"a",flags:"b"})})),vi=ui&&pi.name!=hi;(gi||vi)&&ce(RegExp.prototype,hi,(function(){var t=Nt(this),e=Ke(t.source),n=t.flags;return"/"+e+"/"+Ke(void 0===n&&B(fi,t)&&!("flags"in fi)?di(t):n)}),{unsafe:!0});var bi=Function.prototype,mi=bi.apply,yi=bi.call,wi="object"==typeof Reflect&&Reflect.apply||(f?yi.bind(mi):function(){return yi.apply(mi,arguments)}),_i=bt("match"),xi=function(t){var e;return L(t)&&(void 0!==(e=t[_i])?!!e:"RegExp"==k(t))},Si=c.TypeError,ji=bt("species"),Ci=function(t,e){var n,i=Nt(t).constructor;return void 0===i||null==(n=Nt(i)[ji])?e:function(t){if(Xn(t))return t;throw Si(Y(t)+" is not a constructor")}(n)},ki=c.Array,Ei=Math.max,Ai=function(t,e,n){for(var i=me(t),o=ge(e,i),r=ge(void 0===n?i:n,i),a=ki(Ei(r-o,0)),l=0;o<r;o++,l++)$n(a,l,t[o]);return a.length=l,a},Ii=Ze.UNSUPPORTED_Y,Ti=4294967295,Ni=Math.min,Oi=[].push,Pi=S(/./.exec),Li=S(Oi),Ri=S("".slice),qi=!u((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n="ab".split(t);return 2!==n.length||"a"!==n[0]||"b"!==n[1]}));function Bi(t,e){if(t instanceof SVGElement){var i=t.getAttribute("class")||"";i.match(e)||t.setAttribute("class","".concat(i," ").concat(e))}else{if(void 0!==t.classList)n(e.split(" "),(function(e){t.classList.add(e)}));else t.className.match(e)||(t.className+=" ".concat(e))}}function Mi(t,e){var n="";return t.currentStyle?n=t.currentStyle[e]:document.defaultView&&document.defaultView.getComputedStyle&&(n=document.defaultView.getComputedStyle(t,null).getPropertyValue(e)),n&&n.toLowerCase?n.toLowerCase():n}function Hi(t){var e=t.element;if(this._options.scrollToElement){var n=function(t){var e=window.getComputedStyle(t),n="absolute"===e.position,i=/(auto|scroll)/;if("fixed"===e.position)return document.body;for(var o=t;o=o.parentElement;)if(e=window.getComputedStyle(o),(!n||"static"!==e.position)&&i.test(e.overflow+e.overflowY+e.overflowX))return o;return document.body}(e);n!==document.body&&(n.scrollTop=e.offsetTop-n.offsetTop)}}function Fi(){if(void 0!==window.innerWidth)return{width:window.innerWidth,height:window.innerHeight};var t=document.documentElement;return{width:t.clientWidth,height:t.clientHeight}}function $i(t,e,n){var i,o=e.element;if("off"!==t&&(this._options.scrollToElement&&(i="tooltip"===t?n.getBoundingClientRect():o.getBoundingClientRect(),!function(t){var e=t.getBoundingClientRect();return e.top>=0&&e.left>=0&&e.bottom+80<=window.innerHeight&&e.right<=window.innerWidth}(o)))){var r=Fi().height;i.bottom-(i.bottom-i.top)<0||o.clientHeight>r?window.scrollBy(0,i.top-(r/2-i.height/2)-this._options.scrollPadding):window.scrollBy(0,i.top-(r/2-i.height/2)+this._options.scrollPadding)}}function Di(t){t.setAttribute("role","button"),t.tabIndex=0}Nn("split",(function(t,e,n){var i;return i="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(t,n){var i=Ke(N(this)),o=void 0===n?Ti:n>>>0;if(0===o)return[];if(void 0===t)return[i];if(!xi(t))return d(e,i,t,o);for(var r,a,l,s=[],c=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":""),u=0,h=new RegExp(t.source,c+"g");(r=d(An,h,i))&&!((a=h.lastIndex)>u&&(Li(s,Ri(i,u,r.index)),r.length>1&&r.index<i.length&&wi(Oi,s,Ai(r,1)),l=r[0].length,u=a,s.length>=o));)h.lastIndex===r.index&&h.lastIndex++;return u===i.length?!l&&Pi(h,"")||Li(s,""):Li(s,Ri(i,u)),s.length>o?Ai(s,0,o):s}:"0".split(void 0,0).length?function(t,n){return void 0===t&&0===n?[]:d(e,this,t,n)}:e,[function(e,n){var o=N(this),r=null==e?void 0:Q(e,t);return r?d(r,e,o,n):d(i,Ke(o),e,n)},function(t,o){var r=Nt(this),a=Ke(t),l=n(i,r,a,o,i!==e);if(l.done)return l.value;var s=Ci(r,RegExp),c=r.unicode,u=(r.ignoreCase?"i":"")+(r.multiline?"m":"")+(r.unicode?"u":"")+(Ii?"g":"y"),h=new s(Ii?"^(?:"+r.source+")":r,u),f=void 0===o?Ti:o>>>0;if(0===f)return[];if(0===a.length)return null===Hn(h,a)?[a]:[];for(var p=0,d=0,g=[];d<a.length;){h.lastIndex=Ii?0:d;var v,b=Hn(h,Ii?Ri(a,d):a);if(null===b||(v=Ni(be(h.lastIndex+(Ii?d:0)),a.length))===p)d=Bn(a,d,c);else{if(Li(g,Ri(a,p,d)),g.length===f)return g;for(var m=1;m<=b.length-1;m++)if(Li(g,b[m]),g.length===f)return g;d=p=v}}return Li(g,Ri(a,p)),g}]}),!qi,Ii);var zi=Object.assign,Gi=Object.defineProperty,Wi=S([].concat),Vi=!zi||u((function(){if(h&&1!==zi({b:1},zi(Gi({},"a",{enumerable:!0,get:function(){Gi(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol(),i="abcdefghijklmnopqrst";return t[n]=7,i.split("").forEach((function(t){e[t]=t})),7!=zi({},t)[n]||tn(zi({},e)).join("")!=i}))?function(t,e){for(var n=at(t),i=arguments.length,o=1,r=Ee.f,a=b.f;i>o;)for(var l,s=I(arguments[o++]),c=r?Wi(tn(s),r(s)):tn(s),u=c.length,f=0;u>f;)l=c[f++],h&&!d(a,s,l)||(n[l]=s[l]);return n}:zi;function Ui(t){var e=t.parentNode;return!(!e||"HTML"===e.nodeName)&&("fixed"===Mi(t,"position")||Ui(e))}function Ki(t,e){var n=document.body,i=document.documentElement,o=window.pageYOffset||i.scrollTop||n.scrollTop,r=window.pageXOffset||i.scrollLeft||n.scrollLeft;e=e||n;var a=t.getBoundingClientRect(),l=e.getBoundingClientRect(),s=Mi(e,"position"),c={width:a.width,height:a.height};return"body"!==e.tagName.toLowerCase()&&"relative"===s||"sticky"===s?Object.assign(c,{top:a.top-l.top,left:a.left-l.left}):Ui(t)?Object.assign(c,{top:a.top,left:a.left}):Object.assign(c,{top:a.top+o,left:a.left+r})}He({target:"Object",stat:!0,forced:Object.assign!==Vi},{assign:Vi});var Yi=Math.floor,Xi=S("".charAt),Ji=S("".replace),Qi=S("".slice),Zi=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,to=/\$([$&'`]|\d{1,2})/g,eo=function(t,e,n,i,o,r){var a=n+t.length,l=i.length,s=to;return void 0!==o&&(o=at(o),s=Zi),Ji(r,s,(function(r,s){var c;switch(Xi(s,0)){case"$":return"$";case"&":return t;case"`":return Qi(e,0,n);case"'":return Qi(e,a);case"<":c=o[Qi(s,1,-1)];break;default:var u=+s;if(0===u)return r;if(u>l){var h=Yi(u/10);return 0===h?r:h<=l?void 0===i[h-1]?Xi(s,1):i[h-1]+Xi(s,1):r}c=i[u-1]}return void 0===c?"":c}))},no=bt("replace"),io=Math.max,oo=Math.min,ro=S([].concat),ao=S([].push),lo=S("".indexOf),so=S("".slice),co="$0"==="a".replace(/./,"$0"),uo=!!/./[no]&&""===/./[no]("a","$0");function ho(t,e){if(t instanceof SVGElement){var n=t.getAttribute("class")||"";t.setAttribute("class",n.replace(e,"").replace(/^\s+|\s+$/g,""))}else t.className=t.className.replace(e,"").replace(/^\s+|\s+$/g,"")}function fo(t,e){var n="";if(t.style.cssText&&(n+=t.style.cssText),"string"==typeof e)n+=e;else for(var i in e)n+="".concat(i,":").concat(e[i],";");t.style.cssText=n}function po(t){if(t){if(!this._introItems[this._currentStep])return;var e=this._introItems[this._currentStep],n=Ki(e.element,this._targetElement),i=this._options.helperElementPadding;Ui(e.element)?Bi(t,"introjs-fixedTooltip"):ho(t,"introjs-fixedTooltip"),"floating"===e.position&&(i=0),fo(t,{width:"".concat(n.width+i,"px"),height:"".concat(n.height+i,"px"),top:"".concat(n.top-i/2,"px"),left:"".concat(n.left-i/2,"px")})}}Nn("replace",(function(t,e,n){var i=uo?"$":"$0";return[function(t,n){var i=N(this),o=null==t?void 0:Q(t,no);return o?d(o,t,i,n):d(e,Ke(i),t,n)},function(t,o){var r=Nt(this),a=Ke(t);if("string"==typeof o&&-1===lo(o,i)&&-1===lo(o,"$<")){var l=n(e,r,a,o);if(l.done)return l.value}var s=P(o);s||(o=Ke(o));var c=r.global;if(c){var u=r.unicode;r.lastIndex=0}for(var h=[];;){var f=Hn(r,a);if(null===f)break;if(ao(h,f),!c)break;""===Ke(f[0])&&(r.lastIndex=Bn(a,be(r.lastIndex),u))}for(var p,d="",g=0,v=0;v<h.length;v++){for(var b=Ke((f=h[v])[0]),m=io(oo(fe(f.index),a.length),0),y=[],w=1;w<f.length;w++)ao(y,void 0===(p=f[w])?p:String(p));var _=f.groups;if(s){var x=ro([b],y,m,a);void 0!==_&&ao(x,_);var S=Ke(wi(o,void 0,x))}else S=eo(b,a,m,y,_,o);m>=g&&(d+=so(a,g,m)+S,g=m+b.length)}return d+so(a,g)}]}),!!u((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$<a>")}))||!co||uo);var go=bt("unscopables"),vo=Array.prototype;null==vo[go]&&Mt.f(vo,go,{configurable:!0,value:fn(null)});var bo,mo=we.includes;He({target:"Array",proto:!0},{includes:function(t){return mo(this,t,arguments.length>1?arguments[1]:void 0)}}),bo="includes",vo[go][bo]=!0;var yo=S([].slice),wo=ei("slice"),_o=bt("species"),xo=c.Array,So=Math.max;He({target:"Array",proto:!0,forced:!wo},{slice:function(t,e){var n,i,o,r=O(this),a=me(r),l=ge(t,a),s=ge(void 0===e?a:e,a);if(Fn(r)&&(n=r.constructor,(Xn(n)&&(n===xo||Fn(n.prototype))||L(n)&&null===(n=n[_o]))&&(n=void 0),n===xo||void 0===n))return yo(r,l,s);for(i=new(void 0===n?xo:n)(So(s-l,0)),o=0;l<s;l++,o++)l in r&&$n(i,o,r[l]);return i.length=o,i}});var jo=c.TypeError,Co=function(t){if(xi(t))throw jo("The method doesn't accept regular expressions");return t},ko=bt("match"),Eo=S("".indexOf);He({target:"String",proto:!0,forced:!function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[ko]=!1,"/./"[t](e)}catch(t){}}return!1}("includes")},{includes:function(t){return!!~Eo(Ke(N(this)),Ke(Co(t)),arguments.length>1?arguments[1]:void 0)}});var Ao=function(t,e){var n=[][t];return!!n&&u((function(){n.call(null,e||function(){throw 1},1)}))},Io=S([].join),To=I!=Object,No=Ao("join",",");He({target:"Array",proto:!0,forced:To||!No},{join:function(t){return Io(O(this),void 0===t?",":t)}});var Oo=S(S.bind),Po=S([].push),Lo=function(t){var e=1==t,n=2==t,i=3==t,o=4==t,r=6==t,a=7==t,l=5==t||r;return function(s,c,u,h){for(var p,d,g=at(s),v=I(g),b=function(t,e){return J(t),void 0===e?t:f?Oo(t,e):function(){return t.apply(e,arguments)}}(c,u),m=me(v),y=0,w=h||Zn,_=e?w(s,m):n||a?w(s,0):void 0;m>y;y++)if((l||y in v)&&(d=b(p=v[y],y,g),t))if(e)_[y]=d;else if(d)switch(t){case 3:return!0;case 5:return p;case 6:return y;case 2:Po(_,p)}else switch(t){case 4:return!1;case 7:Po(_,p)}return r?-1:i||o?o:_}},Ro={forEach:Lo(0),map:Lo(1),filter:Lo(2),some:Lo(3),every:Lo(4),find:Lo(5),findIndex:Lo(6),filterReject:Lo(7)}.filter;function qo(t,e,n,i,o){return t.left+e+n.width>i.width?(o.style.left="".concat(i.width-n.width-t.left,"px"),!1):(o.style.left="".concat(e,"px"),!0)}function Bo(t,e,n,i){return t.left+t.width-e-n.width<0?(i.style.left="".concat(-t.left,"px"),!1):(i.style.right="".concat(e,"px"),!0)}He({target:"Array",proto:!0,forced:!ei("filter")},{filter:function(t){return Ro(this,t,arguments.length>1?arguments[1]:void 0)}});var Mo=ei("splice"),Ho=c.TypeError,Fo=Math.max,$o=Math.min,Do=9007199254740991,zo="Maximum allowed length exceeded";function Go(t,e){t.includes(e)&&t.splice(t.indexOf(e),1)}function Wo(t,e,n){var i=this._options.positionPrecedence.slice(),o=Fi(),r=Ki(e).height+10,a=Ki(e).width+20,l=t.getBoundingClientRect(),s="floating";l.bottom+r>o.height&&Go(i,"bottom"),l.top-r<0&&Go(i,"top"),l.right+a>o.width&&Go(i,"right"),l.left-a<0&&Go(i,"left");var c,u,h=-1!==(u=(c=n||"").indexOf("-"))?c.substr(u):"";return n&&(n=n.split("-")[0]),i.length&&(s=i.includes(n)?n:i[0]),["top","bottom"].includes(s)&&(s+=function(t,e,n,i){var o=n.width,r=e/2,a=Math.min(o,window.screen.width),l=["-left-aligned","-middle-aligned","-right-aligned"];return a-t<e&&Go(l,"-left-aligned"),(t<r||a-t<r)&&Go(l,"-middle-aligned"),t<e&&Go(l,"-right-aligned"),l.length?l.includes(i)?i:l[0]:"-middle-aligned"}(l.left,a,o,h)),s}function Vo(t,e,n,i){var o,r,a,l,s,c="";if(i=i||!1,e.style.top=null,e.style.right=null,e.style.bottom=null,e.style.left=null,e.style.marginLeft=null,e.style.marginTop=null,n.style.display="inherit",this._introItems[this._currentStep])switch(c="string"==typeof(o=this._introItems[this._currentStep]).tooltipClass?o.tooltipClass:this._options.tooltipClass,e.className=["introjs-tooltip",c].filter(Boolean).join(" "),e.setAttribute("role","dialog"),"floating"!==(s=this._introItems[this._currentStep].position)&&this._options.autoPosition&&(s=Wo.call(this,t,e,s)),a=Ki(t),r=Ki(e),l=Fi(),Bi(e,"introjs-".concat(s)),s){case"top-right-aligned":n.className="introjs-arrow bottom-right";var u=0;Bo(a,u,r,e),e.style.bottom="".concat(a.height+20,"px");break;case"top-middle-aligned":n.className="introjs-arrow bottom-middle";var h=a.width/2-r.width/2;i&&(h+=5),Bo(a,h,r,e)&&(e.style.right=null,qo(a,h,r,l,e)),e.style.bottom="".concat(a.height+20,"px");break;case"top-left-aligned":case"top":n.className="introjs-arrow bottom",qo(a,i?0:15,r,l,e),e.style.bottom="".concat(a.height+20,"px");break;case"right":e.style.left="".concat(a.width+20,"px"),a.top+r.height>l.height?(n.className="introjs-arrow left-bottom",e.style.top="-".concat(r.height-a.height-20,"px")):n.className="introjs-arrow left";break;case"left":i||!0!==this._options.showStepNumbers||(e.style.top="15px"),a.top+r.height>l.height?(e.style.top="-".concat(r.height-a.height-20,"px"),n.className="introjs-arrow right-bottom"):n.className="introjs-arrow right",e.style.right="".concat(a.width+20,"px");break;case"floating":n.style.display="none",e.style.left="50%",e.style.top="50%",e.style.marginLeft="-".concat(r.width/2,"px"),e.style.marginTop="-".concat(r.height/2,"px");break;case"bottom-right-aligned":n.className="introjs-arrow top-right",Bo(a,u=0,r,e),e.style.top="".concat(a.height+20,"px");break;case"bottom-middle-aligned":n.className="introjs-arrow top-middle",h=a.width/2-r.width/2,i&&(h+=5),Bo(a,h,r,e)&&(e.style.right=null,qo(a,h,r,l,e)),e.style.top="".concat(a.height+20,"px");break;default:n.className="introjs-arrow top",qo(a,0,r,l,e),e.style.top="".concat(a.height+20,"px")}}function Uo(){n(document.querySelectorAll(".introjs-showElement"),(function(t){ho(t,/introjs-[a-zA-Z]+/g)}))}function Ko(t,e){var n=document.createElement(t);e=e||{};var i=/^(?:role|data-|aria-)/;for(var o in e){var r=e[o];"style"===o?fo(n,r):o.match(i)?n.setAttribute(o,r):n[o]=r}return n}function Yo(t,e,n){if(n){var i=e.style.opacity||"1";fo(e,{opacity:"0"}),window.setTimeout((function(){fo(e,{opacity:i})}),10)}t.appendChild(e)}function Xo(){return parseInt(this._currentStep+1,10)/this._introItems.length*100}function Jo(){var t=document.querySelector(".introjs-disableInteraction");null===t&&(t=Ko("div",{className:"introjs-disableInteraction"}),this._targetElement.appendChild(t)),po.call(this,t)}function Qo(t){var e=this,i=Ko("div",{className:"introjs-bullets"});!1===this._options.showBullets&&(i.style.display="none");var o=Ko("ul");o.setAttribute("role","tablist");var r=function(){e.goToStep(this.getAttribute("data-step-number"))};return n(this._introItems,(function(e,n){var i=e.step,a=Ko("li"),l=Ko("a");a.setAttribute("role","presentation"),l.setAttribute("role","tab"),l.onclick=r,n===t.step-1&&(l.className="active"),Di(l),l.innerHTML="&nbsp;",l.setAttribute("data-step-number",i),a.appendChild(l),o.appendChild(a)})),i.appendChild(o),i}function Zo(t,e){if(this._options.showBullets){var n=document.querySelector(".introjs-bullets");n&&n.parentNode.replaceChild(Qo.call(this,e),n)}}function tr(t,e){this._options.showBullets&&(t.querySelector(".introjs-bullets li > a.active").className="",t.querySelector('.introjs-bullets li > a[data-step-number="'.concat(e.step,'"]')).className="active")}function er(){var t=Ko("div");t.className="introjs-progress",!1===this._options.showProgress&&(t.style.display="none");var e=Ko("div",{className:"introjs-progressbar"});return this._options.progressBarAdditionalClass&&(e.className+=" "+this._options.progressBarAdditionalClass),e.setAttribute("role","progress"),e.setAttribute("aria-valuemin",0),e.setAttribute("aria-valuemax",100),e.setAttribute("aria-valuenow",Xo.call(this)),e.style.cssText="width:".concat(Xo.call(this),"%;"),t.appendChild(e),t}function nr(t){t.querySelector(".introjs-progress .introjs-progressbar").style.cssText="width:".concat(Xo.call(this),"%;"),t.querySelector(".introjs-progress .introjs-progressbar").setAttribute("aria-valuenow",Xo.call(this))}function ir(t){var e=this;void 0!==this._introChangeCallback&&this._introChangeCallback.call(this,t.element);var n,i,o,r=this,a=document.querySelector(".introjs-helperLayer"),l=document.querySelector(".introjs-tooltipReferenceLayer"),s="introjs-helperLayer";if("string"==typeof t.highlightClass&&(s+=" ".concat(t.highlightClass)),"string"==typeof this._options.highlightClass&&(s+=" ".concat(this._options.highlightClass)),null!==a&&null!==l){var c=l.querySelector(".introjs-helperNumberLayer"),u=l.querySelector(".introjs-tooltiptext"),h=l.querySelector(".introjs-tooltip-title"),f=l.querySelector(".introjs-arrow"),p=l.querySelector(".introjs-tooltip");o=l.querySelector(".introjs-skipbutton"),i=l.querySelector(".introjs-prevbutton"),n=l.querySelector(".introjs-nextbutton"),a.className=s,p.style.opacity=0,p.style.display="none",Hi.call(r,t),po.call(r,a),po.call(r,l),Uo(),r._lastShowElementTimer&&window.clearTimeout(r._lastShowElementTimer),r._lastShowElementTimer=window.setTimeout((function(){null!==c&&(c.innerHTML="".concat(t.step," of ").concat(e._introItems.length)),u.innerHTML=t.intro,h.innerHTML=t.title,p.style.display="block",Vo.call(r,t.element,p,f),tr.call(r,l,t),nr.call(r,l),p.style.opacity=1,(null!=n&&/introjs-donebutton/gi.test(n.className)||null!=n)&&n.focus(),$i.call(r,t.scrollTo,t,u)}),350)}else{var d=Ko("div",{className:s}),g=Ko("div",{className:"introjs-tooltipReferenceLayer"}),v=Ko("div",{className:"introjs-arrow"}),b=Ko("div",{className:"introjs-tooltip"}),m=Ko("div",{className:"introjs-tooltiptext"}),y=Ko("div",{className:"introjs-tooltip-header"}),w=Ko("h1",{className:"introjs-tooltip-title"}),_=Ko("div");fo(d,{"box-shadow":"0 0 1px 2px rgba(33, 33, 33, 0.8), rgba(33, 33, 33, ".concat(r._options.overlayOpacity.toString(),") 0 0 0 5000px")}),Hi.call(r,t),po.call(r,d),po.call(r,g),Yo(this._targetElement,d,!0),Yo(this._targetElement,g),m.innerHTML=t.intro,w.innerHTML=t.title,_.className="introjs-tooltipbuttons",!1===this._options.showButtons&&(_.style.display="none"),y.appendChild(w),b.appendChild(y),b.appendChild(m),b.appendChild(Qo.call(this,t)),b.appendChild(er.call(this));var x=Ko("div");!0===this._options.showStepNumbers&&(x.className="introjs-helperNumberLayer",x.innerHTML="".concat(t.step," of ").concat(this._introItems.length),b.appendChild(x)),b.appendChild(v),g.appendChild(b),(n=Ko("a")).onclick=function(){r._introItems.length-1!==r._currentStep?ar.call(r):/introjs-donebutton/gi.test(n.className)&&("function"==typeof r._introCompleteCallback&&r._introCompleteCallback.call(r,r._currentStep,"done"),Wr.call(r,r._targetElement))},Di(n),n.innerHTML=this._options.nextLabel,(i=Ko("a")).onclick=function(){0!==r._currentStep&&lr.call(r)},Di(i),i.innerHTML=this._options.prevLabel,Di(o=Ko("a",{className:"introjs-skipbutton"})),o.innerHTML=this._options.skipLabel,o.onclick=function(){r._introItems.length-1===r._currentStep&&"function"==typeof r._introCompleteCallback&&r._introCompleteCallback.call(r,r._currentStep,"skip"),"function"==typeof r._introSkipCallback&&r._introSkipCallback.call(r),Wr.call(r,r._targetElement)},y.appendChild(o),this._introItems.length>1&&_.appendChild(i),_.appendChild(n),b.appendChild(_),Vo.call(r,t.element,b,v),$i.call(this,t.scrollTo,t,b)}var S=r._targetElement.querySelector(".introjs-disableInteraction");S&&S.parentNode.removeChild(S),t.disableInteraction&&Jo.call(r),0===this._currentStep&&this._introItems.length>1?(null!=n&&(n.className="".concat(this._options.buttonClass," introjs-nextbutton"),n.innerHTML=this._options.nextLabel),!0===this._options.hidePrev?(null!=i&&(i.className="".concat(this._options.buttonClass," introjs-prevbutton introjs-hidden")),null!=n&&Bi(n,"introjs-fullbutton")):null!=i&&(i.className="".concat(this._options.buttonClass," introjs-prevbutton introjs-disabled"))):this._introItems.length-1===this._currentStep||1===this._introItems.length?(null!=i&&(i.className="".concat(this._options.buttonClass," introjs-prevbutton")),!0===this._options.hideNext?(null!=n&&(n.className="".concat(this._options.buttonClass," introjs-nextbutton introjs-hidden")),null!=i&&Bi(i,"introjs-fullbutton")):null!=n&&(!0===this._options.nextToDone?(n.innerHTML=this._options.doneLabel,Bi(n,"".concat(this._options.buttonClass," introjs-nextbutton introjs-donebutton"))):n.className="".concat(this._options.buttonClass," introjs-nextbutton introjs-disabled"))):(null!=i&&(i.className="".concat(this._options.buttonClass," introjs-prevbutton")),null!=n&&(n.className="".concat(this._options.buttonClass," introjs-nextbutton"),n.innerHTML=this._options.nextLabel)),null!=i&&i.setAttribute("role","button"),null!=n&&n.setAttribute("role","button"),null!=o&&o.setAttribute("role","button"),null!=n&&n.focus(),function(t){var e=t.element;Bi(e,"introjs-showElement");var n=Mi(e,"position");"absolute"!==n&&"relative"!==n&&"sticky"!==n&&"fixed"!==n&&Bi(e,"introjs-relativePosition")}(t),void 0!==this._introAfterChangeCallback&&this._introAfterChangeCallback.call(this,t.element)}function or(t){this._currentStep=t-2,void 0!==this._introItems&&ar.call(this)}function rr(t){this._currentStepNumber=t,void 0!==this._introItems&&ar.call(this)}function ar(){var t=this;this._direction="forward",void 0!==this._currentStepNumber&&n(this._introItems,(function(e,n){e.step===t._currentStepNumber&&(t._currentStep=n-1,t._currentStepNumber=void 0)})),void 0===this._currentStep?this._currentStep=0:++this._currentStep;var e=this._introItems[this._currentStep],i=!0;return void 0!==this._introBeforeChangeCallback&&(i=this._introBeforeChangeCallback.call(this,e&&e.element)),!1===i?(--this._currentStep,!1):this._introItems.length<=this._currentStep?("function"==typeof this._introCompleteCallback&&this._introCompleteCallback.call(this,this._currentStep,"end"),void Wr.call(this,this._targetElement)):void ir.call(this,e)}function lr(){if(this._direction="backward",0===this._currentStep)return!1;--this._currentStep;var t=this._introItems[this._currentStep],e=!0;if(void 0!==this._introBeforeChangeCallback&&(e=this._introBeforeChangeCallback.call(this,t&&t.element)),!1===e)return++this._currentStep,!1;ir.call(this,t)}function sr(){return this._currentStep}function cr(t){var e=void 0===t.code?t.which:t.code;if(null===e&&(e=null===t.charCode?t.keyCode:t.charCode),"Escape"!==e&&27!==e||!0!==this._options.exitOnEsc){if("ArrowLeft"===e||37===e)lr.call(this);else if("ArrowRight"===e||39===e)ar.call(this);else if("Enter"===e||"NumpadEnter"===e||13===e){var n=t.target||t.srcElement;n&&n.className.match("introjs-prevbutton")?lr.call(this):n&&n.className.match("introjs-skipbutton")?(this._introItems.length-1===this._currentStep&&"function"==typeof this._introCompleteCallback&&this._introCompleteCallback.call(this,this._currentStep,"skip"),Wr.call(this,this._targetElement)):n&&n.getAttribute("data-step-number")?n.click():ar.call(this),t.preventDefault?t.preventDefault():t.returnValue=!1}}else Wr.call(this,this._targetElement)}function ur(e){if(null===e||"object"!==t(e)||void 0!==e.nodeType)return e;var n={};for(var i in e)void 0!==window.jQuery&&e[i]instanceof window.jQuery?n[i]=e[i]:n[i]=ur(e[i]);return n}function hr(t){var e=document.querySelector(".introjs-hints");return e?e.querySelectorAll(t):[]}function fr(t){var e=hr('.introjs-hint[data-step="'.concat(t,'"]'))[0];_r.call(this),e&&Bi(e,"introjs-hidehint"),void 0!==this._hintCloseCallback&&this._hintCloseCallback.call(this,t)}function pr(){var t=this;n(hr(".introjs-hint"),(function(e){fr.call(t,e.getAttribute("data-step"))}))}function dr(){var t=this,e=hr(".introjs-hint");e&&e.length?n(e,(function(e){gr.call(t,e.getAttribute("data-step"))})):xr.call(this,this._targetElement)}function gr(t){var e=hr('.introjs-hint[data-step="'.concat(t,'"]'))[0];e&&ho(e,/introjs-hidehint/g)}function vr(){var t=this;n(hr(".introjs-hint"),(function(e){br.call(t,e.getAttribute("data-step"))})),i.off(document,"click",_r,this,!1),i.off(window,"resize",Sr,this,!0),this._hintsAutoRefreshFunction&&i.off(window,"scroll",this._hintsAutoRefreshFunction,this,!0)}function br(t){var e=hr('.introjs-hint[data-step="'.concat(t,'"]'))[0];e&&e.parentNode.removeChild(e)}function mr(){var t=this,e=this,o=document.querySelector(".introjs-hints");null===o&&(o=Ko("div",{className:"introjs-hints"}));n(this._introItems,(function(n,i){if(!document.querySelector('.introjs-hint[data-step="'.concat(i,'"]'))){var r=Ko("a",{className:"introjs-hint"});Di(r),r.onclick=function(t){return function(n){var i=n||window.event;i.stopPropagation&&i.stopPropagation(),null!==i.cancelBubble&&(i.cancelBubble=!0),wr.call(e,t)}}(i),n.hintAnimation||Bi(r,"introjs-hint-no-anim"),Ui(n.element)&&Bi(r,"introjs-fixedhint");var a=Ko("div",{className:"introjs-hint-dot"}),l=Ko("div",{className:"introjs-hint-pulse"});r.appendChild(a),r.appendChild(l),r.setAttribute("data-step",i),n.targetElement=n.element,n.element=r,yr.call(t,n.hintPosition,r,n.targetElement),o.appendChild(r)}})),document.body.appendChild(o),void 0!==this._hintsAddedCallback&&this._hintsAddedCallback.call(this),this._options.hintAutoRefreshInterval>=0&&(this._hintsAutoRefreshFunction=function(t,e){var n,i=this;return function(){for(var o=arguments.length,r=new Array(o),a=0;a<o;a++)r[a]=arguments[a];clearTimeout(n),n=setTimeout((function(){t.apply(i,r)}),e)}}((function(){return Sr.call(t)}),this._options.hintAutoRefreshInterval),i.on(window,"scroll",this._hintsAutoRefreshFunction,this,!0))}function yr(t,e,n){var i=e.style,o=Ki.call(this,n),r=20,a=20;switch(t){default:i.left="".concat(o.left,"px"),i.top="".concat(o.top,"px");break;case"top-right":i.left="".concat(o.left+o.width-r,"px"),i.top="".concat(o.top,"px");break;case"bottom-left":i.left="".concat(o.left,"px"),i.top="".concat(o.top+o.height-a,"px");break;case"bottom-right":i.left="".concat(o.left+o.width-r,"px"),i.top="".concat(o.top+o.height-a,"px");break;case"middle-left":i.left="".concat(o.left,"px"),i.top="".concat(o.top+(o.height-a)/2,"px");break;case"middle-right":i.left="".concat(o.left+o.width-r,"px"),i.top="".concat(o.top+(o.height-a)/2,"px");break;case"middle-middle":i.left="".concat(o.left+(o.width-r)/2,"px"),i.top="".concat(o.top+(o.height-a)/2,"px");break;case"bottom-middle":i.left="".concat(o.left+(o.width-r)/2,"px"),i.top="".concat(o.top+o.height-a,"px");break;case"top-middle":i.left="".concat(o.left+(o.width-r)/2,"px"),i.top="".concat(o.top,"px")}}function wr(t){var e=document.querySelector('.introjs-hint[data-step="'.concat(t,'"]')),n=this._introItems[t];void 0!==this._hintClickCallback&&this._hintClickCallback.call(this,e,n,t);var i=_r.call(this);if(parseInt(i,10)!==t){var o=Ko("div",{className:"introjs-tooltip"}),r=Ko("div"),a=Ko("div"),l=Ko("div");o.onclick=function(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0},r.className="introjs-tooltiptext";var s=Ko("p");if(s.innerHTML=n.hint,r.appendChild(s),this._options.hintShowButton){var c=Ko("a");c.className=this._options.buttonClass,c.setAttribute("role","button"),c.innerHTML=this._options.hintButtonLabel,c.onclick=fr.bind(this,t),r.appendChild(c)}a.className="introjs-arrow",o.appendChild(a),o.appendChild(r),this._currentStep=e.getAttribute("data-step"),l.className="introjs-tooltipReferenceLayer introjs-hintReference",l.setAttribute("data-step",e.getAttribute("data-step")),po.call(this,l),l.appendChild(o),document.body.appendChild(l),Vo.call(this,e,o,a,!0)}}function _r(){var t=document.querySelector(".introjs-hintReference");if(t){var e=t.getAttribute("data-step");return t.parentNode.removeChild(t),e}}function xr(t){var e=this;if(this._introItems=[],this._options.hints)n(this._options.hints,(function(t){var n=ur(t);"string"==typeof n.element&&(n.element=document.querySelector(n.element)),n.hintPosition=n.hintPosition||e._options.hintPosition,n.hintAnimation=n.hintAnimation||e._options.hintAnimation,null!==n.element&&e._introItems.push(n)}));else{var o=t.querySelectorAll("*[data-hint]");if(!o||!o.length)return!1;n(o,(function(t){var n=t.getAttribute("data-hint-animation");n=n?"true"===n:e._options.hintAnimation,e._introItems.push({element:t,hint:t.getAttribute("data-hint"),hintPosition:t.getAttribute("data-hint-position")||e._options.hintPosition,hintAnimation:n,tooltipClass:t.getAttribute("data-tooltip-class"),position:t.getAttribute("data-position")||e._options.tooltipPosition})}))}mr.call(this),i.on(document,"click",_r,this,!1),i.on(window,"resize",Sr,this,!0)}function Sr(){var t=this;n(this._introItems,(function(e){var n=e.targetElement,i=e.hintPosition,o=e.element;void 0!==n&&yr.call(t,i,o,n)}))}He({target:"Array",proto:!0,forced:!Mo},{splice:function(t,e){var n,i,o,r,a,l,s=at(this),c=me(s),u=ge(t,c),h=arguments.length;if(0===h?n=i=0:1===h?(n=0,i=c-u):(n=h-2,i=$o(Fo(fe(e),0),c-u)),c+n-i>Do)throw Ho(zo);for(o=Zn(s,i),r=0;r<i;r++)(a=u+r)in s&&$n(o,r,s[a]);if(o.length=i,n<i){for(r=u;r<c-i;r++)l=r+n,(a=r+i)in s?s[l]=s[a]:delete s[l];for(r=c;r>c-i+n;r--)delete s[r-1]}else if(n>i)for(r=c-i;r>u;r--)l=r+n-1,(a=r+i-1)in s?s[l]=s[a]:delete s[l];for(r=0;r<n;r++)s[r+u]=arguments[r+2];return s.length=c-i+n,o}});var jr=Math.floor,Cr=function(t,e){var n=t.length,i=jr(n/2);return n<8?kr(t,e):Er(t,Cr(Ai(t,0,i),e),Cr(Ai(t,i),e),e)},kr=function(t,e){for(var n,i,o=t.length,r=1;r<o;){for(i=r,n=t[r];i&&e(t[i-1],n)>0;)t[i]=t[--i];i!==r++&&(t[i]=n)}return t},Er=function(t,e,n,i){for(var o=e.length,r=n.length,a=0,l=0;a<o||l<r;)t[a+l]=a<o&&l<r?i(e[a],n[l])<=0?e[a++]:n[l++]:a<o?e[a++]:n[l++];return t},Ar=Cr,Ir=M.match(/firefox\/(\d+)/i),Tr=!!Ir&&+Ir[1],Nr=/MSIE|Trident/.test(M),Or=M.match(/AppleWebKit\/(\d+)\./),Pr=!!Or&&+Or[1],Lr=[],Rr=S(Lr.sort),qr=S(Lr.push),Br=u((function(){Lr.sort(void 0)})),Mr=u((function(){Lr.sort(null)})),Hr=Ao("sort"),Fr=!u((function(){if(z)return z<70;if(!(Tr&&Tr>3)){if(Nr)return!0;if(Pr)return Pr<603;var t,e,n,i,o="";for(t=65;t<76;t++){switch(e=String.fromCharCode(t),t){case 66:case 69:case 70:case 72:n=3;break;case 68:case 71:n=4;break;default:n=2}for(i=0;i<47;i++)Lr.push({k:e+i,v:n})}for(Lr.sort((function(t,e){return e.v-t.v})),i=0;i<Lr.length;i++)e=Lr[i].k.charAt(0),o.charAt(o.length-1)!==e&&(o+=e);return"DGBEFHACIJK"!==o}}));function $r(t){var e=this,i=t.querySelectorAll("*[data-intro]"),o=[];if(this._options.steps)n(this._options.steps,(function(t){var n=ur(t);if(n.step=o.length+1,n.title=n.title||"","string"==typeof n.element&&(n.element=document.querySelector(n.element)),void 0===n.element||null===n.element){var i=document.querySelector(".introjsFloatingElement");null===i&&(i=Ko("div",{className:"introjsFloatingElement"}),document.body.appendChild(i)),n.element=i,n.position="floating"}n.position=n.position||e._options.tooltipPosition,n.scrollTo=n.scrollTo||e._options.scrollTo,void 0===n.disableInteraction&&(n.disableInteraction=e._options.disableInteraction),null!==n.element&&o.push(n)}));else{var r;if(i.length<1)return[];n(i,(function(t){if((!e._options.group||t.getAttribute("data-intro-group")===e._options.group)&&"none"!==t.style.display){var n=parseInt(t.getAttribute("data-step"),10);r=t.hasAttribute("data-disable-interaction")?!!t.getAttribute("data-disable-interaction"):e._options.disableInteraction,n>0&&(o[n-1]={element:t,title:t.getAttribute("data-title")||"",intro:t.getAttribute("data-intro"),step:parseInt(t.getAttribute("data-step"),10),tooltipClass:t.getAttribute("data-tooltip-class"),highlightClass:t.getAttribute("data-highlight-class"),position:t.getAttribute("data-position")||e._options.tooltipPosition,scrollTo:t.getAttribute("data-scroll-to")||e._options.scrollTo,disableInteraction:r})}}));var a=0;n(i,(function(t){if((!e._options.group||t.getAttribute("data-intro-group")===e._options.group)&&null===t.getAttribute("data-step")){for(;void 0!==o[a];)a++;r=t.hasAttribute("data-disable-interaction")?!!t.getAttribute("data-disable-interaction"):e._options.disableInteraction,o[a]={element:t,title:t.getAttribute("data-title")||"",intro:t.getAttribute("data-intro"),step:a+1,tooltipClass:t.getAttribute("data-tooltip-class"),highlightClass:t.getAttribute("data-highlight-class"),position:t.getAttribute("data-position")||e._options.tooltipPosition,scrollTo:t.getAttribute("data-scroll-to")||e._options.scrollTo,disableInteraction:r}}}))}for(var l=[],s=0;s<o.length;s++)o[s]&&l.push(o[s]);return(o=l).sort((function(t,e){return t.step-e.step})),o}function Dr(t){var e=document.querySelector(".introjs-tooltipReferenceLayer"),n=document.querySelector(".introjs-helperLayer"),i=document.querySelector(".introjs-disableInteraction");if(po.call(this,n),po.call(this,e),po.call(this,i),t&&(this._introItems=$r.call(this,this._targetElement),Zo.call(this,e,this._introItems[this._currentStep]),nr.call(this,e)),void 0!==this._currentStep&&null!==this._currentStep){var o=document.querySelector(".introjs-arrow"),r=document.querySelector(".introjs-tooltip");r&&o&&Vo.call(this,this._introItems[this._currentStep].element,r,o)}return Sr.call(this),this}function zr(){Dr.call(this)}function Gr(t,e){if(t&&t.parentElement){var n=t.parentElement;e?(fo(t,{opacity:"0"}),window.setTimeout((function(){try{n.removeChild(t)}catch(t){}}),500)):n.removeChild(t)}}function Wr(t,e){var o=!0;if(void 0!==this._introBeforeExitCallback&&(o=this._introBeforeExitCallback.call(this)),e||!1!==o){var r=t.querySelectorAll(".introjs-overlay");r&&r.length&&n(r,(function(t){return Gr(t)})),Gr(t.querySelector(".introjs-helperLayer"),!0),Gr(t.querySelector(".introjs-tooltipReferenceLayer")),Gr(t.querySelector(".introjs-disableInteraction")),Gr(document.querySelector(".introjsFloatingElement")),Uo(),i.off(window,"keydown",cr,this,!0),i.off(window,"resize",zr,this,!0),void 0!==this._introExitCallback&&this._introExitCallback.call(this),this._currentStep=void 0}}function Vr(t){var e=this,n=Ko("div",{className:"introjs-overlay"});return fo(n,{top:0,bottom:0,left:0,right:0,position:"fixed"}),t.appendChild(n),!0===this._options.exitOnOverlayClick&&(fo(n,{cursor:"pointer"}),n.onclick=function(){Wr.call(e,t)}),!0}function Ur(t){void 0!==this._introStartCallback&&this._introStartCallback.call(this,t);var e=$r.call(this,t);return 0===e.length||(this._introItems=e,Vr.call(this,t)&&(ar.call(this),this._options.keyboardNavigation&&i.on(window,"keydown",cr,this,!0),i.on(window,"resize",zr,this,!0))),!1}He({target:"Array",proto:!0,forced:Br||!Mr||!Hr||!Fr},{sort:function(t){void 0!==t&&J(t);var e=at(this);if(Fr)return void 0===t?Rr(e):Rr(e,t);var n,i,o=[],r=me(e);for(i=0;i<r;i++)i in e&&qr(o,e[i]);for(Ar(o,function(t){return function(e,n){return void 0===n?-1:void 0===e?1:void 0!==t?+t(e,n)||0:Ke(e)>Ke(n)?1:-1}}(t)),n=o.length,i=0;i<n;)e[i]=o[i++];for(;i<r;)delete e[i++];return e}});function Kr(t){this._targetElement=t,this._introItems=[],this._options={nextLabel:"Next",prevLabel:"Back",skipLabel:"×",doneLabel:"Done",hidePrev:!1,hideNext:!1,nextToDone:!0,tooltipPosition:"bottom",tooltipClass:"",group:"",highlightClass:"",exitOnEsc:!0,exitOnOverlayClick:!0,showStepNumbers:!1,keyboardNavigation:!0,showButtons:!0,showBullets:!0,showProgress:!1,scrollToElement:!0,scrollTo:"element",scrollPadding:30,overlayOpacity:.5,autoPosition:!0,positionPrecedence:["bottom","top","right","left"],disableInteraction:!1,helperElementPadding:10,hintPosition:"top-middle",hintButtonLabel:"Got it",hintShowButton:!0,hintAutoRefreshInterval:10,hintAnimation:!0,buttonClass:"introjs-button",progressBarAdditionalClass:!1}}var Yr=function n(i){var o;if("object"===t(i))o=new Kr(i);else if("string"==typeof i){var r=document.querySelector(i);if(!r)throw new Error("There is no element with given selector.");o=new Kr(r)}else o=new Kr(document.body);return n.instances[e(o,"introjs-instance")]=o,o};return Yr.version="5.0.0",Yr.instances={},Yr.fn=Kr.prototype={clone:function(){return new Kr(this)},setOption:function(t,e){return this._options[t]=e,this},setOptions:function(t){return this._options=function(t,e){var n,i={};for(n in t)i[n]=t[n];for(n in e)i[n]=e[n];return i}(this._options,t),this},start:function(){return Ur.call(this,this._targetElement),this},goToStep:function(t){return or.call(this,t),this},addStep:function(t){return this._options.steps||(this._options.steps=[]),this._options.steps.push(t),this},addSteps:function(t){if(t.length){for(var e=0;e<t.length;e++)this.addStep(t[e]);return this}},goToStepNumber:function(t){return rr.call(this,t),this},nextStep:function(){return ar.call(this),this},previousStep:function(){return lr.call(this),this},currentStep:function(){return sr.call(this)},exit:function(t){return Wr.call(this,this._targetElement,t),this},refresh:function(t){return Dr.call(this,t),this},onbeforechange:function(t){if("function"!=typeof t)throw new Error("Provided callback for onbeforechange was not a function");return this._introBeforeChangeCallback=t,this},onchange:function(t){if("function"!=typeof t)throw new Error("Provided callback for onchange was not a function.");return this._introChangeCallback=t,this},onafterchange:function(t){if("function"!=typeof t)throw new Error("Provided callback for onafterchange was not a function");return this._introAfterChangeCallback=t,this},oncomplete:function(t){if("function"!=typeof t)throw new Error("Provided callback for oncomplete was not a function.");return this._introCompleteCallback=t,this},onhintsadded:function(t){if("function"!=typeof t)throw new Error("Provided callback for onhintsadded was not a function.");return this._hintsAddedCallback=t,this},onhintclick:function(t){if("function"!=typeof t)throw new Error("Provided callback for onhintclick was not a function.");return this._hintClickCallback=t,this},onhintclose:function(t){if("function"!=typeof t)throw new Error("Provided callback for onhintclose was not a function.");return this._hintCloseCallback=t,this},onstart:function(t){if("function"!=typeof t)throw new Error("Provided callback for onstart was not a function.");return this._introStartCallback=t,this},onexit:function(t){if("function"!=typeof t)throw new Error("Provided callback for onexit was not a function.");return this._introExitCallback=t,this},onskip:function(t){if("function"!=typeof t)throw new Error("Provided callback for onskip was not a function.");return this._introSkipCallback=t,this},onbeforeexit:function(t){if("function"!=typeof t)throw new Error("Provided callback for onbeforeexit was not a function.");return this._introBeforeExitCallback=t,this},addHints:function(){return xr.call(this,this._targetElement),this},hideHint:function(t){return fr.call(this,t),this},hideHints:function(){return pr.call(this),this},showHint:function(t){return gr.call(this,t),this},showHints:function(){return dr.call(this),this},removeHints:function(){return vr.call(this),this},removeHint:function(t){return br().call(this,t),this},showHintDialog:function(t){return wr.call(this,t),this}},Yr}));
admin/js/speed-booster-pack-admin.js CHANGED
@@ -282,4 +282,15 @@
282
  });
283
  });
284
 
 
 
 
 
 
 
 
 
 
 
 
285
  })(jQuery);
282
  });
283
  });
284
 
285
+ $(document).on('click', '.sbp-dismiss-ccm-notice', function() {
286
+ $.ajax({
287
+ type: 'GET',
288
+ url: ajaxurl,
289
+ data: {action: 'sbp_clear_ccm', 'nonce': sbp_ajax_vars.nonce},
290
+ success: function(response) {
291
+ // Nothing?
292
+ }
293
+ })
294
+ });
295
+
296
  })(jQuery);
includes/class-speed-booster-pack.php CHANGED
@@ -23,6 +23,7 @@ use SpeedBooster\SBP_CDN;
23
  use SpeedBooster\SBP_Compatibility_Checker;
24
  use SpeedBooster\SBP_Critical_CSS;
25
  use SpeedBooster\SBP_CSS_Minifier;
 
26
  use SpeedBooster\SBP_Custom_Code_Manager;
27
  use SpeedBooster\SBP_Database_Optimizer;
28
  use SpeedBooster\SBP_Image_Dimensions;
@@ -37,6 +38,7 @@ use SpeedBooster\SBP_Migrator;
37
  use SpeedBooster\SBP_Newsletter;
38
  use SpeedBooster\SBP_Notice_Manager;
39
  use SpeedBooster\SBP_Preboost;
 
40
  use SpeedBooster\SBP_Special;
41
  use SpeedBooster\SBP_Cloudflare;
42
  use SpeedBooster\SBP_Sucuri;
@@ -176,7 +178,9 @@ class Speed_Booster_Pack {
176
  new SBP_Image_Dimensions();
177
  new SBP_HTML_Minifier();
178
  new SBP_Localize_Tracker();
 
179
  new SBP_Special();
 
180
  new SBP_Custom_Code_Manager();
181
  new SBP_Cloudflare();
182
  new SBP_Notice_Manager();
@@ -281,6 +285,8 @@ class Speed_Booster_Pack {
281
  $plugin_public = new Speed_Booster_Pack_Public( $this->get_plugin_name(), $this->get_version() );
282
 
283
  $this->loader->add_action( 'template_redirect', $plugin_public, 'template_redirect', 9999999 );
 
 
284
  }
285
 
286
  /**
23
  use SpeedBooster\SBP_Compatibility_Checker;
24
  use SpeedBooster\SBP_Critical_CSS;
25
  use SpeedBooster\SBP_CSS_Minifier;
26
+ // Z_TODO: Remove use
27
  use SpeedBooster\SBP_Custom_Code_Manager;
28
  use SpeedBooster\SBP_Database_Optimizer;
29
  use SpeedBooster\SBP_Image_Dimensions;
38
  use SpeedBooster\SBP_Newsletter;
39
  use SpeedBooster\SBP_Notice_Manager;
40
  use SpeedBooster\SBP_Preboost;
41
+ // Z_TODO: Remove use
42
  use SpeedBooster\SBP_Special;
43
  use SpeedBooster\SBP_Cloudflare;
44
  use SpeedBooster\SBP_Sucuri;
178
  new SBP_Image_Dimensions();
179
  new SBP_HTML_Minifier();
180
  new SBP_Localize_Tracker();
181
+ // Z_TODO: Remove instance
182
  new SBP_Special();
183
+ // Z_TODO: Remove instance
184
  new SBP_Custom_Code_Manager();
185
  new SBP_Cloudflare();
186
  new SBP_Notice_Manager();
285
  $plugin_public = new Speed_Booster_Pack_Public( $this->get_plugin_name(), $this->get_version() );
286
 
287
  $this->loader->add_action( 'template_redirect', $plugin_public, 'template_redirect', 9999999 );
288
+
289
+ $this->loader->add_filter( 'wp_headers', $plugin_public, 'sbp_headers' );
290
  }
291
 
292
  /**
includes/classes/class-sbp-advanced-cache-generator.php CHANGED
@@ -102,6 +102,7 @@ if ( count( $exclude_urls ) > 0 && in_array( $current_url, $exclude_urls ) ) {
102
  }
103
 
104
  // output cached file
 
105
  readfile( $cache_file_path );
106
  exit;
107
 
102
  }
103
 
104
  // output cached file
105
+ header("X-Powered-By: ' . SBP_PLUGIN_NAME . ' v" ' . SBP_VERSION . ');
106
  readfile( $cache_file_path );
107
  exit;
108
 
includes/classes/class-sbp-cdn.php CHANGED
@@ -18,7 +18,7 @@ class SBP_CDN extends SBP_Abstract_Module {
18
  public function __construct() {
19
  parent::__construct();
20
 
21
- if ( ! sbp_get_option( 'cdn_url' ) ) {
22
  return;
23
  }
24
 
18
  public function __construct() {
19
  parent::__construct();
20
 
21
+ if ( ! sbp_get_option( 'cdn_url' ) || ! sbp_get_option( 'cdn_enable' ) ) {
22
  return;
23
  }
24
 
includes/classes/class-sbp-custom-code-manager.php CHANGED
@@ -7,67 +7,36 @@ if ( ! defined( 'WPINC' ) ) {
7
  die;
8
  }
9
 
 
10
  class SBP_Custom_Code_Manager extends SBP_Abstract_Module {
11
 
12
  public function __construct() {
13
- parent::__construct();
14
-
15
- if ( ! sbp_get_option( 'module_special' ) ) {
16
- return;
17
- }
18
-
19
- add_action( 'set_current_user', [ $this, 'run_class' ] );
20
- }
21
-
22
- public function run_class() {
23
- if ( $this->should_sbp_run ) {
24
- $this->add_script_tags();
25
- }
26
  }
27
 
28
- private function add_script_tags() {
29
- $scripts = sbp_get_option( 'custom_codes' );
30
- if ( $scripts ) {
31
- foreach ( $scripts as $script ) {
32
- if ( isset( $script['custom_codes_item'] ) && '' === $script['custom_codes_item'] ) {
33
- return;
34
- }
35
- if ( isset( $script['custom_codes_place'] ) && 'footer' === $script['custom_codes_place'] ) {
36
- $hook = 'wp_footer';
37
- } else {
38
- $hook = 'wp_head';
39
- }
40
-
41
- add_action( $hook,
42
- function () use ( $script ) {
43
-
44
- $output = '<script type="text/javascript">' . PHP_EOL;
45
-
46
- if ( ! isset( $script['custom_codes_method'] ) ) {
47
- $script['custom_codes_method'] = null;
48
- }
49
-
50
- switch ( $script['custom_codes_method'] ) {
51
- case "onload":
52
- $output .= 'window.addEventListener( \'DOMContentLoaded\', function(e) {' . PHP_EOL;
53
- $output .= $script['custom_codes_item'] . PHP_EOL;
54
- $output .= '});' . PHP_EOL;
55
- break;
56
- case "delayed":
57
- $output .= 'window.addEventListener( \'DOMContentLoaded\', function(e) { setTimeout(function(){' . PHP_EOL;
58
- $output .= $script['custom_codes_item'] . PHP_EOL;
59
- $output .= '},4000);});' . PHP_EOL;
60
- break;
61
- default:
62
- $output .= $script['custom_codes_item'];
63
- break;
64
- }
65
 
66
- $output .= '</script>';
67
 
68
- echo $output;
69
- } );
 
70
  }
 
 
 
71
  }
72
  }
73
 
7
  die;
8
  }
9
 
10
+ // Z_TODO: Remove The Class
11
  class SBP_Custom_Code_Manager extends SBP_Abstract_Module {
12
 
13
  public function __construct() {
14
+ add_action( 'wp_ajax_sbp_clear_ccm', [ $this, 'clear_custom_codes' ] );
 
 
 
 
 
 
 
 
 
 
 
 
15
  }
16
 
17
+ public function clear_custom_codes() {
18
+ if (
19
+ current_user_can( 'manage_options' ) &&
20
+ isset( $_GET['action'] ) &&
21
+ $_GET['action'] === 'sbp_clear_ccm'
22
+ ) {
23
+ if ( ! wp_verify_nonce( $_GET['nonce'], 'sbp_ajax_nonce' ) ) {
24
+ echo wp_json_encode( [
25
+ 'status' => 'failure',
26
+ 'message' => __( 'Invalid nonce.', 'speed-booster-pack' ),
27
+ ] );
28
+ wp_die();
29
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30
 
31
+ $options = get_option( 'sbp_options' );
32
 
33
+ if ( $options ) {
34
+ unset( $options['custom_codes'] );
35
+ update_option( 'sbp_options', $options );
36
  }
37
+
38
+ echo wp_json_encode( [ 'status' => 'success', 'message' => 'Custom codes successfully removed.' ] );
39
+ wp_die();
40
  }
41
  }
42
 
includes/classes/class-sbp-font-optimizer.php CHANGED
@@ -10,8 +10,8 @@ if ( ! defined( 'WPINC' ) ) {
10
  class SBP_Font_Optimizer extends SBP_Abstract_Module {
11
  private $families = [];
12
  private $subsets = [];
13
-
14
  private $css2_families = [];
 
15
 
16
  public function __construct() {
17
  parent::__construct();
@@ -34,9 +34,13 @@ class SBP_Font_Optimizer extends SBP_Abstract_Module {
34
  if ( is_embed() ) {
35
  return $html;
36
  }
37
-
38
  $html = $this->process_google_fonts_api( $html );
39
  $html = $this->process_new_google_fonts_api( $html );
 
 
 
 
40
 
41
  $html = preg_replace( "/<link[^<>\/]+href=['\"?]((https?:)?\/\/fonts\.googleapis\.com\/css\?(.*?))['\"?].*?>/i", '', $html );
42
  $link_tag = $this->create_tag();
@@ -47,7 +51,8 @@ class SBP_Font_Optimizer extends SBP_Abstract_Module {
47
 
48
  public function process_google_fonts_api( $html ) {
49
  preg_match_all( "/<link[^<>\/]+href=['\"?]((https?:)?\/\/fonts\.googleapis\.com\/css\?(.*?))['\"?].*?>/is", $html, $matches );
50
- if ( ! isset( $matches[1] ) || empty( $matches[1] ) ) {
 
51
  return $html;
52
  }
53
 
@@ -72,6 +77,7 @@ class SBP_Font_Optimizer extends SBP_Abstract_Module {
72
  public function process_new_google_fonts_api( $html ) {
73
  preg_match_all( "/<link[^<>\/]+href=['\"?]((https?:)?\/\/fonts\.googleapis\.com\/css2\?(.*?))['\"?].*?>/is", $html, $matches );
74
  if ( ! isset( $matches[1] ) || empty( $matches[1] ) ) {
 
75
  return $html;
76
  }
77
 
10
  class SBP_Font_Optimizer extends SBP_Abstract_Module {
11
  private $families = [];
12
  private $subsets = [];
 
13
  private $css2_families = [];
14
+ private $found_fonts = true;
15
 
16
  public function __construct() {
17
  parent::__construct();
34
  if ( is_embed() ) {
35
  return $html;
36
  }
37
+
38
  $html = $this->process_google_fonts_api( $html );
39
  $html = $this->process_new_google_fonts_api( $html );
40
+
41
+ if ( ! $this->found_fonts ) {
42
+ return $html;
43
+ }
44
 
45
  $html = preg_replace( "/<link[^<>\/]+href=['\"?]((https?:)?\/\/fonts\.googleapis\.com\/css\?(.*?))['\"?].*?>/i", '', $html );
46
  $link_tag = $this->create_tag();
51
 
52
  public function process_google_fonts_api( $html ) {
53
  preg_match_all( "/<link[^<>\/]+href=['\"?]((https?:)?\/\/fonts\.googleapis\.com\/css\?(.*?))['\"?].*?>/is", $html, $matches );
54
+ if ( ! isset( $matches[1] ) || empty( $matches[1] ) ) {
55
+ $this->found_fonts = false;
56
  return $html;
57
  }
58
 
77
  public function process_new_google_fonts_api( $html ) {
78
  preg_match_all( "/<link[^<>\/]+href=['\"?]((https?:)?\/\/fonts\.googleapis\.com\/css2\?(.*?))['\"?].*?>/is", $html, $matches );
79
  if ( ! isset( $matches[1] ) || empty( $matches[1] ) ) {
80
+ $this->found_fonts = false;
81
  return $html;
82
  }
83
 
includes/classes/class-sbp-image-dimensions.php CHANGED
@@ -25,12 +25,14 @@ class SBP_Image_Dimensions extends SBP_Abstract_Module {
25
  $dom = new HtmlDocument();
26
  $dom->load( $html, true, false );
27
  $site_url = get_option( 'siteurl' );
 
28
 
29
  $images = $dom->find('img');
30
  if ( $images ) {
31
  foreach ( $images as &$image ) {
32
  if ( ! isset( $image->width ) || ! isset( $image->height ) ) {
33
  $src = $image->hasAttribute('data-src') ? $image->getAttribute('data-src') : $image->getAttribute('src');
 
34
  $path = sbp_remove_leading_string( $src, $site_url );
35
  $image_path = ABSPATH . $path;
36
  if ( file_exists( $image_path ) ) {
25
  $dom = new HtmlDocument();
26
  $dom->load( $html, true, false );
27
  $site_url = get_option( 'siteurl' );
28
+ $site_url = SBP_Utils::remove_protocol( $site_url );
29
 
30
  $images = $dom->find('img');
31
  if ( $images ) {
32
  foreach ( $images as &$image ) {
33
  if ( ! isset( $image->width ) || ! isset( $image->height ) ) {
34
  $src = $image->hasAttribute('data-src') ? $image->getAttribute('data-src') : $image->getAttribute('src');
35
+ $src = SBP_Utils::remove_protocol( $src );
36
  $path = sbp_remove_leading_string( $src, $site_url );
37
  $image_path = ABSPATH . $path;
38
  if ( file_exists( $image_path ) ) {
includes/classes/class-sbp-litespeed-cache.php CHANGED
@@ -10,13 +10,16 @@ if ( ! defined( 'WPINC' ) ) {
10
  class SBP_LiteSpeed_Cache extends SBP_Base_Cache {
11
  const ROOT_MARKER = 'SBP_LS_CACHE';
12
 
 
 
13
  public function __construct() {
14
  parent::__construct();
15
  if ( SBP_Utils::is_litespeed() ) {
16
  add_action( 'init', [ $this, 'clear_lscache_request' ] );
 
17
  add_action( 'admin_bar_menu', [ $this, 'add_admin_bar_links' ], 90 );
18
- add_filter( 'sbp_output_buffer', [ $this, 'set_headers' ] );
19
  add_action( 'csf_sbp_options_saved', [ $this, 'send_clear_cache_header' ] );
 
20
  $this->clear_cache_hooks();
21
  }
22
  }
@@ -33,8 +36,10 @@ class SBP_LiteSpeed_Cache extends SBP_Base_Cache {
33
  'title' => __( 'Clear LiteSpeed Cache', 'speed-booster-pack' ),
34
  'href' => $clear_lscache_url,
35
  ];
36
-
37
- $admin_bar->add_node( $sbp_admin_menu );
 
 
38
  }
39
  }
40
 
@@ -123,39 +128,41 @@ class SBP_LiteSpeed_Cache extends SBP_Base_Cache {
123
  }
124
 
125
  if ( $tags ) {
126
- header( 'X-LiteSpeed-Tag: ' . implode( ',', $tags ) );
127
  }
128
  }
129
 
130
- public function set_headers( $html ) {
131
  if ( ! sbp_get_option( 'module_caching_ls' ) ) {
132
- header( 'X-LiteSpeed-Cache-Control: no-cache' );
133
  } else {
134
  // Multiply by 3600 because we store this value in hours but this value should be converted to seconds here
135
  $cache_expire_time = sbp_get_option( 'caching_ls_expiry', 10 ) * HOUR_IN_SECONDS;
136
 
137
  // Check for all exclusions
138
  if ( true === $this->should_bypass_cache( [ 'is_logged_in', 'include_query_strings', 'check_cookies' ] ) ) {
139
- header( 'X-LiteSpeed-Cache-Control: no-cache' );
140
  } else {
141
  if ( ! sbp_get_option( 'caching_ls_cache_logged_in_users' ) && is_user_logged_in() ) {
142
- header( 'X-LiteSpeed-Cache-Control: no-cache' );
143
  } else {
144
  $this->add_tags();
145
 
146
  if (is_user_logged_in()) {
147
- header( 'X-LiteSpeed-Cache-Control: private,max-age=' . $cache_expire_time );
148
- header( 'X-LiteSpeed-Vary: cookie=wordpress_logged_in_' . COOKIEHASH );
149
  } else {
150
- header( 'X-LiteSpeed-Cache-Control: public,max-age=' . $cache_expire_time );
151
- $html .= '<!-- LiteSpeed cache controlled by ' . SBP_PLUGIN_NAME . ' -->';
152
  }
153
  }
154
-
155
  }
156
  }
157
 
158
- return $html;
 
 
 
 
159
  }
160
 
161
  private function clear_cache_hooks() {
@@ -198,6 +205,14 @@ class SBP_LiteSpeed_Cache extends SBP_Base_Cache {
198
  @header( 'X-LiteSpeed-Purge: private, *; public, *' );
199
  }
200
 
 
 
 
 
 
 
 
 
201
  // B_TODO: We are currently not supporting this feature on LiteSpeed Cache
202
  // public function clear_post_by_comment( $comment_id ) {
203
  // $comment = get_comment( $comment_id );
10
  class SBP_LiteSpeed_Cache extends SBP_Base_Cache {
11
  const ROOT_MARKER = 'SBP_LS_CACHE';
12
 
13
+ private $headers = [];
14
+
15
  public function __construct() {
16
  parent::__construct();
17
  if ( SBP_Utils::is_litespeed() ) {
18
  add_action( 'init', [ $this, 'clear_lscache_request' ] );
19
+ add_action( 'init', [ $this, 'set_headers' ] );
20
  add_action( 'admin_bar_menu', [ $this, 'add_admin_bar_links' ], 90 );
 
21
  add_action( 'csf_sbp_options_saved', [ $this, 'send_clear_cache_header' ] );
22
+ add_filter( 'sbp_output_buffer', [ $this, 'add_cache_signature' ] );
23
  $this->clear_cache_hooks();
24
  }
25
  }
36
  'title' => __( 'Clear LiteSpeed Cache', 'speed-booster-pack' ),
37
  'href' => $clear_lscache_url,
38
  ];
39
+
40
+ if ( sbp_get_option( 'module_caching_ls' ) ) {
41
+ $admin_bar->add_node( $sbp_admin_menu );
42
+ }
43
  }
44
  }
45
 
128
  }
129
 
130
  if ( $tags ) {
131
+ $this->headers['X-LiteSpeed-Tag'] = implode( ',', $tags );
132
  }
133
  }
134
 
135
+ public function set_headers() {
136
  if ( ! sbp_get_option( 'module_caching_ls' ) ) {
137
+ $this->headers['X-LiteSpeed-Cache-Control'] = 'no-cache';
138
  } else {
139
  // Multiply by 3600 because we store this value in hours but this value should be converted to seconds here
140
  $cache_expire_time = sbp_get_option( 'caching_ls_expiry', 10 ) * HOUR_IN_SECONDS;
141
 
142
  // Check for all exclusions
143
  if ( true === $this->should_bypass_cache( [ 'is_logged_in', 'include_query_strings', 'check_cookies' ] ) ) {
144
+ $this->headers['X-LiteSpeed-Cache-Control'] = 'no-cache';
145
  } else {
146
  if ( ! sbp_get_option( 'caching_ls_cache_logged_in_users' ) && is_user_logged_in() ) {
147
+ $this->headers['X-LiteSpeed-Cache-Control'] = 'no-cache';
148
  } else {
149
  $this->add_tags();
150
 
151
  if (is_user_logged_in()) {
152
+ $this->headers['X-LiteSpeed-Cache-Control'] = 'private,max-age=' . $cache_expire_time;
153
+ $this->headers['X-LiteSpeed-Vary'] = 'cookie=wordpress_logged_in_' . COOKIEHASH;
154
  } else {
155
+ $this->headers['X-LiteSpeed-Cache-Control'] = 'public,max-age=' . $cache_expire_time;
 
156
  }
157
  }
 
158
  }
159
  }
160
 
161
+ add_filter( 'wp_headers', [ $this, 'send_headers' ] );
162
+ }
163
+
164
+ public function send_headers($headers) {
165
+ return array_merge($headers, $this->headers);
166
  }
167
 
168
  private function clear_cache_hooks() {
205
  @header( 'X-LiteSpeed-Purge: private, *; public, *' );
206
  }
207
 
208
+ public function add_cache_signature( $html ) {
209
+ if ( SBP_Utils::is_litespeed() && sbp_get_option( 'module_caching_ls' ) ) {
210
+ $html .= '<!-- LiteSpeed cache managed by ' . SBP_PLUGIN_NAME . ' -->';
211
+ }
212
+
213
+ return $html;
214
+ }
215
+
216
  // B_TODO: We are currently not supporting this feature on LiteSpeed Cache
217
  // public function clear_post_by_comment( $comment_id ) {
218
  // $comment = get_comment( $comment_id );
includes/classes/class-sbp-localize-tracker.php CHANGED
@@ -19,7 +19,7 @@ class SBP_Localize_Tracker extends SBP_Abstract_Module {
19
  public function __construct() {
20
  parent::__construct();
21
 
22
- if ( ! sbp_get_option( 'module_special' ) || ! sbp_get_option( 'localize_tracking_scripts' ) ) {
23
  return;
24
  }
25
 
19
  public function __construct() {
20
  parent::__construct();
21
 
22
+ if ( ! sbp_get_option( 'module_assets' ) || ! sbp_get_option( 'localize_tracking_scripts' ) ) {
23
  return;
24
  }
25
 
includes/classes/class-sbp-migrator.php CHANGED
@@ -46,6 +46,7 @@ class SBP_Migrator {
46
  $this->migrate_from_legacy();
47
  $this->update_js_optimize_options();
48
  $this->apply_cache_settings();
 
49
  update_option( 'sbp_migrator_version', SBP_MIGRATOR_VERSION );
50
  }
51
 
@@ -135,6 +136,13 @@ ga('send', 'pageview');";
135
  }
136
  }
137
 
 
 
 
 
 
 
 
138
  private function enable_external_notices() {
139
  $this->sbp_options['enable_external_notices'] = '1';
140
  }
46
  $this->migrate_from_legacy();
47
  $this->update_js_optimize_options();
48
  $this->apply_cache_settings();
49
+ $this->migrate_cdn_toggle();
50
  update_option( 'sbp_migrator_version', SBP_MIGRATOR_VERSION );
51
  }
52
 
136
  }
137
  }
138
 
139
+ private function migrate_cdn_toggle() {
140
+ if ( isset( $this->sbp_options['cdn_url'] ) && $this->sbp_options['cdn_url'] ) {
141
+ $this->sbp_options['cdn_enable'] = 1;
142
+ update_option( 'sbp_options', $this->sbp_options );
143
+ }
144
+ }
145
+
146
  private function enable_external_notices() {
147
  $this->sbp_options['enable_external_notices'] = '1';
148
  }
includes/classes/class-sbp-notice-manager.php CHANGED
@@ -101,9 +101,15 @@ class SBP_Notice_Manager {
101
 
102
  public function enqueue_scripts() {
103
  wp_add_inline_script( 'jquery',
104
- 'jQuery(document).on(\'click\', \'.sbp-notice .notice-dismiss\', function() {
105
- var $notice = jQuery(this).parent();
106
- var notice_id = $notice.data(\'notice-id\');
 
 
 
 
 
 
107
  var action = $notice.data(\'notice-action\');
108
  var data = {action: action, notice_id: notice_id};
109
  jQuery.get(ajaxurl, data);
101
 
102
  public function enqueue_scripts() {
103
  wp_add_inline_script( 'jquery',
104
+ 'jQuery(document).on(\'click\', \'.sbp-notice .notice-dismiss, .sbp-notice .notice-dismiss-button\', function(e) {
105
+ if (jQuery(e.target).hasClass("notice-dismiss-button")) {
106
+ var notice_id = jQuery(this).data(\'notice-id\');
107
+ var $notice = jQuery("div[data-notice-id=" + notice_id + "]");
108
+ $notice.stop().slideUp();
109
+ } else {
110
+ var $notice = jQuery(this).parent();
111
+ var notice_id = $notice.data(\'notice-id\');
112
+ }
113
  var action = $notice.data(\'notice-action\');
114
  var data = {action: action, notice_id: notice_id};
115
  jQuery.get(ajaxurl, data);
includes/classes/class-sbp-special.php CHANGED
@@ -9,6 +9,7 @@ if ( ! defined( 'WPINC' ) ) {
9
  die;
10
  }
11
 
 
12
  class SBP_Special extends SBP_Abstract_Module {
13
  public function __construct() {
14
  parent::__construct();
@@ -31,12 +32,14 @@ class SBP_Special extends SBP_Abstract_Module {
31
  /**
32
  * Removes WooCommerce scripts from non-woocommerce pages
33
  */
 
34
  private function optimize_nonwc_pages() {
35
  if ( function_exists( 'is_woocommerce' ) && sbp_get_option( 'woocommerce_optimize_nonwc_pages' ) ) {
36
  add_action( 'wp_enqueue_scripts', [ $this, 'optimize_nonwc_pages_handle' ] );
37
  }
38
  }
39
 
 
40
  public function optimize_nonwc_pages_handle() {
41
  if ( SBP_Utils::is_plugin_active( 'woocommerce/woocommerce.php' ) && sbp_get_option( 'woocommerce_optimize_nonwc_pages' ) ) {
42
  if ( ! is_woocommerce() && ! is_cart() && ! is_checkout() ) {
@@ -61,6 +64,7 @@ class SBP_Special extends SBP_Abstract_Module {
61
  }
62
  }
63
 
 
64
  private function woocommerce_disable_cart_fragments() {
65
  if ( sbp_get_option( 'woocommerce_disable_cart_fragments' ) ) {
66
  add_action( 'wp_enqueue_scripts', [ $this, 'woocommerce_disable_cart_fragments_handle' ], 999 );
@@ -70,6 +74,7 @@ class SBP_Special extends SBP_Abstract_Module {
70
  /**
71
  * Removes cart-fragments.js
72
  */
 
73
  public function woocommerce_disable_cart_fragments_handle() {
74
  if ( SBP_Utils::is_plugin_active( 'woocommerce/woocommerce.php' ) ) {
75
  global $wp_scripts;
@@ -88,12 +93,14 @@ class SBP_Special extends SBP_Abstract_Module {
88
  /**
89
  * Removes password strength meter in WooCommerce checkout process
90
  */
 
91
  private function remove_wc_password_strength_meter() {
92
  if ( function_exists( 'is_account_page' ) && sbp_get_option( 'woocommerce_disable_password_meter' ) ) {
93
  add_action( 'wp_print_scripts', [ $this, 'remove_wc_password_strength_meter_handle' ], 100 );
94
  }
95
  }
96
 
 
97
  public function remove_wc_password_strength_meter_handle() {
98
  global $wp;
99
 
9
  die;
10
  }
11
 
12
+ // Z_TODO: Remove class in version 4.5
13
  class SBP_Special extends SBP_Abstract_Module {
14
  public function __construct() {
15
  parent::__construct();
32
  /**
33
  * Removes WooCommerce scripts from non-woocommerce pages
34
  */
35
+ // Z_TODO: Move this method to WooCommerce class in version 4.5
36
  private function optimize_nonwc_pages() {
37
  if ( function_exists( 'is_woocommerce' ) && sbp_get_option( 'woocommerce_optimize_nonwc_pages' ) ) {
38
  add_action( 'wp_enqueue_scripts', [ $this, 'optimize_nonwc_pages_handle' ] );
39
  }
40
  }
41
 
42
+ // Z_TODO: Move this method to WooCommerce class in version 4.5
43
  public function optimize_nonwc_pages_handle() {
44
  if ( SBP_Utils::is_plugin_active( 'woocommerce/woocommerce.php' ) && sbp_get_option( 'woocommerce_optimize_nonwc_pages' ) ) {
45
  if ( ! is_woocommerce() && ! is_cart() && ! is_checkout() ) {
64
  }
65
  }
66
 
67
+ // Z_TODO: Move this method to WooCommerce class in version 4.5
68
  private function woocommerce_disable_cart_fragments() {
69
  if ( sbp_get_option( 'woocommerce_disable_cart_fragments' ) ) {
70
  add_action( 'wp_enqueue_scripts', [ $this, 'woocommerce_disable_cart_fragments_handle' ], 999 );
74
  /**
75
  * Removes cart-fragments.js
76
  */
77
+ // Z_TODO: Move this method to WooCommerce class in version 4.5
78
  public function woocommerce_disable_cart_fragments_handle() {
79
  if ( SBP_Utils::is_plugin_active( 'woocommerce/woocommerce.php' ) ) {
80
  global $wp_scripts;
93
  /**
94
  * Removes password strength meter in WooCommerce checkout process
95
  */
96
+ // Z_TODO: Move this method to WooCommerce class in version 4.5
97
  private function remove_wc_password_strength_meter() {
98
  if ( function_exists( 'is_account_page' ) && sbp_get_option( 'woocommerce_disable_password_meter' ) ) {
99
  add_action( 'wp_print_scripts', [ $this, 'remove_wc_password_strength_meter_handle' ], 100 );
100
  }
101
  }
102
 
103
+ // Z_TODO: Move this method to WooCommerce class in version 4.5
104
  public function remove_wc_password_strength_meter_handle() {
105
  global $wp;
106
 
includes/classes/class-sbp-utils.php CHANGED
@@ -97,4 +97,15 @@ class SBP_Utils extends SBP_Abstract_Module {
97
 
98
  return LITESPEED_SERVER_TYPE !== 'NONE' ? LITESPEED_SERVER_TYPE && LITESPEED_ALLOWED : false;
99
  }
 
 
 
 
 
 
 
 
 
 
 
100
  }
97
 
98
  return LITESPEED_SERVER_TYPE !== 'NONE' ? LITESPEED_SERVER_TYPE && LITESPEED_ALLOWED : false;
99
  }
100
+
101
+ /**
102
+ * Removes the http and https prefixes from url's
103
+ *
104
+ * @param $url
105
+ *
106
+ * @return void
107
+ */
108
+ public static function remove_protocol( $url ) {
109
+ return str_replace( [ 'http://', 'https://' ], [ '//', '//' ], $url );
110
+ }
111
  }
public/class-speed-booster-pack-public.php CHANGED
@@ -67,4 +67,10 @@ class Speed_Booster_Pack_Public {
67
  return $html;
68
  }
69
 
 
 
 
 
 
 
70
  }
67
  return $html;
68
  }
69
 
70
+ public function sbp_headers( $headers ) {
71
+ $headers['X-Powered-By'] = SBP_PLUGIN_NAME . ' v' . SBP_VERSION;
72
+
73
+ return $headers;
74
+ }
75
+
76
  }
speed-booster-pack.php CHANGED
@@ -6,7 +6,7 @@
6
  * Plugin Name: Speed Booster Pack
7
  * Plugin URI: https://speedboosterpack.com
8
  * Description: PageSpeed optimization is vital for SEO: A faster website equals better conversions. Optimize & cache your site with this smart plugin!
9
- * Version: 4.4.0
10
  * Author: Optimocha
11
  * Author URI: https://optimocha.com
12
  * License: GPLv3 or later
@@ -32,7 +32,7 @@ define( 'SBP_PLUGIN_NAME', 'Speed Booster Pack' );
32
  /**
33
  * Current plugin version.
34
  */
35
- define( 'SBP_VERSION', '4.4.0' );
36
 
37
  /**
38
  * Plugin website URL.
@@ -97,7 +97,7 @@ define( 'SBP_PLUGIN_BASENAME', plugin_basename( __FILE__ ) );
97
  /**
98
  * Migrator script version.
99
  */
100
- define( 'SBP_MIGRATOR_VERSION', '42000' );
101
 
102
  /**
103
  * Load all plugin options
6
  * Plugin Name: Speed Booster Pack
7
  * Plugin URI: https://speedboosterpack.com
8
  * Description: PageSpeed optimization is vital for SEO: A faster website equals better conversions. Optimize & cache your site with this smart plugin!
9
+ * Version: 4.4.1
10
  * Author: Optimocha
11
  * Author URI: https://optimocha.com
12
  * License: GPLv3 or later
32
  /**
33
  * Current plugin version.
34
  */
35
+ define( 'SBP_VERSION', '4.4.1' );
36
 
37
  /**
38
  * Plugin website URL.
97
  /**
98
  * Migrator script version.
99
  */
100
+ define( 'SBP_MIGRATOR_VERSION', '44000' );
101
 
102
  /**
103
  * Load all plugin options
vendor/codestar-framework/assets/css/style-rtl.css CHANGED
@@ -1,590 +1,590 @@
1
- /**
2
- *
3
- * ---------------------------------------------------------
4
- * CODESTAR FRAMEWORK RTL CSS MAP
5
- * ---------------------------------------------------------
6
- *
7
- * 01. Base
8
- * 01. 01. Header
9
- * 01. 02. Header Buttons
10
- * 01. 03. Navigation
11
- * 01. 04. Content
12
- * 01. 05. Section
13
- * 01. 06. Show All Settings
14
- * 01. 07. Search Input
15
- * 01. 08. Copyright
16
- * 01. 09. Metabox
17
- * 02. Fields
18
- * 02. 01. Field: typography
19
- * 02. 02. Field: checkbox, radio
20
- * 02. 03. Field: switcher
21
- * 02. 04. Field: upload
22
- * 02. 05. Field: group
23
- * 02. 06. Field: repeater
24
- * 02. 07. Field: help
25
- * 02. 08. Field: icon
26
- * 02. 09. Field: gallery
27
- * 02. 10. Field: sorter
28
- * 02. 11. Field: tabbed
29
- * 02. 12. Field: media
30
- * 02. 13. Field: notice
31
- * 02. 14. Field: border, spacing, dimensions
32
- * 02. 15. Field: background
33
- * 02. 16. Field: spinner
34
- * 02. 17. Field: slider
35
- * 02. 18. Field: button_set
36
- * 02. 19. Field: link_color
37
- * 02. 20. Field: color_group
38
- * 02. 21. Field: palette
39
- * 02. 22. Field: accordion
40
- * 02. 23. Field: date
41
- * 02. 24. Field: map
42
- * 02. 25. Field: sortable
43
- * 02. 26. Field: number
44
- * 03. Taxonomy
45
- * 04. Profile
46
- * 05. Nav Menu
47
- * 06. Modal
48
- * 07. Customizer
49
- * 08. Responsive
50
- * 09. Others
51
- *
52
- * ---------------------------------------------------------
53
- *
54
- */
55
- /**
56
- * 01. Base
57
- */
58
- .csf-options {
59
- margin-left: 20px;
60
- margin-right: 0;
61
- }
62
-
63
- /**
64
- * 01. 01. Header
65
- */
66
- .csf-header h1 {
67
- float: right;
68
- }
69
- .csf-header fieldset {
70
- float: left;
71
- }
72
-
73
- /**
74
- * 01. 02. Header Buttons
75
- */
76
- .csf-buttons {
77
- float: left;
78
- direction: ltr;
79
- }
80
-
81
- .csf-header-left {
82
- float: right;
83
- }
84
-
85
- .csf-header-right {
86
- float: left;
87
- }
88
-
89
- /**
90
- * 01. 03. Navigation
91
- */
92
- .csf-nav {
93
- float: right;
94
- }
95
- .csf-nav ul {
96
- clear: right;
97
- }
98
- .csf-nav ul li .csf-active:after {
99
- right: auto;
100
- left: 0;
101
- border-left-color: #fff;
102
- border-right-color: transparent;
103
- }
104
- .csf-nav ul li .csf-arrow:after {
105
- content: "\f053";
106
- right: auto;
107
- left: 10px;
108
- }
109
- .csf-nav ul li.csf-tab-expanded .csf-arrow:after {
110
- transform: rotate(-90deg);
111
- }
112
- .csf-nav ul ul li a {
113
- padding-right: 25px;
114
- padding-left: 15px;
115
- }
116
- .csf-nav ul ul:before {
117
- left: auto;
118
- right: 15px;
119
- }
120
- .csf-nav .csf-tab-icon {
121
- margin-left: 5px;
122
- margin-right: 0;
123
- }
124
-
125
- .csf-nav-background {
126
- left: auto;
127
- right: 0;
128
- }
129
-
130
- /**
131
- * 01. 04. Content
132
- */
133
- .csf-content {
134
- margin-left: 0;
135
- margin-right: 225px;
136
- }
137
-
138
- /**
139
- * 01. 05. Section
140
- */
141
- .csf-sections {
142
- float: right;
143
- }
144
-
145
- /**
146
- * 01. 06. Show all options
147
- */
148
- .csf-show-all .csf-content {
149
- margin-right: 0;
150
- overflow: hidden;
151
- }
152
-
153
- .csf-expand-all {
154
- float: right;
155
- right: auto;
156
- left: 40px;
157
- margin-right: 0;
158
- margin-left: 4px;
159
- }
160
-
161
- /**
162
- * 01. 07. Search Input
163
- */
164
- .csf-search {
165
- float: right;
166
- }
167
- .csf-search input {
168
- margin: 0 0 0 5px;
169
- }
170
-
171
- /**
172
- * 01. 08. Copyright
173
- */
174
- .csf-copyright {
175
- float: right;
176
- }
177
-
178
- /**
179
- * 01. 09. Metabox
180
- */
181
- .csf-metabox {
182
- margin: -6px -12px -12px -12px;
183
- }
184
- .csf-metabox .csf-section-title {
185
- padding: 20px;
186
- }
187
-
188
- .csf-section-title .csf-section-icon {
189
- margin-left: 5px;
190
- margin-right: 0;
191
- }
192
-
193
- /**
194
- * 02. Fields
195
- */
196
- .csf-field .csf-title {
197
- float: right;
198
- }
199
- .csf-field .csf-fieldset {
200
- float: left;
201
- }
202
-
203
- .csf-pseudo-field {
204
- padding: 0 0 0 5px !important;
205
- }
206
-
207
- /**
208
- * 02. 01. Field: typography
209
- */
210
- .csf-field-typography select {
211
- margin: 0;
212
- width: 100%;
213
- }
214
- .csf-field-typography .csf--blocks-inputs .csf--blocks {
215
- flex-direction: row-reverse;
216
- }
217
- .csf-field-typography .csf--unit {
218
- left: 4px;
219
- right: auto;
220
- }
221
-
222
- /**
223
- * 02. 02. Field: checkbox, radio
224
- */
225
- .csf-field-checkbox ul ul li,
226
- .csf-field-radio ul ul li {
227
- margin-left: 0;
228
- margin-right: 8px;
229
- }
230
- .csf-field-checkbox ul ul li:first-child,
231
- .csf-field-radio ul ul li:first-child {
232
- margin-right: 0;
233
- }
234
- .csf-field-checkbox .csf--inline-list li,
235
- .csf-field-radio .csf--inline-list li {
236
- margin-right: 0;
237
- margin-left: 15px;
238
- }
239
- .csf-field-checkbox .csf--text,
240
- .csf-field-radio .csf--text {
241
- margin-left: 0;
242
- margin-right: 5px;
243
- }
244
-
245
- /**
246
- * 02. 03. Field: switcher
247
- */
248
- .csf-field-switcher .csf--switcher {
249
- float: right;
250
- }
251
- .csf-field-switcher .csf--label {
252
- float: right;
253
- margin-left: 0;
254
- margin-right: 5px;
255
- }
256
-
257
- /**
258
- * 02. 04. Field: upload
259
- */
260
- .csf-field-upload .csf--remove,
261
- .csf-field-upload .csf--button {
262
- margin-left: 0;
263
- margin-right: 5px;
264
- }
265
-
266
- /**
267
- * 02. 05. Field: group
268
- */
269
- .csf-field-group .csf-cloneable-title {
270
- padding: 15px 10px 15px 65px;
271
- }
272
- .csf-field-group .csf-cloneable-helper {
273
- right: auto;
274
- left: 10px;
275
- }
276
-
277
- /**
278
- * 02. 06. Field: repeater
279
- */
280
- .csf-field-repeater .csf-repeater-helper {
281
- border-left: 0;
282
- border-right: 1px solid #eee;
283
- }
284
-
285
- /**
286
- * 02. 07. Field: help
287
- */
288
- .csf-help {
289
- right: auto;
290
- left: 5px;
291
- }
292
-
293
- /**
294
- * 02. 08. Field: icon
295
- */
296
- .csf-field-icon .button {
297
- margin-right: 0;
298
- margin-left: 5px;
299
- }
300
- .csf-field-icon .csf-icon-preview i {
301
- margin-right: 0;
302
- margin-left: 5px;
303
- }
304
-
305
- /**
306
- * 02. 09. Field: gallery
307
- */
308
- .csf-field-gallery ul li {
309
- margin-right: 0;
310
- margin-left: 5px;
311
- }
312
- .csf-field-gallery .button {
313
- margin-right: 0;
314
- margin-left: 5px;
315
- }
316
-
317
- /**
318
- * 02. 11. Field: tabbed
319
- */
320
- .csf-field-tabbed .csf-tabbed-nav .csf--icon {
321
- padding-right: 0;
322
- padding-left: 5px;
323
- }
324
- .csf-field-tabbed .csf-tabbed-nav a {
325
- margin-right: 0;
326
- margin-left: 5px;
327
- }
328
-
329
- /**
330
- * 02. 12. Field: media
331
- */
332
- .csf-field-media .button {
333
- margin-left: 0;
334
- margin-right: 7px;
335
- }
336
- .csf-field-media .hidden + .button {
337
- margin-right: 0;
338
- }
339
-
340
- /**
341
- * 02. 13. Field: notice
342
- */
343
- .csf-notice {
344
- border-left: none;
345
- border-right-style: solid;
346
- border-right-width: 4px;
347
- }
348
-
349
- /**
350
- * 02. 14. Field: border, spacing, dimensions
351
- */
352
- .csf-field-dimensions .csf--input,
353
- .csf-field-dimensions .csf-fieldset,
354
- .csf-field-spacing .csf--input,
355
- .csf-field-spacing .csf-fieldset,
356
- .csf-field-border .csf--input,
357
- .csf-field-border .csf-fieldset {
358
- direction: ltr;
359
- }
360
- .csf-field-dimensions .csf--inputs,
361
- .csf-field-dimensions .csf--color,
362
- .csf-field-spacing .csf--inputs,
363
- .csf-field-spacing .csf--color,
364
- .csf-field-border .csf--inputs,
365
- .csf-field-border .csf--color {
366
- float: right;
367
- }
368
- .csf-field-dimensions .csf--color,
369
- .csf-field-spacing .csf--color,
370
- .csf-field-border .csf--color {
371
- margin-right: 4px;
372
- direction: rtl;
373
- }
374
-
375
- /**
376
- * 02. 15. Field: background
377
- */
378
- .csf-field-background .csf--block {
379
- float: right;
380
- }
381
- .csf-field-background .csf--select,
382
- .csf-field-background .csf--media {
383
- padding-right: 0;
384
- }
385
- .csf-field-background .csf--title {
386
- margin-right: 0;
387
- margin-left: 5px;
388
- }
389
-
390
- /**
391
- * 02. 16. Field: spinner
392
- */
393
- .csf-field-spinner .csf--spin {
394
- float: right;
395
- direction: ltr;
396
- }
397
-
398
- /**
399
- * 02. 17. Field: slider
400
- */
401
- .csf-field-slider .csf-slider-ui {
402
- direction: ltr;
403
- margin-right: 0;
404
- margin-left: 15px;
405
- }
406
- .csf-field-slider .csf--input {
407
- direction: ltr;
408
- }
409
-
410
- /**
411
- * 02. 18. Field: button_set
412
- */
413
- .csf-field-button_set .csf--button-group {
414
- float: right;
415
- }
416
-
417
- /**
418
- * 02. 19. Field: link_color
419
- */
420
- .csf-field-link_color .csf--left {
421
- float: right;
422
- margin-right: 0;
423
- margin-left: 10px;
424
- }
425
-
426
- /**
427
- * 02. 20. Field: color_group
428
- */
429
- .csf-field-color_group .csf--left {
430
- float: right;
431
- margin-right: 0;
432
- margin-left: 10px;
433
- }
434
-
435
- /**
436
- * 02. 21. Field: palette
437
- */
438
- .csf-field-palette .csf--palette {
439
- margin-right: 0;
440
- margin-left: 10px;
441
- }
442
-
443
- /**
444
- * 02. 22. Field: accordion
445
- */
446
- .csf-field-accordion .csf--icon {
447
- margin-right: 0;
448
- margin-left: 2px;
449
- }
450
-
451
- /**
452
- * 02. 23. Field: date
453
- */
454
- .csf-field-date .csf--to {
455
- margin-left: 0;
456
- margin-right: 7px;
457
- }
458
-
459
- /**
460
- * 02. 24. Field: map
461
- */
462
- .csf-field-map .csf--map-input:last-child {
463
- padding-left: 0;
464
- padding-right: 10px;
465
- }
466
-
467
- /**
468
- * 02. 25. Field: sortable
469
- */
470
- .csf-field-sortable .csf-sortable-helper {
471
- border-left: none;
472
- border-right: 1px solid #eee;
473
- }
474
-
475
- /**
476
- * 02. 26. Field: number
477
- */
478
- .csf-field-number .csf--wrap {
479
- float: right;
480
- }
481
- .csf-field-number .csf--unit {
482
- left: 4px;
483
- right: auto;
484
- }
485
-
486
- /**
487
- * 03. Taxonomy
488
- */
489
- .csf-taxonomy-add-fields {
490
- margin-right: 0;
491
- margin-left: 30px;
492
- }
493
- .csf-taxonomy-add-fields .csf-field > .csf-fieldset > .csf-help {
494
- left: -5px;
495
- right: auto;
496
- }
497
-
498
- .csf-taxonomy-edit-fields {
499
- margin-right: 0;
500
- margin-left: 35px;
501
- }
502
- .csf-taxonomy-edit-fields .csf-field > .csf-fieldset > .csf-help {
503
- right: auto;
504
- left: -5px;
505
- }
506
-
507
- /**
508
- * 04. Profile
509
- */
510
- .csf-profile-options > h2 > .fa {
511
- padding-right: 0;
512
- padding-left: 7px;
513
- }
514
- .csf-profile-options > .csf-field > .csf-fieldset > .csf-help {
515
- left: -5px;
516
- right: auto;
517
- }
518
-
519
- /**
520
- * 05. Nav Menu
521
- */
522
- .csf-nav-menu-options > .csf-fields {
523
- margin-left: 0;
524
- margin-right: -10px;
525
- }
526
-
527
- .csf-nav-menu-title {
528
- padding-left: 14px;
529
- padding-right: 12px;
530
- }
531
-
532
- .csf-nav-menu-icon {
533
- margin-right: 0;
534
- margin-left: 5px;
535
- }
536
-
537
- /**
538
- * 06. Modal
539
- */
540
- .csf-modal-content .csf-field {
541
- padding: 15px 15px 15px 30px;
542
- }
543
-
544
- .csf-modal-title {
545
- padding: 0 16px 0 36px;
546
- }
547
-
548
- .csf-modal-close {
549
- right: auto;
550
- left: 0;
551
- }
552
-
553
- /**
554
- * 07. Customizer
555
- */
556
- .control-section .csf-field .csf-fieldset {
557
- margin-right: 0;
558
- }
559
-
560
- /**
561
- * 08. Responsive
562
- */
563
- @media only screen and (max-width: 1200px) {
564
- .csf-metabox .csf-field .csf-fieldset {
565
- margin-left: 0;
566
- }
567
- }
568
- @media only screen and (max-width: 782px) {
569
- .csf .csf-fieldset,
570
- .csf .csf-content {
571
- margin-right: 0;
572
- }
573
- }
574
- /**
575
- * 09. Others
576
- */
577
- .csf-field .csf--transparent-slider {
578
- margin-left: 0;
579
- margin-right: 2px;
580
- }
581
- .csf-field .csf--transparent-slider .ui-slider-handle {
582
- margin: 0 -11px;
583
- }
584
- .csf-field .csf--transparent-offset {
585
- background-position: center right;
586
- }
587
- .csf-field .csf--transparent-text {
588
- right: auto;
589
- left: 10px;
590
- }
1
+ /**
2
+ *
3
+ * ---------------------------------------------------------
4
+ * CODESTAR FRAMEWORK RTL CSS MAP
5
+ * ---------------------------------------------------------
6
+ *
7
+ * 01. Base
8
+ * 01. 01. Header
9
+ * 01. 02. Header Buttons
10
+ * 01. 03. Navigation
11
+ * 01. 04. Content
12
+ * 01. 05. Section
13
+ * 01. 06. Show All Settings
14
+ * 01. 07. Search Input
15
+ * 01. 08. Copyright
16
+ * 01. 09. Metabox
17
+ * 02. Fields
18
+ * 02. 01. Field: typography
19
+ * 02. 02. Field: checkbox, radio
20
+ * 02. 03. Field: switcher
21
+ * 02. 04. Field: upload
22
+ * 02. 05. Field: group
23
+ * 02. 06. Field: repeater
24
+ * 02. 07. Field: help
25
+ * 02. 08. Field: icon
26
+ * 02. 09. Field: gallery
27
+ * 02. 10. Field: sorter
28
+ * 02. 11. Field: tabbed
29
+ * 02. 12. Field: media
30
+ * 02. 13. Field: notice
31
+ * 02. 14. Field: border, spacing, dimensions
32
+ * 02. 15. Field: background
33
+ * 02. 16. Field: spinner
34
+ * 02. 17. Field: slider
35
+ * 02. 18. Field: button_set
36
+ * 02. 19. Field: link_color
37
+ * 02. 20. Field: color_group
38
+ * 02. 21. Field: palette
39
+ * 02. 22. Field: accordion
40
+ * 02. 23. Field: date
41
+ * 02. 24. Field: map
42
+ * 02. 25. Field: sortable
43
+ * 02. 26. Field: number
44
+ * 03. Taxonomy
45
+ * 04. Profile
46
+ * 05. Nav Menu
47
+ * 06. Modal
48
+ * 07. Customizer
49
+ * 08. Responsive
50
+ * 09. Others
51
+ *
52
+ * ---------------------------------------------------------
53
+ *
54
+ */
55
+ /**
56
+ * 01. Base
57
+ */
58
+ .csf-options {
59
+ margin-left: 20px;
60
+ margin-right: 0;
61
+ }
62
+
63
+ /**
64
+ * 01. 01. Header
65
+ */
66
+ .csf-header h1 {
67
+ float: right;
68
+ }
69
+ .csf-header fieldset {
70
+ float: left;
71
+ }
72
+
73
+ /**
74
+ * 01. 02. Header Buttons
75
+ */
76
+ .csf-buttons {
77
+ float: left;
78
+ direction: ltr;
79
+ }
80
+
81
+ .csf-header-left {
82
+ float: right;
83
+ }
84
+
85
+ .csf-header-right {
86
+ float: left;
87
+ }
88
+
89
+ /**
90
+ * 01. 03. Navigation
91
+ */
92
+ .csf-nav {
93
+ float: right;
94
+ }
95
+ .csf-nav ul {
96
+ clear: right;
97
+ }
98
+ .csf-nav ul li .csf-active:after {
99
+ right: auto;
100
+ left: 0;
101
+ border-left-color: #fff;
102
+ border-right-color: transparent;
103
+ }
104
+ .csf-nav ul li .csf-arrow:after {
105
+ content: "\f053";
106
+ right: auto;
107
+ left: 10px;
108
+ }
109
+ .csf-nav ul li.csf-tab-expanded .csf-arrow:after {
110
+ transform: rotate(-90deg);
111
+ }
112
+ .csf-nav ul ul li a {
113
+ padding-right: 25px;
114
+ padding-left: 15px;
115
+ }
116
+ .csf-nav ul ul:before {
117
+ left: auto;
118
+ right: 15px;
119
+ }
120
+ .csf-nav .csf-tab-icon {
121
+ margin-left: 5px;
122
+ margin-right: 0;
123
+ }
124
+
125
+ .csf-nav-background {
126
+ left: auto;
127
+ right: 0;
128
+ }
129
+
130
+ /**
131
+ * 01. 04. Content
132
+ */
133
+ .csf-content {
134
+ margin-left: 0;
135
+ margin-right: 225px;
136
+ }
137
+
138
+ /**
139
+ * 01. 05. Section
140
+ */
141
+ .csf-sections {
142
+ float: right;
143
+ }
144
+
145
+ /**
146
+ * 01. 06. Show all options
147
+ */
148
+ .csf-show-all .csf-content {
149
+ margin-right: 0;
150
+ overflow: hidden;
151
+ }
152
+
153
+ .csf-expand-all {
154
+ float: right;
155
+ right: auto;
156
+ left: 40px;
157
+ margin-right: 0;
158
+ margin-left: 4px;
159
+ }
160
+
161
+ /**
162
+ * 01. 07. Search Input
163
+ */
164
+ .csf-search {
165
+ float: right;
166
+ }
167
+ .csf-search input {
168
+ margin: 0 0 0 5px;
169
+ }
170
+
171
+ /**
172
+ * 01. 08. Copyright
173
+ */
174
+ .csf-copyright {
175
+ float: right;
176
+ }
177
+
178
+ /**
179
+ * 01. 09. Metabox
180
+ */
181
+ .csf-metabox {
182
+ margin: -6px -12px -12px -12px;
183
+ }
184
+ .csf-metabox .csf-section-title {
185
+ padding: 20px;
186
+ }
187
+
188
+ .csf-section-title .csf-section-icon {
189
+ margin-left: 5px;
190
+ margin-right: 0;
191
+ }
192
+
193
+ /**
194
+ * 02. Fields
195
+ */
196
+ .csf-field .csf-title {
197
+ float: right;
198
+ }
199
+ .csf-field .csf-fieldset {
200
+ float: left;
201
+ }
202
+
203
+ .csf-pseudo-field {
204
+ padding: 0 0 0 5px !important;
205
+ }
206
+
207
+ /**
208
+ * 02. 01. Field: typography
209
+ */
210
+ .csf-field-typography select {
211
+ margin: 0;
212
+ width: 100%;
213
+ }
214
+ .csf-field-typography .csf--blocks-inputs .csf--blocks {
215
+ flex-direction: row-reverse;
216
+ }
217
+ .csf-field-typography .csf--unit {
218
+ left: 4px;
219
+ right: auto;
220
+ }
221
+
222
+ /**
223
+ * 02. 02. Field: checkbox, radio
224
+ */
225
+ .csf-field-checkbox ul ul li,
226
+ .csf-field-radio ul ul li {
227
+ margin-left: 0;
228
+ margin-right: 8px;
229
+ }
230
+ .csf-field-checkbox ul ul li:first-child,
231
+ .csf-field-radio ul ul li:first-child {
232
+ margin-right: 0;
233
+ }
234
+ .csf-field-checkbox .csf--inline-list li,
235
+ .csf-field-radio .csf--inline-list li {
236
+ margin-right: 0;
237
+ margin-left: 15px;
238
+ }
239
+ .csf-field-checkbox .csf--text,
240
+ .csf-field-radio .csf--text {
241
+ margin-left: 0;
242
+ margin-right: 5px;
243
+ }
244
+
245
+ /**
246
+ * 02. 03. Field: switcher
247
+ */
248
+ .csf-field-switcher .csf--switcher {
249
+ float: right;
250
+ }
251
+ .csf-field-switcher .csf--label {
252
+ float: right;
253
+ margin-left: 0;
254
+ margin-right: 5px;
255
+ }
256
+
257
+ /**
258
+ * 02. 04. Field: upload
259
+ */
260
+ .csf-field-upload .csf--remove,
261
+ .csf-field-upload .csf--button {
262
+ margin-left: 0;
263
+ margin-right: 5px;
264
+ }
265
+
266
+ /**
267
+ * 02. 05. Field: group
268
+ */
269
+ .csf-field-group .csf-cloneable-title {
270
+ padding: 15px 10px 15px 65px;
271
+ }
272
+ .csf-field-group .csf-cloneable-helper {
273
+ right: auto;
274
+ left: 10px;
275
+ }
276
+
277
+ /**
278
+ * 02. 06. Field: repeater
279
+ */
280
+ .csf-field-repeater .csf-repeater-helper {
281
+ border-left: 0;
282
+ border-right: 1px solid #eee;
283
+ }
284
+
285
+ /**
286
+ * 02. 07. Field: help
287
+ */
288
+ .csf-help {
289
+ right: auto;
290
+ left: 5px;
291
+ }
292
+
293
+ /**
294
+ * 02. 08. Field: icon
295
+ */
296
+ .csf-field-icon .button {
297
+ margin-right: 0;
298
+ margin-left: 5px;
299
+ }
300
+ .csf-field-icon .csf-icon-preview i {
301
+ margin-right: 0;
302
+ margin-left: 5px;
303
+ }
304
+
305
+ /**
306
+ * 02. 09. Field: gallery
307
+ */
308
+ .csf-field-gallery ul li {
309
+ margin-right: 0;
310
+ margin-left: 5px;
311
+ }
312
+ .csf-field-gallery .button {
313
+ margin-right: 0;
314
+ margin-left: 5px;
315
+ }
316
+
317
+ /**
318
+ * 02. 11. Field: tabbed
319
+ */
320
+ .csf-field-tabbed .csf-tabbed-nav .csf--icon {
321
+ padding-right: 0;
322
+ padding-left: 5px;
323
+ }
324
+ .csf-field-tabbed .csf-tabbed-nav a {
325
+ margin-right: 0;
326
+ margin-left: 5px;
327
+ }
328
+
329
+ /**
330
+ * 02. 12. Field: media
331
+ */
332
+ .csf-field-media .button {
333
+ margin-left: 0;
334
+ margin-right: 7px;
335
+ }
336
+ .csf-field-media .hidden + .button {
337
+ margin-right: 0;
338
+ }
339
+
340
+ /**
341
+ * 02. 13. Field: notice
342
+ */
343
+ .csf-notice {
344
+ border-left: none;
345
+ border-right-style: solid;
346
+ border-right-width: 4px;
347
+ }
348
+
349
+ /**
350
+ * 02. 14. Field: border, spacing, dimensions
351
+ */
352
+ .csf-field-dimensions .csf--input,
353
+ .csf-field-dimensions .csf-fieldset,
354
+ .csf-field-spacing .csf--input,
355
+ .csf-field-spacing .csf-fieldset,
356
+ .csf-field-border .csf--input,
357
+ .csf-field-border .csf-fieldset {
358
+ direction: ltr;
359
+ }
360
+ .csf-field-dimensions .csf--inputs,
361
+ .csf-field-dimensions .csf--color,
362
+ .csf-field-spacing .csf--inputs,
363
+ .csf-field-spacing .csf--color,
364
+ .csf-field-border .csf--inputs,
365
+ .csf-field-border .csf--color {
366
+ float: right;
367
+ }
368
+ .csf-field-dimensions .csf--color,
369
+ .csf-field-spacing .csf--color,
370
+ .csf-field-border .csf--color {
371
+ margin-right: 4px;
372
+ direction: rtl;
373
+ }
374
+
375
+ /**
376
+ * 02. 15. Field: background
377
+ */
378
+ .csf-field-background .csf--block {
379
+ float: right;
380
+ }
381
+ .csf-field-background .csf--select,
382
+ .csf-field-background .csf--media {
383
+ padding-right: 0;
384
+ }
385
+ .csf-field-background .csf--title {
386
+ margin-right: 0;
387
+ margin-left: 5px;
388
+ }
389
+
390
+ /**
391
+ * 02. 16. Field: spinner
392
+ */
393
+ .csf-field-spinner .csf--spin {
394
+ float: right;
395
+ direction: ltr;
396
+ }
397
+
398
+ /**
399
+ * 02. 17. Field: slider
400
+ */
401
+ .csf-field-slider .csf-slider-ui {
402
+ direction: ltr;
403
+ margin-right: 0;
404
+ margin-left: 15px;
405
+ }
406
+ .csf-field-slider .csf--input {
407
+ direction: ltr;
408
+ }
409
+
410
+ /**
411
+ * 02. 18. Field: button_set
412
+ */
413
+ .csf-field-button_set .csf--button-group {
414
+ float: right;
415
+ }
416
+
417
+ /**
418
+ * 02. 19. Field: link_color
419
+ */
420
+ .csf-field-link_color .csf--left {
421
+ float: right;
422
+ margin-right: 0;
423
+ margin-left: 10px;
424
+ }
425
+
426
+ /**
427
+ * 02. 20. Field: color_group
428
+ */
429
+ .csf-field-color_group .csf--left {
430
+ float: right;
431
+ margin-right: 0;
432
+ margin-left: 10px;
433
+ }
434
+
435
+ /**
436
+ * 02. 21. Field: palette
437
+ */
438
+ .csf-field-palette .csf--palette {
439
+ margin-right: 0;
440
+ margin-left: 10px;
441
+ }
442
+
443
+ /**
444
+ * 02. 22. Field: accordion
445
+ */
446
+ .csf-field-accordion .csf--icon {
447
+ margin-right: 0;
448
+ margin-left: 2px;
449
+ }
450
+
451
+ /**
452
+ * 02. 23. Field: date
453
+ */
454
+ .csf-field-date .csf--to {
455
+ margin-left: 0;
456
+ margin-right: 7px;
457
+ }
458
+
459
+ /**
460
+ * 02. 24. Field: map
461
+ */
462
+ .csf-field-map .csf--map-input:last-child {
463
+ padding-left: 0;
464
+ padding-right: 10px;
465
+ }
466
+
467
+ /**
468
+ * 02. 25. Field: sortable
469
+ */
470
+ .csf-field-sortable .csf-sortable-helper {
471
+ border-left: none;
472
+ border-right: 1px solid #eee;
473
+ }
474
+
475
+ /**
476
+ * 02. 26. Field: number
477
+ */
478
+ .csf-field-number .csf--wrap {
479
+ float: right;
480
+ }
481
+ .csf-field-number .csf--unit {
482
+ left: 4px;
483
+ right: auto;
484
+ }
485
+
486
+ /**
487
+ * 03. Taxonomy
488
+ */
489
+ .csf-taxonomy-add-fields {
490
+ margin-right: 0;
491
+ margin-left: 30px;
492
+ }
493
+ .csf-taxonomy-add-fields .csf-field > .csf-fieldset > .csf-help {
494
+ left: -5px;
495
+ right: auto;
496
+ }
497
+
498
+ .csf-taxonomy-edit-fields {
499
+ margin-right: 0;
500
+ margin-left: 35px;
501
+ }
502
+ .csf-taxonomy-edit-fields .csf-field > .csf-fieldset > .csf-help {
503
+ right: auto;
504
+ left: -5px;
505
+ }
506
+
507
+ /**
508
+ * 04. Profile
509
+ */
510
+ .csf-profile-options > h2 > .fa {
511
+ padding-right: 0;
512
+ padding-left: 7px;
513
+ }
514
+ .csf-profile-options > .csf-field > .csf-fieldset > .csf-help {
515
+ left: -5px;
516
+ right: auto;
517
+ }
518
+
519
+ /**
520
+ * 05. Nav Menu
521
+ */
522
+ .csf-nav-menu-options > .csf-fields {
523
+ margin-left: 0;
524
+ margin-right: -10px;
525
+ }
526
+
527
+ .csf-nav-menu-title {
528
+ padding-left: 14px;
529
+ padding-right: 12px;
530
+ }
531
+
532
+ .csf-nav-menu-icon {
533
+ margin-right: 0;
534
+ margin-left: 5px;
535
+ }
536
+
537
+ /**
538
+ * 06. Modal
539
+ */
540
+ .csf-modal-content .csf-field {
541
+ padding: 15px 15px 15px 30px;
542
+ }
543
+
544
+ .csf-modal-title {
545
+ padding: 0 16px 0 36px;
546
+ }
547
+
548
+ .csf-modal-close {
549
+ right: auto;
550
+ left: 0;
551
+ }
552
+
553
+ /**
554
+ * 07. Customizer
555
+ */
556
+ .control-section .csf-field .csf-fieldset {
557
+ margin-right: 0;
558
+ }
559
+
560
+ /**
561
+ * 08. Responsive
562
+ */
563
+ @media only screen and (max-width: 1200px) {
564
+ .csf-metabox .csf-field .csf-fieldset {
565
+ margin-left: 0;
566
+ }
567
+ }
568
+ @media only screen and (max-width: 782px) {
569
+ .csf .csf-fieldset,
570
+ .csf .csf-content {
571
+ margin-right: 0;
572
+ }
573
+ }
574
+ /**
575
+ * 09. Others
576
+ */
577
+ .csf-field .csf--transparent-slider {
578
+ margin-left: 0;
579
+ margin-right: 2px;
580
+ }
581
+ .csf-field .csf--transparent-slider .ui-slider-handle {
582
+ margin: 0 -11px;
583
+ }
584
+ .csf-field .csf--transparent-offset {
585
+ background-position: center right;
586
+ }
587
+ .csf-field .csf--transparent-text {
588
+ right: auto;
589
+ left: 10px;
590
+ }
vendor/codestar-framework/assets/css/style.css CHANGED
@@ -35,34 +35,35 @@
35
  * 03. 10. Field: color_group
36
  * 03. 11. Field: fieldset
37
  * 03. 12. Field: date
38
- * 03. 13. Field: gallery
39
- * 03. 14. Field: group
40
- * 03. 15. Field: icon
41
- * 03. 16. Field: image_select
42
- * 03. 17. Field: link_color
43
- * 03. 18. Field: map
44
- * 03. 19. Field: media
45
- * 03. 20. Field: palette
46
- * 03. 21. Field: repeater
47
- * 03. 22. Field: select
48
- * 03. 23. Field: slider
49
- * 03. 24. Field: sortable
50
- * 03. 25. Field: sorter
51
- * 03. 26. Field: spinner
52
- * 03. 27. Field: switcher
53
- * 03. 28. Field: tabbed
54
- * 03. 29. Field: text
55
- * 03. 30. Field: textarea
56
- * 03. 31. Field: typography
57
- * 03. 32. Field: upload
58
- * 03. 33. Field: wp_editor
59
- * 03. 34. Field: heading
60
- * 03. 35. Field: subheading
61
- * 03. 36. Field: submessage
62
- * 03. 37. Field: notice
63
- * 03. 38. Field: number
64
- * 03. 39. Field: link
65
- * 03. 40. Field: others
 
66
  * 04. Widget
67
  * 05. Customizer
68
  * 06. Taxonomy
@@ -1194,7 +1195,29 @@
1194
  }
1195
 
1196
  /**
1197
- * 03. 13. Field: gallery
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1198
  */
1199
  .csf-field-gallery ul {
1200
  margin: 0;
@@ -1222,7 +1245,7 @@
1222
  }
1223
 
1224
  /**
1225
- * 03. 14. Field: group
1226
  */
1227
  .csf-field-group .csf-cloneable-hidden {
1228
  display: none !important;
@@ -1326,7 +1349,7 @@
1326
  }
1327
 
1328
  /**
1329
- * 03. 15. Field: icon
1330
  */
1331
  .csf-field-icon .button {
1332
  margin-right: 5px;
@@ -1354,7 +1377,7 @@
1354
  }
1355
 
1356
  /**
1357
- * 03. 16. Field: image_select
1358
  */
1359
  .csf-field-image_select .csf--image {
1360
  display: inline-block;
@@ -1409,7 +1432,7 @@
1409
  }
1410
 
1411
  /**
1412
- * 03. 17. Field: link_color
1413
  */
1414
  .csf-field-link_color .csf--left {
1415
  float: left;
@@ -1422,7 +1445,7 @@
1422
  }
1423
 
1424
  /**
1425
- * 03. 18. Field: map
1426
  */
1427
  .csf-field-map input {
1428
  width: 100%;
@@ -1470,7 +1493,7 @@
1470
  }
1471
 
1472
  /**
1473
- * 03. 19. Field: media
1474
  */
1475
  .csf-field-media .csf--placeholder {
1476
  display: flex;
@@ -1491,7 +1514,7 @@
1491
  }
1492
 
1493
  /**
1494
- * 03. 20. Field: palette
1495
  */
1496
  .csf-field-palette .csf--palette {
1497
  position: relative;
@@ -1542,7 +1565,7 @@
1542
  }
1543
 
1544
  /**
1545
- * 03. 21. Field: repeater
1546
  */
1547
  .csf-field-repeater .csf-field-text input {
1548
  width: 100%;
@@ -1617,7 +1640,7 @@
1617
  }
1618
 
1619
  /**
1620
- * 03. 22. Field: select
1621
  */
1622
  .csf-field-select .csf-fieldset {
1623
  min-height: 30px;
@@ -1634,7 +1657,7 @@
1634
  }
1635
 
1636
  /**
1637
- * 03. 23. Field: slider
1638
  */
1639
  .csf-field-slider .csf--wrap {
1640
  display: flex;
@@ -1702,7 +1725,7 @@
1702
  }
1703
 
1704
  /**
1705
- * 03. 24. Field: sortable
1706
  */
1707
  .csf-field-sortable .csf-field-text input {
1708
  width: 100%;
@@ -1764,7 +1787,7 @@
1764
  }
1765
 
1766
  /**
1767
- * 03. 25. Field: sorter
1768
  */
1769
  .csf-field-sorter .ui-sortable-placeholder {
1770
  height: 20px;
@@ -1826,65 +1849,77 @@
1826
  }
1827
 
1828
  /**
1829
- * 03. 26. Field: spinner
1830
  */
1831
  .csf-field-spinner .csf--spin {
1832
  display: flex;
1833
  }
 
 
 
1834
  .csf-field-spinner .ui-spinner {
1835
  display: flex;
 
 
 
 
 
1836
  }
1837
- .csf-field-spinner .ui-button {
1838
  display: flex;
1839
  flex-direction: column;
1840
  justify-content: center;
1841
  text-align: center;
1842
  min-width: 20px;
1843
  padding: 0 4px;
 
1844
  color: #555;
1845
- border: 1px solid #7e8993;
1846
  background-color: #f5f5f5;
 
1847
  }
1848
- .csf-field-spinner .ui-spinner-button {
 
1849
  cursor: pointer;
 
1850
  }
1851
- .csf-field-spinner .ui-spinner-button:hover {
1852
  background-color: #e7e7e7;
1853
  }
1854
- .csf-field-spinner .ui-spinner-button:active {
1855
  background-color: #ddd;
1856
  }
1857
- .csf-field-spinner .ui-spinner-button:before {
1858
  font-family: "Font Awesome 5 Pro", "Font Awesome 5 Free", "FontAwesome";
1859
  font-weight: 900;
1860
  font-size: 14px;
1861
  line-height: 14px;
1862
  }
1863
- .csf-field-spinner .ui-spinner-down {
1864
- order: 1;
1865
  border-right: 0;
1866
  border-radius: 4px 0 0 4px;
1867
  }
1868
- .csf-field-spinner .ui-spinner-down:before {
1869
  content: "\f0d9";
1870
  }
1871
- .csf-field-spinner .ui-spinner-input {
1872
- order: 2;
1873
- }
1874
- .csf-field-spinner .csf--unit {
1875
- order: 3;
1876
- border-left: 0;
1877
- user-select: none;
1878
- }
1879
- .csf-field-spinner .ui-spinner-up {
1880
- order: 4;
1881
  border-left: 0;
1882
  border-radius: 0 4px 4px 0;
1883
  }
1884
- .csf-field-spinner .ui-spinner-up:before {
1885
  content: "\f0da";
1886
  }
1887
- .csf-field-spinner input {
 
 
 
 
 
 
 
 
 
 
 
1888
  position: relative;
1889
  z-index: 1;
1890
  width: 50px;
@@ -1893,14 +1928,21 @@
1893
  padding: 0 8px;
1894
  border-radius: 0;
1895
  }
1896
- .csf-field-spinner .ui-button-text,
1897
- .csf-field-spinner .ui-button-icon,
1898
- .csf-field-spinner .ui-button-icon-space {
1899
- display: none;
 
 
 
 
 
 
 
1900
  }
1901
 
1902
  /**
1903
- * 03. 27. Field: switcher
1904
  */
1905
  .csf-field-switcher .csf--switcher {
1906
  float: left;
@@ -1971,7 +2013,7 @@
1971
  }
1972
 
1973
  /**
1974
- * 03. 28. Field: tabbed
1975
  */
1976
  .csf-field-tabbed .csf-tabbed-content {
1977
  border: 1px solid #ccd0d4;
@@ -2011,7 +2053,7 @@
2011
  }
2012
 
2013
  /**
2014
- * 03. 29. Field: text
2015
  */
2016
  .csf-field-text input {
2017
  width: 50%;
@@ -2020,7 +2062,7 @@
2020
  }
2021
 
2022
  /**
2023
- * 03. 30. Field: textarea
2024
  */
2025
  .csf-field-textarea textarea {
2026
  width: 100%;
@@ -2033,7 +2075,7 @@
2033
  }
2034
 
2035
  /**
2036
- * 03. 31. Field: typography
2037
  */
2038
  .csf-field-typography textarea,
2039
  .csf-field-typography select {
@@ -2117,7 +2159,7 @@
2117
  }
2118
 
2119
  /**
2120
- * 03. 32. Field: upload
2121
  */
2122
  .csf-field-upload input {
2123
  width: 100%;
@@ -2135,7 +2177,7 @@
2135
  }
2136
 
2137
  /**
2138
- * 03. 33. Field: wp_editor
2139
  */
2140
  .csf-field-wp_editor .csf-wp-editor {
2141
  float: left;
@@ -2177,7 +2219,7 @@
2177
  }
2178
 
2179
  /**
2180
- * 03. 34. Field: heading
2181
  */
2182
  .csf-field-heading {
2183
  font-size: 1.5em;
@@ -2187,7 +2229,7 @@
2187
  }
2188
 
2189
  /**
2190
- * 03. 35. Field: subheading
2191
  */
2192
  .csf-field-subheading {
2193
  font-size: 14px;
@@ -2199,7 +2241,7 @@
2199
  }
2200
 
2201
  /**
2202
- * 03. 36. Field: submessage
2203
  */
2204
  .csf-field-submessage {
2205
  padding: 0 !important;
@@ -2247,7 +2289,7 @@
2247
  }
2248
 
2249
  /**
2250
- * 03. 37. Field: notice
2251
  */
2252
  .csf-field-notice {
2253
  background-color: #f7f7f7;
@@ -2282,7 +2324,7 @@
2282
  }
2283
 
2284
  /**
2285
- * 03. 38. Field: number
2286
  */
2287
  .csf-field-number input {
2288
  width: 100%;
@@ -2312,7 +2354,7 @@
2312
  }
2313
 
2314
  /**
2315
- * 03. 39. Field: link
2316
  */
2317
  .csf-field-link .csf--result {
2318
  display: inline-block;
@@ -2350,7 +2392,7 @@
2350
  }
2351
 
2352
  /**
2353
- * 03. 40. others
2354
  */
2355
  .csf-help {
2356
  cursor: help;
@@ -2711,7 +2753,13 @@
2711
  margin-left: 0;
2712
  margin-right: 0;
2713
  }
2714
- .control-section .csf-field-date .csf--to {
 
 
 
 
 
 
2715
  margin-left: 0;
2716
  }
2717
  .control-section .csf-field-sorter ul li {
@@ -4220,3 +4268,909 @@
4220
  padding: 4px 5px 4px 20px;
4221
  direction: rtl;
4222
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35
  * 03. 10. Field: color_group
36
  * 03. 11. Field: fieldset
37
  * 03. 12. Field: date
38
+ * 03. 13. Field: datetime
39
+ * 03. 14. Field: gallery
40
+ * 03. 15. Field: group
41
+ * 03. 16. Field: icon
42
+ * 03. 17. Field: image_select
43
+ * 03. 18. Field: link_color
44
+ * 03. 19. Field: map
45
+ * 03. 20. Field: media
46
+ * 03. 21. Field: palette
47
+ * 03. 22. Field: repeater
48
+ * 03. 23. Field: select
49
+ * 03. 24. Field: slider
50
+ * 03. 25. Field: sortable
51
+ * 03. 26. Field: sorter
52
+ * 03. 27. Field: spinner
53
+ * 03. 28. Field: switcher
54
+ * 03. 29. Field: tabbed
55
+ * 03. 30. Field: text
56
+ * 03. 31. Field: textarea
57
+ * 03. 32. Field: typography
58
+ * 03. 33. Field: upload
59
+ * 03. 34. Field: wp_editor
60
+ * 03. 35. Field: heading
61
+ * 03. 36. Field: subheading
62
+ * 03. 37. Field: submessage
63
+ * 03. 38. Field: notice
64
+ * 03. 39. Field: number
65
+ * 03. 40. Field: link
66
+ * 03. 41. Field: others
67
  * 04. Widget
68
  * 05. Customizer
69
  * 06. Taxonomy
1195
  }
1196
 
1197
  /**
1198
+ * 03. 13. Field: datetime
1199
+ */
1200
+ .csf-field-datetime input {
1201
+ margin: 0;
1202
+ }
1203
+ .csf-field-datetime .csf--to {
1204
+ margin-left: 7px;
1205
+ }
1206
+
1207
+ .csf-flatpickr select,
1208
+ .csf-flatpickr input {
1209
+ min-height: auto;
1210
+ }
1211
+ .csf-flatpickr select:focus,
1212
+ .csf-flatpickr input:focus {
1213
+ box-shadow: none;
1214
+ }
1215
+ .csf-flatpickr.open {
1216
+ z-index: 9999999 !important;
1217
+ }
1218
+
1219
+ /**
1220
+ * 03. 14. Field: gallery
1221
  */
1222
  .csf-field-gallery ul {
1223
  margin: 0;
1245
  }
1246
 
1247
  /**
1248
+ * 03. 15. Field: group
1249
  */
1250
  .csf-field-group .csf-cloneable-hidden {
1251
  display: none !important;
1349
  }
1350
 
1351
  /**
1352
+ * 03. 16. Field: icon
1353
  */
1354
  .csf-field-icon .button {
1355
  margin-right: 5px;
1377
  }
1378
 
1379
  /**
1380
+ * 03. 17. Field: image_select
1381
  */
1382
  .csf-field-image_select .csf--image {
1383
  display: inline-block;
1432
  }
1433
 
1434
  /**
1435
+ * 03. 18. Field: link_color
1436
  */
1437
  .csf-field-link_color .csf--left {
1438
  float: left;
1445
  }
1446
 
1447
  /**
1448
+ * 03. 19. Field: map
1449
  */
1450
  .csf-field-map input {
1451
  width: 100%;
1493
  }
1494
 
1495
  /**
1496
+ * 03. 20. Field: media
1497
  */
1498
  .csf-field-media .csf--placeholder {
1499
  display: flex;
1514
  }
1515
 
1516
  /**
1517
+ * 03. 21. Field: palette
1518
  */
1519
  .csf-field-palette .csf--palette {
1520
  position: relative;
1565
  }
1566
 
1567
  /**
1568
+ * 03. 22. Field: repeater
1569
  */
1570
  .csf-field-repeater .csf-field-text input {
1571
  width: 100%;
1640
  }
1641
 
1642
  /**
1643
+ * 03. 23. Field: select
1644
  */
1645
  .csf-field-select .csf-fieldset {
1646
  min-height: 30px;
1657
  }
1658
 
1659
  /**
1660
+ * 03. 24. Field: slider
1661
  */
1662
  .csf-field-slider .csf--wrap {
1663
  display: flex;
1725
  }
1726
 
1727
  /**
1728
+ * 03. 25. Field: sortable
1729
  */
1730
  .csf-field-sortable .csf-field-text input {
1731
  width: 100%;
1787
  }
1788
 
1789
  /**
1790
+ * 03. 26. Field: sorter
1791
  */
1792
  .csf-field-sorter .ui-sortable-placeholder {
1793
  height: 20px;
1849
  }
1850
 
1851
  /**
1852
+ * 03. 27. Field: spinner
1853
  */
1854
  .csf-field-spinner .csf--spin {
1855
  display: flex;
1856
  }
1857
+ .csf-field-spinner .ui-widget {
1858
+ font-family: inherit;
1859
+ }
1860
  .csf-field-spinner .ui-spinner {
1861
  display: flex;
1862
+ align-items: stretch;
1863
+ overflow: unset;
1864
+ border: none;
1865
+ background: none;
1866
+ border-radius: 0;
1867
  }
1868
+ .csf-field-spinner .ui-spinner .ui-button {
1869
  display: flex;
1870
  flex-direction: column;
1871
  justify-content: center;
1872
  text-align: center;
1873
  min-width: 20px;
1874
  padding: 0 4px;
1875
+ margin: 0;
1876
  color: #555;
 
1877
  background-color: #f5f5f5;
1878
+ border: 1px solid #7e8993;
1879
  }
1880
+ .csf-field-spinner .ui-spinner .ui-spinner-button {
1881
+ position: relative;
1882
  cursor: pointer;
1883
+ height: auto;
1884
  }
1885
+ .csf-field-spinner .ui-spinner .ui-spinner-button:hover {
1886
  background-color: #e7e7e7;
1887
  }
1888
+ .csf-field-spinner .ui-spinner .ui-spinner-button:active {
1889
  background-color: #ddd;
1890
  }
1891
+ .csf-field-spinner .ui-spinner .ui-spinner-button:before {
1892
  font-family: "Font Awesome 5 Pro", "Font Awesome 5 Free", "FontAwesome";
1893
  font-weight: 900;
1894
  font-size: 14px;
1895
  line-height: 14px;
1896
  }
1897
+ .csf-field-spinner .ui-spinner .ui-spinner-down {
 
1898
  border-right: 0;
1899
  border-radius: 4px 0 0 4px;
1900
  }
1901
+ .csf-field-spinner .ui-spinner .ui-spinner-down:before {
1902
  content: "\f0d9";
1903
  }
1904
+ .csf-field-spinner .ui-spinner .ui-spinner-up {
 
 
 
 
 
 
 
 
 
1905
  border-left: 0;
1906
  border-radius: 0 4px 4px 0;
1907
  }
1908
+ .csf-field-spinner .ui-spinner .ui-spinner-up:before {
1909
  content: "\f0da";
1910
  }
1911
+ .csf-field-spinner .ui-spinner .csf--unit {
1912
+ border-left: 0;
1913
+ user-select: none;
1914
+ }
1915
+ .csf-field-spinner .ui-spinner .ui-button-text,
1916
+ .csf-field-spinner .ui-spinner .ui-button-icon,
1917
+ .csf-field-spinner .ui-spinner .ui-button-icon-space {
1918
+ display: none;
1919
+ }
1920
+ .csf-field-spinner .ui-spinner input {
1921
+ font-family: inherit;
1922
+ font-size: inherit;
1923
  position: relative;
1924
  z-index: 1;
1925
  width: 50px;
1928
  padding: 0 8px;
1929
  border-radius: 0;
1930
  }
1931
+ .csf-field-spinner .ui-spinner-down {
1932
+ order: 1;
1933
+ }
1934
+ .csf-field-spinner .ui-spinner-input {
1935
+ order: 2;
1936
+ }
1937
+ .csf-field-spinner .csf--unit {
1938
+ order: 3;
1939
+ }
1940
+ .csf-field-spinner .ui-spinner-up {
1941
+ order: 4;
1942
  }
1943
 
1944
  /**
1945
+ * 03. 28. Field: switcher
1946
  */
1947
  .csf-field-switcher .csf--switcher {
1948
  float: left;
2013
  }
2014
 
2015
  /**
2016
+ * 03. 29. Field: tabbed
2017
  */
2018
  .csf-field-tabbed .csf-tabbed-content {
2019
  border: 1px solid #ccd0d4;
2053
  }
2054
 
2055
  /**
2056
+ * 03. 30. Field: text
2057
  */
2058
  .csf-field-text input {
2059
  width: 50%;
2062
  }
2063
 
2064
  /**
2065
+ * 03. 31. Field: textarea
2066
  */
2067
  .csf-field-textarea textarea {
2068
  width: 100%;
2075
  }
2076
 
2077
  /**
2078
+ * 03. 32. Field: typography
2079
  */
2080
  .csf-field-typography textarea,
2081
  .csf-field-typography select {
2159
  }
2160
 
2161
  /**
2162
+ * 03. 33. Field: upload
2163
  */
2164
  .csf-field-upload input {
2165
  width: 100%;
2177
  }
2178
 
2179
  /**
2180
+ * 03. 34. Field: wp_editor
2181
  */
2182
  .csf-field-wp_editor .csf-wp-editor {
2183
  float: left;
2219
  }
2220
 
2221
  /**
2222
+ * 03. 35. Field: heading
2223
  */
2224
  .csf-field-heading {
2225
  font-size: 1.5em;
2229
  }
2230
 
2231
  /**
2232
+ * 03. 36. Field: subheading
2233
  */
2234
  .csf-field-subheading {
2235
  font-size: 14px;
2241
  }
2242
 
2243
  /**
2244
+ * 03. 37. Field: submessage
2245
  */
2246
  .csf-field-submessage {
2247
  padding: 0 !important;
2289
  }
2290
 
2291
  /**
2292
+ * 03. 38. Field: notice
2293
  */
2294
  .csf-field-notice {
2295
  background-color: #f7f7f7;
2324
  }
2325
 
2326
  /**
2327
+ * 03. 39. Field: number
2328
  */
2329
  .csf-field-number input {
2330
  width: 100%;
2354
  }
2355
 
2356
  /**
2357
+ * 03. 40. Field: link
2358
  */
2359
  .csf-field-link .csf--result {
2360
  display: inline-block;
2392
  }
2393
 
2394
  /**
2395
+ * 03. 41. others
2396
  */
2397
  .csf-help {
2398
  cursor: help;
2753
  margin-left: 0;
2754
  margin-right: 0;
2755
  }
2756
+ .control-section .csf-field-date label,
2757
+ .control-section .csf-field-datetime label {
2758
+ display: block;
2759
+ }
2760
+ .control-section .csf-field-date .csf--to,
2761
+ .control-section .csf-field-datetime .csf--to {
2762
+ margin-top: 4px;
2763
  margin-left: 0;
2764
  }
2765
  .control-section .csf-field-sorter ul li {
4268
  padding: 4px 5px 4px 20px;
4269
  direction: rtl;
4270
  }
4271
+
4272
+ /**
4273
+ * Flatpickr
4274
+ */
4275
+ .flatpickr-calendar {
4276
+ background: transparent;
4277
+ opacity: 0;
4278
+ display: none;
4279
+ text-align: center;
4280
+ visibility: hidden;
4281
+ padding: 0;
4282
+ -webkit-animation: none;
4283
+ animation: none;
4284
+ direction: ltr;
4285
+ border: 0;
4286
+ font-size: 14px;
4287
+ line-height: 24px;
4288
+ border-radius: 5px;
4289
+ position: absolute;
4290
+ width: 307.875px;
4291
+ -webkit-box-sizing: border-box;
4292
+ box-sizing: border-box;
4293
+ -ms-touch-action: manipulation;
4294
+ touch-action: manipulation;
4295
+ background: #fff;
4296
+ -webkit-box-shadow: 1px 0 0 #e6e6e6, -1px 0 0 #e6e6e6, 0 1px 0 #e6e6e6, 0 -1px 0 #e6e6e6, 0 3px 13px rgba(0, 0, 0, 0.08);
4297
+ box-shadow: 1px 0 0 #e6e6e6, -1px 0 0 #e6e6e6, 0 1px 0 #e6e6e6, 0 -1px 0 #e6e6e6, 0 3px 13px rgba(0, 0, 0, 0.08);
4298
+ }
4299
+
4300
+ .flatpickr-calendar.open,
4301
+ .flatpickr-calendar.inline {
4302
+ opacity: 1;
4303
+ max-height: 640px;
4304
+ visibility: visible;
4305
+ }
4306
+
4307
+ .flatpickr-calendar.open {
4308
+ display: inline-block;
4309
+ z-index: 99999;
4310
+ }
4311
+
4312
+ .flatpickr-calendar.animate.open {
4313
+ -webkit-animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);
4314
+ animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);
4315
+ }
4316
+
4317
+ .flatpickr-calendar.inline {
4318
+ display: block;
4319
+ position: relative;
4320
+ top: 2px;
4321
+ }
4322
+
4323
+ .flatpickr-calendar.static {
4324
+ position: absolute;
4325
+ top: calc(100% + 2px);
4326
+ }
4327
+
4328
+ .flatpickr-calendar.static.open {
4329
+ z-index: 999;
4330
+ display: block;
4331
+ }
4332
+
4333
+ .flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7) {
4334
+ -webkit-box-shadow: none !important;
4335
+ box-shadow: none !important;
4336
+ }
4337
+
4338
+ .flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1) {
4339
+ -webkit-box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;
4340
+ box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;
4341
+ }
4342
+
4343
+ .flatpickr-calendar .hasWeeks .dayContainer,
4344
+ .flatpickr-calendar .hasTime .dayContainer {
4345
+ border-bottom: 0;
4346
+ border-bottom-right-radius: 0;
4347
+ border-bottom-left-radius: 0;
4348
+ }
4349
+
4350
+ .flatpickr-calendar .hasWeeks .dayContainer {
4351
+ border-left: 0;
4352
+ }
4353
+
4354
+ .flatpickr-calendar.hasTime .flatpickr-time {
4355
+ height: 40px;
4356
+ border-top: 1px solid #e6e6e6;
4357
+ }
4358
+
4359
+ .flatpickr-calendar.noCalendar.hasTime .flatpickr-time {
4360
+ height: auto;
4361
+ }
4362
+
4363
+ .flatpickr-calendar:before,
4364
+ .flatpickr-calendar:after {
4365
+ position: absolute;
4366
+ display: block;
4367
+ pointer-events: none;
4368
+ border: solid transparent;
4369
+ content: '';
4370
+ height: 0;
4371
+ width: 0;
4372
+ left: 22px;
4373
+ }
4374
+
4375
+ .flatpickr-calendar.rightMost:before,
4376
+ .flatpickr-calendar.arrowRight:before,
4377
+ .flatpickr-calendar.rightMost:after,
4378
+ .flatpickr-calendar.arrowRight:after {
4379
+ left: auto;
4380
+ right: 22px;
4381
+ }
4382
+
4383
+ .flatpickr-calendar.arrowCenter:before,
4384
+ .flatpickr-calendar.arrowCenter:after {
4385
+ left: 50%;
4386
+ right: 50%;
4387
+ }
4388
+
4389
+ .flatpickr-calendar:before {
4390
+ border-width: 5px;
4391
+ margin: 0 -5px;
4392
+ }
4393
+
4394
+ .flatpickr-calendar:after {
4395
+ border-width: 4px;
4396
+ margin: 0 -4px;
4397
+ }
4398
+
4399
+ .flatpickr-calendar.arrowTop:before,
4400
+ .flatpickr-calendar.arrowTop:after {
4401
+ bottom: 100%;
4402
+ }
4403
+
4404
+ .flatpickr-calendar.arrowTop:before {
4405
+ border-bottom-color: #e6e6e6;
4406
+ }
4407
+
4408
+ .flatpickr-calendar.arrowTop:after {
4409
+ border-bottom-color: #fff;
4410
+ }
4411
+
4412
+ .flatpickr-calendar.arrowBottom:before,
4413
+ .flatpickr-calendar.arrowBottom:after {
4414
+ top: 100%;
4415
+ }
4416
+
4417
+ .flatpickr-calendar.arrowBottom:before {
4418
+ border-top-color: #e6e6e6;
4419
+ }
4420
+
4421
+ .flatpickr-calendar.arrowBottom:after {
4422
+ border-top-color: #fff;
4423
+ }
4424
+
4425
+ .flatpickr-calendar:focus {
4426
+ outline: 0;
4427
+ }
4428
+
4429
+ .flatpickr-wrapper {
4430
+ position: relative;
4431
+ display: inline-block;
4432
+ }
4433
+
4434
+ .flatpickr-months {
4435
+ display: -webkit-box;
4436
+ display: -webkit-flex;
4437
+ display: -ms-flexbox;
4438
+ display: flex;
4439
+ }
4440
+
4441
+ .flatpickr-months .flatpickr-month {
4442
+ background: transparent;
4443
+ color: rgba(0, 0, 0, 0.9);
4444
+ fill: rgba(0, 0, 0, 0.9);
4445
+ height: 34px;
4446
+ line-height: 1;
4447
+ text-align: center;
4448
+ position: relative;
4449
+ -webkit-user-select: none;
4450
+ -moz-user-select: none;
4451
+ -ms-user-select: none;
4452
+ user-select: none;
4453
+ overflow: hidden;
4454
+ -webkit-box-flex: 1;
4455
+ -webkit-flex: 1;
4456
+ -ms-flex: 1;
4457
+ flex: 1;
4458
+ }
4459
+
4460
+ .flatpickr-months .flatpickr-prev-month,
4461
+ .flatpickr-months .flatpickr-next-month {
4462
+ text-decoration: none;
4463
+ cursor: pointer;
4464
+ position: absolute;
4465
+ top: 0;
4466
+ height: 34px;
4467
+ padding: 10px;
4468
+ z-index: 3;
4469
+ color: rgba(0, 0, 0, 0.9);
4470
+ fill: rgba(0, 0, 0, 0.9);
4471
+ }
4472
+
4473
+ .flatpickr-months .flatpickr-prev-month.flatpickr-disabled,
4474
+ .flatpickr-months .flatpickr-next-month.flatpickr-disabled {
4475
+ display: none;
4476
+ }
4477
+
4478
+ .flatpickr-months .flatpickr-prev-month i,
4479
+ .flatpickr-months .flatpickr-next-month i {
4480
+ position: relative;
4481
+ }
4482
+
4483
+ .flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,
4484
+ .flatpickr-months .flatpickr-next-month.flatpickr-prev-month {
4485
+ /*
4486
+ /*rtl:begin:ignore*/
4487
+ /*
4488
+ */
4489
+ left: 0;
4490
+ /*
4491
+ /*rtl:end:ignore*/
4492
+ /*
4493
+ */
4494
+ }
4495
+
4496
+ /*
4497
+ /*rtl:begin:ignore*/
4498
+ /*
4499
+ /*rtl:end:ignore*/
4500
+ .flatpickr-months .flatpickr-prev-month.flatpickr-next-month,
4501
+ .flatpickr-months .flatpickr-next-month.flatpickr-next-month {
4502
+ /*
4503
+ /*rtl:begin:ignore*/
4504
+ /*
4505
+ */
4506
+ right: 0;
4507
+ /*
4508
+ /*rtl:end:ignore*/
4509
+ /*
4510
+ */
4511
+ }
4512
+
4513
+ /*
4514
+ /*rtl:begin:ignore*/
4515
+ /*
4516
+ /*rtl:end:ignore*/
4517
+ .flatpickr-months .flatpickr-prev-month:hover,
4518
+ .flatpickr-months .flatpickr-next-month:hover {
4519
+ color: #959ea9;
4520
+ }
4521
+
4522
+ .flatpickr-months .flatpickr-prev-month:hover svg,
4523
+ .flatpickr-months .flatpickr-next-month:hover svg {
4524
+ fill: #f64747;
4525
+ }
4526
+
4527
+ .flatpickr-months .flatpickr-prev-month svg,
4528
+ .flatpickr-months .flatpickr-next-month svg {
4529
+ width: 14px;
4530
+ height: 14px;
4531
+ }
4532
+
4533
+ .flatpickr-months .flatpickr-prev-month svg path,
4534
+ .flatpickr-months .flatpickr-next-month svg path {
4535
+ -webkit-transition: fill 0.1s;
4536
+ transition: fill 0.1s;
4537
+ fill: inherit;
4538
+ }
4539
+
4540
+ .numInputWrapper {
4541
+ position: relative;
4542
+ height: auto;
4543
+ }
4544
+
4545
+ .numInputWrapper input,
4546
+ .numInputWrapper span {
4547
+ display: inline-block;
4548
+ }
4549
+
4550
+ .numInputWrapper input {
4551
+ width: 100%;
4552
+ }
4553
+
4554
+ .numInputWrapper input::-ms-clear {
4555
+ display: none;
4556
+ }
4557
+
4558
+ .numInputWrapper input::-webkit-outer-spin-button,
4559
+ .numInputWrapper input::-webkit-inner-spin-button {
4560
+ margin: 0;
4561
+ -webkit-appearance: none;
4562
+ }
4563
+
4564
+ .numInputWrapper span {
4565
+ position: absolute;
4566
+ right: 0;
4567
+ width: 14px;
4568
+ padding: 0 4px 0 2px;
4569
+ height: 50%;
4570
+ line-height: 50%;
4571
+ opacity: 0;
4572
+ cursor: pointer;
4573
+ border: 1px solid rgba(57, 57, 57, 0.15);
4574
+ -webkit-box-sizing: border-box;
4575
+ box-sizing: border-box;
4576
+ }
4577
+
4578
+ .numInputWrapper span:hover {
4579
+ background: rgba(0, 0, 0, 0.1);
4580
+ }
4581
+
4582
+ .numInputWrapper span:active {
4583
+ background: rgba(0, 0, 0, 0.2);
4584
+ }
4585
+
4586
+ .numInputWrapper span:after {
4587
+ display: block;
4588
+ content: "";
4589
+ position: absolute;
4590
+ }
4591
+
4592
+ .numInputWrapper span.arrowUp {
4593
+ top: 0;
4594
+ border-bottom: 0;
4595
+ }
4596
+
4597
+ .numInputWrapper span.arrowUp:after {
4598
+ border-left: 4px solid transparent;
4599
+ border-right: 4px solid transparent;
4600
+ border-bottom: 4px solid rgba(57, 57, 57, 0.6);
4601
+ top: 26%;
4602
+ }
4603
+
4604
+ .numInputWrapper span.arrowDown {
4605
+ top: 50%;
4606
+ }
4607
+
4608
+ .numInputWrapper span.arrowDown:after {
4609
+ border-left: 4px solid transparent;
4610
+ border-right: 4px solid transparent;
4611
+ border-top: 4px solid rgba(57, 57, 57, 0.6);
4612
+ top: 40%;
4613
+ }
4614
+
4615
+ .numInputWrapper span svg {
4616
+ width: inherit;
4617
+ height: auto;
4618
+ }
4619
+
4620
+ .numInputWrapper span svg path {
4621
+ fill: rgba(0, 0, 0, 0.5);
4622
+ }
4623
+
4624
+ .numInputWrapper:hover {
4625
+ background: rgba(0, 0, 0, 0.05);
4626
+ }
4627
+
4628
+ .numInputWrapper:hover span {
4629
+ opacity: 1;
4630
+ }
4631
+
4632
+ .flatpickr-current-month {
4633
+ font-size: 135%;
4634
+ line-height: inherit;
4635
+ font-weight: 300;
4636
+ color: inherit;
4637
+ position: absolute;
4638
+ width: 75%;
4639
+ left: 12.5%;
4640
+ padding: 7.48px 0 0 0;
4641
+ line-height: 1;
4642
+ height: 34px;
4643
+ display: inline-block;
4644
+ text-align: center;
4645
+ -webkit-transform: translate3d(0px, 0px, 0px);
4646
+ transform: translate3d(0px, 0px, 0px);
4647
+ }
4648
+
4649
+ .flatpickr-current-month span.cur-month {
4650
+ font-family: inherit;
4651
+ font-weight: 700;
4652
+ color: inherit;
4653
+ display: inline-block;
4654
+ margin-left: 0.5ch;
4655
+ padding: 0;
4656
+ }
4657
+
4658
+ .flatpickr-current-month span.cur-month:hover {
4659
+ background: rgba(0, 0, 0, 0.05);
4660
+ }
4661
+
4662
+ .flatpickr-current-month .numInputWrapper {
4663
+ width: 6ch;
4664
+ width: 7ch\0;
4665
+ display: inline-block;
4666
+ }
4667
+
4668
+ .flatpickr-current-month .numInputWrapper span.arrowUp:after {
4669
+ border-bottom-color: rgba(0, 0, 0, 0.9);
4670
+ }
4671
+
4672
+ .flatpickr-current-month .numInputWrapper span.arrowDown:after {
4673
+ border-top-color: rgba(0, 0, 0, 0.9);
4674
+ }
4675
+
4676
+ .flatpickr-current-month input.cur-year {
4677
+ background: transparent;
4678
+ -webkit-box-sizing: border-box;
4679
+ box-sizing: border-box;
4680
+ color: inherit;
4681
+ cursor: text;
4682
+ padding: 0 0 0 0.5ch;
4683
+ margin: 0;
4684
+ display: inline-block;
4685
+ font-size: inherit;
4686
+ font-family: inherit;
4687
+ font-weight: 300;
4688
+ line-height: inherit;
4689
+ height: auto;
4690
+ border: 0;
4691
+ border-radius: 0;
4692
+ vertical-align: initial;
4693
+ -webkit-appearance: textfield;
4694
+ -moz-appearance: textfield;
4695
+ appearance: textfield;
4696
+ }
4697
+
4698
+ .flatpickr-current-month input.cur-year:focus {
4699
+ outline: 0;
4700
+ }
4701
+
4702
+ .flatpickr-current-month input.cur-year[disabled],
4703
+ .flatpickr-current-month input.cur-year[disabled]:hover {
4704
+ font-size: 100%;
4705
+ color: rgba(0, 0, 0, 0.5);
4706
+ background: transparent;
4707
+ pointer-events: none;
4708
+ }
4709
+
4710
+ .flatpickr-current-month .flatpickr-monthDropdown-months {
4711
+ appearance: menulist;
4712
+ background: transparent;
4713
+ border: none;
4714
+ border-radius: 0;
4715
+ box-sizing: border-box;
4716
+ color: inherit;
4717
+ cursor: pointer;
4718
+ font-size: inherit;
4719
+ font-family: inherit;
4720
+ font-weight: 300;
4721
+ height: auto;
4722
+ line-height: inherit;
4723
+ margin: -1px 0 0 0;
4724
+ outline: none;
4725
+ padding: 0 0 0 0.5ch;
4726
+ position: relative;
4727
+ vertical-align: initial;
4728
+ -webkit-box-sizing: border-box;
4729
+ -webkit-appearance: menulist;
4730
+ -moz-appearance: menulist;
4731
+ width: auto;
4732
+ }
4733
+
4734
+ .flatpickr-current-month .flatpickr-monthDropdown-months:focus,
4735
+ .flatpickr-current-month .flatpickr-monthDropdown-months:active {
4736
+ outline: none;
4737
+ }
4738
+
4739
+ .flatpickr-current-month .flatpickr-monthDropdown-months:hover {
4740
+ background: rgba(0, 0, 0, 0.05);
4741
+ }
4742
+
4743
+ .flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month {
4744
+ background-color: transparent;
4745
+ outline: none;
4746
+ padding: 0;
4747
+ }
4748
+
4749
+ .flatpickr-weekdays {
4750
+ background: transparent;
4751
+ text-align: center;
4752
+ overflow: hidden;
4753
+ width: 100%;
4754
+ display: -webkit-box;
4755
+ display: -webkit-flex;
4756
+ display: -ms-flexbox;
4757
+ display: flex;
4758
+ -webkit-box-align: center;
4759
+ -webkit-align-items: center;
4760
+ -ms-flex-align: center;
4761
+ align-items: center;
4762
+ height: 28px;
4763
+ }
4764
+
4765
+ .flatpickr-weekdays .flatpickr-weekdaycontainer {
4766
+ display: -webkit-box;
4767
+ display: -webkit-flex;
4768
+ display: -ms-flexbox;
4769
+ display: flex;
4770
+ -webkit-box-flex: 1;
4771
+ -webkit-flex: 1;
4772
+ -ms-flex: 1;
4773
+ flex: 1;
4774
+ }
4775
+
4776
+ span.flatpickr-weekday {
4777
+ cursor: default;
4778
+ font-size: 90%;
4779
+ background: transparent;
4780
+ color: rgba(0, 0, 0, 0.54);
4781
+ line-height: 1;
4782
+ margin: 0;
4783
+ text-align: center;
4784
+ display: block;
4785
+ -webkit-box-flex: 1;
4786
+ -webkit-flex: 1;
4787
+ -ms-flex: 1;
4788
+ flex: 1;
4789
+ font-weight: bolder;
4790
+ }
4791
+
4792
+ .dayContainer,
4793
+ .flatpickr-weeks {
4794
+ padding: 1px 0 0 0;
4795
+ }
4796
+
4797
+ .flatpickr-days {
4798
+ position: relative;
4799
+ overflow: hidden;
4800
+ display: -webkit-box;
4801
+ display: -webkit-flex;
4802
+ display: -ms-flexbox;
4803
+ display: flex;
4804
+ -webkit-box-align: start;
4805
+ -webkit-align-items: flex-start;
4806
+ -ms-flex-align: start;
4807
+ align-items: flex-start;
4808
+ width: 307.875px;
4809
+ }
4810
+
4811
+ .flatpickr-days:focus {
4812
+ outline: 0;
4813
+ }
4814
+
4815
+ .dayContainer {
4816
+ padding: 0;
4817
+ outline: 0;
4818
+ text-align: left;
4819
+ width: 307.875px;
4820
+ min-width: 307.875px;
4821
+ max-width: 307.875px;
4822
+ -webkit-box-sizing: border-box;
4823
+ box-sizing: border-box;
4824
+ display: inline-block;
4825
+ display: -ms-flexbox;
4826
+ display: -webkit-box;
4827
+ display: -webkit-flex;
4828
+ display: flex;
4829
+ -webkit-flex-wrap: wrap;
4830
+ flex-wrap: wrap;
4831
+ -ms-flex-wrap: wrap;
4832
+ -ms-flex-pack: justify;
4833
+ -webkit-justify-content: space-around;
4834
+ justify-content: space-around;
4835
+ -webkit-transform: translate3d(0px, 0px, 0px);
4836
+ transform: translate3d(0px, 0px, 0px);
4837
+ opacity: 1;
4838
+ }
4839
+
4840
+ .dayContainer + .dayContainer {
4841
+ -webkit-box-shadow: -1px 0 0 #e6e6e6;
4842
+ box-shadow: -1px 0 0 #e6e6e6;
4843
+ }
4844
+
4845
+ .flatpickr-day {
4846
+ background: none;
4847
+ border: 1px solid transparent;
4848
+ border-radius: 150px;
4849
+ -webkit-box-sizing: border-box;
4850
+ box-sizing: border-box;
4851
+ color: #393939;
4852
+ cursor: pointer;
4853
+ font-weight: 400;
4854
+ width: 14.2857143%;
4855
+ -webkit-flex-basis: 14.2857143%;
4856
+ -ms-flex-preferred-size: 14.2857143%;
4857
+ flex-basis: 14.2857143%;
4858
+ max-width: 39px;
4859
+ height: 39px;
4860
+ line-height: 39px;
4861
+ margin: 0;
4862
+ display: inline-block;
4863
+ position: relative;
4864
+ -webkit-box-pack: center;
4865
+ -webkit-justify-content: center;
4866
+ -ms-flex-pack: center;
4867
+ justify-content: center;
4868
+ text-align: center;
4869
+ }
4870
+
4871
+ .flatpickr-day.inRange,
4872
+ .flatpickr-day.prevMonthDay.inRange,
4873
+ .flatpickr-day.nextMonthDay.inRange,
4874
+ .flatpickr-day.today.inRange,
4875
+ .flatpickr-day.prevMonthDay.today.inRange,
4876
+ .flatpickr-day.nextMonthDay.today.inRange,
4877
+ .flatpickr-day:hover,
4878
+ .flatpickr-day.prevMonthDay:hover,
4879
+ .flatpickr-day.nextMonthDay:hover,
4880
+ .flatpickr-day:focus,
4881
+ .flatpickr-day.prevMonthDay:focus,
4882
+ .flatpickr-day.nextMonthDay:focus {
4883
+ cursor: pointer;
4884
+ outline: 0;
4885
+ background: #e6e6e6;
4886
+ border-color: #e6e6e6;
4887
+ }
4888
+
4889
+ .flatpickr-day.today {
4890
+ border-color: #959ea9;
4891
+ }
4892
+
4893
+ .flatpickr-day.today:hover,
4894
+ .flatpickr-day.today:focus {
4895
+ border-color: #959ea9;
4896
+ background: #959ea9;
4897
+ color: #fff;
4898
+ }
4899
+
4900
+ .flatpickr-day.selected,
4901
+ .flatpickr-day.startRange,
4902
+ .flatpickr-day.endRange,
4903
+ .flatpickr-day.selected.inRange,
4904
+ .flatpickr-day.startRange.inRange,
4905
+ .flatpickr-day.endRange.inRange,
4906
+ .flatpickr-day.selected:focus,
4907
+ .flatpickr-day.startRange:focus,
4908
+ .flatpickr-day.endRange:focus,
4909
+ .flatpickr-day.selected:hover,
4910
+ .flatpickr-day.startRange:hover,
4911
+ .flatpickr-day.endRange:hover,
4912
+ .flatpickr-day.selected.prevMonthDay,
4913
+ .flatpickr-day.startRange.prevMonthDay,
4914
+ .flatpickr-day.endRange.prevMonthDay,
4915
+ .flatpickr-day.selected.nextMonthDay,
4916
+ .flatpickr-day.startRange.nextMonthDay,
4917
+ .flatpickr-day.endRange.nextMonthDay {
4918
+ background: #569ff7;
4919
+ -webkit-box-shadow: none;
4920
+ box-shadow: none;
4921
+ color: #fff;
4922
+ border-color: #569ff7;
4923
+ }
4924
+
4925
+ .flatpickr-day.selected.startRange,
4926
+ .flatpickr-day.startRange.startRange,
4927
+ .flatpickr-day.endRange.startRange {
4928
+ border-radius: 50px 0 0 50px;
4929
+ }
4930
+
4931
+ .flatpickr-day.selected.endRange,
4932
+ .flatpickr-day.startRange.endRange,
4933
+ .flatpickr-day.endRange.endRange {
4934
+ border-radius: 0 50px 50px 0;
4935
+ }
4936
+
4937
+ .flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)),
4938
+ .flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)),
4939
+ .flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)) {
4940
+ -webkit-box-shadow: -10px 0 0 #569ff7;
4941
+ box-shadow: -10px 0 0 #569ff7;
4942
+ }
4943
+
4944
+ .flatpickr-day.selected.startRange.endRange,
4945
+ .flatpickr-day.startRange.startRange.endRange,
4946
+ .flatpickr-day.endRange.startRange.endRange {
4947
+ border-radius: 50px;
4948
+ }
4949
+
4950
+ .flatpickr-day.inRange {
4951
+ border-radius: 0;
4952
+ -webkit-box-shadow: -5px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;
4953
+ box-shadow: -5px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;
4954
+ }
4955
+
4956
+ .flatpickr-day.flatpickr-disabled,
4957
+ .flatpickr-day.flatpickr-disabled:hover,
4958
+ .flatpickr-day.prevMonthDay,
4959
+ .flatpickr-day.nextMonthDay,
4960
+ .flatpickr-day.notAllowed,
4961
+ .flatpickr-day.notAllowed.prevMonthDay,
4962
+ .flatpickr-day.notAllowed.nextMonthDay {
4963
+ color: rgba(57, 57, 57, 0.3);
4964
+ background: transparent;
4965
+ border-color: transparent;
4966
+ cursor: default;
4967
+ }
4968
+
4969
+ .flatpickr-day.flatpickr-disabled,
4970
+ .flatpickr-day.flatpickr-disabled:hover {
4971
+ cursor: not-allowed;
4972
+ color: rgba(57, 57, 57, 0.1);
4973
+ }
4974
+
4975
+ .flatpickr-day.week.selected {
4976
+ border-radius: 0;
4977
+ -webkit-box-shadow: -5px 0 0 #569ff7, 5px 0 0 #569ff7;
4978
+ box-shadow: -5px 0 0 #569ff7, 5px 0 0 #569ff7;
4979
+ }
4980
+
4981
+ .flatpickr-day.hidden {
4982
+ visibility: hidden;
4983
+ }
4984
+
4985
+ .rangeMode .flatpickr-day {
4986
+ margin-top: 1px;
4987
+ }
4988
+
4989
+ .flatpickr-weekwrapper {
4990
+ float: left;
4991
+ }
4992
+
4993
+ .flatpickr-weekwrapper .flatpickr-weeks {
4994
+ padding: 0 12px;
4995
+ -webkit-box-shadow: 1px 0 0 #e6e6e6;
4996
+ box-shadow: 1px 0 0 #e6e6e6;
4997
+ }
4998
+
4999
+ .flatpickr-weekwrapper .flatpickr-weekday {
5000
+ float: none;
5001
+ width: 100%;
5002
+ line-height: 28px;
5003
+ }
5004
+
5005
+ .flatpickr-weekwrapper span.flatpickr-day,
5006
+ .flatpickr-weekwrapper span.flatpickr-day:hover {
5007
+ display: block;
5008
+ width: 100%;
5009
+ max-width: none;
5010
+ color: rgba(57, 57, 57, 0.3);
5011
+ background: transparent;
5012
+ cursor: default;
5013
+ border: none;
5014
+ }
5015
+
5016
+ .flatpickr-innerContainer {
5017
+ display: block;
5018
+ display: -webkit-box;
5019
+ display: -webkit-flex;
5020
+ display: -ms-flexbox;
5021
+ display: flex;
5022
+ -webkit-box-sizing: border-box;
5023
+ box-sizing: border-box;
5024
+ overflow: hidden;
5025
+ }
5026
+
5027
+ .flatpickr-rContainer {
5028
+ display: inline-block;
5029
+ padding: 0;
5030
+ -webkit-box-sizing: border-box;
5031
+ box-sizing: border-box;
5032
+ }
5033
+
5034
+ .flatpickr-time {
5035
+ text-align: center;
5036
+ outline: 0;
5037
+ display: block;
5038
+ height: 0;
5039
+ line-height: 40px;
5040
+ max-height: 40px;
5041
+ -webkit-box-sizing: border-box;
5042
+ box-sizing: border-box;
5043
+ overflow: hidden;
5044
+ display: -webkit-box;
5045
+ display: -webkit-flex;
5046
+ display: -ms-flexbox;
5047
+ display: flex;
5048
+ }
5049
+
5050
+ .flatpickr-time:after {
5051
+ content: "";
5052
+ display: table;
5053
+ clear: both;
5054
+ }
5055
+
5056
+ .flatpickr-time .numInputWrapper {
5057
+ -webkit-box-flex: 1;
5058
+ -webkit-flex: 1;
5059
+ -ms-flex: 1;
5060
+ flex: 1;
5061
+ width: 40%;
5062
+ height: 40px;
5063
+ float: left;
5064
+ }
5065
+
5066
+ .flatpickr-time .numInputWrapper span.arrowUp:after {
5067
+ border-bottom-color: #393939;
5068
+ }
5069
+
5070
+ .flatpickr-time .numInputWrapper span.arrowDown:after {
5071
+ border-top-color: #393939;
5072
+ }
5073
+
5074
+ .flatpickr-time.hasSeconds .numInputWrapper {
5075
+ width: 26%;
5076
+ }
5077
+
5078
+ .flatpickr-time.time24hr .numInputWrapper {
5079
+ width: 49%;
5080
+ }
5081
+
5082
+ .flatpickr-time input {
5083
+ background: transparent;
5084
+ -webkit-box-shadow: none;
5085
+ box-shadow: none;
5086
+ border: 0;
5087
+ border-radius: 0;
5088
+ text-align: center;
5089
+ margin: 0;
5090
+ padding: 0;
5091
+ height: inherit;
5092
+ line-height: inherit;
5093
+ color: #393939;
5094
+ font-size: 14px;
5095
+ position: relative;
5096
+ -webkit-box-sizing: border-box;
5097
+ box-sizing: border-box;
5098
+ -webkit-appearance: textfield;
5099
+ -moz-appearance: textfield;
5100
+ appearance: textfield;
5101
+ }
5102
+
5103
+ .flatpickr-time input.flatpickr-hour {
5104
+ font-weight: bold;
5105
+ }
5106
+
5107
+ .flatpickr-time input.flatpickr-minute,
5108
+ .flatpickr-time input.flatpickr-second {
5109
+ font-weight: 400;
5110
+ }
5111
+
5112
+ .flatpickr-time input:focus {
5113
+ outline: 0;
5114
+ border: 0;
5115
+ }
5116
+
5117
+ .flatpickr-time .flatpickr-time-separator,
5118
+ .flatpickr-time .flatpickr-am-pm {
5119
+ height: inherit;
5120
+ float: left;
5121
+ line-height: inherit;
5122
+ color: #393939;
5123
+ font-weight: bold;
5124
+ width: 2%;
5125
+ -webkit-user-select: none;
5126
+ -moz-user-select: none;
5127
+ -ms-user-select: none;
5128
+ user-select: none;
5129
+ -webkit-align-self: center;
5130
+ -ms-flex-item-align: center;
5131
+ align-self: center;
5132
+ }
5133
+
5134
+ .flatpickr-time .flatpickr-am-pm {
5135
+ outline: 0;
5136
+ width: 18%;
5137
+ cursor: pointer;
5138
+ text-align: center;
5139
+ font-weight: 400;
5140
+ }
5141
+
5142
+ .flatpickr-time input:hover,
5143
+ .flatpickr-time .flatpickr-am-pm:hover,
5144
+ .flatpickr-time input:focus,
5145
+ .flatpickr-time .flatpickr-am-pm:focus {
5146
+ background: #eee;
5147
+ }
5148
+
5149
+ .flatpickr-input[readonly] {
5150
+ cursor: pointer;
5151
+ }
5152
+
5153
+ @-webkit-keyframes fpFadeInDown {
5154
+ from {
5155
+ opacity: 0;
5156
+ -webkit-transform: translate3d(0, -20px, 0);
5157
+ transform: translate3d(0, -20px, 0);
5158
+ }
5159
+ to {
5160
+ opacity: 1;
5161
+ -webkit-transform: translate3d(0, 0, 0);
5162
+ transform: translate3d(0, 0, 0);
5163
+ }
5164
+ }
5165
+ @keyframes fpFadeInDown {
5166
+ from {
5167
+ opacity: 0;
5168
+ -webkit-transform: translate3d(0, -20px, 0);
5169
+ transform: translate3d(0, -20px, 0);
5170
+ }
5171
+ to {
5172
+ opacity: 1;
5173
+ -webkit-transform: translate3d(0, 0, 0);
5174
+ transform: translate3d(0, 0, 0);
5175
+ }
5176
+ }
vendor/codestar-framework/assets/css/style.min.css CHANGED
@@ -1 +1 @@
1
- .csf{position:relative}.csf label{padding:0;margin:0;display:inline-block}.csf-ab-icon{top:2px}#screen-meta-links+.csf-options{margin-top:40px}.csf-options{margin-top:20px;margin-right:20px}.csf-header{position:relative}.csf-header-inner{padding:25px;transition:box-shadow .3s ease}.csf-header-inner h1{float:left;font-size:1.5em;line-height:26px;font-weight:400;margin:0}.csf-header-inner h1 small{font-size:11px;font-weight:500}.csf-sticky .csf-header-inner{position:fixed;z-index:99;top:32px;box-shadow:0 5px 10px rgba(0,0,0,.1)}.csf-buttons{float:right}.csf-buttons .button{margin:0 2px;line-height:26px}.csf-buttons .button:focus{outline:0!important;box-shadow:none!important}.csf-buttons .csf-save{min-width:72px}.csf-header-left{float:left}.csf-header-right{float:right}.csf-nav{display:block;position:relative;z-index:10;float:left}.csf-nav ul{clear:left;margin:0;list-style-type:none}.csf-nav ul li{margin-bottom:0}.csf-nav ul li a{font-size:13px;position:relative;display:block;padding:14px 12px;text-decoration:none;transition-property:color,background;transition-duration:.2s;transition-timing-function:ease}.csf-nav ul li a:focus{outline:0;box-shadow:none}.csf-nav ul li .csf-arrow:after{content:"\f054";display:inline-block;font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;font-size:9px;line-height:1;position:absolute;right:10px;top:50%;margin-top:-4px}.csf-nav ul li.csf-tab-expanded .csf-arrow:after{transform:rotate(90deg)}.csf-nav ul li.csf-tab-expanded ul{display:block}.csf-nav ul ul{display:none;position:relative}.csf-nav ul ul li a{font-size:12px;padding:12px 14px 12px 24px}.csf-nav .csf-tab-icon{width:20px;margin-right:5px;font-size:13px;text-align:center}.csf-nav .csf-label-error{margin-left:4px;vertical-align:top}.csf-nav-normal{width:225px}.csf-nav-normal+.csf-content{margin-left:225px}.csf-nav-inline{width:100%}.csf-nav-inline ul li{display:inline-block;vertical-align:top}.csf-nav-background{position:absolute;top:0;left:0;bottom:0;z-index:9;width:225px}.csf-wrapper{position:relative}.csf-content{position:relative;background-color:#fff}.csf-sections{float:left;width:100%}.csf-section-title{display:none;padding:20px 30px;background-color:#f5f5f5;border-top:1px solid #eee;border-bottom:1px solid #eee}.csf-section-title h3{margin:0;padding:0;font-size:13px;font-weight:700;text-transform:uppercase}.csf-section-title .csf-section-icon{margin-right:5px}.csf-footer{padding:20px;font-size:11px}.csf-copyright{float:left;margin-top:5px}.csf-search-all .csf-nav,.csf-search-all .csf-nav-background,.csf-show-all .csf-nav,.csf-show-all .csf-nav-background{display:none}.csf-search-all .csf-content,.csf-show-all .csf-content{margin-left:0}.csf-search-all .csf-section,.csf-search-all .csf-section-title,.csf-show-all .csf-section,.csf-show-all .csf-section-title{display:block!important}.csf-search-all .csf-section-title{display:none!important}.csf-expand-all{float:left;padding:0 8px;margin-right:4px;z-index:1;font-size:13px;line-height:30px;cursor:pointer;user-select:none;border-radius:2px;transition:all .2s}.csf-expand-all span{font-size:11px;vertical-align:middle}.csf-search{float:left}.csf-search input{margin:0 2px 0 0;border:none;font-size:12px;line-height:30px;min-height:30px;text-align:inherit;padding:0 10px;border-radius:2px;box-shadow:none}.csf-search input:focus{box-shadow:none}.csf-saving .csf-buttons,.csf-saving .csf-content{cursor:default;pointer-events:none;opacity:.5}.csf-metabox{margin:-6px -12px -12px -12px}.csf-metabox .csf-field{padding:20px}.csf-metabox .csf-section-title{padding:20px}.block-editor-page .csf-metabox{margin:-6px -14px -14px -14px}.block-editor-editor-skeleton__content .csf-metabox{border-left:1px solid #e2e4e7;border-right:1px solid #e2e4e7}.csf-sections-reset{float:left;width:100%;text-align:right;border-top:1px solid #eee}.csf-sections-reset .csf-button-cancel,.csf-sections-reset input{display:none}.csf-sections-reset label{padding:10px}.csf-sections-reset span{-webkit-user-select:none;user-select:none}.csf-sections-reset input:checked~.csf-button-reset{display:none}.csf-sections-reset input:checked~.csf-button-cancel{display:inline-block}#side-sortables .csf-section-title{padding:12px}#side-sortables .csf-field{padding:10px 15px}#side-sortables .csf-field .csf-title{float:none;width:100%;margin-bottom:6px}#side-sortables .csf-field .csf-fieldset{float:none;width:100%}#side-sortables .csf-field-text input{width:100%}#side-sortables .csf-notice{padding:10px 15px}.csf-comment-metabox{margin:-6px -12px -12px -12px}.csf-comment-metabox .csf-field{padding:20px}.csf-comment-metabox .csf-section-title{padding:20px}.csf-tooltip{position:absolute;z-index:5000001;font-size:12px;line-height:1.4;text-align:center;text-decoration:none;padding:6px 12px;max-width:200px;color:#fff;background-color:#000;background-color:rgba(0,0,0,.85);border-radius:4px}.csf-theme-dark .csf-header-inner{background-color:#050505}.csf-theme-dark .csf-header-inner h1{color:#fff}.csf-theme-dark .csf-header-inner h1 small{color:#555}.csf-theme-dark .csf-expand-all{color:#999;background-color:#222}.csf-theme-dark .csf-expand-all:hover{color:#fff;background-color:#333}.csf-theme-dark .csf-search input{color:#fff;background-color:#222}.csf-theme-dark .csf-search:focus{background-color:#444}.csf-theme-dark .csf-search::-webkit-input-placeholder{color:#666}.csf-theme-dark .csf-nav ul li a{color:#999;border-color:#2f2f2f;background-color:#222}.csf-theme-dark .csf-nav ul li a:hover{color:#fff}.csf-theme-dark .csf-nav ul li .csf-active{color:#fff;background-color:#111}.csf-theme-dark .csf-nav ul ul li a{border-color:#2f2f2f;background-color:#191919}.csf-theme-dark .csf-nav ul ul li .csf-active{background-color:#101010}.csf-theme-dark .csf-nav ul ul:before{background-color:rgba(34,34,34,.75)}.csf-theme-dark .csf-nav>ul>li:last-child>a{border:none}.csf-theme-dark .csf-nav-normal ul li a{border-bottom-width:1px;border-bottom-style:solid}.csf-theme-dark .csf-nav-normal ul li .csf-active:after{content:" ";position:absolute;right:0;top:50%;height:0;width:0;pointer-events:none;border:solid transparent;border-right-color:#fff;border-width:4px;margin-top:-4px}.csf-theme-dark .csf-nav-inline{background-color:#222}.csf-theme-dark .csf-nav-inline ul li a{text-align:center;border-right-width:1px;border-right-style:solid}.csf-theme-dark .csf-nav-inline ul li .csf-active:after{content:" ";position:absolute;left:50%;bottom:0;height:0;width:0;pointer-events:none;border:solid transparent;border-bottom-color:#fff;border-width:4px;margin-left:-4px}.csf-theme-dark .csf-nav-background{background-color:#222}.csf-theme-dark .csf-footer{color:#555;background-color:#050505}.csf-theme-light .csf-container{border:1px solid #ccd0d4;box-shadow:0 0 15 rgba(0,0,0,.04)}.csf-theme-light .csf-header-inner{border-bottom:1px solid #ccd0d4;background-color:#f5f5f5;background:linear-gradient(#fefefe,#f5f5f5)}.csf-theme-light .csf-header-inner h1 small{color:#999}.csf-theme-light .csf-expand-all{color:#999;background-color:#eee}.csf-theme-light .csf-expand-all:hover{color:#555}.csf-theme-light .csf-search input{color:#555;background-color:#eee}.csf-theme-light .csf-search input::-webkit-input-placeholder{color:#999}.csf-theme-light .csf-nav ul li a{font-weight:500;color:#444;background-color:#f5f5f5}.csf-theme-light .csf-nav ul li a:hover{color:#111;background-color:#fff}.csf-theme-light .csf-nav ul li .csf-active{color:#111;background-color:#fff}.csf-theme-light .csf-nav ul ul li a{background-color:#eee}.csf-theme-light .csf-nav-normal>ul{margin-right:-1px;margin-bottom:-1px}.csf-theme-light .csf-nav-normal>ul li a{border-bottom:1px solid #ccd0d4;border-right:1px solid #ccd0d4}.csf-theme-light .csf-nav-normal>ul li .csf-active{border-right-color:#fff}.csf-theme-light .csf-nav-inline{background-color:#f5f5f5;border-bottom:1px solid #ccd0d4}.csf-theme-light .csf-nav-inline>ul{margin-bottom:-1px}.csf-theme-light .csf-nav-inline>ul li a{text-align:center;border-right:1px solid #ccd0d4;border-bottom:1px solid #ccd0d4}.csf-theme-light .csf-nav-inline>ul li .csf-active{border-bottom-color:#fff}.csf-theme-light .csf-nav-inline>ul ul{display:none!important}.csf-theme-light .csf-nav-inline .csf-arrow:after{display:none}.csf-theme-light .csf-nav-background{background-color:#f5f5f5;border-right:1px solid #ccd0d4}.csf-theme-light .csf-footer{color:#555;border-top:1px solid #ccd0d4;background-color:#f5f5f5;background:linear-gradient(#fafafa,#f5f5f5)}.csf-field{position:relative;padding:30px}.csf-field+.csf-field{border-top:1px solid #eee}.csf-field p:first-child{margin-top:0}.csf-field p:last-child{margin-bottom:0}.csf-field:after,.csf-field:before{content:" ";display:table}.csf-field:after{clear:both}.csf-field h4{margin-top:0}.csf-field .csf-title{position:relative;width:20%;float:left}.csf-field .csf-title h4{margin:0;color:#23282d}.csf-field .csf-fieldset{float:right;width:calc(80% - 20px)}.csf-pseudo-field{padding:0 5px 0 0!important;display:inline-block}.csf-pseudo-field+.csf-pseudo-field{border:0}.csf-pseudo-field pre{display:none}.csf-field-accordion .csf-accordion-item{position:relative;margin-bottom:5px}.csf-field-accordion .csf-accordion-item:last-child{margin-bottom:0}.csf-field-accordion .csf-accordion-item h4{font-size:1em}.csf-field-accordion .csf-accordion-title{display:block;cursor:pointer;position:relative;margin:0;padding:15px;min-height:0;font-size:100%;user-select:none;border:1px solid #ccd0d4;background-color:#fafafa;box-shadow:0 1px 1px rgba(0,0,0,.04);transition:border-color .15s}.csf-field-accordion .csf-accordion-title:active,.csf-field-accordion .csf-accordion-title:focus,.csf-field-accordion .csf-accordion-title:hover{outline:0;border-color:#999}.csf-field-accordion .csf-accordion-title .csf--icon{width:20px;text-align:center;margin-right:2px}.csf-field-accordion .csf-accordion-icon{width:16px;text-align:center}.csf-field-accordion .csf-accordion-content{display:none;padding:0;border:1px solid #ccd0d4;border-top:none;background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,.04)}.csf-field-accordion .csf-accordion-content>.csf-field{padding:15px}.csf-field-accordion .csf-accordion-open{display:block}.csf-field-background .csf-field{border:0!important;padding:0;margin-bottom:6px;margin-right:6px}.csf-field-background .csf--title{color:#777;font-size:12px}.csf-field-background .csf--background-colors{display:flex;flex-wrap:wrap}.csf-field-background .csf--background-attributes{display:flex;flex-wrap:wrap}.csf-field-background .csf--background-attributes select{min-width:100%;margin:0}.csf-field-background .csf--background-attributes .csf-field{flex:1}.csf-field-background .csf--attributes-hidden{display:none}.csf-field-backup textarea{width:100%;min-height:200px;margin-bottom:5px}.csf-field-backup small{display:inline-block;margin:5px}.csf-field-backup hr{margin:20px 0;border:none;border-bottom:1px solid #e5e5e5}.csf-field-border .csf--inputs,.csf-field-dimensions .csf--inputs,.csf-field-spacing .csf--inputs{float:left;display:flex;flex-wrap:wrap}.csf-field-border .csf--input,.csf-field-dimensions .csf--input,.csf-field-spacing .csf--input{display:flex;padding-right:6px;padding-bottom:4px;box-sizing:border-box}.csf-field-border .csf--input select,.csf-field-dimensions .csf--input select,.csf-field-spacing .csf--input select{margin:0}.csf-field-border .csf--input input,.csf-field-dimensions .csf--input input,.csf-field-spacing .csf--input input{position:relative;z-index:1;margin:0;width:65px;max-width:100%;text-align:center}.csf-field-border .csf--color,.csf-field-dimensions .csf--color,.csf-field-spacing .csf--color{float:left}.csf-field-border .csf--label,.csf-field-dimensions .csf--label,.csf-field-spacing .csf--label{display:flex;flex-direction:column;justify-content:center;user-select:none;min-width:20px;max-width:100%;padding:0 4px;font-size:12px;text-align:center;color:#555;border:1px solid #7b776c;background-color:#f5f5f5}.csf-field-border .csf--icon,.csf-field-dimensions .csf--icon,.csf-field-spacing .csf--icon{border-right:0;border-radius:4px 0 0 4px}.csf-field-border .csf--icon+input,.csf-field-dimensions .csf--icon+input,.csf-field-spacing .csf--icon+input{border-top-left-radius:0!important;border-bottom-left-radius:0!important}.csf-field-border .csf--unit,.csf-field-dimensions .csf--unit,.csf-field-spacing .csf--unit{border-left:0;border-radius:0 4px 4px 0}.csf-field-border .csf--is-unit,.csf-field-dimensions .csf--is-unit,.csf-field-spacing .csf--is-unit{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.csf-field-button_set .csf--buttons{display:inline-block}.csf-field-button_set .csf--button{position:relative;z-index:1;float:left;cursor:pointer;padding:7px 14px;min-width:16px;text-align:center;color:#555;border:1px solid #ccc;background-color:#f7f7f7;user-select:none;box-shadow:0 1px 0 rgba(0,0,0,.1)}.csf-field-button_set .csf--button:first-child{border-radius:4px 0 0 4px}.csf-field-button_set .csf--button:last-child{border-radius:0 4px 4px 0}.csf-field-button_set .csf--button:not(:first-child){margin-left:-1px}.csf-field-button_set .csf--button:hover{background-color:#eee}.csf-field-button_set .csf--active,.csf-field-button_set .csf--active:hover{z-index:2;color:#fff;border-color:#006799;background-color:#0085ba}.csf-field-button_set input{display:none}.csf-field-checkbox ul,.csf-field-radio ul{margin:0;padding:0;list-style-type:none;overflow-y:auto;max-height:305px}.csf-field-checkbox ul li,.csf-field-radio ul li{margin-bottom:6px}.csf-field-checkbox ul ul,.csf-field-radio ul ul{max-height:none}.csf-field-checkbox ul ul li,.csf-field-radio ul ul li{margin-left:8px}.csf-field-checkbox ul ul li:first-child,.csf-field-radio ul ul li:first-child{margin-left:0}.csf-field-checkbox input,.csf-field-radio input{margin:0 1px}.csf-field-checkbox .csf--inline-list li,.csf-field-radio .csf--inline-list li{display:inline-block;margin-right:15px}.csf-field-checkbox .csf--text,.csf-field-radio .csf--text{margin-left:5px;vertical-align:middle}.csf-field-checkbox .csf-checker,.csf-field-radio .csf-checker{cursor:pointer}.csf-field-code_editor .CodeMirror{width:100%;height:400px}.csf-field-code_editor .cm-s-default{border:1px solid #ccd0d4}.csf-field-code_editor textarea{width:100%;height:400px}.csf-field-color>input{opacity:.75;width:115px;max-width:100%}.csf-field-color .button.wp-picker-clear{padding:0 8px;margin-left:6px;line-height:2.54545455;min-height:30px}.csf-field-color_group .csf--left{float:left;margin-right:10px;margin-bottom:5px}.csf-field-color_group .csf--title{color:#999;margin-bottom:5px}.csf-field-fieldset .csf-fieldset-content{border:1px solid #ccd0d4;background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,.04)}.csf-field-fieldset .csf-fieldset-content>.csf-field{padding:15px}.csf-field-fieldset .csf-field-subheading{font-size:13px}.csf-field-date input{margin:0}.csf-field-date .csf--to{margin-left:7px}.csf-datepicker-wrapper{margin-top:5px;width:auto;background-color:#fff;z-index:9999999!important;box-shadow:0 0 30px rgba(0,0,0,.15)}.csf-datepicker-wrapper *{float:none;margin:0;padding:0;font-family:inherit;font-weight:400;font-style:normal;text-decoration:none;border:0;border-radius:0;box-shadow:none}.csf-datepicker-wrapper .ui-datepicker-header,.csf-datepicker-wrapper .ui-widget-header{color:#fff;background:#00a0d2}.csf-datepicker-wrapper .ui-datepicker-header .ui-state-hover{cursor:pointer}.csf-datepicker-wrapper .ui-datepicker-title{font-size:14px;line-height:40px;text-align:center}.csf-datepicker-wrapper .ui-datepicker-next,.csf-datepicker-wrapper .ui-datepicker-prev{position:static;top:auto;left:auto;right:auto;font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;font-size:12px;text-align:center;width:41px;height:40px;line-height:40px;color:#fff;background-color:rgba(255,255,255,.1);text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.csf-datepicker-wrapper .ui-datepicker-next span,.csf-datepicker-wrapper .ui-datepicker-prev span{display:none}.csf-datepicker-wrapper .ui-datepicker-prev{float:left}.csf-datepicker-wrapper .ui-datepicker-next{float:right}.csf-datepicker-wrapper .ui-datepicker-prev:before{content:'\f053'}.csf-datepicker-wrapper .ui-datepicker-next:before{content:'\f054'}.csf-datepicker-wrapper .ui-datepicker-next-hover,.csf-datepicker-wrapper .ui-datepicker-prev-hover{opacity:.75}.csf-datepicker-wrapper tbody .ui-datepicker-week-col{background-color:#f7f7f7}.csf-datepicker-wrapper .ui-datepicker-buttonpane{padding:10px;text-align:center;background-color:#f7f7f7}.csf-datepicker-wrapper .ui-datepicker-buttonpane button{cursor:pointer;margin:0 5px;padding:7px 14px;border:1px solid #eee;background-color:#fff}.csf-datepicker-wrapper select{margin:0 4px}.csf-datepicker-wrapper select option{color:#555}.csf-datepicker-wrapper table{font-size:13px;border-collapse:collapse;width:100%}.csf-datepicker-wrapper thead{color:#fff;background:#32373c}.csf-datepicker-wrapper th{text-align:center;padding:7px;border:1px solid #444}.csf-datepicker-wrapper td{text-align:center;border:1px solid #f4f4f4}.csf-datepicker-wrapper td.ui-datepicker-other-month{border:transparent}.csf-datepicker-wrapper td .ui-state-default{color:#555;width:auto;display:block;padding:6px 12px}.csf-datepicker-wrapper td .ui-state-active,.csf-datepicker-wrapper td .ui-state-hover{color:#fff;background-color:#0073aa}.csf-datepicker-wrapper td.ui-state-disabled .ui-state-default{opacity:.5}.csf-field-gallery ul{margin:0;padding:0;list-style-type:none}.csf-field-gallery ul li{display:inline-block;position:relative;padding:4px;margin:0 5px 10px 0;border:1px solid #ccc;background-color:#f9f9f9;border-radius:2px;box-shadow:0 1px 0 rgba(0,0,0,.08)}.csf-field-gallery ul li img{max-height:60px;display:inline-block;vertical-align:middle}.csf-field-gallery .button{margin-right:5px;margin-bottom:5px}.csf-field-group .csf-cloneable-hidden{display:none!important}.csf-field-group .csf-cloneable-wrapper{position:relative}.csf-field-group .csf-cloneable-item{display:none;position:relative;margin-bottom:5px}.csf-field-group .csf-cloneable-item h4{font-size:1em}.csf-field-group .ui-accordion .csf-cloneable-item{display:block}.csf-field-group .csf-cloneable-content{border:1px solid #ccd0d4;background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,.04)}.csf-field-group .csf-cloneable-content>.csf-field{padding:15px}.csf-field-group .csf-cloneable-title{display:block;cursor:pointer;position:relative;user-select:none;margin:0;padding:15px 65px 15px 10px;min-height:0;font-size:100%;border:1px solid #ccd0d4;background-color:#fafafa;box-shadow:0 1px 1px rgba(0,0,0,.04);transition:border-color .15s}.csf-field-group .csf-cloneable-title:active,.csf-field-group .csf-cloneable-title:focus,.csf-field-group .csf-cloneable-title:hover{border-color:#999;outline:0}.csf-field-group .csf-cloneable-helper{position:absolute;top:12px;right:10px;z-index:1;font-size:14px;line-height:1em}.csf-field-group .csf-cloneable-helper i{display:inline-block;cursor:pointer;padding:5px;color:#999}.csf-field-group .csf-cloneable-helper i:hover{color:#555}.csf-field-group .csf-cloneable-content{padding:0;border-top:0}.csf-field-group .csf-cloneable-title-number,.csf-field-group .csf-cloneable-title-prefix{margin-right:5px}.csf-field-group .csf-cloneable-alert{display:none;margin-bottom:5px;padding:10px 20px;color:#a94442;border:1px solid #ebccd1;background-color:#f2dede}.csf-field-group .widget-placeholder{margin-bottom:10px;border:1px dashed #f1c40f;background-color:#fffae4}.csf-field-group .csf-cloneable-header-icon{display:inline-block;text-align:center;font-size:14px;width:17px;text-indent:0;vertical-align:text-top}.csf-field-group .csf-cloneable-placeholder{background-color:#ddd;margin-top:4px;width:100px;height:10px;font-size:10px;line-height:10px;display:inline-block;vertical-align:top;border-radius:2px}.csf-field-icon .button{margin-right:5px}.csf-field-icon .csf-icon-select{display:flex}.csf-field-icon .csf-icon-preview:not(.hidden){display:flex}.csf-field-icon .csf-icon-preview i{display:flex;justify-content:center;align-items:center;width:30px;font-size:14px;margin-right:5px;text-align:center;vertical-align:top;color:#555;border:1px solid #ccc;background-color:#f7f7f7;border-radius:3px;box-shadow:0 1px 0 rgba(0,0,0,.08)}.csf-field-image_select .csf--image{display:inline-block;margin:0 5px 5px 0}.csf-field-image_select .csf--inline-list .csf--image{display:block}.csf-field-image_select figure{cursor:pointer;position:relative;display:inline-block;max-width:100%;margin:0;vertical-align:bottom;border:2px solid transparent;background-color:#fff;user-select:none;transition:all .2s}.csf-field-image_select figure:before{position:absolute;top:0;left:0;text-align:center;font-size:10px;font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;content:"\f00c";width:16px;height:16px;line-height:14px;opacity:0;color:#fff;background-color:#222;transition:opacity .2s}.csf-field-image_select .csf--active figure{border-color:#222;box-shadow:0 0 20px rgba(0,0,0,.2)}.csf-field-image_select .csf--active figure:before{opacity:1}.csf-field-image_select img{max-width:100%;height:auto;vertical-align:top}.csf-field-image_select input{display:none}.csf-field-link_color .csf--left{float:left;margin-right:10px;margin-bottom:5px}.csf-field-link_color .csf--title{color:#777;margin-bottom:5px}.csf-field-map input{width:100%}.csf-field-map input[type=text].ui-autocomplete-loading{background-position-x:calc(100% - 5px)}.csf-field-map .csf--map-search+.csf--map-osm-wrap{margin-top:10px}.csf-field-map .csf--map-osm-wrap{position:relative;padding:5px;border:1px solid #eee;background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,.04)}.csf-field-map .csf--map-osm{position:relative;z-index:1;min-height:250px}.csf-field-map .csf--map-inputs{margin-top:10px;display:flex;justify-content:space-between}.csf-field-map .csf--map-input{flex:1}.csf-field-map .csf--map-input:last-child{padding-left:10px}.csf-field-map label{display:block;color:#777;font-size:12px;margin:0 0 2px 0}.csf-map-ui-autocomplate{z-index:999999;border-radius:4px;overflow:hidden}.csf-field-media .csf--placeholder{display:flex;align-items:flex-start}.csf-field-media .csf--placeholder input{width:100%;margin:0}.csf-field-media .button{margin-left:5px}.csf-field-media .hidden+.button{margin-left:0}.csf-field-media .csf--preview{position:relative}.csf-field-palette .csf--palette{position:relative;display:inline-block;cursor:pointer;border:2px solid #ddd;margin-right:10px;margin-bottom:10px;user-select:none;-webkit-user-select:none;transition:all .2s}.csf-field-palette .csf--palette span{vertical-align:middle;display:inline-block;width:22px;height:60px;line-height:60px;overflow:hidden;text-indent:-999px}.csf-field-palette .csf--palette:before{position:absolute;top:0;left:0;text-align:center;font-size:10px;font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;content:"\f00c";width:16px;height:16px;line-height:14px;opacity:0;color:#fff;background-color:#222;transition:opacity .2s}.csf-field-palette .csf--active{border-color:#222;box-shadow:0 0 20px rgba(0,0,0,.2)}.csf-field-palette .csf--active:before{opacity:1}.csf-field-palette input{display:none}.csf-field-repeater .csf-field-text input{width:100%}.csf-field-repeater .csf-repeater-hidden{display:none!important}.csf-field-repeater .csf-repeater-wrapper .csf-repeater-item{display:table;width:100%;margin-bottom:5px;border:1px solid #eee}.csf-field-repeater .csf-repeater-wrapper .csf-repeater-item h4{font-size:1em}.csf-field-repeater .csf-repeater-content{width:100%;display:table-cell;vertical-align:middle;background-color:#fff}.csf-field-repeater .csf-repeater-content>.csf-field{padding:15px}.csf-field-repeater .csf-repeater-helper{width:100%;display:table-cell;vertical-align:middle;text-align:center;font-size:14px;line-height:1em;border-left:1px solid #eee;background-color:#f7f7f7}.csf-field-repeater .csf-repeater-helper i{display:inline-block;cursor:pointer;color:#999;padding:5px}.csf-field-repeater .csf-repeater-helper i:hover{color:#555}.csf-field-repeater .csf-repeater-helper-inner{width:75px}.csf-field-repeater .csf-repeater-alert{display:none;margin-bottom:5px;padding:10px 20px;color:#a94442;border:1px solid #ebccd1;background-color:#f2dede}.csf-field-repeater .widget-placeholder{height:50px;margin-bottom:3px;border:1px dashed #f1c40f;background-color:#fffae4}.csf-field-repeater .ui-sortable-helper{height:50px!important;overflow:hidden!important;border-color:#ccc!important;background-color:#eee!important;opacity:.5}.csf-field-repeater .ui-sortable-helper .csf-repeater-content,.csf-field-repeater .ui-sortable-helper .csf-repeater-helper{display:none}.csf-field-select .csf-fieldset{min-height:30px}.csf-field-select .csf-chosen{display:none}.csf-field-select select{max-width:100%;margin:0}.csf-field-select .csf-hide-select{display:none!important}.csf-field-slider .csf--wrap{display:flex;align-items:center}.csf-field-slider .csf--input{display:flex}.csf-field-slider .csf--unit{display:flex;justify-content:center;flex-direction:column;user-select:none;padding:0 6px;font-size:11px;line-height:1;border-radius:0 4px 4px 0;color:#555;border:1px solid #7e8993;border-left:0;background-color:#f5f5f5}.csf-field-slider .csf-slider-ui{margin-right:15px}.csf-field-slider input[type=number]{position:relative;z-index:1;margin:0;width:50px;text-align:center}.csf-field-slider .csf--is-unit{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.csf-field-slider .ui-slider{position:relative;width:100%;height:3px;border:none;background:#ddd;border-radius:2px}.csf-field-slider .ui-slider-range{height:3px;border:none;background:#333;border-radius:2px}.csf-field-slider .ui-slider-handle{position:absolute;width:16px;height:16px;top:-7px;margin-left:-8px;border:none;background:#333;border-radius:2px}.csf-field-slider .ui-slider-handle:hover,.csf-field-slider .ui-state-active{cursor:pointer;background:#111}.csf-field-sortable .csf-field-text input{width:100%;max-width:100%}.csf-field-sortable .csf-sortable .csf-sortable-item{display:table;width:100%;margin-bottom:5px;border:1px solid #eee}.csf-field-sortable .csf-sortable .csf-sortable-item h4{font-size:1em}.csf-field-sortable .csf-sortable-content{width:100%;display:table-cell;vertical-align:middle;background-color:#fff}.csf-field-sortable .csf-sortable-content>.csf-field{padding:15px}.csf-field-sortable .csf-sortable-helper{width:100%;display:table-cell;vertical-align:middle;text-align:center;font-size:14px;line-height:1em;border-left:1px solid #eee;background-color:#f7f7f7}.csf-field-sortable .csf-sortable-helper i{display:inline-block;cursor:pointer;width:50px;color:#555}.csf-field-sortable .csf-sortable-helper i:hover{opacity:.5}.csf-field-sortable .widget-placeholder{height:50px;margin-bottom:3px;border:1px dashed #f1c40f;background-color:#fffae4}.csf-field-sortable .ui-sortable-helper{height:50px!important;overflow:hidden!important;border-color:#ccc!important;background-color:#eee!important;opacity:.5}.csf-field-sortable .ui-sortable-helper .csf-sortable-content,.csf-field-sortable .ui-sortable-helper .csf-sortable-helper{display:none}.csf-field-sorter .ui-sortable-placeholder{height:20px;border:1px dashed #f1c40f;background-color:#fffae4}.csf-field-sorter .csf-modules{float:left;width:50%;box-sizing:border-box}.csf-field-sorter .csf-modules:first-child{padding-right:15px}.csf-field-sorter .csf-modules:last-child{padding-left:15px}.csf-field-sorter .csf-disabled,.csf-field-sorter .csf-enabled{padding:5px 15px;border:1px dashed #ddd;background-color:#fff}.csf-field-sorter .csf-disabled li{opacity:.5;transition:opacity .15s}.csf-field-sorter .csf-disabled .ui-sortable-helper{opacity:1}.csf-field-sorter .csf-sorter-title{font-size:13px;font-weight:600;padding:10px;text-align:center;border:1px dashed #ddd;border-bottom:none;background-color:#f8f8f8;text-transform:uppercase}.csf-field-sorter ul{list-style-type:none;margin:0;padding:0;min-height:62px}.csf-field-sorter ul li{margin:10px 0;padding:10px 15px;cursor:move;font-weight:700;text-align:center;border:1px solid #e5e5e5;background-color:#fafafa;transition:border-color .15s}.csf-field-sorter ul li:hover{border-color:#bbb}.csf-field-spinner .csf--spin{display:flex}.csf-field-spinner .ui-spinner{display:flex}.csf-field-spinner .ui-button{display:flex;flex-direction:column;justify-content:center;text-align:center;min-width:20px;padding:0 4px;color:#555;border:1px solid #7e8993;background-color:#f5f5f5}.csf-field-spinner .ui-spinner-button{cursor:pointer}.csf-field-spinner .ui-spinner-button:hover{background-color:#e7e7e7}.csf-field-spinner .ui-spinner-button:active{background-color:#ddd}.csf-field-spinner .ui-spinner-button:before{font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;font-size:14px;line-height:14px}.csf-field-spinner .ui-spinner-down{order:1;border-right:0;border-radius:4px 0 0 4px}.csf-field-spinner .ui-spinner-down:before{content:"\f0d9"}.csf-field-spinner .ui-spinner-input{order:2}.csf-field-spinner .csf--unit{order:3;border-left:0;user-select:none}.csf-field-spinner .ui-spinner-up{order:4;border-left:0;border-radius:0 4px 4px 0}.csf-field-spinner .ui-spinner-up:before{content:"\f0da"}.csf-field-spinner input{position:relative;z-index:1;width:50px;text-align:center;margin:0;padding:0 8px;border-radius:0}.csf-field-spinner .ui-button-icon,.csf-field-spinner .ui-button-icon-space,.csf-field-spinner .ui-button-text{display:none}.csf-field-switcher .csf--switcher{float:left;cursor:pointer;position:relative;width:60px;height:26px;padding:0;margin:0;overflow:hidden;border-radius:4px;background-color:#ed6f6f;user-select:none;-webkit-user-select:none}.csf-field-switcher .csf--ball{position:absolute;top:4px;left:4px;width:24px;height:18px;background-color:#fff;border-radius:4px;transition:all .1s;box-shadow:1px 1px 1px rgba(0,0,0,.15)}.csf-field-switcher .csf--off,.csf-field-switcher .csf--on{position:absolute;top:0;left:0;right:0;font-size:11px;line-height:26px;font-weight:500;font-style:normal;text-align:center;text-transform:uppercase;color:#fff;padding-right:28px;opacity:0;transition:all .1s}.csf-field-switcher .csf--off{padding-right:0;padding-left:28px;opacity:1}.csf-field-switcher .csf--active{background:#4fb845}.csf-field-switcher .csf--active .csf--on{opacity:1}.csf-field-switcher .csf--active .csf--off{opacity:0}.csf-field-switcher .csf--active .csf--ball{left:100%;margin-left:-28px}.csf-field-switcher .csf--label{float:left;margin-top:4px;margin-left:8px;font-weight:400;color:#999}.csf-field-tabbed .csf-tabbed-content{border:1px solid #ccd0d4;background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,.04)}.csf-field-tabbed .csf-tabbed-content>.csf-field{padding:15px}.csf-field-tabbed .csf-tabbed-nav .csf--icon{padding-right:5px}.csf-field-tabbed .csf-tabbed-nav a{display:inline-block;padding:12px 15px;margin-top:1px;margin-right:5px;margin-bottom:-1px;position:relative;text-decoration:none;color:#444;font-weight:600;border:1px solid #ccd0d4;background-color:#f3f3f3;transition:all .2s}.csf-field-tabbed .csf-tabbed-nav a:hover{background-color:#f9f9f9}.csf-field-tabbed .csf-tabbed-nav a.csf-tabbed-active{background-color:#fff;border-bottom-color:#fff}.csf-field-tabbed .csf-tabbed-nav a:focus{outline:0;box-shadow:none}.csf-field-text input{width:50%;max-width:100%;margin:0}.csf-field-textarea textarea{width:100%;max-width:100%;min-height:125px}.csf-field-textarea .csf-shortcode-button{margin-bottom:10px;margin-right:5px}.csf-field-typography select,.csf-field-typography textarea{margin:0;min-width:100%;max-width:100%}.csf-field-typography .csf--title{color:#777;margin:0 0 2px 0;font-size:12px}.csf-field-typography .csf--title small{vertical-align:top}.csf-field-typography .csf--blocks{display:flex;flex-wrap:wrap}.csf-field-typography .csf--block{flex:1;max-width:100%;padding-right:6px;padding-bottom:6px}.csf-field-typography .csf--input{margin:0;min-width:100%}.csf-field-typography .csf--input-wrap{position:relative}.csf-field-typography .csf--unit{position:absolute;z-index:1;right:4px;top:4px;bottom:4px;padding:2px 6px;color:#666;font-size:11px;line-height:1;border-radius:2px;background:#eee;user-select:none;display:flex;justify-content:center;flex-direction:column}.csf-field-typography .csf--preview{font-size:16px;line-height:20px;padding:20px;color:#222;border:1px solid #eee;background-color:#fff;border-radius:2.5px;user-select:none;-webkit-user-select:none;transition:background-color .2s,border-color .2s}.csf-field-typography .csf--block-preview{cursor:pointer;position:relative;overflow:hidden;margin-top:10px;max-width:100%}.csf-field-typography .csf--black-background{border-color:#000;background-color:#000}.csf-field-typography .csf--toggle{position:absolute;top:5px;right:10px;color:#999}.csf-field-typography .csf--block-extra-styles{margin-top:5px}.csf-field-upload input{width:100%;margin:0}.csf-field-upload .csf--wrap{display:flex;align-items:flex-start}.csf-field-upload .button{margin-left:5px}.csf-field-upload .csf--preview{position:relative}.csf-field-wp_editor .csf-wp-editor{float:left;width:100%}.csf-field-wp_editor .mce-toolbar-grp{border:none}.csf-field-wp_editor .mce-btn.mce-active button,.csf-field-wp_editor .mce-btn.mce-active i,.csf-field-wp_editor .mce-btn.mce-active:hover button,.csf-field-wp_editor .mce-btn.mce-active:hover i{color:#23282d}.csf-field-wp_editor .wp-media-buttons{position:relative;z-index:2}.csf-field-wp_editor .wp-editor-tabs{position:relative;z-index:1}.csf-field-wp_editor .csf-no-tinymce{border:1px solid #e5e5e5}.csf-field-wp_editor .csf-no-quicktags .wp-media-buttons{float:none;display:block}.csf-field-wp_editor .csf-no-quicktags .mce-tinymce{box-shadow:none;border:1px solid #e5e5e5}.csf-field-wp_editor textarea{width:100%;max-width:100%;margin:0;box-shadow:none}.csf-field-heading{font-size:1.5em;font-weight:700;color:#23282d;background-color:#f5f5f5}.csf-field-subheading{font-size:14px;font-weight:700;padding-top:17px;padding-bottom:17px;color:#23282d;background-color:#f7f7f7}.csf-field-submessage{padding:0!important;border:0!important}.csf-field-submessage+.csf-field{border-top:0!important}.csf-submessage{font-size:12px;padding:17px 30px;border-top:1px solid transparent;border-bottom:1px solid transparent}.csf-submessage-success{color:#3c763d;border-color:#d6e9c6;background-color:#dff0d8}.csf-submessage-info{color:#31708f;border-color:#bce8f1;background-color:#d9edf7}.csf-submessage-warning{color:#8a6d3b;border-color:#faebcc;background-color:#fcf8e3}.csf-submessage-danger{color:#a94442;border-color:#ebccd1;background-color:#f2dede}.csf-submessage-normal{color:#23282d;border-color:#eee;background-color:#f7f7f7}.csf-field-notice{background-color:#f7f7f7}.csf-notice{padding:12px;background-color:#fff;border-left-style:solid;border-left-width:4px;box-shadow:0 1px 1px rgba(0,0,0,.1)}.csf-notice-success{border-color:#46b450}.csf-notice-info{border-color:#339fd4}.csf-notice-warning{border-color:#ffbc00}.csf-notice-danger{border-color:#dc3232}.csf-notice-normal{border-color:#222}.csf-field-number input{width:100%;margin:0}.csf-field-number .csf--wrap{position:relative;float:left;width:100px}.csf-field-number .csf--unit{position:absolute;z-index:1;right:4px;top:4px;bottom:4px;padding:2px 6px;color:#666;font-size:11px;line-height:1;border-radius:2px;background:#eee;user-select:none;display:flex;justify-content:center;flex-direction:column}.csf-field-link .csf--result{display:inline-block;font-size:12px;line-height:16px;padding:7px 10px;margin-bottom:7px;color:#777;border:1px solid #e5e5e5;background-color:#f5f5f5;border-radius:2px;world-break:break-word}.csf-field-link .csf--wrap{position:relative;float:left;width:100px}.csf-field-link .csf--unit{position:absolute;z-index:1;right:4px;top:4px;bottom:4px;padding:2px 6px;color:#666;font-size:11px;line-height:1;border-radius:2px;background:#eee;user-select:none;display:flex;justify-content:center;flex-direction:column}.csf-help{cursor:help;position:absolute;top:0;right:0;padding:5px;font-size:13px;color:#aaa}.csf-help .csf-help-text{display:none}.csf--preview{max-width:100%}.csf-image-preview{display:inline-flex;align-items:center;justify-content:center;flex-direction:column;position:relative;padding:6px;max-width:120px;max-height:120px;min-width:40px;min-height:40px;margin-bottom:10px;text-align:center;border-radius:2px;border:1px solid #ccc;background-color:#f9f9f9;box-shadow:0 1px 0 rgba(0,0,0,.08)}.csf-image-preview i{cursor:pointer;position:absolute;z-index:1;right:4px;top:4px;font-size:14px;width:22px;height:22px;line-height:22px;text-align:center;text-decoration:none;color:#fff;background-color:#d33;opacity:.75;border-radius:2px;transition:all .2s}.csf-image-preview i:hover{opacity:1}.csf-image-preview i:focus{box-shadow:none}.csf-image-preview span{position:relative;overflow:hidden;display:flex;height:100%;width:100%}.csf-image-preview img{max-width:100%;height:auto;object-fit:contain}.csf-field-custom .csf-field{padding:0}.csf-field .chosen-container-single .chosen-single{height:28px;line-height:26px}.csf-field .chosen-container-single .chosen-single abbr{top:0;right:20px;font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;font-size:12px;height:100%;width:18px;color:#aaa;text-align:center;background:0 0}.csf-field .chosen-container-single .chosen-single abbr:before{content:"\f00d"}.csf-field .chosen-container-single .chosen-single abbr:hover{color:#555}.csf-field .chosen-container-multi .chosen-choices li.search-choice .search-choice-close{font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;font-size:12px;height:100%;width:18px;color:#aaa;text-align:center;background:0 0}.csf-field .chosen-container-multi .chosen-choices li.search-choice .search-choice-close:before{content:"\f00d";display:inline-block;padding-top:3px}.csf-field .chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover{color:#555}.csf-field .chosen-container-single .chosen-single div b{font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;font-size:14px;color:#aaa;background:0 0}.csf-field .chosen-container-single .chosen-single div b:before{content:"\f107"}.csf-field .chosen-container-single .chosen-single div b:hover{color:#555}.csf-field .chosen-container-multi .chosen-choices li.search-choice-placeholder{border:1px dashed #aaa;margin:3px 5px 3px 0}.csf-field .chosen-container-multi .ui-sortable li.search-choice span{cursor:move}.csf-field .chosen-container-active.chosen-with-drop .chosen-single div b:before{content:"\f106"}.csf-field .chosen-container-single .chosen-single-with-deselect span{margin-right:40px}.csf-field .chosen-container-single .chosen-search input[type=text]{background:0 0}.csf-field .chosen-container-single .chosen-search:before{font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;font-size:11px;content:"\f002";position:absolute;right:12px;top:10px;color:#aaa}.csf-field .wp-picker-container{display:inline-block}.csf-field .wp-picker-container .wp-color-result.button{margin-bottom:0}.csf-field .csf--transparent-wrap{display:none;position:relative;top:-1px;width:235px;padding:9px 10px;border:1px solid #dfdfdf;border-top:none;background-color:#fff}.csf-field .wp-picker-active .csf--transparent-wrap{display:block}.csf-field .csf--transparent-slider{position:absolute;width:190px;margin-left:2px;height:18px}.csf-field .csf--transparent-slider .ui-slider-handle{position:absolute;top:-3px;bottom:-3px;z-index:5;border-color:#aaa;border-style:solid;border-width:4px 3px;width:10px;height:16px;margin:0 -5px;background:0 0;cursor:ew-resize;opacity:.9;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.2)}.csf-field .csf--transparent-slider .ui-slider-handle:before{content:" ";position:absolute;left:-2px;right:-2px;top:-3px;bottom:-3px;border:2px solid #fff;border-radius:3px}.csf-field .csf--transparent-offset{height:18px;width:200px;background:url(../images/checkerboard.png) repeat-y center left scroll #fff;border-radius:2px;box-shadow:inset 0 0 5px rgba(0,0,0,.4)}.csf-field .csf--transparent-text{position:absolute;top:12px;right:10px;width:30px;font-size:12px;line-height:12px;text-align:center;color:#999}.csf-field .csf--transparent-button{cursor:pointer;user-select:none;margin-top:10px;font-size:11px;text-align:center;border-radius:2px;padding:3px 7px;box-shadow:0 1px 0 rgba(0,0,0,.1);letter-spacing:.2px;color:#777;border:1px solid #ccc;background-color:#f7f7f7;transition:background-color .2s,border-color .2s,color .2s}.csf-field .csf--transparent-active .wp-color-result{background-image:url(../images/checkerboard.png);background-size:135px;background-position:center left;background-color:transparent!important}.csf-field .csf--transparent-active .csf--transparent-button{color:#fff;border-color:#3ea032;background-color:#4fb845}.csf-field .csf--transparent-active .fa:before{content:"\f205"}.csf-widgets>.csf-field{position:relative;top:-1px;margin-left:-15px;margin-right:-15px;padding:12px 15px}.csf-widgets>.csf-field .csf-title{float:none;width:100%;margin-bottom:5px}.csf-widgets>.csf-field .csf-fieldset{float:none;width:100%}.csf-widgets .csf-field-text input{width:100%}.csf-widgets .csf-field-notice .csf-notice{padding:15px}.control-section .csf-widgets>.csf-field{margin-left:-10px;margin-right:-10px;padding:10px 12px}.wp-block .csf-widgets{font-size:13px}.wp-block .csf-widgets>.csf-field{margin-left:-10px;margin-right:-10px}.wp-block .csf-widgets>.csf-field .button-primary{color:#fff}.wp-block .csf-widgets>.csf-field>.csf-title>h4{font-size:13px}.control-section .csf-field{padding:0}.control-section .csf-field .csf-title{float:none;width:100%;margin-bottom:6px}.control-section .csf-field .csf-title h4{display:block;font-size:13px;line-height:1;font-weight:600;color:inherit}.control-section .csf-field .csf-fieldset{float:none;width:100%}.control-section .csf-help{top:-5px;right:-5px}.control-section .csf-field-select select{width:100%}.control-section .csf-field-heading{color:inherit;font-size:14px;line-height:1em;margin-right:-15px;margin-left:-15px;padding:15px}.control-section .csf-field-subheading{color:inherit;font-size:11px;margin-right:-15px;margin-left:-15px;padding:10px 15px}.control-section .csf-subtitle-text{margin-top:4px;font-size:12px}.control-section .csf-field-submessage .csf-submessage{margin-right:-15px;margin-left:-15px;padding:15px}.control-section .csf-fieldset .csf-field-heading,.control-section .csf-fieldset .csf-field-subheading,.control-section .csf-fieldset .csf-field-submessage .csf-submessage{margin-left:0;margin-right:0}.control-section .csf-field-date .csf--to{margin-left:0}.control-section .csf-field-sorter ul li{padding:5px}.control-section .csf-field-sorter .csf-modules{float:none;width:100%}.control-section .csf-field-sorter .csf-modules:first-child{padding-right:0;padding-bottom:15px}.control-section .csf-field-background .csf--background-attributes{flex-direction:column}.control-section .csf-field-spacing input{width:90px}.control-section .csf-field-border .csf--input{flex:1 50%}.control-section .csf-field-border input,.control-section .csf-field-border select{width:100%}.control-section .csf-field-spinner input{width:50px}.control-section .csf-field-number .csf--wrap{width:100%}.control-section .csf-field-backup .csf-export-data{display:none}.control-section .csf-field-fieldset .csf-fieldset-content{border-color:#e5e5e5}.control-section .csf-accordion-content>.csf-field,.control-section .csf-cloneable-content>.csf-field,.control-section .csf-fieldset-content>.csf-field,.control-section .csf-repeater-content>.csf-field,.control-section .csf-sortable-content>.csf-field,.control-section .csf-tabbed-content>.csf-field{padding:10px}.control-section .csf-accordion-content>.csf-field .csf-title,.control-section .csf-cloneable-content>.csf-field .csf-title,.control-section .csf-fieldset-content>.csf-field .csf-title,.control-section .csf-repeater-content>.csf-field .csf-title,.control-section .csf-sortable-content>.csf-field .csf-title,.control-section .csf-tabbed-content>.csf-field .csf-title{margin-bottom:5px}.control-section .csf-accordion-content>.csf-field h4,.control-section .csf-cloneable-content>.csf-field h4,.control-section .csf-fieldset-content>.csf-field h4,.control-section .csf-repeater-content>.csf-field h4,.control-section .csf-sortable-content>.csf-field h4,.control-section .csf-tabbed-content>.csf-field h4{font-size:12px}.control-section .csf-depend-hidden.csf-depend-on{display:none!important}.control-section .csf-depend-visible.csf-depend-on{border-top:0!important}.csf-taxonomy{max-width:95%}.csf-taxonomy>.csf-field{border-top:none!important}.csf-taxonomy>.csf-field-heading{font-size:1.1em;padding:20px!important;border:1px solid #ddd}.csf-taxonomy>.csf-field-subheading{font-size:12px;padding:15px!important;border:1px solid #ddd}.csf-taxonomy>.csf-field-submessage .csf-submessage{padding:15px;border-left-width:1px;border-left-style:solid;border-right-width:1px;border-right-style:solid}.csf-taxonomy>.csf-field-notice{background-color:transparent}.csf-taxonomy .csf-section-title{display:block;padding:15px;background-color:#f9f9f9;border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,.04)}.csf-taxonomy-add-fields>.csf-field{padding:8px 0}.csf-taxonomy-add-fields>.csf-field>.csf-title{float:none;width:100%;padding:2px 2px 4px 0}.csf-taxonomy-add-fields>.csf-field>.csf-title h4{font-size:12px;font-weight:400}.csf-taxonomy-add-fields>.csf-field>.csf-fieldset{float:none;width:100%}.csf-taxonomy-add-fields>.csf-field>.csf-fieldset>.csf-help{right:-5px}.csf-taxonomy-add-fields+p.submit{margin-top:0}.csf-taxonomy-edit-fields>.csf-field{padding:20px 0}.csf-taxonomy-edit-fields>.csf-field>.csf-title{width:200px}.csf-taxonomy-edit-fields>.csf-field>.csf-title h4{font-size:14px;font-weight:600;line-height:1.3;display:inline-block;vertical-align:middle}.csf-taxonomy-edit-fields>.csf-field>.csf-fieldset{width:calc(100% - 220px)}.csf-taxonomy-edit-fields>.csf-field>.csf-fieldset>.csf-help{top:-5px;right:-5px}.csf-taxonomy-edit-fields>.csf-field-submessage{margin:20px 0}.csf-taxonomy-edit-fields>.csf-field-heading,.csf-taxonomy-edit-fields>.csf-field-subheading{margin:20px 0;border:1px solid #ddd}.csf-nav-menu-options{clear:both;float:left;width:100%}.csf-nav-menu-options>.csf-fields{margin-left:-10px;margin-top:10px;margin-bottom:10px;border-top:1px solid #eee;border-bottom:1px solid #eee}.csf-nav-menu-options>.csf-fields>.csf-field{padding:12px 14px 12px 12px}.csf-nav-menu-options>.csf-fields>.csf-field .csf-title{float:none;width:100%;margin-bottom:5px}.csf-nav-menu-options>.csf-fields>.csf-field .csf-fieldset{float:none;width:100%}.csf-nav-menu-options .csf-field-text input{width:100%}.csf-nav-menu-options .csf-field-notice .csf-notice{padding:15px}.csf-nav-menu-title{padding:12px 14px 12px 12px;background-color:#f5f5f5;border-top:1px solid #eee;border-bottom:1px solid #eee}.csf-nav-menu-title:first-child{border-top:0}.csf-nav-menu-title h4{margin:0;padding:0;color:#23282d}.csf-nav-menu-icon{margin-right:5px}.csf-profile-options>h2>.fa{padding-right:7px}.csf-profile-options>.csf-field{max-width:750px;padding:15px 0;border-top:none!important}.csf-profile-options>.csf-field>.csf-title{width:200px}.csf-profile-options>.csf-field>.csf-title h4{font-size:14px;font-weight:600;line-height:1.3;display:inline-block;vertical-align:middle}.csf-profile-options>.csf-field>.csf-fieldset{width:calc(100% - 220px)}.csf-profile-options>.csf-field>.csf-fieldset>.csf-help{top:-15px;right:-5px}.csf-profile-options>.csf-field-heading{font-size:1.1em}.csf-profile-options>.csf-field-subheading{font-size:12px}.csf-profile-options>.csf-field-heading,.csf-profile-options>.csf-field-subheading{margin:10px 0;padding:15px!important;border:1px solid #ddd}.csf-profile-options>.csf-field-submessage{margin:20px 0}.csf-profile-options>.csf-field-submessage .csf-submessage{padding:10px;border-left-width:1px;border-left-style:solid;border-right-width:1px;border-right-style:solid}.csf-profile-options>.csf-field-notice{background-color:transparent}.csf-modal{position:fixed;z-index:100101;top:0;left:0;width:100%;height:100%}.csf-modal.hidden{display:none}.csf-modal-icon{z-index:100102}.csf-modal-table{display:table;width:100%;height:100%}.csf-modal-table-cell{display:table-cell;vertical-align:middle;margin:100px 0}.csf-modal-inner{position:relative;z-index:10;width:760px;height:750px;margin:0 auto;background-color:#fff}.csf-modal-content{position:relative;overflow:hidden;overflow-y:auto;height:595px}.csf-modal-content .csf-shortcode-button{display:none}.csf-modal-content .csf-field{padding:15px 30px 15px 15px}.csf-modal-content a:active,.csf-modal-content a:focus{outline:0;box-shadow:none}.csf-modal-content h4{font-size:13px}.csf-modal-content h4 small{font-style:italic;font-weight:400;color:#aaa}.csf-modal-title{position:relative;background-color:#fcfcfc;border-bottom:1px solid #ddd;height:36px;font-size:16px;font-weight:600;line-height:36px;margin:0;padding:0 36px 0 16px}.csf-modal-header{width:100%;padding:14px 0;background-color:#f5f5f5;border-bottom:1px solid #ddd}.csf-modal-header select{display:block;width:250px;margin:0 auto;font-size:13px;line-height:1;height:30px;min-height:30px;background-color:#fff}.csf-modal-close{color:#666;padding:0;position:absolute;top:0;right:0;width:36px;height:36px;text-align:center;background:0 0;border:none;cursor:pointer}.csf-modal-close:before{font:normal 20px/36px dashicons;content:"\f158";vertical-align:top;width:36px;height:36px}.csf-modal-close:hover{opacity:.5}.csf-modal-insert-wrapper{text-align:center;width:100%;padding:15px 0;background-color:#f5f5f5;border-top:1px solid #ddd}.csf-modal-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#000;opacity:.5}.csf--repeatable{padding:15px 15px 0 15px}.csf--repeat-button-block{text-align:center;padding-bottom:15px}.csf--repeat-shortcode{position:relative;margin-bottom:15px;border:1px dashed #ddd}.csf--repeat-shortcode:first-child .csf-repeat-remove{display:none}.csf--repeat-shortcode .csf-repeat-remove{position:absolute;right:10px;top:10px;z-index:10;cursor:pointer;display:inline-block;font-size:11px;width:18px;height:18px;line-height:18px;text-align:center;border-radius:2px;color:#fff;background-color:#e14d43;opacity:.5}.csf--repeat-shortcode .csf-repeat-remove:hover{opacity:.5}.csf-shortcode-single .csf-modal-inner{height:750px}.csf-shortcode-single .csf-modal-content{height:652px}.elementor-editor-active .csf-shortcode-button{margin-left:5px}.elementor-editor-active .csf-modal .hidden{display:none!important}.csf-shortcode-block{text-align:center;padding:14px;font-size:13px;background-color:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.csf-shortcode-block .components-button{margin-bottom:10px}.csf-modal-icon .csf-icon-title{padding:15px 0;margin:4px;font-size:14px;font-weight:700;text-align:center;border:1px solid #eee;background-color:#f7f7f7}.csf-modal-icon .csf-modal-header{text-align:center}.csf-modal-icon .csf-icon-search{width:50%;height:40px;line-height:40px}.csf-modal-icon i{cursor:pointer;display:inline-block;margin:4px;width:35px;height:35px;line-height:35px;font-size:16px;color:#555;text-align:center;border:1px solid #ccc;background-color:#f7f7f7;border-radius:2px;box-shadow:1px 1px 0 rgba(0,0,0,.05)}.csf-modal-icon i:hover{color:#fff;border-color:#222;background-color:#222}.csf-modal-icon .csf-modal-content{padding:10px;height:618px}.csf-modal-icon .csf-error-text{padding:10px}.csf-modal-loading{display:none;position:absolute;left:15px;top:15px}.csf-loading{position:relative;width:20px;height:20px;background:#ccc;border-radius:20px;box-shadow:0 2px 5px rgba(0,0,0,.07)}.csf-loading:after{position:absolute;top:50%;left:50%;width:4px;height:4px;content:"";margin-top:-2px;margin-left:-2px;background-color:#fff;animation-duration:.5s;animation-iteration-count:infinite;animation-timing-function:linear;animation-name:csfLoader;border-radius:4px}@keyframes csfLoader{0%{transform:rotate(0) translateX(-6px) rotate(0)}100%{transform:rotate(360deg) translateX(-6px) rotate(-360deg)}}.csf-subtitle-text{margin-top:6px;font-weight:400;color:#999}.csf-desc-text{clear:both;float:left;width:100%;margin-top:6px;font-weight:400;color:#999}.csf-error-text{margin-top:6px;color:#d02c21}.csf-before-text{margin-bottom:6px}.csf-after-text{margin-top:6px}.csf-metabox-hide{display:none!important}.csf-metabox-show{display:block!important}.csf-depend-hidden.csf-depend-on{display:none}.csf-depend-visible.csf-depend-on{display:block;opacity:.75;filter:grayscale(1);user-select:none;border-top:1px solid #eee}.csf-depend-visible.csf-depend-on .clear:before{content:"";left:0;top:0;right:0;bottom:0;position:absolute;background-color:#eee;opacity:.25;z-index:10}.csf-warning-primary{color:#fff!important;border-color:#dc3545!important;background:#dc3545!important}.csf-warning-primary:focus,.csf-warning-primary:hover{border-color:#bd2130!important;background:#bd2130!important}.csf-warning-primary:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #bd2130!important}.csf-warning-primary:active{border-color:#bd2130!important;background:#bd2130!important}.csf-form-result{display:none;float:left;padding:0 8px;margin-right:4px;font-size:11px;line-height:30px;user-select:none;border-radius:2px}.csf-form-show{display:block}.csf-form-success{color:#fff;background-color:#46b450}.csf-form-warning{color:#8a6d3b;background-color:#faebcc}.csf-label-error{position:relative;top:-2px;display:inline-block;font-size:10px;line-height:10px;height:10px;width:10px;padding:1px;font-style:normal;text-align:center;color:#fff;vertical-align:middle;background-color:#e10000;border-radius:2px}.csf-no-option{padding:30px}.csf-input-number{-moz-appearance:textfield}.csf-input-number::-webkit-inner-spin-button,.csf-input-number::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.csf-fa5-shims .csf .fab,.csf-fa5-shims .csf .far,.csf-fa5-shims .csf .fas{font-family:FontAwesome;font-style:normal}.csf-welcome-wrap{position:relative;margin:25px 40px 0 20px;font-size:15px;max-width:1200px}.csf-welcome-wrap p{font-size:14px;line-height:1.5}.csf-welcome-wrap h1{margin:.2em 200px 0 0;padding:0;color:#32373c;line-height:1.2em;font-size:2.8em;font-weight:400}.csf-welcome-wrap .csf-logo{position:absolute;overflow:hidden;top:0;right:0;height:160px;width:140px;background-image:linear-gradient(45deg,#2d67cb,#ad19f3);box-shadow:0 1px 4px rgba(0,0,0,.25),inset 0 0 0 4px rgba(0,0,0,.25)}.csf-welcome-wrap .csf-logo .csf--effects i{position:absolute;width:200px;height:100px;background-color:rgba(0,0,0,.15);transform:rotate(-45deg)}.csf-welcome-wrap .csf-logo .csf--effects i:nth-child(1){bottom:-20px;right:-70px}.csf-welcome-wrap .csf-logo .csf--effects i:nth-child(2){bottom:-35px;right:-80px}.csf-welcome-wrap .csf-logo .csf--effects i:nth-child(3){bottom:-50px;right:-90px}.csf-welcome-wrap .csf-logo .csf--effects i:nth-child(4){bottom:-65px;right:-100px}.csf-welcome-wrap .csf-logo .csf--wp-logos{position:relative;padding-top:25px;text-align:center}.csf-welcome-wrap .csf-logo .csf--wp-logo{position:absolute;left:20px;width:20px;height:20px;background-repeat:no-repeat;background-position:center center;background-image:url(../images/wp-logo.svg)}.csf-welcome-wrap .csf-logo .csf--wp-plugin-logo{display:inline-block;width:50px;height:50px;border:3px solid #fff;background-size:40px;background-repeat:no-repeat;background-position:center center;background-image:url(../images/wp-plugin-logo.svg);border-radius:100%;vertical-align:middle}.csf-welcome-wrap .csf-logo .csf--text{position:absolute;left:0;right:0;top:90px;color:#fff;font-size:13px;line-height:1.2em;font-weight:600;text-align:center;text-transform:uppercase;text-shadow:1px 1px 0 rgba(0,0,0,.25)}.csf-welcome-wrap .csf-logo .csf--version{top:auto;left:auto;right:8px;bottom:4px;font-size:11px;text-transform:lowercase}.csf-welcome-wrap .csf-about-text{font-weight:400;line-height:1.6em;font-size:19px;margin:1em 200px 1em 0;color:#555d66}.csf-welcome-wrap .csf-demo-button{margin:1em 200px 2em 0}.csf-welcome-wrap .nav-tab-wrapper{margin-bottom:20px}.csf-welcome-wrap ul{list-style-type:disc;padding-left:15px}.csf-welcome-wrap .csf--col{float:left;padding-right:20px;box-sizing:border-box}.csf-welcome-wrap .csf--col-2{width:50%}.csf-welcome-wrap .csf--col-3{width:33.333%}.csf-welcome-wrap .csf--col-4{width:25%}.csf-welcome-wrap .csf--col-5{width:20%}.csf-welcome-wrap .csf--col-last{padding-right:0}.csf-welcome-wrap .csf--col-upgrade{padding:10px 0;text-align:center;border-top:1px solid #e5e5e5}.csf--table-compare tfoot td,.csf--table-compare thead td{text-align:center}.csf--table-compare td{font-size:14px;text-align:center;vertical-align:middle;padding:10px}.csf--table-compare td:first-child{text-align:left}.csf--table-compare tfoot td{padding:15px 0}.csf--table-compare .fa{font-size:18px}.csf--table-compare .fa-check-circle{color:#46b450}.csf--table-compare .fa-times-circle{color:#dc3232}.csf-welcome-cols{clear:both;margin:20px 0;background-color:#fff;padding:0 0;border-radius:2px;border:1px solid #e5e5e5}.csf-welcome-cols .csf--col{width:33.333%;float:left;padding:20px;text-align:center;box-sizing:border-box;min-height:200px;border-right:1px solid #e5e5e5}.csf-welcome-cols .csf--block,.csf-welcome-cols .csf--left{float:left;width:20%;padding:0 30px;text-align:center;box-sizing:border-box}.csf-welcome-cols .csf--block{width:80%}.csf-welcome-cols .csf--col-first{border-bottom:1px solid #e5e5e5}.csf-welcome-cols .csf--last{border-right:none}.csf-welcome-cols .csf--space{height:20px}.csf-welcome-cols .csf--icon{display:inline-block;font-size:20px;width:30px;height:30px;line-height:30px;text-align:center;margin-bottom:10px;color:#fff;background-color:#555;border-radius:30px}.csf-welcome-cols .csf--active{background-color:#5cb85c}.csf-welcome-cols .csf--deactive{background-color:#e14d43}.csf-welcome-cols .csf--title{font-weight:700;display:block}.csf-welcome-cols p:last-child{margin-bottom:0}.csf-features-cols .csf--key-features{width:30%}.csf-features-cols .csf--available-fields{width:70%}.csf-code-block{margin:20px 0;padding:5px 20px;background-color:#fff;border-radius:2px;box-shadow:0 1px 1px rgba(0,0,0,.15)}.csf-code-block pre{font-size:13px;color:#0073aa}.csf-code-block pre span{color:#999}.csf--table-fields td{font-size:14px}.csf--upgrade a{color:#5cb85c;font-weight:700}.csf--upgrade a:focus,.csf--upgrade a:hover{color:#4aa14a;outline:0;box-shadow:none}@media only screen and (max-width:782px){.csf-welcome-cols .csf--col{width:100%;min-height:auto;border-right:none;border-bottom:1px solid #e5e5e5}.csf-features-cols .csf--key-features{width:100%}.csf-features-cols .csf--available-fields{width:100%}}@media only screen and (max-width:1200px){.csf-metabox .csf-field .csf-title{float:none;width:100%;margin-bottom:10px}.csf-metabox .csf-field .csf-fieldset{float:none;width:100%}}@media only screen and (max-width:782px){.csf-header-inner{text-align:center}.csf-header-inner h1{width:100%;margin-bottom:10px}.csf-form-result{float:none;margin-right:0;margin-bottom:10px}.csf-header-left,.csf-header-right,.csf-search{width:100%}.csf-search{text-align:center;margin-bottom:15px}.csf-footer{text-align:center}.csf-buttons{float:none}.csf-copyright{float:none;margin-top:10px}.csf-expand-all,.csf-nav,.csf-nav-background,.csf-reset-section{display:none!important}.csf-nav-normal+.csf-content{margin-left:0}.csf-section,.csf-section-title{display:block!important}.csf-field .csf-title{float:none;width:100%;margin-bottom:10px}.csf-field .csf-fieldset{float:none;width:100%}.csf-field-color .button.wp-picker-clear{padding:0 8px;line-height:2.14285714;min-height:32px}.csf-profile-options>.csf-field>.csf-title,.csf-taxonomy-edit-fields>.csf-field>.csf-title{float:none;width:100%;margin-bottom:10px}.csf-profile-options>.csf-field>.csf-fieldset,.csf-taxonomy-edit-fields>.csf-field>.csf-fieldset{float:none;width:100%}.csf-nav-menu-options>.csf-fields{margin-left:-10px;margin-right:-10px}.csf-nav-menu-options>.csf-fields>.csf-field{padding:10px}}@media only screen and (max-width:782px){.csf-modal .csf-modal-inner{width:90%}}@media only screen and (max-height:750px){.csf-modal .csf-modal-inner{height:auto}.csf-modal .csf-modal-content{height:calc(100vh - 200px)}}.chosen-container{position:relative;display:inline-block;vertical-align:middle;font-size:13px;user-select:none}.chosen-container *{box-sizing:border-box}.chosen-container .chosen-drop{position:absolute;top:100%;z-index:1010;width:100%;border:1px solid #aaa;border-top:0;background:#fff;box-shadow:0 4px 5px rgba(0,0,0,.15);clip:rect(0,0,0,0);clip-path:inset(100% 100%)}.chosen-container.chosen-with-drop .chosen-drop{clip:auto;clip-path:none}.chosen-container a{cursor:pointer}.chosen-container .chosen-single .group-name,.chosen-container .search-choice .group-name{margin-right:4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:400;color:#999}.chosen-container .chosen-single .group-name:after,.chosen-container .search-choice .group-name:after{content:":";padding-left:2px;vertical-align:top}.chosen-container-single .chosen-single{position:relative;display:block;overflow:hidden;padding:0 0 0 8px;height:25px;border:1px solid #aaa;border-radius:5px;background-color:#fff;background:linear-gradient(#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background-clip:padding-box;box-shadow:0 0 3px #fff inset,0 1px 1px rgba(0,0,0,.1);color:#444;text-decoration:none;white-space:nowrap;line-height:24px}.chosen-container-single .chosen-default{color:#999}.chosen-container-single .chosen-single span{display:block;overflow:hidden;margin-right:26px;text-overflow:ellipsis;white-space:nowrap}.chosen-container-single .chosen-single-with-deselect span{margin-right:38px}.chosen-container-single .chosen-single abbr{position:absolute;top:6px;right:26px;display:block;width:12px;height:12px;font-size:1px}.chosen-container-single .chosen-single div{position:absolute;top:0;right:0;display:block;width:18px;height:100%}.chosen-container-single .chosen-single div b{display:block;width:100%;height:100%}.chosen-container-single .chosen-search{position:relative;z-index:1010;margin:0;padding:3px 4px;white-space:nowrap}.chosen-container-single .chosen-search input[type=text]{margin:1px 0;padding:4px 20px 4px 5px;width:100%;height:auto;outline:0;border:1px solid #aaa;font-size:1em;font-family:sans-serif;line-height:normal;border-radius:0}.chosen-container-single .chosen-drop{margin-top:-1px;border-radius:0 0 4px 4px;background-clip:padding-box}.chosen-container-single.chosen-container-single-nosearch .chosen-search{position:absolute;clip:rect(0,0,0,0);clip-path:inset(100% 100%)}.chosen-container .chosen-results{color:#444;position:relative;overflow-x:hidden;overflow-y:auto;margin:0 4px 4px 0;padding:0 0 0 4px;max-height:240px;-webkit-overflow-scrolling:touch}.chosen-container .chosen-results li{display:none;margin:0;padding:5px 6px;list-style:none;line-height:15px;word-wrap:break-word;-webkit-touch-callout:none}.chosen-container .chosen-results li.active-result{display:list-item;cursor:pointer}.chosen-container .chosen-results li.disabled-result{display:list-item;color:#ccc;cursor:default}.chosen-container .chosen-results li.highlighted{background-color:#3875d7;background-image:linear-gradient(#3875d7 20%,#2a62bc 90%);color:#fff}.chosen-container .chosen-results li.no-results{color:#777;display:list-item;background:#f4f4f4}.chosen-container .chosen-results li.group-result{display:list-item;font-weight:700;cursor:default}.chosen-container .chosen-results li.group-option{padding-left:15px}.chosen-container .chosen-results li em{font-style:normal;text-decoration:underline}.chosen-container-multi .chosen-choices{position:relative;overflow:hidden;margin:0;padding:0 5px;width:100%;height:auto;border:1px solid #aaa;background-color:#fff;background-image:linear-gradient(#eee 1%,#fff 15%);cursor:text}.chosen-container-multi .chosen-choices li{float:left;list-style:none}.chosen-container-multi .chosen-choices li.search-field{margin:0;padding:0;white-space:nowrap}.chosen-container-multi .chosen-choices li.search-field input[type=text]{margin:1px 0;padding:0;outline:0;border:0!important;background:0 0!important;box-shadow:none;color:#999;font-size:100%;font-family:sans-serif;line-height:normal;border-radius:0;width:25px;height:25px;min-height:25px}.chosen-container-multi .chosen-choices li.search-choice{position:relative;margin:3px 5px 3px 0;padding:3px 20px 3px 6px;border:1px solid #aaa;max-width:100%;border-radius:3px;background-color:#eee;background-image:linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-size:100% 19px;background-repeat:repeat-x;background-clip:padding-box;box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,.05);color:#333;line-height:13px;cursor:default}.chosen-container-multi .chosen-choices li.search-choice span{word-wrap:break-word;white-space:nowrap}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close{position:absolute;top:0;right:0;display:block;width:12px;height:12px;font-size:1px}.chosen-container-multi .chosen-choices li.search-choice-disabled{padding-right:5px;border:1px solid #ccc;background-color:#e4e4e4;background-image:linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);color:#666}.chosen-container-multi .chosen-choices li.search-choice-focus{background:#d4d4d4}.chosen-container-multi .chosen-results{margin:0;padding:0}.chosen-container-multi .chosen-drop .result-selected{display:list-item;color:#ccc;cursor:default}.chosen-container-active .chosen-single{border:1px solid #5897fb;box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active.chosen-with-drop .chosen-single{border:1px solid #aaa;border-bottom-right-radius:0;border-bottom-left-radius:0;background-image:linear-gradient(#eee 20%,#fff 80%);box-shadow:0 1px 0 #fff inset}.chosen-container-active.chosen-with-drop .chosen-single div{border-left:none;background:0 0}.chosen-container-active .chosen-choices{border:1px solid #5897fb;box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active .chosen-choices li.search-field input[type=text]{color:#222!important}.chosen-disabled{opacity:.5!important;cursor:default}.chosen-disabled .chosen-single{cursor:default}.chosen-disabled .chosen-choices .search-choice .search-choice-close{cursor:default}.chosen-rtl{text-align:right}.chosen-rtl .chosen-single{overflow:visible;padding:0 8px 0 0}.chosen-rtl .chosen-single span{margin-right:0;margin-left:26px;direction:rtl}.chosen-rtl .chosen-single-with-deselect span{margin-left:38px}.chosen-rtl .chosen-single div{right:auto;left:3px}.chosen-rtl .chosen-single abbr{right:auto;left:26px}.chosen-rtl .chosen-choices li{float:right}.chosen-rtl .chosen-choices li.search-field input[type=text]{direction:rtl}.chosen-rtl .chosen-choices li.search-choice{margin:3px 5px 3px 0;padding:3px 5px 3px 19px}.chosen-rtl .chosen-choices li.search-choice .search-choice-close{right:auto;left:4px}.chosen-rtl.chosen-container-single .chosen-results{margin:0 0 4px 4px;padding:0 4px 0 0}.chosen-rtl .chosen-results li.group-option{padding-right:15px;padding-left:0}.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div{border-right:none}.chosen-rtl .chosen-search input[type=text]{padding:4px 5px 4px 20px;direction:rtl}
1
+ .csf{position:relative}.csf label{padding:0;margin:0;display:inline-block}.csf-ab-icon{top:2px}#screen-meta-links+.csf-options{margin-top:40px}.csf-options{margin-top:20px;margin-right:20px}.csf-header{position:relative}.csf-header-inner{padding:25px;transition:box-shadow .3s ease}.csf-header-inner h1{float:left;font-size:1.5em;line-height:26px;font-weight:400;margin:0}.csf-header-inner h1 small{font-size:11px;font-weight:500}.csf-sticky .csf-header-inner{position:fixed;z-index:99;top:32px;box-shadow:0 5px 10px rgba(0,0,0,.1)}.csf-buttons{float:right}.csf-buttons .button{margin:0 2px;line-height:26px}.csf-buttons .button:focus{outline:0!important;box-shadow:none!important}.csf-buttons .csf-save{min-width:72px}.csf-header-left{float:left}.csf-header-right{float:right}.csf-nav{display:block;position:relative;z-index:10;float:left}.csf-nav ul{clear:left;margin:0;list-style-type:none}.csf-nav ul li{margin-bottom:0}.csf-nav ul li a{font-size:13px;position:relative;display:block;padding:14px 12px;text-decoration:none;transition-property:color,background;transition-duration:.2s;transition-timing-function:ease}.csf-nav ul li a:focus{outline:0;box-shadow:none}.csf-nav ul li .csf-arrow:after{content:"\f054";display:inline-block;font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;font-size:9px;line-height:1;position:absolute;right:10px;top:50%;margin-top:-4px}.csf-nav ul li.csf-tab-expanded .csf-arrow:after{transform:rotate(90deg)}.csf-nav ul li.csf-tab-expanded ul{display:block}.csf-nav ul ul{display:none;position:relative}.csf-nav ul ul li a{font-size:12px;padding:12px 14px 12px 24px}.csf-nav .csf-tab-icon{width:20px;margin-right:5px;font-size:13px;text-align:center}.csf-nav .csf-label-error{margin-left:4px;vertical-align:top}.csf-nav-normal{width:225px}.csf-nav-normal+.csf-content{margin-left:225px}.csf-nav-inline{width:100%}.csf-nav-inline ul li{display:inline-block;vertical-align:top}.csf-nav-background{position:absolute;top:0;left:0;bottom:0;z-index:9;width:225px}.csf-wrapper{position:relative}.csf-content{position:relative;background-color:#fff}.csf-sections{float:left;width:100%}.csf-section-title{display:none;padding:20px 30px;background-color:#f5f5f5;border-top:1px solid #eee;border-bottom:1px solid #eee}.csf-section-title h3{margin:0;padding:0;font-size:13px;font-weight:700;text-transform:uppercase}.csf-section-title .csf-section-icon{margin-right:5px}.csf-footer{padding:20px;font-size:11px}.csf-copyright{float:left;margin-top:5px}.csf-search-all .csf-nav,.csf-search-all .csf-nav-background,.csf-show-all .csf-nav,.csf-show-all .csf-nav-background{display:none}.csf-search-all .csf-content,.csf-show-all .csf-content{margin-left:0}.csf-search-all .csf-section,.csf-search-all .csf-section-title,.csf-show-all .csf-section,.csf-show-all .csf-section-title{display:block!important}.csf-search-all .csf-section-title{display:none!important}.csf-expand-all{float:left;padding:0 8px;margin-right:4px;z-index:1;font-size:13px;line-height:30px;cursor:pointer;user-select:none;border-radius:2px;transition:all .2s}.csf-expand-all span{font-size:11px;vertical-align:middle}.csf-search{float:left}.csf-search input{margin:0 2px 0 0;border:none;font-size:12px;line-height:30px;min-height:30px;text-align:inherit;padding:0 10px;border-radius:2px;box-shadow:none}.csf-search input:focus{box-shadow:none}.csf-saving .csf-buttons,.csf-saving .csf-content{cursor:default;pointer-events:none;opacity:.5}.csf-metabox{margin:-6px -12px -12px -12px}.csf-metabox .csf-field{padding:20px}.csf-metabox .csf-section-title{padding:20px}.block-editor-page .csf-metabox{margin:-6px -14px -14px -14px}.block-editor-editor-skeleton__content .csf-metabox{border-left:1px solid #e2e4e7;border-right:1px solid #e2e4e7}.csf-sections-reset{float:left;width:100%;text-align:right;border-top:1px solid #eee}.csf-sections-reset .csf-button-cancel,.csf-sections-reset input{display:none}.csf-sections-reset label{padding:10px}.csf-sections-reset span{-webkit-user-select:none;user-select:none}.csf-sections-reset input:checked~.csf-button-reset{display:none}.csf-sections-reset input:checked~.csf-button-cancel{display:inline-block}#side-sortables .csf-section-title{padding:12px}#side-sortables .csf-field{padding:10px 15px}#side-sortables .csf-field .csf-title{float:none;width:100%;margin-bottom:6px}#side-sortables .csf-field .csf-fieldset{float:none;width:100%}#side-sortables .csf-field-text input{width:100%}#side-sortables .csf-notice{padding:10px 15px}.csf-comment-metabox{margin:-6px -12px -12px -12px}.csf-comment-metabox .csf-field{padding:20px}.csf-comment-metabox .csf-section-title{padding:20px}.csf-tooltip{position:absolute;z-index:5000001;font-size:12px;line-height:1.4;text-align:center;text-decoration:none;padding:6px 12px;max-width:200px;color:#fff;background-color:#000;background-color:rgba(0,0,0,.85);border-radius:4px}.csf-theme-dark .csf-header-inner{background-color:#050505}.csf-theme-dark .csf-header-inner h1{color:#fff}.csf-theme-dark .csf-header-inner h1 small{color:#555}.csf-theme-dark .csf-expand-all{color:#999;background-color:#222}.csf-theme-dark .csf-expand-all:hover{color:#fff;background-color:#333}.csf-theme-dark .csf-search input{color:#fff;background-color:#222}.csf-theme-dark .csf-search:focus{background-color:#444}.csf-theme-dark .csf-search::-webkit-input-placeholder{color:#666}.csf-theme-dark .csf-nav ul li a{color:#999;border-color:#2f2f2f;background-color:#222}.csf-theme-dark .csf-nav ul li a:hover{color:#fff}.csf-theme-dark .csf-nav ul li .csf-active{color:#fff;background-color:#111}.csf-theme-dark .csf-nav ul ul li a{border-color:#2f2f2f;background-color:#191919}.csf-theme-dark .csf-nav ul ul li .csf-active{background-color:#101010}.csf-theme-dark .csf-nav ul ul:before{background-color:rgba(34,34,34,.75)}.csf-theme-dark .csf-nav>ul>li:last-child>a{border:none}.csf-theme-dark .csf-nav-normal ul li a{border-bottom-width:1px;border-bottom-style:solid}.csf-theme-dark .csf-nav-normal ul li .csf-active:after{content:" ";position:absolute;right:0;top:50%;height:0;width:0;pointer-events:none;border:solid transparent;border-right-color:#fff;border-width:4px;margin-top:-4px}.csf-theme-dark .csf-nav-inline{background-color:#222}.csf-theme-dark .csf-nav-inline ul li a{text-align:center;border-right-width:1px;border-right-style:solid}.csf-theme-dark .csf-nav-inline ul li .csf-active:after{content:" ";position:absolute;left:50%;bottom:0;height:0;width:0;pointer-events:none;border:solid transparent;border-bottom-color:#fff;border-width:4px;margin-left:-4px}.csf-theme-dark .csf-nav-background{background-color:#222}.csf-theme-dark .csf-footer{color:#555;background-color:#050505}.csf-theme-light .csf-container{border:1px solid #ccd0d4;box-shadow:0 0 15 rgba(0,0,0,.04)}.csf-theme-light .csf-header-inner{border-bottom:1px solid #ccd0d4;background-color:#f5f5f5;background:linear-gradient(#fefefe,#f5f5f5)}.csf-theme-light .csf-header-inner h1 small{color:#999}.csf-theme-light .csf-expand-all{color:#999;background-color:#eee}.csf-theme-light .csf-expand-all:hover{color:#555}.csf-theme-light .csf-search input{color:#555;background-color:#eee}.csf-theme-light .csf-search input::-webkit-input-placeholder{color:#999}.csf-theme-light .csf-nav ul li a{font-weight:500;color:#444;background-color:#f5f5f5}.csf-theme-light .csf-nav ul li a:hover{color:#111;background-color:#fff}.csf-theme-light .csf-nav ul li .csf-active{color:#111;background-color:#fff}.csf-theme-light .csf-nav ul ul li a{background-color:#eee}.csf-theme-light .csf-nav-normal>ul{margin-right:-1px;margin-bottom:-1px}.csf-theme-light .csf-nav-normal>ul li a{border-bottom:1px solid #ccd0d4;border-right:1px solid #ccd0d4}.csf-theme-light .csf-nav-normal>ul li .csf-active{border-right-color:#fff}.csf-theme-light .csf-nav-inline{background-color:#f5f5f5;border-bottom:1px solid #ccd0d4}.csf-theme-light .csf-nav-inline>ul{margin-bottom:-1px}.csf-theme-light .csf-nav-inline>ul li a{text-align:center;border-right:1px solid #ccd0d4;border-bottom:1px solid #ccd0d4}.csf-theme-light .csf-nav-inline>ul li .csf-active{border-bottom-color:#fff}.csf-theme-light .csf-nav-inline>ul ul{display:none!important}.csf-theme-light .csf-nav-inline .csf-arrow:after{display:none}.csf-theme-light .csf-nav-background{background-color:#f5f5f5;border-right:1px solid #ccd0d4}.csf-theme-light .csf-footer{color:#555;border-top:1px solid #ccd0d4;background-color:#f5f5f5;background:linear-gradient(#fafafa,#f5f5f5)}.csf-field{position:relative;padding:30px}.csf-field+.csf-field{border-top:1px solid #eee}.csf-field p:first-child{margin-top:0}.csf-field p:last-child{margin-bottom:0}.csf-field:after,.csf-field:before{content:" ";display:table}.csf-field:after{clear:both}.csf-field h4{margin-top:0}.csf-field .csf-title{position:relative;width:20%;float:left}.csf-field .csf-title h4{margin:0;color:#23282d}.csf-field .csf-fieldset{float:right;width:calc(80% - 20px)}.csf-pseudo-field{padding:0 5px 0 0!important;display:inline-block}.csf-pseudo-field+.csf-pseudo-field{border:0}.csf-pseudo-field pre{display:none}.csf-field-accordion .csf-accordion-item{position:relative;margin-bottom:5px}.csf-field-accordion .csf-accordion-item:last-child{margin-bottom:0}.csf-field-accordion .csf-accordion-item h4{font-size:1em}.csf-field-accordion .csf-accordion-title{display:block;cursor:pointer;position:relative;margin:0;padding:15px;min-height:0;font-size:100%;user-select:none;border:1px solid #ccd0d4;background-color:#fafafa;box-shadow:0 1px 1px rgba(0,0,0,.04);transition:border-color .15s}.csf-field-accordion .csf-accordion-title:active,.csf-field-accordion .csf-accordion-title:focus,.csf-field-accordion .csf-accordion-title:hover{outline:0;border-color:#999}.csf-field-accordion .csf-accordion-title .csf--icon{width:20px;text-align:center;margin-right:2px}.csf-field-accordion .csf-accordion-icon{width:16px;text-align:center}.csf-field-accordion .csf-accordion-content{display:none;padding:0;border:1px solid #ccd0d4;border-top:none;background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,.04)}.csf-field-accordion .csf-accordion-content>.csf-field{padding:15px}.csf-field-accordion .csf-accordion-open{display:block}.csf-field-background .csf-field{border:0!important;padding:0;margin-bottom:6px;margin-right:6px}.csf-field-background .csf--title{color:#777;font-size:12px}.csf-field-background .csf--background-colors{display:flex;flex-wrap:wrap}.csf-field-background .csf--background-attributes{display:flex;flex-wrap:wrap}.csf-field-background .csf--background-attributes select{min-width:100%;margin:0}.csf-field-background .csf--background-attributes .csf-field{flex:1}.csf-field-background .csf--attributes-hidden{display:none}.csf-field-backup textarea{width:100%;min-height:200px;margin-bottom:5px}.csf-field-backup small{display:inline-block;margin:5px}.csf-field-backup hr{margin:20px 0;border:none;border-bottom:1px solid #e5e5e5}.csf-field-border .csf--inputs,.csf-field-dimensions .csf--inputs,.csf-field-spacing .csf--inputs{float:left;display:flex;flex-wrap:wrap}.csf-field-border .csf--input,.csf-field-dimensions .csf--input,.csf-field-spacing .csf--input{display:flex;padding-right:6px;padding-bottom:4px;box-sizing:border-box}.csf-field-border .csf--input select,.csf-field-dimensions .csf--input select,.csf-field-spacing .csf--input select{margin:0}.csf-field-border .csf--input input,.csf-field-dimensions .csf--input input,.csf-field-spacing .csf--input input{position:relative;z-index:1;margin:0;width:65px;max-width:100%;text-align:center}.csf-field-border .csf--color,.csf-field-dimensions .csf--color,.csf-field-spacing .csf--color{float:left}.csf-field-border .csf--label,.csf-field-dimensions .csf--label,.csf-field-spacing .csf--label{display:flex;flex-direction:column;justify-content:center;user-select:none;min-width:20px;max-width:100%;padding:0 4px;font-size:12px;text-align:center;color:#555;border:1px solid #7b776c;background-color:#f5f5f5}.csf-field-border .csf--icon,.csf-field-dimensions .csf--icon,.csf-field-spacing .csf--icon{border-right:0;border-radius:4px 0 0 4px}.csf-field-border .csf--icon+input,.csf-field-dimensions .csf--icon+input,.csf-field-spacing .csf--icon+input{border-top-left-radius:0!important;border-bottom-left-radius:0!important}.csf-field-border .csf--unit,.csf-field-dimensions .csf--unit,.csf-field-spacing .csf--unit{border-left:0;border-radius:0 4px 4px 0}.csf-field-border .csf--is-unit,.csf-field-dimensions .csf--is-unit,.csf-field-spacing .csf--is-unit{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.csf-field-button_set .csf--buttons{display:inline-block}.csf-field-button_set .csf--button{position:relative;z-index:1;float:left;cursor:pointer;padding:7px 14px;min-width:16px;text-align:center;color:#555;border:1px solid #ccc;background-color:#f7f7f7;user-select:none;box-shadow:0 1px 0 rgba(0,0,0,.1)}.csf-field-button_set .csf--button:first-child{border-radius:4px 0 0 4px}.csf-field-button_set .csf--button:last-child{border-radius:0 4px 4px 0}.csf-field-button_set .csf--button:not(:first-child){margin-left:-1px}.csf-field-button_set .csf--button:hover{background-color:#eee}.csf-field-button_set .csf--active,.csf-field-button_set .csf--active:hover{z-index:2;color:#fff;border-color:#006799;background-color:#0085ba}.csf-field-button_set input{display:none}.csf-field-checkbox ul,.csf-field-radio ul{margin:0;padding:0;list-style-type:none;overflow-y:auto;max-height:305px}.csf-field-checkbox ul li,.csf-field-radio ul li{margin-bottom:6px}.csf-field-checkbox ul ul,.csf-field-radio ul ul{max-height:none}.csf-field-checkbox ul ul li,.csf-field-radio ul ul li{margin-left:8px}.csf-field-checkbox ul ul li:first-child,.csf-field-radio ul ul li:first-child{margin-left:0}.csf-field-checkbox input,.csf-field-radio input{margin:0 1px}.csf-field-checkbox .csf--inline-list li,.csf-field-radio .csf--inline-list li{display:inline-block;margin-right:15px}.csf-field-checkbox .csf--text,.csf-field-radio .csf--text{margin-left:5px;vertical-align:middle}.csf-field-checkbox .csf-checker,.csf-field-radio .csf-checker{cursor:pointer}.csf-field-code_editor .CodeMirror{width:100%;height:400px}.csf-field-code_editor .cm-s-default{border:1px solid #ccd0d4}.csf-field-code_editor textarea{width:100%;height:400px}.csf-field-color>input{opacity:.75;width:115px;max-width:100%}.csf-field-color .button.wp-picker-clear{padding:0 8px;margin-left:6px;line-height:2.54545455;min-height:30px}.csf-field-color_group .csf--left{float:left;margin-right:10px;margin-bottom:5px}.csf-field-color_group .csf--title{color:#999;margin-bottom:5px}.csf-field-fieldset .csf-fieldset-content{border:1px solid #ccd0d4;background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,.04)}.csf-field-fieldset .csf-fieldset-content>.csf-field{padding:15px}.csf-field-fieldset .csf-field-subheading{font-size:13px}.csf-field-date input{margin:0}.csf-field-date .csf--to{margin-left:7px}.csf-datepicker-wrapper{margin-top:5px;width:auto;background-color:#fff;z-index:9999999!important;box-shadow:0 0 30px rgba(0,0,0,.15)}.csf-datepicker-wrapper *{float:none;margin:0;padding:0;font-family:inherit;font-weight:400;font-style:normal;text-decoration:none;border:0;border-radius:0;box-shadow:none}.csf-datepicker-wrapper .ui-datepicker-header,.csf-datepicker-wrapper .ui-widget-header{color:#fff;background:#00a0d2}.csf-datepicker-wrapper .ui-datepicker-header .ui-state-hover{cursor:pointer}.csf-datepicker-wrapper .ui-datepicker-title{font-size:14px;line-height:40px;text-align:center}.csf-datepicker-wrapper .ui-datepicker-next,.csf-datepicker-wrapper .ui-datepicker-prev{position:static;top:auto;left:auto;right:auto;font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;font-size:12px;text-align:center;width:41px;height:40px;line-height:40px;color:#fff;background-color:rgba(255,255,255,.1);text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.csf-datepicker-wrapper .ui-datepicker-next span,.csf-datepicker-wrapper .ui-datepicker-prev span{display:none}.csf-datepicker-wrapper .ui-datepicker-prev{float:left}.csf-datepicker-wrapper .ui-datepicker-next{float:right}.csf-datepicker-wrapper .ui-datepicker-prev:before{content:'\f053'}.csf-datepicker-wrapper .ui-datepicker-next:before{content:'\f054'}.csf-datepicker-wrapper .ui-datepicker-next-hover,.csf-datepicker-wrapper .ui-datepicker-prev-hover{opacity:.75}.csf-datepicker-wrapper tbody .ui-datepicker-week-col{background-color:#f7f7f7}.csf-datepicker-wrapper .ui-datepicker-buttonpane{padding:10px;text-align:center;background-color:#f7f7f7}.csf-datepicker-wrapper .ui-datepicker-buttonpane button{cursor:pointer;margin:0 5px;padding:7px 14px;border:1px solid #eee;background-color:#fff}.csf-datepicker-wrapper select{margin:0 4px}.csf-datepicker-wrapper select option{color:#555}.csf-datepicker-wrapper table{font-size:13px;border-collapse:collapse;width:100%}.csf-datepicker-wrapper thead{color:#fff;background:#32373c}.csf-datepicker-wrapper th{text-align:center;padding:7px;border:1px solid #444}.csf-datepicker-wrapper td{text-align:center;border:1px solid #f4f4f4}.csf-datepicker-wrapper td.ui-datepicker-other-month{border:transparent}.csf-datepicker-wrapper td .ui-state-default{color:#555;width:auto;display:block;padding:6px 12px}.csf-datepicker-wrapper td .ui-state-active,.csf-datepicker-wrapper td .ui-state-hover{color:#fff;background-color:#0073aa}.csf-datepicker-wrapper td.ui-state-disabled .ui-state-default{opacity:.5}.csf-field-datetime input{margin:0}.csf-field-datetime .csf--to{margin-left:7px}.csf-flatpickr input,.csf-flatpickr select{min-height:auto}.csf-flatpickr input:focus,.csf-flatpickr select:focus{box-shadow:none}.csf-flatpickr.open{z-index:9999999!important}.csf-field-gallery ul{margin:0;padding:0;list-style-type:none}.csf-field-gallery ul li{display:inline-block;position:relative;padding:4px;margin:0 5px 10px 0;border:1px solid #ccc;background-color:#f9f9f9;border-radius:2px;box-shadow:0 1px 0 rgba(0,0,0,.08)}.csf-field-gallery ul li img{max-height:60px;display:inline-block;vertical-align:middle}.csf-field-gallery .button{margin-right:5px;margin-bottom:5px}.csf-field-group .csf-cloneable-hidden{display:none!important}.csf-field-group .csf-cloneable-wrapper{position:relative}.csf-field-group .csf-cloneable-item{display:none;position:relative;margin-bottom:5px}.csf-field-group .csf-cloneable-item h4{font-size:1em}.csf-field-group .ui-accordion .csf-cloneable-item{display:block}.csf-field-group .csf-cloneable-content{border:1px solid #ccd0d4;background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,.04)}.csf-field-group .csf-cloneable-content>.csf-field{padding:15px}.csf-field-group .csf-cloneable-title{display:block;cursor:pointer;position:relative;user-select:none;margin:0;padding:15px 65px 15px 10px;min-height:0;font-size:100%;border:1px solid #ccd0d4;background-color:#fafafa;box-shadow:0 1px 1px rgba(0,0,0,.04);transition:border-color .15s}.csf-field-group .csf-cloneable-title:active,.csf-field-group .csf-cloneable-title:focus,.csf-field-group .csf-cloneable-title:hover{border-color:#999;outline:0}.csf-field-group .csf-cloneable-helper{position:absolute;top:12px;right:10px;z-index:1;font-size:14px;line-height:1em}.csf-field-group .csf-cloneable-helper i{display:inline-block;cursor:pointer;padding:5px;color:#999}.csf-field-group .csf-cloneable-helper i:hover{color:#555}.csf-field-group .csf-cloneable-content{padding:0;border-top:0}.csf-field-group .csf-cloneable-title-number,.csf-field-group .csf-cloneable-title-prefix{margin-right:5px}.csf-field-group .csf-cloneable-alert{display:none;margin-bottom:5px;padding:10px 20px;color:#a94442;border:1px solid #ebccd1;background-color:#f2dede}.csf-field-group .widget-placeholder{margin-bottom:10px;border:1px dashed #f1c40f;background-color:#fffae4}.csf-field-group .csf-cloneable-header-icon{display:inline-block;text-align:center;font-size:14px;width:17px;text-indent:0;vertical-align:text-top}.csf-field-group .csf-cloneable-placeholder{background-color:#ddd;margin-top:4px;width:100px;height:10px;font-size:10px;line-height:10px;display:inline-block;vertical-align:top;border-radius:2px}.csf-field-icon .button{margin-right:5px}.csf-field-icon .csf-icon-select{display:flex}.csf-field-icon .csf-icon-preview:not(.hidden){display:flex}.csf-field-icon .csf-icon-preview i{display:flex;justify-content:center;align-items:center;width:30px;font-size:14px;margin-right:5px;text-align:center;vertical-align:top;color:#555;border:1px solid #ccc;background-color:#f7f7f7;border-radius:3px;box-shadow:0 1px 0 rgba(0,0,0,.08)}.csf-field-image_select .csf--image{display:inline-block;margin:0 5px 5px 0}.csf-field-image_select .csf--inline-list .csf--image{display:block}.csf-field-image_select figure{cursor:pointer;position:relative;display:inline-block;max-width:100%;margin:0;vertical-align:bottom;border:2px solid transparent;background-color:#fff;user-select:none;transition:all .2s}.csf-field-image_select figure:before{position:absolute;top:0;left:0;text-align:center;font-size:10px;font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;content:"\f00c";width:16px;height:16px;line-height:14px;opacity:0;color:#fff;background-color:#222;transition:opacity .2s}.csf-field-image_select .csf--active figure{border-color:#222;box-shadow:0 0 20px rgba(0,0,0,.2)}.csf-field-image_select .csf--active figure:before{opacity:1}.csf-field-image_select img{max-width:100%;height:auto;vertical-align:top}.csf-field-image_select input{display:none}.csf-field-link_color .csf--left{float:left;margin-right:10px;margin-bottom:5px}.csf-field-link_color .csf--title{color:#777;margin-bottom:5px}.csf-field-map input{width:100%}.csf-field-map input[type=text].ui-autocomplete-loading{background-position-x:calc(100% - 5px)}.csf-field-map .csf--map-search+.csf--map-osm-wrap{margin-top:10px}.csf-field-map .csf--map-osm-wrap{position:relative;padding:5px;border:1px solid #eee;background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,.04)}.csf-field-map .csf--map-osm{position:relative;z-index:1;min-height:250px}.csf-field-map .csf--map-inputs{margin-top:10px;display:flex;justify-content:space-between}.csf-field-map .csf--map-input{flex:1}.csf-field-map .csf--map-input:last-child{padding-left:10px}.csf-field-map label{display:block;color:#777;font-size:12px;margin:0 0 2px 0}.csf-map-ui-autocomplate{z-index:999999;border-radius:4px;overflow:hidden}.csf-field-media .csf--placeholder{display:flex;align-items:flex-start}.csf-field-media .csf--placeholder input{width:100%;margin:0}.csf-field-media .button{margin-left:5px}.csf-field-media .hidden+.button{margin-left:0}.csf-field-media .csf--preview{position:relative}.csf-field-palette .csf--palette{position:relative;display:inline-block;cursor:pointer;border:2px solid #ddd;margin-right:10px;margin-bottom:10px;user-select:none;-webkit-user-select:none;transition:all .2s}.csf-field-palette .csf--palette span{vertical-align:middle;display:inline-block;width:22px;height:60px;line-height:60px;overflow:hidden;text-indent:-999px}.csf-field-palette .csf--palette:before{position:absolute;top:0;left:0;text-align:center;font-size:10px;font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;content:"\f00c";width:16px;height:16px;line-height:14px;opacity:0;color:#fff;background-color:#222;transition:opacity .2s}.csf-field-palette .csf--active{border-color:#222;box-shadow:0 0 20px rgba(0,0,0,.2)}.csf-field-palette .csf--active:before{opacity:1}.csf-field-palette input{display:none}.csf-field-repeater .csf-field-text input{width:100%}.csf-field-repeater .csf-repeater-hidden{display:none!important}.csf-field-repeater .csf-repeater-wrapper .csf-repeater-item{display:table;width:100%;margin-bottom:5px;border:1px solid #eee}.csf-field-repeater .csf-repeater-wrapper .csf-repeater-item h4{font-size:1em}.csf-field-repeater .csf-repeater-content{width:100%;display:table-cell;vertical-align:middle;background-color:#fff}.csf-field-repeater .csf-repeater-content>.csf-field{padding:15px}.csf-field-repeater .csf-repeater-helper{width:100%;display:table-cell;vertical-align:middle;text-align:center;font-size:14px;line-height:1em;border-left:1px solid #eee;background-color:#f7f7f7}.csf-field-repeater .csf-repeater-helper i{display:inline-block;cursor:pointer;color:#999;padding:5px}.csf-field-repeater .csf-repeater-helper i:hover{color:#555}.csf-field-repeater .csf-repeater-helper-inner{width:75px}.csf-field-repeater .csf-repeater-alert{display:none;margin-bottom:5px;padding:10px 20px;color:#a94442;border:1px solid #ebccd1;background-color:#f2dede}.csf-field-repeater .widget-placeholder{height:50px;margin-bottom:3px;border:1px dashed #f1c40f;background-color:#fffae4}.csf-field-repeater .ui-sortable-helper{height:50px!important;overflow:hidden!important;border-color:#ccc!important;background-color:#eee!important;opacity:.5}.csf-field-repeater .ui-sortable-helper .csf-repeater-content,.csf-field-repeater .ui-sortable-helper .csf-repeater-helper{display:none}.csf-field-select .csf-fieldset{min-height:30px}.csf-field-select .csf-chosen{display:none}.csf-field-select select{max-width:100%;margin:0}.csf-field-select .csf-hide-select{display:none!important}.csf-field-slider .csf--wrap{display:flex;align-items:center}.csf-field-slider .csf--input{display:flex}.csf-field-slider .csf--unit{display:flex;justify-content:center;flex-direction:column;user-select:none;padding:0 6px;font-size:11px;line-height:1;border-radius:0 4px 4px 0;color:#555;border:1px solid #7e8993;border-left:0;background-color:#f5f5f5}.csf-field-slider .csf-slider-ui{margin-right:15px}.csf-field-slider input[type=number]{position:relative;z-index:1;margin:0;width:50px;text-align:center}.csf-field-slider .csf--is-unit{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.csf-field-slider .ui-slider{position:relative;width:100%;height:3px;border:none;background:#ddd;border-radius:2px}.csf-field-slider .ui-slider-range{height:3px;border:none;background:#333;border-radius:2px}.csf-field-slider .ui-slider-handle{position:absolute;width:16px;height:16px;top:-7px;margin-left:-8px;border:none;background:#333;border-radius:2px}.csf-field-slider .ui-slider-handle:hover,.csf-field-slider .ui-state-active{cursor:pointer;background:#111}.csf-field-sortable .csf-field-text input{width:100%;max-width:100%}.csf-field-sortable .csf-sortable .csf-sortable-item{display:table;width:100%;margin-bottom:5px;border:1px solid #eee}.csf-field-sortable .csf-sortable .csf-sortable-item h4{font-size:1em}.csf-field-sortable .csf-sortable-content{width:100%;display:table-cell;vertical-align:middle;background-color:#fff}.csf-field-sortable .csf-sortable-content>.csf-field{padding:15px}.csf-field-sortable .csf-sortable-helper{width:100%;display:table-cell;vertical-align:middle;text-align:center;font-size:14px;line-height:1em;border-left:1px solid #eee;background-color:#f7f7f7}.csf-field-sortable .csf-sortable-helper i{display:inline-block;cursor:pointer;width:50px;color:#555}.csf-field-sortable .csf-sortable-helper i:hover{opacity:.5}.csf-field-sortable .widget-placeholder{height:50px;margin-bottom:3px;border:1px dashed #f1c40f;background-color:#fffae4}.csf-field-sortable .ui-sortable-helper{height:50px!important;overflow:hidden!important;border-color:#ccc!important;background-color:#eee!important;opacity:.5}.csf-field-sortable .ui-sortable-helper .csf-sortable-content,.csf-field-sortable .ui-sortable-helper .csf-sortable-helper{display:none}.csf-field-sorter .ui-sortable-placeholder{height:20px;border:1px dashed #f1c40f;background-color:#fffae4}.csf-field-sorter .csf-modules{float:left;width:50%;box-sizing:border-box}.csf-field-sorter .csf-modules:first-child{padding-right:15px}.csf-field-sorter .csf-modules:last-child{padding-left:15px}.csf-field-sorter .csf-disabled,.csf-field-sorter .csf-enabled{padding:5px 15px;border:1px dashed #ddd;background-color:#fff}.csf-field-sorter .csf-disabled li{opacity:.5;transition:opacity .15s}.csf-field-sorter .csf-disabled .ui-sortable-helper{opacity:1}.csf-field-sorter .csf-sorter-title{font-size:13px;font-weight:600;padding:10px;text-align:center;border:1px dashed #ddd;border-bottom:none;background-color:#f8f8f8;text-transform:uppercase}.csf-field-sorter ul{list-style-type:none;margin:0;padding:0;min-height:62px}.csf-field-sorter ul li{margin:10px 0;padding:10px 15px;cursor:move;font-weight:700;text-align:center;border:1px solid #e5e5e5;background-color:#fafafa;transition:border-color .15s}.csf-field-sorter ul li:hover{border-color:#bbb}.csf-field-spinner .csf--spin{display:flex}.csf-field-spinner .ui-widget{font-family:inherit}.csf-field-spinner .ui-spinner{display:flex;align-items:stretch;overflow:unset;border:none;background:0 0;border-radius:0}.csf-field-spinner .ui-spinner .ui-button{display:flex;flex-direction:column;justify-content:center;text-align:center;min-width:20px;padding:0 4px;margin:0;color:#555;background-color:#f5f5f5;border:1px solid #7e8993}.csf-field-spinner .ui-spinner .ui-spinner-button{position:relative;cursor:pointer;height:auto}.csf-field-spinner .ui-spinner .ui-spinner-button:hover{background-color:#e7e7e7}.csf-field-spinner .ui-spinner .ui-spinner-button:active{background-color:#ddd}.csf-field-spinner .ui-spinner .ui-spinner-button:before{font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;font-size:14px;line-height:14px}.csf-field-spinner .ui-spinner .ui-spinner-down{border-right:0;border-radius:4px 0 0 4px}.csf-field-spinner .ui-spinner .ui-spinner-down:before{content:"\f0d9"}.csf-field-spinner .ui-spinner .ui-spinner-up{border-left:0;border-radius:0 4px 4px 0}.csf-field-spinner .ui-spinner .ui-spinner-up:before{content:"\f0da"}.csf-field-spinner .ui-spinner .csf--unit{border-left:0;user-select:none}.csf-field-spinner .ui-spinner .ui-button-icon,.csf-field-spinner .ui-spinner .ui-button-icon-space,.csf-field-spinner .ui-spinner .ui-button-text{display:none}.csf-field-spinner .ui-spinner input{font-family:inherit;font-size:inherit;position:relative;z-index:1;width:50px;text-align:center;margin:0;padding:0 8px;border-radius:0}.csf-field-spinner .ui-spinner-down{order:1}.csf-field-spinner .ui-spinner-input{order:2}.csf-field-spinner .csf--unit{order:3}.csf-field-spinner .ui-spinner-up{order:4}.csf-field-switcher .csf--switcher{float:left;cursor:pointer;position:relative;width:60px;height:26px;padding:0;margin:0;overflow:hidden;border-radius:4px;background-color:#ed6f6f;user-select:none;-webkit-user-select:none}.csf-field-switcher .csf--ball{position:absolute;top:4px;left:4px;width:24px;height:18px;background-color:#fff;border-radius:4px;transition:all .1s;box-shadow:1px 1px 1px rgba(0,0,0,.15)}.csf-field-switcher .csf--off,.csf-field-switcher .csf--on{position:absolute;top:0;left:0;right:0;font-size:11px;line-height:26px;font-weight:500;font-style:normal;text-align:center;text-transform:uppercase;color:#fff;padding-right:28px;opacity:0;transition:all .1s}.csf-field-switcher .csf--off{padding-right:0;padding-left:28px;opacity:1}.csf-field-switcher .csf--active{background:#4fb845}.csf-field-switcher .csf--active .csf--on{opacity:1}.csf-field-switcher .csf--active .csf--off{opacity:0}.csf-field-switcher .csf--active .csf--ball{left:100%;margin-left:-28px}.csf-field-switcher .csf--label{float:left;margin-top:4px;margin-left:8px;font-weight:400;color:#999}.csf-field-tabbed .csf-tabbed-content{border:1px solid #ccd0d4;background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,.04)}.csf-field-tabbed .csf-tabbed-content>.csf-field{padding:15px}.csf-field-tabbed .csf-tabbed-nav .csf--icon{padding-right:5px}.csf-field-tabbed .csf-tabbed-nav a{display:inline-block;padding:12px 15px;margin-top:1px;margin-right:5px;margin-bottom:-1px;position:relative;text-decoration:none;color:#444;font-weight:600;border:1px solid #ccd0d4;background-color:#f3f3f3;transition:all .2s}.csf-field-tabbed .csf-tabbed-nav a:hover{background-color:#f9f9f9}.csf-field-tabbed .csf-tabbed-nav a.csf-tabbed-active{background-color:#fff;border-bottom-color:#fff}.csf-field-tabbed .csf-tabbed-nav a:focus{outline:0;box-shadow:none}.csf-field-text input{width:50%;max-width:100%;margin:0}.csf-field-textarea textarea{width:100%;max-width:100%;min-height:125px}.csf-field-textarea .csf-shortcode-button{margin-bottom:10px;margin-right:5px}.csf-field-typography select,.csf-field-typography textarea{margin:0;min-width:100%;max-width:100%}.csf-field-typography .csf--title{color:#777;margin:0 0 2px 0;font-size:12px}.csf-field-typography .csf--title small{vertical-align:top}.csf-field-typography .csf--blocks{display:flex;flex-wrap:wrap}.csf-field-typography .csf--block{flex:1;max-width:100%;padding-right:6px;padding-bottom:6px}.csf-field-typography .csf--input{margin:0;min-width:100%}.csf-field-typography .csf--input-wrap{position:relative}.csf-field-typography .csf--unit{position:absolute;z-index:1;right:4px;top:4px;bottom:4px;padding:2px 6px;color:#666;font-size:11px;line-height:1;border-radius:2px;background:#eee;user-select:none;display:flex;justify-content:center;flex-direction:column}.csf-field-typography .csf--preview{font-size:16px;line-height:20px;padding:20px;color:#222;border:1px solid #eee;background-color:#fff;border-radius:2.5px;user-select:none;-webkit-user-select:none;transition:background-color .2s,border-color .2s}.csf-field-typography .csf--block-preview{cursor:pointer;position:relative;overflow:hidden;margin-top:10px;max-width:100%}.csf-field-typography .csf--black-background{border-color:#000;background-color:#000}.csf-field-typography .csf--toggle{position:absolute;top:5px;right:10px;color:#999}.csf-field-typography .csf--block-extra-styles{margin-top:5px}.csf-field-upload input{width:100%;margin:0}.csf-field-upload .csf--wrap{display:flex;align-items:flex-start}.csf-field-upload .button{margin-left:5px}.csf-field-upload .csf--preview{position:relative}.csf-field-wp_editor .csf-wp-editor{float:left;width:100%}.csf-field-wp_editor .mce-toolbar-grp{border:none}.csf-field-wp_editor .mce-btn.mce-active button,.csf-field-wp_editor .mce-btn.mce-active i,.csf-field-wp_editor .mce-btn.mce-active:hover button,.csf-field-wp_editor .mce-btn.mce-active:hover i{color:#23282d}.csf-field-wp_editor .wp-media-buttons{position:relative;z-index:2}.csf-field-wp_editor .wp-editor-tabs{position:relative;z-index:1}.csf-field-wp_editor .csf-no-tinymce{border:1px solid #e5e5e5}.csf-field-wp_editor .csf-no-quicktags .wp-media-buttons{float:none;display:block}.csf-field-wp_editor .csf-no-quicktags .mce-tinymce{box-shadow:none;border:1px solid #e5e5e5}.csf-field-wp_editor textarea{width:100%;max-width:100%;margin:0;box-shadow:none}.csf-field-heading{font-size:1.5em;font-weight:700;color:#23282d;background-color:#f5f5f5}.csf-field-subheading{font-size:14px;font-weight:700;padding-top:17px;padding-bottom:17px;color:#23282d;background-color:#f7f7f7}.csf-field-submessage{padding:0!important;border:0!important}.csf-field-submessage+.csf-field{border-top:0!important}.csf-submessage{font-size:12px;padding:17px 30px;border-top:1px solid transparent;border-bottom:1px solid transparent}.csf-submessage-success{color:#3c763d;border-color:#d6e9c6;background-color:#dff0d8}.csf-submessage-info{color:#31708f;border-color:#bce8f1;background-color:#d9edf7}.csf-submessage-warning{color:#8a6d3b;border-color:#faebcc;background-color:#fcf8e3}.csf-submessage-danger{color:#a94442;border-color:#ebccd1;background-color:#f2dede}.csf-submessage-normal{color:#23282d;border-color:#eee;background-color:#f7f7f7}.csf-field-notice{background-color:#f7f7f7}.csf-notice{padding:12px;background-color:#fff;border-left-style:solid;border-left-width:4px;box-shadow:0 1px 1px rgba(0,0,0,.1)}.csf-notice-success{border-color:#46b450}.csf-notice-info{border-color:#339fd4}.csf-notice-warning{border-color:#ffbc00}.csf-notice-danger{border-color:#dc3232}.csf-notice-normal{border-color:#222}.csf-field-number input{width:100%;margin:0}.csf-field-number .csf--wrap{position:relative;float:left;width:100px}.csf-field-number .csf--unit{position:absolute;z-index:1;right:4px;top:4px;bottom:4px;padding:2px 6px;color:#666;font-size:11px;line-height:1;border-radius:2px;background:#eee;user-select:none;display:flex;justify-content:center;flex-direction:column}.csf-field-link .csf--result{display:inline-block;font-size:12px;line-height:16px;padding:7px 10px;margin-bottom:7px;color:#777;border:1px solid #e5e5e5;background-color:#f5f5f5;border-radius:2px;world-break:break-word}.csf-field-link .csf--wrap{position:relative;float:left;width:100px}.csf-field-link .csf--unit{position:absolute;z-index:1;right:4px;top:4px;bottom:4px;padding:2px 6px;color:#666;font-size:11px;line-height:1;border-radius:2px;background:#eee;user-select:none;display:flex;justify-content:center;flex-direction:column}.csf-help{cursor:help;position:absolute;top:0;right:0;padding:5px;font-size:13px;color:#aaa}.csf-help .csf-help-text{display:none}.csf--preview{max-width:100%}.csf-image-preview{display:inline-flex;align-items:center;justify-content:center;flex-direction:column;position:relative;padding:6px;max-width:120px;max-height:120px;min-width:40px;min-height:40px;margin-bottom:10px;text-align:center;border-radius:2px;border:1px solid #ccc;background-color:#f9f9f9;box-shadow:0 1px 0 rgba(0,0,0,.08)}.csf-image-preview i{cursor:pointer;position:absolute;z-index:1;right:4px;top:4px;font-size:14px;width:22px;height:22px;line-height:22px;text-align:center;text-decoration:none;color:#fff;background-color:#d33;opacity:.75;border-radius:2px;transition:all .2s}.csf-image-preview i:hover{opacity:1}.csf-image-preview i:focus{box-shadow:none}.csf-image-preview span{position:relative;overflow:hidden;display:flex;height:100%;width:100%}.csf-image-preview img{max-width:100%;height:auto;object-fit:contain}.csf-field-custom .csf-field{padding:0}.csf-field .chosen-container-single .chosen-single{height:28px;line-height:26px}.csf-field .chosen-container-single .chosen-single abbr{top:0;right:20px;font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;font-size:12px;height:100%;width:18px;color:#aaa;text-align:center;background:0 0}.csf-field .chosen-container-single .chosen-single abbr:before{content:"\f00d"}.csf-field .chosen-container-single .chosen-single abbr:hover{color:#555}.csf-field .chosen-container-multi .chosen-choices li.search-choice .search-choice-close{font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;font-size:12px;height:100%;width:18px;color:#aaa;text-align:center;background:0 0}.csf-field .chosen-container-multi .chosen-choices li.search-choice .search-choice-close:before{content:"\f00d";display:inline-block;padding-top:3px}.csf-field .chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover{color:#555}.csf-field .chosen-container-single .chosen-single div b{font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;font-size:14px;color:#aaa;background:0 0}.csf-field .chosen-container-single .chosen-single div b:before{content:"\f107"}.csf-field .chosen-container-single .chosen-single div b:hover{color:#555}.csf-field .chosen-container-multi .chosen-choices li.search-choice-placeholder{border:1px dashed #aaa;margin:3px 5px 3px 0}.csf-field .chosen-container-multi .ui-sortable li.search-choice span{cursor:move}.csf-field .chosen-container-active.chosen-with-drop .chosen-single div b:before{content:"\f106"}.csf-field .chosen-container-single .chosen-single-with-deselect span{margin-right:40px}.csf-field .chosen-container-single .chosen-search input[type=text]{background:0 0}.csf-field .chosen-container-single .chosen-search:before{font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;font-size:11px;content:"\f002";position:absolute;right:12px;top:10px;color:#aaa}.csf-field .wp-picker-container{display:inline-block}.csf-field .wp-picker-container .wp-color-result.button{margin-bottom:0}.csf-field .csf--transparent-wrap{display:none;position:relative;top:-1px;width:235px;padding:9px 10px;border:1px solid #dfdfdf;border-top:none;background-color:#fff}.csf-field .wp-picker-active .csf--transparent-wrap{display:block}.csf-field .csf--transparent-slider{position:absolute;width:190px;margin-left:2px;height:18px}.csf-field .csf--transparent-slider .ui-slider-handle{position:absolute;top:-3px;bottom:-3px;z-index:5;border-color:#aaa;border-style:solid;border-width:4px 3px;width:10px;height:16px;margin:0 -5px;background:0 0;cursor:ew-resize;opacity:.9;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.2)}.csf-field .csf--transparent-slider .ui-slider-handle:before{content:" ";position:absolute;left:-2px;right:-2px;top:-3px;bottom:-3px;border:2px solid #fff;border-radius:3px}.csf-field .csf--transparent-offset{height:18px;width:200px;background:url(../images/checkerboard.png) repeat-y center left scroll #fff;border-radius:2px;box-shadow:inset 0 0 5px rgba(0,0,0,.4)}.csf-field .csf--transparent-text{position:absolute;top:12px;right:10px;width:30px;font-size:12px;line-height:12px;text-align:center;color:#999}.csf-field .csf--transparent-button{cursor:pointer;user-select:none;margin-top:10px;font-size:11px;text-align:center;border-radius:2px;padding:3px 7px;box-shadow:0 1px 0 rgba(0,0,0,.1);letter-spacing:.2px;color:#777;border:1px solid #ccc;background-color:#f7f7f7;transition:background-color .2s,border-color .2s,color .2s}.csf-field .csf--transparent-active .wp-color-result{background-image:url(../images/checkerboard.png);background-size:135px;background-position:center left;background-color:transparent!important}.csf-field .csf--transparent-active .csf--transparent-button{color:#fff;border-color:#3ea032;background-color:#4fb845}.csf-field .csf--transparent-active .fa:before{content:"\f205"}.csf-widgets>.csf-field{position:relative;top:-1px;margin-left:-15px;margin-right:-15px;padding:12px 15px}.csf-widgets>.csf-field .csf-title{float:none;width:100%;margin-bottom:5px}.csf-widgets>.csf-field .csf-fieldset{float:none;width:100%}.csf-widgets .csf-field-text input{width:100%}.csf-widgets .csf-field-notice .csf-notice{padding:15px}.control-section .csf-widgets>.csf-field{margin-left:-10px;margin-right:-10px;padding:10px 12px}.wp-block .csf-widgets{font-size:13px}.wp-block .csf-widgets>.csf-field{margin-left:-10px;margin-right:-10px}.wp-block .csf-widgets>.csf-field .button-primary{color:#fff}.wp-block .csf-widgets>.csf-field>.csf-title>h4{font-size:13px}.control-section .csf-field{padding:0}.control-section .csf-field .csf-title{float:none;width:100%;margin-bottom:6px}.control-section .csf-field .csf-title h4{display:block;font-size:13px;line-height:1;font-weight:600;color:inherit}.control-section .csf-field .csf-fieldset{float:none;width:100%}.control-section .csf-help{top:-5px;right:-5px}.control-section .csf-field-select select{width:100%}.control-section .csf-field-heading{color:inherit;font-size:14px;line-height:1em;margin-right:-15px;margin-left:-15px;padding:15px}.control-section .csf-field-subheading{color:inherit;font-size:11px;margin-right:-15px;margin-left:-15px;padding:10px 15px}.control-section .csf-subtitle-text{margin-top:4px;font-size:12px}.control-section .csf-field-submessage .csf-submessage{margin-right:-15px;margin-left:-15px;padding:15px}.control-section .csf-fieldset .csf-field-heading,.control-section .csf-fieldset .csf-field-subheading,.control-section .csf-fieldset .csf-field-submessage .csf-submessage{margin-left:0;margin-right:0}.control-section .csf-field-date label,.control-section .csf-field-datetime label{display:block}.control-section .csf-field-date .csf--to,.control-section .csf-field-datetime .csf--to{margin-top:4px;margin-left:0}.control-section .csf-field-sorter ul li{padding:5px}.control-section .csf-field-sorter .csf-modules{float:none;width:100%}.control-section .csf-field-sorter .csf-modules:first-child{padding-right:0;padding-bottom:15px}.control-section .csf-field-background .csf--background-attributes{flex-direction:column}.control-section .csf-field-spacing input{width:90px}.control-section .csf-field-border .csf--input{flex:1 50%}.control-section .csf-field-border input,.control-section .csf-field-border select{width:100%}.control-section .csf-field-spinner input{width:50px}.control-section .csf-field-number .csf--wrap{width:100%}.control-section .csf-field-backup .csf-export-data{display:none}.control-section .csf-field-fieldset .csf-fieldset-content{border-color:#e5e5e5}.control-section .csf-accordion-content>.csf-field,.control-section .csf-cloneable-content>.csf-field,.control-section .csf-fieldset-content>.csf-field,.control-section .csf-repeater-content>.csf-field,.control-section .csf-sortable-content>.csf-field,.control-section .csf-tabbed-content>.csf-field{padding:10px}.control-section .csf-accordion-content>.csf-field .csf-title,.control-section .csf-cloneable-content>.csf-field .csf-title,.control-section .csf-fieldset-content>.csf-field .csf-title,.control-section .csf-repeater-content>.csf-field .csf-title,.control-section .csf-sortable-content>.csf-field .csf-title,.control-section .csf-tabbed-content>.csf-field .csf-title{margin-bottom:5px}.control-section .csf-accordion-content>.csf-field h4,.control-section .csf-cloneable-content>.csf-field h4,.control-section .csf-fieldset-content>.csf-field h4,.control-section .csf-repeater-content>.csf-field h4,.control-section .csf-sortable-content>.csf-field h4,.control-section .csf-tabbed-content>.csf-field h4{font-size:12px}.control-section .csf-depend-hidden.csf-depend-on{display:none!important}.control-section .csf-depend-visible.csf-depend-on{border-top:0!important}.csf-taxonomy{max-width:95%}.csf-taxonomy>.csf-field{border-top:none!important}.csf-taxonomy>.csf-field-heading{font-size:1.1em;padding:20px!important;border:1px solid #ddd}.csf-taxonomy>.csf-field-subheading{font-size:12px;padding:15px!important;border:1px solid #ddd}.csf-taxonomy>.csf-field-submessage .csf-submessage{padding:15px;border-left-width:1px;border-left-style:solid;border-right-width:1px;border-right-style:solid}.csf-taxonomy>.csf-field-notice{background-color:transparent}.csf-taxonomy .csf-section-title{display:block;padding:15px;background-color:#f9f9f9;border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,.04)}.csf-taxonomy-add-fields>.csf-field{padding:8px 0}.csf-taxonomy-add-fields>.csf-field>.csf-title{float:none;width:100%;padding:2px 2px 4px 0}.csf-taxonomy-add-fields>.csf-field>.csf-title h4{font-size:12px;font-weight:400}.csf-taxonomy-add-fields>.csf-field>.csf-fieldset{float:none;width:100%}.csf-taxonomy-add-fields>.csf-field>.csf-fieldset>.csf-help{right:-5px}.csf-taxonomy-add-fields+p.submit{margin-top:0}.csf-taxonomy-edit-fields>.csf-field{padding:20px 0}.csf-taxonomy-edit-fields>.csf-field>.csf-title{width:200px}.csf-taxonomy-edit-fields>.csf-field>.csf-title h4{font-size:14px;font-weight:600;line-height:1.3;display:inline-block;vertical-align:middle}.csf-taxonomy-edit-fields>.csf-field>.csf-fieldset{width:calc(100% - 220px)}.csf-taxonomy-edit-fields>.csf-field>.csf-fieldset>.csf-help{top:-5px;right:-5px}.csf-taxonomy-edit-fields>.csf-field-submessage{margin:20px 0}.csf-taxonomy-edit-fields>.csf-field-heading,.csf-taxonomy-edit-fields>.csf-field-subheading{margin:20px 0;border:1px solid #ddd}.csf-nav-menu-options{clear:both;float:left;width:100%}.csf-nav-menu-options>.csf-fields{margin-left:-10px;margin-top:10px;margin-bottom:10px;border-top:1px solid #eee;border-bottom:1px solid #eee}.csf-nav-menu-options>.csf-fields>.csf-field{padding:12px 14px 12px 12px}.csf-nav-menu-options>.csf-fields>.csf-field .csf-title{float:none;width:100%;margin-bottom:5px}.csf-nav-menu-options>.csf-fields>.csf-field .csf-fieldset{float:none;width:100%}.csf-nav-menu-options .csf-field-text input{width:100%}.csf-nav-menu-options .csf-field-notice .csf-notice{padding:15px}.csf-nav-menu-title{padding:12px 14px 12px 12px;background-color:#f5f5f5;border-top:1px solid #eee;border-bottom:1px solid #eee}.csf-nav-menu-title:first-child{border-top:0}.csf-nav-menu-title h4{margin:0;padding:0;color:#23282d}.csf-nav-menu-icon{margin-right:5px}.csf-profile-options>h2>.fa{padding-right:7px}.csf-profile-options>.csf-field{max-width:750px;padding:15px 0;border-top:none!important}.csf-profile-options>.csf-field>.csf-title{width:200px}.csf-profile-options>.csf-field>.csf-title h4{font-size:14px;font-weight:600;line-height:1.3;display:inline-block;vertical-align:middle}.csf-profile-options>.csf-field>.csf-fieldset{width:calc(100% - 220px)}.csf-profile-options>.csf-field>.csf-fieldset>.csf-help{top:-15px;right:-5px}.csf-profile-options>.csf-field-heading{font-size:1.1em}.csf-profile-options>.csf-field-subheading{font-size:12px}.csf-profile-options>.csf-field-heading,.csf-profile-options>.csf-field-subheading{margin:10px 0;padding:15px!important;border:1px solid #ddd}.csf-profile-options>.csf-field-submessage{margin:20px 0}.csf-profile-options>.csf-field-submessage .csf-submessage{padding:10px;border-left-width:1px;border-left-style:solid;border-right-width:1px;border-right-style:solid}.csf-profile-options>.csf-field-notice{background-color:transparent}.csf-modal{position:fixed;z-index:100101;top:0;left:0;width:100%;height:100%}.csf-modal.hidden{display:none}.csf-modal-icon{z-index:100102}.csf-modal-table{display:table;width:100%;height:100%}.csf-modal-table-cell{display:table-cell;vertical-align:middle;margin:100px 0}.csf-modal-inner{position:relative;z-index:10;width:760px;height:750px;margin:0 auto;background-color:#fff}.csf-modal-content{position:relative;overflow:hidden;overflow-y:auto;height:595px}.csf-modal-content .csf-shortcode-button{display:none}.csf-modal-content .csf-field{padding:15px 30px 15px 15px}.csf-modal-content a:active,.csf-modal-content a:focus{outline:0;box-shadow:none}.csf-modal-content h4{font-size:13px}.csf-modal-content h4 small{font-style:italic;font-weight:400;color:#aaa}.csf-modal-title{position:relative;background-color:#fcfcfc;border-bottom:1px solid #ddd;height:36px;font-size:16px;font-weight:600;line-height:36px;margin:0;padding:0 36px 0 16px}.csf-modal-header{width:100%;padding:14px 0;background-color:#f5f5f5;border-bottom:1px solid #ddd}.csf-modal-header select{display:block;width:250px;margin:0 auto;font-size:13px;line-height:1;height:30px;min-height:30px;background-color:#fff}.csf-modal-close{color:#666;padding:0;position:absolute;top:0;right:0;width:36px;height:36px;text-align:center;background:0 0;border:none;cursor:pointer}.csf-modal-close:before{font:normal 20px/36px dashicons;content:"\f158";vertical-align:top;width:36px;height:36px}.csf-modal-close:hover{opacity:.5}.csf-modal-insert-wrapper{text-align:center;width:100%;padding:15px 0;background-color:#f5f5f5;border-top:1px solid #ddd}.csf-modal-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#000;opacity:.5}.csf--repeatable{padding:15px 15px 0 15px}.csf--repeat-button-block{text-align:center;padding-bottom:15px}.csf--repeat-shortcode{position:relative;margin-bottom:15px;border:1px dashed #ddd}.csf--repeat-shortcode:first-child .csf-repeat-remove{display:none}.csf--repeat-shortcode .csf-repeat-remove{position:absolute;right:10px;top:10px;z-index:10;cursor:pointer;display:inline-block;font-size:11px;width:18px;height:18px;line-height:18px;text-align:center;border-radius:2px;color:#fff;background-color:#e14d43;opacity:.5}.csf--repeat-shortcode .csf-repeat-remove:hover{opacity:.5}.csf-shortcode-single .csf-modal-inner{height:750px}.csf-shortcode-single .csf-modal-content{height:652px}.elementor-editor-active .csf-shortcode-button{margin-left:5px}.elementor-editor-active .csf-modal .hidden{display:none!important}.csf-shortcode-block{text-align:center;padding:14px;font-size:13px;background-color:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.csf-shortcode-block .components-button{margin-bottom:10px}.csf-modal-icon .csf-icon-title{padding:15px 0;margin:4px;font-size:14px;font-weight:700;text-align:center;border:1px solid #eee;background-color:#f7f7f7}.csf-modal-icon .csf-modal-header{text-align:center}.csf-modal-icon .csf-icon-search{width:50%;height:40px;line-height:40px}.csf-modal-icon i{cursor:pointer;display:inline-block;margin:4px;width:35px;height:35px;line-height:35px;font-size:16px;color:#555;text-align:center;border:1px solid #ccc;background-color:#f7f7f7;border-radius:2px;box-shadow:1px 1px 0 rgba(0,0,0,.05)}.csf-modal-icon i:hover{color:#fff;border-color:#222;background-color:#222}.csf-modal-icon .csf-modal-content{padding:10px;height:618px}.csf-modal-icon .csf-error-text{padding:10px}.csf-modal-loading{display:none;position:absolute;left:15px;top:15px}.csf-loading{position:relative;width:20px;height:20px;background:#ccc;border-radius:20px;box-shadow:0 2px 5px rgba(0,0,0,.07)}.csf-loading:after{position:absolute;top:50%;left:50%;width:4px;height:4px;content:"";margin-top:-2px;margin-left:-2px;background-color:#fff;animation-duration:.5s;animation-iteration-count:infinite;animation-timing-function:linear;animation-name:csfLoader;border-radius:4px}@keyframes csfLoader{0%{transform:rotate(0) translateX(-6px) rotate(0)}100%{transform:rotate(360deg) translateX(-6px) rotate(-360deg)}}.csf-subtitle-text{margin-top:6px;font-weight:400;color:#999}.csf-desc-text{clear:both;float:left;width:100%;margin-top:6px;font-weight:400;color:#999}.csf-error-text{margin-top:6px;color:#d02c21}.csf-before-text{margin-bottom:6px}.csf-after-text{margin-top:6px}.csf-metabox-hide{display:none!important}.csf-metabox-show{display:block!important}.csf-depend-hidden.csf-depend-on{display:none}.csf-depend-visible.csf-depend-on{display:block;opacity:.75;filter:grayscale(1);user-select:none;border-top:1px solid #eee}.csf-depend-visible.csf-depend-on .clear:before{content:"";left:0;top:0;right:0;bottom:0;position:absolute;background-color:#eee;opacity:.25;z-index:10}.csf-warning-primary{color:#fff!important;border-color:#dc3545!important;background:#dc3545!important}.csf-warning-primary:focus,.csf-warning-primary:hover{border-color:#bd2130!important;background:#bd2130!important}.csf-warning-primary:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #bd2130!important}.csf-warning-primary:active{border-color:#bd2130!important;background:#bd2130!important}.csf-form-result{display:none;float:left;padding:0 8px;margin-right:4px;font-size:11px;line-height:30px;user-select:none;border-radius:2px}.csf-form-show{display:block}.csf-form-success{color:#fff;background-color:#46b450}.csf-form-warning{color:#8a6d3b;background-color:#faebcc}.csf-label-error{position:relative;top:-2px;display:inline-block;font-size:10px;line-height:10px;height:10px;width:10px;padding:1px;font-style:normal;text-align:center;color:#fff;vertical-align:middle;background-color:#e10000;border-radius:2px}.csf-no-option{padding:30px}.csf-input-number{-moz-appearance:textfield}.csf-input-number::-webkit-inner-spin-button,.csf-input-number::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.csf-fa5-shims .csf .fab,.csf-fa5-shims .csf .far,.csf-fa5-shims .csf .fas{font-family:FontAwesome;font-style:normal}.csf-welcome-wrap{position:relative;margin:25px 40px 0 20px;font-size:15px;max-width:1200px}.csf-welcome-wrap p{font-size:14px;line-height:1.5}.csf-welcome-wrap h1{margin:.2em 200px 0 0;padding:0;color:#32373c;line-height:1.2em;font-size:2.8em;font-weight:400}.csf-welcome-wrap .csf-logo{position:absolute;overflow:hidden;top:0;right:0;height:160px;width:140px;background-image:linear-gradient(45deg,#2d67cb,#ad19f3);box-shadow:0 1px 4px rgba(0,0,0,.25),inset 0 0 0 4px rgba(0,0,0,.25)}.csf-welcome-wrap .csf-logo .csf--effects i{position:absolute;width:200px;height:100px;background-color:rgba(0,0,0,.15);transform:rotate(-45deg)}.csf-welcome-wrap .csf-logo .csf--effects i:nth-child(1){bottom:-20px;right:-70px}.csf-welcome-wrap .csf-logo .csf--effects i:nth-child(2){bottom:-35px;right:-80px}.csf-welcome-wrap .csf-logo .csf--effects i:nth-child(3){bottom:-50px;right:-90px}.csf-welcome-wrap .csf-logo .csf--effects i:nth-child(4){bottom:-65px;right:-100px}.csf-welcome-wrap .csf-logo .csf--wp-logos{position:relative;padding-top:25px;text-align:center}.csf-welcome-wrap .csf-logo .csf--wp-logo{position:absolute;left:20px;width:20px;height:20px;background-repeat:no-repeat;background-position:center center;background-image:url(../images/wp-logo.svg)}.csf-welcome-wrap .csf-logo .csf--wp-plugin-logo{display:inline-block;width:50px;height:50px;border:3px solid #fff;background-size:40px;background-repeat:no-repeat;background-position:center center;background-image:url(../images/wp-plugin-logo.svg);border-radius:100%;vertical-align:middle}.csf-welcome-wrap .csf-logo .csf--text{position:absolute;left:0;right:0;top:90px;color:#fff;font-size:13px;line-height:1.2em;font-weight:600;text-align:center;text-transform:uppercase;text-shadow:1px 1px 0 rgba(0,0,0,.25)}.csf-welcome-wrap .csf-logo .csf--version{top:auto;left:auto;right:8px;bottom:4px;font-size:11px;text-transform:lowercase}.csf-welcome-wrap .csf-about-text{font-weight:400;line-height:1.6em;font-size:19px;margin:1em 200px 1em 0;color:#555d66}.csf-welcome-wrap .csf-demo-button{margin:1em 200px 2em 0}.csf-welcome-wrap .nav-tab-wrapper{margin-bottom:20px}.csf-welcome-wrap ul{list-style-type:disc;padding-left:15px}.csf-welcome-wrap .csf--col{float:left;padding-right:20px;box-sizing:border-box}.csf-welcome-wrap .csf--col-2{width:50%}.csf-welcome-wrap .csf--col-3{width:33.333%}.csf-welcome-wrap .csf--col-4{width:25%}.csf-welcome-wrap .csf--col-5{width:20%}.csf-welcome-wrap .csf--col-last{padding-right:0}.csf-welcome-wrap .csf--col-upgrade{padding:10px 0;text-align:center;border-top:1px solid #e5e5e5}.csf--table-compare tfoot td,.csf--table-compare thead td{text-align:center}.csf--table-compare td{font-size:14px;text-align:center;vertical-align:middle;padding:10px}.csf--table-compare td:first-child{text-align:left}.csf--table-compare tfoot td{padding:15px 0}.csf--table-compare .fa{font-size:18px}.csf--table-compare .fa-check-circle{color:#46b450}.csf--table-compare .fa-times-circle{color:#dc3232}.csf-welcome-cols{clear:both;margin:20px 0;background-color:#fff;padding:0 0;border-radius:2px;border:1px solid #e5e5e5}.csf-welcome-cols .csf--col{width:33.333%;float:left;padding:20px;text-align:center;box-sizing:border-box;min-height:200px;border-right:1px solid #e5e5e5}.csf-welcome-cols .csf--block,.csf-welcome-cols .csf--left{float:left;width:20%;padding:0 30px;text-align:center;box-sizing:border-box}.csf-welcome-cols .csf--block{width:80%}.csf-welcome-cols .csf--col-first{border-bottom:1px solid #e5e5e5}.csf-welcome-cols .csf--last{border-right:none}.csf-welcome-cols .csf--space{height:20px}.csf-welcome-cols .csf--icon{display:inline-block;font-size:20px;width:30px;height:30px;line-height:30px;text-align:center;margin-bottom:10px;color:#fff;background-color:#555;border-radius:30px}.csf-welcome-cols .csf--active{background-color:#5cb85c}.csf-welcome-cols .csf--deactive{background-color:#e14d43}.csf-welcome-cols .csf--title{font-weight:700;display:block}.csf-welcome-cols p:last-child{margin-bottom:0}.csf-features-cols .csf--key-features{width:30%}.csf-features-cols .csf--available-fields{width:70%}.csf-code-block{margin:20px 0;padding:5px 20px;background-color:#fff;border-radius:2px;box-shadow:0 1px 1px rgba(0,0,0,.15)}.csf-code-block pre{font-size:13px;color:#0073aa}.csf-code-block pre span{color:#999}.csf--table-fields td{font-size:14px}.csf--upgrade a{color:#5cb85c;font-weight:700}.csf--upgrade a:focus,.csf--upgrade a:hover{color:#4aa14a;outline:0;box-shadow:none}@media only screen and (max-width:782px){.csf-welcome-cols .csf--col{width:100%;min-height:auto;border-right:none;border-bottom:1px solid #e5e5e5}.csf-features-cols .csf--key-features{width:100%}.csf-features-cols .csf--available-fields{width:100%}}@media only screen and (max-width:1200px){.csf-metabox .csf-field .csf-title{float:none;width:100%;margin-bottom:10px}.csf-metabox .csf-field .csf-fieldset{float:none;width:100%}}@media only screen and (max-width:782px){.csf-header-inner{text-align:center}.csf-header-inner h1{width:100%;margin-bottom:10px}.csf-form-result{float:none;margin-right:0;margin-bottom:10px}.csf-header-left,.csf-header-right,.csf-search{width:100%}.csf-search{text-align:center;margin-bottom:15px}.csf-footer{text-align:center}.csf-buttons{float:none}.csf-copyright{float:none;margin-top:10px}.csf-expand-all,.csf-nav,.csf-nav-background,.csf-reset-section{display:none!important}.csf-nav-normal+.csf-content{margin-left:0}.csf-section,.csf-section-title{display:block!important}.csf-field .csf-title{float:none;width:100%;margin-bottom:10px}.csf-field .csf-fieldset{float:none;width:100%}.csf-field-color .button.wp-picker-clear{padding:0 8px;line-height:2.14285714;min-height:32px}.csf-profile-options>.csf-field>.csf-title,.csf-taxonomy-edit-fields>.csf-field>.csf-title{float:none;width:100%;margin-bottom:10px}.csf-profile-options>.csf-field>.csf-fieldset,.csf-taxonomy-edit-fields>.csf-field>.csf-fieldset{float:none;width:100%}.csf-nav-menu-options>.csf-fields{margin-left:-10px;margin-right:-10px}.csf-nav-menu-options>.csf-fields>.csf-field{padding:10px}}@media only screen and (max-width:782px){.csf-modal .csf-modal-inner{width:90%}}@media only screen and (max-height:750px){.csf-modal .csf-modal-inner{height:auto}.csf-modal .csf-modal-content{height:calc(100vh - 200px)}}.chosen-container{position:relative;display:inline-block;vertical-align:middle;font-size:13px;user-select:none}.chosen-container *{box-sizing:border-box}.chosen-container .chosen-drop{position:absolute;top:100%;z-index:1010;width:100%;border:1px solid #aaa;border-top:0;background:#fff;box-shadow:0 4px 5px rgba(0,0,0,.15);clip:rect(0,0,0,0);clip-path:inset(100% 100%)}.chosen-container.chosen-with-drop .chosen-drop{clip:auto;clip-path:none}.chosen-container a{cursor:pointer}.chosen-container .chosen-single .group-name,.chosen-container .search-choice .group-name{margin-right:4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:400;color:#999}.chosen-container .chosen-single .group-name:after,.chosen-container .search-choice .group-name:after{content:":";padding-left:2px;vertical-align:top}.chosen-container-single .chosen-single{position:relative;display:block;overflow:hidden;padding:0 0 0 8px;height:25px;border:1px solid #aaa;border-radius:5px;background-color:#fff;background:linear-gradient(#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background-clip:padding-box;box-shadow:0 0 3px #fff inset,0 1px 1px rgba(0,0,0,.1);color:#444;text-decoration:none;white-space:nowrap;line-height:24px}.chosen-container-single .chosen-default{color:#999}.chosen-container-single .chosen-single span{display:block;overflow:hidden;margin-right:26px;text-overflow:ellipsis;white-space:nowrap}.chosen-container-single .chosen-single-with-deselect span{margin-right:38px}.chosen-container-single .chosen-single abbr{position:absolute;top:6px;right:26px;display:block;width:12px;height:12px;font-size:1px}.chosen-container-single .chosen-single div{position:absolute;top:0;right:0;display:block;width:18px;height:100%}.chosen-container-single .chosen-single div b{display:block;width:100%;height:100%}.chosen-container-single .chosen-search{position:relative;z-index:1010;margin:0;padding:3px 4px;white-space:nowrap}.chosen-container-single .chosen-search input[type=text]{margin:1px 0;padding:4px 20px 4px 5px;width:100%;height:auto;outline:0;border:1px solid #aaa;font-size:1em;font-family:sans-serif;line-height:normal;border-radius:0}.chosen-container-single .chosen-drop{margin-top:-1px;border-radius:0 0 4px 4px;background-clip:padding-box}.chosen-container-single.chosen-container-single-nosearch .chosen-search{position:absolute;clip:rect(0,0,0,0);clip-path:inset(100% 100%)}.chosen-container .chosen-results{color:#444;position:relative;overflow-x:hidden;overflow-y:auto;margin:0 4px 4px 0;padding:0 0 0 4px;max-height:240px;-webkit-overflow-scrolling:touch}.chosen-container .chosen-results li{display:none;margin:0;padding:5px 6px;list-style:none;line-height:15px;word-wrap:break-word;-webkit-touch-callout:none}.chosen-container .chosen-results li.active-result{display:list-item;cursor:pointer}.chosen-container .chosen-results li.disabled-result{display:list-item;color:#ccc;cursor:default}.chosen-container .chosen-results li.highlighted{background-color:#3875d7;background-image:linear-gradient(#3875d7 20%,#2a62bc 90%);color:#fff}.chosen-container .chosen-results li.no-results{color:#777;display:list-item;background:#f4f4f4}.chosen-container .chosen-results li.group-result{display:list-item;font-weight:700;cursor:default}.chosen-container .chosen-results li.group-option{padding-left:15px}.chosen-container .chosen-results li em{font-style:normal;text-decoration:underline}.chosen-container-multi .chosen-choices{position:relative;overflow:hidden;margin:0;padding:0 5px;width:100%;height:auto;border:1px solid #aaa;background-color:#fff;background-image:linear-gradient(#eee 1%,#fff 15%);cursor:text}.chosen-container-multi .chosen-choices li{float:left;list-style:none}.chosen-container-multi .chosen-choices li.search-field{margin:0;padding:0;white-space:nowrap}.chosen-container-multi .chosen-choices li.search-field input[type=text]{margin:1px 0;padding:0;outline:0;border:0!important;background:0 0!important;box-shadow:none;color:#999;font-size:100%;font-family:sans-serif;line-height:normal;border-radius:0;width:25px;height:25px;min-height:25px}.chosen-container-multi .chosen-choices li.search-choice{position:relative;margin:3px 5px 3px 0;padding:3px 20px 3px 6px;border:1px solid #aaa;max-width:100%;border-radius:3px;background-color:#eee;background-image:linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-size:100% 19px;background-repeat:repeat-x;background-clip:padding-box;box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,.05);color:#333;line-height:13px;cursor:default}.chosen-container-multi .chosen-choices li.search-choice span{word-wrap:break-word;white-space:nowrap}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close{position:absolute;top:0;right:0;display:block;width:12px;height:12px;font-size:1px}.chosen-container-multi .chosen-choices li.search-choice-disabled{padding-right:5px;border:1px solid #ccc;background-color:#e4e4e4;background-image:linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);color:#666}.chosen-container-multi .chosen-choices li.search-choice-focus{background:#d4d4d4}.chosen-container-multi .chosen-results{margin:0;padding:0}.chosen-container-multi .chosen-drop .result-selected{display:list-item;color:#ccc;cursor:default}.chosen-container-active .chosen-single{border:1px solid #5897fb;box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active.chosen-with-drop .chosen-single{border:1px solid #aaa;border-bottom-right-radius:0;border-bottom-left-radius:0;background-image:linear-gradient(#eee 20%,#fff 80%);box-shadow:0 1px 0 #fff inset}.chosen-container-active.chosen-with-drop .chosen-single div{border-left:none;background:0 0}.chosen-container-active .chosen-choices{border:1px solid #5897fb;box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active .chosen-choices li.search-field input[type=text]{color:#222!important}.chosen-disabled{opacity:.5!important;cursor:default}.chosen-disabled .chosen-single{cursor:default}.chosen-disabled .chosen-choices .search-choice .search-choice-close{cursor:default}.chosen-rtl{text-align:right}.chosen-rtl .chosen-single{overflow:visible;padding:0 8px 0 0}.chosen-rtl .chosen-single span{margin-right:0;margin-left:26px;direction:rtl}.chosen-rtl .chosen-single-with-deselect span{margin-left:38px}.chosen-rtl .chosen-single div{right:auto;left:3px}.chosen-rtl .chosen-single abbr{right:auto;left:26px}.chosen-rtl .chosen-choices li{float:right}.chosen-rtl .chosen-choices li.search-field input[type=text]{direction:rtl}.chosen-rtl .chosen-choices li.search-choice{margin:3px 5px 3px 0;padding:3px 5px 3px 19px}.chosen-rtl .chosen-choices li.search-choice .search-choice-close{right:auto;left:4px}.chosen-rtl.chosen-container-single .chosen-results{margin:0 0 4px 4px;padding:0 4px 0 0}.chosen-rtl .chosen-results li.group-option{padding-right:15px;padding-left:0}.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div{border-right:none}.chosen-rtl .chosen-search input[type=text]{padding:4px 5px 4px 20px;direction:rtl}.flatpickr-calendar{background:0 0;opacity:0;display:none;text-align:center;visibility:hidden;padding:0;-webkit-animation:none;animation:none;direction:ltr;border:0;font-size:14px;line-height:24px;border-radius:5px;position:absolute;width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-touch-action:manipulation;touch-action:manipulation;background:#fff;-webkit-box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,.08);box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,.08)}.flatpickr-calendar.inline,.flatpickr-calendar.open{opacity:1;max-height:640px;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:99999}.flatpickr-calendar.animate.open{-webkit-animation:fpFadeInDown .3s cubic-bezier(.23,1,.32,1);animation:fpFadeInDown .3s cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{z-index:999;display:block}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){-webkit-box-shadow:none!important;box-shadow:none!important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){-webkit-box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-calendar .hasTime .dayContainer,.flatpickr-calendar .hasWeeks .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.hasTime .flatpickr-time{height:40px;border-top:1px solid #e6e6e6}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:after,.flatpickr-calendar:before{position:absolute;display:block;pointer-events:none;border:solid transparent;content:'';height:0;width:0;left:22px}.flatpickr-calendar.arrowRight:after,.flatpickr-calendar.arrowRight:before,.flatpickr-calendar.rightMost:after,.flatpickr-calendar.rightMost:before{left:auto;right:22px}.flatpickr-calendar.arrowCenter:after,.flatpickr-calendar.arrowCenter:before{left:50%;right:50%}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:after,.flatpickr-calendar.arrowTop:before{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:after,.flatpickr-calendar.arrowBottom:before{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{position:relative;display:inline-block}.flatpickr-months{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-months .flatpickr-month{background:0 0;color:rgba(0,0,0,.9);fill:rgba(0,0,0,.9);height:34px;line-height:1;text-align:center;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.flatpickr-months .flatpickr-next-month,.flatpickr-months .flatpickr-prev-month{text-decoration:none;cursor:pointer;position:absolute;top:0;height:34px;padding:10px;z-index:3;color:rgba(0,0,0,.9);fill:rgba(0,0,0,.9)}.flatpickr-months .flatpickr-next-month.flatpickr-disabled,.flatpickr-months .flatpickr-prev-month.flatpickr-disabled{display:none}.flatpickr-months .flatpickr-next-month i,.flatpickr-months .flatpickr-prev-month i{position:relative}.flatpickr-months .flatpickr-next-month.flatpickr-prev-month,.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month{left:0}.flatpickr-months .flatpickr-next-month.flatpickr-next-month,.flatpickr-months .flatpickr-prev-month.flatpickr-next-month{right:0}.flatpickr-months .flatpickr-next-month:hover,.flatpickr-months .flatpickr-prev-month:hover{color:#959ea9}.flatpickr-months .flatpickr-next-month:hover svg,.flatpickr-months .flatpickr-prev-month:hover svg{fill:#f64747}.flatpickr-months .flatpickr-next-month svg,.flatpickr-months .flatpickr-prev-month svg{width:14px;height:14px}.flatpickr-months .flatpickr-next-month svg path,.flatpickr-months .flatpickr-prev-month svg path{-webkit-transition:fill .1s;transition:fill .1s;fill:inherit}.numInputWrapper{position:relative;height:auto}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper input::-webkit-inner-spin-button,.numInputWrapper input::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.numInputWrapper span{position:absolute;right:0;width:14px;padding:0 4px 0 2px;height:50%;line-height:50%;opacity:0;cursor:pointer;border:1px solid rgba(57,57,57,.15);-webkit-box-sizing:border-box;box-sizing:border-box}.numInputWrapper span:hover{background:rgba(0,0,0,.1)}.numInputWrapper span:active{background:rgba(0,0,0,.2)}.numInputWrapper span:after{display:block;content:"";position:absolute}.numInputWrapper span.arrowUp{top:0;border-bottom:0}.numInputWrapper span.arrowUp:after{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid rgba(57,57,57,.6);top:26%}.numInputWrapper span.arrowDown{top:50%}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(57,57,57,.6);top:40%}.numInputWrapper span svg{width:inherit;height:auto}.numInputWrapper span svg path{fill:rgba(0,0,0,.5)}.numInputWrapper:hover{background:rgba(0,0,0,.05)}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{font-size:135%;line-height:inherit;font-weight:300;color:inherit;position:absolute;width:75%;left:12.5%;padding:7.48px 0 0 0;line-height:1;height:34px;display:inline-block;text-align:center;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.flatpickr-current-month span.cur-month{font-family:inherit;font-weight:700;color:inherit;display:inline-block;margin-left:.5ch;padding:0}.flatpickr-current-month span.cur-month:hover{background:rgba(0,0,0,.05)}.flatpickr-current-month .numInputWrapper{width:6ch;display:inline-block}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:rgba(0,0,0,.9)}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:rgba(0,0,0,.9)}.flatpickr-current-month input.cur-year{background:0 0;-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;cursor:text;padding:0 0 0 .5ch;margin:0;display:inline-block;font-size:inherit;font-family:inherit;font-weight:300;line-height:inherit;height:auto;border:0;border-radius:0;vertical-align:initial;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{font-size:100%;color:rgba(0,0,0,.5);background:0 0;pointer-events:none}.flatpickr-current-month .flatpickr-monthDropdown-months{appearance:menulist;background:0 0;border:none;border-radius:0;box-sizing:border-box;color:inherit;cursor:pointer;font-size:inherit;font-family:inherit;font-weight:300;height:auto;line-height:inherit;margin:-1px 0 0 0;outline:0;padding:0 0 0 .5ch;position:relative;vertical-align:initial;-webkit-box-sizing:border-box;-webkit-appearance:menulist;-moz-appearance:menulist;width:auto}.flatpickr-current-month .flatpickr-monthDropdown-months:active,.flatpickr-current-month .flatpickr-monthDropdown-months:focus{outline:0}.flatpickr-current-month .flatpickr-monthDropdown-months:hover{background:rgba(0,0,0,.05)}.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:transparent;outline:0;padding:0}.flatpickr-weekdays{background:0 0;text-align:center;overflow:hidden;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:28px}.flatpickr-weekdays .flatpickr-weekdaycontainer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}span.flatpickr-weekday{cursor:default;font-size:90%;background:0 0;color:rgba(0,0,0,.54);line-height:1;margin:0;text-align:center;display:block;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;font-weight:bolder}.dayContainer,.flatpickr-weeks{padding:1px 0 0 0}.flatpickr-days{position:relative;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;width:307.875px}.flatpickr-days:focus{outline:0}.dayContainer{padding:0;outline:0;text-align:left;width:307.875px;min-width:307.875px;max-width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;display:-ms-flexbox;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-wrap:wrap;-ms-flex-pack:justify;-webkit-justify-content:space-around;justify-content:space-around;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.dayContainer+.dayContainer{-webkit-box-shadow:-1px 0 0 #e6e6e6;box-shadow:-1px 0 0 #e6e6e6}.flatpickr-day{background:0 0;border:1px solid transparent;border-radius:150px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#393939;cursor:pointer;font-weight:400;width:14.2857143%;-webkit-flex-basis:14.2857143%;-ms-flex-preferred-size:14.2857143%;flex-basis:14.2857143%;max-width:39px;height:39px;line-height:39px;margin:0;display:inline-block;position:relative;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center}.flatpickr-day.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day.nextMonthDay:focus,.flatpickr-day.nextMonthDay:hover,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.today.inRange,.flatpickr-day:focus,.flatpickr-day:hover{cursor:pointer;outline:0;background:#e6e6e6;border-color:#e6e6e6}.flatpickr-day.today{border-color:#959ea9}.flatpickr-day.today:focus,.flatpickr-day.today:hover{border-color:#959ea9;background:#959ea9;color:#fff}.flatpickr-day.endRange,.flatpickr-day.endRange.inRange,.flatpickr-day.endRange.nextMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.endRange:focus,.flatpickr-day.endRange:hover,.flatpickr-day.selected,.flatpickr-day.selected.inRange,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.selected:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange,.flatpickr-day.startRange.inRange,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.startRange:focus,.flatpickr-day.startRange:hover{background:#569ff7;-webkit-box-shadow:none;box-shadow:none;color:#fff;border-color:#569ff7}.flatpickr-day.endRange.startRange,.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.endRange.endRange,.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)){-webkit-box-shadow:-10px 0 0 #569ff7;box-shadow:-10px 0 0 #569ff7}.flatpickr-day.endRange.startRange.endRange,.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;-webkit-box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.nextMonthDay,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.prevMonthDay{color:rgba(57,57,57,.3);background:0 0;border-color:transparent;cursor:default}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{cursor:not-allowed;color:rgba(57,57,57,.1)}.flatpickr-day.week.selected{border-radius:0;-webkit-box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7;box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{float:left}.flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;-webkit-box-shadow:1px 0 0 #e6e6e6;box-shadow:1px 0 0 #e6e6e6}.flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:rgba(57,57,57,.3);background:0 0;cursor:default;border:none}.flatpickr-innerContainer{display:block;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}.flatpickr-rContainer{display:inline-block;padding:0;-webkit-box-sizing:border-box;box-sizing:border-box}.flatpickr-time{text-align:center;outline:0;display:block;height:0;line-height:40px;max-height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-time:after{content:"";display:table;clear:both}.flatpickr-time .numInputWrapper{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;width:40%;height:40px;float:left}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#393939}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#393939}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{background:0 0;-webkit-box-shadow:none;box-shadow:none;border:0;border-radius:0;text-align:center;margin:0;padding:0;height:inherit;line-height:inherit;color:#393939;font-size:14px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-time input.flatpickr-hour{font-weight:700}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{outline:0;border:0}.flatpickr-time .flatpickr-am-pm,.flatpickr-time .flatpickr-time-separator{height:inherit;float:left;line-height:inherit;color:#393939;font-weight:700;width:2%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.flatpickr-time .flatpickr-am-pm{outline:0;width:18%;cursor:pointer;text-align:center;font-weight:400}.flatpickr-time .flatpickr-am-pm:focus,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time input:hover{background:#eee}.flatpickr-input[readonly]{cursor:pointer}@-webkit-keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}
vendor/codestar-framework/assets/images/wp-logo.svg CHANGED
@@ -1 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><rect x="0" fill="none" width="20" height="20"/><g><g fill="#fff"><path d="M20 10c0-5.52-4.48-10-10-10S0 4.48 0 10s4.48 10 10 10 10-4.48 10-10zM10 1.01c4.97 0 8.99 4.02 8.99 8.99s-4.02 8.99-8.99 8.99S1.01 14.97 1.01 10 5.03 1.01 10 1.01zM8.01 14.82L4.96 6.61c.49-.03 1.05-.08 1.05-.08.43-.05.38-1.01-.06-.99 0 0-1.29.1-2.13.1-.15 0-.33 0-.52-.01 1.44-2.17 3.9-3.6 6.7-3.6 2.09 0 3.99.79 5.41 2.09-.6-.08-1.45.35-1.45 1.42 0 .66.38 1.22.79 1.88.31.54.5 1.22.5 2.21 0 1.34-1.27 4.48-1.27 4.48l-2.71-7.5c.48-.03.75-.16.75-.16.43-.05.38-1.1-.05-1.08 0 0-1.3.11-2.14.11-.78 0-2.11-.11-2.11-.11-.43-.02-.48 1.06-.05 1.08l.84.08 1.12 3.04zm6.02 2.15L16.64 10s.67-1.69.39-3.81c.63 1.14.94 2.42.94 3.81 0 2.96-1.56 5.58-3.94 6.97zM2.68 6.77L6.5 17.25c-2.67-1.3-4.47-4.08-4.47-7.25 0-1.16.2-2.23.65-3.23zm7.45 4.53l2.29 6.25c-.75.27-1.57.42-2.42.42-.72 0-1.41-.11-2.06-.3z"/></g></g></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><rect x="0" fill="none" width="20" height="20"/><g><g fill="#fff"><path d="M20 10c0-5.52-4.48-10-10-10S0 4.48 0 10s4.48 10 10 10 10-4.48 10-10zM10 1.01c4.97 0 8.99 4.02 8.99 8.99s-4.02 8.99-8.99 8.99S1.01 14.97 1.01 10 5.03 1.01 10 1.01zM8.01 14.82L4.96 6.61c.49-.03 1.05-.08 1.05-.08.43-.05.38-1.01-.06-.99 0 0-1.29.1-2.13.1-.15 0-.33 0-.52-.01 1.44-2.17 3.9-3.6 6.7-3.6 2.09 0 3.99.79 5.41 2.09-.6-.08-1.45.35-1.45 1.42 0 .66.38 1.22.79 1.88.31.54.5 1.22.5 2.21 0 1.34-1.27 4.48-1.27 4.48l-2.71-7.5c.48-.03.75-.16.75-.16.43-.05.38-1.1-.05-1.08 0 0-1.3.11-2.14.11-.78 0-2.11-.11-2.11-.11-.43-.02-.48 1.06-.05 1.08l.84.08 1.12 3.04zm6.02 2.15L16.64 10s.67-1.69.39-3.81c.63 1.14.94 2.42.94 3.81 0 2.96-1.56 5.58-3.94 6.97zM2.68 6.77L6.5 17.25c-2.67-1.3-4.47-4.08-4.47-7.25 0-1.16.2-2.23.65-3.23zm7.45 4.53l2.29 6.25c-.75.27-1.57.42-2.42.42-.72 0-1.41-.11-2.06-.3z"/></g></g></svg>
vendor/codestar-framework/assets/images/wp-plugin-logo.svg CHANGED
@@ -1 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><rect x="0" fill="none" width="20" height="20"/><g><g fill="#fff"><path d="M13.11 4.36L9.87 7.6 8 5.73l3.24-3.24c.35-.34 1.05-.2 1.56.32.52.51.66 1.21.31 1.55zm-8 1.77l.91-1.12 9.01 9.01-1.19.84c-.71.71-2.63 1.16-3.82 1.16H6.14L4.9 17.26c-.59.59-1.54.59-2.12 0-.59-.58-.59-1.53 0-2.12l1.24-1.24v-3.88c0-1.13.4-3.19 1.09-3.89zm7.26 3.97l3.24-3.24c.34-.35 1.04-.21 1.55.31.52.51.66 1.21.31 1.55l-3.24 3.25z"/></g></g></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><rect x="0" fill="none" width="20" height="20"/><g><g fill="#fff"><path d="M13.11 4.36L9.87 7.6 8 5.73l3.24-3.24c.35-.34 1.05-.2 1.56.32.52.51.66 1.21.31 1.55zm-8 1.77l.91-1.12 9.01 9.01-1.19.84c-.71.71-2.63 1.16-3.82 1.16H6.14L4.9 17.26c-.59.59-1.54.59-2.12 0-.59-.58-.59-1.53 0-2.12l1.24-1.24v-3.88c0-1.13.4-3.19 1.09-3.89zm7.26 3.97l3.24-3.24c.34-.35 1.04-.21 1.55.31.52.51.66 1.21.31 1.55l-3.24 3.25z"/></g></g></svg>
vendor/codestar-framework/assets/js/gutenberg.js CHANGED
@@ -1,79 +1,79 @@
1
- /**
2
- *
3
- * -----------------------------------------------------------
4
- *
5
- * Codestar Framework Gutenberg Block
6
- * A Simple and Lightweight WordPress Option Framework
7
- *
8
- * -----------------------------------------------------------
9
- *
10
- */
11
- ( function( blocks, blockEditor, element, components ) {
12
-
13
- if ( !window.csf_gutenberg_blocks ) { return; }
14
-
15
- Object.values(window.csf_gutenberg_blocks).forEach( function( block ) {
16
-
17
- var registerBlockType = blocks.registerBlockType;
18
- var PlainText = blockEditor.PlainText;
19
- var createElement = element.createElement;
20
- var RawHTML = element.RawHTML;
21
- var Button = components.Button;
22
-
23
- registerBlockType('csf-gutenberg-block/block-'+block.hash, {
24
- title: block.gutenberg.title,
25
- description: block.gutenberg.description,
26
- icon: block.gutenberg.icon || 'screenoptions',
27
- category: block.gutenberg.category || 'widgets',
28
- keywords: block.gutenberg.keywords,
29
- supports: {
30
- html: false,
31
- className: false,
32
- customClassName: false,
33
- },
34
- attributes: {
35
- shortcode: {
36
- string: 'string',
37
- source: 'text',
38
- }
39
- },
40
- edit: function (props) {
41
- return (
42
- createElement('div', {className: 'csf-shortcode-block'},
43
-
44
- createElement(Button, {
45
- 'data-modal-id': block.modal_id,
46
- 'data-gutenberg-id': block.hash,
47
- className: 'is-secondary csf-shortcode-button',
48
- onClick: function () {
49
- window.csf_gutenberg_props = props;
50
- },
51
- }, block.button_title ),
52
-
53
- createElement(PlainText, {
54
- placeholder: block.gutenberg.placeholder,
55
- className: 'input-control blocks-shortcode__textarea',
56
- onChange: function (value) {
57
- props.setAttributes({
58
- shortcode: value
59
- });
60
- },
61
- value: props.attributes.shortcode
62
- })
63
-
64
- )
65
- );
66
- },
67
- save: function (props) {
68
- return createElement(RawHTML, {}, props.attributes.shortcode);
69
- }
70
- });
71
-
72
- });
73
-
74
- })(
75
- window.wp.blocks,
76
- window.wp.blockEditor,
77
- window.wp.element,
78
- window.wp.components
79
- );
1
+ /**
2
+ *
3
+ * -----------------------------------------------------------
4
+ *
5
+ * Codestar Framework Gutenberg Block
6
+ * A Simple and Lightweight WordPress Option Framework
7
+ *
8
+ * -----------------------------------------------------------
9
+ *
10
+ */
11
+ ( function( blocks, blockEditor, element, components ) {
12
+
13
+ if ( !window.csf_gutenberg_blocks ) { return; }
14
+
15
+ Object.values(window.csf_gutenberg_blocks).forEach( function( block ) {
16
+
17
+ var registerBlockType = blocks.registerBlockType;
18
+ var PlainText = blockEditor.PlainText;
19
+ var createElement = element.createElement;
20
+ var RawHTML = element.RawHTML;
21
+ var Button = components.Button;
22
+
23
+ registerBlockType('csf-gutenberg-block/block-'+block.hash, {
24
+ title: block.gutenberg.title,
25
+ description: block.gutenberg.description,
26
+ icon: block.gutenberg.icon || 'screenoptions',
27
+ category: block.gutenberg.category || 'widgets',
28
+ keywords: block.gutenberg.keywords,
29
+ supports: {
30
+ html: false,
31
+ className: false,
32
+ customClassName: false,
33
+ },
34
+ attributes: {
35
+ shortcode: {
36
+ string: 'string',
37
+ source: 'text',
38
+ }
39
+ },
40
+ edit: function (props) {
41
+ return (
42
+ createElement('div', {className: 'csf-shortcode-block'},
43
+
44
+ createElement(Button, {
45
+ 'data-modal-id': block.modal_id,
46
+ 'data-gutenberg-id': block.hash,
47
+ className: 'is-secondary csf-shortcode-button',
48
+ onClick: function () {
49
+ window.csf_gutenberg_props = props;
50
+ },
51
+ }, block.button_title ),
52
+
53
+ createElement(PlainText, {
54
+ placeholder: block.gutenberg.placeholder,
55
+ className: 'input-control blocks-shortcode__textarea',
56
+ onChange: function (value) {
57
+ props.setAttributes({
58
+ shortcode: value
59
+ });
60
+ },
61
+ value: props.attributes.shortcode
62
+ })
63
+
64
+ )
65
+ );
66
+ },
67
+ save: function (props) {
68
+ return createElement(RawHTML, {}, props.attributes.shortcode);
69
+ }
70
+ });
71
+
72
+ });
73
+
74
+ })(
75
+ window.wp.blocks,
76
+ window.wp.blockEditor,
77
+ window.wp.element,
78
+ window.wp.components
79
+ );
vendor/codestar-framework/assets/js/main.js CHANGED
@@ -633,8 +633,7 @@
633
  var $this = $(this),
634
  $inputs = $this.find('input'),
635
  settings = $this.find('.csf-date-settings').data('settings'),
636
- wrapper = '<div class="csf-datepicker-wrapper"></div>',
637
- $datepicker;
638
 
639
  var defaults = {
640
  showAnim: '',
@@ -680,6 +679,41 @@
680
  });
681
  };
682
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
683
  //
684
  // Field: fieldset
685
  //
@@ -3340,6 +3374,7 @@
3340
  $this.children('.csf-field-background').csf_field_background();
3341
  $this.children('.csf-field-code_editor').csf_field_code_editor();
3342
  $this.children('.csf-field-date').csf_field_date();
 
3343
  $this.children('.csf-field-fieldset').csf_field_fieldset();
3344
  $this.children('.csf-field-gallery').csf_field_gallery();
3345
  $this.children('.csf-field-group').csf_field_group();
633
  var $this = $(this),
634
  $inputs = $this.find('input'),
635
  settings = $this.find('.csf-date-settings').data('settings'),
636
+ wrapper = '<div class="csf-datepicker-wrapper"></div>';
 
637
 
638
  var defaults = {
639
  showAnim: '',
679
  });
680
  };
681
 
682
+ //
683
+ // Field: datetime
684
+ //
685
+ $.fn.csf_field_datetime = function() {
686
+ return this.each( function() {
687
+
688
+ var $this = $(this),
689
+ $inputs = $this.find('input'),
690
+ settings = $this.find('.csf-datetime-settings').data('settings');
691
+
692
+ settings = $.extend({}, settings, {
693
+ onReady: function( selectedDates, dateStr, instance) {
694
+ $(instance.calendarContainer).addClass('csf-flatpickr');
695
+ },
696
+ });
697
+
698
+ if ( $inputs.length === 2 ) {
699
+ settings = $.extend({}, settings, {
700
+ onChange: function( selectedDates, dateStr, instance) {
701
+ if ( $(instance.element).data('type') === 'from' ) {
702
+ $inputs.last().get(0)._flatpickr.set( 'minDate', selectedDates[0] );
703
+ } else {
704
+ $inputs.first().get(0)._flatpickr.set( 'maxDate', selectedDates[0] );
705
+ }
706
+ },
707
+ });
708
+ }
709
+
710
+ $inputs.each( function() {
711
+ $(this).flatpickr(settings);
712
+ });
713
+
714
+ });
715
+ };
716
+
717
  //
718
  // Field: fieldset
719
  //
3374
  $this.children('.csf-field-background').csf_field_background();
3375
  $this.children('.csf-field-code_editor').csf_field_code_editor();
3376
  $this.children('.csf-field-date').csf_field_date();
3377
+ $this.children('.csf-field-datetime').csf_field_datetime();
3378
  $this.children('.csf-field-fieldset').csf_field_fieldset();
3379
  $this.children('.csf-field-gallery').csf_field_gallery();
3380
  $this.children('.csf-field-group').csf_field_group();
vendor/codestar-framework/assets/js/main.min.js CHANGED
@@ -1,3 +1,3 @@
1
- /* Codestar Framework | A Simple and Lightweight WordPress Option Framework - v2.2.5*/
2
 
3
- !function(I,_,b,y){"use strict";var T=T||{};T.funcs={},T.vars={onloaded:!1,$body:I("body"),$window:I(_),$document:I(b),$form_warning:null,is_confirm:!1,form_modified:!1,code_themes:[],is_rtl:I("body").hasClass("rtl")},T.helper={uid:function(e){return(e||"")+Math.random().toString(36).substr(2,9)},preg_quote:function(e){return(e+"").replace(/(\[|\])/g,"\\$1")},name_nested_replace:function(e,t){var n=new RegExp(T.helper.preg_quote(t+"[\\d+]"),"g");e.find(":radio").each(function(){(this.checked||this.orginal_checked)&&(this.orginal_checked=!0)}),e.each(function(e){I(this).find(":input").each(function(){this.name=this.name.replace(n,t+"["+e+"]"),this.orginal_checked&&(this.checked=!0)})})},debounce:function(i,s,a){var c;return function(){var e=this,t=arguments,n=a&&!c;clearTimeout(c),c=setTimeout(function(){c=null,a||i.apply(e,t)},s),n&&i.apply(e,t)}}},I.fn.csf_clone=function(){for(var e=I.fn.clone.apply(this,arguments),t=this.find("select").add(this.filter("select")),n=e.find("select").add(e.filter("select")),i=0;i<t.length;++i)for(var s=0;s<t[i].options.length;++s)!0===t[i].options[s].selected&&(n[i].options[s].selected=!0);return this.find(":radio").each(function(){this.orginal_checked=this.checked}),e},I.fn.csf_expand_all=function(){return this.each(function(){I(this).on("click",function(e){e.preventDefault(),I(".csf-wrapper").toggleClass("csf-show-all"),I(".csf-section").csf_reload_script(),I(this).find(".fa").toggleClass("fa-indent").toggleClass("fa-outdent")})})},I.fn.csf_nav_options=function(){return this.each(function(){var s,e=I(this),t=I(_),a=I("#wpwrap"),c=e.find("a");t.on("hashchange csf.hashchange",function(){var e=_.location.hash.replace("#tab=",""),t=e||c.first().attr("href").replace("#tab=",""),n=I('[data-tab-id="'+t+'"]');if(n.length){n.closest(".csf-tab-item").addClass("csf-tab-expanded").siblings().removeClass("csf-tab-expanded"),n.next().is("ul")&&(t=(n=n.next().find("li").first().find("a")).data("tab-id")),c.removeClass("csf-active"),n.addClass("csf-active"),s&&s.addClass("hidden");var i=I('[data-section-id="'+t+'"]');i.removeClass("hidden"),i.csf_reload_script(),I(".csf-section-id").val(i.index()+1),s=i,a.hasClass("wp-responsive-open")&&(I("html, body").animate({scrollTop:i.offset().top-50},200),a.removeClass("wp-responsive-open"))}}).trigger("csf.hashchange")})},I.fn.csf_nav_metabox=function(){return this.each(function(){var s,e=I(this),a=e.find("a"),c=e.parent().find(".csf-section");a.each(function(i){I(this).on("click",function(e){e.preventDefault();var t=I(this);a.removeClass("csf-active"),t.addClass("csf-active"),s!==y&&s.addClass("hidden");var n=c.eq(i);n.removeClass("hidden"),n.csf_reload_script(),s=n})}),a.first().trigger("click")})},I.fn.csf_page_templates=function(){this.length&&I(b).on("change",".editor-page-attributes__template select, #page_template",function(){var e=I(this).val()||"default";I(".csf-page-templates").removeClass("csf-metabox-show").addClass("csf-metabox-hide"),I(".csf-page-"+e.toLowerCase().replace(/[^a-zA-Z0-9]+/g,"-")).removeClass("csf-metabox-hide").addClass("csf-metabox-show")})},I.fn.csf_post_formats=function(){this.length&&I(b).on("change",'.editor-post-format select, #formatdiv input[name="post_format"]',function(){var e=I(this).val()||"default";e="0"===e?"default":e,I(".csf-post-formats").removeClass("csf-metabox-show").addClass("csf-metabox-hide"),I(".csf-post-format-"+e).removeClass("csf-metabox-hide").addClass("csf-metabox-show")})},I.fn.csf_search=function(){return this.each(function(){I(this).find("input").on("change keyup",function(){var n=I(this).val(),e=I(".csf-wrapper"),t=e.find(".csf-section").find("> .csf-field:not(.csf-depend-on)"),i=t.find("> .csf-title, .csf-search-tags");3<n.length?(t.addClass("csf-metabox-hide"),e.addClass("csf-search-all"),i.each(function(){var e=I(this);if(e.text().match(new RegExp(".*?"+n+".*?","i"))){var t=e.closest(".csf-field");t.removeClass("csf-metabox-hide"),t.parent().csf_reload_script()}})):(t.removeClass("csf-metabox-hide"),e.removeClass("csf-search-all"))})})},I.fn.csf_sticky=function(){return this.each(function(){var i=I(this),s=I(_),a=i.find(".csf-header-inner"),c=parseInt(a.css("padding-left"))+parseInt(a.css("padding-right")),r=0,o=!1,e=function(){o||requestAnimationFrame(function(){var e,t,n;e=i.offset().top,t=Math.max(32,e-r),n=s.innerWidth(),t<=32&&782<n?(a.css({width:i.outerWidth()-c}),i.css({height:i.outerHeight()}).addClass("csf-sticky")):(a.removeAttr("style"),i.removeAttr("style").removeClass("csf-sticky")),o=!1}),o=!0},t=function(){r=s.scrollTop(),e()};s.on("scroll resize",t),t()})},I.fn.csf_dependency=function(){return this.each(function(){var e=I(this),t=e.children("[data-controller]");if(t.length){var n=I.csf_deps.createRuleset(),i=I.csf_deps.createRuleset(),f=[],l=[];t.each(function(){var s=I(this),e=s.data("controller").split("|"),a=s.data("condition").split("|"),c=s.data("value").toString().split("|"),r=!!s.data("depend-global"),o=r?i:n;I.each(e,function(e,t){var n=c[e]||"",i=a[e]||a[0];(o=o.createRule('[data-depend-id="'+t+'"]',i,n)).include(s),r?l.push(t):f.push(t)})}),f.length&&I.csf_deps.enable(e,n,f),l.length&&I.csf_deps.enable(T.vars.$body,i,l)}})},I.fn.csf_field_accordion=function(){return this.each(function(){I(this).find(".csf-accordion-title").on("click",function(){var e=I(this),t=e.find(".csf-accordion-icon"),n=e.next();t.hasClass("fa-angle-right")?t.removeClass("fa-angle-right").addClass("fa-angle-down"):t.removeClass("fa-angle-down").addClass("fa-angle-right"),n.data("opened")||(n.csf_reload_script(),n.data("opened",!0)),n.toggleClass("csf-accordion-open")})})},I.fn.csf_field_backup=function(){return this.each(function(){if(_.wp.customize!==y){var t=this,n=I(this),i=(I("body"),n.find(".csf-import")),s=n.find(".csf-reset");t.notificationOverlay=function(){wp.customize.notifications&&wp.customize.OverlayNotification&&(wp.customize.state("saved").get()||(wp.customize.state("changesetStatus").set("trash"),wp.customize.each(function(e){e._dirty=!1}),wp.customize.state("saved").set(!0)),wp.customize.notifications.add(new wp.customize.OverlayNotification("csf_field_backup_notification",{type:"default",message:"&nbsp;",loading:!0})))},s.on("click",function(e){e.preventDefault(),T.vars.is_confirm&&(t.notificationOverlay(),_.wp.ajax.post("csf-reset",{unique:s.data("unique"),nonce:s.data("nonce")}).done(function(e){_.location.reload(!0)}).fail(function(e){alert(e.error),wp.customize.notifications.remove("csf_field_backup_notification")}))}),i.on("click",function(e){e.preventDefault(),T.vars.is_confirm&&(t.notificationOverlay(),_.wp.ajax.post("csf-import",{unique:i.data("unique"),nonce:i.data("nonce"),data:n.find(".csf-import-data").val()}).done(function(e){_.location.reload(!0)}).fail(function(e){alert(e.error),wp.customize.notifications.remove("csf_field_backup_notification")}))})}})},I.fn.csf_field_background=function(){return this.each(function(){I(this).find(".csf--background-image").csf_reload_script()})},I.fn.csf_field_code_editor=function(){return this.each(function(){if("function"==typeof CodeMirror){var t=I(this),i=t.find("textarea"),e=t.find(".CodeMirror"),s=i.data("editor");e.length&&e.remove();var a=setInterval(function(){if(t.is(":visible")){var n=CodeMirror.fromTextArea(i[0],s);if("default"!==s.theme&&-1===T.vars.code_themes.indexOf(s.theme)){var e=I("<link>");I("#csf-codemirror-css").after(e),e.attr({rel:"stylesheet",id:"csf-codemirror-"+s.theme+"-css",href:s.cdnURL+"/theme/"+s.theme+".min.css",type:"text/css",media:"all"}),T.vars.code_themes.push(s.theme)}CodeMirror.modeURL=s.cdnURL+"/mode/%N/%N.min.js",CodeMirror.autoLoadMode(n,s.mode),n.on("change",function(e,t){i.val(n.getValue()).trigger("change")}),clearInterval(a)}})}})},I.fn.csf_field_date=function(){return this.each(function(){var e=I(this),i=e.find("input"),s=e.find(".csf-date-settings").data("settings"),t={showAnim:"",beforeShow:function(e,t){I(t.dpDiv).addClass("csf-datepicker-wrapper")},onClose:function(e,t){I(t.dpDiv).removeClass("csf-datepicker-wrapper")}};s=I.extend({},s,t),2===i.length&&(s=I.extend({},s,{onSelect:function(e){I(this),i.first();var t=i.first().attr("id")===I(this).attr("id")?"minDate":"maxDate",n=I.datepicker.parseDate(s.dateFormat,e);i.not(this).datepicker("option",t,n)}})),i.each(function(){var e=I(this);e.hasClass("hasDatepicker")&&e.removeAttr("id").removeClass("hasDatepicker"),e.datepicker(s)})})},I.fn.csf_field_fieldset=function(){return this.each(function(){I(this).find(".csf-fieldset-content").csf_reload_script()})},I.fn.csf_field_gallery=function(){return this.each(function(){var a,e=I(this),c=e.find(".csf-edit-gallery"),r=e.find(".csf-clear-gallery"),o=e.find("ul"),f=e.find("input");e.find("img");e.on("click",".csf-button, .csf-edit-gallery",function(e){var t=I(this),n=f.val(),i=t.hasClass("csf-edit-gallery")?"edit":"add",s="add"!==i||n.length?"gallery-edit":"gallery";e.preventDefault(),void 0!==_.wp&&_.wp.media&&_.wp.media.gallery&&("gallery"===s?(a=_.wp.media({library:{type:"image"},frame:"post",state:"gallery",multiple:!0})).open():(a=_.wp.media.gallery.edit('[gallery ids="'+n+'"]'),"add"===i&&a.setState("gallery-library")),a.on("update",function(e){o.empty();var t=e.models.map(function(e){var t=e.toJSON(),n=t.sizes&&t.sizes.thumbnail&&t.sizes.thumbnail.url?t.sizes.thumbnail.url:t.url;return o.append('<li><img src="'+n+'"></li>'),t.id});f.val(t.join(",")).trigger("change"),r.removeClass("hidden"),c.removeClass("hidden")}))}),r.on("click",function(e){e.preventDefault(),o.empty(),f.val("").trigger("change"),r.addClass("hidden"),c.addClass("hidden")})})},I.fn.csf_field_group=function(){return this.each(function(){var e=I(this),t=e.children(".csf-fieldset"),n=t.length?t:e,r=n.children(".csf-cloneable-wrapper"),i=n.children(".csf-cloneable-hidden"),o=n.children(".csf-cloneable-max"),f=n.children(".csf-cloneable-min"),l=r.data("field-id"),d=Boolean(Number(r.data("title-number"))),h=parseInt(r.data("max")),s=parseInt(r.data("min"));r.hasClass("ui-accordion")&&r.find(".ui-accordion-header-icon").remove();var p=function(e){e.find(".csf-cloneable-title-number").each(function(e){I(this).html(I(this).closest(".csf-cloneable-item").index()+1+".")})};r.accordion({header:"> .csf-cloneable-item > .csf-cloneable-title",collapsible:!0,active:!1,animate:!1,heightStyle:"content",icons:{header:"csf-cloneable-header-icon fas fa-angle-right",activeHeader:"csf-cloneable-header-icon fas fa-angle-down"},activate:function(e,t){var n=t.newPanel,i=t.newHeader;if(n.length&&!n.data("opened")){var s=n.children().first().find(":input").first(),a=i.find(".csf-cloneable-value");s.on("change keyup",function(e){a.text(s.val())}),n.csf_reload_script(),n.data("opened",!0),n.data("retry",!1)}else n.data("retry")&&(n.csf_reload_script_retry(),n.data("retry",!1))}}),r.sortable({axis:"y",handle:".csf-cloneable-title,.csf-cloneable-sort",helper:"original",cursor:"move",placeholder:"widget-placeholder",start:function(e,t){r.accordion({active:!1}),r.sortable("refreshPositions"),t.item.children(".csf-cloneable-content").data("retry",!0)},update:function(e,t){T.helper.name_nested_replace(r.children(".csf-cloneable-item"),l),r.csf_customizer_refresh(),d&&p(r)}}),n.children(".csf-cloneable-add").on("click",function(e){e.preventDefault();var t=r.children(".csf-cloneable-item").length;if(f.hide(),h&&h<t+1)o.show();else{var n=i.csf_clone(!0);n.removeClass("csf-cloneable-hidden"),n.find(':input[name!="_pseudo"]').each(function(){this.name=this.name.replace("___","").replace(l+"[0]",l+"["+t+"]")}),r.append(n),r.accordion("refresh"),r.accordion({active:t}),r.csf_customizer_refresh(),r.csf_customizer_listen({closest:!0}),d&&p(r)}});var a=function(e){e.preventDefault();var t=r.children(".csf-cloneable-item").length;if(f.hide(),h&&h<t+1)o.show();else{var n=I(this).parent().parent(),i=n.children(".csf-cloneable-helper").csf_clone(!0),s=n.children(".csf-cloneable-title").csf_clone(),a=n.children(".csf-cloneable-content").csf_clone(),c=I('<div class="csf-cloneable-item" />');c.append(i),c.append(s),c.append(a),r.children().eq(n.index()).after(c),T.helper.name_nested_replace(r.children(".csf-cloneable-item"),l),r.accordion("refresh"),r.csf_customizer_refresh(),r.csf_customizer_listen({closest:!0}),d&&p(r)}};r.children(".csf-cloneable-item").children(".csf-cloneable-helper").on("click",".csf-cloneable-clone",a),n.children(".csf-cloneable-hidden").children(".csf-cloneable-helper").on("click",".csf-cloneable-clone",a);var c=function(e){e.preventDefault();var t=r.children(".csf-cloneable-item").length;o.hide(),f.hide(),s&&t-1<s?f.show():(I(this).closest(".csf-cloneable-item").remove(),T.helper.name_nested_replace(r.children(".csf-cloneable-item"),l),r.csf_customizer_refresh(),d&&p(r))};r.children(".csf-cloneable-item").children(".csf-cloneable-helper").on("click",".csf-cloneable-remove",c),n.children(".csf-cloneable-hidden").children(".csf-cloneable-helper").on("click",".csf-cloneable-remove",c)})},I.fn.csf_field_icon=function(){return this.each(function(){var n=I(this);n.on("click",".csf-icon-add",function(e){e.preventDefault();var t=I(this),i=I("#csf-modal-icon");i.removeClass("hidden"),T.vars.$icon_target=n,T.vars.icon_modal_loaded||(i.find(".csf-modal-loading").show(),_.wp.ajax.post("csf-get-icons",{nonce:t.data("nonce")}).done(function(e){i.find(".csf-modal-loading").hide(),T.vars.icon_modal_loaded=!0;var n=i.find(".csf-modal-load").html(e.content);n.on("click","i",function(e){e.preventDefault();var t=I(this).attr("title");T.vars.$icon_target.find(".csf-icon-preview i").removeAttr("class").addClass(t),T.vars.$icon_target.find(".csf-icon-preview").removeClass("hidden"),T.vars.$icon_target.find(".csf-icon-remove").removeClass("hidden"),T.vars.$icon_target.find("input").val(t).trigger("change"),i.addClass("hidden")}),i.on("change keyup",".csf-icon-search",function(){var t=I(this).val();n.find("i").each(function(){var e=I(this);e.attr("title").search(new RegExp(t,"i"))<0?e.hide():e.show()})}),i.on("click",".csf-modal-close, .csf-modal-overlay",function(){i.addClass("hidden")})}).fail(function(e){i.find(".csf-modal-loading").hide(),i.find(".csf-modal-load").html(e.error),i.on("click",function(){i.addClass("hidden")})}))}),n.on("click",".csf-icon-remove",function(e){e.preventDefault(),n.find(".csf-icon-preview").addClass("hidden"),n.find("input").val("").trigger("change"),I(this).addClass("hidden")})})},I.fn.csf_field_map=function(){return this.each(function(){if("undefined"!=typeof L){var e=I(this),t=e.find(".csf--map-osm"),n=e.find(".csf--map-search input"),i=e.find(".csf--latitude"),s=e.find(".csf--longitude"),a=e.find(".csf--zoom"),c=t.data("map"),r=L.map(t.get(0),c);L.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",{attribution:'&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'}).addTo(r);var o=L.marker(c.center,{draggable:!0}).addTo(r),f=function(e){i.val(e.lat),s.val(e.lng),a.val(r.getZoom())};r.on("click",function(e){o.setLatLng(e.latlng),f(e.latlng)}),r.on("zoom",function(){f(o.getLatLng())}),o.on("drag",function(){f(o.getLatLng())}),n.length||(n=I('[data-depend-id="'+e.find(".csf--address-field").data("address-field")+'"]'));var l={};n.autocomplete({source:function(e,n){var i=e.term;i in l?n(l[i]):I.get("https://nominatim.openstreetmap.org/search",{format:"json",q:i},function(e){var t;t=e.length?e.map(function(e){return{value:e.display_name,label:e.display_name,lat:e.lat,lon:e.lon}},"json"):[{value:"no-data",label:"No Results."}],l[i]=t,n(t)})},select:function(e,t){if("no-data"===t.item.value)return!1;var n=L.latLng(t.item.lat,t.item.lon);r.panTo(n),o.setLatLng(n),f(n)},create:function(e,t){I(this).autocomplete("widget").addClass("csf-map-ui-autocomplate")}});var d=function(){var e=L.latLng(i.val(),s.val());r.panTo(e),o.setLatLng(e)};i.on("change",d),s.on("change",d)}})},I.fn.csf_field_link=function(){return this.each(function(){var s=I(this),e=s.find(".csf--link"),a=s.find(".csf--add"),c=s.find(".csf--edit"),r=s.find(".csf--remove"),o=s.find(".csf--result"),t=T.helper.uid("csf-wplink-textarea-");a.on("click",function(e){e.preventDefault(),_.wpLink.open(t)}),c.on("click",function(e){e.preventDefault(),a.trigger("click"),I("#wp-link-url").val(s.find(".csf--url").val()),I("#wp-link-text").val(s.find(".csf--text").val()),I("#wp-link-target").prop("checked","_blank"===s.find(".csf--target").val())}),r.on("click",function(e){e.preventDefault(),s.find(".csf--url").val("").trigger("change"),s.find(".csf--text").val(""),s.find(".csf--target").val(""),a.removeClass("hidden"),c.addClass("hidden"),r.addClass("hidden"),o.parent().addClass("hidden")}),e.attr("id",t).on("change",function(){var e=_.wpLink.getAttrs(),t=e.href,n=I("#wp-link-text").val(),i=e.target?e.target:"";s.find(".csf--url").val(t).trigger("change"),s.find(".csf--text").val(n),s.find(".csf--target").val(i),o.html('{url:"'+t+'", text:"'+n+'", target:"'+i+'"}'),a.addClass("hidden"),c.removeClass("hidden"),r.removeClass("hidden"),o.parent().removeClass("hidden")})})},I.fn.csf_field_media=function(){return this.each(function(){var i,s=I(this),a=s.find(".csf--button"),c=s.find(".csf--remove"),r=a.data("library")&&a.data("library").split(",")||"",o=!!s.hasClass("csf-assign-field-background")&&s.closest(".csf-field-background").find(".csf--auto-attributes");a.on("click",function(e){e.preventDefault(),void 0!==_.wp&&_.wp.media&&_.wp.media.gallery&&(i||(i=_.wp.media({library:{type:r}})).on("select",function(){var e,t=i.state().get("selection").first().attributes,n=a.data("preview-size")||"thumbnail";r.length&&-1===r.indexOf(t.subtype)&&-1===r.indexOf(t.type)||(s.find(".csf--id").val(t.id),s.find(".csf--width").val(t.width),s.find(".csf--height").val(t.height),s.find(".csf--alt").val(t.alt),s.find(".csf--title").val(t.title),s.find(".csf--description").val(t.description),e=void 0!==t.sizes&&void 0!==t.sizes.thumbnail&&"thumbnail"===n?t.sizes.thumbnail.url:void 0!==t.sizes&&void 0!==t.sizes.full?t.sizes.full.url:"image"===t.type?t.url:t.icon,console.log(t),o&&o.removeClass("csf--attributes-hidden"),c.removeClass("hidden"),s.find(".csf--preview").removeClass("hidden"),s.find(".csf--src").attr("src",e),s.find(".csf--thumbnail").val(e),s.find(".csf--url").val(t.url).trigger("change"))}),i.open())}),c.on("click",function(e){e.preventDefault(),o&&o.addClass("csf--attributes-hidden"),c.addClass("hidden"),s.find("input").val(""),s.find(".csf--preview").addClass("hidden"),s.find(".csf--url").trigger("change")})})},I.fn.csf_field_repeater=function(){return this.each(function(){var e=I(this),t=e.children(".csf-fieldset"),n=t.length?t:e,c=n.children(".csf-repeater-wrapper"),i=n.children(".csf-repeater-hidden"),r=n.children(".csf-repeater-max"),o=n.children(".csf-repeater-min"),f=c.data("field-id"),l=parseInt(c.data("max")),s=parseInt(c.data("min"));c.children(".csf-repeater-item").children(".csf-repeater-content").csf_reload_script(),c.sortable({axis:"y",handle:".csf-repeater-sort",helper:"original",cursor:"move",placeholder:"widget-placeholder",update:function(e,t){T.helper.name_nested_replace(c.children(".csf-repeater-item"),f),c.csf_customizer_refresh(),t.item.csf_reload_script_retry()}}),n.children(".csf-repeater-add").on("click",function(e){e.preventDefault();var t=c.children(".csf-repeater-item").length;if(o.hide(),l&&l<t+1)r.show();else{var n=i.csf_clone(!0);n.removeClass("csf-repeater-hidden"),n.find(':input[name!="_pseudo"]').each(function(){this.name=this.name.replace("___","").replace(f+"[0]",f+"["+t+"]")}),c.append(n),n.children(".csf-repeater-content").csf_reload_script(),c.csf_customizer_refresh(),c.csf_customizer_listen({closest:!0})}});var a=function(e){e.preventDefault();var t=c.children(".csf-repeater-item").length;if(o.hide(),l&&l<t+1)r.show();else{var n=I(this).parent().parent().parent(),i=n.children(".csf-repeater-content").csf_clone(),s=n.children(".csf-repeater-helper").csf_clone(!0),a=I('<div class="csf-repeater-item" />');a.append(i),a.append(s),c.children().eq(n.index()).after(a),a.children(".csf-repeater-content").csf_reload_script(),T.helper.name_nested_replace(c.children(".csf-repeater-item"),f),c.csf_customizer_refresh(),c.csf_customizer_listen({closest:!0})}};c.children(".csf-repeater-item").children(".csf-repeater-helper").on("click",".csf-repeater-clone",a),n.children(".csf-repeater-hidden").children(".csf-repeater-helper").on("click",".csf-repeater-clone",a);var d=function(e){e.preventDefault();var t=c.children(".csf-repeater-item").length;r.hide(),o.hide(),s&&t-1<s?o.show():(I(this).closest(".csf-repeater-item").remove(),T.helper.name_nested_replace(c.children(".csf-repeater-item"),f),c.csf_customizer_refresh())};c.children(".csf-repeater-item").children(".csf-repeater-helper").on("click",".csf-repeater-remove",d),n.children(".csf-repeater-hidden").children(".csf-repeater-helper").on("click",".csf-repeater-remove",d)})},I.fn.csf_field_slider=function(){return this.each(function(){var e=I(this),n=e.find("input"),t=e.find(".csf-slider-ui"),i=n.data(),s=n.val()||0;t.hasClass("ui-slider")&&t.empty(),t.slider({range:"min",value:s,min:i.min||0,max:i.max||100,step:i.step||1,slide:function(e,t){n.val(t.value).trigger("change")}}),n.on("keyup",function(){t.slider("value",n.val())})})},I.fn.csf_field_sortable=function(){return this.each(function(){var n=I(this).find(".csf-sortable");n.sortable({axis:"y",helper:"original",cursor:"move",placeholder:"widget-placeholder",update:function(e,t){n.csf_customizer_refresh()}}),n.find(".csf-sortable-content").csf_reload_script()})},I.fn.csf_field_sorter=function(){return this.each(function(){var i=I(this),e=i.find(".csf-enabled"),t=i.find(".csf-disabled"),n=!!t.length&&t;e.sortable({connectWith:n,placeholder:"ui-sortable-placeholder",update:function(e,t){var n=t.item.find("input");t.item.parent().hasClass("csf-enabled")?n.attr("name",n.attr("name").replace("disabled","enabled")):n.attr("name",n.attr("name").replace("enabled","disabled")),i.csf_customizer_refresh()}}),n&&n.sortable({connectWith:e,placeholder:"ui-sortable-placeholder",update:function(e,t){i.csf_customizer_refresh()}})})},I.fn.csf_field_spinner=function(){return this.each(function(){var e=I(this),n=e.find("input"),t=e.find(".ui-button"),i=n.data();t.length&&t.remove(),n.spinner({min:i.min||0,max:i.max||100,step:i.step||1,create:function(e,t){i.unit&&n.after('<span class="ui-button csf--unit">'+i.unit+"</span>")},spin:function(e,t){n.val(t.value).trigger("change")}})})},I.fn.csf_field_switcher=function(){return this.each(function(){var n=I(this).find(".csf--switcher");n.on("click",function(){var e=0,t=n.find("input");n.hasClass("csf--active")?n.removeClass("csf--active"):(e=1,n.addClass("csf--active")),t.val(e).trigger("change")})})},I.fn.csf_field_tabbed=function(){return this.each(function(){var e=I(this),t=e.find(".csf-tabbed-nav a"),s=e.find(".csf-tabbed-content");s.eq(0).csf_reload_script(),t.on("click",function(e){e.preventDefault();var t=I(this),n=t.index(),i=s.eq(n);t.addClass("csf-tabbed-active").siblings().removeClass("csf-tabbed-active"),i.csf_reload_script(),i.removeClass("hidden").siblings().addClass("hidden")})})},I.fn.csf_field_typography=function(){return this.each(function(){var j=this,L=I(this),i=[],A=csf_typography_json.webfonts,t=csf_typography_json.googlestyles,q=csf_typography_json.defaultstyles;j.sanitize_subset=function(e){return e=(e=e.replace("-ext"," Extended")).charAt(0).toUpperCase()+e.slice(1)},j.sanitize_style=function(e){return t[e]?t[e]:e},j.load_google_font=function(e,t,n){e&&"object"==typeof WebFont&&(t=t?t.replace("normal",""):"",n=n?n.replace("normal",""):"",(t||n)&&(e=e+":"+t+n),-1===i.indexOf(e)&&WebFont.load({google:{families:[e]}}),i.push(e))},j.append_select_options=function(e,t,s,a,c){e.find("option").not(":first").remove();var r="";I.each(t,function(e,t){var n,i=t;n=c?s&&-1!==s.indexOf(t)?" selected":"":s&&s===t?" selected":"","subset"===a?i=j.sanitize_subset(t):"style"===a&&(i=j.sanitize_style(t)),r+='<option value="'+t+'"'+n+">"+i+"</option>"}),e.append(r).trigger("csf.change").trigger("chosen:updated")},j.init=function(){var l=[],e=L.find(".csf--typography"),d=L.find(".csf--type"),h=L.find(".csf--block-font-style"),v=e.data("unit"),g=e.data("line-height-unit"),t=e.data("exclude")?e.data("exclude").split(","):[];L.find(".csf--chosen").length&&L.find("select").each(function(){var e=I(this),t=e.parent().find(".chosen-container");t.length&&t.remove(),e.chosen({allow_single_deselect:!0,disable_search_threshold:15,width:"100%"})});var m=L.find(".csf--font-family"),i=m.val();m.find("option").not(":first-child").remove();var s="";I.each(A,function(n,e){t&&-1!==t.indexOf(n)||(s+='<optgroup label="'+e.label+'">',I.each(e.fonts,function(e,t){s+='<option value="'+(t="object"==typeof t?e:t)+'" data-type="'+n+'"'+(t===i?" selected":"")+">"+t+"</option>"}),s+="</optgroup>")}),m.append(s).trigger("chosen:updated");var p=L.find(".csf--block-font-style");if(p.length){var u=L.find(".csf--font-style-select"),_=u.val()?u.val().replace(/normal/g,""):"";u.on("change csf.change",function(e){var t=u.val();!t&&l&&-1===l.indexOf("normal")&&(t=l[0]);var n=t&&"italic"!==t&&"normal"===t?"normal":"",i=t&&"italic"!==t&&"normal"!==t?t.replace("italic",""):n,s=t&&"italic"===t.substr(-6)?"italic":"";L.find(".csf--font-weight").val(i),L.find(".csf--font-style").val(s)});var b=L.find(".csf--block-extra-styles");if(b.length)var y=L.find(".csf--extra-styles"),w=y.val()}var C=L.find(".csf--block-subset");if(C.length)var k=L.find(".csf--subset"),x=k.val(),z=k.data("multiple")||!1;var D=L.find(".csf--block-backup-font-family");m.on("change csf.change",function(e){C.length&&C.addClass("hidden"),b.length&&b.addClass("hidden"),D.length&&D.addClass("hidden");var t=m.find(":selected"),n=t.val(),i=t.data("type");if(i&&n){if("google"!==i&&"custom"!==i||!D.length||D.removeClass("hidden"),p.length){var s=q;"google"===i&&A[i].fonts[n][0]?s=A[i].fonts[n][0]:"custom"===i&&A[i].fonts[n]&&(s=A[i].fonts[n]);var a=-1!==(l=s).indexOf("normal")?"normal":s[0],c=_&&-1!==s.indexOf(_)?_:a;j.append_select_options(u,s,c,"style"),_=!1,p.removeClass("hidden"),"google"===i&&b.length&&1<s.length&&(j.append_select_options(y,s,w,"style",!0),w=!1,b.removeClass("hidden"))}if("google"===i&&C.length&&A[i].fonts[n][1]){var r=A[i].fonts[n][1],o=r.length<2&&"latin"!==r[0]?r[0]:"",f=x&&-1!==r.indexOf(x)?x:o;f=z&&x?x:f,j.append_select_options(k,r,f,"subset",z),x=!1,C.removeClass("hidden")}}else h.find(":input").val(""),C.length&&(k.find("option").not(":first-child").remove(),k.trigger("chosen:updated")),p.length&&(u.find("option").not(":first-child").remove(),u.trigger("chosen:updated"));d.val(i)}).trigger("csf.change");var O=L.find(".csf--block-preview");if(O.length){var S=L.find(".csf--preview");L.on("change",T.helper.debounce(function(e){O.removeClass("hidden");var t=m.val(),n=L.find(".csf--font-weight").val(),i=L.find(".csf--font-style").val(),s=L.find(".csf--font-size").val(),a=L.find(".csf--font-variant").val(),c=L.find(".csf--line-height").val(),r=L.find(".csf--text-align").val(),o=L.find(".csf--text-transform").val(),f=L.find(".csf--text-decoration").val(),l=L.find(".csf--color").val(),d=L.find(".csf--word-spacing").val(),h=L.find(".csf--letter-spacing").val(),p=L.find(".csf--custom-style").val();"google"===L.find(".csf--type").val()&&j.load_google_font(t,n,i);var u={};t&&(u.fontFamily=t),n&&(u.fontWeight=n),i&&(u.fontStyle=i),a&&(u.fontVariant=a),s&&(u.fontSize=s+v),c&&(u.lineHeight=c+g),h&&(u.letterSpacing=h+v),d&&(u.wordSpacing=d+v),r&&(u.textAlign=r),o&&(u.textTransform=o),f&&(u.textDecoration=f),l&&(u.color=l),S.removeAttr("style"),p&&S.attr("style",p),S.css(u)},100)),O.on("click",function(){S.toggleClass("csf--black-background");var e=O.find(".csf--toggle");e.hasClass("fa-toggle-off")?e.removeClass("fa-toggle-off").addClass("fa-toggle-on"):e.removeClass("fa-toggle-on").addClass("fa-toggle-off")}),O.hasClass("hidden")||L.trigger("change")}},j.init()})},I.fn.csf_field_upload=function(){return this.each(function(){var t,e=I(this),n=e.find("input"),i=e.find(".csf--button"),s=e.find(".csf--remove"),a=e.find(".csf--preview"),c=e.find(".csf--src"),r=i.data("library")&&i.data("library").split(",")||"";i.on("click",function(e){e.preventDefault(),void 0!==_.wp&&_.wp.media&&_.wp.media.gallery&&(t||(t=_.wp.media({library:{type:r}})).on("select",function(){var e=t.state().get("selection").first().attributes;r.length&&-1===r.indexOf(e.subtype)&&-1===r.indexOf(e.type)||n.val(e.url).trigger("change")}),t.open())}),s.on("click",function(e){e.preventDefault(),n.val("").trigger("change")}),n.on("change",function(e){var t=n.val();t?s.removeClass("hidden"):s.addClass("hidden"),a.length&&(-1!==I.inArray(t.split(".").pop().toLowerCase(),["jpg","jpeg","gif","png","svg","webp"])?(a.removeClass("hidden"),c.attr("src",t)):a.addClass("hidden"))})})},I.fn.csf_field_wp_editor=function(){return this.each(function(){if(void 0!==_.wp.editor&&void 0!==_.tinyMCEPreInit&&void 0!==_.tinyMCEPreInit.mceInit.csf_wp_editor){var e=I(this),t=e.find(".csf-wp-editor"),n=e.find("textarea");(e.find(".wp-editor-wrap").length||e.find(".mce-container").length)&&(t.empty(),t.append(n),n.css("display",""));var i=T.helper.uid("csf-editor-");n.attr("id",i);var s={tinymce:_.tinyMCEPreInit.mceInit.csf_wp_editor,quicktags:_.tinyMCEPreInit.qtInit.csf_wp_editor},a=t.data("editor-settings"),c=wp.oldEditor?wp.oldEditor:wp.editor;c&&c.hasOwnProperty("autop")&&(wp.editor.autop=c.autop,wp.editor.removep=c.removep,wp.editor.initialize=c.initialize);s.tinymce=I.extend({},s.tinymce,{selector:"#"+i,setup:function(t){t.on("change keyup",function(){var e=a.wpautop?t.getContent():wp.editor.removep(t.getContent());n.val(e).trigger("change")})}}),!1===a.tinymce&&(s.tinymce=!1,t.addClass("csf-no-tinymce")),!1===a.quicktags&&(s.quicktags=!1,t.addClass("csf-no-quicktags"));var r=setInterval(function(){e.is(":visible")&&(_.wp.editor.initialize(i,s),clearInterval(r))});if(a.media_buttons&&_.csf_media_buttons){var o=t.find(".wp-media-buttons");if(o.length)o.find(".csf-shortcode-button").data("editor-id",i);else{var f=I(_.csf_media_buttons);f.find(".csf-shortcode-button").data("editor-id",i),t.prepend(f)}}}})},I.fn.csf_confirm=function(){return this.each(function(){I(this).on("click",function(e){var t=I(this).data("confirm")||_.csf_vars.i18n.confirm;if(!confirm(t))return e.preventDefault(),!1;T.vars.is_confirm=!0,T.vars.form_modified=!1})})},I.fn.serializeObject=function(){var s={};return I.each(this.serializeArray(),function(e,t){var n=t.name,i=t.value;s[n]=s[n]===y?i:I.isArray(s[n])?s[n].concat(i):[s[n],i]}),s},I.fn.csf_save=function(){return this.each(function(){var i,s=I(this),c=I(".csf-save"),r=I(".csf-options"),o=!1;s.on("click",function(e){if(!o){var t=s.data("save"),n=s.val();c.attr("value",t),s.hasClass("csf-save-ajax")?(e.preventDefault(),r.addClass("csf-saving"),c.prop("disabled",!0),_.wp.ajax.post("csf_"+r.data("unique")+"_ajax_save",{data:I("#csf-form").serializeJSONCSF()}).done(function(e){if(I(".csf-error").remove(),Object.keys(e.errors).length){var a='<i class="csf-label-error csf-error">!</i>';I.each(e.errors,function(e,t){var n=I('[data-depend-id="'+e+'"]'),i=I('a[href="#tab='+n.closest(".csf-section").data("section-id")+'"]'),s=i.closest(".csf-tab-item");n.closest(".csf-fieldset").append('<p class="csf-error csf-error-text">'+t+"</p>"),i.find(".csf-error").length||i.append(a),s.find(".csf-arrow .csf-error").length||s.find(".csf-arrow").append(a)})}r.removeClass("csf-saving"),c.prop("disabled",!1).attr("value",n),o=!1,T.vars.form_modified=!1,T.vars.$form_warning.hide(),clearTimeout(i);var t=I(".csf-form-success");t.empty().append(e.notice).fadeIn("fast",function(){i=setTimeout(function(){t.fadeOut("fast")},1e3)})}).fail(function(e){alert(e.error)})):T.vars.form_modified=!1}o=!0})})},I.fn.csf_options=function(){return this.each(function(){var e=I(this),t=e.find(".csf-content"),n=e.find(".csf-form-success"),i=e.find(".csf-form-warning"),s=e.find(".csf-header .csf-save");(T.vars.$form_warning=i).length&&(_.onbeforeunload=function(){return!!T.vars.form_modified||y},t.on("change keypress",":input",function(){T.vars.form_modified||(n.hide(),i.fadeIn("fast"),T.vars.form_modified=!0)})),n.hasClass("csf-form-show")&&setTimeout(function(){n.fadeOut("fast")},1e3),I(b).keydown(function(e){if((e.ctrlKey||e.metaKey)&&83===e.which)return s.trigger("click"),e.preventDefault(),!1})})},I.fn.csf_taxonomy=function(){return this.each(function(){var e=I(this),t=e.parents("form");if("addtag"===t.attr("id")){var n=t.find("#submit"),i=e.find(".csf-field").csf_clone();n.on("click",function(){t.find(".form-required").hasClass("form-invalid")||(e.data("inited",!1),e.empty(),e.html(i),i=i.csf_clone(),e.csf_reload_script())})}})},I.fn.csf_shortcode=function(){var m=this;return m.shortcode_parse=function(e,n){var i="";return I.each(e,function(e,t){i+="["+(n=n||e),I.each(t,function(e,t){"content"===e?(i+="]",i+=t,i+="[/"+n):i+=m.shortcode_tags(e,t)}),i+="]"}),i},m.shortcode_tags=function(e,t){var n="";return""!==t&&("object"!=typeof t||I.isArray(t)?n+=" "+e.replace("-","_")+'="'+t.toString()+'"':I.each(t,function(e,t){switch(e){case"background-image":t=t.url?t.url:""}""!==t&&(n+=" "+e.replace("-","_")+'="'+t.toString()+'"')})),n},m.insertAtChars=function(e,t){var n=void 0!==e[0].name?e[0]:e;return n.value.length&&void 0!==n.selectionStart?(n.focus(),n.value.substring(0,n.selectionStart)+t+n.value.substring(n.selectionEnd,n.value.length)):(n.focus(),t)},m.send_to_editor=function(e,t){var n;if("undefined"!=typeof tinymce&&(n=tinymce.get(t)),n&&!n.isHidden())n.execCommand("mceInsertContent",!1,e);else{var i=I("#"+t);i.val(m.insertAtChars(i,e)).trigger("change")}},this.each(function(){var c,r,o,n,f,l,d,s,h,p=I(this),i=p.find(".csf-modal-load"),u=(p.find(".csf-modal-content"),p.find(".csf-modal-insert")),a=p.find(".csf-modal-loading"),t=p.find("select"),v=p.data("modal-id"),g=p.data("nonce");I(b).on("click",'.csf-shortcode-button[data-modal-id="'+v+'"]',function(e){e.preventDefault(),h=I(this),c=h.data("editor-id")||!1,r=h.data("target-id")||!1,o=h.data("gutenberg-id")||!1,p.removeClass("hidden"),p.hasClass("csf-shortcode-single")&&f===y&&t.trigger("change")}),t.on("change",function(){var e=I(this),t=e.find(":selected");n=e.val(),f=t.data("shortcode"),l=t.data("view")||"normal",d=t.data("group")||f,i.empty(),n?(a.show(),_.wp.ajax.post("csf-get-shortcode-"+v,{shortcode_key:n,nonce:g}).done(function(e){a.hide();var t=I(e.content).appendTo(i);u.parent().removeClass("hidden"),s=t.find(".csf--repeat-shortcode").csf_clone(),t.csf_reload_script(),t.find(".csf-fields").csf_reload_script()})):u.parent().addClass("hidden")}),u.on("click",function(e){if(e.preventDefault(),!u.prop("disabled")&&!u.attr("disabled")){var i="",t=p.find(".csf-field:not(.csf-depend-on)").find(":input:not(.ignore)").serializeObjectCSF();switch(l){case"contents":var n=f?t[f]:t;I.each(n,function(e,t){var n=f||e;i+="["+n+"]"+t+"[/"+n+"]"});break;case"group":i+="["+f,I.each(t[f],function(e,t){i+=m.shortcode_tags(e,t)}),i+="]",i+=m.shortcode_parse(t[d],d),i+="[/"+f+"]";break;case"repeater":i+=m.shortcode_parse(t[d],d);break;default:i+=m.shortcode_parse(t)}if(i=""===i?"["+f+"]":i,o){var s=_.csf_gutenberg_props.attributes.hasOwnProperty("shortcode")?_.csf_gutenberg_props.attributes.shortcode:"";_.csf_gutenberg_props.setAttributes({shortcode:s+i})}else if(c)m.send_to_editor(i,c);else{var a=r?I(r):h.parent().find("textarea");a.val(m.insertAtChars(a,i)).trigger("change")}p.addClass("hidden")}}),p.on("click",".csf--repeat-button",function(e){e.preventDefault();var t=p.find(".csf--repeatable"),n=s.csf_clone(),i=n.find(".csf-repeat-remove");n.appendTo(t);n.find(".csf-fields").csf_reload_script(),T.helper.name_nested_replace(p.find(".csf--repeat-shortcode"),d),i.on("click",function(){n.remove(),T.helper.name_nested_replace(p.find(".csf--repeat-shortcode"),d)})}),p.on("click",".csf-modal-close, .csf-modal-overlay",function(){p.addClass("hidden")})})},"function"==typeof Color&&(Color.prototype.toString=function(){if(this._alpha<1)return this.toCSS("rgba",this._alpha).replace(/\s+/g,"");var e=parseInt(this._color,10).toString(16);if(this.error)return"";if(e.length<6)for(var t=6-e.length-1;0<=t;t--)e="0"+e;return"#"+e}),T.funcs.parse_color=function(e){var t=e.replace(/\s+/g,""),n=-1!==t.indexOf("rgba")?parseFloat(100*t.replace(/^.*,(.+)\)/,"$1")):100;return{value:t,transparent:n,rgba:n<100}},I.fn.csf_color=function(){return this.each(function(){var c,r=I(this),o=T.funcs.parse_color(r.val()),e=!_.csf_vars.color_palette.length||_.csf_vars.color_palette;r.hasClass("wp-color-picker")&&r.closest(".wp-picker-container").after(r).remove(),r.wpColorPicker({palettes:e,change:function(e,t){var n=t.color.toString();c.removeClass("csf--transparent-active"),c.find(".csf--transparent-offset").css("background-color",n),r.val(n).trigger("change")},create:function(){c=r.closest(".wp-picker-container");var i=r.data("a8cIris"),e=I('<div class="csf--transparent-wrap"><div class="csf--transparent-slider"></div><div class="csf--transparent-offset"></div><div class="csf--transparent-text"></div><div class="csf--transparent-button">transparent <i class="fas fa-toggle-off"></i></div></div>').appendTo(c.find(".wp-picker-holder")),s=e.find(".csf--transparent-slider"),a=e.find(".csf--transparent-text"),n=e.find(".csf--transparent-offset"),t=e.find(".csf--transparent-button");"transparent"===r.val()&&c.addClass("csf--transparent-active"),t.on("click",function(){"transparent"!==r.val()?(r.val("transparent").trigger("change").removeClass("iris-error"),c.addClass("csf--transparent-active")):(r.val(i._color.toString()).trigger("change"),c.removeClass("csf--transparent-active"))}),s.slider({value:o.transparent,step:1,min:0,max:100,slide:function(e,t){var n=parseFloat(t.value/100);i._color._alpha=n,r.wpColorPicker("color",i._color.toString()),a.text(1===n||0===n?"":n)},create:function(){var e=parseFloat(o.transparent/100),t=e<1?e:"";a.text(t),n.css("background-color",o.value),c.on("click",".wp-picker-clear",function(){i._color._alpha=1,a.text(""),s.slider("option","value",100),c.removeClass("csf--transparent-active"),r.trigger("change")}),c.on("click",".wp-picker-default",function(){var e=T.funcs.parse_color(r.data("default-color")),t=parseFloat(e.transparent/100),n=t<1?t:"";i._color._alpha=t,a.text(n),s.slider("option","value",e.transparent),"transparent"===e.value&&(r.removeClass("iris-error"),c.addClass("csf--transparent-active"))})}})}})})},I.fn.csf_chosen=function(){return this.each(function(){var a=I(this),e=a.parent().find(".chosen-container"),t=a.hasClass("csf-chosen-sortable")||!1,n=a.hasClass("csf-chosen-ajax")||!1,i=a.attr("multiple")||!1,s=i?"100%":"auto",c=I.extend({allow_single_deselect:!0,disable_search_threshold:10,width:s,no_results_text:_.csf_vars.i18n.no_results_text},a.data("chosen-settings"));if(e.length&&e.remove(),n){var r=I.extend({data:{type:"post",nonce:""},allow_single_deselect:!0,disable_search_threshold:-1,width:"100%",min_length:3,type_delay:500,typing_text:_.csf_vars.i18n.typing_text,searching_text:_.csf_vars.i18n.searching_text,no_results_text:_.csf_vars.i18n.no_results_text},a.data("chosen-settings"));a.CSFAjaxChosen(r)}else a.chosen(c);if(i){var o=a.parent().find(".csf-hide-select"),f=o.val()||[];a.on("change",function(e,t){t&&t.selected?o.append('<option value="'+t.selected+'" selected="selected">'+t.selected+"</option>"):t&&t.deselected&&o.find('option[value="'+t.deselected+'"]').remove(),_.wp.customize!==y&&0===o.children().length&&o.data("customize-setting-link")&&_.wp.customize.control(o.data("customize-setting-link")).setting.set(""),o.trigger("change")}),a.CSFChosenOrder(f,!0)}if(t){var l=a.parent().find(".chosen-container").find(".chosen-choices");l.bind("mousedown",function(e){I(e.target).is("span")&&e.stopPropagation()}),l.sortable({items:"li:not(.search-field)",helper:"orginal",cursor:"move",placeholder:"search-choice-placeholder",start:function(e,t){t.placeholder.width(t.item.innerWidth()),t.placeholder.height(t.item.innerHeight())},update:function(e,t){var i="",s=a.data("chosen"),n=a.parent().find(".csf-hide-select");l.find(".search-choice-close").each(function(){var n=I(this).data("option-array-index");I.each(s.results_data,function(e,t){t.array_index===n&&(i+='<option value="'+t.value+'" selected>'+t.value+"</option>")})}),n.children().remove(),n.append(i),n.trigger("change")}})}})},I.fn.csf_checkbox=function(){return this.each(function(){var e=I(this),t=e.find(".csf--input"),n=e.find(".csf--checkbox");n.on("click",function(){t.val(Number(n.prop("checked"))).trigger("change")})})},I.fn.csf_siblings=function(){return this.each(function(){var t=I(this),e=t.find(".csf--sibling"),n=t.data("multiple")||!1;e.on("click",function(){var e=I(this);n?e.hasClass("csf--active")?(e.removeClass("csf--active"),e.find("input").prop("checked",!1).trigger("change")):(e.addClass("csf--active"),e.find("input").prop("checked",!0).trigger("change")):(t.find("input").prop("checked",!1),e.find("input").prop("checked",!0).trigger("change"),e.addClass("csf--active").siblings().removeClass("csf--active"))})})},I.fn.csf_help=function(){return this.each(function(){var e,t,n=I(this);n.on({mouseenter:function(){e=I('<div class="csf-tooltip"></div>').html(n.find(".csf-help-text").html()).appendTo("body"),t=T.vars.is_rtl?n.offset().left+24:n.offset().left-e.outerWidth(),e.css({top:n.offset().top-(e.outerHeight()/2-14),left:t})},mouseleave:function(){e!==y&&e.remove()}})})},I.fn.csf_customizer_refresh=function(){return this.each(function(){var e=I(this),t=e.closest(".csf-customize-complex");if(t.length){var n=t.data("unique-id");if(n===y)return;var i=t.find(":input"),s=t.data("option-id"),a=i.serializeObjectCSF(),c=!I.isEmptyObject(a)&&a[n]&&a[n][s]?a[n][s]:"",r=_.wp.customize.control(n+"["+s+"]");r.setting._value=null,r.setting.set(c)}else e.find(":input").first().trigger("change");I(b).trigger("csf-customizer-refresh",e)})},I.fn.csf_customizer_listen=function(e){var t=I.extend({closest:!1},e);return this.each(function(){if(_.wp.customize!==y){var n=t.closest?I(this).closest(".csf-customize-complex"):I(this),e=n.find(":input"),i=n.data("unique-id"),s=n.data("option-id");i!==y&&e.on("change keyup",function(){var e=n.find(":input").serializeObjectCSF(),t=!I.isEmptyObject(e)&&e[i]&&e[i][s]?e[i][s]:"";_.wp.customize.control(i+"["+s+"]").setting.set(t)})}})},I(b).on("expanded",".control-section",function(){var e=I(this);if(e.hasClass("open")&&!e.data("inited")){var t=e.find(".csf-customize-field"),n=e.find(".csf-customize-complex");t.length&&(e.csf_dependency(),t.csf_reload_script({dependency:!1}),n.csf_customizer_listen()),e.data("inited",!0)}}),T.vars.$window.on("resize csf.resize",T.helper.debounce(function(e){(-1<navigator.userAgent.indexOf("AppleWebKit/")?T.vars.$window.width():_.innerWidth)<=782&&!T.vars.onloaded&&(I(".csf-section").csf_reload_script(),T.vars.onloaded=!0)},200)).trigger("csf.resize"),I.fn.csf_widgets=function(){return this.each(function(){I(b).on("widget-added widget-updated",function(e,t){var n=t.find(".csf-fields");n.length&&n.csf_reload_script()}),I(b).on("click",".widget-top",function(e){var t=I(this).parent().find(".csf-fields");t.length&&t.csf_reload_script()}),I(".widgets-sortables, .control-section-sidebar").on("sortstop",function(e,t){t.item.find(".csf-fields").csf_reload_script_retry()})})},I.fn.csf_nav_menu=function(){return this.each(function(){var e=I(this);e.on("click","a.item-edit",function(){I(this).closest("li.menu-item").find(".csf-fields").csf_reload_script()}),e.on("sortstop",function(e,t){t.item.find(".csf-fields").csf_reload_script_retry()})})},I.fn.csf_reload_script_retry=function(){return this.each(function(){var e=I(this);e.data("inited")&&e.children(".csf-field-wp_editor").csf_field_wp_editor()})},I.fn.csf_reload_script=function(e){var t=I.extend({dependency:!0},e);return this.each(function(){var e=I(this);e.data("inited")||(e.children(".csf-field-accordion").csf_field_accordion(),e.children(".csf-field-backup").csf_field_backup(),e.children(".csf-field-background").csf_field_background(),e.children(".csf-field-code_editor").csf_field_code_editor(),e.children(".csf-field-date").csf_field_date(),e.children(".csf-field-fieldset").csf_field_fieldset(),e.children(".csf-field-gallery").csf_field_gallery(),e.children(".csf-field-group").csf_field_group(),e.children(".csf-field-icon").csf_field_icon(),e.children(".csf-field-link").csf_field_link(),e.children(".csf-field-media").csf_field_media(),e.children(".csf-field-map").csf_field_map(),e.children(".csf-field-repeater").csf_field_repeater(),e.children(".csf-field-slider").csf_field_slider(),e.children(".csf-field-sortable").csf_field_sortable(),e.children(".csf-field-sorter").csf_field_sorter(),e.children(".csf-field-spinner").csf_field_spinner(),e.children(".csf-field-switcher").csf_field_switcher(),e.children(".csf-field-tabbed").csf_field_tabbed(),e.children(".csf-field-typography").csf_field_typography(),e.children(".csf-field-upload").csf_field_upload(),e.children(".csf-field-wp_editor").csf_field_wp_editor(),e.children(".csf-field-border").find(".csf-color").csf_color(),e.children(".csf-field-background").find(".csf-color").csf_color(),e.children(".csf-field-color").find(".csf-color").csf_color(),e.children(".csf-field-color_group").find(".csf-color").csf_color(),e.children(".csf-field-link_color").find(".csf-color").csf_color(),e.children(".csf-field-typography").find(".csf-color").csf_color(),e.children(".csf-field-select").find(".csf-chosen").csf_chosen(),e.children(".csf-field-checkbox").find(".csf-checkbox").csf_checkbox(),e.children(".csf-field-button_set").find(".csf-siblings").csf_siblings(),e.children(".csf-field-image_select").find(".csf-siblings").csf_siblings(),e.children(".csf-field-palette").find(".csf-siblings").csf_siblings(),e.children(".csf-field").find(".csf-help").csf_help(),t.dependency&&e.csf_dependency(),e.data("inited",!0),I(b).trigger("csf-reload-script",e))})},I(b).ready(function(){I(".csf-save").csf_save(),I(".csf-options").csf_options(),I(".csf-sticky-header").csf_sticky(),I(".csf-nav-options").csf_nav_options(),I(".csf-nav-metabox").csf_nav_metabox(),I(".csf-taxonomy").csf_taxonomy(),I(".csf-page-templates").csf_page_templates(),I(".csf-post-formats").csf_post_formats(),I(".csf-shortcode").csf_shortcode(),I(".csf-search").csf_search(),I(".csf-confirm").csf_confirm(),I(".csf-expand-all").csf_expand_all(),I(".csf-onload").csf_reload_script(),I("#widgets-editor").csf_widgets(),I("#widgets-right").csf_widgets(),I("#menu-to-edit").csf_nav_menu()})}(jQuery,window,document);
1
+ /* Codestar Framework | A Simple and Lightweight WordPress Option Framework - v2.2.6*/
2
 
3
+ !function(I,_,b,y){"use strict";var T=T||{};T.funcs={},T.vars={onloaded:!1,$body:I("body"),$window:I(_),$document:I(b),$form_warning:null,is_confirm:!1,form_modified:!1,code_themes:[],is_rtl:I("body").hasClass("rtl")},T.helper={uid:function(e){return(e||"")+Math.random().toString(36).substr(2,9)},preg_quote:function(e){return(e+"").replace(/(\[|\])/g,"\\$1")},name_nested_replace:function(e,t){var n=new RegExp(T.helper.preg_quote(t+"[\\d+]"),"g");e.find(":radio").each(function(){(this.checked||this.orginal_checked)&&(this.orginal_checked=!0)}),e.each(function(e){I(this).find(":input").each(function(){this.name=this.name.replace(n,t+"["+e+"]"),this.orginal_checked&&(this.checked=!0)})})},debounce:function(i,s,a){var c;return function(){var e=this,t=arguments,n=a&&!c;clearTimeout(c),c=setTimeout(function(){c=null,a||i.apply(e,t)},s),n&&i.apply(e,t)}}},I.fn.csf_clone=function(){for(var e=I.fn.clone.apply(this,arguments),t=this.find("select").add(this.filter("select")),n=e.find("select").add(e.filter("select")),i=0;i<t.length;++i)for(var s=0;s<t[i].options.length;++s)!0===t[i].options[s].selected&&(n[i].options[s].selected=!0);return this.find(":radio").each(function(){this.orginal_checked=this.checked}),e},I.fn.csf_expand_all=function(){return this.each(function(){I(this).on("click",function(e){e.preventDefault(),I(".csf-wrapper").toggleClass("csf-show-all"),I(".csf-section").csf_reload_script(),I(this).find(".fa").toggleClass("fa-indent").toggleClass("fa-outdent")})})},I.fn.csf_nav_options=function(){return this.each(function(){var s,e=I(this),t=I(_),a=I("#wpwrap"),c=e.find("a");t.on("hashchange csf.hashchange",function(){var e=_.location.hash.replace("#tab=",""),t=e||c.first().attr("href").replace("#tab=",""),n=I('[data-tab-id="'+t+'"]');if(n.length){n.closest(".csf-tab-item").addClass("csf-tab-expanded").siblings().removeClass("csf-tab-expanded"),n.next().is("ul")&&(t=(n=n.next().find("li").first().find("a")).data("tab-id")),c.removeClass("csf-active"),n.addClass("csf-active"),s&&s.addClass("hidden");var i=I('[data-section-id="'+t+'"]');i.removeClass("hidden"),i.csf_reload_script(),I(".csf-section-id").val(i.index()+1),s=i,a.hasClass("wp-responsive-open")&&(I("html, body").animate({scrollTop:i.offset().top-50},200),a.removeClass("wp-responsive-open"))}}).trigger("csf.hashchange")})},I.fn.csf_nav_metabox=function(){return this.each(function(){var s,e=I(this),a=e.find("a"),c=e.parent().find(".csf-section");a.each(function(i){I(this).on("click",function(e){e.preventDefault();var t=I(this);a.removeClass("csf-active"),t.addClass("csf-active"),s!==y&&s.addClass("hidden");var n=c.eq(i);n.removeClass("hidden"),n.csf_reload_script(),s=n})}),a.first().trigger("click")})},I.fn.csf_page_templates=function(){this.length&&I(b).on("change",".editor-page-attributes__template select, #page_template",function(){var e=I(this).val()||"default";I(".csf-page-templates").removeClass("csf-metabox-show").addClass("csf-metabox-hide"),I(".csf-page-"+e.toLowerCase().replace(/[^a-zA-Z0-9]+/g,"-")).removeClass("csf-metabox-hide").addClass("csf-metabox-show")})},I.fn.csf_post_formats=function(){this.length&&I(b).on("change",'.editor-post-format select, #formatdiv input[name="post_format"]',function(){var e=I(this).val()||"default";e="0"===e?"default":e,I(".csf-post-formats").removeClass("csf-metabox-show").addClass("csf-metabox-hide"),I(".csf-post-format-"+e).removeClass("csf-metabox-hide").addClass("csf-metabox-show")})},I.fn.csf_search=function(){return this.each(function(){I(this).find("input").on("change keyup",function(){var n=I(this).val(),e=I(".csf-wrapper"),t=e.find(".csf-section").find("> .csf-field:not(.csf-depend-on)"),i=t.find("> .csf-title, .csf-search-tags");3<n.length?(t.addClass("csf-metabox-hide"),e.addClass("csf-search-all"),i.each(function(){var e=I(this);if(e.text().match(new RegExp(".*?"+n+".*?","i"))){var t=e.closest(".csf-field");t.removeClass("csf-metabox-hide"),t.parent().csf_reload_script()}})):(t.removeClass("csf-metabox-hide"),e.removeClass("csf-search-all"))})})},I.fn.csf_sticky=function(){return this.each(function(){var i=I(this),s=I(_),a=i.find(".csf-header-inner"),c=parseInt(a.css("padding-left"))+parseInt(a.css("padding-right")),r=0,o=!1,e=function(){o||requestAnimationFrame(function(){var e,t,n;e=i.offset().top,t=Math.max(32,e-r),n=s.innerWidth(),t<=32&&782<n?(a.css({width:i.outerWidth()-c}),i.css({height:i.outerHeight()}).addClass("csf-sticky")):(a.removeAttr("style"),i.removeAttr("style").removeClass("csf-sticky")),o=!1}),o=!0},t=function(){r=s.scrollTop(),e()};s.on("scroll resize",t),t()})},I.fn.csf_dependency=function(){return this.each(function(){var e=I(this),t=e.children("[data-controller]");if(t.length){var n=I.csf_deps.createRuleset(),i=I.csf_deps.createRuleset(),f=[],l=[];t.each(function(){var s=I(this),e=s.data("controller").split("|"),a=s.data("condition").split("|"),c=s.data("value").toString().split("|"),r=!!s.data("depend-global"),o=r?i:n;I.each(e,function(e,t){var n=c[e]||"",i=a[e]||a[0];(o=o.createRule('[data-depend-id="'+t+'"]',i,n)).include(s),r?l.push(t):f.push(t)})}),f.length&&I.csf_deps.enable(e,n,f),l.length&&I.csf_deps.enable(T.vars.$body,i,l)}})},I.fn.csf_field_accordion=function(){return this.each(function(){I(this).find(".csf-accordion-title").on("click",function(){var e=I(this),t=e.find(".csf-accordion-icon"),n=e.next();t.hasClass("fa-angle-right")?t.removeClass("fa-angle-right").addClass("fa-angle-down"):t.removeClass("fa-angle-down").addClass("fa-angle-right"),n.data("opened")||(n.csf_reload_script(),n.data("opened",!0)),n.toggleClass("csf-accordion-open")})})},I.fn.csf_field_backup=function(){return this.each(function(){if(_.wp.customize!==y){var t=this,n=I(this),i=(I("body"),n.find(".csf-import")),s=n.find(".csf-reset");t.notificationOverlay=function(){wp.customize.notifications&&wp.customize.OverlayNotification&&(wp.customize.state("saved").get()||(wp.customize.state("changesetStatus").set("trash"),wp.customize.each(function(e){e._dirty=!1}),wp.customize.state("saved").set(!0)),wp.customize.notifications.add(new wp.customize.OverlayNotification("csf_field_backup_notification",{type:"default",message:"&nbsp;",loading:!0})))},s.on("click",function(e){e.preventDefault(),T.vars.is_confirm&&(t.notificationOverlay(),_.wp.ajax.post("csf-reset",{unique:s.data("unique"),nonce:s.data("nonce")}).done(function(e){_.location.reload(!0)}).fail(function(e){alert(e.error),wp.customize.notifications.remove("csf_field_backup_notification")}))}),i.on("click",function(e){e.preventDefault(),T.vars.is_confirm&&(t.notificationOverlay(),_.wp.ajax.post("csf-import",{unique:i.data("unique"),nonce:i.data("nonce"),data:n.find(".csf-import-data").val()}).done(function(e){_.location.reload(!0)}).fail(function(e){alert(e.error),wp.customize.notifications.remove("csf_field_backup_notification")}))})}})},I.fn.csf_field_background=function(){return this.each(function(){I(this).find(".csf--background-image").csf_reload_script()})},I.fn.csf_field_code_editor=function(){return this.each(function(){if("function"==typeof CodeMirror){var t=I(this),i=t.find("textarea"),e=t.find(".CodeMirror"),s=i.data("editor");e.length&&e.remove();var a=setInterval(function(){if(t.is(":visible")){var n=CodeMirror.fromTextArea(i[0],s);if("default"!==s.theme&&-1===T.vars.code_themes.indexOf(s.theme)){var e=I("<link>");I("#csf-codemirror-css").after(e),e.attr({rel:"stylesheet",id:"csf-codemirror-"+s.theme+"-css",href:s.cdnURL+"/theme/"+s.theme+".min.css",type:"text/css",media:"all"}),T.vars.code_themes.push(s.theme)}CodeMirror.modeURL=s.cdnURL+"/mode/%N/%N.min.js",CodeMirror.autoLoadMode(n,s.mode),n.on("change",function(e,t){i.val(n.getValue()).trigger("change")}),clearInterval(a)}})}})},I.fn.csf_field_date=function(){return this.each(function(){var e=I(this),i=e.find("input"),s=e.find(".csf-date-settings").data("settings"),t={showAnim:"",beforeShow:function(e,t){I(t.dpDiv).addClass("csf-datepicker-wrapper")},onClose:function(e,t){I(t.dpDiv).removeClass("csf-datepicker-wrapper")}};s=I.extend({},s,t),2===i.length&&(s=I.extend({},s,{onSelect:function(e){I(this),i.first();var t=i.first().attr("id")===I(this).attr("id")?"minDate":"maxDate",n=I.datepicker.parseDate(s.dateFormat,e);i.not(this).datepicker("option",t,n)}})),i.each(function(){var e=I(this);e.hasClass("hasDatepicker")&&e.removeAttr("id").removeClass("hasDatepicker"),e.datepicker(s)})})},I.fn.csf_field_datetime=function(){return this.each(function(){var e=I(this),i=e.find("input"),t=e.find(".csf-datetime-settings").data("settings");t=I.extend({},t,{onReady:function(e,t,n){I(n.calendarContainer).addClass("csf-flatpickr")}}),2===i.length&&(t=I.extend({},t,{onChange:function(e,t,n){"from"===I(n.element).data("type")?i.last().get(0)._flatpickr.set("minDate",e[0]):i.first().get(0)._flatpickr.set("maxDate",e[0])}})),i.each(function(){I(this).flatpickr(t)})})},I.fn.csf_field_fieldset=function(){return this.each(function(){I(this).find(".csf-fieldset-content").csf_reload_script()})},I.fn.csf_field_gallery=function(){return this.each(function(){var a,e=I(this),c=e.find(".csf-edit-gallery"),r=e.find(".csf-clear-gallery"),o=e.find("ul"),f=e.find("input");e.find("img");e.on("click",".csf-button, .csf-edit-gallery",function(e){var t=I(this),n=f.val(),i=t.hasClass("csf-edit-gallery")?"edit":"add",s="add"!==i||n.length?"gallery-edit":"gallery";e.preventDefault(),void 0!==_.wp&&_.wp.media&&_.wp.media.gallery&&("gallery"===s?(a=_.wp.media({library:{type:"image"},frame:"post",state:"gallery",multiple:!0})).open():(a=_.wp.media.gallery.edit('[gallery ids="'+n+'"]'),"add"===i&&a.setState("gallery-library")),a.on("update",function(e){o.empty();var t=e.models.map(function(e){var t=e.toJSON(),n=t.sizes&&t.sizes.thumbnail&&t.sizes.thumbnail.url?t.sizes.thumbnail.url:t.url;return o.append('<li><img src="'+n+'"></li>'),t.id});f.val(t.join(",")).trigger("change"),r.removeClass("hidden"),c.removeClass("hidden")}))}),r.on("click",function(e){e.preventDefault(),o.empty(),f.val("").trigger("change"),r.addClass("hidden"),c.addClass("hidden")})})},I.fn.csf_field_group=function(){return this.each(function(){var e=I(this),t=e.children(".csf-fieldset"),n=t.length?t:e,r=n.children(".csf-cloneable-wrapper"),i=n.children(".csf-cloneable-hidden"),o=n.children(".csf-cloneable-max"),f=n.children(".csf-cloneable-min"),l=r.data("field-id"),d=Boolean(Number(r.data("title-number"))),h=parseInt(r.data("max")),s=parseInt(r.data("min"));r.hasClass("ui-accordion")&&r.find(".ui-accordion-header-icon").remove();var p=function(e){e.find(".csf-cloneable-title-number").each(function(e){I(this).html(I(this).closest(".csf-cloneable-item").index()+1+".")})};r.accordion({header:"> .csf-cloneable-item > .csf-cloneable-title",collapsible:!0,active:!1,animate:!1,heightStyle:"content",icons:{header:"csf-cloneable-header-icon fas fa-angle-right",activeHeader:"csf-cloneable-header-icon fas fa-angle-down"},activate:function(e,t){var n=t.newPanel,i=t.newHeader;if(n.length&&!n.data("opened")){var s=n.children().first().find(":input").first(),a=i.find(".csf-cloneable-value");s.on("change keyup",function(e){a.text(s.val())}),n.csf_reload_script(),n.data("opened",!0),n.data("retry",!1)}else n.data("retry")&&(n.csf_reload_script_retry(),n.data("retry",!1))}}),r.sortable({axis:"y",handle:".csf-cloneable-title,.csf-cloneable-sort",helper:"original",cursor:"move",placeholder:"widget-placeholder",start:function(e,t){r.accordion({active:!1}),r.sortable("refreshPositions"),t.item.children(".csf-cloneable-content").data("retry",!0)},update:function(e,t){T.helper.name_nested_replace(r.children(".csf-cloneable-item"),l),r.csf_customizer_refresh(),d&&p(r)}}),n.children(".csf-cloneable-add").on("click",function(e){e.preventDefault();var t=r.children(".csf-cloneable-item").length;if(f.hide(),h&&h<t+1)o.show();else{var n=i.csf_clone(!0);n.removeClass("csf-cloneable-hidden"),n.find(':input[name!="_pseudo"]').each(function(){this.name=this.name.replace("___","").replace(l+"[0]",l+"["+t+"]")}),r.append(n),r.accordion("refresh"),r.accordion({active:t}),r.csf_customizer_refresh(),r.csf_customizer_listen({closest:!0}),d&&p(r)}});var a=function(e){e.preventDefault();var t=r.children(".csf-cloneable-item").length;if(f.hide(),h&&h<t+1)o.show();else{var n=I(this).parent().parent(),i=n.children(".csf-cloneable-helper").csf_clone(!0),s=n.children(".csf-cloneable-title").csf_clone(),a=n.children(".csf-cloneable-content").csf_clone(),c=I('<div class="csf-cloneable-item" />');c.append(i),c.append(s),c.append(a),r.children().eq(n.index()).after(c),T.helper.name_nested_replace(r.children(".csf-cloneable-item"),l),r.accordion("refresh"),r.csf_customizer_refresh(),r.csf_customizer_listen({closest:!0}),d&&p(r)}};r.children(".csf-cloneable-item").children(".csf-cloneable-helper").on("click",".csf-cloneable-clone",a),n.children(".csf-cloneable-hidden").children(".csf-cloneable-helper").on("click",".csf-cloneable-clone",a);var c=function(e){e.preventDefault();var t=r.children(".csf-cloneable-item").length;o.hide(),f.hide(),s&&t-1<s?f.show():(I(this).closest(".csf-cloneable-item").remove(),T.helper.name_nested_replace(r.children(".csf-cloneable-item"),l),r.csf_customizer_refresh(),d&&p(r))};r.children(".csf-cloneable-item").children(".csf-cloneable-helper").on("click",".csf-cloneable-remove",c),n.children(".csf-cloneable-hidden").children(".csf-cloneable-helper").on("click",".csf-cloneable-remove",c)})},I.fn.csf_field_icon=function(){return this.each(function(){var n=I(this);n.on("click",".csf-icon-add",function(e){e.preventDefault();var t=I(this),i=I("#csf-modal-icon");i.removeClass("hidden"),T.vars.$icon_target=n,T.vars.icon_modal_loaded||(i.find(".csf-modal-loading").show(),_.wp.ajax.post("csf-get-icons",{nonce:t.data("nonce")}).done(function(e){i.find(".csf-modal-loading").hide(),T.vars.icon_modal_loaded=!0;var n=i.find(".csf-modal-load").html(e.content);n.on("click","i",function(e){e.preventDefault();var t=I(this).attr("title");T.vars.$icon_target.find(".csf-icon-preview i").removeAttr("class").addClass(t),T.vars.$icon_target.find(".csf-icon-preview").removeClass("hidden"),T.vars.$icon_target.find(".csf-icon-remove").removeClass("hidden"),T.vars.$icon_target.find("input").val(t).trigger("change"),i.addClass("hidden")}),i.on("change keyup",".csf-icon-search",function(){var t=I(this).val();n.find("i").each(function(){var e=I(this);e.attr("title").search(new RegExp(t,"i"))<0?e.hide():e.show()})}),i.on("click",".csf-modal-close, .csf-modal-overlay",function(){i.addClass("hidden")})}).fail(function(e){i.find(".csf-modal-loading").hide(),i.find(".csf-modal-load").html(e.error),i.on("click",function(){i.addClass("hidden")})}))}),n.on("click",".csf-icon-remove",function(e){e.preventDefault(),n.find(".csf-icon-preview").addClass("hidden"),n.find("input").val("").trigger("change"),I(this).addClass("hidden")})})},I.fn.csf_field_map=function(){return this.each(function(){if("undefined"!=typeof L){var e=I(this),t=e.find(".csf--map-osm"),n=e.find(".csf--map-search input"),i=e.find(".csf--latitude"),s=e.find(".csf--longitude"),a=e.find(".csf--zoom"),c=t.data("map"),r=L.map(t.get(0),c);L.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",{attribution:'&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'}).addTo(r);var o=L.marker(c.center,{draggable:!0}).addTo(r),f=function(e){i.val(e.lat),s.val(e.lng),a.val(r.getZoom())};r.on("click",function(e){o.setLatLng(e.latlng),f(e.latlng)}),r.on("zoom",function(){f(o.getLatLng())}),o.on("drag",function(){f(o.getLatLng())}),n.length||(n=I('[data-depend-id="'+e.find(".csf--address-field").data("address-field")+'"]'));var l={};n.autocomplete({source:function(e,n){var i=e.term;i in l?n(l[i]):I.get("https://nominatim.openstreetmap.org/search",{format:"json",q:i},function(e){var t;t=e.length?e.map(function(e){return{value:e.display_name,label:e.display_name,lat:e.lat,lon:e.lon}},"json"):[{value:"no-data",label:"No Results."}],l[i]=t,n(t)})},select:function(e,t){if("no-data"===t.item.value)return!1;var n=L.latLng(t.item.lat,t.item.lon);r.panTo(n),o.setLatLng(n),f(n)},create:function(e,t){I(this).autocomplete("widget").addClass("csf-map-ui-autocomplate")}});var d=function(){var e=L.latLng(i.val(),s.val());r.panTo(e),o.setLatLng(e)};i.on("change",d),s.on("change",d)}})},I.fn.csf_field_link=function(){return this.each(function(){var s=I(this),e=s.find(".csf--link"),a=s.find(".csf--add"),c=s.find(".csf--edit"),r=s.find(".csf--remove"),o=s.find(".csf--result"),t=T.helper.uid("csf-wplink-textarea-");a.on("click",function(e){e.preventDefault(),_.wpLink.open(t)}),c.on("click",function(e){e.preventDefault(),a.trigger("click"),I("#wp-link-url").val(s.find(".csf--url").val()),I("#wp-link-text").val(s.find(".csf--text").val()),I("#wp-link-target").prop("checked","_blank"===s.find(".csf--target").val())}),r.on("click",function(e){e.preventDefault(),s.find(".csf--url").val("").trigger("change"),s.find(".csf--text").val(""),s.find(".csf--target").val(""),a.removeClass("hidden"),c.addClass("hidden"),r.addClass("hidden"),o.parent().addClass("hidden")}),e.attr("id",t).on("change",function(){var e=_.wpLink.getAttrs(),t=e.href,n=I("#wp-link-text").val(),i=e.target?e.target:"";s.find(".csf--url").val(t).trigger("change"),s.find(".csf--text").val(n),s.find(".csf--target").val(i),o.html('{url:"'+t+'", text:"'+n+'", target:"'+i+'"}'),a.addClass("hidden"),c.removeClass("hidden"),r.removeClass("hidden"),o.parent().removeClass("hidden")})})},I.fn.csf_field_media=function(){return this.each(function(){var i,s=I(this),a=s.find(".csf--button"),c=s.find(".csf--remove"),r=a.data("library")&&a.data("library").split(",")||"",o=!!s.hasClass("csf-assign-field-background")&&s.closest(".csf-field-background").find(".csf--auto-attributes");a.on("click",function(e){e.preventDefault(),void 0!==_.wp&&_.wp.media&&_.wp.media.gallery&&(i||(i=_.wp.media({library:{type:r}})).on("select",function(){var e,t=i.state().get("selection").first().attributes,n=a.data("preview-size")||"thumbnail";r.length&&-1===r.indexOf(t.subtype)&&-1===r.indexOf(t.type)||(s.find(".csf--id").val(t.id),s.find(".csf--width").val(t.width),s.find(".csf--height").val(t.height),s.find(".csf--alt").val(t.alt),s.find(".csf--title").val(t.title),s.find(".csf--description").val(t.description),e=void 0!==t.sizes&&void 0!==t.sizes.thumbnail&&"thumbnail"===n?t.sizes.thumbnail.url:void 0!==t.sizes&&void 0!==t.sizes.full?t.sizes.full.url:"image"===t.type?t.url:t.icon,console.log(t),o&&o.removeClass("csf--attributes-hidden"),c.removeClass("hidden"),s.find(".csf--preview").removeClass("hidden"),s.find(".csf--src").attr("src",e),s.find(".csf--thumbnail").val(e),s.find(".csf--url").val(t.url).trigger("change"))}),i.open())}),c.on("click",function(e){e.preventDefault(),o&&o.addClass("csf--attributes-hidden"),c.addClass("hidden"),s.find("input").val(""),s.find(".csf--preview").addClass("hidden"),s.find(".csf--url").trigger("change")})})},I.fn.csf_field_repeater=function(){return this.each(function(){var e=I(this),t=e.children(".csf-fieldset"),n=t.length?t:e,c=n.children(".csf-repeater-wrapper"),i=n.children(".csf-repeater-hidden"),r=n.children(".csf-repeater-max"),o=n.children(".csf-repeater-min"),f=c.data("field-id"),l=parseInt(c.data("max")),s=parseInt(c.data("min"));c.children(".csf-repeater-item").children(".csf-repeater-content").csf_reload_script(),c.sortable({axis:"y",handle:".csf-repeater-sort",helper:"original",cursor:"move",placeholder:"widget-placeholder",update:function(e,t){T.helper.name_nested_replace(c.children(".csf-repeater-item"),f),c.csf_customizer_refresh(),t.item.csf_reload_script_retry()}}),n.children(".csf-repeater-add").on("click",function(e){e.preventDefault();var t=c.children(".csf-repeater-item").length;if(o.hide(),l&&l<t+1)r.show();else{var n=i.csf_clone(!0);n.removeClass("csf-repeater-hidden"),n.find(':input[name!="_pseudo"]').each(function(){this.name=this.name.replace("___","").replace(f+"[0]",f+"["+t+"]")}),c.append(n),n.children(".csf-repeater-content").csf_reload_script(),c.csf_customizer_refresh(),c.csf_customizer_listen({closest:!0})}});var a=function(e){e.preventDefault();var t=c.children(".csf-repeater-item").length;if(o.hide(),l&&l<t+1)r.show();else{var n=I(this).parent().parent().parent(),i=n.children(".csf-repeater-content").csf_clone(),s=n.children(".csf-repeater-helper").csf_clone(!0),a=I('<div class="csf-repeater-item" />');a.append(i),a.append(s),c.children().eq(n.index()).after(a),a.children(".csf-repeater-content").csf_reload_script(),T.helper.name_nested_replace(c.children(".csf-repeater-item"),f),c.csf_customizer_refresh(),c.csf_customizer_listen({closest:!0})}};c.children(".csf-repeater-item").children(".csf-repeater-helper").on("click",".csf-repeater-clone",a),n.children(".csf-repeater-hidden").children(".csf-repeater-helper").on("click",".csf-repeater-clone",a);var d=function(e){e.preventDefault();var t=c.children(".csf-repeater-item").length;r.hide(),o.hide(),s&&t-1<s?o.show():(I(this).closest(".csf-repeater-item").remove(),T.helper.name_nested_replace(c.children(".csf-repeater-item"),f),c.csf_customizer_refresh())};c.children(".csf-repeater-item").children(".csf-repeater-helper").on("click",".csf-repeater-remove",d),n.children(".csf-repeater-hidden").children(".csf-repeater-helper").on("click",".csf-repeater-remove",d)})},I.fn.csf_field_slider=function(){return this.each(function(){var e=I(this),n=e.find("input"),t=e.find(".csf-slider-ui"),i=n.data(),s=n.val()||0;t.hasClass("ui-slider")&&t.empty(),t.slider({range:"min",value:s,min:i.min||0,max:i.max||100,step:i.step||1,slide:function(e,t){n.val(t.value).trigger("change")}}),n.on("keyup",function(){t.slider("value",n.val())})})},I.fn.csf_field_sortable=function(){return this.each(function(){var n=I(this).find(".csf-sortable");n.sortable({axis:"y",helper:"original",cursor:"move",placeholder:"widget-placeholder",update:function(e,t){n.csf_customizer_refresh()}}),n.find(".csf-sortable-content").csf_reload_script()})},I.fn.csf_field_sorter=function(){return this.each(function(){var i=I(this),e=i.find(".csf-enabled"),t=i.find(".csf-disabled"),n=!!t.length&&t;e.sortable({connectWith:n,placeholder:"ui-sortable-placeholder",update:function(e,t){var n=t.item.find("input");t.item.parent().hasClass("csf-enabled")?n.attr("name",n.attr("name").replace("disabled","enabled")):n.attr("name",n.attr("name").replace("enabled","disabled")),i.csf_customizer_refresh()}}),n&&n.sortable({connectWith:e,placeholder:"ui-sortable-placeholder",update:function(e,t){i.csf_customizer_refresh()}})})},I.fn.csf_field_spinner=function(){return this.each(function(){var e=I(this),n=e.find("input"),t=e.find(".ui-button"),i=n.data();t.length&&t.remove(),n.spinner({min:i.min||0,max:i.max||100,step:i.step||1,create:function(e,t){i.unit&&n.after('<span class="ui-button csf--unit">'+i.unit+"</span>")},spin:function(e,t){n.val(t.value).trigger("change")}})})},I.fn.csf_field_switcher=function(){return this.each(function(){var n=I(this).find(".csf--switcher");n.on("click",function(){var e=0,t=n.find("input");n.hasClass("csf--active")?n.removeClass("csf--active"):(e=1,n.addClass("csf--active")),t.val(e).trigger("change")})})},I.fn.csf_field_tabbed=function(){return this.each(function(){var e=I(this),t=e.find(".csf-tabbed-nav a"),s=e.find(".csf-tabbed-content");s.eq(0).csf_reload_script(),t.on("click",function(e){e.preventDefault();var t=I(this),n=t.index(),i=s.eq(n);t.addClass("csf-tabbed-active").siblings().removeClass("csf-tabbed-active"),i.csf_reload_script(),i.removeClass("hidden").siblings().addClass("hidden")})})},I.fn.csf_field_typography=function(){return this.each(function(){var j=this,L=I(this),i=[],A=csf_typography_json.webfonts,t=csf_typography_json.googlestyles,q=csf_typography_json.defaultstyles;j.sanitize_subset=function(e){return e=(e=e.replace("-ext"," Extended")).charAt(0).toUpperCase()+e.slice(1)},j.sanitize_style=function(e){return t[e]?t[e]:e},j.load_google_font=function(e,t,n){e&&"object"==typeof WebFont&&(t=t?t.replace("normal",""):"",n=n?n.replace("normal",""):"",(t||n)&&(e=e+":"+t+n),-1===i.indexOf(e)&&WebFont.load({google:{families:[e]}}),i.push(e))},j.append_select_options=function(e,t,s,a,c){e.find("option").not(":first").remove();var r="";I.each(t,function(e,t){var n,i=t;n=c?s&&-1!==s.indexOf(t)?" selected":"":s&&s===t?" selected":"","subset"===a?i=j.sanitize_subset(t):"style"===a&&(i=j.sanitize_style(t)),r+='<option value="'+t+'"'+n+">"+i+"</option>"}),e.append(r).trigger("csf.change").trigger("chosen:updated")},j.init=function(){var l=[],e=L.find(".csf--typography"),d=L.find(".csf--type"),h=L.find(".csf--block-font-style"),v=e.data("unit"),g=e.data("line-height-unit"),t=e.data("exclude")?e.data("exclude").split(","):[];L.find(".csf--chosen").length&&L.find("select").each(function(){var e=I(this),t=e.parent().find(".chosen-container");t.length&&t.remove(),e.chosen({allow_single_deselect:!0,disable_search_threshold:15,width:"100%"})});var m=L.find(".csf--font-family"),i=m.val();m.find("option").not(":first-child").remove();var s="";I.each(A,function(n,e){t&&-1!==t.indexOf(n)||(s+='<optgroup label="'+e.label+'">',I.each(e.fonts,function(e,t){s+='<option value="'+(t="object"==typeof t?e:t)+'" data-type="'+n+'"'+(t===i?" selected":"")+">"+t+"</option>"}),s+="</optgroup>")}),m.append(s).trigger("chosen:updated");var p=L.find(".csf--block-font-style");if(p.length){var u=L.find(".csf--font-style-select"),_=u.val()?u.val().replace(/normal/g,""):"";u.on("change csf.change",function(e){var t=u.val();!t&&l&&-1===l.indexOf("normal")&&(t=l[0]);var n=t&&"italic"!==t&&"normal"===t?"normal":"",i=t&&"italic"!==t&&"normal"!==t?t.replace("italic",""):n,s=t&&"italic"===t.substr(-6)?"italic":"";L.find(".csf--font-weight").val(i),L.find(".csf--font-style").val(s)});var b=L.find(".csf--block-extra-styles");if(b.length)var y=L.find(".csf--extra-styles"),w=y.val()}var C=L.find(".csf--block-subset");if(C.length)var k=L.find(".csf--subset"),x=k.val(),z=k.data("multiple")||!1;var D=L.find(".csf--block-backup-font-family");m.on("change csf.change",function(e){C.length&&C.addClass("hidden"),b.length&&b.addClass("hidden"),D.length&&D.addClass("hidden");var t=m.find(":selected"),n=t.val(),i=t.data("type");if(i&&n){if("google"!==i&&"custom"!==i||!D.length||D.removeClass("hidden"),p.length){var s=q;"google"===i&&A[i].fonts[n][0]?s=A[i].fonts[n][0]:"custom"===i&&A[i].fonts[n]&&(s=A[i].fonts[n]);var a=-1!==(l=s).indexOf("normal")?"normal":s[0],c=_&&-1!==s.indexOf(_)?_:a;j.append_select_options(u,s,c,"style"),_=!1,p.removeClass("hidden"),"google"===i&&b.length&&1<s.length&&(j.append_select_options(y,s,w,"style",!0),w=!1,b.removeClass("hidden"))}if("google"===i&&C.length&&A[i].fonts[n][1]){var r=A[i].fonts[n][1],o=r.length<2&&"latin"!==r[0]?r[0]:"",f=x&&-1!==r.indexOf(x)?x:o;f=z&&x?x:f,j.append_select_options(k,r,f,"subset",z),x=!1,C.removeClass("hidden")}}else h.find(":input").val(""),C.length&&(k.find("option").not(":first-child").remove(),k.trigger("chosen:updated")),p.length&&(u.find("option").not(":first-child").remove(),u.trigger("chosen:updated"));d.val(i)}).trigger("csf.change");var O=L.find(".csf--block-preview");if(O.length){var S=L.find(".csf--preview");L.on("change",T.helper.debounce(function(e){O.removeClass("hidden");var t=m.val(),n=L.find(".csf--font-weight").val(),i=L.find(".csf--font-style").val(),s=L.find(".csf--font-size").val(),a=L.find(".csf--font-variant").val(),c=L.find(".csf--line-height").val(),r=L.find(".csf--text-align").val(),o=L.find(".csf--text-transform").val(),f=L.find(".csf--text-decoration").val(),l=L.find(".csf--color").val(),d=L.find(".csf--word-spacing").val(),h=L.find(".csf--letter-spacing").val(),p=L.find(".csf--custom-style").val();"google"===L.find(".csf--type").val()&&j.load_google_font(t,n,i);var u={};t&&(u.fontFamily=t),n&&(u.fontWeight=n),i&&(u.fontStyle=i),a&&(u.fontVariant=a),s&&(u.fontSize=s+v),c&&(u.lineHeight=c+g),h&&(u.letterSpacing=h+v),d&&(u.wordSpacing=d+v),r&&(u.textAlign=r),o&&(u.textTransform=o),f&&(u.textDecoration=f),l&&(u.color=l),S.removeAttr("style"),p&&S.attr("style",p),S.css(u)},100)),O.on("click",function(){S.toggleClass("csf--black-background");var e=O.find(".csf--toggle");e.hasClass("fa-toggle-off")?e.removeClass("fa-toggle-off").addClass("fa-toggle-on"):e.removeClass("fa-toggle-on").addClass("fa-toggle-off")}),O.hasClass("hidden")||L.trigger("change")}},j.init()})},I.fn.csf_field_upload=function(){return this.each(function(){var t,e=I(this),n=e.find("input"),i=e.find(".csf--button"),s=e.find(".csf--remove"),a=e.find(".csf--preview"),c=e.find(".csf--src"),r=i.data("library")&&i.data("library").split(",")||"";i.on("click",function(e){e.preventDefault(),void 0!==_.wp&&_.wp.media&&_.wp.media.gallery&&(t||(t=_.wp.media({library:{type:r}})).on("select",function(){var e=t.state().get("selection").first().attributes;r.length&&-1===r.indexOf(e.subtype)&&-1===r.indexOf(e.type)||n.val(e.url).trigger("change")}),t.open())}),s.on("click",function(e){e.preventDefault(),n.val("").trigger("change")}),n.on("change",function(e){var t=n.val();t?s.removeClass("hidden"):s.addClass("hidden"),a.length&&(-1!==I.inArray(t.split(".").pop().toLowerCase(),["jpg","jpeg","gif","png","svg","webp"])?(a.removeClass("hidden"),c.attr("src",t)):a.addClass("hidden"))})})},I.fn.csf_field_wp_editor=function(){return this.each(function(){if(void 0!==_.wp.editor&&void 0!==_.tinyMCEPreInit&&void 0!==_.tinyMCEPreInit.mceInit.csf_wp_editor){var e=I(this),t=e.find(".csf-wp-editor"),n=e.find("textarea");(e.find(".wp-editor-wrap").length||e.find(".mce-container").length)&&(t.empty(),t.append(n),n.css("display",""));var i=T.helper.uid("csf-editor-");n.attr("id",i);var s={tinymce:_.tinyMCEPreInit.mceInit.csf_wp_editor,quicktags:_.tinyMCEPreInit.qtInit.csf_wp_editor},a=t.data("editor-settings"),c=wp.oldEditor?wp.oldEditor:wp.editor;c&&c.hasOwnProperty("autop")&&(wp.editor.autop=c.autop,wp.editor.removep=c.removep,wp.editor.initialize=c.initialize);s.tinymce=I.extend({},s.tinymce,{selector:"#"+i,setup:function(t){t.on("change keyup",function(){var e=a.wpautop?t.getContent():wp.editor.removep(t.getContent());n.val(e).trigger("change")})}}),!1===a.tinymce&&(s.tinymce=!1,t.addClass("csf-no-tinymce")),!1===a.quicktags&&(s.quicktags=!1,t.addClass("csf-no-quicktags"));var r=setInterval(function(){e.is(":visible")&&(_.wp.editor.initialize(i,s),clearInterval(r))});if(a.media_buttons&&_.csf_media_buttons){var o=t.find(".wp-media-buttons");if(o.length)o.find(".csf-shortcode-button").data("editor-id",i);else{var f=I(_.csf_media_buttons);f.find(".csf-shortcode-button").data("editor-id",i),t.prepend(f)}}}})},I.fn.csf_confirm=function(){return this.each(function(){I(this).on("click",function(e){var t=I(this).data("confirm")||_.csf_vars.i18n.confirm;if(!confirm(t))return e.preventDefault(),!1;T.vars.is_confirm=!0,T.vars.form_modified=!1})})},I.fn.serializeObject=function(){var s={};return I.each(this.serializeArray(),function(e,t){var n=t.name,i=t.value;s[n]=s[n]===y?i:I.isArray(s[n])?s[n].concat(i):[s[n],i]}),s},I.fn.csf_save=function(){return this.each(function(){var i,s=I(this),c=I(".csf-save"),r=I(".csf-options"),o=!1;s.on("click",function(e){if(!o){var t=s.data("save"),n=s.val();c.attr("value",t),s.hasClass("csf-save-ajax")?(e.preventDefault(),r.addClass("csf-saving"),c.prop("disabled",!0),_.wp.ajax.post("csf_"+r.data("unique")+"_ajax_save",{data:I("#csf-form").serializeJSONCSF()}).done(function(e){if(I(".csf-error").remove(),Object.keys(e.errors).length){var a='<i class="csf-label-error csf-error">!</i>';I.each(e.errors,function(e,t){var n=I('[data-depend-id="'+e+'"]'),i=I('a[href="#tab='+n.closest(".csf-section").data("section-id")+'"]'),s=i.closest(".csf-tab-item");n.closest(".csf-fieldset").append('<p class="csf-error csf-error-text">'+t+"</p>"),i.find(".csf-error").length||i.append(a),s.find(".csf-arrow .csf-error").length||s.find(".csf-arrow").append(a)})}r.removeClass("csf-saving"),c.prop("disabled",!1).attr("value",n),o=!1,T.vars.form_modified=!1,T.vars.$form_warning.hide(),clearTimeout(i);var t=I(".csf-form-success");t.empty().append(e.notice).fadeIn("fast",function(){i=setTimeout(function(){t.fadeOut("fast")},1e3)})}).fail(function(e){alert(e.error)})):T.vars.form_modified=!1}o=!0})})},I.fn.csf_options=function(){return this.each(function(){var e=I(this),t=e.find(".csf-content"),n=e.find(".csf-form-success"),i=e.find(".csf-form-warning"),s=e.find(".csf-header .csf-save");(T.vars.$form_warning=i).length&&(_.onbeforeunload=function(){return!!T.vars.form_modified||y},t.on("change keypress",":input",function(){T.vars.form_modified||(n.hide(),i.fadeIn("fast"),T.vars.form_modified=!0)})),n.hasClass("csf-form-show")&&setTimeout(function(){n.fadeOut("fast")},1e3),I(b).keydown(function(e){if((e.ctrlKey||e.metaKey)&&83===e.which)return s.trigger("click"),e.preventDefault(),!1})})},I.fn.csf_taxonomy=function(){return this.each(function(){var e=I(this),t=e.parents("form");if("addtag"===t.attr("id")){var n=t.find("#submit"),i=e.find(".csf-field").csf_clone();n.on("click",function(){t.find(".form-required").hasClass("form-invalid")||(e.data("inited",!1),e.empty(),e.html(i),i=i.csf_clone(),e.csf_reload_script())})}})},I.fn.csf_shortcode=function(){var m=this;return m.shortcode_parse=function(e,n){var i="";return I.each(e,function(e,t){i+="["+(n=n||e),I.each(t,function(e,t){"content"===e?(i+="]",i+=t,i+="[/"+n):i+=m.shortcode_tags(e,t)}),i+="]"}),i},m.shortcode_tags=function(e,t){var n="";return""!==t&&("object"!=typeof t||I.isArray(t)?n+=" "+e.replace("-","_")+'="'+t.toString()+'"':I.each(t,function(e,t){switch(e){case"background-image":t=t.url?t.url:""}""!==t&&(n+=" "+e.replace("-","_")+'="'+t.toString()+'"')})),n},m.insertAtChars=function(e,t){var n=void 0!==e[0].name?e[0]:e;return n.value.length&&void 0!==n.selectionStart?(n.focus(),n.value.substring(0,n.selectionStart)+t+n.value.substring(n.selectionEnd,n.value.length)):(n.focus(),t)},m.send_to_editor=function(e,t){var n;if("undefined"!=typeof tinymce&&(n=tinymce.get(t)),n&&!n.isHidden())n.execCommand("mceInsertContent",!1,e);else{var i=I("#"+t);i.val(m.insertAtChars(i,e)).trigger("change")}},this.each(function(){var c,r,o,n,f,l,d,s,h,p=I(this),i=p.find(".csf-modal-load"),u=(p.find(".csf-modal-content"),p.find(".csf-modal-insert")),a=p.find(".csf-modal-loading"),t=p.find("select"),v=p.data("modal-id"),g=p.data("nonce");I(b).on("click",'.csf-shortcode-button[data-modal-id="'+v+'"]',function(e){e.preventDefault(),h=I(this),c=h.data("editor-id")||!1,r=h.data("target-id")||!1,o=h.data("gutenberg-id")||!1,p.removeClass("hidden"),p.hasClass("csf-shortcode-single")&&f===y&&t.trigger("change")}),t.on("change",function(){var e=I(this),t=e.find(":selected");n=e.val(),f=t.data("shortcode"),l=t.data("view")||"normal",d=t.data("group")||f,i.empty(),n?(a.show(),_.wp.ajax.post("csf-get-shortcode-"+v,{shortcode_key:n,nonce:g}).done(function(e){a.hide();var t=I(e.content).appendTo(i);u.parent().removeClass("hidden"),s=t.find(".csf--repeat-shortcode").csf_clone(),t.csf_reload_script(),t.find(".csf-fields").csf_reload_script()})):u.parent().addClass("hidden")}),u.on("click",function(e){if(e.preventDefault(),!u.prop("disabled")&&!u.attr("disabled")){var i="",t=p.find(".csf-field:not(.csf-depend-on)").find(":input:not(.ignore)").serializeObjectCSF();switch(l){case"contents":var n=f?t[f]:t;I.each(n,function(e,t){var n=f||e;i+="["+n+"]"+t+"[/"+n+"]"});break;case"group":i+="["+f,I.each(t[f],function(e,t){i+=m.shortcode_tags(e,t)}),i+="]",i+=m.shortcode_parse(t[d],d),i+="[/"+f+"]";break;case"repeater":i+=m.shortcode_parse(t[d],d);break;default:i+=m.shortcode_parse(t)}if(i=""===i?"["+f+"]":i,o){var s=_.csf_gutenberg_props.attributes.hasOwnProperty("shortcode")?_.csf_gutenberg_props.attributes.shortcode:"";_.csf_gutenberg_props.setAttributes({shortcode:s+i})}else if(c)m.send_to_editor(i,c);else{var a=r?I(r):h.parent().find("textarea");a.val(m.insertAtChars(a,i)).trigger("change")}p.addClass("hidden")}}),p.on("click",".csf--repeat-button",function(e){e.preventDefault();var t=p.find(".csf--repeatable"),n=s.csf_clone(),i=n.find(".csf-repeat-remove");n.appendTo(t);n.find(".csf-fields").csf_reload_script(),T.helper.name_nested_replace(p.find(".csf--repeat-shortcode"),d),i.on("click",function(){n.remove(),T.helper.name_nested_replace(p.find(".csf--repeat-shortcode"),d)})}),p.on("click",".csf-modal-close, .csf-modal-overlay",function(){p.addClass("hidden")})})},"function"==typeof Color&&(Color.prototype.toString=function(){if(this._alpha<1)return this.toCSS("rgba",this._alpha).replace(/\s+/g,"");var e=parseInt(this._color,10).toString(16);if(this.error)return"";if(e.length<6)for(var t=6-e.length-1;0<=t;t--)e="0"+e;return"#"+e}),T.funcs.parse_color=function(e){var t=e.replace(/\s+/g,""),n=-1!==t.indexOf("rgba")?parseFloat(100*t.replace(/^.*,(.+)\)/,"$1")):100;return{value:t,transparent:n,rgba:n<100}},I.fn.csf_color=function(){return this.each(function(){var c,r=I(this),o=T.funcs.parse_color(r.val()),e=!_.csf_vars.color_palette.length||_.csf_vars.color_palette;r.hasClass("wp-color-picker")&&r.closest(".wp-picker-container").after(r).remove(),r.wpColorPicker({palettes:e,change:function(e,t){var n=t.color.toString();c.removeClass("csf--transparent-active"),c.find(".csf--transparent-offset").css("background-color",n),r.val(n).trigger("change")},create:function(){c=r.closest(".wp-picker-container");var i=r.data("a8cIris"),e=I('<div class="csf--transparent-wrap"><div class="csf--transparent-slider"></div><div class="csf--transparent-offset"></div><div class="csf--transparent-text"></div><div class="csf--transparent-button">transparent <i class="fas fa-toggle-off"></i></div></div>').appendTo(c.find(".wp-picker-holder")),s=e.find(".csf--transparent-slider"),a=e.find(".csf--transparent-text"),n=e.find(".csf--transparent-offset"),t=e.find(".csf--transparent-button");"transparent"===r.val()&&c.addClass("csf--transparent-active"),t.on("click",function(){"transparent"!==r.val()?(r.val("transparent").trigger("change").removeClass("iris-error"),c.addClass("csf--transparent-active")):(r.val(i._color.toString()).trigger("change"),c.removeClass("csf--transparent-active"))}),s.slider({value:o.transparent,step:1,min:0,max:100,slide:function(e,t){var n=parseFloat(t.value/100);i._color._alpha=n,r.wpColorPicker("color",i._color.toString()),a.text(1===n||0===n?"":n)},create:function(){var e=parseFloat(o.transparent/100),t=e<1?e:"";a.text(t),n.css("background-color",o.value),c.on("click",".wp-picker-clear",function(){i._color._alpha=1,a.text(""),s.slider("option","value",100),c.removeClass("csf--transparent-active"),r.trigger("change")}),c.on("click",".wp-picker-default",function(){var e=T.funcs.parse_color(r.data("default-color")),t=parseFloat(e.transparent/100),n=t<1?t:"";i._color._alpha=t,a.text(n),s.slider("option","value",e.transparent),"transparent"===e.value&&(r.removeClass("iris-error"),c.addClass("csf--transparent-active"))})}})}})})},I.fn.csf_chosen=function(){return this.each(function(){var a=I(this),e=a.parent().find(".chosen-container"),t=a.hasClass("csf-chosen-sortable")||!1,n=a.hasClass("csf-chosen-ajax")||!1,i=a.attr("multiple")||!1,s=i?"100%":"auto",c=I.extend({allow_single_deselect:!0,disable_search_threshold:10,width:s,no_results_text:_.csf_vars.i18n.no_results_text},a.data("chosen-settings"));if(e.length&&e.remove(),n){var r=I.extend({data:{type:"post",nonce:""},allow_single_deselect:!0,disable_search_threshold:-1,width:"100%",min_length:3,type_delay:500,typing_text:_.csf_vars.i18n.typing_text,searching_text:_.csf_vars.i18n.searching_text,no_results_text:_.csf_vars.i18n.no_results_text},a.data("chosen-settings"));a.CSFAjaxChosen(r)}else a.chosen(c);if(i){var o=a.parent().find(".csf-hide-select"),f=o.val()||[];a.on("change",function(e,t){t&&t.selected?o.append('<option value="'+t.selected+'" selected="selected">'+t.selected+"</option>"):t&&t.deselected&&o.find('option[value="'+t.deselected+'"]').remove(),_.wp.customize!==y&&0===o.children().length&&o.data("customize-setting-link")&&_.wp.customize.control(o.data("customize-setting-link")).setting.set(""),o.trigger("change")}),a.CSFChosenOrder(f,!0)}if(t){var l=a.parent().find(".chosen-container").find(".chosen-choices");l.bind("mousedown",function(e){I(e.target).is("span")&&e.stopPropagation()}),l.sortable({items:"li:not(.search-field)",helper:"orginal",cursor:"move",placeholder:"search-choice-placeholder",start:function(e,t){t.placeholder.width(t.item.innerWidth()),t.placeholder.height(t.item.innerHeight())},update:function(e,t){var i="",s=a.data("chosen"),n=a.parent().find(".csf-hide-select");l.find(".search-choice-close").each(function(){var n=I(this).data("option-array-index");I.each(s.results_data,function(e,t){t.array_index===n&&(i+='<option value="'+t.value+'" selected>'+t.value+"</option>")})}),n.children().remove(),n.append(i),n.trigger("change")}})}})},I.fn.csf_checkbox=function(){return this.each(function(){var e=I(this),t=e.find(".csf--input"),n=e.find(".csf--checkbox");n.on("click",function(){t.val(Number(n.prop("checked"))).trigger("change")})})},I.fn.csf_siblings=function(){return this.each(function(){var t=I(this),e=t.find(".csf--sibling"),n=t.data("multiple")||!1;e.on("click",function(){var e=I(this);n?e.hasClass("csf--active")?(e.removeClass("csf--active"),e.find("input").prop("checked",!1).trigger("change")):(e.addClass("csf--active"),e.find("input").prop("checked",!0).trigger("change")):(t.find("input").prop("checked",!1),e.find("input").prop("checked",!0).trigger("change"),e.addClass("csf--active").siblings().removeClass("csf--active"))})})},I.fn.csf_help=function(){return this.each(function(){var e,t,n=I(this);n.on({mouseenter:function(){e=I('<div class="csf-tooltip"></div>').html(n.find(".csf-help-text").html()).appendTo("body"),t=T.vars.is_rtl?n.offset().left+24:n.offset().left-e.outerWidth(),e.css({top:n.offset().top-(e.outerHeight()/2-14),left:t})},mouseleave:function(){e!==y&&e.remove()}})})},I.fn.csf_customizer_refresh=function(){return this.each(function(){var e=I(this),t=e.closest(".csf-customize-complex");if(t.length){var n=t.data("unique-id");if(n===y)return;var i=t.find(":input"),s=t.data("option-id"),a=i.serializeObjectCSF(),c=!I.isEmptyObject(a)&&a[n]&&a[n][s]?a[n][s]:"",r=_.wp.customize.control(n+"["+s+"]");r.setting._value=null,r.setting.set(c)}else e.find(":input").first().trigger("change");I(b).trigger("csf-customizer-refresh",e)})},I.fn.csf_customizer_listen=function(e){var t=I.extend({closest:!1},e);return this.each(function(){if(_.wp.customize!==y){var n=t.closest?I(this).closest(".csf-customize-complex"):I(this),e=n.find(":input"),i=n.data("unique-id"),s=n.data("option-id");i!==y&&e.on("change keyup",function(){var e=n.find(":input").serializeObjectCSF(),t=!I.isEmptyObject(e)&&e[i]&&e[i][s]?e[i][s]:"";_.wp.customize.control(i+"["+s+"]").setting.set(t)})}})},I(b).on("expanded",".control-section",function(){var e=I(this);if(e.hasClass("open")&&!e.data("inited")){var t=e.find(".csf-customize-field"),n=e.find(".csf-customize-complex");t.length&&(e.csf_dependency(),t.csf_reload_script({dependency:!1}),n.csf_customizer_listen()),e.data("inited",!0)}}),T.vars.$window.on("resize csf.resize",T.helper.debounce(function(e){(-1<navigator.userAgent.indexOf("AppleWebKit/")?T.vars.$window.width():_.innerWidth)<=782&&!T.vars.onloaded&&(I(".csf-section").csf_reload_script(),T.vars.onloaded=!0)},200)).trigger("csf.resize"),I.fn.csf_widgets=function(){return this.each(function(){I(b).on("widget-added widget-updated",function(e,t){var n=t.find(".csf-fields");n.length&&n.csf_reload_script()}),I(b).on("click",".widget-top",function(e){var t=I(this).parent().find(".csf-fields");t.length&&t.csf_reload_script()}),I(".widgets-sortables, .control-section-sidebar").on("sortstop",function(e,t){t.item.find(".csf-fields").csf_reload_script_retry()})})},I.fn.csf_nav_menu=function(){return this.each(function(){var e=I(this);e.on("click","a.item-edit",function(){I(this).closest("li.menu-item").find(".csf-fields").csf_reload_script()}),e.on("sortstop",function(e,t){t.item.find(".csf-fields").csf_reload_script_retry()})})},I.fn.csf_reload_script_retry=function(){return this.each(function(){var e=I(this);e.data("inited")&&e.children(".csf-field-wp_editor").csf_field_wp_editor()})},I.fn.csf_reload_script=function(e){var t=I.extend({dependency:!0},e);return this.each(function(){var e=I(this);e.data("inited")||(e.children(".csf-field-accordion").csf_field_accordion(),e.children(".csf-field-backup").csf_field_backup(),e.children(".csf-field-background").csf_field_background(),e.children(".csf-field-code_editor").csf_field_code_editor(),e.children(".csf-field-date").csf_field_date(),e.children(".csf-field-datetime").csf_field_datetime(),e.children(".csf-field-fieldset").csf_field_fieldset(),e.children(".csf-field-gallery").csf_field_gallery(),e.children(".csf-field-group").csf_field_group(),e.children(".csf-field-icon").csf_field_icon(),e.children(".csf-field-link").csf_field_link(),e.children(".csf-field-media").csf_field_media(),e.children(".csf-field-map").csf_field_map(),e.children(".csf-field-repeater").csf_field_repeater(),e.children(".csf-field-slider").csf_field_slider(),e.children(".csf-field-sortable").csf_field_sortable(),e.children(".csf-field-sorter").csf_field_sorter(),e.children(".csf-field-spinner").csf_field_spinner(),e.children(".csf-field-switcher").csf_field_switcher(),e.children(".csf-field-tabbed").csf_field_tabbed(),e.children(".csf-field-typography").csf_field_typography(),e.children(".csf-field-upload").csf_field_upload(),e.children(".csf-field-wp_editor").csf_field_wp_editor(),e.children(".csf-field-border").find(".csf-color").csf_color(),e.children(".csf-field-background").find(".csf-color").csf_color(),e.children(".csf-field-color").find(".csf-color").csf_color(),e.children(".csf-field-color_group").find(".csf-color").csf_color(),e.children(".csf-field-link_color").find(".csf-color").csf_color(),e.children(".csf-field-typography").find(".csf-color").csf_color(),e.children(".csf-field-select").find(".csf-chosen").csf_chosen(),e.children(".csf-field-checkbox").find(".csf-checkbox").csf_checkbox(),e.children(".csf-field-button_set").find(".csf-siblings").csf_siblings(),e.children(".csf-field-image_select").find(".csf-siblings").csf_siblings(),e.children(".csf-field-palette").find(".csf-siblings").csf_siblings(),e.children(".csf-field").find(".csf-help").csf_help(),t.dependency&&e.csf_dependency(),e.data("inited",!0),I(b).trigger("csf-reload-script",e))})},I(b).ready(function(){I(".csf-save").csf_save(),I(".csf-options").csf_options(),I(".csf-sticky-header").csf_sticky(),I(".csf-nav-options").csf_nav_options(),I(".csf-nav-metabox").csf_nav_metabox(),I(".csf-taxonomy").csf_taxonomy(),I(".csf-page-templates").csf_page_templates(),I(".csf-post-formats").csf_post_formats(),I(".csf-shortcode").csf_shortcode(),I(".csf-search").csf_search(),I(".csf-confirm").csf_confirm(),I(".csf-expand-all").csf_expand_all(),I(".csf-onload").csf_reload_script(),I("#widgets-editor").csf_widgets(),I("#widgets-right").csf_widgets(),I("#menu-to-edit").csf_nav_menu()})}(jQuery,window,document);
vendor/codestar-framework/assets/js/plugins.js CHANGED
@@ -1,4 +1,2677 @@
1
- /**
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  *
3
  * jQuery Chosen AJAX Autocomplete Library
4
  *
1
+ /* flatpickr v4.6.9, @license MIT */
2
+ (function (global, factory) {
3
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
4
+ typeof define === 'function' && define.amd ? define(factory) :
5
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.flatpickr = factory());
6
+ }(this, (function () { 'use strict';
7
+
8
+ /*! *****************************************************************************
9
+ Copyright (c) Microsoft Corporation.
10
+
11
+ Permission to use, copy, modify, and/or distribute this software for any
12
+ purpose with or without fee is hereby granted.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
15
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
16
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
17
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
18
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
19
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
20
+ PERFORMANCE OF THIS SOFTWARE.
21
+ ***************************************************************************** */
22
+
23
+ var __assign = function() {
24
+ __assign = Object.assign || function __assign(t) {
25
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
26
+ s = arguments[i];
27
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
28
+ }
29
+ return t;
30
+ };
31
+ return __assign.apply(this, arguments);
32
+ };
33
+
34
+ function __spreadArrays() {
35
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
36
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
37
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
38
+ r[k] = a[j];
39
+ return r;
40
+ }
41
+
42
+ var HOOKS = [
43
+ "onChange",
44
+ "onClose",
45
+ "onDayCreate",
46
+ "onDestroy",
47
+ "onKeyDown",
48
+ "onMonthChange",
49
+ "onOpen",
50
+ "onParseConfig",
51
+ "onReady",
52
+ "onValueUpdate",
53
+ "onYearChange",
54
+ "onPreCalendarPosition",
55
+ ];
56
+ var defaults = {
57
+ _disable: [],
58
+ allowInput: false,
59
+ allowInvalidPreload: false,
60
+ altFormat: "F j, Y",
61
+ altInput: false,
62
+ altInputClass: "form-control input",
63
+ animate: typeof window === "object" &&
64
+ window.navigator.userAgent.indexOf("MSIE") === -1,
65
+ ariaDateFormat: "F j, Y",
66
+ autoFillDefaultTime: true,
67
+ clickOpens: true,
68
+ closeOnSelect: true,
69
+ conjunction: ", ",
70
+ dateFormat: "Y-m-d",
71
+ defaultHour: 12,
72
+ defaultMinute: 0,
73
+ defaultSeconds: 0,
74
+ disable: [],
75
+ disableMobile: false,
76
+ enableSeconds: false,
77
+ enableTime: false,
78
+ errorHandler: function (err) {
79
+ return typeof console !== "undefined" && console.warn(err);
80
+ },
81
+ getWeek: function (givenDate) {
82
+ var date = new Date(givenDate.getTime());
83
+ date.setHours(0, 0, 0, 0);
84
+ // Thursday in current week decides the year.
85
+ date.setDate(date.getDate() + 3 - ((date.getDay() + 6) % 7));
86
+ // January 4 is always in week 1.
87
+ var week1 = new Date(date.getFullYear(), 0, 4);
88
+ // Adjust to Thursday in week 1 and count number of weeks from date to week1.
89
+ return (1 +
90
+ Math.round(((date.getTime() - week1.getTime()) / 86400000 -
91
+ 3 +
92
+ ((week1.getDay() + 6) % 7)) /
93
+ 7));
94
+ },
95
+ hourIncrement: 1,
96
+ ignoredFocusElements: [],
97
+ inline: false,
98
+ locale: "default",
99
+ minuteIncrement: 5,
100
+ mode: "single",
101
+ monthSelectorType: "dropdown",
102
+ nextArrow: "<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M13.207 8.472l-7.854 7.854-0.707-0.707 7.146-7.146-7.146-7.148 0.707-0.707 7.854 7.854z' /></svg>",
103
+ noCalendar: false,
104
+ now: new Date(),
105
+ onChange: [],
106
+ onClose: [],
107
+ onDayCreate: [],
108
+ onDestroy: [],
109
+ onKeyDown: [],
110
+ onMonthChange: [],
111
+ onOpen: [],
112
+ onParseConfig: [],
113
+ onReady: [],
114
+ onValueUpdate: [],
115
+ onYearChange: [],
116
+ onPreCalendarPosition: [],
117
+ plugins: [],
118
+ position: "auto",
119
+ positionElement: undefined,
120
+ prevArrow: "<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M5.207 8.471l7.146 7.147-0.707 0.707-7.853-7.854 7.854-7.853 0.707 0.707-7.147 7.146z' /></svg>",
121
+ shorthandCurrentMonth: false,
122
+ showMonths: 1,
123
+ static: false,
124
+ time_24hr: false,
125
+ weekNumbers: false,
126
+ wrap: false,
127
+ };
128
+
129
+ var english = {
130
+ weekdays: {
131
+ shorthand: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
132
+ longhand: [
133
+ "Sunday",
134
+ "Monday",
135
+ "Tuesday",
136
+ "Wednesday",
137
+ "Thursday",
138
+ "Friday",
139
+ "Saturday",
140
+ ],
141
+ },
142
+ months: {
143
+ shorthand: [
144
+ "Jan",
145
+ "Feb",
146
+ "Mar",
147
+ "Apr",
148
+ "May",
149
+ "Jun",
150
+ "Jul",
151
+ "Aug",
152
+ "Sep",
153
+ "Oct",
154
+ "Nov",
155
+ "Dec",
156
+ ],
157
+ longhand: [
158
+ "January",
159
+ "February",
160
+ "March",
161
+ "April",
162
+ "May",
163
+ "June",
164
+ "July",
165
+ "August",
166
+ "September",
167
+ "October",
168
+ "November",
169
+ "December",
170
+ ],
171
+ },
172
+ daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
173
+ firstDayOfWeek: 0,
174
+ ordinal: function (nth) {
175
+ var s = nth % 100;
176
+ if (s > 3 && s < 21)
177
+ return "th";
178
+ switch (s % 10) {
179
+ case 1:
180
+ return "st";
181
+ case 2:
182
+ return "nd";
183
+ case 3:
184
+ return "rd";
185
+ default:
186
+ return "th";
187
+ }
188
+ },
189
+ rangeSeparator: " to ",
190
+ weekAbbreviation: "Wk",
191
+ scrollTitle: "Scroll to increment",
192
+ toggleTitle: "Click to toggle",
193
+ amPM: ["AM", "PM"],
194
+ yearAriaLabel: "Year",
195
+ monthAriaLabel: "Month",
196
+ hourAriaLabel: "Hour",
197
+ minuteAriaLabel: "Minute",
198
+ time_24hr: false,
199
+ };
200
+
201
+ var pad = function (number, length) {
202
+ if (length === void 0) { length = 2; }
203
+ return ("000" + number).slice(length * -1);
204
+ };
205
+ var int = function (bool) { return (bool === true ? 1 : 0); };
206
+ /* istanbul ignore next */
207
+ function debounce(fn, wait) {
208
+ var t;
209
+ return function () {
210
+ var _this = this;
211
+ clearTimeout(t);
212
+ t = setTimeout(function () { return fn.apply(_this, arguments); }, wait);
213
+ };
214
+ }
215
+ var arrayify = function (obj) {
216
+ return obj instanceof Array ? obj : [obj];
217
+ };
218
+
219
+ function toggleClass(elem, className, bool) {
220
+ if (bool === true)
221
+ return elem.classList.add(className);
222
+ elem.classList.remove(className);
223
+ }
224
+ function createElement(tag, className, content) {
225
+ var e = window.document.createElement(tag);
226
+ className = className || "";
227
+ content = content || "";
228
+ e.className = className;
229
+ if (content !== undefined)
230
+ e.textContent = content;
231
+ return e;
232
+ }
233
+ function clearNode(node) {
234
+ while (node.firstChild)
235
+ node.removeChild(node.firstChild);
236
+ }
237
+ function findParent(node, condition) {
238
+ if (condition(node))
239
+ return node;
240
+ else if (node.parentNode)
241
+ return findParent(node.parentNode, condition);
242
+ return undefined; // nothing found
243
+ }
244
+ function createNumberInput(inputClassName, opts) {
245
+ var wrapper = createElement("div", "numInputWrapper"), numInput = createElement("input", "numInput " + inputClassName), arrowUp = createElement("span", "arrowUp"), arrowDown = createElement("span", "arrowDown");
246
+ if (navigator.userAgent.indexOf("MSIE 9.0") === -1) {
247
+ numInput.type = "number";
248
+ }
249
+ else {
250
+ numInput.type = "text";
251
+ numInput.pattern = "\\d*";
252
+ }
253
+ if (opts !== undefined)
254
+ for (var key in opts)
255
+ numInput.setAttribute(key, opts[key]);
256
+ wrapper.appendChild(numInput);
257
+ wrapper.appendChild(arrowUp);
258
+ wrapper.appendChild(arrowDown);
259
+ return wrapper;
260
+ }
261
+ function getEventTarget(event) {
262
+ try {
263
+ if (typeof event.composedPath === "function") {
264
+ var path = event.composedPath();
265
+ return path[0];
266
+ }
267
+ return event.target;
268
+ }
269
+ catch (error) {
270
+ return event.target;
271
+ }
272
+ }
273
+
274
+ var doNothing = function () { return undefined; };
275
+ var monthToStr = function (monthNumber, shorthand, locale) { return locale.months[shorthand ? "shorthand" : "longhand"][monthNumber]; };
276
+ var revFormat = {
277
+ D: doNothing,
278
+ F: function (dateObj, monthName, locale) {
279
+ dateObj.setMonth(locale.months.longhand.indexOf(monthName));
280
+ },
281
+ G: function (dateObj, hour) {
282
+ dateObj.setHours(parseFloat(hour));
283
+ },
284
+ H: function (dateObj, hour) {
285
+ dateObj.setHours(parseFloat(hour));
286
+ },
287
+ J: function (dateObj, day) {
288
+ dateObj.setDate(parseFloat(day));
289
+ },
290
+ K: function (dateObj, amPM, locale) {
291
+ dateObj.setHours((dateObj.getHours() % 12) +
292
+ 12 * int(new RegExp(locale.amPM[1], "i").test(amPM)));
293
+ },
294
+ M: function (dateObj, shortMonth, locale) {
295
+ dateObj.setMonth(locale.months.shorthand.indexOf(shortMonth));
296
+ },
297
+ S: function (dateObj, seconds) {
298
+ dateObj.setSeconds(parseFloat(seconds));
299
+ },
300
+ U: function (_, unixSeconds) { return new Date(parseFloat(unixSeconds) * 1000); },
301
+ W: function (dateObj, weekNum, locale) {
302
+ var weekNumber = parseInt(weekNum);
303
+ var date = new Date(dateObj.getFullYear(), 0, 2 + (weekNumber - 1) * 7, 0, 0, 0, 0);
304
+ date.setDate(date.getDate() - date.getDay() + locale.firstDayOfWeek);
305
+ return date;
306
+ },
307
+ Y: function (dateObj, year) {
308
+ dateObj.setFullYear(parseFloat(year));
309
+ },
310
+ Z: function (_, ISODate) { return new Date(ISODate); },
311
+ d: function (dateObj, day) {
312
+ dateObj.setDate(parseFloat(day));
313
+ },
314
+ h: function (dateObj, hour) {
315
+ dateObj.setHours(parseFloat(hour));
316
+ },
317
+ i: function (dateObj, minutes) {
318
+ dateObj.setMinutes(parseFloat(minutes));
319
+ },
320
+ j: function (dateObj, day) {
321
+ dateObj.setDate(parseFloat(day));
322
+ },
323
+ l: doNothing,
324
+ m: function (dateObj, month) {
325
+ dateObj.setMonth(parseFloat(month) - 1);
326
+ },
327
+ n: function (dateObj, month) {
328
+ dateObj.setMonth(parseFloat(month) - 1);
329
+ },
330
+ s: function (dateObj, seconds) {
331
+ dateObj.setSeconds(parseFloat(seconds));
332
+ },
333
+ u: function (_, unixMillSeconds) {
334
+ return new Date(parseFloat(unixMillSeconds));
335
+ },
336
+ w: doNothing,
337
+ y: function (dateObj, year) {
338
+ dateObj.setFullYear(2000 + parseFloat(year));
339
+ },
340
+ };
341
+ var tokenRegex = {
342
+ D: "(\\w+)",
343
+ F: "(\\w+)",
344
+ G: "(\\d\\d|\\d)",
345
+ H: "(\\d\\d|\\d)",
346
+ J: "(\\d\\d|\\d)\\w+",
347
+ K: "",
348
+ M: "(\\w+)",
349
+ S: "(\\d\\d|\\d)",
350
+ U: "(.+)",
351
+ W: "(\\d\\d|\\d)",
352
+ Y: "(\\d{4})",
353
+ Z: "(.+)",
354
+ d: "(\\d\\d|\\d)",
355
+ h: "(\\d\\d|\\d)",
356
+ i: "(\\d\\d|\\d)",
357
+ j: "(\\d\\d|\\d)",
358
+ l: "(\\w+)",
359
+ m: "(\\d\\d|\\d)",
360
+ n: "(\\d\\d|\\d)",
361
+ s: "(\\d\\d|\\d)",
362
+ u: "(.+)",
363
+ w: "(\\d\\d|\\d)",
364
+ y: "(\\d{2})",
365
+ };
366
+ var formats = {
367
+ // get the date in UTC
368
+ Z: function (date) { return date.toISOString(); },
369
+ // weekday name, short, e.g. Thu
370
+ D: function (date, locale, options) {
371
+ return locale.weekdays.shorthand[formats.w(date, locale, options)];
372
+ },
373
+ // full month name e.g. January
374
+ F: function (date, locale, options) {
375
+ return monthToStr(formats.n(date, locale, options) - 1, false, locale);
376
+ },
377
+ // padded hour 1-12
378
+ G: function (date, locale, options) {
379
+ return pad(formats.h(date, locale, options));
380
+ },
381
+ // hours with leading zero e.g. 03
382
+ H: function (date) { return pad(date.getHours()); },
383
+ // day (1-30) with ordinal suffix e.g. 1st, 2nd
384
+ J: function (date, locale) {
385
+ return locale.ordinal !== undefined
386
+ ? date.getDate() + locale.ordinal(date.getDate())
387
+ : date.getDate();
388
+ },
389
+ // AM/PM
390
+ K: function (date, locale) { return locale.amPM[int(date.getHours() > 11)]; },
391
+ // shorthand month e.g. Jan, Sep, Oct, etc
392
+ M: function (date, locale) {
393
+ return monthToStr(date.getMonth(), true, locale);
394
+ },
395
+ // seconds 00-59
396
+ S: function (date) { return pad(date.getSeconds()); },
397
+ // unix timestamp
398
+ U: function (date) { return date.getTime() / 1000; },
399
+ W: function (date, _, options) {
400
+ return options.getWeek(date);
401
+ },
402
+ // full year e.g. 2016, padded (0001-9999)
403
+ Y: function (date) { return pad(date.getFullYear(), 4); },
404
+ // day in month, padded (01-30)
405
+ d: function (date) { return pad(date.getDate()); },
406
+ // hour from 1-12 (am/pm)
407
+ h: function (date) { return (date.getHours() % 12 ? date.getHours() % 12 : 12); },
408
+ // minutes, padded with leading zero e.g. 09
409
+ i: function (date) { return pad(date.getMinutes()); },
410
+ // day in month (1-30)
411
+ j: function (date) { return date.getDate(); },
412
+ // weekday name, full, e.g. Thursday
413
+ l: function (date, locale) {
414
+ return locale.weekdays.longhand[date.getDay()];
415
+ },
416
+ // padded month number (01-12)
417
+ m: function (date) { return pad(date.getMonth() + 1); },
418
+ // the month number (1-12)
419
+ n: function (date) { return date.getMonth() + 1; },
420
+ // seconds 0-59
421
+ s: function (date) { return date.getSeconds(); },
422
+ // Unix Milliseconds
423
+ u: function (date) { return date.getTime(); },
424
+ // number of the day of the week
425
+ w: function (date) { return date.getDay(); },
426
+ // last two digits of year e.g. 16 for 2016
427
+ y: function (date) { return String(date.getFullYear()).substring(2); },
428
+ };
429
+
430
+ var createDateFormatter = function (_a) {
431
+ var _b = _a.config, config = _b === void 0 ? defaults : _b, _c = _a.l10n, l10n = _c === void 0 ? english : _c, _d = _a.isMobile, isMobile = _d === void 0 ? false : _d;
432
+ return function (dateObj, frmt, overrideLocale) {
433
+ var locale = overrideLocale || l10n;
434
+ if (config.formatDate !== undefined && !isMobile) {
435
+ return config.formatDate(dateObj, frmt, locale);
436
+ }
437
+ return frmt
438
+ .split("")
439
+ .map(function (c, i, arr) {
440
+ return formats[c] && arr[i - 1] !== "\\"
441
+ ? formats[c](dateObj, locale, config)
442
+ : c !== "\\"
443
+ ? c
444
+ : "";
445
+ })
446
+ .join("");
447
+ };
448
+ };
449
+ var createDateParser = function (_a) {
450
+ var _b = _a.config, config = _b === void 0 ? defaults : _b, _c = _a.l10n, l10n = _c === void 0 ? english : _c;
451
+ return function (date, givenFormat, timeless, customLocale) {
452
+ if (date !== 0 && !date)
453
+ return undefined;
454
+ var locale = customLocale || l10n;
455
+ var parsedDate;
456
+ var dateOrig = date;
457
+ if (date instanceof Date)
458
+ parsedDate = new Date(date.getTime());
459
+ else if (typeof date !== "string" &&
460
+ date.toFixed !== undefined // timestamp
461
+ )
462
+ // create a copy
463
+ parsedDate = new Date(date);
464
+ else if (typeof date === "string") {
465
+ // date string
466
+ var format = givenFormat || (config || defaults).dateFormat;
467
+ var datestr = String(date).trim();
468
+ if (datestr === "today") {
469
+ parsedDate = new Date();
470
+ timeless = true;
471
+ }
472
+ else if (/Z$/.test(datestr) ||
473
+ /GMT$/.test(datestr) // datestrings w/ timezone
474
+ )
475
+ parsedDate = new Date(date);
476
+ else if (config && config.parseDate)
477
+ parsedDate = config.parseDate(date, format);
478
+ else {
479
+ parsedDate =
480
+ !config || !config.noCalendar
481
+ ? new Date(new Date().getFullYear(), 0, 1, 0, 0, 0, 0)
482
+ : new Date(new Date().setHours(0, 0, 0, 0));
483
+ var matched = void 0, ops = [];
484
+ for (var i = 0, matchIndex = 0, regexStr = ""; i < format.length; i++) {
485
+ var token_1 = format[i];
486
+ var isBackSlash = token_1 === "\\";
487
+ var escaped = format[i - 1] === "\\" || isBackSlash;
488
+ if (tokenRegex[token_1] && !escaped) {
489
+ regexStr += tokenRegex[token_1];
490
+ var match = new RegExp(regexStr).exec(date);
491
+ if (match && (matched = true)) {
492
+ ops[token_1 !== "Y" ? "push" : "unshift"]({
493
+ fn: revFormat[token_1],
494
+ val: match[++matchIndex],
495
+ });
496
+ }
497
+ }
498
+ else if (!isBackSlash)
499
+ regexStr += "."; // don't really care
500
+ ops.forEach(function (_a) {
501
+ var fn = _a.fn, val = _a.val;
502
+ return (parsedDate = fn(parsedDate, val, locale) || parsedDate);
503
+ });
504
+ }
505
+ parsedDate = matched ? parsedDate : undefined;
506
+ }
507
+ }
508
+ /* istanbul ignore next */
509
+ if (!(parsedDate instanceof Date && !isNaN(parsedDate.getTime()))) {
510
+ config.errorHandler(new Error("Invalid date provided: " + dateOrig));
511
+ return undefined;
512
+ }
513
+ if (timeless === true)
514
+ parsedDate.setHours(0, 0, 0, 0);
515
+ return parsedDate;
516
+ };
517
+ };
518
+ /**
519
+ * Compute the difference in dates, measured in ms
520
+ */
521
+ function compareDates(date1, date2, timeless) {
522
+ if (timeless === void 0) { timeless = true; }
523
+ if (timeless !== false) {
524
+ return (new Date(date1.getTime()).setHours(0, 0, 0, 0) -
525
+ new Date(date2.getTime()).setHours(0, 0, 0, 0));
526
+ }
527
+ return date1.getTime() - date2.getTime();
528
+ }
529
+ var isBetween = function (ts, ts1, ts2) {
530
+ return ts > Math.min(ts1, ts2) && ts < Math.max(ts1, ts2);
531
+ };
532
+ var duration = {
533
+ DAY: 86400000,
534
+ };
535
+ function getDefaultHours(config) {
536
+ var hours = config.defaultHour;
537
+ var minutes = config.defaultMinute;
538
+ var seconds = config.defaultSeconds;
539
+ if (config.minDate !== undefined) {
540
+ var minHour = config.minDate.getHours();
541
+ var minMinutes = config.minDate.getMinutes();
542
+ var minSeconds = config.minDate.getSeconds();
543
+ if (hours < minHour) {
544
+ hours = minHour;
545
+ }
546
+ if (hours === minHour && minutes < minMinutes) {
547
+ minutes = minMinutes;
548
+ }
549
+ if (hours === minHour && minutes === minMinutes && seconds < minSeconds)
550
+ seconds = config.minDate.getSeconds();
551
+ }
552
+ if (config.maxDate !== undefined) {
553
+ var maxHr = config.maxDate.getHours();
554
+ var maxMinutes = config.maxDate.getMinutes();
555
+ hours = Math.min(hours, maxHr);
556
+ if (hours === maxHr)
557
+ minutes = Math.min(maxMinutes, minutes);
558
+ if (hours === maxHr && minutes === maxMinutes)
559
+ seconds = config.maxDate.getSeconds();
560
+ }
561
+ return { hours: hours, minutes: minutes, seconds: seconds };
562
+ }
563
+
564
+ if (typeof Object.assign !== "function") {
565
+ Object.assign = function (target) {
566
+ var args = [];
567
+ for (var _i = 1; _i < arguments.length; _i++) {
568
+ args[_i - 1] = arguments[_i];
569
+ }
570
+ if (!target) {
571
+ throw TypeError("Cannot convert undefined or null to object");
572
+ }
573
+ var _loop_1 = function (source) {
574
+ if (source) {
575
+ Object.keys(source).forEach(function (key) { return (target[key] = source[key]); });
576
+ }
577
+ };
578
+ for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {
579
+ var source = args_1[_a];
580
+ _loop_1(source);
581
+ }
582
+ return target;
583
+ };
584
+ }
585
+
586
+ var DEBOUNCED_CHANGE_MS = 300;
587
+ function FlatpickrInstance(element, instanceConfig) {
588
+ var self = {
589
+ config: __assign(__assign({}, defaults), flatpickr.defaultConfig),
590
+ l10n: english,
591
+ };
592
+ self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });
593
+ self._handlers = [];
594
+ self.pluginElements = [];
595
+ self.loadedPlugins = [];
596
+ self._bind = bind;
597
+ self._setHoursFromDate = setHoursFromDate;
598
+ self._positionCalendar = positionCalendar;
599
+ self.changeMonth = changeMonth;
600
+ self.changeYear = changeYear;
601
+ self.clear = clear;
602
+ self.close = close;
603
+ self._createElement = createElement;
604
+ self.destroy = destroy;
605
+ self.isEnabled = isEnabled;
606
+ self.jumpToDate = jumpToDate;
607
+ self.open = open;
608
+ self.redraw = redraw;
609
+ self.set = set;
610
+ self.setDate = setDate;
611
+ self.toggle = toggle;
612
+ function setupHelperFunctions() {
613
+ self.utils = {
614
+ getDaysInMonth: function (month, yr) {
615
+ if (month === void 0) { month = self.currentMonth; }
616
+ if (yr === void 0) { yr = self.currentYear; }
617
+ if (month === 1 && ((yr % 4 === 0 && yr % 100 !== 0) || yr % 400 === 0))
618
+ return 29;
619
+ return self.l10n.daysInMonth[month];
620
+ },
621
+ };
622
+ }
623
+ function init() {
624
+ self.element = self.input = element;
625
+ self.isOpen = false;
626
+ parseConfig();
627
+ setupLocale();
628
+ setupInputs();
629
+ setupDates();
630
+ setupHelperFunctions();
631
+ if (!self.isMobile)
632
+ build();
633
+ bindEvents();
634
+ if (self.selectedDates.length || self.config.noCalendar) {
635
+ if (self.config.enableTime) {
636
+ setHoursFromDate(self.config.noCalendar ? self.latestSelectedDateObj : undefined);
637
+ }
638
+ updateValue(false);
639
+ }
640
+ setCalendarWidth();
641
+ var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
642
+ /* TODO: investigate this further
643
+
644
+ Currently, there is weird positioning behavior in safari causing pages
645
+ to scroll up. https://github.com/chmln/flatpickr/issues/563
646
+
647
+ However, most browsers are not Safari and positioning is expensive when used
648
+ in scale. https://github.com/chmln/flatpickr/issues/1096
649
+ */
650
+ if (!self.isMobile && isSafari) {
651
+ positionCalendar();
652
+ }
653
+ triggerEvent("onReady");
654
+ }
655
+ function bindToInstance(fn) {
656
+ return fn.bind(self);
657
+ }
658
+ function setCalendarWidth() {
659
+ var config = self.config;
660
+ if (config.weekNumbers === false && config.showMonths === 1) {
661
+ return;
662
+ }
663
+ else if (config.noCalendar !== true) {
664
+ window.requestAnimationFrame(function () {
665
+ if (self.calendarContainer !== undefined) {
666
+ self.calendarContainer.style.visibility = "hidden";
667
+ self.calendarContainer.style.display = "block";
668
+ }
669
+ if (self.daysContainer !== undefined) {
670
+ var daysWidth = (self.days.offsetWidth + 1) * config.showMonths;
671
+ self.daysContainer.style.width = daysWidth + "px";
672
+ self.calendarContainer.style.width =
673
+ daysWidth +
674
+ (self.weekWrapper !== undefined
675
+ ? self.weekWrapper.offsetWidth
676
+ : 0) +
677
+ "px";
678
+ self.calendarContainer.style.removeProperty("visibility");
679
+ self.calendarContainer.style.removeProperty("display");
680
+ }
681
+ });
682
+ }
683
+ }
684
+ /**
685
+ * The handler for all events targeting the time inputs
686
+ */
687
+ function updateTime(e) {
688
+ if (self.selectedDates.length === 0) {
689
+ var defaultDate = self.config.minDate === undefined ||
690
+ compareDates(new Date(), self.config.minDate) >= 0
691
+ ? new Date()
692
+ : new Date(self.config.minDate.getTime());
693
+ var defaults = getDefaultHours(self.config);
694
+ defaultDate.setHours(defaults.hours, defaults.minutes, defaults.seconds, defaultDate.getMilliseconds());
695
+ self.selectedDates = [defaultDate];
696
+ self.latestSelectedDateObj = defaultDate;
697
+ }
698
+ if (e !== undefined && e.type !== "blur") {
699
+ timeWrapper(e);
700
+ }
701
+ var prevValue = self._input.value;
702
+ setHoursFromInputs();
703
+ updateValue();
704
+ if (self._input.value !== prevValue) {
705
+ self._debouncedChange();
706
+ }
707
+ }
708
+ function ampm2military(hour, amPM) {
709
+ return (hour % 12) + 12 * int(amPM === self.l10n.amPM[1]);
710
+ }
711
+ function military2ampm(hour) {
712
+ switch (hour % 24) {
713
+ case 0:
714
+ case 12:
715
+ return 12;
716
+ default:
717
+ return hour % 12;
718
+ }
719
+ }
720
+ /**
721
+ * Syncs the selected date object time with user's time input
722
+ */
723
+ function setHoursFromInputs() {
724
+ if (self.hourElement === undefined || self.minuteElement === undefined)
725
+ return;
726
+ var hours = (parseInt(self.hourElement.value.slice(-2), 10) || 0) % 24, minutes = (parseInt(self.minuteElement.value, 10) || 0) % 60, seconds = self.secondElement !== undefined
727
+ ? (parseInt(self.secondElement.value, 10) || 0) % 60
728
+ : 0;
729
+ if (self.amPM !== undefined) {
730
+ hours = ampm2military(hours, self.amPM.textContent);
731
+ }
732
+ var limitMinHours = self.config.minTime !== undefined ||
733
+ (self.config.minDate &&
734
+ self.minDateHasTime &&
735
+ self.latestSelectedDateObj &&
736
+ compareDates(self.latestSelectedDateObj, self.config.minDate, true) ===
737
+ 0);
738
+ var limitMaxHours = self.config.maxTime !== undefined ||
739
+ (self.config.maxDate &&
740
+ self.maxDateHasTime &&
741
+ self.latestSelectedDateObj &&
742
+ compareDates(self.latestSelectedDateObj, self.config.maxDate, true) ===
743
+ 0);
744
+ if (limitMaxHours) {
745
+ var maxTime = self.config.maxTime !== undefined
746
+ ? self.config.maxTime
747
+ : self.config.maxDate;
748
+ hours = Math.min(hours, maxTime.getHours());
749
+ if (hours === maxTime.getHours())
750
+ minutes = Math.min(minutes, maxTime.getMinutes());
751
+ if (minutes === maxTime.getMinutes())
752
+ seconds = Math.min(seconds, maxTime.getSeconds());
753
+ }
754
+ if (limitMinHours) {
755
+ var minTime = self.config.minTime !== undefined
756
+ ? self.config.minTime
757
+ : self.config.minDate;
758
+ hours = Math.max(hours, minTime.getHours());
759
+ if (hours === minTime.getHours() && minutes < minTime.getMinutes())
760
+ minutes = minTime.getMinutes();
761
+ if (minutes === minTime.getMinutes())
762
+ seconds = Math.max(seconds, minTime.getSeconds());
763
+ }
764
+ setHours(hours, minutes, seconds);
765
+ }
766
+ /**
767
+ * Syncs time input values with a date
768
+ */
769
+ function setHoursFromDate(dateObj) {
770
+ var date = dateObj || self.latestSelectedDateObj;
771
+ if (date) {
772
+ setHours(date.getHours(), date.getMinutes(), date.getSeconds());
773
+ }
774
+ }
775
+ /**
776
+ * Sets the hours, minutes, and optionally seconds
777
+ * of the latest selected date object and the
778
+ * corresponding time inputs
779
+ * @param {Number} hours the hour. whether its military
780
+ * or am-pm gets inferred from config
781
+ * @param {Number} minutes the minutes
782
+ * @param {Number} seconds the seconds (optional)
783
+ */
784
+ function setHours(hours, minutes, seconds) {
785
+ if (self.latestSelectedDateObj !== undefined) {
786
+ self.latestSelectedDateObj.setHours(hours % 24, minutes, seconds || 0, 0);
787
+ }
788
+ if (!self.hourElement || !self.minuteElement || self.isMobile)
789
+ return;
790
+ self.hourElement.value = pad(!self.config.time_24hr
791
+ ? ((12 + hours) % 12) + 12 * int(hours % 12 === 0)
792
+ : hours);
793
+ self.minuteElement.value = pad(minutes);
794
+ if (self.amPM !== undefined)
795
+ self.amPM.textContent = self.l10n.amPM[int(hours >= 12)];
796
+ if (self.secondElement !== undefined)
797
+ self.secondElement.value = pad(seconds);
798
+ }
799
+ /**
800
+ * Handles the year input and incrementing events
801
+ * @param {Event} event the keyup or increment event
802
+ */
803
+ function onYearInput(event) {
804
+ var eventTarget = getEventTarget(event);
805
+ var year = parseInt(eventTarget.value) + (event.delta || 0);
806
+ if (year / 1000 > 1 ||
807
+ (event.key === "Enter" && !/[^\d]/.test(year.toString()))) {
808
+ changeYear(year);
809
+ }
810
+ }
811
+ /**
812
+ * Essentially addEventListener + tracking
813
+ * @param {Element} element the element to addEventListener to
814
+ * @param {String} event the event name
815
+ * @param {Function} handler the event handler
816
+ */
817
+ function bind(element, event, handler, options) {
818
+ if (event instanceof Array)
819
+ return event.forEach(function (ev) { return bind(element, ev, handler, options); });
820
+ if (element instanceof Array)
821
+ return element.forEach(function (el) { return bind(el, event, handler, options); });
822
+ element.addEventListener(event, handler, options);
823
+ self._handlers.push({
824
+ remove: function () { return element.removeEventListener(event, handler); },
825
+ });
826
+ }
827
+ function triggerChange() {
828
+ triggerEvent("onChange");
829
+ }
830
+ /**
831
+ * Adds all the necessary event listeners
832
+ */
833
+ function bindEvents() {
834
+ if (self.config.wrap) {
835
+ ["open", "close", "toggle", "clear"].forEach(function (evt) {
836
+ Array.prototype.forEach.call(self.element.querySelectorAll("[data-" + evt + "]"), function (el) {
837
+ return bind(el, "click", self[evt]);
838
+ });
839
+ });
840
+ }
841
+ if (self.isMobile) {
842
+ setupMobile();
843
+ return;
844
+ }
845
+ var debouncedResize = debounce(onResize, 50);
846
+ self._debouncedChange = debounce(triggerChange, DEBOUNCED_CHANGE_MS);
847
+ if (self.daysContainer && !/iPhone|iPad|iPod/i.test(navigator.userAgent))
848
+ bind(self.daysContainer, "mouseover", function (e) {
849
+ if (self.config.mode === "range")
850
+ onMouseOver(getEventTarget(e));
851
+ });
852
+ bind(window.document.body, "keydown", onKeyDown);
853
+ if (!self.config.inline && !self.config.static)
854
+ bind(window, "resize", debouncedResize);
855
+ if (window.ontouchstart !== undefined)
856
+ bind(window.document, "touchstart", documentClick);
857
+ else
858
+ bind(window.document, "mousedown", documentClick);
859
+ bind(window.document, "focus", documentClick, { capture: true });
860
+ if (self.config.clickOpens === true) {
861
+ bind(self._input, "focus", self.open);
862
+ bind(self._input, "click", self.open);
863
+ }
864
+ if (self.daysContainer !== undefined) {
865
+ bind(self.monthNav, "click", onMonthNavClick);
866
+ bind(self.monthNav, ["keyup", "increment"], onYearInput);
867
+ bind(self.daysContainer, "click", selectDate);
868
+ }
869
+ if (self.timeContainer !== undefined &&
870
+ self.minuteElement !== undefined &&
871
+ self.hourElement !== undefined) {
872
+ var selText = function (e) {
873
+ return getEventTarget(e).select();
874
+ };
875
+ bind(self.timeContainer, ["increment"], updateTime);
876
+ bind(self.timeContainer, "blur", updateTime, { capture: true });
877
+ bind(self.timeContainer, "click", timeIncrement);
878
+ bind([self.hourElement, self.minuteElement], ["focus", "click"], selText);
879
+ if (self.secondElement !== undefined)
880
+ bind(self.secondElement, "focus", function () { return self.secondElement && self.secondElement.select(); });
881
+ if (self.amPM !== undefined) {
882
+ bind(self.amPM, "click", function (e) {
883
+ updateTime(e);
884
+ triggerChange();
885
+ });
886
+ }
887
+ }
888
+ if (self.config.allowInput) {
889
+ bind(self._input, "blur", onBlur);
890
+ }
891
+ }
892
+ /**
893
+ * Set the calendar view to a particular date.
894
+ * @param {Date} jumpDate the date to set the view to
895
+ * @param {boolean} triggerChange if change events should be triggered
896
+ */
897
+ function jumpToDate(jumpDate, triggerChange) {
898
+ var jumpTo = jumpDate !== undefined
899
+ ? self.parseDate(jumpDate)
900
+ : self.latestSelectedDateObj ||
901
+ (self.config.minDate && self.config.minDate > self.now
902
+ ? self.config.minDate
903
+ : self.config.maxDate && self.config.maxDate < self.now
904
+ ? self.config.maxDate
905
+ : self.now);
906
+ var oldYear = self.currentYear;
907
+ var oldMonth = self.currentMonth;
908
+ try {
909
+ if (jumpTo !== undefined) {
910
+ self.currentYear = jumpTo.getFullYear();
911
+ self.currentMonth = jumpTo.getMonth();
912
+ }
913
+ }
914
+ catch (e) {
915
+ /* istanbul ignore next */
916
+ e.message = "Invalid date supplied: " + jumpTo;
917
+ self.config.errorHandler(e);
918
+ }
919
+ if (triggerChange && self.currentYear !== oldYear) {
920
+ triggerEvent("onYearChange");
921
+ buildMonthSwitch();
922
+ }
923
+ if (triggerChange &&
924
+ (self.currentYear !== oldYear || self.currentMonth !== oldMonth)) {
925
+ triggerEvent("onMonthChange");
926
+ }
927
+ self.redraw();
928
+ }
929
+ /**
930
+ * The up/down arrow handler for time inputs
931
+ * @param {Event} e the click event
932
+ */
933
+ function timeIncrement(e) {
934
+ var eventTarget = getEventTarget(e);
935
+ if (~eventTarget.className.indexOf("arrow"))
936
+ incrementNumInput(e, eventTarget.classList.contains("arrowUp") ? 1 : -1);
937
+ }
938
+ /**
939
+ * Increments/decrements the value of input associ-
940
+ * ated with the up/down arrow by dispatching an
941
+ * "increment" event on the input.
942
+ *
943
+ * @param {Event} e the click event
944
+ * @param {Number} delta the diff (usually 1 or -1)
945
+ * @param {Element} inputElem the input element
946
+ */
947
+ function incrementNumInput(e, delta, inputElem) {
948
+ var target = e && getEventTarget(e);
949
+ var input = inputElem ||
950
+ (target && target.parentNode && target.parentNode.firstChild);
951
+ var event = createEvent("increment");
952
+ event.delta = delta;
953
+ input && input.dispatchEvent(event);
954
+ }
955
+ function build() {
956
+ var fragment = window.document.createDocumentFragment();
957
+ self.calendarContainer = createElement("div", "flatpickr-calendar");
958
+ self.calendarContainer.tabIndex = -1;
959
+ if (!self.config.noCalendar) {
960
+ fragment.appendChild(buildMonthNav());
961
+ self.innerContainer = createElement("div", "flatpickr-innerContainer");
962
+ if (self.config.weekNumbers) {
963
+ var _a = buildWeeks(), weekWrapper = _a.weekWrapper, weekNumbers = _a.weekNumbers;
964
+ self.innerContainer.appendChild(weekWrapper);
965
+ self.weekNumbers = weekNumbers;
966
+ self.weekWrapper = weekWrapper;
967
+ }
968
+ self.rContainer = createElement("div", "flatpickr-rContainer");
969
+ self.rContainer.appendChild(buildWeekdays());
970
+ if (!self.daysContainer) {
971
+ self.daysContainer = createElement("div", "flatpickr-days");
972
+ self.daysContainer.tabIndex = -1;
973
+ }
974
+ buildDays();
975
+ self.rContainer.appendChild(self.daysContainer);
976
+ self.innerContainer.appendChild(self.rContainer);
977
+ fragment.appendChild(self.innerContainer);
978
+ }
979
+ if (self.config.enableTime) {
980
+ fragment.appendChild(buildTime());
981
+ }
982
+ toggleClass(self.calendarContainer, "rangeMode", self.config.mode === "range");
983
+ toggleClass(self.calendarContainer, "animate", self.config.animate === true);
984
+ toggleClass(self.calendarContainer, "multiMonth", self.config.showMonths > 1);
985
+ self.calendarContainer.appendChild(fragment);
986
+ var customAppend = self.config.appendTo !== undefined &&
987
+ self.config.appendTo.nodeType !== undefined;
988
+ if (self.config.inline || self.config.static) {
989
+ self.calendarContainer.classList.add(self.config.inline ? "inline" : "static");
990
+ if (self.config.inline) {
991
+ if (!customAppend && self.element.parentNode)
992
+ self.element.parentNode.insertBefore(self.calendarContainer, self._input.nextSibling);
993
+ else if (self.config.appendTo !== undefined)
994
+ self.config.appendTo.appendChild(self.calendarContainer);
995
+ }
996
+ if (self.config.static) {
997
+ var wrapper = createElement("div", "flatpickr-wrapper");
998
+ if (self.element.parentNode)
999
+ self.element.parentNode.insertBefore(wrapper, self.element);
1000
+ wrapper.appendChild(self.element);
1001
+ if (self.altInput)
1002
+ wrapper.appendChild(self.altInput);
1003
+ wrapper.appendChild(self.calendarContainer);
1004
+ }
1005
+ }
1006
+ if (!self.config.static && !self.config.inline)
1007
+ (self.config.appendTo !== undefined
1008
+ ? self.config.appendTo
1009
+ : window.document.body).appendChild(self.calendarContainer);
1010
+ }
1011
+ function createDay(className, date, dayNumber, i) {
1012
+ var dateIsEnabled = isEnabled(date, true), dayElement = createElement("span", "flatpickr-day " + className, date.getDate().toString());
1013
+ dayElement.dateObj = date;
1014
+ dayElement.$i = i;
1015
+ dayElement.setAttribute("aria-label", self.formatDate(date, self.config.ariaDateFormat));
1016
+ if (className.indexOf("hidden") === -1 &&
1017
+ compareDates(date, self.now) === 0) {
1018
+ self.todayDateElem = dayElement;
1019
+ dayElement.classList.add("today");
1020
+ dayElement.setAttribute("aria-current", "date");
1021
+ }
1022
+ if (dateIsEnabled) {
1023
+ dayElement.tabIndex = -1;
1024
+ if (isDateSelected(date)) {
1025
+ dayElement.classList.add("selected");
1026
+ self.selectedDateElem = dayElement;
1027
+ if (self.config.mode === "range") {
1028
+ toggleClass(dayElement, "startRange", self.selectedDates[0] &&
1029
+ compareDates(date, self.selectedDates[0], true) === 0);
1030
+ toggleClass(dayElement, "endRange", self.selectedDates[1] &&
1031
+ compareDates(date, self.selectedDates[1], true) === 0);
1032
+ if (className === "nextMonthDay")
1033
+ dayElement.classList.add("inRange");
1034
+ }
1035
+ }
1036
+ }
1037
+ else {
1038
+ dayElement.classList.add("flatpickr-disabled");
1039
+ }
1040
+ if (self.config.mode === "range") {
1041
+ if (isDateInRange(date) && !isDateSelected(date))
1042
+ dayElement.classList.add("inRange");
1043
+ }
1044
+ if (self.weekNumbers &&
1045
+ self.config.showMonths === 1 &&
1046
+ className !== "prevMonthDay" &&
1047
+ dayNumber % 7 === 1) {
1048
+ self.weekNumbers.insertAdjacentHTML("beforeend", "<span class='flatpickr-day'>" + self.config.getWeek(date) + "</span>");
1049
+ }
1050
+ triggerEvent("onDayCreate", dayElement);
1051
+ return dayElement;
1052
+ }
1053
+ function focusOnDayElem(targetNode) {
1054
+ targetNode.focus();
1055
+ if (self.config.mode === "range")
1056
+ onMouseOver(targetNode);
1057
+ }
1058
+ function getFirstAvailableDay(delta) {
1059
+ var startMonth = delta > 0 ? 0 : self.config.showMonths - 1;
1060
+ var endMonth = delta > 0 ? self.config.showMonths : -1;
1061
+ for (var m = startMonth; m != endMonth; m += delta) {
1062
+ var month = self.daysContainer.children[m];
1063
+ var startIndex = delta > 0 ? 0 : month.children.length - 1;
1064
+ var endIndex = delta > 0 ? month.children.length : -1;
1065
+ for (var i = startIndex; i != endIndex; i += delta) {
1066
+ var c = month.children[i];
1067
+ if (c.className.indexOf("hidden") === -1 && isEnabled(c.dateObj))
1068
+ return c;
1069
+ }
1070
+ }
1071
+ return undefined;
1072
+ }
1073
+ function getNextAvailableDay(current, delta) {
1074
+ var givenMonth = current.className.indexOf("Month") === -1
1075
+ ? current.dateObj.getMonth()
1076
+ : self.currentMonth;
1077
+ var endMonth = delta > 0 ? self.config.showMonths : -1;
1078
+ var loopDelta = delta > 0 ? 1 : -1;
1079
+ for (var m = givenMonth - self.currentMonth; m != endMonth; m += loopDelta) {
1080
+ var month = self.daysContainer.children[m];
1081
+ var startIndex = givenMonth - self.currentMonth === m
1082
+ ? current.$i + delta
1083
+ : delta < 0
1084
+ ? month.children.length - 1
1085
+ : 0;
1086
+ var numMonthDays = month.children.length;
1087
+ for (var i = startIndex; i >= 0 && i < numMonthDays && i != (delta > 0 ? numMonthDays : -1); i += loopDelta) {
1088
+ var c = month.children[i];
1089
+ if (c.className.indexOf("hidden") === -1 &&
1090
+ isEnabled(c.dateObj) &&
1091
+ Math.abs(current.$i - i) >= Math.abs(delta))
1092
+ return focusOnDayElem(c);
1093
+ }
1094
+ }
1095
+ self.changeMonth(loopDelta);
1096
+ focusOnDay(getFirstAvailableDay(loopDelta), 0);
1097
+ return undefined;
1098
+ }
1099
+ function focusOnDay(current, offset) {
1100
+ var dayFocused = isInView(document.activeElement || document.body);
1101
+ var startElem = current !== undefined
1102
+ ? current
1103
+ : dayFocused
1104
+ ? document.activeElement
1105
+ : self.selectedDateElem !== undefined && isInView(self.selectedDateElem)
1106
+ ? self.selectedDateElem
1107
+ : self.todayDateElem !== undefined && isInView(self.todayDateElem)
1108
+ ? self.todayDateElem
1109
+ : getFirstAvailableDay(offset > 0 ? 1 : -1);
1110
+ if (startElem === undefined) {
1111
+ self._input.focus();
1112
+ }
1113
+ else if (!dayFocused) {
1114
+ focusOnDayElem(startElem);
1115
+ }
1116
+ else {
1117
+ getNextAvailableDay(startElem, offset);
1118
+ }
1119
+ }
1120
+ function buildMonthDays(year, month) {
1121
+ var firstOfMonth = (new Date(year, month, 1).getDay() - self.l10n.firstDayOfWeek + 7) % 7;
1122
+ var prevMonthDays = self.utils.getDaysInMonth((month - 1 + 12) % 12, year);
1123
+ var daysInMonth = self.utils.getDaysInMonth(month, year), days = window.document.createDocumentFragment(), isMultiMonth = self.config.showMonths > 1, prevMonthDayClass = isMultiMonth ? "prevMonthDay hidden" : "prevMonthDay", nextMonthDayClass = isMultiMonth ? "nextMonthDay hidden" : "nextMonthDay";
1124
+ var dayNumber = prevMonthDays + 1 - firstOfMonth, dayIndex = 0;
1125
+ // prepend days from the ending of previous month
1126
+ for (; dayNumber <= prevMonthDays; dayNumber++, dayIndex++) {
1127
+ days.appendChild(createDay(prevMonthDayClass, new Date(year, month - 1, dayNumber), dayNumber, dayIndex));
1128
+ }
1129
+ // Start at 1 since there is no 0th day
1130
+ for (dayNumber = 1; dayNumber <= daysInMonth; dayNumber++, dayIndex++) {
1131
+ days.appendChild(createDay("", new Date(year, month, dayNumber), dayNumber, dayIndex));
1132
+ }
1133
+ // append days from the next month
1134
+ for (var dayNum = daysInMonth + 1; dayNum <= 42 - firstOfMonth &&
1135
+ (self.config.showMonths === 1 || dayIndex % 7 !== 0); dayNum++, dayIndex++) {
1136
+ days.appendChild(createDay(nextMonthDayClass, new Date(year, month + 1, dayNum % daysInMonth), dayNum, dayIndex));
1137
+ }
1138
+ //updateNavigationCurrentMonth();
1139
+ var dayContainer = createElement("div", "dayContainer");
1140
+ dayContainer.appendChild(days);
1141
+ return dayContainer;
1142
+ }
1143
+ function buildDays() {
1144
+ if (self.daysContainer === undefined) {
1145
+ return;
1146
+ }
1147
+ clearNode(self.daysContainer);
1148
+ // TODO: week numbers for each month
1149
+ if (self.weekNumbers)
1150
+ clearNode(self.weekNumbers);
1151
+ var frag = document.createDocumentFragment();
1152
+ for (var i = 0; i < self.config.showMonths; i++) {
1153
+ var d = new Date(self.currentYear, self.currentMonth, 1);
1154
+ d.setMonth(self.currentMonth + i);
1155
+ frag.appendChild(buildMonthDays(d.getFullYear(), d.getMonth()));
1156
+ }
1157
+ self.daysContainer.appendChild(frag);
1158
+ self.days = self.daysContainer.firstChild;
1159
+ if (self.config.mode === "range" && self.selectedDates.length === 1) {
1160
+ onMouseOver();
1161
+ }
1162
+ }
1163
+ function buildMonthSwitch() {
1164
+ if (self.config.showMonths > 1 ||
1165
+ self.config.monthSelectorType !== "dropdown")
1166
+ return;
1167
+ var shouldBuildMonth = function (month) {
1168
+ if (self.config.minDate !== undefined &&
1169
+ self.currentYear === self.config.minDate.getFullYear() &&
1170
+ month < self.config.minDate.getMonth()) {
1171
+ return false;
1172
+ }
1173
+ return !(self.config.maxDate !== undefined &&
1174
+ self.currentYear === self.config.maxDate.getFullYear() &&
1175
+ month > self.config.maxDate.getMonth());
1176
+ };
1177
+ self.monthsDropdownContainer.tabIndex = -1;
1178
+ self.monthsDropdownContainer.innerHTML = "";
1179
+ for (var i = 0; i < 12; i++) {
1180
+ if (!shouldBuildMonth(i))
1181
+ continue;
1182
+ var month = createElement("option", "flatpickr-monthDropdown-month");
1183
+ month.value = new Date(self.currentYear, i).getMonth().toString();
1184
+ month.textContent = monthToStr(i, self.config.shorthandCurrentMonth, self.l10n);
1185
+ month.tabIndex = -1;
1186
+ if (self.currentMonth === i) {
1187
+ month.selected = true;
1188
+ }
1189
+ self.monthsDropdownContainer.appendChild(month);
1190
+ }
1191
+ }
1192
+ function buildMonth() {
1193
+ var container = createElement("div", "flatpickr-month");
1194
+ var monthNavFragment = window.document.createDocumentFragment();
1195
+ var monthElement;
1196
+ if (self.config.showMonths > 1 ||
1197
+ self.config.monthSelectorType === "static") {
1198
+ monthElement = createElement("span", "cur-month");
1199
+ }
1200
+ else {
1201
+ self.monthsDropdownContainer = createElement("select", "flatpickr-monthDropdown-months");
1202
+ self.monthsDropdownContainer.setAttribute("aria-label", self.l10n.monthAriaLabel);
1203
+ bind(self.monthsDropdownContainer, "change", function (e) {
1204
+ var target = getEventTarget(e);
1205
+ var selectedMonth = parseInt(target.value, 10);
1206
+ self.changeMonth(selectedMonth - self.currentMonth);
1207
+ triggerEvent("onMonthChange");
1208
+ });
1209
+ buildMonthSwitch();
1210
+ monthElement = self.monthsDropdownContainer;
1211
+ }
1212
+ var yearInput = createNumberInput("cur-year", { tabindex: "-1" });
1213
+ var yearElement = yearInput.getElementsByTagName("input")[0];
1214
+ yearElement.setAttribute("aria-label", self.l10n.yearAriaLabel);
1215
+ if (self.config.minDate) {
1216
+ yearElement.setAttribute("min", self.config.minDate.getFullYear().toString());
1217
+ }
1218
+ if (self.config.maxDate) {
1219
+ yearElement.setAttribute("max", self.config.maxDate.getFullYear().toString());
1220
+ yearElement.disabled =
1221
+ !!self.config.minDate &&
1222
+ self.config.minDate.getFullYear() === self.config.maxDate.getFullYear();
1223
+ }
1224
+ var currentMonth = createElement("div", "flatpickr-current-month");
1225
+ currentMonth.appendChild(monthElement);
1226
+ currentMonth.appendChild(yearInput);
1227
+ monthNavFragment.appendChild(currentMonth);
1228
+ container.appendChild(monthNavFragment);
1229
+ return {
1230
+ container: container,
1231
+ yearElement: yearElement,
1232
+ monthElement: monthElement,
1233
+ };
1234
+ }
1235
+ function buildMonths() {
1236
+ clearNode(self.monthNav);
1237
+ self.monthNav.appendChild(self.prevMonthNav);
1238
+ if (self.config.showMonths) {
1239
+ self.yearElements = [];
1240
+ self.monthElements = [];
1241
+ }
1242
+ for (var m = self.config.showMonths; m--;) {
1243
+ var month = buildMonth();
1244
+ self.yearElements.push(month.yearElement);
1245
+ self.monthElements.push(month.monthElement);
1246
+ self.monthNav.appendChild(month.container);
1247
+ }
1248
+ self.monthNav.appendChild(self.nextMonthNav);
1249
+ }
1250
+ function buildMonthNav() {
1251
+ self.monthNav = createElement("div", "flatpickr-months");
1252
+ self.yearElements = [];
1253
+ self.monthElements = [];
1254
+ self.prevMonthNav = createElement("span", "flatpickr-prev-month");
1255
+ self.prevMonthNav.innerHTML = self.config.prevArrow;
1256
+ self.nextMonthNav = createElement("span", "flatpickr-next-month");
1257
+ self.nextMonthNav.innerHTML = self.config.nextArrow;
1258
+ buildMonths();
1259
+ Object.defineProperty(self, "_hidePrevMonthArrow", {
1260
+ get: function () { return self.__hidePrevMonthArrow; },
1261
+ set: function (bool) {
1262
+ if (self.__hidePrevMonthArrow !== bool) {
1263
+ toggleClass(self.prevMonthNav, "flatpickr-disabled", bool);
1264
+ self.__hidePrevMonthArrow = bool;
1265
+ }
1266
+ },
1267
+ });
1268
+ Object.defineProperty(self, "_hideNextMonthArrow", {
1269
+ get: function () { return self.__hideNextMonthArrow; },
1270
+ set: function (bool) {
1271
+ if (self.__hideNextMonthArrow !== bool) {
1272
+ toggleClass(self.nextMonthNav, "flatpickr-disabled", bool);
1273
+ self.__hideNextMonthArrow = bool;
1274
+ }
1275
+ },
1276
+ });
1277
+ self.currentYearElement = self.yearElements[0];
1278
+ updateNavigationCurrentMonth();
1279
+ return self.monthNav;
1280
+ }
1281
+ function buildTime() {
1282
+ self.calendarContainer.classList.add("hasTime");
1283
+ if (self.config.noCalendar)
1284
+ self.calendarContainer.classList.add("noCalendar");
1285
+ var defaults = getDefaultHours(self.config);
1286
+ self.timeContainer = createElement("div", "flatpickr-time");
1287
+ self.timeContainer.tabIndex = -1;
1288
+ var separator = createElement("span", "flatpickr-time-separator", ":");
1289
+ var hourInput = createNumberInput("flatpickr-hour", {
1290
+ "aria-label": self.l10n.hourAriaLabel,
1291
+ });
1292
+ self.hourElement = hourInput.getElementsByTagName("input")[0];
1293
+ var minuteInput = createNumberInput("flatpickr-minute", {
1294
+ "aria-label": self.l10n.minuteAriaLabel,
1295
+ });
1296
+ self.minuteElement = minuteInput.getElementsByTagName("input")[0];
1297
+ self.hourElement.tabIndex = self.minuteElement.tabIndex = -1;
1298
+ self.hourElement.value = pad(self.latestSelectedDateObj
1299
+ ? self.latestSelectedDateObj.getHours()
1300
+ : self.config.time_24hr
1301
+ ? defaults.hours
1302
+ : military2ampm(defaults.hours));
1303
+ self.minuteElement.value = pad(self.latestSelectedDateObj
1304
+ ? self.latestSelectedDateObj.getMinutes()
1305
+ : defaults.minutes);
1306
+ self.hourElement.setAttribute("step", self.config.hourIncrement.toString());
1307
+ self.minuteElement.setAttribute("step", self.config.minuteIncrement.toString());
1308
+ self.hourElement.setAttribute("min", self.config.time_24hr ? "0" : "1");
1309
+ self.hourElement.setAttribute("max", self.config.time_24hr ? "23" : "12");
1310
+ self.hourElement.setAttribute("maxlength", "2");
1311
+ self.minuteElement.setAttribute("min", "0");
1312
+ self.minuteElement.setAttribute("max", "59");
1313
+ self.minuteElement.setAttribute("maxlength", "2");
1314
+ self.timeContainer.appendChild(hourInput);
1315
+ self.timeContainer.appendChild(separator);
1316
+ self.timeContainer.appendChild(minuteInput);
1317
+ if (self.config.time_24hr)
1318
+ self.timeContainer.classList.add("time24hr");
1319
+ if (self.config.enableSeconds) {
1320
+ self.timeContainer.classList.add("hasSeconds");
1321
+ var secondInput = createNumberInput("flatpickr-second");
1322
+ self.secondElement = secondInput.getElementsByTagName("input")[0];
1323
+ self.secondElement.value = pad(self.latestSelectedDateObj
1324
+ ? self.latestSelectedDateObj.getSeconds()
1325
+ : defaults.seconds);
1326
+ self.secondElement.setAttribute("step", self.minuteElement.getAttribute("step"));
1327
+ self.secondElement.setAttribute("min", "0");
1328
+ self.secondElement.setAttribute("max", "59");
1329
+ self.secondElement.setAttribute("maxlength", "2");
1330
+ self.timeContainer.appendChild(createElement("span", "flatpickr-time-separator", ":"));
1331
+ self.timeContainer.appendChild(secondInput);
1332
+ }
1333
+ if (!self.config.time_24hr) {
1334
+ // add self.amPM if appropriate
1335
+ self.amPM = createElement("span", "flatpickr-am-pm", self.l10n.amPM[int((self.latestSelectedDateObj
1336
+ ? self.hourElement.value
1337
+ : self.config.defaultHour) > 11)]);
1338
+ self.amPM.title = self.l10n.toggleTitle;
1339
+ self.amPM.tabIndex = -1;
1340
+ self.timeContainer.appendChild(self.amPM);
1341
+ }
1342
+ return self.timeContainer;
1343
+ }
1344
+ function buildWeekdays() {
1345
+ if (!self.weekdayContainer)
1346
+ self.weekdayContainer = createElement("div", "flatpickr-weekdays");
1347
+ else
1348
+ clearNode(self.weekdayContainer);
1349
+ for (var i = self.config.showMonths; i--;) {
1350
+ var container = createElement("div", "flatpickr-weekdaycontainer");
1351
+ self.weekdayContainer.appendChild(container);
1352
+ }
1353
+ updateWeekdays();
1354
+ return self.weekdayContainer;
1355
+ }
1356
+ function updateWeekdays() {
1357
+ if (!self.weekdayContainer) {
1358
+ return;
1359
+ }
1360
+ var firstDayOfWeek = self.l10n.firstDayOfWeek;
1361
+ var weekdays = __spreadArrays(self.l10n.weekdays.shorthand);
1362
+ if (firstDayOfWeek > 0 && firstDayOfWeek < weekdays.length) {
1363
+ weekdays = __spreadArrays(weekdays.splice(firstDayOfWeek, weekdays.length), weekdays.splice(0, firstDayOfWeek));
1364
+ }
1365
+ for (var i = self.config.showMonths; i--;) {
1366
+ self.weekdayContainer.children[i].innerHTML = "\n <span class='flatpickr-weekday'>\n " + weekdays.join("</span><span class='flatpickr-weekday'>") + "\n </span>\n ";
1367
+ }
1368
+ }
1369
+ /* istanbul ignore next */
1370
+ function buildWeeks() {
1371
+ self.calendarContainer.classList.add("hasWeeks");
1372
+ var weekWrapper = createElement("div", "flatpickr-weekwrapper");
1373
+ weekWrapper.appendChild(createElement("span", "flatpickr-weekday", self.l10n.weekAbbreviation));
1374
+ var weekNumbers = createElement("div", "flatpickr-weeks");
1375
+ weekWrapper.appendChild(weekNumbers);
1376
+ return {
1377
+ weekWrapper: weekWrapper,
1378
+ weekNumbers: weekNumbers,
1379
+ };
1380
+ }
1381
+ function changeMonth(value, isOffset) {
1382
+ if (isOffset === void 0) { isOffset = true; }
1383
+ var delta = isOffset ? value : value - self.currentMonth;
1384
+ if ((delta < 0 && self._hidePrevMonthArrow === true) ||
1385
+ (delta > 0 && self._hideNextMonthArrow === true))
1386
+ return;
1387
+ self.currentMonth += delta;
1388
+ if (self.currentMonth < 0 || self.currentMonth > 11) {
1389
+ self.currentYear += self.currentMonth > 11 ? 1 : -1;
1390
+ self.currentMonth = (self.currentMonth + 12) % 12;
1391
+ triggerEvent("onYearChange");
1392
+ buildMonthSwitch();
1393
+ }
1394
+ buildDays();
1395
+ triggerEvent("onMonthChange");
1396
+ updateNavigationCurrentMonth();
1397
+ }
1398
+ function clear(triggerChangeEvent, toInitial) {
1399
+ if (triggerChangeEvent === void 0) { triggerChangeEvent = true; }
1400
+ if (toInitial === void 0) { toInitial = true; }
1401
+ self.input.value = "";
1402
+ if (self.altInput !== undefined)
1403
+ self.altInput.value = "";
1404
+ if (self.mobileInput !== undefined)
1405
+ self.mobileInput.value = "";
1406
+ self.selectedDates = [];
1407
+ self.latestSelectedDateObj = undefined;
1408
+ if (toInitial === true) {
1409
+ self.currentYear = self._initialDate.getFullYear();
1410
+ self.currentMonth = self._initialDate.getMonth();
1411
+ }
1412
+ if (self.config.enableTime === true) {
1413
+ var _a = getDefaultHours(self.config), hours = _a.hours, minutes = _a.minutes, seconds = _a.seconds;
1414
+ setHours(hours, minutes, seconds);
1415
+ }
1416
+ self.redraw();
1417
+ if (triggerChangeEvent)
1418
+ // triggerChangeEvent is true (default) or an Event
1419
+ triggerEvent("onChange");
1420
+ }
1421
+ function close() {
1422
+ self.isOpen = false;
1423
+ if (!self.isMobile) {
1424
+ if (self.calendarContainer !== undefined) {
1425
+ self.calendarContainer.classList.remove("open");
1426
+ }
1427
+ if (self._input !== undefined) {
1428
+ self._input.classList.remove("active");
1429
+ }
1430
+ }
1431
+ triggerEvent("onClose");
1432
+ }
1433
+ function destroy() {
1434
+ if (self.config !== undefined)
1435
+ triggerEvent("onDestroy");
1436
+ for (var i = self._handlers.length; i--;) {
1437
+ self._handlers[i].remove();
1438
+ }
1439
+ self._handlers = [];
1440
+ if (self.mobileInput) {
1441
+ if (self.mobileInput.parentNode)
1442
+ self.mobileInput.parentNode.removeChild(self.mobileInput);
1443
+ self.mobileInput = undefined;
1444
+ }
1445
+ else if (self.calendarContainer && self.calendarContainer.parentNode) {
1446
+ if (self.config.static && self.calendarContainer.parentNode) {
1447
+ var wrapper = self.calendarContainer.parentNode;
1448
+ wrapper.lastChild && wrapper.removeChild(wrapper.lastChild);
1449
+ if (wrapper.parentNode) {
1450
+ while (wrapper.firstChild)
1451
+ wrapper.parentNode.insertBefore(wrapper.firstChild, wrapper);
1452
+ wrapper.parentNode.removeChild(wrapper);
1453
+ }
1454
+ }
1455
+ else
1456
+ self.calendarContainer.parentNode.removeChild(self.calendarContainer);
1457
+ }
1458
+ if (self.altInput) {
1459
+ self.input.type = "text";
1460
+ if (self.altInput.parentNode)
1461
+ self.altInput.parentNode.removeChild(self.altInput);
1462
+ delete self.altInput;
1463
+ }
1464
+ if (self.input) {
1465
+ self.input.type = self.input._type;
1466
+ self.input.classList.remove("flatpickr-input");
1467
+ self.input.removeAttribute("readonly");
1468
+ }
1469
+ [
1470
+ "_showTimeInput",
1471
+ "latestSelectedDateObj",
1472
+ "_hideNextMonthArrow",
1473
+ "_hidePrevMonthArrow",
1474
+ "__hideNextMonthArrow",
1475
+ "__hidePrevMonthArrow",
1476
+ "isMobile",
1477
+ "isOpen",
1478
+ "selectedDateElem",
1479
+ "minDateHasTime",
1480
+ "maxDateHasTime",
1481
+ "days",
1482
+ "daysContainer",
1483
+ "_input",
1484
+ "_positionElement",
1485
+ "innerContainer",
1486
+ "rContainer",
1487
+ "monthNav",
1488
+ "todayDateElem",
1489
+ "calendarContainer",
1490
+ "weekdayContainer",
1491
+ "prevMonthNav",
1492
+ "nextMonthNav",
1493
+ "monthsDropdownContainer",
1494
+ "currentMonthElement",
1495
+ "currentYearElement",
1496
+ "navigationCurrentMonth",
1497
+ "selectedDateElem",
1498
+ "config",
1499
+ ].forEach(function (k) {
1500
+ try {
1501
+ delete self[k];
1502
+ }
1503
+ catch (_) { }
1504
+ });
1505
+ }
1506
+ function isCalendarElem(elem) {
1507
+ if (self.config.appendTo && self.config.appendTo.contains(elem))
1508
+ return true;
1509
+ return self.calendarContainer.contains(elem);
1510
+ }
1511
+ function documentClick(e) {
1512
+ if (self.isOpen && !self.config.inline) {
1513
+ var eventTarget_1 = getEventTarget(e);
1514
+ var isCalendarElement = isCalendarElem(eventTarget_1);
1515
+ var isInput = eventTarget_1 === self.input ||
1516
+ eventTarget_1 === self.altInput ||
1517
+ self.element.contains(eventTarget_1) ||
1518
+ // web components
1519
+ // e.path is not present in all browsers. circumventing typechecks
1520
+ (e.path &&
1521
+ e.path.indexOf &&
1522
+ (~e.path.indexOf(self.input) ||
1523
+ ~e.path.indexOf(self.altInput)));
1524
+ var lostFocus = e.type === "blur"
1525
+ ? isInput &&
1526
+ e.relatedTarget &&
1527
+ !isCalendarElem(e.relatedTarget)
1528
+ : !isInput &&
1529
+ !isCalendarElement &&
1530
+ !isCalendarElem(e.relatedTarget);
1531
+ var isIgnored = !self.config.ignoredFocusElements.some(function (elem) {
1532
+ return elem.contains(eventTarget_1);
1533
+ });
1534
+ if (lostFocus && isIgnored) {
1535
+ if (self.timeContainer !== undefined &&
1536
+ self.minuteElement !== undefined &&
1537
+ self.hourElement !== undefined &&
1538
+ self.input.value !== "" &&
1539
+ self.input.value !== undefined) {
1540
+ updateTime();
1541
+ }
1542
+ self.close();
1543
+ if (self.config &&
1544
+ self.config.mode === "range" &&
1545
+ self.selectedDates.length === 1) {
1546
+ self.clear(false);
1547
+ self.redraw();
1548
+ }
1549
+ }
1550
+ }
1551
+ }
1552
+ function changeYear(newYear) {
1553
+ if (!newYear ||
1554
+ (self.config.minDate && newYear < self.config.minDate.getFullYear()) ||
1555
+ (self.config.maxDate && newYear > self.config.maxDate.getFullYear()))
1556
+ return;
1557
+ var newYearNum = newYear, isNewYear = self.currentYear !== newYearNum;
1558
+ self.currentYear = newYearNum || self.currentYear;
1559
+ if (self.config.maxDate &&
1560
+ self.currentYear === self.config.maxDate.getFullYear()) {
1561
+ self.currentMonth = Math.min(self.config.maxDate.getMonth(), self.currentMonth);
1562
+ }
1563
+ else if (self.config.minDate &&
1564
+ self.currentYear === self.config.minDate.getFullYear()) {
1565
+ self.currentMonth = Math.max(self.config.minDate.getMonth(), self.currentMonth);
1566
+ }
1567
+ if (isNewYear) {
1568
+ self.redraw();
1569
+ triggerEvent("onYearChange");
1570
+ buildMonthSwitch();
1571
+ }
1572
+ }
1573
+ function isEnabled(date, timeless) {
1574
+ var _a;
1575
+ if (timeless === void 0) { timeless = true; }
1576
+ var dateToCheck = self.parseDate(date, undefined, timeless); // timeless
1577
+ if ((self.config.minDate &&
1578
+ dateToCheck &&
1579
+ compareDates(dateToCheck, self.config.minDate, timeless !== undefined ? timeless : !self.minDateHasTime) < 0) ||
1580
+ (self.config.maxDate &&
1581
+ dateToCheck &&
1582
+ compareDates(dateToCheck, self.config.maxDate, timeless !== undefined ? timeless : !self.maxDateHasTime) > 0))
1583
+ return false;
1584
+ if (!self.config.enable && self.config.disable.length === 0)
1585
+ return true;
1586
+ if (dateToCheck === undefined)
1587
+ return false;
1588
+ var bool = !!self.config.enable, array = (_a = self.config.enable) !== null && _a !== void 0 ? _a : self.config.disable;
1589
+ for (var i = 0, d = void 0; i < array.length; i++) {
1590
+ d = array[i];
1591
+ if (typeof d === "function" &&
1592
+ d(dateToCheck) // disabled by function
1593
+ )
1594
+ return bool;
1595
+ else if (d instanceof Date &&
1596
+ dateToCheck !== undefined &&
1597
+ d.getTime() === dateToCheck.getTime())
1598
+ // disabled by date
1599
+ return bool;
1600
+ else if (typeof d === "string") {
1601
+ // disabled by date string
1602
+ var parsed = self.parseDate(d, undefined, true);
1603
+ return parsed && parsed.getTime() === dateToCheck.getTime()
1604
+ ? bool
1605
+ : !bool;
1606
+ }
1607
+ else if (
1608
+ // disabled by range
1609
+ typeof d === "object" &&
1610
+ dateToCheck !== undefined &&
1611
+ d.from &&
1612
+ d.to &&
1613
+ dateToCheck.getTime() >= d.from.getTime() &&
1614
+ dateToCheck.getTime() <= d.to.getTime())
1615
+ return bool;
1616
+ }
1617
+ return !bool;
1618
+ }
1619
+ function isInView(elem) {
1620
+ if (self.daysContainer !== undefined)
1621
+ return (elem.className.indexOf("hidden") === -1 &&
1622
+ elem.className.indexOf("flatpickr-disabled") === -1 &&
1623
+ self.daysContainer.contains(elem));
1624
+ return false;
1625
+ }
1626
+ function onBlur(e) {
1627
+ var isInput = e.target === self._input;
1628
+ if (isInput &&
1629
+ (self.selectedDates.length > 0 || self._input.value.length > 0) &&
1630
+ !(e.relatedTarget && isCalendarElem(e.relatedTarget))) {
1631
+ self.setDate(self._input.value, true, e.target === self.altInput
1632
+ ? self.config.altFormat
1633
+ : self.config.dateFormat);
1634
+ }
1635
+ }
1636
+ function onKeyDown(e) {
1637
+ // e.key e.keyCode
1638
+ // "Backspace" 8
1639
+ // "Tab" 9
1640
+ // "Enter" 13
1641
+ // "Escape" (IE "Esc") 27
1642
+ // "ArrowLeft" (IE "Left") 37
1643
+ // "ArrowUp" (IE "Up") 38
1644
+ // "ArrowRight" (IE "Right") 39
1645
+ // "ArrowDown" (IE "Down") 40
1646
+ // "Delete" (IE "Del") 46
1647
+ var eventTarget = getEventTarget(e);
1648
+ var isInput = self.config.wrap
1649
+ ? element.contains(eventTarget)
1650
+ : eventTarget === self._input;
1651
+ var allowInput = self.config.allowInput;
1652
+ var allowKeydown = self.isOpen && (!allowInput || !isInput);
1653
+ var allowInlineKeydown = self.config.inline && isInput && !allowInput;
1654
+ if (e.keyCode === 13 && isInput) {
1655
+ if (allowInput) {
1656
+ self.setDate(self._input.value, true, eventTarget === self.altInput
1657
+ ? self.config.altFormat
1658
+ : self.config.dateFormat);
1659
+ return eventTarget.blur();
1660
+ }
1661
+ else {
1662
+ self.open();
1663
+ }
1664
+ }
1665
+ else if (isCalendarElem(eventTarget) ||
1666
+ allowKeydown ||
1667
+ allowInlineKeydown) {
1668
+ var isTimeObj = !!self.timeContainer &&
1669
+ self.timeContainer.contains(eventTarget);
1670
+ switch (e.keyCode) {
1671
+ case 13:
1672
+ if (isTimeObj) {
1673
+ e.preventDefault();
1674
+ updateTime();
1675
+ focusAndClose();
1676
+ }
1677
+ else
1678
+ selectDate(e);
1679
+ break;
1680
+ case 27: // escape
1681
+ e.preventDefault();
1682
+ focusAndClose();
1683
+ break;
1684
+ case 8:
1685
+ case 46:
1686
+ if (isInput && !self.config.allowInput) {
1687
+ e.preventDefault();
1688
+ self.clear();
1689
+ }
1690
+ break;
1691
+ case 37:
1692
+ case 39:
1693
+ if (!isTimeObj && !isInput) {
1694
+ e.preventDefault();
1695
+ if (self.daysContainer !== undefined &&
1696
+ (allowInput === false ||
1697
+ (document.activeElement && isInView(document.activeElement)))) {
1698
+ var delta_1 = e.keyCode === 39 ? 1 : -1;
1699
+ if (!e.ctrlKey)
1700
+ focusOnDay(undefined, delta_1);
1701
+ else {
1702
+ e.stopPropagation();
1703
+ changeMonth(delta_1);
1704
+ focusOnDay(getFirstAvailableDay(1), 0);
1705
+ }
1706
+ }
1707
+ }
1708
+ else if (self.hourElement)
1709
+ self.hourElement.focus();
1710
+ break;
1711
+ case 38:
1712
+ case 40:
1713
+ e.preventDefault();
1714
+ var delta = e.keyCode === 40 ? 1 : -1;
1715
+ if ((self.daysContainer &&
1716
+ eventTarget.$i !== undefined) ||
1717
+ eventTarget === self.input ||
1718
+ eventTarget === self.altInput) {
1719
+ if (e.ctrlKey) {
1720
+ e.stopPropagation();
1721
+ changeYear(self.currentYear - delta);
1722
+ focusOnDay(getFirstAvailableDay(1), 0);
1723
+ }
1724
+ else if (!isTimeObj)
1725
+ focusOnDay(undefined, delta * 7);
1726
+ }
1727
+ else if (eventTarget === self.currentYearElement) {
1728
+ changeYear(self.currentYear - delta);
1729
+ }
1730
+ else if (self.config.enableTime) {
1731
+ if (!isTimeObj && self.hourElement)
1732
+ self.hourElement.focus();
1733
+ updateTime(e);
1734
+ self._debouncedChange();
1735
+ }
1736
+ break;
1737
+ case 9:
1738
+ if (isTimeObj) {
1739
+ var elems = [
1740
+ self.hourElement,
1741
+ self.minuteElement,
1742
+ self.secondElement,
1743
+ self.amPM,
1744
+ ]
1745
+ .concat(self.pluginElements)
1746
+ .filter(function (x) { return x; });
1747
+ var i = elems.indexOf(eventTarget);
1748
+ if (i !== -1) {
1749
+ var target = elems[i + (e.shiftKey ? -1 : 1)];
1750
+ e.preventDefault();
1751
+ (target || self._input).focus();
1752
+ }
1753
+ }
1754
+ else if (!self.config.noCalendar &&
1755
+ self.daysContainer &&
1756
+ self.daysContainer.contains(eventTarget) &&
1757
+ e.shiftKey) {
1758
+ e.preventDefault();
1759
+ self._input.focus();
1760
+ }
1761
+ break;
1762
+ }
1763
+ }
1764
+ if (self.amPM !== undefined && eventTarget === self.amPM) {
1765
+ switch (e.key) {
1766
+ case self.l10n.amPM[0].charAt(0):
1767
+ case self.l10n.amPM[0].charAt(0).toLowerCase():
1768
+ self.amPM.textContent = self.l10n.amPM[0];
1769
+ setHoursFromInputs();
1770
+ updateValue();
1771
+ break;
1772
+ case self.l10n.amPM[1].charAt(0):
1773
+ case self.l10n.amPM[1].charAt(0).toLowerCase():
1774
+ self.amPM.textContent = self.l10n.amPM[1];
1775
+ setHoursFromInputs();
1776
+ updateValue();
1777
+ break;
1778
+ }
1779
+ }
1780
+ if (isInput || isCalendarElem(eventTarget)) {
1781
+ triggerEvent("onKeyDown", e);
1782
+ }
1783
+ }
1784
+ function onMouseOver(elem) {
1785
+ if (self.selectedDates.length !== 1 ||
1786
+ (elem &&
1787
+ (!elem.classList.contains("flatpickr-day") ||
1788
+ elem.classList.contains("flatpickr-disabled"))))
1789
+ return;
1790
+ var hoverDate = elem
1791
+ ? elem.dateObj.getTime()
1792
+ : self.days.firstElementChild.dateObj.getTime(), initialDate = self.parseDate(self.selectedDates[0], undefined, true).getTime(), rangeStartDate = Math.min(hoverDate, self.selectedDates[0].getTime()), rangeEndDate = Math.max(hoverDate, self.selectedDates[0].getTime());
1793
+ var containsDisabled = false;
1794
+ var minRange = 0, maxRange = 0;
1795
+ for (var t = rangeStartDate; t < rangeEndDate; t += duration.DAY) {
1796
+ if (!isEnabled(new Date(t), true)) {
1797
+ containsDisabled =
1798
+ containsDisabled || (t > rangeStartDate && t < rangeEndDate);
1799
+ if (t < initialDate && (!minRange || t > minRange))
1800
+ minRange = t;
1801
+ else if (t > initialDate && (!maxRange || t < maxRange))
1802
+ maxRange = t;
1803
+ }
1804
+ }
1805
+ for (var m = 0; m < self.config.showMonths; m++) {
1806
+ var month = self.daysContainer.children[m];
1807
+ var _loop_1 = function (i, l) {
1808
+ var dayElem = month.children[i], date = dayElem.dateObj;
1809
+ var timestamp = date.getTime();
1810
+ var outOfRange = (minRange > 0 && timestamp < minRange) ||
1811
+ (maxRange > 0 && timestamp > maxRange);
1812
+ if (outOfRange) {
1813
+ dayElem.classList.add("notAllowed");
1814
+ ["inRange", "startRange", "endRange"].forEach(function (c) {
1815
+ dayElem.classList.remove(c);
1816
+ });
1817
+ return "continue";
1818
+ }
1819
+ else if (containsDisabled && !outOfRange)
1820
+ return "continue";
1821
+ ["startRange", "inRange", "endRange", "notAllowed"].forEach(function (c) {
1822
+ dayElem.classList.remove(c);
1823
+ });
1824
+ if (elem !== undefined) {
1825
+ elem.classList.add(hoverDate <= self.selectedDates[0].getTime()
1826
+ ? "startRange"
1827
+ : "endRange");
1828
+ if (initialDate < hoverDate && timestamp === initialDate)
1829
+ dayElem.classList.add("startRange");
1830
+ else if (initialDate > hoverDate && timestamp === initialDate)
1831
+ dayElem.classList.add("endRange");
1832
+ if (timestamp >= minRange &&
1833
+ (maxRange === 0 || timestamp <= maxRange) &&
1834
+ isBetween(timestamp, initialDate, hoverDate))
1835
+ dayElem.classList.add("inRange");
1836
+ }
1837
+ };
1838
+ for (var i = 0, l = month.children.length; i < l; i++) {
1839
+ _loop_1(i, l);
1840
+ }
1841
+ }
1842
+ }
1843
+ function onResize() {
1844
+ if (self.isOpen && !self.config.static && !self.config.inline)
1845
+ positionCalendar();
1846
+ }
1847
+ function open(e, positionElement) {
1848
+ if (positionElement === void 0) { positionElement = self._positionElement; }
1849
+ if (self.isMobile === true) {
1850
+ if (e) {
1851
+ e.preventDefault();
1852
+ var eventTarget = getEventTarget(e);
1853
+ if (eventTarget) {
1854
+ eventTarget.blur();
1855
+ }
1856
+ }
1857
+ if (self.mobileInput !== undefined) {
1858
+ self.mobileInput.focus();
1859
+ self.mobileInput.click();
1860
+ }
1861
+ triggerEvent("onOpen");
1862
+ return;
1863
+ }
1864
+ else if (self._input.disabled || self.config.inline) {
1865
+ return;
1866
+ }
1867
+ var wasOpen = self.isOpen;
1868
+ self.isOpen = true;
1869
+ if (!wasOpen) {
1870
+ self.calendarContainer.classList.add("open");
1871
+ self._input.classList.add("active");
1872
+ triggerEvent("onOpen");
1873
+ positionCalendar(positionElement);
1874
+ }
1875
+ if (self.config.enableTime === true && self.config.noCalendar === true) {
1876
+ if (self.config.allowInput === false &&
1877
+ (e === undefined ||
1878
+ !self.timeContainer.contains(e.relatedTarget))) {
1879
+ setTimeout(function () { return self.hourElement.select(); }, 50);
1880
+ }
1881
+ }
1882
+ }
1883
+ function minMaxDateSetter(type) {
1884
+ return function (date) {
1885
+ var dateObj = (self.config["_" + type + "Date"] = self.parseDate(date, self.config.dateFormat));
1886
+ var inverseDateObj = self.config["_" + (type === "min" ? "max" : "min") + "Date"];
1887
+ if (dateObj !== undefined) {
1888
+ self[type === "min" ? "minDateHasTime" : "maxDateHasTime"] =
1889
+ dateObj.getHours() > 0 ||
1890
+ dateObj.getMinutes() > 0 ||
1891
+ dateObj.getSeconds() > 0;
1892
+ }
1893
+ if (self.selectedDates) {
1894
+ self.selectedDates = self.selectedDates.filter(function (d) { return isEnabled(d); });
1895
+ if (!self.selectedDates.length && type === "min")
1896
+ setHoursFromDate(dateObj);
1897
+ updateValue();
1898
+ }
1899
+ if (self.daysContainer) {
1900
+ redraw();
1901
+ if (dateObj !== undefined)
1902
+ self.currentYearElement[type] = dateObj.getFullYear().toString();
1903
+ else
1904
+ self.currentYearElement.removeAttribute(type);
1905
+ self.currentYearElement.disabled =
1906
+ !!inverseDateObj &&
1907
+ dateObj !== undefined &&
1908
+ inverseDateObj.getFullYear() === dateObj.getFullYear();
1909
+ }
1910
+ };
1911
+ }
1912
+ function parseConfig() {
1913
+ var boolOpts = [
1914
+ "wrap",
1915
+ "weekNumbers",
1916
+ "allowInput",
1917
+ "allowInvalidPreload",
1918
+ "clickOpens",
1919
+ "time_24hr",
1920
+ "enableTime",
1921
+ "noCalendar",
1922
+ "altInput",
1923
+ "shorthandCurrentMonth",
1924
+ "inline",
1925
+ "static",
1926
+ "enableSeconds",
1927
+ "disableMobile",
1928
+ ];
1929
+ var userConfig = __assign(__assign({}, JSON.parse(JSON.stringify(element.dataset || {}))), instanceConfig);
1930
+ var formats = {};
1931
+ self.config.parseDate = userConfig.parseDate;
1932
+ self.config.formatDate = userConfig.formatDate;
1933
+ Object.defineProperty(self.config, "enable", {
1934
+ get: function () { return self.config._enable; },
1935
+ set: function (dates) {
1936
+ self.config._enable = parseDateRules(dates);
1937
+ },
1938
+ });
1939
+ Object.defineProperty(self.config, "disable", {
1940
+ get: function () { return self.config._disable; },
1941
+ set: function (dates) {
1942
+ self.config._disable = parseDateRules(dates);
1943
+ },
1944
+ });
1945
+ var timeMode = userConfig.mode === "time";
1946
+ if (!userConfig.dateFormat && (userConfig.enableTime || timeMode)) {
1947
+ var defaultDateFormat = flatpickr.defaultConfig.dateFormat || defaults.dateFormat;
1948
+ formats.dateFormat =
1949
+ userConfig.noCalendar || timeMode
1950
+ ? "H:i" + (userConfig.enableSeconds ? ":S" : "")
1951
+ : defaultDateFormat + " H:i" + (userConfig.enableSeconds ? ":S" : "");
1952
+ }
1953
+ if (userConfig.altInput &&
1954
+ (userConfig.enableTime || timeMode) &&
1955
+ !userConfig.altFormat) {
1956
+ var defaultAltFormat = flatpickr.defaultConfig.altFormat || defaults.altFormat;
1957
+ formats.altFormat =
1958
+ userConfig.noCalendar || timeMode
1959
+ ? "h:i" + (userConfig.enableSeconds ? ":S K" : " K")
1960
+ : defaultAltFormat + (" h:i" + (userConfig.enableSeconds ? ":S" : "") + " K");
1961
+ }
1962
+ Object.defineProperty(self.config, "minDate", {
1963
+ get: function () { return self.config._minDate; },
1964
+ set: minMaxDateSetter("min"),
1965
+ });
1966
+ Object.defineProperty(self.config, "maxDate", {
1967
+ get: function () { return self.config._maxDate; },
1968
+ set: minMaxDateSetter("max"),
1969
+ });
1970
+ var minMaxTimeSetter = function (type) { return function (val) {
1971
+ self.config[type === "min" ? "_minTime" : "_maxTime"] = self.parseDate(val, "H:i:S");
1972
+ }; };
1973
+ Object.defineProperty(self.config, "minTime", {
1974
+ get: function () { return self.config._minTime; },
1975
+ set: minMaxTimeSetter("min"),
1976
+ });
1977
+ Object.defineProperty(self.config, "maxTime", {
1978
+ get: function () { return self.config._maxTime; },
1979
+ set: minMaxTimeSetter("max"),
1980
+ });
1981
+ if (userConfig.mode === "time") {
1982
+ self.config.noCalendar = true;
1983
+ self.config.enableTime = true;
1984
+ }
1985
+ Object.assign(self.config, formats, userConfig);
1986
+ for (var i = 0; i < boolOpts.length; i++)
1987
+ // https://github.com/microsoft/TypeScript/issues/31663
1988
+ self.config[boolOpts[i]] =
1989
+ self.config[boolOpts[i]] === true ||
1990
+ self.config[boolOpts[i]] === "true";
1991
+ HOOKS.filter(function (hook) { return self.config[hook] !== undefined; }).forEach(function (hook) {
1992
+ self.config[hook] = arrayify(self.config[hook] || []).map(bindToInstance);
1993
+ });
1994
+ self.isMobile =
1995
+ !self.config.disableMobile &&
1996
+ !self.config.inline &&
1997
+ self.config.mode === "single" &&
1998
+ !self.config.disable.length &&
1999
+ !self.config.enable &&
2000
+ !self.config.weekNumbers &&
2001
+ /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
2002
+ for (var i = 0; i < self.config.plugins.length; i++) {
2003
+ var pluginConf = self.config.plugins[i](self) || {};
2004
+ for (var key in pluginConf) {
2005
+ if (HOOKS.indexOf(key) > -1) {
2006
+ self.config[key] = arrayify(pluginConf[key])
2007
+ .map(bindToInstance)
2008
+ .concat(self.config[key]);
2009
+ }
2010
+ else if (typeof userConfig[key] === "undefined")
2011
+ self.config[key] = pluginConf[key];
2012
+ }
2013
+ }
2014
+ if (!userConfig.altInputClass) {
2015
+ self.config.altInputClass =
2016
+ getInputElem().className + " " + self.config.altInputClass;
2017
+ }
2018
+ triggerEvent("onParseConfig");
2019
+ }
2020
+ function getInputElem() {
2021
+ return self.config.wrap
2022
+ ? element.querySelector("[data-input]")
2023
+ : element;
2024
+ }
2025
+ function setupLocale() {
2026
+ if (typeof self.config.locale !== "object" &&
2027
+ typeof flatpickr.l10ns[self.config.locale] === "undefined")
2028
+ self.config.errorHandler(new Error("flatpickr: invalid locale " + self.config.locale));
2029
+ self.l10n = __assign(__assign({}, flatpickr.l10ns.default), (typeof self.config.locale === "object"
2030
+ ? self.config.locale
2031
+ : self.config.locale !== "default"
2032
+ ? flatpickr.l10ns[self.config.locale]
2033
+ : undefined));
2034
+ tokenRegex.K = "(" + self.l10n.amPM[0] + "|" + self.l10n.amPM[1] + "|" + self.l10n.amPM[0].toLowerCase() + "|" + self.l10n.amPM[1].toLowerCase() + ")";
2035
+ var userConfig = __assign(__assign({}, instanceConfig), JSON.parse(JSON.stringify(element.dataset || {})));
2036
+ if (userConfig.time_24hr === undefined &&
2037
+ flatpickr.defaultConfig.time_24hr === undefined) {
2038
+ self.config.time_24hr = self.l10n.time_24hr;
2039
+ }
2040
+ self.formatDate = createDateFormatter(self);
2041
+ self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });
2042
+ }
2043
+ function positionCalendar(customPositionElement) {
2044
+ if (typeof self.config.position === "function") {
2045
+ return void self.config.position(self, customPositionElement);
2046
+ }
2047
+ if (self.calendarContainer === undefined)
2048
+ return;
2049
+ triggerEvent("onPreCalendarPosition");
2050
+ var positionElement = customPositionElement || self._positionElement;
2051
+ var calendarHeight = Array.prototype.reduce.call(self.calendarContainer.children, (function (acc, child) { return acc + child.offsetHeight; }), 0), calendarWidth = self.calendarContainer.offsetWidth, configPos = self.config.position.split(" "), configPosVertical = configPos[0], configPosHorizontal = configPos.length > 1 ? configPos[1] : null, inputBounds = positionElement.getBoundingClientRect(), distanceFromBottom = window.innerHeight - inputBounds.bottom, showOnTop = configPosVertical === "above" ||
2052
+ (configPosVertical !== "below" &&
2053
+ distanceFromBottom < calendarHeight &&
2054
+ inputBounds.top > calendarHeight);
2055
+ var top = window.pageYOffset +
2056
+ inputBounds.top +
2057
+ (!showOnTop ? positionElement.offsetHeight + 2 : -calendarHeight - 2);
2058
+ toggleClass(self.calendarContainer, "arrowTop", !showOnTop);
2059
+ toggleClass(self.calendarContainer, "arrowBottom", showOnTop);
2060
+ if (self.config.inline)
2061
+ return;
2062
+ var left = window.pageXOffset + inputBounds.left;
2063
+ var isCenter = false;
2064
+ var isRight = false;
2065
+ if (configPosHorizontal === "center") {
2066
+ left -= (calendarWidth - inputBounds.width) / 2;
2067
+ isCenter = true;
2068
+ }
2069
+ else if (configPosHorizontal === "right") {
2070
+ left -= calendarWidth - inputBounds.width;
2071
+ isRight = true;
2072
+ }
2073
+ toggleClass(self.calendarContainer, "arrowLeft", !isCenter && !isRight);
2074
+ toggleClass(self.calendarContainer, "arrowCenter", isCenter);
2075
+ toggleClass(self.calendarContainer, "arrowRight", isRight);
2076
+ var right = window.document.body.offsetWidth -
2077
+ (window.pageXOffset + inputBounds.right);
2078
+ var rightMost = left + calendarWidth > window.document.body.offsetWidth;
2079
+ var centerMost = right + calendarWidth > window.document.body.offsetWidth;
2080
+ toggleClass(self.calendarContainer, "rightMost", rightMost);
2081
+ if (self.config.static)
2082
+ return;
2083
+ self.calendarContainer.style.top = top + "px";
2084
+ if (!rightMost) {
2085
+ self.calendarContainer.style.left = left + "px";
2086
+ self.calendarContainer.style.right = "auto";
2087
+ }
2088
+ else if (!centerMost) {
2089
+ self.calendarContainer.style.left = "auto";
2090
+ self.calendarContainer.style.right = right + "px";
2091
+ }
2092
+ else {
2093
+ var doc = getDocumentStyleSheet();
2094
+ // some testing environments don't have css support
2095
+ if (doc === undefined)
2096
+ return;
2097
+ var bodyWidth = window.document.body.offsetWidth;
2098
+ var centerLeft = Math.max(0, bodyWidth / 2 - calendarWidth / 2);
2099
+ var centerBefore = ".flatpickr-calendar.centerMost:before";
2100
+ var centerAfter = ".flatpickr-calendar.centerMost:after";
2101
+ var centerIndex = doc.cssRules.length;
2102
+ var centerStyle = "{left:" + inputBounds.left + "px;right:auto;}";
2103
+ toggleClass(self.calendarContainer, "rightMost", false);
2104
+ toggleClass(self.calendarContainer, "centerMost", true);
2105
+ doc.insertRule(centerBefore + "," + centerAfter + centerStyle, centerIndex);
2106
+ self.calendarContainer.style.left = centerLeft + "px";
2107
+ self.calendarContainer.style.right = "auto";
2108
+ }
2109
+ }
2110
+ function getDocumentStyleSheet() {
2111
+ var editableSheet = null;
2112
+ for (var i = 0; i < document.styleSheets.length; i++) {
2113
+ var sheet = document.styleSheets[i];
2114
+ try {
2115
+ sheet.cssRules;
2116
+ }
2117
+ catch (err) {
2118
+ continue;
2119
+ }
2120
+ editableSheet = sheet;
2121
+ break;
2122
+ }
2123
+ return editableSheet != null ? editableSheet : createStyleSheet();
2124
+ }
2125
+ function createStyleSheet() {
2126
+ var style = document.createElement("style");
2127
+ document.head.appendChild(style);
2128
+ return style.sheet;
2129
+ }
2130
+ function redraw() {
2131
+ if (self.config.noCalendar || self.isMobile)
2132
+ return;
2133
+ buildMonthSwitch();
2134
+ updateNavigationCurrentMonth();
2135
+ buildDays();
2136
+ }
2137
+ function focusAndClose() {
2138
+ self._input.focus();
2139
+ if (window.navigator.userAgent.indexOf("MSIE") !== -1 ||
2140
+ navigator.msMaxTouchPoints !== undefined) {
2141
+ // hack - bugs in the way IE handles focus keeps the calendar open
2142
+ setTimeout(self.close, 0);
2143
+ }
2144
+ else {
2145
+ self.close();
2146
+ }
2147
+ }
2148
+ function selectDate(e) {
2149
+ e.preventDefault();
2150
+ e.stopPropagation();
2151
+ var isSelectable = function (day) {
2152
+ return day.classList &&
2153
+ day.classList.contains("flatpickr-day") &&
2154
+ !day.classList.contains("flatpickr-disabled") &&
2155
+ !day.classList.contains("notAllowed");
2156
+ };
2157
+ var t = findParent(getEventTarget(e), isSelectable);
2158
+ if (t === undefined)
2159
+ return;
2160
+ var target = t;
2161
+ var selectedDate = (self.latestSelectedDateObj = new Date(target.dateObj.getTime()));
2162
+ var shouldChangeMonth = (selectedDate.getMonth() < self.currentMonth ||
2163
+ selectedDate.getMonth() >
2164
+ self.currentMonth + self.config.showMonths - 1) &&
2165
+ self.config.mode !== "range";
2166
+ self.selectedDateElem = target;
2167
+ if (self.config.mode === "single")
2168
+ self.selectedDates = [selectedDate];
2169
+ else if (self.config.mode === "multiple") {
2170
+ var selectedIndex = isDateSelected(selectedDate);
2171
+ if (selectedIndex)
2172
+ self.selectedDates.splice(parseInt(selectedIndex), 1);
2173
+ else
2174
+ self.selectedDates.push(selectedDate);
2175
+ }
2176
+ else if (self.config.mode === "range") {
2177
+ if (self.selectedDates.length === 2) {
2178
+ self.clear(false, false);
2179
+ }
2180
+ self.latestSelectedDateObj = selectedDate;
2181
+ self.selectedDates.push(selectedDate);
2182
+ // unless selecting same date twice, sort ascendingly
2183
+ if (compareDates(selectedDate, self.selectedDates[0], true) !== 0)
2184
+ self.selectedDates.sort(function (a, b) { return a.getTime() - b.getTime(); });
2185
+ }
2186
+ setHoursFromInputs();
2187
+ if (shouldChangeMonth) {
2188
+ var isNewYear = self.currentYear !== selectedDate.getFullYear();
2189
+ self.currentYear = selectedDate.getFullYear();
2190
+ self.currentMonth = selectedDate.getMonth();
2191
+ if (isNewYear) {
2192
+ triggerEvent("onYearChange");
2193
+ buildMonthSwitch();
2194
+ }
2195
+ triggerEvent("onMonthChange");
2196
+ }
2197
+ updateNavigationCurrentMonth();
2198
+ buildDays();
2199
+ updateValue();
2200
+ // maintain focus
2201
+ if (!shouldChangeMonth &&
2202
+ self.config.mode !== "range" &&
2203
+ self.config.showMonths === 1)
2204
+ focusOnDayElem(target);
2205
+ else if (self.selectedDateElem !== undefined &&
2206
+ self.hourElement === undefined) {
2207
+ self.selectedDateElem && self.selectedDateElem.focus();
2208
+ }
2209
+ if (self.hourElement !== undefined)
2210
+ self.hourElement !== undefined && self.hourElement.focus();
2211
+ if (self.config.closeOnSelect) {
2212
+ var single = self.config.mode === "single" && !self.config.enableTime;
2213
+ var range = self.config.mode === "range" &&
2214
+ self.selectedDates.length === 2 &&
2215
+ !self.config.enableTime;
2216
+ if (single || range) {
2217
+ focusAndClose();
2218
+ }
2219
+ }
2220
+ triggerChange();
2221
+ }
2222
+ var CALLBACKS = {
2223
+ locale: [setupLocale, updateWeekdays],
2224
+ showMonths: [buildMonths, setCalendarWidth, buildWeekdays],
2225
+ minDate: [jumpToDate],
2226
+ maxDate: [jumpToDate],
2227
+ clickOpens: [
2228
+ function () {
2229
+ if (self.config.clickOpens === true) {
2230
+ bind(self._input, "focus", self.open);
2231
+ bind(self._input, "click", self.open);
2232
+ }
2233
+ else {
2234
+ self._input.removeEventListener("focus", self.open);
2235
+ self._input.removeEventListener("click", self.open);
2236
+ }
2237
+ },
2238
+ ],
2239
+ };
2240
+ function set(option, value) {
2241
+ if (option !== null && typeof option === "object") {
2242
+ Object.assign(self.config, option);
2243
+ for (var key in option) {
2244
+ if (CALLBACKS[key] !== undefined)
2245
+ CALLBACKS[key].forEach(function (x) { return x(); });
2246
+ }
2247
+ }
2248
+ else {
2249
+ self.config[option] = value;
2250
+ if (CALLBACKS[option] !== undefined)
2251
+ CALLBACKS[option].forEach(function (x) { return x(); });
2252
+ else if (HOOKS.indexOf(option) > -1)
2253
+ self.config[option] = arrayify(value);
2254
+ }
2255
+ self.redraw();
2256
+ updateValue(true);
2257
+ }
2258
+ function setSelectedDate(inputDate, format) {
2259
+ var dates = [];
2260
+ if (inputDate instanceof Array)
2261
+ dates = inputDate.map(function (d) { return self.parseDate(d, format); });
2262
+ else if (inputDate instanceof Date || typeof inputDate === "number")
2263
+ dates = [self.parseDate(inputDate, format)];
2264
+ else if (typeof inputDate === "string") {
2265
+ switch (self.config.mode) {
2266
+ case "single":
2267
+ case "time":
2268
+ dates = [self.parseDate(inputDate, format)];
2269
+ break;
2270
+ case "multiple":
2271
+ dates = inputDate
2272
+ .split(self.config.conjunction)
2273
+ .map(function (date) { return self.parseDate(date, format); });
2274
+ break;
2275
+ case "range":
2276
+ dates = inputDate
2277
+ .split(self.l10n.rangeSeparator)
2278
+ .map(function (date) { return self.parseDate(date, format); });
2279
+ break;
2280
+ }
2281
+ }
2282
+ else
2283
+ self.config.errorHandler(new Error("Invalid date supplied: " + JSON.stringify(inputDate)));
2284
+ self.selectedDates = (self.config.allowInvalidPreload
2285
+ ? dates
2286
+ : dates.filter(function (d) { return d instanceof Date && isEnabled(d, false); }));
2287
+ if (self.config.mode === "range")
2288
+ self.selectedDates.sort(function (a, b) { return a.getTime() - b.getTime(); });
2289
+ }
2290
+ function setDate(date, triggerChange, format) {
2291
+ if (triggerChange === void 0) { triggerChange = false; }
2292
+ if (format === void 0) { format = self.config.dateFormat; }
2293
+ if ((date !== 0 && !date) || (date instanceof Array && date.length === 0))
2294
+ return self.clear(triggerChange);
2295
+ setSelectedDate(date, format);
2296
+ self.latestSelectedDateObj =
2297
+ self.selectedDates[self.selectedDates.length - 1];
2298
+ self.redraw();
2299
+ jumpToDate(undefined, triggerChange);
2300
+ setHoursFromDate();
2301
+ if (self.selectedDates.length === 0) {
2302
+ self.clear(false);
2303
+ }
2304
+ updateValue(triggerChange);
2305
+ if (triggerChange)
2306
+ triggerEvent("onChange");
2307
+ }
2308
+ function parseDateRules(arr) {
2309
+ return arr
2310
+ .slice()
2311
+ .map(function (rule) {
2312
+ if (typeof rule === "string" ||
2313
+ typeof rule === "number" ||
2314
+ rule instanceof Date) {
2315
+ return self.parseDate(rule, undefined, true);
2316
+ }
2317
+ else if (rule &&
2318
+ typeof rule === "object" &&
2319
+ rule.from &&
2320
+ rule.to)
2321
+ return {
2322
+ from: self.parseDate(rule.from, undefined),
2323
+ to: self.parseDate(rule.to, undefined),
2324
+ };
2325
+ return rule;
2326
+ })
2327
+ .filter(function (x) { return x; }); // remove falsy values
2328
+ }
2329
+ function setupDates() {
2330
+ self.selectedDates = [];
2331
+ self.now = self.parseDate(self.config.now) || new Date();
2332
+ // Workaround IE11 setting placeholder as the input's value
2333
+ var preloadedDate = self.config.defaultDate ||
2334
+ ((self.input.nodeName === "INPUT" ||
2335
+ self.input.nodeName === "TEXTAREA") &&
2336
+ self.input.placeholder &&
2337
+ self.input.value === self.input.placeholder
2338
+ ? null
2339
+ : self.input.value);
2340
+ if (preloadedDate)
2341
+ setSelectedDate(preloadedDate, self.config.dateFormat);
2342
+ self._initialDate =
2343
+ self.selectedDates.length > 0
2344
+ ? self.selectedDates[0]
2345
+ : self.config.minDate &&
2346
+ self.config.minDate.getTime() > self.now.getTime()
2347
+ ? self.config.minDate
2348
+ : self.config.maxDate &&
2349
+ self.config.maxDate.getTime() < self.now.getTime()
2350
+ ? self.config.maxDate
2351
+ : self.now;
2352
+ self.currentYear = self._initialDate.getFullYear();
2353
+ self.currentMonth = self._initialDate.getMonth();
2354
+ if (self.selectedDates.length > 0)
2355
+ self.latestSelectedDateObj = self.selectedDates[0];
2356
+ if (self.config.minTime !== undefined)
2357
+ self.config.minTime = self.parseDate(self.config.minTime, "H:i");
2358
+ if (self.config.maxTime !== undefined)
2359
+ self.config.maxTime = self.parseDate(self.config.maxTime, "H:i");
2360
+ self.minDateHasTime =
2361
+ !!self.config.minDate &&
2362
+ (self.config.minDate.getHours() > 0 ||
2363
+ self.config.minDate.getMinutes() > 0 ||
2364
+ self.config.minDate.getSeconds() > 0);
2365
+ self.maxDateHasTime =
2366
+ !!self.config.maxDate &&
2367
+ (self.config.maxDate.getHours() > 0 ||
2368
+ self.config.maxDate.getMinutes() > 0 ||
2369
+ self.config.maxDate.getSeconds() > 0);
2370
+ }
2371
+ function setupInputs() {
2372
+ self.input = getInputElem();
2373
+ /* istanbul ignore next */
2374
+ if (!self.input) {
2375
+ self.config.errorHandler(new Error("Invalid input element specified"));
2376
+ return;
2377
+ }
2378
+ // hack: store previous type to restore it after destroy()
2379
+ self.input._type = self.input.type;
2380
+ self.input.type = "text";
2381
+ self.input.classList.add("flatpickr-input");
2382
+ self._input = self.input;
2383
+ if (self.config.altInput) {
2384
+ // replicate self.element
2385
+ self.altInput = createElement(self.input.nodeName, self.config.altInputClass);
2386
+ self._input = self.altInput;
2387
+ self.altInput.placeholder = self.input.placeholder;
2388
+ self.altInput.disabled = self.input.disabled;
2389
+ self.altInput.required = self.input.required;
2390
+ self.altInput.tabIndex = self.input.tabIndex;
2391
+ self.altInput.type = "text";
2392
+ self.input.setAttribute("type", "hidden");
2393
+ if (!self.config.static && self.input.parentNode)
2394
+ self.input.parentNode.insertBefore(self.altInput, self.input.nextSibling);
2395
+ }
2396
+ if (!self.config.allowInput)
2397
+ self._input.setAttribute("readonly", "readonly");
2398
+ self._positionElement = self.config.positionElement || self._input;
2399
+ }
2400
+ function setupMobile() {
2401
+ var inputType = self.config.enableTime
2402
+ ? self.config.noCalendar
2403
+ ? "time"
2404
+ : "datetime-local"
2405
+ : "date";
2406
+ self.mobileInput = createElement("input", self.input.className + " flatpickr-mobile");
2407
+ self.mobileInput.tabIndex = 1;
2408
+ self.mobileInput.type = inputType;
2409
+ self.mobileInput.disabled = self.input.disabled;
2410
+ self.mobileInput.required = self.input.required;
2411
+ self.mobileInput.placeholder = self.input.placeholder;
2412
+ self.mobileFormatStr =
2413
+ inputType === "datetime-local"
2414
+ ? "Y-m-d\\TH:i:S"
2415
+ : inputType === "date"
2416
+ ? "Y-m-d"
2417
+ : "H:i:S";
2418
+ if (self.selectedDates.length > 0) {
2419
+ self.mobileInput.defaultValue = self.mobileInput.value = self.formatDate(self.selectedDates[0], self.mobileFormatStr);
2420
+ }
2421
+ if (self.config.minDate)
2422
+ self.mobileInput.min = self.formatDate(self.config.minDate, "Y-m-d");
2423
+ if (self.config.maxDate)
2424
+ self.mobileInput.max = self.formatDate(self.config.maxDate, "Y-m-d");
2425
+ if (self.input.getAttribute("step"))
2426
+ self.mobileInput.step = String(self.input.getAttribute("step"));
2427
+ self.input.type = "hidden";
2428
+ if (self.altInput !== undefined)
2429
+ self.altInput.type = "hidden";
2430
+ try {
2431
+ if (self.input.parentNode)
2432
+ self.input.parentNode.insertBefore(self.mobileInput, self.input.nextSibling);
2433
+ }
2434
+ catch (_a) { }
2435
+ bind(self.mobileInput, "change", function (e) {
2436
+ self.setDate(getEventTarget(e).value, false, self.mobileFormatStr);
2437
+ triggerEvent("onChange");
2438
+ triggerEvent("onClose");
2439
+ });
2440
+ }
2441
+ function toggle(e) {
2442
+ if (self.isOpen === true)
2443
+ return self.close();
2444
+ self.open(e);
2445
+ }
2446
+ function triggerEvent(event, data) {
2447
+ // If the instance has been destroyed already, all hooks have been removed
2448
+ if (self.config === undefined)
2449
+ return;
2450
+ var hooks = self.config[event];
2451
+ if (hooks !== undefined && hooks.length > 0) {
2452
+ for (var i = 0; hooks[i] && i < hooks.length; i++)
2453
+ hooks[i](self.selectedDates, self.input.value, self, data);
2454
+ }
2455
+ if (event === "onChange") {
2456
+ self.input.dispatchEvent(createEvent("change"));
2457
+ // many front-end frameworks bind to the input event
2458
+ self.input.dispatchEvent(createEvent("input"));
2459
+ }
2460
+ }
2461
+ function createEvent(name) {
2462
+ var e = document.createEvent("Event");
2463
+ e.initEvent(name, true, true);
2464
+ return e;
2465
+ }
2466
+ function isDateSelected(date) {
2467
+ for (var i = 0; i < self.selectedDates.length; i++) {
2468
+ if (compareDates(self.selectedDates[i], date) === 0)
2469
+ return "" + i;
2470
+ }
2471
+ return false;
2472
+ }
2473
+ function isDateInRange(date) {
2474
+ if (self.config.mode !== "range" || self.selectedDates.length < 2)
2475
+ return false;
2476
+ return (compareDates(date, self.selectedDates[0]) >= 0 &&
2477
+ compareDates(date, self.selectedDates[1]) <= 0);
2478
+ }
2479
+ function updateNavigationCurrentMonth() {
2480
+ if (self.config.noCalendar || self.isMobile || !self.monthNav)
2481
+ return;
2482
+ self.yearElements.forEach(function (yearElement, i) {
2483
+ var d = new Date(self.currentYear, self.currentMonth, 1);
2484
+ d.setMonth(self.currentMonth + i);
2485
+ if (self.config.showMonths > 1 ||
2486
+ self.config.monthSelectorType === "static") {
2487
+ self.monthElements[i].textContent =
2488
+ monthToStr(d.getMonth(), self.config.shorthandCurrentMonth, self.l10n) + " ";
2489
+ }
2490
+ else {
2491
+ self.monthsDropdownContainer.value = d.getMonth().toString();
2492
+ }
2493
+ yearElement.value = d.getFullYear().toString();
2494
+ });
2495
+ self._hidePrevMonthArrow =
2496
+ self.config.minDate !== undefined &&
2497
+ (self.currentYear === self.config.minDate.getFullYear()
2498
+ ? self.currentMonth <= self.config.minDate.getMonth()
2499
+ : self.currentYear < self.config.minDate.getFullYear());
2500
+ self._hideNextMonthArrow =
2501
+ self.config.maxDate !== undefined &&
2502
+ (self.currentYear === self.config.maxDate.getFullYear()
2503
+ ? self.currentMonth + 1 > self.config.maxDate.getMonth()
2504
+ : self.currentYear > self.config.maxDate.getFullYear());
2505
+ }
2506
+ function getDateStr(format) {
2507
+ return self.selectedDates
2508
+ .map(function (dObj) { return self.formatDate(dObj, format); })
2509
+ .filter(function (d, i, arr) {
2510
+ return self.config.mode !== "range" ||
2511
+ self.config.enableTime ||
2512
+ arr.indexOf(d) === i;
2513
+ })
2514
+ .join(self.config.mode !== "range"
2515
+ ? self.config.conjunction
2516
+ : self.l10n.rangeSeparator);
2517
+ }
2518
+ /**
2519
+ * Updates the values of inputs associated with the calendar
2520
+ */
2521
+ function updateValue(triggerChange) {
2522
+ if (triggerChange === void 0) { triggerChange = true; }
2523
+ if (self.mobileInput !== undefined && self.mobileFormatStr) {
2524
+ self.mobileInput.value =
2525
+ self.latestSelectedDateObj !== undefined
2526
+ ? self.formatDate(self.latestSelectedDateObj, self.mobileFormatStr)
2527
+ : "";
2528
+ }
2529
+ self.input.value = getDateStr(self.config.dateFormat);
2530
+ if (self.altInput !== undefined) {
2531
+ self.altInput.value = getDateStr(self.config.altFormat);
2532
+ }
2533
+ if (triggerChange !== false)
2534
+ triggerEvent("onValueUpdate");
2535
+ }
2536
+ function onMonthNavClick(e) {
2537
+ var eventTarget = getEventTarget(e);
2538
+ var isPrevMonth = self.prevMonthNav.contains(eventTarget);
2539
+ var isNextMonth = self.nextMonthNav.contains(eventTarget);
2540
+ if (isPrevMonth || isNextMonth) {
2541
+ changeMonth(isPrevMonth ? -1 : 1);
2542
+ }
2543
+ else if (self.yearElements.indexOf(eventTarget) >= 0) {
2544
+ eventTarget.select();
2545
+ }
2546
+ else if (eventTarget.classList.contains("arrowUp")) {
2547
+ self.changeYear(self.currentYear + 1);
2548
+ }
2549
+ else if (eventTarget.classList.contains("arrowDown")) {
2550
+ self.changeYear(self.currentYear - 1);
2551
+ }
2552
+ }
2553
+ function timeWrapper(e) {
2554
+ e.preventDefault();
2555
+ var isKeyDown = e.type === "keydown", eventTarget = getEventTarget(e), input = eventTarget;
2556
+ if (self.amPM !== undefined && eventTarget === self.amPM) {
2557
+ self.amPM.textContent =
2558
+ self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];
2559
+ }
2560
+ var min = parseFloat(input.getAttribute("min")), max = parseFloat(input.getAttribute("max")), step = parseFloat(input.getAttribute("step")), curValue = parseInt(input.value, 10), delta = e.delta ||
2561
+ (isKeyDown ? (e.which === 38 ? 1 : -1) : 0);
2562
+ var newValue = curValue + step * delta;
2563
+ if (typeof input.value !== "undefined" && input.value.length === 2) {
2564
+ var isHourElem = input === self.hourElement, isMinuteElem = input === self.minuteElement;
2565
+ if (newValue < min) {
2566
+ newValue =
2567
+ max +
2568
+ newValue +
2569
+ int(!isHourElem) +
2570
+ (int(isHourElem) && int(!self.amPM));
2571
+ if (isMinuteElem)
2572
+ incrementNumInput(undefined, -1, self.hourElement);
2573
+ }
2574
+ else if (newValue > max) {
2575
+ newValue =
2576
+ input === self.hourElement ? newValue - max - int(!self.amPM) : min;
2577
+ if (isMinuteElem)
2578
+ incrementNumInput(undefined, 1, self.hourElement);
2579
+ }
2580
+ if (self.amPM &&
2581
+ isHourElem &&
2582
+ (step === 1
2583
+ ? newValue + curValue === 23
2584
+ : Math.abs(newValue - curValue) > step)) {
2585
+ self.amPM.textContent =
2586
+ self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];
2587
+ }
2588
+ input.value = pad(newValue);
2589
+ }
2590
+ }
2591
+ init();
2592
+ return self;
2593
+ }
2594
+ /* istanbul ignore next */
2595
+ function _flatpickr(nodeList, config) {
2596
+ // static list
2597
+ var nodes = Array.prototype.slice
2598
+ .call(nodeList)
2599
+ .filter(function (x) { return x instanceof HTMLElement; });
2600
+ var instances = [];
2601
+ for (var i = 0; i < nodes.length; i++) {
2602
+ var node = nodes[i];
2603
+ try {
2604
+ if (node.getAttribute("data-fp-omit") !== null)
2605
+ continue;
2606
+ if (node._flatpickr !== undefined) {
2607
+ node._flatpickr.destroy();
2608
+ node._flatpickr = undefined;
2609
+ }
2610
+ node._flatpickr = FlatpickrInstance(node, config || {});
2611
+ instances.push(node._flatpickr);
2612
+ }
2613
+ catch (e) {
2614
+ console.error(e);
2615
+ }
2616
+ }
2617
+ return instances.length === 1 ? instances[0] : instances;
2618
+ }
2619
+ /* istanbul ignore next */
2620
+ if (typeof HTMLElement !== "undefined" &&
2621
+ typeof HTMLCollection !== "undefined" &&
2622
+ typeof NodeList !== "undefined") {
2623
+ // browser env
2624
+ HTMLCollection.prototype.flatpickr = NodeList.prototype.flatpickr = function (config) {
2625
+ return _flatpickr(this, config);
2626
+ };
2627
+ HTMLElement.prototype.flatpickr = function (config) {
2628
+ return _flatpickr([this], config);
2629
+ };
2630
+ }
2631
+ /* istanbul ignore next */
2632
+ var flatpickr = function (selector, config) {
2633
+ if (typeof selector === "string") {
2634
+ return _flatpickr(window.document.querySelectorAll(selector), config);
2635
+ }
2636
+ else if (selector instanceof Node) {
2637
+ return _flatpickr([selector], config);
2638
+ }
2639
+ else {
2640
+ return _flatpickr(selector, config);
2641
+ }
2642
+ };
2643
+ /* istanbul ignore next */
2644
+ flatpickr.defaultConfig = {};
2645
+ flatpickr.l10ns = {
2646
+ en: __assign({}, english),
2647
+ default: __assign({}, english),
2648
+ };
2649
+ flatpickr.localize = function (l10n) {
2650
+ flatpickr.l10ns.default = __assign(__assign({}, flatpickr.l10ns.default), l10n);
2651
+ };
2652
+ flatpickr.setDefaults = function (config) {
2653
+ flatpickr.defaultConfig = __assign(__assign({}, flatpickr.defaultConfig), config);
2654
+ };
2655
+ flatpickr.parseDate = createDateParser({});
2656
+ flatpickr.formatDate = createDateFormatter({});
2657
+ flatpickr.compareDates = compareDates;
2658
+ /* istanbul ignore next */
2659
+ if (typeof jQuery !== "undefined" && typeof jQuery.fn !== "undefined") {
2660
+ jQuery.fn.flatpickr = function (config) {
2661
+ return _flatpickr(this, config);
2662
+ };
2663
+ }
2664
+ Date.prototype.fp_incr = function (days) {
2665
+ return new Date(this.getFullYear(), this.getMonth(), this.getDate() + (typeof days === "string" ? parseInt(days, 10) : days));
2666
+ };
2667
+ if (typeof window !== "undefined") {
2668
+ window.flatpickr = flatpickr;
2669
+ }
2670
+
2671
+ return flatpickr;
2672
+
2673
+ })));
2674
+ ;/**
2675
  *
2676
  * jQuery Chosen AJAX Autocomplete Library
2677
  *
vendor/codestar-framework/assets/js/plugins.min.js CHANGED
@@ -1,3 +1,3 @@
1
- /* Codestar Framework | A Simple and Lightweight WordPress Option Framework - v2.2.5*/
2
 
3
- !function(o){function e(t,e){this.element=o(t),this.options=e,this.init()}e.prototype.init=function(){this.element.chosen(this.options),this.container=this.element.next(".chosen-container"),this.search_field=this.container.find(".chosen-search-input"),this.is_multiple=this.container.hasClass("chosen-container-multi"),this.is_typing=!1,this.chosenXhr=null,this.events()},e.prototype.events=function(){var t=this;this.search_field.on("compositionstart",function(){t.is_typing=!0}),this.search_field.on("compositionend",function(){t.is_typing=!1,t.update_list()}),this.search_field.on("keyup",function(){t.update_list()}),this.search_field.on("focus",function(){t.search_field_focused()})},e.prototype.search_field_focused=function(){this.search_welcome_message(),0===this.options.min_length&&0===this.search_field.val().length&&this.update_list()},e.prototype.search_welcome_message=function(){var t=o.trim(this.search_field.val()),e=this.container.find(".chosen-results");0===e.children().length&&0===t.length&&e.html('<li class="no-results">'+this.options.typing_text.replace("%s",this.options.min_length-t.length)+"</li>")},e.prototype.update_list=function(){var e=this;if(this.search_welcome_message(),!this.is_typing){var t=o.trim(this.search_field.val()),s=t.length<this.options.min_length?this.options.typing_text.replace("%s",this.options.min_length-t.length):this.options.searching_text;this.container.find(".no-results").text(s),t!==this.search_field.data("prevVal")&&(this.search_field.data("prevVal",t),this.timer&&clearTimeout(this.timer),t.length<this.options.min_length||(this.timer=setTimeout(function(){e.chosenXhr&&e.chosenXhr.abort(),e.options.data.term=t,e.chosenXhr=window.wp.ajax.post("csf-chosen",e.options.data).done(function(t){e.show_results(t)}).fail(function(t){e.container.find(".no-results").text(t.error)})},this.options.type_delay)))}},e.prototype.show_results=function(t){var s=this;if(!this.is_typing&&null!==t){if(0===t.length)return this.element.data().chosen.no_results_clear(),void this.element.data().chosen.no_results(this.search_field.val());var i=[];this.element.find("option").each(function(){o(this).is(":selected")?i.push(o(this).val()+"-"+o(this).text()):o(this).attr("value").length&&o(this).remove()}),o.each(t,function(t,e){-1===o.inArray(e.value+"-"+e.text,i)&&o("<option />").attr("value",e.value).html(e.text).appendTo(s.element)});var e=this.search_field.val(),n=this.search_field.innerWidth();if(this.element.trigger("chosen:updated"),this.is_multiple){var r=this.element.parent().find(".csf-hide-select").val()||[];this.element.CSFChosenOrder(r,!0),this.search_field.css("width",n)}this.search_field.val(e),null!==this.chosenXhr.done&&this.chosenXhr.done(t)}},o.fn.CSFAjaxChosen=function(t){return this.each(function(){new e(this,t)})}}(jQuery),function(){var s,i,o=[].indexOf||function(t){for(var e=0,s=this.length;e<s;e++)if(e in this&&this[e]===t)return e;return-1},n={}.hasOwnProperty;i=function(){function t(){}return t.insertAt=function(t,e,s){return s.insertBefore(t,s.children[e].nextSibling)},t.getFlattenedOptionsAndGroups=function(t){var e,s,i,n,r,o,h,l,c;for(e=[],o=0,l=(i=Array.prototype.filter.call(t.childNodes,function(t){var e;return"OPTION"===(e=t.nodeName.toUpperCase())||"OPTGROUP"===e})).length;o<l;o++)if(s=i[o],e.push(s),"OPTGROUP"===s.nodeName.toUpperCase())for(h=0,c=(r=Array.prototype.filter.call(s.childNodes,function(t){return"OPTION"===t.nodeName.toUpperCase()})).length;h<c;h++)n=r[h],e.push(n);return e},t.isValidMultipleSelectElement=function(t){return null!=t&&"SELECT"===t.nodeName&&t.multiple},t.getChosenUIContainer=function(t){return""!==t.id?document.getElementById(t.id.replace(/-/g,"_")+"_chosen"):this.searchChosenUIContainer(t)},t.isChosenified=function(t){return null!=this.getChosenUIContainer(t)},t.forceSelection=function(t,e){var s,i,n,r;for(n=this.getFlattenedOptionsAndGroups(t),s=0;s<n.length;)r=(i=n[s]).getAttribute("value"),0<=o.call(e,r)?(i.selected=!0,i.setAttribute("selected","")):(i.selected=!1,i.removeAttribute("selected")),s++;return this.triggerEvent(t,"chosen:updated")},t.CSFChosenOrder=function(t,e,s){var i,n,r,o,h,l,c,a,u,_,d,p,f,g;if(null!=this.getDOMElement&&(t=this.getDOMElement(t)),this.isValidMultipleSelectElement(t)&&null!=(n=this.getChosenUIContainer(t))&&e instanceof Array){for(e=e.map(Function.prototype.call,String.prototype.trim),c=this.getFlattenedOptionsAndGroups(t),null!=s&&!0===s&&this.forceSelection(t,e),g=[],r=_=0,p=e.length;_<p;r=++_){for(h=e[r],a=null,o=d=0,f=c.length;d<f;o=++d)c[o].value===h&&(a=o);i=n.querySelectorAll(".search-choice"),u=this.relAttributeName,null!=(l=Array.prototype.filter.call(i,function(t){return null!=t.querySelector("a.search-choice-close["+u+'="'+a+'"]')})[0])&&(n.querySelector("ul.chosen-choices"),g.push(this.insertAt(l,r,n.querySelector("ul.chosen-choices"))))}return g}},t}(),(s=jQuery).fn.extend({CSFChosenOrder:function(t,e){return _CSFChosenOrder.CSFChosenOrder(this,t,e)}}),this._CSFChosenOrder=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return function(t,e){for(var s in e)n.call(e,s)&&(t[s]=e[s]);function i(){this.constructor=t}i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype}(e,i),e.relAttributeName="data-option-array-index",e.isjQueryObject=function(t){return"undefined"!=typeof jQuery&&null!==jQuery&&t instanceof jQuery},e.getDOMElement=function(t){return this.isjQueryObject(t)?t.get(0):t},e.searchChosenUIContainer=function(t){return null!=s(t).data("chosen")?s(t).data("chosen").container[0]:s(t).next(".chosen-container.chosen-container-multi").get(0)},e.triggerEvent=function(t,e){return s(t).trigger(e)},e}()}.call(this),function(){var h,s,n,o,r={}.hasOwnProperty;(o=function(){function t(){this.options_index=0,this.parsed=[]}return t.prototype.add_node=function(t){return"OPTGROUP"===t.nodeName.toUpperCase()?this.add_group(t):this.add_option(t)},t.prototype.add_group=function(t){var e,s,i,n,r,o;for(e=this.parsed.length,this.parsed.push({array_index:e,group:!0,label:t.label,title:t.title?t.title:void 0,children:0,disabled:t.disabled,classes:t.className}),o=[],s=0,i=(r=t.childNodes).length;s<i;s++)n=r[s],o.push(this.add_option(n,e,t.disabled));return o},t.prototype.add_option=function(t,e,s){if("OPTION"===t.nodeName.toUpperCase())return""!==t.text?(null!=e&&(this.parsed[e].children+=1),this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,value:t.value,text:t.text,html:t.innerHTML,title:t.title?t.title:void 0,selected:t.selected,disabled:!0===s?s:t.disabled,group_array_index:e,group_label:null!=e?this.parsed[e].label:null,classes:t.className,style:t.style.cssText})):this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,empty:!0}),this.options_index+=1},t}()).select_to_array=function(t){var e,s,i,n,r;for(n=new o,s=0,i=(r=t.childNodes).length;s<i;s++)e=r[s],n.add_node(e);return n.parsed},s=function(){function n(t,e){var s,i;this.form_field=t,this.options=null!=e?e:{},this.label_click_handler=(s=this.label_click_handler,i=this,function(){return s.apply(i,arguments)}),n.browser_is_supported()&&(this.is_multiple=this.form_field.multiple,this.set_default_text(),this.set_default_values(),this.setup(),this.set_up_html(),this.register_observers(),this.on_ready())}return n.prototype.set_default_values=function(){var e,s;return this.click_test_action=(e=this,function(t){return e.test_active_click(t)}),this.activate_action=(s=this,function(t){return s.activate_field(t)}),this.active_field=!1,this.mouse_on_container=!1,this.results_showing=!1,this.result_highlighted=null,this.is_rtl=this.options.rtl||/\bchosen-rtl\b/.test(this.form_field.className),this.allow_single_deselect=null!=this.options.allow_single_deselect&&null!=this.form_field.options[0]&&""===this.form_field.options[0].text&&this.options.allow_single_deselect,this.disable_search_threshold=this.options.disable_search_threshold||0,this.disable_search=this.options.disable_search||!1,this.enable_split_word_search=null==this.options.enable_split_word_search||this.options.enable_split_word_search,this.group_search=null==this.options.group_search||this.options.group_search,this.search_contains=this.options.search_contains||!1,this.single_backstroke_delete=null==this.options.single_backstroke_delete||this.options.single_backstroke_delete,this.max_selected_options=this.options.max_selected_options||1/0,this.inherit_select_classes=this.options.inherit_select_classes||!1,this.display_selected_options=null==this.options.display_selected_options||this.options.display_selected_options,this.display_disabled_options=null==this.options.display_disabled_options||this.options.display_disabled_options,this.include_group_label_in_selected=this.options.include_group_label_in_selected||!1,this.max_shown_results=this.options.max_shown_results||Number.POSITIVE_INFINITY,this.case_sensitive_search=this.options.case_sensitive_search||!1,this.hide_results_on_select=null==this.options.hide_results_on_select||this.options.hide_results_on_select},n.prototype.set_default_text=function(){return this.form_field.getAttribute("data-placeholder")?this.default_text=this.form_field.getAttribute("data-placeholder"):this.is_multiple?this.default_text=this.options.placeholder_text_multiple||this.options.placeholder_text||n.default_multiple_text:this.default_text=this.options.placeholder_text_single||this.options.placeholder_text||n.default_single_text,this.default_text=this.escape_html(this.default_text),this.results_none_found=this.form_field.getAttribute("data-no_results_text")||this.options.no_results_text||n.default_no_result_text},n.prototype.choice_label=function(t){return this.include_group_label_in_selected&&null!=t.group_label?"<b class='group-name'>"+this.escape_html(t.group_label)+"</b>"+t.html:t.html},n.prototype.mouse_enter=function(){return this.mouse_on_container=!0},n.prototype.mouse_leave=function(){return this.mouse_on_container=!1},n.prototype.input_focus=function(t){if(this.is_multiple){if(!this.active_field)return setTimeout((e=this,function(){return e.container_mousedown()}),50)}else if(!this.active_field)return this.activate_field();var e},n.prototype.input_blur=function(t){if(!this.mouse_on_container)return this.active_field=!1,setTimeout((e=this,function(){return e.blur_test()}),100);var e},n.prototype.label_click_handler=function(t){return this.is_multiple?this.container_mousedown(t):this.activate_field()},n.prototype.results_option_build=function(t){var e,s,i,n,r,o,h;for(e="",n=h=0,r=(o=this.results_data).length;n<r&&((i="")!==(i=(s=o[n]).group?this.result_add_group(s):this.result_add_option(s))&&(h++,e+=i),(null!=t?t.first:void 0)&&(s.selected&&this.is_multiple?this.choice_build(s):s.selected&&!this.is_multiple&&this.single_set_selected_text(this.choice_label(s))),!(h>=this.max_shown_results));n++);return e},n.prototype.result_add_option=function(t){var e,s;return t.search_match&&this.include_option_in_results(t)?(e=[],t.disabled||t.selected&&this.is_multiple||e.push("active-result"),!t.disabled||t.selected&&this.is_multiple||e.push("disabled-result"),t.selected&&e.push("result-selected"),null!=t.group_array_index&&e.push("group-option"),""!==t.classes&&e.push(t.classes),(s=document.createElement("li")).className=e.join(" "),t.style&&(s.style.cssText=t.style),s.setAttribute("data-option-array-index",t.array_index),s.innerHTML=t.highlighted_html||t.html,t.title&&(s.title=t.title),this.outerHTML(s)):""},n.prototype.result_add_group=function(t){var e,s;return(t.search_match||t.group_match)&&0<t.active_options?((e=[]).push("group-result"),t.classes&&e.push(t.classes),(s=document.createElement("li")).className=e.join(" "),s.innerHTML=t.highlighted_html||this.escape_html(t.label),t.title&&(s.title=t.title),this.outerHTML(s)):""},n.prototype.results_update_field=function(){if(this.set_default_text(),this.is_multiple||this.results_reset_cleanup(),this.result_clear_highlight(),this.results_build(),this.results_showing)return this.winnow_results()},n.prototype.reset_single_select_options=function(){var t,e,s,i,n;for(n=[],t=0,e=(s=this.results_data).length;t<e;t++)(i=s[t]).selected?n.push(i.selected=!1):n.push(void 0);return n},n.prototype.results_toggle=function(){return this.results_showing?this.results_hide():this.results_show()},n.prototype.results_search=function(t){return this.results_showing?this.winnow_results():this.results_show()},n.prototype.winnow_results=function(t){var e,s,i,n,r,o,h,l,c,a,u,_,d,p,f;for(this.no_results_clear(),a=0,e=(h=this.get_search_text()).replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),c=this.get_search_regex(e),i=0,n=(l=this.results_data).length;i<n;i++)(r=l[i]).search_match=!1,_=u=null,r.highlighted_html="",this.include_option_in_results(r)&&(r.group&&(r.group_match=!1,r.active_options=0),null!=r.group_array_index&&this.results_data[r.group_array_index]&&(0===(u=this.results_data[r.group_array_index]).active_options&&u.search_match&&(a+=1),u.active_options+=1),f=r.group?r.label:r.text,r.group&&!this.group_search||(_=this.search_string_match(f,c),r.search_match=null!=_,r.search_match&&!r.group&&(a+=1),r.search_match?(h.length&&(d=_.index,o=f.slice(0,d),s=f.slice(d,d+h.length),p=f.slice(d+h.length),r.highlighted_html=this.escape_html(o)+"<em>"+this.escape_html(s)+"</em>"+this.escape_html(p)),null!=u&&(u.group_match=!0)):null!=r.group_array_index&&this.results_data[r.group_array_index].search_match&&(r.search_match=!0)));return this.result_clear_highlight(),a<1&&h.length?(this.update_results_content(""),this.no_results(h)):(this.update_results_content(this.results_option_build()),(null!=t?t.skip_highlight:void 0)?void 0:this.winnow_results_set_highlight())},n.prototype.get_search_regex=function(t){var e,s;return s=this.search_contains?t:"(^|\\s|\\b)"+t+"[^\\s]*",this.enable_split_word_search||this.search_contains||(s="^"+s),e=this.case_sensitive_search?"":"i",new RegExp(s,e)},n.prototype.search_string_match=function(t,e){var s;return s=e.exec(t),!this.search_contains&&(null!=s?s[1]:void 0)&&(s.index+=1),s},n.prototype.choices_count=function(){var t,e,s;if(null!=this.selected_option_count)return this.selected_option_count;for(t=this.selected_option_count=0,e=(s=this.form_field.options).length;t<e;t++)s[t].selected&&(this.selected_option_count+=1);return this.selected_option_count},n.prototype.choices_click=function(t){if(t.preventDefault(),this.activate_field(),!this.results_showing&&!this.is_disabled)return this.results_show()},n.prototype.keydown_checker=function(t){var e,s;switch(s=null!=(e=t.which)?e:t.keyCode,this.search_field_scale(),8!==s&&this.pending_backstroke&&this.clear_backstroke(),s){case 8:this.backstroke_length=this.get_search_field_value().length;break;case 9:this.results_showing&&!this.is_multiple&&this.result_select(t),this.mouse_on_container=!1;break;case 13:case 27:this.results_showing&&t.preventDefault();break;case 32:this.disable_search&&t.preventDefault();break;case 38:t.preventDefault(),this.keyup_arrow();break;case 40:t.preventDefault(),this.keydown_arrow()}},n.prototype.keyup_checker=function(t){var e,s;switch(s=null!=(e=t.which)?e:t.keyCode,this.search_field_scale(),s){case 8:this.is_multiple&&this.backstroke_length<1&&0<this.choices_count()?this.keydown_backstroke():this.pending_backstroke||(this.result_clear_highlight(),this.results_search());break;case 13:t.preventDefault(),this.results_showing&&this.result_select(t);break;case 27:this.results_showing&&this.results_hide();break;case 9:case 16:case 17:case 18:case 38:case 40:case 91:break;default:this.results_search()}},n.prototype.clipboard_event_checker=function(t){var e;if(!this.is_disabled)return setTimeout((e=this,function(){return e.results_search()}),50)},n.prototype.container_width=function(){return null!=this.options.width?this.options.width:this.form_field.offsetWidth+"px"},n.prototype.include_option_in_results=function(t){return!(this.is_multiple&&!this.display_selected_options&&t.selected)&&(!(!this.display_disabled_options&&t.disabled)&&!t.empty)},n.prototype.search_results_touchstart=function(t){return this.touch_started=!0,this.search_results_mouseover(t)},n.prototype.search_results_touchmove=function(t){return this.touch_started=!1,this.search_results_mouseout(t)},n.prototype.search_results_touchend=function(t){if(this.touch_started)return this.search_results_mouseup(t)},n.prototype.outerHTML=function(t){var e;return t.outerHTML?t.outerHTML:((e=document.createElement("div")).appendChild(t),e.innerHTML)},n.prototype.get_single_html=function(){return'<a class="chosen-single chosen-default">\n <span>'+this.default_text+'</span>\n <div><b></b></div>\n</a>\n<div class="chosen-drop">\n <div class="chosen-search">\n <input class="chosen-search-input" type="text" autocomplete="off" />\n </div>\n <ul class="chosen-results"></ul>\n</div>'},n.prototype.get_multi_html=function(){return'<ul class="chosen-choices">\n <li class="search-field">\n <input class="chosen-search-input" type="text" autocomplete="off" value="'+this.default_text+'" />\n </li>\n</ul>\n<div class="chosen-drop">\n <ul class="chosen-results"></ul>\n</div>'},n.prototype.get_no_results_html=function(t){return'<li class="no-results">\n '+this.results_none_found+" <span>"+this.escape_html(t)+"</span>\n</li>"},n.browser_is_supported=function(){return"Microsoft Internet Explorer"===window.navigator.appName?8<=document.documentMode:!(/iP(od|hone)/i.test(window.navigator.userAgent)||/IEMobile/i.test(window.navigator.userAgent)||/Windows Phone/i.test(window.navigator.userAgent)||/BlackBerry/i.test(window.navigator.userAgent)||/BB10/i.test(window.navigator.userAgent)||/Android.*Mobile/i.test(window.navigator.userAgent))},n.default_multiple_text="Select Some Options",n.default_single_text="Select an Option",n.default_no_result_text="No results match",n}(),(h=jQuery).fn.extend({chosen:function(i){return s.browser_is_supported()?this.each(function(t){var e,s;s=(e=h(this)).data("chosen"),"destroy"!==i?s instanceof n||e.data("chosen",new n(this,i)):s instanceof n&&s.destroy()}):this}}),n=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return function(t,e){for(var s in e)r.call(e,s)&&(t[s]=e[s]);function i(){this.constructor=t}i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype}(e,s),e.prototype.setup=function(){return this.form_field_jq=h(this.form_field),this.current_selectedIndex=this.form_field.selectedIndex},e.prototype.set_up_html=function(){var t,e;return(t=["chosen-container"]).push("chosen-container-"+(this.is_multiple?"multi":"single")),this.inherit_select_classes&&this.form_field.className&&t.push(this.form_field.className),this.is_rtl&&t.push("chosen-rtl"),e={class:t.join(" "),title:this.form_field.title},this.form_field.id.length&&(e.id=this.form_field.id.replace(/[^\w]/g,"_")+"_chosen"),this.container=h("<div />",e),this.container.width(this.container_width()),this.is_multiple?this.container.html(this.get_multi_html()):this.container.html(this.get_single_html()),this.form_field_jq.hide().after(this.container),this.dropdown=this.container.find("div.chosen-drop").first(),this.search_field=this.container.find("input").first(),this.search_results=this.container.find("ul.chosen-results").first(),this.search_field_scale(),this.search_no_results=this.container.find("li.no-results").first(),this.is_multiple?(this.search_choices=this.container.find("ul.chosen-choices").first(),this.search_container=this.container.find("li.search-field").first()):(this.search_container=this.container.find("div.chosen-search").first(),this.selected_item=this.container.find(".chosen-single").first()),this.results_build(),this.set_tab_index(),this.set_label_behavior()},e.prototype.on_ready=function(){return this.form_field_jq.trigger("chosen:ready",{chosen:this})},e.prototype.register_observers=function(){var e,s,i,n,r,o,h,l,c,a,u,_,d,p,f,g,m,v,y,b,w,x,k,C;return this.container.on("touchstart.chosen",(e=this,function(t){e.container_mousedown(t)})),this.container.on("touchend.chosen",(s=this,function(t){s.container_mouseup(t)})),this.container.on("mousedown.chosen",(i=this,function(t){i.container_mousedown(t)})),this.container.on("mouseup.chosen",(n=this,function(t){n.container_mouseup(t)})),this.container.on("mouseenter.chosen",(r=this,function(t){r.mouse_enter(t)})),this.container.on("mouseleave.chosen",(o=this,function(t){o.mouse_leave(t)})),this.search_results.on("mouseup.chosen",(h=this,function(t){h.search_results_mouseup(t)})),this.search_results.on("mouseover.chosen",(l=this,function(t){l.search_results_mouseover(t)})),this.search_results.on("mouseout.chosen",(c=this,function(t){c.search_results_mouseout(t)})),this.search_results.on("mousewheel.chosen DOMMouseScroll.chosen",(a=this,function(t){a.search_results_mousewheel(t)})),this.search_results.on("touchstart.chosen",(u=this,function(t){u.search_results_touchstart(t)})),this.search_results.on("touchmove.chosen",(_=this,function(t){_.search_results_touchmove(t)})),this.search_results.on("touchend.chosen",(d=this,function(t){d.search_results_touchend(t)})),this.form_field_jq.on("chosen:updated.chosen",(p=this,function(t){p.results_update_field(t)})),this.form_field_jq.on("chosen:activate.chosen",(f=this,function(t){f.activate_field(t)})),this.form_field_jq.on("chosen:open.chosen",(g=this,function(t){g.container_mousedown(t)})),this.form_field_jq.on("chosen:close.chosen",(m=this,function(t){m.close_field(t)})),this.search_field.on("blur.chosen",(v=this,function(t){v.input_blur(t)})),this.search_field.on("keyup.chosen",(y=this,function(t){y.keyup_checker(t)})),this.search_field.on("keydown.chosen",(b=this,function(t){b.keydown_checker(t)})),this.search_field.on("focus.chosen",(w=this,function(t){w.input_focus(t)})),this.search_field.on("cut.chosen",(x=this,function(t){x.clipboard_event_checker(t)})),this.search_field.on("paste.chosen",(k=this,function(t){k.clipboard_event_checker(t)})),this.is_multiple?this.search_choices.on("click.chosen",(C=this,function(t){C.choices_click(t)})):this.container.on("click.chosen",function(t){t.preventDefault()})},e.prototype.destroy=function(){return h(this.container[0].ownerDocument).off("click.chosen",this.click_test_action),0<this.form_field_label.length&&this.form_field_label.off("click.chosen"),this.search_field[0].tabIndex&&(this.form_field_jq[0].tabIndex=this.search_field[0].tabIndex),this.container.remove(),this.form_field_jq.removeData("chosen"),this.form_field_jq.show()},e.prototype.search_field_disabled=function(){return this.is_disabled=this.form_field.disabled||this.form_field_jq.parents("fieldset").is(":disabled"),this.container.toggleClass("chosen-disabled",this.is_disabled),this.search_field[0].disabled=this.is_disabled,this.is_multiple||this.selected_item.off("focus.chosen",this.activate_field),this.is_disabled?this.close_field():this.is_multiple?void 0:this.selected_item.on("focus.chosen",this.activate_field)},e.prototype.container_mousedown=function(t){var e;if(!this.is_disabled)return!t||"mousedown"!==(e=t.type)&&"touchstart"!==e||this.results_showing||t.preventDefault(),null!=t&&h(t.target).hasClass("search-choice-close")?void 0:(this.active_field?this.is_multiple||!t||h(t.target)[0]!==this.selected_item[0]&&!h(t.target).parents("a.chosen-single").length||(t.preventDefault(),this.results_toggle()):(this.is_multiple&&this.search_field.val(""),h(this.container[0].ownerDocument).on("click.chosen",this.click_test_action),this.results_show()),this.activate_field())},e.prototype.container_mouseup=function(t){if("ABBR"===t.target.nodeName&&!this.is_disabled)return this.results_reset(t)},e.prototype.search_results_mousewheel=function(t){var e;if(t.originalEvent&&(e=t.originalEvent.deltaY||-t.originalEvent.wheelDelta||t.originalEvent.detail),null!=e)return t.preventDefault(),"DOMMouseScroll"===t.type&&(e*=40),this.search_results.scrollTop(e+this.search_results.scrollTop())},e.prototype.blur_test=function(t){if(!this.active_field&&this.container.hasClass("chosen-container-active"))return this.close_field()},e.prototype.close_field=function(){return h(this.container[0].ownerDocument).off("click.chosen",this.click_test_action),this.active_field=!1,this.results_hide(),this.container.removeClass("chosen-container-active"),this.clear_backstroke(),this.show_search_field_default(),this.search_field_scale(),this.search_field.blur()},e.prototype.activate_field=function(){if(!this.is_disabled)return this.container.addClass("chosen-container-active"),this.active_field=!0,this.search_field.val(this.search_field.val()),this.search_field.focus()},e.prototype.test_active_click=function(t){var e;return(e=h(t.target).closest(".chosen-container")).length&&this.container[0]===e[0]?this.active_field=!0:this.close_field()},e.prototype.results_build=function(){return this.parsing=!0,this.selected_option_count=null,this.results_data=o.select_to_array(this.form_field),this.is_multiple?this.search_choices.find("li.search-choice").remove():(this.single_set_selected_text(),this.disable_search||this.form_field.options.length<=this.disable_search_threshold?(this.search_field[0].readOnly=!0,this.container.addClass("chosen-container-single-nosearch")):(this.search_field[0].readOnly=!1,this.container.removeClass("chosen-container-single-nosearch"))),this.update_results_content(this.results_option_build({first:!0})),this.search_field_disabled(),this.show_search_field_default(),this.search_field_scale(),this.parsing=!1},e.prototype.result_do_highlight=function(t){var e,s,i,n;if(t.length){if(this.result_clear_highlight(),this.result_highlight=t,this.result_highlight.addClass("highlighted"),(i=parseInt(this.search_results.css("maxHeight"),10))+(n=this.search_results.scrollTop())<=(e=(s=this.result_highlight.position().top+this.search_results.scrollTop())+this.result_highlight.outerHeight()))return this.search_results.scrollTop(0<e-i?e-i:0);if(s<n)return this.search_results.scrollTop(s)}},e.prototype.result_clear_highlight=function(){return this.result_highlight&&this.result_highlight.removeClass("highlighted"),this.result_highlight=null},e.prototype.results_show=function(){return this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.container.addClass("chosen-with-drop"),this.results_showing=!0,this.search_field.focus(),this.search_field.val(this.get_search_field_value()),this.winnow_results(),this.form_field_jq.trigger("chosen:showing_dropdown",{chosen:this}))},e.prototype.update_results_content=function(t){return this.search_results.html(t)},e.prototype.results_hide=function(){return this.results_showing&&(this.result_clear_highlight(),this.container.removeClass("chosen-with-drop"),this.form_field_jq.trigger("chosen:hiding_dropdown",{chosen:this})),this.results_showing=!1},e.prototype.set_tab_index=function(t){var e;if(this.form_field.tabIndex)return e=this.form_field.tabIndex,this.form_field.tabIndex=-1,this.search_field[0].tabIndex=e},e.prototype.set_label_behavior=function(){if(this.form_field_label=this.form_field_jq.parents("label"),!this.form_field_label.length&&this.form_field.id.length&&(this.form_field_label=h("label[for='"+this.form_field.id+"']")),0<this.form_field_label.length)return this.form_field_label.on("click.chosen",this.label_click_handler)},e.prototype.show_search_field_default=function(){return this.is_multiple&&this.choices_count()<1&&!this.active_field?(this.search_field.val(this.default_text),this.search_field.addClass("default")):(this.search_field.val(""),this.search_field.removeClass("default"))},e.prototype.search_results_mouseup=function(t){var e;if((e=h(t.target).hasClass("active-result")?h(t.target):h(t.target).parents(".active-result").first()).length)return this.result_highlight=e,this.result_select(t),this.search_field.focus()},e.prototype.search_results_mouseover=function(t){var e;if(e=h(t.target).hasClass("active-result")?h(t.target):h(t.target).parents(".active-result").first())return this.result_do_highlight(e)},e.prototype.search_results_mouseout=function(t){if(h(t.target).hasClass("active-result")||h(t.target).parents(".active-result").first())return this.result_clear_highlight()},e.prototype.choice_build=function(t){var e,s,i;return e=h("<li />",{class:"search-choice"}).html("<span>"+this.choice_label(t)+"</span>"),t.disabled?e.addClass("search-choice-disabled"):((s=h("<a />",{class:"search-choice-close","data-option-array-index":t.array_index})).on("click.chosen",(i=this,function(t){return i.choice_destroy_link_click(t)})),e.append(s)),this.search_container.before(e)},e.prototype.choice_destroy_link_click=function(t){if(t.preventDefault(),t.stopPropagation(),!this.is_disabled)return this.choice_destroy(h(t.target))},e.prototype.choice_destroy=function(t){if(this.result_deselect(t[0].getAttribute("data-option-array-index")))return this.active_field?this.search_field.focus():this.show_search_field_default(),this.is_multiple&&0<this.choices_count()&&this.get_search_field_value().length<1&&this.results_hide(),t.parents("li").first().remove(),this.search_field_scale()},e.prototype.results_reset=function(){if(this.reset_single_select_options(),this.form_field.options[0].selected=!0,this.single_set_selected_text(),this.show_search_field_default(),this.results_reset_cleanup(),this.trigger_form_field_change(),this.active_field)return this.results_hide()},e.prototype.results_reset_cleanup=function(){return this.current_selectedIndex=this.form_field.selectedIndex,this.selected_item.find("abbr").remove()},e.prototype.result_select=function(t){var e,s;if(this.result_highlight)return e=this.result_highlight,this.result_clear_highlight(),this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.is_multiple?e.removeClass("active-result"):this.reset_single_select_options(),e.addClass("result-selected"),(s=this.results_data[e[0].getAttribute("data-option-array-index")]).selected=!0,this.form_field.options[s.options_index].selected=!0,this.selected_option_count=null,this.is_multiple?this.choice_build(s):this.single_set_selected_text(this.choice_label(s)),this.is_multiple&&(!this.hide_results_on_select||t.metaKey||t.ctrlKey)?t.metaKey||t.ctrlKey?this.winnow_results({skip_highlight:!0}):(this.search_field.val(""),this.winnow_results()):(this.results_hide(),this.show_search_field_default()),(this.is_multiple||this.form_field.selectedIndex!==this.current_selectedIndex)&&this.trigger_form_field_change({selected:this.form_field.options[s.options_index].value}),this.current_selectedIndex=this.form_field.selectedIndex,t.preventDefault(),this.search_field_scale())},e.prototype.single_set_selected_text=function(t){return null==t&&(t=this.default_text),t===this.default_text?this.selected_item.addClass("chosen-default"):(this.single_deselect_control_build(),this.selected_item.removeClass("chosen-default")),this.selected_item.find("span").html(t)},e.prototype.result_deselect=function(t){var e;return e=this.results_data[t],!this.form_field.options[e.options_index].disabled&&(e.selected=!1,this.form_field.options[e.options_index].selected=!1,this.selected_option_count=null,this.result_clear_highlight(),this.results_showing&&this.winnow_results(),this.trigger_form_field_change({deselected:this.form_field.options[e.options_index].value}),this.search_field_scale(),!0)},e.prototype.single_deselect_control_build=function(){if(this.allow_single_deselect)return this.selected_item.find("abbr").length||this.selected_item.find("span").first().after('<abbr class="search-choice-close"></abbr>'),this.selected_item.addClass("chosen-single-with-deselect")},e.prototype.get_search_field_value=function(){return this.search_field.val()},e.prototype.get_search_text=function(){return h.trim(this.get_search_field_value())},e.prototype.escape_html=function(t){return h("<div/>").text(t).html()},e.prototype.winnow_results_set_highlight=function(){var t,e;if(null!=(t=(e=this.is_multiple?[]:this.search_results.find(".result-selected.active-result")).length?e.first():this.search_results.find(".active-result").first()))return this.result_do_highlight(t)},e.prototype.no_results=function(t){var e;return e=this.get_no_results_html(t),this.search_results.append(e),this.form_field_jq.trigger("chosen:no_results",{chosen:this})},e.prototype.no_results_clear=function(){return this.search_results.find(".no-results").remove()},e.prototype.keydown_arrow=function(){var t;return this.results_showing&&this.result_highlight?(t=this.result_highlight.nextAll("li.active-result").first())?this.result_do_highlight(t):void 0:this.results_show()},e.prototype.keyup_arrow=function(){var t;return this.results_showing||this.is_multiple?this.result_highlight?(t=this.result_highlight.prevAll("li.active-result")).length?this.result_do_highlight(t.first()):(0<this.choices_count()&&this.results_hide(),this.result_clear_highlight()):void 0:this.results_show()},e.prototype.keydown_backstroke=function(){var t;return this.pending_backstroke?(this.choice_destroy(this.pending_backstroke.find("a").first()),this.clear_backstroke()):(t=this.search_container.siblings("li.search-choice").last()).length&&!t.hasClass("search-choice-disabled")?(this.pending_backstroke=t,this.single_backstroke_delete?this.keydown_backstroke():this.pending_backstroke.addClass("search-choice-focus")):void 0},e.prototype.clear_backstroke=function(){return this.pending_backstroke&&this.pending_backstroke.removeClass("search-choice-focus"),this.pending_backstroke=null},e.prototype.search_field_scale=function(){var t,e,s,i,n,r,o;if(this.is_multiple){for(n={position:"absolute",left:"-1000px",top:"-1000px",display:"none",whiteSpace:"pre"},e=0,s=(r=["fontSize","fontStyle","fontWeight","fontFamily","lineHeight","textTransform","letterSpacing"]).length;e<s;e++)n[i=r[e]]=this.search_field.css(i);return(t=h("<div />").css(n)).text(this.get_search_field_value()),h("body").append(t),o=t.width()+25,t.remove(),this.container.is(":visible")&&(o=Math.min(this.container.outerWidth()-10,o)),this.search_field.width(o)}},e.prototype.trigger_form_field_change=function(t){return this.form_field_jq.trigger("input",t),this.form_field_jq.trigger("change",t)},e}()}.call(this),function(o){"use strict";function n(t,e,s){this.init(t,e,s)}function t(){this.rules=[]}o.extend(n.prototype,{init:function(t,e,s){this.controller=t,this.condition=e,this.value=s,this.rules=[],this.controls=[]},evalCondition:function(t,e,s,i,n){if("=="==s)return this.checkBoolean(i)==this.checkBoolean(n);if("!="==s)return this.checkBoolean(i)!=this.checkBoolean(n);if(">="==s)return Number(n)>=Number(i);if("<="==s)return Number(n)<=Number(i);if(">"==s)return Number(n)>Number(i);if("<"==s)return Number(n)<Number(i);if("()"==s)return window[i](t,e,n);if("any"==s){if(o.isArray(n)){for(var r=n.length-1;0<=r;r--)if(-1!==o.inArray(n[r],i.split(",")))return!0}else if(-1!==o.inArray(n,i.split(",")))return!0}else if("not-any"==s)if(o.isArray(n)){for(r=n.length-1;0<=r;r--)if(-1==o.inArray(n[r],i.split(",")))return!0}else if(-1==o.inArray(n,i.split(",")))return!0;return!1},checkBoolean:function(t){switch(t){case!0:case"true":case 1:case"1":t=!0;break;case null:case!1:case"false":case 0:case"0":t=!1}return t},checkCondition:function(t){if(!this.condition)return!0;var e=t.find(this.controller),s=this.getControlValue(t,e);return void 0!==s&&(s=this.normalizeValue(e,this.value,s),this.evalCondition(t,e,this.condition,this.value,s))},normalizeValue:function(t,e,s){return"number"==typeof e?parseFloat(s):s},getControlValue:function(t,e){return 1<e.length&&("radio"==e.attr("type")||"checkbox"==e.attr("type"))?e.filter(":checked").map(function(){return this.value}).get():"checkbox"==e.attr("type")||"radio"==e.attr("type")?e.is(":checked"):e.val()},createRule:function(t,e,s){var i=new n(t,e,s);return this.rules.push(i),i},include:function(t){this.controls.push(t)},applyRule:function(s,t){var e;e=void 0===t?this.checkCondition(s):t;var i=o.map(this.controls,function(t,e){return s.find(t)});e?(o(i).each(function(){o(this).removeClass("csf-depend-on")}),o(this.rules).each(function(){this.applyRule(s)})):(o(i).each(function(){o(this).addClass("csf-depend-on")}),o(this.rules).each(function(){this.applyRule(s,!1)}))}}),o.extend(t.prototype,{createRule:function(t,e,s){var i=new n(t,e,s);return this.rules.push(i),i},applyRules:function(t){o(this.rules).each(function(){this.applyRule(t)})}}),o.csf_deps={createRuleset:function(){return new t},enable:function(s,i,n){return s.on("change keyup",function(t){var e=t.target.getAttribute("data-depend-id")||t.target.getAttribute("data-sub-depend-id");-1!==n.indexOf(e)&&i.applyRules(s)}),i.applyRules(s),!0}}}(jQuery),function(t,s){if("function"==typeof define&&define.amd)define(["exports","jquery"],function(t,e){return s(t,e)});else if("undefined"!=typeof exports){var e=require("jquery");s(exports,e)}else s(t,t.jQuery||t.Zepto||t.ender||t.$)}(this,function(t,e){var h={validate:/^(?!(_nonce|_pseudo))[a-zA-Z0-9_-]*(?:\[(?:\d*|(?!(_nonce|_pseudo))[a-zA-Z0-9_-]+)\])*$/i,key:/[a-zA-Z0-9_-]+|(?=\[\])/g,named:/^[a-zA-Z0-9_-]+$/,push:/^$/,fixed:/^\d+$/};function s(i,t){var s={},r={};function o(t,e,s){return t[e]=s,t}function e(){return s}this.addPair=function(t){if(!h.validate.test(t.name))return this;var e=function(t,e){for(var s,i=t.match(h.key);void 0!==(s=i.pop());)h.push.test(s)?e=o([],(n=t.replace(/\[\]$/,""),void 0===r[n]&&(r[n]=0),r[n]++),e):h.fixed.test(s)?e=o([],s,e):h.named.test(s)&&(e=o({},s,e));var n;return e}(t.name,t.value);return s=i.extend(!0,s,e),this},this.addPairs=function(t){if(!i.isArray(t))throw new Error("formSerializer.addPairs expects an Array");for(var e=0,s=t.length;e<s;e++)this.addPair(t[e]);return this},this.serialize=e,this.serializeJSON=function(){return JSON.stringify(e())}}return s.patterns=h,s.serializeObject=function(){return new s(e,this).addPairs(this.serializeArray()).serialize()},s.serializeJSON=function(){return new s(e,this).addPairs(this.serializeArray()).serializeJSON()},void 0!==e.fn&&(e.fn.serializeObjectCSF=s.serializeObject,e.fn.serializeJSONCSF=s.serializeJSON),t.FormSerializer=s});
1
+ /* Codestar Framework | A Simple and Lightweight WordPress Option Framework - v2.2.6*/
2
 
3
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).flatpickr=t()}(this,function(){"use strict";var ee=function(){return(ee=Object.assign||function(e){for(var t,n=1,i=arguments.length;n<i;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};function te(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var i=Array(e),o=0;for(t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i}var ne=["onChange","onClose","onDayCreate","onDestroy","onKeyDown","onMonthChange","onOpen","onParseConfig","onReady","onValueUpdate","onYearChange","onPreCalendarPosition"],ie={_disable:[],allowInput:!1,allowInvalidPreload:!1,altFormat:"F j, Y",altInput:!1,altInputClass:"form-control input",animate:"object"==typeof window&&-1===window.navigator.userAgent.indexOf("MSIE"),ariaDateFormat:"F j, Y",autoFillDefaultTime:!0,clickOpens:!0,closeOnSelect:!0,conjunction:", ",dateFormat:"Y-m-d",defaultHour:12,defaultMinute:0,defaultSeconds:0,disable:[],disableMobile:!1,enableSeconds:!1,enableTime:!1,errorHandler:function(e){return"undefined"!=typeof console&&console.warn(e)},getWeek:function(e){var t=new Date(e.getTime());t.setHours(0,0,0,0),t.setDate(t.getDate()+3-(t.getDay()+6)%7);var n=new Date(t.getFullYear(),0,4);return 1+Math.round(((t.getTime()-n.getTime())/864e5-3+(n.getDay()+6)%7)/7)},hourIncrement:1,ignoredFocusElements:[],inline:!1,locale:"default",minuteIncrement:5,mode:"single",monthSelectorType:"dropdown",nextArrow:"<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M13.207 8.472l-7.854 7.854-0.707-0.707 7.146-7.146-7.146-7.148 0.707-0.707 7.854 7.854z' /></svg>",noCalendar:!1,now:new Date,onChange:[],onClose:[],onDayCreate:[],onDestroy:[],onKeyDown:[],onMonthChange:[],onOpen:[],onParseConfig:[],onReady:[],onValueUpdate:[],onYearChange:[],onPreCalendarPosition:[],plugins:[],position:"auto",positionElement:void 0,prevArrow:"<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M5.207 8.471l7.146 7.147-0.707 0.707-7.853-7.854 7.854-7.853 0.707 0.707-7.147 7.146z' /></svg>",shorthandCurrentMonth:!1,showMonths:1,static:!1,time_24hr:!1,weekNumbers:!1,wrap:!1},oe={weekdays:{shorthand:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],longhand:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},months:{shorthand:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],longhand:["January","February","March","April","May","June","July","August","September","October","November","December"]},daysInMonth:[31,28,31,30,31,30,31,31,30,31,30,31],firstDayOfWeek:0,ordinal:function(e){var t=e%100;if(3<t&&t<21)return"th";switch(t%10){case 1:return"st";case 2:return"nd";case 3:return"rd";default:return"th"}},rangeSeparator:" to ",weekAbbreviation:"Wk",scrollTitle:"Scroll to increment",toggleTitle:"Click to toggle",amPM:["AM","PM"],yearAriaLabel:"Year",monthAriaLabel:"Month",hourAriaLabel:"Hour",minuteAriaLabel:"Minute",time_24hr:!1},re=function(e,t){return void 0===t&&(t=2),("000"+e).slice(-1*t)},se=function(e){return!0===e?1:0};function ae(t,n){var i;return function(){var e=this;clearTimeout(i),i=setTimeout(function(){return t.apply(e,arguments)},n)}}var le=function(e){return e instanceof Array?e:[e]};function ce(e,t,n){if(!0===n)return e.classList.add(t);e.classList.remove(t)}function ue(e,t,n){var i=window.document.createElement(e);return t=t||"",n=n||"",i.className=t,void 0!==n&&(i.textContent=n),i}function he(e){for(;e.firstChild;)e.removeChild(e.firstChild)}function de(e,t){var n=ue("div","numInputWrapper"),i=ue("input","numInput "+e),o=ue("span","arrowUp"),r=ue("span","arrowDown");if(-1===navigator.userAgent.indexOf("MSIE 9.0")?i.type="number":(i.type="text",i.pattern="\\d*"),void 0!==t)for(var s in t)i.setAttribute(s,t[s]);return n.appendChild(i),n.appendChild(o),n.appendChild(r),n}function fe(t){try{return"function"!=typeof t.composedPath?t.target:t.composedPath()[0]}catch(e){return t.target}}var e=function(){},pe=function(e,t,n){return n.months[t?"shorthand":"longhand"][e]},b={D:e,F:function(e,t,n){e.setMonth(n.months.longhand.indexOf(t))},G:function(e,t){e.setHours(parseFloat(t))},H:function(e,t){e.setHours(parseFloat(t))},J:function(e,t){e.setDate(parseFloat(t))},K:function(e,t,n){e.setHours(e.getHours()%12+12*se(new RegExp(n.amPM[1],"i").test(t)))},M:function(e,t,n){e.setMonth(n.months.shorthand.indexOf(t))},S:function(e,t){e.setSeconds(parseFloat(t))},U:function(e,t){return new Date(1e3*parseFloat(t))},W:function(e,t,n){var i=parseInt(t),o=new Date(e.getFullYear(),0,2+7*(i-1),0,0,0,0);return o.setDate(o.getDate()-o.getDay()+n.firstDayOfWeek),o},Y:function(e,t){e.setFullYear(parseFloat(t))},Z:function(e,t){return new Date(t)},d:function(e,t){e.setDate(parseFloat(t))},h:function(e,t){e.setHours(parseFloat(t))},i:function(e,t){e.setMinutes(parseFloat(t))},j:function(e,t){e.setDate(parseFloat(t))},l:e,m:function(e,t){e.setMonth(parseFloat(t)-1)},n:function(e,t){e.setMonth(parseFloat(t)-1)},s:function(e,t){e.setSeconds(parseFloat(t))},u:function(e,t){return new Date(parseFloat(t))},w:e,y:function(e,t){e.setFullYear(2e3+parseFloat(t))}},_e={D:"(\\w+)",F:"(\\w+)",G:"(\\d\\d|\\d)",H:"(\\d\\d|\\d)",J:"(\\d\\d|\\d)\\w+",K:"",M:"(\\w+)",S:"(\\d\\d|\\d)",U:"(.+)",W:"(\\d\\d|\\d)",Y:"(\\d{4})",Z:"(.+)",d:"(\\d\\d|\\d)",h:"(\\d\\d|\\d)",i:"(\\d\\d|\\d)",j:"(\\d\\d|\\d)",l:"(\\w+)",m:"(\\d\\d|\\d)",n:"(\\d\\d|\\d)",s:"(\\d\\d|\\d)",u:"(.+)",w:"(\\d\\d|\\d)",y:"(\\d{2})"},l={Z:function(e){return e.toISOString()},D:function(e,t,n){return t.weekdays.shorthand[l.w(e,t,n)]},F:function(e,t,n){return pe(l.n(e,t,n)-1,!1,t)},G:function(e,t,n){return re(l.h(e,t,n))},H:function(e){return re(e.getHours())},J:function(e,t){return void 0!==t.ordinal?e.getDate()+t.ordinal(e.getDate()):e.getDate()},K:function(e,t){return t.amPM[se(11<e.getHours())]},M:function(e,t){return pe(e.getMonth(),!0,t)},S:function(e){return re(e.getSeconds())},U:function(e){return e.getTime()/1e3},W:function(e,t,n){return n.getWeek(e)},Y:function(e){return re(e.getFullYear(),4)},d:function(e){return re(e.getDate())},h:function(e){return e.getHours()%12?e.getHours()%12:12},i:function(e){return re(e.getMinutes())},j:function(e){return e.getDate()},l:function(e,t){return t.weekdays.longhand[e.getDay()]},m:function(e){return re(e.getMonth()+1)},n:function(e){return e.getMonth()+1},s:function(e){return e.getSeconds()},u:function(e){return e.getTime()},w:function(e){return e.getDay()},y:function(e){return String(e.getFullYear()).substring(2)}},me=function(e){var t=e.config,r=void 0===t?ie:t,n=e.l10n,s=void 0===n?oe:n,i=e.isMobile,a=void 0!==i&&i;return function(i,e,t){var o=t||s;return void 0===r.formatDate||a?e.split("").map(function(e,t,n){return l[e]&&"\\"!==n[t-1]?l[e](i,o,r):"\\"!==e?e:""}).join(""):r.formatDate(i,e,o)}},ge=function(e){var t=e.config,v=void 0===t?ie:t,n=e.l10n,y=void 0===n?oe:n;return function(e,t,n,i){if(0===e||e){var o,r=i||y,s=e;if(e instanceof Date)o=new Date(e.getTime());else if("string"!=typeof e&&void 0!==e.toFixed)o=new Date(e);else if("string"==typeof e){var a=t||(v||ie).dateFormat,l=String(e).trim();if("today"===l)o=new Date,n=!0;else if(/Z$/.test(l)||/GMT$/.test(l))o=new Date(e);else if(v&&v.parseDate)o=v.parseDate(e,a);else{o=v&&v.noCalendar?new Date((new Date).setHours(0,0,0,0)):new Date((new Date).getFullYear(),0,1,0,0,0,0);for(var c=void 0,u=[],h=0,d=0,f="";h<a.length;h++){var p=a[h],_="\\"===p,m="\\"===a[h-1]||_;if(_e[p]&&!m){f+=_e[p];var g=new RegExp(f).exec(e);g&&(c=!0)&&u["Y"!==p?"push":"unshift"]({fn:b[p],val:g[++d]})}else _||(f+=".");u.forEach(function(e){var t=e.fn,n=e.val;return o=t(o,n,r)||o})}o=c?o:void 0}}if(o instanceof Date&&!isNaN(o.getTime()))return!0===n&&o.setHours(0,0,0,0),o;v.errorHandler(new Error("Invalid date provided: "+s))}}};function ve(e,t,n){return void 0===n&&(n=!0),!1!==n?new Date(e.getTime()).setHours(0,0,0,0)-new Date(t.getTime()).setHours(0,0,0,0):e.getTime()-t.getTime()}var ye=function(e,t,n){return e>Math.min(t,n)&&e<Math.max(t,n)},be={DAY:864e5};function we(e){var t=e.defaultHour,n=e.defaultMinute,i=e.defaultSeconds;if(void 0!==e.minDate){var o=e.minDate.getHours(),r=e.minDate.getMinutes(),s=e.minDate.getSeconds();t<o&&(t=o),t===o&&n<r&&(n=r),t===o&&n===r&&i<s&&(i=e.minDate.getSeconds())}if(void 0!==e.maxDate){var a=e.maxDate.getHours(),l=e.maxDate.getMinutes();(t=Math.min(t,a))===a&&(n=Math.min(l,n)),t===a&&n===l&&(i=e.maxDate.getSeconds())}return{hours:t,minutes:n,seconds:i}}"function"!=typeof Object.assign&&(Object.assign=function(n){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];if(!n)throw TypeError("Cannot convert undefined or null to object");for(var i=function(t){t&&Object.keys(t).forEach(function(e){return n[e]=t[e]})},o=0,r=e;o<r.length;o++){i(r[o])}return n});var De=300;function s(d,u){var D={config:ee(ee({},ie),Ce.defaultConfig),l10n:oe};function h(e){return e.bind(D)}function t(){var t=D.config;!1===t.weekNumbers&&1===t.showMonths||!0!==t.noCalendar&&window.requestAnimationFrame(function(){if(void 0!==D.calendarContainer&&(D.calendarContainer.style.visibility="hidden",D.calendarContainer.style.display="block"),void 0!==D.daysContainer){var e=(D.days.offsetWidth+1)*t.showMonths;D.daysContainer.style.width=e+"px",D.calendarContainer.style.width=e+(void 0!==D.weekWrapper?D.weekWrapper.offsetWidth:0)+"px",D.calendarContainer.style.removeProperty("visibility"),D.calendarContainer.style.removeProperty("display")}})}function f(e){if(0===D.selectedDates.length){var t=void 0===D.config.minDate||0<=ve(new Date,D.config.minDate)?new Date:new Date(D.config.minDate.getTime()),n=we(D.config);t.setHours(n.hours,n.minutes,n.seconds,t.getMilliseconds()),D.selectedDates=[t],D.latestSelectedDateObj=t}void 0!==e&&"blur"!==e.type&&function(e){e.preventDefault();var t="keydown"===e.type,n=fe(e),i=n;void 0!==D.amPM&&n===D.amPM&&(D.amPM.textContent=D.l10n.amPM[se(D.amPM.textContent===D.l10n.amPM[0])]);var o=parseFloat(i.getAttribute("min")),r=parseFloat(i.getAttribute("max")),s=parseFloat(i.getAttribute("step")),a=parseInt(i.value,10),l=e.delta||(t?38===e.which?1:-1:0),c=a+s*l;if(void 0!==i.value&&2===i.value.length){var u=i===D.hourElement,h=i===D.minuteElement;c<o?(c=r+c+se(!u)+(se(u)&&se(!D.amPM)),h&&_(void 0,-1,D.hourElement)):r<c&&(c=i===D.hourElement?c-r-se(!D.amPM):o,h&&_(void 0,1,D.hourElement)),D.amPM&&u&&(1===s?c+a===23:Math.abs(c-a)>s)&&(D.amPM.textContent=D.l10n.amPM[se(D.amPM.textContent===D.l10n.amPM[0])]),i.value=re(c)}}(e);var i=D._input.value;p(),X(),D._input.value!==i&&D._debouncedChange()}function p(){if(void 0!==D.hourElement&&void 0!==D.minuteElement){var e,t,n=(parseInt(D.hourElement.value.slice(-2),10)||0)%24,i=(parseInt(D.minuteElement.value,10)||0)%60,o=void 0!==D.secondElement?(parseInt(D.secondElement.value,10)||0)%60:0;void 0!==D.amPM&&(e=n,t=D.amPM.textContent,n=e%12+12*se(t===D.l10n.amPM[1]));var r=void 0!==D.config.minTime||D.config.minDate&&D.minDateHasTime&&D.latestSelectedDateObj&&0===ve(D.latestSelectedDateObj,D.config.minDate,!0);if(void 0!==D.config.maxTime||D.config.maxDate&&D.maxDateHasTime&&D.latestSelectedDateObj&&0===ve(D.latestSelectedDateObj,D.config.maxDate,!0)){var s=void 0!==D.config.maxTime?D.config.maxTime:D.config.maxDate;(n=Math.min(n,s.getHours()))===s.getHours()&&(i=Math.min(i,s.getMinutes())),i===s.getMinutes()&&(o=Math.min(o,s.getSeconds()))}if(r){var a=void 0!==D.config.minTime?D.config.minTime:D.config.minDate;(n=Math.max(n,a.getHours()))===a.getHours()&&i<a.getMinutes()&&(i=a.getMinutes()),i===a.getMinutes()&&(o=Math.max(o,a.getSeconds()))}l(n,i,o)}}function o(e){var t=e||D.latestSelectedDateObj;t&&l(t.getHours(),t.getMinutes(),t.getSeconds())}function l(e,t,n){void 0!==D.latestSelectedDateObj&&D.latestSelectedDateObj.setHours(e%24,t,n||0,0),D.hourElement&&D.minuteElement&&!D.isMobile&&(D.hourElement.value=re(D.config.time_24hr?e:(12+e)%12+12*se(e%12==0)),D.minuteElement.value=re(t),void 0!==D.amPM&&(D.amPM.textContent=D.l10n.amPM[se(12<=e)]),void 0!==D.secondElement&&(D.secondElement.value=re(n)))}function n(e){var t=fe(e),n=parseInt(t.value)+(e.delta||0);(1<n/1e3||"Enter"===e.key&&!/[^\d]/.test(n.toString()))&&S(n)}function s(t,n,i,o){return n instanceof Array?n.forEach(function(e){return s(t,e,i,o)}):t instanceof Array?t.forEach(function(e){return s(e,n,i,o)}):(t.addEventListener(n,i,o),void D._handlers.push({remove:function(){return t.removeEventListener(n,i)}}))}function c(){K("onChange")}function i(e,t){var n=void 0!==e?D.parseDate(e):D.latestSelectedDateObj||(D.config.minDate&&D.config.minDate>D.now?D.config.minDate:D.config.maxDate&&D.config.maxDate<D.now?D.config.maxDate:D.now),i=D.currentYear,o=D.currentMonth;try{void 0!==n&&(D.currentYear=n.getFullYear(),D.currentMonth=n.getMonth())}catch(e){e.message="Invalid date supplied: "+n,D.config.errorHandler(e)}t&&D.currentYear!==i&&(K("onYearChange"),w()),!t||D.currentYear===i&&D.currentMonth===o||K("onMonthChange"),D.redraw()}function r(e){var t=fe(e);~t.className.indexOf("arrow")&&_(e,t.classList.contains("arrowUp")?1:-1)}function _(e,t,n){var i=e&&fe(e),o=n||i&&i.parentNode&&i.parentNode.firstChild,r=$("increment");r.delta=t,o&&o.dispatchEvent(r)}function m(e,t,n,i){var o,r=A(t,!0),s=ue("span","flatpickr-day "+e,t.getDate().toString());return s.dateObj=t,s.$i=i,s.setAttribute("aria-label",D.formatDate(t,D.config.ariaDateFormat)),-1===e.indexOf("hidden")&&0===ve(t,D.now)&&((D.todayDateElem=s).classList.add("today"),s.setAttribute("aria-current","date")),r?(s.tabIndex=-1,Q(t)&&(s.classList.add("selected"),D.selectedDateElem=s,"range"===D.config.mode&&(ce(s,"startRange",D.selectedDates[0]&&0===ve(t,D.selectedDates[0],!0)),ce(s,"endRange",D.selectedDates[1]&&0===ve(t,D.selectedDates[1],!0)),"nextMonthDay"===e&&s.classList.add("inRange")))):s.classList.add("flatpickr-disabled"),"range"===D.config.mode&&(o=t,!("range"!==D.config.mode||D.selectedDates.length<2)&&0<=ve(o,D.selectedDates[0])&&ve(o,D.selectedDates[1])<=0&&!Q(t)&&s.classList.add("inRange")),D.weekNumbers&&1===D.config.showMonths&&"prevMonthDay"!==e&&n%7==1&&D.weekNumbers.insertAdjacentHTML("beforeend","<span class='flatpickr-day'>"+D.config.getWeek(t)+"</span>"),K("onDayCreate",s),s}function g(e){e.focus(),"range"===D.config.mode&&F(e)}function v(e){for(var t=0<e?0:D.config.showMonths-1,n=0<e?D.config.showMonths:-1,i=t;i!=n;i+=e)for(var o=D.daysContainer.children[i],r=0<e?0:o.children.length-1,s=0<e?o.children.length:-1,a=r;a!=s;a+=e){var l=o.children[a];if(-1===l.className.indexOf("hidden")&&A(l.dateObj))return l}}function y(e,t){var n=I(document.activeElement||document.body),i=void 0!==e?e:n?document.activeElement:void 0!==D.selectedDateElem&&I(D.selectedDateElem)?D.selectedDateElem:void 0!==D.todayDateElem&&I(D.todayDateElem)?D.todayDateElem:v(0<t?1:-1);void 0===i?D._input.focus():n?function(e,t){for(var n=-1===e.className.indexOf("Month")?e.dateObj.getMonth():D.currentMonth,i=0<t?D.config.showMonths:-1,o=0<t?1:-1,r=n-D.currentMonth;r!=i;r+=o)for(var s=D.daysContainer.children[r],a=n-D.currentMonth===r?e.$i+t:t<0?s.children.length-1:0,l=s.children.length,c=a;0<=c&&c<l&&c!=(0<t?l:-1);c+=o){var u=s.children[c];if(-1===u.className.indexOf("hidden")&&A(u.dateObj)&&Math.abs(e.$i-c)>=Math.abs(t))return g(u)}D.changeMonth(o),y(v(o),0)}(i,t):g(i)}function a(e,t){for(var n=(new Date(e,t,1).getDay()-D.l10n.firstDayOfWeek+7)%7,i=D.utils.getDaysInMonth((t-1+12)%12,e),o=D.utils.getDaysInMonth(t,e),r=window.document.createDocumentFragment(),s=1<D.config.showMonths,a=s?"prevMonthDay hidden":"prevMonthDay",l=s?"nextMonthDay hidden":"nextMonthDay",c=i+1-n,u=0;c<=i;c++,u++)r.appendChild(m(a,new Date(e,t-1,c),c,u));for(c=1;c<=o;c++,u++)r.appendChild(m("",new Date(e,t,c),c,u));for(var h=o+1;h<=42-n&&(1===D.config.showMonths||u%7!=0);h++,u++)r.appendChild(m(l,new Date(e,t+1,h%o),h,u));var d=ue("div","dayContainer");return d.appendChild(r),d}function b(){if(void 0!==D.daysContainer){he(D.daysContainer),D.weekNumbers&&he(D.weekNumbers);for(var e=document.createDocumentFragment(),t=0;t<D.config.showMonths;t++){var n=new Date(D.currentYear,D.currentMonth,1);n.setMonth(D.currentMonth+t),e.appendChild(a(n.getFullYear(),n.getMonth()))}D.daysContainer.appendChild(e),D.days=D.daysContainer.firstChild,"range"===D.config.mode&&1===D.selectedDates.length&&F()}}function w(){if(!(1<D.config.showMonths||"dropdown"!==D.config.monthSelectorType)){var e;D.monthsDropdownContainer.tabIndex=-1,D.monthsDropdownContainer.innerHTML="";for(var t=0;t<12;t++)if(e=t,!(void 0!==D.config.minDate&&D.currentYear===D.config.minDate.getFullYear()&&e<D.config.minDate.getMonth()||void 0!==D.config.maxDate&&D.currentYear===D.config.maxDate.getFullYear()&&e>D.config.maxDate.getMonth())){var n=ue("option","flatpickr-monthDropdown-month");n.value=new Date(D.currentYear,t).getMonth().toString(),n.textContent=pe(t,D.config.shorthandCurrentMonth,D.l10n),n.tabIndex=-1,D.currentMonth===t&&(n.selected=!0),D.monthsDropdownContainer.appendChild(n)}}}function C(){var e,t=ue("div","flatpickr-month"),n=window.document.createDocumentFragment();e=1<D.config.showMonths||"static"===D.config.monthSelectorType?ue("span","cur-month"):(D.monthsDropdownContainer=ue("select","flatpickr-monthDropdown-months"),D.monthsDropdownContainer.setAttribute("aria-label",D.l10n.monthAriaLabel),s(D.monthsDropdownContainer,"change",function(e){var t=fe(e),n=parseInt(t.value,10);D.changeMonth(n-D.currentMonth),K("onMonthChange")}),w(),D.monthsDropdownContainer);var i=de("cur-year",{tabindex:"-1"}),o=i.getElementsByTagName("input")[0];o.setAttribute("aria-label",D.l10n.yearAriaLabel),D.config.minDate&&o.setAttribute("min",D.config.minDate.getFullYear().toString()),D.config.maxDate&&(o.setAttribute("max",D.config.maxDate.getFullYear().toString()),o.disabled=!!D.config.minDate&&D.config.minDate.getFullYear()===D.config.maxDate.getFullYear());var r=ue("div","flatpickr-current-month");return r.appendChild(e),r.appendChild(i),n.appendChild(r),t.appendChild(n),{container:t,yearElement:o,monthElement:e}}function x(){he(D.monthNav),D.monthNav.appendChild(D.prevMonthNav),D.config.showMonths&&(D.yearElements=[],D.monthElements=[]);for(var e=D.config.showMonths;e--;){var t=C();D.yearElements.push(t.yearElement),D.monthElements.push(t.monthElement),D.monthNav.appendChild(t.container)}D.monthNav.appendChild(D.nextMonthNav)}function M(){D.weekdayContainer?he(D.weekdayContainer):D.weekdayContainer=ue("div","flatpickr-weekdays");for(var e=D.config.showMonths;e--;){var t=ue("div","flatpickr-weekdaycontainer");D.weekdayContainer.appendChild(t)}return k(),D.weekdayContainer}function k(){if(D.weekdayContainer){var e=D.l10n.firstDayOfWeek,t=te(D.l10n.weekdays.shorthand);0<e&&e<t.length&&(t=te(t.splice(e,t.length),t.splice(0,e)));for(var n=D.config.showMonths;n--;)D.weekdayContainer.children[n].innerHTML="\n <span class='flatpickr-weekday'>\n "+t.join("</span><span class='flatpickr-weekday'>")+"\n </span>\n "}}function E(e,t){void 0===t&&(t=!0);var n=t?e:e-D.currentMonth;n<0&&!0===D._hidePrevMonthArrow||0<n&&!0===D._hideNextMonthArrow||(D.currentMonth+=n,(D.currentMonth<0||11<D.currentMonth)&&(D.currentYear+=11<D.currentMonth?1:-1,D.currentMonth=(D.currentMonth+12)%12,K("onYearChange"),w()),b(),K("onMonthChange"),V())}function T(e){return!(!D.config.appendTo||!D.config.appendTo.contains(e))||D.calendarContainer.contains(e)}function O(e){if(D.isOpen&&!D.config.inline){var t=fe(e),n=T(t),i=t===D.input||t===D.altInput||D.element.contains(t)||e.path&&e.path.indexOf&&(~e.path.indexOf(D.input)||~e.path.indexOf(D.altInput)),o="blur"===e.type?i&&e.relatedTarget&&!T(e.relatedTarget):!i&&!n&&!T(e.relatedTarget),r=!D.config.ignoredFocusElements.some(function(e){return e.contains(t)});o&&r&&(void 0!==D.timeContainer&&void 0!==D.minuteElement&&void 0!==D.hourElement&&""!==D.input.value&&void 0!==D.input.value&&f(),D.close(),D.config&&"range"===D.config.mode&&1===D.selectedDates.length&&(D.clear(!1),D.redraw()))}}function S(e){if(!(!e||D.config.minDate&&e<D.config.minDate.getFullYear()||D.config.maxDate&&e>D.config.maxDate.getFullYear())){var t=e,n=D.currentYear!==t;D.currentYear=t||D.currentYear,D.config.maxDate&&D.currentYear===D.config.maxDate.getFullYear()?D.currentMonth=Math.min(D.config.maxDate.getMonth(),D.currentMonth):D.config.minDate&&D.currentYear===D.config.minDate.getFullYear()&&(D.currentMonth=Math.max(D.config.minDate.getMonth(),D.currentMonth)),n&&(D.redraw(),K("onYearChange"),w())}}function A(e,t){var n;void 0===t&&(t=!0);var i=D.parseDate(e,void 0,t);if(D.config.minDate&&i&&ve(i,D.config.minDate,void 0!==t?t:!D.minDateHasTime)<0||D.config.maxDate&&i&&0<ve(i,D.config.maxDate,void 0!==t?t:!D.maxDateHasTime))return!1;if(!D.config.enable&&0===D.config.disable.length)return!0;if(void 0===i)return!1;for(var o=!!D.config.enable,r=null!==(n=D.config.enable)&&void 0!==n?n:D.config.disable,s=0,a=void 0;s<r.length;s++){if("function"==typeof(a=r[s])&&a(i))return o;if(a instanceof Date&&void 0!==i&&a.getTime()===i.getTime())return o;if("string"==typeof a){var l=D.parseDate(a,void 0,!0);return l&&l.getTime()===i.getTime()?o:!o}if("object"==typeof a&&void 0!==i&&a.from&&a.to&&i.getTime()>=a.from.getTime()&&i.getTime()<=a.to.getTime())return o}return!o}function I(e){return void 0!==D.daysContainer&&(-1===e.className.indexOf("hidden")&&-1===e.className.indexOf("flatpickr-disabled")&&D.daysContainer.contains(e))}function N(e){!(e.target===D._input)||!(0<D.selectedDates.length||0<D._input.value.length)||e.relatedTarget&&T(e.relatedTarget)||D.setDate(D._input.value,!0,e.target===D.altInput?D.config.altFormat:D.config.dateFormat)}function j(e){var t=fe(e),n=D.config.wrap?d.contains(t):t===D._input,i=D.config.allowInput,o=D.isOpen&&(!i||!n),r=D.config.inline&&n&&!i;if(13===e.keyCode&&n){if(i)return D.setDate(D._input.value,!0,t===D.altInput?D.config.altFormat:D.config.dateFormat),t.blur();D.open()}else if(T(t)||o||r){var s=!!D.timeContainer&&D.timeContainer.contains(t);switch(e.keyCode){case 13:s?(e.preventDefault(),f(),W()):B(e);break;case 27:e.preventDefault(),W();break;case 8:case 46:n&&!D.config.allowInput&&(e.preventDefault(),D.clear());break;case 37:case 39:if(s||n)D.hourElement&&D.hourElement.focus();else if(e.preventDefault(),void 0!==D.daysContainer&&(!1===i||document.activeElement&&I(document.activeElement))){var a=39===e.keyCode?1:-1;e.ctrlKey?(e.stopPropagation(),E(a),y(v(1),0)):y(void 0,a)}break;case 38:case 40:e.preventDefault();var l=40===e.keyCode?1:-1;D.daysContainer&&void 0!==t.$i||t===D.input||t===D.altInput?e.ctrlKey?(e.stopPropagation(),S(D.currentYear-l),y(v(1),0)):s||y(void 0,7*l):t===D.currentYearElement?S(D.currentYear-l):D.config.enableTime&&(!s&&D.hourElement&&D.hourElement.focus(),f(e),D._debouncedChange());break;case 9:if(s){var c=[D.hourElement,D.minuteElement,D.secondElement,D.amPM].concat(D.pluginElements).filter(function(e){return e}),u=c.indexOf(t);if(-1!==u){var h=c[u+(e.shiftKey?-1:1)];e.preventDefault(),(h||D._input).focus()}}else!D.config.noCalendar&&D.daysContainer&&D.daysContainer.contains(t)&&e.shiftKey&&(e.preventDefault(),D._input.focus())}}if(void 0!==D.amPM&&t===D.amPM)switch(e.key){case D.l10n.amPM[0].charAt(0):case D.l10n.amPM[0].charAt(0).toLowerCase():D.amPM.textContent=D.l10n.amPM[0],p(),X();break;case D.l10n.amPM[1].charAt(0):case D.l10n.amPM[1].charAt(0).toLowerCase():D.amPM.textContent=D.l10n.amPM[1],p(),X()}(n||T(t))&&K("onKeyDown",e)}function F(r){if(1===D.selectedDates.length&&(!r||r.classList.contains("flatpickr-day")&&!r.classList.contains("flatpickr-disabled"))){for(var s=r?r.dateObj.getTime():D.days.firstElementChild.dateObj.getTime(),a=D.parseDate(D.selectedDates[0],void 0,!0).getTime(),e=Math.min(s,D.selectedDates[0].getTime()),t=Math.max(s,D.selectedDates[0].getTime()),l=!1,c=0,u=0,n=e;n<t;n+=be.DAY)A(new Date(n),!0)||(l=l||e<n&&n<t,n<a&&(!c||c<n)?c=n:a<n&&(!u||n<u)&&(u=n));for(var i=0;i<D.config.showMonths;i++)for(var h=D.daysContainer.children[i],o=function(e,t){var n=h.children[e],i=n.dateObj.getTime(),o=0<c&&i<c||0<u&&u<i;return o?(n.classList.add("notAllowed"),["inRange","startRange","endRange"].forEach(function(e){n.classList.remove(e)}),"continue"):l&&!o?"continue":(["startRange","inRange","endRange","notAllowed"].forEach(function(e){n.classList.remove(e)}),void(void 0!==r&&(r.classList.add(s<=D.selectedDates[0].getTime()?"startRange":"endRange"),a<s&&i===a?n.classList.add("startRange"):s<a&&i===a&&n.classList.add("endRange"),c<=i&&(0===u||i<=u)&&ye(i,a,s)&&n.classList.add("inRange"))))},d=0,f=h.children.length;d<f;d++)o(d)}}function P(){!D.isOpen||D.config.static||D.config.inline||R()}function Y(i){return function(e){var t=D.config["_"+i+"Date"]=D.parseDate(e,D.config.dateFormat),n=D.config["_"+("min"===i?"max":"min")+"Date"];void 0!==t&&(D["min"===i?"minDateHasTime":"maxDateHasTime"]=0<t.getHours()||0<t.getMinutes()||0<t.getSeconds()),D.selectedDates&&(D.selectedDates=D.selectedDates.filter(function(e){return A(e)}),D.selectedDates.length||"min"!==i||o(t),X()),D.daysContainer&&(q(),void 0!==t?D.currentYearElement[i]=t.getFullYear().toString():D.currentYearElement.removeAttribute(i),D.currentYearElement.disabled=!!n&&void 0!==t&&n.getFullYear()===t.getFullYear())}}function H(){return D.config.wrap?d.querySelector("[data-input]"):d}function L(){"object"!=typeof D.config.locale&&void 0===Ce.l10ns[D.config.locale]&&D.config.errorHandler(new Error("flatpickr: invalid locale "+D.config.locale)),D.l10n=ee(ee({},Ce.l10ns.default),"object"==typeof D.config.locale?D.config.locale:"default"!==D.config.locale?Ce.l10ns[D.config.locale]:void 0),_e.K="("+D.l10n.amPM[0]+"|"+D.l10n.amPM[1]+"|"+D.l10n.amPM[0].toLowerCase()+"|"+D.l10n.amPM[1].toLowerCase()+")",void 0===ee(ee({},u),JSON.parse(JSON.stringify(d.dataset||{}))).time_24hr&&void 0===Ce.defaultConfig.time_24hr&&(D.config.time_24hr=D.l10n.time_24hr),D.formatDate=me(D),D.parseDate=ge({config:D.config,l10n:D.l10n})}function R(e){if("function"!=typeof D.config.position){if(void 0!==D.calendarContainer){K("onPreCalendarPosition");var t=e||D._positionElement,n=Array.prototype.reduce.call(D.calendarContainer.children,function(e,t){return e+t.offsetHeight},0),i=D.calendarContainer.offsetWidth,o=D.config.position.split(" "),r=o[0],s=1<o.length?o[1]:null,a=t.getBoundingClientRect(),l=window.innerHeight-a.bottom,c="above"===r||"below"!==r&&l<n&&a.top>n,u=window.pageYOffset+a.top+(c?-n-2:t.offsetHeight+2);if(ce(D.calendarContainer,"arrowTop",!c),ce(D.calendarContainer,"arrowBottom",c),!D.config.inline){var h=window.pageXOffset+a.left,d=!1,f=!1;"center"===s?(h-=(i-a.width)/2,d=!0):"right"===s&&(h-=i-a.width,f=!0),ce(D.calendarContainer,"arrowLeft",!d&&!f),ce(D.calendarContainer,"arrowCenter",d),ce(D.calendarContainer,"arrowRight",f);var p=window.document.body.offsetWidth-(window.pageXOffset+a.right),_=h+i>window.document.body.offsetWidth,m=p+i>window.document.body.offsetWidth;if(ce(D.calendarContainer,"rightMost",_),!D.config.static)if(D.calendarContainer.style.top=u+"px",_)if(m){var g=function(){for(var e=null,t=0;t<document.styleSheets.length;t++){var n=document.styleSheets[t];try{n.cssRules}catch(e){continue}e=n;break}return null!=e?e:(i=document.createElement("style"),document.head.appendChild(i),i.sheet);var i}();if(void 0===g)return;var v=window.document.body.offsetWidth,y=Math.max(0,v/2-i/2),b=g.cssRules.length,w="{left:"+a.left+"px;right:auto;}";ce(D.calendarContainer,"rightMost",!1),ce(D.calendarContainer,"centerMost",!0),g.insertRule(".flatpickr-calendar.centerMost:before,.flatpickr-calendar.centerMost:after"+w,b),D.calendarContainer.style.left=y+"px",D.calendarContainer.style.right="auto"}else D.calendarContainer.style.left="auto",D.calendarContainer.style.right=p+"px";else D.calendarContainer.style.left=h+"px",D.calendarContainer.style.right="auto"}}}else D.config.position(D,e)}function q(){D.config.noCalendar||D.isMobile||(w(),V(),b())}function W(){D._input.focus(),-1!==window.navigator.userAgent.indexOf("MSIE")||void 0!==navigator.msMaxTouchPoints?setTimeout(D.close,0):D.close()}function B(e){e.preventDefault(),e.stopPropagation();var t=function e(t,n){return n(t)?t:t.parentNode?e(t.parentNode,n):void 0}(fe(e),function(e){return e.classList&&e.classList.contains("flatpickr-day")&&!e.classList.contains("flatpickr-disabled")&&!e.classList.contains("notAllowed")});if(void 0!==t){var n=t,i=D.latestSelectedDateObj=new Date(n.dateObj.getTime()),o=(i.getMonth()<D.currentMonth||i.getMonth()>D.currentMonth+D.config.showMonths-1)&&"range"!==D.config.mode;if(D.selectedDateElem=n,"single"===D.config.mode)D.selectedDates=[i];else if("multiple"===D.config.mode){var r=Q(i);r?D.selectedDates.splice(parseInt(r),1):D.selectedDates.push(i)}else"range"===D.config.mode&&(2===D.selectedDates.length&&D.clear(!1,!1),D.latestSelectedDateObj=i,D.selectedDates.push(i),0!==ve(i,D.selectedDates[0],!0)&&D.selectedDates.sort(function(e,t){return e.getTime()-t.getTime()}));if(p(),o){var s=D.currentYear!==i.getFullYear();D.currentYear=i.getFullYear(),D.currentMonth=i.getMonth(),s&&(K("onYearChange"),w()),K("onMonthChange")}if(V(),b(),X(),o||"range"===D.config.mode||1!==D.config.showMonths?void 0!==D.selectedDateElem&&void 0===D.hourElement&&D.selectedDateElem&&D.selectedDateElem.focus():g(n),void 0!==D.hourElement&&void 0!==D.hourElement&&D.hourElement.focus(),D.config.closeOnSelect){var a="single"===D.config.mode&&!D.config.enableTime,l="range"===D.config.mode&&2===D.selectedDates.length&&!D.config.enableTime;(a||l)&&W()}c()}}D.parseDate=ge({config:D.config,l10n:D.l10n}),D._handlers=[],D.pluginElements=[],D.loadedPlugins=[],D._bind=s,D._setHoursFromDate=o,D._positionCalendar=R,D.changeMonth=E,D.changeYear=S,D.clear=function(e,t){void 0===e&&(e=!0);void 0===t&&(t=!0);D.input.value="",void 0!==D.altInput&&(D.altInput.value="");void 0!==D.mobileInput&&(D.mobileInput.value="");D.selectedDates=[],!(D.latestSelectedDateObj=void 0)===t&&(D.currentYear=D._initialDate.getFullYear(),D.currentMonth=D._initialDate.getMonth());if(!0===D.config.enableTime){var n=we(D.config),i=n.hours,o=n.minutes,r=n.seconds;l(i,o,r)}D.redraw(),e&&K("onChange")},D.close=function(){D.isOpen=!1,D.isMobile||(void 0!==D.calendarContainer&&D.calendarContainer.classList.remove("open"),void 0!==D._input&&D._input.classList.remove("active"));K("onClose")},D._createElement=ue,D.destroy=function(){void 0!==D.config&&K("onDestroy");for(var e=D._handlers.length;e--;)D._handlers[e].remove();if(D._handlers=[],D.mobileInput)D.mobileInput.parentNode&&D.mobileInput.parentNode.removeChild(D.mobileInput),D.mobileInput=void 0;else if(D.calendarContainer&&D.calendarContainer.parentNode)if(D.config.static&&D.calendarContainer.parentNode){var t=D.calendarContainer.parentNode;if(t.lastChild&&t.removeChild(t.lastChild),t.parentNode){for(;t.firstChild;)t.parentNode.insertBefore(t.firstChild,t);t.parentNode.removeChild(t)}}else D.calendarContainer.parentNode.removeChild(D.calendarContainer);D.altInput&&(D.input.type="text",D.altInput.parentNode&&D.altInput.parentNode.removeChild(D.altInput),delete D.altInput);D.input&&(D.input.type=D.input._type,D.input.classList.remove("flatpickr-input"),D.input.removeAttribute("readonly"));["_showTimeInput","latestSelectedDateObj","_hideNextMonthArrow","_hidePrevMonthArrow","__hideNextMonthArrow","__hidePrevMonthArrow","isMobile","isOpen","selectedDateElem","minDateHasTime","maxDateHasTime","days","daysContainer","_input","_positionElement","innerContainer","rContainer","monthNav","todayDateElem","calendarContainer","weekdayContainer","prevMonthNav","nextMonthNav","monthsDropdownContainer","currentMonthElement","currentYearElement","navigationCurrentMonth","selectedDateElem","config"].forEach(function(e){try{delete D[e]}catch(e){}})},D.isEnabled=A,D.jumpToDate=i,D.open=function(e,t){void 0===t&&(t=D._positionElement);{if(!0===D.isMobile){if(e){e.preventDefault();var n=fe(e);n&&n.blur()}return void 0!==D.mobileInput&&(D.mobileInput.focus(),D.mobileInput.click()),void K("onOpen")}if(D._input.disabled||D.config.inline)return}var i=D.isOpen;D.isOpen=!0,i||(D.calendarContainer.classList.add("open"),D._input.classList.add("active"),K("onOpen"),R(t));!0===D.config.enableTime&&!0===D.config.noCalendar&&(!1!==D.config.allowInput||void 0!==e&&D.timeContainer.contains(e.relatedTarget)||setTimeout(function(){return D.hourElement.select()},50))},D.redraw=q,D.set=function(e,t){if(null!==e&&"object"==typeof e)for(var n in Object.assign(D.config,e),e)void 0!==z[n]&&z[n].forEach(function(e){return e()});else D.config[e]=t,void 0!==z[e]?z[e].forEach(function(e){return e()}):-1<ne.indexOf(e)&&(D.config[e]=le(t));D.redraw(),X(!0)},D.setDate=function(e,t,n){void 0===t&&(t=!1);void 0===n&&(n=D.config.dateFormat);if(0!==e&&!e||e instanceof Array&&0===e.length)return D.clear(t);U(e,n),D.latestSelectedDateObj=D.selectedDates[D.selectedDates.length-1],D.redraw(),i(void 0,t),o(),0===D.selectedDates.length&&D.clear(!1);X(t),t&&K("onChange")},D.toggle=function(e){if(!0===D.isOpen)return D.close();D.open(e)};var z={locale:[L,k],showMonths:[x,t,M],minDate:[i],maxDate:[i],clickOpens:[function(){!0===D.config.clickOpens?(s(D._input,"focus",D.open),s(D._input,"click",D.open)):(D._input.removeEventListener("focus",D.open),D._input.removeEventListener("click",D.open))}]};function U(e,t){var n=[];if(e instanceof Array)n=e.map(function(e){return D.parseDate(e,t)});else if(e instanceof Date||"number"==typeof e)n=[D.parseDate(e,t)];else if("string"==typeof e)switch(D.config.mode){case"single":case"time":n=[D.parseDate(e,t)];break;case"multiple":n=e.split(D.config.conjunction).map(function(e){return D.parseDate(e,t)});break;case"range":n=e.split(D.l10n.rangeSeparator).map(function(e){return D.parseDate(e,t)})}else D.config.errorHandler(new Error("Invalid date supplied: "+JSON.stringify(e)));D.selectedDates=D.config.allowInvalidPreload?n:n.filter(function(e){return e instanceof Date&&A(e,!1)}),"range"===D.config.mode&&D.selectedDates.sort(function(e,t){return e.getTime()-t.getTime()})}function J(e){return e.slice().map(function(e){return"string"==typeof e||"number"==typeof e||e instanceof Date?D.parseDate(e,void 0,!0):e&&"object"==typeof e&&e.from&&e.to?{from:D.parseDate(e.from,void 0),to:D.parseDate(e.to,void 0)}:e}).filter(function(e){return e})}function K(e,t){if(void 0!==D.config){var n=D.config[e];if(void 0!==n&&0<n.length)for(var i=0;n[i]&&i<n.length;i++)n[i](D.selectedDates,D.input.value,D,t);"onChange"===e&&(D.input.dispatchEvent($("change")),D.input.dispatchEvent($("input")))}}function $(e){var t=document.createEvent("Event");return t.initEvent(e,!0,!0),t}function Q(e){for(var t=0;t<D.selectedDates.length;t++)if(0===ve(D.selectedDates[t],e))return""+t;return!1}function V(){D.config.noCalendar||D.isMobile||!D.monthNav||(D.yearElements.forEach(function(e,t){var n=new Date(D.currentYear,D.currentMonth,1);n.setMonth(D.currentMonth+t),1<D.config.showMonths||"static"===D.config.monthSelectorType?D.monthElements[t].textContent=pe(n.getMonth(),D.config.shorthandCurrentMonth,D.l10n)+" ":D.monthsDropdownContainer.value=n.getMonth().toString(),e.value=n.getFullYear().toString()}),D._hidePrevMonthArrow=void 0!==D.config.minDate&&(D.currentYear===D.config.minDate.getFullYear()?D.currentMonth<=D.config.minDate.getMonth():D.currentYear<D.config.minDate.getFullYear()),D._hideNextMonthArrow=void 0!==D.config.maxDate&&(D.currentYear===D.config.maxDate.getFullYear()?D.currentMonth+1>D.config.maxDate.getMonth():D.currentYear>D.config.maxDate.getFullYear()))}function G(t){return D.selectedDates.map(function(e){return D.formatDate(e,t)}).filter(function(e,t,n){return"range"!==D.config.mode||D.config.enableTime||n.indexOf(e)===t}).join("range"!==D.config.mode?D.config.conjunction:D.l10n.rangeSeparator)}function X(e){void 0===e&&(e=!0),void 0!==D.mobileInput&&D.mobileFormatStr&&(D.mobileInput.value=void 0!==D.latestSelectedDateObj?D.formatDate(D.latestSelectedDateObj,D.mobileFormatStr):""),D.input.value=G(D.config.dateFormat),void 0!==D.altInput&&(D.altInput.value=G(D.config.altFormat)),!1!==e&&K("onValueUpdate")}function Z(e){var t=fe(e),n=D.prevMonthNav.contains(t),i=D.nextMonthNav.contains(t);n||i?E(n?-1:1):0<=D.yearElements.indexOf(t)?t.select():t.classList.contains("arrowUp")?D.changeYear(D.currentYear+1):t.classList.contains("arrowDown")&&D.changeYear(D.currentYear-1)}return function(){D.element=D.input=d,D.isOpen=!1,function(){var e=["wrap","weekNumbers","allowInput","allowInvalidPreload","clickOpens","time_24hr","enableTime","noCalendar","altInput","shorthandCurrentMonth","inline","static","enableSeconds","disableMobile"],t=ee(ee({},JSON.parse(JSON.stringify(d.dataset||{}))),u),n={};D.config.parseDate=t.parseDate,D.config.formatDate=t.formatDate,Object.defineProperty(D.config,"enable",{get:function(){return D.config._enable},set:function(e){D.config._enable=J(e)}}),Object.defineProperty(D.config,"disable",{get:function(){return D.config._disable},set:function(e){D.config._disable=J(e)}});var i="time"===t.mode;if(!t.dateFormat&&(t.enableTime||i)){var o=Ce.defaultConfig.dateFormat||ie.dateFormat;n.dateFormat=t.noCalendar||i?"H:i"+(t.enableSeconds?":S":""):o+" H:i"+(t.enableSeconds?":S":"")}if(t.altInput&&(t.enableTime||i)&&!t.altFormat){var r=Ce.defaultConfig.altFormat||ie.altFormat;n.altFormat=t.noCalendar||i?"h:i"+(t.enableSeconds?":S K":" K"):r+" h:i"+(t.enableSeconds?":S":"")+" K"}Object.defineProperty(D.config,"minDate",{get:function(){return D.config._minDate},set:Y("min")}),Object.defineProperty(D.config,"maxDate",{get:function(){return D.config._maxDate},set:Y("max")});var s=function(t){return function(e){D.config["min"===t?"_minTime":"_maxTime"]=D.parseDate(e,"H:i:S")}};Object.defineProperty(D.config,"minTime",{get:function(){return D.config._minTime},set:s("min")}),Object.defineProperty(D.config,"maxTime",{get:function(){return D.config._maxTime},set:s("max")}),"time"===t.mode&&(D.config.noCalendar=!0,D.config.enableTime=!0),Object.assign(D.config,n,t);for(var a=0;a<e.length;a++)D.config[e[a]]=!0===D.config[e[a]]||"true"===D.config[e[a]];ne.filter(function(e){return void 0!==D.config[e]}).forEach(function(e){D.config[e]=le(D.config[e]||[]).map(h)}),D.isMobile=!D.config.disableMobile&&!D.config.inline&&"single"===D.config.mode&&!D.config.disable.length&&!D.config.enable&&!D.config.weekNumbers&&/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);for(var a=0;a<D.config.plugins.length;a++){var l=D.config.plugins[a](D)||{};for(var c in l)-1<ne.indexOf(c)?D.config[c]=le(l[c]).map(h).concat(D.config[c]):void 0===t[c]&&(D.config[c]=l[c])}t.altInputClass||(D.config.altInputClass=H().className+" "+D.config.altInputClass),K("onParseConfig")}(),L(),function(){if(D.input=H(),!D.input)return D.config.errorHandler(new Error("Invalid input element specified"));D.input._type=D.input.type,D.input.type="text",D.input.classList.add("flatpickr-input"),D._input=D.input,D.config.altInput&&(D.altInput=ue(D.input.nodeName,D.config.altInputClass),D._input=D.altInput,D.altInput.placeholder=D.input.placeholder,D.altInput.disabled=D.input.disabled,D.altInput.required=D.input.required,D.altInput.tabIndex=D.input.tabIndex,D.altInput.type="text",D.input.setAttribute("type","hidden"),!D.config.static&&D.input.parentNode&&D.input.parentNode.insertBefore(D.altInput,D.input.nextSibling)),D.config.allowInput||D._input.setAttribute("readonly","readonly"),D._positionElement=D.config.positionElement||D._input}(),function(){D.selectedDates=[],D.now=D.parseDate(D.config.now)||new Date;var e=D.config.defaultDate||("INPUT"!==D.input.nodeName&&"TEXTAREA"!==D.input.nodeName||!D.input.placeholder||D.input.value!==D.input.placeholder?D.input.value:null);e&&U(e,D.config.dateFormat),D._initialDate=0<D.selectedDates.length?D.selectedDates[0]:D.config.minDate&&D.config.minDate.getTime()>D.now.getTime()?D.config.minDate:D.config.maxDate&&D.config.maxDate.getTime()<D.now.getTime()?D.config.maxDate:D.now,D.currentYear=D._initialDate.getFullYear(),D.currentMonth=D._initialDate.getMonth(),0<D.selectedDates.length&&(D.latestSelectedDateObj=D.selectedDates[0]),void 0!==D.config.minTime&&(D.config.minTime=D.parseDate(D.config.minTime,"H:i")),void 0!==D.config.maxTime&&(D.config.maxTime=D.parseDate(D.config.maxTime,"H:i")),D.minDateHasTime=!!D.config.minDate&&(0<D.config.minDate.getHours()||0<D.config.minDate.getMinutes()||0<D.config.minDate.getSeconds()),D.maxDateHasTime=!!D.config.maxDate&&(0<D.config.maxDate.getHours()||0<D.config.maxDate.getMinutes()||0<D.config.maxDate.getSeconds())}(),D.utils={getDaysInMonth:function(e,t){return void 0===e&&(e=D.currentMonth),void 0===t&&(t=D.currentYear),1===e&&(t%4==0&&t%100!=0||t%400==0)?29:D.l10n.daysInMonth[e]}},D.isMobile||function(){var e=window.document.createDocumentFragment();if(D.calendarContainer=ue("div","flatpickr-calendar"),D.calendarContainer.tabIndex=-1,!D.config.noCalendar){if(e.appendChild((D.monthNav=ue("div","flatpickr-months"),D.yearElements=[],D.monthElements=[],D.prevMonthNav=ue("span","flatpickr-prev-month"),D.prevMonthNav.innerHTML=D.config.prevArrow,D.nextMonthNav=ue("span","flatpickr-next-month"),D.nextMonthNav.innerHTML=D.config.nextArrow,x(),Object.defineProperty(D,"_hidePrevMonthArrow",{get:function(){return D.__hidePrevMonthArrow},set:function(e){D.__hidePrevMonthArrow!==e&&(ce(D.prevMonthNav,"flatpickr-disabled",e),D.__hidePrevMonthArrow=e)}}),Object.defineProperty(D,"_hideNextMonthArrow",{get:function(){return D.__hideNextMonthArrow},set:function(e){D.__hideNextMonthArrow!==e&&(ce(D.nextMonthNav,"flatpickr-disabled",e),D.__hideNextMonthArrow=e)}}),D.currentYearElement=D.yearElements[0],V(),D.monthNav)),D.innerContainer=ue("div","flatpickr-innerContainer"),D.config.weekNumbers){var t=function(){D.calendarContainer.classList.add("hasWeeks");var e=ue("div","flatpickr-weekwrapper");e.appendChild(ue("span","flatpickr-weekday",D.l10n.weekAbbreviation));var t=ue("div","flatpickr-weeks");return e.appendChild(t),{weekWrapper:e,weekNumbers:t}}(),n=t.weekWrapper,i=t.weekNumbers;D.innerContainer.appendChild(n),D.weekNumbers=i,D.weekWrapper=n}D.rContainer=ue("div","flatpickr-rContainer"),D.rContainer.appendChild(M()),D.daysContainer||(D.daysContainer=ue("div","flatpickr-days"),D.daysContainer.tabIndex=-1),b(),D.rContainer.appendChild(D.daysContainer),D.innerContainer.appendChild(D.rContainer),e.appendChild(D.innerContainer)}D.config.enableTime&&e.appendChild(function(){D.calendarContainer.classList.add("hasTime"),D.config.noCalendar&&D.calendarContainer.classList.add("noCalendar");var e=we(D.config);D.timeContainer=ue("div","flatpickr-time"),D.timeContainer.tabIndex=-1;var t=ue("span","flatpickr-time-separator",":"),n=de("flatpickr-hour",{"aria-label":D.l10n.hourAriaLabel});D.hourElement=n.getElementsByTagName("input")[0];var i=de("flatpickr-minute",{"aria-label":D.l10n.minuteAriaLabel});if(D.minuteElement=i.getElementsByTagName("input")[0],D.hourElement.tabIndex=D.minuteElement.tabIndex=-1,D.hourElement.value=re(D.latestSelectedDateObj?D.latestSelectedDateObj.getHours():D.config.time_24hr?e.hours:function(e){switch(e%24){case 0:case 12:return 12;default:return e%12}}(e.hours)),D.minuteElement.value=re(D.latestSelectedDateObj?D.latestSelectedDateObj.getMinutes():e.minutes),D.hourElement.setAttribute("step",D.config.hourIncrement.toString()),D.minuteElement.setAttribute("step",D.config.minuteIncrement.toString()),D.hourElement.setAttribute("min",D.config.time_24hr?"0":"1"),D.hourElement.setAttribute("max",D.config.time_24hr?"23":"12"),D.hourElement.setAttribute("maxlength","2"),D.minuteElement.setAttribute("min","0"),D.minuteElement.setAttribute("max","59"),D.minuteElement.setAttribute("maxlength","2"),D.timeContainer.appendChild(n),D.timeContainer.appendChild(t),D.timeContainer.appendChild(i),D.config.time_24hr&&D.timeContainer.classList.add("time24hr"),D.config.enableSeconds){D.timeContainer.classList.add("hasSeconds");var o=de("flatpickr-second");D.secondElement=o.getElementsByTagName("input")[0],D.secondElement.value=re(D.latestSelectedDateObj?D.latestSelectedDateObj.getSeconds():e.seconds),D.secondElement.setAttribute("step",D.minuteElement.getAttribute("step")),D.secondElement.setAttribute("min","0"),D.secondElement.setAttribute("max","59"),D.secondElement.setAttribute("maxlength","2"),D.timeContainer.appendChild(ue("span","flatpickr-time-separator",":")),D.timeContainer.appendChild(o)}return D.config.time_24hr||(D.amPM=ue("span","flatpickr-am-pm",D.l10n.amPM[se(11<(D.latestSelectedDateObj?D.hourElement.value:D.config.defaultHour))]),D.amPM.title=D.l10n.toggleTitle,D.amPM.tabIndex=-1,D.timeContainer.appendChild(D.amPM)),D.timeContainer}()),ce(D.calendarContainer,"rangeMode","range"===D.config.mode),ce(D.calendarContainer,"animate",!0===D.config.animate),ce(D.calendarContainer,"multiMonth",1<D.config.showMonths),D.calendarContainer.appendChild(e);var o=void 0!==D.config.appendTo&&void 0!==D.config.appendTo.nodeType;if((D.config.inline||D.config.static)&&(D.calendarContainer.classList.add(D.config.inline?"inline":"static"),D.config.inline&&(!o&&D.element.parentNode?D.element.parentNode.insertBefore(D.calendarContainer,D._input.nextSibling):void 0!==D.config.appendTo&&D.config.appendTo.appendChild(D.calendarContainer)),D.config.static)){var r=ue("div","flatpickr-wrapper");D.element.parentNode&&D.element.parentNode.insertBefore(r,D.element),r.appendChild(D.element),D.altInput&&r.appendChild(D.altInput),r.appendChild(D.calendarContainer)}D.config.static||D.config.inline||(void 0!==D.config.appendTo?D.config.appendTo:window.document.body).appendChild(D.calendarContainer)}(),function(){if(D.config.wrap&&["open","close","toggle","clear"].forEach(function(t){Array.prototype.forEach.call(D.element.querySelectorAll("[data-"+t+"]"),function(e){return s(e,"click",D[t])})}),D.isMobile)return function(){var e=D.config.enableTime?D.config.noCalendar?"time":"datetime-local":"date";D.mobileInput=ue("input",D.input.className+" flatpickr-mobile"),D.mobileInput.tabIndex=1,D.mobileInput.type=e,D.mobileInput.disabled=D.input.disabled,D.mobileInput.required=D.input.required,D.mobileInput.placeholder=D.input.placeholder,D.mobileFormatStr="datetime-local"===e?"Y-m-d\\TH:i:S":"date"===e?"Y-m-d":"H:i:S",0<D.selectedDates.length&&(D.mobileInput.defaultValue=D.mobileInput.value=D.formatDate(D.selectedDates[0],D.mobileFormatStr)),D.config.minDate&&(D.mobileInput.min=D.formatDate(D.config.minDate,"Y-m-d")),D.config.maxDate&&(D.mobileInput.max=D.formatDate(D.config.maxDate,"Y-m-d")),D.input.getAttribute("step")&&(D.mobileInput.step=String(D.input.getAttribute("step"))),D.input.type="hidden",void 0!==D.altInput&&(D.altInput.type="hidden");try{D.input.parentNode&&D.input.parentNode.insertBefore(D.mobileInput,D.input.nextSibling)}catch(e){}s(D.mobileInput,"change",function(e){D.setDate(fe(e).value,!1,D.mobileFormatStr),K("onChange"),K("onClose")})}();var e=ae(P,50);D._debouncedChange=ae(c,De),D.daysContainer&&!/iPhone|iPad|iPod/i.test(navigator.userAgent)&&s(D.daysContainer,"mouseover",function(e){"range"===D.config.mode&&F(fe(e))}),s(window.document.body,"keydown",j),D.config.inline||D.config.static||s(window,"resize",e),void 0!==window.ontouchstart?s(window.document,"touchstart",O):s(window.document,"mousedown",O),s(window.document,"focus",O,{capture:!0}),!0===D.config.clickOpens&&(s(D._input,"focus",D.open),s(D._input,"click",D.open)),void 0!==D.daysContainer&&(s(D.monthNav,"click",Z),s(D.monthNav,["keyup","increment"],n),s(D.daysContainer,"click",B)),void 0!==D.timeContainer&&void 0!==D.minuteElement&&void 0!==D.hourElement&&(s(D.timeContainer,["increment"],f),s(D.timeContainer,"blur",f,{capture:!0}),s(D.timeContainer,"click",r),s([D.hourElement,D.minuteElement],["focus","click"],function(e){return fe(e).select()}),void 0!==D.secondElement&&s(D.secondElement,"focus",function(){return D.secondElement&&D.secondElement.select()}),void 0!==D.amPM&&s(D.amPM,"click",function(e){f(e),c()})),D.config.allowInput&&s(D._input,"blur",N)}(),(D.selectedDates.length||D.config.noCalendar)&&(D.config.enableTime&&o(D.config.noCalendar?D.latestSelectedDateObj:void 0),X(!1)),t();var e=/^((?!chrome|android).)*safari/i.test(navigator.userAgent);!D.isMobile&&e&&R(),K("onReady")}(),D}function n(e,t){for(var n=Array.prototype.slice.call(e).filter(function(e){return e instanceof HTMLElement}),i=[],o=0;o<n.length;o++){var r=n[o];try{if(null!==r.getAttribute("data-fp-omit"))continue;void 0!==r._flatpickr&&(r._flatpickr.destroy(),r._flatpickr=void 0),r._flatpickr=s(r,t||{}),i.push(r._flatpickr)}catch(e){console.error(e)}}return 1===i.length?i[0]:i}"undefined"!=typeof HTMLElement&&"undefined"!=typeof HTMLCollection&&"undefined"!=typeof NodeList&&(HTMLCollection.prototype.flatpickr=NodeList.prototype.flatpickr=function(e){return n(this,e)},HTMLElement.prototype.flatpickr=function(e){return n([this],e)});var Ce=function(e,t){return"string"==typeof e?n(window.document.querySelectorAll(e),t):e instanceof Node?n([e],t):n(e,t)};return Ce.defaultConfig={},Ce.l10ns={en:ee({},oe),default:ee({},oe)},Ce.localize=function(e){Ce.l10ns.default=ee(ee({},Ce.l10ns.default),e)},Ce.setDefaults=function(e){Ce.defaultConfig=ee(ee({},Ce.defaultConfig),e)},Ce.parseDate=ge({}),Ce.formatDate=me({}),Ce.compareDates=ve,"undefined"!=typeof jQuery&&void 0!==jQuery.fn&&(jQuery.fn.flatpickr=function(e){return n(this,e)}),Date.prototype.fp_incr=function(e){return new Date(this.getFullYear(),this.getMonth(),this.getDate()+("string"==typeof e?parseInt(e,10):e))},"undefined"!=typeof window&&(window.flatpickr=Ce),Ce}),function(s){function t(e,t){this.element=s(e),this.options=t,this.init()}t.prototype.init=function(){this.element.chosen(this.options),this.container=this.element.next(".chosen-container"),this.search_field=this.container.find(".chosen-search-input"),this.is_multiple=this.container.hasClass("chosen-container-multi"),this.is_typing=!1,this.chosenXhr=null,this.events()},t.prototype.events=function(){var e=this;this.search_field.on("compositionstart",function(){e.is_typing=!0}),this.search_field.on("compositionend",function(){e.is_typing=!1,e.update_list()}),this.search_field.on("keyup",function(){e.update_list()}),this.search_field.on("focus",function(){e.search_field_focused()})},t.prototype.search_field_focused=function(){this.search_welcome_message(),0===this.options.min_length&&0===this.search_field.val().length&&this.update_list()},t.prototype.search_welcome_message=function(){var e=s.trim(this.search_field.val()),t=this.container.find(".chosen-results");0===t.children().length&&0===e.length&&t.html('<li class="no-results">'+this.options.typing_text.replace("%s",this.options.min_length-e.length)+"</li>")},t.prototype.update_list=function(){var t=this;if(this.search_welcome_message(),!this.is_typing){var e=s.trim(this.search_field.val()),n=e.length<this.options.min_length?this.options.typing_text.replace("%s",this.options.min_length-e.length):this.options.searching_text;this.container.find(".no-results").text(n),e!==this.search_field.data("prevVal")&&(this.search_field.data("prevVal",e),this.timer&&clearTimeout(this.timer),e.length<this.options.min_length||(this.timer=setTimeout(function(){t.chosenXhr&&t.chosenXhr.abort(),t.options.data.term=e,t.chosenXhr=window.wp.ajax.post("csf-chosen",t.options.data).done(function(e){t.show_results(e)}).fail(function(e){t.container.find(".no-results").text(e.error)})},this.options.type_delay)))}},t.prototype.show_results=function(e){var n=this;if(!this.is_typing&&null!==e){if(0===e.length)return this.element.data().chosen.no_results_clear(),void this.element.data().chosen.no_results(this.search_field.val());var i=[];this.element.find("option").each(function(){s(this).is(":selected")?i.push(s(this).val()+"-"+s(this).text()):s(this).attr("value").length&&s(this).remove()}),s.each(e,function(e,t){-1===s.inArray(t.value+"-"+t.text,i)&&s("<option />").attr("value",t.value).html(t.text).appendTo(n.element)});var t=this.search_field.val(),o=this.search_field.innerWidth();if(this.element.trigger("chosen:updated"),this.is_multiple){var r=this.element.parent().find(".csf-hide-select").val()||[];this.element.CSFChosenOrder(r,!0),this.search_field.css("width",o)}this.search_field.val(t),null!==this.chosenXhr.done&&this.chosenXhr.done(e)}},s.fn.CSFAjaxChosen=function(e){return this.each(function(){new t(this,e)})}}(jQuery),function(){var n,i,s=[].indexOf||function(e){for(var t=0,n=this.length;t<n;t++)if(t in this&&this[t]===e)return t;return-1},o={}.hasOwnProperty;i=function(){function e(){}return e.insertAt=function(e,t,n){return n.insertBefore(e,n.children[t].nextSibling)},e.getFlattenedOptionsAndGroups=function(e){var t,n,i,o,r,s,a,l,c;for(t=[],s=0,l=(i=Array.prototype.filter.call(e.childNodes,function(e){var t;return"OPTION"===(t=e.nodeName.toUpperCase())||"OPTGROUP"===t})).length;s<l;s++)if(n=i[s],t.push(n),"OPTGROUP"===n.nodeName.toUpperCase())for(a=0,c=(r=Array.prototype.filter.call(n.childNodes,function(e){return"OPTION"===e.nodeName.toUpperCase()})).length;a<c;a++)o=r[a],t.push(o);return t},e.isValidMultipleSelectElement=function(e){return null!=e&&"SELECT"===e.nodeName&&e.multiple},e.getChosenUIContainer=function(e){return""!==e.id?document.getElementById(e.id.replace(/-/g,"_")+"_chosen"):this.searchChosenUIContainer(e)},e.isChosenified=function(e){return null!=this.getChosenUIContainer(e)},e.forceSelection=function(e,t){var n,i,o,r;for(o=this.getFlattenedOptionsAndGroups(e),n=0;n<o.length;)r=(i=o[n]).getAttribute("value"),0<=s.call(t,r)?(i.selected=!0,i.setAttribute("selected","")):(i.selected=!1,i.removeAttribute("selected")),n++;return this.triggerEvent(e,"chosen:updated")},e.CSFChosenOrder=function(e,t,n){var i,o,r,s,a,l,c,u,h,d,f,p,_,m;if(null!=this.getDOMElement&&(e=this.getDOMElement(e)),this.isValidMultipleSelectElement(e)&&null!=(o=this.getChosenUIContainer(e))&&t instanceof Array){for(t=t.map(Function.prototype.call,String.prototype.trim),c=this.getFlattenedOptionsAndGroups(e),null!=n&&!0===n&&this.forceSelection(e,t),m=[],r=d=0,p=t.length;d<p;r=++d){for(a=t[r],u=null,s=f=0,_=c.length;f<_;s=++f)c[s].value===a&&(u=s);i=o.querySelectorAll(".search-choice"),h=this.relAttributeName,null!=(l=Array.prototype.filter.call(i,function(e){return null!=e.querySelector("a.search-choice-close["+h+'="'+u+'"]')})[0])&&(o.querySelector("ul.chosen-choices"),m.push(this.insertAt(l,r,o.querySelector("ul.chosen-choices"))))}return m}},e}(),(n=jQuery).fn.extend({CSFChosenOrder:function(e,t){return _CSFChosenOrder.CSFChosenOrder(this,e,t)}}),this._CSFChosenOrder=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return function(e,t){for(var n in t)o.call(t,n)&&(e[n]=t[n]);function i(){this.constructor=e}i.prototype=t.prototype,e.prototype=new i,e.__super__=t.prototype}(t,i),t.relAttributeName="data-option-array-index",t.isjQueryObject=function(e){return"undefined"!=typeof jQuery&&null!==jQuery&&e instanceof jQuery},t.getDOMElement=function(e){return this.isjQueryObject(e)?e.get(0):e},t.searchChosenUIContainer=function(e){return null!=n(e).data("chosen")?n(e).data("chosen").container[0]:n(e).next(".chosen-container.chosen-container-multi").get(0)},t.triggerEvent=function(e,t){return n(e).trigger(t)},t}()}.call(this),function(){var a,n,o,s,r={}.hasOwnProperty;(s=function(){function e(){this.options_index=0,this.parsed=[]}return e.prototype.add_node=function(e){return"OPTGROUP"===e.nodeName.toUpperCase()?this.add_group(e):this.add_option(e)},e.prototype.add_group=function(e){var t,n,i,o,r,s;for(t=this.parsed.length,this.parsed.push({array_index:t,group:!0,label:e.label,title:e.title?e.title:void 0,children:0,disabled:e.disabled,classes:e.className}),s=[],n=0,i=(r=e.childNodes).length;n<i;n++)o=r[n],s.push(this.add_option(o,t,e.disabled));return s},e.prototype.add_option=function(e,t,n){if("OPTION"===e.nodeName.toUpperCase())return""!==e.text?(null!=t&&(this.parsed[t].children+=1),this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,value:e.value,text:e.text,html:e.innerHTML,title:e.title?e.title:void 0,selected:e.selected,disabled:!0===n?n:e.disabled,group_array_index:t,group_label:null!=t?this.parsed[t].label:null,classes:e.className,style:e.style.cssText})):this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,empty:!0}),this.options_index+=1},e}()).select_to_array=function(e){var t,n,i,o,r;for(o=new s,n=0,i=(r=e.childNodes).length;n<i;n++)t=r[n],o.add_node(t);return o.parsed},n=function(){function o(e,t){var n,i;this.form_field=e,this.options=null!=t?t:{},this.label_click_handler=(n=this.label_click_handler,i=this,function(){return n.apply(i,arguments)}),o.browser_is_supported()&&(this.is_multiple=this.form_field.multiple,this.set_default_text(),this.set_default_values(),this.setup(),this.set_up_html(),this.register_observers(),this.on_ready())}return o.prototype.set_default_values=function(){var t,n;return this.click_test_action=(t=this,function(e){return t.test_active_click(e)}),this.activate_action=(n=this,function(e){return n.activate_field(e)}),this.active_field=!1,this.mouse_on_container=!1,this.results_showing=!1,this.result_highlighted=null,this.is_rtl=this.options.rtl||/\bchosen-rtl\b/.test(this.form_field.className),this.allow_single_deselect=null!=this.options.allow_single_deselect&&null!=this.form_field.options[0]&&""===this.form_field.options[0].text&&this.options.allow_single_deselect,this.disable_search_threshold=this.options.disable_search_threshold||0,this.disable_search=this.options.disable_search||!1,this.enable_split_word_search=null==this.options.enable_split_word_search||this.options.enable_split_word_search,this.group_search=null==this.options.group_search||this.options.group_search,this.search_contains=this.options.search_contains||!1,this.single_backstroke_delete=null==this.options.single_backstroke_delete||this.options.single_backstroke_delete,this.max_selected_options=this.options.max_selected_options||1/0,this.inherit_select_classes=this.options.inherit_select_classes||!1,this.display_selected_options=null==this.options.display_selected_options||this.options.display_selected_options,this.display_disabled_options=null==this.options.display_disabled_options||this.options.display_disabled_options,this.include_group_label_in_selected=this.options.include_group_label_in_selected||!1,this.max_shown_results=this.options.max_shown_results||Number.POSITIVE_INFINITY,this.case_sensitive_search=this.options.case_sensitive_search||!1,this.hide_results_on_select=null==this.options.hide_results_on_select||this.options.hide_results_on_select},o.prototype.set_default_text=function(){return this.form_field.getAttribute("data-placeholder")?this.default_text=this.form_field.getAttribute("data-placeholder"):this.is_multiple?this.default_text=this.options.placeholder_text_multiple||this.options.placeholder_text||o.default_multiple_text:this.default_text=this.options.placeholder_text_single||this.options.placeholder_text||o.default_single_text,this.default_text=this.escape_html(this.default_text),this.results_none_found=this.form_field.getAttribute("data-no_results_text")||this.options.no_results_text||o.default_no_result_text},o.prototype.choice_label=function(e){return this.include_group_label_in_selected&&null!=e.group_label?"<b class='group-name'>"+this.escape_html(e.group_label)+"</b>"+e.html:e.html},o.prototype.mouse_enter=function(){return this.mouse_on_container=!0},o.prototype.mouse_leave=function(){return this.mouse_on_container=!1},o.prototype.input_focus=function(e){if(this.is_multiple){if(!this.active_field)return setTimeout((t=this,function(){return t.container_mousedown()}),50)}else if(!this.active_field)return this.activate_field();var t},o.prototype.input_blur=function(e){if(!this.mouse_on_container)return this.active_field=!1,setTimeout((t=this,function(){return t.blur_test()}),100);var t},o.prototype.label_click_handler=function(e){return this.is_multiple?this.container_mousedown(e):this.activate_field()},o.prototype.results_option_build=function(e){var t,n,i,o,r,s,a;for(t="",o=a=0,r=(s=this.results_data).length;o<r&&((i="")!==(i=(n=s[o]).group?this.result_add_group(n):this.result_add_option(n))&&(a++,t+=i),(null!=e?e.first:void 0)&&(n.selected&&this.is_multiple?this.choice_build(n):n.selected&&!this.is_multiple&&this.single_set_selected_text(this.choice_label(n))),!(a>=this.max_shown_results));o++);return t},o.prototype.result_add_option=function(e){var t,n;return e.search_match&&this.include_option_in_results(e)?(t=[],e.disabled||e.selected&&this.is_multiple||t.push("active-result"),!e.disabled||e.selected&&this.is_multiple||t.push("disabled-result"),e.selected&&t.push("result-selected"),null!=e.group_array_index&&t.push("group-option"),""!==e.classes&&t.push(e.classes),(n=document.createElement("li")).className=t.join(" "),e.style&&(n.style.cssText=e.style),n.setAttribute("data-option-array-index",e.array_index),n.innerHTML=e.highlighted_html||e.html,e.title&&(n.title=e.title),this.outerHTML(n)):""},o.prototype.result_add_group=function(e){var t,n;return(e.search_match||e.group_match)&&0<e.active_options?((t=[]).push("group-result"),e.classes&&t.push(e.classes),(n=document.createElement("li")).className=t.join(" "),n.innerHTML=e.highlighted_html||this.escape_html(e.label),e.title&&(n.title=e.title),this.outerHTML(n)):""},o.prototype.results_update_field=function(){if(this.set_default_text(),this.is_multiple||this.results_reset_cleanup(),this.result_clear_highlight(),this.results_build(),this.results_showing)return this.winnow_results()},o.prototype.reset_single_select_options=function(){var e,t,n,i,o;for(o=[],e=0,t=(n=this.results_data).length;e<t;e++)(i=n[e]).selected?o.push(i.selected=!1):o.push(void 0);return o},o.prototype.results_toggle=function(){return this.results_showing?this.results_hide():this.results_show()},o.prototype.results_search=function(e){return this.results_showing?this.winnow_results():this.results_show()},o.prototype.winnow_results=function(e){var t,n,i,o,r,s,a,l,c,u,h,d,f,p,_;for(this.no_results_clear(),u=0,t=(a=this.get_search_text()).replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),c=this.get_search_regex(t),i=0,o=(l=this.results_data).length;i<o;i++)(r=l[i]).search_match=!1,d=h=null,r.highlighted_html="",this.include_option_in_results(r)&&(r.group&&(r.group_match=!1,r.active_options=0),null!=r.group_array_index&&this.results_data[r.group_array_index]&&(0===(h=this.results_data[r.group_array_index]).active_options&&h.search_match&&(u+=1),h.active_options+=1),_=r.group?r.label:r.text,r.group&&!this.group_search||(d=this.search_string_match(_,c),r.search_match=null!=d,r.search_match&&!r.group&&(u+=1),r.search_match?(a.length&&(f=d.index,s=_.slice(0,f),n=_.slice(f,f+a.length),p=_.slice(f+a.length),r.highlighted_html=this.escape_html(s)+"<em>"+this.escape_html(n)+"</em>"+this.escape_html(p)),null!=h&&(h.group_match=!0)):null!=r.group_array_index&&this.results_data[r.group_array_index].search_match&&(r.search_match=!0)));return this.result_clear_highlight(),u<1&&a.length?(this.update_results_content(""),this.no_results(a)):(this.update_results_content(this.results_option_build()),(null!=e?e.skip_highlight:void 0)?void 0:this.winnow_results_set_highlight())},o.prototype.get_search_regex=function(e){var t,n;return n=this.search_contains?e:"(^|\\s|\\b)"+e+"[^\\s]*",this.enable_split_word_search||this.search_contains||(n="^"+n),t=this.case_sensitive_search?"":"i",new RegExp(n,t)},o.prototype.search_string_match=function(e,t){var n;return n=t.exec(e),!this.search_contains&&(null!=n?n[1]:void 0)&&(n.index+=1),n},o.prototype.choices_count=function(){var e,t,n;if(null!=this.selected_option_count)return this.selected_option_count;for(e=this.selected_option_count=0,t=(n=this.form_field.options).length;e<t;e++)n[e].selected&&(this.selected_option_count+=1);return this.selected_option_count},o.prototype.choices_click=function(e){if(e.preventDefault(),this.activate_field(),!this.results_showing&&!this.is_disabled)return this.results_show()},o.prototype.keydown_checker=function(e){var t,n;switch(n=null!=(t=e.which)?t:e.keyCode,this.search_field_scale(),8!==n&&this.pending_backstroke&&this.clear_backstroke(),n){case 8:this.backstroke_length=this.get_search_field_value().length;break;case 9:this.results_showing&&!this.is_multiple&&this.result_select(e),this.mouse_on_container=!1;break;case 13:case 27:this.results_showing&&e.preventDefault();break;case 32:this.disable_search&&e.preventDefault();break;case 38:e.preventDefault(),this.keyup_arrow();break;case 40:e.preventDefault(),this.keydown_arrow()}},o.prototype.keyup_checker=function(e){var t,n;switch(n=null!=(t=e.which)?t:e.keyCode,this.search_field_scale(),n){case 8:this.is_multiple&&this.backstroke_length<1&&0<this.choices_count()?this.keydown_backstroke():this.pending_backstroke||(this.result_clear_highlight(),this.results_search());break;case 13:e.preventDefault(),this.results_showing&&this.result_select(e);break;case 27:this.results_showing&&this.results_hide();break;case 9:case 16:case 17:case 18:case 38:case 40:case 91:break;default:this.results_search()}},o.prototype.clipboard_event_checker=function(e){var t;if(!this.is_disabled)return setTimeout((t=this,function(){return t.results_search()}),50)},o.prototype.container_width=function(){return null!=this.options.width?this.options.width:this.form_field.offsetWidth+"px"},o.prototype.include_option_in_results=function(e){return!(this.is_multiple&&!this.display_selected_options&&e.selected)&&(!(!this.display_disabled_options&&e.disabled)&&!e.empty)},o.prototype.search_results_touchstart=function(e){return this.touch_started=!0,this.search_results_mouseover(e)},o.prototype.search_results_touchmove=function(e){return this.touch_started=!1,this.search_results_mouseout(e)},o.prototype.search_results_touchend=function(e){if(this.touch_started)return this.search_results_mouseup(e)},o.prototype.outerHTML=function(e){var t;return e.outerHTML?e.outerHTML:((t=document.createElement("div")).appendChild(e),t.innerHTML)},o.prototype.get_single_html=function(){return'<a class="chosen-single chosen-default">\n <span>'+this.default_text+'</span>\n <div><b></b></div>\n</a>\n<div class="chosen-drop">\n <div class="chosen-search">\n <input class="chosen-search-input" type="text" autocomplete="off" />\n </div>\n <ul class="chosen-results"></ul>\n</div>'},o.prototype.get_multi_html=function(){return'<ul class="chosen-choices">\n <li class="search-field">\n <input class="chosen-search-input" type="text" autocomplete="off" value="'+this.default_text+'" />\n </li>\n</ul>\n<div class="chosen-drop">\n <ul class="chosen-results"></ul>\n</div>'},o.prototype.get_no_results_html=function(e){return'<li class="no-results">\n '+this.results_none_found+" <span>"+this.escape_html(e)+"</span>\n</li>"},o.browser_is_supported=function(){return"Microsoft Internet Explorer"===window.navigator.appName?8<=document.documentMode:!(/iP(od|hone)/i.test(window.navigator.userAgent)||/IEMobile/i.test(window.navigator.userAgent)||/Windows Phone/i.test(window.navigator.userAgent)||/BlackBerry/i.test(window.navigator.userAgent)||/BB10/i.test(window.navigator.userAgent)||/Android.*Mobile/i.test(window.navigator.userAgent))},o.default_multiple_text="Select Some Options",o.default_single_text="Select an Option",o.default_no_result_text="No results match",o}(),(a=jQuery).fn.extend({chosen:function(i){return n.browser_is_supported()?this.each(function(e){var t,n;n=(t=a(this)).data("chosen"),"destroy"!==i?n instanceof o||t.data("chosen",new o(this,i)):n instanceof o&&n.destroy()}):this}}),o=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return function(e,t){for(var n in t)r.call(t,n)&&(e[n]=t[n]);function i(){this.constructor=e}i.prototype=t.prototype,e.prototype=new i,e.__super__=t.prototype}(t,n),t.prototype.setup=function(){return this.form_field_jq=a(this.form_field),this.current_selectedIndex=this.form_field.selectedIndex},t.prototype.set_up_html=function(){var e,t;return(e=["chosen-container"]).push("chosen-container-"+(this.is_multiple?"multi":"single")),this.inherit_select_classes&&this.form_field.className&&e.push(this.form_field.className),this.is_rtl&&e.push("chosen-rtl"),t={class:e.join(" "),title:this.form_field.title},this.form_field.id.length&&(t.id=this.form_field.id.replace(/[^\w]/g,"_")+"_chosen"),this.container=a("<div />",t),this.container.width(this.container_width()),this.is_multiple?this.container.html(this.get_multi_html()):this.container.html(this.get_single_html()),this.form_field_jq.hide().after(this.container),this.dropdown=this.container.find("div.chosen-drop").first(),this.search_field=this.container.find("input").first(),this.search_results=this.container.find("ul.chosen-results").first(),this.search_field_scale(),this.search_no_results=this.container.find("li.no-results").first(),this.is_multiple?(this.search_choices=this.container.find("ul.chosen-choices").first(),this.search_container=this.container.find("li.search-field").first()):(this.search_container=this.container.find("div.chosen-search").first(),this.selected_item=this.container.find(".chosen-single").first()),this.results_build(),this.set_tab_index(),this.set_label_behavior()},t.prototype.on_ready=function(){return this.form_field_jq.trigger("chosen:ready",{chosen:this})},t.prototype.register_observers=function(){var t,n,i,o,r,s,a,l,c,u,h,d,f,p,_,m,g,v,y,b,w,D,C,x;return this.container.on("touchstart.chosen",(t=this,function(e){t.container_mousedown(e)})),this.container.on("touchend.chosen",(n=this,function(e){n.container_mouseup(e)})),this.container.on("mousedown.chosen",(i=this,function(e){i.container_mousedown(e)})),this.container.on("mouseup.chosen",(o=this,function(e){o.container_mouseup(e)})),this.container.on("mouseenter.chosen",(r=this,function(e){r.mouse_enter(e)})),this.container.on("mouseleave.chosen",(s=this,function(e){s.mouse_leave(e)})),this.search_results.on("mouseup.chosen",(a=this,function(e){a.search_results_mouseup(e)})),this.search_results.on("mouseover.chosen",(l=this,function(e){l.search_results_mouseover(e)})),this.search_results.on("mouseout.chosen",(c=this,function(e){c.search_results_mouseout(e)})),this.search_results.on("mousewheel.chosen DOMMouseScroll.chosen",(u=this,function(e){u.search_results_mousewheel(e)})),this.search_results.on("touchstart.chosen",(h=this,function(e){h.search_results_touchstart(e)})),this.search_results.on("touchmove.chosen",(d=this,function(e){d.search_results_touchmove(e)})),this.search_results.on("touchend.chosen",(f=this,function(e){f.search_results_touchend(e)})),this.form_field_jq.on("chosen:updated.chosen",(p=this,function(e){p.results_update_field(e)})),this.form_field_jq.on("chosen:activate.chosen",(_=this,function(e){_.activate_field(e)})),this.form_field_jq.on("chosen:open.chosen",(m=this,function(e){m.container_mousedown(e)})),this.form_field_jq.on("chosen:close.chosen",(g=this,function(e){g.close_field(e)})),this.search_field.on("blur.chosen",(v=this,function(e){v.input_blur(e)})),this.search_field.on("keyup.chosen",(y=this,function(e){y.keyup_checker(e)})),this.search_field.on("keydown.chosen",(b=this,function(e){b.keydown_checker(e)})),this.search_field.on("focus.chosen",(w=this,function(e){w.input_focus(e)})),this.search_field.on("cut.chosen",(D=this,function(e){D.clipboard_event_checker(e)})),this.search_field.on("paste.chosen",(C=this,function(e){C.clipboard_event_checker(e)})),this.is_multiple?this.search_choices.on("click.chosen",(x=this,function(e){x.choices_click(e)})):this.container.on("click.chosen",function(e){e.preventDefault()})},t.prototype.destroy=function(){return a(this.container[0].ownerDocument).off("click.chosen",this.click_test_action),0<this.form_field_label.length&&this.form_field_label.off("click.chosen"),this.search_field[0].tabIndex&&(this.form_field_jq[0].tabIndex=this.search_field[0].tabIndex),this.container.remove(),this.form_field_jq.removeData("chosen"),this.form_field_jq.show()},t.prototype.search_field_disabled=function(){return this.is_disabled=this.form_field.disabled||this.form_field_jq.parents("fieldset").is(":disabled"),this.container.toggleClass("chosen-disabled",this.is_disabled),this.search_field[0].disabled=this.is_disabled,this.is_multiple||this.selected_item.off("focus.chosen",this.activate_field),this.is_disabled?this.close_field():this.is_multiple?void 0:this.selected_item.on("focus.chosen",this.activate_field)},t.prototype.container_mousedown=function(e){var t;if(!this.is_disabled)return!e||"mousedown"!==(t=e.type)&&"touchstart"!==t||this.results_showing||e.preventDefault(),null!=e&&a(e.target).hasClass("search-choice-close")?void 0:(this.active_field?this.is_multiple||!e||a(e.target)[0]!==this.selected_item[0]&&!a(e.target).parents("a.chosen-single").length||(e.preventDefault(),this.results_toggle()):(this.is_multiple&&this.search_field.val(""),a(this.container[0].ownerDocument).on("click.chosen",this.click_test_action),this.results_show()),this.activate_field())},t.prototype.container_mouseup=function(e){if("ABBR"===e.target.nodeName&&!this.is_disabled)return this.results_reset(e)},t.prototype.search_results_mousewheel=function(e){var t;if(e.originalEvent&&(t=e.originalEvent.deltaY||-e.originalEvent.wheelDelta||e.originalEvent.detail),null!=t)return e.preventDefault(),"DOMMouseScroll"===e.type&&(t*=40),this.search_results.scrollTop(t+this.search_results.scrollTop())},t.prototype.blur_test=function(e){if(!this.active_field&&this.container.hasClass("chosen-container-active"))return this.close_field()},t.prototype.close_field=function(){return a(this.container[0].ownerDocument).off("click.chosen",this.click_test_action),this.active_field=!1,this.results_hide(),this.container.removeClass("chosen-container-active"),this.clear_backstroke(),this.show_search_field_default(),this.search_field_scale(),this.search_field.blur()},t.prototype.activate_field=function(){if(!this.is_disabled)return this.container.addClass("chosen-container-active"),this.active_field=!0,this.search_field.val(this.search_field.val()),this.search_field.focus()},t.prototype.test_active_click=function(e){var t;return(t=a(e.target).closest(".chosen-container")).length&&this.container[0]===t[0]?this.active_field=!0:this.close_field()},t.prototype.results_build=function(){return this.parsing=!0,this.selected_option_count=null,this.results_data=s.select_to_array(this.form_field),this.is_multiple?this.search_choices.find("li.search-choice").remove():(this.single_set_selected_text(),this.disable_search||this.form_field.options.length<=this.disable_search_threshold?(this.search_field[0].readOnly=!0,this.container.addClass("chosen-container-single-nosearch")):(this.search_field[0].readOnly=!1,this.container.removeClass("chosen-container-single-nosearch"))),this.update_results_content(this.results_option_build({first:!0})),this.search_field_disabled(),this.show_search_field_default(),this.search_field_scale(),this.parsing=!1},t.prototype.result_do_highlight=function(e){var t,n,i,o;if(e.length){if(this.result_clear_highlight(),this.result_highlight=e,this.result_highlight.addClass("highlighted"),(i=parseInt(this.search_results.css("maxHeight"),10))+(o=this.search_results.scrollTop())<=(t=(n=this.result_highlight.position().top+this.search_results.scrollTop())+this.result_highlight.outerHeight()))return this.search_results.scrollTop(0<t-i?t-i:0);if(n<o)return this.search_results.scrollTop(n)}},t.prototype.result_clear_highlight=function(){return this.result_highlight&&this.result_highlight.removeClass("highlighted"),this.result_highlight=null},t.prototype.results_show=function(){return this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.container.addClass("chosen-with-drop"),this.results_showing=!0,this.search_field.focus(),this.search_field.val(this.get_search_field_value()),this.winnow_results(),this.form_field_jq.trigger("chosen:showing_dropdown",{chosen:this}))},t.prototype.update_results_content=function(e){return this.search_results.html(e)},t.prototype.results_hide=function(){return this.results_showing&&(this.result_clear_highlight(),this.container.removeClass("chosen-with-drop"),this.form_field_jq.trigger("chosen:hiding_dropdown",{chosen:this})),this.results_showing=!1},t.prototype.set_tab_index=function(e){var t;if(this.form_field.tabIndex)return t=this.form_field.tabIndex,this.form_field.tabIndex=-1,this.search_field[0].tabIndex=t},t.prototype.set_label_behavior=function(){if(this.form_field_label=this.form_field_jq.parents("label"),!this.form_field_label.length&&this.form_field.id.length&&(this.form_field_label=a("label[for='"+this.form_field.id+"']")),0<this.form_field_label.length)return this.form_field_label.on("click.chosen",this.label_click_handler)},t.prototype.show_search_field_default=function(){return this.is_multiple&&this.choices_count()<1&&!this.active_field?(this.search_field.val(this.default_text),this.search_field.addClass("default")):(this.search_field.val(""),this.search_field.removeClass("default"))},t.prototype.search_results_mouseup=function(e){var t;if((t=a(e.target).hasClass("active-result")?a(e.target):a(e.target).parents(".active-result").first()).length)return this.result_highlight=t,this.result_select(e),this.search_field.focus()},t.prototype.search_results_mouseover=function(e){var t;if(t=a(e.target).hasClass("active-result")?a(e.target):a(e.target).parents(".active-result").first())return this.result_do_highlight(t)},t.prototype.search_results_mouseout=function(e){if(a(e.target).hasClass("active-result")||a(e.target).parents(".active-result").first())return this.result_clear_highlight()},t.prototype.choice_build=function(e){var t,n,i;return t=a("<li />",{class:"search-choice"}).html("<span>"+this.choice_label(e)+"</span>"),e.disabled?t.addClass("search-choice-disabled"):((n=a("<a />",{class:"search-choice-close","data-option-array-index":e.array_index})).on("click.chosen",(i=this,function(e){return i.choice_destroy_link_click(e)})),t.append(n)),this.search_container.before(t)},t.prototype.choice_destroy_link_click=function(e){if(e.preventDefault(),e.stopPropagation(),!this.is_disabled)return this.choice_destroy(a(e.target))},t.prototype.choice_destroy=function(e){if(this.result_deselect(e[0].getAttribute("data-option-array-index")))return this.active_field?this.search_field.focus():this.show_search_field_default(),this.is_multiple&&0<this.choices_count()&&this.get_search_field_value().length<1&&this.results_hide(),e.parents("li").first().remove(),this.search_field_scale()},t.prototype.results_reset=function(){if(this.reset_single_select_options(),this.form_field.options[0].selected=!0,this.single_set_selected_text(),this.show_search_field_default(),this.results_reset_cleanup(),this.trigger_form_field_change(),this.active_field)return this.results_hide()},t.prototype.results_reset_cleanup=function(){return this.current_selectedIndex=this.form_field.selectedIndex,this.selected_item.find("abbr").remove()},t.prototype.result_select=function(e){var t,n;if(this.result_highlight)return t=this.result_highlight,this.result_clear_highlight(),this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.is_multiple?t.removeClass("active-result"):this.reset_single_select_options(),t.addClass("result-selected"),(n=this.results_data[t[0].getAttribute("data-option-array-index")]).selected=!0,this.form_field.options[n.options_index].selected=!0,this.selected_option_count=null,this.is_multiple?this.choice_build(n):this.single_set_selected_text(this.choice_label(n)),this.is_multiple&&(!this.hide_results_on_select||e.metaKey||e.ctrlKey)?e.metaKey||e.ctrlKey?this.winnow_results({skip_highlight:!0}):(this.search_field.val(""),this.winnow_results()):(this.results_hide(),this.show_search_field_default()),(this.is_multiple||this.form_field.selectedIndex!==this.current_selectedIndex)&&this.trigger_form_field_change({selected:this.form_field.options[n.options_index].value}),this.current_selectedIndex=this.form_field.selectedIndex,e.preventDefault(),this.search_field_scale())},t.prototype.single_set_selected_text=function(e){return null==e&&(e=this.default_text),e===this.default_text?this.selected_item.addClass("chosen-default"):(this.single_deselect_control_build(),this.selected_item.removeClass("chosen-default")),this.selected_item.find("span").html(e)},t.prototype.result_deselect=function(e){var t;return t=this.results_data[e],!this.form_field.options[t.options_index].disabled&&(t.selected=!1,this.form_field.options[t.options_index].selected=!1,this.selected_option_count=null,this.result_clear_highlight(),this.results_showing&&this.winnow_results(),this.trigger_form_field_change({deselected:this.form_field.options[t.options_index].value}),this.search_field_scale(),!0)},t.prototype.single_deselect_control_build=function(){if(this.allow_single_deselect)return this.selected_item.find("abbr").length||this.selected_item.find("span").first().after('<abbr class="search-choice-close"></abbr>'),this.selected_item.addClass("chosen-single-with-deselect")},t.prototype.get_search_field_value=function(){return this.search_field.val()},t.prototype.get_search_text=function(){return a.trim(this.get_search_field_value())},t.prototype.escape_html=function(e){return a("<div/>").text(e).html()},t.prototype.winnow_results_set_highlight=function(){var e,t;if(null!=(e=(t=this.is_multiple?[]:this.search_results.find(".result-selected.active-result")).length?t.first():this.search_results.find(".active-result").first()))return this.result_do_highlight(e)},t.prototype.no_results=function(e){var t;return t=this.get_no_results_html(e),this.search_results.append(t),this.form_field_jq.trigger("chosen:no_results",{chosen:this})},t.prototype.no_results_clear=function(){return this.search_results.find(".no-results").remove()},t.prototype.keydown_arrow=function(){var e;return this.results_showing&&this.result_highlight?(e=this.result_highlight.nextAll("li.active-result").first())?this.result_do_highlight(e):void 0:this.results_show()},t.prototype.keyup_arrow=function(){var e;return this.results_showing||this.is_multiple?this.result_highlight?(e=this.result_highlight.prevAll("li.active-result")).length?this.result_do_highlight(e.first()):(0<this.choices_count()&&this.results_hide(),this.result_clear_highlight()):void 0:this.results_show()},t.prototype.keydown_backstroke=function(){var e;return this.pending_backstroke?(this.choice_destroy(this.pending_backstroke.find("a").first()),this.clear_backstroke()):(e=this.search_container.siblings("li.search-choice").last()).length&&!e.hasClass("search-choice-disabled")?(this.pending_backstroke=e,this.single_backstroke_delete?this.keydown_backstroke():this.pending_backstroke.addClass("search-choice-focus")):void 0},t.prototype.clear_backstroke=function(){return this.pending_backstroke&&this.pending_backstroke.removeClass("search-choice-focus"),this.pending_backstroke=null},t.prototype.search_field_scale=function(){var e,t,n,i,o,r,s;if(this.is_multiple){for(o={position:"absolute",left:"-1000px",top:"-1000px",display:"none",whiteSpace:"pre"},t=0,n=(r=["fontSize","fontStyle","fontWeight","fontFamily","lineHeight","textTransform","letterSpacing"]).length;t<n;t++)o[i=r[t]]=this.search_field.css(i);return(e=a("<div />").css(o)).text(this.get_search_field_value()),a("body").append(e),s=e.width()+25,e.remove(),this.container.is(":visible")&&(s=Math.min(this.container.outerWidth()-10,s)),this.search_field.width(s)}},t.prototype.trigger_form_field_change=function(e){return this.form_field_jq.trigger("input",e),this.form_field_jq.trigger("change",e)},t}()}.call(this),function(s){"use strict";function o(e,t,n){this.init(e,t,n)}function e(){this.rules=[]}s.extend(o.prototype,{init:function(e,t,n){this.controller=e,this.condition=t,this.value=n,this.rules=[],this.controls=[]},evalCondition:function(e,t,n,i,o){if("=="==n)return this.checkBoolean(i)==this.checkBoolean(o);if("!="==n)return this.checkBoolean(i)!=this.checkBoolean(o);if(">="==n)return Number(o)>=Number(i);if("<="==n)return Number(o)<=Number(i);if(">"==n)return Number(o)>Number(i);if("<"==n)return Number(o)<Number(i);if("()"==n)return window[i](e,t,o);if("any"==n){if(s.isArray(o)){for(var r=o.length-1;0<=r;r--)if(-1!==s.inArray(o[r],i.split(",")))return!0}else if(-1!==s.inArray(o,i.split(",")))return!0}else if("not-any"==n)if(s.isArray(o)){for(r=o.length-1;0<=r;r--)if(-1==s.inArray(o[r],i.split(",")))return!0}else if(-1==s.inArray(o,i.split(",")))return!0;return!1},checkBoolean:function(e){switch(e){case!0:case"true":case 1:case"1":e=!0;break;case null:case!1:case"false":case 0:case"0":e=!1}return e},checkCondition:function(e){if(!this.condition)return!0;var t=e.find(this.controller),n=this.getControlValue(e,t);return void 0!==n&&(n=this.normalizeValue(t,this.value,n),this.evalCondition(e,t,this.condition,this.value,n))},normalizeValue:function(e,t,n){return"number"==typeof t?parseFloat(n):n},getControlValue:function(e,t){return 1<t.length&&("radio"==t.attr("type")||"checkbox"==t.attr("type"))?t.filter(":checked").map(function(){return this.value}).get():"checkbox"==t.attr("type")||"radio"==t.attr("type")?t.is(":checked"):t.val()},createRule:function(e,t,n){var i=new o(e,t,n);return this.rules.push(i),i},include:function(e){this.controls.push(e)},applyRule:function(n,e){var t;t=void 0===e?this.checkCondition(n):e;var i=s.map(this.controls,function(e,t){return n.find(e)});t?(s(i).each(function(){s(this).removeClass("csf-depend-on")}),s(this.rules).each(function(){this.applyRule(n)})):(s(i).each(function(){s(this).addClass("csf-depend-on")}),s(this.rules).each(function(){this.applyRule(n,!1)}))}}),s.extend(e.prototype,{createRule:function(e,t,n){var i=new o(e,t,n);return this.rules.push(i),i},applyRules:function(e){s(this.rules).each(function(){this.applyRule(e)})}}),s.csf_deps={createRuleset:function(){return new e},enable:function(n,i,o){return n.on("change keyup",function(e){var t=e.target.getAttribute("data-depend-id")||e.target.getAttribute("data-sub-depend-id");-1!==o.indexOf(t)&&i.applyRules(n)}),i.applyRules(n),!0}}}(jQuery),function(e,n){if("function"==typeof define&&define.amd)define(["exports","jquery"],function(e,t){return n(e,t)});else if("undefined"!=typeof exports){var t=require("jquery");n(exports,t)}else n(e,e.jQuery||e.Zepto||e.ender||e.$)}(this,function(e,t){var a={validate:/^(?!(_nonce|_pseudo))[a-zA-Z0-9_-]*(?:\[(?:\d*|(?!(_nonce|_pseudo))[a-zA-Z0-9_-]+)\])*$/i,key:/[a-zA-Z0-9_-]+|(?=\[\])/g,named:/^[a-zA-Z0-9_-]+$/,push:/^$/,fixed:/^\d+$/};function n(i,e){var n={},r={};function s(e,t,n){return e[t]=n,e}function t(){return n}this.addPair=function(e){if(!a.validate.test(e.name))return this;var t=function(e,t){for(var n,i=e.match(a.key);void 0!==(n=i.pop());)a.push.test(n)?t=s([],(o=e.replace(/\[\]$/,""),void 0===r[o]&&(r[o]=0),r[o]++),t):a.fixed.test(n)?t=s([],n,t):a.named.test(n)&&(t=s({},n,t));var o;return t}(e.name,e.value);return n=i.extend(!0,n,t),this},this.addPairs=function(e){if(!i.isArray(e))throw new Error("formSerializer.addPairs expects an Array");for(var t=0,n=e.length;t<n;t++)this.addPair(e[t]);return this},this.serialize=t,this.serializeJSON=function(){return JSON.stringify(t())}}return n.patterns=a,n.serializeObject=function(){return new n(t,this).addPairs(this.serializeArray()).serialize()},n.serializeJSON=function(){return new n(t,this).addPairs(this.serializeArray()).serializeJSON()},void 0!==t.fn&&(t.fn.serializeObjectCSF=n.serializeObject,t.fn.serializeJSONCSF=n.serializeJSON),e.FormSerializer=n});
vendor/codestar-framework/assets/scss/partials/_base.scss CHANGED
@@ -1,470 +1,470 @@
1
- /**
2
- * 01. Base
3
- */
4
- .csf{
5
- position: relative;
6
-
7
- label{
8
- padding: 0;
9
- margin: 0;
10
- display: inline-block;
11
- }
12
- }
13
-
14
- .csf-ab-icon{
15
- top: 2px;
16
- }
17
-
18
- #screen-meta-links + .csf-options{
19
- margin-top: 40px;
20
- }
21
-
22
- .csf-options{
23
- margin-top: 20px;
24
- margin-right: 20px;
25
- }
26
-
27
- /**
28
- * 01. 01. Header
29
- */
30
- .csf-header{
31
- position: relative;
32
- }
33
-
34
- .csf-header-inner{
35
- padding: 25px;
36
- transition: box-shadow .3s ease;
37
-
38
- h1{
39
- float: left;
40
- font-size: 1.5em;
41
- line-height: 26px;
42
- font-weight: 400;
43
- margin: 0;
44
-
45
- small{
46
- font-size: 11px;
47
- font-weight: 500;
48
- }
49
- }
50
- }
51
-
52
- /**
53
- * 01. 02. Sticky
54
- */
55
- .csf-sticky{
56
-
57
- .csf-header-inner{
58
- position: fixed;
59
- z-index: 99;
60
- top: 32px;
61
- box-shadow: 0 5px 10px rgba(0,0,0,0.1);
62
- }
63
- }
64
-
65
- /**
66
- * 01. 03. Header Buttons
67
- */
68
- .csf-buttons{
69
- float: right;
70
-
71
- .button{
72
- margin: 0 2px;
73
- line-height: 26px;
74
-
75
- &:focus{
76
- outline: none !important;
77
- box-shadow: none !important;
78
- }
79
- }
80
-
81
- .csf-save{
82
- min-width: 72px;
83
- }
84
- }
85
-
86
- .csf-header-left{
87
- float: left;
88
- }
89
-
90
- .csf-header-right{
91
- float: right;
92
- }
93
-
94
- /**
95
- * 01. 04. Navigation
96
- */
97
- .csf-nav{
98
- display: block;
99
- position: relative;
100
- z-index: 10;
101
- float: left;
102
-
103
- ul{
104
- clear: left;
105
- margin: 0;
106
- list-style-type: none;
107
-
108
- li{
109
- margin-bottom: 0;
110
-
111
- a{
112
- font-size: 13px;
113
- position: relative;
114
- display: block;
115
- padding: 14px 12px;
116
- text-decoration: none;
117
- transition-property: color, background;
118
- transition-duration: 0.2s;
119
- transition-timing-function: ease;
120
-
121
- &:focus{
122
- outline: none;
123
- box-shadow: none;
124
- }
125
- }
126
-
127
- .csf-arrow:after{
128
- content: "\f054";
129
- display: inline-block;
130
- font-family: "Font Awesome 5 Pro", "Font Awesome 5 Free", "FontAwesome";
131
- font-weight: 900;
132
- font-size: 9px;
133
- line-height: 1;
134
- position: absolute;
135
- right: 10px;
136
- top: 50%;
137
- margin-top: -4px;
138
- }
139
-
140
- &.csf-tab-expanded{
141
-
142
- .csf-arrow:after{
143
- transform: rotate(90deg);
144
- }
145
-
146
- ul{
147
- display: block;
148
- }
149
- }
150
- }
151
-
152
- ul{
153
- display: none;
154
- position: relative;
155
-
156
- li{
157
-
158
- a{
159
- font-size: 12px;
160
- padding: 12px 14px 12px 24px;
161
- }
162
- }
163
- }
164
- }
165
-
166
- .csf-tab-icon{
167
- width: 20px;
168
- margin-right: 5px;
169
- font-size: 13px;
170
- text-align: center;
171
- }
172
-
173
- .csf-label-error{
174
- margin-left: 4px;
175
- vertical-align: top;
176
- }
177
- }
178
-
179
- .csf-nav-normal{
180
- width: 225px;
181
-
182
- + .csf-content{
183
- margin-left: 225px;
184
- }
185
- }
186
-
187
- .csf-nav-inline{
188
- width: 100%;
189
-
190
- ul{
191
-
192
- li{
193
- display: inline-block;
194
- vertical-align: top;
195
- }
196
- }
197
- }
198
-
199
- .csf-nav-background{
200
- position: absolute;
201
- top: 0;
202
- left: 0;
203
- bottom: 0;
204
- z-index: 9;
205
- width: 225px;
206
- }
207
-
208
- /**
209
- * 01. 05. Wrapper
210
- */
211
- .csf-wrapper{
212
- position: relative;
213
- }
214
-
215
- /**
216
- * 01. 06. Content
217
- */
218
- .csf-content{
219
- position: relative;
220
- background-color: #fff;
221
- }
222
-
223
- /**
224
- * 01. 07. Section
225
- */
226
- .csf-sections{
227
- float: left;
228
- width: 100%;
229
- }
230
-
231
- .csf-section-title{
232
- display: none;
233
- padding: 20px 30px;
234
- background-color: #f5f5f5;
235
- border-top: 1px solid #eee;
236
- border-bottom: 1px solid #eee;
237
-
238
- h3{
239
- margin: 0;
240
- padding: 0 ;
241
- font-size: 13px;
242
- font-weight: bold;
243
- text-transform: uppercase;
244
- }
245
-
246
- .csf-section-icon{
247
- margin-right: 5px;
248
- }
249
- }
250
-
251
- /**
252
- * 01. 08. Footer
253
- */
254
- .csf-footer{
255
- padding: 20px;
256
- font-size: 11px;
257
- }
258
-
259
- /**
260
- * 01. 09. Copyright
261
- */
262
- .csf-copyright{
263
- float: left;
264
- margin-top: 5px;
265
- }
266
-
267
- /**
268
- * 01. 10. Show All Settings
269
- */
270
- .csf-search-all,
271
- .csf-show-all{
272
- .csf-nav-background,
273
- .csf-nav{
274
- display: none;
275
- }
276
-
277
- .csf-content{
278
- margin-left: 0;
279
- }
280
-
281
- .csf-section-title,
282
- .csf-section{
283
- display: block !important;
284
- }
285
- }
286
-
287
- .csf-search-all{
288
- .csf-section-title{
289
- display: none !important;
290
- }
291
- }
292
-
293
- //
294
- // Expand
295
- //
296
- .csf-expand-all{
297
- float: left;
298
- padding: 0 8px;
299
- margin-right: 4px;
300
- z-index: 1;
301
- font-size: 13px;
302
- line-height: 30px;
303
- cursor: pointer;
304
- user-select: none;
305
- border-radius: 2px;
306
- transition: all .2s;
307
-
308
- span{
309
- font-size: 11px;
310
- vertical-align: middle;
311
- }
312
- }
313
-
314
- /**
315
- * 01. 11. Search Input
316
- */
317
- .csf-search{
318
- float: left;
319
-
320
- input{
321
- margin: 0 2px 0 0;
322
- border: none;
323
- font-size: 12px;
324
- line-height: 30px;
325
- min-height: 30px;
326
- text-align: inherit;
327
- padding: 0 10px;
328
- border-radius: 2px;
329
- box-shadow: none;
330
-
331
- &:focus{
332
- box-shadow: none;
333
- }
334
- }
335
- }
336
-
337
- .csf-saving{
338
-
339
- .csf-buttons,
340
- .csf-content{
341
- cursor: default;
342
- pointer-events: none;
343
- opacity: 0.5;
344
- }
345
- }
346
-
347
- /**
348
- * 01. 12. Metabox
349
- */
350
- .csf-metabox{
351
- margin: -6px -12px -12px -12px;
352
-
353
- .csf-field{
354
- padding: 20px;
355
- }
356
-
357
- .csf-section-title{
358
- padding: 20px;
359
- }
360
- }
361
-
362
- .block-editor-page{
363
-
364
- .csf-metabox{
365
- margin: -6px -14px -14px -14px;
366
- }
367
- }
368
-
369
- .block-editor-editor-skeleton__content{
370
-
371
- .csf-metabox{
372
- border-left: 1px solid #e2e4e7;
373
- border-right: 1px solid #e2e4e7;
374
- }
375
- }
376
-
377
- .csf-sections-reset{
378
- float: left;
379
- width: 100%;
380
- text-align: right;
381
- border-top: 1px solid #eee;
382
-
383
- .csf-button-cancel,
384
- input{
385
- display: none;
386
- }
387
-
388
- label{
389
- padding: 10px;
390
- }
391
-
392
- span{
393
- -webkit-user-select: none;
394
- user-select: none;
395
- }
396
-
397
-
398
- input:checked ~ .csf-button-reset{
399
- display: none;
400
- }
401
-
402
- input:checked ~ .csf-button-cancel{
403
- display: inline-block;
404
- }
405
-
406
- }
407
-
408
- #side-sortables{
409
-
410
- .csf-section-title{
411
- padding: 12px;
412
- }
413
-
414
- .csf-field{
415
- padding: 10px 15px;
416
-
417
- .csf-title{
418
- float: none;
419
- width: 100%;
420
- margin-bottom: 6px;
421
- }
422
-
423
- .csf-fieldset{
424
- float: none;
425
- width: 100%;
426
- }
427
- }
428
-
429
- .csf-field-text input{
430
- width: 100%;
431
- }
432
-
433
- .csf-notice{
434
- padding: 10px 15px;
435
- }
436
- }
437
-
438
- /**
439
- * 01. 13. Comment Metabox
440
- */
441
- .csf-comment-metabox{
442
- margin: -6px -12px -12px -12px;
443
-
444
- .csf-field{
445
- padding: 20px;
446
- }
447
-
448
- .csf-section-title{
449
- padding: 20px;
450
- }
451
- }
452
-
453
-
454
- /**
455
- * 01. 14. Help Tooltip
456
- */
457
- .csf-tooltip{
458
- position: absolute;
459
- z-index: 5000001;
460
- font-size: 12px;
461
- line-height: 1.4;
462
- text-align: center;
463
- text-decoration: none;
464
- padding: 6px 12px;
465
- max-width: 200px;
466
- color: #fff;
467
- background-color: #000;
468
- background-color: rgba(black, 0.85);
469
- border-radius: 4px;
470
- }
1
+ /**
2
+ * 01. Base
3
+ */
4
+ .csf{
5
+ position: relative;
6
+
7
+ label{
8
+ padding: 0;
9
+ margin: 0;
10
+ display: inline-block;
11
+ }
12
+ }
13
+
14
+ .csf-ab-icon{
15
+ top: 2px;
16
+ }
17
+
18
+ #screen-meta-links + .csf-options{
19
+ margin-top: 40px;
20
+ }
21
+
22
+ .csf-options{
23
+ margin-top: 20px;
24
+ margin-right: 20px;
25
+ }
26
+
27
+ /**
28
+ * 01. 01. Header
29
+ */
30
+ .csf-header{
31
+ position: relative;
32
+ }
33
+
34
+ .csf-header-inner{
35
+ padding: 25px;
36
+ transition: box-shadow .3s ease;
37
+
38
+ h1{
39
+ float: left;
40
+ font-size: 1.5em;
41
+ line-height: 26px;
42
+ font-weight: 400;
43
+ margin: 0;
44
+
45
+ small{
46
+ font-size: 11px;
47
+ font-weight: 500;
48
+ }
49
+ }
50
+ }
51
+
52
+ /**
53
+ * 01. 02. Sticky
54
+ */
55
+ .csf-sticky{
56
+
57
+ .csf-header-inner{
58
+ position: fixed;
59
+ z-index: 99;
60
+ top: 32px;
61
+ box-shadow: 0 5px 10px rgba(0,0,0,0.1);
62
+ }
63
+ }
64
+
65
+ /**
66
+ * 01. 03. Header Buttons
67
+ */
68
+ .csf-buttons{
69
+ float: right;
70
+
71
+ .button{
72
+ margin: 0 2px;
73
+ line-height: 26px;
74
+
75
+ &:focus{
76
+ outline: none !important;
77
+ box-shadow: none !important;
78
+ }
79
+ }
80
+
81
+ .csf-save{
82
+ min-width: 72px;
83
+ }
84
+ }
85
+
86
+ .csf-header-left{
87
+ float: left;
88
+ }
89
+
90
+ .csf-header-right{
91
+ float: right;
92
+ }
93
+
94
+ /**
95
+ * 01. 04. Navigation
96
+ */
97
+ .csf-nav{
98
+ display: block;
99
+ position: relative;
100
+ z-index: 10;
101
+ float: left;
102
+
103
+ ul{
104
+ clear: left;
105
+ margin: 0;
106
+ list-style-type: none;
107
+
108
+ li{
109
+ margin-bottom: 0;
110
+
111
+ a{
112
+ font-size: 13px;
113
+ position: relative;
114
+ display: block;
115
+ padding: 14px 12px;
116
+ text-decoration: none;
117
+ transition-property: color, background;
118
+ transition-duration: 0.2s;
119
+ transition-timing-function: ease;
120
+
121
+ &:focus{
122
+ outline: none;
123
+ box-shadow: none;
124
+ }
125
+ }
126
+
127
+ .csf-arrow:after{
128
+ content: "\f054";
129
+ display: inline-block;
130
+ font-family: "Font Awesome 5 Pro", "Font Awesome 5 Free", "FontAwesome";
131
+ font-weight: 900;
132
+ font-size: 9px;
133
+ line-height: 1;
134
+ position: absolute;
135
+ right: 10px;
136
+ top: 50%;
137
+ margin-top: -4px;
138
+ }
139
+
140
+ &.csf-tab-expanded{
141
+
142
+ .csf-arrow:after{
143
+ transform: rotate(90deg);
144
+ }
145
+
146
+ ul{
147
+ display: block;
148
+ }
149
+ }
150
+ }
151
+
152
+ ul{
153
+ display: none;
154
+ position: relative;
155
+
156
+ li{
157
+
158
+ a{
159
+ font-size: 12px;
160
+ padding: 12px 14px 12px 24px;
161
+ }
162
+ }
163
+ }
164
+ }
165
+
166
+ .csf-tab-icon{
167
+ width: 20px;
168
+ margin-right: 5px;
169
+ font-size: 13px;
170
+ text-align: center;
171
+ }
172
+
173
+ .csf-label-error{
174
+ margin-left: 4px;
175
+ vertical-align: top;
176
+ }
177
+ }
178
+
179
+ .csf-nav-normal{
180
+ width: 225px;
181
+
182
+ + .csf-content{
183
+ margin-left: 225px;
184
+ }
185
+ }
186
+
187
+ .csf-nav-inline{
188
+ width: 100%;
189
+
190
+ ul{
191
+
192
+ li{
193
+ display: inline-block;
194
+ vertical-align: top;
195
+ }
196
+ }
197
+ }
198
+
199
+ .csf-nav-background{
200
+ position: absolute;
201
+ top: 0;
202
+ left: 0;
203
+ bottom: 0;
204
+ z-index: 9;
205
+ width: 225px;
206
+ }
207
+
208
+ /**
209
+ * 01. 05. Wrapper
210
+ */
211
+ .csf-wrapper{
212
+ position: relative;
213
+ }
214
+
215
+ /**
216
+ * 01. 06. Content
217
+ */
218
+ .csf-content{
219
+ position: relative;
220
+ background-color: #fff;
221
+ }
222
+
223
+ /**
224
+ * 01. 07. Section
225
+ */
226
+ .csf-sections{
227
+ float: left;
228
+ width: 100%;
229
+ }
230
+
231
+ .csf-section-title{
232
+ display: none;
233
+ padding: 20px 30px;
234
+ background-color: #f5f5f5;
235
+ border-top: 1px solid #eee;
236
+ border-bottom: 1px solid #eee;
237
+
238
+ h3{
239
+ margin: 0;
240
+ padding: 0 ;
241
+ font-size: 13px;
242
+ font-weight: bold;
243
+ text-transform: uppercase;
244
+ }
245
+
246
+ .csf-section-icon{
247
+ margin-right: 5px;
248
+ }
249
+ }
250
+
251
+ /**
252
+ * 01. 08. Footer
253
+ */
254
+ .csf-footer{
255
+ padding: 20px;
256
+ font-size: 11px;
257
+ }
258
+
259
+ /**
260
+ * 01. 09. Copyright
261
+ */
262
+ .csf-copyright{
263
+ float: left;
264
+ margin-top: 5px;
265
+ }
266
+
267
+ /**
268
+ * 01. 10. Show All Settings
269
+ */
270
+ .csf-search-all,
271
+ .csf-show-all{
272
+ .csf-nav-background,
273
+ .csf-nav{
274
+ display: none;
275
+ }
276
+
277
+ .csf-content{
278
+ margin-left: 0;
279
+ }
280
+
281
+ .csf-section-title,
282
+ .csf-section{
283
+ display: block !important;
284
+ }
285
+ }
286
+
287
+ .csf-search-all{
288
+ .csf-section-title{
289
+ display: none !important;
290
+ }
291
+ }
292
+
293
+ //
294
+ // Expand
295
+ //
296
+ .csf-expand-all{
297
+ float: left;
298
+ padding: 0 8px;
299
+ margin-right: 4px;
300
+ z-index: 1;
301
+ font-size: 13px;
302
+ line-height: 30px;
303
+ cursor: pointer;
304
+ user-select: none;
305
+ border-radius: 2px;
306
+ transition: all .2s;
307
+
308
+ span{
309
+ font-size: 11px;
310
+ vertical-align: middle;
311
+ }
312
+ }
313
+
314
+ /**
315
+ * 01. 11. Search Input
316
+ */
317
+ .csf-search{
318
+ float: left;
319
+
320
+ input{
321
+ margin: 0 2px 0 0;
322
+ border: none;
323
+ font-size: 12px;
324
+ line-height: 30px;
325
+ min-height: 30px;
326
+ text-align: inherit;
327
+ padding: 0 10px;
328
+ border-radius: 2px;
329
+ box-shadow: none;
330
+
331
+ &:focus{
332
+ box-shadow: none;
333
+ }
334
+ }
335
+ }
336
+
337
+ .csf-saving{
338
+
339
+ .csf-buttons,
340
+ .csf-content{
341
+ cursor: default;
342
+ pointer-events: none;
343
+ opacity: 0.5;
344
+ }
345
+ }
346
+
347
+ /**
348
+ * 01. 12. Metabox
349
+ */
350
+ .csf-metabox{
351
+ margin: -6px -12px -12px -12px;
352
+
353
+ .csf-field{
354
+ padding: 20px;
355
+ }
356
+
357
+ .csf-section-title{
358
+ padding: 20px;
359
+ }
360
+ }
361
+
362
+ .block-editor-page{
363
+
364
+ .csf-metabox{
365
+ margin: -6px -14px -14px -14px;
366
+ }
367
+ }
368
+
369
+ .block-editor-editor-skeleton__content{
370
+
371
+ .csf-metabox{
372
+ border-left: 1px solid #e2e4e7;
373
+ border-right: 1px solid #e2e4e7;
374
+ }
375
+ }
376
+
377
+ .csf-sections-reset{
378
+ float: left;
379
+ width: 100%;
380
+ text-align: right;
381
+ border-top: 1px solid #eee;
382
+
383
+ .csf-button-cancel,
384
+ input{
385
+ display: none;
386
+ }
387
+
388
+ label{
389
+ padding: 10px;
390
+ }
391
+
392
+ span{
393
+ -webkit-user-select: none;
394
+ user-select: none;
395
+ }
396
+
397
+
398
+ input:checked ~ .csf-button-reset{
399
+ display: none;
400
+ }
401
+
402
+ input:checked ~ .csf-button-cancel{
403
+ display: inline-block;
404
+ }
405
+
406
+ }
407
+
408
+ #side-sortables{
409
+
410
+ .csf-section-title{
411
+ padding: 12px;
412
+ }
413
+
414
+ .csf-field{
415
+ padding: 10px 15px;
416
+
417
+ .csf-title{
418
+ float: none;
419
+ width: 100%;
420
+ margin-bottom: 6px;
421
+ }
422
+
423
+ .csf-fieldset{
424
+ float: none;
425
+ width: 100%;
426
+ }
427
+ }
428
+
429
+ .csf-field-text input{
430
+ width: 100%;
431
+ }
432
+
433
+ .csf-notice{
434
+ padding: 10px 15px;
435
+ }
436
+ }
437
+
438
+ /**
439
+ * 01. 13. Comment Metabox
440
+ */
441
+ .csf-comment-metabox{
442
+ margin: -6px -12px -12px -12px;
443
+
444
+ .csf-field{
445
+ padding: 20px;
446
+ }
447
+
448
+ .csf-section-title{
449
+ padding: 20px;
450
+ }
451
+ }
452
+
453
+
454
+ /**
455
+ * 01. 14. Help Tooltip
456
+ */
457
+ .csf-tooltip{
458
+ position: absolute;
459
+ z-index: 5000001;
460
+ font-size: 12px;
461
+ line-height: 1.4;
462
+ text-align: center;
463
+ text-decoration: none;
464
+ padding: 6px 12px;
465
+ max-width: 200px;
466
+ color: #fff;
467
+ background-color: #000;
468
+ background-color: rgba(black, 0.85);
469
+ border-radius: 4px;
470
+ }
vendor/codestar-framework/assets/scss/partials/_chosen.scss CHANGED
@@ -1,405 +1,405 @@
1
- /**
2
- * Chosen JS Styles
3
- */
4
- .chosen-container {
5
- position: relative;
6
- display: inline-block;
7
- vertical-align: middle;
8
- font-size: 13px;
9
- user-select: none;
10
- }
11
-
12
- .chosen-container * {
13
- box-sizing: border-box;
14
- }
15
-
16
- .chosen-container .chosen-drop {
17
- position: absolute;
18
- top: 100%;
19
- z-index: 1010;
20
- width: 100%;
21
- border: 1px solid #aaa;
22
- border-top: 0;
23
- background: #fff;
24
- box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15);
25
- clip: rect(0, 0, 0, 0);
26
- clip-path: inset(100% 100%);
27
- }
28
-
29
- .chosen-container.chosen-with-drop .chosen-drop {
30
- clip: auto;
31
- clip-path: none;
32
- }
33
-
34
- .chosen-container a {
35
- cursor: pointer;
36
- }
37
-
38
- .chosen-container .search-choice .group-name, .chosen-container .chosen-single .group-name {
39
- margin-right: 4px;
40
- overflow: hidden;
41
- white-space: nowrap;
42
- text-overflow: ellipsis;
43
- font-weight: normal;
44
- color: #999999;
45
- }
46
-
47
- .chosen-container .search-choice .group-name:after, .chosen-container .chosen-single .group-name:after {
48
- content: ":";
49
- padding-left: 2px;
50
- vertical-align: top;
51
- }
52
-
53
- .chosen-container-single .chosen-single {
54
- position: relative;
55
- display: block;
56
- overflow: hidden;
57
- padding: 0 0 0 8px;
58
- height: 25px;
59
- border: 1px solid #aaa;
60
- border-radius: 5px;
61
- background-color: #fff;
62
- background: linear-gradient(#fff 20%, #f6f6f6 50%, #eee 52%, #f4f4f4 100%);
63
- background-clip: padding-box;
64
- box-shadow: 0 0 3px #fff inset, 0 1px 1px rgba(0, 0, 0, 0.1);
65
- color: #444;
66
- text-decoration: none;
67
- white-space: nowrap;
68
- line-height: 24px;
69
- }
70
-
71
- .chosen-container-single .chosen-default {
72
- color: #999;
73
- }
74
-
75
- .chosen-container-single .chosen-single span {
76
- display: block;
77
- overflow: hidden;
78
- margin-right: 26px;
79
- text-overflow: ellipsis;
80
- white-space: nowrap;
81
- }
82
-
83
- .chosen-container-single .chosen-single-with-deselect span {
84
- margin-right: 38px;
85
- }
86
-
87
- .chosen-container-single .chosen-single abbr {
88
- position: absolute;
89
- top: 6px;
90
- right: 26px;
91
- display: block;
92
- width: 12px;
93
- height: 12px;
94
- font-size: 1px;
95
- }
96
-
97
- .chosen-container-single .chosen-single div {
98
- position: absolute;
99
- top: 0;
100
- right: 0;
101
- display: block;
102
- width: 18px;
103
- height: 100%;
104
- }
105
-
106
- .chosen-container-single .chosen-single div b {
107
- display: block;
108
- width: 100%;
109
- height: 100%;
110
- }
111
-
112
- .chosen-container-single .chosen-search {
113
- position: relative;
114
- z-index: 1010;
115
- margin: 0;
116
- padding: 3px 4px;
117
- white-space: nowrap;
118
- }
119
-
120
- .chosen-container-single .chosen-search input[type="text"] {
121
- margin: 1px 0;
122
- padding: 4px 20px 4px 5px;
123
- width: 100%;
124
- height: auto;
125
- outline: 0;
126
- border: 1px solid #aaa;
127
- font-size: 1em;
128
- font-family: sans-serif;
129
- line-height: normal;
130
- border-radius: 0;
131
- }
132
-
133
- .chosen-container-single .chosen-drop {
134
- margin-top: -1px;
135
- border-radius: 0 0 4px 4px;
136
- background-clip: padding-box;
137
- }
138
-
139
- .chosen-container-single.chosen-container-single-nosearch .chosen-search {
140
- position: absolute;
141
- clip: rect(0, 0, 0, 0);
142
- clip-path: inset(100% 100%);
143
- }
144
-
145
- .chosen-container .chosen-results {
146
- color: #444;
147
- position: relative;
148
- overflow-x: hidden;
149
- overflow-y: auto;
150
- margin: 0 4px 4px 0;
151
- padding: 0 0 0 4px;
152
- max-height: 240px;
153
- -webkit-overflow-scrolling: touch;
154
- }
155
-
156
- .chosen-container .chosen-results li {
157
- display: none;
158
- margin: 0;
159
- padding: 5px 6px;
160
- list-style: none;
161
- line-height: 15px;
162
- word-wrap: break-word;
163
- -webkit-touch-callout: none;
164
- }
165
-
166
- .chosen-container .chosen-results li.active-result {
167
- display: list-item;
168
- cursor: pointer;
169
- }
170
-
171
- .chosen-container .chosen-results li.disabled-result {
172
- display: list-item;
173
- color: #ccc;
174
- cursor: default;
175
- }
176
-
177
- .chosen-container .chosen-results li.highlighted {
178
- background-color: #3875d7;
179
- background-image: linear-gradient(#3875d7 20%, #2a62bc 90%);
180
- color: #fff;
181
- }
182
-
183
- .chosen-container .chosen-results li.no-results {
184
- color: #777;
185
- display: list-item;
186
- background: #f4f4f4;
187
- }
188
-
189
- .chosen-container .chosen-results li.group-result {
190
- display: list-item;
191
- font-weight: bold;
192
- cursor: default;
193
- }
194
-
195
- .chosen-container .chosen-results li.group-option {
196
- padding-left: 15px;
197
- }
198
-
199
- .chosen-container .chosen-results li em {
200
- font-style: normal;
201
- text-decoration: underline;
202
- }
203
-
204
- .chosen-container-multi .chosen-choices {
205
- position: relative;
206
- overflow: hidden;
207
- margin: 0;
208
- padding: 0 5px;
209
- width: 100%;
210
- height: auto;
211
- border: 1px solid #aaa;
212
- background-color: #fff;
213
- background-image: linear-gradient(#eee 1%, #fff 15%);
214
- cursor: text;
215
- }
216
-
217
- .chosen-container-multi .chosen-choices li {
218
- float: left;
219
- list-style: none;
220
- }
221
-
222
- .chosen-container-multi .chosen-choices li.search-field {
223
- margin: 0;
224
- padding: 0;
225
- white-space: nowrap;
226
- }
227
-
228
- .chosen-container-multi .chosen-choices li.search-field input[type="text"] {
229
- margin: 1px 0;
230
- padding: 0;
231
- outline: 0;
232
- border: 0 !important;
233
- background: transparent !important;
234
- box-shadow: none;
235
- color: #999;
236
- font-size: 100%;
237
- font-family: sans-serif;
238
- line-height: normal;
239
- border-radius: 0;
240
- width: 25px;
241
- height: 25px;
242
- min-height: 25px;
243
- }
244
-
245
- .chosen-container-multi .chosen-choices li.search-choice {
246
- position: relative;
247
- margin: 3px 5px 3px 0;
248
- padding: 3px 20px 3px 6px;
249
- border: 1px solid #aaa;
250
- max-width: 100%;
251
- border-radius: 3px;
252
- background-color: #eeeeee;
253
- background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);
254
- background-size: 100% 19px;
255
- background-repeat: repeat-x;
256
- background-clip: padding-box;
257
- box-shadow: 0 0 2px #fff inset, 0 1px 0 rgba(0, 0, 0, 0.05);
258
- color: #333;
259
- line-height: 13px;
260
- cursor: default;
261
- }
262
-
263
- .chosen-container-multi .chosen-choices li.search-choice span {
264
- word-wrap: break-word;
265
- white-space: nowrap;
266
- }
267
-
268
- .chosen-container-multi .chosen-choices li.search-choice .search-choice-close {
269
- position: absolute;
270
- top: 0;
271
- right: 0;
272
- display: block;
273
- width: 12px;
274
- height: 12px;
275
- font-size: 1px;
276
- }
277
-
278
- .chosen-container-multi .chosen-choices li.search-choice-disabled {
279
- padding-right: 5px;
280
- border: 1px solid #ccc;
281
- background-color: #e4e4e4;
282
- background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);
283
- color: #666;
284
- }
285
-
286
- .chosen-container-multi .chosen-choices li.search-choice-focus {
287
- background: #d4d4d4;
288
- }
289
-
290
- .chosen-container-multi .chosen-results {
291
- margin: 0;
292
- padding: 0;
293
- }
294
-
295
- .chosen-container-multi .chosen-drop .result-selected {
296
- display: list-item;
297
- color: #ccc;
298
- cursor: default;
299
- }
300
-
301
- .chosen-container-active .chosen-single {
302
- border: 1px solid #5897fb;
303
- box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
304
- }
305
-
306
- .chosen-container-active.chosen-with-drop .chosen-single {
307
- border: 1px solid #aaa;
308
- border-bottom-right-radius: 0;
309
- border-bottom-left-radius: 0;
310
- background-image: linear-gradient(#eee 20%, #fff 80%);
311
- box-shadow: 0 1px 0 #fff inset;
312
- }
313
-
314
- .chosen-container-active.chosen-with-drop .chosen-single div {
315
- border-left: none;
316
- background: transparent;
317
- }
318
-
319
- .chosen-container-active .chosen-choices {
320
- border: 1px solid #5897fb;
321
- box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
322
- }
323
-
324
- .chosen-container-active .chosen-choices li.search-field input[type="text"] {
325
- color: #222 !important;
326
- }
327
-
328
- .chosen-disabled {
329
- opacity: 0.5 !important;
330
- cursor: default;
331
- }
332
-
333
- .chosen-disabled .chosen-single {
334
- cursor: default;
335
- }
336
-
337
- .chosen-disabled .chosen-choices .search-choice .search-choice-close {
338
- cursor: default;
339
- }
340
-
341
- .chosen-rtl {
342
- text-align: right;
343
- }
344
-
345
- .chosen-rtl .chosen-single {
346
- overflow: visible;
347
- padding: 0 8px 0 0;
348
- }
349
-
350
- .chosen-rtl .chosen-single span {
351
- margin-right: 0;
352
- margin-left: 26px;
353
- direction: rtl;
354
- }
355
-
356
- .chosen-rtl .chosen-single-with-deselect span {
357
- margin-left: 38px;
358
- }
359
-
360
- .chosen-rtl .chosen-single div {
361
- right: auto;
362
- left: 3px;
363
- }
364
-
365
- .chosen-rtl .chosen-single abbr {
366
- right: auto;
367
- left: 26px;
368
- }
369
-
370
- .chosen-rtl .chosen-choices li {
371
- float: right;
372
- }
373
-
374
- .chosen-rtl .chosen-choices li.search-field input[type="text"] {
375
- direction: rtl;
376
- }
377
-
378
- .chosen-rtl .chosen-choices li.search-choice {
379
- margin: 3px 5px 3px 0;
380
- padding: 3px 5px 3px 19px;
381
- }
382
-
383
- .chosen-rtl .chosen-choices li.search-choice .search-choice-close {
384
- right: auto;
385
- left: 4px;
386
- }
387
-
388
- .chosen-rtl.chosen-container-single .chosen-results {
389
- margin: 0 0 4px 4px;
390
- padding: 0 4px 0 0;
391
- }
392
-
393
- .chosen-rtl .chosen-results li.group-option {
394
- padding-right: 15px;
395
- padding-left: 0;
396
- }
397
-
398
- .chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div {
399
- border-right: none;
400
- }
401
-
402
- .chosen-rtl .chosen-search input[type="text"] {
403
- padding: 4px 5px 4px 20px;
404
- direction: rtl;
405
- }
1
+ /**
2
+ * Chosen JS Styles
3
+ */
4
+ .chosen-container {
5
+ position: relative;
6
+ display: inline-block;
7
+ vertical-align: middle;
8
+ font-size: 13px;
9
+ user-select: none;
10
+ }
11
+
12
+ .chosen-container * {
13
+ box-sizing: border-box;
14
+ }
15
+
16
+ .chosen-container .chosen-drop {
17
+ position: absolute;
18
+ top: 100%;
19
+ z-index: 1010;
20
+ width: 100%;
21
+ border: 1px solid #aaa;
22
+ border-top: 0;
23
+ background: #fff;
24
+ box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15);
25
+ clip: rect(0, 0, 0, 0);
26
+ clip-path: inset(100% 100%);
27
+ }
28
+
29
+ .chosen-container.chosen-with-drop .chosen-drop {
30
+ clip: auto;
31
+ clip-path: none;
32
+ }
33
+
34
+ .chosen-container a {
35
+ cursor: pointer;
36
+ }
37
+
38
+ .chosen-container .search-choice .group-name, .chosen-container .chosen-single .group-name {
39
+ margin-right: 4px;
40
+ overflow: hidden;
41
+ white-space: nowrap;
42
+ text-overflow: ellipsis;
43
+ font-weight: normal;
44
+ color: #999999;
45
+ }
46
+
47
+ .chosen-container .search-choice .group-name:after, .chosen-container .chosen-single .group-name:after {
48
+ content: ":";
49
+ padding-left: 2px;
50
+ vertical-align: top;
51
+ }
52
+
53
+ .chosen-container-single .chosen-single {
54
+ position: relative;
55
+ display: block;
56
+ overflow: hidden;
57
+ padding: 0 0 0 8px;
58
+ height: 25px;
59
+ border: 1px solid #aaa;
60
+ border-radius: 5px;
61
+ background-color: #fff;
62
+ background: linear-gradient(#fff 20%, #f6f6f6 50%, #eee 52%, #f4f4f4 100%);
63
+ background-clip: padding-box;
64
+ box-shadow: 0 0 3px #fff inset, 0 1px 1px rgba(0, 0, 0, 0.1);
65
+ color: #444;
66
+ text-decoration: none;
67
+ white-space: nowrap;
68
+ line-height: 24px;
69
+ }
70
+
71
+ .chosen-container-single .chosen-default {
72
+ color: #999;
73
+ }
74
+
75
+ .chosen-container-single .chosen-single span {
76
+ display: block;
77
+ overflow: hidden;
78
+ margin-right: 26px;
79
+ text-overflow: ellipsis;
80
+ white-space: nowrap;
81
+ }
82
+
83
+ .chosen-container-single .chosen-single-with-deselect span {
84
+ margin-right: 38px;
85
+ }
86
+
87
+ .chosen-container-single .chosen-single abbr {
88
+ position: absolute;
89
+ top: 6px;
90
+ right: 26px;
91
+ display: block;
92
+ width: 12px;
93
+ height: 12px;
94
+ font-size: 1px;
95
+ }
96
+
97
+ .chosen-container-single .chosen-single div {
98
+ position: absolute;
99
+ top: 0;
100
+ right: 0;
101
+ display: block;
102
+ width: 18px;
103
+ height: 100%;
104
+ }
105
+
106
+ .chosen-container-single .chosen-single div b {
107
+ display: block;
108
+ width: 100%;
109
+ height: 100%;
110
+ }
111
+
112
+ .chosen-container-single .chosen-search {
113
+ position: relative;
114
+ z-index: 1010;
115
+ margin: 0;
116
+ padding: 3px 4px;
117
+ white-space: nowrap;
118
+ }
119
+
120
+ .chosen-container-single .chosen-search input[type="text"] {
121
+ margin: 1px 0;
122
+ padding: 4px 20px 4px 5px;
123
+ width: 100%;
124
+ height: auto;
125
+ outline: 0;
126
+ border: 1px solid #aaa;
127
+ font-size: 1em;
128
+ font-family: sans-serif;
129
+ line-height: normal;
130
+ border-radius: 0;
131
+ }
132
+
133
+ .chosen-container-single .chosen-drop {
134
+ margin-top: -1px;
135
+ border-radius: 0 0 4px 4px;
136
+ background-clip: padding-box;
137
+ }
138
+
139
+ .chosen-container-single.chosen-container-single-nosearch .chosen-search {
140
+ position: absolute;
141
+ clip: rect(0, 0, 0, 0);
142
+ clip-path: inset(100% 100%);
143
+ }
144
+
145
+ .chosen-container .chosen-results {
146
+ color: #444;
147
+ position: relative;
148
+ overflow-x: hidden;
149
+ overflow-y: auto;
150
+ margin: 0 4px 4px 0;
151
+ padding: 0 0 0 4px;
152
+ max-height: 240px;
153
+ -webkit-overflow-scrolling: touch;
154
+ }
155
+
156
+ .chosen-container .chosen-results li {
157
+ display: none;
158
+ margin: 0;
159
+ padding: 5px 6px;
160
+ list-style: none;
161
+ line-height: 15px;
162
+ word-wrap: break-word;
163
+ -webkit-touch-callout: none;
164
+ }
165
+
166
+ .chosen-container .chosen-results li.active-result {
167
+ display: list-item;
168
+ cursor: pointer;
169
+ }
170
+
171
+ .chosen-container .chosen-results li.disabled-result {
172
+ display: list-item;
173
+ color: #ccc;
174
+ cursor: default;
175
+ }
176
+
177
+ .chosen-container .chosen-results li.highlighted {
178
+ background-color: #3875d7;
179
+ background-image: linear-gradient(#3875d7 20%, #2a62bc 90%);
180
+ color: #fff;
181
+ }
182
+
183
+ .chosen-container .chosen-results li.no-results {
184
+ color: #777;
185
+ display: list-item;
186
+ background: #f4f4f4;
187
+ }
188
+
189
+ .chosen-container .chosen-results li.group-result {
190
+ display: list-item;
191
+ font-weight: bold;
192
+ cursor: default;
193
+ }
194
+
195
+ .chosen-container .chosen-results li.group-option {
196
+ padding-left: 15px;
197
+ }
198
+
199
+ .chosen-container .chosen-results li em {
200
+ font-style: normal;
201
+ text-decoration: underline;
202
+ }
203
+
204
+ .chosen-container-multi .chosen-choices {
205
+ position: relative;
206
+ overflow: hidden;
207
+ margin: 0;
208
+ padding: 0 5px;
209
+ width: 100%;
210
+ height: auto;
211
+ border: 1px solid #aaa;
212
+ background-color: #fff;
213
+ background-image: linear-gradient(#eee 1%, #fff 15%);
214
+ cursor: text;
215
+ }
216
+
217
+ .chosen-container-multi .chosen-choices li {
218
+ float: left;
219
+ list-style: none;
220
+ }
221
+
222
+ .chosen-container-multi .chosen-choices li.search-field {
223
+ margin: 0;
224
+ padding: 0;
225
+ white-space: nowrap;
226
+ }
227
+
228
+ .chosen-container-multi .chosen-choices li.search-field input[type="text"] {
229
+ margin: 1px 0;
230
+ padding: 0;
231
+ outline: 0;
232
+ border: 0 !important;
233
+ background: transparent !important;
234
+ box-shadow: none;
235
+ color: #999;
236
+ font-size: 100%;
237
+ font-family: sans-serif;
238
+ line-height: normal;
239
+ border-radius: 0;
240
+ width: 25px;
241
+ height: 25px;
242
+ min-height: 25px;
243
+ }
244
+
245
+ .chosen-container-multi .chosen-choices li.search-choice {
246
+ position: relative;
247
+ margin: 3px 5px 3px 0;
248
+ padding: 3px 20px 3px 6px;
249
+ border: 1px solid #aaa;
250
+ max-width: 100%;
251
+ border-radius: 3px;
252
+ background-color: #eeeeee;
253
+ background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);
254
+ background-size: 100% 19px;
255
+ background-repeat: repeat-x;
256
+ background-clip: padding-box;
257
+ box-shadow: 0 0 2px #fff inset, 0 1px 0 rgba(0, 0, 0, 0.05);
258
+ color: #333;
259
+ line-height: 13px;
260
+ cursor: default;
261
+ }
262
+
263
+ .chosen-container-multi .chosen-choices li.search-choice span {
264
+ word-wrap: break-word;
265
+ white-space: nowrap;
266
+ }
267
+
268
+ .chosen-container-multi .chosen-choices li.search-choice .search-choice-close {
269
+ position: absolute;
270
+ top: 0;
271
+ right: 0;
272
+ display: block;
273
+ width: 12px;
274
+ height: 12px;
275
+ font-size: 1px;
276
+ }
277
+
278
+ .chosen-container-multi .chosen-choices li.search-choice-disabled {
279
+ padding-right: 5px;
280
+ border: 1px solid #ccc;
281
+ background-color: #e4e4e4;
282
+ background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);
283
+ color: #666;
284
+ }
285
+
286
+ .chosen-container-multi .chosen-choices li.search-choice-focus {
287
+ background: #d4d4d4;
288
+ }
289
+
290
+ .chosen-container-multi .chosen-results {
291
+ margin: 0;
292
+ padding: 0;
293
+ }
294
+
295
+ .chosen-container-multi .chosen-drop .result-selected {
296
+ display: list-item;
297
+ color: #ccc;
298
+ cursor: default;
299
+ }
300
+
301
+ .chosen-container-active .chosen-single {
302
+ border: 1px solid #5897fb;
303
+ box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
304
+ }
305
+
306
+ .chosen-container-active.chosen-with-drop .chosen-single {
307
+ border: 1px solid #aaa;
308
+ border-bottom-right-radius: 0;
309
+ border-bottom-left-radius: 0;
310
+ background-image: linear-gradient(#eee 20%, #fff 80%);
311
+ box-shadow: 0 1px 0 #fff inset;
312
+ }
313
+
314
+ .chosen-container-active.chosen-with-drop .chosen-single div {
315
+ border-left: none;
316
+ background: transparent;
317
+ }
318
+
319
+ .chosen-container-active .chosen-choices {
320
+ border: 1px solid #5897fb;
321
+ box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
322
+ }
323
+
324
+ .chosen-container-active .chosen-choices li.search-field input[type="text"] {
325
+ color: #222 !important;
326
+ }
327
+
328
+ .chosen-disabled {
329
+ opacity: 0.5 !important;
330
+ cursor: default;
331
+ }
332
+
333
+ .chosen-disabled .chosen-single {
334
+ cursor: default;
335
+ }
336
+
337
+ .chosen-disabled .chosen-choices .search-choice .search-choice-close {
338
+ cursor: default;
339
+ }
340
+
341
+ .chosen-rtl {
342
+ text-align: right;
343
+ }
344
+
345
+ .chosen-rtl .chosen-single {
346
+ overflow: visible;
347
+ padding: 0 8px 0 0;
348
+ }
349
+
350
+ .chosen-rtl .chosen-single span {
351
+ margin-right: 0;
352
+ margin-left: 26px;
353
+ direction: rtl;
354
+ }
355
+
356
+ .chosen-rtl .chosen-single-with-deselect span {
357
+ margin-left: 38px;
358
+ }
359
+
360
+ .chosen-rtl .chosen-single div {
361
+ right: auto;
362
+ left: 3px;
363
+ }
364
+
365
+ .chosen-rtl .chosen-single abbr {
366
+ right: auto;
367
+ left: 26px;
368
+ }
369
+
370
+ .chosen-rtl .chosen-choices li {
371
+ float: right;
372
+ }
373
+
374
+ .chosen-rtl .chosen-choices li.search-field input[type="text"] {
375
+ direction: rtl;
376
+ }
377
+
378
+ .chosen-rtl .chosen-choices li.search-choice {
379
+ margin: 3px 5px 3px 0;
380
+ padding: 3px 5px 3px 19px;
381
+ }
382
+
383
+ .chosen-rtl .chosen-choices li.search-choice .search-choice-close {
384
+ right: auto;
385
+ left: 4px;
386
+ }
387
+
388
+ .chosen-rtl.chosen-container-single .chosen-results {
389
+ margin: 0 0 4px 4px;
390
+ padding: 0 4px 0 0;
391
+ }
392
+
393
+ .chosen-rtl .chosen-results li.group-option {
394
+ padding-right: 15px;
395
+ padding-left: 0;
396
+ }
397
+
398
+ .chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div {
399
+ border-right: none;
400
+ }
401
+
402
+ .chosen-rtl .chosen-search input[type="text"] {
403
+ padding: 4px 5px 4px 20px;
404
+ direction: rtl;
405
+ }
vendor/codestar-framework/assets/scss/partials/_customizer.scss CHANGED
@@ -73,9 +73,15 @@
73
  }
74
  }
75
 
76
- .csf-field-date{
 
 
 
 
 
77
 
78
  .csf--to{
 
79
  margin-left: 0;
80
  }
81
  }
73
  }
74
  }
75
 
76
+ .csf-field-date,
77
+ .csf-field-datetime{
78
+
79
+ label{
80
+ display: block;
81
+ }
82
 
83
  .csf--to{
84
+ margin-top: 4px;
85
  margin-left: 0;
86
  }
87
  }
vendor/codestar-framework/assets/scss/partials/_fields.scss CHANGED
@@ -612,7 +612,37 @@
612
  }
613
 
614
  /**
615
- * 03. 13. Field: gallery
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
616
  */
617
  .csf-field-gallery{
618
 
@@ -646,7 +676,7 @@
646
  }
647
 
648
  /**
649
- * 03. 14. Field: group
650
  */
651
  .csf-field-group{
652
 
@@ -772,7 +802,7 @@
772
  }
773
 
774
  /**
775
- * 03. 15. Field: icon
776
  */
777
  .csf-field-icon{
778
 
@@ -809,7 +839,7 @@
809
  }
810
 
811
  /**
812
- * 03. 16. Field: image_select
813
  */
814
  .csf-field-image_select{
815
 
@@ -874,7 +904,7 @@
874
  }
875
 
876
  /**
877
- * 03. 17. Field: link_color
878
  */
879
  .csf-field-link_color{
880
 
@@ -891,7 +921,7 @@
891
  }
892
 
893
  /**
894
- * 03. 18. Field: map
895
  */
896
  .csf-field-map{
897
 
@@ -951,7 +981,7 @@
951
 
952
 
953
  /**
954
- * 03. 19. Field: media
955
  */
956
  .csf-field-media{
957
 
@@ -979,7 +1009,7 @@
979
  }
980
 
981
  /**
982
- * 03. 20. Field: palette
983
  */
984
  .csf-field-palette{
985
 
@@ -1038,7 +1068,7 @@
1038
  }
1039
 
1040
  /**
1041
- * 03. 21. Field: repeater
1042
  */
1043
  .csf-field-repeater{
1044
 
@@ -1132,7 +1162,7 @@
1132
  }
1133
 
1134
  /**
1135
- * 03. 22. Field: select
1136
  */
1137
  .csf-field-select{
1138
 
@@ -1155,7 +1185,7 @@
1155
  }
1156
 
1157
  /**
1158
- * 03. 23. Field: slider
1159
  */
1160
  .csf-field-slider{
1161
 
@@ -1235,7 +1265,7 @@
1235
  }
1236
 
1237
  /**
1238
- * 03. 24. Field: sortable
1239
  */
1240
  .csf-field-sortable{
1241
 
@@ -1316,7 +1346,7 @@
1316
  }
1317
 
1318
  /**
1319
- * 03. 25. Field: sorter
1320
  */
1321
  .csf-field-sorter{
1322
 
@@ -1393,7 +1423,7 @@
1393
  }
1394
 
1395
  /**
1396
- * 03. 26. Field: spinner
1397
  */
1398
  .csf-field-spinner{
1399
 
@@ -1401,49 +1431,96 @@
1401
  display: flex;
1402
  }
1403
 
1404
- .ui-spinner{
1405
- display: flex;
1406
  }
1407
 
1408
- .ui-button{
1409
  display: flex;
1410
- flex-direction: column;
1411
- justify-content: center;
1412
- text-align: center;
1413
- min-width: 20px;
1414
- padding: 0 4px;
1415
- color: #555;
1416
- border: 1px solid #7e8993;
1417
- background-color: #f5f5f5;
1418
- }
1419
 
1420
- .ui-spinner-button{
1421
- cursor: pointer;
 
 
 
 
 
 
 
 
 
 
1422
 
1423
- &:hover{
1424
- background-color: #e7e7e7;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1425
  }
1426
 
1427
- &:active{
1428
- background-color: #ddd;
 
 
 
 
 
1429
  }
1430
 
1431
- &:before{
1432
- font-family: "Font Awesome 5 Pro", "Font Awesome 5 Free", "FontAwesome";
1433
- font-weight: 900;
1434
- font-size: 14px;
1435
- line-height: 14px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1436
  }
1437
  }
1438
 
1439
  .ui-spinner-down{
1440
  order: 1;
1441
- border-right: 0;
1442
- border-radius: 4px 0 0 4px;
1443
-
1444
- &:before{
1445
- content: "\f0d9";
1446
- }
1447
  }
1448
 
1449
  .ui-spinner-input{
@@ -1452,39 +1529,15 @@
1452
 
1453
  .csf--unit{
1454
  order: 3;
1455
- border-left: 0;
1456
- user-select: none;
1457
  }
1458
 
1459
  .ui-spinner-up{
1460
  order: 4;
1461
- border-left: 0;
1462
- border-radius: 0 4px 4px 0;
1463
-
1464
- &:before{
1465
- content: "\f0da";
1466
- }
1467
- }
1468
-
1469
- input{
1470
- position: relative;
1471
- z-index: 1;
1472
- width: 50px;
1473
- text-align: center;
1474
- margin: 0;
1475
- padding: 0 8px;
1476
- border-radius: 0;
1477
- }
1478
-
1479
- .ui-button-text,
1480
- .ui-button-icon,
1481
- .ui-button-icon-space{
1482
- display: none;
1483
  }
1484
  }
1485
 
1486
  /**
1487
- * 03. 27. Field: switcher
1488
  */
1489
  .csf-field-switcher{
1490
 
@@ -1566,7 +1619,7 @@
1566
  }
1567
 
1568
  /**
1569
- * 03. 28. Field: tabbed
1570
  */
1571
  .csf-field-tabbed{
1572
 
@@ -1618,7 +1671,7 @@
1618
  }
1619
 
1620
  /**
1621
- * 03. 29. Field: text
1622
  */
1623
  .csf-field-text{
1624
 
@@ -1630,7 +1683,7 @@
1630
  }
1631
 
1632
  /**
1633
- * 03. 30. Field: textarea
1634
  */
1635
  .csf-field-textarea{
1636
 
@@ -1647,7 +1700,7 @@
1647
  }
1648
 
1649
  /**
1650
- * 03. 31. Field: typography
1651
  */
1652
  .csf-field-typography{
1653
 
@@ -1746,7 +1799,7 @@
1746
  }
1747
 
1748
  /**
1749
- * 03. 32. Field: upload
1750
  */
1751
  .csf-field-upload{
1752
 
@@ -1770,7 +1823,7 @@
1770
  }
1771
 
1772
  /**
1773
- * 03. 33. Field: wp_editor
1774
  */
1775
  .csf-field-wp_editor{
1776
 
@@ -1827,7 +1880,7 @@
1827
  }
1828
 
1829
  /**
1830
- * 03. 34. Field: heading
1831
  */
1832
  .csf-field-heading{
1833
  font-size: 1.5em;
@@ -1837,7 +1890,7 @@
1837
  }
1838
 
1839
  /**
1840
- * 03. 35. Field: subheading
1841
  */
1842
  .csf-field-subheading{
1843
  font-size: 14px;
@@ -1849,7 +1902,7 @@
1849
  }
1850
 
1851
  /**
1852
- * 03. 36. Field: submessage
1853
  */
1854
  .csf-field-submessage{
1855
  padding: 0 !important;
@@ -1898,7 +1951,7 @@
1898
  }
1899
 
1900
  /**
1901
- * 03. 37. Field: notice
1902
  */
1903
  .csf-field-notice{
1904
  background-color: #f7f7f7;
@@ -1933,7 +1986,7 @@
1933
  }
1934
 
1935
  /**
1936
- * 03. 38. Field: number
1937
  */
1938
  .csf-field-number{
1939
 
@@ -1968,7 +2021,7 @@
1968
  }
1969
 
1970
  /**
1971
- * 03. 39. Field: link
1972
  */
1973
  .csf-field-link{
1974
 
@@ -2011,7 +2064,7 @@
2011
  }
2012
 
2013
  /**
2014
- * 03. 40. others
2015
  */
2016
  .csf-help{
2017
  cursor: help;
612
  }
613
 
614
  /**
615
+ * 03. 13. Field: datetime
616
+ */
617
+ .csf-field-datetime{
618
+
619
+ input{
620
+ margin: 0;
621
+ }
622
+
623
+ .csf--to{
624
+ margin-left: 7px;
625
+ }
626
+ }
627
+
628
+ .csf-flatpickr{
629
+
630
+ select,
631
+ input{
632
+ min-height: auto;
633
+
634
+ &:focus{
635
+ box-shadow: none;
636
+ }
637
+ }
638
+
639
+ &.open{
640
+ z-index: 9999999 !important;
641
+ }
642
+ }
643
+
644
+ /**
645
+ * 03. 14. Field: gallery
646
  */
647
  .csf-field-gallery{
648
 
676
  }
677
 
678
  /**
679
+ * 03. 15. Field: group
680
  */
681
  .csf-field-group{
682
 
802
  }
803
 
804
  /**
805
+ * 03. 16. Field: icon
806
  */
807
  .csf-field-icon{
808
 
839
  }
840
 
841
  /**
842
+ * 03. 17. Field: image_select
843
  */
844
  .csf-field-image_select{
845
 
904
  }
905
 
906
  /**
907
+ * 03. 18. Field: link_color
908
  */
909
  .csf-field-link_color{
910
 
921
  }
922
 
923
  /**
924
+ * 03. 19. Field: map
925
  */
926
  .csf-field-map{
927
 
981
 
982
 
983
  /**
984
+ * 03. 20. Field: media
985
  */
986
  .csf-field-media{
987
 
1009
  }
1010
 
1011
  /**
1012
+ * 03. 21. Field: palette
1013
  */
1014
  .csf-field-palette{
1015
 
1068
  }
1069
 
1070
  /**
1071
+ * 03. 22. Field: repeater
1072
  */
1073
  .csf-field-repeater{
1074
 
1162
  }
1163
 
1164
  /**
1165
+ * 03. 23. Field: select
1166
  */
1167
  .csf-field-select{
1168
 
1185
  }
1186
 
1187
  /**
1188
+ * 03. 24. Field: slider
1189
  */
1190
  .csf-field-slider{
1191
 
1265
  }
1266
 
1267
  /**
1268
+ * 03. 25. Field: sortable
1269
  */
1270
  .csf-field-sortable{
1271
 
1346
  }
1347
 
1348
  /**
1349
+ * 03. 26. Field: sorter
1350
  */
1351
  .csf-field-sorter{
1352
 
1423
  }
1424
 
1425
  /**
1426
+ * 03. 27. Field: spinner
1427
  */
1428
  .csf-field-spinner{
1429
 
1431
  display: flex;
1432
  }
1433
 
1434
+ .ui-widget{
1435
+ font-family: inherit;
1436
  }
1437
 
1438
+ .ui-spinner{
1439
  display: flex;
1440
+ align-items: stretch;
1441
+ overflow: unset;
1442
+ border: none;
1443
+ background: none;
1444
+ border-radius: 0;
 
 
 
 
1445
 
1446
+ .ui-button{
1447
+ display: flex;
1448
+ flex-direction: column;
1449
+ justify-content: center;
1450
+ text-align: center;
1451
+ min-width: 20px;
1452
+ padding: 0 4px;
1453
+ margin: 0;
1454
+ color: #555;
1455
+ background-color: #f5f5f5;
1456
+ border: 1px solid #7e8993;
1457
+ }
1458
 
1459
+ .ui-spinner-button{
1460
+ position: relative;
1461
+ cursor: pointer;
1462
+ height: auto;
1463
+
1464
+ &:hover{
1465
+ background-color: #e7e7e7;
1466
+ }
1467
+
1468
+ &:active{
1469
+ background-color: #ddd;
1470
+ }
1471
+
1472
+ &:before{
1473
+ font-family: "Font Awesome 5 Pro", "Font Awesome 5 Free", "FontAwesome";
1474
+ font-weight: 900;
1475
+ font-size: 14px;
1476
+ line-height: 14px;
1477
+ }
1478
  }
1479
 
1480
+ .ui-spinner-down{
1481
+ border-right: 0;
1482
+ border-radius: 4px 0 0 4px;
1483
+
1484
+ &:before{
1485
+ content: "\f0d9";
1486
+ }
1487
  }
1488
 
1489
+ .ui-spinner-up{
1490
+ border-left: 0;
1491
+ border-radius: 0 4px 4px 0;
1492
+
1493
+ &:before{
1494
+ content: "\f0da";
1495
+ }
1496
+ }
1497
+
1498
+ .csf--unit{
1499
+ border-left: 0;
1500
+ user-select: none;
1501
+ }
1502
+
1503
+ .ui-button-text,
1504
+ .ui-button-icon,
1505
+ .ui-button-icon-space{
1506
+ display: none;
1507
+ }
1508
+
1509
+ input{
1510
+ font-family: inherit;
1511
+ font-size: inherit;
1512
+ position: relative;
1513
+ z-index: 1;
1514
+ width: 50px;
1515
+ text-align: center;
1516
+ margin: 0;
1517
+ padding: 0 8px;
1518
+ border-radius: 0;
1519
  }
1520
  }
1521
 
1522
  .ui-spinner-down{
1523
  order: 1;
 
 
 
 
 
 
1524
  }
1525
 
1526
  .ui-spinner-input{
1529
 
1530
  .csf--unit{
1531
  order: 3;
 
 
1532
  }
1533
 
1534
  .ui-spinner-up{
1535
  order: 4;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1536
  }
1537
  }
1538
 
1539
  /**
1540
+ * 03. 28. Field: switcher
1541
  */
1542
  .csf-field-switcher{
1543
 
1619
  }
1620
 
1621
  /**
1622
+ * 03. 29. Field: tabbed
1623
  */
1624
  .csf-field-tabbed{
1625
 
1671
  }
1672
 
1673
  /**
1674
+ * 03. 30. Field: text
1675
  */
1676
  .csf-field-text{
1677
 
1683
  }
1684
 
1685
  /**
1686
+ * 03. 31. Field: textarea
1687
  */
1688
  .csf-field-textarea{
1689
 
1700
  }
1701
 
1702
  /**
1703
+ * 03. 32. Field: typography
1704
  */
1705
  .csf-field-typography{
1706
 
1799
  }
1800
 
1801
  /**
1802
+ * 03. 33. Field: upload
1803
  */
1804
  .csf-field-upload{
1805
 
1823
  }
1824
 
1825
  /**
1826
+ * 03. 34. Field: wp_editor
1827
  */
1828
  .csf-field-wp_editor{
1829
 
1880
  }
1881
 
1882
  /**
1883
+ * 03. 35. Field: heading
1884
  */
1885
  .csf-field-heading{
1886
  font-size: 1.5em;
1890
  }
1891
 
1892
  /**
1893
+ * 03. 36. Field: subheading
1894
  */
1895
  .csf-field-subheading{
1896
  font-size: 14px;
1902
  }
1903
 
1904
  /**
1905
+ * 03. 37. Field: submessage
1906
  */
1907
  .csf-field-submessage{
1908
  padding: 0 !important;
1951
  }
1952
 
1953
  /**
1954
+ * 03. 38. Field: notice
1955
  */
1956
  .csf-field-notice{
1957
  background-color: #f7f7f7;
1986
  }
1987
 
1988
  /**
1989
+ * 03. 39. Field: number
1990
  */
1991
  .csf-field-number{
1992
 
2021
  }
2022
 
2023
  /**
2024
+ * 03. 40. Field: link
2025
  */
2026
  .csf-field-link{
2027
 
2064
  }
2065
 
2066
  /**
2067
+ * 03. 41. others
2068
  */
2069
  .csf-help{
2070
  cursor: help;
vendor/codestar-framework/assets/scss/partials/_flatpickr.scss ADDED
@@ -0,0 +1,794 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Flatpickr
3
+ */
4
+ .flatpickr-calendar {
5
+ background: transparent;
6
+ opacity: 0;
7
+ display: none;
8
+ text-align: center;
9
+ visibility: hidden;
10
+ padding: 0;
11
+ -webkit-animation: none;
12
+ animation: none;
13
+ direction: ltr;
14
+ border: 0;
15
+ font-size: 14px;
16
+ line-height: 24px;
17
+ border-radius: 5px;
18
+ position: absolute;
19
+ width: 307.875px;
20
+ -webkit-box-sizing: border-box;
21
+ box-sizing: border-box;
22
+ -ms-touch-action: manipulation;
23
+ touch-action: manipulation;
24
+ background: #fff;
25
+ -webkit-box-shadow: 1px 0 0 #e6e6e6, -1px 0 0 #e6e6e6, 0 1px 0 #e6e6e6, 0 -1px 0 #e6e6e6, 0 3px 13px rgba(0,0,0,0.08);
26
+ box-shadow: 1px 0 0 #e6e6e6, -1px 0 0 #e6e6e6, 0 1px 0 #e6e6e6, 0 -1px 0 #e6e6e6, 0 3px 13px rgba(0,0,0,0.08);
27
+ }
28
+ .flatpickr-calendar.open,
29
+ .flatpickr-calendar.inline {
30
+ opacity: 1;
31
+ max-height: 640px;
32
+ visibility: visible;
33
+ }
34
+ .flatpickr-calendar.open {
35
+ display: inline-block;
36
+ z-index: 99999;
37
+ }
38
+ .flatpickr-calendar.animate.open {
39
+ -webkit-animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);
40
+ animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);
41
+ }
42
+ .flatpickr-calendar.inline {
43
+ display: block;
44
+ position: relative;
45
+ top: 2px;
46
+ }
47
+ .flatpickr-calendar.static {
48
+ position: absolute;
49
+ top: calc(100% + 2px);
50
+ }
51
+ .flatpickr-calendar.static.open {
52
+ z-index: 999;
53
+ display: block;
54
+ }
55
+ .flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7) {
56
+ -webkit-box-shadow: none !important;
57
+ box-shadow: none !important;
58
+ }
59
+ .flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1) {
60
+ -webkit-box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;
61
+ box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;
62
+ }
63
+ .flatpickr-calendar .hasWeeks .dayContainer,
64
+ .flatpickr-calendar .hasTime .dayContainer {
65
+ border-bottom: 0;
66
+ border-bottom-right-radius: 0;
67
+ border-bottom-left-radius: 0;
68
+ }
69
+ .flatpickr-calendar .hasWeeks .dayContainer {
70
+ border-left: 0;
71
+ }
72
+ .flatpickr-calendar.hasTime .flatpickr-time {
73
+ height: 40px;
74
+ border-top: 1px solid #e6e6e6;
75
+ }
76
+ .flatpickr-calendar.noCalendar.hasTime .flatpickr-time {
77
+ height: auto;
78
+ }
79
+ .flatpickr-calendar:before,
80
+ .flatpickr-calendar:after {
81
+ position: absolute;
82
+ display: block;
83
+ pointer-events: none;
84
+ border: solid transparent;
85
+ content: '';
86
+ height: 0;
87
+ width: 0;
88
+ left: 22px;
89
+ }
90
+ .flatpickr-calendar.rightMost:before,
91
+ .flatpickr-calendar.arrowRight:before,
92
+ .flatpickr-calendar.rightMost:after,
93
+ .flatpickr-calendar.arrowRight:after {
94
+ left: auto;
95
+ right: 22px;
96
+ }
97
+ .flatpickr-calendar.arrowCenter:before,
98
+ .flatpickr-calendar.arrowCenter:after {
99
+ left: 50%;
100
+ right: 50%;
101
+ }
102
+ .flatpickr-calendar:before {
103
+ border-width: 5px;
104
+ margin: 0 -5px;
105
+ }
106
+ .flatpickr-calendar:after {
107
+ border-width: 4px;
108
+ margin: 0 -4px;
109
+ }
110
+ .flatpickr-calendar.arrowTop:before,
111
+ .flatpickr-calendar.arrowTop:after {
112
+ bottom: 100%;
113
+ }
114
+ .flatpickr-calendar.arrowTop:before {
115
+ border-bottom-color: #e6e6e6;
116
+ }
117
+ .flatpickr-calendar.arrowTop:after {
118
+ border-bottom-color: #fff;
119
+ }
120
+ .flatpickr-calendar.arrowBottom:before,
121
+ .flatpickr-calendar.arrowBottom:after {
122
+ top: 100%;
123
+ }
124
+ .flatpickr-calendar.arrowBottom:before {
125
+ border-top-color: #e6e6e6;
126
+ }
127
+ .flatpickr-calendar.arrowBottom:after {
128
+ border-top-color: #fff;
129
+ }
130
+ .flatpickr-calendar:focus {
131
+ outline: 0;
132
+ }
133
+ .flatpickr-wrapper {
134
+ position: relative;
135
+ display: inline-block;
136
+ }
137
+ .flatpickr-months {
138
+ display: -webkit-box;
139
+ display: -webkit-flex;
140
+ display: -ms-flexbox;
141
+ display: flex;
142
+ }
143
+ .flatpickr-months .flatpickr-month {
144
+ background: transparent;
145
+ color: rgba(0,0,0,0.9);
146
+ fill: rgba(0,0,0,0.9);
147
+ height: 34px;
148
+ line-height: 1;
149
+ text-align: center;
150
+ position: relative;
151
+ -webkit-user-select: none;
152
+ -moz-user-select: none;
153
+ -ms-user-select: none;
154
+ user-select: none;
155
+ overflow: hidden;
156
+ -webkit-box-flex: 1;
157
+ -webkit-flex: 1;
158
+ -ms-flex: 1;
159
+ flex: 1;
160
+ }
161
+ .flatpickr-months .flatpickr-prev-month,
162
+ .flatpickr-months .flatpickr-next-month {
163
+ text-decoration: none;
164
+ cursor: pointer;
165
+ position: absolute;
166
+ top: 0;
167
+ height: 34px;
168
+ padding: 10px;
169
+ z-index: 3;
170
+ color: rgba(0,0,0,0.9);
171
+ fill: rgba(0,0,0,0.9);
172
+ }
173
+ .flatpickr-months .flatpickr-prev-month.flatpickr-disabled,
174
+ .flatpickr-months .flatpickr-next-month.flatpickr-disabled {
175
+ display: none;
176
+ }
177
+ .flatpickr-months .flatpickr-prev-month i,
178
+ .flatpickr-months .flatpickr-next-month i {
179
+ position: relative;
180
+ }
181
+ .flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,
182
+ .flatpickr-months .flatpickr-next-month.flatpickr-prev-month {
183
+ /*
184
+ /*rtl:begin:ignore*/
185
+ /*
186
+ */
187
+ left: 0;
188
+ /*
189
+ /*rtl:end:ignore*/
190
+ /*
191
+ */
192
+ }
193
+ /*
194
+ /*rtl:begin:ignore*/
195
+ /*
196
+ /*rtl:end:ignore*/
197
+ .flatpickr-months .flatpickr-prev-month.flatpickr-next-month,
198
+ .flatpickr-months .flatpickr-next-month.flatpickr-next-month {
199
+ /*
200
+ /*rtl:begin:ignore*/
201
+ /*
202
+ */
203
+ right: 0;
204
+ /*
205
+ /*rtl:end:ignore*/
206
+ /*
207
+ */
208
+ }
209
+ /*
210
+ /*rtl:begin:ignore*/
211
+ /*
212
+ /*rtl:end:ignore*/
213
+ .flatpickr-months .flatpickr-prev-month:hover,
214
+ .flatpickr-months .flatpickr-next-month:hover {
215
+ color: #959ea9;
216
+ }
217
+ .flatpickr-months .flatpickr-prev-month:hover svg,
218
+ .flatpickr-months .flatpickr-next-month:hover svg {
219
+ fill: #f64747;
220
+ }
221
+ .flatpickr-months .flatpickr-prev-month svg,
222
+ .flatpickr-months .flatpickr-next-month svg {
223
+ width: 14px;
224
+ height: 14px;
225
+ }
226
+ .flatpickr-months .flatpickr-prev-month svg path,
227
+ .flatpickr-months .flatpickr-next-month svg path {
228
+ -webkit-transition: fill 0.1s;
229
+ transition: fill 0.1s;
230
+ fill: inherit;
231
+ }
232
+ .numInputWrapper {
233
+ position: relative;
234
+ height: auto;
235
+ }
236
+ .numInputWrapper input,
237
+ .numInputWrapper span {
238
+ display: inline-block;
239
+ }
240
+ .numInputWrapper input {
241
+ width: 100%;
242
+ }
243
+ .numInputWrapper input::-ms-clear {
244
+ display: none;
245
+ }
246
+ .numInputWrapper input::-webkit-outer-spin-button,
247
+ .numInputWrapper input::-webkit-inner-spin-button {
248
+ margin: 0;
249
+ -webkit-appearance: none;
250
+ }
251
+ .numInputWrapper span {
252
+ position: absolute;
253
+ right: 0;
254
+ width: 14px;
255
+ padding: 0 4px 0 2px;
256
+ height: 50%;
257
+ line-height: 50%;
258
+ opacity: 0;
259
+ cursor: pointer;
260
+ border: 1px solid rgba(57,57,57,0.15);
261
+ -webkit-box-sizing: border-box;
262
+ box-sizing: border-box;
263
+ }
264
+ .numInputWrapper span:hover {
265
+ background: rgba(0,0,0,0.1);
266
+ }
267
+ .numInputWrapper span:active {
268
+ background: rgba(0,0,0,0.2);
269
+ }
270
+ .numInputWrapper span:after {
271
+ display: block;
272
+ content: "";
273
+ position: absolute;
274
+ }
275
+ .numInputWrapper span.arrowUp {
276
+ top: 0;
277
+ border-bottom: 0;
278
+ }
279
+ .numInputWrapper span.arrowUp:after {
280
+ border-left: 4px solid transparent;
281
+ border-right: 4px solid transparent;
282
+ border-bottom: 4px solid rgba(57,57,57,0.6);
283
+ top: 26%;
284
+ }
285
+ .numInputWrapper span.arrowDown {
286
+ top: 50%;
287
+ }
288
+ .numInputWrapper span.arrowDown:after {
289
+ border-left: 4px solid transparent;
290
+ border-right: 4px solid transparent;
291
+ border-top: 4px solid rgba(57,57,57,0.6);
292
+ top: 40%;
293
+ }
294
+ .numInputWrapper span svg {
295
+ width: inherit;
296
+ height: auto;
297
+ }
298
+ .numInputWrapper span svg path {
299
+ fill: rgba(0,0,0,0.5);
300
+ }
301
+ .numInputWrapper:hover {
302
+ background: rgba(0,0,0,0.05);
303
+ }
304
+ .numInputWrapper:hover span {
305
+ opacity: 1;
306
+ }
307
+ .flatpickr-current-month {
308
+ font-size: 135%;
309
+ line-height: inherit;
310
+ font-weight: 300;
311
+ color: inherit;
312
+ position: absolute;
313
+ width: 75%;
314
+ left: 12.5%;
315
+ padding: 7.48px 0 0 0;
316
+ line-height: 1;
317
+ height: 34px;
318
+ display: inline-block;
319
+ text-align: center;
320
+ -webkit-transform: translate3d(0px, 0px, 0px);
321
+ transform: translate3d(0px, 0px, 0px);
322
+ }
323
+ .flatpickr-current-month span.cur-month {
324
+ font-family: inherit;
325
+ font-weight: 700;
326
+ color: inherit;
327
+ display: inline-block;
328
+ margin-left: 0.5ch;
329
+ padding: 0;
330
+ }
331
+ .flatpickr-current-month span.cur-month:hover {
332
+ background: rgba(0,0,0,0.05);
333
+ }
334
+ .flatpickr-current-month .numInputWrapper {
335
+ width: 6ch;
336
+ width: 7ch\0;
337
+ display: inline-block;
338
+ }
339
+ .flatpickr-current-month .numInputWrapper span.arrowUp:after {
340
+ border-bottom-color: rgba(0,0,0,0.9);
341
+ }
342
+ .flatpickr-current-month .numInputWrapper span.arrowDown:after {
343
+ border-top-color: rgba(0,0,0,0.9);
344
+ }
345
+ .flatpickr-current-month input.cur-year {
346
+ background: transparent;
347
+ -webkit-box-sizing: border-box;
348
+ box-sizing: border-box;
349
+ color: inherit;
350
+ cursor: text;
351
+ padding: 0 0 0 0.5ch;
352
+ margin: 0;
353
+ display: inline-block;
354
+ font-size: inherit;
355
+ font-family: inherit;
356
+ font-weight: 300;
357
+ line-height: inherit;
358
+ height: auto;
359
+ border: 0;
360
+ border-radius: 0;
361
+ vertical-align: initial;
362
+ -webkit-appearance: textfield;
363
+ -moz-appearance: textfield;
364
+ appearance: textfield;
365
+ }
366
+ .flatpickr-current-month input.cur-year:focus {
367
+ outline: 0;
368
+ }
369
+ .flatpickr-current-month input.cur-year[disabled],
370
+ .flatpickr-current-month input.cur-year[disabled]:hover {
371
+ font-size: 100%;
372
+ color: rgba(0,0,0,0.5);
373
+ background: transparent;
374
+ pointer-events: none;
375
+ }
376
+ .flatpickr-current-month .flatpickr-monthDropdown-months {
377
+ appearance: menulist;
378
+ background: transparent;
379
+ border: none;
380
+ border-radius: 0;
381
+ box-sizing: border-box;
382
+ color: inherit;
383
+ cursor: pointer;
384
+ font-size: inherit;
385
+ font-family: inherit;
386
+ font-weight: 300;
387
+ height: auto;
388
+ line-height: inherit;
389
+ margin: -1px 0 0 0;
390
+ outline: none;
391
+ padding: 0 0 0 0.5ch;
392
+ position: relative;
393
+ vertical-align: initial;
394
+ -webkit-box-sizing: border-box;
395
+ -webkit-appearance: menulist;
396
+ -moz-appearance: menulist;
397
+ width: auto;
398
+ }
399
+ .flatpickr-current-month .flatpickr-monthDropdown-months:focus,
400
+ .flatpickr-current-month .flatpickr-monthDropdown-months:active {
401
+ outline: none;
402
+ }
403
+ .flatpickr-current-month .flatpickr-monthDropdown-months:hover {
404
+ background: rgba(0,0,0,0.05);
405
+ }
406
+ .flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month {
407
+ background-color: transparent;
408
+ outline: none;
409
+ padding: 0;
410
+ }
411
+ .flatpickr-weekdays {
412
+ background: transparent;
413
+ text-align: center;
414
+ overflow: hidden;
415
+ width: 100%;
416
+ display: -webkit-box;
417
+ display: -webkit-flex;
418
+ display: -ms-flexbox;
419
+ display: flex;
420
+ -webkit-box-align: center;
421
+ -webkit-align-items: center;
422
+ -ms-flex-align: center;
423
+ align-items: center;
424
+ height: 28px;
425
+ }
426
+ .flatpickr-weekdays .flatpickr-weekdaycontainer {
427
+ display: -webkit-box;
428
+ display: -webkit-flex;
429
+ display: -ms-flexbox;
430
+ display: flex;
431
+ -webkit-box-flex: 1;
432
+ -webkit-flex: 1;
433
+ -ms-flex: 1;
434
+ flex: 1;
435
+ }
436
+ span.flatpickr-weekday {
437
+ cursor: default;
438
+ font-size: 90%;
439
+ background: transparent;
440
+ color: rgba(0,0,0,0.54);
441
+ line-height: 1;
442
+ margin: 0;
443
+ text-align: center;
444
+ display: block;
445
+ -webkit-box-flex: 1;
446
+ -webkit-flex: 1;
447
+ -ms-flex: 1;
448
+ flex: 1;
449
+ font-weight: bolder;
450
+ }
451
+ .dayContainer,
452
+ .flatpickr-weeks {
453
+ padding: 1px 0 0 0;
454
+ }
455
+ .flatpickr-days {
456
+ position: relative;
457
+ overflow: hidden;
458
+ display: -webkit-box;
459
+ display: -webkit-flex;
460
+ display: -ms-flexbox;
461
+ display: flex;
462
+ -webkit-box-align: start;
463
+ -webkit-align-items: flex-start;
464
+ -ms-flex-align: start;
465
+ align-items: flex-start;
466
+ width: 307.875px;
467
+ }
468
+ .flatpickr-days:focus {
469
+ outline: 0;
470
+ }
471
+ .dayContainer {
472
+ padding: 0;
473
+ outline: 0;
474
+ text-align: left;
475
+ width: 307.875px;
476
+ min-width: 307.875px;
477
+ max-width: 307.875px;
478
+ -webkit-box-sizing: border-box;
479
+ box-sizing: border-box;
480
+ display: inline-block;
481
+ display: -ms-flexbox;
482
+ display: -webkit-box;
483
+ display: -webkit-flex;
484
+ display: flex;
485
+ -webkit-flex-wrap: wrap;
486
+ flex-wrap: wrap;
487
+ -ms-flex-wrap: wrap;
488
+ -ms-flex-pack: justify;
489
+ -webkit-justify-content: space-around;
490
+ justify-content: space-around;
491
+ -webkit-transform: translate3d(0px, 0px, 0px);
492
+ transform: translate3d(0px, 0px, 0px);
493
+ opacity: 1;
494
+ }
495
+ .dayContainer + .dayContainer {
496
+ -webkit-box-shadow: -1px 0 0 #e6e6e6;
497
+ box-shadow: -1px 0 0 #e6e6e6;
498
+ }
499
+ .flatpickr-day {
500
+ background: none;
501
+ border: 1px solid transparent;
502
+ border-radius: 150px;
503
+ -webkit-box-sizing: border-box;
504
+ box-sizing: border-box;
505
+ color: #393939;
506
+ cursor: pointer;
507
+ font-weight: 400;
508
+ width: 14.2857143%;
509
+ -webkit-flex-basis: 14.2857143%;
510
+ -ms-flex-preferred-size: 14.2857143%;
511
+ flex-basis: 14.2857143%;
512
+ max-width: 39px;
513
+ height: 39px;
514
+ line-height: 39px;
515
+ margin: 0;
516
+ display: inline-block;
517
+ position: relative;
518
+ -webkit-box-pack: center;
519
+ -webkit-justify-content: center;
520
+ -ms-flex-pack: center;
521
+ justify-content: center;
522
+ text-align: center;
523
+ }
524
+ .flatpickr-day.inRange,
525
+ .flatpickr-day.prevMonthDay.inRange,
526
+ .flatpickr-day.nextMonthDay.inRange,
527
+ .flatpickr-day.today.inRange,
528
+ .flatpickr-day.prevMonthDay.today.inRange,
529
+ .flatpickr-day.nextMonthDay.today.inRange,
530
+ .flatpickr-day:hover,
531
+ .flatpickr-day.prevMonthDay:hover,
532
+ .flatpickr-day.nextMonthDay:hover,
533
+ .flatpickr-day:focus,
534
+ .flatpickr-day.prevMonthDay:focus,
535
+ .flatpickr-day.nextMonthDay:focus {
536
+ cursor: pointer;
537
+ outline: 0;
538
+ background: #e6e6e6;
539
+ border-color: #e6e6e6;
540
+ }
541
+ .flatpickr-day.today {
542
+ border-color: #959ea9;
543
+ }
544
+ .flatpickr-day.today:hover,
545
+ .flatpickr-day.today:focus {
546
+ border-color: #959ea9;
547
+ background: #959ea9;
548
+ color: #fff;
549
+ }
550
+ .flatpickr-day.selected,
551
+ .flatpickr-day.startRange,
552
+ .flatpickr-day.endRange,
553
+ .flatpickr-day.selected.inRange,
554
+ .flatpickr-day.startRange.inRange,
555
+ .flatpickr-day.endRange.inRange,
556
+ .flatpickr-day.selected:focus,
557
+ .flatpickr-day.startRange:focus,
558
+ .flatpickr-day.endRange:focus,
559
+ .flatpickr-day.selected:hover,
560
+ .flatpickr-day.startRange:hover,
561
+ .flatpickr-day.endRange:hover,
562
+ .flatpickr-day.selected.prevMonthDay,
563
+ .flatpickr-day.startRange.prevMonthDay,
564
+ .flatpickr-day.endRange.prevMonthDay,
565
+ .flatpickr-day.selected.nextMonthDay,
566
+ .flatpickr-day.startRange.nextMonthDay,
567
+ .flatpickr-day.endRange.nextMonthDay {
568
+ background: #569ff7;
569
+ -webkit-box-shadow: none;
570
+ box-shadow: none;
571
+ color: #fff;
572
+ border-color: #569ff7;
573
+ }
574
+ .flatpickr-day.selected.startRange,
575
+ .flatpickr-day.startRange.startRange,
576
+ .flatpickr-day.endRange.startRange {
577
+ border-radius: 50px 0 0 50px;
578
+ }
579
+ .flatpickr-day.selected.endRange,
580
+ .flatpickr-day.startRange.endRange,
581
+ .flatpickr-day.endRange.endRange {
582
+ border-radius: 0 50px 50px 0;
583
+ }
584
+ .flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)),
585
+ .flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)),
586
+ .flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)) {
587
+ -webkit-box-shadow: -10px 0 0 #569ff7;
588
+ box-shadow: -10px 0 0 #569ff7;
589
+ }
590
+ .flatpickr-day.selected.startRange.endRange,
591
+ .flatpickr-day.startRange.startRange.endRange,
592
+ .flatpickr-day.endRange.startRange.endRange {
593
+ border-radius: 50px;
594
+ }
595
+ .flatpickr-day.inRange {
596
+ border-radius: 0;
597
+ -webkit-box-shadow: -5px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;
598
+ box-shadow: -5px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;
599
+ }
600
+ .flatpickr-day.flatpickr-disabled,
601
+ .flatpickr-day.flatpickr-disabled:hover,
602
+ .flatpickr-day.prevMonthDay,
603
+ .flatpickr-day.nextMonthDay,
604
+ .flatpickr-day.notAllowed,
605
+ .flatpickr-day.notAllowed.prevMonthDay,
606
+ .flatpickr-day.notAllowed.nextMonthDay {
607
+ color: rgba(57,57,57,0.3);
608
+ background: transparent;
609
+ border-color: transparent;
610
+ cursor: default;
611
+ }
612
+ .flatpickr-day.flatpickr-disabled,
613
+ .flatpickr-day.flatpickr-disabled:hover {
614
+ cursor: not-allowed;
615
+ color: rgba(57,57,57,0.1);
616
+ }
617
+ .flatpickr-day.week.selected {
618
+ border-radius: 0;
619
+ -webkit-box-shadow: -5px 0 0 #569ff7, 5px 0 0 #569ff7;
620
+ box-shadow: -5px 0 0 #569ff7, 5px 0 0 #569ff7;
621
+ }
622
+ .flatpickr-day.hidden {
623
+ visibility: hidden;
624
+ }
625
+ .rangeMode .flatpickr-day {
626
+ margin-top: 1px;
627
+ }
628
+ .flatpickr-weekwrapper {
629
+ float: left;
630
+ }
631
+ .flatpickr-weekwrapper .flatpickr-weeks {
632
+ padding: 0 12px;
633
+ -webkit-box-shadow: 1px 0 0 #e6e6e6;
634
+ box-shadow: 1px 0 0 #e6e6e6;
635
+ }
636
+ .flatpickr-weekwrapper .flatpickr-weekday {
637
+ float: none;
638
+ width: 100%;
639
+ line-height: 28px;
640
+ }
641
+ .flatpickr-weekwrapper span.flatpickr-day,
642
+ .flatpickr-weekwrapper span.flatpickr-day:hover {
643
+ display: block;
644
+ width: 100%;
645
+ max-width: none;
646
+ color: rgba(57,57,57,0.3);
647
+ background: transparent;
648
+ cursor: default;
649
+ border: none;
650
+ }
651
+ .flatpickr-innerContainer {
652
+ display: block;
653
+ display: -webkit-box;
654
+ display: -webkit-flex;
655
+ display: -ms-flexbox;
656
+ display: flex;
657
+ -webkit-box-sizing: border-box;
658
+ box-sizing: border-box;
659
+ overflow: hidden;
660
+ }
661
+ .flatpickr-rContainer {
662
+ display: inline-block;
663
+ padding: 0;
664
+ -webkit-box-sizing: border-box;
665
+ box-sizing: border-box;
666
+ }
667
+ .flatpickr-time {
668
+ text-align: center;
669
+ outline: 0;
670
+ display: block;
671
+ height: 0;
672
+ line-height: 40px;
673
+ max-height: 40px;
674
+ -webkit-box-sizing: border-box;
675
+ box-sizing: border-box;
676
+ overflow: hidden;
677
+ display: -webkit-box;
678
+ display: -webkit-flex;
679
+ display: -ms-flexbox;
680
+ display: flex;
681
+ }
682
+ .flatpickr-time:after {
683
+ content: "";
684
+ display: table;
685
+ clear: both;
686
+ }
687
+ .flatpickr-time .numInputWrapper {
688
+ -webkit-box-flex: 1;
689
+ -webkit-flex: 1;
690
+ -ms-flex: 1;
691
+ flex: 1;
692
+ width: 40%;
693
+ height: 40px;
694
+ float: left;
695
+ }
696
+ .flatpickr-time .numInputWrapper span.arrowUp:after {
697
+ border-bottom-color: #393939;
698
+ }
699
+ .flatpickr-time .numInputWrapper span.arrowDown:after {
700
+ border-top-color: #393939;
701
+ }
702
+ .flatpickr-time.hasSeconds .numInputWrapper {
703
+ width: 26%;
704
+ }
705
+ .flatpickr-time.time24hr .numInputWrapper {
706
+ width: 49%;
707
+ }
708
+ .flatpickr-time input {
709
+ background: transparent;
710
+ -webkit-box-shadow: none;
711
+ box-shadow: none;
712
+ border: 0;
713
+ border-radius: 0;
714
+ text-align: center;
715
+ margin: 0;
716
+ padding: 0;
717
+ height: inherit;
718
+ line-height: inherit;
719
+ color: #393939;
720
+ font-size: 14px;
721
+ position: relative;
722
+ -webkit-box-sizing: border-box;
723
+ box-sizing: border-box;
724
+ -webkit-appearance: textfield;
725
+ -moz-appearance: textfield;
726
+ appearance: textfield;
727
+ }
728
+ .flatpickr-time input.flatpickr-hour {
729
+ font-weight: bold;
730
+ }
731
+ .flatpickr-time input.flatpickr-minute,
732
+ .flatpickr-time input.flatpickr-second {
733
+ font-weight: 400;
734
+ }
735
+ .flatpickr-time input:focus {
736
+ outline: 0;
737
+ border: 0;
738
+ }
739
+ .flatpickr-time .flatpickr-time-separator,
740
+ .flatpickr-time .flatpickr-am-pm {
741
+ height: inherit;
742
+ float: left;
743
+ line-height: inherit;
744
+ color: #393939;
745
+ font-weight: bold;
746
+ width: 2%;
747
+ -webkit-user-select: none;
748
+ -moz-user-select: none;
749
+ -ms-user-select: none;
750
+ user-select: none;
751
+ -webkit-align-self: center;
752
+ -ms-flex-item-align: center;
753
+ align-self: center;
754
+ }
755
+ .flatpickr-time .flatpickr-am-pm {
756
+ outline: 0;
757
+ width: 18%;
758
+ cursor: pointer;
759
+ text-align: center;
760
+ font-weight: 400;
761
+ }
762
+ .flatpickr-time input:hover,
763
+ .flatpickr-time .flatpickr-am-pm:hover,
764
+ .flatpickr-time input:focus,
765
+ .flatpickr-time .flatpickr-am-pm:focus {
766
+ background: #eee;
767
+ }
768
+ .flatpickr-input[readonly] {
769
+ cursor: pointer;
770
+ }
771
+ @-webkit-keyframes fpFadeInDown {
772
+ from {
773
+ opacity: 0;
774
+ -webkit-transform: translate3d(0, -20px, 0);
775
+ transform: translate3d(0, -20px, 0);
776
+ }
777
+ to {
778
+ opacity: 1;
779
+ -webkit-transform: translate3d(0, 0, 0);
780
+ transform: translate3d(0, 0, 0);
781
+ }
782
+ }
783
+ @keyframes fpFadeInDown {
784
+ from {
785
+ opacity: 0;
786
+ -webkit-transform: translate3d(0, -20px, 0);
787
+ transform: translate3d(0, -20px, 0);
788
+ }
789
+ to {
790
+ opacity: 1;
791
+ -webkit-transform: translate3d(0, 0, 0);
792
+ transform: translate3d(0, 0, 0);
793
+ }
794
+ }
vendor/codestar-framework/assets/scss/partials/_helper.scss CHANGED
@@ -1,152 +1,152 @@
1
- /**
2
- * 10. Helper
3
- */
4
- .csf-subtitle-text{
5
- margin-top: 6px;
6
- font-weight: 400;
7
- color: #999;
8
- }
9
-
10
- .csf-desc-text{
11
- clear: both;
12
- float: left;
13
- width: 100%;
14
- margin-top: 6px;
15
- font-weight: 400;
16
- color: #999;
17
- }
18
-
19
- .csf-error-text{
20
- margin-top: 6px;
21
- color: #d02c21;
22
- }
23
-
24
- .csf-before-text{
25
- margin-bottom: 6px;
26
- }
27
-
28
- .csf-after-text{
29
- margin-top: 6px;
30
- }
31
-
32
- .csf-metabox-hide{
33
- display: none !important;
34
- }
35
-
36
- .csf-metabox-show{
37
- display: block !important;
38
- }
39
-
40
- .csf-depend-hidden.csf-depend-on{
41
- display: none;
42
- }
43
-
44
- .csf-depend-visible.csf-depend-on{
45
- display: block;
46
- opacity: 0.75;
47
- filter: grayscale(1);
48
- user-select: none;
49
- border-top: 1px solid #eee;
50
-
51
- .clear:before{
52
- content: "";
53
- left: 0;
54
- top: 0;
55
- right: 0;
56
- bottom: 0;
57
- position: absolute;
58
- background-color: #eee;
59
- opacity: 0.25;
60
- z-index: 10;
61
- }
62
- }
63
-
64
- .csf-warning-primary{
65
- color: #fff !important;
66
- border-color: #dc3545 !important;
67
- background: #dc3545 !important;
68
-
69
- &:hover,
70
- &:focus{
71
- border-color: #bd2130 !important;
72
- background: #bd2130 !important;
73
- }
74
-
75
- &:focus{
76
- box-shadow: 0 0 0 1px #fff, 0 0 0 3px #bd2130 !important;
77
- }
78
-
79
- &:active{
80
- border-color: #bd2130 !important;
81
- background: #bd2130 !important;
82
- }
83
- }
84
-
85
- .csf-form-result{
86
- display: none;
87
- float: left;
88
- padding: 0 8px;
89
- margin-right: 4px;
90
- font-size: 11px;
91
- line-height: 30px;
92
- user-select: none;
93
- border-radius: 2px;
94
- }
95
-
96
- .csf-form-show{
97
- display: block;
98
- }
99
-
100
- .csf-form-success{
101
- color: #fff;
102
- background-color: #46b450;
103
- }
104
-
105
- .csf-form-warning{
106
- color: #8a6d3b;
107
- background-color: #faebcc;
108
- }
109
-
110
- .csf-label-error{
111
- position: relative;
112
- top: -2px;
113
- display: inline-block;
114
- font-size: 10px;
115
- line-height: 10px;
116
- height: 10px;
117
- width: 10px;
118
- padding: 1px;
119
- font-style: normal;
120
- text-align: center;
121
- color: #fff;
122
- vertical-align: middle;
123
- background-color: #e10000;
124
- border-radius: 2px;
125
- }
126
-
127
- .csf-no-option{
128
- padding: 30px;
129
- }
130
-
131
- .csf-input-number{
132
- -moz-appearance:textfield;
133
- }
134
-
135
- .csf-input-number::-webkit-inner-spin-button,
136
- .csf-input-number::-webkit-outer-spin-button{
137
- -webkit-appearance: none;
138
- margin: 0;
139
- }
140
-
141
- .csf-fa5-shims{
142
-
143
- .csf{
144
-
145
- .fas,
146
- .far,
147
- .fab{
148
- font-family: "FontAwesome";
149
- font-style: normal;
150
- }
151
- }
152
- }
1
+ /**
2
+ * 10. Helper
3
+ */
4
+ .csf-subtitle-text{
5
+ margin-top: 6px;
6
+ font-weight: 400;
7
+ color: #999;
8
+ }
9
+
10
+ .csf-desc-text{
11
+ clear: both;
12
+ float: left;
13
+ width: 100%;
14
+ margin-top: 6px;
15
+ font-weight: 400;
16
+ color: #999;
17
+ }
18
+
19
+ .csf-error-text{
20
+ margin-top: 6px;
21
+ color: #d02c21;
22
+ }
23
+
24
+ .csf-before-text{
25
+ margin-bottom: 6px;
26
+ }
27
+
28
+ .csf-after-text{
29
+ margin-top: 6px;
30
+ }
31
+
32
+ .csf-metabox-hide{
33
+ display: none !important;
34
+ }
35
+
36
+ .csf-metabox-show{
37
+ display: block !important;
38
+ }
39
+
40
+ .csf-depend-hidden.csf-depend-on{
41
+ display: none;
42
+ }
43
+
44
+ .csf-depend-visible.csf-depend-on{
45
+ display: block;
46
+ opacity: 0.75;
47
+ filter: grayscale(1);
48
+ user-select: none;
49
+ border-top: 1px solid #eee;
50
+
51
+ .clear:before{
52
+ content: "";
53
+ left: 0;
54
+ top: 0;
55
+ right: 0;
56
+ bottom: 0;
57
+ position: absolute;
58
+ background-color: #eee;
59
+ opacity: 0.25;
60
+ z-index: 10;
61
+ }
62
+ }
63
+
64
+ .csf-warning-primary{
65
+ color: #fff !important;
66
+ border-color: #dc3545 !important;
67
+ background: #dc3545 !important;
68
+
69
+ &:hover,
70
+ &:focus{
71
+ border-color: #bd2130 !important;
72
+ background: #bd2130 !important;
73
+ }
74
+
75
+ &:focus{
76
+ box-shadow: 0 0 0 1px #fff, 0 0 0 3px #bd2130 !important;
77
+ }
78
+
79
+ &:active{
80
+ border-color: #bd2130 !important;
81
+ background: #bd2130 !important;
82
+ }
83
+ }
84
+
85
+ .csf-form-result{
86
+ display: none;
87
+ float: left;
88
+ padding: 0 8px;
89
+ margin-right: 4px;
90
+ font-size: 11px;
91
+ line-height: 30px;
92
+ user-select: none;
93
+ border-radius: 2px;
94
+ }
95
+
96
+ .csf-form-show{
97
+ display: block;
98
+ }
99
+
100
+ .csf-form-success{
101
+ color: #fff;
102
+ background-color: #46b450;
103
+ }
104
+
105
+ .csf-form-warning{
106
+ color: #8a6d3b;
107
+ background-color: #faebcc;
108
+ }
109
+
110
+ .csf-label-error{
111
+ position: relative;
112
+ top: -2px;
113
+ display: inline-block;
114
+ font-size: 10px;
115
+ line-height: 10px;
116
+ height: 10px;
117
+ width: 10px;
118
+ padding: 1px;
119
+ font-style: normal;
120
+ text-align: center;
121
+ color: #fff;
122
+ vertical-align: middle;
123
+ background-color: #e10000;
124
+ border-radius: 2px;
125
+ }
126
+
127
+ .csf-no-option{
128
+ padding: 30px;
129
+ }
130
+
131
+ .csf-input-number{
132
+ -moz-appearance:textfield;
133
+ }
134
+
135
+ .csf-input-number::-webkit-inner-spin-button,
136
+ .csf-input-number::-webkit-outer-spin-button{
137
+ -webkit-appearance: none;
138
+ margin: 0;
139
+ }
140
+
141
+ .csf-fa5-shims{
142
+
143
+ .csf{
144
+
145
+ .fas,
146
+ .far,
147
+ .fab{
148
+ font-family: "FontAwesome";
149
+ font-style: normal;
150
+ }
151
+ }
152
+ }
vendor/codestar-framework/assets/scss/partials/_modal.scss CHANGED
@@ -1,330 +1,330 @@
1
- /**
2
- * 09. Modal
3
- */
4
- .csf-modal{
5
- position: fixed;
6
- z-index: 100101;
7
- top: 0;
8
- left: 0;
9
- width: 100%;
10
- height: 100%;
11
-
12
- &.hidden{
13
- display: none;
14
- }
15
- }
16
-
17
- .csf-modal-icon{
18
- z-index: 100102;
19
- }
20
-
21
- .csf-modal-table{
22
- display: table;
23
- width: 100%;
24
- height: 100%;
25
- }
26
-
27
- .csf-modal-table-cell{
28
- display: table-cell;
29
- vertical-align: middle;
30
- margin: 100px 0;
31
- }
32
-
33
- .csf-modal-inner{
34
- position: relative;
35
- z-index: 10;
36
- width: 760px;
37
- height: 750px;
38
- margin: 0 auto;
39
- background-color: #fff;
40
- }
41
-
42
- .csf-modal-content{
43
- position: relative;
44
- overflow: hidden;
45
- overflow-y: auto;
46
- height: 595px;
47
-
48
- .csf-shortcode-button{
49
- display: none;
50
- }
51
-
52
- .csf-field{
53
- padding: 15px 30px 15px 15px;
54
- }
55
-
56
- a{
57
- &:active,
58
- &:focus{
59
- outline: none;
60
- box-shadow: none;
61
- }
62
- }
63
-
64
- h4{
65
- font-size: 13px;
66
-
67
- small{
68
- font-style: italic;
69
- font-weight: 400;
70
- color: #aaa;
71
- }
72
- }
73
- }
74
-
75
- .csf-modal-title{
76
- position: relative;
77
- background-color: #fcfcfc;
78
- border-bottom: 1px solid #ddd;
79
- height: 36px;
80
- font-size: 16px;
81
- font-weight: 600;
82
- line-height: 36px;
83
- margin: 0;
84
- padding: 0 36px 0 16px;
85
- }
86
-
87
- .csf-modal-header{
88
- width: 100%;
89
- padding: 14px 0;
90
- background-color: #f5f5f5;
91
- border-bottom: 1px solid #ddd;
92
-
93
- select{
94
- display: block;
95
- width: 250px;
96
- margin: 0 auto;
97
- font-size: 13px;
98
- line-height: 1;
99
- height: 30px;
100
- min-height: 30px;
101
- background-color: #fff;
102
- }
103
- }
104
-
105
- .csf-modal-close{
106
- color: #666;
107
- padding: 0;
108
- position: absolute;
109
- top: 0;
110
- right: 0;
111
- width: 36px;
112
- height: 36px;
113
- text-align: center;
114
- background: none;
115
- border: none;
116
- cursor: pointer;
117
-
118
- &:before{
119
- font: normal 20px/36px dashicons;
120
- content: "\f158";
121
- vertical-align: top;
122
- width: 36px;
123
- height: 36px;
124
- }
125
-
126
- &:hover{
127
- opacity: 0.5;
128
- }
129
- }
130
-
131
- .csf-modal-insert-wrapper{
132
- text-align: center;
133
- width: 100%;
134
- padding: 15px 0;
135
- background-color: #f5f5f5;
136
- border-top: 1px solid #ddd;
137
- }
138
-
139
- .csf-modal-overlay{
140
- position: absolute;
141
- top: 0;
142
- left: 0;
143
- width: 100%;
144
- height: 100%;
145
- background-color: #000;
146
- opacity: 0.5;
147
- }
148
-
149
- /**
150
- * 09. 01. Shortcode Modal
151
- */
152
- .csf--repeatable{
153
- padding: 15px 15px 0 15px;
154
- }
155
-
156
- .csf--repeat-button-block{
157
- text-align: center;
158
- padding-bottom: 15px;
159
- }
160
-
161
- .csf--repeat-shortcode{
162
- position: relative;
163
- margin-bottom: 15px;
164
- border: 1px dashed #ddd;
165
-
166
- &:first-child{
167
-
168
- .csf-repeat-remove{
169
- display: none;
170
- }
171
- }
172
-
173
- .csf-repeat-remove{
174
- position: absolute;
175
- right: 10px;
176
- top: 10px;
177
- z-index: 10;
178
- cursor: pointer;
179
- display: inline-block;
180
- font-size: 11px;
181
- width: 18px;
182
- height: 18px;
183
- line-height: 18px;
184
- text-align: center;
185
- border-radius: 2px;
186
- color: #fff;
187
- background-color: #e14d43;
188
- opacity: 0.5;
189
-
190
- &:hover{
191
- opacity: 0.5;
192
- }
193
- }
194
- }
195
-
196
- .csf-shortcode-single{
197
-
198
- .csf-modal-inner{
199
- height: 750px;
200
- }
201
-
202
- .csf-modal-content{
203
- height: 652px;
204
- }
205
- }
206
-
207
- .elementor-editor-active{
208
-
209
- .csf-shortcode-button{
210
- margin-left: 5px;
211
- }
212
-
213
- .csf-modal .hidden{
214
- display: none !important;
215
- }
216
- }
217
-
218
- /**
219
- * 09. 02. Gutenberg Modal
220
- */
221
- .csf-shortcode-block{
222
- text-align: center;
223
- padding: 14px;
224
- font-size: 13px;
225
- background-color: #f5f5f5;
226
- font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;
227
- }
228
-
229
- .csf-shortcode-block .components-button{
230
- margin-bottom: 10px;
231
- }
232
-
233
- /**
234
- * 09. 03. Icon Modal
235
- */
236
- .csf-modal-icon{
237
-
238
- .csf-icon-title{
239
- padding: 15px 0;
240
- margin: 4px;
241
- font-size: 14px;
242
- font-weight: bold;
243
- text-align: center;
244
- border: 1px solid #eee;
245
- background-color: #f7f7f7;
246
- }
247
-
248
- .csf-modal-header{
249
- text-align: center;
250
- }
251
-
252
- .csf-icon-search{
253
- width: 50%;
254
- height: 40px;
255
- line-height: 40px;
256
- }
257
-
258
- i{
259
- cursor: pointer;
260
- display: inline-block;
261
- margin: 4px;
262
- width: 35px;
263
- height: 35px;
264
- line-height: 35px;
265
- font-size: 16px;
266
- color: #555;
267
- text-align: center;
268
- border: 1px solid #ccc;
269
- background-color: #f7f7f7;
270
- border-radius: 2px;
271
- box-shadow: 1px 1px 0 rgba(0,0,0,0.05);
272
-
273
- &:hover {
274
- color: #fff;
275
- border-color: #222;
276
- background-color: #222;
277
- }
278
- }
279
-
280
- .csf-modal-content{
281
- padding: 10px;
282
- height: 618px;
283
- }
284
-
285
- .csf-error-text{
286
- padding: 10px;
287
- }
288
- }
289
-
290
- .csf-modal-loading{
291
- display: none;
292
- position: absolute;
293
- left: 15px;
294
- top: 15px;
295
- }
296
-
297
- .csf-loading{
298
- position: relative;
299
- width: 20px;
300
- height: 20px;
301
- background: #ccc;
302
- border-radius: 20px;
303
- box-shadow: 0 2px 5px rgba(0,0,0,0.07);
304
-
305
- &:after{
306
- position: absolute;
307
- top: 50%;
308
- left: 50%;
309
- width: 4px;
310
- height: 4px;
311
- content: "";
312
- margin-top: -2px;
313
- margin-left: -2px;
314
- background-color: white;
315
- animation-duration: 0.5s;
316
- animation-iteration-count: infinite;
317
- animation-timing-function: linear;
318
- animation-name: csfLoader;
319
- border-radius: 4px;
320
- }
321
- }
322
-
323
- @keyframes csfLoader {
324
- 0% {
325
- transform: rotate(0deg) translateX(-6px) rotate(0deg);
326
- }
327
- 100% {
328
- transform: rotate(360deg) translateX(-6px) rotate(-360deg);
329
- }
330
- }
1
+ /**
2
+ * 09. Modal
3
+ */
4
+ .csf-modal{
5
+ position: fixed;
6
+ z-index: 100101;
7
+ top: 0;
8
+ left: 0;
9
+ width: 100%;
10
+ height: 100%;
11
+
12
+ &.hidden{
13
+ display: none;
14
+ }
15
+ }
16
+
17
+ .csf-modal-icon{
18
+ z-index: 100102;
19
+ }
20
+
21
+ .csf-modal-table{
22
+ display: table;
23
+ width: 100%;
24
+ height: 100%;
25
+ }
26
+
27
+ .csf-modal-table-cell{
28
+ display: table-cell;
29
+ vertical-align: middle;
30
+ margin: 100px 0;
31
+ }
32
+
33
+ .csf-modal-inner{
34
+ position: relative;
35
+ z-index: 10;
36
+ width: 760px;
37
+ height: 750px;
38
+ margin: 0 auto;
39
+ background-color: #fff;
40
+ }
41
+
42
+ .csf-modal-content{
43
+ position: relative;
44
+ overflow: hidden;
45
+ overflow-y: auto;
46
+ height: 595px;
47
+
48
+ .csf-shortcode-button{
49
+ display: none;
50
+ }
51
+
52
+ .csf-field{
53
+ padding: 15px 30px 15px 15px;
54
+ }
55
+
56
+ a{
57
+ &:active,
58
+ &:focus{
59
+ outline: none;
60
+ box-shadow: none;
61
+ }
62
+ }
63
+
64
+ h4{
65
+ font-size: 13px;
66
+
67
+ small{
68
+ font-style: italic;
69
+ font-weight: 400;
70
+ color: #aaa;
71
+ }
72
+ }
73
+ }
74
+
75
+ .csf-modal-title{
76
+ position: relative;
77
+ background-color: #fcfcfc;
78
+ border-bottom: 1px solid #ddd;
79
+ height: 36px;
80
+ font-size: 16px;
81
+ font-weight: 600;
82
+ line-height: 36px;
83
+ margin: 0;
84
+ padding: 0 36px 0 16px;
85
+ }
86
+
87
+ .csf-modal-header{
88
+ width: 100%;
89
+ padding: 14px 0;
90
+ background-color: #f5f5f5;
91
+ border-bottom: 1px solid #ddd;
92
+
93
+ select{
94
+ display: block;
95
+ width: 250px;
96
+ margin: 0 auto;
97
+ font-size: 13px;
98
+ line-height: 1;
99
+ height: 30px;
100
+ min-height: 30px;
101
+ background-color: #fff;
102
+ }
103
+ }
104
+
105
+ .csf-modal-close{
106
+ color: #666;
107
+ padding: 0;
108
+ position: absolute;
109
+ top: 0;
110
+ right: 0;
111
+ width: 36px;
112
+ height: 36px;
113
+ text-align: center;
114
+ background: none;
115
+ border: none;
116
+ cursor: pointer;
117
+
118
+ &:before{
119
+ font: normal 20px/36px dashicons;
120
+ content: "\f158";
121
+ vertical-align: top;
122
+ width: 36px;
123
+ height: 36px;
124
+ }
125
+
126
+ &:hover{
127
+ opacity: 0.5;
128
+ }
129
+ }
130
+
131
+ .csf-modal-insert-wrapper{
132
+ text-align: center;
133
+ width: 100%;
134
+ padding: 15px 0;
135
+ background-color: #f5f5f5;
136
+ border-top: 1px solid #ddd;
137
+ }
138
+
139
+ .csf-modal-overlay{
140
+ position: absolute;
141
+ top: 0;
142
+ left: 0;
143
+ width: 100%;
144
+ height: 100%;
145
+ background-color: #000;
146
+ opacity: 0.5;
147
+ }
148
+
149
+ /**
150
+ * 09. 01. Shortcode Modal
151
+ */
152
+ .csf--repeatable{
153
+ padding: 15px 15px 0 15px;
154
+ }
155
+
156
+ .csf--repeat-button-block{
157
+ text-align: center;
158
+ padding-bottom: 15px;
159
+ }
160
+
161
+ .csf--repeat-shortcode{
162
+ position: relative;
163
+ margin-bottom: 15px;
164
+ border: 1px dashed #ddd;
165
+
166
+ &:first-child{
167
+
168
+ .csf-repeat-remove{
169
+ display: none;
170
+ }
171
+ }
172
+
173
+ .csf-repeat-remove{
174
+ position: absolute;
175
+ right: 10px;
176
+ top: 10px;
177
+ z-index: 10;
178
+ cursor: pointer;
179
+ display: inline-block;
180
+ font-size: 11px;
181
+ width: 18px;
182
+ height: 18px;
183
+ line-height: 18px;
184
+ text-align: center;
185
+ border-radius: 2px;
186
+ color: #fff;
187
+ background-color: #e14d43;
188
+ opacity: 0.5;
189
+
190
+ &:hover{
191
+ opacity: 0.5;
192
+ }
193
+ }
194
+ }
195
+
196
+ .csf-shortcode-single{
197
+
198
+ .csf-modal-inner{
199
+ height: 750px;
200
+ }
201
+
202
+ .csf-modal-content{
203
+ height: 652px;
204
+ }
205
+ }
206
+
207
+ .elementor-editor-active{
208
+
209
+ .csf-shortcode-button{
210
+ margin-left: 5px;
211
+ }
212
+
213
+ .csf-modal .hidden{
214
+ display: none !important;
215
+ }
216
+ }
217
+
218
+ /**
219
+ * 09. 02. Gutenberg Modal
220
+ */
221
+ .csf-shortcode-block{
222
+ text-align: center;
223
+ padding: 14px;
224
+ font-size: 13px;
225
+ background-color: #f5f5f5;
226
+ font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;
227
+ }
228
+
229
+ .csf-shortcode-block .components-button{
230
+ margin-bottom: 10px;
231
+ }
232
+
233
+ /**
234
+ * 09. 03. Icon Modal
235
+ */
236
+ .csf-modal-icon{
237
+
238
+ .csf-icon-title{
239
+ padding: 15px 0;
240
+ margin: 4px;
241
+ font-size: 14px;
242
+ font-weight: bold;
243
+ text-align: center;
244
+ border: 1px solid #eee;
245
+ background-color: #f7f7f7;
246
+ }
247
+
248
+ .csf-modal-header{
249
+ text-align: center;
250
+ }
251
+
252
+ .csf-icon-search{
253
+ width: 50%;
254
+ height: 40px;
255
+ line-height: 40px;
256
+ }
257
+
258
+ i{
259
+ cursor: pointer;
260
+ display: inline-block;
261
+ margin: 4px;
262
+ width: 35px;
263
+ height: 35px;
264
+ line-height: 35px;
265
+ font-size: 16px;
266
+ color: #555;
267
+ text-align: center;
268
+ border: 1px solid #ccc;
269
+ background-color: #f7f7f7;
270
+ border-radius: 2px;
271
+ box-shadow: 1px 1px 0 rgba(0,0,0,0.05);
272
+
273
+ &:hover {
274
+ color: #fff;
275
+ border-color: #222;
276
+ background-color: #222;
277
+ }
278
+ }
279
+
280
+ .csf-modal-content{
281
+ padding: 10px;
282
+ height: 618px;
283
+ }
284
+
285
+ .csf-error-text{
286
+ padding: 10px;
287
+ }
288
+ }
289
+
290
+ .csf-modal-loading{
291
+ display: none;
292
+ position: absolute;
293
+ left: 15px;
294
+ top: 15px;
295
+ }
296
+
297
+ .csf-loading{
298
+ position: relative;
299
+ width: 20px;
300
+ height: 20px;
301
+ background: #ccc;
302
+ border-radius: 20px;
303
+ box-shadow: 0 2px 5px rgba(0,0,0,0.07);
304
+
305
+ &:after{
306
+ position: absolute;
307
+ top: 50%;
308
+ left: 50%;
309
+ width: 4px;
310
+ height: 4px;
311
+ content: "";
312
+ margin-top: -2px;
313
+ margin-left: -2px;
314
+ background-color: white;
315
+ animation-duration: 0.5s;
316
+ animation-iteration-count: infinite;
317
+ animation-timing-function: linear;
318
+ animation-name: csfLoader;
319
+ border-radius: 4px;
320
+ }
321
+ }
322
+
323
+ @keyframes csfLoader {
324
+ 0% {
325
+ transform: rotate(0deg) translateX(-6px) rotate(0deg);
326
+ }
327
+ 100% {
328
+ transform: rotate(360deg) translateX(-6px) rotate(-360deg);
329
+ }
330
+ }
vendor/codestar-framework/assets/scss/partials/_navmenu.scss CHANGED
@@ -1,60 +1,60 @@
1
- /**
2
- * 08. Nav Menu
3
- */
4
- .csf-nav-menu-options{
5
- clear: both;
6
- float: left;
7
- width: 100%;
8
-
9
- > .csf-fields{
10
- margin-left: -10px;
11
- margin-top: 10px;
12
- margin-bottom: 10px;
13
- border-top: 1px solid #eee;
14
- border-bottom: 1px solid #eee;
15
-
16
- > .csf-field{
17
- padding: 12px 14px 12px 12px;
18
-
19
- .csf-title{
20
- float: none;
21
- width: 100%;
22
- margin-bottom: 5px;
23
- }
24
-
25
- .csf-fieldset{
26
- float: none;
27
- width: 100%;
28
- }
29
- }
30
- }
31
-
32
- .csf-field-text input{
33
- width: 100%;
34
- }
35
-
36
- .csf-field-notice .csf-notice{
37
- padding: 15px;
38
- }
39
- }
40
-
41
- .csf-nav-menu-title{
42
- padding: 12px 14px 12px 12px;
43
- background-color: #f5f5f5;
44
- border-top: 1px solid #eee;
45
- border-bottom: 1px solid #eee;
46
-
47
- &:first-child{
48
- border-top: 0;
49
- }
50
-
51
- h4{
52
- margin: 0;
53
- padding: 0;
54
- color: #23282d;
55
- }
56
- }
57
-
58
- .csf-nav-menu-icon{
59
- margin-right: 5px;
60
- }
1
+ /**
2
+ * 08. Nav Menu
3
+ */
4
+ .csf-nav-menu-options{
5
+ clear: both;
6
+ float: left;
7
+ width: 100%;
8
+
9
+ > .csf-fields{
10
+ margin-left: -10px;
11
+ margin-top: 10px;
12
+ margin-bottom: 10px;
13
+ border-top: 1px solid #eee;
14
+ border-bottom: 1px solid #eee;
15
+
16
+ > .csf-field{
17
+ padding: 12px 14px 12px 12px;
18
+
19
+ .csf-title{
20
+ float: none;
21
+ width: 100%;
22
+ margin-bottom: 5px;
23
+ }
24
+
25
+ .csf-fieldset{
26
+ float: none;
27
+ width: 100%;
28
+ }
29
+ }
30
+ }
31
+
32
+ .csf-field-text input{
33
+ width: 100%;
34
+ }
35
+
36
+ .csf-field-notice .csf-notice{
37
+ padding: 15px;
38
+ }
39
+ }
40
+
41
+ .csf-nav-menu-title{
42
+ padding: 12px 14px 12px 12px;
43
+ background-color: #f5f5f5;
44
+ border-top: 1px solid #eee;
45
+ border-bottom: 1px solid #eee;
46
+
47
+ &:first-child{
48
+ border-top: 0;
49
+ }
50
+
51
+ h4{
52
+ margin: 0;
53
+ padding: 0;
54
+ color: #23282d;
55
+ }
56
+ }
57
+
58
+ .csf-nav-menu-icon{
59
+ margin-right: 5px;
60
+ }
vendor/codestar-framework/assets/scss/partials/_profile.scss CHANGED
@@ -1,67 +1,67 @@
1
- /**
2
- * 06. Profile
3
- */
4
- .csf-profile-options{
5
-
6
- > h2 > .fa {
7
- padding-right: 7px;
8
- }
9
-
10
- > .csf-field{
11
- max-width: 750px;
12
- padding: 15px 0;
13
- border-top: none !important;
14
-
15
- > .csf-title{
16
- width: 200px;
17
-
18
- h4{
19
- font-size: 14px;
20
- font-weight: 600;
21
- line-height: 1.3;
22
- display: inline-block;
23
- vertical-align: middle;
24
- }
25
- }
26
-
27
- > .csf-fieldset{
28
- width: calc(100% - 220px);
29
-
30
- > .csf-help{
31
- top: -15px;
32
- right: -5px;
33
- }
34
- }
35
- }
36
-
37
- > .csf-field-heading{
38
- font-size: 1.1em;
39
- }
40
-
41
- > .csf-field-subheading{
42
- font-size: 12px;
43
- }
44
-
45
- > .csf-field-subheading,
46
- > .csf-field-heading{
47
- margin: 10px 0;
48
- padding: 15px !important;
49
- border: 1px solid #ddd;
50
- }
51
-
52
- > .csf-field-submessage{
53
- margin: 20px 0;
54
-
55
- .csf-submessage{
56
- padding: 10px;
57
- border-left-width: 1px;
58
- border-left-style: solid;
59
- border-right-width: 1px;
60
- border-right-style: solid;
61
- }
62
- }
63
-
64
- > .csf-field-notice{
65
- background-color: transparent;
66
- }
67
- }
1
+ /**
2
+ * 06. Profile
3
+ */
4
+ .csf-profile-options{
5
+
6
+ > h2 > .fa {
7
+ padding-right: 7px;
8
+ }
9
+
10
+ > .csf-field{
11
+ max-width: 750px;
12
+ padding: 15px 0;
13
+ border-top: none !important;
14
+
15
+ > .csf-title{
16
+ width: 200px;
17
+
18
+ h4{
19
+ font-size: 14px;
20
+ font-weight: 600;
21
+ line-height: 1.3;
22
+ display: inline-block;
23
+ vertical-align: middle;
24
+ }
25
+ }
26
+
27
+ > .csf-fieldset{
28
+ width: calc(100% - 220px);
29
+
30
+ > .csf-help{
31
+ top: -15px;
32
+ right: -5px;
33
+ }
34
+ }
35
+ }
36
+
37
+ > .csf-field-heading{
38
+ font-size: 1.1em;
39
+ }
40
+
41
+ > .csf-field-subheading{
42
+ font-size: 12px;
43
+ }
44
+
45
+ > .csf-field-subheading,
46
+ > .csf-field-heading{
47
+ margin: 10px 0;
48
+ padding: 15px !important;
49
+ border: 1px solid #ddd;
50
+ }
51
+
52
+ > .csf-field-submessage{
53
+ margin: 20px 0;
54
+
55
+ .csf-submessage{
56
+ padding: 10px;
57
+ border-left-width: 1px;
58
+ border-left-style: solid;
59
+ border-right-width: 1px;
60
+ border-right-style: solid;
61
+ }
62
+ }
63
+
64
+ > .csf-field-notice{
65
+ background-color: transparent;
66
+ }
67
+ }
vendor/codestar-framework/assets/scss/partials/_responsive.scss CHANGED
@@ -1,157 +1,157 @@
1
- /**
2
- * 12. Responsive
3
- */
4
- @media only screen and (max-width:1200px){
5
-
6
- .csf-metabox{
7
-
8
- .csf-field{
9
-
10
- .csf-title{
11
- float: none;
12
- width: 100%;
13
- margin-bottom: 10px;
14
- }
15
-
16
- .csf-fieldset{
17
- float: none;
18
- width: 100%;
19
- }
20
- }
21
- }
22
- }
23
-
24
- @media only screen and (max-width:782px){
25
-
26
- .csf-header-inner{
27
- text-align: center;
28
-
29
- h1{
30
- width: 100%;
31
- margin-bottom: 10px;
32
- }
33
- }
34
-
35
- .csf-form-result{
36
- float: none;
37
- margin-right: 0;
38
- margin-bottom: 10px;
39
- }
40
-
41
- .csf-search,
42
- .csf-header-right,
43
- .csf-header-left{
44
- width: 100%;
45
- }
46
-
47
- .csf-search{
48
- text-align: center;
49
- margin-bottom: 15px;
50
- }
51
-
52
- .csf-footer{
53
- text-align: center;
54
- }
55
-
56
- .csf-buttons{
57
- float: none;
58
- }
59
-
60
- .csf-copyright{
61
- float: none;
62
- margin-top: 10px;
63
- }
64
-
65
- .csf-nav,
66
- .csf-expand-all,
67
- .csf-reset-section,
68
- .csf-nav-background{
69
- display: none !important;
70
- }
71
-
72
- .csf-nav-normal + .csf-content{
73
- margin-left: 0;
74
- }
75
-
76
- .csf-section-title,
77
- .csf-section{
78
- display: block !important;
79
- }
80
-
81
- .csf-field{
82
-
83
- .csf-title{
84
- float: none;
85
- width: 100%;
86
- margin-bottom: 10px;
87
- }
88
-
89
- .csf-fieldset{
90
- float: none;
91
- width: 100%;
92
- }
93
- }
94
-
95
- .csf-field-color{
96
-
97
- .button.wp-picker-clear{
98
- padding: 0 8px;
99
- line-height: 2.14285714;
100
- min-height: 32px;
101
- }
102
- }
103
-
104
- .csf-profile-options,
105
- .csf-taxonomy-edit-fields{
106
-
107
- > .csf-field{
108
-
109
- > .csf-title{
110
- float: none;
111
- width: 100%;
112
- margin-bottom: 10px;
113
- }
114
-
115
- > .csf-fieldset{
116
- float: none;
117
- width: 100%;
118
- }
119
- }
120
- }
121
-
122
- .csf-nav-menu-options{
123
-
124
- > .csf-fields{
125
- margin-left: -10px;
126
- margin-right: -10px;
127
-
128
- > .csf-field{
129
- padding: 10px;
130
- }
131
- }
132
- }
133
- }
134
-
135
- @media only screen and (max-width: 782px) {
136
-
137
- .csf-modal{
138
-
139
- .csf-modal-inner{
140
- width: 90%;
141
- }
142
- }
143
- }
144
-
145
- @media only screen and (max-height: 750px) {
146
-
147
- .csf-modal{
148
-
149
- .csf-modal-inner{
150
- height: auto;
151
- }
152
-
153
- .csf-modal-content{
154
- height: calc(100vh - 200px);
155
- }
156
- }
157
- }
1
+ /**
2
+ * 12. Responsive
3
+ */
4
+ @media only screen and (max-width:1200px){
5
+
6
+ .csf-metabox{
7
+
8
+ .csf-field{
9
+
10
+ .csf-title{
11
+ float: none;
12
+ width: 100%;
13
+ margin-bottom: 10px;
14
+ }
15
+
16
+ .csf-fieldset{
17
+ float: none;
18
+ width: 100%;
19
+ }
20
+ }
21
+ }
22
+ }
23
+
24
+ @media only screen and (max-width:782px){
25
+
26
+ .csf-header-inner{
27
+ text-align: center;
28
+
29
+ h1{
30
+ width: 100%;
31
+ margin-bottom: 10px;
32
+ }
33
+ }
34
+
35
+ .csf-form-result{
36
+ float: none;
37
+ margin-right: 0;
38
+ margin-bottom: 10px;
39
+ }
40
+
41
+ .csf-search,
42
+ .csf-header-right,
43
+ .csf-header-left{
44
+ width: 100%;
45
+ }
46
+
47
+ .csf-search{
48
+ text-align: center;
49
+ margin-bottom: 15px;
50
+ }
51
+
52
+ .csf-footer{
53
+ text-align: center;
54
+ }
55
+
56
+ .csf-buttons{
57
+ float: none;
58
+ }
59
+
60
+ .csf-copyright{
61
+ float: none;
62
+ margin-top: 10px;
63
+ }
64
+
65
+ .csf-nav,
66
+ .csf-expand-all,
67
+ .csf-reset-section,
68
+ .csf-nav-background{
69
+ display: none !important;
70
+ }
71
+
72
+ .csf-nav-normal + .csf-content{
73
+ margin-left: 0;
74
+ }
75
+
76
+ .csf-section-title,
77
+ .csf-section{
78
+ display: block !important;
79
+ }
80
+
81
+ .csf-field{
82
+
83
+ .csf-title{
84
+ float: none;
85
+ width: 100%;
86
+ margin-bottom: 10px;
87
+ }
88
+
89
+ .csf-fieldset{
90
+ float: none;
91
+ width: 100%;
92
+ }
93
+ }
94
+
95
+ .csf-field-color{
96
+
97
+ .button.wp-picker-clear{
98
+ padding: 0 8px;
99
+ line-height: 2.14285714;
100
+ min-height: 32px;
101
+ }
102
+ }
103
+
104
+ .csf-profile-options,
105
+ .csf-taxonomy-edit-fields{
106
+
107
+ > .csf-field{
108
+
109
+ > .csf-title{
110
+ float: none;
111
+ width: 100%;
112
+ margin-bottom: 10px;
113
+ }
114
+
115
+ > .csf-fieldset{
116
+ float: none;
117
+ width: 100%;
118
+ }
119
+ }
120
+ }
121
+
122
+ .csf-nav-menu-options{
123
+
124
+ > .csf-fields{
125
+ margin-left: -10px;
126
+ margin-right: -10px;
127
+
128
+ > .csf-field{
129
+ padding: 10px;
130
+ }
131
+ }
132
+ }
133
+ }
134
+
135
+ @media only screen and (max-width: 782px) {
136
+
137
+ .csf-modal{
138
+
139
+ .csf-modal-inner{
140
+ width: 90%;
141
+ }
142
+ }
143
+ }
144
+
145
+ @media only screen and (max-height: 750px) {
146
+
147
+ .csf-modal{
148
+
149
+ .csf-modal-inner{
150
+ height: auto;
151
+ }
152
+
153
+ .csf-modal-content{
154
+ height: calc(100vh - 200px);
155
+ }
156
+ }
157
+ }
vendor/codestar-framework/assets/scss/partials/_taxonomy.scss CHANGED
@@ -1,114 +1,114 @@
1
- /**
2
- * 06. Taxonomy
3
- */
4
- .csf-taxonomy{
5
- max-width: 95%;
6
-
7
- > .csf-field{
8
- border-top: none !important;
9
- }
10
-
11
- > .csf-field-heading{
12
- font-size: 1.1em;
13
- padding: 20px !important;
14
- border: 1px solid #ddd;
15
- }
16
-
17
- > .csf-field-subheading{
18
- font-size: 12px;
19
- padding: 15px !important;
20
- border: 1px solid #ddd;
21
- }
22
-
23
- > .csf-field-submessage{
24
-
25
- .csf-submessage{
26
- padding: 15px;
27
- border-left-width: 1px;
28
- border-left-style: solid;
29
- border-right-width: 1px;
30
- border-right-style: solid;
31
- }
32
- }
33
-
34
- > .csf-field-notice{
35
- background-color: transparent;
36
- }
37
-
38
- .csf-section-title{
39
- display: block;
40
- padding: 15px ;
41
- background-color: #f9f9f9;
42
- border: 1px solid #e5e5e5;
43
- box-shadow: 0 1px 1px rgba(0,0,0,0.04);
44
- }
45
- }
46
-
47
- .csf-taxonomy-add-fields{
48
-
49
- > .csf-field{
50
- padding: 8px 0;
51
-
52
- > .csf-title{
53
- float: none;
54
- width: 100%;
55
- padding: 2px 2px 4px 0;
56
-
57
- h4{
58
- font-size: 12px;
59
- font-weight: normal;
60
- }
61
- }
62
-
63
- > .csf-fieldset{
64
- float: none;
65
- width: 100%;
66
-
67
- > .csf-help{
68
- right: -5px;
69
- }
70
- }
71
- }
72
-
73
- + p.submit{
74
- margin-top: 0;
75
- }
76
- }
77
-
78
- .csf-taxonomy-edit-fields{
79
-
80
- > .csf-field{
81
- padding: 20px 0;
82
-
83
- > .csf-title{
84
- width: 200px;
85
-
86
- h4{
87
- font-size: 14px;
88
- font-weight: 600;
89
- line-height: 1.3;
90
- display: inline-block;
91
- vertical-align: middle;
92
- }
93
- }
94
-
95
- > .csf-fieldset{
96
- width: calc(100% - 220px);
97
-
98
- > .csf-help{
99
- top: -5px;
100
- right: -5px;
101
- }
102
- }
103
- }
104
-
105
- > .csf-field-submessage{
106
- margin: 20px 0;
107
- }
108
-
109
- > .csf-field-subheading,
110
- > .csf-field-heading{
111
- margin: 20px 0;
112
- border: 1px solid #ddd;
113
- }
114
- }
1
+ /**
2
+ * 06. Taxonomy
3
+ */
4
+ .csf-taxonomy{
5
+ max-width: 95%;
6
+
7
+ > .csf-field{
8
+ border-top: none !important;
9
+ }
10
+
11
+ > .csf-field-heading{
12
+ font-size: 1.1em;
13
+ padding: 20px !important;
14
+ border: 1px solid #ddd;
15
+ }
16
+
17
+ > .csf-field-subheading{
18
+ font-size: 12px;
19
+ padding: 15px !important;
20
+ border: 1px solid #ddd;
21
+ }
22
+
23
+ > .csf-field-submessage{
24
+
25
+ .csf-submessage{
26
+ padding: 15px;
27
+ border-left-width: 1px;
28
+ border-left-style: solid;
29
+ border-right-width: 1px;
30
+ border-right-style: solid;
31
+ }
32
+ }
33
+
34
+ > .csf-field-notice{
35
+ background-color: transparent;
36
+ }
37
+
38
+ .csf-section-title{
39
+ display: block;
40
+ padding: 15px ;
41
+ background-color: #f9f9f9;
42
+ border: 1px solid #e5e5e5;
43
+ box-shadow: 0 1px 1px rgba(0,0,0,0.04);
44
+ }
45
+ }
46
+
47
+ .csf-taxonomy-add-fields{
48
+
49
+ > .csf-field{
50
+ padding: 8px 0;
51
+
52
+ > .csf-title{
53
+ float: none;
54
+ width: 100%;
55
+ padding: 2px 2px 4px 0;
56
+
57
+ h4{
58
+ font-size: 12px;
59
+ font-weight: normal;
60
+ }
61
+ }
62
+
63
+ > .csf-fieldset{
64
+ float: none;
65
+ width: 100%;
66
+
67
+ > .csf-help{
68
+ right: -5px;
69
+ }
70
+ }
71
+ }
72
+
73
+ + p.submit{
74
+ margin-top: 0;
75
+ }
76
+ }
77
+
78
+ .csf-taxonomy-edit-fields{
79
+
80
+ > .csf-field{
81
+ padding: 20px 0;
82
+
83
+ > .csf-title{
84
+ width: 200px;
85
+
86
+ h4{
87
+ font-size: 14px;
88
+ font-weight: 600;
89
+ line-height: 1.3;
90
+ display: inline-block;
91
+ vertical-align: middle;
92
+ }
93
+ }
94
+
95
+ > .csf-fieldset{
96
+ width: calc(100% - 220px);
97
+
98
+ > .csf-help{
99
+ top: -5px;
100
+ right: -5px;
101
+ }
102
+ }
103
+ }
104
+
105
+ > .csf-field-submessage{
106
+ margin: 20px 0;
107
+ }
108
+
109
+ > .csf-field-subheading,
110
+ > .csf-field-heading{
111
+ margin: 20px 0;
112
+ border: 1px solid #ddd;
113
+ }
114
+ }
vendor/codestar-framework/assets/scss/partials/_themes.scss CHANGED
@@ -1,303 +1,303 @@
1
- /**
2
- * 02. Themes
3
- */
4
-
5
- /**
6
- * 02. 01. Theme Dark
7
- */
8
- .csf-theme-dark{
9
-
10
- .csf-header-inner{
11
- background-color: #050505;
12
-
13
- h1{
14
- color: #fff;
15
-
16
- small{
17
- color: #555;
18
- }
19
- }
20
- }
21
-
22
- .csf-expand-all{
23
- color: #999;
24
- background-color: #222;
25
-
26
- &:hover{
27
- color: #fff;
28
- background-color: #333;
29
- }
30
- }
31
-
32
- .csf-search{
33
-
34
- input{
35
- color: #fff;
36
- background-color: #222;
37
- }
38
-
39
- &:focus{
40
- background-color: #444;
41
- }
42
-
43
- &::-webkit-input-placeholder{
44
- color: #666;
45
- }
46
- }
47
-
48
- .csf-nav{
49
-
50
- ul{
51
-
52
- li{
53
-
54
- a{
55
- color: #999;
56
- border-color: #2f2f2f;
57
- background-color: #222;
58
-
59
- &:hover{
60
- color: #fff;
61
- }
62
- }
63
-
64
- .csf-active{
65
- color: #fff;
66
- background-color: #111;
67
- }
68
- }
69
-
70
- ul{
71
-
72
- li{
73
-
74
- a{
75
- border-color: #2f2f2f;
76
- background-color: #191919;
77
- }
78
-
79
- .csf-active{
80
- background-color: #101010;
81
- }
82
- }
83
-
84
- &:before{
85
- background-color: rgba(#222, 0.75);
86
- }
87
- }
88
- }
89
-
90
- > ul > li:last-child > a{
91
- border: none;
92
- }
93
- }
94
-
95
- .csf-nav-normal{
96
-
97
- ul{
98
-
99
- li{
100
-
101
- a{
102
- border-bottom-width: 1px;
103
- border-bottom-style: solid;
104
- }
105
-
106
- .csf-active:after{
107
- content: " ";
108
- position: absolute;
109
- right: 0;
110
- top: 50%;
111
- height: 0;
112
- width: 0;
113
- pointer-events: none;
114
- border: solid transparent;
115
- border-right-color: #fff;
116
- border-width: 4px;
117
- margin-top: -4px;
118
- }
119
- }
120
- }
121
- }
122
-
123
- .csf-nav-inline{
124
- background-color: #222;
125
-
126
- ul{
127
-
128
- li{
129
-
130
- a{
131
- text-align: center;
132
- border-right-width: 1px;
133
- border-right-style: solid;
134
- }
135
-
136
- .csf-active:after{
137
- content: " ";
138
- position: absolute;
139
- left: 50%;
140
- bottom: 0;
141
- height: 0;
142
- width: 0;
143
- pointer-events: none;
144
- border: solid transparent;
145
- border-bottom-color: #fff;
146
- border-width: 4px;
147
- margin-left: -4px;
148
- }
149
- }
150
- }
151
- }
152
-
153
- .csf-nav-background{
154
- background-color: #222;
155
- }
156
-
157
- .csf-footer{
158
- color: #555;
159
- background-color: #050505;
160
- }
161
- }
162
-
163
- /**
164
- * 02. 02. Theme Light
165
- */
166
- .csf-theme-light{
167
-
168
- .csf-container{
169
- border: 1px solid #ccd0d4;
170
- box-shadow: 0 0 15 rgba(0,0,0,0.04);
171
- }
172
-
173
- .csf-header-inner{
174
- border-bottom: 1px solid #ccd0d4;
175
- background-color: #f5f5f5;
176
- background: linear-gradient(#fefefe, #f5f5f5);
177
-
178
- h1{
179
-
180
- small{
181
- color: #999;
182
- }
183
- }
184
- }
185
-
186
- .csf-expand-all{
187
- color: #999;
188
- background-color: #eee;
189
-
190
- &:hover{
191
- color: #555;
192
- }
193
- }
194
-
195
- .csf-search{
196
-
197
- input{
198
- color: #555;
199
- background-color: #eee;
200
-
201
- &::-webkit-input-placeholder{
202
- color: #999;
203
- }
204
- }
205
- }
206
-
207
- .csf-nav{
208
-
209
- ul{
210
-
211
- li{
212
-
213
- a{
214
- font-weight: 500;
215
- color: #444;
216
- background-color: #f5f5f5;
217
-
218
- &:hover{
219
- color: #111;
220
- background-color: #fff;
221
- }
222
- }
223
-
224
- .csf-active{
225
- color: #111;
226
- background-color: #fff;
227
- }
228
- }
229
-
230
- ul{
231
-
232
- li{
233
-
234
- a{
235
- background-color: #eee;
236
- }
237
- }
238
- }
239
- }
240
- }
241
-
242
- .csf-nav-normal{
243
-
244
- > ul{
245
- margin-right: -1px;
246
- margin-bottom: -1px;
247
-
248
- li{
249
-
250
- a{
251
- border-bottom: 1px solid #ccd0d4;
252
- border-right: 1px solid #ccd0d4;
253
- }
254
-
255
- .csf-active{
256
- border-right-color: #fff;
257
- }
258
- }
259
- }
260
- }
261
-
262
- .csf-nav-inline{
263
- background-color: #f5f5f5;
264
- border-bottom: 1px solid #ccd0d4;
265
-
266
- > ul{
267
- margin-bottom: -1px;
268
-
269
- li{
270
-
271
- a{
272
- text-align: center;
273
- border-right: 1px solid #ccd0d4;
274
- border-bottom: 1px solid #ccd0d4;
275
- }
276
-
277
- .csf-active{
278
- border-bottom-color: #fff;
279
- }
280
- }
281
-
282
- ul{
283
- display: none !important
284
- }
285
- }
286
-
287
- .csf-arrow:after{
288
- display: none;
289
- }
290
- }
291
-
292
- .csf-nav-background{
293
- background-color: #f5f5f5;
294
- border-right: 1px solid #ccd0d4;
295
- }
296
-
297
- .csf-footer{
298
- color: #555;
299
- border-top: 1px solid #ccd0d4;
300
- background-color: #f5f5f5;
301
- background: linear-gradient(#fafafa, #f5f5f5);
302
- }
303
- }
1
+ /**
2
+ * 02. Themes
3
+ */
4
+
5
+ /**
6
+ * 02. 01. Theme Dark
7
+ */
8
+ .csf-theme-dark{
9
+
10
+ .csf-header-inner{
11
+ background-color: #050505;
12
+
13
+ h1{
14
+ color: #fff;
15
+
16
+ small{
17
+ color: #555;
18
+ }
19
+ }
20
+ }
21
+
22
+ .csf-expand-all{
23
+ color: #999;
24
+ background-color: #222;
25
+
26
+ &:hover{
27
+ color: #fff;
28
+ background-color: #333;
29
+ }
30
+ }
31
+
32
+ .csf-search{
33
+
34
+ input{
35
+ color: #fff;
36
+ background-color: #222;
37
+ }
38
+
39
+ &:focus{
40
+ background-color: #444;
41
+ }
42
+
43
+ &::-webkit-input-placeholder{
44
+ color: #666;
45
+ }
46
+ }
47
+
48
+ .csf-nav{
49
+
50
+ ul{
51
+
52
+ li{
53
+
54
+ a{
55
+ color: #999;
56
+ border-color: #2f2f2f;
57
+ background-color: #222;
58
+
59
+ &:hover{
60
+ color: #fff;
61
+ }
62
+ }
63
+
64
+ .csf-active{
65
+ color: #fff;
66
+ background-color: #111;
67
+ }
68
+ }
69
+
70
+ ul{
71
+
72
+ li{
73
+
74
+ a{
75
+ border-color: #2f2f2f;
76
+ background-color: #191919;
77
+ }
78
+
79
+ .csf-active{
80
+ background-color: #101010;
81
+ }
82
+ }
83
+
84
+ &:before{
85
+ background-color: rgba(#222, 0.75);
86
+ }
87
+ }
88
+ }
89
+
90
+ > ul > li:last-child > a{
91
+ border: none;
92
+ }
93
+ }
94
+
95
+ .csf-nav-normal{
96
+
97
+ ul{
98
+
99
+ li{
100
+
101
+ a{
102
+ border-bottom-width: 1px;
103
+ border-bottom-style: solid;
104
+ }
105
+
106
+ .csf-active:after{
107
+ content: " ";
108
+ position: absolute;
109
+ right: 0;
110
+ top: 50%;
111
+ height: 0;
112
+ width: 0;
113
+ pointer-events: none;
114
+ border: solid transparent;
115
+ border-right-color: #fff;
116
+ border-width: 4px;
117
+ margin-top: -4px;
118
+ }
119
+ }
120
+ }
121
+ }
122
+
123
+ .csf-nav-inline{
124
+ background-color: #222;
125
+
126
+ ul{
127
+
128
+ li{
129
+
130
+ a{
131
+ text-align: center;
132
+ border-right-width: 1px;
133
+ border-right-style: solid;
134
+ }
135
+
136
+ .csf-active:after{
137
+ content: " ";
138
+ position: absolute;
139
+ left: 50%;
140
+ bottom: 0;
141
+ height: 0;
142
+ width: 0;
143
+ pointer-events: none;
144
+ border: solid transparent;
145
+ border-bottom-color: #fff;
146
+ border-width: 4px;
147
+ margin-left: -4px;
148
+ }
149
+ }
150
+ }
151
+ }
152
+
153
+ .csf-nav-background{
154
+ background-color: #222;
155
+ }
156
+
157
+ .csf-footer{
158
+ color: #555;
159
+ background-color: #050505;
160
+ }
161
+ }
162
+
163
+ /**
164
+ * 02. 02. Theme Light
165
+ */
166
+ .csf-theme-light{
167
+
168
+ .csf-container{
169
+ border: 1px solid #ccd0d4;
170
+ box-shadow: 0 0 15 rgba(0,0,0,0.04);
171
+ }
172
+
173
+ .csf-header-inner{
174
+ border-bottom: 1px solid #ccd0d4;
175
+ background-color: #f5f5f5;
176
+ background: linear-gradient(#fefefe, #f5f5f5);
177
+
178
+ h1{
179
+
180
+ small{
181
+ color: #999;
182
+ }
183
+ }
184
+ }
185
+
186
+ .csf-expand-all{
187
+ color: #999;
188
+ background-color: #eee;
189
+
190
+ &:hover{
191
+ color: #555;
192
+ }
193
+ }
194
+
195
+ .csf-search{
196
+
197
+ input{
198
+ color: #555;
199
+ background-color: #eee;
200
+
201
+ &::-webkit-input-placeholder{
202
+ color: #999;
203
+ }
204
+ }
205
+ }
206
+
207
+ .csf-nav{
208
+
209
+ ul{
210
+
211
+ li{
212
+
213
+ a{
214
+ font-weight: 500;
215
+ color: #444;
216
+ background-color: #f5f5f5;
217
+
218
+ &:hover{
219
+ color: #111;
220
+ background-color: #fff;
221
+ }
222
+ }
223
+
224
+ .csf-active{
225
+ color: #111;
226
+ background-color: #fff;
227
+ }
228
+ }
229
+
230
+ ul{
231
+
232
+ li{
233
+
234
+ a{
235
+ background-color: #eee;
236
+ }
237
+ }
238
+ }
239
+ }
240
+ }
241
+
242
+ .csf-nav-normal{
243
+
244
+ > ul{
245
+ margin-right: -1px;
246
+ margin-bottom: -1px;
247
+
248
+ li{
249
+
250
+ a{
251
+ border-bottom: 1px solid #ccd0d4;
252
+ border-right: 1px solid #ccd0d4;
253
+ }
254
+
255
+ .csf-active{
256
+ border-right-color: #fff;
257
+ }
258
+ }
259
+ }
260
+ }
261
+
262
+ .csf-nav-inline{
263
+ background-color: #f5f5f5;
264
+ border-bottom: 1px solid #ccd0d4;
265
+
266
+ > ul{
267
+ margin-bottom: -1px;
268
+
269
+ li{
270
+
271
+ a{
272
+ text-align: center;
273
+ border-right: 1px solid #ccd0d4;
274
+ border-bottom: 1px solid #ccd0d4;
275
+ }
276
+
277
+ .csf-active{
278
+ border-bottom-color: #fff;
279
+ }
280
+ }
281
+
282
+ ul{
283
+ display: none !important
284
+ }
285
+ }
286
+
287
+ .csf-arrow:after{
288
+ display: none;
289
+ }
290
+ }
291
+
292
+ .csf-nav-background{
293
+ background-color: #f5f5f5;
294
+ border-right: 1px solid #ccd0d4;
295
+ }
296
+
297
+ .csf-footer{
298
+ color: #555;
299
+ border-top: 1px solid #ccd0d4;
300
+ background-color: #f5f5f5;
301
+ background: linear-gradient(#fafafa, #f5f5f5);
302
+ }
303
+ }
vendor/codestar-framework/assets/scss/partials/_welcome.scss CHANGED
@@ -1,346 +1,346 @@
1
- /**
2
- * 11. Welcome Page
3
- */
4
- .csf-welcome-wrap{
5
- position: relative;
6
- margin: 25px 40px 0 20px;
7
- font-size: 15px;
8
- max-width: 1200px;
9
-
10
- p{
11
- font-size: 14px;
12
- line-height: 1.5;
13
- }
14
-
15
- h1{
16
- margin: 0.2em 200px 0 0;
17
- padding: 0;
18
- color: #32373c;
19
- line-height: 1.2em;
20
- font-size: 2.8em;
21
- font-weight: 400;
22
- }
23
-
24
- .csf-logo{
25
- position: absolute;
26
- overflow: hidden;
27
- top: 0;
28
- right: 0;
29
- height: 160px;
30
- width: 140px;
31
- background-image: linear-gradient( 45deg, #2d67cb, #ad19f3);
32
- box-shadow: 0 1px 4px rgba(0,0,0,0.25), inset 0 0 0 4px rgba(0,0,0,0.25);
33
-
34
- .csf--effects i{
35
- position: absolute;
36
- width: 200px;
37
- height: 100px;
38
- background-color: rgba(0,0,0,0.15);
39
- transform: rotate(-45deg);
40
- }
41
-
42
- .csf--effects i:nth-child(1){
43
- bottom: -20px;
44
- right: -70px;
45
- }
46
-
47
- .csf--effects i:nth-child(2){
48
- bottom: -35px;
49
- right: -80px;
50
- }
51
-
52
- .csf--effects i:nth-child(3){
53
- bottom: -50px;
54
- right: -90px;
55
- }
56
-
57
- .csf--effects i:nth-child(4){
58
- bottom: -65px;
59
- right: -100px;
60
- }
61
-
62
- .csf--wp-logos{
63
- position: relative;
64
- padding-top: 25px;
65
- text-align: center;
66
- }
67
-
68
- .csf--wp-logo{
69
- position: absolute;
70
- left: 20px;
71
- width: 20px;
72
- height: 20px;
73
- background-repeat: no-repeat;
74
- background-position: center center;
75
- background-image: url(../images/wp-logo.svg);
76
- }
77
-
78
- .csf--wp-plugin-logo{
79
- display: inline-block;
80
- width: 50px;
81
- height: 50px;
82
- border: 3px solid #fff;
83
- background-size: 40px;
84
- background-repeat: no-repeat;
85
- background-position: center center;
86
- background-image: url(../images/wp-plugin-logo.svg);
87
- border-radius: 100%;
88
- vertical-align: middle;
89
- }
90
-
91
- .csf--text{
92
- position: absolute;
93
- left: 0;
94
- right: 0;
95
- top: 90px;
96
- color: #fff;
97
- font-size: 13px;
98
- line-height: 1.2em;
99
- font-weight: 600;
100
- text-align: center;
101
- text-transform: uppercase;
102
- text-shadow: 1px 1px 0 rgba(0,0,0,0.25);
103
- }
104
-
105
- .csf--version{
106
- top: auto;
107
- left: auto;
108
- right: 8px;
109
- bottom: 4px;
110
- font-size: 11px;
111
- text-transform: lowercase;
112
- }
113
- }
114
-
115
- .csf-about-text{
116
- font-weight: 400;
117
- line-height: 1.6em;
118
- font-size: 19px;
119
- margin: 1em 200px 1em 0;
120
- color: #555d66;
121
- }
122
-
123
- .csf-demo-button{
124
- margin: 1em 200px 2em 0;
125
- }
126
-
127
- .nav-tab-wrapper{
128
- margin-bottom: 20px;
129
- }
130
-
131
- ul{
132
- list-style-type: disc;
133
- padding-left: 15px;
134
- }
135
-
136
- .csf--col{
137
- float: left;
138
- padding-right: 20px;
139
- box-sizing: border-box;
140
- }
141
-
142
- .csf--col-2{
143
- width: 50%;
144
- }
145
-
146
- .csf--col-3{
147
- width: 33.333%;
148
- }
149
-
150
- .csf--col-4{
151
- width: 25%;
152
- }
153
-
154
- .csf--col-5{
155
- width: 20%;
156
- }
157
-
158
- .csf--col-last{
159
- padding-right: 0;
160
- }
161
-
162
- .csf--col-upgrade{
163
- padding: 10px 0;
164
- text-align: center;
165
- border-top: 1px solid #e5e5e5;
166
- }
167
- }
168
-
169
- .csf--table-compare{
170
-
171
- thead,
172
- tfoot{
173
- td{
174
- text-align: center;
175
- }
176
- }
177
-
178
- td{
179
- font-size: 14px;
180
- text-align: center;
181
- vertical-align: middle;
182
- padding: 10px;
183
- }
184
-
185
- td:first-child{
186
- text-align: left;
187
- }
188
-
189
- tfoot{
190
- td{
191
- padding: 15px 0;
192
- }
193
- }
194
-
195
- .fa{
196
- font-size: 18px;
197
- }
198
-
199
- .fa-check-circle{
200
- color: #46b450;
201
- }
202
-
203
- .fa-times-circle{
204
- color: #dc3232;
205
- }
206
- }
207
-
208
- .csf-welcome-cols{
209
- clear: both;
210
- margin: 20px 0;
211
- background-color: #fff;
212
- padding: 0 0;
213
- border-radius: 2px;
214
- border: 1px solid #e5e5e5;
215
-
216
- .csf--col{
217
- width: 33.333%;
218
- float: left;
219
- padding: 20px;
220
- text-align: center;
221
- box-sizing: border-box;
222
- min-height: 200px;
223
- border-right: 1px solid #e5e5e5;
224
- }
225
-
226
- .csf--left,
227
- .csf--block{
228
- float: left;
229
- width: 20%;
230
- padding: 0 30px;
231
- text-align: center;
232
- box-sizing: border-box;
233
- }
234
-
235
- .csf--block{
236
- width: 80%;
237
- }
238
-
239
- .csf--col-first{
240
- border-bottom: 1px solid #e5e5e5;
241
- }
242
-
243
- .csf--last{
244
- border-right: none;
245
- }
246
-
247
- .csf--space{
248
- height: 20px;
249
- }
250
-
251
- .csf--icon{
252
- display: inline-block;
253
- font-size: 20px;
254
- width: 30px;
255
- height: 30px;
256
- line-height: 30px;
257
- text-align: center;
258
- margin-bottom: 10px;
259
- color: #fff;
260
- background-color: #555;
261
- border-radius: 30px;
262
- }
263
-
264
- .csf--active{
265
- background-color: #5cb85c;
266
- }
267
-
268
- .csf--deactive{
269
- background-color: #e14d43;
270
- }
271
-
272
- .csf--title{
273
- font-weight: bold;
274
- display: block;
275
- }
276
-
277
- p:last-child{
278
- margin-bottom: 0;
279
- }
280
- }
281
-
282
- .csf-features-cols{
283
-
284
- .csf--key-features{
285
- width: 30%;
286
- }
287
- .csf--available-fields{
288
- width: 70%;
289
- }
290
- }
291
-
292
- .csf-code-block{
293
- margin: 20px 0;
294
- padding: 5px 20px;
295
- background-color: #fff;
296
- border-radius: 2px;
297
- box-shadow: 0 1px 1px rgba(0,0,0,0.15);
298
-
299
- pre{
300
- font-size: 13px;
301
- color: #0073aa;
302
-
303
- span{
304
- color: #999;
305
- }
306
- }
307
- }
308
-
309
- .csf--table-fields{
310
- td{
311
- font-size: 14px;
312
- }
313
- }
314
-
315
- .csf--upgrade a{
316
- color: #5cb85c;
317
- font-weight: bold;
318
-
319
- &:focus,
320
- &:hover{
321
- color: #4aa14a;
322
- outline: none;
323
- box-shadow: none;
324
- }
325
- }
326
-
327
- @media only screen and (max-width:782px){
328
-
329
- .csf-welcome-cols{
330
- .csf--col{
331
- width: 100%;
332
- min-height: auto;
333
- border-right: none;
334
- border-bottom: 1px solid #e5e5e5;
335
- }
336
- }
337
-
338
- .csf-features-cols{
339
- .csf--key-features{
340
- width: 100%;
341
- }
342
- .csf--available-fields{
343
- width: 100%;
344
- }
345
- }
346
- }
1
+ /**
2
+ * 11. Welcome Page
3
+ */
4
+ .csf-welcome-wrap{
5
+ position: relative;
6
+ margin: 25px 40px 0 20px;
7
+ font-size: 15px;
8
+ max-width: 1200px;
9
+
10
+ p{
11
+ font-size: 14px;
12
+ line-height: 1.5;
13
+ }
14
+
15
+ h1{
16
+ margin: 0.2em 200px 0 0;
17
+ padding: 0;
18
+ color: #32373c;
19
+ line-height: 1.2em;
20
+ font-size: 2.8em;
21
+ font-weight: 400;
22
+ }
23
+
24
+ .csf-logo{
25
+ position: absolute;
26
+ overflow: hidden;
27
+ top: 0;
28
+ right: 0;
29
+ height: 160px;
30
+ width: 140px;
31
+ background-image: linear-gradient( 45deg, #2d67cb, #ad19f3);
32
+ box-shadow: 0 1px 4px rgba(0,0,0,0.25), inset 0 0 0 4px rgba(0,0,0,0.25);
33
+
34
+ .csf--effects i{
35
+ position: absolute;
36
+ width: 200px;
37
+ height: 100px;
38
+ background-color: rgba(0,0,0,0.15);
39
+ transform: rotate(-45deg);
40
+ }
41
+
42
+ .csf--effects i:nth-child(1){
43
+ bottom: -20px;
44
+ right: -70px;
45
+ }
46
+
47
+ .csf--effects i:nth-child(2){
48
+ bottom: -35px;
49
+ right: -80px;
50
+ }
51
+
52
+ .csf--effects i:nth-child(3){
53
+ bottom: -50px;
54
+ right: -90px;
55
+ }
56
+
57
+ .csf--effects i:nth-child(4){
58
+ bottom: -65px;
59
+ right: -100px;
60
+ }
61
+
62
+ .csf--wp-logos{
63
+ position: relative;
64
+ padding-top: 25px;
65
+ text-align: center;
66
+ }
67
+
68
+ .csf--wp-logo{
69
+ position: absolute;
70
+ left: 20px;
71
+ width: 20px;
72
+ height: 20px;
73
+ background-repeat: no-repeat;
74
+ background-position: center center;
75
+ background-image: url(../images/wp-logo.svg);
76
+ }
77
+
78
+ .csf--wp-plugin-logo{
79
+ display: inline-block;
80
+ width: 50px;
81
+ height: 50px;
82
+ border: 3px solid #fff;
83
+ background-size: 40px;
84
+ background-repeat: no-repeat;
85
+ background-position: center center;
86
+ background-image: url(../images/wp-plugin-logo.svg);
87
+ border-radius: 100%;
88
+ vertical-align: middle;
89
+ }
90
+
91
+ .csf--text{
92
+ position: absolute;
93
+ left: 0;
94
+ right: 0;
95
+ top: 90px;
96
+ color: #fff;
97
+ font-size: 13px;
98
+ line-height: 1.2em;
99
+ font-weight: 600;
100
+ text-align: center;
101
+ text-transform: uppercase;
102
+ text-shadow: 1px 1px 0 rgba(0,0,0,0.25);
103
+ }
104
+
105
+ .csf--version{
106
+ top: auto;
107
+ left: auto;
108
+ right: 8px;
109
+ bottom: 4px;
110
+ font-size: 11px;
111
+ text-transform: lowercase;
112
+ }
113
+ }
114
+
115
+ .csf-about-text{
116
+ font-weight: 400;
117
+ line-height: 1.6em;
118
+ font-size: 19px;
119
+ margin: 1em 200px 1em 0;
120
+ color: #555d66;
121
+ }
122
+
123
+ .csf-demo-button{
124
+ margin: 1em 200px 2em 0;
125
+ }
126
+
127
+ .nav-tab-wrapper{
128
+ margin-bottom: 20px;
129
+ }
130
+
131
+ ul{
132
+ list-style-type: disc;
133
+ padding-left: 15px;
134
+ }
135
+
136
+ .csf--col{
137
+ float: left;
138
+ padding-right: 20px;
139
+ box-sizing: border-box;
140
+ }
141
+
142
+ .csf--col-2{
143
+ width: 50%;
144
+ }
145
+
146
+ .csf--col-3{
147
+ width: 33.333%;
148
+ }
149
+
150
+ .csf--col-4{
151
+ width: 25%;
152
+ }
153
+
154
+ .csf--col-5{
155
+ width: 20%;
156
+ }
157
+
158
+ .csf--col-last{
159
+ padding-right: 0;
160
+ }
161
+
162
+ .csf--col-upgrade{
163
+ padding: 10px 0;
164
+ text-align: center;
165
+ border-top: 1px solid #e5e5e5;
166
+ }
167
+ }
168
+
169
+ .csf--table-compare{
170
+
171
+ thead,
172
+ tfoot{
173
+ td{
174
+ text-align: center;
175
+ }
176
+ }
177
+
178
+ td{
179
+ font-size: 14px;
180
+ text-align: center;
181
+ vertical-align: middle;
182
+ padding: 10px;
183
+ }
184
+
185
+ td:first-child{
186
+ text-align: left;
187
+ }
188
+
189
+ tfoot{
190
+ td{
191
+ padding: 15px 0;
192
+ }
193
+ }
194
+
195
+ .fa{
196
+ font-size: 18px;
197
+ }
198
+
199
+ .fa-check-circle{
200
+ color: #46b450;
201
+ }
202
+
203
+ .fa-times-circle{
204
+ color: #dc3232;
205
+ }
206
+ }
207
+
208
+ .csf-welcome-cols{
209
+ clear: both;
210
+ margin: 20px 0;
211
+ background-color: #fff;
212
+ padding: 0 0;
213
+ border-radius: 2px;
214
+ border: 1px solid #e5e5e5;
215
+
216
+ .csf--col{
217
+ width: 33.333%;
218
+ float: left;
219
+ padding: 20px;
220
+ text-align: center;
221
+ box-sizing: border-box;
222
+ min-height: 200px;
223
+ border-right: 1px solid #e5e5e5;
224
+ }
225
+
226
+ .csf--left,
227
+ .csf--block{
228
+ float: left;
229
+ width: 20%;
230
+ padding: 0 30px;
231
+ text-align: center;
232
+ box-sizing: border-box;
233
+ }
234
+
235
+ .csf--block{
236
+ width: 80%;
237
+ }
238
+
239
+ .csf--col-first{
240
+ border-bottom: 1px solid #e5e5e5;
241
+ }
242
+
243
+ .csf--last{
244
+ border-right: none;
245
+ }
246
+
247
+ .csf--space{
248
+ height: 20px;
249
+ }
250
+
251
+ .csf--icon{
252
+ display: inline-block;
253
+ font-size: 20px;
254
+ width: 30px;
255
+ height: 30px;
256
+ line-height: 30px;
257
+ text-align: center;
258
+ margin-bottom: 10px;
259
+ color: #fff;
260
+ background-color: #555;
261
+ border-radius: 30px;
262
+ }
263
+
264
+ .csf--active{
265
+ background-color: #5cb85c;
266
+ }
267
+
268
+ .csf--deactive{
269
+ background-color: #e14d43;
270
+ }
271
+
272
+ .csf--title{
273
+ font-weight: bold;
274
+ display: block;
275
+ }
276
+
277
+ p:last-child{
278
+ margin-bottom: 0;
279
+ }
280
+ }
281
+
282
+ .csf-features-cols{
283
+
284
+ .csf--key-features{
285
+ width: 30%;
286
+ }
287
+ .csf--available-fields{
288
+ width: 70%;
289
+ }
290
+ }
291
+
292
+ .csf-code-block{
293
+ margin: 20px 0;
294
+ padding: 5px 20px;
295
+ background-color: #fff;
296
+ border-radius: 2px;
297
+ box-shadow: 0 1px 1px rgba(0,0,0,0.15);
298
+
299
+ pre{
300
+ font-size: 13px;
301
+ color: #0073aa;
302
+
303
+ span{
304
+ color: #999;
305
+ }
306
+ }
307
+ }
308
+
309
+ .csf--table-fields{
310
+ td{
311
+ font-size: 14px;
312
+ }
313
+ }
314
+
315
+ .csf--upgrade a{
316
+ color: #5cb85c;
317
+ font-weight: bold;
318
+
319
+ &:focus,
320
+ &:hover{
321
+ color: #4aa14a;
322
+ outline: none;
323
+ box-shadow: none;
324
+ }
325
+ }
326
+
327
+ @media only screen and (max-width:782px){
328
+
329
+ .csf-welcome-cols{
330
+ .csf--col{
331
+ width: 100%;
332
+ min-height: auto;
333
+ border-right: none;
334
+ border-bottom: 1px solid #e5e5e5;
335
+ }
336
+ }
337
+
338
+ .csf-features-cols{
339
+ .csf--key-features{
340
+ width: 100%;
341
+ }
342
+ .csf--available-fields{
343
+ width: 100%;
344
+ }
345
+ }
346
+ }
vendor/codestar-framework/assets/scss/partials/_widget.scss CHANGED
@@ -1,67 +1,67 @@
1
- /**
2
- * 04. Widget
3
- */
4
- .csf-widgets{
5
-
6
- > .csf-field{
7
- position: relative;
8
- top: -1px;
9
- margin-left: -15px;
10
- margin-right: -15px;
11
- padding: 12px 15px;
12
-
13
- .csf-title{
14
- float: none;
15
- width: 100%;
16
- margin-bottom: 5px;
17
- }
18
-
19
- .csf-fieldset{
20
- float: none;
21
- width: 100%;
22
- }
23
- }
24
-
25
- .csf-field-text input{
26
- width: 100%;
27
- }
28
-
29
- .csf-field-notice .csf-notice{
30
- padding: 15px;
31
- }
32
- }
33
-
34
- .control-section{
35
-
36
- .csf-widgets{
37
-
38
- > .csf-field{
39
- margin-left: -10px;
40
- margin-right: -10px;
41
- padding: 10px 12px;
42
- }
43
- }
44
- }
45
-
46
- .wp-block{
47
-
48
- .csf-widgets{
49
- font-size: 13px;
50
-
51
- > .csf-field{
52
- margin-left: -10px;
53
- margin-right: -10px;
54
-
55
- .button-primary{
56
- color: #fff;
57
- }
58
-
59
- > .csf-title{
60
-
61
- > h4{
62
- font-size: 13px;
63
- }
64
- }
65
- }
66
- }
67
- }
1
+ /**
2
+ * 04. Widget
3
+ */
4
+ .csf-widgets{
5
+
6
+ > .csf-field{
7
+ position: relative;
8
+ top: -1px;
9
+ margin-left: -15px;
10
+ margin-right: -15px;
11
+ padding: 12px 15px;
12
+
13
+ .csf-title{
14
+ float: none;
15
+ width: 100%;
16
+ margin-bottom: 5px;
17
+ }
18
+
19
+ .csf-fieldset{
20
+ float: none;
21
+ width: 100%;
22
+ }
23
+ }
24
+
25
+ .csf-field-text input{
26
+ width: 100%;
27
+ }
28
+
29
+ .csf-field-notice .csf-notice{
30
+ padding: 15px;
31
+ }
32
+ }
33
+
34
+ .control-section{
35
+
36
+ .csf-widgets{
37
+
38
+ > .csf-field{
39
+ margin-left: -10px;
40
+ margin-right: -10px;
41
+ padding: 10px 12px;
42
+ }
43
+ }
44
+ }
45
+
46
+ .wp-block{
47
+
48
+ .csf-widgets{
49
+ font-size: 13px;
50
+
51
+ > .csf-field{
52
+ margin-left: -10px;
53
+ margin-right: -10px;
54
+
55
+ .button-primary{
56
+ color: #fff;
57
+ }
58
+
59
+ > .csf-title{
60
+
61
+ > h4{
62
+ font-size: 13px;
63
+ }
64
+ }
65
+ }
66
+ }
67
+ }
vendor/codestar-framework/assets/scss/style-rtl.scss CHANGED
@@ -1,728 +1,728 @@
1
- /**
2
- *
3
- * ---------------------------------------------------------
4
- * CODESTAR FRAMEWORK RTL CSS MAP
5
- * ---------------------------------------------------------
6
- *
7
- * 01. Base
8
- * 01. 01. Header
9
- * 01. 02. Header Buttons
10
- * 01. 03. Navigation
11
- * 01. 04. Content
12
- * 01. 05. Section
13
- * 01. 06. Show All Settings
14
- * 01. 07. Search Input
15
- * 01. 08. Copyright
16
- * 01. 09. Metabox
17
- * 02. Fields
18
- * 02. 01. Field: typography
19
- * 02. 02. Field: checkbox, radio
20
- * 02. 03. Field: switcher
21
- * 02. 04. Field: upload
22
- * 02. 05. Field: group
23
- * 02. 06. Field: repeater
24
- * 02. 07. Field: help
25
- * 02. 08. Field: icon
26
- * 02. 09. Field: gallery
27
- * 02. 10. Field: sorter
28
- * 02. 11. Field: tabbed
29
- * 02. 12. Field: media
30
- * 02. 13. Field: notice
31
- * 02. 14. Field: border, spacing, dimensions
32
- * 02. 15. Field: background
33
- * 02. 16. Field: spinner
34
- * 02. 17. Field: slider
35
- * 02. 18. Field: button_set
36
- * 02. 19. Field: link_color
37
- * 02. 20. Field: color_group
38
- * 02. 21. Field: palette
39
- * 02. 22. Field: accordion
40
- * 02. 23. Field: date
41
- * 02. 24. Field: map
42
- * 02. 25. Field: sortable
43
- * 02. 26. Field: number
44
- * 03. Taxonomy
45
- * 04. Profile
46
- * 05. Nav Menu
47
- * 06. Modal
48
- * 07. Customizer
49
- * 08. Responsive
50
- * 09. Others
51
- *
52
- * ---------------------------------------------------------
53
- *
54
- */
55
-
56
- /**
57
- * 01. Base
58
- */
59
- .csf-options{
60
- margin-left: 20px;
61
- margin-right: 0;
62
- }
63
-
64
- /**
65
- * 01. 01. Header
66
- */
67
- .csf-header{
68
- h1{
69
- float: right;
70
- }
71
-
72
- fieldset{
73
- float: left;
74
- }
75
- }
76
-
77
- /**
78
- * 01. 02. Header Buttons
79
- */
80
- .csf-buttons{
81
- float: left;
82
- direction: ltr;
83
- }
84
-
85
- .csf-header-left{
86
- float: right;
87
- }
88
-
89
- .csf-header-right{
90
- float: left;
91
- }
92
-
93
- /**
94
- * 01. 03. Navigation
95
- */
96
- .csf-nav{
97
- float: right;
98
-
99
- ul{
100
- clear: right;
101
-
102
- li{
103
- .csf-active:after{
104
- right: auto;
105
- left: 0;
106
- border-left-color: #fff;
107
- border-right-color: transparent;
108
- }
109
-
110
- .csf-arrow:after{
111
- content: "\f053";
112
- right: auto;
113
- left: 10px;
114
- }
115
-
116
- &.csf-tab-expanded .csf-arrow:after{
117
- transform: rotate(-90deg);
118
- }
119
- }
120
-
121
- ul{
122
- li{
123
- a{
124
- padding-right: 25px;
125
- padding-left: 15px;
126
- }
127
- }
128
-
129
- &:before{
130
- left: auto;
131
- right: 15px;
132
- }
133
- }
134
- }
135
-
136
- .csf-tab-icon{
137
- margin-left: 5px;
138
- margin-right: 0;
139
- }
140
- }
141
-
142
- .csf-nav-background{
143
- left: auto;
144
- right: 0;
145
- }
146
-
147
- /**
148
- * 01. 04. Content
149
- */
150
- .csf-content{
151
- margin-left: 0;
152
- margin-right: 225px;
153
- }
154
-
155
- /**
156
- * 01. 05. Section
157
- */
158
- .csf-sections{
159
- float: right;
160
- }
161
-
162
- /**
163
- * 01. 06. Show all options
164
- */
165
- .csf-show-all .csf-content{
166
- margin-right: 0;
167
- overflow: hidden;
168
- }
169
-
170
- .csf-expand-all{
171
- float: right;
172
- right: auto;
173
- left: 40px;
174
- margin-right: 0;
175
- margin-left: 4px;
176
- }
177
-
178
- /**
179
- * 01. 07. Search Input
180
- */
181
- .csf-search{
182
- float: right;
183
-
184
- input{
185
- margin: 0 0 0 5px;
186
- }
187
- }
188
-
189
- /**
190
- * 01. 08. Copyright
191
- */
192
- .csf-copyright{
193
- float: right;
194
- }
195
-
196
- /**
197
- * 01. 09. Metabox
198
- */
199
- .csf-metabox{
200
- margin: -6px -12px -12px -12px;
201
-
202
- .csf-section-title{
203
- padding: 20px;
204
- }
205
- }
206
-
207
- .csf-section-title{
208
-
209
- .csf-section-icon{
210
- margin-left: 5px;
211
- margin-right: 0;
212
- }
213
- }
214
-
215
- /**
216
- * 02. Fields
217
- */
218
- .csf-field{
219
-
220
- .csf-title{
221
- float: right;
222
- }
223
-
224
- .csf-fieldset{
225
- float: left;
226
- }
227
- }
228
-
229
- .csf-pseudo-field{
230
- padding: 0 0 0 5px !important;
231
- }
232
-
233
- /**
234
- * 02. 01. Field: typography
235
- */
236
- .csf-field-typography{
237
-
238
- select{
239
- margin: 0;
240
- width: 100%;
241
- }
242
-
243
- .csf--blocks-inputs{
244
- .csf--blocks{
245
- flex-direction: row-reverse;
246
- }
247
- }
248
-
249
- .csf--unit{
250
- left: 4px;
251
- right: auto;
252
- }
253
- }
254
-
255
- /**
256
- * 02. 02. Field: checkbox, radio
257
- */
258
- .csf-field-checkbox,
259
- .csf-field-radio{
260
-
261
- ul ul li{
262
- margin-left: 0;
263
- margin-right: 8px;
264
-
265
- &:first-child{
266
- margin-right: 0;
267
- }
268
- }
269
-
270
- .csf--inline-list li{
271
- margin-right: 0;
272
- margin-left: 15px;
273
- }
274
-
275
- .csf--text{
276
- margin-left: 0;
277
- margin-right: 5px;
278
- }
279
- }
280
-
281
- /**
282
- * 02. 03. Field: switcher
283
- */
284
- .csf-field-switcher{
285
-
286
- .csf--switcher{
287
- float: right;
288
- }
289
-
290
- .csf--label{
291
- float: right;
292
- margin-left: 0;
293
- margin-right: 5px;
294
- }
295
- }
296
-
297
- /**
298
- * 02. 04. Field: upload
299
- */
300
- .csf-field-upload{
301
-
302
- .csf--remove,
303
- .csf--button{
304
- margin-left: 0;
305
- margin-right: 5px;
306
- }
307
- }
308
-
309
- /**
310
- * 02. 05. Field: group
311
- */
312
- .csf-field-group{
313
-
314
- .csf-cloneable-title{
315
- padding: 15px 10px 15px 65px;
316
- }
317
-
318
- .csf-cloneable-helper{
319
- right: auto;
320
- left: 10px;
321
- }
322
- }
323
-
324
- /**
325
- * 02. 06. Field: repeater
326
- */
327
- .csf-field-repeater{
328
-
329
- .csf-repeater-helper{
330
- border-left: 0;
331
- border-right: 1px solid #eee;
332
- }
333
- }
334
-
335
- /**
336
- * 02. 07. Field: help
337
- */
338
- .csf-help{
339
- right: auto;
340
- left: 5px;
341
- }
342
-
343
- /**
344
- * 02. 08. Field: icon
345
- */
346
- .csf-field-icon{
347
-
348
- .button{
349
- margin-right: 0;
350
- margin-left: 5px;
351
- }
352
-
353
- .csf-icon-preview i{
354
- margin-right: 0;
355
- margin-left: 5px;
356
- }
357
- }
358
-
359
- /**
360
- * 02. 09. Field: gallery
361
- */
362
- .csf-field-gallery{
363
-
364
- ul li{
365
- margin-right: 0;
366
- margin-left: 5px;
367
- }
368
-
369
- .button{
370
- margin-right: 0;
371
- margin-left: 5px;
372
- }
373
- }
374
-
375
- /**
376
- * 02. 11. Field: tabbed
377
- */
378
- .csf-field-tabbed{
379
-
380
- .csf-tabbed-nav{
381
-
382
- .csf--icon{
383
- padding-right: 0;
384
- padding-left: 5px;
385
- }
386
-
387
- a{
388
- margin-right: 0;
389
- margin-left: 5px;
390
- }
391
- }
392
- }
393
-
394
- /**
395
- * 02. 12. Field: media
396
- */
397
- .csf-field-media{
398
-
399
- .button{
400
- margin-left: 0;
401
- margin-right: 7px;
402
- }
403
-
404
- .hidden + .button{
405
- margin-right: 0;
406
- }
407
- }
408
-
409
- /**
410
- * 02. 13. Field: notice
411
- */
412
- .csf-notice{
413
- border-left: none;
414
- border-right-style: solid;
415
- border-right-width: 4px;
416
- }
417
-
418
- /**
419
- * 02. 14. Field: border, spacing, dimensions
420
- */
421
- .csf-field-dimensions,
422
- .csf-field-spacing,
423
- .csf-field-border{
424
-
425
- .csf--input,
426
- .csf-fieldset{
427
- direction: ltr;
428
- }
429
-
430
- .csf--inputs,
431
- .csf--color{
432
- float: right;
433
- }
434
-
435
- .csf--color{
436
- margin-right: 4px;
437
- direction: rtl;
438
- }
439
- }
440
-
441
- /**
442
- * 02. 15. Field: background
443
- */
444
- .csf-field-background{
445
-
446
- .csf--block{
447
- float: right;
448
- }
449
-
450
- .csf--select,
451
- .csf--media{
452
- padding-right: 0;
453
- }
454
-
455
- .csf--title{
456
- margin-right: 0;
457
- margin-left: 5px;
458
- }
459
- }
460
-
461
- /**
462
- * 02. 16. Field: spinner
463
- */
464
- .csf-field-spinner{
465
-
466
- .csf--spin{
467
- float: right;
468
- direction: ltr;
469
- }
470
- }
471
-
472
- /**
473
- * 02. 17. Field: slider
474
- */
475
- .csf-field-slider{
476
-
477
- .csf-slider-ui{
478
- direction: ltr;
479
- margin-right: 0;
480
- margin-left: 15px;
481
- }
482
-
483
- .csf--input{
484
- direction: ltr;
485
- }
486
- }
487
-
488
- /**
489
- * 02. 18. Field: button_set
490
- */
491
- .csf-field-button_set{
492
-
493
- .csf--button-group{
494
- float: right;
495
- }
496
- }
497
-
498
- /**
499
- * 02. 19. Field: link_color
500
- */
501
- .csf-field-link_color{
502
-
503
- .csf--left{
504
- float: right;
505
- margin-right: 0;
506
- margin-left: 10px;
507
- }
508
- }
509
-
510
- /**
511
- * 02. 20. Field: color_group
512
- */
513
- .csf-field-color_group{
514
-
515
- .csf--left{
516
- float: right;
517
- margin-right: 0;
518
- margin-left: 10px;
519
- }
520
- }
521
-
522
- /**
523
- * 02. 21. Field: palette
524
- */
525
- .csf-field-palette{
526
-
527
- .csf--palette{
528
- margin-right: 0;
529
- margin-left: 10px;
530
- }
531
- }
532
-
533
- /**
534
- * 02. 22. Field: accordion
535
- */
536
- .csf-field-accordion{
537
-
538
- .csf--icon{
539
- margin-right: 0;
540
- margin-left: 2px;
541
- }
542
- }
543
-
544
- /**
545
- * 02. 23. Field: date
546
- */
547
- .csf-field-date{
548
-
549
- .csf--to {
550
- margin-left: 0;
551
- margin-right: 7px;
552
- }
553
- }
554
-
555
- /**
556
- * 02. 24. Field: map
557
- */
558
- .csf-field-map{
559
-
560
- .csf--map-input:last-child {
561
- padding-left: 0;
562
- padding-right: 10px;
563
- }
564
- }
565
-
566
- /**
567
- * 02. 25. Field: sortable
568
- */
569
- .csf-field-sortable{
570
-
571
- .csf-sortable-helper{
572
- border-left: none;
573
- border-right: 1px solid #eee;
574
- }
575
- }
576
-
577
- /**
578
- * 02. 26. Field: number
579
- */
580
- .csf-field-number{
581
-
582
- .csf--wrap{
583
- float: right;
584
- }
585
-
586
- .csf--unit{
587
- left: 4px;
588
- right: auto;
589
- }
590
- }
591
-
592
- /**
593
- * 03. Taxonomy
594
- */
595
- .csf-taxonomy-add-fields{
596
- margin-right: 0;
597
- margin-left: 30px;
598
-
599
- .csf-field > .csf-fieldset > .csf-help{
600
- left: -5px;
601
- right: auto;
602
- }
603
- }
604
-
605
- .csf-taxonomy-edit-fields{
606
- margin-right: 0;
607
- margin-left: 35px;
608
-
609
- .csf-field > .csf-fieldset > .csf-help{
610
- right: auto;
611
- left: -5px;
612
- }
613
- }
614
-
615
- /**
616
- * 04. Profile
617
- */
618
- .csf-profile-options{
619
-
620
- > h2 > .fa{
621
- padding-right: 0;
622
- padding-left: 7px;
623
- }
624
-
625
- > .csf-field{
626
-
627
- > .csf-fieldset{
628
-
629
- > .csf-help{
630
- left: -5px;
631
- right: auto;
632
- }
633
- }
634
- }
635
- }
636
-
637
- /**
638
- * 05. Nav Menu
639
- */
640
- .csf-nav-menu-options{
641
-
642
- > .csf-fields{
643
- margin-left: 0;
644
- margin-right: -10px;
645
- }
646
- }
647
-
648
- .csf-nav-menu-title {
649
- padding-left: 14px;
650
- padding-right: 12px;
651
- }
652
-
653
- .csf-nav-menu-icon{
654
- margin-right: 0;
655
- margin-left: 5px;
656
- }
657
-
658
- /**
659
- * 06. Modal
660
- */
661
- .csf-modal-content{
662
-
663
- .csf-field{
664
- padding: 15px 15px 15px 30px;
665
- }
666
- }
667
-
668
- .csf-modal-title{
669
- padding: 0 16px 0 36px;
670
- }
671
-
672
- .csf-modal-close{
673
- right: auto;
674
- left: 0;
675
- }
676
-
677
- /**
678
- * 07. Customizer
679
- */
680
- .control-section{
681
-
682
- .csf-field{
683
-
684
- .csf-fieldset{
685
- margin-right: 0;
686
- }
687
- }
688
- }
689
-
690
- /**
691
- * 08. Responsive
692
- */
693
- @media only screen and (max-width:1200px){
694
- .csf-metabox .csf-field .csf-fieldset{
695
- margin-left: 0;
696
- }
697
- }
698
-
699
- @media only screen and (max-width:782px){
700
- .csf .csf-fieldset,
701
- .csf .csf-content{
702
- margin-right: 0;
703
- }
704
- }
705
-
706
- /**
707
- * 09. Others
708
- */
709
- .csf-field{
710
-
711
- .csf--transparent-slider{
712
- margin-left: 0;
713
- margin-right: 2px;
714
-
715
- .ui-slider-handle{
716
- margin: 0 -11px;
717
- }
718
- }
719
-
720
- .csf--transparent-offset{
721
- background-position: center right;
722
- }
723
-
724
- .csf--transparent-text{
725
- right: auto;
726
- left: 10px;
727
- }
728
- }
1
+ /**
2
+ *
3
+ * ---------------------------------------------------------
4
+ * CODESTAR FRAMEWORK RTL CSS MAP
5
+ * ---------------------------------------------------------
6
+ *
7
+ * 01. Base
8
+ * 01. 01. Header
9
+ * 01. 02. Header Buttons
10
+ * 01. 03. Navigation
11
+ * 01. 04. Content
12
+ * 01. 05. Section
13
+ * 01. 06. Show All Settings
14
+ * 01. 07. Search Input
15
+ * 01. 08. Copyright
16
+ * 01. 09. Metabox
17
+ * 02. Fields
18
+ * 02. 01. Field: typography
19
+ * 02. 02. Field: checkbox, radio
20
+ * 02. 03. Field: switcher
21
+ * 02. 04. Field: upload
22
+ * 02. 05. Field: group
23
+ * 02. 06. Field: repeater
24
+ * 02. 07. Field: help
25
+ * 02. 08. Field: icon
26
+ * 02. 09. Field: gallery
27
+ * 02. 10. Field: sorter
28
+ * 02. 11. Field: tabbed
29
+ * 02. 12. Field: media
30
+ * 02. 13. Field: notice
31
+ * 02. 14. Field: border, spacing, dimensions
32
+ * 02. 15. Field: background
33
+ * 02. 16. Field: spinner
34
+ * 02. 17. Field: slider
35
+ * 02. 18. Field: button_set
36
+ * 02. 19. Field: link_color
37
+ * 02. 20. Field: color_group
38
+ * 02. 21. Field: palette
39
+ * 02. 22. Field: accordion
40
+ * 02. 23. Field: date
41
+ * 02. 24. Field: map
42
+ * 02. 25. Field: sortable
43
+ * 02. 26. Field: number
44
+ * 03. Taxonomy
45
+ * 04. Profile
46
+ * 05. Nav Menu
47
+ * 06. Modal
48
+ * 07. Customizer
49
+ * 08. Responsive
50
+ * 09. Others
51
+ *
52
+ * ---------------------------------------------------------
53
+ *
54
+ */
55
+
56
+ /**
57
+ * 01. Base
58
+ */
59
+ .csf-options{
60
+ margin-left: 20px;
61
+ margin-right: 0;
62
+ }
63
+
64
+ /**
65
+ * 01. 01. Header
66
+ */
67
+ .csf-header{
68
+ h1{
69
+ float: right;
70
+ }
71
+
72
+ fieldset{
73
+ float: left;
74
+ }
75
+ }
76
+
77
+ /**
78
+ * 01. 02. Header Buttons
79
+ */
80
+ .csf-buttons{
81
+ float: left;
82
+ direction: ltr;
83
+ }
84
+
85
+ .csf-header-left{
86
+ float: right;
87
+ }
88
+
89
+ .csf-header-right{
90
+ float: left;
91
+ }
92
+
93
+ /**
94
+ * 01. 03. Navigation
95
+ */
96
+ .csf-nav{
97
+ float: right;
98
+
99
+ ul{
100
+ clear: right;
101
+
102
+ li{
103
+ .csf-active:after{
104
+ right: auto;
105
+ left: 0;
106
+ border-left-color: #fff;
107
+ border-right-color: transparent;
108
+ }
109
+
110
+ .csf-arrow:after{
111
+ content: "\f053";
112
+ right: auto;
113
+ left: 10px;
114
+ }
115
+
116
+ &.csf-tab-expanded .csf-arrow:after{
117
+ transform: rotate(-90deg);
118
+ }
119
+ }
120
+
121
+ ul{
122
+ li{
123
+ a{
124
+ padding-right: 25px;
125
+ padding-left: 15px;
126
+ }
127
+ }
128
+
129
+ &:before{
130
+ left: auto;
131
+ right: 15px;
132
+ }
133
+ }
134
+ }
135
+
136
+ .csf-tab-icon{
137
+ margin-left: 5px;
138
+ margin-right: 0;
139
+ }
140
+ }
141
+
142
+ .csf-nav-background{
143
+ left: auto;
144
+ right: 0;
145
+ }
146
+
147
+ /**
148
+ * 01. 04. Content
149
+ */
150
+ .csf-content{
151
+ margin-left: 0;
152
+ margin-right: 225px;
153
+ }
154
+
155
+ /**
156
+ * 01. 05. Section
157
+ */
158
+ .csf-sections{
159
+ float: right;
160
+ }
161
+
162
+ /**
163
+ * 01. 06. Show all options
164
+ */
165
+ .csf-show-all .csf-content{
166
+ margin-right: 0;
167
+ overflow: hidden;
168
+ }
169
+
170
+ .csf-expand-all{
171
+ float: right;
172
+ right: auto;
173
+ left: 40px;
174
+ margin-right: 0;
175
+ margin-left: 4px;
176
+ }
177
+
178
+ /**
179
+ * 01. 07. Search Input
180
+ */
181
+ .csf-search{
182
+ float: right;
183
+
184
+ input{
185
+ margin: 0 0 0 5px;
186
+ }
187
+ }
188
+
189
+ /**
190
+ * 01. 08. Copyright
191
+ */
192
+ .csf-copyright{
193
+ float: right;
194
+ }
195
+
196
+ /**
197
+ * 01. 09. Metabox
198
+ */
199
+ .csf-metabox{
200
+ margin: -6px -12px -12px -12px;
201
+
202
+ .csf-section-title{
203
+ padding: 20px;
204
+ }
205
+ }
206
+
207
+ .csf-section-title{
208
+
209
+ .csf-section-icon{
210
+ margin-left: 5px;
211
+ margin-right: 0;
212
+ }
213
+ }
214
+
215
+ /**
216
+ * 02. Fields
217
+ */
218
+ .csf-field{
219
+
220
+ .csf-title{
221
+ float: right;
222
+ }
223
+
224
+ .csf-fieldset{
225
+ float: left;
226
+ }
227
+ }
228
+
229
+ .csf-pseudo-field{
230
+ padding: 0 0 0 5px !important;
231
+ }
232
+
233
+ /**
234
+ * 02. 01. Field: typography
235
+ */
236
+ .csf-field-typography{
237
+
238
+ select{
239
+ margin: 0;
240
+ width: 100%;
241
+ }
242
+
243
+ .csf--blocks-inputs{
244
+ .csf--blocks{
245
+ flex-direction: row-reverse;
246
+ }
247
+ }
248
+
249
+ .csf--unit{
250
+ left: 4px;
251
+ right: auto;
252
+ }
253
+ }
254
+
255
+ /**
256
+ * 02. 02. Field: checkbox, radio
257
+ */
258
+ .csf-field-checkbox,
259
+ .csf-field-radio{
260
+
261
+ ul ul li{
262
+ margin-left: 0;
263
+ margin-right: 8px;
264
+
265
+ &:first-child{
266
+ margin-right: 0;
267
+ }
268
+ }
269
+
270
+ .csf--inline-list li{
271
+ margin-right: 0;
272
+ margin-left: 15px;
273
+ }
274
+
275
+ .csf--text{
276
+ margin-left: 0;
277
+ margin-right: 5px;
278
+ }
279
+ }
280
+
281
+ /**
282
+ * 02. 03. Field: switcher
283
+ */
284
+ .csf-field-switcher{
285
+
286
+ .csf--switcher{
287
+ float: right;
288
+ }
289
+
290
+ .csf--label{
291
+ float: right;
292
+ margin-left: 0;
293
+ margin-right: 5px;
294
+ }
295
+ }
296
+
297
+ /**
298
+ * 02. 04. Field: upload
299
+ */
300
+ .csf-field-upload{
301
+
302
+ .csf--remove,
303
+ .csf--button{
304
+ margin-left: 0;
305
+ margin-right: 5px;
306
+ }
307
+ }
308
+
309
+ /**
310
+ * 02. 05. Field: group
311
+ */
312
+ .csf-field-group{
313
+
314
+ .csf-cloneable-title{
315
+ padding: 15px 10px 15px 65px;
316
+ }
317
+
318
+ .csf-cloneable-helper{
319
+ right: auto;
320
+ left: 10px;
321
+ }
322
+ }
323
+
324
+ /**
325
+ * 02. 06. Field: repeater
326
+ */
327
+ .csf-field-repeater{
328
+
329
+ .csf-repeater-helper{
330
+ border-left: 0;
331
+ border-right: 1px solid #eee;
332
+ }
333
+ }
334
+
335
+ /**
336
+ * 02. 07. Field: help
337
+ */
338
+ .csf-help{
339
+ right: auto;
340
+ left: 5px;
341
+ }
342
+
343
+ /**
344
+ * 02. 08. Field: icon
345
+ */
346
+ .csf-field-icon{
347
+
348
+ .button{
349
+ margin-right: 0;
350
+ margin-left: 5px;
351
+ }
352
+
353
+ .csf-icon-preview i{
354
+ margin-right: 0;
355
+ margin-left: 5px;
356
+ }
357
+ }
358
+
359
+ /**
360
+ * 02. 09. Field: gallery
361
+ */
362
+ .csf-field-gallery{
363
+
364
+ ul li{
365
+ margin-right: 0;
366
+ margin-left: 5px;
367
+ }
368
+
369
+ .button{
370
+ margin-right: 0;
371
+ margin-left: 5px;
372
+ }
373
+ }
374
+
375
+ /**
376
+ * 02. 11. Field: tabbed
377
+ */
378
+ .csf-field-tabbed{
379
+
380
+ .csf-tabbed-nav{
381
+
382
+ .csf--icon{
383
+ padding-right: 0;
384
+ padding-left: 5px;
385
+ }
386
+
387
+ a{
388
+ margin-right: 0;
389
+ margin-left: 5px;
390
+ }
391
+ }
392
+ }
393
+
394
+ /**
395
+ * 02. 12. Field: media
396
+ */
397
+ .csf-field-media{
398
+
399
+ .button{
400
+ margin-left: 0;
401
+ margin-right: 7px;
402
+ }
403
+
404
+ .hidden + .button{
405
+ margin-right: 0;
406
+ }
407
+ }
408
+
409
+ /**
410
+ * 02. 13. Field: notice
411
+ */
412
+ .csf-notice{
413
+ border-left: none;
414
+ border-right-style: solid;
415
+ border-right-width: 4px;
416
+ }
417
+
418
+ /**
419
+ * 02. 14. Field: border, spacing, dimensions
420
+ */
421
+ .csf-field-dimensions,
422
+ .csf-field-spacing,
423
+ .csf-field-border{
424
+
425
+ .csf--input,
426
+ .csf-fieldset{
427
+ direction: ltr;
428
+ }
429
+
430
+ .csf--inputs,
431
+ .csf--color{
432
+ float: right;
433
+ }
434
+
435
+ .csf--color{
436
+ margin-right: 4px;
437
+ direction: rtl;
438
+ }
439
+ }
440
+
441
+ /**
442
+ * 02. 15. Field: background
443
+ */
444
+ .csf-field-background{
445
+
446
+ .csf--block{
447
+ float: right;
448
+ }
449
+
450
+ .csf--select,
451
+ .csf--media{
452
+ padding-right: 0;
453
+ }
454
+
455
+ .csf--title{
456
+ margin-right: 0;
457
+ margin-left: 5px;
458
+ }
459
+ }
460
+
461
+ /**
462
+ * 02. 16. Field: spinner
463
+ */
464
+ .csf-field-spinner{
465
+
466
+ .csf--spin{
467
+ float: right;
468
+ direction: ltr;
469
+ }
470
+ }
471
+
472
+ /**
473
+ * 02. 17. Field: slider
474
+ */
475
+ .csf-field-slider{
476
+
477
+ .csf-slider-ui{
478
+ direction: ltr;
479
+ margin-right: 0;
480
+ margin-left: 15px;
481
+ }
482
+
483
+ .csf--input{
484
+ direction: ltr;
485
+ }
486
+ }
487
+
488
+ /**
489
+ * 02. 18. Field: button_set
490
+ */
491
+ .csf-field-button_set{
492
+
493
+ .csf--button-group{
494
+ float: right;
495
+ }
496
+ }
497
+
498
+ /**
499
+ * 02. 19. Field: link_color
500
+ */
501
+ .csf-field-link_color{
502
+
503
+ .csf--left{
504
+ float: right;
505
+ margin-right: 0;
506
+ margin-left: 10px;
507
+ }
508
+ }
509
+
510
+ /**
511
+ * 02. 20. Field: color_group
512
+ */
513
+ .csf-field-color_group{
514
+
515
+ .csf--left{
516
+ float: right;
517
+ margin-right: 0;
518
+ margin-left: 10px;
519
+ }
520
+ }
521
+
522
+ /**
523
+ * 02. 21. Field: palette
524
+ */
525
+ .csf-field-palette{
526
+
527
+ .csf--palette{
528
+ margin-right: 0;
529
+ margin-left: 10px;
530
+ }
531
+ }
532
+
533
+ /**
534
+ * 02. 22. Field: accordion
535
+ */
536
+ .csf-field-accordion{
537
+
538
+ .csf--icon{
539
+ margin-right: 0;
540
+ margin-left: 2px;
541
+ }
542
+ }
543
+
544
+ /**
545
+ * 02. 23. Field: date
546
+ */
547
+ .csf-field-date{
548
+
549
+ .csf--to {
550
+ margin-left: 0;
551
+ margin-right: 7px;
552
+ }
553
+ }
554
+
555
+ /**
556
+ * 02. 24. Field: map
557
+ */
558
+ .csf-field-map{
559
+
560
+ .csf--map-input:last-child {
561
+ padding-left: 0;
562
+ padding-right: 10px;
563
+ }
564
+ }
565
+
566
+ /**
567
+ * 02. 25. Field: sortable
568
+ */
569
+ .csf-field-sortable{
570
+
571
+ .csf-sortable-helper{
572
+ border-left: none;
573
+ border-right: 1px solid #eee;
574
+ }
575
+ }
576
+
577
+ /**
578
+ * 02. 26. Field: number
579
+ */
580
+ .csf-field-number{
581
+
582
+ .csf--wrap{
583
+ float: right;
584
+ }
585
+
586
+ .csf--unit{
587
+ left: 4px;
588
+ right: auto;
589
+ }
590
+ }
591
+
592
+ /**
593
+ * 03. Taxonomy
594
+ */
595
+ .csf-taxonomy-add-fields{
596
+ margin-right: 0;
597
+ margin-left: 30px;
598
+
599
+ .csf-field > .csf-fieldset > .csf-help{
600
+ left: -5px;
601
+ right: auto;
602
+ }
603
+ }
604
+
605
+ .csf-taxonomy-edit-fields{
606
+ margin-right: 0;
607
+ margin-left: 35px;
608
+
609
+ .csf-field > .csf-fieldset > .csf-help{
610
+ right: auto;
611
+ left: -5px;
612
+ }
613
+ }
614
+
615
+ /**
616
+ * 04. Profile
617
+ */
618
+ .csf-profile-options{
619
+
620
+ > h2 > .fa{
621
+ padding-right: 0;
622
+ padding-left: 7px;
623
+ }
624
+
625
+ > .csf-field{
626
+
627
+ > .csf-fieldset{
628
+
629
+ > .csf-help{
630
+ left: -5px;
631
+ right: auto;
632
+ }
633
+ }
634
+ }
635
+ }
636
+
637
+ /**
638
+ * 05. Nav Menu
639
+ */
640
+ .csf-nav-menu-options{
641
+
642
+ > .csf-fields{
643
+ margin-left: 0;
644
+ margin-right: -10px;
645
+ }
646
+ }
647
+
648
+ .csf-nav-menu-title {
649
+ padding-left: 14px;
650
+ padding-right: 12px;
651
+ }
652
+
653
+ .csf-nav-menu-icon{
654
+ margin-right: 0;
655
+ margin-left: 5px;
656
+ }
657
+
658
+ /**
659
+ * 06. Modal
660
+ */
661
+ .csf-modal-content{
662
+
663
+ .csf-field{
664
+ padding: 15px 15px 15px 30px;
665
+ }
666
+ }
667
+
668
+ .csf-modal-title{
669
+ padding: 0 16px 0 36px;
670
+ }
671
+
672
+ .csf-modal-close{
673
+ right: auto;
674
+ left: 0;
675
+ }
676
+
677
+ /**
678
+ * 07. Customizer
679
+ */
680
+ .control-section{
681
+
682
+ .csf-field{
683
+
684
+ .csf-fieldset{
685
+ margin-right: 0;
686
+ }
687
+ }
688
+ }
689
+
690
+ /**
691
+ * 08. Responsive
692
+ */
693
+ @media only screen and (max-width:1200px){
694
+ .csf-metabox .csf-field .csf-fieldset{
695
+ margin-left: 0;
696
+ }
697
+ }
698
+
699
+ @media only screen and (max-width:782px){
700
+ .csf .csf-fieldset,
701
+ .csf .csf-content{
702
+ margin-right: 0;
703
+ }
704
+ }
705
+
706
+ /**
707
+ * 09. Others
708
+ */
709
+ .csf-field{
710
+
711
+ .csf--transparent-slider{
712
+ margin-left: 0;
713
+ margin-right: 2px;
714
+
715
+ .ui-slider-handle{
716
+ margin: 0 -11px;
717
+ }
718
+ }
719
+
720
+ .csf--transparent-offset{
721
+ background-position: center right;
722
+ }
723
+
724
+ .csf--transparent-text{
725
+ right: auto;
726
+ left: 10px;
727
+ }
728
+ }
vendor/codestar-framework/assets/scss/style.scss CHANGED
@@ -35,34 +35,35 @@
35
  * 03. 10. Field: color_group
36
  * 03. 11. Field: fieldset
37
  * 03. 12. Field: date
38
- * 03. 13. Field: gallery
39
- * 03. 14. Field: group
40
- * 03. 15. Field: icon
41
- * 03. 16. Field: image_select
42
- * 03. 17. Field: link_color
43
- * 03. 18. Field: map
44
- * 03. 19. Field: media
45
- * 03. 20. Field: palette
46
- * 03. 21. Field: repeater
47
- * 03. 22. Field: select
48
- * 03. 23. Field: slider
49
- * 03. 24. Field: sortable
50
- * 03. 25. Field: sorter
51
- * 03. 26. Field: spinner
52
- * 03. 27. Field: switcher
53
- * 03. 28. Field: tabbed
54
- * 03. 29. Field: text
55
- * 03. 30. Field: textarea
56
- * 03. 31. Field: typography
57
- * 03. 32. Field: upload
58
- * 03. 33. Field: wp_editor
59
- * 03. 34. Field: heading
60
- * 03. 35. Field: subheading
61
- * 03. 36. Field: submessage
62
- * 03. 37. Field: notice
63
- * 03. 38. Field: number
64
- * 03. 39. Field: link
65
- * 03. 40. Field: others
 
66
  * 04. Widget
67
  * 05. Customizer
68
  * 06. Taxonomy
@@ -93,3 +94,4 @@
93
  @import "partials/welcome";
94
  @import "partials/responsive";
95
  @import "partials/chosen";
 
35
  * 03. 10. Field: color_group
36
  * 03. 11. Field: fieldset
37
  * 03. 12. Field: date
38
+ * 03. 13. Field: datetime
39
+ * 03. 14. Field: gallery
40
+ * 03. 15. Field: group
41
+ * 03. 16. Field: icon
42
+ * 03. 17. Field: image_select
43
+ * 03. 18. Field: link_color
44
+ * 03. 19. Field: map
45
+ * 03. 20. Field: media
46
+ * 03. 21. Field: palette
47
+ * 03. 22. Field: repeater
48
+ * 03. 23. Field: select
49
+ * 03. 24. Field: slider
50
+ * 03. 25. Field: sortable
51
+ * 03. 26. Field: sorter
52
+ * 03. 27. Field: spinner
53
+ * 03. 28. Field: switcher
54
+ * 03. 29. Field: tabbed
55
+ * 03. 30. Field: text
56
+ * 03. 31. Field: textarea
57
+ * 03. 32. Field: typography
58
+ * 03. 33. Field: upload
59
+ * 03. 34. Field: wp_editor
60
+ * 03. 35. Field: heading
61
+ * 03. 36. Field: subheading
62
+ * 03. 37. Field: submessage
63
+ * 03. 38. Field: notice
64
+ * 03. 39. Field: number
65
+ * 03. 40. Field: link
66
+ * 03. 41. Field: others
67
  * 04. Widget
68
  * 05. Customizer
69
  * 06. Taxonomy
94
  @import "partials/welcome";
95
  @import "partials/responsive";
96
  @import "partials/chosen";
97
+ @import "partials/flatpickr";
vendor/codestar-framework/classes/abstract.class.php CHANGED
@@ -1,132 +1,132 @@
1
- <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
- /**
3
- *
4
- * Abstract Class
5
- *
6
- * @since 1.0.0
7
- * @version 1.0.0
8
- *
9
- */
10
- if ( ! class_exists( 'CSF_Abstract' ) ) {
11
- abstract class CSF_Abstract {
12
-
13
- public $abstract = '';
14
- public $output_css = '';
15
-
16
- public function __construct() {
17
-
18
- // Collect output css and typography
19
- if ( ! empty( $this->args['output_css'] ) || ! empty( $this->args['enqueue_webfont'] ) ) {
20
- add_action( 'wp_enqueue_scripts', array( $this, 'collect_output_css_and_typography' ), 10 );
21
- CSF::$css = apply_filters( "csf_{$this->unique}_output_css", CSF::$css, $this );
22
- }
23
-
24
- }
25
-
26
- public function collect_output_css_and_typography() {
27
- $this->recursive_output_css( $this->pre_fields );
28
- }
29
-
30
- public function recursive_output_css( $fields = array(), $combine_field = array() ) {
31
-
32
- if ( ! empty( $fields ) ) {
33
-
34
- foreach ( $fields as $field ) {
35
-
36
- $field_id = ( ! empty( $field['id'] ) ) ? $field['id'] : '';
37
- $field_type = ( ! empty( $field['type'] ) ) ? $field['type'] : '';
38
- $field_output = ( ! empty( $field['output'] ) ) ? $field['output'] : '';
39
- $field_check = ( $field_type === 'typography' || $field_output ) ? true : false;
40
- $field_class = 'CSF_Field_' . $field_type;
41
-
42
- if ( $field_type && $field_id ) {
43
-
44
-
45
- if( $field_type === 'fieldset' ) {
46
- if ( ! empty( $field['fields'] ) ) {
47
- $this->recursive_output_css( $field['fields'], $field );
48
- }
49
- }
50
-
51
- if( $field_type === 'accordion' ) {
52
- if ( ! empty( $field['accordions'] ) ) {
53
- foreach ( $field['accordions'] as $accordion ) {
54
- $this->recursive_output_css( $accordion['fields'], $field );
55
- }
56
- }
57
- }
58
-
59
- if( $field_type === 'tabbed' ) {
60
- if ( ! empty( $field['tabs'] ) ) {
61
- foreach ( $field['tabs'] as $accordion ) {
62
- $this->recursive_output_css( $accordion['fields'], $field );
63
- }
64
- }
65
- }
66
-
67
- if ( class_exists( $field_class ) ) {
68
-
69
- if ( method_exists( $field_class, 'output' ) || method_exists( $field_class, 'enqueue_google_fonts' ) ) {
70
-
71
- $field_value = '';
72
-
73
- if ( $field_check && ( $this->abstract === 'options' || $this->abstract === 'customize' ) ) {
74
-
75
- if( ! empty( $combine_field ) ) {
76
-
77
- $field_value = ( isset( $this->options[$combine_field['id']][$field_id] ) ) ? $this->options[$combine_field['id']][$field_id] : '';
78
-
79
- } else {
80
-
81
- $field_value = ( isset( $this->options[$field_id] ) ) ? $this->options[$field_id] : '';
82
-
83
- }
84
-
85
- } else if ( $field_check && ( $this->abstract === 'metabox' && is_singular() || $this->abstract === 'taxonomy' && is_archive() ) ) {
86
-
87
- if( ! empty( $combine_field ) ) {
88
-
89
- $meta_value = $this->get_meta_value( $combine_field );
90
- $field_value = ( isset( $meta_value[$field_id] ) ) ? $meta_value[$field_id] : '';
91
-
92
- } else {
93
-
94
- $meta_value = $this->get_meta_value( $field );
95
- $field_value = ( isset( $meta_value ) ) ? $meta_value : '';
96
-
97
- }
98
-
99
- }
100
-
101
- $instance = new $field_class( $field, $field_value, $this->unique, 'wp/enqueue', $this );
102
-
103
- // typography enqueue and embed google web fonts
104
- if ( $field_type === 'typography' && $this->args['enqueue_webfont'] && ! empty( $field_value['font-family'] ) ) {
105
-
106
- $method = ( ! empty( $this->args['async_webfont'] ) ) ? 'async' : 'enqueue';
107
-
108
- $instance->enqueue_google_fonts( $method );
109
-
110
- }
111
-
112
- // output css
113
- if ( $field_output && $this->args['output_css'] ) {
114
- CSF::$css .= $instance->output();
115
- }
116
-
117
- unset( $instance );
118
-
119
- }
120
-
121
- }
122
-
123
- }
124
-
125
- }
126
-
127
- }
128
-
129
- }
130
-
131
- }
132
- }
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Abstract Class
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if ( ! class_exists( 'CSF_Abstract' ) ) {
11
+ abstract class CSF_Abstract {
12
+
13
+ public $abstract = '';
14
+ public $output_css = '';
15
+
16
+ public function __construct() {
17
+
18
+ // Collect output css and typography
19
+ if ( ! empty( $this->args['output_css'] ) || ! empty( $this->args['enqueue_webfont'] ) ) {
20
+ add_action( 'wp_enqueue_scripts', array( $this, 'collect_output_css_and_typography' ), 10 );
21
+ CSF::$css = apply_filters( "csf_{$this->unique}_output_css", CSF::$css, $this );
22
+ }
23
+
24
+ }
25
+
26
+ public function collect_output_css_and_typography() {
27
+ $this->recursive_output_css( $this->pre_fields );
28
+ }
29
+
30
+ public function recursive_output_css( $fields = array(), $combine_field = array() ) {
31
+
32
+ if ( ! empty( $fields ) ) {
33
+
34
+ foreach ( $fields as $field ) {
35
+
36
+ $field_id = ( ! empty( $field['id'] ) ) ? $field['id'] : '';
37
+ $field_type = ( ! empty( $field['type'] ) ) ? $field['type'] : '';
38
+ $field_output = ( ! empty( $field['output'] ) ) ? $field['output'] : '';
39
+ $field_check = ( $field_type === 'typography' || $field_output ) ? true : false;
40
+ $field_class = 'CSF_Field_' . $field_type;
41
+
42
+ if ( $field_type && $field_id ) {
43
+
44
+
45
+ if( $field_type === 'fieldset' ) {
46
+ if ( ! empty( $field['fields'] ) ) {
47
+ $this->recursive_output_css( $field['fields'], $field );
48
+ }
49
+ }
50
+
51
+ if( $field_type === 'accordion' ) {
52
+ if ( ! empty( $field['accordions'] ) ) {
53
+ foreach ( $field['accordions'] as $accordion ) {
54
+ $this->recursive_output_css( $accordion['fields'], $field );
55
+ }
56
+ }
57
+ }
58
+
59
+ if( $field_type === 'tabbed' ) {
60
+ if ( ! empty( $field['tabs'] ) ) {
61
+ foreach ( $field['tabs'] as $accordion ) {
62
+ $this->recursive_output_css( $accordion['fields'], $field );
63
+ }
64
+ }
65
+ }
66
+
67
+ if ( class_exists( $field_class ) ) {
68
+
69
+ if ( method_exists( $field_class, 'output' ) || method_exists( $field_class, 'enqueue_google_fonts' ) ) {
70
+
71
+ $field_value = '';
72
+
73
+ if ( $field_check && ( $this->abstract === 'options' || $this->abstract === 'customize' ) ) {
74
+
75
+ if( ! empty( $combine_field ) ) {
76
+
77
+ $field_value = ( isset( $this->options[$combine_field['id']][$field_id] ) ) ? $this->options[$combine_field['id']][$field_id] : '';
78
+
79
+ } else {
80
+
81
+ $field_value = ( isset( $this->options[$field_id] ) ) ? $this->options[$field_id] : '';
82
+
83
+ }
84
+
85
+ } else if ( $field_check && ( $this->abstract === 'metabox' && is_singular() || $this->abstract === 'taxonomy' && is_archive() ) ) {
86
+
87
+ if( ! empty( $combine_field ) ) {
88
+
89
+ $meta_value = $this->get_meta_value( $combine_field );
90
+ $field_value = ( isset( $meta_value[$field_id] ) ) ? $meta_value[$field_id] : '';
91
+
92
+ } else {
93
+
94
+ $meta_value = $this->get_meta_value( $field );
95
+ $field_value = ( isset( $meta_value ) ) ? $meta_value : '';
96
+
97
+ }
98
+
99
+ }
100
+
101
+ $instance = new $field_class( $field, $field_value, $this->unique, 'wp/enqueue', $this );
102
+
103
+ // typography enqueue and embed google web fonts
104
+ if ( $field_type === 'typography' && $this->args['enqueue_webfont'] && ! empty( $field_value['font-family'] ) ) {
105
+
106
+ $method = ( ! empty( $this->args['async_webfont'] ) ) ? 'async' : 'enqueue';
107
+
108
+ $instance->enqueue_google_fonts( $method );
109
+
110
+ }
111
+
112
+ // output css
113
+ if ( $field_output && $this->args['output_css'] ) {
114
+ CSF::$css .= $instance->output();
115
+ }
116
+
117
+ unset( $instance );
118
+
119
+ }
120
+
121
+ }
122
+
123
+ }
124
+
125
+ }
126
+
127
+ }
128
+
129
+ }
130
+
131
+ }
132
+ }
vendor/codestar-framework/classes/admin-options.class.php CHANGED
@@ -1,725 +1,725 @@
1
- <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
- /**
3
- *
4
- * Options Class
5
- *
6
- * @since 1.0.0
7
- * @version 1.0.0
8
- *
9
- */
10
- if ( ! class_exists( 'CSF_Options' ) ) {
11
- class CSF_Options extends CSF_Abstract {
12
-
13
- // constans
14
- public $unique = '';
15
- public $notice = '';
16
- public $abstract = 'options';
17
- public $sections = array();
18
- public $options = array();
19
- public $errors = array();
20
- public $pre_tabs = array();
21
- public $pre_fields = array();
22
- public $pre_sections = array();
23
- public $args = array(
24
-
25
- // framework title
26
- 'framework_title' => 'Codestar Framework <small>by Codestar</small>',
27
- 'framework_class' => '',
28
-
29
- // menu settings
30
- 'menu_title' => '',
31
- 'menu_slug' => '',
32
- 'menu_type' => 'menu',
33
- 'menu_capability' => 'manage_options',
34
- 'menu_icon' => null,
35
- 'menu_position' => null,
36
- 'menu_hidden' => false,
37
- 'menu_parent' => '',
38
- 'sub_menu_title' => '',
39
-
40
- // menu extras
41
- 'show_bar_menu' => true,
42
- 'show_sub_menu' => true,
43
- 'show_in_network' => true,
44
- 'show_in_customizer' => false,
45
-
46
- 'show_search' => true,
47
- 'show_reset_all' => true,
48
- 'show_reset_section' => true,
49
- 'show_footer' => true,
50
- 'show_all_options' => true,
51
- 'show_form_warning' => true,
52
- 'sticky_header' => true,
53
- 'save_defaults' => true,
54
- 'ajax_save' => true,
55
- 'form_action' => '',
56
-
57
- // admin bar menu settings
58
- 'admin_bar_menu_icon' => '',
59
- 'admin_bar_menu_priority' => 50,
60
-
61
- // footer
62
- 'footer_text' => '',
63
- 'footer_after' => '',
64
- 'footer_credit' => '',
65
-
66
- // database model
67
- 'database' => '', // options, transient, theme_mod, network
68
- 'transient_time' => 0,
69
-
70
- // contextual help
71
- 'contextual_help' => array(),
72
- 'contextual_help_sidebar' => '',
73
-
74
- // typography options
75
- 'enqueue_webfont' => true,
76
- 'async_webfont' => false,
77
-
78
- // others
79
- 'output_css' => true,
80
-
81
- // theme
82
- 'nav' => 'normal',
83
- 'theme' => 'dark',
84
- 'class' => '',
85
-
86
- // external default values
87
- 'defaults' => array(),
88
-
89
- );
90
-
91
- // run framework construct
92
- public function __construct( $key, $params = array() ) {
93
-
94
- $this->unique = $key;
95
- $this->args = apply_filters( "csf_{$this->unique}_args", wp_parse_args( $params['args'], $this->args ), $this );
96
- $this->sections = apply_filters( "csf_{$this->unique}_sections", $params['sections'], $this );
97
-
98
- // run only is admin panel options, avoid performance loss
99
- $this->pre_tabs = $this->pre_tabs( $this->sections );
100
- $this->pre_fields = $this->pre_fields( $this->sections );
101
- $this->pre_sections = $this->pre_sections( $this->sections );
102
-
103
- $this->get_options();
104
- $this->set_options();
105
- $this->save_defaults();
106
-
107
- add_action( 'admin_menu', array( $this, 'add_admin_menu' ) );
108
- add_action( 'admin_bar_menu', array( $this, 'add_admin_bar_menu' ), $this->args['admin_bar_menu_priority'] );
109
- add_action( 'wp_ajax_csf_'. $this->unique .'_ajax_save', array( $this, 'ajax_save' ) );
110
-
111
- if ( $this->args['database'] === 'network' && ! empty( $this->args['show_in_network'] ) ) {
112
- add_action( 'network_admin_menu', array( $this, 'add_admin_menu' ) );
113
- }
114
-
115
- // wp enqeueu for typography and output css
116
- parent::__construct();
117
-
118
- }
119
-
120
- // instance
121
- public static function instance( $key, $params = array() ) {
122
- return new self( $key, $params );
123
- }
124
-
125
- public function pre_tabs( $sections ) {
126
-
127
- $result = array();
128
- $parents = array();
129
- $count = 100;
130
-
131
- foreach ( $sections as $key => $section ) {
132
- if ( ! empty( $section['parent'] ) ) {
133
- $section['priority'] = ( isset( $section['priority'] ) ) ? $section['priority'] : $count;
134
- $parents[$section['parent']][] = $section;
135
- unset( $sections[$key] );
136
- }
137
- $count++;
138
- }
139
-
140
- foreach ( $sections as $key => $section ) {
141
- $section['priority'] = ( isset( $section['priority'] ) ) ? $section['priority'] : $count;
142
- if ( ! empty( $section['id'] ) && ! empty( $parents[$section['id']] ) ) {
143
- $section['subs'] = wp_list_sort( $parents[$section['id']], array( 'priority' => 'ASC' ), 'ASC', true );
144
- }
145
- $result[] = $section;
146
- $count++;
147
- }
148
-
149
- return wp_list_sort( $result, array( 'priority' => 'ASC' ), 'ASC', true );
150
- }
151
-
152
- public function pre_fields( $sections ) {
153
-
154
- $result = array();
155
-
156
- foreach ( $sections as $key => $section ) {
157
- if ( ! empty( $section['fields'] ) ) {
158
- foreach ( $section['fields'] as $field ) {
159
- $result[] = $field;
160
- }
161
- }
162
- }
163
-
164
- return $result;
165
- }
166
-
167
- public function pre_sections( $sections ) {
168
-
169
- $result = array();
170
-
171
- foreach ( $this->pre_tabs as $tab ) {
172
- if ( ! empty( $tab['subs'] ) ) {
173
- foreach ( $tab['subs'] as $sub ) {
174
- $sub['ptitle'] = $tab['title'];
175
- $result[] = $sub;
176
- }
177
- }
178
- if ( empty( $tab['subs'] ) ) {
179
- $result[] = $tab;
180
- }
181
- }
182
-
183
- return $result;
184
- }
185
-
186
- // add admin bar menu
187
- public function add_admin_bar_menu( $wp_admin_bar ) {
188
-
189
- if ( ! current_user_can( $this->args['menu_capability'] ) ) {
190
- return;
191
- }
192
-
193
- if ( is_network_admin() && ( $this->args['database'] !== 'network' || $this->args['show_in_network'] !== true ) ) {
194
- return;
195
- }
196
-
197
- if ( ! empty( $this->args['show_bar_menu'] ) && empty( $this->args['menu_hidden'] ) ) {
198
-
199
- global $submenu;
200
-
201
- $menu_slug = $this->args['menu_slug'];
202
- $menu_icon = ( ! empty( $this->args['admin_bar_menu_icon'] ) ) ? '<span class="csf-ab-icon ab-icon '. esc_attr( $this->args['admin_bar_menu_icon'] ) .'"></span>' : '';
203
-
204
- $wp_admin_bar->add_node( array(
205
- 'id' => $menu_slug,
206
- 'title' => $menu_icon . esc_attr( $this->args['menu_title'] ),
207
- 'href' => esc_url( ( is_network_admin() ) ? network_admin_url( 'admin.php?page='. $menu_slug ) : admin_url( 'admin.php?page='. $menu_slug ) ),
208
- ) );
209
-
210
- if ( ! empty( $submenu[$menu_slug] ) ) {
211
- foreach ( $submenu[$menu_slug] as $menu_key => $menu_value ) {
212
- $wp_admin_bar->add_node( array(
213
- 'parent' => $menu_slug,
214
- 'id' => $menu_slug .'-'. $menu_key,
215
- 'title' => $menu_value[0],
216
- 'href' => esc_url( ( is_network_admin() ) ? network_admin_url( 'admin.php?page='. $menu_value[2] ) : admin_url( 'admin.php?page='. $menu_value[2] ) ),
217
- ) );
218
- }
219
- }
220
-
221
- }
222
-
223
- }
224
-
225
- public function ajax_save() {
226
-
227
- $result = $this->set_options( true );
228
-
229
- if ( ! $result ) {
230
- wp_send_json_error( array( 'error' => esc_html__( 'Error while saving the changes.', 'csf' ) ) );
231
- } else {
232
- wp_send_json_success( array( 'notice' => $this->notice, 'errors' => $this->errors ) );
233
- }
234
-
235
- }
236
-
237
- // get default value
238
- public function get_default( $field ) {
239
-
240
- $default = ( isset( $field['default'] ) ) ? $field['default'] : '';
241
- $default = ( isset( $this->args['defaults'][$field['id']] ) ) ? $this->args['defaults'][$field['id']] : $default;
242
-
243
- return $default;
244
-
245
- }
246
-
247
- // save defaults and set new fields value to main options
248
- public function save_defaults() {
249
-
250
- $tmp_options = $this->options;
251
-
252
- foreach ( $this->pre_fields as $field ) {
253
- if ( ! empty( $field['id'] ) ) {
254
- $this->options[$field['id']] = ( isset( $this->options[$field['id']] ) ) ? $this->options[$field['id']] : $this->get_default( $field );
255
- }
256
- }
257
-
258
- if ( $this->args['save_defaults'] && empty( $tmp_options ) ) {
259
- $this->save_options( $this->options );
260
- }
261
-
262
- }
263
-
264
- // set options
265
- public function set_options( $ajax = false ) {
266
-
267
- // XSS ok.
268
- // No worries, This "POST" requests is sanitizing in the below foreach. see #L337 - #L341
269
- $response = ( $ajax && ! empty( $_POST['data'] ) ) ? json_decode( wp_unslash( trim( $_POST['data'] ) ), true ) : $_POST;
270
-
271
- // Set variables.
272
- $data = array();
273
- $noncekey = 'csf_options_nonce'. $this->unique;
274
- $nonce = ( ! empty( $response[$noncekey] ) ) ? $response[$noncekey] : '';
275
- $options = ( ! empty( $response[$this->unique] ) ) ? $response[$this->unique] : array();
276
- $transient = ( ! empty( $response['csf_transient'] ) ) ? $response['csf_transient'] : array();
277
-
278
- if ( wp_verify_nonce( $nonce, 'csf_options_nonce' ) ) {
279
-
280
- $importing = false;
281
- $section_id = ( ! empty( $transient['section'] ) ) ? $transient['section'] : '';
282
-
283
- if ( ! $ajax && ! empty( $response[ 'csf_import_data' ] ) ) {
284
-
285
- // XSS ok.
286
- // No worries, This "POST" requests is sanitizing in the below foreach. see #L337 - #L341
287
- $import_data = json_decode( wp_unslash( trim( $response[ 'csf_import_data' ] ) ), true );
288
- $options = ( is_array( $import_data ) && ! empty( $import_data ) ) ? $import_data : array();
289
- $importing = true;
290
- $this->notice = esc_html__( 'Settings successfully imported.', 'csf' );
291
-
292
- }
293
-
294
- if ( ! empty( $transient['reset'] ) ) {
295
-
296
- foreach ( $this->pre_fields as $field ) {
297
- if ( ! empty( $field['id'] ) ) {
298
- $data[$field['id']] = $this->get_default( $field );
299
- }
300
- }
301
-
302
- $this->notice = esc_html__( 'Default settings restored.', 'csf' );
303
-
304
- } else if ( ! empty( $transient['reset_section'] ) && ! empty( $section_id ) ) {
305
-
306
- if ( ! empty( $this->pre_sections[$section_id-1]['fields'] ) ) {
307
-
308
- foreach ( $this->pre_sections[$section_id-1]['fields'] as $field ) {
309
- if ( ! empty( $field['id'] ) ) {
310
- $data[$field['id']] = $this->get_default( $field );
311
- }
312
- }
313
-
314
- }
315
-
316
- $data = wp_parse_args( $data, $this->options );
317
-
318
- $this->notice = esc_html__( 'Default settings restored.', 'csf' );
319
-
320
- } else {
321
-
322
- // sanitize and validate
323
- foreach ( $this->pre_fields as $field ) {
324
-
325
- if ( ! empty( $field['id'] ) ) {
326
-
327
- $field_id = $field['id'];
328
- $field_value = isset( $options[$field_id] ) ? $options[$field_id] : '';
329
-
330
- // Ajax and Importing doing wp_unslash already.
331
- if ( ! $ajax && ! $importing ) {
332
- $field_value = wp_unslash( $field_value );
333
- }
334
-
335
- // Sanitize "post" request of field.
336
- if ( ! isset( $field['sanitize'] ) ) {
337
-
338
- if( is_array( $field_value ) ) {
339
-
340
- $data[$field_id] = wp_kses_post_deep( $field_value );
341
-
342
- } else {
343
-
344
- $data[$field_id] = wp_kses_post( $field_value );
345
-
346
- }
347
-
348
- } else if( isset( $field['sanitize'] ) && is_callable( $field['sanitize'] ) ) {
349
-
350
- $data[$field_id] = call_user_func( $field['sanitize'], $field_value );
351
-
352
- } else {
353
-
354
- $data[$field_id] = $field_value;
355
-
356
- }
357
-
358
- // Validate "post" request of field.
359
- if ( isset( $field['validate'] ) && is_callable( $field['validate'] ) ) {
360
-
361
- $has_validated = call_user_func( $field['validate'], $field_value );
362
-
363
- if ( ! empty( $has_validated ) ) {
364
-
365
- $data[$field_id] = ( isset( $this->options[$field_id] ) ) ? $this->options[$field_id] : '';
366
- $this->errors[$field_id] = $has_validated;
367
-
368
- }
369
-
370
- }
371
-
372
- }
373
-
374
- }
375
-
376
- }
377
-
378
- $data = apply_filters( "csf_{$this->unique}_save", $data, $this );
379
-
380
- do_action( "csf_{$this->unique}_save_before", $data, $this );
381
-
382
- $this->options = $data;
383
-
384
- $this->save_options( $data );
385
-
386
- do_action( "csf_{$this->unique}_save_after", $data, $this );
387
-
388
- if ( empty( $this->notice ) ) {
389
- $this->notice = esc_html__( 'Settings saved.', 'csf' );
390
- }
391
-
392
- return true;
393
-
394
- }
395
-
396
- return false;
397
-
398
- }
399
-
400
- // save options database
401
- public function save_options( $data ) {
402
-
403
- if ( $this->args['database'] === 'transient' ) {
404
- set_transient( $this->unique, $data, $this->args['transient_time'] );
405
- } else if ( $this->args['database'] === 'theme_mod' ) {
406
- set_theme_mod( $this->unique, $data );
407
- } else if ( $this->args['database'] === 'network' ) {
408
- update_site_option( $this->unique, $data );
409
- } else {
410
- update_option( $this->unique, $data );
411
- }
412
-
413
- do_action( "csf_{$this->unique}_saved", $data, $this );
414
-
415
- }
416
-
417
- // get options from database
418
- public function get_options() {
419
-
420
- if ( $this->args['database'] === 'transient' ) {
421
- $this->options = get_transient( $this->unique );
422
- } else if ( $this->args['database'] === 'theme_mod' ) {
423
- $this->options = get_theme_mod( $this->unique );
424
- } else if ( $this->args['database'] === 'network' ) {
425
- $this->options = get_site_option( $this->unique );
426
- } else {
427
- $this->options = get_option( $this->unique );
428
- }
429
-
430
- if ( empty( $this->options ) ) {
431
- $this->options = array();
432
- }
433
-
434
- return $this->options;
435
-
436
- }
437
-
438
- // admin menu
439
- public function add_admin_menu() {
440
-
441
- extract( $this->args );
442
-
443
- if ( $menu_type === 'submenu' ) {
444
-
445
- $menu_page = call_user_func( 'add_submenu_page', $menu_parent, esc_attr( $menu_title ), esc_attr( $menu_title ), $menu_capability, $menu_slug, array( $this, 'add_options_html' ) );
446
-
447
- } else {
448
-
449
- $menu_page = call_user_func( 'add_menu_page', esc_attr( $menu_title ), esc_attr( $menu_title ), $menu_capability, $menu_slug, array( $this, 'add_options_html' ), $menu_icon, $menu_position );
450
-
451
- if ( ! empty( $sub_menu_title ) ) {
452
- call_user_func( 'add_submenu_page', $menu_slug, esc_attr( $sub_menu_title ), esc_attr( $sub_menu_title ), $menu_capability, $menu_slug, array( $this, 'add_options_html' ) );
453
- }
454
-
455
- if ( ! empty( $this->args['show_sub_menu'] ) && count( $this->pre_tabs ) > 1 ) {
456
-
457
- // create submenus
458
- foreach ( $this->pre_tabs as $section ) {
459
- call_user_func( 'add_submenu_page', $menu_slug, esc_attr( $section['title'] ), esc_attr( $section['title'] ), $menu_capability, $menu_slug .'#tab='. sanitize_title( $section['title'] ), '__return_null' );
460
- }
461
-
462
- remove_submenu_page( $menu_slug, $menu_slug );
463
-
464
- }
465
-
466
- if ( ! empty( $menu_hidden ) ) {
467
- remove_menu_page( $menu_slug );
468
- }
469
-
470
- }
471
-
472
- add_action( 'load-'. $menu_page, array( $this, 'add_page_on_load' ) );
473
-
474
- }
475
-
476
- public function add_page_on_load() {
477
-
478
- if ( ! empty( $this->args['contextual_help'] ) ) {
479
-
480
- $screen = get_current_screen();
481
-
482
- foreach ( $this->args['contextual_help'] as $tab ) {
483
- $screen->add_help_tab( $tab );
484
- }
485
-
486
- if ( ! empty( $this->args['contextual_help_sidebar'] ) ) {
487
- $screen->set_help_sidebar( $this->args['contextual_help_sidebar'] );
488
- }
489
-
490
- }
491
-
492
- add_filter( 'admin_footer_text', array( $this, 'add_admin_footer_text' ) );
493
-
494
- }
495
-
496
- public function add_admin_footer_text() {
497
- $default = 'Thank you for creating with <a href="http://codestarframework.com/" target="_blank">Codestar Framework</a>';
498
- echo ( ! empty( $this->args['footer_credit'] ) ) ? $this->args['footer_credit'] : $default;
499
- }
500
-
501
- public function error_check( $sections, $err = '' ) {
502
-
503
- if ( ! $this->args['ajax_save'] ) {
504
-
505
- if ( ! empty( $sections['fields'] ) ) {
506
- foreach ( $sections['fields'] as $field ) {
507
- if ( ! empty( $field['id'] ) ) {
508
- if ( array_key_exists( $field['id'], $this->errors ) ) {
509
- $err = '<span class="csf-label-error">!</span>';
510
- }
511
- }
512
- }
513
- }
514
-
515
- if ( ! empty( $sections['subs'] ) ) {
516
- foreach ( $sections['subs'] as $sub ) {
517
- $err = $this->error_check( $sub, $err );
518
- }
519
- }
520
-
521
- if ( ! empty( $sections['id'] ) && array_key_exists( $sections['id'], $this->errors ) ) {
522
- $err = $this->errors[$sections['id']];
523
- }
524
-
525
- }
526
-
527
- return $err;
528
- }
529
-
530
- // option page html output
531
- public function add_options_html() {
532
-
533
- $has_nav = ( count( $this->pre_tabs ) > 1 ) ? true : false;
534
- $show_all = ( ! $has_nav ) ? ' csf-show-all' : '';
535
- $ajax_class = ( $this->args['ajax_save'] ) ? ' csf-save-ajax' : '';
536
- $sticky_class = ( $this->args['sticky_header'] ) ? ' csf-sticky-header' : '';
537
- $wrapper_class = ( $this->args['framework_class'] ) ? ' '. $this->args['framework_class'] : '';
538
- $theme = ( $this->args['theme'] ) ? ' csf-theme-'. $this->args['theme'] : '';
539
- $class = ( $this->args['class'] ) ? ' '. $this->args['class'] : '';
540
- $nav_type = ( $this->args['nav'] === 'inline' ) ? 'inline' : 'normal';
541
- $form_action = ( $this->args['form_action'] ) ? $this->args['form_action'] : '';
542
-
543
- do_action( 'csf_options_before' );
544
-
545
- echo '<div class="csf csf-options'. esc_attr( $theme . $class . $wrapper_class ) .'" data-slug="'. esc_attr( $this->args['menu_slug'] ) .'" data-unique="'. esc_attr( $this->unique ) .'">';
546
-
547
- echo '<div class="csf-container">';
548
-
549
- echo '<form method="post" action="'. esc_attr( $form_action ) .'" enctype="multipart/form-data" id="csf-form" autocomplete="off" novalidate="novalidate">';
550
-
551
- echo '<input type="hidden" class="csf-section-id" name="csf_transient[section]" value="1">';
552
-
553
- wp_nonce_field( 'csf_options_nonce', 'csf_options_nonce'. $this->unique );
554
-
555
- echo '<div class="csf-header'. esc_attr( $sticky_class ) .'">';
556
- echo '<div class="csf-header-inner">';
557
-
558
- echo '<div class="csf-header-left">';
559
- echo '<h1>'. $this->args['framework_title'] .'</h1>';
560
- echo '</div>';
561
-
562
- echo '<div class="csf-header-right">';
563
-
564
- $notice_class = ( ! empty( $this->notice ) ) ? 'csf-form-show' : '';
565
- $notice_text = ( ! empty( $this->notice ) ) ? $this->notice : '';
566
-
567
- echo '<div class="csf-form-result csf-form-success '. esc_attr( $notice_class ) .'">'. $notice_text .'</div>';
568
-
569
- echo ( $this->args['show_form_warning'] ) ? '<div class="csf-form-result csf-form-warning">'. esc_html__( 'You have unsaved changes, save your changes!', 'csf' ) .'</div>' : '';
570
-
571
- echo ( $has_nav && $this->args['show_all_options'] ) ? '<div class="csf-expand-all" title="'. esc_html__( 'show all settings', 'csf' ) .'"><i class="fas fa-outdent"></i></div>' : '';
572
-
573
- echo ( $this->args['show_search'] ) ? '<div class="csf-search"><input type="text" name="csf-search" placeholder="'. esc_html__( 'Search...', 'csf' ) .'" autocomplete="off" /></div>' : '';
574
-
575
- echo '<div class="csf-buttons">';
576
- echo '<input type="submit" name="'. esc_attr( $this->unique ) .'[_nonce][save]" class="button button-primary csf-top-save csf-save'. esc_attr( $ajax_class ) .'" value="'. esc_html__( 'Save', 'csf' ) .'" data-save="'. esc_html__( 'Saving...', 'csf' ) .'">';
577
- echo ( $this->args['show_reset_section'] ) ? '<input type="submit" name="csf_transient[reset_section]" class="button button-secondary csf-reset-section csf-confirm" value="'. esc_html__( 'Reset Section', 'csf' ) .'" data-confirm="'. esc_html__( 'Are you sure to reset this section options?', 'csf' ) .'">' : '';
578
- echo ( $this->args['show_reset_all'] ) ? '<input type="submit" name="csf_transient[reset]" class="button csf-warning-primary csf-reset-all csf-confirm" value="'. ( ( $this->args['show_reset_section'] ) ? esc_html__( 'Reset All', 'csf' ) : esc_html__( 'Reset', 'csf' ) ) .'" data-confirm="'. esc_html__( 'Are you sure you want to reset all settings to default values?', 'csf' ) .'">' : '';
579
- echo '</div>';
580
-
581
- echo '</div>';
582
-
583
- echo '<div class="clear"></div>';
584
- echo '</div>';
585
- echo '</div>';
586
-
587
- echo '<div class="csf-wrapper'. esc_attr( $show_all ) .'">';
588
-
589
- if ( $has_nav ) {
590
-
591
- echo '<div class="csf-nav csf-nav-'. esc_attr( $nav_type ) .' csf-nav-options">';
592
-
593
- echo '<ul>';
594
-
595
- foreach ( $this->pre_tabs as $tab ) {
596
-
597
- $tab_id = sanitize_title( $tab['title'] );
598
- $tab_error = $this->error_check( $tab );
599
- $tab_icon = ( ! empty( $tab['icon'] ) ) ? '<i class="csf-tab-icon '. esc_attr( $tab['icon'] ) .'"></i>' : '';
600
-
601
- if ( ! empty( $tab['subs'] ) ) {
602
-
603
- echo '<li class="csf-tab-item">';
604
-
605
- echo '<a href="#tab='. esc_attr( $tab_id ) .'" data-tab-id="'. esc_attr( $tab_id ) .'" class="csf-arrow">'. $tab_icon . $tab['title'] . $tab_error .'</a>';
606
-
607
- echo '<ul>';
608
-
609
- foreach ( $tab['subs'] as $sub ) {
610
-
611
- $sub_id = $tab_id .'/'. sanitize_title( $sub['title'] );
612
- $sub_error = $this->error_check( $sub );
613
- $sub_icon = ( ! empty( $sub['icon'] ) ) ? '<i class="csf-tab-icon '. esc_attr( $sub['icon'] ) .'"></i>' : '';
614
-
615
- echo '<li><a href="#tab='. esc_attr( $sub_id ) .'" data-tab-id="'. esc_attr( $sub_id ) .'">'. $sub_icon . $sub['title'] . $sub_error .'</a></li>';
616
-
617
- }
618
-
619
- echo '</ul>';
620
-
621
- echo '</li>';
622
-
623
- } else {
624
-
625
- echo '<li class="csf-tab-item"><a href="#tab='. esc_attr( $tab_id ) .'" data-tab-id="'. esc_attr( $tab_id ) .'">'. $tab_icon . $tab['title'] . $tab_error .'</a></li>';
626
-
627
- }
628
-
629
- }
630
-
631
- echo '</ul>';
632
-
633
- echo '</div>';
634
-
635
- }
636
-
637
- echo '<div class="csf-content">';
638
-
639
- echo '<div class="csf-sections">';
640
-
641
- foreach ( $this->pre_sections as $section ) {
642
-
643
- $section_onload = ( ! $has_nav ) ? ' csf-onload' : '';
644
- $section_class = ( ! empty( $section['class'] ) ) ? ' '. $section['class'] : '';
645
- $section_icon = ( ! empty( $section['icon'] ) ) ? '<i class="csf-section-icon '. esc_attr( $section['icon'] ) .'"></i>' : '';
646
- $section_title = ( ! empty( $section['title'] ) ) ? $section['title'] : '';
647
- $section_parent = ( ! empty( $section['ptitle'] ) ) ? sanitize_title( $section['ptitle'] ) .'/' : '';
648
- $section_slug = ( ! empty( $section['title'] ) ) ? sanitize_title( $section_title ) : '';
649
-
650
- echo '<div class="csf-section hidden'. esc_attr( $section_onload . $section_class ) .'" data-section-id="'. esc_attr( $section_parent . $section_slug ) .'">';
651
- echo ( $has_nav ) ? '<div class="csf-section-title"><h3>'. $section_icon . $section_title .'</h3></div>' : '';
652
- echo ( ! empty( $section['description'] ) ) ? '<div class="csf-field csf-section-description">'. $section['description'] .'</div>' : '';
653
-
654
- if ( ! empty( $section['fields'] ) ) {
655
-
656
- foreach ( $section['fields'] as $field ) {
657
-
658
- $is_field_error = $this->error_check( $field );
659
-
660
- if ( ! empty( $is_field_error ) ) {
661
- $field['_error'] = $is_field_error;
662
- }
663
-
664
- if ( ! empty( $field['id'] ) ) {
665
- $field['default'] = $this->get_default( $field );
666
- }
667
-
668
- $value = ( ! empty( $field['id'] ) && isset( $this->options[$field['id']] ) ) ? $this->options[$field['id']] : '';
669
-
670
- CSF::field( $field, $value, $this->unique, 'options' );
671
-
672
- }
673
-
674
- } else {
675
-
676
- echo '<div class="csf-no-option">'. esc_html__( 'No data available.', 'csf' ) .'</div>';
677
-
678
- }
679
-
680
- echo '</div>';
681
-
682
- }
683
-
684
- echo '</div>';
685
-
686
- echo '<div class="clear"></div>';
687
-
688
- echo '</div>';
689
-
690
- echo ( $has_nav && $nav_type === 'normal' ) ? '<div class="csf-nav-background"></div>' : '';
691
-
692
- echo '</div>';
693
-
694
- if ( ! empty( $this->args['show_footer'] ) ) {
695
-
696
- echo '<div class="csf-footer">';
697
-
698
- echo '<div class="csf-buttons">';
699
- echo '<input type="submit" name="csf_transient[save]" class="button button-primary csf-save'. esc_attr( $ajax_class ) .'" value="'. esc_html__( 'Save', 'csf' ) .'" data-save="'. esc_html__( 'Saving...', 'csf' ) .'">';
700
- echo ( $this->args['show_reset_section'] ) ? '<input type="submit" name="csf_transient[reset_section]" class="button button-secondary csf-reset-section csf-confirm" value="'. esc_html__( 'Reset Section', 'csf' ) .'" data-confirm="'. esc_html__( 'Are you sure to reset this section options?', 'csf' ) .'">' : '';
701
- echo ( $this->args['show_reset_all'] ) ? '<input type="submit" name="csf_transient[reset]" class="button csf-warning-primary csf-reset-all csf-confirm" value="'. ( ( $this->args['show_reset_section'] ) ? esc_html__( 'Reset All', 'csf' ) : esc_html__( 'Reset', 'csf' ) ) .'" data-confirm="'. esc_html__( 'Are you sure you want to reset all settings to default values?', 'csf' ) .'">' : '';
702
- echo '</div>';
703
-
704
- echo ( ! empty( $this->args['footer_text'] ) ) ? '<div class="csf-copyright">'. $this->args['footer_text'] .'</div>' : '';
705
-
706
- echo '<div class="clear"></div>';
707
- echo '</div>';
708
-
709
- }
710
-
711
- echo '</form>';
712
-
713
- echo '</div>';
714
-
715
- echo '<div class="clear"></div>';
716
-
717
- echo ( ! empty( $this->args['footer_after'] ) ) ? $this->args['footer_after'] : '';
718
-
719
- echo '</div>';
720
-
721
- do_action( 'csf_options_after' );
722
-
723
- }
724
- }
725
- }
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Options Class
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if ( ! class_exists( 'CSF_Options' ) ) {
11
+ class CSF_Options extends CSF_Abstract {
12
+
13
+ // constans
14
+ public $unique = '';
15
+ public $notice = '';
16
+ public $abstract = 'options';
17
+ public $sections = array();
18
+ public $options = array();
19
+ public $errors = array();
20
+ public $pre_tabs = array();
21
+ public $pre_fields = array();
22
+ public $pre_sections = array();
23
+ public $args = array(
24
+
25
+ // framework title
26
+ 'framework_title' => 'Codestar Framework <small>by Codestar</small>',
27
+ 'framework_class' => '',
28
+
29
+ // menu settings
30
+ 'menu_title' => '',
31
+ 'menu_slug' => '',
32
+ 'menu_type' => 'menu',
33
+ 'menu_capability' => 'manage_options',
34
+ 'menu_icon' => null,
35
+ 'menu_position' => null,
36
+ 'menu_hidden' => false,
37
+ 'menu_parent' => '',
38
+ 'sub_menu_title' => '',
39
+
40
+ // menu extras
41
+ 'show_bar_menu' => true,
42
+ 'show_sub_menu' => true,
43
+ 'show_in_network' => true,
44
+ 'show_in_customizer' => false,
45
+
46
+ 'show_search' => true,
47
+ 'show_reset_all' => true,
48
+ 'show_reset_section' => true,
49
+ 'show_footer' => true,
50
+ 'show_all_options' => true,
51
+ 'show_form_warning' => true,
52
+ 'sticky_header' => true,
53
+ 'save_defaults' => true,
54
+ 'ajax_save' => true,
55
+ 'form_action' => '',
56
+
57
+ // admin bar menu settings
58
+ 'admin_bar_menu_icon' => '',
59
+ 'admin_bar_menu_priority' => 50,
60
+
61
+ // footer
62
+ 'footer_text' => '',
63
+ 'footer_after' => '',
64
+ 'footer_credit' => '',
65
+
66
+ // database model
67
+ 'database' => '', // options, transient, theme_mod, network
68
+ 'transient_time' => 0,
69
+
70
+ // contextual help
71
+ 'contextual_help' => array(),
72
+ 'contextual_help_sidebar' => '',
73
+
74
+ // typography options
75
+ 'enqueue_webfont' => true,
76
+ 'async_webfont' => false,
77
+
78
+ // others
79
+ 'output_css' => true,
80
+
81
+ // theme
82
+ 'nav' => 'normal',
83
+ 'theme' => 'dark',
84
+ 'class' => '',
85
+
86
+ // external default values
87
+ 'defaults' => array(),
88
+
89
+ );
90
+
91
+ // run framework construct
92
+ public function __construct( $key, $params = array() ) {
93
+
94
+ $this->unique = $key;
95
+ $this->args = apply_filters( "csf_{$this->unique}_args", wp_parse_args( $params['args'], $this->args ), $this );
96
+ $this->sections = apply_filters( "csf_{$this->unique}_sections", $params['sections'], $this );
97
+
98
+ // run only is admin panel options, avoid performance loss
99
+ $this->pre_tabs = $this->pre_tabs( $this->sections );
100
+ $this->pre_fields = $this->pre_fields( $this->sections );
101
+ $this->pre_sections = $this->pre_sections( $this->sections );
102
+
103
+ $this->get_options();
104
+ $this->set_options();
105
+ $this->save_defaults();
106
+
107
+ add_action( 'admin_menu', array( $this, 'add_admin_menu' ) );
108
+ add_action( 'admin_bar_menu', array( $this, 'add_admin_bar_menu' ), $this->args['admin_bar_menu_priority'] );
109
+ add_action( 'wp_ajax_csf_'. $this->unique .'_ajax_save', array( $this, 'ajax_save' ) );
110
+
111
+ if ( $this->args['database'] === 'network' && ! empty( $this->args['show_in_network'] ) ) {
112
+ add_action( 'network_admin_menu', array( $this, 'add_admin_menu' ) );
113
+ }
114
+
115
+ // wp enqeueu for typography and output css
116
+ parent::__construct();
117
+
118
+ }
119
+
120
+ // instance
121
+ public static function instance( $key, $params = array() ) {
122
+ return new self( $key, $params );
123
+ }
124
+
125
+ public function pre_tabs( $sections ) {
126
+
127
+ $result = array();
128
+ $parents = array();
129
+ $count = 100;
130
+
131
+ foreach ( $sections as $key => $section ) {
132
+ if ( ! empty( $section['parent'] ) ) {
133
+ $section['priority'] = ( isset( $section['priority'] ) ) ? $section['priority'] : $count;
134
+ $parents[$section['parent']][] = $section;
135
+ unset( $sections[$key] );
136
+ }
137
+ $count++;
138
+ }
139
+
140
+ foreach ( $sections as $key => $section ) {
141
+ $section['priority'] = ( isset( $section['priority'] ) ) ? $section['priority'] : $count;
142
+ if ( ! empty( $section['id'] ) && ! empty( $parents[$section['id']] ) ) {
143
+ $section['subs'] = wp_list_sort( $parents[$section['id']], array( 'priority' => 'ASC' ), 'ASC', true );
144
+ }
145
+ $result[] = $section;
146
+ $count++;
147
+ }
148
+
149
+ return wp_list_sort( $result, array( 'priority' => 'ASC' ), 'ASC', true );
150
+ }
151
+
152
+ public function pre_fields( $sections ) {
153
+
154
+ $result = array();
155
+
156
+ foreach ( $sections as $key => $section ) {
157
+ if ( ! empty( $section['fields'] ) ) {
158
+ foreach ( $section['fields'] as $field ) {
159
+ $result[] = $field;
160
+ }
161
+ }
162
+ }
163
+
164
+ return $result;
165
+ }
166
+
167
+ public function pre_sections( $sections ) {
168
+
169
+ $result = array();
170
+
171
+ foreach ( $this->pre_tabs as $tab ) {
172
+ if ( ! empty( $tab['subs'] ) ) {
173
+ foreach ( $tab['subs'] as $sub ) {
174
+ $sub['ptitle'] = $tab['title'];
175
+ $result[] = $sub;
176
+ }
177
+ }
178
+ if ( empty( $tab['subs'] ) ) {
179
+ $result[] = $tab;
180
+ }
181
+ }
182
+
183
+ return $result;
184
+ }
185
+
186
+ // add admin bar menu
187
+ public function add_admin_bar_menu( $wp_admin_bar ) {
188
+
189
+ if ( ! current_user_can( $this->args['menu_capability'] ) ) {
190
+ return;
191
+ }
192
+
193
+ if ( is_network_admin() && ( $this->args['database'] !== 'network' || $this->args['show_in_network'] !== true ) ) {
194
+ return;
195
+ }
196
+
197
+ if ( ! empty( $this->args['show_bar_menu'] ) && empty( $this->args['menu_hidden'] ) ) {
198
+
199
+ global $submenu;
200
+
201
+ $menu_slug = $this->args['menu_slug'];
202
+ $menu_icon = ( ! empty( $this->args['admin_bar_menu_icon'] ) ) ? '<span class="csf-ab-icon ab-icon '. esc_attr( $this->args['admin_bar_menu_icon'] ) .'"></span>' : '';
203
+
204
+ $wp_admin_bar->add_node( array(
205
+ 'id' => $menu_slug,
206
+ 'title' => $menu_icon . esc_attr( $this->args['menu_title'] ),
207
+ 'href' => esc_url( ( is_network_admin() ) ? network_admin_url( 'admin.php?page='. $menu_slug ) : admin_url( 'admin.php?page='. $menu_slug ) ),
208
+ ) );
209
+
210
+ if ( ! empty( $submenu[$menu_slug] ) ) {
211
+ foreach ( $submenu[$menu_slug] as $menu_key => $menu_value ) {
212
+ $wp_admin_bar->add_node( array(
213
+ 'parent' => $menu_slug,
214
+ 'id' => $menu_slug .'-'. $menu_key,
215
+ 'title' => $menu_value[0],
216
+ 'href' => esc_url( ( is_network_admin() ) ? network_admin_url( 'admin.php?page='. $menu_value[2] ) : admin_url( 'admin.php?page='. $menu_value[2] ) ),
217
+ ) );
218
+ }
219
+ }
220
+
221
+ }
222
+
223
+ }
224
+
225
+ public function ajax_save() {
226
+
227
+ $result = $this->set_options( true );
228
+
229
+ if ( ! $result ) {
230
+ wp_send_json_error( array( 'error' => esc_html__( 'Error while saving the changes.', 'csf' ) ) );
231
+ } else {
232
+ wp_send_json_success( array( 'notice' => $this->notice, 'errors' => $this->errors ) );
233
+ }
234
+
235
+ }
236
+
237
+ // get default value
238
+ public function get_default( $field ) {
239
+
240
+ $default = ( isset( $field['default'] ) ) ? $field['default'] : '';
241
+ $default = ( isset( $this->args['defaults'][$field['id']] ) ) ? $this->args['defaults'][$field['id']] : $default;
242
+
243
+ return $default;
244
+
245
+ }
246
+
247
+ // save defaults and set new fields value to main options
248
+ public function save_defaults() {
249
+
250
+ $tmp_options = $this->options;
251
+
252
+ foreach ( $this->pre_fields as $field ) {
253
+ if ( ! empty( $field['id'] ) ) {
254
+ $this->options[$field['id']] = ( isset( $this->options[$field['id']] ) ) ? $this->options[$field['id']] : $this->get_default( $field );
255
+ }
256
+ }
257
+
258
+ if ( $this->args['save_defaults'] && empty( $tmp_options ) ) {
259
+ $this->save_options( $this->options );
260
+ }
261
+
262
+ }
263
+
264
+ // set options
265
+ public function set_options( $ajax = false ) {
266
+
267
+ // XSS ok.
268
+ // No worries, This "POST" requests is sanitizing in the below foreach. see #L337 - #L341
269
+ $response = ( $ajax && ! empty( $_POST['data'] ) ) ? json_decode( wp_unslash( trim( $_POST['data'] ) ), true ) : $_POST;
270
+
271
+ // Set variables.
272
+ $data = array();
273
+ $noncekey = 'csf_options_nonce'. $this->unique;
274
+ $nonce = ( ! empty( $response[$noncekey] ) ) ? $response[$noncekey] : '';
275
+ $options = ( ! empty( $response[$this->unique] ) ) ? $response[$this->unique] : array();
276
+ $transient = ( ! empty( $response['csf_transient'] ) ) ? $response['csf_transient'] : array();
277
+
278
+ if ( wp_verify_nonce( $nonce, 'csf_options_nonce' ) ) {
279
+
280
+ $importing = false;
281
+ $section_id = ( ! empty( $transient['section'] ) ) ? $transient['section'] : '';
282
+
283
+ if ( ! $ajax && ! empty( $response[ 'csf_import_data' ] ) ) {
284
+
285
+ // XSS ok.
286
+ // No worries, This "POST" requests is sanitizing in the below foreach. see #L337 - #L341
287
+ $import_data = json_decode( wp_unslash( trim( $response[ 'csf_import_data' ] ) ), true );
288
+ $options = ( is_array( $import_data ) && ! empty( $import_data ) ) ? $import_data : array();
289
+ $importing = true;
290
+ $this->notice = esc_html__( 'Settings successfully imported.', 'csf' );
291
+
292
+ }
293
+
294
+ if ( ! empty( $transient['reset'] ) ) {
295
+
296
+ foreach ( $this->pre_fields as $field ) {
297
+ if ( ! empty( $field['id'] ) ) {
298
+ $data[$field['id']] = $this->get_default( $field );
299
+ }
300
+ }
301
+
302
+ $this->notice = esc_html__( 'Default settings restored.', 'csf' );
303
+
304
+ } else if ( ! empty( $transient['reset_section'] ) && ! empty( $section_id ) ) {
305
+
306
+ if ( ! empty( $this->pre_sections[$section_id-1]['fields'] ) ) {
307
+
308
+ foreach ( $this->pre_sections[$section_id-1]['fields'] as $field ) {
309
+ if ( ! empty( $field['id'] ) ) {
310
+ $data[$field['id']] = $this->get_default( $field );
311
+ }
312
+ }
313
+
314
+ }
315
+
316
+ $data = wp_parse_args( $data, $this->options );
317
+
318
+ $this->notice = esc_html__( 'Default settings restored.', 'csf' );
319
+
320
+ } else {
321
+
322
+ // sanitize and validate
323
+ foreach ( $this->pre_fields as $field ) {
324
+
325
+ if ( ! empty( $field['id'] ) ) {
326
+
327
+ $field_id = $field['id'];
328
+ $field_value = isset( $options[$field_id] ) ? $options[$field_id] : '';
329
+
330
+ // Ajax and Importing doing wp_unslash already.
331
+ if ( ! $ajax && ! $importing ) {
332
+ $field_value = wp_unslash( $field_value );
333
+ }
334
+
335
+ // Sanitize "post" request of field.
336
+ if ( ! isset( $field['sanitize'] ) ) {
337
+
338
+ if( is_array( $field_value ) ) {
339
+
340
+ $data[$field_id] = wp_kses_post_deep( $field_value );
341
+
342
+ } else {
343
+
344
+ $data[$field_id] = wp_kses_post( $field_value );
345
+
346
+ }
347
+
348
+ } else if( isset( $field['sanitize'] ) && is_callable( $field['sanitize'] ) ) {
349
+
350
+ $data[$field_id] = call_user_func( $field['sanitize'], $field_value );
351
+
352
+ } else {
353
+
354
+ $data[$field_id] = $field_value;
355
+
356
+ }
357
+
358
+ // Validate "post" request of field.
359
+ if ( isset( $field['validate'] ) && is_callable( $field['validate'] ) ) {
360
+
361
+ $has_validated = call_user_func( $field['validate'], $field_value );
362
+
363
+ if ( ! empty( $has_validated ) ) {
364
+
365
+ $data[$field_id] = ( isset( $this->options[$field_id] ) ) ? $this->options[$field_id] : '';
366
+ $this->errors[$field_id] = $has_validated;
367
+
368
+ }
369
+
370
+ }
371
+
372
+ }
373
+
374
+ }
375
+
376
+ }
377
+
378
+ $data = apply_filters( "csf_{$this->unique}_save", $data, $this );
379
+
380
+ do_action( "csf_{$this->unique}_save_before", $data, $this );
381
+
382
+ $this->options = $data;
383
+
384
+ $this->save_options( $data );
385
+
386
+ do_action( "csf_{$this->unique}_save_after", $data, $this );
387
+
388
+ if ( empty( $this->notice ) ) {
389
+ $this->notice = esc_html__( 'Settings saved.', 'csf' );
390
+ }
391
+
392
+ return true;
393
+
394
+ }
395
+
396
+ return false;
397
+
398
+ }
399
+
400
+ // save options database
401
+ public function save_options( $data ) {
402
+
403
+ if ( $this->args['database'] === 'transient' ) {
404
+ set_transient( $this->unique, $data, $this->args['transient_time'] );
405
+ } else if ( $this->args['database'] === 'theme_mod' ) {
406
+ set_theme_mod( $this->unique, $data );
407
+ } else if ( $this->args['database'] === 'network' ) {
408
+ update_site_option( $this->unique, $data );
409
+ } else {
410
+ update_option( $this->unique, $data );
411
+ }
412
+
413
+ do_action( "csf_{$this->unique}_saved", $data, $this );
414
+
415
+ }
416
+
417
+ // get options from database
418
+ public function get_options() {
419
+
420
+ if ( $this->args['database'] === 'transient' ) {
421
+ $this->options = get_transient( $this->unique );
422
+ } else if ( $this->args['database'] === 'theme_mod' ) {
423
+ $this->options = get_theme_mod( $this->unique );
424
+ } else if ( $this->args['database'] === 'network' ) {
425
+ $this->options = get_site_option( $this->unique );
426
+ } else {
427
+ $this->options = get_option( $this->unique );
428
+ }
429
+
430
+ if ( empty( $this->options ) ) {
431
+ $this->options = array();
432
+ }
433
+
434
+ return $this->options;
435
+
436
+ }
437
+
438
+ // admin menu
439
+ public function add_admin_menu() {
440
+
441
+ extract( $this->args );
442
+
443
+ if ( $menu_type === 'submenu' ) {
444
+
445
+ $menu_page = call_user_func( 'add_submenu_page', $menu_parent, esc_attr( $menu_title ), esc_attr( $menu_title ), $menu_capability, $menu_slug, array( $this, 'add_options_html' ) );
446
+
447
+ } else {
448
+
449
+ $menu_page = call_user_func( 'add_menu_page', esc_attr( $menu_title ), esc_attr( $menu_title ), $menu_capability, $menu_slug, array( $this, 'add_options_html' ), $menu_icon, $menu_position );
450
+
451
+ if ( ! empty( $sub_menu_title ) ) {
452
+ call_user_func( 'add_submenu_page', $menu_slug, esc_attr( $sub_menu_title ), esc_attr( $sub_menu_title ), $menu_capability, $menu_slug, array( $this, 'add_options_html' ) );
453
+ }
454
+
455
+ if ( ! empty( $this->args['show_sub_menu'] ) && count( $this->pre_tabs ) > 1 ) {
456
+
457
+ // create submenus
458
+ foreach ( $this->pre_tabs as $section ) {
459
+ call_user_func( 'add_submenu_page', $menu_slug, esc_attr( $section['title'] ), esc_attr( $section['title'] ), $menu_capability, $menu_slug .'#tab='. sanitize_title( $section['title'] ), '__return_null' );
460
+ }
461
+
462
+ remove_submenu_page( $menu_slug, $menu_slug );
463
+
464
+ }
465
+
466
+ if ( ! empty( $menu_hidden ) ) {
467
+ remove_menu_page( $menu_slug );
468
+ }
469
+
470
+ }
471
+
472
+ add_action( 'load-'. $menu_page, array( $this, 'add_page_on_load' ) );
473
+
474
+ }
475
+
476
+ public function add_page_on_load() {
477
+
478
+ if ( ! empty( $this->args['contextual_help'] ) ) {
479
+
480
+ $screen = get_current_screen();
481
+
482
+ foreach ( $this->args['contextual_help'] as $tab ) {
483
+ $screen->add_help_tab( $tab );
484
+ }
485
+
486
+ if ( ! empty( $this->args['contextual_help_sidebar'] ) ) {
487
+ $screen->set_help_sidebar( $this->args['contextual_help_sidebar'] );
488
+ }
489
+
490
+ }
491
+
492
+ add_filter( 'admin_footer_text', array( $this, 'add_admin_footer_text' ) );
493
+
494
+ }
495
+
496
+ public function add_admin_footer_text() {
497
+ $default = 'Thank you for creating with <a href="http://codestarframework.com/" target="_blank">Codestar Framework</a>';
498
+ echo ( ! empty( $this->args['footer_credit'] ) ) ? $this->args['footer_credit'] : $default;
499
+ }
500
+
501
+ public function error_check( $sections, $err = '' ) {
502
+
503
+ if ( ! $this->args['ajax_save'] ) {
504
+
505
+ if ( ! empty( $sections['fields'] ) ) {
506
+ foreach ( $sections['fields'] as $field ) {
507
+ if ( ! empty( $field['id'] ) ) {
508
+ if ( array_key_exists( $field['id'], $this->errors ) ) {
509
+ $err = '<span class="csf-label-error">!</span>';
510
+ }
511
+ }
512
+ }
513
+ }
514
+
515
+ if ( ! empty( $sections['subs'] ) ) {
516
+ foreach ( $sections['subs'] as $sub ) {
517
+ $err = $this->error_check( $sub, $err );
518
+ }
519
+ }
520
+
521
+ if ( ! empty( $sections['id'] ) && array_key_exists( $sections['id'], $this->errors ) ) {
522
+ $err = $this->errors[$sections['id']];
523
+ }
524
+
525
+ }
526
+
527
+ return $err;
528
+ }
529
+
530
+ // option page html output
531
+ public function add_options_html() {
532
+
533
+ $has_nav = ( count( $this->pre_tabs ) > 1 ) ? true : false;
534
+ $show_all = ( ! $has_nav ) ? ' csf-show-all' : '';
535
+ $ajax_class = ( $this->args['ajax_save'] ) ? ' csf-save-ajax' : '';
536
+ $sticky_class = ( $this->args['sticky_header'] ) ? ' csf-sticky-header' : '';
537
+ $wrapper_class = ( $this->args['framework_class'] ) ? ' '. $this->args['framework_class'] : '';
538
+ $theme = ( $this->args['theme'] ) ? ' csf-theme-'. $this->args['theme'] : '';
539
+ $class = ( $this->args['class'] ) ? ' '. $this->args['class'] : '';
540
+ $nav_type = ( $this->args['nav'] === 'inline' ) ? 'inline' : 'normal';
541
+ $form_action = ( $this->args['form_action'] ) ? $this->args['form_action'] : '';
542
+
543
+ do_action( 'csf_options_before' );
544
+
545
+ echo '<div class="csf csf-options'. esc_attr( $theme . $class . $wrapper_class ) .'" data-slug="'. esc_attr( $this->args['menu_slug'] ) .'" data-unique="'. esc_attr( $this->unique ) .'">';
546
+
547
+ echo '<div class="csf-container">';
548
+
549
+ echo '<form method="post" action="'. esc_attr( $form_action ) .'" enctype="multipart/form-data" id="csf-form" autocomplete="off" novalidate="novalidate">';
550
+
551
+ echo '<input type="hidden" class="csf-section-id" name="csf_transient[section]" value="1">';
552
+
553
+ wp_nonce_field( 'csf_options_nonce', 'csf_options_nonce'. $this->unique );
554
+
555
+ echo '<div class="csf-header'. esc_attr( $sticky_class ) .'">';
556
+ echo '<div class="csf-header-inner">';
557
+
558
+ echo '<div class="csf-header-left">';
559
+ echo '<h1>'. $this->args['framework_title'] .'</h1>';
560
+ echo '</div>';
561
+
562
+ echo '<div class="csf-header-right">';
563
+
564
+ $notice_class = ( ! empty( $this->notice ) ) ? 'csf-form-show' : '';
565
+ $notice_text = ( ! empty( $this->notice ) ) ? $this->notice : '';
566
+
567
+ echo '<div class="csf-form-result csf-form-success '. esc_attr( $notice_class ) .'">'. $notice_text .'</div>';
568
+
569
+ echo ( $this->args['show_form_warning'] ) ? '<div class="csf-form-result csf-form-warning">'. esc_html__( 'You have unsaved changes, save your changes!', 'csf' ) .'</div>' : '';
570
+
571
+ echo ( $has_nav && $this->args['show_all_options'] ) ? '<div class="csf-expand-all" title="'. esc_html__( 'show all settings', 'csf' ) .'"><i class="fas fa-outdent"></i></div>' : '';
572
+
573
+ echo ( $this->args['show_search'] ) ? '<div class="csf-search"><input type="text" name="csf-search" placeholder="'. esc_html__( 'Search...', 'csf' ) .'" autocomplete="off" /></div>' : '';
574
+
575
+ echo '<div class="csf-buttons">';
576
+ echo '<input type="submit" name="'. esc_attr( $this->unique ) .'[_nonce][save]" class="button button-primary csf-top-save csf-save'. esc_attr( $ajax_class ) .'" value="'. esc_html__( 'Save', 'csf' ) .'" data-save="'. esc_html__( 'Saving...', 'csf' ) .'">';
577
+ echo ( $this->args['show_reset_section'] ) ? '<input type="submit" name="csf_transient[reset_section]" class="button button-secondary csf-reset-section csf-confirm" value="'. esc_html__( 'Reset Section', 'csf' ) .'" data-confirm="'. esc_html__( 'Are you sure to reset this section options?', 'csf' ) .'">' : '';
578
+ echo ( $this->args['show_reset_all'] ) ? '<input type="submit" name="csf_transient[reset]" class="button csf-warning-primary csf-reset-all csf-confirm" value="'. ( ( $this->args['show_reset_section'] ) ? esc_html__( 'Reset All', 'csf' ) : esc_html__( 'Reset', 'csf' ) ) .'" data-confirm="'. esc_html__( 'Are you sure you want to reset all settings to default values?', 'csf' ) .'">' : '';
579
+ echo '</div>';
580
+
581
+ echo '</div>';
582
+
583
+ echo '<div class="clear"></div>';
584
+ echo '</div>';
585
+ echo '</div>';
586
+
587
+ echo '<div class="csf-wrapper'. esc_attr( $show_all ) .'">';
588
+
589
+ if ( $has_nav ) {
590
+
591
+ echo '<div class="csf-nav csf-nav-'. esc_attr( $nav_type ) .' csf-nav-options">';
592
+
593
+ echo '<ul>';
594
+
595
+ foreach ( $this->pre_tabs as $tab ) {
596
+
597
+ $tab_id = sanitize_title( $tab['title'] );
598
+ $tab_error = $this->error_check( $tab );
599
+ $tab_icon = ( ! empty( $tab['icon'] ) ) ? '<i class="csf-tab-icon '. esc_attr( $tab['icon'] ) .'"></i>' : '';
600
+
601
+ if ( ! empty( $tab['subs'] ) ) {
602
+
603
+ echo '<li class="csf-tab-item">';
604
+
605
+ echo '<a href="#tab='. esc_attr( $tab_id ) .'" data-tab-id="'. esc_attr( $tab_id ) .'" class="csf-arrow">'. $tab_icon . $tab['title'] . $tab_error .'</a>';
606
+
607
+ echo '<ul>';
608
+
609
+ foreach ( $tab['subs'] as $sub ) {
610
+
611
+ $sub_id = $tab_id .'/'. sanitize_title( $sub['title'] );
612
+ $sub_error = $this->error_check( $sub );
613
+ $sub_icon = ( ! empty( $sub['icon'] ) ) ? '<i class="csf-tab-icon '. esc_attr( $sub['icon'] ) .'"></i>' : '';
614
+
615
+ echo '<li><a href="#tab='. esc_attr( $sub_id ) .'" data-tab-id="'. esc_attr( $sub_id ) .'">'. $sub_icon . $sub['title'] . $sub_error .'</a></li>';
616
+
617
+ }
618
+
619
+ echo '</ul>';
620
+
621
+ echo '</li>';
622
+
623
+ } else {
624
+
625
+ echo '<li class="csf-tab-item"><a href="#tab='. esc_attr( $tab_id ) .'" data-tab-id="'. esc_attr( $tab_id ) .'">'. $tab_icon . $tab['title'] . $tab_error .'</a></li>';
626
+
627
+ }
628
+
629
+ }
630
+
631
+ echo '</ul>';
632
+
633
+ echo '</div>';
634
+
635
+ }
636
+
637
+ echo '<div class="csf-content">';
638
+
639
+ echo '<div class="csf-sections">';
640
+
641
+ foreach ( $this->pre_sections as $section ) {
642
+
643
+ $section_onload = ( ! $has_nav ) ? ' csf-onload' : '';
644
+ $section_class = ( ! empty( $section['class'] ) ) ? ' '. $section['class'] : '';
645
+ $section_icon = ( ! empty( $section['icon'] ) ) ? '<i class="csf-section-icon '. esc_attr( $section['icon'] ) .'"></i>' : '';
646
+ $section_title = ( ! empty( $section['title'] ) ) ? $section['title'] : '';
647
+ $section_parent = ( ! empty( $section['ptitle'] ) ) ? sanitize_title( $section['ptitle'] ) .'/' : '';
648
+ $section_slug = ( ! empty( $section['title'] ) ) ? sanitize_title( $section_title ) : '';
649
+
650
+ echo '<div class="csf-section hidden'. esc_attr( $section_onload . $section_class ) .'" data-section-id="'. esc_attr( $section_parent . $section_slug ) .'">';
651
+ echo ( $has_nav ) ? '<div class="csf-section-title"><h3>'. $section_icon . $section_title .'</h3></div>' : '';
652
+ echo ( ! empty( $section['description'] ) ) ? '<div class="csf-field csf-section-description">'. $section['description'] .'</div>' : '';
653
+
654
+ if ( ! empty( $section['fields'] ) ) {
655
+
656
+ foreach ( $section['fields'] as $field ) {
657
+
658
+ $is_field_error = $this->error_check( $field );
659
+
660
+ if ( ! empty( $is_field_error ) ) {
661
+ $field['_error'] = $is_field_error;
662
+ }
663
+
664
+ if ( ! empty( $field['id'] ) ) {
665
+ $field['default'] = $this->get_default( $field );
666
+ }
667
+
668
+ $value = ( ! empty( $field['id'] ) && isset( $this->options[$field['id']] ) ) ? $this->options[$field['id']] : '';
669
+
670
+ CSF::field( $field, $value, $this->unique, 'options' );
671
+
672
+ }
673
+
674
+ } else {
675
+
676
+ echo '<div class="csf-no-option">'. esc_html__( 'No data available.', 'csf' ) .'</div>';
677
+
678
+ }
679
+
680
+ echo '</div>';
681
+
682
+ }
683
+
684
+ echo '</div>';
685
+
686
+ echo '<div class="clear"></div>';
687
+
688
+ echo '</div>';
689
+
690
+ echo ( $has_nav && $nav_type === 'normal' ) ? '<div class="csf-nav-background"></div>' : '';
691
+
692
+ echo '</div>';
693
+
694
+ if ( ! empty( $this->args['show_footer'] ) ) {
695
+
696
+ echo '<div class="csf-footer">';
697
+
698
+ echo '<div class="csf-buttons">';
699
+ echo '<input type="submit" name="csf_transient[save]" class="button button-primary csf-save'. esc_attr( $ajax_class ) .'" value="'. esc_html__( 'Save', 'csf' ) .'" data-save="'. esc_html__( 'Saving...', 'csf' ) .'">';
700
+ echo ( $this->args['show_reset_section'] ) ? '<input type="submit" name="csf_transient[reset_section]" class="button button-secondary csf-reset-section csf-confirm" value="'. esc_html__( 'Reset Section', 'csf' ) .'" data-confirm="'. esc_html__( 'Are you sure to reset this section options?', 'csf' ) .'">' : '';
701
+ echo ( $this->args['show_reset_all'] ) ? '<input type="submit" name="csf_transient[reset]" class="button csf-warning-primary csf-reset-all csf-confirm" value="'. ( ( $this->args['show_reset_section'] ) ? esc_html__( 'Reset All', 'csf' ) : esc_html__( 'Reset', 'csf' ) ) .'" data-confirm="'. esc_html__( 'Are you sure you want to reset all settings to default values?', 'csf' ) .'">' : '';
702
+ echo '</div>';
703
+
704
+ echo ( ! empty( $this->args['footer_text'] ) ) ? '<div class="csf-copyright">'. $this->args['footer_text'] .'</div>' : '';
705
+
706
+ echo '<div class="clear"></div>';
707
+ echo '</div>';
708
+
709
+ }
710
+
711
+ echo '</form>';
712
+
713
+ echo '</div>';
714
+
715
+ echo '<div class="clear"></div>';
716
+
717
+ echo ( ! empty( $this->args['footer_after'] ) ) ? $this->args['footer_after'] : '';
718
+
719
+ echo '</div>';
720
+
721
+ do_action( 'csf_options_after' );
722
+
723
+ }
724
+ }
725
+ }
vendor/codestar-framework/classes/comment-options.class.php CHANGED
@@ -1,347 +1,347 @@
1
- <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
- /**
3
- *
4
- * Comment Metabox Class
5
- *
6
- * @since 1.0.0
7
- * @version 1.0.0
8
- *
9
- */
10
- if ( ! class_exists( 'CSF_Comment_Metabox' ) ) {
11
- class CSF_Comment_Metabox extends CSF_Abstract{
12
-
13
- // constans
14
- public $unique = '';
15
- public $abstract = 'comment_metabox';
16
- public $pre_fields = array();
17
- public $sections = array();
18
- public $args = array(
19
- 'title' => '',
20
- 'data_type' => 'serialize',
21
- 'priority' => 'default',
22
- 'show_reset' => false,
23
- 'show_restore' => false,
24
- 'nav' => 'normal',
25
- 'theme' => 'dark',
26
- 'class' => '',
27
- 'defaults' => array(),
28
- );
29
-
30
- // run comment metabox construct
31
- public function __construct( $key, $params = array() ) {
32
-
33
- $this->unique = $key;
34
- $this->args = apply_filters( "csf_{$this->unique}_args", wp_parse_args( $params['args'], $this->args ), $this );
35
- $this->sections = apply_filters( "csf_{$this->unique}_sections", $params['sections'], $this );
36
- $this->pre_fields = $this->pre_fields( $this->sections );
37
-
38
- add_action( 'add_meta_boxes_comment', array( $this, 'add_comment_meta_box' ) );
39
- add_action( 'edit_comment', array( $this, 'save_comment_meta_box' ) );
40
-
41
- if ( ! empty( $this->args['class'] ) ) {
42
- add_filter( 'postbox_classes_comment_'. $this->unique, array( $this, 'add_comment_metabox_classes' ) );
43
- }
44
-
45
- }
46
-
47
- // instance
48
- public static function instance( $key, $params = array() ) {
49
- return new self( $key, $params );
50
- }
51
-
52
- public function pre_fields( $sections ) {
53
-
54
- $result = array();
55
-
56
- foreach ( $sections as $key => $section ) {
57
- if ( ! empty( $section['fields'] ) ) {
58
- foreach ( $section['fields'] as $field ) {
59
- $result[] = $field;
60
- }
61
- }
62
- }
63
-
64
- return $result;
65
- }
66
-
67
- public function add_comment_metabox_classes( $classes ) {
68
-
69
- if ( ! empty( $this->args['class'] ) ) {
70
- $classes[] = $this->args['class'];
71
- }
72
-
73
- return $classes;
74
-
75
- }
76
-
77
- // add comment metabox
78
- public function add_comment_meta_box( $post_type ) {
79
-
80
- add_meta_box( $this->unique, $this->args['title'], array( $this, 'add_comment_meta_box_content' ), 'comment', 'normal', $this->args['priority'], $this->args );
81
-
82
- }
83
-
84
- // get default value
85
- public function get_default( $field ) {
86
-
87
- $default = ( isset( $field['default'] ) ) ? $field['default'] : '';
88
- $default = ( isset( $this->args['defaults'][$field['id']] ) ) ? $this->args['defaults'][$field['id']] : $default;
89
-
90
- return $default;
91
-
92
- }
93
-
94
- // get meta value
95
- public function get_meta_value( $comment_id, $field ) {
96
-
97
- $value = null;
98
-
99
- if ( ! empty( $comment_id ) && ! empty( $field['id'] ) ) {
100
-
101
- if ( $this->args['data_type'] !== 'serialize' ) {
102
- $meta = get_comment_meta( $comment_id, $field['id'] );
103
- $value = ( isset( $meta[0] ) ) ? $meta[0] : null;
104
- } else {
105
- $meta = get_comment_meta( $comment_id, $this->unique, true );
106
- $value = ( isset( $meta[$field['id']] ) ) ? $meta[$field['id']] : null;
107
- }
108
-
109
- }
110
-
111
- $default = ( isset( $field['id'] ) ) ? $this->get_default( $field ) : '';
112
- $value = ( isset( $value ) ) ? $value : $default;
113
-
114
- return $value;
115
-
116
- }
117
-
118
- // add comment metabox content
119
- public function add_comment_meta_box_content( $comment, $callback ) {
120
-
121
- $has_nav = ( count( $this->sections ) > 1 ) ? true : false;
122
- $show_all = ( ! $has_nav ) ? ' csf-show-all' : '';
123
- $errors = ( is_object ( $comment ) ) ? get_comment_meta( $comment->comment_ID, '_csf_errors_'. $this->unique, true ) : array();
124
- $errors = ( ! empty( $errors ) ) ? $errors : array();
125
- $theme = ( $this->args['theme'] ) ? ' csf-theme-'. $this->args['theme'] : '';
126
- $nav_type = ( $this->args['nav'] === 'inline' ) ? 'inline' : 'normal';
127
-
128
- if ( is_object( $comment ) && ! empty( $errors ) ) {
129
- delete_comment_meta( $comment->comment_ID, '_csf_errors_'. $this->unique );
130
- }
131
-
132
- wp_nonce_field( 'csf_comment_metabox_nonce', 'csf_comment_metabox_nonce'. $this->unique );
133
-
134
- echo '<div class="csf csf-comment-metabox'. esc_attr( $theme ) .'">';
135
-
136
- echo '<div class="csf-wrapper'. esc_attr( $show_all ) .'">';
137
-
138
- if ( $has_nav ) {
139
-
140
- echo '<div class="csf-nav csf-nav-'. esc_attr( $nav_type ) .' csf-nav-metabox">';
141
-
142
- echo '<ul>';
143
-
144
- $tab_key = 1;
145
-
146
- foreach ( $this->sections as $section ) {
147
-
148
- $tab_icon = ( ! empty( $section['icon'] ) ) ? '<i class="csf-tab-icon '. esc_attr( $section['icon'] ) .'"></i>' : '';
149
- $tab_error = ( ! empty( $errors['sections'][$tab_key] ) ) ? '<i class="csf-label-error csf-error">!</i>' : '';
150
-
151
- echo '<li><a href="#">'. $tab_icon . $section['title'] . $tab_error .'</a></li>';
152
-
153
- $tab_key++;
154
-
155
- }
156
-
157
- echo '</ul>';
158
-
159
- echo '</div>';
160
-
161
- }
162
-
163
- echo '<div class="csf-content">';
164
-
165
- echo '<div class="csf-sections">';
166
-
167
- $section_key = 1;
168
-
169
- foreach ( $this->sections as $section ) {
170
-
171
- $section_onload = ( ! $has_nav ) ? ' csf-onload' : '';
172
- $section_class = ( ! empty( $section['class'] ) ) ? ' '. $section['class'] : '';
173
- $section_title = ( ! empty( $section['title'] ) ) ? $section['title'] : '';
174
- $section_icon = ( ! empty( $section['icon'] ) ) ? '<i class="csf-section-icon '. esc_attr( $section['icon'] ) .'"></i>' : '';
175
-
176
- echo '<div class="csf-section hidden'. esc_attr( $section_onload . $section_class ) .'">';
177
-
178
- echo ( $section_title || $section_icon ) ? '<div class="csf-section-title"><h3>'. $section_icon . $section_title .'</h3></div>' : '';
179
- echo ( ! empty( $section['description'] ) ) ? '<div class="csf-field csf-section-description">'. $section['description'] .'</div>' : '';
180
-
181
- if ( ! empty( $section['fields'] ) ) {
182
-
183
- foreach ( $section['fields'] as $field ) {
184
-
185
- if ( ! empty( $field['id'] ) && ! empty( $errors['fields'][$field['id']] ) ) {
186
- $field['_error'] = $errors['fields'][$field['id']];
187
- }
188
-
189
- if ( ! empty( $field['id'] ) ) {
190
- $field['default'] = $this->get_default( $field );
191
- }
192
-
193
- CSF::field( $field, $this->get_meta_value( $comment->comment_ID, $field ), $this->unique, 'comment_metabox' );
194
-
195
- }
196
-
197
- } else {
198
-
199
- echo '<div class="csf-no-option">'. esc_html__( 'No data available.', 'csf' ) .'</div>';
200
-
201
- }
202
-
203
- echo '</div>';
204
-
205
- $section_key++;
206
-
207
- }
208
-
209
- echo '</div>';
210
-
211
- if ( ! empty( $this->args['show_restore'] ) || ! empty( $this->args['show_reset'] ) ) {
212
-
213
- echo '<div class="csf-sections-reset">';
214
- echo '<label>';
215
- echo '<input type="checkbox" name="'. esc_attr( $this->unique ) .'[_reset]" />';
216
- echo '<span class="button csf-button-reset">'. esc_html__( 'Reset', 'csf' ) .'</span>';
217
- echo '<span class="button csf-button-cancel">'. sprintf( '<small>( %s )</small> %s', esc_html__( 'update post', 'csf' ), esc_html__( 'Cancel', 'csf' ) ) .'</span>';
218
- echo '</label>';
219
- echo '</div>';
220
-
221
- }
222
-
223
- echo '</div>';
224
-
225
- echo ( $has_nav && $nav_type === 'normal' ) ? '<div class="csf-nav-background"></div>' : '';
226
-
227
- echo '<div class="clear"></div>';
228
-
229
- echo '</div>';
230
-
231
- echo '</div>';
232
-
233
- }
234
-
235
- // save comment metabox
236
- public function save_comment_meta_box( $comment_id ) {
237
-
238
- $count = 1;
239
- $data = array();
240
- $errors = array();
241
- $noncekey = 'csf_comment_metabox_nonce'. $this->unique;
242
- $nonce = ( ! empty( $_POST[ $noncekey ] ) ) ? sanitize_text_field( wp_unslash( $_POST[ $noncekey ] ) ) : '';
243
-
244
- if ( ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) || ! wp_verify_nonce( $nonce, 'csf_comment_metabox_nonce' ) ) {
245
- return $comment_id;
246
- }
247
-
248
- // XSS ok.
249
- // No worries, This "POST" requests is sanitizing in the below foreach.
250
- $request = ( ! empty( $_POST[ $this->unique ] ) ) ? $_POST[ $this->unique ] : array();
251
-
252
- if ( ! empty( $request ) ) {
253
-
254
- foreach ( $this->sections as $section ) {
255
-
256
- if ( ! empty( $section['fields'] ) ) {
257
-
258
- foreach ( $section['fields'] as $field ) {
259
-
260
- if ( ! empty( $field['id'] ) ) {
261
-
262
- $field_id = $field['id'];
263
- $field_value = isset( $request[$field_id] ) ? $request[$field_id] : '';
264
-
265
- // Sanitize "post" request of field.
266
- if ( ! isset( $field['sanitize'] ) ) {
267
-
268
- if( is_array( $field_value ) ) {
269
- $data[$field_id] = wp_kses_post_deep( $field_value );
270
- } else {
271
- $data[$field_id] = wp_kses_post( $field_value );
272
- }
273
-
274
- } else if( isset( $field['sanitize'] ) && is_callable( $field['sanitize'] ) ) {
275
-
276
- $data[$field_id] = call_user_func( $field['sanitize'], $field_value );
277
-
278
- } else {
279
-
280
- $data[$field_id] = $field_value;
281
-
282
- }
283
-
284
- // Validate "post" request of field.
285
- if ( isset( $field['validate'] ) && is_callable( $field['validate'] ) ) {
286
-
287
- $has_validated = call_user_func( $field['validate'], $field_value );
288
-
289
- if ( ! empty( $has_validated ) ) {
290
-
291
- $errors['sections'][$count] = true;
292
- $errors['fields'][$field_id] = $has_validated;
293
- $data[$field_id] = $this->get_meta_value( $comment_id, $field );
294
-
295
- }
296
-
297
- }
298
-
299
- }
300
-
301
- }
302
-
303
- }
304
-
305
- $count++;
306
-
307
- }
308
-
309
- }
310
-
311
- $data = apply_filters( "csf_{$this->unique}_save", $data, $comment_id, $this );
312
-
313
- do_action( "csf_{$this->unique}_save_before", $data, $comment_id, $this );
314
-
315
- if ( empty( $data ) || ! empty( $request['_reset'] ) ) {
316
-
317
- if ( $this->args['data_type'] !== 'serialize' ) {
318
- foreach ( $data as $key => $value ) {
319
- delete_comment_meta( $comment_id, $key );
320
- }
321
- } else {
322
- delete_comment_meta( $comment_id, $this->unique );
323
- }
324
-
325
- } else {
326
-
327
- if ( $this->args['data_type'] !== 'serialize' ) {
328
- foreach ( $data as $key => $value ) {
329
- update_comment_meta( $comment_id, $key, $value );
330
- }
331
- } else {
332
- update_comment_meta( $comment_id, $this->unique, $data );
333
- }
334
-
335
- if ( ! empty( $errors ) ) {
336
- update_comment_meta( $comment_id, '_csf_errors_'. $this->unique, $errors );
337
- }
338
-
339
- }
340
-
341
- do_action( "csf_{$this->unique}_saved", $data, $comment_id, $this );
342
-
343
- do_action( "csf_{$this->unique}_save_after", $data, $comment_id, $this );
344
-
345
- }
346
- }
347
- }
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Comment Metabox Class
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if ( ! class_exists( 'CSF_Comment_Metabox' ) ) {
11
+ class CSF_Comment_Metabox extends CSF_Abstract{
12
+
13
+ // constans
14
+ public $unique = '';
15
+ public $abstract = 'comment_metabox';
16
+ public $pre_fields = array();
17
+ public $sections = array();
18
+ public $args = array(
19
+ 'title' => '',
20
+ 'data_type' => 'serialize',
21
+ 'priority' => 'default',
22
+ 'show_reset' => false,
23
+ 'show_restore' => false,
24
+ 'nav' => 'normal',
25
+ 'theme' => 'dark',
26
+ 'class' => '',
27
+ 'defaults' => array(),
28
+ );
29
+
30
+ // run comment metabox construct
31
+ public function __construct( $key, $params = array() ) {
32
+
33
+ $this->unique = $key;
34
+ $this->args = apply_filters( "csf_{$this->unique}_args", wp_parse_args( $params['args'], $this->args ), $this );
35
+ $this->sections = apply_filters( "csf_{$this->unique}_sections", $params['sections'], $this );
36
+ $this->pre_fields = $this->pre_fields( $this->sections );
37
+
38
+ add_action( 'add_meta_boxes_comment', array( $this, 'add_comment_meta_box' ) );
39
+ add_action( 'edit_comment', array( $this, 'save_comment_meta_box' ) );
40
+
41
+ if ( ! empty( $this->args['class'] ) ) {
42
+ add_filter( 'postbox_classes_comment_'. $this->unique, array( $this, 'add_comment_metabox_classes' ) );
43
+ }
44
+
45
+ }
46
+
47
+ // instance
48
+ public static function instance( $key, $params = array() ) {
49
+ return new self( $key, $params );
50
+ }
51
+
52
+ public function pre_fields( $sections ) {
53
+
54
+ $result = array();
55
+
56
+ foreach ( $sections as $key => $section ) {
57
+ if ( ! empty( $section['fields'] ) ) {
58
+ foreach ( $section['fields'] as $field ) {
59
+ $result[] = $field;
60
+ }
61
+ }
62
+ }
63
+
64
+ return $result;
65
+ }
66
+
67
+ public function add_comment_metabox_classes( $classes ) {
68
+
69
+ if ( ! empty( $this->args['class'] ) ) {
70
+ $classes[] = $this->args['class'];
71
+ }
72
+
73
+ return $classes;
74
+
75
+ }
76
+
77
+ // add comment metabox
78
+ public function add_comment_meta_box( $post_type ) {
79
+
80
+ add_meta_box( $this->unique, $this->args['title'], array( $this, 'add_comment_meta_box_content' ), 'comment', 'normal', $this->args['priority'], $this->args );
81
+
82
+ }
83
+
84
+ // get default value
85
+ public function get_default( $field ) {
86
+
87
+ $default = ( isset( $field['default'] ) ) ? $field['default'] : '';
88
+ $default = ( isset( $this->args['defaults'][$field['id']] ) ) ? $this->args['defaults'][$field['id']] : $default;
89
+
90
+ return $default;
91
+
92
+ }
93
+
94
+ // get meta value
95
+ public function get_meta_value( $comment_id, $field ) {
96
+
97
+ $value = null;
98
+
99
+ if ( ! empty( $comment_id ) && ! empty( $field['id'] ) ) {
100
+
101
+ if ( $this->args['data_type'] !== 'serialize' ) {
102
+ $meta = get_comment_meta( $comment_id, $field['id'] );
103
+ $value = ( isset( $meta[0] ) ) ? $meta[0] : null;
104
+ } else {
105
+ $meta = get_comment_meta( $comment_id, $this->unique, true );
106
+ $value = ( isset( $meta[$field['id']] ) ) ? $meta[$field['id']] : null;
107
+ }
108
+
109
+ }
110
+
111
+ $default = ( isset( $field['id'] ) ) ? $this->get_default( $field ) : '';
112
+ $value = ( isset( $value ) ) ? $value : $default;
113
+
114
+ return $value;
115
+
116
+ }
117
+
118
+ // add comment metabox content
119
+ public function add_comment_meta_box_content( $comment, $callback ) {
120
+
121
+ $has_nav = ( count( $this->sections ) > 1 ) ? true : false;
122
+ $show_all = ( ! $has_nav ) ? ' csf-show-all' : '';
123
+ $errors = ( is_object ( $comment ) ) ? get_comment_meta( $comment->comment_ID, '_csf_errors_'. $this->unique, true ) : array();
124
+ $errors = ( ! empty( $errors ) ) ? $errors : array();
125
+ $theme = ( $this->args['theme'] ) ? ' csf-theme-'. $this->args['theme'] : '';
126
+ $nav_type = ( $this->args['nav'] === 'inline' ) ? 'inline' : 'normal';
127
+
128
+ if ( is_object( $comment ) && ! empty( $errors ) ) {
129
+ delete_comment_meta( $comment->comment_ID, '_csf_errors_'. $this->unique );
130
+ }
131
+
132
+ wp_nonce_field( 'csf_comment_metabox_nonce', 'csf_comment_metabox_nonce'. $this->unique );
133
+
134
+ echo '<div class="csf csf-comment-metabox'. esc_attr( $theme ) .'">';
135
+
136
+ echo '<div class="csf-wrapper'. esc_attr( $show_all ) .'">';
137
+
138
+ if ( $has_nav ) {
139
+
140
+ echo '<div class="csf-nav csf-nav-'. esc_attr( $nav_type ) .' csf-nav-metabox">';
141
+
142
+ echo '<ul>';
143
+
144
+ $tab_key = 1;
145
+
146
+ foreach ( $this->sections as $section ) {
147
+
148
+ $tab_icon = ( ! empty( $section['icon'] ) ) ? '<i class="csf-tab-icon '. esc_attr( $section['icon'] ) .'"></i>' : '';
149
+ $tab_error = ( ! empty( $errors['sections'][$tab_key] ) ) ? '<i class="csf-label-error csf-error">!</i>' : '';
150
+
151
+ echo '<li><a href="#">'. $tab_icon . $section['title'] . $tab_error .'</a></li>';
152
+
153
+ $tab_key++;
154
+
155
+ }
156
+
157
+ echo '</ul>';
158
+
159
+ echo '</div>';
160
+
161
+ }
162
+
163
+ echo '<div class="csf-content">';
164
+
165
+ echo '<div class="csf-sections">';
166
+
167
+ $section_key = 1;
168
+
169
+ foreach ( $this->sections as $section ) {
170
+
171
+ $section_onload = ( ! $has_nav ) ? ' csf-onload' : '';
172
+ $section_class = ( ! empty( $section['class'] ) ) ? ' '. $section['class'] : '';
173
+ $section_title = ( ! empty( $section['title'] ) ) ? $section['title'] : '';
174
+ $section_icon = ( ! empty( $section['icon'] ) ) ? '<i class="csf-section-icon '. esc_attr( $section['icon'] ) .'"></i>' : '';
175
+
176
+ echo '<div class="csf-section hidden'. esc_attr( $section_onload . $section_class ) .'">';
177
+
178
+ echo ( $section_title || $section_icon ) ? '<div class="csf-section-title"><h3>'. $section_icon . $section_title .'</h3></div>' : '';
179
+ echo ( ! empty( $section['description'] ) ) ? '<div class="csf-field csf-section-description">'. $section['description'] .'</div>' : '';
180
+
181
+ if ( ! empty( $section['fields'] ) ) {
182
+
183
+ foreach ( $section['fields'] as $field ) {
184
+
185
+ if ( ! empty( $field['id'] ) && ! empty( $errors['fields'][$field['id']] ) ) {
186
+ $field['_error'] = $errors['fields'][$field['id']];
187
+ }
188
+
189
+ if ( ! empty( $field['id'] ) ) {
190
+ $field['default'] = $this->get_default( $field );
191
+ }
192
+
193
+ CSF::field( $field, $this->get_meta_value( $comment->comment_ID, $field ), $this->unique, 'comment_metabox' );
194
+
195
+ }
196
+
197
+ } else {
198
+
199
+ echo '<div class="csf-no-option">'. esc_html__( 'No data available.', 'csf' ) .'</div>';
200
+
201
+ }
202
+
203
+ echo '</div>';
204
+
205
+ $section_key++;
206
+
207
+ }
208
+
209
+ echo '</div>';
210
+
211
+ if ( ! empty( $this->args['show_restore'] ) || ! empty( $this->args['show_reset'] ) ) {
212
+
213
+ echo '<div class="csf-sections-reset">';
214
+ echo '<label>';
215
+ echo '<input type="checkbox" name="'. esc_attr( $this->unique ) .'[_reset]" />';
216
+ echo '<span class="button csf-button-reset">'. esc_html__( 'Reset', 'csf' ) .'</span>';
217
+ echo '<span class="button csf-button-cancel">'. sprintf( '<small>( %s )</small> %s', esc_html__( 'update post', 'csf' ), esc_html__( 'Cancel', 'csf' ) ) .'</span>';
218
+ echo '</label>';
219
+ echo '</div>';
220
+
221
+ }
222
+
223
+ echo '</div>';
224
+
225
+ echo ( $has_nav && $nav_type === 'normal' ) ? '<div class="csf-nav-background"></div>' : '';
226
+
227
+ echo '<div class="clear"></div>';
228
+
229
+ echo '</div>';
230
+
231
+ echo '</div>';
232
+
233
+ }
234
+
235
+ // save comment metabox
236
+ public function save_comment_meta_box( $comment_id ) {
237
+
238
+ $count = 1;
239
+ $data = array();
240
+ $errors = array();
241
+ $noncekey = 'csf_comment_metabox_nonce'. $this->unique;
242
+ $nonce = ( ! empty( $_POST[ $noncekey ] ) ) ? sanitize_text_field( wp_unslash( $_POST[ $noncekey ] ) ) : '';
243
+
244
+ if ( ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) || ! wp_verify_nonce( $nonce, 'csf_comment_metabox_nonce' ) ) {
245
+ return $comment_id;
246
+ }
247
+
248
+ // XSS ok.
249
+ // No worries, This "POST" requests is sanitizing in the below foreach.
250
+ $request = ( ! empty( $_POST[ $this->unique ] ) ) ? $_POST[ $this->unique ] : array();
251
+
252
+ if ( ! empty( $request ) ) {
253
+
254
+ foreach ( $this->sections as $section ) {
255
+
256
+ if ( ! empty( $section['fields'] ) ) {
257
+
258
+ foreach ( $section['fields'] as $field ) {
259
+
260
+ if ( ! empty( $field['id'] ) ) {
261
+
262
+ $field_id = $field['id'];
263
+ $field_value = isset( $request[$field_id] ) ? $request[$field_id] : '';
264
+
265
+ // Sanitize "post" request of field.
266
+ if ( ! isset( $field['sanitize'] ) ) {
267
+
268
+ if( is_array( $field_value ) ) {
269
+ $data[$field_id] = wp_kses_post_deep( $field_value );
270
+ } else {
271
+ $data[$field_id] = wp_kses_post( $field_value );
272
+ }
273
+
274
+ } else if( isset( $field['sanitize'] ) && is_callable( $field['sanitize'] ) ) {
275
+
276
+ $data[$field_id] = call_user_func( $field['sanitize'], $field_value );
277
+
278
+ } else {
279
+
280
+ $data[$field_id] = $field_value;
281
+
282
+ }
283
+
284
+ // Validate "post" request of field.
285
+ if ( isset( $field['validate'] ) && is_callable( $field['validate'] ) ) {
286
+
287
+ $has_validated = call_user_func( $field['validate'], $field_value );
288
+
289
+ if ( ! empty( $has_validated ) ) {
290
+
291
+ $errors['sections'][$count] = true;
292
+ $errors['fields'][$field_id] = $has_validated;
293
+ $data[$field_id] = $this->get_meta_value( $comment_id, $field );
294
+
295
+ }
296
+
297
+ }
298
+
299
+ }
300
+
301
+ }
302
+
303
+ }
304
+
305
+ $count++;
306
+
307
+ }
308
+
309
+ }
310
+
311
+ $data = apply_filters( "csf_{$this->unique}_save", $data, $comment_id, $this );
312
+
313
+ do_action( "csf_{$this->unique}_save_before", $data, $comment_id, $this );
314
+
315
+ if ( empty( $data ) || ! empty( $request['_reset'] ) ) {
316
+
317
+ if ( $this->args['data_type'] !== 'serialize' ) {
318
+ foreach ( $data as $key => $value ) {
319
+ delete_comment_meta( $comment_id, $key );
320
+ }
321
+ } else {
322
+ delete_comment_meta( $comment_id, $this->unique );
323
+ }
324
+
325
+ } else {
326
+
327
+ if ( $this->args['data_type'] !== 'serialize' ) {
328
+ foreach ( $data as $key => $value ) {
329
+ update_comment_meta( $comment_id, $key, $value );
330
+ }
331
+ } else {
332
+ update_comment_meta( $comment_id, $this->unique, $data );
333
+ }
334
+
335
+ if ( ! empty( $errors ) ) {
336
+ update_comment_meta( $comment_id, '_csf_errors_'. $this->unique, $errors );
337
+ }
338
+
339
+ }
340
+
341
+ do_action( "csf_{$this->unique}_saved", $data, $comment_id, $this );
342
+
343
+ do_action( "csf_{$this->unique}_save_after", $data, $comment_id, $this );
344
+
345
+ }
346
+ }
347
+ }
vendor/codestar-framework/classes/customize-options.class.php CHANGED
@@ -1,282 +1,282 @@
1
- <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
- /**
3
- *
4
- * Customize Options Class
5
- *
6
- * @since 1.0.0
7
- * @version 1.0.0
8
- *
9
- */
10
- if ( ! class_exists( 'CSF_Customize_Options' ) ) {
11
- class CSF_Customize_Options extends CSF_Abstract {
12
-
13
- // constans
14
- public $unique = '';
15
- public $abstract = 'customize';
16
- public $options = array();
17
- public $sections = array();
18
- public $pre_fields = array();
19
- public $pre_tabs = array();
20
- public $priority = 10;
21
- public $args = array(
22
- 'database' => 'option',
23
- 'transport' => 'refresh',
24
- 'capability' => 'manage_options',
25
- 'save_defaults' => true,
26
- 'enqueue_webfont' => true,
27
- 'async_webfont' => false,
28
- 'output_css' => true,
29
- 'defaults' => array()
30
- );
31
-
32
- // run customize construct
33
- public function __construct( $key, $params ) {
34
-
35
- $this->unique = $key;
36
- $this->args = apply_filters( "csf_{$this->unique}_args", wp_parse_args( $params['args'], $this->args ), $this );
37
- $this->sections = apply_filters( "csf_{$this->unique}_sections", $params['sections'], $this );
38
- $this->pre_fields = $this->pre_fields( $this->sections );
39
-
40
- $this->get_options();
41
- $this->save_defaults();
42
-
43
- add_action( 'customize_register', array( $this, 'add_customize_options' ) );
44
- add_action( 'customize_save_after', array( $this, 'add_customize_save_after' ) );
45
-
46
- // Get options for enqueue actions
47
- if ( is_customize_preview() ) {
48
- add_action( 'wp_enqueue_scripts', array( $this, 'get_options' ) );
49
- }
50
-
51
- // wp enqeueu for typography and output css
52
- parent::__construct();
53
-
54
- }
55
-
56
- // instance
57
- public static function instance( $key, $params = array() ) {
58
- return new self( $key, $params );
59
- }
60
-
61
- public function add_customize_save_after( $wp_customize ) {
62
- do_action( "csf_{$this->unique}_save_before", $this->get_options(), $this, $wp_customize );
63
- do_action( "csf_{$this->unique}_saved", $this->get_options(), $this, $wp_customize );
64
- do_action( "csf_{$this->unique}_save_after", $this->get_options(), $this, $wp_customize );
65
- }
66
-
67
- // get default value
68
- public function get_default( $field ) {
69
-
70
- $default = ( isset( $field['default'] ) ) ? $field['default'] : '';
71
- $default = ( isset( $this->args['defaults'][$field['id']] ) ) ? $this->args['defaults'][$field['id']] : $default;
72
-
73
- return $default;
74
-
75
- }
76
-
77
- // get option
78
- public function get_options() {
79
-
80
- if ( $this->args['database'] === 'theme_mod' ) {
81
- $this->options = get_theme_mod( $this->unique, array() );
82
- } else {
83
- $this->options = get_option( $this->unique, array() );
84
- }
85
-
86
- if ( empty( $this->options ) ) {
87
- $this->options = array();
88
- }
89
-
90
- return $this->options;
91
-
92
- }
93
-
94
- // save defaults and set new fields value to main options
95
- public function save_defaults() {
96
-
97
- $tmp_options = $this->options;
98
-
99
- if ( ! empty( $this->pre_fields ) ) {
100
- foreach ( $this->pre_fields as $field ) {
101
- if ( ! empty( $field['id'] ) ) {
102
- $this->options[$field['id']] = ( isset( $this->options[$field['id']] ) ) ? $this->options[$field['id']] : $this->get_default( $field );
103
- }
104
- }
105
- }
106
-
107
- if ( $this->args['save_defaults'] && empty( $this->args['show_in_customizer'] ) && empty( $tmp_options ) ) {
108
-
109
- if ( $this->args['database'] === 'theme_mod' ) {
110
- set_theme_mod( $this->unique, $this->options );
111
- } else {
112
- update_option( $this->unique, $this->options );
113
- }
114
-
115
- }
116
-
117
- }
118
-
119
- public function pre_fields( $sections ) {
120
-
121
- $result = array();
122
-
123
- foreach ( $sections as $key => $section ) {
124
- if ( ! empty( $section['fields'] ) ) {
125
- foreach ( $section['fields'] as $field ) {
126
- $result[] = $field;
127
- }
128
- }
129
- }
130
-
131
- return $result;
132
- }
133
-
134
-
135
- public function pre_tabs( $sections ) {
136
-
137
- $result = array();
138
- $parents = array();
139
-
140
- foreach ( $sections as $key => $section ) {
141
- if ( ! empty( $section['parent'] ) ) {
142
- $parents[$section['parent']][] = $section;
143
- unset( $sections[$key] );
144
- }
145
- }
146
-
147
- foreach ( $sections as $key => $section ) {
148
- if ( ! empty( $section['id'] ) && ! empty( $parents[$section['id']] ) ) {
149
- $section['subs'] = $parents[$section['id']];
150
- }
151
- $result[] = $section;
152
- }
153
-
154
- return $result;
155
-
156
- }
157
-
158
- public function add_customize_options( $wp_customize ) {
159
-
160
- if ( ! class_exists( 'WP_Customize_Panel_CSF' ) ) {
161
- CSF::include_plugin_file( 'functions/customize.php' );
162
- }
163
-
164
- if ( ! empty( $this->sections ) ) {
165
-
166
- $sections = $this->pre_tabs( $this->sections );
167
-
168
- foreach ( $sections as $section ) {
169
-
170
- if ( ! empty( $section['subs'] ) ) {
171
-
172
- $panel_id = ( isset( $section['id'] ) ) ? $section['id'] : $this->unique .'-panel-'. $this->priority;
173
-
174
- $wp_customize->add_panel( new WP_Customize_Panel_CSF( $wp_customize, $panel_id, array(
175
- 'title' => ( isset( $section['title'] ) ) ? $section['title'] : null,
176
- 'description' => ( isset( $section['description'] ) ) ? $section['description'] : null,
177
- 'priority' => ( isset( $section['priority'] ) ) ? $section['priority'] : null,
178
- ) ) );
179
-
180
- $this->priority++;
181
-
182
- foreach ( $section['subs'] as $sub_section ) {
183
-
184
- $section_id = ( isset( $sub_section['id'] ) ) ? $sub_section['id'] : $this->unique .'-section-'. $this->priority;
185
-
186
- $this->add_section( $wp_customize, $section_id, $sub_section, $panel_id );
187
-
188
- $this->priority++;
189
-
190
- }
191
-
192
- } else {
193
-
194
- $section_id = ( isset( $section['id'] ) ) ? $section['id'] : $this->unique .'-section-'. $this->priority;
195
-
196
- $this->add_section( $wp_customize, $section_id, $section, false );
197
-
198
- $this->priority++;
199
-
200
- }
201
-
202
- }
203
-
204
- }
205
-
206
- }
207
-
208
- // add customize section
209
- public function add_section( $wp_customize, $section_id, $section_args, $panel_id ) {
210
-
211
- if ( ! empty( $section_args['assign'] ) ) {
212
-
213
- $section_id = $section_args['assign'];
214
-
215
- } else {
216
-
217
- $wp_customize->add_section( new WP_Customize_Section_CSF( $wp_customize, $section_id, array(
218
- 'title' => ( isset( $section_args['title'] ) ) ? $section_args['title'] : '',
219
- 'description' => ( isset( $section_args['description'] ) ) ? $section_args['description'] : '',
220
- 'priority' => ( isset( $section_args['priority'] ) ) ? $section_args['priority'] : '',
221
- 'panel' => ( $panel_id ) ? $panel_id : '',
222
- ) ) );
223
-
224
- }
225
-
226
- if ( ! empty( $section_args['fields'] ) ) {
227
-
228
- $field_key = 1;
229
-
230
- foreach ( $section_args['fields'] as $field ) {
231
-
232
- if ( isset( $field['id'] ) ) {
233
- $field['default'] = $this->get_default( $field );
234
- }
235
-
236
- $field_id = ( isset( $field['id'] ) ) ? $field['id'] : '_nonce-'. $section_id .'-'. $field_key;
237
- $setting_args = ( isset( $field['setting_args'] ) ) ? $field['setting_args'] : array();
238
- $control_args = ( isset( $field['control_args'] ) ) ? $field['control_args'] : array();
239
- $field_transport = ( isset( $field['transport'] ) ) ? $field['transport'] : $this->args['transport'];
240
- $field_sanitize = ( isset( $field['sanitize'] ) ) ? $field['sanitize'] : '';
241
- $field_validate = ( isset( $field['validate'] ) ) ? $field['validate'] : '';
242
- $field_default = ( isset( $field['default'] ) ) ? $field['default'] : '';
243
- $field_customize = ( isset( $field['customize'] ) && ! isset( $field['transport'] ) ) ? true : false;
244
- $has_selective = ( isset( $field['selective_refresh'] ) && isset( $wp_customize->selective_refresh ) ) ? true : false;
245
-
246
- $setting_id = $this->unique .'['. $field_id .']';
247
- $transport = ( $has_selective || $field_customize ) ? 'postMessage' : $field_transport;
248
-
249
- $wp_customize->add_setting( $setting_id,
250
- wp_parse_args( $setting_args, array(
251
- 'default' => $field_default,
252
- 'type' => $this->args['database'],
253
- 'capability' => $this->args['capability'],
254
- 'transport' => $transport,
255
- 'sanitize_callback' => $field_sanitize,
256
- 'validate_callback' => $field_validate
257
- ) )
258
- );
259
-
260
- $wp_customize->add_control( new WP_Customize_Control_CSF( $wp_customize, $setting_id,
261
- wp_parse_args( $control_args, array(
262
- 'unique' => $this->unique,
263
- 'field' => $field,
264
- 'section' => $section_id,
265
- 'settings' => $setting_id
266
- ) )
267
- ) );
268
-
269
- if ( $has_selective ) {
270
- $wp_customize->selective_refresh->add_partial( $setting_id, $field['selective_refresh'] );
271
- }
272
-
273
- $field_key++;
274
- }
275
-
276
- }
277
-
278
-
279
- }
280
-
281
- }
282
- }
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Customize Options Class
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if ( ! class_exists( 'CSF_Customize_Options' ) ) {
11
+ class CSF_Customize_Options extends CSF_Abstract {
12
+
13
+ // constans
14
+ public $unique = '';
15
+ public $abstract = 'customize';
16
+ public $options = array();
17
+ public $sections = array();
18
+ public $pre_fields = array();
19
+ public $pre_tabs = array();
20
+ public $priority = 10;
21
+ public $args = array(
22
+ 'database' => 'option',
23
+ 'transport' => 'refresh',
24
+ 'capability' => 'manage_options',
25
+ 'save_defaults' => true,
26
+ 'enqueue_webfont' => true,
27
+ 'async_webfont' => false,
28
+ 'output_css' => true,
29
+ 'defaults' => array()
30
+ );
31
+
32
+ // run customize construct
33
+ public function __construct( $key, $params ) {
34
+
35
+ $this->unique = $key;
36
+ $this->args = apply_filters( "csf_{$this->unique}_args", wp_parse_args( $params['args'], $this->args ), $this );
37
+ $this->sections = apply_filters( "csf_{$this->unique}_sections", $params['sections'], $this );
38
+ $this->pre_fields = $this->pre_fields( $this->sections );
39
+
40
+ $this->get_options();
41
+ $this->save_defaults();
42
+
43
+ add_action( 'customize_register', array( $this, 'add_customize_options' ) );
44
+ add_action( 'customize_save_after', array( $this, 'add_customize_save_after' ) );
45
+
46
+ // Get options for enqueue actions
47
+ if ( is_customize_preview() ) {
48
+ add_action( 'wp_enqueue_scripts', array( $this, 'get_options' ) );
49
+ }
50
+
51
+ // wp enqeueu for typography and output css
52
+ parent::__construct();
53
+
54
+ }
55
+
56
+ // instance
57
+ public static function instance( $key, $params = array() ) {
58
+ return new self( $key, $params );
59
+ }
60
+
61
+ public function add_customize_save_after( $wp_customize ) {
62
+ do_action( "csf_{$this->unique}_save_before", $this->get_options(), $this, $wp_customize );
63
+ do_action( "csf_{$this->unique}_saved", $this->get_options(), $this, $wp_customize );
64
+ do_action( "csf_{$this->unique}_save_after", $this->get_options(), $this, $wp_customize );
65
+ }
66
+
67
+ // get default value
68
+ public function get_default( $field ) {
69
+
70
+ $default = ( isset( $field['default'] ) ) ? $field['default'] : '';
71
+ $default = ( isset( $this->args['defaults'][$field['id']] ) ) ? $this->args['defaults'][$field['id']] : $default;
72
+
73
+ return $default;
74
+
75
+ }
76
+
77
+ // get option
78
+ public function get_options() {
79
+
80
+ if ( $this->args['database'] === 'theme_mod' ) {
81
+ $this->options = get_theme_mod( $this->unique, array() );
82
+ } else {
83
+ $this->options = get_option( $this->unique, array() );
84
+ }
85
+
86
+ if ( empty( $this->options ) ) {
87
+ $this->options = array();
88
+ }
89
+
90
+ return $this->options;
91
+
92
+ }
93
+
94
+ // save defaults and set new fields value to main options
95
+ public function save_defaults() {
96
+
97
+ $tmp_options = $this->options;
98
+
99
+ if ( ! empty( $this->pre_fields ) ) {
100
+ foreach ( $this->pre_fields as $field ) {
101
+ if ( ! empty( $field['id'] ) ) {
102
+ $this->options[$field['id']] = ( isset( $this->options[$field['id']] ) ) ? $this->options[$field['id']] : $this->get_default( $field );
103
+ }
104
+ }
105
+ }
106
+
107
+ if ( $this->args['save_defaults'] && empty( $this->args['show_in_customizer'] ) && empty( $tmp_options ) ) {
108
+
109
+ if ( $this->args['database'] === 'theme_mod' ) {
110
+ set_theme_mod( $this->unique, $this->options );
111
+ } else {
112
+ update_option( $this->unique, $this->options );
113
+ }
114
+
115
+ }
116
+
117
+ }
118
+
119
+ public function pre_fields( $sections ) {
120
+
121
+ $result = array();
122
+
123
+ foreach ( $sections as $key => $section ) {
124
+ if ( ! empty( $section['fields'] ) ) {
125
+ foreach ( $section['fields'] as $field ) {
126
+ $result[] = $field;
127
+ }
128
+ }
129
+ }
130
+
131
+ return $result;
132
+ }
133
+
134
+
135
+ public function pre_tabs( $sections ) {
136
+
137
+ $result = array();
138
+ $parents = array();
139
+
140
+ foreach ( $sections as $key => $section ) {
141
+ if ( ! empty( $section['parent'] ) ) {
142
+ $parents[$section['parent']][] = $section;
143
+ unset( $sections[$key] );
144
+ }
145
+ }
146
+
147
+ foreach ( $sections as $key => $section ) {
148
+ if ( ! empty( $section['id'] ) && ! empty( $parents[$section['id']] ) ) {
149
+ $section['subs'] = $parents[$section['id']];
150
+ }
151
+ $result[] = $section;
152
+ }
153
+
154
+ return $result;
155
+
156
+ }
157
+
158
+ public function add_customize_options( $wp_customize ) {
159
+
160
+ if ( ! class_exists( 'WP_Customize_Panel_CSF' ) ) {
161
+ CSF::include_plugin_file( 'functions/customize.php' );
162
+ }
163
+
164
+ if ( ! empty( $this->sections ) ) {
165
+
166
+ $sections = $this->pre_tabs( $this->sections );
167
+
168
+ foreach ( $sections as $section ) {
169
+
170
+ if ( ! empty( $section['subs'] ) ) {
171
+
172
+ $panel_id = ( isset( $section['id'] ) ) ? $section['id'] : $this->unique .'-panel-'. $this->priority;
173
+
174
+ $wp_customize->add_panel( new WP_Customize_Panel_CSF( $wp_customize, $panel_id, array(
175
+ 'title' => ( isset( $section['title'] ) ) ? $section['title'] : null,
176
+ 'description' => ( isset( $section['description'] ) ) ? $section['description'] : null,
177
+ 'priority' => ( isset( $section['priority'] ) ) ? $section['priority'] : null,
178
+ ) ) );
179
+
180
+ $this->priority++;
181
+
182
+ foreach ( $section['subs'] as $sub_section ) {
183
+
184
+ $section_id = ( isset( $sub_section['id'] ) ) ? $sub_section['id'] : $this->unique .'-section-'. $this->priority;
185
+
186
+ $this->add_section( $wp_customize, $section_id, $sub_section, $panel_id );
187
+
188
+ $this->priority++;
189
+
190
+ }
191
+
192
+ } else {
193
+
194
+ $section_id = ( isset( $section['id'] ) ) ? $section['id'] : $this->unique .'-section-'. $this->priority;
195
+
196
+ $this->add_section( $wp_customize, $section_id, $section, false );
197
+
198
+ $this->priority++;
199
+
200
+ }
201
+
202
+ }
203
+
204
+ }
205
+
206
+ }
207
+
208
+ // add customize section
209
+ public function add_section( $wp_customize, $section_id, $section_args, $panel_id ) {
210
+
211
+ if ( ! empty( $section_args['assign'] ) ) {
212
+
213
+ $section_id = $section_args['assign'];
214
+
215
+ } else {
216
+
217
+ $wp_customize->add_section( new WP_Customize_Section_CSF( $wp_customize, $section_id, array(
218
+ 'title' => ( isset( $section_args['title'] ) ) ? $section_args['title'] : '',
219
+ 'description' => ( isset( $section_args['description'] ) ) ? $section_args['description'] : '',
220
+ 'priority' => ( isset( $section_args['priority'] ) ) ? $section_args['priority'] : '',
221
+ 'panel' => ( $panel_id ) ? $panel_id : '',
222
+ ) ) );
223
+
224
+ }
225
+
226
+ if ( ! empty( $section_args['fields'] ) ) {
227
+
228
+ $field_key = 1;
229
+
230
+ foreach ( $section_args['fields'] as $field ) {
231
+
232
+ if ( isset( $field['id'] ) ) {
233
+ $field['default'] = $this->get_default( $field );
234
+ }
235
+
236
+ $field_id = ( isset( $field['id'] ) ) ? $field['id'] : '_nonce-'. $section_id .'-'. $field_key;
237
+ $setting_args = ( isset( $field['setting_args'] ) ) ? $field['setting_args'] : array();
238
+ $control_args = ( isset( $field['control_args'] ) ) ? $field['control_args'] : array();
239
+ $field_transport = ( isset( $field['transport'] ) ) ? $field['transport'] : $this->args['transport'];
240
+ $field_sanitize = ( isset( $field['sanitize'] ) ) ? $field['sanitize'] : '';
241
+ $field_validate = ( isset( $field['validate'] ) ) ? $field['validate'] : '';
242
+ $field_default = ( isset( $field['default'] ) ) ? $field['default'] : '';
243
+ $field_customize = ( isset( $field['customize'] ) && ! isset( $field['transport'] ) ) ? true : false;
244
+ $has_selective = ( isset( $field['selective_refresh'] ) && isset( $wp_customize->selective_refresh ) ) ? true : false;
245
+
246
+ $setting_id = $this->unique .'['. $field_id .']';
247
+ $transport = ( $has_selective || $field_customize ) ? 'postMessage' : $field_transport;
248
+
249
+ $wp_customize->add_setting( $setting_id,
250
+ wp_parse_args( $setting_args, array(
251
+ 'default' => $field_default,
252
+ 'type' => $this->args['database'],
253
+ 'capability' => $this->args['capability'],
254
+ 'transport' => $transport,
255
+ 'sanitize_callback' => $field_sanitize,
256
+ 'validate_callback' => $field_validate
257
+ ) )
258
+ );
259
+
260
+ $wp_customize->add_control( new WP_Customize_Control_CSF( $wp_customize, $setting_id,
261
+ wp_parse_args( $control_args, array(
262
+ 'unique' => $this->unique,
263
+ 'field' => $field,
264
+ 'section' => $section_id,
265
+ 'settings' => $setting_id
266
+ ) )
267
+ ) );
268
+
269
+ if ( $has_selective ) {
270
+ $wp_customize->selective_refresh->add_partial( $setting_id, $field['selective_refresh'] );
271
+ }
272
+
273
+ $field_key++;
274
+ }
275
+
276
+ }
277
+
278
+
279
+ }
280
+
281
+ }
282
+ }
vendor/codestar-framework/classes/metabox-options.class.php CHANGED
@@ -1,425 +1,425 @@
1
- <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
- /**
3
- *
4
- * Metabox Class
5
- *
6
- * @since 1.0.0
7
- * @version 1.0.0
8
- *
9
- */
10
- if ( ! class_exists( 'CSF_Metabox' ) ) {
11
- class CSF_Metabox extends CSF_Abstract{
12
-
13
- // constans
14
- public $unique = '';
15
- public $abstract = 'metabox';
16
- public $pre_fields = array();
17
- public $sections = array();
18
- public $post_type = array();
19
- public $args = array(
20
- 'title' => '',
21
- 'post_type' => 'post',
22
- 'data_type' => 'serialize',
23
- 'context' => 'advanced',
24
- 'priority' => 'default',
25
- 'exclude_post_types' => array(),
26
- 'page_templates' => '',
27
- 'post_formats' => '',
28
- 'show_reset' => false,
29
- 'show_restore' => false,
30
- 'enqueue_webfont' => true,
31
- 'async_webfont' => false,
32
- 'output_css' => true,
33
- 'nav' => 'normal',
34
- 'theme' => 'dark',
35
- 'class' => '',
36
- 'defaults' => array(),
37
- );
38
-
39
- // run metabox construct
40
- public function __construct( $key, $params = array() ) {
41
-
42
- $this->unique = $key;
43
- $this->args = apply_filters( "csf_{$this->unique}_args", wp_parse_args( $params['args'], $this->args ), $this );
44
- $this->sections = apply_filters( "csf_{$this->unique}_sections", $params['sections'], $this );
45
- $this->post_type = ( is_array( $this->args['post_type'] ) ) ? $this->args['post_type'] : array_filter( (array) $this->args['post_type'] );
46
- $this->post_formats = ( is_array( $this->args['post_formats'] ) ) ? $this->args['post_formats'] : array_filter( (array) $this->args['post_formats'] );
47
- $this->page_templates = ( is_array( $this->args['page_templates'] ) ) ? $this->args['page_templates'] : array_filter( (array) $this->args['page_templates'] );
48
- $this->pre_fields = $this->pre_fields( $this->sections );
49
-
50
- add_action( 'add_meta_boxes', array( $this, 'add_meta_box' ) );
51
- add_action( 'save_post', array( $this, 'save_meta_box' ) );
52
- add_action( 'edit_attachment', array( $this, 'save_meta_box' ) );
53
-
54
- if ( ! empty( $this->page_templates ) || ! empty( $this->post_formats ) || ! empty( $this->args['class'] ) ) {
55
- foreach ( $this->post_type as $post_type ) {
56
- add_filter( 'postbox_classes_'. $post_type .'_'. $this->unique, array( $this, 'add_metabox_classes' ) );
57
- }
58
- }
59
-
60
- // wp enqeueu for typography and output css
61
- parent::__construct();
62
-
63
- }
64
-
65
- // instance
66
- public static function instance( $key, $params = array() ) {
67
- return new self( $key, $params );
68
- }
69
-
70
- public function pre_fields( $sections ) {
71
-
72
- $result = array();
73
-
74
- foreach ( $sections as $key => $section ) {
75
- if ( ! empty( $section['fields'] ) ) {
76
- foreach ( $section['fields'] as $field ) {
77
- $result[] = $field;
78
- }
79
- }
80
- }
81
-
82
- return $result;
83
-
84
- }
85
-
86
- public function add_metabox_classes( $classes ) {
87
-
88
- global $post;
89
-
90
- if ( ! empty( $this->post_formats ) ) {
91
-
92
- $saved_post_format = ( is_object( $post ) ) ? get_post_format( $post ) : false;
93
- $saved_post_format = ( ! empty( $saved_post_format ) ) ? $saved_post_format : 'default';
94
-
95
- $classes[] = 'csf-post-formats';
96
-
97
- // Sanitize post format for standard to default
98
- if ( ( $key = array_search( 'standard', $this->post_formats ) ) !== false ) {
99
- $this->post_formats[$key] = 'default';
100
- }
101
-
102
- foreach ( $this->post_formats as $format ) {
103
- $classes[] = 'csf-post-format-'. $format;
104
- }
105
-
106
- if ( ! in_array( $saved_post_format, $this->post_formats ) ) {
107
- $classes[] = 'csf-metabox-hide';
108
- } else {
109
- $classes[] = 'csf-metabox-show';
110
- }
111
-
112
- }
113
-
114
- if ( ! empty( $this->page_templates ) ) {
115
-
116
- $saved_template = ( is_object( $post ) && ! empty( $post->page_template ) ) ? $post->page_template : 'default';
117
-
118
- $classes[] = 'csf-page-templates';
119
-
120
- foreach ( $this->page_templates as $template ) {
121
- $classes[] = 'csf-page-'. preg_replace( '/[^a-zA-Z0-9]+/', '-', strtolower( $template ) );
122
- }
123
-
124
- if ( ! in_array( $saved_template, $this->page_templates ) ) {
125
- $classes[] = 'csf-metabox-hide';
126
- } else {
127
- $classes[] = 'csf-metabox-show';
128
- }
129
-
130
- }
131
-
132
- if ( ! empty( $this->args['class'] ) ) {
133
- $classes[] = $this->args['class'];
134
- }
135
-
136
- return $classes;
137
-
138
- }
139
-
140
- // add metabox
141
- public function add_meta_box( $post_type ) {
142
-
143
- if ( ! in_array( $post_type, $this->args['exclude_post_types'] ) ) {
144
- add_meta_box( $this->unique, $this->args['title'], array( $this, 'add_meta_box_content' ), $this->post_type, $this->args['context'], $this->args['priority'], $this->args );
145
- }
146
-
147
- }
148
-
149
- // get default value
150
- public function get_default( $field ) {
151
-
152
- $default = ( isset( $field['default'] ) ) ? $field['default'] : '';
153
- $default = ( isset( $this->args['defaults'][$field['id']] ) ) ? $this->args['defaults'][$field['id']] : $default;
154
-
155
- return $default;
156
-
157
- }
158
-
159
- // get meta value
160
- public function get_meta_value( $field ) {
161
-
162
- global $post;
163
-
164
- $value = null;
165
-
166
- if ( is_object( $post ) && ! empty( $field['id'] ) ) {
167
-
168
- if ( $this->args['data_type'] !== 'serialize' ) {
169
- $meta = get_post_meta( $post->ID, $field['id'] );
170
- $value = ( isset( $meta[0] ) ) ? $meta[0] : null;
171
- } else {
172
- $meta = get_post_meta( $post->ID, $this->unique, true );
173
- $value = ( isset( $meta[$field['id']] ) ) ? $meta[$field['id']] : null;
174
- }
175
-
176
- }
177
-
178
- $default = ( isset( $field['id'] ) ) ? $this->get_default( $field ) : '';
179
- $value = ( isset( $value ) ) ? $value : $default;
180
-
181
- return $value;
182
-
183
- }
184
-
185
- // add metabox content
186
- public function add_meta_box_content( $post, $callback ) {
187
-
188
- global $post;
189
-
190
- $has_nav = ( count( $this->sections ) > 1 && $this->args['context'] !== 'side' ) ? true : false;
191
- $show_all = ( ! $has_nav ) ? ' csf-show-all' : '';
192
- $post_type = ( is_object ( $post ) ) ? $post->post_type : '';
193
- $errors = ( is_object ( $post ) ) ? get_post_meta( $post->ID, '_csf_errors_'. $this->unique, true ) : array();
194
- $errors = ( ! empty( $errors ) ) ? $errors : array();
195
- $theme = ( $this->args['theme'] ) ? ' csf-theme-'. $this->args['theme'] : '';
196
- $nav_type = ( $this->args['nav'] === 'inline' ) ? 'inline' : 'normal';
197
-
198
- if ( is_object ( $post ) && ! empty( $errors ) ) {
199
- delete_post_meta( $post->ID, '_csf_errors_'. $this->unique );
200
- }
201
-
202
- wp_nonce_field( 'csf_metabox_nonce', 'csf_metabox_nonce'. $this->unique );
203
-
204
- echo '<div class="csf csf-metabox'. esc_attr( $theme ) .'">';
205
-
206
- echo '<div class="csf-wrapper'. esc_attr( $show_all ) .'">';
207
-
208
- if ( $has_nav ) {
209
-
210
- echo '<div class="csf-nav csf-nav-'. esc_attr( $nav_type ) .' csf-nav-metabox">';
211
-
212
- echo '<ul>';
213
-
214
- $tab_key = 0;
215
-
216
- foreach ( $this->sections as $section ) {
217
-
218
- if ( ! empty( $section['post_type'] ) && ! in_array( $post_type, array_filter( (array) $section['post_type'] ) ) ) {
219
- continue;
220
- }
221
-
222
- $tab_error = ( ! empty( $errors['sections'][$tab_key] ) ) ? '<i class="csf-label-error csf-error">!</i>' : '';
223
- $tab_icon = ( ! empty( $section['icon'] ) ) ? '<i class="csf-tab-icon '. esc_attr( $section['icon'] ) .'"></i>' : '';
224
-
225
- echo '<li><a href="#">'. $tab_icon . $section['title'] . $tab_error .'</a></li>';
226
-
227
- $tab_key++;
228
-
229
- }
230
-
231
- echo '</ul>';
232
-
233
- echo '</div>';
234
-
235
- }
236
-
237
- echo '<div class="csf-content">';
238
-
239
- echo '<div class="csf-sections">';
240
-
241
- $section_key = 0;
242
-
243
- foreach ( $this->sections as $section ) {
244
-
245
- if ( ! empty( $section['post_type'] ) && ! in_array( $post_type, array_filter( (array) $section['post_type'] ) ) ) {
246
- continue;
247
- }
248
-
249
- $section_onload = ( ! $has_nav ) ? ' csf-onload' : '';
250
- $section_class = ( ! empty( $section['class'] ) ) ? ' '. $section['class'] : '';
251
- $section_title = ( ! empty( $section['title'] ) ) ? $section['title'] : '';
252
- $section_icon = ( ! empty( $section['icon'] ) ) ? '<i class="csf-section-icon '. esc_attr( $section['icon'] ) .'"></i>' : '';
253
-
254
- echo '<div class="csf-section hidden'. esc_attr( $section_onload . $section_class ) .'">';
255
-
256
- echo ( $section_title || $section_icon ) ? '<div class="csf-section-title"><h3>'. $section_icon . $section_title .'</h3></div>' : '';
257
- echo ( ! empty( $section['description'] ) ) ? '<div class="csf-field csf-section-description">'. $section['description'] .'</div>' : '';
258
-
259
- if ( ! empty( $section['fields'] ) ) {
260
-
261
- foreach ( $section['fields'] as $field ) {
262
-
263
- if ( ! empty( $field['id'] ) && ! empty( $errors['fields'][$field['id']] ) ) {
264
- $field['_error'] = $errors['fields'][$field['id']];
265
- }
266
-
267
- if ( ! empty( $field['id'] ) ) {
268
- $field['default'] = $this->get_default( $field );
269
- }
270
-
271
- CSF::field( $field, $this->get_meta_value( $field ), $this->unique, 'metabox' );
272
-
273
- }
274
-
275
- } else {
276
-
277
- echo '<div class="csf-no-option">'. esc_html__( 'No data available.', 'csf' ) .'</div>';
278
-
279
- }
280
-
281
- echo '</div>';
282
-
283
- $section_key++;
284
-
285
- }
286
-
287
- echo '</div>';
288
-
289
- if ( ! empty( $this->args['show_restore'] ) || ! empty( $this->args['show_reset'] ) ) {
290
-
291
- echo '<div class="csf-sections-reset">';
292
- echo '<label>';
293
- echo '<input type="checkbox" name="'. esc_attr( $this->unique ) .'[_reset]" />';
294
- echo '<span class="button csf-button-reset">'. esc_html__( 'Reset', 'csf' ) .'</span>';
295
- echo '<span class="button csf-button-cancel">'. sprintf( '<small>( %s )</small> %s', esc_html__( 'update post', 'csf' ), esc_html__( 'Cancel', 'csf' ) ) .'</span>';
296
- echo '</label>';
297
- echo '</div>';
298
-
299
- }
300
-
301
- echo '</div>';
302
-
303
- echo ( $has_nav && $nav_type === 'normal' ) ? '<div class="csf-nav-background"></div>' : '';
304
-
305
- echo '<div class="clear"></div>';
306
-
307
- echo '</div>';
308
-
309
- echo '</div>';
310
-
311
- }
312
-
313
- // save metabox
314
- public function save_meta_box( $post_id ) {
315
-
316
- $count = 1;
317
- $data = array();
318
- $errors = array();
319
- $noncekey = 'csf_metabox_nonce'. $this->unique;
320
- $nonce = ( ! empty( $_POST[ $noncekey ] ) ) ? sanitize_text_field( wp_unslash( $_POST[ $noncekey ] ) ) : '';
321
-
322
- if ( ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) || ! wp_verify_nonce( $nonce, 'csf_metabox_nonce' ) ) {
323
- return $post_id;
324
- }
325
-
326
- // XSS ok.
327
- // No worries, This "POST" requests is sanitizing in the below foreach.
328
- $request = ( ! empty( $_POST[ $this->unique ] ) ) ? $_POST[ $this->unique ] : array();
329
-
330
- if ( ! empty( $request ) ) {
331
-
332
- foreach ( $this->sections as $section ) {
333
-
334
- if ( ! empty( $section['fields'] ) ) {
335
-
336
- foreach ( $section['fields'] as $field ) {
337
-
338
- if ( ! empty( $field['id'] ) ) {
339
-
340
- $field_id = $field['id'];
341
- $field_value = isset( $request[$field_id] ) ? $request[$field_id] : '';
342
-
343
- // Sanitize "post" request of field.
344
- if ( ! isset( $field['sanitize'] ) ) {
345
-
346
- if( is_array( $field_value ) ) {
347
- $data[$field_id] = wp_kses_post_deep( $field_value );
348
- } else {
349
- $data[$field_id] = wp_kses_post( $field_value );
350
- }
351
-
352
- } else if( isset( $field['sanitize'] ) && is_callable( $field['sanitize'] ) ) {
353
-
354
- $data[$field_id] = call_user_func( $field['sanitize'], $field_value );
355
-
356
- } else {
357
-
358
- $data[$field_id] = $field_value;
359
-
360
- }
361
-
362
- // Validate "post" request of field.
363
- if ( isset( $field['validate'] ) && is_callable( $field['validate'] ) ) {
364
-
365
- $has_validated = call_user_func( $field['validate'], $field_value );
366
-
367
- if ( ! empty( $has_validated ) ) {
368
-
369
- $errors['sections'][$count] = true;
370
- $errors['fields'][$field_id] = $has_validated;
371
- $data[$field_id] = $this->get_meta_value( $field );
372
-
373
- }
374
-
375
- }
376
-
377
- }
378
-
379
- }
380
-
381
- }
382
-
383
- $count++;
384
-
385
- }
386
-
387
- }
388
-
389
- $data = apply_filters( "csf_{$this->unique}_save", $data, $post_id, $this );
390
-
391
- do_action( "csf_{$this->unique}_save_before", $data, $post_id, $this );
392
-
393
- if ( empty( $data ) || ! empty( $request['_reset'] ) ) {
394
-
395
- if ( $this->args['data_type'] !== 'serialize' ) {
396
- foreach ( $data as $key => $value ) {
397
- delete_post_meta( $post_id, $key );
398
- }
399
- } else {
400
- delete_post_meta( $post_id, $this->unique );
401
- }
402
-
403
- } else {
404
-
405
- if ( $this->args['data_type'] !== 'serialize' ) {
406
- foreach ( $data as $key => $value ) {
407
- update_post_meta( $post_id, $key, $value );
408
- }
409
- } else {
410
- update_post_meta( $post_id, $this->unique, $data );
411
- }
412
-
413
- if ( ! empty( $errors ) ) {
414
- update_post_meta( $post_id, '_csf_errors_'. $this->unique, $errors );
415
- }
416
-
417
- }
418
-
419
- do_action( "csf_{$this->unique}_saved", $data, $post_id, $this );
420
-
421
- do_action( "csf_{$this->unique}_save_after", $data, $post_id, $this );
422
-
423
- }
424
- }
425
- }
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Metabox Class
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if ( ! class_exists( 'CSF_Metabox' ) ) {
11
+ class CSF_Metabox extends CSF_Abstract{
12
+
13
+ // constans
14
+ public $unique = '';
15
+ public $abstract = 'metabox';
16
+ public $pre_fields = array();
17
+ public $sections = array();
18
+ public $post_type = array();
19
+ public $args = array(
20
+ 'title' => '',
21
+ 'post_type' => 'post',
22
+ 'data_type' => 'serialize',
23
+ 'context' => 'advanced',
24
+ 'priority' => 'default',
25
+ 'exclude_post_types' => array(),
26
+ 'page_templates' => '',
27
+ 'post_formats' => '',
28
+ 'show_reset' => false,
29
+ 'show_restore' => false,
30
+ 'enqueue_webfont' => true,
31
+ 'async_webfont' => false,
32
+ 'output_css' => true,
33
+ 'nav' => 'normal',
34
+ 'theme' => 'dark',
35
+ 'class' => '',
36
+ 'defaults' => array(),
37
+ );
38
+
39
+ // run metabox construct
40
+ public function __construct( $key, $params = array() ) {
41
+
42
+ $this->unique = $key;
43
+ $this->args = apply_filters( "csf_{$this->unique}_args", wp_parse_args( $params['args'], $this->args ), $this );
44
+ $this->sections = apply_filters( "csf_{$this->unique}_sections", $params['sections'], $this );
45
+ $this->post_type = ( is_array( $this->args['post_type'] ) ) ? $this->args['post_type'] : array_filter( (array) $this->args['post_type'] );
46
+ $this->post_formats = ( is_array( $this->args['post_formats'] ) ) ? $this->args['post_formats'] : array_filter( (array) $this->args['post_formats'] );
47
+ $this->page_templates = ( is_array( $this->args['page_templates'] ) ) ? $this->args['page_templates'] : array_filter( (array) $this->args['page_templates'] );
48
+ $this->pre_fields = $this->pre_fields( $this->sections );
49
+
50
+ add_action( 'add_meta_boxes', array( $this, 'add_meta_box' ) );
51
+ add_action( 'save_post', array( $this, 'save_meta_box' ) );
52
+ add_action( 'edit_attachment', array( $this, 'save_meta_box' ) );
53
+
54
+ if ( ! empty( $this->page_templates ) || ! empty( $this->post_formats ) || ! empty( $this->args['class'] ) ) {
55
+ foreach ( $this->post_type as $post_type ) {
56
+ add_filter( 'postbox_classes_'. $post_type .'_'. $this->unique, array( $this, 'add_metabox_classes' ) );
57
+ }
58
+ }
59
+
60
+ // wp enqeueu for typography and output css
61
+ parent::__construct();
62
+
63
+ }
64
+
65
+ // instance
66
+ public static function instance( $key, $params = array() ) {
67
+ return new self( $key, $params );
68
+ }
69
+
70
+ public function pre_fields( $sections ) {
71
+
72
+ $result = array();
73
+
74
+ foreach ( $sections as $key => $section ) {
75
+ if ( ! empty( $section['fields'] ) ) {
76
+ foreach ( $section['fields'] as $field ) {
77
+ $result[] = $field;
78
+ }
79
+ }
80
+ }
81
+
82
+ return $result;
83
+
84
+ }
85
+
86
+ public function add_metabox_classes( $classes ) {
87
+
88
+ global $post;
89
+
90
+ if ( ! empty( $this->post_formats ) ) {
91
+
92
+ $saved_post_format = ( is_object( $post ) ) ? get_post_format( $post ) : false;
93
+ $saved_post_format = ( ! empty( $saved_post_format ) ) ? $saved_post_format : 'default';
94
+
95
+ $classes[] = 'csf-post-formats';
96
+
97
+ // Sanitize post format for standard to default
98
+ if ( ( $key = array_search( 'standard', $this->post_formats ) ) !== false ) {
99
+ $this->post_formats[$key] = 'default';
100
+ }
101
+
102
+ foreach ( $this->post_formats as $format ) {
103
+ $classes[] = 'csf-post-format-'. $format;
104
+ }
105
+
106
+ if ( ! in_array( $saved_post_format, $this->post_formats ) ) {
107
+ $classes[] = 'csf-metabox-hide';
108
+ } else {
109
+ $classes[] = 'csf-metabox-show';
110
+ }
111
+
112
+ }
113
+
114
+ if ( ! empty( $this->page_templates ) ) {
115
+
116
+ $saved_template = ( is_object( $post ) && ! empty( $post->page_template ) ) ? $post->page_template : 'default';
117
+
118
+ $classes[] = 'csf-page-templates';
119
+
120
+ foreach ( $this->page_templates as $template ) {
121
+ $classes[] = 'csf-page-'. preg_replace( '/[^a-zA-Z0-9]+/', '-', strtolower( $template ) );
122
+ }
123
+
124
+ if ( ! in_array( $saved_template, $this->page_templates ) ) {
125
+ $classes[] = 'csf-metabox-hide';
126
+ } else {
127
+ $classes[] = 'csf-metabox-show';
128
+ }
129
+
130
+ }
131
+
132
+ if ( ! empty( $this->args['class'] ) ) {
133
+ $classes[] = $this->args['class'];
134
+ }
135
+
136
+ return $classes;
137
+
138
+ }
139
+
140
+ // add metabox
141
+ public function add_meta_box( $post_type ) {
142
+
143
+ if ( ! in_array( $post_type, $this->args['exclude_post_types'] ) ) {
144
+ add_meta_box( $this->unique, $this->args['title'], array( $this, 'add_meta_box_content' ), $this->post_type, $this->args['context'], $this->args['priority'], $this->args );
145
+ }
146
+
147
+ }
148
+
149
+ // get default value
150
+ public function get_default( $field ) {
151
+
152
+ $default = ( isset( $field['default'] ) ) ? $field['default'] : '';
153
+ $default = ( isset( $this->args['defaults'][$field['id']] ) ) ? $this->args['defaults'][$field['id']] : $default;
154
+
155
+ return $default;
156
+
157
+ }
158
+
159
+ // get meta value
160
+ public function get_meta_value( $field ) {
161
+
162
+ global $post;
163
+
164
+ $value = null;
165
+
166
+ if ( is_object( $post ) && ! empty( $field['id'] ) ) {
167
+
168
+ if ( $this->args['data_type'] !== 'serialize' ) {
169
+ $meta = get_post_meta( $post->ID, $field['id'] );
170
+ $value = ( isset( $meta[0] ) ) ? $meta[0] : null;
171
+ } else {
172
+ $meta = get_post_meta( $post->ID, $this->unique, true );
173
+ $value = ( isset( $meta[$field['id']] ) ) ? $meta[$field['id']] : null;
174
+ }
175
+
176
+ }
177
+
178
+ $default = ( isset( $field['id'] ) ) ? $this->get_default( $field ) : '';
179
+ $value = ( isset( $value ) ) ? $value : $default;
180
+
181
+ return $value;
182
+
183
+ }
184
+
185
+ // add metabox content
186
+ public function add_meta_box_content( $post, $callback ) {
187
+
188
+ global $post;
189
+
190
+ $has_nav = ( count( $this->sections ) > 1 && $this->args['context'] !== 'side' ) ? true : false;
191
+ $show_all = ( ! $has_nav ) ? ' csf-show-all' : '';
192
+ $post_type = ( is_object ( $post ) ) ? $post->post_type : '';
193
+ $errors = ( is_object ( $post ) ) ? get_post_meta( $post->ID, '_csf_errors_'. $this->unique, true ) : array();
194
+ $errors = ( ! empty( $errors ) ) ? $errors : array();
195
+ $theme = ( $this->args['theme'] ) ? ' csf-theme-'. $this->args['theme'] : '';
196
+ $nav_type = ( $this->args['nav'] === 'inline' ) ? 'inline' : 'normal';
197
+
198
+ if ( is_object ( $post ) && ! empty( $errors ) ) {
199
+ delete_post_meta( $post->ID, '_csf_errors_'. $this->unique );
200
+ }
201
+
202
+ wp_nonce_field( 'csf_metabox_nonce', 'csf_metabox_nonce'. $this->unique );
203
+
204
+ echo '<div class="csf csf-metabox'. esc_attr( $theme ) .'">';
205
+
206
+ echo '<div class="csf-wrapper'. esc_attr( $show_all ) .'">';
207
+
208
+ if ( $has_nav ) {
209
+
210
+ echo '<div class="csf-nav csf-nav-'. esc_attr( $nav_type ) .' csf-nav-metabox">';
211
+
212
+ echo '<ul>';
213
+
214
+ $tab_key = 0;
215
+
216
+ foreach ( $this->sections as $section ) {
217
+
218
+ if ( ! empty( $section['post_type'] ) && ! in_array( $post_type, array_filter( (array) $section['post_type'] ) ) ) {
219
+ continue;
220
+ }
221
+
222
+ $tab_error = ( ! empty( $errors['sections'][$tab_key] ) ) ? '<i class="csf-label-error csf-error">!</i>' : '';
223
+ $tab_icon = ( ! empty( $section['icon'] ) ) ? '<i class="csf-tab-icon '. esc_attr( $section['icon'] ) .'"></i>' : '';
224
+
225
+ echo '<li><a href="#">'. $tab_icon . $section['title'] . $tab_error .'</a></li>';
226
+
227
+ $tab_key++;
228
+
229
+ }
230
+
231
+ echo '</ul>';
232
+
233
+ echo '</div>';
234
+
235
+ }
236
+
237
+ echo '<div class="csf-content">';
238
+
239
+ echo '<div class="csf-sections">';
240
+
241
+ $section_key = 0;
242
+
243
+ foreach ( $this->sections as $section ) {
244
+
245
+ if ( ! empty( $section['post_type'] ) && ! in_array( $post_type, array_filter( (array) $section['post_type'] ) ) ) {
246
+ continue;
247
+ }
248
+
249
+ $section_onload = ( ! $has_nav ) ? ' csf-onload' : '';
250
+ $section_class = ( ! empty( $section['class'] ) ) ? ' '. $section['class'] : '';
251
+ $section_title = ( ! empty( $section['title'] ) ) ? $section['title'] : '';
252
+ $section_icon = ( ! empty( $section['icon'] ) ) ? '<i class="csf-section-icon '. esc_attr( $section['icon'] ) .'"></i>' : '';
253
+
254
+ echo '<div class="csf-section hidden'. esc_attr( $section_onload . $section_class ) .'">';
255
+
256
+ echo ( $section_title || $section_icon ) ? '<div class="csf-section-title"><h3>'. $section_icon . $section_title .'</h3></div>' : '';
257
+ echo ( ! empty( $section['description'] ) ) ? '<div class="csf-field csf-section-description">'. $section['description'] .'</div>' : '';
258
+
259
+ if ( ! empty( $section['fields'] ) ) {
260
+
261
+ foreach ( $section['fields'] as $field ) {
262
+
263
+ if ( ! empty( $field['id'] ) && ! empty( $errors['fields'][$field['id']] ) ) {
264
+ $field['_error'] = $errors['fields'][$field['id']];
265
+ }
266
+
267
+ if ( ! empty( $field['id'] ) ) {
268
+ $field['default'] = $this->get_default( $field );
269
+ }
270
+
271
+ CSF::field( $field, $this->get_meta_value( $field ), $this->unique, 'metabox' );
272
+
273
+ }
274
+
275
+ } else {
276
+
277
+ echo '<div class="csf-no-option">'. esc_html__( 'No data available.', 'csf' ) .'</div>';
278
+
279
+ }
280
+
281
+ echo '</div>';
282
+
283
+ $section_key++;
284
+
285
+ }
286
+
287
+ echo '</div>';
288
+
289
+ if ( ! empty( $this->args['show_restore'] ) || ! empty( $this->args['show_reset'] ) ) {
290
+
291
+ echo '<div class="csf-sections-reset">';
292
+ echo '<label>';
293
+ echo '<input type="checkbox" name="'. esc_attr( $this->unique ) .'[_reset]" />';
294
+ echo '<span class="button csf-button-reset">'. esc_html__( 'Reset', 'csf' ) .'</span>';
295
+ echo '<span class="button csf-button-cancel">'. sprintf( '<small>( %s )</small> %s', esc_html__( 'update post', 'csf' ), esc_html__( 'Cancel', 'csf' ) ) .'</span>';
296
+ echo '</label>';
297
+ echo '</div>';
298
+
299
+ }
300
+
301
+ echo '</div>';
302
+
303
+ echo ( $has_nav && $nav_type === 'normal' ) ? '<div class="csf-nav-background"></div>' : '';
304
+
305
+ echo '<div class="clear"></div>';
306
+
307
+ echo '</div>';
308
+
309
+ echo '</div>';
310
+
311
+ }
312
+
313
+ // save metabox
314
+ public function save_meta_box( $post_id ) {
315
+
316
+ $count = 1;
317
+ $data = array();
318
+ $errors = array();
319
+ $noncekey = 'csf_metabox_nonce'. $this->unique;
320
+ $nonce = ( ! empty( $_POST[ $noncekey ] ) ) ? sanitize_text_field( wp_unslash( $_POST[ $noncekey ] ) ) : '';
321
+
322
+ if ( ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) || ! wp_verify_nonce( $nonce, 'csf_metabox_nonce' ) ) {
323
+ return $post_id;
324
+ }
325
+
326
+ // XSS ok.
327
+ // No worries, This "POST" requests is sanitizing in the below foreach.
328
+ $request = ( ! empty( $_POST[ $this->unique ] ) ) ? $_POST[ $this->unique ] : array();
329
+
330
+ if ( ! empty( $request ) ) {
331
+
332
+ foreach ( $this->sections as $section ) {
333
+
334
+ if ( ! empty( $section['fields'] ) ) {
335
+
336
+ foreach ( $section['fields'] as $field ) {
337
+
338
+ if ( ! empty( $field['id'] ) ) {
339
+
340
+ $field_id = $field['id'];
341
+ $field_value = isset( $request[$field_id] ) ? $request[$field_id] : '';
342
+
343
+ // Sanitize "post" request of field.
344
+ if ( ! isset( $field['sanitize'] ) ) {
345
+
346
+ if( is_array( $field_value ) ) {
347
+ $data[$field_id] = wp_kses_post_deep( $field_value );
348
+ } else {
349
+ $data[$field_id] = wp_kses_post( $field_value );
350
+ }
351
+
352
+ } else if( isset( $field['sanitize'] ) && is_callable( $field['sanitize'] ) ) {
353
+
354
+ $data[$field_id] = call_user_func( $field['sanitize'], $field_value );
355
+
356
+ } else {
357
+
358
+ $data[$field_id] = $field_value;
359
+
360
+ }
361
+
362
+ // Validate "post" request of field.
363
+ if ( isset( $field['validate'] ) && is_callable( $field['validate'] ) ) {
364
+
365
+ $has_validated = call_user_func( $field['validate'], $field_value );
366
+
367
+ if ( ! empty( $has_validated ) ) {
368
+
369
+ $errors['sections'][$count] = true;
370
+ $errors['fields'][$field_id] = $has_validated;
371
+ $data[$field_id] = $this->get_meta_value( $field );
372
+
373
+ }
374
+
375
+ }
376
+
377
+ }
378
+
379
+ }
380
+
381
+ }
382
+
383
+ $count++;
384
+
385
+ }
386
+
387
+ }
388
+
389
+ $data = apply_filters( "csf_{$this->unique}_save", $data, $post_id, $this );
390
+
391
+ do_action( "csf_{$this->unique}_save_before", $data, $post_id, $this );
392
+
393
+ if ( empty( $data ) || ! empty( $request['_reset'] ) ) {
394
+
395
+ if ( $this->args['data_type'] !== 'serialize' ) {
396
+ foreach ( $data as $key => $value ) {
397
+ delete_post_meta( $post_id, $key );
398
+ }
399
+ } else {
400
+ delete_post_meta( $post_id, $this->unique );
401
+ }
402
+
403
+ } else {
404
+
405
+ if ( $this->args['data_type'] !== 'serialize' ) {
406
+ foreach ( $data as $key => $value ) {
407
+ update_post_meta( $post_id, $key, $value );
408
+ }
409
+ } else {
410
+ update_post_meta( $post_id, $this->unique, $data );
411
+ }
412
+
413
+ if ( ! empty( $errors ) ) {
414
+ update_post_meta( $post_id, '_csf_errors_'. $this->unique, $errors );
415
+ }
416
+
417
+ }
418
+
419
+ do_action( "csf_{$this->unique}_saved", $data, $post_id, $this );
420
+
421
+ do_action( "csf_{$this->unique}_save_after", $data, $post_id, $this );
422
+
423
+ }
424
+ }
425
+ }
vendor/codestar-framework/classes/nav-menu-options.class.php CHANGED
@@ -1,255 +1,255 @@
1
- <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
- /**
3
- *
4
- * Nav Menu Options Class
5
- *
6
- * @since 1.0.0
7
- * @version 1.0.0
8
- *
9
- */
10
- if ( ! class_exists( 'CSF_Nav_Menu_Options' ) ) {
11
- class CSF_Nav_Menu_Options extends CSF_Abstract{
12
-
13
- // constans
14
- public $unique = '';
15
- public $abstract = 'menu';
16
- public $sections = array();
17
- public $args = array(
18
- 'data_type' => 'serialize',
19
- 'class' => '',
20
- 'defaults' => array(),
21
- );
22
-
23
- // run menu construct
24
- public function __construct( $key, $params ) {
25
-
26
- $this->unique = $key;
27
- $this->args = apply_filters( "csf_{$this->unique}_args", wp_parse_args( $params['args'], $this->args ), $this );
28
- $this->sections = apply_filters( "csf_{$this->unique}_sections", $params['sections'], $this );
29
-
30
- add_action( 'wp_nav_menu_item_custom_fields', array( $this, 'wp_nav_menu_item_custom_fields' ), 10, 4 );
31
- add_action( 'wp_update_nav_menu_item', array( $this, 'wp_update_nav_menu_item' ), 10, 3 );
32
-
33
- add_filter( 'wp_edit_nav_menu_walker', array( $this, 'wp_edit_nav_menu_walker' ), 10, 2 );
34
-
35
- }
36
-
37
- // instance
38
- public static function instance( $key, $params ) {
39
- return new self( $key, $params );
40
- }
41
-
42
- public function wp_edit_nav_menu_walker( $class, $menu_id ) {
43
-
44
- global $wp_version;
45
-
46
- if( version_compare( $wp_version, '5.4.0', '<' ) ) {
47
-
48
- if ( ! class_exists( 'CSF_Walker_Nav_Menu_Edit' ) ) {
49
- CSF::include_plugin_file( 'functions/walker.php' );
50
- }
51
-
52
- return 'CSF_Walker_Nav_Menu_Edit';
53
-
54
- }
55
-
56
- return $class;
57
-
58
- }
59
-
60
- // get default value
61
- public function get_default( $field ) {
62
-
63
- $default = ( isset( $field['default'] ) ) ? $field['default'] : '';
64
- $default = ( isset( $this->args['defaults'][$field['id']] ) ) ? $this->args['defaults'][$field['id']] : $default;
65
-
66
- return $default;
67
-
68
- }
69
-
70
- // get meta value
71
- public function get_meta_value( $menu_item_id, $field ) {
72
-
73
- $value = null;
74
-
75
- if ( ! empty( $menu_item_id ) && ! empty( $field['id'] ) ) {
76
-
77
- if ( $this->args['data_type'] !== 'serialize' ) {
78
- $meta = get_post_meta( $menu_item_id, $field['id'] );
79
- $value = ( isset( $meta[0] ) ) ? $meta[0] : null;
80
- } else {
81
- $meta = get_post_meta( $menu_item_id, $this->unique, true );
82
- $value = ( isset( $meta[$field['id']] ) ) ? $meta[$field['id']] : null;
83
- }
84
-
85
- }
86
-
87
- $default = ( isset( $field['id'] ) ) ? $this->get_default( $field ) : '';
88
- $value = ( isset( $value ) ) ? $value : $default;
89
-
90
- return $value;
91
-
92
- }
93
-
94
- //
95
- public function wp_nav_menu_item_custom_fields( $menu_item_id, $item, $depth, $args ) {
96
-
97
- $errors = ( ! empty( $menu_item_id ) ) ? get_post_meta( $menu_item_id, '_csf_errors_'. $this->unique, true ) : array();
98
- $errors = ( ! empty( $errors ) ) ? $errors : array();
99
- $class = ( $this->args['class'] ) ? ' '. $this->args['class'] : '';
100
-
101
- if ( ! empty( $errors ) ) {
102
- delete_post_meta( $menu_item_id, '_csf_errors_'. $this->unique );
103
- }
104
-
105
- echo '<div class="csf csf-nav-menu-options'. esc_attr( $class ) .'">';
106
-
107
- foreach ( $this->sections as $section ) {
108
-
109
- $section_icon = ( ! empty( $section['icon'] ) ) ? '<i class="csf-nav-menu-icon '. esc_attr( $section['icon'] ) .'"></i>' : '';
110
- $section_title = ( ! empty( $section['title'] ) ) ? $section['title'] : '';
111
-
112
- echo '<div class="csf-fields">';
113
-
114
- echo ( $section_title || $section_icon ) ? '<div class="csf-nav-menu-title"><h4>'. $section_icon . $section_title .'</h4></div>' : '';
115
- echo ( ! empty( $section['description'] ) ) ? '<div class="csf-field csf-section-description">'. $section['description'] .'</div>' : '';
116
-
117
- if ( ! empty( $section['fields'] ) ) {
118
-
119
- foreach ( $section['fields'] as $field ) {
120
-
121
- if ( ! empty( $field['id'] ) && ! empty( $errors['fields'][$field['id']] ) ) {
122
- $field['_error'] = $errors['fields'][$field['id']];
123
- }
124
-
125
- if ( ! empty( $field['id'] ) ) {
126
- $field['default'] = $this->get_default( $field );
127
- }
128
-
129
- CSF::field( $field, $this->get_meta_value( $menu_item_id, $field ), $this->unique .'['. $menu_item_id .']', 'menu' );
130
-
131
- }
132
-
133
- }
134
-
135
- echo '</div>';
136
-
137
- }
138
-
139
- echo '</div>';
140
-
141
- }
142
-
143
- public function wp_update_nav_menu_item( $menu_id, $menu_item_db_id, $menu_item_args ) {
144
-
145
- $count = 1;
146
- $data = array();
147
- $errors = array();
148
- $noncekey = 'update-nav-menu-nonce';
149
- $nonce = ( ! empty( $_POST[ $noncekey ] ) ) ? sanitize_text_field( wp_unslash( $_POST[ $noncekey ] ) ) : '';
150
-
151
- if ( ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) || ! wp_verify_nonce( $nonce, 'update-nav_menu' ) ) {
152
- return $menu_item_db_id;
153
- }
154
-
155
- // XSS ok.
156
- // No worries, This "POST" requests is sanitizing in the below foreach.
157
- $request = ( ! empty( $_POST[ $this->unique ][ $menu_item_db_id ] ) ) ? $_POST[ $this->unique ][ $menu_item_db_id ] : array();
158
-
159
- if ( ! empty( $request ) ) {
160
-
161
- foreach ( $this->sections as $section ) {
162
-
163
- if ( ! empty( $section['fields'] ) ) {
164
-
165
- foreach ( $section['fields'] as $field ) {
166
-
167
- if ( ! empty( $field['id'] ) ) {
168
-
169
- $field_id = $field['id'];
170
- $field_value = isset( $request[$field_id] ) ? $request[$field_id] : '';
171
-
172
- // Sanitize "post" request of field.
173
- if ( ! isset( $field['sanitize'] ) ) {
174
-
175
- if( is_array( $field_value ) ) {
176
- $data[$field_id] = wp_kses_post_deep( $field_value );
177
- } else {
178
- $data[$field_id] = wp_kses_post( $field_value );
179
- }
180
-
181
- } else if( isset( $field['sanitize'] ) && is_callable( $field['sanitize'] ) ) {
182
-
183
- $data[$field_id] = call_user_func( $field['sanitize'], $field_value );
184
-
185
- } else {
186
-
187
- $data[$field_id] = $field_value;
188
-
189
- }
190
-
191
- // Validate "post" request of field.
192
- if ( isset( $field['validate'] ) && is_callable( $field['validate'] ) ) {
193
-
194
- $has_validated = call_user_func( $field['validate'], $field_value );
195
-
196
- if ( ! empty( $has_validated ) ) {
197
-
198
- $errors['sections'][$count] = true;
199
- $errors['fields'][$field_id] = $has_validated;
200
- $data[$field_id] = $this->get_meta_value( $menu_item_db_id, $field );
201
-
202
- }
203
-
204
- }
205
-
206
- }
207
-
208
- }
209
-
210
- }
211
-
212
- $count++;
213
-
214
- }
215
-
216
- }
217
-
218
- $data = apply_filters( "csf_{$this->unique}_save", $data, $menu_item_db_id, $this );
219
-
220
- do_action( "csf_{$this->unique}_save_before", $data, $menu_item_db_id, $this );
221
-
222
- if ( empty( $data ) ) {
223
-
224
- if ( $this->args['data_type'] !== 'serialize' ) {
225
- foreach ( $data as $key => $value ) {
226
- delete_post_meta( $menu_item_db_id, $key );
227
- }
228
- } else {
229
- delete_post_meta( $menu_item_db_id, $this->unique );
230
- }
231
-
232
- } else {
233
-
234
- if ( $this->args['data_type'] !== 'serialize' ) {
235
- foreach ( $data as $key => $value ) {
236
- update_post_meta( $menu_item_db_id, $key, $value );
237
- }
238
- } else {
239
- update_post_meta( $menu_item_db_id, $this->unique, $data );
240
- }
241
-
242
- if ( ! empty( $errors ) ) {
243
- update_post_meta( $menu_item_db_id, '_csf_errors_'. $this->unique, $errors );
244
- }
245
-
246
- }
247
-
248
- do_action( "csf_{$this->unique}_saved", $data, $menu_item_db_id, $this );
249
-
250
- do_action( "csf_{$this->unique}_save_after", $data, $menu_item_db_id, $this );
251
-
252
- }
253
-
254
- }
255
- }
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Nav Menu Options Class
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if ( ! class_exists( 'CSF_Nav_Menu_Options' ) ) {
11
+ class CSF_Nav_Menu_Options extends CSF_Abstract{
12
+
13
+ // constans
14
+ public $unique = '';
15
+ public $abstract = 'menu';
16
+ public $sections = array();
17
+ public $args = array(
18
+ 'data_type' => 'serialize',
19
+ 'class' => '',
20
+ 'defaults' => array(),
21
+ );
22
+
23
+ // run menu construct
24
+ public function __construct( $key, $params ) {
25
+
26
+ $this->unique = $key;
27
+ $this->args = apply_filters( "csf_{$this->unique}_args", wp_parse_args( $params['args'], $this->args ), $this );
28
+ $this->sections = apply_filters( "csf_{$this->unique}_sections", $params['sections'], $this );
29
+
30
+ add_action( 'wp_nav_menu_item_custom_fields', array( $this, 'wp_nav_menu_item_custom_fields' ), 10, 4 );
31
+ add_action( 'wp_update_nav_menu_item', array( $this, 'wp_update_nav_menu_item' ), 10, 3 );
32
+
33
+ add_filter( 'wp_edit_nav_menu_walker', array( $this, 'wp_edit_nav_menu_walker' ), 10, 2 );
34
+
35
+ }
36
+
37
+ // instance
38
+ public static function instance( $key, $params ) {
39
+ return new self( $key, $params );
40
+ }
41
+
42
+ public function wp_edit_nav_menu_walker( $class, $menu_id ) {
43
+
44
+ global $wp_version;
45
+
46
+ if( version_compare( $wp_version, '5.4.0', '<' ) ) {
47
+
48
+ if ( ! class_exists( 'CSF_Walker_Nav_Menu_Edit' ) ) {
49
+ CSF::include_plugin_file( 'functions/walker.php' );
50
+ }
51
+
52
+ return 'CSF_Walker_Nav_Menu_Edit';
53
+
54
+ }
55
+
56
+ return $class;
57
+
58
+ }
59
+
60
+ // get default value
61
+ public function get_default( $field ) {
62
+
63
+ $default = ( isset( $field['default'] ) ) ? $field['default'] : '';
64
+ $default = ( isset( $this->args['defaults'][$field['id']] ) ) ? $this->args['defaults'][$field['id']] : $default;
65
+
66
+ return $default;
67
+
68
+ }
69
+
70
+ // get meta value
71
+ public function get_meta_value( $menu_item_id, $field ) {
72
+
73
+ $value = null;
74
+
75
+ if ( ! empty( $menu_item_id ) && ! empty( $field['id'] ) ) {
76
+
77
+ if ( $this->args['data_type'] !== 'serialize' ) {
78
+ $meta = get_post_meta( $menu_item_id, $field['id'] );
79
+ $value = ( isset( $meta[0] ) ) ? $meta[0] : null;
80
+ } else {
81
+ $meta = get_post_meta( $menu_item_id, $this->unique, true );
82
+ $value = ( isset( $meta[$field['id']] ) ) ? $meta[$field['id']] : null;
83
+ }
84
+
85
+ }
86
+
87
+ $default = ( isset( $field['id'] ) ) ? $this->get_default( $field ) : '';
88
+ $value = ( isset( $value ) ) ? $value : $default;
89
+
90
+ return $value;
91
+
92
+ }
93
+
94
+ //
95
+ public function wp_nav_menu_item_custom_fields( $menu_item_id, $item, $depth, $args ) {
96
+
97
+ $errors = ( ! empty( $menu_item_id ) ) ? get_post_meta( $menu_item_id, '_csf_errors_'. $this->unique, true ) : array();
98
+ $errors = ( ! empty( $errors ) ) ? $errors : array();
99
+ $class = ( $this->args['class'] ) ? ' '. $this->args['class'] : '';
100
+
101
+ if ( ! empty( $errors ) ) {
102
+ delete_post_meta( $menu_item_id, '_csf_errors_'. $this->unique );
103
+ }
104
+
105
+ echo '<div class="csf csf-nav-menu-options'. esc_attr( $class ) .'">';
106
+
107
+ foreach ( $this->sections as $section ) {
108
+
109
+ $section_icon = ( ! empty( $section['icon'] ) ) ? '<i class="csf-nav-menu-icon '. esc_attr( $section['icon'] ) .'"></i>' : '';
110
+ $section_title = ( ! empty( $section['title'] ) ) ? $section['title'] : '';
111
+
112
+ echo '<div class="csf-fields">';
113
+
114
+ echo ( $section_title || $section_icon ) ? '<div class="csf-nav-menu-title"><h4>'. $section_icon . $section_title .'</h4></div>' : '';
115
+ echo ( ! empty( $section['description'] ) ) ? '<div class="csf-field csf-section-description">'. $section['description'] .'</div>' : '';
116
+
117
+ if ( ! empty( $section['fields'] ) ) {
118
+
119
+ foreach ( $section['fields'] as $field ) {
120
+
121
+ if ( ! empty( $field['id'] ) && ! empty( $errors['fields'][$field['id']] ) ) {
122
+ $field['_error'] = $errors['fields'][$field['id']];
123
+ }
124
+
125
+ if ( ! empty( $field['id'] ) ) {
126
+ $field['default'] = $this->get_default( $field );
127
+ }
128
+
129
+ CSF::field( $field, $this->get_meta_value( $menu_item_id, $field ), $this->unique .'['. $menu_item_id .']', 'menu' );
130
+
131
+ }
132
+
133
+ }
134
+
135
+ echo '</div>';
136
+
137
+ }
138
+
139
+ echo '</div>';
140
+
141
+ }
142
+
143
+ public function wp_update_nav_menu_item( $menu_id, $menu_item_db_id, $menu_item_args ) {
144
+
145
+ $count = 1;
146
+ $data = array();
147
+ $errors = array();
148
+ $noncekey = 'update-nav-menu-nonce';
149
+ $nonce = ( ! empty( $_POST[ $noncekey ] ) ) ? sanitize_text_field( wp_unslash( $_POST[ $noncekey ] ) ) : '';
150
+
151
+ if ( ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) || ! wp_verify_nonce( $nonce, 'update-nav_menu' ) ) {
152
+ return $menu_item_db_id;
153
+ }
154
+
155
+ // XSS ok.
156
+ // No worries, This "POST" requests is sanitizing in the below foreach.
157
+ $request = ( ! empty( $_POST[ $this->unique ][ $menu_item_db_id ] ) ) ? $_POST[ $this->unique ][ $menu_item_db_id ] : array();
158
+
159
+ if ( ! empty( $request ) ) {
160
+
161
+ foreach ( $this->sections as $section ) {
162
+
163
+ if ( ! empty( $section['fields'] ) ) {
164
+
165
+ foreach ( $section['fields'] as $field ) {
166
+
167
+ if ( ! empty( $field['id'] ) ) {
168
+
169
+ $field_id = $field['id'];
170
+ $field_value = isset( $request[$field_id] ) ? $request[$field_id] : '';
171
+
172
+ // Sanitize "post" request of field.
173
+ if ( ! isset( $field['sanitize'] ) ) {
174
+
175
+ if( is_array( $field_value ) ) {
176
+ $data[$field_id] = wp_kses_post_deep( $field_value );
177
+ } else {
178
+ $data[$field_id] = wp_kses_post( $field_value );
179
+ }
180
+
181
+ } else if( isset( $field['sanitize'] ) && is_callable( $field['sanitize'] ) ) {
182
+
183
+ $data[$field_id] = call_user_func( $field['sanitize'], $field_value );
184
+
185
+ } else {
186
+
187
+ $data[$field_id] = $field_value;
188
+
189
+ }
190
+
191
+ // Validate "post" request of field.
192
+ if ( isset( $field['validate'] ) && is_callable( $field['validate'] ) ) {
193
+
194
+ $has_validated = call_user_func( $field['validate'], $field_value );
195
+
196
+ if ( ! empty( $has_validated ) ) {
197
+
198
+ $errors['sections'][$count] = true;
199
+ $errors['fields'][$field_id] = $has_validated;
200
+ $data[$field_id] = $this->get_meta_value( $menu_item_db_id, $field );
201
+
202
+ }
203
+
204
+ }
205
+
206
+ }
207
+
208
+ }
209
+
210
+ }
211
+
212
+ $count++;
213
+
214
+ }
215
+
216
+ }
217
+
218
+ $data = apply_filters( "csf_{$this->unique}_save", $data, $menu_item_db_id, $this );
219
+
220
+ do_action( "csf_{$this->unique}_save_before", $data, $menu_item_db_id, $this );
221
+
222
+ if ( empty( $data ) ) {
223
+
224
+ if ( $this->args['data_type'] !== 'serialize' ) {
225
+ foreach ( $data as $key => $value ) {
226
+ delete_post_meta( $menu_item_db_id, $key );
227
+ }
228
+ } else {
229
+ delete_post_meta( $menu_item_db_id, $this->unique );
230
+ }
231
+
232
+ } else {
233
+
234
+ if ( $this->args['data_type'] !== 'serialize' ) {
235
+ foreach ( $data as $key => $value ) {
236
+ update_post_meta( $menu_item_db_id, $key, $value );
237
+ }
238
+ } else {
239
+ update_post_meta( $menu_item_db_id, $this->unique, $data );
240
+ }
241
+
242
+ if ( ! empty( $errors ) ) {
243
+ update_post_meta( $menu_item_db_id, '_csf_errors_'. $this->unique, $errors );
244
+ }
245
+
246
+ }
247
+
248
+ do_action( "csf_{$this->unique}_saved", $data, $menu_item_db_id, $this );
249
+
250
+ do_action( "csf_{$this->unique}_save_after", $data, $menu_item_db_id, $this );
251
+
252
+ }
253
+
254
+ }
255
+ }
vendor/codestar-framework/classes/profile-options.class.php CHANGED
@@ -1,245 +1,245 @@
1
- <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
- /**
3
- *
4
- * Profile Option Class
5
- *
6
- * @since 1.0.0
7
- * @version 1.0.0
8
- *
9
- */
10
- if ( ! class_exists( 'CSF_Profile_Options' ) ) {
11
- class CSF_Profile_Options extends CSF_Abstract{
12
-
13
- // constans
14
- public $unique = '';
15
- public $abstract = 'profile';
16
- public $sections = array();
17
- public $args = array(
18
- 'data_type' => 'serialize',
19
- 'class' => '',
20
- 'defaults' => array(),
21
- );
22
-
23
- // run profile construct
24
- public function __construct( $key, $params ) {
25
-
26
- $this->unique = $key;
27
- $this->args = apply_filters( "csf_{$this->unique}_args", wp_parse_args( $params['args'], $this->args ), $this );
28
- $this->sections = apply_filters( "csf_{$this->unique}_sections", $params['sections'], $this );
29
-
30
- add_action( 'admin_init', array( $this, 'add_profile_options' ) );
31
-
32
- }
33
-
34
- // instance
35
- public static function instance( $key, $params ) {
36
- return new self( $key, $params );
37
- }
38
-
39
- // add profile add/edit fields
40
- public function add_profile_options() {
41
-
42
- add_action( 'show_user_profile', array( $this, 'render_profile_form_fields' ) );
43
- add_action( 'edit_user_profile', array( $this, 'render_profile_form_fields' ) );
44
-
45
- add_action( 'personal_options_update', array( $this, 'save_profile' ) );
46
- add_action( 'edit_user_profile_update', array( $this, 'save_profile' ) );
47
-
48
- }
49
-
50
- // get default value
51
- public function get_default( $field ) {
52
-
53
- $default = ( isset( $field['default'] ) ) ? $field['default'] : '';
54
- $default = ( isset( $this->args['defaults'][$field['id']] ) ) ? $this->args['defaults'][$field['id']] : $default;
55
-
56
- return $default;
57
-
58
- }
59
-
60
- // get meta value
61
- public function get_meta_value( $user_id, $field ) {
62
-
63
- $value = null;
64
-
65
- if ( ! empty( $user_id ) && ! empty( $field['id'] ) ) {
66
-
67
- if ( $this->args['data_type'] !== 'serialize' ) {
68
- $meta = get_user_meta( $user_id, $field['id'] );
69
- $value = ( isset( $meta[0] ) ) ? $meta[0] : null;
70
- } else {
71
- $meta = get_user_meta( $user_id, $this->unique, true );
72
- $value = ( isset( $meta[$field['id']] ) ) ? $meta[$field['id']] : null;
73
- }
74
-
75
- }
76
-
77
- $default = ( isset( $field['id'] ) ) ? $this->get_default( $field ) : '';
78
- $value = ( isset( $value ) ) ? $value : $default;
79
-
80
- return $value;
81
-
82
- }
83
-
84
- // render profile add/edit form fields
85
- public function render_profile_form_fields( $profileuser ) {
86
-
87
- $is_profile = ( is_object( $profileuser ) && isset( $profileuser->ID ) ) ? true : false;
88
- $profile_id = ( $is_profile ) ? $profileuser->ID : 0;
89
- $errors = ( ! empty( $profile_id ) ) ? get_user_meta( $profile_id, '_csf_errors_'. $this->unique, true ) : array();
90
- $errors = ( ! empty( $errors ) ) ? $errors : array();
91
- $class = ( $this->args['class'] ) ? ''. $this->args['class'] : '';
92
-
93
- if ( ! empty( $errors ) ) {
94
- delete_user_meta( $profile_id, '_csf_errors_'. $this->unique );
95
- }
96
-
97
- echo '<div class="csf csf-profile-options csf-onload'. esc_attr( $class ) .'">';
98
-
99
- wp_nonce_field( 'csf_profile_nonce', 'csf_profile_nonce'. $this->unique );
100
-
101
- foreach ( $this->sections as $section ) {
102
-
103
- $section_icon = ( ! empty( $section['icon'] ) ) ? '<i class="csf-section-icon '. esc_attr( $section['icon'] ) .'"></i>' : '';
104
- $section_title = ( ! empty( $section['title'] ) ) ? $section['title'] : '';
105
-
106
- echo ( $section_title || $section_icon ) ? '<h2>'. $section_icon . $section_title .'</h2>' : '';
107
- echo ( ! empty( $section['description'] ) ) ? '<div class="csf-field csf-section-description">'. $section['description'] .'</div>' : '';
108
-
109
- if ( ! empty( $section['fields'] ) ) {
110
-
111
- foreach ( $section['fields'] as $field ) {
112
-
113
- if ( ! empty( $field['id'] ) && ! empty( $errors['fields'][$field['id']] ) ) {
114
- $field['_error'] = $errors['fields'][$field['id']];
115
- }
116
-
117
- if ( ! empty( $field['id'] ) ) {
118
- $field['default'] = $this->get_default( $field );
119
- }
120
-
121
- CSF::field( $field, $this->get_meta_value( $profile_id, $field ), $this->unique, 'profile' );
122
-
123
- }
124
-
125
- }
126
-
127
- }
128
-
129
- echo '</div>';
130
-
131
- }
132
-
133
- // save profile form fields
134
- public function save_profile( $user_id ) {
135
-
136
- $count = 1;
137
- $data = array();
138
- $errors = array();
139
- $noncekey = 'csf_profile_nonce'. $this->unique;
140
- $nonce = ( ! empty( $_POST[ $noncekey ] ) ) ? sanitize_text_field( wp_unslash( $_POST[ $noncekey ] ) ) : '';
141
-
142
- if ( ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) || ! wp_verify_nonce( $nonce, 'csf_profile_nonce' ) ) {
143
- return $user_id;
144
- }
145
-
146
- // XSS ok.
147
- // No worries, This "POST" requests is sanitizing in the below foreach.
148
- $request = ( ! empty( $_POST[ $this->unique ] ) ) ? $_POST[ $this->unique ] : array();
149
-
150
- if ( ! empty( $request ) ) {
151
-
152
- foreach ( $this->sections as $section ) {
153
-
154
- if ( ! empty( $section['fields'] ) ) {
155
-
156
- foreach ( $section['fields'] as $field ) {
157
-
158
- if ( ! empty( $field['id'] ) ) {
159
-
160
- $field_id = $field['id'];
161
- $field_value = isset( $request[$field_id] ) ? $request[$field_id] : '';
162
-
163
- // Sanitize "post" request of field.
164
- if ( ! isset( $field['sanitize'] ) ) {
165
-
166
- if( is_array( $field_value ) ) {
167
- $data[$field_id] = wp_kses_post_deep( $field_value );
168
- } else {
169
- $data[$field_id] = wp_kses_post( $field_value );
170
- }
171
-
172
- } else if( isset( $field['sanitize'] ) && is_callable( $field['sanitize'] ) ) {
173
-
174
- $data[$field_id] = call_user_func( $field['sanitize'], $field_value );
175
-
176
- } else {
177
-
178
- $data[$field_id] = $field_value;
179
-
180
- }
181
-
182
- // Validate "post" request of field.
183
- if ( isset( $field['validate'] ) && is_callable( $field['validate'] ) ) {
184
-
185
- $has_validated = call_user_func( $field['validate'], $field_value );
186
-
187
- if ( ! empty( $has_validated ) ) {
188
-
189
- $errors['sections'][$count] = true;
190
- $errors['fields'][$field_id] = $has_validated;
191
- $data[$field_id] = $this->get_meta_value( $user_id, $field );
192
-
193
- }
194
-
195
- }
196
-
197
- }
198
-
199
- }
200
-
201
- }
202
-
203
- $count++;
204
-
205
- }
206
-
207
- }
208
-
209
- $data = apply_filters( "csf_{$this->unique}_save", $data, $user_id, $this );
210
-
211
- do_action( "csf_{$this->unique}_save_before", $data, $user_id, $this );
212
-
213
- if ( empty( $data ) ) {
214
-
215
- if ( $this->args['data_type'] !== 'serialize' ) {
216
- foreach ( $data as $key => $value ) {
217
- delete_user_meta( $user_id, $key );
218
- }
219
- } else {
220
- delete_user_meta( $user_id, $this->unique );
221
- }
222
-
223
- } else {
224
-
225
- if ( $this->args['data_type'] !== 'serialize' ) {
226
- foreach ( $data as $key => $value ) {
227
- update_user_meta( $user_id, $key, $value );
228
- }
229
- } else {
230
- update_user_meta( $user_id, $this->unique, $data );
231
- }
232
-
233
- if ( ! empty( $errors ) ) {
234
- update_user_meta( $user_id, '_csf_errors_'. $this->unique, $errors );
235
- }
236
-
237
- }
238
-
239
- do_action( "csf_{$this->unique}_saved", $data, $user_id, $this );
240
-
241
- do_action( "csf_{$this->unique}_save_after", $data, $user_id, $this );
242
-
243
- }
244
- }
245
- }
1
+ <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2
+ /**
3
+ *
4
+ * Profile Option Class
5
+ *
6
+ * @since 1.0.0
7
+ * @version 1.0.0
8
+ *
9
+ */
10
+ if ( ! class_exists( 'CSF_Profile_Options' ) ) {
11
+ class CSF_Profile_Options extends CSF_Abstract{
12
+
13
+ // constans
14
+ public $unique = '';
15
+ public $abstract = 'profile';
16
+ public $sections = array();
17
+ public $args = array(
18
+ 'data_type' => 'serialize',
19
+ 'class' => '',
20
+ 'defaults' => array(),
21
+ );
22
+
23
+ // run profile construct
24
+ public function __construct( $key, $params ) {
25
+
26
+ $this->unique = $key;
27
+ $this->args = apply_filters( "csf_{$this->unique}_args", wp_parse_args( $params['args'], $this->args ), $this );
28
+ $this->sections = apply_filters( "csf_{$this->unique}_sections", $params['sections'], $this );
29
+
30
+ add_action( 'admin_init', array( $this, 'add_profile_options' ) );
31
+
32
+ }
33
+
34
+ // instance
35
+ public static function instance( $key, $params ) {
36
+ return new self( $key, $params );
37
+ }
38
+
39
+ // add profile add/edit fields
40
+ public function add_profile_options() {
41
+
42
+ add_action( 'show_user_profile', array( $this, 'render_profile_form_fields' ) );
43
+ add_action( 'edit_user_profile', array( $this, 'render_profile_form_fields' ) );
44
+
45
+ add_action( 'personal_options_update', array( $this, 'save_profile' ) );
46
+ add_action( 'edit_user_profile_update', array( $this, 'save_profile' ) );
47
+
48
+ }
49
+
50
+ // get default value
51
+ public function get_default( $field ) {
52
+
53
+ $default = ( isset( $field['default'] ) ) ? $field['default'] : '';
54
+ $default = ( isset( $this->args['defaults'][$field['id']] ) ) ? $this->args['defaults'][$field['id']] : $default;
55
+
56
+ return $default;
57
+
58
+ }
59
+
60
+ // get meta value
61
+ public function get_meta_value( $user_id, $field ) {
62
+
63
+ $value = null;
64
+
65
+ if ( ! empty( $user_id ) && ! empty( $field['id'] ) ) {
66
+
67
+ if ( $this->args['data_type'] !== 'serialize' ) {
68
+ $meta = get_user_meta( $user_id, $field['id'] );
69
+ $value = ( isset( $meta[0] ) ) ? $meta[0] : null;
70
+ } else {
71
+ $meta = get_user_meta( $user_id, $this->unique, true );
72
+ $value = ( isset( $meta[$field['id']] ) ) ? $meta[$field['id']] : null;
73
+ }
74
+
75
+ }
76
+
77
+ $default = ( isset( $field['id'] ) ) ? $this->get_default( $field ) : '';
78
+ $value = ( isset( $value ) ) ? $value : $default;
79
+
80
+ return $value;
81
+
82
+ }
83
+
84
+ // render profile add/edit form fields
85
+ public function render_profile_form_fields( $profileuser ) {
86
+
87
+ $is_profile = ( is_object( $profileuser ) && isset( $profileuser->ID ) ) ? true : false;
88
+ $profile_id = ( $is_profile ) ? $profileuser->ID : 0;
89
+ $errors = ( ! empty( $profile_id ) ) ? get_user_meta( $profile_id, '_csf_errors_'. $this->unique, true ) : array();
90
+ $errors = ( ! empty( $errors ) ) ? $errors : array();
91
+ $class = ( $this->args['class'] ) ? ''. $this->args['class'] : '';
92
+
93
+ if ( ! empty( $errors ) ) {
94
+ delete_user_meta( $profile_id, '_csf_errors_'. $this->unique );
95
+ }
96
+
97
+ echo '<div class="csf csf-profile-options csf-onload'. esc_attr( $class ) .'">';
98
+
99
+ wp_nonce_field( 'csf_profile_nonce', 'csf_profile_nonce'. $this->unique );
100
+
101
+ foreach ( $this->sections as $section ) {
102
+
103
+ $section_icon = ( ! empty( $section['icon'] ) ) ? '<i class="csf-section-icon '. esc_attr( $section['icon'] ) .'"></i>' : '';
104
+ $section_title = ( ! empty( $section['title'] ) )