Advanced Custom Fields: Extended - Version 0.8.7.3

Version Description

  • Field: Flexible Content - Fixed "Copy/Paste" function which wasn't working correctly with WYSIWYG & Code Editor fields since the latest ACF 5.9 update
  • Field: Column - Columns sizes are now based on a grid of 12 (1/12, 2/12, 3/12, 4/12 ...)
  • Field: Taxonomy - Added compatibility with "Value equal", "Value not equal", "Value pattern" & "Value contains" conditional logic
  • Field: Select - "Placeholder" setting is now only available when "Stylised UI" is enabled with "Allow multiple" or "Allow null"
  • Module: Dynamic Post Type - Fixed "Post Type Archive Location
Download this release

Release Info

Developer hwk-fr
Plugin Icon 128x128 Advanced Custom Fields: Extended
Version 0.8.7.3
Comparing to
See all releases

Code changes from version 0.8.7.2 to 0.8.7.3

Files changed (52) hide show
  1. acf-extended.php +2 -2
  2. assets/acf-extended-admin.css +338 -11
  3. assets/{acf-extended-fg.js → acf-extended-admin.js} +0 -0
  4. assets/acf-extended-admin.min.css +1 -0
  5. assets/acf-extended-admin.min.js +1 -0
  6. assets/acf-extended-fc-control.css +0 -105
  7. assets/acf-extended-fc-control.js +0 -788
  8. assets/acf-extended-fc-modal-edit.css +0 -6
  9. assets/acf-extended-fc-modal-edit.js +0 -72
  10. assets/acf-extended-fc-modal-select.css +0 -0
  11. assets/acf-extended-fc-modal-select.js +0 -259
  12. assets/acf-extended-fc.css +0 -338
  13. assets/acf-extended-fc.js +0 -451
  14. assets/acf-extended-fg.css +0 -331
  15. assets/acf-extended-fields.js +0 -1435
  16. assets/acf-extended-form.js +0 -171
  17. assets/acf-extended-modal.css +0 -607
  18. assets/acf-extended-repeater.css +0 -83
  19. assets/acf-extended-repeater.js +0 -59
  20. assets/acf-extended-ui.css +456 -456
  21. assets/acf-extended-ui.min.css +1 -0
  22. assets/acf-extended.css +1153 -28
  23. assets/acf-extended.js +3375 -0
  24. assets/acf-extended.min.css +1 -0
  25. assets/acf-extended.min.js +1 -0
  26. includes/admin/options.class.php +276 -276
  27. includes/admin/options.php +578 -578
  28. includes/admin/plugins.php +41 -41
  29. includes/admin/tools/fg-local.php +332 -332
  30. includes/admin/views/html-options-edit.php +60 -60
  31. includes/admin/views/html-options-list.php +37 -37
  32. includes/core/enqueue.php +86 -73
  33. includes/field-groups/field-group.php +1 -1
  34. includes/fields-settings/permissions.php +54 -54
  35. includes/fields/field-button.php +239 -239
  36. includes/fields/field-column.php +160 -127
  37. includes/fields/field-dynamic-message.php +57 -57
  38. includes/fields/field-hidden.php +47 -47
  39. includes/fields/field-repeater.php +61 -61
  40. includes/fields/field-select.php +17 -0
  41. includes/fields/field-slug.php +104 -104
  42. includes/fields/field-textarea.php +49 -49
  43. includes/locations/post-type-all.php +38 -38
  44. includes/locations/post-type-archive.php +40 -15
  45. includes/locations/post-type-list.php +427 -427
  46. includes/locations/taxonomy-list.php +404 -404
  47. includes/modules/autosync.php +14 -39
  48. includes/modules/dynamic-options-page.php +22 -0
  49. includes/modules/dynamic-post-type.php +12 -3
  50. includes/modules/dynamic-taxonomy.php +11 -3
  51. init.php +4 -1
  52. readme.txt +17 -1
acf-extended.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Plugin Name: Advanced Custom Fields: Extended
4
  * Description: Enhancement Suite which improves Advanced Custom Fields administration
5
- * Version: 0.8.7.2
6
  * Author: ACF Extended
7
  * Author URI: https://www.acf-extended.com
8
  * Text Domain: acfe
@@ -16,7 +16,7 @@ if(!class_exists('ACFE')):
16
  class ACFE{
17
 
18
  // Vars
19
- var $version = '0.8.7.2';
20
  var $acf = false;
21
 
22
  /*
2
  /**
3
  * Plugin Name: Advanced Custom Fields: Extended
4
  * Description: Enhancement Suite which improves Advanced Custom Fields administration
5
+ * Version: 0.8.7.3
6
  * Author: ACF Extended
7
  * Author URI: https://www.acf-extended.com
8
  * Text Domain: acfe
16
  class ACFE{
17
 
18
  // Vars
19
+ var $version = '0.8.7.3';
20
  var $acf = false;
21
 
22
  /*
assets/acf-extended-admin.css CHANGED
@@ -345,23 +345,18 @@ body.post-type-acfe-form.post-new-php #major-publishing-actions{
345
  /*
346
  * Gutenberg: Fix metaboxes
347
  */
348
- .edit-post-layout__metaboxes:not(:empty) .edit-post-meta-boxes-area{
349
- margin:10px 10px 0;
350
- }
351
-
352
- .edit-post-layout__metaboxes:not(:empty) {
353
  background:#f3f4f5;
 
354
  }
355
 
356
  .edit-post-layout__metaboxes .edit-post-meta-boxes-area .postbox{
357
  margin-bottom:10px;
 
358
  }
359
 
360
- /* Firefox fix only */
361
- @supports (-moz-appearance:meterbar){
362
- .edit-post-layout__metaboxes .postbox{
363
- box-shadow:0 1px 1px 1px rgba(0,0,0,.04);
364
- }
365
  }
366
 
367
  /*
@@ -371,7 +366,8 @@ body.post-type-acfe-form.post-new-php #major-publishing-actions{
371
  #acf-admin-tool-acfe_tool_dpt_export ul,
372
  #acf-admin-tool-acfe_tool_dt_export ul,
373
  #acf-admin-tool-acfe_tool_form_export ul{
374
- column-width: 200px;
 
375
  }
376
 
377
  .acf-meta-box-wrap.-grid #acf-admin-tool-acfe-fg-local{
@@ -687,4 +683,335 @@ html[dir="rtl"] .acf-columns-2 .acf-column-2 {
687
  float: left;
688
  margin-right: 0;
689
  margin-left: -300px
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
690
  }
345
  /*
346
  * Gutenberg: Fix metaboxes
347
  */
348
+ .edit-post-layout__metaboxes:not(:empty){
 
 
 
 
349
  background:#f3f4f5;
350
+ padding:10px 10px 0 10px !important;
351
  }
352
 
353
  .edit-post-layout__metaboxes .edit-post-meta-boxes-area .postbox{
354
  margin-bottom:10px;
355
+ border:1px solid #E1E1E1;
356
  }
357
 
358
+ .edit-post-layout__metaboxes .edit-post-meta-boxes-area .postbox > .inside{
359
+ border-bottom:0;
 
 
 
360
  }
361
 
362
  /*
366
  #acf-admin-tool-acfe_tool_dpt_export ul,
367
  #acf-admin-tool-acfe_tool_dt_export ul,
368
  #acf-admin-tool-acfe_tool_form_export ul{
369
+ -moz-column-width: 200px;
370
+ column-width: 200px;
371
  }
372
 
373
  .acf-meta-box-wrap.-grid #acf-admin-tool-acfe-fg-local{
683
  float: left;
684
  margin-right: 0;
685
  margin-left: -300px
686
+ }
687
+ .acf-field-setting-acfe_permissions > .acf-input > .acf-fields,
688
+ .acf-field-setting-acfe_settings > .acf-input > .acf-fields,
689
+ .acf-field-setting-acfe_validate > .acf-input > .acf-fields,
690
+ .acf-field-setting-acfe_update > .acf-input > .acf-fields,
691
+ .acf-field-setting-acfe_hide > .acf-input > .acf-fields,
692
+
693
+ .acf-field-setting-acfe_bidirectional > .acf-input > .acf-fields,
694
+ .acf-field-setting-acfe_settings > .acf-input > .acf-fields > .acf-field.acf-field-acfe-settings-rules-or,
695
+ .acf-field-setting-acfe_validate > .acf-input > .acf-fields > .acf-field.acf-field-acfe-validate-rules-or,
696
+ .acf-field-setting-acfe_update > .acf-input > .acf-fields > .acf-field.acf-field-acfe-update-functions{
697
+ border:0;
698
+ }
699
+
700
+ .acf-field-setting-acfe_bidirectional > .acf-input > .acf-fields > .acf-field,
701
+ .acf-field-setting-acfe_permissions > .acf-input > .acf-fields > .acf-field,
702
+ .acf-field-setting-acfe_settings > .acf-input > .acf-fields > .acf-field,
703
+ .acf-field-setting-acfe_validate > .acf-input > .acf-fields > .acf-field,
704
+ .acf-field-setting-acfe_update > .acf-input > .acf-fields > .acf-field,
705
+ .acf-field-setting-acfe_hide > .acf-input > .acf-fields > .acf-field{
706
+ padding:0;
707
+ }
708
+
709
+ .acf-field-setting-acfe_field_data{
710
+ display:none;
711
+ }
712
+
713
+ .acf-field-hide-front.acfe_width_auto{
714
+ margin-right:30px;
715
+ }
716
+
717
+ .acf-field-setting-acfe_bidirectional > .acf-input > .acf-fields > .acf-field.acf-field-acfe-bidirectional-enabled > .acf-label,
718
+ .acf-field-setting-acfe_bidirectional > .acf-input > .acf-fields > .acf-field.acf-field-acfe-bidirectional-related > .acf-label,
719
+ .acf-field-setting-acfe_settings > .acf-input > .acf-fields > .acf-field.acf-field-acfe-settings-activate > .acf-label,
720
+ .acf-field-setting-acfe_validate > .acf-input > .acf-fields > .acf-field.acf-field-acfe-validate-activate > .acf-label,
721
+ .acf-field-setting-acfe_update > .acf-input > .acf-fields > .acf-field.acf-field-acfe-update-activate > .acf-label{
722
+ display:none;
723
+ }
724
+
725
+ .acf-field-setting-acfe_update > .acf-input .acf-repeater.-empty.-table > table,
726
+ .acf-field-setting-acfe_settings > .acf-input .acf-repeater.-empty.-table > table,
727
+ .acf-field-setting-acfe_validate > .acf-input .acf-repeater.-empty.-table > table,
728
+ .acf-field-acfe-meta > .acf-input .acf-repeater.-empty.-table > table{
729
+ border:0;
730
+ display:none;
731
+ }
732
+
733
+ .acf-field-setting-acfe_update > .acf-input .acf-repeater.-empty.-table > table > thead,
734
+ .acf-field-setting-acfe_settings > .acf-input .acf-repeater.-empty.-table > table > thead,
735
+ .acf-field-setting-acfe_validate > .acf-input .acf-repeater.-empty.-table > table > thead,
736
+ .acf-field-acfe-meta > .acf-input .acf-repeater.-empty.-table > table > thead{
737
+ display:none;
738
+ }
739
+
740
+ .acf-field-setting-acfe_update > .acf-input > .acf-repeater .acf-actions,
741
+ .acf-field-setting-acfe_settings > .acf-input > .acf-repeater .acf-actions,
742
+ .acf-field-setting-acfe_validate > .acf-input > .acf-repeater .acf-actions,
743
+ .acf-field-acfe-meta > .acf-input > .acf-repeater .acf-actions{
744
+ text-align:left;
745
+ }
746
+
747
+ .acf-repeater.-row > table,
748
+ .acf-repeater.-block > table{
749
+ border-collapse: separate;
750
+ border-spacing: 0 15px;
751
+ background: none;
752
+ border: 0;
753
+ margin-top: -15px;
754
+ margin-bottom: -7px;
755
+ }
756
+
757
+ .acf-repeater.-row > table > *,
758
+ .acf-repeater.-block > table > *{
759
+ border-collapse: collapse;
760
+ border-spacing: 0;
761
+ }
762
+
763
+ .acf-repeater.-row > table > tbody > tr > td,
764
+ .acf-repeater.-block > table > tbody > tr > td{
765
+ border-top: 1px solid #ccd0d4 !important;
766
+ border-bottom: 1px solid #ccd0d4 !important;
767
+ }
768
+
769
+ .acf-repeater.-row > table > tbody > tr > td:first-of-type,
770
+ .acf-repeater.-block > table > tbody > tr > td:first-of-type{
771
+ border-left: 1px solid #ccd0d4 !important;
772
+ }
773
+
774
+ .acf-repeater.-row > table > tbody > tr > td:last-of-type,
775
+ .acf-repeater.-block > table > tbody > tr > td:last-of-type{
776
+ border-right: 1px solid #ccd0d4 !important;
777
+ }
778
+
779
+ body:not(.acf-admin-5-3) .acf-repeater.-row > table > tbody > tr > td,
780
+ body:not(.acf-admin-5-3) .acf-repeater.-block > table > tbody > tr > td{
781
+ border-top: 1px solid #E1E1E1;
782
+ border-bottom: 1px solid #E1E1E1;
783
+ }
784
+
785
+ body:not(.acf-admin-5-3) .acf-repeater.-row > table > tbody > tr > td:first-of-type,
786
+ body:not(.acf-admin-5-3) .acf-repeater.-block > table > tbody > tr > td:first-of-type{
787
+ border-left: 1px solid #E1E1E1;
788
+ }
789
+
790
+ body:not(.acf-admin-5-3) .acf-repeater.-row > table > tbody > tr > td:last-of-type,
791
+ body:not(.acf-admin-5-3) .acf-repeater.-block > table > tbody > tr > td:last-of-type{
792
+ border-right: 1px solid #E1E1E1;
793
+ }
794
+
795
+ .acf-field-setting-acfe_bidirectional > .acf-input > .acf-fields > .acf-field.acf-field-acfe-bidirectional-related{
796
+ margin-left:10px;
797
+ }
798
+
799
+ .acfe_width_auto{
800
+ width:auto !important;
801
+ }
802
+
803
+ .status-acf-disabled .column-title a,
804
+ .status-acf-disabled .column-title code {
805
+ color: #555 !important;
806
+ }
807
+
808
+ .status-acf-disabled .column-title strong{
809
+ color: #a0a5aa;
810
+ }
811
+
812
+ .column-acf-field-group-category{
813
+ width:125px;
814
+ }
815
+
816
+ td.acf-field-group-category a{
817
+ word-wrap: break-word;
818
+ padding: 2px 5px;
819
+ margin: 0 1px;
820
+ border-radius:2px;
821
+ background: rgba(0,0,0,.06);
822
+ color:#23282d;
823
+ }
824
+
825
+ .column-acfe-location{
826
+ width:100px;
827
+ }
828
+
829
+ .column-acf-location,
830
+ .column-acf-description{
831
+ width:230px;
832
+ }
833
+
834
+ #acf-field-group-wrap .wp-list-table .column-acf-fg-status{
835
+ width:70px;
836
+ }
837
+
838
+ #acf-field-group-wrap .wp-list-table .column-acf-fg-count,
839
+ .post-type-acf-field-group .wp-list-table .column-acf-count{
840
+ width:80px;
841
+ }
842
+
843
+ .post-type-acf-field-group .wp-list-table .column-title .post-state{
844
+ color:#a0a5aa;
845
+ }
846
+
847
+ .column-title .acfe-key{
848
+ color:#555;
849
+ font-size:12px;
850
+ }
851
+
852
+ .column-acfe-load{
853
+ width:70px;
854
+ }
855
+
856
+ .column-acfe-source{
857
+ width:150px;
858
+ }
859
+
860
+ .column-acfe-autosync-php,
861
+ .column-acfe-autosync-json{
862
+ width:90px;
863
+ text-align:center !important;
864
+ }
865
+
866
+ .column-acfe-autosync-php .secondary,
867
+ .column-acfe-autosync-json .secondary{
868
+ color:#ccc;
869
+ }
870
+
871
+ .column-acfe-autosync-php .dashicons-warning,
872
+ .column-acfe-autosync-json .dashicons-warning{
873
+ font-size:15px;
874
+ vertical-align:middle;
875
+ }
876
+
877
+ .acf-field[data-name="acfe_autosync"] .dashicons-warning{
878
+ color:#ccc;
879
+ font-size:15px;
880
+ height: 15px;
881
+ vertical-align: text-bottom;
882
+ }
883
+
884
+ .column-acfe-autosync-php .dashicons-update,
885
+ .column-acfe-autosync-json .dashicons-update{
886
+ font-size:18px;
887
+ }
888
+
889
+ .column-acfe-autosync-php .dashicons + .dashicons-warning,
890
+ .column-acfe-autosync-json .dashicons + .dashicons-warning{
891
+ margin-left:-3px;
892
+ }
893
+
894
+ .acf-field-image[data-name="acfe_flexible_thumbnail"] > .acf-input > .acf-image-uploader.has-value > .show-if-value.image-wrap{
895
+ max-width:85px !important;
896
+ }
897
+
898
+ /*
899
+ * Fix Sync Review Modal column size
900
+ */
901
+ .acf-diff-content table.diff tbody tr td:nth-child(2){
902
+ width: auto;
903
+ }
904
+
905
+ /*
906
+ * ACFE: Flexible Content
907
+ *
908
+ */
909
+
910
+ /* Fix ACF not setting proper border color on Flexible Row Style*/
911
+ body.acf-admin-5-3 .acf-field-setting-fc_layout .acf-input-wrap.select{
912
+ border-color: #7e8993;
913
+ }
914
+
915
+ body.acf-admin-5-3 .acf-field-setting-fc_layout .acf-input-wrap.select select{
916
+ min-height: 28px;
917
+ }
918
+
919
+ .acf-field-acfe-flexible-modal > .acf-input > .acf-fields{
920
+ border:0;
921
+ }
922
+
923
+ .acf-field-acfe-flexible-modal > .acf-input > .acf-fields .acf-field-acfe-flexible-modal-enabled{
924
+ padding:0;
925
+ }
926
+
927
+ .acf-field-acfe-flexible-modal > .acf-input > .acf-fields .acf-field-acfe-flexible-modal-enabled .acf-label{
928
+ display:none;
929
+ }
930
+
931
+ .acf-field-acfe-flexible-modal > .acf-input > .acf-fields .acf-field-acfe-flexible-modal-enabled{
932
+ margin-right:10px;
933
+ }
934
+
935
+ .acf-field-acfe-flexible-modal > .acf-input > .acf-fields .acf-field-acfe-flexible-modal-title,
936
+ .acf-field-acfe-flexible-modal > .acf-input > .acf-fields .acf-field-acfe-flexible-modal-col,
937
+ .acf-field-acfe-flexible-modal > .acf-input > .acf-fields .acf-field-acfe-flexible-modal-categories{
938
+ padding-top:0;
939
+ padding-bottom:0;
940
+ padding-left:0;
941
+ border-top:0;
942
+ border-left:0 !important;
943
+ min-height:55px;
944
+ }
945
+
946
+ .acf-field-setting-fc_layout > .acf-input > .acf-fc-meta .acf-field[data-name=acfe_flexible_settings_label],
947
+ .acf-field-setting-fc_layout > .acf-input > .acf-fc-meta .acf-field[data-name=acfe_flexible_thumbnail],
948
+ .acf-field-setting-fc_layout > .acf-input > .acf-fc-meta .acf-field[data-name=acfe_flexible_category],
949
+ .acf-field-setting-fc_layout > .acf-input > .acf-fc-meta .acf-field[data-name=acfe_flexible_settings_label],
950
+ .acf-field-setting-fc_layout > .acf-input > .acf-fc-meta .acf-field[data-name=acfe_flexible_settings],
951
+ .acf-field-setting-fc_layout > .acf-input > .acf-fc-meta .acf-field[data-name=acfe_flexible_settings_size]{
952
+ margin:0;
953
+ }
954
+
955
+ .acf-field-setting-fc_layout > .acf-input > .acf-fc-meta .acf-field[data-name=acfe_flexible_settings],
956
+ .acf-field-setting-fc_layout > .acf-input > .acf-fc-meta .acf-field[data-name=acfe_flexible_settings_size]{
957
+ margin-right: 10px;
958
+ }
959
+
960
+ .acf-field-setting-fc_layout > .acf-input > .acf-fc-meta .acf-field[data-name=acfe_flexible_settings_size]{
961
+ border-left:0;
962
+ }
963
+
964
+ .acf-field-setting-fc_layout > .acf-input > .acf-fc-meta .acf-field[data-name=acfe_flexible_settings_label] > .acf-input{
965
+ margin:0;
966
+ }
967
+
968
+ .acf-field-setting-fc_layout > .acf-input > .acf-fc-meta > .acf-fc-meta-label:first-of-type{
969
+ margin:0;
970
+ }
971
+
972
+ .acf-field-setting-fc_layout .select2-container--default .select2-selection--multiple li{
973
+ margin-bottom:0;
974
+ }
975
+
976
+ /*
977
+ * ACFE Column
978
+ */
979
+ .acf-field-object-acfe-column .acf-field-setting-label,
980
+ .acf-field-object-acfe-column .acf-field-setting-name,
981
+ .acf-field-object-acfe-column .acf-field-setting-instructions,
982
+ .acf-field-object-acfe-column .acf-field-setting-required,
983
+ .acf-field-object-acfe-column .acf-field-setting-warning,
984
+ .acf-field-object-acfe-column .acf-field-setting-wrapper{
985
+ display: none;
986
+ }
987
+
988
+ .acf-field-object + .acf-field-object-acfe-column:before {
989
+ display: block;
990
+ content: "";
991
+ height: 5px;
992
+ width: 100%;
993
+ background: #f9f9f9;
994
+ border-bottom: #f0f0f0 solid 1px;
995
+ }
996
+
997
+ .acf-field-object-acfe-column .li-field-name{
998
+ visibility: hidden;
999
+ }
1000
+
1001
+ /*
1002
+ * ACFE Taxonomy Terms
1003
+ */
1004
+ .acf-field-setting-allow_terms > .acf-input > ul > li:first-of-type{
1005
+ width: calc(100% - 125px);
1006
+ }
1007
+
1008
+ .acf-field-setting-allow_terms > .acf-input > ul > li:last-of-type{
1009
+ width: 125px;
1010
+ }
1011
+
1012
+ /*
1013
+ * ACFE: Field Group Conditional Logic
1014
+ */
1015
+ #acf-field-group-locations .rule-groups > .rule-group > table > tbody > tr > td.value > .acf-field{
1016
+ margin: 0;
1017
  }
assets/{acf-extended-fg.js → acf-extended-admin.js} RENAMED
File without changes
assets/acf-extended-admin.min.css ADDED
@@ -0,0 +1 @@
 
1
+ code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace;font-size:1em}pre{display:block;padding:9.5px;margin:0;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f9f9f9;border:1px solid #ccc;border-radius:1px;white-space:pre-wrap;overflow:auto}code{-webkit-user-select:all;-moz-user-select:all;-ms-user-select:all;user-select:all}pre>code{-webkit-user-select:inherit;-moz-user-select:inherit;-ms-user-select:inherit;user-select:inherit;padding:0;margin:0;background:0 0;font-size:1em;display:block}.code-codemirror>.CodeMirror,.pre-codemirror>.CodeMirror{border:1px solid #ccc;height:auto;width:auto;background:#f9f9f9;padding:9px 6px}.code-codemirror{display:inline;vertical-align:middle}.code-codemirror>.CodeMirror{display:inline-block;padding:0}.code-codemirror>.CodeMirror .CodeMirror-selected,.pre-codemirror>.CodeMirror .CodeMirror-selected{background:#ddd!important}.code-codemirror>.CodeMirror .CodeMirror-lines,.pre-codemirror>.CodeMirror .CodeMirror-lines{padding:0}.acf-postbox.seamless>.inside>.acf-field{padding:15px 12px}.acf-flexible-content .layout.ui-sortable-helper:first-child+.layout.ui-sortable-placeholder{margin-top:0}.acfe-postbox.acfe-postbox-no-handle h2.hndle{cursor:initial}.acfe-postbox.acfe-postbox-no-handle .handlediv{display:none}.acfe-postbox-top>.inside{position:relative}.acfe-postbox-top>.inside.-border{border:#ccd0d4 solid 1px;background:#fff}.acfe-postbox-top>.inside>.acf-field{position:relative;margin:0;padding:15px 12px;border-top:#eee solid 1px}.acfe-postbox-top>.inside>.acf-field:first-child{border-top:none;margin-top:0}.acfe-postbox-left>.inside{position:relative}.acfe-postbox-left>.inside:after{display:block;clear:both;content:""}.acfe-postbox-left>.inside.-border{border:#ccd0d4 solid 1px;background:#fff}.acfe-postbox-left>.inside>.acf-field{position:relative;margin:0;padding:15px 12px;border-top:#eee solid 1px}.acfe-postbox-left>.inside>.acf-field:first-child{border-top:none;margin-top:0}.acfe-postbox-left>.inside.-clear>.acf-field{border:none;padding:0;margin:15px 0}.acfe-postbox-left>.inside>.acf-field{padding:15px 0}.acfe-postbox-left>.inside>.acf-field:after{display:block;clear:both;content:""}.acfe-postbox-left>.inside>.acf-field:before{content:"";display:block;position:absolute;z-index:0;background:#f9f9f9;border-color:#e1e1e1;border-style:solid;border-width:0 1px 0 0;top:0;bottom:0;left:0;width:20%}.acfe-postbox-left>.inside>.acf-field[data-width]{float:none;width:auto!important;border-left-width:0!important;border-right-width:0!important}.acfe-postbox-left>.inside>.acf-field>.acf-label{float:left;width:20%;margin:0;padding:0 12px}.acfe-postbox-left>.inside>.acf-field>.acf-input{float:left;width:80%;margin:0;padding:0 12px}html[dir=rtl] .acfe-postbox-left>.inside>.acf-field:before{border-width:0 0 0 1px;left:auto;right:0}html[dir=rtl] .acfe-postbox-left>.inside>.acf-field>.acf-label{float:right}html[dir=rtl] .acfe-postbox-left>.inside>.acf-field>.acf-input{float:right}#side-sortables .acfe-postbox-left>.inside>.acf-field:before{display:none}#side-sortables .acfe-postbox-left>.inside>.acf-field>.acf-label{width:100%;margin-bottom:10px}#side-sortables .acfe-postbox-left>.inside>.acf-field>.acf-input{width:100%}@media screen and (max-width:640px){.acfe-postbox-left>.inside>.acf-field:before{display:none}.acfe-postbox-left>.inside>.acf-field>.acf-label{width:100%;margin-bottom:10px}.acfe-postbox-left>.inside>.acf-field>.acf-input{width:100%}}.wrap .acfe-dop-admin-config,.wrap .acfe-dop-admin-config:active,.wrap .acfe-dpt-admin-config,.wrap .acfe-dpt-admin-config:active,.wrap .acfe-dt-admin-config,.wrap .acfe-dt-admin-config:active{padding-left:4px;padding-right:4px}.wrap .acfe-dop-admin-config span,.wrap .acfe-dpt-admin-config span,.wrap .acfe-dt-admin-config span{font-size:16px;vertical-align:text-top;height:15px;width:19px;line-height:19px}.wrap .acfe-dop-admin-config{display:inline-block}body.post-type-acfe-dpt .misc-pub-post-status,body.post-type-acfe-dpt .misc-pub-visibility,body.post-type-acfe-dpt.post-new-php #minor-publishing-actions,body.post-type-acfe-dpt.post-new-php #misc-publishing-actions{display:none}body.post-type-acfe-dpt.post-new-php #major-publishing-actions{border-top:0}body.post-type-acfe-dt .misc-pub-post-status,body.post-type-acfe-dt .misc-pub-visibility,body.post-type-acfe-dt.post-new-php #minor-publishing-actions,body.post-type-acfe-dt.post-new-php #misc-publishing-actions{display:none}body.post-type-acfe-dt.post-new-php #major-publishing-actions{border-top:0}body.post-type-acfe-dop .misc-pub-post-status,body.post-type-acfe-dop .misc-pub-visibility,body.post-type-acfe-dop.post-new-php #minor-publishing-actions,body.post-type-acfe-dop.post-new-php #misc-publishing-actions{display:none}body.post-type-acfe-dop.post-new-php #major-publishing-actions{border-top:0}body.post-type-acfe-dbt .misc-pub-post-status,body.post-type-acfe-dbt .misc-pub-visibility,body.post-type-acfe-dbt.post-new-php #minor-publishing-actions,body.post-type-acfe-dbt.post-new-php #misc-publishing-actions{display:none}body.post-type-acfe-dbt.post-new-php #major-publishing-actions{border-top:0}body.post-type-acfe-form .misc-pub-post-status,body.post-type-acfe-form .misc-pub-visibility,body.post-type-acfe-form.post-new-php #minor-publishing-actions,body.post-type-acfe-form.post-new-php #misc-publishing-actions{display:none}body.post-type-acfe-form.post-new-php #major-publishing-actions{border-top:0}.acf-field.acf-field-acfe-author>.acf-label{display:none}.edit-post-layout__metaboxes:not(:empty){background:#f3f4f5;padding:10px 10px 0 10px!important}.edit-post-layout__metaboxes .edit-post-meta-boxes-area .postbox{margin-bottom:10px;border:1px solid #e1e1e1}.edit-post-layout__metaboxes .edit-post-meta-boxes-area .postbox>.inside{border-bottom:0}#acf-admin-tool-acfe_tool_dbt_export ul,#acf-admin-tool-acfe_tool_dpt_export ul,#acf-admin-tool-acfe_tool_dt_export ul,#acf-admin-tool-acfe_tool_form_export ul{-moz-column-width:200px;column-width:200px}.acf-meta-box-wrap.-grid #acf-admin-tool-acfe-fg-local{display:none}.settings_page_acfe-options .column-option_id{width:65px}.settings_page_acfe-options .column-option_name{width:435px}.settings_page_acfe-options .column-autoload{width:100px;text-align:center}.acf-field[data-name=acfe_form_post_save_post_content_custom],.acf-field[data-name=acfe_form_post_save_post_name_custom],.acf-field[data-name=acfe_form_post_save_post_title_custom],.acf-field[data-name=acfe_form_term_save_description_custom],.acf-field[data-name=acfe_form_term_save_name_custom],.acf-field[data-name=acfe_form_term_save_slug_custom],.acf-field[data-name=acfe_form_user_save_description_custom],.acf-field[data-name=acfe_form_user_save_display_name_custom],.acf-field[data-name=acfe_form_user_save_email_custom],.acf-field[data-name=acfe_form_user_save_first_name_custom],.acf-field[data-name=acfe_form_user_save_last_name_custom],.acf-field[data-name=acfe_form_user_save_nickname_custom],.acf-field[data-name=acfe_form_user_save_password_custom],.acf-field[data-name=acfe_form_user_save_username_custom],.acf-field[data-name=acfe_form_user_save_website_custom]{border-top:0;padding-top:0}.acf-field.acf-field-acfe-form-attributes>.acf-input>.acf-fields>.acf-field{border-left-width:0}.acf-field.acf-field-acfe-form-fields-attributes>.acf-input>.acf-fields>.acf-field{border-left-width:0}.acf-field-repeater.acf-field-acfe-form-email-files-static>.acf-input>.acf-repeater>.acf-actions,.acf-field-repeater.acf-field-acfe-form-email-files>.acf-input>.acf-repeater>.acf-actions{text-align:left}.postbox#acfe-acf-custom-fields>.inside,.postbox#acfe-wp-custom-fields>.inside{padding:0;margin:0}.postbox#acfe-acf-custom-fields+.tablenav,.postbox#acfe-wp-custom-fields+.tablenav{padding-top:0;margin-top:-8px}.postbox#acfe-acf-custom-fields em,.postbox#acfe-wp-custom-fields em{color:#aaa}.acfe_dev_meta_count{background:#72777c;padding:1px 5px;border-radius:4px;color:#fff;margin-left:7px;font-size:12px;margin-right:auto}body:not(.acf-admin-5-3) .acf-field .select2-container .select2-selection{border-color:#dfdfdf!important;border-radius:0!important}body:not(.acf-admin-5-3) .acf-field .select2-container .select2-selection__choice{border-color:#dfdfdf!important;border-radius:0!important}body:not(.acf-admin-5-3) .acf-field .select2-dropdown{border-color:#dfdfdf!important;border-radius:0!important}body:not(.acf-admin-5-3) .acf-field .select2-container .select2-search--inline .select2-search__field{margin-top:0!important}.acf-field .select2-container .select2-selection--single{border-radius:3px!important;height:30px!important;outline:0}.acf-field .select2-container.select2-container--open .select2-selection--single,.acf-field .select2-container:focus .select2-selection--single{border-color:#007cba!important;color:#016087!important;box-shadow:0 0 0 1px #007cba!important}.acf-field .select2-container .select2-selection--single .select2-selection__rendered{font-size:14px;height:28px;line-height:27px!important;padding-right:23px!important}.acf-field .select2-container .select2-selection--single .select2-selection__clear{line-height:26px;height:28px;font-size:16px}.acf-field .select2-container--default .select2-selection--single .select2-selection__arrow{height:28px!important}.acf-field .select2-container--default .select2-selection--single .select2-selection__arrow b{background:url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%206l5%205%205-5%202%201-7%207-7-7%202-1z%22%20fill%3D%22%23555%22%2F%3E%3C%2Fsvg%3E') no-repeat;background-size:16px 16px;border:0!important;width:16px!important;height:16px!important;margin-left:-11px!important;margin-top:-7px!important}.acf-field .select2-container .select2-search--inline .select2-search__field{margin-top:4px!important;font-size:14px!important;padding-left:2px!important}.acf-field .select2-container .select2-selection--multiple{min-height:30px!important;line-height:1;border-radius:3px!important}.acf-field .select2-container--default .select2-selection--multiple .select2-selection__rendered{padding:0 2px!important}.acf-field .select2-container--default .select2-selection--multiple .select2-selection__choice{margin-right:2px!important;margin-top:2px!important;line-height:1.6;border-radius:3px!important;font-size:14px}.acf-field .select2-container--default .select2-selection--multiple .select2-selection__choice__remove{line-height:15px;font-size:15px}.acf-field .select2-container--default.select2-container--focus .select2-selection--multiple{border-color:#7e8993!important}.acf-field .select2-container--default .select2-selection--multiple .select2-selection__clear{margin-top:5px!important;margin-right:5px!important;font-size:16px}.acf-field>.acf-input>.select2 .select2-search{width:auto}.acf-tab-group li a .acfe-tab-badge{border-radius:100px;background:#ddd;width:18px;height:18px;font-size:12px;display:inline-block;vertical-align:text-bottom;padding:0;text-align:center;margin-left:5px;line-height:18px}.acf-tab-group li a:hover .acfe-tab-badge,.acf-tab-group li.active a .acfe-tab-badge{background:#f1f1f1}.menu-item-settings{position:initial}@media screen and (min-width:783px){.postbox .handle-order-higher,.postbox .handle-order-lower{visibility:hidden}.postbox:hover .handle-order-higher,.postbox:hover .handle-order-lower{visibility:visible}}.postbox .handle-order-higher,.postbox .handle-order-lower{vertical-align:bottom}.postbox .handle-order-higher .order-higher-indicator::before,.postbox .handle-order-lower .order-lower-indicator::before{font-size:15px;top:.18rem}.postbox .handlediv{width:1.62rem}.postbox .handlediv .toggle-indicator::before{text-indent:-7px}.acf-columns-2{margin-right:300px;clear:both}.acf-columns-2:after{display:block;clear:both;content:""}html[dir=rtl] .acf-columns-2{margin-right:0;margin-left:300px}.acf-columns-2 .acf-column-1{float:left;width:100%}html[dir=rtl] .acf-columns-2 .acf-column-1{float:right}.acf-columns-2 .acf-column-2{float:right;margin-right:-300px;width:280px}html[dir=rtl] .acf-columns-2 .acf-column-2{float:left;margin-right:0;margin-left:-300px}.acf-field-setting-acfe_bidirectional>.acf-input>.acf-fields,.acf-field-setting-acfe_hide>.acf-input>.acf-fields,.acf-field-setting-acfe_permissions>.acf-input>.acf-fields,.acf-field-setting-acfe_settings>.acf-input>.acf-fields,.acf-field-setting-acfe_settings>.acf-input>.acf-fields>.acf-field.acf-field-acfe-settings-rules-or,.acf-field-setting-acfe_update>.acf-input>.acf-fields,.acf-field-setting-acfe_update>.acf-input>.acf-fields>.acf-field.acf-field-acfe-update-functions,.acf-field-setting-acfe_validate>.acf-input>.acf-fields,.acf-field-setting-acfe_validate>.acf-input>.acf-fields>.acf-field.acf-field-acfe-validate-rules-or{border:0}.acf-field-setting-acfe_bidirectional>.acf-input>.acf-fields>.acf-field,.acf-field-setting-acfe_hide>.acf-input>.acf-fields>.acf-field,.acf-field-setting-acfe_permissions>.acf-input>.acf-fields>.acf-field,.acf-field-setting-acfe_settings>.acf-input>.acf-fields>.acf-field,.acf-field-setting-acfe_update>.acf-input>.acf-fields>.acf-field,.acf-field-setting-acfe_validate>.acf-input>.acf-fields>.acf-field{padding:0}.acf-field-setting-acfe_field_data{display:none}.acf-field-hide-front.acfe_width_auto{margin-right:30px}.acf-field-setting-acfe_bidirectional>.acf-input>.acf-fields>.acf-field.acf-field-acfe-bidirectional-enabled>.acf-label,.acf-field-setting-acfe_bidirectional>.acf-input>.acf-fields>.acf-field.acf-field-acfe-bidirectional-related>.acf-label,.acf-field-setting-acfe_settings>.acf-input>.acf-fields>.acf-field.acf-field-acfe-settings-activate>.acf-label,.acf-field-setting-acfe_update>.acf-input>.acf-fields>.acf-field.acf-field-acfe-update-activate>.acf-label,.acf-field-setting-acfe_validate>.acf-input>.acf-fields>.acf-field.acf-field-acfe-validate-activate>.acf-label{display:none}.acf-field-acfe-meta>.acf-input .acf-repeater.-empty.-table>table,.acf-field-setting-acfe_settings>.acf-input .acf-repeater.-empty.-table>table,.acf-field-setting-acfe_update>.acf-input .acf-repeater.-empty.-table>table,.acf-field-setting-acfe_validate>.acf-input .acf-repeater.-empty.-table>table{border:0;display:none}.acf-field-acfe-meta>.acf-input .acf-repeater.-empty.-table>table>thead,.acf-field-setting-acfe_settings>.acf-input .acf-repeater.-empty.-table>table>thead,.acf-field-setting-acfe_update>.acf-input .acf-repeater.-empty.-table>table>thead,.acf-field-setting-acfe_validate>.acf-input .acf-repeater.-empty.-table>table>thead{display:none}.acf-field-acfe-meta>.acf-input>.acf-repeater .acf-actions,.acf-field-setting-acfe_settings>.acf-input>.acf-repeater .acf-actions,.acf-field-setting-acfe_update>.acf-input>.acf-repeater .acf-actions,.acf-field-setting-acfe_validate>.acf-input>.acf-repeater .acf-actions{text-align:left}.acf-repeater.-block>table,.acf-repeater.-row>table{border-collapse:separate;border-spacing:0 15px;background:0 0;border:0;margin-top:-15px;margin-bottom:-7px}.acf-repeater.-block>table>*,.acf-repeater.-row>table>*{border-collapse:collapse;border-spacing:0}.acf-repeater.-block>table>tbody>tr>td,.acf-repeater.-row>table>tbody>tr>td{border-top:1px solid #ccd0d4!important;border-bottom:1px solid #ccd0d4!important}.acf-repeater.-block>table>tbody>tr>td:first-of-type,.acf-repeater.-row>table>tbody>tr>td:first-of-type{border-left:1px solid #ccd0d4!important}.acf-repeater.-block>table>tbody>tr>td:last-of-type,.acf-repeater.-row>table>tbody>tr>td:last-of-type{border-right:1px solid #ccd0d4!important}body:not(.acf-admin-5-3) .acf-repeater.-block>table>tbody>tr>td,body:not(.acf-admin-5-3) .acf-repeater.-row>table>tbody>tr>td{border-top:1px solid #e1e1e1;border-bottom:1px solid #e1e1e1}body:not(.acf-admin-5-3) .acf-repeater.-block>table>tbody>tr>td:first-of-type,body:not(.acf-admin-5-3) .acf-repeater.-row>table>tbody>tr>td:first-of-type{border-left:1px solid #e1e1e1}body:not(.acf-admin-5-3) .acf-repeater.-block>table>tbody>tr>td:last-of-type,body:not(.acf-admin-5-3) .acf-repeater.-row>table>tbody>tr>td:last-of-type{border-right:1px solid #e1e1e1}.acf-field-setting-acfe_bidirectional>.acf-input>.acf-fields>.acf-field.acf-field-acfe-bidirectional-related{margin-left:10px}.acfe_width_auto{width:auto!important}.status-acf-disabled .column-title a,.status-acf-disabled .column-title code{color:#555!important}.status-acf-disabled .column-title strong{color:#a0a5aa}.column-acf-field-group-category{width:125px}td.acf-field-group-category a{word-wrap:break-word;padding:2px 5px;margin:0 1px;border-radius:2px;background:rgba(0,0,0,.06);color:#23282d}.column-acfe-location{width:100px}.column-acf-description,.column-acf-location{width:230px}#acf-field-group-wrap .wp-list-table .column-acf-fg-status{width:70px}#acf-field-group-wrap .wp-list-table .column-acf-fg-count,.post-type-acf-field-group .wp-list-table .column-acf-count{width:80px}.post-type-acf-field-group .wp-list-table .column-title .post-state{color:#a0a5aa}.column-title .acfe-key{color:#555;font-size:12px}.column-acfe-load{width:70px}.column-acfe-source{width:150px}.column-acfe-autosync-json,.column-acfe-autosync-php{width:90px;text-align:center!important}.column-acfe-autosync-json .secondary,.column-acfe-autosync-php .secondary{color:#ccc}.column-acfe-autosync-json .dashicons-warning,.column-acfe-autosync-php .dashicons-warning{font-size:15px;vertical-align:middle}.acf-field[data-name=acfe_autosync] .dashicons-warning{color:#ccc;font-size:15px;height:15px;vertical-align:text-bottom}.column-acfe-autosync-json .dashicons-update,.column-acfe-autosync-php .dashicons-update{font-size:18px}.column-acfe-autosync-json .dashicons+.dashicons-warning,.column-acfe-autosync-php .dashicons+.dashicons-warning{margin-left:-3px}.acf-field-image[data-name=acfe_flexible_thumbnail]>.acf-input>.acf-image-uploader.has-value>.show-if-value.image-wrap{max-width:85px!important}.acf-diff-content table.diff tbody tr td:nth-child(2){width:auto}body.acf-admin-5-3 .acf-field-setting-fc_layout .acf-input-wrap.select{border-color:#7e8993}body.acf-admin-5-3 .acf-field-setting-fc_layout .acf-input-wrap.select select{min-height:28px}.acf-field-acfe-flexible-modal>.acf-input>.acf-fields{border:0}.acf-field-acfe-flexible-modal>.acf-input>.acf-fields .acf-field-acfe-flexible-modal-enabled{padding:0}.acf-field-acfe-flexible-modal>.acf-input>.acf-fields .acf-field-acfe-flexible-modal-enabled .acf-label{display:none}.acf-field-acfe-flexible-modal>.acf-input>.acf-fields .acf-field-acfe-flexible-modal-enabled{margin-right:10px}.acf-field-acfe-flexible-modal>.acf-input>.acf-fields .acf-field-acfe-flexible-modal-categories,.acf-field-acfe-flexible-modal>.acf-input>.acf-fields .acf-field-acfe-flexible-modal-col,.acf-field-acfe-flexible-modal>.acf-input>.acf-fields .acf-field-acfe-flexible-modal-title{padding-top:0;padding-bottom:0;padding-left:0;border-top:0;border-left:0!important;min-height:55px}.acf-field-setting-fc_layout>.acf-input>.acf-fc-meta .acf-field[data-name=acfe_flexible_category],.acf-field-setting-fc_layout>.acf-input>.acf-fc-meta .acf-field[data-name=acfe_flexible_settings],.acf-field-setting-fc_layout>.acf-input>.acf-fc-meta .acf-field[data-name=acfe_flexible_settings_label],.acf-field-setting-fc_layout>.acf-input>.acf-fc-meta .acf-field[data-name=acfe_flexible_settings_size],.acf-field-setting-fc_layout>.acf-input>.acf-fc-meta .acf-field[data-name=acfe_flexible_thumbnail]{margin:0}.acf-field-setting-fc_layout>.acf-input>.acf-fc-meta .acf-field[data-name=acfe_flexible_settings],.acf-field-setting-fc_layout>.acf-input>.acf-fc-meta .acf-field[data-name=acfe_flexible_settings_size]{margin-right:10px}.acf-field-setting-fc_layout>.acf-input>.acf-fc-meta .acf-field[data-name=acfe_flexible_settings_size]{border-left:0}.acf-field-setting-fc_layout>.acf-input>.acf-fc-meta .acf-field[data-name=acfe_flexible_settings_label]>.acf-input{margin:0}.acf-field-setting-fc_layout>.acf-input>.acf-fc-meta>.acf-fc-meta-label:first-of-type{margin:0}.acf-field-setting-fc_layout .select2-container--default .select2-selection--multiple li{margin-bottom:0}.acf-field-object-acfe-column .acf-field-setting-instructions,.acf-field-object-acfe-column .acf-field-setting-label,.acf-field-object-acfe-column .acf-field-setting-name,.acf-field-object-acfe-column .acf-field-setting-required,.acf-field-object-acfe-column .acf-field-setting-warning,.acf-field-object-acfe-column .acf-field-setting-wrapper{display:none}.acf-field-object+.acf-field-object-acfe-column:before{display:block;content:"";height:5px;width:100%;background:#f9f9f9;border-bottom:#f0f0f0 solid 1px}.acf-field-object-acfe-column .li-field-name{visibility:hidden}.acf-field-setting-allow_terms>.acf-input>ul>li:first-of-type{width:calc(100% - 125px)}.acf-field-setting-allow_terms>.acf-input>ul>li:last-of-type{width:125px}#acf-field-group-locations .rule-groups>.rule-group>table>tbody>tr>td.value>.acf-field{margin:0}
assets/acf-extended-admin.min.js ADDED
@@ -0,0 +1 @@
 
1
+ !function(i){var e;"undefined"!=typeof acf&&(new acf.Model({actions:{new_field:"onNewField"},onNewField:function(e){var t;e.has("after")&&(t=e.get("after"),(t=e.$el.siblings('[data-name="'+t+'"]').first()).length&&t.after(e.$el))}}),new acf.Model({wait:"ready",actions:{append:"onAppend","acfe/field_group/rule_refresh":"refreshFields"},initialize:function(){this.$el=i("#acf-field-group-locations")},onAppend:function(e){(e.is(".rule-group")||e.parent().parent().parent().is(".rule-group"))&&this.refreshFields()},refreshFields:function(){var e=acf.getFields({parent:this.$("td.value")});i.each(e,function(){var e=this;"date_picker"!==e.get("type")&&"date_time_picker"!==e.get("type")&&"time_picker"!==e.get("type")||(e.$inputText().removeClass("hasDatepicker").removeAttr("id"),e.initialize())})}}),acf.addAction("ready_field_object",function(e){e.get("key").startsWith("field_acfe_layout_")&&e.delete()}),acf.addAction("new_field/name=acfe_meta",e=function(e){e.$(".acf-button").removeClass("button-primary")}),acf.addAction("new_field/name=acfe_settings",e),acf.addAction("new_field/name=acfe_validate",e),i(function(){i(".button.edit-field").each(function(e,t){var a=i(this).closest("tbody");i(a).find(".acfe_modal_open:first").insertAfter(i(this)),i(a).find(".acfe-modal:first").appendTo(i("body")),i(a).find("tr.acf-field-setting-acfe_field_data:first").remove()}),i(".acfe_modal_open").click(function(e){e.preventDefault();e=i(this).attr("data-modal-key"),e=i(".acfe-modal[data-modal-key="+e+"]");acfe.modal.open(e,{title:"Data",size:"medium"})})}))}(jQuery);
assets/acf-extended-fc-control.css DELETED
@@ -1,105 +0,0 @@
1
- /*
2
- * ACFE: Flexible Icons
3
- */
4
- .acf-flexible-content .layout .acf-icon.acfe-flexible-icon.dashicons:before{
5
- font-family: dashicons;
6
- }
7
-
8
- .acf-flexible-content .layout .acf-icon.acfe-flexible-icon.dashicons{
9
- visibility: hidden;
10
- }
11
-
12
- .acf-flexible-content .layout:hover > .acf-fc-layout-controls .acf-icon.acfe-flexible-icon.dashicons{
13
- visibility: visible;
14
- }
15
-
16
- .acf-flexible-content .layout .acf-icon.acfe-flexible-icon.dashicons.dashicons-admin-generic{
17
- visibility: visible;
18
- }
19
- .acf-flexible-content .layout .acf-icon.acfe-flexible-icon.dashicons.dashicons-admin-generic:before{
20
- margin-left: 1px;
21
- }
22
-
23
- .acf-flexible-content .layout:hover .acf-fc-layout-controls .acf-icon.-plus,
24
- .acf-flexible-content .layout:hover .acf-fc-layout-controls .acf-icon.-minus,
25
- .acf-flexible-content .layout:hover .acf-fc-layout-controls .acf-icon.-duplicate,
26
- .acf-flexible-content .layout.-hover .acf-fc-layout-controls .acf-icon.-plus,
27
- .acf-flexible-content .layout.-hover .acf-fc-layout-controls .acf-icon.-minus,
28
- .acf-flexible-content .layout.-hover .acf-fc-layout-controls .acf-icon.-duplicate {
29
- visibility: hidden;
30
- }
31
-
32
- .acf-flexible-content .layout:hover > .acf-fc-layout-controls .acf-icon.-plus,
33
- .acf-flexible-content .layout:hover > .acf-fc-layout-controls .acf-icon.-minus,
34
- .acf-flexible-content .layout:hover > .acf-fc-layout-controls .acf-icon.-duplicate,
35
- .acf-flexible-content .layout.-hover > .acf-fc-layout-controls .acf-icon.-plus,
36
- .acf-flexible-content .layout.-hover > .acf-fc-layout-controls .acf-icon.-minus,
37
- .acf-flexible-content .layout.-hover > .acf-fc-layout-controls .acf-icon.-duplicate {
38
- visibility: visible;
39
- }
40
-
41
- .acf-flexible-content .layout > .acf-fc-layout-controls .acf-icon.disabled{
42
- color: #ccc;
43
- cursor: initial;
44
- }
45
-
46
- .acf-flexible-content .layout > .acf-fc-layout-controls .acf-icon.disabled:hover{
47
- color: #ccc;
48
- background: #F5F5F5;
49
- }
50
-
51
- .acf-flexible-content[data-acfe-flexible-lock="1"] .layout .acf-fc-layout-handle{
52
- cursor:initial;
53
- }
54
-
55
-
56
- /*
57
- * ACFE: Title Edit
58
- */
59
- .acf-field-acfe-flexible-layout-title{
60
- display:none;
61
- }
62
-
63
- input.acfe-flexible-control-title{
64
- border:none;
65
- box-shadow:none !important;
66
- outline:none !important;
67
- border-radius:0;
68
- border-bottom:1px solid transparent !important;
69
- font-weight:600;
70
- width:auto !important;
71
- padding:0 !important;
72
- display:none;
73
- min-height:20px;
74
- vertical-align: unset;
75
- background:none;
76
- }
77
-
78
- .layout > .acf-fc-layout-handle .acfe-layout-title{
79
- cursor:text;
80
- position:relative;
81
- }
82
-
83
- .layout:not(.acfe-flexible-title-edition) > .acf-fc-layout-handle .acfe-layout-title:hover{
84
- background:#f4f4f4;
85
- }
86
-
87
- .layout.acfe-flexible-title-edition > .acf-fc-layout-handle .acfe-layout-title input.acfe-flexible-control-title{
88
- display:inline-block;
89
- border-bottom:1px solid #ddd !important;
90
- }
91
-
92
- .layout.acfe-flexible-title-edition > .acf-fc-layout-handle .acfe-layout-title .acfe-layout-title-text{
93
- display:none;
94
- }
95
-
96
- /*
97
- * ACFE: Toggle
98
- */
99
- .layout.acfe-flexible-layout-hidden > .acf-fc-layout-handle,
100
- .layout.acfe-flexible-layout-hidden > .acf-fc-layout-controls,
101
- .layout.acfe-flexible-layout-hidden > .acfe-fc-placeholder,
102
- .layout.acfe-flexible-layout-hidden > .acf-fields{
103
- filter: alpha(opacity=50);
104
- opacity: 0.5;
105
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/acf-extended-fc-control.js DELETED
@@ -1,788 +0,0 @@
1
- (function($){
2
-
3
- if(typeof acf === 'undefined')
4
- return;
5
-
6
- /*
7
- * Init
8
- */
9
- var flexible = acf.getFieldType('flexible_content');
10
- var model = flexible.prototype;
11
-
12
- /*
13
- * Actions
14
- */
15
- /*
16
- * Actions
17
- */
18
- model.events['click .acf-fc-layout-handle'] = 'acfeEditLayoutTitleToggleHandle';
19
- model.acfeEditLayoutTitleToggleHandle = function(e, $el){
20
-
21
- var flexible = this;
22
-
23
- // Title Edition
24
- if(!flexible.has('acfeFlexibleTitleEdition'))
25
- return;
26
-
27
- // Vars
28
- var $layout = $el.closest('.layout');
29
-
30
- if($layout.hasClass('acfe-flexible-title-edition')){
31
-
32
- $layout.find('> .acf-fc-layout-handle > .acfe-layout-title > input.acfe-flexible-control-title').trigger('blur');
33
-
34
- }
35
-
36
- }
37
-
38
- model.events['click .acfe-layout-title-text'] = 'acfeEditLayoutTitle';
39
- model.acfeEditLayoutTitle = function(e, $el){
40
-
41
- // Get Flexible
42
- var flexible = this;
43
-
44
- // Title Edition
45
- if(!flexible.has('acfeFlexibleTitleEdition'))
46
- return;
47
-
48
- // Stop propagation
49
- e.stopPropagation();
50
-
51
- // Toggle
52
- flexible.acfeEditLayoutTitleToggle(e, $el);
53
-
54
- }
55
-
56
- model.events['blur input.acfe-flexible-control-title'] = 'acfeEditLayoutTitleToggle';
57
- model.acfeEditLayoutTitleToggle = function(e, $el){
58
-
59
- var flexible = this;
60
-
61
- // Vars
62
- var $layout = $el.closest('.layout');
63
- var $handle = $layout.find('> .acf-fc-layout-handle');
64
- var $title = $handle.find('.acfe-layout-title');
65
-
66
- if($layout.hasClass('acfe-flexible-title-edition')){
67
-
68
- var $input = $title.find('> input[data-acfe-flexible-control-title-input]');
69
-
70
- if($input.val() === '')
71
- $input.val($input.attr('placeholder')).trigger('input');
72
-
73
- $layout.removeClass('acfe-flexible-title-edition');
74
-
75
- $input.insertAfter($handle);
76
-
77
- }
78
-
79
- else{
80
-
81
- var $input = $layout.find('> input[data-acfe-flexible-control-title-input]');
82
-
83
- var $input = $input.appendTo($title);
84
-
85
- $layout.addClass('acfe-flexible-title-edition');
86
- $input.focus().attr('size', $input.val().length);
87
-
88
- }
89
-
90
- }
91
-
92
- // Layout: Edit Title
93
- model.events['click input.acfe-flexible-control-title'] = 'acfeEditLayoutTitlePropagation';
94
- model.acfeEditLayoutTitlePropagation = function(e, $el){
95
-
96
- e.stopPropagation();
97
-
98
- }
99
-
100
- // Layout: Edit Title Input
101
- model.events['input [data-acfe-flexible-control-title-input]'] = 'acfeEditLayoutTitleInput';
102
- model.acfeEditLayoutTitleInput = function(e, $el){
103
-
104
- // Vars
105
- var $layout = $el.closest('.layout');
106
- var $title = $layout.find('> .acf-fc-layout-handle .acfe-layout-title .acfe-layout-title-text');
107
-
108
- var val = $el.val();
109
-
110
- $el.attr('size', val.length);
111
-
112
- $title.html(val);
113
-
114
- }
115
-
116
- // Layout: Edit Title Input Enter
117
- model.events['keypress [data-acfe-flexible-control-title-input]'] = 'acfeEditLayoutTitleInputEnter';
118
- model.acfeEditLayoutTitleInputEnter = function(e, $el){
119
-
120
- // Enter Key
121
- if(e.keyCode !== 13)
122
- return;
123
-
124
- e.preventDefault();
125
- $el.blur();
126
-
127
- }
128
-
129
- // Layout: Settings
130
- model.events['click [data-acfe-flexible-settings]'] = 'acfeLayoutSettings';
131
- model.acfeLayoutSettings = function(e, $el){
132
-
133
- // Get Flexible
134
- var flexible = this;
135
-
136
- // Vars
137
- var $layout = $el.closest('.layout');
138
-
139
- // Modal data
140
- var $modal = $layout.find('> .acfe-modal.-settings');
141
- var $handle = $layout.find('> .acf-fc-layout-handle');
142
-
143
- var $layout_order = $handle.find('> .acf-fc-layout-order').outerHTML();
144
- var $layout_title = $handle.find('.acfe-layout-title-text').text();
145
-
146
- // Open modal
147
- acfe.modal.open($modal, {
148
- title: $layout_order + ' ' + $layout_title,
149
- footer: acf.__('Close'),
150
- onOpen: function(){
151
-
152
- },
153
- onClose: function(){
154
-
155
- if(flexible.has('acfeFlexiblePreview')){
156
-
157
- flexible.closeLayout($layout);
158
-
159
- }
160
-
161
- }
162
- });
163
-
164
- }
165
-
166
- /*
167
- * Layout: Toggle Action
168
- */
169
- model.events['click [data-acfe-flexible-control-toggle]'] = 'acfeLayoutToggle';
170
- model.acfeLayoutToggle = function(e, $el){
171
-
172
- // Get Flexible
173
- var flexible = this;
174
-
175
- // Vars
176
- var $layout = $el.closest('.layout');
177
-
178
- var $field = $layout.find('> .acfe-flexible-layout-toggle');
179
-
180
- if(!$field.length)
181
- return;
182
-
183
- if($field.val() === '1'){
184
-
185
- $layout.removeClass('acfe-flexible-layout-hidden');
186
- $field.val('');
187
-
188
- }else{
189
-
190
- $layout.addClass('acfe-flexible-layout-hidden');
191
- $field.val('1');
192
-
193
- }
194
-
195
- }
196
-
197
- /*
198
- * Layout: Toggle Spawn
199
- */
200
- acf.addAction('acfe/flexible/layouts', function($layout, flexible){
201
-
202
- if(!flexible.has('acfeFlexibleToggle'))
203
- return;
204
-
205
- // Layout Closed
206
- var $field = $layout.find('> .acfe-flexible-layout-toggle');
207
-
208
- if(!$field.length)
209
- return;
210
-
211
- if($field.val() === '1'){
212
-
213
- $layout.addClass('acfe-flexible-layout-hidden');
214
-
215
- }else{
216
-
217
- $layout.removeClass('acfe-flexible-layout-hidden');
218
-
219
- }
220
-
221
- });
222
-
223
- // Layout: Clone
224
- model.events['click [data-acfe-flexible-control-clone]'] = 'acfeCloneLayout';
225
- model.acfeCloneLayout = function(e, $el){
226
-
227
- // Get Flexible
228
- var flexible = this;
229
-
230
- // Vars
231
- var $layout = $el.closest('.layout');
232
- var layout_name = $layout.data('layout');
233
-
234
- // Popup min/max
235
- var $popup = $(flexible.$popup().html());
236
- var $layouts = flexible.$layouts();
237
-
238
- var countLayouts = function(name){
239
- return $layouts.filter(function(){
240
- return $(this).data('layout') === name;
241
- }).length;
242
- };
243
-
244
- // vars
245
- var $a = $popup.find('[data-layout="' + layout_name + '"]');
246
- var min = $a.data('min') || 0;
247
- var max = $a.data('max') || 0;
248
- var count = countLayouts(layout_name);
249
-
250
- // max
251
- if(max && count >= max){
252
-
253
- $el.addClass('disabled');
254
- return false;
255
-
256
- }else{
257
-
258
- $el.removeClass('disabled');
259
-
260
- }
261
-
262
- // Fix inputs
263
- flexible.acfeFixInputs($layout);
264
-
265
- var $_layout = $layout.clone();
266
-
267
- // Clean Layout
268
- flexible.acfeCleanLayouts($_layout);
269
-
270
- var parent = $el.closest('.acf-flexible-content').find('> input[type=hidden]').attr('name');
271
-
272
- // Clone
273
- var $layout_added = flexible.acfeDuplicate({
274
- layout: $_layout,
275
- before: $layout,
276
- parent: parent
277
- });
278
-
279
- }
280
-
281
- // Layout: Copy
282
- model.events['click [data-acfe-flexible-control-copy]'] = 'acfeCopyLayout';
283
- model.acfeCopyLayout = function(e, $el){
284
-
285
- // Get Flexible
286
- var flexible = this;
287
-
288
- // Vars
289
- var $layout = $el.closest('.layout').clone();
290
- var source = flexible.$control().find('> input[type=hidden]').attr('name');
291
-
292
- // Fix inputs
293
- flexible.acfeFixInputs($layout);
294
-
295
- // Clean layout
296
- flexible.acfeCleanLayouts($layout);
297
-
298
- // Get layout data
299
- var data = JSON.stringify({
300
- source: source,
301
- layouts: $layout[0].outerHTML
302
- });
303
-
304
- // Append Temp Input
305
- var $input = $('<input type="text" style="clip:rect(0,0,0,0);clip-path:rect(0,0,0,0);position:absolute;" value="" />').appendTo($('body'));
306
- $input.attr('value', data).select();
307
-
308
- // Command: Copy
309
- if(document.execCommand('copy'))
310
- alert('Layout has been transferred to your clipboard');
311
-
312
- // Prompt
313
- else
314
- prompt('Copy the following layout data to your clipboard', data);
315
-
316
- // Remove the temp input
317
- $input.remove();
318
-
319
- }
320
-
321
- // Flexible: Copy Layouts
322
- model.acfeCopyLayouts = function(){
323
-
324
- // Get Flexible
325
- var flexible = this;
326
-
327
- // Get layouts
328
- var $layouts = flexible.$layoutsWrap().clone();
329
- var source = flexible.$control().find('> input[type=hidden]').attr('name');
330
-
331
- // Fix inputs
332
- flexible.acfeFixInputs($layouts);
333
-
334
- // Clean layout
335
- flexible.acfeCleanLayouts($layouts);
336
-
337
- // Get layouts data
338
- var data = JSON.stringify({
339
- source: source,
340
- layouts: $layouts.html()
341
- });
342
-
343
- // Append Temp Input
344
- var $input = $('<input type="text" style="clip:rect(0,0,0,0);clip-path:rect(0,0,0,0);position:absolute;" value="" />').appendTo(flexible.$el);
345
- $input.attr('value', data).select();
346
-
347
- // Command: Copy
348
- if(document.execCommand('copy'))
349
- alert('Layouts have been transferred to your clipboard');
350
-
351
- // Prompt
352
- else
353
- prompt('Copy the following layouts data to your clipboard', data);
354
-
355
- $input.remove();
356
-
357
- }
358
-
359
- // Flexible: Paste Layouts
360
- model.acfePasteLayouts = function(){
361
-
362
- // Get Flexible
363
- var flexible = this;
364
-
365
- var paste = prompt('Paste layouts data in the following field');
366
-
367
- // No input
368
- if(paste == null || paste === '')
369
- return;
370
-
371
- try{
372
-
373
- // Paste HTML
374
- var data = JSON.parse(paste);
375
- var source = data.source;
376
- var $html = $(data.layouts);
377
-
378
- // Parsed layouts
379
- var $html_layouts = $html.closest('[data-layout]');
380
-
381
- if(!$html_layouts.length)
382
- return alert('No layouts data available');
383
-
384
- // Popup min/max
385
- var $popup = $(flexible.$popup().html());
386
- var $layouts = flexible.$layouts();
387
-
388
- var countLayouts = function(name){
389
- return $layouts.filter(function(){
390
- return $(this).data('layout') === name;
391
- }).length;
392
- };
393
-
394
- // init
395
- var validated_layouts = [];
396
-
397
- // Each first level layouts
398
- $html_layouts.each(function(){
399
-
400
- var $this = $(this);
401
- var layout_name = $this.data('layout');
402
-
403
- // vars
404
- var $a = $popup.find('[data-layout="' + layout_name + '"]');
405
- var min = $a.data('min') || 0;
406
- var max = $a.data('max') || 0;
407
- var count = countLayouts(layout_name);
408
-
409
- // max
410
- if(max && count >= max)
411
- return;
412
-
413
- // Validate layout against available layouts
414
- var get_clone_layout = flexible.$clone($this.attr('data-layout'));
415
-
416
- // Layout is invalid
417
- if(!get_clone_layout.length)
418
- return;
419
-
420
- // Add validated layout
421
- validated_layouts.push($this);
422
-
423
- });
424
-
425
- // Nothing to add
426
- if(!validated_layouts.length)
427
- return alert('No layouts could be pasted');
428
-
429
- // Add layouts
430
- $.each(validated_layouts, function(){
431
-
432
- var $layout = $(this);
433
- var search = source + '[' + $layout.attr('data-id') + ']';
434
- var target = flexible.$control().find('> input[type=hidden]').attr('name');
435
-
436
- flexible.acfeDuplicate({
437
- layout: $layout,
438
- before: false,
439
- search: search,
440
- parent: target
441
- });
442
-
443
- });
444
-
445
- }catch(e){
446
-
447
- console.log(e);
448
- alert('Invalid data');
449
-
450
- }
451
-
452
- }
453
-
454
- // Flexible: Dropdown
455
- model.events['click [data-name="acfe-flexible-control-button"]'] = 'acfeControl';
456
- model.acfeControl = function(e, $el){
457
-
458
- // Get Flexible
459
- var flexible = this;
460
-
461
- // Vars
462
- var $dropdown = $el.next('.tmpl-acfe-flexible-control-popup').html();
463
-
464
- // Init Popup
465
- var Popup = acf.models.TooltipConfirm.extend({
466
- render: function(){
467
- this.html(this.get('text'));
468
- this.$el.addClass('acf-fc-popup');
469
- }
470
- });
471
-
472
- // New Popup
473
- var popup = new Popup({
474
- target: $el,
475
- targetConfirm: false,
476
- text: $dropdown,
477
- context: flexible,
478
- confirm: function(e, $el){
479
-
480
- if($el.attr('data-acfe-flexible-control-action') === 'paste')
481
- flexible.acfePasteLayouts();
482
-
483
- else if($el.attr('data-acfe-flexible-control-action') === 'copy')
484
- flexible.acfeCopyLayouts();
485
-
486
- }
487
- });
488
-
489
- popup.on('click', 'a', 'onConfirm');
490
-
491
- }
492
-
493
- // Flexible: Duplicate
494
- model.acfeDuplicate = function(args){
495
-
496
- // Arguments
497
- args = acf.parseArgs(args, {
498
- layout: '',
499
- before: false,
500
- parent: false,
501
- search: '',
502
- replace: '',
503
- });
504
-
505
- // Validate
506
- if(!this.allowAdd())
507
- return false;
508
-
509
- var uniqid = acf.uniqid();
510
-
511
- if(args.parent){
512
-
513
- if(!args.search){
514
-
515
- args.search = args.parent + '[' + args.layout.attr('data-id') + ']';
516
-
517
- }
518
-
519
- args.replace = args.parent + '[' + uniqid + ']';
520
-
521
- }
522
-
523
- // Add row
524
- var $el = acf.duplicate({
525
- target: args.layout,
526
- search: args.search,
527
- replace: args.replace,
528
- append: this.proxy(function($el, $el2){
529
-
530
- // Add class to duplicated layout
531
- $el2.addClass('acfe-layout-duplicated');
532
-
533
- // Reset UniqID
534
- $el2.attr('data-id', uniqid);
535
-
536
- // append before
537
- if(args.before){
538
-
539
- // Fix clone: Use after() instead of native before()
540
- args.before.after($el2);
541
-
542
- }
543
-
544
- // append end
545
- else{
546
-
547
- this.$layoutsWrap().append($el2);
548
-
549
- }
550
-
551
- // enable
552
- acf.enable($el2, this.cid);
553
-
554
- // render
555
- this.render();
556
-
557
- })
558
- });
559
-
560
- // trigger change for validation errors
561
- this.$input().trigger('change');
562
-
563
- // Fix tabs conditionally hidden
564
- var tabs = acf.getFields({
565
- type: 'tab',
566
- parent: $el,
567
- });
568
-
569
- if(tabs.length){
570
-
571
- $.each(tabs, function(){
572
-
573
- if(this.$el.hasClass('acf-hidden')){
574
-
575
- this.tab.$el.addClass('acf-hidden');
576
-
577
- }
578
-
579
- });
580
-
581
- }
582
-
583
-
584
- // return
585
- return $el;
586
-
587
- }
588
-
589
- // Flexible: Fix Inputs
590
- model.acfeFixInputs = function($layout){
591
-
592
- $layout.find('input').each(function(){
593
-
594
- $(this).attr('value', this.value);
595
-
596
- });
597
-
598
- $layout.find('textarea').each(function(){
599
-
600
- $(this).html(this.value);
601
-
602
- });
603
-
604
- $layout.find('input:radio,input:checkbox').each(function() {
605
-
606
- if(this.checked)
607
- $(this).attr('checked', 'checked');
608
-
609
- else
610
- $(this).attr('checked', false);
611
-
612
- });
613
-
614
- $layout.find('option').each(function(){
615
-
616
- if(this.selected)
617
- $(this).attr('selected', 'selected');
618
-
619
- else
620
- $(this).attr('selected', false);
621
-
622
- });
623
-
624
- }
625
-
626
- // Flexible: Clean Layout
627
- model.acfeCleanLayouts = function($layout){
628
-
629
- // Clean WP Editor
630
- $layout.find('.acf-editor-wrap').each(function(){
631
-
632
- var $input = $(this);
633
-
634
- $input.find('.wp-editor-container div').remove();
635
- $input.find('.wp-editor-container textarea').css('display', '');
636
-
637
- });
638
-
639
- // Clean Date
640
- $layout.find('.acf-date-picker').each(function(){
641
-
642
- var $input = $(this);
643
-
644
- $input.find('input.input').removeClass('hasDatepicker').removeAttr('id');
645
-
646
- });
647
-
648
- // Clean Time
649
- $layout.find('.acf-time-picker').each(function(){
650
-
651
- var $input = $(this);
652
-
653
- $input.find('input.input').removeClass('hasDatepicker').removeAttr('id');
654
-
655
- });
656
-
657
- // Clean DateTime
658
- $layout.find('.acf-date-time-picker').each(function(){
659
-
660
- var $input = $(this);
661
-
662
- $input.find('input.input').removeClass('hasDatepicker').removeAttr('id');
663
-
664
- });
665
-
666
- // Clean Color Picker
667
- $layout.find('.acf-color-picker').each(function(){
668
-
669
- var $input = $(this);
670
-
671
- var $color_picker = $input.find('> input');
672
- var $color_picker_proxy = $input.find('.wp-picker-container input.wp-color-picker').clone();
673
-
674
- $color_picker.after($color_picker_proxy);
675
-
676
- $input.find('.wp-picker-container').remove();
677
-
678
- });
679
-
680
- // Clean Post Object
681
- $layout.find('.acf-field-post-object').each(function(){
682
-
683
- var $input = $(this);
684
-
685
- $input.find('> .acf-input span').remove();
686
-
687
- $input.find('> .acf-input select').removeAttr('tabindex aria-hidden').removeClass();
688
-
689
- });
690
-
691
- // Clean Page Link
692
- $layout.find('.acf-field-page-link').each(function(){
693
-
694
- var $input = $(this);
695
-
696
- $input.find('> .acf-input span').remove();
697
-
698
- $input.find('> .acf-input select').removeAttr('tabindex aria-hidden').removeClass();
699
-
700
- });
701
-
702
- // Clean Select2
703
- $layout.find('.acf-field-select').each(function(){
704
-
705
- var $input = $(this);
706
-
707
- $input.find('> .acf-input span').remove();
708
-
709
- $input.find('> .acf-input select').removeAttr('tabindex aria-hidden').removeClass();
710
-
711
- });
712
-
713
- // Clean FontAwesome
714
- $layout.find('.acf-field-font-awesome').each(function(){
715
-
716
- var $input = $(this);
717
-
718
- $input.find('> .acf-input span').remove();
719
-
720
- $input.find('> .acf-input select').removeAttr('tabindex aria-hidden');
721
-
722
- });
723
-
724
-
725
- // Clean Tab
726
- $layout.find('.acf-tab-wrap').each(function(){
727
-
728
- var $wrap = $(this);
729
-
730
- var $content = $wrap.closest('.acf-fields');
731
-
732
- var tabs = [];
733
- $.each($wrap.find('li a'), function(){
734
-
735
- tabs.push($(this));
736
-
737
- });
738
-
739
- $content.find('> .acf-field-tab').each(function(){
740
-
741
- $current_tab = $(this);
742
-
743
- $.each(tabs, function(){
744
-
745
- var $this = $(this);
746
-
747
- if($this.attr('data-key') !== $current_tab.attr('data-key'))
748
- return;
749
-
750
- $current_tab.find('> .acf-input').append($this);
751
-
752
- });
753
-
754
- });
755
-
756
- $wrap.remove();
757
-
758
- });
759
-
760
- // Clean Accordion
761
- $layout.find('.acf-field-accordion').each(function(){
762
-
763
- var $input = $(this);
764
-
765
- $input.find('> .acf-accordion-title > .acf-accordion-icon').remove();
766
-
767
- // Append virtual endpoint after each accordion
768
- $input.after('<div class="acf-field acf-field-accordion" data-type="accordion"><div class="acf-input"><div class="acf-fields" data-endpoint="1"></div></div></div>');
769
-
770
- });
771
-
772
- }
773
-
774
- /*
775
- * Spawn
776
- */
777
- acf.addAction('new_field/type=flexible_content', function(flexible){
778
-
779
- // ACFE: Lock
780
- if(flexible.has('acfeFlexibleLock')){
781
-
782
- flexible.removeEvents({'mouseover': 'onHover'});
783
-
784
- }
785
-
786
- });
787
-
788
- })(jQuery);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/acf-extended-fc-modal-edit.css DELETED
@@ -1,6 +0,0 @@
1
- /*
2
- * Flexible Edit: Hide Collapse
3
- */
4
- .acf-field-flexible-content[data-acfe-flexible-modal-edition="1"] > .acf-input > .acf-flexible-content > .values > .layout > .acf-fc-layout-controls > a.-collapse{
5
- display:none;
6
- }
 
 
 
 
 
 
assets/acf-extended-fc-modal-edit.js DELETED
@@ -1,72 +0,0 @@
1
- (function($){
2
-
3
- if(typeof acf === 'undefined')
4
- return;
5
-
6
- /*
7
- * Init
8
- */
9
- var flexible = acf.getFieldType('flexible_content');
10
- var model = flexible.prototype;
11
-
12
- /*
13
- * Actions
14
- */
15
- model.events['click [data-action="acfe-flexible-modal-edit"]'] = 'acfeModalEdit';
16
- model.acfeModalEdit = function(e, $el){
17
-
18
- var flexible = this;
19
-
20
- // Layout
21
- var $layout = $el.closest('.layout');
22
-
23
- // Modal data
24
- var $modal = $layout.find('> .acfe-modal.-fields');
25
- var $handle = $layout.find('> .acf-fc-layout-handle');
26
-
27
- var $layout_order = $handle.find('> .acf-fc-layout-order').outerHTML();
28
- var $layout_title = $handle.find('.acfe-layout-title-text').text();
29
-
30
- var close = false;
31
- if(flexible.has('acfeFlexibleCloseButton')){
32
-
33
- close = acf.__('Close');
34
-
35
- }
36
-
37
- // Open modal
38
- acfe.modal.open($modal, {
39
- title: $layout_order + ' ' + $layout_title,
40
- footer: close,
41
- onOpen: function(){
42
-
43
- flexible.openLayout($layout);
44
-
45
- },
46
- onClose: function(){
47
-
48
- flexible.closeLayout($layout);
49
-
50
- }
51
- });
52
-
53
- };
54
-
55
- /*
56
- * Spawn
57
- */
58
- acf.addAction('new_field/type=flexible_content', function(flexible){
59
-
60
- if(flexible.has('acfeFlexibleModalEdition') && (flexible.has('acfeFlexiblePlaceholder') || flexible.has('acfeFlexiblePreview'))){
61
-
62
- // Remove Collapse Action
63
- flexible.removeEvents({'click [data-name="collapse-layout"]': 'onClickCollapse'});
64
-
65
- // Remove placeholder Collapse Action
66
- flexible.removeEvents({'click .acfe-fc-placeholder': 'onClickCollapse'});
67
-
68
- }
69
-
70
- });
71
-
72
- })(jQuery);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/acf-extended-fc-modal-select.css DELETED
File without changes
assets/acf-extended-fc-modal-select.js DELETED
@@ -1,259 +0,0 @@
1
- (function($){
2
-
3
- if(typeof acf === 'undefined')
4
- return;
5
-
6
- /*
7
- * Init
8
- */
9
- var flexible = acf.getFieldType('flexible_content');
10
- var model = flexible.prototype;
11
-
12
- /*
13
- * Actions
14
- */
15
- model.acfeModalSelect = function(e, $el){
16
-
17
- // Get Flexible
18
- var flexible = this;
19
-
20
- // Validate
21
- if(!flexible.validateAdd())
22
- return false;
23
-
24
- // Layout
25
- var $layout_source = null;
26
-
27
- if($el.hasClass('acf-icon'))
28
- $layout_source = $el.closest('.layout');
29
-
30
- // Get Available Layouts
31
- var layouts = flexible.getPopupHTML();
32
-
33
- // Init Categories
34
- var categories = {
35
- array: [],
36
- html: ''
37
- };
38
-
39
- function SearchArray(element, array){
40
-
41
- var len = array.length,
42
- str = element.toString().toLowerCase();
43
-
44
- for(var i = 0; i < len; i++){
45
- if(array[i].toLowerCase() === str){
46
- return i;
47
- }
48
- }
49
-
50
- return -1;
51
-
52
- }
53
-
54
- // Get Categories
55
- $(layouts).find('li a span').each(function(){
56
-
57
- var $link = $(this);
58
-
59
- if(!$link.data('acfe-flexible-category'))
60
- return true;
61
-
62
- var category = $link.data('acfe-flexible-category');
63
-
64
- $.each(category, function(i, c){
65
-
66
- if(SearchArray(c, categories.array) !== -1)
67
- return true;
68
-
69
- categories.array.push(c);
70
-
71
- });
72
-
73
- });
74
-
75
- // Categories HTML
76
- if(categories.array.length){
77
-
78
- categories.array.sort();
79
-
80
- categories.html += '<h2 class="acfe-flexible-categories nav-tab-wrapper">';
81
-
82
- categories.html += '<a href="#" data-acfe-flexible-category="acfe-all" class="nav-tab nav-tab-active"><span class="dashicons dashicons-menu"></span></a>';
83
-
84
- $(categories.array).each(function(k, category){
85
-
86
- categories.html += '<a href="#" data-acfe-flexible-category="' + category + '" class="nav-tab">' + category + '</a>';
87
-
88
- });
89
-
90
- categories.html += '</h2>';
91
-
92
- }
93
-
94
- // Modal Title
95
- var $modal_title = 'Add Row';
96
-
97
- if(flexible.has('acfeFlexibleModalTitle'))
98
- $modal_title = flexible.get('acfeFlexibleModalTitle');
99
-
100
- // Create Modal
101
- var $modal = $('' +
102
- '<div class="acfe-modal">' +
103
-
104
- categories.html +
105
- '<div class="acfe-flex-container">' +
106
- layouts +
107
- '</div>' +
108
-
109
- '</div>'
110
-
111
- ).appendTo('body');
112
-
113
- // Open Modal
114
- var $modal = acfe.modal.open($modal, {
115
- title: $modal_title,
116
- size: 'full',
117
- destroy: true
118
- });
119
-
120
- // Modal: Columns
121
- if(flexible.has('acfeFlexibleModalCol'))
122
- $modal.find('.acfe-modal-content .acfe-flex-container').addClass('acfe-col-' + flexible.get('acfeFlexibleModalCol'));
123
-
124
- // Modal: ACF autofocus fix
125
- $modal.find('li:first-of-type a').blur();
126
-
127
- // count layouts
128
- var $layouts = flexible.$layouts();
129
- var countLayouts = function(name){
130
-
131
- return $layouts.filter(function(){
132
- return $(this).data('layout') === name;
133
- }).length;
134
-
135
- };
136
-
137
- $modal.find('a[data-layout]').each(function(){
138
-
139
- // vars
140
- var $a = $(this);
141
- var min = $a.data('min') || 0;
142
- var max = $a.data('max') || 0;
143
- var name = $a.data('layout') || '';
144
- var count = countLayouts( name );
145
-
146
- // max
147
- if(max && count >= max){
148
- $a.addClass('disabled');
149
- return;
150
- }
151
-
152
- // min
153
- if(min && count < min){
154
-
155
- // vars
156
- var required = min - count;
157
- var title = acf.__('{required} {label} {identifier} required (min {min})');
158
- var identifier = acf._n('layout', 'layouts', required);
159
-
160
- // translate
161
- title = title.replace('{required}', required);
162
- title = title.replace('{label}', name); // 5.5.0
163
- title = title.replace('{identifier}', identifier);
164
- title = title.replace('{min}', min);
165
-
166
- // badge
167
- $a.append('<span class="badge" title="' + title + '">' + required + '</span>');
168
-
169
- }
170
-
171
- });
172
-
173
- // Modal: Click Categories
174
- $modal.find('.acfe-flexible-categories a').click(function(e){
175
-
176
- e.preventDefault();
177
-
178
- var $link = $(this);
179
-
180
- $link.closest('.acfe-flexible-categories').find('a').removeClass('nav-tab-active');
181
- $link.addClass('nav-tab-active');
182
-
183
- var selected_category = $link.data('acfe-flexible-category');
184
-
185
- $modal.find('a[data-layout] span').each(function(){
186
-
187
- // Get span
188
- var $span = $(this);
189
-
190
- // Show All
191
- $span.closest('li').show();
192
-
193
- var category = $span.data('acfe-flexible-category');
194
-
195
- // Specific category
196
- if(selected_category !== 'acfe-all'){
197
-
198
- // Hide All
199
- $span.closest('li').hide();
200
-
201
- $.each(category, function(i, c){
202
-
203
- if(selected_category.toLowerCase() === c.toLowerCase()){
204
-
205
- $span.closest('li').show();
206
-
207
- return false;
208
-
209
- }
210
-
211
- });
212
-
213
- }
214
-
215
- });
216
-
217
- });
218
-
219
- // Modal: Click Add Layout
220
- $modal.on('click', 'a[data-layout]', function(e){
221
-
222
- e.preventDefault();
223
-
224
- // Close modal
225
- acfe.modal.close(true);
226
-
227
- // Add layout
228
- var $layout_added = flexible.add({
229
- layout: $(this).data('layout'),
230
- before: $layout_source
231
- });
232
-
233
- });
234
-
235
- }
236
-
237
- /*
238
- * Spawn
239
- */
240
- acf.addAction('new_field/type=flexible_content', function(flexible){
241
-
242
- if(!flexible.has('acfeFlexibleModal'))
243
- return;
244
-
245
- // Vars
246
- var $clones = flexible.$clones();
247
-
248
- if($clones.length <= 1)
249
- return;
250
-
251
- // Remove native ACF Tooltip action
252
- flexible.removeEvents({'click [data-name="add-layout"]': 'onClickAdd'});
253
-
254
- // Add ACF Extended Modal action
255
- flexible.addEvents({'click [data-name="add-layout"]': 'acfeModalSelect'});
256
-
257
- });
258
-
259
- })(jQuery);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/acf-extended-fc.css DELETED
@@ -1,338 +0,0 @@
1
- /*
2
- * Flexible: Sortable
3
- */
4
- .acf-flexible-content > .values > .ui-sortable-placeholder{
5
- /*height:147px;*/
6
- border-width:2px;
7
- border-color:#ccc;
8
- }
9
-
10
- /*
11
- * Flexible: Layout Handle
12
- */
13
- .acf-flexible-content .layout .acf-fc-layout-handle {
14
- color: #444;
15
- font-weight: 600;
16
- }
17
-
18
- /*
19
- * Flexible: Field Error
20
- */
21
- .layout.acfe-flexible-modal-edit-error > .acf-fc-layout-handle{
22
- color:#f33b28;
23
- }
24
-
25
- .layout.acfe-flexible-modal-edit-error > .acf-fc-layout-handle > .acf-fc-layout-order{
26
- background:#f33b28;
27
- color:#fff;
28
- }
29
-
30
- /*
31
- * Flexible: Layout Collapsed
32
- */
33
-
34
- .acf-field-flexible-content[data-acfe-flexible-modal-edition="1"]:not([data-acfe-flexible-placeholder="1"]):not([data-acfe-flexible-preview="1"]) > .acf-input > .acf-flexible-content > .values > .layout > .acf-fc-layout-handle{
35
- border-bottom-width:0;
36
- }
37
-
38
-
39
- .acf-field-flexible-content[data-acfe-flexible-placeholder="1"] > .acf-input > .acf-flexible-content > .values > .layout.-collapsed > .acf-fc-layout-handle,
40
- .acf-field-flexible-content[data-acfe-flexible-preview="1"] > .acf-input > .acf-flexible-content > .values > .layout.-collapsed > .acf-fc-layout-handle{
41
- border-bottom-width:1px;
42
- }
43
-
44
- .acf-field-flexible-content[data-acfe-flexible-lock="1"] > .acf-input > .acf-flexible-content > .values > .layout > .acf-fc-layout-handle{
45
- cursor:initial;
46
- }
47
-
48
- .acf-field-flexible-content[data-acfe-flexible-remove-collapse="1"]:not([data-acfe-flexible-lock="1"]) > .acf-input > .acf-flexible-content > .values > .layout > .acf-fc-layout-handle{
49
- cursor:initial;
50
- }
51
-
52
- /*
53
- * Flexible: Popup Grey
54
- */
55
- .acf-fc-popup.top.acfe-fc-popup-grey:before{
56
- border-top-color: #e1e1e1;
57
- }
58
- .acf-tooltip.bottom.acfe-fc-popup-grey:before{
59
- border-bottom-color: #e1e1e1;
60
- }
61
- .acf-fc-popup.acfe-fc-popup-grey{
62
- background: #fcfcfc;
63
- border-radius: 3px;
64
- color: #444;
65
- border: 1px solid #e1e1e1;
66
- font-size: 13px;
67
- }
68
- .acf-tooltip.top.acfe-fc-popup-grey{
69
- margin-top: -16px;
70
- }
71
- .acf-tooltip.bottom.acfe-fc-popup-grey{
72
- margin-bottom: -16px;
73
- }
74
-
75
- .acf-fc-popup.acfe-fc-popup-grey a{
76
- color: #444;
77
- }
78
-
79
- .acf-fc-popup.acfe-fc-popup-grey a:hover{
80
- color: #fff;
81
- }
82
-
83
- /*
84
- * Flexible Layout: Placeholder
85
- */
86
- .layout > .acfe-fc-placeholder{
87
- text-align:center;
88
- background:#f9f9f9;
89
- display:block;
90
- text-decoration:none;
91
- position:relative;
92
- cursor:pointer;
93
- }
94
-
95
- .layout > .acfe-fc-placeholder:focus{
96
- border-color: #ccc;
97
- box-shadow: none;
98
- }
99
-
100
- .layout > .acfe-fc-placeholder > .acfe-flexible-placeholder{
101
- height:110px;
102
- overflow:hidden;
103
- text-align:initial;
104
- }
105
-
106
- .layout > .acfe-fc-placeholder > a{
107
- z-index:2;
108
- position:absolute;
109
- top:50%;
110
- left:50%;
111
- transform:translate(-50%, -50%);
112
- border-color: #ccd0d4;
113
- color: #23282d;
114
- border-radius:100px;
115
- box-shadow:none;
116
- background:#fff;
117
- width: 30px;
118
- min-height: 30px;
119
- height: 30px;
120
- padding:0;
121
- display:block;
122
- }
123
-
124
- body:not(.acf-admin-5-3) .layout > .acfe-fc-placeholder > a{
125
- border-color: #999;
126
- }
127
-
128
- .acfe-modal.-open.acfe-modal-sub > .acfe-modal-wrapper > .acfe-modal-content > .acf-fields > .acf-field-flexible-content > .acf-input > .acf-flexible-content > .values > .layout > .acfe-fc-placeholder > a{
129
- z-index:0;
130
- }
131
-
132
- .layout > .acfe-fc-placeholder > a:active{
133
- transform:translate(-50%, -50%);
134
- }
135
-
136
- .layout > .acfe-fc-placeholder > a:focus{
137
- border-color: #cccccc;
138
- box-shadow: none;
139
- }
140
-
141
- .layout > .acfe-fc-placeholder > a span{
142
- width: 29px;
143
- height: 30px;
144
- vertical-align:top;
145
- line-height: 28px;
146
- font-size:18px;
147
- }
148
-
149
- body:not(.acf-admin-5-3) .layout > .acfe-fc-placeholder > a span{
150
- width: 30px;
151
- height: 30px;
152
- }
153
-
154
- .layout > .acfe-fc-placeholder.acfe-fc-preview{
155
- background:none;
156
- }
157
-
158
- .layout > .acfe-fc-placeholder.acfe-fc-preview > .acfe-flexible-placeholder{
159
- min-height:55px;
160
- height:auto;
161
- }
162
-
163
- .layout > .acfe-fc-placeholder.acfe-fc-preview > a{
164
- display:none;
165
- }
166
-
167
- .layout > .acfe-fc-placeholder.acfe-fc-preview:hover > a{
168
- display:block;
169
- }
170
-
171
- .layout > .acfe-fc-placeholder.acfe-fc-preview.-loading{
172
- background:#f9f9f9;
173
- min-height:110px;
174
- }
175
-
176
- .layout > .acfe-fc-placeholder.acfe-fc-preview.-loading > .acfe-flexible-placeholder > .spinner{
177
- visibility:visible;
178
- float:none;
179
- position:absolute;
180
- top:50%;
181
- left:50%;
182
- transform:translate(-50%, -50%);
183
- margin:0;
184
- z-index:10000;
185
- }
186
-
187
- .layout > .acfe-fc-placeholder .acfe-fc-overlay{
188
- position:absolute;
189
- width:100%;
190
- height:100%;
191
- padding:0;
192
- background-color:rgba(255,255,255,0);
193
- -webkit-transition: background-color 200ms linear;
194
- -ms-transition: background-color 200ms linear;
195
- transition: background-color 200ms linear;
196
- }
197
-
198
- .layout > .acfe-fc-placeholder:hover .acfe-fc-overlay,
199
- .layout > .acfe-fc-placeholder .acfe-fc-overlay.-hover{
200
- background-color:rgba(255,255,255,0.7);
201
- z-index:1;
202
- }
203
-
204
- .layout > .acfe-fc-placeholder.acfe-fc-preview.-loading > a span{
205
- visibility:hidden;
206
- }
207
-
208
- /*
209
- * Flexible Layout Collapsed
210
- */
211
- .layout > .acf-fields > .acfe-flexible-opened-actions,
212
- .layout > .acf-table > .acfe-flexible-opened-actions{
213
- background:#f9f9f9;
214
- border-top:1px solid #e1e1e1;
215
- padding:12px;
216
- text-align:right;
217
- clear:both;
218
- }
219
-
220
- /*
221
- * Flexible Thumbnails
222
- *
223
- */
224
- .acfe-flexible-layout-thumbnail{
225
- display:block;
226
- width:100%;
227
- height: 9.8vw; /* 200px / 1080p */
228
- background-color:#eee;
229
- background-size:cover;
230
- background-repeat:no-repeat;
231
- background-position:center;
232
- position:relative;
233
- margin-bottom:15px;
234
- }
235
-
236
- .acfe-flexible-layout-thumbnail.acfe-flexible-layout-thumbnail-not-found:after{
237
- content: "\f180";
238
- font-family: dashicons;
239
- display: inline-block;
240
- line-height: 1;
241
- font-weight: 400;
242
- font-style: normal;
243
- speak: none;
244
- text-decoration: inherit;
245
- text-transform: none;
246
- text-rendering: auto;
247
- -webkit-font-smoothing: antialiased;
248
- -moz-osx-font-smoothing: grayscale;
249
- vertical-align: top;
250
- text-align: center;
251
- position:absolute;
252
- top:50%;
253
- left:50%;
254
- transform: translate(-50%, -50%);
255
- color:#ccc;
256
- font-size: 110px;
257
- }
258
-
259
- .acfe-col-2 .acfe-flexible-layout-thumbnail{
260
- height:20.5vw;
261
- }
262
-
263
- .acfe-col-3 .acfe-flexible-layout-thumbnail{
264
- height:13.3vw;
265
- }
266
-
267
- .acfe-col-5 .acfe-flexible-layout-thumbnail{
268
- height:7.65vw;
269
- }
270
-
271
- .acfe-col-6 .acfe-flexible-layout-thumbnail{
272
- height:6.2vw;
273
- }
274
-
275
- @media only screen and (max-width:960px){
276
- .acfe-flexible-layout-thumbnail,
277
- .acfe-flex-container .acfe-flexible-layout-thumbnail{
278
- height: 18.4vw; /* 200px */
279
- }
280
- }
281
-
282
- @media only screen and (max-width:720px){
283
- .acfe-flexible-layout-thumbnail,
284
- .acfe-flex-container .acfe-flexible-layout-thumbnail{
285
- height: 37.2vw; /* 200px */
286
- }
287
- }
288
-
289
- /*
290
- * Flexible Thumbnails (no modal)
291
- *
292
- */
293
- .acfe-flexible-layout-thumbnail.acfe-flexible-layout-thumbnail-no-modal{
294
- display:block;
295
- width: 230px;
296
- height: 103px;
297
- background-color:#1f2329;
298
- }
299
-
300
- .acfe-flexible-layout-thumbnail.acfe-flexible-layout-thumbnail-no-modal.acfe-flexible-layout-thumbnail-not-found:after{
301
- color:#2F353E;
302
- }
303
-
304
- /*
305
- * Flexible Stylised Button
306
- *
307
- */
308
- .acf-field.acf-field-flexible-content[data-acfe-flexible-stylised-button="1"] > .acf-input > .acf-flexible-content:not(.empty) > .values{
309
- margin-bottom:15px;
310
- }
311
-
312
- .acf-field.acf-field-flexible-content > .acf-input > .acf-flexible-content > .acfe-flexible-stylised-button{
313
- padding: 40px 20px;
314
- border: #ccc dashed 2px;
315
- text-align: center;
316
- }
317
-
318
- .acf-field.acf-field-flexible-content > .acf-input > .acf-flexible-content > .acfe-flexible-stylised-button > .acf-actions{
319
- text-align: center;
320
- }
321
-
322
- .acf-field.acf-field-flexible-content > .acf-input > .acf-flexible-content .acf-actions .acf-button .dashicons{
323
- width: auto;
324
- height: auto;
325
- vertical-align: text-top;
326
- }
327
-
328
- /*
329
- * Flexible Hide Empty Message
330
- *
331
- */
332
- .acf-field.acf-field-flexible-content[data-acfe-flexible-hide-empty-message="1"] > .acf-input > .acf-flexible-content > .no-value-message{
333
- display:none;
334
- }
335
-
336
- .acf-field.acf-field-flexible-content[data-acfe-flexible-hide-empty-message="1"] > .acf-input > .acf-flexible-content.-empty > .values{
337
- margin-bottom:0;
338
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/acf-extended-fc.js DELETED
@@ -1,451 +0,0 @@
1
- (function($){
2
-
3
- if(typeof acf === 'undefined')
4
- return;
5
-
6
- /*
7
- * Init
8
- */
9
- var flexible = acf.getFieldType('flexible_content');
10
- var model = flexible.prototype;
11
-
12
- /*
13
- * Drag & Drop
14
- */
15
- model.addSortable = function( self ){
16
-
17
- // bail early if max 1 row
18
- if( this.get('max') == 1 ) {
19
- return;
20
- }
21
-
22
- // add sortable
23
- this.$layoutsWrap().sortable({
24
- items: ' > .layout',
25
- handle: '> .acf-fc-layout-handle',
26
- forceHelperSize: false, // Changed to false
27
- forcePlaceholderSize: true,
28
- tolerance: "pointer", // Changed to pointer
29
- scroll: true,
30
- stop: function(event, ui) {
31
- self.render();
32
- },
33
- update: function(event, ui) {
34
- self.$input().trigger('change');
35
- }
36
- });
37
-
38
- };
39
-
40
- /*
41
- * Actions
42
- */
43
- model.acfeOneClick = function(e, $el){
44
-
45
- // Get Flexible
46
- var flexible = this;
47
-
48
- // Vars
49
- var $clones = flexible.$clones();
50
- var $layout_name = $($clones[0]).data('layout');
51
-
52
- // Source
53
- var $layout_source = null;
54
- if($el.hasClass('acf-icon'))
55
- $layout_source = $el.closest('.layout');
56
-
57
- // Add
58
- var $layout_added = flexible.add({
59
- layout: $layout_name,
60
- before: $layout_source
61
- });
62
-
63
- // Hide native tooltip
64
- if($('.acf-fc-popup').length)
65
- $('.acf-fc-popup').hide();
66
-
67
- };
68
-
69
- model.acfeLayoutInit = function($layout){
70
-
71
- // Get Flexible
72
- var flexible = this;
73
-
74
- // Vars
75
- var $controls = $layout.find('> .acf-fc-layout-controls');
76
- var $handle = $layout.find('> .acf-fc-layout-handle');
77
-
78
- // Placeholder
79
- var $placeholder = $layout.find('> .acfe-fc-placeholder');
80
-
81
- // Placeholder: Show
82
- $placeholder.removeClass('acf-hidden');
83
-
84
- // If no modal edition & opened: Hide Placeholder
85
- if(!flexible.has('acfeFlexibleModalEdition') && !flexible.isLayoutClosed($layout)){
86
-
87
- $placeholder.addClass('acf-hidden');
88
-
89
- }
90
-
91
- // Flexible has Preview
92
- if(flexible.isLayoutClosed($layout) && flexible.has('acfeFlexiblePreview') && !$placeholder.hasClass('-loading')){
93
-
94
- $placeholder.addClass('acfe-fc-preview -loading').find('> .acfe-flexible-placeholder').prepend('<span class="spinner"></span>');
95
- $placeholder.find('> .acfe-fc-overlay').addClass('-hover');
96
-
97
- // vars
98
- var $input = $layout.children('input');
99
- var prefix = $input.attr('name').replace('[acf_fc_layout]', '');
100
-
101
- // ajax data
102
- var ajaxData = {
103
- action: 'acfe/flexible/layout_preview',
104
- field_key: flexible.get('key'),
105
- i: $layout.index(),
106
- layout: $layout.data('layout'),
107
- value: acf.serialize($layout, prefix)
108
- };
109
-
110
- acf.doAction('acfe/fields/flexible_content/before_preview', flexible.$el, $layout, ajaxData);
111
- acf.doAction('acfe/fields/flexible_content/before_preview/name=' + flexible.get('name'), flexible.$el, $layout, ajaxData);
112
- acf.doAction('acfe/fields/flexible_content/before_preview/key=' + flexible.get('key'), flexible.$el, $layout, ajaxData);
113
- acf.doAction('acfe/fields/flexible_content/before_preview/name=' + flexible.get('name') + '&layout=' + $layout.data('layout'), flexible.$el, $layout, ajaxData);
114
- acf.doAction('acfe/fields/flexible_content/before_preview/key=' + flexible.get('key') + '&layout=' + $layout.data('layout'), flexible.$el, $layout, ajaxData);
115
-
116
- // ajax
117
- $.ajax({
118
- url: acf.get('ajaxurl'),
119
- data: acf.prepareForAjax(ajaxData),
120
- dataType: 'html',
121
- type: 'post',
122
- success: function(response){
123
-
124
- if(response){
125
-
126
- $placeholder.find('> .acfe-flexible-placeholder').html(response);
127
-
128
- }else{
129
-
130
- $placeholder.removeClass('acfe-fc-preview');
131
-
132
- }
133
-
134
- acf.doAction('acfe/fields/flexible_content/preview', response, flexible.$el, $layout, ajaxData);
135
- acf.doAction('acfe/fields/flexible_content/preview/name=' + flexible.get('name'), response, flexible.$el, $layout, ajaxData);
136
- acf.doAction('acfe/fields/flexible_content/preview/key=' + flexible.get('key'), response, flexible.$el, $layout, ajaxData);
137
- acf.doAction('acfe/fields/flexible_content/preview/name=' + flexible.get('name') + '&layout=' + $layout.data('layout'), response, flexible.$el, $layout, ajaxData);
138
- acf.doAction('acfe/fields/flexible_content/preview/key=' + flexible.get('key') + '&layout=' + $layout.data('layout'), response, flexible.$el, $layout, ajaxData);
139
-
140
- },
141
- complete: function(){
142
-
143
- $placeholder.find('> .acfe-fc-overlay').removeClass('-hover');
144
- $placeholder.removeClass('-loading').find('> .acfe-flexible-placeholder > .spinner').remove();
145
-
146
- }
147
- });
148
-
149
- }
150
-
151
- };
152
-
153
- /*
154
- * WYSIWYG
155
- */
156
- var wysiwyg = acf.getFieldType('wysiwyg').prototype;
157
- wysiwyg.initialize = function(){
158
-
159
- // initializeEditor if no delay
160
- if( !this.has('id') && !this.$control().hasClass('delay') ) {
161
- this.initializeEditor();
162
- }
163
-
164
- };
165
-
166
- var acfeFlexibleDelayInit = function(editor){
167
-
168
- if(editor.has('id') || !editor.$el.is(':visible') || acfe.isFilterEnabled('acfeForceOpen'))
169
- return;
170
-
171
- var $wrap = editor.$control();
172
-
173
- if($wrap.hasClass('delay')){
174
-
175
- $wrap.removeClass('delay');
176
- $wrap.find('.acf-editor-toolbar').remove();
177
-
178
- // initialize
179
- editor.initializeEditor();
180
-
181
- }
182
-
183
- };
184
-
185
- acf.addAction('show_field/type=wysiwyg', acfeFlexibleDelayInit);
186
- acf.addAction('ready_field/type=wysiwyg', acfeFlexibleDelayInit);
187
-
188
- /*
189
- * Spawn
190
- */
191
- acf.addAction('new_field/type=flexible_content', function(flexible){
192
-
193
- // Vars
194
- var $clones = flexible.$clones();
195
- var $layouts = flexible.$layouts();
196
-
197
- // Merge
198
- var $all_layouts = $.merge($layouts, $clones);
199
-
200
- // Do Actions
201
- $layouts.each(function(){
202
-
203
- var $layout = $(this);
204
- var $name = $layout.data('layout');
205
-
206
- acf.doAction('acfe/flexible/layouts', $layout, flexible);
207
- acf.doAction('acfe/flexible/layout/name=' + $name, $layout, flexible);
208
-
209
- });
210
-
211
- // ACFE: 1 layout available - OneClick
212
- if($clones.length === 1){
213
-
214
- // Remove native ACF Tooltip action
215
- flexible.removeEvents({'click [data-name="add-layout"]': 'onClickAdd'});
216
-
217
- // Add ACF Extended Modal action
218
- flexible.addEvents({'click [data-name="add-layout"]': 'acfeOneClick'});
219
-
220
- }
221
-
222
- flexible.addEvents({'click .acfe-fc-placeholder': 'onClickCollapse'});
223
-
224
- flexible.addEvents({'click .acfe-flexible-opened-actions > a': 'onClickCollapse'});
225
-
226
- // Flexible: Ajax
227
- if(flexible.has('acfeFlexibleAjax')){
228
-
229
- flexible.add = function(args){
230
-
231
- // Get Flexible
232
- var flexible = this;
233
-
234
- // defaults
235
- args = acf.parseArgs(args, {
236
- layout: '',
237
- before: false
238
- });
239
-
240
- // validate
241
- if( !this.allowAdd() ) {
242
- return false;
243
- }
244
-
245
- // ajax
246
- $.ajax({
247
- url: acf.get('ajaxurl'),
248
- data: acf.prepareForAjax({
249
- action: 'acfe/flexible/models',
250
- field_key: this.get('key'),
251
- layout: args.layout,
252
- }),
253
- dataType: 'html',
254
- type: 'post',
255
- beforeSend: function(){
256
- $('body').addClass('-loading');
257
- },
258
- success: function(html){
259
- if(html){
260
-
261
- var $layout = $(html);
262
- var uniqid = acf.uniqid();
263
-
264
- var search = 'acf[' + flexible.get('key') + '][acfcloneindex]';
265
- var replace = flexible.$control().find('> input[type=hidden]').attr('name') + '[' + uniqid + ']';
266
-
267
- // add row
268
- var $el = acf.duplicate({
269
- target: $layout,
270
- search: search,
271
- replace: replace,
272
- append: flexible.proxy(function( $el, $el2 ){
273
-
274
- // append
275
- if( args.before ) {
276
- args.before.before( $el2 );
277
- } else {
278
- flexible.$layoutsWrap().append( $el2 );
279
- }
280
-
281
- // enable
282
- acf.enable( $el2, flexible.cid );
283
-
284
- // render
285
- flexible.render();
286
- })
287
- });
288
-
289
- // Fix data-id
290
- $el.attr('data-id', uniqid);
291
-
292
- // trigger change for validation errors
293
- flexible.$input().trigger('change');
294
-
295
- // return
296
- return $el;
297
-
298
- }
299
- },
300
- 'complete': function(){
301
- $('body').removeClass('-loading');
302
- }
303
- });
304
-
305
- };
306
-
307
- }
308
-
309
- });
310
-
311
- acf.addAction('acfe/flexible/layouts', function($layout, flexible){
312
-
313
- // Layout Closed
314
- if(flexible.isLayoutClosed($layout)){
315
-
316
- // Placeholder
317
- $layout.find('> .acfe-fc-placeholder').removeClass('acf-hidden');
318
-
319
- if(flexible.has('acfeFlexibleOpen')){
320
-
321
- acfe.enableFilter('acfeForceOpen');
322
-
323
- flexible.openLayout($layout);
324
-
325
- acfe.disableFilter('acfeForceOpen');
326
-
327
- }
328
-
329
- }
330
-
331
- });
332
-
333
- acf.addAction('show', function($layout, type){
334
-
335
- if(type !== 'collapse' || !$layout.is('.layout'))
336
- return;
337
-
338
- var flexible = acf.getInstance($layout.closest('.acf-field-flexible-content'));
339
-
340
- // Hide Placeholder
341
- if(!flexible.has('acfeFlexibleModalEdition')){
342
-
343
- // Placeholder
344
- $layout.find('> .acfe-fc-placeholder').addClass('acf-hidden');
345
-
346
- }
347
-
348
- });
349
-
350
- acf.addAction('hide', function($layout, type){
351
-
352
- if(type !== 'collapse' || !$layout.is('.layout') || $layout.is('.acf-clone'))
353
- return;
354
-
355
- // Get Flexible
356
- var flexible = acf.getInstance($layout.closest('.acf-field-flexible-content'));
357
-
358
- // Remove Ajax Title
359
- if(flexible.has('acfeFlexibleRemoveAjaxTitle')){
360
-
361
- flexible.renderLayout = function($layout){};
362
-
363
- }
364
-
365
- // Preview Ajax
366
- flexible.acfeLayoutInit($layout);
367
-
368
- });
369
-
370
- acf.addAction('append', function($el){
371
-
372
- // Bail early if layout is not layout
373
- if(!$el.is('.layout'))
374
- return;
375
-
376
- // Get Flexible
377
- var flexible = acf.getInstance($el.closest('.acf-field-flexible-content'));
378
-
379
- // Open Layout
380
- if(!$el.is('.acfe-layout-duplicated')){
381
-
382
- // Modal Edition: Open
383
- if(flexible.has('acfeFlexibleModalEdition')){
384
-
385
- $el.find('> [data-action="acfe-flexible-modal-edit"]:first').trigger('click');
386
-
387
- }
388
-
389
- // Normal Edition: Open
390
- else{
391
-
392
- flexible.openLayout($el);
393
-
394
- }
395
-
396
- }
397
-
398
- flexible.acfeLayoutInit($el);
399
-
400
- var $modal = flexible.$el.closest('.acfe-modal.-open');
401
-
402
- if($modal.length){
403
-
404
- // Scroll to new layout
405
- $modal.find('> .acfe-modal-wrapper > .acfe-modal-content').animate({
406
- scrollTop: parseInt($el.offset().top) - 200
407
- }, 200);
408
-
409
- }else{
410
-
411
- var acfVersion = parseFloat(acf.get('acf_version'));
412
-
413
- if(acfVersion < 5.9){
414
-
415
- // Scroll to new layout
416
- $('html, body').animate({
417
- scrollTop: parseInt($el.offset().top) - 200
418
- }, 200);
419
-
420
- }
421
-
422
- }
423
-
424
- });
425
-
426
- /*
427
- * Field Error
428
- */
429
- acf.addAction('invalid_field', function(field){
430
-
431
- field.$el.parents('.layout').addClass('acfe-flexible-modal-edit-error');
432
-
433
- });
434
-
435
- /*
436
- * Field Valid
437
- */
438
- acf.addAction('valid_field', function(field){
439
-
440
- field.$el.parents('.layout').each(function(){
441
-
442
- var $layout = $(this);
443
-
444
- if(!$layout.find('.acf-error').length)
445
- $layout.removeClass('acfe-flexible-modal-edit-error');
446
-
447
- });
448
-
449
- });
450
-
451
- })(jQuery);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/acf-extended-fg.css DELETED
@@ -1,331 +0,0 @@
1
- .acf-field-setting-acfe_permissions > .acf-input > .acf-fields,
2
- .acf-field-setting-acfe_settings > .acf-input > .acf-fields,
3
- .acf-field-setting-acfe_validate > .acf-input > .acf-fields,
4
- .acf-field-setting-acfe_update > .acf-input > .acf-fields,
5
- .acf-field-setting-acfe_hide > .acf-input > .acf-fields,
6
-
7
- .acf-field-setting-acfe_bidirectional > .acf-input > .acf-fields,
8
- .acf-field-setting-acfe_settings > .acf-input > .acf-fields > .acf-field.acf-field-acfe-settings-rules-or,
9
- .acf-field-setting-acfe_validate > .acf-input > .acf-fields > .acf-field.acf-field-acfe-validate-rules-or,
10
- .acf-field-setting-acfe_update > .acf-input > .acf-fields > .acf-field.acf-field-acfe-update-functions{
11
- border:0;
12
- }
13
-
14
- .acf-field-setting-acfe_bidirectional > .acf-input > .acf-fields > .acf-field,
15
- .acf-field-setting-acfe_permissions > .acf-input > .acf-fields > .acf-field,
16
- .acf-field-setting-acfe_settings > .acf-input > .acf-fields > .acf-field,
17
- .acf-field-setting-acfe_validate > .acf-input > .acf-fields > .acf-field,
18
- .acf-field-setting-acfe_update > .acf-input > .acf-fields > .acf-field,
19
- .acf-field-setting-acfe_hide > .acf-input > .acf-fields > .acf-field{
20
- padding:0;
21
- }
22
-
23
- .acf-field-setting-acfe_field_data{
24
- display:none;
25
- }
26
-
27
- .acf-field-hide-front.acfe_width_auto{
28
- margin-right:30px;
29
- }
30
-
31
- .acf-field-setting-acfe_bidirectional > .acf-input > .acf-fields > .acf-field.acf-field-acfe-bidirectional-enabled > .acf-label,
32
- .acf-field-setting-acfe_bidirectional > .acf-input > .acf-fields > .acf-field.acf-field-acfe-bidirectional-related > .acf-label,
33
- .acf-field-setting-acfe_settings > .acf-input > .acf-fields > .acf-field.acf-field-acfe-settings-activate > .acf-label,
34
- .acf-field-setting-acfe_validate > .acf-input > .acf-fields > .acf-field.acf-field-acfe-validate-activate > .acf-label,
35
- .acf-field-setting-acfe_update > .acf-input > .acf-fields > .acf-field.acf-field-acfe-update-activate > .acf-label{
36
- display:none;
37
- }
38
-
39
- .acf-field-setting-acfe_update > .acf-input .acf-repeater.-empty.-table > table,
40
- .acf-field-setting-acfe_settings > .acf-input .acf-repeater.-empty.-table > table,
41
- .acf-field-setting-acfe_validate > .acf-input .acf-repeater.-empty.-table > table,
42
- .acf-field-acfe-meta > .acf-input .acf-repeater.-empty.-table > table{
43
- border:0;
44
- display:none;
45
- }
46
-
47
- .acf-field-setting-acfe_update > .acf-input .acf-repeater.-empty.-table > table > thead,
48
- .acf-field-setting-acfe_settings > .acf-input .acf-repeater.-empty.-table > table > thead,
49
- .acf-field-setting-acfe_validate > .acf-input .acf-repeater.-empty.-table > table > thead,
50
- .acf-field-acfe-meta > .acf-input .acf-repeater.-empty.-table > table > thead{
51
- display:none;
52
- }
53
-
54
- .acf-field-setting-acfe_update > .acf-input > .acf-repeater .acf-actions,
55
- .acf-field-setting-acfe_settings > .acf-input > .acf-repeater .acf-actions,
56
- .acf-field-setting-acfe_validate > .acf-input > .acf-repeater .acf-actions,
57
- .acf-field-acfe-meta > .acf-input > .acf-repeater .acf-actions{
58
- text-align:left;
59
- }
60
-
61
- .acf-repeater.-row > table,
62
- .acf-repeater.-block > table{
63
- border-collapse: separate;
64
- border-spacing: 0 15px;
65
- background: none;
66
- border: 0;
67
- margin-top: -15px;
68
- margin-bottom: -7px;
69
- }
70
-
71
- .acf-repeater.-row > table > *,
72
- .acf-repeater.-block > table > *{
73
- border-collapse: collapse;
74
- border-spacing: 0;
75
- }
76
-
77
- .acf-repeater.-row > table > tbody > tr > td,
78
- .acf-repeater.-block > table > tbody > tr > td{
79
- border-top: 1px solid #ccd0d4 !important;
80
- border-bottom: 1px solid #ccd0d4 !important;
81
- }
82
-
83
- .acf-repeater.-row > table > tbody > tr > td:first-of-type,
84
- .acf-repeater.-block > table > tbody > tr > td:first-of-type{
85
- border-left: 1px solid #ccd0d4 !important;
86
- }
87
-
88
- .acf-repeater.-row > table > tbody > tr > td:last-of-type,
89
- .acf-repeater.-block > table > tbody > tr > td:last-of-type{
90
- border-right: 1px solid #ccd0d4 !important;
91
- }
92
-
93
- body:not(.acf-admin-5-3) .acf-repeater.-row > table > tbody > tr > td,
94
- body:not(.acf-admin-5-3) .acf-repeater.-block > table > tbody > tr > td{
95
- border-top: 1px solid #E1E1E1;
96
- border-bottom: 1px solid #E1E1E1;
97
- }
98
-
99
- body:not(.acf-admin-5-3) .acf-repeater.-row > table > tbody > tr > td:first-of-type,
100
- body:not(.acf-admin-5-3) .acf-repeater.-block > table > tbody > tr > td:first-of-type{
101
- border-left: 1px solid #E1E1E1;
102
- }
103
-
104
- body:not(.acf-admin-5-3) .acf-repeater.-row > table > tbody > tr > td:last-of-type,
105
- body:not(.acf-admin-5-3) .acf-repeater.-block > table > tbody > tr > td:last-of-type{
106
- border-right: 1px solid #E1E1E1;
107
- }
108
-
109
- .acf-field-setting-acfe_bidirectional > .acf-input > .acf-fields > .acf-field.acf-field-acfe-bidirectional-related{
110
- margin-left:10px;
111
- }
112
-
113
- .acfe_width_auto{
114
- width:auto !important;
115
- }
116
-
117
- .status-acf-disabled .column-title a,
118
- .status-acf-disabled .column-title code {
119
- color: #555 !important;
120
- }
121
-
122
- .status-acf-disabled .column-title strong{
123
- color: #a0a5aa;
124
- }
125
-
126
- .column-acf-field-group-category{
127
- width:125px;
128
- }
129
-
130
- td.acf-field-group-category a{
131
- word-wrap: break-word;
132
- padding: 2px 5px;
133
- margin: 0 1px;
134
- border-radius:2px;
135
- background: rgba(0,0,0,.06);
136
- color:#23282d;
137
- }
138
-
139
- .column-acfe-location{
140
- width:100px;
141
- }
142
-
143
- .column-acf-location,
144
- .column-acf-description{
145
- width:230px;
146
- }
147
-
148
- #acf-field-group-wrap .wp-list-table .column-acf-fg-status{
149
- width:70px;
150
- }
151
-
152
- #acf-field-group-wrap .wp-list-table .column-acf-fg-count,
153
- .post-type-acf-field-group .wp-list-table .column-acf-count{
154
- width:70px;
155
- }
156
-
157
- .post-type-acf-field-group .wp-list-table .column-title .post-state{
158
- color:#a0a5aa;
159
- }
160
-
161
- .column-title .acfe-key{
162
- color:#555;
163
- font-size:12px;
164
- }
165
-
166
- .column-acfe-load{
167
- width:70px;
168
- }
169
-
170
- .column-acfe-source{
171
- width:150px;
172
- }
173
-
174
- .column-acfe-autosync-php,
175
- .column-acfe-autosync-json{
176
- width:90px;
177
- text-align:center !important;
178
- }
179
-
180
- .column-acfe-autosync-php .secondary,
181
- .column-acfe-autosync-json .secondary{
182
- color:#ccc;
183
- }
184
-
185
- .column-acfe-autosync-php .dashicons-warning,
186
- .column-acfe-autosync-json .dashicons-warning{
187
- font-size:15px;
188
- vertical-align:middle;
189
- }
190
-
191
- .acf-field[data-name="acfe_autosync"] .dashicons-warning{
192
- color:#ccc;
193
- font-size:15px;
194
- height: 15px;
195
- vertical-align: text-bottom;
196
- }
197
-
198
- .column-acfe-autosync-php .dashicons-update,
199
- .column-acfe-autosync-json .dashicons-update{
200
- font-size:18px;
201
- }
202
-
203
- .column-acfe-autosync-php .dashicons + .dashicons-warning,
204
- .column-acfe-autosync-json .dashicons + .dashicons-warning{
205
- margin-left:-3px;
206
- }
207
-
208
- .acf-field-image[data-name="acfe_flexible_thumbnail"] > .acf-input > .acf-image-uploader.has-value > .show-if-value.image-wrap{
209
- max-width:85px !important;
210
- }
211
-
212
- /*
213
- * Fix Sync Review Modal column size
214
- */
215
- .acf-diff-content table.diff tbody tr td:nth-child(2){
216
- width: auto;
217
- }
218
-
219
- /*
220
- * ACFE: Flexible Content
221
- *
222
- */
223
-
224
- /* Fix ACF not setting proper border color on Flexible Row Style*/
225
- body.acf-admin-5-3 .acf-field-setting-fc_layout .acf-input-wrap.select{
226
- border-color: #7e8993;
227
- }
228
-
229
- body.acf-admin-5-3 .acf-field-setting-fc_layout .acf-input-wrap.select select{
230
- min-height: 28px;
231
- }
232
-
233
- .acf-field-acfe-flexible-modal > .acf-input > .acf-fields{
234
- border:0;
235
- }
236
-
237
- .acf-field-acfe-flexible-modal > .acf-input > .acf-fields .acf-field-acfe-flexible-modal-enabled{
238
- padding:0;
239
- }
240
-
241
- .acf-field-acfe-flexible-modal > .acf-input > .acf-fields .acf-field-acfe-flexible-modal-enabled .acf-label{
242
- display:none;
243
- }
244
-
245
- .acf-field-acfe-flexible-modal > .acf-input > .acf-fields .acf-field-acfe-flexible-modal-enabled{
246
- margin-right:10px;
247
- }
248
-
249
- .acf-field-acfe-flexible-modal > .acf-input > .acf-fields .acf-field-acfe-flexible-modal-title,
250
- .acf-field-acfe-flexible-modal > .acf-input > .acf-fields .acf-field-acfe-flexible-modal-col,
251
- .acf-field-acfe-flexible-modal > .acf-input > .acf-fields .acf-field-acfe-flexible-modal-categories{
252
- padding-top:0;
253
- padding-bottom:0;
254
- padding-left:0;
255
- border-top:0;
256
- border-left:0 !important;
257
- min-height:55px;
258
- }
259
-
260
- .acf-field-setting-fc_layout > .acf-input > .acf-fc-meta .acf-field[data-name=acfe_flexible_settings_label],
261
- .acf-field-setting-fc_layout > .acf-input > .acf-fc-meta .acf-field[data-name=acfe_flexible_thumbnail],
262
- .acf-field-setting-fc_layout > .acf-input > .acf-fc-meta .acf-field[data-name=acfe_flexible_category],
263
- .acf-field-setting-fc_layout > .acf-input > .acf-fc-meta .acf-field[data-name=acfe_flexible_settings_label],
264
- .acf-field-setting-fc_layout > .acf-input > .acf-fc-meta .acf-field[data-name=acfe_flexible_settings],
265
- .acf-field-setting-fc_layout > .acf-input > .acf-fc-meta .acf-field[data-name=acfe_flexible_settings_size]{
266
- margin:0;
267
- }
268
-
269
- .acf-field-setting-fc_layout > .acf-input > .acf-fc-meta .acf-field[data-name=acfe_flexible_settings],
270
- .acf-field-setting-fc_layout > .acf-input > .acf-fc-meta .acf-field[data-name=acfe_flexible_settings_size]{
271
- margin-right: 10px;
272
- }
273
-
274
- .acf-field-setting-fc_layout > .acf-input > .acf-fc-meta .acf-field[data-name=acfe_flexible_settings_size]{
275
- border-left:0;
276
- }
277
-
278
- .acf-field-setting-fc_layout > .acf-input > .acf-fc-meta .acf-field[data-name=acfe_flexible_settings_label] > .acf-input{
279
- margin:0;
280
- }
281
-
282
- .acf-field-setting-fc_layout > .acf-input > .acf-fc-meta > .acf-fc-meta-label:first-of-type{
283
- margin:0;
284
- }
285
-
286
- .acf-field-setting-fc_layout .select2-container--default .select2-selection--multiple li{
287
- margin-bottom:0;
288
- }
289
-
290
- /*
291
- * ACFE Column
292
- */
293
- .acf-field-object-acfe-column .acf-field-setting-label,
294
- .acf-field-object-acfe-column .acf-field-setting-name,
295
- .acf-field-object-acfe-column .acf-field-setting-instructions,
296
- .acf-field-object-acfe-column .acf-field-setting-required,
297
- .acf-field-object-acfe-column .acf-field-setting-warning,
298
- .acf-field-object-acfe-column .acf-field-setting-wrapper{
299
- display: none;
300
- }
301
-
302
- .acf-field-object + .acf-field-object-acfe-column:before {
303
- display: block;
304
- content: "";
305
- height: 5px;
306
- width: 100%;
307
- background: #f9f9f9;
308
- border-bottom: #f0f0f0 solid 1px;
309
- }
310
-
311
- .acf-field-object-acfe-column .li-field-name{
312
- visibility: hidden;
313
- }
314
-
315
- /*
316
- * ACFE Taxonomy Terms
317
- */
318
- .acf-field-setting-allow_terms > .acf-input > ul > li:first-of-type{
319
- width: calc(100% - 125px);
320
- }
321
-
322
- .acf-field-setting-allow_terms > .acf-input > ul > li:last-of-type{
323
- width: 125px;
324
- }
325
-
326
- /*
327
- * ACFE: Field Group Conditional Logic
328
- */
329
- #acf-field-group-locations .rule-groups > .rule-group > table > tbody > tr > td.value > .acf-field{
330
- margin: 0;
331
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/acf-extended-fields.js DELETED
@@ -1,1435 +0,0 @@
1
- function acfe_recaptcha(){
2
-
3
- (function($){
4
-
5
- if(typeof acf === 'undefined')
6
- return;
7
-
8
- /**
9
- * Field: reCaptcha (render)
10
- */
11
- $.each(acf.getFields({type: 'acfe_recaptcha'}), function(i, field){
12
-
13
- field.render();
14
-
15
- });
16
-
17
- })(jQuery);
18
-
19
- }
20
-
21
- (function($){
22
-
23
- if(typeof acf === 'undefined')
24
- return;
25
-
26
- /**
27
- * Field: reCaptcha
28
- */
29
- var reCaptcha = acf.Field.extend({
30
-
31
- type: 'acfe_recaptcha',
32
-
33
- actions: {
34
- 'validation_failure' : 'validationFailure'
35
- },
36
-
37
- $control: function(){
38
- return this.$('.acfe-field-recaptcha');
39
- },
40
-
41
- $input: function(){
42
- return this.$('input[type="hidden"]');
43
- },
44
-
45
- $selector: function(){
46
- return this.$control().find('> div');
47
- },
48
-
49
- selector: function(){
50
- return this.$selector()[0];
51
- },
52
-
53
- version: function(){
54
- return this.get('version');
55
- },
56
-
57
- render: function(){
58
-
59
- var field = this;
60
-
61
- if(this.version() === 'v2'){
62
-
63
- this.recaptcha = grecaptcha.render(field.selector(), {
64
- 'sitekey': field.$control().data('site-key'),
65
- 'theme': field.$control().data('theme'),
66
- 'size': field.$control().data('size'),
67
-
68
-
69
- 'callback': function(response){
70
-
71
- field.$input().val(response).change();
72
- field.$input().closest('.acf-input').find('> .acf-notice.-error').hide();
73
-
74
- },
75
-
76
- 'error-callback': function(){
77
-
78
- field.$input().val('error').change();
79
-
80
- },
81
-
82
- 'expired-callback': function(){
83
-
84
- field.$input().val('expired').change();
85
-
86
- }
87
- });
88
-
89
- }
90
-
91
- else if(this.version() === 'v3'){
92
-
93
- grecaptcha.ready(function(){
94
- grecaptcha.execute(field.$control().data('site-key'), {action: 'homepage'}).then(function(response){
95
-
96
- field.$input().val(response).change();
97
- field.$input().closest('.acf-input').find('> .acf-notice.-error').hide();
98
-
99
- });
100
- });
101
-
102
- }
103
-
104
- },
105
-
106
- validationFailure: function($form){
107
-
108
- if(this.version() === 'v2'){
109
-
110
- grecaptcha.reset(this.recaptcha);
111
-
112
- }
113
-
114
- }
115
-
116
- });
117
-
118
- acf.registerFieldType(reCaptcha);
119
-
120
- /**
121
- * Field: Code Editor
122
- */
123
- var CodeEditor = acf.Field.extend({
124
-
125
- wait: 'ready',
126
-
127
- type: 'acfe_code_editor',
128
-
129
- events: {
130
- 'showField': 'onShow',
131
- },
132
-
133
- $control: function(){
134
-
135
- return this.$el.find('> .acf-input > .acf-input-wrap');
136
-
137
- },
138
-
139
- $input: function(){
140
-
141
- return this.$el.find('> .acf-input > .acf-input-wrap > textarea');
142
-
143
- },
144
-
145
- input: function(){
146
-
147
- return this.$input()[0];
148
-
149
- },
150
-
151
- rows: function(){
152
-
153
- return this.$input().attr('rows');
154
-
155
- },
156
-
157
- initialize: function(){
158
-
159
- this.rows = this.$control().data('rows');
160
- this.max_rows = this.$control().data('max-rows');
161
-
162
- this.mode = this.$control().data('mode');
163
- this.lines = this.$control().data('lines');
164
- this.indentUnit = this.$control().data('indent-unit');
165
-
166
- var codeEditor = [];
167
-
168
- // Default WP settings
169
- var wpCodeMirror = wp.codeEditor.defaultSettings.codemirror;
170
-
171
- // Field settings
172
- var CodeMirror = {
173
- lineNumbers: this.lines,
174
- lineWrapping: true,
175
- styleActiveLine: false,
176
- continueComments: true,
177
- indentUnit: this.indentUnit,
178
- tabSize: 1,
179
- indentWithTabs: true,
180
- mode: this.mode,
181
- extraKeys: {
182
- Tab: function(cm){
183
- cm.execCommand("indentMore")
184
- },
185
- "Shift-Tab": function(cm){
186
- cm.execCommand("indentLess")
187
- },
188
- },
189
- };
190
-
191
- // Merge settings
192
- var codeMirror = jQuery.extend(wpCodeMirror, CodeMirror);
193
-
194
- // Push CodeMirror settings to codemirror property
195
- codeEditor.codemirror = codeMirror;
196
-
197
- // Init WP Code Editor
198
- this.editor = wp.codeEditor.initialize(this.input(), codeEditor);
199
-
200
- if(this.rows || this.max_rows){
201
-
202
- if(this.rows){
203
-
204
- this.editor.codemirror.getScrollerElement().style.minHeight = this.rows * 18.5 + 'px';
205
-
206
- }
207
-
208
- if(this.max_rows){
209
-
210
- this.editor.codemirror.getScrollerElement().style.maxHeight = this.max_rows * 18.5 + 'px';
211
-
212
- }
213
-
214
- this.editor.codemirror.refresh();
215
-
216
- }
217
-
218
- field = this;
219
-
220
- this.editor.codemirror.on('change', function(){
221
-
222
- field.editor.codemirror.save();
223
- field.$input().change();
224
-
225
- });
226
-
227
- },
228
-
229
- onShow: function(){
230
-
231
- if(this.editor.codemirror){
232
-
233
- this.editor.codemirror.refresh();
234
-
235
- }
236
-
237
- },
238
-
239
- });
240
-
241
- acf.registerFieldType(CodeEditor);
242
-
243
- acf.registerConditionForFieldType('equalTo', 'acfe_code_editor');
244
- acf.registerConditionForFieldType('notEqualTo', 'acfe_code_editor');
245
- acf.registerConditionForFieldType('patternMatch', 'acfe_code_editor');
246
- acf.registerConditionForFieldType('contains', 'acfe_code_editor');
247
- acf.registerConditionForFieldType('hasValue', 'acfe_code_editor');
248
- acf.registerConditionForFieldType('hasNoValue', 'acfe_code_editor');
249
-
250
- /**
251
- * Field Group Admin: Code Editor
252
- * Fix duplicate action
253
- */
254
- acf.addAction('append_field_object', function(field){
255
-
256
- if(field.get('type') !== 'acfe_code_editor')
257
- return;
258
-
259
- field.$setting('default_value').find('> .acf-input > .acf-input-wrap > .CodeMirror:last').remove();
260
- field.$setting('placeholder').find('> .acf-input > .acf-input-wrap > .CodeMirror:last').remove();
261
-
262
- });
263
-
264
- /*
265
- var preCodeMirror = new acf.Model({
266
- codemirror: false,
267
- data: {
268
- type: 'pre',
269
- mode: 'htmlmixed',
270
- codemirror: false,
271
- },
272
- actions: {
273
- 'new_field': 'new_field',
274
- },
275
- new_field: function(field){
276
-
277
- var self = this;
278
-
279
- field.$('pre[data-codemirror]:visible, code[data-codemirror]:visible').each(function(){
280
-
281
- self.setup(this);
282
-
283
- });
284
-
285
- },
286
- setup: function(el){
287
-
288
- this.$el = $(el);
289
-
290
- this.set('type', this.$el.prop('tagName').toLowerCase());
291
- this.set('mode', this.$el.attr('data-codemirror'));
292
-
293
- if(this.get('mode') === 'php'){
294
-
295
- this.set('mode', 'application/x-httpd-php');
296
-
297
- }else if(this.get('mode') === 'php-plain'){
298
-
299
- this.set('mode', 'text/x-php');
300
-
301
- }else if(this.get('mode') === 'html'){
302
-
303
- this.set('mode', 'text/html');
304
-
305
- }else if(this.get('mode') === 'javascript'){
306
-
307
- this.set('mode', 'javascript');
308
-
309
- }else if(this.get('mode') === 'css'){
310
-
311
- this.set('mode', 'css');
312
-
313
- }
314
-
315
- this.render();
316
-
317
- this.getClosestField();
318
-
319
- },
320
- initialize: function(){
321
- // ...
322
- },
323
- render: function(){
324
-
325
- var $code = this.$el.html();
326
- var $div = $('<div class="' + this.get('type') + '-codemirror" />').insertAfter(this.$el);
327
- var $unescaped = this.$el.html($code).text();
328
-
329
- this.codemirror = wp.CodeMirror($div[0], {
330
- value: $unescaped,
331
- mode: this.get('mode'),
332
- lineNumbers: false,
333
- lineWrapping: false,
334
- styleActiveLine: false,
335
- continueComments: true,
336
- indentUnit: 4,
337
- tabSize: 1,
338
- readOnly: true,
339
- });
340
-
341
- this.$el.remove();
342
-
343
- },
344
- refresh: function(){
345
-
346
- if(this.codemirror)
347
- this.codemirror.refresh();
348
-
349
- },
350
- getClosestField: function(){
351
-
352
- var self = this;
353
-
354
- field = acf.getClosestField(this.$el);
355
-
356
- if(field){
357
-
358
- field.on('showField', function(){
359
-
360
- self.refresh();
361
-
362
- });
363
-
364
- }
365
-
366
- }
367
-
368
- });
369
- */
370
-
371
- /**
372
- * Field: Textarea
373
- */
374
- var Textarea = acf.Field.extend({
375
-
376
- type: 'textarea',
377
-
378
- events: {
379
- 'keydown textarea': 'onInput',
380
- },
381
-
382
- onInput: function(e, $el){
383
-
384
- if(!this.has('acfeTextareaCode'))
385
- return;
386
-
387
- if(e.keyCode !== 9)
388
- return;
389
-
390
- e.preventDefault();
391
-
392
- var input = this.$el.find('textarea')[0];
393
-
394
- var s = input.selectionStart;
395
-
396
- this.$el.find('textarea').val(function(i, v){
397
-
398
- return v.substring(0, s) + " " + v.substring(input.selectionEnd)
399
-
400
- });
401
-
402
- input.selectionEnd = s + 4;
403
-
404
- },
405
-
406
- });
407
-
408
- acf.registerFieldType(Textarea);
409
-
410
- /**
411
- * Field: Slug
412
- */
413
- var ACFE_Slug = acf.Field.extend({
414
-
415
- type: 'acfe_slug',
416
-
417
- events: {
418
- 'input input': 'onInput',
419
- 'focusout input': 'onFocusOut',
420
- },
421
-
422
- onInput: function(e, $el){
423
-
424
- $el.val($el.val().toLowerCase()
425
- .replace(/\s+/g, '-') // Replace spaces with -
426
- .replace(/[^\w\-]+/g, '') // Remove all non-word chars
427
- .replace(/\-\-+/g, '-') // Replace multiple - with single -
428
- .replace(/\_\_+/g, '_') // Replace multiple _ with single _
429
- .replace(/^-+/, '')); // Trim - from start of text
430
-
431
- },
432
-
433
- onFocusOut: function(e, $el){
434
-
435
- $el.val($el.val().toLowerCase()
436
- .replace(/-+$/, '') // Trim - from end of text
437
- .replace(/_+$/, '')); // Trim _ from end of text
438
-
439
- },
440
-
441
- });
442
-
443
- acf.registerFieldType(ACFE_Slug);
444
-
445
- acf.registerConditionForFieldType('equalTo', 'acfe_slug');
446
- acf.registerConditionForFieldType('notEqualTo', 'acfe_slug');
447
- acf.registerConditionForFieldType('patternMatch', 'acfe_slug');
448
- acf.registerConditionForFieldType('contains', 'acfe_slug');
449
- acf.registerConditionForFieldType('hasValue', 'acfe_slug');
450
- acf.registerConditionForFieldType('hasNoValue', 'acfe_slug');
451
-
452
- /**
453
- * Field: Button
454
- */
455
- var ACFE_Button = acf.Field.extend({
456
-
457
- type: 'acfe_button',
458
-
459
- events: {
460
- 'click input': 'onClick',
461
- 'click button': 'onClick',
462
- },
463
-
464
- $input: function(){
465
-
466
- if(this.$('input').length){
467
-
468
- return this.$('input');
469
-
470
- }else if(this.$('button').length){
471
-
472
- return this.$('button');
473
-
474
- }
475
-
476
- },
477
-
478
- initialize: function(){
479
-
480
- // vars
481
- var $button = this.$input();
482
-
483
- // inherit data
484
- this.inherit($button);
485
-
486
- },
487
-
488
- onClick: function(e, $el){
489
-
490
- if(this.get('ajax')){
491
-
492
- e.preventDefault();
493
-
494
- // serialize form data
495
- var data = {
496
- action: 'acfe/fields/button',
497
- field_name: this.get('name'),
498
- field_key: this.get('key')
499
- };
500
-
501
- // Deprecated
502
- acf.doAction('acfe/fields/button/before_ajax', this.$el, data);
503
-
504
- // Actions
505
- acf.doAction('acfe/fields/button/before', this.$el, data);
506
- acf.doAction('acfe/fields/button/before/key=' + this.get('key'), this.$el, data);
507
- acf.doAction('acfe/fields/button/before/name=' + this.get('name'), this.$el, data);
508
-
509
- // ajax
510
- $.ajax({
511
- url: acf.get('ajaxurl'),
512
- data: acf.prepareForAjax(data),
513
- type: 'post',
514
- dataType: 'json',
515
- context: this,
516
-
517
- // Success
518
- success: function(response){
519
-
520
- // Deprecated
521
- acf.doAction('acfe/fields/button/ajax_success', response, this.$el, data);
522
-
523
- // Actions
524
- acf.doAction('acfe/fields/button/success', response, this.$el, data);
525
- acf.doAction('acfe/fields/button/success/key=' + this.get('key'), response, this.$el, data);
526
- acf.doAction('acfe/fields/button/success/name=' + this.get('name'), response, this.$el, data);
527
-
528
- },
529
-
530
- // Complete
531
- complete: function(xhr){
532
-
533
- var response = xhr.responseText;
534
-
535
- // Actions
536
- acf.doAction('acfe/fields/button/complete', response, this.$el, data);
537
- acf.doAction('acfe/fields/button/complete/key=' + this.get('key'), response, this.$el, data);
538
- acf.doAction('acfe/fields/button/complete/name=' + this.get('name'), response, this.$el, data);
539
-
540
- }
541
-
542
-
543
- });
544
-
545
- }
546
-
547
- }
548
-
549
- });
550
-
551
- acf.registerFieldType(ACFE_Button);
552
-
553
- /**
554
- * Field: Advanced Link
555
- */
556
- var ACFE_Advanced_Link = acf.Field.extend({
557
-
558
- type: 'acfe_advanced_link',
559
-
560
- events: {
561
- 'click a[data-name="add"]': 'onClickEdit',
562
- 'click a[data-name="edit"]': 'onClickEdit',
563
- 'click a[data-name="remove"]': 'onClickRemove',
564
- },
565
-
566
- $control: function(){
567
- return this.$('.acf-link');
568
- },
569
-
570
- initialize: function(){
571
- // ...
572
- },
573
-
574
- getValue: function(){
575
-
576
- // return
577
- var data = {
578
- type: this.$('.input-type :checked').val(),
579
- title: this.$('.input-title').val(),
580
- url: this.$('.input-url').val(),
581
- post: this.$('.input-post :selected').text(),
582
- term: this.$('.input-term :selected').text(),
583
- target: this.$('.input-target').is(':checked')
584
- };
585
-
586
- if(data.type === 'post'){
587
-
588
- data.url = data.post;
589
-
590
- }else if(data.type === 'term'){
591
-
592
- data.url = data.term;
593
-
594
- }
595
-
596
- return data;
597
-
598
- },
599
-
600
- setValue: function( val ){
601
-
602
- // default
603
- val = acf.parseArgs(val, {
604
- remove: false,
605
- title: '',
606
- url: '',
607
- target: false
608
- });
609
-
610
- // vars
611
- var $div = this.$control();
612
-
613
- // remove class
614
- $div.removeClass('-value -external');
615
-
616
- // add class
617
- if(val.url)
618
- $div.addClass('-value');
619
-
620
- if(val.target)
621
- $div.addClass('-external');
622
-
623
- // update text
624
- this.$('.link-title').html( val.title );
625
- this.$('.link-url').attr('href', val.url).html( val.url );
626
-
627
- // remove inputs data
628
- if(val.remove){
629
-
630
- this.$('.input-type :checked').prop('checked', false);
631
- this.$('.input-type [value="url"]').prop('checked', true).trigger('change');
632
- this.$('.input-title').val('');
633
- this.$('.input-target').prop('checked', false);
634
- this.$('.input-url').val('').trigger('change');
635
- this.$('.input-post').val('').trigger('change');
636
- this.$('.input-term').val('').trigger('change');
637
-
638
- }
639
-
640
- },
641
-
642
- onClickEdit: function(e, $el){
643
-
644
- var $modal = $el.closest('.acf-input').find('.acfe-modal');
645
-
646
- var title = $modal.attr('data-modal-title');
647
-
648
- var model = this;
649
-
650
- acfe.modal.open($modal, {
651
- title: title,
652
- size: 'medium',
653
- footer: acf.__('Close'),
654
- onClose: function(){
655
- model.onChange();
656
- }
657
- });
658
-
659
- },
660
-
661
- onClickRemove: function( e, $el ){
662
-
663
- this.setValue({
664
- remove: true
665
- });
666
-
667
- },
668
-
669
- onChange: function( e, $el ){
670
-
671
- // get the changed value
672
- var val = this.getValue();
673
-
674
- // update inputs
675
- this.setValue(val);
676
-
677
- },
678
-
679
- });
680
-
681
- acf.registerFieldType(ACFE_Advanced_Link);
682
-
683
- /**
684
- * Field: Advanced Link - Post Object Ajax
685
- */
686
- acf.addFilter('select2_ajax_data/type=post_object', function(ajaxData, data, $el, field, select){
687
-
688
- if(field.get('key') !== 'post')
689
- return ajaxData;
690
-
691
- var advanced_link = acf.getInstance($el.closest('.acf-field-acfe-advanced-link'));
692
-
693
- if(advanced_link){
694
-
695
- ajaxData.field_key = advanced_link.get('key');
696
-
697
- }
698
-
699
- return ajaxData;
700
-
701
- });
702
-
703
- /*
704
- * Field: Advanced Link - Error
705
- */
706
- acf.addAction('invalid_field', function(field){
707
-
708
- var $advanced_link = field.$el.closest('.acf-field-acfe-advanced-link').not('.acf-error');
709
-
710
- if($advanced_link.length){
711
-
712
- var advanced_link_field = acf.getInstance($advanced_link);
713
-
714
- advanced_link_field.showError(field.notice.get('text'));
715
-
716
- }
717
-
718
- });
719
-
720
- /**
721
- * Field: Group
722
- */
723
- var Group = acf.Field.extend({
724
-
725
- type: 'group',
726
-
727
- events: {
728
- 'click [data-name="edit"]': 'onClick',
729
- },
730
-
731
- initialize: function(){
732
-
733
- if(this.has('acfeGroupModal')){
734
-
735
- var edit = this.get('acfeGroupModalButton');
736
-
737
- this.$el.find('> .acf-input > .acf-fields, > .acf-input > .acf-table').wrapAll('<div class="acfe-modal"><div class="acfe-modal-wrapper"><div class="acfe-modal-content"></div></div></div>');
738
- this.$el.find('> .acf-input').append('<a data-name="edit" class="acf-button button" href="#">' + edit + '</a>');
739
-
740
- }
741
-
742
- },
743
-
744
- onClick: function(e, $el){
745
-
746
- var title = this.$el.find('> .acf-label').text().trim();
747
- var $modal = this.$el.find('> .acf-input > .acfe-modal');
748
-
749
- // Title
750
- if(!title.length){
751
-
752
- title = this.get('acfeGroupModalButton');
753
-
754
- }
755
-
756
- // Close
757
- var close = false;
758
-
759
- if(this.has('acfeGroupModalClose')){
760
-
761
- close = acf.__('Close');
762
-
763
- }
764
-
765
- // Size
766
- var size = 'large';
767
-
768
- if(this.has('acfeGroupModalSize')){
769
-
770
- size = this.get('acfeGroupModalSize');
771
-
772
- }
773
-
774
- // Open modal
775
- acfe.modal.open($modal, {
776
- title: title,
777
- size: size,
778
- footer: close
779
- });
780
-
781
- },
782
-
783
- });
784
-
785
- acf.registerFieldType(Group);
786
-
787
- /**
788
- * Field: Clone
789
- */
790
- var Clone = acf.Field.extend({
791
-
792
- type: 'clone',
793
-
794
- events: {
795
- 'click [data-name="edit"]': 'onClick',
796
- },
797
-
798
- initialize: function(){
799
-
800
- if(this.has('acfeCloneModal')){
801
-
802
- var edit = this.get('acfeCloneModalButton');
803
-
804
- this.$el.find('> .acf-input > .acf-fields, > .acf-input > .acf-table').wrapAll('<div class="acfe-modal"><div class="acfe-modal-wrapper"><div class="acfe-modal-content"></div></div></div>');
805
- this.$el.find('> .acf-input').append('<a data-name="edit" class="acf-button button" href="#">' + edit + '</a>');
806
-
807
- }
808
-
809
- },
810
-
811
- onClick: function(e, $el){
812
-
813
- var title = this.$el.find('> .acf-label').text().trim();
814
- var $modal = this.$el.find('> .acf-input > .acfe-modal');
815
-
816
-
817
- // Title
818
- if(!title.length){
819
-
820
- title = this.get('acfeCloneModalButton');
821
-
822
- }
823
-
824
- // Close
825
- var close = false;
826
-
827
- if(this.has('acfeCloneModalClose')){
828
-
829
- close = acf.__('Close');
830
-
831
- }
832
-
833
- // Size
834
- var size = 'large';
835
-
836
- if(this.has('acfeCloneModalSize')){
837
-
838
- size = this.get('acfeCloneModalSize');
839
-
840
- }
841
-
842
- // Open modal
843
- acfe.modal.open($modal, {
844
- title: title,
845
- size: size,
846
- footer: close
847
- });
848
-
849
- },
850
-
851
- });
852
-
853
- acf.registerFieldType(Clone);
854
-
855
- /**
856
- * Field: Column
857
- */
858
- var Column = acf.Field.extend({
859
-
860
- wait: 'new_field',
861
-
862
- type: 'acfe_column',
863
-
864
- $control: function(){
865
- return this.$('.acf-fields:first');
866
- },
867
-
868
- initialize: function(){
869
-
870
- if(this.$el.is('td')){
871
-
872
- var $table = this.$el.closest('.acf-table').find('th[data-type="acfe_column"]').remove();
873
- this.remove();
874
-
875
- }
876
-
877
- if(this.get('endpoint')){
878
-
879
- this.$el.find('> .acf-label').remove();
880
- this.$el.find('> .acf-input').remove();
881
-
882
- return;
883
-
884
- }
885
-
886
- var $field = this.$el;
887
- var $label = this.$el.find('> .acf-label');
888
- var $input = this.$inputWrap();
889
- var $wrap = this.$control();
890
-
891
- $label.remove();
892
-
893
- var $parent = $field.parent();
894
- $wrap.addClass($parent.hasClass('-left') ? '-left' : '');
895
- $wrap.addClass($parent.hasClass('-clear') ? '-clear' : '');
896
-
897
- $wrap.append($field.nextUntil('.acf-field-acfe-column', '.acf-field'));
898
-
899
- }
900
-
901
- });
902
-
903
- acf.registerFieldType(Column);
904
-
905
- /**
906
- * Field: Taxonomy Terms - Ajax
907
- */
908
- acf.addFilter('select2_ajax_data/action=acfe/fields/taxonomy_terms/allow_query', function(ajaxData, data, $el, field, select){
909
-
910
- // Taxonomies
911
- var $taxonomies = $el.closest('.acf-field-settings').find('> .acf-field-setting-taxonomy > .acf-input > select > option:selected');
912
-
913
- var tax = [];
914
-
915
- $taxonomies.each(function(){
916
- tax.push($(this).val());
917
- });
918
-
919
- ajaxData.taxonomies = tax;
920
-
921
- // Terms level
922
- var $level = $el.closest('.acf-field-settings').find('> .acf-field-setting-allow_terms > .acf-input input[type="number"]');
923
-
924
- ajaxData.level = $level.val();
925
-
926
- return ajaxData;
927
-
928
- });
929
-
930
- /**
931
- * Fields: Select2 - Placeholder
932
- */
933
- acf.addAction('select2_init', function($select, options, data, field, instance){
934
-
935
- // Search Placeholder
936
- if(field.get('acfeSearchPlaceholder')){
937
-
938
- var search_placeholder = field.get('acfeSearchPlaceholder');
939
-
940
- $select.on('select2:open', function(e){
941
-
942
- if(field.get('multiple')){
943
-
944
- if(!$select.val()){
945
-
946
- field.$('.select2-search__field').attr('placeholder', search_placeholder);
947
-
948
- }
949
-
950
- }else{
951
-
952
- $('.select2-search.select2-search--dropdown > .select2-search__field').attr('placeholder', search_placeholder);
953
-
954
- }
955
-
956
- });
957
-
958
- if(field.get('multiple')){
959
-
960
- $select.on('select2:close', function(e){
961
-
962
- if(!$select.val()){
963
-
964
- field.$('.select2-search__field').attr('placeholder', field.get('placeholder'));
965
-
966
- }
967
-
968
- });
969
-
970
- }
971
-
972
- }
973
-
974
- });
975
-
976
- /**
977
- * Fields: Select2 - Allow Custom
978
- */
979
- acf.addFilter('select2_args', function(options, $select, fieldData, field, instance){
980
-
981
- if(field.get('acfeAllowCustom')){
982
-
983
- options.tags = true;
984
-
985
- options.createTag = function(params){
986
-
987
- var term = $.trim(params.term);
988
-
989
- if(term === '')
990
- return null;
991
-
992
- var optionsMatch = false;
993
-
994
- this.$element.find('option').each(function(){
995
-
996
- if(this.value.toLowerCase() === term.toLowerCase()){
997
- optionsMatch = true;
998
- }
999
-
1000
- });
1001
-
1002
- if(optionsMatch)
1003
- return null;
1004
-
1005
- return {
1006
- id: term,
1007
- text: term
1008
- };
1009
-
1010
- };
1011
-
1012
-
1013
- options.insertTag = function(data, tag){
1014
-
1015
- var found = false;
1016
-
1017
- $.each(data, function(index, value){
1018
-
1019
- if($.trim(tag.text).toUpperCase() === $.trim(value.text).toUpperCase()){
1020
-
1021
- found = true;
1022
- return false;
1023
-
1024
- }
1025
-
1026
- });
1027
-
1028
- if(!found)
1029
- data.unshift(tag);
1030
-
1031
- };
1032
-
1033
- options.templateSelection = function(state){
1034
-
1035
- if(!state.id){
1036
- return state.text;
1037
- }
1038
-
1039
- var text = state.text;
1040
-
1041
- var match_field = /{field:(.*)}/g;
1042
- var match_fields = /{fields}/g;
1043
- var match_get_field = /{get_field:(.*)}/g;
1044
- var match_query_var = /{query_var:(.*)}/g;
1045
- var match_request = /{request:(.*)}/g;
1046
- var match_current = /{current:(.*)}/g;
1047
-
1048
- text = text.replace(match_field, "<code style='font-size:12px;padding:3px;vertical-align: 1px;line-height: 12px;'>{field:$1}</code>");
1049
- text = text.replace(match_fields, "<code style='font-size:12px;padding:3px;vertical-align: 1px;line-height: 12px;'>{fields}</code>");
1050
- text = text.replace(match_current, "<code style='font-size:12px;padding:3px;vertical-align: 1px;line-height: 12px;'>{current:$1}</code>");
1051
- text = text.replace(match_get_field, "<code style='font-size:12px;padding:3px;vertical-align: 1px;line-height: 12px;'>{get_field:$1}</code>");
1052
- text = text.replace(match_query_var, "<code style='font-size:12px;padding:3px;vertical-align: 1px;line-height: 12px;'>{query_var:$1}</code>");
1053
- text = text.replace(match_request, "<code style='font-size:12px;padding:3px;vertical-align: 1px;line-height: 12px;'>{request:$1}</code>");
1054
-
1055
-
1056
- return text;
1057
-
1058
- };
1059
-
1060
- options.templateResult = function(state){
1061
-
1062
- if(!state.id){
1063
- return state.text;
1064
- }
1065
-
1066
- var text = state.text;
1067
-
1068
- var match_field = /{field:(.*?)}/g;
1069
- var match_fields = /{fields}/g;
1070
- var match_get_field = /{get_field:(.*?)}/g;
1071
- var match_query_var = /{query_var:(.*?)}/g;
1072
- var match_request = /{request:(.*?)}/g;
1073
- var match_current = /{current:(.*?)}/g;
1074
-
1075
- text = text.replace(match_field, "<code style='font-size:12px;'>{field:$1}</code>");
1076
- text = text.replace(match_fields, "<code style='font-size:12px;'>{fields}</code>");
1077
- text = text.replace(match_get_field, "<code style='font-size:12px;'>{get_field:$1}</code>");
1078
- text = text.replace(match_query_var, "<code style='font-size:12px;'>{query_var:$1}</code>");
1079
- text = text.replace(match_request, "<code style='font-size:12px;'>{request:$1}</code>");
1080
- text = text.replace(match_current, "<code style='font-size:12px;'>{current:$1}</code>");
1081
-
1082
- return text;
1083
-
1084
- };
1085
-
1086
- }
1087
-
1088
- return options;
1089
-
1090
- });
1091
-
1092
- /**
1093
- * Fields: Select2 - Args Variations
1094
- */
1095
- acf.addFilter('select2_args', function(options, $select, data, field, instance){
1096
-
1097
- options = acf.applyFilters('select2_args/type=' + field.get('type'), options, $select, data, field, instance);
1098
- options = acf.applyFilters('select2_args/name=' + field.get('name'), options, $select, data, field, instance);
1099
- options = acf.applyFilters('select2_args/key=' + field.get('key'), options, $select, data, field, instance);
1100
-
1101
- return options;
1102
-
1103
- });
1104
-
1105
- /**
1106
- * Fields: Select2 - Init Variations
1107
- */
1108
- acf.addAction('select2_init', function($select, options, data, field, instance){
1109
-
1110
- acf.doAction('select2_init/type=' + field.get('type'), $select, options, data, field, instance);
1111
- acf.doAction('select2_init/name=' + field.get('name'), $select, options, data, field, instance);
1112
- acf.doAction('select2_init/key=' + field.get('key'), $select, options, data, field, instance);
1113
-
1114
- });
1115
-
1116
- /**
1117
- * Fields: Select2 - Ajax Data Variations
1118
- */
1119
- acf.addFilter('select2_ajax_data', function(ajaxData, data, $el, field, instance){
1120
-
1121
- ajaxData = acf.applyFilters('select2_ajax_data/type=' + field.get('type'), ajaxData, data, $el, field, instance);
1122
- ajaxData = acf.applyFilters('select2_ajax_data/name=' + field.get('name'), ajaxData, data, $el, field, instance);
1123
- ajaxData = acf.applyFilters('select2_ajax_data/key=' + field.get('key'), ajaxData, data, $el, field, instance);
1124
-
1125
- if(ajaxData.action){
1126
-
1127
- ajaxData = acf.applyFilters('select2_ajax_data/action=' + ajaxData.action, ajaxData, data, $el, field, instance);
1128
-
1129
- }
1130
-
1131
- return ajaxData;
1132
-
1133
- });
1134
-
1135
- /**
1136
- * Field Conditions: Datepicker
1137
- */
1138
- acf.registerConditionForFieldType('equalTo', 'date_picker');
1139
- acf.registerConditionForFieldType('notEqualTo', 'date_picker');
1140
- acf.registerConditionForFieldType('patternMatch', 'date_picker');
1141
- acf.registerConditionForFieldType('contains', 'date_picker');
1142
- acf.registerConditionForFieldType('greaterThan', 'date_picker');
1143
- acf.registerConditionForFieldType('lessThan', 'date_picker');
1144
-
1145
- /**
1146
- * Field Conditions: Forms
1147
- */
1148
- acf.registerConditionForFieldType('equalTo', 'acfe_forms');
1149
- acf.registerConditionForFieldType('notEqualTo', 'acfe_forms');
1150
- acf.registerConditionForFieldType('patternMatch', 'acfe_forms');
1151
- acf.registerConditionForFieldType('contains', 'acfe_forms');
1152
- acf.registerConditionForFieldType('hasValue', 'acfe_forms');
1153
- acf.registerConditionForFieldType('hasNoValue', 'acfe_forms');
1154
-
1155
- /**
1156
- * Field Conditions: Post Status
1157
- */
1158
- acf.registerConditionForFieldType('equalTo', 'acfe_post_statuses');
1159
- acf.registerConditionForFieldType('notEqualTo', 'acfe_post_statuses');
1160
- acf.registerConditionForFieldType('patternMatch', 'acfe_post_statuses');
1161
- acf.registerConditionForFieldType('contains', 'acfe_post_statuses');
1162
- acf.registerConditionForFieldType('hasValue', 'acfe_post_statuses');
1163
- acf.registerConditionForFieldType('hasNoValue', 'acfe_post_statuses');
1164
-
1165
- /**
1166
- * Field Conditions: Post Types
1167
- */
1168
- acf.registerConditionForFieldType('equalTo', 'acfe_post_types');
1169
- acf.registerConditionForFieldType('notEqualTo', 'acfe_post_types');
1170
- acf.registerConditionForFieldType('patternMatch', 'acfe_post_types');
1171
- acf.registerConditionForFieldType('contains', 'acfe_post_types');
1172
- acf.registerConditionForFieldType('hasValue', 'acfe_post_types');
1173
- acf.registerConditionForFieldType('hasNoValue', 'acfe_post_types');
1174
-
1175
- /**
1176
- * Field Conditions: Taxonomies
1177
- */
1178
- acf.registerConditionForFieldType('equalTo', 'acfe_taxonomies');
1179
- acf.registerConditionForFieldType('notEqualTo', 'acfe_taxonomies');
1180
- acf.registerConditionForFieldType('patternMatch', 'acfe_taxonomies');
1181
- acf.registerConditionForFieldType('contains', 'acfe_taxonomies');
1182
- acf.registerConditionForFieldType('hasValue', 'acfe_taxonomies');
1183
- acf.registerConditionForFieldType('hasNoValue', 'acfe_taxonomies');
1184
-
1185
- /**
1186
- * Field Conditions: Taxonomy Terms
1187
- */
1188
- acf.registerConditionForFieldType('equalTo', 'acfe_taxonomy_terms');
1189
- acf.registerConditionForFieldType('notEqualTo', 'acfe_taxonomy_terms');
1190
- acf.registerConditionForFieldType('patternMatch', 'acfe_taxonomy_terms');
1191
- acf.registerConditionForFieldType('contains', 'acfe_taxonomy_terms');
1192
- acf.registerConditionForFieldType('hasValue', 'acfe_taxonomy_terms');
1193
- acf.registerConditionForFieldType('hasNoValue', 'acfe_taxonomy_terms');
1194
-
1195
- /**
1196
- * Field Conditions: User Roles
1197
- */
1198
- acf.registerConditionForFieldType('equalTo', 'acfe_user_roles');
1199
- acf.registerConditionForFieldType('notEqualTo', 'acfe_user_roles');
1200
- acf.registerConditionForFieldType('patternMatch', 'acfe_user_roles');
1201
- acf.registerConditionForFieldType('contains', 'acfe_user_roles');
1202
- acf.registerConditionForFieldType('hasValue', 'acfe_user_roles');
1203
- acf.registerConditionForFieldType('hasNoValue', 'acfe_user_roles');
1204
-
1205
- /**
1206
- * Module: Author
1207
- */
1208
- acf.add_action('new_field/name=acfe_author', function(field){
1209
-
1210
- field.on('change', function(e){
1211
-
1212
- e.stopPropagation();
1213
-
1214
- });
1215
-
1216
- });
1217
-
1218
- /**
1219
- * Module: Dynamic Forms - Fields Mapping
1220
- */
1221
- var acfe_form_map_fields = function(field){
1222
-
1223
- var name = field.get('name');
1224
- var $layout = field.$el.closest('.layout');
1225
- var $message = $layout.find('> .acf-fields > .acf-field[data-name="' + name + '_message"] > .acf-input');
1226
-
1227
- var selected = field.$input().find('option:selected').text();
1228
-
1229
- if(selected.length){
1230
- $message.html(selected);
1231
- }
1232
-
1233
- field.$input().on('change', function(){
1234
-
1235
- // Message
1236
- var text = $(this).find('option:selected').text();
1237
-
1238
- $message.html(text);
1239
-
1240
- });
1241
-
1242
- };
1243
-
1244
- acf.addAction('new_field/name=acfe_form_post_map_target', acfe_form_map_fields);
1245
- acf.addAction('new_field/name=acfe_form_post_map_post_type', acfe_form_map_fields);
1246
- acf.addAction('new_field/name=acfe_form_post_map_post_status', acfe_form_map_fields);
1247
- acf.addAction('new_field/name=acfe_form_post_map_post_title', acfe_form_map_fields);
1248
- acf.addAction('new_field/name=acfe_form_post_map_post_name', acfe_form_map_fields);
1249
- acf.addAction('new_field/name=acfe_form_post_map_post_content', acfe_form_map_fields);
1250
- acf.addAction('new_field/name=acfe_form_post_map_post_author', acfe_form_map_fields);
1251
- acf.addAction('new_field/name=acfe_form_post_map_post_parent', acfe_form_map_fields);
1252
- acf.addAction('new_field/name=acfe_form_post_map_post_terms', acfe_form_map_fields);
1253
-
1254
- acf.addAction('new_field/name=acfe_form_user_map_email', acfe_form_map_fields);
1255
- acf.addAction('new_field/name=acfe_form_user_map_username', acfe_form_map_fields);
1256
- acf.addAction('new_field/name=acfe_form_user_map_password', acfe_form_map_fields);
1257
- acf.addAction('new_field/name=acfe_form_user_map_first_name', acfe_form_map_fields);
1258
- acf.addAction('new_field/name=acfe_form_user_map_last_name', acfe_form_map_fields);
1259
- acf.addAction('new_field/name=acfe_form_user_map_nickname', acfe_form_map_fields);
1260
- acf.addAction('new_field/name=acfe_form_user_map_display_name', acfe_form_map_fields);
1261
- acf.addAction('new_field/name=acfe_form_user_map_website', acfe_form_map_fields);
1262
- acf.addAction('new_field/name=acfe_form_user_map_description', acfe_form_map_fields);
1263
- acf.addAction('new_field/name=acfe_form_user_map_role', acfe_form_map_fields);
1264
-
1265
- acf.addAction('new_field/name=acfe_form_term_map_name', acfe_form_map_fields);
1266
- acf.addAction('new_field/name=acfe_form_term_map_slug', acfe_form_map_fields);
1267
- acf.addAction('new_field/name=acfe_form_term_map_taxonomy', acfe_form_map_fields);
1268
- acf.addAction('new_field/name=acfe_form_term_map_parent', acfe_form_map_fields);
1269
- acf.addAction('new_field/name=acfe_form_term_map_description', acfe_form_map_fields);
1270
-
1271
- /**
1272
- * Module: Dynamic Forms (actions)
1273
- */
1274
- acf.addAction('new_field/name=acfe_form_actions', function(field){
1275
-
1276
- var $tab = $('a[data-key=field_acfe_form_tab_actions]');
1277
-
1278
- var $layouts = field.$layouts();
1279
-
1280
- $tab.html('Actions <span class="acfe-tab-badge">' + $layouts.length + '</span>');
1281
-
1282
- field.on('change', function(){
1283
-
1284
- var $layouts = field.$layouts();
1285
-
1286
- $tab.html('Actions <span class="acfe-tab-badge">' + $layouts.length + '</span>');
1287
-
1288
- });
1289
-
1290
- field.on('click', '[data-name="add-layout"]', function(e){
1291
-
1292
- $('body').find('.acf-fc-popup').addClass('acfe-fc-popup-grey');
1293
-
1294
- });
1295
-
1296
- });
1297
-
1298
- var acfe_tab_forget_tab_preference = function(field){
1299
-
1300
- var $tabs = field.findTabs();
1301
- var tabs = acf.getInstances($tabs);
1302
- var key = field.get('key');
1303
-
1304
- if(tabs.length){
1305
-
1306
- var preference = acf.getPreference('this.tabs');
1307
-
1308
- if(!preference)
1309
- return;
1310
-
1311
- $.each(tabs, function(){
1312
-
1313
- var group = this;
1314
- var groupIndex = group.get('index');
1315
-
1316
- if(group.data.key === key){
1317
- preference[groupIndex] = 0;
1318
- }
1319
-
1320
- });
1321
-
1322
- // update
1323
- acf.setPreference('this.tabs', preference);
1324
-
1325
- }
1326
-
1327
- };
1328
-
1329
- acf.addAction('prepare_field/key=field_acfe_form_custom_action_tab_action', acfe_tab_forget_tab_preference);
1330
- acf.addAction('prepare_field/key=field_acfe_form_email_tab_action', acfe_tab_forget_tab_preference);
1331
- acf.addAction('prepare_field/key=field_acfe_form_post_tab_action', acfe_tab_forget_tab_preference);
1332
- acf.addAction('prepare_field/key=field_acfe_form_term_tab_action', acfe_tab_forget_tab_preference);
1333
- acf.addAction('prepare_field/key=field_acfe_form_user_tab_action', acfe_tab_forget_tab_preference);
1334
-
1335
- acf.addAction('prepare_field/key=field_acfe_dpt_tab_general', acfe_tab_forget_tab_preference);
1336
- acf.addAction('prepare_field/key=field_acfe_dt_tab_general', acfe_tab_forget_tab_preference);
1337
-
1338
- acf.addAction('show_postbox', function(postbox){
1339
- postbox.$el.removeClass('acfe-postbox-left acfe-postbox-top');
1340
- });
1341
-
1342
- // Allow conditions to work within wrapped div
1343
- acf.newCondition = function( rule, conditions ){
1344
-
1345
- // currently setting up conditions for fieldX, this field is the 'target'
1346
- var target = conditions.get('field');
1347
-
1348
- // use the 'target' to find the 'trigger' field.
1349
- // - this field is used to setup the conditional logic events
1350
- var field = target.getField( rule.field );
1351
-
1352
- // ACF Extended: Check in all form if targeted field not found
1353
- if( target && !field ) {
1354
-
1355
- field = acf.getField( rule.field );
1356
-
1357
- }
1358
-
1359
- // bail ealry if no target or no field (possible if field doesn't exist due to HTML error)
1360
- if( !target || !field ) {
1361
- return false;
1362
- }
1363
-
1364
- // vars
1365
- var args = {
1366
- rule: rule,
1367
- target: target,
1368
- conditions: conditions,
1369
- field: field
1370
- };
1371
-
1372
- // vars
1373
- var fieldType = field.get('type');
1374
- var operator = rule.operator;
1375
-
1376
- // get avaibale conditions
1377
- var conditionTypes = acf.getConditionTypes({
1378
- fieldType: fieldType,
1379
- operator: operator,
1380
- });
1381
-
1382
- // instantiate
1383
- var model = conditionTypes[0] || acf.Condition;
1384
-
1385
- // instantiate
1386
- var condition = new model( args );
1387
-
1388
- // return
1389
- return condition;
1390
-
1391
- };
1392
-
1393
- /**
1394
- * Field: Checkbox
1395
- */
1396
- acf.addAction('new_field/type=checkbox', function(field){
1397
-
1398
- if(!field.has('acfeLabels'))
1399
- return;
1400
-
1401
- $.each(field.get('acfeLabels'), function(group, key){
1402
-
1403
- field.$control().find('input[type=checkbox][value="' + key + '"]').closest('ul').before('<strong>' + group + '</strong>');
1404
-
1405
- });
1406
-
1407
- });
1408
-
1409
- /**
1410
- * Field: Radio
1411
- */
1412
- acf.addAction('new_field/type=radio', function(field){
1413
-
1414
- if(!field.has('acfeLabels'))
1415
- return;
1416
-
1417
- $.each(field.get('acfeLabels'), function(group, key){
1418
-
1419
- field.$control().find('input[type=radio][value="' + key + '"]').closest('li').addClass('parent').prepend('<strong>' + group + '</strong>');
1420
-
1421
- });
1422
-
1423
- if(field.$control().hasClass('acf-hl')){
1424
-
1425
- field.$control().find('li.parent').each(function(){
1426
-
1427
- $(this).nextUntil('li.parent').addBack().wrapAll('<li><ul></ul></li>');
1428
-
1429
- });
1430
-
1431
- }
1432
-
1433
- });
1434
-
1435
- })(jQuery);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/acf-extended-form.js DELETED
@@ -1,171 +0,0 @@
1
- (function($){
2
-
3
- if(typeof acf === 'undefined')
4
- return;
5
-
6
- acf.addAction('prepare', function(){
7
-
8
- if($('.acfe-form[data-hide-unload="1"]').length){
9
-
10
- acf.unload.disable();
11
-
12
- }
13
-
14
- if($('.acfe-form-success').length){
15
-
16
- if(window.history.replaceState){
17
- window.history.replaceState(null, null, window.location.href);
18
- }
19
-
20
- $('.acfe-form-success').each(function(){
21
-
22
- var form_name = $(this).data('form-name');
23
- var form_id = $(this).data('form-id');
24
-
25
- acf.doAction('acfe/form/submit/success');
26
- acf.doAction('acfe/form/submit/success/id=' + form_id);
27
- acf.doAction('acfe/form/submit/success/name=' + form_name);
28
-
29
- });
30
-
31
- }
32
-
33
- });
34
-
35
- // Datepicker: Add field class
36
- acf.addAction('new_field/type=date_picker', function(field){
37
-
38
- var $form = field.$el.closest('.acfe-form');
39
-
40
- if(!$form.length)
41
- return;
42
-
43
- var field_class = $form.data('fields-class');
44
-
45
- if(field_class)
46
- field.$inputText().addClass(field_class);
47
-
48
- });
49
-
50
- // Google Maps: Add field class
51
- acf.addAction('new_field/type=google_map', function(field){
52
-
53
- var $form = field.$el.closest('.acfe-form');
54
-
55
- if(!$form.length)
56
- return;
57
-
58
- var field_class = $form.data('fields-class');
59
-
60
- if(field_class)
61
- field.$search().addClass(field_class);
62
-
63
- });
64
-
65
- // Error: Move error
66
- acf.addAction('invalid_field', function(field){
67
-
68
- var $form = field.$el.closest('.acfe-form');
69
-
70
- if(!$form.length)
71
- return;
72
-
73
- var errors_position = $form.data('errors-position');
74
- var errors_class = $form.data('errors-class');
75
-
76
- // Class
77
- if(errors_class && errors_class.length){
78
-
79
- field.$el.find('.acf-notice.-error').addClass(errors_class);
80
-
81
- }
82
-
83
- // Move below
84
- if(errors_position && errors_position === 'below'){
85
-
86
- if(field.$control().length){
87
-
88
- field.$el.find('.acf-notice.-error').insertAfter(field.$control());
89
-
90
- }else if(field.$input().length){
91
-
92
- field.$el.find('.acf-notice.-error').insertAfter(field.$input());
93
-
94
- }
95
-
96
- var $selector = false;
97
-
98
- if(field.$control().length){
99
-
100
- $selector = field.$control();
101
-
102
- }else if(field.$input().length){
103
-
104
- $selector = field.$input();
105
-
106
- }
107
-
108
- if($selector)
109
- field.$el.find('.acf-notice.-error').insertAfter($selector);
110
-
111
- }
112
-
113
- // Group errors
114
- else if(errors_position && errors_position === 'group'){
115
-
116
- var label = field.$el.find('.acf-label label').text().trim();
117
- var placeholder = field.$el.find('.acf-input-wrap [placeholder!=""]').attr('placeholder');
118
- var message = field.$el.find('.acf-notice.-error').text().trim();
119
-
120
- field.$el.find('.acf-notice.-error').remove();
121
-
122
- // Try label
123
- if(label && label.length && label !== '*'){
124
-
125
- message = label + ': ' + message;
126
-
127
- }
128
-
129
- // Try placeholder
130
- else if(placeholder && placeholder.length && placeholder !== ''){
131
-
132
- message = placeholder + ': ' + message;
133
-
134
- }
135
-
136
- // If everything fails, use field name
137
- else{
138
-
139
- message = field.get('name') + ': ' + message;
140
-
141
- }
142
-
143
- var $form_error = $form.find('> .acfe-form-error')
144
-
145
- if(!$form_error.length)
146
- $form_error = $('<div class="acf-notice -error acf-error-message acfe-form-error" />').prependTo($form);
147
-
148
- $form_error.append('<p>' + message + '</p>');
149
-
150
- }
151
-
152
- // Hide errors
153
- else if(errors_position && errors_position === 'hide'){
154
-
155
- field.$el.find('.acf-notice.-error').remove();
156
-
157
- }
158
-
159
- });
160
-
161
- // Remove error message on validation
162
- acf.addAction('validation_begin', function($form){
163
-
164
- if(typeof $form === 'undefined')
165
- return;
166
-
167
- $form.find('.acf-error-message').remove();
168
-
169
- });
170
-
171
- })(jQuery);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/acf-extended-modal.css DELETED
@@ -1,607 +0,0 @@
1
- /*
2
- * ACFE Modal Body
3
- */
4
- body.acfe-modal-opened{
5
- overflow:hidden;
6
- }
7
-
8
- /*
9
- * ACFE Modal Overlay
10
- */
11
- .acfe-modal-overlay{
12
- background:rgba(0,0,0,.7);
13
- position:fixed;
14
- top:0;
15
- left:0;
16
- right:0;
17
- bottom:0;
18
- height:100%;
19
- width:100%;
20
- z-index:100000;
21
- }
22
-
23
- /*
24
- * ACFE Modal
25
- */
26
- .acfe-modal{
27
- display:none;
28
- -webkit-transition: all 0.3s ease-in-out;
29
- -o-transition: all 0.3s ease-in-out;
30
- transition: all 0.3s ease-in-out;
31
- }
32
-
33
- .acfe-modal.-open{
34
- position:fixed;
35
- z-index:100001;
36
- height:100%;
37
- width:100%;
38
- top:0;
39
- left:0;
40
- bottom:0;
41
- right:0;
42
- -webkit-font-smoothing: subpixel-antialiased;
43
-
44
- display: -webkit-box;
45
- display: -ms-flexbox;
46
- display: flex;
47
- -webkit-box-orient: vertical;
48
- -webkit-box-direction: normal;
49
- -ms-flex-direction: column;
50
- flex-direction: column;
51
- -webkit-box-pack: center;
52
- -ms-flex-pack: center;
53
- justify-content: center;
54
- -webkit-box-align: center;
55
- -ms-flex-align: center;
56
- align-items: center;
57
-
58
- pointer-events:none;
59
- }
60
-
61
- /*
62
- * ACFE Modal: Wrapper
63
- */
64
- .acfe-modal.-open > .acfe-modal-wrapper{
65
- box-shadow: 0 5px 15px rgba(0, 0, 0, 0.7);
66
- display: -webkit-box;
67
- display: -ms-flexbox;
68
- display: flex;
69
- -webkit-box-orient: vertical;
70
- -webkit-box-direction: normal;
71
- -ms-flex-direction: column;
72
- flex-direction: column;
73
-
74
- width: calc(100vw - 60px);
75
- max-width:1100px;
76
- max-height: calc(100vh - 60px);
77
- position:relative;
78
- }
79
-
80
- .acfe-modal.-open.acfe-modal-sub > .acfe-modal-wrapper > .acfe-modal-wrapper-overlay{
81
- position:absolute;
82
- z-index:10;
83
- background:rgba(0,0,0,0.7);
84
- height:100%;
85
- width:100%;
86
- pointer-events:none;
87
- }
88
-
89
- /*
90
- * ACFE Modal: Sizes
91
- */
92
- .acfe-modal.-open.-small > .acfe-modal-wrapper{
93
- max-width:450px;
94
- }
95
-
96
- .acfe-modal.-open.-medium > .acfe-modal-wrapper{
97
- max-width:700px;
98
- }
99
-
100
- .acfe-modal.-open.-large > .acfe-modal-wrapper{
101
- max-width:1100px;
102
- }
103
-
104
- .acfe-modal.-open.-xlarge > .acfe-modal-wrapper{
105
- max-width:1400px;
106
- }
107
-
108
- .acfe-modal.-open.-full > .acfe-modal-wrapper{
109
- max-width:100%;
110
- -webkit-box-flex: 1;
111
- -ms-flex: 1;
112
- flex: 1;
113
- }
114
-
115
- /*
116
- * ACFE Modal Full: Fix left fields background
117
- */
118
- .acfe-modal.-open.-full > .acfe-modal-wrapper > .acfe-modal-content > .acf-fields.-left {
119
- height:100%;
120
- }
121
-
122
- .acfe-modal.-open.-full > .acfe-modal-wrapper > .acfe-modal-content > .acf-fields.-left:before {
123
- content: "";
124
- display: block;
125
- position: absolute;
126
- z-index: 0;
127
- background: #F9F9F9;
128
- border-color: #E1E1E1;
129
- border-style: solid;
130
- border-width: 0 1px 0 0;
131
- top: 0;
132
- bottom: 0;
133
- left: 0;
134
- width: 20%;
135
- }
136
-
137
- /*
138
- * ACFE Modal Full: Fix Layout Settings background
139
- */
140
- .acfe-modal.-settings.-open.-full > .acfe-modal-wrapper > .acfe-modal-content > .acf-fields,
141
- .acfe-modal.-settings.-open.-full > .acfe-modal-wrapper > .acfe-modal-content > .acf-fields > .acf-field-clone,
142
- .acfe-modal.-settings.-open.-full > .acfe-modal-wrapper > .acfe-modal-content > .acf-fields > .acf-field-clone > .acf-input,
143
- .acfe-modal.-settings.-open.-full > .acfe-modal-wrapper > .acfe-modal-content > .acf-fields > .acf-field-clone > .acf-input > .acf-clone-fields.acf-fields.-left{
144
- height:100%;
145
- }
146
-
147
- .acfe-modal.-settings.-open.-full > .acfe-modal-wrapper > .acfe-modal-content > .acf-fields > .acf-field-clone{
148
- padding:0;
149
- }
150
-
151
- .acfe-modal.-settings.-open.-full > .acfe-modal-wrapper > .acfe-modal-content > .acf-fields > .acf-field-clone > .acf-input{
152
- margin:0;
153
- }
154
-
155
- .acfe-modal.-settings.-open.-full > .acfe-modal-wrapper > .acfe-modal-content > .acf-fields > .acf-field-clone > .acf-input > .acf-clone-fields.acf-fields.-left:before {
156
- content: "";
157
- display: block;
158
- position: absolute;
159
- z-index: 0;
160
- background: #F9F9F9;
161
- border-color: #E1E1E1;
162
- border-style: solid;
163
- border-width: 0 1px 0 0;
164
- top: 0;
165
- bottom: 0;
166
- left: 0;
167
- width: 20%;
168
- }
169
-
170
- /*
171
- * ACFE Modal Title
172
- */
173
- .acfe-modal.-open >.acfe-modal-title,
174
- .acfe-modal.-open .acfe-modal-title *{
175
- -webkit-box-sizing:border-box;
176
- box-sizing:border-box;
177
- }
178
-
179
- .acfe-modal.-open .acfe-modal-title{
180
- display:block;
181
- height: 50px;
182
- line-height: 50px;
183
- font-size: 22px;
184
- color: #23282d;
185
- border-bottom: 1px solid #ddd;
186
- text-overflow: ellipsis;
187
- background: #fcfcfc;
188
- padding: 0 0 0 16px;
189
- position:relative;
190
- text-align:left;
191
- pointer-events: auto;
192
- }
193
-
194
- .acfe-modal.-open.acfe-modal-sub > .acfe-modal-wrapper > .acfe-modal-title{
195
- pointer-events: none;
196
- }
197
-
198
- .acfe-modal.-open .acfe-modal-title > span.title{
199
- line-height: 50px;
200
- color: #23282d;
201
- font-weight: 600;
202
- }
203
-
204
- .acfe-modal.-open .acfe-modal-title > span.title .acf-fc-layout-order{
205
- width: 30px;
206
- height: 30px;
207
- border-radius: 30px;
208
- display: inline-block;
209
- text-align: center;
210
- line-height: 30px;
211
- margin: 0 2px 0 0;
212
- background: #F1F1F1;
213
- font-size: 14px;
214
- color: #666;
215
- vertical-align: 2px;
216
- }
217
-
218
- .acfe-modal.-open .acfe-modal-title > button.close{
219
- height: 50px;
220
- width: 50px;
221
- color: #666;
222
- border:0;
223
- border-left: 0;
224
- margin: 0;
225
- padding:0;
226
- border-radius: 0;
227
- position: absolute;
228
- top:0;
229
- right:0;
230
- transition: color .1s ease-in-out, background .1s ease-in-out;
231
- background:none;
232
- cursor:pointer;
233
- margin: 0;
234
- }
235
-
236
- .acfe-modal.-open .acfe-modal-title > button.close:hover{
237
- color: #00a0d2;
238
- }
239
-
240
- .acfe-modal.-open .acfe-modal-title > button.close:before{
241
- height: 50px;
242
- width: 50px;
243
- line-height: 50px !important;
244
- font: normal 20px/1 dashicons;
245
- content: "\f158";
246
- margin: 0;
247
- padding:0;
248
- }
249
-
250
- /*
251
- * ACFE Modal Content
252
- */
253
- .acfe-modal.-open .acfe-modal-content{
254
- height:100%;
255
- background:#fff;
256
- display:block;
257
- position:relative;
258
- pointer-events: auto;
259
- overflow:auto;
260
- }
261
-
262
- .acfe-modal.-open.-iframe .acfe-modal-content{
263
- overflow:hidden;
264
- }
265
-
266
- .acfe-modal.-open.acfe-modal-sub > .acfe-modal-wrapper > .acfe-modal-content{
267
- pointer-events: none;
268
- }
269
-
270
- /*
271
- * ACFE Modal Content: Tabs
272
- */
273
- .acfe-modal.-open .acfe-modal-content .nav-tab-wrapper{
274
- padding:0;
275
- margin:0;
276
- border-bottom:1px solid #ddd;
277
- }
278
-
279
- .acfe-modal.-open .acfe-modal-content .nav-tab-wrapper a{
280
- margin:0;
281
- border-left:0;
282
- border-top:0;
283
- border-bottom:0;
284
- background:#fff;
285
- transition:color .1s ease-in-out, background .1s ease-in-out;
286
- padding:7px 15px;
287
- border-color:#ddd;
288
- }
289
-
290
- .acfe-modal.-open .acfe-modal-content .nav-tab-wrapper a span.dashicons-menu{
291
- line-height:27px;
292
- }
293
-
294
- .acfe-modal.-open > .acfe-modal-content .nav-tab-wrapper a:hover{
295
- background:#f9f9f9;
296
- color:#23282d;
297
- }
298
-
299
- .acfe-modal.-open .acfe-modal-content .nav-tab-wrapper a.nav-tab-active,
300
- .acfe-modal.-open .acfe-modal-content .nav-tab-wrapper a.nav-tab-active:hover{
301
- background:#fcfcfc;
302
- color:#23282d;
303
- }
304
-
305
- .acfe-modal.-open .acfe-modal-content .nav-tab:focus,
306
- .acfe-modal.-open .acfe-modal-content .nav-tab:focus:active {
307
- border-bottom: 0;
308
- box-shadow: none;
309
- outline:0;
310
- }
311
-
312
- /*
313
- * ACFE Modal Content: Flex
314
- */
315
- .acfe-modal.-open .acfe-modal-content .acfe-flex-container,
316
- .acfe-modal.-open .acfe-modal-content .acfe-flex-container *{
317
- -webkit-box-sizing:border-box;
318
- box-sizing:border-box;
319
- }
320
-
321
- .acfe-modal.-open .acfe-modal-content .acfe-flex-container{
322
- width: 100%;
323
- padding: 14px;
324
- margin-right: auto;
325
- margin-left: auto;
326
- }
327
-
328
- .acfe-modal.-open .acfe-modal-content .acfe-flexible-categories ~ .acfe-flex-container{
329
- overflow:auto;
330
- height:calc(100% - 39px);
331
- }
332
-
333
- .acfe-modal.-open .acfe-modal-content .acfe-flex-container ul{
334
- margin: 0;
335
- margin-right: -7px;
336
- margin-left: -7px;
337
-
338
- display: -webkit-box;
339
- display: -ms-flexbox;
340
- display: flex;
341
- -ms-flex-wrap: wrap;
342
- flex-wrap: wrap;
343
- }
344
-
345
- .acfe-modal.-open >.acfe-modal-content .acfe-flex-container ul:after{
346
- content:"";
347
- clear:both;
348
- display:table;
349
- }
350
-
351
- .acfe-modal.-open .acfe-modal-content .acfe-flex-container ul li{
352
- position: relative;
353
- width: 100%;
354
- padding-right: 7px;
355
- padding-left: 7px;
356
- padding-bottom: 14px;
357
- margin:0;
358
-
359
- -webkit-box-flex: 0;
360
- -ms-flex: 0 0 25%;
361
- flex: 0 0 25%;
362
- max-width: 25%;
363
- }
364
-
365
- .acfe-modal.-open .acfe-modal-content .acfe-flex-container ul li a{
366
- border:1px solid #ddd;
367
- background:#F9F9F9;
368
- padding:15px;
369
- color:#333;
370
- display:block;
371
- text-decoration:none;
372
- }
373
-
374
- .acfe-modal.-open .acfe-modal-content .acfe-flex-container ul li a:hover{
375
- background:#007cba;
376
- color:#fff;
377
- }
378
-
379
- body:not(.acf-admin-5-3) .acfe-modal.-open .acfe-modal-content .acfe-flex-container ul li a:hover{
380
- background:#0073aa;
381
- }
382
-
383
- .acfe-modal.-open .acfe-modal-content .acfe-flex-container ul li a span{
384
- display:block;
385
- font-size:16px;
386
- text-align:center;
387
- font-weight:600;
388
- }
389
-
390
- .acfe-modal.-open .acfe-modal-content .acfe-flex-container ul li a span.no-thumbnail{
391
- text-align:left;
392
- }
393
-
394
- .acfe-modal.-open .acfe-modal-content .acfe-flex-container ul li a.disabled{
395
- pointer-events:none;
396
- opacity:0.67;
397
- }
398
-
399
- .acfe-modal.-open .acfe-modal-content .acfe-flex-container ul li a.disabled:hover{
400
- cursor:default;
401
- }
402
-
403
- .acfe-modal.-open .acfe-modal-content .acfe-flex-container ul li a.disabled:focus{
404
- box-shadow:none;
405
- outline:none;
406
- }
407
-
408
- .acfe-modal.-open .acfe-modal-content .acfe-flex-container.acfe-col-1 ul li{
409
- -ms-flex: 0 0 100%;
410
- flex: 0 0 100%;
411
- max-width: 100%;
412
- }
413
-
414
- .acfe-modal.-open .acfe-modal-content .acfe-flex-container.acfe-col-2 ul li{
415
- -ms-flex: 0 0 50%;
416
- flex: 0 0 50%;
417
- max-width: 50%;
418
- }
419
-
420
- .acfe-modal.-open .acfe-modal-content .acfe-flex-container.acfe-col-3 ul li{
421
- -ms-flex: 0 0 33.333333%;
422
- flex: 0 0 33.333333%;
423
- max-width: 33.333333%;
424
- }
425
-
426
- .acfe-modal.-open .acfe-modal-content .acfe-flex-container.acfe-col-4 ul li{
427
- -ms-flex: 0 0 25%;
428
- flex: 0 0 25%;
429
- max-width: 25%;
430
- }
431
-
432
- .acfe-modal.-open .acfe-modal-content .acfe-flex-container.acfe-col-5 ul li{
433
- -ms-flex: 0 0 20%;
434
- flex: 0 0 20%;
435
- max-width: 20%;
436
- }
437
-
438
- .acfe-modal.-open .acfe-modal-content .acfe-flex-container.acfe-col-6 ul li{
439
- -ms-flex: 0 0 16.66%;
440
- flex: 0 0 16.66%;
441
- max-width: 16.66%;
442
- }
443
-
444
- @media only screen and (max-width:960px){
445
- .acfe-modal.-open .acfe-modal-content .acfe-flex-container ul li{
446
- -ms-flex: 0 0 50% !important;
447
- flex: 0 0 50% !important;
448
- max-width: 50% !important;
449
- }
450
-
451
- .acfe-modal.-open .acfe-modal-content .acfe-flex-container.acfe-col-1 ul li{
452
- -ms-flex: 0 0 100% !important;
453
- flex: 0 0 100% !important;
454
- max-width: 100% !important;
455
- }
456
-
457
- .acfe-modal.-open .acfe-modal-content ul li a{
458
- padding:7px;
459
- }
460
- }
461
-
462
- @media only screen and (max-width:720px){
463
- .acfe-modal.-open .acfe-modal-content .acfe-flex-container ul li{
464
- -ms-flex: 0 0 100% !important;
465
- flex: 0 0 100% !important;
466
- max-width: 100% !important;
467
- }
468
-
469
- .acfe-modal.-open .acfe-modal-content .acfe-flex-container.acfe-col-1 ul li{
470
- -ms-flex: 0 0 100% !important;
471
- flex: 0 0 100% !important;
472
- max-width: 100% !important;
473
- }
474
- }
475
-
476
- /*
477
- * ACFE Modal footer
478
- */
479
- .acfe-modal.-open .acfe-modal-footer,
480
- .acfe-modal.-open .acfe-modal-footer *{
481
- -webkit-box-sizing:border-box;
482
- box-sizing:border-box;
483
- }
484
-
485
- .acfe-modal.-open .acfe-modal-footer{
486
- display:block;
487
- height: 50px;
488
- line-height: 50px;
489
- color: #23282d;
490
- background: #fcfcfc;
491
- padding: 0 16px;
492
- position:relative;
493
- text-align:right;
494
- border-top: 1px solid #ddd;
495
- pointer-events: auto;
496
- }
497
-
498
- .acfe-modal.-open.acfe-modal-sub > .acfe-modal-wrapper > .acfe-modal-footer{
499
- pointer-events: none;
500
- }
501
-
502
- .acfe-modal.-open .acfe-modal-footer > button{
503
- vertical-align: baseline;
504
- }
505
-
506
- /*
507
- * ACFE Modal: Gutenberg Fix
508
- */
509
- body.block-editor-page .edit-post-layout .acfe-modal.-open{
510
- -webkit-box-pack: start;
511
- -ms-flex-pack: start;
512
- justify-content: start;
513
- -webkit-box-align: start;
514
- -ms-flex-align: start;
515
- align-items: start;
516
- }
517
-
518
- body.block-editor-page .edit-post-layout .acfe-modal.-open > .acfe-modal-wrapper{
519
- margin-top: 88px;
520
- height: 100%;
521
- width: 100%;
522
- max-height: calc(100vh - 88px);
523
- }
524
-
525
- body.block-editor-page .edit-post-layout .acfe-modal.-open > .acfe-modal-wrapper > .acfe-modal-content > .acf-fields.-left {
526
- height:100%;
527
- }
528
-
529
- body.block-editor-page .edit-post-layout .acfe-modal.-open > .acfe-modal-wrapper > .acfe-modal-content > .acf-fields.-left:before {
530
- content: "";
531
- display: block;
532
- position: absolute;
533
- z-index: 0;
534
- background: #F9F9F9;
535
- border-color: #E1E1E1;
536
- border-style: solid;
537
- border-width: 0 1px 0 0;
538
- top: 0;
539
- bottom: 0;
540
- left: 0;
541
- width: 20%;
542
- }
543
-
544
- @media only screen and (max-width: 1080px) {
545
- body.block-editor-page .edit-post-layout .acfe-modal.-open > .acfe-modal-wrapper{
546
- margin-top: 88px;
547
- }
548
- }
549
-
550
- body.block-editor-page .edit-post-layout .acfe-modal.-open > .acfe-modal-wrapper{
551
- max-width: calc(100vw - 160px);
552
- margin-left: 160px;
553
- }
554
-
555
- body.block-editor-page .edit-post-layout.is-sidebar-opened .acfe-modal.-open > .acfe-modal-wrapper{
556
- max-width: calc(100vw - 440px);
557
- }
558
-
559
-
560
- body.block-editor-page.folded .edit-post-layout .acfe-modal.-open > .acfe-modal-wrapper{
561
- max-width: calc(100vw - 36px);
562
- margin-left:36px;
563
- }
564
-
565
- @media only screen and (max-width: 960px) {
566
- body.block-editor-page.auto-fold .edit-post-layout .acfe-modal.-open > .acfe-modal-wrapper{
567
- max-width: calc(100vw - 36px);
568
- margin-left:36px;
569
- }
570
- }
571
-
572
- @media only screen and (max-width: 782px) {
573
- body.block-editor-page.auto-fold .edit-post-layout .acfe-modal.-open > .acfe-modal-wrapper{
574
- max-width: 100vw;
575
- margin-left:0;
576
- margin-top: 100px;
577
- }
578
- }
579
-
580
- body.block-editor-page.folded .edit-post-layout.is-sidebar-opened .acfe-modal.-open > .acfe-modal-wrapper{
581
- max-width: calc(100vw - 316px);
582
- }
583
-
584
- @media (min-width: 600px){
585
- body.block-editor-page.acfe-modal-opened .edit-post-layout__content {
586
- overflow-y: hidden;
587
- }
588
- }
589
-
590
- body.block-editor-page .acfe-modal-overlay{
591
- display:none;
592
- }
593
-
594
- /*
595
- * ACFE Modal: Attachment Single Fix
596
- */
597
- body.wp-admin.upload-php.acfe-modal-opened > div:not([style*="display: none;"]) > .media-modal.wp-core-ui:not(.acf-media-modal):before{
598
- content:"";
599
- display:block;
600
- position:absolute;
601
- background:rgba(0,0,0,.7);
602
- top:0;
603
- left:0;
604
- width:100%;
605
- height:100%;
606
- z-index:10000;
607
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/acf-extended-repeater.css DELETED
@@ -1,83 +0,0 @@
1
- /*
2
- * ACF Field: Repeater Lock
3
- */
4
- .acf-field-repeater[data-acfe-repeater-lock="1"] > .acf-input > .acf-repeater > .acf-table > tbody > .acf-row > .acf-row-handle{
5
- cursor:initial;
6
- }
7
-
8
- /*
9
- * ACF Field: Repeater Block Fix (Add spacing)
10
- */
11
- .acf-repeater.-row > table,
12
- .acf-repeater.-block > table{
13
- border-collapse: separate;
14
- border-spacing: 0 15px;
15
- background: none;
16
- border: 0;
17
- margin-top: -15px;
18
- margin-bottom: -7px;
19
- }
20
-
21
- .acf-repeater.-row > table > *,
22
- .acf-repeater.-block > table > *{
23
- border-collapse: collapse;
24
- border-spacing: 0;
25
- }
26
-
27
- .acf-repeater.-row > table > tbody > tr > td,
28
- .acf-repeater.-block > table > tbody > tr > td{
29
- border-top: 1px solid #ccd0d4 !important;
30
- border-bottom: 1px solid #ccd0d4 !important;
31
- }
32
-
33
- .acf-repeater.-row > table > tbody > tr > td:first-of-type,
34
- .acf-repeater.-block > table > tbody > tr > td:first-of-type{
35
- border-left: 1px solid #ccd0d4 !important;
36
- }
37
-
38
- .acf-repeater.-row > table > tbody > tr > td:last-of-type,
39
- .acf-repeater.-block > table > tbody > tr > td:last-of-type{
40
- border-right: 1px solid #ccd0d4 !important;
41
- }
42
-
43
- body:not(.acf-admin-5-3) .acf-repeater.-row > table > tbody > tr > td,
44
- body:not(.acf-admin-5-3) .acf-repeater.-block > table > tbody > tr > td{
45
- border-top: 1px solid #E1E1E1;
46
- border-bottom: 1px solid #E1E1E1;
47
- }
48
-
49
- body:not(.acf-admin-5-3) .acf-repeater.-row > table > tbody > tr > td:first-of-type,
50
- body:not(.acf-admin-5-3) .acf-repeater.-block > table > tbody > tr > td:first-of-type{
51
- border-left: 1px solid #E1E1E1;
52
- }
53
-
54
- body:not(.acf-admin-5-3) .acf-repeater.-row > table > tbody > tr > td:last-of-type,
55
- body:not(.acf-admin-5-3) .acf-repeater.-block > table > tbody > tr > td:last-of-type{
56
- border-right: 1px solid #E1E1E1;
57
- }
58
-
59
- /*
60
- * ACF Field: Repeater Table Fix (Remove headings when empty)
61
- */
62
- .acf-repeater.-table.-empty > .acf-table{
63
- display:none;
64
- }
65
-
66
- /*
67
- * ACF Field: Repeater Add Row
68
- */
69
- .acf-field-repeater > .acf-input > .acf-repeater > .acfe-repeater-stylised-button{
70
- padding: 40px 20px;
71
- border: #ccc dashed 2px;
72
- text-align: center;
73
- }
74
-
75
- .acf-field-repeater > .acf-input > .acf-repeater > .acfe-repeater-stylised-button > .acf-actions{
76
- text-align: center;
77
- }
78
-
79
- .acf-field-flexible-content > .acf-input > .acf-repeater .acf-actions .acf-button .dashicons{
80
- width: auto;
81
- height: auto;
82
- vertical-align: text-top;
83
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/acf-extended-repeater.js DELETED
@@ -1,59 +0,0 @@
1
- (function($){
2
-
3
- if(typeof acf === 'undefined')
4
- return;
5
-
6
- /*
7
- * Init
8
- */
9
- var repeater = acf.getFieldType('repeater');
10
- var model = repeater.prototype;
11
-
12
- // Repeater: Lock Layouts
13
- model.acfeOnHover = function(){
14
-
15
- var repeater = this;
16
-
17
- // remove event
18
- repeater.off('mouseover');
19
-
20
- }
21
-
22
- /*
23
- * Spawn
24
- */
25
- acf.addAction('new_field/type=repeater', function(repeater){
26
-
27
- // ACFE: Lock
28
- if(repeater.has('acfeRepeaterLock')){
29
-
30
- repeater.removeEvents({'mouseover': 'onHover'});
31
-
32
- repeater.addEvents({'mouseover': 'acfeOnHover'});
33
-
34
- }
35
-
36
- // ACFE: Remove Actions
37
- if(repeater.has('acfeRepeaterRemoveActions')){
38
-
39
- repeater.$actions().remove();
40
-
41
- repeater.$el.find('thead:first > tr > th.acf-row-handle:last').remove();
42
- repeater.$rows().find('> .acf-row-handle:last').remove();
43
-
44
- repeater.$control().find('> .acfe-repeater-stylised-button').remove();
45
-
46
-
47
- }
48
-
49
- // ACFE: Stylised button
50
- if(repeater.has('acfeRepeaterStylisedButton')){
51
-
52
- repeater.$button().removeClass('button-primary');
53
- repeater.$actions().wrap('<div class="acfe-repeater-stylised-button" />');
54
-
55
- }
56
-
57
- });
58
-
59
- })(jQuery);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/acf-extended-ui.css CHANGED
@@ -1,457 +1,457 @@
1
- /*
2
- * ACFE: UI Enhanced
3
- */
4
- .term-php .wrap > form,
5
- .profile-php .wrap > form,
6
- .user-edit-php .wrap > form,
7
- .user-new-php .wrap > form,
8
- .options-general-php .wrap > form,
9
- .options-writing-php .wrap > form,
10
- .options-reading-php .wrap > form,
11
- .options-discussion-php .wrap > form,
12
- .options-media-php .wrap > form,
13
- .options-permalink-php .wrap > form
14
- {
15
- max-width:100% !important;
16
- width: 100%;
17
- float:left;
18
- }
19
-
20
- .term-php .wrap > form > div > div > h2,
21
- .profile-php .wrap > form > div > div > h2,
22
- .user-edit-php .wrap > form > div > div > h2,
23
- .user-new-php .wrap > form > div > div > h2,
24
- .options-general-php .wrap > form > div > div > h2,
25
- .options-writing-php .wrap > form > div > div > h2,
26
- .options-reading-php .wrap > form > div > div > h2,
27
- .options-discussion-php .wrap > form > div > div > h2,
28
- .options-media-php .wrap > form > div > div > h2,
29
- .options-permalink-php .wrap > form > div > div > h2
30
- {
31
- background:#fff;
32
- border: 1px solid #ccd0d4;
33
- border-bottom: 0;
34
- margin:0;
35
- color: #23282d;
36
- font-size: 14px;
37
- padding: 8px 12px;
38
- line-height: 1.4;
39
- }
40
-
41
- .term-php .wrap > form > div > div > h2 + p,
42
- .profile-php .wrap > form > div > div > h2 + p,
43
- .user-edit-php .wrap > form > div > div > h2 + p,
44
- .user-new-php .wrap > form > div > div > h2 + p,
45
- .options-general-php .wrap > form > div > div > h2 + p,
46
- .options-writing-php .wrap > form > div > div > h2 + p,
47
- .options-reading-php .wrap > form > div > div > h2 + p,
48
- .options-discussion-php .wrap > form > div > div > h2 + p,
49
- .options-media-php .wrap > form > div > div > h2 + p,
50
- .options-permalink-php .wrap > form > div > div > h2 + p
51
- {
52
- margin:0;
53
- border: 1px solid #ccd0d4;
54
- border-bottom:0;
55
- padding:15px 12px;
56
- }
57
-
58
- .term-php .wrap > form > div > div > h2 + .form-table,
59
- .term-php .wrap > form > div > div > h2 + p + .form-table,
60
-
61
- .profile-php .wrap > form > div > div > h2 + .form-table,
62
- .profile-php .wrap > form > div > div > h2 + p + .form-table,
63
-
64
- .user-edit-php .wrap > form > div > div > h2 + .form-table,
65
- .user-edit-php .wrap > form > div > div > h2 + p + .form-table,
66
-
67
- .user-new-php .wrap > form > div > div > h2 + .form-table,
68
- .user-new-php .wrap > form > div > div > h2 + p + .form-table,
69
-
70
- .options-general-php .wrap > form > div > div > h2 + .form-table,
71
- .options-general-php .wrap > form > div > div > h2 + p + .form-table,
72
-
73
- .options-writing-php .wrap > form > div > div > h2 + .form-table,
74
- .options-writing-php .wrap > form > div > div > h2 + p + .form-table,
75
-
76
- .options-reading-php .wrap > form > div > div > h2 + .form-table,
77
- .options-reading-php .wrap > form > div > div > h2 + p + .form-table,
78
-
79
- .options-discussion-php .wrap > form > div > div > h2 + .form-table,
80
- .options-discussion-php .wrap > form > div > div > h2 + p + .form-table,
81
-
82
- .options-media-php .wrap > form > div > div > h2 + .form-table,
83
- .options-media-php .wrap > form > div > div > h2 + p + .form-table,
84
-
85
- .options-permalink-php .wrap > form > div > div > h2 + .form-table,
86
- .options-permalink-php .wrap > form > div > div > h2 + p + .form-table
87
- {
88
- margin-top:0;
89
- }
90
-
91
- .term-php .wrap > form .form-table,
92
- .profile-php .wrap > form .form-table,
93
- .user-edit-php .wrap > form .form-table,
94
- .user-new-php .wrap > form .form-table,
95
- .options-general-php .wrap > form .form-table,
96
- .options-writing-php .wrap > form .form-table,
97
- .options-reading-php .wrap > form .form-table,
98
- .options-discussion-php .wrap > form .form-table,
99
- .options-media-php .wrap > form .form-table,
100
- .options-permalink-php .wrap > form .form-table
101
- {
102
- background:#fff;
103
- width:100%;
104
- border: 1px solid #ccd0d4;
105
- box-shadow: 0 1px 1px rgba(0,0,0,.04);
106
- margin-bottom: 20px; /* Fix for Yoast & Rank Math Metaboxes below the term */
107
- }
108
-
109
- .term-php .wrap > form .form-table > tbody > tr > td,
110
- .profile-php .wrap > form .form-table > tbody > tr > td,
111
- .user-edit-php .wrap > form .form-table > tbody > tr > td,
112
- .user-new-php .wrap > form .form-table > tbody > tr > td,
113
- .options-general-php .wrap > form .form-table > tbody > tr > td,
114
- .options-writing-php .wrap > form .form-table > tbody > tr > td,
115
- .options-reading-php .wrap > form .form-table > tbody > tr > td,
116
- .options-discussion-php .wrap > form .form-table > tbody > tr > td,
117
- .options-media-php .wrap > form .form-table > tbody > tr > td,
118
- .options-permalink-php .wrap > form .form-table > tbody > tr > td
119
- {
120
- background: #fff;
121
- border-top: 1px solid #E1E1E1;
122
- position:initial;
123
- }
124
-
125
- .term-php .wrap > form .form-table > tbody > tr:first-of-type > td,
126
- .term-php .wrap > form .form-table > tbody > tr:first-of-type > th,
127
-
128
- .profile-php .wrap > form .form-table > tbody > tr:first-of-type > td,
129
- .profile-php .wrap > form .form-table > tbody > tr:first-of-type > th,
130
-
131
- .user-edit-php .wrap > form .form-table > tbody > tr:first-of-type > td,
132
- .user-edit-php .wrap > form .form-table > tbody > tr:first-of-type > th,
133
-
134
- .user-new-php .wrap > form .form-table > tbody > tr:first-of-type > td,
135
- .user-new-php .wrap > form .form-table > tbody > tr:first-of-type > th,
136
-
137
- .options-general-php .wrap > form .form-table > tbody > tr:first-of-type > td,
138
- .options-general-php .wrap > form .form-table > tbody > tr:first-of-type > th,
139
-
140
- .options-writing-php .wrap > form .form-table > tbody > tr:first-of-type > td,
141
- .options-writing-php .wrap > form .form-table > tbody > tr:first-of-type > th,
142
-
143
- .options-reading-php .wrap > form .form-table > tbody > tr:first-of-type > td,
144
- .options-reading-php .wrap > form .form-table > tbody > tr:first-of-type > th,
145
-
146
- .options-discussion-php .wrap > form .form-table > tbody > tr:first-of-type > td,
147
- .options-discussion-php .wrap > form .form-table > tbody > tr:first-of-type > th,
148
-
149
- .options-media-php .wrap > form .form-table > tbody > tr:first-of-type > td,
150
- .options-media-php .wrap > form .form-table > tbody > tr:first-of-type > th,
151
-
152
- .options-permalink-php .wrap > form .form-table > tbody > tr:first-of-type > td,
153
- .options-permalink-php .wrap > form .form-table > tbody > tr:first-of-type > th
154
- {
155
- border-top: 1px solid #ccd0d4;
156
- }
157
-
158
- .term-php .wrap > form .form-table > tbody > tr > td p,
159
- .profile-php .wrap > form .form-table > tbody > tr > td p,
160
- .user-edit-php .wrap > form .form-table > tbody > tr > td p,
161
- .user-new-php .wrap > form .form-table > tbody > tr > td p,
162
- .options-general-php .wrap > form .form-table > tbody > tr > td p,
163
- .options-writing-php .wrap > form .form-table > tbody > tr > td p,
164
- .options-reading-php .wrap > form .form-table > tbody > tr > td p,
165
- .options-discussion-php .wrap > form .form-table > tbody > tr > td p,
166
- .options-media-php .wrap > form .form-table > tbody > tr > td p,
167
- .options-permalink-php .wrap > form .form-table > tbody > tr > td p
168
- {
169
- font-size:13px;
170
- }
171
-
172
- .term-php .wrap > form .form-table > tbody > tr > th,
173
- .term-php .wrap > form .form-table > tbody > tr > td.acf-label,
174
-
175
- .profile-php .wrap > form .form-table > tbody > tr > th,
176
- .profile-php .wrap > form .form-table > tbody > tr > td.acf-label,
177
-
178
- .user-edit-php .wrap > form .form-table > tbody > tr > th,
179
- .user-edit-php .wrap > form .form-table > tbody > tr > td.acf-label,
180
-
181
- .user-new-php .wrap > form .form-table > tbody > tr > th,
182
- .user-new-php .wrap > form .form-table > tbody > tr > td.acf-label,
183
-
184
- .options-general-php .wrap > form .form-table > tbody > tr > th,
185
- .options-general-php .wrap > form .form-table > tbody > tr > td.acf-label,
186
-
187
- .options-writing-php .wrap > form .form-table > tbody > tr > th,
188
- .options-writing-php .wrap > form .form-table > tbody > tr > td.acf-label,
189
-
190
- .options-reading-php .wrap > form .form-table > tbody > tr > th,
191
- .options-reading-php .wrap > form .form-table > tbody > tr > td.acf-label,
192
-
193
- .options-discussion-php .wrap > form .form-table > tbody > tr > th,
194
- .options-discussion-php .wrap > form .form-table > tbody > tr > td.acf-label,
195
-
196
- .options-media-php .wrap > form .form-table > tbody > tr > th,
197
- .options-media-php .wrap > form .form-table > tbody > tr > td.acf-label,
198
-
199
- .options-permalink-php .wrap > form .form-table > tbody > tr > th,
200
- .options-permalink-php .wrap > form .form-table > tbody > tr > td.acf-label
201
- {
202
- border-top: 1px solid #E1E1E1;
203
- border-right: 1px solid #E1E1E1;
204
- background: #F9F9F9;
205
- padding:15px 12px;
206
- width:20%;
207
- font-size:13px;
208
- position:initial;
209
- color:#444;
210
- }
211
-
212
- .term-php .wrap > form .form-table > tbody > tr > td.td-full,
213
- .profile-php .wrap > form .form-table > tbody > tr > td.td-full,
214
- .user-edit-php .wrap > form .form-table > tbody > tr > td.td-full,
215
- .user-new-php .wrap > form .form-table > tbody > tr > td.td-full,
216
- .options-general-php .wrap > form .form-table > tbody > tr > td.td-full,
217
- .options-writing-php .wrap > form .form-table > tbody > tr > td.td-full,
218
- .options-reading-php .wrap > form .form-table > tbody > tr > td.td-full,
219
- .options-discussion-php .wrap > form .form-table > tbody > tr > td.td-full,
220
- .options-media-php .wrap > form .form-table > tbody > tr > td.td-full,
221
- .options-permalink-php .wrap > form .form-table > tbody > tr > td.td-full
222
- {
223
- padding:15px 12px;
224
- }
225
-
226
- .term-php .wrap > form .form-table > tbody > tr.acf-field,
227
- .profile-php .wrap > form .form-table > tbody > tr.acf-field,
228
- .user-edit-php .wrap > form .form-table > tbody > tr.acf-field,
229
- .user-new-php .wrap > form .form-table > tbody > tr.acf-field,
230
- .options-general-php .wrap > form .form-table > tbody > tr.acf-field,
231
- .options-writing-php .wrap > form .form-table > tbody > tr.acf-field,
232
- .options-reading-php .wrap > form .form-table > tbody > tr.acf-field,
233
- .options-discussion-php .wrap > form .form-table > tbody > tr.acf-field,
234
- .options-media-php .wrap > form .form-table > tbody > tr.acf-field,
235
- .options-permalink-php .wrap > form .form-table > tbody > tr.acf-field
236
- {
237
- position: initial;
238
- }
239
-
240
- .term-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td,
241
- .profile-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td,
242
- .user-edit-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td,
243
- .user-new-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td,
244
- .options-general-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td,
245
- .options-writing-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td,
246
- .options-reading-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td,
247
- .options-discussion-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td,
248
- .options-media-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td,
249
- .options-permalink-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td
250
- {
251
- background: #F9F9F9;
252
- padding:15px 0 0 0;
253
- }
254
-
255
- .term-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td ul.acf-tab-group,
256
- .profile-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td ul.acf-tab-group,
257
- .user-edit-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td ul.acf-tab-group,
258
- .user-new-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td ul.acf-tab-group,
259
- .options-general-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td ul.acf-tab-group,
260
- .options-writing-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td ul.acf-tab-group,
261
- .options-reading-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td ul.acf-tab-group,
262
- .options-discussion-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td ul.acf-tab-group,
263
- .options-media-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td ul.acf-tab-group,
264
- .options-permalink-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td ul.acf-tab-group
265
- {
266
- border-bottom:0;
267
- padding:0 0 0 20%;
268
- }
269
-
270
- .term-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td ul.acf-tab-group > li.active a,
271
- .profile-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td ul.acf-tab-group > li.active a,
272
- .user-edit-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td ul.acf-tab-group > li.active a,
273
- .user-new-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td ul.acf-tab-group > li.active a,
274
- .options-general-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td ul.acf-tab-group > li.active a,
275
- .options-writing-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td ul.acf-tab-group > li.active a,
276
- .options-reading-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td ul.acf-tab-group > li.active a,
277
- .options-discussion-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td ul.acf-tab-group > li.active a,
278
- .options-media-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td ul.acf-tab-group > li.active a,
279
- .options-permalink-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td ul.acf-tab-group > li.active a
280
- {
281
- background: #fff;
282
- }
283
-
284
- .term-php .wrap > form #poststuff.acfe-acfe-bt-admin-column,
285
- .profile-php .wrap > form #poststuff.acfe-acfe-bt-admin-column,
286
- .user-edit-php .wrap > form #poststuff.acfe-acfe-bt-admin-column,
287
- .user-new-php .wrap > form #poststuff.acfe-acfe-bt-admin-column,
288
- .options-general-php .wrap > form #poststuff.acfe-acfe-bt-admin-column,
289
- .options-writing-php .wrap > form #poststuff.acfe-acfe-bt-admin-column,
290
- .options-reading-php .wrap > form #poststuff.acfe-acfe-bt-admin-column,
291
- .options-discussion-php .wrap > form #poststuff.acfe-acfe-bt-admin-column,
292
- .options-media-php .wrap > form #poststuff.acfe-acfe-bt-admin-column,
293
- .options-permalink-php .wrap > form #poststuff.acfe-acfe-bt-admin-column
294
- {
295
- min-width:auto;
296
- padding:0;
297
- }
298
-
299
- .term-php .wrap > form #poststuff.acfe-acfe-bt-admin-column .inside,
300
- .profile-php .wrap > form #poststuff.acfe-acfe-bt-admin-column .inside,
301
- .user-edit-php .wrap > form #poststuff.acfe-acfe-bt-admin-column .inside,
302
- .user-new-php .wrap > form #poststuff.acfe-acfe-bt-admin-column .inside,
303
- .options-general-php .wrap > form #poststuff.acfe-acfe-bt-admin-column .inside,
304
- .options-writing-php .wrap > form #poststuff.acfe-acfe-bt-admin-column .inside,
305
- .options-reading-php .wrap > form #poststuff.acfe-acfe-bt-admin-column .inside,
306
- .options-discussion-php .wrap > form #poststuff.acfe-acfe-bt-admin-column .inside,
307
- .options-media-php .wrap > form #poststuff.acfe-acfe-bt-admin-column .inside,
308
- .options-permalink-php .wrap > form #poststuff.acfe-acfe-bt-admin-column .inside
309
- {
310
- margin: 0;
311
- padding: 0;
312
- }
313
-
314
- /*
315
- * ACFE: UI Enhanced (Fix ACF)
316
- */
317
- .term-php .wrap .form-table > tbody>.acf-field > .acf-label label,
318
- .profile-php .wrap .form-table > tbody>.acf-field > .acf-label label,
319
- .user-edit-php .wrap .form-table > tbody>.acf-field > .acf-label label,
320
- .user-new-php .wrap .form-table > tbody>.acf-field > .acf-label label,
321
- .options-general-php .wrap .form-table > tbody>.acf-field > .acf-label label,
322
- .options-writing-php .wrap .form-table > tbody>.acf-field > .acf-label label,
323
- .options-reading-php .wrap .form-table > tbody>.acf-field > .acf-label label,
324
- .options-discussion-php .wrap .form-table > tbody>.acf-field > .acf-label label,
325
- .options-media-php .wrap .form-table > tbody>.acf-field > .acf-label label,
326
- .options-permalink-php .wrap .form-table > tbody>.acf-field > .acf-label label
327
- {
328
- font-size: 13px;
329
- color: #444;
330
- }
331
-
332
- .term-php .wrap .acf-fields.-left > .acf-field.acfe-bt-no-label,
333
- .profile-php .wrap .acf-fields.-left > .acf-field.acfe-bt-no-label,
334
- .user-edit-php .wrap .acf-fields.-left > .acf-field.acfe-bt-no-label,
335
- .user-new-php .wrap .acf-fields.-left > .acf-field.acfe-bt-no-label,
336
- .options-general-php .wrap .acf-fields.-left > .acf-field.acfe-bt-no-label,
337
- .options-writing-php .wrap .acf-fields.-left > .acf-field.acfe-bt-no-label,
338
- .options-reading-php .wrap .acf-fields.-left > .acf-field.acfe-bt-no-label,
339
- .options-discussion-php .wrap .acf-fields.-left > .acf-field.acfe-bt-no-label,
340
- .options-media-php .wrap .acf-fields.-left > .acf-field.acfe-bt-no-label,
341
- .options-permalink-php .wrap .acf-fields.-left > .acf-field.acfe-bt-no-label
342
- {
343
- padding-left: 20%;
344
- }
345
-
346
- .term-php .wrap > form .acf-fields.-left > .acf-field,
347
- .profile-php .wrap > form .acf-fields.-left > .acf-field,
348
- .user-edit-php .wrap > form .acf-fields.-left > .acf-field,
349
- .user-new-php .wrap > form .acf-fields.-left > .acf-field,
350
- .options-general-php .wrap > form .acf-fields.-left > .acf-field,
351
- .options-writing-php .wrap > form .acf-fields.-left > .acf-field,
352
- .options-reading-php .wrap > form .acf-fields.-left > .acf-field,
353
- .options-discussion-php .wrap > form .acf-fields.-left > .acf-field,
354
- .options-media-php .wrap > form .acf-fields.-left > .acf-field,
355
- .options-permalink-php .wrap > form .acf-fields.-left > .acf-field
356
- {
357
- padding-left: 0;
358
- }
359
-
360
- .term-php .wrap > form .acf-fields.-left > .acf-field:before,
361
- .profile-php .wrap > form .acf-fields.-left > .acf-field:before,
362
- .user-edit-php .wrap > form .acf-fields.-left > .acf-field:before,
363
- .user-new-php .wrap > form .acf-fields.-left > .acf-field:before,
364
- .options-general-php .wrap > form .acf-fields.-left > .acf-field:before,
365
- .options-writing-php .wrap > form .acf-fields.-left > .acf-field:before,
366
- .options-reading-php .wrap > form .acf-fields.-left > .acf-field:before,
367
- .options-discussion-php .wrap > form .acf-fields.-left > .acf-field:before,
368
- .options-media-php .wrap > form .acf-fields.-left > .acf-field:before,
369
- .options-permalink-php .wrap > form .acf-fields.-left > .acf-field:before
370
- {
371
- width:20%;
372
- }
373
-
374
- .term-php .wrap > form .acf-fields.-left > .acf-field > .acf-label,
375
- .profile-php .wrap > form .acf-fields.-left > .acf-field > .acf-label,
376
- .user-edit-php .wrap > form .acf-fields.-left > .acf-field > .acf-label,
377
- .user-new-php .wrap > form .acf-fields.-left > .acf-field > .acf-label,
378
- .options-general-php .wrap > form .acf-fields.-left > .acf-field > .acf-label,
379
- .options-writing-php .wrap > form .acf-fields.-left > .acf-field > .acf-label,
380
- .options-reading-php .wrap > form .acf-fields.-left > .acf-field > .acf-label,
381
- .options-discussion-php .wrap > form .acf-fields.-left > .acf-field > .acf-label,
382
- .options-media-php .wrap > form .acf-fields.-left > .acf-field > .acf-label,
383
- .options-permalink-php .wrap > form .acf-fields.-left > .acf-field > .acf-label
384
- {
385
- width: 20%;
386
- margin-left: 0;
387
- padding: 0 12px;
388
- }
389
-
390
- .term-php .wrap > form .acf-fields.-left > .acf-field > .acf-input,
391
- .profile-php .wrap > form .acf-fields.-left > .acf-field > .acf-input,
392
- .user-edit-php .wrap > form .acf-fields.-left > .acf-field > .acf-input,
393
- .user-new-php .wrap > form .acf-fields.-left > .acf-field > .acf-input,
394
- .options-general-php .wrap > form .acf-fields.-left > .acf-field > .acf-input,
395
- .options-writing-php .wrap > form .acf-fields.-left > .acf-field > .acf-input,
396
- .options-reading-php .wrap > form .acf-fields.-left > .acf-field > .acf-input,
397
- .options-discussion-php .wrap > form .acf-fields.-left > .acf-field > .acf-input,
398
- .options-media-php .wrap > form .acf-fields.-left > .acf-field > .acf-input,
399
- .options-permalink-php .wrap > form .acf-fields.-left > .acf-field > .acf-input
400
- {
401
- padding: 0 12px;
402
- }
403
-
404
- .term-php .wrap > form p.submit,
405
- .profile-php .wrap > form p.submit,
406
- .user-edit-php .wrap > form p.submit,
407
- .user-new-php .wrap > form p.submit,
408
- .options-general-php .wrap > form p.submit,
409
- .options-writing-php .wrap > form p.submit,
410
- .options-reading-php .wrap > form p.submit,
411
- .options-discussion-php .wrap > form p.submit,
412
- .options-media-php .wrap > form p.submit,
413
- .options-permalink-php .wrap > form p.submit
414
- {
415
- display:none;
416
- }
417
-
418
- /*
419
- * ACFE: UI - Term Single
420
- */
421
- .term-php .wrap > form{
422
- margin-top:13px;
423
- }
424
-
425
- /*
426
- * ACFE: UI - Terms List
427
- */
428
- .edit-tags-php #col-left{
429
- display:none;
430
- }
431
-
432
- .edit-tags-php #col-container #col-right{
433
- float:none;
434
- width:auto;
435
- }
436
-
437
- .edit-tags-php #col-container #col-right .col-wrap{
438
- padding:0;
439
- }
440
-
441
- .edit-tags-php #col-left.acfe-bt{
442
- float:none;
443
- width:100%;
444
- }
445
-
446
- .edit-tags-php #col-left.acfe-bt .col-wrap{
447
- padding:0;
448
- }
449
-
450
- .edit-tags-php #col-left.acfe-bt #poststuff{
451
- min-width:100%;
452
- }
453
-
454
- .edit-tags-php #acfe-bt-form .submit.acf-field{
455
- display:block !important;
456
- margin: 0;
457
  }
1
+ /*
2
+ * ACFE: UI Enhanced
3
+ */
4
+ .term-php .wrap > form,
5
+ .profile-php .wrap > form,
6
+ .user-edit-php .wrap > form,
7
+ .user-new-php .wrap > form,
8
+ .options-general-php .wrap > form,
9
+ .options-writing-php .wrap > form,
10
+ .options-reading-php .wrap > form,
11
+ .options-discussion-php .wrap > form,
12
+ .options-media-php .wrap > form,
13
+ .options-permalink-php .wrap > form
14
+ {
15
+ max-width:100% !important;
16
+ width: 100%;
17
+ float:left;
18
+ }
19
+
20
+ .term-php .wrap > form > div > div > h2,
21
+ .profile-php .wrap > form > div > div > h2,
22
+ .user-edit-php .wrap > form > div > div > h2,
23
+ .user-new-php .wrap > form > div > div > h2,
24
+ .options-general-php .wrap > form > div > div > h2,
25
+ .options-writing-php .wrap > form > div > div > h2,
26
+ .options-reading-php .wrap > form > div > div > h2,
27
+ .options-discussion-php .wrap > form > div > div > h2,
28
+ .options-media-php .wrap > form > div > div > h2,
29
+ .options-permalink-php .wrap > form > div > div > h2
30
+ {
31
+ background:#fff;
32
+ border: 1px solid #ccd0d4;
33
+ border-bottom: 0;
34
+ margin:0;
35
+ color: #23282d;
36
+ font-size: 14px;
37
+ padding: 8px 12px;
38
+ line-height: 1.4;
39
+ }
40
+
41
+ .term-php .wrap > form > div > div > h2 + p,
42
+ .profile-php .wrap > form > div > div > h2 + p,
43
+ .user-edit-php .wrap > form > div > div > h2 + p,
44
+ .user-new-php .wrap > form > div > div > h2 + p,
45
+ .options-general-php .wrap > form > div > div > h2 + p,
46
+ .options-writing-php .wrap > form > div > div > h2 + p,
47
+ .options-reading-php .wrap > form > div > div > h2 + p,
48
+ .options-discussion-php .wrap > form > div > div > h2 + p,
49
+ .options-media-php .wrap > form > div > div > h2 + p,
50
+ .options-permalink-php .wrap > form > div > div > h2 + p
51
+ {
52
+ margin:0;
53
+ border: 1px solid #ccd0d4;
54
+ border-bottom:0;
55
+ padding:15px 12px;
56
+ }
57
+
58
+ .term-php .wrap > form > div > div > h2 + .form-table,
59
+ .term-php .wrap > form > div > div > h2 + p + .form-table,
60
+
61
+ .profile-php .wrap > form > div > div > h2 + .form-table,
62
+ .profile-php .wrap > form > div > div > h2 + p + .form-table,
63
+
64
+ .user-edit-php .wrap > form > div > div > h2 + .form-table,
65
+ .user-edit-php .wrap > form > div > div > h2 + p + .form-table,
66
+
67
+ .user-new-php .wrap > form > div > div > h2 + .form-table,
68
+ .user-new-php .wrap > form > div > div > h2 + p + .form-table,
69
+
70
+ .options-general-php .wrap > form > div > div > h2 + .form-table,
71
+ .options-general-php .wrap > form > div > div > h2 + p + .form-table,
72
+
73
+ .options-writing-php .wrap > form > div > div > h2 + .form-table,
74
+ .options-writing-php .wrap > form > div > div > h2 + p + .form-table,
75
+
76
+ .options-reading-php .wrap > form > div > div > h2 + .form-table,
77
+ .options-reading-php .wrap > form > div > div > h2 + p + .form-table,
78
+
79
+ .options-discussion-php .wrap > form > div > div > h2 + .form-table,
80
+ .options-discussion-php .wrap > form > div > div > h2 + p + .form-table,
81
+
82
+ .options-media-php .wrap > form > div > div > h2 + .form-table,
83
+ .options-media-php .wrap > form > div > div > h2 + p + .form-table,
84
+
85
+ .options-permalink-php .wrap > form > div > div > h2 + .form-table,
86
+ .options-permalink-php .wrap > form > div > div > h2 + p + .form-table
87
+ {
88
+ margin-top:0;
89
+ }
90
+
91
+ .term-php .wrap > form .form-table,
92
+ .profile-php .wrap > form .form-table,
93
+ .user-edit-php .wrap > form .form-table,
94
+ .user-new-php .wrap > form .form-table,
95
+ .options-general-php .wrap > form .form-table,
96
+ .options-writing-php .wrap > form .form-table,
97
+ .options-reading-php .wrap > form .form-table,
98
+ .options-discussion-php .wrap > form .form-table,
99
+ .options-media-php .wrap > form .form-table,
100
+ .options-permalink-php .wrap > form .form-table
101
+ {
102
+ background:#fff;
103
+ width:100%;
104
+ border: 1px solid #ccd0d4;
105
+ box-shadow: 0 1px 1px rgba(0,0,0,.04);
106
+ margin-bottom: 20px; /* Fix for Yoast & Rank Math Metaboxes below the term */
107
+ }
108
+
109
+ .term-php .wrap > form .form-table > tbody > tr > td,
110
+ .profile-php .wrap > form .form-table > tbody > tr > td,
111
+ .user-edit-php .wrap > form .form-table > tbody > tr > td,
112
+ .user-new-php .wrap > form .form-table > tbody > tr > td,
113
+ .options-general-php .wrap > form .form-table > tbody > tr > td,
114
+ .options-writing-php .wrap > form .form-table > tbody > tr > td,
115
+ .options-reading-php .wrap > form .form-table > tbody > tr > td,
116
+ .options-discussion-php .wrap > form .form-table > tbody > tr > td,
117
+ .options-media-php .wrap > form .form-table > tbody > tr > td,
118
+ .options-permalink-php .wrap > form .form-table > tbody > tr > td
119
+ {
120
+ background: #fff;
121
+ border-top: 1px solid #E1E1E1;
122
+ position:initial;
123
+ }
124
+
125
+ .term-php .wrap > form .form-table > tbody > tr:first-of-type > td,
126
+ .term-php .wrap > form .form-table > tbody > tr:first-of-type > th,
127
+
128
+ .profile-php .wrap > form .form-table > tbody > tr:first-of-type > td,
129
+ .profile-php .wrap > form .form-table > tbody > tr:first-of-type > th,
130
+
131
+ .user-edit-php .wrap > form .form-table > tbody > tr:first-of-type > td,
132
+ .user-edit-php .wrap > form .form-table > tbody > tr:first-of-type > th,
133
+
134
+ .user-new-php .wrap > form .form-table > tbody > tr:first-of-type > td,
135
+ .user-new-php .wrap > form .form-table > tbody > tr:first-of-type > th,
136
+
137
+ .options-general-php .wrap > form .form-table > tbody > tr:first-of-type > td,
138
+ .options-general-php .wrap > form .form-table > tbody > tr:first-of-type > th,
139
+
140
+ .options-writing-php .wrap > form .form-table > tbody > tr:first-of-type > td,
141
+ .options-writing-php .wrap > form .form-table > tbody > tr:first-of-type > th,
142
+
143
+ .options-reading-php .wrap > form .form-table > tbody > tr:first-of-type > td,
144
+ .options-reading-php .wrap > form .form-table > tbody > tr:first-of-type > th,
145
+
146
+ .options-discussion-php .wrap > form .form-table > tbody > tr:first-of-type > td,
147
+ .options-discussion-php .wrap > form .form-table > tbody > tr:first-of-type > th,
148
+
149
+ .options-media-php .wrap > form .form-table > tbody > tr:first-of-type > td,
150
+ .options-media-php .wrap > form .form-table > tbody > tr:first-of-type > th,
151
+
152
+ .options-permalink-php .wrap > form .form-table > tbody > tr:first-of-type > td,
153
+ .options-permalink-php .wrap > form .form-table > tbody > tr:first-of-type > th
154
+ {
155
+ border-top: 1px solid #ccd0d4;
156
+ }
157
+
158
+ .term-php .wrap > form .form-table > tbody > tr > td p,
159
+ .profile-php .wrap > form .form-table > tbody > tr > td p,
160
+ .user-edit-php .wrap > form .form-table > tbody > tr > td p,
161
+ .user-new-php .wrap > form .form-table > tbody > tr > td p,
162
+ .options-general-php .wrap > form .form-table > tbody > tr > td p,
163
+ .options-writing-php .wrap > form .form-table > tbody > tr > td p,
164
+ .options-reading-php .wrap > form .form-table > tbody > tr > td p,
165
+ .options-discussion-php .wrap > form .form-table > tbody > tr > td p,
166
+ .options-media-php .wrap > form .form-table > tbody > tr > td p,
167
+ .options-permalink-php .wrap > form .form-table > tbody > tr > td p
168
+ {
169
+ font-size:13px;
170
+ }
171
+
172
+ .term-php .wrap > form .form-table > tbody > tr > th,
173
+ .term-php .wrap > form .form-table > tbody > tr > td.acf-label,
174
+
175
+ .profile-php .wrap > form .form-table > tbody > tr > th,
176
+ .profile-php .wrap > form .form-table > tbody > tr > td.acf-label,
177
+
178
+ .user-edit-php .wrap > form .form-table > tbody > tr > th,
179
+ .user-edit-php .wrap > form .form-table > tbody > tr > td.acf-label,
180
+
181
+ .user-new-php .wrap > form .form-table > tbody > tr > th,
182
+ .user-new-php .wrap > form .form-table > tbody > tr > td.acf-label,
183
+
184
+ .options-general-php .wrap > form .form-table > tbody > tr > th,
185
+ .options-general-php .wrap > form .form-table > tbody > tr > td.acf-label,
186
+
187
+ .options-writing-php .wrap > form .form-table > tbody > tr > th,
188
+ .options-writing-php .wrap > form .form-table > tbody > tr > td.acf-label,
189
+
190
+ .options-reading-php .wrap > form .form-table > tbody > tr > th,
191
+ .options-reading-php .wrap > form .form-table > tbody > tr > td.acf-label,
192
+
193
+ .options-discussion-php .wrap > form .form-table > tbody > tr > th,
194
+ .options-discussion-php .wrap > form .form-table > tbody > tr > td.acf-label,
195
+
196
+ .options-media-php .wrap > form .form-table > tbody > tr > th,
197
+ .options-media-php .wrap > form .form-table > tbody > tr > td.acf-label,
198
+
199
+ .options-permalink-php .wrap > form .form-table > tbody > tr > th,
200
+ .options-permalink-php .wrap > form .form-table > tbody > tr > td.acf-label
201
+ {
202
+ border-top: 1px solid #E1E1E1;
203
+ border-right: 1px solid #E1E1E1;
204
+ background: #F9F9F9;
205
+ padding:15px 12px;
206
+ width:20%;
207
+ font-size:13px;
208
+ position:initial;
209
+ color:#444;
210
+ }
211
+
212
+ .term-php .wrap > form .form-table > tbody > tr > td.td-full,
213
+ .profile-php .wrap > form .form-table > tbody > tr > td.td-full,
214
+ .user-edit-php .wrap > form .form-table > tbody > tr > td.td-full,
215
+ .user-new-php .wrap > form .form-table > tbody > tr > td.td-full,
216
+ .options-general-php .wrap > form .form-table > tbody > tr > td.td-full,
217
+ .options-writing-php .wrap > form .form-table > tbody > tr > td.td-full,
218
+ .options-reading-php .wrap > form .form-table > tbody > tr > td.td-full,
219
+ .options-discussion-php .wrap > form .form-table > tbody > tr > td.td-full,
220
+ .options-media-php .wrap > form .form-table > tbody > tr > td.td-full,
221
+ .options-permalink-php .wrap > form .form-table > tbody > tr > td.td-full
222
+ {
223
+ padding:15px 12px;
224
+ }
225
+
226
+ .term-php .wrap > form .form-table > tbody > tr.acf-field,
227
+ .profile-php .wrap > form .form-table > tbody > tr.acf-field,
228
+ .user-edit-php .wrap > form .form-table > tbody > tr.acf-field,
229
+ .user-new-php .wrap > form .form-table > tbody > tr.acf-field,
230
+ .options-general-php .wrap > form .form-table > tbody > tr.acf-field,
231
+ .options-writing-php .wrap > form .form-table > tbody > tr.acf-field,
232
+ .options-reading-php .wrap > form .form-table > tbody > tr.acf-field,
233
+ .options-discussion-php .wrap > form .form-table > tbody > tr.acf-field,
234
+ .options-media-php .wrap > form .form-table > tbody > tr.acf-field,
235
+ .options-permalink-php .wrap > form .form-table > tbody > tr.acf-field
236
+ {
237
+ position: initial;
238
+ }
239
+
240
+ .term-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td,
241
+ .profile-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td,
242
+ .user-edit-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td,
243
+ .user-new-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td,
244
+ .options-general-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td,
245
+ .options-writing-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td,
246
+ .options-reading-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td,
247
+ .options-discussion-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td,
248
+ .options-media-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td,
249
+ .options-permalink-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td
250
+ {
251
+ background: #F9F9F9;
252
+ padding:15px 0 0 0;
253
+ }
254
+
255
+ .term-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td ul.acf-tab-group,
256
+ .profile-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td ul.acf-tab-group,
257
+ .user-edit-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td ul.acf-tab-group,
258
+ .user-new-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td ul.acf-tab-group,
259
+ .options-general-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td ul.acf-tab-group,
260
+ .options-writing-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td ul.acf-tab-group,
261
+ .options-reading-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td ul.acf-tab-group,
262
+ .options-discussion-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td ul.acf-tab-group,
263
+ .options-media-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td ul.acf-tab-group,
264
+ .options-permalink-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td ul.acf-tab-group
265
+ {
266
+ border-bottom:0;
267
+ padding:0 0 0 20%;
268
+ }
269
+
270
+ .term-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td ul.acf-tab-group > li.active a,
271
+ .profile-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td ul.acf-tab-group > li.active a,
272
+ .user-edit-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td ul.acf-tab-group > li.active a,
273
+ .user-new-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td ul.acf-tab-group > li.active a,
274
+ .options-general-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td ul.acf-tab-group > li.active a,
275
+ .options-writing-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td ul.acf-tab-group > li.active a,
276
+ .options-reading-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td ul.acf-tab-group > li.active a,
277
+ .options-discussion-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td ul.acf-tab-group > li.active a,
278
+ .options-media-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td ul.acf-tab-group > li.active a,
279
+ .options-permalink-php .wrap > form .form-table > tbody > tr.acf-tab-wrap > td ul.acf-tab-group > li.active a
280
+ {
281
+ background: #fff;
282
+ }
283
+
284
+ .term-php .wrap > form #poststuff.acfe-acfe-bt-admin-column,
285
+ .profile-php .wrap > form #poststuff.acfe-acfe-bt-admin-column,
286
+ .user-edit-php .wrap > form #poststuff.acfe-acfe-bt-admin-column,
287
+ .user-new-php .wrap > form #poststuff.acfe-acfe-bt-admin-column,
288
+ .options-general-php .wrap > form #poststuff.acfe-acfe-bt-admin-column,
289
+ .options-writing-php .wrap > form #poststuff.acfe-acfe-bt-admin-column,
290
+ .options-reading-php .wrap > form #poststuff.acfe-acfe-bt-admin-column,
291
+ .options-discussion-php .wrap > form #poststuff.acfe-acfe-bt-admin-column,
292
+ .options-media-php .wrap > form #poststuff.acfe-acfe-bt-admin-column,
293
+ .options-permalink-php .wrap > form #poststuff.acfe-acfe-bt-admin-column
294
+ {
295
+ min-width:auto;
296
+ padding:0;
297
+ }
298
+
299
+ .term-php .wrap > form #poststuff.acfe-acfe-bt-admin-column .inside,
300
+ .profile-php .wrap > form #poststuff.acfe-acfe-bt-admin-column .inside,
301
+ .user-edit-php .wrap > form #poststuff.acfe-acfe-bt-admin-column .inside,
302
+ .user-new-php .wrap > form #poststuff.acfe-acfe-bt-admin-column .inside,
303
+ .options-general-php .wrap > form #poststuff.acfe-acfe-bt-admin-column .inside,
304
+ .options-writing-php .wrap > form #poststuff.acfe-acfe-bt-admin-column .inside,
305
+ .options-reading-php .wrap > form #poststuff.acfe-acfe-bt-admin-column .inside,
306
+ .options-discussion-php .wrap > form #poststuff.acfe-acfe-bt-admin-column .inside,
307
+ .options-media-php .wrap > form #poststuff.acfe-acfe-bt-admin-column .inside,
308
+ .options-permalink-php .wrap > form #poststuff.acfe-acfe-bt-admin-column .inside
309
+ {
310
+ margin: 0;
311
+ padding: 0;
312
+ }
313
+
314
+ /*
315
+ * ACFE: UI Enhanced (Fix ACF)
316
+ */
317
+ .term-php .wrap .form-table > tbody>.acf-field > .acf-label label,
318
+ .profile-php .wrap .form-table > tbody>.acf-field > .acf-label label,
319
+ .user-edit-php .wrap .form-table > tbody>.acf-field > .acf-label label,
320
+ .user-new-php .wrap .form-table > tbody>.acf-field > .acf-label label,
321
+ .options-general-php .wrap .form-table > tbody>.acf-field > .acf-label label,
322
+ .options-writing-php .wrap .form-table > tbody>.acf-field > .acf-label label,
323
+ .options-reading-php .wrap .form-table > tbody>.acf-field > .acf-label label,
324
+ .options-discussion-php .wrap .form-table > tbody>.acf-field > .acf-label label,
325
+ .options-media-php .wrap .form-table > tbody>.acf-field > .acf-label label,
326
+ .options-permalink-php .wrap .form-table > tbody>.acf-field > .acf-label label
327
+ {
328
+ font-size: 13px;
329
+ color: #444;
330
+ }
331
+
332
+ .term-php .wrap .acf-fields.-left > .acf-field.acfe-bt-no-label,
333
+ .profile-php .wrap .acf-fields.-left > .acf-field.acfe-bt-no-label,
334
+ .user-edit-php .wrap .acf-fields.-left > .acf-field.acfe-bt-no-label,
335
+ .user-new-php .wrap .acf-fields.-left > .acf-field.acfe-bt-no-label,
336
+ .options-general-php .wrap .acf-fields.-left > .acf-field.acfe-bt-no-label,
337
+ .options-writing-php .wrap .acf-fields.-left > .acf-field.acfe-bt-no-label,
338
+ .options-reading-php .wrap .acf-fields.-left > .acf-field.acfe-bt-no-label,
339
+ .options-discussion-php .wrap .acf-fields.-left > .acf-field.acfe-bt-no-label,
340
+ .options-media-php .wrap .acf-fields.-left > .acf-field.acfe-bt-no-label,
341
+ .options-permalink-php .wrap .acf-fields.-left > .acf-field.acfe-bt-no-label
342
+ {
343
+ padding-left: 20%;
344
+ }
345
+
346
+ .term-php .wrap > form .acf-fields.-left > .acf-field,
347
+ .profile-php .wrap > form .acf-fields.-left > .acf-field,
348
+ .user-edit-php .wrap > form .acf-fields.-left > .acf-field,
349
+ .user-new-php .wrap > form .acf-fields.-left > .acf-field,
350
+ .options-general-php .wrap > form .acf-fields.-left > .acf-field,
351
+ .options-writing-php .wrap > form .acf-fields.-left > .acf-field,
352
+ .options-reading-php .wrap > form .acf-fields.-left > .acf-field,
353
+ .options-discussion-php .wrap > form .acf-fields.-left > .acf-field,
354
+ .options-media-php .wrap > form .acf-fields.-left > .acf-field,
355
+ .options-permalink-php .wrap > form .acf-fields.-left > .acf-field
356
+ {
357
+ padding-left: 0;
358
+ }
359
+
360
+ .term-php .wrap > form .acf-fields.-left > .acf-field:before,
361
+ .profile-php .wrap > form .acf-fields.-left > .acf-field:before,
362
+ .user-edit-php .wrap > form .acf-fields.-left > .acf-field:before,
363
+ .user-new-php .wrap > form .acf-fields.-left > .acf-field:before,
364
+ .options-general-php .wrap > form .acf-fields.-left > .acf-field:before,
365
+ .options-writing-php .wrap > form .acf-fields.-left > .acf-field:before,
366
+ .options-reading-php .wrap > form .acf-fields.-left > .acf-field:before,
367
+ .options-discussion-php .wrap > form .acf-fields.-left > .acf-field:before,
368
+ .options-media-php .wrap > form .acf-fields.-left > .acf-field:before,
369
+ .options-permalink-php .wrap > form .acf-fields.-left > .acf-field:before
370
+ {
371
+ width:20%;
372
+ }
373
+
374
+ .term-php .wrap > form .acf-fields.-left > .acf-field > .acf-label,
375
+ .profile-php .wrap > form .acf-fields.-left > .acf-field > .acf-label,
376
+ .user-edit-php .wrap > form .acf-fields.-left > .acf-field > .acf-label,
377
+ .user-new-php .wrap > form .acf-fields.-left > .acf-field > .acf-label,
378
+ .options-general-php .wrap > form .acf-fields.-left > .acf-field > .acf-label,
379
+ .options-writing-php .wrap > form .acf-fields.-left > .acf-field > .acf-label,
380
+ .options-reading-php .wrap > form .acf-fields.-left > .acf-field > .acf-label,
381
+ .options-discussion-php .wrap > form .acf-fields.-left > .acf-field > .acf-label,
382
+ .options-media-php .wrap > form .acf-fields.-left > .acf-field > .acf-label,
383
+ .options-permalink-php .wrap > form .acf-fields.-left > .acf-field > .acf-label
384
+ {
385
+ width: 20%;
386
+ margin-left: 0;
387
+ padding: 0 12px;
388
+ }
389
+
390
+ .term-php .wrap > form .acf-fields.-left > .acf-field > .acf-input,
391
+ .profile-php .wrap > form .acf-fields.-left > .acf-field > .acf-input,
392
+ .user-edit-php .wrap > form .acf-fields.-left > .acf-field > .acf-input,
393
+ .user-new-php .wrap > form .acf-fields.-left > .acf-field > .acf-input,
394
+ .options-general-php .wrap > form .acf-fields.-left > .acf-field > .acf-input,
395
+ .options-writing-php .wrap > form .acf-fields.-left > .acf-field > .acf-input,
396
+ .options-reading-php .wrap > form .acf-fields.-left > .acf-field > .acf-input,
397
+ .options-discussion-php .wrap > form .acf-fields.-left > .acf-field > .acf-input,
398
+ .options-media-php .wrap > form .acf-fields.-left > .acf-field > .acf-input,
399
+ .options-permalink-php .wrap > form .acf-fields.-left > .acf-field > .acf-input
400
+ {
401
+ padding: 0 12px;
402
+ }
403
+
404
+ .term-php .wrap > form p.submit,
405
+ .profile-php .wrap > form p.submit,
406
+ .user-edit-php .wrap > form p.submit,
407
+ .user-new-php .wrap > form p.submit,
408
+ .options-general-php .wrap > form p.submit,
409
+ .options-writing-php .wrap > form p.submit,
410
+ .options-reading-php .wrap > form p.submit,
411
+ .options-discussion-php .wrap > form p.submit,
412
+ .options-media-php .wrap > form p.submit,
413
+ .options-permalink-php .wrap > form p.submit
414
+ {
415
+ display:none;
416
+ }
417
+
418
+ /*
419
+ * ACFE: UI - Term Single
420
+ */
421
+ .term-php .wrap > form{
422
+ margin-top:13px;
423
+ }
424
+
425
+ /*
426
+ * ACFE: UI - Terms List
427
+ */
428
+ .edit-tags-php #col-left{
429
+ display:none;
430
+ }
431
+
432
+ .edit-tags-php #col-container #col-right{
433
+ float:none;
434
+ width:auto;
435
+ }
436
+
437
+ .edit-tags-php #col-container #col-right .col-wrap{
438
+ padding:0;
439
+ }
440
+
441
+ .edit-tags-php #col-left.acfe-bt{
442
+ float:none;
443
+ width:100%;
444
+ }
445
+
446
+ .edit-tags-php #col-left.acfe-bt .col-wrap{
447
+ padding:0;
448
+ }
449
+
450
+ .edit-tags-php #col-left.acfe-bt #poststuff{
451
+ min-width:100%;
452
+ }
453
+
454
+ .edit-tags-php #acfe-bt-form .submit.acf-field{
455
+ display:block !important;
456
+ margin: 0;
457
  }
assets/acf-extended-ui.min.css ADDED
@@ -0,0 +1 @@
 
1
+ .options-discussion-php .wrap>form,.options-general-php .wrap>form,.options-media-php .wrap>form,.options-permalink-php .wrap>form,.options-reading-php .wrap>form,.options-writing-php .wrap>form,.profile-php .wrap>form,.term-php .wrap>form,.user-edit-php .wrap>form,.user-new-php .wrap>form{max-width:100%!important;width:100%;float:left}.options-discussion-php .wrap>form>div>div>h2,.options-general-php .wrap>form>div>div>h2,.options-media-php .wrap>form>div>div>h2,.options-permalink-php .wrap>form>div>div>h2,.options-reading-php .wrap>form>div>div>h2,.options-writing-php .wrap>form>div>div>h2,.profile-php .wrap>form>div>div>h2,.term-php .wrap>form>div>div>h2,.user-edit-php .wrap>form>div>div>h2,.user-new-php .wrap>form>div>div>h2{background:#fff;border:1px solid #ccd0d4;border-bottom:0;margin:0;color:#23282d;font-size:14px;padding:8px 12px;line-height:1.4}.options-discussion-php .wrap>form>div>div>h2+p,.options-general-php .wrap>form>div>div>h2+p,.options-media-php .wrap>form>div>div>h2+p,.options-permalink-php .wrap>form>div>div>h2+p,.options-reading-php .wrap>form>div>div>h2+p,.options-writing-php .wrap>form>div>div>h2+p,.profile-php .wrap>form>div>div>h2+p,.term-php .wrap>form>div>div>h2+p,.user-edit-php .wrap>form>div>div>h2+p,.user-new-php .wrap>form>div>div>h2+p{margin:0;border:1px solid #ccd0d4;border-bottom:0;padding:15px 12px}.options-discussion-php .wrap>form>div>div>h2+.form-table,.options-discussion-php .wrap>form>div>div>h2+p+.form-table,.options-general-php .wrap>form>div>div>h2+.form-table,.options-general-php .wrap>form>div>div>h2+p+.form-table,.options-media-php .wrap>form>div>div>h2+.form-table,.options-media-php .wrap>form>div>div>h2+p+.form-table,.options-permalink-php .wrap>form>div>div>h2+.form-table,.options-permalink-php .wrap>form>div>div>h2+p+.form-table,.options-reading-php .wrap>form>div>div>h2+.form-table,.options-reading-php .wrap>form>div>div>h2+p+.form-table,.options-writing-php .wrap>form>div>div>h2+.form-table,.options-writing-php .wrap>form>div>div>h2+p+.form-table,.profile-php .wrap>form>div>div>h2+.form-table,.profile-php .wrap>form>div>div>h2+p+.form-table,.term-php .wrap>form>div>div>h2+.form-table,.term-php .wrap>form>div>div>h2+p+.form-table,.user-edit-php .wrap>form>div>div>h2+.form-table,.user-edit-php .wrap>form>div>div>h2+p+.form-table,.user-new-php .wrap>form>div>div>h2+.form-table,.user-new-php .wrap>form>div>div>h2+p+.form-table{margin-top:0}.options-discussion-php .wrap>form .form-table,.options-general-php .wrap>form .form-table,.options-media-php .wrap>form .form-table,.options-permalink-php .wrap>form .form-table,.options-reading-php .wrap>form .form-table,.options-writing-php .wrap>form .form-table,.profile-php .wrap>form .form-table,.term-php .wrap>form .form-table,.user-edit-php .wrap>form .form-table,.user-new-php .wrap>form .form-table{background:#fff;width:100%;border:1px solid #ccd0d4;box-shadow:0 1px 1px rgba(0,0,0,.04);margin-bottom:20px}.options-discussion-php .wrap>form .form-table>tbody>tr>td,.options-general-php .wrap>form .form-table>tbody>tr>td,.options-media-php .wrap>form .form-table>tbody>tr>td,.options-permalink-php .wrap>form .form-table>tbody>tr>td,.options-reading-php .wrap>form .form-table>tbody>tr>td,.options-writing-php .wrap>form .form-table>tbody>tr>td,.profile-php .wrap>form .form-table>tbody>tr>td,.term-php .wrap>form .form-table>tbody>tr>td,.user-edit-php .wrap>form .form-table>tbody>tr>td,.user-new-php .wrap>form .form-table>tbody>tr>td{background:#fff;border-top:1px solid #e1e1e1;position:initial}.options-discussion-php .wrap>form .form-table>tbody>tr:first-of-type>td,.options-discussion-php .wrap>form .form-table>tbody>tr:first-of-type>th,.options-general-php .wrap>form .form-table>tbody>tr:first-of-type>td,.options-general-php .wrap>form .form-table>tbody>tr:first-of-type>th,.options-media-php .wrap>form .form-table>tbody>tr:first-of-type>td,.options-media-php .wrap>form .form-table>tbody>tr:first-of-type>th,.options-permalink-php .wrap>form .form-table>tbody>tr:first-of-type>td,.options-permalink-php .wrap>form .form-table>tbody>tr:first-of-type>th,.options-reading-php .wrap>form .form-table>tbody>tr:first-of-type>td,.options-reading-php .wrap>form .form-table>tbody>tr:first-of-type>th,.options-writing-php .wrap>form .form-table>tbody>tr:first-of-type>td,.options-writing-php .wrap>form .form-table>tbody>tr:first-of-type>th,.profile-php .wrap>form .form-table>tbody>tr:first-of-type>td,.profile-php .wrap>form .form-table>tbody>tr:first-of-type>th,.term-php .wrap>form .form-table>tbody>tr:first-of-type>td,.term-php .wrap>form .form-table>tbody>tr:first-of-type>th,.user-edit-php .wrap>form .form-table>tbody>tr:first-of-type>td,.user-edit-php .wrap>form .form-table>tbody>tr:first-of-type>th,.user-new-php .wrap>form .form-table>tbody>tr:first-of-type>td,.user-new-php .wrap>form .form-table>tbody>tr:first-of-type>th{border-top:1px solid #ccd0d4}.options-discussion-php .wrap>form .form-table>tbody>tr>td p,.options-general-php .wrap>form .form-table>tbody>tr>td p,.options-media-php .wrap>form .form-table>tbody>tr>td p,.options-permalink-php .wrap>form .form-table>tbody>tr>td p,.options-reading-php .wrap>form .form-table>tbody>tr>td p,.options-writing-php .wrap>form .form-table>tbody>tr>td p,.profile-php .wrap>form .form-table>tbody>tr>td p,.term-php .wrap>form .form-table>tbody>tr>td p,.user-edit-php .wrap>form .form-table>tbody>tr>td p,.user-new-php .wrap>form .form-table>tbody>tr>td p{font-size:13px}.options-discussion-php .wrap>form .form-table>tbody>tr>td.acf-label,.options-discussion-php .wrap>form .form-table>tbody>tr>th,.options-general-php .wrap>form .form-table>tbody>tr>td.acf-label,.options-general-php .wrap>form .form-table>tbody>tr>th,.options-media-php .wrap>form .form-table>tbody>tr>td.acf-label,.options-media-php .wrap>form .form-table>tbody>tr>th,.options-permalink-php .wrap>form .form-table>tbody>tr>td.acf-label,.options-permalink-php .wrap>form .form-table>tbody>tr>th,.options-reading-php .wrap>form .form-table>tbody>tr>td.acf-label,.options-reading-php .wrap>form .form-table>tbody>tr>th,.options-writing-php .wrap>form .form-table>tbody>tr>td.acf-label,.options-writing-php .wrap>form .form-table>tbody>tr>th,.profile-php .wrap>form .form-table>tbody>tr>td.acf-label,.profile-php .wrap>form .form-table>tbody>tr>th,.term-php .wrap>form .form-table>tbody>tr>td.acf-label,.term-php .wrap>form .form-table>tbody>tr>th,.user-edit-php .wrap>form .form-table>tbody>tr>td.acf-label,.user-edit-php .wrap>form .form-table>tbody>tr>th,.user-new-php .wrap>form .form-table>tbody>tr>td.acf-label,.user-new-php .wrap>form .form-table>tbody>tr>th{border-top:1px solid #e1e1e1;border-right:1px solid #e1e1e1;background:#f9f9f9;padding:15px 12px;width:20%;font-size:13px;position:initial;color:#444}.options-discussion-php .wrap>form .form-table>tbody>tr>td.td-full,.options-general-php .wrap>form .form-table>tbody>tr>td.td-full,.options-media-php .wrap>form .form-table>tbody>tr>td.td-full,.options-permalink-php .wrap>form .form-table>tbody>tr>td.td-full,.options-reading-php .wrap>form .form-table>tbody>tr>td.td-full,.options-writing-php .wrap>form .form-table>tbody>tr>td.td-full,.profile-php .wrap>form .form-table>tbody>tr>td.td-full,.term-php .wrap>form .form-table>tbody>tr>td.td-full,.user-edit-php .wrap>form .form-table>tbody>tr>td.td-full,.user-new-php .wrap>form .form-table>tbody>tr>td.td-full{padding:15px 12px}.options-discussion-php .wrap>form .form-table>tbody>tr.acf-field,.options-general-php .wrap>form .form-table>tbody>tr.acf-field,.options-media-php .wrap>form .form-table>tbody>tr.acf-field,.options-permalink-php .wrap>form .form-table>tbody>tr.acf-field,.options-reading-php .wrap>form .form-table>tbody>tr.acf-field,.options-writing-php .wrap>form .form-table>tbody>tr.acf-field,.profile-php .wrap>form .form-table>tbody>tr.acf-field,.term-php .wrap>form .form-table>tbody>tr.acf-field,.user-edit-php .wrap>form .form-table>tbody>tr.acf-field,.user-new-php .wrap>form .form-table>tbody>tr.acf-field{position:initial}.options-discussion-php .wrap>form .form-table>tbody>tr.acf-tab-wrap>td,.options-general-php .wrap>form .form-table>tbody>tr.acf-tab-wrap>td,.options-media-php .wrap>form .form-table>tbody>tr.acf-tab-wrap>td,.options-permalink-php .wrap>form .form-table>tbody>tr.acf-tab-wrap>td,.options-reading-php .wrap>form .form-table>tbody>tr.acf-tab-wrap>td,.options-writing-php .wrap>form .form-table>tbody>tr.acf-tab-wrap>td,.profile-php .wrap>form .form-table>tbody>tr.acf-tab-wrap>td,.term-php .wrap>form .form-table>tbody>tr.acf-tab-wrap>td,.user-edit-php .wrap>form .form-table>tbody>tr.acf-tab-wrap>td,.user-new-php .wrap>form .form-table>tbody>tr.acf-tab-wrap>td{background:#f9f9f9;padding:15px 0 0 0}.options-discussion-php .wrap>form .form-table>tbody>tr.acf-tab-wrap>td ul.acf-tab-group,.options-general-php .wrap>form .form-table>tbody>tr.acf-tab-wrap>td ul.acf-tab-group,.options-media-php .wrap>form .form-table>tbody>tr.acf-tab-wrap>td ul.acf-tab-group,.options-permalink-php .wrap>form .form-table>tbody>tr.acf-tab-wrap>td ul.acf-tab-group,.options-reading-php .wrap>form .form-table>tbody>tr.acf-tab-wrap>td ul.acf-tab-group,.options-writing-php .wrap>form .form-table>tbody>tr.acf-tab-wrap>td ul.acf-tab-group,.profile-php .wrap>form .form-table>tbody>tr.acf-tab-wrap>td ul.acf-tab-group,.term-php .wrap>form .form-table>tbody>tr.acf-tab-wrap>td ul.acf-tab-group,.user-edit-php .wrap>form .form-table>tbody>tr.acf-tab-wrap>td ul.acf-tab-group,.user-new-php .wrap>form .form-table>tbody>tr.acf-tab-wrap>td ul.acf-tab-group{border-bottom:0;padding:0 0 0 20%}.options-discussion-php .wrap>form .form-table>tbody>tr.acf-tab-wrap>td ul.acf-tab-group>li.active a,.options-general-php .wrap>form .form-table>tbody>tr.acf-tab-wrap>td ul.acf-tab-group>li.active a,.options-media-php .wrap>form .form-table>tbody>tr.acf-tab-wrap>td ul.acf-tab-group>li.active a,.options-permalink-php .wrap>form .form-table>tbody>tr.acf-tab-wrap>td ul.acf-tab-group>li.active a,.options-reading-php .wrap>form .form-table>tbody>tr.acf-tab-wrap>td ul.acf-tab-group>li.active a,.options-writing-php .wrap>form .form-table>tbody>tr.acf-tab-wrap>td ul.acf-tab-group>li.active a,.profile-php .wrap>form .form-table>tbody>tr.acf-tab-wrap>td ul.acf-tab-group>li.active a,.term-php .wrap>form .form-table>tbody>tr.acf-tab-wrap>td ul.acf-tab-group>li.active a,.user-edit-php .wrap>form .form-table>tbody>tr.acf-tab-wrap>td ul.acf-tab-group>li.active a,.user-new-php .wrap>form .form-table>tbody>tr.acf-tab-wrap>td ul.acf-tab-group>li.active a{background:#fff}.options-discussion-php .wrap>form #poststuff.acfe-acfe-bt-admin-column,.options-general-php .wrap>form #poststuff.acfe-acfe-bt-admin-column,.options-media-php .wrap>form #poststuff.acfe-acfe-bt-admin-column,.options-permalink-php .wrap>form #poststuff.acfe-acfe-bt-admin-column,.options-reading-php .wrap>form #poststuff.acfe-acfe-bt-admin-column,.options-writing-php .wrap>form #poststuff.acfe-acfe-bt-admin-column,.profile-php .wrap>form #poststuff.acfe-acfe-bt-admin-column,.term-php .wrap>form #poststuff.acfe-acfe-bt-admin-column,.user-edit-php .wrap>form #poststuff.acfe-acfe-bt-admin-column,.user-new-php .wrap>form #poststuff.acfe-acfe-bt-admin-column{min-width:auto;padding:0}.options-discussion-php .wrap>form #poststuff.acfe-acfe-bt-admin-column .inside,.options-general-php .wrap>form #poststuff.acfe-acfe-bt-admin-column .inside,.options-media-php .wrap>form #poststuff.acfe-acfe-bt-admin-column .inside,.options-permalink-php .wrap>form #poststuff.acfe-acfe-bt-admin-column .inside,.options-reading-php .wrap>form #poststuff.acfe-acfe-bt-admin-column .inside,.options-writing-php .wrap>form #poststuff.acfe-acfe-bt-admin-column .inside,.profile-php .wrap>form #poststuff.acfe-acfe-bt-admin-column .inside,.term-php .wrap>form #poststuff.acfe-acfe-bt-admin-column .inside,.user-edit-php .wrap>form #poststuff.acfe-acfe-bt-admin-column .inside,.user-new-php .wrap>form #poststuff.acfe-acfe-bt-admin-column .inside{margin:0;padding:0}.options-discussion-php .wrap .form-table>tbody>.acf-field>.acf-label label,.options-general-php .wrap .form-table>tbody>.acf-field>.acf-label label,.options-media-php .wrap .form-table>tbody>.acf-field>.acf-label label,.options-permalink-php .wrap .form-table>tbody>.acf-field>.acf-label label,.options-reading-php .wrap .form-table>tbody>.acf-field>.acf-label label,.options-writing-php .wrap .form-table>tbody>.acf-field>.acf-label label,.profile-php .wrap .form-table>tbody>.acf-field>.acf-label label,.term-php .wrap .form-table>tbody>.acf-field>.acf-label label,.user-edit-php .wrap .form-table>tbody>.acf-field>.acf-label label,.user-new-php .wrap .form-table>tbody>.acf-field>.acf-label label{font-size:13px;color:#444}.options-discussion-php .wrap .acf-fields.-left>.acf-field.acfe-bt-no-label,.options-general-php .wrap .acf-fields.-left>.acf-field.acfe-bt-no-label,.options-media-php .wrap .acf-fields.-left>.acf-field.acfe-bt-no-label,.options-permalink-php .wrap .acf-fields.-left>.acf-field.acfe-bt-no-label,.options-reading-php .wrap .acf-fields.-left>.acf-field.acfe-bt-no-label,.options-writing-php .wrap .acf-fields.-left>.acf-field.acfe-bt-no-label,.profile-php .wrap .acf-fields.-left>.acf-field.acfe-bt-no-label,.term-php .wrap .acf-fields.-left>.acf-field.acfe-bt-no-label,.user-edit-php .wrap .acf-fields.-left>.acf-field.acfe-bt-no-label,.user-new-php .wrap .acf-fields.-left>.acf-field.acfe-bt-no-label{padding-left:20%}.options-discussion-php .wrap>form .acf-fields.-left>.acf-field,.options-general-php .wrap>form .acf-fields.-left>.acf-field,.options-media-php .wrap>form .acf-fields.-left>.acf-field,.options-permalink-php .wrap>form .acf-fields.-left>.acf-field,.options-reading-php .wrap>form .acf-fields.-left>.acf-field,.options-writing-php .wrap>form .acf-fields.-left>.acf-field,.profile-php .wrap>form .acf-fields.-left>.acf-field,.term-php .wrap>form .acf-fields.-left>.acf-field,.user-edit-php .wrap>form .acf-fields.-left>.acf-field,.user-new-php .wrap>form .acf-fields.-left>.acf-field{padding-left:0}.options-discussion-php .wrap>form .acf-fields.-left>.acf-field:before,.options-general-php .wrap>form .acf-fields.-left>.acf-field:before,.options-media-php .wrap>form .acf-fields.-left>.acf-field:before,.options-permalink-php .wrap>form .acf-fields.-left>.acf-field:before,.options-reading-php .wrap>form .acf-fields.-left>.acf-field:before,.options-writing-php .wrap>form .acf-fields.-left>.acf-field:before,.profile-php .wrap>form .acf-fields.-left>.acf-field:before,.term-php .wrap>form .acf-fields.-left>.acf-field:before,.user-edit-php .wrap>form .acf-fields.-left>.acf-field:before,.user-new-php .wrap>form .acf-fields.-left>.acf-field:before{width:20%}.options-discussion-php .wrap>form .acf-fields.-left>.acf-field>.acf-label,.options-general-php .wrap>form .acf-fields.-left>.acf-field>.acf-label,.options-media-php .wrap>form .acf-fields.-left>.acf-field>.acf-label,.options-permalink-php .wrap>form .acf-fields.-left>.acf-field>.acf-label,.options-reading-php .wrap>form .acf-fields.-left>.acf-field>.acf-label,.options-writing-php .wrap>form .acf-fields.-left>.acf-field>.acf-label,.profile-php .wrap>form .acf-fields.-left>.acf-field>.acf-label,.term-php .wrap>form .acf-fields.-left>.acf-field>.acf-label,.user-edit-php .wrap>form .acf-fields.-left>.acf-field>.acf-label,.user-new-php .wrap>form .acf-fields.-left>.acf-field>.acf-label{width:20%;margin-left:0;padding:0 12px}.options-discussion-php .wrap>form .acf-fields.-left>.acf-field>.acf-input,.options-general-php .wrap>form .acf-fields.-left>.acf-field>.acf-input,.options-media-php .wrap>form .acf-fields.-left>.acf-field>.acf-input,.options-permalink-php .wrap>form .acf-fields.-left>.acf-field>.acf-input,.options-reading-php .wrap>form .acf-fields.-left>.acf-field>.acf-input,.options-writing-php .wrap>form .acf-fields.-left>.acf-field>.acf-input,.profile-php .wrap>form .acf-fields.-left>.acf-field>.acf-input,.term-php .wrap>form .acf-fields.-left>.acf-field>.acf-input,.user-edit-php .wrap>form .acf-fields.-left>.acf-field>.acf-input,.user-new-php .wrap>form .acf-fields.-left>.acf-field>.acf-input{padding:0 12px}.options-discussion-php .wrap>form p.submit,.options-general-php .wrap>form p.submit,.options-media-php .wrap>form p.submit,.options-permalink-php .wrap>form p.submit,.options-reading-php .wrap>form p.submit,.options-writing-php .wrap>form p.submit,.profile-php .wrap>form p.submit,.term-php .wrap>form p.submit,.user-edit-php .wrap>form p.submit,.user-new-php .wrap>form p.submit{display:none}.term-php .wrap>form{margin-top:13px}.edit-tags-php #col-left{display:none}.edit-tags-php #col-container #col-right{float:none;width:auto}.edit-tags-php #col-container #col-right .col-wrap{padding:0}.edit-tags-php #col-left.acfe-bt{float:none;width:100%}.edit-tags-php #col-left.acfe-bt .col-wrap{padding:0}.edit-tags-php #col-left.acfe-bt #poststuff{min-width:100%}.edit-tags-php #acfe-bt-form .submit.acf-field{display:block!important;margin:0}
assets/acf-extended.css CHANGED
@@ -394,8 +394,6 @@ form.acfe-form.is-invalid[data-errors-position="below"] .acf-field .acf-notice{
394
  .acf-fields > .acf-field.acf-field-acfe-column{
395
  float: left;
396
  clear: none;
397
- -webkit-box-sizing: border-box;
398
- -moz-box-sizing: border-box;
399
  box-sizing: border-box;
400
  padding:0;
401
  border-top-width:0;
@@ -431,45 +429,83 @@ form.acfe-form.is-invalid[data-errors-position="below"] .acf-field .acf-notice{
431
  width:100%;
432
  }
433
 
434
- .acf-fields > .acf-field.acf-field-acfe-column[data-columns="1/6"] {
435
- width: 16.66666666%;
436
  }
437
 
438
- .acf-fields > .acf-field.acf-field-acfe-column[data-columns="2/6"] {
439
- width: 33.33333%;
440
  }
441
 
442
- .acf-fields > .acf-field.acf-field-acfe-column[data-columns="3/6"] {
443
- width: 50%;
444
  }
445
 
446
- .acf-fields > .acf-field.acf-field-acfe-column[data-columns="4/6"] {
447
- width: 66.66666%;
448
  }
449
 
450
- .acf-fields > .acf-field.acf-field-acfe-column[data-columns="5/6"] {
451
- width: 83.33333%;
452
  }
453
 
454
- .acf-fields > .acf-field.acf-field-acfe-column[data-columns="6/6"] {
455
- width: 100%;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
456
  border-right:0;
457
  }
458
 
459
  @media only screen and (max-width:1024px){
460
- .acf-fields > .acf-field.acf-field-acfe-column[data-columns="1/6"],
461
- .acf-fields > .acf-field.acf-field-acfe-column[data-columns="2/6"],
462
- .acf-fields > .acf-field.acf-field-acfe-column[data-columns="4/6"],
463
- .acf-fields > .acf-field.acf-field-acfe-column[data-columns="5/6"] {
 
 
 
 
 
 
464
  width: 50%;
465
  }
466
  }
467
 
468
  @media only screen and (max-width:640px){
469
- .acf-fields > .acf-field.acf-field-acfe-column[data-columns="1/6"],
470
- .acf-fields > .acf-field.acf-field-acfe-column[data-columns="2/6"],
471
- .acf-fields > .acf-field.acf-field-acfe-column[data-columns="4/6"],
472
- .acf-fields > .acf-field.acf-field-acfe-column[data-columns="5/6"] {
 
 
 
 
 
 
 
 
473
  width: 100%;
474
  }
475
  }
@@ -499,8 +535,6 @@ form.acfe-form.is-invalid[data-errors-position="below"] .acf-field .acf-notice{
499
  .acf-ui-datepicker .ui-datepicker {
500
  padding: 0;
501
  border-color: #7e8993 !important;
502
- -webkit-border-radius: 4px;
503
- -moz-border-radius: 4px;
504
  border-radius: 4px;
505
  box-sizing: border-box;
506
  background:#fff;
@@ -532,15 +566,11 @@ form.acfe-form.is-invalid[data-errors-position="below"] .acf-field .acf-notice{
532
  background: #F9F9F9;
533
  color: #222;
534
  font-weight: normal;
535
- -webkit-border-radius: 4px 4px 0;
536
- -moz-border-radius: 4px 4px 0;
537
  border-radius: 4px 4px 0;
538
  }
539
  .acf-ui-datepicker .ui-datepicker .ui-datepicker-header .ui-state-hover {
540
  background: #F9F9F9;
541
  cursor: pointer;
542
- -webkit-border-radius: 0;
543
- -moz-border-radius: 0;
544
  border-radius: 0;
545
  border:0;
546
  }
@@ -751,4 +781,1099 @@ form.acfe-form.is-invalid[data-errors-position="below"] .acf-field .acf-notice{
751
  */
752
  body .medium-editor-toolbar {
753
  z-index: 999999 !important;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
754
  }
394
  .acf-fields > .acf-field.acf-field-acfe-column{
395
  float: left;
396
  clear: none;
 
 
397
  box-sizing: border-box;
398
  padding:0;
399
  border-top-width:0;
429
  width:100%;
430
  }
431
 
432
+ .acf-fields > .acf-field.acf-field-acfe-column[data-columns="1/12"] {
433
+ width: 8.333333%;
434
  }
435
 
436
+ .acf-fields > .acf-field.acf-field-acfe-column[data-columns="2/12"] {
437
+ width: 16.66666%;
438
  }
439
 
440
+ .acf-fields > .acf-field.acf-field-acfe-column[data-columns="3/12"] {
441
+ width: 25%;
442
  }
443
 
444
+ .acf-fields > .acf-field.acf-field-acfe-column[data-columns="4/12"] {
445
+ width: 33.33333%;
446
  }
447
 
448
+ .acf-fields > .acf-field.acf-field-acfe-column[data-columns="5/12"] {
449
+ width: 41.66667%;
450
  }
451
 
452
+ .acf-fields > .acf-field.acf-field-acfe-column[data-columns="6/12"] {
453
+ width: 50%;
454
+ }
455
+
456
+ .acf-fields > .acf-field.acf-field-acfe-column[data-columns="7/12"] {
457
+ width: 58.33333%;
458
+ }
459
+
460
+ .acf-fields > .acf-field.acf-field-acfe-column[data-columns="8/12"] {
461
+ width: 66.66666%;
462
+ }
463
+
464
+ .acf-fields > .acf-field.acf-field-acfe-column[data-columns="9/12"] {
465
+ width: 75%;
466
+ }
467
+
468
+ .acf-fields > .acf-field.acf-field-acfe-column[data-columns="10/12"] {
469
+ width: 83.33333%;
470
+ }
471
+
472
+ .acf-fields > .acf-field.acf-field-acfe-column[data-columns="11/12"] {
473
+ width: 91.66667%;
474
+ }
475
+
476
+ .acf-fields > .acf-field.acf-field-acfe-column[data-columns="12/12"] {
477
+ width: 100%;
478
  border-right:0;
479
  }
480
 
481
  @media only screen and (max-width:1024px){
482
+ .acf-fields > .acf-field.acf-field-acfe-column[data-columns="1/12"],
483
+ .acf-fields > .acf-field.acf-field-acfe-column[data-columns="2/12"],
484
+ .acf-fields > .acf-field.acf-field-acfe-column[data-columns="3/12"],
485
+ .acf-fields > .acf-field.acf-field-acfe-column[data-columns="4/12"],
486
+ .acf-fields > .acf-field.acf-field-acfe-column[data-columns="5/12"],
487
+ .acf-fields > .acf-field.acf-field-acfe-column[data-columns="7/12"],
488
+ .acf-fields > .acf-field.acf-field-acfe-column[data-columns="8/12"],
489
+ .acf-fields > .acf-field.acf-field-acfe-column[data-columns="9/12"],
490
+ .acf-fields > .acf-field.acf-field-acfe-column[data-columns="10/12"],
491
+ .acf-fields > .acf-field.acf-field-acfe-column[data-columns="11/12"] {
492
  width: 50%;
493
  }
494
  }
495
 
496
  @media only screen and (max-width:640px){
497
+ .acf-fields > .acf-field.acf-field-acfe-column[data-columns="1/12"],
498
+ .acf-fields > .acf-field.acf-field-acfe-column[data-columns="2/12"],
499
+ .acf-fields > .acf-field.acf-field-acfe-column[data-columns="3/12"],
500
+ .acf-fields > .acf-field.acf-field-acfe-column[data-columns="4/12"],
501
+ .acf-fields > .acf-field.acf-field-acfe-column[data-columns="5/12"],
502
+ .acf-fields > .acf-field.acf-field-acfe-column[data-columns="6/12"],
503
+ .acf-fields > .acf-field.acf-field-acfe-column[data-columns="7/12"],
504
+ .acf-fields > .acf-field.acf-field-acfe-column[data-columns="8/12"],
505
+ .acf-fields > .acf-field.acf-field-acfe-column[data-columns="9/12"],
506
+ .acf-fields > .acf-field.acf-field-acfe-column[data-columns="10/12"],
507
+ .acf-fields > .acf-field.acf-field-acfe-column[data-columns="11/12"],
508
+ .acf-fields > .acf-field.acf-field-acfe-column[data-columns="12/12"] {
509
  width: 100%;
510
  }
511
  }
535
  .acf-ui-datepicker .ui-datepicker {
536
  padding: 0;
537
  border-color: #7e8993 !important;
 
 
538
  border-radius: 4px;
539
  box-sizing: border-box;
540
  background:#fff;
566
  background: #F9F9F9;
567
  color: #222;
568
  font-weight: normal;
 
 
569
  border-radius: 4px 4px 0;
570
  }
571
  .acf-ui-datepicker .ui-datepicker .ui-datepicker-header .ui-state-hover {
572
  background: #F9F9F9;
573
  cursor: pointer;
 
 
574
  border-radius: 0;
575
  border:0;
576
  }
781
  */
782
  body .medium-editor-toolbar {
783
  z-index: 999999 !important;
784
+ }
785
+ /*
786
+ * Flexible: Sortable
787
+ */
788
+ .acf-flexible-content > .values > .ui-sortable-placeholder{
789
+ /*height:147px;*/
790
+ border-width:2px;
791
+ border-color:#ccc;
792
+ }
793
+
794
+ /*
795
+ * Flexible: Layout Handle
796
+ */
797
+ .acf-flexible-content .layout .acf-fc-layout-handle {
798
+ color: #444;
799
+ font-weight: 600;
800
+ }
801
+
802
+ /*
803
+ * Flexible: Field Error
804
+ */
805
+ .layout.acfe-flexible-modal-edit-error > .acf-fc-layout-handle{
806
+ color:#f33b28;
807
+ }
808
+
809
+ .layout.acfe-flexible-modal-edit-error > .acf-fc-layout-handle > .acf-fc-layout-order{
810
+ background:#f33b28;
811
+ color:#fff;
812
+ }
813
+
814
+ /*
815
+ * Flexible: Layout Collapsed
816
+ */
817
+
818
+ .acf-field-flexible-content[data-acfe-flexible-modal-edition="1"]:not([data-acfe-flexible-placeholder="1"]):not([data-acfe-flexible-preview="1"]) > .acf-input > .acf-flexible-content > .values > .layout > .acf-fc-layout-handle{
819
+ border-bottom-width:0;
820
+ }
821
+
822
+
823
+ .acf-field-flexible-content[data-acfe-flexible-placeholder="1"] > .acf-input > .acf-flexible-content > .values > .layout.-collapsed > .acf-fc-layout-handle,
824
+ .acf-field-flexible-content[data-acfe-flexible-preview="1"] > .acf-input > .acf-flexible-content > .values > .layout.-collapsed > .acf-fc-layout-handle{
825
+ border-bottom-width:1px;
826
+ }
827
+
828
+ .acf-field-flexible-content[data-acfe-flexible-lock="1"] > .acf-input > .acf-flexible-content > .values > .layout > .acf-fc-layout-handle{
829
+ cursor:initial;
830
+ }
831
+
832
+ .acf-field-flexible-content[data-acfe-flexible-remove-collapse="1"]:not([data-acfe-flexible-lock="1"]) > .acf-input > .acf-flexible-content > .values > .layout > .acf-fc-layout-handle{
833
+ cursor:initial;
834
+ }
835
+
836
+ /*
837
+ * Flexible: Popup Grey
838
+ */
839
+ .acf-fc-popup.top.acfe-fc-popup-grey:before{
840
+ border-top-color: #e1e1e1;
841
+ }
842
+ .acf-tooltip.bottom.acfe-fc-popup-grey:before{
843
+ border-bottom-color: #e1e1e1;
844
+ }
845
+ .acf-fc-popup.acfe-fc-popup-grey{
846
+ background: #fcfcfc;
847
+ border-radius: 3px;
848
+ color: #444;
849
+ border: 1px solid #e1e1e1;
850
+ font-size: 13px;
851
+ }
852
+ .acf-tooltip.top.acfe-fc-popup-grey{
853
+ margin-top: -16px;
854
+ }
855
+ .acf-tooltip.bottom.acfe-fc-popup-grey{
856
+ margin-bottom: -16px;
857
+ }
858
+
859
+ .acf-fc-popup.acfe-fc-popup-grey a{
860
+ color: #444;
861
+ }
862
+
863
+ .acf-fc-popup.acfe-fc-popup-grey a:hover{
864
+ color: #fff;
865
+ }
866
+
867
+ /*
868
+ * Flexible Layout: Placeholder
869
+ */
870
+ .layout > .acfe-fc-placeholder{
871
+ text-align:center;
872
+ background:#f9f9f9;
873
+ display:block;
874
+ text-decoration:none;
875
+ position:relative;
876
+ cursor:pointer;
877
+ }
878
+
879
+ .layout > .acfe-fc-placeholder:focus{
880
+ border-color: #ccc;
881
+ box-shadow: none;
882
+ }
883
+
884
+ .layout > .acfe-fc-placeholder > .acfe-flexible-placeholder{
885
+ height:110px;
886
+ overflow:hidden;
887
+ text-align:initial;
888
+ }
889
+
890
+ .layout > .acfe-fc-placeholder > a{
891
+ z-index:2;
892
+ position:absolute;
893
+ top:50%;
894
+ left:50%;
895
+ transform:translate(-50%, -50%);
896
+ border-color: #ccd0d4;
897
+ color: #23282d;
898
+ border-radius:100px;
899
+ box-shadow:none;
900
+ background:#fff;
901
+ width: 30px;
902
+ min-height: 30px;
903
+ height: 30px;
904
+ padding:0;
905
+ display:block;
906
+ }
907
+
908
+ body:not(.acf-admin-5-3) .layout > .acfe-fc-placeholder > a{
909
+ border-color: #999;
910
+ }
911
+
912
+ .acfe-modal.-open.acfe-modal-sub > .acfe-modal-wrapper > .acfe-modal-content > .acf-fields > .acf-field-flexible-content > .acf-input > .acf-flexible-content > .values > .layout > .acfe-fc-placeholder > a{
913
+ z-index:0;
914
+ }
915
+
916
+ .layout > .acfe-fc-placeholder > a:active{
917
+ transform:translate(-50%, -50%);
918
+ }
919
+
920
+ .layout > .acfe-fc-placeholder > a:focus{
921
+ border-color: #cccccc;
922
+ box-shadow: none;
923
+ }
924
+
925
+ .layout > .acfe-fc-placeholder > a span{
926
+ width: 29px;
927
+ height: 30px;
928
+ vertical-align:top;
929
+ line-height: 28px;
930
+ font-size:18px;
931
+ }
932
+
933
+ body:not(.acf-admin-5-3) .layout > .acfe-fc-placeholder > a span{
934
+ width: 30px;
935
+ height: 30px;
936
+ }
937
+
938
+ .layout > .acfe-fc-placeholder.acfe-fc-preview{
939
+ background:none;
940
+ }
941
+
942
+ .layout > .acfe-fc-placeholder.acfe-fc-preview > .acfe-flexible-placeholder{
943
+ min-height:55px;
944
+ height:auto;
945
+ }
946
+
947
+ .layout > .acfe-fc-placeholder.acfe-fc-preview > a{
948
+ display:none;
949
+ }
950
+
951
+ .layout > .acfe-fc-placeholder.acfe-fc-preview:hover > a{
952
+ display:block;
953
+ }
954
+
955
+ .layout > .acfe-fc-placeholder.acfe-fc-preview.-loading{
956
+ background:#f9f9f9;
957
+ min-height:110px;
958
+ }
959
+
960
+ .layout > .acfe-fc-placeholder.acfe-fc-preview.-loading > .acfe-flexible-placeholder > .spinner{
961
+ visibility:visible;
962
+ float:none;
963
+ position:absolute;
964
+ top:50%;
965
+ left:50%;
966
+ transform:translate(-50%, -50%);
967
+ margin:0;
968
+ z-index:10000;
969
+ }
970
+
971
+ .layout > .acfe-fc-placeholder .acfe-fc-overlay{
972
+ position:absolute;
973
+ width:100%;
974
+ height:100%;
975
+ padding:0;
976
+ background-color:rgba(255,255,255,0);
977
+ transition: background-color 200ms linear;
978
+ }
979
+
980
+ .layout > .acfe-fc-placeholder:hover .acfe-fc-overlay,
981
+ .layout > .acfe-fc-placeholder .acfe-fc-overlay.-hover{
982
+ background-color:rgba(255,255,255,0.7);
983
+ z-index:1;
984
+ }
985
+
986
+ .layout > .acfe-fc-placeholder.acfe-fc-preview.-loading > a span{
987
+ visibility:hidden;
988
+ }
989
+
990
+ /*
991
+ * Flexible Layout Collapsed
992
+ */
993
+ .layout > .acf-fields > .acfe-flexible-opened-actions,
994
+ .layout > .acf-table > .acfe-flexible-opened-actions{
995
+ background:#f9f9f9;
996
+ border-top:1px solid #e1e1e1;
997
+ padding:12px;
998
+ text-align:right;
999
+ clear:both;
1000
+ }
1001
+
1002
+ /*
1003
+ * Flexible Thumbnails
1004
+ *
1005
+ */
1006
+ .acfe-flexible-layout-thumbnail{
1007
+ display:block;
1008
+ width:100%;
1009
+ height: 9.8vw; /* 200px / 1080p */
1010
+ background-color:#eee;
1011
+ background-size:cover;
1012
+ background-repeat:no-repeat;
1013
+ background-position:center;
1014
+ position:relative;
1015
+ margin-bottom:15px;
1016
+ }
1017
+
1018
+ .acfe-flexible-layout-thumbnail.acfe-flexible-layout-thumbnail-not-found:after{
1019
+ content: "\f180";
1020
+ font-family: dashicons;
1021
+ display: inline-block;
1022
+ line-height: 1;
1023
+ font-weight: 400;
1024
+ font-style: normal;
1025
+ speak: none;
1026
+ text-decoration: inherit;
1027
+ text-transform: none;
1028
+ text-rendering: auto;
1029
+ -webkit-font-smoothing: antialiased;
1030
+ -moz-osx-font-smoothing: grayscale;
1031
+ vertical-align: top;
1032
+ text-align: center;
1033
+ position:absolute;
1034
+ top:50%;
1035
+ left:50%;
1036
+ transform: translate(-50%, -50%);
1037
+ color:#ccc;
1038
+ font-size: 110px;
1039
+ }
1040
+
1041
+ .acfe-col-2 .acfe-flexible-layout-thumbnail{
1042
+ height:20.5vw;
1043
+ }
1044
+
1045
+ .acfe-col-3 .acfe-flexible-layout-thumbnail{
1046
+ height:13.3vw;
1047
+ }
1048
+
1049
+ .acfe-col-5 .acfe-flexible-layout-thumbnail{
1050
+ height:7.65vw;
1051
+ }
1052
+
1053
+ .acfe-col-6 .acfe-flexible-layout-thumbnail{
1054
+ height:6.2vw;
1055
+ }
1056
+
1057
+ @media only screen and (max-width:960px){
1058
+ .acfe-flexible-layout-thumbnail,
1059
+ .acfe-flex-container .acfe-flexible-layout-thumbnail{
1060
+ height: 18.4vw; /* 200px */
1061
+ }
1062
+ }
1063
+
1064
+ @media only screen and (max-width:720px){
1065
+ .acfe-flexible-layout-thumbnail,
1066
+ .acfe-flex-container .acfe-flexible-layout-thumbnail{
1067
+ height: 37.2vw; /* 200px */
1068
+ }
1069
+ }
1070
+
1071
+ /*
1072
+ * Flexible Thumbnails (no modal)
1073
+ *
1074
+ */
1075
+ .acfe-flexible-layout-thumbnail.acfe-flexible-layout-thumbnail-no-modal{
1076
+ display:block;
1077
+ width: 230px;
1078
+ height: 103px;
1079
+ background-color:#1f2329;
1080
+ }
1081
+
1082
+ .acfe-flexible-layout-thumbnail.acfe-flexible-layout-thumbnail-no-modal.acfe-flexible-layout-thumbnail-not-found:after{
1083
+ color:#2F353E;
1084
+ }
1085
+
1086
+ /*
1087
+ * Flexible Stylised Button
1088
+ *
1089
+ */
1090
+ .acf-field.acf-field-flexible-content[data-acfe-flexible-stylised-button="1"] > .acf-input > .acf-flexible-content:not(.empty) > .values{
1091
+ margin-bottom:15px;
1092
+ }
1093
+
1094
+ .acf-field.acf-field-flexible-content > .acf-input > .acf-flexible-content > .acfe-flexible-stylised-button{
1095
+ padding: 40px 20px;
1096
+ border: #ccc dashed 2px;
1097
+ text-align: center;
1098
+ }
1099
+
1100
+ .acf-field.acf-field-flexible-content > .acf-input > .acf-flexible-content > .acfe-flexible-stylised-button > .acf-actions{
1101
+ text-align: center;
1102
+ }
1103
+
1104
+ .acf-field.acf-field-flexible-content > .acf-input > .acf-flexible-content .acf-actions .acf-button .dashicons{
1105
+ width: auto;
1106
+ height: auto;
1107
+ vertical-align: text-top;
1108
+ }
1109
+
1110
+ /*
1111
+ * Flexible Hide Empty Message
1112
+ *
1113
+ */
1114
+ .acf-field.acf-field-flexible-content[data-acfe-flexible-hide-empty-message="1"] > .acf-input > .acf-flexible-content > .no-value-message{
1115
+ display:none;
1116
+ }
1117
+
1118
+ .acf-field.acf-field-flexible-content[data-acfe-flexible-hide-empty-message="1"] > .acf-input > .acf-flexible-content.-empty > .values{
1119
+ margin-bottom:0;
1120
+ }
1121
+ /*
1122
+ * ACFE: Flexible Icons
1123
+ */
1124
+ .acf-flexible-content .layout .acf-icon.acfe-flexible-icon.dashicons:before{
1125
+ font-family: dashicons;
1126
+ }
1127
+
1128
+ .acf-flexible-content .layout .acf-icon.acfe-flexible-icon.dashicons{
1129
+ visibility: hidden;
1130
+ }
1131
+
1132
+ .acf-flexible-content .layout:hover > .acf-fc-layout-controls .acf-icon.acfe-flexible-icon.dashicons{
1133
+ visibility: visible;
1134
+ }
1135
+
1136
+ .acf-flexible-content .layout .acf-icon.acfe-flexible-icon.dashicons.dashicons-admin-generic{
1137
+ visibility: visible;
1138
+ }
1139
+ .acf-flexible-content .layout .acf-icon.acfe-flexible-icon.dashicons.dashicons-admin-generic:before{
1140
+ margin-left: 1px;
1141
+ }
1142
+
1143
+ .acf-flexible-content .layout:hover .acf-fc-layout-controls .acf-icon.-plus,
1144
+ .acf-flexible-content .layout:hover .acf-fc-layout-controls .acf-icon.-minus,
1145
+ .acf-flexible-content .layout:hover .acf-fc-layout-controls .acf-icon.-duplicate,
1146
+ .acf-flexible-content .layout.-hover .acf-fc-layout-controls .acf-icon.-plus,
1147
+ .acf-flexible-content .layout.-hover .acf-fc-layout-controls .acf-icon.-minus,
1148
+ .acf-flexible-content .layout.-hover .acf-fc-layout-controls .acf-icon.-duplicate {
1149
+ visibility: hidden;
1150
+ }
1151
+
1152
+ .acf-flexible-content .layout:hover > .acf-fc-layout-controls .acf-icon.-plus,
1153
+ .acf-flexible-content .layout:hover > .acf-fc-layout-controls .acf-icon.-minus,
1154
+ .acf-flexible-content .layout:hover > .acf-fc-layout-controls .acf-icon.-duplicate,
1155
+ .acf-flexible-content .layout.-hover > .acf-fc-layout-controls .acf-icon.-plus,
1156
+ .acf-flexible-content .layout.-hover > .acf-fc-layout-controls .acf-icon.-minus,
1157
+ .acf-flexible-content .layout.-hover > .acf-fc-layout-controls .acf-icon.-duplicate {
1158
+ visibility: visible;
1159
+ }
1160
+
1161
+ .acf-flexible-content .layout > .acf-fc-layout-controls .acf-icon.disabled{
1162
+ color: #ccc;
1163
+ cursor: initial;
1164
+ }
1165
+
1166
+ .acf-flexible-content .layout > .acf-fc-layout-controls .acf-icon.disabled:hover{
1167
+ color: #ccc;
1168
+ background: #F5F5F5;
1169
+ }
1170
+
1171
+ .acf-flexible-content[data-acfe-flexible-lock="1"] .layout .acf-fc-layout-handle{
1172
+ cursor:initial;
1173
+ }
1174
+
1175
+
1176
+ /*
1177
+ * ACFE: Title Edit
1178
+ */
1179
+ .acf-field-acfe-flexible-layout-title{
1180
+ display:none;
1181
+ }
1182
+
1183
+ input.acfe-flexible-control-title{
1184
+ border:none;
1185
+ box-shadow:none !important;
1186
+ outline:none !important;
1187
+ border-radius:0;
1188
+ border-bottom:1px solid transparent !important;
1189
+ font-weight:600;
1190
+ width:auto !important;
1191
+ padding:0 !important;
1192
+ display:none;
1193
+ min-height:20px;
1194
+ vertical-align: unset;
1195
+ background:none;
1196
+ }
1197
+
1198
+ .layout > .acf-fc-layout-handle .acfe-layout-title{
1199
+ cursor:text;
1200
+ position:relative;
1201
+ }
1202
+
1203
+ .layout:not(.acfe-flexible-title-edition) > .acf-fc-layout-handle .acfe-layout-title:hover{
1204
+ background:#f4f4f4;
1205
+ }
1206
+
1207
+ .layout.acfe-flexible-title-edition > .acf-fc-layout-handle .acfe-layout-title input.acfe-flexible-control-title{
1208
+ display:inline-block;
1209
+ border-bottom:1px solid #ddd !important;
1210
+ }
1211
+
1212
+ .layout.acfe-flexible-title-edition > .acf-fc-layout-handle .acfe-layout-title .acfe-layout-title-text{
1213
+ display:none;
1214
+ }
1215
+
1216
+ /*
1217
+ * ACFE: Toggle
1218
+ */
1219
+ .layout.acfe-flexible-layout-hidden > .acf-fc-layout-handle,
1220
+ .layout.acfe-flexible-layout-hidden > .acf-fc-layout-controls,
1221
+ .layout.acfe-flexible-layout-hidden > .acfe-fc-placeholder,
1222
+ .layout.acfe-flexible-layout-hidden > .acf-fields{
1223
+ filter: alpha(opacity=50);
1224
+ opacity: 0.5;
1225
+ }
1226
+ /*
1227
+ * Flexible Edit: Hide Collapse
1228
+ */
1229
+ .acf-field-flexible-content[data-acfe-flexible-modal-edition="1"] > .acf-input > .acf-flexible-content > .values > .layout > .acf-fc-layout-controls > a.-collapse{
1230
+ display:none;
1231
+ }
1232
+
1233
+ /*
1234
+ * ACFE Modal Body
1235
+ */
1236
+ body.acfe-modal-opened{
1237
+ overflow:hidden;
1238
+ }
1239
+
1240
+ /*
1241
+ * ACFE Modal Overlay
1242
+ */
1243
+ .acfe-modal-overlay{
1244
+ background:rgba(0,0,0,.7);
1245
+ position:fixed;
1246
+ top:0;
1247
+ left:0;
1248
+ right:0;
1249
+ bottom:0;
1250
+ height:100%;
1251
+ width:100%;
1252
+ z-index:100000;
1253
+ }
1254
+
1255
+ /*
1256
+ * ACFE Modal
1257
+ */
1258
+ .acfe-modal{
1259
+ display:none;
1260
+ transition: all 0.3s ease-in-out;
1261
+ }
1262
+
1263
+ .acfe-modal.-open{
1264
+ position:fixed;
1265
+ z-index:100001;
1266
+ height:100%;
1267
+ width:100%;
1268
+ top:0;
1269
+ left:0;
1270
+ bottom:0;
1271
+ right:0;
1272
+ -webkit-font-smoothing: subpixel-antialiased;
1273
+ display: flex;
1274
+ flex-direction: column;
1275
+ justify-content: center;
1276
+ align-items: center;
1277
+
1278
+ pointer-events:none;
1279
+ }
1280
+
1281
+ /*
1282
+ * ACFE Modal: Wrapper
1283
+ */
1284
+ .acfe-modal.-open > .acfe-modal-wrapper{
1285
+ box-shadow: 0 5px 15px rgba(0, 0, 0, 0.7);
1286
+ display: flex;
1287
+ flex-direction: column;
1288
+
1289
+ width: calc(100vw - 60px);
1290
+ max-width:1100px;
1291
+ max-height: calc(100vh - 60px);
1292
+ position:relative;
1293
+ }
1294
+
1295
+ .acfe-modal.-open.acfe-modal-sub > .acfe-modal-wrapper > .acfe-modal-wrapper-overlay{
1296
+ position:absolute;
1297
+ z-index:10;
1298
+ background:rgba(0,0,0,0.7);
1299
+ height:100%;
1300
+ width:100%;
1301
+ pointer-events:none;
1302
+ }
1303
+
1304
+ /*
1305
+ * ACFE Modal: Sizes
1306
+ */
1307
+ .acfe-modal.-open.-small > .acfe-modal-wrapper{
1308
+ max-width:450px;
1309
+ }
1310
+
1311
+ .acfe-modal.-open.-medium > .acfe-modal-wrapper{
1312
+ max-width:700px;
1313
+ }
1314
+
1315
+ .acfe-modal.-open.-large > .acfe-modal-wrapper{
1316
+ max-width:1100px;
1317
+ }
1318
+
1319
+ .acfe-modal.-open.-xlarge > .acfe-modal-wrapper{
1320
+ max-width:1400px;
1321
+ }
1322
+
1323
+ .acfe-modal.-open.-full > .acfe-modal-wrapper{
1324
+ max-width:100%;
1325
+ flex: 1;
1326
+ }
1327
+
1328
+ /*
1329
+ * ACFE Modal Full: Fix left fields background
1330
+ */
1331
+ .acfe-modal.-open.-full > .acfe-modal-wrapper > .acfe-modal-content > .acf-fields.-left {
1332
+ height:100%;
1333
+ }
1334
+
1335
+ .acfe-modal.-open.-full > .acfe-modal-wrapper > .acfe-modal-content > .acf-fields.-left:before {
1336
+ content: "";
1337
+ display: block;
1338
+ position: absolute;
1339
+ z-index: 0;
1340
+ background: #F9F9F9;
1341
+ border-color: #E1E1E1;
1342
+ border-style: solid;
1343
+ border-width: 0 1px 0 0;
1344
+ top: 0;
1345
+ bottom: 0;
1346
+ left: 0;
1347
+ width: 20%;
1348
+ }
1349
+
1350
+ /*
1351
+ * ACFE Modal Full: Fix Layout Settings background
1352
+ */
1353
+ .acfe-modal.-settings.-open.-full > .acfe-modal-wrapper > .acfe-modal-content > .acf-fields,
1354
+ .acfe-modal.-settings.-open.-full > .acfe-modal-wrapper > .acfe-modal-content > .acf-fields > .acf-field-clone,
1355
+ .acfe-modal.-settings.-open.-full > .acfe-modal-wrapper > .acfe-modal-content > .acf-fields > .acf-field-clone > .acf-input,
1356
+ .acfe-modal.-settings.-open.-full > .acfe-modal-wrapper > .acfe-modal-content > .acf-fields > .acf-field-clone > .acf-input > .acf-clone-fields.acf-fields.-left{
1357
+ height:100%;
1358
+ }
1359
+
1360
+ .acfe-modal.-settings.-open.-full > .acfe-modal-wrapper > .acfe-modal-content > .acf-fields > .acf-field-clone{
1361
+ padding:0;
1362
+ }
1363
+
1364
+ .acfe-modal.-settings.-open.-full > .acfe-modal-wrapper > .acfe-modal-content > .acf-fields > .acf-field-clone > .acf-input{
1365
+ margin:0;
1366
+ }
1367
+
1368
+ .acfe-modal.-settings.-open.-full > .acfe-modal-wrapper > .acfe-modal-content > .acf-fields > .acf-field-clone > .acf-input > .acf-clone-fields.acf-fields.-left:before {
1369
+ content: "";
1370
+ display: block;
1371
+ position: absolute;
1372
+ z-index: 0;
1373
+ background: #F9F9F9;
1374
+ border-color: #E1E1E1;
1375
+ border-style: solid;
1376
+ border-width: 0 1px 0 0;
1377
+ top: 0;
1378
+ bottom: 0;
1379
+ left: 0;
1380
+ width: 20%;
1381
+ }
1382
+
1383
+ /*
1384
+ * ACFE Modal Title
1385
+ */
1386
+ .acfe-modal.-open >.acfe-modal-title,
1387
+ .acfe-modal.-open .acfe-modal-title *{
1388
+ box-sizing:border-box;
1389
+ }
1390
+
1391
+ .acfe-modal.-open .acfe-modal-title{
1392
+ display:block;
1393
+ height: 50px;
1394
+ line-height: 50px;
1395
+ font-size: 22px;
1396
+ color: #23282d;
1397
+ border-bottom: 1px solid #ddd;
1398
+ text-overflow: ellipsis;
1399
+ background: #fcfcfc;
1400
+ padding: 0 0 0 16px;
1401
+ position:relative;
1402
+ text-align:left;
1403
+ pointer-events: auto;
1404
+ }
1405
+
1406
+ .acfe-modal.-open.acfe-modal-sub > .acfe-modal-wrapper > .acfe-modal-title{
1407
+ pointer-events: none;
1408
+ }
1409
+
1410
+ .acfe-modal.-open .acfe-modal-title > span.title{
1411
+ line-height: 50px;
1412
+ color: #23282d;
1413
+ font-weight: 600;
1414
+ }
1415
+
1416
+ .acfe-modal.-open .acfe-modal-title > span.title .acf-fc-layout-order{
1417
+ width: 30px;
1418
+ height: 30px;
1419
+ border-radius: 30px;
1420
+ display: inline-block;
1421
+ text-align: center;
1422
+ line-height: 30px;
1423
+ margin: 0 2px 0 0;
1424
+ background: #F1F1F1;
1425
+ font-size: 14px;
1426
+ color: #666;
1427
+ vertical-align: 2px;
1428
+ }
1429
+
1430
+ .acfe-modal.-open .acfe-modal-title > button.close{
1431
+ height: 50px;
1432
+ width: 50px;
1433
+ color: #666;
1434
+ border:0;
1435
+ border-left: 0;
1436
+ margin: 0;
1437
+ padding:0;
1438
+ border-radius: 0;
1439
+ position: absolute;
1440
+ top:0;
1441
+ right:0;
1442
+ transition: color .1s ease-in-out, background .1s ease-in-out;
1443
+ background:none;
1444
+ cursor:pointer;
1445
+ margin: 0;
1446
+ }
1447
+
1448
+ .acfe-modal.-open .acfe-modal-title > button.close:hover{
1449
+ color: #00a0d2;
1450
+ }
1451
+
1452
+ .acfe-modal.-open .acfe-modal-title > button.close:before{
1453
+ height: 50px;
1454
+ width: 50px;
1455
+ line-height: 50px !important;
1456
+ font: normal 20px/1 dashicons;
1457
+ content: "\f158";
1458
+ margin: 0;
1459
+ padding:0;
1460
+ }
1461
+
1462
+ /*
1463
+ * ACFE Modal Content
1464
+ */
1465
+ .acfe-modal.-open .acfe-modal-content{
1466
+ height:100%;
1467
+ background:#fff;
1468
+ display:block;
1469
+ position:relative;
1470
+ pointer-events: auto;
1471
+ overflow:auto;
1472
+ }
1473
+
1474
+ .acfe-modal.-open.-iframe .acfe-modal-content{
1475
+ overflow:hidden;
1476
+ }
1477
+
1478
+ .acfe-modal.-open.acfe-modal-sub > .acfe-modal-wrapper > .acfe-modal-content{
1479
+ pointer-events: none;
1480
+ }
1481
+
1482
+ /*
1483
+ * ACFE Modal Content: Tabs
1484
+ */
1485
+ .acfe-modal.-open .acfe-modal-content .nav-tab-wrapper{
1486
+ padding:0;
1487
+ margin:0;
1488
+ border-bottom:1px solid #ddd;
1489
+ }
1490
+
1491
+ .acfe-modal.-open .acfe-modal-content .nav-tab-wrapper a{
1492
+ margin:0;
1493
+ border-left:0;
1494
+ border-top:0;
1495
+ border-bottom:0;
1496
+ background:#fff;
1497
+ transition:color .1s ease-in-out, background .1s ease-in-out;
1498
+ padding:7px 15px;
1499
+ border-color:#ddd;
1500
+ }
1501
+
1502
+ .acfe-modal.-open .acfe-modal-content .nav-tab-wrapper a span.dashicons-menu{
1503
+ line-height:27px;
1504
+ }
1505
+
1506
+ .acfe-modal.-open > .acfe-modal-content .nav-tab-wrapper a:hover{
1507
+ background:#f9f9f9;
1508
+ color:#23282d;
1509
+ }
1510
+
1511
+ .acfe-modal.-open .acfe-modal-content .nav-tab-wrapper a.nav-tab-active,
1512
+ .acfe-modal.-open .acfe-modal-content .nav-tab-wrapper a.nav-tab-active:hover{
1513
+ background:#fcfcfc;
1514
+ color:#23282d;
1515
+ }
1516
+
1517
+ .acfe-modal.-open .acfe-modal-content .nav-tab:focus,
1518
+ .acfe-modal.-open .acfe-modal-content .nav-tab:focus:active {
1519
+ border-bottom: 0;
1520
+ box-shadow: none;
1521
+ outline:0;
1522
+ }
1523
+
1524
+ /*
1525
+ * ACFE Modal Content: Flex
1526
+ */
1527
+ .acfe-modal.-open .acfe-modal-content .acfe-flex-container,
1528
+ .acfe-modal.-open .acfe-modal-content .acfe-flex-container *{
1529
+ box-sizing:border-box;
1530
+ }
1531
+
1532
+ .acfe-modal.-open .acfe-modal-content .acfe-flex-container{
1533
+ width: 100%;
1534
+ padding: 14px;
1535
+ margin-right: auto;
1536
+ margin-left: auto;
1537
+ }
1538
+
1539
+ .acfe-modal.-open .acfe-modal-content .acfe-flexible-categories ~ .acfe-flex-container{
1540
+ overflow:auto;
1541
+ height:calc(100% - 39px);
1542
+ }
1543
+
1544
+ .acfe-modal.-open .acfe-modal-content .acfe-flex-container ul{
1545
+ margin: 0;
1546
+ margin-right: -7px;
1547
+ margin-left: -7px;
1548
+ display: flex;
1549
+ flex-wrap: wrap;
1550
+ }
1551
+
1552
+ .acfe-modal.-open >.acfe-modal-content .acfe-flex-container ul:after{
1553
+ content:"";
1554
+ clear:both;
1555
+ display:table;
1556
+ }
1557
+
1558
+ .acfe-modal.-open .acfe-modal-content .acfe-flex-container ul li{
1559
+ position: relative;
1560
+ width: 100%;
1561
+ padding-right: 7px;
1562
+ padding-left: 7px;
1563
+ padding-bottom: 14px;
1564
+ margin:0;
1565
+ flex: 0 0 25%;
1566
+ max-width: 25%;
1567
+ }
1568
+
1569
+ .acfe-modal.-open .acfe-modal-content .acfe-flex-container ul li a{
1570
+ border:1px solid #ddd;
1571
+ background:#F9F9F9;
1572
+ padding:15px;
1573
+ color:#333;
1574
+ display:block;
1575
+ text-decoration:none;
1576
+ }
1577
+
1578
+ .acfe-modal.-open .acfe-modal-content .acfe-flex-container ul li a:hover{
1579
+ background:#007cba;
1580
+ color:#fff;
1581
+ }
1582
+
1583
+ body:not(.acf-admin-5-3) .acfe-modal.-open .acfe-modal-content .acfe-flex-container ul li a:hover{
1584
+ background:#0073aa;
1585
+ }
1586
+
1587
+ .acfe-modal.-open .acfe-modal-content .acfe-flex-container ul li a span{
1588
+ display:block;
1589
+ font-size:16px;
1590
+ text-align:center;
1591
+ font-weight:600;
1592
+ }
1593
+
1594
+ .acfe-modal.-open .acfe-modal-content .acfe-flex-container ul li a span.no-thumbnail{
1595
+ text-align:left;
1596
+ }
1597
+
1598
+ .acfe-modal.-open .acfe-modal-content .acfe-flex-container ul li a.disabled{
1599
+ pointer-events:none;
1600
+ opacity:0.67;
1601
+ }
1602
+
1603
+ .acfe-modal.-open .acfe-modal-content .acfe-flex-container ul li a.disabled:hover{
1604
+ cursor:default;
1605
+ }
1606
+
1607
+ .acfe-modal.-open .acfe-modal-content .acfe-flex-container ul li a.disabled:focus{
1608
+ box-shadow:none;
1609
+ outline:none;
1610
+ }
1611
+
1612
+ .acfe-modal.-open .acfe-modal-content .acfe-flex-container.acfe-col-1 ul li{
1613
+ flex: 0 0 100%;
1614
+ max-width: 100%;
1615
+ }
1616
+
1617
+ .acfe-modal.-open .acfe-modal-content .acfe-flex-container.acfe-col-2 ul li{
1618
+ flex: 0 0 50%;
1619
+ max-width: 50%;
1620
+ }
1621
+
1622
+ .acfe-modal.-open .acfe-modal-content .acfe-flex-container.acfe-col-3 ul li{
1623
+ flex: 0 0 33.333333%;
1624
+ max-width: 33.333333%;
1625
+ }
1626
+
1627
+ .acfe-modal.-open .acfe-modal-content .acfe-flex-container.acfe-col-4 ul li{
1628
+ flex: 0 0 25%;
1629
+ max-width: 25%;
1630
+ }
1631
+
1632
+ .acfe-modal.-open .acfe-modal-content .acfe-flex-container.acfe-col-5 ul li{
1633
+ flex: 0 0 20%;
1634
+ max-width: 20%;
1635
+ }
1636
+
1637
+ .acfe-modal.-open .acfe-modal-content .acfe-flex-container.acfe-col-6 ul li{
1638
+ flex: 0 0 16.66%;
1639
+ max-width: 16.66%;
1640
+ }
1641
+
1642
+ @media only screen and (max-width:960px){
1643
+ .acfe-modal.-open .acfe-modal-content .acfe-flex-container ul li{
1644
+ flex: 0 0 50% !important;
1645
+ max-width: 50% !important;
1646
+ }
1647
+
1648
+ .acfe-modal.-open .acfe-modal-content .acfe-flex-container.acfe-col-1 ul li{
1649
+ flex: 0 0 100% !important;
1650
+ max-width: 100% !important;
1651
+ }
1652
+
1653
+ .acfe-modal.-open .acfe-modal-content ul li a{
1654
+ padding:7px;
1655
+ }
1656
+ }
1657
+
1658
+ @media only screen and (max-width:720px){
1659
+ .acfe-modal.-open .acfe-modal-content .acfe-flex-container ul li{
1660
+ flex: 0 0 100% !important;
1661
+ max-width: 100% !important;
1662
+ }
1663
+
1664
+ .acfe-modal.-open .acfe-modal-content .acfe-flex-container.acfe-col-1 ul li{
1665
+ flex: 0 0 100% !important;
1666
+ max-width: 100% !important;
1667
+ }
1668
+ }
1669
+
1670
+ /*
1671
+ * ACFE Modal footer
1672
+ */
1673
+ .acfe-modal.-open .acfe-modal-footer,
1674
+ .acfe-modal.-open .acfe-modal-footer *{
1675
+ box-sizing:border-box;
1676
+ }
1677
+
1678
+ .acfe-modal.-open .acfe-modal-footer{
1679
+ display:block;
1680
+ height: 50px;
1681
+ line-height: 50px;
1682
+ color: #23282d;
1683
+ background: #fcfcfc;
1684
+ padding: 0 16px;
1685
+ position:relative;
1686
+ text-align:right;
1687
+ border-top: 1px solid #ddd;
1688
+ pointer-events: auto;
1689
+ }
1690
+
1691
+ .acfe-modal.-open.acfe-modal-sub > .acfe-modal-wrapper > .acfe-modal-footer{
1692
+ pointer-events: none;
1693
+ }
1694
+
1695
+ .acfe-modal.-open .acfe-modal-footer > button{
1696
+ vertical-align: baseline;
1697
+ }
1698
+
1699
+ /*
1700
+ * ACFE Modal: Gutenberg Fix
1701
+ */
1702
+ body.block-editor-page .edit-post-layout .acfe-modal.-open{
1703
+ justify-content: start;
1704
+ align-items: start;
1705
+ }
1706
+
1707
+ body.block-editor-page .edit-post-layout .acfe-modal.-open > .acfe-modal-wrapper{
1708
+ margin-top: 88px;
1709
+ height: 100%;
1710
+ width: 100%;
1711
+ max-height: calc(100vh - 88px);
1712
+ }
1713
+
1714
+ body.block-editor-page .edit-post-layout .acfe-modal.-open > .acfe-modal-wrapper > .acfe-modal-content > .acf-fields.-left {
1715
+ height:100%;
1716
+ }
1717
+
1718
+ body.block-editor-page .edit-post-layout .acfe-modal.-open > .acfe-modal-wrapper > .acfe-modal-content > .acf-fields.-left:before {
1719
+ content: "";
1720
+ display: block;
1721
+ position: absolute;
1722
+ z-index: 0;
1723
+ background: #F9F9F9;
1724
+ border-color: #E1E1E1;
1725
+ border-style: solid;
1726
+ border-width: 0 1px 0 0;
1727
+ top: 0;
1728
+ bottom: 0;
1729
+ left: 0;
1730
+ width: 20%;
1731
+ }
1732
+
1733
+ @media only screen and (max-width: 1080px) {
1734
+ body.block-editor-page .edit-post-layout .acfe-modal.-open > .acfe-modal-wrapper{
1735
+ margin-top: 88px;
1736
+ }
1737
+ }
1738
+
1739
+ body.block-editor-page .edit-post-layout .acfe-modal.-open > .acfe-modal-wrapper{
1740
+ max-width: calc(100vw - 160px);
1741
+ margin-left: 160px;
1742
+ }
1743
+
1744
+ body.block-editor-page .edit-post-layout.is-sidebar-opened .acfe-modal.-open > .acfe-modal-wrapper{
1745
+ max-width: calc(100vw - 440px);
1746
+ }
1747
+
1748
+
1749
+ body.block-editor-page.folded .edit-post-layout .acfe-modal.-open > .acfe-modal-wrapper{
1750
+ max-width: calc(100vw - 36px);
1751
+ margin-left:36px;
1752
+ }
1753
+
1754
+ @media only screen and (max-width: 960px) {
1755
+ body.block-editor-page.auto-fold .edit-post-layout .acfe-modal.-open > .acfe-modal-wrapper{
1756
+ max-width: calc(100vw - 36px);
1757
+ margin-left:36px;
1758
+ }
1759
+ }
1760
+
1761
+ @media only screen and (max-width: 782px) {
1762
+ body.block-editor-page.auto-fold .edit-post-layout .acfe-modal.-open > .acfe-modal-wrapper{
1763
+ max-width: 100vw;
1764
+ margin-left:0;
1765
+ margin-top: 100px;
1766
+ }
1767
+ }
1768
+
1769
+ body.block-editor-page.folded .edit-post-layout.is-sidebar-opened .acfe-modal.-open > .acfe-modal-wrapper{
1770
+ max-width: calc(100vw - 316px);
1771
+ }
1772
+
1773
+ @media (min-width: 600px){
1774
+ body.block-editor-page.acfe-modal-opened .edit-post-layout__content {
1775
+ overflow-y: hidden;
1776
+ }
1777
+ }
1778
+
1779
+ body.block-editor-page .acfe-modal-overlay{
1780
+ display:none;
1781
+ }
1782
+
1783
+ /*
1784
+ * ACFE Modal: Attachment Single Fix
1785
+ */
1786
+ body.wp-admin.upload-php.acfe-modal-opened > div:not([style*="display: none;"]) > .media-modal.wp-core-ui:not(.acf-media-modal):before{
1787
+ content:"";
1788
+ display:block;
1789
+ position:absolute;
1790
+ background:rgba(0,0,0,.7);
1791
+ top:0;
1792
+ left:0;
1793
+ width:100%;
1794
+ height:100%;
1795
+ z-index:10000;
1796
+ }
1797
+ /*
1798
+ * ACF Field: Repeater Lock
1799
+ */
1800
+ .acf-field-repeater[data-acfe-repeater-lock="1"] > .acf-input > .acf-repeater > .acf-table > tbody > .acf-row > .acf-row-handle{
1801
+ cursor:initial;
1802
+ }
1803
+
1804
+ /*
1805
+ * ACF Field: Repeater Block Fix (Add spacing)
1806
+ */
1807
+ .acf-repeater.-row > table,
1808
+ .acf-repeater.-block > table{
1809
+ border-collapse: separate;
1810
+ border-spacing: 0 15px;
1811
+ background: none;
1812
+ border: 0;
1813
+ margin-top: -15px;
1814
+ margin-bottom: -7px;
1815
+ }
1816
+
1817
+ .acf-repeater.-row > table > *,
1818
+ .acf-repeater.-block > table > *{
1819
+ border-collapse: collapse;
1820
+ border-spacing: 0;
1821
+ }
1822
+
1823
+ .acf-repeater.-row > table > tbody > tr > td,
1824
+ .acf-repeater.-block > table > tbody > tr > td{
1825
+ border-top: 1px solid #ccd0d4 !important;
1826
+ border-bottom: 1px solid #ccd0d4 !important;
1827
+ }
1828
+
1829
+ .acf-repeater.-row > table > tbody > tr > td:first-of-type,
1830
+ .acf-repeater.-block > table > tbody > tr > td:first-of-type{
1831
+ border-left: 1px solid #ccd0d4 !important;
1832
+ }
1833
+
1834
+ .acf-repeater.-row > table > tbody > tr > td:last-of-type,
1835
+ .acf-repeater.-block > table > tbody > tr > td:last-of-type{
1836
+ border-right: 1px solid #ccd0d4 !important;
1837
+ }
1838
+
1839
+ body:not(.acf-admin-5-3) .acf-repeater.-row > table > tbody > tr > td,
1840
+ body:not(.acf-admin-5-3) .acf-repeater.-block > table > tbody > tr > td{
1841
+ border-top: 1px solid #E1E1E1;
1842
+ border-bottom: 1px solid #E1E1E1;
1843
+ }
1844
+
1845
+ body:not(.acf-admin-5-3) .acf-repeater.-row > table > tbody > tr > td:first-of-type,
1846
+ body:not(.acf-admin-5-3) .acf-repeater.-block > table > tbody > tr > td:first-of-type{
1847
+ border-left: 1px solid #E1E1E1;
1848
+ }
1849
+
1850
+ body:not(.acf-admin-5-3) .acf-repeater.-row > table > tbody > tr > td:last-of-type,
1851
+ body:not(.acf-admin-5-3) .acf-repeater.-block > table > tbody > tr > td:last-of-type{
1852
+ border-right: 1px solid #E1E1E1;
1853
+ }
1854
+
1855
+ /*
1856
+ * ACF Field: Repeater Table Fix (Remove headings when empty)
1857
+ */
1858
+ .acf-repeater.-table.-empty > .acf-table{
1859
+ display:none;
1860
+ }
1861
+
1862
+ /*
1863
+ * ACF Field: Repeater Add Row
1864
+ */
1865
+ .acf-field-repeater > .acf-input > .acf-repeater > .acfe-repeater-stylised-button{
1866
+ padding: 40px 20px;
1867
+ border: #ccc dashed 2px;
1868
+ text-align: center;
1869
+ }
1870
+
1871
+ .acf-field-repeater > .acf-input > .acf-repeater > .acfe-repeater-stylised-button > .acf-actions{
1872
+ text-align: center;
1873
+ }
1874
+
1875
+ .acf-field-flexible-content > .acf-input > .acf-repeater .acf-actions .acf-button .dashicons{
1876
+ width: auto;
1877
+ height: auto;
1878
+ vertical-align: text-top;
1879
  }
assets/acf-extended.js CHANGED
@@ -506,4 +506,3379 @@
506
 
507
  });
508
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
509
  })(jQuery);
506
 
507
  });
508
 
509
+ })(jQuery);
510
+ (function($){
511
+
512
+ if(typeof acf === 'undefined')
513
+ return;
514
+
515
+ /*
516
+ * Init
517
+ */
518
+ var flexible = acf.getFieldType('flexible_content');
519
+ var model = flexible.prototype;
520
+
521
+ /*
522
+ * Drag & Drop
523
+ */
524
+ model.addSortable = function( self ){
525
+
526
+ // bail early if max 1 row
527
+ if( this.get('max') == 1 ) {
528
+ return;
529
+ }
530
+
531
+ // add sortable
532
+ this.$layoutsWrap().sortable({
533
+ items: ' > .layout',
534
+ handle: '> .acf-fc-layout-handle',
535
+ forceHelperSize: false, // Changed to false
536
+ forcePlaceholderSize: true,
537
+ tolerance: "pointer", // Changed to pointer
538
+ scroll: true,
539
+ stop: function(event, ui) {
540
+ self.render();
541
+ },
542
+ update: function(event, ui) {
543
+ self.$input().trigger('change');
544
+ }
545
+ });
546
+
547
+ };
548
+
549
+ /*
550
+ * Actions
551
+ */
552
+ model.acfeOneClick = function(e, $el){
553
+
554
+ // Get Flexible
555
+ var flexible = this;
556
+
557
+ // Vars
558
+ var $clones = flexible.$clones();
559
+ var $layout_name = $($clones[0]).data('layout');
560
+
561
+ // Source
562
+ var $layout_source = null;
563
+ if($el.hasClass('acf-icon'))
564
+ $layout_source = $el.closest('.layout');
565
+
566
+ // Add
567
+ var $layout_added = flexible.add({
568
+ layout: $layout_name,
569
+ before: $layout_source
570
+ });
571
+
572
+ // Hide native tooltip
573
+ if($('.acf-fc-popup').length)
574
+ $('.acf-fc-popup').hide();
575
+
576
+ };
577
+
578
+ model.acfeLayoutInit = function($layout){
579
+
580
+ // Get Flexible
581
+ var flexible = this;
582
+
583
+ // Vars
584
+ var $controls = $layout.find('> .acf-fc-layout-controls');
585
+ var $handle = $layout.find('> .acf-fc-layout-handle');
586
+
587
+ // Placeholder
588
+ var $placeholder = $layout.find('> .acfe-fc-placeholder');
589
+
590
+ // Placeholder: Show
591
+ $placeholder.removeClass('acf-hidden');
592
+
593
+ // If no modal edition & opened: Hide Placeholder
594
+ if(!flexible.has('acfeFlexibleModalEdition') && !flexible.isLayoutClosed($layout)){
595
+
596
+ $placeholder.addClass('acf-hidden');
597
+
598
+ }
599
+
600
+ // Flexible has Preview
601
+ if(flexible.isLayoutClosed($layout) && flexible.has('acfeFlexiblePreview') && !$placeholder.hasClass('-loading')){
602
+
603
+ $placeholder.addClass('acfe-fc-preview -loading').find('> .acfe-flexible-placeholder').prepend('<span class="spinner"></span>');
604
+ $placeholder.find('> .acfe-fc-overlay').addClass('-hover');
605
+
606
+ // vars
607
+ var $input = $layout.children('input');
608
+ var prefix = $input.attr('name').replace('[acf_fc_layout]', '');
609
+
610
+ // ajax data
611
+ var ajaxData = {
612
+ action: 'acfe/flexible/layout_preview',
613
+ field_key: flexible.get('key'),
614
+ i: $layout.index(),
615
+ layout: $layout.data('layout'),
616
+ value: acf.serialize($layout, prefix)
617
+ };
618
+
619
+ acf.doAction('acfe/fields/flexible_content/before_preview', flexible.$el, $layout, ajaxData);
620
+ acf.doAction('acfe/fields/flexible_content/before_preview/name=' + flexible.get('name'), flexible.$el, $layout, ajaxData);
621
+ acf.doAction('acfe/fields/flexible_content/before_preview/key=' + flexible.get('key'), flexible.$el, $layout, ajaxData);
622
+ acf.doAction('acfe/fields/flexible_content/before_preview/name=' + flexible.get('name') + '&layout=' + $layout.data('layout'), flexible.$el, $layout, ajaxData);
623
+ acf.doAction('acfe/fields/flexible_content/before_preview/key=' + flexible.get('key') + '&layout=' + $layout.data('layout'), flexible.$el, $layout, ajaxData);
624
+
625
+ // ajax
626
+ $.ajax({
627
+ url: acf.get('ajaxurl'),
628
+ data: acf.prepareForAjax(ajaxData),
629
+ dataType: 'html',
630
+ type: 'post',
631
+ success: function(response){
632
+
633
+ if(response){
634
+
635
+ $placeholder.find('> .acfe-flexible-placeholder').html(response);
636
+
637
+ }else{
638
+
639
+ $placeholder.removeClass('acfe-fc-preview');
640
+
641
+ }
642
+
643
+ acf.doAction('acfe/fields/flexible_content/preview', response, flexible.$el, $layout, ajaxData);
644
+ acf.doAction('acfe/fields/flexible_content/preview/name=' + flexible.get('name'), response, flexible.$el, $layout, ajaxData);
645
+ acf.doAction('acfe/fields/flexible_content/preview/key=' + flexible.get('key'), response, flexible.$el, $layout, ajaxData);
646
+ acf.doAction('acfe/fields/flexible_content/preview/name=' + flexible.get('name') + '&layout=' + $layout.data('layout'), response, flexible.$el, $layout, ajaxData);
647
+ acf.doAction('acfe/fields/flexible_content/preview/key=' + flexible.get('key') + '&layout=' + $layout.data('layout'), response, flexible.$el, $layout, ajaxData);
648
+
649
+ },
650
+ complete: function(){
651
+
652
+ $placeholder.find('> .acfe-fc-overlay').removeClass('-hover');
653
+ $placeholder.removeClass('-loading').find('> .acfe-flexible-placeholder > .spinner').remove();
654
+
655
+ }
656
+ });
657
+
658
+ }
659
+
660
+ };
661
+
662
+ /*
663
+ * WYSIWYG
664
+ */
665
+ var wysiwyg = acf.getFieldType('wysiwyg').prototype;
666
+ wysiwyg.initialize = function(){
667
+
668
+ // initializeEditor if no delay
669
+ if( !this.has('id') && !this.$control().hasClass('delay') ) {
670
+ this.initializeEditor();
671
+ }
672
+
673
+ };
674
+
675
+ var acfeFlexibleDelayInit = function(editor){
676
+
677
+ if(editor.has('id') || !editor.$el.is(':visible') || acfe.isFilterEnabled('acfeForceOpen'))
678
+ return;
679
+
680
+ var $wrap = editor.$control();
681
+
682
+ if($wrap.hasClass('delay')){
683
+
684
+ $wrap.removeClass('delay');
685
+ $wrap.find('.acf-editor-toolbar').remove();
686
+
687
+ // initialize
688
+ editor.initializeEditor();
689
+
690
+ }
691
+
692
+ };
693
+
694
+ acf.addAction('show_field/type=wysiwyg', acfeFlexibleDelayInit);
695
+ acf.addAction('ready_field/type=wysiwyg', acfeFlexibleDelayInit);
696
+
697
+ /*
698
+ * Spawn
699
+ */
700
+ acf.addAction('new_field/type=flexible_content', function(flexible){
701
+
702
+ // Vars
703
+ var $clones = flexible.$clones();
704
+ var $layouts = flexible.$layouts();
705
+
706
+ // Merge
707
+ var $all_layouts = $.merge($layouts, $clones);
708
+
709
+ // Do Actions
710
+ $layouts.each(function(){
711
+
712
+ var $layout = $(this);
713
+ var $name = $layout.data('layout');
714
+
715
+ acf.doAction('acfe/flexible/layouts', $layout, flexible);
716
+ acf.doAction('acfe/flexible/layout/name=' + $name, $layout, flexible);
717
+
718
+ });
719
+
720
+ // ACFE: 1 layout available - OneClick
721
+ if($clones.length === 1){
722
+
723
+ // Remove native ACF Tooltip action
724
+ flexible.removeEvents({'click [data-name="add-layout"]': 'onClickAdd'});
725
+
726
+ // Add ACF Extended Modal action
727
+ flexible.addEvents({'click [data-name="add-layout"]': 'acfeOneClick'});
728
+
729
+ }
730
+
731
+ flexible.addEvents({'click .acfe-fc-placeholder': 'onClickCollapse'});
732
+
733
+ flexible.addEvents({'click .acfe-flexible-opened-actions > a': 'onClickCollapse'});
734
+
735
+ // Flexible: Ajax
736
+ if(flexible.has('acfeFlexibleAjax')){
737
+
738
+ flexible.add = function(args){
739
+
740
+ // Get Flexible
741
+ var flexible = this;
742
+
743
+ // defaults
744
+ args = acf.parseArgs(args, {
745
+ layout: '',
746
+ before: false
747
+ });
748
+
749
+ // validate
750
+ if( !this.allowAdd() ) {
751
+ return false;
752
+ }
753
+
754
+ // ajax
755
+ $.ajax({
756
+ url: acf.get('ajaxurl'),
757
+ data: acf.prepareForAjax({
758
+ action: 'acfe/flexible/models',
759
+ field_key: this.get('key'),
760
+ layout: args.layout,
761
+ }),
762
+ dataType: 'html',
763
+ type: 'post',
764
+ beforeSend: function(){
765
+ $('body').addClass('-loading');
766
+ },
767
+ success: function(html){
768
+ if(html){
769
+
770
+ var $layout = $(html);
771
+ var uniqid = acf.uniqid();
772
+
773
+ var search = 'acf[' + flexible.get('key') + '][acfcloneindex]';
774
+ var replace = flexible.$control().find('> input[type=hidden]').attr('name') + '[' + uniqid + ']';
775
+
776
+ // add row
777
+ var $el = acf.duplicate({
778
+ target: $layout,
779
+ search: search,
780
+ replace: replace,
781
+ append: flexible.proxy(function( $el, $el2 ){
782
+
783
+ // append
784
+ if( args.before ) {
785
+ args.before.before( $el2 );
786
+ } else {
787
+ flexible.$layoutsWrap().append( $el2 );
788
+ }
789
+
790
+ // enable
791
+ acf.enable( $el2, flexible.cid );
792
+
793
+ // render
794
+ flexible.render();
795
+ })
796
+ });
797
+
798
+ // Fix data-id
799
+ $el.attr('data-id', uniqid);
800
+
801
+ // trigger change for validation errors
802
+ flexible.$input().trigger('change');
803
+
804
+ // return
805
+ return $el;
806
+
807
+ }
808
+ },
809
+ 'complete': function(){
810
+ $('body').removeClass('-loading');
811
+ }
812
+ });
813
+
814
+ };
815
+
816
+ }
817
+
818
+ });
819
+
820
+ acf.addAction('acfe/flexible/layouts', function($layout, flexible){
821
+
822
+ // Layout Closed
823
+ if(flexible.isLayoutClosed($layout)){
824
+
825
+ // Placeholder
826
+ $layout.find('> .acfe-fc-placeholder').removeClass('acf-hidden');
827
+
828
+ if(flexible.has('acfeFlexibleOpen')){
829
+
830
+ acfe.enableFilter('acfeForceOpen');
831
+
832
+ flexible.openLayout($layout);
833
+
834
+ acfe.disableFilter('acfeForceOpen');
835
+
836
+ }
837
+
838
+ }
839
+
840
+ });
841
+
842
+ acf.addAction('show', function($layout, type){
843
+
844
+ if(type !== 'collapse' || !$layout.is('.layout'))
845
+ return;
846
+
847
+ var flexible = acf.getInstance($layout.closest('.acf-field-flexible-content'));
848
+
849
+ // Hide Placeholder
850
+ if(!flexible.has('acfeFlexibleModalEdition')){
851
+
852
+ // Placeholder
853
+ $layout.find('> .acfe-fc-placeholder').addClass('acf-hidden');
854
+
855
+ }
856
+
857
+ });
858
+
859
+ acf.addAction('hide', function($layout, type){
860
+
861
+ if(type !== 'collapse' || !$layout.is('.layout') || $layout.is('.acf-clone'))
862
+ return;
863
+
864
+ // Get Flexible
865
+ var flexible = acf.getInstance($layout.closest('.acf-field-flexible-content'));
866
+
867
+ // Remove Ajax Title
868
+ if(flexible.has('acfeFlexibleRemoveAjaxTitle')){
869
+
870
+ flexible.renderLayout = function($layout){};
871
+
872
+ }
873
+
874
+ // Preview Ajax
875
+ flexible.acfeLayoutInit($layout);
876
+
877
+ });
878
+
879
+ acf.addAction('append', function($el){
880
+
881
+ // Bail early if layout is not layout
882
+ if(!$el.is('.layout'))
883
+ return;
884
+
885
+ // Get Flexible
886
+ var flexible = acf.getInstance($el.closest('.acf-field-flexible-content'));
887
+
888
+ // Open Layout
889
+ if(!$el.is('.acfe-layout-duplicated')){
890
+
891
+ // Modal Edition: Open
892
+ if(flexible.has('acfeFlexibleModalEdition')){
893
+
894
+ $el.find('> [data-action="acfe-flexible-modal-edit"]:first').trigger('click');
895
+
896
+ }
897
+
898
+ // Normal Edition: Open
899
+ else{
900
+
901
+ flexible.openLayout($el);
902
+
903
+ }
904
+
905
+ }
906
+
907
+ flexible.acfeLayoutInit($el);
908
+
909
+ var $modal = flexible.$el.closest('.acfe-modal.-open');
910
+
911
+ if($modal.length){
912
+
913
+ // Scroll to new layout
914
+ $modal.find('> .acfe-modal-wrapper > .acfe-modal-content').animate({
915
+ scrollTop: parseInt($el.offset().top) - 200
916
+ }, 200);
917
+
918
+ }else{
919
+
920
+ var acfVersion = parseFloat(acf.get('acf_version'));
921
+
922
+ if(acfVersion < 5.9){
923
+
924
+ // Scroll to new layout
925
+ $('html, body').animate({
926
+ scrollTop: parseInt($el.offset().top) - 200
927
+ }, 200);
928
+
929
+ }
930
+
931
+ }
932
+
933
+ });
934
+
935
+ /*
936
+ * Field Error
937
+ */
938
+ acf.addAction('invalid_field', function(field){
939
+
940
+ field.$el.parents('.layout').addClass('acfe-flexible-modal-edit-error');
941
+
942
+ });
943
+
944
+ /*
945
+ * Field Valid
946
+ */
947
+ acf.addAction('valid_field', function(field){
948
+
949
+ field.$el.parents('.layout').each(function(){
950
+
951
+ var $layout = $(this);
952
+
953
+ if(!$layout.find('.acf-error').length)
954
+ $layout.removeClass('acfe-flexible-modal-edit-error');
955
+
956
+ });
957
+
958
+ });
959
+
960
+ })(jQuery);
961
+ (function($){
962
+
963
+ if(typeof acf === 'undefined')
964
+ return;
965
+
966
+ /*
967
+ * Init
968
+ */
969
+ var flexible = acf.getFieldType('flexible_content');
970
+ var model = flexible.prototype;
971
+
972
+ /*
973
+ * Actions
974
+ */
975
+ model.events['click .acf-fc-layout-handle'] = 'acfeEditLayoutTitleToggleHandle';
976
+ model.acfeEditLayoutTitleToggleHandle = function(e, $el){
977
+
978
+ var flexible = this;
979
+
980
+ // Title Edition
981
+ if(!flexible.has('acfeFlexibleTitleEdition'))
982
+ return;
983
+
984
+ // Vars
985
+ var $layout = $el.closest('.layout');
986
+
987
+ if($layout.hasClass('acfe-flexible-title-edition')){
988
+
989
+ $layout.find('> .acf-fc-layout-handle > .acfe-layout-title > input.acfe-flexible-control-title').trigger('blur');
990
+
991
+ }
992
+
993
+ }
994
+
995
+ model.events['click .acfe-layout-title-text'] = 'acfeEditLayoutTitle';
996
+ model.acfeEditLayoutTitle = function(e, $el){
997
+
998
+ // Get Flexible
999
+ var flexible = this;
1000
+
1001
+ // Title Edition
1002
+ if(!flexible.has('acfeFlexibleTitleEdition'))
1003
+ return;
1004
+
1005
+ // Stop propagation
1006
+ e.stopPropagation();
1007
+
1008
+ // Toggle
1009
+ flexible.acfeEditLayoutTitleToggle(e, $el);
1010
+
1011
+ }
1012
+
1013
+ model.events['blur input.acfe-flexible-control-title'] = 'acfeEditLayoutTitleToggle';
1014
+ model.acfeEditLayoutTitleToggle = function(e, $el){
1015
+
1016
+ var flexible = this;
1017
+
1018
+ // Vars
1019
+ var $layout = $el.closest('.layout');
1020
+ var $handle = $layout.find('> .acf-fc-layout-handle');
1021
+ var $title = $handle.find('.acfe-layout-title');
1022
+
1023
+ if($layout.hasClass('acfe-flexible-title-edition')){
1024
+
1025
+ var $input = $title.find('> input[data-acfe-flexible-control-title-input]');
1026
+
1027
+ if($input.val() === '')
1028
+ $input.val($input.attr('placeholder')).trigger('input');
1029
+
1030
+ $layout.removeClass('acfe-flexible-title-edition');
1031
+
1032
+ $input.insertAfter($handle);
1033
+
1034
+ }
1035
+
1036
+ else{
1037
+
1038
+ var $input = $layout.find('> input[data-acfe-flexible-control-title-input]');
1039
+
1040
+ var $input = $input.appendTo($title);
1041
+
1042
+ $layout.addClass('acfe-flexible-title-edition');
1043
+ $input.focus().attr('size', $input.val().length);
1044
+
1045
+ }
1046
+
1047
+ }
1048
+
1049
+ // Layout: Edit Title
1050
+ model.events['click input.acfe-flexible-control-title'] = 'acfeEditLayoutTitlePropagation';
1051
+ model.acfeEditLayoutTitlePropagation = function(e, $el){
1052
+
1053
+ e.stopPropagation();
1054
+
1055
+ }
1056
+
1057
+ // Layout: Edit Title Input
1058
+ model.events['input [data-acfe-flexible-control-title-input]'] = 'acfeEditLayoutTitleInput';
1059
+ model.acfeEditLayoutTitleInput = function(e, $el){
1060
+
1061
+ // Vars
1062
+ var $layout = $el.closest('.layout');
1063
+ var $title = $layout.find('> .acf-fc-layout-handle .acfe-layout-title .acfe-layout-title-text');
1064
+
1065
+ var val = $el.val();
1066
+
1067
+ $el.attr('size', val.length);
1068
+
1069
+ $title.html(val);
1070
+
1071
+ }
1072
+
1073
+ // Layout: Edit Title Input Enter
1074
+ model.events['keypress [data-acfe-flexible-control-title-input]'] = 'acfeEditLayoutTitleInputEnter';
1075
+ model.acfeEditLayoutTitleInputEnter = function(e, $el){
1076
+
1077
+ // Enter Key
1078
+ if(e.keyCode !== 13)
1079
+ return;
1080
+
1081
+ e.preventDefault();
1082
+ $el.blur();
1083
+
1084
+ }
1085
+
1086
+ // Layout: Settings
1087
+ model.events['click [data-acfe-flexible-settings]'] = 'acfeLayoutSettings';
1088
+ model.acfeLayoutSettings = function(e, $el){
1089
+
1090
+ // Get Flexible
1091
+ var flexible = this;
1092
+
1093
+ // Vars
1094
+ var $layout = $el.closest('.layout');
1095
+
1096
+ // Modal data
1097
+ var $modal = $layout.find('> .acfe-modal.-settings');
1098
+ var $handle = $layout.find('> .acf-fc-layout-handle');
1099
+
1100
+ var $layout_order = $handle.find('> .acf-fc-layout-order').outerHTML();
1101
+ var $layout_title = $handle.find('.acfe-layout-title-text').text();
1102
+
1103
+ // Open modal
1104
+ acfe.modal.open($modal, {
1105
+ title: $layout_order + ' ' + $layout_title,
1106
+ footer: acf.__('Close'),
1107
+ onOpen: function(){
1108
+
1109
+ },
1110
+ onClose: function(){
1111
+
1112
+ if(flexible.has('acfeFlexiblePreview')){
1113
+
1114
+ flexible.closeLayout($layout);
1115
+
1116
+ }
1117
+
1118
+ }
1119
+ });
1120
+
1121
+ }
1122
+
1123
+ /*
1124
+ * Layout: Toggle Action
1125
+ */
1126
+ model.events['click [data-acfe-flexible-control-toggle]'] = 'acfeLayoutToggle';
1127
+ model.acfeLayoutToggle = function(e, $el){
1128
+
1129
+ // Get Flexible
1130
+ var flexible = this;
1131
+
1132
+ // Vars
1133
+ var $layout = $el.closest('.layout');
1134
+
1135
+ var $field = $layout.find('> .acfe-flexible-layout-toggle');
1136
+
1137
+ if(!$field.length)
1138
+ return;
1139
+
1140
+ if($field.val() === '1'){
1141
+
1142
+ $layout.removeClass('acfe-flexible-layout-hidden');
1143
+ $field.val('');
1144
+
1145
+ }else{
1146
+
1147
+ $layout.addClass('acfe-flexible-layout-hidden');
1148
+ $field.val('1');
1149
+
1150
+ }
1151
+
1152
+ }
1153
+
1154
+ /*
1155
+ * Layout: Toggle Spawn
1156
+ */
1157
+ acf.addAction('acfe/flexible/layouts', function($layout, flexible){
1158
+
1159
+ if(!flexible.has('acfeFlexibleToggle'))
1160
+ return;
1161
+
1162
+ // Layout Closed
1163
+ var $field = $layout.find('> .acfe-flexible-layout-toggle');
1164
+
1165
+ if(!$field.length)
1166
+ return;
1167
+
1168
+ if($field.val() === '1'){
1169
+
1170
+ $layout.addClass('acfe-flexible-layout-hidden');
1171
+
1172
+ }else{
1173
+
1174
+ $layout.removeClass('acfe-flexible-layout-hidden');
1175
+
1176
+ }
1177
+
1178
+ });
1179
+
1180
+ // Layout: Clone
1181
+ model.events['click [data-acfe-flexible-control-clone]'] = 'acfeCloneLayout';
1182
+ model.acfeCloneLayout = function(e, $el){
1183
+
1184
+ // Get Flexible
1185
+ var flexible = this;
1186
+
1187
+ // Vars
1188
+ var $layout = $el.closest('.layout');
1189
+ var layout_name = $layout.data('layout');
1190
+
1191
+ // Popup min/max
1192
+ var $popup = $(flexible.$popup().html());
1193
+ var $layouts = flexible.$layouts();
1194
+
1195
+ var countLayouts = function(name){
1196
+ return $layouts.filter(function(){
1197
+ return $(this).data('layout') === name;
1198
+ }).length;
1199
+ };
1200
+
1201
+ // vars
1202
+ var $a = $popup.find('[data-layout="' + layout_name + '"]');
1203
+ var min = $a.data('min') || 0;
1204
+ var max = $a.data('max') || 0;
1205
+ var count = countLayouts(layout_name);
1206
+
1207
+ // max
1208
+ if(max && count >= max){
1209
+
1210
+ $el.addClass('disabled');
1211
+ return false;
1212
+
1213
+ }else{
1214
+
1215
+ $el.removeClass('disabled');
1216
+
1217
+ }
1218
+
1219
+ // Fix inputs
1220
+ flexible.acfeFixInputs($layout);
1221
+
1222
+ var $_layout = $layout.clone();
1223
+
1224
+ // Clean Layout
1225
+ flexible.acfeCleanLayouts($_layout);
1226
+
1227
+ var parent = $el.closest('.acf-flexible-content').find('> input[type=hidden]').attr('name');
1228
+
1229
+ // Clone
1230
+ var $layout_added = flexible.acfeDuplicate({
1231
+ layout: $_layout,
1232
+ before: $layout,
1233
+ parent: parent
1234
+ });
1235
+
1236
+ }
1237
+
1238
+ // Layout: Copy
1239
+ model.events['click [data-acfe-flexible-control-copy]'] = 'acfeCopyLayout';
1240
+ model.acfeCopyLayout = function(e, $el){
1241
+
1242
+ // Get Flexible
1243
+ var flexible = this;
1244
+
1245
+ // Vars
1246
+ var $layout = $el.closest('.layout').clone();
1247
+ var source = flexible.$control().find('> input[type=hidden]').attr('name');
1248
+
1249
+ // Fix inputs
1250
+ flexible.acfeFixInputs($layout);
1251
+
1252
+ // Clean layout
1253
+ flexible.acfeCleanLayouts($layout);
1254
+
1255
+ // Get layout data
1256
+ var data = JSON.stringify({
1257
+ source: source,
1258
+ layouts: $layout[0].outerHTML
1259
+ });
1260
+
1261
+ // Append Temp Input
1262
+ var $input = $('<input type="text" style="clip:rect(0,0,0,0);clip-path:rect(0,0,0,0);position:absolute;" value="" />').appendTo($('body'));
1263
+ $input.attr('value', data).select();
1264
+
1265
+ // Command: Copy
1266
+ if(document.execCommand('copy'))
1267
+ alert('Layout has been transferred to your clipboard');
1268
+
1269
+ // Prompt
1270
+ else
1271
+ prompt('Copy the following layout data to your clipboard', data);
1272
+
1273
+ // Remove the temp input
1274
+ $input.remove();
1275
+
1276
+ }
1277
+
1278
+ // Flexible: Copy Layouts
1279
+ model.acfeCopyLayouts = function(){
1280
+
1281
+ // Get Flexible
1282
+ var flexible = this;
1283
+
1284
+ // Get layouts
1285
+ var $layouts = flexible.$layoutsWrap().clone();
1286
+ var source = flexible.$control().find('> input[type=hidden]').attr('name');
1287
+
1288
+ // Fix inputs
1289
+ flexible.acfeFixInputs($layouts);
1290
+
1291
+ // Clean layout
1292
+ flexible.acfeCleanLayouts($layouts);
1293
+
1294
+ // Get layouts data
1295
+ var data = JSON.stringify({
1296
+ source: source,
1297
+ layouts: $layouts.html()
1298
+ });
1299
+
1300
+ // Append Temp Input
1301
+ var $input = $('<input type="text" style="clip:rect(0,0,0,0);clip-path:rect(0,0,0,0);position:absolute;" value="" />').appendTo(flexible.$el);
1302
+ $input.attr('value', data).select();
1303
+
1304
+ // Command: Copy
1305
+ if(document.execCommand('copy'))
1306
+ alert('Layouts have been transferred to your clipboard');
1307
+
1308
+ // Prompt
1309
+ else
1310
+ prompt('Copy the following layouts data to your clipboard', data);
1311
+
1312
+ $input.remove();
1313
+
1314
+ }
1315
+
1316
+ // Flexible: Paste Layouts
1317
+ model.acfePasteLayouts = function(){
1318
+
1319
+ // Get Flexible
1320
+ var flexible = this;
1321
+
1322
+ var paste = prompt('Paste layouts data in the following field');
1323
+
1324
+ // No input
1325
+ if(paste == null || paste === '')
1326
+ return;
1327
+
1328
+ try{
1329
+
1330
+ // Paste HTML
1331
+ var data = JSON.parse(paste);
1332
+ var source = data.source;
1333
+ var $html = $(data.layouts);
1334
+
1335
+ // Parsed layouts
1336
+ var $html_layouts = $html.closest('[data-layout]');
1337
+
1338
+ if(!$html_layouts.length)
1339
+ return alert('No layouts data available');
1340
+
1341
+ // Popup min/max
1342
+ var $popup = $(flexible.$popup().html());
1343
+ var $layouts = flexible.$layouts();
1344
+
1345
+ var countLayouts = function(name){
1346
+ return $layouts.filter(function(){
1347
+ return $(this).data('layout') === name;
1348
+ }).length;
1349
+ };
1350
+
1351
+ // init
1352
+ var validated_layouts = [];
1353
+
1354
+ // Each first level layouts
1355
+ $html_layouts.each(function(){
1356
+
1357
+ var $this = $(this);
1358
+ var layout_name = $this.data('layout');
1359
+
1360
+ // vars
1361
+ var $a = $popup.find('[data-layout="' + layout_name + '"]');
1362
+ var min = $a.data('min') || 0;
1363
+ var max = $a.data('max') || 0;
1364
+ var count = countLayouts(layout_name);
1365
+
1366
+ // max
1367
+ if(max && count >= max)
1368
+ return;
1369
+
1370
+ // Validate layout against available layouts
1371
+ var get_clone_layout = flexible.$clone($this.attr('data-layout'));
1372
+
1373
+ // Layout is invalid
1374
+ if(!get_clone_layout.length)
1375
+ return;
1376
+
1377
+ // Add validated layout
1378
+ validated_layouts.push($this);
1379
+
1380
+ });
1381
+
1382
+ // Nothing to add
1383
+ if(!validated_layouts.length)
1384
+ return alert('No layouts could be pasted');
1385
+
1386
+ // Add layouts
1387
+ $.each(validated_layouts, function(){
1388
+
1389
+ var $layout = $(this);
1390
+ var search = source + '[' + $layout.attr('data-id') + ']';
1391
+ var target = flexible.$control().find('> input[type=hidden]').attr('name');
1392
+
1393
+ flexible.acfeDuplicate({
1394
+ layout: $layout,
1395
+ before: false,
1396
+ search: search,
1397
+ parent: target
1398
+ });
1399
+
1400
+ });
1401
+
1402
+ }catch(e){
1403
+
1404
+ console.log(e);
1405
+ alert('Invalid data');
1406
+
1407
+ }
1408
+
1409
+ }
1410
+
1411
+ // Flexible: Dropdown
1412
+ model.events['click [data-name="acfe-flexible-control-button"]'] = 'acfeControl';
1413
+ model.acfeControl = function(e, $el){
1414
+
1415
+ // Get Flexible
1416
+ var flexible = this;
1417
+
1418
+ // Vars
1419
+ var $dropdown = $el.next('.tmpl-acfe-flexible-control-popup').html();
1420
+
1421
+ // Init Popup
1422
+ var Popup = acf.models.TooltipConfirm.extend({
1423
+ render: function(){
1424
+ this.html(this.get('text'));
1425
+ this.$el.addClass('acf-fc-popup');
1426
+ }
1427
+ });
1428
+
1429
+ // New Popup
1430
+ var popup = new Popup({
1431
+ target: $el,
1432
+ targetConfirm: false,
1433
+ text: $dropdown,
1434
+ context: flexible,
1435
+ confirm: function(e, $el){
1436
+
1437
+ if($el.attr('data-acfe-flexible-control-action') === 'paste')
1438
+ flexible.acfePasteLayouts();
1439
+
1440
+ else if($el.attr('data-acfe-flexible-control-action') === 'copy')
1441
+ flexible.acfeCopyLayouts();
1442
+
1443
+ }
1444
+ });
1445
+
1446
+ popup.on('click', 'a', 'onConfirm');
1447
+
1448
+ }
1449
+
1450
+ // Flexible: Duplicate
1451
+ model.acfeDuplicate = function(args){
1452
+
1453
+ // Arguments
1454
+ args = acf.parseArgs(args, {
1455
+ layout: '',
1456
+ before: false,
1457
+ parent: false,
1458
+ search: '',
1459
+ replace: '',
1460
+ });
1461
+
1462
+ // Validate
1463
+ if(!this.allowAdd())
1464
+ return false;
1465
+
1466
+ var uniqid = acf.uniqid();
1467
+
1468
+ if(args.parent){
1469
+
1470
+ if(!args.search){
1471
+
1472
+ args.search = args.parent + '[' + args.layout.attr('data-id') + ']';
1473
+
1474
+ }
1475
+
1476
+ args.replace = args.parent + '[' + uniqid + ']';
1477
+
1478
+ }
1479
+
1480
+ var duplicate_args = {
1481
+ target: args.layout,
1482
+ search: args.search,
1483
+ replace: args.replace,
1484
+ append: this.proxy(function($el, $el2){
1485
+
1486
+ // Add class to duplicated layout
1487
+ $el2.addClass('acfe-layout-duplicated');
1488
+
1489
+ // Reset UniqID
1490
+ $el2.attr('data-id', uniqid);
1491
+
1492
+ // append before
1493
+ if(args.before){
1494
+
1495
+ // Fix clone: Use after() instead of native before()
1496
+ args.before.after($el2);
1497
+
1498
+ }
1499
+
1500
+ // append end
1501
+ else{
1502
+
1503
+ this.$layoutsWrap().append($el2);
1504
+
1505
+ }
1506
+
1507
+ // enable
1508
+ acf.enable($el2, this.cid);
1509
+
1510
+ // render
1511
+ this.render();
1512
+
1513
+ })
1514
+ }
1515
+
1516
+ var acfVersion = parseFloat(acf.get('acf_version'));
1517
+
1518
+ if(acfVersion < 5.9){
1519
+
1520
+ // Add row
1521
+ var $el = acf.duplicate(duplicate_args);
1522
+
1523
+ // Hotfix for ACF Pro 5.9
1524
+ }else{
1525
+
1526
+ // Add row
1527
+ var $el = model.acfeNewAcfDuplicate(duplicate_args);
1528
+
1529
+ }
1530
+
1531
+ // trigger change for validation errors
1532
+ this.$input().trigger('change');
1533
+
1534
+ // Fix tabs conditionally hidden
1535
+ var tabs = acf.getFields({
1536
+ type: 'tab',
1537
+ parent: $el,
1538
+ });
1539
+
1540
+ if(tabs.length){
1541
+
1542
+ $.each(tabs, function(){
1543
+
1544
+ if(this.$el.hasClass('acf-hidden')){
1545
+
1546
+ this.tab.$el.addClass('acf-hidden');
1547
+
1548
+ }
1549
+
1550
+ });
1551
+
1552
+ }
1553
+
1554
+
1555
+ // return
1556
+ return $el;
1557
+
1558
+ }
1559
+
1560
+ /*
1561
+ * Based on acf.duplicate (5.9)
1562
+ *
1563
+ * doAction('duplicate) has been commented out
1564
+ * This fix an issue with the WYSIWYG editor field during copy/paste since ACF 5.9
1565
+ */
1566
+ model.acfeNewAcfDuplicate = function( args ){
1567
+
1568
+ // allow jQuery
1569
+ if( args instanceof jQuery ) {
1570
+ args = {
1571
+ target: args
1572
+ };
1573
+ }
1574
+
1575
+ // defaults
1576
+ args = acf.parseArgs(args, {
1577
+ target: false,
1578
+ search: '',
1579
+ replace: '',
1580
+ rename: true,
1581
+ before: function( $el ){},
1582
+ after: function( $el, $el2 ){},
1583
+ append: function( $el, $el2 ){
1584
+ $el.after( $el2 );
1585
+ }
1586
+ });
1587
+
1588
+ // compatibility
1589
+ args.target = args.target || args.$el;
1590
+
1591
+ // vars
1592
+ var $el = args.target;
1593
+
1594
+ // search
1595
+ args.search = args.search || $el.attr('data-id');
1596
+ args.replace = args.replace || acf.uniqid();
1597
+
1598
+ // before
1599
+ // - allow acf to modify DOM
1600
+ // - fixes bug where select field option is not selected
1601
+ args.before( $el );
1602
+ acf.doAction('before_duplicate', $el);
1603
+
1604
+ // clone
1605
+ var $el2 = $el.clone();
1606
+
1607
+ // rename
1608
+ if( args.rename ) {
1609
+ acf.rename({
1610
+ target: $el2,
1611
+ search: args.search,
1612
+ replace: args.replace,
1613
+ replacer: ( typeof args.rename === 'function' ? args.rename : null )
1614
+ });
1615
+ }
1616
+
1617
+ // remove classes
1618
+ $el2.removeClass('acf-clone');
1619
+ $el2.find('.ui-sortable').removeClass('ui-sortable');
1620
+
1621
+ // after
1622
+ // - allow acf to modify DOM
1623
+ args.after( $el, $el2 );
1624
+ acf.doAction('after_duplicate', $el, $el2 );
1625
+
1626
+ // append
1627
+ args.append( $el, $el2 );
1628
+
1629
+ /**
1630
+ * Fires after an element has been duplicated and appended to the DOM.
1631
+ *
1632
+ * @date 30/10/19
1633
+ * @since 5.8.7
1634
+ *
1635
+ * @param jQuery $el The original element.
1636
+ * @param jQuery $el2 The duplicated element.
1637
+ */
1638
+ //acf.doAction('duplicate', $el, $el2 );
1639
+
1640
+ // append
1641
+ acf.doAction('append', $el2);
1642
+
1643
+ // return
1644
+ return $el2;
1645
+ };
1646
+
1647
+ // Flexible: Fix Inputs
1648
+ model.acfeFixInputs = function($layout){
1649
+
1650
+ $layout.find('input').each(function(){
1651
+
1652
+ $(this).attr('value', this.value);
1653
+
1654
+ });
1655
+
1656
+ $layout.find('textarea').each(function(){
1657
+
1658
+ $(this).html(this.value);
1659
+
1660
+ });
1661
+
1662
+ $layout.find('input:radio,input:checkbox').each(function() {
1663
+
1664
+ if(this.checked)
1665
+ $(this).attr('checked', 'checked');
1666
+
1667
+ else
1668
+ $(this).attr('checked', false);
1669
+
1670
+ });
1671
+
1672
+ $layout.find('option').each(function(){
1673
+
1674
+ if(this.selected)
1675
+ $(this).attr('selected', 'selected');
1676
+
1677
+ else
1678
+ $(this).attr('selected', false);
1679
+
1680
+ });
1681
+
1682
+ }
1683
+
1684
+ // Flexible: Clean Layout
1685
+ model.acfeCleanLayouts = function($layout){
1686
+
1687
+ // Clean WP Editor
1688
+ $layout.find('.acf-editor-wrap').each(function(){
1689
+
1690
+ var $input = $(this);
1691
+
1692
+ $input.find('.wp-editor-container div').remove();
1693
+ $input.find('.wp-editor-container textarea').css('display', '');
1694
+
1695
+ });
1696
+
1697
+ // Clean Date
1698
+ $layout.find('.acf-date-picker').each(function(){
1699
+
1700
+ var $input = $(this);
1701
+
1702
+ $input.find('input.input').removeClass('hasDatepicker').removeAttr('id');
1703
+
1704
+ });
1705
+
1706
+ // Clean Time
1707
+ $layout.find('.acf-time-picker').each(function(){
1708
+
1709
+ var $input = $(this);
1710
+
1711
+ $input.find('input.input').removeClass('hasDatepicker').removeAttr('id');
1712
+
1713
+ });
1714
+
1715
+ // Clean DateTime
1716
+ $layout.find('.acf-date-time-picker').each(function(){
1717
+
1718
+ var $input = $(this);
1719
+
1720
+ $input.find('input.input').removeClass('hasDatepicker').removeAttr('id');
1721
+
1722
+ });
1723
+
1724
+ // Clean Code Editor
1725
+ $layout.find('.acfe-field-code-editor').each(function(){
1726
+
1727
+ var $input = $(this);
1728
+
1729
+ $input.find('.CodeMirror').remove();
1730
+
1731
+ });
1732
+
1733
+ // Clean Color Picker
1734
+ $layout.find('.acf-color-picker').each(function(){
1735
+
1736
+ var $input = $(this);
1737
+
1738
+ var $color_picker = $input.find('> input');
1739
+ var $color_picker_proxy = $input.find('.wp-picker-container input.wp-color-picker').clone();
1740
+
1741
+ $color_picker.after($color_picker_proxy);
1742
+
1743
+ $input.find('.wp-picker-container').remove();
1744
+
1745
+ });
1746
+
1747
+ // Clean Post Object
1748
+ $layout.find('.acf-field-post-object').each(function(){
1749
+
1750
+ var $input = $(this);
1751
+
1752
+ $input.find('> .acf-input span').remove();
1753
+
1754
+ $input.find('> .acf-input select').removeAttr('tabindex aria-hidden').removeClass();
1755
+
1756
+ });
1757
+
1758
+ // Clean Page Link
1759
+ $layout.find('.acf-field-page-link').each(function(){
1760
+
1761
+ var $input = $(this);
1762
+
1763
+ $input.find('> .acf-input span').remove();
1764
+
1765
+ $input.find('> .acf-input select').removeAttr('tabindex aria-hidden').removeClass();
1766
+
1767
+ });
1768
+
1769
+ // Clean Select2
1770
+ $layout.find('.acf-field-select').each(function(){
1771
+
1772
+ var $input = $(this);
1773
+
1774
+ $input.find('> .acf-input span').remove();
1775
+
1776
+ $input.find('> .acf-input select').removeAttr('tabindex aria-hidden').removeClass();
1777
+
1778
+ });
1779
+
1780
+ // Clean FontAwesome
1781
+ $layout.find('.acf-field-font-awesome').each(function(){
1782
+
1783
+ var $input = $(this);
1784
+
1785
+ $input.find('> .acf-input span').remove();
1786
+
1787
+ $input.find('> .acf-input select').removeAttr('tabindex aria-hidden');
1788
+
1789
+ });
1790
+
1791
+
1792
+ // Clean Tab
1793
+ $layout.find('.acf-tab-wrap').each(function(){
1794
+
1795
+ var $wrap = $(this);
1796
+
1797
+ var $content = $wrap.closest('.acf-fields');
1798
+
1799
+ var tabs = [];
1800
+ $.each($wrap.find('li a'), function(){
1801
+
1802
+ tabs.push($(this));
1803
+
1804
+ });
1805
+
1806
+ $content.find('> .acf-field-tab').each(function(){
1807
+
1808
+ $current_tab = $(this);
1809
+
1810
+ $.each(tabs, function(){
1811
+
1812
+ var $this = $(this);
1813
+
1814
+ if($this.attr('data-key') !== $current_tab.attr('data-key'))
1815
+ return;
1816
+
1817
+ $current_tab.find('> .acf-input').append($this);
1818
+
1819
+ });
1820
+
1821
+ });
1822
+
1823
+ $wrap.remove();
1824
+
1825
+ });
1826
+
1827
+ // Clean Accordion
1828
+ $layout.find('.acf-field-accordion').each(function(){
1829
+
1830
+ var $input = $(this);
1831
+
1832
+ $input.find('> .acf-accordion-title > .acf-accordion-icon').remove();
1833
+
1834
+ // Append virtual endpoint after each accordion
1835
+ $input.after('<div class="acf-field acf-field-accordion" data-type="accordion"><div class="acf-input"><div class="acf-fields" data-endpoint="1"></div></div></div>');
1836
+
1837
+ });
1838
+
1839
+ }
1840
+
1841
+ /*
1842
+ * Spawn
1843
+ */
1844
+ acf.addAction('new_field/type=flexible_content', function(flexible){
1845
+
1846
+ // ACFE: Lock
1847
+ if(flexible.has('acfeFlexibleLock')){
1848
+
1849
+ flexible.removeEvents({'mouseover': 'onHover'});
1850
+
1851
+ }
1852
+
1853
+ });
1854
+
1855
+ })(jQuery);
1856
+ (function($){
1857
+
1858
+ if(typeof acf === 'undefined')
1859
+ return;
1860
+
1861
+ /*
1862
+ * Init
1863
+ */
1864
+ var flexible = acf.getFieldType('flexible_content');
1865
+ var model = flexible.prototype;
1866
+
1867
+ /*
1868
+ * Actions
1869
+ */
1870
+ model.acfeModalSelect = function(e, $el){
1871
+
1872
+ // Get Flexible
1873
+ var flexible = this;
1874
+
1875
+ // Validate
1876
+ if(!flexible.validateAdd())
1877
+ return false;
1878
+
1879
+ // Layout
1880
+ var $layout_source = null;
1881
+
1882
+ if($el.hasClass('acf-icon'))
1883
+ $layout_source = $el.closest('.layout');
1884
+
1885
+ // Get Available Layouts
1886
+ var layouts = flexible.getPopupHTML();
1887
+
1888
+ // Init Categories
1889
+ var categories = {
1890
+ array: [],
1891
+ html: ''
1892
+ };
1893
+
1894
+ function SearchArray(element, array){
1895
+
1896
+ var len = array.length,
1897
+ str = element.toString().toLowerCase();
1898
+
1899
+ for(var i = 0; i < len; i++){
1900
+ if(array[i].toLowerCase() === str){
1901
+ return i;
1902
+ }
1903
+ }
1904
+
1905
+ return -1;
1906
+
1907
+ }
1908
+
1909
+ // Get Categories
1910
+ $(layouts).find('li a span').each(function(){
1911
+
1912
+ var $link = $(this);
1913
+
1914
+ if(!$link.data('acfe-flexible-category'))
1915
+ return true;
1916
+
1917
+ var category = $link.data('acfe-flexible-category');
1918
+
1919
+ $.each(category, function(i, c){
1920
+
1921
+ if(SearchArray(c, categories.array) !== -1)
1922
+ return true;
1923
+
1924
+ categories.array.push(c);
1925
+
1926
+ });
1927
+
1928
+ });
1929
+
1930
+ // Categories HTML
1931
+ if(categories.array.length){
1932
+
1933
+ categories.array.sort();
1934
+
1935
+ categories.html += '<h2 class="acfe-flexible-categories nav-tab-wrapper">';
1936
+
1937
+ categories.html += '<a href="#" data-acfe-flexible-category="acfe-all" class="nav-tab nav-tab-active"><span class="dashicons dashicons-menu"></span></a>';
1938
+
1939
+ $(categories.array).each(function(k, category){
1940
+
1941
+ categories.html += '<a href="#" data-acfe-flexible-category="' + category + '" class="nav-tab">' + category + '</a>';
1942
+
1943
+ });
1944
+
1945
+ categories.html += '</h2>';
1946
+
1947
+ }
1948
+
1949
+ // Modal Title
1950
+ var $modal_title = 'Add Row';
1951
+
1952
+ if(flexible.has('acfeFlexibleModalTitle'))
1953
+ $modal_title = flexible.get('acfeFlexibleModalTitle');
1954
+
1955
+ // Create Modal
1956
+ var $modal = $('' +
1957
+ '<div class="acfe-modal">' +
1958
+
1959
+ categories.html +
1960
+ '<div class="acfe-flex-container">' +
1961
+ layouts +
1962
+ '</div>' +
1963
+
1964
+ '</div>'
1965
+
1966
+ ).appendTo('body');
1967
+
1968
+ // Open Modal
1969
+ var $modal = acfe.modal.open($modal, {
1970
+ title: $modal_title,
1971
+ size: 'full',
1972
+ destroy: true
1973
+ });
1974
+
1975
+ // Modal: Columns
1976
+ if(flexible.has('acfeFlexibleModalCol'))
1977
+ $modal.find('.acfe-modal-content .acfe-flex-container').addClass('acfe-col-' + flexible.get('acfeFlexibleModalCol'));
1978
+
1979
+ // Modal: ACF autofocus fix
1980
+ $modal.find('li:first-of-type a').blur();
1981
+
1982
+ // count layouts
1983
+ var $layouts = flexible.$layouts();
1984
+ var countLayouts = function(name){
1985
+
1986
+ return $layouts.filter(function(){
1987
+ return $(this).data('layout') === name;
1988
+ }).length;
1989
+
1990
+ };
1991
+
1992
+ $modal.find('a[data-layout]').each(function(){
1993
+
1994
+ // vars
1995
+ var $a = $(this);
1996
+ var min = $a.data('min') || 0;
1997
+ var max = $a.data('max') || 0;
1998
+ var name = $a.data('layout') || '';
1999
+ var count = countLayouts( name );
2000
+
2001
+ // max
2002
+ if(max && count >= max){
2003
+ $a.addClass('disabled');
2004
+ return;
2005
+ }
2006
+
2007
+ // min
2008
+ if(min && count < min){
2009
+
2010
+ // vars
2011
+ var required = min - count;
2012
+ var title = acf.__('{required} {label} {identifier} required (min {min})');
2013
+ var identifier = acf._n('layout', 'layouts', required);
2014
+
2015
+ // translate
2016
+ title = title.replace('{required}', required);
2017
+ title = title.replace('{label}', name); // 5.5.0
2018
+ title = title.replace('{identifier}', identifier);
2019
+ title = title.replace('{min}', min);
2020
+
2021
+ // badge
2022
+ $a.append('<span class="badge" title="' + title + '">' + required + '</span>');
2023
+
2024
+ }
2025
+
2026
+ });
2027
+
2028
+ // Modal: Click Categories
2029
+ $modal.find('.acfe-flexible-categories a').click(function(e){
2030
+
2031
+ e.preventDefault();
2032
+
2033
+ var $link = $(this);
2034
+
2035
+ $link.closest('.acfe-flexible-categories').find('a').removeClass('nav-tab-active');
2036
+ $link.addClass('nav-tab-active');
2037
+
2038
+ var selected_category = $link.data('acfe-flexible-category');
2039
+
2040
+ $modal.find('a[data-layout] span').each(function(){
2041
+
2042
+ // Get span
2043
+ var $span = $(this);
2044
+
2045
+ // Show All
2046
+ $span.closest('li').show();
2047
+
2048
+ var category = $span.data('acfe-flexible-category');
2049
+
2050
+ // Specific category
2051
+ if(selected_category !== 'acfe-all'){
2052
+
2053
+ // Hide All
2054
+ $span.closest('li').hide();
2055
+
2056
+ $.each(category, function(i, c){
2057
+
2058
+ if(selected_category.toLowerCase() === c.toLowerCase()){
2059
+
2060
+ $span.closest('li').show();
2061
+
2062
+ return false;
2063
+
2064
+ }
2065
+
2066
+ });
2067
+
2068
+ }
2069
+
2070
+ });
2071
+
2072
+ });
2073
+
2074
+ // Modal: Click Add Layout
2075
+ $modal.on('click', 'a[data-layout]', function(e){
2076
+
2077
+ e.preventDefault();
2078
+
2079
+ // Close modal
2080
+ acfe.modal.close(true);
2081
+
2082
+ // Add layout
2083
+ var $layout_added = flexible.add({
2084
+ layout: $(this).data('layout'),
2085
+ before: $layout_source
2086
+ });
2087
+
2088
+ });
2089
+
2090
+ }
2091
+
2092
+ /*
2093
+ * Spawn
2094
+ */
2095
+ acf.addAction('new_field/type=flexible_content', function(flexible){
2096
+
2097
+ if(!flexible.has('acfeFlexibleModal'))
2098
+ return;
2099
+
2100
+ // Vars
2101
+ var $clones = flexible.$clones();
2102
+
2103
+ if($clones.length <= 1)
2104
+ return;
2105
+
2106
+ // Remove native ACF Tooltip action
2107
+ flexible.removeEvents({'click [data-name="add-layout"]': 'onClickAdd'});
2108
+
2109
+ // Add ACF Extended Modal action
2110
+ flexible.addEvents({'click [data-name="add-layout"]': 'acfeModalSelect'});
2111
+
2112
+ });
2113
+
2114
+ })(jQuery);
2115
+ (function($){
2116
+
2117
+ if(typeof acf === 'undefined')
2118
+ return;
2119
+
2120
+ /*
2121
+ * Init
2122
+ */
2123
+ var flexible = acf.getFieldType('flexible_content');
2124
+ var model = flexible.prototype;
2125
+
2126
+ /*
2127
+ * Actions
2128
+ */
2129
+ model.events['click [data-action="acfe-flexible-modal-edit"]'] = 'acfeModalEdit';
2130
+ model.acfeModalEdit = function(e, $el){
2131
+
2132
+ var flexible = this;
2133
+
2134
+ // Layout
2135
+ var $layout = $el.closest('.layout');
2136
+
2137
+ // Modal data
2138
+ var $modal = $layout.find('> .acfe-modal.-fields');
2139
+ var $handle = $layout.find('> .acf-fc-layout-handle');
2140
+
2141
+ var $layout_order = $handle.find('> .acf-fc-layout-order').outerHTML();
2142
+ var $layout_title = $handle.find('.acfe-layout-title-text').text();
2143
+
2144
+ var close = false;
2145
+ if(flexible.has('acfeFlexibleCloseButton')){
2146
+
2147
+ close = acf.__('Close');
2148
+
2149
+ }
2150
+
2151
+ // Open modal
2152
+ acfe.modal.open($modal, {
2153
+ title: $layout_order + ' ' + $layout_title,
2154
+ footer: close,
2155
+ onOpen: function(){
2156
+
2157
+ flexible.openLayout($layout);
2158
+
2159
+ },
2160
+ onClose: function(){
2161
+
2162
+ flexible.closeLayout($layout);
2163
+
2164
+ }
2165
+ });
2166
+
2167
+ };
2168
+
2169
+ /*
2170
+ * Spawn
2171
+ */
2172
+ acf.addAction('new_field/type=flexible_content', function(flexible){
2173
+
2174
+ if(flexible.has('acfeFlexibleModalEdition') && (flexible.has('acfeFlexiblePlaceholder') || flexible.has('acfeFlexiblePreview'))){
2175
+
2176
+ // Remove Collapse Action
2177
+ flexible.removeEvents({'click [data-name="collapse-layout"]': 'onClickCollapse'});
2178
+
2179
+ // Remove placeholder Collapse Action
2180
+ flexible.removeEvents({'click .acfe-fc-placeholder': 'onClickCollapse'});
2181
+
2182
+ }
2183
+
2184
+ });
2185
+
2186
+ })(jQuery);
2187
+ function acfe_recaptcha(){
2188
+
2189
+ (function($){
2190
+
2191
+ if(typeof acf === 'undefined')
2192
+ return;
2193
+
2194
+ /**
2195
+ * Field: reCaptcha (render)
2196
+ */
2197
+ $.each(acf.getFields({type: 'acfe_recaptcha'}), function(i, field){
2198
+
2199
+ field.render();
2200
+
2201
+ });
2202
+
2203
+ })(jQuery);
2204
+
2205
+ }
2206
+
2207
+ (function($){
2208
+
2209
+ if(typeof acf === 'undefined')
2210
+ return;
2211
+
2212
+ /**
2213
+ * Field: reCaptcha
2214
+ */
2215
+ var reCaptcha = acf.Field.extend({
2216
+
2217
+ type: 'acfe_recaptcha',
2218
+
2219
+ actions: {
2220
+ 'validation_failure' : 'validationFailure'
2221
+ },
2222
+
2223
+ $control: function(){
2224
+ return this.$('.acfe-field-recaptcha');
2225
+ },
2226
+
2227
+ $input: function(){
2228
+ return this.$('input[type="hidden"]');
2229
+ },
2230
+
2231
+ $selector: function(){
2232
+ return this.$control().find('> div');
2233
+ },
2234
+
2235
+ selector: function(){
2236
+ return this.$selector()[0];
2237
+ },
2238
+
2239
+ version: function(){
2240
+ return this.get('version');
2241
+ },
2242
+
2243
+ render: function(){
2244
+
2245
+ var field = this;
2246
+
2247
+ if(this.version() === 'v2'){
2248
+
2249
+ this.recaptcha = grecaptcha.render(field.selector(), {
2250
+ 'sitekey': field.$control().data('site-key'),
2251
+ 'theme': field.$control().data('theme'),
2252
+ 'size': field.$control().data('size'),
2253
+
2254
+
2255
+ 'callback': function(response){
2256
+
2257
+ field.$input().val(response).change();
2258
+ field.$input().closest('.acf-input').find('> .acf-notice.-error').hide();
2259
+
2260
+ },
2261
+
2262
+ 'error-callback': function(){
2263
+
2264
+ field.$input().val('error').change();
2265
+
2266
+ },
2267
+
2268
+ 'expired-callback': function(){
2269
+
2270
+ field.$input().val('expired').change();
2271
+
2272
+ }
2273
+ });
2274
+
2275
+ }
2276
+
2277
+ else if(this.version() === 'v3'){
2278
+
2279
+ grecaptcha.ready(function(){
2280
+ grecaptcha.execute(field.$control().data('site-key'), {action: 'homepage'}).then(function(response){
2281
+
2282
+ field.$input().val(response).change();
2283
+ field.$input().closest('.acf-input').find('> .acf-notice.-error').hide();
2284
+
2285
+ });
2286
+ });
2287
+
2288
+ }
2289
+
2290
+ },
2291
+
2292
+ validationFailure: function($form){
2293
+
2294
+ if(this.version() === 'v2'){
2295
+
2296
+ grecaptcha.reset(this.recaptcha);
2297
+
2298
+ }
2299
+
2300
+ }
2301
+
2302
+ });
2303
+
2304
+ acf.registerFieldType(reCaptcha);
2305
+
2306
+ /**
2307
+ * Field: Code Editor
2308
+ */
2309
+ var CodeEditor = acf.Field.extend({
2310
+
2311
+ wait: 'ready',
2312
+
2313
+ type: 'acfe_code_editor',
2314
+
2315
+ events: {
2316
+ 'showField': 'onShow',
2317
+ },
2318
+
2319
+ $control: function(){
2320
+
2321
+ return this.$el.find('> .acf-input > .acf-input-wrap');
2322
+
2323
+ },
2324
+
2325
+ $input: function(){
2326
+
2327
+ return this.$el.find('> .acf-input > .acf-input-wrap > textarea');
2328
+
2329
+ },
2330
+
2331
+ input: function(){
2332
+
2333
+ return this.$input()[0];
2334
+
2335
+ },
2336
+
2337
+ rows: function(){
2338
+
2339
+ return this.$input().attr('rows');
2340
+
2341
+ },
2342
+
2343
+ initialize: function(){
2344
+
2345
+ this.rows = this.$control().data('rows');
2346
+ this.max_rows = this.$control().data('max-rows');
2347
+
2348
+ this.mode = this.$control().data('mode');
2349
+ this.lines = this.$control().data('lines');
2350
+ this.indentUnit = this.$control().data('indent-unit');
2351
+
2352
+ var codeEditor = [];
2353
+
2354
+ // Default WP settings
2355
+ var wpCodeMirror = wp.codeEditor.defaultSettings.codemirror;
2356
+
2357
+ // Field settings
2358
+ var CodeMirror = {
2359
+ lineNumbers: this.lines,
2360
+ lineWrapping: true,
2361
+ styleActiveLine: false,
2362
+ continueComments: true,
2363
+ indentUnit: this.indentUnit,
2364
+ tabSize: 1,
2365
+ indentWithTabs: true,
2366
+ mode: this.mode,
2367
+ extraKeys: {
2368
+ Tab: function(cm){
2369
+ cm.execCommand("indentMore")
2370
+ },
2371
+ "Shift-Tab": function(cm){
2372
+ cm.execCommand("indentLess")
2373
+ },
2374
+ },
2375
+ };
2376
+
2377
+ // Merge settings
2378
+ var codeMirror = jQuery.extend(wpCodeMirror, CodeMirror);
2379
+
2380
+ // Push CodeMirror settings to codemirror property
2381
+ codeEditor.codemirror = codeMirror;
2382
+
2383
+ // Init WP Code Editor
2384
+ this.editor = wp.codeEditor.initialize(this.input(), codeEditor);
2385
+
2386
+ if(this.rows || this.max_rows){
2387
+
2388
+ if(this.rows){
2389
+
2390
+ this.editor.codemirror.getScrollerElement().style.minHeight = this.rows * 18.5 + 'px';
2391
+
2392
+ }
2393
+
2394
+ if(this.max_rows){
2395
+
2396
+ this.editor.codemirror.getScrollerElement().style.maxHeight = this.max_rows * 18.5 + 'px';
2397
+
2398
+ }
2399
+
2400
+ this.editor.codemirror.refresh();
2401
+
2402
+ }
2403
+
2404
+ field = this;
2405
+
2406
+ this.editor.codemirror.on('change', function(){
2407
+
2408
+ field.editor.codemirror.save();
2409
+ field.$input().change();
2410
+
2411
+ });
2412
+
2413
+ },
2414
+
2415
+ onShow: function(){
2416
+
2417
+ if(this.editor.codemirror){
2418
+
2419
+ this.editor.codemirror.refresh();
2420
+
2421
+ }
2422
+
2423
+ },
2424
+
2425
+ });
2426
+
2427
+ acf.registerFieldType(CodeEditor);
2428
+
2429
+ acf.registerConditionForFieldType('equalTo', 'acfe_code_editor');
2430
+ acf.registerConditionForFieldType('notEqualTo', 'acfe_code_editor');
2431
+ acf.registerConditionForFieldType('patternMatch', 'acfe_code_editor');
2432
+ acf.registerConditionForFieldType('contains', 'acfe_code_editor');
2433
+ acf.registerConditionForFieldType('hasValue', 'acfe_code_editor');
2434
+ acf.registerConditionForFieldType('hasNoValue', 'acfe_code_editor');
2435
+
2436
+ /**
2437
+ * Field Group Admin: Code Editor
2438
+ * Fix duplicate action
2439
+ */
2440
+ acf.addAction('append_field_object', function(field){
2441
+
2442
+ if(field.get('type') !== 'acfe_code_editor')
2443
+ return;
2444
+
2445
+ field.$setting('default_value').find('> .acf-input > .acf-input-wrap > .CodeMirror:last').remove();
2446
+ field.$setting('placeholder').find('> .acf-input > .acf-input-wrap > .CodeMirror:last').remove();
2447
+
2448
+ });
2449
+
2450
+ /*
2451
+ var preCodeMirror = new acf.Model({
2452
+ codemirror: false,
2453
+ data: {
2454
+ type: 'pre',
2455
+ mode: 'htmlmixed',
2456
+ codemirror: false,
2457
+ },
2458
+ actions: {
2459
+ 'new_field': 'new_field',
2460
+ },
2461
+ new_field: function(field){
2462
+
2463
+ var self = this;
2464
+
2465
+ field.$('pre[data-codemirror]:visible, code[data-codemirror]:visible').each(function(){
2466
+
2467
+ self.setup(this);
2468
+
2469
+ });
2470
+
2471
+ },
2472
+ setup: function(el){
2473
+
2474
+ this.$el = $(el);
2475
+
2476
+ this.set('type', this.$el.prop('tagName').toLowerCase());
2477
+ this.set('mode', this.$el.attr('data-codemirror'));
2478
+
2479
+ if(this.get('mode') === 'php'){
2480
+
2481
+ this.set('mode', 'application/x-httpd-php');
2482
+
2483
+ }else if(this.get('mode') === 'php-plain'){
2484
+
2485
+ this.set('mode', 'text/x-php');
2486
+
2487
+ }else if(this.get('mode') === 'html'){
2488
+
2489
+ this.set('mode', 'text/html');
2490
+
2491
+ }else if(this.get('mode') === 'javascript'){
2492
+
2493
+ this.set('mode', 'javascript');
2494
+
2495
+ }else if(this.get('mode') === 'css'){
2496
+
2497
+ this.set('mode', 'css');
2498
+
2499
+ }
2500
+
2501
+ this.render();
2502
+
2503
+ this.getClosestField();
2504
+
2505
+ },
2506
+ initialize: function(){
2507
+ // ...
2508
+ },
2509
+ render: function(){
2510
+
2511
+ var $code = this.$el.html();
2512
+ var $div = $('<div class="' + this.get('type') + '-codemirror" />').insertAfter(this.$el);
2513
+ var $unescaped = this.$el.html($code).text();
2514
+
2515
+ this.codemirror = wp.CodeMirror($div[0], {
2516
+ value: $unescaped,
2517
+ mode: this.get('mode'),
2518
+ lineNumbers: false,
2519
+ lineWrapping: false,
2520
+ styleActiveLine: false,
2521
+ continueComments: true,
2522
+ indentUnit: 4,
2523
+ tabSize: 1,
2524
+ readOnly: true,
2525
+ });
2526
+
2527
+ this.$el.remove();
2528
+
2529
+ },
2530
+ refresh: function(){
2531
+
2532
+ if(this.codemirror)
2533
+ this.codemirror.refresh();
2534
+
2535
+ },
2536
+ getClosestField: function(){
2537
+
2538
+ var self = this;
2539
+
2540
+ field = acf.getClosestField(this.$el);
2541
+
2542
+ if(field){
2543
+
2544
+ field.on('showField', function(){
2545
+
2546
+ self.refresh();
2547
+
2548
+ });
2549
+
2550
+ }
2551
+
2552
+ }
2553
+
2554
+ });
2555
+ */
2556
+
2557
+ /**
2558
+ * Field: Textarea
2559
+ */
2560
+ var Textarea = acf.Field.extend({
2561
+
2562
+ type: 'textarea',
2563
+
2564
+ events: {
2565
+ 'keydown textarea': 'onInput',
2566
+ },
2567
+
2568
+ onInput: function(e, $el){
2569
+
2570
+ if(!this.has('acfeTextareaCode'))
2571
+ return;
2572
+
2573
+ if(e.keyCode !== 9)
2574
+ return;
2575
+
2576
+ e.preventDefault();
2577
+
2578
+ var input = this.$el.find('textarea')[0];
2579
+
2580
+ var s = input.selectionStart;
2581
+
2582
+ this.$el.find('textarea').val(function(i, v){
2583
+
2584
+ return v.substring(0, s) + " " + v.substring(input.selectionEnd)
2585
+
2586
+ });
2587
+
2588
+ input.selectionEnd = s + 4;
2589
+
2590
+ },
2591
+
2592
+ });
2593
+
2594
+ acf.registerFieldType(Textarea);
2595
+
2596
+ /**
2597
+ * Field: Slug
2598
+ */
2599
+ var ACFE_Slug = acf.Field.extend({
2600
+
2601
+ type: 'acfe_slug',
2602
+
2603
+ events: {
2604
+ 'input input': 'onInput',
2605
+ 'focusout input': 'onFocusOut',
2606
+ },
2607
+
2608
+ onInput: function(e, $el){
2609
+
2610
+ $el.val($el.val().toLowerCase()
2611
+ .replace(/\s+/g, '-') // Replace spaces with -
2612
+ .replace(/[^\w\-]+/g, '') // Remove all non-word chars
2613
+ .replace(/\-\-+/g, '-') // Replace multiple - with single -
2614
+ .replace(/\_\_+/g, '_') // Replace multiple _ with single _
2615
+ .replace(/^-+/, '')); // Trim - from start of text
2616
+
2617
+ },
2618
+
2619
+ onFocusOut: function(e, $el){
2620
+
2621
+ $el.val($el.val().toLowerCase()
2622
+ .replace(/-+$/, '') // Trim - from end of text
2623
+ .replace(/_+$/, '')); // Trim _ from end of text
2624
+
2625
+ },
2626
+
2627
+ });
2628
+
2629
+ acf.registerFieldType(ACFE_Slug);
2630
+
2631
+ acf.registerConditionForFieldType('equalTo', 'acfe_slug');
2632
+ acf.registerConditionForFieldType('notEqualTo', 'acfe_slug');
2633
+ acf.registerConditionForFieldType('patternMatch', 'acfe_slug');
2634
+ acf.registerConditionForFieldType('contains', 'acfe_slug');
2635
+ acf.registerConditionForFieldType('hasValue', 'acfe_slug');
2636
+ acf.registerConditionForFieldType('hasNoValue', 'acfe_slug');
2637
+
2638
+ /**
2639
+ * Field: Button
2640
+ */
2641
+ var ACFE_Button = acf.Field.extend({
2642
+
2643
+ type: 'acfe_button',
2644
+
2645
+ events: {
2646
+ 'click input': 'onClick',
2647
+ 'click button': 'onClick',
2648
+ },
2649
+
2650
+ $input: function(){
2651
+
2652
+ if(this.$('input').length){
2653
+
2654
+ return this.$('input');
2655
+
2656
+ }else if(this.$('button').length){
2657
+
2658
+ return this.$('button');
2659
+
2660
+ }
2661
+
2662
+ },
2663
+
2664
+ initialize: function(){
2665
+
2666
+ // vars
2667
+ var $button = this.$input();
2668
+
2669
+ // inherit data
2670
+ this.inherit($button);
2671
+
2672
+ },
2673
+
2674
+ onClick: function(e, $el){
2675
+
2676
+ if(this.get('ajax')){
2677
+
2678
+ e.preventDefault();
2679
+
2680
+ // serialize form data
2681
+ var data = {
2682
+ action: 'acfe/fields/button',
2683
+ field_name: this.get('name'),
2684
+ field_key: this.get('key')
2685
+ };
2686
+
2687
+ // Deprecated
2688
+ acf.doAction('acfe/fields/button/before_ajax', this.$el, data);
2689
+
2690
+ // Actions
2691
+ acf.doAction('acfe/fields/button/before', this.$el, data);
2692
+ acf.doAction('acfe/fields/button/before/key=' + this.get('key'), this.$el, data);
2693
+ acf.doAction('acfe/fields/button/before/name=' + this.get('name'), this.$el, data);
2694
+
2695
+ // ajax
2696
+ $.ajax({
2697
+ url: acf.get('ajaxurl'),
2698
+ data: acf.prepareForAjax(data),
2699
+ type: 'post',
2700
+ dataType: 'json',
2701
+ context: this,
2702
+
2703
+ // Success
2704
+ success: function(response){
2705
+
2706
+ // Deprecated
2707
+ acf.doAction('acfe/fields/button/ajax_success', response, this.$el, data);
2708
+
2709
+ // Actions
2710
+ acf.doAction('acfe/fields/button/success', response, this.$el, data);
2711
+ acf.doAction('acfe/fields/button/success/key=' + this.get('key'), response, this.$el, data);
2712
+ acf.doAction('acfe/fields/button/success/name=' + this.get('name'), response, this.$el, data);
2713
+
2714
+ },
2715
+
2716
+ // Complete
2717
+ complete: function(xhr){
2718
+
2719
+ var response = xhr.responseText;
2720
+
2721
+ // Actions
2722
+ acf.doAction('acfe/fields/button/complete', response, this.$el, data);
2723
+ acf.doAction('acfe/fields/button/complete/key=' + this.get('key'), response, this.$el, data);
2724
+ acf.doAction('acfe/fields/button/complete/name=' + this.get('name'), response, this.$el, data);
2725
+
2726
+ }
2727
+
2728
+
2729
+ });
2730
+
2731
+ }
2732
+
2733
+ }
2734
+
2735
+ });
2736
+
2737
+ acf.registerFieldType(ACFE_Button);
2738
+
2739
+ /**
2740
+ * Field: Advanced Link
2741
+ */
2742
+ var ACFE_Advanced_Link = acf.Field.extend({
2743
+
2744
+ type: 'acfe_advanced_link',
2745
+
2746
+ events: {
2747
+ 'click a[data-name="add"]': 'onClickEdit',
2748
+ 'click a[data-name="edit"]': 'onClickEdit',
2749
+ 'click a[data-name="remove"]': 'onClickRemove',
2750
+ },
2751
+
2752
+ $control: function(){
2753
+ return this.$('.acf-link');
2754
+ },
2755
+
2756
+ initialize: function(){
2757
+ // ...
2758
+ },
2759
+
2760
+ getValue: function(){
2761
+
2762
+ // return
2763
+ var data = {
2764
+ type: this.$('.input-type :checked').val(),
2765
+ title: this.$('.input-title').val(),
2766
+ url: this.$('.input-url').val(),
2767
+ post: this.$('.input-post :selected').text(),
2768
+ term: this.$('.input-term :selected').text(),
2769
+ target: this.$('.input-target').is(':checked')
2770
+ };
2771
+
2772
+ if(data.type === 'post'){
2773
+
2774
+ data.url = data.post;
2775
+
2776
+ }else if(data.type === 'term'){
2777
+
2778
+ data.url = data.term;
2779
+
2780
+ }
2781
+
2782
+ return data;
2783
+
2784
+ },
2785
+
2786
+ setValue: function( val ){
2787
+
2788
+ // default
2789
+ val = acf.parseArgs(val, {
2790
+ remove: false,
2791
+ title: '',
2792
+ url: '',
2793
+ target: false
2794
+ });
2795
+
2796
+ // vars
2797
+ var $div = this.$control();
2798
+
2799
+ // remove class
2800
+ $div.removeClass('-value -external');
2801
+
2802
+ // add class
2803
+ if(val.url)
2804
+ $div.addClass('-value');
2805
+
2806
+ if(val.target)
2807
+ $div.addClass('-external');
2808
+
2809
+ // update text
2810
+ this.$('.link-title').html( val.title );
2811
+ this.$('.link-url').attr('href', val.url).html( val.url );
2812
+
2813
+ // remove inputs data
2814
+ if(val.remove){
2815
+
2816
+ this.$('.input-type :checked').prop('checked', false);
2817
+ this.$('.input-type [value="url"]').prop('checked', true).trigger('change');
2818
+ this.$('.input-title').val('');
2819
+ this.$('.input-target').prop('checked', false);
2820
+ this.$('.input-url').val('').trigger('change');
2821
+ this.$('.input-post').val('').trigger('change');
2822
+ this.$('.input-term').val('').trigger('change');
2823
+
2824
+ }
2825
+
2826
+ },
2827
+
2828
+ onClickEdit: function(e, $el){
2829
+
2830
+ var $modal = $el.closest('.acf-input').find('.acfe-modal');
2831
+
2832
+ var title = $modal.attr('data-modal-title');
2833
+
2834
+ var model = this;
2835
+
2836
+ acfe.modal.open($modal, {
2837
+ title: title,
2838
+ size: 'medium',
2839
+ footer: acf.__('Close'),
2840
+ onClose: function(){
2841
+ model.onChange();
2842
+ }
2843
+ });
2844
+
2845
+ },
2846
+
2847
+ onClickRemove: function( e, $el ){
2848
+
2849
+ this.setValue({
2850
+ remove: true
2851
+ });
2852
+
2853
+ },
2854
+
2855
+ onChange: function( e, $el ){
2856
+
2857
+ // get the changed value
2858
+ var val = this.getValue();
2859
+
2860
+ // update inputs
2861
+ this.setValue(val);
2862
+
2863
+ },
2864
+
2865
+ });
2866
+
2867
+ acf.registerFieldType(ACFE_Advanced_Link);
2868
+
2869
+ /**
2870
+ * Field: Advanced Link - Post Object Ajax
2871
+ */
2872
+ acf.addFilter('select2_ajax_data/type=post_object', function(ajaxData, data, $el, field, select){
2873
+
2874
+ if(field.get('key') !== 'post')
2875
+ return ajaxData;
2876
+
2877
+ var advanced_link = acf.getInstance($el.closest('.acf-field-acfe-advanced-link'));
2878
+
2879
+ if(advanced_link){
2880
+
2881
+ ajaxData.field_key = advanced_link.get('key');
2882
+
2883
+ }
2884
+
2885
+ return ajaxData;
2886
+
2887
+ });
2888
+
2889
+ /*
2890
+ * Field: Advanced Link - Error
2891
+ */
2892
+ acf.addAction('invalid_field', function(field){
2893
+
2894
+ var $advanced_link = field.$el.closest('.acf-field-acfe-advanced-link').not('.acf-error');
2895
+
2896
+ if($advanced_link.length){
2897
+
2898
+ var advanced_link_field = acf.getInstance($advanced_link);
2899
+
2900
+ advanced_link_field.showError(field.notice.get('text'));
2901
+
2902
+ }
2903
+
2904
+ });
2905
+
2906
+ /**
2907
+ * Field: Group
2908
+ */
2909
+ var Group = acf.Field.extend({
2910
+
2911
+ type: 'group',
2912
+
2913
+ events: {
2914
+ 'click [data-name="edit"]': 'onClick',
2915
+ },
2916
+
2917
+ initialize: function(){
2918
+
2919
+ if(this.has('acfeGroupModal')){
2920
+
2921
+ var edit = this.get('acfeGroupModalButton');
2922
+
2923
+ this.$el.find('> .acf-input > .acf-fields, > .acf-input > .acf-table').wrapAll('<div class="acfe-modal"><div class="acfe-modal-wrapper"><div class="acfe-modal-content"></div></div></div>');
2924
+ this.$el.find('> .acf-input').append('<a data-name="edit" class="acf-button button" href="#">' + edit + '</a>');
2925
+
2926
+ }
2927
+
2928
+ },
2929
+
2930
+ onClick: function(e, $el){
2931
+
2932
+ var title = this.$el.find('> .acf-label').text().trim();
2933
+ var $modal = this.$el.find('> .acf-input > .acfe-modal');
2934
+
2935
+ // Title
2936
+ if(!title.length){
2937
+
2938
+ title = this.get('acfeGroupModalButton');
2939
+
2940
+ }
2941
+
2942
+ // Close
2943
+ var close = false;
2944
+
2945
+ if(this.has('acfeGroupModalClose')){
2946
+
2947
+ close = acf.__('Close');
2948
+
2949
+ }
2950
+
2951
+ // Size
2952
+ var size = 'large';
2953
+
2954
+ if(this.has('acfeGroupModalSize')){
2955
+
2956
+ size = this.get('acfeGroupModalSize');
2957
+
2958
+ }
2959
+
2960
+ // Open modal
2961
+ acfe.modal.open($modal, {
2962
+ title: title,
2963
+ size: size,
2964
+ footer: close
2965
+ });
2966
+
2967
+ },
2968
+
2969
+ });
2970
+
2971
+ acf.registerFieldType(Group);
2972
+
2973
+ /**
2974
+ * Field: Clone
2975
+ */
2976
+ var Clone = acf.Field.extend({
2977
+
2978
+ type: 'clone',
2979
+
2980
+ events: {
2981
+ 'click [data-name="edit"]': 'onClick',
2982
+ },
2983
+
2984
+ initialize: function(){
2985
+
2986
+ if(this.has('acfeCloneModal')){
2987
+
2988
+ var edit = this.get('acfeCloneModalButton');
2989
+
2990
+ this.$el.find('> .acf-input > .acf-fields, > .acf-input > .acf-table').wrapAll('<div class="acfe-modal"><div class="acfe-modal-wrapper"><div class="acfe-modal-content"></div></div></div>');
2991
+ this.$el.find('> .acf-input').append('<a data-name="edit" class="acf-button button" href="#">' + edit + '</a>');
2992
+
2993
+ }
2994
+
2995
+ },
2996
+
2997
+ onClick: function(e, $el){
2998
+
2999
+ var title = this.$el.find('> .acf-label').text().trim();
3000
+ var $modal = this.$el.find('> .acf-input > .acfe-modal');
3001
+
3002
+
3003
+ // Title
3004
+ if(!title.length){
3005
+
3006
+ title = this.get('acfeCloneModalButton');
3007
+
3008
+ }
3009
+
3010
+ // Close
3011
+ var close = false;
3012
+
3013
+ if(this.has('acfeCloneModalClose')){
3014
+
3015
+ close = acf.__('Close');
3016
+
3017
+ }
3018
+
3019
+ // Size
3020
+ var size = 'large';
3021
+
3022
+ if(this.has('acfeCloneModalSize')){
3023
+
3024
+ size = this.get('acfeCloneModalSize');
3025
+
3026
+ }
3027
+
3028
+ // Open modal
3029
+ acfe.modal.open($modal, {
3030
+ title: title,
3031
+ size: size,
3032
+ footer: close
3033
+ });
3034
+
3035
+ },
3036
+
3037
+ });
3038
+
3039
+ acf.registerFieldType(Clone);
3040
+
3041
+ /**
3042
+ * Field: Column
3043
+ */
3044
+ var Column = acf.Field.extend({
3045
+
3046
+ wait: 'new_field',
3047
+
3048
+ type: 'acfe_column',
3049
+
3050
+ $control: function(){
3051
+ return this.$('.acf-fields:first');
3052
+ },
3053
+
3054
+ initialize: function(){
3055
+
3056
+ if(this.$el.is('td')){
3057
+
3058
+ var $table = this.$el.closest('.acf-table').find('th[data-type="acfe_column"]').remove();
3059
+ this.remove();
3060
+
3061
+ }
3062
+
3063
+ if(this.get('endpoint')){
3064
+
3065
+ this.$el.find('> .acf-label').remove();
3066
+ this.$el.find('> .acf-input').remove();
3067
+
3068
+ return;
3069
+
3070
+ }
3071
+
3072
+ var $field = this.$el;
3073
+ var $label = this.$el.find('> .acf-label');
3074
+ var $input = this.$inputWrap();
3075
+ var $wrap = this.$control();
3076
+
3077
+ $label.remove();
3078
+
3079
+ var $parent = $field.parent();
3080
+ $wrap.addClass($parent.hasClass('-left') ? '-left' : '');
3081
+ $wrap.addClass($parent.hasClass('-clear') ? '-clear' : '');
3082
+
3083
+ $wrap.append($field.nextUntil('.acf-field-acfe-column', '.acf-field'));
3084
+
3085
+ }
3086
+
3087
+ });
3088
+
3089
+ acf.registerFieldType(Column);
3090
+
3091
+ /**
3092
+ * Field: Taxonomy Terms - Ajax
3093
+ */
3094
+ acf.addFilter('select2_ajax_data/action=acfe/fields/taxonomy_terms/allow_query', function(ajaxData, data, $el, field, select){
3095
+
3096
+ // Taxonomies
3097
+ var $taxonomies = $el.closest('.acf-field-settings').find('> .acf-field-setting-taxonomy > .acf-input > select > option:selected');
3098
+
3099
+ var tax = [];
3100
+
3101
+ $taxonomies.each(function(){
3102
+ tax.push($(this).val());
3103
+ });
3104
+
3105
+ ajaxData.taxonomies = tax;
3106
+
3107
+ // Terms level
3108
+ var $level = $el.closest('.acf-field-settings').find('> .acf-field-setting-allow_terms > .acf-input input[type="number"]');
3109
+
3110
+ ajaxData.level = $level.val();
3111
+
3112
+ return ajaxData;
3113
+
3114
+ });
3115
+
3116
+ /**
3117
+ * Fields: Select2 - Placeholder
3118
+ */
3119
+ acf.addAction('select2_init', function($select, options, data, field, instance){
3120
+
3121
+ // Search Placeholder
3122
+ if(field.get('acfeSearchPlaceholder')){
3123
+
3124
+ var search_placeholder = field.get('acfeSearchPlaceholder');
3125
+
3126
+ $select.on('select2:open', function(e){
3127
+
3128
+ if(field.get('multiple')){
3129
+
3130
+ if(!$select.val()){
3131
+
3132
+ field.$('.select2-search__field').attr('placeholder', search_placeholder);
3133
+
3134
+ }
3135
+
3136
+ }else{
3137
+
3138
+ $('.select2-search.select2-search--dropdown > .select2-search__field').attr('placeholder', search_placeholder);
3139
+
3140
+ }
3141
+
3142
+ });
3143
+
3144
+ if(field.get('multiple')){
3145
+
3146
+ $select.on('select2:close', function(e){
3147
+
3148
+ if(!$select.val()){
3149
+
3150
+ field.$('.select2-search__field').attr('placeholder', field.get('placeholder'));
3151
+
3152
+ }
3153
+
3154
+ });
3155
+
3156
+ }
3157
+
3158
+ }
3159
+
3160
+ });
3161
+
3162
+ /**
3163
+ * Fields: Select2 - Allow Custom
3164
+ */
3165
+ acf.addFilter('select2_args', function(options, $select, fieldData, field, instance){
3166
+
3167
+ if(field.get('acfeAllowCustom')){
3168
+
3169
+ options.tags = true;
3170
+
3171
+ options.createTag = function(params){
3172
+
3173
+ var term = $.trim(params.term);
3174
+
3175
+ if(term === '')
3176
+ return null;
3177
+
3178
+ var optionsMatch = false;
3179
+
3180
+ this.$element.find('option').each(function(){
3181
+
3182
+ if(this.value.toLowerCase() === term.toLowerCase()){
3183
+ optionsMatch = true;
3184
+ }
3185
+
3186
+ });
3187
+
3188
+ if(optionsMatch)
3189
+ return null;
3190
+
3191
+ return {
3192
+ id: term,
3193
+ text: term
3194
+ };
3195
+
3196
+ };
3197
+
3198
+
3199
+ options.insertTag = function(data, tag){
3200
+
3201
+ var found = false;
3202
+
3203
+ $.each(data, function(index, value){
3204
+
3205
+ if($.trim(tag.text).toUpperCase() === $.trim(value.text).toUpperCase()){
3206
+
3207
+ found = true;
3208
+ return false;
3209
+
3210
+ }
3211
+
3212
+ });
3213
+
3214
+ if(!found)
3215
+ data.unshift(tag);
3216
+
3217
+ };
3218
+
3219
+ options.templateSelection = function(state){
3220
+
3221
+ if(!state.id){
3222
+ return state.text;
3223
+ }
3224
+
3225
+ var text = state.text;
3226
+
3227
+ var match_field = /{field:(.*)}/g;
3228
+ var match_fields = /{fields}/g;
3229
+ var match_get_field = /{get_field:(.*)}/g;
3230
+ var match_query_var = /{query_var:(.*)}/g;
3231
+ var match_request = /{request:(.*)}/g;
3232
+ var match_current = /{current:(.*)}/g;
3233
+
3234
+ text = text.replace(match_field, "<code style='font-size:12px;padding:3px;vertical-align: 1px;line-height: 12px;'>{field:$1}</code>");
3235
+ text = text.replace(match_fields, "<code style='font-size:12px;padding:3px;vertical-align: 1px;line-height: 12px;'>{fields}</code>");
3236
+ text = text.replace(match_current, "<code style='font-size:12px;padding:3px;vertical-align: 1px;line-height: 12px;'>{current:$1}</code>");
3237
+ text = text.replace(match_get_field, "<code style='font-size:12px;padding:3px;vertical-align: 1px;line-height: 12px;'>{get_field:$1}</code>");
3238
+ text = text.replace(match_query_var, "<code style='font-size:12px;padding:3px;vertical-align: 1px;line-height: 12px;'>{query_var:$1}</code>");
3239
+ text = text.replace(match_request, "<code style='font-size:12px;padding:3px;vertical-align: 1px;line-height: 12px;'>{request:$1}</code>");
3240
+
3241
+
3242
+ return text;
3243
+
3244
+ };
3245
+
3246
+ options.templateResult = function(state){
3247
+
3248
+ if(!state.id){
3249
+ return state.text;
3250
+ }
3251
+
3252
+ var text = state.text;
3253
+
3254
+ var match_field = /{field:(.*?)}/g;
3255
+ var match_fields = /{fields}/g;
3256
+ var match_get_field = /{get_field:(.*?)}/g;
3257
+ var match_query_var = /{query_var:(.*?)}/g;
3258
+ var match_request = /{request:(.*?)}/g;
3259
+ var match_current = /{current:(.*?)}/g;
3260
+
3261
+ text = text.replace(match_field, "<code style='font-size:12px;'>{field:$1}</code>");
3262
+ text = text.replace(match_fields, "<code style='font-size:12px;'>{fields}</code>");
3263
+ text = text.replace(match_get_field, "<code style='font-size:12px;'>{get_field:$1}</code>");
3264
+ text = text.replace(match_query_var, "<code style='font-size:12px;'>{query_var:$1}</code>");
3265
+ text = text.replace(match_request, "<code style='font-size:12px;'>{request:$1}</code>");
3266
+ text = text.replace(match_current, "<code style='font-size:12px;'>{current:$1}</code>");
3267
+
3268
+ return text;
3269
+
3270
+ };
3271
+
3272
+ }
3273
+
3274
+ return options;
3275
+
3276
+ });
3277
+
3278
+ /**
3279
+ * Fields: Select2 - Args Variations
3280
+ */
3281
+ acf.addFilter('select2_args', function(options, $select, data, field, instance){
3282
+
3283
+ options = acf.applyFilters('select2_args/type=' + field.get('type'), options, $select, data, field, instance);
3284
+ options = acf.applyFilters('select2_args/name=' + field.get('name'), options, $select, data, field, instance);
3285
+ options = acf.applyFilters('select2_args/key=' + field.get('key'), options, $select, data, field, instance);
3286
+
3287
+ return options;
3288
+
3289
+ });
3290
+
3291
+ /**
3292
+ * Fields: Select2 - Init Variations
3293
+ */
3294
+ acf.addAction('select2_init', function($select, options, data, field, instance){
3295
+
3296
+ acf.doAction('select2_init/type=' + field.get('type'), $select, options, data, field, instance);
3297
+ acf.doAction('select2_init/name=' + field.get('name'), $select, options, data, field, instance);
3298
+ acf.doAction('select2_init/key=' + field.get('key'), $select, options, data, field, instance);
3299
+
3300
+ });
3301
+
3302
+ /**
3303
+ * Fields: Select2 - Ajax Data Variations
3304
+ */
3305
+ acf.addFilter('select2_ajax_data', function(ajaxData, data, $el, field, instance){
3306
+
3307
+ ajaxData = acf.applyFilters('select2_ajax_data/type=' + field.get('type'), ajaxData, data, $el, field, instance);
3308
+ ajaxData = acf.applyFilters('select2_ajax_data/name=' + field.get('name'), ajaxData, data, $el, field, instance);
3309
+ ajaxData = acf.applyFilters('select2_ajax_data/key=' + field.get('key'), ajaxData, data, $el, field, instance);
3310
+
3311
+ if(ajaxData.action){
3312
+
3313
+ ajaxData = acf.applyFilters('select2_ajax_data/action=' + ajaxData.action, ajaxData, data, $el, field, instance);
3314
+
3315
+ }
3316
+
3317
+ return ajaxData;
3318
+
3319
+ });
3320
+
3321
+ /**
3322
+ * Field Conditions: Datepicker
3323
+ */
3324
+ acf.registerConditionForFieldType('equalTo', 'date_picker');
3325
+ acf.registerConditionForFieldType('notEqualTo', 'date_picker');
3326
+ acf.registerConditionForFieldType('patternMatch', 'date_picker');
3327
+ acf.registerConditionForFieldType('contains', 'date_picker');
3328
+ acf.registerConditionForFieldType('greaterThan', 'date_picker');
3329
+ acf.registerConditionForFieldType('lessThan', 'date_picker');
3330
+
3331
+ /**
3332
+ * Field Conditions: Taxonomy
3333
+ */
3334
+ acf.registerConditionForFieldType('equalTo', 'taxonomy');
3335
+ acf.registerConditionForFieldType('notEqualTo', 'taxonomy');
3336
+ acf.registerConditionForFieldType('patternMatch', 'taxonomy');
3337
+ acf.registerConditionForFieldType('contains', 'taxonomy');
3338
+ acf.registerConditionForFieldType('hasValue', 'taxonomy');
3339
+ acf.registerConditionForFieldType('hasNoValue', 'taxonomy');
3340
+
3341
+ /**
3342
+ * Field Conditions: Forms
3343
+ */
3344
+ acf.registerConditionForFieldType('equalTo', 'acfe_forms');
3345
+ acf.registerConditionForFieldType('notEqualTo', 'acfe_forms');
3346
+ acf.registerConditionForFieldType('patternMatch', 'acfe_forms');
3347
+ acf.registerConditionForFieldType('contains', 'acfe_forms');
3348
+ acf.registerConditionForFieldType('hasValue', 'acfe_forms');
3349
+ acf.registerConditionForFieldType('hasNoValue', 'acfe_forms');
3350
+
3351
+ /**
3352
+ * Field Conditions: Post Status
3353
+ */
3354
+ acf.registerConditionForFieldType('equalTo', 'acfe_post_statuses');
3355
+ acf.registerConditionForFieldType('notEqualTo', 'acfe_post_statuses');
3356
+ acf.registerConditionForFieldType('patternMatch', 'acfe_post_statuses');
3357
+ acf.registerConditionForFieldType('contains', 'acfe_post_statuses');
3358
+ acf.registerConditionForFieldType('hasValue', 'acfe_post_statuses');
3359
+ acf.registerConditionForFieldType('hasNoValue', 'acfe_post_statuses');
3360
+
3361
+ /**
3362
+ * Field Conditions: Post Types
3363
+ */
3364
+ acf.registerConditionForFieldType('equalTo', 'acfe_post_types');
3365
+ acf.registerConditionForFieldType('notEqualTo', 'acfe_post_types');
3366
+ acf.registerConditionForFieldType('patternMatch', 'acfe_post_types');
3367
+ acf.registerConditionForFieldType('contains', 'acfe_post_types');
3368
+ acf.registerConditionForFieldType('hasValue', 'acfe_post_types');
3369
+ acf.registerConditionForFieldType('hasNoValue', 'acfe_post_types');
3370
+
3371
+ /**
3372
+ * Field Conditions: Taxonomies
3373
+ */
3374
+ acf.registerConditionForFieldType('equalTo', 'acfe_taxonomies');
3375
+ acf.registerConditionForFieldType('notEqualTo', 'acfe_taxonomies');
3376
+ acf.registerConditionForFieldType('patternMatch', 'acfe_taxonomies');
3377
+ acf.registerConditionForFieldType('contains', 'acfe_taxonomies');
3378
+ acf.registerConditionForFieldType('hasValue', 'acfe_taxonomies');
3379
+ acf.registerConditionForFieldType('hasNoValue', 'acfe_taxonomies');
3380
+
3381
+ /**
3382
+ * Field Conditions: Taxonomy Terms
3383
+ */
3384
+ acf.registerConditionForFieldType('equalTo', 'acfe_taxonomy_terms');
3385
+ acf.registerConditionForFieldType('notEqualTo', 'acfe_taxonomy_terms');
3386
+ acf.registerConditionForFieldType('patternMatch', 'acfe_taxonomy_terms');
3387
+ acf.registerConditionForFieldType('contains', 'acfe_taxonomy_terms');
3388
+ acf.registerConditionForFieldType('hasValue', 'acfe_taxonomy_terms');
3389
+ acf.registerConditionForFieldType('hasNoValue', 'acfe_taxonomy_terms');
3390
+
3391
+ /**
3392
+ * Field Conditions: User Roles
3393
+ */
3394
+ acf.registerConditionForFieldType('equalTo', 'acfe_user_roles');
3395
+ acf.registerConditionForFieldType('notEqualTo', 'acfe_user_roles');
3396
+ acf.registerConditionForFieldType('patternMatch', 'acfe_user_roles');
3397
+ acf.registerConditionForFieldType('contains', 'acfe_user_roles');
3398
+ acf.registerConditionForFieldType('hasValue', 'acfe_user_roles');
3399
+ acf.registerConditionForFieldType('hasNoValue', 'acfe_user_roles');
3400
+
3401
+ /**
3402
+ * Module: Author
3403
+ */
3404
+ acf.add_action('new_field/name=acfe_author', function(field){
3405
+
3406
+ field.on('change', function(e){
3407
+
3408
+ e.stopPropagation();
3409
+
3410
+ });
3411
+
3412
+ });
3413
+
3414
+ /**
3415
+ * Module: Dynamic Forms - Fields Mapping
3416
+ */
3417
+ var acfe_form_map_fields = function(field){
3418
+
3419
+ var name = field.get('name');
3420
+ var $layout = field.$el.closest('.layout');
3421
+ var $message = $layout.find('> .acf-fields > .acf-field[data-name="' + name + '_message"] > .acf-input');
3422
+
3423
+ var selected = field.$input().find('option:selected').text();
3424
+
3425
+ if(selected.length){
3426
+ $message.html(selected);
3427
+ }
3428
+
3429
+ field.$input().on('change', function(){
3430
+
3431
+ // Message
3432
+ var text = $(this).find('option:selected').text();
3433
+
3434
+ $message.html(text);
3435
+
3436
+ });
3437
+
3438
+ };
3439
+
3440
+ acf.addAction('new_field/name=acfe_form_post_map_target', acfe_form_map_fields);
3441
+ acf.addAction('new_field/name=acfe_form_post_map_post_type', acfe_form_map_fields);
3442
+ acf.addAction('new_field/name=acfe_form_post_map_post_status', acfe_form_map_fields);
3443
+ acf.addAction('new_field/name=acfe_form_post_map_post_title', acfe_form_map_fields);
3444
+ acf.addAction('new_field/name=acfe_form_post_map_post_name', acfe_form_map_fields);
3445
+ acf.addAction('new_field/name=acfe_form_post_map_post_content', acfe_form_map_fields);
3446
+ acf.addAction('new_field/name=acfe_form_post_map_post_author', acfe_form_map_fields);
3447
+ acf.addAction('new_field/name=acfe_form_post_map_post_parent', acfe_form_map_fields);
3448
+ acf.addAction('new_field/name=acfe_form_post_map_post_terms', acfe_form_map_fields);
3449
+
3450
+ acf.addAction('new_field/name=acfe_form_user_map_email', acfe_form_map_fields);
3451
+ acf.addAction('new_field/name=acfe_form_user_map_username', acfe_form_map_fields);
3452
+ acf.addAction('new_field/name=acfe_form_user_map_password', acfe_form_map_fields);
3453
+ acf.addAction('new_field/name=acfe_form_user_map_first_name', acfe_form_map_fields);
3454
+ acf.addAction('new_field/name=acfe_form_user_map_last_name', acfe_form_map_fields);
3455
+ acf.addAction('new_field/name=acfe_form_user_map_nickname', acfe_form_map_fields);
3456
+ acf.addAction('new_field/name=acfe_form_user_map_display_name', acfe_form_map_fields);
3457
+ acf.addAction('new_field/name=acfe_form_user_map_website', acfe_form_map_fields);
3458
+ acf.addAction('new_field/name=acfe_form_user_map_description', acfe_form_map_fields);
3459
+ acf.addAction('new_field/name=acfe_form_user_map_role', acfe_form_map_fields);
3460
+
3461
+ acf.addAction('new_field/name=acfe_form_term_map_name', acfe_form_map_fields);
3462
+ acf.addAction('new_field/name=acfe_form_term_map_slug', acfe_form_map_fields);
3463
+ acf.addAction('new_field/name=acfe_form_term_map_taxonomy', acfe_form_map_fields);
3464
+ acf.addAction('new_field/name=acfe_form_term_map_parent', acfe_form_map_fields);
3465
+ acf.addAction('new_field/name=acfe_form_term_map_description', acfe_form_map_fields);
3466
+
3467
+ /**
3468
+ * Module: Dynamic Forms (actions)
3469
+ */
3470
+ acf.addAction('new_field/name=acfe_form_actions', function(field){
3471
+
3472
+ var $tab = $('a[data-key=field_acfe_form_tab_actions]');
3473
+
3474
+ var $layouts = field.$layouts();
3475
+
3476
+ $tab.html('Actions <span class="acfe-tab-badge">' + $layouts.length + '</span>');
3477
+
3478
+ field.on('change', function(){
3479
+
3480
+ var $layouts = field.$layouts();
3481
+
3482
+ $tab.html('Actions <span class="acfe-tab-badge">' + $layouts.length + '</span>');
3483
+
3484
+ });
3485
+
3486
+ field.on('click', '[data-name="add-layout"]', function(e){
3487
+
3488
+ $('body').find('.acf-fc-popup').addClass('acfe-fc-popup-grey');
3489
+
3490
+ });
3491
+
3492
+ });
3493
+
3494
+ var acfe_tab_forget_tab_preference = function(field){
3495
+
3496
+ var $tabs = field.findTabs();
3497
+ var tabs = acf.getInstances($tabs);
3498
+ var key = field.get('key');
3499
+
3500
+ if(tabs.length){
3501
+
3502
+ var preference = acf.getPreference('this.tabs');
3503
+
3504
+ if(!preference)
3505
+ return;
3506
+
3507
+ $.each(tabs, function(){
3508
+
3509
+ var group = this;
3510
+ var groupIndex = group.get('index');
3511
+
3512
+ if(group.data.key === key){
3513
+ preference[groupIndex] = 0;
3514
+ }
3515
+
3516
+ });
3517
+
3518
+ // update
3519
+ acf.setPreference('this.tabs', preference);
3520
+
3521
+ }
3522
+
3523
+ };
3524
+
3525
+ acf.addAction('prepare_field/key=field_acfe_form_custom_action_tab_action', acfe_tab_forget_tab_preference);
3526
+ acf.addAction('prepare_field/key=field_acfe_form_email_tab_action', acfe_tab_forget_tab_preference);
3527
+ acf.addAction('prepare_field/key=field_acfe_form_post_tab_action', acfe_tab_forget_tab_preference);
3528
+ acf.addAction('prepare_field/key=field_acfe_form_term_tab_action', acfe_tab_forget_tab_preference);
3529
+ acf.addAction('prepare_field/key=field_acfe_form_user_tab_action', acfe_tab_forget_tab_preference);
3530
+
3531
+ acf.addAction('prepare_field/key=field_acfe_dpt_tab_general', acfe_tab_forget_tab_preference);
3532
+ acf.addAction('prepare_field/key=field_acfe_dt_tab_general', acfe_tab_forget_tab_preference);
3533
+
3534
+ acf.addAction('show_postbox', function(postbox){
3535
+ postbox.$el.removeClass('acfe-postbox-left acfe-postbox-top');
3536
+ });
3537
+
3538
+ // Allow conditions to work within wrapped div
3539
+ acf.newCondition = function( rule, conditions ){
3540
+
3541
+ // currently setting up conditions for fieldX, this field is the 'target'
3542
+ var target = conditions.get('field');
3543
+
3544
+ // use the 'target' to find the 'trigger' field.
3545
+ // - this field is used to setup the conditional logic events
3546
+ var field = target.getField( rule.field );
3547
+
3548
+ // ACF Extended: Check in all form if targeted field not found
3549
+ if( target && !field ) {
3550
+
3551
+ field = acf.getField( rule.field );
3552
+
3553
+ }
3554
+
3555
+ // bail ealry if no target or no field (possible if field doesn't exist due to HTML error)
3556
+ if( !target || !field ) {
3557
+ return false;
3558
+ }
3559
+
3560
+ // vars
3561
+ var args = {
3562
+ rule: rule,
3563
+ target: target,
3564
+ conditions: conditions,
3565
+ field: field
3566
+ };
3567
+
3568
+ // vars
3569
+ var fieldType = field.get('type');
3570
+ var operator = rule.operator;
3571
+
3572
+ // get avaibale conditions
3573
+ var conditionTypes = acf.getConditionTypes({
3574
+ fieldType: fieldType,
3575
+ operator: operator,
3576
+ });
3577
+
3578
+ // instantiate
3579
+ var model = conditionTypes[0] || acf.Condition;
3580
+
3581
+ // instantiate
3582
+ var condition = new model( args );
3583
+
3584
+ // return
3585
+ return condition;
3586
+
3587
+ };
3588
+
3589
+ /**
3590
+ * Field: Checkbox
3591
+ */
3592
+ acf.addAction('new_field/type=checkbox', function(field){
3593
+
3594
+ if(!field.has('acfeLabels'))
3595
+ return;
3596
+
3597
+ $.each(field.get('acfeLabels'), function(group, key){
3598
+
3599
+ field.$control().find('input[type=checkbox][value="' + key + '"]').closest('ul').before('<strong>' + group + '</strong>');
3600
+
3601
+ });
3602
+
3603
+ });
3604
+
3605
+ /**
3606
+ * Field: Radio
3607
+ */
3608
+ acf.addAction('new_field/type=radio', function(field){
3609
+
3610
+ if(!field.has('acfeLabels'))
3611
+ return;
3612
+
3613
+ $.each(field.get('acfeLabels'), function(group, key){
3614
+
3615
+ field.$control().find('input[type=radio][value="' + key + '"]').closest('li').addClass('parent').prepend('<strong>' + group + '</strong>');
3616
+
3617
+ });
3618
+
3619
+ if(field.$control().hasClass('acf-hl')){
3620
+
3621
+ field.$control().find('li.parent').each(function(){
3622
+
3623
+ $(this).nextUntil('li.parent').addBack().wrapAll('<li><ul></ul></li>');
3624
+
3625
+ });
3626
+
3627
+ }
3628
+
3629
+ });
3630
+
3631
+ })(jQuery);
3632
+ (function($){
3633
+
3634
+ if(typeof acf === 'undefined')
3635
+ return;
3636
+
3637
+ acf.addAction('prepare', function(){
3638
+
3639
+ if(acf.get('is_admin'))
3640
+ return;
3641
+
3642
+ // Fix Image/File WP Media upload
3643
+ if(acf.isset(window, 'wp', 'media', 'view', 'settings', 'post')){
3644
+
3645
+ // Unset Post ID
3646
+ wp.media.view.settings.post = false;
3647
+
3648
+ }
3649
+
3650
+ if($('.acfe-form[data-hide-unload="1"]').length){
3651
+
3652
+ acf.unload.disable();
3653
+
3654
+ }
3655
+
3656
+ if($('.acfe-form-success').length){
3657
+
3658
+ if(window.history.replaceState){
3659
+ window.history.replaceState(null, null, window.location.href);
3660
+ }
3661
+
3662
+ $('.acfe-form-success').each(function(){
3663
+
3664
+ var form_name = $(this).data('form-name');
3665
+ var form_id = $(this).data('form-id');
3666
+
3667
+ acf.doAction('acfe/form/submit/success');
3668
+ acf.doAction('acfe/form/submit/success/id=' + form_id);
3669
+ acf.doAction('acfe/form/submit/success/name=' + form_name);
3670
+
3671
+ });
3672
+
3673
+ }
3674
+
3675
+ });
3676
+
3677
+ // Datepicker: Add field class
3678
+ acf.addAction('new_field/type=date_picker', function(field){
3679
+
3680
+ if(acf.get('is_admin'))
3681
+ return;
3682
+
3683
+ var $form = field.$el.closest('.acfe-form');
3684
+
3685
+ if(!$form.length)
3686
+ return;
3687
+
3688
+ var field_class = $form.data('fields-class');
3689
+
3690
+ if(field_class)
3691
+ field.$inputText().addClass(field_class);
3692
+
3693
+ });
3694
+
3695
+ // Google Maps: Add field class
3696
+ acf.addAction('new_field/type=google_map', function(field){
3697
+
3698
+ if(acf.get('is_admin'))
3699
+ return;
3700
+
3701
+ var $form = field.$el.closest('.acfe-form');
3702
+
3703
+ if(!$form.length)
3704
+ return;
3705
+
3706
+ var field_class = $form.data('fields-class');
3707
+
3708
+ if(field_class)
3709
+ field.$search().addClass(field_class);
3710
+
3711
+ });
3712
+
3713
+ // Error: Move error
3714
+ acf.addAction('invalid_field', function(field){
3715
+
3716
+ if(acf.get('is_admin'))
3717
+ return;
3718
+
3719
+ var $form = field.$el.closest('.acfe-form');
3720
+
3721
+ if(!$form.length)
3722
+ return;
3723
+
3724
+ var errors_position = $form.data('errors-position');
3725
+ var errors_class = $form.data('errors-class');
3726
+
3727
+ // Class
3728
+ if(errors_class && errors_class.length){
3729
+
3730
+ field.$el.find('.acf-notice.-error').addClass(errors_class);
3731
+
3732
+ }
3733
+
3734
+ // Move below
3735
+ if(errors_position && errors_position === 'below'){
3736
+
3737
+ if(field.$control().length){
3738
+
3739
+ field.$el.find('.acf-notice.-error').insertAfter(field.$control());
3740
+
3741
+ }else if(field.$input().length){
3742
+
3743
+ field.$el.find('.acf-notice.-error').insertAfter(field.$input());
3744
+
3745
+ }
3746
+
3747
+ var $selector = false;
3748
+
3749
+ if(field.$control().length){
3750
+
3751
+ $selector = field.$control();
3752
+
3753
+ }else if(field.$input().length){
3754
+
3755
+ $selector = field.$input();
3756
+
3757
+ }
3758
+
3759
+ if($selector)
3760
+ field.$el.find('.acf-notice.-error').insertAfter($selector);
3761
+
3762
+ }
3763
+
3764
+ // Group errors
3765
+ else if(errors_position && errors_position === 'group'){
3766
+
3767
+ var label = field.$el.find('.acf-label label').text().trim();
3768
+ var placeholder = field.$el.find('.acf-input-wrap [placeholder!=""]').attr('placeholder');
3769
+ var message = field.$el.find('.acf-notice.-error').text().trim();
3770
+
3771
+ field.$el.find('.acf-notice.-error').remove();
3772
+
3773
+ // Try label
3774
+ if(label && label.length && label !== '*'){
3775
+
3776
+ message = label + ': ' + message;
3777
+
3778
+ }
3779
+
3780
+ // Try placeholder
3781
+ else if(placeholder && placeholder.length && placeholder !== ''){
3782
+
3783
+ message = placeholder + ': ' + message;
3784
+
3785
+ }
3786
+
3787
+ // If everything fails, use field name
3788
+ else{
3789
+
3790
+ message = field.get('name') + ': ' + message;
3791
+
3792
+ }
3793
+
3794
+ var $form_error = $form.find('> .acfe-form-error')
3795
+
3796
+ if(!$form_error.length)
3797
+ $form_error = $('<div class="acf-notice -error acf-error-message acfe-form-error" />').prependTo($form);
3798
+
3799
+ $form_error.append('<p>' + message + '</p>');
3800
+
3801
+ }
3802
+
3803
+ // Hide errors
3804
+ else if(errors_position && errors_position === 'hide'){
3805
+
3806
+ field.$el.find('.acf-notice.-error').remove();
3807
+
3808
+ }
3809
+
3810
+ });
3811
+
3812
+ // Remove error message on validation
3813
+ acf.addAction('validation_begin', function($form){
3814
+
3815
+ if(acf.get('is_admin'))
3816
+ return;
3817
+
3818
+ if(typeof $form === 'undefined')
3819
+ return;
3820
+
3821
+ $form.find('.acf-error-message').remove();
3822
+
3823
+ });
3824
+
3825
+ })(jQuery);
3826
+ (function($){
3827
+
3828
+ if(typeof acf === 'undefined')
3829
+ return;
3830
+
3831
+ /*
3832
+ * Init
3833
+ */
3834
+ var repeater = acf.getFieldType('repeater');
3835
+ var model = repeater.prototype;
3836
+
3837
+ // Repeater: Lock Layouts
3838
+ model.acfeOnHover = function(){
3839
+
3840
+ var repeater = this;
3841
+
3842
+ // remove event
3843
+ repeater.off('mouseover');
3844
+
3845
+ }
3846
+
3847
+ /*
3848
+ * Spawn
3849
+ */
3850
+ acf.addAction('new_field/type=repeater', function(repeater){
3851
+
3852
+ // ACFE: Lock
3853
+ if(repeater.has('acfeRepeaterLock')){
3854
+
3855
+ repeater.removeEvents({'mouseover': 'onHover'});
3856
+
3857
+ repeater.addEvents({'mouseover': 'acfeOnHover'});
3858
+
3859
+ }
3860
+
3861
+ // ACFE: Remove Actions
3862
+ if(repeater.has('acfeRepeaterRemoveActions')){
3863
+
3864
+ repeater.$actions().remove();
3865
+
3866
+ repeater.$el.find('thead:first > tr > th.acf-row-handle:last').remove();
3867
+ repeater.$rows().find('> .acf-row-handle:last').remove();
3868
+
3869
+ repeater.$control().find('> .acfe-repeater-stylised-button').remove();
3870
+
3871
+
3872
+ }
3873
+
3874
+ // ACFE: Stylised button
3875
+ if(repeater.has('acfeRepeaterStylisedButton')){
3876
+
3877
+ repeater.$button().removeClass('button-primary');
3878
+ repeater.$actions().wrap('<div class="acfe-repeater-stylised-button" />');
3879
+
3880
+ }
3881
+
3882
+ });
3883
+
3884
  })(jQuery);
assets/acf-extended.min.css ADDED
@@ -0,0 +1 @@
 
1
+ body.-loading *{cursor:wait!important}.acf-field .acf-label label{font-weight:600!important}.acf-field p.description{word-break:break-word}.acf-fields.-left>.acf-field>.acf-label{min-height:1px}.acf-field.acfe-no-label>.acf-label{margin:0}.acf-field.acfe-no-label>.acf-label>label{display:none}.acf-field.acfe-no-label>.acf-label>p.description{margin-bottom:10px}.acfe-field-tooltip{float:right;font-size:16px;color:#999}.acf-field-acfe-hidden{display:none}.acf-field-textarea[data-acfe-textarea-code="1"]>.acf-input>textarea{font-family:Menlo,Monaco,Consolas,"Courier New",monospace;font-size:1em}.acf-field-acfe-code-editor>.acf-input>.acf-input-wrap>.CodeMirror-wrap{height:auto}.acf-field-acfe-code-editor>.acf-input>.acf-input-wrap>.CodeMirror-wrap.cm-s-default{border:1px solid #7e8993;border-radius:4px}.acf-field-acfe-code-editor>.acf-input>.acf-input-wrap>.CodeMirror-wrap.cm-s-default .CodeMirror-gutters{border-right:1px solid #7e8993}body:not(.acf-admin-5-3) .acf-field-acfe-code-editor>.acf-input>.acf-input-wrap>.CodeMirror-wrap.cm-s-default{border-color:#dfdfdf}.acf-field-acfe-code-editor>.acf-input>.acf-input-wrap>.CodeMirror-wrap.cm-s-default .CodeMirror-activeline-background{background:#f9f9f9}.acf-field-acfe-code-editor>.acf-input>.acf-input-wrap>.CodeMirror-wrap.cm-s-default .CodeMirror-selected{background:#f0f0f0!important}.acf-field-acfe-code-editor>.acf-input>.acf-input-wrap>.CodeMirror-wrap.cm-s-default .CodeMirror-gutters{background:#f9f9f9}.acf-field-acfe-code-editor>td.acf-input{max-width:1px}.acf-accordion{z-index:initial}.acf-fields>.acf-field-group.acfe-field-group-layout-block.acfe-seamless-style:not([data-acfe-group-modal="1"])>.acf-input,.acf-fields>.acf-field-group.acfe-field-group-layout-row.acfe-seamless-style:not([data-acfe-group-modal="1"])>.acf-input{margin-left:-12px;margin-right:-12px;margin-bottom:-15px}.acf-fields>.acf-field-group.acfe-field-group-layout-block.acfe-seamless-style.acfe-no-label:not([data-acfe-group-modal="1"])>.acf-input,.acf-fields>.acf-field-group.acfe-field-group-layout-row.acfe-seamless-style.acfe-no-label:not([data-acfe-group-modal="1"])>.acf-input{margin-top:-15px}.acf-fields>.acf-field-group.acfe-field-group-layout-block.acfe-seamless-style.acfe-no-label:not([data-acfe-group-modal="1"])>.acf-label>p.description,.acf-fields>.acf-field-group.acfe-field-group-layout-row.acfe-seamless-style.acfe-no-label:not([data-acfe-group-modal="1"])>.acf-label>p.description{margin-bottom:15px}.acf-fields>.acf-field-group.acfe-field-group-layout-row.acfe-seamless-style.acfe-no-label>.acf-input>.acf-fields{border-width:0}.acf-fields>.acf-field-group.acfe-field-group-layout-row.acfe-seamless-style>.acf-input>.acf-fields{border-left-width:0;border-right-width:0;border-bottom-width:0}.acf-fields>.acf-field-group.acfe-field-group-layout-block.acfe-seamless-style>.acf-input>.acf-fields{border-width:0}.acf-fields.-left>.acf-field-group.acfe-field-group-layout-row.acfe-seamless-style>.acf-input{margin:0}.acf-fields.-left>.acf-field-group.acfe-field-group-layout-row.acfe-seamless-style>.acf-input>.acf-fields{border-width:1px}.acf-fields.-left>.acf-field-group.acfe-field-group-layout-block.acfe-seamless-style:not([data-acfe-group-modal="1"])>.acf-input,.acf-fields.-left>.acf-field-group.acfe-field-group-layout-table.acfe-seamless-style:not([data-acfe-group-modal="1"])>.acf-input{padding:0;padding-left:1px;margin-top:-15px;margin-bottom:-15px;margin-left:0;margin-right:0}.acf-fields.-left>.acf-field-group.acfe-field-group-layout-block.acfe-seamless-style>.acf-input>.acf-fields,.acf-fields.-left>.acf-field-group.acfe-field-group-layout-table.acfe-seamless-style>.acf-input>.acf-table{border-width:0}.acf-fields>.acf-field-group[data-acfe-group-modal="1"]>.acf-input>.acfe-modal>.acfe-modal-wrapper>.acfe-modal-content>.acf-fields,.acf-fields>.acf-field-group[data-acfe-group-modal="1"]>.acf-input>.acfe-modal>.acfe-modal-wrapper>.acfe-modal-content>.acf-table{border-width:0}.acf-postbox.seamless>.acf-fields>.acf-field-group.acfe-field-group-layout-block.acfe-seamless-style>.acf-input,.acf-postbox.seamless>.acf-fields>.acf-field-group.acfe-field-group-layout-row.acfe-seamless-style>.acf-input,.acf-postbox.seamless>.acf-fields>.acf-field-group.acfe-field-group-layout-table.acfe-seamless-style>.acf-table{margin:0}.acf-postbox.seamless>.acf-fields>.acf-field-group.acfe-field-group-layout-block.acfe-seamless-style>.acf-input>.acf-fields,.acf-postbox.seamless>.acf-fields>.acf-field-group.acfe-field-group-layout-row.acfe-seamless-style>.acf-input>.acf-fields,.acf-postbox.seamless>.acf-fields>.acf-field-group.acfe-field-group-layout-table.acfe-seamless-style>.acf-input>.acf-table{border-width:1px}.acf-postbox.seamless>.acf-fields.-left>.acf-field-group.acfe-field-group-layout-block.acfe-seamless-style>.acf-input,.acf-postbox.seamless>.acf-fields.-left>.acf-field-group.acfe-field-group-layout-row.acfe-seamless-style>.acf-input,.acf-postbox.seamless>.acf-fields.-left>.acf-field-group.acfe-field-group-layout-table.acfe-seamless-style>.acf-input{padding:0 12px}.acf-fields>.acf-field-group[data-acfe-group-modal="1"]>.acf-input>.acf-fields,.acf-fields>.acf-field-group[data-acfe-group-modal="1"]>.acf-input>.acf-table{display:none}tr.acf-field.acf-field-group.acfe-seamless-style>td.acf-input>.acf-fields{border:0;margin-left:-10px;margin-right:-10px;margin-top:-15px;margin-bottom:-15px}tr.acf-field.acf-field-group.acfe-seamless-style.acfe-field-group-layout-table>td.acf-input{padding:0;margin-top:-15px;margin-bottom:-15px;margin-left:0;margin-right:0}tr.acf-field.acf-field-group.acfe-seamless-style.acfe-field-group-layout-table>td.acf-input>.acf-table{border-width:0}tr.acf-field.acf-field-group[data-acfe-group-modal="1"]>.acf-input>.acfe-modal>.acfe-modal-wrapper>.acfe-modal-content>.acf-fields,tr.acf-field.acf-field-group[data-acfe-group-modal="1"]>.acf-input>.acfe-modal>.acfe-modal-wrapper>.acfe-modal-content>.acf-table{border-width:0}.acf-fields>.acf-field-clone.acfe-field-clone-layout-block.acfe-seamless-style:not([data-acfe-clone-modal="1"])>.acf-input,.acf-fields>.acf-field-clone.acfe-field-clone-layout-row.acfe-seamless-style:not([data-acfe-clone-modal="1"])>.acf-input{margin-left:-12px;margin-right:-12px;margin-bottom:-15px}.acf-fields>.acf-field-clone.acfe-field-clone-layout-block.acfe-no-label.acfe-seamless-style:not([data-acfe-clone-modal="1"])>.acf-input,.acf-fields>.acf-field-clone.acfe-field-clone-layout-row.acfe-no-label.acfe-seamless-style:not([data-acfe-clone-modal="1"])>.acf-input{margin-top:-15px}.acf-fields>.acf-field-clone.acfe-field-clone-layout-block.acfe-seamless-style.acfe-no-label:not([data-acfe-clone-modal="1"])>.acf-label>p.description,.acf-fields>.acf-field-clone.acfe-field-clone-layout-row.acfe-seamless-style.acfe-no-label:not([data-acfe-clone-modal="1"])>.acf-label>p.description{margin-bottom:15px}.acf-fields>.acf-field-clone.acfe-field-clone-layout-row.acfe-no-label.acfe-seamless-style>.acf-input>.acf-fields{border-width:0}.acf-fields>.acf-field-clone.acfe-field-clone-layout-row.acfe-seamless-style>.acf-input>.acf-fields{border-left-width:0;border-right-width:0;border-bottom-width:0}.acf-fields>.acf-field-clone.acfe-field-clone-layout-block.acfe-seamless-style>.acf-input>.acf-fields{border-width:0}.acf-fields.-left>.acf-field-clone.acfe-field-clone-layout-row.acfe-seamless-style>.acf-input{margin:0}.acf-fields.-left>.acf-field-clone.acfe-field-clone-layout-row.acfe-seamless-style>.acf-input>.acf-fields{border-width:1px}.acf-fields.-left>.acf-field-clone.acfe-field-clone-layout-block.acfe-seamless-style:not([data-acfe-clone-modal="1"])>.acf-input,.acf-fields.-left>.acf-field-clone.acfe-field-clone-layout-table.acfe-seamless-style:not([data-acfe-clone-modal="1"])>.acf-input{padding:0;padding-left:1px;margin-top:-15px;margin-bottom:-15px;margin-left:0;margin-right:0}.acf-fields.-left>.acf-field-clone.acfe-field-clone-layout-block.acfe-seamless-style>.acf-input>.acf-fields,.acf-fields.-left>.acf-field-clone.acfe-field-clone-layout-table.acfe-seamless-style>.acf-input>.acf-table{border-width:0}.acf-fields>.acf-field-clone[data-acfe-clone-modal="1"]>.acf-input>.acfe-modal>.acfe-modal-wrapper>.acfe-modal-content>.acf-fields,.acf-fields>.acf-field-clone[data-acfe-clone-modal="1"]>.acf-input>.acfe-modal>.acfe-modal-wrapper>.acfe-modal-content>.acf-table{border-width:0}.acf-postbox.seamless>.acf-fields>.acf-field-clone.acfe-field-clone-layout-block.acfe-seamless-style>.acf-input,.acf-postbox.seamless>.acf-fields>.acf-field-clone.acfe-field-clone-layout-row.acfe-seamless-style>.acf-input,.acf-postbox.seamless>.acf-fields>.acf-field-clone.acfe-field-clone-layout-table.acfe-seamless-style>.acf-table{margin:0}.acf-postbox.seamless>.acf-fields>.acf-field-clone.acfe-field-clone-layout-block.acfe-seamless-style>.acf-input>.acf-fields,.acf-postbox.seamless>.acf-fields>.acf-field-clone.acfe-field-clone-layout-row.acfe-seamless-style>.acf-input>.acf-fields,.acf-postbox.seamless>.acf-fields>.acf-field-clone.acfe-field-clone-layout-table.acfe-seamless-style>.acf-input>.acf-table{border-width:1px}.acf-postbox.seamless>.acf-fields.-left>.acf-field-clone.acfe-field-clone-layout-block.acfe-seamless-style>.acf-input,.acf-postbox.seamless>.acf-fields.-left>.acf-field-clone.acfe-field-clone-layout-row.acfe-seamless-style>.acf-input,.acf-postbox.seamless>.acf-fields.-left>.acf-field-clone.acfe-field-clone-layout-table.acfe-seamless-style>.acf-input{padding:0 12px}tr.acf-field.acf-field-clone.acfe-seamless-style>td.acf-input>.acf-fields{border:0;margin-left:-10px;margin-right:-10px;margin-top:-15px;margin-bottom:-15px}tr.acf-field.acf-field-clone.acfe-seamless-style.acfe-field-clone-layout-table>td.acf-input{padding:0;margin-top:-15px;margin-bottom:-15px;margin-left:0;margin-right:0}tr.acf-field.acf-field-clone.acfe-seamless-style.acfe-field-clone-layout-table>td.acf-input>.acf-table{border-width:0}tr.acf-field.acf-field-clone[data-acfe-clone-modal="1"]>.acf-input>.acfe-modal>.acfe-modal-wrapper>.acfe-modal-content>.acf-fields,tr.acf-field.acf-field-clone[data-acfe-clone-modal="1"]>.acf-input>.acfe-modal>.acfe-modal-wrapper>.acfe-modal-content>.acf-table{border-width:0}.acfe-modal-content .acf-color-picker .wp-picker-holder{position:relative}.acf-field-checkbox .acf-input .acf-checkbox-list.acf-bl li+li>strong{margin-top:15px;display:inline-block}.acf-field-radio[data-acfe-labels] .acf-input .acf-radio-list.acf-hl li>strong{display:block}.acf-field-radio .acf-input .acf-radio-list.acf-bl li>strong{display:block}.acf-field-radio .acf-input .acf-radio-list.acf-bl li+li>strong{margin-top:15px}.acf-range-wrap input[type=number]{min-width:3.5em}.acf-link.-value .acfe-modal-footer .button{display:unset}.acf-editor-wrap iframe{min-height:60px}.acf-editor-wrap .mce-top-part::before{box-shadow:none}.acf-editor-wrap div.mce-statusbar{border:0}.acf-editor-wrap .mce-divider,.acf-editor-wrap .mce-path-item{color:#aaa}form.acfe-form.is-invalid[data-hide-error="1"]>.acf-error-message.-dismiss{display:none}form.acfe-form.is-valid[data-hide-revalidation="1"]>.acf-notice.-success{display:none}form.acfe-form.is-invalid[data-errors-position=below] .acf-field .acf-notice{margin:15px 0 0}.acf-fields>.acf-field.acf-field-acfe-column{float:left;clear:none;box-sizing:border-box;padding:0;border-top-width:0}.acf-fields.-left>.acf-field.acf-field-acfe-column{border-right:1px solid #eee}.acf-fields.-left>.acf-field.acf-field-acfe-column:before{content:"";display:block;position:initial;background:0 0;border:0;width:auto}.acf-fields.-left>.acf-field.acf-field-acfe-column>.acf-input{float:none;width:auto;margin:0;padding:0}.acf-fields>.acf-field.acf-field-acfe-column>.acf-input>.acf-fields>.acf-field{border-top-width:0}.acf-fields>.acf-field.acf-field-acfe-column[data-endpoint="1"]{clear:both;border-top:1px solid #eee;width:100%}.acf-fields>.acf-field.acf-field-acfe-column[data-columns="1/12"]{width:8.333333%}.acf-fields>.acf-field.acf-field-acfe-column[data-columns="2/12"]{width:16.66666%}.acf-fields>.acf-field.acf-field-acfe-column[data-columns="3/12"]{width:25%}.acf-fields>.acf-field.acf-field-acfe-column[data-columns="4/12"]{width:33.33333%}.acf-fields>.acf-field.acf-field-acfe-column[data-columns="5/12"]{width:41.66667%}.acf-fields>.acf-field.acf-field-acfe-column[data-columns="6/12"]{width:50%}.acf-fields>.acf-field.acf-field-acfe-column[data-columns="7/12"]{width:58.33333%}.acf-fields>.acf-field.acf-field-acfe-column[data-columns="8/12"]{width:66.66666%}.acf-fields>.acf-field.acf-field-acfe-column[data-columns="9/12"]{width:75%}.acf-fields>.acf-field.acf-field-acfe-column[data-columns="10/12"]{width:83.33333%}.acf-fields>.acf-field.acf-field-acfe-column[data-columns="11/12"]{width:91.66667%}.acf-fields>.acf-field.acf-field-acfe-column[data-columns="12/12"]{width:100%;border-right:0}@media only screen and (max-width:1024px){.acf-fields>.acf-field.acf-field-acfe-column[data-columns="1/12"],.acf-fields>.acf-field.acf-field-acfe-column[data-columns="10/12"],.acf-fields>.acf-field.acf-field-acfe-column[data-columns="11/12"],.acf-fields>.acf-field.acf-field-acfe-column[data-columns="2/12"],.acf-fields>.acf-field.acf-field-acfe-column[data-columns="3/12"],.acf-fields>.acf-field.acf-field-acfe-column[data-columns="4/12"],.acf-fields>.acf-field.acf-field-acfe-column[data-columns="5/12"],.acf-fields>.acf-field.acf-field-acfe-column[data-columns="7/12"],.acf-fields>.acf-field.acf-field-acfe-column[data-columns="8/12"],.acf-fields>.acf-field.acf-field-acfe-column[data-columns="9/12"]{width:50%}}@media only screen and (max-width:640px){.acf-fields>.acf-field.acf-field-acfe-column[data-columns="1/12"],.acf-fields>.acf-field.acf-field-acfe-column[data-columns="10/12"],.acf-fields>.acf-field.acf-field-acfe-column[data-columns="11/12"],.acf-fields>.acf-field.acf-field-acfe-column[data-columns="12/12"],.acf-fields>.acf-field.acf-field-acfe-column[data-columns="2/12"],.acf-fields>.acf-field.acf-field-acfe-column[data-columns="3/12"],.acf-fields>.acf-field.acf-field-acfe-column[data-columns="4/12"],.acf-fields>.acf-field.acf-field-acfe-column[data-columns="5/12"],.acf-fields>.acf-field.acf-field-acfe-column[data-columns="6/12"],.acf-fields>.acf-field.acf-field-acfe-column[data-columns="7/12"],.acf-fields>.acf-field.acf-field-acfe-column[data-columns="8/12"],.acf-fields>.acf-field.acf-field-acfe-column[data-columns="9/12"]{width:100%}}.acf-media-modal .screen-reader-text,.acf-media-modal .screen-reader-text span,.acf-media-modal .ui-helper-hidden-accessible{border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}.acf-ui-datepicker .ui-datepicker{padding:0;border-color:#7e8993!important;border-radius:4px;box-sizing:border-box;background:#fff}.acf-ui-datepicker select{font-size:14px;cursor:pointer;vertical-align:middle;line-height:2;color:#32373c;border-color:#7e8993;box-shadow:none;border-radius:3px;padding:0 24px 0 8px;min-height:30px;max-width:25rem;-webkit-appearance:none;background:#fff url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%206l5%205%205-5%202%201-7%207-7-7%202-1z%22%20fill%3D%22%23555%22%2F%3E%3C%2Fsvg%3E') no-repeat right 5px top 55%;background-size:16px 16px}.acf-ui-datepicker .ui-datepicker table{font-size:13px;margin:0;margin-bottom:7px}.acf-ui-datepicker .ui-datepicker .ui-datepicker-header{border:none;background:#f9f9f9;color:#222;font-weight:400;border-radius:4px 4px 0}.acf-ui-datepicker .ui-datepicker .ui-datepicker-header .ui-state-hover{background:#f9f9f9;cursor:pointer;border-radius:0;border:0}.acf-ui-datepicker .ui-datepicker thead{background:#f9f9f9;color:#222}.acf-ui-datepicker .ui-datepicker .ui-datepicker-title{margin-top:.4em;margin-bottom:.3em;color:#222;font-size:14px}.acf-ui-datepicker .ui-datepicker .ui-datepicker-next,.acf-ui-datepicker .ui-datepicker .ui-datepicker-next-hover,.acf-ui-datepicker .ui-datepicker .ui-datepicker-prev,.acf-ui-datepicker .ui-datepicker .ui-datepicker-prev-hover{height:20px;width:20px;border:none;overflow:hidden;margin-top:15px;top:0}.acf-ui-datepicker .ui-datepicker .ui-datepicker-next-hover,.acf-ui-datepicker .ui-datepicker .ui-datepicker-prev-hover{background:0 0!important;color:#007cba!important}.acf-ui-datepicker .ui-datepicker .ui-datepicker-next{right:7px}.acf-ui-datepicker .ui-datepicker .ui-datepicker-prev{left:7px}.acf-ui-datepicker .ui-datepicker .ui-datepicker-next span,.acf-ui-datepicker .ui-datepicker .ui-datepicker-prev span{height:20px;width:20px;background:0 0;position:relative;margin:0;left:unset;top:unset;font-size:1px}.acf-ui-datepicker .ui-datepicker .ui-datepicker-next span:before,.acf-ui-datepicker .ui-datepicker .ui-datepicker-prev span:before{display:block;font-family:dashicons;line-height:1;font-weight:400;text-indent:0;font-style:normal;speak:none;text-decoration:inherit;text-transform:none;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:20px;height:20px;font-size:16px;vertical-align:top;text-align:center}.acf-ui-datepicker .ui-datepicker .ui-datepicker-next span:before{content:"\f345"}.acf-ui-datepicker .ui-datepicker .ui-datepicker-prev span:before{content:"\f341"}.acf-ui-datepicker .ui-datepicker .ui-datepicker-title select{margin:0 3px}.acf-ui-datepicker .ui-datepicker th{padding:.75em 0;color:#222;font-weight:400;border:none;border-bottom:1px solid #e1e1e1;background:#f9f9f9}.acf-ui-datepicker .ui-datepicker td{background:#fff;border:none;padding:0}.acf-ui-datepicker .ui-datepicker td .ui-state-default{background:0 0;border:none;text-align:center;padding:.5em;margin:0;font-weight:400;color:#333}.acf-ui-datepicker .ui-datepicker td .ui-state-active,.acf-ui-datepicker .ui-datepicker td .ui-state-hover{background:#007cba;color:#fff;box-shadow:none}.acf-ui-datepicker .ui-datepicker td.ui-state-disabled,.acf-ui-datepicker .ui-datepicker td.ui-state-disabled .ui-state-default{opacity:1;color:#999}.acf-ui-datepicker .ui-datepicker-today .ui-state-highlight{border:none!important;background:#eee!important;font-weight:400!important;color:#222!important}.acf-ui-datepicker .ui-state-highlight.ui-state-active,.acf-ui-datepicker .ui-state-highlight.ui-state-hover{border:none!important;background:#007cba!important;font-weight:400!important;color:#fff!important}.acf-ui-datepicker .ui-state-highlight.ui-state-hover.ui-state-active{background:#007cba!important}.acf-ui-datepicker .ui-timepicker-div{padding:10px 7px!important}.acf-ui-datepicker .ui-timepicker-div .ui-widget-header{background:0 0!important;border:0!important;display:none!important}.acf-ui-datepicker .ui-timepicker-div .ui-widget-header .ui-datepicker-title{font-size:13px!important;font-weight:600!important}.acf-ui-datepicker .ui-timepicker-div dl{margin:0;text-align:center!important}.acf-ui-datepicker .ui-timepicker-div .ui_tpicker_time_label{display:none!important}.acf-ui-datepicker .ui-timepicker-div select{background:#fff url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%206l5%205%205-5%202%201-7%207-7-7%202-1z%22%20fill%3D%22%23555%22%2F%3E%3C%2Fsvg%3E') no-repeat right 5px top 55%!important;background-size:16px 16px!important;color:#32373c!important;border-color:#7e8993!important}.acf-ui-datepicker .ui-datepicker-buttonpane{border:0!important;padding:7px!important;margin:0!important;background:#f9f9f9!important;border-top:1px solid #e1e1e1!important;border-radius:0 0 4px 4px!important}.acf-ui-datepicker .ui-datepicker-buttonpane:after{content:'';display:block;clear:both}.acf-ui-datepicker .ui-datepicker-buttonpane button{display:inline-block;text-decoration:none;font-size:13px!important;line-height:2.15384615;min-height:30px;margin:0!important;padding:0 10px!important;cursor:pointer!important;border-width:1px!important;border-style:solid!important;-webkit-appearance:none;border-radius:3px;font-weight:400!important;white-space:nowrap;box-sizing:border-box;color:#0071a1!important;border-color:#0071a1!important;background:#f3f5f6!important;vertical-align:top;box-shadow:none!important;outline:0!important;opacity:unset!important;filter:unset!important}.acf-ui-datepicker .ui-datepicker-buttonpane button:hover{background:#f1f1f1!important;border-color:#016087!important;color:#016087!important}body .medium-editor-toolbar{z-index:999999!important}.acf-flexible-content>.values>.ui-sortable-placeholder{border-width:2px;border-color:#ccc}.acf-flexible-content .layout .acf-fc-layout-handle{color:#444;font-weight:600}.layout.acfe-flexible-modal-edit-error>.acf-fc-layout-handle{color:#f33b28}.layout.acfe-flexible-modal-edit-error>.acf-fc-layout-handle>.acf-fc-layout-order{background:#f33b28;color:#fff}.acf-field-flexible-content[data-acfe-flexible-modal-edition="1"]:not([data-acfe-flexible-placeholder="1"]):not([data-acfe-flexible-preview="1"])>.acf-input>.acf-flexible-content>.values>.layout>.acf-fc-layout-handle{border-bottom-width:0}.acf-field-flexible-content[data-acfe-flexible-placeholder="1"]>.acf-input>.acf-flexible-content>.values>.layout.-collapsed>.acf-fc-layout-handle,.acf-field-flexible-content[data-acfe-flexible-preview="1"]>.acf-input>.acf-flexible-content>.values>.layout.-collapsed>.acf-fc-layout-handle{border-bottom-width:1px}.acf-field-flexible-content[data-acfe-flexible-lock="1"]>.acf-input>.acf-flexible-content>.values>.layout>.acf-fc-layout-handle{cursor:initial}.acf-field-flexible-content[data-acfe-flexible-remove-collapse="1"]:not([data-acfe-flexible-lock="1"])>.acf-input>.acf-flexible-content>.values>.layout>.acf-fc-layout-handle{cursor:initial}.acf-fc-popup.top.acfe-fc-popup-grey:before{border-top-color:#e1e1e1}.acf-tooltip.bottom.acfe-fc-popup-grey:before{border-bottom-color:#e1e1e1}.acf-fc-popup.acfe-fc-popup-grey{background:#fcfcfc;border-radius:3px;color:#444;border:1px solid #e1e1e1;font-size:13px}.acf-tooltip.top.acfe-fc-popup-grey{margin-top:-16px}.acf-tooltip.bottom.acfe-fc-popup-grey{margin-bottom:-16px}.acf-fc-popup.acfe-fc-popup-grey a{color:#444}.acf-fc-popup.acfe-fc-popup-grey a:hover{color:#fff}.layout>.acfe-fc-placeholder{text-align:center;background:#f9f9f9;display:block;text-decoration:none;position:relative;cursor:pointer}.layout>.acfe-fc-placeholder:focus{border-color:#ccc;box-shadow:none}.layout>.acfe-fc-placeholder>.acfe-flexible-placeholder{height:110px;overflow:hidden;text-align:initial}.layout>.acfe-fc-placeholder>a{z-index:2;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border-color:#ccd0d4;color:#23282d;border-radius:100px;box-shadow:none;background:#fff;width:30px;min-height:30px;height:30px;padding:0;display:block}body:not(.acf-admin-5-3) .layout>.acfe-fc-placeholder>a{border-color:#999}.acfe-modal.-open.acfe-modal-sub>.acfe-modal-wrapper>.acfe-modal-content>.acf-fields>.acf-field-flexible-content>.acf-input>.acf-flexible-content>.values>.layout>.acfe-fc-placeholder>a{z-index:0}.layout>.acfe-fc-placeholder>a:active{transform:translate(-50%,-50%)}.layout>.acfe-fc-placeholder>a:focus{border-color:#ccc;box-shadow:none}.layout>.acfe-fc-placeholder>a span{width:29px;height:30px;vertical-align:top;line-height:28px;font-size:18px}body:not(.acf-admin-5-3) .layout>.acfe-fc-placeholder>a span{width:30px;height:30px}.layout>.acfe-fc-placeholder.acfe-fc-preview{background:0 0}.layout>.acfe-fc-placeholder.acfe-fc-preview>.acfe-flexible-placeholder{min-height:55px;height:auto}.layout>.acfe-fc-placeholder.acfe-fc-preview>a{display:none}.layout>.acfe-fc-placeholder.acfe-fc-preview:hover>a{display:block}.layout>.acfe-fc-placeholder.acfe-fc-preview.-loading{background:#f9f9f9;min-height:110px}.layout>.acfe-fc-placeholder.acfe-fc-preview.-loading>.acfe-flexible-placeholder>.spinner{visibility:visible;float:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);margin:0;z-index:10000}.layout>.acfe-fc-placeholder .acfe-fc-overlay{position:absolute;width:100%;height:100%;padding:0;background-color:rgba(255,255,255,0);transition:background-color .2s linear}.layout>.acfe-fc-placeholder .acfe-fc-overlay.-hover,.layout>.acfe-fc-placeholder:hover .acfe-fc-overlay{background-color:rgba(255,255,255,.7);z-index:1}.layout>.acfe-fc-placeholder.acfe-fc-preview.-loading>a span{visibility:hidden}.layout>.acf-fields>.acfe-flexible-opened-actions,.layout>.acf-table>.acfe-flexible-opened-actions{background:#f9f9f9;border-top:1px solid #e1e1e1;padding:12px;text-align:right;clear:both}.acfe-flexible-layout-thumbnail{display:block;width:100%;height:9.8vw;background-color:#eee;background-size:cover;background-repeat:no-repeat;background-position:center;position:relative;margin-bottom:15px}.acfe-flexible-layout-thumbnail.acfe-flexible-layout-thumbnail-not-found:after{content:"\f180";font-family:dashicons;display:inline-block;line-height:1;font-weight:400;font-style:normal;speak:none;text-decoration:inherit;text-transform:none;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top;text-align:center;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#ccc;font-size:110px}.acfe-col-2 .acfe-flexible-layout-thumbnail{height:20.5vw}.acfe-col-3 .acfe-flexible-layout-thumbnail{height:13.3vw}.acfe-col-5 .acfe-flexible-layout-thumbnail{height:7.65vw}.acfe-col-6 .acfe-flexible-layout-thumbnail{height:6.2vw}@media only screen and (max-width:960px){.acfe-flex-container .acfe-flexible-layout-thumbnail,.acfe-flexible-layout-thumbnail{height:18.4vw}}@media only screen and (max-width:720px){.acfe-flex-container .acfe-flexible-layout-thumbnail,.acfe-flexible-layout-thumbnail{height:37.2vw}}.acfe-flexible-layout-thumbnail.acfe-flexible-layout-thumbnail-no-modal{display:block;width:230px;height:103px;background-color:#1f2329}.acfe-flexible-layout-thumbnail.acfe-flexible-layout-thumbnail-no-modal.acfe-flexible-layout-thumbnail-not-found:after{color:#2f353e}.acf-field.acf-field-flexible-content[data-acfe-flexible-stylised-button="1"]>.acf-input>.acf-flexible-content:not(.empty)>.values{margin-bottom:15px}.acf-field.acf-field-flexible-content>.acf-input>.acf-flexible-content>.acfe-flexible-stylised-button{padding:40px 20px;border:#ccc dashed 2px;text-align:center}.acf-field.acf-field-flexible-content>.acf-input>.acf-flexible-content>.acfe-flexible-stylised-button>.acf-actions{text-align:center}.acf-field.acf-field-flexible-content>.acf-input>.acf-flexible-content .acf-actions .acf-button .dashicons{width:auto;height:auto;vertical-align:text-top}.acf-field.acf-field-flexible-content[data-acfe-flexible-hide-empty-message="1"]>.acf-input>.acf-flexible-content>.no-value-message{display:none}.acf-field.acf-field-flexible-content[data-acfe-flexible-hide-empty-message="1"]>.acf-input>.acf-flexible-content.-empty>.values{margin-bottom:0}.acf-flexible-content .layout .acf-icon.acfe-flexible-icon.dashicons:before{font-family:dashicons}.acf-flexible-content .layout .acf-icon.acfe-flexible-icon.dashicons{visibility:hidden}.acf-flexible-content .layout:hover>.acf-fc-layout-controls .acf-icon.acfe-flexible-icon.dashicons{visibility:visible}.acf-flexible-content .layout .acf-icon.acfe-flexible-icon.dashicons.dashicons-admin-generic{visibility:visible}.acf-flexible-content .layout .acf-icon.acfe-flexible-icon.dashicons.dashicons-admin-generic:before{margin-left:1px}.acf-flexible-content .layout.-hover .acf-fc-layout-controls .acf-icon.-duplicate,.acf-flexible-content .layout.-hover .acf-fc-layout-controls .acf-icon.-minus,.acf-flexible-content .layout.-hover .acf-fc-layout-controls .acf-icon.-plus,.acf-flexible-content .layout:hover .acf-fc-layout-controls .acf-icon.-duplicate,.acf-flexible-content .layout:hover .acf-fc-layout-controls .acf-icon.-minus,.acf-flexible-content .layout:hover .acf-fc-layout-controls .acf-icon.-plus{visibility:hidden}.acf-flexible-content .layout.-hover>.acf-fc-layout-controls .acf-icon.-duplicate,.acf-flexible-content .layout.-hover>.acf-fc-layout-controls .acf-icon.-minus,.acf-flexible-content .layout.-hover>.acf-fc-layout-controls .acf-icon.-plus,.acf-flexible-content .layout:hover>.acf-fc-layout-controls .acf-icon.-duplicate,.acf-flexible-content .layout:hover>.acf-fc-layout-controls .acf-icon.-minus,.acf-flexible-content .layout:hover>.acf-fc-layout-controls .acf-icon.-plus{visibility:visible}.acf-flexible-content .layout>.acf-fc-layout-controls .acf-icon.disabled{color:#ccc;cursor:initial}.acf-flexible-content .layout>.acf-fc-layout-controls .acf-icon.disabled:hover{color:#ccc;background:#f5f5f5}.acf-flexible-content[data-acfe-flexible-lock="1"] .layout .acf-fc-layout-handle{cursor:initial}.acf-field-acfe-flexible-layout-title{display:none}input.acfe-flexible-control-title{border:none;box-shadow:none!important;outline:0!important;border-radius:0;border-bottom:1px solid transparent!important;font-weight:600;width:auto!important;padding:0!important;display:none;min-height:20px;vertical-align:unset;background:0 0}.layout>.acf-fc-layout-handle .acfe-layout-title{cursor:text;position:relative}.layout:not(.acfe-flexible-title-edition)>.acf-fc-layout-handle .acfe-layout-title:hover{background:#f4f4f4}.layout.acfe-flexible-title-edition>.acf-fc-layout-handle .acfe-layout-title input.acfe-flexible-control-title{display:inline-block;border-bottom:1px solid #ddd!important}.layout.acfe-flexible-title-edition>.acf-fc-layout-handle .acfe-layout-title .acfe-layout-title-text{display:none}.layout.acfe-flexible-layout-hidden>.acf-fc-layout-controls,.layout.acfe-flexible-layout-hidden>.acf-fc-layout-handle,.layout.acfe-flexible-layout-hidden>.acf-fields,.layout.acfe-flexible-layout-hidden>.acfe-fc-placeholder{opacity:.5}.acf-field-flexible-content[data-acfe-flexible-modal-edition="1"]>.acf-input>.acf-flexible-content>.values>.layout>.acf-fc-layout-controls>a.-collapse{display:none}body.acfe-modal-opened{overflow:hidden}.acfe-modal-overlay{background:rgba(0,0,0,.7);position:fixed;top:0;left:0;right:0;bottom:0;height:100%;width:100%;z-index:100000}.acfe-modal{display:none;transition:all .3s ease-in-out}.acfe-modal.-open{position:fixed;z-index:100001;height:100%;width:100%;top:0;left:0;bottom:0;right:0;-webkit-font-smoothing:subpixel-antialiased;display:flex;flex-direction:column;justify-content:center;align-items:center;pointer-events:none}.acfe-modal.-open>.acfe-modal-wrapper{box-shadow:0 5px 15px rgba(0,0,0,.7);display:flex;flex-direction:column;width:calc(100vw - 60px);max-width:1100px;max-height:calc(100vh - 60px);position:relative}.acfe-modal.-open.acfe-modal-sub>.acfe-modal-wrapper>.acfe-modal-wrapper-overlay{position:absolute;z-index:10;background:rgba(0,0,0,.7);height:100%;width:100%;pointer-events:none}.acfe-modal.-open.-small>.acfe-modal-wrapper{max-width:450px}.acfe-modal.-open.-medium>.acfe-modal-wrapper{max-width:700px}.acfe-modal.-open.-large>.acfe-modal-wrapper{max-width:1100px}.acfe-modal.-open.-xlarge>.acfe-modal-wrapper{max-width:1400px}.acfe-modal.-open.-full>.acfe-modal-wrapper{max-width:100%;flex:1}.acfe-modal.-open.-full>.acfe-modal-wrapper>.acfe-modal-content>.acf-fields.-left{height:100%}.acfe-modal.-open.-full>.acfe-modal-wrapper>.acfe-modal-content>.acf-fields.-left:before{content:"";display:block;position:absolute;z-index:0;background:#f9f9f9;border-color:#e1e1e1;border-style:solid;border-width:0 1px 0 0;top:0;bottom:0;left:0;width:20%}.acfe-modal.-settings.-open.-full>.acfe-modal-wrapper>.acfe-modal-content>.acf-fields,.acfe-modal.-settings.-open.-full>.acfe-modal-wrapper>.acfe-modal-content>.acf-fields>.acf-field-clone,.acfe-modal.-settings.-open.-full>.acfe-modal-wrapper>.acfe-modal-content>.acf-fields>.acf-field-clone>.acf-input,.acfe-modal.-settings.-open.-full>.acfe-modal-wrapper>.acfe-modal-content>.acf-fields>.acf-field-clone>.acf-input>.acf-clone-fields.acf-fields.-left{height:100%}.acfe-modal.-settings.-open.-full>.acfe-modal-wrapper>.acfe-modal-content>.acf-fields>.acf-field-clone{padding:0}.acfe-modal.-settings.-open.-full>.acfe-modal-wrapper>.acfe-modal-content>.acf-fields>.acf-field-clone>.acf-input{margin:0}.acfe-modal.-settings.-open.-full>.acfe-modal-wrapper>.acfe-modal-content>.acf-fields>.acf-field-clone>.acf-input>.acf-clone-fields.acf-fields.-left:before{content:"";display:block;position:absolute;z-index:0;background:#f9f9f9;border-color:#e1e1e1;border-style:solid;border-width:0 1px 0 0;top:0;bottom:0;left:0;width:20%}.acfe-modal.-open .acfe-modal-title *,.acfe-modal.-open>.acfe-modal-title{box-sizing:border-box}.acfe-modal.-open .acfe-modal-title{display:block;height:50px;line-height:50px;font-size:22px;color:#23282d;border-bottom:1px solid #ddd;text-overflow:ellipsis;background:#fcfcfc;padding:0 0 0 16px;position:relative;text-align:left;pointer-events:auto}.acfe-modal.-open.acfe-modal-sub>.acfe-modal-wrapper>.acfe-modal-title{pointer-events:none}.acfe-modal.-open .acfe-modal-title>span.title{line-height:50px;color:#23282d;font-weight:600}.acfe-modal.-open .acfe-modal-title>span.title .acf-fc-layout-order{width:30px;height:30px;border-radius:30px;display:inline-block;text-align:center;line-height:30px;margin:0 2px 0 0;background:#f1f1f1;font-size:14px;color:#666;vertical-align:2px}.acfe-modal.-open .acfe-modal-title>button.close{height:50px;width:50px;color:#666;border:0;border-left:0;margin:0;padding:0;border-radius:0;position:absolute;top:0;right:0;transition:color .1s ease-in-out,background .1s ease-in-out;background:0 0;cursor:pointer;margin:0}.acfe-modal.-open .acfe-modal-title>button.close:hover{color:#00a0d2}.acfe-modal.-open .acfe-modal-title>button.close:before{height:50px;width:50px;line-height:50px!important;font:normal 20px/1 dashicons;content:"\f158";margin:0;padding:0}.acfe-modal.-open .acfe-modal-content{height:100%;background:#fff;display:block;position:relative;pointer-events:auto;overflow:auto}.acfe-modal.-open.-iframe .acfe-modal-content{overflow:hidden}.acfe-modal.-open.acfe-modal-sub>.acfe-modal-wrapper>.acfe-modal-content{pointer-events:none}.acfe-modal.-open .acfe-modal-content .nav-tab-wrapper{padding:0;margin:0;border-bottom:1px solid #ddd}.acfe-modal.-open .acfe-modal-content .nav-tab-wrapper a{margin:0;border-left:0;border-top:0;border-bottom:0;background:#fff;transition:color .1s ease-in-out,background .1s ease-in-out;padding:7px 15px;border-color:#ddd}.acfe-modal.-open .acfe-modal-content .nav-tab-wrapper a span.dashicons-menu{line-height:27px}.acfe-modal.-open>.acfe-modal-content .nav-tab-wrapper a:hover{background:#f9f9f9;color:#23282d}.acfe-modal.-open .acfe-modal-content .nav-tab-wrapper a.nav-tab-active,.acfe-modal.-open .acfe-modal-content .nav-tab-wrapper a.nav-tab-active:hover{background:#fcfcfc;color:#23282d}.acfe-modal.-open .acfe-modal-content .nav-tab:focus,.acfe-modal.-open .acfe-modal-content .nav-tab:focus:active{border-bottom:0;box-shadow:none;outline:0}.acfe-modal.-open .acfe-modal-content .acfe-flex-container,.acfe-modal.-open .acfe-modal-content .acfe-flex-container *{box-sizing:border-box}.acfe-modal.-open .acfe-modal-content .acfe-flex-container{width:100%;padding:14px;margin-right:auto;margin-left:auto}.acfe-modal.-open .acfe-modal-content .acfe-flexible-categories~.acfe-flex-container{overflow:auto;height:calc(100% - 39px)}.acfe-modal.-open .acfe-modal-content .acfe-flex-container ul{margin:0;margin-right:-7px;margin-left:-7px;display:flex;flex-wrap:wrap}.acfe-modal.-open>.acfe-modal-content .acfe-flex-container ul:after{content:"";clear:both;display:table}.acfe-modal.-open .acfe-modal-content .acfe-flex-container ul li{position:relative;width:100%;padding-right:7px;padding-left:7px;padding-bottom:14px;margin:0;flex:0 0 25%;max-width:25%}.acfe-modal.-open .acfe-modal-content .acfe-flex-container ul li a{border:1px solid #ddd;background:#f9f9f9;padding:15px;color:#333;display:block;text-decoration:none}.acfe-modal.-open .acfe-modal-content .acfe-flex-container ul li a:hover{background:#007cba;color:#fff}body:not(.acf-admin-5-3) .acfe-modal.-open .acfe-modal-content .acfe-flex-container ul li a:hover{background:#0073aa}.acfe-modal.-open .acfe-modal-content .acfe-flex-container ul li a span{display:block;font-size:16px;text-align:center;font-weight:600}.acfe-modal.-open .acfe-modal-content .acfe-flex-container ul li a span.no-thumbnail{text-align:left}.acfe-modal.-open .acfe-modal-content .acfe-flex-container ul li a.disabled{pointer-events:none;opacity:.67}.acfe-modal.-open .acfe-modal-content .acfe-flex-container ul li a.disabled:hover{cursor:default}.acfe-modal.-open .acfe-modal-content .acfe-flex-container ul li a.disabled:focus{box-shadow:none;outline:0}.acfe-modal.-open .acfe-modal-content .acfe-flex-container.acfe-col-1 ul li{flex:0 0 100%;max-width:100%}.acfe-modal.-open .acfe-modal-content .acfe-flex-container.acfe-col-2 ul li{flex:0 0 50%;max-width:50%}.acfe-modal.-open .acfe-modal-content .acfe-flex-container.acfe-col-3 ul li{flex:0 0 33.333333%;max-width:33.333333%}.acfe-modal.-open .acfe-modal-content .acfe-flex-container.acfe-col-4 ul li{flex:0 0 25%;max-width:25%}.acfe-modal.-open .acfe-modal-content .acfe-flex-container.acfe-col-5 ul li{flex:0 0 20%;max-width:20%}.acfe-modal.-open .acfe-modal-content .acfe-flex-container.acfe-col-6 ul li{flex:0 0 16.66%;max-width:16.66%}@media only screen and (max-width:960px){.acfe-modal.-open .acfe-modal-content .acfe-flex-container ul li{flex:0 0 50%!important;max-width:50%!important}.acfe-modal.-open .acfe-modal-content .acfe-flex-container.acfe-col-1 ul li{flex:0 0 100%!important;max-width:100%!important}.acfe-modal.-open .acfe-modal-content ul li a{padding:7px}}@media only screen and (max-width:720px){.acfe-modal.-open .acfe-modal-content .acfe-flex-container ul li{flex:0 0 100%!important;max-width:100%!important}.acfe-modal.-open .acfe-modal-content .acfe-flex-container.acfe-col-1 ul li{flex:0 0 100%!important;max-width:100%!important}}.acfe-modal.-open .acfe-modal-footer,.acfe-modal.-open .acfe-modal-footer *{box-sizing:border-box}.acfe-modal.-open .acfe-modal-footer{display:block;height:50px;line-height:50px;color:#23282d;background:#fcfcfc;padding:0 16px;position:relative;text-align:right;border-top:1px solid #ddd;pointer-events:auto}.acfe-modal.-open.acfe-modal-sub>.acfe-modal-wrapper>.acfe-modal-footer{pointer-events:none}.acfe-modal.-open .acfe-modal-footer>button{vertical-align:baseline}body.block-editor-page .edit-post-layout .acfe-modal.-open{justify-content:start;align-items:start}body.block-editor-page .edit-post-layout .acfe-modal.-open>.acfe-modal-wrapper{margin-top:88px;height:100%;width:100%;max-height:calc(100vh - 88px)}body.block-editor-page .edit-post-layout .acfe-modal.-open>.acfe-modal-wrapper>.acfe-modal-content>.acf-fields.-left{height:100%}body.block-editor-page .edit-post-layout .acfe-modal.-open>.acfe-modal-wrapper>.acfe-modal-content>.acf-fields.-left:before{content:"";display:block;position:absolute;z-index:0;background:#f9f9f9;border-color:#e1e1e1;border-style:solid;border-width:0 1px 0 0;top:0;bottom:0;left:0;width:20%}@media only screen and (max-width:1080px){body.block-editor-page .edit-post-layout .acfe-modal.-open>.acfe-modal-wrapper{margin-top:88px}}body.block-editor-page .edit-post-layout .acfe-modal.-open>.acfe-modal-wrapper{max-width:calc(100vw - 160px);margin-left:160px}body.block-editor-page .edit-post-layout.is-sidebar-opened .acfe-modal.-open>.acfe-modal-wrapper{max-width:calc(100vw - 440px)}body.block-editor-page.folded .edit-post-layout .acfe-modal.-open>.acfe-modal-wrapper{max-width:calc(100vw - 36px);margin-left:36px}@media only screen and (max-width:960px){body.block-editor-page.auto-fold .edit-post-layout .acfe-modal.-open>.acfe-modal-wrapper{max-width:calc(100vw - 36px);margin-left:36px}}@media only screen and (max-width:782px){body.block-editor-page.auto-fold .edit-post-layout .acfe-modal.-open>.acfe-modal-wrapper{max-width:100vw;margin-left:0;margin-top:100px}}body.block-editor-page.folded .edit-post-layout.is-sidebar-opened .acfe-modal.-open>.acfe-modal-wrapper{max-width:calc(100vw - 316px)}@media (min-width:600px){body.block-editor-page.acfe-modal-opened .edit-post-layout__content{overflow-y:hidden}}body.block-editor-page .acfe-modal-overlay{display:none}body.wp-admin.upload-php.acfe-modal-opened>div:not([style*="display: none;"])>.media-modal.wp-core-ui:not(.acf-media-modal):before{content:"";display:block;position:absolute;background:rgba(0,0,0,.7);top:0;left:0;width:100%;height:100%;z-index:10000}.acf-field-repeater[data-acfe-repeater-lock="1"]>.acf-input>.acf-repeater>.acf-table>tbody>.acf-row>.acf-row-handle{cursor:initial}.acf-repeater.-block>table,.acf-repeater.-row>table{border-collapse:separate;border-spacing:0 15px;background:0 0;border:0;margin-top:-15px;margin-bottom:-7px}.acf-repeater.-block>table>*,.acf-repeater.-row>table>*{border-collapse:collapse;border-spacing:0}.acf-repeater.-block>table>tbody>tr>td,.acf-repeater.-row>table>tbody>tr>td{border-top:1px solid #ccd0d4!important;border-bottom:1px solid #ccd0d4!important}.acf-repeater.-block>table>tbody>tr>td:first-of-type,.acf-repeater.-row>table>tbody>tr>td:first-of-type{border-left:1px solid #ccd0d4!important}.acf-repeater.-block>table>tbody>tr>td:last-of-type,.acf-repeater.-row>table>tbody>tr>td:last-of-type{border-right:1px solid #ccd0d4!important}body:not(.acf-admin-5-3) .acf-repeater.-block>table>tbody>tr>td,body:not(.acf-admin-5-3) .acf-repeater.-row>table>tbody>tr>td{border-top:1px solid #e1e1e1;border-bottom:1px solid #e1e1e1}body:not(.acf-admin-5-3) .acf-repeater.-block>table>tbody>tr>td:first-of-type,body:not(.acf-admin-5-3) .acf-repeater.-row>table>tbody>tr>td:first-of-type{border-left:1px solid #e1e1e1}body:not(.acf-admin-5-3) .acf-repeater.-block>table>tbody>tr>td:last-of-type,body:not(.acf-admin-5-3) .acf-repeater.-row>table>tbody>tr>td:last-of-type{border-right:1px solid #e1e1e1}.acf-repeater.-table.-empty>.acf-table{display:none}.acf-field-repeater>.acf-input>.acf-repeater>.acfe-repeater-stylised-button{padding:40px 20px;border:#ccc dashed 2px;text-align:center}.acf-field-repeater>.acf-input>.acf-repeater>.acfe-repeater-stylised-button>.acf-actions{text-align:center}.acf-field-flexible-content>.acf-input>.acf-repeater .acf-actions .acf-button .dashicons{width:auto;height:auto;vertical-align:text-top}
assets/acf-extended.min.js ADDED
@@ -0,0 +1 @@
 
1
+ function acfe_recaptcha(){var e;e=jQuery,"undefined"!=typeof acf&&e.each(acf.getFields({type:"acfe_recaptcha"}),function(e,t){t.render()})}!function(f){var n,e;function r(){var e=f("#acfe-wp-custom-fields .acfe_dev_meta_count"),t=f("#acfe-acf-custom-fields .acfe_dev_meta_count");e.text(f("#acfe-wp-custom-fields tbody tr").length),t.text(f("#acfe-acf-custom-fields tbody tr").length)}"undefined"!=typeof acf&&(n={},(window.acfe=n).modal={modals:[],open:function(e,t){var a=this;t=acf.parseArgs(t,{title:"",footer:!1,size:!1,destroy:!1,onOpen:!1,onClose:!1}),a.args=t,e.addClass("-open"),t.size&&e.addClass("-"+t.size),e.find("> .acfe-modal-wrapper").length||e.wrapInner('<div class="acfe-modal-wrapper" />'),e.find("> .acfe-modal-wrapper > .acfe-modal-content").length||e.find("> .acfe-modal-wrapper").wrapInner('<div class="acfe-modal-content" />'),e.find("> .acfe-modal-wrapper").prepend('<div class="acfe-modal-wrapper-overlay"></div><div class="acfe-modal-title"><span class="title">'+t.title+'</span><button class="close"></button></div>'),e.find(".acfe-modal-title > .close").click(function(e){e.preventDefault(),a.close(t)}),t.footer&&(e.find("> .acfe-modal-wrapper").append('<div class="acfe-modal-footer"><button class="button button-primary">'+t.footer+"</button></div>"),e.find(".acfe-modal-footer > button").click(function(e){e.preventDefault(),a.close(t)})),n.modal.modals.push(e);var i,o=f("body");return o.hasClass("acfe-modal-opened")||(i=f('<div class="acfe-modal-overlay" />'),o.addClass("acfe-modal-opened").append(i),o.find(".acfe-modal-overlay").click(function(e){e.preventDefault(),a.close(a.args)}),f(window).keydown(function(e){27===e.keyCode&&f("body").hasClass("acfe-modal-opened")&&(e.preventDefault(),a.close(a.args))})),n.modal.multiple(),n.modal.onOpen(e,t),acf.doAction("acfe/modal/open",e,t),e},close:function(e){e=acf.parseArgs(e,{destroy:!1,onClose:!1});var t=n.modal.modals.pop();t.find(".acfe-modal-wrapper-overlay").remove(),t.find(".acfe-modal-title").remove(),t.find(".acfe-modal-footer").remove(),t.removeAttr("style"),t.removeClass("-open"),e.destroy&&t.remove(),n.modal.modals.length||(f(".acfe-modal-overlay").remove(),f("body").removeClass("acfe-modal-opened")),n.modal.multiple(),acf.doAction("acfe/modal/close",t,e),n.modal.onClose(t,e)},multiple:function(){var t=n.modal.modals.length-1;f.each(n.modal.modals,function(e){t!=e?f(this).addClass("acfe-modal-sub").css("margin-left",-500/(e+1)):f(this).removeClass("acfe-modal-sub").css("margin-left","")})},onOpen:function(e,t){t.onOpen&&t.onOpen instanceof Function&&t.onOpen(e)},onClose:function(e,t){t.onClose&&t.onClose instanceof Function&&t.onClose(e)}},n.filters=[],n.disableFilters=function(){n.filters=[]},n.enableFilter=function(e){-1===n.filters.indexOf(e)&&n.filters.push(e)},n.disableFilter=function(e){for(var t=n.filters.length;t--;)n.filters[t]===e&&n.filters.splice(t,1)},n.isFilterEnabled=function(e){return-1<n.filters.indexOf(e)},n.getFilters=function(){return n.filters},acf.addAction("ready_field",function(e){var t,a,i;e.has("acfeInstructionsTooltip")&&(t=e.$labelWrap().find("> label"),i=(a=e.$labelWrap().find("> .description")).html(),e=e.get("acfeInstructionsTooltip"),a.length&&(a.remove(),e=i),t.before('<span class="acfe-field-tooltip acf-js-tooltip dashicons dashicons-info" title="'+_.escape(e)+'"></span>'))}),acf.addAction("new_field/name=acfe_form_updated_message",e=function(e){var t=e.$el.find("> .acf-label > .description");e.$el.find("> .acf-input").append(t)}),acf.addAction("new_field/name=acfe_form_return",e),acf.addAction("new_field/name=acfe_form_custom_alias",e),acf.addAction("new_field/name=acfe_form_custom_query_var",e),acf.addAction("new_field/name=acfe_form_email_content",e),acf.addAction("new_field/name=acfe_form_post_save_target",e),acf.addAction("new_field/name=acfe_form_post_load_source",e),acf.addAction("new_field/name=acfe_form_term_save_target",e),acf.addAction("new_field/name=acfe_form_term_load_source",e),acf.addAction("new_field/name=acfe_form_user_save_target",e),acf.addAction("new_field/name=acfe_form_user_load_source",e),acf.addAction("new_field/name=acfe_form_email_files",function(e){e.$el.find("> .acf-input > .acf-repeater > .acf-actions > .acf-button").removeClass("button-primary")}),acf.addAction("new_field/name=acfe_form_email_files_static",function(e){e.$el.find("> .acf-input > .acf-repeater > .acf-actions > .acf-button").removeClass("button-primary")}),acf.addAction("prepare",function(){var n=f("#acfe-acf-custom-fields"),c=f("#acfe-wp-custom-fields"),l=f(".acfe_dev_bulk_actions");f("#acfe-wp-custom-fields .tablenav.bottom").insertAfter(c),f("#acfe-acf-custom-fields .tablenav.bottom").insertAfter(n),n.is(":visible")||c.is(":visible")||l.hide(),f("#acfe_bulk_deleta_meta_submit").click(function(e){e.preventDefault();var t,a,i=f(this),o=i.prevAll(".acfe_bulk_delete_meta_action").val(),e=i.prevAll(".acfe_bulk_delete_meta_type").val(),i=i.prevAll(".acfe_bulk_delete_meta_nonce").val();"delete"===o&&(t=[],a=[],f("#acfe-wp-custom-fields input.acfe_bulk_delete_meta:checked").each(function(){t.push(f(this).val()),a.push(f(this).closest("tr"))}),f("#acfe-acf-custom-fields input.acfe_bulk_delete_meta:checked").each(function(){t.push(f(this).val()),a.push(f(this).closest("tr"))}),t.length&&(i={action:"acfe/bulk_delete_meta",ids:t,type:e,_wpnonce:i},f.ajax({url:acf.get("ajaxurl"),data:i,type:"post",beforeSend:function(){f.each(a,function(){f(this).css({backgroundColor:"#faafaa"}).fadeOut(350,function(){f(this).remove()})}),setTimeout(function(){f("#acfe-wp-custom-fields tbody tr").length||c.remove(),f("#acfe-acf-custom-fields tbody tr").length||n.remove(),f("#acfe-wp-custom-fields tbody tr").length||f("#acfe-acf-custom-fields tbody tr").length||l.remove(),r()},351)},success:function(e){}})))}),f(".acfe_delete_meta").click(function(e){e.preventDefault();var t=f(this),a=t.closest("tr"),i=t.closest("tbody"),o=t.closest(".postbox"),e={action:"acfe/delete_meta",id:t.attr("data-meta-id"),key:t.attr("data-meta-key"),type:t.attr("data-type"),_wpnonce:t.attr("data-nonce")};f.ajax({url:acf.get("ajaxurl"),data:e,type:"post",beforeSend:function(){t.closest("tr").css({backgroundColor:"#faafaa"}).fadeOut(350,function(){f(this).remove()}),setTimeout(function(){i.find("tr").length||o.remove(),f("#acfe-wp-custom-fields tbody tr").length||f("#acfe-acf-custom-fields tbody tr").length||l.remove(),r()},351)},success:function(e){"1"!==e&&(a.css({backgroundColor:""}),a.show())}})}),f(".hide-postbox-tog").bind("click.postboxes",function(){var e=f(this),t=e.val();"acfe-wp-custom-fields"!==t&&"acfe-acf-custom-fields"!==t||(e.prop("checked")?l.is(":visible")||l.show():("acfe-wp-custom-fields"===t&&!n.is(":visible")||"acfe-acf-custom-fields"===t&&!c.is(":visible"))&&l.hide())})}))}(jQuery),function(c){var e;"undefined"!=typeof acf&&((e=acf.getFieldType("flexible_content").prototype).addSortable=function(a){1!=this.get("max")&&this.$layoutsWrap().sortable({items:" > .layout",handle:"> .acf-fc-layout-handle",forceHelperSize:!1,forcePlaceholderSize:!0,tolerance:"pointer",scroll:!0,stop:function(e,t){a.render()},update:function(e,t){a.$input().trigger("change")}})},e.acfeOneClick=function(e,t){var a=this.$clones(),i=c(a[0]).data("layout"),a=null;t.hasClass("acf-icon")&&(a=t.closest(".layout"));this.add({layout:i,before:a});c(".acf-fc-popup").length&&c(".acf-fc-popup").hide()},e.acfeLayoutInit=function(t){var e,a,i=this,o=(t.find("> .acf-fc-layout-controls"),t.find("> .acf-fc-layout-handle"),t.find("> .acfe-fc-placeholder"));o.removeClass("acf-hidden"),i.has("acfeFlexibleModalEdition")||i.isLayoutClosed(t)||o.addClass("acf-hidden"),i.isLayoutClosed(t)&&i.has("acfeFlexiblePreview")&&!o.hasClass("-loading")&&(o.addClass("acfe-fc-preview -loading").find("> .acfe-flexible-placeholder").prepend('<span class="spinner"></span>'),o.find("> .acfe-fc-overlay").addClass("-hover"),e=t.children("input").attr("name").replace("[acf_fc_layout]",""),a={action:"acfe/flexible/layout_preview",field_key:i.get("key"),i:t.index(),layout:t.data("layout"),value:acf.serialize(t,e)},acf.doAction("acfe/fields/flexible_content/before_preview",i.$el,t,a),acf.doAction("acfe/fields/flexible_content/before_preview/name="+i.get("name"),i.$el,t,a),acf.doAction("acfe/fields/flexible_content/before_preview/key="+i.get("key"),i.$el,t,a),acf.doAction("acfe/fields/flexible_content/before_preview/name="+i.get("name")+"&layout="+t.data("layout"),i.$el,t,a),acf.doAction("acfe/fields/flexible_content/before_preview/key="+i.get("key")+"&layout="+t.data("layout"),i.$el,t,a),c.ajax({url:acf.get("ajaxurl"),data:acf.prepareForAjax(a),dataType:"html",type:"post",success:function(e){e?o.find("> .acfe-flexible-placeholder").html(e):o.removeClass("acfe-fc-preview"),acf.doAction("acfe/fields/flexible_content/preview",e,i.$el,t,a),acf.doAction("acfe/fields/flexible_content/preview/name="+i.get("name"),e,i.$el,t,a),acf.doAction("acfe/fields/flexible_content/preview/key="+i.get("key"),e,i.$el,t,a),acf.doAction("acfe/fields/flexible_content/preview/name="+i.get("name")+"&layout="+t.data("layout"),e,i.$el,t,a),acf.doAction("acfe/fields/flexible_content/preview/key="+i.get("key")+"&layout="+t.data("layout"),e,i.$el,t,a)},complete:function(){o.find("> .acfe-fc-overlay").removeClass("-hover"),o.removeClass("-loading").find("> .acfe-flexible-placeholder > .spinner").remove()}}))},acf.getFieldType("wysiwyg").prototype.initialize=function(){this.has("id")||this.$control().hasClass("delay")||this.initializeEditor()},acf.addAction("show_field/type=wysiwyg",e=function(e){var t;e.has("id")||!e.$el.is(":visible")||acfe.isFilterEnabled("acfeForceOpen")||(t=e.$control()).hasClass("delay")&&(t.removeClass("delay"),t.find(".acf-editor-toolbar").remove(),e.initializeEditor())}),acf.addAction("ready_field/type=wysiwyg",e),acf.addAction("new_field/type=flexible_content",function(a){var e=a.$clones(),t=a.$layouts();c.merge(t,e);t.each(function(){var e=c(this),t=e.data("layout");acf.doAction("acfe/flexible/layouts",e,a),acf.doAction("acfe/flexible/layout/name="+t,e,a)}),1===e.length&&(a.removeEvents({'click [data-name="add-layout"]':"onClickAdd"}),a.addEvents({'click [data-name="add-layout"]':"acfeOneClick"})),a.addEvents({"click .acfe-fc-placeholder":"onClickCollapse"}),a.addEvents({"click .acfe-flexible-opened-actions > a":"onClickCollapse"}),a.has("acfeFlexibleAjax")&&(a.add=function(o){var n=this;if(o=acf.parseArgs(o,{layout:"",before:!1}),!this.allowAdd())return!1;c.ajax({url:acf.get("ajaxurl"),data:acf.prepareForAjax({action:"acfe/flexible/models",field_key:this.get("key"),layout:o.layout}),dataType:"html",type:"post",beforeSend:function(){c("body").addClass("-loading")},success:function(e){if(e){var t=c(e),a=acf.uniqid(),i="acf["+n.get("key")+"][acfcloneindex]",e=n.$control().find("> input[type=hidden]").attr("name")+"["+a+"]",e=acf.duplicate({target:t,search:i,replace:e,append:n.proxy(function(e,t){o.before?o.before.before(t):n.$layoutsWrap().append(t),acf.enable(t,n.cid),n.render()})});return e.attr("data-id",a),n.$input().trigger("change"),e}},complete:function(){c("body").removeClass("-loading")}})})}),acf.addAction("acfe/flexible/layouts",function(e,t){t.isLayoutClosed(e)&&(e.find("> .acfe-fc-placeholder").removeClass("acf-hidden"),t.has("acfeFlexibleOpen")&&(acfe.enableFilter("acfeForceOpen"),t.openLayout(e),acfe.disableFilter("acfeForceOpen")))}),acf.addAction("show",function(e,t){"collapse"===t&&e.is(".layout")&&(acf.getInstance(e.closest(".acf-field-flexible-content")).has("acfeFlexibleModalEdition")||e.find("> .acfe-fc-placeholder").addClass("acf-hidden"))}),acf.addAction("hide",function(e,t){"collapse"===t&&e.is(".layout")&&!e.is(".acf-clone")&&((t=acf.getInstance(e.closest(".acf-field-flexible-content"))).has("acfeFlexibleRemoveAjaxTitle")&&(t.renderLayout=function(e){}),t.acfeLayoutInit(e))}),acf.addAction("append",function(e){var t;e.is(".layout")&&(t=acf.getInstance(e.closest(".acf-field-flexible-content")),e.is(".acfe-layout-duplicated")||(t.has("acfeFlexibleModalEdition")?e.find('> [data-action="acfe-flexible-modal-edit"]:first').trigger("click"):t.openLayout(e)),t.acfeLayoutInit(e),(t=t.$el.closest(".acfe-modal.-open")).length?t.find("> .acfe-modal-wrapper > .acfe-modal-content").animate({scrollTop:parseInt(e.offset().top)-200},200):parseFloat(acf.get("acf_version"))<5.9&&c("html, body").animate({scrollTop:parseInt(e.offset().top)-200},200))}),acf.addAction("invalid_field",function(e){e.$el.parents(".layout").addClass("acfe-flexible-modal-edit-error")}),acf.addAction("valid_field",function(e){e.$el.parents(".layout").each(function(){var e=c(this);e.find(".acf-error").length||e.removeClass("acfe-flexible-modal-edit-error")})}))}(jQuery),function(f){var o;"undefined"!=typeof acf&&((o=acf.getFieldType("flexible_content").prototype).events["click .acf-fc-layout-handle"]="acfeEditLayoutTitleToggleHandle",o.acfeEditLayoutTitleToggleHandle=function(e,t){!this.has("acfeFlexibleTitleEdition")||(t=t.closest(".layout")).hasClass("acfe-flexible-title-edition")&&t.find("> .acf-fc-layout-handle > .acfe-layout-title > input.acfe-flexible-control-title").trigger("blur")},o.events["click .acfe-layout-title-text"]="acfeEditLayoutTitle",o.acfeEditLayoutTitle=function(e,t){this.has("acfeFlexibleTitleEdition")&&(e.stopPropagation(),this.acfeEditLayoutTitleToggle(e,t))},o.events["blur input.acfe-flexible-control-title"]="acfeEditLayoutTitleToggle",o.acfeEditLayoutTitleToggle=function(e,t){var a,i=t.closest(".layout"),o=i.find("> .acf-fc-layout-handle"),t=o.find(".acfe-layout-title");i.hasClass("acfe-flexible-title-edition")?(""===(a=t.find("> input[data-acfe-flexible-control-title-input]")).val()&&a.val(a.attr("placeholder")).trigger("input"),i.removeClass("acfe-flexible-title-edition"),a.insertAfter(o)):(a=(a=i.find("> input[data-acfe-flexible-control-title-input]")).appendTo(t),i.addClass("acfe-flexible-title-edition"),a.focus().attr("size",a.val().length))},o.events["click input.acfe-flexible-control-title"]="acfeEditLayoutTitlePropagation",o.acfeEditLayoutTitlePropagation=function(e,t){e.stopPropagation()},o.events["input [data-acfe-flexible-control-title-input]"]="acfeEditLayoutTitleInput",o.acfeEditLayoutTitleInput=function(e,t){var a=t.closest(".layout").find("> .acf-fc-layout-handle .acfe-layout-title .acfe-layout-title-text"),i=t.val();t.attr("size",i.length),a.html(i)},o.events["keypress [data-acfe-flexible-control-title-input]"]="acfeEditLayoutTitleInputEnter",o.acfeEditLayoutTitleInputEnter=function(e,t){13===e.keyCode&&(e.preventDefault(),t.blur())},o.events["click [data-acfe-flexible-settings]"]="acfeLayoutSettings",o.acfeLayoutSettings=function(e,t){var a=this,i=t.closest(".layout"),o=i.find("> .acfe-modal.-settings"),n=i.find("> .acf-fc-layout-handle"),t=n.find("> .acf-fc-layout-order").outerHTML(),n=n.find(".acfe-layout-title-text").text();acfe.modal.open(o,{title:t+" "+n,footer:acf.__("Close"),onOpen:function(){},onClose:function(){a.has("acfeFlexiblePreview")&&a.closeLayout(i)}})},o.events["click [data-acfe-flexible-control-toggle]"]="acfeLayoutToggle",o.acfeLayoutToggle=function(e,t){var a=t.closest(".layout"),t=a.find("> .acfe-flexible-layout-toggle");t.length&&("1"===t.val()?(a.removeClass("acfe-flexible-layout-hidden"),t.val("")):(a.addClass("acfe-flexible-layout-hidden"),t.val("1")))},acf.addAction("acfe/flexible/layouts",function(e,t){!t.has("acfeFlexibleToggle")||(t=e.find("> .acfe-flexible-layout-toggle")).length&&("1"===t.val()?e.addClass("acfe-flexible-layout-hidden"):e.removeClass("acfe-flexible-layout-hidden"))}),o.events["click [data-acfe-flexible-control-clone]"]="acfeCloneLayout",o.acfeCloneLayout=function(e,t){var a,i=this,o=t.closest(".layout"),n=o.data("layout"),c=f(i.$popup().html()),l=i.$layouts(),c=c.find('[data-layout="'+n+'"]'),c=(c.data("min"),c.data("max")||0),n=(a=n,l.filter(function(){return f(this).data("layout")===a}).length);if(c&&c<=n)return t.addClass("disabled"),!1;t.removeClass("disabled"),i.acfeFixInputs(o);n=o.clone();i.acfeCleanLayouts(n);t=t.closest(".acf-flexible-content").find("> input[type=hidden]").attr("name"),i.acfeDuplicate({layout:n,before:o,parent:t})},o.events["click [data-acfe-flexible-control-copy]"]="acfeCopyLayout",o.acfeCopyLayout=function(e,t){var a=t.closest(".layout").clone(),t=this.$control().find("> input[type=hidden]").attr("name");this.acfeFixInputs(a),this.acfeCleanLayouts(a);t=JSON.stringify({source:t,layouts:a[0].outerHTML}),a=f('<input type="text" style="clip:rect(0,0,0,0);clip-path:rect(0,0,0,0);position:absolute;" value="" />').appendTo(f("body"));a.attr("value",t).select(),document.execCommand("copy")?alert("Layout has been transferred to your clipboard"):prompt("Copy the following layout data to your clipboard",t),a.remove()},o.acfeCopyLayouts=function(){var e=this,t=e.$layoutsWrap().clone(),a=e.$control().find("> input[type=hidden]").attr("name");e.acfeFixInputs(t),e.acfeCleanLayouts(t);t=JSON.stringify({source:a,layouts:t.html()}),e=f('<input type="text" style="clip:rect(0,0,0,0);clip-path:rect(0,0,0,0);position:absolute;" value="" />').appendTo(e.$el);e.attr("value",t).select(),document.execCommand("copy")?alert("Layouts have been transferred to your clipboard"):prompt("Copy the following layouts data to your clipboard",t),e.remove()},o.acfePasteLayouts=function(){var o=this,e=prompt("Paste layouts data in the following field");if(null!=e&&""!==e)try{var t=JSON.parse(e),i=t.source,t=f(t.layouts).closest("[data-layout]");if(!t.length)return alert("No layouts data available");var n=f(o.$popup().html()),c=o.$layouts(),l=[];if(t.each(function(){var e,t=f(this),a=t.data("layout"),i=n.find('[data-layout="'+a+'"]'),i=(i.data("min"),i.data("max")||0),a=(e=a,c.filter(function(){return f(this).data("layout")===e}).length);i&&i<=a||o.$clone(t.attr("data-layout")).length&&l.push(t)}),!l.length)return alert("No layouts could be pasted");f.each(l,function(){var e=f(this),t=i+"["+e.attr("data-id")+"]",a=o.$control().find("> input[type=hidden]").attr("name");o.acfeDuplicate({layout:e,before:!1,search:t,parent:a})})}catch(e){console.log(e),alert("Invalid data")}},o.events['click [data-name="acfe-flexible-control-button"]']="acfeControl",o.acfeControl=function(e,t){var a=this,i=t.next(".tmpl-acfe-flexible-control-popup").html();new(acf.models.TooltipConfirm.extend({render:function(){this.html(this.get("text")),this.$el.addClass("acf-fc-popup")}}))({target:t,targetConfirm:!1,text:i,context:a,confirm:function(e,t){"paste"===t.attr("data-acfe-flexible-control-action")?a.acfePasteLayouts():"copy"===t.attr("data-acfe-flexible-control-action")&&a.acfeCopyLayouts()}}).on("click","a","onConfirm")},o.acfeDuplicate=function(a){if(a=acf.parseArgs(a,{layout:"",before:!1,parent:!1,search:"",replace:""}),!this.allowAdd())return!1;var i=acf.uniqid();a.parent&&(a.search||(a.search=a.parent+"["+a.layout.attr("data-id")+"]"),a.replace=a.parent+"["+i+"]");var e,t={target:a.layout,search:a.search,replace:a.replace,append:this.proxy(function(e,t){t.addClass("acfe-layout-duplicated"),t.attr("data-id",i),a.before?a.before.after(t):this.$layoutsWrap().append(t),acf.enable(t,this.cid),this.render()})};e=parseFloat(acf.get("acf_version"))<5.9?acf.duplicate(t):o.acfeNewAcfDuplicate(t),this.$input().trigger("change");t=acf.getFields({type:"tab",parent:e});return t.length&&f.each(t,function(){this.$el.hasClass("acf-hidden")&&this.tab.$el.addClass("acf-hidden")}),e},o.acfeNewAcfDuplicate=function(e){e instanceof jQuery&&(e={target:e}),(e=acf.parseArgs(e,{target:!1,search:"",replace:"",rename:!0,before:function(e){},after:function(e,t){},append:function(e,t){e.after(t)}})).target=e.target||e.$el;var t=e.target;e.search=e.search||t.attr("data-id"),e.replace=e.replace||acf.uniqid(),e.before(t),acf.doAction("before_duplicate",t);var a=t.clone();return e.rename&&acf.rename({target:a,search:e.search,replace:e.replace,replacer:"function"==typeof e.rename?e.rename:null}),a.removeClass("acf-clone"),a.find(".ui-sortable").removeClass("ui-sortable"),e.after(t,a),acf.doAction("after_duplicate",t,a),e.append(t,a),acf.doAction("append",a),a},o.acfeFixInputs=function(e){e.find("input").each(function(){f(this).attr("value",this.value)}),e.find("textarea").each(function(){f(this).html(this.value)}),e.find("input:radio,input:checkbox").each(function(){this.checked?f(this).attr("checked","checked"):f(this).attr("checked",!1)}),e.find("option").each(function(){this.selected?f(this).attr("selected","selected"):f(this).attr("selected",!1)})},o.acfeCleanLayouts=function(e){e.find(".acf-editor-wrap").each(function(){var e=f(this);e.find(".wp-editor-container div").remove(),e.find(".wp-editor-container textarea").css("display","")}),e.find(".acf-date-picker").each(function(){f(this).find("input.input").removeClass("hasDatepicker").removeAttr("id")}),e.find(".acf-time-picker").each(function(){f(this).find("input.input").removeClass("hasDatepicker").removeAttr("id")}),e.find(".acf-date-time-picker").each(function(){f(this).find("input.input").removeClass("hasDatepicker").removeAttr("id")}),e.find(".acfe-field-code-editor").each(function(){f(this).find(".CodeMirror").remove()}),e.find(".acf-color-picker").each(function(){var e=f(this),t=e.find("> input"),a=e.find(".wp-picker-container input.wp-color-picker").clone();t.after(a),e.find(".wp-picker-container").remove()}),e.find(".acf-field-post-object").each(function(){var e=f(this);e.find("> .acf-input span").remove(),e.find("> .acf-input select").removeAttr("tabindex aria-hidden").removeClass()}),e.find(".acf-field-page-link").each(function(){var e=f(this);e.find("> .acf-input span").remove(),e.find("> .acf-input select").removeAttr("tabindex aria-hidden").removeClass()}),e.find(".acf-field-select").each(function(){var e=f(this);e.find("> .acf-input span").remove(),e.find("> .acf-input select").removeAttr("tabindex aria-hidden").removeClass()}),e.find(".acf-field-font-awesome").each(function(){var e=f(this);e.find("> .acf-input span").remove(),e.find("> .acf-input select").removeAttr("tabindex aria-hidden")}),e.find(".acf-tab-wrap").each(function(){var e=f(this),t=e.closest(".acf-fields"),a=[];f.each(e.find("li a"),function(){a.push(f(this))}),t.find("> .acf-field-tab").each(function(){$current_tab=f(this),f.each(a,function(){var e=f(this);e.attr("data-key")===$current_tab.attr("data-key")&&$current_tab.find("> .acf-input").append(e)})}),e.remove()}),e.find(".acf-field-accordion").each(function(){var e=f(this);e.find("> .acf-accordion-title > .acf-accordion-icon").remove(),e.after('<div class="acf-field acf-field-accordion" data-type="accordion"><div class="acf-input"><div class="acf-fields" data-endpoint="1"></div></div></div>')})},acf.addAction("new_field/type=flexible_content",function(e){e.has("acfeFlexibleLock")&&e.removeEvents({mouseover:"onHover"})}))}(jQuery),function(f){"undefined"!=typeof acf&&(acf.getFieldType("flexible_content").prototype.acfeModalSelect=function(e,t){var a=this;if(!a.validateAdd())return!1;var i=null;t.hasClass("acf-icon")&&(i=t.closest(".layout"));var o=a.getPopupHTML(),n={array:[],html:""};f(o).find("li a span").each(function(){var e=f(this);if(!e.data("acfe-flexible-category"))return!0;e=e.data("acfe-flexible-category");f.each(e,function(e,t){return-1!==function(e,t){for(var a=t.length,i=e.toString().toLowerCase(),o=0;o<a;o++)if(t[o].toLowerCase()===i)return o;return-1}(t,n.array)||void n.array.push(t)})}),n.array.length&&(n.array.sort(),n.html+='<h2 class="acfe-flexible-categories nav-tab-wrapper">',n.html+='<a href="#" data-acfe-flexible-category="acfe-all" class="nav-tab nav-tab-active"><span class="dashicons dashicons-menu"></span></a>',f(n.array).each(function(e,t){n.html+='<a href="#" data-acfe-flexible-category="'+t+'" class="nav-tab">'+t+"</a>"}),n.html+="</h2>");t="Add Row";a.has("acfeFlexibleModalTitle")&&(t=a.get("acfeFlexibleModalTitle"));var c=f('<div class="acfe-modal">'+n.html+'<div class="acfe-flex-container">'+o+"</div></div>").appendTo("body"),c=acfe.modal.open(c,{title:t,size:"full",destroy:!0});a.has("acfeFlexibleModalCol")&&c.find(".acfe-modal-content .acfe-flex-container").addClass("acfe-col-"+a.get("acfeFlexibleModalCol")),c.find("li:first-of-type a").blur();var l=a.$layouts();c.find("a[data-layout]").each(function(){var e,t,a=f(this),i=a.data("min")||0,o=a.data("max")||0,n=a.data("layout")||"",c=(e=n,l.filter(function(){return f(this).data("layout")===e}).length);o&&o<=c?a.addClass("disabled"):i&&c<i&&(t=i-c,o=acf.__("{required} {label} {identifier} required (min {min})"),c=acf._n("layout","layouts",t),o=(o=(o=(o=o.replace("{required}",t)).replace("{label}",n)).replace("{identifier}",c)).replace("{min}",i),a.append('<span class="badge" title="'+o+'">'+t+"</span>"))}),c.find(".acfe-flexible-categories a").click(function(e){e.preventDefault();e=f(this);e.closest(".acfe-flexible-categories").find("a").removeClass("nav-tab-active"),e.addClass("nav-tab-active");var i=e.data("acfe-flexible-category");c.find("a[data-layout] span").each(function(){var a=f(this);a.closest("li").show();var e=a.data("acfe-flexible-category");"acfe-all"!==i&&(a.closest("li").hide(),f.each(e,function(e,t){if(i.toLowerCase()===t.toLowerCase())return a.closest("li").show(),!1}))})}),c.on("click","a[data-layout]",function(e){e.preventDefault(),acfe.modal.close(!0);a.add({layout:f(this).data("layout"),before:i})})},acf.addAction("new_field/type=flexible_content",function(e){e.has("acfeFlexibleModal")&&(e.$clones().length<=1||(e.removeEvents({'click [data-name="add-layout"]':"onClickAdd"}),e.addEvents({'click [data-name="add-layout"]':"acfeModalSelect"})))}))}(jQuery),function(){var e;"undefined"!=typeof acf&&((e=acf.getFieldType("flexible_content").prototype).events['click [data-action="acfe-flexible-modal-edit"]']="acfeModalEdit",e.acfeModalEdit=function(e,t){var a=this,i=t.closest(".layout"),o=i.find("> .acfe-modal.-fields"),n=i.find("> .acf-fc-layout-handle"),c=n.find("> .acf-fc-layout-order").outerHTML(),t=n.find(".acfe-layout-title-text").text(),n=!1;a.has("acfeFlexibleCloseButton")&&(n=acf.__("Close")),acfe.modal.open(o,{title:c+" "+t,footer:n,onOpen:function(){a.openLayout(i)},onClose:function(){a.closeLayout(i)}})},acf.addAction("new_field/type=flexible_content",function(e){e.has("acfeFlexibleModalEdition")&&(e.has("acfeFlexiblePlaceholder")||e.has("acfeFlexiblePreview"))&&(e.removeEvents({'click [data-name="collapse-layout"]':"onClickCollapse"}),e.removeEvents({"click .acfe-fc-placeholder":"onClickCollapse"}))}))}(jQuery),function(l){var e;"undefined"!=typeof acf&&(e=acf.Field.extend({type:"acfe_recaptcha",actions:{validation_failure:"validationFailure"},$control:function(){return this.$(".acfe-field-recaptcha")},$input:function(){return this.$('input[type="hidden"]')},$selector:function(){return this.$control().find("> div")},selector:function(){return this.$selector()[0]},version:function(){return this.get("version")},render:function(){var t=this;"v2"===this.version()?this.recaptcha=grecaptcha.render(t.selector(),{sitekey:t.$control().data("site-key"),theme:t.$control().data("theme"),size:t.$control().data("size"),callback:function(e){t.$input().val(e).change(),t.$input().closest(".acf-input").find("> .acf-notice.-error").hide()},"error-callback":function(){t.$input().val("error").change()},"expired-callback":function(){t.$input().val("expired").change()}}):"v3"===this.version()&&grecaptcha.ready(function(){grecaptcha.execute(t.$control().data("site-key"),{action:"homepage"}).then(function(e){t.$input().val(e).change(),t.$input().closest(".acf-input").find("> .acf-notice.-error").hide()})})},validationFailure:function(e){"v2"===this.version()&&grecaptcha.reset(this.recaptcha)}}),acf.registerFieldType(e),e=acf.Field.extend({wait:"ready",type:"acfe_code_editor",events:{showField:"onShow"},$control:function(){return this.$el.find("> .acf-input > .acf-input-wrap")},$input:function(){return this.$el.find("> .acf-input > .acf-input-wrap > textarea")},input:function(){return this.$input()[0]},rows:function(){return this.$input().attr("rows")},initialize:function(){this.rows=this.$control().data("rows"),this.max_rows=this.$control().data("max-rows"),this.mode=this.$control().data("mode"),this.lines=this.$control().data("lines"),this.indentUnit=this.$control().data("indent-unit");var e=[],t=wp.codeEditor.defaultSettings.codemirror,a={lineNumbers:this.lines,lineWrapping:!0,styleActiveLine:!1,continueComments:!0,indentUnit:this.indentUnit,tabSize:1,indentWithTabs:!0,mode:this.mode,extraKeys:{Tab:function(e){e.execCommand("indentMore")},"Shift-Tab":function(e){e.execCommand("indentLess")}}},a=jQuery.extend(t,a);e.codemirror=a,this.editor=wp.codeEditor.initialize(this.input(),e),(this.rows||this.max_rows)&&(this.rows&&(this.editor.codemirror.getScrollerElement().style.minHeight=18.5*this.rows+"px"),this.max_rows&&(this.editor.codemirror.getScrollerElement().style.maxHeight=18.5*this.max_rows+"px"),this.editor.codemirror.refresh()),(field=this).editor.codemirror.on("change",function(){field.editor.codemirror.save(),field.$input().change()})},onShow:function(){this.editor.codemirror&&this.editor.codemirror.refresh()}}),acf.registerFieldType(e),acf.registerConditionForFieldType("equalTo","acfe_code_editor"),acf.registerConditionForFieldType("notEqualTo","acfe_code_editor"),acf.registerConditionForFieldType("patternMatch","acfe_code_editor"),acf.registerConditionForFieldType("contains","acfe_code_editor"),acf.registerConditionForFieldType("hasValue","acfe_code_editor"),acf.registerConditionForFieldType("hasNoValue","acfe_code_editor"),acf.addAction("append_field_object",function(e){"acfe_code_editor"===e.get("type")&&(e.$setting("default_value").find("> .acf-input > .acf-input-wrap > .CodeMirror:last").remove(),e.$setting("placeholder").find("> .acf-input > .acf-input-wrap > .CodeMirror:last").remove())}),e=acf.Field.extend({type:"textarea",events:{"keydown textarea":"onInput"},onInput:function(e,t){var a,i;this.has("acfeTextareaCode")&&9===e.keyCode&&(e.preventDefault(),a=this.$el.find("textarea")[0],i=a.selectionStart,this.$el.find("textarea").val(function(e,t){return t.substring(0,i)+" "+t.substring(a.selectionEnd)}),a.selectionEnd=i+4)}}),acf.registerFieldType(e),e=acf.Field.extend({type:"acfe_slug",events:{"input input":"onInput","focusout input":"onFocusOut"},onInput:function(e,t){t.val(t.val().toLowerCase().replace(/\s+/g,"-").replace(/[^\w\-]+/g,"").replace(/\-\-+/g,"-").replace(/\_\_+/g,"_").replace(/^-+/,""))},onFocusOut:function(e,t){t.val(t.val().toLowerCase().replace(/-+$/,"").replace(/_+$/,""))}}),acf.registerFieldType(e),acf.registerConditionForFieldType("equalTo","acfe_slug"),acf.registerConditionForFieldType("notEqualTo","acfe_slug"),acf.registerConditionForFieldType("patternMatch","acfe_slug"),acf.registerConditionForFieldType("contains","acfe_slug"),acf.registerConditionForFieldType("hasValue","acfe_slug"),acf.registerConditionForFieldType("hasNoValue","acfe_slug"),e=acf.Field.extend({type:"acfe_button",events:{"click input":"onClick","click button":"onClick"},$input:function(){return this.$("input").length?this.$("input"):this.$("button").length?this.$("button"):void 0},initialize:function(){var e=this.$input();this.inherit(e)},onClick:function(e,t){var a;this.get("ajax")&&(e.preventDefault(),a={action:"acfe/fields/button",field_name:this.get("name"),field_key:this.get("key")},acf.doAction("acfe/fields/button/before_ajax",this.$el,a),acf.doAction("acfe/fields/button/before",this.$el,a),acf.doAction("acfe/fields/button/before/key="+this.get("key"),this.$el,a),acf.doAction("acfe/fields/button/before/name="+this.get("name"),this.$el,a),l.ajax({url:acf.get("ajaxurl"),data:acf.prepareForAjax(a),type:"post",dataType:"json",context:this,success:function(e){acf.doAction("acfe/fields/button/ajax_success",e,this.$el,a),acf.doAction("acfe/fields/button/success",e,this.$el,a),acf.doAction("acfe/fields/button/success/key="+this.get("key"),e,this.$el,a),acf.doAction("acfe/fields/button/success/name="+this.get("name"),e,this.$el,a)},complete:function(e){e=e.responseText;acf.doAction("acfe/fields/button/complete",e,this.$el,a),acf.doAction("acfe/fields/button/complete/key="+this.get("key"),e,this.$el,a),acf.doAction("acfe/fields/button/complete/name="+this.get("name"),e,this.$el,a)}}))}}),acf.registerFieldType(e),e=acf.Field.extend({type:"acfe_advanced_link",events:{'click a[data-name="add"]':"onClickEdit",'click a[data-name="edit"]':"onClickEdit",'click a[data-name="remove"]':"onClickRemove"},$control:function(){return this.$(".acf-link")},initialize:function(){},getValue:function(){var e={type:this.$(".input-type :checked").val(),title:this.$(".input-title").val(),url:this.$(".input-url").val(),post:this.$(".input-post :selected").text(),term:this.$(".input-term :selected").text(),target:this.$(".input-target").is(":checked")};return"post"===e.type?e.url=e.post:"term"===e.type&&(e.url=e.term),e},setValue:function(e){e=acf.parseArgs(e,{remove:!1,title:"",url:"",target:!1});var t=this.$control();t.removeClass("-value -external"),e.url&&t.addClass("-value"),e.target&&t.addClass("-external"),this.$(".link-title").html(e.title),this.$(".link-url").attr("href",e.url).html(e.url),e.remove&&(this.$(".input-type :checked").prop("checked",!1),this.$('.input-type [value="url"]').prop("checked",!0).trigger("change"),this.$(".input-title").val(""),this.$(".input-target").prop("checked",!1),this.$(".input-url").val("").trigger("change"),this.$(".input-post").val("").trigger("change"),this.$(".input-term").val("").trigger("change"))},onClickEdit:function(e,t){var a=t.closest(".acf-input").find(".acfe-modal"),t=a.attr("data-modal-title"),i=this;acfe.modal.open(a,{title:t,size:"medium",footer:acf.__("Close"),onClose:function(){i.onChange()}})},onClickRemove:function(e,t){this.setValue({remove:!0})},onChange:function(e,t){var a=this.getValue();this.setValue(a)}}),acf.registerFieldType(e),acf.addFilter("select2_ajax_data/type=post_object",function(e,t,a,i,o){if("post"!==i.get("key"))return e;a=acf.getInstance(a.closest(".acf-field-acfe-advanced-link"));return a&&(e.field_key=a.get("key")),e}),acf.addAction("invalid_field",function(e){var t=e.$el.closest(".acf-field-acfe-advanced-link").not(".acf-error");t.length&&acf.getInstance(t).showError(e.notice.get("text"))}),e=acf.Field.extend({type:"group",events:{'click [data-name="edit"]':"onClick"},initialize:function(){var e;this.has("acfeGroupModal")&&(e=this.get("acfeGroupModalButton"),this.$el.find("> .acf-input > .acf-fields, > .acf-input > .acf-table").wrapAll('<div class="acfe-modal"><div class="acfe-modal-wrapper"><div class="acfe-modal-content"></div></div></div>'),this.$el.find("> .acf-input").append('<a data-name="edit" class="acf-button button" href="#">'+e+"</a>"))},onClick:function(e,t){var a=this.$el.find("> .acf-label").text().trim(),i=this.$el.find("> .acf-input > .acfe-modal");a.length||(a=this.get("acfeGroupModalButton"));var o=!1;this.has("acfeGroupModalClose")&&(o=acf.__("Close"));var n="large";this.has("acfeGroupModalSize")&&(n=this.get("acfeGroupModalSize")),acfe.modal.open(i,{title:a,size:n,footer:o})}}),acf.registerFieldType(e),e=acf.Field.extend({type:"clone",events:{'click [data-name="edit"]':"onClick"},initialize:function(){var e;this.has("acfeCloneModal")&&(e=this.get("acfeCloneModalButton"),this.$el.find("> .acf-input > .acf-fields, > .acf-input > .acf-table").wrapAll('<div class="acfe-modal"><div class="acfe-modal-wrapper"><div class="acfe-modal-content"></div></div></div>'),this.$el.find("> .acf-input").append('<a data-name="edit" class="acf-button button" href="#">'+e+"</a>"))},onClick:function(e,t){var a=this.$el.find("> .acf-label").text().trim(),i=this.$el.find("> .acf-input > .acfe-modal");a.length||(a=this.get("acfeCloneModalButton"));var o=!1;this.has("acfeCloneModalClose")&&(o=acf.__("Close"));var n="large";this.has("acfeCloneModalSize")&&(n=this.get("acfeCloneModalSize")),acfe.modal.open(i,{title:a,size:n,footer:o})}}),acf.registerFieldType(e),e=acf.Field.extend({wait:"new_field",type:"acfe_column",$control:function(){return this.$(".acf-fields:first")},initialize:function(){if(this.$el.is("td")&&(this.$el.closest(".acf-table").find('th[data-type="acfe_column"]').remove(),this.remove()),this.get("endpoint"))return this.$el.find("> .acf-label").remove(),void this.$el.find("> .acf-input").remove();var e=this.$el,t=this.$el.find("> .acf-label"),a=(this.$inputWrap(),this.$control());t.remove();t=e.parent();a.addClass(t.hasClass("-left")?"-left":""),a.addClass(t.hasClass("-clear")?"-clear":""),a.append(e.nextUntil(".acf-field-acfe-column",".acf-field"))}}),acf.registerFieldType(e),acf.addFilter("select2_ajax_data/action=acfe/fields/taxonomy_terms/allow_query",function(e,t,a,i,o){var n=a.closest(".acf-field-settings").find("> .acf-field-setting-taxonomy > .acf-input > select > option:selected"),c=[];n.each(function(){c.push(l(this).val())}),e.taxonomies=c;a=a.closest(".acf-field-settings").find('> .acf-field-setting-allow_terms > .acf-input input[type="number"]');return e.level=a.val(),e}),acf.addAction("select2_init",function(t,e,a,i,o){var n;i.get("acfeSearchPlaceholder")&&(n=i.get("acfeSearchPlaceholder"),t.on("select2:open",function(e){i.get("multiple")?t.val()||i.$(".select2-search__field").attr("placeholder",n):l(".select2-search.select2-search--dropdown > .select2-search__field").attr("placeholder",n)}),i.get("multiple")&&t.on("select2:close",function(e){t.val()||i.$(".select2-search__field").attr("placeholder",i.get("placeholder"))}))}),acf.addFilter("select2_args",function(e,t,a,i,o){return i.get("acfeAllowCustom")&&(e.tags=!0,e.createTag=function(e){var t=l.trim(e.term);if(""===t)return null;var a=!1;return this.$element.find("option").each(function(){this.value.toLowerCase()===t.toLowerCase()&&(a=!0)}),a?null:{id:t,text:t}},e.insertTag=function(e,a){var i=!1;l.each(e,function(e,t){if(l.trim(a.text).toUpperCase()===l.trim(t.text).toUpperCase())return!(i=!0)}),i||e.unshift(a)},e.templateSelection=function(e){if(!e.id)return e.text;e=e.text;return e=(e=(e=(e=(e=(e=e.replace(/{field:(.*)}/g,"<code style='font-size:12px;padding:3px;vertical-align: 1px;line-height: 12px;'>{field:$1}</code>")).replace(/{fields}/g,"<code style='font-size:12px;padding:3px;vertical-align: 1px;line-height: 12px;'>{fields}</code>")).replace(/{current:(.*)}/g,"<code style='font-size:12px;padding:3px;vertical-align: 1px;line-height: 12px;'>{current:$1}</code>")).replace(/{get_field:(.*)}/g,"<code style='font-size:12px;padding:3px;vertical-align: 1px;line-height: 12px;'>{get_field:$1}</code>")).replace(/{query_var:(.*)}/g,"<code style='font-size:12px;padding:3px;vertical-align: 1px;line-height: 12px;'>{query_var:$1}</code>")).replace(/{request:(.*)}/g,"<code style='font-size:12px;padding:3px;vertical-align: 1px;line-height: 12px;'>{request:$1}</code>")},e.templateResult=function(e){if(!e.id)return e.text;e=e.text;return e=(e=(e=(e=(e=(e=e.replace(/{field:(.*?)}/g,"<code style='font-size:12px;'>{field:$1}</code>")).replace(/{fields}/g,"<code style='font-size:12px;'>{fields}</code>")).replace(/{get_field:(.*?)}/g,"<code style='font-size:12px;'>{get_field:$1}</code>")).replace(/{query_var:(.*?)}/g,"<code style='font-size:12px;'>{query_var:$1}</code>")).replace(/{request:(.*?)}/g,"<code style='font-size:12px;'>{request:$1}</code>")).replace(/{current:(.*?)}/g,"<code style='font-size:12px;'>{current:$1}</code>")}),e}),acf.addFilter("select2_args",function(e,t,a,i,o){return e=acf.applyFilters("select2_args/type="+i.get("type"),e,t,a,i,o),e=acf.applyFilters("select2_args/name="+i.get("name"),e,t,a,i,o),e=acf.applyFilters("select2_args/key="+i.get("key"),e,t,a,i,o)}),acf.addAction("select2_init",function(e,t,a,i,o){acf.doAction("select2_init/type="+i.get("type"),e,t,a,i,o),acf.doAction("select2_init/name="+i.get("name"),e,t,a,i,o),acf.doAction("select2_init/key="+i.get("key"),e,t,a,i,o)}),acf.addFilter("select2_ajax_data",function(e,t,a,i,o){return e=acf.applyFilters("select2_ajax_data/type="+i.get("type"),e,t,a,i,o),e=acf.applyFilters("select2_ajax_data/name="+i.get("name"),e,t,a,i,o),(e=acf.applyFilters("select2_ajax_data/key="+i.get("key"),e,t,a,i,o)).action&&(e=acf.applyFilters("select2_ajax_data/action="+e.action,e,t,a,i,o)),e}),acf.registerConditionForFieldType("equalTo","date_picker"),acf.registerConditionForFieldType("notEqualTo","date_picker"),acf.registerConditionForFieldType("patternMatch","date_picker"),acf.registerConditionForFieldType("contains","date_picker"),acf.registerConditionForFieldType("greaterThan","date_picker"),acf.registerConditionForFieldType("lessThan","date_picker"),acf.registerConditionForFieldType("equalTo","taxonomy"),acf.registerConditionForFieldType("notEqualTo","taxonomy"),acf.registerConditionForFieldType("patternMatch","taxonomy"),acf.registerConditionForFieldType("contains","taxonomy"),acf.registerConditionForFieldType("hasValue","taxonomy"),acf.registerConditionForFieldType("hasNoValue","taxonomy"),acf.registerConditionForFieldType("equalTo","acfe_forms"),acf.registerConditionForFieldType("notEqualTo","acfe_forms"),acf.registerConditionForFieldType("patternMatch","acfe_forms"),acf.registerConditionForFieldType("contains","acfe_forms"),acf.registerConditionForFieldType("hasValue","acfe_forms"),acf.registerConditionForFieldType("hasNoValue","acfe_forms"),acf.registerConditionForFieldType("equalTo","acfe_post_statuses"),acf.registerConditionForFieldType("notEqualTo","acfe_post_statuses"),acf.registerConditionForFieldType("patternMatch","acfe_post_statuses"),acf.registerConditionForFieldType("contains","acfe_post_statuses"),acf.registerConditionForFieldType("hasValue","acfe_post_statuses"),acf.registerConditionForFieldType("hasNoValue","acfe_post_statuses"),acf.registerConditionForFieldType("equalTo","acfe_post_types"),acf.registerConditionForFieldType("notEqualTo","acfe_post_types"),acf.registerConditionForFieldType("patternMatch","acfe_post_types"),acf.registerConditionForFieldType("contains","acfe_post_types"),acf.registerConditionForFieldType("hasValue","acfe_post_types"),acf.registerConditionForFieldType("hasNoValue","acfe_post_types"),acf.registerConditionForFieldType("equalTo","acfe_taxonomies"),acf.registerConditionForFieldType("notEqualTo","acfe_taxonomies"),acf.registerConditionForFieldType("patternMatch","acfe_taxonomies"),acf.registerConditionForFieldType("contains","acfe_taxonomies"),acf.registerConditionForFieldType("hasValue","acfe_taxonomies"),acf.registerConditionForFieldType("hasNoValue","acfe_taxonomies"),acf.registerConditionForFieldType("equalTo","acfe_taxonomy_terms"),acf.registerConditionForFieldType("notEqualTo","acfe_taxonomy_terms"),acf.registerConditionForFieldType("patternMatch","acfe_taxonomy_terms"),acf.registerConditionForFieldType("contains","acfe_taxonomy_terms"),acf.registerConditionForFieldType("hasValue","acfe_taxonomy_terms"),acf.registerConditionForFieldType("hasNoValue","acfe_taxonomy_terms"),acf.registerConditionForFieldType("equalTo","acfe_user_roles"),acf.registerConditionForFieldType("notEqualTo","acfe_user_roles"),acf.registerConditionForFieldType("patternMatch","acfe_user_roles"),acf.registerConditionForFieldType("contains","acfe_user_roles"),acf.registerConditionForFieldType("hasValue","acfe_user_roles"),acf.registerConditionForFieldType("hasNoValue","acfe_user_roles"),acf.add_action("new_field/name=acfe_author",function(e){e.on("change",function(e){e.stopPropagation()})}),acf.addAction("new_field/name=acfe_form_post_map_target",e=function(e){var t=e.get("name"),a=e.$el.closest(".layout").find('> .acf-fields > .acf-field[data-name="'+t+'_message"] > .acf-input'),t=e.$input().find("option:selected").text();t.length&&a.html(t),e.$input().on("change",function(){var e=l(this).find("option:selected").text();a.html(e)})}),acf.addAction("new_field/name=acfe_form_post_map_post_type",e),acf.addAction("new_field/name=acfe_form_post_map_post_status",e),acf.addAction("new_field/name=acfe_form_post_map_post_title",e),acf.addAction("new_field/name=acfe_form_post_map_post_name",e),acf.addAction("new_field/name=acfe_form_post_map_post_content",e),acf.addAction("new_field/name=acfe_form_post_map_post_author",e),acf.addAction("new_field/name=acfe_form_post_map_post_parent",e),acf.addAction("new_field/name=acfe_form_post_map_post_terms",e),acf.addAction("new_field/name=acfe_form_user_map_email",e),acf.addAction("new_field/name=acfe_form_user_map_username",e),acf.addAction("new_field/name=acfe_form_user_map_password",e),acf.addAction("new_field/name=acfe_form_user_map_first_name",e),acf.addAction("new_field/name=acfe_form_user_map_last_name",e),acf.addAction("new_field/name=acfe_form_user_map_nickname",e),acf.addAction("new_field/name=acfe_form_user_map_display_name",e),acf.addAction("new_field/name=acfe_form_user_map_website",e),acf.addAction("new_field/name=acfe_form_user_map_description",e),acf.addAction("new_field/name=acfe_form_user_map_role",e),acf.addAction("new_field/name=acfe_form_term_map_name",e),acf.addAction("new_field/name=acfe_form_term_map_slug",e),acf.addAction("new_field/name=acfe_form_term_map_taxonomy",e),acf.addAction("new_field/name=acfe_form_term_map_parent",e),acf.addAction("new_field/name=acfe_form_term_map_description",e),acf.addAction("new_field/name=acfe_form_actions",function(t){var a=l("a[data-key=field_acfe_form_tab_actions]"),e=t.$layouts();a.html('Actions <span class="acfe-tab-badge">'+e.length+"</span>"),t.on("change",function(){var e=t.$layouts();a.html('Actions <span class="acfe-tab-badge">'+e.length+"</span>")}),t.on("click",'[data-name="add-layout"]',function(e){l("body").find(".acf-fc-popup").addClass("acfe-fc-popup-grey")})}),e=function(e){var t=e.findTabs(),t=acf.getInstances(t),a=e.get("key");if(t.length){var i=acf.getPreference("this.tabs");if(!i)return;l.each(t,function(){var e=this.get("index");this.data.key===a&&(i[e]=0)}),acf.setPreference("this.tabs",i)}},acf.addAction("prepare_field/key=field_acfe_form_custom_action_tab_action",e),acf.addAction("prepare_field/key=field_acfe_form_email_tab_action",e),acf.addAction("prepare_field/key=field_acfe_form_post_tab_action",e),acf.addAction("prepare_field/key=field_acfe_form_term_tab_action",e),acf.addAction("prepare_field/key=field_acfe_form_user_tab_action",e),acf.addAction("prepare_field/key=field_acfe_dpt_tab_general",e),acf.addAction("prepare_field/key=field_acfe_dt_tab_general",e),acf.addAction("show_postbox",function(e){e.$el.removeClass("acfe-postbox-left acfe-postbox-top")}),acf.newCondition=function(e,t){var a=t.get("field"),i=a.getField(e.field);if(a&&!i&&(i=acf.getField(e.field)),!a||!i)return!1;t={rule:e,target:a,conditions:t,field:i},i=i.get("type"),e=e.operator;return new(acf.getConditionTypes({fieldType:i,operator:e})[0]||acf.Condition)(t)},acf.addAction("new_field/type=checkbox",function(a){a.has("acfeLabels")&&l.each(a.get("acfeLabels"),function(e,t){a.$control().find('input[type=checkbox][value="'+t+'"]').closest("ul").before("<strong>"+e+"</strong>")})}),acf.addAction("new_field/type=radio",function(a){a.has("acfeLabels")&&(l.each(a.get("acfeLabels"),function(e,t){a.$control().find('input[type=radio][value="'+t+'"]').closest("li").addClass("parent").prepend("<strong>"+e+"</strong>")}),a.$control().hasClass("acf-hl")&&a.$control().find("li.parent").each(function(){l(this).nextUntil("li.parent").addBack().wrapAll("<li><ul></ul></li>")}))}))}(jQuery),function(c){"undefined"!=typeof acf&&(acf.addAction("prepare",function(){acf.get("is_admin")||(acf.isset(window,"wp","media","view","settings","post")&&(wp.media.view.settings.post=!1),c('.acfe-form[data-hide-unload="1"]').length&&acf.unload.disable(),c(".acfe-form-success").length&&(window.history.replaceState&&window.history.replaceState(null,null,window.location.href),c(".acfe-form-success").each(function(){var e=c(this).data("form-name"),t=c(this).data("form-id");acf.doAction("acfe/form/submit/success"),acf.doAction("acfe/form/submit/success/id="+t),acf.doAction("acfe/form/submit/success/name="+e)})))}),acf.addAction("new_field/type=date_picker",function(e){var t;acf.get("is_admin")||(!(t=e.$el.closest(".acfe-form")).length||(t=t.data("fields-class"))&&e.$inputText().addClass(t))}),acf.addAction("new_field/type=google_map",function(e){var t;acf.get("is_admin")||(!(t=e.$el.closest(".acfe-form")).length||(t=t.data("fields-class"))&&e.$search().addClass(t))}),acf.addAction("invalid_field",function(e){var t,a,i,o,n;acf.get("is_admin")||(t=e.$el.closest(".acfe-form")).length&&(a=t.data("errors-position"),(n=t.data("errors-class"))&&n.length&&e.$el.find(".acf-notice.-error").addClass(n),a&&"below"===a?(e.$control().length?e.$el.find(".acf-notice.-error").insertAfter(e.$control()):e.$input().length&&e.$el.find(".acf-notice.-error").insertAfter(e.$input()),o=!1,e.$control().length?o=e.$control():e.$input().length&&(o=e.$input()),o&&e.$el.find(".acf-notice.-error").insertAfter(o)):a&&"group"===a?(i=e.$el.find(".acf-label label").text().trim(),n=e.$el.find('.acf-input-wrap [placeholder!=""]').attr("placeholder"),o=e.$el.find(".acf-notice.-error").text().trim(),e.$el.find(".acf-notice.-error").remove(),o=i&&i.length&&"*"!==i?i+": "+o:n&&n.length&&""!==n?n+": "+o:e.get("name")+": "+o,(n=t.find("> .acfe-form-error")).length||(n=c('<div class="acf-notice -error acf-error-message acfe-form-error" />').prependTo(t)),n.append("<p>"+o+"</p>")):a&&"hide"===a&&e.$el.find(".acf-notice.-error").remove())}),acf.addAction("validation_begin",function(e){acf.get("is_admin")||void 0!==e&&e.find(".acf-error-message").remove()}))}(jQuery),jQuery,"undefined"!=typeof acf&&(acf.getFieldType("repeater").prototype.acfeOnHover=function(){this.off("mouseover")},acf.addAction("new_field/type=repeater",function(e){e.has("acfeRepeaterLock")&&(e.removeEvents({mouseover:"onHover"}),e.addEvents({mouseover:"acfeOnHover"})),e.has("acfeRepeaterRemoveActions")&&(e.$actions().remove(),e.$el.find("thead:first > tr > th.acf-row-handle:last").remove(),e.$rows().find("> .acf-row-handle:last").remove(),e.$control().find("> .acfe-repeater-stylised-button").remove()),e.has("acfeRepeaterStylisedButton")&&(e.$button().removeClass("button-primary"),e.$actions().wrap('<div class="acfe-repeater-stylised-button" />'))}));
includes/admin/options.class.php CHANGED
@@ -1,277 +1,277 @@
1
- <?php
2
-
3
- if(!defined('ABSPATH'))
4
- exit;
5
-
6
- if(!class_exists('WP_List_Table'))
7
- require_once(ABSPATH . 'wp-admin/includes/class-wp-list-table.php');
8
-
9
- class ACFE_Admin_Options_List extends WP_List_Table{
10
-
11
- /**
12
- * Constructor
13
- *
14
- */
15
- public function __construct(){
16
-
17
- parent::__construct(array(
18
- 'singular' => __('Option', 'acfe'),
19
- 'plural' => __('Options', 'acfe'),
20
- 'ajax' => false
21
- ));
22
-
23
- }
24
-
25
-
26
- /**
27
- * Retrieve data from the database
28
- *
29
- * @param int $per_page
30
- * @param int $page_number
31
- *
32
- * @return mixed
33
- */
34
- public static function get_options($per_page = 100, $page_number = 1, $search = ''){
35
-
36
- global $wpdb;
37
-
38
- $sql = "SELECT * FROM {$wpdb->options}";
39
-
40
- if(!empty($search)){
41
-
42
- $sql .= ' WHERE option_name LIKE \'%' . $search . '%\'';
43
-
44
- }
45
-
46
- if(empty($_REQUEST['orderby'])){
47
-
48
- $sql .= ' ORDER BY option_id ASC';
49
-
50
- }
51
-
52
- else{
53
-
54
- $sql .= ' ORDER BY ' . esc_sql($_REQUEST['orderby']);
55
- $sql .= !empty($_REQUEST['order']) ? ' ' . esc_sql($_REQUEST['order']) : ' ASC';
56
-
57
- }
58
-
59
- if(empty($search)){
60
-
61
- $sql .= " LIMIT $per_page";
62
- $sql .= ' OFFSET ' . ($page_number - 1) * $per_page;
63
-
64
- }
65
-
66
-
67
- $result = $wpdb->get_results($sql, 'ARRAY_A');
68
-
69
- return $result;
70
-
71
- }
72
-
73
-
74
- /**
75
- * Returns the count of records in the database.
76
- *
77
- * @return null|string
78
- */
79
- public static function record_count($search = ''){
80
-
81
- global $wpdb;
82
-
83
- $sql = "SELECT COUNT(*) FROM {$wpdb->options}";
84
-
85
- if(!empty($search)){
86
-
87
- $sql .= ' WHERE option_name LIKE \'%' . $search . '%\'';
88
-
89
- }
90
-
91
- return $wpdb->get_var($sql);
92
-
93
- }
94
-
95
-
96
- /** Text displayed when no data is available */
97
- public function no_items(){
98
-
99
- _e('No options avaliable.', 'acfe');
100
-
101
- }
102
-
103
-
104
- /**
105
- * Render a column when no column specific method exist.
106
- *
107
- * @param array $item
108
- * @param string $column_name
109
- *
110
- * @return mixed
111
- */
112
- public function column_default($item, $column_name){
113
-
114
- if($column_name === 'option_id'){
115
-
116
- return $item['option_id'];
117
-
118
- }
119
-
120
- elseif($column_name === 'option_value'){
121
-
122
- if(is_serialized($item['option_value']) || $item['option_value'] != strip_tags($item['option_value'])){
123
-
124
- return '<pre style="max-height:200px; overflow:auto; white-space: pre;">' . print_r(maybe_unserialize($item['option_value']), true) . '</pre>';
125
-
126
- }elseif(acfe_is_json($item['option_value'])){
127
-
128
- return '<pre style="max-height:200px; overflow:auto; white-space: pre;">' . print_r(json_decode($item['option_value']), true) . '</pre>';
129
-
130
- }
131
-
132
-
133
- return $item['option_value'];
134
-
135
- }
136
-
137
- elseif($column_name === 'autoload'){
138
-
139
- return $item['autoload'];
140
-
141
- }else{
142
-
143
- return print_r($item, true);
144
-
145
- }
146
-
147
- }
148
-
149
- /**
150
- * Render the bulk edit checkbox
151
- *
152
- * @param array $item
153
- *
154
- * @return string
155
- */
156
- public function column_cb($item){
157
-
158
- return sprintf(
159
- '<input type="checkbox" name="bulk-delete[]" value="%s" />', $item['option_id']
160
- );
161
-
162
- }
163
-
164
-
165
- /**
166
- * Method for name column
167
- *
168
- * @param array $item an array of DB data
169
- *
170
- * @return string
171
- */
172
- public function column_option_name($item){
173
-
174
- $delete_nonce = wp_create_nonce('acfe_options_delete_option');
175
-
176
- $title = '<strong>' . $item['option_name'] . '</strong>';
177
-
178
- $actions = array(
179
- 'edit' => sprintf('<a href="?page=%s&action=edit&option=%s">' . __('Edit') . '</a>', esc_attr($_REQUEST['page']), absint($item['option_id'])),
180
- 'delete' => sprintf('<a href="?page=%s&action=delete&option=%s&_wpnonce=%s">' . __('Delete') . '</a>', esc_attr($_REQUEST['page']), absint($item['option_id']), $delete_nonce),
181
- );
182
-
183
- return $title . $this->row_actions($actions);
184
-
185
- }
186
-
187
-
188
- /**
189
- * Associative array of columns
190
- *
191
- * @return array
192
- */
193
- public function get_columns(){
194
-
195
- $columns = array(
196
- 'cb' => '<input type="checkbox" />',
197
- 'option_id' => __('ID', 'acfe'),
198
- 'option_name' => __('Name', 'acfe'),
199
- 'option_value' => __('Value', 'acfe'),
200
- 'autoload' => __('Autoload', 'acfe'),
201
- );
202
-
203
- return $columns;
204
-
205
- }
206
-
207
-
208
- /**
209
- * Columns to make sortable.
210
- *
211
- * @return array
212
- */
213
- public function get_sortable_columns(){
214
-
215
- $sortable_columns = array(
216
- 'option_id' => array('option_id', true),
217
- 'option_name' => array('option_name', true),
218
- 'option_value' => array('option_value', true),
219
- 'autoload' => array('autoload', true),
220
- );
221
-
222
- return $sortable_columns;
223
-
224
- }
225
-
226
- /**
227
- * Returns an associative array containing the bulk action
228
- *
229
- * @return array
230
- */
231
- public function get_bulk_actions(){
232
-
233
- $actions = array(
234
- 'bulk-delete' => __('Delete')
235
- );
236
-
237
- return $actions;
238
-
239
- }
240
-
241
-
242
- /**
243
- * Handles data query and filter, sorting, and pagination.
244
- */
245
- public function prepare_items(){
246
-
247
- // Get columns
248
- $this->_column_headers = array($this->get_columns(), array(), $this->get_sortable_columns());
249
-
250
- // Vars
251
- $per_page = $this->get_items_per_page('options_per_page', 100);
252
- $current_page = $this->get_pagenum();
253
-
254
- // Search
255
- $search = (isset( $_REQUEST['s'])) ? $_REQUEST['s'] : false;
256
-
257
- // Get items
258
- $this->items = self::get_options($per_page, $current_page, $search);
259
- /*
260
- foreach($this->items as &$item){
261
- $item = json_encode($item);
262
- }*/
263
-
264
- // Get total
265
- $total_items = self::record_count($search);
266
-
267
- if(!empty($search))
268
- $per_page = $total_items;
269
-
270
- $this->set_pagination_args(array(
271
- 'total_items' => $total_items,
272
- 'per_page' => $per_page
273
- ));
274
-
275
- }
276
-
277
  }
1
+ <?php
2
+
3
+ if(!defined('ABSPATH'))
4
+ exit;
5
+
6
+ if(!class_exists('WP_List_Table'))
7
+ require_once(ABSPATH . 'wp-admin/includes/class-wp-list-table.php');
8
+
9
+ class ACFE_Admin_Options_List extends WP_List_Table{
10
+
11
+ /**
12
+ * Constructor
13
+ *
14
+ */
15
+ public function __construct(){
16
+
17
+ parent::__construct(array(
18
+ 'singular' => __('Option', 'acfe'),
19
+ 'plural' => __('Options', 'acfe'),
20
+ 'ajax' => false
21
+ ));
22
+
23
+ }
24
+
25
+
26
+ /**
27
+ * Retrieve data from the database
28
+ *
29
+ * @param int $per_page
30
+ * @param int $page_number
31
+ *
32
+ * @return mixed
33
+ */
34
+ public static function get_options($per_page = 100, $page_number = 1, $search = ''){
35
+
36
+ global $wpdb;
37
+
38
+ $sql = "SELECT * FROM {$wpdb->options}";
39
+
40
+ if(!empty($search)){
41
+
42
+ $sql .= ' WHERE option_name LIKE \'%' . $search . '%\'';
43
+
44
+ }
45
+
46
+ if(empty($_REQUEST['orderby'])){
47
+
48
+ $sql .= ' ORDER BY option_id ASC';
49
+
50
+ }
51
+
52
+ else{
53
+
54
+ $sql .= ' ORDER BY ' . esc_sql($_REQUEST['orderby']);
55
+ $sql .= !empty($_REQUEST['order']) ? ' ' . esc_sql($_REQUEST['order']) : ' ASC';
56
+
57
+ }
58
+
59
+ if(empty($search)){
60
+
61
+ $sql .= " LIMIT $per_page";
62
+ $sql .= ' OFFSET ' . ($page_number - 1) * $per_page;
63
+
64
+ }
65
+
66
+
67
+ $result = $wpdb->get_results($sql, 'ARRAY_A');
68
+
69
+ return $result;
70
+
71
+ }
72
+
73
+
74
+ /**
75
+ * Returns the count of records in the database.
76
+ *
77
+ * @return null|string
78
+ */
79
+ public static function record_count($search = ''){
80
+
81
+ global $wpdb;
82
+
83
+ $sql = "SELECT COUNT(*) FROM {$wpdb->options}";
84
+
85
+ if(!empty($search)){
86
+
87
+ $sql .= ' WHERE option_name LIKE \'%' . $search . '%\'';
88
+
89
+ }
90
+
91
+ return $wpdb->get_var($sql);
92
+
93
+ }
94
+
95
+
96
+ /** Text displayed when no data is available */
97
+ public function no_items(){
98
+
99
+ _e('No options avaliable.', 'acfe');
100
+
101
+ }
102
+
103
+
104
+ /**
105
+ * Render a column when no column specific method exist.
106
+ *
107
+ * @param array $item
108
+ * @param string $column_name
109
+ *
110
+ * @return mixed
111
+ */
112
+ public function column_default($item, $column_name){
113
+
114
+ if($column_name === 'option_id'){
115
+
116
+ return $item['option_id'];
117
+
118
+ }
119
+
120
+ elseif($column_name === 'option_value'){
121
+
122
+ if(is_serialized($item['option_value']) || $item['option_value'] != strip_tags($item['option_value'])){
123
+
124
+ return '<pre style="max-height:200px; overflow:auto; white-space: pre;">' . print_r(maybe_unserialize($item['option_value']), true) . '</pre>';
125
+
126
+ }elseif(acfe_is_json($item['option_value'])){
127
+
128
+ return '<pre style="max-height:200px; overflow:auto; white-space: pre;">' . print_r(json_decode($item['option_value']), true) . '</pre>';
129
+
130
+ }
131
+
132
+
133
+ return $item['option_value'];
134
+
135
+ }
136
+
137
+ elseif($column_name === 'autoload'){
138
+
139
+ return $item['autoload'];
140
+
141
+ }else{
142
+
143
+ return print_r($item, true);
144
+
145
+ }
146
+
147
+ }
148
+
149
+ /**
150
+ * Render the bulk edit checkbox
151
+ *
152
+ * @param array $item
153
+ *
154
+ * @return string
155
+ */
156
+ public function column_cb($item){
157
+
158
+ return sprintf(
159
+ '<input type="checkbox" name="bulk-delete[]" value="%s" />', $item['option_id']
160
+ );
161
+
162
+ }
163
+
164
+
165
+ /**
166
+ * Method for name column
167
+ *
168
+ * @param array $item an array of DB data
169
+ *
170
+ * @return string
171
+ */
172
+ public function column_option_name($item){
173
+
174
+ $delete_nonce = wp_create_nonce('acfe_options_delete_option');
175
+
176
+ $title = '<strong>' . $item['option_name'] . '</strong>';
177
+
178
+ $actions = array(
179
+ 'edit' => sprintf('<a href="?page=%s&action=edit&option=%s">' . __('Edit') . '</a>', esc_attr($_REQUEST['page']), absint($item['option_id'])),
180
+ 'delete' => sprintf('<a href="?page=%s&action=delete&option=%s&_wpnonce=%s">' . __('Delete') . '</a>', esc_attr($_REQUEST['page']), absint($item['option_id']), $delete_nonce),
181
+ );
182
+
183
+ return $title . $this->row_actions($actions);
184
+
185
+ }
186
+
187
+
188
+ /**
189
+ * Associative array of columns
190
+ *
191
+ * @return array
192
+ */
193
+ public function get_columns(){
194
+
195
+ $columns = array(
196
+ 'cb' => '<input type="checkbox" />',
197
+ 'option_id' => __('ID', 'acfe'),
198
+ 'option_name' => __('Name', 'acfe'),
199
+ 'option_value' => __('Value', 'acfe'),
200
+ 'autoload' => __('Autoload', 'acfe'),
201
+ );
202
+
203
+ return $columns;
204
+
205
+ }
206
+
207
+
208
+ /**
209
+ * Columns to make sortable.
210
+ *
211
+ * @return array
212
+ */
213
+ public function get_sortable_columns(){
214
+
215
+ $sortable_columns = array(
216
+ 'option_id' => array('option_id', true),
217
+ 'option_name' => array('option_name', true),
218
+ 'option_value' => array('option_value', true),
219
+ 'autoload' => array('autoload', true),
220
+ );
221
+
222
+ return $sortable_columns;
223
+
224
+ }
225
+
226
+ /**
227
+ * Returns an associative array containing the bulk action
228
+ *
229
+ * @return array
230
+ */
231
+ public function get_bulk_actions(){
232
+
233
+ $actions = array(
234
+ 'bulk-delete' => __('Delete')
235
+ );
236
+
237
+ return $actions;
238
+
239
+ }
240
+
241
+
242
+ /**
243
+ * Handles data query and filter, sorting, and pagination.
244
+ */
245
+ public function prepare_items(){
246
+
247
+ // Get columns
248
+ $this->_column_headers = array($this->get_columns(), array(), $this->get_sortable_columns());
249
+
250
+ // Vars
251
+ $per_page = $this->get_items_per_page('options_per_page', 100);
252
+ $current_page = $this->get_pagenum();
253
+
254
+ // Search
255
+ $search = (isset( $_REQUEST['s'])) ? $_REQUEST['s'] : false;
256
+
257
+ // Get items
258
+ $this->items = self::get_options($per_page, $current_page, $search);
259
+ /*
260
+ foreach($this->items as &$item){
261
+ $item = json_encode($item);
262
+ }*/
263
+
264
+ // Get total
265
+ $total_items = self::record_count($search);
266
+
267
+ if(!empty($search))
268
+ $per_page = $total_items;
269
+
270
+ $this->set_pagination_args(array(
271
+ 'total_items' => $total_items,
272
+ 'per_page' => $per_page
273
+ ));
274
+
275
+ }
276
+
277
  }
includes/admin/options.php CHANGED
@@ -1,579 +1,579 @@
1
- <?php
2
-
3
- if(!defined('ABSPATH'))
4
- exit;
5
-
6
- // Check setting
7
- if(!acf_get_setting('acfe/modules/options'))
8
- return;
9
-
10
- /**
11
- * Options WP List Table
12
- *
13
- */
14
- require_once(ACFE_PATH . 'includes/admin/options.class.php');
15
-
16
- /**
17
- * Options Menu
18
- *
19
- */
20
- add_action('admin_menu', 'acfe_options_menu');
21
- function acfe_options_menu(){
22
-
23
- $hook = add_submenu_page(
24
- 'options-general.php',
25
- __('Options'),
26
- __('Options'),
27
- acf_get_setting('capability'),
28
- 'acfe-options'
29
- );
30
-
31
- }
32
-
33
- /**
34
- * Options Screen
35
- *
36
- */
37
- add_filter('set-screen-option', 'acfe_options_screen', 10, 3);
38
- function acfe_options_screen($status, $option, $value){
39
-
40
- return $value;
41
-
42
- }
43
-
44
- /**
45
- * Options Enqueue
46
- *
47
- */
48
- add_action('admin_print_scripts-settings_page_acfe-options', 'acfe_options_enqueue');
49
- function acfe_options_enqueue(){
50
-
51
- wp_enqueue_style('acf-input');
52
- wp_enqueue_script('acf-input');
53
- wp_enqueue_style('acf-extended', plugins_url('assets/acf-extended.css', ACFE_FILE), false, null);
54
-
55
- }
56
-
57
- /**
58
- * Options Load
59
- *
60
- */
61
- add_action('load-settings_page_acfe-options', 'acfe_options_load');
62
- function acfe_options_load(){
63
-
64
- // Messages
65
- if(isset($_REQUEST['message']) && !empty($_REQUEST['message']))
66
- do_action('acfe/options/load/message=' . $_REQUEST['message']);
67
-
68
- // Default Action
69
- $action = 'list';
70
-
71
- // Request Action
72
- if(isset($_REQUEST['action']) && !empty($_REQUEST['action']) && $_REQUEST['action'] != '-1')
73
- $action = $_REQUEST['action'];
74
-
75
- // Request Action2
76
- elseif(isset($_REQUEST['action2']) && !empty($_REQUEST['action2']) && $_REQUEST['action2'] != '-1')
77
- $action = $_REQUEST['action2'];
78
-
79
- // Do Action: Specific
80
- do_action('acfe/options/load/action=' . $action, $action);
81
-
82
- // Do Action
83
- do_action('acfe/options/load', $action);
84
-
85
- }
86
-
87
- /**
88
- * Options HTML
89
- *
90
- */
91
- add_action('settings_page_acfe-options', 'acfe_options_html');
92
- function acfe_options_html(){
93
-
94
- // Default Action
95
- $action = 'list';
96
-
97
- // Request Action
98
- if(isset($_REQUEST['action']) && !empty($_REQUEST['action']) && $_REQUEST['action'] != '-1')
99
- $action = $_REQUEST['action'];
100
-
101
- // Do Action: Specific
102
- do_action('acfe/options/html/action=' . $action, $action);
103
-
104
- // Do Action
105
- do_action('acfe/options/html', $action);
106
-
107
- }
108
-
109
- /**
110
- * Options List: Load
111
- *
112
- */
113
- add_action('acfe/options/load/action=list', 'acfe_options_load_list');
114
- function acfe_options_load_list(){
115
-
116
- add_screen_option('per_page', array(
117
- 'label' => 'Options',
118
- 'default' => 100,
119
- 'option' => 'options_per_page'
120
- ));
121
-
122
- }
123
-
124
- /**
125
- * Options List: HTML
126
- *
127
- */
128
- add_filter('acfe/options/html/action=list', 'acfe_options_html_list');
129
- function acfe_options_html_list(){
130
-
131
- acf_get_view(ACFE_PATH . '/includes/admin/views/html-options-list.php');
132
-
133
- }
134
-
135
- /**
136
- * Options Delete: Load
137
- *
138
- */
139
- add_action('acfe/options/load/action=delete', 'acfe_options_load_delete');
140
- function acfe_options_load_delete(){
141
-
142
- $nonce = esc_attr($_REQUEST['_wpnonce']);
143
-
144
- if(!wp_verify_nonce($nonce, 'acfe_options_delete_option'))
145
- wp_die('Cheatin’, huh?');
146
-
147
- acfe_options_delete_option(absint($_GET['option']));
148
-
149
- wp_redirect(sprintf('?page=%s&message=deleted', esc_attr($_REQUEST['page'])));
150
- exit;
151
-
152
- }
153
-
154
- /**
155
- * Options Delete: Message
156
- *
157
- */
158
- add_action('acfe/options/load/message=deleted', 'acfe_options_load_delete_message');
159
- function acfe_options_load_delete_message(){
160
-
161
- acf_add_admin_notice(__('Option has been deleted'), 'success');
162
-
163
- }
164
-
165
- /**
166
- * Options Bulk Delete: Load
167
- *
168
- */
169
- add_action('acfe/options/load/action=bulk-delete', 'acfe_options_load_bulk_delete');
170
- function acfe_options_load_bulk_delete(){
171
-
172
- $nonce = esc_attr($_REQUEST['_wpnonce']);
173
-
174
- if(!wp_verify_nonce($nonce, 'bulk-options'))
175
- wp_die('Cheatin’, huh?');
176
-
177
- $delete_ids = esc_sql($_REQUEST['bulk-delete']);
178
-
179
- foreach($delete_ids as $id){
180
-
181
- acfe_options_delete_option($id);
182
-
183
- }
184
-
185
- wp_redirect(sprintf('?page=%s&message=bulk-deleted', esc_attr($_REQUEST['page'])));
186
- exit;
187
-
188
- }
189
-
190
- /**
191
- * Options Bulk Delete: Message
192
- *
193
- */
194
- add_action('acfe/options/load/message=bulk-deleted', 'acfe_options_load_bulk_delete_message');
195
- function acfe_options_load_bulk_delete_message(){
196
-
197
- acf_add_admin_notice(__('Options have been deleted'), 'success');
198
-
199
- }
200
-
201
- /**
202
- * Options Delete: Function
203
- *
204
- */
205
- function acfe_options_delete_option($id){
206
-
207
- global $wpdb;
208
-
209
- $wpdb->delete(
210
- "{$wpdb->options}",
211
- array('option_id' => $id),
212
- array('%d')
213
- );
214
-
215
- }
216
-
217
- /**
218
- * Options Edit: Load
219
- *
220
- */
221
- add_action('acfe/options/load/action=edit', 'acfe_options_load_edit');
222
- add_action('acfe/options/load/action=add', 'acfe_options_load_edit');
223
- function acfe_options_load_edit($action){
224
-
225
- // Nonce
226
- if(acf_verify_nonce('acfe-options-edit')){
227
-
228
- // Save data
229
- if(acf_validate_save_post(true)){
230
-
231
- acf_save_post('acfe_options_edit');
232
-
233
- $redirect = add_query_arg(array('message' => 'updated'));
234
-
235
- if($action === 'add')
236
- $redirect = sprintf('?page=%s&message=added', esc_attr($_REQUEST['page']));
237
-
238
- wp_redirect($redirect);
239
- exit;
240
-
241
- }
242
-
243
- }
244
-
245
- // Load acf scripts
246
- acf_enqueue_scripts();
247
-
248
- // Actions
249
- add_action('acf/input/admin_head', 'acfe_options_edit_metabox');
250
-
251
- // Add columns support
252
- add_screen_option('layout_columns', array(
253
- 'max' => 2,
254
- 'default' => 2
255
- ));
256
-
257
- }
258
-
259
- /**
260
- * Options Edit: HTML
261
- *
262
- */
263
- add_filter('acfe/options/html/action=edit', 'acfe_options_html_edit');
264
- add_filter('acfe/options/html/action=add', 'acfe_options_html_edit');
265
- function acfe_options_html_edit(){
266
-
267
- acf_get_view(ACFE_PATH . '/includes/admin/views/html-options-edit.php');
268
-
269
- }
270
-
271
- /**
272
- * Options Edit: Metabox
273
- *
274
- */
275
- function acfe_options_edit_metabox(){
276
-
277
- $option = array(
278
- 'option_id' => 0,
279
- 'option_name' => '',
280
- 'option_value' => '',
281
- 'autoload' => 'no',
282
- );
283
-
284
- if(isset($_REQUEST['option']) && !empty($_REQUEST['option'])){
285
-
286
- $option_id = absint($_REQUEST['option']);
287
-
288
- global $wpdb;
289
-
290
- $get_option = $wpdb->get_row("SELECT * FROM {$wpdb->options} WHERE option_id = '$option_id'", 'ARRAY_A');
291
- if(!empty($get_option))
292
- $option = $get_option;
293
-
294
- }
295
-
296
- $field_group = array(
297
- 'ID' => 0,
298
- 'key' => 'group_acfe_options_edit',
299
- 'style' => 'default',
300
- 'label_placement' => 'left',
301
- 'instruction_placement' => 'label',
302
- 'fields' => array()
303
- );
304
-
305
- $fields = array();
306
-
307
- $fields[] = array(
308
- 'label' => __('Name'),
309
- 'key' => 'field_acfe_options_edit_name',
310
- 'name' => 'field_acfe_options_edit_name',
311
- 'type' => 'text',
312
- 'prefix' => 'acf',
313
- 'instructions' => '',
314
- 'required' => true,
315
- 'conditional_logic' => false,
316
- 'default_value' => '',
317
- 'placeholder' => '',
318
- 'prepend' => '',
319
- 'append' => '',
320
- 'maxlength' => '',
321
- 'value' => $option['option_name'],
322
- 'wrapper' => array(
323
- 'width' => '',
324
- 'class' => '',
325
- 'id' => '',
326
- ),
327
- );
328
-
329
- // Serialized || HTML
330
- if(is_serialized($option['option_value']) || $option['option_value'] != strip_tags($option['option_value'])){
331
-
332
- $type = 'serialized';
333
- $instructions = 'Use this <a href="https://duzun.me/playground/serialize" target="_blank">online tool</a> to unserialize/seriliaze data.';
334
-
335
- if($option['option_value'] != strip_tags($option['option_value'])){
336
-
337
- $type = 'HTML';
338
- $instructions = '';
339
-
340
- }
341
-
342
- $fields[] = array(
343
- 'label' => __('Value <code style="font-size:11px;float:right; line-height:1.2; margin-top:1px;">' . $type . '</code>'),
344
- 'key' => 'field_acfe_options_edit_value',
345
- 'name' => 'field_acfe_options_edit_value',
346
- 'type' => 'textarea',
347
- 'prefix' => 'acf',
348
- 'instructions' => $instructions,
349
- 'required' => false,
350
- 'conditional_logic' => false,
351
- 'default_value' => '',
352
- 'placeholder' => '',
353
- 'prepend' => '',
354
- 'append' => '',
355
- 'maxlength' => '',
356
- 'value' => $option['option_value'],
357
- 'class' => 'code',
358
- 'wrapper' => array(
359
- 'width' => '',
360
- 'class' => '',
361
- 'id' => '',
362
- ),
363
- );
364
-
365
- }
366
-
367
- // Serialized || HTML
368
- elseif(acfe_is_json($option['option_value'])){
369
-
370
- $type = 'json';
371
- $instructions = 'Use this <a href="http://solutions.weblite.ca/php2json/" target="_blank">online tool</a> to decode/encode json.';
372
-
373
- $fields[] = array(
374
- 'label' => __('Value <code style="font-size:11px;float:right; line-height:1.2; margin-top:1px;">' . $type . '</code>'),
375
- 'key' => 'field_acfe_options_edit_value',
376
- 'name' => 'field_acfe_options_edit_value',
377
- 'type' => 'textarea',
378
- 'prefix' => 'acf',
379
- 'instructions' => $instructions,
380
- 'required' => false,
381
- 'conditional_logic' => false,
382
- 'default_value' => '',
383
- 'placeholder' => '',
384
- 'prepend' => '',
385
- 'append' => '',
386
- 'maxlength' => '',
387
- 'value' => $option['option_value'],
388
- 'class' => 'code',
389
- 'wrapper' => array(
390
- 'width' => '',
391
- 'class' => '',
392
- 'id' => '',
393
- ),
394
- );
395
-
396
- }
397
-
398
- // String
399
- else{
400
-
401
- $type = '';
402
- if(!empty($option['option_value']))
403
- $type = '<code style="font-size:11px;float:right; line-height:1.2; margin-top:1px;">string</code>';
404
-
405
- $fields[] = array(
406
- 'label' => __('Value ' . $type),
407
- 'key' => 'field_acfe_options_edit_value',
408
- 'name' => 'field_acfe_options_edit_value',
409
- 'type' => 'textarea',
410
- 'prefix' => 'acf',
411
- 'instructions' => '',
412
- 'required' => false,
413
- 'conditional_logic' => false,
414
- 'default_value' => '',
415
- 'placeholder' => '',
416
- 'prepend' => '',
417
- 'append' => '',
418
- 'maxlength' => '',
419
- 'value' => $option['option_value'],
420
- 'wrapper' => array(
421
- 'width' => '',
422
- 'class' => '',
423
- 'id' => '',
424
- ),
425
- );
426
-
427
- }
428
-
429
- $fields[] = array(
430
- 'label' => __('Autoload'),
431
- 'key' => 'field_acfe_options_edit_autoload',
432
- 'name' => 'field_acfe_options_edit_autoload',
433
- 'type' => 'select',
434
- 'prefix' => 'acf',
435
- 'instructions' => '',
436
- 'required' => true,
437
- 'conditional_logic' => false,
438
- 'default_value' => '',
439
- 'placeholder' => '',
440
- 'prepend' => '',
441
- 'append' => '',
442
- 'maxlength' => '',
443
- 'value' => $option['autoload'],
444
- 'choices' => array(
445
- 'no' => __('No'),
446
- 'yes' => __('Yes'),
447
- ),
448
- 'wrapper' => array(
449
- 'width' => '',
450
- 'class' => '',
451
- 'id' => '',
452
- ),
453
- );
454
-
455
- $field_group['fields'] = $fields;
456
-
457
- $metabox_submit_title = __('Submit','acf');
458
- $metabox_main_title = __('Add Option');
459
-
460
- if(!empty($option['option_id'])){
461
-
462
- $metabox_submit_title = __('Edit','acf');
463
- $metabox_main_title = __('Edit Option');
464
-
465
- }
466
-
467
- // Submit Metabox
468
- add_meta_box('submitdiv', $metabox_submit_title, function($post, $args) use($option){
469
-
470
- $delete_nonce = wp_create_nonce('acfe_options_delete_option');
471
-
472
- ?>
473
- <div id="major-publishing-actions">
474
-
475
- <?php if(!empty($option['option_id'])){ ?>
476
-
477
- <div id="delete-action">
478
- <a class="submitdelete deletion" style="color:#a00;" href="<?php echo sprintf('?page=%s&action=%s&option=%s&_wpnonce=%s', esc_attr($_REQUEST['page']), 'delete', $option['option_id'], $delete_nonce); ?>"><?php _e('Delete'); ?></a>
479
- </div>
480
-
481
- <?php } ?>
482
-
483
- <div id="publishing-action">
484
- <span class="spinner"></span>
485
- <input type="submit" accesskey="p" value="<?php _e('Update'); ?>" class="button button-primary button-large" id="publish" name="publish">
486
- </div>
487
-
488
- <div class="clear"></div>
489
-
490
- </div>
491
- <?php
492
- }, 'acf_options_page', 'side', 'high');
493
-
494
- // Main Metabox
495
- add_meta_box('acf-group_acfe_options_edit', $metabox_main_title, function($post, $args){
496
-
497
- // extract args
498
- extract($args); // all variables from the add_meta_box function
499
- extract($args); // all variables from the args argument
500
-
501
- // vars
502
- $o = array(
503
- 'id' => $id,
504
- 'key' => $field_group['key'],
505
- 'style' => $field_group['style'],
506
- 'label' => $field_group['label_placement'],
507
- 'editLink' => '',
508
- 'editTitle' => __('Edit field group', 'acf'),
509
- 'visibility' => true
510
- );
511
-
512
- // load fields
513
- $fields = $field_group['fields'];
514
-
515
- // render
516
- acf_render_fields($fields, 'acfe-options-edit', 'div', $field_group['instruction_placement']);
517
-
518
- ?>
519
- <script type="text/javascript">
520
- if(typeof acf !== 'undefined'){
521
-
522
- acf.newPostbox(<?php echo json_encode($o); ?>);
523
-
524
- }
525
- </script>
526
- <?php
527
-
528
- }, 'acf_options_page', 'normal', 'high', array('field_group' => $field_group));
529
-
530
- }
531
-
532
- /**
533
- * Options Edit: Save
534
- *
535
- */
536
- add_action('acf/save_post', 'acfe_options_edit_save_post', 5);
537
- function acfe_options_edit_save_post($post_id){
538
-
539
- // Validate
540
- if($post_id !== 'acfe_options_edit')
541
- return;
542
-
543
- // Vars
544
- $option_name = wp_unslash($_POST['acf']['field_acfe_options_edit_name']);
545
- $option_value = wp_unslash($_POST['acf']['field_acfe_options_edit_value']);
546
- $autoload = $_POST['acf']['field_acfe_options_edit_autoload'];
547
-
548
- // Value serialized?
549
- $option_value = maybe_unserialize($option_value);
550
-
551
- // Update
552
- update_option($option_name, $option_value, $autoload);
553
-
554
- // Flush ACF
555
- $_POST['acf'] = array();
556
-
557
- }
558
-
559
- /**
560
- * Options Edit: Message
561
- *
562
- */
563
- add_action('acfe/options/load/message=updated', 'acfe_options_load_edit_message');
564
- function acfe_options_load_edit_message(){
565
-
566
- acf_add_admin_notice(__('Option has been updated'), 'success');
567
-
568
- }
569
-
570
- /**
571
- * Options Add: Message
572
- *
573
- */
574
- add_action('acfe/options/load/message=added', 'acfe_options_load_add_message');
575
- function acfe_options_load_add_message(){
576
-
577
- acf_add_admin_notice(__('Option has been added'), 'success');
578
-
579
  }
1
+ <?php
2
+
3
+ if(!defined('ABSPATH'))
4
+ exit;
5
+
6
+ // Check setting
7
+ if(!acf_get_setting('acfe/modules/options'))
8
+ return;
9
+
10
+ /**
11
+ * Options WP List Table
12
+ *
13
+ */
14
+ require_once(ACFE_PATH . 'includes/admin/options.class.php');
15
+
16
+ /**
17
+ * Options Menu
18
+ *
19
+ */
20
+ add_action('admin_menu', 'acfe_options_menu');
21
+ function acfe_options_menu(){
22
+
23
+ $hook = add_submenu_page(
24
+ 'options-general.php',
25
+ __('Options'),
26
+ __('Options'),
27
+ acf_get_setting('capability'),
28
+ 'acfe-options'
29
+ );
30
+
31
+ }
32
+
33
+ /**
34
+ * Options Screen
35
+ *
36
+ */
37
+ add_filter('set-screen-option', 'acfe_options_screen', 10, 3);
38
+ function acfe_options_screen($status, $option, $value){
39
+
40
+ return $value;
41
+
42
+ }
43
+
44
+ /**
45
+ * Options Enqueue
46
+ *
47
+ */
48
+ add_action('admin_print_scripts-settings_page_acfe-options', 'acfe_options_enqueue');
49
+ function acfe_options_enqueue(){
50
+
51
+ wp_enqueue_style('acf-input');
52
+ wp_enqueue_script('acf-input');
53
+ wp_enqueue_style('acf-extended', plugins_url('assets/acf-extended.css', ACFE_FILE), false, null);
54
+
55
+ }
56
+
57
+ /**
58
+ * Options Load
59
+ *
60
+ */
61
+ add_action('load-settings_page_acfe-options', 'acfe_options_load');
62
+ function acfe_options_load(){
63
+
64
+ // Messages
65
+ if(isset($_REQUEST['message']) && !empty($_REQUEST['message']))
66
+ do_action('acfe/options/load/message=' . $_REQUEST['message']);
67
+
68
+ // Default Action
69
+ $action = 'list';
70
+
71
+ // Request Action
72
+ if(isset($_REQUEST['action']) && !empty($_REQUEST['action']) && $_REQUEST['action'] != '-1')
73
+ $action = $_REQUEST['action'];
74
+
75
+ // Request Action2
76
+ elseif(isset($_REQUEST['action2']) && !empty($_REQUEST['action2']) && $_REQUEST['action2'] != '-1')
77
+ $action = $_REQUEST['action2'];
78
+
79
+ // Do Action: Specific
80
+ do_action('acfe/options/load/action=' . $action, $action);
81
+
82
+ // Do Action
83
+ do_action('acfe/options/load', $action);
84
+
85
+ }
86
+
87
+ /**
88
+ * Options HTML
89
+ *
90
+ */
91
+ add_action('settings_page_acfe-options', 'acfe_options_html');
92
+ function acfe_options_html(){
93
+
94
+ // Default Action
95
+ $action = 'list';
96
+
97
+ // Request Action
98
+ if(isset($_REQUEST['action']) && !empty($_REQUEST['action']) && $_REQUEST['action'] != '-1')
99
+ $action = $_REQUEST['action'];
100
+
101
+ // Do Action: Specific
102
+ do_action('acfe/options/html/action=' . $action, $action);
103
+
104
+ // Do Action
105
+ do_action('acfe/options/html', $action);
106
+
107
+ }
108
+
109
+ /**
110
+ * Options List: Load
111
+ *
112
+ */
113
+ add_action('acfe/options/load/action=list', 'acfe_options_load_list');
114
+ function acfe_options_load_list(){
115
+
116
+ add_screen_option('per_page', array(
117
+ 'label' => 'Options',
118
+ 'default' => 100,
119
+ 'option' => 'options_per_page'
120
+ ));
121
+
122
+ }
123
+
124
+ /**
125
+ * Options List: HTML
126
+ *
127
+ */
128
+ add_filter('acfe/options/html/action=list', 'acfe_options_html_list');
129
+ function acfe_options_html_list(){
130
+
131
+ acf_get_view(ACFE_PATH . '/includes/admin/views/html-options-list.php');
132
+
133
+ }
134
+
135
+ /**
136
+ * Options Delete: Load
137
+ *
138
+ */
139
+ add_action('acfe/options/load/action=delete', 'acfe_options_load_delete');
140
+ function acfe_options_load_delete(){
141
+
142
+ $nonce = esc_attr($_REQUEST['_wpnonce']);
143
+
144
+ if(!wp_verify_nonce($nonce, 'acfe_options_delete_option'))
145
+ wp_die('Cheatin’, huh?');
146
+
147
+ acfe_options_delete_option(absint($_GET['option']));
148
+
149
+ wp_redirect(sprintf('?page=%s&message=deleted', esc_attr($_REQUEST['page'])));
150
+ exit;
151
+
152
+ }
153
+
154
+ /**
155
+ * Options Delete: Message
156
+ *
157
+ */
158
+ add_action('acfe/options/load/message=deleted', 'acfe_options_load_delete_message');
159
+ function acfe_options_load_delete_message(){
160
+
161
+ acf_add_admin_notice(__('Option has been deleted'), 'success');
162
+
163
+ }
164
+
165
+ /**
166
+ * Options Bulk Delete: Load
167
+ *
168
+ */
169
+ add_action('acfe/options/load/action=bulk-delete', 'acfe_options_load_bulk_delete');
170
+ function acfe_options_load_bulk_delete(){
171
+
172
+ $nonce = esc_attr($_REQUEST['_wpnonce']);
173
+
174
+ if(!wp_verify_nonce($nonce, 'bulk-options'))
175
+ wp_die('Cheatin’, huh?');
176
+
177
+ $delete_ids = esc_sql($_REQUEST['bulk-delete']);
178
+
179
+ foreach($delete_ids as $id){
180
+
181
+ acfe_options_delete_option($id);
182
+
183
+ }
184
+
185
+ wp_redirect(sprintf('?page=%s&message=bulk-deleted', esc_attr($_REQUEST['page'])));
186
+ exit;
187
+
188
+ }
189
+
190
+ /**
191
+ * Options Bulk Delete: Message
192
+ *
193
+ */
194
+ add_action('acfe/options/load/message=bulk-deleted', 'acfe_options_load_bulk_delete_message');
195
+ function acfe_options_load_bulk_delete_message(){
196
+
197
+ acf_add_admin_notice(__('Options have been deleted'), 'success');
198
+
199
+ }
200
+
201
+ /**
202
+ * Options Delete: Function
203
+ *
204
+ */
205
+ function acfe_options_delete_option($id){
206
+
207
+ global $wpdb;
208
+
209
+ $wpdb->delete(
210
+ "{$wpdb->options}",
211
+ array('option_id' => $id),
212
+ array('%d')
213
+ );
214
+
215
+ }
216
+
217
+ /**
218
+ * Options Edit: Load
219
+ *
220
+ */
221
+ add_action('acfe/options/load/action=edit', 'acfe_options_load_edit');
222
+ add_action('acfe/options/load/action=add', 'acfe_options_load_edit');
223
+ function acfe_options_load_edit($action){
224
+
225
+ // Nonce
226
+ if(acf_verify_nonce('acfe-options-edit')){
227
+
228
+ // Save data
229
+ if(acf_validate_save_post(true)){
230
+
231
+ acf_save_post('acfe_options_edit');
232
+
233
+ $redirect = add_query_arg(array('message' => 'updated'));
234
+
235
+ if($action === 'add')
236
+ $redirect = sprintf('?page=%s&message=added', esc_attr($_REQUEST['page']));
237
+
238
+ wp_redirect($redirect);
239
+ exit;
240
+
241
+ }
242
+
243
+ }
244
+
245
+ // Load acf scripts
246
+ acf_enqueue_scripts();
247
+
248
+ // Actions
249
+ add_action('acf/input/admin_head', 'acfe_options_edit_metabox');
250
+
251
+ // Add columns support
252
+ add_screen_option('layout_columns', array(
253
+ 'max' => 2,
254
+ 'default' => 2
255
+ ));
256
+
257
+ }
258
+
259
+ /**
260
+ * Options Edit: HTML
261
+ *
262
+ */
263
+ add_filter('acfe/options/html/action=edit', 'acfe_options_html_edit');
264
+ add_filter('acfe/options/html/action=add', 'acfe_options_html_edit');
265
+ function acfe_options_html_edit(){
266
+
267
+ acf_get_view(ACFE_PATH . '/includes/admin/views/html-options-edit.php');
268
+
269
+ }
270
+
271
+ /**
272
+ * Options Edit: Metabox
273
+ *
274
+ */
275
+ function acfe_options_edit_metabox(){
276
+
277
+ $option = array(
278
+ 'option_id' => 0,
279
+ 'option_name' => '',
280
+ 'option_value' => '',
281
+ 'autoload' => 'no',
282
+ );
283
+
284
+ if(isset($_REQUEST['option']) && !empty($_REQUEST['option'])){
285
+
286
+ $option_id = absint($_REQUEST['option']);
287
+
288
+ global $wpdb;
289
+
290
+ $get_option = $wpdb->get_row("SELECT * FROM {$wpdb->options} WHERE option_id = '$option_id'", 'ARRAY_A');
291
+ if(!empty($get_option))
292
+ $option = $get_option;
293
+
294
+ }
295
+
296
+ $field_group = array(
297
+ 'ID' => 0,
298
+ 'key' => 'group_acfe_options_edit',
299
+ 'style' => 'default',
300
+ 'label_placement' => 'left',
301
+ 'instruction_placement' => 'label',
302
+ 'fields' => array()
303
+ );
304
+
305
+ $fields = array();
306
+
307
+ $fields[] = array(
308
+ 'label' => __('Name'),
309
+ 'key' => 'field_acfe_options_edit_name',
310
+ 'name' => 'field_acfe_options_edit_name',
311
+ 'type' => 'text',
312
+ 'prefix' => 'acf',
313
+ 'instructions' => '',
314
+ 'required' => true,
315
+ 'conditional_logic' => false,
316
+ 'default_value' => '',
317
+ 'placeholder' => '',
318
+ 'prepend' => '',
319
+ 'append' => '',
320
+ 'maxlength' => '',
321
+ 'value' => $option['option_name'],
322
+ 'wrapper' => array(
323
+ 'width' => '',
324
+ 'class' => '',
325
+ 'id' => '',
326
+ ),
327
+ );
328
+
329
+ // Serialized || HTML
330
+ if(is_serialized($option['option_value']) || $option['option_value'] != strip_tags($option['option_value'])){
331
+
332
+ $type = 'serialized';
333
+ $instructions = 'Use this <a href="https://duzun.me/playground/serialize" target="_blank">online tool</a> to unserialize/seriliaze data.';
334
+
335
+ if($option['option_value'] != strip_tags($option['option_value'])){
336
+
337
+ $type = 'HTML';
338
+ $instructions = '';
339
+
340
+ }
341
+
342
+ $fields[] = array(
343
+ 'label' => __('Value <code style="font-size:11px;float:right; line-height:1.2; margin-top:1px;">' . $type . '</code>'),
344
+ 'key' => 'field_acfe_options_edit_value',
345
+ 'name' => 'field_acfe_options_edit_value',
346
+ 'type' => 'textarea',
347
+ 'prefix' => 'acf',
348
+ 'instructions' => $instructions,
349
+ 'required' => false,
350
+ 'conditional_logic' => false,
351
+ 'default_value' => '',
352
+ 'placeholder' => '',
353
+ 'prepend' => '',
354
+ 'append' => '',
355
+ 'maxlength' => '',
356
+ 'value' => $option['option_value'],
357
+ 'class' => 'code',
358
+ 'wrapper' => array(
359
+ 'width' => '',
360
+ 'class' => '',
361
+ 'id' => '',
362
+ ),
363
+ );
364
+
365
+ }
366
+
367
+ // Serialized || HTML
368
+ elseif(acfe_is_json($option['option_value'])){
369
+
370
+ $type = 'json';
371
+ $instructions = 'Use this <a href="http://solutions.weblite.ca/php2json/" target="_blank">online tool</a> to decode/encode json.';
372
+
373
+ $fields[] = array(
374
+ 'label' => __('Value <code style="font-size:11px;float:right; line-height:1.2; margin-top:1px;">' . $type . '</code>'),
375
+ 'key' => 'field_acfe_options_edit_value',
376
+ 'name' => 'field_acfe_options_edit_value',
377
+ 'type' => 'textarea',
378
+ 'prefix' => 'acf',
379
+ 'instructions' => $instructions,
380
+ 'required' => false,
381
+ 'conditional_logic' => false,
382
+ 'default_value' => '',
383
+ 'placeholder' => '',
384
+ 'prepend' => '',
385
+ 'append' => '',
386
+ 'maxlength' => '',
387
+ 'value' => $option['option_value'],
388
+ 'class' => 'code',
389
+ 'wrapper' => array(
390
+ 'width' => '',
391
+ 'class' => '',
392
+ 'id' => '',
393
+ ),
394
+ );
395
+
396
+ }
397
+
398
+ // String
399
+ else{
400
+
401
+ $type = '';
402
+ if(!empty($option['option_value']))
403
+ $type = '<code style="font-size:11px;float:right; line-height:1.2; margin-top:1px;">string</code>';
404
+
405
+ $fields[] = array(
406
+ 'label' => __('Value ' . $type),
407
+ 'key' => 'field_acfe_options_edit_value',
408
+ 'name' => 'field_acfe_options_edit_value',
409
+ 'type' => 'textarea',
410
+ 'prefix' => 'acf',
411
+ 'instructions' => '',
412
+ 'required' => false,
413
+ 'conditional_logic' => false,
414
+ 'default_value' => '',
415
+ 'placeholder' => '',
416
+ 'prepend' => '',
417
+ 'append' => '',
418
+ 'maxlength' => '',
419
+ 'value' => $option['option_value'],
420
+ 'wrapper' => array(
421
+ 'width' => '',
422
+ 'class' => '',
423
+ 'id' => '',
424
+ ),
425
+ );
426
+
427
+ }
428
+
429
+ $fields[] = array(
430
+ 'label' => __('Autoload'),
431
+ 'key' => 'field_acfe_options_edit_autoload',
432
+ 'name' => 'field_acfe_options_edit_autoload',
433
+ 'type' => 'select',
434
+ 'prefix' => 'acf',
435
+ 'instructions' => '',
436
+ 'required' => true,
437
+ 'conditional_logic' => false,
438
+ 'default_value' => '',
439
+ 'placeholder' => '',
440
+ 'prepend' => '',
441
+ 'append' => '',
442
+ 'maxlength' => '',
443
+ 'value' => $option['autoload'],
444
+ 'choices' => array(
445
+ 'no' => __('No'),
446
+ 'yes' => __('Yes'),
447
+ ),
448
+ 'wrapper' => array(
449
+ 'width' => '',
450
+ 'class' => '',
451
+ 'id' => '',
452
+ ),
453
+ );
454
+
455
+ $field_group['fields'] = $fields;
456
+
457
+ $metabox_submit_title = __('Submit','acf');
458
+ $metabox_main_title = __('Add Option');
459
+
460
+ if(!empty($option['option_id'])){
461
+
462
+ $metabox_submit_title = __('Edit','acf');
463
+ $metabox_main_title = __('Edit Option');
464
+
465
+ }
466
+
467
+ // Submit Metabox
468
+ add_meta_box('submitdiv', $metabox_submit_title, function($post, $args) use($option){
469
+
470
+ $delete_nonce = wp_create_nonce('acfe_options_delete_option');
471
+
472
+ ?>
473
+ <div id="major-publishing-actions">
474
+
475
+ <?php if(!empty($option['option_id'])){ ?>
476
+
477
+ <div id="delete-action">
478
+ <a class="submitdelete deletion" style="color:#a00;" href="<?php echo sprintf('?page=%s&action=%s&option=%s&_wpnonce=%s', esc_attr($_REQUEST['page']), 'delete', $option['option_id'], $delete_nonce); ?>"><?php _e('Delete'); ?></a>
479
+ </div>
480
+
481
+ <?php } ?>
482
+
483
+ <div id="publishing-action">
484
+ <span class="spinner"></span>
485
+ <input type="submit" accesskey="p" value="<?php _e('Update'); ?>" class="button button-primary button-large" id="publish" name="publish">
486
+ </div>
487
+
488
+ <div class="clear"></div>
489
+
490
+ </div>
491
+ <?php
492
+ }, 'acf_options_page', 'side', 'high');
493
+
494
+ // Main Metabox
495
+ add_meta_box('acf-group_acfe_options_edit', $metabox_main_title, function($post, $args){
496
+
497
+ // extract args
498
+ extract($args); // all variables from the add_meta_box function
499
+ extract($args); // all variables from the args argument
500
+
501
+ // vars
502
+ $o = array(
503
+ 'id' => $id,
504
+ 'key' => $field_group['key'],
505
+ 'style' => $field_group['style'],
506
+ 'label' => $field_group['label_placement'],
507
+ 'editLink' => '',
508
+ 'editTitle' => __('Edit field group', 'acf'),
509
+ 'visibility' => true
510
+ );
511
+
512
+ // load fields
513
+ $fields = $field_group['fields'];
514
+
515
+ // render
516
+ acf_render_fields($fields, 'acfe-options-edit', 'div', $field_group['instruction_placement']);
517
+
518
+ ?>
519
+ <script type="text/javascript">
520
+ if(typeof acf !== 'undefined'){
521
+
522
+ acf.newPostbox(<?php echo json_encode($o); ?>);
523
+
524
+ }
525
+ </script>
526
+ <?php
527
+
528
+ }, 'acf_options_page', 'normal', 'high', array('field_group' => $field_group));
529
+
530
+ }
531
+
532
+ /**
533
+ * Options Edit: Save
534
+ *
535
+ */
536
+ add_action('acf/save_post', 'acfe_options_edit_save_post', 5);
537
+ function acfe_options_edit_save_post($post_id){
538
+
539
+ // Validate
540
+ if($post_id !== 'acfe_options_edit')
541
+ return;
542
+
543
+ // Vars
544
+ $option_name = wp_unslash($_POST['acf']['field_acfe_options_edit_name']);
545
+ $option_value = wp_unslash($_POST['acf']['field_acfe_options_edit_value']);
546
+ $autoload = $_POST['acf']['field_acfe_options_edit_autoload'];
547
+
548
+ // Value serialized?
549
+ $option_value = maybe_unserialize($option_value);
550
+
551
+ // Update
552
+ update_option($option_name, $option_value, $autoload);
553
+
554
+ // Flush ACF
555
+ $_POST['acf'] = array();
556
+
557
+ }
558
+
559
+ /**
560
+ * Options Edit: Message
561
+ *
562
+ */
563
+ add_action('acfe/options/load/message=updated', 'acfe_options_load_edit_message');
564
+ function acfe_options_load_edit_message(){
565
+
566
+ acf_add_admin_notice(__('Option has been updated'), 'success');
567
+
568
+ }
569
+
570
+ /**
571
+ * Options Add: Message
572
+ *
573
+ */
574
+ add_action('acfe/options/load/message=added', 'acfe_options_load_add_message');
575
+ function acfe_options_load_add_message(){
576
+
577
+ acf_add_admin_notice(__('Option has been added'), 'success');
578
+
579
  }
includes/admin/plugins.php CHANGED
@@ -1,42 +1,42 @@
1
- <?php
2
-
3
- if(!defined('ABSPATH'))
4
- exit;
5
-
6
- /**
7
- * Admin: Plugins Tab
8
- */
9
- add_filter('install_plugins_tabs', 'acfe_admin_plugins_tabs');
10
- function acfe_admin_plugins_tabs($tabs){
11
-
12
- $tabs['acf'] = __('Advanced Custom Fields');
13
-
14
- return $tabs;
15
-
16
- }
17
-
18
- /**
19
- * Admin: Plugins Args
20
- */
21
- add_filter('install_plugins_table_api_args_acf', 'acfe_admin_plugins_args');
22
- function acfe_admin_plugins_args($args){
23
-
24
- global $paged;
25
-
26
- $args['search'] = 'acf';
27
- $args['page'] = $paged;
28
- $args['per_page'] = 12;
29
-
30
- return $args;
31
-
32
- }
33
-
34
- /**
35
- * Admin: Plugins HTML
36
- */
37
- add_action('install_plugins_acf', 'acfe_admin_plugins_html');
38
- function acfe_admin_plugins_html(){
39
-
40
- display_plugins_table();
41
-
42
  }
1
+ <?php
2
+
3
+ if(!defined('ABSPATH'))
4
+ exit;
5
+
6
+ /**
7
+ * Admin: Plugins Tab
8
+ */
9
+ add_filter('install_plugins_tabs', 'acfe_admin_plugins_tabs');
10
+ function acfe_admin_plugins_tabs($tabs){
11
+
12
+ $tabs['acf'] = __('Advanced Custom Fields');
13
+
14
+ return $tabs;
15
+
16
+ }
17
+
18
+ /**
19
+ * Admin: Plugins Args
20
+ */
21
+ add_filter('install_plugins_table_api_args_acf', 'acfe_admin_plugins_args');
22
+ function acfe_admin_plugins_args($args){
23
+
24
+ global $paged;
25
+
26
+ $args['search'] = 'acf';
27
+ $args['page'] = $paged;
28
+ $args['per_page'] = 12;
29
+
30
+ return $args;
31
+
32
+ }
33
+
34
+ /**
35
+ * Admin: Plugins HTML
36
+ */
37
+ add_action('install_plugins_acf', 'acfe_admin_plugins_html');
38
+ function acfe_admin_plugins_html(){
39
+
40
+ display_plugins_table();
41
+
42
  }
includes/admin/tools/fg-local.php CHANGED
@@ -1,333 +1,333 @@
1
- <?php
2
-
3
- if(!defined('ABSPATH'))
4
- exit;
5
-
6
- if(!class_exists('ACFE_Admin_Tool_FG_Local_Export')):
7
-
8
- class ACFE_Admin_Tool_FG_Local extends ACF_Admin_Tool{
9
-
10
- function initialize(){
11
-
12
- // vars
13
- $this->title = __('Export Local Field Groups');
14
- $this->name = 'acfe-fg-local';
15
- $this->icon = 'dashicons-upload';
16
-
17
- }
18
-
19
- function load(){
20
-
21
- if($ids = acf_maybe_get_GET('acfe-fg-local-sync')){
22
-
23
- $ids = explode(' ', $ids);
24
-
25
- // Count number of imported field groups.
26
- $total = count($ids);
27
-
28
- // Generate text.
29
- $text = sprintf( _n( 'Imported 1 field group', 'Imported %s field groups', $total, 'acf' ), $total );
30
-
31
- // Add links to text.
32
- $links = array();
33
- foreach( $ids as $id ) {
34
- $links[] = '<a href="' . get_edit_post_link( $id ) . '">' . get_the_title( $id ) . '</a>';
35
- }
36
- $text .= ' ' . implode( ', ', $links );
37
-
38
- // Add notice
39
- acf_add_admin_notice($text, 'success');
40
-
41
- }
42
-
43
- if($this->is_active()){
44
-
45
- $array = $this->get_selected();
46
- $keys = $this->get_selected_keys();
47
- $action = $this->get_action();
48
-
49
- // validate
50
- if($array === false)
51
- return acf_add_admin_notice(__('No field group selected'), 'warning');
52
-
53
- // Json
54
- if($action === 'json'){
55
-
56
- // Slugs
57
- $slugs = implode('-', $keys);
58
-
59
- // Date
60
- $date = date('Y-m-d');
61
-
62
- // file
63
- $file_name = 'acfe-export-local-' . $slugs . '-' . $date . '.json';
64
-
65
- // headers
66
- header("Content-Description: File Transfer");
67
- header("Content-Disposition: attachment; filename={$file_name}");
68
- header("Content-Type: application/json; charset=utf-8");
69
-
70
- // return
71
- echo acf_json_encode($array);
72
- die;
73
-
74
- }
75
-
76
- // Sync
77
- elseif($action === 'sync'){
78
-
79
- // Force array
80
- $array = acf_array($array);
81
-
82
- // Remeber imported field group ids.
83
- $ids = array();
84
-
85
- // Loop over json
86
- foreach($array as $field_group){
87
-
88
- // Search database for existing field group.
89
- $post = acf_get_field_group_post($field_group['key']);
90
-
91
- if($post)
92
- $field_group['ID'] = $post->ID;
93
-
94
- // Import field group.
95
- $field_group = acf_import_field_group($field_group);
96
-
97
- // append message
98
- $ids[] = $field_group['ID'];
99
-
100
- }
101
-
102
- // url
103
- $url = add_query_arg('acfe-fg-local-sync', implode('+', $ids), acf_get_admin_tools_url());
104
-
105
- // redirect
106
- wp_redirect($url);
107
- exit;
108
-
109
- }
110
-
111
- }
112
-
113
- }
114
-
115
- function html(){
116
-
117
- if($this->is_active()){
118
-
119
- $array = $this->get_selected();
120
- $action = $this->get_action();
121
-
122
- ?>
123
- <div class="acf-postbox-columns">
124
- <div class="acf-postbox-main">
125
-
126
- <?php
127
- // prevent default translation and fake __() within string
128
- acf_update_setting('l10n_var_export', true);
129
-
130
- // vars
131
- $json = $array;
132
-
133
- $str_replace = array(
134
- " " => "\t",
135
- "'!!__(!!\'" => "__('",
136
- "!!\', !!\'" => "', '",
137
- "!!\')!!'" => "')",
138
- "array (" => "array("
139
- );
140
-
141
- $preg_replace = array(
142
- '/([\t\r\n]+?)array/' => 'array',
143
- '/[0-9]+ => array/' => 'array'
144
- );
145
-
146
-
147
- ?>
148
- <p><?php _e("The following code can be used to register a local version of the selected field group(s). A local field group can provide many benefits such as faster load times, version control & dynamic fields/settings. Simply copy and paste the following code to your theme's functions.php file or include it within an external file.", 'acf'); ?></p>
149
-
150
- <div id="acf-admin-tool-export">
151
-
152
- <textarea id="acf-export-textarea" readonly="true"><?php
153
-
154
- echo "if( function_exists('acf_add_local_field_group') ):" . "\r\n" . "\r\n";
155
-
156
- foreach( $json as $field_group ) {
157
-
158
- // code
159
- $code = var_export($field_group, true);
160
-
161
-
162
- // change double spaces to tabs
163
- $code = str_replace( array_keys($str_replace), array_values($str_replace), $code );
164
-
165
-
166
- // correctly formats "=> array("
167
- $code = preg_replace( array_keys($preg_replace), array_values($preg_replace), $code );
168
-
169
-
170
- // esc_textarea
171
- $code = esc_textarea( $code );
172
-
173
-
174
- // echo
175
- echo "acf_add_local_field_group({$code});" . "\r\n" . "\r\n";
176
-
177
- }
178
-
179
- echo "endif;";
180
-
181
- ?></textarea>
182
-
183
- </div>
184
-
185
- <p class="acf-submit">
186
- <a class="button" id="acf-export-copy"><?php _e( 'Copy to clipboard', 'acf' ); ?></a>
187
- </p>
188
- <script type="text/javascript">
189
- (function($){
190
-
191
- // vars
192
- var $a = $('#acf-export-copy');
193
- var $textarea = $('#acf-export-textarea');
194
-
195
-
196
- // remove $a if 'copy' is not supported
197
- if( !document.queryCommandSupported('copy') ) {
198
- return $a.remove();
199
- }
200
-
201
-
202
- // event
203
- $a.on('click', function( e ){
204
-
205
- // prevent default
206
- e.preventDefault();
207
-
208
-
209
- // select
210
- $textarea.get(0).select();
211
-
212
-
213
- // try
214
- try {
215
-
216
- // copy
217
- var copy = document.execCommand('copy');
218
- if( !copy ) return;
219
-
220
-
221
- // tooltip
222
- acf.newTooltip({
223
- text: "<?php _e('Copied', 'acf' ); ?>",
224
- timeout: 250,
225
- target: $(this),
226
- });
227
-
228
- } catch (err) {
229
-
230
- // do nothing
231
-
232
- }
233
-
234
- });
235
-
236
- })(jQuery);
237
- </script>
238
- </div>
239
- </div>
240
- <?php
241
-
242
- }
243
-
244
- }
245
-
246
- function get_selected(){
247
-
248
- // vars
249
- $selected = $this->get_selected_keys();
250
-
251
- if(!$selected)
252
- return false;
253
-
254
- // Return
255
- $array = array();
256
-
257
- // Enable filters
258
- acf_enable_filters();
259
-
260
- // Disable fitler: clone
261
- acf_disable_filter('clone');
262
-
263
- // Get desync PHP Field Groups
264
- $desync_php_field_groups = acfe_get_desync_php_field_groups();
265
-
266
- foreach($desync_php_field_groups as $file_key => $file_path){
267
-
268
- require_once($file_path);
269
-
270
- }
271
-
272
- foreach($selected as $field_group_key){
273
-
274
- $field_group = acf_get_field_group($field_group_key);
275
-
276
- // validate field group
277
- if(empty($field_group))
278
- continue;
279
-
280
- // load fields
281
- $field_group['fields'] = acf_get_fields($field_group);
282
-
283
- // prepare for export
284
- $field_group = acf_prepare_field_group_for_export($field_group);
285
-
286
- $array[] = $field_group;
287
-
288
- }
289
-
290
- // return
291
- return $array;
292
-
293
- }
294
-
295
- function get_selected_keys(){
296
-
297
- // check $_POST
298
- if($keys = acf_maybe_get_POST('keys'))
299
- return (array) $keys;
300
-
301
- // check $_GET
302
- if($keys = acf_maybe_get_GET('keys')){
303
-
304
- $keys = str_replace(' ', '+', $keys);
305
- return explode('+', $keys);
306
-
307
- }
308
-
309
- // return
310
- return false;
311
-
312
- }
313
-
314
- function get_action(){
315
-
316
- // check $_POST
317
- if($action = acf_maybe_get_POST('action'))
318
- return $action;
319
-
320
- // check $_GET
321
- if($action = acf_maybe_get_GET('action'))
322
- return $action;
323
-
324
- // return
325
- return 'json';
326
-
327
- }
328
-
329
- }
330
-
331
- acf_register_admin_tool('ACFE_Admin_Tool_FG_Local');
332
-
333
  endif;
1
+ <?php
2
+
3
+ if(!defined('ABSPATH'))
4
+ exit;
5
+
6
+ if(!class_exists('ACFE_Admin_Tool_FG_Local_Export')):
7
+
8
+ class ACFE_Admin_Tool_FG_Local extends ACF_Admin_Tool{
9
+
10
+ function initialize(){
11
+
12
+ // vars
13
+ $this->title = __('Export Local Field Groups');
14
+ $this->name = 'acfe-fg-local';
15
+ $this->icon = 'dashicons-upload';
16
+
17
+ }
18
+
19
+ function load(){
20
+
21
+ if($ids = acf_maybe_get_GET('acfe-fg-local-sync')){
22
+
23
+ $ids = explode(' ', $ids);
24
+
25
+ // Count number of imported field groups.
26
+ $total = count($ids);
27
+
28
+ // Generate text.
29
+ $text = sprintf( _n( 'Imported 1 field group', 'Imported %s field groups', $total, 'acf' ), $total );
30
+
31
+ // Add links to text.
32
+ $links = array();
33
+ foreach( $ids as $id ) {
34
+ $links[] = '<a href="' . get_edit_post_link( $id ) . '">' . get_the_title( $id ) . '</a>';
35
+ }
36
+ $text .= ' ' . implode( ', ', $links );
37
+
38
+ // Add notice
39
+ acf_add_admin_notice($text, 'success');
40
+
41
+ }
42
+
43
+ if($this->is_active()){
44
+
45
+ $array = $this->get_selected();
46
+ $keys = $this->get_selected_keys();
47
+ $action = $this->get_action();
48
+
49
+ // validate
50
+ if($array === false)
51
+ return acf_add_admin_notice(__('No field group selected'), 'warning');
52
+
53
+ // Json
54
+ if($action === 'json'){
55
+
56
+ // Slugs
57
+ $slugs = implode('-', $keys);
58
+
59
+ // Date
60
+ $date = date('Y-m-d');
61
+
62
+ // file
63
+ $file_name = 'acfe-export-local-' . $slugs . '-' . $date . '.json';
64
+
65
+ // headers
66
+ header("Content-Description: File Transfer");
67
+ header("Content-Disposition: attachment; filename={$file_name}");
68
+ header("Content-Type: application/json; charset=utf-8");
69
+
70
+ // return
71
+ echo acf_json_encode($array);
72
+ die;
73
+
74
+ }
75
+
76
+ // Sync
77
+ elseif($action === 'sync'){
78
+
79
+ // Force array
80
+ $array = acf_array($array);
81
+
82
+ // Remeber imported field group ids.
83
+ $ids = array();
84
+
85
+ // Loop over json
86
+ foreach($array as $field_group){
87
+
88
+ // Search database for existing field group.
89
+ $post = acf_get_field_group_post($field_group['key']);
90
+
91
+ if($post)
92
+ $field_group['ID'] = $post->ID;
93
+
94
+ // Import field group.
95
+ $field_group = acf_import_field_group($field_group);
96
+
97
+ // append message
98
+ $ids[] = $field_group['ID'];
99
+
100
+ }
101
+
102
+ // url
103
+ $url = add_query_arg('acfe-fg-local-sync', implode('+', $ids), acf_get_admin_tools_url());
104
+
105
+ // redirect
106
+ wp_redirect($url);
107
+ exit;
108
+
109
+ }
110
+
111
+ }
112
+
113
+ }
114
+
115
+ function html(){
116
+
117
+ if($this->is_active()){
118
+
119
+ $array = $this->get_selected();
120
+ $action = $this->get_action();
121
+
122
+ ?>
123
+ <div class="acf-postbox-columns">
124
+ <div class="acf-postbox-main">
125
+
126
+ <?php
127
+ // prevent default translation and fake __() within string
128
+ acf_update_setting('l10n_var_export', true);
129
+
130
+ // vars
131
+ $json = $array;
132
+
133
+ $str_replace = array(
134
+ " " => "\t",
135
+ "'!!__(!!\'" => "__('",
136
+ "!!\', !!\'" => "', '",
137
+ "!!\')!!'" => "')",
138
+ "array (" => "array("
139
+ );
140
+
141
+ $preg_replace = array(
142
+ '/([\t\r\n]+?)array/' => 'array',
143
+ '/[0-9]+ => array/' => 'array'
144
+ );
145
+
146
+
147
+ ?>
148
+ <p><?php _e("The following code can be used to register a local version of the selected field group(s). A local field group can provide many benefits such as faster load times, version control & dynamic fields/settings. Simply copy and paste the following code to your theme's functions.php file or include it within an external file.", 'acf'); ?></p>
149
+
150
+ <div id="acf-admin-tool-export">
151
+
152
+ <textarea id="acf-export-textarea" readonly="true"><?php
153
+
154
+ echo "if( function_exists('acf_add_local_field_group') ):" . "\r\n" . "\r\n";
155
+
156
+ foreach( $json as $field_group ) {
157
+
158
+ // code
159
+ $code = var_export($field_group, true);
160
+
161
+
162
+ // change double spaces to tabs
163
+ $code = str_replace( array_keys($str_replace), array_values($str_replace), $code );
164
+
165
+
166
+ // correctly formats "=> array("
167
+ $code = preg_replace( array_keys($preg_replace), array_values($preg_replace), $code );
168
+
169
+
170
+ // esc_textarea
171
+ $code = esc_textarea( $code );
172
+
173
+
174
+ // echo
175
+ echo "acf_add_local_field_group({$code});" . "\r\n" . "\r\n";
176
+
177
+ }
178
+
179
+ echo "endif;";
180
+
181
+ ?></textarea>
182
+
183
+ </div>
184
+
185
+ <p class="acf-submit">
186
+ <a class="button" id="acf-export-copy"><?php _e( 'Copy to clipboard', 'acf' ); ?></a>
187
+ </p>
188
+ <script type="text/javascript">
189
+ (function($){
190
+
191
+ // vars
192
+ var $a = $('#acf-export-copy');
193
+ var $textarea = $('#acf-export-textarea');
194
+
195
+
196
+ // remove $a if 'copy' is not supported
197
+ if( !document.queryCommandSupported('copy') ) {
198
+ return $a.remove();
199
+ }
200
+
201
+
202
+ // event
203
+ $a.on('click', function( e ){
204
+
205
+ // prevent default
206
+ e.preventDefault();
207
+
208
+
209
+ // select
210
+ $textarea.get(0).select();
211
+
212
+
213
+ // try
214
+ try {
215
+
216
+ // copy
217
+ var copy = document.execCommand('copy');
218
+ if( !copy ) return;
219
+
220
+
221
+ // tooltip
222
+ acf.newTooltip({
223
+ text: "<?php _e('Copied', 'acf' ); ?>",
224
+ timeout: 250,
225
+ target: $(this),
226
+ });
227
+
228
+ } catch (err) {
229
+
230
+ // do nothing
231
+
232
+ }
233
+
234
+ });
235
+
236
+ })(jQuery);
237
+ </script>
238
+ </div>
239
+ </div>
240
+ <?php
241
+
242
+ }
243
+
244
+ }
245
+
246
+ function get_selected(){
247
+
248
+ // vars
249
+ $selected = $this->get_selected_keys();
250
+
251
+ if(!$selected)
252
+ return false;
253
+
254
+ // Return
255
+ $array = array();
256
+
257
+ // Enable filters
258
+ acf_enable_filters();
259
+
260
+ // Disable fitler: clone
261
+ acf_disable_filter('clone');
262
+
263
+ // Get desync PHP Field Groups
264
+ $desync_php_field_groups = acfe_get_desync_php_field_groups();
265
+
266
+ foreach($desync_php_field_groups as $file_key => $file_path){
267
+
268
+ require_once($file_path);
269
+
270
+ }
271
+
272
+ foreach($selected as $field_group_key){
273
+
274
+ $field_group = acf_get_field_group($field_group_key);
275
+
276
+ // validate field group
277
+ if(empty($field_group))
278
+ continue;
279
+
280
+ // load fields
281
+ $field_group['fields'] = acf_get_fields($field_group);
282
+
283
+ // prepare for export
284
+ $field_group = acf_prepare_field_group_for_export($field_group);
285
+
286
+ $array[] = $field_group;
287
+
288
+ }
289
+
290
+ // return
291
+ return $array;
292
+
293
+ }
294
+
295
+ function get_selected_keys(){
296
+
297
+ // check $_POST
298
+ if($keys = acf_maybe_get_POST('keys'))
299
+ return (array) $keys;
300
+
301
+ // check $_GET
302
+ if($keys = acf_maybe_get_GET('keys')){
303
+
304
+ $keys = str_replace(' ', '+', $keys);
305
+ return explode('+', $keys);
306
+
307
+ }
308
+
309
+ // return
310
+ return false;
311
+
312
+ }
313
+
314
+ function get_action(){
315
+
316
+ // check $_POST
317
+ if($action = acf_maybe_get_POST('action'))
318
+ return $action;
319
+
320
+ // check $_GET
321
+ if($action = acf_maybe_get_GET('action'))
322
+ return $action;
323
+
324
+ // return
325
+ return 'json';
326
+
327
+ }
328
+
329
+ }
330
+
331
+ acf_register_admin_tool('ACFE_Admin_Tool_FG_Local');
332
+
333
  endif;
includes/admin/views/html-options-edit.php CHANGED
@@ -1,61 +1,61 @@
1
- <div class="wrap acf-settings-wrap">
2
-
3
- <?php
4
- $title = __('Edit Option');
5
- if($_REQUEST['action'] === 'add')
6
- $title = __('Add Option');
7
- ?>
8
- <h1 class="wp-heading-inline"><?php echo $title; ?></h1>
9
-
10
- <hr class="wp-header-end" />
11
-
12
- <form id="post" method="post" name="post">
13
-
14
- <?php
15
-
16
- // render post data
17
- acf_form_data(array(
18
- 'screen' => 'acfe-options-edit',
19
- 'post_id' => 'acfe_options_edit',
20
- ));
21
-
22
- wp_nonce_field('meta-box-order', 'meta-box-order-nonce', false);
23
- wp_nonce_field('closedpostboxes', 'closedpostboxesnonce', false);
24
-
25
- ?>
26
-
27
- <div id="poststuff">
28
-
29
- <div id="post-body" class="metabox-holder columns-<?php echo 1 == get_current_screen()->get_columns() ? '1' : '2'; ?>">
30
-
31
- <!--
32
- <div id="post-body-content">
33
- <div id="titlediv">
34
- <div id="titlewrap">
35
- <input type="text" name="post_title" size="30" value="Post 4" id="title" spellcheck="true" autocomplete="off" />
36
- </div>
37
- </div>
38
- </div>
39
- -->
40
-
41
- <div id="postbox-container-1" class="postbox-container">
42
-
43
- <?php do_meta_boxes('acf_options_page', 'side', null); ?>
44
-
45
- </div>
46
-
47
- <div id="postbox-container-2" class="postbox-container">
48
-
49
- <?php do_meta_boxes('acf_options_page', 'normal', null); ?>
50
-
51
- </div>
52
-
53
- </div>
54
-
55
- <br class="clear" />
56
-
57
- </div>
58
-
59
- </form>
60
-
61
  </div>
1
+ <div class="wrap acf-settings-wrap">
2
+
3
+ <?php
4
+ $title = __('Edit Option');
5
+ if($_REQUEST['action'] === 'add')
6
+ $title = __('Add Option');
7
+ ?>
8
+ <h1 class="wp-heading-inline"><?php echo $title; ?></h1>
9
+
10
+ <hr class="wp-header-end" />
11
+
12
+ <form id="post" method="post" name="post">
13
+
14
+ <?php
15
+
16
+ // render post data
17
+ acf_form_data(array(
18
+ 'screen' => 'acfe-options-edit',
19
+ 'post_id' => 'acfe_options_edit',
20
+ ));
21
+
22
+ wp_nonce_field('meta-box-order', 'meta-box-order-nonce', false);
23
+ wp_nonce_field('closedpostboxes', 'closedpostboxesnonce', false);
24
+
25
+ ?>
26
+
27
+ <div id="poststuff">
28
+
29
+ <div id="post-body" class="metabox-holder columns-<?php echo 1 == get_current_screen()->get_columns() ? '1' : '2'; ?>">
30
+
31
+ <!--
32
+ <div id="post-body-content">
33
+ <div id="titlediv">
34
+ <div id="titlewrap">
35
+ <input type="text" name="post_title" size="30" value="Post 4" id="title" spellcheck="true" autocomplete="off" />
36
+ </div>
37
+ </div>
38
+ </div>
39
+ -->
40
+
41
+ <div id="postbox-container-1" class="postbox-container">
42
+
43
+ <?php do_meta_boxes('acf_options_page', 'side', null); ?>
44
+
45
+ </div>
46
+
47
+ <div id="postbox-container-2" class="postbox-container">
48
+
49
+ <?php do_meta_boxes('acf_options_page', 'normal', null); ?>
50
+
51
+ </div>
52
+
53
+ </div>
54
+
55
+ <br class="clear" />
56
+
57
+ </div>
58
+
59
+ </form>
60
+
61
  </div>
includes/admin/views/html-options-list.php CHANGED
@@ -1,38 +1,38 @@
1
- <div class="wrap" id="acfe-admin-options">
2
-
3
- <h1 class="wp-heading-inline"><?php _e('Options'); ?></h1>
4
- <a href="<?php echo sprintf('?page=%s&action=add', esc_attr($_REQUEST['page'])); ?>" class="page-title-action"><?php _e('Add New'); ?></a>
5
-
6
- <hr class="wp-header-end" />
7
-
8
- <div id="poststuff">
9
-
10
- <div id="post-body" class="metabox-holder">
11
- <div id="post-body-content">
12
- <div class="meta-box-sortables ui-sortable">
13
- <form method="post">
14
-
15
- <?php
16
-
17
- // WP List
18
- $acfe_options_list = new ACFE_Admin_Options_List();
19
-
20
- // Prepare items
21
- $acfe_options_list->prepare_items();
22
-
23
- $acfe_options_list->search_box('Search', 'search');
24
-
25
- $acfe_options_list->display();
26
-
27
- ?>
28
-
29
- </form>
30
- </div>
31
- </div>
32
- </div>
33
-
34
- <br class="clear" />
35
-
36
- </div>
37
-
38
  </div>
1
+ <div class="wrap" id="acfe-admin-options">
2
+
3
+ <h1 class="wp-heading-inline"><?php _e('Options'); ?></h1>
4
+ <a href="<?php echo sprintf('?page=%s&action=add', esc_attr($_REQUEST['page'])); ?>" class="page-title-action"><?php _e('Add New'); ?></a>
5
+
6
+ <hr class="wp-header-end" />
7
+
8
+ <div id="poststuff">
9
+
10
+ <div id="post-body" class="metabox-holder">
11
+ <div id="post-body-content">
12
+ <div class="meta-box-sortables ui-sortable">
13
+ <form method="post">
14
+
15
+ <?php
16
+
17
+ // WP List
18
+ $acfe_options_list = new ACFE_Admin_Options_List();
19
+
20
+ // Prepare items
21
+ $acfe_options_list->prepare_items();
22
+
23
+ $acfe_options_list->search_box('Search', 'search');
24
+
25
+ $acfe_options_list->display();
26
+
27
+ ?>
28
+
29
+ </form>
30
+ </div>
31
+ </div>
32
+ </div>
33
+
34
+ <br class="clear" />
35
+
36
+ </div>
37
+
38
  </div>
includes/core/enqueue.php CHANGED
@@ -3,95 +3,108 @@
3
  if(!defined('ABSPATH'))
4
  exit;
5
 
6
- /**
7
- * Admin: Everywhere
8
- */
9
- add_action('admin_enqueue_scripts', 'acfe_enqueue_admin_scripts');
10
- function acfe_enqueue_admin_scripts(){
 
11
 
12
- // Enqueue ACF input
13
- wp_enqueue_style('acf-input');
14
- wp_enqueue_script('acf-input');
 
 
 
 
 
 
 
15
 
16
- // ACF Extended
17
- wp_enqueue_script('acf-extended', acfe_get_url('assets/acf-extended.js'), array('jquery'), ACFE_VERSION);
18
- wp_enqueue_style('acf-extended', acfe_get_url('assets/acf-extended.css'), false, ACFE_VERSION);
19
- wp_enqueue_style('acf-extended-admin', acfe_get_url('assets/acf-extended-admin.css'), false, ACFE_VERSION);
20
 
21
- // ACF Extended: UI Enhancements
22
- if(acf_get_setting('acfe/modules/ui')){
23
 
24
- wp_enqueue_style('acf-extended-ui', acfe_get_url('assets/acf-extended-ui.css'), false, ACFE_VERSION);
 
 
 
 
 
25
 
26
  }
27
-
28
- // ACF Extended: Field Groups only
29
- if(acf_is_screen(array('edit-acf-field-group', 'acf-field-group'))){
 
 
 
 
 
 
 
 
 
 
 
 
 
30
 
31
- wp_enqueue_script('acf-extended-fg', acfe_get_url('assets/acf-extended-fg.js'), array('jquery'), ACFE_VERSION);
32
- wp_enqueue_style('acf-extended-fg', acfe_get_url('assets/acf-extended-fg.css'), false, ACFE_VERSION);
 
 
 
 
 
 
 
33
 
 
 
 
 
34
  }
35
 
36
- }
37
-
38
- /**
39
- * Admin + Front: ACF Loaded
40
- */
41
- add_action('acf/enqueue_scripts', 'acfe_enqueue_scripts');
42
- function acfe_enqueue_scripts(){
43
 
44
- // ACF Extended
45
- wp_enqueue_script('acf-extended', acfe_get_url('assets/acf-extended.js'), array('jquery'), ACFE_VERSION);
46
- wp_enqueue_style('acf-extended', acfe_get_url('assets/acf-extended.css'), false, ACFE_VERSION);
47
 
48
- // ACF Extended: Fields
49
- wp_enqueue_script('acf-extended-fields', acfe_get_url('assets/acf-extended-fields.js'), array('jquery'), ACFE_VERSION);
50
 
51
- // Front only
52
- if(!is_admin()){
 
 
53
 
54
- wp_enqueue_script('acf-extended-form', acfe_get_url('assets/acf-extended-form.js'), array('jquery'), ACFE_VERSION);
 
 
 
55
 
 
 
 
 
 
 
56
  }
57
 
58
  }
59
 
60
- /**
61
- * Admin: ACF is loaded
62
- */
63
- add_action('acf/input/admin_enqueue_scripts', 'acfe_enqueue_admin_input_scripts');
64
- function acfe_enqueue_admin_input_scripts(){
65
-
66
- // ACF Extended: Modal
67
- wp_enqueue_style('acf-extended-modal', acfe_get_url('assets/acf-extended-modal.css'), false, ACFE_VERSION);
68
-
69
- // Do not enqueue on ACF Field Groups views
70
- if(acf_is_screen(array('edit-acf-field-group', 'acf-field-group')))
71
- return;
72
-
73
- // ACF Extended: Repeater
74
- wp_enqueue_style('acf-extended-repeater', acfe_get_url('assets/acf-extended-repeater.css'), false, ACFE_VERSION);
75
- wp_enqueue_script('acf-extended-repeater', acfe_get_url('assets/acf-extended-repeater.js'), array('jquery'), ACFE_VERSION);
76
-
77
- // ACF Extended: Flexible Content
78
- wp_enqueue_style('acf-extended-fc', acfe_get_url('assets/acf-extended-fc.css'), false, ACFE_VERSION);
79
- wp_enqueue_script('acf-extended-fc', acfe_get_url('assets/acf-extended-fc.js'), array('jquery'), ACFE_VERSION);
80
-
81
- // ACF Extended: Flexible Content Control
82
- wp_enqueue_style('acf-extended-fc-control', acfe_get_url('assets/acf-extended-fc-control.css'), false, ACFE_VERSION);
83
- wp_enqueue_script('acf-extended-fc-control', acfe_get_url('assets/acf-extended-fc-control.js'), array('jquery'), ACFE_VERSION);
84
-
85
- // ACF Extended: Flexible Content Modal Select
86
- wp_enqueue_style('acf-extended-fc-modal-select', acfe_get_url('assets/acf-extended-fc-modal-select.css'), false, ACFE_VERSION);
87
- wp_enqueue_script('acf-extended-fc-modal-select', acfe_get_url('assets/acf-extended-fc-modal-select.js'), array('jquery'), ACFE_VERSION);
88
-
89
- // ACF Extended: Flexible Content Modal Edit
90
- wp_enqueue_style('acf-extended-fc-modal-edit', acfe_get_url('assets/acf-extended-fc-modal-edit.css'), false, ACFE_VERSION);
91
- wp_enqueue_script('acf-extended-fc-modal-edit', acfe_get_url('assets/acf-extended-fc-modal-edit.js'), array('jquery'), ACFE_VERSION);
92
-
93
- acf_localize_text(array(
94
- 'Close' => __('Close', 'acf'),
95
- ));
96
-
97
- }
3
  if(!defined('ABSPATH'))
4
  exit;
5
 
6
+ if(!class_exists('acfe_enqueue')):
7
+
8
+ class acfe_enqueue{
9
+
10
+ var $suffix = '';
11
+ var $version = '';
12
 
13
+ function __construct(){
14
+
15
+ // Vars
16
+ $this->suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
17
+ $this->version = ACFE_VERSION;
18
+
19
+ // Hooks
20
+ add_action('admin_enqueue_scripts', array($this, 'admin_enqueue'));
21
+ add_action('acf/input/admin_enqueue_scripts', array($this, 'acf_enqueue'));
22
+ }
23
 
24
+ /**
25
+ * Admin Enqueue
26
+ */
27
+ function admin_enqueue(){
28
 
29
+ // ACF Extended: Admin
30
+ wp_enqueue_style('acf-extended-admin', acfe_get_url('assets/acf-extended-admin' . $this->suffix . '.css'), false, $this->version);
31
 
32
+ // ACF Extended: UI
33
+ if(acf_get_setting('acfe/modules/ui') && $this->is_screen_ui()){
34
+
35
+ wp_enqueue_style('acf-extended-ui', acfe_get_url('assets/acf-extended-ui' . $this->suffix . '.css'), false, $this->version);
36
+
37
+ }
38
 
39
  }
40
+
41
+ /**
42
+ * ACF (Front + Back) Enqueue
43
+ */
44
+ function acf_enqueue(){
45
+
46
+ // ACF Extended
47
+ wp_enqueue_style('acf-extended', acfe_get_url('assets/acf-extended' . $this->suffix . '.css'), false, $this->version);
48
+ wp_enqueue_script('acf-extended', acfe_get_url('assets/acf-extended' . $this->suffix . '.js'), array('jquery'), $this->version);
49
+
50
+ // ACF Extended: Admin
51
+ if($this->is_screen_admin()){
52
+
53
+ wp_enqueue_script('acf-extended-admin', acfe_get_url('assets/acf-extended-admin' . $this->suffix . '.js'), array('jquery'), $this->version);
54
+
55
+ }
56
 
57
+ acf_localize_data(array(
58
+ 'is_admin' => is_admin()
59
+ ));
60
+
61
+ acf_localize_text(array(
62
+ 'Close' => __('Close', 'acf'),
63
+ ));
64
+
65
+ }
66
 
67
+ function is_screen_admin(){
68
+
69
+ return acf_is_screen(array('edit-acf-field-group', 'acf-field-group'));
70
+
71
  }
72
 
73
+ function is_screen_ui(){
74
+
75
+ return $this->is_screen(array('edit-tags', 'term', 'profile', 'user-edit', 'user', 'options-general', 'options-writing', 'options-reading', 'options-discussion', 'options-media', 'options-permalink'));
76
+
77
+ }
78
+
79
+ function is_screen($id = ''){
80
 
81
+ // bail early if not defined
82
+ if(!function_exists('get_current_screen'))
83
+ return false;
84
 
85
+ // vars
86
+ $current_screen = get_current_screen();
87
 
88
+ // no screen
89
+ if(!$current_screen){
90
+
91
+ return false;
92
 
93
+ // array
94
+ }elseif(is_array($id)){
95
+
96
+ return in_array($current_screen->base, $id);
97
 
98
+ // string
99
+ }else{
100
+
101
+ return ($id === $current_screen->base);
102
+
103
+ }
104
  }
105
 
106
  }
107
 
108
+ new acfe_enqueue();
109
+
110
+ endif;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/field-groups/field-group.php CHANGED
@@ -168,7 +168,7 @@ class ACFE_Field_Group{
168
  'label' => __('Custom meta data'),
169
  'name' => 'acfe_meta',
170
  'key' => 'acfe_meta',
171
- 'instructions' => __('Add custom meta data to the field group. Can be retrived using <code>acf_get_field_group()</code>'),
172
  'prefix' => 'acf_field_group',
173
  'type' => 'repeater',
174
  'button_label' => __('+ Meta'),
168
  'label' => __('Custom meta data'),
169
  'name' => 'acfe_meta',
170
  'key' => 'acfe_meta',
171
+ 'instructions' => __('Add custom meta data to the field group.'),
172
  'prefix' => 'acf_field_group',
173
  'type' => 'repeater',
174
  'button_label' => __('+ Meta'),
includes/fields-settings/permissions.php CHANGED
@@ -1,55 +1,55 @@
1
- <?php
2
-
3
- if(!defined('ABSPATH'))
4
- exit;
5
-
6
- add_action('acf/render_field_settings', 'acfe_permissions_settings', 999);
7
- function acfe_permissions_settings($field){
8
-
9
- // Settings
10
- acf_render_field_setting($field, array(
11
- 'label' => __('Permissions'),
12
- 'name' => 'acfe_permissions',
13
- 'key' => 'acfe_permissions',
14
- 'instructions' => __('Select user roles that are allowed to view and edit this field. If nothing is selected, then this field will be available to everyone.'),
15
- 'type' => 'checkbox',
16
- 'required' => false,
17
- 'default_value' => false,
18
- 'choices' => acfe_get_roles(),
19
- 'layout' => 'horizontal'
20
- ), true);
21
-
22
- }
23
-
24
- add_filter('acf/prepare_field', 'acfe_roles_prepare_field');
25
- function acfe_roles_prepare_field($field){
26
-
27
- if(!isset($field['acfe_permissions']) || empty($field['acfe_permissions']))
28
- return $field;
29
-
30
- $current_user_roles = acfe_get_current_user_roles();
31
- $render_field = false;
32
-
33
- foreach($current_user_roles as $current_user_role){
34
-
35
- foreach($field['acfe_permissions'] as $field_role){
36
-
37
- if($current_user_role !== $field_role)
38
- continue;
39
-
40
- $render_field = true;
41
- break;
42
-
43
- }
44
-
45
- if($render_field)
46
- break;
47
-
48
- }
49
-
50
- if(!$render_field)
51
- return false;
52
-
53
- return $field;
54
-
55
  }
1
+ <?php
2
+
3
+ if(!defined('ABSPATH'))
4
+ exit;
5
+
6
+ add_action('acf/render_field_settings', 'acfe_permissions_settings', 999);
7
+ function acfe_permissions_settings($field){
8
+
9
+ // Settings
10
+ acf_render_field_setting($field, array(
11
+ 'label' => __('Permissions'),
12
+ 'name' => 'acfe_permissions',
13
+ 'key' => 'acfe_permissions',
14
+ 'instructions' => __('Select user roles that are allowed to view and edit this field. If nothing is selected, then this field will be available to everyone.'),
15
+ 'type' => 'checkbox',
16
+ 'required' => false,
17
+ 'default_value' => false,
18
+ 'choices' => acfe_get_roles(),
19
+ 'layout' => 'horizontal'
20
+ ), true);
21
+
22
+ }
23
+
24
+ add_filter('acf/prepare_field', 'acfe_roles_prepare_field');
25
+ function acfe_roles_prepare_field($field){
26
+
27
+ if(!isset($field['acfe_permissions']) || empty($field['acfe_permissions']))
28
+ return $field;
29
+
30
+ $current_user_roles = acfe_get_current_user_roles();
31
+ $render_field = false;
32
+
33
+ foreach($current_user_roles as $current_user_role){
34
+
35
+ foreach($field['acfe_permissions'] as $field_role){
36
+
37
+ if($current_user_role !== $field_role)
38
+ continue;
39
+
40
+ $render_field = true;
41
+ break;
42
+
43
+ }
44
+
45
+ if($render_field)
46
+ break;
47
+
48
+ }
49
+
50
+ if(!$render_field)
51
+ return false;
52
+
53
+ return $field;
54
+
55
  }
includes/fields/field-button.php CHANGED
@@ -1,240 +1,240 @@
1
- <?php
2
-
3
- if(!defined('ABSPATH'))
4
- exit;
5
-
6
- if(!class_exists('acfe_field_button')):
7
-
8
- class acfe_field_button extends acf_field{
9
-
10
- function __construct(){
11
-
12
- $this->name = 'acfe_button';
13
- $this->label = __('Button', 'acfe');
14
- $this->category = 'basic';
15
- $this->defaults = array(
16
- 'button_value' => __('Submit', 'acfe'),
17
- 'button_type' => 'button',
18
- 'button_before' => '',
19
- 'button_after' => '',
20
- 'button_class' => 'button button-secondary',
21
- 'button_id' => '',
22
- );
23
-
24
- add_action('wp_ajax_acfe/fields/button', array($this, 'ajax_request'), 99);
25
- add_action('wp_ajax_nopriv_acfe/fields/button', array($this, 'ajax_request'), 99);
26
-
27
- parent::__construct();
28
-
29
- }
30
-
31
- function ajax_request(){
32
-
33
- /**
34
- * @bool/string $_POST['post_id'] Current post ID
35
- * @string $_POST['field_key'] Button's field key
36
- * @string $_POST['field_name'] Button's field name
37
- */
38
-
39
- $field_name = acf_maybe_get_POST('field_name');
40
- $field_key = acf_maybe_get_POST('field_key');
41
- $post_id = acf_maybe_get_POST('post_id');
42
- $field = acf_get_field($field_key);
43
-
44
- do_action('acfe/fields/button', $field, $post_id);
45
- do_action('acfe/fields/button/name=' . $field_name, $field, $post_id);
46
- do_action('acfe/fields/button/key=' . $field_key, $field, $post_id);
47
-
48
- die;
49
-
50
- }
51
-
52
- function render_field_settings($field){
53
-
54
- // Value
55
- acf_render_field_setting($field, array(
56
- 'label' => __('Button value', 'acfe'),
57
- 'instructions' => __('Set a default button value', 'acfe'),
58
- 'type' => 'text',
59
- 'name' => 'button_value',
60
- 'default_value' => __('Submit', 'acfe')
61
- ));
62
-
63
- // Type
64
- acf_render_field_setting($field, array(
65
- 'label' => __('Button type', 'acfe'),
66
- 'instructions' => __('Choose the button type', 'acfe'),
67
- 'type' => 'radio',
68
- 'name' => 'button_type',
69
- 'default_value' => 'button',
70
- 'layout' => 'horizontal',
71
- 'choices' => array(
72
- 'button' => __('Button', 'acfe'),
73
- 'submit' => __('Submit', 'acfe'),
74
- ),
75
- ));
76
-
77
- // class
78
- acf_render_field_setting($field, array(
79
- 'label' => __('Button attributes','acf'),
80
- 'instructions' => '',
81
- 'type' => 'text',
82
- 'name' => 'button_class',
83
- 'prepend' => __('class', 'acf'),
84
- ));
85
-
86
- // id
87
- acf_render_field_setting($field, array(
88
- 'label' => '',
89
- 'instructions' => '',
90
- 'type' => 'text',
91
- 'name' => 'button_id',
92
- 'prepend' => __('id', 'acf'),
93
- '_append' => 'button_class'
94
- ));
95
-
96
- // Before HTML
97
- acf_render_field_setting($field, array(
98
- 'label' => __('Before HTML', 'acfe'),
99
- 'instructions' => __('Custom HTML before the button', 'acfe'),
100
- 'type' => 'acfe_code_editor',
101
- 'name' => 'button_before',
102
- 'rows' => 4,
103
- ));
104
-
105
- // After HTML
106
- acf_render_field_setting($field, array(
107
- 'label' => __('After HTML', 'acfe'),
108
- 'instructions' => __('Custom HTML after the button', 'acfe'),
109
- 'type' => 'acfe_code_editor',
110
- 'name' => 'button_after',
111
- 'rows' => 4,
112
- ));
113
-
114
- // Ajax
115
- acf_render_field_setting($field, array(
116
- 'label' => __('Ajax call', 'acfe'),
117
- 'instructions' => __('Trigger ajax event on click', 'acfe'),
118
- 'name' => 'button_ajax',
119
- 'type' => 'true_false',
120
- 'ui' => 1,
121
- ));
122
-
123
- ob_start();
124
- ?>
125
- Write your own Ajax return data using the following hook:<br /><br />
126
- <pre>
127
- add_action('acfe/fields/button/name=my_button', 'my_acf_button_ajax', 10, 2);
128
- function my_acf_button_ajax($field, $post_id){
129
-
130
- /**
131
- * @array $field Field array
132
- * @bool/string $post_id Current post ID
133
- */
134
-
135
- wp_send_json('Success!');
136
-
137
- }
138
- </pre>
139
- <br />
140
- You can get access to Javascript ajax call using the following JS hooks:<br /><br />
141
- <pre>
142
- acf.addAction('acfe/fields/button/before/name=my_button', function($el, data){
143
-
144
- // $el
145
-
146
- });
147
-
148
- acf.addAction('acfe/fields/button/success/name=my_button', function(response, $el, data){
149
-
150
- // response
151
- // $el
152
- // data
153
-
154
- });
155
-
156
- acf.addAction('acfe/fields/button/complete/name=my_button', function(response, $el, data){
157
-
158
- // response
159
- // $el
160
- // data
161
-
162
- });
163
- </pre>
164
- <?php
165
-
166
- $message = ob_get_clean();
167
-
168
- // ajax instructions
169
- acf_render_field_setting($field, array(
170
- 'label' => __('Ajax instructions','acf'),
171
- 'instructions' => '',
172
- 'type' => 'message',
173
- 'name' => 'instructions',
174
- 'message' => $message,
175
- 'new_lines' => false,
176
- 'conditional_logic' => array(
177
- array(
178
- array(
179
- 'field' => 'button_ajax',
180
- 'operator' => '==',
181
- 'value' => '1',
182
- )
183
- )
184
- )
185
- ));
186
-
187
- }
188
-
189
- function render_field($field){
190
-
191
- // Before
192
- if(isset($field['button_before']) && !empty($field['button_before'])){
193
-
194
- echo $field['button_before'];
195
-
196
- }
197
-
198
- $ajax = false;
199
- $button_ajax = $field['button_ajax'];
200
-
201
- if($button_ajax)
202
- $ajax = 'data-ajax="1"';
203
-
204
- // Button
205
- if($field['button_type'] === 'button'){
206
-
207
- echo '<button
208
- id="' . esc_attr($field['button_id']) . '"
209
- class="' . esc_attr($field['button_class']) . '"
210
- ' . $ajax . '
211
- >' . esc_attr($field['button_value']) . '</button>';
212
-
213
- // Submit
214
- }elseif($field['button_type'] === 'submit'){
215
-
216
- echo '<input
217
- type="submit"
218
- id="' . esc_attr($field['button_id']) . '"
219
- class="' . esc_attr($field['button_class']) . '"
220
- value="' . esc_attr($field['button_value']) . '"
221
- ' . $ajax . '
222
- />';
223
-
224
- }
225
-
226
- // After
227
- if(isset($field['button_after']) && !empty($field['button_after'])){
228
-
229
- echo $field['button_after'];
230
-
231
- }
232
-
233
- }
234
-
235
- }
236
-
237
- // initialize
238
- acf_register_field_type('acfe_field_button');
239
-
240
  endif;
1
+ <?php
2
+
3
+ if(!defined('ABSPATH'))
4
+ exit;
5
+
6
+ if(!class_exists('acfe_field_button')):
7
+
8
+ class acfe_field_button extends acf_field{
9
+
10
+ function __construct(){
11
+
12
+ $this->name = 'acfe_button';
13
+ $this->label = __('Button', 'acfe');
14
+ $this->category = 'basic';
15
+ $this->defaults = array(
16
+ 'button_value' => __('Submit', 'acfe'),
17
+ 'button_type' => 'button',
18
+ 'button_before' => '',
19
+ 'button_after' => '',
20
+ 'button_class' => 'button button-secondary',
21
+ 'button_id' => '',
22
+ );
23
+
24
+ add_action('wp_ajax_acfe/fields/button', array($this, 'ajax_request'), 99);
25
+ add_action('wp_ajax_nopriv_acfe/fields/button', array($this, 'ajax_request'), 99);
26
+
27
+ parent::__construct();
28
+
29
+ }
30
+
31
+ function ajax_request(){
32
+
33
+ /**
34
+ * @bool/string $_POST['post_id'] Current post ID
35
+ * @string $_POST['field_key'] Button's field key
36
+ * @string $_POST['field_name'] Button's field name
37
+ */
38
+
39
+ $field_name = acf_maybe_get_POST('field_name');
40
+ $field_key = acf_maybe_get_POST('field_key');
41
+ $post_id = acf_maybe_get_POST('post_id');
42
+ $field = acf_get_field($field_key);
43
+
44
+ do_action('acfe/fields/button', $field, $post_id);
45
+ do_action('acfe/fields/button/name=' . $field_name, $field, $post_id);
46
+ do_action('acfe/fields/button/key=' . $field_key, $field, $post_id);
47
+
48
+ die;
49
+
50
+ }
51
+
52
+ function render_field_settings($field){
53
+
54
+ // Value
55
+ acf_render_field_setting($field, array(
56
+ 'label' => __('Button value', 'acfe'),
57
+ 'instructions' => __('Set a default button value', 'acfe'),
58
+ 'type' => 'text',
59
+ 'name' => 'button_value',
60
+ 'default_value' => __('Submit', 'acfe')
61
+ ));
62
+
63
+ // Type
64
+ acf_render_field_setting($field, array(
65
+ 'label' => __('Button type', 'acfe'),
66
+ 'instructions' => __('Choose the button type', 'acfe'),
67
+ 'type' => 'radio',
68
+ 'name' => 'button_type',
69
+ 'default_value' => 'button',
70
+ 'layout' => 'horizontal',
71
+ 'choices' => array(
72
+ 'button' => __('Button', 'acfe'),
73
+ 'submit' => __('Submit', 'acfe'),
74
+ ),
75
+ ));
76
+
77
+ // class
78
+ acf_render_field_setting($field, array(
79
+ 'label' => __('Button attributes','acf'),
80
+ 'instructions' => '',
81
+ 'type' => 'text',
82
+ 'name' => 'button_class',
83
+ 'prepend' => __('class', 'acf'),
84
+ ));
85
+
86
+ // id
87
+ acf_render_field_setting($field, array(
88
+ 'label' => '',
89
+ 'instructions' => '',
90
+ 'type' => 'text',
91
+ 'name' => 'button_id',
92
+ 'prepend' => __('id', 'acf'),
93
+ '_append' => 'button_class'
94
+ ));
95
+
96
+ // Before HTML
97
+ acf_render_field_setting($field, array(
98
+ 'label' => __('Before HTML', 'acfe'),
99
+ 'instructions' => __('Custom HTML before the button', 'acfe'),
100
+ 'type' => 'acfe_code_editor',
101
+ 'name' => 'button_before',
102
+ 'rows' => 4,
103
+ ));
104
+
105
+ // After HTML
106
+ acf_render_field_setting($field, array(
107
+ 'label' => __('After HTML', 'acfe'),
108
+ 'instructions' => __('Custom HTML after the button', 'acfe'),
109
+ 'type' => 'acfe_code_editor',
110
+ 'name' => 'button_after',
111
+ 'rows' => 4,
112
+ ));
113
+
114
+ // Ajax
115
+ acf_render_field_setting($field, array(
116
+ 'label' => __('Ajax call', 'acfe'),
117
+ 'instructions' => __('Trigger ajax event on click', 'acfe'),
118
+ 'name' => 'button_ajax',
119
+ 'type' => 'true_false',
120
+ 'ui' => 1,
121
+ ));
122
+
123
+ ob_start();
124
+ ?>
125
+ Write your own Ajax return data using the following hook:<br /><br />
126
+ <pre>
127
+ add_action('acfe/fields/button/name=my_button', 'my_acf_button_ajax', 10, 2);
128
+ function my_acf_button_ajax($field, $post_id){
129
+
130
+ /**
131
+ * @array $field Field array
132
+ * @bool/string $post_id Current post ID
133
+ */
134
+
135
+ wp_send_json('Success!');
136
+
137
+ }
138
+ </pre>
139
+ <br />
140
+ You can get access to Javascript ajax call using the following JS hooks:<br /><br />
141
+ <pre>
142
+ acf.addAction('acfe/fields/button/before/name=my_button', function($el, data){
143
+
144
+ // $el
145
+
146
+ });
147
+
148
+ acf.addAction('acfe/fields/button/success/name=my_button', function(response, $el, data){
149
+
150
+ // response
151
+ // $el
152
+ // data
153
+
154
+ });
155
+
156
+ acf.addAction('acfe/fields/button/complete/name=my_button', function(response, $el, data){
157
+
158
+ // response
159
+ // $el
160
+ // data
161
+
162
+ });
163
+ </pre>
164
+ <?php
165
+
166
+ $message = ob_get_clean();
167
+
168
+ // ajax instructions
169
+ acf_render_field_setting($field, array(
170
+ 'label' => __('Ajax instructions','acf'),
171
+ 'instructions' => '',
172
+ 'type' => 'message',
173
+ 'name' => 'instructions',
174
+ 'message' => $message,
175
+ 'new_lines' => false,
176
+ 'conditional_logic' => array(
177
+ array(
178
+ array(
179
+ 'field' => 'button_ajax',
180
+ 'operator' => '==',
181
+ 'value' => '1',
182
+ )
183
+ )
184
+ )
185
+ ));
186
+
187
+ }
188
+
189
+ function render_field($field){
190
+
191
+ // Before
192
+ if(isset($field['button_before']) && !empty($field['button_before'])){
193
+
194
+ echo $field['button_before'];
195
+
196
+ }
197
+
198
+ $ajax = false;
199
+ $button_ajax = $field['button_ajax'];
200
+
201
+ if($button_ajax)
202
+ $ajax = 'data-ajax="1"';
203
+
204
+ // Button
205
+ if($field['button_type'] === 'button'){
206
+
207
+ echo '<button
208
+ id="' . esc_attr($field['button_id']) . '"
209
+ class="' . esc_attr($field['button_class']) . '"
210
+ ' . $ajax . '
211
+ >' . esc_attr($field['button_value']) . '</button>';
212
+
213
+ // Submit
214
+ }elseif($field['button_type'] === 'submit'){
215
+
216
+ echo '<input
217
+ type="submit"
218
+ id="' . esc_attr($field['button_id']) . '"
219
+ class="' . esc_attr($field['button_class']) . '"
220
+ value="' . esc_attr($field['button_value']) . '"
221
+ ' . $ajax . '
222
+ />';
223
+
224
+ }
225
+
226
+ // After
227
+ if(isset($field['button_after']) && !empty($field['button_after'])){
228
+
229
+ echo $field['button_after'];
230
+
231
+ }
232
+
233
+ }
234
+
235
+ }
236
+
237
+ // initialize
238
+ acf_register_field_type('acfe_field_button');
239
+
240
  endif;
includes/fields/field-column.php CHANGED
@@ -1,128 +1,161 @@
1
- <?php
2
-
3
- if(!defined('ABSPATH'))
4
- exit;
5
-
6
- if(!class_exists('acfe_field_column')):
7
-
8
- class acfe_field_column extends acf_field{
9
-
10
- function __construct(){
11
-
12
- $this->name = 'acfe_column';
13
- $this->label = __('Column', 'acfe');
14
- $this->category = 'layout';
15
- $this->defaults = array(
16
- 'columns' => '3/6',
17
- 'endpoint' => false,
18
- );
19
-
20
- add_filter('acfe/field_wrapper_attributes/type=acfe_column', array($this, 'field_wrapper_attributes'), 10, 2);
21
-
22
- parent::__construct();
23
-
24
- }
25
-
26
- function render_field_settings($field){
27
-
28
- // columns
29
- acf_render_field_setting( $field, array(
30
- 'label' => __('Columns', 'acfe'),
31
- 'instructions' => '',
32
- 'type' => 'select',
33
- 'name' => 'columns',
34
- 'choices' => array(
35
- '1/6' => '1/6',
36
- '2/6' => '2/6',
37
- '3/6' => '3/6',
38
- '4/6' => '4/6',
39
- '5/6' => '5/6',
40
- '6/6' => '6/6'
41
- ),
42
- 'conditional_logic' => array(
43
- array(
44
- array(
45
- 'field' => 'endpoint',
46
- 'operator' => '!=',
47
- 'value' => '1',
48
- )
49
- )
50
- )
51
- ));
52
-
53
- // endpoint
54
- acf_render_field_setting( $field, array(
55
- 'label' => __('Endpoint','acf'),
56
- 'instructions' => __('Define an endpoint for the previous columns to stop.', 'acf'),
57
- 'name' => 'endpoint',
58
- 'type' => 'true_false',
59
- 'ui' => 1,
60
- ));
61
-
62
- }
63
-
64
- function field_wrapper_attributes($wrapper, $field){
65
-
66
- if($field['endpoint']){
67
-
68
- $wrapper['data-endpoint'] = $field['endpoint'];
69
-
70
- }
71
-
72
- elseif($field['columns']){
73
-
74
- $wrapper['data-columns'] = $field['columns'];
75
-
76
- }
77
-
78
- return $wrapper;
79
-
80
- }
81
-
82
-
83
- function render_field($field){
84
-
85
- // vars
86
- $atts = array(
87
- 'class' => 'acf-fields',
88
- );
89
-
90
- ?>
91
- <div <?php acf_esc_attr_e($atts); ?>></div>
92
- <?php
93
-
94
- }
95
-
96
- function load_field($field){
97
-
98
- $columns = '';
99
- if($field['columns'])
100
- $columns = ' ' . $field['columns'];
101
-
102
- if($field['endpoint'])
103
- $columns = ' endpoint';
104
-
105
- $field['label'] = '(Column' . $columns .')';
106
- $field['name'] = '';
107
- $field['instructions'] = '';
108
- $field['required'] = 0;
109
- $field['value'] = false;
110
-
111
- return $field;
112
-
113
- }
114
-
115
- function prepare_field($field){
116
-
117
- $field['label'] = false;
118
-
119
- return $field;
120
-
121
- }
122
-
123
- }
124
-
125
- // initialize
126
- acf_register_field_type('acfe_field_column');
127
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
128
  endif;
1
+ <?php
2
+
3
+ if(!defined('ABSPATH'))
4
+ exit;
5
+
6
+ if(!class_exists('acfe_field_column')):
7
+
8
+ class acfe_field_column extends acf_field{
9
+
10
+ function __construct(){
11
+
12
+ $this->name = 'acfe_column';
13
+ $this->label = __('Column', 'acfe');
14
+ $this->category = 'layout';
15
+ $this->defaults = array(
16
+ 'columns' => '6/12',
17
+ 'endpoint' => false,
18
+ );
19
+
20
+ // Field wrapper
21
+ add_filter('acfe/field_wrapper_attributes/type=acfe_column', array($this, 'field_wrapper_attributes'), 10, 2);
22
+
23
+ // New sizes compatibility
24
+ add_filter('acf/validate_field/type=acfe_column', array($this, 'new_validate_field'), 20);
25
+
26
+ parent::__construct();
27
+
28
+ }
29
+
30
+ function new_validate_field($field){
31
+
32
+ if(!acfe_ends_with($field['columns'], '/6'))
33
+ return $field;
34
+
35
+ if($field['columns'] === '1/6'){
36
+ $field['columns'] = '2/12';
37
+ }elseif($field['columns'] === '2/6'){
38
+ $field['columns'] = '4/12';
39
+ }elseif($field['columns'] === '3/6'){
40
+ $field['columns'] = '6/12';
41
+ }elseif($field['columns'] === '4/6'){
42
+ $field['columns'] = '8/12';
43
+ }elseif($field['columns'] === '5/6'){
44
+ $field['columns'] = '10/12';
45
+ }elseif($field['columns'] === '6/6'){
46
+ $field['columns'] = '12/12';
47
+ }
48
+
49
+ return $field;
50
+
51
+ }
52
+
53
+ function render_field_settings($field){
54
+
55
+ // columns
56
+ acf_render_field_setting( $field, array(
57
+ 'label' => __('Columns', 'acfe'),
58
+ 'instructions' => '',
59
+ 'type' => 'select',
60
+ 'name' => 'columns',
61
+ 'choices' => array(
62
+ '1/12' => '1/12',
63
+ '2/12' => '2/12',
64
+ '3/12' => '3/12',
65
+ '4/12' => '4/12',
66
+ '5/12' => '5/12',
67
+ '6/12' => '6/12',
68
+ '7/12' => '7/12',
69
+ '8/12' => '8/12',
70
+ '9/12' => '9/12',
71
+ '10/12' => '10/12',
72
+ '11/12' => '11/12',
73
+ '12/12' => '12/12',
74
+ ),
75
+ 'conditional_logic' => array(
76
+ array(
77
+ array(
78
+ 'field' => 'endpoint',
79
+ 'operator' => '!=',
80
+ 'value' => '1',
81
+ )
82
+ )
83
+ )
84
+ ));
85
+
86
+ // endpoint
87
+ acf_render_field_setting( $field, array(
88
+ 'label' => __('Endpoint','acf'),
89
+ 'instructions' => __('Define an endpoint for the previous columns to stop.', 'acf'),
90
+ 'name' => 'endpoint',
91
+ 'type' => 'true_false',
92
+ 'ui' => 1,
93
+ ));
94
+
95
+ }
96
+
97
+ function field_wrapper_attributes($wrapper, $field){
98
+
99
+ if($field['endpoint']){
100
+
101
+ $wrapper['data-endpoint'] = $field['endpoint'];
102
+
103
+ }
104
+
105
+ elseif($field['columns']){
106
+
107
+ $wrapper['data-columns'] = $field['columns'];
108
+
109
+ }
110
+
111
+ return $wrapper;
112
+
113
+ }
114
+
115
+
116
+ function render_field($field){
117
+
118
+ // vars
119
+ $atts = array(
120
+ 'class' => 'acf-fields',
121
+ );
122
+
123
+ ?>
124
+ <div <?php acf_esc_attr_e($atts); ?>></div>
125
+ <?php
126
+
127
+ }
128
+
129
+ function load_field($field){
130
+
131
+ $columns = '';
132
+ if($field['columns'])
133
+ $columns = ' ' . $field['columns'];
134
+
135
+ if($field['endpoint'])
136
+ $columns = ' endpoint';
137
+
138
+ $field['label'] = '(Column' . $columns .')';
139
+ $field['name'] = '';
140
+ $field['instructions'] = '';
141
+ $field['required'] = 0;
142
+ $field['value'] = false;
143
+
144
+ return $field;
145
+
146
+ }
147
+
148
+ function prepare_field($field){
149
+
150
+ $field['label'] = false;
151
+
152
+ return $field;
153
+
154
+ }
155
+
156
+ }
157
+
158
+ // initialize
159
+ acf_register_field_type('acfe_field_column');
160
+
161
  endif;
includes/fields/field-dynamic-message.php CHANGED
@@ -1,58 +1,58 @@
1
- <?php
2
-
3
- if(!defined('ABSPATH'))
4
- exit;
5
-
6
- if(!class_exists('acfe_field_dynamic_message')):
7
-
8
- class acfe_field_dynamic_message extends acf_field{
9
-
10
- function __construct(){
11
-
12
- $this->name = 'acfe_dynamic_message';
13
- $this->label = __('Dynamic Message', 'acfe');
14
- $this->category = 'layout';
15
-
16
- parent::__construct();
17
-
18
- }
19
-
20
- function render_field_settings($field){
21
-
22
- $field_name = 'field_name';
23
- if(acf_maybe_get($field, 'name'))
24
- $field_name = $field['name'];
25
-
26
- ob_start();
27
- ?>
28
- Write your own PHP/HTML content using the following hook:<br /><br />
29
- <pre>
30
- add_action('acf/render_field/name=<?php echo $field_name; ?>', 'my_acf_dynamic_message');
31
- function my_acf_dynamic_message(){
32
-
33
- echo 'Hello World';
34
-
35
- }
36
- </pre>
37
- <?php
38
-
39
- $message = ob_get_clean();
40
-
41
- // field_type
42
- acf_render_field_setting($field, array(
43
- 'label' => __('Instructions','acf'),
44
- 'instructions' => '',
45
- 'type' => 'message',
46
- 'name' => 'instructions',
47
- 'message' => $message,
48
- 'new_lines' => false
49
- ));
50
-
51
- }
52
-
53
- }
54
-
55
- // initialize
56
- acf_register_field_type('acfe_field_dynamic_message');
57
-
58
  endif;
1
+ <?php
2
+
3
+ if(!defined('ABSPATH'))
4
+ exit;
5
+
6
+ if(!class_exists('acfe_field_dynamic_message')):
7
+
8
+ class acfe_field_dynamic_message extends acf_field{
9
+
10
+ function __construct(){
11
+
12
+ $this->name = 'acfe_dynamic_message';
13
+ $this->label = __('Dynamic Message', 'acfe');
14
+ $this->category = 'layout';
15
+
16
+ parent::__construct();
17
+
18
+ }
19
+
20
+ function render_field_settings($field){
21
+
22
+ $field_name = 'field_name';
23
+ if(acf_maybe_get($field, 'name'))
24
+ $field_name = $field['name'];
25
+
26
+ ob_start();
27
+ ?>
28
+ Write your own PHP/HTML content using the following hook:<br /><br />
29
+ <pre>
30
+ add_action('acf/render_field/name=<?php echo $field_name; ?>', 'my_acf_dynamic_message');
31
+ function my_acf_dynamic_message(){
32
+
33
+ echo 'Hello World';
34
+
35
+ }
36
+ </pre>
37
+ <?php
38
+
39
+ $message = ob_get_clean();
40
+
41
+ // field_type
42
+ acf_render_field_setting($field, array(
43
+ 'label' => __('Instructions','acf'),
44
+ 'instructions' => '',
45
+ 'type' => 'message',
46
+ 'name' => 'instructions',
47
+ 'message' => $message,
48
+ 'new_lines' => false
49
+ ));
50
+
51
+ }
52
+
53
+ }
54
+
55
+ // initialize
56
+ acf_register_field_type('acfe_field_dynamic_message');
57
+
58
  endif;
includes/fields/field-hidden.php CHANGED
@@ -1,48 +1,48 @@
1
- <?php
2
-
3
- if(!defined('ABSPATH'))
4
- exit;
5
-
6
- if(!class_exists('acfe_field_hidden')):
7
-
8
- class acfe_field_hidden extends acf_field{
9
-
10
- function __construct(){
11
-
12
- $this->name = 'acfe_hidden';
13
- $this->label = __('Hidden', 'acfe');
14
- $this->category = 'basic';
15
- $this->defaults = array(
16
- 'default_value' => ''
17
- );
18
-
19
- parent::__construct();
20
-
21
- }
22
-
23
- function render_field($field){
24
-
25
- ?>
26
- <input type="hidden" name="<?php echo esc_attr($field['name']) ?>" value="<?php echo esc_attr($field['value']) ?>" />
27
- <?php
28
-
29
- }
30
-
31
- function render_field_settings($field){
32
-
33
- // default_value
34
- acf_render_field_setting( $field, array(
35
- 'label' => __('Value','acf'),
36
- 'instructions' => __('Default value in the hidden input','acf'),
37
- 'type' => 'text',
38
- 'name' => 'default_value',
39
- ));
40
-
41
- }
42
-
43
- }
44
-
45
- // initialize
46
- acf_register_field_type('acfe_field_hidden');
47
-
48
  endif;
1
+ <?php
2
+
3
+ if(!defined('ABSPATH'))
4
+ exit;
5
+
6
+ if(!class_exists('acfe_field_hidden')):
7
+
8
+ class acfe_field_hidden extends acf_field{
9
+
10
+ function __construct(){
11
+
12
+ $this->name = 'acfe_hidden';
13
+ $this->label = __('Hidden', 'acfe');
14
+ $this->category = 'basic';
15
+ $this->defaults = array(
16
+ 'default_value' => ''
17
+ );
18
+
19
+ parent::__construct();
20
+
21
+ }
22
+
23
+ function render_field($field){
24
+
25
+ ?>
26
+ <input type="hidden" name="<?php echo esc_attr($field['name']) ?>" value="<?php echo esc_attr($field['value']) ?>" />
27
+ <?php
28
+
29
+ }
30
+
31
+ function render_field_settings($field){
32
+
33
+ // default_value
34
+ acf_render_field_setting( $field, array(
35
+ 'label' => __('Value','acf'),
36
+ 'instructions' => __('Default value in the hidden input','acf'),
37
+ 'type' => 'text',
38
+ 'name' => 'default_value',
39
+ ));
40
+
41
+ }
42
+
43
+ }
44
+
45
+ // initialize
46
+ acf_register_field_type('acfe_field_hidden');
47
+
48
  endif;
includes/fields/field-repeater.php CHANGED
@@ -1,62 +1,62 @@
1
- <?php
2
-
3
- if(!defined('ABSPATH'))
4
- exit;
5
-
6
- /**
7
- * Add Settings
8
- */
9
- add_action('acf/render_field_settings/type=repeater', 'acfe_repeater_settings', 0);
10
- function acfe_repeater_settings($field){
11
-
12
- // Stylised button
13
- acf_render_field_setting($field, array(
14
- 'label' => __('Stylised Button'),
15
- 'name' => 'acfe_repeater_stylised_button',
16
- 'key' => 'acfe_repeater_stylised_button',
17
- 'instructions' => __('Better row button integration'),
18
- 'type' => 'true_false',
19
- 'message' => '',
20
- 'default_value' => false,
21
- 'ui' => true,
22
- ));
23
-
24
- }
25
-
26
- add_filter('acfe/field_wrapper_attributes/type=repeater', 'acfe_repeater_wrapper', 10, 2);
27
- function acfe_repeater_wrapper($wrapper, $field){
28
-
29
- // Stylised button
30
- if(isset($field['acfe_repeater_stylised_button']) && !empty($field['acfe_repeater_stylised_button'])){
31
-
32
- $wrapper['data-acfe-repeater-stylised-button'] = 1;
33
-
34
- }
35
-
36
- // Lock sortable
37
- $acfe_repeater_lock_sortable = false;
38
- $acfe_repeater_lock_sortable = apply_filters('acfe/repeater/lock', $acfe_repeater_lock_sortable, $field);
39
- $acfe_repeater_lock_sortable = apply_filters('acfe/repeater/lock/name=' . $field['_name'], $acfe_repeater_lock_sortable, $field);
40
- $acfe_repeater_lock_sortable = apply_filters('acfe/repeater/lock/key=' . $field['key'], $acfe_repeater_lock_sortable, $field);
41
-
42
- if($acfe_repeater_lock_sortable){
43
-
44
- $wrapper['data-acfe-repeater-lock'] = 1;
45
-
46
- }
47
-
48
- // Remove actions
49
- $acfe_repeater_remove_actions = false;
50
- $acfe_repeater_remove_actions = apply_filters('acfe/repeater/remove_actions', $acfe_repeater_remove_actions, $field);
51
- $acfe_repeater_remove_actions = apply_filters('acfe/repeater/remove_actions/name=' . $field['_name'], $acfe_repeater_remove_actions, $field);
52
- $acfe_repeater_remove_actions = apply_filters('acfe/repeater/remove_actions/key=' . $field['key'], $acfe_repeater_remove_actions, $field);
53
-
54
- if($acfe_repeater_remove_actions){
55
-
56
- $wrapper['data-acfe-repeater-remove-actions'] = 1;
57
-
58
- }
59
-
60
- return $wrapper;
61
-
62
  }
1
+ <?php
2
+
3
+ if(!defined('ABSPATH'))
4
+ exit;
5
+
6
+ /**
7
+ * Add Settings
8
+ */
9
+ add_action('acf/render_field_settings/type=repeater', 'acfe_repeater_settings', 0);
10
+ function acfe_repeater_settings($field){
11
+
12
+ // Stylised button
13
+ acf_render_field_setting($field, array(
14
+ 'label' => __('Stylised Button'),
15
+ 'name' => 'acfe_repeater_stylised_button',
16
+ 'key' => 'acfe_repeater_stylised_button',
17
+ 'instructions' => __('Better row button integration'),
18
+ 'type' => 'true_false',
19
+ 'message' => '',
20
+ 'default_value' => false,
21
+ 'ui' => true,
22
+ ));
23
+
24
+ }
25
+
26
+ add_filter('acfe/field_wrapper_attributes/type=repeater', 'acfe_repeater_wrapper', 10, 2);
27
+ function acfe_repeater_wrapper($wrapper, $field){
28
+
29
+ // Stylised button
30
+ if(isset($field['acfe_repeater_stylised_button']) && !empty($field['acfe_repeater_stylised_button'])){
31
+
32
+ $wrapper['data-acfe-repeater-stylised-button'] = 1;
33
+
34
+ }
35
+
36
+ // Lock sortable
37
+ $acfe_repeater_lock_sortable = false;
38
+ $acfe_repeater_lock_sortable = apply_filters('acfe/repeater/lock', $acfe_repeater_lock_sortable, $field);
39
+ $acfe_repeater_lock_sortable = apply_filters('acfe/repeater/lock/name=' . $field['_name'], $acfe_repeater_lock_sortable, $field);
40
+ $acfe_repeater_lock_sortable = apply_filters('acfe/repeater/lock/key=' . $field['key'], $acfe_repeater_lock_sortable, $field);
41
+
42
+ if($acfe_repeater_lock_sortable){
43
+
44
+ $wrapper['data-acfe-repeater-lock'] = 1;
45
+
46
+ }
47
+
48
+ // Remove actions
49
+ $acfe_repeater_remove_actions = false;
50
+ $acfe_repeater_remove_actions = apply_filters('acfe/repeater/remove_actions', $acfe_repeater_remove_actions, $field);
51
+ $acfe_repeater_remove_actions = apply_filters('acfe/repeater/remove_actions/name=' . $field['_name'], $acfe_repeater_remove_actions, $field);
52
+ $acfe_repeater_remove_actions = apply_filters('acfe/repeater/remove_actions/key=' . $field['key'], $acfe_repeater_remove_actions, $field);
53
+
54
+ if($acfe_repeater_remove_actions){
55
+
56
+ $wrapper['data-acfe-repeater-remove-actions'] = 1;
57
+
58
+ }
59
+
60
+ return $wrapper;
61
+
62
  }
includes/fields/field-select.php CHANGED
@@ -76,6 +76,23 @@ class acfe_field_select{
76
  'field' => 'ui',
77
  'operator' => '==',
78
  'value' => '1',
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
79
  )
80
  ),
81
  array(
76
  'field' => 'ui',
77
  'operator' => '==',
78
  'value' => '1',
79
+ ),
80
+ array(
81
+ 'field' => 'allow_null',
82
+ 'operator' => '==',
83
+ 'value' => '1',
84
+ )
85
+ ),
86
+ array(
87
+ array(
88
+ 'field' => 'ui',
89
+ 'operator' => '==',
90
+ 'value' => '1',
91
+ ),
92
+ array(
93
+ 'field' => 'multiple',
94
+ 'operator' => '==',
95
+ 'value' => '1',
96
  )
97
  ),
98
  array(
includes/fields/field-slug.php CHANGED
@@ -1,105 +1,105 @@
1
- <?php
2
-
3
- if(!defined('ABSPATH'))
4
- exit;
5
-
6
- if(!class_exists('acfe_field_slug')):
7
-
8
- class acfe_field_slug extends acf_field{
9
-
10
- function __construct(){
11
-
12
- $this->name = 'acfe_slug';
13
- $this->label = __('Slug', 'acfe');
14
- $this->category = 'basic';
15
- $this->defaults = array(
16
- 'default_value' => '',
17
- 'maxlength' => '',
18
- 'placeholder' => '',
19
- 'prepend' => '',
20
- 'append' => ''
21
- );
22
-
23
- parent::__construct();
24
-
25
- }
26
-
27
- function render_field($field){
28
-
29
- $field['type'] = 'text';
30
-
31
- acf_get_field_type('text')->render_field($field);
32
-
33
- }
34
-
35
- function render_field_settings($field){
36
-
37
- // default_value
38
- acf_render_field_setting($field, array(
39
- 'label' => __('Default Value','acf'),
40
- 'instructions' => __('Appears when creating a new post','acf'),
41
- 'type' => 'text',
42
- 'name' => 'default_value',
43
- ));
44
-
45
-
46
- // placeholder
47
- acf_render_field_setting($field, array(
48
- 'label' => __('Placeholder Text','acf'),
49
- 'instructions' => __('Appears within the input','acf'),
50
- 'type' => 'text',
51
- 'name' => 'placeholder',
52
- ));
53
-
54
-
55
- // prepend
56
- acf_render_field_setting($field, array(
57
- 'label' => __('Prepend','acf'),
58
- 'instructions' => __('Appears before the input','acf'),
59
- 'type' => 'text',
60
- 'name' => 'prepend',
61
- ));
62
-
63
-
64
- // append
65
- acf_render_field_setting($field, array(
66
- 'label' => __('Append','acf'),
67
- 'instructions' => __('Appears after the input','acf'),
68
- 'type' => 'text',
69
- 'name' => 'append',
70
- ));
71
-
72
-
73
- // maxlength
74
- acf_render_field_setting($field, array(
75
- 'label' => __('Character Limit','acf'),
76
- 'instructions' => __('Leave blank for no limit','acf'),
77
- 'type' => 'number',
78
- 'name' => 'maxlength',
79
- ));
80
-
81
- }
82
-
83
- function validate_value($valid, $value, $field, $input){
84
-
85
- $value = sanitize_title($value);
86
-
87
- if($field['maxlength'] && mb_strlen(wp_unslash($value)) > $field['maxlength'])
88
- return sprintf(__('Value must not exceed %d characters', 'acf'), $field['maxlength']);
89
-
90
- return $valid;
91
-
92
- }
93
-
94
- function update_value($value, $post_id, $field){
95
-
96
- return sanitize_title($value);
97
-
98
- }
99
-
100
- }
101
-
102
- // initialize
103
- acf_register_field_type('acfe_field_slug');
104
-
105
  endif;
1
+ <?php
2
+
3
+ if(!defined('ABSPATH'))
4
+ exit;
5
+
6
+ if(!class_exists('acfe_field_slug')):
7
+
8
+ class acfe_field_slug extends acf_field{
9
+
10
+ function __construct(){
11
+
12
+ $this->name = 'acfe_slug';
13
+ $this->label = __('Slug', 'acfe');
14
+ $this->category = 'basic';
15
+ $this->defaults = array(
16
+ 'default_value' => '',
17
+ 'maxlength' => '',
18
+ 'placeholder' => '',
19
+ 'prepend' => '',
20
+ 'append' => ''
21
+ );
22
+
23
+ parent::__construct();
24
+
25
+ }
26
+
27
+ function render_field($field){
28
+
29
+ $field['type'] = 'text';
30
+
31
+ acf_get_field_type('text')->render_field($field);
32
+
33
+ }
34
+
35
+ function render_field_settings($field){
36
+
37
+ // default_value
38
+ acf_render_field_setting($field, array(
39
+ 'label' => __('Default Value','acf'),
40
+ 'instructions' => __('Appears when creating a new post','acf'),
41
+ 'type' => 'text',
42
+ 'name' => 'default_value',
43
+ ));
44
+
45
+
46
+ // placeholder
47
+ acf_render_field_setting($field, array(
48
+ 'label' => __('Placeholder Text','acf'),
49
+ 'instructions' => __('Appears within the input','acf'),
50
+ 'type' => 'text',
51
+ 'name' => 'placeholder',
52
+ ));
53
+
54
+
55
+ // prepend
56
+ acf_render_field_setting($field, array(
57
+ 'label' => __('Prepend','acf'),
58
+ 'instructions' => __('Appears before the input','acf'),
59
+ 'type' => 'text',
60
+ 'name' => 'prepend',
61
+ ));
62
+
63
+
64
+ // append
65
+ acf_render_field_setting($field, array(
66
+ 'label' => __('Append','acf'),
67
+ 'instructions' => __('Appears after the input','acf'),
68
+ 'type' => 'text',
69
+ 'name' => 'append',
70
+ ));
71
+
72
+
73
+ // maxlength
74
+ acf_render_field_setting($field, array(
75
+ 'label' => __('Character Limit','acf'),
76
+ 'instructions' => __('Leave blank for no limit','acf'),
77
+ 'type' => 'number',
78
+ 'name' => 'maxlength',
79
+ ));
80
+
81
+ }
82
+
83
+ function validate_value($valid, $value, $field, $input){
84
+
85
+ $value = sanitize_title($value);
86
+
87
+ if($field['maxlength'] && mb_strlen(wp_unslash($value)) > $field['maxlength'])
88
+ return sprintf(__('Value must not exceed %d characters', 'acf'), $field['maxlength']);
89
+
90
+ return $valid;
91
+
92
+ }
93
+
94
+ function update_value($value, $post_id, $field){
95
+
96
+ return sanitize_title($value);
97
+
98
+ }
99
+
100
+ }
101
+
102
+ // initialize
103
+ acf_register_field_type('acfe_field_slug');
104
+
105
  endif;
includes/fields/field-textarea.php CHANGED
@@ -1,50 +1,50 @@
1
- <?php
2
-
3
- if(!defined('ABSPATH'))
4
- exit;
5
-
6
- // Settings
7
- add_action('acf/render_field_settings/type=textarea', 'acfe_field_textarea_settings');
8
- function acfe_field_textarea_settings($field){
9
-
10
- acf_render_field_setting($field, array(
11
- 'label' => __('Code mode'),
12
- 'name' => 'acfe_textarea_code',
13
- 'key' => 'acfe_textarea_code',
14
- 'instructions' => __('Switch font family to monospace and allow tab indent. For a more advanced code editor, please use the <code>Code Editor</code> field type'),
15
- 'type' => 'true_false',
16
- 'ui' => 1,
17
- ));
18
-
19
- }
20
-
21
- // Field wrapper
22
- add_filter('acfe/field_wrapper_attributes/type=textarea', 'acfe_field_textarea_wrapper', 10, 2);
23
- function acfe_field_textarea_wrapper($wrapper, $field){
24
-
25
- if(acf_maybe_get($field, 'acfe_textarea_code')){
26
-
27
- $wrapper['data-acfe-textarea-code'] = 1;
28
-
29
- }
30
-
31
- return $wrapper;
32
-
33
- }
34
-
35
- add_filter('acf/prepare_field/name=new_lines', 'acfe_field_textarea_new_lines');
36
- function acfe_field_textarea_new_lines($field){
37
-
38
- $field['conditional_logic'] = array(
39
- array(
40
- array(
41
- 'field' => 'acfe_textarea_code',
42
- 'operator' => '!=',
43
- 'value' => '1'
44
- )
45
- )
46
- );
47
-
48
- return $field;
49
-
50
  }
1
+ <?php
2
+
3
+ if(!defined('ABSPATH'))
4
+ exit;
5
+
6
+ // Settings
7
+ add_action('acf/render_field_settings/type=textarea', 'acfe_field_textarea_settings');
8
+ function acfe_field_textarea_settings($field){
9
+
10
+ acf_render_field_setting($field, array(
11
+ 'label' => __('Code mode'),
12
+ 'name' => 'acfe_textarea_code',
13
+ 'key' => 'acfe_textarea_code',
14
+ 'instructions' => __('Switch font family to monospace and allow tab indent. For a more advanced code editor, please use the <code>Code Editor</code> field type'),
15
+ 'type' => 'true_false',
16
+ 'ui' => 1,
17
+ ));
18
+
19
+ }
20
+
21
+ // Field wrapper
22
+ add_filter('acfe/field_wrapper_attributes/type=textarea', 'acfe_field_textarea_wrapper', 10, 2);
23
+ function acfe_field_textarea_wrapper($wrapper, $field){
24
+
25
+ if(acf_maybe_get($field, 'acfe_textarea_code')){
26
+
27
+ $wrapper['data-acfe-textarea-code'] = 1;
28
+
29
+ }
30
+
31
+ return $wrapper;
32
+
33
+ }
34
+
35
+ add_filter('acf/prepare_field/name=new_lines', 'acfe_field_textarea_new_lines');
36
+ function acfe_field_textarea_new_lines($field){
37
+
38
+ $field['conditional_logic'] = array(
39
+ array(
40
+ array(
41
+ 'field' => 'acfe_textarea_code',
42
+ 'operator' => '!=',
43
+ 'value' => '1'
44
+ )
45
+ )
46
+ );
47
+
48
+ return $field;
49
+
50
  }
includes/locations/post-type-all.php CHANGED
@@ -1,39 +1,39 @@
1
- <?php
2
-
3
- if(!defined('ABSPATH'))
4
- exit;
5
-
6
- /**
7
- * ACFE Location: Post Type All Choices
8
- */
9
- add_filter('acf/location/rule_values/post_type', 'acfe_location_post_type_all_choices');
10
- function acfe_location_post_type_all_choices($choices){
11
-
12
- $choices = array_merge(array('all' => __('All', 'acf')), $choices);
13
-
14
- return $choices;
15
-
16
- }
17
-
18
- /**
19
- * ACFE Location: Post Type All Matching
20
- */
21
- add_filter('acf/location/rule_match/post_type', 'acfe_location_post_type_all_match', 10, 3);
22
- function acfe_location_post_type_all_match($match, $rule, $options){
23
-
24
- if($rule['value'] !== 'all')
25
- return $match;
26
-
27
- if(!acf_maybe_get($options, 'post_type'))
28
- return $match;
29
-
30
- $post_types = acf_get_post_types();
31
-
32
- $match = in_array($options['post_type'], $post_types);
33
-
34
- if($rule['operator'] === '!=')
35
- $match = !$match;
36
-
37
- return $match;
38
-
39
  }
1
+ <?php
2
+
3
+ if(!defined('ABSPATH'))
4
+ exit;
5
+
6
+ /**
7
+ * ACFE Location: Post Type All Choices
8
+ */
9
+ add_filter('acf/location/rule_values/post_type', 'acfe_location_post_type_all_choices');
10
+ function acfe_location_post_type_all_choices($choices){
11
+
12
+ $choices = array_merge(array('all' => __('All', 'acf')), $choices);
13
+
14
+ return $choices;
15
+
16
+ }
17
+
18
+ /**
19
+ * ACFE Location: Post Type All Matching
20
+ */
21
+ add_filter('acf/location/rule_match/post_type', 'acfe_location_post_type_all_match', 10, 3);
22
+ function acfe_location_post_type_all_match($match, $rule, $options){
23
+
24
+ if($rule['value'] !== 'all')
25
+ return $match;
26
+
27
+ if(!acf_maybe_get($options, 'post_type'))
28
+ return $match;
29
+
30
+ $post_types = acf_get_post_types();
31
+
32
+ $match = in_array($options['post_type'], $post_types);
33
+
34
+ if($rule['operator'] === '!=')
35
+ $match = !$match;
36
+
37
+ return $match;
38
+
39
  }
includes/locations/post-type-archive.php CHANGED
@@ -7,7 +7,7 @@ if(!class_exists('acfe_location_post_type_archive')):
7
 
8
  class acfe_location_post_type_archive{
9
 
10
- public $post_type = '';
11
  public $post_types = array();
12
 
13
  function __construct(){
@@ -66,20 +66,37 @@ class acfe_location_post_type_archive{
66
 
67
  if(!acf_is_screen("{$post_type}_page_{$post_type}-archive"))
68
  continue;
69
-
70
- $post_type_obj = get_post_type_object($post_type);
71
-
72
- if(!isset($post_type_obj->has_archive) || empty($post_type_obj->has_archive))
73
- break;
74
-
75
  $this->post_type = $post_type;
76
 
77
- add_action('admin_footer', array($this, 'admin_footer'));
78
-
79
  break;
80
 
81
  }
82
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
83
  }
84
 
85
  function admin_footer(){
@@ -106,12 +123,20 @@ class acfe_location_post_type_archive{
106
 
107
  if(is_admin() || !is_post_type_archive())
108
  return;
109
-
110
- $post_type_obj = get_post_type_object(get_post_type());
111
-
112
- if(!isset($post_type_obj->has_archive) || empty($post_type_obj->has_archive))
 
 
 
 
 
 
 
 
113
  return;
114
-
115
  $wp_admin_bar->add_node(array(
116
  'id' => 'edit',
117
  'title' => 'Edit ' . $post_type_obj->label . ' ' . __('Archive'),
@@ -175,7 +200,7 @@ class acfe_location_post_type_archive{
175
 
176
  function location_match($match, $rule, $screen){
177
 
178
- if(!acf_maybe_get($screen, 'options_page') || !acf_maybe_get($rule, 'value'))
179
  return $match;
180
 
181
  $match = ($screen['options_page'] === $rule['value'] . '-archive');
7
 
8
  class acfe_location_post_type_archive{
9
 
10
+ public $post_type = false;
11
  public $post_types = array();
12
 
13
  function __construct(){
66
 
67
  if(!acf_is_screen("{$post_type}_page_{$post_type}-archive"))
68
  continue;
69
+
 
 
 
 
 
70
  $this->post_type = $post_type;
71
 
 
 
72
  break;
73
 
74
  }
75
 
76
+ if(!$this->post_type)
77
+ return;
78
+
79
+ // Location screen
80
+ add_action('acf/location/screen', array($this, 'location_screen'));
81
+
82
+ // Get Post Type object
83
+ $post_type_obj = get_post_type_object($post_type);
84
+
85
+ if(isset($post_type_obj->has_archive) && !empty($post_type_obj->has_archive)){
86
+
87
+ // Add "Permalink" under title
88
+ add_action('admin_footer', array($this, 'admin_footer'));
89
+
90
+ }
91
+
92
+ }
93
+
94
+ function location_screen($screen){
95
+
96
+ $screen['acfe_dpt_admin_page'] = true;
97
+
98
+ return $screen;
99
+
100
  }
101
 
102
  function admin_footer(){
123
 
124
  if(is_admin() || !is_post_type_archive())
125
  return;
126
+
127
+ $post_type = get_query_var('post_type');
128
+
129
+ if(!$post_type)
130
+ return;
131
+
132
+ $post_type_obj = get_post_type_object($post_type);
133
+
134
+ $has_archive = isset($post_type_obj->has_archive) && !empty($post_type_obj->has_archive);
135
+ $has_archive_page = isset($post_type_obj->acfe_admin_archive) && !empty($post_type_obj->acfe_admin_archive);
136
+
137
+ if(!$has_archive || !$has_archive_page)
138
  return;
139
+
140
  $wp_admin_bar->add_node(array(
141
  'id' => 'edit',
142
  'title' => 'Edit ' . $post_type_obj->label . ' ' . __('Archive'),
200
 
201
  function location_match($match, $rule, $screen){
202
 
203
+ if(!acf_maybe_get($screen, 'options_page') || !acf_maybe_get($screen, 'acfe_dpt_admin_page') || !acf_maybe_get($rule, 'value'))
204
  return $match;
205
 
206
  $match = ($screen['options_page'] === $rule['value'] . '-archive');
includes/locations/post-type-list.php CHANGED
@@ -1,428 +1,428 @@
1
- <?php
2
-
3
- if(!defined('ABSPATH'))
4
- exit;
5
-
6
- if(!class_exists('acfe_location_post_type_list')):
7
-
8
- class acfe_location_post_type_list{
9
-
10
- public $post_type;
11
-
12
- public $field_groups;
13
-
14
- function __construct(){
15
-
16
- add_action('load-edit.php', array($this, 'load'));
17
-
18
- add_filter('acf/location/rule_types', array($this, 'location_types'));
19
- add_filter('acf/location/rule_values/post_type_list', array($this, 'location_values'));
20
- add_filter('acf/location/rule_match/post_type_list', array($this, 'location_match'), 10, 3);
21
-
22
- }
23
-
24
- function load(){
25
-
26
- // Get post type
27
- global $typenow;
28
-
29
- $get_post_types = acf_get_post_types(array(
30
- 'show_ui' => 1,
31
- 'exclude' => array('attachment')
32
- ));
33
-
34
- // Check post type
35
- if(!in_array($typenow, $get_post_types))
36
- return;
37
-
38
- // vars
39
- $this->post_type = $typenow;
40
-
41
- $this->post_id = acf_get_valid_post_id($this->post_type . '_options');
42
-
43
- $this->field_groups = acf_get_field_groups(array(
44
- 'post_type_list' => $this->post_type
45
- ));
46
-
47
- if(empty($this->field_groups))
48
- return;
49
-
50
- // Submit
51
- if(acf_verify_nonce('post_type_list')){
52
-
53
- // Validate
54
- if(acf_validate_save_post(true)){
55
-
56
- // Autoload
57
- acf_update_setting('autoload', false);
58
-
59
- // Save
60
- acf_save_post($this->post_id);
61
-
62
- // Redirect
63
- wp_redirect(add_query_arg(array('message' => 'acfe_post_type_list')));
64
- exit;
65
-
66
- }
67
-
68
- }
69
-
70
- // Enqueue ACF JS
71
- acf_enqueue_scripts();
72
-
73
- // Success message
74
- if(isset($_GET['message']) && $_GET['message'] === 'acfe_post_type_list'){
75
-
76
- $object = get_post_type_object($this->post_type);
77
-
78
- acf_add_admin_notice($object->label . ' List Saved.', 'success');
79
-
80
- }
81
-
82
- add_action('in_admin_header', array($this, 'in_admin_header'));
83
-
84
- add_action('admin_footer', array($this, 'admin_footer'));
85
-
86
- }
87
-
88
- function admin_footer(){
89
-
90
- // Init field groups by position
91
- $field_groups = array();
92
-
93
- foreach($this->field_groups as $field_group){
94
-
95
- $field_groups[$field_group['position']][] = $field_group;
96
-
97
- }
98
-
99
- // Position: After Title
100
- if(acf_maybe_get($field_groups, 'acf_after_title')){
101
-
102
- $total = count($field_groups['acf_after_title']);
103
-
104
- $current = 0; foreach($field_groups['acf_after_title'] as $field_group){ $current++;
105
-
106
- add_meta_box(
107
-
108
- // ID
109
- 'acf-' . $field_group['ID'],
110
-
111
- // Title
112
- $field_group['title'],
113
-
114
- // Render
115
- array($this, 'metabox_render'),
116
-
117
- // Screen
118
- 'edit',
119
-
120
- // Position
121
- $field_group['position'],
122
-
123
- // Priority
124
- 'default',
125
-
126
- // Args
127
- array(
128
- 'total' => $total,
129
- 'current' => $current,
130
- 'field_group' => $field_group
131
- )
132
-
133
- );
134
-
135
- }
136
-
137
- ?>
138
- <div id="tmpl-acf-after-title" class="acfe-postbox acfe-postbox-no-handle">
139
- <form class="acf-form" action="" method="post">
140
-
141
- <div id="poststuff" style="padding-top:0;">
142
-
143
- <?php do_meta_boxes('edit', 'acf_after_title', array()); ?>
144
-
145
- </div>
146
-
147
- </form>
148
- </div>
149
- <script type="text/javascript">
150
- (function($){
151
-
152
- // add after title
153
- $('.subsubsub').before($('#tmpl-acf-after-title'));
154
-
155
- })(jQuery);
156
- </script>
157
- <?php
158
-
159
- }
160
-
161
- // Position: Normal
162
- if(acf_maybe_get($field_groups, 'normal')){
163
-
164
- $total = count($field_groups['normal']);
165
-
166
- $current = 0; foreach($field_groups['normal'] as $field_group){ $current++;
167
-
168
- add_meta_box(
169
-
170
- // ID
171
- 'acf-' . $field_group['ID'],
172
-
173
- // Title
174
- $field_group['title'],
175
-
176
- // Render
177
- array($this, 'metabox_render'),
178
-
179
- // Screen
180
- 'edit',
181
-
182
- // Position
183
- $field_group['position'],
184
-
185
- // Priority
186
- 'default',
187
-
188
- // Args
189
- array(
190
- 'total' => $total,
191
- 'current' => $current,
192
- 'field_group' => $field_group
193
- )
194
-
195
- );
196
-
197
- }
198
-
199
- ?>
200
- <div id="tmpl-acf-normal" class="acfe-postbox acfe-postbox-no-handle">
201
- <form class="acf-form" action="" method="post">
202
-
203
- <div id="poststuff">
204
-
205
- <?php do_meta_boxes('edit', 'normal', array()); ?>
206
-
207
- </div>
208
-
209
- </form>
210
- </div>
211
- <script type="text/javascript">
212
- (function($){
213
-
214
- // add normal
215
- $('#posts-filter').after($('#tmpl-acf-normal'));
216
-
217
- })(jQuery);
218
- </script>
219
- <?php
220
-
221
- }
222
-
223
- // Position: Side
224
- if(acf_maybe_get($field_groups, 'side')){
225
-
226
- $total = count($field_groups['side']);
227
-
228
- $current = 0; foreach($field_groups['side'] as $field_group){ $current++;
229
-
230
- add_meta_box(
231
-
232
- // ID
233
- 'acf-' . $field_group['ID'],
234
-
235
- // Title
236
- $field_group['title'],
237
-
238
- // Render
239
- array($this, 'metabox_render'),
240
-
241
- // Screen
242
- 'edit',
243
-
244
- // Position
245
- $field_group['position'],
246
-
247
- // Priority
248
- 'default',
249
-
250
- // Args
251
- array(
252
- 'total' => $total,
253
- 'current' => $current,
254
- 'field_group' => $field_group
255
- )
256
-
257
- );
258
-
259
- }
260
-
261
- ?>
262
- <div id="tmpl-acf-side" class="acfe-postbox acfe-postbox-no-handle">
263
- <div class="acf-column-2">
264
- <form class="acf-form" action="" method="post">
265
-
266
- <div id="poststuff" style="padding-top:0; min-width:auto;">
267
-
268
- <?php do_meta_boxes('edit', 'side', array()); ?>
269
-
270
- </div>
271
-
272
- </form>
273
- </div>
274
- </div>
275
- <script type="text/javascript">
276
- (function($){
277
-
278
- // wrap form
279
- $('#posts-filter').wrap('<div class="acf-columns-2" />');
280
-
281
- // Move subsubsub inside column
282
- $('#posts-filter').prepend($('.subsubsub'));
283
-
284
- // Move After title field group
285
- $('#posts-filter').prepend($('#tmpl-acf-after-title'));
286
-
287
- // Move Normal field group
288
- $('#posts-filter').append($('#tmpl-acf-normal'));
289
-
290
- // add column main
291
- $('#posts-filter').addClass('acf-column-1');
292
-
293
- // add column side
294
- $('#posts-filter').after($('#tmpl-acf-side'));
295
-
296
- })(jQuery);
297
- </script>
298
- <?php
299
-
300
- }
301
-
302
- }
303
-
304
- function metabox_render($array, $args){
305
-
306
- $total = $args['args']['total'];
307
- $current = $args['args']['current'];
308
- $field_group = $args['args']['field_group'];
309
-
310
- // Set post_id
311
- $post_id = $this->post_id;
312
-
313
- // Set form data
314
- acf_form_data(array(
315
- 'screen' => 'post_type_list',
316
- 'post_id' => $post_id,
317
- ));
318
-
319
- // Get fields
320
- $fields = acf_get_fields($field_group);
321
-
322
- // Render fields
323
- acf_render_fields($fields, $post_id, 'div', $field_group['instruction_placement']);
324
-
325
- if($current === $total){ ?>
326
-
327
- <?php
328
- $id = ($field_group['style'] != 'seamless') ? 'major-publishing-actions' : '';
329
- $style = ($field_group['style'] === 'seamless') ? 'padding:0 12px;' : '';
330
- ?>
331
-
332
- <div id="<?php echo $id; ?>" style="<?php echo $style; ?>">
333
-
334
- <div id="publishing-action">
335
-
336
- <div class="acf-form-submit">
337
- <input type="submit" class="acf-button button button-primary button-large" value="<?php _e('Update', 'acfe'); ?>" />
338
- <span class="acf-spinner"></span>
339
- </div>
340
-
341
- </div>
342
- <div class="clear"></div>
343
-
344
- </div>
345
-
346
- <?php }
347
-
348
- // Create metabox localized data.
349
- $data = array(
350
- 'id' => 'acf-' . $field_group['ID'],
351
- 'key' => $field_group['key'],
352
- 'style' => $field_group['style'],
353
- 'label' => $field_group['label_placement'],
354
- 'edit' => acf_get_field_group_edit_link($field_group['ID'])
355
- );
356
-
357
- ?>
358
- <script type="text/javascript">
359
- if( typeof acf !== 'undefined' ) {
360
- acf.newPostbox(<?php echo wp_json_encode($data); ?>);
361
- }
362
- </script>
363
-
364
- <?php
365
-
366
- }
367
-
368
- function in_admin_header(){
369
-
370
- acf_enqueue_uploader();
371
-
372
- }
373
-
374
- function location_types($choices){
375
-
376
- $name = __('Post', 'acf');
377
-
378
- $choices[$name] = acfe_array_insert_after('post_type', $choices[$name], 'post_type_list', __('Post Type List'));
379
-
380
- return $choices;
381
-
382
- }
383
-
384
-
385
- function location_values($choices){
386
-
387
- $post_types = acf_get_post_types(array(
388
- 'show_ui' => 1,
389
- 'exclude' => array('attachment')
390
- ));
391
-
392
- $pretty_post_types = array();
393
-
394
- if(!empty($post_types)){
395
-
396
- $pretty_post_types = acf_get_pretty_post_types($post_types);
397
-
398
- }
399
-
400
- $choices = array('all' => __('All', 'acf'));
401
- $choices = array_merge($choices, $pretty_post_types);
402
-
403
- return $choices;
404
-
405
- }
406
-
407
- function location_match($match, $rule, $screen){
408
-
409
- if(!acf_maybe_get($screen, 'post_type_list') || !acf_maybe_get($rule, 'value'))
410
- return $match;
411
-
412
- $match = ($screen['post_type_list'] === $rule['value']);
413
-
414
- if($rule['value'] === 'all')
415
- $match = true;
416
-
417
- if($rule['operator'] === '!=')
418
- $match = !$match;
419
-
420
- return $match;
421
-
422
- }
423
-
424
- }
425
-
426
- new acfe_location_post_type_list();
427
-
428
  endif;
1
+ <?php
2
+
3
+ if(!defined('ABSPATH'))
4
+ exit;
5
+
6
+ if(!class_exists('acfe_location_post_type_list')):
7
+
8
+ class acfe_location_post_type_list{
9
+
10
+ public $post_type;
11
+
12
+ public $field_groups;
13
+
14
+ function __construct(){
15
+
16
+ add_action('load-edit.php', array($this, 'load'));
17
+
18
+ add_filter('acf/location/rule_types', array($this, 'location_types'));
19
+ add_filter('acf/location/rule_values/post_type_list', array($this, 'location_values'));
20
+ add_filter('acf/location/rule_match/post_type_list', array($this, 'location_match'), 10, 3);
21
+
22
+ }
23
+
24
+ function load(){
25
+
26
+ // Get post type
27
+ global $typenow;
28
+
29
+ $get_post_types = acf_get_post_types(array(
30
+ 'show_ui' => 1,
31
+ 'exclude' => array('attachment')
32
+ ));
33
+
34
+ // Check post type
35
+ if(!in_array($typenow, $get_post_types))
36
+ return;
37
+
38
+ // vars
39
+ $this->post_type = $typenow;
40
+
41
+ $this->post_id = acf_get_valid_post_id($this->post_type . '_options');
42
+
43
+ $this->field_groups = acf_get_field_groups(array(
44
+ 'post_type_list' => $this->post_type
45
+ ));
46
+
47
+ if(empty($this->field_groups))
48
+ return;
49
+
50
+ // Submit
51
+ if(acf_verify_nonce('post_type_list')){
52
+
53
+ // Validate
54
+ if(acf_validate_save_post(true)){
55
+
56
+ // Autoload
57
+ acf_update_setting('autoload', false);
58
+
59
+ // Save
60
+ acf_save_post($this->post_id);
61
+
62
+ // Redirect
63
+ wp_redirect(add_query_arg(array('message' => 'acfe_post_type_list')));
64
+ exit;
65
+
66
+ }
67
+
68
+ }
69
+
70
+ // Enqueue ACF JS
71
+ acf_enqueue_scripts();
72
+
73
+ // Success message
74
+ if(isset($_GET['message']) && $_GET['message'] === 'acfe_post_type_list'){
75
+
76
+ $object = get_post_type_object($this->post_type);
77
+
78
+ acf_add_admin_notice($object->label . ' List Saved.', 'success');
79
+
80
+ }
81
+
82
+ add_action('in_admin_header', array($this, 'in_admin_header'));
83
+
84
+ add_action('admin_footer', array($this, 'admin_footer'));
85
+
86
+ }
87
+
88
+ function admin_footer(){
89
+
90
+ // Init field groups by position
91
+ $field_groups = array();
92
+
93
+ foreach($this->field_groups as $field_group){
94
+
95
+ $field_groups[$field_group['position']][] = $field_group;
96
+
97
+ }
98
+
99
+ // Position: After Title
100
+ if(acf_maybe_get($field_groups, 'acf_after_title')){
101
+
102
+ $total = count($field_groups['acf_after_title']);
103
+
104
+ $current = 0; foreach($field_groups['acf_after_title'] as $field_group){ $current++;
105
+
106
+ add_meta_box(
107
+
108
+ // ID
109
+ 'acf-' . $field_group['ID'],
110
+
111
+ // Title
112
+ $field_group['title'],
113
+
114
+ // Render
115
+ array($this, 'metabox_render'),
116
+
117
+ // Screen
118
+ 'edit',
119
+
120
+ // Position
121
+ $field_group['position'],
122
+
123
+ // Priority
124
+ 'default',
125
+
126
+ // Args
127
+ array(
128
+ 'total' => $total,
129
+ 'current' => $current,
130
+ 'field_group' => $field_group
131
+ )
132
+
133
+ );
134
+
135
+ }
136
+
137
+ ?>
138
+ <div id="tmpl-acf-after-title" class="acfe-postbox acfe-postbox-no-handle">
139
+ <form class="acf-form" action="" method="post">
140
+
141
+ <div id="poststuff" style="padding-top:0;">
142
+
143
+ <?php do_meta_boxes('edit', 'acf_after_title', array()); ?>
144
+
145
+ </div>
146
+
147
+ </form>
148
+ </div>
149
+ <script type="text/javascript">
150
+ (function($){
151
+
152
+ // add after title
153
+ $('.subsubsub').before($('#tmpl-acf-after-title'));
154
+
155
+ })(jQuery);
156
+ </script>
157
+ <?php
158
+
159
+ }
160
+
161
+ // Position: Normal
162
+ if(acf_maybe_get($field_groups, 'normal')){
163
+
164
+ $total = count($field_groups['normal']);
165
+
166
+ $current = 0; foreach($field_groups['normal'] as $field_group){ $current++;
167
+
168
+ add_meta_box(
169
+
170
+ // ID
171
+ 'acf-' . $field_group['ID'],
172
+
173
+ // Title
174
+ $field_group['title'],
175
+
176
+ // Render
177
+ array($this, 'metabox_render'),
178
+
179
+ // Screen
180
+ 'edit',
181
+
182
+ // Position
183
+ $field_group['position'],
184
+
185
+ // Priority
186
+ 'default',
187
+
188
+ // Args
189
+ array(
190
+ 'total' => $total,
191
+ 'current' => $current,
192
+ 'field_group' => $field_group
193
+ )
194
+
195
+ );
196
+
197
+ }
198
+
199
+ ?>
200
+ <div id="tmpl-acf-normal" class="acfe-postbox acfe-postbox-no-handle">
201
+ <form class="acf-form" action="" method="post">
202
+
203
+ <div id="poststuff">
204
+
205
+ <?php do_meta_boxes('edit', 'normal', array()); ?>
206
+
207
+ </div>
208
+
209
+ </form>
210
+ </div>
211
+ <script type="text/javascript">
212
+ (function($){
213
+
214
+ // add normal
215
+ $('#posts-filter').after($('#tmpl-acf-normal'));
216
+
217
+ })(jQuery);
218
+ </script>
219
+ <?php
220
+
221
+ }
222
+
223
+ // Position: Side
224
+ if(acf_maybe_get($field_groups, 'side')){
225
+
226
+ $total = count($field_groups['side']);
227
+
228
+ $current = 0; foreach($field_groups['side'] as $field_group){ $current++;
229
+
230
+ add_meta_box(
231
+
232
+ // ID
233
+ 'acf-' . $field_group['ID'],
234
+
235
+ // Title
236
+ $field_group['title'],
237
+
238
+ // Render
239
+ array($this, 'metabox_render'),
240
+
241
+ // Screen
242
+ 'edit',
243
+
244
+ // Position
245
+ $field_group['position'],
246
+
247
+ // Priority
248
+ 'default',
249
+
250
+ // Args
251
+ array(
252
+ 'total' => $total,
253
+ 'current' => $current,
254
+ 'field_group' => $field_group
255
+ )
256
+
257
+ );
258
+
259
+ }
260
+
261
+ ?>
262
+ <div id="tmpl-acf-side" class="acfe-postbox acfe-postbox-no-handle">
263
+ <div class="acf-column-2">
264
+ <form class="acf-form" action="" method="post">
265
+
266
+ <div id="poststuff" style="padding-top:0; min-width:auto;">
267
+
268
+ <?php do_meta_boxes('edit', 'side', array()); ?>
269
+
270
+ </div>
271
+
272
+ </form>
273
+ </div>
274
+ </div>
275
+ <script type="text/javascript">
276
+ (function($){
277
+
278
+ // wrap form
279
+ $('#posts-filter').wrap('<div class="acf-columns-2" />');
280
+
281
+ // Move subsubsub inside column
282
+ $('#posts-filter').prepend($('.subsubsub'));
283
+
284
+ // Move After title field group
285
+ $('#posts-filter').prepend($('#tmpl-acf-after-title'));
286
+
287
+ // Move Normal field group
288
+ $('#posts-filter').append($('#tmpl-acf-normal'));
289
+
290
+ // add column main
291
+ $('#posts-filter').addClass('acf-column-1');
292
+
293
+ // add column side
294
+ $('#posts-filter').after($('#tmpl-acf-side'));
295
+
296
+ })(jQuery);
297
+ </script>
298
+ <?php
299
+
300
+ }
301
+
302
+ }
303
+
304
+ function metabox_render($array, $args){
305
+
306
+ $total = $args['args']['total'];
307
+ $current = $args['args']['current'];
308
+ $field_group = $args['args']['field_group'];
309
+
310
+ // Set post_id
311
+ $post_id = $this->post_id;
312
+
313
+ // Set form data
314
+ acf_form_data(array(
315
+ 'screen' => 'post_type_list',
316
+ 'post_id' => $post_id,
317
+ ));
318
+
319
+ // Get fields
320
+ $fields = acf_get_fields($field_group);
321
+
322
+ // Render fields
323
+ acf_render_fields($fields, $post_id, 'div', $field_group['instruction_placement']);
324
+
325
+ if($current === $total){ ?>
326
+
327
+ <?php
328
+ $id = ($field_group['style'] != 'seamless') ? 'major-publishing-actions' : '';
329
+ $style = ($field_group['style'] === 'seamless') ? 'padding:0 12px;' : '';
330
+ ?>
331
+
332
+ <div id="<?php echo $id; ?>" style="<?php echo $style; ?>">
333
+
334
+ <div id="publishing-action">
335
+
336
+ <div class="acf-form-submit">
337
+ <input type="submit" class="acf-button button button-primary button-large" value="<?php _e('Update', 'acfe'); ?>" />
338
+ <span class="acf-spinner"></span>
339
+ </div>
340
+
341
+ </div>
342
+ <div class="clear"></div>
343
+
344
+ </div>
345
+
346
+ <?php }
347
+
348
+ // Create metabox localized data.
349
+ $data = array(
350
+ 'id' => 'acf-' . $field_group['ID'],
351
+ 'key' => $field_group['key'],
352
+ 'style' => $field_group['style'],
353
+ 'label' => $field_group['label_placement'],
354
+ 'edit' => acf_get_field_group_edit_link($field_group['ID'])
355
+ );
356
+
357
+ ?>
358
+ <script type="text/javascript">
359
+ if( typeof acf !== 'undefined' ) {
360
+ acf.newPostbox(<?php echo wp_json_encode($data); ?>);
361
+ }
362
+ </script>
363
+
364
+ <?php
365
+
366
+ }
367
+
368
+ function in_admin_header(){
369
+
370
+ acf_enqueue_uploader();
371
+
372
+ }
373
+
374
+ function location_types($choices){
375
+
376
+ $name = __('Post', 'acf');
377
+
378
+ $choices[$name] = acfe_array_insert_after('post_type', $choices[$name], 'post_type_list', __('Post Type List'));
379
+
380
+ return $choices;
381
+
382
+ }
383
+
384
+
385
+ function location_values($choices){
386
+
387
+ $post_types = acf_get_post_types(array(
388
+ 'show_ui' => 1,
389
+ 'exclude' => array('attachment')
390
+ ));
391
+
392
+ $pretty_post_types = array();
393
+
394
+ if(!empty($post_types)){
395
+
396
+ $pretty_post_types = acf_get_pretty_post_types($post_types);
397
+
398
+ }
399
+
400
+ $choices = array('all' => __('All', 'acf'));
401
+ $choices = array_merge($choices, $pretty_post_types);
402
+
403
+ return $choices;
404
+
405
+ }
406
+
407
+ function location_match($match, $rule, $screen){
408
+
409
+ if(!acf_maybe_get($screen, 'post_type_list') || !acf_maybe_get($rule, 'value'))
410
+ return $match;
411
+
412
+ $match = ($screen['post_type_list'] === $rule['value']);
413
+
414
+ if($rule['value'] === 'all')
415
+ $match = true;
416
+
417
+ if($rule['operator'] === '!=')
418
+ $match = !$match;
419
+
420
+ return $match;
421
+
422
+ }
423
+
424
+ }
425
+
426
+ new acfe_location_post_type_list();
427
+
428
  endif;
includes/locations/taxonomy-list.php CHANGED
@@ -1,405 +1,405 @@
1
- <?php
2
-
3
- if(!defined('ABSPATH'))
4
- exit;
5
-
6
- if(!class_exists('acfe_location_taxonomy_list')):
7
-
8
- class acfe_location_taxonomy_list{
9
-
10
- public $taxonomy;
11
-
12
- public $field_groups;
13
-
14
- function __construct(){
15
-
16
- add_action('load-edit-tags.php', array($this, 'load'));
17
-
18
- add_filter('acf/location/rule_types', array($this, 'location_types'));
19
- add_filter('acf/location/rule_values/taxonomy_list', array($this, 'location_values'));
20
- add_filter('acf/location/rule_match/taxonomy_list', array($this, 'location_match'), 10, 3);
21
-
22
- }
23
-
24
- function load(){
25
-
26
- // Get page
27
- global $pagenow;
28
-
29
- if($pagenow === 'term.php')
30
- return;
31
-
32
- // Get taxonomy
33
- global $taxnow;
34
-
35
- // Check taxonomies
36
- if(!in_array($taxnow, acf_get_taxonomies()))
37
- return;
38
-
39
- $this->taxonomy = $taxnow;
40
-
41
- $this->post_id = acf_get_valid_post_id('tax_' . $this->taxonomy . '_options');
42
-
43
- $this->field_groups = acf_get_field_groups(array(
44
- 'taxonomy_list' => $this->taxonomy
45
- ));
46
-
47
- if(empty($this->field_groups))
48
- return;
49
-
50
- // Submit
51
- if(acf_verify_nonce('taxonomy_list')){
52
-
53
- // Validate
54
- if(acf_validate_save_post(true)){
55
-
56
- // Autoload
57
- acf_update_setting('autoload', false);
58
-
59
- // Save
60
- acf_save_post($this->post_id);
61
-
62
- // Redirect
63
- wp_redirect(add_query_arg(array('message' => 'acfe_taxonomy_list')));
64
- exit;
65
-
66
- }
67
-
68
- }
69
-
70
- // Enqueue ACF JS
71
- acf_enqueue_scripts();
72
-
73
- // Success message
74
- if(isset($_GET['message']) && $_GET['message'] === 'acfe_taxonomy_list'){
75
-
76
- $object = get_taxonomy($this->taxonomy);
77
-
78
- acf_add_admin_notice($object->label . ' List Saved.', 'success');
79
-
80
- }
81
-
82
- add_action('in_admin_header', array($this, 'in_admin_header'));
83
-
84
- add_action('admin_footer', array($this, 'admin_footer'));
85
-
86
- }
87
-
88
- function admin_footer(){
89
-
90
- // Init field groups by position
91
- $field_groups = array();
92
-
93
- foreach($this->field_groups as $field_group){
94
-
95
- $field_groups[$field_group['position']][] = $field_group;
96
-
97
- }
98
-
99
- // Position: After Title
100
- if(acf_maybe_get($field_groups, 'acf_after_title')){
101
-
102
- $total = count($field_groups['acf_after_title']);
103
-
104
- $current = 0; foreach($field_groups['acf_after_title'] as $field_group){ $current++;
105
-
106
- add_meta_box(
107
-
108
- // ID
109
- 'acf-' . $field_group['ID'],
110
-
111
- // Title
112
- $field_group['title'],
113
-
114
- // Render
115
- array($this, 'metabox_render'),
116
-
117
- // Screen
118
- 'edit',
119
-
120
- // Position
121
- $field_group['position'],
122
-
123
- // Priority
124
- 'default',
125
-
126
- // Args
127
- array(
128
- 'total' => $total,
129
- 'current' => $current,
130
- 'field_group' => $field_group
131
- )
132
-
133
- );
134
-
135
- }
136
-
137
- ?>
138
- <div id="tmpl-acf-after-title" class="acfe-postbox acfe-postbox-no-handle">
139
- <form class="acf-form" action="" method="post">
140
-
141
- <div id="poststuff">
142
-
143
- <?php do_meta_boxes('edit', 'acf_after_title', array()); ?>
144
-
145
- </div>
146
-
147
- </form>
148
- </div>
149
- <script type="text/javascript">
150
- (function($){
151
-
152
- // add after title
153
- $('.search-form').before($('#tmpl-acf-after-title'));
154
-
155
- })(jQuery);
156
- </script>
157
- <?php
158
-
159
- }
160
-
161
- // Position: Normal
162
- if(acf_maybe_get($field_groups, 'normal')){
163
-
164
- $total = count($field_groups['normal']);
165
-
166
- $current = 0; foreach($field_groups['normal'] as $field_group){ $current++;
167
-
168
- add_meta_box(
169
-
170
- // ID
171
- 'acf-' . $field_group['ID'],
172
-
173
- // Title
174
- $field_group['title'],
175
-
176
- // Render
177
- array($this, 'metabox_render'),
178
-
179
- // Screen
180
- 'edit',
181
-
182
- // Position
183
- $field_group['position'],
184
-
185
- // Priority
186
- 'default',
187
-
188
- // Args
189
- array(
190
- 'total' => $total,
191
- 'current' => $current,
192
- 'field_group' => $field_group
193
- )
194
-
195
- );
196
-
197
- }
198
-
199
- ?>
200
- <div id="tmpl-acf-normal" class="acfe-postbox acfe-postbox-no-handle">
201
- <form class="acf-form" action="" method="post">
202
-
203
- <div id="poststuff">
204
-
205
- <?php do_meta_boxes('edit', 'normal', array()); ?>
206
-
207
- </div>
208
-
209
- </form>
210
- </div>
211
- <script type="text/javascript">
212
- (function($){
213
-
214
- // add normal
215
- $('#posts-filter').after($('#tmpl-acf-normal'));
216
-
217
- })(jQuery);
218
- </script>
219
- <?php
220
-
221
- }
222
-
223
- // Position: Side
224
- if(acf_maybe_get($field_groups, 'side')){
225
-
226
- $total = count($field_groups['side']);
227
-
228
- $current = 0; foreach($field_groups['side'] as $field_group){ $current++;
229
-
230
- add_meta_box(
231
-
232
- // ID
233
- 'acf-' . $field_group['ID'],
234
-
235
- // Title
236
- $field_group['title'],
237
-
238
- // Render
239
- array($this, 'metabox_render'),
240
-
241
- // Screen
242
- 'edit',
243
-
244
- // Position
245
- $field_group['position'],
246
-
247
- // Priority
248
- 'default',
249
-
250
- // Args
251
- array(
252
- 'total' => $total,
253
- 'current' => $current,
254
- 'field_group' => $field_group
255
- )
256
-
257
- );
258
-
259
- }
260
-
261
- ?>
262
- <div id="tmpl-acf-side" class="acfe-postbox acfe-postbox-no-handle">
263
- <div class="acf-column-2">
264
- <form class="acf-form" action="" method="post">
265
-
266
- <div id="poststuff" style="padding-top:0; min-width:auto;">
267
-
268
- <?php do_meta_boxes('edit', 'side', array()); ?>
269
-
270
- </div>
271
-
272
- </form>
273
- </div>
274
- </div>
275
- <script type="text/javascript">
276
- (function($){
277
-
278
- // Wrap form
279
- $('.search-form').next('#col-container').andSelf().wrapAll('<div class="acf-columns-2"><div class="acf-column-1"></div></div>');
280
-
281
- // Move After title field group
282
- $('.acf-column-1').prepend($('#tmpl-acf-after-title'));
283
-
284
- // Add column side
285
- $('.acf-column-1').after($('#tmpl-acf-side'));
286
-
287
- })(jQuery);
288
- </script>
289
- <?php
290
-
291
- }
292
-
293
- }
294
-
295
- function metabox_render($array, $args){
296
-
297
- $total = $args['args']['total'];
298
- $current = $args['args']['current'];
299
- $field_group = $args['args']['field_group'];
300
-
301
- // Set post_id
302
- $post_id = $this->post_id;
303
-
304
- // Set form data
305
- acf_form_data(array(
306
- 'screen' => 'taxonomy_list',
307
- 'post_id' => $post_id,
308
- ));
309
-
310
- // Get fields
311
- $fields = acf_get_fields($field_group);
312
-
313
- // Render fields
314
- acf_render_fields($fields, $post_id, 'div', $field_group['instruction_placement']);
315
-
316
- if($current === $total){ ?>
317
-
318
- <?php
319
- $id = ($field_group['style'] != 'seamless') ? 'major-publishing-actions' : '';
320
- $style = ($field_group['style'] === 'seamless') ? 'padding:0 12px;' : '';
321
- ?>
322
-
323
- <div id="<?php echo $id; ?>" style="<?php echo $style; ?>">
324
-
325
- <div id="publishing-action">
326
-
327
- <div class="acf-form-submit">
328
- <input type="submit" class="acf-button button button-primary button-large" value="<?php _e('Update', 'acfe'); ?>" />
329
- <span class="acf-spinner"></span>
330
- </div>
331
-
332
- </div>
333
- <div class="clear"></div>
334
-
335
- </div>
336
-
337
- <?php }
338
-
339
- // Create metabox localized data.
340
- $data = array(
341
- 'id' => 'acf-' . $field_group['ID'],
342
- 'key' => $field_group['key'],
343
- 'style' => $field_group['style'],
344
- 'label' => $field_group['label_placement'],
345
- 'edit' => acf_get_field_group_edit_link($field_group['ID'])
346
- );
347
-
348
- ?>
349
- <script type="text/javascript">
350
- if( typeof acf !== 'undefined' ) {
351
- acf.newPostbox(<?php echo wp_json_encode($data); ?>);
352
- }
353
- </script>
354
-
355
- <?php
356
-
357
- }
358
-
359
- function in_admin_header(){
360
-
361
- acf_enqueue_uploader();
362
-
363
- }
364
-
365
- function location_types($choices){
366
-
367
- $name = __('Forms', 'acf');
368
-
369
- $choices[$name] = acfe_array_insert_after('taxonomy', $choices[$name], 'taxonomy_list', __('Taxonomy List'));
370
-
371
- return $choices;
372
-
373
- }
374
-
375
- function location_values($choices){
376
-
377
- $choices = array('all' => __('All', 'acf'));
378
- $choices = array_merge($choices, acf_get_taxonomy_labels());
379
-
380
- return $choices;
381
-
382
- }
383
-
384
- function location_match($match, $rule, $screen){
385
-
386
- if(!acf_maybe_get($screen, 'taxonomy_list') || !acf_maybe_get($rule, 'value'))
387
- return $match;
388
-
389
- $match = ($screen['taxonomy_list'] === $rule['value']);
390
-
391
- if($rule['value'] === 'all')
392
- $match = true;
393
-
394
- if($rule['operator'] === '!=')
395
- $match = !$match;
396
-
397
- return $match;
398
-
399
- }
400
-
401
- }
402
-
403
- new acfe_location_taxonomy_list();
404
-
405
  endif;
1
+ <?php
2
+
3
+ if(!defined('ABSPATH'))
4
+ exit;
5
+
6
+ if(!class_exists('acfe_location_taxonomy_list')):
7
+
8
+ class acfe_location_taxonomy_list{
9
+
10
+ public $taxonomy;
11
+
12
+ public $field_groups;
13
+
14
+ function __construct(){
15
+
16
+ add_action('load-edit-tags.php', array($this, 'load'));
17
+
18
+ add_filter('acf/location/rule_types', array($this, 'location_types'));
19
+ add_filter('acf/location/rule_values/taxonomy_list', array($this, 'location_values'));
20
+ add_filter('acf/location/rule_match/taxonomy_list', array($this, 'location_match'), 10, 3);
21
+
22
+ }
23
+
24
+ function load(){
25
+
26
+ // Get page
27
+ global $pagenow;
28
+
29
+ if($pagenow === 'term.php')
30
+ return;
31
+
32
+ // Get taxonomy
33
+ global $taxnow;
34
+
35
+ // Check taxonomies
36
+ if(!in_array($taxnow, acf_get_taxonomies()))
37
+ return;
38
+
39
+ $this->taxonomy = $taxnow;
40
+
41
+ $this->post_id = acf_get_valid_post_id('tax_' . $this->taxonomy . '_options');
42
+
43
+ $this->field_groups = acf_get_field_groups(array(
44
+ 'taxonomy_list' => $this->taxonomy
45
+ ));
46
+
47
+ if(empty($this->field_groups))
48
+ return;
49
+
50
+ // Submit
51
+ if(acf_verify_nonce('taxonomy_list')){
52
+
53
+ // Validate
54
+ if(acf_validate_save_post(true)){
55
+
56
+ // Autoload
57
+ acf_update_setting('autoload', false);
58
+
59
+ // Save
60
+ acf_save_post($this->post_id);
61
+
62
+ // Redirect
63
+ wp_redirect(add_query_arg(array('message' => 'acfe_taxonomy_list')));
64
+ exit;
65
+
66
+ }
67
+
68
+ }
69
+
70
+ // Enqueue ACF JS
71
+ acf_enqueue_scripts();
72
+
73
+ // Success message
74
+ if(isset($_GET['message']) && $_GET['message'] === 'acfe_taxonomy_list'){
75
+
76
+ $object = get_taxonomy($this->taxonomy);
77
+
78
+ acf_add_admin_notice($object->label . ' List Saved.', 'success');
79
+
80
+ }
81
+
82
+ add_action('in_admin_header', array($this, 'in_admin_header'));
83
+
84
+ add_action('admin_footer', array($this, 'admin_footer'));
85
+
86
+ }
87
+
88
+ function admin_footer(){
89
+
90
+ // Init field groups by position
91
+ $field_groups = array();
92
+
93
+ foreach($this->field_groups as $field_group){
94
+
95
+ $field_groups[$field_group['position']][] = $field_group;
96
+
97
+ }
98
+
99
+ // Position: After Title
100
+ if(acf_maybe_get($field_groups, 'acf_after_title')){
101
+
102
+ $total = count($field_groups['acf_after_title']);
103
+
104
+ $current = 0; foreach($field_groups['acf_after_title'] as $field_group){ $current++;
105
+
106
+ add_meta_box(
107
+
108
+ // ID
109
+ 'acf-' . $field_group['ID'],
110
+
111
+ // Title
112
+ $field_group['title'],
113
+
114
+ // Render
115
+ array($this, 'metabox_render'),
116
+
117
+ // Screen
118
+ 'edit',
119
+
120
+ // Position
121
+ $field_group['position'],
122
+
123
+ // Priority
124
+ 'default',
125
+
126
+ // Args
127
+ array(
128
+ 'total' => $total,
129
+ 'current' => $current,
130
+ 'field_group' => $field_group
131
+ )
132
+
133
+ );
134
+
135
+ }
136
+
137
+ ?>
138
+ <div id="tmpl-acf-after-title" class="acfe-postbox acfe-postbox-no-handle">
139
+ <form class="acf-form" action="" method="post">
140
+
141
+ <div id="poststuff">
142
+
143
+ <?php do_meta_boxes('edit', 'acf_after_title', array()); ?>
144
+
145
+ </div>
146
+
147
+ </form>
148
+ </div>
149
+ <script type="text/javascript">
150
+ (function($){
151
+
152
+ // add after title
153
+ $('.search-form').before($('#tmpl-acf-after-title'));
154
+
155
+ })(jQuery);
156
+ </script>
157
+ <?php
158
+
159
+ }
160
+
161
+ // Position: Normal
162
+ if(acf_maybe_get($field_groups, 'normal')){
163
+
164
+ $total = count($field_groups['normal']);
165
+
166
+ $current = 0; foreach($field_groups['normal'] as $field_group){ $current++;
167
+
168
+ add_meta_box(
169
+
170
+ // ID
171
+ 'acf-' . $field_group['ID'],
172
+
173
+ // Title
174
+ $field_group['title'],
175
+
176
+ // Render
177
+ array($this, 'metabox_render'),
178
+
179
+ // Screen
180
+ 'edit',
181
+
182
+ // Position
183
+ $field_group['position'],
184
+
185
+ // Priority
186
+ 'default',
187
+
188
+ // Args
189
+ array(
190
+ 'total' => $total,
191
+ 'current' => $current,
192
+ 'field_group' => $field_group
193
+ )
194
+
195
+ );
196
+
197
+ }
198
+
199
+ ?>
200
+ <div id="tmpl-acf-normal" class="acfe-postbox acfe-postbox-no-handle">
201
+ <form class="acf-form" action="" method="post">
202
+
203
+ <div id="poststuff">
204
+
205
+ <?php do_meta_boxes('edit', 'normal', array()); ?>
206
+
207
+ </div>
208
+
209
+ </form>
210
+ </div>
211
+ <script type="text/javascript">
212
+ (function($){
213
+
214
+ // add normal
215
+ $('#posts-filter').after($('#tmpl-acf-normal'));
216
+
217
+ })(jQuery);
218
+ </script>
219
+ <?php
220
+
221
+ }
222
+
223
+ // Position: Side
224
+ if(acf_maybe_get($field_groups, 'side')){
225
+
226
+ $total = count($field_groups['side']);
227
+
228
+ $current = 0; foreach($field_groups['side'] as $field_group){ $current++;
229
+
230
+ add_meta_box(
231
+
232
+ // ID
233
+ 'acf-' . $field_group['ID'],
234
+
235
+ // Title
236
+ $field_group['title'],
237
+
238
+ // Render
239
+ array($this, 'metabox_render'),
240
+
241
+ // Screen
242
+ 'edit',
243
+
244
+ // Position
245
+ $field_group['position'],
246
+
247
+ // Priority
248
+ 'default',
249
+
250
+ // Args
251
+ array(
252
+ 'total' => $total,
253
+ 'current' => $current,
254
+ 'field_group' => $field_group
255
+ )
256
+
257
+ );
258
+
259
+ }
260
+
261
+ ?>
262
+ <div id="tmpl-acf-side" class="acfe-postbox acfe-postbox-no-handle">
263
+ <div class="acf-column-2">
264
+ <form class="acf-form" action="" method="post">
265
+
266
+ <div id="poststuff" style="padding-top:0; min-width:auto;">
267
+
268
+ <?php do_meta_boxes('edit', 'side', array()); ?>
269
+
270
+ </div>
271
+
272
+ </form>
273
+ </div>
274
+ </div>
275
+ <script type="text/javascript">
276
+ (function($){
277
+
278
+ // Wrap form
279
+ $('.search-form').next('#col-container').andSelf().wrapAll('<div class="acf-columns-2"><div class="acf-column-1"></div></div>');
280
+
281
+ // Move After title field group
282
+ $('.acf-column-1').prepend($('#tmpl-acf-after-title'));
283
+
284
+ // Add column side
285
+ $('.acf-column-1').after($('#tmpl-acf-side'));
286
+
287
+ })(jQuery);
288
+ </script>
289
+ <?php
290
+
291
+ }
292
+
293
+ }
294
+
295
+ function metabox_render($array, $args){
296
+
297
+ $total = $args['args']['total'];
298
+ $current = $args['args']['current'];
299
+ $field_group = $args['args']['field_group'];
300
+
301
+ // Set post_id
302
+ $post_id = $this->post_id;
303
+
304
+ // Set form data
305
+ acf_form_data(array(
306
+ 'screen' => 'taxonomy_list',
307
+ 'post_id' => $post_id,
308
+ ));
309
+
310
+ // Get fields
311
+ $fields = acf_get_fields($field_group);
312
+
313
+ // Render fields
314
+ acf_render_fields($fields, $post_id, 'div', $field_group['instruction_placement']);
315
+
316
+ if($current === $total){ ?>
317
+
318
+ <?php
319
+ $id = ($field_group['style'] != 'seamless') ? 'major-publishing-actions' : '';
320
+ $style = ($field_group['style'] === 'seamless') ? 'padding:0 12px;' : '';
321
+ ?>
322
+
323
+ <div id="<?php echo $id; ?>" style="<?php echo $style; ?>">
324
+
325
+ <div id="publishing-action">
326
+
327
+ <div class="acf-form-submit">
328
+ <input type="submit" class="acf-button button button-primary button-large" value="<?php _e('Update', 'acfe'); ?>" />
329
+ <span class="acf-spinner"></span>
330
+ </div>
331
+
332
+ </div>
333
+ <div class="clear"></div>
334
+
335
+ </div>
336
+
337
+ <?php }
338
+
339
+ // Create metabox localized data.
340
+ $data = array(
341
+ 'id' => 'acf-' . $field_group['ID'],
342
+ 'key' => $field_group['key'],
343
+ 'style' => $field_group['style'],
344
+ 'label' => $field_group['label_placement'],
345
+ 'edit' => acf_get_field_group_edit_link($field_group['ID'])
346
+ );
347
+
348
+ ?>
349
+ <script type="text/javascript">
350
+ if( typeof acf !== 'undefined' ) {
351
+ acf.newPostbox(<?php echo wp_json_encode($data); ?>);
352
+ }
353
+ </script>
354
+
355
+ <?php
356
+
357
+ }
358
+
359
+ function in_admin_header(){
360
+
361
+ acf_enqueue_uploader();
362
+
363
+ }
364
+
365
+ function location_types($choices){
366
+
367
+ $name = __('Forms', 'acf');
368
+
369
+ $choices[$name] = acfe_array_insert_after('taxonomy', $choices[$name], 'taxonomy_list', __('Taxonomy List'));
370
+
371
+ return $choices;
372
+
373
+ }
374
+
375
+ function location_values($choices){
376
+
377
+ $choices = array('all' => __('All', 'acf'));
378
+ $choices = array_merge($choices, acf_get_taxonomy_labels());
379
+
380
+ return $choices;
381
+
382
+ }
383
+
384
+ function location_match($match, $rule, $screen){
385
+
386
+ if(!acf_maybe_get($screen, 'taxonomy_list') || !acf_maybe_get($rule, 'value'))
387
+ return $match;
388
+
389
+ $match = ($screen['taxonomy_list'] === $rule['value']);
390
+
391
+ if($rule['value'] === 'all')
392
+ $match = true;
393
+
394
+ if($rule['operator'] === '!=')
395
+ $match = !$match;
396
+
397
+ return $match;
398
+
399
+ }
400
+
401
+ }
402
+
403
+ new acfe_location_taxonomy_list();
404
+
405
  endif;
includes/modules/autosync.php CHANGED
@@ -308,22 +308,12 @@ class ACFE_AutoSync{
308
  * PHP: Save File
309
  */
310
  function save_file($key, $field_group){
311
-
312
- // Determine save location.
313
- if(isset($this->php_files[$key])){
314
-
315
- $file = $this->php_files[$key];
316
-
317
- }else{
318
-
319
- $path = untrailingslashit(acf_get_setting('acfe/php_save'));
320
-
321
- if(!is_writable($path))
322
- return false;
323
-
324
- $file = "$path/$key.php";
325
-
326
- }
327
 
328
  // Translation
329
  $l10n = acf_get_setting('l10n');
@@ -402,32 +392,17 @@ class ACFE_AutoSync{
402
  * PHP: Delete File
403
  */
404
  function delete_file($key){
405
-
406
- if(isset($this->php_files[$key]) && is_readable($this->php_files[$key])){
407
-
408
- unlink($this->php_files[$key]);
409
-
410
- return true;
411
-
412
- }else{
413
-
414
- $path = untrailingslashit(acf_get_setting('acfe/php_save'));
415
-
416
- if(!is_dir($path))
417
- return false;
418
 
419
- $file = "$path/$key.php";
420
-
421
- if(is_readable($file)){
422
 
423
- unlink($file);
424
-
425
- return true;
426
-
427
- }
428
-
429
- }
430
 
 
 
 
 
 
431
  return false;
432
 
433
  }
308
  * PHP: Save File
309
  */
310
  function save_file($key, $field_group){
311
+
312
+ $path = acf_get_setting('acfe/php_save');
313
+ $file = untrailingslashit($path) . '/' . $key . '.php';
314
+
315
+ if(!is_writable($path))
316
+ return false;
 
 
 
 
 
 
 
 
 
 
317
 
318
  // Translation
319
  $l10n = acf_get_setting('l10n');
392
  * PHP: Delete File
393
  */
394
  function delete_file($key){
 
 
 
 
 
 
 
 
 
 
 
 
 
395
 
396
+ $path = acf_get_setting('acfe/php_save');
397
+ $file = untrailingslashit($path) . '/' . $key . '.php';
 
398
 
399
+ if(is_readable($file)){
 
 
 
 
 
 
400
 
401
+ unlink($file);
402
+ return true;
403
+
404
+ }
405
+
406
  return false;
407
 
408
  }
includes/modules/dynamic-options-page.php CHANGED
@@ -102,6 +102,14 @@ function acfe_dop_registers(){
102
 
103
  }
104
 
 
 
 
 
 
 
 
 
105
  // Merge
106
  $options_pages = array_merge($options_top_pages, $options_sub_pages);
107
 
@@ -344,6 +352,20 @@ function acfe_dop_filter_status_publish($post){
344
 
345
  }
346
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
347
  /**
348
  * Admin List Columns
349
  */
102
 
103
  }
104
 
105
+ if(!empty($options_sub_pages)){
106
+
107
+ usort($options_sub_pages, function($a, $b){
108
+ return (int) $a['position'] - (int) $b['position'];
109
+ });
110
+
111
+ }
112
+
113
  // Merge
114
  $options_pages = array_merge($options_top_pages, $options_sub_pages);
115
 
352
 
353
  }
354
 
355
+ add_action('pre_get_posts', 'acfe_dop_filter_admin_list', 15);
356
+ function acfe_dop_filter_admin_list($query){
357
+
358
+ global $pagenow;
359
+
360
+ if (!is_admin() || !$query->is_main_query() || $pagenow !== 'edit.php' || $query->get('post_type') !== 'acfe-dop')
361
+ return;
362
+
363
+ $query->set('meta_key', 'position');
364
+ $query->set('orderby', 'meta_value_num title');
365
+ $query->set('order', 'ASC');
366
+
367
+ }
368
+
369
  /**
370
  * Admin List Columns
371
  */
includes/modules/dynamic-post-type.php CHANGED
@@ -54,6 +54,18 @@ function acfe_dpt_register(){
54
 
55
  }
56
 
 
 
 
 
 
 
 
 
 
 
 
 
57
  /**
58
  * WP Register Post Types
59
  */
@@ -324,9 +336,6 @@ function acfe_dpt_filter_save($post_id){
324
  'post_name' => $name,
325
  ));
326
 
327
- // Flush permalinks
328
- flush_rewrite_rules();
329
-
330
  }
331
 
332
  /**
54
 
55
  }
56
 
57
+
58
+ add_action('current_screen', 'acfe_dpt_current_screen');
59
+ function acfe_dpt_current_screen(){
60
+
61
+ if(!acf_is_screen('acfe-dpt'))
62
+ return;
63
+
64
+ // Flush Permalinks
65
+ flush_rewrite_rules();
66
+
67
+ }
68
+
69
  /**
70
  * WP Register Post Types
71
  */
336
  'post_name' => $name,
337
  ));
338
 
 
 
 
339
  }
340
 
341
  /**
includes/modules/dynamic-taxonomy.php CHANGED
@@ -54,6 +54,17 @@ function acfe_dt_register(){
54
 
55
  }
56
 
 
 
 
 
 
 
 
 
 
 
 
57
  /**
58
  * WP Register Taxonomies
59
  */
@@ -298,9 +309,6 @@ function acfe_dt_filter_save($post_id){
298
  'post_name' => $name,
299
  ));
300
 
301
- // Flush permalinks
302
- flush_rewrite_rules();
303
-
304
  }
305
 
306
  /**
54
 
55
  }
56
 
57
+ add_action('current_screen', 'acfe_dt_current_screen');
58
+ function acfe_dt_current_screen(){
59
+
60
+ if(!acf_is_screen('acfe-dt'))
61
+ return;
62
+
63
+ // Flush Permalinks
64
+ flush_rewrite_rules();
65
+
66
+ }
67
+
68
  /**
69
  * WP Register Taxonomies
70
  */
309
  'post_name' => $name,
310
  ));
311
 
 
 
 
312
  }
313
 
314
  /**
init.php CHANGED
@@ -51,8 +51,11 @@ function acfe_plugin_row($plugin_file, $plugin_data, $status){
51
  if(acfe()->has_acf())
52
  return;
53
 
 
54
  $colspan = 4;
55
- if(acf_version_compare($GLOBALS['wp_version'], '<', '5.5'))
 
 
56
  $colspan = 3;
57
 
58
  ?>
51
  if(acfe()->has_acf())
52
  return;
53
 
54
+ // >= WP 5.5
55
  $colspan = 4;
56
+
57
+ // < WP 5.5
58
+ if(version_compare($GLOBALS['wp_version'], '5.5', '<'))
59
  $colspan = 3;
60
 
61
  ?>
readme.txt CHANGED
@@ -5,7 +5,7 @@ Tags: acf, custom fields, meta, admin, fields, form, repeater, content
5
  Requires at least: 4.9
6
  Tested up to: 5.5
7
  Requires PHP: 5.6
8
- Stable tag: 0.8.7.2
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
@@ -670,6 +670,22 @@ function my_acfe_modules(){
670
 
671
  == Changelog ==
672
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
673
  = 0.8.7.2 =
674
  * Module: AutoSync - Reworked codebase, enhanced Field Groups Columns and added more information about files/folders detection
675
  * Module: AutoSync - Added filters to target a specific field group for the PHP & Json save
5
  Requires at least: 4.9
6
  Tested up to: 5.5
7
  Requires PHP: 5.6
8
+ Stable tag: 0.8.7.3
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
670
 
671
  == Changelog ==
672
 
673
+ = 0.8.7.3 =
674
+ * Field: Flexible Content - Fixed "Copy/Paste" function which wasn't working correctly with WYSIWYG & Code Editor fields since the latest ACF 5.9 update
675
+ * Field: Column - Columns sizes are now based on a grid of 12 (1/12, 2/12, 3/12, 4/12 ...)
676
+ * Field: Taxonomy - Added compatibility with "Value equal", "Value not equal", "Value pattern" & "Value contains" conditional logic
677
+ * Field: Select - "Placeholder" setting is now only available when "Stylised UI" is enabled with "Allow multiple" or "Allow null"
678
+ * Module: Dynamic Post Type - Fixed "Post Type Archive Location = All" which incorrectly matched Options Pages
679
+ * Module: Dynamic Post Type - "Edit Post Type Archive" Admin bar item is now only displayed when the "Admin Archive Page" setting is enabled
680
+ * Module: Dynamic Post Type/Taxonomy - WP Permalinks are now automatically regenerated on each save
681
+ * Module: Dynamic Options Pages - Sub Options Pages are now ordered based on the "Position" setting
682
+ * Module: Dynamic Forms - Fixed an issue where visitors could not upload Image/File when using the WP modal field setting
683
+ * Module: PHP AutoSync - Updated save logic to match the new ACF 5.9.1 version (See ACF Pro 5.9.1 changelog)
684
+ * Field Groups - Added more width to the "Fields" column
685
+ * General: JS & CSS files are now minified and concatenated. `SCRIPT_DEBUG` controls the unminified version
686
+ * General: Fixed potential error during plugin activation when ACF Pro wasn't activated
687
+ * General: Gutenberg - Enhanced WP Metabox Styles
688
+
689
  = 0.8.7.2 =
690
  * Module: AutoSync - Reworked codebase, enhanced Field Groups Columns and added more information about files/folders detection
691
  * Module: AutoSync - Added filters to target a specific field group for the PHP & Json save