@mosip/json-form-builder 0.1.0-beta.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.
package/README.md ADDED
@@ -0,0 +1,335 @@
1
+ # JSON Form Builder
2
+
3
+ A flexible and customizable form builder that creates forms from JSON configuration. Supports multiple languages, RTL layouts, and Google reCAPTCHA integration.
4
+
5
+ ## Features
6
+
7
+ - Create forms from JSON configuration
8
+ - Support for multiple languages
9
+ - RTL language support
10
+ - Responsive design
11
+ - Field validation
12
+ - Google reCAPTCHA integration
13
+ - Customizable styling
14
+
15
+ ## Installation
16
+
17
+ ```bash
18
+ npm install json-form-builder
19
+ ```
20
+
21
+ ## Usage
22
+
23
+ ### Basic Usage
24
+
25
+ ```javascript
26
+ import { JsonFormBuilder } from "anushase@json-form-builder";
27
+
28
+ const config = {
29
+ schema: [
30
+ {
31
+ id: "name",
32
+ controlType: "textbox",
33
+ label: {
34
+ eng: "Name",
35
+ fra: "Nom",
36
+ },
37
+ placeholder: {
38
+ eng: "Enter your name",
39
+ fra: "Entrez votre nom"
40
+ },
41
+ capsLockCheck: true,
42
+ validator: [
43
+ {
44
+ regex: "^[a-zA-Z]{4,35}$",
45
+ error: {
46
+ eng: "Name should contain letters and must be of length between 4 to 35",
47
+ fra: "Le nom doit contenir des lettres et doit avoir une longueur comprise entre 4 et 35"
48
+ }
49
+ }
50
+ ],
51
+ info: {
52
+ eng: "Your name should contain letters only and should be of length between 4 to 35",
53
+ fra: "Votre nom doit contenir uniquement des lettres et doit avoir une longueur comprise entre 4 et 35"
54
+ }
55
+ required: true,
56
+ },
57
+ // ... more fields
58
+ ],
59
+ errors: {
60
+ required: {
61
+ eng: "This field is required",
62
+ fra: "Ce champ est obligatoire",
63
+ },
64
+ capsLock: {
65
+ eng: "Caps Lock is on",
66
+ fra: "Verr Maj activé"
67
+ }
68
+ },
69
+ language: {
70
+ mandatory: ["eng"],
71
+ optional: ["fra"],
72
+ langCodeMap: {
73
+ eng: "en",
74
+ fra: "fr",
75
+ },
76
+ },
77
+ };
78
+
79
+ const additionalConfig = {
80
+ submitButton: {
81
+ label: "Submit",
82
+ action: (data) => {
83
+ console.log("Form data:", data);
84
+ },
85
+ },
86
+ language: {
87
+ currentLanguage: "fra",
88
+ defaultLanguage: "eng",
89
+ showLanguageSwitcher: true,
90
+ },
91
+ recaptcha: {
92
+ siteKey: "your-recaptcha-site-key",
93
+ enabled: true,
94
+ language: "eng",
95
+ },
96
+ };
97
+
98
+ const formBuilder = JsonFormBuilder(config, "form-container", additionalConfig);
99
+ formBuilder.render();
100
+ ```
101
+
102
+ ## Configuration
103
+
104
+ ### Form Configuration
105
+
106
+ The form configuration object (`config`) has the following structure:
107
+
108
+ ```typescript
109
+ interface FormConfig {
110
+ schema: FormField[];
111
+ language: LanguageSettings;
112
+ allowedValues?: AllowedValues;
113
+ errors?: Errors;
114
+ }
115
+ ```
116
+
117
+ ### Additional Configuration
118
+
119
+ The additional configuration object has the following structure:
120
+
121
+ ```typescript
122
+ interface AdditionalConfig {
123
+ submitButton: {
124
+ label: string;
125
+ action: (data: FormData) => void;
126
+ };
127
+ language?: {
128
+ currentLanguage?: string;
129
+ defaultLanguage?: string;
130
+ showLanguageSwitcher?: boolean;
131
+ languageSwitcherPosition?: "top" | "bottom";
132
+ availableLanguages?: string[];
133
+ rtlLanguages?: string[];
134
+ };
135
+ recaptcha?: {
136
+ siteKey: string;
137
+ enabled?: boolean;
138
+ language?: string;
139
+ };
140
+ additionalSchema?: {
141
+ // additional schema is for passing some schema's label & placeholder on later
142
+ // stage of form rendering, here id will be the same id given in the schema
143
+ [id: string]: {
144
+ label: Label;
145
+ placeholder: Label;
146
+ };
147
+ }
148
+ }
149
+ ```
150
+
151
+ ## reCAPTCHA Integration
152
+
153
+ The form builder supports Google reCAPTCHA v2 integration. To enable reCAPTCHA:
154
+
155
+ 1. Add the reCAPTCHA configuration to your `additionalConfig`:
156
+
157
+ ```javascript
158
+ recaptcha: {
159
+ siteKey: 'your-recaptcha-site-key', // Required
160
+ enabled: true, // Optional, defaults to true
161
+ language: 'en' // Optional, defaults to form's current
162
+ }
163
+ ```
164
+
165
+ 2. The reCAPTCHA widget will be automatically rendered in the form
166
+ 3. The reCAPTCHA token will be included in the form data as `recaptchaToken`
167
+ 4. The widget will automatically update its language when the form language changes
168
+
169
+ ### reCAPTCHA Features
170
+
171
+ - Responsive design that scales appropriately on different screen sizes
172
+ - Automatic language synchronization with the form
173
+ - Proper cleanup and recreation when language changes
174
+ - Validation before form submission
175
+ - Error handling for failed initialization
176
+
177
+ ## Field Types
178
+
179
+ The form builder supports the following field types:
180
+
181
+ - Textbox (single language)
182
+ - Textbox (multiple languages)
183
+ - Password
184
+ - Date
185
+ - Dropdown
186
+ - Checkbox
187
+
188
+ ## Validation
189
+
190
+ Fields can be validated using regular expressions:
191
+
192
+ ```javascript
193
+ {
194
+ id: 'email',
195
+ controlType: 'textbox',
196
+ label: { eng: 'Email', fra: 'E-mail' },
197
+ required: true,
198
+ validators: [
199
+ {
200
+ regex: '^[^@]+@[^@]+\\.[^@]+$',
201
+ error: {
202
+ eng: 'Invalid email format',
203
+ fra: "Format d'e-mail invalide",
204
+ }
205
+ }
206
+ ]
207
+ }
208
+ ```
209
+
210
+ ## RTL Support
211
+
212
+ The form builder automatically handles RTL layouts for specified languages:
213
+
214
+ ```javascript
215
+ language: {
216
+ rtlLanguages: ["ara", "ar", "he", "fa", "ur"];
217
+ }
218
+ ```
219
+
220
+ ## Methods
221
+
222
+ - `render()`: Renders the form
223
+ - `getFormData()`: Returns the current form data
224
+ - `updateLanguage(newLanguage: string, submitButtonLabel: string, additonalSchema?: AdditionalSchema)`: Updates the form fields, submit button and reCAPTCHA language
225
+
226
+ ## Styling
227
+
228
+ The form builder comes with default styles but can be customized using CSS. The main classes are:
229
+
230
+ - `.form`: The main form container
231
+ - `.form-group`: Groups of fields
232
+ - `.form-field`: Individual field container
233
+ - `.form-field-group`: Container for multi-language fields
234
+ - `.input_box`: Input elements
235
+ - `.language-switcher`: Language selection container
236
+ - `.recaptcha-container`: reCAPTCHA widget container
237
+ - `.password-container`: Password container
238
+ - `.password-eye-icon`: Eye icon of password input
239
+ - `.checkbox-container`: Checkbox Container
240
+ - `.info-container`: Info icon container
241
+ - `.info-icon`: Info icon besides Input Label
242
+ - `.info-detail`: Info box open after clicking Info icon
243
+ - `.info-detail-arrow`: Small arrow comes with Info box
244
+ - `.label-div-display`: Label container div which contain label, info icon & caps lock info
245
+ - `.caps-lock-span`: Caps lock container
246
+ - `.caps-lock-icon`: Caps lock icon
247
+ - `.caps-lock-text`: Caps lock text
248
+
249
+
250
+ ## Browser Support
251
+
252
+ - Chrome (latest)
253
+ - Firefox (latest)
254
+ - Safari (latest)
255
+ - Edge (latest)
256
+
257
+ ## Development
258
+
259
+ ### Prerequisites
260
+
261
+ - Node.js (v16 or higher)
262
+ - npm (v7 or higher)
263
+
264
+ ### Setup
265
+
266
+ 1. Clone the repository
267
+ 2. Install dependencies:
268
+ ```bash
269
+ npm install
270
+ ```
271
+
272
+ ### Build
273
+
274
+ The project uses Rollup for building. To build the library:
275
+
276
+ ```bash
277
+ npm run build
278
+ ```
279
+
280
+ This will generate:
281
+
282
+ - UMD bundle (`dist/JsonFormBuilder.umd.js`)
283
+ - ESM bundle (`dist/JsonFormBuilder.esm.js`)
284
+ - Source maps for both bundles
285
+ - TypeScript declaration files
286
+
287
+ ### Development with an actual Application
288
+ #### This should be used only in local for development purpose only
289
+
290
+ 1. First link the current `json-form-builder` library, with below command
291
+ ```bash
292
+ npm link
293
+ ```
294
+ 2. Now go to the application, where you want to use `json-form-builder` library, and run the below command
295
+ ```bash
296
+ npm link @anushase/json-form-builder
297
+ ```
298
+ 3. This will create a link between the library and application, after that if any changes has been done in the library, just run the below command and it will reflect in the application as well
299
+ ```bash
300
+ npm run build
301
+ ```
302
+
303
+ ### Development Mode
304
+
305
+ For development with watch mode:
306
+
307
+ ```bash
308
+ npm run dev
309
+ ```
310
+
311
+ ### Testing
312
+
313
+ ```bash
314
+ npm test
315
+ ```
316
+
317
+ ### Linting
318
+
319
+ ```bash
320
+ npm run lint
321
+ ```
322
+
323
+ ### Formatting
324
+
325
+ ```bash
326
+ npm run format
327
+ ```
328
+
329
+ ## License
330
+
331
+ MPL
332
+
333
+ ## Contributing
334
+
335
+ Contributions are welcome! Please feel free to submit a Pull Request.
@@ -0,0 +1,26 @@
1
+ import { FormConfig, FormData, AdditionalConfig, AdditionalSchema } from "./types";
2
+ declare global {
3
+ interface Window {
4
+ grecaptcha?: {
5
+ render: (container: HTMLElement, options: {
6
+ sitekey: string;
7
+ callback?: (response: string) => void;
8
+ "expired-callback"?: () => void;
9
+ }) => number;
10
+ getResponse: (widgetId?: number) => string;
11
+ reset: (widgetId?: number) => void;
12
+ };
13
+ videoLocalStream: MediaStream | null;
14
+ }
15
+ }
16
+ /**
17
+ * Gets the form data from the current state, normalizing language codes to 3-letter codes.
18
+ * @param {FormState} state Current form state containing schema, container, and other properties.
19
+ * @returns {FormData} The collected form data with normalized language codes.
20
+ */
21
+ declare const JsonFormBuilder: (config: FormConfig, containerId: string, additionalConfig: AdditionalConfig) => Readonly<{
22
+ render: () => Promise<void>;
23
+ getFormData: () => FormData;
24
+ updateLanguage: (newLanguage: string, submitButtonLabel?: string, additionalSchema?: AdditionalSchema) => void;
25
+ }>;
26
+ export { JsonFormBuilder };
@@ -0,0 +1,2 @@
1
+ var e=function(){return e=Object.assign||function(e){for(var t,n=1,a=arguments.length;n<a;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e},e.apply(this,arguments)};function t(e,t,n,a){return new(n||(n=Promise))(function(r,i){function o(e){try{c(a.next(e))}catch(e){i(e)}}function l(e){try{c(a.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,l)}c((a=a.apply(e,t||[])).next())})}function n(e,t){var n,a,r,i={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return o.next=l(0),o.throw=l(1),o.return=l(2),"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function l(l){return function(c){return function(l){if(n)throw new TypeError("Generator is already executing.");for(;o&&(o=0,l[0]&&(i=0)),i;)try{if(n=1,a&&(r=2&l[0]?a.return:l[0]?a.throw||((r=a.return)&&r.call(a),0):a.next)&&!(r=r.call(a,l[1])).done)return r;switch(a=0,r&&(l=[2&l[0],r.value]),l[0]){case 0:case 1:r=l;break;case 4:return i.label++,{value:l[1],done:!1};case 5:i.label++,a=l[1],l=[0];continue;case 7:l=i.ops.pop(),i.trys.pop();continue;default:if(!(r=i.trys,(r=r.length>0&&r[r.length-1])||6!==l[0]&&2!==l[0])){i=0;continue}if(3===l[0]&&(!r||l[1]>r[0]&&l[1]<r[3])){i.label=l[1];break}if(6===l[0]&&i.label<r[1]){i.label=r[1],r=l;break}if(r&&i.label<r[2]){i.label=r[2],i.ops.push(l);break}r[2]&&i.ops.pop(),i.trys.pop();continue}l=t.call(e,i)}catch(e){l=[6,e],a=0}finally{n=r=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}([l,c])}}}function a(e,t,n){if(n||2===arguments.length)for(var a,r=0,i=t.length;r<i;r++)!a&&r in t||(a||(a=Array.prototype.slice.call(t,0,r)),a[r]=t[r]);return e.concat(a||Array.prototype.slice.call(t))}"function"==typeof SuppressedError&&SuppressedError;var r=function(e,t,n){var a=e.currentLanguage,r=e.defaultLanguage,o=n||(null==t?void 0:t.labelName),l=i(e,o,!1,a,r);return(null==t?void 0:t.required)&&(l+='<span class="required">*</span>'),l},i=function(e,t,n,a,r){if(void 0===n&&(n=!1),a||(a=e.languageMap[e.currentLanguage]||e.currentLanguage),r||(r=e.languageMap[e.defaultLanguage]||e.defaultLanguage),!t||void 0===e.languageMap[a])return"";for(var i=0,o=[a,e.languageMap[a],r,e.languageMap[r]].filter(function(e){return"string"==typeof e});i<o.length;i++){var l=o[i];if(l in t)return t[l]}return n?"":Object.values(t)[0]||""},o=function(e,t,n){if(e.innerHTML="",t){var a=document.createElement("img");a.src="/images/error_icon.svg",a.className="error-icon",a.onload=function(){a.alt="error-icon",a.style.display="inline"},a.onerror=function(){a.style.display="none"},a.style.display="none";var r=document.createElement("span");r.textContent=t,r.className="error-text",e.appendChild(a),e.appendChild(r)}},l=function(e,t,n,a){var r;void 0===n&&(n=""),void 0===a&&(a="");var l=(null===(r=e.fallbackErrors)||void 0===r?void 0:r.required)||{},c=i(e,l,!0,n,a)||"This field is required";return o(t,c),{lastError:"required",isValid:!1}},c=function(e,t,n,a,r,l,c){var d=function(e,t){return 3===e.length?e:t[e]||e};l||(l=e.languageMap[e.currentLanguage]||e.currentLanguage),c||(c=e.languageMap[e.currentLanguage]||e.currentLanguage);for(var s=d(l,e.languageMap),u=d(c,e.languageMap),p=r?n.filter(function(t){return!t.langCode||d(t.langCode,e.languageMap)===s}):n,f=0;f<p.length;f++){var m=p[f],h=new RegExp(m.regex||m.validator);if(h&&!h.test(a)){var v=i(e,m.error,!0,u,c)||"Invalid input";return o(t,v),{lastError:f,isValid:!1}}}return{lastError:null,isValid:!0}},d=function(e){void 0===e&&(e=18.5);var t=document.createElementNS("http://www.w3.org/2000/svg","svg"),n=document.createElementNS("http://www.w3.org/2000/svg","g"),a=document.createElementNS("http://www.w3.org/2000/svg","path");return t.setAttribute("viewBox","0 0 18.5 18.5"),t.setAttribute("width",e.toString()),t.setAttribute("height",e.toString()),n.setAttribute("id","info_FILL0_wght400_GRAD0_opsz48"),n.setAttribute("transform","translate(0.25 0.25)"),a.setAttribute("id","info_FILL0_wght400_GRAD0_opsz48-2"),a.setAttribute("data-name","info_FILL0_wght400_GRAD0_opsz48"),a.setAttribute("transform","translate(-80 880)"),a.setAttribute("fill","currentColor"),a.setAttribute("stroke","currentColor"),a.setAttribute("stroke-width","0.5"),a.setAttribute("d","M88.393-866.5h1.35v-5.4h-1.35ZM89-873.565a.731.731,0,0,0,.529-.207.685.685,0,0,0,.214-.513.752.752,0,0,0-.213-.545.707.707,0,0,0-.529-.22.708.708,0,0,0-.529.22.751.751,0,0,0-.214.545.686.686,0,0,0,.213.513A.729.729,0,0,0,89-873.565ZM89.006-862a8.712,8.712,0,0,1-3.5-.709,9.145,9.145,0,0,1-2.863-1.935,9.14,9.14,0,0,1-1.935-2.865,8.728,8.728,0,0,1-.709-3.5,8.728,8.728,0,0,1,.709-3.5,9,9,0,0,1,1.935-2.854,9.237,9.237,0,0,1,2.865-1.924,8.728,8.728,0,0,1,3.5-.709,8.728,8.728,0,0,1,3.5.709,9.1,9.1,0,0,1,2.854,1.924,9.089,9.089,0,0,1,1.924,2.858,8.749,8.749,0,0,1,.709,3.5,8.712,8.712,0,0,1-.709,3.5,9.192,9.192,0,0,1-1.924,2.859,9.087,9.087,0,0,1-2.857,1.935A8.707,8.707,0,0,1,89.006-862Zm.005-1.35a7.348,7.348,0,0,0,5.411-2.239,7.4,7.4,0,0,0,2.228-5.422,7.374,7.374,0,0,0-2.223-5.411A7.376,7.376,0,0,0,89-878.65a7.4,7.4,0,0,0-5.411,2.223A7.357,7.357,0,0,0,81.35-871a7.372,7.372,0,0,0,2.239,5.411A7.385,7.385,0,0,0,89.011-863.35ZM89-871Z"),n.appendChild(a),t.appendChild(n),t},s=function(e){var t=document.createElement("span");t.className="info-container";var n=document.createElement("span");n.className="info-icon",n.appendChild(d());var a=document.createElement("div");a.className="info-detail",a.setAttribute("aria-hidden","true");var r=document.createElement("span");r.className="info-detail-arrow",r.innerHTML='<svg class="fill-[#FFFFFF] stroke-[#BCBCBC]" width="10" height="5" viewBox="0 0 30 10" preserveAspectRatio="none" style="display: block;"><polygon points="0,0 30,0 15,10"></polygon></svg>';var i=function(){a.classList.remove("active"),a.setAttribute("aria-hidden","true")};return n.addEventListener("click",function(e){e.stopPropagation();var t=a.classList.contains("active");document.querySelectorAll(".info-detail.active").forEach(function(e){e.classList.remove("active"),e.setAttribute("aria-hidden","true")}),t||(a.classList.add("active"),a.setAttribute("aria-hidden","false"))}),document.addEventListener("click",function(e){!document.contains(e.target)&&a.classList.contains("active")&&i()}),document.addEventListener("keydown",function(e){"Escape"===e.key&&a.classList.contains("active")&&i()}),a.append(e,r),n.appendChild(a),t.appendChild(n),t},u=function(e,t){var n,a=document.createElement("span");if(null==t?void 0:t.capsLockCheck){a.className="caps-lock-span";var r=document.createElement("span");r.className="caps-lock-icon",r.appendChild(d(12));var o=document.createElement("span");o.className="caps-lock-text",o.textContent=i(e,(null===(n=e.fallbackErrors)||void 0===n?void 0:n.capsLock)||{})||"Caps Lock is on",a.appendChild(r),a.appendChild(o)}return a.style.display="none",a},p=function(e,t){"getModifierState"in e&&(t.style.display=e.getModifierState("CapsLock")?"inline-flex":"none")},f=function(e,t,n){if(!e.disabled&&(null==e?void 0:e.capsLockCheck)){var a=t.querySelector(".caps-lock-span");a&&(n.addEventListener("click",function(e){return p(e,a)}),n.addEventListener("keyup",function(e){return p(e,a)}))}},m=function(e){e.preventDefault()},h=function(e){e.classList.add("disabled"),e.disabled=!0,e.addEventListener("keypress",m),e.addEventListener("keydown",m),e.addEventListener("cut",m),e.addEventListener("paste",m),e.addEventListener("click",m)},v=function(){var e=document.createElement("div");return e.className="error-message",e};function g(t){for(var n=e({},t),a=0,r=Object.entries(t);a<r.length;a++){var i=r[a],o=i[0],l=i[1];n[l]||(n[l]=o)}return n}var b=function(e){for(var t,n=e.split(","),a=(null===(t=n[0].match(/:(.*?);/))||void 0===t?void 0:t[1])||"",r=atob(n[1]),i=r.length,o=new Uint8Array(i);i--;)o[i]=r.charCodeAt(i);return new Blob([o],{type:a})},w=function(e,t,n){var a=!0,r=e.id,i=t[r],o="".concat(r,"_confirm"),l=o in t?t[o]:null,c=n.map(function(e){return e.toLowerCase()});if("simpleType"===e.type){if(i&&Array.isArray(i)&&i.length>0){for(var d=0,s=i;d<s.length;d++){var u=s[d],p=c.indexOf(u.language.toLowerCase());p>-1&&u.value&&u.value.trim().length>0&&c.splice(p,1)}if(0===c.length)return!0}return!1}switch(e.controlType){case"textbox":case"date":case"dropdown":case"phone":y(i)&&(a=!1);break;case"password":y(i)&&(a=!1),y(l)&&(a=!1);break;case"checkbox":!0!==i&&(a=!1);break;case"photo":(!i||i&&"object"==typeof i&&"value"in i&&""===i.value)&&(a=!1)}return a},y=function(e){return null==e||"string"==typeof e&&0===e.trim().length},x=function(e){return function(){e.setCustomValidity("")}};const E=6048e5,C=Symbol.for("constructDateFrom");function k(e,t){return"function"==typeof e?e(t):e&&"object"==typeof e&&C in e?e[C](t):e instanceof Date?new e.constructor(t):new Date(t)}function L(e,t){return k(t||e,e)}let S={};function M(){return S}function A(e,t){const n=M(),a=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,r=L(e,t?.in),i=r.getDay(),o=(i<a?7:0)+i-a;return r.setDate(r.getDate()-o),r.setHours(0,0,0,0),r}function N(e,t){return A(e,{...t,weekStartsOn:1})}function T(e,t){const n=L(e,t?.in),a=n.getFullYear(),r=k(n,0);r.setFullYear(a+1,0,4),r.setHours(0,0,0,0);const i=N(r),o=k(n,0);o.setFullYear(a,0,4),o.setHours(0,0,0,0);const l=N(o);return n.getTime()>=i.getTime()?a+1:n.getTime()>=l.getTime()?a:a-1}function D(e){const t=L(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),+e-+n}function q(e,t){const n=L(e,t?.in);return n.setHours(0,0,0,0),n}function P(e,t,n){const[a,r]=function(e,...t){const n=k.bind(null,t.find(e=>"object"==typeof e));return t.map(n)}(0,e,t),i=q(a),o=q(r),l=+i-D(i),c=+o-D(o);return Math.round((l-c)/864e5)}function H(e){return!(!((t=e)instanceof Date||"object"==typeof t&&"[object Date]"===Object.prototype.toString.call(t))&&"number"!=typeof e||isNaN(+L(e)));var t}const j={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function _(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}const F={date:_({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:_({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:_({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},z={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function I(e){return(t,n)=>{let a;if("formatting"===(n?.context?String(n.context):"standalone")&&e.formattingValues){const t=e.defaultFormattingWidth||e.defaultWidth,r=n?.width?String(n.width):t;a=e.formattingValues[r]||e.formattingValues[t]}else{const t=e.defaultWidth,r=n?.width?String(n.width):e.defaultWidth;a=e.values[r]||e.values[t]}return a[e.argumentCallback?e.argumentCallback(t):t]}}function V(e){return(t,n={})=>{const a=n.width,r=a&&e.matchPatterns[a]||e.matchPatterns[e.defaultMatchWidth],i=t.match(r);if(!i)return null;const o=i[0],l=a&&e.parsePatterns[a]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(l)?function(e,t){for(let n=0;n<e.length;n++)if(t(e[n]))return n;return}(l,e=>e.test(o)):function(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n;return}(l,e=>e.test(o));let d;d=e.valueCallback?e.valueCallback(c):c,d=n.valueCallback?n.valueCallback(d):d;return{value:d,rest:t.slice(o.length)}}}var O;const W={code:"en-US",formatDistance:(e,t,n)=>{let a;const r=j[e];return a="string"==typeof r?r:1===t?r.one:r.other.replace("{{count}}",t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?"in "+a:a+" ago":a},formatLong:F,formatRelative:(e,t,n,a)=>z[e],localize:{ordinalNumber:(e,t)=>{const n=Number(e),a=n%100;if(a>20||a<10)switch(a%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},era:I({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:I({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:e=>e-1}),month:I({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:I({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:I({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:(O={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:e=>parseInt(e,10)},(e,t={})=>{const n=e.match(O.matchPattern);if(!n)return null;const a=n[0],r=e.match(O.parsePattern);if(!r)return null;let i=O.valueCallback?O.valueCallback(r[0]):r[0];return i=t.valueCallback?t.valueCallback(i):i,{value:i,rest:e.slice(a.length)}}),era:V({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:V({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:e=>e+1}),month:V({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:V({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:V({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}};function B(e,t){const n=L(e,t?.in),a=P(n,function(e,t){const n=L(e,t?.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}(n));return a+1}function Y(e,t){const n=L(e,t?.in),a=+N(n)-+function(e,t){const n=T(e,t),a=k(e,0);return a.setFullYear(n,0,4),a.setHours(0,0,0,0),N(a)}(n);return Math.round(a/E)+1}function Z(e,t){const n=L(e,t?.in),a=n.getFullYear(),r=M(),i=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,o=k(t?.in||e,0);o.setFullYear(a+1,0,i),o.setHours(0,0,0,0);const l=A(o,t),c=k(t?.in||e,0);c.setFullYear(a,0,i),c.setHours(0,0,0,0);const d=A(c,t);return+n>=+l?a+1:+n>=+d?a:a-1}function R(e,t){const n=L(e,t?.in),a=+A(n,t)-+function(e,t){const n=M(),a=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,r=Z(e,t),i=k(t?.in||e,0);return i.setFullYear(r,0,a),i.setHours(0,0,0,0),A(i,t)}(n,t);return Math.round(a/E)+1}function G(e,t){return(e<0?"-":"")+Math.abs(e).toString().padStart(t,"0")}const X={y(e,t){const n=e.getFullYear(),a=n>0?n:1-n;return G("yy"===t?a%100:a,t.length)},M(e,t){const n=e.getMonth();return"M"===t?String(n+1):G(n+1,2)},d:(e,t)=>G(e.getDate(),t.length),a(e,t){const n=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];default:return"am"===n?"a.m.":"p.m."}},h:(e,t)=>G(e.getHours()%12||12,t.length),H:(e,t)=>G(e.getHours(),t.length),m:(e,t)=>G(e.getMinutes(),t.length),s:(e,t)=>G(e.getSeconds(),t.length),S(e,t){const n=t.length,a=e.getMilliseconds();return G(Math.trunc(a*Math.pow(10,n-3)),t.length)}},Q="midnight",U="noon",K="morning",J="afternoon",$="evening",ee="night",te={G:function(e,t,n){const a=e.getFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(a,{width:"abbreviated"});case"GGGGG":return n.era(a,{width:"narrow"});default:return n.era(a,{width:"wide"})}},y:function(e,t,n){if("yo"===t){const t=e.getFullYear(),a=t>0?t:1-t;return n.ordinalNumber(a,{unit:"year"})}return X.y(e,t)},Y:function(e,t,n,a){const r=Z(e,a),i=r>0?r:1-r;if("YY"===t){return G(i%100,2)}return"Yo"===t?n.ordinalNumber(i,{unit:"year"}):G(i,t.length)},R:function(e,t){return G(T(e),t.length)},u:function(e,t){return G(e.getFullYear(),t.length)},Q:function(e,t,n){const a=Math.ceil((e.getMonth()+1)/3);switch(t){case"Q":return String(a);case"QQ":return G(a,2);case"Qo":return n.ordinalNumber(a,{unit:"quarter"});case"QQQ":return n.quarter(a,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(a,{width:"narrow",context:"formatting"});default:return n.quarter(a,{width:"wide",context:"formatting"})}},q:function(e,t,n){const a=Math.ceil((e.getMonth()+1)/3);switch(t){case"q":return String(a);case"qq":return G(a,2);case"qo":return n.ordinalNumber(a,{unit:"quarter"});case"qqq":return n.quarter(a,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(a,{width:"narrow",context:"standalone"});default:return n.quarter(a,{width:"wide",context:"standalone"})}},M:function(e,t,n){const a=e.getMonth();switch(t){case"M":case"MM":return X.M(e,t);case"Mo":return n.ordinalNumber(a+1,{unit:"month"});case"MMM":return n.month(a,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(a,{width:"narrow",context:"formatting"});default:return n.month(a,{width:"wide",context:"formatting"})}},L:function(e,t,n){const a=e.getMonth();switch(t){case"L":return String(a+1);case"LL":return G(a+1,2);case"Lo":return n.ordinalNumber(a+1,{unit:"month"});case"LLL":return n.month(a,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(a,{width:"narrow",context:"standalone"});default:return n.month(a,{width:"wide",context:"standalone"})}},w:function(e,t,n,a){const r=R(e,a);return"wo"===t?n.ordinalNumber(r,{unit:"week"}):G(r,t.length)},I:function(e,t,n){const a=Y(e);return"Io"===t?n.ordinalNumber(a,{unit:"week"}):G(a,t.length)},d:function(e,t,n){return"do"===t?n.ordinalNumber(e.getDate(),{unit:"date"}):X.d(e,t)},D:function(e,t,n){const a=B(e);return"Do"===t?n.ordinalNumber(a,{unit:"dayOfYear"}):G(a,t.length)},E:function(e,t,n){const a=e.getDay();switch(t){case"E":case"EE":case"EEE":return n.day(a,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(a,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(a,{width:"short",context:"formatting"});default:return n.day(a,{width:"wide",context:"formatting"})}},e:function(e,t,n,a){const r=e.getDay(),i=(r-a.weekStartsOn+8)%7||7;switch(t){case"e":return String(i);case"ee":return G(i,2);case"eo":return n.ordinalNumber(i,{unit:"day"});case"eee":return n.day(r,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(r,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(r,{width:"short",context:"formatting"});default:return n.day(r,{width:"wide",context:"formatting"})}},c:function(e,t,n,a){const r=e.getDay(),i=(r-a.weekStartsOn+8)%7||7;switch(t){case"c":return String(i);case"cc":return G(i,t.length);case"co":return n.ordinalNumber(i,{unit:"day"});case"ccc":return n.day(r,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(r,{width:"narrow",context:"standalone"});case"cccccc":return n.day(r,{width:"short",context:"standalone"});default:return n.day(r,{width:"wide",context:"standalone"})}},i:function(e,t,n){const a=e.getDay(),r=0===a?7:a;switch(t){case"i":return String(r);case"ii":return G(r,t.length);case"io":return n.ordinalNumber(r,{unit:"day"});case"iii":return n.day(a,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(a,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(a,{width:"short",context:"formatting"});default:return n.day(a,{width:"wide",context:"formatting"})}},a:function(e,t,n){const a=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(a,{width:"narrow",context:"formatting"});default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},b:function(e,t,n){const a=e.getHours();let r;switch(r=12===a?U:0===a?Q:a/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},B:function(e,t,n){const a=e.getHours();let r;switch(r=a>=17?$:a>=12?J:a>=4?K:ee,t){case"B":case"BB":case"BBB":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},h:function(e,t,n){if("ho"===t){let t=e.getHours()%12;return 0===t&&(t=12),n.ordinalNumber(t,{unit:"hour"})}return X.h(e,t)},H:function(e,t,n){return"Ho"===t?n.ordinalNumber(e.getHours(),{unit:"hour"}):X.H(e,t)},K:function(e,t,n){const a=e.getHours()%12;return"Ko"===t?n.ordinalNumber(a,{unit:"hour"}):G(a,t.length)},k:function(e,t,n){let a=e.getHours();return 0===a&&(a=24),"ko"===t?n.ordinalNumber(a,{unit:"hour"}):G(a,t.length)},m:function(e,t,n){return"mo"===t?n.ordinalNumber(e.getMinutes(),{unit:"minute"}):X.m(e,t)},s:function(e,t,n){return"so"===t?n.ordinalNumber(e.getSeconds(),{unit:"second"}):X.s(e,t)},S:function(e,t){return X.S(e,t)},X:function(e,t,n){const a=e.getTimezoneOffset();if(0===a)return"Z";switch(t){case"X":return ae(a);case"XXXX":case"XX":return re(a);default:return re(a,":")}},x:function(e,t,n){const a=e.getTimezoneOffset();switch(t){case"x":return ae(a);case"xxxx":case"xx":return re(a);default:return re(a,":")}},O:function(e,t,n){const a=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+ne(a,":");default:return"GMT"+re(a,":")}},z:function(e,t,n){const a=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+ne(a,":");default:return"GMT"+re(a,":")}},t:function(e,t,n){return G(Math.trunc(+e/1e3),t.length)},T:function(e,t,n){return G(+e,t.length)}};function ne(e,t=""){const n=e>0?"-":"+",a=Math.abs(e),r=Math.trunc(a/60),i=a%60;return 0===i?n+String(r):n+String(r)+t+G(i,2)}function ae(e,t){if(e%60==0){return(e>0?"-":"+")+G(Math.abs(e)/60,2)}return re(e,t)}function re(e,t=""){const n=e>0?"-":"+",a=Math.abs(e);return n+G(Math.trunc(a/60),2)+t+G(a%60,2)}const ie=(e,t)=>{switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}},oe=(e,t)=>{switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}},le={p:oe,P:(e,t)=>{const n=e.match(/(P+)(p+)?/)||[],a=n[1],r=n[2];if(!r)return ie(e,t);let i;switch(a){case"P":i=t.dateTime({width:"short"});break;case"PP":i=t.dateTime({width:"medium"});break;case"PPP":i=t.dateTime({width:"long"});break;default:i=t.dateTime({width:"full"})}return i.replace("{{date}}",ie(a,t)).replace("{{time}}",oe(r,t))}},ce=/^D+$/,de=/^Y+$/,se=["D","DD","YY","YYYY"];const ue=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,pe=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,fe=/^'([^]*?)'?$/,me=/''/g,he=/[a-zA-Z]/;function ve(e,t,n){const a=M(),r=a.locale??W,i=a.firstWeekContainsDate??a.locale?.options?.firstWeekContainsDate??1,o=a.weekStartsOn??a.locale?.options?.weekStartsOn??0,l=L(e,n?.in);if(!H(l))throw new RangeError("Invalid time value");let c=t.match(pe).map(e=>{const t=e[0];if("p"===t||"P"===t){return(0,le[t])(e,r.formatLong)}return e}).join("").match(ue).map(e=>{if("''"===e)return{isToken:!1,value:"'"};const t=e[0];if("'"===t)return{isToken:!1,value:ge(e)};if(te[t])return{isToken:!0,value:e};if(t.match(he))throw new RangeError("Format string contains an unescaped latin alphabet character `"+t+"`");return{isToken:!1,value:e}});r.localize.preprocessor&&(c=r.localize.preprocessor(l,c));const d={firstWeekContainsDate:i,weekStartsOn:o,locale:r};return c.map(n=>{if(!n.isToken)return n.value;const a=n.value;(function(e){return de.test(e)}(a)||function(e){return ce.test(e)}(a))&&function(e,t,n){const a=function(e,t,n){const a="Y"===e[0]?"years":"days of the month";return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${a} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}(e,t,n);if(console.warn(a),se.includes(e))throw new RangeError(a)}(a,t,String(e));return(0,te[a[0]])(l,a,r.localize,d)}).join("")}function ge(e){const t=e.match(fe);return t?t[1].replace(me,"'"):e}var be="textbox",we="password",ye="date",xe="dropdown",Ee="checkbox",Ce="phone",ke="photo",Le="string",Se="simpleType",Me="permissionDenied",Ae="notAccessible",Ne="NotReadableError",Te=function(e){var t=document.createElementNS("http://www.w3.org/2000/svg","svg"),n=document.createElementNS("http://www.w3.org/2000/svg","path");return t.setAttribute("viewBox","0 0 22.634 17"),t.setAttribute("width","22.634"),t.setAttribute("height","17"),e?(n.setAttribute("id","visibility_off_FILL0_wght400_GRAD0_opsz48"),n.setAttribute("transform","translate(-40 863)"),n.setAttribute("d","M55.15-853.529l-1.132-1.132a2.552,2.552,0,0,0-.694-3.035,2.748,2.748,0,0,0-2.958-.617l-1.132-1.132a3.109,3.109,0,0,1,.977-.412,4.758,4.758,0,0,1,1.106-.129,4.218,4.218,0,0,1,3.1,1.273,4.218,4.218,0,0,1,1.273,3.1,4.5,4.5,0,0,1-.141,1.119A3.4,3.4,0,0,1,55.15-853.529Zm3.318,3.318-1.029-1.029a12.058,12.058,0,0,0,2.2-2.07,8.264,8.264,0,0,0,1.376-2.3,10.267,10.267,0,0,0-3.858-4.514,10.1,10.1,0,0,0-5.581-1.659,12.367,12.367,0,0,0-2.212.206,8.219,8.219,0,0,0-1.775.489L46.4-862.3a11.666,11.666,0,0,1,2.3-.72,12.727,12.727,0,0,1,2.739-.309,11.611,11.611,0,0,1,6.726,2.1,12.154,12.154,0,0,1,4.463,5.62,12.707,12.707,0,0,1-1.723,3.009A12.422,12.422,0,0,1,58.467-850.211Zm1.492,5.813-4.321-4.244a9.993,9.993,0,0,1-2.032.553,13.6,13.6,0,0,1-2.289.193,11.793,11.793,0,0,1-6.816-2.1,12.286,12.286,0,0,1-4.5-5.62,11.673,11.673,0,0,1,1.428-2.611,14.62,14.62,0,0,1,2.225-2.43l-3.241-3.241L41.492-865l19.471,19.471ZM44.707-859.573a9.469,9.469,0,0,0-1.839,1.826,8.465,8.465,0,0,0-1.273,2.135,10.3,10.3,0,0,0,3.948,4.514,10.991,10.991,0,0,0,5.98,1.659,13.487,13.487,0,0,0,1.672-.1,4,4,0,0,0,1.235-.309L52.783-851.5a2.693,2.693,0,0,1-.694.193,5.015,5.015,0,0,1-.772.064,4.253,4.253,0,0,1-3.086-1.26,4.185,4.185,0,0,1-1.286-3.112,4.686,4.686,0,0,1,.064-.772,3.15,3.15,0,0,1,.193-.694ZM52.552-855.921ZM49.568-854.429Z")):(n.setAttribute("id","visibility_FILL0_wght400_GRAD0_opsz48"),n.setAttribute("transform","translate(-40 800)"),n.setAttribute("d","M51.32-787.911a4.21,4.21,0,0,0,3.1-1.276,4.225,4.225,0,0,0,1.273-3.1,4.21,4.21,0,0,0-1.276-3.1,4.225,4.225,0,0,0-3.1-1.273,4.21,4.21,0,0,0-3.1,1.276,4.225,4.225,0,0,0-1.273,3.1,4.21,4.21,0,0,0,1.276,3.1A4.225,4.225,0,0,0,51.32-787.911Zm-.009-1.492a2.764,2.764,0,0,1-2.039-.842,2.794,2.794,0,0,1-.836-2.045,2.764,2.764,0,0,1,.842-2.039,2.794,2.794,0,0,1,2.045-.836,2.764,2.764,0,0,1,2.039.842,2.794,2.794,0,0,1,.836,2.045,2.764,2.764,0,0,1-.842,2.039A2.794,2.794,0,0,1,51.311-789.4Zm.006,4.836a11.528,11.528,0,0,1-6.79-2.135A13,13,0,0,1,40-792.284a13.006,13.006,0,0,1,4.527-5.582A11.529,11.529,0,0,1,51.317-800a11.529,11.529,0,0,1,6.79,2.135,13.006,13.006,0,0,1,4.527,5.582,13,13,0,0,1-4.527,5.581A11.528,11.528,0,0,1,51.317-784.568ZM51.317-792.284Zm0,6.173A10.351,10.351,0,0,0,57.04-787.8a10.932,10.932,0,0,0,3.974-4.488,10.943,10.943,0,0,0-3.97-4.488,10.33,10.33,0,0,0-5.723-1.685,10.351,10.351,0,0,0-5.727,1.685,11.116,11.116,0,0,0-4,4.488,11.127,11.127,0,0,0,4,4.488A10.33,10.33,0,0,0,51.313-786.111Z")),t.appendChild(n),t},De=function(e,t){var n=document.createElement("span");n.id=t,n.className="password-eye-icon";var a=Te(!1);return n.appendChild(a),n.addEventListener("click",function(){n.innerHTML="",e.type===we?(e.type="text",n.appendChild(Te(!0))):(e.type=we,n.appendChild(Te(!1)))}),n},qe=function(e,t,n,a,r){if(!r)return null;var i=document.createElement("input");if(i.type="text",i.className="input_box prefix-button",i.oninvalid=x(i),i.readOnly=!0,i.value=r,e.formData["".concat(t.id,"_prefix")]=r,i.addEventListener("click",function(e){if(e.preventDefault(),t.prefix&&t.prefix.length>1){var a=n.querySelector(".prefix-dropdown");null==a||a.classList.toggle("show")}}),i.addEventListener("keydown",function(e){e.preventDefault()}),a.appendChild(i),a.appendChild(document.createElement("hr")),t.disabled)h(i);else{var o=function(e,t,n){if(t.prefix&&t.prefix.length>1){var a=document.createElement("div");return a.className="prefix-dropdown",t.prefix.forEach(function(r){var i=document.createElement("a");i.className="prefix-option",i.textContent=r,i.addEventListener("click",function(i){i.preventDefault(),n&&(n.value=r,e.formData["".concat(t.id,"_prefix")]=r),a.classList.remove("show")}),a.appendChild(i)}),a}return null}(e,t,i);o&&a.appendChild(o)}return i},Pe=function(e){var t=document.createElement("div");t.className="camera-video-container";var n=document.createElement("video");n.id="".concat(e,"-video"),n.className="webcam-feed",n.autoplay=!0,n.loop=!0,n.muted=!0,n.playsInline=!0;var a=document.createElement("div");a.className="inner-circle";var r=document.createElement("button");r.type="button",r.id="".concat(e,"-capture-button"),r.className="capture-button",r.appendChild(a);var i,o,l=document.createElement("button");return l.type="button",l.id="".concat(e,"-flip-camera-button"),l.className="flip-camera-button",l.appendChild((i=document.createElementNS("http://www.w3.org/2000/svg","svg"),o=document.createElementNS("http://www.w3.org/2000/svg","path"),i.setAttribute("viewBox","0 0 32 32"),i.setAttribute("width","50"),i.setAttribute("height","50"),i.setAttribute("fill","white"),o.setAttribute("d","M30 8.25h-7.539l-1.789-3.585c-0.126-0.248-0.379-0.415-0.672-0.415-0 0-0 0-0 0h-8c-0 0-0 0-0.001 0-0.292 0-0.545 0.167-0.668 0.411l-0.002 0.004-1.793 3.585h-7.536c-0.414 0-0.75 0.336-0.75 0.75v0 18c0 0.414 0.336 0.75 0.75 0.75h28c0.414-0 0.75-0.336 0.75-0.75v0-18c-0-0.414-0.336-0.75-0.75-0.75v0zM29.25 26.25h-26.5v-16.5h7.25c0 0 0 0 0.001 0 0.292 0 0.545-0.167 0.668-0.411l0.002-0.004 1.793-3.585h7.071l1.789 3.585c0.126 0.248 0.379 0.415 0.672 0.415 0 0 0 0 0 0h7.254zM20.145 17.235c-0.368 0.052-0.648 0.365-0.648 0.743 0 0.036 0.003 0.071 0.007 0.106l-0-0.004c0.019 0.139 0.031 0.299 0.031 0.462v0.001c-0.105 1.96-1.72 3.51-3.697 3.51-0.059 0-0.117-0.001-0.175-0.004l0.008 0c-0.759-0.004-1.469-0.213-2.079-0.573l0.019 0.011h0.435c0.414 0 0.75-0.336 0.75-0.75s-0.336-0.75-0.75-0.75v0h-2.331c-0.019 0-0.036 0.010-0.055 0.011-0.060 0.005-0.115 0.017-0.167 0.034l0.005-0.001c-0.051 0.015-0.095 0.034-0.136 0.056l0.004-0.002c-0.020 0.011-0.042 0.012-0.061 0.025-0.022 0.014-0.034 0.036-0.053 0.052-0.039 0.031-0.074 0.065-0.105 0.102l-0.001 0.001c-0.058 0.069-0.103 0.149-0.132 0.238l-0.001 0.005c-0.016 0.047-0.027 0.101-0.032 0.157l-0 0.003c-0.002 0.024-0.014 0.044-0.014 0.068v2.148c0 0.414 0.336 0.75 0.75 0.75s0.75-0.336 0.75-0.75v0-0.372c0.89 0.643 2.002 1.031 3.205 1.036h0.001c0.050 0.002 0.108 0.003 0.167 0.003 2.805 0 5.091-2.22 5.197-4.999l0-0.010c0-0.001 0-0.003 0-0.005 0-0.233-0.017-0.463-0.050-0.687l0.003 0.025c-0.045-0.368-0.356-0.65-0.733-0.65-0.039 0-0.078 0.003-0.115 0.009l0.004-0.001zM20.285 12.365c-0.414 0-0.75 0.336-0.75 0.75v0 0.372c-0.89-0.644-2.002-1.031-3.205-1.036h-0.001c-0.050-0.002-0.109-0.003-0.168-0.003-2.805 0-5.091 2.22-5.197 4.999l-0 0.010c0 0.001 0 0.001 0 0.002 0 0.237 0.018 0.47 0.052 0.697l-0.003-0.026c0.056 0.364 0.366 0.64 0.741 0.641h0c0.001 0 0.003 0 0.005 0 0.038 0 0.074-0.003 0.11-0.008l-0.004 0c0.364-0.056 0.64-0.367 0.64-0.742 0-0.039-0.003-0.077-0.009-0.115l0.001 0.004c-0.021-0.134-0.033-0.29-0.033-0.447 0-0.002 0-0.005 0-0.007v0c0.106-1.96 1.721-3.51 3.698-3.51 0.059 0 0.117 0.001 0.176 0.004l-0.008-0c0.76 0.004 1.47 0.213 2.079 0.574l-0.019-0.011h-0.435c-0.414 0-0.75 0.336-0.75 0.75s0.336 0.75 0.75 0.75v0h2.331c0.023 0 0.042-0.011 0.064-0.013 0.106-0.012 0.202-0.042 0.29-0.087l-0.005 0.002c0.020-0.010 0.042-0.012 0.060-0.024 0.022-0.014 0.034-0.037 0.053-0.053 0.040-0.032 0.076-0.068 0.108-0.106l0.001-0.001c0.088-0.107 0.147-0.242 0.162-0.389l0-0.003c0.006-0.020 0.011-0.046 0.015-0.072l0-0.004v-2.149c-0-0.414-0.336-0.75-0.75-0.75v0z"),i.appendChild(o),i)),t.appendChild(n),t.appendChild(r),t.appendChild(l),{videoDiv:t,captureButton:r,flipCameraButton:l}},He=function(e,t){var n=document.createElement("div");n.className="alternate-icon-div";var a=document.createElement("img");a.alt="user_icon";var r,o,l=(new XMLSerializer).serializeToString((r=document.createElementNS("http://www.w3.org/2000/svg","svg"),o=document.createElementNS("http://www.w3.org/2000/svg","path"),r.setAttribute("viewBox","0 0 24 24"),r.setAttribute("fill","currentColor"),o.setAttribute("fillRule","evenodd"),o.setAttribute("clipRule","evenodd"),o.setAttribute("d","M18.685 19.097A9.723 9.723 0 0 0 21.75 12c0-5.385-4.365-9.75-9.75-9.75S2.25 6.615 2.25 12a9.723 9.723 0 0 0 3.065 7.097A9.716 9.716 0 0 0 12 21.75a9.716 9.716 0 0 0 6.685-2.653Zm-12.54-1.285A7.486 7.486 0 0 1 12 15a7.486 7.486 0 0 1 5.855 2.812A8.224 8.224 0 0 1 12 20.25a8.224 8.224 0 0 1-5.855-2.438ZM15.75 9a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0Z"),r.appendChild(o),r)),c="data:image/svg+xml;base64,"+btoa(l);a.src=c;var d=document.createElement("div");return d.className="alternate-icon-popup",d.innerText=i(e,t.placeholder),n.appendChild(a),n.appendChild(d),n},je=function(e,t){var n,a,r=document.createElement("div");r.className="camera-denied-container";var o,l,c=(o=document.createElementNS("http://www.w3.org/2000/svg","svg"),l=document.createElementNS("http://www.w3.org/2000/svg","path"),o.setAttribute("viewBox","0 0 52.227 52.227"),o.setAttribute("width","52.227"),o.setAttribute("height","52.227"),l.setAttribute("d","M102.542-825.2l-3.806-3.806v-24.986a.76.76,0,0,0-.22-.561.76.76,0,0,0-.561-.22H88.507l-4.656-5.075H73.018l-2.435,2.689-2.713-2.713,3.489-3.782H85.511l4.695,5.075h7.75a4.428,4.428,0,0,1,3.255,1.332,4.428,4.428,0,0,1,1.332,3.255V-825.2Zm-43.628,4.685a4.428,4.428,0,0,1-3.255-1.332,4.428,4.428,0,0,1-1.332-3.255v-28.89a4.428,4.428,0,0,1,1.332-3.255,4.428,4.428,0,0,1,3.255-1.332h3.065l3.806,3.806H58.914a.76.76,0,0,0-.561.22.76.76,0,0,0-.22.561v28.89a.76.76,0,0,0,.22.561.76.76,0,0,0,.561.22H96.237l3.806,3.806Zm28.075-13.054a10.764,10.764,0,0,1-3.648,3.25,10.008,10.008,0,0,1-4.907,1.215,10.077,10.077,0,0,1-7.406-3.038,10.077,10.077,0,0,1-3.038-7.406,10.008,10.008,0,0,1,1.215-4.907,10.764,10.764,0,0,1,3.25-3.648l2.752,2.752a6.576,6.576,0,0,0-2.479,2.369,6.435,6.435,0,0,0-.932,3.433,6.418,6.418,0,0,0,1.913,4.724,6.418,6.418,0,0,0,4.724,1.913,6.435,6.435,0,0,0,3.433-.932,6.575,6.575,0,0,0,2.369-2.479l2.752,2.752Zm-1.142-13.391a9.77,9.77,0,0,1,2.174,3.165,10.421,10.421,0,0,1,.832,3.931v.468a2.842,2.842,0,0,1-.039.468l-11-11a2.841,2.841,0,0,1,.468-.039h.468a10.422,10.422,0,0,1,3.931.832A9.769,9.769,0,0,1,85.847-846.963Zm14.9,32.575L51.233-863.9l2.713-2.713L103.46-817.1l-2.713,2.713ZM75.585-839.55ZM84.627-843.117Z"),l.setAttribute("transform","translate(-51.233 866.615)"),l.setAttribute("fill","#afafaf"),o.appendChild(l),o);r.appendChild(c);var d=document.createElement("div");d.className="camera-denied-header",d.dataset.errorCode=t,d.textContent=i(e,null===(n=e.fallbackErrors)||void 0===n?void 0:n["".concat(t,"_header")])||"";var s=document.createElement("div");return s.className="camera-denied-description",s.dataset.errorCode=t,s.textContent=i(e,null===(a=e.fallbackErrors)||void 0===a?void 0:a["".concat(t,"_description")])||"",r.appendChild(d),r.appendChild(s),r},_e=function(e,t,n,a){var r=!0,i=null;if(o(a,""),t.required&&""===e.formData[t.id].value){var c=l(e,a);i=c.lastError,r=c.isValid}e.lastErrors=e.lastErrors||{},e.lastErrors[t.id]=i,n.setCustomValidity(r?"":"Invalid input"),n.classList.toggle("error",!r)},Fe=function(e,a){var i;e.formData[a.id]={value:"",docType:"",format:"",refId:""};var o=!1,l=!0,c=Me;navigator.permissions.query({name:"camera"}).then(function(e){e.onchange=function(){d()}});var d=function(){navigator.mediaDevices.getUserMedia({video:!0}).then(s).catch(u).finally(function(){return o&&T.click()})},s=function(e){o?window.videoLocalStream=e:p(e)},u=function(e){c=e.name===Ne?Ae:Me},p=function(e){e&&e.getTracks().forEach(function(e){return e.stop()}),window.videoLocalStream=null},f=function(r,i,l){return t(void 0,void 0,void 0,function(){var t;return n(this,function(n){switch(n.label){case 0:return(t=r.querySelector("video#".concat(a.id,"-video")))?[4,navigator.mediaDevices.getUserMedia({audio:!1,video:{facingMode:l?"user":"environment"}}).then(function(e){i.innerHTML="",i.appendChild(r),t.srcObject=e,t.muted=!0,t.play()}).catch(function(t){var n=je(e,c);i.innerHTML="",i.appendChild(n)})]:[2];case 1:return n.sent(),o=!0,[2]}})})},m=document.createElement("div");m.className="form-field photo-container ".concat((null===(i=a.cssClasses)||void 0===i?void 0:i.join(" "))||"");var h=document.createElement("label");h.htmlFor=a.id,h.innerHTML=r(e,a);var g=document.createElement("div");g.className="main-image-container",g.id="".concat(a.id,"-main-content");var w=function(e){var t=document.createElement("div");t.className="selected-image";var n=document.createElement("img");n.id="".concat(e,"-selected-image"),n.alt="Uploaded";var a=document.createElement("button");return a.type="button",a.className="delete-image-button",a.innerHTML="&#x2715;",t.appendChild(n),t.appendChild(a),{selectedImageDiv:t,deleteButton:a}}(a.id),y=w.selectedImageDiv,E=w.deleteButton,C=Pe(a.id),k=C.videoDiv,L=C.captureButton,S=C.flipCameraButton,M=v(),A=document.createElement("canvas");A.id="".concat(a.id,"-canvas"),A.style.display="none",A.width=430,A.height=500;var N=document.createElement("input");N.type="hidden",N.id=a.id,N.name=a.id,N.dataset.fieldId=a.id,N.oninvalid=x(N),m.appendChild(h);var T=He(e,a);T.addEventListener("click",function(){return t(void 0,void 0,void 0,function(){return n(this,function(e){return[2,f(k,g,l)]})})}),g.appendChild(T),m.appendChild(g),m.appendChild(N),m.appendChild(M),m.appendChild(A),N.addEventListener("change",function(t){t.preventDefault(),_e(e,a,N,M)}),E.addEventListener("click",function(){var r=y.querySelector("img.".concat(a.id,"-selected-image"));r&&(r.src=""),N.value="",e.formData[a.id]={value:"",docType:"",format:"",refId:""},o=!1,g.innerHTML="",(T=He(e,a)).addEventListener("click",function(){return t(void 0,void 0,void 0,function(){return n(this,function(e){return[2,f(k,g,l)]})})}),g.appendChild(T),_e(e,a,N,M)}),L.addEventListener("click",function(){return t(void 0,void 0,void 0,function(){var t,r,i,l,c,d;return n(this,function(n){return(t=k.querySelector("video#".concat(a.id,"-video")))?(A.height=t.videoHeight,(r=A.getContext("2d"))?(i=t.videoWidth/2-A.width/2,r.drawImage(t,i,0,A.width,A.height,0,0,A.width,A.height),l=A.toDataURL("image/jpeg",.5),g.innerHTML="",g.appendChild(y),e.formData[a.id]={value:b(l),docType:"photo",format:"image/jpeg",refId:"photo-"+Date.now()},N.value="true",(c=y.querySelector("img#".concat(a.id,"-selected-image")))&&(c.src=l),d=t.srcObject,p(d),t.srcObject=null,o=!1,_e(e,a,N,M),[2]):(console.error("Failed to get canvas context"),[2])):[2]})})}),S.addEventListener("click",function(){return t(void 0,void 0,void 0,function(){return n(this,function(e){return l=!l,T.click(),[2]})})});var D=document.createElement("div");return D.className="form-field-group",D.appendChild(m),D},ze=function(e){return new Promise(function(t){var n;if(window.grecaptcha)t(!0);else if(document.querySelector('script[src*="recaptcha/api.js"]')){var a=function(){window.grecaptcha&&"function"==typeof window.grecaptcha.render?t(!0):setTimeout(a,100)};a()}else{var r=document.createElement("script");r.src="https://www.google.com/recaptcha/api.js?hl=".concat((null===(n=e.recaptcha)||void 0===n?void 0:n.language)||e.currentLanguage),r.async=!0,r.defer=!0,r.onload=function(){var e=function(){window.grecaptcha&&"function"==typeof window.grecaptcha.render?t(!0):setTimeout(e,100)};e()},r.onerror=function(){console.error("Failed to load reCAPTCHA script"),t(!1)},document.head.appendChild(r)}})},Ie=function(e){return t(void 0,void 0,void 0,function(){var t,a;return n(this,function(n){switch(n.label){case 0:return!1!==(null===(t=e.recaptcha)||void 0===t?void 0:t.enabled)&&(null===(a=e.recaptcha)||void 0===a?void 0:a.siteKey)?[4,ze(e)]:[3,2];case 1:n.sent()||(console.error("Failed to initialize reCAPTCHA"),e.recaptcha.enabled=!1),n.label=2;case 2:return[2]}})})},Ve=function(t){var n=t.currentLanguage,a=t.defaultLanguage;t.schema.forEach(function(o){var l,c,d,u,p,f,m,h,v,g,b,w=r(t,o);if(o.type===Se){var y=null===(l=t.container.querySelector('.form-field-group input[data-field-id="'.concat(o.id,'"]')))||void 0===l?void 0:l.closest(".form-field-group"),x=null==y?void 0:y.querySelector("label");if(x){if(x.innerHTML=w,o.info){var E=s(i(t,o.info));x.appendChild(E)}var C=null===(c=x.parentElement)||void 0===c?void 0:c.querySelector(".caps-lock-text");(null==o?void 0:o.capsLockCheck)&&C&&(C.textContent=i(t,(null===(d=t.fallbackErrors)||void 0===d?void 0:d.capsLock)||{})||"Caps Lock is on")}t.container.querySelectorAll('input[data-field-id="'.concat(o.id,'"]')).forEach(function(e){var r=e.dataset.lang||""||n;e.placeholder=i(t,o.placeholder,!1,r,a)})}else{var k=t.container.querySelector('label[for="'.concat(o.id,'"]'));if(k){if(k.innerHTML=w,o.info){E=s(i(t,o.info));k.appendChild(E)}C=null===(u=k.parentElement)||void 0===u?void 0:u.querySelector(".caps-lock-text");(null==o?void 0:o.capsLockCheck)&&C&&(C.textContent=i(t,(null===(p=t.fallbackErrors)||void 0===p?void 0:p.capsLock)||{})||"Caps Lock is on")}var L=t.container.querySelector("input#".concat(o.id));if(L&&(L.placeholder=i(t,o.placeholder,!1,n,a)),o.controlType===we){var S="".concat(o.id,"_confirm"),M={},A={};if(t.labels&&S in t.labels)M=e({},t.labels[S]);else for(var N in o.labelName)M[N]="Confirm ".concat(o.labelName[N]);if(t.placeholders&&S in t.placeholders)A=e({},t.placeholders[S]);else{var T=o.placeholder||{};for(var D in T)A[D]=T[D]?"Confirm ".concat(T[D]):""}var q=t.container.querySelector('label[for="'.concat(o.id,'_confirm"]'));if(q){q.innerHTML=r(e(e({},t),{schema:[e(e({},o),{labelName:M})]}),e(e({},o),{labelName:M}),M);var P=null===(f=q.parentElement)||void 0===f?void 0:f.querySelector(".caps-lock-text");(null==o?void 0:o.capsLockCheck)&&P&&(P.textContent=i(t,(null===(m=t.fallbackErrors)||void 0===m?void 0:m.capsLock)||{})||"Caps Lock is on")}var H=t.container.querySelector("input#".concat(o.id,"_confirm"));H&&(H.placeholder=i(t,A)||"")}}if(o.controlType===xe){var j=t.container.querySelector("select#".concat(o.id));!function(e,t,n,a){if(t){var r=e.currentLanguage,o=e.defaultLanguage,l=t.value;t.innerHTML="";var c=document.createElement("option");c.value="",c.textContent=i(e,a,!1,r,o)||"Select an Option",c.disabled=!0,c.selected=!0,c.hidden=!0,t.appendChild(c),Object.entries(e.allowedValues[n]||{}).forEach(function(n){var a=n[0],c=n[1],d=document.createElement("option");d.value=a,d.textContent=i(e,c,!1,r,o),d.selected=a===l,t.appendChild(d)})}}(t,j,o.id,o.placeholder)}if(o.controlType===ke){var _=t.container.querySelector("#".concat(o.id,"-main-content")),F=null==_?void 0:_.querySelector(".alternate-icon-popup");F&&(F.textContent=i(t,o.placeholder,!1,n,a)||"Click to open camera");var z=null==_?void 0:_.querySelector(".camera-denied-header"),I=null==_?void 0:_.querySelector(".camera-denied-description");z&&(z.textContent=i(t,null===(h=t.fallbackErrors)||void 0===h?void 0:h["".concat(z.dataset.errorCode,"_header")])||""),I&&(I.textContent=i(t,null===(v=t.fallbackErrors)||void 0===v?void 0:v["".concat(I.dataset.errorCode,"_description")])||"")}var V=t.container.querySelector('.form-field[data-field-id="'.concat(o.id,'"] .error-container'));t.lastErrors||(t.lastErrors={});var O=null;if(o.required)if(o.controlType===ke){var W=t.formData[o.id];(W&&""===W.value||!W)&&(O="required")}else{var B=t.container.querySelector('input[data-field-id="'.concat(o.id,'"]'));if(B&&!B.value.trim())O="required";else if(Array.isArray(o.validators)&&B)for(var Y=0;Y<o.validators.length;Y++){if(!(G=new RegExp((null===(g=o.validators[Y])||void 0===g?void 0:g.regex)||"")).test(B.value)){O=Y;break}}}if(t.lastErrors[o.id]=O,V&&null!=O){var Z="";if("required"===O){var R=(null===(b=t.fallbackErrors)||void 0===b?void 0:b.required)||{};Z=i(t,R)||"Invalid value"}else if("number"==typeof O&&Array.isArray(o.validators)){var G;(G=o.validators[O])&&G.error&&(Z=i(t,G.error)||"Invalid value")}V.textContent=Z}else V&&(V.textContent="")});var o=t.container.querySelector('button[type="submit"]');o&&(o.textContent=t.submitLabel)},Oe=function(e,t){void 0===t&&(t="all"),e.container.querySelectorAll("input, select").forEach(function(e){var n,a,r,i,o=e.nextElementSibling&&e.nextElementSibling.classList.contains("error-message")?e.nextElementSibling:(null===(n=e.parentElement)||void 0===n?void 0:n.nextElementSibling)&&e.parentElement.nextElementSibling.classList.contains("error-message")?e.parentElement.nextElementSibling:(null===(a=e.closest(".form-field"))||void 0===a?void 0:a.querySelector(".error-message"))||(null===(r=e.closest(".form-field-group"))||void 0===r?void 0:r.querySelector(".error-message"))||(null===(i=e.parentElement)||void 0===i?void 0:i.querySelector(".error-message"))||null;"touchedOnly"===t&&o&&!o.querySelector(".error-text")||(e.dispatchEvent(new Event("input",{bubbles:!0})),e.dispatchEvent(new Event("change",{bubbles:!0})))})},We=function(e,t,n,a){var r=t||e.languageMap[t];e.currentLanguage=r,e.isRTL=e.rtlLanguages.includes(r),e.container.dir=e.isRTL?"rtl":"ltr",e.container.style.direction=e.isRTL?"rtl":"ltr",e.isSubmitting=!1,a&&(e.additionalSchema=a),function(e){var t,n,a;if(!1!==(null===(t=e.recaptcha)||void 0===t?void 0:t.enabled)&&(null===(n=e.recaptcha)||void 0===n?void 0:n.siteKey)&&window.grecaptcha){var r=document.getElementById("recaptcha-container");if(r){var i=r.getAttribute("data-widget-id");if(i)try{window.grecaptcha.reset(Number(i));var o=document.createElement("div");o.id="recaptcha-container",o.className="recaptcha-container",null===(a=r.parentNode)||void 0===a||a.replaceChild(o,r);var l=window.grecaptcha.render(o,{sitekey:e.recaptcha.siteKey,callback:function(t){e.formData.recaptchaToken=t},"expired-callback":function(){delete e.formData.recaptchaToken}});o.setAttribute("data-widget-id",l.toString())}catch(e){console.error("Failed to update reCAPTCHA language:",e)}}}}(e),n&&(e.submitLabel=n),Ve(e),Oe(e,"touchedOnly")},Be=function(e,r,i){var o,l,c,d,s,u,p,f,m,h=document.getElementById(r)||document.querySelector("#".concat(r));if(!h)throw new Error('Container with id "'.concat(r,'" not found'));var v,b={schema:e.schema,allowedValues:e.allowedValues||{},mandatoryLanguages:e.language.mandatory||["eng"],optionalLanguages:e.language.optional||[],container:h,formData:{},formElements:{},submitLabel:i.submitButton.label,submitAction:i.submitButton.action,currentLanguage:(null===(o=i.language)||void 0===o?void 0:o.currentLanguage)||"eng",defaultLanguage:(null===(l=i.language)||void 0===l?void 0:l.defaultLanguage)||"eng",showLanguageSwitcher:(null===(c=i.language)||void 0===c?void 0:c.showLanguageSwitcher)||!1,languageSwitcherPosition:(null===(d=i.language)||void 0===d?void 0:d.languageSwitcherPosition)||"top",availableLanguages:(null===(s=i.language)||void 0===s?void 0:s.availableLanguages)||a(a([],e.language.mandatory||["eng"],!0),e.language.optional||[],!0),rtlLanguages:(null===(u=i.language)||void 0===u?void 0:u.rtlLanguages)||["ara","ar","he","fa","ur"],isRTL:!1,recaptcha:i.recaptcha,fallbackErrors:(null===(p=e.i18nValues)||void 0===p?void 0:p.errors)||e.errors||{},lastErrors:{},languageMap:g(e.language.langCodeMap||{}),additionalSchema:i.additionalSchema||{},isSubmitting:!1,maxUploadFileSize:e.maxUploadFileSize||5242880,labels:(null===(f=e.i18nValues)||void 0===f?void 0:f.labels)||{},placeholders:(null===(m=e.i18nValues)||void 0===m?void 0:m.placeholders)||{}};v=b.currentLanguage,b.isRTL=b.rtlLanguages.includes(v),b.container.setAttribute("dir",b.isRTL?"rtl":"ltr"),b.container.style.direction=b.isRTL?"rtl":"ltr";var y=function(e){var t=document.createElement("form");if(t.className="form",e.showLanguageSwitcher){var n=function(e){var t=document.createElement("div");t.className="language-switcher";var n=document.createElement("label");n.textContent="Language: ";var a=document.createElement("select");return e.availableLanguages.forEach(function(t){var n=document.createElement("option");n.value=t,n.textContent=t.toUpperCase(),n.selected=t===e.currentLanguage,a.appendChild(n)}),a.addEventListener("change",function(t){var n=t.target;We(e,n.value)}),t.appendChild(n),t.appendChild(a),t}(e);t.appendChild(n)}var a=Ze(e);Object.entries(a).forEach(function(n){n[0];var a=n[1],r=document.createElement("div");r.className="form-group",r.style.display="flex",r.style.flexDirection="row",a.forEach(function(t){var n=Ye(e,t);r.appendChild(n)}),t.appendChild(r)}),function(e,t){var n,a;if(!1!==(null===(n=e.recaptcha)||void 0===n?void 0:n.enabled)&&(null===(a=e.recaptcha)||void 0===a?void 0:a.siteKey)){var r=document.createElement("div");r.id="recaptcha-container",r.className="recaptcha-container",t.appendChild(r)}}(e,t);var r=document.createElement("button");r.type="submit",r.className="form-button",r.textContent=e.submitLabel,t.appendChild(r),t.addEventListener("submit",function(t){t.preventDefault(),x(e)}),e.container.innerHTML="",e.container.appendChild(t),function(e){var t,n;if(!1!==(null===(t=e.recaptcha)||void 0===t?void 0:t.enabled)&&(null===(n=e.recaptcha)||void 0===n?void 0:n.siteKey)){var a=document.getElementById("recaptcha-container");if(a&&window.grecaptcha&&"function"==typeof window.grecaptcha.render)try{var r=window.grecaptcha.render(a,{sitekey:e.recaptcha.siteKey,callback:function(t){e.formData.recaptchaToken=t},"expired-callback":function(){delete e.formData.recaptchaToken}});a.setAttribute("data-widget-id",r.toString())}catch(t){console.error("Failed to initialize reCAPTCHA:",t),e.recaptcha.enabled=!1}else console.warn("reCAPTCHA not available or not properly initialized"),e.recaptcha.enabled=!1}}(e)},x=function(e){if(!e.isSubmitting){var t=e.container.querySelector("form");if(t){var n=t.querySelector('button[type="submit"]');if(n){n.innerHTML="",n.appendChild(function(){var e=document.createElement("div");e.className="flex justify-center items-center h-full";var t=document.createElementNS("http://www.w3.org/2000/svg","svg");t.classList.add("mr-2","h-8","w-8","animate-spin","fill-secondary","text-primary","rtl:ml-2","dark:text-gray-600"),t.setAttribute("viewBox","0 0 100 101"),t.setAttribute("fill","none"),t.setAttribute("aria-hidden","true");var n=document.createElementNS("http://www.w3.org/2000/svg","path");n.setAttribute("d","M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z"),n.setAttribute("fill","currentColor");var a=document.createElementNS("http://www.w3.org/2000/svg","path");return a.setAttribute("d","M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z"),a.setAttribute("fill","currentFill"),t.appendChild(n),t.appendChild(a),e.appendChild(t),e}()),e.isSubmitting=!0,Oe(e);var a=function(e){var t,n;if(!1!==(null===(t=e.recaptcha)||void 0===t?void 0:t.enabled)&&(null===(n=e.recaptcha)||void 0===n?void 0:n.siteKey)){var a=document.getElementById("recaptcha-container");if(a&&window.grecaptcha&&"function"==typeof window.grecaptcha.getResponse){var r=a.getAttribute("data-widget-id");if(r)try{if(!window.grecaptcha.getResponse(Number(r))){var i=document.createElement("div");return i.className="error-message",i.textContent="Please complete the reCAPTCHA",a.appendChild(i),!1}}catch(e){return console.error("Failed to validate reCAPTCHA:",e),!1}}}return!0}(e),r=function(e){var t=!0,n=e.container.querySelector("form"),a=n.querySelectorAll(".form-field .error-message .error-text");if(a&&a.length>0)return!1;n.querySelectorAll("input:not([type='hidden'])").forEach(function(t){var n=t,a=n.dataset.fieldId,r=n.dataset.lang;if(a&&r){var i=e.languageMap[r];i&&3===i.length&&(e.formData[a]||(e.formData[a]=[]),n.value&&e.formData[a].push({language:i,value:n.value}))}else n.id&&("checkbox"===n.type?e.formData[n.id]=n.checked:"date"===n.type||n.value&&(e.formData[n.id]=(e.formData["".concat(n.id,"_prefix")]||"")+n.value))});for(var r=0,i=e.schema;r<i.length;r++){var o=i[r];if(o.required&&!0===o.required&&!1===w(o,e.formData,e.mandatoryLanguages)){t=!1;break}}return t}(e);if(a&&r){var i=Re(e);"function"==typeof e.submitAction?e.submitAction(i):(e.isSubmitting=!1,n.innerHTML=e.submitLabel)}else e.isSubmitting=!1,n.innerHTML=e.submitLabel,t.reportValidity()}}}};return Object.freeze({render:function(){return t(void 0,void 0,void 0,function(){return n(this,function(e){switch(e.label){case 0:return(t=document.createElement("style")).textContent='\n.form-group {\n display: flex;\n flex-wrap: wrap;\n gap: 1rem;\n margin-bottom: 0rem;\n}\n\n.form-field,\n.form-field-group {\n flex: 1;\n min-width: 250px;\n margin-bottom: 0.5rem;\n}\n\n.form-field label,\n.form-field-group label {\n font-size: 14px;\n line-height: 20px;\n font-weight: 600;\n}\n\n.form-field-group > .form-field-group:last-of-type {\n margin-bottom: 0px;\n}\n\n.input_box::placeholder,\n.input_box::-moz-placeholder,\n.input_box:-ms-input-placeholder,\n.input_box::-webkit-input-placeholder,\ninput[type="date"]::-webkit-datetime-edit-text,\nselect option:first-child {\n color: #a0a8ac;\n font:\n 500 14px/21px Inter,\n sans-serif;\n}\n\n.input_box.error {\n border-color: #fe6b6b;\n}\n\n.input_box.error:focus-visible,\n.input_box.error:focus,\n.input_box.error:focus-within {\n border-color: #fe6b6b !important;\n}\n\n.input_box {\n width: 100%;\n padding: 0.75rem;\n border: 1px solid #ccc;\n border-radius: 4px;\n font-size: 0.9rem;\n}\n\n.language-switcher label {\n display: flex;\n align-items: center;\n font-size: 0.9rem;\n}\n\n.recaptcha-container {\n margin: 1rem 0;\n display: flex;\n justify-content: center;\n}\n\n/* Select Input Styling */\n.select-input {\n cursor: pointer;\n background: transparent;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background: #fff url("data:image/svg+xml,%3Csvg viewBox=%270 0 140 140%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpolyline points=%2720,50 70,100 120,50%27 fill=%27none%27 stroke=%27%23333%27 stroke-width=%2715%27/%3E%3C/svg%3E") no-repeat right 10px center;\n background-size: 1rem;\n}\n\n/* Select Input Styling end*/\n\n/* Password Input Styling */\n.password-container {\n position: relative;\n}\n\n.password-eye-icon {\n position: absolute;\n right: 0.75rem; /* Position from the right edge of the input */\n transform: translateY(130%); /* Adjust for perfect vertical centering */\n cursor: pointer;\n color: #6b7280; /* A neutral gray color */\n font-size: 1.25rem; /* Adjust icon size */\n line-height: 1; /* Ensure icon doesn\'t affect line height */\n user-select: none;\n}\n/* Password Input Styling End */\n\n/* Checkbox Container Styling */\n.checkbox-container {\n display: flex; /* Use flexbox to align checkbox and label */\n gap: 1rem; /* Space between checkbox and label (Tailwind gap-2) */\n align-items: center; /* Vertically center the checkbox and label */\n}\n\n.checkbox-container input[type="checkbox"] {\n width: 1.25rem; /* Tailwind w-5 */\n height: 1.25rem; /* Tailwind h-5 */\n border: 1px solid #d1d5db; /* Tailwind border-gray-300 */\n border-radius: 2px; /* Tailwind rounded */\n cursor: pointer;\n flex-shrink: 0; /* Prevent checkbox from shrinking */\n}\n\n.checkbox-container label {\n font-size: 14px; /* Tailwind text-base */\n font-weight: 500; /* Tailwind font-medium */\n line-height: 1; /* Tailwind leading-relaxed */\n color: #1f2937; /* Tailwind text-gray-900 */\n cursor: pointer;\n user-select: none; /* Prevent text selection when clicking label */\n}\n/* Checkbox Container Styling End */\n\n/* Info Icon Styling */\n.info-container {\n position: relative; /* Allows info-detail to be positioned relative to this */\n display: inline-block; /* So it doesn\'t take full width */\n vertical-align: middle; /* Align with text */\n margin-left: 5px;\n}\n\n.info-icon {\n cursor: pointer;\n font-weight: bold;\n display: inline-flex; /* For centering the \'i\' */\n align-items: center;\n justify-content: center;\n vertical-align: text-top;\n height: 1rem;\n width: 1rem;\n}\n\n/* Info Detail Box Styling */\n.info-detail {\n font-size: 12px;\n line-height: 16px;\n font-weight: 400;\n display: none; /* Hidden by default */\n position: absolute;\n top: 100%; /* Position below the icon */\n left: 50%; /* Center horizontally relative to icon */\n transform: translate(10%, -60%); /* Adjust to true center */\n min-width: 250px;\n max-width: 350px;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 8px;\n padding: 8px 12px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n z-index: 1000; /* Ensure it\'s above other content */\n opacity: 0; /* For fade in/out effect */\n visibility: hidden; /* For proper hiding without taking up space */\n transition:\n opacity 0.3s ease-in-out,\n visibility 0.3s ease-in-out;\n}\n\n.info-detail-arrow {\n position: absolute;\n left: 0px;\n transform-origin: 0px 0px;\n transform: translateY(50%) rotate(90deg) translateX(-50%);\n top: 50%;\n}\n\n@media screen and (max-width: 640px) {\n .info-detail {\n transform: translate(-40%, 5%); /* Adjust for smaller screens */\n }\n\n .info-detail-arrow {\n transform-origin: center 0px;\n transform: rotate(180deg);\n left: 94px;\n top: 0px;\n }\n}\n\n.info-detail.active {\n display: block; /* Show when active */\n opacity: 1;\n visibility: visible;\n}\n\n.label-div-display {\n display: flex;\n justify-content: space-between;\n align-items: end;\n}\n\n.caps-lock-span {\n font-size: small;\n color: #2d86ba;\n align-items: center;\n}\n\n.caps-lock-text {\n margin-left: 4px;\n}\n\n/* Prefix for phone number input */\n.prefix-button {\n cursor: pointer;\n text-align: right;\n padding: 0.5em 0.75em !important;\n width: 64px !important;\n border-top-right-radius: 0 !important;\n border-bottom-right-radius: 0 !important;\n}\n\n.prefix-button:disabled {\n cursor: default;\n}\n\n/* The container <div> - needed to position the dropdown content */\n.phone-div-display {\n position: relative;\n display: flex;\n direction: ltr;\n}\n\n/* Dropdown Content (Hidden by Default) */\n.prefix-dropdown {\n display: none;\n position: absolute;\n top: 100%; /* Position below the button */\n background-color: #f1f1f1;\n min-width: 160px;\n box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);\n z-index: 1;\n}\n\n/* Links inside the dropdown */\n.prefix-dropdown a {\n color: black;\n padding: 12px 16px;\n text-decoration: none;\n display: block;\n}\n\n/* Change color of dropdown links on hover */\n.prefix-dropdown a:hover {\n background-color: #ddd;\n}\n\n.prefix-option {\n cursor: pointer;\n}\n\n/* Show the dropdown menu (use JS to add this class to the .prefix-dropdown container\n when the user clicks on the dropdown button) */\n.show {\n display: block;\n}\n\n.input_box ~ .input_box {\n border-top-left-radius: 0 !important;\n border-bottom-left-radius: 0 !important;\n border-left: none !important;\n}\n/* prefix for phone number input */\n\n/* file input styling */\n.file-upload-container {\n position: relative;\n}\n\n.file-name {\n flex-grow: 1; /* Allows file name to take available space */\n color: #555;\n overflow: hidden; /* Hide overflow text */\n white-space: nowrap; /* Prevent text wrapping */\n text-overflow: ellipsis; /* Add ellipsis for overflow */\n margin-right: 10px; /* Space between text and icon */\n font-size: 1rem;\n}\n\n.hidden-file-input {\n display: none; /* Hide the actual file input */\n}\n\n/* Optional: Focus style for accessibility */\n.file-upload-container:focus-within .file-upload-label {\n border-color: #007bff;\n box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.25);\n outline: none; /* Remove default outline */\n}\n/* file input styling end */\n\n/* photo component styling */\n.alternate-icon-div {\n display: flex;\n justify-content: center;\n cursor: pointer;\n width: 430px;\n height: 520px;\n align-items: center;\n position: relative;\n}\n\n.alternate-icon-div img {\n height: 150px;\n}\n\n.selected-image {\n position: relative;\n display: inline-block;\n width: 430px;\n height: 500px;\n background: 1px solid lightgrey;\n border-radius: 10px;\n margin: 10px;\n}\n\n.selected-image img {\n height: 500px !important;\n object-fit: cover;\n border-radius: 10px;\n}\n\n.delete-image-button { \n line-height: 1;\n cursor: pointer;\n border-radius: 50%;\n position: absolute;\n top: 5px;\n right: 5px;\n font-size: 9px;\n line-height: 1;\n color: black;\n width: 15px;\n height: 15px;\n border: none;\n background-color: red;\n display: flex;\n justify-content: center;\n align-items: center;\n font-weight: bold;\n}\n\n.main-image-container {\n display: flex;\n justify-content: center;\n margin: 10px 0;\n border: 1px solid lightgrey;\n border-radius: 10px;\n}\n\n.camera-video-container {\n position: relative; /* All absolutely positioned children are relative to this container */\n width: 432px;\n height: 500px;\n display: flex;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n border-radius: 10px;\n border: 1px solid lightgrey;\n margin: 10px;\n}\n\n.webcam-feed {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n\n/* Capture button styling */\n.capture-button {\n position: absolute;\n bottom: 20px;\n left: 50%;\n transform: translateX(-50%); /* Center the button horizontally */\n \n width: 70px;\n height: 70px;\n border: 4px solid white;\n border-radius: 50%; /* Creates the circular shape */\n background: transparent;\n cursor: pointer;\n \n display: flex;\n justify-content: center;\n align-items: center;\n padding: 0;\n}\n\n.flip-camera-button {\n position: absolute;\n bottom: 20px;\n right: 20px;\n background: transparent;\n border: none;\n cursor: pointer;\n}\n\n/* Inner circle of the capture button */\n.inner-circle {\n width: 50px;\n height: 50px;\n border-radius: 50%;\n background-color: red;\n transition: transform 0.2s ease-in-out;\n}\n\n/* Hover effect for the capture button */\n.capture-button:hover {\n background-color: rgba(255, 255, 255, 0.2);\n}\n\n.capture-button:hover .inner-circle {\n transform: scale(0.9);\n}\n\n.camera-denied-container {\n width: 432px;\n height: 500px;\n display: flex;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n border-radius: 10px;\n margin: 10px;\n background-color: lightgrey;\n padding: 0 10px;\n flex-flow: column;\n}\n\n.camera-denied-header, .camera-denied-description {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.alternate-icon-popup {\n /* Initial styling for the popup */\n position: absolute;\n bottom: 29%; /* Position it above the image */\n left: 50%;\n transform: translateX(-50%); /* Center the popup horizontally */\n \n /* Visuals */\n background-color: #333;\n color: white;\n padding: 8px 12px;\n border-radius: 4px;\n white-space: nowrap; /* Prevent text from wrapping */\n box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);\n\n /* Hide the popup by default */\n opacity: 0;\n visibility: hidden;\n transition: opacity 0.3s, visibility 0.3s; /* Smooth transition */\n}\n\n.alternate-icon-popup::after {\n content: "";\n position: absolute;\n bottom: 100%;\n left: 50%;\n margin-left: -5px;\n border-width: 5px;\n border-style: solid;\n border-color: #333 transparent transparent transparent;\n transform: rotate(180deg);\n}\n\n.alternate-icon-div:hover .alternate-icon-popup {\n /* Show the popup on hover */\n opacity: 1;\n visibility: visible;\n}\n/* photo component styling end */\n',document.head.appendChild(t),function(){var e=document.createElement("style");e.textContent='\n[dir="rtl"] .form-group {\n flex-direction: row-reverse;\n}\n\n[dir="rtl"] .form-field-group {\n flex-direction: column-reverse;\n}\n\n[dir="rtl"] .language-switcher {\n justify-content: flex-start;\n}\n\n[dir="rtl"] .required {\n margin-left: 0;\n margin-right: 4px;\n}\n\n[dir="rtl"] .error-message {\n text-align: right;\n}\n\n[dir="rtl"] .form-field label {\n text-align: right;\n}\n\n[dir="rtl"] .input_box {\n text-align: right;\n}\n\n[dir="rtl"] .form-button {\n margin-right: auto;\n margin-left: 0;\n}\n\n@media (max-width: 768px) {\n [dir="rtl"] .form-group {\n flex-direction: column;\n }\n}\n\n[dir="rtl"] .password-eye-icon {\n left: 0.75rem;\n right: unset;\n}\n\n[dir="rtl"] .checkbox-container {\n flex-direction: row-reverse; /* Align checkbox and label in RTL */\n}\n\n[dir="rtl"] .info-container {\n margin-left: unset;\n margin-right: 5px;\n}\n\n[dir="rtl"] .info-detail {\n transform: translate(-110%, -60%);\n} \n\n[dir="rtl"] .info-detail-arrow {\n left: unset;\n right: 0px;\n transform-origin: 3px -7px;\n transform: translateY(50%) rotate(-90deg) translateX(-50%);\n}\n\n@media screen and (max-width: 640px) {\n [dir="rtl"] .info-detail {\n transform: translate(-70%, 5%); /* Adjust for smaller screens */\n }\n\n [dir="rtl"] .info-detail-arrow {\n transform-origin: center 0px;\n transform: rotate(180deg);\n left: unset;\n right: 28%\n }\n}\n\n[dir="rtl"] .select-input {\n background-position: left 10px center;\n}\n\n[dir="rtl"] .caps-lock-text {\n margin-right: 4px;\n margin-left: unset;\n}\n',document.head.appendChild(e)}(),b.showLanguageSwitcher&&function(){var e=document.createElement("style");e.textContent="\n .language-switcher {\n display: flex;\n gap: 0.5rem;\n margin: 1rem 0;\n justify-content: flex-end;\n }\n\n .language-switcher select {\n padding: 0.5rem;\n border: 1px solid #ccc;\n border-radius: 4px;\n font-size: 0.9rem;\n }\n\n .language-switcher label {\n display: flex;\n align-items: center;\n font-size: 0.9rem;\n }\n ",document.head.appendChild(e)}(),[4,Ie(b)];case 1:return e.sent(),y(b),[2]}var t})})},getFormData:function(){return Re(b)},updateLanguage:function(e,t,n){return We(b,e,t,n)}})},Ye=function(t,n){var a=n.type||Le;switch(n.controlType){case be:return a===Se?function(e,t){var n,a=document.createElement("div");a.className="form-field-group ".concat((null===(n=t.cssClasses)||void 0===n?void 0:n.join(" "))||"");var o=document.createElement("div");o.className="label-div-display";var d=document.createElement("label");d.innerHTML=r(e,t);var p=u(e,t);if(t.info){var m=s(i(e,t.info));d.appendChild(m)}o.appendChild(d),o.appendChild(p),a.appendChild(o),e.formData[t.id]||(e.formData[t.id]=[]);var h=Object.keys(t.labelName||{}),g=function(e,t){return 3===e.length?e:t[e]||e},b=(e.mandatoryLanguages||[]).map(function(t){return g(t,e.languageMap)});return h.forEach(function(n){var r=g(n,e.languageMap),o=document.createElement("div");o.className="form-field lang-".concat(n);var d=document.createElement("input");d.className="input_box",d.type="text",d.id="".concat(t.id,"_").concat(n),d.name="".concat(t.id,"_").concat(n),d.dataset.lang=n,d.dataset.fieldId=t.id,d.oninvalid=x(d),d.placeholder=i(e,t.placeholder,!1,r,e.defaultLanguage);var s=v();o.appendChild(d),o.appendChild(s),a.appendChild(o);var u=function(){var a=!0,i=null,o=d.value.trim(),u=r;if(s.innerHTML="",b.includes(u)&&t.required&&!o)i=(p=l(e,s)).lastError,a=p.isValid;else if(o&&a&&Array.isArray(t.validators)){var p;i=(p=c(e,s,t.validators,o,!0,u,e.currentLanguage)).lastError,a=p.isValid}var f=e.formData[t.id],m=f.find(function(e){return e.language===r});m?m.value=d.value:f.push({language:r,value:d.value}),e.lastErrors=e.lastErrors||{},e.lastErrors["".concat(t.id,"_").concat(n)]=i,d.setCustomValidity(a?"":"Invalid input"),d.classList.toggle("error",!a)};d.addEventListener("input",u),d.addEventListener("change",u),f(t,a,d)}),a}(t,n):function(e,t){var n,a=document.createElement("div");a.className="form-field ".concat((null===(n=t.cssClasses)||void 0===n?void 0:n.join(" "))||"");var d=document.createElement("div");d.className="label-div-display";var p=document.createElement("label");p.innerHTML=r(e,t),p.htmlFor=t.id;var m=u(e,t);if(t.info){var g=s(i(e,t.info));p.appendChild(g)}d.appendChild(p),d.appendChild(m),a.appendChild(d);var b=document.createElement("input");b.className="input_box",b.type="text",b.id=t.id,b.name=t.id,b.oninvalid=x(b),b.dataset.fieldId=t.id,b.value=e.allowedValues[t.id]||"",b.placeholder=i(e,t.placeholder),t.disabled&&h(b);var w=v();return f(t,a,b),b.addEventListener("input",function(){var n=!0,a=null;o(w,"");var r=b.value.trim();if(t.required&&!r)a=(i=l(e,w)).lastError,n=i.isValid;else if(r&&Array.isArray(t.validators)){var i;a=(i=c(e,w,t.validators,r,!1)).lastError,n=i.isValid}e.lastErrors=e.lastErrors||{},e.lastErrors[t.id]=a,b.setCustomValidity(n?"":"Invalid input"),b.classList.toggle("error",!n)}),b.addEventListener("change",function(n){var a=n.target;e.formData[t.id]=a.value,b.dispatchEvent(new Event("input"))}),a.appendChild(b),a.appendChild(w),a}(t,n);case we:return function(t,n){var a,d=document.createElement("div");d.className="form-field password-container ".concat((null===(a=n.cssClasses)||void 0===a?void 0:a.join(" "))||"");var p=document.createElement("div");p.className="label-div-display";var m=document.createElement("label");m.innerHTML=r(t,n),m.htmlFor=n.id;var h=u(t,n);if(n.info){var g=s(i(t,n.info));m.appendChild(g)}p.appendChild(m),p.appendChild(h),d.appendChild(p);var b=document.createElement("input");b.className="input_box password-input",b.type=we,b.id=n.id,b.name=n.id,b.oninvalid=x(b),b.dataset.fieldId=n.id,b.placeholder=i(t,n.placeholder);var w=De(b,"".concat(n.id,"_eye")),y=v();f(n,d,b),b.addEventListener("input",function(){var e=!0,a=null;o(y,"");var r=b.value.trim();if(n.required&&!r)a=(i=l(t,y)).lastError,e=i.isValid;else if(r&&Array.isArray(n.validators)){var i;a=(i=c(t,y,n.validators,r,!1)).lastError,e=i.isValid}t.lastErrors=t.lastErrors||{},t.lastErrors[n.id]=a,b.setCustomValidity(e?"":"Invalid input"),b.classList.toggle("error",!e),H()}),b.addEventListener("change",function(e){var a=e.target;t.formData[n.id]=a.value,b.dispatchEvent(new Event("input"))}),d.appendChild(b),d.appendChild(w),d.appendChild(y);var E="".concat(n.id,"_confirm"),C={},k={};if(t.labels&&E in t.labels)C=e({},t.labels[E]);else for(var L in n.labelName)C[L]="Confirm ".concat(n.labelName[L]);if(t.placeholders&&E in t.placeholders)k=e({},t.placeholders[E]);else{var S=n.placeholder||{};for(var L in S)k[L]=S[L]?"Confirm ".concat(S[L]):""}var M=document.createElement("div");M.className="form-field password-container";var A=document.createElement("div");A.className="label-div-display";var N=document.createElement("label");N.htmlFor=E,N.innerHTML=r(t,n,C);var T=u(t,n);A.appendChild(N),A.appendChild(T),M.appendChild(A);var D=document.createElement("input");D.className="input_box",D.type=we,D.id=E,D.name=E,D.oninvalid=x(D),D.placeholder=i(t,k);var q=De(D,"".concat(n.id,"_confirm_eye"));f(n,M,D);var P=v(),H=function(){var e,a;o(P,"");var r=D.value.trim(),c=!0,d=null,s="true"===D.dataset.touched;if(n.required&&!r){var u=null===(e=t.lastErrors)||void 0===e?void 0:e[E];if(!s&&!t.isSubmitting&&null==u)return D.setCustomValidity(""),D.classList.remove("error"),t.lastErrors=t.lastErrors||{},void(t.lastErrors[E]=null);var p=l(t,P);d=p.lastError,c=p.isValid}else if(r)if(r!==b.value){var f=(null===(a=t.fallbackErrors)||void 0===a?void 0:a.passwordMismatch)||{},m=i(t,f,!0)||"Passwords do not match";o(P,m),D.setCustomValidity(m),D.classList.add("error"),d="mismatch",c=!1}else D.setCustomValidity(""),D.classList.remove("error");else D.setCustomValidity(c?"":"Invalid input"),D.classList.toggle("error",!c);t.lastErrors=t.lastErrors||{},t.lastErrors[E]=d,D.setCustomValidity(c?"":"Invalid input"),D.classList.toggle("error",!c)};D.addEventListener("input",function(e){e.isTrusted&&(D.dataset.touched="true"),H()}),D.addEventListener("change",function(e){var a=e.target;t.formData["".concat(n.id,"_confirm")]=a.value,D.dispatchEvent(new Event("input",{bubbles:!0}))}),M.appendChild(D),M.appendChild(q),M.appendChild(P);var j=document.createElement("div");return j.className="form-field-group",j.appendChild(d),j.appendChild(M),j}(t,n);case ye:return function(e,t){var n,a=document.createElement("div");a.className="form-field ".concat((null===(n=t.cssClasses)||void 0===n?void 0:n.join(" "))||"");var c=document.createElement("label");if(c.innerHTML=r(e,t),c.htmlFor=t.id,t.info){var d=s(i(e,t.info));c.appendChild(d)}a.appendChild(c);var u=document.createElement("input");u.className="input_box",u.type="date",u.id=t.id,u.name=t.id,u.oninvalid=x(u),u.dataset.fieldId=t.id,u.placeholder=i(e,t.placeholder);var p=v();return u.addEventListener("input",function(){var n=!0,a=null;if(o(p,""),t.required&&!u.value){var r=l(e,p);a=r.lastError,n=r.isValid}e.lastErrors=e.lastErrors||{},e.lastErrors[t.id]=a,u.setCustomValidity(n?"":"Invalid input"),u.classList.toggle("error",!n)}),u.addEventListener("change",function(n){var a,r=n.target.value;if(r){var i=new Date(r);e.formData[t.id]=ve(i,null!==(a=t.format)&&void 0!==a?a:"yyyy/MM/dd")}else e.formData[t.id]="";u.dispatchEvent(new Event("input"))}),a.appendChild(u),a.appendChild(p),a}(t,n);case xe:return function(e,t){var n,a=document.createElement("div");a.className="form-field ".concat((null===(n=t.cssClasses)||void 0===n?void 0:n.join(" "))||"");var c=document.createElement("label");if(c.innerHTML=r(e,t),c.htmlFor=t.id,t.info){var d=s(i(e,t.info));c.appendChild(d)}a.appendChild(c);var u=document.createElement("select");u.className="input_box select-input",u.id=t.id,u.name=t.id,u.oninvalid=x(u),u.dataset.fieldId=t.id;var p=document.createElement("option");p.className="select-placeholder",p.value="",p.textContent=i(e,t.placeholder)||"Select an Option",p.disabled=!0,p.selected=!0,p.hidden=!0,u.appendChild(p),Object.entries(e.allowedValues[t.id]||{}).forEach(function(t){var n=t[0],a=t[1],r=document.createElement("option");r.className="select-option",r.value=n,r.textContent=i(e,a),u.appendChild(r)});var f=v(),m=function(){var n=!0,a=null;if(o(f,""),t.required&&!u.value){var r=l(e,f);a=r.lastError,n=r.isValid}e.lastErrors=e.lastErrors||{},e.lastErrors[t.id]=a,u.setCustomValidity(n?"":"Invalid input"),u.classList.toggle("error",!n)};return u.addEventListener("change",function(n){var a=n.target;e.formData[t.id]=a.value,u.style.color=a.value?"black":"",m()}),u.addEventListener("input",m),a.appendChild(u),a.appendChild(f),a}(t,n);case Ee:return function(e,t){var n,a,i=document.createElement("div");i.className="form-field checkbox-container ".concat((null===(n=t.cssClasses)||void 0===n?void 0:n.join(" "))||"");var c=document.createElement("label");c.htmlFor=t.id,c.innerHTML=r(e,t);var d=document.createElement("input");d.type="checkbox",d.id=t.id,d.className="checkbox-input",d.name=t.id,d.oninvalid=x(d),d.dataset.fieldId=t.id,d.checked=Boolean((null===(a=e.allowedValues)||void 0===a?void 0:a[t.id])||!1),t.disabled&&h(d);var s=v();i.appendChild(d),i.appendChild(c),d.addEventListener("change",function(){var n=!0,a=null;if(o(s,""),t.required&&!this.checked){var r=l(e,s);a=r.lastError,n=r.isValid}e.lastErrors=e.lastErrors||{},e.lastErrors[t.id]=a,d.setCustomValidity(n?"":"Invalid input"),d.classList.toggle("error",!n),e.formData[t.id]=this.checked});var u=document.createElement("div");return u.className="form-field-group",u.appendChild(i),u.appendChild(s),u}(t,n);case Ce:return function(e,t){var n,a=document.createElement("div");a.className="form-field ".concat((null===(n=t.cssClasses)||void 0===n?void 0:n.join(" "))||"");var d=document.createElement("div");d.className="label-div-display";var p=document.createElement("label");p.innerHTML=r(e,t),p.htmlFor=t.id;var f=u(e,t);if(t.info){var m=s(i(e,t.info));p.appendChild(m)}d.appendChild(p),d.appendChild(f),a.appendChild(d);var g=document.createElement("div");g.className="phone-div-display";var b=function(e,t){if(!e||0===e.length)return"";if(!t||"string"!=typeof t)return e[0];for(var n=0,a=e;n<a.length;n++){var r=a[n];if(t.startsWith(r))return r}return e[0]}(t.prefix,e.allowedValues[t.id]||""),w=qe(e,t,a,g,b),y=document.createElement("input");y.className="input_box phone_input",y.type="tel",y.id=t.id,y.name=t.id,y.oninvalid=x(y),y.dataset.fieldId=t.id,e.allowedValues[t.id]&&"string"==typeof e.allowedValues[t.id]&&(y.value=e.allowedValues[t.id].replace(b||"","").trim()),y.placeholder=i(e,t.placeholder),g.appendChild(y),t.disabled&&h(y);var E=v();return y.addEventListener("keydown",function(e){var t,n=["a","c","x","v"],a=e.key;["Backspace","Tab","Control","End","Home","ArrowLeft","ArrowRight","Delete"].includes(a)||(t=a,e.ctrlKey&&n.includes(t.toLowerCase()))||/[0-9]/.test(e.key)||e.preventDefault()}),y.addEventListener("input",function(){var n=!0,a=null;o(E,"");var r=y.value.trim();if(t.required&&!r)a=(i=l(e,E)).lastError,n=i.isValid;else if(r&&Array.isArray(t.validators)){var i;a=(i=c(e,E,t.validators,r,!1)).lastError,n=i.isValid}e.lastErrors=e.lastErrors||{},e.lastErrors[t.id]=a,y.setCustomValidity(n?"":"Invalid input"),y.classList.toggle("error",!n),w&&(e.formData[t.id]="".concat(w.value).concat(y.value),w.setCustomValidity(n?"":"Invalid input"),w.classList.toggle("error",!n))}),y.addEventListener("change",function(n){var a=n.target;e.formData[t.id]=(w?w.value:"")+a.value,y.dispatchEvent(new Event("input"))}),a.appendChild(g),a.appendChild(E),a}(t,n);case ke:return Fe(t,n);default:throw new Error("Unsupported control type: ".concat(n.controlType))}},Ze=function(e){return e.schema.reduce(function(e,t){var n=t.alignmentGroup||"solo_".concat(t.id);return e[n]=e[n]||[],e[n].push(t),e},{})},Re=function(e){return e.schema.reduce(function(t,n){return t[n.id]=e.formData[n.id],t},{})};window.onclick=function(e){e.target&&!e.target.matches(".prefix-button")&&Array.from(document.getElementsByClassName("prefix-dropdown")).forEach(function(e){e.classList.contains("show")&&e.classList.remove("show")})};export{Be as JsonFormBuilder};
2
+ //# sourceMappingURL=JsonFormBuilder.esm.js.map