minsky-webform-formkit 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/.pnp.cjs +11555 -0
  2. package/.pnp.loader.mjs +2126 -0
  3. package/LICENSE +21 -0
  4. package/README.md +324 -0
  5. package/dist/index.css +1 -0
  6. package/dist/index.js +1 -0
  7. package/package.json +55 -0
  8. package/src/components/FormKit/FormKitPhoneEnhanced/FormKitPhoneEnhanced.js +100 -0
  9. package/src/components/FormKit/FormKitPhoneEnhanced/FormKitPhoneEnhanced.vue +30 -0
  10. package/src/components/FormKit/FormKitPhoneEnhanced/countryCodes.js +1214 -0
  11. package/src/components/FormKit/FormKitRecaptcha/FormKitRecaptcha.vue +46 -0
  12. package/src/components/Icon.vue +38 -0
  13. package/src/components/InfoTooltip.vue +16 -0
  14. package/src/components/MinksyWebformFormKit/MinskyWebformFormKit.vue +357 -0
  15. package/src/components/MinksyWebformFormKit/_MinskyWebformFormKit.js +282 -0
  16. package/src/composables/useExample.js +0 -0
  17. package/src/formkit.config.js +72 -0
  18. package/src/index.mjs +20 -0
  19. package/src/plugins/customLabelPlugin.js +42 -0
  20. package/src/plugins/htmlHelpPlugin.js +23 -0
  21. package/src/rules/iban.js +9 -0
  22. package/src/rules/insz.js +21 -0
  23. package/src/rules/phone.js +29 -0
  24. package/src/rules/time.js +79 -0
  25. package/src/rules/vat.js +42 -0
  26. package/src/styles/_functions.scss +96 -0
  27. package/src/styles/_mixins.scss +29 -0
  28. package/src/styles/_variables.scss +7 -0
  29. package/src/styles/main.scss +11 -0
  30. package/src/styles/webform-formkit-multistep.scss +98 -0
  31. package/src/styles/webform-formkit.scss +215 -0
  32. package/src/styles/webform.scss +400 -0
  33. package/src/utils/functions.js +78 -0
  34. package/src/utils/lodash.js +208 -0
  35. package/src/utils/messages.js +37 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) [2024] [Minsky]
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,324 @@
1
+ # Minsky Formkit Webform
2
+
3
+ Vue 3 module that integrates **Drupal Webforms** with **FormKit**, providing validation rules, multi-step support, localization, and styling utilities commonly required in Minsky projects.
4
+
5
+ ## Local development
6
+
7
+ Install dependencies:
8
+
9
+ ```bash
10
+ yarn install
11
+ ```
12
+
13
+ Build the module:
14
+
15
+ ```bash
16
+ yarn run build
17
+ ```
18
+
19
+ Run the development environment:
20
+
21
+ ```bash
22
+ yarn run dev
23
+ ```
24
+
25
+ ### Using the package locally in another project
26
+
27
+ To install the module from a local path:
28
+
29
+ ```bash
30
+ yarn add /path-to-local-minsky-formkit-map
31
+ ```
32
+
33
+ This is useful when developing the package and testing changes inside another project.
34
+
35
+ ## Installation
36
+
37
+ Install from npm:
38
+
39
+ ```bash
40
+ yarn add minsky-webform-formkit
41
+ ```
42
+
43
+ ### Peer dependencies
44
+
45
+ Ensure the following peer dependencies are installed in your project:
46
+
47
+ ```json
48
+ "peerDependencies": {
49
+ "vue": "^3.3.0",
50
+ "@formkit/vue": "^1.7.0",
51
+ "@formkit/core": "^1.7.0",
52
+ "@formkit/addons": "^1.7.0",
53
+ "@formkit/i18n": "^1.7.0",
54
+ "gsap": "^3.12.0"
55
+ }
56
+ ```
57
+
58
+ These dependencies are commonly used in FormKit projects and are required for the module to function correctly.
59
+
60
+ Install them if they are not already present:
61
+
62
+ ```bash
63
+ yarn add vue @formkit/vue @formkit/core @formkit/addons @formkit/i18n gsap
64
+ ```
65
+
66
+ ## Setup
67
+
68
+ Register the plugin in your Vue application together with your FormKit configuration.
69
+
70
+ **App.vue example**
71
+
72
+ ```javascript
73
+ import { createApp } from 'vue';
74
+ import CustomApp from './CustomApp.vue';
75
+
76
+ import MinskyWebformFormKit from 'minsky-webform-formkit';
77
+ import customConfig from './formkit.config';
78
+
79
+ const app = createApp(CustomApp);
80
+
81
+ app.use(MinskyWebformFormKit, customConfig);
82
+
83
+ app.mount('#app');
84
+ ```
85
+
86
+ ### FormKit configuration
87
+
88
+ The module provides a default FormKit configuration that includes:
89
+
90
+ - multi-step form support
91
+ - validation rules
92
+ - localization (NL / EN / FR)
93
+ - custom inputs (phone, recaptcha)
94
+ - custom plugins
95
+
96
+ Example default configuration:
97
+
98
+ ```javascript
99
+ const config = {
100
+ plugins: [customLabelPlugin, htmlHelpPlugin, createMultiStepPlugin({ allowIncomplete: false })],
101
+ rules: {
102
+ internationalPhone,
103
+ phone,
104
+ iban,
105
+ vat,
106
+ insz,
107
+ timeRule,
108
+ },
109
+ messages: {
110
+ nl: {
111
+ validation: {
112
+ phone: 'Dit is geen geldig telefoonnummer.',
113
+ required: 'Dit veld is verplicht.',
114
+ vat: 'Dit is geen geldig Btw-nummer.',
115
+ is: 'Dit veld is verplicht.',
116
+ timeRule({ node }) {
117
+ return timeMessage(node);
118
+ },
119
+ },
120
+ },
121
+ en: {
122
+ validation: {
123
+ phone: 'This is not a valid phone number.',
124
+ required: 'This field is required.',
125
+ is: 'This field is required.',
126
+ vat: 'This is not a valid VAT number.',
127
+ },
128
+ },
129
+ fr: {
130
+ validation: {
131
+ phone: "Ce numéro de téléphone n'est pas valide.",
132
+ required: 'Ce champ est obligatoire.',
133
+ is: 'Ce champ est obligatoire.',
134
+ vat: "Ce numéro de TVA n'est pas valide.",
135
+ },
136
+ },
137
+ },
138
+ locales: { nl, en, fr },
139
+ locale: document.documentElement.lang,
140
+ inputs: {
141
+ phoneEnhanced: createInput(FormKitPhoneEnhanced),
142
+ recaptcha: createInput(FormKitRecaptcha),
143
+ },
144
+ };
145
+
146
+ export default config;
147
+ ```
148
+
149
+ You can extend or override this configuration by passing your own config object when installing the plugin.
150
+
151
+ ## Styles
152
+
153
+ Import the default styles in your main stylesheet:
154
+
155
+ ```scss
156
+ @import 'minsky-webform-formkit/dist/index';
157
+ ```
158
+
159
+ ### Overriding styles
160
+
161
+ You can override CSS variables to customize the appearance of the form.
162
+
163
+ Example:
164
+
165
+ ```scss
166
+ .webform-formkit--class-modifier {
167
+ /* ========================================================================= */
168
+ /* customize form here */
169
+ /* ========================================================================= */
170
+ --f-color: var(--c-blue-medium);
171
+ --f-markup-color: var(--c-blue-dark);
172
+ --f-input-text-color: var(--c-blue-medium);
173
+ --f-input-border-color: var(--c-blue-light);
174
+ --f-input-border-width: 0.1rem;
175
+ --f-input-border-radius: 0.6rem;
176
+ --f-input-padding: 1.5rem 2.4rem 1.3rem 2.4rem;
177
+ --f-input-outline: 0.2rem solid var(--c-primary);
178
+ --f-input-background-color: transparent;
179
+ --f-input-font-family: inherit;
180
+ --f-input-font-size: 1.6rem;
181
+ --f-input-placeholder-color: var(--c-blue-light);
182
+ --f-input-placeholder-font-style: inherit;
183
+ --f-input-height: 5.2rem;
184
+ --f-label-margin-bottom: 0.5rem;
185
+
186
+ // description
187
+ --f-description-color: var(--c-blue-dark);
188
+
189
+ // submit btn
190
+ --f-submit-btn-background-color: #000;
191
+ --f-submit-btn-text-color: #fff;
192
+ --f-submit-btn-border-color: #000;
193
+ --f-submit-btn-border-width: 1px;
194
+ --f-submit-btn-border-radius: 0;
195
+ --f-submit-btn-font-family: inherit;
196
+ --f-submit-btn-min-width: initial; // must be defined for mobile devices
197
+ --f-submit-btn-min-height: initial; // must be defined for mobile devices
198
+ --f-submit-btn-hover-text-color: #000;
199
+ --f-submit-btn-hover-background-color: #fff;
200
+ --f-submit-btn-hover-border-color: #000;
201
+ --f-submit-btn-disabled-background-color: #e5e5e5;
202
+
203
+ // radio-buttons & check-boxes
204
+ --f-radio-check-border-color: var(--c-blue-light);
205
+ --f-radio-check-background-color: #fff;
206
+ --f-radio-check-background-color-active: var(--c-primary);
207
+ --f-radio-check-decorater-height: 2rem;
208
+
209
+ // help element
210
+ --f-help-background-color: #000;
211
+ --f-help-color: #fff;
212
+ --f-help-border-color: #000;
213
+
214
+ // other
215
+ --f-form-gap: 1.2rem 2rem;
216
+ --f-error-color: #{$c-red-status};
217
+ --f-success-color: #{$c-green-status};
218
+
219
+ // webform-fornkit props
220
+ --f-loader-color: var(--c-primary);
221
+
222
+ // multistep
223
+ --f-multistep-background-color-tab: var(--c-blue-light);
224
+ --f-multistep-color-tab: var(--c-blue-dark);
225
+ --f-multistep-background-color-tab-active: var(--c-primary);
226
+ --f-multistep-color-tab-active: var(--c-white);
227
+
228
+ /* ========================================================================= */
229
+ /* custom styles */
230
+ /* ========================================================================= */
231
+ }
232
+ ```
233
+
234
+ Apply the modifier via the classModifier property.
235
+
236
+ ## Component API
237
+
238
+ ### Properties
239
+
240
+ | property | required | default | description |
241
+ | --------------- | -------- | ---------------------------------- | ----------------------------------------------------------------- |
242
+ | id | `true` | | Drupal Webform ID |
243
+ | api | optional | `window.location.origin` | API base URL used to fetch and submit the form |
244
+ | classModifier | optional | | CSS class modifier applied to the root element |
245
+ | defaults | optional | | Default form values |
246
+ | schemeProcessor | optional | | Function to transform the FormKit schema before rendering |
247
+ | submitProcessor | optional | | Function to transform submission payload before sending to Drupal |
248
+ | formDataAddons | optional | | Additional FormKit addons |
249
+ | forceRedirect | optional | `default: () => ({ bool: false })` | Force redirect after successful submission |
250
+ | cmpLibrary | optional | | Additional components available to the schema |
251
+ | messages | optional | `default: () => {}` | Override default UI messages |
252
+ | setUserData | optional | | Function that stores submitted form data in local storage |
253
+
254
+ ## Slots
255
+
256
+ ### Placeholder
257
+
258
+ Rendered before the form schema is loaded.
259
+
260
+ ```vue
261
+ <template #placeholder>Loading...</template>
262
+ ```
263
+
264
+ ### afterSchema
265
+
266
+ Rendered immediately after the FormKit schema.
267
+
268
+ ```vue
269
+ <template #afterSchema>Additional content</template>
270
+ ```
271
+
272
+ ## Messages
273
+
274
+ Default UI messages can be overridden.
275
+
276
+ Example:
277
+
278
+ ```javascript
279
+ export default {
280
+ global: {
281
+ editor: {
282
+ error: 'Check that the form has been completed correctly. Ensure that no unnecessary conditional fields have been filled in.'
283
+ }
284
+ },
285
+ nl: {
286
+ messages: {
287
+ missing: 'Dit formulier ontbreekt. Controleer of het ID dat u gebruikt correct is.',
288
+ error: 'Er is iets misgegaan bij het laden van het formulier.'
289
+ },
290
+ success: {
291
+ title: 'Bedankt!',
292
+ message: 'We hebben je gegevens goed ontvangen.',
293
+ }
294
+ },
295
+ en: {...},
296
+ }
297
+ ```
298
+
299
+ **Editor-only validation messages**
300
+ Editor-specific validation messages are only visible to users with editor or administrator roles.
301
+ To enable this behavior in Drupal, expose user roles via `drupalSettings`.
302
+
303
+ `JsSettingsHooks.php` implementation:
304
+
305
+ ```php
306
+ <?php
307
+
308
+ namespace Drupal\minsky\Hook;
309
+
310
+ use Drupal\Core\Hook\Attribute\Hook;
311
+
312
+ class JsSettingsHooks {
313
+
314
+ #[Hook('js_settings_alter')]
315
+ public function jsSettingsAlter(array &$settings): void {
316
+ // Provide the user information in drupalSettings to allow JavaScript code to customize
317
+ // the experience for the end user, rather than the server side, which would
318
+ // break the render cache.
319
+ $user = \Drupal::currentUser();
320
+ $settings['user']['roles'] = $user->getRoles();
321
+ }
322
+ }
323
+
324
+ ```
package/dist/index.css ADDED
@@ -0,0 +1 @@
1
+ @import "floating-vue/dist/style.css";.bef-exposed-form,.webform,.webform-formkit{--f-color:#000;--f-markup-color:#000;--f-input-text-color:#000;--f-input-border-color:#000;--f-input-border-width:1px;--f-input-border-radius:0;--f-input-padding:0.4em 0.6em;--f-input-outline:grey solid;--f-input-background-color:transparent;--f-input-font-family:inherit;--f-input-font-size:1.6rem;--f-input-placeholder-color:grey;--f-input-placeholder-font-style:inherit;--f-input-height:2.3em;--f-label-margin-bottom:0.2em;--f-description-color:#000;--f-submit-btn-background-color:#000;--f-submit-btn-text-color:#fff;--f-submit-btn-border-color:#000;--f-submit-btn-border-width:1px;--f-submit-btn-border-radius:0;--f-submit-btn-font-family:inherit;--f-submit-btn-min-width:13.4rem;--f-submit-btn-min-height:4.8rem;--f-submit-btn-hover-text-color:#000;--f-submit-btn-hover-background-color:#fff;--f-submit-btn-hover-border-color:#000;--f-submit-btn-disabled-background-color:#e5e5e5;--f-radio-check-border-color:#000;--f-radio-check-background-color:#fff;--f-radio-check-background-color-active:#e5e5e5;--f-radio-check-decorater-height:1.6rem;--f-help-background-color:#000;--f-help-color:#fff;--f-help-border-color:#000;--f-form-gap:1.5em;--f-error-color:red;--f-success-color:green;--f-loader-color:#000;--f-multistep-background-color-tab:#e5e5e5;--f-multistep-color-tab:#000;--f-multistep-background-color-tab-active:#000;--f-multistep-color-tab-active:#fff;box-sizing:border-box}.bef-exposed-form *,.webform *,.webform-formkit *{box-sizing:border-box}.bef-exposed-form form,.webform form,.webform-formkit form{color:var(--f-color)}.bef-exposed-form .form-item-markup,.bef-exposed-form .formkit-markup,.webform .form-item-markup,.webform .formkit-markup,.webform-formkit .form-item-markup,.webform-formkit .formkit-markup{color:var(--f-markup-color)}.bef-exposed-form input::-webkit-inner-spin-button,.bef-exposed-form input::-webkit-outer-spin-button,.webform input::-webkit-inner-spin-button,.webform input::-webkit-outer-spin-button,.webform-formkit input::-webkit-inner-spin-button,.webform-formkit input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.bef-exposed-form input[type=number],.webform input[type=number],.webform-formkit input[type=number]{-moz-appearance:textfield}.bef-exposed-form .form-item input[elementtype=date],.bef-exposed-form .form-item input[type=date],.bef-exposed-form .form-item input[type=email],.bef-exposed-form .form-item input[type=mask],.bef-exposed-form .form-item input[type=number],.bef-exposed-form .form-item input[type=tel],.bef-exposed-form .form-item input[type=text],.bef-exposed-form .form-item input[type=time],.bef-exposed-form .form-item input[type=url],.bef-exposed-form .form-item select,.bef-exposed-form .form-item textarea,.bef-exposed-form .formkit-outer input[elementtype=date],.bef-exposed-form .formkit-outer input[type=date],.bef-exposed-form .formkit-outer input[type=email],.bef-exposed-form .formkit-outer input[type=mask],.bef-exposed-form .formkit-outer input[type=number],.bef-exposed-form .formkit-outer input[type=tel],.bef-exposed-form .formkit-outer input[type=text],.bef-exposed-form .formkit-outer input[type=time],.bef-exposed-form .formkit-outer input[type=url],.bef-exposed-form .formkit-outer select,.bef-exposed-form .formkit-outer textarea,.webform .form-item input[elementtype=date],.webform .form-item input[type=date],.webform .form-item input[type=email],.webform .form-item input[type=mask],.webform .form-item input[type=number],.webform .form-item input[type=tel],.webform .form-item input[type=text],.webform .form-item input[type=time],.webform .form-item input[type=url],.webform .form-item select,.webform .form-item textarea,.webform .formkit-outer input[elementtype=date],.webform .formkit-outer input[type=date],.webform .formkit-outer input[type=email],.webform .formkit-outer input[type=mask],.webform .formkit-outer input[type=number],.webform .formkit-outer input[type=tel],.webform .formkit-outer input[type=text],.webform .formkit-outer input[type=time],.webform .formkit-outer input[type=url],.webform .formkit-outer select,.webform .formkit-outer textarea,.webform-formkit .form-item input[elementtype=date],.webform-formkit .form-item input[type=date],.webform-formkit .form-item input[type=email],.webform-formkit .form-item input[type=mask],.webform-formkit .form-item input[type=number],.webform-formkit .form-item input[type=tel],.webform-formkit .form-item input[type=text],.webform-formkit .form-item input[type=time],.webform-formkit .form-item input[type=url],.webform-formkit .form-item select,.webform-formkit .form-item textarea,.webform-formkit .formkit-outer input[elementtype=date],.webform-formkit .formkit-outer input[type=date],.webform-formkit .formkit-outer input[type=email],.webform-formkit .formkit-outer input[type=mask],.webform-formkit .formkit-outer input[type=number],.webform-formkit .formkit-outer input[type=tel],.webform-formkit .formkit-outer input[type=text],.webform-formkit .formkit-outer input[type=time],.webform-formkit .formkit-outer input[type=url],.webform-formkit .formkit-outer select,.webform-formkit .formkit-outer textarea{appearance:none;background-color:var(--f-input-background-color);border-color:var(--f-input-border-color);border-radius:var(--f-input-border-radius);border-style:solid;border-width:var(--f-input-border-width);box-shadow:none;color:var(--f-input-text-color);font-family:var(--f-input-font-family);font-size:var(--f-input-font-size);padding:var(--f-input-padding);width:100%}.bef-exposed-form .form-item input[elementtype=date]::placeholder,.bef-exposed-form .form-item input[type=date]::placeholder,.bef-exposed-form .form-item input[type=email]::placeholder,.bef-exposed-form .form-item input[type=mask]::placeholder,.bef-exposed-form .form-item input[type=number]::placeholder,.bef-exposed-form .form-item input[type=tel]::placeholder,.bef-exposed-form .form-item input[type=text]::placeholder,.bef-exposed-form .form-item input[type=time]::placeholder,.bef-exposed-form .form-item input[type=url]::placeholder,.bef-exposed-form .form-item select::placeholder,.bef-exposed-form .form-item textarea::placeholder,.bef-exposed-form .formkit-outer input[elementtype=date]::placeholder,.bef-exposed-form .formkit-outer input[type=date]::placeholder,.bef-exposed-form .formkit-outer input[type=email]::placeholder,.bef-exposed-form .formkit-outer input[type=mask]::placeholder,.bef-exposed-form .formkit-outer input[type=number]::placeholder,.bef-exposed-form .formkit-outer input[type=tel]::placeholder,.bef-exposed-form .formkit-outer input[type=text]::placeholder,.bef-exposed-form .formkit-outer input[type=time]::placeholder,.bef-exposed-form .formkit-outer input[type=url]::placeholder,.bef-exposed-form .formkit-outer select::placeholder,.bef-exposed-form .formkit-outer textarea::placeholder,.webform .form-item input[elementtype=date]::placeholder,.webform .form-item input[type=date]::placeholder,.webform .form-item input[type=email]::placeholder,.webform .form-item input[type=mask]::placeholder,.webform .form-item input[type=number]::placeholder,.webform .form-item input[type=tel]::placeholder,.webform .form-item input[type=text]::placeholder,.webform .form-item input[type=time]::placeholder,.webform .form-item input[type=url]::placeholder,.webform .form-item select::placeholder,.webform .form-item textarea::placeholder,.webform .formkit-outer input[elementtype=date]::placeholder,.webform .formkit-outer input[type=date]::placeholder,.webform .formkit-outer input[type=email]::placeholder,.webform .formkit-outer input[type=mask]::placeholder,.webform .formkit-outer input[type=number]::placeholder,.webform .formkit-outer input[type=tel]::placeholder,.webform .formkit-outer input[type=text]::placeholder,.webform .formkit-outer input[type=time]::placeholder,.webform .formkit-outer input[type=url]::placeholder,.webform .formkit-outer select::placeholder,.webform .formkit-outer textarea::placeholder,.webform-formkit .form-item input[elementtype=date]::placeholder,.webform-formkit .form-item input[type=date]::placeholder,.webform-formkit .form-item input[type=email]::placeholder,.webform-formkit .form-item input[type=mask]::placeholder,.webform-formkit .form-item input[type=number]::placeholder,.webform-formkit .form-item input[type=tel]::placeholder,.webform-formkit .form-item input[type=text]::placeholder,.webform-formkit .form-item input[type=time]::placeholder,.webform-formkit .form-item input[type=url]::placeholder,.webform-formkit .form-item select::placeholder,.webform-formkit .form-item textarea::placeholder,.webform-formkit .formkit-outer input[elementtype=date]::placeholder,.webform-formkit .formkit-outer input[type=date]::placeholder,.webform-formkit .formkit-outer input[type=email]::placeholder,.webform-formkit .formkit-outer input[type=mask]::placeholder,.webform-formkit .formkit-outer input[type=number]::placeholder,.webform-formkit .formkit-outer input[type=tel]::placeholder,.webform-formkit .formkit-outer input[type=text]::placeholder,.webform-formkit .formkit-outer input[type=time]::placeholder,.webform-formkit .formkit-outer input[type=url]::placeholder,.webform-formkit .formkit-outer select::placeholder,.webform-formkit .formkit-outer textarea::placeholder{color:var(--f-input-placeholder-color);font-style:var(--f-input-placeholder-font-style);transition:opacity .25s ease}.bef-exposed-form .form-item input[elementtype=date]:focus,.bef-exposed-form .form-item input[type=date]:focus,.bef-exposed-form .form-item input[type=email]:focus,.bef-exposed-form .form-item input[type=mask]:focus,.bef-exposed-form .form-item input[type=number]:focus,.bef-exposed-form .form-item input[type=tel]:focus,.bef-exposed-form .form-item input[type=text]:focus,.bef-exposed-form .form-item input[type=time]:focus,.bef-exposed-form .form-item input[type=url]:focus,.bef-exposed-form .form-item select:focus,.bef-exposed-form .form-item textarea:focus,.bef-exposed-form .formkit-outer input[elementtype=date]:focus,.bef-exposed-form .formkit-outer input[type=date]:focus,.bef-exposed-form .formkit-outer input[type=email]:focus,.bef-exposed-form .formkit-outer input[type=mask]:focus,.bef-exposed-form .formkit-outer input[type=number]:focus,.bef-exposed-form .formkit-outer input[type=tel]:focus,.bef-exposed-form .formkit-outer input[type=text]:focus,.bef-exposed-form .formkit-outer input[type=time]:focus,.bef-exposed-form .formkit-outer input[type=url]:focus,.bef-exposed-form .formkit-outer select:focus,.bef-exposed-form .formkit-outer textarea:focus,.webform .form-item input[elementtype=date]:focus,.webform .form-item input[type=date]:focus,.webform .form-item input[type=email]:focus,.webform .form-item input[type=mask]:focus,.webform .form-item input[type=number]:focus,.webform .form-item input[type=tel]:focus,.webform .form-item input[type=text]:focus,.webform .form-item input[type=time]:focus,.webform .form-item input[type=url]:focus,.webform .form-item select:focus,.webform .form-item textarea:focus,.webform .formkit-outer input[elementtype=date]:focus,.webform .formkit-outer input[type=date]:focus,.webform .formkit-outer input[type=email]:focus,.webform .formkit-outer input[type=mask]:focus,.webform .formkit-outer input[type=number]:focus,.webform .formkit-outer input[type=tel]:focus,.webform .formkit-outer input[type=text]:focus,.webform .formkit-outer input[type=time]:focus,.webform .formkit-outer input[type=url]:focus,.webform .formkit-outer select:focus,.webform .formkit-outer textarea:focus,.webform-formkit .form-item input[elementtype=date]:focus,.webform-formkit .form-item input[type=date]:focus,.webform-formkit .form-item input[type=email]:focus,.webform-formkit .form-item input[type=mask]:focus,.webform-formkit .form-item input[type=number]:focus,.webform-formkit .form-item input[type=tel]:focus,.webform-formkit .form-item input[type=text]:focus,.webform-formkit .form-item input[type=time]:focus,.webform-formkit .form-item input[type=url]:focus,.webform-formkit .form-item select:focus,.webform-formkit .form-item textarea:focus,.webform-formkit .formkit-outer input[elementtype=date]:focus,.webform-formkit .formkit-outer input[type=date]:focus,.webform-formkit .formkit-outer input[type=email]:focus,.webform-formkit .formkit-outer input[type=mask]:focus,.webform-formkit .formkit-outer input[type=number]:focus,.webform-formkit .formkit-outer input[type=tel]:focus,.webform-formkit .formkit-outer input[type=text]:focus,.webform-formkit .formkit-outer input[type=time]:focus,.webform-formkit .formkit-outer input[type=url]:focus,.webform-formkit .formkit-outer select:focus,.webform-formkit .formkit-outer textarea:focus{outline:var(--f-input-outline)}.bef-exposed-form .form-item input[elementtype=date]:focus::placeholder,.bef-exposed-form .form-item input[type=date]:focus::placeholder,.bef-exposed-form .form-item input[type=email]:focus::placeholder,.bef-exposed-form .form-item input[type=mask]:focus::placeholder,.bef-exposed-form .form-item input[type=number]:focus::placeholder,.bef-exposed-form .form-item input[type=tel]:focus::placeholder,.bef-exposed-form .form-item input[type=text]:focus::placeholder,.bef-exposed-form .form-item input[type=time]:focus::placeholder,.bef-exposed-form .form-item input[type=url]:focus::placeholder,.bef-exposed-form .form-item select:focus::placeholder,.bef-exposed-form .form-item textarea:focus::placeholder,.bef-exposed-form .formkit-outer input[elementtype=date]:focus::placeholder,.bef-exposed-form .formkit-outer input[type=date]:focus::placeholder,.bef-exposed-form .formkit-outer input[type=email]:focus::placeholder,.bef-exposed-form .formkit-outer input[type=mask]:focus::placeholder,.bef-exposed-form .formkit-outer input[type=number]:focus::placeholder,.bef-exposed-form .formkit-outer input[type=tel]:focus::placeholder,.bef-exposed-form .formkit-outer input[type=text]:focus::placeholder,.bef-exposed-form .formkit-outer input[type=time]:focus::placeholder,.bef-exposed-form .formkit-outer input[type=url]:focus::placeholder,.bef-exposed-form .formkit-outer select:focus::placeholder,.bef-exposed-form .formkit-outer textarea:focus::placeholder,.webform .form-item input[elementtype=date]:focus::placeholder,.webform .form-item input[type=date]:focus::placeholder,.webform .form-item input[type=email]:focus::placeholder,.webform .form-item input[type=mask]:focus::placeholder,.webform .form-item input[type=number]:focus::placeholder,.webform .form-item input[type=tel]:focus::placeholder,.webform .form-item input[type=text]:focus::placeholder,.webform .form-item input[type=time]:focus::placeholder,.webform .form-item input[type=url]:focus::placeholder,.webform .form-item select:focus::placeholder,.webform .form-item textarea:focus::placeholder,.webform .formkit-outer input[elementtype=date]:focus::placeholder,.webform .formkit-outer input[type=date]:focus::placeholder,.webform .formkit-outer input[type=email]:focus::placeholder,.webform .formkit-outer input[type=mask]:focus::placeholder,.webform .formkit-outer input[type=number]:focus::placeholder,.webform .formkit-outer input[type=tel]:focus::placeholder,.webform .formkit-outer input[type=text]:focus::placeholder,.webform .formkit-outer input[type=time]:focus::placeholder,.webform .formkit-outer input[type=url]:focus::placeholder,.webform .formkit-outer select:focus::placeholder,.webform .formkit-outer textarea:focus::placeholder,.webform-formkit .form-item input[elementtype=date]:focus::placeholder,.webform-formkit .form-item input[type=date]:focus::placeholder,.webform-formkit .form-item input[type=email]:focus::placeholder,.webform-formkit .form-item input[type=mask]:focus::placeholder,.webform-formkit .form-item input[type=number]:focus::placeholder,.webform-formkit .form-item input[type=tel]:focus::placeholder,.webform-formkit .form-item input[type=text]:focus::placeholder,.webform-formkit .form-item input[type=time]:focus::placeholder,.webform-formkit .form-item input[type=url]:focus::placeholder,.webform-formkit .form-item select:focus::placeholder,.webform-formkit .form-item textarea:focus::placeholder,.webform-formkit .formkit-outer input[elementtype=date]:focus::placeholder,.webform-formkit .formkit-outer input[type=date]:focus::placeholder,.webform-formkit .formkit-outer input[type=email]:focus::placeholder,.webform-formkit .formkit-outer input[type=mask]:focus::placeholder,.webform-formkit .formkit-outer input[type=number]:focus::placeholder,.webform-formkit .formkit-outer input[type=tel]:focus::placeholder,.webform-formkit .formkit-outer input[type=text]:focus::placeholder,.webform-formkit .formkit-outer input[type=time]:focus::placeholder,.webform-formkit .formkit-outer input[type=url]:focus::placeholder,.webform-formkit .formkit-outer select:focus::placeholder,.webform-formkit .formkit-outer textarea:focus::placeholder{opacity:.5}.bef-exposed-form .form-item input[elementtype=date].form-item--error input,.bef-exposed-form .form-item input[elementtype=date].form-item--error select,.bef-exposed-form .form-item input[elementtype=date].form-item--error textarea,.bef-exposed-form .form-item input[type=date].form-item--error input,.bef-exposed-form .form-item input[type=date].form-item--error select,.bef-exposed-form .form-item input[type=date].form-item--error textarea,.bef-exposed-form .form-item input[type=email].form-item--error input,.bef-exposed-form .form-item input[type=email].form-item--error select,.bef-exposed-form .form-item input[type=email].form-item--error textarea,.bef-exposed-form .form-item input[type=mask].form-item--error input,.bef-exposed-form .form-item input[type=mask].form-item--error select,.bef-exposed-form .form-item input[type=mask].form-item--error textarea,.bef-exposed-form .form-item input[type=number].form-item--error input,.bef-exposed-form .form-item input[type=number].form-item--error select,.bef-exposed-form .form-item input[type=number].form-item--error textarea,.bef-exposed-form .form-item input[type=tel].form-item--error input,.bef-exposed-form .form-item input[type=tel].form-item--error select,.bef-exposed-form .form-item input[type=tel].form-item--error textarea,.bef-exposed-form .form-item input[type=text].form-item--error input,.bef-exposed-form .form-item input[type=text].form-item--error select,.bef-exposed-form .form-item input[type=text].form-item--error textarea,.bef-exposed-form .form-item input[type=time].form-item--error input,.bef-exposed-form .form-item input[type=time].form-item--error select,.bef-exposed-form .form-item input[type=time].form-item--error textarea,.bef-exposed-form .form-item input[type=url].form-item--error input,.bef-exposed-form .form-item input[type=url].form-item--error select,.bef-exposed-form .form-item input[type=url].form-item--error textarea,.bef-exposed-form .form-item select.form-item--error input,.bef-exposed-form .form-item select.form-item--error select,.bef-exposed-form .form-item select.form-item--error textarea,.bef-exposed-form .form-item textarea.form-item--error input,.bef-exposed-form .form-item textarea.form-item--error select,.bef-exposed-form .form-item textarea.form-item--error textarea,.bef-exposed-form .formkit-outer input[elementtype=date].form-item--error input,.bef-exposed-form .formkit-outer input[elementtype=date].form-item--error select,.bef-exposed-form .formkit-outer input[elementtype=date].form-item--error textarea,.bef-exposed-form .formkit-outer input[type=date].form-item--error input,.bef-exposed-form .formkit-outer input[type=date].form-item--error select,.bef-exposed-form .formkit-outer input[type=date].form-item--error textarea,.bef-exposed-form .formkit-outer input[type=email].form-item--error input,.bef-exposed-form .formkit-outer input[type=email].form-item--error select,.bef-exposed-form .formkit-outer input[type=email].form-item--error textarea,.bef-exposed-form .formkit-outer input[type=mask].form-item--error input,.bef-exposed-form .formkit-outer input[type=mask].form-item--error select,.bef-exposed-form .formkit-outer input[type=mask].form-item--error textarea,.bef-exposed-form .formkit-outer input[type=number].form-item--error input,.bef-exposed-form .formkit-outer input[type=number].form-item--error select,.bef-exposed-form .formkit-outer input[type=number].form-item--error textarea,.bef-exposed-form .formkit-outer input[type=tel].form-item--error input,.bef-exposed-form .formkit-outer input[type=tel].form-item--error select,.bef-exposed-form .formkit-outer input[type=tel].form-item--error textarea,.bef-exposed-form .formkit-outer input[type=text].form-item--error input,.bef-exposed-form .formkit-outer input[type=text].form-item--error select,.bef-exposed-form .formkit-outer input[type=text].form-item--error textarea,.bef-exposed-form .formkit-outer input[type=time].form-item--error input,.bef-exposed-form .formkit-outer input[type=time].form-item--error select,.bef-exposed-form .formkit-outer input[type=time].form-item--error textarea,.bef-exposed-form .formkit-outer input[type=url].form-item--error input,.bef-exposed-form .formkit-outer input[type=url].form-item--error select,.bef-exposed-form .formkit-outer input[type=url].form-item--error textarea,.bef-exposed-form .formkit-outer select.form-item--error input,.bef-exposed-form .formkit-outer select.form-item--error select,.bef-exposed-form .formkit-outer select.form-item--error textarea,.bef-exposed-form .formkit-outer textarea.form-item--error input,.bef-exposed-form .formkit-outer textarea.form-item--error select,.bef-exposed-form .formkit-outer textarea.form-item--error textarea,.webform .form-item input[elementtype=date].form-item--error input,.webform .form-item input[elementtype=date].form-item--error select,.webform .form-item input[elementtype=date].form-item--error textarea,.webform .form-item input[type=date].form-item--error input,.webform .form-item input[type=date].form-item--error select,.webform .form-item input[type=date].form-item--error textarea,.webform .form-item input[type=email].form-item--error input,.webform .form-item input[type=email].form-item--error select,.webform .form-item input[type=email].form-item--error textarea,.webform .form-item input[type=mask].form-item--error input,.webform .form-item input[type=mask].form-item--error select,.webform .form-item input[type=mask].form-item--error textarea,.webform .form-item input[type=number].form-item--error input,.webform .form-item input[type=number].form-item--error select,.webform .form-item input[type=number].form-item--error textarea,.webform .form-item input[type=tel].form-item--error input,.webform .form-item input[type=tel].form-item--error select,.webform .form-item input[type=tel].form-item--error textarea,.webform .form-item input[type=text].form-item--error input,.webform .form-item input[type=text].form-item--error select,.webform .form-item input[type=text].form-item--error textarea,.webform .form-item input[type=time].form-item--error input,.webform .form-item input[type=time].form-item--error select,.webform .form-item input[type=time].form-item--error textarea,.webform .form-item input[type=url].form-item--error input,.webform .form-item input[type=url].form-item--error select,.webform .form-item input[type=url].form-item--error textarea,.webform .form-item select.form-item--error input,.webform .form-item select.form-item--error select,.webform .form-item select.form-item--error textarea,.webform .form-item textarea.form-item--error input,.webform .form-item textarea.form-item--error select,.webform .form-item textarea.form-item--error textarea,.webform .formkit-outer input[elementtype=date].form-item--error input,.webform .formkit-outer input[elementtype=date].form-item--error select,.webform .formkit-outer input[elementtype=date].form-item--error textarea,.webform .formkit-outer input[type=date].form-item--error input,.webform .formkit-outer input[type=date].form-item--error select,.webform .formkit-outer input[type=date].form-item--error textarea,.webform .formkit-outer input[type=email].form-item--error input,.webform .formkit-outer input[type=email].form-item--error select,.webform .formkit-outer input[type=email].form-item--error textarea,.webform .formkit-outer input[type=mask].form-item--error input,.webform .formkit-outer input[type=mask].form-item--error select,.webform .formkit-outer input[type=mask].form-item--error textarea,.webform .formkit-outer input[type=number].form-item--error input,.webform .formkit-outer input[type=number].form-item--error select,.webform .formkit-outer input[type=number].form-item--error textarea,.webform .formkit-outer input[type=tel].form-item--error input,.webform .formkit-outer input[type=tel].form-item--error select,.webform .formkit-outer input[type=tel].form-item--error textarea,.webform .formkit-outer input[type=text].form-item--error input,.webform .formkit-outer input[type=text].form-item--error select,.webform .formkit-outer input[type=text].form-item--error textarea,.webform .formkit-outer input[type=time].form-item--error input,.webform .formkit-outer input[type=time].form-item--error select,.webform .formkit-outer input[type=time].form-item--error textarea,.webform .formkit-outer input[type=url].form-item--error input,.webform .formkit-outer input[type=url].form-item--error select,.webform .formkit-outer input[type=url].form-item--error textarea,.webform .formkit-outer select.form-item--error input,.webform .formkit-outer select.form-item--error select,.webform .formkit-outer select.form-item--error textarea,.webform .formkit-outer textarea.form-item--error input,.webform .formkit-outer textarea.form-item--error select,.webform .formkit-outer textarea.form-item--error textarea,.webform-formkit .form-item input[elementtype=date].form-item--error input,.webform-formkit .form-item input[elementtype=date].form-item--error select,.webform-formkit .form-item input[elementtype=date].form-item--error textarea,.webform-formkit .form-item input[type=date].form-item--error input,.webform-formkit .form-item input[type=date].form-item--error select,.webform-formkit .form-item input[type=date].form-item--error textarea,.webform-formkit .form-item input[type=email].form-item--error input,.webform-formkit .form-item input[type=email].form-item--error select,.webform-formkit .form-item input[type=email].form-item--error textarea,.webform-formkit .form-item input[type=mask].form-item--error input,.webform-formkit .form-item input[type=mask].form-item--error select,.webform-formkit .form-item input[type=mask].form-item--error textarea,.webform-formkit .form-item input[type=number].form-item--error input,.webform-formkit .form-item input[type=number].form-item--error select,.webform-formkit .form-item input[type=number].form-item--error textarea,.webform-formkit .form-item input[type=tel].form-item--error input,.webform-formkit .form-item input[type=tel].form-item--error select,.webform-formkit .form-item input[type=tel].form-item--error textarea,.webform-formkit .form-item input[type=text].form-item--error input,.webform-formkit .form-item input[type=text].form-item--error select,.webform-formkit .form-item input[type=text].form-item--error textarea,.webform-formkit .form-item input[type=time].form-item--error input,.webform-formkit .form-item input[type=time].form-item--error select,.webform-formkit .form-item input[type=time].form-item--error textarea,.webform-formkit .form-item input[type=url].form-item--error input,.webform-formkit .form-item input[type=url].form-item--error select,.webform-formkit .form-item input[type=url].form-item--error textarea,.webform-formkit .form-item select.form-item--error input,.webform-formkit .form-item select.form-item--error select,.webform-formkit .form-item select.form-item--error textarea,.webform-formkit .form-item textarea.form-item--error input,.webform-formkit .form-item textarea.form-item--error select,.webform-formkit .form-item textarea.form-item--error textarea,.webform-formkit .formkit-outer input[elementtype=date].form-item--error input,.webform-formkit .formkit-outer input[elementtype=date].form-item--error select,.webform-formkit .formkit-outer input[elementtype=date].form-item--error textarea,.webform-formkit .formkit-outer input[type=date].form-item--error input,.webform-formkit .formkit-outer input[type=date].form-item--error select,.webform-formkit .formkit-outer input[type=date].form-item--error textarea,.webform-formkit .formkit-outer input[type=email].form-item--error input,.webform-formkit .formkit-outer input[type=email].form-item--error select,.webform-formkit .formkit-outer input[type=email].form-item--error textarea,.webform-formkit .formkit-outer input[type=mask].form-item--error input,.webform-formkit .formkit-outer input[type=mask].form-item--error select,.webform-formkit .formkit-outer input[type=mask].form-item--error textarea,.webform-formkit .formkit-outer input[type=number].form-item--error input,.webform-formkit .formkit-outer input[type=number].form-item--error select,.webform-formkit .formkit-outer input[type=number].form-item--error textarea,.webform-formkit .formkit-outer input[type=tel].form-item--error input,.webform-formkit .formkit-outer input[type=tel].form-item--error select,.webform-formkit .formkit-outer input[type=tel].form-item--error textarea,.webform-formkit .formkit-outer input[type=text].form-item--error input,.webform-formkit .formkit-outer input[type=text].form-item--error select,.webform-formkit .formkit-outer input[type=text].form-item--error textarea,.webform-formkit .formkit-outer input[type=time].form-item--error input,.webform-formkit .formkit-outer input[type=time].form-item--error select,.webform-formkit .formkit-outer input[type=time].form-item--error textarea,.webform-formkit .formkit-outer input[type=url].form-item--error input,.webform-formkit .formkit-outer input[type=url].form-item--error select,.webform-formkit .formkit-outer input[type=url].form-item--error textarea,.webform-formkit .formkit-outer select.form-item--error input,.webform-formkit .formkit-outer select.form-item--error select,.webform-formkit .formkit-outer select.form-item--error textarea,.webform-formkit .formkit-outer textarea.form-item--error input,.webform-formkit .formkit-outer textarea.form-item--error select,.webform-formkit .formkit-outer textarea.form-item--error textarea{border-color:var(--f-error-color)}.bef-exposed-form .form-item input[type=date],.bef-exposed-form .form-item input[type=email],.bef-exposed-form .form-item input[type=mask],.bef-exposed-form .form-item input[type=number],.bef-exposed-form .form-item input[type=tel],.bef-exposed-form .form-item input[type=text],.bef-exposed-form .form-item input[type=time],.bef-exposed-form .form-item input[type=url],.bef-exposed-form .form-item select,.bef-exposed-form .formkit-outer input[type=date],.bef-exposed-form .formkit-outer input[type=email],.bef-exposed-form .formkit-outer input[type=mask],.bef-exposed-form .formkit-outer input[type=number],.bef-exposed-form .formkit-outer input[type=tel],.bef-exposed-form .formkit-outer input[type=text],.bef-exposed-form .formkit-outer input[type=time],.bef-exposed-form .formkit-outer input[type=url],.bef-exposed-form .formkit-outer select,.webform .form-item input[type=date],.webform .form-item input[type=email],.webform .form-item input[type=mask],.webform .form-item input[type=number],.webform .form-item input[type=tel],.webform .form-item input[type=text],.webform .form-item input[type=time],.webform .form-item input[type=url],.webform .form-item select,.webform .formkit-outer input[type=date],.webform .formkit-outer input[type=email],.webform .formkit-outer input[type=mask],.webform .formkit-outer input[type=number],.webform .formkit-outer input[type=tel],.webform .formkit-outer input[type=text],.webform .formkit-outer input[type=time],.webform .formkit-outer input[type=url],.webform .formkit-outer select,.webform-formkit .form-item input[type=date],.webform-formkit .form-item input[type=email],.webform-formkit .form-item input[type=mask],.webform-formkit .form-item input[type=number],.webform-formkit .form-item input[type=tel],.webform-formkit .form-item input[type=text],.webform-formkit .form-item input[type=time],.webform-formkit .form-item input[type=url],.webform-formkit .form-item select,.webform-formkit .formkit-outer input[type=date],.webform-formkit .formkit-outer input[type=email],.webform-formkit .formkit-outer input[type=mask],.webform-formkit .formkit-outer input[type=number],.webform-formkit .formkit-outer input[type=tel],.webform-formkit .formkit-outer input[type=text],.webform-formkit .formkit-outer input[type=time],.webform-formkit .formkit-outer input[type=url],.webform-formkit .formkit-outer select{height:var(--f-input-height);line-height:1.1}.bef-exposed-form .form-item input[type=date],.bef-exposed-form .form-item input[type=time],.bef-exposed-form .formkit-outer input[type=date],.bef-exposed-form .formkit-outer input[type=time],.webform .form-item input[type=date],.webform .form-item input[type=time],.webform .formkit-outer input[type=date],.webform .formkit-outer input[type=time],.webform-formkit .form-item input[type=date],.webform-formkit .form-item input[type=time],.webform-formkit .formkit-outer input[type=date],.webform-formkit .formkit-outer input[type=time]{display:block;line-height:1.5em;min-width:15rem}.bef-exposed-form .form-item input[type=date],.bef-exposed-form .formkit-outer input[type=date],.webform .form-item input[type=date],.webform .formkit-outer input[type=date],.webform-formkit .form-item input[type=date],.webform-formkit .formkit-outer input[type=date]{display:flex;text-align:left}.bef-exposed-form .form-item input::-webkit-date-and-time-value,.bef-exposed-form .formkit-outer input::-webkit-date-and-time-value,.webform .form-item input::-webkit-date-and-time-value,.webform .formkit-outer input::-webkit-date-and-time-value,.webform-formkit .form-item input::-webkit-date-and-time-value,.webform-formkit .formkit-outer input::-webkit-date-and-time-value{text-align:left}.bef-exposed-form .form-item .formkit-label,.bef-exposed-form .form-item>label,.bef-exposed-form .formkit-outer .formkit-label,.bef-exposed-form .formkit-outer>label,.webform .form-item .formkit-label,.webform .form-item>label,.webform .formkit-outer .formkit-label,.webform .formkit-outer>label,.webform-formkit .form-item .formkit-label,.webform-formkit .form-item>label,.webform-formkit .formkit-outer .formkit-label,.webform-formkit .formkit-outer>label{display:inline-block;margin-bottom:var(--f-label-margin-bottom);padding-right:.6em}.bef-exposed-form .form-item .formkit-label .info-tooltip,.bef-exposed-form .form-item>label .info-tooltip,.bef-exposed-form .formkit-outer .formkit-label .info-tooltip,.bef-exposed-form .formkit-outer>label .info-tooltip,.webform .form-item .formkit-label .info-tooltip,.webform .form-item>label .info-tooltip,.webform .formkit-outer .formkit-label .info-tooltip,.webform .formkit-outer>label .info-tooltip,.webform-formkit .form-item .formkit-label .info-tooltip,.webform-formkit .form-item>label .info-tooltip,.webform-formkit .formkit-outer .formkit-label .info-tooltip,.webform-formkit .formkit-outer>label .info-tooltip{display:inline-block;margin-left:.25em;position:relative;top:.3rem}.bef-exposed-form .form-item select,.bef-exposed-form .formkit-outer select,.webform .form-item select,.webform .formkit-outer select,.webform-formkit .form-item select,.webform-formkit .formkit-outer select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 12 7'%3E%3Cpath fill='currentColor' fill-rule='evenodd' d='M.244.244a.833.833 0 0 1 1.179 0l4.41 4.41 4.411-4.41a.833.833 0 1 1 1.179 1.179l-5 5a.833.833 0 0 1-1.179 0l-5-5a.833.833 0 0 1 0-1.179' clip-rule='evenodd'/%3E%3C/svg%3E");background-position:calc(100% - 1rem);background-repeat:no-repeat;background-size:.7em;cursor:pointer;min-width:12rem;padding-right:3rem}.bef-exposed-form .form-item textarea,.bef-exposed-form .formkit-outer textarea,.webform .form-item textarea,.webform .formkit-outer textarea,.webform-formkit .form-item textarea,.webform-formkit .formkit-outer textarea{display:flex}.bef-exposed-form .form-actions button[type=submit],.bef-exposed-form .form-actions input[type=submit],.bef-exposed-form .formkit-actions button[type=submit],.bef-exposed-form .formkit-actions input[type=submit],.bef-exposed-form .formkit-outer button[type=submit],.bef-exposed-form .formkit-outer input[type=submit],.webform .form-actions button[type=submit],.webform .form-actions input[type=submit],.webform .formkit-actions button[type=submit],.webform .formkit-actions input[type=submit],.webform .formkit-outer button[type=submit],.webform .formkit-outer input[type=submit],.webform-formkit .form-actions button[type=submit],.webform-formkit .form-actions input[type=submit],.webform-formkit .formkit-actions button[type=submit],.webform-formkit .formkit-actions input[type=submit],.webform-formkit .formkit-outer button[type=submit],.webform-formkit .formkit-outer input[type=submit]{appearance:none;background-color:var(--f-submit-btn-background-color);border-color:var(--f-submit-btn-border-color);border-radius:var(--f-submit-btn-border-radius);border-width:var(--f-submit-btn-border-width);box-shadow:none;color:var(--f-submit-btn-text-color);cursor:pointer;font-family:var(--f-submit-btn-font-family);min-height:var(--f-submit-btn-min-height);min-width:var(--f-submit-btn-min-width);outline:none;width:auto}.bef-exposed-form .form-actions button[type=submit]:active,.bef-exposed-form .form-actions button[type=submit]:focus,.bef-exposed-form .form-actions button[type=submit]:hover,.bef-exposed-form .form-actions input[type=submit]:active,.bef-exposed-form .form-actions input[type=submit]:focus,.bef-exposed-form .form-actions input[type=submit]:hover,.bef-exposed-form .formkit-actions button[type=submit]:active,.bef-exposed-form .formkit-actions button[type=submit]:focus,.bef-exposed-form .formkit-actions button[type=submit]:hover,.bef-exposed-form .formkit-actions input[type=submit]:active,.bef-exposed-form .formkit-actions input[type=submit]:focus,.bef-exposed-form .formkit-actions input[type=submit]:hover,.bef-exposed-form .formkit-outer button[type=submit]:active,.bef-exposed-form .formkit-outer button[type=submit]:focus,.bef-exposed-form .formkit-outer button[type=submit]:hover,.bef-exposed-form .formkit-outer input[type=submit]:active,.bef-exposed-form .formkit-outer input[type=submit]:focus,.bef-exposed-form .formkit-outer input[type=submit]:hover,.webform .form-actions button[type=submit]:active,.webform .form-actions button[type=submit]:focus,.webform .form-actions button[type=submit]:hover,.webform .form-actions input[type=submit]:active,.webform .form-actions input[type=submit]:focus,.webform .form-actions input[type=submit]:hover,.webform .formkit-actions button[type=submit]:active,.webform .formkit-actions button[type=submit]:focus,.webform .formkit-actions button[type=submit]:hover,.webform .formkit-actions input[type=submit]:active,.webform .formkit-actions input[type=submit]:focus,.webform .formkit-actions input[type=submit]:hover,.webform .formkit-outer button[type=submit]:active,.webform .formkit-outer button[type=submit]:focus,.webform .formkit-outer button[type=submit]:hover,.webform .formkit-outer input[type=submit]:active,.webform .formkit-outer input[type=submit]:focus,.webform .formkit-outer input[type=submit]:hover,.webform-formkit .form-actions button[type=submit]:active,.webform-formkit .form-actions button[type=submit]:focus,.webform-formkit .form-actions button[type=submit]:hover,.webform-formkit .form-actions input[type=submit]:active,.webform-formkit .form-actions input[type=submit]:focus,.webform-formkit .form-actions input[type=submit]:hover,.webform-formkit .formkit-actions button[type=submit]:active,.webform-formkit .formkit-actions button[type=submit]:focus,.webform-formkit .formkit-actions button[type=submit]:hover,.webform-formkit .formkit-actions input[type=submit]:active,.webform-formkit .formkit-actions input[type=submit]:focus,.webform-formkit .formkit-actions input[type=submit]:hover,.webform-formkit .formkit-outer button[type=submit]:active,.webform-formkit .formkit-outer button[type=submit]:focus,.webform-formkit .formkit-outer button[type=submit]:hover,.webform-formkit .formkit-outer input[type=submit]:active,.webform-formkit .formkit-outer input[type=submit]:focus,.webform-formkit .formkit-outer input[type=submit]:hover{background-color:var(--f-submit-btn-hover-background-color);border-color:var(--f-submit-btn-hover-border-color);color:var(--f-submit-btn-hover-text-color)}.bef-exposed-form .form-actions button[type=submit]:disabled,.bef-exposed-form .form-actions input[type=submit]:disabled,.bef-exposed-form .formkit-actions button[type=submit]:disabled,.bef-exposed-form .formkit-actions input[type=submit]:disabled,.bef-exposed-form .formkit-outer button[type=submit]:disabled,.bef-exposed-form .formkit-outer input[type=submit]:disabled,.webform .form-actions button[type=submit]:disabled,.webform .form-actions input[type=submit]:disabled,.webform .formkit-actions button[type=submit]:disabled,.webform .formkit-actions input[type=submit]:disabled,.webform .formkit-outer button[type=submit]:disabled,.webform .formkit-outer input[type=submit]:disabled,.webform-formkit .form-actions button[type=submit]:disabled,.webform-formkit .form-actions input[type=submit]:disabled,.webform-formkit .formkit-actions button[type=submit]:disabled,.webform-formkit .formkit-actions input[type=submit]:disabled,.webform-formkit .formkit-outer button[type=submit]:disabled,.webform-formkit .formkit-outer input[type=submit]:disabled{background-color:var(--f-submit-btn-disabled-background-color);opacity:.5;pointer-events:none}.bef-exposed-form .checkboxes--wrapper .form-item--checkbox,.webform .checkboxes--wrapper .form-item--checkbox,.webform-formkit .checkboxes--wrapper .form-item--checkbox{margin-bottom:var(--f-radio-check-padding-bottom)}.bef-exposed-form .webform-element-help,.webform .webform-element-help,.webform-formkit .webform-element-help{background-color:var(--f-help-background-color);border-color:var(--f-help-border-color);color:var(--f-help-color);font-size:1rem;font-weight:400;height:1.5rem;line-height:1.2rem;position:relative;top:-2px;width:1.5rem}.bef-exposed-form .form-text,.bef-exposed-form .form-textarea,.webform .form-text,.webform .form-textarea,.webform-formkit .form-text,.webform-formkit .form-textarea{width:100%}.bef-exposed-form .form-textarea,.webform .form-textarea,.webform-formkit .form-textarea{resize:none}.bef-exposed-form .form-number::-webkit-inner-spin-button,.webform .form-number::-webkit-inner-spin-button,.webform-formkit .form-number::-webkit-inner-spin-button{appearance:none}.bef-exposed-form .formkit-help,.bef-exposed-form .webform-element-description,.webform .formkit-help,.webform .webform-element-description,.webform-formkit .formkit-help,.webform-formkit .webform-element-description{color:var(--f-description-color);font-size:1.4rem;font-style:italic;margin-top:.5em}.bef-exposed-form .formkit-help *,.bef-exposed-form .webform-element-description *,.webform .formkit-help *,.webform .webform-element-description *,.webform-formkit .formkit-help *,.webform-formkit .webform-element-description *{font-size:1.4rem}.bef-exposed-form .form-required:after,.webform .form-required:after,.webform-formkit .form-required:after{content:"*"}.bef-exposed-form .fieldset-legend,.webform .fieldset-legend,.webform-formkit .fieldset-legend{display:block;font-weight:700;margin-bottom:1em}.bef-exposed-form .formkit-form,.bef-exposed-form fieldset,.webform .formkit-form,.webform fieldset,.webform-formkit .formkit-form,.webform-formkit fieldset{display:grid;gap:var(--f-form-gap)}.bef-exposed-form fieldset,.webform fieldset,.webform-formkit fieldset{border-color:var(--f-input-border-color);border-radius:var(--f-input-border-radius);border-width:var(--f-input-border-width);padding:1.5rem}.bef-exposed-form fieldset legend,.webform fieldset legend,.webform-formkit fieldset legend{font-family:var(--f-input-font-family);font-size:1em}.bef-exposed-form .checkboxes--wrapper,.bef-exposed-form .form-item,.bef-exposed-form .form-item--checkbox,.bef-exposed-form .form-item--date,.bef-exposed-form .form-item--email,.bef-exposed-form .form-item--number,.bef-exposed-form .form-item--select,.bef-exposed-form .form-item--tel,.bef-exposed-form .form-item--textarea,.bef-exposed-form .form-item--textfield,.bef-exposed-form .form-item--webform-markup,.bef-exposed-form .form-item--webform-time,.bef-exposed-form .radios--wrapper,.webform .checkboxes--wrapper,.webform .form-item,.webform .form-item--checkbox,.webform .form-item--date,.webform .form-item--email,.webform .form-item--number,.webform .form-item--select,.webform .form-item--tel,.webform .form-item--textarea,.webform .form-item--textfield,.webform .form-item--webform-markup,.webform .form-item--webform-time,.webform .radios--wrapper,.webform-formkit .checkboxes--wrapper,.webform-formkit .form-item,.webform-formkit .form-item--checkbox,.webform-formkit .form-item--date,.webform-formkit .form-item--email,.webform-formkit .form-item--number,.webform-formkit .form-item--select,.webform-formkit .form-item--tel,.webform-formkit .form-item--textarea,.webform-formkit .form-item--textfield,.webform-formkit .form-item--webform-markup,.webform-formkit .form-item--webform-time,.webform-formkit .radios--wrapper{margin-top:var(--f-form-gap)}.bef-exposed-form .form-item--datetime .form-item--date,.webform .form-item--datetime .form-item--date,.webform-formkit .form-item--datetime .form-item--date{margin-right:1rem}.bef-exposed-form .fieldgroup,.webform .fieldgroup,.webform-formkit .fieldgroup{margin:0!important}.bef-exposed-form .form-actions,.bef-exposed-form .webform-actions,.webform .form-actions,.webform .webform-actions,.webform-formkit .form-actions,.webform-formkit .webform-actions{margin-top:2rem}.bef-exposed-form .formkit-messages,.webform .formkit-messages,.webform-formkit .formkit-messages{color:var(--f-error-color);font-size:1.4rem;list-style-type:none;margin:.5rem 0 0;padding:0}.bef-exposed-form .webform-flexbox,.webform .webform-flexbox,.webform-formkit .webform-flexbox{width:100%}@media (--bp-min-medium ){.bef-exposed-form .webform-flexbox,.webform .webform-flexbox,.webform-formkit .webform-flexbox{margin:0 -.5em;width:auto}}.bef-exposed-form .webform-flexbox .webform-flexbox,.webform .webform-flexbox .webform-flexbox,.webform-formkit .webform-flexbox .webform-flexbox{margin:0;padding-bottom:0}.bef-exposed-form .webform-flexbox .webform-flex,.webform .webform-flexbox .webform-flex,.webform-formkit .webform-flexbox .webform-flex{margin:0}.bef-exposed-form .webform-flexbox .webform-flex .fieldgroup,.webform .webform-flexbox .webform-flex .fieldgroup,.webform-formkit .webform-flexbox .webform-flex .fieldgroup{padding-bottom:0}.bef-exposed-form .webform-flexbox .webform-flex .fieldset-wrapper,.webform .webform-flexbox .webform-flex .fieldset-wrapper,.webform-formkit .webform-flexbox .webform-flex .fieldset-wrapper{margin:0 -.5em}.bef-exposed-form hr,.webform hr,.webform-formkit hr{width:100%}.bef-exposed-form .form-item--error-message,.webform .form-item--error-message,.webform-formkit .form-item--error-message{color:var(--f-error-color);font-size:1.2rem;margin-top:.3em}.bef-exposed-form .captcha,.webform .captcha,.webform-formkit .captcha{border:0;margin:0;margin-bottom:var(--f-form-gap);padding:0}.bef-exposed-form .captcha__title,.webform .captcha__title,.webform-formkit .captcha__title{display:none}.bef-exposed-form .captcha__description,.webform .captcha__description,.webform-formkit .captcha__description{font-size:1.2rem;margin-top:.5rem;max-width:40rem}.webform-formkit{position:relative}.webform-formkit .formkit-outer[data-type=recaptcha] .formkit-label{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;width:1px;z-index:-1}.webform-formkit .webform-formkit__errors{color:var(--f-error-color);display:grid;gap:.5rem;margin-top:.3em}.webform-formkit .formkit-outer[data-type=actionSelect] .formkit-wrapper,.webform-formkit .formkit-outer[data-type=checkbox] .formkit-wrapper,.webform-formkit .formkit-outer[data-type=radio] .formkit-wrapper{align-items:flex-start;display:flex;margin:0;padding:0}.webform-formkit .formkit-outer[data-type=actionSelect] .formkit-fieldset,.webform-formkit .formkit-outer[data-type=checkbox] .formkit-fieldset,.webform-formkit .formkit-outer[data-type=radio] .formkit-fieldset{border:0;display:flex;flex-direction:column;gap:0;margin:0;padding:0}.webform-formkit .formkit-outer[data-type=actionSelect] .formkit-legend,.webform-formkit .formkit-outer[data-type=checkbox] .formkit-legend,.webform-formkit .formkit-outer[data-type=radio] .formkit-legend{display:block;font-weight:400;font-weight:700;margin-bottom:var(--f-label-margin-bottom);padding-right:.6em;text-transform:none;width:fit-content}.webform-formkit .formkit-outer[data-type=actionSelect] .formkit-label,.webform-formkit .formkit-outer[data-type=checkbox] .formkit-label,.webform-formkit .formkit-outer[data-type=radio] .formkit-label{cursor:pointer;font-weight:400;margin-bottom:0;margin-left:1em;margin-top:.1em}.webform-formkit .formkit-outer[data-type=actionSelect] .formkit-options,.webform-formkit .formkit-outer[data-type=checkbox] .formkit-options,.webform-formkit .formkit-outer[data-type=radio] .formkit-options{list-style-type:none;margin:0;order:-1;padding:0}.webform-formkit .formkit-outer[data-type=actionSelect] .formkit-option,.webform-formkit .formkit-outer[data-type=checkbox] .formkit-option,.webform-formkit .formkit-outer[data-type=radio] .formkit-option{margin-top:.5rem}.webform-formkit .formkit-outer[data-type=actionSelect] .formkit-option:first-of-type,.webform-formkit .formkit-outer[data-type=checkbox] .formkit-option:first-of-type,.webform-formkit .formkit-outer[data-type=radio] .formkit-option:first-of-type{margin-top:0}.webform-formkit .formkit-outer[data-type=actionSelect] .formkit-input,.webform-formkit .formkit-outer[data-type=checkbox] .formkit-input,.webform-formkit .formkit-outer[data-type=radio] .formkit-input{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;width:1px;z-index:-1}.webform-formkit .formkit-outer[data-type=actionSelect] .formkit-option-help,.webform-formkit .formkit-outer[data-type=checkbox] .formkit-option-help,.webform-formkit .formkit-outer[data-type=radio] .formkit-option-help{font-size:1.4rem;font-style:italic;margin-bottom:var(--f-label-margin-bottom);margin-left:4.2rem;margin-top:calc(var(--f-label-margin-bottom)*-1 + .4em)}.webform-formkit .formkit-outer[data-type=actionSelect] .formkit-decorator,.webform-formkit .formkit-outer[data-type=checkbox] .formkit-decorator,.webform-formkit .formkit-outer[data-type=radio] .formkit-decorator{--width:var(--f-radio-check-decorater-height);align-items:center;background-color:var(--f-radio-check-background-color);border:var(--f-submit-btn-border-width) solid var(--f-radio-check-border-color);border-radius:.4rem;cursor:pointer;display:flex;height:var(--width);justify-content:center;margin:0;min-width:var(--width);width:var(--width)}.webform-formkit .formkit-outer[data-type=actionSelect] .formkit-decorator:before,.webform-formkit .formkit-outer[data-type=checkbox] .formkit-decorator:before,.webform-formkit .formkit-outer[data-type=radio] .formkit-decorator:before{--width:calc(var(--f-radio-check-decorater-height) - 0.5em);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 14 11'%3E%3Cpath fill='currentColor' d='M4.896 11 0 5.786l1.224-1.304 3.672 3.91L12.776 0 14 1.304z'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:contain;content:"";height:var(--width);transform:scale(0);transform-origin:center;transition:transform .15s ease;width:var(--width)}.webform-formkit .formkit-outer[data-type=actionSelect] .formkit-input:focus+.formkit-decorator,.webform-formkit .formkit-outer[data-type=checkbox] .formkit-input:focus+.formkit-decorator,.webform-formkit .formkit-outer[data-type=radio] .formkit-input:focus+.formkit-decorator{outline:var(--input-outline)}.webform-formkit .formkit-outer[data-type=actionSelect] .formkit-input:checked+.formkit-decorator,.webform-formkit .formkit-outer[data-type=checkbox] .formkit-input:checked+.formkit-decorator,.webform-formkit .formkit-outer[data-type=radio] .formkit-input:checked+.formkit-decorator{background-color:var(--f-radio-check-background-color-active)}.webform-formkit .formkit-outer[data-type=actionSelect] .formkit-input:checked+.formkit-decorator:before,.webform-formkit .formkit-outer[data-type=checkbox] .formkit-input:checked+.formkit-decorator:before,.webform-formkit .formkit-outer[data-type=radio] .formkit-input:checked+.formkit-decorator:before{transform:scale(1)}.webform-formkit .formkit-outer[data-type=actionSelect]>.formkit-wrapper{display:block}.webform-formkit .formkit-outer[data-type=actionSelect]>.formkit-wrapper>.formkit-label{display:flex;margin:0}.webform-formkit .formkit-outer[data-type=radio]:not(.formkit-radio-toggle,.formkit-radio-buttons) .formkit-decorator{border-radius:var(--width)}.webform-formkit .formkit-outer[data-type=radio]:not(.formkit-radio-toggle,.formkit-radio-buttons) .formkit-decorator:before{--width:calc(var(--f-radio-check-decorater-height) - 0.8rem);background:none;background-color:var(--f-radio-check-background-color-active);border-radius:var(--width)}.webform-formkit .formkit-outer[data-type=radio]:not(.formkit-radio-toggle,.formkit-radio-buttons) .formkit-input:checked+.formkit-decorator{background-color:var(--f-radio-check-background-color)}.webform-formkit .formkit-optional{color:var(--f-input-placeholder-color);font-size:1em;margin-left:.25em}.webform-formkit .formkit-asterisk,.webform-formkit label.form-required:after{margin-left:.1em}.webform-formkit .webform-formkit__success{align-items:center;display:flex;flex-direction:column;text-align:center}.webform-formkit .webform-flexbox{display:flex;flex-direction:column;gap:var(--f-form-gap);margin:0}@media (--bp-min-medium ){.webform-formkit .webform-flexbox{align-items:flex-start;flex-direction:row}}.webform-formkit .webform-flexbox .formkit-outer{flex-grow:1;width:100%}.webform-formkit__loader{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0}.webform-formkit__loader .icon{color:var(--f-loader-color);font-size:5em}.webform-formkit--loading{min-height:10rem}.webform-formkit--loading .formkit-form{opacity:.25}.webform-formkit .formkit-step-inner{display:grid;gap:var(--f-form-gap)}.webform-formkit .formkit-step-actions{display:flex;gap:1rem;justify-content:space-between;margin-top:1.8rem}.webform-formkit .formkit-step-actions button:disabled{background-color:var(--f-submit-btn-disabled-background-color);opacity:.5;pointer-events:none}.webform-formkit .formkit-tabs{counter-reset:tabs;display:flex;justify-content:space-between}.webform-formkit .formkit-tab{appearance:none;background-color:transparent;border:0;color:var(--f-color);counter-increment:tabs;cursor:pointer;font-family:var(--f-input-font-family);font-size:.875em;padding-bottom:3.6rem;padding-top:4rem;position:relative;text-align:center}.webform-formkit .formkit-tab:before{align-items:center;background-color:var(--f-multistep-background-color-tab);border-radius:1.5rem;color:var(--f-multistep-color-tab);content:counter(tabs);display:flex;font-weight:700;height:3rem;justify-content:center;left:calc(50% - 1.5rem);position:absolute;top:0;width:3rem}.webform-formkit .formkit-tab[data-active=true]{font-weight:700}.webform-formkit .formkit-tab[data-active=true]:before,.webform-formkit .formkit-tab[data-valid=true][data-visited=true]:before{background-color:var(--f-multistep-background-color-tab-active);color:var(--f-multistep-color-tab-active)}.webform-formkit .formkit-tab[data-valid=true][data-visited=true] .formkit-badge{background-color:var(--f-success-color);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 14 11'%3E%3Cpath fill='currentColor' d='M4.896 11 0 5.786l1.224-1.304 3.672 3.91L12.776 0 14 1.304z'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:50%}.webform-formkit .formkit-tab .formkit-badge{align-items:center;background-color:var(--f-error-color);border-radius:1rem;color:#fff;display:flex;font-size:.75em;font-weight:700;height:2rem;justify-content:center;left:calc(50% + .5rem);position:absolute;top:-.5rem;width:2rem}
package/dist/index.js ADDED
@@ -0,0 +1 @@
1
+ import{ref as e,reactive as a,onMounted as o,computed as n,watch as d,nextTick as i,resolveComponent as c,openBlock as t,createElementBlock as l,normalizeClass as r,renderSlot as s,createCommentVNode as m,createVNode as u,toDisplayString as _,Fragment as f,renderList as p,createElementVNode as h,unref as v,withCtx as g,watchEffect as b,withDirectives as y,vModelSelect as S,createBlock as M}from"vue";import k from"gsap";import w from"gsap/ScrollToPlugin";import{createInput as A,plugin as T,defaultConfig as C,FormKitMessages as I}from"@formkit/vue";import{Tooltip as B}from"floating-vue";import{nl as G,en as P,fr as K}from"@formkit/i18n";import{createMultiStepPlugin as F}from"@formkit/addons";import L from"libphonenumber-js/mobile/examples";import N from"country-flag-icons/unicode";import{parsePhoneNumber as E,getExampleNumber as R}from"libphonenumber-js";import{IBAN as x}from"ibankit";import{countries as D,checkVAT as j}from"@accountable/jsvat";function $(e,...a){H(e)||Array.isArray(e)||(e={});for(const o of a)if(H(o)||Array.isArray(o))for(const a of Object.keys(o)){const n=o[a],d=e[a];Array.isArray(n)?Array.isArray(d)?e[a]=[...d,...n]:e[a]=[...n]:H(n)?(H(d)||(e[a]={}),e[a]=$(e[a],n)):e[a]=n}return e}const U=e=>null==e?[]:Object.keys(Object(e));function V(e,a){if(null==e)return{};Array.isArray(a)||(a=[a]);const o={};for(const n of a)n in e&&(o[n]=e[n]);return o}function O(e,...a){null==e&&(e={});for(const o of a)if(null!=o)for(const a of Object.keys(o)){const n=o[a],d=e[a];void 0===d?e[a]=n:H(d)&&H(n)&&O(d,n)}return e}function H(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)}function z(e){let a=!1;return(e||0===e)&&(a=!0),Array.isArray(e)&&(a=!0),a}var W={global:{editor:{error:"Check that the form has been completed correctly. Ensure that no unnecessary conditional fields have been filled in."}},nl:{messages:{missing:"Dit formulier ontbreekt. Controleer of het ID dat u gebruikt correct is.",error:"Er is iets misgegaan bij het laden van het formulier."},success:{title:"Bedankt!",message:"We hebben je gegevens goed ontvangen."}},en:{messages:{missing:"This form is missing. Please check that the ID you are using is correct.",error:"Something went wrong while loading the form."},success:{title:"Thank you!",message:"We have successfully received your information."}},fr:{messages:{missing:"Ce formulaire est manquant. Vérifiez que l'ID que vous utilisez est correct.",error:"Une erreur est survenue lors du chargement du formulaire."},success:{title:"Merci !",message:"Nous avons bien reçu vos informations."}}};const q={key:0,class:"webform-formkit__placeholder"},J={key:1},Z={key:2,class:"webform-formkit__loader"},Y={key:0,class:"webform-formkit__message"},Q={key:3,class:"webform-formkit__success"},X={key:0,class:"webform-formkit__succes-title"},ee=["innerHTML"],ae={key:4,class:"webform-formkit__errors"},oe=["innerHTML"];var ne={__name:"MinskyWebformFormKit",props:{id:{type:String,required:!0},api:{type:String,default:window.location.origin},classModifier:String,defaults:Object,schemeProcessor:Function,formDataAddons:Object,submitProcessor:Function,forceRedirect:{type:Object,default:()=>({bool:!1})},cmpLibrary:{type:Object,default:()=>({})},messages:{type:Object,default:()=>{}},setUserData:Function},emits:["success"],setup(h,{emit:v}){k.registerPlugin(w);const{lang:g}=document.documentElement,b=h,y=v,S=e(null),M=e(null),A=e({}),T=e({}),C=e(!0),I=e(!1),B=e(!1),G=e(null),P=e(null),K=e(null),F=e(null),L=e(!1),N=a({values:{}});o((()=>{T.value=Object.assign(W,b.messages),N.submit=async e=>{delete e.form_id,delete e.vApp,delete e.webformId,U(e).forEach((a=>{a.includes("captcha")&&(Object.assign(e,e[a]),delete e[a])})),async function(e){b.submitProcessor&&(e=b.submitProcessor(e));B.value=!0;const a=document.querySelector(".formkit-input[type=submit]");a&&(a.disabled=!0);const o=new URLSearchParams(window.location.search);o.append("schema","form_kit");const n=new FormData;for(const a in e)if(z(e[a]))if(Array.isArray(e[a]))e[a].length?e[a].forEach((e=>{"imageUpload"===this.$formkit.get(`${this.id}--${a}`).context.type?"object"==typeof e?N.append(`${a}[]`,_values(e)[0]):N.append(`${a}[]`,e):n.append(`${a}[]`,e)})):n.append(a,"");else if("string"==typeof e[a])if(2===e[a].indexOf("json_value")){const o=JSON.parse(e[a]).json_value;U(o).forEach((e=>{n.append(`${a}[${e}]`,o[e])}))}else n.append(a,e[a]);else n.append(a,e[a]);fetch(`${b.api}/webform/${b.id}/json/submission?${o.toString()}`,{method:"POST",body:n,query:window.location.search}).then((a=>{200===a.status?a.json().then((a=>{!function(e){if(b.forceRedirect.bool)window.location=b.forceRedirect.url;else switch(e.confirmation.type){case"inline":K.value=e.confirmation.title,P.value=e.confirmation.message,I.value=!0,k.to(window,{duration:.5,scrollTo:{y:S.value,offsetY:200},ease:"power2"}),B.value=!1;break;case"url":window.location=e.confirmation.url;break;default:K.value=T.value[g].success.title,P.value=T.value[g].success.message,I.value=!0,B.value=!1}y("success")}(a),b.setUserData&&b.setUserData(e)})):a.json().then((e=>{L.value=!0,B.value=!1,F.value=e.errors}))})).catch((()=>{L.value=!0,B.value=!1}))}(e=function(e){const a={};return function e(o,n=""){for(const d in o)Array.isArray(o[d])?a[d]=o[d]:"object"==typeof o[d]&&null!==o[d]?e(o[d],`${n+d}.`):a[d]=o[d]}(e),a}(e))},N.submitInvalid=()=>{k.to(window,{duration:.5,scrollTo:{y:S.value,offsetY:300},ease:"power2"})},async function(){const e=new URLSearchParams(window.location.search);e.append("schema","form_kit");try{const a=await fetch(`${b.api}/webform/${b.id}/json/schema?${e.toString()}`),o=await a.json();if(!a.ok)throw new Error(o.errors?o.errors.map((e=>e.message)).join(", "):"Unknown error");o.schema?(M.value=o.schema,b.schemeProcessor&&(M.value=b.schemeProcessor(o.schema)),A.value=o.values):(L.value=!0,F.value=[{message:T.value[g].messages.missing}])}catch(e){if(L.value=!0,window.drupalSettings){(window.drupalSettings.user.roles||[]).some((e=>["administrator","editor"].includes(e)))?F.value=[{message:e},{message:T.value.global.error}]:F.value=[{message:T.value[g].messages.error}]}else F.value=[{message:T.value[g].messages.error}];console.error(`Error fetching schema of form with ID ${b.id}:`,e)}finally{C.value=!1}}(),b.formDataAddons&&Object.assign(N,b.formDataAddons)}));const E=n((()=>U(N.values)));function R(){O(N.values,V(A.value,E.value)),b.defaults&&$(N.values,V(b.defaults,E.value))}return d(E,(async()=>{R(),await i();const e=S.value?.querySelector("form");e&&e.setAttribute("novalidate",!0)})),(e,a)=>{const o=c("FormKitSchema"),n=c("Icon");return t(),l("div",{ref_key:"formRef",ref:S,class:r(["webform-formkit",[{"webform-formkit--loading":B.value||C.value},`webform-formkit--${b.id}`,b.classModifier?`webform-formkit--${b.classModifier}`:null]])},[!C.value||I.value||L.value?m("v-if",!0):(t(),l("div",q,[s(e.$slots,"placeholder")])),C.value||I.value||L.value?m("v-if",!0):(t(),l("div",J,[u(o,{schema:M.value,data:N,library:b.cmpLibrary},null,8,["schema","data","library"]),s(e.$slots,"afterSchema")])),C.value||B.value?(t(),l("div",Z,[u(n,{loading:!0}),G.value?(t(),l("p",Y,_(G.value),1)):m("v-if",!0)])):m("v-if",!0),I.value?(t(),l("div",Q,[K.value?(t(),l("h5",X,_(K.value),1)):m("v-if",!0),P.value?(t(),l("div",{key:1,class:"webform-formkit__message",innerHTML:P.value},null,8,ee)):m("v-if",!0)])):m("v-if",!0),L.value?(t(),l("ul",ae,[(t(!0),l(f,null,p(F.value,(e=>(t(),l("li",{innerHTML:e.message},null,8,oe)))),256))])):m("v-if",!0)],2)}},__file:"src/components/MinksyWebformFormKit/MinskyWebformFormKit.vue"};const de={key:0,role:"img",id:"L9",version:"1.1",class:"icon-svg icon-svg--loader",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 100 100",1:"","enable-background":"new 0 0 0 0","xml:space":"preserve"},ie=["aria-hidden"],ce={key:0},te=["xlink:href"];var le={__name:"Icon",props:{name:{type:String,default:""},loading:{type:Boolean,default:!1},modifiers:{type:Array,default:()=>[]},ariaTitle:{type:String}},setup:e=>(a,o)=>(t(),l("span",{class:r(["icon",[""!==e.name?"icon--"+e.name:"",e.modifiers.length?"icon--"+e.modifiers.join(" icon--"):""]])},[e.loading?(t(),l("svg",de,[...o[0]||(o[0]=[h("title",null,"Loading",-1),h("path",{fill:"currentColor",d:"M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50"},[h("animateTransform",{attributeName:"transform",attributeType:"XML",type:"rotate",dur:"1s",from:"0 50 50",to:"360 50 50",repeatCount:"indefinite"})],-1)])])):(t(),l("svg",{key:1,role:"img",class:"icon__svg","aria-hidden":!e.ariaTitle},[e.ariaTitle?(t(),l("title",ce,_(e.ariaTitle),1)):m("v-if",!0),e.name?(t(),l("use",{key:1,"xlink:href":"#sprite-"+e.name},null,8,te)):m("v-if",!0)],8,ie))],2)),__file:"src/components/Icon.vue"};const re={class:"info-tooltip"},se=["innerHTML"];var me={__name:"InfoTooltip",props:["content"],setup(e){const a=e;return(e,o)=>{const n=c("Icon");return t(),l("span",re,[u(v(B),{triggers:["click","hover"]},{popper:g((()=>[h("div",{innerHTML:a.content},null,8,se)])),default:g((()=>[u(n,{name:"info"})])),_:1})])}},__file:"src/components/InfoTooltip.vue"};const ue=["checkbox_multi","radio_multi","repeater","transferlist"];const _e=[{name:"Afghanistan",dial_code:"+93",code:"AF"},{name:"Aland Islands",dial_code:"+358",code:"AX"},{name:"Albania",dial_code:"+355",code:"AL"},{name:"Algeria",dial_code:"+213",code:"DZ"},{name:"AmericanSamoa",dial_code:"+1684",code:"AS"},{name:"Andorra",dial_code:"+376",code:"AD"},{name:"Angola",dial_code:"+244",code:"AO"},{name:"Anguilla",dial_code:"+1264",code:"AI"},{name:"Antarctica",dial_code:"+672",code:"AQ"},{name:"Antigua and Barbuda",dial_code:"+1268",code:"AG"},{name:"Argentina",dial_code:"+54",code:"AR"},{name:"Armenia",dial_code:"+374",code:"AM"},{name:"Aruba",dial_code:"+297",code:"AW"},{name:"Australia",dial_code:"+61",code:"AU"},{name:"Austria",dial_code:"+43",code:"AT"},{name:"Azerbaijan",dial_code:"+994",code:"AZ"},{name:"Bahamas",dial_code:"+1242",code:"BS"},{name:"Bahrain",dial_code:"+973",code:"BH"},{name:"Bangladesh",dial_code:"+880",code:"BD"},{name:"Barbados",dial_code:"+1246",code:"BB"},{name:"Belarus",dial_code:"+375",code:"BY"},{name:"Belgium",dial_code:"+32",code:"BE"},{name:"Belize",dial_code:"+501",code:"BZ"},{name:"Benin",dial_code:"+229",code:"BJ"},{name:"Bermuda",dial_code:"+1441",code:"BM"},{name:"Bhutan",dial_code:"+975",code:"BT"},{name:"Bolivia, Plurinational State of",dial_code:"+591",code:"BO"},{name:"Bosnia and Herzegovina",dial_code:"+387",code:"BA"},{name:"Botswana",dial_code:"+267",code:"BW"},{name:"Brazil",dial_code:"+55",code:"BR"},{name:"British Indian Ocean Territory",dial_code:"+246",code:"IO"},{name:"Brunei Darussalam",dial_code:"+673",code:"BN"},{name:"Bulgaria",dial_code:"+359",code:"BG"},{name:"Burkina Faso",dial_code:"+226",code:"BF"},{name:"Burundi",dial_code:"+257",code:"BI"},{name:"Cambodia",dial_code:"+855",code:"KH"},{name:"Cameroon",dial_code:"+237",code:"CM"},{name:"Canada",dial_code:"+1",code:"CA"},{name:"Cape Verde",dial_code:"+238",code:"CV"},{name:"Cayman Islands",dial_code:"+ 345",code:"KY"},{name:"Central African Republic",dial_code:"+236",code:"CF"},{name:"Chad",dial_code:"+235",code:"TD"},{name:"Chile",dial_code:"+56",code:"CL"},{name:"China",dial_code:"+86",code:"CN"},{name:"Christmas Island",dial_code:"+61",code:"CX"},{name:"Cocos (Keeling) Islands",dial_code:"+61",code:"CC"},{name:"Colombia",dial_code:"+57",code:"CO"},{name:"Comoros",dial_code:"+269",code:"KM"},{name:"Congo",dial_code:"+242",code:"CG"},{name:"Congo, The Democratic Republic of the Congo",dial_code:"+243",code:"CD"},{name:"Cook Islands",dial_code:"+682",code:"CK"},{name:"Costa Rica",dial_code:"+506",code:"CR"},{name:"Cote d'Ivoire",dial_code:"+225",code:"CI"},{name:"Croatia",dial_code:"+385",code:"HR"},{name:"Cuba",dial_code:"+53",code:"CU"},{name:"Cyprus",dial_code:"+357",code:"CY"},{name:"Czech Republic",dial_code:"+420",code:"CZ"},{name:"Denmark",dial_code:"+45",code:"DK"},{name:"Djibouti",dial_code:"+253",code:"DJ"},{name:"Dominica",dial_code:"+1767",code:"DM"},{name:"Dominican Republic",dial_code:"+1849",code:"DO"},{name:"Ecuador",dial_code:"+593",code:"EC"},{name:"Egypt",dial_code:"+20",code:"EG"},{name:"El Salvador",dial_code:"+503",code:"SV"},{name:"Equatorial Guinea",dial_code:"+240",code:"GQ"},{name:"Eritrea",dial_code:"+291",code:"ER"},{name:"Estonia",dial_code:"+372",code:"EE"},{name:"Ethiopia",dial_code:"+251",code:"ET"},{name:"Falkland Islands (Malvinas)",dial_code:"+500",code:"FK"},{name:"Faroe Islands",dial_code:"+298",code:"FO"},{name:"Fiji",dial_code:"+679",code:"FJ"},{name:"Finland",dial_code:"+358",code:"FI"},{name:"France",dial_code:"+33",code:"FR"},{name:"French Guiana",dial_code:"+594",code:"GF"},{name:"French Polynesia",dial_code:"+689",code:"PF"},{name:"Gabon",dial_code:"+241",code:"GA"},{name:"Gambia",dial_code:"+220",code:"GM"},{name:"Georgia",dial_code:"+995",code:"GE"},{name:"Germany",dial_code:"+49",code:"DE"},{name:"Ghana",dial_code:"+233",code:"GH"},{name:"Gibraltar",dial_code:"+350",code:"GI"},{name:"Greece",dial_code:"+30",code:"GR"},{name:"Greenland",dial_code:"+299",code:"GL"},{name:"Grenada",dial_code:"+1473",code:"GD"},{name:"Guadeloupe",dial_code:"+590",code:"GP"},{name:"Guam",dial_code:"+1671",code:"GU"},{name:"Guatemala",dial_code:"+502",code:"GT"},{name:"Guernsey",dial_code:"+44",code:"GG"},{name:"Guinea",dial_code:"+224",code:"GN"},{name:"Guinea-Bissau",dial_code:"+245",code:"GW"},{name:"Guyana",dial_code:"+595",code:"GY"},{name:"Haiti",dial_code:"+509",code:"HT"},{name:"Holy See (Vatican City State)",dial_code:"+379",code:"VA"},{name:"Honduras",dial_code:"+504",code:"HN"},{name:"Hong Kong",dial_code:"+852",code:"HK"},{name:"Hungary",dial_code:"+36",code:"HU"},{name:"Iceland",dial_code:"+354",code:"IS"},{name:"India",dial_code:"+91",code:"IN"},{name:"Indonesia",dial_code:"+62",code:"ID"},{name:"Iran, Islamic Republic of Persian Gulf",dial_code:"+98",code:"IR"},{name:"Iraq",dial_code:"+964",code:"IQ"},{name:"Ireland",dial_code:"+353",code:"IE"},{name:"Isle of Man",dial_code:"+44",code:"IM"},{name:"Israel",dial_code:"+972",code:"IL"},{name:"Italy",dial_code:"+39",code:"IT"},{name:"Jamaica",dial_code:"+1876",code:"JM"},{name:"Japan",dial_code:"+81",code:"JP"},{name:"Jersey",dial_code:"+44",code:"JE"},{name:"Jordan",dial_code:"+962",code:"JO"},{name:"Kazakhstan",dial_code:"+77",code:"KZ"},{name:"Kenya",dial_code:"+254",code:"KE"},{name:"Kiribati",dial_code:"+686",code:"KI"},{name:"Korea, Democratic People's Republic of Korea",dial_code:"+850",code:"KP"},{name:"Korea, Republic of South Korea",dial_code:"+82",code:"KR"},{name:"Kuwait",dial_code:"+965",code:"KW"},{name:"Kyrgyzstan",dial_code:"+996",code:"KG"},{name:"Laos",dial_code:"+856",code:"LA"},{name:"Latvia",dial_code:"+371",code:"LV"},{name:"Lebanon",dial_code:"+961",code:"LB"},{name:"Lesotho",dial_code:"+266",code:"LS"},{name:"Liberia",dial_code:"+231",code:"LR"},{name:"Libyan Arab Jamahiriya",dial_code:"+218",code:"LY"},{name:"Liechtenstein",dial_code:"+423",code:"LI"},{name:"Lithuania",dial_code:"+370",code:"LT"},{name:"Luxembourg",dial_code:"+352",code:"LU"},{name:"Macao",dial_code:"+853",code:"MO"},{name:"Macedonia",dial_code:"+389",code:"MK"},{name:"Madagascar",dial_code:"+261",code:"MG"},{name:"Malawi",dial_code:"+265",code:"MW"},{name:"Malaysia",dial_code:"+60",code:"MY"},{name:"Maldives",dial_code:"+960",code:"MV"},{name:"Mali",dial_code:"+223",code:"ML"},{name:"Malta",dial_code:"+356",code:"MT"},{name:"Marshall Islands",dial_code:"+692",code:"MH"},{name:"Martinique",dial_code:"+596",code:"MQ"},{name:"Mauritania",dial_code:"+222",code:"MR"},{name:"Mauritius",dial_code:"+230",code:"MU"},{name:"Mayotte",dial_code:"+262",code:"YT"},{name:"Mexico",dial_code:"+52",code:"MX"},{name:"Micronesia, Federated States of Micronesia",dial_code:"+691",code:"FM"},{name:"Moldova",dial_code:"+373",code:"MD"},{name:"Monaco",dial_code:"+377",code:"MC"},{name:"Mongolia",dial_code:"+976",code:"MN"},{name:"Montenegro",dial_code:"+382",code:"ME"},{name:"Montserrat",dial_code:"+1664",code:"MS"},{name:"Morocco",dial_code:"+212",code:"MA"},{name:"Mozambique",dial_code:"+258",code:"MZ"},{name:"Myanmar",dial_code:"+95",code:"MM"},{name:"Namibia",dial_code:"+264",code:"NA"},{name:"Nauru",dial_code:"+674",code:"NR"},{name:"Nepal",dial_code:"+977",code:"NP"},{name:"Netherlands",dial_code:"+31",code:"NL"},{name:"Netherlands Antilles",dial_code:"+599",code:"AN"},{name:"New Caledonia",dial_code:"+687",code:"NC"},{name:"New Zealand",dial_code:"+64",code:"NZ"},{name:"Nicaragua",dial_code:"+505",code:"NI"},{name:"Niger",dial_code:"+227",code:"NE"},{name:"Nigeria",dial_code:"+234",code:"NG"},{name:"Niue",dial_code:"+683",code:"NU"},{name:"Norfolk Island",dial_code:"+672",code:"NF"},{name:"Northern Mariana Islands",dial_code:"+1670",code:"MP"},{name:"Norway",dial_code:"+47",code:"NO"},{name:"Oman",dial_code:"+968",code:"OM"},{name:"Pakistan",dial_code:"+92",code:"PK"},{name:"Palau",dial_code:"+680",code:"PW"},{name:"Palestinian Territory, Occupied",dial_code:"+970",code:"PS"},{name:"Panama",dial_code:"+507",code:"PA"},{name:"Papua New Guinea",dial_code:"+675",code:"PG"},{name:"Paraguay",dial_code:"+595",code:"PY"},{name:"Peru",dial_code:"+51",code:"PE"},{name:"Philippines",dial_code:"+63",code:"PH"},{name:"Pitcairn",dial_code:"+872",code:"PN"},{name:"Poland",dial_code:"+48",code:"PL"},{name:"Portugal",dial_code:"+351",code:"PT"},{name:"Puerto Rico",dial_code:"+1939",code:"PR"},{name:"Qatar",dial_code:"+974",code:"QA"},{name:"Romania",dial_code:"+40",code:"RO"},{name:"Russia",dial_code:"+7",code:"RU"},{name:"Rwanda",dial_code:"+250",code:"RW"},{name:"Reunion",dial_code:"+262",code:"RE"},{name:"Saint Barthelemy",dial_code:"+590",code:"BL"},{name:"Saint Helena, Ascension and Tristan Da Cunha",dial_code:"+290",code:"SH"},{name:"Saint Kitts and Nevis",dial_code:"+1869",code:"KN"},{name:"Saint Lucia",dial_code:"+1758",code:"LC"},{name:"Saint Martin",dial_code:"+590",code:"MF"},{name:"Saint Pierre and Miquelon",dial_code:"+508",code:"PM"},{name:"Saint Vincent and the Grenadines",dial_code:"+1784",code:"VC"},{name:"Samoa",dial_code:"+685",code:"WS"},{name:"San Marino",dial_code:"+378",code:"SM"},{name:"Sao Tome and Principe",dial_code:"+239",code:"ST"},{name:"Saudi Arabia",dial_code:"+966",code:"SA"},{name:"Senegal",dial_code:"+221",code:"SN"},{name:"Serbia",dial_code:"+381",code:"RS"},{name:"Seychelles",dial_code:"+248",code:"SC"},{name:"Sierra Leone",dial_code:"+232",code:"SL"},{name:"Singapore",dial_code:"+65",code:"SG"},{name:"Slovakia",dial_code:"+421",code:"SK"},{name:"Slovenia",dial_code:"+386",code:"SI"},{name:"Solomon Islands",dial_code:"+677",code:"SB"},{name:"Somalia",dial_code:"+252",code:"SO"},{name:"South Africa",dial_code:"+27",code:"ZA"},{name:"South Sudan",dial_code:"+211",code:"SS"},{name:"South Georgia and the South Sandwich Islands",dial_code:"+500",code:"GS"},{name:"Spain",dial_code:"+34",code:"ES"},{name:"Sri Lanka",dial_code:"+94",code:"LK"},{name:"Sudan",dial_code:"+249",code:"SD"},{name:"Suriname",dial_code:"+597",code:"SR"},{name:"Svalbard and Jan Mayen",dial_code:"+47",code:"SJ"},{name:"Swaziland",dial_code:"+268",code:"SZ"},{name:"Sweden",dial_code:"+46",code:"SE"},{name:"Switzerland",dial_code:"+41",code:"CH"},{name:"Syrian Arab Republic",dial_code:"+963",code:"SY"},{name:"Taiwan",dial_code:"+886",code:"TW"},{name:"Tajikistan",dial_code:"+992",code:"TJ"},{name:"Tanzania, United Republic of Tanzania",dial_code:"+255",code:"TZ"},{name:"Thailand",dial_code:"+66",code:"TH"},{name:"Timor-Leste",dial_code:"+670",code:"TL"},{name:"Togo",dial_code:"+228",code:"TG"},{name:"Tokelau",dial_code:"+690",code:"TK"},{name:"Tonga",dial_code:"+676",code:"TO"},{name:"Trinidad and Tobago",dial_code:"+1868",code:"TT"},{name:"Tunisia",dial_code:"+216",code:"TN"},{name:"Turkey",dial_code:"+90",code:"TR"},{name:"Turkmenistan",dial_code:"+993",code:"TM"},{name:"Turks and Caicos Islands",dial_code:"+1649",code:"TC"},{name:"Tuvalu",dial_code:"+688",code:"TV"},{name:"Uganda",dial_code:"+256",code:"UG"},{name:"Ukraine",dial_code:"+380",code:"UA"},{name:"United Arab Emirates",dial_code:"+971",code:"AE"},{name:"United Kingdom",dial_code:"+44",code:"GB"},{name:"United States",dial_code:"+1",code:"US"},{name:"Uruguay",dial_code:"+598",code:"UY"},{name:"Uzbekistan",dial_code:"+998",code:"UZ"},{name:"Vanuatu",dial_code:"+678",code:"VU"},{name:"Venezuela, Bolivarian Republic of Venezuela",dial_code:"+58",code:"VE"},{name:"Vietnam",dial_code:"+84",code:"VN"},{name:"Virgin Islands, British",dial_code:"+1284",code:"VG"},{name:"Virgin Islands, U.S.",dial_code:"+1340",code:"VI"},{name:"Wallis and Futuna",dial_code:"+681",code:"WF"},{name:"Yemen",dial_code:"+967",code:"YE"},{name:"Zambia",dial_code:"+260",code:"ZM"},{name:"Zimbabwe",dial_code:"+263",code:"ZW"}];var fe={props:{context:{type:Object}},components:{},beforeMount(){this.setCode()},mounted(){this.setCountries(),b((async()=>{if(this.context.value){await i();const e=E(this.context.value);this.country=e.country,this.phone=e.nationalNumber}}))},data(){return{country:this.context.attrs.initialCountry,countries:[],code:""}},computed:{maskFn(){const e=R(this.country,L).formatInternational();return function(e,a){const o=String(e).replace(/\D/g,"");let n=0;return a.replace(/\d/g,(e=>n<o.length&&e===o[n]?(n+=1,e):"#"))}(this.code,e)}},methods:{getUnicodeFlagIcon:N,setCode(){this.code=_e.find((e=>e.code===this.country)).dial_code},setCountries(){const e=[..._e];this.context.attrs.preferredCountries&&(this.context.attrs.preferredCountries&&this.context.attrs.preferredCountries.reverse().forEach((a=>{e.sort((e=>e.code===a?-1:1))})),this.context.attrs.initialCountry&&e.sort((e=>e.code===this.context.attrs.initialCountry?-1:1)),this.countries=e),this.context.attrs.initialCountry&&e.sort((e=>e.code===this.context.attrs.initialCountry?-1:1)),this.countries=e}},watch:{country(){this.setCode(),this.context.value=""},"context.value":function(e){this.context.node.input(e)}}};const pe={class:"formkit-phone-enhanced"},he={class:"formkit-phone-enhanced__flag"},ve=["value"],ge={class:"formkit-phone-enhanced__flag-wrapper"},be=["src"];fe.render=function(e,a,o,n,d,i){const r=c("Icon"),s=c("FormKit");return t(),l("div",pe,[h("div",he,[y(h("select",{class:"formkit-phone-enhanced__list","onUpdate:modelValue":a[0]||(a[0]=a=>e.country=a)},[(t(!0),l(f,null,p(e.countries,(a=>(t(),l("option",{key:a.code,value:a.code},_(e.getUnicodeFlagIcon(a.code))+" "+_(a.name),9,ve)))),128))],512),[[S,e.country]]),h("div",ge,[h("img",{src:`https://purecatamphetamine.github.io/country-flag-icons/3x2/${e.country}.svg`,alt:""},null,8,be)]),u(r,{name:"chevron-down-fat"})]),m(" label field filled is in here (and hidden with css) to send label value to local storage (see setUserData() in Webform.vue) "),(t(),M(s,{classes:{outer:"formkit-phone-enhanced__outer",input:"formkit-phone-enhanced__input"},label:e.context.label,type:"mask",name:e.context.node.name,id:e.context.id,mask:e.maskFn,key:e.code,modelValue:e.context.value,"onUpdate:modelValue":a[1]||(a[1]=a=>e.context.value=a)},null,8,["label","name","id","mask","modelValue"]))])},fe.__file="src/components/FormKit/FormKitPhoneEnhanced/FormKitPhoneEnhanced.vue";const ye={class:"formkit-recaptcha"};var Se={__name:"FormKitRecaptcha",props:{context:Object},setup(a){const n=a,d=e(null);function i(e){n.context.node.input({captcha_sid:n.context.attrs.sid,captcha_token:n.context.attrs.token,captcha_response:"","g-recaptcha-response":e,captcha_cacheable:"1"})}return o((()=>{grecaptcha.ready((()=>{grecaptcha.render(d.value,{sitekey:n.context.attrs.siteKey,callback:i})}))})),(e,a)=>(t(),l("div",ye,[h("div",{class:"g-recaptcha",ref_key:"recaptchaRef",ref:d,"data-theme":"light","data-type":"image"},null,512)]))},__file:"src/components/FormKit/FormKitRecaptcha/FormKitRecaptcha.vue"};const Me=e=>{if("0"===e[0]){return 97-Number(e.slice(0,8))%97===Number(e.slice(8,10))}return"1"===e[0]&&10===e.length},ke={name:"newBelgium",codes:["BE","BEL","056"],calcWithFormatFn:e=>10===e.length?{vat:`BE${e}`,isValid:Me(e)}:{vat:`BE${e}`,isValid:!1},rules:{multipliers:{},regex:[/^(BE)(\d{10})$/]}},we=D.map((e=>"Belgium"===e.name?ke:e));function Ae(e){if(!e)return 0;const[a,o=0,n=0]=e.split(":").map(Number);return 3600*a+60*o+n}function Te(e){const a=Math.floor(e/3600),o=Math.floor(e%3600/60);return`${String(a).padStart(2,"0")}:${String(o).padStart(2,"0")}`}const Ce={plugins:[function(e){["button","submit","hidden","group","list","meta"].includes(e.props.type)||e.on("created",(()=>{const a=ue.includes(`${e.props.type}${e.props.options?"_multi":""}`)?"legend":"label";e.props.definition.schemaMemoKey&&(e.props.definition.schemaMemoKey+=(e.props.options?"_multi":"")+"_add_asterisk");const o=e.props.definition.schema;e.props.definition.schema=(e={})=>(e[a]={children:["$label",{$cmp:"InfoTooltip",if:"$attrs.tooltip",props:{content:"$attrs.tooltip"}},{$el:"span",if:"$state.required",attrs:{class:"formkit-asterisk"},children:["*"]}]},o(e))}))},function(e){["button","submit","hidden","group","list","meta"].includes(e.props.type)||e.on("created",(()=>{const a=e.props.definition.schema;e.props.definition.schema=(e={})=>(e.help={children:[{$el:"div",attrs:{innerHTML:"$help"}}]},a(e))}))},F({allowIncomplete:!1})],rules:{internationalPhone:function(e){if(""===e.value)return!0;try{return E(e.value).isValid()}catch(e){return!1}},phone:function(e){if(""===e.value)return!0;try{return E(e.value,"BE").isValid()}catch(e){return!1}},iban:function(e){return x.isValid(e.value)},vat:function(e){return j(e.value,we).isValid},insz:function(e){const a=e.value.replace(/[^0-9]/g,"");if(11!=a.length)return!1;const o=a.substr(a.length-2,2),n=function(e){return 97-e%97};let d=parseInt(a.substr(0,9));return n(d)==o||(d=parseInt("2"+a.substr(0,9)),n(d)==o)},timeRule:function(e){const a=e.value,{step:o,min:n,max:d}=e.props.attrs;if(!a)return!0;const i=Ae(a),c=Ae(n),t=Ae(d),l=Number(o);if(i<c)return!1;if(i>t)return!1;return 0===(i-c)%l}},messages:{nl:{validation:{phone:"Dit is geen geldig telefoonnummer.",required:"Dit veld is verplicht.",vat:"Dit is geen geldig Btw-nummer.",is:"Dit veld is verplicht.",timeRule:({node:e})=>function(e){const a=e.value,{step:o,min:n,max:d}=e.props.attrs;if(!a)return"";const i=Ae(a),c=Ae(n),t=Ae(d),l=Number(o);if(i<c)return`De waarde moet ${Te(c)} uur of later zijn.`;if(i>t)return`De waarde moet ${Te(t)} uur of eerder zijn.`;const r=(i-c)%l;if(0===r)return"";const s=i-r,m=s+l;return`Voer een geldige tijd in. De twee dichtstbijzijnde geldige waarden zijn ${Te(Math.max(s,c))} en ${Te(Math.min(m,t))}.`}(e)}},en:{validation:{phone:"This is not a valid phone number.",required:"This field is required.",is:"This field is required.",vat:"This is not a valid VAT number."}},fr:{validation:{phone:"Ce numéro de téléphone n'est pas valide.",required:"Ce champ est obligatoire.",is:"Ce champ est obligatoire.",vat:"Ce numéro de TVA n'est pas valide."}}},locales:{nl:G,en:P,fr:K},locale:document.documentElement.lang,inputs:{phoneEnhanced:A(fe),recaptcha:A(Se)}};var Ie={install(e,a){const o=$({},Ce,a);e.component("MinskyWebformFormKit",ne),e.use(T,C(o)),e.component("Icon",le),e.component("InfoTooltip",me),e.component("FormKitMessages",I)}};export{ne as MinskyWebformFormKit,Ie as default};
package/package.json ADDED
@@ -0,0 +1,55 @@
1
+ {
2
+ "name": "minsky-webform-formkit",
3
+ "version": "1.0.0",
4
+ "description": "",
5
+ "module": "dist/index.js",
6
+ "type": "module",
7
+ "scripts": {
8
+ "build": "rollup -c",
9
+ "test": "vitest",
10
+ "dev": "vite example/"
11
+ },
12
+ "repository": {
13
+ "type": "git",
14
+ "url": "git+ssh://git@bitbucket.org/Minsky_WebAgency/minsky-webform-formkit.git"
15
+ },
16
+ "keywords": [
17
+ "vue3",
18
+ "formkit",
19
+ "drupal",
20
+ "webform"
21
+ ],
22
+ "author": "",
23
+ "license": "MIT",
24
+ "homepage": "https://bitbucket.org/Minsky_WebAgency/minsky-webform-formkit#readme",
25
+ "peerDependencies": {
26
+ "@formkit/addons": "^1.7.2",
27
+ "@formkit/core": "^1.7.2",
28
+ "@formkit/i18n": "^1.7.2",
29
+ "@formkit/vue": "^1.7.2",
30
+ "gsap": "^3.14.2",
31
+ "vue": "^3.5.31"
32
+ },
33
+ "devDependencies": {
34
+ "@rollup/plugin-node-resolve": "^16.0.0",
35
+ "@vitejs/plugin-vue": "^5.2.1",
36
+ "@vue/compiler-sfc": "^3.5.31",
37
+ "lodash": "^4.17.21",
38
+ "postcss": "^8.5.8",
39
+ "prettier": "^3.8.1",
40
+ "rollup": "^4.28.1",
41
+ "rollup-plugin-postcss": "^4.0.2",
42
+ "rollup-plugin-terser": "^7.0.2",
43
+ "rollup-plugin-vue": "^6.0.0",
44
+ "sass": "^1.98.0",
45
+ "terser": "^5.37.0",
46
+ "vite": "^6.0.3"
47
+ },
48
+ "dependencies": {
49
+ "@accountable/jsvat": "^1.3.4",
50
+ "country-flag-icons": "^1.6.15",
51
+ "floating-vue": "^5.2.2",
52
+ "ibankit": "^1.6.5",
53
+ "libphonenumber-js": "^1.12.41"
54
+ }
55
+ }