Flexible Checkout Fields for WooCommerce – WooCommerce Checkout Manager - Version 3.0.0

Version Description

  • 2021-03-01 =
  • Major Update!
  • Dropped support for Flexible Checkout Fields PRO version lower than 3.0
  • Added new admin page to manage plugin settings
  • Added validation for fields on settings page
Download this release

Release Info

Developer wpdesk
Plugin Icon wp plugin Flexible Checkout Fields for WooCommerce – WooCommerce Checkout Manager
Version 3.0.0
Comparing to
See all releases

Code changes from version 2.9.2 to 3.0.0

Files changed (137) hide show
  1. assets/css/admin.css +0 -203
  2. assets/css/admin.min.css +1 -1
  3. assets/css/new-admin.css +1 -0
  4. assets/fonts/icons/icomoon.eot +0 -0
  5. assets/fonts/icons/icomoon.svg +49 -0
  6. assets/fonts/icons/icomoon.ttf +0 -0
  7. assets/fonts/icons/icomoon.woff +0 -0
  8. assets/fonts/icons/selection.json +1 -0
  9. assets/js/new-admin.js +38 -0
  10. classes/filed-validation.php +1 -1
  11. classes/plugin.php +0 -64
  12. classes/settings.php +2 -292
  13. classes/views/settings-ads.php +0 -28
  14. classes/views/settings-fields.php +0 -1123
  15. classes/views/settings-pro.php +0 -26
  16. classes/views/settings-settings.php +0 -40
  17. classes/views/settings-tabs.php +0 -18
  18. flexible-checkout-fields.php +6 -6
  19. lang/flexible-checkout-fields.pot +237 -356
  20. readme.txt +7 -1
  21. src/Admin/NoticeReview.php +1 -1
  22. src/Admin/Page.php +41 -0
  23. src/Field/FieldData.php +66 -0
  24. src/Field/Type/CheckboxType.php +55 -0
  25. src/Field/Type/ColorType.php +55 -0
  26. src/Field/Type/DateType.php +55 -0
  27. src/Field/Type/DefaultType.php +107 -0
  28. src/Field/Type/FileType.php +55 -0
  29. src/Field/Type/HeadingType.php +55 -0
  30. src/Field/Type/HtmlType.php +55 -0
  31. src/Field/Type/Multiselect.php +55 -0
  32. src/Field/Type/RadioType.php +55 -0
  33. src/Field/Type/SelectType.php +55 -0
  34. src/Field/Type/TextType.php +114 -0
  35. src/Field/Type/TextareaType.php +114 -0
  36. src/Field/Type/TimeType.php +55 -0
  37. src/Field/Type/TypeAbstract.php +87 -0
  38. src/Field/Type/TypeIntegration.php +73 -0
  39. src/Field/Type/TypeInterface.php +79 -0
  40. src/Field/Type/Wc/WcAddress2Type.php +108 -0
  41. src/Field/Type/Wc/WcCountryType.php +101 -0
  42. src/Field/Type/Wc/WcDefaultType.php +127 -0
  43. src/Field/Type/Wc/WcNotesType.php +114 -0
  44. src/Field/Type/Wc/WcPostcodeType.php +103 -0
  45. src/Field/Type/Wc/WcStateType.php +103 -0
  46. src/Field/Types.php +62 -0
  47. src/Helpers/Shortener.php +2 -2
  48. src/Plugin.php +8 -1
  49. src/Settings/Form/EditFieldsForm.php +133 -0
  50. src/Settings/Form/FormAbstract.php +17 -0
  51. src/Settings/Form/FormIntegration.php +80 -0
  52. src/Settings/Form/FormInterface.php +40 -0
  53. src/Settings/Form/SettingsPageForm.php +99 -0
  54. src/Settings/Forms.php +28 -0
  55. src/Settings/Menu.php +108 -0
  56. src/Settings/Option/CssOption.php +91 -0
  57. src/Settings/Option/CustomFieldOption.php +56 -0
  58. src/Settings/Option/DisplayOnAccountAddressOption.php +55 -0
  59. src/Settings/Option/DisplayOnAccountOrderOption.php +55 -0
  60. src/Settings/Option/DisplayOnEmailsOption.php +55 -0
  61. src/Settings/Option/DisplayOnOption.php +74 -0
  62. src/Settings/Option/DisplayOnThankYouOption.php +55 -0
  63. src/Settings/Option/DisplayOnWithoutAddressOption.php +33 -0
  64. src/Settings/Option/EnabledOption.php +81 -0
  65. src/Settings/Option/FieldTypeOption.php +47 -0
  66. src/Settings/Option/FormattingFieldLabelOption.php +55 -0
  67. src/Settings/Option/FormattingNewLineOption.php +55 -0
  68. src/Settings/Option/FormattingOption.php +70 -0
  69. src/Settings/Option/FormattingStateAbbrOption.php +55 -0
  70. src/Settings/Option/FormattingStateCommaOption.php +55 -0
  71. src/Settings/Option/FormattingStateOption.php +70 -0
  72. src/Settings/Option/FormattingWcOption.php +29 -0
  73. src/Settings/Option/LabelOption.php +79 -0
  74. src/Settings/Option/LabelOptionallyOption.php +27 -0
  75. src/Settings/Option/LogicAdvOption.php +72 -0
  76. src/Settings/Option/NameOption.php +75 -0
  77. src/Settings/Option/OptionAbstract.php +302 -0
  78. src/Settings/Option/OptionIntegration.php +81 -0
  79. src/Settings/Option/OptionInterface.php +186 -0
  80. src/Settings/Option/PlaceholderOption.php +56 -0
  81. src/Settings/Option/PricingAdvOption.php +63 -0
  82. src/Settings/Option/PriorityOption.php +58 -0
  83. src/Settings/Option/RequiredHiddenOption.php +35 -0
  84. src/Settings/Option/RequiredOption.php +56 -0
  85. src/Settings/Option/SettingJqueryCssOption.php +56 -0
  86. src/Settings/Option/SettingJqueryOption.php +58 -0
  87. src/Settings/Option/SettingSectionsAdvOption.php +53 -0
  88. src/Settings/Option/ValidationInfoOption.php +62 -0
  89. src/Settings/Option/ValidationOption.php +86 -0
  90. src/Settings/Page.php +240 -0
  91. src/Settings/Route/RouteAbstract.php +45 -0
  92. src/Settings/Route/RouteIntegration.php +97 -0
  93. src/Settings/Route/RouteInterface.php +46 -0
  94. src/Settings/Route/UpdateFormFieldsRoute.php +69 -0
  95. src/Settings/Route/UpdateFormSettingsRoute.php +66 -0
  96. src/Settings/Routes.php +28 -0
  97. src/Settings/Tab/AdvancedTab.php +46 -0
  98. src/Settings/Tab/AppearanceTab.php +46 -0
  99. src/Settings/Tab/DisplayTab.php +46 -0
  100. src/Settings/Tab/GeneralTab.php +46 -0
  101. src/Settings/Tab/LogicTab.php +46 -0
  102. src/Settings/Tab/PricingTab.php +46 -0
  103. src/Settings/Tab/TabAbstract.php +17 -0
  104. src/Settings/Tab/TabIntegration.php +69 -0
  105. src/Settings/Tab/TabInterface.php +35 -0
  106. src/Settings/Tabs.php +36 -0
  107. templates/views/admin-page.php +88 -0
  108. vendor/autoload.php +1 -1
  109. vendor/composer/autoload_classmap.php +84 -0
  110. vendor/composer/autoload_real.php +4 -4
  111. vendor/composer/autoload_static.php +88 -4
  112. vendor_prefixed/monolog/monolog/composer.json +3 -10
  113. vendor_prefixed/monolog/monolog/src/Monolog/ErrorHandler.php +1 -0
  114. vendor_prefixed/monolog/monolog/src/Monolog/Handler/DynamoDbHandler.php +1 -0
  115. vendor_prefixed/monolog/monolog/src/Monolog/Handler/FirePHPHandler.php +1 -1
  116. vendor_prefixed/monolog/monolog/src/Monolog/Handler/GelfHandler.php +1 -1
  117. vendor_prefixed/monolog/monolog/src/Monolog/Handler/HipChatHandler.php +2 -2
  118. vendor_prefixed/monolog/monolog/src/Monolog/Handler/RavenHandler.php +1 -1
  119. vendor_prefixed/monolog/monolog/src/Monolog/Handler/RedisHandler.php +1 -1
  120. vendor_prefixed/monolog/monolog/src/Monolog/Handler/StreamHandler.php +1 -1
  121. vendor_prefixed/monolog/monolog/src/Monolog/Logger.php +1 -1
  122. vendor_prefixed/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php +28 -3
  123. vendor_prefixed/monolog/monolog/src/Monolog/Utils.php +1 -1
  124. vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/CommandProvider.php +2 -1
  125. vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/RunCodeceptionTests.php +1 -1
  126. vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/RunLocalCodeceptionTests.php +37 -0
  127. vendor_prefixed/wpdesk/wp-plugin-flow/composer.json +5 -5
  128. vendor_prefixed/wpdesk/wp-plugin-flow/src/Initialization/HelperInstanceAsFilterTrait.php +1 -1
  129. vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager.php +1 -1
  130. vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/License/Action/LicenseActivation.php +1 -1
  131. vendor_prefixed/wpdesk/wp-wpdesk-license/src/ServerAddressRepository.php +18 -1
  132. vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/class-wpdesk-tracker.php +3 -7
  133. vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/views/tracker-notice.php +0 -2
  134. views/settings-field-advanced-js.php +0 -11
  135. views/settings-field-advanced.php +0 -13
  136. views/settings-field-pricing-js.php +0 -11
  137. views/settings-field-pricing.php +0 -13
assets/css/admin.css CHANGED
@@ -1,206 +1,3 @@
1
- /* Global */
2
- .woocommerce_page_inspire_checkout_fields_settings .spinner {
3
- float: left;
4
- }
5
-
6
- .woocommerce_page_inspire_checkout_fields_settings input[type="text"],
7
- .woocommerce_page_inspire_checkout_fields_settings input[type="number"],
8
- .woocommerce_page_inspire_checkout_fields_settings textarea,
9
- .woocommerce_page_inspire_checkout_fields_settings select {
10
- width: 100%;
11
- }
12
-
13
- span.inspire-file-error {
14
- color: red;
15
- font-weight: bold;
16
- }
17
-
18
- .woocommerce_page_inspire_checkout_fields_settings .hide {
19
- display: none;
20
- }
21
-
22
- .woocommerce_page_inspire_checkout_fields_settings .rate {
23
- text-align: center;
24
- }
25
-
26
- .woocommerce_page_inspire_checkout_fields_settings .rate a {
27
- text-decoration: none;
28
- }
29
-
30
- /* Add New Field Box */
31
- .woocommerce_page_inspire_checkout_fields_settings .add-new-field-box h3 {
32
- background: #f5f5f5;
33
- border-bottom: 1px solid #ddd;
34
- color: #23282d;
35
- font-size: 14px;
36
- line-height: 21px;
37
- padding: 10px 10px 11px 14px;
38
- margin: 0;
39
- }
40
-
41
- .woocommerce_page_inspire_checkout_fields_settings #add-new-field .accordion-section-content {
42
- padding: 11px 13px 8px;
43
- }
44
-
45
- .woocommerce_page_inspire_checkout_fields_settings .add-new-field-content > div {
46
- margin: 5px 0 10px;
47
- }
48
-
49
- .woocommerce_page_inspire_checkout_fields_settings .add-new-field-box .stuffbox {
50
- margin-top: 25px;
51
- }
52
-
53
- /* Fields */
54
- .woocommerce_page_inspire_checkout_fields_settings #nav-menu-header h3 {
55
- color: #23282d;
56
- font-size: 14px;
57
- float: left;
58
- line-height: 28px;
59
- margin: 0;
60
- }
61
-
62
- .woocommerce_page_inspire_checkout_fields_settings .fields-container {
63
- border-right: 1px solid #ddd;
64
- float: left;
65
- width: 513px;
66
- }
67
-
68
- .woocommerce_page_inspire_checkout_fields_settings ul.fields {
69
- padding-top: 0;
70
- }
71
-
72
- .woocommerce_page_inspire_checkout_fields_settings .menu-item-bar .menu-item-handle,
73
- .woocommerce_page_inspire_checkout_fields_settings .menu-item-settings {
74
- width: 100%;
75
- max-width: 100%;
76
- box-sizing: border-box;
77
- }
78
-
79
- .woocommerce_page_inspire_checkout_fields_settings .field-item .menu-item-bar .menu-item-handle .item-title {
80
- margin-right: 1.5em;
81
- overflow: hidden;
82
- text-overflow: ellipsis;
83
- white-space: nowrap;
84
- }
85
- /*
86
- .woocommerce_page_inspire_checkout_fields_settings .field-item .menu-item-bar .menu-item-handle .item-title:before {
87
- content: '\f333';
88
- font-family: Dashicons;
89
- text-align: center;
90
- line-height: 1;
91
- color: #999;
92
- display: block;
93
- width: 20px;
94
- float: left;
95
- height: 17px;
96
- line-height: 22px;
97
- }
98
- */
99
- .woocommerce_page_inspire_checkout_fields_settings .field-item.just-added .menu-item-bar .menu-item-handle {
100
- border-color: #999;
101
- }
102
-
103
- .woocommerce_page_inspire_checkout_fields_settings .field-item.field-hidden .item-title {
104
- color: #898e93;
105
- font-style: italic;
106
- }
107
-
108
- .woocommerce_page_inspire_checkout_fields_settings .field-item .menu-item-bar .menu-item-handle .item-type {
109
- float:right;
110
- padding: unset;
111
- font-weight: normal;
112
- font-style: italic;
113
- }
114
-
115
- .woocommerce_page_inspire_checkout_fields_settings .field-settings {
116
- display: none;
117
- padding: 10px 0 10px 10px;
118
- }
119
-
120
- .woocommerce_page_inspire_checkout_fields_settings .field-settings select {
121
- max-width: 100%;
122
- }
123
-
124
- .woocommerce_page_inspire_checkout_fields_settings .field-settings-tab-container > div {
125
- margin: 5px 0 10px;
126
- }
127
-
128
- .woocommerce_page_inspire_checkout_fields_settings .field-settings label {
129
- display: block;
130
- margin-bottom: 5px;
131
- }
132
-
133
- .woocommerce_page_inspire_checkout_fields_settings .field-settings .element-option {
134
- display: none;
135
- }
136
-
137
- .woocommerce_page_inspire_checkout_fields_settings .field-settings .element-option.show {
138
- display: block;
139
- }
140
-
141
- .woocommerce_page_inspire_checkout_fields_settings .field-settings a.remove-field {
142
- color: #a00;
143
- display: inline-block;
144
- margin: 10px 0 5px 420px;
145
- text-decoration: none;
146
- }
147
-
148
- .woocommerce_page_inspire_checkout_fields_settings .field-settings a.remove-field:hover {
149
- color: red;
150
- }
151
-
152
- .woocommerce_page_inspire_checkout_fields_settings #nav-menu-footer {
153
- border-top: 1px solid #ddd;
154
- clear: both;
155
- }
156
-
157
- .woocommerce_page_inspire_checkout_fields_settings #nav-menu-footer .button {
158
- float: left;
159
- }
160
-
161
- .woocommerce_page_inspire_checkout_fields_settings #nav-menu-footer .reset_settings {
162
- border: none;
163
- box-shadow: none;
164
- color: #a00;
165
- float: right;
166
- padding: 0;
167
- }
168
-
169
- .woocommerce_page_inspire_checkout_fields_settings #nav-menu-footer .reset_settings:hover {
170
- color: red;
171
- }
172
-
173
- /* Tabs */
174
- .woocommerce_page_inspire_checkout_fields_settings .fields-container .nav-tab {
175
- font-size: 12px;
176
- margin-left: 0;
177
- margin-right: .5em;
178
- }
179
-
180
- .woocommerce_page_inspire_checkout_fields_settings .fields-container .nav-tab-active,
181
- .woocommerce_page_inspire_checkout_fields_settings .fields-container .nav-tab-active:focus,
182
- .woocommerce_page_inspire_checkout_fields_settings .fields-container .nav-tab-active:focus:active,
183
- .woocommerce_page_inspire_checkout_fields_settings .fields-container .nav-tab-active:hover {
184
- background-color: #fff;
185
- border-bottom: 0;
186
- }
187
-
188
- .woocommerce_page_inspire_checkout_fields_settings .nav-tab-wrapper {
189
- border-bottom: 0;
190
- margin-right: 10px;
191
- }
192
-
193
- .woocommerce_page_inspire_checkout_fields_settings .field-settings-tab-container {
194
- border: 1px solid #ccc;
195
- margin-top: -1px;
196
- margin-right: 10px;
197
- padding: 4px 10px 0;
198
- }
199
-
200
- .display-options-info, .display-options-heading {
201
- display: none;
202
- }
203
-
204
  /* Edit Order */
205
  .post-type-shop_order .edit_address .form-left {
206
  float: left !important;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  /* Edit Order */
2
  .post-type-shop_order .edit_address .form-left {
3
  float: left !important;
assets/css/admin.min.css CHANGED
@@ -1 +1 @@
1
- .woocommerce_page_inspire_checkout_fields_settings .spinner{float:left}.woocommerce_page_inspire_checkout_fields_settings input[type="text"],.woocommerce_page_inspire_checkout_fields_settings input[type="number"],.woocommerce_page_inspire_checkout_fields_settings textarea,.woocommerce_page_inspire_checkout_fields_settings select{width:100%}span.inspire-file-error{color:red;font-weight:700}.woocommerce_page_inspire_checkout_fields_settings .hide{display:none}.woocommerce_page_inspire_checkout_fields_settings .rate{text-align:center}.woocommerce_page_inspire_checkout_fields_settings .rate a{text-decoration:none}.woocommerce_page_inspire_checkout_fields_settings .add-new-field-box h3{background:#f5f5f5;border-bottom:1px solid #ddd;color:#23282d;font-size:14px;line-height:21px;padding:10px 10px 11px 14px;margin:0}.woocommerce_page_inspire_checkout_fields_settings #add-new-field .accordion-section-content{padding:11px 13px 8px}.woocommerce_page_inspire_checkout_fields_settings .add-new-field-content>div{margin:5px 0 10px}.woocommerce_page_inspire_checkout_fields_settings .add-new-field-box .stuffbox{margin-top:25px}.woocommerce_page_inspire_checkout_fields_settings #nav-menu-header h3{color:#23282d;font-size:14px;float:left;line-height:28px;margin:0}.woocommerce_page_inspire_checkout_fields_settings .fields-container{border-right:1px solid #ddd;float:left;width:513px}.woocommerce_page_inspire_checkout_fields_settings ul.fields{padding-top:0}.woocommerce_page_inspire_checkout_fields_settings .menu-item-bar .menu-item-handle,.woocommerce_page_inspire_checkout_fields_settings .menu-item-settings{width:100%;max-width:100%;box-sizing:border-box}.woocommerce_page_inspire_checkout_fields_settings .field-item .menu-item-bar .menu-item-handle .item-title{margin-right:1.5em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.woocommerce_page_inspire_checkout_fields_settings .field-item.just-added .menu-item-bar .menu-item-handle{border-color:#999}.woocommerce_page_inspire_checkout_fields_settings .field-item.field-hidden .item-title{color:#898e93;font-style:italic}.woocommerce_page_inspire_checkout_fields_settings .field-item .menu-item-bar .menu-item-handle .item-type{float:right;padding:unset;font-weight:400;font-style:italic}.woocommerce_page_inspire_checkout_fields_settings .field-settings{display:none;padding:10px 0 10px 10px}.woocommerce_page_inspire_checkout_fields_settings .field-settings select{max-width:100%}.woocommerce_page_inspire_checkout_fields_settings .field-settings-tab-container>div{margin:5px 0 10px}.woocommerce_page_inspire_checkout_fields_settings .field-settings label{display:block;margin-bottom:5px}.woocommerce_page_inspire_checkout_fields_settings .field-settings .element-option{display:none}.woocommerce_page_inspire_checkout_fields_settings .field-settings .element-option.show{display:block}.woocommerce_page_inspire_checkout_fields_settings .field-settings a.remove-field{color:#a00;display:inline-block;margin:10px 0 5px 420px;text-decoration:none}.woocommerce_page_inspire_checkout_fields_settings .field-settings a.remove-field:hover{color:red}.woocommerce_page_inspire_checkout_fields_settings #nav-menu-footer{border-top:1px solid #ddd;clear:both}.woocommerce_page_inspire_checkout_fields_settings #nav-menu-footer .button{float:left}.woocommerce_page_inspire_checkout_fields_settings #nav-menu-footer .reset_settings{border:none;box-shadow:none;color:#a00;float:right;padding:0}.woocommerce_page_inspire_checkout_fields_settings #nav-menu-footer .reset_settings:hover{color:red}.woocommerce_page_inspire_checkout_fields_settings .fields-container .nav-tab{font-size:12px;margin-left:0;margin-right:.5em}.woocommerce_page_inspire_checkout_fields_settings .fields-container .nav-tab-active,.woocommerce_page_inspire_checkout_fields_settings .fields-container .nav-tab-active:focus,.woocommerce_page_inspire_checkout_fields_settings .fields-container .nav-tab-active:focus:active,.woocommerce_page_inspire_checkout_fields_settings .fields-container .nav-tab-active:hover{background-color:#fff;border-bottom:0}.woocommerce_page_inspire_checkout_fields_settings .nav-tab-wrapper{border-bottom:0;margin-right:10px}.woocommerce_page_inspire_checkout_fields_settings .field-settings-tab-container{border:1px solid #ccc;margin-top:-1px;margin-right:10px;padding:4px 10px 0}.display-options-info,.display-options-heading{display:none}.post-type-shop_order .edit_address .form-left{float:left!important;clear:left}.post-type-shop_order .edit_address .form-right{float:right!important}.field-validation-info,.field-validation-heading{display:none}p.help,.field-item p.description,.add-new-field-content p.description,span.description,.form-wrap p{overflow:auto}
1
+ .post-type-shop_order .edit_address .form-left{float:left!important;clear:left}.post-type-shop_order .edit_address .form-right{float:right!important}.field-validation-info,.field-validation-heading{display:none}p.help,.field-item p.description,.add-new-field-content p.description,span.description,.form-wrap p{overflow:auto}
assets/css/new-admin.css ADDED
@@ -0,0 +1 @@
 
1
+ @keyframes rotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@font-face{font-family:icomoon;src:url(../fonts/icons/icomoon.eot);src:url(../fonts/icons/icomoon.woff) format("woff"),url(../fonts/icons/icomoon.eot#iefix) format("embedded-opentype"),url(../fonts/icons/icomoon.ttf) format("truetype"),url(../fonts/icons/icomoon.svg#icomoon) format("svg");font-weight:400;font-style:normal}.icon-align-left:before{content:"\E900"!important}.icon-align-left:before,.icon-bookmark:before{font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-bookmark:before{content:"\E920"!important}.icon-brush:before{content:"\E901"!important}.icon-brush:before,.icon-calendar-alt:before{font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-calendar-alt:before{content:"\E902"!important}.icon-caret-down:before{content:"\E903"!important}.icon-caret-down:before,.icon-caret-left:before{font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-caret-left:before{content:"\E904"!important}.icon-caret-right:before{content:"\E905"!important}.icon-caret-right:before,.icon-caret-up:before{font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-caret-up:before{content:"\E906"!important}.icon-check:before{content:"\E907"!important}.icon-check-square:before,.icon-check:before{font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-check-square:before{content:"\E908"!important}.icon-clock:before{content:"\E909"!important}.icon-clock:before,.icon-code:before{font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-code:before{content:"\E90A"!important}.icon-cog:before{content:"\E90B"!important}.icon-cog:before,.icon-cogs:before{font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-cogs:before{content:"\E90C"!important}.icon-dollar-sign:before{content:"\E90D"!important}.icon-dollar-sign:before,.icon-ellipsis-v:before{font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-ellipsis-v:before{content:"\E90E"!important}.icon-exchange-alt:before{content:"\E90F"!important}.icon-exchange-alt:before,.icon-exclamation-triangle:before{font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-exclamation-triangle:before{content:"\E926"!important}.icon-eye:before{content:"\E910"!important}.icon-eye:before,.icon-font:before{font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-font:before{content:"\E911"!important}.icon-heading:before{content:"\E912"!important}.icon-heading:before,.icon-heart:before{font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-heart:before{content:"\E921"!important}.icon-list-ul:before{content:"\E913"!important}.icon-list-ul:before,.icon-long-arrow-alt-down:before{font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-long-arrow-alt-down:before{content:"\E914"!important}.icon-long-arrow-alt-left:before{content:"\E915"!important}.icon-long-arrow-alt-left:before,.icon-long-arrow-alt-right:before{font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-long-arrow-alt-right:before{content:"\E916"!important}.icon-long-arrow-alt-up:before{content:"\E917"!important}.icon-long-arrow-alt-up:before,.icon-magic:before{font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-magic:before{content:"\E918"!important}.icon-palette:before{content:"\E919"!important}.icon-palette:before,.icon-plugin-symbol:before{font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-plugin-symbol:before{content:"\E923"!important}.icon-plus:before{content:"\E91A"!important}.icon-plus:before,.icon-question-circle:before{font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-question-circle:before{content:"\E91B"!important}.icon-spinner:before{content:"\E925"!important}.icon-spinner:before,.icon-star:before{font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-star:before{content:"\E922"!important}.icon-tasks:before{content:"\E91D"!important}.icon-tasks-alt:before,.icon-tasks:before{font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-tasks-alt:before{content:"\E91C"!important}.icon-times:before{content:"\E91E"!important}.icon-times:before,.icon-trash-alt:before{font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-trash-alt:before{content:"\E924"!important}.icon-upload:before{content:"\E91F"!important;font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fcfSettings,.fcfSettings *,.fcfSettings :after,.fcfSettings :before{margin:0;padding:0;box-sizing:border-box;box-shadow:none;text-decoration:none}.fcfSettings a,.fcfSettings a:focus{box-shadow:none;outline:0}.fcfSettings__headline{position:relative;padding:2px 0 2px 50px;font-weight:400;font-size:24px;line-height:1.375;color:#1e1e1e}.fcfSettings__headline:before{position:absolute;top:50%;left:0;transform:translateY(-50%);font-size:30px;line-height:1;color:#0073aa;content:"\E923"!important;font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fcfSettings__footer{padding:2px 0;font-size:14px;line-height:1.8571428571;text-align:center}.fcfSettings__footer a{font-weight:500;color:inherit}.fcfSettings__footerIcon{display:inline-block;padding:0 3px}.fcfSettings__footerIcon+.fcfSettings__footerIcon{margin-left:-6px}.fcfSettings__footerIcon--heart:before{color:#dc3232;content:"\E921"!important;font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fcfSettings__footerIcon--star:before{color:#ffb900;content:"\E922"!important;font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fcfSettings__columns{display:flex;flex-wrap:wrap;width:calc(100% + 20px);margin:0 -10px}.fcfSettings__columns--reverse{flex-direction:row-reverse}.fcfSettings__columns--margin{margin-top:20px}.fcfSettings__column{width:40%;padding:10px}.fcfSettings__column--wide,.fcfSettings__column:first-child:last-child{flex:1}.fcfButton{position:relative;display:inline-block;padding:7px 20px;font-weight:500;font-size:14px;line-height:1.8571428571;color:#1e1e1e;text-align:center;background:none;border:1px solid transparent;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;overflow:hidden;transition:color .3s;z-index:1}.fcfButton[disabled]{pointer-events:none}.fcfButton:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;transition:opacity .3s;z-index:-1}.fcfButton--bg:after{opacity:1}.fcfButton--bg:hover:after{opacity:0}.fcfButton--border:hover:after{opacity:1}.fcfButton--wide{width:100%}.fcfButton--small{padding:2px 20px}.fcfButton--bg{color:#fff}.fcfButton--border:hover{color:#fff!important}.fcfButton--green{border-color:#46b450}.fcfButton--green:after{background-color:#46b450}.fcfButton--green.fcfButton--bg:hover,.fcfButton--green.fcfButton--border{color:#46b450}.fcfButton--blue{border-color:#0073aa}.fcfButton--blue:after{background-color:#0073aa}.fcfButton--blue.fcfButton--bg:hover,.fcfButton--blue.fcfButton--border{color:#0073aa}.fcfButton--red{border-color:#dc3232}.fcfButton--red:after{background-color:#dc3232}.fcfButton--red.fcfButton--bg:hover,.fcfButton--red.fcfButton--border{color:#dc3232}.fcfFields__items{padding:10px}.fcfFields__item{margin:0;padding:10px;outline:none;pointer-events:none}.fcfFields__itemInner{background-color:#fff;border:1px solid #e2e4e7;pointer-events:auto}.fcfFields__itemHeader{position:relative}.fcfFields__itemHeader:before{position:absolute;top:50%;left:20px;transform:translateY(-50%);font-size:16px;line-height:1;color:rgba(30,30,30,.25);content:"\E90F"!important;font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fcfFields__itemHeaderOuter{display:flex;align-items:center;justify-content:space-between;padding:0 20px 0 56px}.fcfFields__itemHeaderInner{display:flex;align-items:center;flex:1}.fcfFields__itemHeaderTitle{flex:1;padding:12px 20px 12px 0;font-weight:500;font-size:14px;line-height:1.8571428571;color:#1e1e1e}.fcfFields__item--disabled .fcfFields__itemHeaderTitle{color:rgba(30,30,30,.25);font-style:italic}.fcfFields__itemHeaderDesc{padding:12px 0;font-size:12px;line-height:1.8571428571;color:rgba(30,30,30,.5)}.fcfFields__itemHeaderDesc--flag{position:relative;padding-left:30px}.fcfFields__itemHeaderDesc--flag:before{position:absolute;top:50%;left:0;transform:translateY(-50%);margin-top:1px;font-size:16px;line-height:1;color:#0073aa;content:"\E923"!important;font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fcfFields__itemHeaderButtons{display:flex;padding-left:20px}.fcfFields__itemHeaderButton{position:relative}.fcfFields__itemHeaderButtonInner{position:relative;width:36px;height:36px;padding:10px;line-height:0;text-align:center;border:0;outline:0;background:none;cursor:pointer;z-index:1}.fcfFields__itemHeaderButtonInner:before{content:"";font-size:16px;line-height:1;color:#1e1e1e}.fcfFields__itemHeaderButtonInner:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background-color:#f0f0f0;border-radius:50%;opacity:0;transition:opacity .3s;z-index:-1}.fcfFields__item--disabled .fcfFields__itemHeaderButtonInner:after{background-color:#fff}.fcfFields__itemHeaderButtonInner--open:before{font-size:6px;content:"\E903"!important;font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fcfFields__itemHeaderButtonInner--close:before{font-size:6px;content:"\E906"!important;font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fcfFields__itemHeaderButtonInner--remove:before{color:#dc3232;content:"\E924"!important;font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fcfFields__itemHeaderButtonInner:hover:after{opacity:1}.fcfFields__itemContent{border-top:1px solid #f0f0f0}.fcfFields__itemTabs{background-color:rgba(0,0,0,.025);border-bottom:1px solid #f0f0f0}.fcfOptions__rows{padding:5px 20px}.fcfOptions__column .fcfOptions__rows{padding:0}.fcfOptions__row{padding:5px 0}.fcfOptions__column .fcfOptions__row{padding:0}.fcfOptions__row--padding{padding:15px 0}.fcfOptions__row--sub{padding-left:30px}.fcfOptions__columns{position:relative;display:flex;flex-wrap:wrap}.fcfOptions__columns--button{padding-right:30px}.fcfOptions__columns--button+.fcfOptions__columns--button:before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);width:calc(100% - 20px);height:1px;background-color:#e2e4e7}.fcfOptions__column{position:relative;flex:1;max-width:100%;padding:0 10px}.fcfOptions__column--small{position:absolute;top:50%;right:0;transform:translateY(-50%);min-width:auto!important;padding:0!important}.fcfOptions__column--center{padding:5px 0 10px;text-align:center}.fcfOptions__columnButton{position:relative;margin-top:20px;padding:10px;font-size:0;border:0;outline:0;background:none;cursor:pointer;z-index:1}.fcfOptions__columnButton:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background-color:#f0f0f0;border-radius:50%;opacity:0;transition:opacity .3s;z-index:-1}.fcfOptions__columnButton:hover:after{opacity:1}.fcfOptions__columnButton--remove:before{font-size:10px;line-height:1;color:#dc3232;content:"\E91E"!important;font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fcfOptions__error,.fcfOptions__label,.fcfOptions__labelInner,.fcfOptions__rowLabel{display:block;padding:2px 0;font-size:14px;line-height:1.8571428571;color:#1e1e1e}.fcfOptions__label{position:relative;display:inline-block;font-weight:500;z-index:1}.fcfOptions__label--line{display:block;font-size:0;overflow:hidden}.fcfOptions__labelInner{display:inline-block;max-width:calc(100% - 30px);margin-left:20px;padding:0 10px;color:#1e1e1e;background-color:#fff;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fcfOptions__labelInner:before{content:"";position:absolute;top:50%;left:0;width:100%;height:1px;background-color:rgba(226,228,231,.75);z-index:-1}.fcfOptions__error{position:relative;margin-bottom:10px;padding-left:36px;padding-right:10px;font-weight:500;color:#fff;background-color:#dc3232}.fcfOptions__checkbox~.fcfOptions__error{margin-top:5px}.fcfOptions__error:before{position:absolute;top:50%;left:10px;transform:translateY(-50%);font-size:16px;line-height:1;content:"\E926"!important;font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fcfOptions__labelHelp,.fcfOptions__labelHelpIcon{position:relative;display:inline-block}.fcfOptions__labelHelpIcon{padding:0 10px;z-index:1}.fcfOptions__labelHelpIcon:before{display:block;font-size:14px;line-height:1.8571428571;color:#0073aa;transition:transform .3s;content:"\E91B"!important;font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fcfOptions__labelHelpIcon:hover:before{transform:scale(1.5)}.fcfOptions__input,.fcfOptions__select,.fcfOptions__textarea{margin-bottom:10px}.fcfSettings .fcfOptions__input,.fcfSettings .fcfOptions__textarea{display:block;width:100%;max-width:none;padding:7px 10px;font-size:14px;line-height:1.8571428571;color:#1e1e1e;border:1px solid #e2e4e7;border-radius:0}.fcfSettings .fcfOptions__input:focus,.fcfSettings .fcfOptions__textarea:focus{border-color:#e2e4e7;box-shadow:none;outline:0;color:#1e1e1e}.fcfSettings .fcfOptions__input[disabled],.fcfSettings .fcfOptions__textarea[disabled]{color:#1e1e1e;border-color:#e2e4e7;background-color:rgba(226,228,231,.5);text-shadow:none}.fcfSettings .fcfOptions__checkbox,.fcfSettings .fcfOptions__radio{display:none}.fcfOptions__checkbox+.fcfOptions__label,.fcfOptions__radio+.fcfOptions__label{padding-left:30px;transition:color .3s}.fcfOptions__checkbox+.fcfOptions__label:after,.fcfOptions__checkbox+.fcfOptions__label:before,.fcfOptions__radio+.fcfOptions__label:after,.fcfOptions__radio+.fcfOptions__label:before{content:"";position:absolute;top:calc(50% - 10px);left:0;width:20px;height:20px}.fcfOptions__checkbox+.fcfOptions__label:before,.fcfOptions__radio+.fcfOptions__label:before{border:1px solid #e2e4e7}.fcfOptions__checkbox+.fcfOptions__label:after,.fcfOptions__radio+.fcfOptions__label:after{font-size:10px;line-height:2;text-align:center;color:#46b450;transform:scale(0);transition:transform .3s}.fcfOptions__checkbox:hover+.fcfOptions__label,.fcfOptions__radio:hover+.fcfOptions__label{color:rgba(30,30,30,.5)}.fcfOptions__checkbox[disabled]+.fcfOptions__label:before,.fcfOptions__radio[disabled]+.fcfOptions__label:before{background-color:rgba(226,228,231,.5);border-color:#e2e4e7}.fcfOptions__checkbox+.fcfOptions__label:after{content:"\E907"!important}.fcfOptions__checkbox+.fcfOptions__label:after,.fcfOptions__radio+.fcfOptions__label:after{font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fcfOptions__radio+.fcfOptions__label:after{content:"\E91E"!important}.fcfOptions__checkbox[checked]+.fcfOptions__label:after,.fcfOptions__radio[checked]+.fcfOptions__label:after{transform:scale(1)}.fcfOptions__boxes{padding-bottom:10px}.fcfOptions__boxesItems{display:flex;flex-wrap:wrap;margin:-5px}.fcfOptions__boxesItem{width:50%;padding:5px}.fcfSettings .fcfOptions__boxesItemInput{display:none}.fcfOptions__boxesItemLabel{position:relative;display:flex;justify-content:center;align-items:center;min-height:100%;padding:7px 10px 7px 42px;font-size:14px;line-height:1.8571428571;color:#1e1e1e;text-align:center;border:1px solid #e2e4e7;transition:color .3s}.fcfOptions__boxesItemLabel:hover{color:rgba(30,30,30,.5)}.fcfOptions__boxesItemLabel:before{position:absolute;top:calc(50% - 11px);left:10px;font-size:22px;line-height:1;color:rgba(30,30,30,.75)!important}.fcfOptions__boxesItemLabel:after{content:"";position:absolute;top:-1px;left:-1px;width:calc(100% + 2px);height:calc(100% + 2px);border:2px solid #0073aa;opacity:0;transition:opacity .3s}.fcfOptions__boxesItemInput:checked+.fcfOptions__boxesItemLabel{color:#1e1e1e}.fcfOptions__boxesItemInput:checked+.fcfOptions__boxesItemLabel:after{opacity:1}.fcfOptions__info{margin:0 -20px;padding:10px 0}.fcfOptions__row:first-child .fcfOptions__info{margin-top:-20px}.fcfOptions__row:last-child .fcfOptions__info{margin-bottom:-20px}.fcfOptions__infoInner{padding:12px 20px;font-size:14px;line-height:1.8571428571;color:#fff;background-color:#0073aa}.fcfOptions__info--green .fcfOptions__infoInner{background-color:#46b450}.fcfOptions__infoInner a{position:relative;display:inline-block;font-weight:500;color:inherit;white-space:nowrap;transition:opacity .3s}.fcfOptions__infoInner a:hover{opacity:.5}.fcfOptions__infoInner a:after{content:"";position:absolute;bottom:0;left:0;width:100%;height:1px;background-color:#fff}.fcfOptions__infoInner a.fcfArrowLink{padding-right:18px;text-transform:uppercase;letter-spacing:1px;opacity:1}.fcfOptions__infoInner a.fcfArrowLink:after{width:0;transition:width .3s}.fcfOptions__infoInner a.fcfArrowLink:hover:after{width:100%}.fcfOptions__infoInner a.fcfArrowLink:before{position:absolute;top:50%;right:0;transform:translateY(-50%);font-size:6px;line-height:1;content:"\E916"!important;font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fcfOptions__infoInner p{font-size:14px;line-height:1.8571428571}.fcfOptions__infoInner p strong{font-weight:400;font-size:20px;line-height:1.75}.fcfOptions__infoInner ul{padding-left:10px}.fcfOptions__infoInner ul li{position:relative;padding-left:20px}.fcfOptions__infoInner ul li:before{position:absolute;top:50%;left:0;transform:translateY(-50%);font-size:10px;line-height:1;content:"\E907"!important;font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fcfOptions__infoInner p,.fcfOptions__infoInner ul{margin-top:10px}.fcfOptions__infoInner p:first-child,.fcfOptions__infoInner ul:first-child{margin-top:0}.fcfTabs__items{display:flex;flex-wrap:wrap;margin:0;padding:0}.fcfTabs--lines .fcfTabs__items{margin-top:10px;margin-bottom:-10px}.fcfTabs__item{position:relative;margin:0 0 -1px;padding:0;border-bottom:1px solid #f0f0f0}.fcfTabs--lines .fcfTabs__item{padding-right:3px}.fcfTabs--lines .fcfTabs__item:after{content:"";position:absolute;top:calc(50% - 3px);right:0;width:6px;height:6px;background-color:#0073aa;border-radius:50%}.fcfTabs__item:last-child:after{display:none}.fcfTabs__itemLink{position:relative;display:block;padding:12px 20px;font-weight:500;font-size:16px;line-height:1.75;text-align:center;color:#1e1e1e;transition:color .3s}.fcfTabs--small .fcfTabs__itemLink{font-size:14px}.fcfTabs--lines .fcfTabs__itemLink{padding:2px 20px;font-weight:400}.fcfTabs__itemLink:after{content:"";position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:0;height:3px;background-color:#0073aa;transition:width .3s}.fcfTabs--lines .fcfTabs__itemLink:after{display:none}.fcfTabs__itemLink[class*=icon-]{padding:12px 15px 12px 41px}.fcfTabs__itemLink[class*=icon-]:before{position:absolute;top:calc(50% - 8px);left:15px;font-size:16px;line-height:1;color:rgba(30,30,30,.5);transition:color .3s}.fcfTabs__itemLink:hover,.fcfTabs__itemLink:hover:before{color:#0073aa}.fcfTabs__itemLink--active{pointer-events:none}.fcfTabs__itemLink--active:after{width:100%}.fcfTabs--lines .fcfTabs__itemLink--active{font-weight:500;color:#0073aa}.fcfTooltip{cursor:default}.fcfTooltip__outer{bottom:calc(100% + 10px);z-index:10000}.fcfTooltip__outer,.fcfTooltip__outer:before{position:absolute;left:50%;transform:translateX(-50%)}.fcfTooltip__outer:before{content:"";top:100%;width:0;height:0;border-color:#1e1e1e transparent transparent;border-style:solid;border-width:5px 5px 0}.fcfTooltip__inner{width:400px;max-width:calc(100vw - 40px);background-color:#1e1e1e}.fcfTooltip__text{padding:5px 10px;font-weight:400;font-size:14px;line-height:1.4285714286;color:#fff;text-align:center}.fcfTooltip__buttons{display:flex;justify-content:center;padding:5px}.fcfTooltip__button{padding:5px}.fcfWidget+.fcfWidget{margin-top:30px}.fcfWidget__inner{background-color:#fff;border:1px solid #e2e4e7;border-radius:3px}.fcfWidget__header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;border-bottom:1px solid #e2e4e7}.fcfWidget__headerTitle{padding:12px 20px;font-weight:400;font-size:20px;line-height:1.75;color:#1e1e1e}.fcfWidget__headerButtons{padding:0 10px}.fcfWidget__contentPlaceholder{padding:12px 20px;font-weight:500;font-size:14px;line-height:1.8571428571;color:#1e1e1e;text-align:center}.fcfWidget__footer{padding:10px;border-top:1px solid #f0f0f0}.fcfWidget__buttons{display:flex;flex-wrap:wrap;justify-content:space-between}.fcfWidget__button{position:relative;min-width:250px;padding:10px}.fcfWidget__buttonIcon{position:absolute;top:50%;transform:translateY(-50%);z-index:1}.fcfWidget__buttonIcon:first-child{right:calc(100% + 10px)}.fcfWidget__buttonIcon:last-child{left:calc(100% + 10px)}.fcfWidget__buttonIconInner:before{display:block;font-size:20px;line-height:1}.fcfWidget__buttonIcon--loading .fcfWidget__buttonIconInner:before{color:#1e1e1e;animation:rotate 1s ease-out infinite;content:"\E925"!important;font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fcfWidget__buttonIcon--success .fcfWidget__buttonIconInner:before{color:#46b450;content:"\E907"!important;font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fcfWidget__buttonIcon--error .fcfWidget__buttonIconInner:before{color:#dc3232;content:"\E926"!important;font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.reactSelect__control{min-height:42px!important;background:none!important;border:1px solid #e2e4e7!important;border-radius:0!important;box-shadow:none!important}.reactSelect__indicators{position:relative;width:42px;border-left:1px solid #e2e4e7!important}.reactSelect__indicators:after{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:6px;line-height:1;color:#1e1e1e;content:"\E903"!important}.reactSelect__control--menu-is-open .reactSelect__indicators:after,.reactSelect__indicators:after{font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.reactSelect__control--menu-is-open .reactSelect__indicators:after{content:"\E906"!important}.reactSelect__indicators *{display:none!important}.reactSelect__value-container{padding:4px 10px!important}.reactSelect__input input{margin:0 2px!important;min-height:0!important;font-size:14px!important;line-height:1.5714285714!important;color:#1e1e1e!important;box-shadow:none!important}.reactSelect__single-value{max-width:calc(100% - 20px)!important}.reactSelect__multi-value{border-radius:0!important;background-color:#e2e4e7!important}.reactSelect__multi-value__label{padding:2px 0 2px 10px!important;font-size:12px!important;line-height:2!important;color:#1e1e1e!important}.reactSelect__multi-value__remove{position:relative;width:30px;background:none!important;cursor:pointer}.reactSelect__multi-value__remove:after{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:10px;line-height:1;color:#1e1e1e;transition:color .3s;content:"\E91E"!important;font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.reactSelect__multi-value__remove:hover:after{color:#dc3232}.reactSelect__multi-value__remove *{display:none!important}.reactSelect__menu{margin:0!important;border-radius:0!important;box-shadow:none!important;z-index:10!important}.reactSelect__menu-notice{padding:7px 10px!important;font-size:14px!important;line-height:1.8571428571!important;color:#fff!important;background-color:#1e1e1e!important}.reactSelect__menu-list{padding:0!important}.reactSelect__option{position:relative;padding:7px 10px!important;font-size:14px!important;line-height:1.8571428571!important;color:#fff!important;border:1px solid #1e1e1e;background-color:#1e1e1e!important;cursor:pointer!important;transition:background-color .3s}.reactSelect__option+.reactSelect__option{margin-top:-1px;border-top:1px solid hsla(0,0%,100%,.25)}.reactSelect__option--is-focused{background-color:#0073aa!important}.reactSelect__option--is-selected{padding-right:42px!important;background-color:#1e1e1e!important;cursor:auto!important}.reactSelect__option--is-selected:before{position:absolute;top:50%;right:0;width:42px;transform:translateY(-50%);font-size:16px;line-height:1;text-align:center;color:#46b450;content:"\E907"!important;font-family:icomoon!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (max-width:1366px){.fcfSettings__column{width:100%}.fcfSettings__column+.fcfSettings__column{margin-top:10px}.fcfFields__items{padding:0}}@media (max-width:768px){.fcfOptions__columns{display:block}}@media (max-width:600px){.fcfFields__itemHeaderInner{display:block}.fcfFields__itemHeaderDesc{margin-top:-20px}.fcfOptions__boxesItem{width:100%}.fcfWidget__header{display:block}.fcfWidget__button{width:100%;padding:10px 40px}.fcfWidget__buttonIcon:first-child{right:0}.fcfWidget__buttonIcon:last-child{left:0}}@media (max-width:1024px),(min-width:1367px) and (max-width:1600px){.fcfOptions__row--sub{padding-left:0}.fcfOptions__columns--button{padding-right:35px}.fcfOptions__column{min-width:50%}}
assets/fonts/icons/icomoon.eot ADDED
Binary file
assets/fonts/icons/icomoon.svg ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
3
+ <svg xmlns="http://www.w3.org/2000/svg">
4
+ <metadata>Generated by IcoMoon</metadata>
5
+ <defs>
6
+ <font id="icomoon" horiz-adv-x="1024">
7
+ <font-face units-per-em="1024" ascent="960" descent="-64" />
8
+ <missing-glyph horiz-adv-x="1024" />
9
+ <glyph unicode="&#x20;" horiz-adv-x="512" d="" />
10
+ <glyph unicode="&#xe900;" glyph-name="align-left" d="M29.248 228.576h599.552c16.224 0 29.248 13.024 29.248 29.248 0 0 0 0 0 0v87.552c0 16.224-13.024 29.248-29.248 29.248 0 0 0 0 0 0h-599.552c-16.224 0.224-29.248-12.8-29.248-29.024 0 0 0 0 0 0v-87.552c0-16.448 13.024-29.472 29.248-29.472 0 0 0 0 0 0zM29.248 813.728h599.552c16.224 0 29.248 13.024 29.248 29.248 0 0 0 0 0 0v87.776c0.224 16.224-12.8 29.248-29.024 29.248 0 0 0 0 0 0h-599.776c-16.224 0-29.248-13.024-29.248-29.248 0 0 0 0 0 0v-87.552c0-16.448 13.024-29.472 29.248-29.472 0 0 0 0 0 0zM987.424 667.424h-950.848c-20.128 0-36.576-16.448-36.576-36.576v-73.152c0-20.128 16.448-36.576 36.576-36.576h950.848c20.128 0 36.576 16.448 36.576 36.576v73.152c0 20.128-16.448 36.576-36.576 36.576zM987.424 82.272h-950.848c-20.128 0-36.576-16.448-36.576-36.576v-73.152c0-20.128 16.448-36.576 36.576-36.576h950.848c20.128 0 36.576 16.448 36.576 36.576v73.152c0 20.128-16.448 36.576-36.576 36.576z" />
11
+ <glyph unicode="&#xe901;" glyph-name="brush" d="M832 960h-640c-35.392 0-64-28.608-64-64v-448h768v448c0 35.392-28.608 64-64 64zM128 320c0-70.784 57.408-128 128-128h128v-128c0-70.784 57.408-128 128-128s128 57.216 128 128v128h128c70.592 0 128 57.216 128 128v64h-768v-64zM512 112c26.592 0 48-21.408 48-48s-21.6-48-48-48-48 21.6-48 48c0 26.592 21.6 48 48 48z" />
12
+ <glyph unicode="&#xe902;" glyph-name="calendar-alt" d="M360 384h-80c-13.184 0-24 10.784-24 24v80c0 13.184 10.816 24 24 24h80c13.184 0 24-10.816 24-24v-80c0-13.216-10.816-24-24-24zM576 408v80c0 13.184-10.784 24-24 24h-80c-13.184 0-24-10.816-24-24v-80c0-13.216 10.816-24 24-24h80c13.216 0 24 10.784 24 24zM768 408v80c0 13.184-10.784 24-24 24h-80c-13.216 0-24-10.816-24-24v-80c0-13.216 10.784-24 24-24h80c13.216 0 24 10.784 24 24zM576 216v80c0 13.216-10.784 24-24 24h-80c-13.184 0-24-10.784-24-24v-80c0-13.216 10.816-24 24-24h80c13.216 0 24 10.784 24 24zM384 216v80c0 13.216-10.816 24-24 24h-80c-13.184 0-24-10.784-24-24v-80c0-13.216 10.816-24 24-24h80c13.184 0 24 10.784 24 24zM768 216v80c0 13.216-10.784 24-24 24h-80c-13.216 0-24-10.784-24-24v-80c0-13.216 10.784-24 24-24h80c13.216 0 24 10.784 24 24zM960 736v-704c0-52.992-43.008-96-96-96h-704c-52.992 0-96 43.008-96 96v704c0 52.992 43.008 96 96 96h96v104c0 13.184 10.816 24 24 24h80c13.184 0 24-10.816 24-24v-104h256v104c0 13.184 10.784 24 24 24h80c13.216 0 24-10.816 24-24v-104h96c52.992 0 96-43.008 96-96zM864 44v596h-704v-596c0-6.592 5.408-12 12-12h680c6.592 0 12 5.408 12 12z" />
13
+ <glyph unicode="&#xe903;" glyph-name="caret-down" horiz-adv-x="1806" d="M121.471 960h1562.724c108.109 0 162.164-130.581 85.637-207.108l-781.058-781.665c-47.374-47.374-124.508-47.374-171.881 0l-781.058 781.665c-76.527 76.527-22.472 207.108 85.637 207.108z" />
14
+ <glyph unicode="&#xe904;" glyph-name="caret-left" horiz-adv-x="581" d="M580.863 891.137v-885.929c0-61.289-74.028-91.933-117.412-48.549l-443.137 442.792c-26.857 26.857-26.857 70.585 0 97.442l442.792 442.792c43.384 43.384 117.757 12.74 117.757-48.549z" />
15
+ <glyph unicode="&#xe905;" glyph-name="caret-right" horiz-adv-x="581" d="M0 4.863v886.273c0 61.289 74.028 91.933 117.412 48.549l443.137-443.137c26.857-26.857 26.857-70.585 0-97.442l-443.137-442.792c-43.384-43.384-117.412-12.74-117.412 48.549z" />
16
+ <glyph unicode="&#xe906;" glyph-name="caret-up" horiz-adv-x="1805" d="M1683.803-64h-1562.404c-108.045 0-162.068 130.504-85.586 206.985l781.202 781.202c47.346 47.346 124.434 47.346 171.779 0l781.202-781.202c75.874-75.874 21.852-206.985-86.193-206.985v0z" />
17
+ <glyph unicode="&#xe907;" glyph-name="check" d="M347.8 81.2l-332.8 332.8c-20 20-20 52.4 0 72.4l72.4 72.4c20 20 52.4 20 72.4 0l224.2-224.2 480.2 480.2c20 20 52.4 20 72.4 0l72.4-72.4c20-20 20-52.4 0-72.4l-588.799-588.799c-20-20-52.4-20-72.4 0v0z" />
18
+ <glyph unicode="&#xe908;" glyph-name="check-square" d="M914.272 960h-804.576c-60.576 0-109.728-49.152-109.728-109.728v-804.576c0-60.576 49.152-109.728 109.728-109.728h804.576c60.576 0 109.728 49.152 109.728 109.728v804.576c0 60.576-49.152 109.728-109.728 109.728zM914.272 45.728h-804.576v804.576h804.576v-804.576zM832.224 598.176l-394.528-391.328c-10.752-10.752-28.128-10.528-38.848 0.224l-207.552 209.152c-10.752 10.752-10.528 28.128 0.224 38.848l51.872 51.424c10.752 10.752 28.128 10.528 38.848-0.224l136.672-137.824 323.2 320.448c10.752 10.752 28.128 10.528 38.848-0.224l51.424-51.872c10.752-10.528 10.528-27.872-0.224-38.624v0z" />
19
+ <glyph unicode="&#xe909;" glyph-name="clock" d="M512 960c-282.848 0-512-229.152-512-512s229.152-512 512-512 512 229.152 512 512-229.152 512-512 512zM512 35.104c-228.128 0-412.896 184.768-412.896 412.896s184.768 412.896 412.896 412.896 412.896-184.768 412.896-412.896-184.768-412.896-412.896-412.896zM639.584 250.624l-175.264 127.392c-6.4 4.736-10.112 12.192-10.112 20.032v339.008c0 13.632 11.136 24.768 24.768 24.768h66.080c13.632 0 24.768-11.136 24.768-24.768v-292.544l137.92-100.32c11.136-8.064 13.408-23.52 5.376-34.688l-38.816-53.472c-8.064-10.944-23.52-13.408-34.688-5.376v0z" />
20
+ <glyph unicode="&#xe90a;" glyph-name="code" d="M446.24 39.264l-97.6 28.32c-10.24 2.88-16 13.6-13.12 23.84l218.368 752.256c2.88 10.24 13.6 16 23.84 13.12l97.6-28.32c10.24-2.88 16-13.6 13.12-23.84l-218.368-752.256c-3.040-10.24-13.6-16.16-23.84-13.12zM263.872 218.752l69.6 74.24c7.36 7.84 6.88 20.32-1.28 27.52l-144.96 127.52 144.96 127.52c8.16 7.2 8.8 19.68 1.28 27.52l-69.6 74.24c-7.2 7.68-19.36 8.16-27.2 0.8l-230.528-215.968c-8.16-7.52-8.16-20.48 0-28l230.528-216.128c7.84-7.36 20-7.040 27.2 0.8v0zM787.328 217.792l230.528 216.128c8.16 7.52 8.16 20.48 0 28l-230.528 216.288c-7.68 7.2-19.84 6.88-27.2-0.8l-69.6-74.24c-7.36-7.84-6.88-20.32 1.28-27.52l144.96-127.68-144.96-127.52c-8.16-7.2-8.8-19.68-1.28-27.52l69.6-74.24c7.2-7.84 19.36-8.16 27.2-0.96v0z" />
21
+ <glyph unicode="&#xe90b;" glyph-name="cog" d="M989.6 324.96l-87.936 50.784c8.864 47.904 8.864 97.024 0 144.928l87.936 50.784c10.112 5.792 14.656 17.76 11.36 28.896-22.912 73.504-61.92 139.968-112.928 195.296-7.84 8.48-20.64 10.528-30.56 4.736l-87.936-50.784c-36.96 31.808-79.488 56.352-125.536 72.48v101.376c0 11.552-8.064 21.664-19.392 24.16-75.776 16.928-153.408 16.096-225.44 0-11.36-2.464-19.392-12.608-19.392-24.16v-101.568c-45.824-16.32-88.352-40.864-125.536-72.48l-87.744 50.784c-10.112 5.792-22.72 3.936-30.56-4.736-51.008-55.136-90.016-121.6-112.928-195.296-3.52-11.136 1.248-23.136 11.36-28.896l87.936-50.784c-8.864-47.904-8.864-97.024 0-144.928l-87.936-50.784c-10.112-5.792-14.656-17.76-11.36-28.896 22.912-73.504 61.92-139.968 112.928-195.296 7.84-8.48 20.64-10.528 30.56-4.736l87.936 50.784c36.96-31.808 79.488-56.352 125.536-72.48v-101.568c0-11.552 8.064-21.664 19.392-24.16 75.776-16.928 153.408-16.096 225.44 0 11.36 2.464 19.392 12.608 19.392 24.16v101.568c45.824 16.32 88.352 40.864 125.536 72.48l87.936-50.784c10.112-5.792 22.72-3.936 30.56 4.736 51.008 55.136 90.016 121.6 112.928 195.296 3.104 11.36-1.44 23.328-11.552 29.12zM511.872 283.040c-91.040 0-165.152 74.112-165.152 165.152s74.112 165.152 165.152 165.152 165.152-74.112 165.152-165.152-74.112-165.152-165.152-165.152z" />
22
+ <glyph unicode="&#xe90c;" glyph-name="cogs" d="M819.456 550.816l-13.12-22.88c-4.8-8.48-15.040-12-24.16-8.64-18.88 7.040-36.16 17.12-51.36 29.76-7.36 6.080-9.28 16.8-4.48 25.12l13.12 22.88c-11.040 12.8-19.68 27.68-25.44 43.84h-26.4c-9.6 0-17.92 6.88-19.52 16.48-3.2 19.2-3.36 39.36 0 59.36 1.6 9.6 9.92 16.64 19.52 16.64h26.4c5.76 16.16 14.4 31.040 25.44 43.84l-13.12 22.88c-4.8 8.32-3.040 19.040 4.48 25.12 15.2 12.64 32.64 22.72 51.36 29.76 9.12 3.36 19.36-0.16 24.16-8.64l13.12-22.88c16.8 3.040 33.92 3.040 50.72 0l13.12 22.88c4.8 8.48 15.040 12 24.16 8.64 18.88-7.040 36.16-17.12 51.36-29.76 7.36-6.080 9.28-16.8 4.48-25.12l-13.12-22.88c11.040-12.8 19.68-27.68 25.44-43.84h26.4c9.6 0 17.92-6.88 19.52-16.48 3.2-19.2 3.36-39.36 0-59.36-1.6-9.6-9.92-16.64-19.52-16.64h-26.4c-5.76-16.16-14.4-31.040-25.44-43.84l13.12-22.88c4.8-8.32 3.040-19.040-4.48-25.12-15.2-12.64-32.64-22.72-51.36-29.76-9.12-3.36-19.36 0.16-24.16 8.64l-13.12 22.88c-16.64-3.040-33.92-3.040-50.72 0zM802.656 644.896c61.6-47.36 131.84 22.88 84.48 84.48-61.6 47.52-131.84-22.88-84.48-84.48zM618.144 398.624l53.92-26.88c16.16-9.28 23.2-28.96 16.8-46.56-14.24-38.72-42.24-74.24-68.16-105.28-11.84-14.24-32.32-17.76-48.48-8.48l-46.56 26.88c-25.6-21.92-55.36-39.36-87.84-50.72v-53.76c0-18.56-13.28-34.56-31.52-37.76-39.36-6.72-80.64-7.040-121.44 0-18.4 3.2-32 19.040-32 37.76v53.76c-32.48 11.52-62.24 28.8-87.84 50.72l-46.56-26.72c-16-9.28-36.64-5.76-48.48 8.48-25.92 31.040-53.28 66.56-67.52 105.12-6.4 17.44 0.64 37.12 16.8 46.56l53.28 26.88c-6.24 33.44-6.24 67.84 0 101.44l-53.28 27.040c-16.16 9.28-23.36 28.96-16.8 46.4 14.24 38.72 41.6 74.24 67.52 105.28 11.84 14.24 32.32 17.76 48.48 8.48l46.56-26.88c25.6 21.92 55.36 39.36 87.84 50.72v53.92c0 18.4 13.12 34.4 31.36 37.6 39.36 6.72 80.8 7.040 121.6 0.16 18.4-3.2 32-19.040 32-37.76v-53.76c32.48-11.52 62.24-28.8 87.84-50.72l46.56 26.88c16 9.28 36.64 5.76 48.48-8.48 25.92-31.040 53.12-66.56 67.36-105.28 6.4-17.44 0.16-37.12-16-46.56l-53.92-26.88c6.24-33.6 6.24-68 0-101.6zM429.984 364.864c94.72 123.2-45.92 263.872-169.12 169.12-94.72-123.2 45.92-263.872 169.12-169.12zM819.456 72.544l-13.12-22.88c-4.8-8.48-15.040-12-24.16-8.64-18.88 7.040-36.16 17.12-51.36 29.76-7.36 6.080-9.28 16.8-4.48 25.12l13.12 22.88c-11.040 12.8-19.68 27.68-25.44 43.84h-26.4c-9.6 0-17.92 6.88-19.52 16.48-3.2 19.2-3.36 39.36 0 59.36 1.6 9.6 9.92 16.64 19.52 16.64h26.4c5.76 16.16 14.4 31.040 25.44 43.84l-13.12 22.88c-4.8 8.32-3.040 19.040 4.48 25.12 15.2 12.64 32.64 22.72 51.36 29.76 9.12 3.36 19.36-0.16 24.16-8.64l13.12-22.88c16.8 3.040 33.92 3.040 50.72 0l13.12 22.88c4.8 8.48 15.040 12 24.16 8.64 18.88-7.040 36.16-17.12 51.36-29.76 7.36-6.080 9.28-16.8 4.48-25.12l-13.12-22.88c11.040-12.8 19.68-27.68 25.44-43.84h26.4c9.6 0 17.92-6.88 19.52-16.48 3.2-19.2 3.36-39.36 0-59.36-1.6-9.6-9.92-16.64-19.52-16.64h-26.4c-5.76-16.16-14.4-31.040-25.44-43.84l13.12-22.88c4.8-8.32 3.040-19.040-4.48-25.12-15.2-12.64-32.64-22.72-51.36-29.76-9.12-3.36-19.36 0.16-24.16 8.64l-13.12 22.88c-16.64-3.040-33.92-3.040-50.72 0zM802.656 166.784c61.6-47.36 131.84 22.88 84.48 84.48-61.6 47.36-131.84-22.88-84.48-84.48v0z" />
23
+ <glyph unicode="&#xe90d;" glyph-name="dollar-sign" d="M642.4 493.184l-216 63.2c-24.992 7.2-42.4 30.592-42.4 56.608 0 32.608 26.4 59.008 59.008 59.008h132.608c24.384 0 48.384-7.392 68.384-20.992 12.192-8.192 28.608-6.208 39.008 4l69.6 68c14.208 13.792 12.192 36.8-3.616 48.992-48.992 38.4-110.208 59.808-172.992 60v96c0 17.6-14.4 32-32 32h-64c-17.6 0-32-14.4-32-32v-96h-4.992c-127.392 0-229.792-109.408-218.016-239.2 8.416-92.192 78.816-167.2 167.616-193.184l204.992-60c24.992-7.392 42.4-30.592 42.4-56.608 0-32.608-26.4-59.008-59.008-59.008h-132.608c-24.384 0-48.384 7.392-68.384 20.992-12.192 8.192-28.608 6.208-39.008-4l-69.6-68c-14.208-13.792-12.192-36.8 3.616-48.992 48.992-38.4 110.208-59.808 172.992-60v-96c0-17.6 14.4-32 32-32h64c17.6 0 32 14.4 32 32v96.384c93.216 1.792 180.608 57.216 211.392 145.408 43.008 123.2-29.216 249.6-144.992 283.392v0z" />
24
+ <glyph unicode="&#xe90e;" glyph-name="ellipsis-v" d="M637.568 61.568c0-69.344-56.224-125.568-125.568-125.568s-125.568 56.224-125.568 125.568c0 69.344 56.224 125.568 125.568 125.568s125.568-56.224 125.568-125.568zM637.568 447.872c0-69.344-56.224-125.568-125.568-125.568s-125.568 56.224-125.568 125.568c0 69.344 56.224 125.568 125.568 125.568s125.568-56.224 125.568-125.568zM637.568 834.432c0-69.344-56.224-125.568-125.568-125.568s-125.568 56.224-125.568 125.568c0 69.344 56.224 125.568 125.568 125.568s125.568-56.224 125.568-125.568z" />
25
+ <glyph unicode="&#xe90f;" glyph-name="exchange-alt" d="M271.904 911.712v-719.52h95.936c42.912 0 63.968-51.968 34.112-82.080l-159.904-159.904c-18.912-18.912-49.312-18.912-67.68 0l-159.904 159.904c-30.368 30.368-9.056 82.080 33.568 82.080h95.936v719.52c0 26.656 21.6 47.968 47.968 47.968h31.968c26.368 0 47.968-21.312 47.968-47.968v0zM799.84-63.68h31.968c26.656 0 47.968 21.312 47.968 47.968v719.52h95.936c42.912 0 63.968 51.712 34.112 82.080l-159.904 159.904c-18.656 18.912-49.024 18.912-67.68 0l-159.904-159.904c-30.368-30.368-8.8-82.080 33.568-82.080h95.936v-719.52c0-26.656 21.6-47.968 47.968-47.968v0z" />
26
+ <glyph unicode="&#xe910;" glyph-name="eye" d="M511.936 647.136c-18.848-0.352-37.504-3.2-55.456-8.896 8.352-14.592 12.8-31.104 12.8-48 0-54.944-44.64-99.552-99.552-99.552-16.896 0.192-33.408 4.608-48 12.8-30.4-105.248 30.4-215.488 135.84-245.696 105.44-30.4 215.488 30.4 245.888 135.84s-30.4 215.488-135.84 245.888c-18.144 5.152-36.8 7.648-55.648 7.648zM1017.728 473.952c-96.352 188.096-287.296 315.392-505.792 315.392s-409.44-127.296-505.792-315.392c-8.192-16.352-8.192-35.552 0-51.904 96.352-188.096 287.296-315.392 505.792-315.392s409.44 127.296 505.792 315.392c8.352 16.352 8.352 35.552 0 51.904zM511.936 192c-175.296 0-336.192 97.792-422.944 256 86.752 158.24 247.488 256 422.944 256s336.192-97.792 422.944-256c-86.752-158.24-247.488-256-422.944-256z" />
27
+ <glyph unicode="&#xe911;" glyph-name="font" d="M987.424 82.272h-53.472l-298.752 828.128c-10.048 29.728-37.952 49.6-69.248 49.6h-107.872c-31.328 0-59.2-19.872-69.248-49.6l-298.752-828.128h-53.472c-20.128 0-36.576-16.448-36.576-36.576v-73.152c0-20.128 16.448-36.576 36.576-36.576h292.576c20.128 0 36.576 16.448 36.576 36.576v73.152c0 20.128-16.448 36.576-36.576 36.576h-44.8l53.248 146.272h348.8l53.248-146.272h-44.8c-20.128 0-36.576-16.448-36.576-36.576v-73.152c0-20.128 16.448-36.576 36.576-36.576h292.576c20.128 0 36.576 16.448 36.576 36.576v73.152c0 20.128-16.448 36.576-36.576 36.576zM404.352 411.424l107.648 296 107.648-296h-215.328z" />
28
+ <glyph unicode="&#xe912;" glyph-name="heading" d="M921.6 789.344v-682.656h68.256c18.784 0 34.144-15.36 34.144-34.144v-68.256c0-18.784-15.36-34.144-34.144-34.144h-341.344c-18.784 0-34.144 15.36-34.144 34.144v68.256c0 18.784 15.36 34.144 34.144 34.144h68.256v273.056h-409.6v-273.056h68.256c18.784 0 34.144-15.36 34.144-34.144v-68.256c0-18.784-15.36-34.144-34.144-34.144h-341.344c-18.784 0-34.144 15.36-34.144 34.144v68.256c0 18.784 15.36 34.144 34.144 34.144h68.256v682.656h-68.256c-18.784 0-34.144 15.36-34.144 34.144v68.256c0 18.784 15.36 34.144 34.144 34.144h341.344c18.784 0 34.144-15.36 34.144-34.144v-68.256c0-18.784-15.36-34.144-34.144-34.144h-68.256v-273.056h409.6v273.056h-68.256c-18.784 0-34.144 15.36-34.144 34.144v68.256c0 18.784 15.36 34.144 34.144 34.144h341.344c18.784 0 34.144-15.36 34.144-34.144v-68.256c0-18.784-15.36-34.144-34.144-34.144h-68.256z" />
29
+ <glyph unicode="&#xe913;" glyph-name="list-ul" d="M96 864c-52.992 0-96-43.008-96-96s43.008-96 96-96 96 43.008 96 96-43.008 96-96 96zM96 544c-52.992 0-96-43.008-96-96s43.008-96 96-96 96 43.008 96 96-43.008 96-96 96zM96 224c-52.992 0-96-43.008-96-96s43.008-96 96-96 96 43.008 96 96-43.008 96-96 96zM992 192h-640c-17.6 0-32-14.4-32-32v-64c0-17.6 14.4-32 32-32h640c17.6 0 32 14.4 32 32v64c0 17.6-14.4 32-32 32zM992 832h-640c-17.6 0-32-14.4-32-32v-64c0-17.6 14.4-32 32-32h640c17.6 0 32 14.4 32 32v64c0 17.6-14.4 32-32 32zM992 512h-640c-17.6 0-32-14.4-32-32v-64c0-17.6 14.4-32 32-32h640c17.6 0 32 14.4 32 32v64c0 17.6-14.4 32-32 32z" />
30
+ <glyph unicode="&#xe914;" glyph-name="long-arrow-alt-down" horiz-adv-x="503" d="M343.086 242.514v690.057c0 15.086-12.343 27.429-27.429 27.429h-128c-15.086 0-27.429-12.343-27.429-27.429v-690.057h-105.371c-48.914 0-73.371-59.2-38.857-93.714l196.8-196.8c21.486-21.486 56.229-21.486 77.486 0l196.8 196.8c34.514 34.514 10.057 93.714-38.857 93.714h-105.143z" />
31
+ <glyph unicode="&#xe915;" glyph-name="long-arrow-alt-left" horiz-adv-x="2083" d="M623.608 261.987h1403.931c30.692 0 55.804 25.112 55.804 55.804v260.418c0 30.692-25.112 55.804-55.804 55.804h-1403.931v214.38c0 99.517-120.443 149.275-190.663 79.055l-400.392-400.392c-43.713-43.713-43.713-114.398 0-157.646l400.392-400.392c70.22-70.22 190.663-20.461 190.663 79.055v213.915z" />
32
+ <glyph unicode="&#xe916;" glyph-name="long-arrow-alt-right" horiz-adv-x="2083" d="M1459.735 634.013h-1403.931c-30.692 0-55.804-25.112-55.804-55.804v-260.418c0-30.692 25.112-55.804 55.804-55.804h1403.931v-214.38c0-99.517 120.443-149.275 190.663-79.055l400.392 400.392c43.713 43.713 43.713 114.398 0 157.646l-400.392 400.392c-70.22 70.22-190.663 20.461-190.663-79.055v-213.915z" />
33
+ <glyph unicode="&#xe917;" glyph-name="long-arrow-alt-up" horiz-adv-x="503" d="M160.229 653.486v-690.057c0-15.086 12.343-27.429 27.429-27.429h128c15.086 0 27.429 12.343 27.429 27.429v690.057h105.371c48.914 0 73.371 59.2 38.857 93.714l-196.8 196.8c-21.486 21.486-56.229 21.486-77.486 0l-196.8-196.8c-34.514-34.514-10.057-93.714 38.857-93.714h105.143z" />
34
+ <glyph unicode="&#xe918;" glyph-name="magic" d="M448 768.032l32 64 64 32-64 32-32 64-32-64-64-32 64-32 32-64zM160.064 640.064l53.376 106.592 106.592 53.376-106.592 53.376-53.376 106.592-53.376-106.592-106.592-53.376 106.592-53.376 53.376-106.592zM863.936 384.096l-53.376-106.592-106.592-53.376 106.592-53.376 53.376-106.592 53.376 106.592 106.592 53.376-106.592 53.376-53.376 106.592zM1005.12 771.648l-169.568 169.568c-12.608 12.608-28.992 18.784-45.376 18.784s-32.8-6.208-45.184-18.784l-726.048-726.048c-24.992-24.992-24.992-65.6 0-90.592l169.568-169.76c12.608-12.608 28.8-18.784 45.184-18.784s32.8 6.208 45.184 18.784l726.048 726.048c25.184 25.184 25.184 65.792 0.192 90.784zM718.976 553.088l-101.792 101.792 172.96 173.152 101.792-101.792-172.96-173.152z" />
35
+ <glyph unicode="&#xe919;" glyph-name="palette" d="M408.576 949.92c-198.816-38.816-359.008-198.592-398.208-396.8-74.016-374.016 263.392-652.8 517.6-613.408 82.4 12.8 122.816 109.216 84.992 183.392-46.208 90.816 19.808 196.8 121.792 196.8h159.392c71.616 0 129.6 59.2 129.792 130.592-0.992 315.2-287.808 563.2-615.424 499.424zM191.968 319.904c-35.392 0-64 28.608-64 64s28.608 64 64 64 64-28.608 64-64-28.608-64-64-64zM256 575.936c-35.392 0-64 28.608-64 64s28.608 64 64 64 64-28.608 64-64-28.608-64-64-64zM512 703.936c-35.392 0-64 28.608-64 64s28.608 64 64 64 64-28.608 64-64-28.608-64-64-64zM768 575.936c-35.392 0-64 28.608-64 64s28.608 64 64 64 64-28.608 64-64-28.608-64-64-64z" />
36
+ <glyph unicode="&#xe91a;" glyph-name="plus" d="M950.857 557.714h-329.143v329.143c0 40.457-32.686 73.143-73.143 73.143h-73.143c-40.457 0-73.143-32.686-73.143-73.143v-329.143h-329.143c-40.457 0-73.143-32.686-73.143-73.143v-73.143c0-40.457 32.686-73.143 73.143-73.143h329.143v-329.143c0-40.457 32.686-73.143 73.143-73.143h73.143c40.457 0 73.143 32.686 73.143 73.143v329.143h329.143c40.457 0 73.143 32.686 73.143 73.143v73.143c0 40.457-32.686 73.143-73.143 73.143z" />
37
+ <glyph unicode="&#xe91b;" glyph-name="question-circle" d="M512 960c-282.848 0-512-229.376-512-512 0-282.848 229.152-512 512-512s512 229.152 512 512c0 282.624-229.152 512-512 512zM512 35.104c-228.128 0-412.896 184.576-412.896 412.896 0 228.128 184.768 412.896 412.896 412.896s412.896-184.768 412.896-412.896c0-228.128-184.576-412.896-412.896-412.896zM733.312 561.952c0-138.528-149.472-140.608-149.472-191.808v-12.992c0-13.632-11.136-24.768-24.768-24.768h-94.144c-13.632 0-24.768 11.136-24.768 24.768v17.952c0 73.696 55.936 103.232 98.272 126.976 36.32 20.224 58.432 34.080 58.432 61.12 0 35.52-45.408 59.264-82.176 59.264-47.904 0-69.984-22.72-100.96-61.92-8.48-10.528-23.744-12.608-34.464-4.32l-57.408 43.552c-10.528 8.064-12.992 22.912-5.376 33.856 48.736 71.648 110.88 111.904 207.68 111.904 101.152-0.192 209.12-79.264 209.12-183.52zM598.72 216.768c0-47.904-38.816-86.72-86.72-86.72s-86.72 38.816-86.72 86.72 38.816 86.72 86.72 86.72 86.72-38.816 86.72-86.72z" />
38
+ <glyph unicode="&#xe91c;" glyph-name="tasks-alt" d="M278.4 889.6c-9.6 9.6-22.4 9.6-32 0v0l-128-128-44.8 44.8c-9.6 9.6-25.6 9.6-35.2 0v0l-32-32c-9.6-9.6-9.6-25.6 0-35.2v0l96-96c9.6-9.6 25.6-9.6 35.2 0l176 176c9.6 9.6 9.6 25.6 0 35.2l-35.2 35.2zM992 192h-576c-19.2 0-32-16-32-32v-64c0-16 12.8-32 32-32h576c16 0 32 16 32 32v64c0 19.2-16 32-32 32zM992 832h-576c-19.2 0-32-16-32-32v-64c0-19.2 12.8-32 32-32h576c16 0 32 12.8 32 32v64c0 19.2-16 32-32 32zM992 512h-576c-19.2 0-32-12.8-32-32v-64c0-16 12.8-32 32-32h576c16 0 32 16 32 32v64c0 19.2-16 32-32 32z" />
39
+ <glyph unicode="&#xe91d;" glyph-name="tasks" d="M279.232 889.568c-9.408 9.408-24.608 9.408-33.984 0 0 0 0 0 0 0l-127.392-126.592-45.408 44.192c-9.408 9.408-24.608 9.408-33.984 0 0 0 0 0 0 0l-31.392-31.392c-9.408-9.408-9.408-24.608 0-33.984 0 0 0 0 0 0l95.2-94.784c9.792-9.408 25.408-9.408 35.2 0l175.584 175.584c9.408 9.408 9.408 24.608 0.192 33.984l-33.984 32.992zM279.232 571.2c-9.408 9.408-24.608 9.408-33.984 0 0 0 0 0 0 0l-127.392-127.392-45.408 44.192c-9.408 9.408-24.608 9.408-33.984 0 0 0 0 0 0 0l-31.392-31.392c-9.408-9.408-9.408-24.608 0-33.984 0 0 0 0 0 0l95.008-95.008c9.792-9.408 25.408-9.408 35.2 0l175.776 175.808c9.408 9.408 9.408 24.384 0.192 33.792l-33.984 33.984zM992 192.608h-575.968c-17.6 0-32-14.4-32-32v-64c0-17.6 14.4-32 32-32h575.968c17.6 0 32 14.4 32 32v64c0 17.6-14.4 32-32 32zM992 832.576h-575.968c-17.6 0-32-14.4-32-32v-64c0-17.6 14.4-32 32-32h575.968c17.6 0 32 14.4 32 32v64c0 17.6-14.4 32-32 32zM992 512.608h-575.968c-17.6 0-32-14.4-32-32v-64c0-17.6 14.4-32 32-32h575.968c17.6 0 32 14.4 32 32v64c0 17.6-14.4 32-32 32zM279.232 250.016c-9.408 9.408-24.608 9.408-33.984 0 0 0 0 0 0 0l-127.392-127.392-45.408 44.192c-9.408 9.408-24.608 9.408-33.984 0 0 0 0 0 0 0l-31.392-31.392c-9.408-9.408-9.408-24.608 0-33.984 0 0 0 0 0 0l95.008-95.008c9.792-9.408 25.408-9.408 35.2 0l175.776 175.808c9.408 9.408 9.408 24.384 0.192 33.792l-33.984 33.984z" />
40
+ <glyph unicode="&#xe91e;" glyph-name="times" d="M706.036 448l291.2 291.2c35.782 35.782 35.782 93.673 0 129.455l-64.582 64.582c-35.782 35.782-93.673 35.782-129.455 0l-291.2-291.2-291.2 291.2c-35.491 35.782-93.673 35.782-129.164 0l-64.873-64.582c-35.782-35.782-35.782-93.673 0-129.455l291.2-291.2-291.2-291.2c-35.782-35.782-35.782-93.673 0-129.455l64.582-64.582c35.782-35.782 93.673-35.782 129.455 0l291.2 291.2 291.2-291.2c35.782-35.782 93.673-35.782 129.455 0l64.582 64.582c35.782 35.782 35.782 93.673 0 129.455l-291.2 291.2z" />
41
+ <glyph unicode="&#xe91f;" glyph-name="upload" d="M592 192.064h-160c-26.592 0-48 21.408-48 48v336h-175.392c-35.584 0-53.408 43.008-28.192 68.192l304.192 304.384c15.008 15.008 39.584 15.008 54.592 0l304.384-304.384c25.216-25.184 7.392-68.192-28.192-68.192h-175.392v-336c0-26.592-21.408-48-48-48zM1024 208.064v-224c0-26.592-21.408-48-48-48h-928c-26.592 0-48 21.408-48 48v224c0 26.592 21.408 48 48 48h272v-16c0-61.792 50.208-112 112-112h160c61.792 0 112 50.208 112 112v16h272c26.592 0 48-21.408 48-48zM776 32.064c0 22.016-18.016 40-40 40s-40-18.016-40-40 18.016-40 40-40 40 18.016 40 40zM904 32.064c0 22.016-18.016 40-40 40s-40-18.016-40-40 18.016-40 40-40 40 18.016 40 40z" />
42
+ <glyph unicode="&#xe920;" glyph-name="bookmark" d="M0.267-64c0 348-0.533 637.867 0 1024h1024c0-275.2 0-675.467 0-1024l-511.467 512-512.533-512z" />
43
+ <glyph unicode="&#xe921;" glyph-name="heart" horiz-adv-x="1170" d="M1056.686 890.057c-125.257 106.743-311.543 87.543-426.514-31.086l-45.029-46.4-45.029 46.4c-114.743 118.629-301.257 137.829-426.514 31.086-143.543-122.514-151.086-342.4-22.629-475.2l442.286-456.686c28.571-29.486 74.971-29.486 103.543 0l442.286 456.686c128.686 132.8 121.143 352.686-22.4 475.2v0z" />
44
+ <glyph unicode="&#xe922;" glyph-name="star" horiz-adv-x="1070" d="M477.507 924.407l-130.574-264.748-292.143-42.592c-52.39-7.599-73.386-72.186-35.393-109.179l211.359-205.96-49.99-290.943c-8.998-52.59 46.391-91.982 92.782-67.387l261.349 137.373 261.349-137.373c46.391-24.395 101.78 14.797 92.782 67.387l-49.99 290.943 211.359 205.96c37.993 36.993 16.997 101.58-35.393 109.179l-292.143 42.592-130.574 264.748c-23.395 47.191-91.182 47.791-114.778 0v0z" />
45
+ <glyph unicode="&#xe923;" glyph-name="plugin-symbol" d="M142.222 391.111h-113.778c-15.644 0-28.444-12.8-28.444-28.444v-113.778c0-15.644 12.8-28.444 28.444-28.444h113.778c15.644 0 28.444 12.8 28.444 28.444v113.778c0 15.644-12.8 28.444-28.444 28.444zM142.222 960h-113.778c-15.644 0-28.444-12.8-28.444-28.444v-113.778c0-15.644 12.8-28.444 28.444-28.444h113.778c15.644 0 28.444 12.8 28.444 28.444v113.778c0 15.644-12.8 28.444-28.444 28.444zM142.222 675.556h-113.778c-15.644 0-28.444-12.8-28.444-28.444v-113.778c0-15.644 12.8-28.444 28.444-28.444h113.778c15.644 0 28.444 12.8 28.444 28.444v113.778c0 15.644-12.8 28.444-28.444 28.444zM995.556 362.667h-682.667c-15.644 0-28.444-12.8-28.444-28.444v-56.889c0-15.644 12.8-28.444 28.444-28.444h682.667c15.644 0 28.444 12.8 28.444 28.444v56.889c0 15.644-12.8 28.444-28.444 28.444zM995.556 931.556h-682.667c-15.644 0-28.444-12.8-28.444-28.444v-56.889c0-15.644 12.8-28.444 28.444-28.444h682.667c15.644 0 28.444 12.8 28.444 28.444v56.889c0 15.644-12.8 28.444-28.444 28.444zM995.556 647.111h-682.667c-15.644 0-28.444-12.8-28.444-28.444v-56.889c0-15.644 12.8-28.444 28.444-28.444h682.667c15.644 0 28.444 12.8 28.444 28.444v56.889c0 15.644-12.8 28.444-28.444 28.444zM142.222 106.667h-113.778c-15.644 0-28.444-12.8-28.444-28.444v-113.778c0-15.644 12.8-28.444 28.444-28.444h113.778c15.644 0 28.444 12.8 28.444 28.444v113.778c0 15.644-12.8 28.444-28.444 28.444zM995.556 78.222h-682.667c-15.644 0-28.444-12.8-28.444-28.444v-56.889c0-15.644 12.8-28.444 28.444-28.444h682.667c15.644 0 28.444 12.8 28.444 28.444v56.889c0 15.644-12.8 28.444-28.444 28.444z" />
46
+ <glyph unicode="&#xe924;" glyph-name="trash-alt" d="M599.999 128h48c13.255 0 24 10.745 24 24v0 432c0 13.255-10.745 24-24 24v0h-48c-13.255 0-24-10.745-24-24v0-432c0-13.255 10.745-24 24-24v0zM927.999 800h-164.82l-68 113.4c-17.083 28.11-47.539 46.6-82.314 46.6-0.016 0-0.032 0-0.048 0h-201.637c-0.002 0-0.004 0-0.006 0-34.775 0-65.231-18.49-82.074-46.175l-0.24-0.425-68.040-113.4h-164.82c-17.673 0-32-14.327-32-32v0-32c0-17.673 14.327-32 32-32v0h32v-672c0-53.019 42.981-96 96-96v0h576c53.019 0 96 42.981 96 96v0 672h32c17.673 0 32 14.327 32 32v0 32c0 17.673-14.327 32-32 32v0zM407.679 858.18c2.136 3.511 5.941 5.82 10.286 5.82 0.012 0 0.024 0 0.036 0h187.998c0.004 0 0.009 0 0.014 0 4.345 0 8.15-2.309 10.256-5.767l0.030-0.053 34.92-58.18h-278.44zM799.999 32h-576v672h576zM375.999 128h48c13.255 0 24 10.745 24 24v0 432c0 13.255-10.745 24-24 24v0h-48c-13.255 0-24-10.745-24-24v0-432c0-13.255 10.745-24 24-24v0z" />
47
+ <glyph unicode="&#xe925;" glyph-name="spinner" d="M608 864c0-53.020-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96 96-42.98 96-96zM512 128c-53.020 0-96-42.98-96-96s42.98-96 96-96 96 42.98 96 96-42.98 96-96 96zM928 544c-53.020 0-96-42.98-96-96s42.98-96 96-96 96 42.98 96 96-42.98 96-96 96zM192 448c0 53.020-42.98 96-96 96s-96-42.98-96-96 42.98-96 96-96 96 42.98 96 96zM217.844 249.844c-53.020 0-96-42.98-96-96s42.98-96 96-96 96 42.98 96 96c0 53.018-42.982 96-96 96zM806.156 249.844c-53.020 0-96-42.98-96-96s42.98-96 96-96 96 42.98 96 96c0 53.018-42.98 96-96 96zM217.844 838.156c-53.020 0-96-42.98-96-96s42.98-96 96-96 96 42.98 96 96-42.982 96-96 96z" />
48
+ <glyph unicode="&#xe926;" glyph-name="exclamation-triangle" d="M1012.475 120.866c32.814-56.878-8.375-127.977-73.915-127.977h-853.13c-65.666 0-106.665 71.209-73.915 127.977l426.571 739.605c32.83 56.905 115.058 56.802 147.829 0l426.56-739.605zM512.001 273.778c-45.164 0-81.778-36.613-81.778-81.778s36.613-81.778 81.778-81.778 81.778 36.613 81.778 81.778-36.613 81.778-81.778 81.778zM434.36 567.726l13.188-241.778c0.617-11.314 9.972-20.171 21.301-20.171h86.304c11.33 0 20.684 8.857 21.301 20.171l13.188 241.778c0.667 12.22-9.063 22.496-21.301 22.496h-112.681c-12.238 0-21.966-10.276-21.3-22.496z" />
49
+ </font></defs></svg>
assets/fonts/icons/icomoon.ttf ADDED
Binary file
assets/fonts/icons/icomoon.woff ADDED
Binary file
assets/fonts/icons/selection.json ADDED
@@ -0,0 +1 @@
 
1
+ {"IcoMoonType":"selection","icons":[{"icon":{"paths":["M29.248 731.424h599.552c16.224 0 29.248-13.024 29.248-29.248 0 0 0 0 0 0v-87.552c0-16.224-13.024-29.248-29.248-29.248 0 0 0 0 0 0h-599.552c-16.224-0.224-29.248 12.8-29.248 29.024 0 0 0 0 0 0v87.552c0 16.448 13.024 29.472 29.248 29.472 0 0 0 0 0 0zM29.248 146.272h599.552c16.224 0 29.248-13.024 29.248-29.248 0 0 0 0 0 0v-87.776c0.224-16.224-12.8-29.248-29.024-29.248 0 0 0 0 0 0h-599.776c-16.224 0-29.248 13.024-29.248 29.248 0 0 0 0 0 0v87.552c0 16.448 13.024 29.472 29.248 29.472 0 0 0 0 0 0zM987.424 292.576h-950.848c-20.128 0-36.576 16.448-36.576 36.576v73.152c0 20.128 16.448 36.576 36.576 36.576h950.848c20.128 0 36.576-16.448 36.576-36.576v-73.152c0-20.128-16.448-36.576-36.576-36.576zM987.424 877.728h-950.848c-20.128 0-36.576 16.448-36.576 36.576v73.152c0 20.128 16.448 36.576 36.576 36.576h950.848c20.128 0 36.576-16.448 36.576-36.576v-73.152c0-20.128-16.448-36.576-36.576-36.576z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"tags":["align-left"],"grid":0},"attrs":[{}],"properties":{"order":249,"id":0,"name":"align-left","prevSize":64,"code":59648},"setIdx":0,"setId":0,"iconIdx":0},{"icon":{"paths":["M0.267 1024c0-348-0.533-637.867 0-1024h1024c0 275.2 0 675.467 0 1024l-511.467-512-512.533 512z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"tags":["bookmark"],"grid":0},"attrs":[{}],"properties":{"order":250,"id":1,"name":"bookmark","prevSize":64,"code":59680},"setIdx":0,"setId":0,"iconIdx":1},{"icon":{"paths":["M832 0h-640c-35.392 0-64 28.608-64 64v448h768v-448c0-35.392-28.608-64-64-64zM128 640c0 70.784 57.408 128 128 128h128v128c0 70.784 57.408 128 128 128s128-57.216 128-128v-128h128c70.592 0 128-57.216 128-128v-64h-768v64zM512 848c26.592 0 48 21.408 48 48s-21.6 48-48 48-48-21.6-48-48c0-26.592 21.6-48 48-48z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"tags":["brush"],"grid":0},"attrs":[{}],"properties":{"order":251,"id":2,"name":"brush","prevSize":64,"code":59649},"setIdx":0,"setId":0,"iconIdx":2},{"icon":{"paths":["M360 576h-80c-13.184 0-24-10.784-24-24v-80c0-13.184 10.816-24 24-24h80c13.184 0 24 10.816 24 24v80c0 13.216-10.816 24-24 24zM576 552v-80c0-13.184-10.784-24-24-24h-80c-13.184 0-24 10.816-24 24v80c0 13.216 10.816 24 24 24h80c13.216 0 24-10.784 24-24zM768 552v-80c0-13.184-10.784-24-24-24h-80c-13.216 0-24 10.816-24 24v80c0 13.216 10.784 24 24 24h80c13.216 0 24-10.784 24-24zM576 744v-80c0-13.216-10.784-24-24-24h-80c-13.184 0-24 10.784-24 24v80c0 13.216 10.816 24 24 24h80c13.216 0 24-10.784 24-24zM384 744v-80c0-13.216-10.816-24-24-24h-80c-13.184 0-24 10.784-24 24v80c0 13.216 10.816 24 24 24h80c13.184 0 24-10.784 24-24zM768 744v-80c0-13.216-10.784-24-24-24h-80c-13.216 0-24 10.784-24 24v80c0 13.216 10.784 24 24 24h80c13.216 0 24-10.784 24-24zM960 224v704c0 52.992-43.008 96-96 96h-704c-52.992 0-96-43.008-96-96v-704c0-52.992 43.008-96 96-96h96v-104c0-13.184 10.816-24 24-24h80c13.184 0 24 10.816 24 24v104h256v-104c0-13.184 10.784-24 24-24h80c13.216 0 24 10.816 24 24v104h96c52.992 0 96 43.008 96 96zM864 916v-596h-704v596c0 6.592 5.408 12 12 12h680c6.592 0 12-5.408 12-12z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"tags":["calendar-alt"],"grid":0},"attrs":[{}],"properties":{"order":252,"id":3,"name":"calendar-alt","prevSize":64,"code":59650},"setIdx":0,"setId":0,"iconIdx":3},{"icon":{"paths":["M121.471 0h1562.724c108.109 0 162.164 130.581 85.637 207.108l-781.058 781.665c-47.374 47.374-124.508 47.374-171.881 0l-781.058-781.665c-76.527-76.527-22.472-207.108 85.637-207.108z"],"width":1806,"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"tags":["caret-down"],"grid":0},"attrs":[{}],"properties":{"order":253,"id":4,"name":"caret-down","prevSize":64,"code":59651},"setIdx":0,"setId":0,"iconIdx":4},{"icon":{"paths":["M580.863 68.863v885.929c0 61.289-74.028 91.933-117.412 48.549l-443.137-442.792c-26.857-26.857-26.857-70.585 0-97.442l442.792-442.792c43.384-43.384 117.757-12.74 117.757 48.549z"],"width":581,"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"tags":["caret-left"],"grid":0},"attrs":[{}],"properties":{"order":254,"id":5,"name":"caret-left","prevSize":64,"code":59652},"setIdx":0,"setId":0,"iconIdx":5},{"icon":{"paths":["M0 955.137v-886.273c0-61.289 74.028-91.933 117.412-48.549l443.137 443.137c26.857 26.857 26.857 70.585 0 97.442l-443.137 442.792c-43.384 43.384-117.412 12.74-117.412-48.549z"],"width":581,"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"tags":["caret-right"],"grid":0},"attrs":[{}],"properties":{"order":255,"id":6,"name":"caret-right","prevSize":64,"code":59653},"setIdx":0,"setId":0,"iconIdx":6},{"icon":{"paths":["M1683.803 1024h-1562.404c-108.045 0-162.068-130.504-85.586-206.985l781.202-781.202c47.346-47.346 124.434-47.346 171.779 0l781.202 781.202c75.874 75.874 21.852 206.985-86.193 206.985v0z"],"width":1805,"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"tags":["caret-up"],"grid":0},"attrs":[{}],"properties":{"order":256,"id":7,"name":"caret-up","prevSize":64,"code":59654},"setIdx":0,"setId":0,"iconIdx":7},{"icon":{"paths":["M347.8 878.8l-332.8-332.8c-20-20-20-52.4 0-72.4l72.4-72.4c20-20 52.4-20 72.4 0l224.2 224.2 480.2-480.2c20-20 52.4-20 72.4 0l72.4 72.4c20 20 20 52.4 0 72.4l-588.799 588.799c-20 20-52.4 20-72.4 0v0z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"tags":["check"],"grid":0},"attrs":[{}],"properties":{"order":257,"id":8,"name":"check","prevSize":64,"code":59655},"setIdx":0,"setId":0,"iconIdx":8},{"icon":{"paths":["M914.272 0h-804.576c-60.576 0-109.728 49.152-109.728 109.728v804.576c0 60.576 49.152 109.728 109.728 109.728h804.576c60.576 0 109.728-49.152 109.728-109.728v-804.576c0-60.576-49.152-109.728-109.728-109.728zM914.272 914.272h-804.576v-804.576h804.576v804.576zM832.224 361.824l-394.528 391.328c-10.752 10.752-28.128 10.528-38.848-0.224l-207.552-209.152c-10.752-10.752-10.528-28.128 0.224-38.848l51.872-51.424c10.752-10.752 28.128-10.528 38.848 0.224l136.672 137.824 323.2-320.448c10.752-10.752 28.128-10.528 38.848 0.224l51.424 51.872c10.752 10.528 10.528 27.872-0.224 38.624v0z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"tags":["check-square"],"grid":0},"attrs":[{}],"properties":{"order":258,"id":9,"name":"check-square","prevSize":64,"code":59656},"setIdx":0,"setId":0,"iconIdx":9},{"icon":{"paths":["M512 0c-282.848 0-512 229.152-512 512s229.152 512 512 512 512-229.152 512-512-229.152-512-512-512zM512 924.896c-228.128 0-412.896-184.768-412.896-412.896s184.768-412.896 412.896-412.896 412.896 184.768 412.896 412.896-184.768 412.896-412.896 412.896zM639.584 709.376l-175.264-127.392c-6.4-4.736-10.112-12.192-10.112-20.032v-339.008c0-13.632 11.136-24.768 24.768-24.768h66.080c13.632 0 24.768 11.136 24.768 24.768v292.544l137.92 100.32c11.136 8.064 13.408 23.52 5.376 34.688l-38.816 53.472c-8.064 10.944-23.52 13.408-34.688 5.376v0z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"tags":["clock"],"grid":0},"attrs":[{}],"properties":{"order":259,"id":10,"name":"clock","prevSize":64,"code":59657},"setIdx":0,"setId":0,"iconIdx":10},{"icon":{"paths":["M446.24 920.736l-97.6-28.32c-10.24-2.88-16-13.6-13.12-23.84l218.368-752.256c2.88-10.24 13.6-16 23.84-13.12l97.6 28.32c10.24 2.88 16 13.6 13.12 23.84l-218.368 752.256c-3.040 10.24-13.6 16.16-23.84 13.12zM263.872 741.248l69.6-74.24c7.36-7.84 6.88-20.32-1.28-27.52l-144.96-127.52 144.96-127.52c8.16-7.2 8.8-19.68 1.28-27.52l-69.6-74.24c-7.2-7.68-19.36-8.16-27.2-0.8l-230.528 215.968c-8.16 7.52-8.16 20.48 0 28l230.528 216.128c7.84 7.36 20 7.040 27.2-0.8v0zM787.328 742.208l230.528-216.128c8.16-7.52 8.16-20.48 0-28l-230.528-216.288c-7.68-7.2-19.84-6.88-27.2 0.8l-69.6 74.24c-7.36 7.84-6.88 20.32 1.28 27.52l144.96 127.68-144.96 127.52c-8.16 7.2-8.8 19.68-1.28 27.52l69.6 74.24c7.2 7.84 19.36 8.16 27.2 0.96v0z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"tags":["code"],"grid":0},"attrs":[{}],"properties":{"order":260,"id":11,"name":"code","prevSize":64,"code":59658},"setIdx":0,"setId":0,"iconIdx":11},{"icon":{"paths":["M989.6 635.040l-87.936-50.784c8.864-47.904 8.864-97.024 0-144.928l87.936-50.784c10.112-5.792 14.656-17.76 11.36-28.896-22.912-73.504-61.92-139.968-112.928-195.296-7.84-8.48-20.64-10.528-30.56-4.736l-87.936 50.784c-36.96-31.808-79.488-56.352-125.536-72.48v-101.376c0-11.552-8.064-21.664-19.392-24.16-75.776-16.928-153.408-16.096-225.44 0-11.36 2.464-19.392 12.608-19.392 24.16v101.568c-45.824 16.32-88.352 40.864-125.536 72.48l-87.744-50.784c-10.112-5.792-22.72-3.936-30.56 4.736-51.008 55.136-90.016 121.6-112.928 195.296-3.52 11.136 1.248 23.136 11.36 28.896l87.936 50.784c-8.864 47.904-8.864 97.024 0 144.928l-87.936 50.784c-10.112 5.792-14.656 17.76-11.36 28.896 22.912 73.504 61.92 139.968 112.928 195.296 7.84 8.48 20.64 10.528 30.56 4.736l87.936-50.784c36.96 31.808 79.488 56.352 125.536 72.48v101.568c0 11.552 8.064 21.664 19.392 24.16 75.776 16.928 153.408 16.096 225.44 0 11.36-2.464 19.392-12.608 19.392-24.16v-101.568c45.824-16.32 88.352-40.864 125.536-72.48l87.936 50.784c10.112 5.792 22.72 3.936 30.56-4.736 51.008-55.136 90.016-121.6 112.928-195.296 3.104-11.36-1.44-23.328-11.552-29.12zM511.872 676.96c-91.040 0-165.152-74.112-165.152-165.152s74.112-165.152 165.152-165.152 165.152 74.112 165.152 165.152-74.112 165.152-165.152 165.152z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"tags":["cog"],"grid":0},"attrs":[{}],"properties":{"order":261,"id":12,"name":"cog","prevSize":64,"code":59659},"setIdx":0,"setId":0,"iconIdx":12},{"icon":{"paths":["M819.456 409.184l-13.12 22.88c-4.8 8.48-15.040 12-24.16 8.64-18.88-7.040-36.16-17.12-51.36-29.76-7.36-6.080-9.28-16.8-4.48-25.12l13.12-22.88c-11.040-12.8-19.68-27.68-25.44-43.84h-26.4c-9.6 0-17.92-6.88-19.52-16.48-3.2-19.2-3.36-39.36 0-59.36 1.6-9.6 9.92-16.64 19.52-16.64h26.4c5.76-16.16 14.4-31.040 25.44-43.84l-13.12-22.88c-4.8-8.32-3.040-19.040 4.48-25.12 15.2-12.64 32.64-22.72 51.36-29.76 9.12-3.36 19.36 0.16 24.16 8.64l13.12 22.88c16.8-3.040 33.92-3.040 50.72 0l13.12-22.88c4.8-8.48 15.040-12 24.16-8.64 18.88 7.040 36.16 17.12 51.36 29.76 7.36 6.080 9.28 16.8 4.48 25.12l-13.12 22.88c11.040 12.8 19.68 27.68 25.44 43.84h26.4c9.6 0 17.92 6.88 19.52 16.48 3.2 19.2 3.36 39.36 0 59.36-1.6 9.6-9.92 16.64-19.52 16.64h-26.4c-5.76 16.16-14.4 31.040-25.44 43.84l13.12 22.88c4.8 8.32 3.040 19.040-4.48 25.12-15.2 12.64-32.64 22.72-51.36 29.76-9.12 3.36-19.36-0.16-24.16-8.64l-13.12-22.88c-16.64 3.040-33.92 3.040-50.72 0zM802.656 315.104c61.6 47.36 131.84-22.88 84.48-84.48-61.6-47.52-131.84 22.88-84.48 84.48zM618.144 561.376l53.92 26.88c16.16 9.28 23.2 28.96 16.8 46.56-14.24 38.72-42.24 74.24-68.16 105.28-11.84 14.24-32.32 17.76-48.48 8.48l-46.56-26.88c-25.6 21.92-55.36 39.36-87.84 50.72v53.76c0 18.56-13.28 34.56-31.52 37.76-39.36 6.72-80.64 7.040-121.44 0-18.4-3.2-32-19.040-32-37.76v-53.76c-32.48-11.52-62.24-28.8-87.84-50.72l-46.56 26.72c-16 9.28-36.64 5.76-48.48-8.48-25.92-31.040-53.28-66.56-67.52-105.12-6.4-17.44 0.64-37.12 16.8-46.56l53.28-26.88c-6.24-33.44-6.24-67.84 0-101.44l-53.28-27.040c-16.16-9.28-23.36-28.96-16.8-46.4 14.24-38.72 41.6-74.24 67.52-105.28 11.84-14.24 32.32-17.76 48.48-8.48l46.56 26.88c25.6-21.92 55.36-39.36 87.84-50.72v-53.92c0-18.4 13.12-34.4 31.36-37.6 39.36-6.72 80.8-7.040 121.6-0.16 18.4 3.2 32 19.040 32 37.76v53.76c32.48 11.52 62.24 28.8 87.84 50.72l46.56-26.88c16-9.28 36.64-5.76 48.48 8.48 25.92 31.040 53.12 66.56 67.36 105.28 6.4 17.44 0.16 37.12-16 46.56l-53.92 26.88c6.24 33.6 6.24 68 0 101.6zM429.984 595.136c94.72-123.2-45.92-263.872-169.12-169.12-94.72 123.2 45.92 263.872 169.12 169.12zM819.456 887.456l-13.12 22.88c-4.8 8.48-15.040 12-24.16 8.64-18.88-7.040-36.16-17.12-51.36-29.76-7.36-6.080-9.28-16.8-4.48-25.12l13.12-22.88c-11.040-12.8-19.68-27.68-25.44-43.84h-26.4c-9.6 0-17.92-6.88-19.52-16.48-3.2-19.2-3.36-39.36 0-59.36 1.6-9.6 9.92-16.64 19.52-16.64h26.4c5.76-16.16 14.4-31.040 25.44-43.84l-13.12-22.88c-4.8-8.32-3.040-19.040 4.48-25.12 15.2-12.64 32.64-22.72 51.36-29.76 9.12-3.36 19.36 0.16 24.16 8.64l13.12 22.88c16.8-3.040 33.92-3.040 50.72 0l13.12-22.88c4.8-8.48 15.040-12 24.16-8.64 18.88 7.040 36.16 17.12 51.36 29.76 7.36 6.080 9.28 16.8 4.48 25.12l-13.12 22.88c11.040 12.8 19.68 27.68 25.44 43.84h26.4c9.6 0 17.92 6.88 19.52 16.48 3.2 19.2 3.36 39.36 0 59.36-1.6 9.6-9.92 16.64-19.52 16.64h-26.4c-5.76 16.16-14.4 31.040-25.44 43.84l13.12 22.88c4.8 8.32 3.040 19.040-4.48 25.12-15.2 12.64-32.64 22.72-51.36 29.76-9.12 3.36-19.36-0.16-24.16-8.64l-13.12-22.88c-16.64 3.040-33.92 3.040-50.72 0zM802.656 793.216c61.6 47.36 131.84-22.88 84.48-84.48-61.6-47.36-131.84 22.88-84.48 84.48v0z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"tags":["cogs"],"grid":0},"attrs":[{}],"properties":{"order":262,"id":13,"name":"cogs","prevSize":64,"code":59660},"setIdx":0,"setId":0,"iconIdx":13},{"icon":{"paths":["M642.4 466.816l-216-63.2c-24.992-7.2-42.4-30.592-42.4-56.608 0-32.608 26.4-59.008 59.008-59.008h132.608c24.384 0 48.384 7.392 68.384 20.992 12.192 8.192 28.608 6.208 39.008-4l69.6-68c14.208-13.792 12.192-36.8-3.616-48.992-48.992-38.4-110.208-59.808-172.992-60v-96c0-17.6-14.4-32-32-32h-64c-17.6 0-32 14.4-32 32v96h-4.992c-127.392 0-229.792 109.408-218.016 239.2 8.416 92.192 78.816 167.2 167.616 193.184l204.992 60c24.992 7.392 42.4 30.592 42.4 56.608 0 32.608-26.4 59.008-59.008 59.008h-132.608c-24.384 0-48.384-7.392-68.384-20.992-12.192-8.192-28.608-6.208-39.008 4l-69.6 68c-14.208 13.792-12.192 36.8 3.616 48.992 48.992 38.4 110.208 59.808 172.992 60v96c0 17.6 14.4 32 32 32h64c17.6 0 32-14.4 32-32v-96.384c93.216-1.792 180.608-57.216 211.392-145.408 43.008-123.2-29.216-249.6-144.992-283.392v0z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"tags":["dollar-sign"],"grid":0},"attrs":[{}],"properties":{"order":263,"id":14,"name":"dollar-sign","prevSize":64,"code":59661},"setIdx":0,"setId":0,"iconIdx":14},{"icon":{"paths":["M637.568 898.432c0 69.344-56.224 125.568-125.568 125.568s-125.568-56.224-125.568-125.568c0-69.344 56.224-125.568 125.568-125.568s125.568 56.224 125.568 125.568z","M637.568 512.128c0 69.344-56.224 125.568-125.568 125.568s-125.568-56.224-125.568-125.568c0-69.344 56.224-125.568 125.568-125.568s125.568 56.224 125.568 125.568z","M637.568 125.568c0 69.344-56.224 125.568-125.568 125.568s-125.568-56.224-125.568-125.568c0-69.344 56.224-125.568 125.568-125.568s125.568 56.224 125.568 125.568z"],"attrs":[{},{},{}],"isMulticolor":false,"isMulticolor2":false,"tags":["ellipsis-v"],"grid":0},"attrs":[{},{},{}],"properties":{"order":264,"id":15,"name":"ellipsis-v","prevSize":64,"code":59662},"setIdx":0,"setId":0,"iconIdx":15},{"icon":{"paths":["M271.904 48.288v719.52h95.936c42.912 0 63.968 51.968 34.112 82.080l-159.904 159.904c-18.912 18.912-49.312 18.912-67.68 0l-159.904-159.904c-30.368-30.368-9.056-82.080 33.568-82.080h95.936v-719.52c0-26.656 21.6-47.968 47.968-47.968h31.968c26.368 0 47.968 21.312 47.968 47.968v0zM799.84 1023.68h31.968c26.656 0 47.968-21.312 47.968-47.968v-719.52h95.936c42.912 0 63.968-51.712 34.112-82.080l-159.904-159.904c-18.656-18.912-49.024-18.912-67.68 0l-159.904 159.904c-30.368 30.368-8.8 82.080 33.568 82.080h95.936v719.52c0 26.656 21.6 47.968 47.968 47.968v0z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"tags":["exchange-alt"],"grid":0},"attrs":[{}],"properties":{"order":265,"id":16,"name":"exchange-alt","prevSize":64,"code":59663},"setIdx":0,"setId":0,"iconIdx":16},{"icon":{"paths":["M1012.475 839.134c32.814 56.878-8.375 127.977-73.915 127.977h-853.13c-65.666 0-106.665-71.209-73.915-127.977l426.571-739.605c32.83-56.905 115.058-56.802 147.829 0l426.56 739.605zM512.001 686.222c-45.164 0-81.778 36.613-81.778 81.778s36.613 81.778 81.778 81.778 81.778-36.613 81.778-81.778-36.613-81.778-81.778-81.778zM434.36 392.274l13.188 241.778c0.617 11.314 9.972 20.171 21.301 20.171h86.304c11.33 0 20.684-8.857 21.301-20.171l13.188-241.778c0.667-12.22-9.063-22.496-21.301-22.496h-112.681c-12.238 0-21.966 10.276-21.3 22.496z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["exclamation-triangle"]},"attrs":[{}],"properties":{"order":248,"id":38,"name":"exclamation-triangle","prevSize":64,"code":59686},"setIdx":0,"setId":0,"iconIdx":17},{"icon":{"paths":["M511.936 312.864c-18.848 0.352-37.504 3.2-55.456 8.896 8.352 14.592 12.8 31.104 12.8 48 0 54.944-44.64 99.552-99.552 99.552-16.896-0.192-33.408-4.608-48-12.8-30.4 105.248 30.4 215.488 135.84 245.696 105.44 30.4 215.488-30.4 245.888-135.84s-30.4-215.488-135.84-245.888c-18.144-5.152-36.8-7.648-55.648-7.648zM1017.728 486.048c-96.352-188.096-287.296-315.392-505.792-315.392s-409.44 127.296-505.792 315.392c-8.192 16.352-8.192 35.552 0 51.904 96.352 188.096 287.296 315.392 505.792 315.392s409.44-127.296 505.792-315.392c8.352-16.352 8.352-35.552 0-51.904zM511.936 768c-175.296 0-336.192-97.792-422.944-256 86.752-158.24 247.488-256 422.944-256s336.192 97.792 422.944 256c-86.752 158.24-247.488 256-422.944 256z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"tags":["eye"],"grid":0},"attrs":[{}],"properties":{"order":266,"id":17,"name":"eye","prevSize":64,"code":59664},"setIdx":0,"setId":0,"iconIdx":18},{"icon":{"paths":["M987.424 877.728h-53.472l-298.752-828.128c-10.048-29.728-37.952-49.6-69.248-49.6h-107.872c-31.328 0-59.2 19.872-69.248 49.6l-298.752 828.128h-53.472c-20.128 0-36.576 16.448-36.576 36.576v73.152c0 20.128 16.448 36.576 36.576 36.576h292.576c20.128 0 36.576-16.448 36.576-36.576v-73.152c0-20.128-16.448-36.576-36.576-36.576h-44.8l53.248-146.272h348.8l53.248 146.272h-44.8c-20.128 0-36.576 16.448-36.576 36.576v73.152c0 20.128 16.448 36.576 36.576 36.576h292.576c20.128 0 36.576-16.448 36.576-36.576v-73.152c0-20.128-16.448-36.576-36.576-36.576zM404.352 548.576l107.648-296 107.648 296h-215.328z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"tags":["font"],"grid":0},"attrs":[{}],"properties":{"order":267,"id":18,"name":"font","prevSize":64,"code":59665},"setIdx":0,"setId":0,"iconIdx":19},{"icon":{"paths":["M921.6 170.656v682.656h68.256c18.784 0 34.144 15.36 34.144 34.144v68.256c0 18.784-15.36 34.144-34.144 34.144h-341.344c-18.784 0-34.144-15.36-34.144-34.144v-68.256c0-18.784 15.36-34.144 34.144-34.144h68.256v-273.056h-409.6v273.056h68.256c18.784 0 34.144 15.36 34.144 34.144v68.256c0 18.784-15.36 34.144-34.144 34.144h-341.344c-18.784 0-34.144-15.36-34.144-34.144v-68.256c0-18.784 15.36-34.144 34.144-34.144h68.256v-682.656h-68.256c-18.784 0-34.144-15.36-34.144-34.144v-68.256c0-18.784 15.36-34.144 34.144-34.144h341.344c18.784 0 34.144 15.36 34.144 34.144v68.256c0 18.784-15.36 34.144-34.144 34.144h-68.256v273.056h409.6v-273.056h-68.256c-18.784 0-34.144-15.36-34.144-34.144v-68.256c0-18.784 15.36-34.144 34.144-34.144h341.344c18.784 0 34.144 15.36 34.144 34.144v68.256c0 18.784-15.36 34.144-34.144 34.144h-68.256z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"tags":["heading"],"grid":0},"attrs":[{}],"properties":{"order":268,"id":19,"name":"heading","prevSize":64,"code":59666},"setIdx":0,"setId":0,"iconIdx":20},{"icon":{"paths":["M1056.686 69.943c-125.257-106.743-311.543-87.543-426.514 31.086l-45.029 46.4-45.029-46.4c-114.743-118.629-301.257-137.829-426.514-31.086-143.543 122.514-151.086 342.4-22.629 475.2l442.286 456.686c28.571 29.486 74.971 29.486 103.543 0l442.286-456.686c128.686-132.8 121.143-352.686-22.4-475.2v0z"],"width":1170,"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"tags":["heart"],"grid":0},"attrs":[{}],"properties":{"order":269,"id":20,"name":"heart","prevSize":64,"code":59681},"setIdx":0,"setId":0,"iconIdx":21},{"icon":{"paths":["M96 96c-52.992 0-96 43.008-96 96s43.008 96 96 96 96-43.008 96-96-43.008-96-96-96zM96 416c-52.992 0-96 43.008-96 96s43.008 96 96 96 96-43.008 96-96-43.008-96-96-96zM96 736c-52.992 0-96 43.008-96 96s43.008 96 96 96 96-43.008 96-96-43.008-96-96-96zM992 768h-640c-17.6 0-32 14.4-32 32v64c0 17.6 14.4 32 32 32h640c17.6 0 32-14.4 32-32v-64c0-17.6-14.4-32-32-32zM992 128h-640c-17.6 0-32 14.4-32 32v64c0 17.6 14.4 32 32 32h640c17.6 0 32-14.4 32-32v-64c0-17.6-14.4-32-32-32zM992 448h-640c-17.6 0-32 14.4-32 32v64c0 17.6 14.4 32 32 32h640c17.6 0 32-14.4 32-32v-64c0-17.6-14.4-32-32-32z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"tags":["list-ul"],"grid":0},"attrs":[{}],"properties":{"order":270,"id":21,"name":"list-ul","prevSize":64,"code":59667},"setIdx":0,"setId":0,"iconIdx":22},{"icon":{"paths":["M343.086 717.486v-690.057c0-15.086-12.343-27.429-27.429-27.429h-128c-15.086 0-27.429 12.343-27.429 27.429v690.057h-105.371c-48.914 0-73.371 59.2-38.857 93.714l196.8 196.8c21.486 21.486 56.229 21.486 77.486 0l196.8-196.8c34.514-34.514 10.057-93.714-38.857-93.714h-105.143z"],"width":503,"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"tags":["long-arrow-alt-down"],"grid":0},"attrs":[{}],"properties":{"order":271,"id":22,"name":"long-arrow-alt-down","prevSize":64,"code":59668},"setIdx":0,"setId":0,"iconIdx":23},{"icon":{"paths":["M623.608 698.013h1403.931c30.692 0 55.804-25.112 55.804-55.804v-260.418c0-30.692-25.112-55.804-55.804-55.804h-1403.931v-214.38c0-99.517-120.443-149.275-190.663-79.055l-400.392 400.392c-43.713 43.713-43.713 114.398 0 157.646l400.392 400.392c70.22 70.22 190.663 20.461 190.663-79.055v-213.915z"],"width":2083,"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"tags":["long-arrow-alt-left"],"grid":0},"attrs":[{}],"properties":{"order":272,"id":23,"name":"long-arrow-alt-left","prevSize":64,"code":59669},"setIdx":0,"setId":0,"iconIdx":24},{"icon":{"paths":["M1459.735 325.987h-1403.931c-30.692 0-55.804 25.112-55.804 55.804v260.418c0 30.692 25.112 55.804 55.804 55.804h1403.931v214.38c0 99.517 120.443 149.275 190.663 79.055l400.392-400.392c43.713-43.713 43.713-114.398 0-157.646l-400.392-400.392c-70.22-70.22-190.663-20.461-190.663 79.055v213.915z"],"width":2083,"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"tags":["long-arrow-alt-right"],"grid":0},"attrs":[{}],"properties":{"order":273,"id":24,"name":"long-arrow-alt-right","prevSize":64,"code":59670},"setIdx":0,"setId":0,"iconIdx":25},{"icon":{"paths":["M160.229 306.514v690.057c0 15.086 12.343 27.429 27.429 27.429h128c15.086 0 27.429-12.343 27.429-27.429v-690.057h105.371c48.914 0 73.371-59.2 38.857-93.714l-196.8-196.8c-21.486-21.486-56.229-21.486-77.486 0l-196.8 196.8c-34.514 34.514-10.057 93.714 38.857 93.714h105.143z"],"width":503,"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"tags":["long-arrow-alt-up"],"grid":0},"attrs":[{}],"properties":{"order":274,"id":25,"name":"long-arrow-alt-up","prevSize":64,"code":59671},"setIdx":0,"setId":0,"iconIdx":26},{"icon":{"paths":["M448 191.968l32-64 64-32-64-32-32-64-32 64-64 32 64 32 32 64zM160.064 319.936l53.376-106.592 106.592-53.376-106.592-53.376-53.376-106.592-53.376 106.592-106.592 53.376 106.592 53.376 53.376 106.592zM863.936 575.904l-53.376 106.592-106.592 53.376 106.592 53.376 53.376 106.592 53.376-106.592 106.592-53.376-106.592-53.376-53.376-106.592zM1005.12 188.352l-169.568-169.568c-12.608-12.608-28.992-18.784-45.376-18.784s-32.8 6.208-45.184 18.784l-726.048 726.048c-24.992 24.992-24.992 65.6 0 90.592l169.568 169.76c12.608 12.608 28.8 18.784 45.184 18.784s32.8-6.208 45.184-18.784l726.048-726.048c25.184-25.184 25.184-65.792 0.192-90.784zM718.976 406.912l-101.792-101.792 172.96-173.152 101.792 101.792-172.96 173.152z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"tags":["magic"],"grid":0},"attrs":[{}],"properties":{"order":275,"id":26,"name":"magic","prevSize":64,"code":59672},"setIdx":0,"setId":0,"iconIdx":27},{"icon":{"paths":["M408.576 10.080c-198.816 38.816-359.008 198.592-398.208 396.8-74.016 374.016 263.392 652.8 517.6 613.408 82.4-12.8 122.816-109.216 84.992-183.392-46.208-90.816 19.808-196.8 121.792-196.8h159.392c71.616 0 129.6-59.2 129.792-130.592-0.992-315.2-287.808-563.2-615.424-499.424zM191.968 640.096c-35.392 0-64-28.608-64-64s28.608-64 64-64 64 28.608 64 64-28.608 64-64 64zM256 384.064c-35.392 0-64-28.608-64-64s28.608-64 64-64 64 28.608 64 64-28.608 64-64 64zM512 256.064c-35.392 0-64-28.608-64-64s28.608-64 64-64 64 28.608 64 64-28.608 64-64 64zM768 384.064c-35.392 0-64-28.608-64-64s28.608-64 64-64 64 28.608 64 64-28.608 64-64 64z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"tags":["palette"],"grid":0},"attrs":[{}],"properties":{"order":276,"id":27,"name":"palette","prevSize":64,"code":59673},"setIdx":0,"setId":0,"iconIdx":28},{"icon":{"paths":["M142.222 568.889h-113.778c-15.644 0-28.444 12.8-28.444 28.444v113.778c0 15.644 12.8 28.444 28.444 28.444h113.778c15.644 0 28.444-12.8 28.444-28.444v-113.778c0-15.644-12.8-28.444-28.444-28.444zM142.222 0h-113.778c-15.644 0-28.444 12.8-28.444 28.444v113.778c0 15.644 12.8 28.444 28.444 28.444h113.778c15.644 0 28.444-12.8 28.444-28.444v-113.778c0-15.644-12.8-28.444-28.444-28.444zM142.222 284.444h-113.778c-15.644 0-28.444 12.8-28.444 28.444v113.778c0 15.644 12.8 28.444 28.444 28.444h113.778c15.644 0 28.444-12.8 28.444-28.444v-113.778c0-15.644-12.8-28.444-28.444-28.444zM995.556 597.333h-682.667c-15.644 0-28.444 12.8-28.444 28.444v56.889c0 15.644 12.8 28.444 28.444 28.444h682.667c15.644 0 28.444-12.8 28.444-28.444v-56.889c0-15.644-12.8-28.444-28.444-28.444zM995.556 28.444h-682.667c-15.644 0-28.444 12.8-28.444 28.444v56.889c0 15.644 12.8 28.444 28.444 28.444h682.667c15.644 0 28.444-12.8 28.444-28.444v-56.889c0-15.644-12.8-28.444-28.444-28.444zM995.556 312.889h-682.667c-15.644 0-28.444 12.8-28.444 28.444v56.889c0 15.644 12.8 28.444 28.444 28.444h682.667c15.644 0 28.444-12.8 28.444-28.444v-56.889c0-15.644-12.8-28.444-28.444-28.444zM142.222 853.333h-113.778c-15.644 0-28.444 12.8-28.444 28.444v113.778c0 15.644 12.8 28.444 28.444 28.444h113.778c15.644 0 28.444-12.8 28.444-28.444v-113.778c0-15.644-12.8-28.444-28.444-28.444zM995.556 881.778h-682.667c-15.644 0-28.444 12.8-28.444 28.444v56.889c0 15.644 12.8 28.444 28.444 28.444h682.667c15.644 0 28.444-12.8 28.444-28.444v-56.889c0-15.644-12.8-28.444-28.444-28.444z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["plugin-symbol"]},"attrs":[{}],"properties":{"order":277,"id":35,"name":"plugin-symbol","prevSize":64,"code":59683},"setIdx":0,"setId":0,"iconIdx":29},{"icon":{"paths":["M950.857 402.286h-329.143v-329.143c0-40.457-32.686-73.143-73.143-73.143h-73.143c-40.457 0-73.143 32.686-73.143 73.143v329.143h-329.143c-40.457 0-73.143 32.686-73.143 73.143v73.143c0 40.457 32.686 73.143 73.143 73.143h329.143v329.143c0 40.457 32.686 73.143 73.143 73.143h73.143c40.457 0 73.143-32.686 73.143-73.143v-329.143h329.143c40.457 0 73.143-32.686 73.143-73.143v-73.143c0-40.457-32.686-73.143-73.143-73.143z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"tags":["plus"],"grid":0},"attrs":[{}],"properties":{"order":278,"id":28,"name":"plus","prevSize":64,"code":59674},"setIdx":0,"setId":0,"iconIdx":30},{"icon":{"paths":["M512 0c-282.848 0-512 229.376-512 512 0 282.848 229.152 512 512 512s512-229.152 512-512c0-282.624-229.152-512-512-512zM512 924.896c-228.128 0-412.896-184.576-412.896-412.896 0-228.128 184.768-412.896 412.896-412.896s412.896 184.768 412.896 412.896c0 228.128-184.576 412.896-412.896 412.896zM733.312 398.048c0 138.528-149.472 140.608-149.472 191.808v12.992c0 13.632-11.136 24.768-24.768 24.768h-94.144c-13.632 0-24.768-11.136-24.768-24.768v-17.952c0-73.696 55.936-103.232 98.272-126.976 36.32-20.224 58.432-34.080 58.432-61.12 0-35.52-45.408-59.264-82.176-59.264-47.904 0-69.984 22.72-100.96 61.92-8.48 10.528-23.744 12.608-34.464 4.32l-57.408-43.552c-10.528-8.064-12.992-22.912-5.376-33.856 48.736-71.648 110.88-111.904 207.68-111.904 101.152 0.192 209.12 79.264 209.12 183.52zM598.72 743.232c0 47.904-38.816 86.72-86.72 86.72s-86.72-38.816-86.72-86.72 38.816-86.72 86.72-86.72 86.72 38.816 86.72 86.72z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"tags":["question-circle"],"grid":0},"attrs":[{}],"properties":{"order":279,"id":29,"name":"question-circle","prevSize":64,"code":59675},"setIdx":0,"setId":0,"iconIdx":31},{"icon":{"paths":["M608 96c0 53.020-42.98 96-96 96s-96-42.98-96-96 42.98-96 96-96 96 42.98 96 96zM512 832c-53.020 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96-42.98-96-96-96zM928 416c-53.020 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96-42.98-96-96-96zM192 512c0-53.020-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96 96-42.98 96-96zM217.844 710.156c-53.020 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96c0-53.018-42.982-96-96-96zM806.156 710.156c-53.020 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96c0-53.018-42.98-96-96-96zM217.844 121.844c-53.020 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96-42.982-96-96-96z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["spinner"]},"attrs":[{}],"properties":{"order":280,"id":37,"name":"spinner","prevSize":64,"code":59685},"setIdx":0,"setId":0,"iconIdx":32},{"icon":{"paths":["M477.507 35.593l-130.574 264.748-292.143 42.592c-52.39 7.599-73.386 72.186-35.393 109.179l211.359 205.96-49.99 290.943c-8.998 52.59 46.391 91.982 92.782 67.387l261.349-137.373 261.349 137.373c46.391 24.395 101.78-14.797 92.782-67.387l-49.99-290.943 211.359-205.96c37.993-36.993 16.997-101.58-35.393-109.179l-292.143-42.592-130.574-264.748c-23.395-47.191-91.182-47.791-114.778 0v0z"],"width":1070,"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"tags":["star"],"grid":0},"attrs":[{}],"properties":{"order":281,"id":30,"name":"star","prevSize":64,"code":59682},"setIdx":0,"setId":0,"iconIdx":33},{"icon":{"paths":["M279.232 70.432c-9.408-9.408-24.608-9.408-33.984 0 0 0 0 0 0 0l-127.392 126.592-45.408-44.192c-9.408-9.408-24.608-9.408-33.984 0 0 0 0 0 0 0l-31.392 31.392c-9.408 9.408-9.408 24.608 0 33.984 0 0 0 0 0 0l95.2 94.784c9.792 9.408 25.408 9.408 35.2 0l175.584-175.584c9.408-9.408 9.408-24.608 0.192-33.984l-33.984-32.992zM279.232 388.8c-9.408-9.408-24.608-9.408-33.984 0 0 0 0 0 0 0l-127.392 127.392-45.408-44.192c-9.408-9.408-24.608-9.408-33.984 0 0 0 0 0 0 0l-31.392 31.392c-9.408 9.408-9.408 24.608 0 33.984 0 0 0 0 0 0l95.008 95.008c9.792 9.408 25.408 9.408 35.2 0l175.776-175.808c9.408-9.408 9.408-24.384 0.192-33.792l-33.984-33.984zM992 767.392h-575.968c-17.6 0-32 14.4-32 32v64c0 17.6 14.4 32 32 32h575.968c17.6 0 32-14.4 32-32v-64c0-17.6-14.4-32-32-32zM992 127.424h-575.968c-17.6 0-32 14.4-32 32v64c0 17.6 14.4 32 32 32h575.968c17.6 0 32-14.4 32-32v-64c0-17.6-14.4-32-32-32zM992 447.392h-575.968c-17.6 0-32 14.4-32 32v64c0 17.6 14.4 32 32 32h575.968c17.6 0 32-14.4 32-32v-64c0-17.6-14.4-32-32-32zM279.232 709.984c-9.408-9.408-24.608-9.408-33.984 0 0 0 0 0 0 0l-127.392 127.392-45.408-44.192c-9.408-9.408-24.608-9.408-33.984 0 0 0 0 0 0 0l-31.392 31.392c-9.408 9.408-9.408 24.608 0 33.984 0 0 0 0 0 0l95.008 95.008c9.792 9.408 25.408 9.408 35.2 0l175.776-175.808c9.408-9.408 9.408-24.384 0.192-33.792l-33.984-33.984z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"tags":["tasks"],"grid":0},"attrs":[{}],"properties":{"order":282,"id":32,"name":"tasks","prevSize":64,"code":59677},"setIdx":0,"setId":0,"iconIdx":34},{"icon":{"paths":["M278.4 70.4c-9.6-9.6-22.4-9.6-32 0v0l-128 128-44.8-44.8c-9.6-9.6-25.6-9.6-35.2 0v0l-32 32c-9.6 9.6-9.6 25.6 0 35.2v0l96 96c9.6 9.6 25.6 9.6 35.2 0l176-176c9.6-9.6 9.6-25.6 0-35.2l-35.2-35.2zM992 768h-576c-19.2 0-32 16-32 32v64c0 16 12.8 32 32 32h576c16 0 32-16 32-32v-64c0-19.2-16-32-32-32zM992 128h-576c-19.2 0-32 16-32 32v64c0 19.2 12.8 32 32 32h576c16 0 32-12.8 32-32v-64c0-19.2-16-32-32-32zM992 448h-576c-19.2 0-32 12.8-32 32v64c0 16 12.8 32 32 32h576c16 0 32-16 32-32v-64c0-19.2-16-32-32-32z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"tags":["tasks-alt"],"grid":0},"attrs":[{}],"properties":{"order":283,"id":31,"name":"tasks-alt","prevSize":64,"code":59676},"setIdx":0,"setId":0,"iconIdx":35},{"icon":{"paths":["M706.036 512l291.2-291.2c35.782-35.782 35.782-93.673 0-129.455l-64.582-64.582c-35.782-35.782-93.673-35.782-129.455 0l-291.2 291.2-291.2-291.2c-35.491-35.782-93.673-35.782-129.164 0l-64.873 64.582c-35.782 35.782-35.782 93.673 0 129.455l291.2 291.2-291.2 291.2c-35.782 35.782-35.782 93.673 0 129.455l64.582 64.582c35.782 35.782 93.673 35.782 129.455 0l291.2-291.2 291.2 291.2c35.782 35.782 93.673 35.782 129.455 0l64.582-64.582c35.782-35.782 35.782-93.673 0-129.455l-291.2-291.2z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"tags":["times"],"grid":0},"attrs":[{}],"properties":{"order":284,"id":33,"name":"times","prevSize":64,"code":59678},"setIdx":0,"setId":0,"iconIdx":36},{"icon":{"paths":["M599.999 832h48c13.255 0 24-10.745 24-24v0-432c0-13.255-10.745-24-24-24v0h-48c-13.255 0-24 10.745-24 24v0 432c0 13.255 10.745 24 24 24v0zM927.999 160h-164.82l-68-113.4c-17.083-28.11-47.539-46.6-82.314-46.6-0.016 0-0.032 0-0.048 0h-201.637c-0.002 0-0.004 0-0.006 0-34.775 0-65.231 18.49-82.074 46.175l-0.24 0.425-68.040 113.4h-164.82c-17.673 0-32 14.327-32 32v0 32c0 17.673 14.327 32 32 32v0h32v672c0 53.019 42.981 96 96 96v0h576c53.019 0 96-42.981 96-96v0-672h32c17.673 0 32-14.327 32-32v0-32c0-17.673-14.327-32-32-32v0zM407.679 101.82c2.136-3.511 5.941-5.82 10.286-5.82 0.012 0 0.024 0 0.036 0h187.998c0.004 0 0.009 0 0.014 0 4.345 0 8.15 2.309 10.256 5.767l0.030 0.053 34.92 58.18h-278.44zM799.999 928h-576v-672h576zM375.999 832h48c13.255 0 24-10.745 24-24v0-432c0-13.255-10.745-24-24-24v0h-48c-13.255 0-24 10.745-24 24v0 432c0 13.255 10.745 24 24 24v0z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"grid":0,"tags":["trash-alt"]},"attrs":[{}],"properties":{"order":285,"id":36,"name":"trash-alt","prevSize":64,"code":59684},"setIdx":0,"setId":0,"iconIdx":37},{"icon":{"paths":["M592 767.936h-160c-26.592 0-48-21.408-48-48v-336h-175.392c-35.584 0-53.408-43.008-28.192-68.192l304.192-304.384c15.008-15.008 39.584-15.008 54.592 0l304.384 304.384c25.216 25.184 7.392 68.192-28.192 68.192h-175.392v336c0 26.592-21.408 48-48 48zM1024 751.936v224c0 26.592-21.408 48-48 48h-928c-26.592 0-48-21.408-48-48v-224c0-26.592 21.408-48 48-48h272v16c0 61.792 50.208 112 112 112h160c61.792 0 112-50.208 112-112v-16h272c26.592 0 48 21.408 48 48zM776 927.936c0-22.016-18.016-40-40-40s-40 18.016-40 40 18.016 40 40 40 40-18.016 40-40zM904 927.936c0-22.016-18.016-40-40-40s-40 18.016-40 40 18.016 40 40 40 40-18.016 40-40z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"tags":["upload"],"grid":0},"attrs":[{}],"properties":{"order":286,"id":34,"name":"upload","prevSize":64,"code":59679},"setIdx":0,"setId":0,"iconIdx":38}],"height":1024,"metadata":{"name":"icomoon"},"preferences":{"showGlyphs":true,"showQuickUse":true,"showQuickUse2":true,"showSVGs":true,"fontPref":{"prefix":"icon-","metadata":{"fontFamily":"icomoon"},"metrics":{"emSize":1024,"baseline":6.25,"whitespace":50},"embed":false},"imagePref":{"prefix":"icon-","png":true,"useClassSelector":true,"color":0,"bgColor":16777215,"classSelector":".icon","name":"icomoon"},"historySize":50,"showCodes":true,"gridSize":16}}
assets/js/new-admin.js ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ !function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/",n(n.s=21)}([function(e,t,n){"use strict";e.exports=n(22)},function(e,t,n){"use strict";var r=n(9),o=Object.prototype.toString;function a(e){return"[object Array]"===o.call(e)}function i(e){return void 0===e}function l(e){return null!==e&&"object"==typeof e}function u(e){if("[object Object]"!==o.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function s(e){return"[object Function]"===o.call(e)}function c(e,t){if(null!=e)if("object"!=typeof e&&(e=[e]),a(e))for(var n=0,r=e.length;n<r;n++)t.call(null,e[n],n,e);else for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.call(null,e[o],o,e)}e.exports={isArray:a,isArrayBuffer:function(e){return"[object ArrayBuffer]"===o.call(e)},isBuffer:function(e){return null!==e&&!i(e)&&null!==e.constructor&&!i(e.constructor)&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)},isFormData:function(e){return"undefined"!=typeof FormData&&e instanceof FormData},isArrayBufferView:function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&e.buffer instanceof ArrayBuffer},isString:function(e){return"string"==typeof e},isNumber:function(e){return"number"==typeof e},isObject:l,isPlainObject:u,isUndefined:i,isDate:function(e){return"[object Date]"===o.call(e)},isFile:function(e){return"[object File]"===o.call(e)},isBlob:function(e){return"[object Blob]"===o.call(e)},isFunction:s,isStream:function(e){return l(e)&&s(e.pipe)},isURLSearchParams:function(e){return"undefined"!=typeof URLSearchParams&&e instanceof URLSearchParams},isStandardBrowserEnv:function(){return("undefined"==typeof navigator||"ReactNative"!==navigator.product&&"NativeScript"!==navigator.product&&"NS"!==navigator.product)&&("undefined"!=typeof window&&"undefined"!=typeof document)},forEach:c,merge:function e(){var t={};function n(n,r){u(t[r])&&u(n)?t[r]=e(t[r],n):u(n)?t[r]=e({},n):a(n)?t[r]=n.slice():t[r]=n}for(var r=0,o=arguments.length;r<o;r++)c(arguments[r],n);return t},extend:function(e,t,n){return c(t,(function(t,o){e[o]=n&&"function"==typeof t?r(t,n):t})),e},trim:function(e){return e.replace(/^\s*/,"").replace(/\s*$/,"")},stripBOM:function(e){return 65279===e.charCodeAt(0)&&(e=e.slice(1)),e}}},function(e,t,n){"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE){0;try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){}}}(),e.exports=n(23)},function(e,t,n){"use strict";var r=n(5),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function u(e){return r.isMemo(e)?i:l[e.$$typeof]||o}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var s=Object.defineProperty,c=Object.getOwnPropertyNames,f=Object.getOwnPropertySymbols,d=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var o=p(n);o&&o!==m&&e(t,o,r)}var i=c(n);f&&(i=i.concat(f(n)));for(var l=u(t),h=u(n),v=0;v<i.length;++v){var g=i[v];if(!(a[g]||r&&r[g]||h&&h[g]||l&&l[g])){var b=d(n,g);try{s(t,g,b)}catch(e){}}}}return t}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),a=n(0),i=u(a),l=u(n(19));function u(e){return e&&e.__esModule?e:{default:e}}var s={position:"absolute",top:0,left:0,visibility:"hidden",height:0,overflow:"scroll",whiteSpace:"pre"},c=["extraWidth","injectStyles","inputClassName","inputRef","inputStyle","minWidth","onAutosize","placeholderIsMinWidth"],f=function(e,t){t.style.fontSize=e.fontSize,t.style.fontFamily=e.fontFamily,t.style.fontWeight=e.fontWeight,t.style.fontStyle=e.fontStyle,t.style.letterSpacing=e.letterSpacing,t.style.textTransform=e.textTransform},d=!("undefined"==typeof window||!window.navigator)&&/MSIE |Trident\/|Edge\//.test(window.navigator.userAgent),p=function(){return d?"_"+Math.random().toString(36).substr(2,12):void 0},m=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var n=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.inputRef=function(e){n.input=e,"function"==typeof n.props.inputRef&&n.props.inputRef(e)},n.placeHolderSizerRef=function(e){n.placeHolderSizer=e},n.sizerRef=function(e){n.sizer=e},n.state={inputWidth:e.minWidth,inputId:e.id||p(),prevId:e.id},n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),o(t,null,[{key:"getDerivedStateFromProps",value:function(e,t){var n=e.id;return n!==t.prevId?{inputId:n||p(),prevId:n}:null}}]),o(t,[{key:"componentDidMount",value:function(){this.mounted=!0,this.copyInputStyles(),this.updateInputWidth()}},{key:"componentDidUpdate",value:function(e,t){t.inputWidth!==this.state.inputWidth&&"function"==typeof this.props.onAutosize&&this.props.onAutosize(this.state.inputWidth),this.updateInputWidth()}},{key:"componentWillUnmount",value:function(){this.mounted=!1}},{key:"copyInputStyles",value:function(){if(this.mounted&&window.getComputedStyle){var e=this.input&&window.getComputedStyle(this.input);e&&(f(e,this.sizer),this.placeHolderSizer&&f(e,this.placeHolderSizer))}}},{key:"updateInputWidth",value:function(){if(this.mounted&&this.sizer&&void 0!==this.sizer.scrollWidth){var e=void 0;e=this.props.placeholder&&(!this.props.value||this.props.value&&this.props.placeholderIsMinWidth)?Math.max(this.sizer.scrollWidth,this.placeHolderSizer.scrollWidth)+2:this.sizer.scrollWidth+2,(e+="number"===this.props.type&&void 0===this.props.extraWidth?16:parseInt(this.props.extraWidth)||0)<this.props.minWidth&&(e=this.props.minWidth),e!==this.state.inputWidth&&this.setState({inputWidth:e})}}},{key:"getInput",value:function(){return this.input}},{key:"focus",value:function(){this.input.focus()}},{key:"blur",value:function(){this.input.blur()}},{key:"select",value:function(){this.input.select()}},{key:"renderStyles",value:function(){var e=this.props.injectStyles;return d&&e?i.default.createElement("style",{dangerouslySetInnerHTML:{__html:"input#"+this.state.inputId+"::-ms-clear {display: none;}"}}):null}},{key:"render",value:function(){var e=[this.props.defaultValue,this.props.value,""].reduce((function(e,t){return null!=e?e:t})),t=r({},this.props.style);t.display||(t.display="inline-block");var n=r({boxSizing:"content-box",width:this.state.inputWidth+"px"},this.props.inputStyle),o=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(this.props,[]);return function(e){c.forEach((function(t){return delete e[t]}))}(o),o.className=this.props.inputClassName,o.id=this.state.inputId,o.style=n,i.default.createElement("div",{className:this.props.className,style:t},this.renderStyles(),i.default.createElement("input",r({},o,{ref:this.inputRef})),i.default.createElement("div",{ref:this.sizerRef,style:s},e),this.props.placeholder?i.default.createElement("div",{ref:this.placeHolderSizerRef,style:s},this.props.placeholder):null)}}]),t}(a.Component);m.propTypes={className:l.default.string,defaultValue:l.default.any,extraWidth:l.default.oneOfType([l.default.number,l.default.string]),id:l.default.string,injectStyles:l.default.bool,inputClassName:l.default.string,inputRef:l.default.func,inputStyle:l.default.object,minWidth:l.default.oneOfType([l.default.number,l.default.string]),onAutosize:l.default.func,onChange:l.default.func,placeholder:l.default.string,placeholderIsMinWidth:l.default.bool,style:l.default.object,value:l.default.any},m.defaultProps={minWidth:1,injectStyles:!0},t.default=m},function(e,t,n){"use strict";e.exports=n(56)},function(e,t,n){e.exports=n(26)},function(e,t,n){"use strict";(function(e,r){var o,a=n(20);o="undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==e?e:r;var i=Object(a.a)(o);t.a=i}).call(this,n(57),n(58)(e))},function(e,t,n){"use strict";
2
+ /*
3
+ object-assign
4
+ (c) Sindre Sorhus
5
+ @license MIT
6
+ */var r=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;function i(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,l,u=i(e),s=1;s<arguments.length;s++){for(var c in n=Object(arguments[s]))o.call(n,c)&&(u[c]=n[c]);if(r){l=r(n);for(var f=0;f<l.length;f++)a.call(n,l[f])&&(u[l[f]]=n[l[f]])}}return u}},function(e,t,n){"use strict";e.exports=function(e,t){return function(){for(var n=new Array(arguments.length),r=0;r<n.length;r++)n[r]=arguments[r];return e.apply(t,n)}}},function(e,t,n){"use strict";var r=n(1);function o(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}e.exports=function(e,t,n){if(!t)return e;var a;if(n)a=n(t);else if(r.isURLSearchParams(t))a=t.toString();else{var i=[];r.forEach(t,(function(e,t){null!=e&&(r.isArray(e)?t+="[]":e=[e],r.forEach(e,(function(e){r.isDate(e)?e=e.toISOString():r.isObject(e)&&(e=JSON.stringify(e)),i.push(o(t)+"="+o(e))})))})),a=i.join("&")}if(a){var l=e.indexOf("#");-1!==l&&(e=e.slice(0,l)),e+=(-1===e.indexOf("?")?"?":"&")+a}return e}},function(e,t,n){"use strict";e.exports=function(e){return!(!e||!e.__CANCEL__)}},function(e,t,n){"use strict";(function(t){var r=n(1),o=n(32),a={"Content-Type":"application/x-www-form-urlencoded"};function i(e,t){!r.isUndefined(e)&&r.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var l,u={adapter:(("undefined"!=typeof XMLHttpRequest||void 0!==t&&"[object process]"===Object.prototype.toString.call(t))&&(l=n(13)),l),transformRequest:[function(e,t){return o(t,"Accept"),o(t,"Content-Type"),r.isFormData(e)||r.isArrayBuffer(e)||r.isBuffer(e)||r.isStream(e)||r.isFile(e)||r.isBlob(e)?e:r.isArrayBufferView(e)?e.buffer:r.isURLSearchParams(e)?(i(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):r.isObject(e)?(i(t,"application/json;charset=utf-8"),JSON.stringify(e)):e}],transformResponse:[function(e){if("string"==typeof e)try{e=JSON.parse(e)}catch(e){}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(e){return e>=200&&e<300}};u.headers={common:{Accept:"application/json, text/plain, */*"}},r.forEach(["delete","get","head"],(function(e){u.headers[e]={}})),r.forEach(["post","put","patch"],(function(e){u.headers[e]=r.merge(a)})),e.exports=u}).call(this,n(31))},function(e,t,n){"use strict";var r=n(1),o=n(33),a=n(35),i=n(10),l=n(36),u=n(39),s=n(40),c=n(14);e.exports=function(e){return new Promise((function(t,n){var f=e.data,d=e.headers;r.isFormData(f)&&delete d["Content-Type"];var p=new XMLHttpRequest;if(e.auth){var m=e.auth.username||"",h=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";d.Authorization="Basic "+btoa(m+":"+h)}var v=l(e.baseURL,e.url);if(p.open(e.method.toUpperCase(),i(v,e.params,e.paramsSerializer),!0),p.timeout=e.timeout,p.onreadystatechange=function(){if(p&&4===p.readyState&&(0!==p.status||p.responseURL&&0===p.responseURL.indexOf("file:"))){var r="getAllResponseHeaders"in p?u(p.getAllResponseHeaders()):null,a={data:e.responseType&&"text"!==e.responseType?p.response:p.responseText,status:p.status,statusText:p.statusText,headers:r,config:e,request:p};o(t,n,a),p=null}},p.onabort=function(){p&&(n(c("Request aborted",e,"ECONNABORTED",p)),p=null)},p.onerror=function(){n(c("Network Error",e,null,p)),p=null},p.ontimeout=function(){var t="timeout of "+e.timeout+"ms exceeded";e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(c(t,e,"ECONNABORTED",p)),p=null},r.isStandardBrowserEnv()){var g=(e.withCredentials||s(v))&&e.xsrfCookieName?a.read(e.xsrfCookieName):void 0;g&&(d[e.xsrfHeaderName]=g)}if("setRequestHeader"in p&&r.forEach(d,(function(e,t){void 0===f&&"content-type"===t.toLowerCase()?delete d[t]:p.setRequestHeader(t,e)})),r.isUndefined(e.withCredentials)||(p.withCredentials=!!e.withCredentials),e.responseType)try{p.responseType=e.responseType}catch(t){if("json"!==e.responseType)throw t}"function"==typeof e.onDownloadProgress&&p.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&p.upload&&p.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then((function(e){p&&(p.abort(),n(e),p=null)})),f||(f=null),p.send(f)}))}},function(e,t,n){"use strict";var r=n(34);e.exports=function(e,t,n,o,a){var i=new Error(e);return r(i,t,n,o,a)}},function(e,t,n){"use strict";var r=n(1);e.exports=function(e,t){t=t||{};var n={},o=["url","method","data"],a=["headers","auth","proxy","params"],i=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],l=["validateStatus"];function u(e,t){return r.isPlainObject(e)&&r.isPlainObject(t)?r.merge(e,t):r.isPlainObject(t)?r.merge({},t):r.isArray(t)?t.slice():t}function s(o){r.isUndefined(t[o])?r.isUndefined(e[o])||(n[o]=u(void 0,e[o])):n[o]=u(e[o],t[o])}r.forEach(o,(function(e){r.isUndefined(t[e])||(n[e]=u(void 0,t[e]))})),r.forEach(a,s),r.forEach(i,(function(o){r.isUndefined(t[o])?r.isUndefined(e[o])||(n[o]=u(void 0,e[o])):n[o]=u(void 0,t[o])})),r.forEach(l,(function(r){r in t?n[r]=u(e[r],t[r]):r in e&&(n[r]=u(void 0,e[r]))}));var c=o.concat(a).concat(i).concat(l),f=Object.keys(e).concat(Object.keys(t)).filter((function(e){return-1===c.indexOf(e)}));return r.forEach(f,s),n}},function(e,t,n){"use strict";function r(e){this.message=e}r.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},r.prototype.__CANCEL__=!0,e.exports=r},function(e,t){function n(){return e.exports=n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},n.apply(this,arguments)}e.exports=n},function(e,t){e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}},function(e,t,n){e.exports=n(52)()},function(e,t,n){"use strict";function r(e){var t,n=e.Symbol;return"function"==typeof n?n.observable?t=n.observable:(t=n("observable"),n.observable=t):t="@@observable",t}n.d(t,"a",(function(){return r}))},function(e,t,n){n(59),e.exports=n(60)},function(e,t,n){"use strict";
7
+ /** @license React v17.0.1
8
+ * react.production.min.js
9
+ *
10
+ * Copyright (c) Facebook, Inc. and its affiliates.
11
+ *
12
+ * This source code is licensed under the MIT license found in the
13
+ * LICENSE file in the root directory of this source tree.
14
+ */var r=n(8),o=60103,a=60106;t.Fragment=60107,t.StrictMode=60108,t.Profiler=60114;var i=60109,l=60110,u=60112;t.Suspense=60113;var s=60115,c=60116;if("function"==typeof Symbol&&Symbol.for){var f=Symbol.for;o=f("react.element"),a=f("react.portal"),t.Fragment=f("react.fragment"),t.StrictMode=f("react.strict_mode"),t.Profiler=f("react.profiler"),i=f("react.provider"),l=f("react.context"),u=f("react.forward_ref"),t.Suspense=f("react.suspense"),s=f("react.memo"),c=f("react.lazy")}var d="function"==typeof Symbol&&Symbol.iterator;function p(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h={};function v(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}function g(){}function b(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(p(85));this.updater.enqueueSetState(this,e,t,"setState")},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},g.prototype=v.prototype;var y=b.prototype=new g;y.constructor=b,r(y,v.prototype),y.isPureReactComponent=!0;var _={current:null},w=Object.prototype.hasOwnProperty,E={key:!0,ref:!0,__self:!0,__source:!0};function S(e,t,n){var r,a={},i=null,l=null;if(null!=t)for(r in void 0!==t.ref&&(l=t.ref),void 0!==t.key&&(i=""+t.key),t)w.call(t,r)&&!E.hasOwnProperty(r)&&(a[r]=t[r]);var u=arguments.length-2;if(1===u)a.children=n;else if(1<u){for(var s=Array(u),c=0;c<u;c++)s[c]=arguments[c+2];a.children=s}if(e&&e.defaultProps)for(r in u=e.defaultProps)void 0===a[r]&&(a[r]=u[r]);return{$$typeof:o,type:e,key:i,ref:l,props:a,_owner:_.current}}function x(e){return"object"==typeof e&&null!==e&&e.$$typeof===o}var O=/\/+/g;function C(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function k(e,t,n,r,i){var l=typeof e;"undefined"!==l&&"boolean"!==l||(e=null);var u=!1;if(null===e)u=!0;else switch(l){case"string":case"number":u=!0;break;case"object":switch(e.$$typeof){case o:case a:u=!0}}if(u)return i=i(u=e),e=""===r?"."+C(u,0):r,Array.isArray(i)?(n="",null!=e&&(n=e.replace(O,"$&/")+"/"),k(i,t,n,"",(function(e){return e}))):null!=i&&(x(i)&&(i=function(e,t){return{$$typeof:o,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,n+(!i.key||u&&u.key===i.key?"":(""+i.key).replace(O,"$&/")+"/")+e)),t.push(i)),1;if(u=0,r=""===r?".":r+":",Array.isArray(e))for(var s=0;s<e.length;s++){var c=r+C(l=e[s],s);u+=k(l,t,n,c,i)}else if("function"==typeof(c=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=d&&e[d]||e["@@iterator"])?e:null}(e)))for(e=c.call(e),s=0;!(l=e.next()).done;)u+=k(l=l.value,t,n,c=r+C(l,s++),i);else if("object"===l)throw t=""+e,Error(p(31,"[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t));return u}function P(e,t,n){if(null==e)return e;var r=[],o=0;return k(e,r,"","",(function(e){return t.call(n,e,o++)})),r}function I(e){if(-1===e._status){var t=e._result;t=t(),e._status=0,e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}if(1===e._status)return e._result;throw e._result}var D={current:null};function R(){var e=D.current;if(null===e)throw Error(p(321));return e}var N={ReactCurrentDispatcher:D,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:_,IsSomeRendererActing:{current:!1},assign:r};t.Children={map:P,forEach:function(e,t,n){P(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return P(e,(function(){t++})),t},toArray:function(e){return P(e,(function(e){return e}))||[]},only:function(e){if(!x(e))throw Error(p(143));return e}},t.Component=v,t.PureComponent=b,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=N,t.cloneElement=function(e,t,n){if(null==e)throw Error(p(267,e));var a=r({},e.props),i=e.key,l=e.ref,u=e._owner;if(null!=t){if(void 0!==t.ref&&(l=t.ref,u=_.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var s=e.type.defaultProps;for(c in t)w.call(t,c)&&!E.hasOwnProperty(c)&&(a[c]=void 0===t[c]&&void 0!==s?s[c]:t[c])}var c=arguments.length-2;if(1===c)a.children=n;else if(1<c){s=Array(c);for(var f=0;f<c;f++)s[f]=arguments[f+2];a.children=s}return{$$typeof:o,type:e.type,key:i,ref:l,props:a,_owner:u}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:l,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:i,_context:e},e.Consumer=e},t.createElement=S,t.createFactory=function(e){var t=S.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:u,render:e}},t.isValidElement=x,t.lazy=function(e){return{$$typeof:c,_payload:{_status:-1,_result:e},_init:I}},t.memo=function(e,t){return{$$typeof:s,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return R().useCallback(e,t)},t.useContext=function(e,t){return R().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return R().useEffect(e,t)},t.useImperativeHandle=function(e,t,n){return R().useImperativeHandle(e,t,n)},t.useLayoutEffect=function(e,t){return R().useLayoutEffect(e,t)},t.useMemo=function(e,t){return R().useMemo(e,t)},t.useReducer=function(e,t,n){return R().useReducer(e,t,n)},t.useRef=function(e){return R().useRef(e)},t.useState=function(e){return R().useState(e)},t.version="17.0.1"},function(e,t,n){"use strict";
15
+ /** @license React v17.0.1
16
+ * react-dom.production.min.js
17
+ *
18
+ * Copyright (c) Facebook, Inc. and its affiliates.
19
+ *
20
+ * This source code is licensed under the MIT license found in the
21
+ * LICENSE file in the root directory of this source tree.
22
+ */var r=n(0),o=n(8),a=n(24);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}if(!r)throw Error(i(227));var l=new Set,u={};function s(e,t){c(e,t),c(e+"Capture",t)}function c(e,t){for(u[e]=t,e=0;e<t.length;e++)l.add(t[e])}var f=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),d=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,p=Object.prototype.hasOwnProperty,m={},h={};function v(e,t,n,r,o,a,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=a,this.removeEmptyString=i}var g={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){g[e]=new v(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];g[t]=new v(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){g[e]=new v(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){g[e]=new v(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){g[e]=new v(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){g[e]=new v(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){g[e]=new v(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){g[e]=new v(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){g[e]=new v(e,5,!1,e.toLowerCase(),null,!1,!1)}));var b=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function _(e,t,n,r){var o=g.hasOwnProperty(t)?g[t]:null;(null!==o?0===o.type:!r&&(2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1])))||(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,o,r)&&(n=null),r||null===o?function(e){return!!p.call(h,e)||!p.call(m,e)&&(d.test(e)?h[e]=!0:(m[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):o.mustUseProperty?e[o.propertyName]=null===n?3!==o.type&&"":n:(t=o.attributeName,r=o.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(o=o.type)||4===o&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(b,y);g[t]=new v(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(b,y);g[t]=new v(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(b,y);g[t]=new v(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){g[e]=new v(e,1,!1,e.toLowerCase(),null,!1,!1)})),g.xlinkHref=new v("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){g[e]=new v(e,1,!1,e.toLowerCase(),null,!0,!0)}));var w=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,E=60103,S=60106,x=60107,O=60108,C=60114,k=60109,P=60110,I=60112,D=60113,R=60120,N=60115,T=60116,L=60121,A=60128,j=60129,M=60130,F=60131;if("function"==typeof Symbol&&Symbol.for){var B=Symbol.for;E=B("react.element"),S=B("react.portal"),x=B("react.fragment"),O=B("react.strict_mode"),C=B("react.profiler"),k=B("react.provider"),P=B("react.context"),I=B("react.forward_ref"),D=B("react.suspense"),R=B("react.suspense_list"),N=B("react.memo"),T=B("react.lazy"),L=B("react.block"),B("react.scope"),A=B("react.opaque.id"),j=B("react.debug_trace_mode"),M=B("react.offscreen"),F=B("react.legacy_hidden")}var V,U="function"==typeof Symbol&&Symbol.iterator;function z(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=U&&e[U]||e["@@iterator"])?e:null}function H(e){if(void 0===V)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);V=t&&t[1]||""}return"\n"+V+e}var W=!1;function G(e,t){if(!e||W)return"";W=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(e){var r=e}Reflect.construct(e,[],t)}else{try{t.call()}catch(e){r=e}e.call(t.prototype)}else{try{throw Error()}catch(e){r=e}e()}}catch(e){if(e&&r&&"string"==typeof e.stack){for(var o=e.stack.split("\n"),a=r.stack.split("\n"),i=o.length-1,l=a.length-1;1<=i&&0<=l&&o[i]!==a[l];)l--;for(;1<=i&&0<=l;i--,l--)if(o[i]!==a[l]){if(1!==i||1!==l)do{if(i--,0>--l||o[i]!==a[l])return"\n"+o[i].replace(" at new "," at ")}while(1<=i&&0<=l);break}}}finally{W=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?H(e):""}function q(e){switch(e.tag){case 5:return H(e.type);case 16:return H("Lazy");case 13:return H("Suspense");case 19:return H("SuspenseList");case 0:case 2:case 15:return e=G(e.type,!1);case 11:return e=G(e.type.render,!1);case 22:return e=G(e.type._render,!1);case 1:return e=G(e.type,!0);default:return""}}function $(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case x:return"Fragment";case S:return"Portal";case C:return"Profiler";case O:return"StrictMode";case D:return"Suspense";case R:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case P:return(e.displayName||"Context")+".Consumer";case k:return(e._context.displayName||"Context")+".Provider";case I:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case N:return $(e.type);case L:return $(e._render);case T:t=e._payload,e=e._init;try{return $(e(t))}catch(e){}}return null}function Y(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function Q(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function K(e){e._valueTracker||(e._valueTracker=function(e){var t=Q(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var o=n.get,a=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(e){r=""+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function X(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Q(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function J(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function Z(e,t){var n=t.checked;return o({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function ee(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=Y(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function te(e,t){null!=(t=t.checked)&&_(e,"checked",t,!1)}function ne(e,t){te(e,t);var n=Y(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?oe(e,t.type,n):t.hasOwnProperty("defaultValue")&&oe(e,t.type,Y(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function re(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function oe(e,t,n){"number"===t&&J(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function ae(e,t){return e=o({children:void 0},t),(t=function(e){var t="";return r.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function ie(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o<n.length;o++)t["$"+n[o]]=!0;for(n=0;n<e.length;n++)o=t.hasOwnProperty("$"+e[n].value),e[n].selected!==o&&(e[n].selected=o),o&&r&&(e[n].defaultSelected=!0)}else{for(n=""+Y(n),t=null,o=0;o<e.length;o++){if(e[o].value===n)return e[o].selected=!0,void(r&&(e[o].defaultSelected=!0));null!==t||e[o].disabled||(t=e[o])}null!==t&&(t.selected=!0)}}function le(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(i(91));return o({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function ue(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(i(92));if(Array.isArray(n)){if(!(1>=n.length))throw Error(i(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:Y(n)}}function se(e,t){var n=Y(t.value),r=Y(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ce(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}var fe="http://www.w3.org/1999/xhtml",de="http://www.w3.org/2000/svg";function pe(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function me(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?pe(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var he,ve=function(e){return"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(t,n,r,o){MSApp.execUnsafeLocalFunction((function(){return e(t,n)}))}:e}((function(e,t){if(e.namespaceURI!==de||"innerHTML"in e)e.innerHTML=t;else{for((he=he||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=he.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}}));function ge(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var be={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ye=["Webkit","ms","Moz","O"];function _e(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||be.hasOwnProperty(e)&&be[e]?(""+t).trim():t+"px"}function we(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),o=_e(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}Object.keys(be).forEach((function(e){ye.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),be[t]=be[e]}))}));var Ee=o({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Se(e,t){if(t){if(Ee[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(i(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(i(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(i(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(i(62))}}function xe(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function Oe(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Ce=null,ke=null,Pe=null;function Ie(e){if(e=Jr(e)){if("function"!=typeof Ce)throw Error(i(280));var t=e.stateNode;t&&(t=eo(t),Ce(e.stateNode,e.type,t))}}function De(e){ke?Pe?Pe.push(e):Pe=[e]:ke=e}function Re(){if(ke){var e=ke,t=Pe;if(Pe=ke=null,Ie(e),t)for(e=0;e<t.length;e++)Ie(t[e])}}function Ne(e,t){return e(t)}function Te(e,t,n,r,o){return e(t,n,r,o)}function Le(){}var Ae=Ne,je=!1,Me=!1;function Fe(){null===ke&&null===Pe||(Le(),Re())}function Be(e,t){var n=e.stateNode;if(null===n)return null;var r=eo(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(i(231,t,typeof n));return n}var Ve=!1;if(f)try{var Ue={};Object.defineProperty(Ue,"passive",{get:function(){Ve=!0}}),window.addEventListener("test",Ue,Ue),window.removeEventListener("test",Ue,Ue)}catch(e){Ve=!1}function ze(e,t,n,r,o,a,i,l,u){var s=Array.prototype.slice.call(arguments,3);try{t.apply(n,s)}catch(e){this.onError(e)}}var He=!1,We=null,Ge=!1,qe=null,$e={onError:function(e){He=!0,We=e}};function Ye(e,t,n,r,o,a,i,l,u){He=!1,We=null,ze.apply($e,arguments)}function Qe(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(1026&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function Ke(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function Xe(e){if(Qe(e)!==e)throw Error(i(188))}function Je(e){if(!(e=function(e){var t=e.alternate;if(!t){if(null===(t=Qe(e)))throw Error(i(188));return t!==e?null:e}for(var n=e,r=t;;){var o=n.return;if(null===o)break;var a=o.alternate;if(null===a){if(null!==(r=o.return)){n=r;continue}break}if(o.child===a.child){for(a=o.child;a;){if(a===n)return Xe(o),e;if(a===r)return Xe(o),t;a=a.sibling}throw Error(i(188))}if(n.return!==r.return)n=o,r=a;else{for(var l=!1,u=o.child;u;){if(u===n){l=!0,n=o,r=a;break}if(u===r){l=!0,r=o,n=a;break}u=u.sibling}if(!l){for(u=a.child;u;){if(u===n){l=!0,n=a,r=o;break}if(u===r){l=!0,r=a,n=o;break}u=u.sibling}if(!l)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(3!==n.tag)throw Error(i(188));return n.stateNode.current===n?e:t}(e)))return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function Ze(e,t){for(var n=e.alternate;null!==t;){if(t===e||t===n)return!0;t=t.return}return!1}var et,tt,nt,rt,ot=!1,at=[],it=null,lt=null,ut=null,st=new Map,ct=new Map,ft=[],dt="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function pt(e,t,n,r,o){return{blockedOn:e,domEventName:t,eventSystemFlags:16|n,nativeEvent:o,targetContainers:[r]}}function mt(e,t){switch(e){case"focusin":case"focusout":it=null;break;case"dragenter":case"dragleave":lt=null;break;case"mouseover":case"mouseout":ut=null;break;case"pointerover":case"pointerout":st.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":ct.delete(t.pointerId)}}function ht(e,t,n,r,o,a){return null===e||e.nativeEvent!==a?(e=pt(t,n,r,o,a),null!==t&&(null!==(t=Jr(t))&&tt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==o&&-1===t.indexOf(o)&&t.push(o),e)}function vt(e){var t=Xr(e.target);if(null!==t){var n=Qe(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=Ke(n)))return e.blockedOn=t,void rt(e.lanePriority,(function(){a.unstable_runWithPriority(e.priority,(function(){nt(n)}))}))}else if(3===t&&n.stateNode.hydrate)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function gt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Jt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=Jr(n))&&tt(t),e.blockedOn=n,!1;t.shift()}return!0}function bt(e,t,n){gt(e)&&n.delete(t)}function yt(){for(ot=!1;0<at.length;){var e=at[0];if(null!==e.blockedOn){null!==(e=Jr(e.blockedOn))&&et(e);break}for(var t=e.targetContainers;0<t.length;){var n=Jt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n){e.blockedOn=n;break}t.shift()}null===e.blockedOn&&at.shift()}null!==it&&gt(it)&&(it=null),null!==lt&&gt(lt)&&(lt=null),null!==ut&&gt(ut)&&(ut=null),st.forEach(bt),ct.forEach(bt)}function _t(e,t){e.blockedOn===t&&(e.blockedOn=null,ot||(ot=!0,a.unstable_scheduleCallback(a.unstable_NormalPriority,yt)))}function wt(e){function t(t){return _t(t,e)}if(0<at.length){_t(at[0],e);for(var n=1;n<at.length;n++){var r=at[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==it&&_t(it,e),null!==lt&&_t(lt,e),null!==ut&&_t(ut,e),st.forEach(t),ct.forEach(t),n=0;n<ft.length;n++)(r=ft[n]).blockedOn===e&&(r.blockedOn=null);for(;0<ft.length&&null===(n=ft[0]).blockedOn;)vt(n),null===n.blockedOn&&ft.shift()}function Et(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var St={animationend:Et("Animation","AnimationEnd"),animationiteration:Et("Animation","AnimationIteration"),animationstart:Et("Animation","AnimationStart"),transitionend:Et("Transition","TransitionEnd")},xt={},Ot={};function Ct(e){if(xt[e])return xt[e];if(!St[e])return e;var t,n=St[e];for(t in n)if(n.hasOwnProperty(t)&&t in Ot)return xt[e]=n[t];return e}f&&(Ot=document.createElement("div").style,"AnimationEvent"in window||(delete St.animationend.animation,delete St.animationiteration.animation,delete St.animationstart.animation),"TransitionEvent"in window||delete St.transitionend.transition);var kt=Ct("animationend"),Pt=Ct("animationiteration"),It=Ct("animationstart"),Dt=Ct("transitionend"),Rt=new Map,Nt=new Map,Tt=["abort","abort",kt,"animationEnd",Pt,"animationIteration",It,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing","playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",Dt,"transitionEnd","waiting","waiting"];function Lt(e,t){for(var n=0;n<e.length;n+=2){var r=e[n],o=e[n+1];o="on"+(o[0].toUpperCase()+o.slice(1)),Nt.set(r,t),Rt.set(r,o),s(o,[r])}}(0,a.unstable_now)();var At=8;function jt(e){if(0!=(1&e))return At=15,1;if(0!=(2&e))return At=14,2;if(0!=(4&e))return At=13,4;var t=24&e;return 0!==t?(At=12,t):0!=(32&e)?(At=11,32):0!==(t=192&e)?(At=10,t):0!=(256&e)?(At=9,256):0!==(t=3584&e)?(At=8,t):0!=(4096&e)?(At=7,4096):0!==(t=4186112&e)?(At=6,t):0!==(t=62914560&e)?(At=5,t):67108864&e?(At=4,67108864):0!=(134217728&e)?(At=3,134217728):0!==(t=805306368&e)?(At=2,t):0!=(1073741824&e)?(At=1,1073741824):(At=8,e)}function Mt(e,t){var n=e.pendingLanes;if(0===n)return At=0;var r=0,o=0,a=e.expiredLanes,i=e.suspendedLanes,l=e.pingedLanes;if(0!==a)r=a,o=At=15;else if(0!==(a=134217727&n)){var u=a&~i;0!==u?(r=jt(u),o=At):0!==(l&=a)&&(r=jt(l),o=At)}else 0!==(a=n&~i)?(r=jt(a),o=At):0!==l&&(r=jt(l),o=At);if(0===r)return 0;if(r=n&((0>(r=31-Ht(r))?0:1<<r)<<1)-1,0!==t&&t!==r&&0==(t&i)){if(jt(t),o<=At)return t;At=o}if(0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)o=1<<(n=31-Ht(t)),r|=e[n],t&=~o;return r}function Ft(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function Bt(e,t){switch(e){case 15:return 1;case 14:return 2;case 12:return 0===(e=Vt(24&~t))?Bt(10,t):e;case 10:return 0===(e=Vt(192&~t))?Bt(8,t):e;case 8:return 0===(e=Vt(3584&~t))&&(0===(e=Vt(4186112&~t))&&(e=512)),e;case 2:return 0===(t=Vt(805306368&~t))&&(t=268435456),t}throw Error(i(358,e))}function Vt(e){return e&-e}function Ut(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function zt(e,t,n){e.pendingLanes|=t;var r=t-1;e.suspendedLanes&=r,e.pingedLanes&=r,(e=e.eventTimes)[t=31-Ht(t)]=n}var Ht=Math.clz32?Math.clz32:function(e){return 0===e?32:31-(Wt(e)/Gt|0)|0},Wt=Math.log,Gt=Math.LN2;var qt=a.unstable_UserBlockingPriority,$t=a.unstable_runWithPriority,Yt=!0;function Qt(e,t,n,r){je||Le();var o=Xt,a=je;je=!0;try{Te(o,e,t,n,r)}finally{(je=a)||Fe()}}function Kt(e,t,n,r){$t(qt,Xt.bind(null,e,t,n,r))}function Xt(e,t,n,r){var o;if(Yt)if((o=0==(4&t))&&0<at.length&&-1<dt.indexOf(e))e=pt(null,e,t,n,r),at.push(e);else{var a=Jt(e,t,n,r);if(null===a)o&&mt(e,r);else{if(o){if(-1<dt.indexOf(e))return e=pt(a,e,t,n,r),void at.push(e);if(function(e,t,n,r,o){switch(t){case"focusin":return it=ht(it,e,t,n,r,o),!0;case"dragenter":return lt=ht(lt,e,t,n,r,o),!0;case"mouseover":return ut=ht(ut,e,t,n,r,o),!0;case"pointerover":var a=o.pointerId;return st.set(a,ht(st.get(a)||null,e,t,n,r,o)),!0;case"gotpointercapture":return a=o.pointerId,ct.set(a,ht(ct.get(a)||null,e,t,n,r,o)),!0}return!1}(a,e,t,n,r))return;mt(e,r)}Dr(e,t,r,null,n)}}}function Jt(e,t,n,r){var o=Oe(r);if(null!==(o=Xr(o))){var a=Qe(o);if(null===a)o=null;else{var i=a.tag;if(13===i){if(null!==(o=Ke(a)))return o;o=null}else if(3===i){if(a.stateNode.hydrate)return 3===a.tag?a.stateNode.containerInfo:null;o=null}else a!==o&&(o=null)}}return Dr(e,t,r,o,n),null}var Zt=null,en=null,tn=null;function nn(){if(tn)return tn;var e,t,n=en,r=n.length,o="value"in Zt?Zt.value:Zt.textContent,a=o.length;for(e=0;e<r&&n[e]===o[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===o[a-t];t++);return tn=o.slice(e,1<t?1-t:void 0)}function rn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function on(){return!0}function an(){return!1}function ln(e){function t(t,n,r,o,a){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=o,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(o):o[i]);return this.isDefaultPrevented=(null!=o.defaultPrevented?o.defaultPrevented:!1===o.returnValue)?on:an,this.isPropagationStopped=an,this}return o(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=on)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=on)},persist:function(){},isPersistent:on}),t}var un,sn,cn,fn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},dn=ln(fn),pn=o({},fn,{view:0,detail:0}),mn=ln(pn),hn=o({},pn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Cn,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==cn&&(cn&&"mousemove"===e.type?(un=e.screenX-cn.screenX,sn=e.screenY-cn.screenY):sn=un=0,cn=e),un)},movementY:function(e){return"movementY"in e?e.movementY:sn}}),vn=ln(hn),gn=ln(o({},hn,{dataTransfer:0})),bn=ln(o({},pn,{relatedTarget:0})),yn=ln(o({},fn,{animationName:0,elapsedTime:0,pseudoElement:0})),_n=ln(o({},fn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}})),wn=ln(o({},fn,{data:0})),En={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Sn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},xn={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function On(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=xn[e])&&!!t[e]}function Cn(){return On}var kn=ln(o({},pn,{key:function(e){if(e.key){var t=En[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=rn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?Sn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Cn,charCode:function(e){return"keypress"===e.type?rn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?rn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}})),Pn=ln(o({},hn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),In=ln(o({},pn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Cn})),Dn=ln(o({},fn,{propertyName:0,elapsedTime:0,pseudoElement:0})),Rn=ln(o({},hn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0})),Nn=[9,13,27,32],Tn=f&&"CompositionEvent"in window,Ln=null;f&&"documentMode"in document&&(Ln=document.documentMode);var An=f&&"TextEvent"in window&&!Ln,jn=f&&(!Tn||Ln&&8<Ln&&11>=Ln),Mn=String.fromCharCode(32),Fn=!1;function Bn(e,t){switch(e){case"keyup":return-1!==Nn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Vn(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Un=!1;var zn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Hn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!zn[e.type]:"textarea"===t}function Wn(e,t,n,r){De(r),0<(t=Nr(t,"onChange")).length&&(n=new dn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Gn=null,qn=null;function $n(e){xr(e,0)}function Yn(e){if(X(Zr(e)))return e}function Qn(e,t){if("change"===e)return t}var Kn=!1;if(f){var Xn;if(f){var Jn="oninput"in document;if(!Jn){var Zn=document.createElement("div");Zn.setAttribute("oninput","return;"),Jn="function"==typeof Zn.oninput}Xn=Jn}else Xn=!1;Kn=Xn&&(!document.documentMode||9<document.documentMode)}function er(){Gn&&(Gn.detachEvent("onpropertychange",tr),qn=Gn=null)}function tr(e){if("value"===e.propertyName&&Yn(qn)){var t=[];if(Wn(t,qn,e,Oe(e)),e=$n,je)e(t);else{je=!0;try{Ne(e,t)}finally{je=!1,Fe()}}}}function nr(e,t,n){"focusin"===e?(er(),qn=n,(Gn=t).attachEvent("onpropertychange",tr)):"focusout"===e&&er()}function rr(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Yn(qn)}function or(e,t){if("click"===e)return Yn(t)}function ar(e,t){if("input"===e||"change"===e)return Yn(t)}var ir="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},lr=Object.prototype.hasOwnProperty;function ur(e,t){if(ir(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++)if(!lr.call(t,n[r])||!ir(e[n[r]],t[n[r]]))return!1;return!0}function sr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function cr(e,t){var n,r=sr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=sr(r)}}function fr(){for(var e=window,t=J();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(e){n=!1}if(!n)break;t=J((e=t.contentWindow).document)}return t}function dr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var pr=f&&"documentMode"in document&&11>=document.documentMode,mr=null,hr=null,vr=null,gr=!1;function br(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;gr||null==mr||mr!==J(r)||("selectionStart"in(r=mr)&&dr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},vr&&ur(vr,r)||(vr=r,0<(r=Nr(hr,"onSelect")).length&&(t=new dn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=mr)))}Lt("cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "),0),Lt("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "),1),Lt(Tt,2);for(var yr="change selectionchange textInput compositionstart compositionend compositionupdate".split(" "),_r=0;_r<yr.length;_r++)Nt.set(yr[_r],0);c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),s("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),s("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),s("onBeforeInput",["compositionend","keypress","textInput","paste"]),s("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),s("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),s("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var wr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Er=new Set("cancel close invalid load scroll toggle".split(" ").concat(wr));function Sr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,o,a,l,u,s){if(Ye.apply(this,arguments),He){if(!He)throw Error(i(198));var c=We;He=!1,We=null,Ge||(Ge=!0,qe=c)}}(r,t,void 0,e),e.currentTarget=null}function xr(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var r=e[n],o=r.event;r=r.listeners;e:{var a=void 0;if(t)for(var i=r.length-1;0<=i;i--){var l=r[i],u=l.instance,s=l.currentTarget;if(l=l.listener,u!==a&&o.isPropagationStopped())break e;Sr(o,l,s),a=u}else for(i=0;i<r.length;i++){if(u=(l=r[i]).instance,s=l.currentTarget,l=l.listener,u!==a&&o.isPropagationStopped())break e;Sr(o,l,s),a=u}}}if(Ge)throw e=qe,Ge=!1,qe=null,e}function Or(e,t){var n=to(t),r=e+"__bubble";n.has(r)||(Ir(t,e,2,!1),n.add(r))}var Cr="_reactListening"+Math.random().toString(36).slice(2);function kr(e){e[Cr]||(e[Cr]=!0,l.forEach((function(t){Er.has(t)||Pr(t,!1,e,null),Pr(t,!0,e,null)})))}function Pr(e,t,n,r){var o=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,a=n;if("selectionchange"===e&&9!==n.nodeType&&(a=n.ownerDocument),null!==r&&!t&&Er.has(e)){if("scroll"!==e)return;o|=2,a=r}var i=to(a),l=e+"__"+(t?"capture":"bubble");i.has(l)||(t&&(o|=4),Ir(a,e,o,t),i.add(l))}function Ir(e,t,n,r){var o=Nt.get(t);switch(void 0===o?2:o){case 0:o=Qt;break;case 1:o=Kt;break;default:o=Xt}n=o.bind(null,t,n,e),o=void 0,!Ve||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(o=!0),r?void 0!==o?e.addEventListener(t,n,{capture:!0,passive:o}):e.addEventListener(t,n,!0):void 0!==o?e.addEventListener(t,n,{passive:o}):e.addEventListener(t,n,!1)}function Dr(e,t,n,r,o){var a=r;if(0==(1&t)&&0==(2&t)&&null!==r)e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var l=r.stateNode.containerInfo;if(l===o||8===l.nodeType&&l.parentNode===o)break;if(4===i)for(i=r.return;null!==i;){var u=i.tag;if((3===u||4===u)&&((u=i.stateNode.containerInfo)===o||8===u.nodeType&&u.parentNode===o))return;i=i.return}for(;null!==l;){if(null===(i=Xr(l)))return;if(5===(u=i.tag)||6===u){r=a=i;continue e}l=l.parentNode}}r=r.return}!function(e,t,n){if(Me)return e(t,n);Me=!0;try{Ae(e,t,n)}finally{Me=!1,Fe()}}((function(){var r=a,o=Oe(n),i=[];e:{var l=Rt.get(e);if(void 0!==l){var u=dn,s=e;switch(e){case"keypress":if(0===rn(n))break e;case"keydown":case"keyup":u=kn;break;case"focusin":s="focus",u=bn;break;case"focusout":s="blur",u=bn;break;case"beforeblur":case"afterblur":u=bn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":u=vn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":u=gn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":u=In;break;case kt:case Pt:case It:u=yn;break;case Dt:u=Dn;break;case"scroll":u=mn;break;case"wheel":u=Rn;break;case"copy":case"cut":case"paste":u=_n;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":u=Pn}var c=0!=(4&t),f=!c&&"scroll"===e,d=c?null!==l?l+"Capture":null:l;c=[];for(var p,m=r;null!==m;){var h=(p=m).stateNode;if(5===p.tag&&null!==h&&(p=h,null!==d&&(null!=(h=Be(m,d))&&c.push(Rr(m,h,p)))),f)break;m=m.return}0<c.length&&(l=new u(l,s,null,n,o),i.push({event:l,listeners:c}))}}if(0==(7&t)){if(u="mouseout"===e||"pointerout"===e,(!(l="mouseover"===e||"pointerover"===e)||0!=(16&t)||!(s=n.relatedTarget||n.fromElement)||!Xr(s)&&!s[Qr])&&(u||l)&&(l=o.window===o?o:(l=o.ownerDocument)?l.defaultView||l.parentWindow:window,u?(u=r,null!==(s=(s=n.relatedTarget||n.toElement)?Xr(s):null)&&(s!==(f=Qe(s))||5!==s.tag&&6!==s.tag)&&(s=null)):(u=null,s=r),u!==s)){if(c=vn,h="onMouseLeave",d="onMouseEnter",m="mouse","pointerout"!==e&&"pointerover"!==e||(c=Pn,h="onPointerLeave",d="onPointerEnter",m="pointer"),f=null==u?l:Zr(u),p=null==s?l:Zr(s),(l=new c(h,m+"leave",u,n,o)).target=f,l.relatedTarget=p,h=null,Xr(o)===r&&((c=new c(d,m+"enter",s,n,o)).target=p,c.relatedTarget=f,h=c),f=h,u&&s)e:{for(d=s,m=0,p=c=u;p;p=Tr(p))m++;for(p=0,h=d;h;h=Tr(h))p++;for(;0<m-p;)c=Tr(c),m--;for(;0<p-m;)d=Tr(d),p--;for(;m--;){if(c===d||null!==d&&c===d.alternate)break e;c=Tr(c),d=Tr(d)}c=null}else c=null;null!==u&&Lr(i,l,u,c,!1),null!==s&&null!==f&&Lr(i,f,s,c,!0)}if("select"===(u=(l=r?Zr(r):window).nodeName&&l.nodeName.toLowerCase())||"input"===u&&"file"===l.type)var v=Qn;else if(Hn(l))if(Kn)v=ar;else{v=rr;var g=nr}else(u=l.nodeName)&&"input"===u.toLowerCase()&&("checkbox"===l.type||"radio"===l.type)&&(v=or);switch(v&&(v=v(e,r))?Wn(i,v,n,o):(g&&g(e,l,r),"focusout"===e&&(g=l._wrapperState)&&g.controlled&&"number"===l.type&&oe(l,"number",l.value)),g=r?Zr(r):window,e){case"focusin":(Hn(g)||"true"===g.contentEditable)&&(mr=g,hr=r,vr=null);break;case"focusout":vr=hr=mr=null;break;case"mousedown":gr=!0;break;case"contextmenu":case"mouseup":case"dragend":gr=!1,br(i,n,o);break;case"selectionchange":if(pr)break;case"keydown":case"keyup":br(i,n,o)}var b;if(Tn)e:{switch(e){case"compositionstart":var y="onCompositionStart";break e;case"compositionend":y="onCompositionEnd";break e;case"compositionupdate":y="onCompositionUpdate";break e}y=void 0}else Un?Bn(e,n)&&(y="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(y="onCompositionStart");y&&(jn&&"ko"!==n.locale&&(Un||"onCompositionStart"!==y?"onCompositionEnd"===y&&Un&&(b=nn()):(en="value"in(Zt=o)?Zt.value:Zt.textContent,Un=!0)),0<(g=Nr(r,y)).length&&(y=new wn(y,e,null,n,o),i.push({event:y,listeners:g}),b?y.data=b:null!==(b=Vn(n))&&(y.data=b))),(b=An?function(e,t){switch(e){case"compositionend":return Vn(t);case"keypress":return 32!==t.which?null:(Fn=!0,Mn);case"textInput":return(e=t.data)===Mn&&Fn?null:e;default:return null}}(e,n):function(e,t){if(Un)return"compositionend"===e||!Tn&&Bn(e,t)?(e=nn(),tn=en=Zt=null,Un=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return jn&&"ko"!==t.locale?null:t.data;default:return null}}(e,n))&&(0<(r=Nr(r,"onBeforeInput")).length&&(o=new wn("onBeforeInput","beforeinput",null,n,o),i.push({event:o,listeners:r}),o.data=b))}xr(i,t)}))}function Rr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Nr(e,t){for(var n=t+"Capture",r=[];null!==e;){var o=e,a=o.stateNode;5===o.tag&&null!==a&&(o=a,null!=(a=Be(e,n))&&r.unshift(Rr(e,a,o)),null!=(a=Be(e,t))&&r.push(Rr(e,a,o))),e=e.return}return r}function Tr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Lr(e,t,n,r,o){for(var a=t._reactName,i=[];null!==n&&n!==r;){var l=n,u=l.alternate,s=l.stateNode;if(null!==u&&u===r)break;5===l.tag&&null!==s&&(l=s,o?null!=(u=Be(n,a))&&i.unshift(Rr(n,u,l)):o||null!=(u=Be(n,a))&&i.push(Rr(n,u,l))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}function Ar(){}var jr=null,Mr=null;function Fr(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function Br(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var Vr="function"==typeof setTimeout?setTimeout:void 0,Ur="function"==typeof clearTimeout?clearTimeout:void 0;function zr(e){1===e.nodeType?e.textContent="":9===e.nodeType&&(null!=(e=e.body)&&(e.textContent=""))}function Hr(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function Wr(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var Gr=0;var qr=Math.random().toString(36).slice(2),$r="__reactFiber$"+qr,Yr="__reactProps$"+qr,Qr="__reactContainer$"+qr,Kr="__reactEvents$"+qr;function Xr(e){var t=e[$r];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Qr]||n[$r]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=Wr(e);null!==e;){if(n=e[$r])return n;e=Wr(e)}return t}n=(e=n).parentNode}return null}function Jr(e){return!(e=e[$r]||e[Qr])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function Zr(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(i(33))}function eo(e){return e[Yr]||null}function to(e){var t=e[Kr];return void 0===t&&(t=e[Kr]=new Set),t}var no=[],ro=-1;function oo(e){return{current:e}}function ao(e){0>ro||(e.current=no[ro],no[ro]=null,ro--)}function io(e,t){ro++,no[ro]=e.current,e.current=t}var lo={},uo=oo(lo),so=oo(!1),co=lo;function fo(e,t){var n=e.type.contextTypes;if(!n)return lo;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o,a={};for(o in n)a[o]=t[o];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function po(e){return null!=(e=e.childContextTypes)}function mo(){ao(so),ao(uo)}function ho(e,t,n){if(uo.current!==lo)throw Error(i(168));io(uo,t),io(so,n)}function vo(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var a in r=r.getChildContext())if(!(a in e))throw Error(i(108,$(t)||"Unknown",a));return o({},n,r)}function go(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||lo,co=uo.current,io(uo,e),io(so,so.current),!0}function bo(e,t,n){var r=e.stateNode;if(!r)throw Error(i(169));n?(e=vo(e,t,co),r.__reactInternalMemoizedMergedChildContext=e,ao(so),ao(uo),io(uo,e)):ao(so),io(so,n)}var yo=null,_o=null,wo=a.unstable_runWithPriority,Eo=a.unstable_scheduleCallback,So=a.unstable_cancelCallback,xo=a.unstable_shouldYield,Oo=a.unstable_requestPaint,Co=a.unstable_now,ko=a.unstable_getCurrentPriorityLevel,Po=a.unstable_ImmediatePriority,Io=a.unstable_UserBlockingPriority,Do=a.unstable_NormalPriority,Ro=a.unstable_LowPriority,No=a.unstable_IdlePriority,To={},Lo=void 0!==Oo?Oo:function(){},Ao=null,jo=null,Mo=!1,Fo=Co(),Bo=1e4>Fo?Co:function(){return Co()-Fo};function Vo(){switch(ko()){case Po:return 99;case Io:return 98;case Do:return 97;case Ro:return 96;case No:return 95;default:throw Error(i(332))}}function Uo(e){switch(e){case 99:return Po;case 98:return Io;case 97:return Do;case 96:return Ro;case 95:return No;default:throw Error(i(332))}}function zo(e,t){return e=Uo(e),wo(e,t)}function Ho(e,t,n){return e=Uo(e),Eo(e,t,n)}function Wo(){if(null!==jo){var e=jo;jo=null,So(e)}Go()}function Go(){if(!Mo&&null!==Ao){Mo=!0;var e=0;try{var t=Ao;zo(99,(function(){for(;e<t.length;e++){var n=t[e];do{n=n(!0)}while(null!==n)}})),Ao=null}catch(t){throw null!==Ao&&(Ao=Ao.slice(e+1)),Eo(Po,Wo),t}finally{Mo=!1}}}var qo=w.ReactCurrentBatchConfig;function $o(e,t){if(e&&e.defaultProps){for(var n in t=o({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var Yo=oo(null),Qo=null,Ko=null,Xo=null;function Jo(){Xo=Ko=Qo=null}function Zo(e){var t=Yo.current;ao(Yo),e.type._context._currentValue=t}function ea(e,t){for(;null!==e;){var n=e.alternate;if((e.childLanes&t)===t){if(null===n||(n.childLanes&t)===t)break;n.childLanes|=t}else e.childLanes|=t,null!==n&&(n.childLanes|=t);e=e.return}}function ta(e,t){Qo=e,Xo=Ko=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(Ni=!0),e.firstContext=null)}function na(e,t){if(Xo!==e&&!1!==t&&0!==t)if("number"==typeof t&&1073741823!==t||(Xo=e,t=1073741823),t={context:e,observedBits:t,next:null},null===Ko){if(null===Qo)throw Error(i(308));Ko=t,Qo.dependencies={lanes:0,firstContext:t,responders:null}}else Ko=Ko.next=t;return e._currentValue}var ra=!1;function oa(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function aa(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function ia(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function la(e,t){if(null!==(e=e.updateQueue)){var n=(e=e.shared).pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}}function ua(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var o=null,a=null;if(null!==(n=n.firstBaseUpdate)){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===a?o=a=i:a=a.next=i,n=n.next}while(null!==n);null===a?o=a=t:a=a.next=t}else o=a=t;return n={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:a,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function sa(e,t,n,r){var a=e.updateQueue;ra=!1;var i=a.firstBaseUpdate,l=a.lastBaseUpdate,u=a.shared.pending;if(null!==u){a.shared.pending=null;var s=u,c=s.next;s.next=null,null===l?i=c:l.next=c,l=s;var f=e.alternate;if(null!==f){var d=(f=f.updateQueue).lastBaseUpdate;d!==l&&(null===d?f.firstBaseUpdate=c:d.next=c,f.lastBaseUpdate=s)}}if(null!==i){for(d=a.baseState,l=0,f=c=s=null;;){u=i.lane;var p=i.eventTime;if((r&u)===u){null!==f&&(f=f.next={eventTime:p,lane:0,tag:i.tag,payload:i.payload,callback:i.callback,next:null});e:{var m=e,h=i;switch(u=t,p=n,h.tag){case 1:if("function"==typeof(m=h.payload)){d=m.call(p,d,u);break e}d=m;break e;case 3:m.flags=-4097&m.flags|64;case 0:if(null==(u="function"==typeof(m=h.payload)?m.call(p,d,u):m))break e;d=o({},d,u);break e;case 2:ra=!0}}null!==i.callback&&(e.flags|=32,null===(u=a.effects)?a.effects=[i]:u.push(i))}else p={eventTime:p,lane:u,tag:i.tag,payload:i.payload,callback:i.callback,next:null},null===f?(c=f=p,s=d):f=f.next=p,l|=u;if(null===(i=i.next)){if(null===(u=a.shared.pending))break;i=u.next,u.next=null,a.lastBaseUpdate=u,a.shared.pending=null}}null===f&&(s=d),a.baseState=s,a.firstBaseUpdate=c,a.lastBaseUpdate=f,Tl|=l,e.lanes=l,e.memoizedState=d}}function ca(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],o=r.callback;if(null!==o){if(r.callback=null,r=n,"function"!=typeof o)throw Error(i(191,o));o.call(r)}}}var fa=(new r.Component).refs;function da(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:o({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var pa={isMounted:function(e){return!!(e=e._reactInternals)&&Qe(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=ou(),o=au(e),a=ia(r,o);a.payload=t,null!=n&&(a.callback=n),la(e,a),iu(e,o,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=ou(),o=au(e),a=ia(r,o);a.tag=1,a.payload=t,null!=n&&(a.callback=n),la(e,a),iu(e,o,r)},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=ou(),r=au(e),o=ia(n,r);o.tag=2,null!=t&&(o.callback=t),la(e,o),iu(e,r,n)}};function ma(e,t,n,r,o,a,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,a,i):!t.prototype||!t.prototype.isPureReactComponent||(!ur(n,r)||!ur(o,a))}function ha(e,t,n){var r=!1,o=lo,a=t.contextType;return"object"==typeof a&&null!==a?a=na(a):(o=po(t)?co:uo.current,a=(r=null!=(r=t.contextTypes))?fo(e,o):lo),t=new t(n,a),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=pa,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=o,e.__reactInternalMemoizedMaskedChildContext=a),t}function va(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&pa.enqueueReplaceState(t,t.state,null)}function ga(e,t,n,r){var o=e.stateNode;o.props=n,o.state=e.memoizedState,o.refs=fa,oa(e);var a=t.contextType;"object"==typeof a&&null!==a?o.context=na(a):(a=po(t)?co:uo.current,o.context=fo(e,a)),sa(e,n,o,r),o.state=e.memoizedState,"function"==typeof(a=t.getDerivedStateFromProps)&&(da(e,t,a,n),o.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof o.getSnapshotBeforeUpdate||"function"!=typeof o.UNSAFE_componentWillMount&&"function"!=typeof o.componentWillMount||(t=o.state,"function"==typeof o.componentWillMount&&o.componentWillMount(),"function"==typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount(),t!==o.state&&pa.enqueueReplaceState(o,o.state,null),sa(e,n,o,r),o.state=e.memoizedState),"function"==typeof o.componentDidMount&&(e.flags|=4)}var ba=Array.isArray;function ya(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(i(309));var r=n.stateNode}if(!r)throw Error(i(147,e));var o=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===o?t.ref:((t=function(e){var t=r.refs;t===fa&&(t=r.refs={}),null===e?delete t[o]:t[o]=e})._stringRef=o,t)}if("string"!=typeof e)throw Error(i(284));if(!n._owner)throw Error(i(290,e))}return e}function _a(e,t){if("textarea"!==e.type)throw Error(i(31,"[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t))}function wa(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.flags=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function o(e,t){return(e=Fu(e,t)).index=0,e.sibling=null,e}function a(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags=2,n):r:(t.flags=2,n):n}function l(t){return e&&null===t.alternate&&(t.flags=2),t}function u(e,t,n,r){return null===t||6!==t.tag?((t=zu(n,e.mode,r)).return=e,t):((t=o(t,n)).return=e,t)}function s(e,t,n,r){return null!==t&&t.elementType===n.type?((r=o(t,n.props)).ref=ya(e,t,n),r.return=e,r):((r=Bu(n.type,n.key,n.props,null,e.mode,r)).ref=ya(e,t,n),r.return=e,r)}function c(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Hu(n,e.mode,r)).return=e,t):((t=o(t,n.children||[])).return=e,t)}function f(e,t,n,r,a){return null===t||7!==t.tag?((t=Vu(n,e.mode,r,a)).return=e,t):((t=o(t,n)).return=e,t)}function d(e,t,n){if("string"==typeof t||"number"==typeof t)return(t=zu(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case E:return(n=Bu(t.type,t.key,t.props,null,e.mode,n)).ref=ya(e,null,t),n.return=e,n;case S:return(t=Hu(t,e.mode,n)).return=e,t}if(ba(t)||z(t))return(t=Vu(t,e.mode,n,null)).return=e,t;_a(e,t)}return null}function p(e,t,n,r){var o=null!==t?t.key:null;if("string"==typeof n||"number"==typeof n)return null!==o?null:u(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case E:return n.key===o?n.type===x?f(e,t,n.props.children,r,o):s(e,t,n,r):null;case S:return n.key===o?c(e,t,n,r):null}if(ba(n)||z(n))return null!==o?null:f(e,t,n,r,null);_a(e,n)}return null}function m(e,t,n,r,o){if("string"==typeof r||"number"==typeof r)return u(t,e=e.get(n)||null,""+r,o);if("object"==typeof r&&null!==r){switch(r.$$typeof){case E:return e=e.get(null===r.key?n:r.key)||null,r.type===x?f(t,e,r.props.children,o,r.key):s(t,e,r,o);case S:return c(t,e=e.get(null===r.key?n:r.key)||null,r,o)}if(ba(r)||z(r))return f(t,e=e.get(n)||null,r,o,null);_a(t,r)}return null}function h(o,i,l,u){for(var s=null,c=null,f=i,h=i=0,v=null;null!==f&&h<l.length;h++){f.index>h?(v=f,f=null):v=f.sibling;var g=p(o,f,l[h],u);if(null===g){null===f&&(f=v);break}e&&f&&null===g.alternate&&t(o,f),i=a(g,i,h),null===c?s=g:c.sibling=g,c=g,f=v}if(h===l.length)return n(o,f),s;if(null===f){for(;h<l.length;h++)null!==(f=d(o,l[h],u))&&(i=a(f,i,h),null===c?s=f:c.sibling=f,c=f);return s}for(f=r(o,f);h<l.length;h++)null!==(v=m(f,o,h,l[h],u))&&(e&&null!==v.alternate&&f.delete(null===v.key?h:v.key),i=a(v,i,h),null===c?s=v:c.sibling=v,c=v);return e&&f.forEach((function(e){return t(o,e)})),s}function v(o,l,u,s){var c=z(u);if("function"!=typeof c)throw Error(i(150));if(null==(u=c.call(u)))throw Error(i(151));for(var f=c=null,h=l,v=l=0,g=null,b=u.next();null!==h&&!b.done;v++,b=u.next()){h.index>v?(g=h,h=null):g=h.sibling;var y=p(o,h,b.value,s);if(null===y){null===h&&(h=g);break}e&&h&&null===y.alternate&&t(o,h),l=a(y,l,v),null===f?c=y:f.sibling=y,f=y,h=g}if(b.done)return n(o,h),c;if(null===h){for(;!b.done;v++,b=u.next())null!==(b=d(o,b.value,s))&&(l=a(b,l,v),null===f?c=b:f.sibling=b,f=b);return c}for(h=r(o,h);!b.done;v++,b=u.next())null!==(b=m(h,o,v,b.value,s))&&(e&&null!==b.alternate&&h.delete(null===b.key?v:b.key),l=a(b,l,v),null===f?c=b:f.sibling=b,f=b);return e&&h.forEach((function(e){return t(o,e)})),c}return function(e,r,a,u){var s="object"==typeof a&&null!==a&&a.type===x&&null===a.key;s&&(a=a.props.children);var c="object"==typeof a&&null!==a;if(c)switch(a.$$typeof){case E:e:{for(c=a.key,s=r;null!==s;){if(s.key===c){switch(s.tag){case 7:if(a.type===x){n(e,s.sibling),(r=o(s,a.props.children)).return=e,e=r;break e}break;default:if(s.elementType===a.type){n(e,s.sibling),(r=o(s,a.props)).ref=ya(e,s,a),r.return=e,e=r;break e}}n(e,s);break}t(e,s),s=s.sibling}a.type===x?((r=Vu(a.props.children,e.mode,u,a.key)).return=e,e=r):((u=Bu(a.type,a.key,a.props,null,e.mode,u)).ref=ya(e,r,a),u.return=e,e=u)}return l(e);case S:e:{for(s=a.key;null!==r;){if(r.key===s){if(4===r.tag&&r.stateNode.containerInfo===a.containerInfo&&r.stateNode.implementation===a.implementation){n(e,r.sibling),(r=o(r,a.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=Hu(a,e.mode,u)).return=e,e=r}return l(e)}if("string"==typeof a||"number"==typeof a)return a=""+a,null!==r&&6===r.tag?(n(e,r.sibling),(r=o(r,a)).return=e,e=r):(n(e,r),(r=zu(a,e.mode,u)).return=e,e=r),l(e);if(ba(a))return h(e,r,a,u);if(z(a))return v(e,r,a,u);if(c&&_a(e,a),void 0===a&&!s)switch(e.tag){case 1:case 22:case 0:case 11:case 15:throw Error(i(152,$(e.type)||"Component"))}return n(e,r)}}var Ea=wa(!0),Sa=wa(!1),xa={},Oa=oo(xa),Ca=oo(xa),ka=oo(xa);function Pa(e){if(e===xa)throw Error(i(174));return e}function Ia(e,t){switch(io(ka,t),io(Ca,e),io(Oa,xa),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:me(null,"");break;default:t=me(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}ao(Oa),io(Oa,t)}function Da(){ao(Oa),ao(Ca),ao(ka)}function Ra(e){Pa(ka.current);var t=Pa(Oa.current),n=me(t,e.type);t!==n&&(io(Ca,e),io(Oa,n))}function Na(e){Ca.current===e&&(ao(Oa),ao(Ca))}var Ta=oo(0);function La(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Aa=null,ja=null,Ma=!1;function Fa(e,t){var n=ju(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.flags=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function Ba(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);case 13:default:return!1}}function Va(e){if(Ma){var t=ja;if(t){var n=t;if(!Ba(e,t)){if(!(t=Hr(n.nextSibling))||!Ba(e,t))return e.flags=-1025&e.flags|2,Ma=!1,void(Aa=e);Fa(Aa,n)}Aa=e,ja=Hr(t.firstChild)}else e.flags=-1025&e.flags|2,Ma=!1,Aa=e}}function Ua(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;Aa=e}function za(e){if(e!==Aa)return!1;if(!Ma)return Ua(e),Ma=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!Br(t,e.memoizedProps))for(t=ja;t;)Fa(e,t),t=Hr(t.nextSibling);if(Ua(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(i(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){ja=Hr(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}ja=null}}else ja=Aa?Hr(e.stateNode.nextSibling):null;return!0}function Ha(){ja=Aa=null,Ma=!1}var Wa=[];function Ga(){for(var e=0;e<Wa.length;e++)Wa[e]._workInProgressVersionPrimary=null;Wa.length=0}var qa=w.ReactCurrentDispatcher,$a=w.ReactCurrentBatchConfig,Ya=0,Qa=null,Ka=null,Xa=null,Ja=!1,Za=!1;function ei(){throw Error(i(321))}function ti(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!ir(e[n],t[n]))return!1;return!0}function ni(e,t,n,r,o,a){if(Ya=a,Qa=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,qa.current=null===e||null===e.memoizedState?Pi:Ii,e=n(r,o),Za){a=0;do{if(Za=!1,!(25>a))throw Error(i(301));a+=1,Xa=Ka=null,t.updateQueue=null,qa.current=Di,e=n(r,o)}while(Za)}if(qa.current=ki,t=null!==Ka&&null!==Ka.next,Ya=0,Xa=Ka=Qa=null,Ja=!1,t)throw Error(i(300));return e}function ri(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===Xa?Qa.memoizedState=Xa=e:Xa=Xa.next=e,Xa}function oi(){if(null===Ka){var e=Qa.alternate;e=null!==e?e.memoizedState:null}else e=Ka.next;var t=null===Xa?Qa.memoizedState:Xa.next;if(null!==t)Xa=t,Ka=e;else{if(null===e)throw Error(i(310));e={memoizedState:(Ka=e).memoizedState,baseState:Ka.baseState,baseQueue:Ka.baseQueue,queue:Ka.queue,next:null},null===Xa?Qa.memoizedState=Xa=e:Xa=Xa.next=e}return Xa}function ai(e,t){return"function"==typeof t?t(e):t}function ii(e){var t=oi(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=Ka,o=r.baseQueue,a=n.pending;if(null!==a){if(null!==o){var l=o.next;o.next=a.next,a.next=l}r.baseQueue=o=a,n.pending=null}if(null!==o){o=o.next,r=r.baseState;var u=l=a=null,s=o;do{var c=s.lane;if((Ya&c)===c)null!==u&&(u=u.next={lane:0,action:s.action,eagerReducer:s.eagerReducer,eagerState:s.eagerState,next:null}),r=s.eagerReducer===e?s.eagerState:e(r,s.action);else{var f={lane:c,action:s.action,eagerReducer:s.eagerReducer,eagerState:s.eagerState,next:null};null===u?(l=u=f,a=r):u=u.next=f,Qa.lanes|=c,Tl|=c}s=s.next}while(null!==s&&s!==o);null===u?a=r:u.next=l,ir(r,t.memoizedState)||(Ni=!0),t.memoizedState=r,t.baseState=a,t.baseQueue=u,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function li(e){var t=oi(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,o=n.pending,a=t.memoizedState;if(null!==o){n.pending=null;var l=o=o.next;do{a=e(a,l.action),l=l.next}while(l!==o);ir(a,t.memoizedState)||(Ni=!0),t.memoizedState=a,null===t.baseQueue&&(t.baseState=a),n.lastRenderedState=a}return[a,r]}function ui(e,t,n){var r=t._getVersion;r=r(t._source);var o=t._workInProgressVersionPrimary;if(null!==o?e=o===r:(e=e.mutableReadLanes,(e=(Ya&e)===e)&&(t._workInProgressVersionPrimary=r,Wa.push(t))),e)return n(t._source);throw Wa.push(t),Error(i(350))}function si(e,t,n,r){var o=Ol;if(null===o)throw Error(i(349));var a=t._getVersion,l=a(t._source),u=qa.current,s=u.useState((function(){return ui(o,t,n)})),c=s[1],f=s[0];s=Xa;var d=e.memoizedState,p=d.refs,m=p.getSnapshot,h=d.source;d=d.subscribe;var v=Qa;return e.memoizedState={refs:p,source:t,subscribe:r},u.useEffect((function(){p.getSnapshot=n,p.setSnapshot=c;var e=a(t._source);if(!ir(l,e)){e=n(t._source),ir(f,e)||(c(e),e=au(v),o.mutableReadLanes|=e&o.pendingLanes),e=o.mutableReadLanes,o.entangledLanes|=e;for(var r=o.entanglements,i=e;0<i;){var u=31-Ht(i),s=1<<u;r[u]|=e,i&=~s}}}),[n,t,r]),u.useEffect((function(){return r(t._source,(function(){var e=p.getSnapshot,n=p.setSnapshot;try{n(e(t._source));var r=au(v);o.mutableReadLanes|=r&o.pendingLanes}catch(e){n((function(){throw e}))}}))}),[t,r]),ir(m,n)&&ir(h,t)&&ir(d,r)||((e={pending:null,dispatch:null,lastRenderedReducer:ai,lastRenderedState:f}).dispatch=c=Ci.bind(null,Qa,e),s.queue=e,s.baseQueue=null,f=ui(o,t,n),s.memoizedState=s.baseState=f),f}function ci(e,t,n){return si(oi(),e,t,n)}function fi(e){var t=ri();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={pending:null,dispatch:null,lastRenderedReducer:ai,lastRenderedState:e}).dispatch=Ci.bind(null,Qa,e),[t.memoizedState,e]}function di(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=Qa.updateQueue)?(t={lastEffect:null},Qa.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function pi(e){return e={current:e},ri().memoizedState=e}function mi(){return oi().memoizedState}function hi(e,t,n,r){var o=ri();Qa.flags|=e,o.memoizedState=di(1|t,n,void 0,void 0===r?null:r)}function vi(e,t,n,r){var o=oi();r=void 0===r?null:r;var a=void 0;if(null!==Ka){var i=Ka.memoizedState;if(a=i.destroy,null!==r&&ti(r,i.deps))return void di(t,n,a,r)}Qa.flags|=e,o.memoizedState=di(1|t,n,a,r)}function gi(e,t){return hi(516,4,e,t)}function bi(e,t){return vi(516,4,e,t)}function yi(e,t){return vi(4,2,e,t)}function _i(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function wi(e,t,n){return n=null!=n?n.concat([e]):null,vi(4,2,_i.bind(null,t,e),n)}function Ei(){}function Si(e,t){var n=oi();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&ti(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function xi(e,t){var n=oi();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&ti(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Oi(e,t){var n=Vo();zo(98>n?98:n,(function(){e(!0)})),zo(97<n?97:n,(function(){var n=$a.transition;$a.transition=1;try{e(!1),t()}finally{$a.transition=n}}))}function Ci(e,t,n){var r=ou(),o=au(e),a={lane:o,action:n,eagerReducer:null,eagerState:null,next:null},i=t.pending;if(null===i?a.next=a:(a.next=i.next,i.next=a),t.pending=a,i=e.alternate,e===Qa||null!==i&&i===Qa)Za=Ja=!0;else{if(0===e.lanes&&(null===i||0===i.lanes)&&null!==(i=t.lastRenderedReducer))try{var l=t.lastRenderedState,u=i(l,n);if(a.eagerReducer=i,a.eagerState=u,ir(u,l))return}catch(e){}iu(e,o,r)}}var ki={readContext:na,useCallback:ei,useContext:ei,useEffect:ei,useImperativeHandle:ei,useLayoutEffect:ei,useMemo:ei,useReducer:ei,useRef:ei,useState:ei,useDebugValue:ei,useDeferredValue:ei,useTransition:ei,useMutableSource:ei,useOpaqueIdentifier:ei,unstable_isNewReconciler:!1},Pi={readContext:na,useCallback:function(e,t){return ri().memoizedState=[e,void 0===t?null:t],e},useContext:na,useEffect:gi,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,hi(4,2,_i.bind(null,t,e),n)},useLayoutEffect:function(e,t){return hi(4,2,e,t)},useMemo:function(e,t){var n=ri();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=ri();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={pending:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=Ci.bind(null,Qa,e),[r.memoizedState,e]},useRef:pi,useState:fi,useDebugValue:Ei,useDeferredValue:function(e){var t=fi(e),n=t[0],r=t[1];return gi((function(){var t=$a.transition;$a.transition=1;try{r(e)}finally{$a.transition=t}}),[e]),n},useTransition:function(){var e=fi(!1),t=e[0];return pi(e=Oi.bind(null,e[1])),[e,t]},useMutableSource:function(e,t,n){var r=ri();return r.memoizedState={refs:{getSnapshot:t,setSnapshot:null},source:e,subscribe:n},si(r,e,t,n)},useOpaqueIdentifier:function(){if(Ma){var e=!1,t=function(e){return{$$typeof:A,toString:e,valueOf:e}}((function(){throw e||(e=!0,n("r:"+(Gr++).toString(36))),Error(i(355))})),n=fi(t)[1];return 0==(2&Qa.mode)&&(Qa.flags|=516,di(5,(function(){n("r:"+(Gr++).toString(36))}),void 0,null)),t}return fi(t="r:"+(Gr++).toString(36)),t},unstable_isNewReconciler:!1},Ii={readContext:na,useCallback:Si,useContext:na,useEffect:bi,useImperativeHandle:wi,useLayoutEffect:yi,useMemo:xi,useReducer:ii,useRef:mi,useState:function(){return ii(ai)},useDebugValue:Ei,useDeferredValue:function(e){var t=ii(ai),n=t[0],r=t[1];return bi((function(){var t=$a.transition;$a.transition=1;try{r(e)}finally{$a.transition=t}}),[e]),n},useTransition:function(){var e=ii(ai)[0];return[mi().current,e]},useMutableSource:ci,useOpaqueIdentifier:function(){return ii(ai)[0]},unstable_isNewReconciler:!1},Di={readContext:na,useCallback:Si,useContext:na,useEffect:bi,useImperativeHandle:wi,useLayoutEffect:yi,useMemo:xi,useReducer:li,useRef:mi,useState:function(){return li(ai)},useDebugValue:Ei,useDeferredValue:function(e){var t=li(ai),n=t[0],r=t[1];return bi((function(){var t=$a.transition;$a.transition=1;try{r(e)}finally{$a.transition=t}}),[e]),n},useTransition:function(){var e=li(ai)[0];return[mi().current,e]},useMutableSource:ci,useOpaqueIdentifier:function(){return li(ai)[0]},unstable_isNewReconciler:!1},Ri=w.ReactCurrentOwner,Ni=!1;function Ti(e,t,n,r){t.child=null===e?Sa(t,null,n,r):Ea(t,e.child,n,r)}function Li(e,t,n,r,o){n=n.render;var a=t.ref;return ta(t,o),r=ni(e,t,n,r,a,o),null===e||Ni?(t.flags|=1,Ti(e,t,r,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~o,el(e,t,o))}function Ai(e,t,n,r,o,a){if(null===e){var i=n.type;return"function"!=typeof i||Mu(i)||void 0!==i.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Bu(n.type,null,r,t,t.mode,a)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=i,ji(e,t,i,r,o,a))}return i=e.child,0==(o&a)&&(o=i.memoizedProps,(n=null!==(n=n.compare)?n:ur)(o,r)&&e.ref===t.ref)?el(e,t,a):(t.flags|=1,(e=Fu(i,r)).ref=t.ref,e.return=t,t.child=e)}function ji(e,t,n,r,o,a){if(null!==e&&ur(e.memoizedProps,r)&&e.ref===t.ref){if(Ni=!1,0==(a&o))return t.lanes=e.lanes,el(e,t,a);0!=(16384&e.flags)&&(Ni=!0)}return Bi(e,t,n,r,a)}function Mi(e,t,n){var r=t.pendingProps,o=r.children,a=null!==e?e.memoizedState:null;if("hidden"===r.mode||"unstable-defer-without-hiding"===r.mode)if(0==(4&t.mode))t.memoizedState={baseLanes:0},mu(t,n);else{if(0==(1073741824&n))return e=null!==a?a.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e},mu(t,e),null;t.memoizedState={baseLanes:0},mu(t,null!==a?a.baseLanes:n)}else null!==a?(r=a.baseLanes|n,t.memoizedState=null):r=n,mu(t,r);return Ti(e,t,o,n),t.child}function Fi(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=128)}function Bi(e,t,n,r,o){var a=po(n)?co:uo.current;return a=fo(t,a),ta(t,o),n=ni(e,t,n,r,a,o),null===e||Ni?(t.flags|=1,Ti(e,t,n,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~o,el(e,t,o))}function Vi(e,t,n,r,o){if(po(n)){var a=!0;go(t)}else a=!1;if(ta(t,o),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),ha(t,n,r),ga(t,n,r,o),r=!0;else if(null===e){var i=t.stateNode,l=t.memoizedProps;i.props=l;var u=i.context,s=n.contextType;"object"==typeof s&&null!==s?s=na(s):s=fo(t,s=po(n)?co:uo.current);var c=n.getDerivedStateFromProps,f="function"==typeof c||"function"==typeof i.getSnapshotBeforeUpdate;f||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==r||u!==s)&&va(t,i,r,s),ra=!1;var d=t.memoizedState;i.state=d,sa(t,r,i,o),u=t.memoizedState,l!==r||d!==u||so.current||ra?("function"==typeof c&&(da(t,n,c,r),u=t.memoizedState),(l=ra||ma(t,n,l,r,d,u,s))?(f||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4)):("function"==typeof i.componentDidMount&&(t.flags|=4),t.memoizedProps=r,t.memoizedState=u),i.props=r,i.state=u,i.context=s,r=l):("function"==typeof i.componentDidMount&&(t.flags|=4),r=!1)}else{i=t.stateNode,aa(e,t),l=t.memoizedProps,s=t.type===t.elementType?l:$o(t.type,l),i.props=s,f=t.pendingProps,d=i.context,"object"==typeof(u=n.contextType)&&null!==u?u=na(u):u=fo(t,u=po(n)?co:uo.current);var p=n.getDerivedStateFromProps;(c="function"==typeof p||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==f||d!==u)&&va(t,i,r,u),ra=!1,d=t.memoizedState,i.state=d,sa(t,r,i,o);var m=t.memoizedState;l!==f||d!==m||so.current||ra?("function"==typeof p&&(da(t,n,p,r),m=t.memoizedState),(s=ra||ma(t,n,s,r,d,m,u))?(c||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,m,u),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,m,u)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=256)):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&d===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&d===e.memoizedState||(t.flags|=256),t.memoizedProps=r,t.memoizedState=m),i.props=r,i.state=m,i.context=u,r=s):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&d===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&d===e.memoizedState||(t.flags|=256),r=!1)}return Ui(e,t,n,r,a,o)}function Ui(e,t,n,r,o,a){Fi(e,t);var i=0!=(64&t.flags);if(!r&&!i)return o&&bo(t,n,!1),el(e,t,a);r=t.stateNode,Ri.current=t;var l=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=Ea(t,e.child,null,a),t.child=Ea(t,null,l,a)):Ti(e,t,l,a),t.memoizedState=r.state,o&&bo(t,n,!0),t.child}function zi(e){var t=e.stateNode;t.pendingContext?ho(0,t.pendingContext,t.pendingContext!==t.context):t.context&&ho(0,t.context,!1),Ia(e,t.containerInfo)}var Hi,Wi,Gi,qi={dehydrated:null,retryLane:0};function $i(e,t,n){var r,o=t.pendingProps,a=Ta.current,i=!1;return(r=0!=(64&t.flags))||(r=(null===e||null!==e.memoizedState)&&0!=(2&a)),r?(i=!0,t.flags&=-65):null!==e&&null===e.memoizedState||void 0===o.fallback||!0===o.unstable_avoidThisFallback||(a|=1),io(Ta,1&a),null===e?(void 0!==o.fallback&&Va(t),e=o.children,a=o.fallback,i?(e=Yi(t,e,a,n),t.child.memoizedState={baseLanes:n},t.memoizedState=qi,e):"number"==typeof o.unstable_expectedLoadTime?(e=Yi(t,e,a,n),t.child.memoizedState={baseLanes:n},t.memoizedState=qi,t.lanes=33554432,e):((n=Uu({mode:"visible",children:e},t.mode,n,null)).return=t,t.child=n)):(e.memoizedState,i?(o=Ki(e,t,o.children,o.fallback,n),i=t.child,a=e.child.memoizedState,i.memoizedState=null===a?{baseLanes:n}:{baseLanes:a.baseLanes|n},i.childLanes=e.childLanes&~n,t.memoizedState=qi,o):(n=Qi(e,t,o.children,n),t.memoizedState=null,n))}function Yi(e,t,n,r){var o=e.mode,a=e.child;return t={mode:"hidden",children:t},0==(2&o)&&null!==a?(a.childLanes=0,a.pendingProps=t):a=Uu(t,o,0,null),n=Vu(n,o,r,null),a.return=e,n.return=e,a.sibling=n,e.child=a,n}function Qi(e,t,n,r){var o=e.child;return e=o.sibling,n=Fu(o,{mode:"visible",children:n}),0==(2&t.mode)&&(n.lanes=r),n.return=t,n.sibling=null,null!==e&&(e.nextEffect=null,e.flags=8,t.firstEffect=t.lastEffect=e),t.child=n}function Ki(e,t,n,r,o){var a=t.mode,i=e.child;e=i.sibling;var l={mode:"hidden",children:n};return 0==(2&a)&&t.child!==i?((n=t.child).childLanes=0,n.pendingProps=l,null!==(i=n.lastEffect)?(t.firstEffect=n.firstEffect,t.lastEffect=i,i.nextEffect=null):t.firstEffect=t.lastEffect=null):n=Fu(i,l),null!==e?r=Fu(e,r):(r=Vu(r,a,o,null)).flags|=2,r.return=t,n.return=t,n.sibling=r,t.child=n,r}function Xi(e,t){e.lanes|=t;var n=e.alternate;null!==n&&(n.lanes|=t),ea(e.return,t)}function Ji(e,t,n,r,o,a){var i=e.memoizedState;null===i?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:o,lastEffect:a}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=o,i.lastEffect=a)}function Zi(e,t,n){var r=t.pendingProps,o=r.revealOrder,a=r.tail;if(Ti(e,t,r.children,n),0!=(2&(r=Ta.current)))r=1&r|2,t.flags|=64;else{if(null!==e&&0!=(64&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&Xi(e,n);else if(19===e.tag)Xi(e,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(io(Ta,r),0==(2&t.mode))t.memoizedState=null;else switch(o){case"forwards":for(n=t.child,o=null;null!==n;)null!==(e=n.alternate)&&null===La(e)&&(o=n),n=n.sibling;null===(n=o)?(o=t.child,t.child=null):(o=n.sibling,n.sibling=null),Ji(t,!1,o,n,a,t.lastEffect);break;case"backwards":for(n=null,o=t.child,t.child=null;null!==o;){if(null!==(e=o.alternate)&&null===La(e)){t.child=o;break}e=o.sibling,o.sibling=n,n=o,o=e}Ji(t,!0,n,null,a,t.lastEffect);break;case"together":Ji(t,!1,null,null,void 0,t.lastEffect);break;default:t.memoizedState=null}return t.child}function el(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Tl|=t.lanes,0!=(n&t.childLanes)){if(null!==e&&t.child!==e.child)throw Error(i(153));if(null!==t.child){for(n=Fu(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Fu(e,e.pendingProps)).return=t;n.sibling=null}return t.child}return null}function tl(e,t){if(!Ma)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function nl(e,t,n){var r=t.pendingProps;switch(t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:return po(t.type)&&mo(),null;case 3:return Da(),ao(so),ao(uo),Ga(),(r=t.stateNode).pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(za(t)?t.flags|=4:r.hydrate||(t.flags|=256)),null;case 5:Na(t);var a=Pa(ka.current);if(n=t.type,null!==e&&null!=t.stateNode)Wi(e,t,n,r),e.ref!==t.ref&&(t.flags|=128);else{if(!r){if(null===t.stateNode)throw Error(i(166));return null}if(e=Pa(Oa.current),za(t)){r=t.stateNode,n=t.type;var l=t.memoizedProps;switch(r[$r]=t,r[Yr]=l,n){case"dialog":Or("cancel",r),Or("close",r);break;case"iframe":case"object":case"embed":Or("load",r);break;case"video":case"audio":for(e=0;e<wr.length;e++)Or(wr[e],r);break;case"source":Or("error",r);break;case"img":case"image":case"link":Or("error",r),Or("load",r);break;case"details":Or("toggle",r);break;case"input":ee(r,l),Or("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!l.multiple},Or("invalid",r);break;case"textarea":ue(r,l),Or("invalid",r)}for(var s in Se(n,l),e=null,l)l.hasOwnProperty(s)&&(a=l[s],"children"===s?"string"==typeof a?r.textContent!==a&&(e=["children",a]):"number"==typeof a&&r.textContent!==""+a&&(e=["children",""+a]):u.hasOwnProperty(s)&&null!=a&&"onScroll"===s&&Or("scroll",r));switch(n){case"input":K(r),re(r,l,!0);break;case"textarea":K(r),ce(r);break;case"select":case"option":break;default:"function"==typeof l.onClick&&(r.onclick=Ar)}r=e,t.updateQueue=r,null!==r&&(t.flags|=4)}else{switch(s=9===a.nodeType?a:a.ownerDocument,e===fe&&(e=pe(n)),e===fe?"script"===n?((e=s.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=s.createElement(n,{is:r.is}):(e=s.createElement(n),"select"===n&&(s=e,r.multiple?s.multiple=!0:r.size&&(s.size=r.size))):e=s.createElementNS(e,n),e[$r]=t,e[Yr]=r,Hi(e,t),t.stateNode=e,s=xe(n,r),n){case"dialog":Or("cancel",e),Or("close",e),a=r;break;case"iframe":case"object":case"embed":Or("load",e),a=r;break;case"video":case"audio":for(a=0;a<wr.length;a++)Or(wr[a],e);a=r;break;case"source":Or("error",e),a=r;break;case"img":case"image":case"link":Or("error",e),Or("load",e),a=r;break;case"details":Or("toggle",e),a=r;break;case"input":ee(e,r),a=Z(e,r),Or("invalid",e);break;case"option":a=ae(e,r);break;case"select":e._wrapperState={wasMultiple:!!r.multiple},a=o({},r,{value:void 0}),Or("invalid",e);break;case"textarea":ue(e,r),a=le(e,r),Or("invalid",e);break;default:a=r}Se(n,a);var c=a;for(l in c)if(c.hasOwnProperty(l)){var f=c[l];"style"===l?we(e,f):"dangerouslySetInnerHTML"===l?null!=(f=f?f.__html:void 0)&&ve(e,f):"children"===l?"string"==typeof f?("textarea"!==n||""!==f)&&ge(e,f):"number"==typeof f&&ge(e,""+f):"suppressContentEditableWarning"!==l&&"suppressHydrationWarning"!==l&&"autoFocus"!==l&&(u.hasOwnProperty(l)?null!=f&&"onScroll"===l&&Or("scroll",e):null!=f&&_(e,l,f,s))}switch(n){case"input":K(e),re(e,r,!1);break;case"textarea":K(e),ce(e);break;case"option":null!=r.value&&e.setAttribute("value",""+Y(r.value));break;case"select":e.multiple=!!r.multiple,null!=(l=r.value)?ie(e,!!r.multiple,l,!1):null!=r.defaultValue&&ie(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof a.onClick&&(e.onclick=Ar)}Fr(n,r)&&(t.flags|=4)}null!==t.ref&&(t.flags|=128)}return null;case 6:if(e&&null!=t.stateNode)Gi(0,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(i(166));n=Pa(ka.current),Pa(Oa.current),za(t)?(r=t.stateNode,n=t.memoizedProps,r[$r]=t,r.nodeValue!==n&&(t.flags|=4)):((r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[$r]=t,t.stateNode=r)}return null;case 13:return ao(Ta),r=t.memoizedState,0!=(64&t.flags)?(t.lanes=n,t):(r=null!==r,n=!1,null===e?void 0!==t.memoizedProps.fallback&&za(t):n=null!==e.memoizedState,r&&!n&&0!=(2&t.mode)&&(null===e&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!=(1&Ta.current)?0===Dl&&(Dl=3):(0!==Dl&&3!==Dl||(Dl=4),null===Ol||0==(134217727&Tl)&&0==(134217727&Ll)||cu(Ol,kl))),(r||n)&&(t.flags|=4),null);case 4:return Da(),null===e&&kr(t.stateNode.containerInfo),null;case 10:return Zo(t),null;case 17:return po(t.type)&&mo(),null;case 19:if(ao(Ta),null===(r=t.memoizedState))return null;if(l=0!=(64&t.flags),null===(s=r.rendering))if(l)tl(r,!1);else{if(0!==Dl||null!==e&&0!=(64&e.flags))for(e=t.child;null!==e;){if(null!==(s=La(e))){for(t.flags|=64,tl(r,!1),null!==(l=s.updateQueue)&&(t.updateQueue=l,t.flags|=4),null===r.lastEffect&&(t.firstEffect=null),t.lastEffect=r.lastEffect,r=n,n=t.child;null!==n;)e=r,(l=n).flags&=2,l.nextEffect=null,l.firstEffect=null,l.lastEffect=null,null===(s=l.alternate)?(l.childLanes=0,l.lanes=e,l.child=null,l.memoizedProps=null,l.memoizedState=null,l.updateQueue=null,l.dependencies=null,l.stateNode=null):(l.childLanes=s.childLanes,l.lanes=s.lanes,l.child=s.child,l.memoizedProps=s.memoizedProps,l.memoizedState=s.memoizedState,l.updateQueue=s.updateQueue,l.type=s.type,e=s.dependencies,l.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return io(Ta,1&Ta.current|2),t.child}e=e.sibling}null!==r.tail&&Bo()>Fl&&(t.flags|=64,l=!0,tl(r,!1),t.lanes=33554432)}else{if(!l)if(null!==(e=La(s))){if(t.flags|=64,l=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),tl(r,!0),null===r.tail&&"hidden"===r.tailMode&&!s.alternate&&!Ma)return null!==(t=t.lastEffect=r.lastEffect)&&(t.nextEffect=null),null}else 2*Bo()-r.renderingStartTime>Fl&&1073741824!==n&&(t.flags|=64,l=!0,tl(r,!1),t.lanes=33554432);r.isBackwards?(s.sibling=t.child,t.child=s):(null!==(n=r.last)?n.sibling=s:t.child=s,r.last=s)}return null!==r.tail?(n=r.tail,r.rendering=n,r.tail=n.sibling,r.lastEffect=t.lastEffect,r.renderingStartTime=Bo(),n.sibling=null,t=Ta.current,io(Ta,l?1&t|2:1&t),n):null;case 23:case 24:return hu(),null!==e&&null!==e.memoizedState!=(null!==t.memoizedState)&&"unstable-defer-without-hiding"!==r.mode&&(t.flags|=4),null}throw Error(i(156,t.tag))}function rl(e){switch(e.tag){case 1:po(e.type)&&mo();var t=e.flags;return 4096&t?(e.flags=-4097&t|64,e):null;case 3:if(Da(),ao(so),ao(uo),Ga(),0!=(64&(t=e.flags)))throw Error(i(285));return e.flags=-4097&t|64,e;case 5:return Na(e),null;case 13:return ao(Ta),4096&(t=e.flags)?(e.flags=-4097&t|64,e):null;case 19:return ao(Ta),null;case 4:return Da(),null;case 10:return Zo(e),null;case 23:case 24:return hu(),null;default:return null}}function ol(e,t){try{var n="",r=t;do{n+=q(r),r=r.return}while(r);var o=n}catch(e){o="\nError generating stack: "+e.message+"\n"+e.stack}return{value:e,source:t,stack:o}}Hi=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Wi=function(e,t,n,r){var a=e.memoizedProps;if(a!==r){e=t.stateNode,Pa(Oa.current);var i,l=null;switch(n){case"input":a=Z(e,a),r=Z(e,r),l=[];break;case"option":a=ae(e,a),r=ae(e,r),l=[];break;case"select":a=o({},a,{value:void 0}),r=o({},r,{value:void 0}),l=[];break;case"textarea":a=le(e,a),r=le(e,r),l=[];break;default:"function"!=typeof a.onClick&&"function"==typeof r.onClick&&(e.onclick=Ar)}for(f in Se(n,r),n=null,a)if(!r.hasOwnProperty(f)&&a.hasOwnProperty(f)&&null!=a[f])if("style"===f){var s=a[f];for(i in s)s.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else"dangerouslySetInnerHTML"!==f&&"children"!==f&&"suppressContentEditableWarning"!==f&&"suppressHydrationWarning"!==f&&"autoFocus"!==f&&(u.hasOwnProperty(f)?l||(l=[]):(l=l||[]).push(f,null));for(f in r){var c=r[f];if(s=null!=a?a[f]:void 0,r.hasOwnProperty(f)&&c!==s&&(null!=c||null!=s))if("style"===f)if(s){for(i in s)!s.hasOwnProperty(i)||c&&c.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in c)c.hasOwnProperty(i)&&s[i]!==c[i]&&(n||(n={}),n[i]=c[i])}else n||(l||(l=[]),l.push(f,n)),n=c;else"dangerouslySetInnerHTML"===f?(c=c?c.__html:void 0,s=s?s.__html:void 0,null!=c&&s!==c&&(l=l||[]).push(f,c)):"children"===f?"string"!=typeof c&&"number"!=typeof c||(l=l||[]).push(f,""+c):"suppressContentEditableWarning"!==f&&"suppressHydrationWarning"!==f&&(u.hasOwnProperty(f)?(null!=c&&"onScroll"===f&&Or("scroll",e),l||s===c||(l=[])):"object"==typeof c&&null!==c&&c.$$typeof===A?c.toString():(l=l||[]).push(f,c))}n&&(l=l||[]).push("style",n);var f=l;(t.updateQueue=f)&&(t.flags|=4)}},Gi=function(e,t,n,r){n!==r&&(t.flags|=4)};var al="function"==typeof WeakMap?WeakMap:Map;function il(e,t,n){(n=ia(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){zl||(zl=!0,Hl=r)},n}function ll(e,t,n){(n=ia(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var o=t.value;n.payload=function(){return r(o)}}var a=e.stateNode;return null!==a&&"function"==typeof a.componentDidCatch&&(n.callback=function(){"function"!=typeof r&&(null===Wl?Wl=new Set([this]):Wl.add(this));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}var ul="function"==typeof WeakSet?WeakSet:Set;function sl(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(t){Nu(e,t)}else t.current=null}function cl(e,t){switch(t.tag){case 0:case 11:case 15:case 22:return;case 1:if(256&t.flags&&null!==e){var n=e.memoizedProps,r=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:$o(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:return void(256&t.flags&&zr(t.stateNode.containerInfo));case 5:case 6:case 4:case 17:return}throw Error(i(163))}function fl(e,t,n){switch(n.tag){case 0:case 11:case 15:case 22:if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{if(3==(3&e.tag)){var r=e.create;e.destroy=r()}e=e.next}while(e!==t)}if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{var o=e;r=o.next,0!=(4&(o=o.tag))&&0!=(1&o)&&(Iu(n,e),Pu(n,e)),e=r}while(e!==t)}return;case 1:return e=n.stateNode,4&n.flags&&(null===t?e.componentDidMount():(r=n.elementType===n.type?t.memoizedProps:$o(n.type,t.memoizedProps),e.componentDidUpdate(r,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),void(null!==(t=n.updateQueue)&&ca(n,t,e));case 3:if(null!==(t=n.updateQueue)){if(e=null,null!==n.child)switch(n.child.tag){case 5:e=n.child.stateNode;break;case 1:e=n.child.stateNode}ca(n,t,e)}return;case 5:return e=n.stateNode,void(null===t&&4&n.flags&&Fr(n.type,n.memoizedProps)&&e.focus());case 6:case 4:case 12:return;case 13:return void(null===n.memoizedState&&(n=n.alternate,null!==n&&(n=n.memoizedState,null!==n&&(n=n.dehydrated,null!==n&&wt(n)))));case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(i(163))}function dl(e,t){for(var n=e;;){if(5===n.tag){var r=n.stateNode;if(t)"function"==typeof(r=r.style).setProperty?r.setProperty("display","none","important"):r.display="none";else{r=n.stateNode;var o=n.memoizedProps.style;o=null!=o&&o.hasOwnProperty("display")?o.display:null,r.style.display=_e("display",o)}}else if(6===n.tag)n.stateNode.nodeValue=t?"":n.memoizedProps;else if((23!==n.tag&&24!==n.tag||null===n.memoizedState||n===e)&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function pl(e,t){if(_o&&"function"==typeof _o.onCommitFiberUnmount)try{_o.onCommitFiberUnmount(yo,t)}catch(e){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var n=e=e.next;do{var r=n,o=r.destroy;if(r=r.tag,void 0!==o)if(0!=(4&r))Iu(t,n);else{r=t;try{o()}catch(e){Nu(r,e)}}n=n.next}while(n!==e)}break;case 1:if(sl(t),"function"==typeof(e=t.stateNode).componentWillUnmount)try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(e){Nu(t,e)}break;case 5:sl(t);break;case 4:gl(e,t)}}function ml(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function hl(e){return 5===e.tag||3===e.tag||4===e.tag}function vl(e){e:{for(var t=e.return;null!==t;){if(hl(t))break e;t=t.return}throw Error(i(160))}var n=t;switch(t=n.stateNode,n.tag){case 5:var r=!1;break;case 3:case 4:t=t.containerInfo,r=!0;break;default:throw Error(i(161))}16&n.flags&&(ge(t,""),n.flags&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||hl(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.flags)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.flags)){n=n.stateNode;break e}}r?function e(t,n,r){var o=t.tag,a=5===o||6===o;if(a)t=a?t.stateNode:t.stateNode.instance,n?8===r.nodeType?r.parentNode.insertBefore(t,n):r.insertBefore(t,n):(8===r.nodeType?(n=r.parentNode).insertBefore(t,r):(n=r).appendChild(t),null!==(r=r._reactRootContainer)&&void 0!==r||null!==n.onclick||(n.onclick=Ar));else if(4!==o&&null!==(t=t.child))for(e(t,n,r),t=t.sibling;null!==t;)e(t,n,r),t=t.sibling}(e,n,t):function e(t,n,r){var o=t.tag,a=5===o||6===o;if(a)t=a?t.stateNode:t.stateNode.instance,n?r.insertBefore(t,n):r.appendChild(t);else if(4!==o&&null!==(t=t.child))for(e(t,n,r),t=t.sibling;null!==t;)e(t,n,r),t=t.sibling}(e,n,t)}function gl(e,t){for(var n,r,o=t,a=!1;;){if(!a){a=o.return;e:for(;;){if(null===a)throw Error(i(160));switch(n=a.stateNode,a.tag){case 5:r=!1;break e;case 3:case 4:n=n.containerInfo,r=!0;break e}a=a.return}a=!0}if(5===o.tag||6===o.tag){e:for(var l=e,u=o,s=u;;)if(pl(l,s),null!==s.child&&4!==s.tag)s.child.return=s,s=s.child;else{if(s===u)break e;for(;null===s.sibling;){if(null===s.return||s.return===u)break e;s=s.return}s.sibling.return=s.return,s=s.sibling}r?(l=n,u=o.stateNode,8===l.nodeType?l.parentNode.removeChild(u):l.removeChild(u)):n.removeChild(o.stateNode)}else if(4===o.tag){if(null!==o.child){n=o.stateNode.containerInfo,r=!0,o.child.return=o,o=o.child;continue}}else if(pl(e,o),null!==o.child){o.child.return=o,o=o.child;continue}if(o===t)break;for(;null===o.sibling;){if(null===o.return||o.return===t)return;4===(o=o.return).tag&&(a=!1)}o.sibling.return=o.return,o=o.sibling}}function bl(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:var n=t.updateQueue;if(null!==(n=null!==n?n.lastEffect:null)){var r=n=n.next;do{3==(3&r.tag)&&(e=r.destroy,r.destroy=void 0,void 0!==e&&e()),r=r.next}while(r!==n)}return;case 1:return;case 5:if(null!=(n=t.stateNode)){r=t.memoizedProps;var o=null!==e?e.memoizedProps:r;e=t.type;var a=t.updateQueue;if(t.updateQueue=null,null!==a){for(n[Yr]=r,"input"===e&&"radio"===r.type&&null!=r.name&&te(n,r),xe(e,o),t=xe(e,r),o=0;o<a.length;o+=2){var l=a[o],u=a[o+1];"style"===l?we(n,u):"dangerouslySetInnerHTML"===l?ve(n,u):"children"===l?ge(n,u):_(n,l,u,t)}switch(e){case"input":ne(n,r);break;case"textarea":se(n,r);break;case"select":e=n._wrapperState.wasMultiple,n._wrapperState.wasMultiple=!!r.multiple,null!=(a=r.value)?ie(n,!!r.multiple,a,!1):e!==!!r.multiple&&(null!=r.defaultValue?ie(n,!!r.multiple,r.defaultValue,!0):ie(n,!!r.multiple,r.multiple?[]:"",!1))}}}return;case 6:if(null===t.stateNode)throw Error(i(162));return void(t.stateNode.nodeValue=t.memoizedProps);case 3:return void((n=t.stateNode).hydrate&&(n.hydrate=!1,wt(n.containerInfo)));case 12:return;case 13:return null!==t.memoizedState&&(Ml=Bo(),dl(t.child,!0)),void yl(t);case 19:return void yl(t);case 17:return;case 23:case 24:return void dl(t,null!==t.memoizedState)}throw Error(i(163))}function yl(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new ul),t.forEach((function(t){var r=Lu.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function _l(e,t){return null!==e&&(null===(e=e.memoizedState)||null!==e.dehydrated)&&(null!==(t=t.memoizedState)&&null===t.dehydrated)}var wl=Math.ceil,El=w.ReactCurrentDispatcher,Sl=w.ReactCurrentOwner,xl=0,Ol=null,Cl=null,kl=0,Pl=0,Il=oo(0),Dl=0,Rl=null,Nl=0,Tl=0,Ll=0,Al=0,jl=null,Ml=0,Fl=1/0;function Bl(){Fl=Bo()+500}var Vl,Ul=null,zl=!1,Hl=null,Wl=null,Gl=!1,ql=null,$l=90,Yl=[],Ql=[],Kl=null,Xl=0,Jl=null,Zl=-1,eu=0,tu=0,nu=null,ru=!1;function ou(){return 0!=(48&xl)?Bo():-1!==Zl?Zl:Zl=Bo()}function au(e){if(0==(2&(e=e.mode)))return 1;if(0==(4&e))return 99===Vo()?1:2;if(0===eu&&(eu=Nl),0!==qo.transition){0!==tu&&(tu=null!==jl?jl.pendingLanes:0),e=eu;var t=4186112&~tu;return 0===(t&=-t)&&(0===(t=(e=4186112&~e)&-e)&&(t=8192)),t}return e=Vo(),0!=(4&xl)&&98===e?e=Bt(12,eu):e=Bt(e=function(e){switch(e){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}(e),eu),e}function iu(e,t,n){if(50<Xl)throw Xl=0,Jl=null,Error(i(185));if(null===(e=lu(e,t)))return null;zt(e,t,n),e===Ol&&(Ll|=t,4===Dl&&cu(e,kl));var r=Vo();1===t?0!=(8&xl)&&0==(48&xl)?fu(e):(uu(e,n),0===xl&&(Bl(),Wo())):(0==(4&xl)||98!==r&&99!==r||(null===Kl?Kl=new Set([e]):Kl.add(e)),uu(e,n)),jl=e}function lu(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}function uu(e,t){for(var n=e.callbackNode,r=e.suspendedLanes,o=e.pingedLanes,a=e.expirationTimes,l=e.pendingLanes;0<l;){var u=31-Ht(l),s=1<<u,c=a[u];if(-1===c){if(0==(s&r)||0!=(s&o)){c=t,jt(s);var f=At;a[u]=10<=f?c+250:6<=f?c+5e3:-1}}else c<=t&&(e.expiredLanes|=s);l&=~s}if(r=Mt(e,e===Ol?kl:0),t=At,0===r)null!==n&&(n!==To&&So(n),e.callbackNode=null,e.callbackPriority=0);else{if(null!==n){if(e.callbackPriority===t)return;n!==To&&So(n)}15===t?(n=fu.bind(null,e),null===Ao?(Ao=[n],jo=Eo(Po,Go)):Ao.push(n),n=To):14===t?n=Ho(99,fu.bind(null,e)):n=Ho(n=function(e){switch(e){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(i(358,e))}}(t),su.bind(null,e)),e.callbackPriority=t,e.callbackNode=n}}function su(e){if(Zl=-1,tu=eu=0,0!=(48&xl))throw Error(i(327));var t=e.callbackNode;if(ku()&&e.callbackNode!==t)return null;var n=Mt(e,e===Ol?kl:0);if(0===n)return null;var r=n,o=xl;xl|=16;var a=bu();for(Ol===e&&kl===r||(Bl(),vu(e,r));;)try{wu();break}catch(t){gu(e,t)}if(Jo(),El.current=a,xl=o,null!==Cl?r=0:(Ol=null,kl=0,r=Dl),0!=(Nl&Ll))vu(e,0);else if(0!==r){if(2===r&&(xl|=64,e.hydrate&&(e.hydrate=!1,zr(e.containerInfo)),0!==(n=Ft(e))&&(r=yu(e,n))),1===r)throw t=Rl,vu(e,0),cu(e,n),uu(e,Bo()),t;switch(e.finishedWork=e.current.alternate,e.finishedLanes=n,r){case 0:case 1:throw Error(i(345));case 2:xu(e);break;case 3:if(cu(e,n),(62914560&n)===n&&10<(r=Ml+500-Bo())){if(0!==Mt(e,0))break;if(((o=e.suspendedLanes)&n)!==n){ou(),e.pingedLanes|=e.suspendedLanes&o;break}e.timeoutHandle=Vr(xu.bind(null,e),r);break}xu(e);break;case 4:if(cu(e,n),(4186112&n)===n)break;for(r=e.eventTimes,o=-1;0<n;){var l=31-Ht(n);a=1<<l,(l=r[l])>o&&(o=l),n&=~a}if(n=o,10<(n=(120>(n=Bo()-n)?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*wl(n/1960))-n)){e.timeoutHandle=Vr(xu.bind(null,e),n);break}xu(e);break;case 5:xu(e);break;default:throw Error(i(329))}}return uu(e,Bo()),e.callbackNode===t?su.bind(null,e):null}function cu(e,t){for(t&=~Al,t&=~Ll,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-Ht(t),r=1<<n;e[n]=-1,t&=~r}}function fu(e){if(0!=(48&xl))throw Error(i(327));if(ku(),e===Ol&&0!=(e.expiredLanes&kl)){var t=kl,n=yu(e,t);0!=(Nl&Ll)&&(n=yu(e,t=Mt(e,t)))}else n=yu(e,t=Mt(e,0));if(0!==e.tag&&2===n&&(xl|=64,e.hydrate&&(e.hydrate=!1,zr(e.containerInfo)),0!==(t=Ft(e))&&(n=yu(e,t))),1===n)throw n=Rl,vu(e,0),cu(e,t),uu(e,Bo()),n;return e.finishedWork=e.current.alternate,e.finishedLanes=t,xu(e),uu(e,Bo()),null}function du(e,t){var n=xl;xl|=1;try{return e(t)}finally{0===(xl=n)&&(Bl(),Wo())}}function pu(e,t){var n=xl;xl&=-2,xl|=8;try{return e(t)}finally{0===(xl=n)&&(Bl(),Wo())}}function mu(e,t){io(Il,Pl),Pl|=t,Nl|=t}function hu(){Pl=Il.current,ao(Il)}function vu(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,Ur(n)),null!==Cl)for(n=Cl.return;null!==n;){var r=n;switch(r.tag){case 1:null!=(r=r.type.childContextTypes)&&mo();break;case 3:Da(),ao(so),ao(uo),Ga();break;case 5:Na(r);break;case 4:Da();break;case 13:case 19:ao(Ta);break;case 10:Zo(r);break;case 23:case 24:hu()}n=n.return}Ol=e,Cl=Fu(e.current,null),kl=Pl=Nl=t,Dl=0,Rl=null,Al=Ll=Tl=0}function gu(e,t){for(;;){var n=Cl;try{if(Jo(),qa.current=ki,Ja){for(var r=Qa.memoizedState;null!==r;){var o=r.queue;null!==o&&(o.pending=null),r=r.next}Ja=!1}if(Ya=0,Xa=Ka=Qa=null,Za=!1,Sl.current=null,null===n||null===n.return){Dl=1,Rl=t,Cl=null;break}e:{var a=e,i=n.return,l=n,u=t;if(t=kl,l.flags|=2048,l.firstEffect=l.lastEffect=null,null!==u&&"object"==typeof u&&"function"==typeof u.then){var s=u;if(0==(2&l.mode)){var c=l.alternate;c?(l.updateQueue=c.updateQueue,l.memoizedState=c.memoizedState,l.lanes=c.lanes):(l.updateQueue=null,l.memoizedState=null)}var f=0!=(1&Ta.current),d=i;do{var p;if(p=13===d.tag){var m=d.memoizedState;if(null!==m)p=null!==m.dehydrated;else{var h=d.memoizedProps;p=void 0!==h.fallback&&(!0!==h.unstable_avoidThisFallback||!f)}}if(p){var v=d.updateQueue;if(null===v){var g=new Set;g.add(s),d.updateQueue=g}else v.add(s);if(0==(2&d.mode)){if(d.flags|=64,l.flags|=16384,l.flags&=-2981,1===l.tag)if(null===l.alternate)l.tag=17;else{var b=ia(-1,1);b.tag=2,la(l,b)}l.lanes|=1;break e}u=void 0,l=t;var y=a.pingCache;if(null===y?(y=a.pingCache=new al,u=new Set,y.set(s,u)):void 0===(u=y.get(s))&&(u=new Set,y.set(s,u)),!u.has(l)){u.add(l);var _=Tu.bind(null,a,s,l);s.then(_,_)}d.flags|=4096,d.lanes=t;break e}d=d.return}while(null!==d);u=Error(($(l.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.")}5!==Dl&&(Dl=2),u=ol(u,l),d=i;do{switch(d.tag){case 3:a=u,d.flags|=4096,t&=-t,d.lanes|=t,ua(d,il(0,a,t));break e;case 1:a=u;var w=d.type,E=d.stateNode;if(0==(64&d.flags)&&("function"==typeof w.getDerivedStateFromError||null!==E&&"function"==typeof E.componentDidCatch&&(null===Wl||!Wl.has(E)))){d.flags|=4096,t&=-t,d.lanes|=t,ua(d,ll(d,a,t));break e}}d=d.return}while(null!==d)}Su(n)}catch(e){t=e,Cl===n&&null!==n&&(Cl=n=n.return);continue}break}}function bu(){var e=El.current;return El.current=ki,null===e?ki:e}function yu(e,t){var n=xl;xl|=16;var r=bu();for(Ol===e&&kl===t||vu(e,t);;)try{_u();break}catch(t){gu(e,t)}if(Jo(),xl=n,El.current=r,null!==Cl)throw Error(i(261));return Ol=null,kl=0,Dl}function _u(){for(;null!==Cl;)Eu(Cl)}function wu(){for(;null!==Cl&&!xo();)Eu(Cl)}function Eu(e){var t=Vl(e.alternate,e,Pl);e.memoizedProps=e.pendingProps,null===t?Su(e):Cl=t,Sl.current=null}function Su(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(2048&t.flags)){if(null!==(n=nl(n,t,Pl)))return void(Cl=n);if(24!==(n=t).tag&&23!==n.tag||null===n.memoizedState||0!=(1073741824&Pl)||0==(4&n.mode)){for(var r=0,o=n.child;null!==o;)r|=o.lanes|o.childLanes,o=o.sibling;n.childLanes=r}null!==e&&0==(2048&e.flags)&&(null===e.firstEffect&&(e.firstEffect=t.firstEffect),null!==t.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1<t.flags&&(null!==e.lastEffect?e.lastEffect.nextEffect=t:e.firstEffect=t,e.lastEffect=t))}else{if(null!==(n=rl(t)))return n.flags&=2047,void(Cl=n);null!==e&&(e.firstEffect=e.lastEffect=null,e.flags|=2048)}if(null!==(t=t.sibling))return void(Cl=t);Cl=t=e}while(null!==t);0===Dl&&(Dl=5)}function xu(e){var t=Vo();return zo(99,Ou.bind(null,e,t)),null}function Ou(e,t){do{ku()}while(null!==ql);if(0!=(48&xl))throw Error(i(327));var n=e.finishedWork;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(i(177));e.callbackNode=null;var r=n.lanes|n.childLanes,o=r,a=e.pendingLanes&~o;e.pendingLanes=o,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=o,e.mutableReadLanes&=o,e.entangledLanes&=o,o=e.entanglements;for(var l=e.eventTimes,u=e.expirationTimes;0<a;){var s=31-Ht(a),c=1<<s;o[s]=0,l[s]=-1,u[s]=-1,a&=~c}if(null!==Kl&&0==(24&r)&&Kl.has(e)&&Kl.delete(e),e===Ol&&(Cl=Ol=null,kl=0),1<n.flags?null!==n.lastEffect?(n.lastEffect.nextEffect=n,r=n.firstEffect):r=n:r=n.firstEffect,null!==r){if(o=xl,xl|=32,Sl.current=null,jr=Yt,dr(l=fr())){if("selectionStart"in l)u={start:l.selectionStart,end:l.selectionEnd};else e:if(u=(u=l.ownerDocument)&&u.defaultView||window,(c=u.getSelection&&u.getSelection())&&0!==c.rangeCount){u=c.anchorNode,a=c.anchorOffset,s=c.focusNode,c=c.focusOffset;try{u.nodeType,s.nodeType}catch(e){u=null;break e}var f=0,d=-1,p=-1,m=0,h=0,v=l,g=null;t:for(;;){for(var b;v!==u||0!==a&&3!==v.nodeType||(d=f+a),v!==s||0!==c&&3!==v.nodeType||(p=f+c),3===v.nodeType&&(f+=v.nodeValue.length),null!==(b=v.firstChild);)g=v,v=b;for(;;){if(v===l)break t;if(g===u&&++m===a&&(d=f),g===s&&++h===c&&(p=f),null!==(b=v.nextSibling))break;g=(v=g).parentNode}v=b}u=-1===d||-1===p?null:{start:d,end:p}}else u=null;u=u||{start:0,end:0}}else u=null;Mr={focusedElem:l,selectionRange:u},Yt=!1,nu=null,ru=!1,Ul=r;do{try{Cu()}catch(e){if(null===Ul)throw Error(i(330));Nu(Ul,e),Ul=Ul.nextEffect}}while(null!==Ul);nu=null,Ul=r;do{try{for(l=e;null!==Ul;){var y=Ul.flags;if(16&y&&ge(Ul.stateNode,""),128&y){var _=Ul.alternate;if(null!==_){var w=_.ref;null!==w&&("function"==typeof w?w(null):w.current=null)}}switch(1038&y){case 2:vl(Ul),Ul.flags&=-3;break;case 6:vl(Ul),Ul.flags&=-3,bl(Ul.alternate,Ul);break;case 1024:Ul.flags&=-1025;break;case 1028:Ul.flags&=-1025,bl(Ul.alternate,Ul);break;case 4:bl(Ul.alternate,Ul);break;case 8:gl(l,u=Ul);var E=u.alternate;ml(u),null!==E&&ml(E)}Ul=Ul.nextEffect}}catch(e){if(null===Ul)throw Error(i(330));Nu(Ul,e),Ul=Ul.nextEffect}}while(null!==Ul);if(w=Mr,_=fr(),y=w.focusedElem,l=w.selectionRange,_!==y&&y&&y.ownerDocument&&function e(t,n){return!(!t||!n)&&(t===n||(!t||3!==t.nodeType)&&(n&&3===n.nodeType?e(t,n.parentNode):"contains"in t?t.contains(n):!!t.compareDocumentPosition&&!!(16&t.compareDocumentPosition(n))))}(y.ownerDocument.documentElement,y)){null!==l&&dr(y)&&(_=l.start,void 0===(w=l.end)&&(w=_),"selectionStart"in y?(y.selectionStart=_,y.selectionEnd=Math.min(w,y.value.length)):(w=(_=y.ownerDocument||document)&&_.defaultView||window).getSelection&&(w=w.getSelection(),u=y.textContent.length,E=Math.min(l.start,u),l=void 0===l.end?E:Math.min(l.end,u),!w.extend&&E>l&&(u=l,l=E,E=u),u=cr(y,E),a=cr(y,l),u&&a&&(1!==w.rangeCount||w.anchorNode!==u.node||w.anchorOffset!==u.offset||w.focusNode!==a.node||w.focusOffset!==a.offset)&&((_=_.createRange()).setStart(u.node,u.offset),w.removeAllRanges(),E>l?(w.addRange(_),w.extend(a.node,a.offset)):(_.setEnd(a.node,a.offset),w.addRange(_))))),_=[];for(w=y;w=w.parentNode;)1===w.nodeType&&_.push({element:w,left:w.scrollLeft,top:w.scrollTop});for("function"==typeof y.focus&&y.focus(),y=0;y<_.length;y++)(w=_[y]).element.scrollLeft=w.left,w.element.scrollTop=w.top}Yt=!!jr,Mr=jr=null,e.current=n,Ul=r;do{try{for(y=e;null!==Ul;){var S=Ul.flags;if(36&S&&fl(y,Ul.alternate,Ul),128&S){_=void 0;var x=Ul.ref;if(null!==x){var O=Ul.stateNode;switch(Ul.tag){case 5:_=O;break;default:_=O}"function"==typeof x?x(_):x.current=_}}Ul=Ul.nextEffect}}catch(e){if(null===Ul)throw Error(i(330));Nu(Ul,e),Ul=Ul.nextEffect}}while(null!==Ul);Ul=null,Lo(),xl=o}else e.current=n;if(Gl)Gl=!1,ql=e,$l=t;else for(Ul=r;null!==Ul;)t=Ul.nextEffect,Ul.nextEffect=null,8&Ul.flags&&((S=Ul).sibling=null,S.stateNode=null),Ul=t;if(0===(r=e.pendingLanes)&&(Wl=null),1===r?e===Jl?Xl++:(Xl=0,Jl=e):Xl=0,n=n.stateNode,_o&&"function"==typeof _o.onCommitFiberRoot)try{_o.onCommitFiberRoot(yo,n,void 0,64==(64&n.current.flags))}catch(e){}if(uu(e,Bo()),zl)throw zl=!1,e=Hl,Hl=null,e;return 0!=(8&xl)||Wo(),null}function Cu(){for(;null!==Ul;){var e=Ul.alternate;ru||null===nu||(0!=(8&Ul.flags)?Ze(Ul,nu)&&(ru=!0):13===Ul.tag&&_l(e,Ul)&&Ze(Ul,nu)&&(ru=!0));var t=Ul.flags;0!=(256&t)&&cl(e,Ul),0==(512&t)||Gl||(Gl=!0,Ho(97,(function(){return ku(),null}))),Ul=Ul.nextEffect}}function ku(){if(90!==$l){var e=97<$l?97:$l;return $l=90,zo(e,Du)}return!1}function Pu(e,t){Yl.push(t,e),Gl||(Gl=!0,Ho(97,(function(){return ku(),null})))}function Iu(e,t){Ql.push(t,e),Gl||(Gl=!0,Ho(97,(function(){return ku(),null})))}function Du(){if(null===ql)return!1;var e=ql;if(ql=null,0!=(48&xl))throw Error(i(331));var t=xl;xl|=32;var n=Ql;Ql=[];for(var r=0;r<n.length;r+=2){var o=n[r],a=n[r+1],l=o.destroy;if(o.destroy=void 0,"function"==typeof l)try{l()}catch(e){if(null===a)throw Error(i(330));Nu(a,e)}}for(n=Yl,Yl=[],r=0;r<n.length;r+=2){o=n[r],a=n[r+1];try{var u=o.create;o.destroy=u()}catch(e){if(null===a)throw Error(i(330));Nu(a,e)}}for(u=e.current.firstEffect;null!==u;)e=u.nextEffect,u.nextEffect=null,8&u.flags&&(u.sibling=null,u.stateNode=null),u=e;return xl=t,Wo(),!0}function Ru(e,t,n){la(e,t=il(0,t=ol(n,t),1)),t=ou(),null!==(e=lu(e,1))&&(zt(e,1,t),uu(e,t))}function Nu(e,t){if(3===e.tag)Ru(e,e,t);else for(var n=e.return;null!==n;){if(3===n.tag){Ru(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Wl||!Wl.has(r))){var o=ll(n,e=ol(t,e),1);if(la(n,o),o=ou(),null!==(n=lu(n,1)))zt(n,1,o),uu(n,o);else if("function"==typeof r.componentDidCatch&&(null===Wl||!Wl.has(r)))try{r.componentDidCatch(t,e)}catch(e){}break}}n=n.return}}function Tu(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=ou(),e.pingedLanes|=e.suspendedLanes&n,Ol===e&&(kl&n)===n&&(4===Dl||3===Dl&&(62914560&kl)===kl&&500>Bo()-Ml?vu(e,0):Al|=n),uu(e,t)}function Lu(e,t){var n=e.stateNode;null!==n&&n.delete(t),0===(t=0)&&(0==(2&(t=e.mode))?t=1:0==(4&t)?t=99===Vo()?1:2:(0===eu&&(eu=Nl),0===(t=Vt(62914560&~eu))&&(t=4194304))),n=ou(),null!==(e=lu(e,t))&&(zt(e,t,n),uu(e,n))}function Au(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.flags=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childLanes=this.lanes=0,this.alternate=null}function ju(e,t,n,r){return new Au(e,t,n,r)}function Mu(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Fu(e,t){var n=e.alternate;return null===n?((n=ju(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Bu(e,t,n,r,o,a){var l=2;if(r=e,"function"==typeof e)Mu(e)&&(l=1);else if("string"==typeof e)l=5;else e:switch(e){case x:return Vu(n.children,o,a,t);case j:l=8,o|=16;break;case O:l=8,o|=1;break;case C:return(e=ju(12,n,t,8|o)).elementType=C,e.type=C,e.lanes=a,e;case D:return(e=ju(13,n,t,o)).type=D,e.elementType=D,e.lanes=a,e;case R:return(e=ju(19,n,t,o)).elementType=R,e.lanes=a,e;case M:return Uu(n,o,a,t);case F:return(e=ju(24,n,t,o)).elementType=F,e.lanes=a,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case k:l=10;break e;case P:l=9;break e;case I:l=11;break e;case N:l=14;break e;case T:l=16,r=null;break e;case L:l=22;break e}throw Error(i(130,null==e?e:typeof e,""))}return(t=ju(l,n,t,o)).elementType=e,t.type=r,t.lanes=a,t}function Vu(e,t,n,r){return(e=ju(7,e,r,t)).lanes=n,e}function Uu(e,t,n,r){return(e=ju(23,e,r,t)).elementType=M,e.lanes=n,e}function zu(e,t,n){return(e=ju(6,e,null,t)).lanes=n,e}function Hu(e,t,n){return(t=ju(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Wu(e,t,n){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=n,this.callbackNode=null,this.callbackPriority=0,this.eventTimes=Ut(0),this.expirationTimes=Ut(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Ut(0),this.mutableSourceEagerHydrationData=null}function Gu(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:S,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}function qu(e,t,n,r){var o=t.current,a=ou(),l=au(o);e:if(n){t:{if(Qe(n=n._reactInternals)!==n||1!==n.tag)throw Error(i(170));var u=n;do{switch(u.tag){case 3:u=u.stateNode.context;break t;case 1:if(po(u.type)){u=u.stateNode.__reactInternalMemoizedMergedChildContext;break t}}u=u.return}while(null!==u);throw Error(i(171))}if(1===n.tag){var s=n.type;if(po(s)){n=vo(n,s,u);break e}}n=u}else n=lo;return null===t.context?t.context=n:t.pendingContext=n,(t=ia(a,l)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),la(o,t),iu(o,l,a),l}function $u(e){if(!(e=e.current).child)return null;switch(e.child.tag){case 5:default:return e.child.stateNode}}function Yu(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function Qu(e,t){Yu(e,t),(e=e.alternate)&&Yu(e,t)}function Ku(e,t,n){var r=null!=n&&null!=n.hydrationOptions&&n.hydrationOptions.mutableSources||null;if(n=new Wu(e,t,null!=n&&!0===n.hydrate),t=ju(3,null,null,2===t?7:1===t?3:0),n.current=t,t.stateNode=n,oa(t),e[Qr]=n.current,kr(8===e.nodeType?e.parentNode:e),r)for(e=0;e<r.length;e++){var o=(t=r[e])._getVersion;o=o(t._source),null==n.mutableSourceEagerHydrationData?n.mutableSourceEagerHydrationData=[t,o]:n.mutableSourceEagerHydrationData.push(t,o)}this._internalRoot=n}function Xu(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function Ju(e,t,n,r,o){var a=n._reactRootContainer;if(a){var i=a._internalRoot;if("function"==typeof o){var l=o;o=function(){var e=$u(i);l.call(e)}}qu(t,i,e,o)}else{if(a=n._reactRootContainer=function(e,t){if(t||(t=!(!(t=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new Ku(e,0,t?{hydrate:!0}:void 0)}(n,r),i=a._internalRoot,"function"==typeof o){var u=o;o=function(){var e=$u(i);u.call(e)}}pu((function(){qu(t,i,e,o)}))}return $u(i)}function Zu(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!Xu(t))throw Error(i(200));return Gu(e,t,null,n)}Vl=function(e,t,n){var r=t.lanes;if(null!==e)if(e.memoizedProps!==t.pendingProps||so.current)Ni=!0;else{if(0==(n&r)){switch(Ni=!1,t.tag){case 3:zi(t),Ha();break;case 5:Ra(t);break;case 1:po(t.type)&&go(t);break;case 4:Ia(t,t.stateNode.containerInfo);break;case 10:r=t.memoizedProps.value;var o=t.type._context;io(Yo,o._currentValue),o._currentValue=r;break;case 13:if(null!==t.memoizedState)return 0!=(n&t.child.childLanes)?$i(e,t,n):(io(Ta,1&Ta.current),null!==(t=el(e,t,n))?t.sibling:null);io(Ta,1&Ta.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(64&e.flags)){if(r)return Zi(e,t,n);t.flags|=64}if(null!==(o=t.memoizedState)&&(o.rendering=null,o.tail=null,o.lastEffect=null),io(Ta,Ta.current),r)break;return null;case 23:case 24:return t.lanes=0,Mi(e,t,n)}return el(e,t,n)}Ni=0!=(16384&e.flags)}else Ni=!1;switch(t.lanes=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,o=fo(t,uo.current),ta(t,n),o=ni(null,t,r,e,o,n),t.flags|=1,"object"==typeof o&&null!==o&&"function"==typeof o.render&&void 0===o.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,po(r)){var a=!0;go(t)}else a=!1;t.memoizedState=null!==o.state&&void 0!==o.state?o.state:null,oa(t);var l=r.getDerivedStateFromProps;"function"==typeof l&&da(t,r,l,e),o.updater=pa,t.stateNode=o,o._reactInternals=t,ga(t,r,e,n),t=Ui(null,t,r,!0,a,n)}else t.tag=0,Ti(null,t,o,n),t=t.child;return t;case 16:o=t.elementType;e:{switch(null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,o=(a=o._init)(o._payload),t.type=o,a=t.tag=function(e){if("function"==typeof e)return Mu(e)?1:0;if(null!=e){if((e=e.$$typeof)===I)return 11;if(e===N)return 14}return 2}(o),e=$o(o,e),a){case 0:t=Bi(null,t,o,e,n);break e;case 1:t=Vi(null,t,o,e,n);break e;case 11:t=Li(null,t,o,e,n);break e;case 14:t=Ai(null,t,o,$o(o.type,e),r,n);break e}throw Error(i(306,o,""))}return t;case 0:return r=t.type,o=t.pendingProps,Bi(e,t,r,o=t.elementType===r?o:$o(r,o),n);case 1:return r=t.type,o=t.pendingProps,Vi(e,t,r,o=t.elementType===r?o:$o(r,o),n);case 3:if(zi(t),r=t.updateQueue,null===e||null===r)throw Error(i(282));if(r=t.pendingProps,o=null!==(o=t.memoizedState)?o.element:null,aa(e,t),sa(t,r,null,n),(r=t.memoizedState.element)===o)Ha(),t=el(e,t,n);else{if((a=(o=t.stateNode).hydrate)&&(ja=Hr(t.stateNode.containerInfo.firstChild),Aa=t,a=Ma=!0),a){if(null!=(e=o.mutableSourceEagerHydrationData))for(o=0;o<e.length;o+=2)(a=e[o])._workInProgressVersionPrimary=e[o+1],Wa.push(a);for(n=Sa(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|1024,n=n.sibling}else Ti(e,t,r,n),Ha();t=t.child}return t;case 5:return Ra(t),null===e&&Va(t),r=t.type,o=t.pendingProps,a=null!==e?e.memoizedProps:null,l=o.children,Br(r,o)?l=null:null!==a&&Br(r,a)&&(t.flags|=16),Fi(e,t),Ti(e,t,l,n),t.child;case 6:return null===e&&Va(t),null;case 13:return $i(e,t,n);case 4:return Ia(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Ea(t,null,r,n):Ti(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,Li(e,t,r,o=t.elementType===r?o:$o(r,o),n);case 7:return Ti(e,t,t.pendingProps,n),t.child;case 8:case 12:return Ti(e,t,t.pendingProps.children,n),t.child;case 10:e:{r=t.type._context,o=t.pendingProps,l=t.memoizedProps,a=o.value;var u=t.type._context;if(io(Yo,u._currentValue),u._currentValue=a,null!==l)if(u=l.value,0===(a=ir(u,a)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(u,a):1073741823))){if(l.children===o.children&&!so.current){t=el(e,t,n);break e}}else for(null!==(u=t.child)&&(u.return=t);null!==u;){var s=u.dependencies;if(null!==s){l=u.child;for(var c=s.firstContext;null!==c;){if(c.context===r&&0!=(c.observedBits&a)){1===u.tag&&((c=ia(-1,n&-n)).tag=2,la(u,c)),u.lanes|=n,null!==(c=u.alternate)&&(c.lanes|=n),ea(u.return,n),s.lanes|=n;break}c=c.next}}else l=10===u.tag&&u.type===t.type?null:u.child;if(null!==l)l.return=u;else for(l=u;null!==l;){if(l===t){l=null;break}if(null!==(u=l.sibling)){u.return=l.return,l=u;break}l=l.return}u=l}Ti(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=(a=t.pendingProps).children,ta(t,n),r=r(o=na(o,a.unstable_observedBits)),t.flags|=1,Ti(e,t,r,n),t.child;case 14:return a=$o(o=t.type,t.pendingProps),Ai(e,t,o,a=$o(o.type,a),r,n);case 15:return ji(e,t,t.type,t.pendingProps,r,n);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:$o(r,o),null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),t.tag=1,po(r)?(e=!0,go(t)):e=!1,ta(t,n),ha(t,r,o),ga(t,r,o,n),Ui(null,t,r,!0,e,n);case 19:return Zi(e,t,n);case 23:case 24:return Mi(e,t,n)}throw Error(i(156,t.tag))},Ku.prototype.render=function(e){qu(e,this._internalRoot,null,null)},Ku.prototype.unmount=function(){var e=this._internalRoot,t=e.containerInfo;qu(null,e,null,(function(){t[Qr]=null}))},et=function(e){13===e.tag&&(iu(e,4,ou()),Qu(e,4))},tt=function(e){13===e.tag&&(iu(e,67108864,ou()),Qu(e,67108864))},nt=function(e){if(13===e.tag){var t=ou(),n=au(e);iu(e,n,t),Qu(e,n)}},rt=function(e,t){return t()},Ce=function(e,t,n){switch(t){case"input":if(ne(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var o=eo(r);if(!o)throw Error(i(90));X(r),ne(r,o)}}}break;case"textarea":se(e,n);break;case"select":null!=(t=n.value)&&ie(e,!!n.multiple,t,!1)}},Ne=du,Te=function(e,t,n,r,o){var a=xl;xl|=4;try{return zo(98,e.bind(null,t,n,r,o))}finally{0===(xl=a)&&(Bl(),Wo())}},Le=function(){0==(49&xl)&&(function(){if(null!==Kl){var e=Kl;Kl=null,e.forEach((function(e){e.expiredLanes|=24&e.pendingLanes,uu(e,Bo())}))}Wo()}(),ku())},Ae=function(e,t){var n=xl;xl|=2;try{return e(t)}finally{0===(xl=n)&&(Bl(),Wo())}};var es={Events:[Jr,Zr,eo,De,Re,ku,{current:!1}]},ts={findFiberByHostInstance:Xr,bundleType:0,version:"17.0.1",rendererPackageName:"react-dom"},ns={bundleType:ts.bundleType,version:ts.version,rendererPackageName:ts.rendererPackageName,rendererConfig:ts.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:w.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Je(e))?null:e.stateNode},findFiberByHostInstance:ts.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var rs=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!rs.isDisabled&&rs.supportsFiber)try{yo=rs.inject(ns),_o=rs}catch(e){}}t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=es,t.createPortal=Zu,t.findDOMNode=function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternals;if(void 0===t){if("function"==typeof e.render)throw Error(i(188));throw Error(i(268,Object.keys(e)))}return e=null===(e=Je(t))?null:e.stateNode},t.flushSync=function(e,t){var n=xl;if(0!=(48&n))return e(t);xl|=1;try{if(e)return zo(99,e.bind(null,t))}finally{xl=n,Wo()}},t.hydrate=function(e,t,n){if(!Xu(t))throw Error(i(200));return Ju(null,e,t,!0,n)},t.render=function(e,t,n){if(!Xu(t))throw Error(i(200));return Ju(null,e,t,!1,n)},t.unmountComponentAtNode=function(e){if(!Xu(e))throw Error(i(40));return!!e._reactRootContainer&&(pu((function(){Ju(null,null,e,!1,(function(){e._reactRootContainer=null,e[Qr]=null}))})),!0)},t.unstable_batchedUpdates=du,t.unstable_createPortal=function(e,t){return Zu(e,t,2<arguments.length&&void 0!==arguments[2]?arguments[2]:null)},t.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!Xu(n))throw Error(i(200));if(null==e||void 0===e._reactInternals)throw Error(i(38));return Ju(e,t,n,!1,r)},t.version="17.0.1"},function(e,t,n){"use strict";e.exports=n(25)},function(e,t,n){"use strict";
23
+ /** @license React v0.20.1
24
+ * scheduler.production.min.js
25
+ *
26
+ * Copyright (c) Facebook, Inc. and its affiliates.
27
+ *
28
+ * This source code is licensed under the MIT license found in the
29
+ * LICENSE file in the root directory of this source tree.
30
+ */var r,o,a,i;if("object"==typeof performance&&"function"==typeof performance.now){var l=performance;t.unstable_now=function(){return l.now()}}else{var u=Date,s=u.now();t.unstable_now=function(){return u.now()-s}}if("undefined"==typeof window||"function"!=typeof MessageChannel){var c=null,f=null,d=function(){if(null!==c)try{var e=t.unstable_now();c(!0,e),c=null}catch(e){throw setTimeout(d,0),e}};r=function(e){null!==c?setTimeout(r,0,e):(c=e,setTimeout(d,0))},o=function(e,t){f=setTimeout(e,t)},a=function(){clearTimeout(f)},t.unstable_shouldYield=function(){return!1},i=t.unstable_forceFrameRate=function(){}}else{var p=window.setTimeout,m=window.clearTimeout;if("undefined"!=typeof console){window.cancelAnimationFrame;window.requestAnimationFrame}var h=!1,v=null,g=-1,b=5,y=0;t.unstable_shouldYield=function(){return t.unstable_now()>=y},i=function(){},t.unstable_forceFrameRate=function(e){0>e||125<e||(b=0<e?Math.floor(1e3/e):5)};var _=new MessageChannel,w=_.port2;_.port1.onmessage=function(){if(null!==v){var e=t.unstable_now();y=e+b;try{v(!0,e)?w.postMessage(null):(h=!1,v=null)}catch(e){throw w.postMessage(null),e}}else h=!1},r=function(e){v=e,h||(h=!0,w.postMessage(null))},o=function(e,n){g=p((function(){e(t.unstable_now())}),n)},a=function(){m(g),g=-1}}function E(e,t){var n=e.length;e.push(t);e:for(;;){var r=n-1>>>1,o=e[r];if(!(void 0!==o&&0<O(o,t)))break e;e[r]=t,e[n]=o,n=r}}function S(e){return void 0===(e=e[0])?null:e}function x(e){var t=e[0];if(void 0!==t){var n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,o=e.length;r<o;){var a=2*(r+1)-1,i=e[a],l=a+1,u=e[l];if(void 0!==i&&0>O(i,n))void 0!==u&&0>O(u,i)?(e[r]=u,e[l]=n,r=l):(e[r]=i,e[a]=n,r=a);else{if(!(void 0!==u&&0>O(u,n)))break e;e[r]=u,e[l]=n,r=l}}}return t}return null}function O(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var C=[],k=[],P=1,I=null,D=3,R=!1,N=!1,T=!1;function L(e){for(var t=S(k);null!==t;){if(null===t.callback)x(k);else{if(!(t.startTime<=e))break;x(k),t.sortIndex=t.expirationTime,E(C,t)}t=S(k)}}function A(e){if(T=!1,L(e),!N)if(null!==S(C))N=!0,r(j);else{var t=S(k);null!==t&&o(A,t.startTime-e)}}function j(e,n){N=!1,T&&(T=!1,a()),R=!0;var r=D;try{for(L(n),I=S(C);null!==I&&(!(I.expirationTime>n)||e&&!t.unstable_shouldYield());){var i=I.callback;if("function"==typeof i){I.callback=null,D=I.priorityLevel;var l=i(I.expirationTime<=n);n=t.unstable_now(),"function"==typeof l?I.callback=l:I===S(C)&&x(C),L(n)}else x(C);I=S(C)}if(null!==I)var u=!0;else{var s=S(k);null!==s&&o(A,s.startTime-n),u=!1}return u}finally{I=null,D=r,R=!1}}var M=i;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){N||R||(N=!0,r(j))},t.unstable_getCurrentPriorityLevel=function(){return D},t.unstable_getFirstCallbackNode=function(){return S(C)},t.unstable_next=function(e){switch(D){case 1:case 2:case 3:var t=3;break;default:t=D}var n=D;D=t;try{return e()}finally{D=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=M,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=D;D=e;try{return t()}finally{D=n}},t.unstable_scheduleCallback=function(e,n,i){var l=t.unstable_now();switch("object"==typeof i&&null!==i?i="number"==typeof(i=i.delay)&&0<i?l+i:l:i=l,e){case 1:var u=-1;break;case 2:u=250;break;case 5:u=1073741823;break;case 4:u=1e4;break;default:u=5e3}return e={id:P++,callback:n,priorityLevel:e,startTime:i,expirationTime:u=i+u,sortIndex:-1},i>l?(e.sortIndex=i,E(k,e),null===S(C)&&e===S(k)&&(T?a():T=!0,o(A,i-l))):(e.sortIndex=u,E(C,e),N||R||(N=!0,r(j))),e},t.unstable_wrapCallback=function(e){var t=D;return function(){var n=D;D=t;try{return e.apply(this,arguments)}finally{D=n}}}},function(e,t,n){"use strict";var r=n(1),o=n(9),a=n(27),i=n(15);function l(e){var t=new a(e),n=o(a.prototype.request,t);return r.extend(n,a.prototype,t),r.extend(n,t),n}var u=l(n(12));u.Axios=a,u.create=function(e){return l(i(u.defaults,e))},u.Cancel=n(16),u.CancelToken=n(41),u.isCancel=n(11),u.all=function(e){return Promise.all(e)},u.spread=n(42),u.isAxiosError=n(43),e.exports=u,e.exports.default=u},function(e,t,n){"use strict";var r=n(1),o=n(10),a=n(28),i=n(29),l=n(15);function u(e){this.defaults=e,this.interceptors={request:new a,response:new a}}u.prototype.request=function(e){"string"==typeof e?(e=arguments[1]||{}).url=arguments[0]:e=e||{},(e=l(this.defaults,e)).method?e.method=e.method.toLowerCase():this.defaults.method?e.method=this.defaults.method.toLowerCase():e.method="get";var t=[i,void 0],n=Promise.resolve(e);for(this.interceptors.request.forEach((function(e){t.unshift(e.fulfilled,e.rejected)})),this.interceptors.response.forEach((function(e){t.push(e.fulfilled,e.rejected)}));t.length;)n=n.then(t.shift(),t.shift());return n},u.prototype.getUri=function(e){return e=l(this.defaults,e),o(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},r.forEach(["delete","get","head","options"],(function(e){u.prototype[e]=function(t,n){return this.request(l(n||{},{method:e,url:t,data:(n||{}).data}))}})),r.forEach(["post","put","patch"],(function(e){u.prototype[e]=function(t,n,r){return this.request(l(r||{},{method:e,url:t,data:n}))}})),e.exports=u},function(e,t,n){"use strict";var r=n(1);function o(){this.handlers=[]}o.prototype.use=function(e,t){return this.handlers.push({fulfilled:e,rejected:t}),this.handlers.length-1},o.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},o.prototype.forEach=function(e){r.forEach(this.handlers,(function(t){null!==t&&e(t)}))},e.exports=o},function(e,t,n){"use strict";var r=n(1),o=n(30),a=n(11),i=n(12);function l(e){e.cancelToken&&e.cancelToken.throwIfRequested()}e.exports=function(e){return l(e),e.headers=e.headers||{},e.data=o(e.data,e.headers,e.transformRequest),e.headers=r.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),r.forEach(["delete","get","head","post","put","patch","common"],(function(t){delete e.headers[t]})),(e.adapter||i.adapter)(e).then((function(t){return l(e),t.data=o(t.data,t.headers,e.transformResponse),t}),(function(t){return a(t)||(l(e),t&&t.response&&(t.response.data=o(t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)}))}},function(e,t,n){"use strict";var r=n(1);e.exports=function(e,t,n){return r.forEach(n,(function(n){e=n(e,t)})),e}},function(e,t){var n,r,o=e.exports={};function a(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function l(e){if(n===setTimeout)return setTimeout(e,0);if((n===a||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:a}catch(e){n=a}try{r="function"==typeof clearTimeout?clearTimeout:i}catch(e){r=i}}();var u,s=[],c=!1,f=-1;function d(){c&&u&&(c=!1,u.length?s=u.concat(s):f=-1,s.length&&p())}function p(){if(!c){var e=l(d);c=!0;for(var t=s.length;t;){for(u=s,s=[];++f<t;)u&&u[f].run();f=-1,t=s.length}u=null,c=!1,function(e){if(r===clearTimeout)return clearTimeout(e);if((r===i||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(e);try{r(e)}catch(t){try{return r.call(null,e)}catch(t){return r.call(this,e)}}}(e)}}function m(e,t){this.fun=e,this.array=t}function h(){}o.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];s.push(new m(e,t)),1!==s.length||c||l(p)},m.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=h,o.addListener=h,o.once=h,o.off=h,o.removeListener=h,o.removeAllListeners=h,o.emit=h,o.prependListener=h,o.prependOnceListener=h,o.listeners=function(e){return[]},o.binding=function(e){throw new Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(e){throw new Error("process.chdir is not supported")},o.umask=function(){return 0}},function(e,t,n){"use strict";var r=n(1);e.exports=function(e,t){r.forEach(e,(function(n,r){r!==t&&r.toUpperCase()===t.toUpperCase()&&(e[t]=n,delete e[r])}))}},function(e,t,n){"use strict";var r=n(14);e.exports=function(e,t,n){var o=n.config.validateStatus;n.status&&o&&!o(n.status)?t(r("Request failed with status code "+n.status,n.config,null,n.request,n)):e(n)}},function(e,t,n){"use strict";e.exports=function(e,t,n,r,o){return e.config=t,n&&(e.code=n),e.request=r,e.response=o,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}},function(e,t,n){"use strict";var r=n(1);e.exports=r.isStandardBrowserEnv()?{write:function(e,t,n,o,a,i){var l=[];l.push(e+"="+encodeURIComponent(t)),r.isNumber(n)&&l.push("expires="+new Date(n).toGMTString()),r.isString(o)&&l.push("path="+o),r.isString(a)&&l.push("domain="+a),!0===i&&l.push("secure"),document.cookie=l.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},function(e,t,n){"use strict";var r=n(37),o=n(38);e.exports=function(e,t){return e&&!r(t)?o(e,t):t}},function(e,t,n){"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},function(e,t,n){"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},function(e,t,n){"use strict";var r=n(1),o=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,n,a,i={};return e?(r.forEach(e.split("\n"),(function(e){if(a=e.indexOf(":"),t=r.trim(e.substr(0,a)).toLowerCase(),n=r.trim(e.substr(a+1)),t){if(i[t]&&o.indexOf(t)>=0)return;i[t]="set-cookie"===t?(i[t]?i[t]:[]).concat([n]):i[t]?i[t]+", "+n:n}})),i):i}},function(e,t,n){"use strict";var r=n(1);e.exports=r.isStandardBrowserEnv()?function(){var e,t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");function o(e){var r=e;return t&&(n.setAttribute("href",r),r=n.href),n.setAttribute("href",r),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:"/"===n.pathname.charAt(0)?n.pathname:"/"+n.pathname}}return e=o(window.location.href),function(t){var n=r.isString(t)?o(t):t;return n.protocol===e.protocol&&n.host===e.host}}():function(){return!0}},function(e,t,n){"use strict";var r=n(16);function o(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise((function(e){t=e}));var n=this;e((function(e){n.reason||(n.reason=new r(e),t(n.reason))}))}o.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},o.source=function(){var e;return{token:new o((function(t){e=t})),cancel:e}},e.exports=o},function(e,t,n){"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}},function(e,t,n){"use strict";e.exports=function(e){return"object"==typeof e&&!0===e.isAxiosError}},function(e,t,n){var r=n(45),o=n(46),a=n(47),i=n(48);e.exports=function(e){return r(e)||o(e)||a(e)||i()}},function(e,t,n){var r=n(18);e.exports=function(e){if(Array.isArray(e))return r(e)}},function(e,t){e.exports=function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}},function(e,t,n){var r=n(18);e.exports=function(e,t){if(e){if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}}},function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}},function(e,t,n){var r=n(50);e.exports=function(e,t){if(null==e)return{};var n,o,a=r(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o<i.length;o++)n=i[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}},function(e,t){e.exports=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}},function(e,t){e.exports=function(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}},function(e,t,n){"use strict";var r=n(53);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:o};return n.PropTypes=n,n}},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t){e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},function(e,t){function n(t){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?e.exports=n=function(e){return typeof e}:e.exports=n=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(t)}e.exports=n},function(e,t,n){"use strict";
31
+ /** @license React v16.13.1
32
+ * react-is.production.min.js
33
+ *
34
+ * Copyright (c) Facebook, Inc. and its affiliates.
35
+ *
36
+ * This source code is licensed under the MIT license found in the
37
+ * LICENSE file in the root directory of this source tree.
38
+ */var r="function"==typeof Symbol&&Symbol.for,o=r?Symbol.for("react.element"):60103,a=r?Symbol.for("react.portal"):60106,i=r?Symbol.for("react.fragment"):60107,l=r?Symbol.for("react.strict_mode"):60108,u=r?Symbol.for("react.profiler"):60114,s=r?Symbol.for("react.provider"):60109,c=r?Symbol.for("react.context"):60110,f=r?Symbol.for("react.async_mode"):60111,d=r?Symbol.for("react.concurrent_mode"):60111,p=r?Symbol.for("react.forward_ref"):60112,m=r?Symbol.for("react.suspense"):60113,h=r?Symbol.for("react.suspense_list"):60120,v=r?Symbol.for("react.memo"):60115,g=r?Symbol.for("react.lazy"):60116,b=r?Symbol.for("react.block"):60121,y=r?Symbol.for("react.fundamental"):60117,_=r?Symbol.for("react.responder"):60118,w=r?Symbol.for("react.scope"):60119;function E(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case o:switch(e=e.type){case f:case d:case i:case u:case l:case m:return e;default:switch(e=e&&e.$$typeof){case c:case p:case g:case v:case s:return e;default:return t}}case a:return t}}}function S(e){return E(e)===d}t.AsyncMode=f,t.ConcurrentMode=d,t.ContextConsumer=c,t.ContextProvider=s,t.Element=o,t.ForwardRef=p,t.Fragment=i,t.Lazy=g,t.Memo=v,t.Portal=a,t.Profiler=u,t.StrictMode=l,t.Suspense=m,t.isAsyncMode=function(e){return S(e)||E(e)===f},t.isConcurrentMode=S,t.isContextConsumer=function(e){return E(e)===c},t.isContextProvider=function(e){return E(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===o},t.isForwardRef=function(e){return E(e)===p},t.isFragment=function(e){return E(e)===i},t.isLazy=function(e){return E(e)===g},t.isMemo=function(e){return E(e)===v},t.isPortal=function(e){return E(e)===a},t.isProfiler=function(e){return E(e)===u},t.isStrictMode=function(e){return E(e)===l},t.isSuspense=function(e){return E(e)===m},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===i||e===d||e===u||e===l||e===m||e===h||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===v||e.$$typeof===s||e.$$typeof===c||e.$$typeof===p||e.$$typeof===y||e.$$typeof===_||e.$$typeof===w||e.$$typeof===b)},t.typeOf=E},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t){e.exports=function(e){if(!e.webpackPolyfill){var t=Object.create(e);t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),Object.defineProperty(t,"exports",{enumerable:!0}),t.webpackPolyfill=1}return t}},function(e,t,n){"use strict";n.r(t);var r={};n.r(r),n.d(r,"CheckboxField",(function(){return Y})),n.d(r,"CheckboxListField",(function(){return ne})),n.d(r,"GroupField",(function(){return ce})),n.d(r,"HiddenField",(function(){return be})),n.d(r,"InfoField",(function(){return Ce})),n.d(r,"InfoAdvField",(function(){return Le})),n.d(r,"NumberField",(function(){return ze})),n.d(r,"RadioField",(function(){return Ke})),n.d(r,"RadioListField",(function(){return ot})),n.d(r,"RepeaterField",(function(){return dt})),n.d(r,"SelectField",(function(){return Qo})),n.d(r,"SelectMultiField",(function(){return ra})),n.d(r,"TextareaField",(function(){return fa})),n.d(r,"TextField",(function(){return ya}));var o=n(0),a=n.n(o),i=n(2),l=n.n(i),u=n(6),s=n.n(u);function c(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var f=function(){function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.api_url=t,this.header_nonce=n,this.requests={}}var t,n,r;return t=e,(n=[{key:"connect",value:function(e,t,n){var r=this;this.requests[n]&&this.requests[n].cancel();var o=s.a.CancelToken;this.requests[n]=o.source();var a={method:"POST",url:"".concat(this.api_url,"/").concat(e),headers:{"X-WP-Nonce":this.header_nonce},data:t,cancelToken:this.requests[n].token};return s()(a).then((function(e){var t={status:!0,response:e.data};return"get"===e.config.method&&(r.cache[cache_key]=t),t})).catch((function(e){return{status:!1,response:e.response?e.response.data.message:null}}))}}])&&c(t.prototype,n),r&&c(t,r),e}();function d(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var p=function(){function e(t,n,r,o,a,i){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.api_loader=t,this.field_data=n,this.form_values=r,this.section_fields=o,this.onUpdateStatus=a,this.onUpdateItems=i,this.cache={}}var t,n,r;return t=e,(n=[{key:"refreshItems",value:function(e,t){var n=this.field_data,r=this.form_values,o=n.endpoint_route,a=n.endpoint_params,i=this.getParamsForApi(a,r);(t||JSON.stringify(i)!==this.cache)&&(this.cache=JSON.stringify(i),this.loadItemsFromApi(o,i,e))}},{key:"getParamsForApi",value:function(e,t){for(var n={},r=e.length,o=0;o<r;o++)n[e[o]]=t[e[o]];return n}},{key:"loadItemsFromApi",value:function(e,t,n){var r=this.api_loader,o=this.section_fields,a=this.onUpdateStatus,i=this.onUpdateItems;a(!0),r.connect(e,{form_values:t,section_fields:o},n).then((function(e){a(!1),null!==e.response&&i(e.response)}))}}])&&d(t.prototype,n),r&&d(t,r),e}();function m(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var h=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}var t,n,r;return t=e,(n=[{key:"generateSlug",value:function(e){var t=e,n=this.getLettersToReplace();for(var r in n)t=t.replace(new RegExp(r,"g"),n[r]);return t=(t=(t=(t=t.replace(/\s/g,"_")).toLowerCase()).replace(/[^a-z0-9_]/gi,"")).replace(/[/_]{2,}/g,"_")}},{key:"getLettersToReplace",value:function(){return{"-":"_","/":"_",",":"_",":":"_",";":"_","ª":"a","º":"o","À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","Æ":"AE","Ç":"C","È":"E","É":"E","Ê":"E","Ë":"E","Ì":"I","Í":"I","Î":"I","Ï":"I","Ð":"D","Ñ":"N","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ù":"U","Ú":"U","Û":"U","Ü":"U","Ý":"Y","Þ":"TH","ß":"s","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","æ":"ae","ç":"c","è":"e","é":"e","ê":"e","ë":"e","ì":"i","í":"i","î":"i","ï":"i","ð":"d","ñ":"n","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","ù":"u","ú":"u","û":"u","ü":"u","ý":"y","þ":"th","ÿ":"y","Ø":"O","Ā":"A","ā":"a","Ă":"A","ă":"a","Ą":"A","ą":"a","Ć":"C","ć":"c","Ĉ":"C","ĉ":"c","Ċ":"C","ċ":"c","Č":"C","č":"c","Ď":"D","ď":"d","Đ":"D","đ":"d","Ē":"E","ē":"e","Ĕ":"E","ĕ":"e","Ė":"E","ė":"e","Ę":"E","ę":"e","Ě":"E","ě":"e","Ĝ":"G","ĝ":"g","Ğ":"G","ğ":"g","Ġ":"G","ġ":"g","Ģ":"G","ģ":"g","Ĥ":"H","ĥ":"h","Ħ":"H","ħ":"h","Ĩ":"I","ĩ":"i","Ī":"I","ī":"i","Ĭ":"I","ĭ":"i","Į":"I","į":"i","İ":"I","ı":"i","IJ":"IJ","ij":"ij","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","ĺ":"l","Ļ":"L","ļ":"l","Ľ":"L","ľ":"l","Ŀ":"L","ŀ":"l","Ł":"L","ł":"l","Ń":"N","ń":"n","Ņ":"N","ņ":"n","Ň":"N","ň":"n","ʼn":"n","Ŋ":"N","ŋ":"n","Ō":"O","ō":"o","Ŏ":"O","ŏ":"o","Ő":"O","ő":"o","Œ":"OE","œ":"oe","Ŕ":"R","ŕ":"r","Ŗ":"R","ŗ":"r","Ř":"R","ř":"r","Ś":"S","ś":"s","Ŝ":"S","ŝ":"s","Ş":"S","ş":"s","Š":"S","š":"s","Ţ":"T","ţ":"t","Ť":"T","ť":"t","Ŧ":"T","ŧ":"t","Ũ":"U","ũ":"u","Ū":"U","ū":"u","Ŭ":"U","ŭ":"u","Ů":"U","ů":"u","Ű":"U","ű":"u","Ų":"U","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","ź":"z","Ż":"Z","ż":"z","Ž":"Z","ž":"z","ſ":"s","Ș":"S","ș":"s","Ț":"T","ț":"t","€":"E","£":"","Ơ":"O","ơ":"o","Ư":"U","ư":"u","Ầ":"A","ầ":"a","Ằ":"A","ằ":"a","Ề":"E","ề":"e","Ồ":"O","ồ":"o","Ờ":"O","ờ":"o","Ừ":"U","ừ":"u","Ỳ":"Y","ỳ":"y","Ả":"A","ả":"a","Ẩ":"A","ẩ":"a","Ẳ":"A","ẳ":"a","Ẻ":"E","ẻ":"e","Ể":"E","ể":"e","Ỉ":"I","ỉ":"i","Ỏ":"O","ỏ":"o","Ổ":"O","ổ":"o","Ở":"O","ở":"o","Ủ":"U","ủ":"u","Ử":"U","ử":"u","Ỷ":"Y","ỷ":"y","Ẫ":"A","ẫ":"a","Ẵ":"A","ẵ":"a","Ẽ":"E","ẽ":"e","Ễ":"E","ễ":"e","Ỗ":"O","ỗ":"o","Ỡ":"O","ỡ":"o","Ữ":"U","ữ":"u","Ỹ":"Y","ỹ":"y","Ấ":"A","ấ":"a","Ắ":"A","ắ":"a","Ế":"E","ế":"e","Ố":"O","ố":"o","Ớ":"O","ớ":"o","Ứ":"U","ứ":"u","Ạ":"A","ạ":"a","Ậ":"A","ậ":"a","Ặ":"A","ặ":"a","Ẹ":"E","ẹ":"e","Ệ":"E","ệ":"e","Ị":"I","ị":"i","Ọ":"O","ọ":"o","Ộ":"O","ộ":"o","Ợ":"O","ợ":"o","Ụ":"U","ụ":"u","Ự":"U","ự":"u","Ỵ":"Y","ỵ":"y","ɑ":"a","Ǖ":"U","ǖ":"u","Ǘ":"U","ǘ":"u","Ǎ":"A","ǎ":"a","Ǐ":"I","ǐ":"i","Ǒ":"O","ǒ":"o","Ǔ":"U","ǔ":"u","Ǚ":"U","ǚ":"u","Ǜ":"U","ǜ":"u"}}}])&&m(t.prototype,n),r&&m(t,r),e}();function v(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var g=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}var t,n,r;return t=e,(n=[{key:"validateValue",value:function(e,t,n){var r=e.name,o=e.validation_rules,a=null;for(var i in o)if(!new RegExp(i,"s").test(t[r]||"")){a=o[i];break}n(a)}}])&&v(t.prototype,n),r&&v(t,r),e}();function b(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var y=function(){function e(t,n,r,o){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.api_handler=t,this.api_route=n,this._form_validation=r,this.onUpdateStatus=o}var t,n,r;return t=e,(n=[{key:"onSubmit",value:function(e,t){var n=this;this.onUpdateStatus("".concat(e,"_loading")),this._form_validation.onSubmit().then((function(){n.saveSettings(e,t).then((function(){n.onUpdateStatus("".concat(e,"_success")),setTimeout(n.onUpdateStatus,1e3)}),(function(t){n.onUpdateStatus("".concat(e,"_error"),t)}))}),(function(){n.onUpdateStatus()}))}},{key:"saveSettings",value:function(e,t){var n=this.api_handler,r=this.api_route;return new Promise((function(e,o){n.connect(r,t,"POST").then((function(t){t.status?e():o(t.response)}))}))}},{key:"onReset",value:function(e,t){var n=this;this.onUpdateStatus("".concat(e,"_loading")),this.saveSettings(e,t).then((function(){n.onUpdateStatus("".concat(e,"_success")),window.location.reload(!0)}),(function(t){n.onUpdateStatus("".concat(e,"_error"),t)}))}}])&&b(t.prototype,n),r&&b(t,r),e}();function _(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function w(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var E=function(){function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10;_(this,e),this.validation_event=t,this.validation_type=n,this.max_iteration=r,this.validation_errors={}}var t,n,r;return t=e,(n=[{key:"onValidationInit",value:function(e,t,n){this.validation_errors[e]=n,t&&delete this.validation_errors[e]}},{key:"clearValidationHandlers",value:function(){this.validation_errors={}}},{key:"onSubmit",value:function(){var e=this,t=this.validation_event,n=this.validation_type,r=this.max_iteration;return window.dispatchEvent(new CustomEvent(t,{detail:n})),new Promise((function(t,n){var o=0,a=setInterval((function(){var i=e.getFirstEvent();i&&(clearInterval(a),i(),n()),++o===r&&(clearInterval(a),t())}),100)}))}},{key:"getFirstEvent",value:function(){var e=Object.keys(this.validation_errors);return e.length>0?this.validation_errors[e[0]]:null}}])&&w(t.prototype,n),r&&w(t,r),e}();function S(e){return(S="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function x(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function O(e,t){return(O=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function C(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=P(e);if(t){var o=P(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return k(this,n)}}function k(e,t){return!t||"object"!==S(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function P(e){return(P=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var I=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&O(e,t)}(i,e);var t,n,r,o=C(i);function i(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,i),(t=o.call(this,e)).state={settings:e.settings,events:{onChangeValue:e.onChangeValue,onChangeState:e.onChangeState,onRefreshForm:e.onRefreshForm,onValidationInit:e.onValidationInit},handlers:{api_loader:e.settings.handlers.api_loader},validation_types:e.validation_types},t._field_validation=new g,t.setDefaultValue(),t.onChangeState("unique_id",t.generateUniqueId(32)),t.onChangeState("ref_wrapper",a.a.createRef()),t.onChangeState("ref_input",a.a.createRef()),t}return t=i,(n=[{key:"componentDidMount",value:function(){var e=this;this._isMounted=!0;var t=this.state,n=t.settings,r=t.validation_types;window.addEventListener(n.events.validate_field,(function(t){null!==t.detail&&r.indexOf(t.detail)>-1&&e._isMounted&&e.validateValue()}))}},{key:"componentWillUnmount",value:function(){this._isMounted=!1,this.onValidationError(null)}},{key:"onChangeValue",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=this.props.field_data,n=this.state.events,r=this.getValue(e);n.onChangeValue(t.name,r,t.refresh_trigger),this.validateValue()}},{key:"onChangeState",value:function(e,t){var n=this.props.state_name;this.state.events.onChangeState(n,e,t)}},{key:"onValidationError",value:function(e){var t=this.props,n=t.form_states,r=t.state_name,o=this.state.events;n[r]&&(this.onChangeState("validation_error",e),o.onValidationInit(n[r].unique_id,null===e,(function(){n[r].ref_wrapper.current.scrollIntoView(!1)})))}},{key:"setDefaultValue",value:function(){var e=this.state.events,t=this.props,n=t.field_data,r=t.form_values,o=void 0!==r[n.name]?r[n.name]:JSON.parse(JSON.stringify(n.default_value||""));e.onChangeValue(n.name,o)}},{key:"isFieldVisible",value:function(e,t){for(var n in e)if(!new RegExp(e[n]).test(t[n]))return!1;return!0}},{key:"getFieldValue",value:function(){var e=this.props,t=e.field_data,n=e.form_values;return t.display_pattern?t.display_pattern.replace("%s",n[t.name]||""):n[t.name]||""}},{key:"validateValue",value:function(){var e=this.props,t=e.field_data,n=e.form_values;this._field_validation.validateValue(t,n,this.onValidationError.bind(this))}},{key:"generateUniqueId",value:function(e){for(var t="abcdefghijklmnopqrstuvwxyz0123456789",n="",r=t.length,o=0;o<e;o++)n+=t.charAt(Math.floor(Math.random()*r));return n}}])&&x(t.prototype,n),r&&x(t,r),i}(a.a.Component);function D(e){var t=e.button_classes,n=e.button_alignment,r=e.button_label,o=e.loading_type,i=e.loading_message,l=e.tooltip_text,u=e.settings,s=e.onSubmit,c=(e.loading_status||"").replace("".concat(o,"_"),""),f="loading"===(e.loading_status||"").substr(-7);return a.a.createElement(a.a.Fragment,null,"left"===n?l?a.a.createElement(B,{text:l,onAccept:s,settings:u},a.a.createElement("button",{type:"button",className:t,disabled:f},r)):a.a.createElement("button",{type:"button",className:t,onClick:s,disabled:f},r):null,"loading"===c?a.a.createElement("div",{className:"fcfWidget__buttonIcon fcfWidget__buttonIcon--loading"},a.a.createElement("div",{className:"fcfWidget__buttonIconInner"})):null,"success"===c?a.a.createElement("div",{className:"fcfWidget__buttonIcon fcfWidget__buttonIcon--success"},a.a.createElement("div",{className:"fcfWidget__buttonIconInner"})):null,"error"===c?a.a.createElement("div",{className:"fcfWidget__buttonIcon fcfWidget__buttonIcon--error"},a.a.createElement(B,{text:i,is_open:!0,settings:u},a.a.createElement("div",{className:"fcfWidget__buttonIconInner"}))):null,"right"===n?l?a.a.createElement(B,{text:l,onAccept:s,settings:u},a.a.createElement("button",{type:"button",className:t,disabled:f},r)):a.a.createElement("button",{type:"button",className:t,onClick:s,disabled:f},r):null)}function R(e){var t=e.field_data,n=e.unique_id,r=e.is_group_label,o=e.settings,i=r?"".concat(t.label,":"):t.label;return r?a.a.createElement("div",{className:"fcfOptions__rowLabel"},i,t.label_tooltip?a.a.createElement("span",{className:"fcfOptions__labelHelp"},a.a.createElement(B,{text:t.label_tooltip,button_url:t.label_tooltip_url,settings:o},a.a.createElement("span",{className:"fcfOptions__labelHelpIcon"}))):null):a.a.createElement("label",{className:"fcfOptions__label",htmlFor:n},i,t.label_tooltip?a.a.createElement("span",{className:"fcfOptions__labelHelp"},a.a.createElement(B,{text:t.label_tooltip,button_url:t.label_tooltip_url,settings:o},a.a.createElement("span",{className:"fcfOptions__labelHelpIcon"}))):null)}function N(e){return(N="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function T(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function L(e,t){return(L=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function A(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=F(e);if(t){var o=F(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return j(this,n)}}function j(e,t){return!t||"object"!==N(t)&&"function"!=typeof t?M(e):t}function M(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function F(e){return(F=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var B=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&L(e,t)}(i,e);var t,n,r,o=A(i);function i(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,i),(t=o.call(this,e)).state={text:e.text,button_url:e.button_url,status:{is_open:!0===e.is_open},settings:e.settings,events:{onClose:t.closePopup.bind(M(t)),onAccept:e.onAccept},refs:{wrapper:a.a.createRef()}},t._isMounted=!1,t}return t=i,(n=[{key:"render",value:function(){var e=this.state,t=e.text,n=e.button_url,r=e.status,o=e.settings,i=e.events,l=e.refs,u=a.a.Children.toArray(this.props.children);return this.setStyles(),a.a.createElement(a.a.Fragment,null,a.a.cloneElement(u[0],{onClick:this.openPopup.bind(this)}),r.is_open?a.a.createElement("div",{className:"fcfTooltip"},a.a.createElement("div",{className:"fcfTooltip__outer"},a.a.createElement("div",{className:"fcfTooltip__inner",ref:l.wrapper,onClick:this.preventClosePopup.bind(this)},a.a.createElement("div",{className:"fcfTooltip__text"},t),n?a.a.createElement("ul",{className:"fcfTooltip__buttons"},a.a.createElement("li",{className:"fcfTooltip__button"},a.a.createElement("a",{href:n,target:"_blank",className:"fcfButton fcfButton--small fcfButton--border fcfButton--blue"},o.i18n.button_read_more))):null,i.onAccept?a.a.createElement("ul",{className:"fcfTooltip__buttons"},a.a.createElement("li",{className:"fcfTooltip__button"},a.a.createElement("button",{type:"button",className:"fcfButton fcfButton--small fcfButton--border fcfButton--green",onClick:this.acceptPopup.bind(this)},o.i18n.button_yes)),a.a.createElement("li",{className:"fcfTooltip__button"},a.a.createElement("button",{type:"button",className:"fcfButton fcfButton--small fcfButton--border fcfButton--red",onClick:this.closePopup.bind(this)},o.i18n.button_no))):null))):null)}},{key:"componentDidMount",value:function(){this._isMounted=!0,this.state.status.is_open&&setTimeout(this.loadPopup.bind(this),0)}},{key:"componentWillUnmount",value:function(){this._isMounted=!1}},{key:"openPopup",value:function(e){e&&(e.preventDefault(),e.stopPropagation());var t=this.state.status;t.is_open||(t.is_open=!0,this._isMounted&&this.setState({status:t}),this.loadPopup())}},{key:"loadPopup",value:function(){var e=this,t=this.state.events;window.addEventListener("click",t.onClose),window.dispatchEvent(new CustomEvent("fcf-popup-open")),setTimeout((function(){window.addEventListener("fcf-popup-open",t.onClose),e.setStyles()}),0)}},{key:"acceptPopup",value:function(e){e.preventDefault(),e.stopPropagation(),this.state.events.onAccept(),this.closePopup()}},{key:"closePopup",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;null!==e&&e.stopPropagation();var t=this.state,n=t.status,r=t.events;n.is_open=!1,this._isMounted&&this.setState({status:n}),window.removeEventListener("click",r.onClose),window.removeEventListener("fcf-popup-open",r.onClose)}},{key:"preventClosePopup",value:function(e){e.stopPropagation()}},{key:"setStyles",value:function(){var e=this.state.refs;if(e.wrapper.current){e.wrapper.current.style.marginLeft="";var t=document.body.offsetWidth||document.documentElement.offsetWidth,n=e.wrapper.current.getBoundingClientRect(),r=n.left,o=2*(t-n.right);r<0&&(e.wrapper.current.style.marginLeft="".concat(-2*r+20,"px")),o<0&&(e.wrapper.current.style.marginLeft="".concat(o-20,"px"))}}}])&&T(t.prototype,n),r&&T(t,r),i}(a.a.Component);function V(e){var t=e.validation_error;return t?a.a.createElement("div",{className:"fcfOptions__error"},t):null}function U(e){return(U="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function z(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function H(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function W(e,t){return(W=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function G(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=$(e);if(t){var o=$(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return q(this,n)}}function q(e,t){return!t||"object"!==U(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function $(e){return($=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var Y=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&W(e,t)}(i,e);var t,n,r,o=G(i);function i(){return z(this,i),o.apply(this,arguments)}return t=i,(n=[{key:"render",value:function(){var e=this.props,t=e.field_data,n=e.form_values,r=e.form_states,o=e.state_name,i=e.show_if_regexes,l=this.state.settings;return r[o]&&this.isFieldVisible(i,n)?a.a.createElement(a.a.Fragment,null,a.a.createElement("li",{className:"fcfOptions__row",ref:r[o].ref_wrapper},a.a.createElement("input",{type:"checkbox",className:"fcfOptions__checkbox",id:r[o].unique_id,ref:r[o].ref_input,name:t.name,defaultChecked:n[t.name]&&"1"===n[t.name].toString(),onChange:t.readonly?null:this.onChangeValue.bind(this),disabled:t.readonly}),a.a.createElement(R,{unique_id:r[o].unique_id,field_data:t,settings:l}),a.a.createElement(V,{validation_error:r[o].validation_error}))):null}},{key:"getValue",value:function(){var e=this.props;return e.form_states[e.state_name].ref_input.current.checked?"1":"0"}}])&&H(t.prototype,n),r&&H(t,r),i}(I);function Q(e){return(Q="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function K(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function X(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function J(e,t){return(J=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Z(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=te(e);if(t){var o=te(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return ee(this,n)}}function ee(e,t){return!t||"object"!==Q(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function te(e){return(te=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var ne=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&J(e,t)}(i,e);var t,n,r,o=Z(i);function i(){return K(this,i),o.apply(this,arguments)}return t=i,(n=[{key:"render",value:function(){var e=this.props,t=e.field_data,n=e.form_values,r=e.form_states,o=e.state_name,i=e.section_fields,l=e.show_if_regexes,u=this.state,s=u.events,c=u.settings,f=u.validation_types;return r[o]&&this.isFieldVisible(l,n)?a.a.createElement(a.a.Fragment,null,a.a.createElement("li",{className:"fcfOptions__row"},a.a.createElement(R,{unique_id:r[o].unique_id,field_data:t,is_group_label:!0,settings:c})),t.items.map((function(e,t){return a.a.createElement(Y,{key:t,field_data:e,form_values:n,form_states:r,state_name:e.name,section_fields:i,onChangeValue:s.onChangeValue,onChangeState:s.onChangeState,onRefreshForm:s.onRefreshForm,onValidationInit:s.onValidationInit,validation_types:f,settings:c})}))):null}}])&&X(t.prototype,n),r&&X(t,r),i}(I);function re(e){return(re="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function oe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ae(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function ie(e,t){return(ie=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function le(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=se(e);if(t){var o=se(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return ue(this,n)}}function ue(e,t){return!t||"object"!==re(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function se(e){return(se=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var ce=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&ie(e,t)}(l,e);var t,n,o,i=le(l);function l(){return oe(this,l),i.apply(this,arguments)}return t=l,(n=[{key:"render",value:function(){var e=this,t=this.props,n=t.field_data,o=t.form_values,i=t.form_states,l=t.state_name,u=t.section_fields,s=t.show_if_regexes,c=this.state,f=c.api_loader,d=c.events,p=c.settings,m=c.validation_types;return i[l]&&this.isFieldVisible(s,o)?a.a.createElement(a.a.Fragment,null,a.a.createElement("li",{className:"fcfOptions__row fcfOptions__row--sub"},a.a.createElement("ul",{className:"fcfOptions__columns"},n.items.map((function(t,n){var l=r[t.type],s=t.show_if_regexes;return e.isFieldVisible(s,o)?a.a.createElement("li",{className:"fcfOptions__column",key:n},a.a.createElement("ul",{className:"fcfOptions__rows"},a.a.createElement(l,{field_data:t,form_values:o,form_states:i,state_name:t.name,section_fields:u,api_loader:f,onChangeValue:d.onChangeValue,onChangeState:d.onChangeState,onRefreshForm:d.onRefreshForm,onValidationInit:d.onValidationInit,validation_types:m,settings:p}))):null}))))):null}}])&&ae(t.prototype,n),o&&ae(t,o),l}(I);function fe(e){return(fe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function de(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function pe(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function me(e,t){return(me=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function he(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=ge(e);if(t){var o=ge(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return ve(this,n)}}function ve(e,t){return!t||"object"!==fe(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function ge(e){return(ge=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var be=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&me(e,t)}(i,e);var t,n,r,o=he(i);function i(){return de(this,i),o.apply(this,arguments)}return t=i,(n=[{key:"render",value:function(){var e=this.props,t=e.field_data,n=e.form_values,r=e.show_if_regexes;return this.isFieldVisible(r,n)?a.a.createElement(a.a.Fragment,null,a.a.createElement("input",{type:"hidden",name:t.name,value:n[t.name]||""})):null}}])&&pe(t.prototype,n),r&&pe(t,r),i}(I);function ye(e){return(ye="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _e(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function we(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Ee(e,t){return(Ee=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Se(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=Oe(e);if(t){var o=Oe(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return xe(this,n)}}function xe(e,t){return!t||"object"!==ye(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function Oe(e){return(Oe=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var Ce=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Ee(e,t)}(i,e);var t,n,r,o=Se(i);function i(){return _e(this,i),o.apply(this,arguments)}return t=i,(n=[{key:"render",value:function(){var e=this.props,t=e.field_data,n=e.form_values,r=e.show_if_regexes;return this.isFieldVisible(r,n)?a.a.createElement(a.a.Fragment,null,a.a.createElement("li",{className:"fcfOptions__row"},a.a.createElement("div",{className:"fcfOptions__info"},a.a.createElement("div",{className:"fcfOptions__infoInner",dangerouslySetInnerHTML:{__html:t.label}})))):null}}])&&we(t.prototype,n),r&&we(t,r),i}(I);function ke(e){return(ke="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Pe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Ie(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function De(e,t){return(De=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Re(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=Te(e);if(t){var o=Te(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return Ne(this,n)}}function Ne(e,t){return!t||"object"!==ke(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function Te(e){return(Te=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var Le=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&De(e,t)}(i,e);var t,n,r,o=Re(i);function i(){return Pe(this,i),o.apply(this,arguments)}return t=i,(n=[{key:"render",value:function(){var e=this.props,t=e.field_data,n=e.form_values,r=e.show_if_regexes;return this.isFieldVisible(r,n)?a.a.createElement(a.a.Fragment,null,a.a.createElement("li",{className:"fcfOptions__row"},a.a.createElement("div",{className:"fcfOptions__info fcfOptions__info--green"},a.a.createElement("div",{className:"fcfOptions__infoInner",dangerouslySetInnerHTML:{__html:t.label}})))):null}}])&&Ie(t.prototype,n),r&&Ie(t,r),i}(I);function Ae(e){return(Ae="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function je(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Me(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Fe(e,t){return(Fe=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Be(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=Ue(e);if(t){var o=Ue(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return Ve(this,n)}}function Ve(e,t){return!t||"object"!==Ae(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function Ue(e){return(Ue=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var ze=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Fe(e,t)}(i,e);var t,n,r,o=Be(i);function i(){return je(this,i),o.apply(this,arguments)}return t=i,(n=[{key:"render",value:function(){var e=this.props,t=e.field_data,n=e.form_values,r=e.form_states,o=e.state_name,i=e.show_if_regexes,l=this.state.settings;return r[o]&&this.isFieldVisible(i,n)?a.a.createElement(a.a.Fragment,null,a.a.createElement("li",{className:"fcfOptions__row",ref:r[o].ref_wrapper},a.a.createElement(R,{unique_id:r[o].unique_id,field_data:t,settings:l}),a.a.createElement(V,{validation_error:r[o].validation_error}),a.a.createElement("input",{type:"number",id:r[o].unique_id,ref:r[o].ref_input,name:t.name,min:t.html_atts.min||"",max:t.html_atts.max||"",step:t.html_atts.step||"1",className:"fcfOptions__input",value:n[t.name]||"",onChange:t.readonly?null:this.onChangeValue.bind(this),disabled:t.readonly}))):null}},{key:"getValue",value:function(e){var t=this.props,n=t.form_states,r=t.state_name;return""===e.currentTarget.value?(e.currentTarget.value="",null):n[r].ref_input.current.value}}])&&Me(t.prototype,n),r&&Me(t,r),i}(I);function He(e){return(He="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function We(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Ge(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function qe(e,t){return(qe=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function $e(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=Qe(e);if(t){var o=Qe(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return Ye(this,n)}}function Ye(e,t){return!t||"object"!==He(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function Qe(e){return(Qe=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var Ke=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&qe(e,t)}(i,e);var t,n,r,o=$e(i);function i(){return We(this,i),o.apply(this,arguments)}return t=i,(n=[{key:"render",value:function(){var e=this,t=this.props,n=t.field_data,r=t.form_values,o=t.form_states,i=t.state_name,l=t.show_if_regexes,u=this.state.settings;return o[i]&&this.isFieldVisible(l,r)?a.a.createElement(a.a.Fragment,null,a.a.createElement("li",{className:"fcfOptions__row",ref:o[i].ref_wrapper},a.a.createElement(R,{unique_id:o[i].unique_id,field_data:n,is_group_label:!0,settings:u}),a.a.createElement(V,{validation_error:o[i].validation_error})),Object.keys(n.items).map((function(t,l){return a.a.createElement("li",{className:"fcfOptions__row",key:l},a.a.createElement("input",{type:"radio",className:"fcfOptions__radio",id:"".concat(o[i].unique_id,"-").concat(l),ref:o[i].ref_input,name:n.name,value:t,defaultChecked:r[n.name]===t,onChange:e.onChangeValue.bind(e),disabled:n.readonly?null:n.readonly}),a.a.createElement("label",{htmlFor:"".concat(o[i].unique_id,"-").concat(l),className:"fcfOptions__label"},n.items[t]))}))):null}},{key:"getValue",value:function(e){return e.currentTarget.value}}])&&Ge(t.prototype,n),r&&Ge(t,r),i}(I);function Xe(e){return(Xe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Je(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Ze(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function et(e,t){return(et=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function tt(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=rt(e);if(t){var o=rt(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return nt(this,n)}}function nt(e,t){return!t||"object"!==Xe(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function rt(e){return(rt=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var ot=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&et(e,t)}(i,e);var t,n,r,o=tt(i);function i(){return Je(this,i),o.apply(this,arguments)}return t=i,(n=[{key:"render",value:function(){var e=this,t=this.props,n=t.field_data,r=t.form_values,o=t.form_states,i=t.state_name,l=t.show_if_regexes,u=this.state.settings;return o[i]&&this.isFieldVisible(l,r)?a.a.createElement(a.a.Fragment,null,a.a.createElement("li",{className:"fcfOptions__row",ref:o[i].ref_wrapper},a.a.createElement(R,{unique_id:o[i].unique_id,field_data:n,settings:u}),a.a.createElement(V,{validation_error:o[i].validation_error}),a.a.createElement("div",{className:"fcfOptions__boxes"},a.a.createElement("ul",{className:"fcfOptions__boxesItems"},n.items.map((function(t,l){return a.a.createElement("li",{className:"fcfOptions__boxesItem",key:l},a.a.createElement("input",{type:"radio",className:"fcfOptions__boxesItemInput",id:"".concat(o[i].unique_id,"-").concat(l),ref:o[i].ref_input,name:n.name,value:t.type,checked:r[n.name]===t.type,onChange:n.readonly?null:e.onChangeValue.bind(e),disabled:n.readonly}),a.a.createElement("label",{className:"fcfOptions__boxesItemLabel ".concat(t.icon),htmlFor:"".concat(o[i].unique_id,"-").concat(l)},t.label))})))))):null}},{key:"getValue",value:function(e){return e.currentTarget.value}}])&&Ze(t.prototype,n),r&&Ze(t,r),i}(I);function at(e){return(at="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function it(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function lt(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function ut(e,t){return(ut=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function st(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=ft(e);if(t){var o=ft(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return ct(this,n)}}function ct(e,t){return!t||"object"!==at(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function ft(e){return(ft=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var dt=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&ut(e,t)}(l,e);var t,n,o,i=st(l);function l(){return it(this,l),i.apply(this,arguments)}return t=l,(n=[{key:"render",value:function(){var e=this,t=this.props,n=t.field_data,o=t.form_values,i=t.form_states,l=t.state_name,u=t.section_fields,s=t.show_if_regexes,c=this.state,f=c.events,d=c.settings,p=c.validation_types,m=this.getRows();return i[l]&&this.isFieldVisible(s,o)?a.a.createElement(a.a.Fragment,null,n.label?a.a.createElement("li",{className:"fcfOptions__row"},a.a.createElement(R,{field_data:n,settings:d})):null,a.a.createElement("li",{className:"fcfOptions__row fcfOptions__row--lines fcfOptions__row--sub"},m.map((function(t,l){var s=!n.option_name_rows&&m.length>1;return a.a.createElement(a.a.Fragment,{key:l},a.a.createElement("ul",{className:"fcfOptions__columns"},a.a.createElement("li",{className:"fcfOptions__column"},a.a.createElement("div",{className:"fcfOptions__label fcfOptions__label--line"},a.a.createElement("div",{className:"fcfOptions__labelInner"},t.label)))),a.a.createElement("ul",{className:"fcfOptions__columns ".concat(s?"fcfOptions__columns--button":"")},n.items.map((function(l,s){var c=r[l.type],m=l.show_if_regexes,h=o[n.name][t.key]?o[n.name][t.key]:JSON.parse(JSON.stringify(l.default_value));return e.isFieldVisible(m,h)?a.a.createElement("li",{className:"fcfOptions__column",key:s},a.a.createElement("ul",{className:"fcfOptions__rows"},a.a.createElement(c,{field_data:l,form_values:h,form_states:i,state_name:"".concat(n.name,"_").concat(t.key,"_").concat(l.name),section_fields:u,onChangeValue:e.onChangeValue.bind(e,t.key),onChangeState:f.onChangeState,onRefreshForm:f.onRefreshForm,onValidationInit:f.onValidationInit,validation_types:p,settings:d}))):null})),s?a.a.createElement("li",{className:"fcfOptions__column fcfOptions__column--small"},a.a.createElement("button",{type:"button",className:"fcfOptions__columnButton fcfOptions__columnButton--remove",onClick:e.removeRow.bind(e,t.key)})):null))})),n.option_name_rows?null:a.a.createElement("ul",{className:"fcfOptions__columns"},a.a.createElement("li",{className:"fcfOptions__column fcfOptions__column--center"},a.a.createElement("button",{type:"button",className:"fcfButton fcfButton--small fcfButton--border fcfButton--blue",onClick:this.addNewRow.bind(this)},d.i18n.button_add_row))))):null}},{key:"onChangeValue",value:function(e,t,n){var r=this.props,o=r.field_data,a=r.form_values,i=this.state.events,l=a[o.name];void 0===l[e]&&(l[e]={}),l[e][t]=n,i.onChangeValue(o.name,l,o.refresh_trigger)}},{key:"onChangeOptionState",value:function(e,t,n,r){var o=this.props.state_name;this.state.events.onChangeState(o,n,r)}},{key:"getRows",value:function(){var e=this.props,t=e.field_data,n=e.form_values,r=t.option_name_rows;return r&&void 0!==n[r]?this.getRowsByFieldValue():this.getRowsByAddedValues()}},{key:"getRowsByAddedValues",value:function(){for(var e=this.props,t=e.field_data,n=e.form_values,r=t.label_row,o=Object.keys(n[t.name]),a=[],i=o.length,l=0;l<i;l++)a.push({key:o[l],label:r.replace("%s",l+1)});return a}},{key:"getRowsByFieldValue",value:function(){var e=this.props,t=e.field_data,n=e.form_values,r=t.option_name_rows,o=t.label_row,a=[];if(Array.isArray(n[r]))for(var i=n[r].length,l=0;l<i;l++)n[r][l]&&a.push({key:n[r][l].key,label:o.replace("%s",n[r][l].value)});else a.push({key:Object.keys(t.default_value)[0],label:o.replace("%s",n[r])});return a}},{key:"addNewRow",value:function(){var e=this.props.field_data,t=this.state.events,n=Object.values(this.props.form_values[e.name]),r=Object.keys(e.default_value);n.push(JSON.parse(JSON.stringify(e.default_value[r[0]]))),t.onChangeValue(e.name,n)}},{key:"removeRow",value:function(e){var t=this.props.field_data,n=this.state.events,r=JSON.parse(JSON.stringify(this.props.form_values[t.name]));delete r[e],r=r.filter((function(e){return null!==e})),n.onChangeValue(t.name,r,!0)}}])&&lt(t.prototype,n),o&&lt(t,o),l}(I);function pt(){return(pt=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var mt=function(){function e(e){var t=this;this._insertTag=function(e){var n;n=0===t.tags.length?t.prepend?t.container.firstChild:t.before:t.tags[t.tags.length-1].nextSibling,t.container.insertBefore(e,n),t.tags.push(e)},this.isSpeedy=void 0===e.speedy||e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.prepend=e.prepend,this.before=null}var t=e.prototype;return t.hydrate=function(e){e.forEach(this._insertTag)},t.insert=function(e){this.ctr%(this.isSpeedy?65e3:1)==0&&this._insertTag(function(e){var t=document.createElement("style");return t.setAttribute("data-emotion",e.key),void 0!==e.nonce&&t.setAttribute("nonce",e.nonce),t.appendChild(document.createTextNode("")),t.setAttribute("data-s",""),t}(this));var t=this.tags[this.tags.length-1];if(this.isSpeedy){var n=function(e){if(e.sheet)return e.sheet;for(var t=0;t<document.styleSheets.length;t++)if(document.styleSheets[t].ownerNode===e)return document.styleSheets[t]}(t);try{n.insertRule(e,n.cssRules.length)}catch(e){0}}else t.appendChild(document.createTextNode(e));this.ctr++},t.flush=function(){this.tags.forEach((function(e){return e.parentNode.removeChild(e)})),this.tags=[],this.ctr=0},e}(),ht="-ms-",vt="-moz-",gt="-webkit-",bt="comm",yt="decl",_t=Math.abs,wt=String.fromCharCode;function Et(e){return e.trim()}function St(e,t,n){return e.replace(t,n)}function xt(e,t){return e.indexOf(t)}function Ot(e,t){return 0|e.charCodeAt(t)}function Ct(e,t,n){return e.slice(t,n)}function kt(e){return e.length}function Pt(e){return e.length}function It(e,t){return t.push(e),e}function Dt(e,t){return e.map(t).join("")}var Rt=1,Nt=1,Tt=0,Lt=0,At=0,jt="";function Mt(e,t,n,r,o,a,i){return{value:e,root:t,parent:n,type:r,props:o,children:a,line:Rt,column:Nt,length:i,return:""}}function Ft(e,t,n){return Mt(e,t.root,t.parent,n,t.props,t.children,0)}function Bt(){return At=Lt<Tt?Ot(jt,Lt++):0,Nt++,10===At&&(Nt=1,Rt++),At}function Vt(){return Ot(jt,Lt)}function Ut(){return Lt}function zt(e,t){return Ct(jt,e,t)}function Ht(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function Wt(e){return Rt=Nt=1,Tt=kt(jt=e),Lt=0,[]}function Gt(e){return jt="",e}function qt(e){return Et(zt(Lt-1,function e(t){for(;Bt();)switch(At){case t:return Lt;case 34:case 39:return e(34===t||39===t?t:At);case 40:41===t&&e(t);break;case 92:Bt()}return Lt}(91===e?e+2:40===e?e+1:e)))}function $t(e){for(;(At=Vt())&&At<33;)Bt();return Ht(e)>2||Ht(At)>3?"":" "}function Yt(e,t){for(;Bt()&&e+At!==57&&(e+At!==84||47!==Vt()););return"/*"+zt(t,Lt-1)+"*"+wt(47===e?e:Bt())}function Qt(e){for(;!Ht(Vt());)Bt();return zt(e,Lt)}function Kt(e){return Gt(function e(t,n,r,o,a,i,l,u,s){var c=0,f=0,d=l,p=0,m=0,h=0,v=1,g=1,b=1,y=0,_="",w=a,E=i,S=o,x=_;for(;g;)switch(h=y,y=Bt()){case 34:case 39:case 91:case 40:x+=qt(y);break;case 9:case 10:case 13:case 32:x+=$t(h);break;case 47:switch(Vt()){case 42:case 47:It(Jt(Yt(Bt(),Ut()),n,r),s);break;default:x+="/"}break;case 123*v:u[c++]=kt(x)*b;case 125*v:case 59:case 0:switch(y){case 0:case 125:g=0;case 59+f:m>0&&kt(x)-d&&It(m>32?Zt(x+";",o,r,d-1):Zt(St(x," ","")+";",o,r,d-2),s);break;case 59:x+=";";default:if(It(S=Xt(x,n,r,c,f,a,u,_,w=[],E=[],d),i),123===y)if(0===f)e(x,n,S,S,w,i,d,u,E);else switch(p){case 100:case 109:case 115:e(t,S,S,o&&It(Xt(t,S,S,0,0,a,u,_,a,w=[],d),E),a,E,d,u,o?w:E);break;default:e(x,S,S,S,[""],E,d,u,E)}}c=f=m=0,v=b=1,_=x="",d=l;break;case 58:d=1+kt(x),m=h;default:switch(x+=wt(y),y*v){case 38:b=f>0?1:(x+="\f",-1);break;case 44:u[c++]=(kt(x)-1)*b,b=1;break;case 64:45===Vt()&&(x+=qt(Bt())),p=Vt(),f=kt(_=x+=Qt(Ut())),y++;break;case 45:45===h&&2==kt(x)&&(v=0)}}return i}("",null,null,null,[""],e=Wt(e),0,[0],e))}function Xt(e,t,n,r,o,a,i,l,u,s,c){for(var f=o-1,d=0===o?a:[""],p=Pt(d),m=0,h=0,v=0;m<r;++m)for(var g=0,b=Ct(e,f+1,f=_t(h=i[m])),y=e;g<p;++g)(y=Et(h>0?d[g]+" "+b:St(b,/&\f/g,d[g])))&&(u[v++]=y);return Mt(e,t,n,0===o?"rule":l,u,s,c)}function Jt(e,t,n){return Mt(e,t,n,bt,wt(At),Ct(e,2,-2),0)}function Zt(e,t,n,r){return Mt(e,t,n,yt,Ct(e,0,r),Ct(e,r+1,-1),r)}function en(e,t){switch(function(e,t){return(((t<<2^Ot(e,0))<<2^Ot(e,1))<<2^Ot(e,2))<<2^Ot(e,3)}(e,t)){case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return gt+e+e;case 5349:case 4246:case 4810:case 6968:case 2756:return gt+e+vt+e+ht+e+e;case 6828:case 4268:return gt+e+ht+e+e;case 6165:return gt+e+ht+"flex-"+e+e;case 5187:return gt+e+St(e,/(\w+).+(:[^]+)/,gt+"box-$1$2"+ht+"flex-$1$2")+e;case 5443:return gt+e+ht+"flex-item-"+St(e,/flex-|-self/,"")+e;case 4675:return gt+e+ht+"flex-line-pack"+St(e,/align-content|flex-|-self/,"")+e;case 5548:return gt+e+ht+St(e,"shrink","negative")+e;case 5292:return gt+e+ht+St(e,"basis","preferred-size")+e;case 6060:return gt+"box-"+St(e,"-grow","")+gt+e+ht+St(e,"grow","positive")+e;case 4554:return gt+St(e,/([^-])(transform)/g,"$1"+gt+"$2")+e;case 6187:return St(St(St(e,/(zoom-|grab)/,gt+"$1"),/(image-set)/,gt+"$1"),e,"")+e;case 5495:case 3959:return St(e,/(image-set\([^]*)/,gt+"$1$`$1");case 4968:return St(St(e,/(.+:)(flex-)?(.*)/,gt+"box-pack:$3"+ht+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+gt+e+e;case 4095:case 3583:case 4068:case 2532:return St(e,/(.+)-inline(.+)/,gt+"$1$2")+e;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(kt(e)-1-t>6)switch(Ot(e,t+1)){case 102:t=Ot(e,t+3);case 109:return St(e,/(.+:)(.+)-([^]+)/,"$1"+gt+"$2-$3$1"+vt+(108==t?"$3":"$2-$3"))+e;case 115:return~xt(e,"stretch")?en(St(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(115!==Ot(e,t+1))break;case 6444:switch(Ot(e,kt(e)-3-(~xt(e,"!important")&&10))){case 107:case 111:return St(e,e,gt+e)+e;case 101:return St(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+gt+(45===Ot(e,14)?"inline-":"")+"box$3$1"+gt+"$2$3$1"+ht+"$2box$3")+e}break;case 5936:switch(Ot(e,t+11)){case 114:return gt+e+ht+St(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return gt+e+ht+St(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return gt+e+ht+St(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return gt+e+ht+e+e}return e}function tn(e,t){for(var n="",r=Pt(e),o=0;o<r;o++)n+=t(e[o],o,e,t)||"";return n}function nn(e,t,n,r){switch(e.type){case"@import":case yt:return e.return=e.return||e.value;case bt:return"";case"rule":e.value=e.props.join(",")}return kt(n=tn(e.children,r))?e.return=e.value+"{"+n+"}":""}function rn(e){return function(t){t.root||(t=t.return)&&e(t)}}var on=function(e){var t=Object.create(null);return function(n){return void 0===t[n]&&(t[n]=e(n)),t[n]}},an=function(e,t){return Gt(function(e,t){var n=-1,r=44;do{switch(Ht(r)){case 0:38===r&&12===Vt()&&(t[n]=1),e[n]+=Qt(Lt-1);break;case 2:e[n]+=qt(r);break;case 4:if(44===r){e[++n]=58===Vt()?"&\f":"",t[n]=e[n].length;break}default:e[n]+=wt(r)}}while(r=Bt());return e}(Wt(e),t))},ln=new WeakMap,un=function(e){if("rule"===e.type&&e.parent&&e.length){for(var t=e.value,n=e.parent,r=e.column===n.column&&e.line===n.line;"rule"!==n.type;)if(!(n=n.parent))return;if((1!==e.props.length||58===t.charCodeAt(0)||ln.get(n))&&!r){ln.set(e,!0);for(var o=[],a=an(t,o),i=n.props,l=0,u=0;l<a.length;l++)for(var s=0;s<i.length;s++,u++)e.props[u]=o[l]?a[l].replace(/&\f/g,i[s]):i[s]+" "+a[l]}}},sn=function(e){if("decl"===e.type){var t=e.value;108===t.charCodeAt(0)&&98===t.charCodeAt(2)&&(e.return="",e.value="")}},cn=[function(e,t,n,r){if(!e.return)switch(e.type){case yt:e.return=en(e.value,e.length);break;case"@keyframes":return tn([Ft(St(e.value,"@","@"+gt),e,"")],r);case"rule":if(e.length)return Dt(e.props,(function(t){switch(function(e,t){return(e=t.exec(e))?e[0]:e}(t,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return tn([Ft(St(t,/:(read-\w+)/,":-moz-$1"),e,"")],r);case"::placeholder":return tn([Ft(St(t,/:(plac\w+)/,":"+gt+"input-$1"),e,""),Ft(St(t,/:(plac\w+)/,":-moz-$1"),e,""),Ft(St(t,/:(plac\w+)/,ht+"input-$1"),e,"")],r)}return""}))}}],fn=function(e){var t=e.key;if("css"===t){var n=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(n,(function(e){document.head.appendChild(e),e.setAttribute("data-s","")}))}var r=e.stylisPlugins||cn;var o,a,i={},l=[];o=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll("style[data-emotion]"),(function(e){var n=e.getAttribute("data-emotion").split(" ");if(n[0]===t){for(var r=1;r<n.length;r++)i[n[r]]=!0;l.push(e)}}));var u=[un,sn];var s,c=[nn,rn((function(e){s.insert(e)}))],f=function(e){var t=Pt(e);return function(n,r,o,a){for(var i="",l=0;l<t;l++)i+=e[l](n,r,o,a)||"";return i}}(u.concat(r,c));a=function(e,t,n,r){s=n,tn(Kt(e?e+"{"+t.styles+"}":t.styles),f),r&&(d.inserted[t.name]=!0)};var d={key:t,sheet:new mt({key:t,container:o,nonce:e.nonce,speedy:e.speedy,prepend:e.prepend}),nonce:e.nonce,inserted:i,registered:{},insert:a};return d.sheet.hydrate(l),d},dn=n(3),pn=n.n(dn);function mn(e,t,n){var r="";return n.split(" ").forEach((function(n){void 0!==e[n]?t.push(e[n]+";"):r+=n+" "})),r}var hn=function(e,t,n){var r=e.key+"-"+t.name;if(!1===n&&void 0===e.registered[r]&&(e.registered[r]=t.styles),void 0===e.inserted[t.name]){var o=t;do{e.insert(t===o?"."+r:"",o,e.sheet,!0);o=o.next}while(void 0!==o)}};var vn=function(e){for(var t,n=0,r=0,o=e.length;o>=4;++r,o-=4)t=1540483477*(65535&(t=255&e.charCodeAt(r)|(255&e.charCodeAt(++r))<<8|(255&e.charCodeAt(++r))<<16|(255&e.charCodeAt(++r))<<24))+(59797*(t>>>16)<<16),n=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&n)+(59797*(n>>>16)<<16);switch(o){case 3:n^=(255&e.charCodeAt(r+2))<<16;case 2:n^=(255&e.charCodeAt(r+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(r)))+(59797*(n>>>16)<<16)}return(((n=1540483477*(65535&(n^=n>>>13))+(59797*(n>>>16)<<16))^n>>>15)>>>0).toString(36)},gn={animationIterationCount:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},bn=/[A-Z]|^ms/g,yn=/_EMO_([^_]+?)_([^]*?)_EMO_/g,_n=function(e){return 45===e.charCodeAt(1)},wn=function(e){return null!=e&&"boolean"!=typeof e},En=on((function(e){return _n(e)?e:e.replace(bn,"-$&").toLowerCase()})),Sn=function(e,t){switch(e){case"animation":case"animationName":if("string"==typeof t)return t.replace(yn,(function(e,t,n){return On={name:t,styles:n,next:On},t}))}return 1===gn[e]||_n(e)||"number"!=typeof t||0===t?t:t+"px"};function xn(e,t,n){if(null==n)return"";if(void 0!==n.__emotion_styles)return n;switch(typeof n){case"boolean":return"";case"object":if(1===n.anim)return On={name:n.name,styles:n.styles,next:On},n.name;if(void 0!==n.styles){var r=n.next;if(void 0!==r)for(;void 0!==r;)On={name:r.name,styles:r.styles,next:On},r=r.next;return n.styles+";"}return function(e,t,n){var r="";if(Array.isArray(n))for(var o=0;o<n.length;o++)r+=xn(e,t,n[o])+";";else for(var a in n){var i=n[a];if("object"!=typeof i)null!=t&&void 0!==t[i]?r+=a+"{"+t[i]+"}":wn(i)&&(r+=En(a)+":"+Sn(a,i)+";");else if(!Array.isArray(i)||"string"!=typeof i[0]||null!=t&&void 0!==t[i[0]]){var l=xn(e,t,i);switch(a){case"animation":case"animationName":r+=En(a)+":"+l+";";break;default:r+=a+"{"+l+"}"}}else for(var u=0;u<i.length;u++)wn(i[u])&&(r+=En(a)+":"+Sn(a,i[u])+";")}return r}(e,t,n);case"function":if(void 0!==e){var o=On,a=n(e);return On=o,xn(e,t,a)}break;case"string":}if(null==t)return n;var i=t[n];return void 0!==i?i:n}var On,Cn=/label:\s*([^\s;\n{]+)\s*;/g;var kn=function(e,t,n){if(1===e.length&&"object"==typeof e[0]&&null!==e[0]&&void 0!==e[0].styles)return e[0];var r=!0,o="";On=void 0;var a=e[0];null==a||void 0===a.raw?(r=!1,o+=xn(n,t,a)):o+=a[0];for(var i=1;i<e.length;i++)o+=xn(n,t,e[i]),r&&(o+=a[i]);Cn.lastIndex=0;for(var l,u="";null!==(l=Cn.exec(o));)u+="-"+l[1];return{name:vn(o)+u,styles:o,next:On}},Pn=Object.prototype.hasOwnProperty,In=Object(o.createContext)("undefined"!=typeof HTMLElement?fn({key:"css"}):null),Dn=In.Provider,Rn=function(e){return Object(o.forwardRef)((function(t,n){var r=Object(o.useContext)(In);return e(t,r,n)}))},Nn=Object(o.createContext)({});var Tn="__EMOTION_TYPE_PLEASE_DO_NOT_USE__",Ln=function(e,t){var n={};for(var r in t)Pn.call(t,r)&&(n[r]=t[r]);return n[Tn]=e,n},An=Rn((function(e,t,n){var r=e.css;"string"==typeof r&&void 0!==t.registered[r]&&(r=t.registered[r]);var a=e[Tn],i=[r],l="";"string"==typeof e.className?l=mn(t.registered,i,e.className):null!=e.className&&(l=e.className+" ");var u=kn(i,void 0,"function"==typeof r||Array.isArray(r)?Object(o.useContext)(Nn):void 0);hn(t,u,"string"==typeof a);l+=t.key+"-"+u.name;var s={};for(var c in e)Pn.call(e,c)&&"css"!==c&&c!==Tn&&(s[c]=e[c]);return s.ref=n,s.className=l,Object(o.createElement)(a,s)}));n(17);var jn=function(e,t){var n=arguments;if(null==t||!Pn.call(t,"css"))return o.createElement.apply(void 0,n);var r=n.length,a=new Array(r);a[0]=An,a[1]=Ln(e,t);for(var i=2;i<r;i++)a[i]=n[i];return o.createElement.apply(null,a)};function Mn(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return kn(t)}var Fn=function e(t){for(var n=t.length,r=0,o="";r<n;r++){var a=t[r];if(null!=a){var i=void 0;switch(typeof a){case"boolean":break;case"object":if(Array.isArray(a))i=e(a);else for(var l in i="",a)a[l]&&l&&(i&&(i+=" "),i+=l);break;default:i=a}i&&(o&&(o+=" "),o+=i)}}return o};function Bn(e,t,n){var r=[],o=mn(e,r,n);return r.length<2?n:o+t(r)}var Vn=Rn((function(e,t){var n=function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];var o=kn(n,t.registered);return hn(t,o,!1),t.key+"-"+o.name},r={css:n,cx:function(){for(var e=arguments.length,r=new Array(e),o=0;o<e;o++)r[o]=arguments[o];return Bn(t.registered,n,Fn(r))},theme:Object(o.useContext)(Nn)},a=e.children(r);return!0,a}));function Un(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}function zn(e,t){if(null==e)return{};var n,r,o=Un(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var Hn=n(4),Wn=n.n(Hn);function Gn(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function qn(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function $n(e,t,n){return t&&qn(e.prototype,t),n&&qn(e,n),e}function Yn(e,t){return(Yn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Qn(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Yn(e,t)}function Kn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Xn(e){return(Xn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Jn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Zn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function er(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Zn(Object(n),!0).forEach((function(t){Jn(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Zn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function tr(e){return(tr=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function nr(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function rr(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=tr(e);if(t){var o=tr(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return nr(this,n)}}var or=function(){};function ar(e,t){return t?"-"===t[0]?e+t:e+"__"+t:e}function ir(e,t,n){var r=[n];if(t&&e)for(var o in t)t.hasOwnProperty(o)&&t[o]&&r.push("".concat(ar(e,o)));return r.filter((function(e){return e})).map((function(e){return String(e).trim()})).join(" ")}var lr=function(e){return Array.isArray(e)?e.filter(Boolean):"object"===Xn(e)&&null!==e?[e]:[]};function ur(e){return[document.documentElement,document.body,window].indexOf(e)>-1}function sr(e){return ur(e)?window.pageYOffset:e.scrollTop}function cr(e,t){ur(e)?window.scrollTo(0,t):e.scrollTop=t}function fr(e,t,n,r){return n*((e=e/r-1)*e*e+1)+t}function dr(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:200,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:or,o=sr(e),a=t-o,i=10,l=0;function u(){var t=fr(l+=i,o,a,n);cr(e,t),l<n?window.requestAnimationFrame(u):r(e)}u()}function pr(){try{return document.createEvent("TouchEvent"),!0}catch(e){return!1}}function mr(e){var t=e.maxHeight,n=e.menuEl,r=e.minHeight,o=e.placement,a=e.shouldScroll,i=e.isFixedPosition,l=e.theme.spacing,u=function(e){var t=getComputedStyle(e),n="absolute"===t.position,r=/(auto|scroll)/,o=document.documentElement;if("fixed"===t.position)return o;for(var a=e;a=a.parentElement;)if(t=getComputedStyle(a),(!n||"static"!==t.position)&&r.test(t.overflow+t.overflowY+t.overflowX))return a;return o}(n),s={placement:"bottom",maxHeight:t};if(!n||!n.offsetParent)return s;var c=u.getBoundingClientRect().height,f=n.getBoundingClientRect(),d=f.bottom,p=f.height,m=f.top,h=n.offsetParent.getBoundingClientRect().top,v=window.innerHeight,g=sr(u),b=parseInt(getComputedStyle(n).marginBottom,10),y=parseInt(getComputedStyle(n).marginTop,10),_=h-y,w=v-m,E=_+g,S=c-g-m,x=d-v+g+b,O=g+m-y;switch(o){case"auto":case"bottom":if(w>=p)return{placement:"bottom",maxHeight:t};if(S>=p&&!i)return a&&dr(u,x,160),{placement:"bottom",maxHeight:t};if(!i&&S>=r||i&&w>=r)return a&&dr(u,x,160),{placement:"bottom",maxHeight:i?w-b:S-b};if("auto"===o||i){var C=t,k=i?_:E;return k>=r&&(C=Math.min(k-b-l.controlHeight,t)),{placement:"top",maxHeight:C}}if("bottom"===o)return cr(u,x),{placement:"bottom",maxHeight:t};break;case"top":if(_>=p)return{placement:"top",maxHeight:t};if(E>=p&&!i)return a&&dr(u,O,160),{placement:"top",maxHeight:t};if(!i&&E>=r||i&&_>=r){var P=t;return(!i&&E>=r||i&&_>=r)&&(P=i?_-y:E-y),a&&dr(u,O,160),{placement:"top",maxHeight:P}}return{placement:"bottom",maxHeight:t};default:throw new Error('Invalid placement provided "'.concat(o,'".'))}return s}var hr=function(e){return"auto"===e?"bottom":e},vr=Object(o.createContext)({getPortalPlacement:null}),gr=function(e){Qn(n,e);var t=rr(n);function n(){var e;Gn(this,n);for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];return(e=t.call.apply(t,[this].concat(o))).state={maxHeight:e.props.maxMenuHeight,placement:null},e.getPlacement=function(t){var n=e.props,r=n.minMenuHeight,o=n.maxMenuHeight,a=n.menuPlacement,i=n.menuPosition,l=n.menuShouldScrollIntoView,u=n.theme;if(t){var s="fixed"===i,c=mr({maxHeight:o,menuEl:t,minHeight:r,placement:a,shouldScroll:l&&!s,isFixedPosition:s,theme:u}),f=e.context.getPortalPlacement;f&&f(c),e.setState(c)}},e.getUpdatedProps=function(){var t=e.props.menuPlacement,n=e.state.placement||hr(t);return er(er({},e.props),{},{placement:n,maxHeight:e.state.maxHeight})},e}return $n(n,[{key:"render",value:function(){return(0,this.props.children)({ref:this.getPlacement,placerProps:this.getUpdatedProps()})}}]),n}(o.Component);gr.contextType=vr;var br=function(e){var t=e.theme,n=t.spacing.baseUnit;return{color:t.colors.neutral40,padding:"".concat(2*n,"px ").concat(3*n,"px"),textAlign:"center"}},yr=br,_r=br,wr=function(e){var t=e.children,n=e.className,r=e.cx,o=e.getStyles,a=e.innerProps;return jn("div",pt({css:o("noOptionsMessage",e),className:r({"menu-notice":!0,"menu-notice--no-options":!0},n)},a),t)};wr.defaultProps={children:"No options"};var Er=function(e){var t=e.children,n=e.className,r=e.cx,o=e.getStyles,a=e.innerProps;return jn("div",pt({css:o("loadingMessage",e),className:r({"menu-notice":!0,"menu-notice--loading":!0},n)},a),t)};Er.defaultProps={children:"Loading..."};var Sr,xr=function(e){Qn(n,e);var t=rr(n);function n(){var e;Gn(this,n);for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];return(e=t.call.apply(t,[this].concat(o))).state={placement:null},e.getPortalPlacement=function(t){var n=t.placement;n!==hr(e.props.menuPlacement)&&e.setState({placement:n})},e}return $n(n,[{key:"render",value:function(){var e=this.props,t=e.appendTo,n=e.children,r=e.className,o=e.controlElement,a=e.cx,l=e.innerProps,u=e.menuPlacement,s=e.menuPosition,c=e.getStyles,f="fixed"===s;if(!t&&!f||!o)return null;var d=this.state.placement||hr(u),p=function(e){var t=e.getBoundingClientRect();return{bottom:t.bottom,height:t.height,left:t.left,right:t.right,top:t.top,width:t.width}}(o),m=f?0:window.pageYOffset,h=p[d]+m,v=jn("div",pt({css:c("menuPortal",{offset:h,position:s,rect:p}),className:a({"menu-portal":!0},r)},l),n);return jn(vr.Provider,{value:{getPortalPlacement:this.getPortalPlacement}},t?Object(i.createPortal)(v,t):v)}}]),n}(o.Component);var Or,Cr,kr={name:"8mmkcg",styles:"display:inline-block;fill:currentColor;line-height:1;stroke:currentColor;stroke-width:0"},Pr=function(e){var t=e.size,n=zn(e,["size"]);return jn("svg",pt({height:t,width:t,viewBox:"0 0 20 20","aria-hidden":"true",focusable:"false",css:kr},n))},Ir=function(e){return jn(Pr,pt({size:20},e),jn("path",{d:"M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z"}))},Dr=function(e){return jn(Pr,pt({size:20},e),jn("path",{d:"M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z"}))},Rr=function(e){var t=e.isFocused,n=e.theme,r=n.spacing.baseUnit,o=n.colors;return{label:"indicatorContainer",color:t?o.neutral60:o.neutral20,display:"flex",padding:2*r,transition:"color 150ms",":hover":{color:t?o.neutral80:o.neutral40}}},Nr=Rr,Tr=Rr,Lr=function(){var e=Mn.apply(void 0,arguments),t="animation-"+e.name;return{name:t,styles:"@keyframes "+t+"{"+e.styles+"}",anim:1,toString:function(){return"_EMO_"+this.name+"_"+this.styles+"_EMO_"}}}(Sr||(Or=["\n 0%, 80%, 100% { opacity: 0; }\n 40% { opacity: 1; }\n"],Cr||(Cr=Or.slice(0)),Sr=Object.freeze(Object.defineProperties(Or,{raw:{value:Object.freeze(Cr)}})))),Ar=function(e){var t=e.delay,n=e.offset;return jn("span",{css:Mn({animation:"".concat(Lr," 1s ease-in-out ").concat(t,"ms infinite;"),backgroundColor:"currentColor",borderRadius:"1em",display:"inline-block",marginLeft:n?"1em":null,height:"1em",verticalAlign:"top",width:"1em"},"","")})},jr=function(e){var t=e.className,n=e.cx,r=e.getStyles,o=e.innerProps,a=e.isRtl;return jn("div",pt({css:r("loadingIndicator",e),className:n({indicator:!0,"loading-indicator":!0},t)},o),jn(Ar,{delay:0,offset:a}),jn(Ar,{delay:160,offset:!0}),jn(Ar,{delay:320,offset:!a}))};jr.defaultProps={size:4};var Mr=function(e){return{label:"input",background:0,border:0,fontSize:"inherit",opacity:e?0:1,outline:0,padding:0,color:"inherit"}},Fr=function(e){var t=e.children,n=e.innerProps;return jn("div",n,t)},Br=Fr,Vr=Fr;var Ur=function(e){var t=e.children,n=e.className,r=e.components,o=e.cx,a=e.data,i=e.getStyles,l=e.innerProps,u=e.isDisabled,s=e.removeProps,c=e.selectProps,f=r.Container,d=r.Label,p=r.Remove;return jn(Vn,null,(function(r){var m=r.css,h=r.cx;return jn(f,{data:a,innerProps:er({className:h(m(i("multiValue",e)),o({"multi-value":!0,"multi-value--is-disabled":u},n))},l),selectProps:c},jn(d,{data:a,innerProps:{className:h(m(i("multiValueLabel",e)),o({"multi-value__label":!0},n))},selectProps:c},t),jn(p,{data:a,innerProps:er({className:h(m(i("multiValueRemove",e)),o({"multi-value__remove":!0},n))},s),selectProps:c}))}))};Ur.defaultProps={cropWithEllipsis:!0};var zr={ClearIndicator:function(e){var t=e.children,n=e.className,r=e.cx,o=e.getStyles,a=e.innerProps;return jn("div",pt({css:o("clearIndicator",e),className:r({indicator:!0,"clear-indicator":!0},n)},a),t||jn(Ir,null))},Control:function(e){var t=e.children,n=e.cx,r=e.getStyles,o=e.className,a=e.isDisabled,i=e.isFocused,l=e.innerRef,u=e.innerProps,s=e.menuIsOpen;return jn("div",pt({ref:l,css:r("control",e),className:n({control:!0,"control--is-disabled":a,"control--is-focused":i,"control--menu-is-open":s},o)},u),t)},DropdownIndicator:function(e){var t=e.children,n=e.className,r=e.cx,o=e.getStyles,a=e.innerProps;return jn("div",pt({css:o("dropdownIndicator",e),className:r({indicator:!0,"dropdown-indicator":!0},n)},a),t||jn(Dr,null))},DownChevron:Dr,CrossIcon:Ir,Group:function(e){var t=e.children,n=e.className,r=e.cx,o=e.getStyles,a=e.Heading,i=e.headingProps,l=e.innerProps,u=e.label,s=e.theme,c=e.selectProps;return jn("div",pt({css:o("group",e),className:r({group:!0},n)},l),jn(a,pt({},i,{selectProps:c,theme:s,getStyles:o,cx:r}),u),jn("div",null,t))},GroupHeading:function(e){var t=e.className,n=e.cx,r=e.getStyles,o=e.theme;e.selectProps;var a=zn(e,["className","cx","getStyles","theme","selectProps"]);return jn("div",pt({css:r("groupHeading",er({theme:o},a)),className:n({"group-heading":!0},t)},a))},IndicatorsContainer:function(e){var t=e.children,n=e.className,r=e.cx,o=e.innerProps,a=e.getStyles;return jn("div",pt({css:a("indicatorsContainer",e),className:r({indicators:!0},n)},o),t)},IndicatorSeparator:function(e){var t=e.className,n=e.cx,r=e.getStyles,o=e.innerProps;return jn("span",pt({},o,{css:r("indicatorSeparator",e),className:n({"indicator-separator":!0},t)}))},Input:function(e){var t=e.className,n=e.cx,r=e.getStyles,o=e.innerRef,a=e.isHidden,i=e.isDisabled,l=e.theme;e.selectProps;var u=zn(e,["className","cx","getStyles","innerRef","isHidden","isDisabled","theme","selectProps"]);return jn("div",{css:r("input",er({theme:l},u))},jn(Wn.a,pt({className:n({input:!0},t),inputRef:o,inputStyle:Mr(a),disabled:i},u)))},LoadingIndicator:jr,Menu:function(e){var t=e.children,n=e.className,r=e.cx,o=e.getStyles,a=e.innerRef,i=e.innerProps;return jn("div",pt({css:o("menu",e),className:r({menu:!0},n),ref:a},i),t)},MenuList:function(e){var t=e.children,n=e.className,r=e.cx,o=e.getStyles,a=e.innerProps,i=e.innerRef,l=e.isMulti;return jn("div",pt({css:o("menuList",e),className:r({"menu-list":!0,"menu-list--is-multi":l},n),ref:i},a),t)},MenuPortal:xr,LoadingMessage:Er,NoOptionsMessage:wr,MultiValue:Ur,MultiValueContainer:Br,MultiValueLabel:Vr,MultiValueRemove:function(e){var t=e.children,n=e.innerProps;return jn("div",n,t||jn(Ir,{size:14}))},Option:function(e){var t=e.children,n=e.className,r=e.cx,o=e.getStyles,a=e.isDisabled,i=e.isFocused,l=e.isSelected,u=e.innerRef,s=e.innerProps;return jn("div",pt({css:o("option",e),className:r({option:!0,"option--is-disabled":a,"option--is-focused":i,"option--is-selected":l},n),ref:u},s),t)},Placeholder:function(e){var t=e.children,n=e.className,r=e.cx,o=e.getStyles,a=e.innerProps;return jn("div",pt({css:o("placeholder",e),className:r({placeholder:!0},n)},a),t)},SelectContainer:function(e){var t=e.children,n=e.className,r=e.cx,o=e.getStyles,a=e.innerProps,i=e.isDisabled,l=e.isRtl;return jn("div",pt({css:o("container",e),className:r({"--is-disabled":i,"--is-rtl":l},n)},a),t)},SingleValue:function(e){var t=e.children,n=e.className,r=e.cx,o=e.getStyles,a=e.isDisabled,i=e.innerProps;return jn("div",pt({css:o("singleValue",e),className:r({"single-value":!0,"single-value--is-disabled":a},n)},i),t)},ValueContainer:function(e){var t=e.children,n=e.className,r=e.cx,o=e.innerProps,a=e.isMulti,i=e.getStyles,l=e.hasValue;return jn("div",pt({css:i("valueContainer",e),className:r({"value-container":!0,"value-container--is-multi":a,"value-container--has-value":l},n)},o),t)}};function Hr(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Wr(e){return function(e){if(Array.isArray(e))return Hr(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return Hr(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Hr(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}for(var Gr=[{base:"A",letters:"AⒶAÀÁÂẦẤẪẨÃĀĂẰẮẴẲȦǠÄǞẢÅǺǍȀȂẠẬẶḀĄȺⱯ"},{base:"AA",letters:"Ꜳ"},{base:"AE",letters:"ÆǼǢ"},{base:"AO",letters:"Ꜵ"},{base:"AU",letters:"Ꜷ"},{base:"AV",letters:"ꜸꜺ"},{base:"AY",letters:"Ꜽ"},{base:"B",letters:"BⒷBḂḄḆɃƂƁ"},{base:"C",letters:"CⒸCĆĈĊČÇḈƇȻꜾ"},{base:"D",letters:"DⒹDḊĎḌḐḒḎĐƋƊƉꝹ"},{base:"DZ",letters:"DZDŽ"},{base:"Dz",letters:"DzDž"},{base:"E",letters:"EⒺEÈÉÊỀẾỄỂẼĒḔḖĔĖËẺĚȄȆẸỆȨḜĘḘḚƐƎ"},{base:"F",letters:"FⒻFḞƑꝻ"},{base:"G",letters:"GⒼGǴĜḠĞĠǦĢǤƓꞠꝽꝾ"},{base:"H",letters:"HⒽHĤḢḦȞḤḨḪĦⱧⱵꞍ"},{base:"I",letters:"IⒾIÌÍÎĨĪĬİÏḮỈǏȈȊỊĮḬƗ"},{base:"J",letters:"JⒿJĴɈ"},{base:"K",letters:"KⓀKḰǨḲĶḴƘⱩꝀꝂꝄꞢ"},{base:"L",letters:"LⓁLĿĹĽḶḸĻḼḺŁȽⱢⱠꝈꝆꞀ"},{base:"LJ",letters:"LJ"},{base:"Lj",letters:"Lj"},{base:"M",letters:"MⓂMḾṀṂⱮƜ"},{base:"N",letters:"NⓃNǸŃÑṄŇṆŅṊṈȠƝꞐꞤ"},{base:"NJ",letters:"NJ"},{base:"Nj",letters:"Nj"},{base:"O",letters:"OⓄOÒÓÔỒỐỖỔÕṌȬṎŌṐṒŎȮȰÖȪỎŐǑȌȎƠỜỚỠỞỢỌỘǪǬØǾƆƟꝊꝌ"},{base:"OI",letters:"Ƣ"},{base:"OO",letters:"Ꝏ"},{base:"OU",letters:"Ȣ"},{base:"P",letters:"PⓅPṔṖƤⱣꝐꝒꝔ"},{base:"Q",letters:"QⓆQꝖꝘɊ"},{base:"R",letters:"RⓇRŔṘŘȐȒṚṜŖṞɌⱤꝚꞦꞂ"},{base:"S",letters:"SⓈSẞŚṤŜṠŠṦṢṨȘŞⱾꞨꞄ"},{base:"T",letters:"TⓉTṪŤṬȚŢṰṮŦƬƮȾꞆ"},{base:"TZ",letters:"Ꜩ"},{base:"U",letters:"UⓊUÙÚÛŨṸŪṺŬÜǛǗǕǙỦŮŰǓȔȖƯỪỨỮỬỰỤṲŲṶṴɄ"},{base:"V",letters:"VⓋVṼṾƲꝞɅ"},{base:"VY",letters:"Ꝡ"},{base:"W",letters:"WⓌWẀẂŴẆẄẈⱲ"},{base:"X",letters:"XⓍXẊẌ"},{base:"Y",letters:"YⓎYỲÝŶỸȲẎŸỶỴƳɎỾ"},{base:"Z",letters:"ZⓏZŹẐŻŽẒẔƵȤⱿⱫꝢ"},{base:"a",letters:"aⓐaẚàáâầấẫẩãāăằắẵẳȧǡäǟảåǻǎȁȃạậặḁąⱥɐ"},{base:"aa",letters:"ꜳ"},{base:"ae",letters:"æǽǣ"},{base:"ao",letters:"ꜵ"},{base:"au",letters:"ꜷ"},{base:"av",letters:"ꜹꜻ"},{base:"ay",letters:"ꜽ"},{base:"b",letters:"bⓑbḃḅḇƀƃɓ"},{base:"c",letters:"cⓒcćĉċčçḉƈȼꜿↄ"},{base:"d",letters:"dⓓdḋďḍḑḓḏđƌɖɗꝺ"},{base:"dz",letters:"dzdž"},{base:"e",letters:"eⓔeèéêềếễểẽēḕḗĕėëẻěȅȇẹệȩḝęḙḛɇɛǝ"},{base:"f",letters:"fⓕfḟƒꝼ"},{base:"g",letters:"gⓖgǵĝḡğġǧģǥɠꞡᵹꝿ"},{base:"h",letters:"hⓗhĥḣḧȟḥḩḫẖħⱨⱶɥ"},{base:"hv",letters:"ƕ"},{base:"i",letters:"iⓘiìíîĩīĭïḯỉǐȉȋịįḭɨı"},{base:"j",letters:"jⓙjĵǰɉ"},{base:"k",letters:"kⓚkḱǩḳķḵƙⱪꝁꝃꝅꞣ"},{base:"l",letters:"lⓛlŀĺľḷḹļḽḻſłƚɫⱡꝉꞁꝇ"},{base:"lj",letters:"lj"},{base:"m",letters:"mⓜmḿṁṃɱɯ"},{base:"n",letters:"nⓝnǹńñṅňṇņṋṉƞɲʼnꞑꞥ"},{base:"nj",letters:"nj"},{base:"o",letters:"oⓞoòóôồốỗổõṍȭṏōṑṓŏȯȱöȫỏőǒȍȏơờớỡởợọộǫǭøǿɔꝋꝍɵ"},{base:"oi",letters:"ƣ"},{base:"ou",letters:"ȣ"},{base:"oo",letters:"ꝏ"},{base:"p",letters:"pⓟpṕṗƥᵽꝑꝓꝕ"},{base:"q",letters:"qⓠqɋꝗꝙ"},{base:"r",letters:"rⓡrŕṙřȑȓṛṝŗṟɍɽꝛꞧꞃ"},{base:"s",letters:"sⓢsßśṥŝṡšṧṣṩșşȿꞩꞅẛ"},{base:"t",letters:"tⓣtṫẗťṭțţṱṯŧƭʈⱦꞇ"},{base:"tz",letters:"ꜩ"},{base:"u",letters:"uⓤuùúûũṹūṻŭüǜǘǖǚủůűǔȕȗưừứữửựụṳųṷṵʉ"},{base:"v",letters:"vⓥvṽṿʋꝟʌ"},{base:"vy",letters:"ꝡ"},{base:"w",letters:"wⓦwẁẃŵẇẅẘẉⱳ"},{base:"x",letters:"xⓧxẋẍ"},{base:"y",letters:"yⓨyỳýŷỹȳẏÿỷẙỵƴɏỿ"},{base:"z",letters:"zⓩzźẑżžẓẕƶȥɀⱬꝣ"}],qr=new RegExp("["+Gr.map((function(e){return e.letters})).join("")+"]","g"),$r={},Yr=0;Yr<Gr.length;Yr++)for(var Qr=Gr[Yr],Kr=0;Kr<Qr.letters.length;Kr++)$r[Qr.letters[Kr]]=Qr.base;var Xr=function(e){return e.replace(qr,(function(e){return $r[e]}))},Jr=function(e){return e.replace(/^\s+|\s+$/g,"")},Zr=function(e){return"".concat(e.label," ").concat(e.value)};var eo={name:"7pg0cj-a11yText",styles:"label:a11yText;z-index:9999;border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;width:1px;position:absolute;overflow:hidden;padding:0;white-space:nowrap"},to=function(e){return jn("span",pt({css:eo},e))};function no(e){e.in,e.out,e.onExited,e.appear,e.enter,e.exit;var t=e.innerRef;e.emotion;var n=zn(e,["in","out","onExited","appear","enter","exit","innerRef","emotion"]);return jn("input",pt({ref:t},n,{css:Mn({label:"dummyInput",background:0,border:0,fontSize:"inherit",outline:0,padding:0,width:1,color:"transparent",left:-100,opacity:0,position:"relative",transform:"scale(0)"},"","")}))}var ro=["boxSizing","height","overflow","paddingRight","position"],oo={boxSizing:"border-box",overflow:"hidden",position:"relative",height:"100%"};function ao(e){e.preventDefault()}function io(e){e.stopPropagation()}function lo(){var e=this.scrollTop,t=this.scrollHeight,n=e+this.offsetHeight;0===e?this.scrollTop=1:n===t&&(this.scrollTop=e-1)}function uo(){return"ontouchstart"in window||navigator.maxTouchPoints}var so=!(!window.document||!window.document.createElement),co=0,fo={capture:!1,passive:!1};var po=function(){return document.activeElement&&document.activeElement.blur()},mo={name:"1kfdb0e",styles:"position:fixed;left:0;bottom:0;right:0;top:0"};function ho(e){var t=e.children,n=e.lockEnabled,r=e.captureEnabled,i=function(e){var t=e.isEnabled,n=e.onBottomArrive,r=e.onBottomLeave,a=e.onTopArrive,i=e.onTopLeave,l=Object(o.useRef)(!1),u=Object(o.useRef)(!1),s=Object(o.useRef)(0),c=Object(o.useRef)(null),f=Object(o.useCallback)((function(e,t){if(null!==c.current){var o=c.current,s=o.scrollTop,f=o.scrollHeight,d=o.clientHeight,p=c.current,m=t>0,h=f-d-s,v=!1;h>t&&l.current&&(r&&r(e),l.current=!1),m&&u.current&&(i&&i(e),u.current=!1),m&&t>h?(n&&!l.current&&n(e),p.scrollTop=f,v=!0,l.current=!0):!m&&-t>s&&(a&&!u.current&&a(e),p.scrollTop=0,v=!0,u.current=!0),v&&function(e){e.preventDefault(),e.stopPropagation()}(e)}}),[]),d=Object(o.useCallback)((function(e){f(e,e.deltaY)}),[f]),p=Object(o.useCallback)((function(e){s.current=e.changedTouches[0].clientY}),[]),m=Object(o.useCallback)((function(e){var t=s.current-e.changedTouches[0].clientY;f(e,t)}),[f]),h=Object(o.useCallback)((function(e){e&&("function"==typeof e.addEventListener&&e.addEventListener("wheel",d,!1),"function"==typeof e.addEventListener&&e.addEventListener("touchstart",p,!1),"function"==typeof e.addEventListener&&e.addEventListener("touchmove",m,!1))}),[m,p,d]),v=Object(o.useCallback)((function(e){e&&("function"==typeof e.removeEventListener&&e.removeEventListener("wheel",d,!1),"function"==typeof e.removeEventListener&&e.removeEventListener("touchstart",p,!1),"function"==typeof e.removeEventListener&&e.removeEventListener("touchmove",m,!1))}),[m,p,d]);return Object(o.useEffect)((function(){if(t){var e=c.current;return h(e),function(){v(e)}}}),[t,h,v]),function(e){c.current=e}}({isEnabled:void 0===r||r,onBottomArrive:e.onBottomArrive,onBottomLeave:e.onBottomLeave,onTopArrive:e.onTopArrive,onTopLeave:e.onTopLeave}),l=function(e){var t=e.isEnabled,n=e.accountForScrollbars,r=void 0===n||n,a=Object(o.useRef)({}),i=Object(o.useRef)(null),l=Object(o.useCallback)((function(e){if(so){var t=document.body,n=t&&t.style;if(r&&ro.forEach((function(e){var t=n&&n[e];a.current[e]=t})),r&&co<1){var o=parseInt(a.current.paddingRight,10)||0,i=document.body?document.body.clientWidth:0,l=window.innerWidth-i+o||0;Object.keys(oo).forEach((function(e){var t=oo[e];n&&(n[e]=t)})),n&&(n.paddingRight="".concat(l,"px"))}t&&uo()&&(t.addEventListener("touchmove",ao,fo),e&&(e.addEventListener("touchstart",lo,fo),e.addEventListener("touchmove",io,fo))),co+=1}}),[]),u=Object(o.useCallback)((function(e){if(so){var t=document.body,n=t&&t.style;co=Math.max(co-1,0),r&&co<1&&ro.forEach((function(e){var t=a.current[e];n&&(n[e]=t)})),t&&uo()&&(t.removeEventListener("touchmove",ao,fo),e&&(e.removeEventListener("touchstart",lo,fo),e.removeEventListener("touchmove",io,fo)))}}),[]);return Object(o.useEffect)((function(){if(t){var e=i.current;return l(e),function(){u(e)}}}),[t,l,u]),function(e){i.current=e}}({isEnabled:n});return jn(a.a.Fragment,null,n&&jn("div",{onClick:po,css:mo}),t((function(e){i(e),l(e)})))}var vo=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.isSearchable,r=t.isMulti,o=t.label,a=t.isDisabled,i=t.tabSelectsValue;switch(e){case"menu":return"Use Up and Down to choose options".concat(a?"":", press Enter to select the currently focused option",", press Escape to exit the menu").concat(i?", press Tab to select the option and exit the menu":"",".");case"input":return"".concat(o||"Select"," is focused ").concat(n?",type to refine list":"",", press Down to open the menu, ").concat(r?" press left to focus selected values":"");case"value":return"Use left and right to toggle between focused values, press Backspace to remove the currently focused value"}},go=function(e,t){var n=t.value,r=t.isDisabled;if(n)switch(e){case"deselect-option":case"pop-value":case"remove-value":return"option ".concat(n,", deselected.");case"select-option":return"option ".concat(n,r?" is disabled. Select another option.":", selected.")}},bo={clearIndicator:Tr,container:function(e){var t=e.isDisabled;return{label:"container",direction:e.isRtl?"rtl":null,pointerEvents:t?"none":null,position:"relative"}},control:function(e){var t=e.isDisabled,n=e.isFocused,r=e.theme,o=r.colors,a=r.borderRadius,i=r.spacing;return{label:"control",alignItems:"center",backgroundColor:t?o.neutral5:o.neutral0,borderColor:t?o.neutral10:n?o.primary:o.neutral20,borderRadius:a,borderStyle:"solid",borderWidth:1,boxShadow:n?"0 0 0 1px ".concat(o.primary):null,cursor:"default",display:"flex",flexWrap:"wrap",justifyContent:"space-between",minHeight:i.controlHeight,outline:"0 !important",position:"relative",transition:"all 100ms","&:hover":{borderColor:n?o.primary:o.neutral30}}},dropdownIndicator:Nr,group:function(e){var t=e.theme.spacing;return{paddingBottom:2*t.baseUnit,paddingTop:2*t.baseUnit}},groupHeading:function(e){var t=e.theme.spacing;return{label:"group",color:"#999",cursor:"default",display:"block",fontSize:"75%",fontWeight:"500",marginBottom:"0.25em",paddingLeft:3*t.baseUnit,paddingRight:3*t.baseUnit,textTransform:"uppercase"}},indicatorsContainer:function(){return{alignItems:"center",alignSelf:"stretch",display:"flex",flexShrink:0}},indicatorSeparator:function(e){var t=e.isDisabled,n=e.theme,r=n.spacing.baseUnit,o=n.colors;return{label:"indicatorSeparator",alignSelf:"stretch",backgroundColor:t?o.neutral10:o.neutral20,marginBottom:2*r,marginTop:2*r,width:1}},input:function(e){var t=e.isDisabled,n=e.theme,r=n.spacing,o=n.colors;return{margin:r.baseUnit/2,paddingBottom:r.baseUnit/2,paddingTop:r.baseUnit/2,visibility:t?"hidden":"visible",color:o.neutral80}},loadingIndicator:function(e){var t=e.isFocused,n=e.size,r=e.theme,o=r.colors,a=r.spacing.baseUnit;return{label:"loadingIndicator",color:t?o.neutral60:o.neutral20,display:"flex",padding:2*a,transition:"color 150ms",alignSelf:"center",fontSize:n,lineHeight:1,marginRight:n,textAlign:"center",verticalAlign:"middle"}},loadingMessage:_r,menu:function(e){var t,n=e.placement,r=e.theme,o=r.borderRadius,a=r.spacing,i=r.colors;return Kn(t={label:"menu"},function(e){return e?{bottom:"top",top:"bottom"}[e]:"bottom"}(n),"100%"),Kn(t,"backgroundColor",i.neutral0),Kn(t,"borderRadius",o),Kn(t,"boxShadow","0 0 0 1px hsla(0, 0%, 0%, 0.1), 0 4px 11px hsla(0, 0%, 0%, 0.1)"),Kn(t,"marginBottom",a.menuGutter),Kn(t,"marginTop",a.menuGutter),Kn(t,"position","absolute"),Kn(t,"width","100%"),Kn(t,"zIndex",1),t},menuList:function(e){var t=e.maxHeight,n=e.theme.spacing.baseUnit;return{maxHeight:t,overflowY:"auto",paddingBottom:n,paddingTop:n,position:"relative",WebkitOverflowScrolling:"touch"}},menuPortal:function(e){var t=e.rect,n=e.offset,r=e.position;return{left:t.left,position:r,top:n,width:t.width,zIndex:1}},multiValue:function(e){var t=e.theme,n=t.spacing,r=t.borderRadius;return{label:"multiValue",backgroundColor:t.colors.neutral10,borderRadius:r/2,display:"flex",margin:n.baseUnit/2,minWidth:0}},multiValueLabel:function(e){var t=e.theme,n=t.borderRadius,r=t.colors,o=e.cropWithEllipsis;return{borderRadius:n/2,color:r.neutral80,fontSize:"85%",overflow:"hidden",padding:3,paddingLeft:6,textOverflow:o?"ellipsis":null,whiteSpace:"nowrap"}},multiValueRemove:function(e){var t=e.theme,n=t.spacing,r=t.borderRadius,o=t.colors;return{alignItems:"center",borderRadius:r/2,backgroundColor:e.isFocused&&o.dangerLight,display:"flex",paddingLeft:n.baseUnit,paddingRight:n.baseUnit,":hover":{backgroundColor:o.dangerLight,color:o.danger}}},noOptionsMessage:yr,option:function(e){var t=e.isDisabled,n=e.isFocused,r=e.isSelected,o=e.theme,a=o.spacing,i=o.colors;return{label:"option",backgroundColor:r?i.primary:n?i.primary25:"transparent",color:t?i.neutral20:r?i.neutral0:"inherit",cursor:"default",display:"block",fontSize:"inherit",padding:"".concat(2*a.baseUnit,"px ").concat(3*a.baseUnit,"px"),width:"100%",userSelect:"none",WebkitTapHighlightColor:"rgba(0, 0, 0, 0)",":active":{backgroundColor:!t&&(r?i.primary:i.primary50)}}},placeholder:function(e){var t=e.theme,n=t.spacing;return{label:"placeholder",color:t.colors.neutral50,marginLeft:n.baseUnit/2,marginRight:n.baseUnit/2,position:"absolute",top:"50%",transform:"translateY(-50%)"}},singleValue:function(e){var t=e.isDisabled,n=e.theme,r=n.spacing,o=n.colors;return{label:"singleValue",color:t?o.neutral40:o.neutral80,marginLeft:r.baseUnit/2,marginRight:r.baseUnit/2,maxWidth:"calc(100% - ".concat(2*r.baseUnit,"px)"),overflow:"hidden",position:"absolute",textOverflow:"ellipsis",whiteSpace:"nowrap",top:"50%",transform:"translateY(-50%)"}},valueContainer:function(e){var t=e.theme.spacing;return{alignItems:"center",display:"flex",flex:1,flexWrap:"wrap",padding:"".concat(t.baseUnit/2,"px ").concat(2*t.baseUnit,"px"),WebkitOverflowScrolling:"touch",position:"relative",overflow:"hidden"}}};var yo,_o={borderRadius:4,colors:{primary:"#2684FF",primary75:"#4C9AFF",primary50:"#B2D4FF",primary25:"#DEEBFF",danger:"#DE350B",dangerLight:"#FFBDAD",neutral0:"hsl(0, 0%, 100%)",neutral5:"hsl(0, 0%, 95%)",neutral10:"hsl(0, 0%, 90%)",neutral20:"hsl(0, 0%, 80%)",neutral30:"hsl(0, 0%, 70%)",neutral40:"hsl(0, 0%, 60%)",neutral50:"hsl(0, 0%, 50%)",neutral60:"hsl(0, 0%, 40%)",neutral70:"hsl(0, 0%, 30%)",neutral80:"hsl(0, 0%, 20%)",neutral90:"hsl(0, 0%, 10%)"},spacing:{baseUnit:4,controlHeight:38,menuGutter:8}},wo={backspaceRemovesValue:!0,blurInputOnSelect:pr(),captureMenuScroll:!pr(),closeMenuOnSelect:!0,closeMenuOnScroll:!1,components:{},controlShouldRenderValue:!0,escapeClearsValue:!1,filterOption:function(e,t){var n=er({ignoreCase:!0,ignoreAccents:!0,stringify:Zr,trim:!0,matchFrom:"any"},yo),r=n.ignoreCase,o=n.ignoreAccents,a=n.stringify,i=n.trim,l=n.matchFrom,u=i?Jr(t):t,s=i?Jr(a(e)):a(e);return r&&(u=u.toLowerCase(),s=s.toLowerCase()),o&&(u=Xr(u),s=Xr(s)),"start"===l?s.substr(0,u.length)===u:s.indexOf(u)>-1},formatGroupLabel:function(e){return e.label},getOptionLabel:function(e){return e.label},getOptionValue:function(e){return e.value},isDisabled:!1,isLoading:!1,isMulti:!1,isRtl:!1,isSearchable:!0,isOptionDisabled:function(e){return!!e.isDisabled},loadingMessage:function(){return"Loading..."},maxMenuHeight:300,minMenuHeight:140,menuIsOpen:!1,menuPlacement:"bottom",menuPosition:"absolute",menuShouldBlockScroll:!1,menuShouldScrollIntoView:!function(){try{return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)}catch(e){return!1}}(),noOptionsMessage:function(){return"No options"},openMenuOnFocus:!1,openMenuOnClick:!0,options:[],pageSize:5,placeholder:"Select...",screenReaderStatus:function(e){var t=e.count;return"".concat(t," result").concat(1!==t?"s":""," available")},styles:{},tabIndex:"0",tabSelectsValue:!0};function Eo(e,t,n,r){return{type:"option",data:t,isDisabled:Po(e,t,n),isSelected:Io(e,t,n),label:Co(e,t),value:ko(e,t),index:r}}function So(e,t){return e.options.map((function(n,r){if(n.options){var o=n.options.map((function(n,r){return Eo(e,n,t,r)})).filter((function(t){return Oo(e,t)}));return o.length>0?{type:"group",data:n,options:o,index:r}:void 0}var a=Eo(e,n,t,r);return Oo(e,a)?a:void 0})).filter((function(e){return!!e}))}function xo(e){return e.reduce((function(e,t){return"group"===t.type?e.push.apply(e,Wr(t.options.map((function(e){return e.data})))):e.push(t.data),e}),[])}function Oo(e,t){var n=e.inputValue,r=void 0===n?"":n,o=t.data,a=t.isSelected,i=t.label,l=t.value;return(!Ro(e)||!a)&&Do(e,{label:i,value:l,data:o},r)}var Co=function(e,t){return e.getOptionLabel(t)},ko=function(e,t){return e.getOptionValue(t)};function Po(e,t,n){return"function"==typeof e.isOptionDisabled&&e.isOptionDisabled(t,n)}function Io(e,t,n){if(n.indexOf(t)>-1)return!0;if("function"==typeof e.isOptionSelected)return e.isOptionSelected(t,n);var r=ko(e,t);return n.some((function(t){return ko(e,t)===r}))}function Do(e,t,n){return!e.filterOption||e.filterOption(t,n)}var Ro=function(e){var t=e.hideSelectedOptions,n=e.isMulti;return void 0===t?n:t},No=1,To=function(e){Qn(n,e);var t=rr(n);function n(e){var r;return Gn(this,n),(r=t.call(this,e)).state={ariaLiveSelection:"",ariaLiveContext:"",focusedOption:null,focusedValue:null,inputIsHidden:!1,isFocused:!1,selectValue:[],clearFocusValueOnUpdate:!1,inputIsHiddenAfterUpdate:void 0,prevProps:void 0},r.blockOptionHover=!1,r.isComposing=!1,r.commonProps=void 0,r.initialTouchX=0,r.initialTouchY=0,r.instancePrefix="",r.openAfterFocus=!1,r.scrollToFocusedOptionOnUpdate=!1,r.userIsDragging=void 0,r.controlRef=null,r.getControlRef=function(e){r.controlRef=e},r.focusedOptionRef=null,r.getFocusedOptionRef=function(e){r.focusedOptionRef=e},r.menuListRef=null,r.getMenuListRef=function(e){r.menuListRef=e},r.inputRef=null,r.getInputRef=function(e){r.inputRef=e},r.focus=r.focusInput,r.blur=r.blurInput,r.onChange=function(e,t){var n=r.props,o=n.onChange,a=n.name;o(e,er(er({},t),{},{name:a}))},r.setValue=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"set-value",n=arguments.length>2?arguments[2]:void 0,o=r.props,a=o.closeMenuOnSelect,i=o.isMulti;r.onInputChange("",{action:"set-value"}),a&&(r.setState({inputIsHiddenAfterUpdate:!i}),r.onMenuClose()),r.setState({clearFocusValueOnUpdate:!0}),r.onChange(e,{action:t,option:n})},r.selectOption=function(e){var t=r.props,n=t.blurInputOnSelect,o=t.isMulti,a=r.state.selectValue;if(o)if(r.isOptionSelected(e,a)){var i=r.getOptionValue(e);r.setValue(a.filter((function(e){return r.getOptionValue(e)!==i})),"deselect-option",e),r.announceAriaLiveSelection({event:"deselect-option",context:{value:r.getOptionLabel(e)}})}else r.isOptionDisabled(e,a)?r.announceAriaLiveSelection({event:"select-option",context:{value:r.getOptionLabel(e),isDisabled:!0}}):(r.setValue([].concat(Wr(a),[e]),"select-option",e),r.announceAriaLiveSelection({event:"select-option",context:{value:r.getOptionLabel(e)}}));else r.isOptionDisabled(e,a)?r.announceAriaLiveSelection({event:"select-option",context:{value:r.getOptionLabel(e),isDisabled:!0}}):(r.setValue(e,"select-option"),r.announceAriaLiveSelection({event:"select-option",context:{value:r.getOptionLabel(e)}}));n&&r.blurInput()},r.removeValue=function(e){var t=r.props.isMulti,n=r.state.selectValue,o=r.getOptionValue(e),a=n.filter((function(e){return r.getOptionValue(e)!==o})),i=t?a:a.length>0?a[0]:null;r.onChange(i,{action:"remove-value",removedValue:e}),r.announceAriaLiveSelection({event:"remove-value",context:{value:e?r.getOptionLabel(e):""}}),r.focusInput()},r.clearValue=function(){var e=r.state.selectValue;r.onChange(r.props.isMulti?[]:null,{action:"clear",removedValues:e})},r.popValue=function(){var e=r.props.isMulti,t=r.state.selectValue,n=t[t.length-1],o=t.slice(0,t.length-1),a=e?o:o.length>0?o[0]:null;r.announceAriaLiveSelection({event:"pop-value",context:{value:n?r.getOptionLabel(n):""}}),r.onChange(a,{action:"pop-value",removedValue:n})},r.getValue=function(){return r.state.selectValue},r.cx=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return ir.apply(void 0,[r.props.classNamePrefix].concat(t))},r.getOptionLabel=function(e){return Co(r.props,e)},r.getOptionValue=function(e){return ko(r.props,e)},r.getStyles=function(e,t){var n=bo[e](t);n.boxSizing="border-box";var o=r.props.styles[e];return o?o(n,t):n},r.getElementId=function(e){return"".concat(r.instancePrefix,"-").concat(e)},r.getComponents=function(){return e=r.props,er(er({},zr),e.components);var e},r.buildCategorizedOptions=function(){return So(r.props,r.state.selectValue)},r.getCategorizedOptions=function(){return r.props.menuIsOpen?r.buildCategorizedOptions():[]},r.buildFocusableOptions=function(){return xo(r.buildCategorizedOptions())},r.getFocusableOptions=function(){return r.props.menuIsOpen?r.buildFocusableOptions():[]},r.announceAriaLiveSelection=function(e){var t=e.event,n=e.context;r.setState({ariaLiveSelection:go(t,n)})},r.announceAriaLiveContext=function(e){var t=e.event,n=e.context;r.setState({ariaLiveContext:vo(t,er(er({},n),{},{label:r.props["aria-label"]}))})},r.onMenuMouseDown=function(e){0===e.button&&(e.stopPropagation(),e.preventDefault(),r.focusInput())},r.onMenuMouseMove=function(e){r.blockOptionHover=!1},r.onControlMouseDown=function(e){var t=r.props.openMenuOnClick;r.state.isFocused?r.props.menuIsOpen?"INPUT"!==e.target.tagName&&"TEXTAREA"!==e.target.tagName&&r.onMenuClose():t&&r.openMenu("first"):(t&&(r.openAfterFocus=!0),r.focusInput()),"INPUT"!==e.target.tagName&&"TEXTAREA"!==e.target.tagName&&e.preventDefault()},r.onDropdownIndicatorMouseDown=function(e){if(!(e&&"mousedown"===e.type&&0!==e.button||r.props.isDisabled)){var t=r.props,n=t.isMulti,o=t.menuIsOpen;r.focusInput(),o?(r.setState({inputIsHiddenAfterUpdate:!n}),r.onMenuClose()):r.openMenu("first"),e.preventDefault(),e.stopPropagation()}},r.onClearIndicatorMouseDown=function(e){e&&"mousedown"===e.type&&0!==e.button||(r.clearValue(),e.stopPropagation(),r.openAfterFocus=!1,"touchend"===e.type?r.focusInput():setTimeout((function(){return r.focusInput()})))},r.onScroll=function(e){"boolean"==typeof r.props.closeMenuOnScroll?e.target instanceof HTMLElement&&ur(e.target)&&r.props.onMenuClose():"function"==typeof r.props.closeMenuOnScroll&&r.props.closeMenuOnScroll(e)&&r.props.onMenuClose()},r.onCompositionStart=function(){r.isComposing=!0},r.onCompositionEnd=function(){r.isComposing=!1},r.onTouchStart=function(e){var t=e.touches,n=t&&t.item(0);n&&(r.initialTouchX=n.clientX,r.initialTouchY=n.clientY,r.userIsDragging=!1)},r.onTouchMove=function(e){var t=e.touches,n=t&&t.item(0);if(n){var o=Math.abs(n.clientX-r.initialTouchX),a=Math.abs(n.clientY-r.initialTouchY);r.userIsDragging=o>5||a>5}},r.onTouchEnd=function(e){r.userIsDragging||(r.controlRef&&!r.controlRef.contains(e.target)&&r.menuListRef&&!r.menuListRef.contains(e.target)&&r.blurInput(),r.initialTouchX=0,r.initialTouchY=0)},r.onControlTouchEnd=function(e){r.userIsDragging||r.onControlMouseDown(e)},r.onClearIndicatorTouchEnd=function(e){r.userIsDragging||r.onClearIndicatorMouseDown(e)},r.onDropdownIndicatorTouchEnd=function(e){r.userIsDragging||r.onDropdownIndicatorMouseDown(e)},r.handleInputChange=function(e){var t=e.currentTarget.value;r.setState({inputIsHiddenAfterUpdate:!1}),r.onInputChange(t,{action:"input-change"}),r.props.menuIsOpen||r.onMenuOpen()},r.onInputFocus=function(e){var t=r.props,n=t.isSearchable,o=t.isMulti;r.props.onFocus&&r.props.onFocus(e),r.setState({inputIsHiddenAfterUpdate:!1}),r.announceAriaLiveContext({event:"input",context:{isSearchable:n,isMulti:o}}),r.setState({isFocused:!0}),(r.openAfterFocus||r.props.openMenuOnFocus)&&r.openMenu("first"),r.openAfterFocus=!1},r.onInputBlur=function(e){r.menuListRef&&r.menuListRef.contains(document.activeElement)?r.inputRef.focus():(r.props.onBlur&&r.props.onBlur(e),r.onInputChange("",{action:"input-blur"}),r.onMenuClose(),r.setState({focusedValue:null,isFocused:!1}))},r.onOptionHover=function(e){r.blockOptionHover||r.state.focusedOption===e||r.setState({focusedOption:e})},r.shouldHideSelectedOptions=function(){return Ro(r.props)},r.onKeyDown=function(e){var t=r.props,n=t.isMulti,o=t.backspaceRemovesValue,a=t.escapeClearsValue,i=t.inputValue,l=t.isClearable,u=t.isDisabled,s=t.menuIsOpen,c=t.onKeyDown,f=t.tabSelectsValue,d=t.openMenuOnFocus,p=r.state,m=p.focusedOption,h=p.focusedValue,v=p.selectValue;if(!(u||"function"==typeof c&&(c(e),e.defaultPrevented))){switch(r.blockOptionHover=!0,e.key){case"ArrowLeft":if(!n||i)return;r.focusValue("previous");break;case"ArrowRight":if(!n||i)return;r.focusValue("next");break;case"Delete":case"Backspace":if(i)return;if(h)r.removeValue(h);else{if(!o)return;n?r.popValue():l&&r.clearValue()}break;case"Tab":if(r.isComposing)return;if(e.shiftKey||!s||!f||!m||d&&r.isOptionSelected(m,v))return;r.selectOption(m);break;case"Enter":if(229===e.keyCode)break;if(s){if(!m)return;if(r.isComposing)return;r.selectOption(m);break}return;case"Escape":s?(r.setState({inputIsHiddenAfterUpdate:!1}),r.onInputChange("",{action:"menu-close"}),r.onMenuClose()):l&&a&&r.clearValue();break;case" ":if(i)return;if(!s){r.openMenu("first");break}if(!m)return;r.selectOption(m);break;case"ArrowUp":s?r.focusOption("up"):r.openMenu("last");break;case"ArrowDown":s?r.focusOption("down"):r.openMenu("first");break;case"PageUp":if(!s)return;r.focusOption("pageup");break;case"PageDown":if(!s)return;r.focusOption("pagedown");break;case"Home":if(!s)return;r.focusOption("first");break;case"End":if(!s)return;r.focusOption("last");break;default:return}e.preventDefault()}},r.instancePrefix="react-select-"+(r.props.instanceId||++No),r.state.selectValue=lr(e.value),r}return $n(n,[{key:"componentDidMount",value:function(){this.startListeningComposition(),this.startListeningToTouch(),this.props.closeMenuOnScroll&&document&&document.addEventListener&&document.addEventListener("scroll",this.onScroll,!0),this.props.autoFocus&&this.focusInput()}},{key:"componentDidUpdate",value:function(e){var t,n,r,o,a,i=this.props,l=i.isDisabled,u=i.menuIsOpen,s=this.state.isFocused;(s&&!l&&e.isDisabled||s&&u&&!e.menuIsOpen)&&this.focusInput(),s&&l&&!e.isDisabled&&this.setState({isFocused:!1},this.onMenuClose),this.menuListRef&&this.focusedOptionRef&&this.scrollToFocusedOptionOnUpdate&&(t=this.menuListRef,n=this.focusedOptionRef,r=t.getBoundingClientRect(),o=n.getBoundingClientRect(),a=n.offsetHeight/3,o.bottom+a>r.bottom?cr(t,Math.min(n.offsetTop+n.clientHeight-t.offsetHeight+a,t.scrollHeight)):o.top-a<r.top&&cr(t,Math.max(n.offsetTop-a,0)),this.scrollToFocusedOptionOnUpdate=!1)}},{key:"componentWillUnmount",value:function(){this.stopListeningComposition(),this.stopListeningToTouch(),document.removeEventListener("scroll",this.onScroll,!0)}},{key:"onMenuOpen",value:function(){this.props.onMenuOpen()}},{key:"onMenuClose",value:function(){var e=this.props,t=e.isSearchable,n=e.isMulti;this.announceAriaLiveContext({event:"input",context:{isSearchable:t,isMulti:n}}),this.onInputChange("",{action:"menu-close"}),this.props.onMenuClose()}},{key:"onInputChange",value:function(e,t){this.props.onInputChange(e,t)}},{key:"focusInput",value:function(){this.inputRef&&this.inputRef.focus()}},{key:"blurInput",value:function(){this.inputRef&&this.inputRef.blur()}},{key:"openMenu",value:function(e){var t=this,n=this.state,r=n.selectValue,o=n.isFocused,a=this.buildFocusableOptions(),i=this.props,l=i.isMulti,u=i.tabSelectsValue,s="first"===e?0:a.length-1;if(!l){var c=a.indexOf(r[0]);c>-1&&(s=c)}this.scrollToFocusedOptionOnUpdate=!(o&&this.menuListRef),this.setState({inputIsHiddenAfterUpdate:!1,focusedValue:null,focusedOption:a[s]},(function(){t.onMenuOpen(),t.announceAriaLiveContext({event:"menu",context:{tabSelectsValue:u}})}))}},{key:"focusValue",value:function(e){var t=this.props,n=t.isMulti,r=t.isSearchable,o=this.state,a=o.selectValue,i=o.focusedValue;if(n){this.setState({focusedOption:null});var l=a.indexOf(i);i||(l=-1,this.announceAriaLiveContext({event:"value"}));var u=a.length-1,s=-1;if(a.length){switch(e){case"previous":s=0===l?0:-1===l?u:l-1;break;case"next":l>-1&&l<u&&(s=l+1)}-1===s&&this.announceAriaLiveContext({event:"input",context:{isSearchable:r,isMulti:n}}),this.setState({inputIsHidden:-1!==s,focusedValue:a[s]})}}}},{key:"focusOption",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"first",t=this.props,n=t.pageSize,r=t.tabSelectsValue,o=this.state,a=o.focusedOption,i=o.selectValue,l=this.getFocusableOptions();if(l.length){var u=0,s=l.indexOf(a);a||(s=-1,this.announceAriaLiveContext({event:"menu",context:{tabSelectsValue:r}})),"up"===e?u=s>0?s-1:l.length-1:"down"===e?u=(s+1)%l.length:"pageup"===e?(u=s-n)<0&&(u=0):"pagedown"===e?(u=s+n)>l.length-1&&(u=l.length-1):"last"===e&&(u=l.length-1),this.scrollToFocusedOptionOnUpdate=!0,this.setState({focusedOption:l[u],focusedValue:null}),this.announceAriaLiveContext({event:"menu",context:{isDisabled:this.isOptionDisabled(l[u],i),tabSelectsValue:r}})}}},{key:"getTheme",value:function(){return this.props.theme?"function"==typeof this.props.theme?this.props.theme(_o):er(er({},_o),this.props.theme):_o}},{key:"getCommonProps",value:function(){var e=this.clearValue,t=this.cx,n=this.getStyles,r=this.getValue,o=this.setValue,a=this.selectOption,i=this.props,l=i.isMulti,u=i.isRtl,s=i.options;return{cx:t,clearValue:e,getStyles:n,getValue:r,hasValue:this.hasValue(),isMulti:l,isRtl:u,options:s,selectOption:a,setValue:o,selectProps:i,theme:this.getTheme()}}},{key:"hasValue",value:function(){return this.state.selectValue.length>0}},{key:"hasOptions",value:function(){return!!this.getFocusableOptions().length}},{key:"countOptions",value:function(){return this.getFocusableOptions().length}},{key:"isClearable",value:function(){var e=this.props,t=e.isClearable,n=e.isMulti;return void 0===t?n:t}},{key:"isOptionDisabled",value:function(e,t){return Po(this.props,e,t)}},{key:"isOptionSelected",value:function(e,t){return Io(this.props,e,t)}},{key:"filterOption",value:function(e,t){return Do(this.props,e,t)}},{key:"formatOptionLabel",value:function(e,t){if("function"==typeof this.props.formatOptionLabel){var n=this.props.inputValue,r=this.state.selectValue;return this.props.formatOptionLabel(e,{context:t,inputValue:n,selectValue:r})}return this.getOptionLabel(e)}},{key:"formatGroupLabel",value:function(e){return this.props.formatGroupLabel(e)}},{key:"startListeningComposition",value:function(){document&&document.addEventListener&&(document.addEventListener("compositionstart",this.onCompositionStart,!1),document.addEventListener("compositionend",this.onCompositionEnd,!1))}},{key:"stopListeningComposition",value:function(){document&&document.removeEventListener&&(document.removeEventListener("compositionstart",this.onCompositionStart),document.removeEventListener("compositionend",this.onCompositionEnd))}},{key:"startListeningToTouch",value:function(){document&&document.addEventListener&&(document.addEventListener("touchstart",this.onTouchStart,!1),document.addEventListener("touchmove",this.onTouchMove,!1),document.addEventListener("touchend",this.onTouchEnd,!1))}},{key:"stopListeningToTouch",value:function(){document&&document.removeEventListener&&(document.removeEventListener("touchstart",this.onTouchStart),document.removeEventListener("touchmove",this.onTouchMove),document.removeEventListener("touchend",this.onTouchEnd))}},{key:"constructAriaLiveMessage",value:function(){var e=this.state,t=e.ariaLiveContext,n=e.selectValue,r=e.focusedValue,o=e.focusedOption,a=this.props,i=a.options,l=a.menuIsOpen,u=a.inputValue,s=a.screenReaderStatus,c=r?function(e){var t=e.focusedValue,n=e.getOptionLabel,r=e.selectValue;return"value ".concat(n(t)," focused, ").concat(r.indexOf(t)+1," of ").concat(r.length,".")}({focusedValue:r,getOptionLabel:this.getOptionLabel,selectValue:n}):"",f=o&&l?function(e){var t=e.focusedOption,n=e.getOptionLabel,r=e.options;return"option ".concat(n(t)," focused").concat(t.isDisabled?" disabled":"",", ").concat(r.indexOf(t)+1," of ").concat(r.length,".")}({focusedOption:o,getOptionLabel:this.getOptionLabel,options:i}):"",d=function(e){var t=e.inputValue,n=e.screenReaderMessage;return"".concat(n).concat(t?" for search term "+t:"",".")}({inputValue:u,screenReaderMessage:s({count:this.countOptions()})});return"".concat(c," ").concat(f," ").concat(d," ").concat(t)}},{key:"renderInput",value:function(){var e=this.props,t=e.isDisabled,n=e.isSearchable,r=e.inputId,o=e.inputValue,i=e.tabIndex,l=e.form,u=this.getComponents().Input,s=this.state.inputIsHidden,c=r||this.getElementId("input"),f={"aria-autocomplete":"list","aria-label":this.props["aria-label"],"aria-labelledby":this.props["aria-labelledby"]};if(!n)return a.a.createElement(no,pt({id:c,innerRef:this.getInputRef,onBlur:this.onInputBlur,onChange:or,onFocus:this.onInputFocus,readOnly:!0,disabled:t,tabIndex:i,form:l,value:""},f));var d=this.commonProps,p=d.cx,m=d.theme,h=d.selectProps;return a.a.createElement(u,pt({autoCapitalize:"none",autoComplete:"off",autoCorrect:"off",cx:p,getStyles:this.getStyles,id:c,innerRef:this.getInputRef,isDisabled:t,isHidden:s,onBlur:this.onInputBlur,onChange:this.handleInputChange,onFocus:this.onInputFocus,selectProps:h,spellCheck:"false",tabIndex:i,form:l,theme:m,type:"text",value:o},f))}},{key:"renderPlaceholderOrValue",value:function(){var e=this,t=this.getComponents(),n=t.MultiValue,r=t.MultiValueContainer,o=t.MultiValueLabel,i=t.MultiValueRemove,l=t.SingleValue,u=t.Placeholder,s=this.commonProps,c=this.props,f=c.controlShouldRenderValue,d=c.isDisabled,p=c.isMulti,m=c.inputValue,h=c.placeholder,v=this.state,g=v.selectValue,b=v.focusedValue,y=v.isFocused;if(!this.hasValue()||!f)return m?null:a.a.createElement(u,pt({},s,{key:"placeholder",isDisabled:d,isFocused:y}),h);if(p)return g.map((function(t,l){var u=t===b;return a.a.createElement(n,pt({},s,{components:{Container:r,Label:o,Remove:i},isFocused:u,isDisabled:d,key:"".concat(e.getOptionValue(t)).concat(l),index:l,removeProps:{onClick:function(){return e.removeValue(t)},onTouchEnd:function(){return e.removeValue(t)},onMouseDown:function(e){e.preventDefault(),e.stopPropagation()}},data:t}),e.formatOptionLabel(t,"value"))}));if(m)return null;var _=g[0];return a.a.createElement(l,pt({},s,{data:_,isDisabled:d}),this.formatOptionLabel(_,"value"))}},{key:"renderClearIndicator",value:function(){var e=this.getComponents().ClearIndicator,t=this.commonProps,n=this.props,r=n.isDisabled,o=n.isLoading,i=this.state.isFocused;if(!this.isClearable()||!e||r||!this.hasValue()||o)return null;var l={onMouseDown:this.onClearIndicatorMouseDown,onTouchEnd:this.onClearIndicatorTouchEnd,"aria-hidden":"true"};return a.a.createElement(e,pt({},t,{innerProps:l,isFocused:i}))}},{key:"renderLoadingIndicator",value:function(){var e=this.getComponents().LoadingIndicator,t=this.commonProps,n=this.props,r=n.isDisabled,o=n.isLoading,i=this.state.isFocused;if(!e||!o)return null;return a.a.createElement(e,pt({},t,{innerProps:{"aria-hidden":"true"},isDisabled:r,isFocused:i}))}},{key:"renderIndicatorSeparator",value:function(){var e=this.getComponents(),t=e.DropdownIndicator,n=e.IndicatorSeparator;if(!t||!n)return null;var r=this.commonProps,o=this.props.isDisabled,i=this.state.isFocused;return a.a.createElement(n,pt({},r,{isDisabled:o,isFocused:i}))}},{key:"renderDropdownIndicator",value:function(){var e=this.getComponents().DropdownIndicator;if(!e)return null;var t=this.commonProps,n=this.props.isDisabled,r=this.state.isFocused,o={onMouseDown:this.onDropdownIndicatorMouseDown,onTouchEnd:this.onDropdownIndicatorTouchEnd,"aria-hidden":"true"};return a.a.createElement(e,pt({},t,{innerProps:o,isDisabled:n,isFocused:r}))}},{key:"renderMenu",value:function(){var e=this,t=this.getComponents(),n=t.Group,r=t.GroupHeading,o=t.Menu,i=t.MenuList,l=t.MenuPortal,u=t.LoadingMessage,s=t.NoOptionsMessage,c=t.Option,f=this.commonProps,d=this.state.focusedOption,p=this.props,m=p.captureMenuScroll,h=p.inputValue,v=p.isLoading,g=p.loadingMessage,b=p.minMenuHeight,y=p.maxMenuHeight,_=p.menuIsOpen,w=p.menuPlacement,E=p.menuPosition,S=p.menuPortalTarget,x=p.menuShouldBlockScroll,O=p.menuShouldScrollIntoView,C=p.noOptionsMessage,k=p.onMenuScrollToTop,P=p.onMenuScrollToBottom;if(!_)return null;var I,D=function(t,n){var r=t.type,o=t.data,i=t.isDisabled,l=t.isSelected,u=t.label,s=t.value,p=d===o,m=i?void 0:function(){return e.onOptionHover(o)},h=i?void 0:function(){return e.selectOption(o)},v="".concat(e.getElementId("option"),"-").concat(n),g={id:v,onClick:h,onMouseMove:m,onMouseOver:m,tabIndex:-1};return a.a.createElement(c,pt({},f,{innerProps:g,data:o,isDisabled:i,isSelected:l,key:v,label:u,type:r,value:s,isFocused:p,innerRef:p?e.getFocusedOptionRef:void 0}),e.formatOptionLabel(t.data,"menu"))};if(this.hasOptions())I=this.getCategorizedOptions().map((function(t){if("group"===t.type){var o=t.data,i=t.options,l=t.index,u="".concat(e.getElementId("group"),"-").concat(l),s="".concat(u,"-heading");return a.a.createElement(n,pt({},f,{key:u,data:o,options:i,Heading:r,headingProps:{id:s,data:t.data},label:e.formatGroupLabel(t.data)}),t.options.map((function(e){return D(e,"".concat(l,"-").concat(e.index))})))}if("option"===t.type)return D(t,"".concat(t.index))}));else if(v){var R=g({inputValue:h});if(null===R)return null;I=a.a.createElement(u,f,R)}else{var N=C({inputValue:h});if(null===N)return null;I=a.a.createElement(s,f,N)}var T={minMenuHeight:b,maxMenuHeight:y,menuPlacement:w,menuPosition:E,menuShouldScrollIntoView:O},L=a.a.createElement(gr,pt({},f,T),(function(t){var n=t.ref,r=t.placerProps,l=r.placement,u=r.maxHeight;return a.a.createElement(o,pt({},f,T,{innerRef:n,innerProps:{onMouseDown:e.onMenuMouseDown,onMouseMove:e.onMenuMouseMove},isLoading:v,placement:l}),a.a.createElement(ho,{captureEnabled:m,onTopArrive:k,onBottomArrive:P,lockEnabled:x},(function(t){return a.a.createElement(i,pt({},f,{innerRef:function(n){e.getMenuListRef(n),t(n)},isLoading:v,maxHeight:u}),I)})))}));return S||"fixed"===E?a.a.createElement(l,pt({},f,{appendTo:S,controlElement:this.controlRef,menuPlacement:w,menuPosition:E}),L):L}},{key:"renderFormField",value:function(){var e=this,t=this.props,n=t.delimiter,r=t.isDisabled,o=t.isMulti,i=t.name,l=this.state.selectValue;if(i&&!r){if(o){if(n){var u=l.map((function(t){return e.getOptionValue(t)})).join(n);return a.a.createElement("input",{name:i,type:"hidden",value:u})}var s=l.length>0?l.map((function(t,n){return a.a.createElement("input",{key:"i-".concat(n),name:i,type:"hidden",value:e.getOptionValue(t)})})):a.a.createElement("input",{name:i,type:"hidden"});return a.a.createElement("div",null,s)}var c=l[0]?this.getOptionValue(l[0]):"";return a.a.createElement("input",{name:i,type:"hidden",value:c})}}},{key:"renderLiveRegion",value:function(){return this.state.isFocused?a.a.createElement(to,{"aria-live":"polite"},a.a.createElement("span",{id:"aria-selection-event"}," ",this.state.ariaLiveSelection),a.a.createElement("span",{id:"aria-context"}," ",this.constructAriaLiveMessage())):null}},{key:"render",value:function(){var e=this.getComponents(),t=e.Control,n=e.IndicatorsContainer,r=e.SelectContainer,o=e.ValueContainer,i=this.props,l=i.className,u=i.id,s=i.isDisabled,c=i.menuIsOpen,f=this.state.isFocused,d=this.commonProps=this.getCommonProps();return a.a.createElement(r,pt({},d,{className:l,innerProps:{id:u,onKeyDown:this.onKeyDown},isDisabled:s,isFocused:f}),this.renderLiveRegion(),a.a.createElement(t,pt({},d,{innerRef:this.getControlRef,innerProps:{onMouseDown:this.onControlMouseDown,onTouchEnd:this.onControlTouchEnd},isDisabled:s,isFocused:f,menuIsOpen:c}),a.a.createElement(o,pt({},d,{isDisabled:s}),this.renderPlaceholderOrValue(),this.renderInput()),a.a.createElement(n,pt({},d,{isDisabled:s}),this.renderClearIndicator(),this.renderLoadingIndicator(),this.renderIndicatorSeparator(),this.renderDropdownIndicator())),this.renderMenu(),this.renderFormField())}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n=t.prevProps,r=t.clearFocusValueOnUpdate,o=t.inputIsHiddenAfterUpdate,a=e.options,i=e.value,l=e.menuIsOpen,u=e.inputValue,s={};if(n&&(i!==n.value||a!==n.options||l!==n.menuIsOpen||u!==n.inputValue)){var c=lr(i),f=l?function(e,t){return xo(So(e,t))}(e,c):[],d=r?function(e,t){var n=e.focusedValue,r=e.selectValue.indexOf(n);if(r>-1){if(t.indexOf(n)>-1)return n;if(r<t.length)return t[r]}return null}(t,c):null;s={selectValue:c,focusedOption:function(e,t){var n=e.focusedOption;return n&&t.indexOf(n)>-1?n:t[0]}(t,f),focusedValue:d,clearFocusValueOnUpdate:!1}}var p=null!=o&&e!==n?{inputIsHidden:o,inputIsHiddenAfterUpdate:void 0}:{};return er(er(er({},s),p),{},{prevProps:e})}}]),n}(o.Component);To.defaultProps=wo;var Lo={defaultInputValue:"",defaultMenuIsOpen:!1,defaultValue:null};function Ao(e,t){if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}var jo,Mo,Fo,Bo=function(e,t){var n;void 0===t&&(t=Ao);var r,o=[],a=!1;return function(){for(var i=[],l=0;l<arguments.length;l++)i[l]=arguments[l];return a&&n===this&&t(i,o)||(r=e.apply(this,i),a=!0,n=this,o=i),r}},Vo=(n(44),n(49),n(51),n(54),n(55),o.Component,jo=To,Fo=Mo=function(e){Qn(n,e);var t=rr(n);function n(){var e;Gn(this,n);for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];return(e=t.call.apply(t,[this].concat(o))).select=void 0,e.state={inputValue:void 0!==e.props.inputValue?e.props.inputValue:e.props.defaultInputValue,menuIsOpen:void 0!==e.props.menuIsOpen?e.props.menuIsOpen:e.props.defaultMenuIsOpen,value:void 0!==e.props.value?e.props.value:e.props.defaultValue},e.onChange=function(t,n){e.callProp("onChange",t,n),e.setState({value:t})},e.onInputChange=function(t,n){var r=e.callProp("onInputChange",t,n);e.setState({inputValue:void 0!==r?r:t})},e.onMenuOpen=function(){e.callProp("onMenuOpen"),e.setState({menuIsOpen:!0})},e.onMenuClose=function(){e.callProp("onMenuClose"),e.setState({menuIsOpen:!1})},e}return $n(n,[{key:"focus",value:function(){this.select.focus()}},{key:"blur",value:function(){this.select.blur()}},{key:"getProp",value:function(e){return void 0!==this.props[e]?this.props[e]:this.state[e]}},{key:"callProp",value:function(e){if("function"==typeof this.props[e]){for(var t,n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];return(t=this.props)[e].apply(t,r)}}},{key:"render",value:function(){var e=this,t=this.props;t.defaultInputValue,t.defaultMenuIsOpen,t.defaultValue;var n=zn(t,["defaultInputValue","defaultMenuIsOpen","defaultValue"]);return a.a.createElement(jo,pt({},n,{ref:function(t){e.select=t},inputValue:this.getProp("inputValue"),menuIsOpen:this.getProp("menuIsOpen"),onChange:this.onChange,onInputChange:this.onInputChange,onMenuClose:this.onMenuClose,onMenuOpen:this.onMenuOpen,value:this.getProp("value")}))}}]),n}(o.Component),Mo.defaultProps=Lo,Fo);function Uo(e){return(Uo="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function zo(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Ho(e,t,n){return(Ho="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var r=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=Yo(e)););return e}(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(n):o.value}})(e,t,n||e)}function Wo(e,t){return(Wo=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Go(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=Yo(e);if(t){var o=Yo(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return qo(this,n)}}function qo(e,t){return!t||"object"!==Uo(t)&&"function"!=typeof t?$o(e):t}function $o(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Yo(e){return(Yo=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var Qo=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Wo(e,t)}(i,e);var t,n,r,o=Go(i);function i(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,i),(t=o.call(this,e))._field_items=new p(t.state.handlers.api_loader,e.field_data,e.form_values,e.section_fields,t.onUpdateLoadingStatus.bind($o(t)),t.onUpdateItems.bind($o(t))),e.onRefreshForm&&e.onRefreshForm(t.refreshItems.bind($o(t),!1)),t.onChangeState("items",e.field_data.items||[]),t}return t=i,(n=[{key:"render",value:function(){var e=this.props,t=e.field_data,n=e.form_values,r=e.form_states,o=e.state_name,i=e.show_if_regexes,l=this.state.settings;if(!r[o]||!this.isFieldVisible(i,n))return null;var u=this.parseItems(r[o].items);return a.a.createElement(a.a.Fragment,null,a.a.createElement("li",{className:"fcfOptions__row",ref:r[o].ref_wrapper},a.a.createElement(R,{unique_id:r[o].unique_id,field_data:t,settings:l}),a.a.createElement(V,{validation_error:r[o].validation_error}),a.a.createElement(Vo,{id:r[o].unique_id,name:t.name,className:"fcfOptions__select",classNamePrefix:"reactSelect",value:u.filter((function(e){return e.value===n[t.name]})),options:r[o].is_loading?[]:u,placeholder:l.i18n.select_placeholder,noOptionsMessage:function(){return r[o].is_loading?l.i18n.select_loading:l.i18n.select_empty},isDisabled:t.readonly,onChange:t.readonly?null:this.onChangeValue.bind(this)})))}},{key:"componentDidMount",value:function(){Ho(Yo(i.prototype),"componentDidMount",this).call(this);var e=this.props.field_data;if(this.refreshItems(!1),e.endpoint_autorefresh){var t=this.state.settings;window.addEventListener(t.events.refresh_field,this.refreshItems.bind(this,!0))}}},{key:"componentWillUnmount",value:function(){Ho(Yo(i.prototype),"componentWillUnmount",this).call(this),this.onValidationError(null)}},{key:"onUpdateLoadingStatus",value:function(e){this.onChangeState("is_loading",e)}},{key:"onUpdateItems",value:function(e){this._isMounted&&(this.onChangeState("items",e),this.resetDefaultValue())}},{key:"getValue",value:function(e){return e?e.value:""}},{key:"refreshItems",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.props,n=t.field_data,r=t.form_states,o=t.state_name;n.endpoint_route&&this._field_items.refreshItems(r[o].unique_id,e)}},{key:"resetDefaultValue",value:function(){this.isAvailableValue()||this.onChangeValue(null)}},{key:"isAvailableValue",value:function(){var e=this.props,t=e.field_data,n=e.form_values,r=e.form_states,o=e.state_name;if(""===n[t.name])return!0;for(var a=this.parseItems(r[o].items),i=a.length,l=0;l<i;l++)if(a[l].value===n[t.name])return!0;return!1}},{key:"parseItems",value:function(e){var t=[];for(var n in e)t.push({value:n,label:e[n]});return t}}])&&zo(t.prototype,n),r&&zo(t,r),i}(I);function Ko(e){return(Ko="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Xo(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Jo(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Zo(e,t){return(Zo=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function ea(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=na(e);if(t){var o=na(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return ta(this,n)}}function ta(e,t){return!t||"object"!==Ko(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function na(e){return(na=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var ra=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Zo(e,t)}(i,e);var t,n,r,o=ea(i);function i(){return Xo(this,i),o.apply(this,arguments)}return t=i,(n=[{key:"render",value:function(){var e=this.props,t=e.field_data,n=e.form_values,r=e.form_states,o=e.state_name,i=e.show_if_regexes,l=this.state.settings;if(!r[o]||!this.isFieldVisible(i,n))return null;var u=this.parseItems(r[o].items);return a.a.createElement(a.a.Fragment,null,a.a.createElement("li",{className:"fcfOptions__row",ref:r[o].ref_wrapper},a.a.createElement(R,{unique_id:r[o].unique_id,field_data:t,settings:l}),a.a.createElement(V,{validation_error:r[o].validation_error}),a.a.createElement(Vo,{id:r[o].unique_id,name:t.name,className:"fcfOptions__select",classNamePrefix:"reactSelect",value:u.filter((function(e){var r=e.value;return n[t.name].indexOf(r)>-1})),options:r[o].is_loading?[]:u,placeholder:l.i18n.select_placeholder,noOptionsMessage:function(){return r[o].is_loading?l.i18n.select_loading:l.i18n.select_empty},isMulti:!0,isDisabled:t.readonly,onChange:t.readonly?null:this.onChangeValue.bind(this)})))}},{key:"getValue",value:function(e){return null===e?[]:Array.from(e,(function(e){return e.value}))}},{key:"isAvailableValue",value:function(){var e=this.props,t=e.field_data,n=e.form_values,r=e.form_states,o=e.state_name;if(n[t.name]===[])return!0;for(var a=this.parseItems(r[o].items).map((function(e){return e.value})),i=n[t.name].length,l=0;l<i;l++)if(-1===a.indexOf(n[t.name][l]))return!1;return!0}}])&&Jo(t.prototype,n),r&&Jo(t,r),i}(Qo);function oa(e){return(oa="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function aa(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ia(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function la(e,t){return(la=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function ua(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=ca(e);if(t){var o=ca(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return sa(this,n)}}function sa(e,t){return!t||"object"!==oa(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function ca(e){return(ca=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var fa=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&la(e,t)}(i,e);var t,n,r,o=ua(i);function i(){return aa(this,i),o.apply(this,arguments)}return t=i,(n=[{key:"render",value:function(){var e=this.props,t=e.field_data,n=e.form_values,r=e.form_states,o=e.state_name,i=e.show_if_regexes,l=this.state.settings;return r[o]&&this.isFieldVisible(i,n)?a.a.createElement(a.a.Fragment,null,a.a.createElement("li",{className:"fcfOptions__row",ref:r[o].ref_wrapper},a.a.createElement(R,{unique_id:r[o].unique_id,field_data:t,settings:l}),a.a.createElement(V,{validation_error:r[o].validation_error}),a.a.createElement("textarea",{id:r[o].unique_id,ref:r[o].ref_input,name:t.name,className:"fcfOptions__textarea",rows:"2",value:this.getFieldValue(),onChange:t.readonly?null:this.onChangeValue.bind(this),disabled:t.readonly}))):null}},{key:"getValue",value:function(){var e=this.props;return e.form_states[e.state_name].ref_input.current.value}}])&&ia(t.prototype,n),r&&ia(t,r),i}(I);function da(e){return(da="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function pa(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ma(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function ha(e,t){return(ha=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function va(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=ba(e);if(t){var o=ba(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return ga(this,n)}}function ga(e,t){return!t||"object"!==da(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function ba(e){return(ba=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var ya=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&ha(e,t)}(i,e);var t,n,r,o=va(i);function i(){return pa(this,i),o.apply(this,arguments)}return t=i,(n=[{key:"render",value:function(){var e=this.props,t=e.field_data,n=e.form_values,r=e.form_states,o=e.state_name,i=e.show_if_regexes,l=this.state.settings;return r[o]&&this.isFieldVisible(i,n)?a.a.createElement(a.a.Fragment,null,a.a.createElement("li",{className:"fcfOptions__row",ref:r[o].ref_wrapper},a.a.createElement(R,{unique_id:r[o].unique_id,field_data:t,settings:l}),a.a.createElement(V,{validation_error:r[o].validation_error}),a.a.createElement("input",{type:"text",id:r[o].unique_id,ref:r[o].ref_input,name:t.name,className:"fcfOptions__input",value:this.getFieldValue(),onChange:t.readonly?null:this.onChangeValue.bind(this),disabled:t.readonly}))):null}},{key:"getValue",value:function(){var e=this.props;return e.form_states[e.state_name].ref_input.current.value}}])&&ma(t.prototype,n),r&&ma(t,r),i}(I);function _a(e){return(_a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function wa(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Ea(e,t){return(Ea=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Sa(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=Oa(e);if(t){var o=Oa(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return xa(this,n)}}function xa(e,t){return!t||"object"!==_a(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function Oa(e){return(Oa=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var Ca=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Ea(e,t)}(i,e);var t,n,r,o=Sa(i);function i(e){var t;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,i),t=o.call(this,e);var n=e.settings,r=e.form_title,a=e.form_settings,l=e.validation_type;return t.state={field_types:t.updateFieldTypes(n.form_fields.option_fields),form_values:{},form_states:{},settings:n,form_title:r,form_settings:a,status:{loading_type:null,field_name_updated:!1},validation_type:l},t._form_validation=new E(n.events.validate_field,l,1),t}return t=i,(n=[{key:"render",value:function(){var e=this.state,t=e.form_values,n=e.form_states,r=e.settings,o=e.form_title,i=e.status,l=e.validation_type;return a.a.createElement("div",{className:"fcfWidget"},a.a.createElement("div",{className:"fcfWidget__inner"},a.a.createElement("div",{className:"fcfWidget__header"},a.a.createElement("div",{className:"fcfWidget__headerTitle"},o)),a.a.createElement("div",{className:"fcfWidget__content"},a.a.createElement("div",{className:"fcfOptions"},a.a.createElement("ul",{className:"fcfOptions__rows"},a.a.createElement(ot,{field_data:{name:"field_type",label:r.i18n.field_type,items:this.state.field_types,validation_rules:{"^.{1,}$":r.i18n.validation_required}},form_values:t,form_states:n,state_name:"field_type",settings:r,validation_types:[l],onChangeValue:this.onChangeValue.bind(this),onChangeState:this.onChangeState.bind(this),onValidationInit:this.onValidationInit.bind(this)}),this.isFieldTypeAvailable()?a.a.createElement(a.a.Fragment,null,a.a.createElement(fa,{field_data:{name:"field_label",label:r.i18n.field_label,validation_rules:{"^.{1,}$":r.i18n.validation_required}},form_values:t,form_states:n,state_name:"field_label",settings:r,validation_types:[l],onChangeValue:this.onChangeValue.bind(this),onChangeState:this.onChangeState.bind(this),onValidationInit:this.onValidationInit.bind(this)}),a.a.createElement(ya,{field_data:{name:"field_name",label:r.i18n.field_name,validation_rules:{"^.{1,}$":r.i18n.validation_required,"^[a-z0-9_]{1,}$":r.i18n.validation_slug}},form_values:t,form_states:n,state_name:"field_name",settings:r,validation_types:[l,"field_name"],onChangeValue:this.onChangeValue.bind(this),onChangeState:this.onChangeState.bind(this),onValidationInit:this.onValidationInit.bind(this)})):a.a.createElement(Le,{field_data:{name:"field_type_adv",label:r.i18n.alert_field_unavailable},form_values:t,form_states:n,state_name:"field_type_adv",settings:r,validation_types:[l],onChangeValue:function(){},onChangeState:function(){},onValidationInit:function(){}}),a.a.createElement("li",{className:"fcfOptions__row fcfOptions__row--padding"},a.a.createElement("button",{type:"button",className:"fcfButton fcfButton--wide fcfButton--bg fcfButton--blue",onClick:this.onSubmit.bind(this),disabled:!this.isFieldTypeAvailable()||"add_field"===i.loading_type},r.i18n.button_add_field)))))))}},{key:"isFieldTypeAvailable",value:function(){var e=this.state,t=e.settings,n=e.form_values,r=t.form_fields.option_fields;return!n.field_type||r[n.field_type].is_available}},{key:"onValidationInit",value:function(e,t,n){return this._form_validation.onValidationInit(e,t,n)}},{key:"onChangeValue",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=this.state,o=r.form_values,a=r.status;o[e]=t,this.setState({form_values:o}),null!==t&&("field_label"!==e||a.field_name_updated?"field_name"===e&&(this.updateFieldName(null,t),n||(a.field_name_updated=""!==t,this.setState({status:a}))):this.updateFieldName(t))}},{key:"onChangeState",value:function(e,t,n){var r=this.state.form_states;void 0===r[e]&&(r[e]={}),r[e][t]=n,this.setState({form_states:r})}},{key:"onSubmit",value:function(e){this.updateLoadingStatus("add_field"),this._form_validation.onSubmit(e).then(this.addNewField.bind(this),this.updateLoadingStatus.bind(this))}},{key:"updateLoadingStatus",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=this.state.status;t&&(t.loading_type=e,this.setState({status:t}))}},{key:"updateFieldTypes",value:function(e){var t=[];for(var n in e)e[n].is_hidden||t.push(e[n]);return t}},{key:"updateFieldName",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=this.state.form_values;null===t&&(t=(new h).generateSlug(e)),t=this.generateUniqueFieldName(t),n.field_name!==t&&this.onChangeValue("field_name",t,!0)}},{key:"generateUniqueFieldName",value:function(e){for(var t=this.state.form_settings,n="".concat(t.form_index,"_").concat(e),r=0,o=t.option_values.length,a=0;a<o;a++)t.option_values[a].name===n&&r++;return 0===r?e:"".concat(e).concat(r+1)}},{key:"addNewField",value:function(){var e=this.props.onFieldAdd,t=this.state,n=t.form_values,r=t.form_settings;e({type:n.field_type,name:"".concat(r.form_index,"_").concat(n.field_name),label:n.field_label,custom_field:"1"}),this.setState({form_values:{},status:{}})}}])&&wa(t.prototype,n),r&&wa(t,r),i}(a.a.Component);function ka(e){return(ka="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Pa(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Ia(e,t){return(Ia=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Da(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=Ta(e);if(t){var o=Ta(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return Ra(this,n)}}function Ra(e,t){return!t||"object"!==ka(t)&&"function"!=typeof t?Na(e):t}function Na(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Ta(e){return(Ta=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var La=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Ia(e,t)}(l,e);var t,n,o,i=Da(l);function l(e){var t;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,l),t=i.call(this,e);var n=e.settings,r=e.form_title,o=e.form_settings,a=e.validation_type;return t.state={settings:n,form_settings:o,form_title:r,option_fields:o.option_fields,option_values:o.option_values,option_states:[],status:{loading_type:null,loading_message:null},validation_type:a},t._form_validation=new E(n.events.validate_field,a,1),t._form_submit=new y(n.handlers.api_loader,o.api_route,t._form_validation,t.updateLoadingStats.bind(Na(t))),t}return t=l,(n=[{key:"render",value:function(){var e=this,t=this.state,n=t.settings,o=t.option_fields,i=t.option_values,l=t.option_states,u=t.form_title,s=t.status,c=t.validation_type;return a.a.createElement("div",{className:"fcfWidget"},a.a.createElement("div",{className:"fcfWidget__inner"},a.a.createElement("div",{className:"fcfWidget__header"},a.a.createElement("div",{className:"fcfWidget__headerTitle"},u)),a.a.createElement("div",{className:"fcfWidget__content"},a.a.createElement("div",{className:"fcfOptions"},a.a.createElement("ul",{className:"fcfOptions__rows"},o.map((function(t,o){var u=r[t.type];return a.a.createElement(u,{key:o,field_data:t,form_values:i,form_states:l,state_name:t.name,show_if_regexes:t.show_if_regexes,settings:n,validation_types:[c],onChangeValue:e.onChangeValue.bind(e),onChangeState:e.onChangeState.bind(e),onValidationInit:e.onValidationInit.bind(e)})}))))),a.a.createElement("div",{className:"fcfWidget__footer"},a.a.createElement("ul",{className:"fcfWidget__buttons"},a.a.createElement("li",{className:"fcfWidget__button"},a.a.createElement(D,{button_classes:"fcfButton fcfButton--wide fcfButton--bg fcfButton--blue",button_alignment:"left",button_label:n.i18n.button_save,loading_type:"save_bottom",loading_status:s.loading_type,loading_message:s.loading_message,settings:n,onSubmit:this.onSubmit.bind(this,"save_bottom",{form_fields:i})}))))))}},{key:"onValidationInit",value:function(e,t,n){return this._form_validation.onValidationInit(e,t,n)}},{key:"onChangeValue",value:function(e,t){var n=this.state.option_values;n[e]=t,this.setState({option_values:n})}},{key:"onChangeState",value:function(e,t,n){var r=this.state.option_states;void 0===r[e]&&(r[e]={}),r[e][t]=n,this.setState({option_states:r})}},{key:"onSubmit",value:function(e,t,n){return n.preventDefault(),this._form_submit.onSubmit(e,t)}},{key:"updateLoadingStats",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=this.state.status;n.loading_type=e,n.loading_message=t,this.setState({status:n})}}])&&Pa(t.prototype,n),o&&Pa(t,o),l}(a.a.Component);function Aa(e){return(Aa="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ja(){return(ja=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function Ma(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Fa(e,t){return(Fa=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Ba(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=Ua(e);if(t){var o=Ua(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return Va(this,n)}}function Va(e,t){return!t||"object"!==Aa(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function Ua(e){return(Ua=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var za=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Fa(e,t)}(l,e);var t,n,o,i=Ba(l);function l(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,l),(t=i.call(this,e)).state={settings:e.settings,form_settings:e.form_settings,events:{onChangeValue:e.onChangeValue,onChangeState:e.onChangeState,onFieldRemove:e.onFieldRemove,onValidationInit:e.onValidationInit},refs:{wrapper:a.a.createRef()},refresh_functions:[],validation_types:t.props.validation_types},t.props.onChangeValue("_current_tab",0),t.props.onChangeValue("_is_open",!1),t}return t=l,(n=[{key:"shouldComponentUpdate",value:function(e){return e.last_row_index===e.row_index||null===e.last_row_index}},{key:"render",value:function(){var e=this,t=this.props,n=t.provided,o=t.field_data,i=t.form_states,l=t.field_type,u=t.section_fields,s=this.state,c=s.settings,f=s.form_settings,d=s.events,p=s.refs,m=s.validation_types,h=this.getAvailableSettingsTabs(l.options),v=o.label.replace(/(<([^>]+)>)/gi,"");return a.a.createElement("li",ja({className:"fcfFields__item ".concat("0"===o.visible?"fcfFields__item--disabled":""),ref:n.innerRef},n.draggableProps),a.a.createElement("div",{className:"fcfFields__itemInner",ref:p.wrapper},a.a.createElement("div",ja({className:"fcfFields__itemHeader"},n.dragHandleProps,{onClick:this.toggleSettings.bind(this)}),a.a.createElement("div",{className:"fcfFields__itemHeaderOuter"},a.a.createElement("div",{className:"fcfFields__itemHeaderInner"},a.a.createElement("div",{className:"fcfFields__itemHeaderTitle"},v||o.name,"1"===o.required?" * ":""),a.a.createElement("div",{className:"fcfFields__itemHeaderDesc ".concat("1"===o.custom_field?"fcfFields__itemHeaderDesc--flag":""," ")},l.label)),a.a.createElement("ul",{className:"fcfFields__itemHeaderButtons"},"1"===o.custom_field?a.a.createElement("li",{className:"fcfFields__itemHeaderButton"},a.a.createElement(B,{text:c.i18n.alert_remove_field,onAccept:d.onFieldRemove,settings:c},a.a.createElement("button",{type:"button",className:"fcfFields__itemHeaderButtonInner fcfFields__itemHeaderButtonInner--remove"}))):null,a.a.createElement("li",{className:"fcfFields__itemHeaderButton"},a.a.createElement("button",{type:"button",className:"fcfFields__itemHeaderButtonInner fcfFields__itemHeaderButtonInner--".concat(o._is_open?"close":"open")}))))),a.a.createElement("div",{className:"fcfFields__itemContent",style:{display:o._is_open?"block":"none"}},a.a.createElement("div",{className:"fcfFields__itemTabs fcfTabs fcfTabs--small"},a.a.createElement("ul",{className:"fcfTabs__items"},h.map((function(t,n){var r=f.settings_tabs[t];return a.a.createElement("li",{className:"fcfTabs__item",key:n},a.a.createElement("a",{href:"#".concat(r.tab_name),className:"fcfTabs__itemLink ".concat(n===o._current_tab?"fcfTabs__itemLink--active":""," ").concat(r.icon),onClick:e.changeTab.bind(e,n)},r.label))})))),a.a.createElement("div",{className:"fcfOptions"},h.map((function(t,n){return a.a.createElement("ul",{className:"fcfOptions__rows",key:n,style:{display:n===o._current_tab?"block":"none"}},l.options.map((function(l,s){var f=r[l.type];return l.tab_name===t?a.a.createElement(f,{key:s,field_data:l,form_values:o,form_states:i,state_name:l.name,section_fields:u,show_if_regexes:l.show_if_regexes,validation_types:m,settings:c,onChangeValue:e.onChangeValue.bind(e),onChangeState:d.onChangeState,onRefreshForm:e.onRefreshForm.bind(e),onValidationInit:e.onValidationInit.bind(e,n)}):null})))}))))))}},{key:"onChangeValue",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=this.state,o=r.refresh_functions,a=r.events;a.onChangeValue(e,t,n);for(var i=o.length,l=0;l<i;l++)o[l]()}},{key:"onRefreshForm",value:function(e){this.state.refresh_functions.push(e)}},{key:"onValidationInit",value:function(e,t,n){var r=this,o=this.state,a=o.refs;o.events.onValidationInit(t,n,(function(){r.toggleSettings(!0),r.changeTab(e),a.wrapper.current.scrollIntoView(!1)}))}},{key:"getAvailableSettingsTabs",value:function(e){for(var t=[],n=e.length,r=0;r<n;r++)-1===t.indexOf(e[r].tab_name)&&t.push(e[r].tab_name);return t}},{key:"toggleSettings",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.props.field_data,n=this.state.events;n.onChangeValue("_is_open",!0===e||!t._is_open)}},{key:"changeTab",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;t&&t.preventDefault();var n=this.state.events;n.onChangeValue("_current_tab",e)}}])&&Ma(t.prototype,n),o&&Ma(t,o),l}(a.a.Component);function Ha(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var Wa=n(7),Ga=function(){return Math.random().toString(36).substring(7).split("").join(".")},qa={INIT:"@@redux/INIT"+Ga(),REPLACE:"@@redux/REPLACE"+Ga(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+Ga()}};function $a(e){if("object"!=typeof e||null===e)return!1;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function Ya(e,t,n){var r;if("function"==typeof t&&"function"==typeof n||"function"==typeof n&&"function"==typeof arguments[3])throw new Error("It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function.");if("function"==typeof t&&void 0===n&&(n=t,t=void 0),void 0!==n){if("function"!=typeof n)throw new Error("Expected the enhancer to be a function.");return n(Ya)(e,t)}if("function"!=typeof e)throw new Error("Expected the reducer to be a function.");var o=e,a=t,i=[],l=i,u=!1;function s(){l===i&&(l=i.slice())}function c(){if(u)throw new Error("You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.");return a}function f(e){if("function"!=typeof e)throw new Error("Expected the listener to be a function.");if(u)throw new Error("You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api-reference/store#subscribelistener for more details.");var t=!0;return s(),l.push(e),function(){if(t){if(u)throw new Error("You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api-reference/store#subscribelistener for more details.");t=!1,s();var n=l.indexOf(e);l.splice(n,1),i=null}}}function d(e){if(!$a(e))throw new Error("Actions must be plain objects. Use custom middleware for async actions.");if(void 0===e.type)throw new Error('Actions may not have an undefined "type" property. Have you misspelled a constant?');if(u)throw new Error("Reducers may not dispatch actions.");try{u=!0,a=o(a,e)}finally{u=!1}for(var t=i=l,n=0;n<t.length;n++){(0,t[n])()}return e}function p(e){if("function"!=typeof e)throw new Error("Expected the nextReducer to be a function.");o=e,d({type:qa.REPLACE})}function m(){var e,t=f;return(e={subscribe:function(e){if("object"!=typeof e||null===e)throw new TypeError("Expected the observer to be an object.");function n(){e.next&&e.next(c())}return n(),{unsubscribe:t(n)}}})[Wa.a]=function(){return this},e}return d({type:qa.INIT}),(r={dispatch:d,subscribe:f,getState:c,replaceReducer:p})[Wa.a]=m,r}function Qa(e,t){return function(){return t(e.apply(this,arguments))}}function Ka(e,t){if("function"==typeof e)return Qa(e,t);if("object"!=typeof e||null===e)throw new Error("bindActionCreators expected an object or a function, instead received "+(null===e?"null":typeof e)+'. Did you write "import ActionCreators from" instead of "import * as ActionCreators from"?');var n={};for(var r in e){var o=e[r];"function"==typeof o&&(n[r]=Qa(o,t))}return n}function Xa(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ja(e,t){var n=Object.keys(e);return Object.getOwnPropertySymbols&&n.push.apply(n,Object.getOwnPropertySymbols(e)),t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n}function Za(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ja(n,!0).forEach((function(t){Xa(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ja(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ei(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?function(e){return e}:1===t.length?t[0]:t.reduce((function(e,t){return function(){return e(t.apply(void 0,arguments))}}))}n(19);var ti=a.a.createContext(null);var ni=function(e){e()},ri={notify:function(){}};function oi(){var e=ni,t=null,n=null;return{clear:function(){t=null,n=null},notify:function(){e((function(){for(var e=t;e;)e.callback(),e=e.next}))},get:function(){for(var e=[],n=t;n;)e.push(n),n=n.next;return e},subscribe:function(e){var r=!0,o=n={callback:e,next:null,prev:n};return o.prev?o.prev.next=o:t=o,function(){r&&null!==t&&(r=!1,o.next?o.next.prev=o.prev:n=o.prev,o.prev?o.prev.next=o.next:t=o.next)}}}}var ai=function(){function e(e,t){this.store=e,this.parentSub=t,this.unsubscribe=null,this.listeners=ri,this.handleChangeWrapper=this.handleChangeWrapper.bind(this)}var t=e.prototype;return t.addNestedSub=function(e){return this.trySubscribe(),this.listeners.subscribe(e)},t.notifyNestedSubs=function(){this.listeners.notify()},t.handleChangeWrapper=function(){this.onStateChange&&this.onStateChange()},t.isSubscribed=function(){return Boolean(this.unsubscribe)},t.trySubscribe=function(){this.unsubscribe||(this.unsubscribe=this.parentSub?this.parentSub.addNestedSub(this.handleChangeWrapper):this.store.subscribe(this.handleChangeWrapper),this.listeners=oi())},t.tryUnsubscribe=function(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null,this.listeners.clear(),this.listeners=ri)},e}();var ii=function(e){var t=e.store,n=e.context,r=e.children,i=Object(o.useMemo)((function(){var e=new ai(t);return e.onStateChange=e.notifyNestedSubs,{store:t,subscription:e}}),[t]),l=Object(o.useMemo)((function(){return t.getState()}),[t]);Object(o.useEffect)((function(){var e=i.subscription;return e.trySubscribe(),l!==t.getState()&&e.notifyNestedSubs(),function(){e.tryUnsubscribe(),e.onStateChange=null}}),[i,l]);var u=n||ti;return a.a.createElement(u.Provider,{value:i},r)},li=n(5),ui="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement?o.useLayoutEffect:o.useEffect,si=[],ci=[null,null];function fi(e,t){var n=e[1];return[t.payload,n+1]}function di(e,t,n){ui((function(){return e.apply(void 0,t)}),n)}function pi(e,t,n,r,o,a,i){e.current=r,t.current=o,n.current=!1,a.current&&(a.current=null,i())}function mi(e,t,n,r,o,a,i,l,u,s){if(e){var c=!1,f=null,d=function(){if(!c){var e,n,d=t.getState();try{e=r(d,o.current)}catch(e){n=e,f=e}n||(f=null),e===a.current?i.current||u():(a.current=e,l.current=e,i.current=!0,s({type:"STORE_UPDATED",payload:{error:n}}))}};n.onStateChange=d,n.trySubscribe(),d();return function(){if(c=!0,n.tryUnsubscribe(),n.onStateChange=null,f)throw f}}}var hi=function(){return[null,0]};function vi(e,t){void 0===t&&(t={});var n=t,r=n.getDisplayName,i=void 0===r?function(e){return"ConnectAdvanced("+e+")"}:r,l=n.methodName,u=void 0===l?"connectAdvanced":l,s=n.renderCountProp,c=void 0===s?void 0:s,f=n.shouldHandleStateChanges,d=void 0===f||f,p=n.storeKey,m=void 0===p?"store":p,h=(n.withRef,n.forwardRef),v=void 0!==h&&h,g=n.context,b=void 0===g?ti:g,y=Un(n,["getDisplayName","methodName","renderCountProp","shouldHandleStateChanges","storeKey","withRef","forwardRef","context"]),_=b;return function(t){var n=t.displayName||t.name||"Component",r=i(n),l=pt({},y,{getDisplayName:i,methodName:u,renderCountProp:c,shouldHandleStateChanges:d,storeKey:m,displayName:r,wrappedComponentName:n,WrappedComponent:t}),s=y.pure;var f=s?o.useMemo:function(e){return e()};function p(n){var r=Object(o.useMemo)((function(){var e=n.reactReduxForwardedRef,t=Un(n,["reactReduxForwardedRef"]);return[n.context,e,t]}),[n]),i=r[0],u=r[1],s=r[2],c=Object(o.useMemo)((function(){return i&&i.Consumer&&Object(li.isContextConsumer)(a.a.createElement(i.Consumer,null))?i:_}),[i,_]),p=Object(o.useContext)(c),m=Boolean(n.store)&&Boolean(n.store.getState)&&Boolean(n.store.dispatch);Boolean(p)&&Boolean(p.store);var h=m?n.store:p.store,v=Object(o.useMemo)((function(){return function(t){return e(t.dispatch,l)}(h)}),[h]),g=Object(o.useMemo)((function(){if(!d)return ci;var e=new ai(h,m?null:p.subscription),t=e.notifyNestedSubs.bind(e);return[e,t]}),[h,m,p]),b=g[0],y=g[1],w=Object(o.useMemo)((function(){return m?p:pt({},p,{subscription:b})}),[m,p,b]),E=Object(o.useReducer)(fi,si,hi),S=E[0][0],x=E[1];if(S&&S.error)throw S.error;var O=Object(o.useRef)(),C=Object(o.useRef)(s),k=Object(o.useRef)(),P=Object(o.useRef)(!1),I=f((function(){return k.current&&s===C.current?k.current:v(h.getState(),s)}),[h,S,s]);di(pi,[C,O,P,s,I,k,y]),di(mi,[d,h,b,v,C,O,P,k,y,x],[h,b,v]);var D=Object(o.useMemo)((function(){return a.a.createElement(t,pt({},I,{ref:u}))}),[u,t,I]);return Object(o.useMemo)((function(){return d?a.a.createElement(c.Provider,{value:w},D):D}),[c,D,w])}var h=s?a.a.memo(p):p;if(h.WrappedComponent=t,h.displayName=r,v){var g=a.a.forwardRef((function(e,t){return a.a.createElement(h,pt({},e,{reactReduxForwardedRef:t}))}));return g.displayName=r,g.WrappedComponent=t,pn()(g,t)}return pn()(h,t)}}function gi(e,t){return e===t?0!==e||0!==t||1/e==1/t:e!=e&&t!=t}function bi(e,t){if(gi(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(var o=0;o<n.length;o++)if(!Object.prototype.hasOwnProperty.call(t,n[o])||!gi(e[n[o]],t[n[o]]))return!1;return!0}function yi(e){return function(t,n){var r=e(t,n);function o(){return r}return o.dependsOnOwnProps=!1,o}}function _i(e){return null!==e.dependsOnOwnProps&&void 0!==e.dependsOnOwnProps?Boolean(e.dependsOnOwnProps):1!==e.length}function wi(e,t){return function(t,n){n.displayName;var r=function(e,t){return r.dependsOnOwnProps?r.mapToProps(e,t):r.mapToProps(e)};return r.dependsOnOwnProps=!0,r.mapToProps=function(t,n){r.mapToProps=e,r.dependsOnOwnProps=_i(e);var o=r(t,n);return"function"==typeof o&&(r.mapToProps=o,r.dependsOnOwnProps=_i(o),o=r(t,n)),o},r}}var Ei=[function(e){return"function"==typeof e?wi(e):void 0},function(e){return e?void 0:yi((function(e){return{dispatch:e}}))},function(e){return e&&"object"==typeof e?yi((function(t){return Ka(e,t)})):void 0}];var Si=[function(e){return"function"==typeof e?wi(e):void 0},function(e){return e?void 0:yi((function(){return{}}))}];function xi(e,t,n){return pt({},n,e,t)}var Oi=[function(e){return"function"==typeof e?function(e){return function(t,n){n.displayName;var r,o=n.pure,a=n.areMergedPropsEqual,i=!1;return function(t,n,l){var u=e(t,n,l);return i?o&&a(u,r)||(r=u):(i=!0,r=u),r}}}(e):void 0},function(e){return e?void 0:function(){return xi}}];function Ci(e,t,n,r){return function(o,a){return n(e(o,a),t(r,a),a)}}function ki(e,t,n,r,o){var a,i,l,u,s,c=o.areStatesEqual,f=o.areOwnPropsEqual,d=o.areStatePropsEqual,p=!1;function m(o,p){var m,h,v=!f(p,i),g=!c(o,a);return a=o,i=p,v&&g?(l=e(a,i),t.dependsOnOwnProps&&(u=t(r,i)),s=n(l,u,i)):v?(e.dependsOnOwnProps&&(l=e(a,i)),t.dependsOnOwnProps&&(u=t(r,i)),s=n(l,u,i)):g?(m=e(a,i),h=!d(m,l),l=m,h&&(s=n(l,u,i)),s):s}return function(o,c){return p?m(o,c):(l=e(a=o,i=c),u=t(r,i),s=n(l,u,i),p=!0,s)}}function Pi(e,t){var n=t.initMapStateToProps,r=t.initMapDispatchToProps,o=t.initMergeProps,a=Un(t,["initMapStateToProps","initMapDispatchToProps","initMergeProps"]),i=n(e,a),l=r(e,a),u=o(e,a);return(a.pure?ki:Ci)(i,l,u,e,a)}function Ii(e,t,n){for(var r=t.length-1;r>=0;r--){var o=t[r](e);if(o)return o}return function(t,r){throw new Error("Invalid value of type "+typeof e+" for "+n+" argument when connecting component "+r.wrappedComponentName+".")}}function Di(e,t){return e===t}function Ri(e){var t=void 0===e?{}:e,n=t.connectHOC,r=void 0===n?vi:n,o=t.mapStateToPropsFactories,a=void 0===o?Si:o,i=t.mapDispatchToPropsFactories,l=void 0===i?Ei:i,u=t.mergePropsFactories,s=void 0===u?Oi:u,c=t.selectorFactory,f=void 0===c?Pi:c;return function(e,t,n,o){void 0===o&&(o={});var i=o,u=i.pure,c=void 0===u||u,d=i.areStatesEqual,p=void 0===d?Di:d,m=i.areOwnPropsEqual,h=void 0===m?bi:m,v=i.areStatePropsEqual,g=void 0===v?bi:v,b=i.areMergedPropsEqual,y=void 0===b?bi:b,_=Un(i,["pure","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","areMergedPropsEqual"]),w=Ii(e,a,"mapStateToProps"),E=Ii(t,l,"mapDispatchToProps"),S=Ii(n,s,"mergeProps");return r(f,pt({methodName:"connect",getDisplayName:function(e){return"Connect("+e+")"},shouldHandleStateChanges:Boolean(e),initMapStateToProps:w,initMapDispatchToProps:E,initMergeProps:S,pure:c,areStatesEqual:p,areOwnPropsEqual:h,areStatePropsEqual:g,areMergedPropsEqual:y},_))}}var Ni=Ri();var Ti;function Li(e,t){var n=Object(o.useState)((function(){return{inputs:t,result:e()}}))[0],r=Object(o.useRef)(n),a=Boolean(t&&r.current.inputs&&function(e,t){if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}(t,r.current.inputs))?r.current:{inputs:t,result:e()};return Object(o.useEffect)((function(){r.current=a}),[a]),a.result}Ti=i.unstable_batchedUpdates,ni=Ti;var Ai=Li,ji=function(e,t){return Li((function(){return e}),t)};var Mi=function(e,t){if(!e)throw new Error("Invariant failed")},Fi=function(e){var t=e.top,n=e.right,r=e.bottom,o=e.left;return{top:t,right:n,bottom:r,left:o,width:n-o,height:r-t,x:o,y:t,center:{x:(n+o)/2,y:(r+t)/2}}},Bi=function(e,t){return{top:e.top-t.top,left:e.left-t.left,bottom:e.bottom+t.bottom,right:e.right+t.right}},Vi=function(e,t){return{top:e.top+t.top,left:e.left+t.left,bottom:e.bottom-t.bottom,right:e.right-t.right}},Ui={top:0,right:0,bottom:0,left:0},zi=function(e){var t=e.borderBox,n=e.margin,r=void 0===n?Ui:n,o=e.border,a=void 0===o?Ui:o,i=e.padding,l=void 0===i?Ui:i,u=Fi(Bi(t,r)),s=Fi(Vi(t,a)),c=Fi(Vi(s,l));return{marginBox:u,borderBox:Fi(t),paddingBox:s,contentBox:c,margin:r,border:a,padding:l}},Hi=function(e){var t=e.slice(0,-2);if("px"!==e.slice(-2))return 0;var n=Number(t);return isNaN(n)&&Mi(!1),n},Wi=function(e,t){var n,r,o=e.borderBox,a=e.border,i=e.margin,l=e.padding,u=(r=t,{top:(n=o).top+r.y,left:n.left+r.x,bottom:n.bottom+r.y,right:n.right+r.x});return zi({borderBox:u,border:a,margin:i,padding:l})},Gi=function(e,t){return void 0===t&&(t={x:window.pageXOffset,y:window.pageYOffset}),Wi(e,t)},qi=function(e,t){var n={top:Hi(t.marginTop),right:Hi(t.marginRight),bottom:Hi(t.marginBottom),left:Hi(t.marginLeft)},r={top:Hi(t.paddingTop),right:Hi(t.paddingRight),bottom:Hi(t.paddingBottom),left:Hi(t.paddingLeft)},o={top:Hi(t.borderTopWidth),right:Hi(t.borderRightWidth),bottom:Hi(t.borderBottomWidth),left:Hi(t.borderLeftWidth)};return zi({borderBox:e,margin:n,padding:r,border:o})},$i=function(e){var t=e.getBoundingClientRect(),n=window.getComputedStyle(e);return qi(t,n)},Yi=function(e){var t=[],n=null,r=function(){for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];t=o,n||(n=requestAnimationFrame((function(){n=null,e.apply(void 0,t)})))};return r.cancel=function(){n&&(cancelAnimationFrame(n),n=null)},r};function Qi(e,t){}Qi.bind(null,"warn"),Qi.bind(null,"error");function Ki(){}function Xi(e,t,n){var r=t.map((function(t){var r,o,a=(r=n,o=t.options,pt({},r,{},o));return e.addEventListener(t.eventName,t.fn,a),function(){e.removeEventListener(t.eventName,t.fn,a)}}));return function(){r.forEach((function(e){e()}))}}function Ji(e){this.message=e}function Zi(e,t){if(!e)throw new Ji("Invariant failed")}Ji.prototype.toString=function(){return this.message};var el=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).callbacks=null,t.unbind=Ki,t.onWindowError=function(e){var n=t.getCallbacks();n.isDragging()&&n.tryAbort(),e.error instanceof Ji&&e.preventDefault()},t.getCallbacks=function(){if(!t.callbacks)throw new Error("Unable to find AppCallbacks in <ErrorBoundary/>");return t.callbacks},t.setCallbacks=function(e){t.callbacks=e},t}Ha(t,e);var n=t.prototype;return n.componentDidMount=function(){this.unbind=Xi(window,[{eventName:"error",fn:this.onWindowError}])},n.componentWillUnmount=function(){this.unbind()},n.componentDidCatch=function(e){if(!(e instanceof Ji))throw e;this.setState({})},n.render=function(){return this.props.children(this.setCallbacks)},t}(a.a.Component),tl=function(e){return e+1},nl=function(e,t){var n=e.droppableId===t.droppableId,r=tl(e.index),o=tl(t.index);return n?"\n You have moved the item from position "+r+"\n to position "+o+"\n ":"\n You have moved the item from position "+r+"\n in list "+e.droppableId+"\n to list "+t.droppableId+"\n in position "+o+"\n "},rl=function(e,t,n){return t.droppableId===n.droppableId?"\n The item "+e+"\n has been combined with "+n.draggableId:"\n The item "+e+"\n in list "+t.droppableId+"\n has been combined with "+n.draggableId+"\n in list "+n.droppableId+"\n "},ol=function(e){return"\n The item has returned to its starting position\n of "+tl(e.index)+"\n"},al="\n Press space bar to start a drag.\n When dragging you can use the arrow keys to move the item around and escape to cancel.\n Some screen readers may require you to be in focus mode or to use your pass through key\n",il=function(e){return"\n You have lifted an item in position "+tl(e.source.index)+"\n"},ll=function(e){var t=e.destination;if(t)return nl(e.source,t);var n=e.combine;return n?rl(e.draggableId,e.source,n):"You are over an area that cannot be dropped on"},ul=function(e){if("CANCEL"===e.reason)return"\n Movement cancelled.\n "+ol(e.source)+"\n ";var t=e.destination,n=e.combine;return t?"\n You have dropped the item.\n "+nl(e.source,t)+"\n ":n?"\n You have dropped the item.\n "+rl(e.draggableId,e.source,n)+"\n ":"\n The item has been dropped while not over a drop area.\n "+ol(e.source)+"\n "},sl={x:0,y:0},cl=function(e,t){return{x:e.x+t.x,y:e.y+t.y}},fl=function(e,t){return{x:e.x-t.x,y:e.y-t.y}},dl=function(e,t){return e.x===t.x&&e.y===t.y},pl=function(e){return{x:0!==e.x?-e.x:0,y:0!==e.y?-e.y:0}},ml=function(e,t,n){var r;return void 0===n&&(n=0),(r={})[e]=t,r["x"===e?"y":"x"]=n,r},hl=function(e,t){return Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2))},vl=function(e,t){return Math.min.apply(Math,t.map((function(t){return hl(e,t)})))},gl=function(e){return function(t){return{x:e(t.x),y:e(t.y)}}},bl=function(e,t){return{top:e.top+t.y,left:e.left+t.x,bottom:e.bottom+t.y,right:e.right+t.x}},yl=function(e){return[{x:e.left,y:e.top},{x:e.right,y:e.top},{x:e.left,y:e.bottom},{x:e.right,y:e.bottom}]},_l=function(e,t){return t&&t.shouldClipSubject?function(e,t){var n=Fi({top:Math.max(t.top,e.top),right:Math.min(t.right,e.right),bottom:Math.min(t.bottom,e.bottom),left:Math.max(t.left,e.left)});return n.width<=0||n.height<=0?null:n}(t.pageMarginBox,e):Fi(e)},wl=function(e){var t=e.page,n=e.withPlaceholder,r=e.axis,o=e.frame,a=function(e,t,n){var r;return n&&n.increasedBy?pt({},e,((r={})[t.end]=e[t.end]+n.increasedBy[t.line],r)):e}(function(e,t){return t?bl(e,t.scroll.diff.displacement):e}(t.marginBox,o),r,n);return{page:t,withPlaceholder:n,active:_l(a,o)}},El=function(e,t){e.frame||Zi(!1);var n=e.frame,r=fl(t,n.scroll.initial),o=pl(r),a=pt({},n,{scroll:{initial:n.scroll.initial,current:t,diff:{value:r,displacement:o},max:n.scroll.max}});return pt({},e,{frame:a,subject:wl({page:e.subject.page,withPlaceholder:e.subject.withPlaceholder,axis:e.axis,frame:a})})};function Sl(e){return Object.values?Object.values(e):Object.keys(e).map((function(t){return e[t]}))}function xl(e,t){if(e.findIndex)return e.findIndex(t);for(var n=0;n<e.length;n++)if(t(e[n]))return n;return-1}function Ol(e,t){if(e.find)return e.find(t);var n=xl(e,t);return-1!==n?e[n]:void 0}function Cl(e){return Array.prototype.slice.call(e)}var kl=Bo((function(e){return e.reduce((function(e,t){return e[t.descriptor.id]=t,e}),{})})),Pl=Bo((function(e){return e.reduce((function(e,t){return e[t.descriptor.id]=t,e}),{})})),Il=Bo((function(e){return Sl(e)})),Dl=Bo((function(e){return Sl(e)})),Rl=Bo((function(e,t){return Dl(t).filter((function(t){return e===t.descriptor.droppableId})).sort((function(e,t){return e.descriptor.index-t.descriptor.index}))}));function Nl(e){return e.at&&"REORDER"===e.at.type?e.at.destination:null}function Tl(e){return e.at&&"COMBINE"===e.at.type?e.at.combine:null}var Ll=Bo((function(e,t){return t.filter((function(t){return t.descriptor.id!==e.descriptor.id}))})),Al=function(e,t){return e.descriptor.droppableId===t.descriptor.id},jl={point:sl,value:0},Ml={invisible:{},visible:{},all:[]},Fl={displaced:Ml,displacedBy:jl,at:null},Bl=function(e,t){return function(n){return e<=n&&n<=t}},Vl=function(e){var t=Bl(e.top,e.bottom),n=Bl(e.left,e.right);return function(r){if(t(r.top)&&t(r.bottom)&&n(r.left)&&n(r.right))return!0;var o=t(r.top)||t(r.bottom),a=n(r.left)||n(r.right);if(o&&a)return!0;var i=r.top<e.top&&r.bottom>e.bottom,l=r.left<e.left&&r.right>e.right;return!(!i||!l)||(i&&a||l&&o)}},Ul=function(e){var t=Bl(e.top,e.bottom),n=Bl(e.left,e.right);return function(e){return t(e.top)&&t(e.bottom)&&n(e.left)&&n(e.right)}},zl={direction:"vertical",line:"y",crossAxisLine:"x",start:"top",end:"bottom",size:"height",crossAxisStart:"left",crossAxisEnd:"right",crossAxisSize:"width"},Hl={direction:"horizontal",line:"x",crossAxisLine:"y",start:"left",end:"right",size:"width",crossAxisStart:"top",crossAxisEnd:"bottom",crossAxisSize:"height"},Wl=function(e){var t=e.target,n=e.destination,r=e.viewport,o=e.withDroppableDisplacement,a=e.isVisibleThroughFrameFn,i=o?function(e,t){var n=t.frame?t.frame.scroll.diff.displacement:sl;return bl(e,n)}(t,n):t;return function(e,t,n){return!!t.subject.active&&n(t.subject.active)(e)}(i,n,a)&&function(e,t,n){return n(t)(e)}(i,r,a)},Gl=function(e){return Wl(pt({},e,{isVisibleThroughFrameFn:Vl}))},ql=function(e){return Wl(pt({},e,{isVisibleThroughFrameFn:Ul}))};function $l(e){var t=e.afterDragging,n=e.destination,r=e.displacedBy,o=e.viewport,a=e.forceShouldAnimate,i=e.last;return t.reduce((function(e,t){var l=function(e,t){var n=e.page.marginBox,r={top:t.point.y,right:0,bottom:0,left:t.point.x};return Fi(Bi(n,r))}(t,r),u=t.descriptor.id;if(e.all.push(u),!Gl({target:l,destination:n,viewport:o,withDroppableDisplacement:!0}))return e.invisible[t.descriptor.id]=!0,e;var s={draggableId:u,shouldAnimate:function(e,t,n){if("boolean"==typeof n)return n;if(!t)return!0;var r=t.invisible,o=t.visible;if(r[e])return!1;var a=o[e];return!a||a.shouldAnimate}(u,i,a)};return e.visible[u]=s,e}),{all:[],visible:{},invisible:{}})}function Yl(e){var t=e.insideDestination,n=e.inHomeList,r=e.displacedBy,o=e.destination,a=function(e,t){if(!e.length)return 0;var n=e[e.length-1].descriptor.index;return t.inHomeList?n:n+1}(t,{inHomeList:n});return{displaced:Ml,displacedBy:r,at:{type:"REORDER",destination:{droppableId:o.descriptor.id,index:a}}}}function Ql(e){var t=e.draggable,n=e.insideDestination,r=e.destination,o=e.viewport,a=e.displacedBy,i=e.last,l=e.index,u=e.forceShouldAnimate,s=Al(t,r);if(null==l)return Yl({insideDestination:n,inHomeList:s,displacedBy:a,destination:r});var c=Ol(n,(function(e){return e.descriptor.index===l}));if(!c)return Yl({insideDestination:n,inHomeList:s,displacedBy:a,destination:r});var f=Ll(t,n),d=n.indexOf(c);return{displaced:$l({afterDragging:f.slice(d),destination:r,displacedBy:a,last:i,viewport:o.frame,forceShouldAnimate:u}),displacedBy:a,at:{type:"REORDER",destination:{droppableId:r.descriptor.id,index:l}}}}function Kl(e,t){return Boolean(t.effected[e])}var Xl=function(e){var t=e.isMovingForward,n=e.isInHomeList,r=e.draggable,o=e.draggables,a=e.destination,i=e.insideDestination,l=e.previousImpact,u=e.viewport,s=e.afterCritical,c=l.at;if(c||Zi(!1),"REORDER"===c.type){var f=function(e){var t=e.isMovingForward,n=e.isInHomeList,r=e.insideDestination,o=e.location;if(!r.length)return null;var a=o.index,i=t?a+1:a-1,l=r[0].descriptor.index,u=r[r.length-1].descriptor.index;return i<l||i>(n?u:u+1)?null:i}({isMovingForward:t,isInHomeList:n,location:c.destination,insideDestination:i});return null==f?null:Ql({draggable:r,insideDestination:i,destination:a,viewport:u,last:l.displaced,displacedBy:l.displacedBy,index:f})}var d=function(e){var t=e.isMovingForward,n=e.destination,r=e.draggables,o=e.combine,a=e.afterCritical;if(!n.isCombineEnabled)return null;var i=o.draggableId,l=r[i].descriptor.index;return Kl(i,a)?t?l:l-1:t?l+1:l}({isMovingForward:t,destination:a,displaced:l.displaced,draggables:o,combine:c.combine,afterCritical:s});return null==d?null:Ql({draggable:r,insideDestination:i,destination:a,viewport:u,last:l.displaced,displacedBy:l.displacedBy,index:d})},Jl=function(e){var t=e.afterCritical,n=e.impact,r=e.draggables,o=Tl(n);o||Zi(!1);var a=o.draggableId,i=r[a].page.borderBox.center,l=function(e){var t=e.displaced,n=e.afterCritical,r=e.combineWith,o=e.displacedBy,a=Boolean(t.visible[r]||t.invisible[r]);return Kl(r,n)?a?sl:pl(o.point):a?o.point:sl}({displaced:n.displaced,afterCritical:t,combineWith:a,displacedBy:n.displacedBy});return cl(i,l)},Zl=function(e,t){return t.margin[e.start]+t.borderBox[e.size]/2},eu=function(e,t,n){return t[e.crossAxisStart]+n.margin[e.crossAxisStart]+n.borderBox[e.crossAxisSize]/2},tu=function(e){var t=e.axis,n=e.moveRelativeTo,r=e.isMoving;return ml(t.line,n.marginBox[t.end]+Zl(t,r),eu(t,n.marginBox,r))},nu=function(e){var t=e.axis,n=e.moveRelativeTo,r=e.isMoving;return ml(t.line,n.marginBox[t.start]-function(e,t){return t.margin[e.end]+t.borderBox[e.size]/2}(t,r),eu(t,n.marginBox,r))},ru=function(e){var t=e.impact,n=e.draggable,r=e.draggables,o=e.droppable,a=e.afterCritical,i=Rl(o.descriptor.id,r),l=n.page,u=o.axis;if(!i.length)return function(e){var t=e.axis,n=e.moveInto,r=e.isMoving;return ml(t.line,n.contentBox[t.start]+Zl(t,r),eu(t,n.contentBox,r))}({axis:u,moveInto:o.page,isMoving:l});var s=t.displaced,c=t.displacedBy,f=s.all[0];if(f){var d=r[f];if(Kl(f,a))return nu({axis:u,moveRelativeTo:d.page,isMoving:l});var p=Wi(d.page,c.point);return nu({axis:u,moveRelativeTo:p,isMoving:l})}var m=i[i.length-1];if(m.descriptor.id===n.descriptor.id)return l.borderBox.center;if(Kl(m.descriptor.id,a)){var h=Wi(m.page,pl(a.displacedBy.point));return tu({axis:u,moveRelativeTo:h,isMoving:l})}return tu({axis:u,moveRelativeTo:m.page,isMoving:l})},ou=function(e,t){var n=e.frame;return n?cl(t,n.scroll.diff.displacement):t},au=function(e){var t=function(e){var t=e.impact,n=e.draggable,r=e.droppable,o=e.draggables,a=e.afterCritical,i=n.page.borderBox.center,l=t.at;return r&&l?"REORDER"===l.type?ru({impact:t,draggable:n,draggables:o,droppable:r,afterCritical:a}):Jl({impact:t,draggables:o,afterCritical:a}):i}(e),n=e.droppable;return n?ou(n,t):t},iu=function(e,t){var n=fl(t,e.scroll.initial),r=pl(n);return{frame:Fi({top:t.y,bottom:t.y+e.frame.height,left:t.x,right:t.x+e.frame.width}),scroll:{initial:e.scroll.initial,max:e.scroll.max,current:t,diff:{value:n,displacement:r}}}};function lu(e,t){return e.map((function(e){return t[e]}))}var uu=function(e){var t=e.pageBorderBoxCenter,n=e.draggable,r=function(e,t){return cl(e.scroll.diff.displacement,t)}(e.viewport,t),o=fl(r,n.page.borderBox.center);return cl(n.client.borderBox.center,o)},su=function(e){var t=e.draggable,n=e.destination,r=e.newPageBorderBoxCenter,o=e.viewport,a=e.withDroppableDisplacement,i=e.onlyOnMainAxis,l=void 0!==i&&i,u=fl(r,t.page.borderBox.center),s={target:bl(t.page.borderBox,u),destination:n,withDroppableDisplacement:a,viewport:o};return l?function(e){return Wl(pt({},e,{isVisibleThroughFrameFn:(t=e.destination.axis,function(e){var n=Bl(e.top,e.bottom),r=Bl(e.left,e.right);return function(e){return t===zl?n(e.top)&&n(e.bottom):r(e.left)&&r(e.right)}})}));var t}(s):ql(s)},cu=function(e){var t=e.isMovingForward,n=e.draggable,r=e.destination,o=e.draggables,a=e.previousImpact,i=e.viewport,l=e.previousPageBorderBoxCenter,u=e.previousClientSelection,s=e.afterCritical;if(!r.isEnabled)return null;var c=Rl(r.descriptor.id,o),f=Al(n,r),d=function(e){var t=e.isMovingForward,n=e.draggable,r=e.destination,o=e.insideDestination,a=e.previousImpact;if(!r.isCombineEnabled)return null;if(!Nl(a))return null;function i(e){var t={type:"COMBINE",combine:{draggableId:e,droppableId:r.descriptor.id}};return pt({},a,{at:t})}var l=a.displaced.all,u=l.length?l[0]:null;if(t)return u?i(u):null;var s=Ll(n,o);if(!u)return s.length?i(s[s.length-1].descriptor.id):null;var c=xl(s,(function(e){return e.descriptor.id===u}));-1===c&&Zi(!1);var f=c-1;return f<0?null:i(s[f].descriptor.id)}({isMovingForward:t,draggable:n,destination:r,insideDestination:c,previousImpact:a})||Xl({isMovingForward:t,isInHomeList:f,draggable:n,draggables:o,destination:r,insideDestination:c,previousImpact:a,viewport:i,afterCritical:s});if(!d)return null;var p=au({impact:d,draggable:n,droppable:r,draggables:o,afterCritical:s});if(su({draggable:n,destination:r,newPageBorderBoxCenter:p,viewport:i.frame,withDroppableDisplacement:!1,onlyOnMainAxis:!0}))return{clientSelection:uu({pageBorderBoxCenter:p,draggable:n,viewport:i}),impact:d,scrollJumpRequest:null};var m=fl(p,l);return{clientSelection:u,impact:function(e){var t=e.impact,n=e.viewport,r=e.destination,o=e.draggables,a=e.maxScrollChange,i=iu(n,cl(n.scroll.current,a)),l=r.frame?El(r,cl(r.frame.scroll.current,a)):r,u=t.displaced,s=$l({afterDragging:lu(u.all,o),destination:r,displacedBy:t.displacedBy,viewport:i.frame,last:u,forceShouldAnimate:!1}),c=$l({afterDragging:lu(u.all,o),destination:l,displacedBy:t.displacedBy,viewport:n.frame,last:u,forceShouldAnimate:!1}),f={},d={},p=[u,s,c];return u.all.forEach((function(e){var t=function(e,t){for(var n=0;n<t.length;n++){var r=t[n].visible[e];if(r)return r}return null}(e,p);t?d[e]=t:f[e]=!0})),pt({},t,{displaced:{all:u.all,invisible:f,visible:d}})}({impact:d,viewport:i,destination:r,draggables:o,maxScrollChange:m}),scrollJumpRequest:m}},fu=function(e){var t=e.subject.active;return t||Zi(!1),t},du=function(e,t){var n=e.page.borderBox.center;return Kl(e.descriptor.id,t)?fl(n,t.displacedBy.point):n},pu=function(e,t){var n=e.page.borderBox;return Kl(e.descriptor.id,t)?bl(n,pl(t.displacedBy.point)):n},mu=Bo((function(e,t){var n=t[e.line];return{value:n,point:ml(e.line,n)}})),hu=function(e,t){return pt({},e,{scroll:pt({},e.scroll,{max:t})})},vu=function(e,t,n){var r=e.frame;Al(t,e)&&Zi(!1),e.subject.withPlaceholder&&Zi(!1);var o=mu(e.axis,t.displaceBy).point,a=function(e,t,n){var r=e.axis;if("virtual"===e.descriptor.mode)return ml(r.line,t[r.line]);var o=e.subject.page.contentBox[r.size],a=Rl(e.descriptor.id,n).reduce((function(e,t){return e+t.client.marginBox[r.size]}),0)+t[r.line]-o;return a<=0?null:ml(r.line,a)}(e,o,n),i={placeholderSize:o,increasedBy:a,oldFrameMaxScroll:e.frame?e.frame.scroll.max:null};if(!r)return pt({},e,{subject:wl({page:e.subject.page,withPlaceholder:i,axis:e.axis,frame:e.frame})});var l=a?cl(r.scroll.max,a):r.scroll.max,u=hu(r,l);return pt({},e,{subject:wl({page:e.subject.page,withPlaceholder:i,axis:e.axis,frame:u}),frame:u})},gu=function(e){var t=e.isMovingForward,n=e.previousPageBorderBoxCenter,r=e.draggable,o=e.isOver,a=e.draggables,i=e.droppables,l=e.viewport,u=e.afterCritical,s=function(e){var t=e.isMovingForward,n=e.pageBorderBoxCenter,r=e.source,o=e.droppables,a=e.viewport,i=r.subject.active;if(!i)return null;var l=r.axis,u=Bl(i[l.start],i[l.end]),s=Il(o).filter((function(e){return e!==r})).filter((function(e){return e.isEnabled})).filter((function(e){return Boolean(e.subject.active)})).filter((function(e){return Vl(a.frame)(fu(e))})).filter((function(e){var n=fu(e);return t?i[l.crossAxisEnd]<n[l.crossAxisEnd]:n[l.crossAxisStart]<i[l.crossAxisStart]})).filter((function(e){var t=fu(e),n=Bl(t[l.start],t[l.end]);return u(t[l.start])||u(t[l.end])||n(i[l.start])||n(i[l.end])})).sort((function(e,n){var r=fu(e)[l.crossAxisStart],o=fu(n)[l.crossAxisStart];return t?r-o:o-r})).filter((function(e,t,n){return fu(e)[l.crossAxisStart]===fu(n[0])[l.crossAxisStart]}));if(!s.length)return null;if(1===s.length)return s[0];var c=s.filter((function(e){return Bl(fu(e)[l.start],fu(e)[l.end])(n[l.line])}));return 1===c.length?c[0]:c.length>1?c.sort((function(e,t){return fu(e)[l.start]-fu(t)[l.start]}))[0]:s.sort((function(e,t){var r=vl(n,yl(fu(e))),o=vl(n,yl(fu(t)));return r!==o?r-o:fu(e)[l.start]-fu(t)[l.start]}))[0]}({isMovingForward:t,pageBorderBoxCenter:n,source:o,droppables:i,viewport:l});if(!s)return null;var c=Rl(s.descriptor.id,a),f=function(e){var t=e.previousPageBorderBoxCenter,n=e.moveRelativeTo,r=e.insideDestination,o=e.draggable,a=e.draggables,i=e.destination,l=e.viewport,u=e.afterCritical;if(!n){if(r.length)return null;var s={displaced:Ml,displacedBy:jl,at:{type:"REORDER",destination:{droppableId:i.descriptor.id,index:0}}},c=au({impact:s,draggable:o,droppable:i,draggables:a,afterCritical:u}),f=Al(o,i)?i:vu(i,o,a);return su({draggable:o,destination:f,newPageBorderBoxCenter:c,viewport:l.frame,withDroppableDisplacement:!1,onlyOnMainAxis:!0})?s:null}var d,p=Boolean(t[i.axis.line]<=n.page.borderBox.center[i.axis.line]),m=(d=n.descriptor.index,n.descriptor.id===o.descriptor.id||p?d:d+1),h=mu(i.axis,o.displaceBy);return Ql({draggable:o,insideDestination:r,destination:i,viewport:l,displacedBy:h,last:Ml,index:m})}({previousPageBorderBoxCenter:n,destination:s,draggable:r,draggables:a,moveRelativeTo:function(e){var t=e.pageBorderBoxCenter,n=e.viewport,r=e.destination,o=e.insideDestination,a=e.afterCritical;return o.filter((function(e){return ql({target:pu(e,a),destination:r,viewport:n.frame,withDroppableDisplacement:!0})})).sort((function(e,n){var o=hl(t,ou(r,du(e,a))),i=hl(t,ou(r,du(n,a)));return o<i?-1:i<o?1:e.descriptor.index-n.descriptor.index}))[0]||null}({pageBorderBoxCenter:n,viewport:l,destination:s,insideDestination:c,afterCritical:u}),insideDestination:c,viewport:l,afterCritical:u});if(!f)return null;var d=au({impact:f,draggable:r,droppable:s,draggables:a,afterCritical:u});return{clientSelection:uu({pageBorderBoxCenter:d,draggable:r,viewport:l}),impact:f,scrollJumpRequest:null}},bu=function(e){var t=e.at;return t?"REORDER"===t.type?t.destination.droppableId:t.combine.droppableId:null},yu=function(e){var t=e.state,n=e.type,r=function(e,t){var n=bu(e);return n?t[n]:null}(t.impact,t.dimensions.droppables),o=Boolean(r),a=t.dimensions.droppables[t.critical.droppable.id],i=r||a,l=i.axis.direction,u="vertical"===l&&("MOVE_UP"===n||"MOVE_DOWN"===n)||"horizontal"===l&&("MOVE_LEFT"===n||"MOVE_RIGHT"===n);if(u&&!o)return null;var s="MOVE_DOWN"===n||"MOVE_RIGHT"===n,c=t.dimensions.draggables[t.critical.draggable.id],f=t.current.page.borderBoxCenter,d=t.dimensions,p=d.draggables,m=d.droppables;return u?cu({isMovingForward:s,previousPageBorderBoxCenter:f,draggable:c,destination:i,draggables:p,viewport:t.viewport,previousClientSelection:t.current.client.selection,previousImpact:t.impact,afterCritical:t.afterCritical}):gu({isMovingForward:s,previousPageBorderBoxCenter:f,draggable:c,isOver:i,draggables:p,droppables:m,viewport:t.viewport,afterCritical:t.afterCritical})};function _u(e){return"DRAGGING"===e.phase||"COLLECTING"===e.phase}function wu(e){var t=Bl(e.top,e.bottom),n=Bl(e.left,e.right);return function(e){return t(e.y)&&n(e.x)}}function Eu(e){var t=e.pageBorderBox,n=e.draggable,r=e.droppables,o=Il(r).filter((function(e){if(!e.isEnabled)return!1;var n,r,o=e.subject.active;if(!o)return!1;if(r=o,!((n=t).left<r.right&&n.right>r.left&&n.top<r.bottom&&n.bottom>r.top))return!1;if(wu(o)(t.center))return!0;var a=e.axis,i=o.center[a.crossAxisLine],l=t[a.crossAxisStart],u=t[a.crossAxisEnd],s=Bl(o[a.crossAxisStart],o[a.crossAxisEnd]),c=s(l),f=s(u);return!c&&!f||(c?l<i:u>i)}));return o.length?1===o.length?o[0].descriptor.id:function(e){var t=e.pageBorderBox,n=e.draggable,r=e.candidates,o=n.page.borderBox.center,a=r.map((function(e){var n=e.axis,r=ml(e.axis.line,t.center[n.line],e.page.borderBox.center[n.crossAxisLine]);return{id:e.descriptor.id,distance:hl(o,r)}})).sort((function(e,t){return t.distance-e.distance}));return a[0]?a[0].id:null}({pageBorderBox:t,draggable:n,candidates:o}):null}var Su=function(e,t){return Fi(bl(e,t))};function xu(e){var t=e.displaced,n=e.id;return Boolean(t.visible[n]||t.invisible[n])}var Ou=function(e){var t=e.pageOffset,n=e.draggable,r=e.draggables,o=e.droppables,a=e.previousImpact,i=e.viewport,l=e.afterCritical,u=Su(n.page.borderBox,t),s=Eu({pageBorderBox:u,draggable:n,droppables:o});if(!s)return Fl;var c,f,d=o[s],p=Rl(d.descriptor.id,r),m=(c=u,(f=d.frame)?Su(c,f.scroll.diff.value):c);return function(e){var t=e.draggable,n=e.pageBorderBoxWithDroppableScroll,r=e.previousImpact,o=e.destination,a=e.insideDestination,i=e.afterCritical;if(!o.isCombineEnabled)return null;var l=o.axis,u=mu(o.axis,t.displaceBy),s=u.value,c=n[l.start],f=n[l.end],d=Ol(Ll(t,a),(function(e){var t=e.descriptor.id,n=e.page.borderBox,o=n[l.size]/4,a=Kl(t,i),u=xu({displaced:r.displaced,id:t});return a?u?f>n[l.start]+o&&f<n[l.end]-o:c>n[l.start]-s+o&&c<n[l.end]-s-o:u?f>n[l.start]+s+o&&f<n[l.end]+s-o:c>n[l.start]+o&&c<n[l.end]-o}));return d?{displacedBy:u,displaced:r.displaced,at:{type:"COMBINE",combine:{draggableId:d.descriptor.id,droppableId:o.descriptor.id}}}:null}({pageBorderBoxWithDroppableScroll:m,draggable:n,previousImpact:a,destination:d,insideDestination:p,afterCritical:l})||function(e){var t=e.pageBorderBoxWithDroppableScroll,n=e.draggable,r=e.destination,o=e.insideDestination,a=e.last,i=e.viewport,l=e.afterCritical,u=r.axis,s=mu(r.axis,n.displaceBy),c=s.value,f=t[u.start],d=t[u.end],p=function(e){var t=e.draggable,n=e.closest,r=e.inHomeList;return n?r&&n.descriptor.index>t.descriptor.index?n.descriptor.index-1:n.descriptor.index:null}({draggable:n,closest:Ol(Ll(n,o),(function(e){var t=e.descriptor.id,n=e.page.borderBox.center[u.line],r=Kl(t,l),o=xu({displaced:a,id:t});return r?o?d<=n:f<n-c:o?d<=n+c:f<n})),inHomeList:Al(n,r)});return Ql({draggable:n,insideDestination:o,destination:r,viewport:i,last:a,displacedBy:s,index:p})}({pageBorderBoxWithDroppableScroll:m,draggable:n,destination:d,insideDestination:p,last:a.displaced,viewport:i,afterCritical:l})},Cu=function(e,t){var n;return pt({},e,((n={})[t.descriptor.id]=t,n))},ku=function(e){var t=e.previousImpact,n=e.impact,r=e.droppables,o=bu(t),a=bu(n);if(!o)return r;if(o===a)return r;var i=r[o];if(!i.subject.withPlaceholder)return r;var l=function(e){var t=e.subject.withPlaceholder;t||Zi(!1);var n=e.frame;if(!n)return pt({},e,{subject:wl({page:e.subject.page,axis:e.axis,frame:null,withPlaceholder:null})});var r=t.oldFrameMaxScroll;r||Zi(!1);var o=hu(n,r);return pt({},e,{subject:wl({page:e.subject.page,axis:e.axis,frame:o,withPlaceholder:null}),frame:o})}(i);return Cu(r,l)},Pu=function(e){var t=e.state,n=e.clientSelection,r=e.dimensions,o=e.viewport,a=e.impact,i=e.scrollJumpRequest,l=o||t.viewport,u=r||t.dimensions,s=n||t.current.client.selection,c=fl(s,t.initial.client.selection),f={offset:c,selection:s,borderBoxCenter:cl(t.initial.client.borderBoxCenter,c)},d={selection:cl(f.selection,l.scroll.current),borderBoxCenter:cl(f.borderBoxCenter,l.scroll.current),offset:cl(f.offset,l.scroll.diff.value)},p={client:f,page:d};if("COLLECTING"===t.phase)return pt({phase:"COLLECTING"},t,{dimensions:u,viewport:l,current:p});var m=u.draggables[t.critical.draggable.id],h=a||Ou({pageOffset:d.offset,draggable:m,draggables:u.draggables,droppables:u.droppables,previousImpact:t.impact,viewport:l,afterCritical:t.afterCritical}),v=function(e){var t=e.draggable,n=e.draggables,r=e.droppables,o=e.previousImpact,a=e.impact,i=ku({previousImpact:o,impact:a,droppables:r}),l=bu(a);if(!l)return i;var u=r[l];if(Al(t,u))return i;if(u.subject.withPlaceholder)return i;var s=vu(u,t,n);return Cu(i,s)}({draggable:m,impact:h,previousImpact:t.impact,draggables:u.draggables,droppables:u.droppables});return pt({},t,{current:p,dimensions:{draggables:u.draggables,droppables:v},impact:h,viewport:l,scrollJumpRequest:i||null,forceShouldAnimate:!i&&null})};var Iu=function(e){var t=e.impact,n=e.viewport,r=e.draggables,o=e.destination,a=e.forceShouldAnimate,i=t.displaced;return pt({},t,{displaced:$l({afterDragging:function(e,t){return e.map((function(e){return t[e]}))}(i.all,r),destination:o,displacedBy:t.displacedBy,viewport:n.frame,forceShouldAnimate:a,last:i})})},Du=function(e){var t=e.impact,n=e.draggable,r=e.droppable,o=e.draggables,a=e.viewport,i=e.afterCritical,l=au({impact:t,draggable:n,draggables:o,droppable:r,afterCritical:i});return uu({pageBorderBoxCenter:l,draggable:n,viewport:a})},Ru=function(e){var t=e.state,n=e.dimensions,r=e.viewport;"SNAP"!==t.movementMode&&Zi(!1);var o=t.impact,a=r||t.viewport,i=n||t.dimensions,l=i.draggables,u=i.droppables,s=l[t.critical.draggable.id],c=bu(o);c||Zi(!1);var f=u[c],d=Iu({impact:o,viewport:a,destination:f,draggables:l}),p=Du({impact:d,draggable:s,droppable:f,draggables:l,viewport:a,afterCritical:t.afterCritical});return Pu({impact:d,clientSelection:p,state:t,dimensions:i,viewport:a})},Nu=function(e){var t=e.draggable,n=e.home,r=e.draggables,o=e.viewport,a=mu(n.axis,t.displaceBy),i=Rl(n.descriptor.id,r),l=i.indexOf(t);-1===l&&Zi(!1);var u,s=i.slice(l+1),c=s.reduce((function(e,t){return e[t.descriptor.id]=!0,e}),{}),f={inVirtualList:"virtual"===n.descriptor.mode,displacedBy:a,effected:c};return{impact:{displaced:$l({afterDragging:s,destination:n,displacedBy:a,last:null,viewport:o.frame,forceShouldAnimate:!1}),displacedBy:a,at:{type:"REORDER",destination:(u=t.descriptor,{index:u.index,droppableId:u.droppableId})}},afterCritical:f}},Tu=function(e){0},Lu=function(e){0},Au=function(e){var t=e.additions,n=e.updatedDroppables,r=e.viewport,o=r.scroll.diff.value;return t.map((function(e){var t=e.descriptor.droppableId,a=function(e){var t=e.frame;return t||Zi(!1),t}(n[t]).scroll.diff.value;return function(e){var t=e.draggable,n=e.offset,r=e.initialWindowScroll,o=Wi(t.client,n),a=Gi(o,r);return pt({},t,{placeholder:pt({},t.placeholder,{client:o}),client:o,page:a})}({draggable:e,offset:cl(o,a),initialWindowScroll:r.scroll.initial})}))},ju=function(e){return"SNAP"===e.movementMode},Mu=function(e,t,n){var r=function(e,t){return{draggables:e.draggables,droppables:Cu(e.droppables,t)}}(e.dimensions,t);return!ju(e)||n?Pu({state:e,dimensions:r}):Ru({state:e,dimensions:r})};function Fu(e){return e.isDragging&&"SNAP"===e.movementMode?pt({phase:"DRAGGING"},e,{scrollJumpRequest:null}):e}var Bu={phase:"IDLE",completed:null,shouldFlush:!1},Vu=function(e,t){if(void 0===e&&(e=Bu),"FLUSH"===t.type)return pt({},Bu,{shouldFlush:!0});if("INITIAL_PUBLISH"===t.type){"IDLE"!==e.phase&&Zi(!1);var n=t.payload,r=n.critical,o=n.clientSelection,a=n.viewport,i=n.dimensions,l=n.movementMode,u=i.draggables[r.draggable.id],s=i.droppables[r.droppable.id],c={selection:o,borderBoxCenter:u.client.borderBox.center,offset:sl},f={client:c,page:{selection:cl(c.selection,a.scroll.initial),borderBoxCenter:cl(c.selection,a.scroll.initial),offset:cl(c.selection,a.scroll.diff.value)}},d=Il(i.droppables).every((function(e){return!e.isFixedOnPage})),p=Nu({draggable:u,home:s,draggables:i.draggables,viewport:a}),m=p.impact;return{phase:"DRAGGING",isDragging:!0,critical:r,movementMode:l,dimensions:i,initial:f,current:f,isWindowScrollAllowed:d,impact:m,afterCritical:p.afterCritical,onLiftImpact:m,viewport:a,scrollJumpRequest:null,forceShouldAnimate:null}}if("COLLECTION_STARTING"===t.type)return"COLLECTING"===e.phase||"DROP_PENDING"===e.phase?e:("DRAGGING"!==e.phase&&Zi(!1),pt({phase:"COLLECTING"},e,{phase:"COLLECTING"}));if("PUBLISH_WHILE_DRAGGING"===t.type)return"COLLECTING"!==e.phase&&"DROP_PENDING"!==e.phase&&Zi(!1),function(e){var t=e.state,n=e.published;Tu();var r=n.modified.map((function(e){var n=t.dimensions.droppables[e.droppableId];return El(n,e.scroll)})),o=pt({},t.dimensions.droppables,{},kl(r)),a=Pl(Au({additions:n.additions,updatedDroppables:o,viewport:t.viewport})),i=pt({},t.dimensions.draggables,{},a);n.removals.forEach((function(e){delete i[e]}));var l={droppables:o,draggables:i},u=bu(t.impact),s=u?l.droppables[u]:null,c=l.draggables[t.critical.draggable.id],f=l.droppables[t.critical.droppable.id],d=Nu({draggable:c,home:f,draggables:i,viewport:t.viewport}),p=d.impact,m=d.afterCritical,h=s&&s.isCombineEnabled?t.impact:p,v=Ou({pageOffset:t.current.page.offset,draggable:l.draggables[t.critical.draggable.id],draggables:l.draggables,droppables:l.droppables,previousImpact:h,viewport:t.viewport,afterCritical:m});Lu();var g=pt({phase:"DRAGGING"},t,{phase:"DRAGGING",impact:v,onLiftImpact:p,dimensions:l,afterCritical:m,forceShouldAnimate:!1});return"COLLECTING"===t.phase?g:pt({phase:"DROP_PENDING"},g,{phase:"DROP_PENDING",reason:t.reason,isWaiting:!1})}({state:e,published:t.payload});if("MOVE"===t.type){if("DROP_PENDING"===e.phase)return e;_u(e)||Zi(!1);var h=t.payload.client;return dl(h,e.current.client.selection)?e:Pu({state:e,clientSelection:h,impact:ju(e)?e.impact:null})}if("UPDATE_DROPPABLE_SCROLL"===t.type){if("DROP_PENDING"===e.phase)return Fu(e);if("COLLECTING"===e.phase)return Fu(e);_u(e)||Zi(!1);var v=t.payload,g=v.id,b=v.newScroll,y=e.dimensions.droppables[g];if(!y)return e;var _=El(y,b);return Mu(e,_,!1)}if("UPDATE_DROPPABLE_IS_ENABLED"===t.type){if("DROP_PENDING"===e.phase)return e;_u(e)||Zi(!1);var w=t.payload,E=w.id,S=w.isEnabled,x=e.dimensions.droppables[E];x||Zi(!1),x.isEnabled===S&&Zi(!1);var O=pt({},x,{isEnabled:S});return Mu(e,O,!0)}if("UPDATE_DROPPABLE_IS_COMBINE_ENABLED"===t.type){if("DROP_PENDING"===e.phase)return e;_u(e)||Zi(!1);var C=t.payload,k=C.id,P=C.isCombineEnabled,I=e.dimensions.droppables[k];I||Zi(!1),I.isCombineEnabled===P&&Zi(!1);var D=pt({},I,{isCombineEnabled:P});return Mu(e,D,!0)}if("MOVE_BY_WINDOW_SCROLL"===t.type){if("DROP_PENDING"===e.phase||"DROP_ANIMATING"===e.phase)return e;_u(e)||Zi(!1),e.isWindowScrollAllowed||Zi(!1);var R=t.payload.newScroll;if(dl(e.viewport.scroll.current,R))return Fu(e);var N=iu(e.viewport,R);return ju(e)?Ru({state:e,viewport:N}):Pu({state:e,viewport:N})}if("UPDATE_VIEWPORT_MAX_SCROLL"===t.type){if(!_u(e))return e;var T=t.payload.maxScroll;if(dl(T,e.viewport.scroll.max))return e;var L=pt({},e.viewport,{scroll:pt({},e.viewport.scroll,{max:T})});return pt({phase:"DRAGGING"},e,{viewport:L})}if("MOVE_UP"===t.type||"MOVE_DOWN"===t.type||"MOVE_LEFT"===t.type||"MOVE_RIGHT"===t.type){if("COLLECTING"===e.phase||"DROP_PENDING"===e.phase)return e;"DRAGGING"!==e.phase&&Zi(!1);var A=yu({state:e,type:t.type});return A?Pu({state:e,impact:A.impact,clientSelection:A.clientSelection,scrollJumpRequest:A.scrollJumpRequest}):e}if("DROP_PENDING"===t.type){var j=t.payload.reason;return"COLLECTING"!==e.phase&&Zi(!1),pt({phase:"DROP_PENDING"},e,{phase:"DROP_PENDING",isWaiting:!0,reason:j})}if("DROP_ANIMATE"===t.type){var M=t.payload,F=M.completed,B=M.dropDuration,V=M.newHomeClientOffset;return"DRAGGING"!==e.phase&&"DROP_PENDING"!==e.phase&&Zi(!1),{phase:"DROP_ANIMATING",completed:F,dropDuration:B,newHomeClientOffset:V,dimensions:e.dimensions}}return"DROP_COMPLETE"===t.type?{phase:"IDLE",completed:t.payload.completed,shouldFlush:!1}:e},Uu=function(e){return{type:"PUBLISH_WHILE_DRAGGING",payload:e}},zu=function(){return{type:"COLLECTION_STARTING",payload:null}},Hu=function(e){return{type:"UPDATE_DROPPABLE_SCROLL",payload:e}},Wu=function(e){return{type:"UPDATE_DROPPABLE_IS_ENABLED",payload:e}},Gu=function(e){return{type:"UPDATE_DROPPABLE_IS_COMBINE_ENABLED",payload:e}},qu=function(e){return{type:"MOVE",payload:e}},$u=function(){return{type:"MOVE_UP",payload:null}},Yu=function(){return{type:"MOVE_DOWN",payload:null}},Qu=function(){return{type:"MOVE_RIGHT",payload:null}},Ku=function(){return{type:"MOVE_LEFT",payload:null}},Xu=function(e){return{type:"DROP_COMPLETE",payload:e}},Ju=function(e){return{type:"DROP",payload:e}},Zu=function(){return{type:"DROP_ANIMATION_FINISHED",payload:null}};var es="cubic-bezier(.2,1,.1,1)",ts={drop:0,combining:.7},ns={drop:.75},rs=.2+"s "+"cubic-bezier(0.2, 0, 0, 1)",os={fluid:"opacity "+rs,snap:"transform "+rs+", opacity "+rs,drop:function(e){var t=e+"s "+es;return"transform "+t+", opacity "+t},outOfTheWay:"transform "+rs,placeholder:"height "+rs+", width "+rs+", margin "+rs},as=function(e){return dl(e,sl)?null:"translate("+e.x+"px, "+e.y+"px)"},is=as,ls=function(e,t){var n=as(e);return n?t?n+" scale("+ns.drop+")":n:null},us=.33,ss=.55,cs=ss-us,fs=function(e){var t=e.getState,n=e.dispatch;return function(e){return function(r){if("DROP"===r.type){var o=t(),a=r.payload.reason;if("COLLECTING"!==o.phase){if("IDLE"!==o.phase){"DROP_PENDING"===o.phase&&o.isWaiting&&Zi(!1),"DRAGGING"!==o.phase&&"DROP_PENDING"!==o.phase&&Zi(!1);var i=o.critical,l=o.dimensions,u=l.draggables[o.critical.draggable.id],s=function(e){var t=e.draggables,n=e.reason,r=e.lastImpact,o=e.home,a=e.viewport,i=e.onLiftImpact;return r.at&&"DROP"===n?"REORDER"===r.at.type?{impact:r,didDropInsideDroppable:!0}:{impact:pt({},r,{displaced:Ml}),didDropInsideDroppable:!0}:{impact:Iu({draggables:t,impact:i,destination:o,viewport:a,forceShouldAnimate:!0}),didDropInsideDroppable:!1}}({reason:a,lastImpact:o.impact,afterCritical:o.afterCritical,onLiftImpact:o.onLiftImpact,home:o.dimensions.droppables[o.critical.droppable.id],viewport:o.viewport,draggables:o.dimensions.draggables}),c=s.impact,f=s.didDropInsideDroppable,d=f?Nl(c):null,p=f?Tl(c):null,m={index:i.draggable.index,droppableId:i.droppable.id},h={draggableId:u.descriptor.id,type:u.descriptor.type,source:m,reason:a,mode:o.movementMode,destination:d,combine:p},v=function(e){var t=e.impact,n=e.draggable,r=e.dimensions,o=e.viewport,a=e.afterCritical,i=r.draggables,l=r.droppables,u=bu(t),s=u?l[u]:null,c=l[n.descriptor.droppableId],f=Du({impact:t,draggable:n,draggables:i,afterCritical:a,droppable:s||c,viewport:o});return fl(f,n.client.borderBox.center)}({impact:c,draggable:u,dimensions:l,viewport:o.viewport,afterCritical:o.afterCritical}),g={critical:o.critical,afterCritical:o.afterCritical,result:h,impact:c};if(!dl(o.current.client.offset,v)||Boolean(h.combine)){var b=function(e){var t=e.current,n=e.destination,r=e.reason,o=hl(t,n);if(o<=0)return us;if(o>=1500)return ss;var a=us+cs*(o/1500);return Number(("CANCEL"===r?.6*a:a).toFixed(2))}({current:o.current.client.offset,destination:v,reason:a});n(function(e){return{type:"DROP_ANIMATE",payload:e}}({newHomeClientOffset:v,dropDuration:b,completed:g}))}else n(Xu({completed:g}))}}else n(function(e){return{type:"DROP_PENDING",payload:e}}({reason:a}))}else e(r)}}},ds=function(){return{x:window.pageXOffset,y:window.pageYOffset}};function ps(e){var t=e.onWindowScroll;var n,r=Yi((function(){t(ds())})),o=(n=r,{eventName:"scroll",options:{passive:!0,capture:!1},fn:function(e){e.target!==window&&e.target!==window.document||n()}}),a=Ki;function i(){return a!==Ki}return{start:function(){i()&&Zi(!1),a=Xi(window,[o])},stop:function(){i()||Zi(!1),r.cancel(),a(),a=Ki},isActive:i}}var ms=function(e){var t=ps({onWindowScroll:function(t){e.dispatch({type:"MOVE_BY_WINDOW_SCROLL",payload:{newScroll:t}})}});return function(e){return function(n){t.isActive()||"INITIAL_PUBLISH"!==n.type||t.start(),t.isActive()&&function(e){return"DROP_COMPLETE"===e.type||"DROP_ANIMATE"===e.type||"FLUSH"===e.type}(n)&&t.stop(),e(n)}}},hs=function(){var e=[];return{add:function(t){var n=setTimeout((function(){return function(t){var n=xl(e,(function(e){return e.timerId===t}));-1===n&&Zi(!1),e.splice(n,1)[0].callback()}(n)})),r={timerId:n,callback:t};e.push(r)},flush:function(){if(e.length){var t=[].concat(e);e.length=0,t.forEach((function(e){clearTimeout(e.timerId),e.callback()}))}}}},vs=function(e,t){Tu(),t(),Lu()},gs=function(e,t){return{draggableId:e.draggable.id,type:e.droppable.type,source:{droppableId:e.droppable.id,index:e.draggable.index},mode:t}},bs=function(e,t,n,r){if(e){var o=function(e){var t=!1,n=!1,r=setTimeout((function(){n=!0})),o=function(o){t||n||(t=!0,e(o),clearTimeout(r))};return o.wasCalled=function(){return t},o}(n);e(t,{announce:o}),o.wasCalled()||n(r(t))}else n(r(t))},ys=function(e,t){var n=function(e,t){var n=hs(),r=null,o=function(n){r||Zi(!1),r=null,vs(0,(function(){return bs(e().onDragEnd,n,t,ul)}))};return{beforeCapture:function(t,n){r&&Zi(!1),vs(0,(function(){var r=e().onBeforeCapture;r&&r({draggableId:t,mode:n})}))},beforeStart:function(t,n){r&&Zi(!1),vs(0,(function(){var r=e().onBeforeDragStart;r&&r(gs(t,n))}))},start:function(o,a){r&&Zi(!1);var i=gs(o,a);r={mode:a,lastCritical:o,lastLocation:i.source,lastCombine:null},n.add((function(){vs(0,(function(){return bs(e().onDragStart,i,t,il)}))}))},update:function(o,a){var i=Nl(a),l=Tl(a);r||Zi(!1);var u=!function(e,t){if(e===t)return!0;var n=e.draggable.id===t.draggable.id&&e.draggable.droppableId===t.draggable.droppableId&&e.draggable.type===t.draggable.type&&e.draggable.index===t.draggable.index,r=e.droppable.id===t.droppable.id&&e.droppable.type===t.droppable.type;return n&&r}(o,r.lastCritical);u&&(r.lastCritical=o);var s,c,f=(s=r.lastLocation,c=i,!(null==s&&null==c||null!=s&&null!=c&&s.droppableId===c.droppableId&&s.index===c.index));f&&(r.lastLocation=i);var d=!function(e,t){return null==e&&null==t||null!=e&&null!=t&&(e.draggableId===t.draggableId&&e.droppableId===t.droppableId)}(r.lastCombine,l);if(d&&(r.lastCombine=l),u||f||d){var p=pt({},gs(o,r.mode),{combine:l,destination:i});n.add((function(){vs(0,(function(){return bs(e().onDragUpdate,p,t,ll)}))}))}},flush:function(){r||Zi(!1),n.flush()},drop:o,abort:function(){if(r){var e=pt({},gs(r.lastCritical,r.mode),{combine:null,destination:null,reason:"CANCEL"});o(e)}}}}(e,t);return function(e){return function(t){return function(r){if("BEFORE_INITIAL_CAPTURE"!==r.type){if("INITIAL_PUBLISH"===r.type){var o=r.payload.critical;return n.beforeStart(o,r.payload.movementMode),t(r),void n.start(o,r.payload.movementMode)}if("DROP_COMPLETE"===r.type){var a=r.payload.completed.result;return n.flush(),t(r),void n.drop(a)}if(t(r),"FLUSH"!==r.type){var i=e.getState();"DRAGGING"===i.phase&&n.update(i.critical,i.impact)}else n.abort()}else n.beforeCapture(r.payload.draggableId,r.payload.movementMode)}}}},_s=function(e){return function(t){return function(n){if("DROP_ANIMATION_FINISHED"===n.type){var r=e.getState();"DROP_ANIMATING"!==r.phase&&Zi(!1),e.dispatch(Xu({completed:r.completed}))}else t(n)}}},ws=function(e){var t=null,n=null;return function(r){return function(o){if("FLUSH"!==o.type&&"DROP_COMPLETE"!==o.type&&"DROP_ANIMATION_FINISHED"!==o.type||(n&&(cancelAnimationFrame(n),n=null),t&&(t(),t=null)),r(o),"DROP_ANIMATE"===o.type){var a={eventName:"scroll",options:{capture:!0,passive:!1,once:!0},fn:function(){"DROP_ANIMATING"===e.getState().phase&&e.dispatch({type:"DROP_ANIMATION_FINISHED",payload:null})}};n=requestAnimationFrame((function(){n=null,t=Xi(window,[a])}))}}}},Es=function(e){return function(t){return function(n){if(t(n),"PUBLISH_WHILE_DRAGGING"===n.type){var r=e.getState();"DROP_PENDING"===r.phase&&(r.isWaiting||e.dispatch(Ju({reason:r.reason})))}}}},Ss=ei,xs=function(e){var t,n=e.dimensionMarshal,r=e.focusMarshal,o=e.styleMarshal,a=e.getResponders,i=e.announce,l=e.autoScroller;return Ya(Vu,Ss(function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){return function(){var n=e.apply(void 0,arguments),r=function(){throw new Error("Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.")},o={getState:n.getState,dispatch:function(){return r.apply(void 0,arguments)}},a=t.map((function(e){return e(o)}));return Za({},n,{dispatch:r=ei.apply(void 0,a)(n.dispatch)})}}}((t=o,function(){return function(e){return function(n){"INITIAL_PUBLISH"===n.type&&t.dragging(),"DROP_ANIMATE"===n.type&&t.dropping(n.payload.completed.result.reason),"FLUSH"!==n.type&&"DROP_COMPLETE"!==n.type||t.resting(),e(n)}}}),function(e){return function(){return function(t){return function(n){"DROP_COMPLETE"!==n.type&&"FLUSH"!==n.type&&"DROP_ANIMATE"!==n.type||e.stopPublishing(),t(n)}}}}(n),function(e){return function(t){var n=t.getState,r=t.dispatch;return function(t){return function(o){if("LIFT"===o.type){var a=o.payload,i=a.id,l=a.clientSelection,u=a.movementMode,s=n();"DROP_ANIMATING"===s.phase&&r(Xu({completed:s.completed})),"IDLE"!==n().phase&&Zi(!1),r({type:"FLUSH",payload:null}),r({type:"BEFORE_INITIAL_CAPTURE",payload:{draggableId:i,movementMode:u}});var c={draggableId:i,scrollOptions:{shouldPublishImmediately:"SNAP"===u}},f=e.startPublishing(c),d=f.critical,p=f.dimensions,m=f.viewport;r(function(e){return{type:"INITIAL_PUBLISH",payload:e}}({critical:d,dimensions:p,clientSelection:l,movementMode:u,viewport:m}))}else t(o)}}}}(n),fs,_s,ws,Es,function(e){return function(t){return function(n){return function(r){if(function(e){return"DROP_COMPLETE"===e.type||"DROP_ANIMATE"===e.type||"FLUSH"===e.type}(r))return e.stop(),void n(r);if("INITIAL_PUBLISH"===r.type){n(r);var o=t.getState();return"DRAGGING"!==o.phase&&Zi(!1),void e.start(o)}n(r),e.scroll(t.getState())}}}}(l),ms,function(e){var t=!1;return function(){return function(n){return function(r){if("INITIAL_PUBLISH"===r.type)return t=!0,e.tryRecordFocus(r.payload.critical.draggable.id),n(r),void e.tryRestoreFocusRecorded();if(n(r),t){if("FLUSH"===r.type)return t=!1,void e.tryRestoreFocusRecorded();if("DROP_COMPLETE"===r.type){t=!1;var o=r.payload.completed.result;o.combine&&e.tryShiftRecord(o.draggableId,o.combine.draggableId),e.tryRestoreFocusRecorded()}}}}}}(r),ys(a,i))))};var Os=function(e){var t=e.scrollHeight,n=e.scrollWidth,r=e.height,o=e.width,a=fl({x:n,y:t},{x:o,y:r});return{x:Math.max(0,a.x),y:Math.max(0,a.y)}},Cs=function(){var e=document.documentElement;return e||Zi(!1),e},ks=function(){var e=Cs();return Os({scrollHeight:e.scrollHeight,scrollWidth:e.scrollWidth,width:e.clientWidth,height:e.clientHeight})},Ps=function(e){var t=e.critical,n=e.scrollOptions,r=e.registry;Tu();var o,a,i,l,u,s,c,f=(o=ds(),a=ks(),i=o.y,l=o.x,u=Cs(),s=u.clientWidth,c=u.clientHeight,{frame:Fi({top:i,left:l,right:l+s,bottom:i+c}),scroll:{initial:o,current:o,max:a,diff:{value:sl,displacement:sl}}}),d=f.scroll.current,p=t.droppable,m=r.droppable.getAllByType(p.type).map((function(e){return e.callbacks.getDimensionAndWatchScroll(d,n)})),h=r.draggable.getAllByType(t.draggable.type).map((function(e){return e.getDimension(d)})),v={draggables:Pl(h),droppables:kl(m)};return Lu(),{dimensions:v,critical:t,viewport:f}};function Is(e,t,n){return n.descriptor.id!==t.id&&(n.descriptor.type===t.type&&"virtual"===e.droppable.getById(n.descriptor.droppableId).descriptor.mode)}var Ds,Rs,Ns=function(e,t){var n=null,r=function(e){var t=e.registry,n=e.callbacks,r={additions:{},removals:{},modified:{}},o=null,a=function(){o||(n.collectionStarting(),o=requestAnimationFrame((function(){o=null,Tu();var e=r,a=e.additions,i=e.removals,l=e.modified,u=Object.keys(a).map((function(e){return t.draggable.getById(e).getDimension(sl)})).sort((function(e,t){return e.descriptor.index-t.descriptor.index})),s=Object.keys(l).map((function(e){return{droppableId:e,scroll:t.droppable.getById(e).callbacks.getScrollWhileDragging()}})),c={additions:u,removals:Object.keys(i),modified:s};r={additions:{},removals:{},modified:{}},Lu(),n.publish(c)})))};return{add:function(e){var t=e.descriptor.id;r.additions[t]=e,r.modified[e.descriptor.droppableId]=!0,r.removals[t]&&delete r.removals[t],a()},remove:function(e){var t=e.descriptor;r.removals[t.id]=!0,r.modified[t.droppableId]=!0,r.additions[t.id]&&delete r.additions[t.id],a()},stop:function(){o&&(cancelAnimationFrame(o),o=null,r={additions:{},removals:{},modified:{}})}}}({callbacks:{publish:t.publishWhileDragging,collectionStarting:t.collectionStarting},registry:e}),o=function(t){n||Zi(!1);var o=n.critical.draggable;"ADDITION"===t.type&&Is(e,o,t.value)&&r.add(t.value),"REMOVAL"===t.type&&Is(e,o,t.value)&&r.remove(t.value)};return{updateDroppableIsEnabled:function(r,o){e.droppable.exists(r)||Zi(!1),n&&t.updateDroppableIsEnabled({id:r,isEnabled:o})},updateDroppableIsCombineEnabled:function(r,o){n&&(e.droppable.exists(r)||Zi(!1),t.updateDroppableIsCombineEnabled({id:r,isCombineEnabled:o}))},scrollDroppable:function(t,r){n&&e.droppable.getById(t).callbacks.scroll(r)},updateDroppableScroll:function(r,o){n&&(e.droppable.exists(r)||Zi(!1),t.updateDroppableScroll({id:r,newScroll:o}))},startPublishing:function(t){n&&Zi(!1);var r=e.draggable.getById(t.draggableId),a=e.droppable.getById(r.descriptor.droppableId),i={draggable:r.descriptor,droppable:a.descriptor},l=e.subscribe(o);return n={critical:i,unsubscribe:l},Ps({critical:i,registry:e,scrollOptions:t.scrollOptions})},stopPublishing:function(){if(n){r.stop();var t=n.critical.droppable;e.droppable.getAllByType(t.type).forEach((function(e){return e.callbacks.dragStopped()})),n.unsubscribe(),n=null}}}},Ts=function(e,t){return"IDLE"===e.phase||"DROP_ANIMATING"===e.phase&&(e.completed.result.draggableId!==t&&"DROP"===e.completed.result.reason)},Ls=function(e){window.scrollBy(e.x,e.y)},As=Bo((function(e){return Il(e).filter((function(e){return!!e.isEnabled&&!!e.frame}))})),js=function(e){var t=e.center,n=e.destination,r=e.droppables;if(n){var o=r[n];return o.frame?o:null}return function(e,t){return Ol(As(t),(function(t){return t.frame||Zi(!1),wu(t.frame.pageMarginBox)(e)}))}(t,r)},Ms=.25,Fs=.05,Bs=28,Vs=function(e){return Math.pow(e,2)},Us={stopDampeningAt:1200,accelerateAt:360},zs=function(e){var t=e.startOfRange,n=e.endOfRange,r=e.current,o=n-t;return 0===o?0:(r-t)/o},Hs=Us.accelerateAt,Ws=Us.stopDampeningAt,Gs=function(e){var t=e.distanceToEdge,n=e.thresholds,r=e.dragStartTime,o=e.shouldUseTimeDampening,a=function(e,t){if(e>t.startScrollingFrom)return 0;if(e<=t.maxScrollValueAt)return Bs;if(e===t.startScrollingFrom)return 1;var n=zs({startOfRange:t.maxScrollValueAt,endOfRange:t.startScrollingFrom,current:e}),r=Bs*Vs(1-n);return Math.ceil(r)}(t,n);return 0===a?0:o?Math.max(function(e,t){var n=t,r=Ws,o=Date.now()-n;if(o>=Ws)return e;if(o<Hs)return 1;var a=zs({startOfRange:Hs,endOfRange:r,current:o}),i=e*Vs(a);return Math.ceil(i)}(a,r),1):a},qs=function(e){var t=e.container,n=e.distanceToEdges,r=e.dragStartTime,o=e.axis,a=e.shouldUseTimeDampening,i=function(e,t){return{startScrollingFrom:e[t.size]*Ms,maxScrollValueAt:e[t.size]*Fs}}(t,o);return n[o.end]<n[o.start]?Gs({distanceToEdge:n[o.end],thresholds:i,dragStartTime:r,shouldUseTimeDampening:a}):-1*Gs({distanceToEdge:n[o.start],thresholds:i,dragStartTime:r,shouldUseTimeDampening:a})},$s=gl((function(e){return 0===e?0:e})),Ys=function(e){var t=e.dragStartTime,n=e.container,r=e.subject,o=e.center,a=e.shouldUseTimeDampening,i={top:o.y-n.top,right:n.right-o.x,bottom:n.bottom-o.y,left:o.x-n.left},l=qs({container:n,distanceToEdges:i,dragStartTime:t,axis:zl,shouldUseTimeDampening:a}),u=qs({container:n,distanceToEdges:i,dragStartTime:t,axis:Hl,shouldUseTimeDampening:a}),s=$s({x:u,y:l});if(dl(s,sl))return null;var c=function(e){var t=e.container,n=e.subject,r=e.proposedScroll,o=n.height>t.height,a=n.width>t.width;return a||o?a&&o?null:{x:a?0:r.x,y:o?0:r.y}:r}({container:n,subject:r,proposedScroll:s});return c?dl(c,sl)?null:c:null},Qs=gl((function(e){return 0===e?0:e>0?1:-1})),Ks=(Ds=function(e,t){return e<0?e:e>t?e-t:0},function(e){var t=e.current,n=e.max,r=e.change,o=cl(t,r),a={x:Ds(o.x,n.x),y:Ds(o.y,n.y)};return dl(a,sl)?null:a}),Xs=function(e){var t=e.max,n=e.current,r=e.change,o={x:Math.max(n.x,t.x),y:Math.max(n.y,t.y)},a=Qs(r),i=Ks({max:o,current:n,change:a});return!i||(0!==a.x&&0===i.x||0!==a.y&&0===i.y)},Js=function(e,t){return Xs({current:e.scroll.current,max:e.scroll.max,change:t})},Zs=function(e,t){var n=e.frame;return!!n&&Xs({current:n.scroll.current,max:n.scroll.max,change:t})},ec=function(e){var t=e.state,n=e.dragStartTime,r=e.shouldUseTimeDampening,o=e.scrollWindow,a=e.scrollDroppable,i=t.current.page.borderBoxCenter,l=t.dimensions.draggables[t.critical.draggable.id].page.marginBox;if(t.isWindowScrollAllowed){var u=function(e){var t=e.viewport,n=e.subject,r=e.center,o=e.dragStartTime,a=e.shouldUseTimeDampening,i=Ys({dragStartTime:o,container:t.frame,subject:n,center:r,shouldUseTimeDampening:a});return i&&Js(t,i)?i:null}({dragStartTime:n,viewport:t.viewport,subject:l,center:i,shouldUseTimeDampening:r});if(u)return void o(u)}var s=js({center:i,destination:bu(t.impact),droppables:t.dimensions.droppables});if(s){var c=function(e){var t=e.droppable,n=e.subject,r=e.center,o=e.dragStartTime,a=e.shouldUseTimeDampening,i=t.frame;if(!i)return null;var l=Ys({dragStartTime:o,container:i.pageMarginBox,subject:n,center:r,shouldUseTimeDampening:a});return l&&Zs(t,l)?l:null}({dragStartTime:n,droppable:s,subject:l,center:i,shouldUseTimeDampening:r});c&&a(s.descriptor.id,c)}},tc=function(e){var t=e.move,n=e.scrollDroppable,r=e.scrollWindow,o=function(e,t){if(!Zs(e,t))return t;var r=function(e,t){var n=e.frame;return n&&Zs(e,t)?Ks({current:n.scroll.current,max:n.scroll.max,change:t}):null}(e,t);if(!r)return n(e.descriptor.id,t),null;var o=fl(t,r);return n(e.descriptor.id,o),fl(t,o)},a=function(e,t,n){if(!e)return n;if(!Js(t,n))return n;var o=function(e,t){if(!Js(e,t))return null;var n=e.scroll.max,r=e.scroll.current;return Ks({current:r,max:n,change:t})}(t,n);if(!o)return r(n),null;var a=fl(n,o);return r(a),fl(n,a)};return function(e){var n=e.scrollJumpRequest;if(n){var r=bu(e.impact);r||Zi(!1);var i=o(e.dimensions.droppables[r],n);if(i){var l=e.viewport,u=a(e.isWindowScrollAllowed,l,i);u&&function(e,n){var r=cl(e.current.client.selection,n);t({client:r})}(e,u)}}}},nc=function(e){var t=e.scrollDroppable,n=e.scrollWindow,r=e.move,o=function(e){var t=e.scrollWindow,n=e.scrollDroppable,r=Yi(t),o=Yi(n),a=null,i=function(e){a||Zi(!1);var t=a,n=t.shouldUseTimeDampening,i=t.dragStartTime;ec({state:e,scrollWindow:r,scrollDroppable:o,dragStartTime:i,shouldUseTimeDampening:n})};return{start:function(e){Tu(),a&&Zi(!1);var t=Date.now(),n=!1,r=function(){n=!0};ec({state:e,dragStartTime:0,shouldUseTimeDampening:!1,scrollWindow:r,scrollDroppable:r}),a={dragStartTime:t,shouldUseTimeDampening:n},Lu(),n&&i(e)},stop:function(){a&&(r.cancel(),o.cancel(),a=null)},scroll:i}}({scrollWindow:n,scrollDroppable:t}),a=tc({move:r,scrollWindow:n,scrollDroppable:t});return{scroll:function(e){"DRAGGING"===e.phase&&("FLUID"!==e.movementMode?e.scrollJumpRequest&&a(e):o.scroll(e))},start:o.start,stop:o.stop}},rc={base:Rs="data-rbd-drag-handle",draggableId:Rs+"-draggable-id",contextId:Rs+"-context-id"},oc=function(){var e="data-rbd-draggable";return{base:e,contextId:e+"-context-id",id:e+"-id"}}(),ac=function(){var e="data-rbd-droppable";return{base:e,contextId:e+"-context-id",id:e+"-id"}}(),ic={contextId:"data-rbd-scroll-container-context-id"},lc=function(e,t){return e.map((function(e){var n=e.styles[t];return n?e.selector+" { "+n+" }":""})).join(" ")},uc="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement?o.useLayoutEffect:o.useEffect,sc=function(){var e=document.querySelector("head");return e||Zi(!1),e},cc=function(e){var t=document.createElement("style");return e&&t.setAttribute("nonce",e),t.type="text/css",t};function fc(e,t){var n=Ai((function(){return function(e){var t,n,r,o=(t=e,function(e){return"["+e+'="'+t+'"]'}),a=(n="\n cursor: -webkit-grab;\n cursor: grab;\n ",{selector:o(rc.contextId),styles:{always:"\n -webkit-touch-callout: none;\n -webkit-tap-highlight-color: rgba(0,0,0,0);\n touch-action: manipulation;\n ",resting:n,dragging:"pointer-events: none;",dropAnimating:n}}),i=[(r="\n transition: "+os.outOfTheWay+";\n ",{selector:o(oc.contextId),styles:{dragging:r,dropAnimating:r,userCancel:r}}),a,{selector:o(ac.contextId),styles:{always:"overflow-anchor: none;"}},{selector:"body",styles:{dragging:"\n cursor: grabbing;\n cursor: -webkit-grabbing;\n user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n overflow-anchor: none;\n "}}];return{always:lc(i,"always"),resting:lc(i,"resting"),dragging:lc(i,"dragging"),dropAnimating:lc(i,"dropAnimating"),userCancel:lc(i,"userCancel")}}(e)}),[e]),r=Object(o.useRef)(null),a=Object(o.useRef)(null),i=ji(Bo((function(e){var t=a.current;t||Zi(!1),t.textContent=e})),[]),l=ji((function(e){var t=r.current;t||Zi(!1),t.textContent=e}),[]);uc((function(){(r.current||a.current)&&Zi(!1);var o=cc(t),u=cc(t);return r.current=o,a.current=u,o.setAttribute("data-rbd-always",e),u.setAttribute("data-rbd-dynamic",e),sc().appendChild(o),sc().appendChild(u),l(n.always),i(n.resting),function(){var e=function(e){var t=e.current;t||Zi(!1),sc().removeChild(t),e.current=null};e(r),e(a)}}),[t,l,i,n.always,n.resting,e]);var u=ji((function(){return i(n.dragging)}),[i,n.dragging]),s=ji((function(e){i("DROP"!==e?n.userCancel:n.dropAnimating)}),[i,n.dropAnimating,n.userCancel]),c=ji((function(){a.current&&i(n.resting)}),[i,n.resting]);return Ai((function(){return{dragging:u,dropping:s,resting:c}}),[u,s,c])}var dc=function(e){return e&&e.ownerDocument?e.ownerDocument.defaultView:window};function pc(e){return e instanceof dc(e).HTMLElement}function mc(e,t){var n="["+rc.contextId+'="'+e+'"]',r=Cl(document.querySelectorAll(n));if(!r.length)return null;var o=Ol(r,(function(e){return e.getAttribute(rc.draggableId)===t}));return o&&pc(o)?o:null}function hc(){var e={draggables:{},droppables:{}},t=[];function n(e){t.length&&t.forEach((function(t){return t(e)}))}function r(t){return e.draggables[t]||null}function o(t){return e.droppables[t]||null}return{draggable:{register:function(t){e.draggables[t.descriptor.id]=t,n({type:"ADDITION",value:t})},update:function(t,n){var r=e.draggables[n.descriptor.id];r&&r.uniqueId===t.uniqueId&&(delete e.draggables[n.descriptor.id],e.draggables[t.descriptor.id]=t)},unregister:function(t){var o=t.descriptor.id,a=r(o);a&&t.uniqueId===a.uniqueId&&(delete e.draggables[o],n({type:"REMOVAL",value:t}))},getById:function(e){var t=r(e);return t||Zi(!1),t},findById:r,exists:function(e){return Boolean(r(e))},getAllByType:function(t){return Sl(e.draggables).filter((function(e){return e.descriptor.type===t}))}},droppable:{register:function(t){e.droppables[t.descriptor.id]=t},unregister:function(t){var n=o(t.descriptor.id);n&&t.uniqueId===n.uniqueId&&delete e.droppables[t.descriptor.id]},getById:function(e){var t=o(e);return t||Zi(!1),t},findById:o,exists:function(e){return Boolean(o(e))},getAllByType:function(t){return Sl(e.droppables).filter((function(e){return e.descriptor.type===t}))}},subscribe:function(e){return t.push(e),function(){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}},clean:function(){e.draggables={},e.droppables={},t.length=0}}}var vc=a.a.createContext(null),gc=function(){var e=document.body;return e||Zi(!1),e},bc={position:"absolute",width:"1px",height:"1px",margin:"-1px",border:"0",padding:"0",overflow:"hidden",clip:"rect(0 0 0 0)","clip-path":"inset(100%)"};var yc=0,_c={separator:"::"};function wc(e,t){return void 0===t&&(t=_c),Ai((function(){return""+e+t.separator+yc++}),[t.separator,e])}var Ec=a.a.createContext(null);function Sc(e){0}function xc(e,t){Sc()}function Oc(){xc()}function Cc(e){var t=Object(o.useRef)(e);return Object(o.useEffect)((function(){t.current=e})),t}var kc,Pc=((kc={})[13]=!0,kc[9]=!0,kc),Ic=function(e){Pc[e.keyCode]&&e.preventDefault()},Dc=function(){var e="visibilitychange";return"undefined"==typeof document?e:Ol([e,"ms"+e,"webkit"+e,"moz"+e,"o"+e],(function(e){return"on"+e in document}))||e}();var Rc,Nc={type:"IDLE"};function Tc(e){var t=e.cancel,n=e.completed,r=e.getPhase,o=e.setPhase;return[{eventName:"mousemove",fn:function(e){var t=e.button,n=e.clientX,a=e.clientY;if(0===t){var i={x:n,y:a},l=r();if("DRAGGING"===l.type)return e.preventDefault(),void l.actions.move(i);"PENDING"!==l.type&&Zi(!1);var u=l.point;if(s=u,c=i,Math.abs(c.x-s.x)>=5||Math.abs(c.y-s.y)>=5){var s,c;e.preventDefault();var f=l.actions.fluidLift(i);o({type:"DRAGGING",actions:f})}}}},{eventName:"mouseup",fn:function(e){var o=r();"DRAGGING"===o.type?(e.preventDefault(),o.actions.drop({shouldBlockNextClick:!0}),n()):t()}},{eventName:"mousedown",fn:function(e){"DRAGGING"===r().type&&e.preventDefault(),t()}},{eventName:"keydown",fn:function(e){if("PENDING"!==r().type)return 27===e.keyCode?(e.preventDefault(),void t()):void Ic(e);t()}},{eventName:"resize",fn:t},{eventName:"scroll",options:{passive:!0,capture:!1},fn:function(){"PENDING"===r().type&&t()}},{eventName:"webkitmouseforcedown",fn:function(e){var n=r();"IDLE"===n.type&&Zi(!1),n.actions.shouldRespectForcePress()?t():e.preventDefault()}},{eventName:Dc,fn:t}]}function Lc(){}var Ac=((Rc={})[34]=!0,Rc[33]=!0,Rc[36]=!0,Rc[35]=!0,Rc);function jc(e,t){function n(){t(),e.cancel()}return[{eventName:"keydown",fn:function(r){return 27===r.keyCode?(r.preventDefault(),void n()):32===r.keyCode?(r.preventDefault(),t(),void e.drop()):40===r.keyCode?(r.preventDefault(),void e.moveDown()):38===r.keyCode?(r.preventDefault(),void e.moveUp()):39===r.keyCode?(r.preventDefault(),void e.moveRight()):37===r.keyCode?(r.preventDefault(),void e.moveLeft()):void(Ac[r.keyCode]?r.preventDefault():Ic(r))}},{eventName:"mousedown",fn:n},{eventName:"mouseup",fn:n},{eventName:"click",fn:n},{eventName:"touchstart",fn:n},{eventName:"resize",fn:n},{eventName:"wheel",fn:n,options:{passive:!0}},{eventName:Dc,fn:n}]}var Mc={type:"IDLE"};var Fc={input:!0,button:!0,textarea:!0,select:!0,option:!0,optgroup:!0,video:!0,audio:!0};function Bc(e,t){var n=t.target;return!!pc(n)&&function e(t,n){if(null==n)return!1;if(Boolean(Fc[n.tagName.toLowerCase()]))return!0;var r=n.getAttribute("contenteditable");return"true"===r||""===r||n!==t&&e(t,n.parentElement)}(e,n)}var Vc=function(e){return Fi(e.getBoundingClientRect()).center};var Uc="undefined"==typeof document?"matches":Ol(["matches","msMatchesSelector","webkitMatchesSelector"],(function(e){return e in Element.prototype}))||"matches";function zc(e,t){return e.closest?e.closest(t):function e(t,n){return null==t?null:t[Uc](n)?t:e(t.parentElement,n)}(e,t)}function Hc(e,t){var n,r=t.target;if(!((n=r)instanceof dc(n).Element))return null;var o=zc(r,function(e){return"["+rc.contextId+'="'+e+'"]'}(e));return o&&pc(o)?o:null}function Wc(e){e.preventDefault()}function Gc(e){var t=e.expected,n=e.phase,r=e.isLockActive;e.shouldWarn;return!!r()&&t===n}function qc(e){var t=e.lockAPI,n=e.store,r=e.registry,o=e.draggableId;if(t.isClaimed())return!1;var a=r.draggable.findById(o);return!!a&&(!!a.options.isEnabled&&!!Ts(n.getState(),o))}function $c(e){var t=e.lockAPI,n=e.contextId,r=e.store,o=e.registry,a=e.draggableId,i=e.forceSensorStop,l=e.sourceEvent;if(!qc({lockAPI:t,store:r,registry:o,draggableId:a}))return null;var u=o.draggable.getById(a),s=function(e,t){var n="["+oc.contextId+'="'+e+'"]',r=Ol(Cl(document.querySelectorAll(n)),(function(e){return e.getAttribute(oc.id)===t}));return r&&pc(r)?r:null}(n,u.descriptor.id);if(!s)return null;if(l&&!u.options.canDragInteractiveElements&&Bc(s,l))return null;var c=t.claim(i||Ki),f="PRE_DRAG";function d(){return u.options.shouldRespectForcePress}function p(){return t.isActive(c)}var m=function(e,t){Gc({expected:e,phase:f,isLockActive:p,shouldWarn:!0})&&r.dispatch(t())}.bind(null,"DRAGGING");function h(e){function n(){t.release(),f="COMPLETED"}function o(t,o){if(void 0===o&&(o={shouldBlockNextClick:!1}),e.cleanup(),o.shouldBlockNextClick){var a=Xi(window,[{eventName:"click",fn:Wc,options:{once:!0,passive:!1,capture:!0}}]);setTimeout(a)}n(),r.dispatch(Ju({reason:t}))}return"PRE_DRAG"!==f&&(n(),"PRE_DRAG"!==f&&Zi(!1)),r.dispatch(function(e){return{type:"LIFT",payload:e}}(e.liftActionArgs)),f="DRAGGING",pt({isActive:function(){return Gc({expected:"DRAGGING",phase:f,isLockActive:p,shouldWarn:!1})},shouldRespectForcePress:d,drop:function(e){return o("DROP",e)},cancel:function(e){return o("CANCEL",e)}},e.actions)}return{isActive:function(){return Gc({expected:"PRE_DRAG",phase:f,isLockActive:p,shouldWarn:!1})},shouldRespectForcePress:d,fluidLift:function(e){var t=Yi((function(e){m((function(){return qu({client:e})}))}));return pt({},h({liftActionArgs:{id:a,clientSelection:e,movementMode:"FLUID"},cleanup:function(){return t.cancel()},actions:{move:t}}),{move:t})},snapLift:function(){var e={moveUp:function(){return m($u)},moveRight:function(){return m(Qu)},moveDown:function(){return m(Yu)},moveLeft:function(){return m(Ku)}};return h({liftActionArgs:{id:a,clientSelection:Vc(s),movementMode:"SNAP"},cleanup:Ki,actions:e})},abort:function(){Gc({expected:"PRE_DRAG",phase:f,isLockActive:p,shouldWarn:!0})&&t.release()}}}var Yc=[function(e){var t=Object(o.useRef)(Nc),n=Object(o.useRef)(Ki),r=Ai((function(){return{eventName:"mousedown",fn:function(t){if(!t.defaultPrevented&&0===t.button&&!(t.ctrlKey||t.metaKey||t.shiftKey||t.altKey)){var r=e.findClosestDraggableId(t);if(r){var o=e.tryGetLock(r,l,{sourceEvent:t});if(o){t.preventDefault();var a={x:t.clientX,y:t.clientY};n.current(),c(o,a)}}}}}}),[e]),a=Ai((function(){return{eventName:"webkitmouseforcewillbegin",fn:function(t){if(!t.defaultPrevented){var n=e.findClosestDraggableId(t);if(n){var r=e.findOptionsForDraggable(n);r&&(r.shouldRespectForcePress||e.canGetLock(n)&&t.preventDefault())}}}}}),[e]),i=ji((function(){n.current=Xi(window,[a,r],{passive:!1,capture:!0})}),[a,r]),l=ji((function(){"IDLE"!==t.current.type&&(t.current=Nc,n.current(),i())}),[i]),u=ji((function(){var e=t.current;l(),"DRAGGING"===e.type&&e.actions.cancel({shouldBlockNextClick:!0}),"PENDING"===e.type&&e.actions.abort()}),[l]),s=ji((function(){var e=Tc({cancel:u,completed:l,getPhase:function(){return t.current},setPhase:function(e){t.current=e}});n.current=Xi(window,e,{capture:!0,passive:!1})}),[u,l]),c=ji((function(e,n){"IDLE"!==t.current.type&&Zi(!1),t.current={type:"PENDING",point:n,actions:e},s()}),[s]);uc((function(){return i(),function(){n.current()}}),[i])},function(e){var t=Object(o.useRef)(Lc),n=Ai((function(){return{eventName:"keydown",fn:function(n){if(!n.defaultPrevented&&32===n.keyCode){var o=e.findClosestDraggableId(n);if(o){var a=e.tryGetLock(o,u,{sourceEvent:n});if(a){n.preventDefault();var i=!0,l=a.snapLift();t.current(),t.current=Xi(window,jc(l,u),{capture:!0,passive:!1})}}}function u(){i||Zi(!1),i=!1,t.current(),r()}}}}),[e]),r=ji((function(){t.current=Xi(window,[n],{passive:!1,capture:!0})}),[n]);uc((function(){return r(),function(){t.current()}}),[r])},function(e){var t=Object(o.useRef)(Mc),n=Object(o.useRef)(Ki),r=ji((function(){return t.current}),[]),a=ji((function(e){t.current=e}),[]),i=Ai((function(){return{eventName:"touchstart",fn:function(t){if(!t.defaultPrevented){var r=e.findClosestDraggableId(t);if(r){var o=e.tryGetLock(r,u,{sourceEvent:t});if(o){var a=t.touches[0],i={x:a.clientX,y:a.clientY};n.current(),d(o,i)}}}}}}),[e]),l=ji((function(){n.current=Xi(window,[i],{capture:!0,passive:!1})}),[i]),u=ji((function(){var e=t.current;"IDLE"!==e.type&&("PENDING"===e.type&&clearTimeout(e.longPressTimerId),a(Mc),n.current(),l())}),[l,a]),s=ji((function(){var e=t.current;u(),"DRAGGING"===e.type&&e.actions.cancel({shouldBlockNextClick:!0}),"PENDING"===e.type&&e.actions.abort()}),[u]),c=ji((function(){var e={capture:!0,passive:!1},t={cancel:s,completed:u,getPhase:r},o=Xi(window,function(e){var t=e.cancel,n=e.completed,r=e.getPhase;return[{eventName:"touchmove",options:{capture:!1},fn:function(e){var n=r();if("DRAGGING"===n.type){n.hasMoved=!0;var o=e.touches[0],a={x:o.clientX,y:o.clientY};e.preventDefault(),n.actions.move(a)}else t()}},{eventName:"touchend",fn:function(e){var o=r();"DRAGGING"===o.type?(e.preventDefault(),o.actions.drop({shouldBlockNextClick:!0}),n()):t()}},{eventName:"touchcancel",fn:function(e){"DRAGGING"===r().type?(e.preventDefault(),t()):t()}},{eventName:"touchforcechange",fn:function(e){var n=r();"IDLE"===n.type&&Zi(!1);var o=e.touches[0];if(o&&o.force>=.15){var a=n.actions.shouldRespectForcePress();if("PENDING"!==n.type)return a?n.hasMoved?void e.preventDefault():void t():void e.preventDefault();a&&t()}}},{eventName:Dc,fn:t}]}(t),e),a=Xi(window,function(e){var t=e.cancel,n=e.getPhase;return[{eventName:"orientationchange",fn:t},{eventName:"resize",fn:t},{eventName:"contextmenu",fn:function(e){e.preventDefault()}},{eventName:"keydown",fn:function(e){"DRAGGING"===n().type?(27===e.keyCode&&e.preventDefault(),t()):t()}},{eventName:Dc,fn:t}]}(t),e);n.current=function(){o(),a()}}),[s,r,u]),f=ji((function(){var e=r();"PENDING"!==e.type&&Zi(!1);var t=e.actions.fluidLift(e.point);a({type:"DRAGGING",actions:t,hasMoved:!1})}),[r,a]),d=ji((function(e,t){"IDLE"!==r().type&&Zi(!1);var n=setTimeout(f,120);a({type:"PENDING",point:t,actions:e,longPressTimerId:n}),c()}),[c,r,a,f]);uc((function(){return l(),function(){n.current();var e=r();"PENDING"===e.type&&(clearTimeout(e.longPressTimerId),a(Mc))}}),[r,l,a]),uc((function(){return Xi(window,[{eventName:"touchmove",fn:function(){},options:{capture:!1,passive:!1}}])}),[])}];function Qc(e){var t=e.contextId,n=e.store,r=e.registry,a=e.customSensors,i=e.enableDefaultSensors,l=[].concat(i?Yc:[],a||[]),u=Object(o.useState)((function(){return function(){var e=null;function t(){e||Zi(!1),e=null}return{isClaimed:function(){return Boolean(e)},isActive:function(t){return t===e},claim:function(t){e&&Zi(!1);var n={abandon:t};return e=n,n},release:t,tryAbandon:function(){e&&(e.abandon(),t())}}}()}))[0],s=ji((function(e,t){e.isDragging&&!t.isDragging&&u.tryAbandon()}),[u]);uc((function(){var e=n.getState();return n.subscribe((function(){var t=n.getState();s(e,t),e=t}))}),[u,n,s]),uc((function(){return u.tryAbandon}),[u.tryAbandon]);var c=ji((function(e){return qc({lockAPI:u,registry:r,store:n,draggableId:e})}),[u,r,n]),f=ji((function(e,o,a){return $c({lockAPI:u,registry:r,contextId:t,store:n,draggableId:e,forceSensorStop:o,sourceEvent:a&&a.sourceEvent?a.sourceEvent:null})}),[t,u,r,n]),d=ji((function(e){return function(e,t){var n=Hc(e,t);return n?n.getAttribute(rc.draggableId):null}(t,e)}),[t]),p=ji((function(e){var t=r.draggable.findById(e);return t?t.options:null}),[r.draggable]),m=ji((function(){u.isClaimed()&&(u.tryAbandon(),"IDLE"!==n.getState().phase&&n.dispatch({type:"FLUSH",payload:null}))}),[u,n]),h=ji(u.isClaimed,[u]),v=Ai((function(){return{canGetLock:c,tryGetLock:f,findClosestDraggableId:d,findOptionsForDraggable:p,tryReleaseLock:m,isLockClaimed:h}}),[c,f,d,p,m,h]);Sc();for(var g=0;g<l.length;g++)l[g](v)}function Kc(e){return e.current||Zi(!1),e.current}function Xc(e){var t=e.contextId,n=e.setCallbacks,r=e.sensors,i=e.nonce,l=e.dragHandleUsageInstructions,u=Object(o.useRef)(null);Oc();var s=Cc(e),c=ji((function(){return function(e){return{onBeforeCapture:e.onBeforeCapture,onBeforeDragStart:e.onBeforeDragStart,onDragStart:e.onDragStart,onDragEnd:e.onDragEnd,onDragUpdate:e.onDragUpdate}}(s.current)}),[s]),f=function(e){var t=Ai((function(){return function(e){return"rbd-announcement-"+e}(e)}),[e]),n=Object(o.useRef)(null);return Object(o.useEffect)((function(){var e=document.createElement("div");return n.current=e,e.id=t,e.setAttribute("aria-live","assertive"),e.setAttribute("aria-atomic","true"),pt(e.style,bc),gc().appendChild(e),function(){setTimeout((function(){var t=gc();t.contains(e)&&t.removeChild(e),e===n.current&&(n.current=null)}))}}),[t]),ji((function(e){var t=n.current;t&&(t.textContent=e)}),[])}(t),d=function(e){var t=e.contextId,n=e.text,r=wc("hidden-text",{separator:"-"}),a=Ai((function(){return"rbd-hidden-text-"+(e={contextId:t,uniqueId:r}).contextId+"-"+e.uniqueId;var e}),[r,t]);return Object(o.useEffect)((function(){var e=document.createElement("div");return e.id=a,e.textContent=n,e.style.display="none",gc().appendChild(e),function(){var t=gc();t.contains(e)&&t.removeChild(e)}}),[a,n]),a}({contextId:t,text:l}),p=fc(t,i),m=ji((function(e){Kc(u).dispatch(e)}),[]),h=Ai((function(){return Ka({publishWhileDragging:Uu,updateDroppableScroll:Hu,updateDroppableIsEnabled:Wu,updateDroppableIsCombineEnabled:Gu,collectionStarting:zu},m)}),[m]),v=function(){var e=Ai(hc,[]);return Object(o.useEffect)((function(){return function(){requestAnimationFrame(e.clean)}}),[e]),e}(),g=Ai((function(){return Ns(v,h)}),[v,h]),b=Ai((function(){return nc(pt({scrollWindow:Ls,scrollDroppable:g.scrollDroppable},Ka({move:qu},m)))}),[g.scrollDroppable,m]),y=function(e){var t=Object(o.useRef)({}),n=Object(o.useRef)(null),r=Object(o.useRef)(null),a=Object(o.useRef)(!1),i=ji((function(e,n){var r={id:e,focus:n};return t.current[e]=r,function(){var n=t.current;n[e]!==r&&delete n[e]}}),[]),l=ji((function(t){var n=mc(e,t);n&&n!==document.activeElement&&n.focus()}),[e]),u=ji((function(e,t){n.current===e&&(n.current=t)}),[]),s=ji((function(){r.current||a.current&&(r.current=requestAnimationFrame((function(){r.current=null;var e=n.current;e&&l(e)})))}),[l]),c=ji((function(e){n.current=null;var t=document.activeElement;t&&t.getAttribute(rc.draggableId)===e&&(n.current=e)}),[]);return uc((function(){return a.current=!0,function(){a.current=!1;var e=r.current;e&&cancelAnimationFrame(e)}}),[]),Ai((function(){return{register:i,tryRecordFocus:c,tryRestoreFocusRecorded:s,tryShiftRecord:u}}),[i,c,s,u])}(t),_=Ai((function(){return xs({announce:f,autoScroller:b,dimensionMarshal:g,focusMarshal:y,getResponders:c,styleMarshal:p})}),[f,b,g,y,c,p]);u.current=_;var w=ji((function(){var e=Kc(u);"IDLE"!==e.getState().phase&&e.dispatch({type:"FLUSH",payload:null})}),[]),E=ji((function(){var e=Kc(u).getState();return e.isDragging||"DROP_ANIMATING"===e.phase}),[]);n(Ai((function(){return{isDragging:E,tryAbort:w}}),[E,w]));var S=ji((function(e){return Ts(Kc(u).getState(),e)}),[]),x=ji((function(){return _u(Kc(u).getState())}),[]),O=Ai((function(){return{marshal:g,focus:y,contextId:t,canLift:S,isMovementAllowed:x,dragHandleUsageInstructionsId:d,registry:v}}),[t,g,d,y,S,x,v]);return Qc({contextId:t,store:_,registry:v,customSensors:r,enableDefaultSensors:!1!==e.enableDefaultSensors}),Object(o.useEffect)((function(){return w}),[w]),a.a.createElement(Ec.Provider,{value:O},a.a.createElement(ii,{context:vc,store:_},e.children))}var Jc=0;function Zc(e){var t=Ai((function(){return""+Jc++}),[]),n=e.dragHandleUsageInstructions||al;return a.a.createElement(el,null,(function(r){return a.a.createElement(Xc,{nonce:e.nonce,contextId:t,setCallbacks:r,dragHandleUsageInstructions:n,enableDefaultSensors:e.enableDefaultSensors,sensors:e.sensors,onBeforeCapture:e.onBeforeCapture,onBeforeDragStart:e.onBeforeDragStart,onDragStart:e.onDragStart,onDragUpdate:e.onDragUpdate,onDragEnd:e.onDragEnd},e.children)}))}var ef=function(e){return function(t){return e===t}},tf=ef("scroll"),nf=ef("auto"),rf=(ef("visible"),function(e,t){return t(e.overflowX)||t(e.overflowY)}),of=function(e){var t=window.getComputedStyle(e),n={overflowX:t.overflowX,overflowY:t.overflowY};return rf(n,tf)||rf(n,nf)},af=function e(t){return null==t||t===document.body||t===document.documentElement?null:of(t)?t:e(t.parentElement)},lf=function(e){return{x:e.scrollLeft,y:e.scrollTop}},uf=function(e){return{closestScrollable:af(e),isFixedOnPage:function e(t){return!!t&&("fixed"===window.getComputedStyle(t).position||e(t.parentElement))}(e)}},sf=function(e){var t=e.ref,n=e.descriptor,r=e.env,o=e.windowScroll,a=e.direction,i=e.isDropDisabled,l=e.isCombineEnabled,u=e.shouldClipSubject,s=r.closestScrollable,c=function(e,t){var n=$i(e);if(!t)return n;if(e!==t)return n;var r=n.paddingBox.top-t.scrollTop,o=n.paddingBox.left-t.scrollLeft,a=r+t.scrollHeight,i=o+t.scrollWidth,l=Bi({top:r,right:i,bottom:a,left:o},n.border);return zi({borderBox:l,margin:n.margin,border:n.border,padding:n.padding})}(t,s),f=Gi(c,o),d=function(){if(!s)return null;var e=$i(s),t={scrollHeight:s.scrollHeight,scrollWidth:s.scrollWidth};return{client:e,page:Gi(e,o),scroll:lf(s),scrollSize:t,shouldClipSubject:u}}();return function(e){var t=e.descriptor,n=e.isEnabled,r=e.isCombineEnabled,o=e.isFixedOnPage,a=e.direction,i=e.client,l=e.page,u=e.closest,s=function(){if(!u)return null;var e=u.scrollSize,t=u.client,n=Os({scrollHeight:e.scrollHeight,scrollWidth:e.scrollWidth,height:t.paddingBox.height,width:t.paddingBox.width});return{pageMarginBox:u.page.marginBox,frameClient:t,scrollSize:e,shouldClipSubject:u.shouldClipSubject,scroll:{initial:u.scroll,current:u.scroll,max:n,diff:{value:sl,displacement:sl}}}}(),c="vertical"===a?zl:Hl;return{descriptor:t,isCombineEnabled:r,isFixedOnPage:o,axis:c,isEnabled:n,client:i,page:l,frame:s,subject:wl({page:l,withPlaceholder:null,axis:c,frame:s})}}({descriptor:n,isEnabled:!i,isCombineEnabled:l,isFixedOnPage:r.isFixedOnPage,direction:a,client:c,page:f,closest:d})},cf={passive:!1},ff={passive:!0},df=function(e){return e.shouldPublishImmediately?cf:ff};function pf(e){var t=Object(o.useContext)(e);return t||Zi(!1),t}var mf=function(e){return e&&e.env.closestScrollable||null};function hf(){}var vf={width:0,height:0,margin:{top:0,right:0,bottom:0,left:0}},gf=function(e){var t=e.isAnimatingOpenOnMount,n=e.placeholder,r=e.animate,o=function(e){var t=e.isAnimatingOpenOnMount,n=e.placeholder,r=e.animate;return t||"close"===r?vf:{height:n.client.borderBox.height,width:n.client.borderBox.width,margin:n.client.margin}}({isAnimatingOpenOnMount:t,placeholder:n,animate:r});return{display:n.display,boxSizing:"border-box",width:o.width,height:o.height,marginTop:o.margin.top,marginRight:o.margin.right,marginBottom:o.margin.bottom,marginLeft:o.margin.left,flexShrink:"0",flexGrow:"0",pointerEvents:"none",transition:"none"!==r?os.placeholder:null}};var bf=a.a.memo((function(e){var t=Object(o.useRef)(null),n=ji((function(){t.current&&(clearTimeout(t.current),t.current=null)}),[]),r=e.animate,i=e.onTransitionEnd,l=e.onClose,u=e.contextId,s=Object(o.useState)("open"===e.animate),c=s[0],f=s[1];Object(o.useEffect)((function(){return c?"open"!==r?(n(),f(!1),hf):t.current?hf:(t.current=setTimeout((function(){t.current=null,f(!1)})),n):hf}),[r,c,n]);var d=ji((function(e){"height"===e.propertyName&&(i(),"close"===r&&l())}),[r,l,i]),p=gf({isAnimatingOpenOnMount:c,animate:e.animate,placeholder:e.placeholder});return a.a.createElement(e.placeholder.tagName,{style:p,"data-rbd-placeholder-context-id":u,onTransitionEnd:d,ref:e.innerRef})})),yf=a.a.createContext(null);var _f=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).state={isVisible:Boolean(t.props.on),data:t.props.on,animate:t.props.shouldAnimate&&t.props.on?"open":"none"},t.onClose=function(){"close"===t.state.animate&&t.setState({isVisible:!1})},t}return Ha(t,e),t.getDerivedStateFromProps=function(e,t){return e.shouldAnimate?e.on?{isVisible:!0,data:e.on,animate:"open"}:t.isVisible?{isVisible:!0,data:t.data,animate:"close"}:{isVisible:!1,animate:"close",data:null}:{isVisible:Boolean(e.on),data:e.on,animate:"none"}},t.prototype.render=function(){if(!this.state.isVisible)return null;var e={onClose:this.onClose,data:this.state.data,animate:this.state.animate};return this.props.children(e)},t}(a.a.PureComponent),wf=5e3,Ef=4500,Sf=function(e,t){return t?os.drop(t.duration):e?os.snap:os.fluid},xf=function(e,t){return e?t?ts.drop:ts.combining:null};function Of(e){return"DRAGGING"===e.type?(r=(n=e).dimension.client,o=n.offset,a=n.combineWith,i=n.dropping,l=Boolean(a),u=function(e){return null!=e.forceShouldAnimate?e.forceShouldAnimate:"SNAP"===e.mode}(n),s=Boolean(i),c=s?ls(o,l):is(o),{position:"fixed",top:r.marginBox.top,left:r.marginBox.left,boxSizing:"border-box",width:r.borderBox.width,height:r.borderBox.height,transition:Sf(u,i),transform:c,opacity:xf(l,s),zIndex:s?Ef:wf,pointerEvents:"none"}):{transform:is((t=e).offset),transition:t.shouldAnimateDisplacement?null:"none"};var t,n,r,o,a,i,l,u,s,c}function Cf(e){var t=wc("draggable"),n=e.descriptor,r=e.registry,a=e.getDraggableRef,i=e.canDragInteractiveElements,l=e.shouldRespectForcePress,u=e.isEnabled,s=Ai((function(){return{canDragInteractiveElements:i,shouldRespectForcePress:l,isEnabled:u}}),[i,u,l]),c=ji((function(e){var t=a();return t||Zi(!1),function(e,t,n){void 0===n&&(n=sl);var r=window.getComputedStyle(t),o=t.getBoundingClientRect(),a=qi(o,r),i=Gi(a,n);return{descriptor:e,placeholder:{client:a,tagName:t.tagName.toLowerCase(),display:r.display},displaceBy:{x:a.marginBox.width,y:a.marginBox.height},client:a,page:i}}(n,t,e)}),[n,a]),f=Ai((function(){return{uniqueId:t,descriptor:n,options:s,getDimension:c}}),[n,c,s,t]),d=Object(o.useRef)(f),p=Object(o.useRef)(!0);uc((function(){return r.draggable.register(d.current),function(){return r.draggable.unregister(d.current)}}),[r.draggable]),uc((function(){if(p.current)p.current=!1;else{var e=d.current;d.current=f,r.draggable.update(f,e)}}),[f,r.draggable])}function kf(e,t,n){xc()}function Pf(e){e.preventDefault()}var If=function(e,t){return e===t},Df=function(e){var t=e.combine,n=e.destination;return n?n.droppableId:t?t.droppableId:null};function Rf(e){return{isDragging:!1,isDropAnimating:!1,isClone:!1,dropAnimation:null,mode:null,draggingOver:null,combineTargetFor:e,combineWith:null}}var Nf={mapped:{type:"SECONDARY",offset:sl,combineTargetFor:null,shouldAnimateDisplacement:!0,snapshot:Rf(null)}};var Tf=Ni((function(){var e,t,n,r=(e=Bo((function(e,t){return{x:e,y:t}})),t=Bo((function(e,t,n,r,o){return{isDragging:!0,isClone:t,isDropAnimating:Boolean(o),dropAnimation:o,mode:e,draggingOver:n,combineWith:r,combineTargetFor:null}})),n=Bo((function(e,n,r,o,a,i,l){return{mapped:{type:"DRAGGING",dropping:null,draggingOver:a,combineWith:i,mode:n,offset:e,dimension:r,forceShouldAnimate:l,snapshot:t(n,o,a,i,null)}}})),function(r,o){if(r.isDragging){if(r.critical.draggable.id!==o.draggableId)return null;var a=r.current.client.offset,i=r.dimensions.draggables[o.draggableId],l=bu(r.impact),u=(c=r.impact).at&&"COMBINE"===c.at.type?c.at.combine.draggableId:null,s=r.forceShouldAnimate;return n(e(a.x,a.y),r.movementMode,i,o.isClone,l,u,s)}var c;if("DROP_ANIMATING"===r.phase){var f=r.completed;if(f.result.draggableId!==o.draggableId)return null;var d=o.isClone,p=r.dimensions.draggables[o.draggableId],m=f.result,h=m.mode,v=Df(m),g=function(e){return e.combine?e.combine.draggableId:null}(m),b={duration:r.dropDuration,curve:es,moveTo:r.newHomeClientOffset,opacity:g?ts.drop:null,scale:g?ns.drop:null};return{mapped:{type:"DRAGGING",offset:r.newHomeClientOffset,dimension:p,dropping:b,draggingOver:v,combineWith:g,mode:h,forceShouldAnimate:null,snapshot:t(h,d,v,g,b)}}}return null}),o=function(){var e=Bo((function(e,t){return{x:e,y:t}})),t=Bo(Rf),n=Bo((function(e,n,r){return void 0===n&&(n=null),{mapped:{type:"SECONDARY",offset:e,combineTargetFor:n,shouldAnimateDisplacement:r,snapshot:t(n)}}})),r=function(e){return e?n(sl,e,!0):null},o=function(t,o,a,i){var l=a.displaced.visible[t],u=Boolean(i.inVirtualList&&i.effected[t]),s=Tl(a),c=s&&s.draggableId===t?o:null;if(!l){if(!u)return r(c);if(a.displaced.invisible[t])return null;var f=pl(i.displacedBy.point),d=e(f.x,f.y);return n(d,c,!0)}if(u)return r(c);var p=a.displacedBy.point,m=e(p.x,p.y);return n(m,c,l.shouldAnimate)};return function(e,t){if(e.isDragging)return e.critical.draggable.id===t.draggableId?null:o(t.draggableId,e.critical.draggable.id,e.impact,e.afterCritical);if("DROP_ANIMATING"===e.phase){var n=e.completed;return n.result.draggableId===t.draggableId?null:o(t.draggableId,n.result.draggableId,n.impact,n.afterCritical)}return null}}();return function(e,t){return r(e,t)||o(e,t)||Nf}}),{dropAnimationFinished:Zu},null,{context:vc,pure:!0,areStatePropsEqual:If})((function(e){var t=Object(o.useRef)(null),n=ji((function(e){t.current=e}),[]),r=ji((function(){return t.current}),[]),a=pf(Ec),i=a.contextId,l=a.dragHandleUsageInstructionsId,u=a.registry,s=pf(yf),c=s.type,f=s.droppableId,d=Ai((function(){return{id:e.draggableId,index:e.index,type:c,droppableId:f}}),[e.draggableId,e.index,c,f]),p=e.children,m=e.draggableId,h=e.isEnabled,v=e.shouldRespectForcePress,g=e.canDragInteractiveElements,b=e.isClone,y=e.mapped,_=e.dropAnimationFinished;kf(),Sc(),b||Cf(Ai((function(){return{descriptor:d,registry:u,getDraggableRef:r,canDragInteractiveElements:g,shouldRespectForcePress:v,isEnabled:h}}),[d,u,r,g,v,h]));var w=Ai((function(){return h?{tabIndex:0,role:"button","aria-describedby":l,"data-rbd-drag-handle-draggable-id":m,"data-rbd-drag-handle-context-id":i,draggable:!1,onDragStart:Pf}:null}),[i,l,m,h]),E=ji((function(e){"DRAGGING"===y.type&&y.dropping&&"transform"===e.propertyName&&_()}),[_,y]),S=Ai((function(){var e=Of(y),t="DRAGGING"===y.type&&y.dropping?E:null;return{innerRef:n,draggableProps:{"data-rbd-draggable-context-id":i,"data-rbd-draggable-id":m,style:e,onTransitionEnd:t},dragHandleProps:w}}),[i,w,m,y,E,n]),x=Ai((function(){return{draggableId:d.id,type:d.type,source:{index:d.index,droppableId:d.droppableId}}}),[d.droppableId,d.id,d.index,d.type]);return p(S,y.snapshot,x)}));function Lf(e){return pf(yf).isUsingCloneFor!==e.draggableId||e.isClone?a.a.createElement(Tf,e):null}function Af(e){var t="boolean"!=typeof e.isDragDisabled||!e.isDragDisabled,n=Boolean(e.disableInteractiveElementBlocking),r=Boolean(e.shouldRespectForcePress);return a.a.createElement(Lf,pt({},e,{isClone:!1,isEnabled:t,canDragInteractiveElements:n,shouldRespectForcePress:r}))}var jf=function(e,t){return e===t.droppable.type},Mf=function(e,t){return t.draggables[e.draggable.id]};var Ff={mode:"standard",type:"DEFAULT",direction:"vertical",isDropDisabled:!1,isCombineEnabled:!1,ignoreContainerClipping:!1,renderClone:null,getContainerForClone:function(){return document.body||Zi(!1),document.body}},Bf=Ni((function(){var e={placeholder:null,shouldAnimatePlaceholder:!0,snapshot:{isDraggingOver:!1,draggingOverWith:null,draggingFromThisWith:null,isUsingPlaceholder:!1},useClone:null},t=pt({},e,{shouldAnimatePlaceholder:!1}),n=Bo((function(e){return{draggableId:e.id,type:e.type,source:{index:e.index,droppableId:e.droppableId}}})),r=Bo((function(r,o,a,i,l,u){var s=l.descriptor.id;if(l.descriptor.droppableId===r){var c=u?{render:u,dragging:n(l.descriptor)}:null,f={isDraggingOver:a,draggingOverWith:a?s:null,draggingFromThisWith:s,isUsingPlaceholder:!0};return{placeholder:l.placeholder,shouldAnimatePlaceholder:!1,snapshot:f,useClone:c}}if(!o)return t;if(!i)return e;var d={isDraggingOver:a,draggingOverWith:s,draggingFromThisWith:null,isUsingPlaceholder:!0};return{placeholder:l.placeholder,shouldAnimatePlaceholder:!0,snapshot:d,useClone:null}}));return function(n,o){var a=o.droppableId,i=o.type,l=!o.isDropDisabled,u=o.renderClone;if(n.isDragging){var s=n.critical;if(!jf(i,s))return t;var c=Mf(s,n.dimensions),f=bu(n.impact)===a;return r(a,l,f,f,c,u)}if("DROP_ANIMATING"===n.phase){var d=n.completed;if(!jf(i,d.critical))return t;var p=Mf(d.critical,n.dimensions);return r(a,l,Df(d.result)===a,bu(d.impact)===a,p,u)}if("IDLE"===n.phase&&n.completed&&!n.shouldFlush){var m=n.completed;if(!jf(i,m.critical))return t;var h=bu(m.impact)===a,v=Boolean(m.impact.at&&"COMBINE"===m.impact.at.type),g=m.critical.droppable.id===a;return h?v?e:t:g?e:t}return t}}),{updateViewportMaxScroll:function(e){return{type:"UPDATE_VIEWPORT_MAX_SCROLL",payload:e}}},null,{context:vc,pure:!0,areStatePropsEqual:If})((function(e){var t=Object(o.useContext)(Ec);t||Zi(!1);var n=t.contextId,r=t.isMovementAllowed,i=Object(o.useRef)(null),u=Object(o.useRef)(null),s=e.children,c=e.droppableId,f=e.type,d=e.mode,p=e.direction,m=e.ignoreContainerClipping,h=e.isDropDisabled,v=e.isCombineEnabled,g=e.snapshot,b=e.useClone,y=e.updateViewportMaxScroll,_=e.getContainerForClone,w=ji((function(){return i.current}),[]),E=ji((function(e){i.current=e}),[]),S=(ji((function(){return u.current}),[]),ji((function(e){u.current=e}),[]));xc();var x=ji((function(){r()&&y({maxScroll:ks()})}),[r,y]);!function(e){var t=Object(o.useRef)(null),n=pf(Ec),r=wc("droppable"),a=n.registry,i=n.marshal,l=Cc(e),u=Ai((function(){return{id:e.droppableId,type:e.type,mode:e.mode}}),[e.droppableId,e.mode,e.type]),s=Object(o.useRef)(u),c=Ai((function(){return Bo((function(e,n){t.current||Zi(!1);var r={x:e,y:n};i.updateDroppableScroll(u.id,r)}))}),[u.id,i]),f=ji((function(){var e=t.current;return e&&e.env.closestScrollable?lf(e.env.closestScrollable):sl}),[]),d=ji((function(){var e=f();c(e.x,e.y)}),[f,c]),p=Ai((function(){return Yi(d)}),[d]),m=ji((function(){var e=t.current,n=mf(e);e&&n||Zi(!1),e.scrollOptions.shouldPublishImmediately?d():p()}),[p,d]),h=ji((function(e,r){t.current&&Zi(!1);var o=l.current,a=o.getDroppableRef();a||Zi(!1);var i=uf(a),s={ref:a,descriptor:u,env:i,scrollOptions:r};t.current=s;var c=sf({ref:a,descriptor:u,env:i,windowScroll:e,direction:o.direction,isDropDisabled:o.isDropDisabled,isCombineEnabled:o.isCombineEnabled,shouldClipSubject:!o.ignoreContainerClipping}),f=i.closestScrollable;return f&&(f.setAttribute(ic.contextId,n.contextId),f.addEventListener("scroll",m,df(s.scrollOptions))),c}),[n.contextId,u,m,l]),v=ji((function(){var e=t.current,n=mf(e);return e&&n||Zi(!1),lf(n)}),[]),g=ji((function(){var e=t.current;e||Zi(!1);var n=mf(e);t.current=null,n&&(p.cancel(),n.removeAttribute(ic.contextId),n.removeEventListener("scroll",m,df(e.scrollOptions)))}),[m,p]),b=ji((function(e){var n=t.current;n||Zi(!1);var r=mf(n);r||Zi(!1),r.scrollTop+=e.y,r.scrollLeft+=e.x}),[]),y=Ai((function(){return{getDimensionAndWatchScroll:h,getScrollWhileDragging:v,dragStopped:g,scroll:b}}),[g,h,v,b]),_=Ai((function(){return{uniqueId:r,descriptor:u,callbacks:y}}),[y,u,r]);uc((function(){return s.current=_.descriptor,a.droppable.register(_),function(){t.current&&g(),a.droppable.unregister(_)}}),[y,u,g,_,i,a.droppable]),uc((function(){t.current&&i.updateDroppableIsEnabled(s.current.id,!e.isDropDisabled)}),[e.isDropDisabled,i]),uc((function(){t.current&&i.updateDroppableIsCombineEnabled(s.current.id,e.isCombineEnabled)}),[e.isCombineEnabled,i])}({droppableId:c,type:f,mode:d,direction:p,isDropDisabled:h,isCombineEnabled:v,ignoreContainerClipping:m,getDroppableRef:w});var O=a.a.createElement(_f,{on:e.placeholder,shouldAnimate:e.shouldAnimatePlaceholder},(function(e){var t=e.onClose,r=e.data,o=e.animate;return a.a.createElement(bf,{placeholder:r,onClose:t,innerRef:S,animate:o,contextId:n,onTransitionEnd:x})})),C=Ai((function(){return{innerRef:E,placeholder:O,droppableProps:{"data-rbd-droppable-id":c,"data-rbd-droppable-context-id":n}}}),[n,c,O,E]),k=b?b.dragging.draggableId:null,P=Ai((function(){return{droppableId:c,type:f,isUsingCloneFor:k}}),[c,k,f]);return a.a.createElement(yf.Provider,{value:P},s(C,g),function(){if(!b)return null;var e=b.dragging,t=b.render,n=a.a.createElement(Lf,{draggableId:e.draggableId,index:e.source.index,isClone:!0,isEnabled:!0,shouldRespectForcePress:!1,canDragInteractiveElements:!0},(function(n,r){return t(n,r,e)}));return l.a.createPortal(n,_())}())}));function Vf(e){return(Vf="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Uf(){return(Uf=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function zf(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Hf(e,t){return(Hf=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Wf(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=$f(e);if(t){var o=$f(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return Gf(this,n)}}function Gf(e,t){return!t||"object"!==Vf(t)&&"function"!=typeof t?qf(e):t}function qf(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function $f(e){return($f=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}Bf.defaultProps=Ff;var Yf=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Hf(e,t)}(i,e);var t,n,r,o=Wf(i);function i(e){var t;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,i),t=o.call(this,e);var n=e.settings,r=e.form_title,l=e.validation_type,u=n.form_fields;return t.state={field_values:u.option_values||[],field_states:[],form_settings:u,settings:n,form_title:r,status:{loading_type:null,loading_message:null},refs:{wrapper:a.a.createRef()},validation_type:l,last_row_index:null},t._form_validation=new E(n.events.validate_field,l),t._form_submit=new y(n.handlers.api_loader,u.api_route,t._form_validation,t.updateLoadingStatus.bind(qf(t))),t}return t=i,(n=[{key:"render",value:function(){var e=this,t=this.state,n=t.field_values,r=t.field_states,o=t.settings,i=t.form_title,l=t.form_settings,u=t.status,s=t.refs,c=t.validation_type;return a.a.createElement(a.a.Fragment,null,a.a.createElement("div",{className:"fcfWidget"},a.a.createElement("form",{className:"fcfWidget__inner"},a.a.createElement("div",{className:"fcfWidget__header"},a.a.createElement("div",{className:"fcfWidget__headerTitle"},i),a.a.createElement("div",{className:"fcfWidget__headerButtons"},a.a.createElement("ul",{className:"fcfWidget__buttons"},a.a.createElement("li",{className:"fcfWidget__button"},a.a.createElement(D,{button_classes:"fcfButton fcfButton--wide fcfButton--small fcfButton--bg fcfButton--blue",button_alignment:"right",button_label:o.i18n.button_save,loading_type:"save_top",loading_status:u.loading_type,loading_message:u.loading_message,settings:o,onSubmit:this.onSubmit.bind(this,"save_top",{form_fields:n})}))))),a.a.createElement("div",{className:"fcfWidget__content"},n.length>0?a.a.createElement("div",{className:"fcfFields",ref:s.wrapper},a.a.createElement(Zc,{onBeforeDragStart:this.onDragStart.bind(this),onDragEnd:this.onDragEnd.bind(this)},a.a.createElement(Bf,{droppableId:"dnd-fields"},(function(t,i){return a.a.createElement("ul",Uf({className:"fcfFields__items dnd-fields"},t.droppableProps,{ref:t.innerRef}),n.map((function(t,s){return null!==t&&e.getFieldType(t)?a.a.createElement(Af,{key:s,draggableId:"field-".concat(s),index:s},(function(f){return a.a.createElement(za,{provided:f,field_data:t,form_states:r[s]||{},field_type:e.getFieldType(t),section_fields:n,validation_types:[c],settings:o,form_settings:l,onChangeValue:e.onChangeValue.bind(e,s),onChangeState:e.onChangeState.bind(e,s),onFieldRemove:e.onFieldRemove.bind(e,s),onValidationInit:e.onValidationInit.bind(e),row_index:s,last_row_index:i.isDraggingOver||null!==u.loading_type?null:e.state.last_row_index})})):null})),t.placeholder)})))):a.a.createElement("div",{className:"fcfWidget__contentPlaceholder"},o.i18n.alert_no_fields)),a.a.createElement("div",{className:"fcfWidget__footer"},a.a.createElement("ul",{className:"fcfWidget__buttons"},a.a.createElement("li",{className:"fcfWidget__button"},a.a.createElement(D,{button_classes:"fcfButton fcfButton--wide fcfButton--bg fcfButton--blue",button_alignment:"left",button_label:o.i18n.button_save,loading_type:"save_bottom",loading_status:u.loading_type,loading_message:u.loading_message,settings:o,onSubmit:this.onSubmit.bind(this,"save_bottom",{form_fields:n})})),a.a.createElement("li",{className:"fcfWidget__button"},a.a.createElement(D,{button_classes:"fcfButton fcfButton--wide fcfButton--border fcfButton--red",button_alignment:"right",button_label:o.i18n.button_reset,loading_type:"reset_bottom",loading_status:u.loading_type,loading_message:u.loading_message,tooltip_text:o.i18n.alert_reset,settings:o,onSubmit:this.onReset.bind(this,"reset_bottom",{form_fields:{}})})))))))}},{key:"onValidationInit",value:function(e,t,n){return this._form_validation.onValidationInit(e,t,n)}},{key:"onChangeValue",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],o=this.state.field_values;o[e][t]=n,this.setState({field_values:o,last_row_index:r?null:e}),r&&this.sendRefreshEvent()}},{key:"onChangeState",value:function(e,t,n,r){var o=this.state.field_states;void 0===o[e]&&(o[e]={}),void 0===o[e][t]&&(o[e][t]={}),o[e][t][n]=r,this.setState({field_states:o})}},{key:"sendRefreshEvent",value:function(){var e=this.state.settings;clearTimeout(this.refresh_timeout),this.refresh_timeout=setTimeout((function(){window.dispatchEvent(new CustomEvent(e.events.refresh_field))}),1e3)}},{key:"onFieldRemove",value:function(e){var t=this.state.field_values;t.splice(e,1),this.setState({field_values:t,last_row_index:null}),this.sendRefreshEvent()}},{key:"onSubmit",value:function(e,t,n){return n.preventDefault(),this._form_submit.onSubmit(e,t)}},{key:"onReset",value:function(e,t){return this._form_submit.onReset(e,t)}},{key:"onDragStart",value:function(){var e=this.state.refs;e.wrapper.current.style.height="".concat(e.wrapper.current.offsetHeight,"px")}},{key:"onDragEnd",value:function(e){if(this.state.refs.wrapper.current.style.height="",e.destination){var t=this.state,n=t.field_values,r=t.field_states,o=n[e.source.index],a=r[e.source.index];n.splice(e.source.index,1),r.splice(e.source.index,1),n.splice(e.destination.index,0,o),r.splice(e.destination.index,0,a),this._form_validation.clearValidationHandlers(),this.setState({field_values:this.updateFieldsPriority(n),field_states:r,last_row_index:null})}}},{key:"updateLoadingStatus",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=this.state.status;n.loading_type=e,n.loading_message=t,this.setState({status:n})}},{key:"getFieldType",value:function(e){var t=this.state.form_settings;for(var n in t.option_fields)if(t.option_fields.hasOwnProperty(n)&&t.option_fields[n].reserved_field_names.indexOf(e.name)>-1)return t.option_fields[n];return t.option_fields.fcf_default}},{key:"updateFieldsPriority",value:function(e){for(var t=10,n=e.length,r=0;r<n;r++)e[r].priority=t,t+=10;return e}}])&&zf(t.prototype,n),r&&zf(t,r),i}(a.a.Component);function Qf(e){return(Qf="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Kf(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Xf(e,t){return(Xf=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Jf(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=ed(e);if(t){var o=ed(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return Zf(this,n)}}function Zf(e,t){return!t||"object"!==Qf(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function ed(e){return(ed=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var td=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Xf(e,t)}(i,e);var t,n,r,o=Jf(i);function i(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,i),(t=o.call(this,e)).state={settings:{i18n:reactInit.i18n,handlers:{api_loader:new f(reactInit.rest_api_url,reactInit.header_nonce)},events:{validate_field:"fcf-field-validate",refresh_field:"fcf-field-refresh"},form_fields:reactInit.form_fields,form_section:reactInit.form_section,form_settings:reactInit.form_settings}},t}return t=i,(n=[{key:"render",value:function(){var e=this.state.settings;return a.a.createElement("ul",{className:"fcfSettings__columns fcfSettings__columns--margin"},a.a.createElement(a.a.Fragment,null,e.form_fields?a.a.createElement("li",{className:"fcfSettings__column"},a.a.createElement(Ca,{settings:e,form_settings:e.form_fields,form_title:e.i18n.form_add_field,validation_type:"form_add_field",onFieldAdd:this.addNewField.bind(this)})):null,e.form_fields||e.form_section?a.a.createElement("li",{className:"fcfSettings__column fcfSettings__column--wide"},e.form_fields?a.a.createElement(Yf,{settings:e,form_settings:e.form_fields,form_title:e.i18n.form_fields,validation_type:"form_fields"}):null,e.form_section?a.a.createElement(La,{settings:e,form_settings:e.form_section,form_title:e.i18n.form_section,validation_type:"form_section"}):null):null),e.form_settings?a.a.createElement(a.a.Fragment,null,a.a.createElement("li",{className:"fcfSettings__column fcfSettings__column--wide"},a.a.createElement(La,{settings:e,form_settings:e.form_settings,form_title:e.i18n.form_settings,validation_type:"form_settings"}))):null)}},{key:"addNewField",value:function(e){var t=this.state.settings;t.form_fields.option_values.push(e),this.setState({settings:t}),window.dispatchEvent(new CustomEvent(t.events.refresh_field))}}])&&Kf(t.prototype,n),r&&Kf(t,r),i}(a.a.Component);function nd(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var rd=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.setVars()&&this.setEvents()}var t,n,r;return t=e,(n=[{key:"setVars",value:function(){if(this.section=document.querySelector("#fcf-settings"),this.section)return!0}},{key:"setEvents",value:function(){document.addEventListener("DOMContentLoaded",this.renderDom.bind(this))}},{key:"renderDom",value:function(){l.a.render(a.a.createElement(td,null),this.section)}}])&&nd(t.prototype,n),r&&nd(t,r),e}();new function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),new rd}},function(e,t){}]);
classes/filed-validation.php CHANGED
@@ -76,7 +76,7 @@ class Flexible_Checkout_Fields_Field_Validation {
76
  'phone' => __( 'Phone', 'flexible-checkout-fields' ),
77
  );
78
  if ( in_array( $section, array( 'billing', 'shipping' ), true ) ) {
79
- $validation_options['postcode'] = __( 'Post code', 'flexible-checkout-fields' );
80
  }
81
  $custom_validations = $this->get_custom_validations( $section );
82
  foreach ( $custom_validations as $custom_validation_key => $custom_validation ) {
76
  'phone' => __( 'Phone', 'flexible-checkout-fields' ),
77
  );
78
  if ( in_array( $section, array( 'billing', 'shipping' ), true ) ) {
79
+ $validation_options['postcode'] = __( 'Postcode', 'flexible-checkout-fields' );
80
  }
81
  $custom_validations = $this->get_custom_validations( $section );
82
  foreach ( $custom_validations as $custom_validation_key => $custom_validation ) {
classes/plugin.php CHANGED
@@ -147,18 +147,6 @@ class Flexible_Checkout_Fields_Plugin extends \FcfVendor\WPDesk\PluginBuilder\Pl
147
 
148
  add_filter( 'flexible_chekout_fields_fields', array( $this, 'getCheckoutFields' ), 10, 2 );
149
 
150
- add_filter( 'flexible_checkout_fields_field_tabs', array( $this, 'flexible_checkout_fields_field_tabs' ), 10 );
151
-
152
- add_action( 'flexible_checkout_fields_field_tabs_content', array(
153
- $this,
154
- 'flexible_checkout_fields_field_tabs_content'
155
- ), 10, 4 );
156
-
157
- add_action( 'flexible_checkout_fields_field_tabs_content_js', array(
158
- $this,
159
- 'flexible_checkout_fields_field_tabs_content_js'
160
- ), 10 );
161
-
162
  add_action( 'woocommerce_default_address_fields', array( $this, 'woocommerce_default_address_fields' ), 9999 );
163
  add_filter( 'woocommerce_get_country_locale', array( $this, 'woocommerce_get_country_locale' ), 9999 );
164
  add_filter( 'woocommerce_get_country_locale_base', array( $this, 'woocommerce_get_country_locale_base' ), 9999 );
@@ -894,30 +882,6 @@ class Flexible_Checkout_Fields_Plugin extends \FcfVendor\WPDesk\PluginBuilder\Pl
894
  return $this->getCheckoutFields( $fields, 'order' );
895
  }
896
 
897
- public function changeAdminBillingFields( $labels ) {
898
- return $this->changeAdminLabelsCheckoutFields( $labels, 'billing' );
899
- }
900
-
901
- public function changeAdminShippingFields( $labels ) {
902
- return $this->changeAdminLabelsCheckoutFields( $labels, 'shipping' );
903
- }
904
-
905
- public function changeAdminOrderFields( $labels ) {
906
- return $this->changeAdminLabelsCheckoutFields( $labels, 'order' );
907
- }
908
-
909
- public function addCustomBillingFieldsToAdmin( $order ) {
910
- $this->printCheckoutFields( $order, 'billing' );
911
- }
912
-
913
- public function addCustomShippingFieldsToAdmin( $order ) {
914
- $this->printCheckoutFields( $order, 'shipping' );
915
- }
916
-
917
- public function addCustomOrderFieldsToAdmin( $order ) {
918
- $this->printCheckoutFields( $order, 'order' );
919
- }
920
-
921
  public function addCustomFieldsBillingFields( $fields ) {
922
  return $this->getCheckoutUserFields( $fields, 'billing' );
923
  }
@@ -962,29 +926,6 @@ class Flexible_Checkout_Fields_Plugin extends \FcfVendor\WPDesk\PluginBuilder\Pl
962
  echo 1;
963
  }
964
 
965
- public function flexible_checkout_fields_field_tabs( $tabs ) {
966
- $tabs[] = array(
967
- 'hash' => 'advanced',
968
- 'title' => __( 'Advanced', 'flexible-checkout-fields' )
969
- );
970
- $tabs[] = [
971
- 'hash' => 'pricing',
972
- 'title' => __( 'Pricing', 'flexible-checkout-fields' ),
973
- ];
974
-
975
- return $tabs;
976
- }
977
-
978
- public function flexible_checkout_fields_field_tabs_content( $key, $name, $field, $settings ) {
979
- include $this->plugin_path . '/views/settings-field-advanced.php';
980
- include $this->plugin_path . '/views/settings-field-pricing.php';
981
- }
982
-
983
- public function flexible_checkout_fields_field_tabs_content_js() {
984
- include $this->plugin_path . '/views/settings-field-advanced-js.php';
985
- include $this->plugin_path . '/views/settings-field-pricing-js.php';
986
- }
987
-
988
  public function woocommerce_get_country_locale_default( $address_fields ) {
989
  return $address_fields;
990
  }
@@ -1011,11 +952,6 @@ class Flexible_Checkout_Fields_Plugin extends \FcfVendor\WPDesk\PluginBuilder\Pl
1011
  $current_screen = get_current_screen();
1012
  }
1013
 
1014
- if ( isset( $current_screen ) && 'woocommerce_page_inspire_checkout_fields_settings' === $current_screen->id ) {
1015
- wp_enqueue_style( 'jquery-ui-style', trailingslashit( $this->get_plugin_assets_url() ) . 'css/jquery-ui' . $suffix . '.css', array(), $this->scripts_version );
1016
- wp_enqueue_script( 'jquery-tiptip' );
1017
- }
1018
-
1019
  wp_enqueue_style( 'inspire_checkout_fields_admin_style', trailingslashit( $this->get_plugin_assets_url() ) . 'css/admin' . $suffix . '.css', array(), $this->scripts_version );
1020
  $deps = array(
1021
  'jquery',
147
 
148
  add_filter( 'flexible_chekout_fields_fields', array( $this, 'getCheckoutFields' ), 10, 2 );
149
 
 
 
 
 
 
 
 
 
 
 
 
 
150
  add_action( 'woocommerce_default_address_fields', array( $this, 'woocommerce_default_address_fields' ), 9999 );
151
  add_filter( 'woocommerce_get_country_locale', array( $this, 'woocommerce_get_country_locale' ), 9999 );
152
  add_filter( 'woocommerce_get_country_locale_base', array( $this, 'woocommerce_get_country_locale_base' ), 9999 );
882
  return $this->getCheckoutFields( $fields, 'order' );
883
  }
884
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
885
  public function addCustomFieldsBillingFields( $fields ) {
886
  return $this->getCheckoutUserFields( $fields, 'billing' );
887
  }
926
  echo 1;
927
  }
928
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
929
  public function woocommerce_get_country_locale_default( $address_fields ) {
930
  return $address_fields;
931
  }
952
  $current_screen = get_current_screen();
953
  }
954
 
 
 
 
 
 
955
  wp_enqueue_style( 'inspire_checkout_fields_admin_style', trailingslashit( $this->get_plugin_assets_url() ) . 'css/admin' . $suffix . '.css', array(), $this->scripts_version );
956
  $deps = array(
957
  'jquery',
classes/settings.php CHANGED
@@ -3,41 +3,19 @@
3
 
4
  class Flexible_Checkout_Fields_Settings {
5
 
6
- const SECURITY_NONCE_NAME = 'fcf_settings';
7
- const SECURITY_NONCE_FIELD = 'inspire_checkout_fields_security';
8
-
9
- /**
10
- * Fields requirement controlled by woocommerce.
11
- *
12
- * @var array
13
- */
14
- private $fields_requirement_controlled_by_woocommerce;
15
-
16
- private $admin_notices = array();
17
-
18
  /**
19
  * Flexible_Checkout_Fields_Settings constructor.
20
  *
21
  * @param Flexible_Checkout_Fields_Plugin $plugin .
22
- * @param array $fields_requirement_controlled_by_woocommerce .
23
  */
24
- public function __construct( $plugin, $fields_requirement_controlled_by_woocommerce ) {
25
 
26
  $this->plugin = $plugin;
27
 
28
- $this->fields_requirement_controlled_by_woocommerce = $fields_requirement_controlled_by_woocommerce;
29
-
30
- add_action( 'admin_init', array($this, 'updateSettingsAction') );
31
- add_action( 'admin_menu', array($this, 'initAdminMenuAction'), 80);
32
-
33
  add_action( 'init', array($this, 'init_polylang') );
34
  add_action( 'admin_init', array($this, 'init_wpml') );
35
  }
36
 
37
- public function getSettingValue( $name, $default = null ) {
38
- return $this->plugin->get_setting_value( $name, $default );
39
- }
40
-
41
  function init_polylang() {
42
  if ( function_exists( 'pll_register_string' ) ) {
43
  $settings = get_option('inspire_checkout_fields_settings', array() );
@@ -88,7 +66,7 @@
88
  if ( isset( $field['default'] ) && $field['default'] != '' ) {
89
  icl_register_string( 'flexible-checkout-fields', $field['default'], $field['default'], false, $icl_language_code );
90
  }
91
- if ( isset( $field['type'] ) && isset( $checkout_field_type[$field['type']]['has_options'] ) && $checkout_field_type[$field['type']]['has_options'] ) {
92
  $array_options = explode("\n", $field['option']);
93
  if ( !empty( $array_options ) ){
94
  foreach ( $array_options as $option ) {
@@ -104,272 +82,4 @@
104
  }
105
  }
106
  }
107
-
108
- /**
109
- * add new menu to woocommerce function.
110
- *
111
- * @access public
112
- * @param none
113
- * @return void
114
- */
115
-
116
- public function initAdminMenuAction() {
117
- add_submenu_page( 'woocommerce', __( 'Checkout Fields Settings', 'flexible-checkout-fields' ), __( 'Checkout Fields', 'flexible-checkout-fields' ) , 'manage_woocommerce', 'inspire_checkout_fields_settings', array( $this, 'renderInspireCheckoutFieldsSettingsPage') );
118
- }
119
-
120
- /**
121
- * wordpress action
122
- *
123
- * renders plugin submenu page
124
- */
125
- public function renderInspireCheckoutFieldsSettingsPage() {
126
- global $woocommerce;
127
-
128
- $settings = get_option( 'inspire_checkout_fields_settings' );
129
-
130
- $countries = new WC_Countries();
131
- $billing = $countries->get_address_fields($countries->get_base_country(), 'billing_');
132
- $shipping = $countries->get_address_fields($countries->get_base_country(), 'shipping_');
133
-
134
- if( empty( $settings ) || empty( $settings['order'] ) ) {
135
- $order = array(
136
- 'order_comments' => array(
137
- 'type' => 'textarea',
138
- 'class' => array('notes'),
139
- 'label' => __( 'Order Notes', 'flexible-checkout-fields' ),
140
- 'placeholder' => _x( 'Notes about your order, e.g. special notes for delivery.', 'placeholder', 'flexible-checkout-fields')
141
- )
142
- );
143
- }
144
- else {
145
- $order = $settings['order'];
146
- }
147
-
148
- $checkout_fields = array_merge( array('billing' => $billing), array('shipping' => $shipping), array('order' => $order) );
149
-
150
- foreach ( $this->plugin->sections as $custom_section => $custom_section_data ) {
151
- if ( $custom_section_data['section'] == 'billing' || $custom_section_data['section'] == 'shipping' || $custom_section_data['section'] == 'order' ) continue;
152
- if ( empty( $settings[$custom_section_data['section']] ) ) {
153
- $checkout_fields[$custom_section_data['section']] = array();
154
- }
155
- else {
156
- $checkout_fields[$custom_section_data['section']] = $settings[$custom_section_data['section']];
157
- }
158
-
159
- }
160
- $current_tab = ( empty( $_GET['tab'] ) ) ? 'fields_billing' : sanitize_text_field( urldecode( $_GET['tab'] ) );
161
-
162
- $args = array(
163
- 'current_tab' => $current_tab,
164
- 'tabs' => array(
165
- 'settings' => __( 'Settings', 'flexible-checkout-fields' ),
166
- )
167
- );
168
-
169
- foreach ( $this->plugin->sections as $section => $section_data ) {
170
- $args['tabs'][$section_data['tab']] = $section_data['tab_title'];
171
- }
172
-
173
- if ( !is_flexible_checkout_fields_pro_active() ) {
174
- $args['tabs']['pro'] = __( 'Custom Sections', 'flexible-checkout-fields' );
175
- }
176
-
177
- $docs_link = 'https://www.wpdesk.net/docs/flexible-checkout-fields-pro-woocommerce-docs/';
178
- if ( get_locale() === 'pl_PL' ) {
179
- $docs_link = 'https://www.wpdesk.pl/docs/woocommerce-checkout-fields-docs/';
180
- }
181
- $docs_link .= '?utm_source=wp-admin-plugins&utm_medium=quick-link&utm_campaign=flexible-checkout-fields-docs-link';
182
-
183
- include( 'views/settings-tabs.php' );
184
-
185
- require_once('activation-tracker.php');
186
- $activation_tracker = new Flexible_Checkout_Fields_Activation_Tracker( $this->plugin->plugin_namespace );
187
-
188
- switch ($current_tab) {
189
- case 'settings':
190
-
191
- $args = array(
192
- 'plugin' => $this->plugin,
193
- );
194
-
195
- include( 'views/settings-settings.php' );
196
-
197
- break;
198
-
199
- case 'checkboxes':
200
- echo $this->loadTemplate('submenu_checkboxes', 'settings', array(
201
- 'plugin' => $this->plugin
202
- )
203
- );
204
- break;
205
-
206
- case 'pro':
207
-
208
- include( 'views/settings-pro.php' );
209
-
210
- break;
211
-
212
- default:
213
-
214
- $args = array(
215
- 'plugin' => $this->plugin,
216
- 'checkout_fields' => $checkout_fields,
217
- 'show_ads' => $activation_tracker->is_activated_more_than_two_weeks(),
218
- );
219
-
220
- $fields_requirement_controlled_by_woocommerce = $this->fields_requirement_controlled_by_woocommerce;
221
-
222
- include( 'views/settings-fields.php' );
223
-
224
- break;
225
- }
226
-
227
- }
228
-
229
- private function is_active_more_than_week() {
230
-
231
- }
232
-
233
-
234
- public function validate_field_name( $name, $section ) {
235
- if ( in_array( $section, array( 'billing' ) ) ) {
236
- if ( in_array( $name, array(
237
- 'billing_address_1',
238
- 'billing_address_2',
239
- 'billing_address_index',
240
- 'billing_city',
241
- 'billing_company',
242
- 'billing_country',
243
- 'billing_email',
244
- 'billing_first_name',
245
- 'billing_last_name',
246
- 'billing_phone',
247
- 'billing_postcode'
248
- ) ) ) {
249
- return false;
250
- }
251
- }
252
- if ( in_array( $section, array( 'shipping' ) ) ) {
253
- if ( in_array( $name, array(
254
- 'shipping_address_1',
255
- 'shipping_address_2',
256
- 'shipping_city',
257
- 'shipping_company',
258
- 'shipping_country',
259
- 'shipping_first_name',
260
- 'shipping_last_name',
261
- 'shipping_postcode',
262
- 'shipping_state'
263
- ) ) ) {
264
- return false;
265
- }
266
- }
267
- return true;
268
- }
269
-
270
- /**
271
- * save settings function.
272
- *
273
- * @access public
274
- * @param none
275
- * @return void
276
- */
277
-
278
- public function updateSettingsAction(){
279
-
280
- if ( current_user_can( 'manage_options' ) && ! empty( $_POST ) ) {
281
- if ( !empty($_POST['option_page']) && in_array( $_POST['option_page'], array('inspire_checkout_fields_settings', 'inspire_checkout_fields_checkboxes') ) ) {
282
-
283
- $nonce = $_REQUEST[self::SECURITY_NONCE_FIELD];
284
- if ( ! wp_verify_nonce( $nonce, Flexible_Checkout_Fields_Settings::SECURITY_NONCE_NAME ) ) {
285
- wp_die( __( 'Flexible Checkout Fields: security check error. Fields not saved!', 'flexible-checkout-fields' ) );
286
- }
287
-
288
- if ( !empty( $_POST[$this->plugin->get_namespace()] ) ) {
289
-
290
- foreach ( $_POST[$this->plugin->get_namespace()] as $name => $value ) {
291
- $settings = get_option( 'inspire_checkout_fields_' . $name, array() );
292
- if ( ! is_array( $settings ) ) {
293
- $settings = array();
294
- }
295
- if ( is_array( $value )) {
296
- foreach ( $value as $key => $val ) {
297
- $settings[$key] = $val;
298
- if ( isset( $_POST['reset_settings'] ) ) {
299
- unset( $settings[$key] );
300
- }
301
- else {
302
- $section_settings = array();
303
- if ( empty( $settings[$key] ) ) {
304
- $settings[$key] = array();
305
- }
306
- foreach ( $settings[ $key ] as $field_name => $field ) {
307
- if ( isset( $field['custom_field'] ) && $field['custom_field'] == '1' ) {
308
- if ( isset( $field['short_name'] ) && $field['short_name'] ) {
309
- $new_field_name = $key . '_' . $field['short_name'];
310
- if ( $new_field_name != $field_name ) {
311
- if ( $this->validate_field_name( $new_field_name, $key ) ) {
312
- unset( $settings[$key][$field_name] );
313
- $field['name'] = $new_field_name;
314
- $field_name = $new_field_name;
315
- }
316
- else {
317
- $this->add_admin_notice( sprintf( __( 'You cannot use this field name: %s, for field: %s.', 'flexible-checkout-fields' ), esc_html( $field['short_name'] ), esc_html( $field['label'] ) ), 'error' );
318
- }
319
- }
320
- else {
321
- $field['name'] = $new_field_name;
322
- }
323
- }
324
- }
325
- if ( is_array( $field ) ) {
326
- if ( empty( $field['label'] ) ) {
327
- $field['label'] = '';
328
- } else {
329
- $field['label'] = wp_kses( wp_unslash( $field['label'] ), wp_kses_allowed_html( 'post' ) );
330
- }
331
- if ( empty( $field['placeholder'] ) ) {
332
- $field['placeholder'] = '';
333
- } else {
334
- $field['placeholder'] = sanitize_text_field( wp_unslash( $field['placeholder'] ) );
335
- }
336
- if ( ! isset( $field['default'] ) ) {
337
- $field['default'] = '';
338
- } else {
339
- $field['default'] = sanitize_text_field( wp_unslash( $field['default'] ) );
340
- }
341
- } else {
342
- $field = wp_unslash( $field );
343
- }
344
- $section_settings[$field_name] = $field;
345
- }
346
- $settings[$key] = $section_settings;
347
- }
348
- }
349
- }
350
- else {
351
- $settings = $value;
352
- }
353
- update_option( 'inspire_checkout_fields_' . $name, $settings );
354
- $settings = get_option( 'inspire_checkout_fields_' . $name, array() );
355
- $this->plugin->init_sections();
356
- }
357
- }
358
- elseif ( empty( $_POST[$this->plugin->get_namespace()] ) && $_POST['option_page'] == 'inspire_checkout_fields_checkboxes' ) {
359
- update_option('inspire_checkout_fields_checkboxes', '');
360
- }
361
- }
362
- }
363
- }
364
-
365
- public function add_admin_notice( $message, $class ) {
366
- $this->admin_notices[] = array( 'message' => $message, 'class' => $class );
367
- }
368
-
369
- public function admin_notices() {
370
- foreach ( $this->admin_notices as $admin_notice ) {
371
- echo sprintf( '<div class="%s fade"><p>%s</p></div>', $admin_notice['class'], $admin_notice['message'] );
372
- }
373
- }
374
-
375
  }
3
 
4
  class Flexible_Checkout_Fields_Settings {
5
 
 
 
 
 
 
 
 
 
 
 
 
 
6
  /**
7
  * Flexible_Checkout_Fields_Settings constructor.
8
  *
9
  * @param Flexible_Checkout_Fields_Plugin $plugin .
 
10
  */
11
+ public function __construct( $plugin ) {
12
 
13
  $this->plugin = $plugin;
14
 
 
 
 
 
 
15
  add_action( 'init', array($this, 'init_polylang') );
16
  add_action( 'admin_init', array($this, 'init_wpml') );
17
  }
18
 
 
 
 
 
19
  function init_polylang() {
20
  if ( function_exists( 'pll_register_string' ) ) {
21
  $settings = get_option('inspire_checkout_fields_settings', array() );
66
  if ( isset( $field['default'] ) && $field['default'] != '' ) {
67
  icl_register_string( 'flexible-checkout-fields', $field['default'], $field['default'], false, $icl_language_code );
68
  }
69
+ if ( isset( $field['type'] ) && isset( $checkout_field_type[$field['type']]['has_options'] ) && $checkout_field_type[$field['type']]['has_options'] && $field['option'] ) {
70
  $array_options = explode("\n", $field['option']);
71
  if ( !empty( $array_options ) ){
72
  foreach ( $array_options as $option ) {
82
  }
83
  }
84
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
85
  }
classes/views/settings-ads.php DELETED
@@ -1,28 +0,0 @@
1
- <?php if ( ! is_flexible_checkout_fields_pro_active() ): ?>
2
-
3
- <div class="stuffbox">
4
- <h3><?php _e( 'Enjoying the free version? Rate it!', 'flexible-checkout-fields' ); ?></h3>
5
- <div class="inside">
6
- <div class="main">
7
- <p class="rate">
8
- <a href="<?php echo esc_url( apply_filters( 'flexible_checkout_fields/short_url', '#', 'fcf-settings-widget-review-stars' ) ); ?>"
9
- target="_blank">
10
- <span class="dashicons dashicons-star-filled"></span>
11
- <span class="dashicons dashicons-star-filled"></span>
12
- <span class="dashicons dashicons-star-filled"></span>
13
- <span class="dashicons dashicons-star-filled"></span>
14
- <span class="dashicons dashicons-star-filled"></span>
15
- </a>
16
- </p>
17
- <p style="padding: 0 10px;">
18
- <?php echo sprintf(
19
- __( 'If you want to continue using Flexible Checkout Fields for free, %splease add a review%s. You will help us support the free version. Thank you.', 'flexible-checkout-fields' ),
20
- '<a href="' . esc_url( apply_filters( 'flexible_checkout_fields/short_url', '#', 'fcf-settings-widget-review-link' ) ) . '" target="_blank">',
21
- '</a>'
22
- ); ?>
23
- </p>
24
- </div>
25
- </div>
26
- </div>
27
-
28
- <?php endif; ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
classes/views/settings-fields.php DELETED
@@ -1,1123 +0,0 @@
1
- <?php
2
-
3
- global $woocommerce;
4
-
5
- $checkout_fields = $args['checkout_fields'];
6
- $settings = get_option( 'inspire_checkout_fields_settings', array() );
7
- if ( ! is_array( $settings ) ) {
8
- $settings = array();
9
- }
10
-
11
- $checkout_field_type = $args['plugin']->get_fields();
12
-
13
- $fields_display_on = array(
14
- 'thank_you' => array( 'label' => __( 'Thank You Page', 'flexible-checkout-fields' ), 'default_value' => '1' ),
15
- 'address' => array( 'label' => __( 'My Account - address', 'flexible-checkout-fields' ), 'default_value' => '1' ),
16
- 'order' => array( 'label' => __( 'My Account - order', 'flexible-checkout-fields' ), 'default_value' => '1' ),
17
- 'emails' => array( 'label' => __( 'Emails', 'flexible-checkout-fields' ), 'default_value' => '1' ),
18
- );
19
-
20
- $fields_display_on_options = array(
21
- 'new_line_before' => array( 'label' => __( 'Display field in the new line', 'flexible-checkout-fields' ), 'custom_fields_only' => false, 'default_value' => '1' ),
22
- 'show_label' => array( 'label' => __( 'Display field\'s label', 'flexible-checkout-fields' ), 'custom_fields_only' => true, 'default_value' => '1' ),
23
- );
24
-
25
- $plugin = $args['plugin'];
26
- $current_section = array();
27
-
28
- foreach ( $plugin->sections as $section ) {
29
- if ( $section['tab'] == $current_tab ) {
30
- $current_section = $section;
31
- }
32
- }
33
- $validation_options = $this->plugin->field_validation->get_validation_options( $current_section['section'] );
34
-
35
- ?>
36
-
37
- <div class="wrap">
38
- <?php $this->admin_notices(); ?>
39
- <?php if ( ! empty( $_POST['option_page'] ) && $_POST['option_page'] === 'inspire_checkout_fields_settings' ): ?>
40
- <?php if ( isset( $_POST['reset_settings'] ) ) : ?>
41
- <div id="message" class="updated fade">
42
- <p><strong><?php _e( 'Settings resetted.', 'flexible-checkout-fields' ); ?></strong></p>
43
- </div>
44
- <?php endif; ?>
45
- <div id="message" class="updated fade">
46
- <p><strong><?php _e( 'Settings saved.', 'flexible-checkout-fields' ); ?></strong></p>
47
- </div>
48
- <?php endif; ?>
49
-
50
- <div id="nav-menus-frame" class="wp-clearfix">
51
- <div id="menu-settings-column" class="metabox-holder add-new-field-box">
52
- <div id="side-sortables" class="accordion-container">
53
- <form method="post" action="" id="add-new-field">
54
- <h3><?php _e( 'Add New Field', 'flexible-checkout-fields' ); ?></h3>
55
-
56
- <div class="add-new-field-content accordion-section-content" style="display:block;">
57
- <div>
58
- <label for="woocommerce_checkout_fields_field_type"><?php _e( 'Field Type', 'flexible-checkout-fields' ); ?></label>
59
-
60
- <select id="woocommerce_checkout_fields_field_type"
61
- name="woocommerce_checkout_fields_field_type">
62
- <?php foreach ( $checkout_field_type as $key => $value ): ?>
63
- <?php if ( $key == 'checkbox' ) continue; ?>
64
- <option value="<?php echo esc_attr($key); ?>"><?php echo esc_html($value['name']); ?></option>
65
- <?php endforeach; ?>
66
- </select>
67
- </div>
68
-
69
- <div id="woocommerce_checkout_fields_field_name_container">
70
- <label for="woocommerce_checkout_fields_field_name"><?php _e( 'Label', 'flexible-checkout-fields' ); ?></label>
71
-
72
- <textarea id="woocommerce_checkout_fields_field_name"
73
- name="woocommerce_checkout_fields_field_name"></textarea>
74
-
75
- <p class="description"><?php _e( 'You can use HTML.', 'flexible-checkout-fields' ); ?></p>
76
- </div>
77
-
78
- <div id="woocommerce_checkout_fields_field_short_name_container">
79
- <label for="woocommerce_checkout_fields_field_short_name"><?php _e( 'Name', 'flexible-checkout-fields' ); ?></label>
80
-
81
- <input type="text" data-changed="0" id="woocommerce_checkout_fields_field_short_name" name="woocommerce_checkout_fields_field_short_name" style="width:100%;"/>
82
-
83
- <p class="description"><?php echo sprintf( __( 'Meta name: %s.', 'flexible-checkout-fields' ), '<span id="woocommerce_checkout_fields_field_short_name_meta"></span>' ); ?></p>
84
- </div>
85
-
86
- <div id="woocommerce_checkout_fields_field_name_container_pro" style="display:none;">
87
- <div class="updated">
88
- <p>
89
- <?php _e( 'This field is available in the PRO version.', 'flexible-checkout-fields' ); ?>
90
- <a href="<?php echo esc_url( apply_filters( 'flexible_checkout_fields/short_url', '#', 'fcf-settings-field-type-upgrade' ) ); ?>" target="_blank">
91
- <?php _e( 'Upgrade to PRO now &rarr;', 'flexible-checkout-fields' ); ?>
92
- </a>
93
- </p>
94
- </div>
95
- </div>
96
-
97
- <div style="display:none;">
98
- <label for="woocommerce_checkout_fields_field_section"><?php _e( 'Section', 'flexible-checkout-fields' ); ?></label>
99
-
100
- <select id="woocommerce_checkout_fields_field_section"
101
- name="woocommerce_checkout_fields_field_section">
102
- <?php foreach ( $this->plugin->sections as $custom_section => $custom_section_data ) : ?>
103
- <?php $selected = selected( $custom_section_data['tab'], $current_tab, false ); ?>
104
- <option value="<?php echo esc_attr( $custom_section_data['section'] ); ?>" <?php echo $selected; ?>><?php echo esc_html( $custom_section_data['tab_title'] ); ?></option>
105
- <?php endforeach; ?>
106
- </select>
107
- </div>
108
-
109
- <p class="list-controls"><?php _e( 'Save changes after adding a field.', 'flexible-checkout-fields' ) ?></p>
110
-
111
- <p class="button-controls wp-clearfix">
112
- <span class="add-to-menu">
113
- <input id="button_add_field" type="button" name=""
114
- value="<?php _e( 'Add Field', 'flexible-checkout-fields' ) ?>"
115
- class="button-secondary right">
116
- </span>
117
- </p>
118
- </div>
119
- </form>
120
- </div>
121
- <?php if ($args['show_ads']): ?>
122
- <?php include( 'settings-ads.php' ); ?>
123
- <?php endif; ?>
124
- <?php do_action( 'flexible_checkout_fields_after_add_new_field' ); ?>
125
- </div>
126
-
127
- <div id="menu-management-liquid">
128
- <div id="menu-management">
129
- <form method="post" action="" id="inspire_checkout_field" class="nav-menus-php">
130
- <?php settings_fields( 'inspire_checkout_fields_settings' ); ?>
131
-
132
- <div class="menu-edit wp-clearfix">
133
- <div id="nav-menu-header">
134
- <div class="major-publishing-actions wp-clearfix">
135
- <h3><?php _e( 'Edit Section', 'flexible-checkout-fields' ) ?></h3>
136
-
137
- <div class="publishing-action">
138
- <span class="spinner"></span>
139
- <input type="submit" name=""
140
- value="<?php _e( 'Save Changes', 'flexible-checkout-fields' ) ?>"
141
- class="button button-primary">
142
- </div>
143
- </div>
144
- </div>
145
-
146
- <?php foreach ( $checkout_fields as $key => $fields ): ?>
147
- <?php if ( 'fields_' . $key != $current_tab ) {
148
- continue;
149
- } ?>
150
- <input class="field_key" type="hidden" name="inspire_checkout_fields[settings][<?php echo $key ?>]" value=""/>
151
- <div id="post-body" class="fields-container">
152
- <h3><?php _e( 'Section Fields', 'flexible-checkout-fields' ) ?><?php //echo $checkout_field_type_name[$key] ?></h3>
153
-
154
- <ul class="fields menu sortable" id="<?php echo esc_attr($key); ?>">
155
- <?php foreach ( $fields as $name => $field ) : ?>
156
- <?php
157
- $field_name_prefix = 'inspire_checkout_fields[settings][' . sanitize_title( $key ) . '][' . sanitize_title( $name ) . ']';
158
- if ( empty( $settings[ $key ][ $name ]['short_name'] ) ) {
159
- $field['short_name'] = $name;
160
- $settings[ $key ][ $name ]['short_name'] = $name;
161
- if ( strpos( $name, $key) === 0 ) {
162
- $settings[ $key ][ $name ]['short_name'] = substr( $name, strlen( $key ) + 1 );
163
- $field['short_name'] = substr( $name, strlen( $key ) + 1 );
164
- }
165
- }
166
- $field_required = ( ! empty( $settings[ $key ][ $name ]['required'] ) && $settings[ $key ][ $name ]['required'] == '1' ) || ( isset( $field['required'] ) && $field['required'] == 1 && empty( $settings[ $key ][ $name ]['required'] ) );
167
- $field_visible = empty( $settings[ $key ][ $name ]['visible'] );
168
- $field_type = 'text';
169
- if ( isset( $field['type'] ) ) {
170
- $field_type = $field['type'];
171
- }
172
- $fcf_field = Flexible_Checkout_Fields_Field::create_with_settings( $field, $settings[ $key ][ $name ], $plugin );
173
- $is_custom_field = $fcf_field->is_custom_field();
174
- if ( $is_custom_field ) {
175
- if ( empty( $settings[ $key ][ $name ]['type'] ) ) {
176
- $settings[ $key ][ $name ]['type'] = Flexible_Checkout_Fields_Field_Type_Settings::FIELD_TYPE_TEXT;
177
- $fcf_field->set_type( Flexible_Checkout_Fields_Field_Type_Settings::FIELD_TYPE_TEXT );
178
- }
179
- }
180
- if ( isset( $checkout_field_type[ $fcf_field->get_type() ] ) ) {
181
- $fcf_field_type = new Flexible_Checkout_Fields_Field_Type_Settings( $checkout_field_type[ $fcf_field->get_type() ] );
182
- } else {
183
- $fcf_field_type = null;
184
- }
185
- ?>
186
- <li
187
- class="field-item menu-item<?php if ( ! $field_visible ): ?> field-hidden<?php endif; ?> fcf-field-<?php echo esc_attr($field_type); ?>"
188
- data-qa-id="field-item"
189
- data-qa-id2="<?php if ( isset( $settings[ $key ][ $name ]['label'] ) ): echo esc_attr( $settings[ $key ][ $name ]['label'] ); elseif ( isset( $field['label'] ) ): echo esc_attr( $field['label'] ); endif; ?>"
190
- >
191
- <div class="menu-item-bar">
192
- <div class="menu-item-handle field-item-handle">
193
- <?php if ( ! empty( $settings[ $key ][ $name ]['custom_field'] ) && $settings[ $key ][ $name ]['custom_field'] == '1' ): ?>
194
- <input class="field_custom_field"
195
- type="hidden"
196
- name="<?php echo esc_attr( $field_name_prefix ); ?>[custom_field]"
197
- value="1"
198
- data-qa-id="field-custom-field"
199
- />
200
- <?php else : ?>
201
- <input class="field_custom_field"
202
- type="hidden"
203
- name="<?php echo esc_attr( $field_name_prefix ); ?>[custom_field]"
204
- value="0"
205
- data-qa-id="field-custom-field"
206
- />
207
- <?php endif; ?>
208
-
209
- <input
210
- class="field_name"
211
- type="hidden"
212
- name="<?php echo esc_attr( $field_name_prefix ); ?>[name]"
213
- value="<?php echo esc_attr($name); ?>"
214
- data-qa-id="field-name"
215
- />
216
-
217
- <span class="item-title">
218
- <span class="item-type">
219
- <?php if ( isset( $checkout_field_type[$field_type] ) ) : ?>
220
- <?php echo esc_html($checkout_field_type[$field_type]['name']); ?>
221
- <?php else : ?>
222
- <?php echo __( ucfirst( $field_type ), 'woocommerce' ); ?>
223
- <?php endif; ?>
224
- </span>
225
- <?php if ( ! empty( $field['label'] ) ): ?>
226
- <?php echo esc_html( strip_tags( $field['label'] ) ); ?>
227
- <?php else: ?>
228
- <?php echo esc_html($name) ?>
229
- <?php endif; ?>
230
-
231
- <?php if ( $field_required ): ?> *<?php endif; ?>
232
- </span>
233
-
234
- <span class="item-controls">
235
- <a href="#" class="item-edit more"><span class="screen-reader-text"><?php _e( 'Edit', 'flexible-checkout-fields' ) ?></span></a>
236
- </span>
237
- </div>
238
- </div>
239
-
240
- <div class="menu-item-settings field-settings">
241
- <div class="nav-tab-wrapper">
242
- <a href="#general"
243
- class="nav-tab nav-tab-active"><?php _e( 'General', 'flexible-checkout-fields' ); ?></a>
244
- <a class="nav-tab"
245
- href="#appearance"><?php _e( 'Appearance', 'flexible-checkout-fields' ); ?></a>
246
- <a class="nav-tab display-options display-options-<?php echo esc_attr($field_type); ?>"
247
- href="#display-options"><?php _e( 'Display On', 'flexible-checkout-fields' ); ?></a>
248
- <?php
249
- $additional_tabs = apply_filters( 'flexible_checkout_fields_field_tabs', array() );
250
- foreach ( $additional_tabs as $additional_tab ) {
251
- ?>
252
- <a class="nav-tab"
253
- href="#<?php echo esc_attr($additional_tab['hash']); ?>"><?php echo esc_html($additional_tab['title']); ?></a>
254
- <?php
255
- }
256
- ?>
257
- </div>
258
- <div class="field-settings-tab-container field-settings-general">
259
- <?php if ( $is_custom_field ): ?>
260
- <?php if ( isset( $checkout_field_type[ $settings[ $key ][ $name ]['type'] ]['description'] ) ) : ?>
261
- <div class="element-<?php echo $settings[ $key ][ $name ]['type']; ?>-description show">
262
- <p class="description"><?php echo $checkout_field_type[ $settings[ $key ][ $name ]['type'] ]['description']; ?></p>
263
- </div>
264
- <?php endif; ?>
265
- <?php endif; ?>
266
-
267
-
268
- <div>
269
- <input type="hidden"
270
- name="<?php echo esc_attr( $field_name_prefix ); ?>[visible]"
271
- value="1"
272
- />
273
-
274
- <label>
275
- <input class="field_visible"
276
- type="checkbox"
277
- name="<?php echo esc_attr( $field_name_prefix ); ?>[visible]"
278
- value="0" <?php if ( $field_visible ): ?> checked<?php endif; ?>
279
- data-qa-id="field-visible"
280
- />
281
- <?php _e( 'Enable Field', 'flexible-checkout-fields' ) ?>
282
- </label>
283
- </div>
284
-
285
- <?php
286
- if ( in_array( $name, $fields_requirement_controlled_by_woocommerce ) ) {
287
- $requirement_controlled_by_woocommerce = true;
288
- } else {
289
- $requirement_controlled_by_woocommerce = false;
290
- }
291
- $disabled = '';
292
- $checked = '';
293
- $style = '';
294
- if ( isset( $settings[ $key ][ $name ]['type'] )
295
- && isset( $checkout_field_type[ $settings[ $key ][ $name ]['type'] ]['has_required'] )
296
- && $checkout_field_type[ $settings[ $key ][ $name ]['type'] ]['has_required'] == false
297
- ) {
298
- $style = ' display:none; ';
299
- } else {
300
- if ( $field_required ) {
301
- $checked = ' checked';
302
- }
303
- }
304
- if ( $requirement_controlled_by_woocommerce ) {
305
- $disabled = ' disabled';
306
- }
307
-
308
- if( empty( $field['class'] ) ) {
309
- $field['class'] = array( 'form-row' );
310
- }
311
- ?>
312
- <div style="<?php echo esc_attr($style); ?>">
313
- <input type="hidden"
314
- name="<?php echo esc_attr( $field_name_prefix ); ?>[required]"
315
- value="0"
316
- />
317
- <label>
318
- <input class="field_required"
319
- type="checkbox"
320
- name="<?php echo esc_attr( $field_name_prefix ); ?>[required]"
321
- value="1" <?php echo $checked; ?> <?php echo $disabled; ?>
322
- data-qa-id="field-required"
323
- />
324
- <?php _e( 'Required Field', 'flexible-checkout-fields' ) ?>
325
- </label>
326
- <?php if ( $requirement_controlled_by_woocommerce ) : ?>
327
- <?php $tip = __( 'Requirement of this field is controlled by WooCommerce and cannot be changed.', 'flexible-checkout-fields' ); ?>
328
- <span class="woocommerce-help-tip" data-tip="<?php echo esc_attr($tip);?>"></span>
329
- <?php endif; ?>
330
- </div>
331
-
332
- <div class="element_<?php echo esc_attr($name) ?> field-type-label">
333
-
334
- <label for="label_<?php echo esc_attr($name) ?>"><?php _e( 'Label', 'flexible-checkout-fields' ) ?></label>
335
-
336
- <textarea data-field="<?php echo esc_attr($name); ?>" class="fcf_label field-name field_label" id="label_<?php echo esc_attr($name) ?>" class="field-name"
337
- name="<?php echo esc_attr( $field_name_prefix ); ?>[label]"
338
- data-qa-id="field-name"
339
- ><?php if ( isset( $settings[ $key ][ $name ]['label'] ) ): echo esc_textarea( $settings[ $key ][ $name ]['label'] );
340
- elseif ( isset( $field['label'] ) ): echo esc_html( $field['label'] ); endif; ?></textarea>
341
-
342
- <p class="description"><?php _e( 'You can use HTML.', 'flexible-checkout-fields' ); ?></p>
343
- </div>
344
-
345
- <?php $short_name_disabled = 'readonly'; ?>
346
- <?php if ( !$is_custom_field ): ?>
347
- <?php $short_name_disabled = 'disabled'; ?>
348
- <?php endif; ?>
349
- <div class="field-type-name">
350
-
351
- <label for="short_name_<?php echo esc_attr($name); ?>"><?php _e( 'Name', 'flexible-checkout-fields' ) ?></label>
352
-
353
- <?php $short_name_value = ''; ?>
354
- <?php if ( isset( $settings[ $key ][ $name ]['short_name'] ) ): $short_name_value = esc_attr( $settings[ $key ][ $name ]['short_name'] ); elseif ( isset( $field['short_name'] ) ): $short_name_value = $field['short_name']; endif; ?>
355
-
356
- <input
357
- required <?php echo $short_name_disabled; ?>
358
- class="short_name field_short_name"
359
- type="text"
360
- name="<?php echo esc_attr( $field_name_prefix ); ?>[short_name]"
361
- value="<?php echo esc_attr($short_name_value); ?>"
362
- data-qa-id="field-short-nem"
363
- />
364
-
365
- <p class="description"><?php echo sprintf( __( 'Meta name: %s.', 'flexible-checkout-fields' ), '<strong>' . '_' . $key . '_' . $short_name_value . '</strong>' ); ?></p>
366
-
367
- </div>
368
-
369
- <div class="field-validation field-validation-<?php echo esc_attr($field_type); ?>">
370
-
371
- <label for="validation_<?php echo esc_attr($name) ?>"><?php _e( 'Validation', 'flexible-checkout-fields' ) ?></label>
372
-
373
- <?php $validation_value = ''; ?>
374
- <?php if ( isset( $settings[ $key ][ $name ]['validation'] ) ): $validation_value = esc_attr( $settings[ $key ][ $name ]['validation'] ); elseif ( isset( $field['validation'] ) ): $short_name_value = $field['validation']; endif; ?>
375
-
376
- <select
377
- class="validation field_validation" type="text"
378
- name="<?php echo esc_attr( $field_name_prefix ); ?>[validation]"
379
- data-qa-id="field-validation"
380
- >
381
- <?php foreach ( $validation_options as $option_value => $option ) : ?>
382
- <?php if ( $is_custom_field && $option_value == '' ) continue; ?>
383
- <option value="<?php echo esc_attr($option_value); ?>" <?php echo selected( $validation_value, $option_value ); ?>><?php echo esc_html($option); ?></option>
384
- <?php endforeach; ?>
385
- </select>
386
- <p class="description"><?php echo __( 'For Post Code validation works only with country.', 'flexible-checkout-fields' ); ?></p>
387
- </div>
388
-
389
- <?php if ( $is_custom_field ): ?>
390
- <?php
391
- $required = '';
392
- if ( $fcf_field_type && $fcf_field_type->has_options() ) {
393
- $required = ' required';
394
- }
395
- ?>
396
- <div class="element-option<?php if ( $fcf_field_type && $fcf_field_type->has_options() ) echo " show" ?>">
397
- <label for="option_<?php echo esc_attr($name); ?>"><?php _e( 'Options', 'flexible-checkout-fields' ) ?></label>
398
-
399
- <textarea class="field_option"
400
- data-field="<?php echo esc_attr($name); ?>" class="fcf_options"
401
- id="option_<?php echo esc_attr($name); ?>"
402
- data-qa-id="field-option"
403
- name="<?php echo esc_attr( $field_name_prefix ); ?>[option]"
404
- <?php echo $required; ?>
405
- ><?php echo isset( $settings[ $key ][ $name ]['option'] ) ? esc_textarea( stripslashes( $settings[ $key ][ $name ]['option'] ) ) : ''; ?></textarea>
406
- <p><?php _e( 'Format: <code>Value : Name</code>. Value will be in the code, name will be visible to the user. One option per line. Example:<br /><code>woman : I am a woman</code><br /><code>man : I am a man</code>', 'flexible-checkout-fields' ) ?></p>
407
- </div>
408
- <?php endif; ?>
409
-
410
- <?php if ( $is_custom_field ): ?>
411
- <?php if ( $fcf_field_type && $fcf_field_type->has_default_value() ): ?>
412
- <div class="default">
413
- <label for="default_<?php echo esc_attr($name); ?>"><?php _e( 'Default value', 'flexible-checkout-fields' ) ?></label>
414
-
415
- <input class="default" id="default_<?php echo esc_attr($name); ?>"
416
- type="text"
417
- name="<?php echo esc_attr( $field_name_prefix ); ?>[default]"
418
- value="<?php echo esc_attr( $fcf_field->get_default() ); ?>"
419
- data-qa-id="default"
420
- />
421
- <p class="description"><?php _e( 'For checkbox enter <strong>Yes</strong> if should be checked by default.', 'flexible-checkout-fields' ); ?></p>
422
- </div>
423
- <?php else : ?>
424
- <input class="default" id="default_<?php echo esc_attr($name); ?>"
425
- type="hidden"
426
- name="<?php echo esc_attr( $field_name_prefix ); ?>[default]"
427
- value="<?php echo esc_attr( $fcf_field->get_default() ); ?>"
428
- data-qa-id="default"
429
- />
430
- <?php endif; ?>
431
- <?php endif; ?>
432
-
433
- <?php if ( $is_custom_field ): ?>
434
- <?php do_action( 'flexible_checkout_fields_settings_html', $key, $name, $settings ); ?>
435
- <div class="field_type">
436
- <label for="type_<?php echo esc_attr($name); ?>"><?php _e( 'Field Type', 'flexible-checkout-fields' ) ?></label>
437
-
438
- <select class="field_type" id="field_type_<?php echo esc_attr($name); ?>"
439
- name="<?php echo esc_attr( $field_name_prefix ); ?>[type]"
440
- disabled
441
- data-qa-id="field-type"
442
- >
443
- <?php foreach ( $checkout_field_type as $type_key => $value ): ?>
444
- <option value="<?php echo esc_attr($type_key); ?>"<?php if ( $settings[ $key ][ $name ]['type'] == $type_key ) {
445
- echo " selected";
446
- } ?>><?php echo esc_html($value['name']) ?></option>
447
- <?php endforeach; ?>
448
- </select>
449
- </div>
450
- <?php else : ?>
451
- <?php if ( !empty( $field['type'] ) ) : ?>
452
- <input
453
- type="hidden"
454
- id="field_type_<?php echo esc_attr($name); ?>"
455
- name="<?php echo esc_attr( $field_name_prefix ); ?>[type]"
456
- value="<?php echo esc_attr($field['type']); ?>"
457
- data-qa-id="field-type"
458
- />
459
- <?php endif; ?>
460
- <?php endif; ?>
461
- </div>
462
- <div class="field-settings-tab-container field-settings-appearance" style="display:none;">
463
- <?php if ( ! $is_custom_field || empty( $checkout_field_type[ $settings[ $key ][ $name ]['type'] ]['disable_placeholder'] ) || ! $checkout_field_type[ $settings[ $key ][ $name ]['type'] ]['disable_placeholder'] ): ?>
464
- <div class="field_placeholder">
465
- <?php
466
- $required = '';
467
- if ( isset( $settings[ $key ][ $name ]['type'] ) && isset( $checkout_field_type[ $settings[ $key ][ $name ]['type'] ]['label_is_required'] ) ) {
468
- $required = ' required';
469
- }
470
- ?>
471
- <label for="placeholder_<?php echo esc_attr($name); ?>"><?php if ( $is_custom_field && isset( $checkout_field_type[ $settings[ $key ][ $name ]['type'] ]['placeholder_label'] ) ): ?><?php echo $checkout_field_type[ $settings[ $key ][ $name ]['type'] ]['placeholder_label']; ?><?php else: ?><?php _e( 'Placeholder', 'flexible-checkout-fields' ) ?><?php endif; ?></label>
472
-
473
- <?php
474
- $disabled = '';
475
- $tip = '';
476
- if ( in_array( $name, array(
477
- 'billing_state', 'billing_country',
478
- 'shipping_state', 'shipping_country'
479
- ) ) ) {
480
- $disabled = 'disabled';
481
- $tip = __( 'This field is address locale dependent and cannot be modified.', 'flexible-checkout-fields' );
482
- ?>
483
- <span class="woocommerce-help-tip" data-tip="<?php echo esc_attr($tip); ?>"></span>
484
- <?php
485
- }
486
- ?>
487
-
488
- <input class="field_placeholder"
489
- <?php echo $disabled; ?> type="text" id="placeholder_<?php echo esc_attr($name); ?>"
490
- name="<?php echo esc_attr( $field_name_prefix ); ?>[placeholder]"
491
- value="<?php if ( ! empty( $settings[ $key ][ $name ]['placeholder'] ) ): echo esc_attr( $settings[ $key ][ $name ]['placeholder'] );
492
- else: echo isset( $field['placeholder'] ) ? esc_attr( $field['placeholder'] ) : ''; endif; ?>" <?php echo $required; ?>
493
- data-qa-id="field-placeholder"
494
- />
495
- </div>
496
- <?php endif; ?>
497
- <div class="field-class">
498
- <label for="class_<?php echo esc_attr($name); ?>"><?php _e( 'CSS Class', 'flexible-checkout-fields' ) ?></label>
499
- <input class="field_class" type="text" id="class_<?php echo esc_attr($name); ?>"
500
- name="<?php echo esc_attr( $field_name_prefix ); ?>[class]"
501
- value="<?php if ( ! empty( $settings[ $key ][ $name ]['class'] ) ): echo esc_attr($settings[ $key ][ $name ]['class']);
502
- else: if ( ! empty( $field['class'] ) ) {
503
- echo esc_attr( implode( ' ', $field['class'] ) );
504
- } endif; ?>"
505
- data-qa-id="field-class"
506
- />
507
- </div>
508
-
509
- <?php do_action( 'flexible_checkout_fields_setting_appearance_html', $key, $name, $settings ); ?>
510
-
511
- </div>
512
-
513
-
514
- <div class="field-settings-tab-container field-settings-display-options" style="display:none;">
515
- <p><strong><?php _e( 'Pages/emails', 'flexible-checkout-fields' ) ?></strong></p>
516
-
517
- <?php foreach ( $fields_display_on as $display_on_field_key => $display_on_field ) : ?>
518
- <?php if ( $display_on_field_key == 'address' && !in_array( $key, array( 'billing', 'shipping' ) ) ) continue; ?>
519
- <div class="fcf-display-on-<?php echo esc_attr($display_on_field_key); ?>">
520
- <?php
521
- $checked = ' checked';
522
- $style = '';
523
- if ( isset( $settings[ $key ][ $name ]['display_on_' . $display_on_field_key ] )
524
- && $settings[ $key ][ $name ]['display_on_' . $display_on_field_key ] == '0'
525
- ) {
526
- $checked = '';
527
- }
528
- ?>
529
- <input type="hidden"
530
- name="<?php echo esc_attr( $field_name_prefix ); ?>[display_on_<?php echo $display_on_field_key; ?>]"
531
- value="0"/>
532
-
533
- <label>
534
- <input class="field_required"
535
- type="checkbox"
536
- name="<?php echo esc_attr( $field_name_prefix ); ?>[display_on_<?php echo $display_on_field_key; ?>]"
537
- value="1" <?php echo $checked; ?>
538
- data-qa-id="field-display-on-address"
539
- />
540
- <?php echo $display_on_field['label']; ?>
541
- </label>
542
- </div>
543
- <?php endforeach; ?>
544
-
545
- <?php if ( in_array( $key, array( 'billing', 'shipping' ) ) ) : ?>
546
- <p><strong><?php _e( 'Formatting on pages/emails', 'flexible-checkout-fields' ) ?></strong></p>
547
-
548
- <?php
549
- if ( $fcf_field::FIELD_TYPE_STATE === $fcf_field->get_type() ) {
550
- $fields_display_on_options[ $fcf_field::DISPLAY_OPTION_STATE_CODE ] = array(
551
- 'label' => __( 'Display state abbreviations', 'flexible-checkout-fields' ),
552
- 'custom_fields_only' => false,
553
- 'default_value' => '0',
554
- );
555
- $fields_display_on_options[ $fcf_field::DISPLAY_OPTION_STATE_COMMA_BEFORE ] = array(
556
- 'label' => __( 'Display a comma before, if the field is not in the new line', 'flexible-checkout-fields' ),
557
- 'custom_fields_only' => false,
558
- 'default_value' => '0',
559
- );
560
- } else {
561
- unset( $fields_display_on_options[ $fcf_field::DISPLAY_OPTION_STATE_CODE ] );
562
- unset( $fields_display_on_options[ $fcf_field::DISPLAY_OPTION_STATE_COMMA_BEFORE ] );
563
- }
564
- ?>
565
-
566
- <?php foreach ( $fields_display_on_options as $display_on_field_key => $display_on_field ) : ?>
567
- <?php if ( $display_on_field['custom_fields_only'] && ! $fcf_field->is_custom_field() ) continue; ?>
568
- <?php if ( $display_on_field_key == $fcf_field::DISPLAY_OPTION_STATE_CODE ) : ?>
569
- <p><strong><?php _e( 'State / County formatting', 'flexible-checkout-fields' ) ?></strong></p>
570
- <?php endif; ?>
571
- <div class="fcf-display-on-<?php echo esc_attr( $display_on_field_key ); ?>">
572
- <?php
573
- $field_name = $fcf_field->prepare_display_on_option_name( $display_on_field_key );
574
- $default_setting_value = isset( $display_on_field['default_value'] ) ? $display_on_field['default_value'] : '1';
575
- $checked = $fcf_field->get_field_setting( $field_name, $default_setting_value ) === '1' ? 'checked' : '';
576
- ?>
577
- <input type="hidden"
578
- name="<?php echo esc_attr( $field_name_prefix ); ?>[<?php echo $field_name; ?>]"
579
- value="0"/>
580
-
581
- <label>
582
- <input class="field_required"
583
- type="checkbox"
584
- name="<?php echo esc_attr( $field_name_prefix ); ?>[<?php echo $field_name; ?>]"
585
- value="1" <?php echo $checked; ?>
586
- data-qa-id="field-display-on-address"
587
- />
588
- <?php echo $display_on_field['label']; ?>
589
- </label>
590
- </div>
591
- <?php endforeach; ?>
592
-
593
- <?php endif; ?>
594
-
595
- </div>
596
-
597
- <?php do_action( 'flexible_checkout_fields_field_tabs_content', $key, $name, $field, $settings ); ?>
598
- <?php if ( $is_custom_field ) : ?>
599
- <a class="remove-field" data-field="<?php echo esc_attr($name); ?>"
600
- href="#"><?php _e( 'Delete Field', 'flexible-checkout-fields' ) ?></a>
601
- <?php endif; ?>
602
- </div>
603
-
604
- </li>
605
- <?php endforeach; ?>
606
- </ul>
607
- </div>
608
-
609
- <?php do_action( 'flexible_checkout_fields_section_settings', $key, $settings ); ?>
610
-
611
- <?php endforeach; ?>
612
-
613
- <div id="nav-menu-footer">
614
- <div class="major-publishing-actions wp-clearfix">
615
- <input type="hidden"
616
- name="<?php echo esc_attr( Flexible_Checkout_Fields_Settings::SECURITY_NONCE_FIELD ); ?>"
617
- value="<?php echo esc_attr( wp_create_nonce( Flexible_Checkout_Fields_Settings::SECURITY_NONCE_NAME ) ); ?>">
618
- <input type="submit" name=""
619
- value="<?php _e( 'Save Changes', 'flexible-checkout-fields' ) ?>"
620
- class="button button-primary">
621
- <input type="submit"
622
- value="<?php _e( 'Reset Section Settings', 'flexible-checkout-fields' ); ?>"
623
- class="button reset_settings" id="submit" name="reset_settings">
624
- <span class="spinner"></span>
625
- </div>
626
- </div>
627
- </div>
628
- </form>
629
- </div>
630
- </div>
631
- </div>
632
- </div>
633
-
634
- <script type="text/javascript">
635
-
636
- var fcf_all_sections = <?php echo json_encode( $plugin->sections, JSON_FORCE_OBJECT ); ?>;
637
- var fcf_current_section = <?php echo json_encode( $current_section, JSON_FORCE_OBJECT ); ?>;
638
- var fcf_field_type = <?php echo json_encode( $checkout_field_type ); ?>
639
-
640
- jQuery(document).ready(function () {
641
-
642
- String.prototype.escape = function() {
643
- var tagsToReplace = {
644
- '&': '&amp;',
645
- '<': '&lt;',
646
- '>': '&gt;'
647
- };
648
- return this.replace(/[&<>]/g, function(tag) {
649
- return tagsToReplace[tag] || tag;
650
- });
651
- };
652
-
653
- function validate_field_name( field ) {
654
- var return_false = false;
655
- jQuery('.short_name').each(function() {
656
- var field_name = jQuery(this).attr('name').escape();
657
- var field_settings = jQuery(this).closest('.field-item');
658
- if ( field_name != jQuery(field).attr('name').escape() ) {
659
- if ( jQuery(field).val().toLowerCase() == jQuery(this).val().toLowerCase() ) {
660
- var message = '<?php echo sprintf(__( 'Invalid field name: %s. The name already exists.', 'flexible-checkout-fields' ), '[field]' ); ?>';
661
- message = message.replace( '[field]', jQuery(field).val() );
662
- alert( message );
663
- return_false = true;
664
- return false;
665
- }
666
- }
667
- })
668
- if ( return_false ) {
669
- return false;
670
- }
671
- if ( jQuery(field).val() == '' ) {
672
- alert( '<?php _e( 'Field name can not be empty!', 'flexible-checkout-fields' ); ?>' );
673
- return false;
674
- }
675
- if ( jQuery(field).val() !== stringToSlug(jQuery(field).val()) ) {
676
- alert( '<?php _e( 'Field name should contains only lowercase letters, numbers and underscore sign.', 'flexible-checkout-fields' ); ?>' );
677
- return false;
678
- }
679
- if ( !isNaN( jQuery(field).val() ) ) {
680
- alert( '<?php _e( 'Field name can not be number!', 'flexible-checkout-fields' ); ?>' );
681
- return false;
682
- }
683
- return true;
684
- }
685
-
686
- function generate_short_name( short_name ) {
687
- var unique = false;
688
- var count = 0;
689
- var tmp_short_name = short_name;
690
- while ( !unique ) {
691
- unique = true;
692
- jQuery('.short_name').each(function(){
693
- if ( jQuery(this).val() == tmp_short_name ) {
694
- unique = false;
695
- count++;
696
- tmp_short_name = short_name + '_' + count.toString();
697
- }
698
- })
699
- }
700
- return tmp_short_name;
701
- }
702
-
703
- jQuery('.sortable').sortable({
704
- handle: '.field-item-handle',
705
- placeholder: 'sortable-placeholder',
706
- opacity: 0.7,
707
- activate: function (event, ui) {
708
- ui.item.find('.field-settings').hide();
709
- }
710
- });
711
-
712
- function strip_tags( html ) {
713
- return jQuery('<p>' + html + '</p>').text();
714
- }
715
-
716
- function htmlEncode(value){
717
- //create a in-memory div, set it's inner text(which jQuery automatically encodes)
718
- //then grab the encoded contents back out. The div never exists on the page.
719
- return jQuery('<div/>').text(value).html();
720
- }
721
-
722
- function htmlDecode(value){
723
- return jQuery('<div/>').html(value).text();
724
- }
725
-
726
- // Add New Field
727
- jQuery("#button_add_field").click(function (e) {
728
- e.preventDefault();
729
-
730
- var field_label = jQuery(this).closest('form').find('#woocommerce_checkout_fields_field_name').val();
731
- var field_section = jQuery(this).closest('form').find('#woocommerce_checkout_fields_field_section').val();
732
- var field_type = jQuery(this).closest('form').find('#woocommerce_checkout_fields_field_type').val();
733
- var field_option = jQuery(this).closest('form').find('#woocommerce_checkout_fields_field_option').val();
734
-
735
- var field_short_name = jQuery(this).closest('form').find('#woocommerce_checkout_fields_field_short_name').val().escape();
736
- var field_slug = field_section + '_' + field_short_name;
737
-
738
- // Proceed if Name (label) is filled
739
- if ( field_label ) {
740
- if ( !validate_field_name( jQuery(this).closest('form').find('#woocommerce_checkout_fields_field_short_name') ) ) {
741
- return false;
742
- }
743
- var html = '';
744
- html += '<li class="field-item menu-item element_' + field_slug + ' just-added fcf-field-' + field_type + '" data-qa-id="field-item" data-qa-id2="' + htmlEncode( field_label ) + '">';
745
- //html += '<li class="field-item menu-item">';
746
- html += '<div class="menu-item-bar">';
747
- html += '<div class="menu-item-handle field-item-handle">';
748
- html += '<input class="field_custom_field" type="hidden" name="inspire_checkout_fields[settings][' + field_section + '][' + field_slug + '][custom_field]" value="1" data-qa-id="field-custom-field">';
749
- html += '<span class="item-title">';
750
- html += '<span class="item-type">';
751
- html += fcf_field_type[field_type]['name'];
752
- html += '</span>';
753
- html += htmlEncode( strip_tags(field_label) );
754
- html += '</span>';
755
- html += '<span class="item-controls">';
756
- html += '<a href="#" class="item-edit more"><span class="screen-reader-text"><?php _e( 'Edit', 'flexible-checkout-fields' ) ?></span></a>';
757
- html += '</span>';
758
- html += '</div>';
759
- html += '</div>';
760
- html += '<div class="menu-item-settings field-settings">';
761
-
762
- html += '<div class="nav-tab-wrapper">';
763
- html += '<a href="#general" class="nav-tab nav-tab-active"><?php _e( 'General', 'flexible-checkout-fields' ); ?></a>';
764
- html += '<a class="nav-tab" href="#appearance"><?php _e( 'Appearance', 'flexible-checkout-fields' ); ?></a>';
765
- html += '<a class="nav-tab display-options display-options-' + field_type + '" href="#display-options"><?php _e( 'Display On', 'flexible-checkout-fields' ); ?></a>';
766
- <?php
767
- $additional_tabs = apply_filters( 'flexible_checkout_fields_field_tabs', array() );
768
- foreach ( $additional_tabs as $additional_tab ) {
769
- ?>
770
- html += '<a class="nav-tab" href="#<?php echo esc_attr($additional_tab['hash']); ?>"><?php echo esc_html($additional_tab['title']); ?></a>';
771
- <?php
772
- }
773
- ?>
774
- html += '</div>';
775
- html += '<div class="field-settings-tab-container field-settings-general">';
776
-
777
- <?php foreach ( $checkout_field_type as $key => $value ) : ?>
778
- <?php if ( isset( $value['description'] ) ) : ?>
779
- html += '<div class="element-<?php echo esc_attr($key); ?>-description">';
780
- html += '<p class="description"><?php echo esc_html($value['description']); ?></p>';
781
- html += '</div>';
782
- <?php endif; ?>
783
- <?php endforeach; ?>
784
- html += '<div>';
785
- html += '<input type="hidden" name="inspire_checkout_fields[settings][' + field_section + '][' + field_slug + '][visible]" value="1">';
786
- html += '<label>';
787
- html += '<input class="field_visible" type="checkbox" name="inspire_checkout_fields[settings][' + field_section + '][' + field_slug + '][visible]" value="0" checked data-qa-id="field-visible">';
788
- html += '<?php _e( 'Enable Field', 'flexible-checkout-fields' ) ?>';
789
- html += '</label>';
790
- html += '</div>';
791
-
792
- html += '<input type="hidden" name="inspire_checkout_fields[settings][' + field_section + '][' + field_slug + '][required]" value="0">';
793
- if (field_type !== 'info') { // do not show required field for html/info type
794
- html += '<div>';
795
- html += '<label>';
796
- html += '<input class="field_required" type="checkbox" name="inspire_checkout_fields[settings][' + field_section + '][' + field_slug + '][required]" value="1" data-qa-id="field-required">';
797
- html += '<?php _e( 'Required Field', 'flexible-checkout-fields' ) ?>';
798
- html += '</label>';
799
- html += '</div>';
800
- }
801
-
802
- html += '<div class="field-type-label">';
803
- html += '<label class="fcf_label" for="label_' + field_slug + '"><?php _e( 'Label', 'flexible-checkout-fields' ) ?></label>';
804
- html += '<textarea class="field_label" data-field="' + field_slug + '" id="label_' + field_slug + '" class="fcf_label field-name" name="inspire_checkout_fields[settings][' + field_section + '][' + field_slug + '][label]" data-qa-id="field-label">' + field_label + '</textarea>';
805
- html += '<p class="description"><?php _e( 'You can use HTML.', 'flexible-checkout-fields' ); ?></p>';
806
- html += '</div>';
807
-
808
- html += '<div class="field-type-name">';
809
- html += ' <label for="short_name_' + field_slug + '"><?php _e( 'Name', 'flexible-checkout-fields' ) ?></label>';
810
- html += ' <input required class="field_short_name short_name" type="text" name="inspire_checkout_fields[settings][' + field_section + '][' + field_slug + '][short_name]" value="' + field_short_name + '" data-qa-id="field-short-name" readonly />';
811
- html += ' <p class="description"><?php echo __( 'Meta name: ', 'flexible-checkout-fields' ); ?><strong>_' + field_section + '_' + field_short_name + '</strong></p>';
812
- html += ' </div>';
813
-
814
- html += '<div class="field-validation field-validation-' + field_type + '">';
815
- html += ' <label for="validation_' + field_slug + '"><?php _e( 'Validation', 'flexible-checkout-fields' ) ?></label>';
816
- html += ' <select class="validation field_validation" type="text" name="inspire_checkout_fields[settings][' + field_section + '][' + field_slug + '][validation]" data-qa-id="field-validation">';
817
- <?php unset( $validation_options[''] ); ?>
818
- <?php foreach ( $validation_options as $option_value => $option ) : ?>
819
- <?php if ( $option_value == '' ) continue; ?>
820
- html += ' <option value="<?php echo esc_attr($option_value); ?>"><?php echo esc_html($option); ?></option>';
821
- <?php endforeach; ?>
822
- html += ' </select>';
823
- html += ' <p class="description"><?php echo __( 'For Post Code validation works only with country.', 'flexible-checkout-fields' ); ?></p>';
824
- html += '</div>';
825
-
826
- let default_value_input_type = 'hidden';
827
- if ( fcf_field_type[field_type].has_default_value !== undefined && fcf_field_type[field_type].has_default_value ) {
828
- html += '<div class="default">';
829
- html += ' <label for="default_' + field_slug + '"><?php _e( 'Default value',
830
- 'flexible-checkout-fields' ) ?></label>';
831
- html += ' <input class="default" id="default_' + field_slug + '"';
832
- html += ' type="text"';
833
- html += ' name="inspire_checkout_fields[settings][' + field_section + '][' + field_slug + '][default]"';
834
- html += ' value=""';
835
- html += ' data-qa-id="default"';
836
- html += ' />';
837
- html += ' <p class="description"><?php _e( 'For checkbox enter <strong>Yes</strong> if should by checked by default.',
838
- 'flexible-checkout-fields' ); ?></p>';
839
- html += '</div>';
840
- } else {
841
- html += ' <input class="default" id="default_' + field_slug + '"';
842
- html += ' type="hidden"';
843
- html += ' name="inspire_checkout_fields[settings][' + field_section + '][' + field_slug + '][default]"';
844
- html += ' value=""';
845
- html += ' data-qa-id="default"';
846
- html += ' />';
847
- }
848
-
849
- <?php do_action( 'flexible_checkout_fields_settings_js_html' ); ?>
850
-
851
- html += '<div class="field_type">';
852
- html += '<label for="type_' + field_slug + '"><?php _e( 'Field Type', 'flexible-checkout-fields' ) ?></label>';
853
- html += '<select class="field_type" id="field_type_' + field_slug + '" name="inspire_checkout_fields[settings][' + field_section + '][' + field_slug + '][type]" disabled data-qa-id="field-type">' + printSelectTypeOptions(field_type) + '</select>';
854
- html += '</div>';
855
-
856
- html += '</div>';
857
- html += '<div class="field-settings-tab-container field-settings-appearance" style="display:none;">';
858
-
859
- html += '<div class="field_placeholder">';
860
- html += '<label for="placeholder_' + field_slug + '"><?php _e( 'Placeholder', 'flexible-checkout-fields' ) ?></label>';
861
- html += '<input class="field_placeholder" type="text" id="placeholder_' + field_slug + '" name="inspire_checkout_fields[settings][' + field_section + '][' + field_slug + '][placeholder]" value="" data-qa-id="field-placeholder" />';
862
- html += '</div>';
863
- html += '<div class="field-class">';
864
- html += '<label for="class_' + field_slug + '"><?php _e( 'CSS Class', 'flexible-checkout-fields' ) ?></label>';
865
- html += '<input class="field_class" type="text" id="class_' + field_slug + '" name="inspire_checkout_fields[settings][' + field_section + '][' + field_slug + '][class]" value="form-row" data-qa-id="field-class" />';
866
- html += '</div>';
867
-
868
- html += '</div>';
869
-
870
- html += '<div class="field-settings-tab-container field-settings-display-options" style="display:none;">';
871
- html += '<p><strong><?php _e( 'Formatting on pages/emails', 'flexible-checkout-fields' ) ?></strong></p>';
872
-
873
- <?php foreach ( $fields_display_on as $display_on_field_key => $display_on_field ) : ?>
874
- <?php if ( $display_on_field_key === 'address' && !in_array( $current_tab, array( 'fields_billing', 'fields_shipping' ) ) ) continue; ?>
875
- html += '<div class=" fcf-display-on-<?php echo esc_attr($display_on_field_key); ?>">';
876
- html += '<input type="hidden" name="inspire_checkout_fields[settings][' + field_section + '][' + field_slug + '][display_on_<?php echo esc_attr($display_on_field_key); ?>]" value="0"/>';
877
- html += '<label>';
878
- html += '<input class="field_required" type="checkbox" name="inspire_checkout_fields[settings][' + field_section + '][' + field_slug + '][display_on_<?php echo esc_attr($display_on_field_key); ?>]" value="1" checked data-qa-id="field-display-on-address" />';
879
- html += '<?php echo esc_attr($display_on_field['label']); ?>';
880
- html += '</label>';
881
- html += '</div>';
882
- <?php endforeach; ?>
883
-
884
- <?php if ( in_array( $current_tab, array( 'fields_billing', 'fields_shipping' ) ) ) : ?>
885
- html += '<hr />';
886
- html += '<p><strong><?php _e( 'Pages/emails', 'flexible-checkout-fields' ) ?></strong></p>';
887
- <?php foreach ( $fields_display_on_options as $display_on_field_key => $display_on_field ) : ?>
888
- html += '<div class=" fcf-display-on-option-<?php echo esc_attr($display_on_field_key); ?>">';
889
- html += '<input type="hidden" name="inspire_checkout_fields[settings][' + field_section + '][' + field_slug + '][display_on_option_<?php echo esc_attr($display_on_field_key); ?>]" value="0"/>';
890
- html += '<label>';
891
- html += '<input class="field_required" type="checkbox" name="inspire_checkout_fields[settings][' + field_section + '][' + field_slug + '][display_on_option_<?php echo esc_attr($display_on_field_key); ?>]" value="1" checked data-qa-id="field-display-on-address" />';
892
- html += '<?php echo esc_attr($display_on_field['label']); ?>';
893
- html += '</label>';
894
- html += '</div>';
895
- <?php endforeach; ?>
896
- <?php endif; ?>
897
-
898
- html += '</div>';
899
-
900
- <?php do_action( 'flexible_checkout_fields_field_tabs_content_js' ); ?>
901
-
902
- html += '<a class="remove-field" href="#"><?php _e( 'Delete Field', 'flexible-checkout-fields' ) ?></a>';
903
- html += '</li>';
904
- html += '';
905
-
906
- jQuery('#' + field_section).append(html);
907
- jQuery('.element_' + field_slug + ' .element-file-description').hide();
908
-
909
- // Add Field Options or Value or Placeholder
910
- switch (field_type) {
911
-
912
- <?php do_action( 'flexible_checkout_fields_settings_js_options' ); ?>
913
-
914
- default:
915
- jQuery('.element_' + field_slug + ' .field_placeholder label').html('<?php _e( 'Placeholder', 'flexible-checkout-fields' ); ?>');
916
- jQuery('.element_' + field_slug + ' .field_placeholder').show();
917
- break;
918
- }
919
- jQuery(document).trigger("fcf:add_field", [ field_slug ] );
920
- jQuery(this).closest('form').find('#woocommerce_checkout_fields_field_name').val('');
921
- jQuery(this).closest('form').find('#woocommerce_checkout_fields_field_short_name').val('');
922
- jQuery(this).closest('form').find('#woocommerce_checkout_fields_field_short_name_meta').html('');
923
- jQuery(this).closest('form').find('#woocommerce_checkout_fields_field_short_name').attr('data-changed',0);
924
- }
925
- // Display Alert if Name (label) is NOT filled
926
- else {
927
- alert('<?php _e( 'Field label can not be empty!', 'flexible-checkout-fields' ) ?>');
928
- }
929
- });
930
-
931
- // Toggle field settings
932
- jQuery(document).on('click', '.field-item a.more', function (e) {
933
- e.preventDefault();
934
- jQuery(this).closest('.field-item').find('.field-settings').slideToggle('fast');
935
- jQuery(this).closest('.field-item').toggleClass('menu-item-edit-active');
936
- if (jQuery(this).closest('.field-item').hasClass('menu-item-edit-active')) {
937
- jQuery(this).closest('.field-item').attr('data-qa-id','field-item-active');
938
- }
939
- else {
940
- jQuery(this).closest('.field-item').attr('data-qa-id','field-item');
941
- }
942
- });
943
-
944
- jQuery(document).on('change', '#woocommerce_checkout_fields_field_type', function (e) {
945
- <?php if (!is_flexible_checkout_fields_pro_active()) : ?>
946
- if ( jQuery(this).val() == 'text' || jQuery(this).val() == 'textarea' ) {
947
- jQuery('#woocommerce_checkout_fields_field_name_container').show();
948
- jQuery('#woocommerce_checkout_fields_field_short_name_container').show();
949
- jQuery('#woocommerce_checkout_fields_field_name_container_pro').hide();
950
- jQuery('#button_add_field').prop('disabled',false);
951
- }
952
- else {
953
- jQuery('#woocommerce_checkout_fields_field_name_container').hide();
954
- jQuery('#woocommerce_checkout_fields_field_short_name_container').hide();
955
- jQuery('#woocommerce_checkout_fields_field_name_container_pro').show();
956
- jQuery('#button_add_field').prop('disabled',true);
957
- }
958
- <?php endif; ?>
959
- })
960
-
961
- var current_field_name_value = '';
962
- jQuery(document).on( 'keydown', '#woocommerce_checkout_fields_field_short_name', function (e) {
963
- current_field_name_value = jQuery(this).val().escape();
964
- });
965
-
966
- jQuery(document).on( 'keyup', '#woocommerce_checkout_fields_field_short_name', function (e) {
967
- if ( current_field_name_value != jQuery(this).val().escape() ) {
968
- jQuery(this).attr('data-changed', 1);
969
- jQuery(this).change();
970
- current_field_name_value = jQuery(this).val().escape();
971
- }
972
- });
973
-
974
- jQuery(document).on( 'change', '#woocommerce_checkout_fields_field_short_name', function (e) {
975
- var field_section = jQuery(this).closest('form').find('#woocommerce_checkout_fields_field_section').val();
976
- jQuery('#woocommerce_checkout_fields_field_short_name_meta').html( '_' + field_section + '_' + jQuery(this).val().escape());
977
- })
978
-
979
- jQuery(document).on( 'keyup', '#woocommerce_checkout_fields_field_name', function (e) {
980
- if ( jQuery('#woocommerce_checkout_fields_field_short_name').attr('data-changed') == 0 ) {
981
- var field_label = jQuery(this).val();
982
- var field_name = generate_short_name( stringToSlug(field_label).substr(0, 20) );
983
- current_field_name_value = field_name;
984
- jQuery('#woocommerce_checkout_fields_field_short_name').val(field_name);
985
- jQuery('#woocommerce_checkout_fields_field_short_name').change();
986
- }
987
- })
988
-
989
- // Toggle between placeholder or value
990
- jQuery(document).on('change', '.field-item .field-settings #woocommerce_checkout_fields_field_type', function (e) {
991
- switch (jQuery(this).val()) {
992
- default:
993
- jQuery(this).closest('.field-item').find('.element-option').removeClass('show');
994
- jQuery(this).closest('.field-item').find('.field_placeholder label').html('<?php _e( 'Placeholder', 'flexible-checkout-fields' ); ?>');
995
- jQuery(this).closest('.field-item').find('.field_placeholder').show();
996
- break;
997
- }
998
- e.preventDefault();
999
- });
1000
-
1001
- window.fcf_do_remove_field = false;
1002
- // Remove field
1003
- jQuery(document).on('click', '.field-item a.remove-field', function (e) {
1004
- e.preventDefault();
1005
- var toRemove = jQuery(this).closest('li');
1006
- window.fcf_do_remove_field = true;
1007
- jQuery(this).trigger('fcf:pre_remove_field');
1008
- if ( window.fcf_do_remove_field == true ) {
1009
- var message = '<?php echo sprintf( __( 'Do you really want to delete this field: %s? Deleting a field remove it from all orders.', 'flexible-checkout-fields' ), '[field_name]' ); ?>';
1010
- message = message.replace('[field_name]', toRemove.find('.field-name').val());
1011
- if (confirm(message)) {
1012
- jQuery(this).trigger('fcf:remove_field');
1013
- toRemove.remove();
1014
- }
1015
- }
1016
- });
1017
-
1018
- // When Saving Form Remove disabled from Selects
1019
- jQuery('form').bind('submit', function (event) {
1020
- var return_false = false;
1021
- jQuery('li.just-added .short_name').each(function(){
1022
- var field_settings = jQuery(this).closest('.field-item');
1023
- var custom_field = jQuery(field_settings).find('.field_custom_field');
1024
- if ( jQuery(custom_field).length && jQuery(custom_field).val() == '1' ) {
1025
- var validate_field = validate_field_name( this );
1026
- if ( !validate_field ) {
1027
- return_false = true;
1028
- return false;
1029
- }
1030
- }
1031
- });
1032
- if ( return_false ) {
1033
- return false;
1034
- }
1035
- jQuery(this).find('select').prop('disabled', false);
1036
- jQuery(this).find('.field_required').prop('disabled', false);
1037
- jQuery(this).find('.major-publishing-actions').find('.spinner').css('visibility', 'visible');
1038
- jQuery('.flexible_checkout_fields_add_rule select').each(function () {
1039
- jQuery(this).attr('disabled', 'disabled');
1040
- });
1041
- });
1042
-
1043
- // Activate Spinner on Save
1044
- jQuery('input[type="submit"]').on('click', function (event) {
1045
- jQuery('#inspire_checkout_field [required]').each(function () {
1046
- if (jQuery(this).val() === '' && jQuery(this).is(':hidden')) {
1047
- jQuery(this).css('border-color', 'red' );
1048
- var classes = jQuery(this).closest('.field-settings-tab-container').attr('class').split(' ');
1049
- var tab = classes[1].split('-')[2];
1050
- jQuery(this).closest('.field-settings').find('.field-settings-tab-container').hide();
1051
- jQuery(this).closest('.field-settings').find('.nav-tab-wrapper a').removeClass('nav-tab-active');
1052
- jQuery(this).closest('.field-settings').find('a[href="#' + tab + '"]').addClass('nav-tab-active');
1053
- jQuery('.' + classes[1] ).show();
1054
- jQuery(this).closest('li').find('.field-settings').slideDown();
1055
- }
1056
- });
1057
- if (jQuery(this).hasClass("reset_settings")) {
1058
- if (!confirm('<?php _e( 'Do you really want to reset section settings?. Resetting a section remove all added fields from orders.', 'flexible-checkout-fields' ); ?>')) {
1059
- return false;
1060
- }
1061
- }
1062
- });
1063
- });
1064
-
1065
- <?php do_action( 'flexible_checkout_fields_java_script', $settings ); ?>
1066
-
1067
- jQuery(document).on('click', '.field-settings .nav-tab-wrapper > a', function () {
1068
- jQuery(this).parent().find('a').each(function () {
1069
- jQuery(this).removeClass('nav-tab-active');
1070
- });
1071
- jQuery(this).addClass('nav-tab-active');
1072
- jQuery(this).parent().parent().find('.field-settings-tab-container').each(function () {
1073
- jQuery(this).hide();
1074
- });
1075
- var href = jQuery(this).attr("href");
1076
- var hash = href.substr(href.indexOf("#") + 1);
1077
- jQuery(this).parent().parent().find('.field-settings-' + hash).each(function () {
1078
- jQuery(this).show();
1079
- });
1080
- jQuery(this).blur();
1081
- return false;
1082
- });
1083
-
1084
- function printSelectTypeOptions(selected) {
1085
- var index;
1086
- var select;
1087
- var sel = "";
1088
-
1089
- var type = {
1090
- <?php foreach ( $checkout_field_type as $key => $value ) : ?>
1091
- <?php echo esc_attr($key); ?>:
1092
- '<?php echo esc_attr($value['name']); ?>',
1093
- <?php endforeach; ?>
1094
- }
1095
- ;
1096
-
1097
- jQuery.each(type, function (key, value) {
1098
- if (key == selected) sel = " selected";
1099
- select += '<option value="' + key + '"' + sel + '>' + value + '</option>';
1100
- sel = "";
1101
- });
1102
-
1103
- return select;
1104
- }
1105
-
1106
- function stringToSlug(str) {
1107
- str = str.replace(/^\s+|\s+$/g, '');
1108
- str = str.toLowerCase();
1109
-
1110
- var from = "àáäâèéëêìíïîòóöôùúüûñçęóąśłżźćń·/_,:;";
1111
- var to = "aaaaeeeeiiiioooouuuunceoaslzxcn------";
1112
- for (var i = 0, l = from.length; i < l; i++) {
1113
- str = str.replace(new RegExp(from.charAt(i), 'g'), to.charAt(i));
1114
- }
1115
-
1116
- str = str.replace(/[^a-z0-9 -]/g, '') // remove invalid chars
1117
- .replace(/\s+/g, '_') // collapse whitespace and replace by -
1118
- .replace(/-+/g, '_'); // collapse dashes
1119
-
1120
- return str;
1121
- }
1122
-
1123
- </script>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
classes/views/settings-pro.php DELETED
@@ -1,26 +0,0 @@
1
- <?php if ( ! defined( 'ABSPATH' ) ) exit; ?>
2
-
3
- <div class="notice notice-success" style="margin-left: 0.5rem;">
4
- <h2><?php _e( 'Buy Flexible Checkout Fields PRO to use Custom Sections:', 'flexible-checkout-fields' ); ?></h2>
5
- <ul>
6
- <li>
7
- <span class="dashicons dashicons-yes"></span>
8
- <?php _e( 'Add fields anywhere in the WooCommerce checkout form.', 'flexible-checkout-fields' ); ?>
9
- </li>
10
- <li>
11
- <span class="dashicons dashicons-yes"></span>
12
- <?php _e( 'Get more fields: checkboxes, radios buttons, dropdowns, file uploads, date & time or color pickers and more.', 'flexible-checkout-fields' ); ?>
13
- </li>
14
- <li>
15
- <span class="dashicons dashicons-yes"></span>
16
- <?php _e( 'Conditionally show or hide fields based on products or categories.', 'flexible-checkout-fields' ); ?>
17
- </li>
18
- </ul>
19
- <p>
20
- <a class="button button-primary button-hero"
21
- href="<?php echo esc_url( apply_filters( 'flexible_checkout_fields/short_url', '#', 'fcf-settings-section-custom-upgrade' ) ); ?>"
22
- target="_blank">
23
- <?php _e( 'Get Flexible Checkout Fields PRO now &rarr;', 'flexible-checkout-fields' ); ?>
24
- </a>
25
- </p>
26
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
classes/views/settings-settings.php DELETED
@@ -1,40 +0,0 @@
1
- <?php
2
- global $woocommerce;
3
- ?>
4
- <form action="" method="post">
5
- <?php settings_fields( 'inspire_checkout_fields_settings' ); ?>
6
-
7
- <?php if (!empty($_POST['option_page']) && $_POST['option_page'] === 'inspire_checkout_fields_settings'): ?>
8
- <div id="message" class="updated fade"><p><strong><?php _e( 'Settings saved.', 'flexible-checkout-fields' ); ?></strong></p></div>
9
- <?php endif; ?>
10
-
11
- <h3><?php _e( 'Settings', 'flexible-checkout-fields' ); ?></h3>
12
-
13
- <table class="form-table">
14
- <tbody>
15
- <tr valign="top">
16
- <th class="titledesc" scope="row">
17
- <label for="woocommerce_checkout_fields_css"><?php _e( 'CSS jQuery UI', 'flexible-checkout-fields' ); ?></label>
18
- </th>
19
-
20
- <td class="forminp forminp-text">
21
- <input value="0" id="woocommerce_checkout_fields_css" name="inspire_checkout_fields[css_disable]" type="hidden" />
22
-
23
- <label><input class="regular-checkbox" value="1" id="woocommerce_checkout_fields_css" name="inspire_checkout_fields[css_disable]" type="checkbox" <?php if( $this->getSettingValue('css_disable') == 1) echo('checked'); ?> /> <?php _e( 'Disable jquery-ui.css on the frontend', 'flexible-checkout-fields' ); ?></label>
24
-
25
- <p class="description"><?php _e( 'Remember that some fields, i.e. datepicker use jQuery UI CSS. The plugin adds a default CSS but sometimes it can create some visual glitches.', 'flexible-checkout-fields' ); ?></p>
26
-
27
- </td>
28
- </tr>
29
- <?php do_action( 'flexible_checkout_fields_settings' ); ?>
30
- </table>
31
-
32
- <?php do_action('woocommerce_checkout_fields_after_display_tab_settings'); ?>
33
-
34
- <p class="submit">
35
- <input type="hidden"
36
- name="<?php echo esc_attr( Flexible_Checkout_Fields_Settings::SECURITY_NONCE_FIELD ); ?>"
37
- value="<?php echo esc_attr( wp_create_nonce( Flexible_Checkout_Fields_Settings::SECURITY_NONCE_NAME ) ); ?>">
38
- <input type="submit" value="<?php _e( 'Save Changes', 'flexible-checkout-fields' ); ?>" class="button button-primary" id="submit" name="">
39
- </p>
40
- </form>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
classes/views/settings-tabs.php DELETED
@@ -1,18 +0,0 @@
1
- <h2 class="nav-tab-wrapper">
2
- <?php foreach ( $args['tabs'] as $tab_key => $tab_caption ): ?>
3
- <?php $active = $args['current_tab'] == $tab_key ? 'nav-tab-active' : '';?>
4
- <a class="nav-tab <?= $active ?>" href="?page=inspire_checkout_fields_settings&tab=<?= $tab_key ?>"><?php echo $tab_caption; ?></a>
5
- <?php endforeach; ?>
6
- </h2>
7
- <?php if ( ! is_flexible_checkout_fields_pro_active() ) : ?>
8
- <p>
9
- <?php echo sprintf(
10
- __( 'Read the %sconfiguration manual &rarr;%s', 'flexible-checkout-fields' ),
11
- '<a href="' . esc_url( apply_filters( 'flexible_checkout_fields/short_url', '#', 'fcf-settings-section-tabs-docs' ) ) . '" target="_blank">',
12
- '</a>'
13
- ); ?>
14
- </p>
15
- <?php endif; ?>
16
- <?php if ( function_exists('icl_object_id') ) : ?>
17
- <p><?php echo sprintf( __( 'WPML detected. Read %sthis instructions if you want to translate Flexible Checkout Fields. &rarr;%s', 'flexible-checkout-fields' ), '<a href="https://wpml.org/faq/string-translation-default-language-not-english/" target="_blank">', '</a>' ); ?></p>
18
- <?php endif; ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
flexible-checkout-fields.php CHANGED
@@ -3,15 +3,15 @@
3
  Plugin Name: Flexible Checkout Fields
4
  Plugin URI: https://www.wpdesk.net/products/flexible-checkout-fields-pro-woocommerce/
5
  Description: Manage your WooCommerce checkout fields. Change order, labels, placeholders and add new fields.
6
- Version: 2.9.2
7
  Author: WP Desk
8
  Author URI: https://www.wpdesk.net/
9
  Text Domain: flexible-checkout-fields
10
  Domain Path: /lang/
11
- Requires at least: 4.9
12
  Tested up to: 5.6
13
- WC requires at least: 4.5
14
- WC tested up to: 5.0
15
  Requires PHP: 7.0
16
 
17
  Copyright 2017 WP Desk Ltd.
@@ -39,14 +39,14 @@ if ( ! defined( 'ABSPATH' ) ) {
39
 
40
 
41
  /* THIS VARIABLE CAN BE CHANGED AUTOMATICALLY */
42
- $plugin_version = '2.9.2';
43
 
44
  /*
45
  * Update when conditions are met:
46
  * - major version: no compatibility (disables dependent plugins)
47
  * - minor version: compatibility problems (displays notice in dependent plugins)
48
  */
49
- $plugin_version_dev = '1.0';
50
 
51
  define( 'FLEXIBLE_CHECKOUT_FIELDS_VERSION', $plugin_version );
52
  define( 'FLEXIBLE_CHECKOUT_FIELDS_VERSION_DEV', $plugin_version_dev );
3
  Plugin Name: Flexible Checkout Fields
4
  Plugin URI: https://www.wpdesk.net/products/flexible-checkout-fields-pro-woocommerce/
5
  Description: Manage your WooCommerce checkout fields. Change order, labels, placeholders and add new fields.
6
+ Version: 3.0.0
7
  Author: WP Desk
8
  Author URI: https://www.wpdesk.net/
9
  Text Domain: flexible-checkout-fields
10
  Domain Path: /lang/
11
+ Requires at least: 5.2
12
  Tested up to: 5.6
13
+ WC requires at least: 4.6
14
+ WC tested up to: 5.1
15
  Requires PHP: 7.0
16
 
17
  Copyright 2017 WP Desk Ltd.
39
 
40
 
41
  /* THIS VARIABLE CAN BE CHANGED AUTOMATICALLY */
42
+ $plugin_version = '3.0.0';
43
 
44
  /*
45
  * Update when conditions are met:
46
  * - major version: no compatibility (disables dependent plugins)
47
  * - minor version: compatibility problems (displays notice in dependent plugins)
48
  */
49
+ $plugin_version_dev = '1.1';
50
 
51
  define( 'FLEXIBLE_CHECKOUT_FIELDS_VERSION', $plugin_version );
52
  define( 'FLEXIBLE_CHECKOUT_FIELDS_VERSION_DEV', $plugin_version_dev );
lang/flexible-checkout-fields.pot CHANGED
@@ -1,604 +1,485 @@
 
 
1
  msgid ""
2
  msgstr ""
3
- "Project-Id-Version: Flexible Checkout Fields\n"
4
- "Report-Msgid-Bugs-To: \n"
5
- "Last-Translator: Grzegorz Rola <grola@wpdesk.pl>\n"
6
- "Language-Team: Maciej Swoboda <maciej.swoboda@gmail.com>\n"
7
  "MIME-Version: 1.0\n"
8
  "Content-Type: text/plain; charset=UTF-8\n"
9
  "Content-Transfer-Encoding: 8bit\n"
10
- "POT-Creation-Date: 2021-02-11T22:15:22+00:00\n"
11
- "PO-Revision-Date: 2021-02-11T22:15:22+00:00\n"
12
- "Language: \n"
13
- "X-Poedit-Basepath: ..\n"
14
- "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
15
- "X-Poedit-SourceCharset: UTF-8\n"
16
- "X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
17
- "X-Poedit-SearchPath-0: .\n"
18
- "X-Poedit-SearchPathExcluded-0: *.js\n"
19
- "X-Poedit-WPHeader: flexible-checkout-fields.php\n"
20
-
21
- #: /builds/wpdesk/flexible-checkout-fields/classes/views/settings-ads.php:19
22
- msgid "If you want to continue using Flexible Checkout Fields for free, %splease add a review%s. You will help us support the free version. Thank you."
23
- msgstr ""
24
-
25
- #: /builds/wpdesk/flexible-checkout-fields/classes/views/settings-fields.php:14
26
- msgid "Thank You Page"
27
- msgstr ""
28
-
29
- #: /builds/wpdesk/flexible-checkout-fields/classes/views/settings-fields.php:15
30
- msgid "My Account - address"
31
- msgstr ""
32
-
33
- #: /builds/wpdesk/flexible-checkout-fields/classes/views/settings-fields.php:16
34
- msgid "My Account - order"
35
- msgstr ""
36
-
37
- #: /builds/wpdesk/flexible-checkout-fields/classes/views/settings-fields.php:17
38
- msgid "Emails"
39
- msgstr ""
40
-
41
- #: /builds/wpdesk/flexible-checkout-fields/classes/views/settings-fields.php:21
42
- msgid "Display field in the new line"
43
- msgstr ""
44
-
45
- #: /builds/wpdesk/flexible-checkout-fields/classes/views/settings-fields.php:22
46
- msgid "Display field's label"
47
- msgstr ""
48
-
49
- #: /builds/wpdesk/flexible-checkout-fields/classes/views/settings-fields.php:83
50
- #: /builds/wpdesk/flexible-checkout-fields/classes/views/settings-fields.php:365
51
- msgid "Meta name: %s."
52
- msgstr ""
53
-
54
- #: /builds/wpdesk/flexible-checkout-fields/classes/views/settings-fields.php:327
55
- msgid "Requirement of this field is controlled by WooCommerce and cannot be changed."
56
- msgstr ""
57
-
58
- #: /builds/wpdesk/flexible-checkout-fields/classes/views/settings-fields.php:386
59
- #: /builds/wpdesk/flexible-checkout-fields/classes/views/settings-fields.php:823
60
- msgid "For Post Code validation works only with country."
61
- msgstr ""
62
-
63
- #: /builds/wpdesk/flexible-checkout-fields/classes/views/settings-fields.php:481
64
- msgid "This field is address locale dependent and cannot be modified."
65
- msgstr ""
66
-
67
- #: /builds/wpdesk/flexible-checkout-fields/classes/views/settings-fields.php:551
68
- msgid "Display state abbreviations"
69
- msgstr ""
70
-
71
- #: /builds/wpdesk/flexible-checkout-fields/classes/views/settings-fields.php:556
72
- msgid "Display a comma before, if the field is not in the new line"
73
- msgstr ""
74
-
75
- #: /builds/wpdesk/flexible-checkout-fields/classes/views/settings-fields.php:660
76
- msgid "Invalid field name: %s. The name already exists."
77
  msgstr ""
78
 
79
- #: /builds/wpdesk/flexible-checkout-fields/classes/views/settings-fields.php:811
80
- msgid "Meta name: "
81
  msgstr ""
82
 
83
- #: /builds/wpdesk/flexible-checkout-fields/classes/views/settings-fields.php:1009
84
- msgid "Do you really want to delete this field: %s? Deleting a field remove it from all orders."
85
  msgstr ""
86
 
87
- #: /builds/wpdesk/flexible-checkout-fields/classes/views/settings-tabs.php:10
88
- msgid "Read the %sconfiguration manual &rarr;%s"
89
  msgstr ""
90
 
91
- #: /builds/wpdesk/flexible-checkout-fields/classes/views/settings-tabs.php:17
92
- msgid "WPML detected. Read %sthis instructions if you want to translate Flexible Checkout Fields. &rarr;%s"
93
  msgstr ""
94
 
95
- #: /builds/wpdesk/flexible-checkout-fields/classes/display-options.php:103
96
- #: /builds/wpdesk/flexible-checkout-fields/classes/user-profile.php:207
97
  msgid "Additional Information"
98
  msgstr ""
99
 
100
- #: /builds/wpdesk/flexible-checkout-fields/classes/field-options.php:58
101
  msgid "Select option"
102
  msgstr ""
103
 
104
- #: /builds/wpdesk/flexible-checkout-fields/classes/filed-validation.php:30
105
- msgid "%s is a required field."
106
- msgstr ""
107
-
108
- #: /builds/wpdesk/flexible-checkout-fields/classes/filed-validation.php:73
109
  msgid "Default"
110
  msgstr ""
111
 
112
- #: /builds/wpdesk/flexible-checkout-fields/classes/filed-validation.php:74
 
113
  msgid "None"
114
  msgstr ""
115
 
116
- #: /builds/wpdesk/flexible-checkout-fields/classes/filed-validation.php:75
117
  msgid "Email"
118
  msgstr ""
119
 
120
- #: /builds/wpdesk/flexible-checkout-fields/classes/filed-validation.php:76
 
121
  msgid "Phone"
122
  msgstr ""
123
 
124
- #: /builds/wpdesk/flexible-checkout-fields/classes/filed-validation.php:79
125
- msgid "Post code"
 
126
  msgstr ""
127
 
128
- #: /builds/wpdesk/flexible-checkout-fields/classes/plugin.php:308
 
129
  msgid "Billing"
130
  msgstr ""
131
 
132
- #: /builds/wpdesk/flexible-checkout-fields/classes/plugin.php:315
 
133
  msgid "Shipping"
134
  msgstr ""
135
 
136
- #: /builds/wpdesk/flexible-checkout-fields/classes/plugin.php:322
 
137
  msgid "Order"
138
  msgstr ""
139
 
140
- #: /builds/wpdesk/flexible-checkout-fields/classes/plugin.php:337
 
141
  msgid "Single Line Text"
142
  msgstr ""
143
 
144
- #: /builds/wpdesk/flexible-checkout-fields/classes/plugin.php:341
 
145
  msgid "Paragraph Text"
146
  msgstr ""
147
 
148
- #: /builds/wpdesk/flexible-checkout-fields/classes/plugin.php:349
149
- #: /builds/wpdesk/flexible-checkout-fields/classes/plugin.php:354
 
150
  msgid "Checkbox"
151
  msgstr ""
152
 
153
- #: /builds/wpdesk/flexible-checkout-fields/classes/plugin.php:359
154
  msgid "Radio button"
155
  msgstr ""
156
 
157
- #: /builds/wpdesk/flexible-checkout-fields/classes/plugin.php:364
 
158
  msgid "Select (Drop Down)"
159
  msgstr ""
160
 
161
- #: /builds/wpdesk/flexible-checkout-fields/classes/plugin.php:369
 
162
  msgid "Multi-select"
163
  msgstr ""
164
 
165
- #: /builds/wpdesk/flexible-checkout-fields/classes/plugin.php:374
 
166
  msgid "Date"
167
  msgstr ""
168
 
169
- #: /builds/wpdesk/flexible-checkout-fields/classes/plugin.php:379
 
170
  msgid "Time"
171
  msgstr ""
172
 
173
- #: /builds/wpdesk/flexible-checkout-fields/classes/plugin.php:384
 
174
  msgid "Color Picker"
175
  msgstr ""
176
 
177
- #: /builds/wpdesk/flexible-checkout-fields/classes/plugin.php:389
 
178
  msgid "Headline"
179
  msgstr ""
180
 
181
- #: /builds/wpdesk/flexible-checkout-fields/classes/plugin.php:394
 
182
  msgid "HTML"
183
  msgstr ""
184
 
185
- #: /builds/wpdesk/flexible-checkout-fields/classes/plugin.php:399
 
186
  msgid "File Upload"
187
  msgstr ""
188
 
189
- #: /builds/wpdesk/flexible-checkout-fields/classes/plugin.php:968
190
- msgid "Advanced"
191
- msgstr ""
192
-
193
- #: /builds/wpdesk/flexible-checkout-fields/classes/plugin.php:972
194
- msgid "Pricing"
195
- msgstr ""
196
-
197
- #: /builds/wpdesk/flexible-checkout-fields/classes/plugin.php:1050
198
  msgid "Uploading file..."
199
  msgstr ""
200
 
201
- #: /builds/wpdesk/flexible-checkout-fields/classes/plugin.php:1097
202
- msgid "Close"
203
- msgstr ""
204
-
205
- #: /builds/wpdesk/flexible-checkout-fields/classes/plugin.php:1098
206
- msgid "Today"
207
- msgstr ""
208
-
209
- #: /builds/wpdesk/flexible-checkout-fields/classes/plugin.php:1101
210
- msgid "Next"
211
- msgstr ""
212
-
213
- #: /builds/wpdesk/flexible-checkout-fields/classes/plugin.php:1102
214
- msgid "Previous"
215
- msgstr ""
216
-
217
- #: /builds/wpdesk/flexible-checkout-fields/classes/plugin.php:1123
218
- #: /builds/wpdesk/flexible-checkout-fields/classes/settings.php:165
219
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-builder/src/Plugin/AbstractPlugin.php:198
220
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-helper/src/Page/SettingsPage.php:46
221
  msgid "Settings"
222
  msgstr ""
223
 
224
- #: /builds/wpdesk/flexible-checkout-fields/classes/plugin.php:1124
225
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-builder/src/Plugin/AbstractPlugin.php:194
226
  msgid "Docs"
227
  msgstr ""
228
 
229
- #: /builds/wpdesk/flexible-checkout-fields/classes/plugin.php:1125
230
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-builder/src/Plugin/AbstractPlugin.php:191
231
  msgid "Support"
232
  msgstr ""
233
 
234
- #: /builds/wpdesk/flexible-checkout-fields/classes/plugin.php:1129
235
  msgid "Upgrade"
236
  msgstr ""
237
 
238
- #: /builds/wpdesk/flexible-checkout-fields/classes/settings.php:49
239
- #: /builds/wpdesk/flexible-checkout-fields/classes/settings.php:52
240
- #: /builds/wpdesk/flexible-checkout-fields/classes/settings.php:55
241
- #: /builds/wpdesk/flexible-checkout-fields/classes/settings.php:63
242
- msgid "Flexible Checkout Fields"
243
- msgstr ""
244
-
245
- #: /builds/wpdesk/flexible-checkout-fields/classes/settings.php:117
246
- msgid "Checkout Fields Settings"
247
- msgstr ""
248
-
249
- #: /builds/wpdesk/flexible-checkout-fields/classes/settings.php:117
250
- msgid "Checkout Fields"
251
- msgstr ""
252
-
253
- #: /builds/wpdesk/flexible-checkout-fields/classes/settings.php:139
254
- msgid "Order Notes"
255
- msgstr ""
256
-
257
- #: /builds/wpdesk/flexible-checkout-fields/classes/settings.php:174
258
- msgid "Custom Sections"
259
- msgstr ""
260
-
261
- #: /builds/wpdesk/flexible-checkout-fields/classes/settings.php:285
262
- msgid "Flexible Checkout Fields: security check error. Fields not saved!"
263
- msgstr ""
264
-
265
- #: /builds/wpdesk/flexible-checkout-fields/classes/settings.php:317
266
- msgid "You cannot use this field name: %s, for field: %s."
267
- msgstr ""
268
-
269
- #: /builds/wpdesk/flexible-checkout-fields/classes/tracker.php:332
270
  msgid "Opt-in"
271
  msgstr ""
272
 
273
- #: /builds/wpdesk/flexible-checkout-fields/classes/tracker.php:336
274
  msgid "Opt-out"
275
  msgstr ""
276
 
277
- #: /builds/wpdesk/flexible-checkout-fields/classes/user-profile.php:100
 
278
  msgid "Yes"
279
  msgstr ""
280
 
281
- #: /builds/wpdesk/flexible-checkout-fields/classes/user-profile.php:101
 
282
  msgid "No"
283
  msgstr ""
284
 
285
- #: /builds/wpdesk/flexible-checkout-fields/templates/notices/review.php:19
286
- msgid "Thanks for using the free version of Flexible Checkout Fields!"
287
- msgstr ""
288
-
289
- #: /builds/wpdesk/flexible-checkout-fields/templates/notices/review.php:26
290
- msgid "We are glad that (with our little help %1$s) the shop is now better suited to the needs. We will be grateful for the rating and feedback. %2$sIt will take less than reading this and it will help us a lot!"
291
- msgstr ""
292
-
293
- #: /builds/wpdesk/flexible-checkout-fields/templates/notices/review.php:37
294
- msgid "Add review"
295
- msgstr ""
296
-
297
- #: /builds/wpdesk/flexible-checkout-fields/templates/notices/review.php:41
298
- msgid "I added review, do not show again"
299
- msgstr ""
300
-
301
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-basic-requirements/src/Basic_Requirement_Checker.php:181
302
- msgid "The &#8220;%s&#8221; plugin cannot run on PHP versions older than %s. Please contact your host and ask them to upgrade."
303
- msgstr ""
304
-
305
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-basic-requirements/src/Basic_Requirement_Checker.php:184
306
- msgid "The &#8220;%s&#8221; plugin cannot run on WordPress versions older than %s. Please update WordPress."
307
- msgstr ""
308
-
309
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-basic-requirements/src/Basic_Requirement_Checker.php:187
310
- msgid "The &#8220;%s&#8221; plugin cannot run on WooCommerce versions older than %s. Please update WooCommerce."
311
- msgstr ""
312
-
313
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-basic-requirements/src/Basic_Requirement_Checker.php:190
314
- msgid "The &#8220;%s&#8221; plugin cannot run without OpenSSL module version at least %s. Please update OpenSSL module."
315
  msgstr ""
316
 
317
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-basic-requirements/src/Basic_Requirement_Checker.php:277
318
- msgid "The &#8220;%s&#8221; plugin requires at least %s version of %s to work correctly. Please update it"
319
  msgstr ""
320
 
321
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-basic-requirements/src/Basic_Requirement_Checker.php:349
322
- msgid "The &#8220;%s&#8221; plugin cannot run without %s active. Please install and activate %s plugin."
323
- msgstr ""
324
-
325
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-basic-requirements/src/Basic_Requirement_Checker.php:399
326
- msgid "The &#8220;%s&#8221; plugin requires free %s plugin. <a href=\"%s\">Install %s →</a>"
327
  msgstr ""
328
 
329
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-basic-requirements/src/Basic_Requirement_Checker.php:405
330
- msgid "The &#8220;%s&#8221; plugin requires activating %s plugin. <a href=\"%s\">Activate %s →</a>"
331
  msgstr ""
332
 
333
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-basic-requirements/src/Basic_Requirement_Checker.php:446
334
- msgid "The &#8220;%s&#8221; plugin cannot run without %s php module installed. Please contact your host and ask them to install %s."
335
  msgstr ""
336
 
337
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-basic-requirements/src/Basic_Requirement_Checker.php:471
338
- msgid "The &#8220;%s&#8221; plugin cannot run without %s php setting set to %s. Please contact your host and ask them to set %s."
339
  msgstr ""
340
 
341
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-basic-requirements/src/Basic_Requirement_Checker_With_Update_Disable.php:29
342
- msgid "The &#8220;%s&#8221; plugin disables temporarily as required %s plugin is being upgraded."
343
  msgstr ""
344
 
345
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-logs/src/WP/WPCapture.php:23
346
- msgid "Can not enable WP Desk Debug log! Cannot create directory %s or this directory is not writeable!"
347
  msgstr ""
348
 
349
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-logs/src/WP/WPCapture.php:36
350
- msgid "Can not enable WP Desk Debug log! Cannot create file %s!"
351
  msgstr ""
352
 
353
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-logs/src/deprecated/wpdesk-logger.php:59
354
- msgid "Disabled"
355
  msgstr ""
356
 
357
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-logs/src/deprecated/wpdesk-logger.php:59
358
- msgid "Emergency"
359
  msgstr ""
360
 
361
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-logs/src/deprecated/wpdesk-logger.php:59
362
- msgid "Alert"
363
  msgstr ""
364
 
365
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-logs/src/deprecated/wpdesk-logger.php:59
366
- msgid "Critical"
367
  msgstr ""
368
 
369
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-logs/src/deprecated/wpdesk-logger.php:59
370
- msgid "Error"
371
  msgstr ""
372
 
373
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-logs/src/deprecated/wpdesk-logger.php:59
374
- msgid "Warning"
375
  msgstr ""
376
 
377
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-logs/src/deprecated/wpdesk-logger.php:59
378
- msgid "Notice"
379
  msgstr ""
380
 
381
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-logs/src/deprecated/wpdesk-logger.php:59
382
- msgid "Info"
383
  msgstr ""
384
 
385
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-logs/src/deprecated/wpdesk-logger.php:59
386
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-helper/src/Integration/LogsIntegration.php:36
387
- msgid "Debug"
388
  msgstr ""
389
 
390
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-helper/src/Integration/LogsIntegration.php:37
391
- msgid "WP Desk Debug Log"
392
  msgstr ""
393
 
394
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-helper/src/Integration/LogsIntegration.php:64
395
- msgid "Writes error log to %s."
 
396
  msgstr ""
397
 
398
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-helper/src/Integration/LogsIntegration.php:92
399
- msgid "WP Desk Debug Log is enabled. %1$sPlease disable it after testing%2$s."
 
400
  msgstr ""
401
 
402
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-helper/src/Integration/TrackerIntegration.php:51
403
- msgid "Plugin usage tracking"
 
404
  msgstr ""
405
 
406
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-helper/src/Integration/TrackerIntegration.php:52
407
- msgid "Allow WP Desk to track plugin usage"
408
  msgstr ""
409
 
410
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-helper/src/Integration/TrackerIntegration.php:76
411
- msgid "No sensitive data is tracked, %sread more%s."
412
  msgstr ""
413
 
414
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-helper/src/Page/LibraryDebugPage.php:29
415
- msgid "Library report"
 
416
  msgstr ""
417
 
418
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-helper/src/HelperRemoveNotice.php:43
419
- msgid "We recommend to <a href=\"%s\">deactivate and remove</a> the \"WP Desk Helper\" plugin as it is no longer required by WP Desk plugins"
420
  msgstr ""
421
 
422
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-helper/src/HelperRemoveNotice.php:56
423
- msgid "We recommend to <a href=\"%s\">remove</a> the \"WP Desk Helper\" plugin as it is no longer required by WP Desk plugins"
424
  msgstr ""
425
 
426
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-helper/src/UpgradeSoonNotice.php:62
427
- msgid "The PHP version your shop is currently using is deprecated. We highly advise to upgrade it to at least %s since the support for this one will be dropped soon."
428
  msgstr ""
429
 
430
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-helper/src/UpgradeSoonNotice.php:65
431
- msgid "The WooCommerce version your shop is currently using is deprecated. We highly advise to upgrade it to at least %s since the support for this one will be dropped soon."
432
  msgstr ""
433
 
434
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-helper/src/UpgradeSoonNotice.php:68
435
- msgid "The WordPress version your shop is currently using is deprecated. We highly advise to upgrade it to at least %s since the support for this one will be dropped soon."
436
  msgstr ""
437
 
438
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager-menu.php:59
439
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager-menu.php:64
440
- msgid "Save Changes"
441
  msgstr ""
442
 
443
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager-menu.php:77
444
- msgid "API Key Activation"
445
  msgstr ""
446
 
447
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager-menu.php:78
448
- msgid "API Key Status"
449
  msgstr ""
450
 
451
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager-menu.php:79
452
- msgid "API Subscription Key"
453
  msgstr ""
454
 
455
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager-menu.php:80
456
- msgid "API Subscription email"
457
  msgstr ""
458
 
459
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager-menu.php:83
460
- msgid "API Key Deactivation"
 
461
  msgstr ""
462
 
463
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager-menu.php:84
464
- msgid "Deactivate API Key"
465
  msgstr ""
466
 
467
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager-menu.php:149
468
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/License/Action/LicenseActivation.php:141
469
- msgid "Plugin activated. "
470
  msgstr ""
471
 
472
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager-menu.php:154
473
- msgid "Connection failed to the API Key server. Try again later."
474
  msgstr ""
475
 
476
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager-menu.php:226
477
- msgid "The subscription could not be deactivated. Use the Subscription Deactivation tab to manually deactivate the subscription before activating a new subscription."
478
  msgstr ""
479
 
480
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager-menu.php:247
481
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/License/Action/LicenseDeactivation.php:31
482
- msgid "Plugin subscription deactivated. "
483
  msgstr ""
484
 
485
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager.php:144
486
- msgid "Subscription Activation"
487
  msgstr ""
488
 
489
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager.php:145
490
- msgid "Subscription Deactivation"
491
  msgstr ""
492
 
493
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager.php:209
494
- msgid " <a target='_blank' href='%s'>Enter a valid subscription key for automatic updates.</a>"
495
  msgstr ""
496
 
497
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager.php:333
498
- msgid "The %s%s%s API Key has not been activated, so you won't be supported and your plugin won't be updated! %sClick here%s to activate the API key and the plugin."
499
  msgstr ""
500
 
501
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager.php:350
502
- msgid "<b>Warning!</b> You're blocking external requests which means you won't be able to get %s updates. Please add %s to %s."
503
  msgstr ""
504
 
505
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-plugin-update.php:333
506
- msgid "The API key for %s has expired. You can reactivate or purchase a API key from your account <a href=\"%s\" target=\"_blank\">dashboard</a>."
507
  msgstr ""
508
 
509
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-plugin-update.php:344
510
- msgid "The subscription for %s is on-hold. You can reactivate the subscription from your account <a href=\"%s\" target=\"_blank\">dashboard</a>."
511
  msgstr ""
512
 
513
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-plugin-update.php:355
514
- msgid "The subscription for %s has been cancelled. You can renew the subscription from your account <a href=\"%s\" target=\"_blank\">dashboard</a>. A new API key will be emailed to you after your order has been completed."
515
  msgstr ""
516
 
517
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-plugin-update.php:366
518
- msgid "The subscription for %s has expired. You can reactivate the subscription from your account <a href=\"%s\" target=\"_blank\">dashboard</a>."
519
  msgstr ""
520
 
521
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-plugin-update.php:377
522
- msgid "The subscription for %s has been suspended. You can reactivate the subscription from your account <a href=\"%s\" target=\"_blank\">dashboard</a>."
523
  msgstr ""
524
 
525
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-plugin-update.php:388
526
- msgid "The subscription for %s is still pending. You can check on the status of the subscription from your account <a href=\"%s\" target=\"_blank\">dashboard</a>."
527
  msgstr ""
528
 
529
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-plugin-update.php:399
530
- msgid "The subscription for %s has been placed in the trash and will be deleted soon. You can purchase a new subscription from your account <a href=\"%s\" target=\"_blank\">dashboard</a>."
531
  msgstr ""
532
 
533
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-plugin-update.php:410
534
- msgid "A subscription for %s could not be found. You can purchase a subscription from your account <a href=\"%s\" target=\"_blank\">dashboard</a>."
535
  msgstr ""
536
 
537
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-plugin-update.php:421
538
- msgid "A API key for %s could not be found. Maybe you forgot to enter a API key when setting up %s, or the key was deactivated in your account. You can reactivate or purchase a subscription key from your account <a href=\"%s\" target=\"_blank\">dashboard</a>."
539
  msgstr ""
540
 
541
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-plugin-update.php:432
542
- msgid "Download permission for %s has been revoked possibly due to a API key or subscription expiring. You can reactivate or purchase a API key from your account <a href=\"%s\" target=\"_blank\">dashboard</a>."
 
543
  msgstr ""
544
 
545
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-plugin-update.php:443
546
- msgid "%s has not been activated. Go to the settings page and enter the API key and subscription email to activate %s."
547
  msgstr ""
548
 
549
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-plugin-update.php:454
550
- msgid "You changed the subscription for %s, so you will need to enter your new API Key in the settings page. The API Key should have arrived in your email inbox, if not you can get it by logging into your account <a href=\"%s\" target=\"_blank\">dashboard</a>."
551
  msgstr ""
552
 
553
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/License/Action/LicenseActivation.php:132
554
- msgid "Connection failed to the Subscription Key API server. Try again later."
555
  msgstr ""
556
 
557
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/License/views/class-wpdesk-helper-list-table.php:27
558
- msgid "No WP Desk plugins found."
559
  msgstr ""
560
 
561
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/License/views/class-wpdesk-helper-list-table.php:39
562
- msgid "Plugin"
563
  msgstr ""
564
 
565
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/License/views/class-wpdesk-helper-list-table.php:39
566
- msgid "Subscription Status"
567
  msgstr ""
568
 
569
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/License/views/class-wpdesk-helper-list-table.php:39
570
- msgid "Subscription Data"
571
  msgstr ""
572
 
573
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/License/views/class-wpdesk-helper-list-table.php:56
574
- msgid "Deactivated"
575
  msgstr ""
576
 
577
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/License/views/class-wpdesk-helper-list-table.php:58
578
- msgid "Activated"
579
  msgstr ""
580
 
581
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/License/views/licenses.php:37
582
- msgid "Get your subscription keys <a href=\"%s\" target=\"_blank\">here</a>. You can activate/deactivate API keys <strong>unlimited times on different domains</strong> as long as you have an active subscription."
583
  msgstr ""
584
 
585
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/LicensePage.php:41
586
- msgid "Subscriptions"
587
  msgstr ""
588
 
589
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/views/tracker-connect.php:15
590
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/views/tracker-notice.php:19
591
- msgid "Hey %s,"
592
  msgstr ""
593
 
594
- #: /builds/wpdesk/flexible-checkout-fields/vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/views/tracker-deactivate.php:11
595
- msgid "You are deactivating %s plugin."
596
  msgstr ""
597
 
598
- #: /builds/wpdesk/flexible-checkout-fields/views/settings-field-advanced.php:7
599
- msgid "%sGo PRO &rarr;%s to add conditional logic based on products/categories, fields and shipping method."
600
  msgstr ""
601
 
602
- #: /builds/wpdesk/flexible-checkout-fields/views/settings-field-pricing.php:7
603
- msgid "%sGo PRO &rarr;%s In this tab it is possible to add a fixed or percentage price to the field and set the tax on this price."
 
604
  msgstr ""
1
+ # Copyright (C) 2021 WP Desk
2
+ # This file is distributed under the same license as the Flexible Checkout Fields plugin.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Flexible Checkout Fields 3.0.0\n"
6
+ "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/flexible-checkout-fields\n"
7
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8
+ "Language-Team: LANGUAGE <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
+ "POT-Creation-Date: 2021-03-01T12:16:46+00:00\n"
13
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
+ "X-Generator: WP-CLI 2.4.0\n"
15
+ "X-Domain: flexible-checkout-fields\n"
16
+
17
+ #. Plugin Name of the plugin
18
+ #: classes/settings.php:27
19
+ #: classes/settings.php:30
20
+ #: classes/settings.php:33
21
+ #: classes/settings.php:41
22
+ #: templates/views/admin-page.php:20
23
+ msgid "Flexible Checkout Fields"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24
  msgstr ""
25
 
26
+ #. Plugin URI of the plugin
27
+ msgid "https://www.wpdesk.net/products/flexible-checkout-fields-pro-woocommerce/"
28
  msgstr ""
29
 
30
+ #. Description of the plugin
31
+ msgid "Manage your WooCommerce checkout fields. Change order, labels, placeholders and add new fields."
32
  msgstr ""
33
 
34
+ #. Author of the plugin
35
+ msgid "WP Desk"
36
  msgstr ""
37
 
38
+ #. Author URI of the plugin
39
+ msgid "https://www.wpdesk.net/"
40
  msgstr ""
41
 
42
+ #: classes/display-options.php:103
43
+ #: classes/user-profile.php:207
44
  msgid "Additional Information"
45
  msgstr ""
46
 
47
+ #: classes/field-options.php:58
48
  msgid "Select option"
49
  msgstr ""
50
 
51
+ #: classes/filed-validation.php:73
52
+ #: src/Settings/Option/ValidationOption.php:64
 
 
 
53
  msgid "Default"
54
  msgstr ""
55
 
56
+ #: classes/filed-validation.php:74
57
+ #: src/Settings/Option/ValidationOption.php:65
58
  msgid "None"
59
  msgstr ""
60
 
61
+ #: classes/filed-validation.php:75
62
  msgid "Email"
63
  msgstr ""
64
 
65
+ #: classes/filed-validation.php:76
66
+ #: src/Settings/Option/ValidationOption.php:67
67
  msgid "Phone"
68
  msgstr ""
69
 
70
+ #: classes/filed-validation.php:79
71
+ #: src/Settings/Option/ValidationOption.php:68
72
+ msgid "Postcode"
73
  msgstr ""
74
 
75
+ #: classes/plugin.php:296
76
+ #: src/Settings/Menu.php:75
77
  msgid "Billing"
78
  msgstr ""
79
 
80
+ #: classes/plugin.php:303
81
+ #: src/Settings/Menu.php:76
82
  msgid "Shipping"
83
  msgstr ""
84
 
85
+ #: classes/plugin.php:310
86
+ #: src/Settings/Menu.php:77
87
  msgid "Order"
88
  msgstr ""
89
 
90
+ #: classes/plugin.php:325
91
+ #: src/Field/Type/TextType.php:57
92
  msgid "Single Line Text"
93
  msgstr ""
94
 
95
+ #: classes/plugin.php:329
96
+ #: src/Field/Type/TextareaType.php:57
97
  msgid "Paragraph Text"
98
  msgstr ""
99
 
100
+ #: classes/plugin.php:337
101
+ #: classes/plugin.php:342
102
+ #: src/Field/Type/CheckboxType.php:35
103
  msgid "Checkbox"
104
  msgstr ""
105
 
106
+ #: classes/plugin.php:347
107
  msgid "Radio button"
108
  msgstr ""
109
 
110
+ #: classes/plugin.php:352
111
+ #: src/Field/Type/SelectType.php:35
112
  msgid "Select (Drop Down)"
113
  msgstr ""
114
 
115
+ #: classes/plugin.php:357
116
+ #: src/Field/Type/Multiselect.php:35
117
  msgid "Multi-select"
118
  msgstr ""
119
 
120
+ #: classes/plugin.php:362
121
+ #: src/Field/Type/DateType.php:35
122
  msgid "Date"
123
  msgstr ""
124
 
125
+ #: classes/plugin.php:367
126
+ #: src/Field/Type/TimeType.php:35
127
  msgid "Time"
128
  msgstr ""
129
 
130
+ #: classes/plugin.php:372
131
+ #: src/Field/Type/ColorType.php:35
132
  msgid "Color Picker"
133
  msgstr ""
134
 
135
+ #: classes/plugin.php:377
136
+ #: src/Field/Type/HeadingType.php:35
137
  msgid "Headline"
138
  msgstr ""
139
 
140
+ #: classes/plugin.php:382
141
+ #: src/Field/Type/HtmlType.php:35
142
  msgid "HTML"
143
  msgstr ""
144
 
145
+ #: classes/plugin.php:387
146
+ #: src/Field/Type/FileType.php:35
147
  msgid "File Upload"
148
  msgstr ""
149
 
150
+ #: classes/plugin.php:986
 
 
 
 
 
 
 
 
151
  msgid "Uploading file..."
152
  msgstr ""
153
 
154
+ #: classes/plugin.php:1059
155
+ #: src/Settings/Menu.php:40
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
156
  msgid "Settings"
157
  msgstr ""
158
 
159
+ #: classes/plugin.php:1060
 
160
  msgid "Docs"
161
  msgstr ""
162
 
163
+ #: classes/plugin.php:1061
 
164
  msgid "Support"
165
  msgstr ""
166
 
167
+ #: classes/plugin.php:1065
168
  msgid "Upgrade"
169
  msgstr ""
170
 
171
+ #: classes/tracker.php:332
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
172
  msgid "Opt-in"
173
  msgstr ""
174
 
175
+ #: classes/tracker.php:336
176
  msgid "Opt-out"
177
  msgstr ""
178
 
179
+ #: classes/user-profile.php:100
180
+ #: src/Settings/Page.php:191
181
  msgid "Yes"
182
  msgstr ""
183
 
184
+ #: classes/user-profile.php:101
185
+ #: src/Settings/Page.php:192
186
  msgid "No"
187
  msgstr ""
188
 
189
+ #: src/Field/Type/DefaultType.php:54
190
+ #: src/Field/Type/Wc/WcAddress2Type.php:53
191
+ #: src/Field/Type/Wc/WcCountryType.php:50
192
+ #: src/Field/Type/Wc/WcDefaultType.php:53
193
+ #: src/Field/Type/Wc/WcNotesType.php:52
194
+ #: src/Field/Type/Wc/WcPostcodeType.php:51
195
+ #: src/Field/Type/Wc/WcStateType.php:51
196
+ msgid "WooCommerce Default Field"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
197
  msgstr ""
198
 
199
+ #: src/Field/Type/RadioType.php:35
200
+ msgid "Radio Button"
201
  msgstr ""
202
 
203
+ #: src/Settings/Form/EditFieldsForm.php:74
204
+ msgid "Order Notes"
 
 
 
 
205
  msgstr ""
206
 
207
+ #: src/Settings/Form/EditFieldsForm.php:75
208
+ msgid "Notes about your order, e.g. special notes for delivery."
209
  msgstr ""
210
 
211
+ #: src/Settings/Menu.php:41
212
+ msgid "Checkout Sections"
213
  msgstr ""
214
 
215
+ #: src/Settings/Option/CssOption.php:54
216
+ msgid "CSS class"
217
  msgstr ""
218
 
219
+ #: src/Settings/Option/CssOption.php:63
220
+ msgid "Enter CSS classes separated by a space."
221
  msgstr ""
222
 
223
+ #: src/Settings/Option/DisplayOnAccountAddressOption.php:44
224
+ msgid "My Account - address"
225
  msgstr ""
226
 
227
+ #: src/Settings/Option/DisplayOnAccountOrderOption.php:44
228
+ msgid "My Account - order"
229
  msgstr ""
230
 
231
+ #: src/Settings/Option/DisplayOnEmailsOption.php:44
232
+ msgid "E-mails"
233
  msgstr ""
234
 
235
+ #: src/Settings/Option/DisplayOnOption.php:58
236
+ msgid "Pages/e-mails"
237
  msgstr ""
238
 
239
+ #: src/Settings/Option/DisplayOnThankYouOption.php:44
240
+ msgid "Thank You Page"
241
  msgstr ""
242
 
243
+ #: src/Settings/Option/EnabledOption.php:54
244
+ msgid "Enable field"
245
  msgstr ""
246
 
247
+ #: src/Settings/Option/FormattingFieldLabelOption.php:44
248
+ msgid "Display field label"
249
  msgstr ""
250
 
251
+ #: src/Settings/Option/FormattingNewLineOption.php:44
252
+ msgid "Display the field on a new line"
253
  msgstr ""
254
 
255
+ #: src/Settings/Option/FormattingOption.php:56
256
+ msgid "Formatting on pages/e-mails"
257
  msgstr ""
258
 
259
+ #: src/Settings/Option/FormattingStateAbbrOption.php:44
260
+ msgid "Display state abbreviations"
261
  msgstr ""
262
 
263
+ #: src/Settings/Option/FormattingStateCommaOption.php:44
264
+ msgid "Display a comma before if the field is not on a new line"
 
265
  msgstr ""
266
 
267
+ #: src/Settings/Option/FormattingStateOption.php:56
268
+ msgid "State/County formatting"
269
  msgstr ""
270
 
271
+ #: src/Settings/Option/LabelOption.php:56
272
+ #: src/Settings/Page.php:196
273
+ msgid "This field is required."
274
  msgstr ""
275
 
276
+ #: src/Settings/Option/LabelOption.php:66
277
+ #: src/Settings/Page.php:194
278
+ msgid "Label"
279
  msgstr ""
280
 
281
+ #. translators: %1$s: anchor opening tag, %2$s: anchor closing tag, %3$s: anchor opening tag, %4$s: anchor closing tag, %5$s: anchor opening tag, %6$s: anchor closing tag, %7$s: break line, %8$s: anchor opening tag, %9$s: anchor closing tag
282
+ #: src/Settings/Option/LogicAdvOption.php:60
283
+ msgid "Add conditional logic based on %1$sproducts and categories%2$s as well as %3$sFCF fields%4$s and %5$sshipping methods%6$s set. %7$s%8$sUpgrade to PRO%9$s"
284
  msgstr ""
285
 
286
+ #: src/Settings/Option/NameOption.php:63
287
+ msgid "Meta name"
288
  msgstr ""
289
 
290
+ #: src/Settings/Option/PlaceholderOption.php:54
291
+ msgid "Placeholder"
292
  msgstr ""
293
 
294
+ #. translators: %1$s: break line, %2$s: anchor opening tag, %3$s: anchor closing tag
295
+ #: src/Settings/Option/PricingAdvOption.php:57
296
+ msgid "Add a fixed or percentage price to the field and set the tax on this price.%1$s %2$sUpgrade to PRO%3$s"
297
  msgstr ""
298
 
299
+ #: src/Settings/Option/RequiredHiddenOption.php:33
300
+ msgid "Requirement of this field is controlled by WooCommerce and cannot be changed."
301
  msgstr ""
302
 
303
+ #: src/Settings/Option/RequiredOption.php:54
304
+ msgid "Required field"
305
  msgstr ""
306
 
307
+ #: src/Settings/Option/SettingJqueryCssOption.php:45
308
+ msgid "Disable jquery-ui.css on the frontend"
309
  msgstr ""
310
 
311
+ #: src/Settings/Option/SettingJqueryCssOption.php:54
312
+ msgid "Remember that some fields, i.e. datepicker use jQuery UI CSS. The plugin adds a default CSS but sometimes it can create some visual glitches."
313
  msgstr ""
314
 
315
+ #: src/Settings/Option/SettingJqueryOption.php:45
316
+ msgid "jQuery UI"
317
  msgstr ""
318
 
319
+ #: src/Settings/Option/SettingSectionsAdvOption.php:45
320
+ msgid "Get Flexible Checkout Fields PRO to use Custom Sections"
 
321
  msgstr ""
322
 
323
+ #: src/Settings/Option/SettingSectionsAdvOption.php:47
324
+ msgid "Extend the form with additional fields. Insert Text inputs and Headings. Add Checkboxes and fields with options like DropDown or Radio."
325
  msgstr ""
326
 
327
+ #: src/Settings/Option/SettingSectionsAdvOption.php:48
328
+ msgid "Add conditional logic based on products and categories as well as FCF fields and shipping methods."
329
  msgstr ""
330
 
331
+ #: src/Settings/Option/SettingSectionsAdvOption.php:49
332
+ msgid "Add a fixed or percentage price to the field and set the tax on this price."
333
  msgstr ""
334
 
335
+ #: src/Settings/Option/SettingSectionsAdvOption.php:51
336
+ msgid "Upgrade to PRO"
337
  msgstr ""
338
 
339
+ #. translators: %1$s: anchor opening tag, %2$s: anchor closing tag
340
+ #: src/Settings/Option/ValidationInfoOption.php:57
341
+ msgid "You can to add custom validation in the functions.php file. %1$sRead more%2$s"
342
  msgstr ""
343
 
344
+ #: src/Settings/Option/ValidationOption.php:54
345
+ msgid "Validation"
346
  msgstr ""
347
 
348
+ #: src/Settings/Option/ValidationOption.php:66
349
+ msgid "E-mail"
 
350
  msgstr ""
351
 
352
+ #: src/Settings/Page.php:66
353
+ msgid "Checkout Fields Settings"
354
  msgstr ""
355
 
356
+ #: src/Settings/Page.php:67
357
+ msgid "Checkout Fields"
358
  msgstr ""
359
 
360
+ #: src/Settings/Page.php:182
361
+ msgid "Edit form"
 
362
  msgstr ""
363
 
364
+ #: src/Settings/Page.php:183
365
+ msgid "Add new field"
366
  msgstr ""
367
 
368
+ #: src/Settings/Page.php:184
369
+ msgid "Edit section"
370
  msgstr ""
371
 
372
+ #: src/Settings/Page.php:185
373
+ msgid "Edit settings"
374
  msgstr ""
375
 
376
+ #: src/Settings/Page.php:186
377
+ msgid "Add Field"
378
  msgstr ""
379
 
380
+ #: src/Settings/Page.php:187
381
+ msgid "Add New"
382
  msgstr ""
383
 
384
+ #: src/Settings/Page.php:188
385
+ msgid "Save Changes"
386
  msgstr ""
387
 
388
+ #: src/Settings/Page.php:189
389
+ msgid "Reset Section Settings"
390
  msgstr ""
391
 
392
+ #: src/Settings/Page.php:190
393
+ msgid "Read more"
394
  msgstr ""
395
 
396
+ #: src/Settings/Page.php:193
397
+ msgid "Field Type"
398
  msgstr ""
399
 
400
+ #: src/Settings/Page.php:195
401
+ msgid "Name"
402
  msgstr ""
403
 
404
+ #: src/Settings/Page.php:197
405
+ msgid "Field name should contains only lowercase letters, numbers and underscore sign."
406
  msgstr ""
407
 
408
+ #: src/Settings/Page.php:198
409
+ msgid "Select..."
410
  msgstr ""
411
 
412
+ #: src/Settings/Page.php:199
413
+ msgid "Loading..."
414
  msgstr ""
415
 
416
+ #: src/Settings/Page.php:200
417
+ msgid "No options."
418
  msgstr ""
419
 
420
+ #. translators: %1$s: break line, %2$s: anchor opening tag, %3$s: anchor closing tag
421
+ #: src/Settings/Page.php:203
422
+ msgid "This field is available in the PRO version.%1$s %2$sUpgrade to PRO%3$s"
423
  msgstr ""
424
 
425
+ #: src/Settings/Page.php:208
426
+ msgid "Are you sure you want to delete this field? Deleting a field will remove it from all orders."
427
  msgstr ""
428
 
429
+ #: src/Settings/Page.php:209
430
+ msgid "Do you really want to reset section settings? Resetting a section remove all added fields from orders."
431
  msgstr ""
432
 
433
+ #: src/Settings/Page.php:210
434
+ msgid "No fields available."
435
  msgstr ""
436
 
437
+ #: src/Settings/Route/RouteIntegration.php:86
438
+ msgid "An unknown error occurred while processing the request."
439
  msgstr ""
440
 
441
+ #: src/Settings/Tab/AdvancedTab.php:35
442
+ msgid "Advanced"
443
  msgstr ""
444
 
445
+ #: src/Settings/Tab/AppearanceTab.php:35
446
+ msgid "Appearance"
447
  msgstr ""
448
 
449
+ #: src/Settings/Tab/DisplayTab.php:35
450
+ msgid "Display On"
451
  msgstr ""
452
 
453
+ #: src/Settings/Tab/GeneralTab.php:35
454
+ msgid "General"
455
  msgstr ""
456
 
457
+ #: src/Settings/Tab/LogicTab.php:35
458
+ msgid "Conditional Logic"
459
  msgstr ""
460
 
461
+ #: src/Settings/Tab/PricingTab.php:35
462
+ msgid "Pricing"
463
  msgstr ""
464
 
465
+ #: templates/notices/review.php:19
466
+ msgid "Thanks for using the free version of Flexible Checkout Fields!"
467
  msgstr ""
468
 
469
+ #. translators: %1$s: dashicon, %2$s: break-line tag
470
+ #: templates/notices/review.php:26
471
+ msgid "We are glad that (with our little help %1$s) the shop is now better suited to the needs. We will be grateful for the rating and feedback. %2$sIt will take less than reading this and it will help us a lot!"
472
  msgstr ""
473
 
474
+ #: templates/notices/review.php:37
475
+ msgid "Add review"
476
  msgstr ""
477
 
478
+ #: templates/notices/review.php:41
479
+ msgid "I added review, do not show again"
480
  msgstr ""
481
 
482
+ #. translators: %$1s: love icon, %$2s: anchor opening tag, %$3s: anchor closing tag, %$4s: anchor opening tag, %$5s: anchor closing tag
483
+ #: templates/views/admin-page.php:66
484
+ msgid "Created with %1$s by Rangers from %2$sWP Desk%3$s - if you like FCF %4$srate us%5$s"
485
  msgstr ""
readme.txt CHANGED
@@ -1,6 +1,6 @@
1
  === Flexible Checkout Fields for WooCommerce ===
2
 
3
- Contributors: wpdesk,dyszczo,grola,piotrpo,marcinkolanko,mateuszgbiorczyk
4
  Donate link: https://www.wpdesk.net/flexible-checkout-fields-woocommerce/
5
  Tags: woocommerce checkout fields, woocommerce custom fields, woocommerce checkout manager, woocommerce checkout editor, woocommerce fields manager, woocommerce fields editor, woocommerce custom checkout fields, woocommerce checkout options, woocommerce checkout pro, woocommerce custom sections, woocommerce file upload
6
  Requires at least: 4.9
@@ -187,6 +187,12 @@ If you are upgrading from the old WooCommerce Checkout Fields version (1.1, wooc
187
 
188
  == Changelog ==
189
 
 
 
 
 
 
 
190
  = 2.9.2 - 2021-02-11 =
191
  * Added support for WooCommerce 5.0
192
 
1
  === Flexible Checkout Fields for WooCommerce ===
2
 
3
+ Contributors: wpdesk,dyszczo,grola,piotrpo,marcinkolanko,mateuszgbiorczyk,sebastianpisula
4
  Donate link: https://www.wpdesk.net/flexible-checkout-fields-woocommerce/
5
  Tags: woocommerce checkout fields, woocommerce custom fields, woocommerce checkout manager, woocommerce checkout editor, woocommerce fields manager, woocommerce fields editor, woocommerce custom checkout fields, woocommerce checkout options, woocommerce checkout pro, woocommerce custom sections, woocommerce file upload
6
  Requires at least: 4.9
187
 
188
  == Changelog ==
189
 
190
+ = 3.0.0 - 2021-03-01 =
191
+ * Major Update!
192
+ * Dropped support for Flexible Checkout Fields PRO version lower than 3.0
193
+ * Added new admin page to manage plugin settings
194
+ * Added validation for fields on settings page
195
+
196
  = 2.9.2 - 2021-02-11 =
197
  * Added support for WooCommerce 5.0
198
 
src/Admin/NoticeReview.php CHANGED
@@ -65,7 +65,7 @@ class NoticeReview implements Hookable, HookablePluginDependant {
65
  $notice_date = strtotime( get_option( $option_notice, false ) );
66
  $min_date = strtotime( current_time( 'mysql' ) );
67
 
68
- if ( ( basename( $_SERVER['PHP_SELF'] ) !== 'index.php' )
69
  || ( ( $notice_date !== false ) && ( $notice_date > $min_date ) ) ) {
70
  return;
71
  }
65
  $notice_date = strtotime( get_option( $option_notice, false ) );
66
  $min_date = strtotime( current_time( 'mysql' ) );
67
 
68
+ if ( ( basename( $_SERVER['PHP_SELF'] ) !== 'index.php' ) // phpcs:ignore
69
  || ( ( $notice_date !== false ) && ( $notice_date > $min_date ) ) ) {
70
  return;
71
  }
src/Admin/Page.php ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FCF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Admin;
9
+
10
+ use FcfVendor\WPDesk\PluginBuilder\Plugin\Hookable;
11
+ use FcfVendor\WPDesk\PluginBuilder\Plugin\HookablePluginDependant;
12
+ use FcfVendor\WPDesk\PluginBuilder\Plugin\PluginAccess;
13
+
14
+ /**
15
+ * Removes WooCommerce footer in plugin settings page.
16
+ */
17
+ class Page implements Hookable, HookablePluginDependant {
18
+
19
+ use PluginAccess;
20
+
21
+ /**
22
+ * Integrate with WordPress and with other plugins using action/filter system.
23
+ *
24
+ * @return void
25
+ */
26
+ public function hooks() {
27
+ add_filter( 'admin_footer_text', [ $this, 'update_footer_text' ], 10 );
28
+ }
29
+
30
+ /**
31
+ * .
32
+ *
33
+ * @param string $original_text .
34
+ *
35
+ * @internal
36
+ */
37
+ public function update_footer_text( string $original_text ): string {
38
+ return '';
39
+ }
40
+
41
+ }
src/Field/FieldData.php ADDED
@@ -0,0 +1,66 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FCF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Field;
9
+
10
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
11
+ use WPDesk\FCF\Free\Field\Type\DefaultType;
12
+
13
+ /**
14
+ * Generates field data based on options for field type.
15
+ */
16
+ class FieldData {
17
+
18
+ /**
19
+ * Returns parsed data for field.
20
+ *
21
+ * @param array $field_settings Settings of field.
22
+ * @param bool $is_decode Is it decoding (used saved settings) data instead of encoding (for settings save).
23
+ *
24
+ * @return array Data of field.
25
+ */
26
+ public static function get_field_data( array $field_settings, bool $is_decode = true ): array {
27
+ $field_data = [];
28
+
29
+ $new_field_settings = $field_settings;
30
+ if ( ! isset( $field_settings['type'] ) ) {
31
+ $new_field_settings['type'] = DefaultType::FIELD_TYPE;
32
+ }
33
+
34
+ if ( ! ( $option_objects = self::get_field_options( $field_settings ) )
35
+ && ! ( $option_objects = self::get_field_options( $new_field_settings ) ) ) {
36
+ return $field_data;
37
+ }
38
+
39
+ $field_data['name'] = $field_settings['name'];
40
+ foreach ( $option_objects as $field_option ) {
41
+ $field_data = $field_option[ ( $is_decode ) ? 'update_field_callback' : 'save_field_callback' ](
42
+ $field_data,
43
+ $new_field_settings
44
+ );
45
+ }
46
+ return $field_data;
47
+ }
48
+
49
+ /**
50
+ * Returns list of option objects.
51
+ *
52
+ * @param array $field_settings Settings of field.
53
+ *
54
+ * @return OptionInterface[] List of options.
55
+ */
56
+ public static function get_field_options( array $field_settings ): array {
57
+ $field_types = apply_filters( 'flexible_checkout_fields/field_types', [] );
58
+ foreach ( $field_types as $field_type ) {
59
+ if ( in_array( $field_settings['name'], $field_type['reserved_field_names'], true )
60
+ || ( isset( $field_settings['type'] ) && ( $field_settings['type'] === $field_type['type'] ) ) ) {
61
+ return $field_type['options'];
62
+ }
63
+ }
64
+ return [];
65
+ }
66
+ }
src/Field/Type/CheckboxType.php ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Field\Type;
9
+
10
+ use WPDesk\FCF\Free\Field\Type\TypeAbstract;
11
+ use WPDesk\FCF\Free\Field\Type\TypeInterface;
12
+
13
+ /**
14
+ * Supports field type settings.
15
+ */
16
+ class CheckboxType extends TypeAbstract implements TypeInterface {
17
+
18
+ const FIELD_TYPE = 'inspirecheckbox';
19
+
20
+ /**
21
+ * Returns value of field type.
22
+ *
23
+ * @return string Field type.
24
+ */
25
+ public function get_field_type(): string {
26
+ return self::FIELD_TYPE;
27
+ }
28
+
29
+ /**
30
+ * Returns label of field type.
31
+ *
32
+ * @return string Field label.
33
+ */
34
+ public function get_field_type_label(): string {
35
+ return __( 'Checkbox', 'flexible-checkout-fields' );
36
+ }
37
+
38
+ /**
39
+ * Returns field icon as CSS Class supported by Icomoon.
40
+ *
41
+ * @return string Field icon.
42
+ */
43
+ public function get_field_type_icon(): string {
44
+ return 'icon-check-square';
45
+ }
46
+
47
+ /**
48
+ * Returns whether field type is available for plugin version.
49
+ *
50
+ * @return bool Status if field type is available.
51
+ */
52
+ public function is_available(): bool {
53
+ return false;
54
+ }
55
+ }
src/Field/Type/ColorType.php ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Field\Type;
9
+
10
+ use WPDesk\FCF\Free\Field\Type\TypeAbstract;
11
+ use WPDesk\FCF\Free\Field\Type\TypeInterface;
12
+
13
+ /**
14
+ * Supports field type settings.
15
+ */
16
+ class ColorType extends TypeAbstract implements TypeInterface {
17
+
18
+ const FIELD_TYPE = 'colorpicker';
19
+
20
+ /**
21
+ * Returns value of field type.
22
+ *
23
+ * @return string Field type.
24
+ */
25
+ public function get_field_type(): string {
26
+ return self::FIELD_TYPE;
27
+ }
28
+
29
+ /**
30
+ * Returns label of field type.
31
+ *
32
+ * @return string Field label.
33
+ */
34
+ public function get_field_type_label(): string {
35
+ return __( 'Color Picker', 'flexible-checkout-fields' );
36
+ }
37
+
38
+ /**
39
+ * Returns field icon as CSS Class supported by Icomoon.
40
+ *
41
+ * @return string Field icon.
42
+ */
43
+ public function get_field_type_icon(): string {
44
+ return 'icon-palette';
45
+ }
46
+
47
+ /**
48
+ * Returns whether field type is available for plugin version.
49
+ *
50
+ * @return bool Status if field type is available.
51
+ */
52
+ public function is_available(): bool {
53
+ return false;
54
+ }
55
+ }
src/Field/Type/DateType.php ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Field\Type;
9
+
10
+ use WPDesk\FCF\Free\Field\Type\TypeAbstract;
11
+ use WPDesk\FCF\Free\Field\Type\TypeInterface;
12
+
13
+ /**
14
+ * Supports field type settings.
15
+ */
16
+ class DateType extends TypeAbstract implements TypeInterface {
17
+
18
+ const FIELD_TYPE = 'datepicker';
19
+
20
+ /**
21
+ * Returns value of field type.
22
+ *
23
+ * @return string Field type.
24
+ */
25
+ public function get_field_type(): string {
26
+ return self::FIELD_TYPE;
27
+ }
28
+
29
+ /**
30
+ * Returns label of field type.
31
+ *
32
+ * @return string Field label.
33
+ */
34
+ public function get_field_type_label(): string {
35
+ return __( 'Date', 'flexible-checkout-fields' );
36
+ }
37
+
38
+ /**
39
+ * Returns field icon as CSS Class supported by Icomoon.
40
+ *
41
+ * @return string Field icon.
42
+ */
43
+ public function get_field_type_icon(): string {
44
+ return 'icon-calendar-alt';
45
+ }
46
+
47
+ /**
48
+ * Returns whether field type is available for plugin version.
49
+ *
50
+ * @return bool Status if field type is available.
51
+ */
52
+ public function is_available(): bool {
53
+ return false;
54
+ }
55
+ }
src/Field/Type/DefaultType.php ADDED
@@ -0,0 +1,107 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Field\Type;
9
+
10
+ use WPDesk\FCF\Free\Field\Type\TypeAbstract;
11
+ use WPDesk\FCF\Free\Field\Type\TypeInterface;
12
+ use WPDesk\FCF\Free\Settings\Tab\AdvancedTab;
13
+ use WPDesk\FCF\Free\Settings\Tab\AppearanceTab;
14
+ use WPDesk\FCF\Free\Settings\Tab\DisplayTab;
15
+ use WPDesk\FCF\Free\Settings\Tab\GeneralTab;
16
+ use WPDesk\FCF\Free\Settings\Tab\LogicTab;
17
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
18
+ use WPDesk\FCF\Free\Settings\Option\CssOption;
19
+ use WPDesk\FCF\Free\Settings\Option\CustomFieldOption;
20
+ use WPDesk\FCF\Free\Settings\Option\DisplayOnOption;
21
+ use WPDesk\FCF\Free\Settings\Option\EnabledOption;
22
+ use WPDesk\FCF\Free\Settings\Option\FormattingWcOption;
23
+ use WPDesk\FCF\Free\Settings\Option\LabelOption;
24
+ use WPDesk\FCF\Free\Settings\Option\LogicAdvOption;
25
+ use WPDesk\FCF\Free\Settings\Option\NameOption;
26
+ use WPDesk\FCF\Free\Settings\Option\PlaceholderOption;
27
+ use WPDesk\FCF\Free\Settings\Option\PriorityOption;
28
+ use WPDesk\FCF\Free\Settings\Option\RequiredOption;
29
+ use WPDesk\FCF\Free\Settings\Option\ValidationOption;
30
+ use WPDesk\FCF\Free\Settings\Option\ValidationInfoOption;
31
+
32
+ /**
33
+ * Supports field type settings.
34
+ */
35
+ class DefaultType extends TypeAbstract implements TypeInterface {
36
+
37
+ const FIELD_TYPE = 'fcf_default';
38
+
39
+ /**
40
+ * Returns value of field type.
41
+ *
42
+ * @return string Field type.
43
+ */
44
+ public function get_field_type(): string {
45
+ return self::FIELD_TYPE;
46
+ }
47
+
48
+ /**
49
+ * Returns label of field type.
50
+ *
51
+ * @return string Field label.
52
+ */
53
+ public function get_field_type_label(): string {
54
+ return __( 'WooCommerce Default Field', 'flexible-checkout-fields' );
55
+ }
56
+
57
+ /**
58
+ * Returns whether field type is hidden.
59
+ *
60
+ * @return bool Status if field type is hidden.
61
+ */
62
+ public function is_hidden(): bool {
63
+ return true;
64
+ }
65
+
66
+ /**
67
+ * Returns whether field type is available for plugin version.
68
+ *
69
+ * @return bool Status if field type is available.
70
+ */
71
+ public function is_available(): bool {
72
+ return true;
73
+ }
74
+
75
+ /**
76
+ * Returns list of options for field settings.
77
+ *
78
+ * @return OptionInterface[] List of option fields.
79
+ */
80
+ public function get_options_objects(): array {
81
+ return [
82
+ GeneralTab::TAB_NAME => [
83
+ PriorityOption::FIELD_NAME => new PriorityOption(),
84
+ EnabledOption::FIELD_NAME => new EnabledOption(),
85
+ CustomFieldOption::FIELD_NAME => new CustomFieldOption(),
86
+ RequiredOption::FIELD_NAME => new RequiredOption(),
87
+ LabelOption::FIELD_NAME => new LabelOption(),
88
+ NameOption::FIELD_NAME => new NameOption(),
89
+ ],
90
+ AdvancedTab::TAB_NAME => [
91
+ ValidationOption::FIELD_NAME => new ValidationOption(),
92
+ ValidationInfoOption::FIELD_NAME => new ValidationInfoOption(),
93
+ ],
94
+ AppearanceTab::TAB_NAME => [
95
+ PlaceholderOption::FIELD_NAME => new PlaceholderOption(),
96
+ CssOption::FIELD_NAME => new CssOption(),
97
+ ],
98
+ DisplayTab::TAB_NAME => [
99
+ DisplayOnOption::FIELD_NAME => new DisplayOnOption(),
100
+ FormattingWcOption::FIELD_NAME => new FormattingWcOption(),
101
+ ],
102
+ LogicTab::TAB_NAME => [
103
+ LogicAdvOption::FIELD_NAME => new LogicAdvOption(),
104
+ ],
105
+ ];
106
+ }
107
+ }
src/Field/Type/FileType.php ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Field\Type;
9
+
10
+ use WPDesk\FCF\Free\Field\Type\TypeAbstract;
11
+ use WPDesk\FCF\Free\Field\Type\TypeInterface;
12
+
13
+ /**
14
+ * Supports field type settings.
15
+ */
16
+ class FileType extends TypeAbstract implements TypeInterface {
17
+
18
+ const FIELD_TYPE = 'file';
19
+
20
+ /**
21
+ * Returns value of field type.
22
+ *
23
+ * @return string Field type.
24
+ */
25
+ public function get_field_type(): string {
26
+ return self::FIELD_TYPE;
27
+ }
28
+
29
+ /**
30
+ * Returns label of field type.
31
+ *
32
+ * @return string Field label.
33
+ */
34
+ public function get_field_type_label(): string {
35
+ return __( 'File Upload', 'flexible-checkout-fields' );
36
+ }
37
+
38
+ /**
39
+ * Returns field icon as CSS Class supported by Icomoon.
40
+ *
41
+ * @return string Field icon.
42
+ */
43
+ public function get_field_type_icon(): string {
44
+ return 'icon-upload';
45
+ }
46
+
47
+ /**
48
+ * Returns whether field type is available for plugin version.
49
+ *
50
+ * @return bool Status if field type is available.
51
+ */
52
+ public function is_available(): bool {
53
+ return false;
54
+ }
55
+ }
src/Field/Type/HeadingType.php ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Field\Type;
9
+
10
+ use WPDesk\FCF\Free\Field\Type\TypeAbstract;
11
+ use WPDesk\FCF\Free\Field\Type\TypeInterface;
12
+
13
+ /**
14
+ * Supports field type settings.
15
+ */
16
+ class HeadingType extends TypeAbstract implements TypeInterface {
17
+
18
+ const FIELD_TYPE = 'heading';
19
+
20
+ /**
21
+ * Returns value of field type.
22
+ *
23
+ * @return string Field type.
24
+ */
25
+ public function get_field_type(): string {
26
+ return self::FIELD_TYPE;
27
+ }
28
+
29
+ /**
30
+ * Returns label of field type.
31
+ *
32
+ * @return string Field label.
33
+ */
34
+ public function get_field_type_label(): string {
35
+ return __( 'Headline', 'flexible-checkout-fields' );
36
+ }
37
+
38
+ /**
39
+ * Returns field icon as CSS Class supported by Icomoon.
40
+ *
41
+ * @return string Field icon.
42
+ */
43
+ public function get_field_type_icon(): string {
44
+ return 'icon-heading';
45
+ }
46
+
47
+ /**
48
+ * Returns whether field type is available for plugin version.
49
+ *
50
+ * @return bool Status if field type is available.
51
+ */
52
+ public function is_available(): bool {
53
+ return false;
54
+ }
55
+ }
src/Field/Type/HtmlType.php ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Field\Type;
9
+
10
+ use WPDesk\FCF\Free\Field\Type\TypeAbstract;
11
+ use WPDesk\FCF\Free\Field\Type\TypeInterface;
12
+
13
+ /**
14
+ * Supports field type settings.
15
+ */
16
+ class HtmlType extends TypeAbstract implements TypeInterface {
17
+
18
+ const FIELD_TYPE = 'info';
19
+
20
+ /**
21
+ * Returns value of field type.
22
+ *
23
+ * @return string Field type.
24
+ */
25
+ public function get_field_type(): string {
26
+ return self::FIELD_TYPE;
27
+ }
28
+
29
+ /**
30
+ * Returns label of field type.
31
+ *
32
+ * @return string Field label.
33
+ */
34
+ public function get_field_type_label(): string {
35
+ return __( 'HTML', 'flexible-checkout-fields' );
36
+ }
37
+
38
+ /**
39
+ * Returns field icon as CSS Class supported by Icomoon.
40
+ *
41
+ * @return string Field icon.
42
+ */
43
+ public function get_field_type_icon(): string {
44
+ return 'icon-code';
45
+ }
46
+
47
+ /**
48
+ * Returns whether field type is available for plugin version.
49
+ *
50
+ * @return bool Status if field type is available.
51
+ */
52
+ public function is_available(): bool {
53
+ return false;
54
+ }
55
+ }
src/Field/Type/Multiselect.php ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Field\Type;
9
+
10
+ use WPDesk\FCF\Free\Field\Type\TypeAbstract;
11
+ use WPDesk\FCF\Free\Field\Type\TypeInterface;
12
+
13
+ /**
14
+ * Supports field type settings.
15
+ */
16
+ class Multiselect extends TypeAbstract implements TypeInterface {
17
+
18
+ const FIELD_TYPE = 'wpdeskmultiselect';
19
+
20
+ /**
21
+ * Returns value of field type.
22
+ *
23
+ * @return string Field type.
24
+ */
25
+ public function get_field_type(): string {
26
+ return self::FIELD_TYPE;
27
+ }
28
+
29
+ /**
30
+ * Returns label of field type.
31
+ *
32
+ * @return string Field label.
33
+ */
34
+ public function get_field_type_label(): string {
35
+ return __( 'Multi-select', 'flexible-checkout-fields' );
36
+ }
37
+
38
+ /**
39
+ * Returns field icon as CSS Class supported by Icomoon.
40
+ *
41
+ * @return string Field icon.
42
+ */
43
+ public function get_field_type_icon(): string {
44
+ return 'icon-tasks';
45
+ }
46
+
47
+ /**
48
+ * Returns whether field type is available for plugin version.
49
+ *
50
+ * @return bool Status if field type is available.
51
+ */
52
+ public function is_available(): bool {
53
+ return false;
54
+ }
55
+ }
src/Field/Type/RadioType.php ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Field\Type;
9
+
10
+ use WPDesk\FCF\Free\Field\Type\TypeAbstract;
11
+ use WPDesk\FCF\Free\Field\Type\TypeInterface;
12
+
13
+ /**
14
+ * Supports field type settings.
15
+ */
16
+ class RadioType extends TypeAbstract implements TypeInterface {
17
+
18
+ const FIELD_TYPE = 'inspireradio';
19
+
20
+ /**
21
+ * Returns value of field type.
22
+ *
23
+ * @return string Field type.
24
+ */
25
+ public function get_field_type(): string {
26
+ return self::FIELD_TYPE;
27
+ }
28
+
29
+ /**
30
+ * Returns label of field type.
31
+ *
32
+ * @return string Field label.
33
+ */
34
+ public function get_field_type_label(): string {
35
+ return __( 'Radio Button', 'flexible-checkout-fields' );
36
+ }
37
+
38
+ /**
39
+ * Returns field icon as CSS Class supported by Icomoon.
40
+ *
41
+ * @return string Field icon.
42
+ */
43
+ public function get_field_type_icon(): string {
44
+ return 'icon-list-ul';
45
+ }
46
+
47
+ /**
48
+ * Returns whether field type is available for plugin version.
49
+ *
50
+ * @return bool Status if field type is available.
51
+ */
52
+ public function is_available(): bool {
53
+ return false;
54
+ }
55
+ }
src/Field/Type/SelectType.php ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Field\Type;
9
+
10
+ use WPDesk\FCF\Free\Field\Type\TypeAbstract;
11
+ use WPDesk\FCF\Free\Field\Type\TypeInterface;
12
+
13
+ /**
14
+ * Supports field type settings.
15
+ */
16
+ class SelectType extends TypeAbstract implements TypeInterface {
17
+
18
+ const FIELD_TYPE = 'select';
19
+
20
+ /**
21
+ * Returns value of field type.
22
+ *
23
+ * @return string Field type.
24
+ */
25
+ public function get_field_type(): string {
26
+ return self::FIELD_TYPE;
27
+ }
28
+
29
+ /**
30
+ * Returns label of field type.
31
+ *
32
+ * @return string Field label.
33
+ */
34
+ public function get_field_type_label(): string {
35
+ return __( 'Select (Drop Down)', 'flexible-checkout-fields' );
36
+ }
37
+
38
+ /**
39
+ * Returns field icon as CSS Class supported by Icomoon.
40
+ *
41
+ * @return string Field icon.
42
+ */
43
+ public function get_field_type_icon(): string {
44
+ return 'icon-tasks-alt';
45
+ }
46
+
47
+ /**
48
+ * Returns whether field type is available for plugin version.
49
+ *
50
+ * @return bool Status if field type is available.
51
+ */
52
+ public function is_available(): bool {
53
+ return false;
54
+ }
55
+ }
src/Field/Type/TextType.php ADDED
@@ -0,0 +1,114 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Field\Type;
9
+
10
+ use WPDesk\FCF\Free\Field\Type\TypeAbstract;
11
+ use WPDesk\FCF\Free\Field\Type\TypeInterface;
12
+ use WPDesk\FCF\Free\Settings\Tab\AdvancedTab;
13
+ use WPDesk\FCF\Free\Settings\Tab\AppearanceTab;
14
+ use WPDesk\FCF\Free\Settings\Tab\DisplayTab;
15
+ use WPDesk\FCF\Free\Settings\Tab\GeneralTab;
16
+ use WPDesk\FCF\Free\Settings\Tab\LogicTab;
17
+ use WPDesk\FCF\Free\Settings\Tab\PricingTab;
18
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
19
+ use WPDesk\FCF\Free\Settings\Option\CssOption;
20
+ use WPDesk\FCF\Free\Settings\Option\CustomFieldOption;
21
+ use WPDesk\FCF\Free\Settings\Option\DisplayOnOption;
22
+ use WPDesk\FCF\Free\Settings\Option\EnabledOption;
23
+ use WPDesk\FCF\Free\Settings\Option\FieldTypeOption;
24
+ use WPDesk\FCF\Free\Settings\Option\FormattingOption;
25
+ use WPDesk\FCF\Free\Settings\Option\LabelOption;
26
+ use WPDesk\FCF\Free\Settings\Option\LogicAdvOption;
27
+ use WPDesk\FCF\Free\Settings\Option\NameOption;
28
+ use WPDesk\FCF\Free\Settings\Option\PlaceholderOption;
29
+ use WPDesk\FCF\Free\Settings\Option\PricingAdvOption;
30
+ use WPDesk\FCF\Free\Settings\Option\PriorityOption;
31
+ use WPDesk\FCF\Free\Settings\Option\RequiredOption;
32
+ use WPDesk\FCF\Free\Settings\Option\ValidationOption;
33
+ use WPDesk\FCF\Free\Settings\Option\ValidationInfoOption;
34
+
35
+ /**
36
+ * Supports field type settings.
37
+ */
38
+ class TextType extends TypeAbstract implements TypeInterface {
39
+
40
+ const FIELD_TYPE = 'text';
41
+
42
+ /**
43
+ * Returns value of field type.
44
+ *
45
+ * @return string Field type.
46
+ */
47
+ public function get_field_type(): string {
48
+ return self::FIELD_TYPE;
49
+ }
50
+
51
+ /**
52
+ * Returns label of field type.
53
+ *
54
+ * @return string Field label.
55
+ */
56
+ public function get_field_type_label(): string {
57
+ return __( 'Single Line Text', 'flexible-checkout-fields' );
58
+ }
59
+
60
+ /**
61
+ * Returns field icon as CSS Class supported by Icomoon.
62
+ *
63
+ * @return string Field icon.
64
+ */
65
+ public function get_field_type_icon(): string {
66
+ return 'icon-font';
67
+ }
68
+
69
+ /**
70
+ * Returns whether field type is available for plugin version.
71
+ *
72
+ * @return bool Status if field type is available.
73
+ */
74
+ public function is_available(): bool {
75
+ return true;
76
+ }
77
+
78
+ /**
79
+ * Returns list of options for field settings.
80
+ *
81
+ * @return OptionInterface[] List of option fields.
82
+ */
83
+ public function get_options_objects(): array {
84
+ return [
85
+ GeneralTab::TAB_NAME => [
86
+ PriorityOption::FIELD_NAME => new PriorityOption(),
87
+ FieldTypeOption::FIELD_NAME => new FieldTypeOption(),
88
+ CustomFieldOption::FIELD_NAME => new CustomFieldOption(),
89
+ EnabledOption::FIELD_NAME => new EnabledOption(),
90
+ RequiredOption::FIELD_NAME => new RequiredOption(),
91
+ LabelOption::FIELD_NAME => new LabelOption(),
92
+ NameOption::FIELD_NAME => new NameOption(),
93
+ ],
94
+ AdvancedTab::TAB_NAME => [
95
+ ValidationOption::FIELD_NAME => new ValidationOption(),
96
+ ValidationInfoOption::FIELD_NAME => new ValidationInfoOption(),
97
+ ],
98
+ AppearanceTab::TAB_NAME => [
99
+ PlaceholderOption::FIELD_NAME => new PlaceholderOption(),
100
+ CssOption::FIELD_NAME => new CssOption(),
101
+ ],
102
+ DisplayTab::TAB_NAME => [
103
+ DisplayOnOption::FIELD_NAME => new DisplayOnOption(),
104
+ FormattingOption::FIELD_NAME => new FormattingOption(),
105
+ ],
106
+ LogicTab::TAB_NAME => [
107
+ LogicAdvOption::FIELD_NAME => new LogicAdvOption(),
108
+ ],
109
+ PricingTab::TAB_NAME => [
110
+ PricingAdvOption::FIELD_NAME => new PricingAdvOption(),
111
+ ],
112
+ ];
113
+ }
114
+ }
src/Field/Type/TextareaType.php ADDED
@@ -0,0 +1,114 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Field\Type;
9
+
10
+ use WPDesk\FCF\Free\Field\Type\TypeAbstract;
11
+ use WPDesk\FCF\Free\Field\Type\TypeInterface;
12
+ use WPDesk\FCF\Free\Settings\Tab\AdvancedTab;
13
+ use WPDesk\FCF\Free\Settings\Tab\AppearanceTab;
14
+ use WPDesk\FCF\Free\Settings\Tab\DisplayTab;
15
+ use WPDesk\FCF\Free\Settings\Tab\GeneralTab;
16
+ use WPDesk\FCF\Free\Settings\Tab\LogicTab;
17
+ use WPDesk\FCF\Free\Settings\Tab\PricingTab;
18
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
19
+ use WPDesk\FCF\Free\Settings\Option\CssOption;
20
+ use WPDesk\FCF\Free\Settings\Option\CustomFieldOption;
21
+ use WPDesk\FCF\Free\Settings\Option\DisplayOnOption;
22
+ use WPDesk\FCF\Free\Settings\Option\EnabledOption;
23
+ use WPDesk\FCF\Free\Settings\Option\FieldTypeOption;
24
+ use WPDesk\FCF\Free\Settings\Option\FormattingOption;
25
+ use WPDesk\FCF\Free\Settings\Option\LabelOption;
26
+ use WPDesk\FCF\Free\Settings\Option\LogicAdvOption;
27
+ use WPDesk\FCF\Free\Settings\Option\NameOption;
28
+ use WPDesk\FCF\Free\Settings\Option\PlaceholderOption;
29
+ use WPDesk\FCF\Free\Settings\Option\PricingAdvOption;
30
+ use WPDesk\FCF\Free\Settings\Option\PriorityOption;
31
+ use WPDesk\FCF\Free\Settings\Option\RequiredOption;
32
+ use WPDesk\FCF\Free\Settings\Option\ValidationOption;
33
+ use WPDesk\FCF\Free\Settings\Option\ValidationInfoOption;
34
+
35
+ /**
36
+ * Supports field type settings.
37
+ */
38
+ class TextareaType extends TypeAbstract implements TypeInterface {
39
+
40
+ const FIELD_TYPE = 'textarea';
41
+
42
+ /**
43
+ * Returns value of field type.
44
+ *
45
+ * @return string Field type.
46
+ */
47
+ public function get_field_type(): string {
48
+ return self::FIELD_TYPE;
49
+ }
50
+
51
+ /**
52
+ * Returns label of field type.
53
+ *
54
+ * @return string Field label.
55
+ */
56
+ public function get_field_type_label(): string {
57
+ return __( 'Paragraph Text', 'flexible-checkout-fields' );
58
+ }
59
+
60
+ /**
61
+ * Returns field icon as CSS Class supported by Icomoon.
62
+ *
63
+ * @return string Field icon.
64
+ */
65
+ public function get_field_type_icon(): string {
66
+ return 'icon-align-left';
67
+ }
68
+
69
+ /**
70
+ * Returns whether field type is available for plugin version.
71
+ *
72
+ * @return bool Status if field type is available.
73
+ */
74
+ public function is_available(): bool {
75
+ return true;
76
+ }
77
+
78
+ /**
79
+ * Returns list of options for field settings.
80
+ *
81
+ * @return OptionInterface[] List of option fields.
82
+ */
83
+ public function get_options_objects(): array {
84
+ return [
85
+ GeneralTab::TAB_NAME => [
86
+ PriorityOption::FIELD_NAME => new PriorityOption(),
87
+ FieldTypeOption::FIELD_NAME => new FieldTypeOption(),
88
+ CustomFieldOption::FIELD_NAME => new CustomFieldOption(),
89
+ EnabledOption::FIELD_NAME => new EnabledOption(),
90
+ RequiredOption::FIELD_NAME => new RequiredOption(),
91
+ LabelOption::FIELD_NAME => new LabelOption(),
92
+ NameOption::FIELD_NAME => new NameOption(),
93
+ ],
94
+ AdvancedTab::TAB_NAME => [
95
+ ValidationOption::FIELD_NAME => new ValidationOption(),
96
+ ValidationInfoOption::FIELD_NAME => new ValidationInfoOption(),
97
+ ],
98
+ AppearanceTab::TAB_NAME => [
99
+ PlaceholderOption::FIELD_NAME => new PlaceholderOption(),
100
+ CssOption::FIELD_NAME => new CssOption(),
101
+ ],
102
+ DisplayTab::TAB_NAME => [
103
+ DisplayOnOption::FIELD_NAME => new DisplayOnOption(),
104
+ FormattingOption::FIELD_NAME => new FormattingOption(),
105
+ ],
106
+ LogicTab::TAB_NAME => [
107
+ LogicAdvOption::FIELD_NAME => new LogicAdvOption(),
108
+ ],
109
+ PricingTab::TAB_NAME => [
110
+ PricingAdvOption::FIELD_NAME => new PricingAdvOption(),
111
+ ],
112
+ ];
113
+ }
114
+ }
src/Field/Type/TimeType.php ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Field\Type;
9
+
10
+ use WPDesk\FCF\Free\Field\Type\TypeAbstract;
11
+ use WPDesk\FCF\Free\Field\Type\TypeInterface;
12
+
13
+ /**
14
+ * Supports field type settings.
15
+ */
16
+ class TimeType extends TypeAbstract implements TypeInterface {
17
+
18
+ const FIELD_TYPE = 'timepicker';
19
+
20
+ /**
21
+ * Returns value of field type.
22
+ *
23
+ * @return string Field type.
24
+ */
25
+ public function get_field_type(): string {
26
+ return self::FIELD_TYPE;
27
+ }
28
+
29
+ /**
30
+ * Returns label of field type.
31
+ *
32
+ * @return string Field label.
33
+ */
34
+ public function get_field_type_label(): string {
35
+ return __( 'Time', 'flexible-checkout-fields' );
36
+ }
37
+
38
+ /**
39
+ * Returns field icon as CSS Class supported by Icomoon.
40
+ *
41
+ * @return string Field icon.
42
+ */
43
+ public function get_field_type_icon(): string {
44
+ return 'icon-clock';
45
+ }
46
+
47
+ /**
48
+ * Returns whether field type is available for plugin version.
49
+ *
50
+ * @return bool Status if field type is available.
51
+ */
52
+ public function is_available(): bool {
53
+ return false;
54
+ }
55
+ }
src/Field/Type/TypeAbstract.php ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FCF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Field\Type;
9
+
10
+ use WPDesk\FCF\Free\Field\Type\TypeInterface;
11
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
12
+ use WPDesk\FCF\Free\Settings\Option\OptionIntegration;
13
+
14
+ /**
15
+ * Abstract class of field type.
16
+ */
17
+ abstract class TypeAbstract implements TypeInterface {
18
+
19
+ /**
20
+ * Returns value of field type used in HTML.
21
+ *
22
+ * @return string Field type.
23
+ */
24
+ public function get_raw_field_type(): string {
25
+ return $this->get_field_type();
26
+ }
27
+
28
+ /**
29
+ * Returns reserved field names, overriding this field type for selected field names.
30
+ *
31
+ * @return array Field names.
32
+ */
33
+ public function get_reserved_field_names(): array {
34
+ return [];
35
+ }
36
+
37
+ /**
38
+ * Returns field icon as CSS Class supported by Icomoon.
39
+ *
40
+ * @return string Field icon.
41
+ */
42
+ public function get_field_type_icon(): string {
43
+ return '';
44
+ }
45
+
46
+ /**
47
+ * Returns whether field type is hidden.
48
+ *
49
+ * @return bool Status if field type is hidden.
50
+ */
51
+ public function is_hidden(): bool {
52
+ return false;
53
+ }
54
+
55
+ /**
56
+ * Returns whether field type is available for plugin version.
57
+ *
58
+ * @return bool Status if field type is available.
59
+ */
60
+ public function is_available(): bool {
61
+ return false;
62
+ }
63
+
64
+ /**
65
+ * Returns list of options objects for field settings.
66
+ *
67
+ * @return OptionInterface[] List of field options objects.
68
+ */
69
+ public function get_options_objects(): array {
70
+ return [];
71
+ }
72
+
73
+ /**
74
+ * Returns list of options for field settings.
75
+ *
76
+ * @return array List of field options.
77
+ */
78
+ public function get_options(): array {
79
+ $options = [];
80
+ foreach ( $this->get_options_objects() as $option_objects ) {
81
+ foreach ( $option_objects as $option_object ) {
82
+ $options[] = ( new OptionIntegration( $option_object ) )->get_field_settings();
83
+ }
84
+ }
85
+ return $options;
86
+ }
87
+ }
src/Field/Type/TypeIntegration.php ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Field\Type;
9
+
10
+ use WPDesk\FCF\Free\Field\Type\TypeInterface;
11
+
12
+ /**
13
+ * Initializes integration for REST API route.
14
+ */
15
+ class TypeIntegration {
16
+
17
+ /**
18
+ * Class object for field type.
19
+ *
20
+ * @var TypeInterface
21
+ */
22
+ private $type_object;
23
+
24
+ /**
25
+ * Class constructor.
26
+ *
27
+ * @param TypeInterface $type_object Class object of field type.
28
+ */
29
+ public function __construct( TypeInterface $type_object ) {
30
+ $this->type_object = $type_object;
31
+ }
32
+
33
+ /**
34
+ * Integrate with WordPress and with other plugins using action/filter system.
35
+ *
36
+ * @return void
37
+ */
38
+ public function hooks() {
39
+ add_filter( 'flexible_checkout_fields/field_types', [ $this, 'add_field_type' ], 0 );
40
+ }
41
+
42
+ /**
43
+ * Adds new field type with settings of field type.
44
+ *
45
+ * @param array $types List of field types.
46
+ *
47
+ * @return array Updated list of field types.
48
+ *
49
+ * @internal
50
+ */
51
+ public function add_field_type( array $types ): array {
52
+ $field_type = $this->type_object->get_field_type();
53
+ $types[ $field_type ] = $this->get_field_type_settings();
54
+ return $types;
55
+ }
56
+
57
+ /**
58
+ * Returns list of settings for field type.
59
+ *
60
+ * @return array Settings of field type.
61
+ */
62
+ private function get_field_type_settings(): array {
63
+ return [
64
+ 'type' => $this->type_object->get_field_type(),
65
+ 'reserved_field_names' => $this->type_object->get_reserved_field_names(),
66
+ 'label' => $this->type_object->get_field_type_label(),
67
+ 'icon' => $this->type_object->get_field_type_icon(),
68
+ 'is_hidden' => $this->type_object->is_hidden(),
69
+ 'is_available' => $this->type_object->is_available(),
70
+ 'options' => $this->type_object->get_options(),
71
+ ];
72
+ }
73
+ }
src/Field/Type/TypeInterface.php ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Field\Type;
9
+
10
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
11
+
12
+ /**
13
+ * Interface of field type.
14
+ */
15
+ interface TypeInterface {
16
+
17
+ /**
18
+ * Returns value of field type.
19
+ *
20
+ * @return string Field type.
21
+ */
22
+ public function get_field_type(): string;
23
+
24
+ /**
25
+ * Returns value of field type used in HTML.
26
+ *
27
+ * @return string Field type.
28
+ */
29
+ public function get_raw_field_type(): string;
30
+
31
+ /**
32
+ * Returns reserved field names, overriding this field type for selected field names.
33
+ *
34
+ * @return array Field names.
35
+ */
36
+ public function get_reserved_field_names(): array;
37
+
38
+ /**
39
+ * Returns label of field type.
40
+ *
41
+ * @return string Field label.
42
+ */
43
+ public function get_field_type_label(): string;
44
+
45
+ /**
46
+ * Returns field icon as CSS Class supported by Icomoon.
47
+ *
48
+ * @return string Field icon.
49
+ */
50
+ public function get_field_type_icon(): string;
51
+
52
+ /**
53
+ * Returns whether field type is hidden.
54
+ *
55
+ * @return bool Status if field type is hidden.
56
+ */
57
+ public function is_hidden(): bool;
58
+
59
+ /**
60
+ * Returns whether field type is available for plugin version.
61
+ *
62
+ * @return bool Status if field type is available.
63
+ */
64
+ public function is_available(): bool;
65
+
66
+ /**
67
+ * Returns list of options objects for field settings.
68
+ *
69
+ * @return OptionInterface[] List of field options objects.
70
+ */
71
+ public function get_options_objects(): array;
72
+
73
+ /**
74
+ * Returns list of options for field settings.
75
+ *
76
+ * @return array List of field options.
77
+ */
78
+ public function get_options(): array;
79
+ }
src/Field/Type/Wc/WcAddress2Type.php ADDED
@@ -0,0 +1,108 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Field\Type\Wc;
9
+
10
+ use WPDesk\FCF\Free\Field\Type\TypeAbstract;
11
+ use WPDesk\FCF\Free\Field\Type\TypeInterface;
12
+ use WPDesk\FCF\Free\Settings\Tab\AdvancedTab;
13
+ use WPDesk\FCF\Free\Settings\Tab\AppearanceTab;
14
+ use WPDesk\FCF\Free\Settings\Tab\DisplayTab;
15
+ use WPDesk\FCF\Free\Settings\Tab\GeneralTab;
16
+ use WPDesk\FCF\Free\Settings\Tab\LogicTab;
17
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
18
+ use WPDesk\FCF\Free\Settings\Option\CssOption;
19
+ use WPDesk\FCF\Free\Settings\Option\DisplayOnOption;
20
+ use WPDesk\FCF\Free\Settings\Option\EnabledOption;
21
+ use WPDesk\FCF\Free\Settings\Option\FormattingWcOption;
22
+ use WPDesk\FCF\Free\Settings\Option\LabelOptionallyOption;
23
+ use WPDesk\FCF\Free\Settings\Option\LogicAdvOption;
24
+ use WPDesk\FCF\Free\Settings\Option\NameOption;
25
+ use WPDesk\FCF\Free\Settings\Option\PlaceholderOption;
26
+ use WPDesk\FCF\Free\Settings\Option\PriorityOption;
27
+ use WPDesk\FCF\Free\Settings\Option\RequiredOption;
28
+ use WPDesk\FCF\Free\Settings\Option\ValidationOption;
29
+ use WPDesk\FCF\Free\Settings\Option\ValidationInfoOption;
30
+
31
+ /**
32
+ * Supports field type settings.
33
+ */
34
+ class WcAddress2Type extends TypeAbstract implements TypeInterface {
35
+
36
+ const FIELD_TYPE = 'wc_address2';
37
+
38
+ /**
39
+ * Returns value of field type.
40
+ *
41
+ * @return string Field type.
42
+ */
43
+ public function get_field_type(): string {
44
+ return self::FIELD_TYPE;
45
+ }
46
+
47
+ /**
48
+ * Returns label of field type.
49
+ *
50
+ * @return string Field label.
51
+ */
52
+ public function get_field_type_label(): string {
53
+ return __( 'WooCommerce Default Field', 'flexible-checkout-fields' );
54
+ }
55
+
56
+ /**
57
+ * Returns reserved field names, overriding this field type for selected field names.
58
+ *
59
+ * @return array Field names.
60
+ */
61
+ public function get_reserved_field_names(): array {
62
+ return [
63
+ 'billing_address_2',
64
+ 'shipping_address_2',
65
+ ];
66
+ }
67
+
68
+ /**
69
+ * Returns whether field type is hidden.
70
+ *
71
+ * @return bool Status if field type is hidden.
72
+ */
73
+ public function is_hidden(): bool {
74
+ return true;
75
+ }
76
+
77
+ /**
78
+ * Returns list of options for field settings.
79
+ *
80
+ * @return OptionInterface[] List of option fields.
81
+ */
82
+ public function get_options_objects(): array {
83
+ return [
84
+ GeneralTab::TAB_NAME => [
85
+ PriorityOption::FIELD_NAME => new PriorityOption(),
86
+ EnabledOption::FIELD_NAME => new EnabledOption(),
87
+ RequiredOption::FIELD_NAME => new RequiredOption(),
88
+ LabelOptionallyOption::FIELD_NAME => new LabelOptionallyOption(),
89
+ NameOption::FIELD_NAME => new NameOption(),
90
+ ],
91
+ AdvancedTab::TAB_NAME => [
92
+ ValidationOption::FIELD_NAME => new ValidationOption(),
93
+ ValidationInfoOption::FIELD_NAME => new ValidationInfoOption(),
94
+ ],
95
+ AppearanceTab::TAB_NAME => [
96
+ PlaceholderOption::FIELD_NAME => new PlaceholderOption(),
97
+ CssOption::FIELD_NAME => new CssOption(),
98
+ ],
99
+ DisplayTab::TAB_NAME => [
100
+ DisplayOnOption::FIELD_NAME => new DisplayOnOption(),
101
+ FormattingWcOption::FIELD_NAME => new FormattingWcOption(),
102
+ ],
103
+ LogicTab::TAB_NAME => [
104
+ LogicAdvOption::FIELD_NAME => new LogicAdvOption(),
105
+ ],
106
+ ];
107
+ }
108
+ }
src/Field/Type/Wc/WcCountryType.php ADDED
@@ -0,0 +1,101 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Field\Type\Wc;
9
+
10
+ use WPDesk\FCF\Free\Field\Type\TypeAbstract;
11
+ use WPDesk\FCF\Free\Field\Type\TypeInterface;
12
+ use WPDesk\FCF\Free\Settings\Tab\AdvancedTab;
13
+ use WPDesk\FCF\Free\Settings\Tab\AppearanceTab;
14
+ use WPDesk\FCF\Free\Settings\Tab\DisplayTab;
15
+ use WPDesk\FCF\Free\Settings\Tab\GeneralTab;
16
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
17
+ use WPDesk\FCF\Free\Settings\Option\CssOption;
18
+ use WPDesk\FCF\Free\Settings\Option\DisplayOnOption;
19
+ use WPDesk\FCF\Free\Settings\Option\EnabledOption;
20
+ use WPDesk\FCF\Free\Settings\Option\FormattingWcOption;
21
+ use WPDesk\FCF\Free\Settings\Option\LabelOption;
22
+ use WPDesk\FCF\Free\Settings\Option\NameOption;
23
+ use WPDesk\FCF\Free\Settings\Option\PriorityOption;
24
+ use WPDesk\FCF\Free\Settings\Option\RequiredHiddenOption;
25
+ use WPDesk\FCF\Free\Settings\Option\ValidationOption;
26
+ use WPDesk\FCF\Free\Settings\Option\ValidationInfoOption;
27
+
28
+ /**
29
+ * Supports field type settings.
30
+ */
31
+ class WcCountryType extends TypeAbstract implements TypeInterface {
32
+
33
+ const FIELD_TYPE = 'wc_country';
34
+
35
+ /**
36
+ * Returns value of field type.
37
+ *
38
+ * @return string Field type.
39
+ */
40
+ public function get_field_type(): string {
41
+ return self::FIELD_TYPE;
42
+ }
43
+
44
+ /**
45
+ * Returns label of field type.
46
+ *
47
+ * @return string Field label.
48
+ */
49
+ public function get_field_type_label(): string {
50
+ return __( 'WooCommerce Default Field', 'flexible-checkout-fields' );
51
+ }
52
+
53
+ /**
54
+ * Returns reserved field names, overriding this field type for selected field names.
55
+ *
56
+ * @return array Field names.
57
+ */
58
+ public function get_reserved_field_names(): array {
59
+ return [
60
+ 'billing_country',
61
+ 'shipping_country',
62
+ ];
63
+ }
64
+
65
+ /**
66
+ * Returns whether field type is hidden.
67
+ *
68
+ * @return bool Status if field type is hidden.
69
+ */
70
+ public function is_hidden(): bool {
71
+ return true;
72
+ }
73
+
74
+ /**
75
+ * Returns list of options for field settings.
76
+ *
77
+ * @return OptionInterface[] List of option fields.
78
+ */
79
+ public function get_options_objects(): array {
80
+ return [
81
+ GeneralTab::TAB_NAME => [
82
+ PriorityOption::FIELD_NAME => new PriorityOption(),
83
+ EnabledOption::FIELD_NAME => new EnabledOption(),
84
+ RequiredHiddenOption::FIELD_NAME => new RequiredHiddenOption(),
85
+ LabelOption::FIELD_NAME => new LabelOption(),
86
+ NameOption::FIELD_NAME => new NameOption(),
87
+ ],
88
+ AdvancedTab::TAB_NAME => [
89
+ ValidationOption::FIELD_NAME => new ValidationOption(),
90
+ ValidationInfoOption::FIELD_NAME => new ValidationInfoOption(),
91
+ ],
92
+ AppearanceTab::TAB_NAME => [
93
+ CssOption::FIELD_NAME => new CssOption(),
94
+ ],
95
+ DisplayTab::TAB_NAME => [
96
+ DisplayOnOption::FIELD_NAME => new DisplayOnOption(),
97
+ FormattingWcOption::FIELD_NAME => new FormattingWcOption(),
98
+ ],
99
+ ];
100
+ }
101
+ }
src/Field/Type/Wc/WcDefaultType.php ADDED
@@ -0,0 +1,127 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Field\Type\Wc;
9
+
10
+ use WPDesk\FCF\Free\Field\Type\TypeAbstract;
11
+ use WPDesk\FCF\Free\Field\Type\TypeInterface;
12
+ use WPDesk\FCF\Free\Settings\Tab\AdvancedTab;
13
+ use WPDesk\FCF\Free\Settings\Tab\AppearanceTab;
14
+ use WPDesk\FCF\Free\Settings\Tab\DisplayTab;
15
+ use WPDesk\FCF\Free\Settings\Tab\GeneralTab;
16
+ use WPDesk\FCF\Free\Settings\Tab\LogicTab;
17
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
18
+ use WPDesk\FCF\Free\Settings\Option\CssOption;
19
+ use WPDesk\FCF\Free\Settings\Option\DisplayOnOption;
20
+ use WPDesk\FCF\Free\Settings\Option\EnabledOption;
21
+ use WPDesk\FCF\Free\Settings\Option\FormattingWcOption;
22
+ use WPDesk\FCF\Free\Settings\Option\LabelOption;
23
+ use WPDesk\FCF\Free\Settings\Option\LogicAdvOption;
24
+ use WPDesk\FCF\Free\Settings\Option\NameOption;
25
+ use WPDesk\FCF\Free\Settings\Option\PlaceholderOption;
26
+ use WPDesk\FCF\Free\Settings\Option\PriorityOption;
27
+ use WPDesk\FCF\Free\Settings\Option\RequiredOption;
28
+ use WPDesk\FCF\Free\Settings\Option\ValidationOption;
29
+ use WPDesk\FCF\Free\Settings\Option\ValidationInfoOption;
30
+
31
+ /**
32
+ * Supports field type settings.
33
+ */
34
+ class WcDefaultType extends TypeAbstract implements TypeInterface {
35
+
36
+ const FIELD_TYPE = 'wc_text';
37
+
38
+ /**
39
+ * Returns value of field type.
40
+ *
41
+ * @return string Field type.
42
+ */
43
+ public function get_field_type(): string {
44
+ return self::FIELD_TYPE;
45
+ }
46
+
47
+ /**
48
+ * Returns label of field type.
49
+ *
50
+ * @return string Field label.
51
+ */
52
+ public function get_field_type_label(): string {
53
+ return __( 'WooCommerce Default Field', 'flexible-checkout-fields' );
54
+ }
55
+
56
+ /**
57
+ * Returns reserved field names, overriding this field type for selected field names.
58
+ *
59
+ * @return array Field names.
60
+ */
61
+ public function get_reserved_field_names(): array {
62
+ return [
63
+ 'billing_first_name',
64
+ 'billing_last_name',
65
+ 'billing_company',
66
+ 'billing_address_1',
67
+ 'billing_city',
68
+ 'billing_phone',
69
+ 'billing_email',
70
+ 'shipping_first_name',
71
+ 'shipping_last_name',
72
+ 'shipping_company',
73
+ 'shipping_address_1',
74
+ 'shipping_city',
75
+ ];
76
+ }
77
+
78
+ /**
79
+ * Returns whether field type is hidden.
80
+ *
81
+ * @return bool Status if field type is hidden.
82
+ */
83
+ public function is_hidden(): bool {
84
+ return true;
85
+ }
86
+
87
+ /**
88
+ * Returns whether field type is available for plugin version.
89
+ *
90
+ * @return bool Status if field type is available.
91
+ */
92
+ public function is_available(): bool {
93
+ return true;
94
+ }
95
+
96
+ /**
97
+ * Returns list of options for field settings.
98
+ *
99
+ * @return OptionInterface[] List of option fields.
100
+ */
101
+ public function get_options_objects(): array {
102
+ return [
103
+ GeneralTab::TAB_NAME => [
104
+ PriorityOption::FIELD_NAME => new PriorityOption(),
105
+ EnabledOption::FIELD_NAME => new EnabledOption(),
106
+ RequiredOption::FIELD_NAME => new RequiredOption(),
107
+ LabelOption::FIELD_NAME => new LabelOption(),
108
+ NameOption::FIELD_NAME => new NameOption(),
109
+ ],
110
+ AdvancedTab::TAB_NAME => [
111
+ ValidationOption::FIELD_NAME => new ValidationOption(),
112
+ ValidationInfoOption::FIELD_NAME => new ValidationInfoOption(),
113
+ ],
114
+ AppearanceTab::TAB_NAME => [
115
+ PlaceholderOption::FIELD_NAME => new PlaceholderOption(),
116
+ CssOption::FIELD_NAME => new CssOption(),
117
+ ],
118
+ DisplayTab::TAB_NAME => [
119
+ DisplayOnOption::FIELD_NAME => new DisplayOnOption(),
120
+ FormattingWcOption::FIELD_NAME => new FormattingWcOption(),
121
+ ],
122
+ LogicTab::TAB_NAME => [
123
+ LogicAdvOption::FIELD_NAME => new LogicAdvOption(),
124
+ ],
125
+ ];
126
+ }
127
+ }
src/Field/Type/Wc/WcNotesType.php ADDED
@@ -0,0 +1,114 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Field\Type\Wc;
9
+
10
+ use WPDesk\FCF\Free\Field\Type\TypeAbstract;
11
+ use WPDesk\FCF\Free\Field\Type\TypeInterface;
12
+ use WPDesk\FCF\Free\Settings\Tab\AdvancedTab;
13
+ use WPDesk\FCF\Free\Settings\Tab\AppearanceTab;
14
+ use WPDesk\FCF\Free\Settings\Tab\DisplayTab;
15
+ use WPDesk\FCF\Free\Settings\Tab\GeneralTab;
16
+ use WPDesk\FCF\Free\Settings\Tab\LogicTab;
17
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
18
+ use WPDesk\FCF\Free\Settings\Option\CssOption;
19
+ use WPDesk\FCF\Free\Settings\Option\DisplayOnWithoutAddressOption;
20
+ use WPDesk\FCF\Free\Settings\Option\EnabledOption;
21
+ use WPDesk\FCF\Free\Settings\Option\LabelOption;
22
+ use WPDesk\FCF\Free\Settings\Option\LogicAdvOption;
23
+ use WPDesk\FCF\Free\Settings\Option\NameOption;
24
+ use WPDesk\FCF\Free\Settings\Option\PlaceholderOption;
25
+ use WPDesk\FCF\Free\Settings\Option\PriorityOption;
26
+ use WPDesk\FCF\Free\Settings\Option\RequiredOption;
27
+ use WPDesk\FCF\Free\Settings\Option\ValidationOption;
28
+ use WPDesk\FCF\Free\Settings\Option\ValidationInfoOption;
29
+
30
+ /**
31
+ * Supports field type settings.
32
+ */
33
+ class WcNotesType extends TypeAbstract implements TypeInterface {
34
+
35
+ const FIELD_TYPE = 'wc_notes';
36
+
37
+ /**
38
+ * Returns value of field type.
39
+ *
40
+ * @return string Field type.
41
+ */
42
+ public function get_field_type(): string {
43
+ return self::FIELD_TYPE;
44
+ }
45
+
46
+ /**
47
+ * Returns label of field type.
48
+ *
49
+ * @return string Field label.
50
+ */
51
+ public function get_field_type_label(): string {
52
+ return __( 'WooCommerce Default Field', 'flexible-checkout-fields' );
53
+ }
54
+
55
+ /**
56
+ * Returns reserved field names, overriding this field type for selected field names.
57
+ *
58
+ * @return array Field names.
59
+ */
60
+ public function get_reserved_field_names(): array {
61
+ return [
62
+ 'order_comments',
63
+ ];
64
+ }
65
+
66
+ /**
67
+ * Returns whether field type is hidden.
68
+ *
69
+ * @return bool Status if field type is hidden.
70
+ */
71
+ public function is_hidden(): bool {
72
+ return true;
73
+ }
74
+
75
+ /**
76
+ * Returns whether field type is available for plugin version.
77
+ *
78
+ * @return bool Status if field type is available.
79
+ */
80
+ public function is_available(): bool {
81
+ return true;
82
+ }
83
+
84
+ /**
85
+ * Returns list of options for field settings.
86
+ *
87
+ * @return OptionInterface[] List of option fields.
88
+ */
89
+ public function get_options_objects(): array {
90
+ return [
91
+ GeneralTab::TAB_NAME => [
92
+ PriorityOption::FIELD_NAME => new PriorityOption(),
93
+ EnabledOption::FIELD_NAME => new EnabledOption(),
94
+ RequiredOption::FIELD_NAME => new RequiredOption(),
95
+ LabelOption::FIELD_NAME => new LabelOption(),
96
+ NameOption::FIELD_NAME => new NameOption(),
97
+ ],
98
+ AdvancedTab::TAB_NAME => [
99
+ ValidationOption::FIELD_NAME => new ValidationOption(),
100
+ ValidationInfoOption::FIELD_NAME => new ValidationInfoOption(),
101
+ ],
102
+ AppearanceTab::TAB_NAME => [
103
+ PlaceholderOption::FIELD_NAME => new PlaceholderOption(),
104
+ CssOption::FIELD_NAME => new CssOption(),
105
+ ],
106
+ DisplayTab::TAB_NAME => [
107
+ DisplayOnWithoutAddressOption::FIELD_NAME => new DisplayOnWithoutAddressOption(),
108
+ ],
109
+ LogicTab::TAB_NAME => [
110
+ LogicAdvOption::FIELD_NAME => new LogicAdvOption(),
111
+ ],
112
+ ];
113
+ }
114
+ }
src/Field/Type/Wc/WcPostcodeType.php ADDED
@@ -0,0 +1,103 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Field\Type\Wc;
9
+
10
+ use WPDesk\FCF\Free\Field\Type\TypeAbstract;
11
+ use WPDesk\FCF\Free\Field\Type\TypeInterface;
12
+ use WPDesk\FCF\Free\Settings\Tab\AdvancedTab;
13
+ use WPDesk\FCF\Free\Settings\Tab\AppearanceTab;
14
+ use WPDesk\FCF\Free\Settings\Tab\DisplayTab;
15
+ use WPDesk\FCF\Free\Settings\Tab\GeneralTab;
16
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
17
+ use WPDesk\FCF\Free\Settings\Option\CssOption;
18
+ use WPDesk\FCF\Free\Settings\Option\DisplayOnOption;
19
+ use WPDesk\FCF\Free\Settings\Option\EnabledOption;
20
+ use WPDesk\FCF\Free\Settings\Option\FormattingWcOption;
21
+ use WPDesk\FCF\Free\Settings\Option\LabelOption;
22
+ use WPDesk\FCF\Free\Settings\Option\NameOption;
23
+ use WPDesk\FCF\Free\Settings\Option\PlaceholderOption;
24
+ use WPDesk\FCF\Free\Settings\Option\PriorityOption;
25
+ use WPDesk\FCF\Free\Settings\Option\RequiredHiddenOption;
26
+ use WPDesk\FCF\Free\Settings\Option\ValidationOption;
27
+ use WPDesk\FCF\Free\Settings\Option\ValidationInfoOption;
28
+
29
+ /**
30
+ * Supports field type settings.
31
+ */
32
+ class WcPostcodeType extends TypeAbstract implements TypeInterface {
33
+
34
+ const FIELD_TYPE = 'wc_postcode';
35
+
36
+ /**
37
+ * Returns value of field type.
38
+ *
39
+ * @return string Field type.
40
+ */
41
+ public function get_field_type(): string {
42
+ return self::FIELD_TYPE;
43
+ }
44
+
45
+ /**
46
+ * Returns label of field type.
47
+ *
48
+ * @return string Field label.
49
+ */
50
+ public function get_field_type_label(): string {
51
+ return __( 'WooCommerce Default Field', 'flexible-checkout-fields' );
52
+ }
53
+
54
+ /**
55
+ * Returns reserved field names, overriding this field type for selected field names.
56
+ *
57
+ * @return array Field names.
58
+ */
59
+ public function get_reserved_field_names(): array {
60
+ return [
61
+ 'billing_postcode',
62
+ 'shipping_postcode',
63
+ ];
64
+ }
65
+
66
+ /**
67
+ * Returns whether field type is hidden.
68
+ *
69
+ * @return bool Status if field type is hidden.
70
+ */
71
+ public function is_hidden(): bool {
72
+ return true;
73
+ }
74
+
75
+ /**
76
+ * Returns list of options for field settings.
77
+ *
78
+ * @return OptionInterface[] List of option fields.
79
+ */
80
+ public function get_options_objects(): array {
81
+ return [
82
+ GeneralTab::TAB_NAME => [
83
+ PriorityOption::FIELD_NAME => new PriorityOption(),
84
+ EnabledOption::FIELD_NAME => new EnabledOption(),
85
+ RequiredHiddenOption::FIELD_NAME => new RequiredHiddenOption(),
86
+ LabelOption::FIELD_NAME => new LabelOption(),
87
+ NameOption::FIELD_NAME => new NameOption(),
88
+ ],
89
+ AdvancedTab::TAB_NAME => [
90
+ ValidationOption::FIELD_NAME => new ValidationOption(),
91
+ ValidationInfoOption::FIELD_NAME => new ValidationInfoOption(),
92
+ ],
93
+ AppearanceTab::TAB_NAME => [
94
+ PlaceholderOption::FIELD_NAME => new PlaceholderOption(),
95
+ CssOption::FIELD_NAME => new CssOption(),
96
+ ],
97
+ DisplayTab::TAB_NAME => [
98
+ DisplayOnOption::FIELD_NAME => new DisplayOnOption(),
99
+ FormattingWcOption::FIELD_NAME => new FormattingWcOption(),
100
+ ],
101
+ ];
102
+ }
103
+ }
src/Field/Type/Wc/WcStateType.php ADDED
@@ -0,0 +1,103 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Field\Type\Wc;
9
+
10
+ use WPDesk\FCF\Free\Field\Type\TypeAbstract;
11
+ use WPDesk\FCF\Free\Field\Type\TypeInterface;
12
+ use WPDesk\FCF\Free\Settings\Tab\AdvancedTab;
13
+ use WPDesk\FCF\Free\Settings\Tab\AppearanceTab;
14
+ use WPDesk\FCF\Free\Settings\Tab\DisplayTab;
15
+ use WPDesk\FCF\Free\Settings\Tab\GeneralTab;
16
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
17
+ use WPDesk\FCF\Free\Settings\Option\CssOption;
18
+ use WPDesk\FCF\Free\Settings\Option\DisplayOnOption;
19
+ use WPDesk\FCF\Free\Settings\Option\EnabledOption;
20
+ use WPDesk\FCF\Free\Settings\Option\FormattingStateOption;
21
+ use WPDesk\FCF\Free\Settings\Option\FormattingWcOption;
22
+ use WPDesk\FCF\Free\Settings\Option\LabelOption;
23
+ use WPDesk\FCF\Free\Settings\Option\NameOption;
24
+ use WPDesk\FCF\Free\Settings\Option\PriorityOption;
25
+ use WPDesk\FCF\Free\Settings\Option\RequiredHiddenOption;
26
+ use WPDesk\FCF\Free\Settings\Option\ValidationOption;
27
+ use WPDesk\FCF\Free\Settings\Option\ValidationInfoOption;
28
+
29
+ /**
30
+ * Supports field type settings.
31
+ */
32
+ class WcStateType extends TypeAbstract implements TypeInterface {
33
+
34
+ const FIELD_TYPE = 'wc_state';
35
+
36
+ /**
37
+ * Returns value of field type.
38
+ *
39
+ * @return string Field type.
40
+ */
41
+ public function get_field_type(): string {
42
+ return self::FIELD_TYPE;
43
+ }
44
+
45
+ /**
46
+ * Returns label of field type.
47
+ *
48
+ * @return string Field label.
49
+ */
50
+ public function get_field_type_label(): string {
51
+ return __( 'WooCommerce Default Field', 'flexible-checkout-fields' );
52
+ }
53
+
54
+ /**
55
+ * Returns reserved field names, overriding this field type for selected field names.
56
+ *
57
+ * @return array Field names.
58
+ */
59
+ public function get_reserved_field_names(): array {
60
+ return [
61
+ 'billing_state',
62
+ 'shipping_state',
63
+ ];
64
+ }
65
+
66
+ /**
67
+ * Returns whether field type is hidden.
68
+ *
69
+ * @return bool Status if field type is hidden.
70
+ */
71
+ public function is_hidden(): bool {
72
+ return true;
73
+ }
74
+
75
+ /**
76
+ * Returns list of options for field settings.
77
+ *
78
+ * @return OptionInterface[] List of option fields.
79
+ */
80
+ public function get_options_objects(): array {
81
+ return [
82
+ GeneralTab::TAB_NAME => [
83
+ PriorityOption::FIELD_NAME => new PriorityOption(),
84
+ EnabledOption::FIELD_NAME => new EnabledOption(),
85
+ RequiredHiddenOption::FIELD_NAME => new RequiredHiddenOption(),
86
+ LabelOption::FIELD_NAME => new LabelOption(),
87
+ NameOption::FIELD_NAME => new NameOption(),
88
+ ],
89
+ AdvancedTab::TAB_NAME => [
90
+ ValidationOption::FIELD_NAME => new ValidationOption(),
91
+ ValidationInfoOption::FIELD_NAME => new ValidationInfoOption(),
92
+ ],
93
+ AppearanceTab::TAB_NAME => [
94
+ CssOption::FIELD_NAME => new CssOption(),
95
+ ],
96
+ DisplayTab::TAB_NAME => [
97
+ DisplayOnOption::FIELD_NAME => new DisplayOnOption(),
98
+ FormattingWcOption::FIELD_NAME => new FormattingWcOption(),
99
+ FormattingStateOption::FIELD_NAME => new FormattingStateOption(),
100
+ ],
101
+ ];
102
+ }
103
+ }
src/Field/Types.php ADDED
@@ -0,0 +1,62 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FCF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Field;
9
+
10
+ use WPDesk\FCF\Free\Field\Type\TypeIntegration;
11
+ use WPDesk\FCF\Free\Field\Type\TextType;
12
+ use WPDesk\FCF\Free\Field\Type\TextareaType;
13
+ use WPDesk\FCF\Free\Field\Type\CheckboxType;
14
+ use WPDesk\FCF\Free\Field\Type\RadioType;
15
+ use WPDesk\FCF\Free\Field\Type\SelectType;
16
+ use WPDesk\FCF\Free\Field\Type\Multiselect;
17
+ use WPDesk\FCF\Free\Field\Type\DateType;
18
+ use WPDesk\FCF\Free\Field\Type\TimeType;
19
+ use WPDesk\FCF\Free\Field\Type\ColorType;
20
+ use WPDesk\FCF\Free\Field\Type\HeadingType;
21
+ use WPDesk\FCF\Free\Field\Type\HtmlType;
22
+ use WPDesk\FCF\Free\Field\Type\FileType;
23
+ use WPDesk\FCF\Free\Field\Type\DefaultType;
24
+ use WPDesk\FCF\Free\Field\Type\Wc\WcDefaultType;
25
+ use WPDesk\FCF\Free\Field\Type\Wc\WcAddress2Type;
26
+ use WPDesk\FCF\Free\Field\Type\Wc\WcCountryType;
27
+ use WPDesk\FCF\Free\Field\Type\Wc\WcPostcodeType;
28
+ use WPDesk\FCF\Free\Field\Type\Wc\WcStateType;
29
+ use WPDesk\FCF\Free\Field\Type\Wc\WcNotesType;
30
+
31
+ /**
32
+ * Supports management for field types.
33
+ */
34
+ class Types {
35
+
36
+ /**
37
+ * Initializes actions for class.
38
+ *
39
+ * @return void
40
+ */
41
+ public function init() {
42
+ ( new TypeIntegration( new TextType() ) )->hooks();
43
+ ( new TypeIntegration( new TextareaType() ) )->hooks();
44
+ ( new TypeIntegration( new CheckboxType() ) )->hooks();
45
+ ( new TypeIntegration( new RadioType() ) )->hooks();
46
+ ( new TypeIntegration( new SelectType() ) )->hooks();
47
+ ( new TypeIntegration( new Multiselect() ) )->hooks();
48
+ ( new TypeIntegration( new DateType() ) )->hooks();
49
+ ( new TypeIntegration( new TimeType() ) )->hooks();
50
+ ( new TypeIntegration( new ColorType() ) )->hooks();
51
+ ( new TypeIntegration( new HeadingType() ) )->hooks();
52
+ ( new TypeIntegration( new HtmlType() ) )->hooks();
53
+ ( new TypeIntegration( new FileType() ) )->hooks();
54
+ ( new TypeIntegration( new DefaultType() ) )->hooks();
55
+ ( new TypeIntegration( new WcDefaultType() ) )->hooks();
56
+ ( new TypeIntegration( new WcAddress2Type() ) )->hooks();
57
+ ( new TypeIntegration( new WcCountryType() ) )->hooks();
58
+ ( new TypeIntegration( new WcPostcodeType() ) )->hooks();
59
+ ( new TypeIntegration( new WcStateType() ) )->hooks();
60
+ ( new TypeIntegration( new WcNotesType() ) )->hooks();
61
+ }
62
+ }
src/Helpers/Shortener.php CHANGED
@@ -33,7 +33,7 @@ class Shortener implements Hookable, HookablePluginDependant {
33
  * Generates short URL for link.
34
  *
35
  * @param string $default_value Default value for filter.
36
- * @param string $short_path Path for short URL.
37
  *
38
  * @return string Short URL.
39
  *
@@ -44,7 +44,7 @@ class Shortener implements Hookable, HookablePluginDependant {
44
  return '#';
45
  }
46
 
47
- $locale = get_locale();
48
  $short_url = self::SHORTENER_DOMAIN . $short_path;
49
  switch ( $locale ) {
50
  case 'pl_PL':
33
  * Generates short URL for link.
34
  *
35
  * @param string $default_value Default value for filter.
36
+ * @param string $short_path Path for short URL.
37
  *
38
  * @return string Short URL.
39
  *
44
  return '#';
45
  }
46
 
47
+ $locale = get_locale();
48
  $short_url = self::SHORTENER_DOMAIN . $short_path;
49
  switch ( $locale ) {
50
  case 'pl_PL':
src/Plugin.php CHANGED
@@ -12,9 +12,10 @@ use FcfVendor\WPDesk\PluginBuilder\Plugin\AbstractPlugin;
12
  use FcfVendor\WPDesk\PluginBuilder\Plugin\HookableCollection;
13
  use FcfVendor\WPDesk\PluginBuilder\Plugin\HookableParent;
14
  use WPDesk\FCF\Free\Admin;
 
15
  use WPDesk\FCF\Free\Helpers;
16
  use WPDesk\FCF\Free\Integration;
17
-
18
  /**
19
  * Main plugin class. The most important flow decisions are made here.
20
  */
@@ -61,8 +62,14 @@ class Plugin extends AbstractPlugin implements HookableCollection {
61
  */
62
  public function init() {
63
  $this->add_hookable( new Admin\NoticeReview() );
 
 
64
  $this->add_hookable( new Helpers\Shortener() );
65
  $this->add_hookable( new Integration\IntegratorIntegration( $this->plugin_old ) );
 
 
 
 
66
  }
67
 
68
  /**
12
  use FcfVendor\WPDesk\PluginBuilder\Plugin\HookableCollection;
13
  use FcfVendor\WPDesk\PluginBuilder\Plugin\HookableParent;
14
  use WPDesk\FCF\Free\Admin;
15
+ use WPDesk\FCF\Free\Field;
16
  use WPDesk\FCF\Free\Helpers;
17
  use WPDesk\FCF\Free\Integration;
18
+ use WPDesk\FCF\Free\Settings;
19
  /**
20
  * Main plugin class. The most important flow decisions are made here.
21
  */
62
  */
63
  public function init() {
64
  $this->add_hookable( new Admin\NoticeReview() );
65
+ $this->add_hookable( new Admin\Page() );
66
+ ( new Field\Types() )->init();
67
  $this->add_hookable( new Helpers\Shortener() );
68
  $this->add_hookable( new Integration\IntegratorIntegration( $this->plugin_old ) );
69
+ $this->add_hookable( new Settings\Page() );
70
+ ( new Settings\Forms() )->init();
71
+ ( new Settings\Routes() )->init();
72
+ ( new Settings\Tabs() )->init();
73
  }
74
 
75
  /**
src/Settings/Form/EditFieldsForm.php ADDED
@@ -0,0 +1,133 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Form;
9
+
10
+ use WPDesk\FCF\Free\Settings\Form\FormAbstract;
11
+ use WPDesk\FCF\Free\Settings\Form\FormInterface;
12
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
13
+ use WPDesk\FCF\Free\Field\FieldData;
14
+
15
+ /**
16
+ * Supports settings for form.
17
+ */
18
+ class EditFieldsForm extends FormAbstract implements FormInterface {
19
+
20
+ const FORM_TYPE = 'fields';
21
+ const SETTINGS_OPTION_NAME = 'inspire_checkout_fields_settings';
22
+
23
+ /**
24
+ * Returns type of form.
25
+ *
26
+ * @return string Type of form.
27
+ */
28
+ public function get_form_type(): string {
29
+ return self::FORM_TYPE;
30
+ }
31
+
32
+ /**
33
+ * Returns basic settings for form.
34
+ *
35
+ * @param array $form_data Default settings of form.
36
+ * @param string $form_key Key of form.
37
+ *
38
+ * @return array Settings of form.
39
+ */
40
+ public function get_form_data( array $form_data, string $form_key = '' ): array {
41
+ $settings = get_option( self::SETTINGS_OPTION_NAME, [] );
42
+ $section_fields = array_merge( $this->get_section_form_data( $form_key ), $settings[ $form_key ] ?? [] );
43
+ if ( ! $section_fields ) {
44
+ return $form_data;
45
+ }
46
+
47
+ foreach ( $section_fields as $field_name => $field_data ) {
48
+ $field_data['name'] = $field_name;
49
+ if ( ! ( $new_field_data = FieldData::get_field_data( $field_data ) ) ) {
50
+ continue;
51
+ }
52
+ $form_data[ $field_name ] = $new_field_data;
53
+ }
54
+
55
+ return $form_data;
56
+ }
57
+
58
+ /**
59
+ * Returns default settings for form of checkout section.
60
+ *
61
+ * @param string $section_key Key of section.
62
+ *
63
+ * @return array Settings of form.
64
+ */
65
+ private function get_section_form_data( string $section_key ): array {
66
+ $countries = new \WC_Countries();
67
+ $sections = [
68
+ 'billing' => $countries->get_address_fields( $countries->get_base_country(), 'billing_' ),
69
+ 'shipping' => $countries->get_address_fields( $countries->get_base_country(), 'shipping_' ),
70
+ 'order' => [
71
+ 'order_comments' => [
72
+ 'type' => 'textarea',
73
+ 'class' => [ 'notes' ],
74
+ 'label' => __( 'Order Notes', 'flexible-checkout-fields' ),
75
+ 'placeholder' => __( 'Notes about your order, e.g. special notes for delivery.', 'flexible-checkout-fields' ),
76
+ ],
77
+ ],
78
+ ] + $this->get_custom_sections();
79
+
80
+ return $sections[ $section_key ] ?? [];
81
+ }
82
+
83
+ /**
84
+ * Returns list of custom checkout sections.
85
+ *
86
+ * @return array List of sections.
87
+ */
88
+ private function get_custom_sections(): array {
89
+ $custom_sections = apply_filters( 'flexible_checkout_fields_all_sections', [] );
90
+
91
+ $sections = [];
92
+ foreach ( $custom_sections as $custom_section ) {
93
+ $sections[ $custom_section['section'] ] = [];
94
+ }
95
+ return $sections;
96
+ }
97
+
98
+ /**
99
+ * Saves settings for form.
100
+ *
101
+ * @param array $params Params for endpoint.
102
+ *
103
+ * @return bool Status of process.
104
+ *
105
+ * @throws \Exception .
106
+ */
107
+ public function save_form_data( array $params ): bool {
108
+ $posted_fields = [];
109
+ foreach ( $params['form_fields'] as $field ) {
110
+ $posted_fields[ $field['name'] ] = $field;
111
+ }
112
+
113
+ $section_fields = [];
114
+ foreach ( $params['form_fields'] as $field_data ) {
115
+ if ( ! ( $new_field_data = FieldData::get_field_data( $posted_fields[ $field_data['name'] ], false ) ) ) {
116
+ continue;
117
+ }
118
+ $section_fields[ $field_data['name'] ] = $new_field_data;
119
+ }
120
+
121
+ $settings = get_option( self::SETTINGS_OPTION_NAME, [] ) ?: [];
122
+ if ( ! $section_fields ) {
123
+ if ( isset( $settings[ $params['section_name'] ] ) ) {
124
+ unset( $settings[ $params['section_name'] ] );
125
+ }
126
+ } else {
127
+ $settings[ $params['section_name'] ] = $section_fields;
128
+ }
129
+
130
+ update_option( self::SETTINGS_OPTION_NAME, $settings );
131
+ return true;
132
+ }
133
+ }
src/Settings/Form/FormAbstract.php ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FCF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Form;
9
+
10
+ use WPDesk\FCF\Free\Settings\Form\FormInterface;
11
+
12
+ /**
13
+ * Abstract class for form settings.
14
+ */
15
+ abstract class FormAbstract implements FormInterface {
16
+
17
+ }
src/Settings/Form/FormIntegration.php ADDED
@@ -0,0 +1,80 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Form;
9
+
10
+ use WPDesk\FCF\Free\Settings\Form\FormInterface;
11
+
12
+ /**
13
+ * Initializes integration for form.
14
+ */
15
+ class FormIntegration {
16
+
17
+ /**
18
+ * Class object for field type.
19
+ *
20
+ * @var FormInterface
21
+ */
22
+ private $form_object;
23
+
24
+ /**
25
+ * Class constructor.
26
+ *
27
+ * @param FormInterface $form_object Class object of field type.
28
+ */
29
+ public function __construct( FormInterface $form_object ) {
30
+ $this->form_object = $form_object;
31
+ }
32
+
33
+ /**
34
+ * Integrate with WordPress and with other plugins using action/filter system.
35
+ *
36
+ * @return void
37
+ */
38
+ public function hooks() {
39
+ add_filter(
40
+ 'flexible_checkout_fields/form_data_' . $this->form_object->get_form_type(),
41
+ [ $this, 'get_form_data' ],
42
+ 10,
43
+ 2
44
+ );
45
+ add_filter(
46
+ 'flexible_checkout_fields/form_fields_' . $this->form_object->get_form_type(),
47
+ [ $this, 'get_form_fields' ],
48
+ 10,
49
+ 2
50
+ );
51
+ }
52
+
53
+ /**
54
+ * Returns updated settings for form.
55
+ *
56
+ * @param array $form_data Default settings of form.
57
+ * @param string $form_key Key of form.
58
+ *
59
+ * @return array Settings of form.
60
+ *
61
+ * @internal
62
+ */
63
+ public function get_form_data( array $form_data, string $form_key = '' ): array {
64
+ return $this->form_object->get_form_data( $form_data, $form_key );
65
+ }
66
+
67
+ /**
68
+ * Returns fields of settings for form.
69
+ *
70
+ * @param array $form_fields Default fields of form.
71
+ * @param string $form_key Key of form.
72
+ *
73
+ * @return array Fields of form.
74
+ *
75
+ * @internal
76
+ */
77
+ public function get_form_fields( array $form_fields, string $form_key = '' ): array {
78
+ return $this->form_object->get_options_list( [] );
79
+ }
80
+ }
src/Settings/Form/FormInterface.php ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Form;
9
+
10
+ /**
11
+ * Interface for form settings.
12
+ */
13
+ interface FormInterface {
14
+
15
+ /**
16
+ * Returns type of form.
17
+ *
18
+ * @return string Type of form.
19
+ */
20
+ public function get_form_type(): string;
21
+
22
+ /**
23
+ * Returns basic settings for form.
24
+ *
25
+ * @param array $form_data Default settings of form.
26
+ * @param string $form_key Key of form.
27
+ *
28
+ * @return array Settings of form.
29
+ */
30
+ public function get_form_data( array $form_data, string $form_key = '' ): array;
31
+
32
+ /**
33
+ * Saves settings for form.
34
+ *
35
+ * @param array $params Params for endpoint.
36
+ *
37
+ * @return bool Status of process.
38
+ */
39
+ public function save_form_data( array $params ): bool;
40
+ }
src/Settings/Form/SettingsPageForm.php ADDED
@@ -0,0 +1,99 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Form;
9
+
10
+ use WPDesk\FCF\Free\Settings\Form\FormAbstract;
11
+ use WPDesk\FCF\Free\Settings\Form\FormInterface;
12
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
13
+ use WPDesk\FCF\Free\Settings\Option\OptionIntegration;
14
+ use WPDesk\FCF\Free\Settings\Option\SettingJqueryOption;
15
+ use WPDesk\FCF\Free\Settings\Option\SettingSectionsAdvOption;
16
+
17
+ /**
18
+ * Supports settings for form.
19
+ */
20
+ class SettingsPageForm extends FormAbstract implements FormInterface {
21
+
22
+ const FORM_TYPE = 'settings';
23
+
24
+ /**
25
+ * Returns type of form.
26
+ *
27
+ * @return string Type of form.
28
+ */
29
+ public function get_form_type(): string {
30
+ return self::FORM_TYPE;
31
+ }
32
+
33
+ /**
34
+ * Returns basic settings for form.
35
+ *
36
+ * @param array $form_data Default settings of form.
37
+ * @param string $form_key Key of form.
38
+ *
39
+ * @return array Settings of form.
40
+ */
41
+ public function get_form_data( array $form_data, string $form_key = '' ): array {
42
+ $section_fields = [];
43
+
44
+ $options = ( new SettingJqueryOption() )->get_children();
45
+ foreach ( $options as $option ) {
46
+ $option_status = get_option( $option->get_option_name(), 0 );
47
+ $section_fields[ $option->get_option_name() ] = ( $option_status ) ? '1' : '0';
48
+ }
49
+
50
+ $option_objects = $this->get_options_list();
51
+ foreach ( $option_objects as $field_option ) {
52
+ $form_data = $field_option['update_field_callback'](
53
+ $form_data,
54
+ $section_fields
55
+ );
56
+ }
57
+
58
+ return $form_data;
59
+ }
60
+
61
+ /**
62
+ * Returns list of option objects.
63
+ *
64
+ * @return OptionInterface[] List of options.
65
+ */
66
+ public function get_options_list(): array {
67
+ return [
68
+ ( new OptionIntegration( new SettingJqueryOption() ) )->get_field_settings(),
69
+ ( new OptionIntegration( new SettingSectionsAdvOption() ) )->get_field_settings(),
70
+ ];
71
+ }
72
+
73
+ /**
74
+ * Saves settings for form.
75
+ *
76
+ * @param array $params Params for endpoint.
77
+ *
78
+ * @return bool Status of process.
79
+ *
80
+ * @throws \Exception .
81
+ */
82
+ public function save_form_data( array $params ): bool {
83
+ $settings_options = [];
84
+
85
+ $option_objects = $this->get_options_list();
86
+ foreach ( $option_objects as $field_option ) {
87
+ $settings_options = $field_option['save_field_callback'](
88
+ $settings_options,
89
+ $params['form_fields']
90
+ );
91
+ }
92
+
93
+ foreach ( $settings_options as $option => $option_status ) {
94
+ update_option( $option, ( $option_status ) ? '1' : '0', true );
95
+ }
96
+
97
+ return true;
98
+ }
99
+ }
src/Settings/Forms.php ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FCF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings;
9
+
10
+ use WPDesk\FCF\Free\Settings\Form\FormIntegration;
11
+ use WPDesk\FCF\Free\Settings\Form\EditFieldsForm;
12
+ use WPDesk\FCF\Free\Settings\Form\SettingsPageForm;
13
+
14
+ /**
15
+ * Supports management for forms.
16
+ */
17
+ class Forms {
18
+
19
+ /**
20
+ * Initializes actions for class.
21
+ *
22
+ * @return void
23
+ */
24
+ public function init() {
25
+ ( new FormIntegration( new EditFieldsForm() ) )->hooks();
26
+ ( new FormIntegration( new SettingsPageForm() ) )->hooks();
27
+ }
28
+ }
src/Settings/Menu.php ADDED
@@ -0,0 +1,108 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FCF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings;
9
+
10
+ use WPDesk\FCF\Free\Settings\Page;
11
+
12
+ /**
13
+ * Supports items for menu plugin settings page.
14
+ */
15
+ class Menu {
16
+
17
+ const OPTION_NAME_ENABLED = 'inspire_checkout_fields_%s';
18
+ const MENU_TAB_SETTINGS = 'settings';
19
+ const MENU_TAB_SECTIONS = 'sections';
20
+
21
+ /**
22
+ * List of default checkout sections.
23
+ *
24
+ * @var array
25
+ */
26
+ private static $default_field_sections = [
27
+ 'billing',
28
+ 'shipping',
29
+ 'order',
30
+ ];
31
+
32
+ /**
33
+ * Returns list of items for menu with tabs.
34
+ *
35
+ * @return array Menu items.
36
+ */
37
+ public function get_menu_tabs(): array {
38
+ $current_tab = $_GET['tab'] ?? self::MENU_TAB_SECTIONS; // phpcs:ignore
39
+ $page_tabs = [
40
+ self::MENU_TAB_SETTINGS => __( 'Settings', 'flexible-checkout-fields' ),
41
+ self::MENU_TAB_SECTIONS => __( 'Checkout Sections', 'flexible-checkout-fields' ),
42
+ ];
43
+
44
+ $values = [];
45
+ foreach ( $page_tabs as $tab_id => $tab_name ) {
46
+ $values[] = [
47
+ 'id' => $tab_id,
48
+ 'label' => $tab_name,
49
+ 'url' => admin_url(
50
+ sprintf(
51
+ 'admin.php?page=%s&tab=%s',
52
+ Page::SETTINGS_PAGE,
53
+ $tab_id
54
+ )
55
+ ),
56
+ 'is_active' => ( $tab_id === $current_tab ),
57
+ ];
58
+ }
59
+ return $values;
60
+ }
61
+
62
+ /**
63
+ * Returns list of items for menu with sections.
64
+ *
65
+ * @return array Menu items.
66
+ */
67
+ public function get_menu_sections(): array {
68
+ $current_tab = $_GET['tab'] ?? self::MENU_TAB_SECTIONS; // phpcs:ignore
69
+ if ( $current_tab !== self::MENU_TAB_SECTIONS ) {
70
+ return [];
71
+ }
72
+
73
+ $current_section = $_GET['section'] ?? 'billing'; // phpcs:ignore
74
+ $page_sections = [
75
+ 'billing' => __( 'Billing', 'flexible-checkout-fields' ),
76
+ 'shipping' => __( 'Shipping', 'flexible-checkout-fields' ),
77
+ 'order' => __( 'Order', 'flexible-checkout-fields' ),
78
+ ];
79
+
80
+ $sections = apply_filters( 'flexible_checkout_fields_all_sections', [] );
81
+ foreach ( $sections as $section ) {
82
+ $page_sections[ $section['section'] ] = $section['tab_title'];
83
+ }
84
+
85
+ $values = [];
86
+ foreach ( $page_sections as $section_id => $section_name ) {
87
+ if ( ! in_array( $section_id, self::$default_field_sections, true )
88
+ && ( get_option( sprintf( self::OPTION_NAME_ENABLED, $section_id ) ) !== '1' ) ) {
89
+ continue;
90
+ }
91
+
92
+ $values[] = [
93
+ 'id' => $section_id,
94
+ 'label' => $section_name,
95
+ 'url' => admin_url(
96
+ sprintf(
97
+ 'admin.php?page=%s&tab=sections&section=%s',
98
+ Page::SETTINGS_PAGE,
99
+ $section_id
100
+ )
101
+ ),
102
+ 'is_active' => ( $section_id === $current_section ),
103
+ 'has_section_form' => ( ! in_array( $section_id, self::$default_field_sections, true ) ),
104
+ ];
105
+ }
106
+ return $values;
107
+ }
108
+ }
src/Settings/Option/CssOption.php ADDED
@@ -0,0 +1,91 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Option;
9
+
10
+ use WPDesk\FCF\Free\Settings\Option\OptionAbstract;
11
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
12
+ use WPDesk\FCF\Free\Settings\Tab\AppearanceTab;
13
+
14
+ /**
15
+ * Supports option settings for field.
16
+ */
17
+ class CssOption extends OptionAbstract implements OptionInterface {
18
+
19
+ const FIELD_NAME = 'class';
20
+
21
+ /**
22
+ * Returns name of option.
23
+ *
24
+ * @return string Option name.
25
+ */
26
+ public function get_option_name(): string {
27
+ return self::FIELD_NAME;
28
+ }
29
+
30
+ /**
31
+ * Returns name of option tab.
32
+ *
33
+ * @return string Tab name.
34
+ */
35
+ public function get_option_tab(): string {
36
+ return AppearanceTab::TAB_NAME;
37
+ }
38
+
39
+ /**
40
+ * Returns type of option.
41
+ *
42
+ * @return string Option name.
43
+ */
44
+ public function get_option_type(): string {
45
+ return self::FIELD_TYPE_TEXT;
46
+ }
47
+
48
+ /**
49
+ * Returns label of option.
50
+ *
51
+ * @return string Option label.
52
+ */
53
+ public function get_option_label(): string {
54
+ return __( 'CSS class', 'flexible-checkout-fields' );
55
+ }
56
+
57
+ /**
58
+ * Returns content for label tooltip.
59
+ *
60
+ * @return string Tooltip content.
61
+ */
62
+ public function get_label_tooltip(): string {
63
+ return __( 'Enter CSS classes separated by a space.', 'flexible-checkout-fields' );
64
+ }
65
+
66
+ /**
67
+ * Returns default value of option.
68
+ *
69
+ * @return string|array Default value.
70
+ */
71
+ public function get_default_value() {
72
+ return 'form-row';
73
+ }
74
+
75
+ /**
76
+ * Returns updated settings of field contain values for this option.
77
+ *
78
+ * @param array $field_data Original settings of field.
79
+ * @param array $field_settings Settings of field.
80
+ *
81
+ * @return array Updated settings of field.
82
+ */
83
+ public function update_field_data( array $field_data, array $field_settings ): array {
84
+ $option_name = $this->get_option_name();
85
+
86
+ $field_data[ $option_name ] = $this->sanitize_option_value(
87
+ implode( ' ', (array) $field_settings[ $option_name ] )
88
+ );
89
+ return $field_data;
90
+ }
91
+ }
src/Settings/Option/CustomFieldOption.php ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Option;
9
+
10
+ use WPDesk\FCF\Free\Settings\Option\OptionAbstract;
11
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
12
+ use WPDesk\FCF\Free\Settings\Tab\GeneralTab;
13
+
14
+ /**
15
+ * Supports option settings for field.
16
+ */
17
+ class CustomFieldOption extends OptionAbstract implements OptionInterface {
18
+
19
+ const FIELD_NAME = 'custom_field';
20
+
21
+ /**
22
+ * Returns name of option.
23
+ *
24
+ * @return string Option name.
25
+ */
26
+ public function get_option_name(): string {
27
+ return self::FIELD_NAME;
28
+ }
29
+
30
+ /**
31
+ * Returns name of option tab.
32
+ *
33
+ * @return string Tab name.
34
+ */
35
+ public function get_option_tab(): string {
36
+ return GeneralTab::TAB_NAME;
37
+ }
38
+
39
+ /**
40
+ * Returns type of option.
41
+ *
42
+ * @return string Option name.
43
+ */
44
+ public function get_option_type(): string {
45
+ return self::FIELD_TYPE_HIDDEN;
46
+ }
47
+
48
+ /**
49
+ * Returns default value of option.
50
+ *
51
+ * @return string|array Default value.
52
+ */
53
+ public function get_default_value() {
54
+ return '1';
55
+ }
56
+ }
src/Settings/Option/DisplayOnAccountAddressOption.php ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Option;
9
+
10
+ use WPDesk\FCF\Free\Settings\Option\OptionAbstract;
11
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
12
+
13
+ /**
14
+ * Supports option settings for field.
15
+ */
16
+ class DisplayOnAccountAddressOption extends OptionAbstract implements OptionInterface {
17
+
18
+ const FIELD_NAME = 'display_on_address';
19
+
20
+ /**
21
+ * Returns name of option.
22
+ *
23
+ * @return string Option name.
24
+ */
25
+ public function get_option_name(): string {
26
+ return self::FIELD_NAME;
27
+ }
28
+
29
+ /**
30
+ * Returns type of option.
31
+ *
32
+ * @return string Option name.
33
+ */
34
+ public function get_option_type(): string {
35
+ return self::FIELD_TYPE_CHECKBOX;
36
+ }
37
+
38
+ /**
39
+ * Returns label of option.
40
+ *
41
+ * @return string Option label.
42
+ */
43
+ public function get_option_label(): string {
44
+ return __( 'My Account - address', 'flexible-checkout-fields' );
45
+ }
46
+
47
+ /**
48
+ * Returns default value of option.
49
+ *
50
+ * @return string|array Default value.
51
+ */
52
+ public function get_default_value() {
53
+ return '1';
54
+ }
55
+ }
src/Settings/Option/DisplayOnAccountOrderOption.php ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Option;
9
+
10
+ use WPDesk\FCF\Free\Settings\Option\OptionAbstract;
11
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
12
+
13
+ /**
14
+ * Supports option settings for field.
15
+ */
16
+ class DisplayOnAccountOrderOption extends OptionAbstract implements OptionInterface {
17
+
18
+ const FIELD_NAME = 'display_on_order';
19
+
20
+ /**
21
+ * Returns name of option.
22
+ *
23
+ * @return string Option name.
24
+ */
25
+ public function get_option_name(): string {
26
+ return self::FIELD_NAME;
27
+ }
28
+
29
+ /**
30
+ * Returns type of option.
31
+ *
32
+ * @return string Option name.
33
+ */
34
+ public function get_option_type(): string {
35
+ return self::FIELD_TYPE_CHECKBOX;
36
+ }
37
+
38
+ /**
39
+ * Returns label of option.
40
+ *
41
+ * @return string Option label.
42
+ */
43
+ public function get_option_label(): string {
44
+ return __( 'My Account - order', 'flexible-checkout-fields' );
45
+ }
46
+
47
+ /**
48
+ * Returns default value of option.
49
+ *
50
+ * @return string|array Default value.
51
+ */
52
+ public function get_default_value() {
53
+ return '1';
54
+ }
55
+ }
src/Settings/Option/DisplayOnEmailsOption.php ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Option;
9
+
10
+ use WPDesk\FCF\Free\Settings\Option\OptionAbstract;
11
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
12
+
13
+ /**
14
+ * Supports option settings for field.
15
+ */
16
+ class DisplayOnEmailsOption extends OptionAbstract implements OptionInterface {
17
+
18
+ const FIELD_NAME = 'display_on_emails';
19
+
20
+ /**
21
+ * Returns name of option.
22
+ *
23
+ * @return string Option name.
24
+ */
25
+ public function get_option_name(): string {
26
+ return self::FIELD_NAME;
27
+ }
28
+
29
+ /**
30
+ * Returns type of option.
31
+ *
32
+ * @return string Option name.
33
+ */
34
+ public function get_option_type(): string {
35
+ return self::FIELD_TYPE_CHECKBOX;
36
+ }
37
+
38
+ /**
39
+ * Returns label of option.
40
+ *
41
+ * @return string Option label.
42
+ */
43
+ public function get_option_label(): string {
44
+ return __( 'E-mails', 'flexible-checkout-fields' );
45
+ }
46
+
47
+ /**
48
+ * Returns default value of option.
49
+ *
50
+ * @return string|array Default value.
51
+ */
52
+ public function get_default_value() {
53
+ return '1';
54
+ }
55
+ }
src/Settings/Option/DisplayOnOption.php ADDED
@@ -0,0 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Option;
9
+
10
+ use WPDesk\FCF\Free\Settings\Option\OptionAbstract;
11
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
12
+ use WPDesk\FCF\Free\Settings\Tab\DisplayTab;
13
+ use WPDesk\FCF\Free\Settings\Option\DisplayOnThankYouOption;
14
+ use WPDesk\FCF\Free\Settings\Option\DisplayOnAccountAddressOption;
15
+ use WPDesk\FCF\Free\Settings\Option\DisplayOnAccountOrderOption;
16
+ use WPDesk\FCF\Free\Settings\Option\DisplayOnEmailsOption;
17
+
18
+ /**
19
+ * Supports option settings for field.
20
+ */
21
+ class DisplayOnOption extends OptionAbstract implements OptionInterface {
22
+
23
+ const FIELD_NAME = 'display_on';
24
+
25
+ /**
26
+ * Returns name of option.
27
+ *
28
+ * @return string Option name.
29
+ */
30
+ public function get_option_name(): string {
31
+ return self::FIELD_NAME;
32
+ }
33
+
34
+ /**
35
+ * Returns name of option tab.
36
+ *
37
+ * @return string Tab name.
38
+ */
39
+ public function get_option_tab(): string {
40
+ return DisplayTab::TAB_NAME;
41
+ }
42
+
43
+ /**
44
+ * Returns type of option.
45
+ *
46
+ * @return string Option name.
47
+ */
48
+ public function get_option_type(): string {
49
+ return self::FIELD_TYPE_CHECKBOX_LIST;
50
+ }
51
+
52
+ /**
53
+ * Returns label of option.
54
+ *
55
+ * @return string Option label.
56
+ */
57
+ public function get_option_label(): string {
58
+ return __( 'Pages/e-mails', 'flexible-checkout-fields' );
59
+ }
60
+
61
+ /**
62
+ * Returns subfields of option, if exists.
63
+ *
64
+ * @return OptionInterface[] List of option children.
65
+ */
66
+ public function get_children(): array {
67
+ return [
68
+ DisplayOnThankYouOption::FIELD_NAME => new DisplayOnThankYouOption(),
69
+ DisplayOnAccountAddressOption::FIELD_NAME => new DisplayOnAccountAddressOption(),
70
+ DisplayOnAccountOrderOption::FIELD_NAME => new DisplayOnAccountOrderOption(),
71
+ DisplayOnEmailsOption::FIELD_NAME => new DisplayOnEmailsOption(),
72
+ ];
73
+ }
74
+ }
src/Settings/Option/DisplayOnThankYouOption.php ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Option;
9
+
10
+ use WPDesk\FCF\Free\Settings\Option\OptionAbstract;
11
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
12
+
13
+ /**
14
+ * Supports option settings for field.
15
+ */
16
+ class DisplayOnThankYouOption extends OptionAbstract implements OptionInterface {
17
+
18
+ const FIELD_NAME = 'display_on_thank_you';
19
+
20
+ /**
21
+ * Returns name of option.
22
+ *
23
+ * @return string Option name.
24
+ */
25
+ public function get_option_name(): string {
26
+ return self::FIELD_NAME;
27
+ }
28
+
29
+ /**
30
+ * Returns type of option.
31
+ *
32
+ * @return string Option name.
33
+ */
34
+ public function get_option_type(): string {
35
+ return self::FIELD_TYPE_CHECKBOX;
36
+ }
37
+
38
+ /**
39
+ * Returns label of option.
40
+ *
41
+ * @return string Option label.
42
+ */
43
+ public function get_option_label(): string {
44
+ return __( 'Thank You Page', 'flexible-checkout-fields' );
45
+ }
46
+
47
+ /**
48
+ * Returns default value of option.
49
+ *
50
+ * @return string|array Default value.
51
+ */
52
+ public function get_default_value() {
53
+ return '1';
54
+ }
55
+ }
src/Settings/Option/DisplayOnWithoutAddressOption.php ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Option;
9
+
10
+ use WPDesk\FCF\Free\Settings\Option\DisplayOnOption;
11
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
12
+ use WPDesk\FCF\Free\Settings\Option\DisplayOnThankYouOption;
13
+ use WPDesk\FCF\Free\Settings\Option\DisplayOnAccountOrderOption;
14
+ use WPDesk\FCF\Free\Settings\Option\DisplayOnEmailsOption;
15
+
16
+ /**
17
+ * Supports option settings for field.
18
+ */
19
+ class DisplayOnWithoutAddressOption extends DisplayOnOption implements OptionInterface {
20
+
21
+ /**
22
+ * Returns subfields of option, if exists.
23
+ *
24
+ * @return OptionInterface[] List of option children.
25
+ */
26
+ public function get_children(): array {
27
+ return [
28
+ DisplayOnThankYouOption::FIELD_NAME => new DisplayOnThankYouOption(),
29
+ DisplayOnAccountOrderOption::FIELD_NAME => new DisplayOnAccountOrderOption(),
30
+ DisplayOnEmailsOption::FIELD_NAME => new DisplayOnEmailsOption(),
31
+ ];
32
+ }
33
+ }
src/Settings/Option/EnabledOption.php ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Option;
9
+
10
+ use WPDesk\FCF\Free\Settings\Option\OptionAbstract;
11
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
12
+ use WPDesk\FCF\Free\Settings\Tab\GeneralTab;
13
+
14
+ /**
15
+ * Supports option settings for field.
16
+ */
17
+ class EnabledOption extends OptionAbstract implements OptionInterface {
18
+
19
+ const FIELD_NAME = 'visible';
20
+
21
+ /**
22
+ * Returns name of option.
23
+ *
24
+ * @return string Option name.
25
+ */
26
+ public function get_option_name(): string {
27
+ return self::FIELD_NAME;
28
+ }
29
+
30
+ /**
31
+ * Returns name of option tab.
32
+ *
33
+ * @return string Tab name.
34
+ */
35
+ public function get_option_tab(): string {
36
+ return GeneralTab::TAB_NAME;
37
+ }
38
+
39
+ /**
40
+ * Returns type of option.
41
+ *
42
+ * @return string Option name.
43
+ */
44
+ public function get_option_type(): string {
45
+ return self::FIELD_TYPE_CHECKBOX;
46
+ }
47
+
48
+ /**
49
+ * Returns label of option.
50
+ *
51
+ * @return string Option label.
52
+ */
53
+ public function get_option_label(): string {
54
+ return __( 'Enable field', 'flexible-checkout-fields' );
55
+ }
56
+
57
+ /**
58
+ * Returns default value of option.
59
+ *
60
+ * @return string|array Default value.
61
+ */
62
+ public function get_default_value() {
63
+ return '1';
64
+ }
65
+
66
+ /**
67
+ * Returns updated settings of field contain values for this option.
68
+ *
69
+ * @param array $field_data Original settings of field.
70
+ * @param array $field_settings Settings of field.
71
+ *
72
+ * @return array Updated settings of field.
73
+ */
74
+ public function update_field_data( array $field_data, array $field_settings ): array {
75
+ $option_name = $this->get_option_name();
76
+ $option_value = $field_settings[ $option_name ] ?? 0;
77
+
78
+ $field_data[ $option_name ] = $this->sanitize_option_value( ( $option_value ) ? '0' : '1' );
79
+ return $field_data;
80
+ }
81
+ }
src/Settings/Option/FieldTypeOption.php ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Option;
9
+
10
+ use WPDesk\FCF\Free\Settings\Option\OptionAbstract;
11
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
12
+ use WPDesk\FCF\Free\Settings\Tab\GeneralTab;
13
+
14
+ /**
15
+ * Supports option settings for field.
16
+ */
17
+ class FieldTypeOption extends OptionAbstract implements OptionInterface {
18
+
19
+ const FIELD_NAME = 'type';
20
+
21
+ /**
22
+ * Returns name of option.
23
+ *
24
+ * @return string Option name.
25
+ */
26
+ public function get_option_name(): string {
27
+ return self::FIELD_NAME;
28
+ }
29
+
30
+ /**
31
+ * Returns name of option tab.
32
+ *
33
+ * @return string Tab name.
34
+ */
35
+ public function get_option_tab(): string {
36
+ return GeneralTab::TAB_NAME;
37
+ }
38
+
39
+ /**
40
+ * Returns type of option.
41
+ *
42
+ * @return string Option name.
43
+ */
44
+ public function get_option_type(): string {
45
+ return self::FIELD_TYPE_HIDDEN;
46
+ }
47
+ }
src/Settings/Option/FormattingFieldLabelOption.php ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Option;
9
+
10
+ use WPDesk\FCF\Free\Settings\Option\OptionAbstract;
11
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
12
+
13
+ /**
14
+ * Supports option settings for field.
15
+ */
16
+ class FormattingFieldLabelOption extends OptionAbstract implements OptionInterface {
17
+
18
+ const FIELD_NAME = 'display_on_option_show_label';
19
+
20
+ /**
21
+ * Returns name of option.
22
+ *
23
+ * @return string Option name.
24
+ */
25
+ public function get_option_name(): string {
26
+ return self::FIELD_NAME;
27
+ }
28
+
29
+ /**
30
+ * Returns type of option.
31
+ *
32
+ * @return string Option name.
33
+ */
34
+ public function get_option_type(): string {
35
+ return self::FIELD_TYPE_CHECKBOX;
36
+ }
37
+
38
+ /**
39
+ * Returns label of option.
40
+ *
41
+ * @return string Option label.
42
+ */
43
+ public function get_option_label(): string {
44
+ return __( 'Display field label', 'flexible-checkout-fields' );
45
+ }
46
+
47
+ /**
48
+ * Returns default value of option.
49
+ *
50
+ * @return string|array Default value.
51
+ */
52
+ public function get_default_value() {
53
+ return '1';
54
+ }
55
+ }
src/Settings/Option/FormattingNewLineOption.php ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Option;
9
+
10
+ use WPDesk\FCF\Free\Settings\Option\OptionAbstract;
11
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
12
+
13
+ /**
14
+ * Supports option settings for field.
15
+ */
16
+ class FormattingNewLineOption extends OptionAbstract implements OptionInterface {
17
+
18
+ const FIELD_NAME = 'display_on_option_new_line_before';
19
+
20
+ /**
21
+ * Returns name of option.
22
+ *
23
+ * @return string Option name.
24
+ */
25
+ public function get_option_name(): string {
26
+ return self::FIELD_NAME;
27
+ }
28
+
29
+ /**
30
+ * Returns type of option.
31
+ *
32
+ * @return string Option name.
33
+ */
34
+ public function get_option_type(): string {
35
+ return self::FIELD_TYPE_CHECKBOX;
36
+ }
37
+
38
+ /**
39
+ * Returns label of option.
40
+ *
41
+ * @return string Option label.
42
+ */
43
+ public function get_option_label(): string {
44
+ return __( 'Display the field on a new line', 'flexible-checkout-fields' );
45
+ }
46
+
47
+ /**
48
+ * Returns default value of option.
49
+ *
50
+ * @return string|array Default value.
51
+ */
52
+ public function get_default_value() {
53
+ return '1';
54
+ }
55
+ }
src/Settings/Option/FormattingOption.php ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Option;
9
+
10
+ use WPDesk\FCF\Free\Settings\Option\OptionAbstract;
11
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
12
+ use WPDesk\FCF\Free\Settings\Tab\DisplayTab;
13
+ use WPDesk\FCF\Free\Settings\Option\FormattingNewLineOption;
14
+ use WPDesk\FCF\Free\Settings\Option\FormattingFieldLabelOption;
15
+
16
+ /**
17
+ * Supports option settings for field.
18
+ */
19
+ class FormattingOption extends OptionAbstract implements OptionInterface {
20
+
21
+ const FIELD_NAME = 'formatting_options';
22
+
23
+ /**
24
+ * Returns name of option.
25
+ *
26
+ * @return string Option name.
27
+ */
28
+ public function get_option_name(): string {
29
+ return self::FIELD_NAME;
30
+ }
31
+
32
+ /**
33
+ * Returns name of option tab.
34
+ *
35
+ * @return string Tab name.
36
+ */
37
+ public function get_option_tab(): string {
38
+ return DisplayTab::TAB_NAME;
39
+ }
40
+
41
+ /**
42
+ * Returns type of option.
43
+ *
44
+ * @return string Option name.
45
+ */
46
+ public function get_option_type(): string {
47
+ return self::FIELD_TYPE_CHECKBOX_LIST;
48
+ }
49
+
50
+ /**
51
+ * Returns label of option.
52
+ *
53
+ * @return string Option label.
54
+ */
55
+ public function get_option_label(): string {
56
+ return __( 'Formatting on pages/e-mails', 'flexible-checkout-fields' );
57
+ }
58
+
59
+ /**
60
+ * Returns subfields of option, if exists.
61
+ *
62
+ * @return OptionInterface[] List of option children.
63
+ */
64
+ public function get_children(): array {
65
+ return [
66
+ FormattingNewLineOption::FIELD_NAME => new FormattingNewLineOption(),
67
+ FormattingFieldLabelOption::FIELD_NAME => new FormattingFieldLabelOption(),
68
+ ];
69
+ }
70
+ }
src/Settings/Option/FormattingStateAbbrOption.php ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Option;
9
+
10
+ use WPDesk\FCF\Free\Settings\Option\OptionAbstract;
11
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
12
+
13
+ /**
14
+ * Supports option settings for field.
15
+ */
16
+ class FormattingStateAbbrOption extends OptionAbstract implements OptionInterface {
17
+
18
+ const FIELD_NAME = 'display_on_option_state_code';
19
+
20
+ /**
21
+ * Returns name of option.
22
+ *
23
+ * @return string Option name.
24
+ */
25
+ public function get_option_name(): string {
26
+ return self::FIELD_NAME;
27
+ }
28
+
29
+ /**
30
+ * Returns type of option.
31
+ *
32
+ * @return string Option name.
33
+ */
34
+ public function get_option_type(): string {
35
+ return self::FIELD_TYPE_CHECKBOX;
36
+ }
37
+
38
+ /**
39
+ * Returns label of option.
40
+ *
41
+ * @return string Option label.
42
+ */
43
+ public function get_option_label(): string {
44
+ return __( 'Display state abbreviations', 'flexible-checkout-fields' );
45
+ }
46
+
47
+ /**
48
+ * Returns default value of option.
49
+ *
50
+ * @return string|array Default value.
51
+ */
52
+ public function get_default_value() {
53
+ return '0';
54
+ }
55
+ }
src/Settings/Option/FormattingStateCommaOption.php ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Option;
9
+
10
+ use WPDesk\FCF\Free\Settings\Option\OptionAbstract;
11
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
12
+
13
+ /**
14
+ * Supports option settings for field.
15
+ */
16
+ class FormattingStateCommaOption extends OptionAbstract implements OptionInterface {
17
+
18
+ const FIELD_NAME = 'display_on_option_state_code_comma_before';
19
+
20
+ /**
21
+ * Returns name of option.
22
+ *
23
+ * @return string Option name.
24
+ */
25
+ public function get_option_name(): string {
26
+ return self::FIELD_NAME;
27
+ }
28
+
29
+ /**
30
+ * Returns type of option.
31
+ *
32
+ * @return string Option name.
33
+ */
34
+ public function get_option_type(): string {
35
+ return self::FIELD_TYPE_CHECKBOX;
36
+ }
37
+
38
+ /**
39
+ * Returns label of option.
40
+ *
41
+ * @return string Option label.
42
+ */
43
+ public function get_option_label(): string {
44
+ return __( 'Display a comma before if the field is not on a new line', 'flexible-checkout-fields' );
45
+ }
46
+
47
+ /**
48
+ * Returns default value of option.
49
+ *
50
+ * @return string|array Default value.
51
+ */
52
+ public function get_default_value() {
53
+ return '0';
54
+ }
55
+ }
src/Settings/Option/FormattingStateOption.php ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Option;
9
+
10
+ use WPDesk\FCF\Free\Settings\Option\OptionAbstract;
11
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
12
+ use WPDesk\FCF\Free\Settings\Tab\DisplayTab;
13
+ use WPDesk\FCF\Free\Settings\Option\FormattingStateAbbrOption;
14
+ use WPDesk\FCF\Free\Settings\Option\FormattingStateCommaOption;
15
+
16
+ /**
17
+ * Supports option settings for field.
18
+ */
19
+ class FormattingStateOption extends OptionAbstract implements OptionInterface {
20
+
21
+ const FIELD_NAME = 'formatting_state_options';
22
+
23
+ /**
24
+ * Returns name of option.
25
+ *
26
+ * @return string Option name.
27
+ */
28
+ public function get_option_name(): string {
29
+ return self::FIELD_NAME;
30
+ }
31
+
32
+ /**
33
+ * Returns name of option tab.
34
+ *
35
+ * @return string Tab name.
36
+ */
37
+ public function get_option_tab(): string {
38
+ return DisplayTab::TAB_NAME;
39
+ }
40
+
41
+ /**
42
+ * Returns type of option.
43
+ *
44
+ * @return string Option name.
45
+ */
46
+ public function get_option_type(): string {
47
+ return self::FIELD_TYPE_CHECKBOX_LIST;
48
+ }
49
+
50
+ /**
51
+ * Returns label of option.
52
+ *
53
+ * @return string Option label.
54
+ */
55
+ public function get_option_label(): string {
56
+ return __( 'State/County formatting', 'flexible-checkout-fields' );
57
+ }
58
+
59
+ /**
60
+ * Returns subfields of option, if exists.
61
+ *
62
+ * @return OptionInterface[] List of option children.
63
+ */
64
+ public function get_children(): array {
65
+ return [
66
+ FormattingStateAbbrOption::FIELD_NAME => new FormattingStateAbbrOption(),
67
+ FormattingStateCommaOption::FIELD_NAME => new FormattingStateCommaOption(),
68
+ ];
69
+ }
70
+ }
src/Settings/Option/FormattingWcOption.php ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Option;
9
+
10
+ use WPDesk\FCF\Free\Settings\Option\FormattingOption;
11
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
12
+ use WPDesk\FCF\Free\Settings\Option\FormattingNewLineOption;
13
+
14
+ /**
15
+ * Supports option settings for field.
16
+ */
17
+ class FormattingWcOption extends FormattingOption implements OptionInterface {
18
+
19
+ /**
20
+ * Returns subfields of option, if exists.
21
+ *
22
+ * @return OptionInterface[] List of option children.
23
+ */
24
+ public function get_children(): array {
25
+ return [
26
+ FormattingNewLineOption::FIELD_NAME => new FormattingNewLineOption(),
27
+ ];
28
+ }
29
+ }
src/Settings/Option/LabelOption.php ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Option;
9
+
10
+ use WPDesk\FCF\Free\Settings\Option\OptionAbstract;
11
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
12
+ use WPDesk\FCF\Free\Settings\Tab\GeneralTab;
13
+
14
+ /**
15
+ * Supports option settings for field.
16
+ */
17
+ class LabelOption extends OptionAbstract implements OptionInterface {
18
+
19
+ const FIELD_NAME = 'label';
20
+
21
+ /**
22
+ * Returns name of option.
23
+ *
24
+ * @return string Option name.
25
+ */
26
+ public function get_option_name(): string {
27
+ return self::FIELD_NAME;
28
+ }
29
+
30
+ /**
31
+ * Returns name of option tab.
32
+ *
33
+ * @return string Tab name.
34
+ */
35
+ public function get_option_tab(): string {
36
+ return GeneralTab::TAB_NAME;
37
+ }
38
+
39
+ /**
40
+ * Returns type of option.
41
+ *
42
+ * @return string Option name.
43
+ */
44
+ public function get_option_type(): string {
45
+ return self::FIELD_TYPE_TEXTAREA;
46
+ }
47
+
48
+ /**
49
+ * Returns list of validation rules for field.
50
+ * Key is regular expression without delimiters, value is message of validation error.
51
+ *
52
+ * @return array Validation rules.
53
+ */
54
+ public function get_validation_rules(): array {
55
+ return [
56
+ '^.{1,}$' => __( 'This field is required.', 'flexible-checkout-fields' ),
57
+ ];
58
+ }
59
+
60
+ /**
61
+ * Returns label of option.
62
+ *
63
+ * @return string Option label.
64
+ */
65
+ public function get_option_label(): string {
66
+ return __( 'Label', 'flexible-checkout-fields' );
67
+ }
68
+
69
+ /**
70
+ * Filters option value from all unsafe strings.
71
+ *
72
+ * @param string|array $field_value Original option value.
73
+ *
74
+ * @return string|array Updated value of option.
75
+ */
76
+ public function sanitize_option_value( $field_value ) {
77
+ return wp_kses_post( wp_unslash( $field_value ) );
78
+ }
79
+ }
src/Settings/Option/LabelOptionallyOption.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Option;
9
+
10
+ use WPDesk\FCF\Free\Settings\Option\LabelOption;
11
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
12
+
13
+ /**
14
+ * Supports option settings for field.
15
+ */
16
+ class LabelOptionallyOption extends LabelOption implements OptionInterface {
17
+
18
+ /**
19
+ * Returns list of validation rules for field.
20
+ * Key is regular expression without delimiters, value is message of validation error.
21
+ *
22
+ * @return array Validation rules.
23
+ */
24
+ public function get_validation_rules(): array {
25
+ return [];
26
+ }
27
+ }
src/Settings/Option/LogicAdvOption.php ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Option;
9
+
10
+ use WPDesk\FCF\Free\Settings\Option\OptionAbstract;
11
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
12
+ use WPDesk\FCF\Free\Settings\Tab\LogicTab;
13
+
14
+ /**
15
+ * Supports option settings for field.
16
+ */
17
+ class LogicAdvOption extends OptionAbstract implements OptionInterface {
18
+
19
+ const FIELD_NAME = 'conditional_logic_adv';
20
+
21
+ /**
22
+ * Returns name of option.
23
+ *
24
+ * @return string Option name.
25
+ */
26
+ public function get_option_name(): string {
27
+ return self::FIELD_NAME;
28
+ }
29
+
30
+ /**
31
+ * Returns name of option tab.
32
+ *
33
+ * @return string Tab name.
34
+ */
35
+ public function get_option_tab(): string {
36
+ return LogicTab::TAB_NAME;
37
+ }
38
+
39
+ /**
40
+ * Returns type of option.
41
+ *
42
+ * @return string Option name.
43
+ */
44
+ public function get_option_type(): string {
45
+ return self::FIELD_TYPE_INFO_ADV;
46
+ }
47
+
48
+ /**
49
+ * Returns label of option.
50
+ *
51
+ * @return string Option label.
52
+ */
53
+ public function get_option_label(): string {
54
+ $url_products = esc_url( apply_filters( 'flexible_checkout_fields/short_url', '#', 'fcf-settings-field-tab-logic-docs-products-upgrade' ) );
55
+ $url_fields = esc_url( apply_filters( 'flexible_checkout_fields/short_url', '#', 'fcf-settings-field-tab-logic-docs-fields-upgrade' ) );
56
+ $url_shipping = esc_url( apply_filters( 'flexible_checkout_fields/short_url', '#', 'fcf-settings-field-tab-logic-docs-shipping-upgrade' ) );
57
+ $url_upgrade = esc_url( apply_filters( 'flexible_checkout_fields/short_url', '#', 'fcf-settings-field-tab-logic-upgrade' ) );
58
+ return sprintf(
59
+ /* translators: %1$s: anchor opening tag, %2$s: anchor closing tag, %3$s: anchor opening tag, %4$s: anchor closing tag, %5$s: anchor opening tag, %6$s: anchor closing tag, %7$s: break line, %8$s: anchor opening tag, %9$s: anchor closing tag */
60
+ __( 'Add conditional logic based on %1$sproducts and categories%2$s as well as %3$sFCF fields%4$s and %5$sshipping methods%6$s set. %7$s%8$sUpgrade to PRO%9$s', 'flexible-checkout-fields' ),
61
+ '<a href="' . $url_products . '" target="_blank">',
62
+ '</a>',
63
+ '<a href="' . $url_fields . '" target="_blank">',
64
+ '</a>',
65
+ '<a href="' . $url_shipping . '" target="_blank">',
66
+ '</a>',
67
+ '<br>',
68
+ '<a href="' . $url_upgrade . '" target="_blank" class="fcfArrowLink">',
69
+ '</a>'
70
+ );
71
+ }
72
+ }
src/Settings/Option/NameOption.php ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Option;
9
+
10
+ use WPDesk\FCF\Free\Settings\Option\OptionAbstract;
11
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
12
+ use WPDesk\FCF\Free\Settings\Tab\GeneralTab;
13
+
14
+ /**
15
+ * Supports option settings for field.
16
+ */
17
+ class NameOption extends OptionAbstract implements OptionInterface {
18
+
19
+ const FIELD_NAME = 'name';
20
+
21
+ /**
22
+ * Returns name of option.
23
+ *
24
+ * @return string Option name.
25
+ */
26
+ public function get_option_name(): string {
27
+ return self::FIELD_NAME;
28
+ }
29
+
30
+ /**
31
+ * Returns name of option tab.
32
+ *
33
+ * @return string Tab name.
34
+ */
35
+ public function get_option_tab(): string {
36
+ return GeneralTab::TAB_NAME;
37
+ }
38
+
39
+ /**
40
+ * Returns type of option.
41
+ *
42
+ * @return string Option name.
43
+ */
44
+ public function get_option_type(): string {
45
+ return self::FIELD_TYPE_TEXT;
46
+ }
47
+
48
+ /**
49
+ * Returns status if option are readonly.
50
+ *
51
+ * @return bool Readonly status of option.
52
+ */
53
+ public function is_readonly(): bool {
54
+ return true;
55
+ }
56
+
57
+ /**
58
+ * Returns label of option.
59
+ *
60
+ * @return string Option label.
61
+ */
62
+ public function get_option_label(): string {
63
+ return __( 'Meta name', 'flexible-checkout-fields' );
64
+ }
65
+
66
+ /**
67
+ * Returns pattern to display value (%s will be replaced by option value).
68
+ * It works only for text or textarea fields.
69
+ *
70
+ * @return string Pattern to display value.
71
+ */
72
+ public function get_print_pattern(): string {
73
+ return '_%s';
74
+ }
75
+ }
src/Settings/Option/OptionAbstract.php ADDED
@@ -0,0 +1,302 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FCF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Option;
9
+
10
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
11
+
12
+ /**
13
+ * Abstract class for option of field.
14
+ */
15
+ abstract class OptionAbstract implements OptionInterface {
16
+
17
+ const FIELD_TYPE_CHECKBOX = 'CheckboxField';
18
+ const FIELD_TYPE_CHECKBOX_LIST = 'CheckboxListField';
19
+ const FIELD_TYPE_GROUP = 'GroupField';
20
+ const FIELD_TYPE_HIDDEN = 'HiddenField';
21
+ const FIELD_TYPE_INFO = 'InfoField';
22
+ const FIELD_TYPE_INFO_ADV = 'InfoAdvField';
23
+ const FIELD_TYPE_NUMBER = 'NumberField';
24
+ const FIELD_TYPE_RADIO = 'RadioField';
25
+ const FIELD_TYPE_RADIO_LIST = 'RadioListField';
26
+ const FIELD_TYPE_REPEATER = 'RepeaterField';
27
+ const FIELD_TYPE_SELECT = 'SelectField';
28
+ const FIELD_TYPE_SELECT_MULTI = 'SelectMultiField';
29
+ const FIELD_TYPE_TEXTAREA = 'TextareaField';
30
+ const FIELD_TYPE_TEXT = 'TextField';
31
+
32
+ /**
33
+ * Returns name of option tab.
34
+ *
35
+ * @return string Tab name.
36
+ */
37
+ public function get_option_tab(): string {
38
+ return '';
39
+ }
40
+
41
+ /**
42
+ * Returns type of option.
43
+ *
44
+ * @return string Option name.
45
+ */
46
+ public function get_option_type(): string {
47
+ return '';
48
+ }
49
+
50
+ /**
51
+ * Returns label of option.
52
+ *
53
+ * @return string Option label.
54
+ */
55
+ public function get_option_label(): string {
56
+ return '';
57
+ }
58
+
59
+ /**
60
+ * Returns label of option row (for Repeater field).
61
+ *
62
+ * @return string Option row label.
63
+ */
64
+ public function get_option_row_label(): string {
65
+ return 'Row #%s';
66
+ }
67
+
68
+ /**
69
+ * Returns content for label tooltip.
70
+ *
71
+ * @return string Tooltip content.
72
+ */
73
+ public function get_label_tooltip(): string {
74
+ return '';
75
+ }
76
+
77
+ /**
78
+ * Returns URL for label tooltip.
79
+ *
80
+ * @return string Tooltip URL.
81
+ */
82
+ public function get_label_tooltip_url(): string {
83
+ return '';
84
+ }
85
+
86
+ /**
87
+ * Returns list of HTML attributes for field with their values.
88
+ *
89
+ * @return array Atts for field.
90
+ */
91
+ public function get_input_atts(): array {
92
+ return [];
93
+ }
94
+
95
+ /**
96
+ * Returns pattern to display value (%s will be replaced by option value).
97
+ * It works only for text or textarea fields.
98
+ *
99
+ * @return string Pattern to display value.
100
+ */
101
+ public function get_print_pattern(): string {
102
+ return '%s';
103
+ }
104
+
105
+ /**
106
+ * Returns status if option are readonly.
107
+ *
108
+ * @return bool Readonly status of option.
109
+ */
110
+ public function is_readonly(): bool {
111
+ return false;
112
+ }
113
+
114
+ /**
115
+ * Returns list of validation rules for field.
116
+ * Key is regular expression without delimiters, value is message of validation error.
117
+ *
118
+ * @return array Validation rules.
119
+ */
120
+ public function get_validation_rules(): array {
121
+ return [];
122
+ }
123
+
124
+ /**
125
+ * Returns name of option and regex for its value that must be true to display this field.
126
+ * Key is name of field, value is regular expression without delimiters.
127
+ *
128
+ * @return array Option names with regexes.
129
+ */
130
+ public function get_options_regexes_to_display(): array {
131
+ return [];
132
+ }
133
+
134
+ /**
135
+ * Returns name of option whose value will create list of rows for Repeater field.
136
+ *
137
+ * @return string Option name.
138
+ */
139
+ public function get_option_name_to_rows(): string {
140
+ return '';
141
+ }
142
+
143
+ /**
144
+ * Returns available values of option, if exists.
145
+ *
146
+ * @return array List of option values.
147
+ */
148
+ public function get_values(): array {
149
+ return [];
150
+ }
151
+
152
+ /**
153
+ * Returns default value of option.
154
+ *
155
+ * @return string|array Default value.
156
+ */
157
+ public function get_default_value() {
158
+ return '';
159
+ }
160
+
161
+ /**
162
+ * Returns endpoint route to retrieve values.
163
+ *
164
+ * @return string Route name of endpoint.
165
+ */
166
+ public function get_endpoint_route(): string {
167
+ return '';
168
+ }
169
+
170
+ /**
171
+ * Returns option names passed to REST API to retrieve values.
172
+ *
173
+ * @return array Option keys.
174
+ */
175
+ public function get_endpoint_option_names(): array {
176
+ return [];
177
+ }
178
+
179
+ /**
180
+ * Returns status if values from endpoint should be refreshed automatically (triggered by refresh event).
181
+ *
182
+ * @return bool Status of auto-refreshed values.
183
+ */
184
+ public function is_endpoint_autorefreshed(): bool {
185
+ return false;
186
+ }
187
+
188
+ /**
189
+ * Returns status whether change of option value initiates refresh event.
190
+ *
191
+ * @return bool Status of refresh event.
192
+ */
193
+ public function is_refresh_trigger(): bool {
194
+ return false;
195
+ }
196
+
197
+ /**
198
+ * Returns subfields of option, if exists.
199
+ *
200
+ * @return OptionInterface[] List of option children.
201
+ */
202
+ public function get_children(): array {
203
+ return [];
204
+ }
205
+
206
+ /**
207
+ * Filters option value from all unsafe strings.
208
+ *
209
+ * @param string|array $field_value Original option value.
210
+ *
211
+ * @return string|array Updated value of option.
212
+ */
213
+ public function sanitize_option_value( $field_value ) {
214
+ switch ( $this->get_option_type() ) {
215
+ case self::FIELD_TYPE_CHECKBOX:
216
+ return ( $field_value ) ? '1' : '0';
217
+ case self::FIELD_TYPE_RADIO:
218
+ case self::FIELD_TYPE_RADIO_LIST:
219
+ case self::FIELD_TYPE_SELECT:
220
+ if ( $values = $this->get_values() ) {
221
+ return ( array_key_exists( $field_value, $values ) ) ? $field_value : $this->get_default_value();
222
+ }
223
+ break;
224
+ case self::FIELD_TYPE_SELECT_MULTI:
225
+ if ( ! is_array( $field_value ) ) {
226
+ $field_value = [];
227
+ }
228
+
229
+ foreach ( $field_value as $value_index => $value ) {
230
+ $field_value[ $value_index ] = sanitize_text_field( wp_unslash( $value ) );
231
+ }
232
+ return $field_value;
233
+ case self::FIELD_TYPE_CHECKBOX_LIST:
234
+ case self::FIELD_TYPE_GROUP:
235
+ case self::FIELD_TYPE_REPEATER:
236
+ return $field_value;
237
+ }
238
+
239
+ return sanitize_text_field( wp_unslash( $field_value ) );
240
+ }
241
+
242
+ /**
243
+ * Returns updated settings of field contain values for this option.
244
+ *
245
+ * @param array $field_data Original settings of field.
246
+ * @param array $field_settings Settings of field.
247
+ *
248
+ * @return array Updated settings of field.
249
+ */
250
+ public function update_field_data( array $field_data, array $field_settings ): array {
251
+ $option_name = $this->get_option_name();
252
+
253
+ switch ( $this->get_option_type() ) {
254
+ case self::FIELD_TYPE_CHECKBOX_LIST:
255
+ case self::FIELD_TYPE_GROUP:
256
+ foreach ( $this->get_children() as $option_children ) {
257
+ $field_data = $option_children->update_field_data( $field_data, $field_settings );
258
+ }
259
+ break;
260
+ case self::FIELD_TYPE_REPEATER:
261
+ if ( ! ( $rows = $field_settings[ $option_name ] ?? [] ) ) {
262
+ return $field_data;
263
+ }
264
+
265
+ foreach ( (array) $rows as $row_index => $row ) {
266
+ if ( ! $row ) {
267
+ continue;
268
+ }
269
+
270
+ foreach ( $this->get_children() as $option_children ) {
271
+ $field_data[ $option_name ][ $row_index ] = $option_children->update_field_data(
272
+ $field_data[ $option_name ][ $row_index ] ?? [],
273
+ $row
274
+ );
275
+ }
276
+ }
277
+ $field_data[ $option_name ] = $this->sanitize_option_value(
278
+ $field_data[ $option_name ] ?? $this->get_default_value()
279
+ );
280
+ break;
281
+ default:
282
+ $field_data[ $option_name ] = $this->sanitize_option_value(
283
+ $field_settings[ $option_name ] ?? $this->get_default_value()
284
+ );
285
+ break;
286
+ }
287
+
288
+ return $field_data;
289
+ }
290
+
291
+ /**
292
+ * Returns updated settings of field contain submitted values.
293
+ *
294
+ * @param array $field_data Current settings of field.
295
+ * @param array $field_settings Settings of field.
296
+ *
297
+ * @return array Updated settings of field.
298
+ */
299
+ public function save_field_data( array $field_data, array $field_settings ): array {
300
+ return $this->update_field_data( $field_data, $field_settings );
301
+ }
302
+ }
src/Settings/Option/OptionIntegration.php ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Option;
9
+
10
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
11
+ use WPDesk\FCF\Free\Settings\Option\OptionAbstract;
12
+
13
+ /**
14
+ * Initializes integration for option of field.
15
+ */
16
+ class OptionIntegration {
17
+
18
+ /**
19
+ * Class object for field type.
20
+ *
21
+ * @var OptionInterface
22
+ */
23
+ private $option_object;
24
+
25
+ /**
26
+ * Class constructor.
27
+ *
28
+ * @param OptionInterface $option_object Class object of field type.
29
+ */
30
+ public function __construct( OptionInterface $option_object ) {
31
+ $this->option_object = $option_object;
32
+ }
33
+
34
+ /**
35
+ * Returns list of settings for field.
36
+ *
37
+ * @return array Settings of field.
38
+ */
39
+ public function get_field_settings(): array {
40
+ $settings = [
41
+ 'name' => $this->option_object->get_option_name(),
42
+ 'type' => $this->option_object->get_option_type(),
43
+ 'tab_name' => $this->option_object->get_option_tab(),
44
+ 'label' => $this->option_object->get_option_label(),
45
+ 'label_row' => $this->option_object->get_option_row_label(),
46
+ 'label_tooltip' => $this->option_object->get_label_tooltip(),
47
+ 'label_tooltip_url' => $this->option_object->get_label_tooltip_url(),
48
+ 'html_atts' => $this->option_object->get_input_atts(),
49
+ 'display_pattern' => $this->option_object->get_print_pattern(),
50
+ 'readonly' => $this->option_object->is_readonly(),
51
+ 'validation_rules' => $this->option_object->get_validation_rules(),
52
+ 'option_name_rows' => $this->option_object->get_option_name_to_rows(),
53
+ 'default_value' => $this->option_object->get_default_value(),
54
+ 'show_if_regexes' => $this->option_object->get_options_regexes_to_display(),
55
+ 'refresh_trigger' => $this->option_object->is_refresh_trigger(),
56
+ 'endpoint_route' => $this->option_object->get_endpoint_route(),
57
+ 'endpoint_params' => $this->option_object->get_endpoint_option_names(),
58
+ 'endpoint_autorefresh' => $this->option_object->is_endpoint_autorefreshed(),
59
+ 'update_field_callback' => [ $this->option_object, 'update_field_data' ],
60
+ 'save_field_callback' => [ $this->option_object, 'save_field_data' ],
61
+ 'items' => [],
62
+ ];
63
+
64
+ switch ( $settings['type'] ) {
65
+ case OptionAbstract::FIELD_TYPE_CHECKBOX_LIST:
66
+ case OptionAbstract::FIELD_TYPE_GROUP:
67
+ case OptionAbstract::FIELD_TYPE_REPEATER:
68
+ foreach ( $this->option_object->get_children() as $child_object ) {
69
+ $settings['items'][] = ( new OptionIntegration( $child_object ) )->get_field_settings();
70
+ }
71
+ break;
72
+ case OptionAbstract::FIELD_TYPE_RADIO:
73
+ case OptionAbstract::FIELD_TYPE_SELECT:
74
+ case OptionAbstract::FIELD_TYPE_SELECT_MULTI:
75
+ $settings['items'] = $this->option_object->get_values();
76
+ break;
77
+ }
78
+
79
+ return $settings;
80
+ }
81
+ }
src/Settings/Option/OptionInterface.php ADDED
@@ -0,0 +1,186 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Option;
9
+
10
+ /**
11
+ * Interface for option of field.
12
+ */
13
+ interface OptionInterface {
14
+
15
+ /**
16
+ * Returns name of option.
17
+ *
18
+ * @return string Option name.
19
+ */
20
+ public function get_option_name(): string;
21
+
22
+ /**
23
+ * Returns name of option tab.
24
+ *
25
+ * @return string Tab name.
26
+ */
27
+ public function get_option_tab(): string;
28
+
29
+ /**
30
+ * Returns type of option.
31
+ *
32
+ * @return string Option name.
33
+ */
34
+ public function get_option_type(): string;
35
+
36
+ /**
37
+ * Returns label of option.
38
+ *
39
+ * @return string Option label.
40
+ */
41
+ public function get_option_label(): string;
42
+
43
+ /**
44
+ * Returns label of option row (for Repeater field).
45
+ *
46
+ * @return string Option row label.
47
+ */
48
+ public function get_option_row_label(): string;
49
+
50
+ /**
51
+ * Returns content for label tooltip.
52
+ *
53
+ * @return string Tooltip content.
54
+ */
55
+ public function get_label_tooltip(): string;
56
+
57
+ /**
58
+ * Returns URL for label tooltip.
59
+ *
60
+ * @return string Tooltip URL.
61
+ */
62
+ public function get_label_tooltip_url(): string;
63
+
64
+ /**
65
+ * Returns list of HTML attributes for field with their values.
66
+ *
67
+ * @return array Atts for field.
68
+ */
69
+ public function get_input_atts(): array;
70
+
71
+ /**
72
+ * Returns pattern to display value (%s will be replaced by option value).
73
+ * It works only for text or textarea fields.
74
+ *
75
+ * @return string Pattern to display value.
76
+ */
77
+ public function get_print_pattern(): string;
78
+
79
+ /**
80
+ * Returns status if option are readonly.
81
+ *
82
+ * @return bool Readonly status of option.
83
+ */
84
+ public function is_readonly(): bool;
85
+
86
+ /**
87
+ * Returns list of validation rules for field.
88
+ * Key is regular expression without delimiters, value is message of validation error.
89
+ *
90
+ * @return array Validation rules.
91
+ */
92
+ public function get_validation_rules(): array;
93
+
94
+ /**
95
+ * Returns name of option and regex for its value that must be true to display this field.
96
+ * Key is name of field, value is regular expression without delimiters.
97
+ *
98
+ * @return array Option names with regexes.
99
+ */
100
+ public function get_options_regexes_to_display(): array;
101
+
102
+ /**
103
+ * Returns name of option whose value will create list of rows for Repeater field.
104
+ *
105
+ * @return string Option name.
106
+ */
107
+ public function get_option_name_to_rows(): string;
108
+
109
+ /**
110
+ * Returns available values of option, if exists.
111
+ *
112
+ * @return array List of option values.
113
+ */
114
+ public function get_values(): array;
115
+
116
+ /**
117
+ * Returns default value of option.
118
+ *
119
+ * @return string|array Default value.
120
+ */
121
+ public function get_default_value();
122
+
123
+ /**
124
+ * Returns endpoint route to retrieve values.
125
+ *
126
+ * @return string Route name of endpoint.
127
+ */
128
+ public function get_endpoint_route(): string;
129
+
130
+ /**
131
+ * Returns option names passed to REST API to retrieve values.
132
+ *
133
+ * @return array Option keys.
134
+ */
135
+ public function get_endpoint_option_names(): array;
136
+
137
+ /**
138
+ * Returns status if values from endpoint should be refreshed automatically (triggered by refresh event).
139
+ *
140
+ * @return bool Status of auto-refreshed values.
141
+ */
142
+ public function is_endpoint_autorefreshed(): bool;
143
+
144
+ /**
145
+ * Returns status whether change of option value initiates refresh event.
146
+ *
147
+ * @return bool Status of refresh event.
148
+ */
149
+ public function is_refresh_trigger(): bool;
150
+
151
+ /**
152
+ * Returns subfields of option, if exists.
153
+ *
154
+ * @return OptionInterface[] List of option children.
155
+ */
156
+ public function get_children(): array;
157
+
158
+ /**
159
+ * Filters option value from all unsafe strings.
160
+ *
161
+ * @param string|array $field_value Original option value.
162
+ *
163
+ * @return string|array Updated value of option.
164
+ */
165
+ public function sanitize_option_value( $field_value );
166
+
167
+ /**
168
+ * Returns updated settings of field contain values for this option.
169
+ *
170
+ * @param array $field_data Original settings of field.
171
+ * @param array $field_settings Settings of field.
172
+ *
173
+ * @return array Updated settings of field.
174
+ */
175
+ public function update_field_data( array $field_data, array $field_settings ): array;
176
+
177
+ /**
178
+ * Returns updated settings of field contain submitted values.
179
+ *
180
+ * @param array $field_data Current settings of field.
181
+ * @param array $field_settings Settings of field.
182
+ *
183
+ * @return array Updated settings of field.
184
+ */
185
+ public function save_field_data( array $field_data, array $field_settings ): array;
186
+ }
src/Settings/Option/PlaceholderOption.php ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Option;
9
+
10
+ use WPDesk\FCF\Free\Settings\Option\OptionAbstract;
11
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
12
+ use WPDesk\FCF\Free\Settings\Tab\AppearanceTab;
13
+
14
+ /**
15
+ * Supports option settings for field.
16
+ */
17
+ class PlaceholderOption extends OptionAbstract implements OptionInterface {
18
+
19
+ const FIELD_NAME = 'placeholder';
20
+
21
+ /**
22
+ * Returns name of option.
23
+ *
24
+ * @return string Option name.
25
+ */
26
+ public function get_option_name(): string {
27
+ return self::FIELD_NAME;
28
+ }
29
+
30
+ /**
31
+ * Returns name of option tab.
32
+ *
33
+ * @return string Tab name.
34
+ */
35
+ public function get_option_tab(): string {
36
+ return AppearanceTab::TAB_NAME;
37
+ }
38
+
39
+ /**
40
+ * Returns type of option.
41
+ *
42
+ * @return string Option name.
43
+ */
44
+ public function get_option_type(): string {
45
+ return self::FIELD_TYPE_TEXT;
46
+ }
47
+
48
+ /**
49
+ * Returns label of option.
50
+ *
51
+ * @return string Option label.
52
+ */
53
+ public function get_option_label(): string {
54
+ return __( 'Placeholder', 'flexible-checkout-fields' );
55
+ }
56
+ }
src/Settings/Option/PricingAdvOption.php ADDED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Option;
9
+
10
+ use WPDesk\FCF\Free\Settings\Option\OptionAbstract;
11
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
12
+ use WPDesk\FCF\Free\Settings\Tab\PricingTab;
13
+
14
+ /**
15
+ * Supports option settings for field.
16
+ */
17
+ class PricingAdvOption extends OptionAbstract implements OptionInterface {
18
+
19
+ const FIELD_NAME = 'pricing_adv';
20
+
21
+ /**
22
+ * Returns name of option.
23
+ *
24
+ * @return string Option name.
25
+ */
26
+ public function get_option_name(): string {
27
+ return self::FIELD_NAME;
28
+ }
29
+
30
+ /**
31
+ * Returns name of option tab.
32
+ *
33
+ * @return string Tab name.
34
+ */
35
+ public function get_option_tab(): string {
36
+ return PricingTab::TAB_NAME;
37
+ }
38
+
39
+ /**
40
+ * Returns type of option.
41
+ *
42
+ * @return string Option name.
43
+ */
44
+ public function get_option_type(): string {
45
+ return self::FIELD_TYPE_INFO_ADV;
46
+ }
47
+
48
+ /**
49
+ * Returns label of option.
50
+ *
51
+ * @return string Option label.
52
+ */
53
+ public function get_option_label(): string {
54
+ $url = esc_url( apply_filters( 'flexible_checkout_fields/short_url', '#', 'fcf-settings-field-tab-pricing-upgrade' ) );
55
+ return sprintf(
56
+ /* translators: %1$s: break line, %2$s: anchor opening tag, %3$s: anchor closing tag */
57
+ __( 'Add a fixed or percentage price to the field and set the tax on this price.%1$s %2$sUpgrade to PRO%3$s', 'flexible-checkout-fields' ),
58
+ '<br>',
59
+ '<a href="' . $url . '" target="_blank" class="fcfArrowLink">',
60
+ '</a>'
61
+ );
62
+ }
63
+ }
src/Settings/Option/PriorityOption.php ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Option;
9
+
10
+ use WPDesk\FCF\Free\Settings\Option\OptionAbstract;
11
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
12
+ use WPDesk\FCF\Free\Settings\Tab\GeneralTab;
13
+
14
+ /**
15
+ * Supports option settings for field.
16
+ */
17
+ class PriorityOption extends OptionAbstract implements OptionInterface {
18
+
19
+ const FIELD_NAME = 'priority';
20
+
21
+ /**
22
+ * Returns name of option.
23
+ *
24
+ * @return string Option name.
25
+ */
26
+ public function get_option_name(): string {
27
+ return self::FIELD_NAME;
28
+ }
29
+
30
+ /**
31
+ * Returns name of option tab.
32
+ *
33
+ * @return string Tab name.
34
+ */
35
+ public function get_option_tab(): string {
36
+ return GeneralTab::TAB_NAME;
37
+ }
38
+
39
+ /**
40
+ * Returns type of option.
41
+ *
42
+ * @return string Option name.
43
+ */
44
+ public function get_option_type(): string {
45
+ return self::FIELD_TYPE_HIDDEN;
46
+ }
47
+
48
+ /**
49
+ * Filters option value from all unsafe strings.
50
+ *
51
+ * @param string|array $field_value Original option value.
52
+ *
53
+ * @return string|array Updated value of option.
54
+ */
55
+ public function sanitize_option_value( $field_value ) {
56
+ return intval( $field_value );
57
+ }
58
+ }
src/Settings/Option/RequiredHiddenOption.php ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Option;
9
+
10
+ use WPDesk\FCF\Free\Settings\Option\RequiredOption;
11
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
12
+
13
+ /**
14
+ * Supports option settings for field.
15
+ */
16
+ class RequiredHiddenOption extends RequiredOption implements OptionInterface {
17
+
18
+ /**
19
+ * Returns status if option are readonly.
20
+ *
21
+ * @return bool Readonly status of option.
22
+ */
23
+ public function is_readonly(): bool {
24
+ return true;
25
+ }
26
+
27
+ /**
28
+ * Returns content for label tooltip.
29
+ *
30
+ * @return string Tooltip content.
31
+ */
32
+ public function get_label_tooltip(): string {
33
+ return __( 'Requirement of this field is controlled by WooCommerce and cannot be changed.', 'flexible-checkout-fields' );
34
+ }
35
+ }
src/Settings/Option/RequiredOption.php ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Option;
9
+
10
+ use WPDesk\FCF\Free\Settings\Option\OptionAbstract;
11
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
12
+ use WPDesk\FCF\Free\Settings\Tab\GeneralTab;
13
+
14
+ /**
15
+ * Supports option settings for field.
16
+ */
17
+ class RequiredOption extends OptionAbstract implements OptionInterface {
18
+
19
+ const FIELD_NAME = 'required';
20
+
21
+ /**
22
+ * Returns name of option.
23
+ *
24
+ * @return string Option name.
25
+ */
26
+ public function get_option_name(): string {
27
+ return self::FIELD_NAME;
28
+ }
29
+
30
+ /**
31
+ * Returns name of option tab.
32
+ *
33
+ * @return string Tab name.
34
+ */
35
+ public function get_option_tab(): string {
36
+ return GeneralTab::TAB_NAME;
37
+ }
38
+
39
+ /**
40
+ * Returns type of option.
41
+ *
42
+ * @return string Option name.
43
+ */
44
+ public function get_option_type(): string {
45
+ return self::FIELD_TYPE_CHECKBOX;
46
+ }
47
+
48
+ /**
49
+ * Returns label of option.
50
+ *
51
+ * @return string Option label.
52
+ */
53
+ public function get_option_label(): string {
54
+ return __( 'Required field', 'flexible-checkout-fields' );
55
+ }
56
+ }
src/Settings/Option/SettingJqueryCssOption.php ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Option;
9
+
10
+ use WPDesk\FCF\Free\Settings\Option\OptionAbstract;
11
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
12
+ use WPDesk\FCF\Free\Settings\Tab\GeneralTab;
13
+
14
+ /**
15
+ * Supports option settings for field.
16
+ */
17
+ class SettingJqueryCssOption extends OptionAbstract implements OptionInterface {
18
+
19
+ const FIELD_NAME = 'inspire_checkout_fields_css_disable';
20
+
21
+ /**
22
+ * Returns name of option.
23
+ *
24
+ * @return string Option name.
25
+ */
26
+ public function get_option_name(): string {
27
+ return self::FIELD_NAME;
28
+ }
29
+
30
+ /**
31
+ * Returns type of option.
32
+ *
33
+ * @return string Option name.
34
+ */
35
+ public function get_option_type(): string {
36
+ return self::FIELD_TYPE_CHECKBOX;
37
+ }
38
+
39
+ /**
40
+ * Returns label of option.
41
+ *
42
+ * @return string Option label.
43
+ */
44
+ public function get_option_label(): string {
45
+ return __( 'Disable jquery-ui.css on the frontend', 'flexible-checkout-fields' );
46
+ }
47
+
48
+ /**
49
+ * Returns label of option.
50
+ *
51
+ * @return string Option label.
52
+ */
53
+ public function get_label_tooltip(): string {
54
+ return __( 'Remember that some fields, i.e. datepicker use jQuery UI CSS. The plugin adds a default CSS but sometimes it can create some visual glitches.', 'flexible-checkout-fields' );
55
+ }
56
+ }
src/Settings/Option/SettingJqueryOption.php ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Option;
9
+
10
+ use WPDesk\FCF\Free\Settings\Option\OptionAbstract;
11
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
12
+ use WPDesk\FCF\Free\Settings\Option\SettingJqueryCssOption;
13
+
14
+ /**
15
+ * Supports option settings for field.
16
+ */
17
+ class SettingJqueryOption extends OptionAbstract implements OptionInterface {
18
+
19
+ const FIELD_NAME = 'settings_jquery';
20
+
21
+ /**
22
+ * Returns name of option.
23
+ *
24
+ * @return string Option name.
25
+ */
26
+ public function get_option_name(): string {
27
+ return self::FIELD_NAME;
28
+ }
29
+
30
+ /**
31
+ * Returns type of option.
32
+ *
33
+ * @return string Option name.
34
+ */
35
+ public function get_option_type(): string {
36
+ return self::FIELD_TYPE_CHECKBOX_LIST;
37
+ }
38
+
39
+ /**
40
+ * Returns label of option.
41
+ *
42
+ * @return string Option label.
43
+ */
44
+ public function get_option_label(): string {
45
+ return __( 'jQuery UI', 'flexible-checkout-fields' );
46
+ }
47
+
48
+ /**
49
+ * Returns subfields of option, if exists.
50
+ *
51
+ * @return OptionInterface[] List of option children.
52
+ */
53
+ public function get_children(): array {
54
+ return [
55
+ new SettingJqueryCssOption(),
56
+ ];
57
+ }
58
+ }
src/Settings/Option/SettingSectionsAdvOption.php ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Option;
9
+
10
+ use WPDesk\FCF\Free\Settings\Option\OptionAbstract;
11
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
12
+
13
+ /**
14
+ * Supports option settings for field.
15
+ */
16
+ class SettingSectionsAdvOption extends OptionAbstract implements OptionInterface {
17
+
18
+ const FIELD_NAME = 'settings_sections_adv';
19
+
20
+ /**
21
+ * Returns name of option.
22
+ *
23
+ * @return string Option name.
24
+ */
25
+ public function get_option_name(): string {
26
+ return self::FIELD_NAME;
27
+ }
28
+
29
+ /**
30
+ * Returns type of option.
31
+ *
32
+ * @return string Option name.
33
+ */
34
+ public function get_option_type(): string {
35
+ return self::FIELD_TYPE_INFO_ADV;
36
+ }
37
+
38
+ /**
39
+ * Returns label of option.
40
+ *
41
+ * @return string Option label.
42
+ */
43
+ public function get_option_label(): string {
44
+ $url = esc_url( apply_filters( 'flexible_checkout_fields/short_url', '#', 'fcf-settings-section-custom-upgrade' ) );
45
+ return '<p><strong>' . __( 'Get Flexible Checkout Fields PRO to use Custom Sections', 'flexible-checkout-fields' ) . '</strong></p>
46
+ <ul>
47
+ <li>' . __( 'Extend the form with additional fields. Insert Text inputs and Headings. Add Checkboxes and fields with options like DropDown or Radio.', 'flexible-checkout-fields' ) . '</li>
48
+ <li>' . __( 'Add conditional logic based on products and categories as well as FCF fields and shipping methods.', 'flexible-checkout-fields' ) . '</li>
49
+ <li>' . __( 'Add a fixed or percentage price to the field and set the tax on this price.', 'flexible-checkout-fields' ) . '</li>
50
+ </ul>
51
+ <p><a href="' . $url . '" target="_blank" class="fcfArrowLink">' . __( 'Upgrade to PRO', 'flexible-checkout-fields' ) . '</a></p>';
52
+ }
53
+ }
src/Settings/Option/ValidationInfoOption.php ADDED
@@ -0,0 +1,62 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Option;
9
+
10
+ use WPDesk\FCF\Free\Settings\Option\OptionAbstract;
11
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
12
+ use WPDesk\FCF\Free\Settings\Tab\AdvancedTab;
13
+
14
+ /**
15
+ * Supports option settings for field.
16
+ */
17
+ class ValidationInfoOption extends OptionAbstract implements OptionInterface {
18
+
19
+ const FIELD_NAME = 'validation_info';
20
+
21
+ /**
22
+ * Returns name of option.
23
+ *
24
+ * @return string Option name.
25
+ */
26
+ public function get_option_name(): string {
27
+ return self::FIELD_NAME;
28
+ }
29
+
30
+ /**
31
+ * Returns name of option tab.
32
+ *
33
+ * @return string Tab name.
34
+ */
35
+ public function get_option_tab(): string {
36
+ return AdvancedTab::TAB_NAME;
37
+ }
38
+
39
+ /**
40
+ * Returns type of option.
41
+ *
42
+ * @return string Option name.
43
+ */
44
+ public function get_option_type(): string {
45
+ return self::FIELD_TYPE_INFO;
46
+ }
47
+
48
+ /**
49
+ * Returns label of option.
50
+ *
51
+ * @return string Option label.
52
+ */
53
+ public function get_option_label(): string {
54
+ $url = esc_url( apply_filters( 'flexible_checkout_fields/short_url', '#', 'fcf-settings-field-tab-validation-docs' ) );
55
+ return sprintf(
56
+ /* translators: %1$s: anchor opening tag, %2$s: anchor closing tag */
57
+ __( 'You can to add custom validation in the functions.php file. %1$sRead more%2$s', 'flexible-checkout-fields' ),
58
+ '<a href="' . $url . '" target="_blank" class="fcfArrowLink">',
59
+ '</a>'
60
+ );
61
+ }
62
+ }
src/Settings/Option/ValidationOption.php ADDED
@@ -0,0 +1,86 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Option;
9
+
10
+ use WPDesk\FCF\Free\Settings\Option\OptionAbstract;
11
+ use WPDesk\FCF\Free\Settings\Option\OptionInterface;
12
+ use WPDesk\FCF\Free\Settings\Tab\AdvancedTab;
13
+
14
+ /**
15
+ * Supports option settings for field.
16
+ */
17
+ class ValidationOption extends OptionAbstract implements OptionInterface {
18
+
19
+ const FIELD_NAME = 'validation';
20
+
21
+ /**
22
+ * Returns name of option.
23
+ *
24
+ * @return string Option name.
25
+ */
26
+ public function get_option_name(): string {
27
+ return self::FIELD_NAME;
28
+ }
29
+
30
+ /**
31
+ * Returns name of option tab.
32
+ *
33
+ * @return string Tab name.
34
+ */
35
+ public function get_option_tab(): string {
36
+ return AdvancedTab::TAB_NAME;
37
+ }
38
+
39
+ /**
40
+ * Returns type of option.
41
+ *
42
+ * @return string Option name.
43
+ */
44
+ public function get_option_type(): string {
45
+ return self::FIELD_TYPE_RADIO;
46
+ }
47
+
48
+ /**
49
+ * Returns label of option.
50
+ *
51
+ * @return string Option label.
52
+ */
53
+ public function get_option_label(): string {
54
+ return __( 'Validation', 'flexible-checkout-fields' );
55
+ }
56
+
57
+ /**
58
+ * Returns available values of option, if exists.
59
+ *
60
+ * @return array List of option values.
61
+ */
62
+ public function get_values(): array {
63
+ $rules = [
64
+ '' => __( 'Default', 'flexible-checkout-fields' ),
65
+ 'none' => __( 'None', 'flexible-checkout-fields' ),
66
+ 'email' => __( 'E-mail', 'flexible-checkout-fields' ),
67
+ 'phone' => __( 'Phone', 'flexible-checkout-fields' ),
68
+ 'postcode' => __( 'Postcode', 'flexible-checkout-fields' ),
69
+ ];
70
+
71
+ $custom_rules = apply_filters( 'flexible_checkout_fields_custom_validation', [] );
72
+ foreach ( $custom_rules as $rule_key => $rule_data ) {
73
+ $rules[ $rule_key ] = $rule_data['label'];
74
+ }
75
+ return $rules;
76
+ }
77
+
78
+ /**
79
+ * Returns default value of option.
80
+ *
81
+ * @return string|array Default value.
82
+ */
83
+ public function get_default_value() {
84
+ return '';
85
+ }
86
+ }
src/Settings/Page.php ADDED
@@ -0,0 +1,240 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FCF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings;
9
+
10
+ use FcfVendor\WPDesk\PluginBuilder\Plugin\Hookable;
11
+ use FcfVendor\WPDesk\PluginBuilder\Plugin\HookablePluginDependant;
12
+ use FcfVendor\WPDesk\PluginBuilder\Plugin\PluginAccess;
13
+ use FcfVendor\WPDesk\View\Renderer\SimplePhpRenderer;
14
+ use FcfVendor\WPDesk\View\Resolver\DirResolver;
15
+ use WPDesk\FCF\Free\Settings\Route\RouteIntegration;
16
+ use WPDesk\FCF\Free\Settings\Menu;
17
+
18
+ /**
19
+ * Supports page of plugin settings.
20
+ */
21
+ class Page implements Hookable, HookablePluginDependant {
22
+
23
+ use PluginAccess;
24
+
25
+ const SETTINGS_PAGE = 'inspire_checkout_fields_settings';
26
+
27
+ /**
28
+ * Class object for template rendering.
29
+ *
30
+ * @var SimplePhpRenderer
31
+ */
32
+ private $renderer;
33
+
34
+ /**
35
+ * Class constructor.
36
+ */
37
+ public function __construct() {
38
+ $this->set_renderer();
39
+ }
40
+
41
+ /**
42
+ * Init class for template rendering.
43
+ */
44
+ private function set_renderer() {
45
+ $this->renderer = new SimplePhpRenderer( new DirResolver( dirname( dirname( __DIR__ ) ) . '/templates' ) );
46
+ }
47
+
48
+ /**
49
+ * Integrate with WordPress and with other plugins using action/filter system.
50
+ *
51
+ * @return void
52
+ */
53
+ public function hooks() {
54
+ add_action( 'admin_menu', [ $this, 'add_settings_page' ], 80 );
55
+ add_action( 'admin_enqueue_scripts', [ $this, 'load_assets_for_settings_page' ], 80 );
56
+ }
57
+
58
+ /**
59
+ * Registers admin page for plugin settings.
60
+ *
61
+ * @internal
62
+ */
63
+ public function add_settings_page() {
64
+ add_submenu_page(
65
+ 'woocommerce',
66
+ __( 'Checkout Fields Settings', 'flexible-checkout-fields' ),
67
+ __( 'Checkout Fields', 'flexible-checkout-fields' ),
68
+ 'manage_woocommerce',
69
+ self::SETTINGS_PAGE,
70
+ [ $this, 'render_settings_page' ]
71
+ );
72
+ }
73
+
74
+ /**
75
+ * Initiates loading of assets needed to operate admin page.
76
+ *
77
+ * @internal
78
+ */
79
+ public function load_assets_for_settings_page() {
80
+ if ( ! isset( $_GET['page'] ) || ( $_GET['page'] !== self::SETTINGS_PAGE ) ) { // phpcs:ignore
81
+ return;
82
+ }
83
+
84
+ $this->load_styles_for_page();
85
+ $this->load_scripts_for_page();
86
+ }
87
+
88
+ /**
89
+ * Loads admin page template.
90
+ *
91
+ * @internal
92
+ */
93
+ public function render_settings_page() {
94
+ $menu_tabs = ( new Menu() )->get_menu_tabs();
95
+ $menu_sections = ( new Menu() )->get_menu_sections();
96
+
97
+ echo $this->renderer->render( // phpcs:ignore
98
+ 'views/admin-page',
99
+ [
100
+ 'settings' => $this->load_settings_data( $menu_sections ), // phpcs:ignore
101
+ 'menu_tabs' => $menu_tabs, // phpcs:ignore
102
+ 'menu_sections' => $menu_sections, // phpcs:ignore
103
+ ]
104
+ );
105
+ }
106
+
107
+ /**
108
+ * Returns set of data needed to support admin panel by JS code.
109
+ *
110
+ * @param array $menu_sections Items of menu with sections.
111
+ *
112
+ * @return array Settings of admin page.
113
+ */
114
+ private function load_settings_data( array $menu_sections ): array {
115
+ $settings = [
116
+ 'rest_api_url' => get_rest_url( null, RouteIntegration::REST_API_NAMESPACE ),
117
+ 'header_nonce' => wp_create_nonce( 'wp_rest' ),
118
+ 'i18n' => $this->load_translations(),
119
+ ];
120
+
121
+ switch ( $_GET['tab'] ?? '' ) { // phpcs:ignore
122
+ case MENU::MENU_TAB_SETTINGS:
123
+ $settings['form_settings'] = [
124
+ 'api_route' => 'settings',
125
+ 'form_index' => null,
126
+ 'option_fields' => apply_filters( 'flexible_checkout_fields/form_fields_settings', [] ),
127
+ 'option_values' => apply_filters( 'flexible_checkout_fields/form_data_settings', [] ),
128
+ 'settings_tabs' => [],
129
+ ];
130
+ break;
131
+ default:
132
+ if ( ! ( $section = $this->get_active_section( $menu_sections ) ) ) {
133
+ break;
134
+ }
135
+ $settings['form_fields'] = [
136
+ 'api_route' => sprintf( '%s/fields', $section['id'] ),
137
+ 'form_index' => $section['id'],
138
+ 'option_fields' => apply_filters( 'flexible_checkout_fields/field_types', [], $section['id'] ),
139
+ 'option_values' => array_values( apply_filters( 'flexible_checkout_fields/form_data_fields', [], $section['id'] ) ),
140
+ 'settings_tabs' => apply_filters( 'flexible_checkout_fields/field_settings_tabs', [] ),
141
+ ];
142
+
143
+ if ( ! $section['has_section_form'] ) {
144
+ break;
145
+ }
146
+ $settings['form_section'] = [
147
+ 'api_route' => sprintf( '%s/section', $section['id'] ),
148
+ 'form_index' => $section['id'],
149
+ 'option_fields' => apply_filters( 'flexible_checkout_fields/form_fields_section', [], $section['id'] ),
150
+ 'option_values' => apply_filters( 'flexible_checkout_fields/form_data_section', [], $section['id'] ),
151
+ 'settings_tabs' => [],
152
+ ];
153
+ break;
154
+ }
155
+
156
+ return $settings;
157
+ }
158
+
159
+ /**
160
+ * Returns active section from sections menu.
161
+ *
162
+ * @param array $menu_sections Items of menu with sections.
163
+ *
164
+ * @return array|null Active item of menu.
165
+ */
166
+ private function get_active_section( array $menu_sections ) {
167
+ foreach ( $menu_sections as $section ) {
168
+ if ( $section['is_active'] ) {
169
+ return $section;
170
+ }
171
+ }
172
+ return null;
173
+ }
174
+
175
+ /**
176
+ * Returns list of translations used by JS code.
177
+ *
178
+ * @return array Translations values.
179
+ */
180
+ private function load_translations(): array {
181
+ return [
182
+ 'form_fields' => __( 'Edit form', 'flexible-checkout-fields' ),
183
+ 'form_add_field' => __( 'Add new field', 'flexible-checkout-fields' ),
184
+ 'form_section' => __( 'Edit section', 'flexible-checkout-fields' ),
185
+ 'form_settings' => __( 'Edit settings', 'flexible-checkout-fields' ),
186
+ 'button_add_field' => __( 'Add Field', 'flexible-checkout-fields' ),
187
+ 'button_add_row' => __( 'Add New', 'flexible-checkout-fields' ),
188
+ 'button_save' => __( 'Save Changes', 'flexible-checkout-fields' ),
189
+ 'button_reset' => __( 'Reset Section Settings', 'flexible-checkout-fields' ),
190
+ 'button_read_more' => __( 'Read more', 'flexible-checkout-fields' ),
191
+ 'button_yes' => __( 'Yes', 'flexible-checkout-fields' ),
192
+ 'button_no' => __( 'No', 'flexible-checkout-fields' ),
193
+ 'field_type' => __( 'Field Type', 'flexible-checkout-fields' ),
194
+ 'field_label' => __( 'Label', 'flexible-checkout-fields' ),
195
+ 'field_name' => __( 'Name', 'flexible-checkout-fields' ),
196
+ 'validation_required' => __( 'This field is required.', 'flexible-checkout-fields' ),
197
+ 'validation_slug' => __( 'Field name should contains only lowercase letters, numbers and underscore sign.', 'flexible-checkout-fields' ),
198
+ 'select_placeholder' => __( 'Select...', 'flexible-checkout-fields' ),
199
+ 'select_loading' => __( 'Loading...', 'flexible-checkout-fields' ),
200
+ 'select_empty' => __( 'No options.', 'flexible-checkout-fields' ),
201
+ 'alert_field_unavailable' => sprintf(
202
+ /* translators: %1$s: break line, %2$s: anchor opening tag, %3$s: anchor closing tag */
203
+ __( 'This field is available in the PRO version.%1$s %2$sUpgrade to PRO%3$s', 'flexible-checkout-fields' ),
204
+ '<br>',
205
+ '<a href="' . esc_url( apply_filters( 'flexible_checkout_fields/short_url', '#', 'fcf-settings-field-type-upgrade' ) ) . '" target="_blank" class="fcfArrowLink">',
206
+ '</a>'
207
+ ),
208
+ 'alert_remove_field' => __( 'Are you sure you want to delete this field? Deleting a field will remove it from all orders.', 'flexible-checkout-fields' ),
209
+ 'alert_reset' => __( 'Do you really want to reset section settings? Resetting a section remove all added fields from orders.', 'flexible-checkout-fields' ),
210
+ 'alert_no_fields' => __( 'No fields available.', 'flexible-checkout-fields' ),
211
+ ];
212
+ }
213
+
214
+ /**
215
+ * Enqueues styles in WordPress Admin Dashboard.
216
+ */
217
+ private function load_styles_for_page() {
218
+ wp_register_style(
219
+ 'fcf-admin',
220
+ trailingslashit( $this->plugin->get_plugin_assets_url() ) . 'css/new-admin.css',
221
+ [],
222
+ $this->plugin->get_script_version()
223
+ );
224
+ wp_enqueue_style( 'fcf-admin' );
225
+ }
226
+
227
+ /**
228
+ * Enqueues scripts in WordPress Admin Dashboard.
229
+ */
230
+ private function load_scripts_for_page() {
231
+ wp_register_script(
232
+ 'fcf-admin',
233
+ trailingslashit( $this->plugin->get_plugin_assets_url() ) . 'js/new-admin.js',
234
+ [],
235
+ $this->plugin->get_script_version(),
236
+ true
237
+ );
238
+ wp_enqueue_script( 'fcf-admin' );
239
+ }
240
+ }
src/Settings/Route/RouteAbstract.php ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FCF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Route;
9
+
10
+ use WPDesk\FCF\Free\Settings\Route\RouteInterface;
11
+
12
+ /**
13
+ * Abstract class for REST API route.
14
+ */
15
+ abstract class RouteAbstract implements RouteInterface {
16
+
17
+ /**
18
+ * Returns list of HTTP methods for endpoint.
19
+ *
20
+ * @return string[] List of methods.
21
+ */
22
+ public function get_route_methods(): array {
23
+ return [ 'POST' ];
24
+ }
25
+
26
+ /**
27
+ * Returns list of args for params using to register endpoint.
28
+ *
29
+ * @return array Args for endpoint params.
30
+ */
31
+ public function get_route_params(): array {
32
+ return [
33
+ 'form_values' => [
34
+ 'description' => 'Form values',
35
+ 'required' => true,
36
+ 'default' => [],
37
+ ],
38
+ 'section_fields' => [
39
+ 'description' => 'Section fields',
40
+ 'required' => true,
41
+ 'default' => [],
42
+ ],
43
+ ];
44
+ }
45
+ }
src/Settings/Route/RouteIntegration.php ADDED
@@ -0,0 +1,97 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Route;
9
+
10
+ use WPDesk\FCF\Free\Settings\Route\RouteInterface;
11
+
12
+ /**
13
+ * Initializes integration for REST API route.
14
+ */
15
+ class RouteIntegration {
16
+
17
+ const REST_API_NAMESPACE = 'flexible-checkout-fields/v1';
18
+
19
+ /**
20
+ * Class object for value.
21
+ *
22
+ * @var RouteInterface
23
+ */
24
+ private $value_object;
25
+
26
+ /**
27
+ * Class constructor.
28
+ *
29
+ * @param RouteInterface $value_object Class object of field type.
30
+ */
31
+ public function __construct( RouteInterface $value_object ) {
32
+ $this->value_object = $value_object;
33
+ }
34
+
35
+ /**
36
+ * Integrate with WordPress and with other plugins using action/filter system.
37
+ *
38
+ * @return void
39
+ */
40
+ public function hooks() {
41
+ add_action( 'rest_api_init', [ $this, 'register_endpoint' ] );
42
+ }
43
+
44
+ /**
45
+ * Registers REST API route.
46
+ *
47
+ * @internal
48
+ */
49
+ public function register_endpoint() {
50
+ register_rest_route(
51
+ self::REST_API_NAMESPACE,
52
+ $this->value_object->get_endpoint_route(),
53
+ [
54
+ 'methods' => $this->value_object->get_route_methods(),
55
+ 'args' => $this->value_object->get_route_params(),
56
+ 'callback' => [ $this, 'get_endpoint_response' ],
57
+ 'permission_callback' => function() {
58
+ return current_user_can( 'manage_options' );
59
+ },
60
+ ],
61
+ true
62
+ );
63
+ }
64
+
65
+ /**
66
+ * Registers REST API route.
67
+ *
68
+ * @param \WP_REST_Request $request .
69
+ *
70
+ * @return \WP_REST_Response|\WP_Error .
71
+ *
72
+ * @internal
73
+ */
74
+ public function get_endpoint_response( \WP_REST_Request $request ) {
75
+ $params = $request->get_params();
76
+
77
+ try {
78
+ $response = $this->value_object->get_endpoint_response( $params );
79
+
80
+ return new \WP_REST_Response(
81
+ $response,
82
+ 200
83
+ );
84
+ } catch ( \Exception $e ) {
85
+ $message = $e->getMessage()
86
+ ?: __( 'An unknown error occurred while processing the request.', 'flexible-checkout-fields' );
87
+
88
+ return new \WP_Error(
89
+ 'fcf_error',
90
+ $message,
91
+ [
92
+ 'status' => 400,
93
+ ]
94
+ );
95
+ }
96
+ }
97
+ }
src/Settings/Route/RouteInterface.php ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Route;
9
+
10
+ /**
11
+ * Interface for REST API route.
12
+ */
13
+ interface RouteInterface {
14
+
15
+ /**
16
+ * Returns route of REST API endpoint.
17
+ *
18
+ * @return string Route name.
19
+ */
20
+ public function get_endpoint_route(): string;
21
+
22
+ /**
23
+ * Returns list of HTTP methods for endpoint.
24
+ *
25
+ * @return string[] List of methods.
26
+ */
27
+ public function get_route_methods(): array;
28
+
29
+ /**
30
+ * Returns list of args for params using to register endpoint.
31
+ *
32
+ * @return array Args for endpoint params.
33
+ */
34
+ public function get_route_params(): array;
35
+
36
+ /**
37
+ * Returns data to be returned for endpoint.
38
+ *
39
+ * @param array $params Params for endpoint.
40
+ *
41
+ * @return mixed Response data.
42
+ *
43
+ * @throws \Exception .
44
+ */
45
+ public function get_endpoint_response( array $params );
46
+ }
src/Settings/Route/UpdateFormFieldsRoute.php ADDED
@@ -0,0 +1,69 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Route;
9
+
10
+ use WPDesk\FCF\Free\Settings\Route\RouteAbstract;
11
+ use WPDesk\FCF\Free\Settings\Route\RouteInterface;
12
+ use WPDesk\FCF\Free\Settings\Form\EditFieldsForm;
13
+
14
+ /**
15
+ * Supports settings for REST API route.
16
+ */
17
+ class UpdateFormFieldsRoute extends RouteAbstract implements RouteInterface {
18
+
19
+ const REST_API_ROUTE = '(?P<section_name>[a-z_]+)/fields';
20
+
21
+ /**
22
+ * Returns route of REST API endpoint.
23
+ *
24
+ * @return string Route name.
25
+ */
26
+ public function get_endpoint_route(): string {
27
+ return self::REST_API_ROUTE;
28
+ }
29
+
30
+ /**
31
+ * Returns list of args for params using to register endpoint.
32
+ *
33
+ * @return array Args for endpoint params.
34
+ */
35
+ public function get_route_params(): array {
36
+ return [
37
+ 'section_name' => [
38
+ 'description' => 'Section name',
39
+ 'required' => true,
40
+ ],
41
+ 'form_fields' => [
42
+ 'description' => 'Form fields',
43
+ 'required' => true,
44
+ ],
45
+ ];
46
+ }
47
+
48
+ /**
49
+ * Returns data to be returned for endpoint.
50
+ *
51
+ * @param array $params Params for endpoint.
52
+ *
53
+ * @return mixed Response data.
54
+ *
55
+ * @throws \Exception .
56
+ */
57
+ public function get_endpoint_response( array $params ) {
58
+ try {
59
+ $status = ( new EditFieldsForm() )->save_form_data( $params );
60
+ if ( $status !== true ) {
61
+ throw new \Exception();
62
+ }
63
+
64
+ return null;
65
+ } catch ( \Exception $e ) {
66
+ throw $e;
67
+ }
68
+ }
69
+ }
src/Settings/Route/UpdateFormSettingsRoute.php ADDED
@@ -0,0 +1,66 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Route;
9
+
10
+ use WPDesk\FCF\Free\Settings\Route\RouteAbstract;
11
+ use WPDesk\FCF\Free\Settings\Route\RouteInterface;
12
+ use WPDesk\FCF\Free\Settings\Form\SettingsPageForm;
13
+
14
+ /**
15
+ * Supports settings for REST API route.
16
+ */
17
+ class UpdateFormSettingsRoute extends RouteAbstract implements RouteInterface {
18
+
19
+ const REST_API_ROUTE = 'settings';
20
+
21
+ /**
22
+ * Returns route of REST API endpoint.
23
+ *
24
+ * @return string Route name.
25
+ */
26
+ public function get_endpoint_route(): string {
27
+ return self::REST_API_ROUTE;
28
+ }
29
+
30
+ /**
31
+ * Returns list of args for params using to register endpoint.
32
+ *
33
+ * @return array Args for endpoint params.
34
+ */
35
+ public function get_route_params(): array {
36
+ return [
37
+ 'form_fields' => [
38
+ 'description' => 'Form fields',
39
+ 'required' => true,
40
+ 'default' => [],
41
+ ],
42
+ ];
43
+ }
44
+
45
+ /**
46
+ * Returns data to be returned for endpoint.
47
+ *
48
+ * @param array $params Params for endpoint.
49
+ *
50
+ * @return mixed Response data.
51
+ *
52
+ * @throws \Exception .
53
+ */
54
+ public function get_endpoint_response( array $params ) {
55
+ try {
56
+ $status = ( new SettingsPageForm() )->save_form_data( $params );
57
+ if ( $status !== true ) {
58
+ throw new \Exception();
59
+ }
60
+
61
+ return null;
62
+ } catch ( \Exception $e ) {
63
+ throw $e;
64
+ }
65
+ }
66
+ }
src/Settings/Routes.php ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FCF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings;
9
+
10
+ use WPDesk\FCF\Free\Settings\Route\RouteIntegration;
11
+ use WPDesk\FCF\Free\Settings\Route\UpdateFormFieldsRoute;
12
+ use WPDesk\FCF\Free\Settings\Route\UpdateFormSettingsRoute;
13
+
14
+ /**
15
+ * Supports management for REST API routes.
16
+ */
17
+ class Routes {
18
+
19
+ /**
20
+ * Initializes actions for class.
21
+ *
22
+ * @return void
23
+ */
24
+ public function init() {
25
+ ( new RouteIntegration( new UpdateFormFieldsRoute() ) )->hooks();
26
+ ( new RouteIntegration( new UpdateFormSettingsRoute() ) )->hooks();
27
+ }
28
+ }
src/Settings/Tab/AdvancedTab.php ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Tab;
9
+
10
+ use WPDesk\FCF\Free\Settings\Tab\TabAbstract;
11
+ use WPDesk\FCF\Free\Settings\Tab\TabInterface;
12
+
13
+ /**
14
+ * Supports for settings tab of field.
15
+ */
16
+ class AdvancedTab extends TabAbstract implements TabInterface {
17
+
18
+ const TAB_NAME = 'advanced';
19
+
20
+ /**
21
+ * Returns name of tab.
22
+ *
23
+ * @return string Tab name.
24
+ */
25
+ public function get_tab_name(): string {
26
+ return self::TAB_NAME;
27
+ }
28
+
29
+ /**
30
+ * Returns label of tab.
31
+ *
32
+ * @return string Tab label.
33
+ */
34
+ public function get_tab_label(): string {
35
+ return __( 'Advanced', 'flexible-checkout-fields' );
36
+ }
37
+
38
+ /**
39
+ * Returns tab icon as CSS Class supported by Icomoon.
40
+ *
41
+ * @return string Tab icon.
42
+ */
43
+ public function get_tab_icon(): string {
44
+ return 'icon-cogs';
45
+ }
46
+ }
src/Settings/Tab/AppearanceTab.php ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Tab;
9
+
10
+ use WPDesk\FCF\Free\Settings\Tab\TabAbstract;
11
+ use WPDesk\FCF\Free\Settings\Tab\TabInterface;
12
+
13
+ /**
14
+ * Supports for settings tab of field.
15
+ */
16
+ class AppearanceTab extends TabAbstract implements TabInterface {
17
+
18
+ const TAB_NAME = 'appearance';
19
+
20
+ /**
21
+ * Returns name of tab.
22
+ *
23
+ * @return string Tab name.
24
+ */
25
+ public function get_tab_name(): string {
26
+ return self::TAB_NAME;
27
+ }
28
+
29
+ /**
30
+ * Returns label of tab.
31
+ *
32
+ * @return string Tab label.
33
+ */
34
+ public function get_tab_label(): string {
35
+ return __( 'Appearance', 'flexible-checkout-fields' );
36
+ }
37
+
38
+ /**
39
+ * Returns tab icon as CSS Class supported by Icomoon.
40
+ *
41
+ * @return string Tab icon.
42
+ */
43
+ public function get_tab_icon(): string {
44
+ return 'icon-brush';
45
+ }
46
+ }
src/Settings/Tab/DisplayTab.php ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Tab;
9
+
10
+ use WPDesk\FCF\Free\Settings\Tab\TabAbstract;
11
+ use WPDesk\FCF\Free\Settings\Tab\TabInterface;
12
+
13
+ /**
14
+ * Supports for settings tab of field.
15
+ */
16
+ class DisplayTab extends TabAbstract implements TabInterface {
17
+
18
+ const TAB_NAME = 'display-on';
19
+
20
+ /**
21
+ * Returns name of tab.
22
+ *
23
+ * @return string Tab name.
24
+ */
25
+ public function get_tab_name(): string {
26
+ return self::TAB_NAME;
27
+ }
28
+
29
+ /**
30
+ * Returns label of tab.
31
+ *
32
+ * @return string Tab label.
33
+ */
34
+ public function get_tab_label(): string {
35
+ return __( 'Display On', 'flexible-checkout-fields' );
36
+ }
37
+
38
+ /**
39
+ * Returns tab icon as CSS Class supported by Icomoon.
40
+ *
41
+ * @return string Tab icon.
42
+ */
43
+ public function get_tab_icon(): string {
44
+ return 'icon-eye';
45
+ }
46
+ }
src/Settings/Tab/GeneralTab.php ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Tab;
9
+
10
+ use WPDesk\FCF\Free\Settings\Tab\TabAbstract;
11
+ use WPDesk\FCF\Free\Settings\Tab\TabInterface;
12
+
13
+ /**
14
+ * Supports for settings tab of field.
15
+ */
16
+ class GeneralTab extends TabAbstract implements TabInterface {
17
+
18
+ const TAB_NAME = 'general';
19
+
20
+ /**
21
+ * Returns name of tab.
22
+ *
23
+ * @return string Tab name.
24
+ */
25
+ public function get_tab_name(): string {
26
+ return self::TAB_NAME;
27
+ }
28
+
29
+ /**
30
+ * Returns label of tab.
31
+ *
32
+ * @return string Tab label.
33
+ */
34
+ public function get_tab_label(): string {
35
+ return __( 'General', 'flexible-checkout-fields' );
36
+ }
37
+
38
+ /**
39
+ * Returns tab icon as CSS Class supported by Icomoon.
40
+ *
41
+ * @return string Tab icon.
42
+ */
43
+ public function get_tab_icon(): string {
44
+ return 'icon-cog';
45
+ }
46
+ }
src/Settings/Tab/LogicTab.php ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Tab;
9
+
10
+ use WPDesk\FCF\Free\Settings\Tab\TabAbstract;
11
+ use WPDesk\FCF\Free\Settings\Tab\TabInterface;
12
+
13
+ /**
14
+ * Supports for settings tab of field.
15
+ */
16
+ class LogicTab extends TabAbstract implements TabInterface {
17
+
18
+ const TAB_NAME = 'conditional-logic';
19
+
20
+ /**
21
+ * Returns name of tab.
22
+ *
23
+ * @return string Tab name.
24
+ */
25
+ public function get_tab_name(): string {
26
+ return self::TAB_NAME;
27
+ }
28
+
29
+ /**
30
+ * Returns label of tab.
31
+ *
32
+ * @return string Tab label.
33
+ */
34
+ public function get_tab_label(): string {
35
+ return __( 'Conditional Logic', 'flexible-checkout-fields' );
36
+ }
37
+
38
+ /**
39
+ * Returns tab icon as CSS Class supported by Icomoon.
40
+ *
41
+ * @return string Tab icon.
42
+ */
43
+ public function get_tab_icon(): string {
44
+ return 'icon-magic';
45
+ }
46
+ }
src/Settings/Tab/PricingTab.php ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Tab;
9
+
10
+ use WPDesk\FCF\Free\Settings\Tab\TabAbstract;
11
+ use WPDesk\FCF\Free\Settings\Tab\TabInterface;
12
+
13
+ /**
14
+ * Supports for settings tab of field.
15
+ */
16
+ class PricingTab extends TabAbstract implements TabInterface {
17
+
18
+ const TAB_NAME = 'pricing';
19
+
20
+ /**
21
+ * Returns name of tab.
22
+ *
23
+ * @return string Tab name.
24
+ */
25
+ public function get_tab_name(): string {
26
+ return self::TAB_NAME;
27
+ }
28
+
29
+ /**
30
+ * Returns label of tab.
31
+ *
32
+ * @return string Tab label.
33
+ */
34
+ public function get_tab_label(): string {
35
+ return __( 'Pricing', 'flexible-checkout-fields' );
36
+ }
37
+
38
+ /**
39
+ * Returns tab icon as CSS Class supported by Icomoon.
40
+ *
41
+ * @return string Tab icon.
42
+ */
43
+ public function get_tab_icon(): string {
44
+ return 'icon-dollar-sign';
45
+ }
46
+ }
src/Settings/Tab/TabAbstract.php ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FCF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Tab;
9
+
10
+ use WPDesk\FCF\Free\Settings\Tab\TabInterface;
11
+
12
+ /**
13
+ * Abstract class for settings tab of field.
14
+ */
15
+ abstract class TabAbstract implements TabInterface {
16
+
17
+ }
src/Settings/Tab/TabIntegration.php ADDED
@@ -0,0 +1,69 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Tab;
9
+
10
+ use WPDesk\FCF\Free\Settings\Tab\TabInterface;
11
+
12
+ /**
13
+ * Initializes integration for settings tab of field.
14
+ */
15
+ class TabIntegration {
16
+
17
+ /**
18
+ * Class object for field type.
19
+ *
20
+ * @var TabInterface
21
+ */
22
+ private $tab_object;
23
+
24
+ /**
25
+ * Class constructor.
26
+ *
27
+ * @param TabInterface $tab_object Class object of field type.
28
+ */
29
+ public function __construct( TabInterface $tab_object ) {
30
+ $this->tab_object = $tab_object;
31
+ }
32
+
33
+ /**
34
+ * Integrate with WordPress and with other plugins using action/filter system.
35
+ *
36
+ * @return void
37
+ */
38
+ public function hooks() {
39
+ add_filter( 'flexible_checkout_fields/field_settings_tabs', [ $this, 'add_settings_tab' ], 0 );
40
+ }
41
+
42
+ /**
43
+ * Adds new tab for field settings.
44
+ *
45
+ * @param array $tabs List of field settings tabs.
46
+ *
47
+ * @return array Updated list of settings tabs.
48
+ *
49
+ * @internal
50
+ */
51
+ public function add_settings_tab( array $tabs ): array {
52
+ $tab_name = $this->tab_object->get_tab_name();
53
+ $tabs[ $tab_name ] = $this->get_tab_settings();
54
+ return $tabs;
55
+ }
56
+
57
+ /**
58
+ * Returns list of settings for tab.
59
+ *
60
+ * @return array Settings of tab.
61
+ */
62
+ private function get_tab_settings(): array {
63
+ return [
64
+ 'name' => $this->tab_object->get_tab_name(),
65
+ 'label' => $this->tab_object->get_tab_label(),
66
+ 'icon' => $this->tab_object->get_tab_icon(),
67
+ ];
68
+ }
69
+ }
src/Settings/Tab/TabInterface.php ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FPF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings\Tab;
9
+
10
+ /**
11
+ * Interface for settings tab of field.
12
+ */
13
+ interface TabInterface {
14
+
15
+ /**
16
+ * Returns name of tab.
17
+ *
18
+ * @return string Tab name.
19
+ */
20
+ public function get_tab_name(): string;
21
+
22
+ /**
23
+ * Returns label of tab.
24
+ *
25
+ * @return string Tab label.
26
+ */
27
+ public function get_tab_label(): string;
28
+
29
+ /**
30
+ * Returns tab icon as CSS Class supported by Icomoon.
31
+ *
32
+ * @return string Tab icon.
33
+ */
34
+ public function get_tab_icon(): string;
35
+ }
src/Settings/Tabs.php ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @package WPDesk\FCF\Free
6
+ */
7
+
8
+ namespace WPDesk\FCF\Free\Settings;
9
+
10
+ use WPDesk\FCF\Free\Settings\Tab\TabIntegration;
11
+ use WPDesk\FCF\Free\Settings\Tab\GeneralTab;
12
+ use WPDesk\FCF\Free\Settings\Tab\AdvancedTab;
13
+ use WPDesk\FCF\Free\Settings\Tab\AppearanceTab;
14
+ use WPDesk\FCF\Free\Settings\Tab\DisplayTab;
15
+ use WPDesk\FCF\Free\Settings\Tab\LogicTab;
16
+ use WPDesk\FCF\Free\Settings\Tab\PricingTab;
17
+
18
+ /**
19
+ * Supports management for settings tabs of field.
20
+ */
21
+ class Tabs {
22
+
23
+ /**
24
+ * Initializes actions for class.
25
+ *
26
+ * @return void
27
+ */
28
+ public function init() {
29
+ ( new TabIntegration( new GeneralTab() ) )->hooks();
30
+ ( new TabIntegration( new AdvancedTab() ) )->hooks();
31
+ ( new TabIntegration( new AppearanceTab() ) )->hooks();
32
+ ( new TabIntegration( new DisplayTab() ) )->hooks();
33
+ ( new TabIntegration( new LogicTab() ) )->hooks();
34
+ ( new TabIntegration( new PricingTab() ) )->hooks();
35
+ }
36
+ }
templates/views/admin-page.php ADDED
@@ -0,0 +1,88 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * .
4
+ *
5
+ * @var array $settings Data for window.reactInit variable.
6
+ * @var array $menu_tabs List of items for primary nav.
7
+ * @var array $menu_sections List of items for second nav.
8
+ *
9
+ * @package Flexible Checkout Fields
10
+ */
11
+
12
+ ?>
13
+
14
+ <div class="wrap">
15
+ <hr class="wp-header-end">
16
+ <div class="fcfSettings">
17
+ <ul class="fcfSettings__columns">
18
+ <li class="fcfSettings__column">
19
+ <div class="fcfSettings__headline">
20
+ <?php echo esc_html__( 'Flexible Checkout Fields', 'flexible-checkout-fields' ); ?>
21
+ </div>
22
+ </li>
23
+ </ul>
24
+ <ul class="fcfSettings__columns">
25
+ <li class="fcfSettings__column">
26
+ <div class="fcfWidget">
27
+ <div class="fcfWidget__inner">
28
+ <div class="fcfTabs">
29
+ <ul class="fcfTabs__items">
30
+ <?php foreach ( $menu_tabs as $menu_tab ) : ?>
31
+ <li class="fcfTabs__item">
32
+ <a href="<?php echo esc_url( $menu_tab['url'] ); ?>"
33
+ class="fcfTabs__itemLink <?php echo ( $menu_tab['is_active'] ) ? 'fcfTabs__itemLink--active' : ''; ?>">
34
+ <?php echo esc_html( $menu_tab['label'] ); ?>
35
+ </a>
36
+ </li>
37
+ <?php endforeach; ?>
38
+ </ul>
39
+ </div>
40
+ </div>
41
+ </div>
42
+ <?php if ( $menu_sections ) : ?>
43
+ <div class="fcfTabs fcfTabs--small fcfTabs--lines">
44
+ <ul class="fcfTabs__items">
45
+ <?php foreach ( $menu_sections as $menu_section ) : ?>
46
+ <li class="fcfTabs__item">
47
+ <a href="<?php echo esc_url( $menu_section['url'] ); ?>"
48
+ class="fcfTabs__itemLink <?php echo ( $menu_section['is_active'] ) ? 'fcfTabs__itemLink--active' : ''; ?>">
49
+ <?php echo esc_html( $menu_section['label'] ); ?>
50
+ </a>
51
+ </li>
52
+ <?php endforeach; ?>
53
+ </ul>
54
+ </div>
55
+ <?php endif; ?>
56
+ </li>
57
+ </ul>
58
+ <div id="fcf-settings"></div>
59
+ <ul class="fcfSettings__columns fcfSettings__columns--margin">
60
+ <li class="fcfSettings__column">
61
+ <div class="fcfSettings__footer">
62
+ <?php
63
+ echo wp_kses_post(
64
+ sprintf(
65
+ /* translators: %$1s: love icon, %$2s: anchor opening tag, %$3s: anchor closing tag, %$4s: anchor opening tag, %$5s: anchor closing tag */
66
+ __( 'Created with %1$s by Rangers from %2$sWP Desk%3$s - if you like FCF %4$srate us%5$s', 'flexible-checkout-fields' ),
67
+ '<span class="fcfSettings__footerIcon fcfSettings__footerIcon--heart"></span>',
68
+ '<a href="' . esc_url( apply_filters( 'flexible_checkout_fields/short_url', '#', 'fcf-settings-footer-wpdesk-link' ) ) . '" target="_blank">',
69
+ '</a>',
70
+ '<a href="' . esc_url( apply_filters( 'flexible_checkout_fields/short_url', '#', 'fcf-settings-footer-review-link' ) ) . '" target="_blank">',
71
+ '<span class="fcfSettings__footerIcon fcfSettings__footerIcon--star"></span>
72
+ <span class="fcfSettings__footerIcon fcfSettings__footerIcon--star"></span>
73
+ <span class="fcfSettings__footerIcon fcfSettings__footerIcon--star"></span>
74
+ <span class="fcfSettings__footerIcon fcfSettings__footerIcon--star"></span>
75
+ <span class="fcfSettings__footerIcon fcfSettings__footerIcon--star"></span>
76
+ </a>'
77
+ )
78
+ );
79
+ ?>
80
+ </div>
81
+ </li>
82
+ </ul>
83
+ </div>
84
+ </div>
85
+
86
+ <script>
87
+ window.reactInit = <?php echo json_encode( $settings ); ?>;
88
+ </script>
vendor/autoload.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
- return ComposerAutoloaderInitc47e3c4658fa0bb38014fd053b764aad::getLoader();
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInit165e44688066e6f2cb362bbca1465b58::getLoader();
vendor/composer/autoload_classmap.php CHANGED
@@ -111,6 +111,7 @@ return array(
111
  'FcfVendor\\WPDesk\\Composer\\Codeception\\Commands\\BaseCommand' => $baseDir . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/BaseCommand.php',
112
  'FcfVendor\\WPDesk\\Composer\\Codeception\\Commands\\CreateCodeceptionTests' => $baseDir . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/CreateCodeceptionTests.php',
113
  'FcfVendor\\WPDesk\\Composer\\Codeception\\Commands\\RunCodeceptionTests' => $baseDir . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/RunCodeceptionTests.php',
 
114
  'FcfVendor\\WPDesk\\Composer\\Codeception\\Commands\\SedTrait' => $baseDir . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/SedTrait.php',
115
  'FcfVendor\\WPDesk\\Composer\\Codeception\\Plugin' => $baseDir . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Plugin.php',
116
  'FcfVendor\\WPDesk\\Helper\\Debug\\LibraryDebug' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-helper/src/Debug/LibraryDebug.php',
@@ -269,6 +270,31 @@ return array(
269
  'Psr\\Log\\Test\\LoggerInterfaceTest' => $vendorDir . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',
270
  'Psr\\Log\\Test\\TestLogger' => $vendorDir . '/psr/log/Psr/Log/Test/TestLogger.php',
271
  'WPDesk\\FCF\\Free\\Admin\\NoticeReview' => $baseDir . '/src/Admin/NoticeReview.php',
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
272
  'WPDesk\\FCF\\Free\\Helpers\\Shortener' => $baseDir . '/src/Helpers/Shortener.php',
273
  'WPDesk\\FCF\\Free\\Integration\\Field' => $baseDir . '/src/Integration/Field.php',
274
  'WPDesk\\FCF\\Free\\Integration\\FieldInterface' => $baseDir . '/src/Integration/FieldInterface.php',
@@ -284,6 +310,64 @@ return array(
284
  'WPDesk\\FCF\\Free\\Integration\\Value' => $baseDir . '/src/Integration/Value.php',
285
  'WPDesk\\FCF\\Free\\Integration\\ValueInterface' => $baseDir . '/src/Integration/ValueInterface.php',
286
  'WPDesk\\FCF\\Free\\Plugin' => $baseDir . '/src/Plugin.php',
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
287
  'WPDesk\\Helper\\HelperAsLibrary' => $vendorDir . '/wpdesk/wp-wpdesk-helper-override/src/Helper/HelperAsLibrary.php',
288
  'WPDesk_Flexible_Checkout_Fields_Tracker' => $baseDir . '/classes/tracker.php',
289
  'WPDesk_Tracker_Data_Provider' => $vendorDir . '/wpdesk/wp-wpdesk-helper-override/src/Interop/Tracker/class-wpdesk-tracker-data-provider.php',
111
  'FcfVendor\\WPDesk\\Composer\\Codeception\\Commands\\BaseCommand' => $baseDir . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/BaseCommand.php',
112
  'FcfVendor\\WPDesk\\Composer\\Codeception\\Commands\\CreateCodeceptionTests' => $baseDir . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/CreateCodeceptionTests.php',
113
  'FcfVendor\\WPDesk\\Composer\\Codeception\\Commands\\RunCodeceptionTests' => $baseDir . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/RunCodeceptionTests.php',
114
+ 'FcfVendor\\WPDesk\\Composer\\Codeception\\Commands\\RunLocalCodeceptionTests' => $baseDir . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/RunLocalCodeceptionTests.php',
115
  'FcfVendor\\WPDesk\\Composer\\Codeception\\Commands\\SedTrait' => $baseDir . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/SedTrait.php',
116
  'FcfVendor\\WPDesk\\Composer\\Codeception\\Plugin' => $baseDir . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Plugin.php',
117
  'FcfVendor\\WPDesk\\Helper\\Debug\\LibraryDebug' => $baseDir . '/vendor_prefixed/wpdesk/wp-wpdesk-helper/src/Debug/LibraryDebug.php',
270
  'Psr\\Log\\Test\\LoggerInterfaceTest' => $vendorDir . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',
271
  'Psr\\Log\\Test\\TestLogger' => $vendorDir . '/psr/log/Psr/Log/Test/TestLogger.php',
272
  'WPDesk\\FCF\\Free\\Admin\\NoticeReview' => $baseDir . '/src/Admin/NoticeReview.php',
273
+ 'WPDesk\\FCF\\Free\\Admin\\Page' => $baseDir . '/src/Admin/Page.php',
274
+ 'WPDesk\\FCF\\Free\\Field\\FieldData' => $baseDir . '/src/Field/FieldData.php',
275
+ 'WPDesk\\FCF\\Free\\Field\\Type\\CheckboxType' => $baseDir . '/src/Field/Type/CheckboxType.php',
276
+ 'WPDesk\\FCF\\Free\\Field\\Type\\ColorType' => $baseDir . '/src/Field/Type/ColorType.php',
277
+ 'WPDesk\\FCF\\Free\\Field\\Type\\DateType' => $baseDir . '/src/Field/Type/DateType.php',
278
+ 'WPDesk\\FCF\\Free\\Field\\Type\\DefaultType' => $baseDir . '/src/Field/Type/DefaultType.php',
279
+ 'WPDesk\\FCF\\Free\\Field\\Type\\FileType' => $baseDir . '/src/Field/Type/FileType.php',
280
+ 'WPDesk\\FCF\\Free\\Field\\Type\\HeadingType' => $baseDir . '/src/Field/Type/HeadingType.php',
281
+ 'WPDesk\\FCF\\Free\\Field\\Type\\HtmlType' => $baseDir . '/src/Field/Type/HtmlType.php',
282
+ 'WPDesk\\FCF\\Free\\Field\\Type\\Multiselect' => $baseDir . '/src/Field/Type/Multiselect.php',
283
+ 'WPDesk\\FCF\\Free\\Field\\Type\\RadioType' => $baseDir . '/src/Field/Type/RadioType.php',
284
+ 'WPDesk\\FCF\\Free\\Field\\Type\\SelectType' => $baseDir . '/src/Field/Type/SelectType.php',
285
+ 'WPDesk\\FCF\\Free\\Field\\Type\\TextType' => $baseDir . '/src/Field/Type/TextType.php',
286
+ 'WPDesk\\FCF\\Free\\Field\\Type\\TextareaType' => $baseDir . '/src/Field/Type/TextareaType.php',
287
+ 'WPDesk\\FCF\\Free\\Field\\Type\\TimeType' => $baseDir . '/src/Field/Type/TimeType.php',
288
+ 'WPDesk\\FCF\\Free\\Field\\Type\\TypeAbstract' => $baseDir . '/src/Field/Type/TypeAbstract.php',
289
+ 'WPDesk\\FCF\\Free\\Field\\Type\\TypeIntegration' => $baseDir . '/src/Field/Type/TypeIntegration.php',
290
+ 'WPDesk\\FCF\\Free\\Field\\Type\\TypeInterface' => $baseDir . '/src/Field/Type/TypeInterface.php',
291
+ 'WPDesk\\FCF\\Free\\Field\\Type\\Wc\\WcAddress2Type' => $baseDir . '/src/Field/Type/Wc/WcAddress2Type.php',
292
+ 'WPDesk\\FCF\\Free\\Field\\Type\\Wc\\WcCountryType' => $baseDir . '/src/Field/Type/Wc/WcCountryType.php',
293
+ 'WPDesk\\FCF\\Free\\Field\\Type\\Wc\\WcDefaultType' => $baseDir . '/src/Field/Type/Wc/WcDefaultType.php',
294
+ 'WPDesk\\FCF\\Free\\Field\\Type\\Wc\\WcNotesType' => $baseDir . '/src/Field/Type/Wc/WcNotesType.php',
295
+ 'WPDesk\\FCF\\Free\\Field\\Type\\Wc\\WcPostcodeType' => $baseDir . '/src/Field/Type/Wc/WcPostcodeType.php',
296
+ 'WPDesk\\FCF\\Free\\Field\\Type\\Wc\\WcStateType' => $baseDir . '/src/Field/Type/Wc/WcStateType.php',
297
+ 'WPDesk\\FCF\\Free\\Field\\Types' => $baseDir . '/src/Field/Types.php',
298
  'WPDesk\\FCF\\Free\\Helpers\\Shortener' => $baseDir . '/src/Helpers/Shortener.php',
299
  'WPDesk\\FCF\\Free\\Integration\\Field' => $baseDir . '/src/Integration/Field.php',
300
  'WPDesk\\FCF\\Free\\Integration\\FieldInterface' => $baseDir . '/src/Integration/FieldInterface.php',
310
  'WPDesk\\FCF\\Free\\Integration\\Value' => $baseDir . '/src/Integration/Value.php',
311
  'WPDesk\\FCF\\Free\\Integration\\ValueInterface' => $baseDir . '/src/Integration/ValueInterface.php',
312
  'WPDesk\\FCF\\Free\\Plugin' => $baseDir . '/src/Plugin.php',
313
+ 'WPDesk\\FCF\\Free\\Settings\\Form\\EditFieldsForm' => $baseDir . '/src/Settings/Form/EditFieldsForm.php',
314
+ 'WPDesk\\FCF\\Free\\Settings\\Form\\FormAbstract' => $baseDir . '/src/Settings/Form/FormAbstract.php',
315
+ 'WPDesk\\FCF\\Free\\Settings\\Form\\FormIntegration' => $baseDir . '/src/Settings/Form/FormIntegration.php',
316
+ 'WPDesk\\FCF\\Free\\Settings\\Form\\FormInterface' => $baseDir . '/src/Settings/Form/FormInterface.php',
317
+ 'WPDesk\\FCF\\Free\\Settings\\Form\\SettingsPageForm' => $baseDir . '/src/Settings/Form/SettingsPageForm.php',
318
+ 'WPDesk\\FCF\\Free\\Settings\\Forms' => $baseDir . '/src/Settings/Forms.php',
319
+ 'WPDesk\\FCF\\Free\\Settings\\Menu' => $baseDir . '/src/Settings/Menu.php',
320
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\CssOption' => $baseDir . '/src/Settings/Option/CssOption.php',
321
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\CustomFieldOption' => $baseDir . '/src/Settings/Option/CustomFieldOption.php',
322
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\DisplayOnAccountAddressOption' => $baseDir . '/src/Settings/Option/DisplayOnAccountAddressOption.php',
323
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\DisplayOnAccountOrderOption' => $baseDir . '/src/Settings/Option/DisplayOnAccountOrderOption.php',
324
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\DisplayOnEmailsOption' => $baseDir . '/src/Settings/Option/DisplayOnEmailsOption.php',
325
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\DisplayOnOption' => $baseDir . '/src/Settings/Option/DisplayOnOption.php',
326
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\DisplayOnThankYouOption' => $baseDir . '/src/Settings/Option/DisplayOnThankYouOption.php',
327
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\DisplayOnWithoutAddressOption' => $baseDir . '/src/Settings/Option/DisplayOnWithoutAddressOption.php',
328
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\EnabledOption' => $baseDir . '/src/Settings/Option/EnabledOption.php',
329
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\FieldTypeOption' => $baseDir . '/src/Settings/Option/FieldTypeOption.php',
330
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\FormattingFieldLabelOption' => $baseDir . '/src/Settings/Option/FormattingFieldLabelOption.php',
331
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\FormattingNewLineOption' => $baseDir . '/src/Settings/Option/FormattingNewLineOption.php',
332
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\FormattingOption' => $baseDir . '/src/Settings/Option/FormattingOption.php',
333
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\FormattingStateAbbrOption' => $baseDir . '/src/Settings/Option/FormattingStateAbbrOption.php',
334
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\FormattingStateCommaOption' => $baseDir . '/src/Settings/Option/FormattingStateCommaOption.php',
335
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\FormattingStateOption' => $baseDir . '/src/Settings/Option/FormattingStateOption.php',
336
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\FormattingWcOption' => $baseDir . '/src/Settings/Option/FormattingWcOption.php',
337
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\LabelOption' => $baseDir . '/src/Settings/Option/LabelOption.php',
338
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\LabelOptionallyOption' => $baseDir . '/src/Settings/Option/LabelOptionallyOption.php',
339
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\LogicAdvOption' => $baseDir . '/src/Settings/Option/LogicAdvOption.php',
340
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\NameOption' => $baseDir . '/src/Settings/Option/NameOption.php',
341
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\OptionAbstract' => $baseDir . '/src/Settings/Option/OptionAbstract.php',
342
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\OptionIntegration' => $baseDir . '/src/Settings/Option/OptionIntegration.php',
343
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\OptionInterface' => $baseDir . '/src/Settings/Option/OptionInterface.php',
344
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\PlaceholderOption' => $baseDir . '/src/Settings/Option/PlaceholderOption.php',
345
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\PricingAdvOption' => $baseDir . '/src/Settings/Option/PricingAdvOption.php',
346
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\PriorityOption' => $baseDir . '/src/Settings/Option/PriorityOption.php',
347
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\RequiredHiddenOption' => $baseDir . '/src/Settings/Option/RequiredHiddenOption.php',
348
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\RequiredOption' => $baseDir . '/src/Settings/Option/RequiredOption.php',
349
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\SettingJqueryCssOption' => $baseDir . '/src/Settings/Option/SettingJqueryCssOption.php',
350
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\SettingJqueryOption' => $baseDir . '/src/Settings/Option/SettingJqueryOption.php',
351
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\SettingSectionsAdvOption' => $baseDir . '/src/Settings/Option/SettingSectionsAdvOption.php',
352
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\ValidationInfoOption' => $baseDir . '/src/Settings/Option/ValidationInfoOption.php',
353
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\ValidationOption' => $baseDir . '/src/Settings/Option/ValidationOption.php',
354
+ 'WPDesk\\FCF\\Free\\Settings\\Page' => $baseDir . '/src/Settings/Page.php',
355
+ 'WPDesk\\FCF\\Free\\Settings\\Route\\RouteAbstract' => $baseDir . '/src/Settings/Route/RouteAbstract.php',
356
+ 'WPDesk\\FCF\\Free\\Settings\\Route\\RouteIntegration' => $baseDir . '/src/Settings/Route/RouteIntegration.php',
357
+ 'WPDesk\\FCF\\Free\\Settings\\Route\\RouteInterface' => $baseDir . '/src/Settings/Route/RouteInterface.php',
358
+ 'WPDesk\\FCF\\Free\\Settings\\Route\\UpdateFormFieldsRoute' => $baseDir . '/src/Settings/Route/UpdateFormFieldsRoute.php',
359
+ 'WPDesk\\FCF\\Free\\Settings\\Route\\UpdateFormSettingsRoute' => $baseDir . '/src/Settings/Route/UpdateFormSettingsRoute.php',
360
+ 'WPDesk\\FCF\\Free\\Settings\\Routes' => $baseDir . '/src/Settings/Routes.php',
361
+ 'WPDesk\\FCF\\Free\\Settings\\Tab\\AdvancedTab' => $baseDir . '/src/Settings/Tab/AdvancedTab.php',
362
+ 'WPDesk\\FCF\\Free\\Settings\\Tab\\AppearanceTab' => $baseDir . '/src/Settings/Tab/AppearanceTab.php',
363
+ 'WPDesk\\FCF\\Free\\Settings\\Tab\\DisplayTab' => $baseDir . '/src/Settings/Tab/DisplayTab.php',
364
+ 'WPDesk\\FCF\\Free\\Settings\\Tab\\GeneralTab' => $baseDir . '/src/Settings/Tab/GeneralTab.php',
365
+ 'WPDesk\\FCF\\Free\\Settings\\Tab\\LogicTab' => $baseDir . '/src/Settings/Tab/LogicTab.php',
366
+ 'WPDesk\\FCF\\Free\\Settings\\Tab\\PricingTab' => $baseDir . '/src/Settings/Tab/PricingTab.php',
367
+ 'WPDesk\\FCF\\Free\\Settings\\Tab\\TabAbstract' => $baseDir . '/src/Settings/Tab/TabAbstract.php',
368
+ 'WPDesk\\FCF\\Free\\Settings\\Tab\\TabIntegration' => $baseDir . '/src/Settings/Tab/TabIntegration.php',
369
+ 'WPDesk\\FCF\\Free\\Settings\\Tab\\TabInterface' => $baseDir . '/src/Settings/Tab/TabInterface.php',
370
+ 'WPDesk\\FCF\\Free\\Settings\\Tabs' => $baseDir . '/src/Settings/Tabs.php',
371
  'WPDesk\\Helper\\HelperAsLibrary' => $vendorDir . '/wpdesk/wp-wpdesk-helper-override/src/Helper/HelperAsLibrary.php',
372
  'WPDesk_Flexible_Checkout_Fields_Tracker' => $baseDir . '/classes/tracker.php',
373
  'WPDesk_Tracker_Data_Provider' => $vendorDir . '/wpdesk/wp-wpdesk-helper-override/src/Interop/Tracker/class-wpdesk-tracker-data-provider.php',
vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInitc47e3c4658fa0bb38014fd053b764aad
6
  {
7
  private static $loader;
8
 
@@ -19,15 +19,15 @@ class ComposerAutoloaderInitc47e3c4658fa0bb38014fd053b764aad
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInitc47e3c4658fa0bb38014fd053b764aad', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInitc47e3c4658fa0bb38014fd053b764aad', 'loadClassLoader'));
25
 
26
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
27
  if ($useStaticLoader) {
28
  require_once __DIR__ . '/autoload_static.php';
29
 
30
- call_user_func(\Composer\Autoload\ComposerStaticInitc47e3c4658fa0bb38014fd053b764aad::getInitializer($loader));
31
  } else {
32
  $map = require __DIR__ . '/autoload_namespaces.php';
33
  foreach ($map as $namespace => $path) {
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
+ class ComposerAutoloaderInit165e44688066e6f2cb362bbca1465b58
6
  {
7
  private static $loader;
8
 
19
  return self::$loader;
20
  }
21
 
22
+ spl_autoload_register(array('ComposerAutoloaderInit165e44688066e6f2cb362bbca1465b58', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInit165e44688066e6f2cb362bbca1465b58', 'loadClassLoader'));
25
 
26
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
27
  if ($useStaticLoader) {
28
  require_once __DIR__ . '/autoload_static.php';
29
 
30
+ call_user_func(\Composer\Autoload\ComposerStaticInit165e44688066e6f2cb362bbca1465b58::getInitializer($loader));
31
  } else {
32
  $map = require __DIR__ . '/autoload_namespaces.php';
33
  foreach ($map as $namespace => $path) {
vendor/composer/autoload_static.php CHANGED
@@ -4,7 +4,7 @@
4
 
5
  namespace Composer\Autoload;
6
 
7
- class ComposerStaticInitc47e3c4658fa0bb38014fd053b764aad
8
  {
9
  public static $prefixLengthsPsr4 = array (
10
  'W' =>
@@ -134,6 +134,7 @@ class ComposerStaticInitc47e3c4658fa0bb38014fd053b764aad
134
  'FcfVendor\\WPDesk\\Composer\\Codeception\\Commands\\BaseCommand' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/BaseCommand.php',
135
  'FcfVendor\\WPDesk\\Composer\\Codeception\\Commands\\CreateCodeceptionTests' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/CreateCodeceptionTests.php',
136
  'FcfVendor\\WPDesk\\Composer\\Codeception\\Commands\\RunCodeceptionTests' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/RunCodeceptionTests.php',
 
137
  'FcfVendor\\WPDesk\\Composer\\Codeception\\Commands\\SedTrait' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/SedTrait.php',
138
  'FcfVendor\\WPDesk\\Composer\\Codeception\\Plugin' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Plugin.php',
139
  'FcfVendor\\WPDesk\\Helper\\Debug\\LibraryDebug' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-helper/src/Debug/LibraryDebug.php',
@@ -292,6 +293,31 @@ class ComposerStaticInitc47e3c4658fa0bb38014fd053b764aad
292
  'Psr\\Log\\Test\\LoggerInterfaceTest' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',
293
  'Psr\\Log\\Test\\TestLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/TestLogger.php',
294
  'WPDesk\\FCF\\Free\\Admin\\NoticeReview' => __DIR__ . '/../..' . '/src/Admin/NoticeReview.php',
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
295
  'WPDesk\\FCF\\Free\\Helpers\\Shortener' => __DIR__ . '/../..' . '/src/Helpers/Shortener.php',
296
  'WPDesk\\FCF\\Free\\Integration\\Field' => __DIR__ . '/../..' . '/src/Integration/Field.php',
297
  'WPDesk\\FCF\\Free\\Integration\\FieldInterface' => __DIR__ . '/../..' . '/src/Integration/FieldInterface.php',
@@ -307,6 +333,64 @@ class ComposerStaticInitc47e3c4658fa0bb38014fd053b764aad
307
  'WPDesk\\FCF\\Free\\Integration\\Value' => __DIR__ . '/../..' . '/src/Integration/Value.php',
308
  'WPDesk\\FCF\\Free\\Integration\\ValueInterface' => __DIR__ . '/../..' . '/src/Integration/ValueInterface.php',
309
  'WPDesk\\FCF\\Free\\Plugin' => __DIR__ . '/../..' . '/src/Plugin.php',
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
310
  'WPDesk\\Helper\\HelperAsLibrary' => __DIR__ . '/..' . '/wpdesk/wp-wpdesk-helper-override/src/Helper/HelperAsLibrary.php',
311
  'WPDesk_Flexible_Checkout_Fields_Tracker' => __DIR__ . '/../..' . '/classes/tracker.php',
312
  'WPDesk_Tracker_Data_Provider' => __DIR__ . '/..' . '/wpdesk/wp-wpdesk-helper-override/src/Interop/Tracker/class-wpdesk-tracker-data-provider.php',
@@ -318,9 +402,9 @@ class ComposerStaticInitc47e3c4658fa0bb38014fd053b764aad
318
  public static function getInitializer(ClassLoader $loader)
319
  {
320
  return \Closure::bind(function () use ($loader) {
321
- $loader->prefixLengthsPsr4 = ComposerStaticInitc47e3c4658fa0bb38014fd053b764aad::$prefixLengthsPsr4;
322
- $loader->prefixDirsPsr4 = ComposerStaticInitc47e3c4658fa0bb38014fd053b764aad::$prefixDirsPsr4;
323
- $loader->classMap = ComposerStaticInitc47e3c4658fa0bb38014fd053b764aad::$classMap;
324
 
325
  }, null, ClassLoader::class);
326
  }
4
 
5
  namespace Composer\Autoload;
6
 
7
+ class ComposerStaticInit165e44688066e6f2cb362bbca1465b58
8
  {
9
  public static $prefixLengthsPsr4 = array (
10
  'W' =>
134
  'FcfVendor\\WPDesk\\Composer\\Codeception\\Commands\\BaseCommand' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/BaseCommand.php',
135
  'FcfVendor\\WPDesk\\Composer\\Codeception\\Commands\\CreateCodeceptionTests' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/CreateCodeceptionTests.php',
136
  'FcfVendor\\WPDesk\\Composer\\Codeception\\Commands\\RunCodeceptionTests' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/RunCodeceptionTests.php',
137
+ 'FcfVendor\\WPDesk\\Composer\\Codeception\\Commands\\RunLocalCodeceptionTests' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/RunLocalCodeceptionTests.php',
138
  'FcfVendor\\WPDesk\\Composer\\Codeception\\Commands\\SedTrait' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/SedTrait.php',
139
  'FcfVendor\\WPDesk\\Composer\\Codeception\\Plugin' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Plugin.php',
140
  'FcfVendor\\WPDesk\\Helper\\Debug\\LibraryDebug' => __DIR__ . '/../..' . '/vendor_prefixed/wpdesk/wp-wpdesk-helper/src/Debug/LibraryDebug.php',
293
  'Psr\\Log\\Test\\LoggerInterfaceTest' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',
294
  'Psr\\Log\\Test\\TestLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/TestLogger.php',
295
  'WPDesk\\FCF\\Free\\Admin\\NoticeReview' => __DIR__ . '/../..' . '/src/Admin/NoticeReview.php',
296
+ 'WPDesk\\FCF\\Free\\Admin\\Page' => __DIR__ . '/../..' . '/src/Admin/Page.php',
297
+ 'WPDesk\\FCF\\Free\\Field\\FieldData' => __DIR__ . '/../..' . '/src/Field/FieldData.php',
298
+ 'WPDesk\\FCF\\Free\\Field\\Type\\CheckboxType' => __DIR__ . '/../..' . '/src/Field/Type/CheckboxType.php',
299
+ 'WPDesk\\FCF\\Free\\Field\\Type\\ColorType' => __DIR__ . '/../..' . '/src/Field/Type/ColorType.php',
300
+ 'WPDesk\\FCF\\Free\\Field\\Type\\DateType' => __DIR__ . '/../..' . '/src/Field/Type/DateType.php',
301
+ 'WPDesk\\FCF\\Free\\Field\\Type\\DefaultType' => __DIR__ . '/../..' . '/src/Field/Type/DefaultType.php',
302
+ 'WPDesk\\FCF\\Free\\Field\\Type\\FileType' => __DIR__ . '/../..' . '/src/Field/Type/FileType.php',
303
+ 'WPDesk\\FCF\\Free\\Field\\Type\\HeadingType' => __DIR__ . '/../..' . '/src/Field/Type/HeadingType.php',
304
+ 'WPDesk\\FCF\\Free\\Field\\Type\\HtmlType' => __DIR__ . '/../..' . '/src/Field/Type/HtmlType.php',
305
+ 'WPDesk\\FCF\\Free\\Field\\Type\\Multiselect' => __DIR__ . '/../..' . '/src/Field/Type/Multiselect.php',
306
+ 'WPDesk\\FCF\\Free\\Field\\Type\\RadioType' => __DIR__ . '/../..' . '/src/Field/Type/RadioType.php',
307
+ 'WPDesk\\FCF\\Free\\Field\\Type\\SelectType' => __DIR__ . '/../..' . '/src/Field/Type/SelectType.php',
308
+ 'WPDesk\\FCF\\Free\\Field\\Type\\TextType' => __DIR__ . '/../..' . '/src/Field/Type/TextType.php',
309
+ 'WPDesk\\FCF\\Free\\Field\\Type\\TextareaType' => __DIR__ . '/../..' . '/src/Field/Type/TextareaType.php',
310
+ 'WPDesk\\FCF\\Free\\Field\\Type\\TimeType' => __DIR__ . '/../..' . '/src/Field/Type/TimeType.php',
311
+ 'WPDesk\\FCF\\Free\\Field\\Type\\TypeAbstract' => __DIR__ . '/../..' . '/src/Field/Type/TypeAbstract.php',
312
+ 'WPDesk\\FCF\\Free\\Field\\Type\\TypeIntegration' => __DIR__ . '/../..' . '/src/Field/Type/TypeIntegration.php',
313
+ 'WPDesk\\FCF\\Free\\Field\\Type\\TypeInterface' => __DIR__ . '/../..' . '/src/Field/Type/TypeInterface.php',
314
+ 'WPDesk\\FCF\\Free\\Field\\Type\\Wc\\WcAddress2Type' => __DIR__ . '/../..' . '/src/Field/Type/Wc/WcAddress2Type.php',
315
+ 'WPDesk\\FCF\\Free\\Field\\Type\\Wc\\WcCountryType' => __DIR__ . '/../..' . '/src/Field/Type/Wc/WcCountryType.php',
316
+ 'WPDesk\\FCF\\Free\\Field\\Type\\Wc\\WcDefaultType' => __DIR__ . '/../..' . '/src/Field/Type/Wc/WcDefaultType.php',
317
+ 'WPDesk\\FCF\\Free\\Field\\Type\\Wc\\WcNotesType' => __DIR__ . '/../..' . '/src/Field/Type/Wc/WcNotesType.php',
318
+ 'WPDesk\\FCF\\Free\\Field\\Type\\Wc\\WcPostcodeType' => __DIR__ . '/../..' . '/src/Field/Type/Wc/WcPostcodeType.php',
319
+ 'WPDesk\\FCF\\Free\\Field\\Type\\Wc\\WcStateType' => __DIR__ . '/../..' . '/src/Field/Type/Wc/WcStateType.php',
320
+ 'WPDesk\\FCF\\Free\\Field\\Types' => __DIR__ . '/../..' . '/src/Field/Types.php',
321
  'WPDesk\\FCF\\Free\\Helpers\\Shortener' => __DIR__ . '/../..' . '/src/Helpers/Shortener.php',
322
  'WPDesk\\FCF\\Free\\Integration\\Field' => __DIR__ . '/../..' . '/src/Integration/Field.php',
323
  'WPDesk\\FCF\\Free\\Integration\\FieldInterface' => __DIR__ . '/../..' . '/src/Integration/FieldInterface.php',
333
  'WPDesk\\FCF\\Free\\Integration\\Value' => __DIR__ . '/../..' . '/src/Integration/Value.php',
334
  'WPDesk\\FCF\\Free\\Integration\\ValueInterface' => __DIR__ . '/../..' . '/src/Integration/ValueInterface.php',
335
  'WPDesk\\FCF\\Free\\Plugin' => __DIR__ . '/../..' . '/src/Plugin.php',
336
+ 'WPDesk\\FCF\\Free\\Settings\\Form\\EditFieldsForm' => __DIR__ . '/../..' . '/src/Settings/Form/EditFieldsForm.php',
337
+ 'WPDesk\\FCF\\Free\\Settings\\Form\\FormAbstract' => __DIR__ . '/../..' . '/src/Settings/Form/FormAbstract.php',
338
+ 'WPDesk\\FCF\\Free\\Settings\\Form\\FormIntegration' => __DIR__ . '/../..' . '/src/Settings/Form/FormIntegration.php',
339
+ 'WPDesk\\FCF\\Free\\Settings\\Form\\FormInterface' => __DIR__ . '/../..' . '/src/Settings/Form/FormInterface.php',
340
+ 'WPDesk\\FCF\\Free\\Settings\\Form\\SettingsPageForm' => __DIR__ . '/../..' . '/src/Settings/Form/SettingsPageForm.php',
341
+ 'WPDesk\\FCF\\Free\\Settings\\Forms' => __DIR__ . '/../..' . '/src/Settings/Forms.php',
342
+ 'WPDesk\\FCF\\Free\\Settings\\Menu' => __DIR__ . '/../..' . '/src/Settings/Menu.php',
343
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\CssOption' => __DIR__ . '/../..' . '/src/Settings/Option/CssOption.php',
344
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\CustomFieldOption' => __DIR__ . '/../..' . '/src/Settings/Option/CustomFieldOption.php',
345
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\DisplayOnAccountAddressOption' => __DIR__ . '/../..' . '/src/Settings/Option/DisplayOnAccountAddressOption.php',
346
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\DisplayOnAccountOrderOption' => __DIR__ . '/../..' . '/src/Settings/Option/DisplayOnAccountOrderOption.php',
347
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\DisplayOnEmailsOption' => __DIR__ . '/../..' . '/src/Settings/Option/DisplayOnEmailsOption.php',
348
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\DisplayOnOption' => __DIR__ . '/../..' . '/src/Settings/Option/DisplayOnOption.php',
349
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\DisplayOnThankYouOption' => __DIR__ . '/../..' . '/src/Settings/Option/DisplayOnThankYouOption.php',
350
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\DisplayOnWithoutAddressOption' => __DIR__ . '/../..' . '/src/Settings/Option/DisplayOnWithoutAddressOption.php',
351
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\EnabledOption' => __DIR__ . '/../..' . '/src/Settings/Option/EnabledOption.php',
352
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\FieldTypeOption' => __DIR__ . '/../..' . '/src/Settings/Option/FieldTypeOption.php',
353
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\FormattingFieldLabelOption' => __DIR__ . '/../..' . '/src/Settings/Option/FormattingFieldLabelOption.php',
354
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\FormattingNewLineOption' => __DIR__ . '/../..' . '/src/Settings/Option/FormattingNewLineOption.php',
355
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\FormattingOption' => __DIR__ . '/../..' . '/src/Settings/Option/FormattingOption.php',
356
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\FormattingStateAbbrOption' => __DIR__ . '/../..' . '/src/Settings/Option/FormattingStateAbbrOption.php',
357
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\FormattingStateCommaOption' => __DIR__ . '/../..' . '/src/Settings/Option/FormattingStateCommaOption.php',
358
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\FormattingStateOption' => __DIR__ . '/../..' . '/src/Settings/Option/FormattingStateOption.php',
359
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\FormattingWcOption' => __DIR__ . '/../..' . '/src/Settings/Option/FormattingWcOption.php',
360
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\LabelOption' => __DIR__ . '/../..' . '/src/Settings/Option/LabelOption.php',
361
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\LabelOptionallyOption' => __DIR__ . '/../..' . '/src/Settings/Option/LabelOptionallyOption.php',
362
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\LogicAdvOption' => __DIR__ . '/../..' . '/src/Settings/Option/LogicAdvOption.php',
363
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\NameOption' => __DIR__ . '/../..' . '/src/Settings/Option/NameOption.php',
364
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\OptionAbstract' => __DIR__ . '/../..' . '/src/Settings/Option/OptionAbstract.php',
365
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\OptionIntegration' => __DIR__ . '/../..' . '/src/Settings/Option/OptionIntegration.php',
366
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\OptionInterface' => __DIR__ . '/../..' . '/src/Settings/Option/OptionInterface.php',
367
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\PlaceholderOption' => __DIR__ . '/../..' . '/src/Settings/Option/PlaceholderOption.php',
368
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\PricingAdvOption' => __DIR__ . '/../..' . '/src/Settings/Option/PricingAdvOption.php',
369
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\PriorityOption' => __DIR__ . '/../..' . '/src/Settings/Option/PriorityOption.php',
370
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\RequiredHiddenOption' => __DIR__ . '/../..' . '/src/Settings/Option/RequiredHiddenOption.php',
371
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\RequiredOption' => __DIR__ . '/../..' . '/src/Settings/Option/RequiredOption.php',
372
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\SettingJqueryCssOption' => __DIR__ . '/../..' . '/src/Settings/Option/SettingJqueryCssOption.php',
373
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\SettingJqueryOption' => __DIR__ . '/../..' . '/src/Settings/Option/SettingJqueryOption.php',
374
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\SettingSectionsAdvOption' => __DIR__ . '/../..' . '/src/Settings/Option/SettingSectionsAdvOption.php',
375
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\ValidationInfoOption' => __DIR__ . '/../..' . '/src/Settings/Option/ValidationInfoOption.php',
376
+ 'WPDesk\\FCF\\Free\\Settings\\Option\\ValidationOption' => __DIR__ . '/../..' . '/src/Settings/Option/ValidationOption.php',
377
+ 'WPDesk\\FCF\\Free\\Settings\\Page' => __DIR__ . '/../..' . '/src/Settings/Page.php',
378
+ 'WPDesk\\FCF\\Free\\Settings\\Route\\RouteAbstract' => __DIR__ . '/../..' . '/src/Settings/Route/RouteAbstract.php',
379
+ 'WPDesk\\FCF\\Free\\Settings\\Route\\RouteIntegration' => __DIR__ . '/../..' . '/src/Settings/Route/RouteIntegration.php',
380
+ 'WPDesk\\FCF\\Free\\Settings\\Route\\RouteInterface' => __DIR__ . '/../..' . '/src/Settings/Route/RouteInterface.php',
381
+ 'WPDesk\\FCF\\Free\\Settings\\Route\\UpdateFormFieldsRoute' => __DIR__ . '/../..' . '/src/Settings/Route/UpdateFormFieldsRoute.php',
382
+ 'WPDesk\\FCF\\Free\\Settings\\Route\\UpdateFormSettingsRoute' => __DIR__ . '/../..' . '/src/Settings/Route/UpdateFormSettingsRoute.php',
383
+ 'WPDesk\\FCF\\Free\\Settings\\Routes' => __DIR__ . '/../..' . '/src/Settings/Routes.php',
384
+ 'WPDesk\\FCF\\Free\\Settings\\Tab\\AdvancedTab' => __DIR__ . '/../..' . '/src/Settings/Tab/AdvancedTab.php',
385
+ 'WPDesk\\FCF\\Free\\Settings\\Tab\\AppearanceTab' => __DIR__ . '/../..' . '/src/Settings/Tab/AppearanceTab.php',
386
+ 'WPDesk\\FCF\\Free\\Settings\\Tab\\DisplayTab' => __DIR__ . '/../..' . '/src/Settings/Tab/DisplayTab.php',
387
+ 'WPDesk\\FCF\\Free\\Settings\\Tab\\GeneralTab' => __DIR__ . '/../..' . '/src/Settings/Tab/GeneralTab.php',
388
+ 'WPDesk\\FCF\\Free\\Settings\\Tab\\LogicTab' => __DIR__ . '/../..' . '/src/Settings/Tab/LogicTab.php',
389
+ 'WPDesk\\FCF\\Free\\Settings\\Tab\\PricingTab' => __DIR__ . '/../..' . '/src/Settings/Tab/PricingTab.php',
390
+ 'WPDesk\\FCF\\Free\\Settings\\Tab\\TabAbstract' => __DIR__ . '/../..' . '/src/Settings/Tab/TabAbstract.php',
391
+ 'WPDesk\\FCF\\Free\\Settings\\Tab\\TabIntegration' => __DIR__ . '/../..' . '/src/Settings/Tab/TabIntegration.php',
392
+ 'WPDesk\\FCF\\Free\\Settings\\Tab\\TabInterface' => __DIR__ . '/../..' . '/src/Settings/Tab/TabInterface.php',
393
+ 'WPDesk\\FCF\\Free\\Settings\\Tabs' => __DIR__ . '/../..' . '/src/Settings/Tabs.php',
394
  'WPDesk\\Helper\\HelperAsLibrary' => __DIR__ . '/..' . '/wpdesk/wp-wpdesk-helper-override/src/Helper/HelperAsLibrary.php',
395
  'WPDesk_Flexible_Checkout_Fields_Tracker' => __DIR__ . '/../..' . '/classes/tracker.php',
396
  'WPDesk_Tracker_Data_Provider' => __DIR__ . '/..' . '/wpdesk/wp-wpdesk-helper-override/src/Interop/Tracker/class-wpdesk-tracker-data-provider.php',
402
  public static function getInitializer(ClassLoader $loader)
403
  {
404
  return \Closure::bind(function () use ($loader) {
405
+ $loader->prefixLengthsPsr4 = ComposerStaticInit165e44688066e6f2cb362bbca1465b58::$prefixLengthsPsr4;
406
+ $loader->prefixDirsPsr4 = ComposerStaticInit165e44688066e6f2cb362bbca1465b58::$prefixDirsPsr4;
407
+ $loader->classMap = ComposerStaticInit165e44688066e6f2cb362bbca1465b58::$classMap;
408
 
409
  }, null, ClassLoader::class);
410
  }
vendor_prefixed/monolog/monolog/composer.json CHANGED
@@ -30,7 +30,7 @@
30
  "php-amqplib\/php-amqplib": "~2.4",
31
  "swiftmailer\/swiftmailer": "^5.3|^6.0",
32
  "php-console\/php-console": "^3.1.3",
33
- "php-parallel-lint\/php-parallel-lint": "^1.0"
34
  },
35
  "suggest": {
36
  "graylog2\/gelf-php": "Allow sending log messages to a GrayLog2 server",
@@ -58,16 +58,9 @@
58
  "provide": {
59
  "psr\/log-implementation": "1.0.0"
60
  },
61
- "extra": {
62
- "branch-alias": {
63
- "dev-master": "2.0.x-dev"
64
- }
65
- },
66
  "scripts": {
67
- "test": [
68
- "parallel-lint . --exclude vendor --exclude src\/Monolog\/Handler\/FormattableHandlerInterface.php --exclude src\/Monolog\/Handler\/FormattableHandlerTrait.php --exclude src\/Monolog\/Handler\/ProcessableHandlerInterface.php --exclude src\/Monolog\/Handler\/ProcessableHandlerTrait.php",
69
- "phpunit"
70
- ]
71
  },
72
  "lock": false
73
  }
30
  "php-amqplib\/php-amqplib": "~2.4",
31
  "swiftmailer\/swiftmailer": "^5.3|^6.0",
32
  "php-console\/php-console": "^3.1.3",
33
+ "phpstan\/phpstan": "^0.12.59"
34
  },
35
  "suggest": {
36
  "graylog2\/gelf-php": "Allow sending log messages to a GrayLog2 server",
58
  "provide": {
59
  "psr\/log-implementation": "1.0.0"
60
  },
 
 
 
 
 
61
  "scripts": {
62
+ "test": "vendor\/bin\/phpunit",
63
+ "phpstan": "vendor\/bin\/phpstan analyse"
 
 
64
  },
65
  "lock": false
66
  }
vendor_prefixed/monolog/monolog/src/Monolog/ErrorHandler.php CHANGED
@@ -54,6 +54,7 @@ class ErrorHandler
54
  {
55
  //Forces the autoloader to run for LogLevel. Fixes an autoload issue at compile-time on PHP5.3. See https://github.com/Seldaek/monolog/pull/929
56
  \class_exists('FcfVendor\\Psr\\Log\\LogLevel', \true);
 
57
  $handler = new static($logger);
58
  if ($errorLevelMap !== \false) {
59
  $handler->registerErrorHandler($errorLevelMap);
54
  {
55
  //Forces the autoloader to run for LogLevel. Fixes an autoload issue at compile-time on PHP5.3. See https://github.com/Seldaek/monolog/pull/929
56
  \class_exists('FcfVendor\\Psr\\Log\\LogLevel', \true);
57
+ /** @phpstan-ignore-next-line */
58
  $handler = new static($logger);
59
  if ($errorLevelMap !== \false) {
60
  $handler->registerErrorHandler($errorLevelMap);
vendor_prefixed/monolog/monolog/src/Monolog/Handler/DynamoDbHandler.php CHANGED
@@ -67,6 +67,7 @@ class DynamoDbHandler extends \FcfVendor\Monolog\Handler\AbstractProcessingHandl
67
  if ($this->version === 3) {
68
  $formatted = $this->marshaler->marshalItem($filtered);
69
  } else {
 
70
  $formatted = $this->client->formatAttributes($filtered);
71
  }
72
  $this->client->putItem(array('TableName' => $this->table, 'Item' => $formatted));
67
  if ($this->version === 3) {
68
  $formatted = $this->marshaler->marshalItem($filtered);
69
  } else {
70
+ /** @phpstan-ignore-next-line */
71
  $formatted = $this->client->formatAttributes($filtered);
72
  }
73
  $this->client->putItem(array('TableName' => $this->table, 'Item' => $formatted));
vendor_prefixed/monolog/monolog/src/Monolog/Handler/FirePHPHandler.php CHANGED
@@ -61,7 +61,7 @@ class FirePHPHandler extends \FcfVendor\Monolog\Handler\AbstractProcessingHandle
61
  *
62
  * @see createHeader()
63
  * @param array $record
64
- * @return string
65
  */
66
  protected function createRecordHeader(array $record)
67
  {
61
  *
62
  * @see createHeader()
63
  * @param array $record
64
+ * @return array
65
  */
66
  protected function createRecordHeader(array $record)
67
  {
vendor_prefixed/monolog/monolog/src/Monolog/Handler/GelfHandler.php CHANGED
@@ -25,7 +25,7 @@ use FcfVendor\Monolog\Formatter\GelfMessageFormatter;
25
  class GelfHandler extends \FcfVendor\Monolog\Handler\AbstractProcessingHandler
26
  {
27
  /**
28
- * @var Publisher the publisher object that sends the message to the server
29
  */
30
  protected $publisher;
31
  /**
25
  class GelfHandler extends \FcfVendor\Monolog\Handler\AbstractProcessingHandler
26
  {
27
  /**
28
+ * @var Publisher|PublisherInterface|IMessagePublisher the publisher object that sends the message to the server
29
  */
30
  protected $publisher;
31
  /**
vendor_prefixed/monolog/monolog/src/Monolog/Handler/HipChatHandler.php CHANGED
@@ -228,10 +228,10 @@ class HipChatHandler extends \FcfVendor\Monolog\Handler\SocketHandler
228
  * will be the highest level from the given records. Datetime will be taken
229
  * from the first record.
230
  *
231
- * @param $records
232
  * @return array
233
  */
234
- private function combineRecords($records)
235
  {
236
  $batchRecord = null;
237
  $batchRecords = array();
228
  * will be the highest level from the given records. Datetime will be taken
229
  * from the first record.
230
  *
231
+ * @param array $records
232
  * @return array
233
  */
234
+ private function combineRecords(array $records)
235
  {
236
  $batchRecord = null;
237
  $batchRecords = array();
vendor_prefixed/monolog/monolog/src/Monolog/Handler/RavenHandler.php CHANGED
@@ -36,7 +36,7 @@ class RavenHandler extends \FcfVendor\Monolog\Handler\AbstractProcessingHandler
36
  */
37
  protected $ravenClient;
38
  /**
39
- * @var LineFormatter The formatter to use for the logs generated via handleBatch()
40
  */
41
  protected $batchFormatter;
42
  /**
36
  */
37
  protected $ravenClient;
38
  /**
39
+ * @var FormatterInterface The formatter to use for the logs generated via handleBatch()
40
  */
41
  protected $batchFormatter;
42
  /**
vendor_prefixed/monolog/monolog/src/Monolog/Handler/RedisHandler.php CHANGED
@@ -33,7 +33,7 @@ class RedisHandler extends \FcfVendor\Monolog\Handler\AbstractProcessingHandler
33
  * @param string $key The key name to push records to
34
  * @param int $level The minimum logging level at which this handler will be triggered
35
  * @param bool $bubble Whether the messages that are handled can bubble up the stack or not
36
- * @param int $capSize Number of entries to limit list size to
37
  */
38
  public function __construct($redis, $key, $level = \FcfVendor\Monolog\Logger::DEBUG, $bubble = \true, $capSize = \false)
39
  {
33
  * @param string $key The key name to push records to
34
  * @param int $level The minimum logging level at which this handler will be triggered
35
  * @param bool $bubble Whether the messages that are handled can bubble up the stack or not
36
+ * @param int|false $capSize Number of entries to limit list size to
37
  */
38
  public function __construct($redis, $key, $level = \FcfVendor\Monolog\Logger::DEBUG, $bubble = \true, $capSize = \false)
39
  {
vendor_prefixed/monolog/monolog/src/Monolog/Handler/StreamHandler.php CHANGED
@@ -137,7 +137,7 @@ class StreamHandler extends \FcfVendor\Monolog\Handler\AbstractProcessingHandler
137
  if ('file://' === \substr($stream, 0, 7)) {
138
  return \dirname(\substr($stream, 7));
139
  }
140
- return;
141
  }
142
  private function createDir()
143
  {
137
  if ('file://' === \substr($stream, 0, 7)) {
138
  return \dirname(\substr($stream, 7));
139
  }
140
+ return null;
141
  }
142
  private function createDir()
143
  {
vendor_prefixed/monolog/monolog/src/Monolog/Logger.php CHANGED
@@ -444,7 +444,7 @@ class Logger implements \Psr\Log\LoggerInterface, \FcfVendor\Monolog\ResettableI
444
  /**
445
  * Converts PSR-3 levels to Monolog ones if necessary
446
  *
447
- * @param string|int Level number (monolog) or name (PSR-3)
448
  * @return int
449
  */
450
  public static function toMonologLevel($level)
444
  /**
445
  * Converts PSR-3 levels to Monolog ones if necessary
446
  *
447
+ * @param string|int $level Level number (monolog) or name (PSR-3)
448
  * @return int
449
  */
450
  public static function toMonologLevel($level)
vendor_prefixed/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php CHANGED
@@ -20,6 +20,20 @@ use FcfVendor\Monolog\Utils;
20
  */
21
  class PsrLogMessageProcessor implements \FcfVendor\Monolog\Processor\ProcessorInterface
22
  {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
  /**
24
  * @param array $record
25
  * @return array
@@ -31,12 +45,23 @@ class PsrLogMessageProcessor implements \FcfVendor\Monolog\Processor\ProcessorIn
31
  }
32
  $replacements = array();
33
  foreach ($record['context'] as $key => $val) {
 
 
 
 
34
  if (\is_null($val) || \is_scalar($val) || \is_object($val) && \method_exists($val, "__toString")) {
35
- $replacements['{' . $key . '}'] = $val;
 
 
36
  } elseif (\is_object($val)) {
37
- $replacements['{' . $key . '}'] = '[object ' . \FcfVendor\Monolog\Utils::getClass($val) . ']';
 
 
38
  } else {
39
- $replacements['{' . $key . '}'] = '[' . \gettype($val) . ']';
 
 
 
40
  }
41
  }
42
  $record['message'] = \strtr($record['message'], $replacements);
20
  */
21
  class PsrLogMessageProcessor implements \FcfVendor\Monolog\Processor\ProcessorInterface
22
  {
23
+ const SIMPLE_DATE = "Y-m-d\\TH:i:s.uP";
24
+ /** @var string|null */
25
+ private $dateFormat;
26
+ /** @var bool */
27
+ private $removeUsedContextFields;
28
+ /**
29
+ * @param string|null $dateFormat The format of the timestamp: one supported by DateTime::format
30
+ * @param bool $removeUsedContextFields If set to true the fields interpolated into message gets unset
31
+ */
32
+ public function __construct($dateFormat = null, $removeUsedContextFields = \false)
33
+ {
34
+ $this->dateFormat = $dateFormat;
35
+ $this->removeUsedContextFields = $removeUsedContextFields;
36
+ }
37
  /**
38
  * @param array $record
39
  * @return array
45
  }
46
  $replacements = array();
47
  foreach ($record['context'] as $key => $val) {
48
+ $placeholder = '{' . $key . '}';
49
+ if (\strpos($record['message'], $placeholder) === \false) {
50
+ continue;
51
+ }
52
  if (\is_null($val) || \is_scalar($val) || \is_object($val) && \method_exists($val, "__toString")) {
53
+ $replacements[$placeholder] = $val;
54
+ } elseif ($val instanceof \DateTime) {
55
+ $replacements[$placeholder] = $val->format($this->dateFormat ?: static::SIMPLE_DATE);
56
  } elseif (\is_object($val)) {
57
+ $replacements[$placeholder] = '[object ' . \FcfVendor\Monolog\Utils::getClass($val) . ']';
58
+ } elseif (\is_array($val)) {
59
+ $replacements[$placeholder] = 'array' . \FcfVendor\Monolog\Utils::jsonEncode($val, null, \true);
60
  } else {
61
+ $replacements[$placeholder] = '[' . \gettype($val) . ']';
62
+ }
63
+ if ($this->removeUsedContextFields) {
64
+ unset($record['context'][$key]);
65
  }
66
  }
67
  $record['message'] = \strtr($record['message'], $replacements);
vendor_prefixed/monolog/monolog/src/Monolog/Utils.php CHANGED
@@ -147,7 +147,7 @@ class Utils
147
  * Function converts the input in place in the passed variable so that it
148
  * can be used as a callback for array_walk_recursive.
149
  *
150
- * @param mixed &$data Input to check and convert if needed
151
  * @private
152
  */
153
  public static function detectAndCleanUtf8(&$data)
147
  * Function converts the input in place in the passed variable so that it
148
  * can be used as a callback for array_walk_recursive.
149
  *
150
+ * @param mixed $data Input to check and convert if needed, passed by ref
151
  * @private
152
  */
153
  public static function detectAndCleanUtf8(&$data)
vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/CommandProvider.php CHANGED
@@ -4,6 +4,7 @@ namespace FcfVendor\WPDesk\Composer\Codeception;
4
 
5
  use FcfVendor\WPDesk\Composer\Codeception\Commands\CreateCodeceptionTests;
6
  use FcfVendor\WPDesk\Composer\Codeception\Commands\RunCodeceptionTests;
 
7
  /**
8
  * Links plugin commands handlers to composer.
9
  */
@@ -11,6 +12,6 @@ class CommandProvider implements \FcfVendor\Composer\Plugin\Capability\CommandPr
11
  {
12
  public function getCommands()
13
  {
14
- return [new \FcfVendor\WPDesk\Composer\Codeception\Commands\CreateCodeceptionTests(), new \FcfVendor\WPDesk\Composer\Codeception\Commands\RunCodeceptionTests()];
15
  }
16
  }
4
 
5
  use FcfVendor\WPDesk\Composer\Codeception\Commands\CreateCodeceptionTests;
6
  use FcfVendor\WPDesk\Composer\Codeception\Commands\RunCodeceptionTests;
7
+ use FcfVendor\WPDesk\Composer\Codeception\Commands\RunLocalCodeceptionTests;
8
  /**
9
  * Links plugin commands handlers to composer.
10
  */
12
  {
13
  public function getCommands()
14
  {
15
+ return [new \FcfVendor\WPDesk\Composer\Codeception\Commands\CreateCodeceptionTests(), new \FcfVendor\WPDesk\Composer\Codeception\Commands\RunCodeceptionTests(), new \FcfVendor\WPDesk\Composer\Codeception\Commands\RunLocalCodeceptionTests()];
16
  }
17
  }
vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/RunCodeceptionTests.php CHANGED
@@ -41,7 +41,7 @@ class RunCodeceptionTests extends \FcfVendor\WPDesk\Composer\Codeception\Command
41
  \mkdir($cache_dir, 0777, \true);
42
  }
43
  \putenv('TMP_CACHE_DIR=' . $cache_dir);
44
- $codecept_param = ' --html --verbose ';
45
  $additionalParameters = ' -e CODECEPT_PARAM="' . $codecept_param . '" ';
46
  if (!empty($singleTest) && 'all' !== $singleTest) {
47
  $additionalParameters .= ' -e CODECEPT_PARAM="' . $codecept_param . ' acceptance ' . $singleTest . '" ';
41
  \mkdir($cache_dir, 0777, \true);
42
  }
43
  \putenv('TMP_CACHE_DIR=' . $cache_dir);
44
+ $codecept_param = ' --html --verbose -f ';
45
  $additionalParameters = ' -e CODECEPT_PARAM="' . $codecept_param . '" ';
46
  if (!empty($singleTest) && 'all' !== $singleTest) {
47
  $additionalParameters .= ' -e CODECEPT_PARAM="' . $codecept_param . ' acceptance ' . $singleTest . '" ';
vendor_prefixed/wpdesk/wp-codeception/src/WPDesk/Composer/Commands/RunLocalCodeceptionTests.php ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace FcfVendor\WPDesk\Composer\Codeception\Commands;
4
+
5
+ use FcfVendor\Symfony\Component\Console\Input\InputArgument;
6
+ use FcfVendor\Symfony\Component\Console\Input\InputInterface;
7
+ use FcfVendor\Symfony\Component\Console\Output\OutputInterface;
8
+ /**
9
+ * Codeception tests run command.
10
+ *
11
+ * @package WPDesk\Composer\Codeception\Commands
12
+ */
13
+ class RunLocalCodeceptionTests extends \FcfVendor\WPDesk\Composer\Codeception\Commands\RunCodeceptionTests
14
+ {
15
+ /**
16
+ * Configure command.
17
+ */
18
+ protected function configure()
19
+ {
20
+ parent::configure();
21
+ $this->setName('run-local-codeception-tests')->setDescription('Run local codeception tests.')->setDefinition(array(new \FcfVendor\Symfony\Component\Console\Input\InputArgument(self::SINGLE, \FcfVendor\Symfony\Component\Console\Input\InputArgument::OPTIONAL, 'Name of Single test to run.', ' '), new \FcfVendor\Symfony\Component\Console\Input\InputArgument(self::WOOCOMMERCE_VERSION, \FcfVendor\Symfony\Component\Console\Input\InputArgument::OPTIONAL, 'WooCommerce version to install.', '')));
22
+ }
23
+ /**
24
+ * Execute command.
25
+ *
26
+ * @param InputInterface $input
27
+ * @param OutputInterface $output
28
+ * @return void
29
+ */
30
+ protected function execute(\FcfVendor\Symfony\Component\Console\Input\InputInterface $input, \FcfVendor\Symfony\Component\Console\Output\OutputInterface $output)
31
+ {
32
+ $singleTest = $input->getArgument(self::SINGLE);
33
+ $wooVersion = $input->getArgument(self::WOOCOMMERCE_VERSION);
34
+ $runLocalTests = 'sh ./vendor/wpdesk/wp-codeception/scripts/run_local_tests.sh ' . $singleTest . ' ' . $wooVersion;
35
+ $this->execAndOutput($runLocalTests, $output);
36
+ }
37
+ }
vendor_prefixed/wpdesk/wp-plugin-flow/composer.json CHANGED
@@ -8,11 +8,11 @@
8
  ],
9
  "require": {
10
  "php": ">=5.6",
11
- "wpdesk\/wp-basic-requirements": "^3",
12
- "wpdesk\/wp-builder": "^1.4",
13
- "wpdesk\/wp-wpdesk-license": "^2.6",
14
- "wpdesk\/wp-wpdesk-helper": "^2.1",
15
- "wpdesk\/wp-wpdesk-tracker": "^2.0.4"
16
  },
17
  "require-dev": {
18
  "phpunit\/phpunit": "<7",
8
  ],
9
  "require": {
10
  "php": ">=5.6",
11
+ "wpdesk\/wp-basic-requirements": "^3.2.3",
12
+ "wpdesk\/wp-builder": "^1.4.4",
13
+ "wpdesk\/wp-wpdesk-license": "^2.10.1",
14
+ "wpdesk\/wp-wpdesk-helper": "^2.4",
15
+ "wpdesk\/wp-wpdesk-tracker": "^2.3.1"
16
  },
17
  "require-dev": {
18
  "phpunit\/phpunit": "<7",
vendor_prefixed/wpdesk/wp-plugin-flow/src/Initialization/HelperInstanceAsFilterTrait.php CHANGED
@@ -19,7 +19,7 @@ trait HelperInstanceAsFilterTrait
19
  */
20
  private function get_helper_version()
21
  {
22
- return 4;
23
  }
24
  /**
25
  * Returns filter action name for helper instance
19
  */
20
  private function get_helper_version()
21
  {
22
+ return 5;
23
  }
24
  /**
25
  * Returns filter action name for helper instance
vendor_prefixed/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager.php CHANGED
@@ -96,7 +96,7 @@ if (!\class_exists('FcfVendor\\WPDesk_API_Manager_With_Update_Flag')) {
96
  *
97
  * @since 1.2
98
  */
99
- private function __wakeup()
100
  {
101
  }
102
  public function __construct($upgrade_url, $version, $name, $product_id, $menu_title, $title, $plugin_file, $plugin_dir, $config_uri, $hook_to_updates = \true)
96
  *
97
  * @since 1.2
98
  */
99
+ public function __wakeup()
100
  {
101
  }
102
  public function __construct($upgrade_url, $version, $name, $product_id, $menu_title, $title, $plugin_file, $plugin_dir, $config_uri, $hook_to_updates = \true)
vendor_prefixed/wpdesk/wp-wpdesk-license/src/Page/License/Action/LicenseActivation.php CHANGED
@@ -164,7 +164,7 @@ class LicenseActivation implements \FcfVendor\WPDesk\License\Page\Action
164
  break;
165
  }
166
  }
167
- if (\true === $activate_results['activated']) {
168
  $this->activate_and_save_data($plugin_api_manager, $activation_email, $api_key);
169
  $this->show_activation_message($activate_results);
170
  } else {
164
  break;
165
  }
166
  }
167
+ if (isset($activate_results['activated']) && \true === $activate_results['activated']) {
168
  $this->activate_and_save_data($plugin_api_manager, $activation_email, $api_key);
169
  $this->show_activation_message($activate_results);
170
  } else {
vendor_prefixed/wpdesk/wp-wpdesk-license/src/ServerAddressRepository.php CHANGED
@@ -36,7 +36,13 @@ class ServerAddressRepository
36
  public function get_server_urls()
37
  {
38
  // PL version should be default for most plugins
39
- $servers = ['https://www.wpdesk.pl', 'https://www.wpdesk.net', 'https://shopmagic.app'];
 
 
 
 
 
 
40
  if ($this->is_magic_plugin($this->product_id)) {
41
  $servers = \array_reverse($servers);
42
  // set magic server as first to check
@@ -59,6 +65,17 @@ class ServerAddressRepository
59
  {
60
  return \stripos($product_id, 'ShopMagic') !== \false;
61
  }
 
 
 
 
 
 
 
 
 
 
 
62
  /**
63
  * Is product id of a Flexible Shipping plugin?
64
  *
36
  public function get_server_urls()
37
  {
38
  // PL version should be default for most plugins
39
+ $servers = ['https://www.wpdesk.pl', 'https://www.wpdesk.net'];
40
+ $servers[] = 'https://flexibleinvoices.com';
41
+ if ($this->is_invoice_product($this->product_id)) {
42
+ $servers = \array_reverse($servers);
43
+ // set invoice server as first to check
44
+ }
45
+ $servers[] = 'https://shopmagic.app';
46
  if ($this->is_magic_plugin($this->product_id)) {
47
  $servers = \array_reverse($servers);
48
  // set magic server as first to check
65
  {
66
  return \stripos($product_id, 'ShopMagic') !== \false;
67
  }
68
+ /**
69
+ * Is product id of a ShopMagic Plugin?
70
+ *
71
+ * @param string $product_id
72
+ *
73
+ * @return bool
74
+ */
75
+ private function is_invoice_product($product_id)
76
+ {
77
+ return \stripos($product_id, 'Invoices') !== \false;
78
+ }
79
  /**
80
  * Is product id of a Flexible Shipping plugin?
81
  *
vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/class-wpdesk-tracker.php CHANGED
@@ -177,13 +177,9 @@ if (!\class_exists('FcfVendor\\WPDesk_Tracker')) {
177
  if (!\is_array($options)) {
178
  $options = array();
179
  }
180
- if (\get_option('wpdesk_tracker_notice', '0') === '2') {
181
- \update_option('wpdesk_tracker_notice', 'dismiss_all');
182
- $options['wpdesk_tracker_agree'] = '0';
183
- \update_option('wpdesk_helper_options', $options);
184
- } else {
185
- \update_option('wpdesk_tracker_notice', '2');
186
- }
187
  }
188
  }
189
  public function update_option_wpdesk_helper_options($old_value, $value, $option)
177
  if (!\is_array($options)) {
178
  $options = array();
179
  }
180
+ \update_option('wpdesk_tracker_notice', 'dismiss_all');
181
+ $options['wpdesk_tracker_agree'] = '0';
182
+ \update_option('wpdesk_helper_options', $options);
 
 
 
 
183
  }
184
  }
185
  public function update_option_wpdesk_helper_options($old_value, $value, $option)
vendor_prefixed/wpdesk/wp-wpdesk-tracker/src/views/tracker-notice.php CHANGED
@@ -46,7 +46,6 @@ if (empty($notice_content)) {
46
  <script type="text/javascript">
47
  jQuery(document).on('click', '#wpdesk_tracker_notice .notice-dismiss',function(e){
48
  e.preventDefault();
49
- console.log('dismiss');
50
  jQuery.ajax( '<?php
51
  echo \admin_url('admin-ajax.php');
52
  ?>',
@@ -61,7 +60,6 @@ echo \admin_url('admin-ajax.php');
61
  })
62
  jQuery(document).on('click', '#wpdesk_tracker_allow_button_notice',function(e){
63
  e.preventDefault();
64
- console.log('allow');
65
  jQuery.ajax( '<?php
66
  echo \admin_url('admin-ajax.php');
67
  ?>',
46
  <script type="text/javascript">
47
  jQuery(document).on('click', '#wpdesk_tracker_notice .notice-dismiss',function(e){
48
  e.preventDefault();
 
49
  jQuery.ajax( '<?php
50
  echo \admin_url('admin-ajax.php');
51
  ?>',
60
  })
61
  jQuery(document).on('click', '#wpdesk_tracker_allow_button_notice',function(e){
62
  e.preventDefault();
 
63
  jQuery.ajax( '<?php
64
  echo \admin_url('admin-ajax.php');
65
  ?>',
views/settings-field-advanced-js.php DELETED
@@ -1,11 +0,0 @@
1
- <?php
2
- if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly.
3
-
4
- ob_start();
5
- include __DIR__ . '/settings-field-advanced.php';
6
- $content = ob_get_clean();
7
- $lines = preg_split( "/\R/", $content );
8
- ?>
9
- <?php foreach ( $lines as $line ) : ?>
10
- html += '<?php echo $line; ?>';
11
- <?php endforeach; ?>
 
 
 
 
 
 
 
 
 
 
 
views/settings-field-advanced.php DELETED
@@ -1,13 +0,0 @@
1
- <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly ?>
2
-
3
- <div class="field-settings-tab-container field-settings-advanced" style="display:none;">
4
- <div>
5
- <?php
6
- echo sprintf(
7
- __( '%sGo PRO &rarr;%s to add conditional logic based on products/categories, fields and shipping method.' , 'flexible-checkout-fields' ),
8
- '<a href="' . esc_url( apply_filters( 'flexible_checkout_fields/short_url', '#', 'fcf-settings-field-tab-advanced-upgrade' ) ) . '" target="_blank">',
9
- '</a>'
10
- );
11
- ?>
12
- </div>
13
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
views/settings-field-pricing-js.php DELETED
@@ -1,11 +0,0 @@
1
- <?php
2
- if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly.
3
-
4
- ob_start();
5
- include __DIR__ . '/settings-field-pricing.php';
6
- $content = ob_get_clean();
7
- $lines = preg_split( "/\R/", $content );
8
- ?>
9
- <?php foreach ( $lines as $line ) : ?>
10
- html += '<?php echo $line; ?>';
11
- <?php endforeach; ?>
 
 
 
 
 
 
 
 
 
 
 
views/settings-field-pricing.php DELETED
@@ -1,13 +0,0 @@
1
- <?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly ?>
2
-
3
- <div class="field-settings-tab-container field-settings-pricing" style="display:none;">
4
- <div>
5
- <?php
6
- echo sprintf(
7
- __( '%sGo PRO &rarr;%s In this tab it is possible to add a fixed or percentage price to the field and set the tax on this price.' , 'flexible-checkout-fields' ),
8
- '<a href="' . esc_url( apply_filters( 'flexible_checkout_fields/short_url', '#', 'fcf-settings-field-tab-pricing-upgrade' ) ) . '" target="_blank">',
9
- '</a>'
10
- );
11
- ?>
12
- </div>
13
- </div>