kwikid-forms 0.0.9 → 0.1.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/bundles/kwikid-forms.umd.js +385 -68
- package/bundles/kwikid-forms.umd.js.map +1 -1
- package/esm2015/lib/renderer/form-view/definitions/actions/form-view.actions.enum.definitions.js +5 -1
- package/esm2015/lib/renderer/form-view/definitions/actions/form-view.actions.type.definitions.js +1 -1
- package/esm2015/lib/renderer/form-view/form-view.component.js +155 -22
- package/esm2015/lib/renderer/renderer.component.js +4 -1
- package/esm2015/lib/renderer/renderer.config-converter.helper.js +19 -7
- package/esm2015/lib/renderer/renderer.service.js +18 -2
- package/fesm2015/kwikid-forms.js +196 -28
- package/fesm2015/kwikid-forms.js.map +1 -1
- package/lib/renderer/form-view/definitions/actions/form-view.actions.enum.definitions.d.ts +5 -1
- package/lib/renderer/form-view/definitions/actions/form-view.actions.type.definitions.d.ts +1 -1
- package/lib/renderer/form-view/form-view.component.d.ts +10 -1
- package/lib/renderer/renderer.service.d.ts +1 -0
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kwikid-forms.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../projects/kwikid-forms/src/lib/builder/builder.component.ts","../../../projects/kwikid-forms/src/lib/builder/builder.component.html","../../../projects/kwikid-forms/src/lib/renderer/form-view/definitions/actions/form-view.actions.enum.definitions.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/definitions/apis/form-view.apis.enum.definitions.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/definitions/common/form-view.common.enum.definitions.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/definitions/fields/form-view.fields.enum.definitions.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/form-view.decorators.ts","../../../projects/kwikid-forms/src/lib/renderer/renderer.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/helpers/form-view.common.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/helpers/form-view.condition.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/helpers/form-view.actions.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/definitions/rules/form-view.rules.enum.definitions.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/definitions/sources/form-view.sources.enum.definitions.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/helpers/form-view.sources.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/helpers/form-view.rules.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/helpers/form-view.defaults.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/helpers/form-view.fields.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/helpers/form-view.validations.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/form-view.service.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/helpers/form-view.apis.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/form-view.component.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/form-view.component.html","../../../projects/kwikid-forms/src/lib/renderer/forms-list/forms-list.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/forms-list/forms-list.component.ts","../../../projects/kwikid-forms/src/lib/renderer/forms-list/forms-list.component.html","../../../projects/kwikid-forms/src/lib/renderer/helpers/renderer.sources.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/helpers/renderer.condition.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/helpers/renderer.actions.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/helpers/renderer.rules.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/helpers/renderer.validations.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/renderer.config-converter.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/renderer.service.ts","../../../projects/kwikid-forms/src/lib/renderer/renderer.component.ts","../../../projects/kwikid-forms/src/lib/renderer/renderer.component.html","../../../projects/kwikid-forms/src/lib/builder/builder.module.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/form-view.module.ts","../../../projects/kwikid-forms/src/lib/renderer/forms-list/forms-list.module.ts","../../../projects/kwikid-forms/src/lib/renderer/renderer.module.ts","../../../projects/kwikid-forms/src/lib/kwikid-forms.module.ts","../../../projects/kwikid-forms/src/public_api.ts","../../../projects/kwikid-forms/src/kwikid-forms.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","import { copyArrayItem, moveItemInArray } from \"@angular/cdk/drag-drop\";\r\nimport { Component, OnInit, VERSION } from \"@angular/core\";\r\nimport { FormControl, FormGroup } from \"@angular/forms\";\r\nimport {\r\n KwikUIButtonComponent,\r\n KwikUIInputComponent,\r\n KwikUIProgressSegmentedComponent\r\n} from \"kwikui\";\r\nimport { cloneDeep } from \"lodash\";\r\n\r\ntype IMenu = {\r\n title: string;\r\n id?: string;\r\n key?: string;\r\n temp?: string;\r\n component?: any;\r\n props?: any;\r\n};\r\n\r\n@Component({\r\n selector: \"kwikid-forms-builder\",\r\n templateUrl: \"./builder.component.html\",\r\n styleUrls: [\"./builder.component.scss\"]\r\n})\r\nexport class KwikIDFormsBuilderComponent implements OnInit {\r\n buttonComponent = {\r\n disabled: false,\r\n id: \"\",\r\n label: \"Button\",\r\n showLoader: false,\r\n styles: \"\",\r\n class: \"tui-space_right-3 tui-space_bottom-3\",\r\n type: \"button\",\r\n appearance: \"primary\",\r\n icon: \"\",\r\n iconRight: \"\",\r\n shape: null,\r\n size: \"m\"\r\n };\r\n\r\n progressSegmentedComponent = {\r\n colors: \"tui(--tui-primary)\",\r\n max: \"5\",\r\n size: \"m\",\r\n value: \"2\"\r\n };\r\n\r\n inputComponent = {\r\n case: \"default\",\r\n disabled: false,\r\n focus: false,\r\n id: \"id\",\r\n invalid: false,\r\n label: \"label\",\r\n placeholder: \"placeholder\",\r\n type: \"text\",\r\n validators: {\r\n required: true\r\n }\r\n };\r\n\r\n formGroup = new FormGroup({});\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {\r\n for (let m of this.menu) {\r\n m.id = this.revisedRandId();\r\n }\r\n }\r\n\r\n revisedRandId() {\r\n return Math.random()\r\n .toString(36)\r\n .replace(/[^a-z]+/g, \"\");\r\n }\r\n\r\n handleOnChange(\r\n event: { target: { value: any } },\r\n id: string | number,\r\n key: string | number,\r\n idx: any\r\n ) {\r\n const _value = event.target.value;\r\n this.formGroup.controls[id][\"controls\"][key].patchValue(_value);\r\n }\r\n\r\n toggleShow(id: any) {\r\n console.log(id);\r\n }\r\n\r\n name = \"Angular \" + VERSION.major;\r\n menu: Array<IMenu> = [\r\n {\r\n title: \"button\",\r\n key: \"button\",\r\n component: KwikUIButtonComponent,\r\n props: this.buttonComponent\r\n },\r\n {\r\n title: \"progress-segmented\",\r\n key: \"progress_segmented\",\r\n component: KwikUIProgressSegmentedComponent,\r\n props: this.progressSegmentedComponent\r\n },\r\n {\r\n title: \"input\",\r\n key: \"input\",\r\n component: KwikUIInputComponent,\r\n props: this.inputComponent\r\n }\r\n ];\r\n table: Array<IMenu> = [];\r\n\r\n drop(event: any) {\r\n // let item = JSON.parse(JSON.stringify(event));\r\n if (event.previousContainer !== event.container) {\r\n console.log(\"copying\");\r\n\r\n // Clone the item that was dropped.\r\n let clone = cloneDeep(event.previousContainer.data[event.previousIndex]);\r\n clone.id = clone.key + \"__\" + this.revisedRandId();\r\n event.previousContainer.data[event.previousIndex] = clone;\r\n\r\n let newFormGroup = new FormGroup({});\r\n\r\n const props = clone.props;\r\n\r\n Object.keys(props).forEach((key) => {\r\n newFormGroup.addControl(\r\n key,\r\n new FormControl({ value: props[key], disabled: false })\r\n );\r\n });\r\n\r\n this.formGroup.addControl(clone.id, newFormGroup);\r\n\r\n copyArrayItem(\r\n event.previousContainer.data,\r\n event.container.data,\r\n event.previousIndex,\r\n event.currentIndex\r\n );\r\n } else {\r\n console.log(\"moving\");\r\n moveItemInArray(\r\n event.container.data,\r\n event.previousIndex,\r\n event.currentIndex\r\n );\r\n }\r\n if (event.previousContainer.data) {\r\n this.menu = this.menu.filter((f) => !f.temp);\r\n }\r\n }\r\n\r\n exited(event: any) {\r\n const currentIdx = event.container.data.findIndex(\r\n (f: { id: any }) => f.id === event.item.data.id\r\n );\r\n this.menu.splice(currentIdx + 1, 0, {\r\n ...event.item.data,\r\n temp: true\r\n });\r\n }\r\n\r\n entered() {\r\n this.menu = this.menu.filter((f) => !f.temp);\r\n }\r\n\r\n isNumber(val: any) {\r\n return typeof val;\r\n }\r\n\r\n removeElement(idx: number, id: string) {\r\n this.formGroup.removeControl(id);\r\n this.table.splice(idx, 1);\r\n }\r\n\r\n getJSON() {\r\n for (let t of this.table) {\r\n t.props = this.formGroup.getRawValue()[t.id];\r\n }\r\n console.log(this.table);\r\n }\r\n}\r\n","<!-- <div>{{ name }}</div>\r\n<p>Start editing to see some magic happen :)</p>\r\n\r\n<button (click)=\"getJSON()\">Get JSON</button>\r\n\r\n<div class=\"drap-copy\">\r\n <div>\r\n <ul\r\n class=\"menu\"\r\n cdkDropList\r\n #menuList=\"cdkDropList\"\r\n [cdkDropListData]=\"menu\"\r\n cdkDropListSortingDisabled\r\n [cdkDropListConnectedTo]=\"[tableList]\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n (cdkDropListExited)=\"exited($event)\"\r\n (cdkDropListEntered)=\"entered()\"\r\n >\r\n <li class=\"item\" *ngFor=\"let item of menu\" cdkDrag [cdkDragData]=\"item\">\r\n <div class=\"item\" *cdkDragPlaceholder>\r\n <a>{{ item.title }}</a>\r\n </div>\r\n <ng-container *ngComponentOutlet=\"item.component\"> </ng-container>\r\n </li>\r\n </ul>\r\n </div>\r\n\r\n <div\r\n class=\"table\"\r\n cdkDropList\r\n #tableList=\"cdkDropList\"\r\n [cdkDropListData]=\"table\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n >\r\n <div class=\"content\">\r\n <div>\r\n <div class=\"item\" *ngFor=\"let item of table; let idx = index\" cdkDrag>\r\n <ng-container *ngComponentOutlet=\"item.component\"> </ng-container>\r\n <div class=\"item-header\">\r\n <p>{{ idx }}--{{ item.title }}</p>\r\n <button (click)=\"removeElement(idx, item.id)\">Remove</button>\r\n </div>\r\n <div class=\"desc\">\r\n <div>id - {{ item.id }}</div>\r\n <div>key - {{ item.key }}</div>\r\n </div>\r\n <ng-container\r\n *ngTemplateOutlet=\"formModal; context: item\"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<ng-template #formModal let-component=\"component\" let-props=\"props\" let-id=\"id\">\r\n <div class=\"field_editor\">\r\n <div *ngFor=\"let i of props | keyvalue; let idx = index\">\r\n <div class=\"formModalInputGroup\">\r\n <label>{{ i.key }}</label>\r\n <input\r\n value=\"{{ i.value }}\"\r\n (keyup)=\"handleOnChange($event, id, i.key, idx)\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n</ng-template> -->\r\n","export enum EActionKey {\r\n SET_VALUE = \"SET_VALUE\",\r\n FIELD_MESSAGE_SHOW = \"FIELD_MESSAGE_SHOW\",\r\n FIELD_MESSAGES_HIDE = \"FIELD_MESSAGES_HIDE\",\r\n FIELD_ERROR_SHOW = \"FIELD_ERROR_SHOW\",\r\n FIELD_ERROR_HIDE = \"FIELD_ERROR_HIDE\",\r\n FIELD_SHOW = \"FIELD_SHOW\",\r\n FIELD_HIDE = \"FIELD_HIDE\",\r\n FIELD_ENABLE = \"FIELD_ENABLE\",\r\n FIELD_DISABLE = \"FIELD_DISABLE\",\r\n FIELD_RESET = \"FIELD_RESET\",\r\n HANDLE_CONNECTED_ELEMENTS = \"HANDLE_CONNECTED_ELEMENTS\",\r\n CUSTOM = \"CUSTOM\"\r\n}\r\n","export enum EApiStatusType {\r\n DEFAULT = \"default\",\r\n LOADING = \"loading\",\r\n SUCCESS = \"success\",\r\n FAILED = \"failed\"\r\n}\r\n","export enum EPatternKey {\r\n CUSTOM = \"CUSTOM\",\r\n IS_ADDRESS = \"IS_ADDRESS\",\r\n IS_ALPHA = \"IS_ALPHA\",\r\n IS_ALPHANUMERIC = \"IS_ALPHANUMERIC\",\r\n IS_BOOLEAN = \"IS_BOOLEAN\",\r\n IS_EMAIL = \"IS_EMAIL\",\r\n IS_EMPTY = \"IS_EMPTY\",\r\n IS_FALSE = \"IS_FALSE\",\r\n IS_HTML = \"IS_HTML\",\r\n IS_INTEGER = \"IS_INTEGER\",\r\n IS_IP_ADDRESS = \"IS_IP_ADDRESS\",\r\n IS_JSON = \"IS_JSON\",\r\n IS_LOWERCASE = \"IS_LOWERCASE\",\r\n IS_NOT_EMPTY = \"IS_NOT_EMPTY\",\r\n IS_NUMBER = \"IS_NUMBER\",\r\n IS_TRUE = \"IS_TRUE\",\r\n IS_UPPERCASE = \"IS_UPPERCASE\",\r\n IS_URL = \"IS_URL\",\r\n IS_AADHAAR_NUMBER = \"IS_AADHAAR_NUMBER\",\r\n IS_BANK_ACCOUNT_NO = \"IS_BANK_ACCOUNT_NO\",\r\n IS_BANK_SWIFT_CODE = \"IS_BANK_SWIFT_CODE\",\r\n IS_BIRTH_CERTIFICATE_NO = \"IS_BIRTH_CERTIFICATE_NO\",\r\n IS_CHEQUE_NO = \"IS_CHEQUE_NO\",\r\n IS_CIN = \"IS_CIN\",\r\n IS_CREDIT_CARD_NO = \"IS_CREDIT_CARD_NO\",\r\n IS_DRIVING_LICENSE = \"IS_DRIVING_LICENSE\",\r\n IS_GSTIN = \"IS_GSTIN\",\r\n IS_IFSC_NO = \"IS_IFSC_NO\",\r\n IS_MICR_CODE = \"IS_MICR_CODE\",\r\n IS_MOBILE_NO = \"IS_MOBILE_NO\",\r\n IS_MOBILE_NO_IN = \"IS_MOBILE_NO_IN\",\r\n IS_NEFT_OR_RTGS_NO = \"IS_NEFT_OR_RTGS_NO\",\r\n IS_PAN_NUMBER = \"IS_PAN_NUMBER\",\r\n IS_PASSPORT = \"IS_PASSPORT\",\r\n IS_PHONE_NO = \"IS_PHONE_NO\",\r\n IS_PINCODE = \"IS_PINCODE\",\r\n IS_PURCHASE_ORDER_NO = \"IS_PURCHASE_ORDER_NO\",\r\n IS_RATION_CARD_NO = \"IS_RATION_CARD_NO\",\r\n IS_SERVICE_TAX_NO = \"IS_SERVICE_TAX_NO\",\r\n IS_SOCIAL_SECURITY_NO = \"IS_SOCIAL_SECURITY_NO\",\r\n IS_UPI_TRANSACTION_REFERENCE_NO = \"IS_UPI_TRANSACTION_REFERENCE_NO\",\r\n IS_VAT_TIN_NO = \"IS_VAT_TIN_NO\",\r\n IS_VEHICLE_REGISTRATION_NO = \"IS_VEHICLE_REGISTRATION_NO\",\r\n IS_VOTER_ID = \"IS_VOTER_ID\"\r\n}\r\n\r\nexport enum EPattern {\r\n IS_ALPHA = \"^[a-zA-Z]+$\",\r\n IS_ADDRESS = \"^(\\\\w*\\\\s*[#-,/.()&]*)+\",\r\n IS_ALPHANUMERIC = \"^[a-zA-Z0-9]+$\",\r\n IS_BOOLEAN = \"(true|false)\",\r\n IS_EMAIL = \"^\\\\w+([\\\\.-]?\\\\w+)*@\\\\w+([\\\\.-]?\\\\w+)*(\\\\.\\\\w{2,3})+$\",\r\n IS_EMPTY = \"^$\",\r\n IS_FALSE = \"false\",\r\n IS_HTML = \"^<([a-z]+)([^<]+)(?:>(.)</\\\\1>|\\\\s+/>)$\",\r\n IS_INTEGER = \"^[+-]?d+$\",\r\n IS_IP_ADDRESS = \"^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$\",\r\n IS_JSON = \"^\\\\s*({(.|\\\\s)}|[(.|\\\\s)])\\\\s*$\",\r\n IS_LOWERCASE = \"^[a-z]+$\",\r\n IS_NOT_EMPTY = \"^.+$\",\r\n IS_NUMBER = \"^[+-]?d+(.d+)?$\",\r\n IS_TRUE = \"true\",\r\n IS_UPPERCASE = \"^[A-Z]+$\",\r\n IS_URL = \"^(?:http(s)?://)?[w.-]+(?:.[w.-]+)+[w-._~:/?#[]@!$&'()*+,;=.]+$\",\r\n IS_AADHAAR_NUMBER = \"^[0-9]{12}$\",\r\n IS_BANK_ACCOUNT_NO = \"^[0-9]{9,18}$\",\r\n IS_BANK_SWIFT_CODE = \"^[A-Z]{4}[A-Z]{2}[0-9A-Z]{2}[0-9A-Z]{3}$\",\r\n IS_BIRTH_CERTIFICATE_NO = \"^[A-Z]{2}[0-9]{6}[A-Z]{1}[0-9]{2}$\",\r\n IS_CHEQUE_NO = \"^[0-9]{6,14}$\",\r\n IS_CIN = \"^[A-Z]{3}[0-9]{5}[0-9A-Z]{3}$\",\r\n IS_CREDIT_CARD_NO = \"^[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{4}$\",\r\n IS_DRIVING_LICENSE = \"^[A-Z]{2}[0-9]{2}((19|20)[0-9][0-9])[0-9]{7}$\",\r\n IS_GSTIN = \"^[0-9]{2}[A-Z]{5}[0-9]{4}[A-Z]{1}[1-9A-Z]{1}Z[0-9A-Z]{1}$\",\r\n IS_IFSC_NO = \"^[A-Z]{4}[0][A-Z0-9]{6}$\",\r\n IS_MICR_CODE = \"^[0-9]{9}$\",\r\n IS_MOBILE_NO = \"^[6-9]\\\\d{9}$\",\r\n IS_MOBILE_NO_IN = \"^(\\\\+91)[6-9]\\\\d{9}$\",\r\n IS_NEFT_OR_RTGS_NO = \"^[A-Z]{4}[0-9]{7}$\",\r\n IS_PAN_NUMBER = \"^[A-Z]{5}[[0-9]{4}[A-Z]{1}$\",\r\n IS_PASSPORT = \"^[A-PR-WYa-pr-wy][1-9]\\\\d\\\\s?\\\\d{4}[1-9]$\",\r\n IS_PHONE_NO = \"^[6-9]\\\\d{9}$\",\r\n IS_PINCODE = \"^[1-9][0-9]{5}$\",\r\n IS_PURCHASE_ORDER_NO = \"^[0-9]{1,5}$\",\r\n IS_RATION_CARD_NO = \"^[A-Z]{3}[0-9]{7}$\",\r\n IS_SERVICE_TAX_NO = \"^[A-Z]{5}[0-9]{4}[A-Z]{1}$\",\r\n IS_SOCIAL_SECURITY_NO = \"^[0-9]{3}-[0-9]{2}-[0-9]{4}$\",\r\n IS_UPI_TRANSACTION_REFERENCE_NO = \"^[a-zA-Z0-9]{3,128}@[a-z]{3,9}$\",\r\n IS_VAT_TIN_NO = \"^[0-9]{11}$\",\r\n IS_VEHICLE_REGISTRATION_NO = \"^[A-Z]{2}[0-9]{2}((19|20)[0-9][0-9])[0-9]{6}$\",\r\n IS_VOTER_ID = \"^[A-Z]{3}[0-9]{7}$\"\r\n}\r\n\r\nexport enum EMessageType {\r\n DEFAULT = \"default\",\r\n ERROR = \"error\",\r\n SUCCESS = \"success\",\r\n WARNING = \"warning\"\r\n}\r\n","export enum EFieldType {\r\n TITLE = \"title\",\r\n TEXT = \"text\",\r\n CHECKBOX = \"checkbox\",\r\n NUMBER = \"number\",\r\n DATE = \"date\",\r\n PHONE = \"phone\",\r\n RADIO = \"radio\",\r\n DROPDOWN_WITH_SEARCH = \"dropdown-with-search\",\r\n API_CALL = \"api-call\",\r\n OTP = \"otp\",\r\n AADHAAR_NUMBER = \"aadhaar-number\"\r\n}\r\n","/**\r\n * A function that logs the execution of a method.\r\n * @param {any} target - The object the method belongs to.\r\n * @param {string} propertyKey - The name of the method.\r\n * @param {PropertyDescriptor} descriptor - The property descriptor for the method.\r\n */\r\nexport function log(\r\n target: any,\r\n propertyKey: string,\r\n descriptor: PropertyDescriptor\r\n) {\r\n // save a reference to the original method\r\n const originalMethod = descriptor.value;\r\n // update the descriptor value with a new function that will log and execute the original method\r\n descriptor.value = function (...args: any[]) {\r\n console.group(\"Logging Method\"); // start a new logging group\r\n console.time(\"Execution Time:\"); // start a timer\r\n\r\n let result; // declare result variable\r\n try {\r\n // execute the original method and save the result\r\n result = originalMethod.apply(this, args);\r\n } catch (error) {\r\n // if an error is thrown, log the error and throw it again\r\n logSyncMethodError(target.constructor.name, propertyKey, args, error);\r\n console.timeEnd(`Execution Time:`); // stop the timer\r\n console.groupEnd(); // end the logging group\r\n throw error;\r\n }\r\n\r\n // if the result is a Promise, handle it as an async method\r\n if (result instanceof Promise) {\r\n result = result\r\n .then((resolvedValue) => {\r\n // on success, log the resolved value and return it\r\n logAsyncMethod(\r\n target.constructor.name,\r\n propertyKey,\r\n args,\r\n resolvedValue\r\n );\r\n console.timeEnd(`Execution Time:`); // stop the timer\r\n console.groupEnd(); // end the logging group\r\n return resolvedValue;\r\n })\r\n .catch((error) => {\r\n // on error, log the error and throw it again\r\n logAsyncMethodError(\r\n target.constructor.name,\r\n propertyKey,\r\n args,\r\n error\r\n );\r\n console.timeEnd(`Execution Time:`); // stop the timer\r\n console.groupEnd(); // end the logging group\r\n throw error;\r\n });\r\n } else {\r\n // if the result is not a Promise, handle it as a sync method\r\n logSyncMethod(target.constructor.name, propertyKey, args, result);\r\n console.timeEnd(\"Execution Time:\");\r\n console.groupEnd();\r\n }\r\n return result;\r\n };\r\n}\r\n\r\n/**\r\n * This function logs a sync method's information to the console.\r\n * @param {string} className - The name of the class where the method belongs.\r\n * @param {string} methodName - The name of the method being called.\r\n * @param {any[]} args - An array of arguments passed to the method.\r\n * @param {any} result - The result of the method.\r\n */\r\nfunction logSyncMethod(className, methodName, args, result) {\r\n console.log(\r\n \"%cType: Sync Method -\",\r\n \"color: #0d47a1; font-weight: bold;\",\r\n \"\\nClass:\",\r\n className,\r\n \"\\nMethod:\",\r\n methodName,\r\n \"\\nArgs:\",\r\n args,\r\n \"\\nReturn:\",\r\n result\r\n );\r\n}\r\n\r\n/**\r\n * Logs an error that occurred during the execution of a synchronous method.\r\n * @param {string} className - The name of the class the method belongs to.\r\n * @param {string} methodName - The name of the method.\r\n * @param {any[]} args - The arguments passed to the method.\r\n * @param {Error} error - The error that occurred.\r\n */\r\nfunction logSyncMethodError(className, methodName, args, error) {\r\n console.log(\r\n \"%cType: Sync Method -\",\r\n \"color: #0d47a1; font-weight: bold;\",\r\n \"\\nClass:\",\r\n className,\r\n \"\\nMethod:\",\r\n methodName,\r\n \"\\nArgs:\",\r\n args,\r\n \"\\nError:\",\r\n error\r\n );\r\n}\r\n\r\n/**\r\n * Logs the result of the execution of an asynchronous method.\r\n * @param {string} className - The name of the class the method belongs to.\r\n * @param {string} methodName - The name of the method.\r\n * @param {any[]} args - The arguments passed to the method.\r\n * @param {any} result - The result of the method execution.\r\n */\r\nfunction logAsyncMethod(className, methodName, args, result) {\r\n console.log(\r\n \"%cType: Async Method -\",\r\n \"color: #1565c0; font-weight: bold;\",\r\n \"\\nClass:\",\r\n className,\r\n \"\\nMethod:\",\r\n methodName,\r\n \"\\nArgs:\",\r\n args,\r\n \"\\nReturn:\",\r\n result\r\n );\r\n}\r\n\r\n/**\r\n * Logs an error that occurred during the execution of an asynchronous method.\r\n * @param {string} className - The name of the class the method belongs to.\r\n * @param {string} methodName - The name of the method.\r\n * @param {any[]} args - The arguments passed to the method.\r\n * @param {Error} error - The error that occurred.\r\n */\r\nfunction logAsyncMethodError(className, methodName, args, error) {\r\n console.log(\r\n \"%cType: Async Method -\",\r\n \"color: #1565c0; font-weight: bold;\",\r\n \"\\nClass:\",\r\n className,\r\n \"\\nMethod:\",\r\n methodName,\r\n \"\\nArgs:\",\r\n args,\r\n \"\\nError:\",\r\n error\r\n );\r\n}\r\n","import { TuiDay } from \"@taiga-ui/cdk\";\r\nimport jp from \"jsonpath\";\r\n\r\nexport const hasKey = (object: any, key: string): boolean => {\r\n return object.hasOwnProperty(key);\r\n};\r\n\r\nexport const isEmpty = (value: any): boolean => {\r\n if (value === \"\" || value === undefined || value === null) {\r\n return true;\r\n } else if (\r\n value &&\r\n Object.keys(value).length === 0 &&\r\n Object.getPrototypeOf(value) === Object.prototype\r\n ) {\r\n return true;\r\n } else if (Array.isArray(value)) {\r\n if (value.length === 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n};\r\n\r\nexport const isNotEmpty = (value: any) => {\r\n return !isEmpty(value);\r\n};\r\n\r\nexport const handleJPQueryResponse = (value: any): any => {\r\n /**\r\n * jp.query doesn't always return an array with one element\r\n * so directly can't access with [0], need to check conditionally\r\n */\r\n if (Array.isArray(value)) {\r\n if (value.length > 0) {\r\n value = value[0];\r\n } else if (value.length === 0) {\r\n value = \"\";\r\n }\r\n }\r\n\r\n return value;\r\n};\r\n\r\nexport const jpQueryWrapper = (obj: any, key: string): boolean => {\r\n return handleJPQueryResponse(jp.query(obj, key));\r\n};\r\n\r\nexport const isSingleForm = (formsList: any[]): boolean => {\r\n return formsList.length === 1;\r\n};\r\n","import { TuiDay } from \"@taiga-ui/cdk\";\r\nimport jp from \"jsonpath\";\r\nimport _ from \"lodash\";\r\nimport { EFieldType } from \"../definitions/fields/form-view.fields.enum.definitions\";\r\nimport {\r\n TField,\r\n TFieldRadio,\r\n TFieldType\r\n} from \"../definitions/fields/form-view.fields.type.definitions\";\r\n\r\nexport const hasKey = (object: any, key: string): boolean => {\r\n return object.hasOwnProperty(key);\r\n};\r\n\r\nexport const hasPath = (object: any, path: string): boolean => {\r\n return _.has(object, path);\r\n};\r\n\r\nexport const isEmptyString = (value: string): boolean => {\r\n return value === \"\";\r\n};\r\nexport const isUndefined = (value: any): boolean => {\r\n return value === undefined;\r\n};\r\nexport const isNull = (value: any): boolean => {\r\n return value === null;\r\n};\r\nexport const isEmptyObject = (object: any): boolean => {\r\n return (\r\n object &&\r\n Object.keys(object).length === 0 &&\r\n Object.getPrototypeOf(object) === Object.prototype\r\n );\r\n};\r\nexport const isEmptyArray = (arr: any[]): boolean => {\r\n return arr.length === 0;\r\n};\r\n\r\nexport const isEmpty = (value: any): boolean => {\r\n if (isEmptyString(value) || isUndefined(value) || isNull(value)) {\r\n return true;\r\n } else if (isEmptyObject(value)) {\r\n return true;\r\n } else if (Array.isArray(value)) {\r\n if (isEmptyArray(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n};\r\n\r\nexport const isNotEmpty = (value: any) => {\r\n return !isEmpty(value);\r\n};\r\n\r\nexport const isEmptyBrowserStorageValue = (value: any) => {\r\n return isNull(value) && isUndefined(value);\r\n};\r\n\r\nexport const isNotEmptyBrowserStorageValue = (value: any) => {\r\n return !isEmptyBrowserStorageValue(value);\r\n};\r\n\r\nexport const handleJPQueryResponse = (value: any): any => {\r\n /**\r\n * jp.query doesn't always return an array with one element\r\n * so directly can't access with [0], need to check conditionally\r\n */\r\n if (Array.isArray(value)) {\r\n if (value.length > 0) {\r\n value = value[0];\r\n } else if (value.length === 0) {\r\n value = \"\";\r\n }\r\n } else {\r\n value = \"\";\r\n }\r\n\r\n return value;\r\n};\r\n\r\nexport const jpQueryWrapper = (obj: any, key: string) => {\r\n return handleJPQueryResponse(jp.query(obj, key));\r\n};\r\n\r\nexport const replaceString = (\r\n str: string,\r\n find: string,\r\n replace: string\r\n): string => {\r\n return str.replace(new RegExp(find, \"g\"), replace);\r\n};\r\n\r\nexport const setFieldKeyValue = (field: any, path: string, value: any): any => {\r\n return _.set(field, path, value);\r\n};\r\n\r\nexport const setValueToObject = (\r\n object: any,\r\n path: string,\r\n value: any\r\n): any => {\r\n return _.set(object, path, value);\r\n};\r\n\r\nexport const formatValue = (field: TField, fieldValue: any): any => {\r\n const fieldType: TFieldType = field.type;\r\n let value: any;\r\n\r\n if (isNotEmpty(fieldValue)) {\r\n switch (fieldType) {\r\n case EFieldType.DATE:\r\n const splitDate = fieldValue.split(\"-\");\r\n value = new TuiDay(\r\n Number(splitDate[2]), // Year\r\n Number(splitDate[1]) - 1, // Month, Why '-1' => Because Taiga-UI Required It, So...\r\n Number(splitDate[0]) // Day\r\n );\r\n break;\r\n case EFieldType.RADIO:\r\n const fieldRadio = field as TFieldRadio;\r\n value = fieldRadio.options.find((item: any) => {\r\n return item.label === fieldValue;\r\n });\r\n break;\r\n case EFieldType.CHECKBOX:\r\n value = Boolean(fieldValue);\r\n break;\r\n default:\r\n value = fieldValue;\r\n break;\r\n }\r\n } else {\r\n value = fieldValue;\r\n }\r\n\r\n return value;\r\n};\r\n\r\nexport const setEmptyValue = (field: TField): any => {\r\n const fieldType: TFieldType = field.type;\r\n let value: any;\r\n\r\n switch (fieldType) {\r\n case EFieldType.CHECKBOX:\r\n value = false;\r\n break;\r\n case EFieldType.NUMBER:\r\n value = null;\r\n break;\r\n case EFieldType.DATE:\r\n value = null;\r\n break;\r\n default:\r\n value = \"\";\r\n break;\r\n }\r\n\r\n return value;\r\n};\r\n","import { log } from \"../form-view.decorators\";\r\nimport { replaceString } from \"./form-view.common.helper\";\r\n\r\nexport class Condition {\r\n private _condition: string;\r\n private _rulesMapping: any;\r\n\r\n constructor(condition: string, rulesMapping: any) {\r\n this._condition = condition;\r\n this._rulesMapping = rulesMapping;\r\n }\r\n\r\n private parseKeys(condition: string, rulesEvaluationMapping: object): string {\r\n Object.keys(rulesEvaluationMapping).forEach((key) => {\r\n condition = replaceString(condition, key, rulesEvaluationMapping[key]);\r\n });\r\n\r\n return condition;\r\n }\r\n\r\n private parseOperators(condition: string): string {\r\n return condition.replace(/AND|OR|NOT|XOR|NAND|NOR|XNOR/g, (match) => {\r\n switch (match) {\r\n case \"AND\":\r\n return \"&&\";\r\n case \"OR\":\r\n return \"||\";\r\n case \"NOT\":\r\n return \"!\";\r\n case \"XOR\":\r\n return \"^\";\r\n case \"NAND\":\r\n return \"!&\";\r\n case \"NOR\":\r\n return \"!|\";\r\n case \"XNOR\":\r\n return \"!^\";\r\n default:\r\n return match;\r\n }\r\n });\r\n }\r\n\r\n @log\r\n evaluate(): boolean {\r\n this._condition = this.parseKeys(this._condition, this._rulesMapping);\r\n this._condition = this.parseOperators(this._condition);\r\n\r\n return eval(this._condition);\r\n }\r\n}\r\n","import { TAction } from \"../definitions/actions/form-view.actions.type.definitions\";\r\nimport { TField } from \"../definitions/fields/form-view.fields.type.definitions\";\r\nimport { log } from \"../form-view.decorators\";\r\nimport { Condition } from \"./form-view.condition.helper\";\r\n\r\nexport class Actions {\r\n private _action: TAction;\r\n private _allFormsData: any;\r\n private _field: TField;\r\n private _formData: any;\r\n private _previousFormData: any;\r\n private _ruleMapping: any;\r\n private _takeAction: Function;\r\n\r\n constructor(\r\n action: TAction,\r\n field: TField,\r\n ruleMapping: any,\r\n allFormsData: any,\r\n formData: any,\r\n previousFormData: any,\r\n takeAction: Function\r\n ) {\r\n this._action = action;\r\n this._field = field;\r\n this._ruleMapping = ruleMapping;\r\n this._allFormsData = allFormsData;\r\n this._formData = formData;\r\n this._previousFormData = previousFormData;\r\n this._takeAction = takeAction;\r\n }\r\n\r\n @log\r\n async execute() {\r\n const condition = new Condition(this._action.condition, this._ruleMapping);\r\n const actionSuccess = condition.evaluate();\r\n\r\n if (actionSuccess) {\r\n return this._takeAction(\r\n this._action,\r\n this._field,\r\n this._allFormsData,\r\n this._formData,\r\n this._previousFormData\r\n );\r\n }\r\n }\r\n}\r\n","export enum ERuleKey {\r\n OBJECT_PATH_EXISTS = \"OBJECT_PATH_EXISTS\",\r\n VALUE_CHECK = \"VALUE_CHECK\",\r\n VALUE_CHANGE = \"VALUE_CHANGE\"\r\n}\r\n","export enum ESourceKey {\r\n FIELD_CONFIG = \"FIELD_CONFIG\",\r\n FORM_DATA = \"FORM_DATA\",\r\n PREVIOUS_FORM_DATA = \"PREVIOUS_FORM_DATA\",\r\n ALL_FORMS_DATA = \"ALL_FORMS_DATA\",\r\n BROWSER_STORAGE = \"BROWSER_STORAGE\",\r\n PREDEFINED = \"PREDEFINED\",\r\n USER_CONFIG = \"USER_CONFIG\",\r\n CUSTOM = \"CUSTOM\"\r\n}\r\n\r\nexport enum EBrowserStorageType {\r\n LOCAL_STORAGE = \"LOCAL_STORAGE\",\r\n SESSION_STORAGE = \"SESSION_STORAGE\"\r\n}\r\n","import { TField } from \"../definitions/fields/form-view.fields.type.definitions\";\r\nimport {\r\n EBrowserStorageType,\r\n ESourceKey\r\n} from \"../definitions/sources/form-view.sources.enum.definitions\";\r\nimport {\r\n TBrowserStorageType,\r\n TSource\r\n} from \"../definitions/sources/form-view.sources.type.definitions\";\r\nimport { log } from \"../form-view.decorators\";\r\nimport {\r\n isNotEmpty,\r\n isNotEmptyBrowserStorageValue,\r\n jpQueryWrapper,\r\n setEmptyValue,\r\n setValueToObject\r\n} from \"./form-view.common.helper\";\r\n\r\nexport class Sources {\r\n private _formData: any;\r\n get formData(): any {\r\n return this._formData;\r\n }\r\n set formData(value: any) {\r\n this._formData = value;\r\n }\r\n\r\n private _previousFormData: any;\r\n get previousFormData(): any {\r\n return this._previousFormData;\r\n }\r\n set previousFormData(value: any) {\r\n this._previousFormData = value;\r\n }\r\n\r\n private _allFormsData: any;\r\n get allFormsData(): any {\r\n return this._allFormsData;\r\n }\r\n set allFormsData(value: any) {\r\n this._allFormsData = value;\r\n }\r\n\r\n private _field: TField;\r\n get field(): TField {\r\n return this._field;\r\n }\r\n set field(value: TField) {\r\n this._field = value;\r\n }\r\n\r\n constructor(\r\n field: TField,\r\n formData: any,\r\n previousFormData: any,\r\n allFormsData: any\r\n ) {\r\n this._field = field;\r\n this._formData = formData;\r\n this._previousFormData = previousFormData;\r\n this._allFormsData = allFormsData;\r\n }\r\n\r\n private getValueFromFieldConfig(path: string): any {\r\n let value: any = \"\";\r\n if (isNotEmpty(path)) {\r\n value = jpQueryWrapper(this._field, path);\r\n } else {\r\n value = setEmptyValue(this._field);\r\n }\r\n return value;\r\n }\r\n\r\n private getValueFromFormData(path: string): any {\r\n let value: any;\r\n value = jpQueryWrapper(this._formData, path);\r\n return value;\r\n }\r\n private getValueFromPreviousFormData(path: string): any {\r\n let value: any;\r\n value = jpQueryWrapper(this._previousFormData, path);\r\n return value;\r\n }\r\n private getValueFromAllFormsData(path: string): any {\r\n let value: any;\r\n value = jpQueryWrapper(this._allFormsData, path);\r\n return value;\r\n }\r\n private getValueFromBrowserStorage(\r\n type: TBrowserStorageType,\r\n key: string\r\n ): any {\r\n let value: any = \"\";\r\n switch (type) {\r\n case EBrowserStorageType.LOCAL_STORAGE:\r\n value = isNotEmptyBrowserStorageValue(localStorage.getItem(key))\r\n ? localStorage.getItem(key)\r\n : \"\";\r\n break;\r\n case EBrowserStorageType.SESSION_STORAGE:\r\n value = isNotEmptyBrowserStorageValue(sessionStorage.getItem(key))\r\n ? sessionStorage.getItem(key)\r\n : \"\";\r\n break;\r\n default:\r\n value = \"\";\r\n break;\r\n }\r\n return value;\r\n }\r\n\r\n @log\r\n getValueFromSource(source: TSource): any {\r\n let value: any = \"\";\r\n\r\n switch (source.key) {\r\n case ESourceKey.FIELD_CONFIG:\r\n value = this.getValueFromFieldConfig(source.props.path);\r\n break;\r\n case ESourceKey.FORM_DATA:\r\n value = this.getValueFromFormData(source.props.path);\r\n break;\r\n case ESourceKey.ALL_FORMS_DATA:\r\n value = this.getValueFromAllFormsData(source.props.path);\r\n break;\r\n case ESourceKey.PREVIOUS_FORM_DATA:\r\n value = this.getValueFromPreviousFormData(source.props.path);\r\n break;\r\n case ESourceKey.BROWSER_STORAGE:\r\n value = this.getValueFromBrowserStorage(\r\n source.props.browserStorage.type,\r\n source.props.browserStorage.key\r\n );\r\n break;\r\n case ESourceKey.PREDEFINED:\r\n value = source.value;\r\n break;\r\n default:\r\n value = \"\";\r\n break;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n private setValueToFieldConfig(path: string, value: any): any {\r\n this._field = setValueToObject(this._field, path, value);\r\n }\r\n private setValueToFormData(path: string, value: any): any {\r\n this._formData = setValueToObject(this._formData, path, value);\r\n }\r\n private setValueToAllFormsData(path: string, value: any): any {\r\n this._allFormsData = setValueToObject(this._allFormsData, path, value);\r\n }\r\n private setValueToPreviousFromData(path: string, value: any): any {\r\n this._previousFormData = setValueToObject(\r\n this._previousFormData,\r\n path,\r\n value\r\n );\r\n }\r\n private setValueToBrowserStorage(type: string, key: string, value: any): any {\r\n switch (type) {\r\n case EBrowserStorageType.LOCAL_STORAGE:\r\n localStorage.setItem(key, value);\r\n break;\r\n case EBrowserStorageType.SESSION_STORAGE:\r\n sessionStorage.setItem(key, value);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n @log\r\n async setValueToSource(source: TSource, value: any) {\r\n switch (source.key) {\r\n case ESourceKey.FIELD_CONFIG:\r\n this._field = this.setValueToFieldConfig(source.props.path, value);\r\n break;\r\n case ESourceKey.FORM_DATA:\r\n this._formData = this.setValueToFormData(source.props.path, value);\r\n break;\r\n case ESourceKey.ALL_FORMS_DATA:\r\n this._allFormsData = this.setValueToAllFormsData(\r\n source.props.path,\r\n value\r\n );\r\n break;\r\n case ESourceKey.PREVIOUS_FORM_DATA:\r\n this._previousFormData = this.setValueToPreviousFromData(\r\n source.props.path,\r\n value\r\n );\r\n break;\r\n case ESourceKey.BROWSER_STORAGE:\r\n await this.setValueToBrowserStorage(\r\n source.props.browserStorage.type,\r\n source.props.browserStorage.key,\r\n value\r\n );\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n}\r\n","import {\r\n EPattern,\r\n EPatternKey\r\n} from \"../definitions/common/form-view.common.enum.definitions\";\r\nimport { TField } from \"../definitions/fields/form-view.fields.type.definitions\";\r\nimport { ERuleKey } from \"../definitions/rules/form-view.rules.enum.definitions\";\r\nimport {\r\n TRule,\r\n TRuleObjectPathExists,\r\n TRuleType,\r\n TRuleValueChange,\r\n TRuleValueCheck\r\n} from \"../definitions/rules/form-view.rules.type.definitions\";\r\nimport { ESourceKey } from \"../definitions/sources/form-view.sources.enum.definitions\";\r\nimport { TSource } from \"../definitions/sources/form-view.sources.type.definitions\";\r\nimport { log } from \"../form-view.decorators\";\r\nimport { hasPath } from \"./form-view.common.helper\";\r\nimport { Sources } from \"./form-view.sources.helper\";\r\n\r\nexport class Rules {\r\n private _formData: any;\r\n private _previousFormData: any;\r\n private _allFormsData: any;\r\n private _field: TField;\r\n private _rules: Array<TRule>;\r\n\r\n constructor(\r\n rules: Array<TRule>,\r\n field: TField,\r\n formData: any,\r\n previousFormData: any,\r\n allFormsData: any\r\n ) {\r\n this._field = field;\r\n this._formData = formData;\r\n this._previousFormData = previousFormData;\r\n this._allFormsData = allFormsData;\r\n this._rules = rules;\r\n }\r\n\r\n @log\r\n private evaluate(rule: TRule): boolean {\r\n let ruleType: TRuleType = rule.key;\r\n let ruleEvaluationStatus: boolean = false;\r\n\r\n const source = new Sources(\r\n this._field,\r\n this._formData,\r\n this._previousFormData,\r\n this._allFormsData\r\n );\r\n\r\n switch (ruleType) {\r\n case ERuleKey.OBJECT_PATH_EXISTS:\r\n const ruleObjectPathExists = rule as TRuleObjectPathExists;\r\n const ruleObjectPathExistsObject = ruleObjectPathExists.props.object;\r\n const ruleObjectPathExistsPath = ruleObjectPathExists.props.path;\r\n\r\n switch (ruleObjectPathExistsObject) {\r\n case ESourceKey.ALL_FORMS_DATA:\r\n ruleEvaluationStatus = hasPath(\r\n this._allFormsData,\r\n ruleObjectPathExistsPath\r\n );\r\n break;\r\n case ESourceKey.FORM_DATA:\r\n ruleEvaluationStatus = hasPath(\r\n this._formData,\r\n ruleObjectPathExistsPath\r\n );\r\n break;\r\n case ESourceKey.PREVIOUS_FORM_DATA:\r\n ruleEvaluationStatus = hasPath(\r\n this._previousFormData,\r\n ruleObjectPathExistsPath\r\n );\r\n break;\r\n case ESourceKey.FIELD_CONFIG:\r\n ruleEvaluationStatus = hasPath(\r\n this._field,\r\n ruleObjectPathExistsPath\r\n );\r\n break;\r\n default:\r\n ruleEvaluationStatus = false;\r\n break;\r\n }\r\n break;\r\n case ERuleKey.VALUE_CHECK:\r\n const ruleValueCheck = rule as TRuleValueCheck;\r\n const ruleValueCheckSource: TSource = ruleValueCheck.props.value.source;\r\n const ruleValueCheckValue =\r\n source.getValueFromSource(ruleValueCheckSource);\r\n\r\n if (ruleValueCheck.props.pattern.key === EPatternKey.CUSTOM) {\r\n var re = new RegExp(ruleValueCheck.props.pattern.pattern);\r\n } else {\r\n var re = new RegExp(EPattern[ruleValueCheck.props.pattern.key]);\r\n }\r\n\r\n ruleEvaluationStatus = re.test(ruleValueCheckValue);\r\n break;\r\n case ERuleKey.VALUE_CHANGE:\r\n const ruleValueChange = rule as TRuleValueChange;\r\n const ruleValueChangeCurrentSource: TSource =\r\n ruleValueChange.props.value.current.source;\r\n const ruleValueChangePreviousSource: TSource =\r\n ruleValueChange.props.value.previous.source;\r\n\r\n const previousValue = source.getValueFromSource(\r\n ruleValueChangePreviousSource\r\n );\r\n const currentValue = source.getValueFromSource(\r\n ruleValueChangeCurrentSource\r\n );\r\n\r\n ruleEvaluationStatus = previousValue === currentValue;\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return ruleEvaluationStatus;\r\n }\r\n\r\n @log\r\n public mapping(): any {\r\n let rulesEvaluationMapping = {};\r\n\r\n for (const rule of this._rules) {\r\n const ruleEvaluationStatus = this.evaluate(rule);\r\n\r\n rulesEvaluationMapping = {\r\n ...rulesEvaluationMapping,\r\n [rule.id]: ruleEvaluationStatus\r\n };\r\n }\r\n\r\n return rulesEvaluationMapping;\r\n }\r\n}\r\n","import { isEmpty } from \"../../renderer.helper\";\r\nimport { TAction } from \"../definitions/actions/form-view.actions.type.definitions\";\r\nimport { TField } from \"../definitions/fields/form-view.fields.type.definitions\";\r\nimport { TRule } from \"../definitions/rules/form-view.rules.type.definitions\";\r\nimport { TTrigger } from \"../definitions/triggers/form-view.triggers.type.definitions\";\r\nimport { TValidation } from \"../definitions/validations/form-view.validations.type.definitions\";\r\nimport { log } from \"../form-view.decorators\";\r\nimport { Actions } from \"./form-view.actions.helper\";\r\nimport { setEmptyValue, setValueToObject } from \"./form-view.common.helper\";\r\nimport { Condition } from \"./form-view.condition.helper\";\r\nimport { Rules } from \"./form-view.rules.helper\";\r\nimport { Sources } from \"./form-view.sources.helper\";\r\n\r\nexport class Defaults {\r\n private _allFormsData: any;\r\n private _field: TField;\r\n private _formData: any;\r\n private _previousFormData: any;\r\n private _takeAction: Function;\r\n\r\n constructor(\r\n field: TField,\r\n allFormsData: any,\r\n formData: any,\r\n previousFormData: any,\r\n takeAction: Function\r\n ) {\r\n this._field = field;\r\n this._allFormsData = allFormsData;\r\n this._formData = formData;\r\n this._previousFormData = previousFormData;\r\n this._takeAction = takeAction;\r\n }\r\n\r\n @log\r\n async getDefaultValue() {\r\n let defaultValue: any;\r\n\r\n const sources = this._field.default.value.sources;\r\n\r\n let sourceIndex = 0;\r\n for (let source of sources) {\r\n const sources = new Sources(\r\n this._field,\r\n this._formData,\r\n this._previousFormData,\r\n this._allFormsData\r\n );\r\n const value = sources.getValueFromSource(source);\r\n // Set the Value of current source.\r\n this._field = setValueToObject(\r\n this._field,\r\n `default.value.sources.[${sourceIndex}].value`,\r\n value\r\n );\r\n\r\n const validation: TValidation = source.validation;\r\n\r\n const triggers: Array<TTrigger> = validation.triggers;\r\n const rules: Array<TRule> = validation.rules;\r\n const actions: Array<TAction> = validation.actions;\r\n\r\n const rulesMapping = new Rules(\r\n rules,\r\n this._field,\r\n this._formData,\r\n this._previousFormData,\r\n this._allFormsData\r\n ).mapping();\r\n\r\n for (let action of actions) {\r\n const conditionEvaluation = new Condition(\r\n action.condition,\r\n rulesMapping\r\n ).evaluate();\r\n\r\n if (conditionEvaluation) {\r\n const actions = new Actions(\r\n action,\r\n this._field,\r\n rulesMapping,\r\n this._allFormsData,\r\n this._formData,\r\n this._previousFormData,\r\n this._takeAction\r\n );\r\n\r\n await actions.execute();\r\n }\r\n }\r\n\r\n sourceIndex++;\r\n }\r\n\r\n defaultValue = this._field.default.value.value;\r\n\r\n if (isEmpty(defaultValue)) {\r\n defaultValue = setEmptyValue(this._field);\r\n }\r\n\r\n return defaultValue;\r\n }\r\n}\r\n","import { TuiDay } from \"@taiga-ui/cdk\";\r\nimport { EFieldType } from \"../definitions/fields/form-view.fields.enum.definitions\";\r\nimport { TField } from \"../definitions/fields/form-view.fields.type.definitions\";\r\nimport { hasKey, isNotEmpty } from \"./form-view.common.helper\";\r\n\r\nexport const findFieldFromKey = (fields: any[], key: string) => {\r\n const field = fields.find((field) => {\r\n if (field.key === key) {\r\n return field;\r\n }\r\n });\r\n\r\n return field;\r\n};\r\n\r\nexport const findFieldIndexFromKey = (fields: any[], key: string) => {\r\n let fieldIndex: number;\r\n\r\n fieldIndex = fields.findIndex((_: any) => {\r\n return key === _.key;\r\n });\r\n\r\n return fieldIndex;\r\n};\r\n\r\nexport const getSearchTextOptionsFromRemoteFile = async (\r\n field: any,\r\n childField: any,\r\n formGroup: any\r\n): Promise<any> => {\r\n const parentFieldValue = formGroup.controls[field.key].value;\r\n\r\n // Determine the URL of the remote file to fetch\r\n let fileUrl: string | undefined;\r\n if (childField.regexToGetJsonRemoteUrlKey) {\r\n const fileKey = parentFieldValue.match(\r\n childField.regexToGetJsonRemoteUrlKey\r\n )[0];\r\n fileUrl = childField.jsonRemoteUrlMapping[fileKey];\r\n } else {\r\n fileUrl = childField.fileUrl;\r\n }\r\n\r\n // Return early if there is no file URL\r\n if (!fileUrl) return;\r\n\r\n // Fetch the remote file and parse its JSON data\r\n const response = await fetch(fileUrl);\r\n const data = await response.json();\r\n\r\n // Return the data for the given parent field value\r\n return data[parentFieldValue];\r\n};\r\n\r\nexport const getSearchTextOptionsFromFieldConfig = (\r\n field: any,\r\n childField: any,\r\n formGroup: any\r\n): any => {\r\n let options: any;\r\n\r\n const fieldValue = formGroup.controls[field.key].value;\r\n\r\n if (isNotEmpty(childField[\"json\"])) {\r\n options = childField[\"json\"][fieldValue];\r\n }\r\n\r\n return options;\r\n};\r\n\r\nexport const formatSearchTextOptions = (\r\n options: { title: string; value: string }[]\r\n): string[] => {\r\n return options.map(({ title }) => title);\r\n};\r\n\r\nexport function highlightFieldError(field: any, error: any): any {\r\n field.invalid = error;\r\n field.focus = error;\r\n\r\n // if (!error) {\r\n // field[\"messages\"] = field[\"messages\"].filter(function (fieldMessage: {\r\n // type: string;\r\n // message: string;\r\n // }) {\r\n // return fieldMessage.type === \"error\";\r\n // });\r\n // }\r\n\r\n return field;\r\n}\r\n\r\nexport const addMessage = (\r\n field: any,\r\n message: { type: string; message: string }\r\n): any => {\r\n const isDuplicateMessage = (\r\n messages: { type: string; message: string }[],\r\n message: { type: string; message: string }\r\n ) => {\r\n return messages.some((fieldMessage: { type: string; message: string }) => {\r\n return (\r\n fieldMessage.type === message.type &&\r\n fieldMessage.message === message.message\r\n );\r\n });\r\n };\r\n\r\n field[\"messages\"] = [];\r\n\r\n if (hasKey(field, \"messages\")) {\r\n if (!isDuplicateMessage(field[\"messages\"], message)) {\r\n field[\"messages\"].push({\r\n type: message.type,\r\n message: message.message\r\n });\r\n }\r\n } else {\r\n field[\"messages\"] = [{ type: message.type, message: message.message }];\r\n }\r\n\r\n return field;\r\n};\r\nexport const removeMessage = (\r\n field: any,\r\n message: { type: string; message: string }\r\n): any => {\r\n field[\"messages\"] = field[\"messages\"].filter(function (fieldMessage) {\r\n return fieldMessage.type !== message.type;\r\n });\r\n\r\n return field;\r\n};\r\n\r\nexport function setFieldError(\r\n fields: any,\r\n errors: any,\r\n key: string,\r\n error: boolean\r\n) {\r\n const fieldIndex = fields.findIndex((field: any) => {\r\n return field.key === key;\r\n });\r\n\r\n const setErrorMessages = (field: any, errors: any) => {\r\n const getErrorMessage = (fieldLabel: string, errorType: string) => {\r\n let errorMessage: string = \"\";\r\n\r\n switch (errorType) {\r\n case \"required\":\r\n errorMessage = `${fieldLabel} is required!`;\r\n break;\r\n case \"email\":\r\n errorMessage = `${fieldLabel} has wrong email format!`;\r\n break;\r\n case \"min\":\r\n errorMessage = `${fieldLabel} has wrong value! Minimum value: ${field.validators.min}`;\r\n break;\r\n case \"minlength\":\r\n errorMessage = `${fieldLabel} has wrong length! Required minimum length: ${field.validators.minLength}`;\r\n break;\r\n case \"max\":\r\n errorMessage = `${fieldLabel} has wrong value! Maximum value: ${field.validators.maxLength}`;\r\n break;\r\n case \"maxlength\":\r\n errorMessage = `${fieldLabel} has wrong length! Required maximum length: ${field.validators.maxLength}`;\r\n break;\r\n case \"areEqual\":\r\n errorMessage = `${fieldLabel} must be equal!`;\r\n break;\r\n case \"pattern\":\r\n errorMessage = `${fieldLabel} is in incorrect format!`;\r\n break;\r\n default:\r\n errorMessage = `${fieldLabel}: ${errorType}`;\r\n break;\r\n }\r\n\r\n return errorMessage;\r\n };\r\n\r\n Object.keys(errors).forEach((error) => {\r\n field = addMessage(field, {\r\n type: \"error\",\r\n message: getErrorMessage(field.label, error)\r\n });\r\n });\r\n\r\n return field;\r\n };\r\n\r\n if (error) {\r\n fields[fieldIndex] = setErrorMessages(fields[fieldIndex], errors);\r\n } else {\r\n fields[fieldIndex][\"messages\"] = [];\r\n }\r\n\r\n fields[fieldIndex] = highlightFieldError(fields[fieldIndex], error);\r\n\r\n return fields;\r\n}\r\n\r\nexport const convertDateStringToTuiDayFormat = (date: string): TuiDay => {\r\n const splitDate = date.split(\"-\");\r\n const tuiDay = new TuiDay(\r\n Number(splitDate[2]), // Year\r\n Number(splitDate[1]) - 1, // Month, Why '-1' => Because Taiga-UI Required It, So...\r\n Number(splitDate[0]) // Day\r\n );\r\n\r\n return tuiDay;\r\n};\r\n\r\nexport const convertTuiDayFormatToDateString = (date: TuiDay): string => {\r\n let formattedDate: string;\r\n let year = date.year;\r\n let month = date.month;\r\n let day = date.day;\r\n\r\n formattedDate = `${day.toString().padStart(2, \"0\")}-${(month + 1)\r\n .toString()\r\n .padStart(2, \"0\")}-${year}`;\r\n\r\n return formattedDate;\r\n};\r\n\r\nexport const convertValueFromKwikUIFormatToBasicFormat = (\r\n field: TField,\r\n value: any\r\n) => {\r\n let convertedValue: any = value;\r\n\r\n if (isNotEmpty(value)) {\r\n switch (field.type) {\r\n case EFieldType.DATE:\r\n convertedValue = convertTuiDayFormatToDateString(value);\r\n break;\r\n case EFieldType.RADIO:\r\n convertedValue = value.label;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n return convertedValue;\r\n};\r\n\r\nexport const convertValueFromBasicFormatToKwikUIFormat = (\r\n field: TField,\r\n value: any\r\n) => {\r\n let convertedValue: any = value;\r\n\r\n if (isNotEmpty(value)) {\r\n switch (field.type) {\r\n case EFieldType.RADIO:\r\n if (!hasKey(value, \"label\")) {\r\n const convertedLabelValue = {\r\n label: value,\r\n disabled: false\r\n };\r\n convertedValue = convertedLabelValue;\r\n }\r\n break;\r\n case EFieldType.DATE:\r\n convertedValue = convertDateStringToTuiDayFormat(value);\r\n break;\r\n case EFieldType.TITLE:\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n return convertedValue;\r\n};\r\n","import {\r\n FormArray,\r\n FormGroup,\r\n ValidationErrors,\r\n Validators\r\n} from \"@angular/forms\";\r\nimport {\r\n EPattern,\r\n EPatternKey\r\n} from \"../definitions/common/form-view.common.enum.definitions\";\r\nimport { TField } from \"../definitions/fields/form-view.fields.type.definitions\";\r\nimport { log } from \"../form-view.decorators\";\r\nimport { Actions } from \"./form-view.actions.helper\";\r\nimport { hasKey, isNotEmpty } from \"./form-view.common.helper\";\r\nimport { Condition } from \"./form-view.condition.helper\";\r\nimport { Rules } from \"./form-view.rules.helper\";\r\n\r\nexport class Validations {\r\n private _formData: any;\r\n get formData(): any {\r\n return this._formData;\r\n }\r\n set formData(value: any) {\r\n this._formData = value;\r\n }\r\n\r\n private _previousFormData: any;\r\n get previousFormData(): any {\r\n return this._previousFormData;\r\n }\r\n set previousFormData(value: any) {\r\n this._previousFormData = value;\r\n }\r\n\r\n private _allFormsData: any;\r\n get allFormsData(): any {\r\n return this._allFormsData;\r\n }\r\n set allFormsData(value: any) {\r\n this._allFormsData = value;\r\n }\r\n\r\n private _field: TField;\r\n get field(): TField {\r\n return this._field;\r\n }\r\n set field(value: TField) {\r\n this._field = value;\r\n }\r\n\r\n private _takeAction: Function;\r\n\r\n constructor(\r\n field: TField,\r\n formData: any,\r\n previousFormData: any,\r\n allFormsData: any,\r\n takeAction: any\r\n ) {\r\n this._field = field;\r\n this._formData = formData;\r\n this._previousFormData = previousFormData;\r\n this._allFormsData = allFormsData;\r\n this._takeAction = takeAction;\r\n }\r\n\r\n @log\r\n getFieldValidators(field: any) {\r\n let validators = [];\r\n\r\n if (\r\n hasKey(field, \"validators\") &&\r\n hasKey(field.validators, \"min\") &&\r\n isNotEmpty(field.validators.min)\r\n ) {\r\n validators.push(Validators.min(field.validators.min));\r\n }\r\n if (\r\n hasKey(field, \"validators\") &&\r\n hasKey(field.validators, \"max\") &&\r\n isNotEmpty(field.validators.max)\r\n ) {\r\n validators.push(Validators.max(field.validators.max));\r\n }\r\n if (\r\n (hasKey(field, \"required\") && field.required) ||\r\n (hasKey(field, \"validators\") &&\r\n hasKey(field.validators, \"required\") &&\r\n field.validators.required)\r\n ) {\r\n validators.push(Validators.required);\r\n }\r\n if (\r\n hasKey(field, \"validators\") &&\r\n hasKey(field.validators, \"minLength\") &&\r\n isNotEmpty(field.validators.minLength)\r\n ) {\r\n validators.push(Validators.minLength(field.validators.minLength));\r\n }\r\n if (\r\n hasKey(field, \"validators\") &&\r\n hasKey(field.validators, \"maxLength\") &&\r\n isNotEmpty(field.validators.maxLength)\r\n ) {\r\n validators.push(Validators.maxLength(field.validators.maxLength));\r\n }\r\n if (\r\n hasKey(field, \"validators\") &&\r\n hasKey(field.validators, \"pattern\") &&\r\n isNotEmpty(field.validators.pattern)\r\n ) {\r\n if (hasKey(field.validators.pattern, \"key\")) {\r\n if (field.validators.pattern.key === EPatternKey.CUSTOM) {\r\n validators.push(Validators.pattern(field.validators.pattern.pattern));\r\n } else {\r\n validators.push(\r\n Validators.pattern(EPattern[field.validators.pattern.key])\r\n );\r\n }\r\n }\r\n }\r\n\r\n return validators;\r\n }\r\n\r\n @log\r\n getFormValidationErrors(\r\n control: FormGroup\r\n ): { name: string; value: string }[] {\r\n let errors: { name: string; value: string }[] = [];\r\n\r\n for (const key in control.controls) {\r\n const controlErrors: ValidationErrors = control.controls[key].errors;\r\n if (controlErrors !== null && controlErrors !== undefined) {\r\n Object.keys(controlErrors).forEach((keyError) => {\r\n errors.push({\r\n name: keyError,\r\n value: controlErrors[keyError]\r\n });\r\n });\r\n }\r\n }\r\n\r\n return errors;\r\n }\r\n\r\n @log\r\n findInvalidControlsRecursive(formToInvestigate: FormGroup | FormArray) {\r\n var controls: any[] = [];\r\n\r\n let recursiveFunc = (form: FormGroup | FormArray) => {\r\n Object.keys(form.controls).forEach((field: any) => {\r\n const control = form.get(field);\r\n if (control.invalid) {\r\n controls.push({\r\n key: field,\r\n invalid: true\r\n });\r\n } else {\r\n controls.push({\r\n key: field,\r\n invalid: false\r\n });\r\n }\r\n if (control instanceof FormGroup) {\r\n recursiveFunc(control);\r\n } else if (control instanceof FormArray) {\r\n recursiveFunc(control);\r\n }\r\n });\r\n };\r\n\r\n recursiveFunc(formToInvestigate);\r\n\r\n return controls;\r\n }\r\n\r\n @log\r\n async validateField(): Promise<any> {\r\n const validations = this._field.validation;\r\n\r\n const triggers = validations.triggers;\r\n const rules = validations.rules;\r\n const actions = validations.actions;\r\n\r\n const rulesMapping = new Rules(\r\n rules,\r\n this._field,\r\n this._formData,\r\n this._previousFormData,\r\n this._allFormsData\r\n ).mapping();\r\n\r\n for (let action of actions) {\r\n const conditionEvaluation = new Condition(\r\n action.condition,\r\n rulesMapping\r\n ).evaluate();\r\n\r\n if (conditionEvaluation) {\r\n const actions = new Actions(\r\n action,\r\n this._field,\r\n rulesMapping,\r\n this._allFormsData,\r\n this._formData,\r\n this._previousFormData,\r\n this._takeAction\r\n );\r\n\r\n await actions.execute();\r\n }\r\n }\r\n }\r\n}\r\n","import { FormControl, FormGroup } from \"@angular/forms\";\r\nimport { log } from \"./form-view.decorators\";\r\nimport { Defaults } from \"./helpers/form-view.defaults.helper\";\r\nimport { convertValueFromBasicFormatToKwikUIFormat } from \"./helpers/form-view.fields.helper\";\r\nimport { Validations } from \"./helpers/form-view.validations.helper\";\r\n\r\nexport class KwikIDFormViewService {\r\n constructor() {}\r\n\r\n // 'init' stage of the form\r\n @log\r\n async createFormGroup(\r\n fields: any,\r\n formData: any,\r\n previousFormData: any,\r\n allFormsData: any,\r\n takeAction: Function\r\n ) {\r\n let formGroup = new FormGroup({});\r\n\r\n for (let field of fields) {\r\n if (field.type !== \"title\") {\r\n const defaults = new Defaults(\r\n field,\r\n allFormsData,\r\n formData,\r\n previousFormData,\r\n takeAction\r\n );\r\n let value = await defaults.getDefaultValue();\r\n value = convertValueFromBasicFormatToKwikUIFormat(field, value);\r\n\r\n const validators = new Validations(\r\n field,\r\n formData,\r\n previousFormData,\r\n allFormsData,\r\n takeAction\r\n ).getFieldValidators(field);\r\n\r\n formGroup.addControl(\r\n field.key,\r\n new FormControl(\r\n { value: value, disabled: field.disabled },\r\n { validators: validators }\r\n )\r\n );\r\n }\r\n }\r\n\r\n return formGroup;\r\n }\r\n}\r\n","import { TAction } from \"../definitions/actions/form-view.actions.type.definitions\";\r\nimport {\r\n TApi,\r\n TApiRequest,\r\n TApiRequestBody,\r\n TApiRequestBodyParam,\r\n TApiResponse,\r\n TApiStatus\r\n} from \"../definitions/apis/form-view.apis.type.definitions\";\r\nimport { TFieldApiCall } from \"../definitions/fields/form-view.fields.type.definitions\";\r\nimport { TRule } from \"../definitions/rules/form-view.rules.type.definitions\";\r\nimport { TSource } from \"../definitions/sources/form-view.sources.type.definitions\";\r\nimport { TTrigger } from \"../definitions/triggers/form-view.triggers.type.definitions\";\r\nimport { TValidation } from \"../definitions/validations/form-view.validations.type.definitions\";\r\nimport { log } from \"../form-view.decorators\";\r\nimport { Actions } from \"./form-view.actions.helper\";\r\nimport { setValueToObject } from \"./form-view.common.helper\";\r\nimport { Condition } from \"./form-view.condition.helper\";\r\nimport { Rules } from \"./form-view.rules.helper\";\r\nimport { Sources } from \"./form-view.sources.helper\";\r\n\r\nexport class Apis {\r\n private _formData: any;\r\n private _previousFormData: any;\r\n private _allFormsData: any;\r\n private _field: TFieldApiCall;\r\n private _takeAction: Function;\r\n\r\n private _api: TApi;\r\n private _request: TApiRequest;\r\n private _response: TApiResponse;\r\n private _status: TApiStatus;\r\n\r\n constructor(\r\n field: TFieldApiCall,\r\n formData: any,\r\n previousFormData: any,\r\n allFormsData: any,\r\n takeAction: Function\r\n ) {\r\n this._field = field;\r\n this._formData = formData;\r\n this._previousFormData = previousFormData;\r\n this._allFormsData = allFormsData;\r\n this._takeAction = takeAction;\r\n\r\n this._api = field.api;\r\n this._request = field.api.request;\r\n this._response = field.api.response;\r\n this._status = field.api.status;\r\n }\r\n\r\n @log\r\n public async setRequestBodyParams(): Promise<TFieldApiCall> {\r\n let params: Array<TApiRequestBodyParam> = this._request.body.params;\r\n\r\n let paramIndex = 0;\r\n for (let param of params) {\r\n let sources: Array<TSource> = param.sources;\r\n\r\n let sourceIndex = 0;\r\n for (let source of sources) {\r\n const sources = new Sources(\r\n this._field,\r\n this._formData,\r\n this._previousFormData,\r\n this._allFormsData\r\n );\r\n const value = sources.getValueFromSource(source);\r\n // Set the Value of current source.\r\n this._field = setValueToObject(\r\n this._field,\r\n `api.request.body.params[${paramIndex}].sources[${sourceIndex}].value`,\r\n value\r\n );\r\n\r\n const validation: TValidation = source.validation;\r\n\r\n const triggers: Array<TTrigger> = validation?.triggers ?? [];\r\n const rules: Array<TRule> = validation?.rules ?? [];\r\n const actions: Array<TAction> = validation?.actions ?? [];\r\n\r\n const rulesMapping = new Rules(\r\n rules,\r\n this._field,\r\n this._formData,\r\n this._previousFormData,\r\n this._allFormsData\r\n ).mapping();\r\n\r\n for (let action of actions) {\r\n const conditionEvaluation = new Condition(\r\n action.condition,\r\n rulesMapping\r\n ).evaluate();\r\n\r\n if (conditionEvaluation) {\r\n const actions = new Actions(\r\n action,\r\n this._field,\r\n rulesMapping,\r\n this._allFormsData,\r\n this._formData,\r\n this._previousFormData,\r\n this._takeAction\r\n );\r\n\r\n await actions.execute();\r\n }\r\n }\r\n\r\n sourceIndex++;\r\n }\r\n\r\n paramIndex++;\r\n }\r\n\r\n return this._field;\r\n }\r\n\r\n @log\r\n public async validateRequestBody(): Promise<TFieldApiCall> {\r\n const body: TApiRequestBody = this._request.body;\r\n\r\n const validation: TValidation = body.validation;\r\n\r\n const triggers: Array<TTrigger> = validation.triggers;\r\n const rules: Array<TRule> = validation.rules;\r\n const actions: Array<TAction> = validation.actions;\r\n\r\n const rulesMapping = new Rules(\r\n rules,\r\n this._field,\r\n this._formData,\r\n this._previousFormData,\r\n this._allFormsData\r\n ).mapping();\r\n\r\n for (let action of actions) {\r\n const conditionSuccess = new Condition(\r\n action.condition,\r\n rulesMapping\r\n ).evaluate();\r\n\r\n if (conditionSuccess) {\r\n const actions = new Actions(\r\n action,\r\n this._field,\r\n rulesMapping,\r\n this._allFormsData,\r\n this._formData,\r\n this._previousFormData,\r\n this._takeAction\r\n );\r\n\r\n await actions.execute();\r\n }\r\n }\r\n\r\n return this._field;\r\n }\r\n\r\n @log\r\n public async validateApiCallResponse(): Promise<TFieldApiCall> {\r\n const validation: TValidation = this._response.validation;\r\n\r\n const triggers: Array<TTrigger> = validation.triggers;\r\n const rules: Array<TRule> = validation.rules;\r\n const actions: Array<TAction> = validation.actions;\r\n\r\n const rulesMapping = new Rules(\r\n rules,\r\n this._field,\r\n this._formData,\r\n this._previousFormData,\r\n this._allFormsData\r\n ).mapping();\r\n\r\n for (let action of actions) {\r\n const conditionSuccess = new Condition(\r\n action.condition,\r\n rulesMapping\r\n ).evaluate();\r\n\r\n if (conditionSuccess) {\r\n const actions = new Actions(\r\n action,\r\n this._field,\r\n rulesMapping,\r\n this._allFormsData,\r\n this._formData,\r\n this._previousFormData,\r\n this._takeAction\r\n );\r\n\r\n await actions.execute();\r\n }\r\n }\r\n\r\n return this._field;\r\n }\r\n\r\n getPropsValues(): any {\r\n return {\r\n field: this._field,\r\n formData: this._formData,\r\n previousFormData: this._previousFormData,\r\n allFormsData: this._allFormsData\r\n };\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n OnInit,\r\n Output,\r\n SimpleChanges\r\n} from \"@angular/core\";\r\nimport { FormGroup } from \"@angular/forms\";\r\nimport { TuiAlertService } from \"@taiga-ui/core\";\r\nimport { TuiPushService } from \"@taiga-ui/kit\";\r\nimport { pairwise } from \"rxjs/operators\";\r\nimport { EActionKey } from \"./definitions/actions/form-view.actions.enum.definitions\";\r\nimport { TAction } from \"./definitions/actions/form-view.actions.type.definitions\";\r\nimport { EApiStatusType } from \"./definitions/apis/form-view.apis.enum.definitions\";\r\nimport { EMessageType } from \"./definitions/common/form-view.common.enum.definitions\";\r\nimport { TMessage } from \"./definitions/common/form-view.common.type.definitions\";\r\nimport { EFieldType } from \"./definitions/fields/form-view.fields.enum.definitions\";\r\nimport {\r\n TField,\r\n TFieldApiCall,\r\n TFieldTitle\r\n} from \"./definitions/fields/form-view.fields.type.definitions\";\r\nimport { log } from \"./form-view.decorators\";\r\nimport { KwikIDFormViewService } from \"./form-view.service\";\r\nimport { Actions } from \"./helpers/form-view.actions.helper\";\r\nimport { Apis } from \"./helpers/form-view.apis.helper\";\r\nimport {\r\n hasKey,\r\n isEmpty,\r\n isNotEmpty,\r\n setEmptyValue\r\n} from \"./helpers/form-view.common.helper\";\r\nimport { Condition } from \"./helpers/form-view.condition.helper\";\r\nimport {\r\n addMessage,\r\n convertValueFromKwikUIFormatToBasicFormat,\r\n findFieldFromKey,\r\n findFieldIndexFromKey,\r\n getSearchTextOptionsFromFieldConfig,\r\n getSearchTextOptionsFromRemoteFile,\r\n highlightFieldError,\r\n removeMessage,\r\n setFieldError\r\n} from \"./helpers/form-view.fields.helper\";\r\nimport { Rules } from \"./helpers/form-view.rules.helper\";\r\nimport { Sources } from \"./helpers/form-view.sources.helper\";\r\nimport { Validations } from \"./helpers/form-view.validations.helper\";\r\n\r\n@Component({\r\n selector: \"kwikid-form-view\",\r\n templateUrl: \"./form-view.component.html\",\r\n styleUrls: [\"./form-view.component.scss\"],\r\n providers: [KwikIDFormViewService]\r\n})\r\nexport class KwikIDFormViewComponent implements OnInit, AfterViewInit {\r\n @Input()\r\n formConfig: any;\r\n\r\n @Input()\r\n formData: any;\r\n\r\n @Input()\r\n apiCallResponse: any = {};\r\n\r\n @Input()\r\n isMobileView: boolean = false;\r\n\r\n @Input()\r\n allFormsData: any;\r\n\r\n @Input()\r\n formsList: any[];\r\n\r\n @Output()\r\n onClickViewForms: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n onClickSaveForm: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n onClickApiCall: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n getActiveFormData: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n formFields: any[] = [];\r\n previousFormData: any = {};\r\n\r\n loading: boolean = true;\r\n viewFormsButton = {\r\n disabled: false,\r\n showLoader: false\r\n };\r\n saveFormButton = {\r\n disabled: false,\r\n showLoader: false\r\n };\r\n\r\n formGroup: FormGroup = new FormGroup({});\r\n\r\n constructor(\r\n @Inject(TuiPushService) protected readonly push: TuiPushService,\r\n @Inject(TuiAlertService) protected readonly alert: TuiAlertService,\r\n private formViewService: KwikIDFormViewService\r\n ) {}\r\n\r\n @log\r\n ngOnInit(): void {\r\n (async () => {\r\n await this.initFormConfig(this.formConfig);\r\n\r\n this.loading = false;\r\n })();\r\n }\r\n\r\n @log\r\n ngAfterViewInit(): void {}\r\n\r\n @log\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const verifyChange = (key: string) => {\r\n return hasKey(changes, key) && !changes[key].firstChange;\r\n };\r\n if (verifyChange(\"formData\")) {\r\n this.formData = {\r\n ...this.formData,\r\n ...changes.formData.currentValue\r\n };\r\n }\r\n if (verifyChange(\"apiCallResponse\")) {\r\n this.apiCallResponse = changes.apiCallResponse.currentValue;\r\n\r\n this.formData = {\r\n ...this.formData,\r\n [this.apiCallResponse.key]: this.apiCallResponse.response\r\n };\r\n\r\n this.formGroup.patchValue(\r\n {\r\n [this.apiCallResponse.key]: this.apiCallResponse.response\r\n },\r\n { emitEvent: false }\r\n );\r\n\r\n let field: TFieldApiCall = findFieldFromKey(\r\n this.formFields,\r\n this.apiCallResponse.key\r\n );\r\n\r\n const apis = new Apis(\r\n field,\r\n this.formData,\r\n this.previousFormData,\r\n this.allFormsData,\r\n this.takeAction.bind(this)\r\n );\r\n\r\n (async () => {\r\n field = await apis.validateApiCallResponse();\r\n })();\r\n }\r\n if (verifyChange(\"isMobileView\")) {\r\n this.isMobileView = changes.isMobileView.currentValue;\r\n }\r\n if (verifyChange(\"allFormsData\")) {\r\n this.allFormsData = changes.allFormsData.currentValue;\r\n }\r\n if (verifyChange(\"formsList\")) {\r\n this.formsList = changes.formsList.currentValue;\r\n }\r\n if (verifyChange(\"formConfig\")) {\r\n this.formConfig = changes.formConfig.currentValue;\r\n\r\n (async () => {\r\n await this.initFormConfig(this.formConfig);\r\n })();\r\n }\r\n }\r\n\r\n @log\r\n async initFormConfig(formConfig: any) {\r\n this.setFormFieldsFromFormConfig(formConfig);\r\n\r\n this.setFormDataFromAllFormsData();\r\n\r\n this.formGroup = await this.formViewService.createFormGroup(\r\n this.formFields,\r\n this.formData,\r\n this.previousFormData,\r\n this.allFormsData,\r\n this.takeAction.bind(this)\r\n );\r\n\r\n for (let field of this.formFields) {\r\n if (field.type !== \"title\") {\r\n this.previousFormData = {\r\n ...this.previousFormData,\r\n [field.key]: this.formGroup.controls[field.key].value\r\n };\r\n\r\n this.formGroup.controls[field.key].valueChanges\r\n .pipe(pairwise())\r\n .subscribe(([previousValue, currentValue]) => {\r\n this.previousFormData = {\r\n ...this.previousFormData,\r\n [field.key]: previousValue\r\n };\r\n\r\n this.formData = {\r\n ...this.formData,\r\n [field.key]: currentValue\r\n };\r\n });\r\n }\r\n }\r\n for (let field of this.formFields) {\r\n if (field.type !== \"title\") {\r\n (async () => {\r\n field = await this.handleConnectedElements(\r\n {\r\n key: field.key,\r\n value: this.formGroup.controls[field.key].value\r\n },\r\n \"ON_INIT\"\r\n );\r\n })();\r\n }\r\n }\r\n }\r\n\r\n @log\r\n setFormFieldsFromFormConfig(formConfig: any) {\r\n if (hasKey(formConfig, \"fields\")) {\r\n this.formFields = formConfig.fields;\r\n } else if (\r\n hasKey(formConfig, \"multiForm\") &&\r\n hasKey(formConfig.multiForm, \"fields\")\r\n ) {\r\n this.formFields = formConfig.multiForm.fields;\r\n }\r\n }\r\n\r\n @log\r\n setFormDataFromAllFormsData() {\r\n if (hasKey(this.allFormsData, this.formConfig.key)) {\r\n this.formData = this.allFormsData[this.formConfig.key];\r\n } else {\r\n this.formData = {};\r\n }\r\n }\r\n\r\n @log\r\n async handleConnectedElementFieldActions(\r\n connectedFieldConfig: any,\r\n connectedField: any\r\n ) {\r\n if (hasKey(connectedFieldConfig, \"rules\")) {\r\n const rulesMapping = new Rules(\r\n connectedFieldConfig.rules,\r\n connectedField,\r\n this.formData,\r\n this.previousFormData,\r\n this.allFormsData\r\n ).mapping();\r\n\r\n for (let action of connectedFieldConfig.actions) {\r\n const conditionSuccess = new Condition(\r\n action.condition,\r\n rulesMapping\r\n ).evaluate();\r\n\r\n if (conditionSuccess) {\r\n const actions = new Actions(\r\n action,\r\n connectedField,\r\n rulesMapping,\r\n this.allFormsData,\r\n this.formData,\r\n this.previousFormData,\r\n this.takeAction.bind(this)\r\n );\r\n\r\n await actions.execute();\r\n }\r\n }\r\n }\r\n\r\n return connectedField;\r\n }\r\n\r\n @log\r\n async handleConnectedElementFields(\r\n currentField: any,\r\n connectedFieldConfig: any,\r\n eventType: string\r\n ) {\r\n let connectedField = findFieldFromKey(\r\n this.formFields,\r\n connectedFieldConfig[\"key\"]\r\n );\r\n\r\n switch (eventType) {\r\n case \"INIT\":\r\n if (\r\n hasKey(connectedField, \"triggers\") &&\r\n connectedField.triggers.includes(\"INIT\")\r\n ) {\r\n if (this.isFieldEnabled(connectedField.key)) {\r\n if (hasKey(connectedFieldConfig, \"connectedParentFields\")) {\r\n switch (connectedFieldConfig.type) {\r\n case \"dropdown-with-search\":\r\n connectedField = await this.handleFieldTypeSearchText(\r\n currentField,\r\n connectedField\r\n );\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n connectedField = await this.handleConnectedElementFieldActions(\r\n connectedFieldConfig,\r\n connectedField\r\n );\r\n }\r\n break;\r\n case \"VALUE_CHANGE\":\r\n if (\r\n hasKey(connectedFieldConfig, \"triggers\") &&\r\n connectedFieldConfig.triggers.includes(\"VALUE_CHANGE\")\r\n ) {\r\n switch (connectedField.type) {\r\n case \"dropdown-with-search\":\r\n connectedField = await this.handleFieldTypeSearchText(\r\n currentField,\r\n connectedField\r\n );\r\n break;\r\n default:\r\n break;\r\n }\r\n connectedField = await this.handleConnectedElementFieldActions(\r\n connectedFieldConfig,\r\n connectedField\r\n );\r\n }\r\n break;\r\n case \"NESTED_LINK\":\r\n if (\r\n hasKey(connectedFieldConfig, \"triggers\") &&\r\n connectedFieldConfig.triggers.includes(\"NESTED_LINK\")\r\n ) {\r\n connectedField = await this.handleConnectedElementFieldActions(\r\n connectedFieldConfig,\r\n connectedField\r\n );\r\n }\r\n default:\r\n if (hasKey(connectedFieldConfig, \"triggers\")) {\r\n connectedField = await this.handleConnectedElementFieldActions(\r\n connectedFieldConfig,\r\n connectedField\r\n );\r\n }\r\n break;\r\n }\r\n\r\n if (hasKey(connectedField, \"connectedElements\")) {\r\n for (const connectedFieldConfig of connectedField.connectedElements\r\n .fields) {\r\n connectedField = this.handleConnectedElementFields(\r\n connectedField,\r\n connectedFieldConfig,\r\n \"NESTED_LINK\"\r\n );\r\n }\r\n }\r\n\r\n return currentField;\r\n }\r\n\r\n @log\r\n handleConnectedElements(e: any, eventType: string) {\r\n let currentField = findFieldFromKey(this.formFields, e.key);\r\n\r\n if (hasKey(currentField, \"connectedElements\")) {\r\n let connectedFields = currentField.connectedElements.connectedFields;\r\n for (let connectedFieldConfig of connectedFields) {\r\n currentField = this.handleConnectedElementFields(\r\n currentField,\r\n connectedFieldConfig,\r\n eventType\r\n );\r\n }\r\n }\r\n }\r\n\r\n // DOM Event Handlers\r\n @log\r\n handleGetKeyValue(e: any) {\r\n this.formGroup.patchValue(\r\n {\r\n [e.key]: e.value\r\n },\r\n { emitEvent: false }\r\n );\r\n\r\n // Currently set only for dropdown-with-search connected fields\r\n let field = findFieldFromKey(this.formFields, e.key);\r\n\r\n if (\r\n field.type !== \"title\" &&\r\n field.validation.triggers.includes(\"ON_CHANGE\")\r\n ) {\r\n const validations = new Validations(\r\n field,\r\n this.formData,\r\n this.previousFormData,\r\n this.allFormsData,\r\n this.takeAction.bind(this)\r\n );\r\n\r\n (async () => {\r\n await validations.validateField();\r\n })();\r\n\r\n this.handleConnectedElements(\r\n {\r\n key: field.key,\r\n value: this.formGroup.controls[field.key].value\r\n },\r\n \"ON_CHANGE\"\r\n );\r\n }\r\n }\r\n\r\n @log\r\n async handleOnClickResetFormFields(e: any, field: TFieldTitle) {\r\n for (let f of field.reset.fields) {\r\n for (let a of f.actions) {\r\n const resetField = findFieldFromKey(this.formFields, a.props.fieldKey);\r\n const actions = new Actions(\r\n a,\r\n resetField,\r\n {},\r\n this.allFormsData,\r\n this.formData,\r\n this.previousFormData,\r\n this.takeAction.bind(this)\r\n );\r\n await actions.execute();\r\n }\r\n }\r\n }\r\n\r\n @log\r\n async handleOnClickApiCall(e: any) {\r\n let field: TFieldApiCall = findFieldFromKey(this.formFields, e.key);\r\n\r\n if (field.type === \"api-call\") {\r\n // set button status to loading\r\n field[\"api\"][\"status\"][\"value\"] = EApiStatusType.LOADING;\r\n field[\"showLoader\"] = true;\r\n this.viewFormsButton[\"disabled\"] = true;\r\n this.viewFormsButton[\"showLoader\"] = true;\r\n this.saveFormButton[\"disabled\"] = true;\r\n this.saveFormButton[\"showLoader\"] = true;\r\n\r\n const apis = new Apis(\r\n field,\r\n this.formData,\r\n this.previousFormData,\r\n this.allFormsData,\r\n this.takeAction.bind(this)\r\n );\r\n\r\n field = await apis.setRequestBodyParams();\r\n\r\n field = await apis.validateRequestBody();\r\n\r\n if (field.api.request.body.validation.is_valid) {\r\n // Call API Here\r\n this.onClickApiCall.emit({\r\n key: e.key,\r\n request: {\r\n mode: \"POST\",\r\n body: field.api.request.body.value,\r\n headers: {},\r\n url: field.api.request.url\r\n }\r\n });\r\n } else {\r\n // Request Body Validation Failed\r\n // Highlight Error in UI to User to Retry After Sometime.\r\n // Take Actions based on Validation\r\n setTimeout(() => {\r\n field[\"api\"][\"status\"][\"value\"] = EApiStatusType.FAILED;\r\n field[\"showLoader\"] = false;\r\n }, 500);\r\n }\r\n\r\n this.viewFormsButton[\"disabled\"] = false;\r\n this.viewFormsButton[\"showLoader\"] = false;\r\n this.saveFormButton[\"disabled\"] = false;\r\n this.saveFormButton[\"showLoader\"] = false;\r\n }\r\n }\r\n\r\n @log\r\n handleOnClickViewForms(e: any) {\r\n this.onClickViewForms.emit({\r\n clicked: true\r\n });\r\n }\r\n\r\n @log\r\n handleOnClickSaveForm(e: any) {\r\n let formData = this.formGroup.getRawValue();\r\n\r\n for (let field of this.formFields) {\r\n if (field.type !== EFieldType.TITLE) {\r\n if (field.hidden) {\r\n delete formData[field.key];\r\n } else {\r\n formData[field.key] = convertValueFromKwikUIFormatToBasicFormat(\r\n field,\r\n formData[field.key]\r\n );\r\n }\r\n }\r\n }\r\n\r\n for (let field of this.formFields) {\r\n if (\r\n field.type !== EFieldType.TITLE &&\r\n field.validation.triggers.includes(\"ON_SAVE\")\r\n ) {\r\n const validations = new Validations(\r\n field,\r\n formData,\r\n this.previousFormData,\r\n this.allFormsData,\r\n this.takeAction.bind(this)\r\n );\r\n\r\n (async () => {\r\n await validations.validateField();\r\n })();\r\n }\r\n }\r\n\r\n if (this.formGroup.invalid) {\r\n const controls = new Validations(\r\n undefined,\r\n formData,\r\n this.previousFormData,\r\n this.allFormsData,\r\n this.takeAction.bind(this)\r\n ).findInvalidControlsRecursive(this.formGroup);\r\n\r\n let firstFieldWithError: string = \"\";\r\n\r\n for (let control of controls) {\r\n if (control.invalid && isEmpty(firstFieldWithError)) {\r\n firstFieldWithError = control.key;\r\n }\r\n this.formFields = setFieldError(\r\n this.formFields,\r\n this.formGroup.controls[control.key].errors,\r\n control.key,\r\n control.invalid\r\n );\r\n }\r\n\r\n this.toggleErrorNotification(true);\r\n\r\n return;\r\n }\r\n\r\n Object.keys(formData).map((key) => {\r\n if (isEmpty(formData[key])) {\r\n formData[key] = \"\";\r\n }\r\n });\r\n\r\n this.onClickSaveForm.emit({ formConfig: this.formConfig, data: formData });\r\n }\r\n\r\n showErrorNotification: boolean = false;\r\n @log\r\n toggleErrorNotification(show) {\r\n this.showErrorNotification = show;\r\n }\r\n\r\n // Component Helpers\r\n @log\r\n fieldHide(fieldKey: string) {\r\n let field = findFieldFromKey(this.formFields, fieldKey);\r\n let fieldIndex = this.formFields.findIndex((_: any) => {\r\n return field.key === _.key;\r\n });\r\n\r\n this.formFields[fieldIndex][\"hidden\"] = true;\r\n }\r\n\r\n @log\r\n fieldShow(fieldKey: string) {\r\n let field = findFieldFromKey(this.formFields, fieldKey);\r\n let fieldIndex = this.formFields.findIndex((_: any) => {\r\n return field.key === _.key;\r\n });\r\n\r\n this.formFields[fieldIndex][\"hidden\"] = false;\r\n this.formGroup.updateValueAndValidity();\r\n }\r\n\r\n @log\r\n fieldDisable(fieldKey: string) {\r\n let field = findFieldFromKey(this.formFields, fieldKey);\r\n let fieldIndex = this.formFields.findIndex((_: any) => {\r\n return field.key === _.key;\r\n });\r\n\r\n this.formFields[fieldIndex][\"disabled\"] = true;\r\n\r\n if (isNotEmpty(this.formGroup.controls)) {\r\n this.formGroup.controls[field.key].disable({\r\n emitEvent: false\r\n });\r\n }\r\n }\r\n\r\n @log\r\n fieldEnable(fieldKey: string) {\r\n let field = findFieldFromKey(this.formFields, fieldKey);\r\n let fieldIndex = this.formFields.findIndex((_: any) => {\r\n return field.key === _.key;\r\n });\r\n\r\n this.formFields[fieldIndex][\"disabled\"] = false;\r\n\r\n if (isNotEmpty(this.formGroup.controls)) {\r\n this.formGroup.controls[field.key].enable({\r\n emitEvent: false\r\n });\r\n }\r\n }\r\n\r\n @log\r\n fieldReset(fieldKey: string) {\r\n // Find the field and its index in the formFields array\r\n let field = findFieldFromKey(this.formFields, fieldKey);\r\n let fieldIndex = findFieldIndexFromKey(this.formFields, fieldKey);\r\n\r\n // Delete the field from the formData object\r\n delete this.formData[fieldKey];\r\n\r\n // Reset the value of the field in the formGroup\r\n this.formGroup.controls[field.key].reset(setEmptyValue(field), {\r\n emitEvent: false\r\n });\r\n\r\n // Reset the messages and errors for the field\r\n field = removeMessage(field, {\r\n type: EMessageType.WARNING,\r\n message: \"\"\r\n });\r\n field = removeMessage(field, {\r\n type: EMessageType.SUCCESS,\r\n message: \"\"\r\n });\r\n this.fieldErrorHide(fieldKey, {\r\n type: EMessageType.ERROR,\r\n message: \"\"\r\n });\r\n\r\n // Reset the value of the field in the formFields array\r\n switch (field.type) {\r\n case \"api-call\":\r\n const fieldApiCall = field as TFieldApiCall;\r\n fieldApiCall.api.status.value = EApiStatusType.DEFAULT;\r\n this.formFields[fieldIndex] = fieldApiCall;\r\n break;\r\n default:\r\n field.focus = false;\r\n field.invalid = false;\r\n this.formFields[fieldIndex] = field;\r\n break;\r\n }\r\n }\r\n\r\n @log\r\n fieldErrorShow(fieldKey: string, message: TMessage) {\r\n let field = findFieldFromKey(this.formFields, fieldKey);\r\n let fieldIndex = this.formFields.findIndex((_: any) => {\r\n return field.key === _.key;\r\n });\r\n\r\n field = highlightFieldError(field, true);\r\n field = addMessage(field, message);\r\n\r\n this.formFields[fieldIndex] = field;\r\n }\r\n\r\n @log\r\n fieldErrorHide(fieldKey: string, message: TMessage) {\r\n let field = findFieldFromKey(this.formFields, fieldKey);\r\n let fieldIndex = this.formFields.findIndex((_: any) => {\r\n return field.key === _.key;\r\n });\r\n\r\n field = highlightFieldError(field, false);\r\n field = removeMessage(field, message);\r\n\r\n this.formFields[fieldIndex] = field;\r\n }\r\n\r\n @log\r\n fieldMessageShow(fieldKey: string, message: TMessage) {\r\n let field = findFieldFromKey(this.formFields, fieldKey);\r\n let fieldIndex = this.formFields.findIndex((_: any) => {\r\n return field.key === _.key;\r\n });\r\n\r\n field = addMessage(field, message);\r\n\r\n this.formFields[fieldIndex] = field;\r\n }\r\n\r\n @log\r\n fieldMessageHide(fieldKey: string, message: TMessage) {\r\n let field = findFieldFromKey(this.formFields, fieldKey);\r\n let fieldIndex = this.formFields.findIndex((_: any) => {\r\n return field.key === _.key;\r\n });\r\n\r\n field = removeMessage(field, message);\r\n\r\n this.formFields[fieldIndex] = field;\r\n }\r\n\r\n @log\r\n setObjectValue(field: any, path: string, value: any) {}\r\n\r\n @log\r\n patchFieldControlValue(key: string, value: any) {\r\n this.formGroup.patchValue(\r\n {\r\n [key]: value\r\n },\r\n { emitEvent: false }\r\n );\r\n }\r\n\r\n @log\r\n isFieldValid(fieldKey: string) {\r\n return this.formGroup.controls[fieldKey].valid;\r\n }\r\n\r\n @log\r\n isFieldEnabled(fieldKey: string) {\r\n return this.formGroup.controls[fieldKey].enabled;\r\n }\r\n\r\n @log\r\n getFormGroupRawValues() {\r\n return this.formGroup.getRawValue();\r\n }\r\n\r\n @log\r\n async handleFieldTypeSearchText(field: any, childField: any) {\r\n if (hasKey(childField, \"json\")) {\r\n childField.options = getSearchTextOptionsFromFieldConfig(\r\n field,\r\n childField,\r\n this.formGroup\r\n );\r\n }\r\n if (hasKey(childField, \"fetchJsonFromRemote\")) {\r\n childField.options = await getSearchTextOptionsFromRemoteFile(\r\n field,\r\n childField,\r\n this.formGroup\r\n );\r\n }\r\n\r\n return childField;\r\n }\r\n\r\n @log\r\n async takeAction(\r\n action: TAction,\r\n field: TField,\r\n allFormsData: any,\r\n formData: any,\r\n previousFormData: any\r\n ) {\r\n switch (action.key) {\r\n case EActionKey.FIELD_HIDE:\r\n this.fieldHide(action.props.fieldKey);\r\n break;\r\n case EActionKey.FIELD_SHOW:\r\n this.fieldShow(action.props.fieldKey);\r\n break;\r\n case EActionKey.FIELD_DISABLE:\r\n this.fieldDisable(action.props.fieldKey);\r\n break;\r\n case EActionKey.FIELD_ENABLE:\r\n this.fieldEnable(action.props.fieldKey);\r\n break;\r\n case EActionKey.FIELD_RESET:\r\n this.fieldReset(action.props.fieldKey);\r\n break;\r\n case EActionKey.FIELD_ERROR_SHOW:\r\n this.fieldErrorShow(action.props.fieldKey, action.props.message);\r\n break;\r\n case EActionKey.FIELD_ERROR_HIDE:\r\n this.fieldErrorHide(action.props.fieldKey, action.props.message);\r\n break;\r\n case EActionKey.FIELD_MESSAGE_SHOW:\r\n this.fieldMessageShow(action.props.fieldKey, action.props.message);\r\n break;\r\n case EActionKey.FIELD_MESSAGES_HIDE:\r\n this.fieldMessageHide(action.props.fieldKey, action.props.message);\r\n break;\r\n case EActionKey.SET_VALUE:\r\n const sources = new Sources(\r\n field,\r\n this.formData,\r\n this.previousFormData,\r\n this.allFormsData\r\n );\r\n\r\n const sourceValue = await sources.getValueFromSource(\r\n action.props.value.source\r\n );\r\n sources.setValueToSource(action.props.value.destination, sourceValue);\r\n\r\n field = sources.field;\r\n this.formData = sources.formData;\r\n this.allFormsData = sources.allFormsData;\r\n this.previousFormData = sources.previousFormData;\r\n\r\n break;\r\n case EActionKey.HANDLE_CONNECTED_ELEMENTS:\r\n this.handleConnectedElements({ key: field.key }, \"ACTION\");\r\n break;\r\n case EActionKey.CUSTOM:\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n}\r\n","<div\r\n class=\"kwikid-form-container\"\r\n *ngIf=\"!this.loading\"\r\n>\r\n <div id=\"uf-form-fields-header-container\">\r\n <div id=\"uf-form-fields-title\">\r\n {{ this.formConfig.title }}\r\n </div>\r\n <div id=\"uf-form-fields-steps\">\r\n Step {{ this.formConfig.sequenceNo }} of {{ this.formsList.length }}\r\n </div>\r\n <hr />\r\n </div>\r\n <form\r\n class=\"kwikid-form show\"\r\n [formGroup]=\"this.formGroup\"\r\n >\r\n <ng-container *ngFor=\"let field of this.formFields; let i = index\">\r\n <ng-container [ngSwitch]=\"field.type\">\r\n <!-- Form Title -->\r\n <ng-container *ngSwitchCase=\"'title'\">\r\n <div\r\n class=\"title\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <div>\r\n {{ field.label }}\r\n </div>\r\n <kwikui-button\r\n *ngIf=\"field?.reset\"\r\n appearance=\"whiteblock\"\r\n size=\"s\"\r\n label=\"Reset\"\r\n (onClick)=\"this.handleOnClickResetFormFields($event, field)\"\r\n ></kwikui-button>\r\n </div>\r\n </ng-container>\r\n <!-- Input Text -->\r\n <ng-container *ngSwitchCase=\"'text'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <kwikui-input\r\n [case]=\"field?.properties?.case\"\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field.label\"\r\n [placeholder]=\"field?.properties?.placeholder\"\r\n [type]=\"'text'\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-input>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Checkbox -->\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <kwikui-checkbox-block\r\n [contentAlign]=\"field?.properties?.contentAlign ?? 'left'\"\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field?.properties?.placeholder\"\r\n [placeholder]=\"field?.properties?.placeholder\"\r\n [properties]=\"field?.properties\"\r\n [size]=\"field?.properties?.size ?? 'l'\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-checkbox-block\r\n ><kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Input Number -->\r\n <ng-container *ngSwitchCase=\"'number'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <kwikui-input-number\r\n [decimal]=\"field?.properties?.decimal\"\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field?.label\"\r\n [max]=\"field?.properties?.max\"\r\n [min]=\"field?.properties?.min\"\r\n [placeholder]=\"field?.properties?.placeholder\"\r\n [postfix]=\"field?.properties?.postfix ?? ''\"\r\n [precision]=\"field?.properties?.precision\"\r\n [prefix]=\"field?.properties?.prefix ?? ''\"\r\n [properties]=\"field?.properties\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-input-number\r\n ><kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Input Date -->\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <kwikui-input-date\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field.label\"\r\n [max]=\"field?.properties?.max\"\r\n [min]=\"field?.properties?.min\"\r\n [placeholder]=\"field?.placeholder\"\r\n [properties]=\"field?.properties\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-input-date>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Input Phone -->\r\n <ng-container *ngSwitchCase=\"'phone'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <kwikui-input-phone\r\n [countryCode]=\"field?.properties?.countryCode\"\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field?.label\"\r\n [phoneMaskAfterCountryCode]=\"\r\n field?.properties?.phoneMaskAfterCountryCode\r\n \"\r\n [placeholder]=\"field?.placeholder\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-input-phone>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Input Radio -->\r\n <ng-container *ngSwitchCase=\"'radio'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <label\r\n [tuiLabel]=\"labelTemplate\"\r\n style=\"min-height: auto\"\r\n >\r\n <kwikui-radio-list\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [items]=\"field?.options\"\r\n [label]=\"field?.label\"\r\n [orientation]=\"field?.properties?.orientation\"\r\n [placeholder]=\"field?.properties?.placeholder\"\r\n [properties]=\"field?.properties\"\r\n [size]=\"field?.properties?.size\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-radio-list>\r\n </label>\r\n <ng-template #labelTemplate>\r\n <p\r\n class=\"tui-space_bottom-2\"\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <b>\r\n {{ field.label }}\r\n <span *ngIf=\"field.validators?.required\"></span>\r\n </b>\r\n </p>\r\n </ng-template>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Dropdown -->\r\n <ng-container *ngSwitchCase=\"'dropdown-with-search'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <kwikui-select-combobox\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field.label\"\r\n [options]=\"field.options\"\r\n [placeholder]=\"field?.properties?.placeholder\"\r\n [properties]=\"field?.properties\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-select-combobox>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- API Call -->\r\n <ng-container *ngSwitchCase=\"'api-call'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <kwikui-button-api-call\r\n [apiStatus]=\"field?.api?.status?.value\"\r\n [class]=\"field?.class\"\r\n [disabled]=\"field?.disabled\"\r\n [id]=\"field.key\"\r\n [label]=\"field?.api?.status?.labels[field?.api?.status?.value]\"\r\n [showLoader]=\"field?.disabled === 'loading'\"\r\n shape=\"null\"\r\n size=\"m\"\r\n styles=\"width: fit-content\"\r\n (onClick)=\"this.handleOnClickApiCall($event)\"\r\n ></kwikui-button-api-call>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Mobile OTP -->\r\n <ng-container *ngSwitchCase=\"'otp'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <kwikui-input-otp\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field?.label\"\r\n [mask]=\"field?.properties?.mask\"\r\n [placeholder]=\"field?.properties?.placeholder\"\r\n [properties]=\"field?.properties\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-input-otp>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Aadhaar Number -->\r\n <ng-container *ngSwitchCase=\"'aadhaar-number'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <kwikui-input-aadhaar\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field?.label\"\r\n [placeholder]=\"field?.placeholder\"\r\n [properties]=\"field?.properties\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-input-aadhaar>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </form>\r\n <div class=\"kwikid-form-buttons\">\r\n <kwikui-button\r\n *ngIf=\"this.isMobileView\"\r\n [disabled]=\"viewFormsButton.disabled\"\r\n id=\"\"\r\n label=\"View Forms\"\r\n [showLoader]=\"viewFormsButton.showLoader\"\r\n styles=\"\"\r\n class=\"\"\r\n type=\"button\"\r\n appearance=\"secondary\"\r\n icon=\"\"\r\n iconRight=\"\"\r\n shape=\"null\"\r\n size=\"m\"\r\n styles=\"width: 100%\"\r\n (onClick)=\"this.handleOnClickViewForms($event)\"\r\n ></kwikui-button>\r\n <kwikui-button\r\n [disabled]=\"saveFormButton.disabled\"\r\n id=\"\"\r\n label=\"Save\"\r\n [showLoader]=\"saveFormButton.showLoader\"\r\n styles=\"\"\r\n class=\"\"\r\n type=\"button\"\r\n appearance=\"primary\"\r\n icon=\"\"\r\n iconRight=\"\"\r\n shape=\"null\"\r\n size=\"m\"\r\n styles=\"width: 100%\"\r\n (onClick)=\"this.handleOnClickSaveForm($event)\"\r\n ></kwikui-button>\r\n </div>\r\n</div>\r\n<div\r\n class=\"kwikid-form-container-loading\"\r\n *ngIf=\"this.loading\"\r\n>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n</div>\r\n<tui-push\r\n id=\"field-error-notification\"\r\n *tuiPush=\"showErrorNotification\"\r\n heading=\"Missing/Incorrect Fields!\"\r\n type=\"Error\"\r\n (close)=\"toggleErrorNotification(false)\"\r\n>\r\n <tui-svg\r\n src=\"tuiIconCancel\"\r\n style=\"color: #fff !important\"\r\n >\r\n </tui-svg>\r\n</tui-push>\r\n","export const hasKey = (object: any, key: string) => {\r\n return object.hasOwnProperty(key);\r\n};\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges\r\n} from \"@angular/core\";\r\nimport { hasKey } from \"./forms-list.helper\";\r\n\r\n@Component({\r\n selector: \"kwikid-forms-list\",\r\n templateUrl: \"./forms-list.component.html\",\r\n styleUrls: [\"./forms-list.component.scss\"]\r\n})\r\nexport class KwikIDFormsListComponent implements OnInit, OnChanges {\r\n @Input()\r\n showFormFields: any = {};\r\n\r\n @Input()\r\n userConfig: any = {};\r\n\r\n @Input()\r\n formsList: any[] = [];\r\n\r\n @Input()\r\n formsListCompleted: any[] = [];\r\n\r\n @Input()\r\n isMobileView: boolean = false;\r\n\r\n @Output()\r\n onClickSetActiveForm: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n onClickHideFormsList: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n onClickSubmitForms = new EventEmitter<any>();\r\n\r\n selectedForm: string = \"\";\r\n\r\n isAllFormsCompleted: boolean = true;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {\r\n this.isAllFormsCompleted = this.checkIsAllFormsCompleted(this.formsList);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const verifyChange = (key: string) => {\r\n return hasKey(changes, key) && !changes[key].firstChange;\r\n };\r\n if (verifyChange(\"showFormFields\")) {\r\n this.showFormFields = changes.showFormFields.currentValue;\r\n }\r\n if (verifyChange(\"formsList\")) {\r\n this.formsList = changes.formsList.currentValue;\r\n this.isAllFormsCompleted = this.checkIsAllFormsCompleted(this.formsList);\r\n }\r\n if (verifyChange(\"isMobileView\")) {\r\n this.isMobileView = changes.isMobileView.currentValue;\r\n }\r\n }\r\n\r\n checkIsAllFormsCompleted(formsList: any[]): boolean {\r\n let isAllFormsCompleted: boolean = true;\r\n\r\n for (let forms of formsList) {\r\n if (forms.status !== \"completed\") {\r\n isAllFormsCompleted = false;\r\n break;\r\n }\r\n }\r\n\r\n return isAllFormsCompleted;\r\n }\r\n\r\n handleOnClickSetActiveForm(selectedForm: string) {\r\n if (\r\n this.selectedForm !== selectedForm ||\r\n (this.isAllFormsCompleted && !this.showFormFields)\r\n ) {\r\n this.selectedForm = selectedForm;\r\n this.onClickSetActiveForm.emit(selectedForm);\r\n }\r\n }\r\n\r\n handleOnSubmitForms(e: any) {\r\n this.onClickSubmitForms.emit(e);\r\n }\r\n}\r\n","<div id=\"sidebar-container\">\r\n <div id=\"sidebar\">\r\n <div ngClass=\"kwikid-form-header\">\r\n <div id=\"uf-header\">\r\n <div id=\"uf-header-logo-container\">\r\n <img\r\n id=\"uf-header-logo\"\r\n src=\"{{ this.userConfig.theme.clientLogo }}\"\r\n [ngClass]=\"'large-icon'\"\r\n />\r\n </div>\r\n </div>\r\n <hr />\r\n </div>\r\n <div id=\"uf-progress\">\r\n <div id=\"uf-progress-steps\">\r\n {{ this.formsListCompleted.length }} / {{ this.formsList.length }} Steps\r\n Completed\r\n </div>\r\n <kwikui-progress-segmented\r\n [max]=\"this.formsList.length\"\r\n size=\"m\"\r\n [value]=\"this.formsListCompleted.length\"\r\n ></kwikui-progress-segmented>\r\n </div>\r\n <div id=\"uf-sections-container\">\r\n <div\r\n *ngFor=\"let form of formsList; let i = index\"\r\n [class]=\"'uf-section-item'\"\r\n [class.completed]=\"form.status === 'completed' && !form.disabled\"\r\n [class.edit]=\"form.status === 'editable' && !form.disabled\"\r\n [class.locked]=\"form.status === 'locked' && form.disabled\"\r\n (click)=\"\r\n form.status === 'locked' && form.disabled\r\n ? undefined\r\n : handleOnClickSetActiveForm(form.key)\r\n \"\r\n >\r\n <div class=\"uf-form-section-card-title\">\r\n {{ form.title }}\r\n </div>\r\n <div class=\"uf-form-section-card-action\">\r\n <div\r\n *ngIf=\"form.status === 'completed' && !form.disabled\"\r\n class=\"uf-form-section-card-action-img completed\"\r\n >\r\n <tui-svg src=\"tuiIconCheckLarge\"></tui-svg>\r\n </div>\r\n <div\r\n *ngIf=\"form.status !== 'completed' && !form.disabled\"\r\n class=\"uf-form-section-card-action-img edit\"\r\n >\r\n <tui-svg src=\"tuiIconEdit\"></tui-svg>\r\n </div>\r\n <div\r\n *ngIf=\"form.status !== 'completed' && form.disabled\"\r\n class=\"uf-form-section-card-action-img locked\"\r\n >\r\n <tui-svg src=\"tuiIconLock\"></tui-svg>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div id=\"submit-sidebar-btn-container\">\r\n <kwikui-button\r\n [disabled]=\"false\"\r\n id=\"\"\r\n label=\"Submit\"\r\n [showLoader]=\"false\"\r\n styles=\"\"\r\n class=\"\"\r\n type=\"button\"\r\n appearance=\"primary\"\r\n icon=\"\"\r\n iconRight=\"\"\r\n shape=\"null\"\r\n size=\"m\"\r\n styles=\"width: 100%\"\r\n (onClick)=\"handleOnSubmitForms($event)\"\r\n ></kwikui-button>\r\n </div>\r\n </div>\r\n</div>\r\n","import {\r\n EBrowserStorageType,\r\n ESourceKey\r\n} from \"../form-view/definitions/sources/form-view.sources.enum.definitions\";\r\nimport {\r\n TBrowserStorageType,\r\n TSource\r\n} from \"../form-view/definitions/sources/form-view.sources.type.definitions\";\r\nimport {\r\n isNotEmpty,\r\n isNotEmptyBrowserStorageValue,\r\n jpQueryWrapper,\r\n setEmptyValue,\r\n setValueToObject\r\n} from \"../form-view/helpers/form-view.common.helper\";\r\n\r\nexport class Sources {\r\n private _userConfig: any;\r\n get userConfig(): any {\r\n return this._userConfig;\r\n }\r\n set userConfig(value: any) {\r\n this._userConfig = value;\r\n }\r\n\r\n constructor(userConfig: any) {\r\n this._userConfig = userConfig;\r\n }\r\n\r\n private getValueFromUserConfig(path: string): any {\r\n let value: any = \"\";\r\n if (isNotEmpty(path)) {\r\n value = jpQueryWrapper(this._userConfig, path);\r\n } else {\r\n value = setEmptyValue(this._userConfig);\r\n }\r\n return value;\r\n }\r\n\r\n private getValueFromBrowserStorage(\r\n type: TBrowserStorageType,\r\n key: string\r\n ): any {\r\n let value: any = \"\";\r\n switch (type) {\r\n case EBrowserStorageType.LOCAL_STORAGE:\r\n value = isNotEmptyBrowserStorageValue(localStorage.getItem(key))\r\n ? localStorage.getItem(key)\r\n : \"\";\r\n break;\r\n case EBrowserStorageType.SESSION_STORAGE:\r\n value = isNotEmptyBrowserStorageValue(sessionStorage.getItem(key))\r\n ? sessionStorage.getItem(key)\r\n : \"\";\r\n break;\r\n default:\r\n value = \"\";\r\n break;\r\n }\r\n return value;\r\n }\r\n\r\n getValueFromSource(source: TSource): any {\r\n let value: any = \"\";\r\n\r\n switch (source.key) {\r\n case ESourceKey.USER_CONFIG:\r\n value = this.getValueFromUserConfig(source.props.path);\r\n break;\r\n case ESourceKey.BROWSER_STORAGE:\r\n value = this.getValueFromBrowserStorage(\r\n source.props.browserStorage.type,\r\n source.props.browserStorage.key\r\n );\r\n break;\r\n case ESourceKey.PREDEFINED:\r\n value = source.value;\r\n break;\r\n default:\r\n value = \"\";\r\n break;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n private setValueToUserConfig(path: string, value: any): any {\r\n this._userConfig = setValueToObject(this._userConfig, path, value);\r\n }\r\n private setValueToBrowserStorage(type: string, key: string, value: any): any {\r\n switch (type) {\r\n case EBrowserStorageType.LOCAL_STORAGE:\r\n localStorage.setItem(key, value);\r\n break;\r\n case EBrowserStorageType.SESSION_STORAGE:\r\n sessionStorage.setItem(key, value);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n async setValueToSource(source: TSource, value: any) {\r\n switch (source.key) {\r\n case ESourceKey.USER_CONFIG:\r\n this.setValueToUserConfig(source.props.path, value);\r\n break;\r\n case ESourceKey.BROWSER_STORAGE:\r\n await this.setValueToBrowserStorage(\r\n source.props.browserStorage.type,\r\n source.props.browserStorage.key,\r\n value\r\n );\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n}\r\n","import { replaceString } from \"../form-view/helpers/form-view.common.helper\";\r\n\r\nexport class Condition {\r\n private _condition: string;\r\n private _rulesMapping: any;\r\n\r\n constructor(condition: string, rulesMapping: any) {\r\n this._condition = condition;\r\n this._rulesMapping = rulesMapping;\r\n }\r\n\r\n private parseKeys(condition: string, rulesEvaluationMapping: object): string {\r\n Object.keys(rulesEvaluationMapping).forEach((key) => {\r\n condition = replaceString(condition, key, rulesEvaluationMapping[key]);\r\n });\r\n\r\n return condition;\r\n }\r\n\r\n private parseOperators(condition: string): string {\r\n return condition.replace(/AND|OR|NOT|XOR|NAND|NOR|XNOR/g, (match) => {\r\n switch (match) {\r\n case \"AND\":\r\n return \"&&\";\r\n case \"OR\":\r\n return \"||\";\r\n case \"NOT\":\r\n return \"!\";\r\n case \"XOR\":\r\n return \"^\";\r\n case \"NAND\":\r\n return \"!&\";\r\n case \"NOR\":\r\n return \"!|\";\r\n case \"XNOR\":\r\n return \"!^\";\r\n default:\r\n return match;\r\n }\r\n });\r\n }\r\n\r\n evaluate(): boolean {\r\n this._condition = this.parseKeys(this._condition, this._rulesMapping);\r\n this._condition = this.parseOperators(this._condition);\r\n\r\n return eval(this._condition);\r\n }\r\n}\r\n","import { Condition } from \"./renderer.condition.helper\";\r\n\r\nexport class Actions {\r\n private _action: any;\r\n private _userConfig: any;\r\n private _ruleMapping: any;\r\n private _takeAction: Function;\r\n\r\n constructor(\r\n action: any,\r\n ruleMapping: any,\r\n userConfig: any,\r\n takeAction: Function\r\n ) {\r\n this._action = action;\r\n this._userConfig = userConfig;\r\n this._ruleMapping = ruleMapping;\r\n this._takeAction = takeAction;\r\n }\r\n\r\n async execute() {\r\n const condition = new Condition(this._action.condition, this._ruleMapping);\r\n const actionSuccess = condition.evaluate();\r\n\r\n if (actionSuccess) {\r\n return this._takeAction(this._action, this._userConfig);\r\n }\r\n }\r\n}\r\n","import {\r\n EPattern,\r\n EPatternKey\r\n} from \"../form-view/definitions/common/form-view.common.enum.definitions\";\r\nimport { ERuleKey } from \"../form-view/definitions/rules/form-view.rules.enum.definitions\";\r\nimport {\r\n TRule,\r\n TRuleObjectPathExists,\r\n TRuleType,\r\n TRuleValueChange,\r\n TRuleValueCheck\r\n} from \"../form-view/definitions/rules/form-view.rules.type.definitions\";\r\nimport { ESourceKey } from \"../form-view/definitions/sources/form-view.sources.enum.definitions\";\r\nimport { TSource } from \"../form-view/definitions/sources/form-view.sources.type.definitions\";\r\nimport { hasPath } from \"../form-view/helpers/form-view.common.helper\";\r\nimport { Sources } from \"./renderer.sources.helper\";\r\n\r\nexport class Rules {\r\n private _userConfig: any;\r\n private _rules: Array<TRule>;\r\n\r\n constructor(rules: Array<TRule>, userConfig: any) {\r\n this._userConfig = userConfig;\r\n this._rules = rules;\r\n }\r\n\r\n private evaluate(rule: TRule): boolean {\r\n let ruleType: TRuleType = rule.key;\r\n let ruleEvaluationStatus: boolean = false;\r\n\r\n const source = new Sources(this._userConfig);\r\n\r\n switch (ruleType) {\r\n case ERuleKey.OBJECT_PATH_EXISTS:\r\n const ruleObjectPathExists = rule as TRuleObjectPathExists;\r\n const ruleObjectPathExistsObject = ruleObjectPathExists.props.object;\r\n const ruleObjectPathExistsPath = ruleObjectPathExists.props.path;\r\n\r\n switch (ruleObjectPathExistsObject) {\r\n case ESourceKey.USER_CONFIG:\r\n ruleEvaluationStatus = hasPath(\r\n this._userConfig,\r\n ruleObjectPathExistsPath\r\n );\r\n break;\r\n default:\r\n ruleEvaluationStatus = false;\r\n break;\r\n }\r\n break;\r\n case ERuleKey.VALUE_CHECK:\r\n const ruleValueCheck = rule as TRuleValueCheck;\r\n const ruleValueCheckSource: TSource = ruleValueCheck.props.value.source;\r\n const ruleValueCheckValue =\r\n source.getValueFromSource(ruleValueCheckSource);\r\n\r\n if (ruleValueCheck.props.pattern.key === EPatternKey.CUSTOM) {\r\n var re = new RegExp(ruleValueCheck.props.pattern.pattern);\r\n } else {\r\n var re = new RegExp(EPattern[ruleValueCheck.props.pattern.key]);\r\n }\r\n\r\n ruleEvaluationStatus = re.test(ruleValueCheckValue);\r\n break;\r\n case ERuleKey.VALUE_CHANGE:\r\n const ruleValueChange = rule as TRuleValueChange;\r\n const ruleValueChangeCurrentSource: TSource =\r\n ruleValueChange.props.value.current.source;\r\n const ruleValueChangePreviousSource: TSource =\r\n ruleValueChange.props.value.previous.source;\r\n\r\n const previousValue = source.getValueFromSource(\r\n ruleValueChangePreviousSource\r\n );\r\n const currentValue = source.getValueFromSource(\r\n ruleValueChangeCurrentSource\r\n );\r\n\r\n ruleEvaluationStatus = previousValue === currentValue;\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return ruleEvaluationStatus;\r\n }\r\n\r\n public mapping(): any {\r\n let rulesEvaluationMapping = {};\r\n\r\n for (const rule of this._rules) {\r\n const ruleEvaluationStatus = this.evaluate(rule);\r\n\r\n rulesEvaluationMapping = {\r\n ...rulesEvaluationMapping,\r\n [rule.id]: ruleEvaluationStatus\r\n };\r\n }\r\n\r\n return rulesEvaluationMapping;\r\n }\r\n}\r\n","import { Actions } from \"./renderer.actions.helper\";\r\nimport { Condition } from \"./renderer.condition.helper\";\r\nimport { Rules } from \"./renderer.rules.helper\";\r\n\r\nexport class Validations {\r\n private _userConfig: any;\r\n get userConfig(): any {\r\n return this._userConfig;\r\n }\r\n set userConfig(value: any) {\r\n this._userConfig = value;\r\n }\r\n\r\n private _takeAction: Function;\r\n\r\n constructor(userConfig, takeAction: any) {\r\n this._userConfig = userConfig;\r\n this._takeAction = takeAction;\r\n }\r\n\r\n async validateField(): Promise<any> {\r\n const validations = this._userConfig.userFormFieldsConfig.validation;\r\n\r\n const triggers = validations?.triggers;\r\n const rules = validations.rules;\r\n const actions = validations.actions;\r\n\r\n const rulesMapping = new Rules(rules, this._userConfig).mapping();\r\n\r\n for (let action of actions) {\r\n const conditionEvaluation = new Condition(\r\n action.condition,\r\n rulesMapping\r\n ).evaluate();\r\n\r\n if (conditionEvaluation) {\r\n const actions = new Actions(\r\n action,\r\n rulesMapping,\r\n this._userConfig,\r\n this._takeAction\r\n );\r\n\r\n await actions.execute();\r\n }\r\n }\r\n }\r\n}\r\n","import { TuiDay } from \"@taiga-ui/cdk\";\r\nimport { log } from \"./form-view/form-view.decorators\";\r\nimport { convertDateStringToTuiDayFormat } from \"./form-view/helpers/form-view.fields.helper\";\r\nimport { hasKey, isEmpty, isNotEmpty } from \"./renderer.helper\";\r\n\r\nexport class Converter {\r\n getFormFields = (formConfig: any): any[] => {\r\n let fields: any[];\r\n\r\n if (hasKey(formConfig, \"multiForm\")) {\r\n fields = formConfig.multiForm.fields;\r\n } else {\r\n fields = formConfig.fields;\r\n }\r\n\r\n return fields;\r\n };\r\n\r\n setMissingFieldKeyValue = (field: any, key: string, value: any): any => {\r\n if (!hasKey(field, key)) {\r\n field[key] = value;\r\n }\r\n return field;\r\n };\r\n\r\n setFieldKeyValue = (field: any, key: string, value: any): any => {\r\n field[key] = value;\r\n\r\n return field;\r\n };\r\n\r\n removeFieldKey = (field: any, key: string): any => {\r\n if (hasKey(field, key)) {\r\n delete field[key];\r\n }\r\n\r\n return field;\r\n };\r\n\r\n @log\r\n convertFormConfig(formConfig: any): any {\r\n const updateOnFieldType = (field: any): any => {\r\n const formatFieldTypeTitle = (field: any): any => {\r\n const fieldKey: string = `${field.type}_${field.label\r\n .split(\" \")\r\n .join(\"_\")\r\n .toLocaleLowerCase()}`;\r\n field = this.setFieldKeyValue(field, \"key\", fieldKey);\r\n field = this.setFieldKeyValue(field, \"hidden\", false);\r\n\r\n return field;\r\n };\r\n const formatFieldTypeRadio = (field: any): any => {\r\n field.properties = this.setMissingFieldKeyValue(\r\n field.properties,\r\n \"size\",\r\n \"m\"\r\n );\r\n field.properties = this.setMissingFieldKeyValue(\r\n field.properties,\r\n \"orientation\",\r\n \"vertical\"\r\n );\r\n field = this.setFieldKeyValue(field, \"hidden\", false);\r\n\r\n field.options = field.options.map((x: any): any => {\r\n if (typeof x === \"string\" || typeof x === \"number\") {\r\n return { label: x, disabled: false };\r\n } else {\r\n if (hasKey(x, \"label\") && hasKey(x, \"disabled\")) {\r\n return x;\r\n }\r\n }\r\n });\r\n\r\n return field;\r\n };\r\n const formatFieldTypeOtp = (field: any): any => {\r\n field.properties = this.setMissingFieldKeyValue(\r\n field.properties,\r\n \"mask\",\r\n new Array(field.properties.otpLength).fill(\"#\").join(\" \")\r\n );\r\n field = this.setFieldKeyValue(field, \"hidden\", false);\r\n\r\n return field;\r\n };\r\n const formatFieldTypeDate = (field: any): any => {\r\n if (hasKey(field, \"min\")) {\r\n const tuiDay = convertDateStringToTuiDayFormat(field[\"min\"]);\r\n field.properties = this.setFieldKeyValue(\r\n field.properties,\r\n \"min\",\r\n tuiDay\r\n );\r\n } else {\r\n field.properties = this.setMissingFieldKeyValue(\r\n field.properties,\r\n \"min\",\r\n new TuiDay(0, 0, 1)\r\n ); // Year - 0000, Month - 0 (0 Indexing), Day - 1\r\n }\r\n\r\n if (hasKey(field, \"max\")) {\r\n const tuiDay = convertDateStringToTuiDayFormat(field[\"max\"]);\r\n field.properties = this.setFieldKeyValue(\r\n field.properties,\r\n \"max\",\r\n tuiDay\r\n );\r\n } else {\r\n field.properties = this.setMissingFieldKeyValue(\r\n field.properties,\r\n \"max\",\r\n new TuiDay(\r\n new Date().getFullYear(), // Year - 9999\r\n new Date().getMonth(), // Month - 11 (0 Indexing)\r\n new Date().getDate() // Day - 31\r\n )\r\n );\r\n }\r\n\r\n field = this.setFieldKeyValue(field, \"hidden\", false);\r\n\r\n return field;\r\n };\r\n const formatFieldTypeNumber = (field: any): any => {\r\n if (hasKey(field, \"key\")) {\r\n if (field.key === \"aadhaar_number\") {\r\n field = this.setFieldKeyValue(field, \"type\", \"aadhaar_number\");\r\n }\r\n if (field.key === \"contact_number\") {\r\n field = this.setFieldKeyValue(field, \"type\", \"phone\");\r\n }\r\n\r\n if (field.type === \"phone\" || field.type === \"number\") {\r\n field.properties = this.setMissingFieldKeyValue(\r\n field.properties,\r\n \"countryCode\",\r\n \"+91\"\r\n );\r\n field.properties = this.setMissingFieldKeyValue(\r\n field.properties,\r\n \"phoneMaskAfterCountryCode\",\r\n \"####-######\"\r\n );\r\n field.properties = this.setMissingFieldKeyValue(\r\n field.properties,\r\n \"removeCountryCodeFromValue\",\r\n true\r\n );\r\n field.properties = this.setMissingFieldKeyValue(\r\n field.properties,\r\n \"decimal\",\r\n \"never\"\r\n );\r\n field.properties = this.setMissingFieldKeyValue(\r\n field.properties,\r\n \"prefix\",\r\n \"\"\r\n );\r\n field.properties = this.setMissingFieldKeyValue(\r\n field.properties,\r\n \"postfix\",\r\n \"\"\r\n );\r\n field.properties = this.setMissingFieldKeyValue(\r\n field.properties,\r\n \"min\",\r\n -Infinity\r\n );\r\n field.properties = this.setMissingFieldKeyValue(\r\n field.properties,\r\n \"max\",\r\n Infinity\r\n );\r\n field.properties = this.setMissingFieldKeyValue(\r\n field.properties,\r\n \"precision\",\r\n 2\r\n );\r\n }\r\n }\r\n\r\n field = this.setFieldKeyValue(field, \"hidden\", false);\r\n\r\n return field;\r\n };\r\n const formatFieldTypeApiCall = (field: any): any => {\r\n if (!hasKey(field.properties, \"shape\")) {\r\n field.properties = this.setFieldKeyValue(\r\n field.properties,\r\n \"shape\",\r\n null\r\n );\r\n }\r\n if (!hasKey(field, \"showLoader\")) {\r\n field = this.setFieldKeyValue(field, \"showLoader\", false);\r\n }\r\n if (!hasKey(field.properties, \"size\")) {\r\n field.properties = this.setFieldKeyValue(\r\n field.properties,\r\n \"size\",\r\n \"m\"\r\n );\r\n }\r\n if (!hasKey(field, \"api\")) {\r\n field = this.setFieldKeyValue(field, \"api\", {});\r\n\r\n field.api = this.setMissingFieldKeyValue(field.api, \"url\", \"\");\r\n field.api = this.setMissingFieldKeyValue(field.api, \"request\", \"\");\r\n field.api = this.setMissingFieldKeyValue(field.api, \"response\", \"\");\r\n field.api = this.setMissingFieldKeyValue(field.api, \"status\", \"\");\r\n\r\n field.api.status = this.setMissingFieldKeyValue(\r\n field.api.status,\r\n \"value\",\r\n \"default\"\r\n );\r\n field.api.status = this.setMissingFieldKeyValue(\r\n field.api.status,\r\n \"labels\",\r\n {\r\n default: \"Call API\",\r\n loading: \"Call API\",\r\n success: \"API Success\",\r\n failed: \"API Failed\"\r\n }\r\n );\r\n }\r\n return field;\r\n };\r\n const formatFieldTypeSearchText = (field: any): any => {\r\n if (hasKey(field, \"type\")) {\r\n if (field.type === \"search-text\") {\r\n field = this.setFieldKeyValue(\r\n field,\r\n \"type\",\r\n \"dropdown-with-search\"\r\n );\r\n }\r\n }\r\n\r\n return field;\r\n };\r\n const formatFieldTypeText = (field: any): any => {\r\n return field;\r\n };\r\n\r\n switch (field.type) {\r\n case \"title\":\r\n field = formatFieldTypeTitle(field);\r\n break;\r\n case \"radio\":\r\n field = formatFieldTypeRadio(field);\r\n break;\r\n case \"otp\":\r\n field = formatFieldTypeOtp(field);\r\n break;\r\n case \"date\":\r\n field = formatFieldTypeDate(field);\r\n break;\r\n case \"number\":\r\n field = formatFieldTypeNumber(field);\r\n break;\r\n case \"api-call\":\r\n field = formatFieldTypeApiCall(field);\r\n break;\r\n case \"search-text\":\r\n field = formatFieldTypeSearchText(field);\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return field;\r\n };\r\n\r\n const getConnectedElementKeyValueObject = (key: any): any => {\r\n const object = {\r\n key: key,\r\n conditions: { formula: \"\", rules: [] },\r\n actions: { success: [], failure: [] }\r\n };\r\n return object;\r\n };\r\n\r\n const formatFieldKeys = (field: any): any => {\r\n if (hasKey(field, \"connectedTo\")) {\r\n if (typeof field[\"connectedTo\"] === \"string\") {\r\n field[\"connectedElements\"] = [\r\n getConnectedElementKeyValueObject(field[\"connectedTo\"])\r\n ];\r\n } else {\r\n field[\"connectedTo\"] = field[\"connectedTo\"].map((key: string) => {\r\n return getConnectedElementKeyValueObject(key);\r\n });\r\n field[\"connectedElements\"] = field[\"connectedTo\"];\r\n }\r\n }\r\n this.removeFieldKey(field, \"connectedTo\");\r\n\r\n if (hasKey(field, \"connectedToParent\")) {\r\n if (typeof field[\"connectedToParent\"] === \"string\") {\r\n field[\"connectedParentFields\"] = [\r\n getConnectedElementKeyValueObject(field[\"connectedToParent\"])\r\n ];\r\n } else {\r\n field[\"connectedParentFields\"] = getConnectedElementKeyValueObject(\r\n field[\"connectedToParent\"]\r\n );\r\n }\r\n }\r\n this.removeFieldKey(field, \"connectedToParent\");\r\n\r\n this.removeFieldKey(field, \"sideEffect\");\r\n\r\n return field;\r\n };\r\n\r\n const getConnectedElementFieldMapping = (\r\n field: any,\r\n connectedFieldMapping: any\r\n ): any => {\r\n const getConnectedElementChildFieldMapping = (\r\n field: any,\r\n connectedFieldMapping: any\r\n ): any => {\r\n if (hasKey(field, \"connectedElements\")) {\r\n connectedFieldMapping[\"child\"][field.key] = field.connectedElements;\r\n } else if (hasKey(connectedFieldMapping[\"child\"], field.key)) {\r\n field[\"connectedElements\"] =\r\n connectedFieldMapping[\"child\"][field.key];\r\n }\r\n\r\n return { field: field, connectedFieldMapping: connectedFieldMapping };\r\n };\r\n\r\n const getConnectedElementParentFieldMapping = (\r\n field: any,\r\n connectedFieldMapping: any\r\n ): any => {\r\n if (hasKey(connectedFieldMapping[\"child\"], field.key)) {\r\n for (let connectedParentKey of connectedFieldMapping[\"child\"][\r\n field.key\r\n ]) {\r\n if (\r\n hasKey(connectedFieldMapping[\"parent\"], connectedParentKey[\"key\"])\r\n ) {\r\n connectedFieldMapping[\"parent\"][connectedParentKey[\"key\"]].push(\r\n field.key\r\n );\r\n } else {\r\n connectedFieldMapping[\"parent\"][connectedParentKey[\"key\"]] = [\r\n field.key\r\n ];\r\n }\r\n }\r\n }\r\n\r\n return { field: field, connectedFieldMapping: connectedFieldMapping };\r\n };\r\n\r\n const connectedChildFieldMapping = getConnectedElementChildFieldMapping(\r\n field,\r\n connectedFieldMapping\r\n );\r\n field = connectedChildFieldMapping[\"field\"];\r\n connectedFieldMapping =\r\n connectedChildFieldMapping[\"connectedFieldMapping\"];\r\n\r\n const connectedParentFieldMapping = getConnectedElementParentFieldMapping(\r\n field,\r\n connectedFieldMapping\r\n );\r\n field = connectedParentFieldMapping[\"field\"];\r\n connectedFieldMapping =\r\n connectedParentFieldMapping[\"connectedFieldMapping\"];\r\n\r\n return connectedFieldMapping;\r\n };\r\n\r\n const updateConnectedElementsKeyValue = (\r\n field: any,\r\n connectedFieldMapping: any\r\n ): any => {\r\n if (hasKey(connectedFieldMapping[\"child\"], field.key)) {\r\n field[\"connectedElements\"] = connectedFieldMapping[\"child\"][field.key];\r\n }\r\n\r\n if (hasKey(connectedFieldMapping[\"parent\"], field.key)) {\r\n field[\"connectedParentFields\"] =\r\n connectedFieldMapping[\"parent\"][field.key];\r\n }\r\n\r\n return field;\r\n };\r\n\r\n const updateFieldValidatorConfig = (field: any): any => {\r\n if (field.type !== \"title\") {\r\n const validators = hasKey(field, \"validators\") ? field.validators : {};\r\n\r\n field = this.setMissingFieldKeyValue(field, \"validators\", {});\r\n field = this.setFieldKeyValue(field, \"validators\", {\r\n ...field[\"validators\"],\r\n min: hasKey(validators, \"min\")\r\n ? isNotEmpty(validators.min)\r\n ? Number(validators.min)\r\n : null\r\n : hasKey(field, \"min\")\r\n ? Number(field.min)\r\n : null,\r\n max: hasKey(validators, \"max\")\r\n ? isNotEmpty(validators.max)\r\n ? Number(validators.max)\r\n : null\r\n : hasKey(field, \"max\")\r\n ? Number(field.max)\r\n : null,\r\n required: hasKey(validators, \"required\")\r\n ? Boolean(validators.required)\r\n : hasKey(field, \"required\")\r\n ? Boolean(field.required)\r\n : false,\r\n minLength: hasKey(validators, \"minLength\")\r\n ? isNotEmpty(validators.minLength)\r\n ? Number(validators.minLength)\r\n : null\r\n : hasKey(field, \"minLength\")\r\n ? Number(field.minLength)\r\n : null,\r\n maxLength: hasKey(validators, \"maxLength\")\r\n ? isNotEmpty(validators.maxLength)\r\n ? Number(validators.maxLength)\r\n : null\r\n : hasKey(field, \"length\")\r\n ? Number(field.length)\r\n : hasKey(field, \"maxLength\")\r\n ? Number(field.maxLength)\r\n : null,\r\n pattern: hasKey(validators, \"pattern\")\r\n ? isNotEmpty(validators.pattern)\r\n ? validators.pattern\r\n : undefined\r\n : hasKey(field, \"pattern\")\r\n ? { key: \"CUSTOM\", pattern: String(field.pattern) }\r\n : hasKey(field, \"regex\")\r\n ? { key: \"CUSTOM\", pattern: String(field.regex) }\r\n : undefined\r\n });\r\n\r\n delete field.min;\r\n delete field.max;\r\n delete field.required;\r\n delete field.minLength;\r\n delete field.length;\r\n delete field.maxLength;\r\n delete field.pattern;\r\n delete field.regex;\r\n\r\n switch (field.type) {\r\n case \"text\":\r\n delete field.validators.min;\r\n delete field.validators.max;\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n console.log(field.key, field.validators);\r\n\r\n if (isEmpty(field.validators?.min)) {\r\n delete field.validators.min;\r\n }\r\n if (isEmpty(field.validators?.max)) {\r\n delete field.validators.min;\r\n }\r\n if (isEmpty(field.validators?.minLength)) {\r\n delete field.validators.minLength;\r\n }\r\n if (isEmpty(field.validators?.maxLength)) {\r\n delete field.validators.maxLength;\r\n }\r\n if (isEmpty(field.validators?.pattern)) {\r\n delete field.validators.pattern;\r\n }\r\n }\r\n\r\n return field;\r\n };\r\n\r\n const updateFieldDefaultValueConfig = (field: any): any => {\r\n if (field.type !== \"title\") {\r\n if (hasKey(field, \"defaultValue\")) {\r\n return field;\r\n } else if (hasKey(field, \"default\")) {\r\n return field;\r\n } else {\r\n if (hasKey(field, \"defaultVal\")) {\r\n // Currently below line is commented because it caused issues in setting Default Value.\r\n // field[\"defaultValue\"] = field[\"defaultVal\"];\r\n // delete field[\"defaultVal\"];\r\n }\r\n\r\n // TODO: Condition for all_forms_data is not considered yet.\r\n if (field.autoPopulateFromSummaryData) {\r\n field[\"defaultValue\"] = {\r\n is_found: false,\r\n value: \"\",\r\n sources: [\r\n {\r\n source: \"summary_data\",\r\n summary_data: {\r\n path: `$.${field.key}`,\r\n validation: {\r\n rules: [\r\n {\r\n key: \"1\",\r\n type: \"is_not_empty\",\r\n is_not_empty: {\r\n value: true\r\n }\r\n }\r\n ],\r\n actions: [\r\n {\r\n type: \"set_default_value_found\",\r\n condition: \"1\",\r\n set_default_value_found: {\r\n value: true\r\n }\r\n },\r\n {\r\n type: \"enable_field\",\r\n condition: \"1 OR NOT(1)\",\r\n enable_field: { value: true }\r\n }\r\n ]\r\n }\r\n }\r\n }\r\n ]\r\n };\r\n } else if (hasKey(field, \"autofill\")) {\r\n if (hasKey(field.autofill, \"type\")) {\r\n if (field.autofill.type === \"storage\") {\r\n field[\"defaultValue\"] = {\r\n is_found: false,\r\n value: \"\",\r\n sources: [\r\n {\r\n source: \"browser_storage\",\r\n browser_storage: {\r\n path: `$.${field.key}`,\r\n validation: {\r\n rules: [\r\n {\r\n key: \"1\",\r\n type: \"is_not_empty\",\r\n is_not_empty: {\r\n value: true\r\n }\r\n }\r\n ],\r\n actions: [\r\n {\r\n type: \"set_default_value_found\",\r\n condition: \"1\",\r\n set_default_value_found: {\r\n value: true\r\n }\r\n },\r\n {\r\n type: \"enable_field\",\r\n condition: \"1 OR NOT(1)\",\r\n enable_field: { value: true }\r\n }\r\n ]\r\n }\r\n }\r\n }\r\n ]\r\n };\r\n } else if (field.autofill.type === \"config\") {\r\n field[\"defaultValue\"] = {\r\n is_found: false,\r\n value: \"\",\r\n sources: [\r\n {\r\n source: \"field_config\",\r\n field_config: {\r\n path: `$.${field.key}`,\r\n validation: {\r\n rules: [\r\n {\r\n key: \"1\",\r\n type: \"is_not_empty\",\r\n is_not_empty: {\r\n value: true\r\n }\r\n }\r\n ],\r\n actions: [\r\n {\r\n type: \"set_default_value_found\",\r\n condition: \"1\",\r\n set_default_value_found: {\r\n value: true\r\n }\r\n },\r\n {\r\n type: \"enable_field\",\r\n condition: \"1 OR NOT(1)\",\r\n enable_field: { value: true }\r\n }\r\n ]\r\n }\r\n }\r\n }\r\n ]\r\n };\r\n }\r\n }\r\n } else {\r\n field[\"defaultValue\"] = {\r\n is_found: false,\r\n value: \"\",\r\n sources: [\r\n {\r\n source: \"form_data\",\r\n form_data: {\r\n path: `$.${field.key}`,\r\n validation: {\r\n rules: [\r\n {\r\n key: \"1\",\r\n type: \"is_not_empty\",\r\n is_not_empty: {\r\n value: true\r\n }\r\n }\r\n ],\r\n actions: [\r\n {\r\n type: \"set_default_value_found\",\r\n condition: \"1\",\r\n set_default_value_found: {\r\n value: true\r\n }\r\n },\r\n {\r\n type: \"enable_field\",\r\n condition: \"1 OR NOT(1)\",\r\n enable_field: { value: true }\r\n }\r\n ]\r\n }\r\n }\r\n }\r\n ]\r\n };\r\n }\r\n }\r\n\r\n delete field[\"defaultVal\"];\r\n }\r\n\r\n return field;\r\n };\r\n\r\n const updateFieldMessages = (field: any): any => {\r\n if (field.type !== \"title\") {\r\n field = this.setMissingFieldKeyValue(field, \"messages\", []);\r\n }\r\n\r\n return field;\r\n };\r\n\r\n const updateFieldResetButton = (field: any): any => {\r\n if (field.type === \"title\") {\r\n if (\r\n hasKey(field, \"action\") &&\r\n field.action === \"reset\" &&\r\n hasKey(field, \"fields\")\r\n ) {\r\n field = this.setFieldKeyValue(field, \"reset\", {\r\n fields: field.fields\r\n });\r\n }\r\n }\r\n\r\n return field;\r\n };\r\n\r\n const setFormFields = (formConfig: any, fields: any[]): any => {\r\n if (hasKey(formConfig, \"multiForm\")) {\r\n formConfig.multiForm[\"fields\"] = fields;\r\n } else {\r\n formConfig[\"fields\"] = fields;\r\n }\r\n\r\n return formConfig;\r\n };\r\n\r\n let connectedFieldMapping: any = {\r\n parent: {},\r\n child: {}\r\n };\r\n\r\n let fields: any[] = this.getFormFields(formConfig);\r\n\r\n for (let field of fields) {\r\n field = updateOnFieldType(field);\r\n\r\n field = formatFieldKeys(field);\r\n\r\n // connectedFieldMapping = getConnectedElementFieldMapping(\r\n // field,\r\n // connectedFieldMapping\r\n // );\r\n // field = updateConnectedElementsKeyValue(field, connectedFieldMapping);\r\n\r\n field = updateFieldDefaultValueConfig(field);\r\n\r\n field = updateFieldValidatorConfig(field);\r\n\r\n field = updateFieldResetButton(field);\r\n\r\n field = updateFieldMessages(field);\r\n }\r\n\r\n formConfig = setFormFields(formConfig, fields);\r\n\r\n return formConfig;\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { setValueToObject } from \"./form-view/helpers/form-view.common.helper\";\r\nimport { hasKey } from \"./renderer.helper\";\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class KwikIDRendererService {\r\n isMobileView = false;\r\n setIsMobileView(isMobileView: boolean) {\r\n this.isMobileView = isMobileView;\r\n }\r\n\r\n formsList: any[];\r\n setFormsList(formsList: any[]) {\r\n this.formsList = formsList;\r\n }\r\n\r\n formsListCompleted: string[];\r\n setFormsListCompleted(formsListCompleted: any[]) {\r\n this.formsListCompleted = formsListCompleted;\r\n }\r\n\r\n allFormsData: any = {};\r\n setAllFormsData(allFormsData: any[]) {\r\n this.allFormsData = allFormsData;\r\n }\r\n\r\n activeFormConfig: any;\r\n setActiveFormConfig(activeFormConfig: any) {\r\n this.activeFormConfig = activeFormConfig;\r\n }\r\n\r\n activeFormFields: any[];\r\n setActiveFormFields(activeFormFields: any[]) {\r\n this.activeFormFields = activeFormFields;\r\n }\r\n\r\n activeFormData: any;\r\n setActiveFormData(activeFormData: any) {\r\n this.activeFormData = activeFormData;\r\n }\r\n\r\n constructor() {}\r\n\r\n async fetchFormConfig(url: string) {\r\n const response = await fetch(url, { method: \"GET\" });\r\n const data = await response.json();\r\n return data;\r\n }\r\n\r\n findActiveFormConfig(formsList: any[]): any {\r\n const activeFormConfig = formsList.find((form) => {\r\n return form.status === \"editable\" && !form.disabled;\r\n });\r\n return activeFormConfig;\r\n }\r\n\r\n findCompletedFormsList(allFormsData: any): string[] {\r\n let formsListCompleted: string[] = [];\r\n\r\n Object.keys(allFormsData).map((formKey) => {\r\n formsListCompleted.push(formKey);\r\n });\r\n\r\n return formsListCompleted;\r\n }\r\n\r\n markFormInFormsListAsCompleted(\r\n formsList: any[],\r\n formsListCompleted: string[]\r\n ): any[] {\r\n for (let form of formsList) {\r\n if (formsListCompleted.includes(form.key)) {\r\n form = setValueToObject(form, \"status\", \"completed\");\r\n form = setValueToObject(form, \"disabled\", false);\r\n }\r\n }\r\n\r\n return formsList;\r\n }\r\n\r\n markFormInFormsListAsDisabled(\r\n formsList: any[],\r\n formsListCompleted: string[]\r\n ): any[] {\r\n for (let form of formsList) {\r\n if (form.status !== \"completed\") {\r\n if (hasKey(form, \"dependentOn\")) {\r\n const isDependent = form.dependentOn.every((r: string) =>\r\n formsListCompleted.includes(r)\r\n );\r\n if (isDependent) {\r\n form = setValueToObject(form, \"status\", \"editable\");\r\n form = setValueToObject(form, \"disabled\", false);\r\n } else {\r\n form = setValueToObject(form, \"status\", \"locked\");\r\n form = setValueToObject(form, \"disabled\", true);\r\n }\r\n } else {\r\n form = setValueToObject(form, \"dependentOn\", []);\r\n form = setValueToObject(form, \"status\", \"editable\");\r\n form = setValueToObject(form, \"disabled\", false);\r\n }\r\n }\r\n }\r\n\r\n return formsList;\r\n }\r\n\r\n assignSequenceNoToForm(formsList: any[]): any[] {\r\n let sequenceNo = 1;\r\n for (let form of formsList) {\r\n form.sequenceNo = sequenceNo++;\r\n }\r\n\r\n return formsList;\r\n }\r\n\r\n updateFormsList() {\r\n let formsList: any[] = this.formsList;\r\n let formsListCompleted: string[];\r\n let activeFormConfig: any;\r\n\r\n formsList = this.assignSequenceNoToForm(formsList);\r\n\r\n formsListCompleted = this.findCompletedFormsList(this.allFormsData);\r\n\r\n formsList = this.markFormInFormsListAsCompleted(\r\n formsList,\r\n formsListCompleted\r\n );\r\n\r\n formsList = this.markFormInFormsListAsDisabled(\r\n formsList,\r\n formsListCompleted\r\n );\r\n\r\n if (formsList.length !== formsListCompleted.length) {\r\n activeFormConfig = this.findActiveFormConfig(formsList);\r\n\r\n this.setActiveFormConfig(activeFormConfig);\r\n }\r\n\r\n this.setFormsList(formsList);\r\n this.setFormsListCompleted(formsListCompleted);\r\n }\r\n}\r\n","import { animate, style, transition, trigger } from \"@angular/animations\";\r\nimport {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostListener,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges\r\n} from \"@angular/core\";\r\nimport { EActionKey } from \"./form-view/definitions/actions/form-view.actions.enum.definitions\";\r\nimport { Sources } from \"./helpers/renderer.sources.helper\";\r\nimport { Validations } from \"./helpers/renderer.validations.helper\";\r\nimport { Converter } from \"./renderer.config-converter.helper\";\r\nimport { isSingleForm } from \"./renderer.helper\";\r\nimport { KwikIDRendererService } from \"./renderer.service\";\r\n\r\n@Component({\r\n selector: \"kwikid-forms-renderer\",\r\n templateUrl: \"./renderer.component.html\",\r\n styleUrls: [\"./renderer.component.scss\"],\r\n animations: [\r\n trigger(\"panelInOut\", [\r\n transition(\":enter\", [\r\n style({ transform: \"translateY(100%)\" }),\r\n animate(150)\r\n ]),\r\n transition(\":leave\", [\r\n animate(100, style({ transform: \"translateY(100%)\" }))\r\n ])\r\n ])\r\n ],\r\n providers: [KwikIDRendererService]\r\n})\r\nexport class KwikIDFormsRendererComponent implements OnInit, OnChanges {\r\n // The final value should be provided to service, so that it can be used in all components\r\n @HostListener(\"window:resize\", [\"$event\"])\r\n windowResizeWatcher() {\r\n if (this.hostElement.nativeElement.offsetWidth < 600) {\r\n if (this.showForm) {\r\n this.showFormSections = false;\r\n this.showFormFields = true;\r\n } else {\r\n this.showFormSections = true;\r\n this.showFormFields = false;\r\n }\r\n this.rendererService.isMobileView = true;\r\n } else {\r\n if (this.showForm) {\r\n this.showFormSections = true;\r\n this.showFormFields = true;\r\n } else {\r\n this.showFormSections = true;\r\n this.showFormFields = false;\r\n }\r\n this.rendererService.isMobileView = false;\r\n }\r\n }\r\n\r\n @Input()\r\n userConfig: any;\r\n\r\n @Input()\r\n formsData: any = {};\r\n\r\n @Input()\r\n apiCallResponse: any = {};\r\n\r\n @Output()\r\n onClickSubmit: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n getFormData: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n onClickApiCall: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n loading: boolean = false;\r\n loader: boolean = false;\r\n\r\n // display forms and list conditionally\r\n showForm: boolean = false;\r\n showFormFields: boolean = true;\r\n showFormSections: boolean = true;\r\n\r\n constructor(\r\n public rendererService: KwikIDRendererService,\r\n private hostElement: ElementRef\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.loader = true;\r\n this.loading = true;\r\n\r\n this.rendererService.setFormsList(this.userConfig.userFormFields);\r\n\r\n this.initializeForms();\r\n this.loader = false;\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const verifyChange = (prop: string) => {\r\n return changes.hasOwnProperty(prop) && !changes[prop].firstChange;\r\n };\r\n if (verifyChange(\"userConfig\")) {\r\n this.userConfig = changes.userConfig.currentValue;\r\n this.loader = false;\r\n }\r\n if (verifyChange(\"formsData\")) {\r\n this.formsData = changes.formsData.currentValue;\r\n\r\n this.initializeForms();\r\n }\r\n if (verifyChange(\"apiCallResponse\")) {\r\n this.apiCallResponse = changes.apiCallResponse.currentValue;\r\n this.loader = false;\r\n }\r\n }\r\n\r\n async initializeForms() {\r\n this.loader = true;\r\n\r\n this.rendererService.setAllFormsData(this.formsData);\r\n\r\n this.rendererService.updateFormsList();\r\n\r\n this.handleResize(this.rendererService.formsList);\r\n\r\n if (\r\n this.rendererService.formsList.length !==\r\n this.rendererService.formsListCompleted.length\r\n ) {\r\n await this.handleOnClickSetActiveForm(\r\n this.rendererService.activeFormConfig.key\r\n );\r\n } else {\r\n this.showForm = false;\r\n this.showFormFields = false;\r\n }\r\n\r\n this.loader = false;\r\n this.loading = false;\r\n }\r\n\r\n handleResize(formsList: any[]) {\r\n if (this.hostElement.nativeElement.offsetWidth < 600) {\r\n if (!isSingleForm(formsList)) {\r\n this.showFormSections = true;\r\n this.showFormFields = false;\r\n this.showForm = false;\r\n } else {\r\n this.showFormSections = true;\r\n this.showFormFields = false;\r\n this.showForm = false;\r\n }\r\n this.rendererService.isMobileView = true;\r\n } else {\r\n this.rendererService.isMobileView = false;\r\n }\r\n }\r\n\r\n // forms-list listener\r\n async handleOnClickSetActiveForm(selectedForm: string) {\r\n this.showForm = false;\r\n this.loader = true;\r\n\r\n const activeFormConfig = this.rendererService.formsList.find((form) => {\r\n if (form.key === selectedForm) {\r\n return form;\r\n }\r\n });\r\n\r\n let formConfig = await this.rendererService.fetchFormConfig(\r\n activeFormConfig.formContent.url\r\n );\r\n\r\n formConfig = new Converter().convertFormConfig(formConfig);\r\n\r\n const activeFormData =\r\n this.rendererService.allFormsData[formConfig.key] ?? {};\r\n this.rendererService.setActiveFormData(activeFormData);\r\n\r\n this.rendererService.setActiveFormConfig({\r\n ...activeFormConfig,\r\n ...formConfig\r\n });\r\n\r\n if (this.hostElement.nativeElement.offsetWidth < 600) {\r\n this.showFormSections = false;\r\n this.showFormFields = true;\r\n } else if (this.hostElement.nativeElement.offsetWidth >= 600) {\r\n this.showFormSections = true;\r\n this.showFormFields = true;\r\n }\r\n\r\n this.showForm = true;\r\n this.loader = false;\r\n }\r\n\r\n // forms-list listener\r\n handleOnClickSubmitForms(e: any) {\r\n console.log(e);\r\n\r\n if (this.userConfig.userFormFieldsConfig.validation) {\r\n const validations = new Validations(\r\n this.userConfig,\r\n this.takeAction.bind(this)\r\n );\r\n\r\n (async () => {\r\n await validations.validateField();\r\n\r\n if (this.userConfig.userFormFieldsConfig.status === \"completed\") {\r\n this.onClickSubmit.emit(e);\r\n } else {\r\n this.toggleErrorNotification(true);\r\n }\r\n })();\r\n }\r\n }\r\n\r\n // form-view listener\r\n handleOnClickApiCall(e: any) {\r\n this.loader = true;\r\n this.onClickApiCall.emit(e);\r\n }\r\n\r\n // form-view listener\r\n handleGetActiveFormData(e: any) {\r\n this.loader = true;\r\n this.getFormData.emit({\r\n [this.rendererService.activeFormConfig.key]: e[\"data\"]\r\n });\r\n }\r\n\r\n // form-view listener\r\n handleOnClickSaveForm(e: any) {\r\n this.loader = true;\r\n\r\n this.rendererService.setActiveFormData({});\r\n\r\n this.getFormData.emit({\r\n [this.rendererService.activeFormConfig.key]: e[\"data\"]\r\n });\r\n }\r\n\r\n // form-view listener\r\n handleOnClickViewForms(e: any) {\r\n this.showFormSections = true;\r\n this.showForm = false;\r\n this.showFormFields = false;\r\n }\r\n\r\n showErrorNotification: boolean = false;\r\n toggleErrorNotification(show) {\r\n this.showErrorNotification = show;\r\n }\r\n\r\n async takeAction(action: any, userConfig: any) {\r\n switch (action.key) {\r\n case EActionKey.SET_VALUE:\r\n const sources = new Sources(userConfig);\r\n\r\n const sourceValue = await sources.getValueFromSource(\r\n action.props.value.source\r\n );\r\n sources.setValueToSource(action.props.value.destination, sourceValue);\r\n\r\n this.userConfig = sources.userConfig;\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n}\r\n","<div ngClass=\"kwikid-renderer\">\r\n <div\r\n ngClass=\"kwikid-layout-container\"\r\n *ngIf=\"!loading\"\r\n >\r\n <div\r\n ngClass=\"kwikid-sections-container\"\r\n *ngIf=\"showFormSections\"\r\n class=\"active\"\r\n [class.active]=\"showFormSections\"\r\n [class.mobile]=\"rendererService.isMobileView\"\r\n >\r\n <kwikid-forms-list\r\n [showFormFields]=\"this.showFormFields\"\r\n [userConfig]=\"this.userConfig\"\r\n [formsList]=\"this.rendererService.formsList\"\r\n [formsListCompleted]=\"this.rendererService.formsListCompleted\"\r\n [isMobileView]=\"this.rendererService.isMobileView\"\r\n (onClickSetActiveForm)=\"this.handleOnClickSetActiveForm($event)\"\r\n (onClickSubmitForms)=\"this.handleOnClickSubmitForms($event)\"\r\n ></kwikid-forms-list>\r\n </div>\r\n <div\r\n ngClass=\"kwikid-forms-container\"\r\n *ngIf=\"this.showForm && this.showFormFields\"\r\n [class.active]=\"showFormFields\"\r\n [class.mobile]=\"rendererService.isMobileView\"\r\n [@panelInOut]\r\n >\r\n <kwikid-form-view\r\n [formConfig]=\"this.rendererService.activeFormConfig\"\r\n [formData]=\"this.rendererService.activeFormData\"\r\n [apiCallResponse]=\"this.apiCallResponse\"\r\n [formsList]=\"this.rendererService.formsList\"\r\n [allFormsData]=\"this.rendererService.allFormsData\"\r\n [isMobileView]=\"this.rendererService.isMobileView\"\r\n (onClickApiCall)=\"this.handleOnClickApiCall($event)\"\r\n (onClickViewForms)=\"this.handleOnClickViewForms($event)\"\r\n (onClickSaveForm)=\"this.handleOnClickSaveForm($event)\"\r\n (getActiveFormData)=\"this.handleGetActiveFormData($event)\"\r\n ></kwikid-form-view>\r\n </div>\r\n </div>\r\n</div>\r\n<div\r\n ngClass=\"kwikid-forms-renderer-loader\"\r\n *ngIf=\"loader\"\r\n>\r\n <span class=\"loader\"></span>\r\n</div>\r\n<tui-push\r\n id=\"error-notification\"\r\n *tuiPush=\"showErrorNotification\"\r\n heading=\"Please complete the required Forms!\"\r\n type=\"Error\"\r\n (close)=\"toggleErrorNotification(false)\"\r\n>\r\n <tui-svg\r\n src=\"tuiIconCancel\"\r\n style=\"color: #fff !important\"\r\n >\r\n </tui-svg>\r\n</tui-push>\r\n","import { DragDropModule } from \"@angular/cdk/drag-drop\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { KwikIDFormsBuilderComponent } from \"./builder.component\";\r\n\r\n@NgModule({\r\n declarations: [KwikIDFormsBuilderComponent],\r\n imports: [CommonModule, FormsModule, ReactiveFormsModule, DragDropModule],\r\n providers: [],\r\n exports: [KwikIDFormsBuilderComponent]\r\n})\r\nexport class KwikIDFormBuilderModule {}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { TuiLabelModule, TuiSvgModule } from \"@taiga-ui/core\";\r\nimport { TuiPushModule } from \"@taiga-ui/kit\";\r\nimport { KwikUIModule } from \"kwikui\";\r\nimport { KwikIDFormViewComponent } from \"./form-view.component\";\r\n\r\n@NgModule({\r\n declarations: [KwikIDFormViewComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n TuiLabelModule,\r\n TuiPushModule,\r\n TuiSvgModule,\r\n KwikUIModule\r\n ],\r\n exports: [KwikIDFormViewComponent]\r\n})\r\nexport class KwikIDFormViewModule {}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { TuiSvgModule } from \"@taiga-ui/core\";\r\nimport { KwikUIModule } from \"kwikui\";\r\nimport { KwikIDFormsListComponent } from \"./forms-list.component\";\r\n\r\n@NgModule({\r\n declarations: [KwikIDFormsListComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n KwikUIModule,\r\n TuiSvgModule\r\n ],\r\n exports: [KwikIDFormsListComponent]\r\n})\r\nexport class KwikIDFormsListModule {}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { HttpClientModule } from \"@angular/common/http\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { TuiLoaderModule, TuiSvgModule } from \"@taiga-ui/core\";\r\nimport { TuiPushModule } from \"@taiga-ui/kit\";\r\nimport { KwikUIModule } from \"kwikui\";\r\nimport { KwikIDFormViewModule } from \"./form-view/form-view.module\";\r\nimport { KwikIDFormsListModule } from \"./forms-list/forms-list.module\";\r\nimport { KwikIDFormsRendererComponent } from \"./renderer.component\";\r\n\r\n@NgModule({\r\n declarations: [KwikIDFormsRendererComponent],\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n KwikIDFormViewModule,\r\n KwikIDFormsListModule,\r\n KwikUIModule,\r\n TuiLoaderModule,\r\n TuiPushModule,\r\n TuiSvgModule\r\n ],\r\n providers: [],\r\n exports: [KwikIDFormsRendererComponent]\r\n})\r\nexport class KwikIDFormRendererModule {}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { KwikIDFormBuilderModule } from \"./builder/builder.module\";\r\nimport { KwikIDFormRendererModule } from \"./renderer/renderer.module\";\r\nimport { KwikIDRendererService } from \"./renderer/renderer.service\";\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n KwikIDFormBuilderModule,\r\n KwikIDFormRendererModule\r\n ],\r\n exports: [KwikIDFormBuilderModule, KwikIDFormRendererModule],\r\n providers: [KwikIDRendererService]\r\n})\r\nexport class KwikIDFormsModule {}\r\n","/*\r\n * Public API Surface of kwikid-forms\r\n */\r\n\r\n/* Builder Components */\r\nexport * from \"./lib/builder/builder.component\";\r\n\r\n/* Renderer Components */\r\nexport * from \"./lib/renderer/form-view/form-view.component\";\r\nexport * from \"./lib/renderer/forms-list/forms-list.component\";\r\nexport * from \"./lib/renderer/renderer.component\";\r\n\r\n/* KwikID Forms Component */\r\n\r\n/* All Modules in import order from bottom to top */\r\nexport * from \"./lib/builder/builder.module\";\r\nexport * from \"./lib/renderer/form-view/form-view.module\";\r\nexport * from \"./lib/renderer/forms-list/forms-list.module\";\r\nexport * from \"./lib/renderer/renderer.module\";\r\nexport * from \"./lib/kwikid-forms.module\";\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["FormGroup","VERSION","KwikUIButtonComponent","KwikUIProgressSegmentedComponent","KwikUIInputComponent","cloneDeep","FormControl","copyArrayItem","moveItemInArray","i0","Component","hasKey","isEmpty","isNotEmpty","handleJPQueryResponse","jpQueryWrapper","jp","_","TuiDay","Condition","Actions","Sources","Rules","Validations","Validators","FormArray","EventEmitter","pairwise","TuiPushService","TuiAlertService","i1.KwikIDFormViewService","i2","i3","i4","i5","i6","Inject","Input","Output","i1","Injectable","i1.KwikIDRendererService","i2.KwikIDFormsListComponent","i3.KwikIDFormViewComponent","trigger","transition","style","animate","HostListener","CommonModule","FormsModule","ReactiveFormsModule","DragDropModule","NgModule","TuiLabelModule","TuiPushModule","TuiSvgModule","KwikUIModule","HttpClientModule","TuiLoaderModule"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"kwikid-forms.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../projects/kwikid-forms/src/lib/builder/builder.component.ts","../../../projects/kwikid-forms/src/lib/builder/builder.component.html","../../../projects/kwikid-forms/src/lib/renderer/form-view/definitions/actions/form-view.actions.enum.definitions.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/definitions/apis/form-view.apis.enum.definitions.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/definitions/common/form-view.common.enum.definitions.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/definitions/fields/form-view.fields.enum.definitions.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/form-view.decorators.ts","../../../projects/kwikid-forms/src/lib/renderer/renderer.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/helpers/form-view.common.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/helpers/form-view.condition.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/helpers/form-view.actions.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/definitions/rules/form-view.rules.enum.definitions.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/definitions/sources/form-view.sources.enum.definitions.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/helpers/form-view.sources.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/helpers/form-view.rules.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/helpers/form-view.defaults.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/helpers/form-view.fields.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/helpers/form-view.validations.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/form-view.service.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/helpers/form-view.apis.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/form-view.component.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/form-view.component.html","../../../projects/kwikid-forms/src/lib/renderer/forms-list/forms-list.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/forms-list/forms-list.component.ts","../../../projects/kwikid-forms/src/lib/renderer/forms-list/forms-list.component.html","../../../projects/kwikid-forms/src/lib/renderer/helpers/renderer.sources.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/helpers/renderer.condition.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/helpers/renderer.actions.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/helpers/renderer.rules.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/helpers/renderer.validations.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/renderer.config-converter.helper.ts","../../../projects/kwikid-forms/src/lib/renderer/renderer.service.ts","../../../projects/kwikid-forms/src/lib/renderer/renderer.component.ts","../../../projects/kwikid-forms/src/lib/renderer/renderer.component.html","../../../projects/kwikid-forms/src/lib/builder/builder.module.ts","../../../projects/kwikid-forms/src/lib/renderer/form-view/form-view.module.ts","../../../projects/kwikid-forms/src/lib/renderer/forms-list/forms-list.module.ts","../../../projects/kwikid-forms/src/lib/renderer/renderer.module.ts","../../../projects/kwikid-forms/src/lib/kwikid-forms.module.ts","../../../projects/kwikid-forms/src/public_api.ts","../../../projects/kwikid-forms/src/kwikid-forms.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","import { copyArrayItem, moveItemInArray } from \"@angular/cdk/drag-drop\";\r\nimport { Component, OnInit, VERSION } from \"@angular/core\";\r\nimport { FormControl, FormGroup } from \"@angular/forms\";\r\nimport {\r\n KwikUIButtonComponent,\r\n KwikUIInputComponent,\r\n KwikUIProgressSegmentedComponent\r\n} from \"kwikui\";\r\nimport { cloneDeep } from \"lodash\";\r\n\r\ntype IMenu = {\r\n title: string;\r\n id?: string;\r\n key?: string;\r\n temp?: string;\r\n component?: any;\r\n props?: any;\r\n};\r\n\r\n@Component({\r\n selector: \"kwikid-forms-builder\",\r\n templateUrl: \"./builder.component.html\",\r\n styleUrls: [\"./builder.component.scss\"]\r\n})\r\nexport class KwikIDFormsBuilderComponent implements OnInit {\r\n buttonComponent = {\r\n disabled: false,\r\n id: \"\",\r\n label: \"Button\",\r\n showLoader: false,\r\n styles: \"\",\r\n class: \"tui-space_right-3 tui-space_bottom-3\",\r\n type: \"button\",\r\n appearance: \"primary\",\r\n icon: \"\",\r\n iconRight: \"\",\r\n shape: null,\r\n size: \"m\"\r\n };\r\n\r\n progressSegmentedComponent = {\r\n colors: \"tui(--tui-primary)\",\r\n max: \"5\",\r\n size: \"m\",\r\n value: \"2\"\r\n };\r\n\r\n inputComponent = {\r\n case: \"default\",\r\n disabled: false,\r\n focus: false,\r\n id: \"id\",\r\n invalid: false,\r\n label: \"label\",\r\n placeholder: \"placeholder\",\r\n type: \"text\",\r\n validators: {\r\n required: true\r\n }\r\n };\r\n\r\n formGroup = new FormGroup({});\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {\r\n for (let m of this.menu) {\r\n m.id = this.revisedRandId();\r\n }\r\n }\r\n\r\n revisedRandId() {\r\n return Math.random()\r\n .toString(36)\r\n .replace(/[^a-z]+/g, \"\");\r\n }\r\n\r\n handleOnChange(\r\n event: { target: { value: any } },\r\n id: string | number,\r\n key: string | number,\r\n idx: any\r\n ) {\r\n const _value = event.target.value;\r\n this.formGroup.controls[id][\"controls\"][key].patchValue(_value);\r\n }\r\n\r\n toggleShow(id: any) {\r\n console.log(id);\r\n }\r\n\r\n name = \"Angular \" + VERSION.major;\r\n menu: Array<IMenu> = [\r\n {\r\n title: \"button\",\r\n key: \"button\",\r\n component: KwikUIButtonComponent,\r\n props: this.buttonComponent\r\n },\r\n {\r\n title: \"progress-segmented\",\r\n key: \"progress_segmented\",\r\n component: KwikUIProgressSegmentedComponent,\r\n props: this.progressSegmentedComponent\r\n },\r\n {\r\n title: \"input\",\r\n key: \"input\",\r\n component: KwikUIInputComponent,\r\n props: this.inputComponent\r\n }\r\n ];\r\n table: Array<IMenu> = [];\r\n\r\n drop(event: any) {\r\n // let item = JSON.parse(JSON.stringify(event));\r\n if (event.previousContainer !== event.container) {\r\n console.log(\"copying\");\r\n\r\n // Clone the item that was dropped.\r\n let clone = cloneDeep(event.previousContainer.data[event.previousIndex]);\r\n clone.id = clone.key + \"__\" + this.revisedRandId();\r\n event.previousContainer.data[event.previousIndex] = clone;\r\n\r\n let newFormGroup = new FormGroup({});\r\n\r\n const props = clone.props;\r\n\r\n Object.keys(props).forEach((key) => {\r\n newFormGroup.addControl(\r\n key,\r\n new FormControl({ value: props[key], disabled: false })\r\n );\r\n });\r\n\r\n this.formGroup.addControl(clone.id, newFormGroup);\r\n\r\n copyArrayItem(\r\n event.previousContainer.data,\r\n event.container.data,\r\n event.previousIndex,\r\n event.currentIndex\r\n );\r\n } else {\r\n console.log(\"moving\");\r\n moveItemInArray(\r\n event.container.data,\r\n event.previousIndex,\r\n event.currentIndex\r\n );\r\n }\r\n if (event.previousContainer.data) {\r\n this.menu = this.menu.filter((f) => !f.temp);\r\n }\r\n }\r\n\r\n exited(event: any) {\r\n const currentIdx = event.container.data.findIndex(\r\n (f: { id: any }) => f.id === event.item.data.id\r\n );\r\n this.menu.splice(currentIdx + 1, 0, {\r\n ...event.item.data,\r\n temp: true\r\n });\r\n }\r\n\r\n entered() {\r\n this.menu = this.menu.filter((f) => !f.temp);\r\n }\r\n\r\n isNumber(val: any) {\r\n return typeof val;\r\n }\r\n\r\n removeElement(idx: number, id: string) {\r\n this.formGroup.removeControl(id);\r\n this.table.splice(idx, 1);\r\n }\r\n\r\n getJSON() {\r\n for (let t of this.table) {\r\n t.props = this.formGroup.getRawValue()[t.id];\r\n }\r\n console.log(this.table);\r\n }\r\n}\r\n","<!-- <div>{{ name }}</div>\r\n<p>Start editing to see some magic happen :)</p>\r\n\r\n<button (click)=\"getJSON()\">Get JSON</button>\r\n\r\n<div class=\"drap-copy\">\r\n <div>\r\n <ul\r\n class=\"menu\"\r\n cdkDropList\r\n #menuList=\"cdkDropList\"\r\n [cdkDropListData]=\"menu\"\r\n cdkDropListSortingDisabled\r\n [cdkDropListConnectedTo]=\"[tableList]\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n (cdkDropListExited)=\"exited($event)\"\r\n (cdkDropListEntered)=\"entered()\"\r\n >\r\n <li class=\"item\" *ngFor=\"let item of menu\" cdkDrag [cdkDragData]=\"item\">\r\n <div class=\"item\" *cdkDragPlaceholder>\r\n <a>{{ item.title }}</a>\r\n </div>\r\n <ng-container *ngComponentOutlet=\"item.component\"> </ng-container>\r\n </li>\r\n </ul>\r\n </div>\r\n\r\n <div\r\n class=\"table\"\r\n cdkDropList\r\n #tableList=\"cdkDropList\"\r\n [cdkDropListData]=\"table\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n >\r\n <div class=\"content\">\r\n <div>\r\n <div class=\"item\" *ngFor=\"let item of table; let idx = index\" cdkDrag>\r\n <ng-container *ngComponentOutlet=\"item.component\"> </ng-container>\r\n <div class=\"item-header\">\r\n <p>{{ idx }}--{{ item.title }}</p>\r\n <button (click)=\"removeElement(idx, item.id)\">Remove</button>\r\n </div>\r\n <div class=\"desc\">\r\n <div>id - {{ item.id }}</div>\r\n <div>key - {{ item.key }}</div>\r\n </div>\r\n <ng-container\r\n *ngTemplateOutlet=\"formModal; context: item\"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<ng-template #formModal let-component=\"component\" let-props=\"props\" let-id=\"id\">\r\n <div class=\"field_editor\">\r\n <div *ngFor=\"let i of props | keyvalue; let idx = index\">\r\n <div class=\"formModalInputGroup\">\r\n <label>{{ i.key }}</label>\r\n <input\r\n value=\"{{ i.value }}\"\r\n (keyup)=\"handleOnChange($event, id, i.key, idx)\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n</ng-template> -->\r\n","export enum EActionKey {\r\n SET_VALUE = \"SET_VALUE\",\r\n FIELD_MESSAGE_SHOW = \"FIELD_MESSAGE_SHOW\",\r\n FIELD_MESSAGES_HIDE = \"FIELD_MESSAGES_HIDE\",\r\n FIELD_ERROR_SHOW = \"FIELD_ERROR_SHOW\",\r\n FIELD_ERROR_HIDE = \"FIELD_ERROR_HIDE\",\r\n FIELD_SHOW = \"FIELD_SHOW\",\r\n FIELD_HIDE = \"FIELD_HIDE\",\r\n FIELD_ENABLE = \"FIELD_ENABLE\",\r\n FIELD_DISABLE = \"FIELD_DISABLE\",\r\n FIELD_RESET = \"FIELD_RESET\",\r\n HANDLE_CONNECTED_ELEMENTS = \"HANDLE_CONNECTED_ELEMENTS\",\r\n CUSTOM = \"CUSTOM\",\r\n FIELD_GROUP_SHOW = \"FIELD_GROUP_SHOW\",\r\n FIELD_GROUP_HIDE = \"FIELD_GROUP_HIDE\",\r\n FIELD_GROUP_ENABLE = \"FIELD_GROUP_ENABLE\",\r\n FIELD_GROUP_DISABLE = \"FIELD_GROUP_DISABLE\"\r\n}\r\n","export enum EApiStatusType {\r\n DEFAULT = \"default\",\r\n LOADING = \"loading\",\r\n SUCCESS = \"success\",\r\n FAILED = \"failed\"\r\n}\r\n","export enum EPatternKey {\r\n CUSTOM = \"CUSTOM\",\r\n IS_ADDRESS = \"IS_ADDRESS\",\r\n IS_ALPHA = \"IS_ALPHA\",\r\n IS_ALPHANUMERIC = \"IS_ALPHANUMERIC\",\r\n IS_BOOLEAN = \"IS_BOOLEAN\",\r\n IS_EMAIL = \"IS_EMAIL\",\r\n IS_EMPTY = \"IS_EMPTY\",\r\n IS_FALSE = \"IS_FALSE\",\r\n IS_HTML = \"IS_HTML\",\r\n IS_INTEGER = \"IS_INTEGER\",\r\n IS_IP_ADDRESS = \"IS_IP_ADDRESS\",\r\n IS_JSON = \"IS_JSON\",\r\n IS_LOWERCASE = \"IS_LOWERCASE\",\r\n IS_NOT_EMPTY = \"IS_NOT_EMPTY\",\r\n IS_NUMBER = \"IS_NUMBER\",\r\n IS_TRUE = \"IS_TRUE\",\r\n IS_UPPERCASE = \"IS_UPPERCASE\",\r\n IS_URL = \"IS_URL\",\r\n IS_AADHAAR_NUMBER = \"IS_AADHAAR_NUMBER\",\r\n IS_BANK_ACCOUNT_NO = \"IS_BANK_ACCOUNT_NO\",\r\n IS_BANK_SWIFT_CODE = \"IS_BANK_SWIFT_CODE\",\r\n IS_BIRTH_CERTIFICATE_NO = \"IS_BIRTH_CERTIFICATE_NO\",\r\n IS_CHEQUE_NO = \"IS_CHEQUE_NO\",\r\n IS_CIN = \"IS_CIN\",\r\n IS_CREDIT_CARD_NO = \"IS_CREDIT_CARD_NO\",\r\n IS_DRIVING_LICENSE = \"IS_DRIVING_LICENSE\",\r\n IS_GSTIN = \"IS_GSTIN\",\r\n IS_IFSC_NO = \"IS_IFSC_NO\",\r\n IS_MICR_CODE = \"IS_MICR_CODE\",\r\n IS_MOBILE_NO = \"IS_MOBILE_NO\",\r\n IS_MOBILE_NO_IN = \"IS_MOBILE_NO_IN\",\r\n IS_NEFT_OR_RTGS_NO = \"IS_NEFT_OR_RTGS_NO\",\r\n IS_PAN_NUMBER = \"IS_PAN_NUMBER\",\r\n IS_PASSPORT = \"IS_PASSPORT\",\r\n IS_PHONE_NO = \"IS_PHONE_NO\",\r\n IS_PINCODE = \"IS_PINCODE\",\r\n IS_PURCHASE_ORDER_NO = \"IS_PURCHASE_ORDER_NO\",\r\n IS_RATION_CARD_NO = \"IS_RATION_CARD_NO\",\r\n IS_SERVICE_TAX_NO = \"IS_SERVICE_TAX_NO\",\r\n IS_SOCIAL_SECURITY_NO = \"IS_SOCIAL_SECURITY_NO\",\r\n IS_UPI_TRANSACTION_REFERENCE_NO = \"IS_UPI_TRANSACTION_REFERENCE_NO\",\r\n IS_VAT_TIN_NO = \"IS_VAT_TIN_NO\",\r\n IS_VEHICLE_REGISTRATION_NO = \"IS_VEHICLE_REGISTRATION_NO\",\r\n IS_VOTER_ID = \"IS_VOTER_ID\"\r\n}\r\n\r\nexport enum EPattern {\r\n IS_ALPHA = \"^[a-zA-Z]+$\",\r\n IS_ADDRESS = \"^(\\\\w*\\\\s*[#-,/.()&]*)+\",\r\n IS_ALPHANUMERIC = \"^[a-zA-Z0-9]+$\",\r\n IS_BOOLEAN = \"(true|false)\",\r\n IS_EMAIL = \"^\\\\w+([\\\\.-]?\\\\w+)*@\\\\w+([\\\\.-]?\\\\w+)*(\\\\.\\\\w{2,3})+$\",\r\n IS_EMPTY = \"^$\",\r\n IS_FALSE = \"false\",\r\n IS_HTML = \"^<([a-z]+)([^<]+)(?:>(.)</\\\\1>|\\\\s+/>)$\",\r\n IS_INTEGER = \"^[+-]?d+$\",\r\n IS_IP_ADDRESS = \"^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$\",\r\n IS_JSON = \"^\\\\s*({(.|\\\\s)}|[(.|\\\\s)])\\\\s*$\",\r\n IS_LOWERCASE = \"^[a-z]+$\",\r\n IS_NOT_EMPTY = \"^.+$\",\r\n IS_NUMBER = \"^[+-]?d+(.d+)?$\",\r\n IS_TRUE = \"true\",\r\n IS_UPPERCASE = \"^[A-Z]+$\",\r\n IS_URL = \"^(?:http(s)?://)?[w.-]+(?:.[w.-]+)+[w-._~:/?#[]@!$&'()*+,;=.]+$\",\r\n IS_AADHAAR_NUMBER = \"^[0-9]{12}$\",\r\n IS_BANK_ACCOUNT_NO = \"^[0-9]{9,18}$\",\r\n IS_BANK_SWIFT_CODE = \"^[A-Z]{4}[A-Z]{2}[0-9A-Z]{2}[0-9A-Z]{3}$\",\r\n IS_BIRTH_CERTIFICATE_NO = \"^[A-Z]{2}[0-9]{6}[A-Z]{1}[0-9]{2}$\",\r\n IS_CHEQUE_NO = \"^[0-9]{6,14}$\",\r\n IS_CIN = \"^[A-Z]{3}[0-9]{5}[0-9A-Z]{3}$\",\r\n IS_CREDIT_CARD_NO = \"^[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{4}$\",\r\n IS_DRIVING_LICENSE = \"^[A-Z]{2}[0-9]{2}((19|20)[0-9][0-9])[0-9]{7}$\",\r\n IS_GSTIN = \"^[0-9]{2}[A-Z]{5}[0-9]{4}[A-Z]{1}[1-9A-Z]{1}Z[0-9A-Z]{1}$\",\r\n IS_IFSC_NO = \"^[A-Z]{4}[0][A-Z0-9]{6}$\",\r\n IS_MICR_CODE = \"^[0-9]{9}$\",\r\n IS_MOBILE_NO = \"^[6-9]\\\\d{9}$\",\r\n IS_MOBILE_NO_IN = \"^(\\\\+91)[6-9]\\\\d{9}$\",\r\n IS_NEFT_OR_RTGS_NO = \"^[A-Z]{4}[0-9]{7}$\",\r\n IS_PAN_NUMBER = \"^[A-Z]{5}[[0-9]{4}[A-Z]{1}$\",\r\n IS_PASSPORT = \"^[A-PR-WYa-pr-wy][1-9]\\\\d\\\\s?\\\\d{4}[1-9]$\",\r\n IS_PHONE_NO = \"^[6-9]\\\\d{9}$\",\r\n IS_PINCODE = \"^[1-9][0-9]{5}$\",\r\n IS_PURCHASE_ORDER_NO = \"^[0-9]{1,5}$\",\r\n IS_RATION_CARD_NO = \"^[A-Z]{3}[0-9]{7}$\",\r\n IS_SERVICE_TAX_NO = \"^[A-Z]{5}[0-9]{4}[A-Z]{1}$\",\r\n IS_SOCIAL_SECURITY_NO = \"^[0-9]{3}-[0-9]{2}-[0-9]{4}$\",\r\n IS_UPI_TRANSACTION_REFERENCE_NO = \"^[a-zA-Z0-9]{3,128}@[a-z]{3,9}$\",\r\n IS_VAT_TIN_NO = \"^[0-9]{11}$\",\r\n IS_VEHICLE_REGISTRATION_NO = \"^[A-Z]{2}[0-9]{2}((19|20)[0-9][0-9])[0-9]{6}$\",\r\n IS_VOTER_ID = \"^[A-Z]{3}[0-9]{7}$\"\r\n}\r\n\r\nexport enum EMessageType {\r\n DEFAULT = \"default\",\r\n ERROR = \"error\",\r\n SUCCESS = \"success\",\r\n WARNING = \"warning\"\r\n}\r\n","export enum EFieldType {\r\n TITLE = \"title\",\r\n TEXT = \"text\",\r\n CHECKBOX = \"checkbox\",\r\n NUMBER = \"number\",\r\n DATE = \"date\",\r\n PHONE = \"phone\",\r\n RADIO = \"radio\",\r\n DROPDOWN_WITH_SEARCH = \"dropdown-with-search\",\r\n API_CALL = \"api-call\",\r\n OTP = \"otp\",\r\n AADHAAR_NUMBER = \"aadhaar-number\"\r\n}\r\n","/**\r\n * A function that logs the execution of a method.\r\n * @param {any} target - The object the method belongs to.\r\n * @param {string} propertyKey - The name of the method.\r\n * @param {PropertyDescriptor} descriptor - The property descriptor for the method.\r\n */\r\nexport function log(\r\n target: any,\r\n propertyKey: string,\r\n descriptor: PropertyDescriptor\r\n) {\r\n // save a reference to the original method\r\n const originalMethod = descriptor.value;\r\n // update the descriptor value with a new function that will log and execute the original method\r\n descriptor.value = function (...args: any[]) {\r\n console.group(\"Logging Method\"); // start a new logging group\r\n console.time(\"Execution Time:\"); // start a timer\r\n\r\n let result; // declare result variable\r\n try {\r\n // execute the original method and save the result\r\n result = originalMethod.apply(this, args);\r\n } catch (error) {\r\n // if an error is thrown, log the error and throw it again\r\n logSyncMethodError(target.constructor.name, propertyKey, args, error);\r\n console.timeEnd(`Execution Time:`); // stop the timer\r\n console.groupEnd(); // end the logging group\r\n throw error;\r\n }\r\n\r\n // if the result is a Promise, handle it as an async method\r\n if (result instanceof Promise) {\r\n result = result\r\n .then((resolvedValue) => {\r\n // on success, log the resolved value and return it\r\n logAsyncMethod(\r\n target.constructor.name,\r\n propertyKey,\r\n args,\r\n resolvedValue\r\n );\r\n console.timeEnd(`Execution Time:`); // stop the timer\r\n console.groupEnd(); // end the logging group\r\n return resolvedValue;\r\n })\r\n .catch((error) => {\r\n // on error, log the error and throw it again\r\n logAsyncMethodError(\r\n target.constructor.name,\r\n propertyKey,\r\n args,\r\n error\r\n );\r\n console.timeEnd(`Execution Time:`); // stop the timer\r\n console.groupEnd(); // end the logging group\r\n throw error;\r\n });\r\n } else {\r\n // if the result is not a Promise, handle it as a sync method\r\n logSyncMethod(target.constructor.name, propertyKey, args, result);\r\n console.timeEnd(\"Execution Time:\");\r\n console.groupEnd();\r\n }\r\n return result;\r\n };\r\n}\r\n\r\n/**\r\n * This function logs a sync method's information to the console.\r\n * @param {string} className - The name of the class where the method belongs.\r\n * @param {string} methodName - The name of the method being called.\r\n * @param {any[]} args - An array of arguments passed to the method.\r\n * @param {any} result - The result of the method.\r\n */\r\nfunction logSyncMethod(className, methodName, args, result) {\r\n console.log(\r\n \"%cType: Sync Method -\",\r\n \"color: #0d47a1; font-weight: bold;\",\r\n \"\\nClass:\",\r\n className,\r\n \"\\nMethod:\",\r\n methodName,\r\n \"\\nArgs:\",\r\n args,\r\n \"\\nReturn:\",\r\n result\r\n );\r\n}\r\n\r\n/**\r\n * Logs an error that occurred during the execution of a synchronous method.\r\n * @param {string} className - The name of the class the method belongs to.\r\n * @param {string} methodName - The name of the method.\r\n * @param {any[]} args - The arguments passed to the method.\r\n * @param {Error} error - The error that occurred.\r\n */\r\nfunction logSyncMethodError(className, methodName, args, error) {\r\n console.log(\r\n \"%cType: Sync Method -\",\r\n \"color: #0d47a1; font-weight: bold;\",\r\n \"\\nClass:\",\r\n className,\r\n \"\\nMethod:\",\r\n methodName,\r\n \"\\nArgs:\",\r\n args,\r\n \"\\nError:\",\r\n error\r\n );\r\n}\r\n\r\n/**\r\n * Logs the result of the execution of an asynchronous method.\r\n * @param {string} className - The name of the class the method belongs to.\r\n * @param {string} methodName - The name of the method.\r\n * @param {any[]} args - The arguments passed to the method.\r\n * @param {any} result - The result of the method execution.\r\n */\r\nfunction logAsyncMethod(className, methodName, args, result) {\r\n console.log(\r\n \"%cType: Async Method -\",\r\n \"color: #1565c0; font-weight: bold;\",\r\n \"\\nClass:\",\r\n className,\r\n \"\\nMethod:\",\r\n methodName,\r\n \"\\nArgs:\",\r\n args,\r\n \"\\nReturn:\",\r\n result\r\n );\r\n}\r\n\r\n/**\r\n * Logs an error that occurred during the execution of an asynchronous method.\r\n * @param {string} className - The name of the class the method belongs to.\r\n * @param {string} methodName - The name of the method.\r\n * @param {any[]} args - The arguments passed to the method.\r\n * @param {Error} error - The error that occurred.\r\n */\r\nfunction logAsyncMethodError(className, methodName, args, error) {\r\n console.log(\r\n \"%cType: Async Method -\",\r\n \"color: #1565c0; font-weight: bold;\",\r\n \"\\nClass:\",\r\n className,\r\n \"\\nMethod:\",\r\n methodName,\r\n \"\\nArgs:\",\r\n args,\r\n \"\\nError:\",\r\n error\r\n );\r\n}\r\n","import { TuiDay } from \"@taiga-ui/cdk\";\r\nimport jp from \"jsonpath\";\r\n\r\nexport const hasKey = (object: any, key: string): boolean => {\r\n return object.hasOwnProperty(key);\r\n};\r\n\r\nexport const isEmpty = (value: any): boolean => {\r\n if (value === \"\" || value === undefined || value === null) {\r\n return true;\r\n } else if (\r\n value &&\r\n Object.keys(value).length === 0 &&\r\n Object.getPrototypeOf(value) === Object.prototype\r\n ) {\r\n return true;\r\n } else if (Array.isArray(value)) {\r\n if (value.length === 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n};\r\n\r\nexport const isNotEmpty = (value: any) => {\r\n return !isEmpty(value);\r\n};\r\n\r\nexport const handleJPQueryResponse = (value: any): any => {\r\n /**\r\n * jp.query doesn't always return an array with one element\r\n * so directly can't access with [0], need to check conditionally\r\n */\r\n if (Array.isArray(value)) {\r\n if (value.length > 0) {\r\n value = value[0];\r\n } else if (value.length === 0) {\r\n value = \"\";\r\n }\r\n }\r\n\r\n return value;\r\n};\r\n\r\nexport const jpQueryWrapper = (obj: any, key: string): boolean => {\r\n return handleJPQueryResponse(jp.query(obj, key));\r\n};\r\n\r\nexport const isSingleForm = (formsList: any[]): boolean => {\r\n return formsList.length === 1;\r\n};\r\n","import { TuiDay } from \"@taiga-ui/cdk\";\r\nimport jp from \"jsonpath\";\r\nimport _ from \"lodash\";\r\nimport { EFieldType } from \"../definitions/fields/form-view.fields.enum.definitions\";\r\nimport {\r\n TField,\r\n TFieldRadio,\r\n TFieldType\r\n} from \"../definitions/fields/form-view.fields.type.definitions\";\r\n\r\nexport const hasKey = (object: any, key: string): boolean => {\r\n return object.hasOwnProperty(key);\r\n};\r\n\r\nexport const hasPath = (object: any, path: string): boolean => {\r\n return _.has(object, path);\r\n};\r\n\r\nexport const isEmptyString = (value: string): boolean => {\r\n return value === \"\";\r\n};\r\nexport const isUndefined = (value: any): boolean => {\r\n return value === undefined;\r\n};\r\nexport const isNull = (value: any): boolean => {\r\n return value === null;\r\n};\r\nexport const isEmptyObject = (object: any): boolean => {\r\n return (\r\n object &&\r\n Object.keys(object).length === 0 &&\r\n Object.getPrototypeOf(object) === Object.prototype\r\n );\r\n};\r\nexport const isEmptyArray = (arr: any[]): boolean => {\r\n return arr.length === 0;\r\n};\r\n\r\nexport const isEmpty = (value: any): boolean => {\r\n if (isEmptyString(value) || isUndefined(value) || isNull(value)) {\r\n return true;\r\n } else if (isEmptyObject(value)) {\r\n return true;\r\n } else if (Array.isArray(value)) {\r\n if (isEmptyArray(value)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n};\r\n\r\nexport const isNotEmpty = (value: any) => {\r\n return !isEmpty(value);\r\n};\r\n\r\nexport const isEmptyBrowserStorageValue = (value: any) => {\r\n return isNull(value) && isUndefined(value);\r\n};\r\n\r\nexport const isNotEmptyBrowserStorageValue = (value: any) => {\r\n return !isEmptyBrowserStorageValue(value);\r\n};\r\n\r\nexport const handleJPQueryResponse = (value: any): any => {\r\n /**\r\n * jp.query doesn't always return an array with one element\r\n * so directly can't access with [0], need to check conditionally\r\n */\r\n if (Array.isArray(value)) {\r\n if (value.length > 0) {\r\n value = value[0];\r\n } else if (value.length === 0) {\r\n value = \"\";\r\n }\r\n } else {\r\n value = \"\";\r\n }\r\n\r\n return value;\r\n};\r\n\r\nexport const jpQueryWrapper = (obj: any, key: string) => {\r\n return handleJPQueryResponse(jp.query(obj, key));\r\n};\r\n\r\nexport const replaceString = (\r\n str: string,\r\n find: string,\r\n replace: string\r\n): string => {\r\n return str.replace(new RegExp(find, \"g\"), replace);\r\n};\r\n\r\nexport const setFieldKeyValue = (field: any, path: string, value: any): any => {\r\n return _.set(field, path, value);\r\n};\r\n\r\nexport const setValueToObject = (\r\n object: any,\r\n path: string,\r\n value: any\r\n): any => {\r\n return _.set(object, path, value);\r\n};\r\n\r\nexport const formatValue = (field: TField, fieldValue: any): any => {\r\n const fieldType: TFieldType = field.type;\r\n let value: any;\r\n\r\n if (isNotEmpty(fieldValue)) {\r\n switch (fieldType) {\r\n case EFieldType.DATE:\r\n const splitDate = fieldValue.split(\"-\");\r\n value = new TuiDay(\r\n Number(splitDate[2]), // Year\r\n Number(splitDate[1]) - 1, // Month, Why '-1' => Because Taiga-UI Required It, So...\r\n Number(splitDate[0]) // Day\r\n );\r\n break;\r\n case EFieldType.RADIO:\r\n const fieldRadio = field as TFieldRadio;\r\n value = fieldRadio.options.find((item: any) => {\r\n return item.label === fieldValue;\r\n });\r\n break;\r\n case EFieldType.CHECKBOX:\r\n value = Boolean(fieldValue);\r\n break;\r\n default:\r\n value = fieldValue;\r\n break;\r\n }\r\n } else {\r\n value = fieldValue;\r\n }\r\n\r\n return value;\r\n};\r\n\r\nexport const setEmptyValue = (field: TField): any => {\r\n const fieldType: TFieldType = field.type;\r\n let value: any;\r\n\r\n switch (fieldType) {\r\n case EFieldType.CHECKBOX:\r\n value = false;\r\n break;\r\n case EFieldType.NUMBER:\r\n value = null;\r\n break;\r\n case EFieldType.DATE:\r\n value = null;\r\n break;\r\n default:\r\n value = \"\";\r\n break;\r\n }\r\n\r\n return value;\r\n};\r\n","import { log } from \"../form-view.decorators\";\r\nimport { replaceString } from \"./form-view.common.helper\";\r\n\r\nexport class Condition {\r\n private _condition: string;\r\n private _rulesMapping: any;\r\n\r\n constructor(condition: string, rulesMapping: any) {\r\n this._condition = condition;\r\n this._rulesMapping = rulesMapping;\r\n }\r\n\r\n private parseKeys(condition: string, rulesEvaluationMapping: object): string {\r\n Object.keys(rulesEvaluationMapping).forEach((key) => {\r\n condition = replaceString(condition, key, rulesEvaluationMapping[key]);\r\n });\r\n\r\n return condition;\r\n }\r\n\r\n private parseOperators(condition: string): string {\r\n return condition.replace(/AND|OR|NOT|XOR|NAND|NOR|XNOR/g, (match) => {\r\n switch (match) {\r\n case \"AND\":\r\n return \"&&\";\r\n case \"OR\":\r\n return \"||\";\r\n case \"NOT\":\r\n return \"!\";\r\n case \"XOR\":\r\n return \"^\";\r\n case \"NAND\":\r\n return \"!&\";\r\n case \"NOR\":\r\n return \"!|\";\r\n case \"XNOR\":\r\n return \"!^\";\r\n default:\r\n return match;\r\n }\r\n });\r\n }\r\n\r\n @log\r\n evaluate(): boolean {\r\n this._condition = this.parseKeys(this._condition, this._rulesMapping);\r\n this._condition = this.parseOperators(this._condition);\r\n\r\n return eval(this._condition);\r\n }\r\n}\r\n","import { TAction } from \"../definitions/actions/form-view.actions.type.definitions\";\r\nimport { TField } from \"../definitions/fields/form-view.fields.type.definitions\";\r\nimport { log } from \"../form-view.decorators\";\r\nimport { Condition } from \"./form-view.condition.helper\";\r\n\r\nexport class Actions {\r\n private _action: TAction;\r\n private _allFormsData: any;\r\n private _field: TField;\r\n private _formData: any;\r\n private _previousFormData: any;\r\n private _ruleMapping: any;\r\n private _takeAction: Function;\r\n\r\n constructor(\r\n action: TAction,\r\n field: TField,\r\n ruleMapping: any,\r\n allFormsData: any,\r\n formData: any,\r\n previousFormData: any,\r\n takeAction: Function\r\n ) {\r\n this._action = action;\r\n this._field = field;\r\n this._ruleMapping = ruleMapping;\r\n this._allFormsData = allFormsData;\r\n this._formData = formData;\r\n this._previousFormData = previousFormData;\r\n this._takeAction = takeAction;\r\n }\r\n\r\n @log\r\n async execute() {\r\n const condition = new Condition(this._action.condition, this._ruleMapping);\r\n const actionSuccess = condition.evaluate();\r\n\r\n if (actionSuccess) {\r\n return this._takeAction(\r\n this._action,\r\n this._field,\r\n this._allFormsData,\r\n this._formData,\r\n this._previousFormData\r\n );\r\n }\r\n }\r\n}\r\n","export enum ERuleKey {\r\n OBJECT_PATH_EXISTS = \"OBJECT_PATH_EXISTS\",\r\n VALUE_CHECK = \"VALUE_CHECK\",\r\n VALUE_CHANGE = \"VALUE_CHANGE\"\r\n}\r\n","export enum ESourceKey {\r\n FIELD_CONFIG = \"FIELD_CONFIG\",\r\n FORM_DATA = \"FORM_DATA\",\r\n PREVIOUS_FORM_DATA = \"PREVIOUS_FORM_DATA\",\r\n ALL_FORMS_DATA = \"ALL_FORMS_DATA\",\r\n BROWSER_STORAGE = \"BROWSER_STORAGE\",\r\n PREDEFINED = \"PREDEFINED\",\r\n USER_CONFIG = \"USER_CONFIG\",\r\n CUSTOM = \"CUSTOM\"\r\n}\r\n\r\nexport enum EBrowserStorageType {\r\n LOCAL_STORAGE = \"LOCAL_STORAGE\",\r\n SESSION_STORAGE = \"SESSION_STORAGE\"\r\n}\r\n","import { TField } from \"../definitions/fields/form-view.fields.type.definitions\";\r\nimport {\r\n EBrowserStorageType,\r\n ESourceKey\r\n} from \"../definitions/sources/form-view.sources.enum.definitions\";\r\nimport {\r\n TBrowserStorageType,\r\n TSource\r\n} from \"../definitions/sources/form-view.sources.type.definitions\";\r\nimport { log } from \"../form-view.decorators\";\r\nimport {\r\n isNotEmpty,\r\n isNotEmptyBrowserStorageValue,\r\n jpQueryWrapper,\r\n setEmptyValue,\r\n setValueToObject\r\n} from \"./form-view.common.helper\";\r\n\r\nexport class Sources {\r\n private _formData: any;\r\n get formData(): any {\r\n return this._formData;\r\n }\r\n set formData(value: any) {\r\n this._formData = value;\r\n }\r\n\r\n private _previousFormData: any;\r\n get previousFormData(): any {\r\n return this._previousFormData;\r\n }\r\n set previousFormData(value: any) {\r\n this._previousFormData = value;\r\n }\r\n\r\n private _allFormsData: any;\r\n get allFormsData(): any {\r\n return this._allFormsData;\r\n }\r\n set allFormsData(value: any) {\r\n this._allFormsData = value;\r\n }\r\n\r\n private _field: TField;\r\n get field(): TField {\r\n return this._field;\r\n }\r\n set field(value: TField) {\r\n this._field = value;\r\n }\r\n\r\n constructor(\r\n field: TField,\r\n formData: any,\r\n previousFormData: any,\r\n allFormsData: any\r\n ) {\r\n this._field = field;\r\n this._formData = formData;\r\n this._previousFormData = previousFormData;\r\n this._allFormsData = allFormsData;\r\n }\r\n\r\n private getValueFromFieldConfig(path: string): any {\r\n let value: any = \"\";\r\n if (isNotEmpty(path)) {\r\n value = jpQueryWrapper(this._field, path);\r\n } else {\r\n value = setEmptyValue(this._field);\r\n }\r\n return value;\r\n }\r\n\r\n private getValueFromFormData(path: string): any {\r\n let value: any;\r\n value = jpQueryWrapper(this._formData, path);\r\n return value;\r\n }\r\n private getValueFromPreviousFormData(path: string): any {\r\n let value: any;\r\n value = jpQueryWrapper(this._previousFormData, path);\r\n return value;\r\n }\r\n private getValueFromAllFormsData(path: string): any {\r\n let value: any;\r\n value = jpQueryWrapper(this._allFormsData, path);\r\n return value;\r\n }\r\n private getValueFromBrowserStorage(\r\n type: TBrowserStorageType,\r\n key: string\r\n ): any {\r\n let value: any = \"\";\r\n switch (type) {\r\n case EBrowserStorageType.LOCAL_STORAGE:\r\n value = isNotEmptyBrowserStorageValue(localStorage.getItem(key))\r\n ? localStorage.getItem(key)\r\n : \"\";\r\n break;\r\n case EBrowserStorageType.SESSION_STORAGE:\r\n value = isNotEmptyBrowserStorageValue(sessionStorage.getItem(key))\r\n ? sessionStorage.getItem(key)\r\n : \"\";\r\n break;\r\n default:\r\n value = \"\";\r\n break;\r\n }\r\n return value;\r\n }\r\n\r\n @log\r\n getValueFromSource(source: TSource): any {\r\n let value: any = \"\";\r\n\r\n switch (source.key) {\r\n case ESourceKey.FIELD_CONFIG:\r\n value = this.getValueFromFieldConfig(source.props.path);\r\n break;\r\n case ESourceKey.FORM_DATA:\r\n value = this.getValueFromFormData(source.props.path);\r\n break;\r\n case ESourceKey.ALL_FORMS_DATA:\r\n value = this.getValueFromAllFormsData(source.props.path);\r\n break;\r\n case ESourceKey.PREVIOUS_FORM_DATA:\r\n value = this.getValueFromPreviousFormData(source.props.path);\r\n break;\r\n case ESourceKey.BROWSER_STORAGE:\r\n value = this.getValueFromBrowserStorage(\r\n source.props.browserStorage.type,\r\n source.props.browserStorage.key\r\n );\r\n break;\r\n case ESourceKey.PREDEFINED:\r\n value = source.value;\r\n break;\r\n default:\r\n value = \"\";\r\n break;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n private setValueToFieldConfig(path: string, value: any): any {\r\n this._field = setValueToObject(this._field, path, value);\r\n }\r\n private setValueToFormData(path: string, value: any): any {\r\n this._formData = setValueToObject(this._formData, path, value);\r\n }\r\n private setValueToAllFormsData(path: string, value: any): any {\r\n this._allFormsData = setValueToObject(this._allFormsData, path, value);\r\n }\r\n private setValueToPreviousFromData(path: string, value: any): any {\r\n this._previousFormData = setValueToObject(\r\n this._previousFormData,\r\n path,\r\n value\r\n );\r\n }\r\n private setValueToBrowserStorage(type: string, key: string, value: any): any {\r\n switch (type) {\r\n case EBrowserStorageType.LOCAL_STORAGE:\r\n localStorage.setItem(key, value);\r\n break;\r\n case EBrowserStorageType.SESSION_STORAGE:\r\n sessionStorage.setItem(key, value);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n @log\r\n async setValueToSource(source: TSource, value: any) {\r\n switch (source.key) {\r\n case ESourceKey.FIELD_CONFIG:\r\n this._field = this.setValueToFieldConfig(source.props.path, value);\r\n break;\r\n case ESourceKey.FORM_DATA:\r\n this._formData = this.setValueToFormData(source.props.path, value);\r\n break;\r\n case ESourceKey.ALL_FORMS_DATA:\r\n this._allFormsData = this.setValueToAllFormsData(\r\n source.props.path,\r\n value\r\n );\r\n break;\r\n case ESourceKey.PREVIOUS_FORM_DATA:\r\n this._previousFormData = this.setValueToPreviousFromData(\r\n source.props.path,\r\n value\r\n );\r\n break;\r\n case ESourceKey.BROWSER_STORAGE:\r\n await this.setValueToBrowserStorage(\r\n source.props.browserStorage.type,\r\n source.props.browserStorage.key,\r\n value\r\n );\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n}\r\n","import {\r\n EPattern,\r\n EPatternKey\r\n} from \"../definitions/common/form-view.common.enum.definitions\";\r\nimport { TField } from \"../definitions/fields/form-view.fields.type.definitions\";\r\nimport { ERuleKey } from \"../definitions/rules/form-view.rules.enum.definitions\";\r\nimport {\r\n TRule,\r\n TRuleObjectPathExists,\r\n TRuleType,\r\n TRuleValueChange,\r\n TRuleValueCheck\r\n} from \"../definitions/rules/form-view.rules.type.definitions\";\r\nimport { ESourceKey } from \"../definitions/sources/form-view.sources.enum.definitions\";\r\nimport { TSource } from \"../definitions/sources/form-view.sources.type.definitions\";\r\nimport { log } from \"../form-view.decorators\";\r\nimport { hasPath } from \"./form-view.common.helper\";\r\nimport { Sources } from \"./form-view.sources.helper\";\r\n\r\nexport class Rules {\r\n private _formData: any;\r\n private _previousFormData: any;\r\n private _allFormsData: any;\r\n private _field: TField;\r\n private _rules: Array<TRule>;\r\n\r\n constructor(\r\n rules: Array<TRule>,\r\n field: TField,\r\n formData: any,\r\n previousFormData: any,\r\n allFormsData: any\r\n ) {\r\n this._field = field;\r\n this._formData = formData;\r\n this._previousFormData = previousFormData;\r\n this._allFormsData = allFormsData;\r\n this._rules = rules;\r\n }\r\n\r\n @log\r\n private evaluate(rule: TRule): boolean {\r\n let ruleType: TRuleType = rule.key;\r\n let ruleEvaluationStatus: boolean = false;\r\n\r\n const source = new Sources(\r\n this._field,\r\n this._formData,\r\n this._previousFormData,\r\n this._allFormsData\r\n );\r\n\r\n switch (ruleType) {\r\n case ERuleKey.OBJECT_PATH_EXISTS:\r\n const ruleObjectPathExists = rule as TRuleObjectPathExists;\r\n const ruleObjectPathExistsObject = ruleObjectPathExists.props.object;\r\n const ruleObjectPathExistsPath = ruleObjectPathExists.props.path;\r\n\r\n switch (ruleObjectPathExistsObject) {\r\n case ESourceKey.ALL_FORMS_DATA:\r\n ruleEvaluationStatus = hasPath(\r\n this._allFormsData,\r\n ruleObjectPathExistsPath\r\n );\r\n break;\r\n case ESourceKey.FORM_DATA:\r\n ruleEvaluationStatus = hasPath(\r\n this._formData,\r\n ruleObjectPathExistsPath\r\n );\r\n break;\r\n case ESourceKey.PREVIOUS_FORM_DATA:\r\n ruleEvaluationStatus = hasPath(\r\n this._previousFormData,\r\n ruleObjectPathExistsPath\r\n );\r\n break;\r\n case ESourceKey.FIELD_CONFIG:\r\n ruleEvaluationStatus = hasPath(\r\n this._field,\r\n ruleObjectPathExistsPath\r\n );\r\n break;\r\n default:\r\n ruleEvaluationStatus = false;\r\n break;\r\n }\r\n break;\r\n case ERuleKey.VALUE_CHECK:\r\n const ruleValueCheck = rule as TRuleValueCheck;\r\n const ruleValueCheckSource: TSource = ruleValueCheck.props.value.source;\r\n const ruleValueCheckValue =\r\n source.getValueFromSource(ruleValueCheckSource);\r\n\r\n if (ruleValueCheck.props.pattern.key === EPatternKey.CUSTOM) {\r\n var re = new RegExp(ruleValueCheck.props.pattern.pattern);\r\n } else {\r\n var re = new RegExp(EPattern[ruleValueCheck.props.pattern.key]);\r\n }\r\n\r\n ruleEvaluationStatus = re.test(ruleValueCheckValue);\r\n break;\r\n case ERuleKey.VALUE_CHANGE:\r\n const ruleValueChange = rule as TRuleValueChange;\r\n const ruleValueChangeCurrentSource: TSource =\r\n ruleValueChange.props.value.current.source;\r\n const ruleValueChangePreviousSource: TSource =\r\n ruleValueChange.props.value.previous.source;\r\n\r\n const previousValue = source.getValueFromSource(\r\n ruleValueChangePreviousSource\r\n );\r\n const currentValue = source.getValueFromSource(\r\n ruleValueChangeCurrentSource\r\n );\r\n\r\n ruleEvaluationStatus = previousValue === currentValue;\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return ruleEvaluationStatus;\r\n }\r\n\r\n @log\r\n public mapping(): any {\r\n let rulesEvaluationMapping = {};\r\n\r\n for (const rule of this._rules) {\r\n const ruleEvaluationStatus = this.evaluate(rule);\r\n\r\n rulesEvaluationMapping = {\r\n ...rulesEvaluationMapping,\r\n [rule.id]: ruleEvaluationStatus\r\n };\r\n }\r\n\r\n return rulesEvaluationMapping;\r\n }\r\n}\r\n","import { isEmpty } from \"../../renderer.helper\";\r\nimport { TAction } from \"../definitions/actions/form-view.actions.type.definitions\";\r\nimport { TField } from \"../definitions/fields/form-view.fields.type.definitions\";\r\nimport { TRule } from \"../definitions/rules/form-view.rules.type.definitions\";\r\nimport { TTrigger } from \"../definitions/triggers/form-view.triggers.type.definitions\";\r\nimport { TValidation } from \"../definitions/validations/form-view.validations.type.definitions\";\r\nimport { log } from \"../form-view.decorators\";\r\nimport { Actions } from \"./form-view.actions.helper\";\r\nimport { setEmptyValue, setValueToObject } from \"./form-view.common.helper\";\r\nimport { Condition } from \"./form-view.condition.helper\";\r\nimport { Rules } from \"./form-view.rules.helper\";\r\nimport { Sources } from \"./form-view.sources.helper\";\r\n\r\nexport class Defaults {\r\n private _allFormsData: any;\r\n private _field: TField;\r\n private _formData: any;\r\n private _previousFormData: any;\r\n private _takeAction: Function;\r\n\r\n constructor(\r\n field: TField,\r\n allFormsData: any,\r\n formData: any,\r\n previousFormData: any,\r\n takeAction: Function\r\n ) {\r\n this._field = field;\r\n this._allFormsData = allFormsData;\r\n this._formData = formData;\r\n this._previousFormData = previousFormData;\r\n this._takeAction = takeAction;\r\n }\r\n\r\n @log\r\n async getDefaultValue() {\r\n let defaultValue: any;\r\n\r\n const sources = this._field.default.value.sources;\r\n\r\n let sourceIndex = 0;\r\n for (let source of sources) {\r\n const sources = new Sources(\r\n this._field,\r\n this._formData,\r\n this._previousFormData,\r\n this._allFormsData\r\n );\r\n const value = sources.getValueFromSource(source);\r\n // Set the Value of current source.\r\n this._field = setValueToObject(\r\n this._field,\r\n `default.value.sources.[${sourceIndex}].value`,\r\n value\r\n );\r\n\r\n const validation: TValidation = source.validation;\r\n\r\n const triggers: Array<TTrigger> = validation.triggers;\r\n const rules: Array<TRule> = validation.rules;\r\n const actions: Array<TAction> = validation.actions;\r\n\r\n const rulesMapping = new Rules(\r\n rules,\r\n this._field,\r\n this._formData,\r\n this._previousFormData,\r\n this._allFormsData\r\n ).mapping();\r\n\r\n for (let action of actions) {\r\n const conditionEvaluation = new Condition(\r\n action.condition,\r\n rulesMapping\r\n ).evaluate();\r\n\r\n if (conditionEvaluation) {\r\n const actions = new Actions(\r\n action,\r\n this._field,\r\n rulesMapping,\r\n this._allFormsData,\r\n this._formData,\r\n this._previousFormData,\r\n this._takeAction\r\n );\r\n\r\n await actions.execute();\r\n }\r\n }\r\n\r\n sourceIndex++;\r\n }\r\n\r\n defaultValue = this._field.default.value.value;\r\n\r\n if (isEmpty(defaultValue)) {\r\n defaultValue = setEmptyValue(this._field);\r\n }\r\n\r\n return defaultValue;\r\n }\r\n}\r\n","import { TuiDay } from \"@taiga-ui/cdk\";\r\nimport { EFieldType } from \"../definitions/fields/form-view.fields.enum.definitions\";\r\nimport { TField } from \"../definitions/fields/form-view.fields.type.definitions\";\r\nimport { hasKey, isNotEmpty } from \"./form-view.common.helper\";\r\n\r\nexport const findFieldFromKey = (fields: any[], key: string) => {\r\n const field = fields.find((field) => {\r\n if (field.key === key) {\r\n return field;\r\n }\r\n });\r\n\r\n return field;\r\n};\r\n\r\nexport const findFieldIndexFromKey = (fields: any[], key: string) => {\r\n let fieldIndex: number;\r\n\r\n fieldIndex = fields.findIndex((_: any) => {\r\n return key === _.key;\r\n });\r\n\r\n return fieldIndex;\r\n};\r\n\r\nexport const getSearchTextOptionsFromRemoteFile = async (\r\n field: any,\r\n childField: any,\r\n formGroup: any\r\n): Promise<any> => {\r\n const parentFieldValue = formGroup.controls[field.key].value;\r\n\r\n // Determine the URL of the remote file to fetch\r\n let fileUrl: string | undefined;\r\n if (childField.regexToGetJsonRemoteUrlKey) {\r\n const fileKey = parentFieldValue.match(\r\n childField.regexToGetJsonRemoteUrlKey\r\n )[0];\r\n fileUrl = childField.jsonRemoteUrlMapping[fileKey];\r\n } else {\r\n fileUrl = childField.fileUrl;\r\n }\r\n\r\n // Return early if there is no file URL\r\n if (!fileUrl) return;\r\n\r\n // Fetch the remote file and parse its JSON data\r\n const response = await fetch(fileUrl);\r\n const data = await response.json();\r\n\r\n // Return the data for the given parent field value\r\n return data[parentFieldValue];\r\n};\r\n\r\nexport const getSearchTextOptionsFromFieldConfig = (\r\n field: any,\r\n childField: any,\r\n formGroup: any\r\n): any => {\r\n let options: any;\r\n\r\n const fieldValue = formGroup.controls[field.key].value;\r\n\r\n if (isNotEmpty(childField[\"json\"])) {\r\n options = childField[\"json\"][fieldValue];\r\n }\r\n\r\n return options;\r\n};\r\n\r\nexport const formatSearchTextOptions = (\r\n options: { title: string; value: string }[]\r\n): string[] => {\r\n return options.map(({ title }) => title);\r\n};\r\n\r\nexport function highlightFieldError(field: any, error: any): any {\r\n field.invalid = error;\r\n field.focus = error;\r\n\r\n // if (!error) {\r\n // field[\"messages\"] = field[\"messages\"].filter(function (fieldMessage: {\r\n // type: string;\r\n // message: string;\r\n // }) {\r\n // return fieldMessage.type === \"error\";\r\n // });\r\n // }\r\n\r\n return field;\r\n}\r\n\r\nexport const addMessage = (\r\n field: any,\r\n message: { type: string; message: string }\r\n): any => {\r\n const isDuplicateMessage = (\r\n messages: { type: string; message: string }[],\r\n message: { type: string; message: string }\r\n ) => {\r\n return messages.some((fieldMessage: { type: string; message: string }) => {\r\n return (\r\n fieldMessage.type === message.type &&\r\n fieldMessage.message === message.message\r\n );\r\n });\r\n };\r\n\r\n field[\"messages\"] = [];\r\n\r\n if (hasKey(field, \"messages\")) {\r\n if (!isDuplicateMessage(field[\"messages\"], message)) {\r\n field[\"messages\"].push({\r\n type: message.type,\r\n message: message.message\r\n });\r\n }\r\n } else {\r\n field[\"messages\"] = [{ type: message.type, message: message.message }];\r\n }\r\n\r\n return field;\r\n};\r\nexport const removeMessage = (\r\n field: any,\r\n message: { type: string; message: string }\r\n): any => {\r\n field[\"messages\"] = field[\"messages\"].filter(function (fieldMessage) {\r\n return fieldMessage.type !== message.type;\r\n });\r\n\r\n return field;\r\n};\r\n\r\nexport function setFieldError(\r\n fields: any,\r\n errors: any,\r\n key: string,\r\n error: boolean\r\n) {\r\n const fieldIndex = fields.findIndex((field: any) => {\r\n return field.key === key;\r\n });\r\n\r\n const setErrorMessages = (field: any, errors: any) => {\r\n const getErrorMessage = (fieldLabel: string, errorType: string) => {\r\n let errorMessage: string = \"\";\r\n\r\n switch (errorType) {\r\n case \"required\":\r\n errorMessage = `${fieldLabel} is required!`;\r\n break;\r\n case \"email\":\r\n errorMessage = `${fieldLabel} has wrong email format!`;\r\n break;\r\n case \"min\":\r\n errorMessage = `${fieldLabel} has wrong value! Minimum value: ${field.validators.min}`;\r\n break;\r\n case \"minlength\":\r\n errorMessage = `${fieldLabel} has wrong length! Required minimum length: ${field.validators.minLength}`;\r\n break;\r\n case \"max\":\r\n errorMessage = `${fieldLabel} has wrong value! Maximum value: ${field.validators.maxLength}`;\r\n break;\r\n case \"maxlength\":\r\n errorMessage = `${fieldLabel} has wrong length! Required maximum length: ${field.validators.maxLength}`;\r\n break;\r\n case \"areEqual\":\r\n errorMessage = `${fieldLabel} must be equal!`;\r\n break;\r\n case \"pattern\":\r\n errorMessage = `${fieldLabel} is in incorrect format!`;\r\n break;\r\n default:\r\n errorMessage = `${fieldLabel}: ${errorType}`;\r\n break;\r\n }\r\n\r\n return errorMessage;\r\n };\r\n\r\n Object.keys(errors).forEach((error) => {\r\n field = addMessage(field, {\r\n type: \"error\",\r\n message: getErrorMessage(field.label, error)\r\n });\r\n });\r\n\r\n return field;\r\n };\r\n\r\n if (error) {\r\n fields[fieldIndex] = setErrorMessages(fields[fieldIndex], errors);\r\n } else {\r\n fields[fieldIndex][\"messages\"] = [];\r\n }\r\n\r\n fields[fieldIndex] = highlightFieldError(fields[fieldIndex], error);\r\n\r\n return fields;\r\n}\r\n\r\nexport const convertDateStringToTuiDayFormat = (date: string): TuiDay => {\r\n const splitDate = date.split(\"-\");\r\n const tuiDay = new TuiDay(\r\n Number(splitDate[2]), // Year\r\n Number(splitDate[1]) - 1, // Month, Why '-1' => Because Taiga-UI Required It, So...\r\n Number(splitDate[0]) // Day\r\n );\r\n\r\n return tuiDay;\r\n};\r\n\r\nexport const convertTuiDayFormatToDateString = (date: TuiDay): string => {\r\n let formattedDate: string;\r\n let year = date.year;\r\n let month = date.month;\r\n let day = date.day;\r\n\r\n formattedDate = `${day.toString().padStart(2, \"0\")}-${(month + 1)\r\n .toString()\r\n .padStart(2, \"0\")}-${year}`;\r\n\r\n return formattedDate;\r\n};\r\n\r\nexport const convertValueFromKwikUIFormatToBasicFormat = (\r\n field: TField,\r\n value: any\r\n) => {\r\n let convertedValue: any = value;\r\n\r\n if (isNotEmpty(value)) {\r\n switch (field.type) {\r\n case EFieldType.DATE:\r\n convertedValue = convertTuiDayFormatToDateString(value);\r\n break;\r\n case EFieldType.RADIO:\r\n convertedValue = value.label;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n return convertedValue;\r\n};\r\n\r\nexport const convertValueFromBasicFormatToKwikUIFormat = (\r\n field: TField,\r\n value: any\r\n) => {\r\n let convertedValue: any = value;\r\n\r\n if (isNotEmpty(value)) {\r\n switch (field.type) {\r\n case EFieldType.RADIO:\r\n if (!hasKey(value, \"label\")) {\r\n const convertedLabelValue = {\r\n label: value,\r\n disabled: false\r\n };\r\n convertedValue = convertedLabelValue;\r\n }\r\n break;\r\n case EFieldType.DATE:\r\n convertedValue = convertDateStringToTuiDayFormat(value);\r\n break;\r\n case EFieldType.TITLE:\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n return convertedValue;\r\n};\r\n","import {\r\n FormArray,\r\n FormGroup,\r\n ValidationErrors,\r\n Validators\r\n} from \"@angular/forms\";\r\nimport {\r\n EPattern,\r\n EPatternKey\r\n} from \"../definitions/common/form-view.common.enum.definitions\";\r\nimport { TField } from \"../definitions/fields/form-view.fields.type.definitions\";\r\nimport { log } from \"../form-view.decorators\";\r\nimport { Actions } from \"./form-view.actions.helper\";\r\nimport { hasKey, isNotEmpty } from \"./form-view.common.helper\";\r\nimport { Condition } from \"./form-view.condition.helper\";\r\nimport { Rules } from \"./form-view.rules.helper\";\r\n\r\nexport class Validations {\r\n private _formData: any;\r\n get formData(): any {\r\n return this._formData;\r\n }\r\n set formData(value: any) {\r\n this._formData = value;\r\n }\r\n\r\n private _previousFormData: any;\r\n get previousFormData(): any {\r\n return this._previousFormData;\r\n }\r\n set previousFormData(value: any) {\r\n this._previousFormData = value;\r\n }\r\n\r\n private _allFormsData: any;\r\n get allFormsData(): any {\r\n return this._allFormsData;\r\n }\r\n set allFormsData(value: any) {\r\n this._allFormsData = value;\r\n }\r\n\r\n private _field: TField;\r\n get field(): TField {\r\n return this._field;\r\n }\r\n set field(value: TField) {\r\n this._field = value;\r\n }\r\n\r\n private _takeAction: Function;\r\n\r\n constructor(\r\n field: TField,\r\n formData: any,\r\n previousFormData: any,\r\n allFormsData: any,\r\n takeAction: any\r\n ) {\r\n this._field = field;\r\n this._formData = formData;\r\n this._previousFormData = previousFormData;\r\n this._allFormsData = allFormsData;\r\n this._takeAction = takeAction;\r\n }\r\n\r\n @log\r\n getFieldValidators(field: any) {\r\n let validators = [];\r\n\r\n if (\r\n hasKey(field, \"validators\") &&\r\n hasKey(field.validators, \"min\") &&\r\n isNotEmpty(field.validators.min)\r\n ) {\r\n validators.push(Validators.min(field.validators.min));\r\n }\r\n if (\r\n hasKey(field, \"validators\") &&\r\n hasKey(field.validators, \"max\") &&\r\n isNotEmpty(field.validators.max)\r\n ) {\r\n validators.push(Validators.max(field.validators.max));\r\n }\r\n if (\r\n (hasKey(field, \"required\") && field.required) ||\r\n (hasKey(field, \"validators\") &&\r\n hasKey(field.validators, \"required\") &&\r\n field.validators.required)\r\n ) {\r\n validators.push(Validators.required);\r\n }\r\n if (\r\n hasKey(field, \"validators\") &&\r\n hasKey(field.validators, \"minLength\") &&\r\n isNotEmpty(field.validators.minLength)\r\n ) {\r\n validators.push(Validators.minLength(field.validators.minLength));\r\n }\r\n if (\r\n hasKey(field, \"validators\") &&\r\n hasKey(field.validators, \"maxLength\") &&\r\n isNotEmpty(field.validators.maxLength)\r\n ) {\r\n validators.push(Validators.maxLength(field.validators.maxLength));\r\n }\r\n if (\r\n hasKey(field, \"validators\") &&\r\n hasKey(field.validators, \"pattern\") &&\r\n isNotEmpty(field.validators.pattern)\r\n ) {\r\n if (hasKey(field.validators.pattern, \"key\")) {\r\n if (field.validators.pattern.key === EPatternKey.CUSTOM) {\r\n validators.push(Validators.pattern(field.validators.pattern.pattern));\r\n } else {\r\n validators.push(\r\n Validators.pattern(EPattern[field.validators.pattern.key])\r\n );\r\n }\r\n }\r\n }\r\n\r\n return validators;\r\n }\r\n\r\n @log\r\n getFormValidationErrors(\r\n control: FormGroup\r\n ): { name: string; value: string }[] {\r\n let errors: { name: string; value: string }[] = [];\r\n\r\n for (const key in control.controls) {\r\n const controlErrors: ValidationErrors = control.controls[key].errors;\r\n if (controlErrors !== null && controlErrors !== undefined) {\r\n Object.keys(controlErrors).forEach((keyError) => {\r\n errors.push({\r\n name: keyError,\r\n value: controlErrors[keyError]\r\n });\r\n });\r\n }\r\n }\r\n\r\n return errors;\r\n }\r\n\r\n @log\r\n findInvalidControlsRecursive(formToInvestigate: FormGroup | FormArray) {\r\n var controls: any[] = [];\r\n\r\n let recursiveFunc = (form: FormGroup | FormArray) => {\r\n Object.keys(form.controls).forEach((field: any) => {\r\n const control = form.get(field);\r\n if (control.invalid) {\r\n controls.push({\r\n key: field,\r\n invalid: true\r\n });\r\n } else {\r\n controls.push({\r\n key: field,\r\n invalid: false\r\n });\r\n }\r\n if (control instanceof FormGroup) {\r\n recursiveFunc(control);\r\n } else if (control instanceof FormArray) {\r\n recursiveFunc(control);\r\n }\r\n });\r\n };\r\n\r\n recursiveFunc(formToInvestigate);\r\n\r\n return controls;\r\n }\r\n\r\n @log\r\n async validateField(): Promise<any> {\r\n const validations = this._field.validation;\r\n\r\n const triggers = validations.triggers;\r\n const rules = validations.rules;\r\n const actions = validations.actions;\r\n\r\n const rulesMapping = new Rules(\r\n rules,\r\n this._field,\r\n this._formData,\r\n this._previousFormData,\r\n this._allFormsData\r\n ).mapping();\r\n\r\n for (let action of actions) {\r\n const conditionEvaluation = new Condition(\r\n action.condition,\r\n rulesMapping\r\n ).evaluate();\r\n\r\n if (conditionEvaluation) {\r\n const actions = new Actions(\r\n action,\r\n this._field,\r\n rulesMapping,\r\n this._allFormsData,\r\n this._formData,\r\n this._previousFormData,\r\n this._takeAction\r\n );\r\n\r\n await actions.execute();\r\n }\r\n }\r\n }\r\n}\r\n","import { FormControl, FormGroup } from \"@angular/forms\";\r\nimport { log } from \"./form-view.decorators\";\r\nimport { Defaults } from \"./helpers/form-view.defaults.helper\";\r\nimport { convertValueFromBasicFormatToKwikUIFormat } from \"./helpers/form-view.fields.helper\";\r\nimport { Validations } from \"./helpers/form-view.validations.helper\";\r\n\r\nexport class KwikIDFormViewService {\r\n constructor() {}\r\n\r\n // 'init' stage of the form\r\n @log\r\n async createFormGroup(\r\n fields: any,\r\n formData: any,\r\n previousFormData: any,\r\n allFormsData: any,\r\n takeAction: Function\r\n ) {\r\n let formGroup = new FormGroup({});\r\n\r\n for (let field of fields) {\r\n if (field.type !== \"title\") {\r\n const defaults = new Defaults(\r\n field,\r\n allFormsData,\r\n formData,\r\n previousFormData,\r\n takeAction\r\n );\r\n let value = await defaults.getDefaultValue();\r\n value = convertValueFromBasicFormatToKwikUIFormat(field, value);\r\n\r\n const validators = new Validations(\r\n field,\r\n formData,\r\n previousFormData,\r\n allFormsData,\r\n takeAction\r\n ).getFieldValidators(field);\r\n\r\n formGroup.addControl(\r\n field.key,\r\n new FormControl(\r\n { value: value, disabled: field.disabled },\r\n { validators: validators }\r\n )\r\n );\r\n }\r\n }\r\n\r\n return formGroup;\r\n }\r\n}\r\n","import { TAction } from \"../definitions/actions/form-view.actions.type.definitions\";\r\nimport {\r\n TApi,\r\n TApiRequest,\r\n TApiRequestBody,\r\n TApiRequestBodyParam,\r\n TApiResponse,\r\n TApiStatus\r\n} from \"../definitions/apis/form-view.apis.type.definitions\";\r\nimport { TFieldApiCall } from \"../definitions/fields/form-view.fields.type.definitions\";\r\nimport { TRule } from \"../definitions/rules/form-view.rules.type.definitions\";\r\nimport { TSource } from \"../definitions/sources/form-view.sources.type.definitions\";\r\nimport { TTrigger } from \"../definitions/triggers/form-view.triggers.type.definitions\";\r\nimport { TValidation } from \"../definitions/validations/form-view.validations.type.definitions\";\r\nimport { log } from \"../form-view.decorators\";\r\nimport { Actions } from \"./form-view.actions.helper\";\r\nimport { setValueToObject } from \"./form-view.common.helper\";\r\nimport { Condition } from \"./form-view.condition.helper\";\r\nimport { Rules } from \"./form-view.rules.helper\";\r\nimport { Sources } from \"./form-view.sources.helper\";\r\n\r\nexport class Apis {\r\n private _formData: any;\r\n private _previousFormData: any;\r\n private _allFormsData: any;\r\n private _field: TFieldApiCall;\r\n private _takeAction: Function;\r\n\r\n private _api: TApi;\r\n private _request: TApiRequest;\r\n private _response: TApiResponse;\r\n private _status: TApiStatus;\r\n\r\n constructor(\r\n field: TFieldApiCall,\r\n formData: any,\r\n previousFormData: any,\r\n allFormsData: any,\r\n takeAction: Function\r\n ) {\r\n this._field = field;\r\n this._formData = formData;\r\n this._previousFormData = previousFormData;\r\n this._allFormsData = allFormsData;\r\n this._takeAction = takeAction;\r\n\r\n this._api = field.api;\r\n this._request = field.api.request;\r\n this._response = field.api.response;\r\n this._status = field.api.status;\r\n }\r\n\r\n @log\r\n public async setRequestBodyParams(): Promise<TFieldApiCall> {\r\n let params: Array<TApiRequestBodyParam> = this._request.body.params;\r\n\r\n let paramIndex = 0;\r\n for (let param of params) {\r\n let sources: Array<TSource> = param.sources;\r\n\r\n let sourceIndex = 0;\r\n for (let source of sources) {\r\n const sources = new Sources(\r\n this._field,\r\n this._formData,\r\n this._previousFormData,\r\n this._allFormsData\r\n );\r\n const value = sources.getValueFromSource(source);\r\n // Set the Value of current source.\r\n this._field = setValueToObject(\r\n this._field,\r\n `api.request.body.params[${paramIndex}].sources[${sourceIndex}].value`,\r\n value\r\n );\r\n\r\n const validation: TValidation = source.validation;\r\n\r\n const triggers: Array<TTrigger> = validation?.triggers ?? [];\r\n const rules: Array<TRule> = validation?.rules ?? [];\r\n const actions: Array<TAction> = validation?.actions ?? [];\r\n\r\n const rulesMapping = new Rules(\r\n rules,\r\n this._field,\r\n this._formData,\r\n this._previousFormData,\r\n this._allFormsData\r\n ).mapping();\r\n\r\n for (let action of actions) {\r\n const conditionEvaluation = new Condition(\r\n action.condition,\r\n rulesMapping\r\n ).evaluate();\r\n\r\n if (conditionEvaluation) {\r\n const actions = new Actions(\r\n action,\r\n this._field,\r\n rulesMapping,\r\n this._allFormsData,\r\n this._formData,\r\n this._previousFormData,\r\n this._takeAction\r\n );\r\n\r\n await actions.execute();\r\n }\r\n }\r\n\r\n sourceIndex++;\r\n }\r\n\r\n paramIndex++;\r\n }\r\n\r\n return this._field;\r\n }\r\n\r\n @log\r\n public async validateRequestBody(): Promise<TFieldApiCall> {\r\n const body: TApiRequestBody = this._request.body;\r\n\r\n const validation: TValidation = body.validation;\r\n\r\n const triggers: Array<TTrigger> = validation.triggers;\r\n const rules: Array<TRule> = validation.rules;\r\n const actions: Array<TAction> = validation.actions;\r\n\r\n const rulesMapping = new Rules(\r\n rules,\r\n this._field,\r\n this._formData,\r\n this._previousFormData,\r\n this._allFormsData\r\n ).mapping();\r\n\r\n for (let action of actions) {\r\n const conditionSuccess = new Condition(\r\n action.condition,\r\n rulesMapping\r\n ).evaluate();\r\n\r\n if (conditionSuccess) {\r\n const actions = new Actions(\r\n action,\r\n this._field,\r\n rulesMapping,\r\n this._allFormsData,\r\n this._formData,\r\n this._previousFormData,\r\n this._takeAction\r\n );\r\n\r\n await actions.execute();\r\n }\r\n }\r\n\r\n return this._field;\r\n }\r\n\r\n @log\r\n public async validateApiCallResponse(): Promise<TFieldApiCall> {\r\n const validation: TValidation = this._response.validation;\r\n\r\n const triggers: Array<TTrigger> = validation.triggers;\r\n const rules: Array<TRule> = validation.rules;\r\n const actions: Array<TAction> = validation.actions;\r\n\r\n const rulesMapping = new Rules(\r\n rules,\r\n this._field,\r\n this._formData,\r\n this._previousFormData,\r\n this._allFormsData\r\n ).mapping();\r\n\r\n for (let action of actions) {\r\n const conditionSuccess = new Condition(\r\n action.condition,\r\n rulesMapping\r\n ).evaluate();\r\n\r\n if (conditionSuccess) {\r\n const actions = new Actions(\r\n action,\r\n this._field,\r\n rulesMapping,\r\n this._allFormsData,\r\n this._formData,\r\n this._previousFormData,\r\n this._takeAction\r\n );\r\n\r\n await actions.execute();\r\n }\r\n }\r\n\r\n return this._field;\r\n }\r\n\r\n getPropsValues(): any {\r\n return {\r\n field: this._field,\r\n formData: this._formData,\r\n previousFormData: this._previousFormData,\r\n allFormsData: this._allFormsData\r\n };\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n OnInit,\r\n Output,\r\n SimpleChanges\r\n} from \"@angular/core\";\r\nimport { FormGroup } from \"@angular/forms\";\r\nimport { TuiAlertService } from \"@taiga-ui/core\";\r\nimport { TuiPushService } from \"@taiga-ui/kit\";\r\nimport { pairwise } from \"rxjs/operators\";\r\nimport { EActionKey } from \"./definitions/actions/form-view.actions.enum.definitions\";\r\nimport { TAction } from \"./definitions/actions/form-view.actions.type.definitions\";\r\nimport { EApiStatusType } from \"./definitions/apis/form-view.apis.enum.definitions\";\r\nimport { EMessageType } from \"./definitions/common/form-view.common.enum.definitions\";\r\nimport { TMessage } from \"./definitions/common/form-view.common.type.definitions\";\r\nimport { EFieldType } from \"./definitions/fields/form-view.fields.enum.definitions\";\r\nimport {\r\n TField,\r\n TFieldApiCall,\r\n TFieldTitle\r\n} from \"./definitions/fields/form-view.fields.type.definitions\";\r\nimport { log } from \"./form-view.decorators\";\r\nimport { KwikIDFormViewService } from \"./form-view.service\";\r\nimport { Actions } from \"./helpers/form-view.actions.helper\";\r\nimport { Apis } from \"./helpers/form-view.apis.helper\";\r\nimport {\r\n hasKey,\r\n isEmpty,\r\n isNotEmpty,\r\n setEmptyValue\r\n} from \"./helpers/form-view.common.helper\";\r\nimport { Condition } from \"./helpers/form-view.condition.helper\";\r\nimport {\r\n addMessage,\r\n convertValueFromKwikUIFormatToBasicFormat,\r\n findFieldFromKey,\r\n findFieldIndexFromKey,\r\n getSearchTextOptionsFromFieldConfig,\r\n getSearchTextOptionsFromRemoteFile,\r\n highlightFieldError,\r\n removeMessage,\r\n setFieldError\r\n} from \"./helpers/form-view.fields.helper\";\r\nimport { Rules } from \"./helpers/form-view.rules.helper\";\r\nimport { Sources } from \"./helpers/form-view.sources.helper\";\r\nimport { Validations } from \"./helpers/form-view.validations.helper\";\r\n\r\n@Component({\r\n selector: \"kwikid-form-view\",\r\n templateUrl: \"./form-view.component.html\",\r\n styleUrls: [\"./form-view.component.scss\"],\r\n providers: [KwikIDFormViewService]\r\n})\r\nexport class KwikIDFormViewComponent implements OnInit, AfterViewInit {\r\n @Input()\r\n formConfig: any;\r\n\r\n @Input()\r\n formData: any;\r\n\r\n @Input()\r\n apiCallResponse: any = {};\r\n\r\n @Input()\r\n isMobileView: boolean = false;\r\n\r\n @Input()\r\n allFormsData: any;\r\n\r\n @Input()\r\n formsList: any[];\r\n\r\n @Output()\r\n onClickViewForms: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n onClickSaveForm: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n onClickApiCall: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n getActiveFormData: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n fieldGroups: any = {};\r\n formFields: any[] = [];\r\n previousFormData: any = {};\r\n\r\n loading: boolean = true;\r\n viewFormsButton = {\r\n disabled: false,\r\n showLoader: false\r\n };\r\n saveFormButton = {\r\n disabled: false,\r\n showLoader: false\r\n };\r\n\r\n formGroup: FormGroup = new FormGroup({});\r\n\r\n constructor(\r\n @Inject(TuiPushService) protected readonly push: TuiPushService,\r\n @Inject(TuiAlertService) protected readonly alert: TuiAlertService,\r\n private formViewService: KwikIDFormViewService\r\n ) {}\r\n\r\n @log\r\n ngOnInit(): void {\r\n (async () => {\r\n await this.initFormConfig(this.formConfig);\r\n\r\n this.loading = false;\r\n })();\r\n }\r\n\r\n @log\r\n ngAfterViewInit(): void {}\r\n\r\n @log\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const verifyChange = (key: string) => {\r\n return hasKey(changes, key) && !changes[key].firstChange;\r\n };\r\n if (verifyChange(\"formData\")) {\r\n this.formData = {\r\n ...this.formData,\r\n ...changes.formData.currentValue\r\n };\r\n }\r\n if (verifyChange(\"apiCallResponse\")) {\r\n this.apiCallResponse = changes.apiCallResponse.currentValue;\r\n\r\n this.formData = {\r\n ...this.formData,\r\n [this.apiCallResponse.key]: this.apiCallResponse.response\r\n };\r\n\r\n this.formGroup.patchValue(\r\n {\r\n [this.apiCallResponse.key]: this.apiCallResponse.response\r\n },\r\n { emitEvent: false }\r\n );\r\n\r\n let field: TFieldApiCall = findFieldFromKey(\r\n this.formFields,\r\n this.apiCallResponse.key\r\n );\r\n\r\n const apis = new Apis(\r\n field,\r\n this.formData,\r\n this.previousFormData,\r\n this.allFormsData,\r\n this.takeAction.bind(this)\r\n );\r\n\r\n (async () => {\r\n field = await apis.validateApiCallResponse();\r\n })();\r\n }\r\n if (verifyChange(\"isMobileView\")) {\r\n this.isMobileView = changes.isMobileView.currentValue;\r\n }\r\n if (verifyChange(\"allFormsData\")) {\r\n this.allFormsData = changes.allFormsData.currentValue;\r\n }\r\n if (verifyChange(\"formsList\")) {\r\n this.formsList = changes.formsList.currentValue;\r\n }\r\n if (verifyChange(\"formConfig\")) {\r\n this.formConfig = changes.formConfig.currentValue;\r\n\r\n (async () => {\r\n await this.initFormConfig(this.formConfig);\r\n })();\r\n }\r\n }\r\n\r\n @log\r\n async initFormConfig(formConfig: any) {\r\n this.setFormFieldsFromFormConfig(formConfig);\r\n\r\n this.setFormFieldGroupsFromFormConfig(formConfig);\r\n\r\n this.setFormDataFromAllFormsData();\r\n\r\n this.formGroup = await this.formViewService.createFormGroup(\r\n this.formFields,\r\n this.formData,\r\n this.previousFormData,\r\n this.allFormsData,\r\n this.takeAction.bind(this)\r\n );\r\n\r\n for (let field of this.formFields) {\r\n if (field.type !== \"title\") {\r\n this.previousFormData = {\r\n ...this.previousFormData,\r\n [field.key]: this.formGroup.controls[field.key].value\r\n };\r\n\r\n this.formGroup.controls[field.key].valueChanges\r\n .pipe(pairwise())\r\n .subscribe(([previousValue, currentValue]) => {\r\n this.previousFormData = {\r\n ...this.previousFormData,\r\n [field.key]: previousValue\r\n };\r\n\r\n this.formData = {\r\n ...this.formData,\r\n [field.key]: currentValue\r\n };\r\n });\r\n }\r\n }\r\n for (let field of this.formFields) {\r\n if (field.type !== \"title\") {\r\n (async () => {\r\n field = await this.handleConnectedElements(\r\n {\r\n key: field.key,\r\n value: this.formGroup.controls[field.key].value\r\n },\r\n \"ON_INIT\"\r\n );\r\n })();\r\n }\r\n }\r\n }\r\n\r\n @log\r\n setFormFieldsFromFormConfig(formConfig: any) {\r\n if (hasKey(formConfig, \"fields\")) {\r\n this.formFields = formConfig.fields;\r\n } else if (\r\n hasKey(formConfig, \"multiForm\") &&\r\n hasKey(formConfig.multiForm, \"fields\")\r\n ) {\r\n this.formFields = formConfig.multiForm.fields;\r\n }\r\n }\r\n\r\n @log\r\n setFormFieldGroupsFromFormConfig(formConfig: any) {\r\n this.fieldGroups = formConfig.fieldGroups;\r\n }\r\n\r\n @log\r\n setFormDataFromAllFormsData() {\r\n if (hasKey(this.allFormsData, this.formConfig.key)) {\r\n this.formData = this.allFormsData[this.formConfig.key];\r\n } else {\r\n this.formData = {};\r\n }\r\n }\r\n\r\n @log\r\n async handleConnectedElementFieldGroupActions(\r\n childFieldGroupConfig: any,\r\n parentField: any\r\n ) {\r\n if (hasKey(childFieldGroupConfig, \"rules\")) {\r\n const rulesMapping = new Rules(\r\n childFieldGroupConfig.rules,\r\n parentField,\r\n this.formData,\r\n this.previousFormData,\r\n this.allFormsData\r\n ).mapping();\r\n\r\n for (let action of childFieldGroupConfig.actions) {\r\n const conditionSuccess = new Condition(\r\n action.condition,\r\n rulesMapping\r\n ).evaluate();\r\n\r\n if (conditionSuccess) {\r\n const actions = new Actions(\r\n action,\r\n parentField,\r\n rulesMapping,\r\n this.allFormsData,\r\n this.formData,\r\n this.previousFormData,\r\n this.takeActionOnFieldGroup.bind(this)\r\n );\r\n\r\n await actions.execute();\r\n }\r\n }\r\n }\r\n }\r\n\r\n @log\r\n async handleConnectedElementFieldGroup(\r\n currentField: any,\r\n connectedFieldGroupConfig: any,\r\n eventType: string\r\n ) {\r\n switch (eventType) {\r\n case \"INIT\":\r\n if (\r\n hasKey(connectedFieldGroupConfig, \"triggers\") &&\r\n connectedFieldGroupConfig.triggers.includes(\"INIT\")\r\n ) {\r\n await this.handleConnectedElementFieldGroupActions(\r\n connectedFieldGroupConfig,\r\n currentField\r\n );\r\n }\r\n break;\r\n case \"VALUE_CHANGE\":\r\n if (\r\n hasKey(connectedFieldGroupConfig, \"triggers\") &&\r\n connectedFieldGroupConfig.triggers.includes(\"VALUE_CHANGE\")\r\n ) {\r\n await this.handleConnectedElementFieldGroupActions(\r\n connectedFieldGroupConfig,\r\n currentField\r\n );\r\n }\r\n break;\r\n case \"NESTED_LINK\":\r\n if (\r\n hasKey(connectedFieldGroupConfig, \"triggers\") &&\r\n connectedFieldGroupConfig.triggers.includes(\"NESTED_LINK\")\r\n ) {\r\n await this.handleConnectedElementFieldGroupActions(\r\n connectedFieldGroupConfig,\r\n currentField\r\n );\r\n }\r\n default:\r\n if (hasKey(connectedFieldGroupConfig, \"triggers\")) {\r\n await this.handleConnectedElementFieldGroupActions(\r\n connectedFieldGroupConfig,\r\n currentField\r\n );\r\n }\r\n break;\r\n }\r\n }\r\n\r\n @log\r\n async handleConnectedElementFieldActions(\r\n connectedFieldConfig: any,\r\n connectedField: any\r\n ) {\r\n if (hasKey(connectedFieldConfig, \"rules\")) {\r\n const rulesMapping = new Rules(\r\n connectedFieldConfig.rules,\r\n connectedField,\r\n this.formData,\r\n this.previousFormData,\r\n this.allFormsData\r\n ).mapping();\r\n\r\n for (let action of connectedFieldConfig.actions) {\r\n const conditionSuccess = new Condition(\r\n action.condition,\r\n rulesMapping\r\n ).evaluate();\r\n\r\n if (conditionSuccess) {\r\n const actions = new Actions(\r\n action,\r\n connectedField,\r\n rulesMapping,\r\n this.allFormsData,\r\n this.formData,\r\n this.previousFormData,\r\n this.takeAction.bind(this)\r\n );\r\n\r\n await actions.execute();\r\n }\r\n }\r\n }\r\n\r\n return connectedField;\r\n }\r\n\r\n @log\r\n async handleConnectedElementFields(\r\n currentField: any,\r\n connectedFieldConfig: any,\r\n eventType: string\r\n ) {\r\n let connectedField = findFieldFromKey(\r\n this.formFields,\r\n connectedFieldConfig[\"key\"]\r\n );\r\n\r\n switch (eventType) {\r\n case \"INIT\":\r\n if (\r\n hasKey(connectedField, \"triggers\") &&\r\n connectedField.triggers.includes(\"INIT\")\r\n ) {\r\n if (this.isFieldEnabled(connectedField.key)) {\r\n if (hasKey(connectedFieldConfig, \"connectedParentFields\")) {\r\n switch (connectedFieldConfig.type) {\r\n case \"dropdown-with-search\":\r\n connectedField = await this.handleFieldTypeSearchText(\r\n currentField,\r\n connectedField\r\n );\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n connectedField = await this.handleConnectedElementFieldActions(\r\n connectedFieldConfig,\r\n connectedField\r\n );\r\n }\r\n break;\r\n case \"VALUE_CHANGE\":\r\n if (\r\n hasKey(connectedFieldConfig, \"triggers\") &&\r\n connectedFieldConfig.triggers.includes(\"VALUE_CHANGE\")\r\n ) {\r\n switch (connectedField.type) {\r\n case \"dropdown-with-search\":\r\n connectedField = await this.handleFieldTypeSearchText(\r\n currentField,\r\n connectedField\r\n );\r\n break;\r\n default:\r\n break;\r\n }\r\n connectedField = await this.handleConnectedElementFieldActions(\r\n connectedFieldConfig,\r\n connectedField\r\n );\r\n }\r\n break;\r\n case \"NESTED_LINK\":\r\n if (\r\n hasKey(connectedFieldConfig, \"triggers\") &&\r\n connectedFieldConfig.triggers.includes(\"NESTED_LINK\")\r\n ) {\r\n connectedField = await this.handleConnectedElementFieldActions(\r\n connectedFieldConfig,\r\n connectedField\r\n );\r\n }\r\n default:\r\n if (hasKey(connectedFieldConfig, \"triggers\")) {\r\n connectedField = await this.handleConnectedElementFieldActions(\r\n connectedFieldConfig,\r\n connectedField\r\n );\r\n }\r\n break;\r\n }\r\n\r\n if (hasKey(connectedField, \"connectedElements\")) {\r\n if (hasKey(connectedField.connectedElements, \"connectedFields\")) {\r\n for (const connectedFieldConfig of connectedField.connectedElements\r\n .connectedFields) {\r\n connectedField = this.handleConnectedElementFields(\r\n connectedField,\r\n connectedFieldConfig,\r\n \"NESTED_LINK\"\r\n );\r\n }\r\n }\r\n }\r\n\r\n return currentField;\r\n }\r\n\r\n @log\r\n async handleConnectedElements(e: any, eventType: string) {\r\n let currentField = findFieldFromKey(this.formFields, e.key);\r\n\r\n if (hasKey(currentField, \"connectedElements\")) {\r\n if (hasKey(currentField.connectedElements, \"connectedFieldGroups\")) {\r\n let connectedFieldGroups =\r\n currentField.connectedElements.connectedFieldGroups;\r\n for (let connectedFieldGroupConfig of connectedFieldGroups) {\r\n await this.handleConnectedElementFieldGroup(\r\n currentField,\r\n connectedFieldGroupConfig,\r\n eventType\r\n );\r\n }\r\n }\r\n if (hasKey(currentField.connectedElements, \"connectedFields\")) {\r\n let connectedFields = currentField.connectedElements.connectedFields;\r\n for (let connectedFieldConfig of connectedFields) {\r\n currentField = await this.handleConnectedElementFields(\r\n currentField,\r\n connectedFieldConfig,\r\n eventType\r\n );\r\n }\r\n }\r\n }\r\n }\r\n\r\n // DOM Event Handlers\r\n @log\r\n handleGetKeyValue(e: any) {\r\n this.formGroup.patchValue(\r\n {\r\n [e.key]: e.value\r\n },\r\n { emitEvent: false }\r\n );\r\n\r\n // Currently set only for dropdown-with-search connected fields\r\n let field = findFieldFromKey(this.formFields, e.key);\r\n\r\n if (\r\n field.type !== \"title\" &&\r\n field.validation.triggers.includes(\"ON_CHANGE\")\r\n ) {\r\n const validations = new Validations(\r\n field,\r\n this.formData,\r\n this.previousFormData,\r\n this.allFormsData,\r\n this.takeAction.bind(this)\r\n );\r\n\r\n (async () => {\r\n await validations.validateField();\r\n })();\r\n\r\n this.handleConnectedElements(\r\n {\r\n key: field.key,\r\n value: this.formGroup.controls[field.key].value\r\n },\r\n \"ON_CHANGE\"\r\n );\r\n }\r\n }\r\n\r\n @log\r\n async handleOnClickResetFormFields(e: any, field: TFieldTitle) {\r\n for (let f of field.reset.fields) {\r\n for (let a of f.actions) {\r\n const resetField = findFieldFromKey(this.formFields, a.props.fieldKey);\r\n const actions = new Actions(\r\n a,\r\n resetField,\r\n {},\r\n this.allFormsData,\r\n this.formData,\r\n this.previousFormData,\r\n this.takeAction.bind(this)\r\n );\r\n await actions.execute();\r\n }\r\n }\r\n }\r\n\r\n @log\r\n async handleOnClickApiCall(e: any) {\r\n let field: TFieldApiCall = findFieldFromKey(this.formFields, e.key);\r\n\r\n if (field.type === \"api-call\") {\r\n // set button status to loading\r\n field[\"api\"][\"status\"][\"value\"] = EApiStatusType.LOADING;\r\n field[\"showLoader\"] = true;\r\n this.viewFormsButton[\"disabled\"] = true;\r\n this.viewFormsButton[\"showLoader\"] = true;\r\n this.saveFormButton[\"disabled\"] = true;\r\n this.saveFormButton[\"showLoader\"] = true;\r\n\r\n const apis = new Apis(\r\n field,\r\n this.formData,\r\n this.previousFormData,\r\n this.allFormsData,\r\n this.takeAction.bind(this)\r\n );\r\n\r\n field = await apis.setRequestBodyParams();\r\n\r\n field = await apis.validateRequestBody();\r\n\r\n if (field.api.request.body.validation.is_valid) {\r\n // Call API Here\r\n this.onClickApiCall.emit({\r\n key: e.key,\r\n request: {\r\n mode: \"POST\",\r\n body: field.api.request.body.value,\r\n headers: {},\r\n url: field.api.request.url\r\n }\r\n });\r\n } else {\r\n // Request Body Validation Failed\r\n // Highlight Error in UI to User to Retry After Sometime.\r\n // Take Actions based on Validation\r\n setTimeout(() => {\r\n field[\"api\"][\"status\"][\"value\"] = EApiStatusType.FAILED;\r\n field[\"showLoader\"] = false;\r\n }, 500);\r\n }\r\n\r\n this.viewFormsButton[\"disabled\"] = false;\r\n this.viewFormsButton[\"showLoader\"] = false;\r\n this.saveFormButton[\"disabled\"] = false;\r\n this.saveFormButton[\"showLoader\"] = false;\r\n }\r\n }\r\n\r\n @log\r\n handleOnClickViewForms(e: any) {\r\n this.onClickViewForms.emit({\r\n clicked: true\r\n });\r\n }\r\n\r\n @log\r\n handleOnClickSaveForm(e: any) {\r\n let formData = this.formGroup.getRawValue();\r\n\r\n for (let field of this.formFields) {\r\n if (field.type !== EFieldType.TITLE) {\r\n if (field.hidden) {\r\n delete formData[field.key];\r\n } else {\r\n formData[field.key] = convertValueFromKwikUIFormatToBasicFormat(\r\n field,\r\n formData[field.key]\r\n );\r\n }\r\n }\r\n }\r\n\r\n for (let field of this.formFields) {\r\n if (\r\n field.type !== EFieldType.TITLE &&\r\n field.validation.triggers.includes(\"ON_SAVE\")\r\n ) {\r\n const validations = new Validations(\r\n field,\r\n formData,\r\n this.previousFormData,\r\n this.allFormsData,\r\n this.takeAction.bind(this)\r\n );\r\n\r\n (async () => {\r\n await validations.validateField();\r\n })();\r\n }\r\n }\r\n\r\n if (this.formGroup.invalid) {\r\n const controls = new Validations(\r\n undefined,\r\n formData,\r\n this.previousFormData,\r\n this.allFormsData,\r\n this.takeAction.bind(this)\r\n ).findInvalidControlsRecursive(this.formGroup);\r\n\r\n let firstFieldWithError: string = \"\";\r\n\r\n for (let control of controls) {\r\n if (control.invalid && isEmpty(firstFieldWithError)) {\r\n firstFieldWithError = control.key;\r\n }\r\n this.formFields = setFieldError(\r\n this.formFields,\r\n this.formGroup.controls[control.key].errors,\r\n control.key,\r\n control.invalid\r\n );\r\n }\r\n\r\n this.toggleErrorNotification(true);\r\n setTimeout(() => {\r\n this.toggleErrorNotification(false);\r\n }, 3000);\r\n\r\n return;\r\n }\r\n\r\n Object.keys(formData).map((key) => {\r\n if (isEmpty(formData[key])) {\r\n formData[key] = \"\";\r\n }\r\n });\r\n\r\n this.onClickSaveForm.emit({ formConfig: this.formConfig, data: formData });\r\n }\r\n\r\n showErrorNotification: boolean = false;\r\n @log\r\n toggleErrorNotification(show) {\r\n this.showErrorNotification = show;\r\n }\r\n\r\n // Component Helpers\r\n @log\r\n fieldHide(fieldKey: string) {\r\n let field = findFieldFromKey(this.formFields, fieldKey);\r\n let fieldIndex = this.formFields.findIndex((_: any) => {\r\n return field.key === _.key;\r\n });\r\n\r\n this.formFields[fieldIndex][\"hidden\"] = true;\r\n this.formGroup.updateValueAndValidity();\r\n }\r\n\r\n @log\r\n fieldGroupHide(fieldGroup: string) {\r\n for (let fieldKey of this.fieldGroups[fieldGroup]) {\r\n this.fieldHide(fieldKey);\r\n }\r\n }\r\n\r\n @log\r\n fieldShow(fieldKey: string) {\r\n let field = findFieldFromKey(this.formFields, fieldKey);\r\n let fieldIndex = this.formFields.findIndex((_: any) => {\r\n return field.key === _.key;\r\n });\r\n\r\n this.formFields[fieldIndex][\"hidden\"] = false;\r\n this.formGroup.updateValueAndValidity();\r\n }\r\n\r\n @log\r\n fieldGroupShow(fieldGroup: string) {\r\n for (let fieldKey of this.fieldGroups[fieldGroup]) {\r\n this.fieldShow(fieldKey);\r\n }\r\n }\r\n\r\n @log\r\n fieldDisable(fieldKey: string) {\r\n let field = findFieldFromKey(this.formFields, fieldKey);\r\n let fieldIndex = this.formFields.findIndex((_: any) => {\r\n return field.key === _.key;\r\n });\r\n\r\n if (field.type !== EFieldType.TITLE) {\r\n this.formFields[fieldIndex][\"disabled\"] = true;\r\n\r\n if (isNotEmpty(this.formGroup.controls)) {\r\n this.formGroup.controls[field.key].disable({\r\n emitEvent: false\r\n });\r\n }\r\n this.formGroup.updateValueAndValidity();\r\n }\r\n }\r\n\r\n @log\r\n fieldGroupDisable(fieldGroup: string) {\r\n for (let fieldKey of this.fieldGroups[fieldGroup]) {\r\n this.fieldDisable(fieldKey);\r\n }\r\n }\r\n\r\n @log\r\n fieldEnable(fieldKey: string) {\r\n let field = findFieldFromKey(this.formFields, fieldKey);\r\n let fieldIndex = this.formFields.findIndex((_: any) => {\r\n return field.key === _.key;\r\n });\r\n\r\n if (field.type !== EFieldType.TITLE) {\r\n this.formFields[fieldIndex][\"disabled\"] = false;\r\n\r\n if (isNotEmpty(this.formGroup.controls)) {\r\n this.formGroup.controls[field.key].enable({\r\n emitEvent: false\r\n });\r\n }\r\n this.formGroup.updateValueAndValidity();\r\n }\r\n }\r\n\r\n @log\r\n fieldGroupEnable(fieldGroup: string) {\r\n for (let fieldKey of this.fieldGroups[fieldGroup]) {\r\n this.fieldEnable(fieldKey);\r\n }\r\n }\r\n\r\n @log\r\n fieldReset(fieldKey: string) {\r\n // Find the field and its index in the formFields array\r\n let field = findFieldFromKey(this.formFields, fieldKey);\r\n let fieldIndex = findFieldIndexFromKey(this.formFields, fieldKey);\r\n\r\n // Delete the field from the formData object\r\n delete this.formData[fieldKey];\r\n\r\n // Reset the value of the field in the formGroup\r\n this.formGroup.controls[field.key].reset(setEmptyValue(field), {\r\n emitEvent: false\r\n });\r\n\r\n // Reset the messages and errors for the field\r\n field = removeMessage(field, {\r\n type: EMessageType.WARNING,\r\n message: \"\"\r\n });\r\n field = removeMessage(field, {\r\n type: EMessageType.SUCCESS,\r\n message: \"\"\r\n });\r\n this.fieldErrorHide(fieldKey, {\r\n type: EMessageType.ERROR,\r\n message: \"\"\r\n });\r\n\r\n // Reset the value of the field in the formFields array\r\n switch (field.type) {\r\n case \"api-call\":\r\n const fieldApiCall = field as TFieldApiCall;\r\n fieldApiCall.api.status.value = EApiStatusType.DEFAULT;\r\n this.formFields[fieldIndex] = fieldApiCall;\r\n break;\r\n default:\r\n field.focus = false;\r\n field.invalid = false;\r\n this.formFields[fieldIndex] = field;\r\n break;\r\n }\r\n }\r\n\r\n @log\r\n fieldErrorShow(fieldKey: string, message: TMessage) {\r\n let field = findFieldFromKey(this.formFields, fieldKey);\r\n let fieldIndex = this.formFields.findIndex((_: any) => {\r\n return field.key === _.key;\r\n });\r\n\r\n field = highlightFieldError(field, true);\r\n field = addMessage(field, message);\r\n\r\n this.formFields[fieldIndex] = field;\r\n }\r\n\r\n @log\r\n fieldErrorHide(fieldKey: string, message: TMessage) {\r\n let field = findFieldFromKey(this.formFields, fieldKey);\r\n let fieldIndex = this.formFields.findIndex((_: any) => {\r\n return field.key === _.key;\r\n });\r\n\r\n field = highlightFieldError(field, false);\r\n field = removeMessage(field, message);\r\n\r\n this.formFields[fieldIndex] = field;\r\n }\r\n\r\n @log\r\n fieldMessageShow(fieldKey: string, message: TMessage) {\r\n let field = findFieldFromKey(this.formFields, fieldKey);\r\n let fieldIndex = this.formFields.findIndex((_: any) => {\r\n return field.key === _.key;\r\n });\r\n\r\n field = addMessage(field, message);\r\n\r\n this.formFields[fieldIndex] = field;\r\n }\r\n\r\n @log\r\n fieldMessageHide(fieldKey: string, message: TMessage) {\r\n let field = findFieldFromKey(this.formFields, fieldKey);\r\n let fieldIndex = this.formFields.findIndex((_: any) => {\r\n return field.key === _.key;\r\n });\r\n\r\n field = removeMessage(field, message);\r\n\r\n this.formFields[fieldIndex] = field;\r\n }\r\n\r\n @log\r\n setObjectValue(field: any, path: string, value: any) {}\r\n\r\n @log\r\n patchFieldControlValue(key: string, value: any) {\r\n this.formGroup.patchValue(\r\n {\r\n [key]: value\r\n },\r\n { emitEvent: false }\r\n );\r\n }\r\n\r\n @log\r\n isFieldValid(fieldKey: string) {\r\n return this.formGroup.controls[fieldKey].valid;\r\n }\r\n\r\n @log\r\n isFieldEnabled(fieldKey: string) {\r\n return this.formGroup.controls[fieldKey].enabled;\r\n }\r\n\r\n @log\r\n getFormGroupRawValues() {\r\n return this.formGroup.getRawValue();\r\n }\r\n\r\n @log\r\n async handleFieldTypeSearchText(field: any, childField: any) {\r\n if (hasKey(childField, \"json\")) {\r\n childField.options = getSearchTextOptionsFromFieldConfig(\r\n field,\r\n childField,\r\n this.formGroup\r\n );\r\n }\r\n if (hasKey(childField, \"fetchJsonFromRemote\")) {\r\n childField.options = await getSearchTextOptionsFromRemoteFile(\r\n field,\r\n childField,\r\n this.formGroup\r\n );\r\n }\r\n\r\n return childField;\r\n }\r\n\r\n @log\r\n async takeActionOnFieldGroup(\r\n action: TAction,\r\n field: TField,\r\n allFormsData: any,\r\n formData: any,\r\n previousFormData: any\r\n ) {\r\n switch (action.key) {\r\n case EActionKey.FIELD_GROUP_HIDE:\r\n this.fieldGroupHide(action.props.groupKey);\r\n break;\r\n case EActionKey.FIELD_GROUP_SHOW:\r\n this.fieldGroupShow(action.props.groupKey);\r\n break;\r\n case EActionKey.FIELD_GROUP_ENABLE:\r\n this.fieldGroupEnable(action.props.groupKey);\r\n break;\r\n case EActionKey.FIELD_GROUP_DISABLE:\r\n this.fieldGroupDisable(action.props.groupKey);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n @log\r\n async takeAction(\r\n action: TAction,\r\n field: TField,\r\n allFormsData: any,\r\n formData: any,\r\n previousFormData: any\r\n ) {\r\n switch (action.key) {\r\n case EActionKey.FIELD_HIDE:\r\n this.fieldHide(action.props.fieldKey);\r\n break;\r\n case EActionKey.FIELD_SHOW:\r\n this.fieldShow(action.props.fieldKey);\r\n break;\r\n case EActionKey.FIELD_DISABLE:\r\n this.fieldDisable(action.props.fieldKey);\r\n break;\r\n case EActionKey.FIELD_ENABLE:\r\n this.fieldEnable(action.props.fieldKey);\r\n break;\r\n case EActionKey.FIELD_RESET:\r\n this.fieldReset(action.props.fieldKey);\r\n break;\r\n case EActionKey.FIELD_ERROR_SHOW:\r\n this.fieldErrorShow(action.props.fieldKey, action.props.message);\r\n break;\r\n case EActionKey.FIELD_ERROR_HIDE:\r\n this.fieldErrorHide(action.props.fieldKey, action.props.message);\r\n break;\r\n case EActionKey.FIELD_MESSAGE_SHOW:\r\n this.fieldMessageShow(action.props.fieldKey, action.props.message);\r\n break;\r\n case EActionKey.FIELD_MESSAGES_HIDE:\r\n this.fieldMessageHide(action.props.fieldKey, action.props.message);\r\n break;\r\n case EActionKey.SET_VALUE:\r\n const sources = new Sources(\r\n field,\r\n this.formData,\r\n this.previousFormData,\r\n this.allFormsData\r\n );\r\n\r\n const sourceValue = await sources.getValueFromSource(\r\n action.props.value.source\r\n );\r\n sources.setValueToSource(action.props.value.destination, sourceValue);\r\n\r\n field = sources.field;\r\n this.formData = sources.formData;\r\n this.allFormsData = sources.allFormsData;\r\n this.previousFormData = sources.previousFormData;\r\n\r\n break;\r\n case EActionKey.HANDLE_CONNECTED_ELEMENTS:\r\n this.handleConnectedElements({ key: field.key }, \"ACTION\");\r\n break;\r\n case EActionKey.CUSTOM:\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n}\r\n","<div\r\n class=\"kwikid-form-container\"\r\n *ngIf=\"!this.loading\"\r\n>\r\n <div id=\"uf-form-fields-header-container\">\r\n <div id=\"uf-form-fields-title\">\r\n {{ this.formConfig.title }}\r\n </div>\r\n <div id=\"uf-form-fields-steps\">\r\n Step {{ this.formConfig.sequenceNo }} of {{ this.formsList.length }}\r\n </div>\r\n <hr />\r\n </div>\r\n <form\r\n class=\"kwikid-form show\"\r\n [formGroup]=\"this.formGroup\"\r\n >\r\n <ng-container *ngFor=\"let field of this.formFields; let i = index\">\r\n <ng-container [ngSwitch]=\"field.type\">\r\n <!-- Form Title -->\r\n <ng-container *ngSwitchCase=\"'title'\">\r\n <div\r\n class=\"title\"\r\n [class.hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <div>\r\n {{ field.label }}\r\n </div>\r\n <kwikui-button\r\n *ngIf=\"field?.reset\"\r\n appearance=\"whiteblock\"\r\n size=\"s\"\r\n label=\"Reset\"\r\n (onClick)=\"this.handleOnClickResetFormFields($event, field)\"\r\n ></kwikui-button>\r\n </div>\r\n </ng-container>\r\n <!-- Input Text -->\r\n <ng-container *ngSwitchCase=\"'text'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <kwikui-input\r\n [case]=\"field?.properties?.case\"\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field.label\"\r\n [placeholder]=\"field?.properties?.placeholder\"\r\n [type]=\"'text'\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-input>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Checkbox -->\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <kwikui-checkbox-block\r\n [contentAlign]=\"field?.properties?.contentAlign ?? 'left'\"\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field?.properties?.placeholder\"\r\n [placeholder]=\"field?.properties?.placeholder\"\r\n [properties]=\"field?.properties\"\r\n [size]=\"field?.properties?.size ?? 'l'\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-checkbox-block\r\n ><kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Input Number -->\r\n <ng-container *ngSwitchCase=\"'number'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <kwikui-input-number\r\n [decimal]=\"field?.properties?.decimal\"\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field?.label\"\r\n [max]=\"field?.properties?.max\"\r\n [min]=\"field?.properties?.min\"\r\n [placeholder]=\"field?.properties?.placeholder\"\r\n [postfix]=\"field?.properties?.postfix ?? ''\"\r\n [precision]=\"field?.properties?.precision\"\r\n [prefix]=\"field?.properties?.prefix ?? ''\"\r\n [properties]=\"field?.properties\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-input-number\r\n ><kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Input Date -->\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <kwikui-input-date\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field.label\"\r\n [max]=\"field?.properties?.max\"\r\n [min]=\"field?.properties?.min\"\r\n [placeholder]=\"field?.placeholder\"\r\n [properties]=\"field?.properties\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-input-date>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Input Phone -->\r\n <ng-container *ngSwitchCase=\"'phone'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <kwikui-input-phone\r\n [countryCode]=\"field?.properties?.countryCode\"\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field?.label\"\r\n [phoneMaskAfterCountryCode]=\"\r\n field?.properties?.phoneMaskAfterCountryCode\r\n \"\r\n [placeholder]=\"field?.placeholder\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-input-phone>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Input Radio -->\r\n <ng-container *ngSwitchCase=\"'radio'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <label\r\n [tuiLabel]=\"labelTemplate\"\r\n style=\"min-height: auto\"\r\n >\r\n <kwikui-radio-list\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [items]=\"field?.options\"\r\n [label]=\"field?.label\"\r\n [orientation]=\"field?.properties?.orientation\"\r\n [placeholder]=\"field?.properties?.placeholder\"\r\n [properties]=\"field?.properties\"\r\n [size]=\"field?.properties?.size\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-radio-list>\r\n </label>\r\n <ng-template #labelTemplate>\r\n <p\r\n class=\"tui-space_bottom-2\"\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <b>\r\n {{ field.label }}\r\n <span *ngIf=\"field.validators?.required\"></span>\r\n </b>\r\n </p>\r\n </ng-template>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Dropdown -->\r\n <ng-container *ngSwitchCase=\"'dropdown-with-search'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <kwikui-select-combobox\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field.label\"\r\n [options]=\"field.options\"\r\n [placeholder]=\"field?.properties?.placeholder\"\r\n [properties]=\"field?.properties\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-select-combobox>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- API Call -->\r\n <ng-container *ngSwitchCase=\"'api-call'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <kwikui-button-api-call\r\n [apiStatus]=\"field?.api?.status?.value\"\r\n [class]=\"field?.class\"\r\n [disabled]=\"field?.disabled\"\r\n [id]=\"field.key\"\r\n [label]=\"field?.api?.status?.labels[field?.api?.status?.value]\"\r\n [showLoader]=\"field?.disabled === 'loading'\"\r\n shape=\"null\"\r\n size=\"m\"\r\n styles=\"width: fit-content\"\r\n (onClick)=\"this.handleOnClickApiCall($event)\"\r\n ></kwikui-button-api-call>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Mobile OTP -->\r\n <ng-container *ngSwitchCase=\"'otp'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <kwikui-input-otp\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field?.label\"\r\n [mask]=\"field?.properties?.mask\"\r\n [placeholder]=\"field?.properties?.placeholder\"\r\n [properties]=\"field?.properties\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-input-otp>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n <!-- Aadhaar Number -->\r\n <ng-container *ngSwitchCase=\"'aadhaar-number'\">\r\n <div\r\n [hidden]=\"field?.hidden\"\r\n id=\"field_{{ field.key }}\"\r\n >\r\n <kwikui-input-aadhaar\r\n [disabled]=\"field?.disabled\"\r\n [focus]=\"field?.focus\"\r\n [formControl]=\"formGroup.controls[field.key]\"\r\n [formControlName]=\"field.key\"\r\n [id]=\"field.key\"\r\n [invalid]=\"field?.invalid\"\r\n [label]=\"field?.label\"\r\n [placeholder]=\"field?.placeholder\"\r\n [properties]=\"field?.properties\"\r\n [validators]=\"field?.validators\"\r\n (getKeyValue)=\"handleGetKeyValue($event)\"\r\n ></kwikui-input-aadhaar>\r\n <kwikui-messages\r\n [messages]=\"field.messages\"\r\n [id]=\"field.key\"\r\n ></kwikui-messages>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </form>\r\n <div class=\"kwikid-form-buttons\">\r\n <kwikui-button\r\n *ngIf=\"this.isMobileView\"\r\n [disabled]=\"viewFormsButton.disabled\"\r\n id=\"\"\r\n label=\"View Forms\"\r\n [showLoader]=\"viewFormsButton.showLoader\"\r\n styles=\"\"\r\n class=\"\"\r\n type=\"button\"\r\n appearance=\"secondary\"\r\n icon=\"\"\r\n iconRight=\"\"\r\n shape=\"null\"\r\n size=\"m\"\r\n styles=\"width: 100%\"\r\n (onClick)=\"this.handleOnClickViewForms($event)\"\r\n ></kwikui-button>\r\n <kwikui-button\r\n [disabled]=\"saveFormButton.disabled\"\r\n id=\"\"\r\n label=\"Save\"\r\n [showLoader]=\"saveFormButton.showLoader\"\r\n styles=\"\"\r\n class=\"\"\r\n type=\"button\"\r\n appearance=\"primary\"\r\n icon=\"\"\r\n iconRight=\"\"\r\n shape=\"null\"\r\n size=\"m\"\r\n styles=\"width: 100%\"\r\n (onClick)=\"this.handleOnClickSaveForm($event)\"\r\n ></kwikui-button>\r\n </div>\r\n</div>\r\n<div\r\n class=\"kwikid-form-container-loading\"\r\n *ngIf=\"this.loading\"\r\n>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n <div\r\n class=\"large-wrapper\"\r\n [class.tui-skeleton]=\"this.loading\"\r\n [class.tui-skeleton_rounded]=\"this.loading\"\r\n ></div>\r\n</div>\r\n<tui-push\r\n id=\"field-error-notification\"\r\n *tuiPush=\"showErrorNotification\"\r\n heading=\"Missing/Incorrect Fields!\"\r\n type=\"Error\"\r\n (close)=\"toggleErrorNotification(false)\"\r\n>\r\n <tui-svg\r\n src=\"tuiIconCancel\"\r\n style=\"color: #fff !important\"\r\n >\r\n </tui-svg>\r\n</tui-push>\r\n","export const hasKey = (object: any, key: string) => {\r\n return object.hasOwnProperty(key);\r\n};\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges\r\n} from \"@angular/core\";\r\nimport { hasKey } from \"./forms-list.helper\";\r\n\r\n@Component({\r\n selector: \"kwikid-forms-list\",\r\n templateUrl: \"./forms-list.component.html\",\r\n styleUrls: [\"./forms-list.component.scss\"]\r\n})\r\nexport class KwikIDFormsListComponent implements OnInit, OnChanges {\r\n @Input()\r\n showFormFields: any = {};\r\n\r\n @Input()\r\n userConfig: any = {};\r\n\r\n @Input()\r\n formsList: any[] = [];\r\n\r\n @Input()\r\n formsListCompleted: any[] = [];\r\n\r\n @Input()\r\n isMobileView: boolean = false;\r\n\r\n @Output()\r\n onClickSetActiveForm: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n onClickHideFormsList: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n onClickSubmitForms = new EventEmitter<any>();\r\n\r\n selectedForm: string = \"\";\r\n\r\n isAllFormsCompleted: boolean = true;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {\r\n this.isAllFormsCompleted = this.checkIsAllFormsCompleted(this.formsList);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const verifyChange = (key: string) => {\r\n return hasKey(changes, key) && !changes[key].firstChange;\r\n };\r\n if (verifyChange(\"showFormFields\")) {\r\n this.showFormFields = changes.showFormFields.currentValue;\r\n }\r\n if (verifyChange(\"formsList\")) {\r\n this.formsList = changes.formsList.currentValue;\r\n this.isAllFormsCompleted = this.checkIsAllFormsCompleted(this.formsList);\r\n }\r\n if (verifyChange(\"isMobileView\")) {\r\n this.isMobileView = changes.isMobileView.currentValue;\r\n }\r\n }\r\n\r\n checkIsAllFormsCompleted(formsList: any[]): boolean {\r\n let isAllFormsCompleted: boolean = true;\r\n\r\n for (let forms of formsList) {\r\n if (forms.status !== \"completed\") {\r\n isAllFormsCompleted = false;\r\n break;\r\n }\r\n }\r\n\r\n return isAllFormsCompleted;\r\n }\r\n\r\n handleOnClickSetActiveForm(selectedForm: string) {\r\n if (\r\n this.selectedForm !== selectedForm ||\r\n (this.isAllFormsCompleted && !this.showFormFields)\r\n ) {\r\n this.selectedForm = selectedForm;\r\n this.onClickSetActiveForm.emit(selectedForm);\r\n }\r\n }\r\n\r\n handleOnSubmitForms(e: any) {\r\n this.onClickSubmitForms.emit(e);\r\n }\r\n}\r\n","<div id=\"sidebar-container\">\r\n <div id=\"sidebar\">\r\n <div ngClass=\"kwikid-form-header\">\r\n <div id=\"uf-header\">\r\n <div id=\"uf-header-logo-container\">\r\n <img\r\n id=\"uf-header-logo\"\r\n src=\"{{ this.userConfig.theme.clientLogo }}\"\r\n [ngClass]=\"'large-icon'\"\r\n />\r\n </div>\r\n </div>\r\n <hr />\r\n </div>\r\n <div id=\"uf-progress\">\r\n <div id=\"uf-progress-steps\">\r\n {{ this.formsListCompleted.length }} / {{ this.formsList.length }} Steps\r\n Completed\r\n </div>\r\n <kwikui-progress-segmented\r\n [max]=\"this.formsList.length\"\r\n size=\"m\"\r\n [value]=\"this.formsListCompleted.length\"\r\n ></kwikui-progress-segmented>\r\n </div>\r\n <div id=\"uf-sections-container\">\r\n <div\r\n *ngFor=\"let form of formsList; let i = index\"\r\n [class]=\"'uf-section-item'\"\r\n [class.completed]=\"form.status === 'completed' && !form.disabled\"\r\n [class.edit]=\"form.status === 'editable' && !form.disabled\"\r\n [class.locked]=\"form.status === 'locked' && form.disabled\"\r\n (click)=\"\r\n form.status === 'locked' && form.disabled\r\n ? undefined\r\n : handleOnClickSetActiveForm(form.key)\r\n \"\r\n >\r\n <div class=\"uf-form-section-card-title\">\r\n {{ form.title }}\r\n </div>\r\n <div class=\"uf-form-section-card-action\">\r\n <div\r\n *ngIf=\"form.status === 'completed' && !form.disabled\"\r\n class=\"uf-form-section-card-action-img completed\"\r\n >\r\n <tui-svg src=\"tuiIconCheckLarge\"></tui-svg>\r\n </div>\r\n <div\r\n *ngIf=\"form.status !== 'completed' && !form.disabled\"\r\n class=\"uf-form-section-card-action-img edit\"\r\n >\r\n <tui-svg src=\"tuiIconEdit\"></tui-svg>\r\n </div>\r\n <div\r\n *ngIf=\"form.status !== 'completed' && form.disabled\"\r\n class=\"uf-form-section-card-action-img locked\"\r\n >\r\n <tui-svg src=\"tuiIconLock\"></tui-svg>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div id=\"submit-sidebar-btn-container\">\r\n <kwikui-button\r\n [disabled]=\"false\"\r\n id=\"\"\r\n label=\"Submit\"\r\n [showLoader]=\"false\"\r\n styles=\"\"\r\n class=\"\"\r\n type=\"button\"\r\n appearance=\"primary\"\r\n icon=\"\"\r\n iconRight=\"\"\r\n shape=\"null\"\r\n size=\"m\"\r\n styles=\"width: 100%\"\r\n (onClick)=\"handleOnSubmitForms($event)\"\r\n ></kwikui-button>\r\n </div>\r\n </div>\r\n</div>\r\n","import {\r\n EBrowserStorageType,\r\n ESourceKey\r\n} from \"../form-view/definitions/sources/form-view.sources.enum.definitions\";\r\nimport {\r\n TBrowserStorageType,\r\n TSource\r\n} from \"../form-view/definitions/sources/form-view.sources.type.definitions\";\r\nimport {\r\n isNotEmpty,\r\n isNotEmptyBrowserStorageValue,\r\n jpQueryWrapper,\r\n setEmptyValue,\r\n setValueToObject\r\n} from \"../form-view/helpers/form-view.common.helper\";\r\n\r\nexport class Sources {\r\n private _userConfig: any;\r\n get userConfig(): any {\r\n return this._userConfig;\r\n }\r\n set userConfig(value: any) {\r\n this._userConfig = value;\r\n }\r\n\r\n constructor(userConfig: any) {\r\n this._userConfig = userConfig;\r\n }\r\n\r\n private getValueFromUserConfig(path: string): any {\r\n let value: any = \"\";\r\n if (isNotEmpty(path)) {\r\n value = jpQueryWrapper(this._userConfig, path);\r\n } else {\r\n value = setEmptyValue(this._userConfig);\r\n }\r\n return value;\r\n }\r\n\r\n private getValueFromBrowserStorage(\r\n type: TBrowserStorageType,\r\n key: string\r\n ): any {\r\n let value: any = \"\";\r\n switch (type) {\r\n case EBrowserStorageType.LOCAL_STORAGE:\r\n value = isNotEmptyBrowserStorageValue(localStorage.getItem(key))\r\n ? localStorage.getItem(key)\r\n : \"\";\r\n break;\r\n case EBrowserStorageType.SESSION_STORAGE:\r\n value = isNotEmptyBrowserStorageValue(sessionStorage.getItem(key))\r\n ? sessionStorage.getItem(key)\r\n : \"\";\r\n break;\r\n default:\r\n value = \"\";\r\n break;\r\n }\r\n return value;\r\n }\r\n\r\n getValueFromSource(source: TSource): any {\r\n let value: any = \"\";\r\n\r\n switch (source.key) {\r\n case ESourceKey.USER_CONFIG:\r\n value = this.getValueFromUserConfig(source.props.path);\r\n break;\r\n case ESourceKey.BROWSER_STORAGE:\r\n value = this.getValueFromBrowserStorage(\r\n source.props.browserStorage.type,\r\n source.props.browserStorage.key\r\n );\r\n break;\r\n case ESourceKey.PREDEFINED:\r\n value = source.value;\r\n break;\r\n default:\r\n value = \"\";\r\n break;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n private setValueToUserConfig(path: string, value: any): any {\r\n this._userConfig = setValueToObject(this._userConfig, path, value);\r\n }\r\n private setValueToBrowserStorage(type: string, key: string, value: any): any {\r\n switch (type) {\r\n case EBrowserStorageType.LOCAL_STORAGE:\r\n localStorage.setItem(key, value);\r\n break;\r\n case EBrowserStorageType.SESSION_STORAGE:\r\n sessionStorage.setItem(key, value);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n async setValueToSource(source: TSource, value: any) {\r\n switch (source.key) {\r\n case ESourceKey.USER_CONFIG:\r\n this.setValueToUserConfig(source.props.path, value);\r\n break;\r\n case ESourceKey.BROWSER_STORAGE:\r\n await this.setValueToBrowserStorage(\r\n source.props.browserStorage.type,\r\n source.props.browserStorage.key,\r\n value\r\n );\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n}\r\n","import { replaceString } from \"../form-view/helpers/form-view.common.helper\";\r\n\r\nexport class Condition {\r\n private _condition: string;\r\n private _rulesMapping: any;\r\n\r\n constructor(condition: string, rulesMapping: any) {\r\n this._condition = condition;\r\n this._rulesMapping = rulesMapping;\r\n }\r\n\r\n private parseKeys(condition: string, rulesEvaluationMapping: object): string {\r\n Object.keys(rulesEvaluationMapping).forEach((key) => {\r\n condition = replaceString(condition, key, rulesEvaluationMapping[key]);\r\n });\r\n\r\n return condition;\r\n }\r\n\r\n private parseOperators(condition: string): string {\r\n return condition.replace(/AND|OR|NOT|XOR|NAND|NOR|XNOR/g, (match) => {\r\n switch (match) {\r\n case \"AND\":\r\n return \"&&\";\r\n case \"OR\":\r\n return \"||\";\r\n case \"NOT\":\r\n return \"!\";\r\n case \"XOR\":\r\n return \"^\";\r\n case \"NAND\":\r\n return \"!&\";\r\n case \"NOR\":\r\n return \"!|\";\r\n case \"XNOR\":\r\n return \"!^\";\r\n default:\r\n return match;\r\n }\r\n });\r\n }\r\n\r\n evaluate(): boolean {\r\n this._condition = this.parseKeys(this._condition, this._rulesMapping);\r\n this._condition = this.parseOperators(this._condition);\r\n\r\n return eval(this._condition);\r\n }\r\n}\r\n","import { Condition } from \"./renderer.condition.helper\";\r\n\r\nexport class Actions {\r\n private _action: any;\r\n private _userConfig: any;\r\n private _ruleMapping: any;\r\n private _takeAction: Function;\r\n\r\n constructor(\r\n action: any,\r\n ruleMapping: any,\r\n userConfig: any,\r\n takeAction: Function\r\n ) {\r\n this._action = action;\r\n this._userConfig = userConfig;\r\n this._ruleMapping = ruleMapping;\r\n this._takeAction = takeAction;\r\n }\r\n\r\n async execute() {\r\n const condition = new Condition(this._action.condition, this._ruleMapping);\r\n const actionSuccess = condition.evaluate();\r\n\r\n if (actionSuccess) {\r\n return this._takeAction(this._action, this._userConfig);\r\n }\r\n }\r\n}\r\n","import {\r\n EPattern,\r\n EPatternKey\r\n} from \"../form-view/definitions/common/form-view.common.enum.definitions\";\r\nimport { ERuleKey } from \"../form-view/definitions/rules/form-view.rules.enum.definitions\";\r\nimport {\r\n TRule,\r\n TRuleObjectPathExists,\r\n TRuleType,\r\n TRuleValueChange,\r\n TRuleValueCheck\r\n} from \"../form-view/definitions/rules/form-view.rules.type.definitions\";\r\nimport { ESourceKey } from \"../form-view/definitions/sources/form-view.sources.enum.definitions\";\r\nimport { TSource } from \"../form-view/definitions/sources/form-view.sources.type.definitions\";\r\nimport { hasPath } from \"../form-view/helpers/form-view.common.helper\";\r\nimport { Sources } from \"./renderer.sources.helper\";\r\n\r\nexport class Rules {\r\n private _userConfig: any;\r\n private _rules: Array<TRule>;\r\n\r\n constructor(rules: Array<TRule>, userConfig: any) {\r\n this._userConfig = userConfig;\r\n this._rules = rules;\r\n }\r\n\r\n private evaluate(rule: TRule): boolean {\r\n let ruleType: TRuleType = rule.key;\r\n let ruleEvaluationStatus: boolean = false;\r\n\r\n const source = new Sources(this._userConfig);\r\n\r\n switch (ruleType) {\r\n case ERuleKey.OBJECT_PATH_EXISTS:\r\n const ruleObjectPathExists = rule as TRuleObjectPathExists;\r\n const ruleObjectPathExistsObject = ruleObjectPathExists.props.object;\r\n const ruleObjectPathExistsPath = ruleObjectPathExists.props.path;\r\n\r\n switch (ruleObjectPathExistsObject) {\r\n case ESourceKey.USER_CONFIG:\r\n ruleEvaluationStatus = hasPath(\r\n this._userConfig,\r\n ruleObjectPathExistsPath\r\n );\r\n break;\r\n default:\r\n ruleEvaluationStatus = false;\r\n break;\r\n }\r\n break;\r\n case ERuleKey.VALUE_CHECK:\r\n const ruleValueCheck = rule as TRuleValueCheck;\r\n const ruleValueCheckSource: TSource = ruleValueCheck.props.value.source;\r\n const ruleValueCheckValue =\r\n source.getValueFromSource(ruleValueCheckSource);\r\n\r\n if (ruleValueCheck.props.pattern.key === EPatternKey.CUSTOM) {\r\n var re = new RegExp(ruleValueCheck.props.pattern.pattern);\r\n } else {\r\n var re = new RegExp(EPattern[ruleValueCheck.props.pattern.key]);\r\n }\r\n\r\n ruleEvaluationStatus = re.test(ruleValueCheckValue);\r\n break;\r\n case ERuleKey.VALUE_CHANGE:\r\n const ruleValueChange = rule as TRuleValueChange;\r\n const ruleValueChangeCurrentSource: TSource =\r\n ruleValueChange.props.value.current.source;\r\n const ruleValueChangePreviousSource: TSource =\r\n ruleValueChange.props.value.previous.source;\r\n\r\n const previousValue = source.getValueFromSource(\r\n ruleValueChangePreviousSource\r\n );\r\n const currentValue = source.getValueFromSource(\r\n ruleValueChangeCurrentSource\r\n );\r\n\r\n ruleEvaluationStatus = previousValue === currentValue;\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return ruleEvaluationStatus;\r\n }\r\n\r\n public mapping(): any {\r\n let rulesEvaluationMapping = {};\r\n\r\n for (const rule of this._rules) {\r\n const ruleEvaluationStatus = this.evaluate(rule);\r\n\r\n rulesEvaluationMapping = {\r\n ...rulesEvaluationMapping,\r\n [rule.id]: ruleEvaluationStatus\r\n };\r\n }\r\n\r\n return rulesEvaluationMapping;\r\n }\r\n}\r\n","import { Actions } from \"./renderer.actions.helper\";\r\nimport { Condition } from \"./renderer.condition.helper\";\r\nimport { Rules } from \"./renderer.rules.helper\";\r\n\r\nexport class Validations {\r\n private _userConfig: any;\r\n get userConfig(): any {\r\n return this._userConfig;\r\n }\r\n set userConfig(value: any) {\r\n this._userConfig = value;\r\n }\r\n\r\n private _takeAction: Function;\r\n\r\n constructor(userConfig, takeAction: any) {\r\n this._userConfig = userConfig;\r\n this._takeAction = takeAction;\r\n }\r\n\r\n async validateField(): Promise<any> {\r\n const validations = this._userConfig.userFormFieldsConfig.validation;\r\n\r\n const triggers = validations?.triggers;\r\n const rules = validations.rules;\r\n const actions = validations.actions;\r\n\r\n const rulesMapping = new Rules(rules, this._userConfig).mapping();\r\n\r\n for (let action of actions) {\r\n const conditionEvaluation = new Condition(\r\n action.condition,\r\n rulesMapping\r\n ).evaluate();\r\n\r\n if (conditionEvaluation) {\r\n const actions = new Actions(\r\n action,\r\n rulesMapping,\r\n this._userConfig,\r\n this._takeAction\r\n );\r\n\r\n await actions.execute();\r\n }\r\n }\r\n }\r\n}\r\n","import { TuiDay } from \"@taiga-ui/cdk\";\r\nimport { log } from \"./form-view/form-view.decorators\";\r\nimport { convertDateStringToTuiDayFormat } from \"./form-view/helpers/form-view.fields.helper\";\r\nimport { hasKey, isEmpty, isNotEmpty } from \"./renderer.helper\";\r\n\r\nexport class Converter {\r\n getFormFields = (formConfig: any): any[] => {\r\n let fields: any[];\r\n\r\n if (hasKey(formConfig, \"multiForm\")) {\r\n fields = formConfig.multiForm.fields;\r\n } else {\r\n fields = formConfig.fields;\r\n }\r\n\r\n return fields;\r\n };\r\n\r\n setMissingFieldKeyValue = (field: any, key: string, value: any): any => {\r\n if (!hasKey(field, key)) {\r\n field[key] = value;\r\n }\r\n return field;\r\n };\r\n\r\n setFieldKeyValue = (field: any, key: string, value: any): any => {\r\n field[key] = value;\r\n\r\n return field;\r\n };\r\n\r\n removeFieldKey = (field: any, key: string): any => {\r\n if (hasKey(field, key)) {\r\n delete field[key];\r\n }\r\n\r\n return field;\r\n };\r\n\r\n @log\r\n convertFormConfig(formConfig: any): any {\r\n const updateOnFieldType = (field: any): any => {\r\n const formatFieldTypeTitle = (field: any): any => {\r\n field = this.setFieldKeyValue(field, \"hidden\", false);\r\n\r\n return field;\r\n };\r\n const formatFieldTypeRadio = (field: any): any => {\r\n field.properties = this.setMissingFieldKeyValue(\r\n field.properties,\r\n \"size\",\r\n \"m\"\r\n );\r\n field.properties = this.setMissingFieldKeyValue(\r\n field.properties,\r\n \"orientation\",\r\n \"vertical\"\r\n );\r\n field = this.setFieldKeyValue(field, \"hidden\", false);\r\n\r\n field.options = field.options.map((x: any): any => {\r\n if (typeof x === \"string\" || typeof x === \"number\") {\r\n return { label: x, disabled: false };\r\n } else {\r\n if (hasKey(x, \"label\") && hasKey(x, \"disabled\")) {\r\n return x;\r\n }\r\n }\r\n });\r\n\r\n return field;\r\n };\r\n const formatFieldTypeOtp = (field: any): any => {\r\n field.properties = this.setMissingFieldKeyValue(\r\n field.properties,\r\n \"mask\",\r\n new Array(field.properties.otpLength).fill(\"#\").join(\" \")\r\n );\r\n field = this.setFieldKeyValue(field, \"hidden\", false);\r\n\r\n return field;\r\n };\r\n const formatFieldTypeDate = (field: any): any => {\r\n if (hasKey(field, \"min\")) {\r\n const tuiDay = convertDateStringToTuiDayFormat(field[\"min\"]);\r\n field.properties = this.setFieldKeyValue(\r\n field.properties,\r\n \"min\",\r\n tuiDay\r\n );\r\n } else {\r\n field.properties = this.setMissingFieldKeyValue(\r\n field.properties,\r\n \"min\",\r\n new TuiDay(0, 0, 1)\r\n ); // Year - 0000, Month - 0 (0 Indexing), Day - 1\r\n }\r\n\r\n if (hasKey(field, \"max\")) {\r\n const tuiDay = convertDateStringToTuiDayFormat(field[\"max\"]);\r\n field.properties = this.setFieldKeyValue(\r\n field.properties,\r\n \"max\",\r\n tuiDay\r\n );\r\n } else {\r\n field.properties = this.setMissingFieldKeyValue(\r\n field.properties,\r\n \"max\",\r\n new TuiDay(\r\n new Date().getFullYear(), // Year - 9999\r\n new Date().getMonth(), // Month - 11 (0 Indexing)\r\n new Date().getDate() // Day - 31\r\n )\r\n );\r\n }\r\n\r\n field = this.setFieldKeyValue(field, \"hidden\", false);\r\n\r\n return field;\r\n };\r\n const formatFieldTypeNumber = (field: any): any => {\r\n if (hasKey(field, \"key\")) {\r\n if (field.key === \"aadhaar_number\") {\r\n field = this.setFieldKeyValue(field, \"type\", \"aadhaar_number\");\r\n }\r\n if (field.key === \"contact_number\") {\r\n field = this.setFieldKeyValue(field, \"type\", \"phone\");\r\n }\r\n\r\n if (field.type === \"phone\" || field.type === \"number\") {\r\n field.properties = this.setMissingFieldKeyValue(\r\n field.properties,\r\n \"countryCode\",\r\n \"+91\"\r\n );\r\n field.properties = this.setMissingFieldKeyValue(\r\n field.properties,\r\n \"phoneMaskAfterCountryCode\",\r\n \"####-######\"\r\n );\r\n field.properties = this.setMissingFieldKeyValue(\r\n field.properties,\r\n \"removeCountryCodeFromValue\",\r\n true\r\n );\r\n field.properties = this.setMissingFieldKeyValue(\r\n field.properties,\r\n \"decimal\",\r\n \"never\"\r\n );\r\n field.properties = this.setMissingFieldKeyValue(\r\n field.properties,\r\n \"prefix\",\r\n \"\"\r\n );\r\n field.properties = this.setMissingFieldKeyValue(\r\n field.properties,\r\n \"postfix\",\r\n \"\"\r\n );\r\n field.properties = this.setMissingFieldKeyValue(\r\n field.properties,\r\n \"min\",\r\n -Infinity\r\n );\r\n field.properties = this.setMissingFieldKeyValue(\r\n field.properties,\r\n \"max\",\r\n Infinity\r\n );\r\n field.properties = this.setMissingFieldKeyValue(\r\n field.properties,\r\n \"precision\",\r\n 2\r\n );\r\n }\r\n }\r\n\r\n field = this.setFieldKeyValue(field, \"hidden\", false);\r\n\r\n return field;\r\n };\r\n const formatFieldTypeApiCall = (field: any): any => {\r\n if (!hasKey(field.properties, \"shape\")) {\r\n field.properties = this.setFieldKeyValue(\r\n field.properties,\r\n \"shape\",\r\n null\r\n );\r\n }\r\n if (!hasKey(field, \"showLoader\")) {\r\n field = this.setFieldKeyValue(field, \"showLoader\", false);\r\n }\r\n if (!hasKey(field.properties, \"size\")) {\r\n field.properties = this.setFieldKeyValue(\r\n field.properties,\r\n \"size\",\r\n \"m\"\r\n );\r\n }\r\n if (!hasKey(field, \"api\")) {\r\n field = this.setFieldKeyValue(field, \"api\", {});\r\n\r\n field.api = this.setMissingFieldKeyValue(field.api, \"url\", \"\");\r\n field.api = this.setMissingFieldKeyValue(field.api, \"request\", \"\");\r\n field.api = this.setMissingFieldKeyValue(field.api, \"response\", \"\");\r\n field.api = this.setMissingFieldKeyValue(field.api, \"status\", \"\");\r\n\r\n field.api.status = this.setMissingFieldKeyValue(\r\n field.api.status,\r\n \"value\",\r\n \"default\"\r\n );\r\n field.api.status = this.setMissingFieldKeyValue(\r\n field.api.status,\r\n \"labels\",\r\n {\r\n default: \"Call API\",\r\n loading: \"Call API\",\r\n success: \"API Success\",\r\n failed: \"API Failed\"\r\n }\r\n );\r\n }\r\n return field;\r\n };\r\n const formatFieldTypeSearchText = (field: any): any => {\r\n if (hasKey(field, \"type\")) {\r\n if (field.type === \"search-text\") {\r\n field = this.setFieldKeyValue(\r\n field,\r\n \"type\",\r\n \"dropdown-with-search\"\r\n );\r\n }\r\n }\r\n\r\n return field;\r\n };\r\n const formatFieldTypeText = (field: any): any => {\r\n return field;\r\n };\r\n\r\n switch (field.type) {\r\n case \"title\":\r\n field = formatFieldTypeTitle(field);\r\n break;\r\n case \"radio\":\r\n field = formatFieldTypeRadio(field);\r\n break;\r\n case \"otp\":\r\n field = formatFieldTypeOtp(field);\r\n break;\r\n case \"date\":\r\n field = formatFieldTypeDate(field);\r\n break;\r\n case \"number\":\r\n field = formatFieldTypeNumber(field);\r\n break;\r\n case \"api-call\":\r\n field = formatFieldTypeApiCall(field);\r\n break;\r\n case \"search-text\":\r\n field = formatFieldTypeSearchText(field);\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return field;\r\n };\r\n\r\n const getConnectedElementKeyValueObject = (key: any): any => {\r\n const object = {\r\n key: key,\r\n conditions: { formula: \"\", rules: [] },\r\n actions: { success: [], failure: [] }\r\n };\r\n return object;\r\n };\r\n\r\n const formatFieldKeys = (field: any): any => {\r\n if (hasKey(field, \"connectedTo\")) {\r\n if (typeof field[\"connectedTo\"] === \"string\") {\r\n field[\"connectedElements\"] = [\r\n getConnectedElementKeyValueObject(field[\"connectedTo\"])\r\n ];\r\n } else {\r\n field[\"connectedTo\"] = field[\"connectedTo\"].map((key: string) => {\r\n return getConnectedElementKeyValueObject(key);\r\n });\r\n field[\"connectedElements\"] = field[\"connectedTo\"];\r\n }\r\n }\r\n this.removeFieldKey(field, \"connectedTo\");\r\n\r\n if (hasKey(field, \"connectedToParent\")) {\r\n if (typeof field[\"connectedToParent\"] === \"string\") {\r\n field[\"connectedParentFields\"] = [\r\n getConnectedElementKeyValueObject(field[\"connectedToParent\"])\r\n ];\r\n } else {\r\n field[\"connectedParentFields\"] = getConnectedElementKeyValueObject(\r\n field[\"connectedToParent\"]\r\n );\r\n }\r\n }\r\n this.removeFieldKey(field, \"connectedToParent\");\r\n\r\n this.removeFieldKey(field, \"sideEffect\");\r\n\r\n return field;\r\n };\r\n\r\n const getConnectedElementFieldMapping = (\r\n field: any,\r\n connectedFieldMapping: any\r\n ): any => {\r\n const getConnectedElementChildFieldMapping = (\r\n field: any,\r\n connectedFieldMapping: any\r\n ): any => {\r\n if (hasKey(field, \"connectedElements\")) {\r\n connectedFieldMapping[\"child\"][field.key] = field.connectedElements;\r\n } else if (hasKey(connectedFieldMapping[\"child\"], field.key)) {\r\n field[\"connectedElements\"] =\r\n connectedFieldMapping[\"child\"][field.key];\r\n }\r\n\r\n return { field: field, connectedFieldMapping: connectedFieldMapping };\r\n };\r\n\r\n const getConnectedElementParentFieldMapping = (\r\n field: any,\r\n connectedFieldMapping: any\r\n ): any => {\r\n if (hasKey(connectedFieldMapping[\"child\"], field.key)) {\r\n for (let connectedParentKey of connectedFieldMapping[\"child\"][\r\n field.key\r\n ]) {\r\n if (\r\n hasKey(connectedFieldMapping[\"parent\"], connectedParentKey[\"key\"])\r\n ) {\r\n connectedFieldMapping[\"parent\"][connectedParentKey[\"key\"]].push(\r\n field.key\r\n );\r\n } else {\r\n connectedFieldMapping[\"parent\"][connectedParentKey[\"key\"]] = [\r\n field.key\r\n ];\r\n }\r\n }\r\n }\r\n\r\n return { field: field, connectedFieldMapping: connectedFieldMapping };\r\n };\r\n\r\n const connectedChildFieldMapping = getConnectedElementChildFieldMapping(\r\n field,\r\n connectedFieldMapping\r\n );\r\n field = connectedChildFieldMapping[\"field\"];\r\n connectedFieldMapping =\r\n connectedChildFieldMapping[\"connectedFieldMapping\"];\r\n\r\n const connectedParentFieldMapping = getConnectedElementParentFieldMapping(\r\n field,\r\n connectedFieldMapping\r\n );\r\n field = connectedParentFieldMapping[\"field\"];\r\n connectedFieldMapping =\r\n connectedParentFieldMapping[\"connectedFieldMapping\"];\r\n\r\n return connectedFieldMapping;\r\n };\r\n\r\n const updateConnectedElementsKeyValue = (\r\n field: any,\r\n connectedFieldMapping: any\r\n ): any => {\r\n if (hasKey(connectedFieldMapping[\"child\"], field.key)) {\r\n field[\"connectedElements\"] = connectedFieldMapping[\"child\"][field.key];\r\n }\r\n\r\n if (hasKey(connectedFieldMapping[\"parent\"], field.key)) {\r\n field[\"connectedParentFields\"] =\r\n connectedFieldMapping[\"parent\"][field.key];\r\n }\r\n\r\n return field;\r\n };\r\n\r\n const updateFieldValidatorConfig = (field: any): any => {\r\n if (field.type !== \"title\") {\r\n const validators = hasKey(field, \"validators\") ? field.validators : {};\r\n\r\n field = this.setMissingFieldKeyValue(field, \"validators\", {});\r\n field = this.setFieldKeyValue(field, \"validators\", {\r\n ...field[\"validators\"],\r\n min: hasKey(validators, \"min\")\r\n ? isNotEmpty(validators.min)\r\n ? Number(validators.min)\r\n : null\r\n : hasKey(field, \"min\")\r\n ? Number(field.min)\r\n : null,\r\n max: hasKey(validators, \"max\")\r\n ? isNotEmpty(validators.max)\r\n ? Number(validators.max)\r\n : null\r\n : hasKey(field, \"max\")\r\n ? Number(field.max)\r\n : null,\r\n required: hasKey(validators, \"required\")\r\n ? Boolean(validators.required)\r\n : hasKey(field, \"required\")\r\n ? Boolean(field.required)\r\n : false,\r\n minLength: hasKey(validators, \"minLength\")\r\n ? isNotEmpty(validators.minLength)\r\n ? Number(validators.minLength)\r\n : null\r\n : hasKey(field, \"minLength\")\r\n ? Number(field.minLength)\r\n : null,\r\n maxLength: hasKey(validators, \"maxLength\")\r\n ? isNotEmpty(validators.maxLength)\r\n ? Number(validators.maxLength)\r\n : null\r\n : hasKey(field, \"length\")\r\n ? Number(field.length)\r\n : hasKey(field, \"maxLength\")\r\n ? Number(field.maxLength)\r\n : null,\r\n pattern: hasKey(validators, \"pattern\")\r\n ? isNotEmpty(validators.pattern)\r\n ? validators.pattern\r\n : undefined\r\n : hasKey(field, \"pattern\")\r\n ? { key: \"CUSTOM\", pattern: String(field.pattern) }\r\n : hasKey(field, \"regex\")\r\n ? { key: \"CUSTOM\", pattern: String(field.regex) }\r\n : undefined\r\n });\r\n\r\n delete field.min;\r\n delete field.max;\r\n delete field.required;\r\n delete field.minLength;\r\n delete field.length;\r\n delete field.maxLength;\r\n delete field.pattern;\r\n delete field.regex;\r\n\r\n switch (field.type) {\r\n case \"text\":\r\n delete field.validators.min;\r\n delete field.validators.max;\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n if (isEmpty(field.validators?.min)) {\r\n delete field.validators.min;\r\n }\r\n if (isEmpty(field.validators?.max)) {\r\n delete field.validators.min;\r\n }\r\n if (isEmpty(field.validators?.minLength)) {\r\n delete field.validators.minLength;\r\n }\r\n if (isEmpty(field.validators?.maxLength)) {\r\n delete field.validators.maxLength;\r\n }\r\n if (isEmpty(field.validators?.pattern)) {\r\n delete field.validators.pattern;\r\n }\r\n }\r\n\r\n return field;\r\n };\r\n\r\n const updateFieldDefaultValueConfig = (field: any): any => {\r\n if (field.type !== \"title\") {\r\n if (hasKey(field, \"defaultValue\")) {\r\n return field;\r\n } else if (hasKey(field, \"default\")) {\r\n return field;\r\n } else {\r\n if (hasKey(field, \"defaultVal\")) {\r\n // Currently below line is commented because it caused issues in setting Default Value.\r\n // field[\"defaultValue\"] = field[\"defaultVal\"];\r\n // delete field[\"defaultVal\"];\r\n }\r\n\r\n // TODO: Condition for all_forms_data is not considered yet.\r\n if (field.autoPopulateFromSummaryData) {\r\n field[\"defaultValue\"] = {\r\n is_found: false,\r\n value: \"\",\r\n sources: [\r\n {\r\n source: \"summary_data\",\r\n summary_data: {\r\n path: `$.${field.key}`,\r\n validation: {\r\n rules: [\r\n {\r\n key: \"1\",\r\n type: \"is_not_empty\",\r\n is_not_empty: {\r\n value: true\r\n }\r\n }\r\n ],\r\n actions: [\r\n {\r\n type: \"set_default_value_found\",\r\n condition: \"1\",\r\n set_default_value_found: {\r\n value: true\r\n }\r\n },\r\n {\r\n type: \"enable_field\",\r\n condition: \"1 OR NOT(1)\",\r\n enable_field: { value: true }\r\n }\r\n ]\r\n }\r\n }\r\n }\r\n ]\r\n };\r\n } else if (hasKey(field, \"autofill\")) {\r\n if (hasKey(field.autofill, \"type\")) {\r\n if (field.autofill.type === \"storage\") {\r\n field[\"defaultValue\"] = {\r\n is_found: false,\r\n value: \"\",\r\n sources: [\r\n {\r\n source: \"browser_storage\",\r\n browser_storage: {\r\n path: `$.${field.key}`,\r\n validation: {\r\n rules: [\r\n {\r\n key: \"1\",\r\n type: \"is_not_empty\",\r\n is_not_empty: {\r\n value: true\r\n }\r\n }\r\n ],\r\n actions: [\r\n {\r\n type: \"set_default_value_found\",\r\n condition: \"1\",\r\n set_default_value_found: {\r\n value: true\r\n }\r\n },\r\n {\r\n type: \"enable_field\",\r\n condition: \"1 OR NOT(1)\",\r\n enable_field: { value: true }\r\n }\r\n ]\r\n }\r\n }\r\n }\r\n ]\r\n };\r\n } else if (field.autofill.type === \"config\") {\r\n field[\"defaultValue\"] = {\r\n is_found: false,\r\n value: \"\",\r\n sources: [\r\n {\r\n source: \"field_config\",\r\n field_config: {\r\n path: `$.${field.key}`,\r\n validation: {\r\n rules: [\r\n {\r\n key: \"1\",\r\n type: \"is_not_empty\",\r\n is_not_empty: {\r\n value: true\r\n }\r\n }\r\n ],\r\n actions: [\r\n {\r\n type: \"set_default_value_found\",\r\n condition: \"1\",\r\n set_default_value_found: {\r\n value: true\r\n }\r\n },\r\n {\r\n type: \"enable_field\",\r\n condition: \"1 OR NOT(1)\",\r\n enable_field: { value: true }\r\n }\r\n ]\r\n }\r\n }\r\n }\r\n ]\r\n };\r\n }\r\n }\r\n } else {\r\n field[\"defaultValue\"] = {\r\n is_found: false,\r\n value: \"\",\r\n sources: [\r\n {\r\n source: \"form_data\",\r\n form_data: {\r\n path: `$.${field.key}`,\r\n validation: {\r\n rules: [\r\n {\r\n key: \"1\",\r\n type: \"is_not_empty\",\r\n is_not_empty: {\r\n value: true\r\n }\r\n }\r\n ],\r\n actions: [\r\n {\r\n type: \"set_default_value_found\",\r\n condition: \"1\",\r\n set_default_value_found: {\r\n value: true\r\n }\r\n },\r\n {\r\n type: \"enable_field\",\r\n condition: \"1 OR NOT(1)\",\r\n enable_field: { value: true }\r\n }\r\n ]\r\n }\r\n }\r\n }\r\n ]\r\n };\r\n }\r\n }\r\n\r\n delete field[\"defaultVal\"];\r\n }\r\n\r\n return field;\r\n };\r\n\r\n const updateFieldMessages = (field: any): any => {\r\n if (field.type !== \"title\") {\r\n field = this.setMissingFieldKeyValue(field, \"messages\", []);\r\n }\r\n\r\n return field;\r\n };\r\n\r\n const updateFieldResetButton = (field: any): any => {\r\n if (field.type === \"title\") {\r\n if (\r\n hasKey(field, \"action\") &&\r\n field.action === \"reset\" &&\r\n hasKey(field, \"fields\")\r\n ) {\r\n field = this.setFieldKeyValue(field, \"reset\", {\r\n fields: field.fields\r\n });\r\n }\r\n }\r\n\r\n return field;\r\n };\r\n\r\n const setFormFields = (formConfig: any, fields: any[]): any => {\r\n if (hasKey(formConfig, \"multiForm\")) {\r\n formConfig.multiForm[\"fields\"] = fields;\r\n } else {\r\n formConfig[\"fields\"] = fields;\r\n }\r\n\r\n return formConfig;\r\n };\r\n\r\n const setFormFieldGroups = (formConfig: any, groups: any): any => {\r\n formConfig[\"fieldGroups\"] = groups;\r\n\r\n return formConfig;\r\n };\r\n\r\n const updateFormFieldGroups = (fieldGroups: any, field: any): any => {\r\n if (hasKey(field, \"groupKey\")) {\r\n if (hasKey(fieldGroups, field.groupKey)) {\r\n fieldGroups[field.groupKey].push(field.key);\r\n } else {\r\n fieldGroups[field.groupKey] = [field.key];\r\n }\r\n }\r\n\r\n return fieldGroups;\r\n };\r\n\r\n let connectedFieldMapping: any = {\r\n parent: {},\r\n child: {}\r\n };\r\n\r\n let fields: any[] = this.getFormFields(formConfig);\r\n\r\n let fieldGroups: any = {};\r\n\r\n for (let field of fields) {\r\n field = updateOnFieldType(field);\r\n\r\n field = formatFieldKeys(field);\r\n\r\n // connectedFieldMapping = getConnectedElementFieldMapping(\r\n // field,\r\n // connectedFieldMapping\r\n // );\r\n // field = updateConnectedElementsKeyValue(field, connectedFieldMapping);\r\n fieldGroups = updateFormFieldGroups(fieldGroups, field);\r\n\r\n field = updateFieldDefaultValueConfig(field);\r\n\r\n field = updateFieldValidatorConfig(field);\r\n\r\n field = updateFieldResetButton(field);\r\n\r\n field = updateFieldMessages(field);\r\n }\r\n\r\n formConfig = setFormFieldGroups(formConfig, fieldGroups);\r\n\r\n formConfig = setFormFields(formConfig, fields);\r\n\r\n return formConfig;\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { setValueToObject } from \"./form-view/helpers/form-view.common.helper\";\r\nimport { hasKey } from \"./renderer.helper\";\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class KwikIDRendererService {\r\n isMobileView = false;\r\n setIsMobileView(isMobileView: boolean) {\r\n this.isMobileView = isMobileView;\r\n }\r\n\r\n formsList: any[];\r\n setFormsList(formsList: any[]) {\r\n this.formsList = formsList;\r\n }\r\n\r\n formsListCompleted: string[];\r\n setFormsListCompleted(formsListCompleted: any[]) {\r\n this.formsListCompleted = formsListCompleted;\r\n }\r\n\r\n allFormsData: any = {};\r\n setAllFormsData(allFormsData: any[]) {\r\n this.allFormsData = allFormsData;\r\n }\r\n\r\n activeFormConfig: any;\r\n setActiveFormConfig(activeFormConfig: any) {\r\n this.activeFormConfig = activeFormConfig;\r\n }\r\n\r\n activeFormFields: any[];\r\n setActiveFormFields(activeFormFields: any[]) {\r\n this.activeFormFields = activeFormFields;\r\n }\r\n\r\n activeFormData: any;\r\n setActiveFormData(activeFormData: any) {\r\n this.activeFormData = activeFormData;\r\n }\r\n\r\n constructor() {}\r\n\r\n async fetchFormConfig(url: string) {\r\n const response = await fetch(url, { method: \"GET\" });\r\n const data = await response.json();\r\n return data;\r\n }\r\n\r\n findActiveFormConfig(formsList: any[]): any {\r\n const activeFormConfig = formsList.find((form) => {\r\n return form.status === \"editable\" && !form.disabled;\r\n });\r\n return activeFormConfig;\r\n }\r\n\r\n findCompletedFormsList(allFormsData: any): string[] {\r\n let formsListCompleted: string[] = [];\r\n\r\n Object.keys(allFormsData).map((formKey) => {\r\n formsListCompleted.push(formKey);\r\n });\r\n\r\n return formsListCompleted;\r\n }\r\n\r\n markFormInFormsListAsCompleted(\r\n formsList: any[],\r\n formsListCompleted: string[]\r\n ): any[] {\r\n for (let form of formsList) {\r\n if (formsListCompleted.includes(form.key)) {\r\n form = setValueToObject(form, \"status\", \"completed\");\r\n form = setValueToObject(form, \"disabled\", false);\r\n }\r\n }\r\n\r\n return formsList;\r\n }\r\n\r\n markFormInFormsListAsDisabled(\r\n formsList: any[],\r\n formsListCompleted: string[]\r\n ): any[] {\r\n for (let form of formsList) {\r\n if (form.status !== \"completed\") {\r\n if (hasKey(form, \"dependentOn\")) {\r\n const isDependent = form.dependentOn.every((r: string) =>\r\n formsListCompleted.includes(r)\r\n );\r\n if (isDependent) {\r\n form = setValueToObject(form, \"status\", \"editable\");\r\n form = setValueToObject(form, \"disabled\", false);\r\n } else {\r\n form = setValueToObject(form, \"status\", \"locked\");\r\n form = setValueToObject(form, \"disabled\", true);\r\n }\r\n } else {\r\n form = setValueToObject(form, \"dependentOn\", []);\r\n form = setValueToObject(form, \"status\", \"editable\");\r\n form = setValueToObject(form, \"disabled\", false);\r\n }\r\n }\r\n }\r\n\r\n return formsList;\r\n }\r\n\r\n assignSequenceNoToForm(formsList: any[]): any[] {\r\n let sequenceNo = 1;\r\n for (let form of formsList) {\r\n form.sequenceNo = sequenceNo++;\r\n }\r\n\r\n return formsList;\r\n }\r\n\r\n filterAllFormsData(allFormsData: any, formsList: any[]): any {\r\n let currentUserFormAllFormsData: any = {};\r\n\r\n for (let form of formsList) {\r\n if (hasKey(allFormsData, form.key)) {\r\n currentUserFormAllFormsData = {\r\n ...currentUserFormAllFormsData,\r\n [form.key]: allFormsData[form.key]\r\n };\r\n }\r\n }\r\n\r\n return currentUserFormAllFormsData;\r\n }\r\n\r\n updateFormsList() {\r\n let formsList: any[] = this.formsList;\r\n let formsListCompleted: string[];\r\n let activeFormConfig: any;\r\n\r\n formsList = this.assignSequenceNoToForm(formsList);\r\n\r\n /**\r\n * Below code identifies the allFormsData required for the current User Form.\r\n * Why? Because allFormsData will actually contain the whole journey's all\r\n * possible User Form steps. So, it is important to set the form data which\r\n * this particular User Form only has to LOCAL METHOD Variable.\r\n */\r\n const currentUserFormAllFormsData = this.filterAllFormsData(\r\n this.allFormsData,\r\n formsList\r\n );\r\n\r\n formsListCompleted = this.findCompletedFormsList(\r\n currentUserFormAllFormsData\r\n );\r\n\r\n formsList = this.markFormInFormsListAsCompleted(\r\n formsList,\r\n formsListCompleted\r\n );\r\n\r\n formsList = this.markFormInFormsListAsDisabled(\r\n formsList,\r\n formsListCompleted\r\n );\r\n\r\n if (formsList.length !== formsListCompleted.length) {\r\n activeFormConfig = this.findActiveFormConfig(formsList);\r\n\r\n this.setActiveFormConfig(activeFormConfig);\r\n }\r\n\r\n this.setFormsList(formsList);\r\n this.setFormsListCompleted(formsListCompleted);\r\n }\r\n}\r\n","import { animate, style, transition, trigger } from \"@angular/animations\";\r\nimport {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostListener,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges\r\n} from \"@angular/core\";\r\nimport { EActionKey } from \"./form-view/definitions/actions/form-view.actions.enum.definitions\";\r\nimport { Sources } from \"./helpers/renderer.sources.helper\";\r\nimport { Validations } from \"./helpers/renderer.validations.helper\";\r\nimport { Converter } from \"./renderer.config-converter.helper\";\r\nimport { isSingleForm } from \"./renderer.helper\";\r\nimport { KwikIDRendererService } from \"./renderer.service\";\r\n\r\n@Component({\r\n selector: \"kwikid-forms-renderer\",\r\n templateUrl: \"./renderer.component.html\",\r\n styleUrls: [\"./renderer.component.scss\"],\r\n animations: [\r\n trigger(\"panelInOut\", [\r\n transition(\":enter\", [\r\n style({ transform: \"translateY(100%)\" }),\r\n animate(150)\r\n ]),\r\n transition(\":leave\", [\r\n animate(100, style({ transform: \"translateY(100%)\" }))\r\n ])\r\n ])\r\n ],\r\n providers: [KwikIDRendererService]\r\n})\r\nexport class KwikIDFormsRendererComponent implements OnInit, OnChanges {\r\n // The final value should be provided to service, so that it can be used in all components\r\n @HostListener(\"window:resize\", [\"$event\"])\r\n windowResizeWatcher() {\r\n if (this.hostElement.nativeElement.offsetWidth < 600) {\r\n if (this.showForm) {\r\n this.showFormSections = false;\r\n this.showFormFields = true;\r\n } else {\r\n this.showFormSections = true;\r\n this.showFormFields = false;\r\n }\r\n this.rendererService.isMobileView = true;\r\n } else {\r\n if (this.showForm) {\r\n this.showFormSections = true;\r\n this.showFormFields = true;\r\n } else {\r\n this.showFormSections = true;\r\n this.showFormFields = false;\r\n }\r\n this.rendererService.isMobileView = false;\r\n }\r\n }\r\n\r\n @Input()\r\n userConfig: any;\r\n\r\n @Input()\r\n formsData: any = {};\r\n\r\n @Input()\r\n apiCallResponse: any = {};\r\n\r\n @Output()\r\n onClickSubmit: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n getFormData: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Output()\r\n onClickApiCall: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n loading: boolean = false;\r\n loader: boolean = false;\r\n\r\n // display forms and list conditionally\r\n showForm: boolean = false;\r\n showFormFields: boolean = true;\r\n showFormSections: boolean = true;\r\n\r\n constructor(\r\n public rendererService: KwikIDRendererService,\r\n private hostElement: ElementRef\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.loader = true;\r\n this.loading = true;\r\n\r\n this.rendererService.setFormsList(this.userConfig.userFormFields);\r\n\r\n this.initializeForms();\r\n this.loader = false;\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const verifyChange = (prop: string) => {\r\n return changes.hasOwnProperty(prop) && !changes[prop].firstChange;\r\n };\r\n if (verifyChange(\"userConfig\")) {\r\n this.userConfig = changes.userConfig.currentValue;\r\n this.loader = false;\r\n }\r\n if (verifyChange(\"formsData\")) {\r\n this.formsData = changes.formsData.currentValue;\r\n\r\n this.initializeForms();\r\n }\r\n if (verifyChange(\"apiCallResponse\")) {\r\n this.apiCallResponse = changes.apiCallResponse.currentValue;\r\n this.loader = false;\r\n }\r\n }\r\n\r\n async initializeForms() {\r\n this.loader = true;\r\n\r\n this.rendererService.setAllFormsData(this.formsData);\r\n\r\n this.rendererService.updateFormsList();\r\n\r\n this.handleResize(this.rendererService.formsList);\r\n\r\n if (\r\n this.rendererService.formsList.length !==\r\n this.rendererService.formsListCompleted.length\r\n ) {\r\n await this.handleOnClickSetActiveForm(\r\n this.rendererService.activeFormConfig.key\r\n );\r\n } else {\r\n this.showForm = false;\r\n this.showFormFields = false;\r\n }\r\n\r\n this.loader = false;\r\n this.loading = false;\r\n }\r\n\r\n handleResize(formsList: any[]) {\r\n if (this.hostElement.nativeElement.offsetWidth < 600) {\r\n if (!isSingleForm(formsList)) {\r\n this.showFormSections = true;\r\n this.showFormFields = false;\r\n this.showForm = false;\r\n } else {\r\n this.showFormSections = true;\r\n this.showFormFields = false;\r\n this.showForm = false;\r\n }\r\n this.rendererService.isMobileView = true;\r\n } else {\r\n this.rendererService.isMobileView = false;\r\n }\r\n }\r\n\r\n // forms-list listener\r\n async handleOnClickSetActiveForm(selectedForm: string) {\r\n this.showForm = false;\r\n this.loader = true;\r\n\r\n const activeFormConfig = this.rendererService.formsList.find((form) => {\r\n if (form.key === selectedForm) {\r\n return form;\r\n }\r\n });\r\n\r\n let formConfig = await this.rendererService.fetchFormConfig(\r\n activeFormConfig.formContent.url\r\n );\r\n\r\n formConfig = new Converter().convertFormConfig(formConfig);\r\n\r\n const activeFormData =\r\n this.rendererService.allFormsData[formConfig.key] ?? {};\r\n this.rendererService.setActiveFormData(activeFormData);\r\n\r\n this.rendererService.setActiveFormConfig({\r\n ...activeFormConfig,\r\n ...formConfig\r\n });\r\n\r\n if (this.hostElement.nativeElement.offsetWidth < 600) {\r\n this.showFormSections = false;\r\n this.showFormFields = true;\r\n } else if (this.hostElement.nativeElement.offsetWidth >= 600) {\r\n this.showFormSections = true;\r\n this.showFormFields = true;\r\n }\r\n\r\n this.showForm = true;\r\n this.loader = false;\r\n }\r\n\r\n // forms-list listener\r\n handleOnClickSubmitForms(e: any) {\r\n console.log(e);\r\n\r\n if (this.userConfig.userFormFieldsConfig.validation) {\r\n const validations = new Validations(\r\n this.userConfig,\r\n this.takeAction.bind(this)\r\n );\r\n\r\n (async () => {\r\n await validations.validateField();\r\n\r\n if (this.userConfig.userFormFieldsConfig.status === \"completed\") {\r\n this.onClickSubmit.emit(e);\r\n } else {\r\n this.toggleErrorNotification(true);\r\n setTimeout(() => {\r\n this.toggleErrorNotification(false);\r\n }, 3000);\r\n }\r\n })();\r\n }\r\n }\r\n\r\n // form-view listener\r\n handleOnClickApiCall(e: any) {\r\n this.loader = true;\r\n this.onClickApiCall.emit(e);\r\n }\r\n\r\n // form-view listener\r\n handleGetActiveFormData(e: any) {\r\n this.loader = true;\r\n this.getFormData.emit({\r\n [this.rendererService.activeFormConfig.key]: e[\"data\"]\r\n });\r\n }\r\n\r\n // form-view listener\r\n handleOnClickSaveForm(e: any) {\r\n this.loader = true;\r\n\r\n this.rendererService.setActiveFormData({});\r\n\r\n this.getFormData.emit({\r\n [this.rendererService.activeFormConfig.key]: e[\"data\"]\r\n });\r\n }\r\n\r\n // form-view listener\r\n handleOnClickViewForms(e: any) {\r\n this.showFormSections = true;\r\n this.showForm = false;\r\n this.showFormFields = false;\r\n }\r\n\r\n showErrorNotification: boolean = false;\r\n toggleErrorNotification(show) {\r\n this.showErrorNotification = show;\r\n }\r\n\r\n async takeAction(action: any, userConfig: any) {\r\n switch (action.key) {\r\n case EActionKey.SET_VALUE:\r\n const sources = new Sources(userConfig);\r\n\r\n const sourceValue = await sources.getValueFromSource(\r\n action.props.value.source\r\n );\r\n sources.setValueToSource(action.props.value.destination, sourceValue);\r\n\r\n this.userConfig = sources.userConfig;\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n}\r\n","<div ngClass=\"kwikid-renderer\">\r\n <div\r\n ngClass=\"kwikid-layout-container\"\r\n *ngIf=\"!loading\"\r\n >\r\n <div\r\n ngClass=\"kwikid-sections-container\"\r\n *ngIf=\"showFormSections\"\r\n class=\"active\"\r\n [class.active]=\"showFormSections\"\r\n [class.mobile]=\"rendererService.isMobileView\"\r\n >\r\n <kwikid-forms-list\r\n [showFormFields]=\"this.showFormFields\"\r\n [userConfig]=\"this.userConfig\"\r\n [formsList]=\"this.rendererService.formsList\"\r\n [formsListCompleted]=\"this.rendererService.formsListCompleted\"\r\n [isMobileView]=\"this.rendererService.isMobileView\"\r\n (onClickSetActiveForm)=\"this.handleOnClickSetActiveForm($event)\"\r\n (onClickSubmitForms)=\"this.handleOnClickSubmitForms($event)\"\r\n ></kwikid-forms-list>\r\n </div>\r\n <div\r\n ngClass=\"kwikid-forms-container\"\r\n *ngIf=\"this.showForm && this.showFormFields\"\r\n [class.active]=\"showFormFields\"\r\n [class.mobile]=\"rendererService.isMobileView\"\r\n [@panelInOut]\r\n >\r\n <kwikid-form-view\r\n [formConfig]=\"this.rendererService.activeFormConfig\"\r\n [formData]=\"this.rendererService.activeFormData\"\r\n [apiCallResponse]=\"this.apiCallResponse\"\r\n [formsList]=\"this.rendererService.formsList\"\r\n [allFormsData]=\"this.rendererService.allFormsData\"\r\n [isMobileView]=\"this.rendererService.isMobileView\"\r\n (onClickApiCall)=\"this.handleOnClickApiCall($event)\"\r\n (onClickViewForms)=\"this.handleOnClickViewForms($event)\"\r\n (onClickSaveForm)=\"this.handleOnClickSaveForm($event)\"\r\n (getActiveFormData)=\"this.handleGetActiveFormData($event)\"\r\n ></kwikid-form-view>\r\n </div>\r\n </div>\r\n</div>\r\n<div\r\n ngClass=\"kwikid-forms-renderer-loader\"\r\n *ngIf=\"loader\"\r\n>\r\n <span class=\"loader\"></span>\r\n</div>\r\n<tui-push\r\n id=\"error-notification\"\r\n *tuiPush=\"showErrorNotification\"\r\n heading=\"Please complete the required Forms!\"\r\n type=\"Error\"\r\n (close)=\"toggleErrorNotification(false)\"\r\n>\r\n <tui-svg\r\n src=\"tuiIconCancel\"\r\n style=\"color: #fff !important\"\r\n >\r\n </tui-svg>\r\n</tui-push>\r\n","import { DragDropModule } from \"@angular/cdk/drag-drop\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { KwikIDFormsBuilderComponent } from \"./builder.component\";\r\n\r\n@NgModule({\r\n declarations: [KwikIDFormsBuilderComponent],\r\n imports: [CommonModule, FormsModule, ReactiveFormsModule, DragDropModule],\r\n providers: [],\r\n exports: [KwikIDFormsBuilderComponent]\r\n})\r\nexport class KwikIDFormBuilderModule {}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { TuiLabelModule, TuiSvgModule } from \"@taiga-ui/core\";\r\nimport { TuiPushModule } from \"@taiga-ui/kit\";\r\nimport { KwikUIModule } from \"kwikui\";\r\nimport { KwikIDFormViewComponent } from \"./form-view.component\";\r\n\r\n@NgModule({\r\n declarations: [KwikIDFormViewComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n TuiLabelModule,\r\n TuiPushModule,\r\n TuiSvgModule,\r\n KwikUIModule\r\n ],\r\n exports: [KwikIDFormViewComponent]\r\n})\r\nexport class KwikIDFormViewModule {}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { TuiSvgModule } from \"@taiga-ui/core\";\r\nimport { KwikUIModule } from \"kwikui\";\r\nimport { KwikIDFormsListComponent } from \"./forms-list.component\";\r\n\r\n@NgModule({\r\n declarations: [KwikIDFormsListComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n KwikUIModule,\r\n TuiSvgModule\r\n ],\r\n exports: [KwikIDFormsListComponent]\r\n})\r\nexport class KwikIDFormsListModule {}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { HttpClientModule } from \"@angular/common/http\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { TuiLoaderModule, TuiSvgModule } from \"@taiga-ui/core\";\r\nimport { TuiPushModule } from \"@taiga-ui/kit\";\r\nimport { KwikUIModule } from \"kwikui\";\r\nimport { KwikIDFormViewModule } from \"./form-view/form-view.module\";\r\nimport { KwikIDFormsListModule } from \"./forms-list/forms-list.module\";\r\nimport { KwikIDFormsRendererComponent } from \"./renderer.component\";\r\n\r\n@NgModule({\r\n declarations: [KwikIDFormsRendererComponent],\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n KwikIDFormViewModule,\r\n KwikIDFormsListModule,\r\n KwikUIModule,\r\n TuiLoaderModule,\r\n TuiPushModule,\r\n TuiSvgModule\r\n ],\r\n providers: [],\r\n exports: [KwikIDFormsRendererComponent]\r\n})\r\nexport class KwikIDFormRendererModule {}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { KwikIDFormBuilderModule } from \"./builder/builder.module\";\r\nimport { KwikIDFormRendererModule } from \"./renderer/renderer.module\";\r\nimport { KwikIDRendererService } from \"./renderer/renderer.service\";\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n KwikIDFormBuilderModule,\r\n KwikIDFormRendererModule\r\n ],\r\n exports: [KwikIDFormBuilderModule, KwikIDFormRendererModule],\r\n providers: [KwikIDRendererService]\r\n})\r\nexport class KwikIDFormsModule {}\r\n","/*\r\n * Public API Surface of kwikid-forms\r\n */\r\n\r\n/* Builder Components */\r\nexport * from \"./lib/builder/builder.component\";\r\n\r\n/* Renderer Components */\r\nexport * from \"./lib/renderer/form-view/form-view.component\";\r\nexport * from \"./lib/renderer/forms-list/forms-list.component\";\r\nexport * from \"./lib/renderer/renderer.component\";\r\n\r\n/* KwikID Forms Component */\r\n\r\n/* All Modules in import order from bottom to top */\r\nexport * from \"./lib/builder/builder.module\";\r\nexport * from \"./lib/renderer/form-view/form-view.module\";\r\nexport * from \"./lib/renderer/forms-list/forms-list.module\";\r\nexport * from \"./lib/renderer/renderer.module\";\r\nexport * from \"./lib/kwikid-forms.module\";\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["FormGroup","VERSION","KwikUIButtonComponent","KwikUIProgressSegmentedComponent","KwikUIInputComponent","cloneDeep","FormControl","copyArrayItem","moveItemInArray","i0","Component","hasKey","isEmpty","isNotEmpty","handleJPQueryResponse","jpQueryWrapper","jp","_","TuiDay","Condition","Actions","Sources","Rules","Validations","Validators","FormArray","EventEmitter","pairwise","TuiPushService","TuiAlertService","i1.KwikIDFormViewService","i2","i3","i4","i5","i6","Inject","Input","Output","i1","Injectable","i1.KwikIDRendererService","i2.KwikIDFormsListComponent","i3.KwikIDFormViewComponent","trigger","transition","style","animate","HostListener","CommonModule","FormsModule","ReactiveFormsModule","DragDropModule","NgModule","TuiLabelModule","TuiPushModule","TuiSvgModule","KwikUIModule","HttpClientModule","TuiLoaderModule"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAAA;;;;;;;;;;;;;IAagF;IAChF;IAEA,IAAI,aAAa,GAAG,UAAS,CAAC,EAAE,CAAC,EAAA;QAC7B,aAAa,GAAG,MAAM,CAAC,cAAc;aAChC,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,EAAA,EAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;YAC5E,UAAU,CAAC,EAAE,CAAC,EAAA,EAAI,KAAK,IAAI,CAAC,IAAI,CAAC;gBAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;oBAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtG,IAAA,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC;IAEc,SAAA,SAAS,CAAC,CAAC,EAAE,CAAC,EAAA;IAC1B,IAAA,IAAI,OAAO,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,IAAI;IACrC,QAAA,MAAM,IAAI,SAAS,CAAC,sBAAsB,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,+BAA+B,CAAC,CAAC;IAC9F,IAAA,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpB,SAAS,EAAE,KAAK,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;IACvC,IAAA,CAAC,CAAC,SAAS,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC;IAEM,IAAI,QAAQ,GAAG,YAAA;QAClB,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,QAAQ,CAAC,CAAC,EAAA;IAC3C,QAAA,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IACjD,YAAA,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBACjB,KAAK,IAAI,CAAC,IAAI,CAAC;oBAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;wBAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChF,SAAA;IACD,QAAA,OAAO,CAAC,CAAC;IACb,KAAC,CAAA;QACD,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC3C,CAAC,CAAA;IAEe,SAAA,MAAM,CAAC,CAAC,EAAE,CAAC,EAAA;QACvB,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,KAAK,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC/E,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU;YAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,gBAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzB,SAAA;IACL,IAAA,OAAO,CAAC,CAAC;IACb,CAAC;IAEK,SAAU,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAA;IACpD,IAAA,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QAC7H,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;IAAE,QAAA,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;;IAC1H,QAAA,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;IAAE,YAAA,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IAAE,gBAAA,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IAClJ,IAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;IAEe,SAAA,OAAO,CAAC,UAAU,EAAE,SAAS,EAAA;IACzC,IAAA,OAAO,UAAU,MAAM,EAAE,GAAG,EAAA,EAAI,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,CAAA;IACzE,CAAC;IAEe,SAAA,UAAU,CAAC,WAAW,EAAE,aAAa,EAAA;QACjD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;YAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACnI,CAAC;IAEK,SAAU,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAA;IACvD,IAAA,SAAS,KAAK,CAAC,KAAK,EAAA,EAAI,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,EAAA,EAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;IAC5G,IAAA,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAA;IACrD,QAAA,SAAS,SAAS,CAAC,KAAK,EAAA,EAAI,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAAE,SAAA;IAAC,QAAA,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAAE,SAAA,EAAE;IAC3F,QAAA,SAAS,QAAQ,CAAC,KAAK,EAAA,EAAI,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAAE,SAAA;IAAC,QAAA,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAAE,SAAA,EAAE;IAC9F,QAAA,SAAS,IAAI,CAAC,MAAM,EAAA,EAAI,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE;IAC9G,QAAA,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1E,KAAC,CAAC,CAAC;IACP,CAAC;IAEe,SAAA,WAAW,CAAC,OAAO,EAAE,IAAI,EAAA;IACrC,IAAA,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,YAAA,EAAa,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAAE,YAAA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACjH,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,MAAM,KAAK,UAAU,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,YAAA,EAAa,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACzJ,SAAS,IAAI,CAAC,CAAC,EAAA,EAAI,OAAO,UAAU,CAAC,EAAI,EAAA,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;QAClE,SAAS,IAAI,CAAC,EAAE,EAAA;IACZ,QAAA,IAAI,CAAC;IAAE,YAAA,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;IAC9D,QAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAAE,IAAI;IAC1C,gBAAA,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI;IAAE,oBAAA,OAAO,CAAC,CAAC;IAC7J,gBAAA,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAAE,oBAAA,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IACxC,gBAAA,QAAQ,EAAE,CAAC,CAAC,CAAC;IACT,oBAAA,KAAK,CAAC,CAAC;IAAC,oBAAA,KAAK,CAAC;4BAAE,CAAC,GAAG,EAAE,CAAC;4BAAC,MAAM;IAC9B,oBAAA,KAAK,CAAC;4BAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IAAC,wBAAA,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACxD,oBAAA,KAAK,CAAC;4BAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IAAC,wBAAA,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IAAC,wBAAA,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;4BAAC,SAAS;IACjD,oBAAA,KAAK,CAAC;IAAE,wBAAA,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IAAC,wBAAA,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;4BAAC,SAAS;IACjD,oBAAA;IACI,wBAAA,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;gCAAE,CAAC,GAAG,CAAC,CAAC;gCAAC,SAAS;IAAE,yBAAA;IAC5G,wBAAA,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;IAAE,4BAAA,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gCAAC,MAAM;IAAE,yBAAA;IACtF,wBAAA,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;IAAE,4BAAA,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gCAAC,CAAC,GAAG,EAAE,CAAC;gCAAC,MAAM;IAAE,yBAAA;4BACrE,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;IAAE,4BAAA,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAAC,4BAAA,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gCAAC,MAAM;IAAE,yBAAA;4BACnE,IAAI,CAAC,CAAC,CAAC,CAAC;IAAE,4BAAA,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IACtB,wBAAA,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;4BAAC,SAAS;IAC9B,iBAAA;oBACD,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC9B,aAAA;IAAC,YAAA,OAAO,CAAC,EAAE;IAAE,gBAAA,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAAC,CAAC,GAAG,CAAC,CAAC;IAAE,aAAA;IAAS,oBAAA;IAAE,gBAAA,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAAE,aAAA;IAC1D,QAAA,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAAE,YAAA,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;YAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;SACpF;IACL,CAAC;IAEM,IAAI,eAAe,GAAG,MAAM,CAAC,MAAM,IAAI,UAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAA;QAC9D,IAAI,EAAE,KAAK,SAAS;YAAE,EAAE,GAAG,CAAC,CAAC;QAC7B,IAAI,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE;IAC/E,QAAA,IAAI,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAA,EAAa,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACjE,KAAA;QACD,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC,KAAK,UAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAA;QACtB,IAAI,EAAE,KAAK,SAAS;YAAE,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;IAEa,SAAA,YAAY,CAAC,CAAC,EAAE,CAAC,EAAA;QAC7B,KAAK,IAAI,CAAC,IAAI,CAAC;IAAE,QAAA,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IAAE,YAAA,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAClH,CAAC;IAEK,SAAU,QAAQ,CAAC,CAAC,EAAA;QACtB,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAC9E,IAAA,IAAI,CAAC;IAAE,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,IAAA,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO;IAC1C,YAAA,IAAI,EAAE,YAAA;IACF,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM;wBAAE,CAAC,GAAG,KAAK,CAAC,CAAC;IACnC,gBAAA,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;iBAC3C;aACJ,CAAC;IACF,IAAA,MAAM,IAAI,SAAS,CAAC,CAAC,GAAG,yBAAyB,GAAG,iCAAiC,CAAC,CAAC;IAC3F,CAAC;IAEe,SAAA,MAAM,CAAC,CAAC,EAAE,CAAC,EAAA;IACvB,IAAA,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3D,IAAA,IAAI,CAAC,CAAC;IAAE,QAAA,OAAO,CAAC,CAAC;IACjB,IAAA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACjC,IAAI;YACA,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI;IAAE,YAAA,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC9E,KAAA;IACD,IAAA,OAAO,KAAK,EAAE;IAAE,QAAA,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAAE,KAAA;IAC/B,YAAA;YACJ,IAAI;IACA,YAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;IAAE,gBAAA,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpD,SAAA;IACO,gBAAA;IAAE,YAAA,IAAI,CAAC;oBAAE,MAAM,CAAC,CAAC,KAAK,CAAC;IAAE,SAAA;IACpC,KAAA;IACD,IAAA,OAAO,EAAE,CAAC;IACd,CAAC;IAED;aACgB,QAAQ,GAAA;IACpB,IAAA,KAAK,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE;IAC9C,QAAA,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,IAAA,OAAO,EAAE,CAAC;IACd,CAAC;IAED;aACgB,cAAc,GAAA;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;IAAE,QAAA,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACpF,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;YAC5C,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;gBAC7D,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpB,IAAA,OAAO,CAAC,CAAC;IACb,CAAC;aAEe,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAA;IACxC,IAAA,IAAI,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;IAAE,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACjF,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE;IACpB,gBAAA,IAAI,CAAC,EAAE;IAAE,oBAAA,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBACrD,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACnB,aAAA;IACJ,SAAA;IACD,IAAA,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7D,CAAC;IAEK,SAAU,OAAO,CAAC,CAAC,EAAA;QACrB,OAAO,IAAI,YAAY,OAAO,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;aAEe,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAA;QAC3D,IAAI,CAAC,MAAM,CAAC,aAAa;IAAE,QAAA,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;IACvF,IAAA,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;IAC9D,IAAA,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,YAAc,EAAA,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACtH,SAAS,IAAI,CAAC,CAAC,EAAA,EAAI,IAAI,CAAC,CAAC,CAAC,CAAC;YAAE,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,EAAA,EAAI,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EAAI,EAAA,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;IAC1I,IAAA,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI;YAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAAE,KAAA;IAAC,IAAA,OAAO,CAAC,EAAE;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAAE,KAAA,EAAE;QAClF,SAAS,IAAI,CAAC,CAAC,EAAA,EAAI,CAAC,CAAC,KAAK,YAAY,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;IACxH,IAAA,SAAS,OAAO,CAAC,KAAK,EAAA,EAAI,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE;IAClD,IAAA,SAAS,MAAM,CAAC,KAAK,EAAA,EAAI,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE;IAClD,IAAA,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAA,EAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM;IAAE,QAAA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;IACtF,CAAC;IAEK,SAAU,gBAAgB,CAAC,CAAC,EAAA;QAC9B,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,IAAA,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,YAAA,EAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5I,IAAA,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAI,EAAA,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,EAAI,EAAA,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;IACnJ,CAAC;IAEK,SAAU,aAAa,CAAC,CAAC,EAAA;QAC3B,IAAI,CAAC,MAAM,CAAC,aAAa;IAAE,QAAA,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;QACvF,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACnC,IAAA,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,QAAQ,KAAK,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,YAAA,EAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACjN,SAAS,IAAI,CAAC,CAAC,EAAI,EAAA,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,EAAA,EAAI,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,EAAI,EAAA,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;IAChK,IAAA,SAAS,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAS,CAAC,EAAI,EAAA,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE;IAChI,CAAC;IAEe,SAAA,oBAAoB,CAAC,MAAM,EAAE,GAAG,EAAA;QAC5C,IAAI,MAAM,CAAC,cAAc,EAAE;IAAE,QAAA,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IAAE,KAAA;IAAM,SAAA;IAAE,QAAA,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;IAAE,KAAA;IAC/G,IAAA,OAAO,MAAM,CAAC;IAClB,CAAC;IAAA,CAAC;IAEF,IAAI,kBAAkB,GAAG,MAAM,CAAC,MAAM,IAAI,UAAS,CAAC,EAAE,CAAC,EAAA;IACnD,IAAA,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC,IAAI,UAAS,CAAC,EAAE,CAAC,EAAA;IACd,IAAA,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC,CAAC;IAEI,SAAU,YAAY,CAAC,GAAG,EAAA;IAC5B,IAAA,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU;IAAE,QAAA,OAAO,GAAG,CAAC;QACtC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,GAAG,IAAI,IAAI;YAAE,KAAK,IAAI,CAAC,IAAI,GAAG;IAAE,YAAA,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAAE,gBAAA,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IACzI,IAAA,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,IAAA,OAAO,MAAM,CAAC;IAClB,CAAC;IAEK,SAAU,eAAe,CAAC,GAAG,EAAA;IAC/B,IAAA,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC5D,CAAC;IAEK,SAAU,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAA;IAC3D,IAAA,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC;IAAE,QAAA,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;QAC7F,IAAI,OAAO,KAAK,KAAK,UAAU,GAAG,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;IAAE,QAAA,MAAM,IAAI,SAAS,CAAC,0EAA0E,CAAC,CAAC;IACnL,IAAA,OAAO,IAAI,KAAK,GAAG,GAAG,CAAC,GAAG,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClG,CAAC;IAEK,SAAU,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAA;QAClE,IAAI,IAAI,KAAK,GAAG;IAAE,QAAA,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAC;IACxE,IAAA,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC;IAAE,QAAA,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;QAC7F,IAAI,OAAO,KAAK,KAAK,UAAU,GAAG,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;IAAE,QAAA,MAAM,IAAI,SAAS,CAAC,yEAAyE,CAAC,CAAC;IAClL,IAAA,OAAO,CAAC,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC;IAC9G,CAAC;IAEe,SAAA,qBAAqB,CAAC,KAAK,EAAE,QAAQ,EAAA;IACjD,IAAA,IAAI,QAAQ,KAAK,IAAI,KAAK,OAAO,QAAQ,KAAK,QAAQ,IAAI,OAAO,QAAQ,KAAK,UAAU,CAAC;IAAE,QAAA,MAAM,IAAI,SAAS,CAAC,wCAAwC,CAAC,CAAC;IACzJ,IAAA,OAAO,OAAO,KAAK,KAAK,UAAU,GAAG,QAAQ,KAAK,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClF;;AC/NA,QAAA,2BAAA,kBAAA,YAAA;IAuCE,IAAA,SAAA,2BAAA,GAAA;YAtCA,IAAA,CAAA,eAAe,GAAG;IAChB,YAAA,QAAQ,EAAE,KAAK;IACf,YAAA,EAAE,EAAE,EAAE;IACN,YAAA,KAAK,EAAE,QAAQ;IACf,YAAA,UAAU,EAAE,KAAK;IACjB,YAAA,MAAM,EAAE,EAAE;IACV,YAAA,KAAK,EAAE,sCAAsC;IAC7C,YAAA,IAAI,EAAE,QAAQ;IACd,YAAA,UAAU,EAAE,SAAS;IACrB,YAAA,IAAI,EAAE,EAAE;IACR,YAAA,SAAS,EAAE,EAAE;IACb,YAAA,KAAK,EAAE,IAAI;IACX,YAAA,IAAI,EAAE,GAAG;aACV,CAAC;YAEF,IAAA,CAAA,0BAA0B,GAAG;IAC3B,YAAA,MAAM,EAAE,oBAAoB;IAC5B,YAAA,GAAG,EAAE,GAAG;IACR,YAAA,IAAI,EAAE,GAAG;IACT,YAAA,KAAK,EAAE,GAAG;aACX,CAAC;YAEF,IAAA,CAAA,cAAc,GAAG;IACf,YAAA,IAAI,EAAE,SAAS;IACf,YAAA,QAAQ,EAAE,KAAK;IACf,YAAA,KAAK,EAAE,KAAK;IACZ,YAAA,EAAE,EAAE,IAAI;IACR,YAAA,OAAO,EAAE,KAAK;IACd,YAAA,KAAK,EAAE,OAAO;IACd,YAAA,WAAW,EAAE,aAAa;IAC1B,YAAA,IAAI,EAAE,MAAM;IACZ,YAAA,UAAU,EAAE;IACV,gBAAA,QAAQ,EAAE,IAAI;IACf,aAAA;aACF,CAAC;YAEF,IAAA,CAAA,SAAS,GAAG,IAAIA,YAAS,CAAC,EAAE,CAAC,CAAC;YA8B9B,IAAA,CAAA,IAAI,GAAG,UAAU,GAAGC,UAAO,CAAC,KAAK,CAAC;YAClC,IAAA,CAAA,IAAI,GAAiB;IACnB,YAAA;IACE,gBAAA,KAAK,EAAE,QAAQ;IACf,gBAAA,GAAG,EAAE,QAAQ;IACb,gBAAA,SAAS,EAAEC,wBAAqB;oBAChC,KAAK,EAAE,IAAI,CAAC,eAAe;IAC5B,aAAA;IACD,YAAA;IACE,gBAAA,KAAK,EAAE,oBAAoB;IAC3B,gBAAA,GAAG,EAAE,oBAAoB;IACzB,gBAAA,SAAS,EAAEC,mCAAgC;oBAC3C,KAAK,EAAE,IAAI,CAAC,0BAA0B;IACvC,aAAA;IACD,YAAA;IACE,gBAAA,KAAK,EAAE,OAAO;IACd,gBAAA,GAAG,EAAE,OAAO;IACZ,gBAAA,SAAS,EAAEC,uBAAoB;oBAC/B,KAAK,EAAE,IAAI,CAAC,cAAc;IAC3B,aAAA;aACF,CAAC;IACF,QAAA,IAAK,CAAA,KAAA,GAAiB,EAAE,CAAC;SAjDT;IAEhB,IAAA,2BAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;;;gBACE,KAAc,IAAA,KAAA,QAAA,CAAA,IAAI,CAAC,IAAI,CAAA,gBAAA,EAAE,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA;IAApB,gBAAA,IAAI,CAAC,GAAA,EAAA,CAAA,KAAA,CAAA;IACR,gBAAA,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;IAC7B,aAAA;;;;;;;;;SACF,CAAA;IAED,IAAA,2BAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;YACE,OAAO,IAAI,CAAC,MAAM,EAAE;iBACjB,QAAQ,CAAC,EAAE,CAAC;IACZ,aAAA,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;SAC5B,CAAA;QAED,2BAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UACE,KAAiC,EACjC,EAAmB,EACnB,GAAoB,EACpB,GAAQ,EAAA;IAER,QAAA,IAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;IAClC,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;SACjE,CAAA;QAED,2BAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,EAAO,EAAA;IAChB,QAAA,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SACjB,CAAA;QAyBD,2BAAI,CAAA,SAAA,CAAA,IAAA,GAAJ,UAAK,KAAU,EAAA;;IAEb,QAAA,IAAI,KAAK,CAAC,iBAAiB,KAAK,KAAK,CAAC,SAAS,EAAE;IAC/C,YAAA,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;;IAGvB,YAAA,IAAI,KAAK,GAAGC,WAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;IACzE,YAAA,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnD,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC;IAE1D,YAAA,IAAI,cAAY,GAAG,IAAIL,YAAS,CAAC,EAAE,CAAC,CAAC;IAErC,YAAA,IAAM,OAAK,GAAG,KAAK,CAAC,KAAK,CAAC;gBAE1B,MAAM,CAAC,IAAI,CAAC,OAAK,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG,EAAA;oBAC7B,cAAY,CAAC,UAAU,CACrB,GAAG,EACH,IAAIM,cAAW,CAAC,EAAE,KAAK,EAAE,OAAK,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CACxD,CAAC;IACJ,aAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,EAAE,cAAY,CAAC,CAAC;gBAElDC,sBAAa,CACX,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAC5B,KAAK,CAAC,SAAS,CAAC,IAAI,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,YAAY,CACnB,CAAC;IACH,SAAA;IAAM,aAAA;IACL,YAAA,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACtB,YAAAC,wBAAe,CACb,KAAK,CAAC,SAAS,CAAC,IAAI,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,YAAY,CACnB,CAAC;IACH,SAAA;IACD,QAAA,IAAI,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE;gBAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAC,CAAC,EAAK,EAAA,OAAA,CAAC,CAAC,CAAC,IAAI,CAAP,EAAO,CAAC,CAAC;IAC9C,SAAA;SACF,CAAA;QAED,2BAAM,CAAA,SAAA,CAAA,MAAA,GAAN,UAAO,KAAU,EAAA;IACf,QAAA,IAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAC/C,UAAC,CAAc,EAAK,EAAA,OAAA,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA,EAAA,CAChD,CAAC;IACF,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC,kCAC7B,KAAK,CAAC,IAAI,CAAC,IAAI,KAClB,IAAI,EAAE,IAAI,EAAA,CAAA,CACV,CAAC;SACJ,CAAA;IAED,IAAA,2BAAA,CAAA,SAAA,CAAA,OAAO,GAAP,YAAA;YACE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAC,CAAC,EAAK,EAAA,OAAA,CAAC,CAAC,CAAC,IAAI,CAAP,EAAO,CAAC,CAAC;SAC9C,CAAA;QAED,2BAAQ,CAAA,SAAA,CAAA,QAAA,GAAR,UAAS,GAAQ,EAAA;YACf,OAAO,OAAO,GAAG,CAAC;SACnB,CAAA;IAED,IAAA,2BAAA,CAAA,SAAA,CAAA,aAAa,GAAb,UAAc,GAAW,EAAE,EAAU,EAAA;IACnC,QAAA,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YACjC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;SAC3B,CAAA;IAED,IAAA,2BAAA,CAAA,SAAA,CAAA,OAAO,GAAP,YAAA;;;gBACE,KAAc,IAAA,KAAA,QAAA,CAAA,IAAI,CAAC,KAAK,CAAA,gBAAA,EAAE,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA;IAArB,gBAAA,IAAI,CAAC,GAAA,EAAA,CAAA,KAAA,CAAA;IACR,gBAAA,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC9C,aAAA;;;;;;;;;IACD,QAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACzB,CAAA;;;sKAhKU,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAC,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAA3B,mBAAA,2BAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,uECxBxC,ssEAmEA,EAAA,MAAA,EAAA,CAAA,u9BAAA,CAAA,EAAA,CAAA,CAAA;sHD3Ca,2BAA2B,EAAA,UAAA,EAAA,CAAA;sBALvCC,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,sBAAsB;IAChC,oBAAA,WAAW,EAAE,0BAA0B;wBACvC,SAAS,EAAE,CAAC,0BAA0B,CAAC;qBACxC,CAAA;;;IEvBD,IAAY,UAiBX,CAAA;IAjBD,CAAA,UAAY,UAAU,EAAA;IACpB,IAAA,UAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;IACvB,IAAA,UAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC,CAAA;IACzC,IAAA,UAAA,CAAA,qBAAA,CAAA,GAAA,qBAA2C,CAAA;IAC3C,IAAA,UAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC,CAAA;IACrC,IAAA,UAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC,CAAA;IACrC,IAAA,UAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;IACzB,IAAA,UAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;IACzB,IAAA,UAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;IAC7B,IAAA,UAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;IAC/B,IAAA,UAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;IAC3B,IAAA,UAAA,CAAA,2BAAA,CAAA,GAAA,2BAAuD,CAAA;IACvD,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;IACjB,IAAA,UAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC,CAAA;IACrC,IAAA,UAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC,CAAA;IACrC,IAAA,UAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC,CAAA;IACzC,IAAA,UAAA,CAAA,qBAAA,CAAA,GAAA,qBAA2C,CAAA;IAC7C,CAAC,EAjBW,UAAU,KAAV,UAAU,GAiBrB,EAAA,CAAA,CAAA;;ICjBD,IAAY,cAKX,CAAA;IALD,CAAA,UAAY,cAAc,EAAA;IACxB,IAAA,cAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;IACnB,IAAA,cAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;IACnB,IAAA,cAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;IACnB,IAAA,cAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;IACnB,CAAC,EALW,cAAc,KAAd,cAAc,GAKzB,EAAA,CAAA,CAAA;;ICLD,IAAY,WA6CX,CAAA;IA7CD,CAAA,UAAY,WAAW,EAAA;IACrB,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;IACjB,IAAA,WAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;IACzB,IAAA,WAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;IACrB,IAAA,WAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;IACnC,IAAA,WAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;IACzB,IAAA,WAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;IACrB,IAAA,WAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;IACrB,IAAA,WAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;IACrB,IAAA,WAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;IACnB,IAAA,WAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;IACzB,IAAA,WAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;IAC/B,IAAA,WAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;IACnB,IAAA,WAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;IAC7B,IAAA,WAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;IAC7B,IAAA,WAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;IACvB,IAAA,WAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;IACnB,IAAA,WAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;IAC7B,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;IACjB,IAAA,WAAA,CAAA,mBAAA,CAAA,GAAA,mBAAuC,CAAA;IACvC,IAAA,WAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC,CAAA;IACzC,IAAA,WAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC,CAAA;IACzC,IAAA,WAAA,CAAA,yBAAA,CAAA,GAAA,yBAAmD,CAAA;IACnD,IAAA,WAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;IAC7B,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;IACjB,IAAA,WAAA,CAAA,mBAAA,CAAA,GAAA,mBAAuC,CAAA;IACvC,IAAA,WAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC,CAAA;IACzC,IAAA,WAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;IACrB,IAAA,WAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;IACzB,IAAA,WAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;IAC7B,IAAA,WAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;IAC7B,IAAA,WAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;IACnC,IAAA,WAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC,CAAA;IACzC,IAAA,WAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;IAC/B,IAAA,WAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;IAC3B,IAAA,WAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;IAC3B,IAAA,WAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;IACzB,IAAA,WAAA,CAAA,sBAAA,CAAA,GAAA,sBAA6C,CAAA;IAC7C,IAAA,WAAA,CAAA,mBAAA,CAAA,GAAA,mBAAuC,CAAA;IACvC,IAAA,WAAA,CAAA,mBAAA,CAAA,GAAA,mBAAuC,CAAA;IACvC,IAAA,WAAA,CAAA,uBAAA,CAAA,GAAA,uBAA+C,CAAA;IAC/C,IAAA,WAAA,CAAA,iCAAA,CAAA,GAAA,iCAAmE,CAAA;IACnE,IAAA,WAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;IAC/B,IAAA,WAAA,CAAA,4BAAA,CAAA,GAAA,4BAAyD,CAAA;IACzD,IAAA,WAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;IAC7B,CAAC,EA7CW,WAAW,KAAX,WAAW,GA6CtB,EAAA,CAAA,CAAA,CAAA;IAED,IAAY,QA4CX,CAAA;IA5CD,CAAA,UAAY,QAAQ,EAAA;IAClB,IAAA,QAAA,CAAA,UAAA,CAAA,GAAA,aAAwB,CAAA;IACxB,IAAA,QAAA,CAAA,YAAA,CAAA,GAAA,yBAAsC,CAAA;IACtC,IAAA,QAAA,CAAA,iBAAA,CAAA,GAAA,gBAAkC,CAAA;IAClC,IAAA,QAAA,CAAA,YAAA,CAAA,GAAA,cAA2B,CAAA;IAC3B,IAAA,QAAA,CAAA,UAAA,CAAA,GAAA,uDAAkE,CAAA;IAClE,IAAA,QAAA,CAAA,UAAA,CAAA,GAAA,IAAe,CAAA;IACf,IAAA,QAAA,CAAA,UAAA,CAAA,GAAA,OAAkB,CAAA;IAClB,IAAA,QAAA,CAAA,SAAA,CAAA,GAAA,yCAAmD,CAAA;IACnD,IAAA,QAAA,CAAA,YAAA,CAAA,GAAA,WAAwB,CAAA;IACxB,IAAA,QAAA,CAAA,eAAA,CAAA,GAAA,4FAA4G,CAAA;IAC5G,IAAA,QAAA,CAAA,SAAA,CAAA,GAAA,iCAA2C,CAAA;IAC3C,IAAA,QAAA,CAAA,cAAA,CAAA,GAAA,UAAyB,CAAA;IACzB,IAAA,QAAA,CAAA,cAAA,CAAA,GAAA,MAAqB,CAAA;IACrB,IAAA,QAAA,CAAA,WAAA,CAAA,GAAA,iBAA6B,CAAA;IAC7B,IAAA,QAAA,CAAA,SAAA,CAAA,GAAA,MAAgB,CAAA;IAChB,IAAA,QAAA,CAAA,cAAA,CAAA,GAAA,UAAyB,CAAA;IACzB,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,iEAA0E,CAAA;IAC1E,IAAA,QAAA,CAAA,mBAAA,CAAA,GAAA,aAAiC,CAAA;IACjC,IAAA,QAAA,CAAA,oBAAA,CAAA,GAAA,eAAoC,CAAA;IACpC,IAAA,QAAA,CAAA,oBAAA,CAAA,GAAA,0CAA+D,CAAA;IAC/D,IAAA,QAAA,CAAA,yBAAA,CAAA,GAAA,oCAA8D,CAAA;IAC9D,IAAA,QAAA,CAAA,cAAA,CAAA,GAAA,eAA8B,CAAA;IAC9B,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,+BAAwC,CAAA;IACxC,IAAA,QAAA,CAAA,mBAAA,CAAA,GAAA,uCAA2D,CAAA;IAC3D,IAAA,QAAA,CAAA,oBAAA,CAAA,GAAA,+CAAoE,CAAA;IACpE,IAAA,QAAA,CAAA,UAAA,CAAA,GAAA,2DAAsE,CAAA;IACtE,IAAA,QAAA,CAAA,YAAA,CAAA,GAAA,0BAAuC,CAAA;IACvC,IAAA,QAAA,CAAA,cAAA,CAAA,GAAA,YAA2B,CAAA;IAC3B,IAAA,QAAA,CAAA,cAAA,CAAA,GAAA,eAA8B,CAAA;IAC9B,IAAA,QAAA,CAAA,iBAAA,CAAA,GAAA,sBAAwC,CAAA;IACxC,IAAA,QAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC,CAAA;IACzC,IAAA,QAAA,CAAA,eAAA,CAAA,GAAA,6BAA6C,CAAA;IAC7C,IAAA,QAAA,CAAA,aAAA,CAAA,GAAA,2CAAyD,CAAA;IACzD,IAAA,QAAA,CAAA,aAAA,CAAA,GAAA,eAA6B,CAAA;IAC7B,IAAA,QAAA,CAAA,YAAA,CAAA,GAAA,iBAA8B,CAAA;IAC9B,IAAA,QAAA,CAAA,sBAAA,CAAA,GAAA,cAAqC,CAAA;IACrC,IAAA,QAAA,CAAA,mBAAA,CAAA,GAAA,oBAAwC,CAAA;IACxC,IAAA,QAAA,CAAA,mBAAA,CAAA,GAAA,4BAAgD,CAAA;IAChD,IAAA,QAAA,CAAA,uBAAA,CAAA,GAAA,8BAAsD,CAAA;IACtD,IAAA,QAAA,CAAA,iCAAA,CAAA,GAAA,iCAAmE,CAAA;IACnE,IAAA,QAAA,CAAA,eAAA,CAAA,GAAA,aAA6B,CAAA;IAC7B,IAAA,QAAA,CAAA,4BAAA,CAAA,GAAA,+CAA4E,CAAA;IAC5E,IAAA,QAAA,CAAA,aAAA,CAAA,GAAA,oBAAkC,CAAA;IACpC,CAAC,EA5CW,QAAQ,KAAR,QAAQ,GA4CnB,EAAA,CAAA,CAAA,CAAA;IAED,IAAY,YAKX,CAAA;IALD,CAAA,UAAY,YAAY,EAAA;IACtB,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;IACnB,IAAA,YAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACf,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;IACnB,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;IACrB,CAAC,EALW,YAAY,KAAZ,YAAY,GAKvB,EAAA,CAAA,CAAA;;IClGD,IAAY,UAYX,CAAA;IAZD,CAAA,UAAY,UAAU,EAAA;IACpB,IAAA,UAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACf,IAAA,UAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACb,IAAA,UAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;IACrB,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;IACjB,IAAA,UAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACb,IAAA,UAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACf,IAAA,UAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACf,IAAA,UAAA,CAAA,sBAAA,CAAA,GAAA,sBAA6C,CAAA;IAC7C,IAAA,UAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;IACrB,IAAA,UAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;IACX,IAAA,UAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC,CAAA;IACnC,CAAC,EAZW,UAAU,KAAV,UAAU,GAYrB,EAAA,CAAA,CAAA;;ICZD;;;;;IAKG;aACa,GAAG,CACjB,MAAW,EACX,WAAmB,EACnB,UAA8B,EAAA;;IAG9B,IAAA,IAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;;QAExC,UAAU,CAAC,KAAK,GAAG,YAAA;YAAU,IAAc,IAAA,GAAA,EAAA,CAAA;iBAAd,IAAc,EAAA,GAAA,CAAA,EAAd,EAAc,GAAA,SAAA,CAAA,MAAA,EAAd,EAAc,EAAA,EAAA;gBAAd,IAAc,CAAA,EAAA,CAAA,GAAA,SAAA,CAAA,EAAA,CAAA,CAAA;;IACzC,QAAA,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAChC,QAAA,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAEhC,IAAI,MAAM,CAAC;YACX,IAAI;;gBAEF,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3C,SAAA;IAAC,QAAA,OAAO,KAAK,EAAE;;IAEd,YAAA,kBAAkB,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACtE,YAAA,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACnC,YAAA,OAAO,CAAC,QAAQ,EAAE,CAAC;IACnB,YAAA,MAAM,KAAK,CAAC;IACb,SAAA;;YAGD,IAAI,MAAM,YAAY,OAAO,EAAE;IAC7B,YAAA,MAAM,GAAG,MAAM;qBACZ,IAAI,CAAC,UAAC,aAAa,EAAA;;IAElB,gBAAA,cAAc,CACZ,MAAM,CAAC,WAAW,CAAC,IAAI,EACvB,WAAW,EACX,IAAI,EACJ,aAAa,CACd,CAAC;IACF,gBAAA,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACnC,gBAAA,OAAO,CAAC,QAAQ,EAAE,CAAC;IACnB,gBAAA,OAAO,aAAa,CAAC;IACvB,aAAC,CAAC;qBACD,KAAK,CAAC,UAAC,KAAK,EAAA;;IAEX,gBAAA,mBAAmB,CACjB,MAAM,CAAC,WAAW,CAAC,IAAI,EACvB,WAAW,EACX,IAAI,EACJ,KAAK,CACN,CAAC;IACF,gBAAA,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACnC,gBAAA,OAAO,CAAC,QAAQ,EAAE,CAAC;IACnB,gBAAA,MAAM,KAAK,CAAC;IACd,aAAC,CAAC,CAAC;IACN,SAAA;IAAM,aAAA;;IAEL,YAAA,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAClE,YAAA,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;gBACnC,OAAO,CAAC,QAAQ,EAAE,CAAC;IACpB,SAAA;IACD,QAAA,OAAO,MAAM,CAAC;IAChB,KAAC,CAAC;IACJ,CAAC;IAED;;;;;;IAMG;IACH,SAAS,aAAa,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAA;QACxD,OAAO,CAAC,GAAG,CACT,uBAAuB,EACvB,oCAAoC,EACpC,UAAU,EACV,SAAS,EACT,WAAW,EACX,UAAU,EACV,SAAS,EACT,IAAI,EACJ,WAAW,EACX,MAAM,CACP,CAAC;IACJ,CAAC;IAED;;;;;;IAMG;IACH,SAAS,kBAAkB,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAA;QAC5D,OAAO,CAAC,GAAG,CACT,uBAAuB,EACvB,oCAAoC,EACpC,UAAU,EACV,SAAS,EACT,WAAW,EACX,UAAU,EACV,SAAS,EACT,IAAI,EACJ,UAAU,EACV,KAAK,CACN,CAAC;IACJ,CAAC;IAED;;;;;;IAMG;IACH,SAAS,cAAc,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAA;QACzD,OAAO,CAAC,GAAG,CACT,wBAAwB,EACxB,oCAAoC,EACpC,UAAU,EACV,SAAS,EACT,WAAW,EACX,UAAU,EACV,SAAS,EACT,IAAI,EACJ,WAAW,EACX,MAAM,CACP,CAAC;IACJ,CAAC;IAED;;;;;;IAMG;IACH,SAAS,mBAAmB,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAA;QAC7D,OAAO,CAAC,GAAG,CACT,wBAAwB,EACxB,oCAAoC,EACpC,UAAU,EACV,SAAS,EACT,WAAW,EACX,UAAU,EACV,SAAS,EACT,IAAI,EACJ,UAAU,EACV,KAAK,CACN,CAAC;IACJ;;ICtJO,IAAMC,QAAM,GAAG,UAAC,MAAW,EAAE,GAAW,EAAA;IAC7C,IAAA,OAAO,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC,CAAC;IAEK,IAAMC,SAAO,GAAG,UAAC,KAAU,EAAA;QAChC,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE;IACzD,QAAA,OAAO,IAAI,CAAC;IACb,KAAA;IAAM,SAAA,IACL,KAAK;YACL,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC;YAC/B,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,SAAS,EACjD;IACA,QAAA,OAAO,IAAI,CAAC;IACb,KAAA;IAAM,SAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;IAC/B,QAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;IACtB,YAAA,OAAO,IAAI,CAAC;IACb,SAAA;IAAM,aAAA;IACL,YAAA,OAAO,KAAK,CAAC;IACd,SAAA;IACF,KAAA;IAAM,SAAA;IACL,QAAA,OAAO,KAAK,CAAC;IACd,KAAA;IACH,CAAC,CAAC;IAEK,IAAMC,YAAU,GAAG,UAAC,KAAU,EAAA;IACnC,IAAA,OAAO,CAACD,SAAO,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC,CAAC;IAEK,IAAME,uBAAqB,GAAG,UAAC,KAAU,EAAA;IAC9C;;;IAGG;IACH,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;IACxB,QAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;IACpB,YAAA,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAClB,SAAA;IAAM,aAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC7B,KAAK,GAAG,EAAE,CAAC;IACZ,SAAA;IACF,KAAA;IAED,IAAA,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEK,IAAMC,gBAAc,GAAG,UAAC,GAAQ,EAAE,GAAW,EAAA;QAClD,OAAOD,uBAAqB,CAACE,sBAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC;IAEK,IAAM,YAAY,GAAG,UAAC,SAAgB,EAAA;IAC3C,IAAA,OAAO,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC;IAChC,CAAC;;IC3CM,IAAML,QAAM,GAAG,UAAC,MAAW,EAAE,GAAW,EAAA;IAC7C,IAAA,OAAO,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC,CAAC;IAEK,IAAM,OAAO,GAAG,UAAC,MAAW,EAAE,IAAY,EAAA;QAC/C,OAAOM,qBAAC,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEK,IAAM,aAAa,GAAG,UAAC,KAAa,EAAA;QACzC,OAAO,KAAK,KAAK,EAAE,CAAC;IACtB,CAAC,CAAC;IACK,IAAM,WAAW,GAAG,UAAC,KAAU,EAAA;QACpC,OAAO,KAAK,KAAK,SAAS,CAAC;IAC7B,CAAC,CAAC;IACK,IAAM,MAAM,GAAG,UAAC,KAAU,EAAA;QAC/B,OAAO,KAAK,KAAK,IAAI,CAAC;IACxB,CAAC,CAAC;IACK,IAAM,aAAa,GAAG,UAAC,MAAW,EAAA;IACvC,IAAA,QACE,MAAM;YACN,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC;YAChC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,SAAS,EAClD;IACJ,CAAC,CAAC;IACK,IAAM,YAAY,GAAG,UAAC,GAAU,EAAA;IACrC,IAAA,OAAO,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC;IAC1B,CAAC,CAAC;IAEK,IAAM,OAAO,GAAG,UAAC,KAAU,EAAA;IAChC,IAAA,IAAI,aAAa,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;IAC/D,QAAA,OAAO,IAAI,CAAC;IACb,KAAA;IAAM,SAAA,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE;IAC/B,QAAA,OAAO,IAAI,CAAC;IACb,KAAA;IAAM,SAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;IAC/B,QAAA,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE;IACvB,YAAA,OAAO,IAAI,CAAC;IACb,SAAA;IAAM,aAAA;IACL,YAAA,OAAO,KAAK,CAAC;IACd,SAAA;IACF,KAAA;IAAM,SAAA;IACL,QAAA,OAAO,KAAK,CAAC;IACd,KAAA;IACH,CAAC,CAAC;IAEK,IAAM,UAAU,GAAG,UAAC,KAAU,EAAA;IACnC,IAAA,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC,CAAC;IAEK,IAAM,0BAA0B,GAAG,UAAC,KAAU,EAAA;QACnD,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC,CAAC;IAEK,IAAM,6BAA6B,GAAG,UAAC,KAAU,EAAA;IACtD,IAAA,OAAO,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC,CAAC;IAEK,IAAM,qBAAqB,GAAG,UAAC,KAAU,EAAA;IAC9C;;;IAGG;IACH,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;IACxB,QAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;IACpB,YAAA,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAClB,SAAA;IAAM,aAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC7B,KAAK,GAAG,EAAE,CAAC;IACZ,SAAA;IACF,KAAA;IAAM,SAAA;YACL,KAAK,GAAG,EAAE,CAAC;IACZ,KAAA;IAED,IAAA,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEK,IAAM,cAAc,GAAG,UAAC,GAAQ,EAAE,GAAW,EAAA;QAClD,OAAO,qBAAqB,CAACD,sBAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC;IAEK,IAAM,aAAa,GAAG,UAC3B,GAAW,EACX,IAAY,EACZ,OAAe,EAAA;IAEf,IAAA,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC,CAAC;IAEK,IAAM,gBAAgB,GAAG,UAAC,KAAU,EAAE,IAAY,EAAE,KAAU,EAAA;QACnE,OAAOC,qBAAC,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC,CAAC;IAEK,IAAM,gBAAgB,GAAG,UAC9B,MAAW,EACX,IAAY,EACZ,KAAU,EAAA;QAEV,OAAOA,qBAAC,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC,CAAC;IAEK,IAAM,WAAW,GAAG,UAAC,KAAa,EAAE,UAAe,EAAA;IACxD,IAAA,IAAM,SAAS,GAAe,KAAK,CAAC,IAAI,CAAC;IACzC,IAAA,IAAI,KAAU,CAAC;IAEf,IAAA,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE;IAC1B,QAAA,QAAQ,SAAS;gBACf,KAAK,UAAU,CAAC,IAAI;oBAClB,IAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxC,gBAAA,KAAK,GAAG,IAAIC,UAAM,CAChB,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBACpB,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACxB,gBAAA,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;qBACrB,CAAC;oBACF,MAAM;gBACR,KAAK,UAAU,CAAC,KAAK;oBACnB,IAAM,UAAU,GAAG,KAAoB,CAAC;oBACxC,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,UAAC,IAAS,EAAA;IACxC,oBAAA,OAAO,IAAI,CAAC,KAAK,KAAK,UAAU,CAAC;IACnC,iBAAC,CAAC,CAAC;oBACH,MAAM;gBACR,KAAK,UAAU,CAAC,QAAQ;IACtB,gBAAA,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;oBAC5B,MAAM;IACR,YAAA;oBACE,KAAK,GAAG,UAAU,CAAC;oBACnB,MAAM;IACT,SAAA;IACF,KAAA;IAAM,SAAA;YACL,KAAK,GAAG,UAAU,CAAC;IACpB,KAAA;IAED,IAAA,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEK,IAAM,aAAa,GAAG,UAAC,KAAa,EAAA;IACzC,IAAA,IAAM,SAAS,GAAe,KAAK,CAAC,IAAI,CAAC;IACzC,IAAA,IAAI,KAAU,CAAC;IAEf,IAAA,QAAQ,SAAS;YACf,KAAK,UAAU,CAAC,QAAQ;gBACtB,KAAK,GAAG,KAAK,CAAC;gBACd,MAAM;YACR,KAAK,UAAU,CAAC,MAAM;gBACpB,KAAK,GAAG,IAAI,CAAC;gBACb,MAAM;YACR,KAAK,UAAU,CAAC,IAAI;gBAClB,KAAK,GAAG,IAAI,CAAC;gBACb,MAAM;IACR,QAAA;gBACE,KAAK,GAAG,EAAE,CAAC;gBACX,MAAM;IACT,KAAA;IAED,IAAA,OAAO,KAAK,CAAC;IACf,CAAC;;IC/JD,IAAAC,WAAA,kBAAA,YAAA;QAIE,SAAY,SAAA,CAAA,SAAiB,EAAE,YAAiB,EAAA;IAC9C,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC5B,QAAA,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;SACnC;IAEO,IAAA,SAAA,CAAA,SAAA,CAAA,SAAS,GAAT,UAAU,SAAiB,EAAE,sBAA8B,EAAA;YACjE,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG,EAAA;IAC9C,YAAA,SAAS,GAAG,aAAa,CAAC,SAAS,EAAE,GAAG,EAAE,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC;IACzE,SAAC,CAAC,CAAC;IAEH,QAAA,OAAO,SAAS,CAAC;SAClB,CAAA;QAEO,SAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAe,SAAiB,EAAA;IACtC,QAAA,OAAO,SAAS,CAAC,OAAO,CAAC,+BAA+B,EAAE,UAAC,KAAK,EAAA;IAC9D,YAAA,QAAQ,KAAK;IACX,gBAAA,KAAK,KAAK;IACR,oBAAA,OAAO,IAAI,CAAC;IACd,gBAAA,KAAK,IAAI;IACP,oBAAA,OAAO,IAAI,CAAC;IACd,gBAAA,KAAK,KAAK;IACR,oBAAA,OAAO,GAAG,CAAC;IACb,gBAAA,KAAK,KAAK;IACR,oBAAA,OAAO,GAAG,CAAC;IACb,gBAAA,KAAK,MAAM;IACT,oBAAA,OAAO,IAAI,CAAC;IACd,gBAAA,KAAK,KAAK;IACR,oBAAA,OAAO,IAAI,CAAC;IACd,gBAAA,KAAK,MAAM;IACT,oBAAA,OAAO,IAAI,CAAC;IACd,gBAAA;IACE,oBAAA,OAAO,KAAK,CAAC;IAChB,aAAA;IACH,SAAC,CAAC,CAAC;SACJ,CAAA;IAGD,IAAA,SAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACE,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACtE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAEvD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC9B,CAAA;QACF,OAAA,SAAA,CAAA;IAAA,CAAA,EAAA,CAAA,CAAA;IANC,UAAA,CAAA;QADC,GAAG;KAMH,EAAAA,WAAA,CAAA,SAAA,EAAA,UAAA,EAAA,IAAA,CAAA;;IC5CH,IAAAC,SAAA,kBAAA,YAAA;IASE,IAAA,SAAA,OAAA,CACE,MAAe,EACf,KAAa,EACb,WAAgB,EAChB,YAAiB,EACjB,QAAa,EACb,gBAAqB,EACrB,UAAoB,EAAA;IAEpB,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACtB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACpB,QAAA,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IAChC,QAAA,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;IAClC,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC1B,QAAA,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;IAC1C,QAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;SAC/B;IAGK,IAAA,OAAA,CAAA,SAAA,CAAA,OAAO,GAAP,YAAA;;;;IACE,gBAAA,SAAS,GAAG,IAAID,WAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACrE,gBAAA,aAAa,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;IAE3C,gBAAA,IAAI,aAAa,EAAE;wBACjB,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,WAAW,CACrB,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,iBAAiB,CACvB,CAAC,CAAA;IACH,iBAAA;;;IACF,SAAA,CAAA,CAAA;SAAA,CAAA;QACF,OAAA,OAAA,CAAA;IAAA,CAAA,EAAA,CAAA,CAAA;IAdC,UAAA,CAAA;QADC,GAAG;KAcH,EAAAC,SAAA,CAAA,SAAA,EAAA,SAAA,EAAA,IAAA,CAAA;;IC9CH,IAAY,QAIX,CAAA;IAJD,CAAA,UAAY,QAAQ,EAAA;IAClB,IAAA,QAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC,CAAA;IACzC,IAAA,QAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;IAC3B,IAAA,QAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;IAC/B,CAAC,EAJW,QAAQ,KAAR,QAAQ,GAInB,EAAA,CAAA,CAAA;;ICJD,IAAY,UASX,CAAA;IATD,CAAA,UAAY,UAAU,EAAA;IACpB,IAAA,UAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;IAC7B,IAAA,UAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;IACvB,IAAA,UAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC,CAAA;IACzC,IAAA,UAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC,CAAA;IACjC,IAAA,UAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;IACnC,IAAA,UAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;IACzB,IAAA,UAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;IAC3B,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;IACnB,CAAC,EATW,UAAU,KAAV,UAAU,GASrB,EAAA,CAAA,CAAA,CAAA;IAED,IAAY,mBAGX,CAAA;IAHD,CAAA,UAAY,mBAAmB,EAAA;IAC7B,IAAA,mBAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;IAC/B,IAAA,mBAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;IACrC,CAAC,EAHW,mBAAmB,KAAnB,mBAAmB,GAG9B,EAAA,CAAA,CAAA;;ICID,IAAAC,SAAA,kBAAA,YAAA;IAiCE,IAAA,SAAA,OAAA,CACE,KAAa,EACb,QAAa,EACb,gBAAqB,EACrB,YAAiB,EAAA;IAEjB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACpB,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC1B,QAAA,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;IAC1C,QAAA,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;SACnC;IAzCD,IAAA,MAAA,CAAA,cAAA,CAAI,OAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IAAZ,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,SAAS,CAAC;aACvB;IACD,QAAA,GAAA,EAAA,UAAa,KAAU,EAAA;IACrB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;aACxB;;;IAHA,KAAA,CAAA,CAAA;IAMD,IAAA,MAAA,CAAA,cAAA,CAAI,OAAgB,CAAA,SAAA,EAAA,kBAAA,EAAA;IAApB,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,iBAAiB,CAAC;aAC/B;IACD,QAAA,GAAA,EAAA,UAAqB,KAAU,EAAA;IAC7B,YAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;aAChC;;;IAHA,KAAA,CAAA,CAAA;IAMD,IAAA,MAAA,CAAA,cAAA,CAAI,OAAY,CAAA,SAAA,EAAA,cAAA,EAAA;IAAhB,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,aAAa,CAAC;aAC3B;IACD,QAAA,GAAA,EAAA,UAAiB,KAAU,EAAA;IACzB,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;aAC5B;;;IAHA,KAAA,CAAA,CAAA;IAMD,IAAA,MAAA,CAAA,cAAA,CAAI,OAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IAAT,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,MAAM,CAAC;aACpB;IACD,QAAA,GAAA,EAAA,UAAU,KAAa,EAAA;IACrB,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;aACrB;;;IAHA,KAAA,CAAA,CAAA;QAiBO,OAAuB,CAAA,SAAA,CAAA,uBAAA,GAAvB,UAAwB,IAAY,EAAA;YAC1C,IAAI,KAAK,GAAQ,EAAE,CAAC;IACpB,QAAA,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE;gBACpB,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC3C,SAAA;IAAM,aAAA;IACL,YAAA,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpC,SAAA;IACD,QAAA,OAAO,KAAK,CAAC;SACd,CAAA;QAEO,OAAoB,CAAA,SAAA,CAAA,oBAAA,GAApB,UAAqB,IAAY,EAAA;IACvC,QAAA,IAAI,KAAU,CAAC;YACf,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC7C,QAAA,OAAO,KAAK,CAAC;SACd,CAAA;QACO,OAA4B,CAAA,SAAA,CAAA,4BAAA,GAA5B,UAA6B,IAAY,EAAA;IAC/C,QAAA,IAAI,KAAU,CAAC;YACf,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;IACrD,QAAA,OAAO,KAAK,CAAC;SACd,CAAA;QACO,OAAwB,CAAA,SAAA,CAAA,wBAAA,GAAxB,UAAyB,IAAY,EAAA;IAC3C,QAAA,IAAI,KAAU,CAAC;YACf,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IACjD,QAAA,OAAO,KAAK,CAAC;SACd,CAAA;IACO,IAAA,OAAA,CAAA,SAAA,CAAA,0BAA0B,GAA1B,UACN,IAAyB,EACzB,GAAW,EAAA;YAEX,IAAI,KAAK,GAAQ,EAAE,CAAC;IACpB,QAAA,QAAQ,IAAI;gBACV,KAAK,mBAAmB,CAAC,aAAa;oBACpC,KAAK,GAAG,6BAA6B,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9D,sBAAE,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC;0BACzB,EAAE,CAAC;oBACP,MAAM;gBACR,KAAK,mBAAmB,CAAC,eAAe;oBACtC,KAAK,GAAG,6BAA6B,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChE,sBAAE,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC;0BAC3B,EAAE,CAAC;oBACP,MAAM;IACR,YAAA;oBACE,KAAK,GAAG,EAAE,CAAC;oBACX,MAAM;IACT,SAAA;IACD,QAAA,OAAO,KAAK,CAAC;SACd,CAAA;QAGD,OAAkB,CAAA,SAAA,CAAA,kBAAA,GAAlB,UAAmB,MAAe,EAAA;YAChC,IAAI,KAAK,GAAQ,EAAE,CAAC;YAEpB,QAAQ,MAAM,CAAC,GAAG;gBAChB,KAAK,UAAU,CAAC,YAAY;oBAC1B,KAAK,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACxD,MAAM;gBACR,KAAK,UAAU,CAAC,SAAS;oBACvB,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACrD,MAAM;gBACR,KAAK,UAAU,CAAC,cAAc;oBAC5B,KAAK,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACzD,MAAM;gBACR,KAAK,UAAU,CAAC,kBAAkB;oBAChC,KAAK,GAAG,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC7D,MAAM;gBACR,KAAK,UAAU,CAAC,eAAe;oBAC7B,KAAK,GAAG,IAAI,CAAC,0BAA0B,CACrC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,EAChC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAChC,CAAC;oBACF,MAAM;gBACR,KAAK,UAAU,CAAC,UAAU;IACxB,gBAAA,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;oBACrB,MAAM;IACR,YAAA;oBACE,KAAK,GAAG,EAAE,CAAC;oBACX,MAAM;IACT,SAAA;IAED,QAAA,OAAO,KAAK,CAAC;SACd,CAAA;IAEO,IAAA,OAAA,CAAA,SAAA,CAAA,qBAAqB,GAArB,UAAsB,IAAY,EAAE,KAAU,EAAA;IACpD,QAAA,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;SAC1D,CAAA;IACO,IAAA,OAAA,CAAA,SAAA,CAAA,kBAAkB,GAAlB,UAAmB,IAAY,EAAE,KAAU,EAAA;IACjD,QAAA,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;SAChE,CAAA;IACO,IAAA,OAAA,CAAA,SAAA,CAAA,sBAAsB,GAAtB,UAAuB,IAAY,EAAE,KAAU,EAAA;IACrD,QAAA,IAAI,CAAC,aAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;SACxE,CAAA;IACO,IAAA,OAAA,CAAA,SAAA,CAAA,0BAA0B,GAA1B,UAA2B,IAAY,EAAE,KAAU,EAAA;IACzD,QAAA,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CACvC,IAAI,CAAC,iBAAiB,EACtB,IAAI,EACJ,KAAK,CACN,CAAC;SACH,CAAA;IACO,IAAA,OAAA,CAAA,SAAA,CAAA,wBAAwB,GAAxB,UAAyB,IAAY,EAAE,GAAW,EAAE,KAAU,EAAA;IACpE,QAAA,QAAQ,IAAI;gBACV,KAAK,mBAAmB,CAAC,aAAa;IACpC,gBAAA,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;oBACjC,MAAM;gBACR,KAAK,mBAAmB,CAAC,eAAe;IACtC,gBAAA,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;oBACnC,MAAM;IACR,YAAA;oBACE,MAAM;IACT,SAAA;SACF,CAAA;IAGK,IAAA,OAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,UAAiB,MAAe,EAAE,KAAU,EAAA;;;;;;4BACxC,EAAA,GAAA,MAAM,CAAC,GAAG,CAAA;;IACX,4BAAA,KAAA,UAAU,CAAC,YAAY,EAAvB,OAAuB,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;IAGvB,4BAAA,KAAA,UAAU,CAAC,SAAS,EAApB,OAAoB,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;IAGpB,4BAAA,KAAA,UAAU,CAAC,cAAc,EAAzB,OAAyB,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;IAMzB,4BAAA,KAAA,UAAU,CAAC,kBAAkB,EAA7B,OAA6B,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;IAM7B,4BAAA,KAAA,UAAU,CAAC,eAAe,EAA1B,OAA0B,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;;;;IAjB7B,wBAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;4BACnE,OAAM,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;;IAEN,wBAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;4BACnE,OAAM,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;;IAEN,wBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,sBAAsB,CAC9C,MAAM,CAAC,KAAK,CAAC,IAAI,EACjB,KAAK,CACN,CAAC;4BACF,OAAM,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;;IAEN,wBAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,0BAA0B,CACtD,MAAM,CAAC,KAAK,CAAC,IAAI,EACjB,KAAK,CACN,CAAC;4BACF,OAAM,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;gCAEN,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,wBAAwB,CACjC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,EAChC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,EAC/B,KAAK,CACN,CAAA,CAAA;;IAJD,wBAAA,EAAA,CAAA,IAAA,EAIC,CAAC;4BACF,OAAM,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;gCAEN,OAAM,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;;;;IAEX,SAAA,CAAA,CAAA;SAAA,CAAA;QACF,OAAA,OAAA,CAAA;IAAA,CAAA,EAAA,CAAA,CAAA;IA9FC,UAAA,CAAA;QADC,GAAG;KAgCH,EAAAA,SAAA,CAAA,SAAA,EAAA,oBAAA,EAAA,IAAA,CAAA,CAAA;IAgCD,UAAA,CAAA;QADC,GAAG;KA+BH,EAAAA,SAAA,CAAA,SAAA,EAAA,kBAAA,EAAA,IAAA,CAAA;;IC1LH,IAAAC,OAAA,kBAAA,YAAA;QAOE,SACE,KAAA,CAAA,KAAmB,EACnB,KAAa,EACb,QAAa,EACb,gBAAqB,EACrB,YAAiB,EAAA;IAEjB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACpB,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC1B,QAAA,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;IAC1C,QAAA,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;IAClC,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;SACrB;QAGO,KAAQ,CAAA,SAAA,CAAA,QAAA,GAAR,UAAS,IAAW,EAAA;IAC1B,QAAA,IAAI,QAAQ,GAAc,IAAI,CAAC,GAAG,CAAC;YACnC,IAAI,oBAAoB,GAAY,KAAK,CAAC;YAE1C,IAAM,MAAM,GAAG,IAAID,SAAO,CACxB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,aAAa,CACnB,CAAC;IAEF,QAAA,QAAQ,QAAQ;gBACd,KAAK,QAAQ,CAAC,kBAAkB;oBAC9B,IAAM,oBAAoB,GAAG,IAA6B,CAAC;IAC3D,gBAAA,IAAM,0BAA0B,GAAG,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC;IACrE,gBAAA,IAAM,wBAAwB,GAAG,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC;IAEjE,gBAAA,QAAQ,0BAA0B;wBAChC,KAAK,UAAU,CAAC,cAAc;4BAC5B,oBAAoB,GAAG,OAAO,CAC5B,IAAI,CAAC,aAAa,EAClB,wBAAwB,CACzB,CAAC;4BACF,MAAM;wBACR,KAAK,UAAU,CAAC,SAAS;4BACvB,oBAAoB,GAAG,OAAO,CAC5B,IAAI,CAAC,SAAS,EACd,wBAAwB,CACzB,CAAC;4BACF,MAAM;wBACR,KAAK,UAAU,CAAC,kBAAkB;4BAChC,oBAAoB,GAAG,OAAO,CAC5B,IAAI,CAAC,iBAAiB,EACtB,wBAAwB,CACzB,CAAC;4BACF,MAAM;wBACR,KAAK,UAAU,CAAC,YAAY;4BAC1B,oBAAoB,GAAG,OAAO,CAC5B,IAAI,CAAC,MAAM,EACX,wBAAwB,CACzB,CAAC;4BACF,MAAM;IACR,oBAAA;4BACE,oBAAoB,GAAG,KAAK,CAAC;4BAC7B,MAAM;IACT,iBAAA;oBACD,MAAM;gBACR,KAAK,QAAQ,CAAC,WAAW;oBACvB,IAAM,cAAc,GAAG,IAAuB,CAAC;oBAC/C,IAAM,oBAAoB,GAAY,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;oBACxE,IAAM,mBAAmB,GACvB,MAAM,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;oBAElD,IAAI,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,WAAW,CAAC,MAAM,EAAE;IAC3D,oBAAA,IAAI,EAAE,GAAG,IAAI,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3D,iBAAA;IAAM,qBAAA;IACL,oBAAA,IAAI,EAAE,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IACjE,iBAAA;IAED,gBAAA,oBAAoB,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;oBACpD,MAAM;gBACR,KAAK,QAAQ,CAAC,YAAY;oBACxB,IAAM,eAAe,GAAG,IAAwB,CAAC;oBACjD,IAAM,4BAA4B,GAChC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;oBAC7C,IAAM,6BAA6B,GACjC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;oBAE9C,IAAM,aAAa,GAAG,MAAM,CAAC,kBAAkB,CAC7C,6BAA6B,CAC9B,CAAC;oBACF,IAAM,YAAY,GAAG,MAAM,CAAC,kBAAkB,CAC5C,4BAA4B,CAC7B,CAAC;IAEF,gBAAA,oBAAoB,GAAG,aAAa,KAAK,YAAY,CAAC;oBACtD,MAAM;IACR,YAAA;oBACE,MAAM;IACT,SAAA;IAED,QAAA,OAAO,oBAAoB,CAAC;SAC7B,CAAA;IAGM,IAAA,KAAA,CAAA,SAAA,CAAA,OAAO,GAAP,YAAA;;YACL,IAAI,sBAAsB,GAAG,EAAE,CAAC;;gBAEhC,KAAmB,IAAA,KAAA,QAAA,CAAA,IAAI,CAAC,MAAM,CAAA,gBAAA,EAAE,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA;IAA3B,gBAAA,IAAM,IAAI,GAAA,EAAA,CAAA,KAAA,CAAA;oBACb,IAAM,oBAAoB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBAEjD,sBAAsB,GAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACjB,sBAAsB,CAAA,YACzB,EAAC,CAAA,IAAI,CAAC,EAAE,CAAA,GAAG,oBAAoB,EAAA,EAAA,EAChC,CAAC;IACH,aAAA;;;;;;;;;IAED,QAAA,OAAO,sBAAsB,CAAC;SAC/B,CAAA;QACF,OAAA,KAAA,CAAA;IAAA,CAAA,EAAA,CAAA,CAAA;IAnGC,UAAA,CAAA;QADC,GAAG;KAmFH,EAAAC,OAAA,CAAA,SAAA,EAAA,UAAA,EAAA,IAAA,CAAA,CAAA;IAGD,UAAA,CAAA;QADC,GAAG;KAcH,EAAAA,OAAA,CAAA,SAAA,EAAA,SAAA,EAAA,IAAA,CAAA;;IC9HH,IAAA,QAAA,kBAAA,YAAA;QAOE,SACE,QAAA,CAAA,KAAa,EACb,YAAiB,EACjB,QAAa,EACb,gBAAqB,EACrB,UAAoB,EAAA;IAEpB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACpB,QAAA,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;IAClC,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC1B,QAAA,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;IAC1C,QAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;SAC/B;IAGK,IAAA,QAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;;;;;;;4BAGE,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;4BAE9C,WAAW,GAAG,CAAC,CAAC;;;;4BACD,SAAA,GAAA,QAAA,CAAA,OAAO,CAAA,EAAA,WAAA,GAAA,SAAA,CAAA,IAAA,EAAA,CAAA;;;;4BAAjB,MAAM,GAAA,WAAA,CAAA,KAAA,CAAA;IACP,wBAAA,SAAA,GAAU,IAAID,SAAO,CACzB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,aAAa,CACnB,CAAC;IACI,wBAAA,KAAK,GAAG,SAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;;IAEjD,wBAAA,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAC5B,IAAI,CAAC,MAAM,EACX,4BAA0B,WAAW,GAAA,SAAS,EAC9C,KAAK,CACN,CAAC;IAEI,wBAAA,UAAU,GAAgB,MAAM,CAAC,UAAU,CAAC;IAE5C,wBAAA,QAAQ,GAAoB,UAAU,CAAC,QAAQ,CAAC;IAChD,wBAAA,KAAK,GAAiB,UAAU,CAAC,KAAK,CAAC;IACvC,wBAAA,OAAO,GAAmB,UAAU,CAAC,OAAO,CAAC;4BAE7C,YAAY,GAAG,IAAIC,OAAK,CAC5B,KAAK,EACL,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,aAAa,CACnB,CAAC,OAAO,EAAE,CAAC;;;;4BAEO,SAAA,IAAA,GAAA,GAAA,KAAA,CAAA,EAAA,QAAA,CAAA,OAAO,CAAA,CAAA,EAAA,WAAA,GAAA,SAAA,CAAA,IAAA,EAAA,CAAA;;;;4BAAjB,MAAM,GAAA,WAAA,CAAA,KAAA,CAAA;IACP,wBAAA,mBAAmB,GAAG,IAAIH,WAAS,CACvC,MAAM,CAAC,SAAS,EAChB,YAAY,CACb,CAAC,QAAQ,EAAE,CAAC;IAET,wBAAA,IAAA,CAAA,mBAAmB,EAAnB,OAAmB,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;4BACf,SAAU,GAAA,IAAIC,SAAO,CACzB,MAAM,EACN,IAAI,CAAC,MAAM,EACX,YAAY,EACZ,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,WAAW,CACjB,CAAC;IAEF,wBAAA,OAAA,CAAA,CAAA,YAAM,SAAO,CAAC,OAAO,EAAE,CAAA,CAAA;;IAAvB,wBAAA,EAAA,CAAA,IAAA,EAAuB,CAAC;;;;;;;;;;;;;;;;;IAI5B,wBAAA,WAAW,EAAE,CAAC;;;;;;;;;;;;;;;;;4BAGhB,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;IAE/C,wBAAA,IAAIR,SAAO,CAAC,YAAY,CAAC,EAAE;IACzB,4BAAA,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3C,yBAAA;IAED,wBAAA,OAAA,CAAA,CAAA,aAAO,YAAY,CAAC,CAAA;;;IACrB,SAAA,CAAA,CAAA;SAAA,CAAA;QACF,OAAA,QAAA,CAAA;IAAA,CAAA,EAAA,CAAA,CAAA;IAnEC,UAAA,CAAA;QADC,GAAG;KAmEH,EAAA,QAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,IAAA,CAAA;;IChGI,IAAM,gBAAgB,GAAG,UAAC,MAAa,EAAE,GAAW,EAAA;IACzD,IAAA,IAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,UAAC,KAAK,EAAA;IAC9B,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE;IACrB,YAAA,OAAO,KAAK,CAAC;IACd,SAAA;IACH,KAAC,CAAC,CAAC;IAEH,IAAA,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEK,IAAM,qBAAqB,GAAG,UAAC,MAAa,EAAE,GAAW,EAAA;IAC9D,IAAA,IAAI,UAAkB,CAAC;IAEvB,IAAA,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,UAAC,CAAM,EAAA;IACnC,QAAA,OAAO,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC;IACvB,KAAC,CAAC,CAAC;IAEH,IAAA,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;IAEK,IAAM,kCAAkC,GAAG,UAChD,KAAU,EACV,UAAe,EACf,SAAc,EAAA,EACE,OAAA,SAAA,CAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;;;;;oBACV,gBAAgB,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;oBAI7D,IAAI,UAAU,CAAC,0BAA0B,EAAE;IACnC,oBAAA,OAAO,GAAG,gBAAgB,CAAC,KAAK,CACpC,UAAU,CAAC,0BAA0B,CACtC,CAAC,CAAC,CAAC,CAAC;IACL,oBAAA,OAAO,GAAG,UAAU,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACpD,iBAAA;IAAM,qBAAA;IACL,oBAAA,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;IAC9B,iBAAA;;IAGD,gBAAA,IAAI,CAAC,OAAO;wBAAE,OAAO,CAAA,CAAA,YAAA,CAAA;IAGJ,gBAAA,OAAA,CAAA,CAAA,YAAM,KAAK,CAAC,OAAO,CAAC,CAAA,CAAA;;IAA/B,gBAAA,QAAQ,GAAG,EAAoB,CAAA,IAAA,EAAA,CAAA;IACxB,gBAAA,OAAA,CAAA,CAAA,YAAM,QAAQ,CAAC,IAAI,EAAE,CAAA,CAAA;;IAA5B,gBAAA,IAAI,GAAG,EAAqB,CAAA,IAAA,EAAA,CAAA;;IAGlC,gBAAA,OAAA,CAAA,CAAA,aAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAA;;;KAC/B,CAAA,CAAA,EAAA,CAAC;IAEK,IAAM,mCAAmC,GAAG,UACjD,KAAU,EACV,UAAe,EACf,SAAc,EAAA;IAEd,IAAA,IAAI,OAAY,CAAC;IAEjB,IAAA,IAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;IAEvD,IAAA,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE;YAClC,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;IAC1C,KAAA;IAED,IAAA,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEK,IAAM,uBAAuB,GAAG,UACrC,OAA2C,EAAA;IAE3C,IAAA,OAAO,OAAO,CAAC,GAAG,CAAC,UAAC,EAAS,EAAA;IAAP,QAAA,IAAA,KAAK,GAAA,EAAA,CAAA,KAAA,CAAA;IAAO,QAAA,OAAA,KAAK,CAAA;IAAL,KAAK,CAAC,CAAC;IAC3C,CAAC,CAAC;IAEc,SAAA,mBAAmB,CAAC,KAAU,EAAE,KAAU,EAAA;IACxD,IAAA,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;IACtB,IAAA,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;;;;;;;;;IAWpB,IAAA,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,IAAM,UAAU,GAAG,UACxB,KAAU,EACV,OAA0C,EAAA;IAE1C,IAAA,IAAM,kBAAkB,GAAG,UACzB,QAA6C,EAC7C,OAA0C,EAAA;IAE1C,QAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,UAAC,YAA+C,EAAA;IACnE,YAAA,QACE,YAAY,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI;IAClC,gBAAA,YAAY,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,EACxC;IACJ,SAAC,CAAC,CAAC;IACL,KAAC,CAAC;IAEF,IAAA,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;IAEvB,IAAA,IAAID,QAAM,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE;YAC7B,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,EAAE;IACnD,YAAA,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;oBACrB,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,OAAO,EAAE,OAAO,CAAC,OAAO;IACzB,aAAA,CAAC,CAAC;IACJ,SAAA;IACF,KAAA;IAAM,SAAA;IACL,QAAA,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACxE,KAAA;IAED,IAAA,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IACK,IAAM,aAAa,GAAG,UAC3B,KAAU,EACV,OAA0C,EAAA;IAE1C,IAAA,KAAK,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,UAAU,YAAY,EAAA;IACjE,QAAA,OAAO,YAAY,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC;IAC5C,KAAC,CAAC,CAAC;IAEH,IAAA,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEI,SAAU,aAAa,CAC3B,MAAW,EACX,MAAW,EACX,GAAW,EACX,KAAc,EAAA;IAEd,IAAA,IAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,UAAC,KAAU,EAAA;IAC7C,QAAA,OAAO,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC;IAC3B,KAAC,CAAC,CAAC;IAEH,IAAA,IAAM,gBAAgB,GAAG,UAAC,KAAU,EAAE,MAAW,EAAA;IAC/C,QAAA,IAAM,eAAe,GAAG,UAAC,UAAkB,EAAE,SAAiB,EAAA;gBAC5D,IAAI,YAAY,GAAW,EAAE,CAAC;IAE9B,YAAA,QAAQ,SAAS;IACf,gBAAA,KAAK,UAAU;wBACb,YAAY,GAAM,UAAU,GAAA,eAAe,CAAC;wBAC5C,MAAM;IACR,gBAAA,KAAK,OAAO;wBACV,YAAY,GAAM,UAAU,GAAA,0BAA0B,CAAC;wBACvD,MAAM;IACR,gBAAA,KAAK,KAAK;wBACR,YAAY,GAAM,UAAU,GAAoC,mCAAA,GAAA,KAAK,CAAC,UAAU,CAAC,GAAK,CAAC;wBACvF,MAAM;IACR,gBAAA,KAAK,WAAW;wBACd,YAAY,GAAM,UAAU,GAA+C,8CAAA,GAAA,KAAK,CAAC,UAAU,CAAC,SAAW,CAAC;wBACxG,MAAM;IACR,gBAAA,KAAK,KAAK;wBACR,YAAY,GAAM,UAAU,GAAoC,mCAAA,GAAA,KAAK,CAAC,UAAU,CAAC,SAAW,CAAC;wBAC7F,MAAM;IACR,gBAAA,KAAK,WAAW;wBACd,YAAY,GAAM,UAAU,GAA+C,8CAAA,GAAA,KAAK,CAAC,UAAU,CAAC,SAAW,CAAC;wBACxG,MAAM;IACR,gBAAA,KAAK,UAAU;wBACb,YAAY,GAAM,UAAU,GAAA,iBAAiB,CAAC;wBAC9C,MAAM;IACR,gBAAA,KAAK,SAAS;wBACZ,YAAY,GAAM,UAAU,GAAA,0BAA0B,CAAC;wBACvD,MAAM;IACR,gBAAA;IACE,oBAAA,YAAY,GAAM,UAAU,GAAK,IAAA,GAAA,SAAW,CAAC;wBAC7C,MAAM;IACT,aAAA;IAED,YAAA,OAAO,YAAY,CAAC;IACtB,SAAC,CAAC;YAEF,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAC,KAAK,EAAA;IAChC,YAAA,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE;IACxB,gBAAA,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC;IAC7C,aAAA,CAAC,CAAC;IACL,SAAC,CAAC,CAAC;IAEH,QAAA,OAAO,KAAK,CAAC;IACf,KAAC,CAAC;IAEF,IAAA,IAAI,KAAK,EAAE;IACT,QAAA,MAAM,CAAC,UAAU,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;IACnE,KAAA;IAAM,SAAA;YACL,MAAM,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;IACrC,KAAA;IAED,IAAA,MAAM,CAAC,UAAU,CAAC,GAAG,mBAAmB,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC;IAEpE,IAAA,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,IAAM,+BAA+B,GAAG,UAAC,IAAY,EAAA;QAC1D,IAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,IAAA,IAAM,MAAM,GAAG,IAAIO,UAAM,CACvB,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACpB,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACxB,IAAA,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SACrB,CAAC;IAEF,IAAA,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEK,IAAM,+BAA+B,GAAG,UAAC,IAAY,EAAA;IAC1D,IAAA,IAAI,aAAqB,CAAC;IAC1B,IAAA,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACrB,IAAA,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACvB,IAAA,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;IAEnB,IAAA,aAAa,GAAM,GAAG,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAA,GAAA,GAAI,CAAC,KAAK,GAAG,CAAC;IAC7D,SAAA,QAAQ,EAAE;IACV,SAAA,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAA,GAAA,GAAI,IAAM,CAAC;IAE9B,IAAA,OAAO,aAAa,CAAC;IACvB,CAAC,CAAC;IAEK,IAAM,yCAAyC,GAAG,UACvD,KAAa,EACb,KAAU,EAAA;QAEV,IAAI,cAAc,GAAQ,KAAK,CAAC;IAEhC,IAAA,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE;YACrB,QAAQ,KAAK,CAAC,IAAI;gBAChB,KAAK,UAAU,CAAC,IAAI;IAClB,gBAAA,cAAc,GAAG,+BAA+B,CAAC,KAAK,CAAC,CAAC;oBACxD,MAAM;gBACR,KAAK,UAAU,CAAC,KAAK;IACnB,gBAAA,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC;IAC/B,YAAA;oBACE,MAAM;IACT,SAAA;IACF,KAAA;IAED,IAAA,OAAO,cAAc,CAAC;IACxB,CAAC,CAAC;IAEK,IAAM,yCAAyC,GAAG,UACvD,KAAa,EACb,KAAU,EAAA;QAEV,IAAI,cAAc,GAAQ,KAAK,CAAC;IAEhC,IAAA,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE;YACrB,QAAQ,KAAK,CAAC,IAAI;gBAChB,KAAK,UAAU,CAAC,KAAK;IACnB,gBAAA,IAAI,CAACP,QAAM,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;IAC3B,oBAAA,IAAM,mBAAmB,GAAG;IAC1B,wBAAA,KAAK,EAAE,KAAK;IACZ,wBAAA,QAAQ,EAAE,KAAK;yBAChB,CAAC;wBACF,cAAc,GAAG,mBAAmB,CAAC;IACtC,iBAAA;oBACD,MAAM;gBACR,KAAK,UAAU,CAAC,IAAI;IAClB,gBAAA,cAAc,GAAG,+BAA+B,CAAC,KAAK,CAAC,CAAC;oBACxD,MAAM;gBACR,KAAK,UAAU,CAAC,KAAK;oBACnB,MAAM;IACR,YAAA;oBACE,MAAM;IACT,SAAA;IACF,KAAA;IAED,IAAA,OAAO,cAAc,CAAC;IACxB,CAAC;;IClQD,IAAAY,aAAA,kBAAA,YAAA;QAmCE,SACE,WAAA,CAAA,KAAa,EACb,QAAa,EACb,gBAAqB,EACrB,YAAiB,EACjB,UAAe,EAAA;IAEf,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACpB,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC1B,QAAA,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;IAC1C,QAAA,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;IAClC,QAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;SAC/B;IA7CD,IAAA,MAAA,CAAA,cAAA,CAAI,WAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IAAZ,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,SAAS,CAAC;aACvB;IACD,QAAA,GAAA,EAAA,UAAa,KAAU,EAAA;IACrB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;aACxB;;;IAHA,KAAA,CAAA,CAAA;IAMD,IAAA,MAAA,CAAA,cAAA,CAAI,WAAgB,CAAA,SAAA,EAAA,kBAAA,EAAA;IAApB,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,iBAAiB,CAAC;aAC/B;IACD,QAAA,GAAA,EAAA,UAAqB,KAAU,EAAA;IAC7B,YAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;aAChC;;;IAHA,KAAA,CAAA,CAAA;IAMD,IAAA,MAAA,CAAA,cAAA,CAAI,WAAY,CAAA,SAAA,EAAA,cAAA,EAAA;IAAhB,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,aAAa,CAAC;aAC3B;IACD,QAAA,GAAA,EAAA,UAAiB,KAAU,EAAA;IACzB,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;aAC5B;;;IAHA,KAAA,CAAA,CAAA;IAMD,IAAA,MAAA,CAAA,cAAA,CAAI,WAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IAAT,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,MAAM,CAAC;aACpB;IACD,QAAA,GAAA,EAAA,UAAU,KAAa,EAAA;IACrB,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;aACrB;;;IAHA,KAAA,CAAA,CAAA;QAsBD,WAAkB,CAAA,SAAA,CAAA,kBAAA,GAAlB,UAAmB,KAAU,EAAA;YAC3B,IAAI,UAAU,GAAG,EAAE,CAAC;IAEpB,QAAA,IACEZ,QAAM,CAAC,KAAK,EAAE,YAAY,CAAC;IAC3B,YAAAA,QAAM,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC;IAC/B,YAAA,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAChC;IACA,YAAA,UAAU,CAAC,IAAI,CAACa,aAAU,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IACvD,SAAA;IACD,QAAA,IACEb,QAAM,CAAC,KAAK,EAAE,YAAY,CAAC;IAC3B,YAAAA,QAAM,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC;IAC/B,YAAA,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAChC;IACA,YAAA,UAAU,CAAC,IAAI,CAACa,aAAU,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IACvD,SAAA;YACD,IACE,CAACb,QAAM,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,KAAK,CAAC,QAAQ;IAC5C,aAACA,QAAM,CAAC,KAAK,EAAE,YAAY,CAAC;IAC1B,gBAAAA,QAAM,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,CAAC;IACpC,gBAAA,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,EAC5B;IACA,YAAA,UAAU,CAAC,IAAI,CAACa,aAAU,CAAC,QAAQ,CAAC,CAAC;IACtC,SAAA;IACD,QAAA,IACEb,QAAM,CAAC,KAAK,EAAE,YAAY,CAAC;IAC3B,YAAAA,QAAM,CAAC,KAAK,CAAC,UAAU,EAAE,WAAW,CAAC;IACrC,YAAA,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,EACtC;IACA,YAAA,UAAU,CAAC,IAAI,CAACa,aAAU,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IACnE,SAAA;IACD,QAAA,IACEb,QAAM,CAAC,KAAK,EAAE,YAAY,CAAC;IAC3B,YAAAA,QAAM,CAAC,KAAK,CAAC,UAAU,EAAE,WAAW,CAAC;IACrC,YAAA,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,EACtC;IACA,YAAA,UAAU,CAAC,IAAI,CAACa,aAAU,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IACnE,SAAA;IACD,QAAA,IACEb,QAAM,CAAC,KAAK,EAAE,YAAY,CAAC;IAC3B,YAAAA,QAAM,CAAC,KAAK,CAAC,UAAU,EAAE,SAAS,CAAC;IACnC,YAAA,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,EACpC;gBACA,IAAIA,QAAM,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;oBAC3C,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,KAAK,WAAW,CAAC,MAAM,EAAE;IACvD,oBAAA,UAAU,CAAC,IAAI,CAACa,aAAU,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IACvE,iBAAA;IAAM,qBAAA;IACL,oBAAA,UAAU,CAAC,IAAI,CACbA,aAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAC3D,CAAC;IACH,iBAAA;IACF,aAAA;IACF,SAAA;IAED,QAAA,OAAO,UAAU,CAAC;SACnB,CAAA;QAGD,WAAuB,CAAA,SAAA,CAAA,uBAAA,GAAvB,UACE,OAAkB,EAAA;YAElB,IAAI,MAAM,GAAsC,EAAE,CAAC;oCAExC,GAAG,EAAA;gBACZ,IAAM,aAAa,GAAqB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IACrE,YAAA,IAAI,aAAa,KAAK,IAAI,IAAI,aAAa,KAAK,SAAS,EAAE;oBACzD,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,UAAC,QAAQ,EAAA;wBAC1C,MAAM,CAAC,IAAI,CAAC;IACV,wBAAA,IAAI,EAAE,QAAQ;IACd,wBAAA,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC;IAC/B,qBAAA,CAAC,CAAC;IACL,iBAAC,CAAC,CAAC;IACJ,aAAA;;IATH,QAAA,KAAK,IAAM,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAA;wBAAvB,GAAG,CAAA,CAAA;IAUb,SAAA;IAED,QAAA,OAAO,MAAM,CAAC;SACf,CAAA;QAGD,WAA4B,CAAA,SAAA,CAAA,4BAAA,GAA5B,UAA6B,iBAAwC,EAAA;YACnE,IAAI,QAAQ,GAAU,EAAE,CAAC;YAEzB,IAAI,aAAa,GAAG,UAAC,IAA2B,EAAA;gBAC9C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,UAAC,KAAU,EAAA;oBAC5C,IAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBAChC,IAAI,OAAO,CAAC,OAAO,EAAE;wBACnB,QAAQ,CAAC,IAAI,CAAC;IACZ,wBAAA,GAAG,EAAE,KAAK;IACV,wBAAA,OAAO,EAAE,IAAI;IACd,qBAAA,CAAC,CAAC;IACJ,iBAAA;IAAM,qBAAA;wBACL,QAAQ,CAAC,IAAI,CAAC;IACZ,wBAAA,GAAG,EAAE,KAAK;IACV,wBAAA,OAAO,EAAE,KAAK;IACf,qBAAA,CAAC,CAAC;IACJ,iBAAA;oBACD,IAAI,OAAO,YAAYxB,YAAS,EAAE;wBAChC,aAAa,CAAC,OAAO,CAAC,CAAC;IACxB,iBAAA;yBAAM,IAAI,OAAO,YAAYyB,YAAS,EAAE;wBACvC,aAAa,CAAC,OAAO,CAAC,CAAC;IACxB,iBAAA;IACH,aAAC,CAAC,CAAC;IACL,SAAC,CAAC;YAEF,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAEjC,QAAA,OAAO,QAAQ,CAAC;SACjB,CAAA;IAGK,IAAA,WAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;;;;;;;IACE,wBAAA,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;IAErC,wBAAA,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;IAChC,wBAAA,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;IAC1B,wBAAA,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;4BAE9B,YAAY,GAAG,IAAIH,OAAK,CAC5B,KAAK,EACL,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,aAAa,CACnB,CAAC,OAAO,EAAE,CAAC;;;;4BAEO,SAAA,GAAA,QAAA,CAAA,OAAO,CAAA,EAAA,WAAA,GAAA,SAAA,CAAA,IAAA,EAAA,CAAA;;;;4BAAjB,MAAM,GAAA,WAAA,CAAA,KAAA,CAAA;IACP,wBAAA,mBAAmB,GAAG,IAAIH,WAAS,CACvC,MAAM,CAAC,SAAS,EAChB,YAAY,CACb,CAAC,QAAQ,EAAE,CAAC;IAET,wBAAA,IAAA,CAAA,mBAAmB,EAAnB,OAAmB,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;4BACf,SAAU,GAAA,IAAIC,SAAO,CACzB,MAAM,EACN,IAAI,CAAC,MAAM,EACX,YAAY,EACZ,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,WAAW,CACjB,CAAC;IAEF,wBAAA,OAAA,CAAA,CAAA,YAAM,SAAO,CAAC,OAAO,EAAE,CAAA,CAAA;;IAAvB,wBAAA,EAAA,CAAA,IAAA,EAAuB,CAAC;;;;;;;;;;;;;;;;;;;IAG7B,SAAA,CAAA,CAAA;SAAA,CAAA;QACF,OAAA,WAAA,CAAA;IAAA,CAAA,EAAA,CAAA,CAAA;IAnJC,UAAA,CAAA;QADC,GAAG;KAyDH,EAAAG,aAAA,CAAA,SAAA,EAAA,oBAAA,EAAA,IAAA,CAAA,CAAA;IAGD,UAAA,CAAA;QADC,GAAG;KAmBH,EAAAA,aAAA,CAAA,SAAA,EAAA,yBAAA,EAAA,IAAA,CAAA,CAAA;IAGD,UAAA,CAAA;QADC,GAAG;KA6BH,EAAAA,aAAA,CAAA,SAAA,EAAA,8BAAA,EAAA,IAAA,CAAA,CAAA;IAGD,UAAA,CAAA;QADC,GAAG;KAoCH,EAAAA,aAAA,CAAA,SAAA,EAAA,eAAA,EAAA,IAAA,CAAA;;IC/MH,IAAA,qBAAA,kBAAA,YAAA;IACE,IAAA,SAAA,qBAAA,GAAA;SAAgB;;QAIV,qBAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UACJ,MAAW,EACX,QAAa,EACb,gBAAqB,EACrB,YAAiB,EACjB,UAAoB,EAAA;;;;;;;IAEhB,wBAAA,SAAS,GAAG,IAAIvB,YAAS,CAAC,EAAE,CAAC,CAAC;;;;4BAEhB,QAAA,GAAA,QAAA,CAAA,MAAM,CAAA,EAAA,UAAA,GAAA,QAAA,CAAA,IAAA,EAAA,CAAA;;;;4BAAf,KAAK,GAAA,UAAA,CAAA,KAAA,CAAA;IACR,wBAAA,IAAA,EAAA,KAAK,CAAC,IAAI,KAAK,OAAO,CAAA,EAAtB,OAAsB,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;IAClB,wBAAA,QAAQ,GAAG,IAAI,QAAQ,CAC3B,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAChB,UAAU,CACX,CAAC;IACU,wBAAA,OAAA,CAAA,CAAA,YAAM,QAAQ,CAAC,eAAe,EAAE,CAAA,CAAA;;IAAxC,wBAAA,KAAK,GAAG,EAAgC,CAAA,IAAA,EAAA,CAAA;IAC5C,wBAAA,KAAK,GAAG,yCAAyC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAE1D,wBAAA,UAAU,GAAG,IAAIuB,aAAW,CAChC,KAAK,EACL,QAAQ,EACR,gBAAgB,EAChB,YAAY,EACZ,UAAU,CACX,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAE5B,wBAAA,SAAS,CAAC,UAAU,CAClB,KAAK,CAAC,GAAG,EACT,IAAIjB,cAAW,CACb,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,EAC1C,EAAE,UAAU,EAAE,UAAU,EAAE,CAC3B,CACF,CAAC;;;;;;;;;;;;;;;;IAIN,oBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,aAAO,SAAS,CAAC,CAAA;;;IAClB,SAAA,CAAA,CAAA;SAAA,CAAA;QACF,OAAA,qBAAA,CAAA;IAAA,CAAA,EAAA,CAAA,CAAA;IAzCC,UAAA,CAAA;QADC,GAAG;KAyCH,EAAA,qBAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,IAAA,CAAA;;IC9BH,IAAA,IAAA,kBAAA,YAAA;QAYE,SACE,IAAA,CAAA,KAAoB,EACpB,QAAa,EACb,gBAAqB,EACrB,YAAiB,EACjB,UAAoB,EAAA;IAEpB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACpB,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC1B,QAAA,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;IAC1C,QAAA,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;IAClC,QAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;IAE9B,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC;YACtB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;YAClC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;YACpC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;SACjC;IAGY,IAAA,IAAA,CAAA,SAAA,CAAA,oBAAoB,GAApB,YAAA;;;;;;;;4BACP,MAAM,GAAgC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;4BAEhE,UAAU,GAAG,CAAC,CAAC;;;;4BACD,QAAA,GAAA,QAAA,CAAA,MAAM,CAAA,EAAA,UAAA,GAAA,QAAA,CAAA,IAAA,EAAA,CAAA;;;;4BAAf,KAAK,GAAA,UAAA,CAAA,KAAA,CAAA;IACR,wBAAA,OAAO,GAAmB,KAAK,CAAC,OAAO,CAAC;4BAExC,WAAW,GAAG,CAAC,CAAC;;;;4BACD,SAAA,IAAA,GAAA,GAAA,KAAA,CAAA,EAAA,QAAA,CAAA,OAAO,CAAA,CAAA,EAAA,WAAA,GAAA,SAAA,CAAA,IAAA,EAAA,CAAA;;;;4BAAjB,MAAM,GAAA,WAAA,CAAA,KAAA,CAAA;IACP,wBAAA,SAAA,GAAU,IAAIe,SAAO,CACzB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,aAAa,CACnB,CAAC;IACI,wBAAA,KAAK,GAAG,SAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;;IAEjD,wBAAA,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAC5B,IAAI,CAAC,MAAM,EACX,0BAAA,GAA2B,UAAU,GAAa,YAAA,GAAA,WAAW,YAAS,EACtE,KAAK,CACN,CAAC;IAEI,wBAAA,UAAU,GAAgB,MAAM,CAAC,UAAU,CAAC;IAE5C,wBAAA,QAAQ,GAAoB,CAAA,EAAA,GAAA,UAAU,KAAV,IAAA,IAAA,UAAU,KAAV,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,UAAU,CAAE,QAAQ,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAC;IACvD,wBAAA,KAAK,GAAiB,CAAA,EAAA,GAAA,UAAU,KAAV,IAAA,IAAA,UAAU,KAAV,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,UAAU,CAAE,KAAK,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAC;IAC9C,wBAAA,OAAO,GAAmB,CAAA,EAAA,GAAA,UAAU,KAAV,IAAA,IAAA,UAAU,KAAV,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,UAAU,CAAE,OAAO,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAC;4BAEpD,YAAY,GAAG,IAAIC,OAAK,CAC5B,KAAK,EACL,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,aAAa,CACnB,CAAC,OAAO,EAAE,CAAC;;;;4BAEO,SAAA,IAAA,GAAA,GAAA,KAAA,CAAA,EAAA,QAAA,CAAA,OAAO,CAAA,CAAA,EAAA,WAAA,GAAA,SAAA,CAAA,IAAA,EAAA,CAAA;;;;4BAAjB,MAAM,GAAA,WAAA,CAAA,KAAA,CAAA;IACP,wBAAA,mBAAmB,GAAG,IAAIH,WAAS,CACvC,MAAM,CAAC,SAAS,EAChB,YAAY,CACb,CAAC,QAAQ,EAAE,CAAC;IAET,wBAAA,IAAA,CAAA,mBAAmB,EAAnB,OAAmB,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;4BACf,SAAU,GAAA,IAAIC,SAAO,CACzB,MAAM,EACN,IAAI,CAAC,MAAM,EACX,YAAY,EACZ,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,WAAW,CACjB,CAAC;IAEF,wBAAA,OAAA,CAAA,CAAA,YAAM,SAAO,CAAC,OAAO,EAAE,CAAA,CAAA;;IAAvB,wBAAA,EAAA,CAAA,IAAA,EAAuB,CAAC;;;;;;;;;;;;;;;;;IAI5B,wBAAA,WAAW,EAAE,CAAC;;;;;;;;;;;;;;;;;IAGhB,wBAAA,UAAU,EAAE,CAAC;;;;;;;;;;;;;;;;iCAGf,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,MAAM,CAAC,CAAA;;;;SACpB,CAAA;IAGY,IAAA,IAAA,CAAA,SAAA,CAAA,mBAAmB,GAAnB,YAAA;;;;;;;IACL,wBAAA,IAAI,GAAoB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAE3C,wBAAA,UAAU,GAAgB,IAAI,CAAC,UAAU,CAAC;IAE1C,wBAAA,QAAQ,GAAoB,UAAU,CAAC,QAAQ,CAAC;IAChD,wBAAA,KAAK,GAAiB,UAAU,CAAC,KAAK,CAAC;IACvC,wBAAA,OAAO,GAAmB,UAAU,CAAC,OAAO,CAAC;4BAE7C,YAAY,GAAG,IAAIE,OAAK,CAC5B,KAAK,EACL,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,aAAa,CACnB,CAAC,OAAO,EAAE,CAAC;;;;4BAEO,SAAA,GAAA,QAAA,CAAA,OAAO,CAAA,EAAA,WAAA,GAAA,SAAA,CAAA,IAAA,EAAA,CAAA;;;;4BAAjB,MAAM,GAAA,WAAA,CAAA,KAAA,CAAA;IACP,wBAAA,gBAAgB,GAAG,IAAIH,WAAS,CACpC,MAAM,CAAC,SAAS,EAChB,YAAY,CACb,CAAC,QAAQ,EAAE,CAAC;IAET,wBAAA,IAAA,CAAA,gBAAgB,EAAhB,OAAgB,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;4BACZ,SAAU,GAAA,IAAIC,SAAO,CACzB,MAAM,EACN,IAAI,CAAC,MAAM,EACX,YAAY,EACZ,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,WAAW,CACjB,CAAC;IAEF,wBAAA,OAAA,CAAA,CAAA,YAAM,SAAO,CAAC,OAAO,EAAE,CAAA,CAAA;;IAAvB,wBAAA,EAAA,CAAA,IAAA,EAAuB,CAAC;;;;;;;;;;;;;;;;gCAI5B,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,MAAM,CAAC,CAAA;;;IACpB,SAAA,CAAA,CAAA;SAAA,CAAA;IAGY,IAAA,IAAA,CAAA,SAAA,CAAA,uBAAuB,GAAvB,YAAA;;;;;;;IACL,wBAAA,UAAU,GAAgB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;IAEpD,wBAAA,QAAQ,GAAoB,UAAU,CAAC,QAAQ,CAAC;IAChD,wBAAA,KAAK,GAAiB,UAAU,CAAC,KAAK,CAAC;IACvC,wBAAA,OAAO,GAAmB,UAAU,CAAC,OAAO,CAAC;4BAE7C,YAAY,GAAG,IAAIE,OAAK,CAC5B,KAAK,EACL,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,aAAa,CACnB,CAAC,OAAO,EAAE,CAAC;;;;4BAEO,SAAA,GAAA,QAAA,CAAA,OAAO,CAAA,EAAA,WAAA,GAAA,SAAA,CAAA,IAAA,EAAA,CAAA;;;;4BAAjB,MAAM,GAAA,WAAA,CAAA,KAAA,CAAA;IACP,wBAAA,gBAAgB,GAAG,IAAIH,WAAS,CACpC,MAAM,CAAC,SAAS,EAChB,YAAY,CACb,CAAC,QAAQ,EAAE,CAAC;IAET,wBAAA,IAAA,CAAA,gBAAgB,EAAhB,OAAgB,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;4BACZ,SAAU,GAAA,IAAIC,SAAO,CACzB,MAAM,EACN,IAAI,CAAC,MAAM,EACX,YAAY,EACZ,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,WAAW,CACjB,CAAC;IAEF,wBAAA,OAAA,CAAA,CAAA,YAAM,SAAO,CAAC,OAAO,EAAE,CAAA,CAAA;;IAAvB,wBAAA,EAAA,CAAA,IAAA,EAAuB,CAAC;;;;;;;;;;;;;;;;gCAI5B,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,MAAM,CAAC,CAAA;;;IACpB,SAAA,CAAA,CAAA;SAAA,CAAA;IAED,IAAA,IAAA,CAAA,SAAA,CAAA,cAAc,GAAd,YAAA;YACE,OAAO;gBACL,KAAK,EAAE,IAAI,CAAC,MAAM;gBAClB,QAAQ,EAAE,IAAI,CAAC,SAAS;gBACxB,gBAAgB,EAAE,IAAI,CAAC,iBAAiB;gBACxC,YAAY,EAAE,IAAI,CAAC,aAAa;aACjC,CAAC;SACH,CAAA;QACF,OAAA,IAAA,CAAA;IAAA,CAAA,EAAA,CAAA,CAAA;IA7JC,UAAA,CAAA;QADC,GAAG;KAkEH,EAAA,IAAA,CAAA,SAAA,EAAA,sBAAA,EAAA,IAAA,CAAA,CAAA;IAGD,UAAA,CAAA;QADC,GAAG;KAwCH,EAAA,IAAA,CAAA,SAAA,EAAA,qBAAA,EAAA,IAAA,CAAA,CAAA;IAGD,UAAA,CAAA;QADC,GAAG;KAsCH,EAAA,IAAA,CAAA,SAAA,EAAA,yBAAA,EAAA,IAAA,CAAA;;AC/IH,QAAA,uBAAA,kBAAA,YAAA;IA+CE,IAAA,SAAA,uBAAA,CAC6C,IAAoB,EACnB,KAAsB,EAC1D,eAAsC,EAAA;IAFH,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAgB;IACnB,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAiB;IAC1D,QAAA,IAAe,CAAA,eAAA,GAAf,eAAe,CAAuB;IA1ChD,QAAA,IAAe,CAAA,eAAA,GAAQ,EAAE,CAAC;IAG1B,QAAA,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;IAS9B,QAAA,IAAA,CAAA,gBAAgB,GAAsB,IAAIM,eAAY,EAAO,CAAC;IAG9D,QAAA,IAAA,CAAA,eAAe,GAAsB,IAAIA,eAAY,EAAO,CAAC;IAG7D,QAAA,IAAA,CAAA,cAAc,GAAsB,IAAIA,eAAY,EAAO,CAAC;IAG5D,QAAA,IAAA,CAAA,iBAAiB,GAAsB,IAAIA,eAAY,EAAO,CAAC;IAE/D,QAAA,IAAW,CAAA,WAAA,GAAQ,EAAE,CAAC;IACtB,QAAA,IAAU,CAAA,UAAA,GAAU,EAAE,CAAC;IACvB,QAAA,IAAgB,CAAA,gBAAA,GAAQ,EAAE,CAAC;IAE3B,QAAA,IAAO,CAAA,OAAA,GAAY,IAAI,CAAC;YACxB,IAAA,CAAA,eAAe,GAAG;IAChB,YAAA,QAAQ,EAAE,KAAK;IACf,YAAA,UAAU,EAAE,KAAK;aAClB,CAAC;YACF,IAAA,CAAA,cAAc,GAAG;IACf,YAAA,QAAQ,EAAE,KAAK;IACf,YAAA,UAAU,EAAE,KAAK;aAClB,CAAC;YAEF,IAAA,CAAA,SAAS,GAAc,IAAI1B,YAAS,CAAC,EAAE,CAAC,CAAC;IA2lBzC,QAAA,IAAqB,CAAA,qBAAA,GAAY,KAAK,CAAC;SArlBnC;IAGJ,IAAA,uBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YAAA,IAMC,KAAA,GAAA,IAAA,CAAA;YALC,CAAC,YAAA,EAAW,OAAA,SAAA,CAAA,KAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;;;gCACV,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA,CAAA;;IAA1C,wBAAA,EAAA,CAAA,IAAA,EAA0C,CAAC;IAE3C,wBAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;;;;IACtB,SAAA,CAAA,CAJW,EAIX,GAAG,CAAC;SACN,CAAA;QAGD,uBAAe,CAAA,SAAA,CAAA,eAAA,GAAf,eAA0B,CAAA;QAG1B,uBAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,OAAsB,EAAA;;YAAlC,IA0DC,KAAA,GAAA,IAAA,CAAA;YAzDC,IAAM,YAAY,GAAG,UAAC,GAAW,EAAA;IAC/B,YAAA,OAAOW,QAAM,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC;IAC3D,SAAC,CAAC;IACF,QAAA,IAAI,YAAY,CAAC,UAAU,CAAC,EAAE;gBAC5B,IAAI,CAAC,QAAQ,GACR,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,QAAQ,CACb,EAAA,OAAO,CAAC,QAAQ,CAAC,YAAY,CACjC,CAAC;IACH,SAAA;IACD,QAAA,IAAI,YAAY,CAAC,iBAAiB,CAAC,EAAE;gBACnC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC;IAE5D,YAAA,IAAI,CAAC,QAAQ,GACR,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,QAAQ,CAAA,GAChB,EAAA,GAAA,EAAA,EAAA,EAAA,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAG,GAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,MAC1D,CAAC;gBAEF,IAAI,CAAC,SAAS,CAAC,UAAU,EAAA,EAAA,GAAA,EAAA;oBAErB,EAAC,CAAA,IAAI,CAAC,eAAe,CAAC,GAAG,IAAG,IAAI,CAAC,eAAe,CAAC,QAAQ;IAE3D,gBAAA,EAAA,GAAA,EAAE,SAAS,EAAE,KAAK,EAAE,CACrB,CAAC;IAEF,YAAA,IAAI,OAAK,GAAkB,gBAAgB,CACzC,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,eAAe,CAAC,GAAG,CACzB,CAAC;IAEF,YAAA,IAAM,MAAI,GAAG,IAAI,IAAI,CACnB,OAAK,EACL,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAC3B,CAAC;gBAEF,CAAC,YAAA,EAAW,OAAA,SAAA,CAAA,KAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;;;IACF,wBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,MAAI,CAAC,uBAAuB,EAAE,CAAA,CAAA;;gCAA5C,OAAK,GAAG,SAAoC,CAAC;;;;IAC9C,aAAA,CAAA,CAFW,EAEX,GAAG,CAAC;IACN,SAAA;IACD,QAAA,IAAI,YAAY,CAAC,cAAc,CAAC,EAAE;gBAChC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC;IACvD,SAAA;IACD,QAAA,IAAI,YAAY,CAAC,cAAc,CAAC,EAAE;gBAChC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC;IACvD,SAAA;IACD,QAAA,IAAI,YAAY,CAAC,WAAW,CAAC,EAAE;gBAC7B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC;IACjD,SAAA;IACD,QAAA,IAAI,YAAY,CAAC,YAAY,CAAC,EAAE;gBAC9B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC;gBAElD,CAAC,YAAA,EAAW,OAAA,SAAA,CAAA,KAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;;;oCACV,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA,CAAA;;IAA1C,4BAAA,EAAA,CAAA,IAAA,EAA0C,CAAC;;;;IAC5C,aAAA,CAAA,CAFW,EAEX,GAAG,CAAC;IACN,SAAA;SACF,CAAA;QAGK,uBAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAe,UAAe,EAAA;;;;oBAkDnC,KAAA,GAAA,IAAA,CAAA;;;;IAjDC,wBAAA,IAAI,CAAC,2BAA2B,CAAC,UAAU,CAAC,CAAC;IAE7C,wBAAA,IAAI,CAAC,gCAAgC,CAAC,UAAU,CAAC,CAAC;4BAElD,IAAI,CAAC,2BAA2B,EAAE,CAAC;IAEnC,wBAAA,EAAA,GAAA,IAAI,CAAA;IAAa,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,eAAe,CAAC,eAAe,CACzD,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAC3B,CAAA,CAAA;;4BAND,EAAK,CAAA,SAAS,GAAG,EAAA,CAAA,IAAA,EAMhB,CAAC;gDAEO,KAAK,EAAA;;IACZ,4BAAA,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;IAC1B,gCAAA,MAAA,CAAK,gBAAgB,GAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAChB,MAAA,CAAK,gBAAgB,CAAA,GAAA,EAAA,GAAA,EAAA,EACxB,EAAC,CAAA,KAAK,CAAC,GAAG,CAAG,GAAA,MAAA,CAAK,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,MACtD,CAAC;oCAEF,MAAK,CAAA,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,YAAY;yCAC5C,IAAI,CAACgB,kBAAQ,EAAE,CAAC;yCAChB,SAAS,CAAC,UAAC,EAA6B,EAAA;;IAA7B,oCAAA,IAAA,EAAA,GAAA,aAA6B,EAA5B,aAAa,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,YAAY,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA;wCACtC,KAAI,CAAC,gBAAgB,GAChB,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,KAAI,CAAC,gBAAgB,CAAA,GACxB,EAAA,GAAA,EAAA,EAAA,EAAA,CAAC,KAAK,CAAC,GAAG,CAAA,GAAG,aAAa,EAAA,EAAA,EAC3B,CAAC;wCAEF,KAAI,CAAC,QAAQ,GACR,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,KAAI,CAAC,QAAQ,CAAA,GAChB,EAAA,GAAA,EAAA,EAAA,EAAA,CAAC,KAAK,CAAC,GAAG,CAAA,GAAG,YAAY,EAAA,EAAA,EAC1B,CAAC;IACJ,iCAAC,CAAC,CAAC;IACN,6BAAA;;;;IApBH,4BAAA,KAAkB,EAAA,GAAA,QAAA,CAAA,IAAI,CAAC,UAAU,CAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA;oCAAxB,KAAK,GAAA,EAAA,CAAA,KAAA,CAAA;4CAAL,KAAK,CAAA,CAAA;IAqBb,6BAAA;;;;;;;;;gDACQ,KAAK,EAAA;IACZ,4BAAA,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;oCAC1B,CAAC,YAAA,EAAW,OAAA,SAAA,CAAA,KAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;;;wDACF,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,uBAAuB,CACxC;wDACE,GAAG,EAAE,KAAK,CAAC,GAAG;IACd,oDAAA,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK;qDAChD,EACD,SAAS,CACV,CAAA,CAAA;;oDAND,KAAK,GAAG,SAMP,CAAC;;;;IACH,iCAAA,CAAA,CARW,EAQX,GAAG,CAAC;IACN,6BAAA;;;IAXH,4BAAA,KAAkB,EAAA,GAAA,QAAA,CAAA,IAAI,CAAC,UAAU,CAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA;oCAAxB,KAAK,GAAA,EAAA,CAAA,KAAA,CAAA;4CAAL,KAAK,CAAA,CAAA;IAYb,6BAAA;;;;;;;;;;;;IACF,SAAA,CAAA,CAAA;SAAA,CAAA;QAGD,uBAA2B,CAAA,SAAA,CAAA,2BAAA,GAA3B,UAA4B,UAAe,EAAA;IACzC,QAAA,IAAIhB,QAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE;IAChC,YAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC;IACrC,SAAA;IAAM,aAAA,IACLA,QAAM,CAAC,UAAU,EAAE,WAAW,CAAC;IAC/B,YAAAA,QAAM,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,EACtC;gBACA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC;IAC/C,SAAA;SACF,CAAA;QAGD,uBAAgC,CAAA,SAAA,CAAA,gCAAA,GAAhC,UAAiC,UAAe,EAAA;IAC9C,QAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;SAC3C,CAAA;IAGD,IAAA,uBAAA,CAAA,SAAA,CAAA,2BAA2B,GAA3B,YAAA;IACE,QAAA,IAAIA,QAAM,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;IAClD,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACxD,SAAA;IAAM,aAAA;IACL,YAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACpB,SAAA;SACF,CAAA;IAGK,IAAA,uBAAA,CAAA,SAAA,CAAA,uCAAuC,GAAvC,UACJ,qBAA0B,EAC1B,WAAgB,EAAA;;;;;;;IAEZ,wBAAA,IAAA,CAAAA,QAAM,CAAC,qBAAqB,EAAE,OAAO,CAAC,EAAtC,OAAsC,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;4BAClC,YAAY,GAAG,IAAIW,OAAK,CAC5B,qBAAqB,CAAC,KAAK,EAC3B,WAAW,EACX,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,YAAY,CAClB,CAAC,OAAO,EAAE,CAAC;;;;IAEO,wBAAA,EAAA,GAAA,QAAA,CAAA,qBAAqB,CAAC,OAAO,CAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,CAAA;;;;4BAAvC,MAAM,GAAA,EAAA,CAAA,KAAA,CAAA;IACP,wBAAA,gBAAgB,GAAG,IAAIH,WAAS,CACpC,MAAM,CAAC,SAAS,EAChB,YAAY,CACb,CAAC,QAAQ,EAAE,CAAC;IAET,wBAAA,IAAA,CAAA,gBAAgB,EAAhB,OAAgB,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;IACZ,wBAAA,OAAO,GAAG,IAAIC,SAAO,CACzB,MAAM,EACN,WAAW,EACX,YAAY,EACZ,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CACvC,CAAC;IAEF,wBAAA,OAAA,CAAA,CAAA,YAAM,OAAO,CAAC,OAAO,EAAE,CAAA,CAAA;;IAAvB,wBAAA,EAAA,CAAA,IAAA,EAAuB,CAAC;;;;;;;;;;;;;;;;;;;IAI/B,SAAA,CAAA,CAAA;SAAA,CAAA;IAGK,IAAA,uBAAA,CAAA,SAAA,CAAA,gCAAgC,GAAhC,UACJ,YAAiB,EACjB,yBAA8B,EAC9B,SAAiB,EAAA;;;;;;IAET,wBAAA,EAAA,GAAA,SAAS,CAAA;;qCACV,MAAM,EAAN,OAAM,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;qCAWN,cAAc,EAAd,OAAc,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;qCAWd,aAAa,EAAb,OAAa,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;;;;IApBd,wBAAA,IAAA,EAAAT,QAAM,CAAC,yBAAyB,EAAE,UAAU,CAAC;gCAC7C,yBAAyB,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA,EADnD,OACmD,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;4BAEnD,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,uCAAuC,CAChD,yBAAyB,EACzB,YAAY,CACb,CAAA,CAAA;;IAHD,wBAAA,EAAA,CAAA,IAAA,EAGC,CAAC;;gCAEJ,OAAM,CAAA,CAAA,YAAA,EAAA,CAAA,CAAA;;IAGJ,wBAAA,IAAA,EAAAA,QAAM,CAAC,yBAAyB,EAAE,UAAU,CAAC;gCAC7C,yBAAyB,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA,EAD3D,OAC2D,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;4BAE3D,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,uCAAuC,CAChD,yBAAyB,EACzB,YAAY,CACb,CAAA,CAAA;;IAHD,wBAAA,EAAA,CAAA,IAAA,EAGC,CAAC;;gCAEJ,OAAM,CAAA,CAAA,YAAA,EAAA,CAAA,CAAA;;IAGJ,wBAAA,IAAA,EAAAA,QAAM,CAAC,yBAAyB,EAAE,UAAU,CAAC;gCAC7C,yBAAyB,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA,EAD1D,OAC0D,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;4BAE1D,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,uCAAuC,CAChD,yBAAyB,EACzB,YAAY,CACb,CAAA,CAAA;;IAHD,wBAAA,EAAA,CAAA,IAAA,EAGC,CAAC;;;IAGA,wBAAA,IAAA,CAAAA,QAAM,CAAC,yBAAyB,EAAE,UAAU,CAAC,EAA7C,OAA6C,CAAA,CAAA,YAAA,EAAA,CAAA,CAAA;4BAC/C,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,uCAAuC,CAChD,yBAAyB,EACzB,YAAY,CACb,CAAA,CAAA;;IAHD,wBAAA,EAAA,CAAA,IAAA,EAGC,CAAC;;iCAEJ,OAAM,CAAA,CAAA,YAAA,EAAA,CAAA,CAAA;;;;IAEX,SAAA,CAAA,CAAA;SAAA,CAAA;IAGK,IAAA,uBAAA,CAAA,SAAA,CAAA,kCAAkC,GAAlC,UACJ,oBAAyB,EACzB,cAAmB,EAAA;;;;;;;IAEf,wBAAA,IAAA,CAAAA,QAAM,CAAC,oBAAoB,EAAE,OAAO,CAAC,EAArC,OAAqC,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;4BACjC,YAAY,GAAG,IAAIW,OAAK,CAC5B,oBAAoB,CAAC,KAAK,EAC1B,cAAc,EACd,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,YAAY,CAClB,CAAC,OAAO,EAAE,CAAC;;;;IAEO,wBAAA,EAAA,GAAA,QAAA,CAAA,oBAAoB,CAAC,OAAO,CAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,CAAA;;;;4BAAtC,MAAM,GAAA,EAAA,CAAA,KAAA,CAAA;IACP,wBAAA,gBAAgB,GAAG,IAAIH,WAAS,CACpC,MAAM,CAAC,SAAS,EAChB,YAAY,CACb,CAAC,QAAQ,EAAE,CAAC;IAET,wBAAA,IAAA,CAAA,gBAAgB,EAAhB,OAAgB,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;IACZ,wBAAA,OAAO,GAAG,IAAIC,SAAO,CACzB,MAAM,EACN,cAAc,EACd,YAAY,EACZ,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAC3B,CAAC;IAEF,wBAAA,OAAA,CAAA,CAAA,YAAM,OAAO,CAAC,OAAO,EAAE,CAAA,CAAA;;IAAvB,wBAAA,EAAA,CAAA,IAAA,EAAuB,CAAC;;;;;;;;;;;;;;;;IAK9B,oBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,aAAO,cAAc,CAAC,CAAA;;;IACvB,SAAA,CAAA,CAAA;SAAA,CAAA;IAGK,IAAA,uBAAA,CAAA,SAAA,CAAA,4BAA4B,GAA5B,UACJ,YAAiB,EACjB,oBAAyB,EACzB,SAAiB,EAAA;;;;;;;IAEb,wBAAA,cAAc,GAAG,gBAAgB,CACnC,IAAI,CAAC,UAAU,EACf,oBAAoB,CAAC,KAAK,CAAC,CAC5B,CAAC;IAEM,wBAAA,EAAA,GAAA,SAAS,CAAA;;qCACV,MAAM,EAAN,OAAM,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;qCAyBN,cAAc,EAAd,OAAc,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;qCAqBd,aAAa,EAAb,OAAa,CAAA,CAAA,YAAA,EAAA,CAAA,CAAA;;;;IA5Cd,wBAAA,IAAA,EAAAT,QAAM,CAAC,cAAc,EAAE,UAAU,CAAC;gCAClC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA,EADxC,OACwC,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;iCAEpC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,CAAC,EAAvC,OAAuC,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;IACrC,wBAAA,IAAA,CAAAA,QAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,EAArD,OAAqD,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;4BAC/C,EAAA,GAAA,oBAAoB,CAAC,IAAI,CAAA;;qCAC1B,sBAAsB,EAAtB,OAAsB,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;;;gCACR,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,yBAAyB,CACnD,YAAY,EACZ,cAAc,CACf,CAAA,CAAA;;4BAHD,cAAc,GAAG,SAGhB,CAAC;4BACF,OAAM,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;gCAEN,OAAM,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;gCAIG,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,kCAAkC,CAC5D,oBAAoB,EACpB,cAAc,CACf,CAAA,CAAA;;4BAHD,cAAc,GAAG,SAGhB,CAAC;;gCAEJ,OAAM,CAAA,CAAA,YAAA,EAAA,CAAA,CAAA;;IAGJ,wBAAA,IAAA,EAAAA,QAAM,CAAC,oBAAoB,EAAE,UAAU,CAAC;gCACxC,oBAAoB,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA,EADtD,OACsD,CAAA,CAAA,YAAA,EAAA,CAAA,CAAA;4BAE9C,EAAA,GAAA,cAAc,CAAC,IAAI,CAAA;;qCACpB,sBAAsB,EAAtB,OAAsB,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;;;gCACR,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,yBAAyB,CACnD,YAAY,EACZ,cAAc,CACf,CAAA,CAAA;;4BAHD,cAAc,GAAG,SAGhB,CAAC;4BACF,OAAM,CAAA,CAAA,YAAA,EAAA,CAAA,CAAA;iCAEN,OAAM,CAAA,CAAA,YAAA,EAAA,CAAA,CAAA;iCAEO,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,kCAAkC,CAC5D,oBAAoB,EACpB,cAAc,CACf,CAAA,CAAA;;4BAHD,cAAc,GAAG,SAGhB,CAAC;;iCAEJ,OAAM,CAAA,CAAA,YAAA,EAAA,CAAA,CAAA;;IAGJ,wBAAA,IAAA,EAAAA,QAAM,CAAC,oBAAoB,EAAE,UAAU,CAAC;gCACxC,oBAAoB,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA,EADrD,OACqD,CAAA,CAAA,YAAA,EAAA,CAAA,CAAA;4BAEpC,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,kCAAkC,CAC5D,oBAAoB,EACpB,cAAc,CACf,CAAA,CAAA;;4BAHD,cAAc,GAAG,SAGhB,CAAC;;;IAGA,wBAAA,IAAA,CAAAA,QAAM,CAAC,oBAAoB,EAAE,UAAU,CAAC,EAAxC,OAAwC,CAAA,CAAA,YAAA,EAAA,CAAA,CAAA;4BACzB,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,kCAAkC,CAC5D,oBAAoB,EACpB,cAAc,CACf,CAAA,CAAA;;4BAHD,cAAc,GAAG,SAGhB,CAAC;;iCAEJ,OAAM,CAAA,CAAA,YAAA,EAAA,CAAA,CAAA;;IAGV,wBAAA,IAAIA,QAAM,CAAC,cAAc,EAAE,mBAAmB,CAAC,EAAE;gCAC/C,IAAIA,QAAM,CAAC,cAAc,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,EAAE;;IAC/D,oCAAA,KAAmC,EAAA,GAAA,QAAA,CAAA,cAAc,CAAC,iBAAiB;IAChE,yCAAA,eAAe,CAAA,EAAE,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA;IADf,wCAAA,sBAAA,GAAA,EAAA,CAAA,KAAA,CAAA;4CAEH,cAAc,GAAG,IAAI,CAAC,4BAA4B,CAChD,cAAc,EACd,sBAAoB,EACpB,aAAa,CACd,CAAC;IACH,qCAAA;;;;;;;;;IACF,6BAAA;IACF,yBAAA;IAED,wBAAA,OAAA,CAAA,CAAA,aAAO,YAAY,CAAC,CAAA;;;IACrB,SAAA,CAAA,CAAA;SAAA,CAAA;IAGK,IAAA,uBAAA,CAAA,SAAA,CAAA,uBAAuB,GAAvB,UAAwB,CAAM,EAAE,SAAiB,EAAA;;;;;;;4BACjD,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IAExD,wBAAA,IAAA,CAAAA,QAAM,CAAC,YAAY,EAAE,mBAAmB,CAAC,EAAzC,OAAyC,CAAA,CAAA,YAAA,EAAA,CAAA,CAAA;iCACvCA,QAAM,CAAC,YAAY,CAAC,iBAAiB,EAAE,sBAAsB,CAAC,EAA9D,OAA8D,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;IAC5D,wBAAA,oBAAoB,GACtB,YAAY,CAAC,iBAAiB,CAAC,oBAAoB,CAAC;;;;4BAChB,sBAAA,GAAA,QAAA,CAAA,oBAAoB,CAAA,EAAA,wBAAA,GAAA,sBAAA,CAAA,IAAA,EAAA,CAAA;;;;4BAAjD,yBAAyB,GAAA,wBAAA,CAAA,KAAA,CAAA;4BAChC,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,gCAAgC,CACzC,YAAY,EACZ,yBAAyB,EACzB,SAAS,CACV,CAAA,CAAA;;IAJD,wBAAA,EAAA,CAAA,IAAA,EAIC,CAAC;;;;;;;;;;;;;;;;;iCAGFA,QAAM,CAAC,YAAY,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,EAAzD,OAAyD,CAAA,CAAA,YAAA,EAAA,CAAA,CAAA;IACvD,wBAAA,eAAe,GAAG,YAAY,CAAC,iBAAiB,CAAC,eAAe,CAAC;;;;4BACpC,iBAAA,GAAA,QAAA,CAAA,eAAe,CAAA,EAAA,mBAAA,GAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;;;4BAAvC,oBAAoB,GAAA,mBAAA,CAAA,KAAA,CAAA;4BACZ,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,4BAA4B,CACpD,YAAY,EACZ,oBAAoB,EACpB,SAAS,CACV,CAAA,CAAA;;4BAJD,YAAY,GAAG,SAId,CAAC;;;;;;;;;;;;;;;;;;;IAIT,SAAA,CAAA,CAAA;SAAA,CAAA;;QAID,uBAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,CAAM,EAAA;;YAAxB,IAmCC,KAAA,GAAA,IAAA,CAAA;YAlCC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAA,EAAA,GAAA,EAAA;IAErB,YAAA,EAAA,CAAC,CAAC,CAAC,GAAG,CAAG,GAAA,CAAC,CAAC,KAAK;IAElB,YAAA,EAAA,GAAA,EAAE,SAAS,EAAE,KAAK,EAAE,CACrB,CAAC;;IAGF,QAAA,IAAI,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IAErD,QAAA,IACE,KAAK,CAAC,IAAI,KAAK,OAAO;gBACtB,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAC/C;IACA,YAAA,IAAM,aAAW,GAAG,IAAIY,aAAW,CACjC,KAAK,EACL,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAC3B,CAAC;gBAEF,CAAC,YAAA,EAAW,OAAA,SAAA,CAAA,KAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;;;IACV,wBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,aAAW,CAAC,aAAa,EAAE,CAAA,CAAA;;IAAjC,4BAAA,EAAA,CAAA,IAAA,EAAiC,CAAC;;;;IACnC,aAAA,CAAA,CAFW,EAEX,GAAG,CAAC;gBAEL,IAAI,CAAC,uBAAuB,CAC1B;oBACE,GAAG,EAAE,KAAK,CAAC,GAAG;IACd,gBAAA,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK;iBAChD,EACD,WAAW,CACZ,CAAC;IACH,SAAA;SACF,CAAA;IAGK,IAAA,uBAAA,CAAA,SAAA,CAAA,4BAA4B,GAA5B,UAA6B,CAAM,EAAE,KAAkB,EAAA;;;;;;;;IAC7C,wBAAA,EAAA,GAAA,SAAA,KAAK,CAAC,KAAK,CAAC,MAAM,CAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,CAAA;;;;4BAAvB,CAAC,GAAA,EAAA,CAAA,KAAA,CAAA;;;;IACM,wBAAA,EAAA,IAAA,GAAA,GAAA,KAAA,CAAA,EAAA,QAAA,CAAA,CAAC,CAAC,OAAO,CAAA,CAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,CAAA;;;;4BAAd,CAAC,GAAA,EAAA,CAAA,KAAA,CAAA;IACF,wBAAA,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACjE,wBAAA,OAAO,GAAG,IAAIH,SAAO,CACzB,CAAC,EACD,UAAU,EACV,EAAE,EACF,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAC3B,CAAC;IACF,wBAAA,OAAA,CAAA,CAAA,YAAM,OAAO,CAAC,OAAO,EAAE,CAAA,CAAA;;IAAvB,wBAAA,EAAA,CAAA,IAAA,EAAuB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAG7B,SAAA,CAAA,CAAA;SAAA,CAAA;QAGK,uBAAoB,CAAA,SAAA,CAAA,oBAAA,GAApB,UAAqB,CAAM,EAAA;;;;;;4BAC3B,KAAK,GAAkB,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IAEhE,wBAAA,IAAA,EAAA,KAAK,CAAC,IAAI,KAAK,UAAU,CAAA,EAAzB,OAAyB,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;;IAE3B,wBAAA,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC;IACzD,wBAAA,KAAK,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;IAC3B,wBAAA,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IACxC,wBAAA,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;IAC1C,wBAAA,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IACvC,wBAAA,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;4BAEnC,IAAI,GAAG,IAAI,IAAI,CACnB,KAAK,EACL,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAC3B,CAAC;IAEM,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,oBAAoB,EAAE,CAAA,CAAA;;4BAAzC,KAAK,GAAG,SAAiC,CAAC;IAElC,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,mBAAmB,EAAE,CAAA,CAAA;;4BAAxC,KAAK,GAAG,SAAgC,CAAC;4BAEzC,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE;;IAE9C,4BAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;oCACvB,GAAG,EAAE,CAAC,CAAC,GAAG;IACV,gCAAA,OAAO,EAAE;IACP,oCAAA,IAAI,EAAE,MAAM;wCACZ,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK;IAClC,oCAAA,OAAO,EAAE,EAAE;IACX,oCAAA,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG;IAC3B,iCAAA;IACF,6BAAA,CAAC,CAAC;IACJ,yBAAA;IAAM,6BAAA;;;;IAIL,4BAAA,UAAU,CAAC,YAAA;IACT,gCAAA,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC;IACxD,gCAAA,KAAK,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;iCAC7B,EAAE,GAAG,CAAC,CAAC;IACT,yBAAA;IAED,wBAAA,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;IACzC,wBAAA,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;IAC3C,wBAAA,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;IACxC,wBAAA,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;;;;;IAE7C,SAAA,CAAA,CAAA;SAAA,CAAA;QAGD,uBAAsB,CAAA,SAAA,CAAA,sBAAA,GAAtB,UAAuB,CAAM,EAAA;IAC3B,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;IACzB,YAAA,OAAO,EAAE,IAAI;IACd,SAAA,CAAC,CAAC;SACJ,CAAA;QAGD,uBAAqB,CAAA,SAAA,CAAA,qBAAA,GAArB,UAAsB,CAAM,EAAA;;YAA5B,IAyEC,KAAA,GAAA,IAAA,CAAA;YAxEC,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;;gBAE5C,KAAkB,IAAA,KAAA,QAAA,CAAA,IAAI,CAAC,UAAU,CAAA,gBAAA,EAAE,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA;IAA9B,gBAAA,IAAI,KAAK,GAAA,EAAA,CAAA,KAAA,CAAA;IACZ,gBAAA,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK,EAAE;wBACnC,IAAI,KAAK,CAAC,MAAM,EAAE;IAChB,wBAAA,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5B,qBAAA;IAAM,yBAAA;IACL,wBAAA,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,yCAAyC,CAC7D,KAAK,EACL,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CACpB,CAAC;IACH,qBAAA;IACF,iBAAA;IACF,aAAA;;;;;;;;;oCAEQ,KAAK,EAAA;IACZ,YAAA,IACE,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK;oBAC/B,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,EAC7C;oBACA,IAAM,aAAW,GAAG,IAAIG,aAAW,CACjC,KAAK,EACL,QAAQ,EACR,MAAA,CAAK,gBAAgB,EACrB,MAAA,CAAK,YAAY,EACjB,MAAA,CAAK,UAAU,CAAC,IAAI,CAAM,MAAA,CAAA,CAC3B,CAAC;oBAEF,CAAC,YAAA,EAAW,OAAA,SAAA,CAAA,KAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;;;IACV,4BAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,aAAW,CAAC,aAAa,EAAE,CAAA,CAAA;;IAAjC,gCAAA,EAAA,CAAA,IAAA,EAAiC,CAAC;;;;IACnC,iBAAA,CAAA,CAFW,EAEX,GAAG,CAAC;IACN,aAAA;;;;IAhBH,YAAA,KAAkB,IAAA,EAAA,GAAA,QAAA,CAAA,IAAI,CAAC,UAAU,CAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA;IAA5B,gBAAA,IAAI,KAAK,GAAA,EAAA,CAAA,KAAA,CAAA;4BAAL,KAAK,CAAA,CAAA;IAiBb,aAAA;;;;;;;;;IAED,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;IAC1B,YAAA,IAAM,QAAQ,GAAG,IAAIA,aAAW,CAC9B,SAAS,EACT,QAAQ,EACR,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAC3B,CAAC,4BAA4B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAE/C,IAAI,mBAAmB,GAAW,EAAE,CAAC;;IAErC,gBAAA,KAAoB,IAAA,UAAA,GAAA,QAAA,CAAA,QAAQ,CAAA,kCAAA,EAAE,CAAA,YAAA,CAAA,IAAA,EAAA,YAAA,GAAA,UAAA,CAAA,IAAA,EAAA,EAAA;IAAzB,oBAAA,IAAI,OAAO,GAAA,YAAA,CAAA,KAAA,CAAA;wBACd,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,mBAAmB,CAAC,EAAE;IACnD,wBAAA,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC;IACnC,qBAAA;IACD,oBAAA,IAAI,CAAC,UAAU,GAAG,aAAa,CAC7B,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAC3C,OAAO,CAAC,GAAG,EACX,OAAO,CAAC,OAAO,CAChB,CAAC;IACH,iBAAA;;;;;;;;;IAED,YAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;IACnC,YAAA,UAAU,CAAC,YAAA;IACT,gBAAA,KAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;iBACrC,EAAE,IAAI,CAAC,CAAC;gBAET,OAAO;IACR,SAAA;YAED,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,UAAC,GAAG,EAAA;IAC5B,YAAA,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE;IAC1B,gBAAA,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IACpB,aAAA;IACH,SAAC,CAAC,CAAC;IAEH,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;SAC5E,CAAA;QAID,uBAAuB,CAAA,SAAA,CAAA,uBAAA,GAAvB,UAAwB,IAAI,EAAA;IAC1B,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;SACnC,CAAA;;QAID,uBAAS,CAAA,SAAA,CAAA,SAAA,GAAT,UAAU,QAAgB,EAAA;YACxB,IAAI,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YACxD,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,UAAC,CAAM,EAAA;IAChD,YAAA,OAAO,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC;IAC7B,SAAC,CAAC,CAAC;YAEH,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IAC7C,QAAA,IAAI,CAAC,SAAS,CAAC,sBAAsB,EAAE,CAAC;SACzC,CAAA;QAGD,uBAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAe,UAAkB,EAAA;;;gBAC/B,KAAqB,IAAA,EAAA,GAAA,QAAA,CAAA,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAE,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA;IAA9C,gBAAA,IAAI,QAAQ,GAAA,EAAA,CAAA,KAAA,CAAA;IACf,gBAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC1B,aAAA;;;;;;;;;SACF,CAAA;QAGD,uBAAS,CAAA,SAAA,CAAA,SAAA,GAAT,UAAU,QAAgB,EAAA;YACxB,IAAI,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YACxD,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,UAAC,CAAM,EAAA;IAChD,YAAA,OAAO,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC;IAC7B,SAAC,CAAC,CAAC;YAEH,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;IAC9C,QAAA,IAAI,CAAC,SAAS,CAAC,sBAAsB,EAAE,CAAC;SACzC,CAAA;QAGD,uBAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAe,UAAkB,EAAA;;;gBAC/B,KAAqB,IAAA,EAAA,GAAA,QAAA,CAAA,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAE,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA;IAA9C,gBAAA,IAAI,QAAQ,GAAA,EAAA,CAAA,KAAA,CAAA;IACf,gBAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC1B,aAAA;;;;;;;;;SACF,CAAA;QAGD,uBAAY,CAAA,SAAA,CAAA,YAAA,GAAZ,UAAa,QAAgB,EAAA;YAC3B,IAAI,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YACxD,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,UAAC,CAAM,EAAA;IAChD,YAAA,OAAO,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC;IAC7B,SAAC,CAAC,CAAC;IAEH,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK,EAAE;gBACnC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;gBAE/C,IAAI,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;oBACvC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;IACzC,oBAAA,SAAS,EAAE,KAAK;IACjB,iBAAA,CAAC,CAAC;IACJ,aAAA;IACD,YAAA,IAAI,CAAC,SAAS,CAAC,sBAAsB,EAAE,CAAC;IACzC,SAAA;SACF,CAAA;QAGD,uBAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,UAAkB,EAAA;;;gBAClC,KAAqB,IAAA,EAAA,GAAA,QAAA,CAAA,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAE,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA;IAA9C,gBAAA,IAAI,QAAQ,GAAA,EAAA,CAAA,KAAA,CAAA;IACf,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC7B,aAAA;;;;;;;;;SACF,CAAA;QAGD,uBAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,QAAgB,EAAA;YAC1B,IAAI,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YACxD,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,UAAC,CAAM,EAAA;IAChD,YAAA,OAAO,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC;IAC7B,SAAC,CAAC,CAAC;IAEH,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK,EAAE;gBACnC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;gBAEhD,IAAI,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;oBACvC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,oBAAA,SAAS,EAAE,KAAK;IACjB,iBAAA,CAAC,CAAC;IACJ,aAAA;IACD,YAAA,IAAI,CAAC,SAAS,CAAC,sBAAsB,EAAE,CAAC;IACzC,SAAA;SACF,CAAA;QAGD,uBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,UAAkB,EAAA;;;gBACjC,KAAqB,IAAA,EAAA,GAAA,QAAA,CAAA,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAE,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA;IAA9C,gBAAA,IAAI,QAAQ,GAAA,EAAA,CAAA,KAAA,CAAA;IACf,gBAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC5B,aAAA;;;;;;;;;SACF,CAAA;QAGD,uBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,QAAgB,EAAA;;YAEzB,IAAI,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YACxD,IAAI,UAAU,GAAG,qBAAqB,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;;IAGlE,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;;IAG/B,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;IAC7D,YAAA,SAAS,EAAE,KAAK;IACjB,SAAA,CAAC,CAAC;;IAGH,QAAA,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE;gBAC3B,IAAI,EAAE,YAAY,CAAC,OAAO;IAC1B,YAAA,OAAO,EAAE,EAAE;IACZ,SAAA,CAAC,CAAC;IACH,QAAA,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE;gBAC3B,IAAI,EAAE,YAAY,CAAC,OAAO;IAC1B,YAAA,OAAO,EAAE,EAAE;IACZ,SAAA,CAAC,CAAC;IACH,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;gBAC5B,IAAI,EAAE,YAAY,CAAC,KAAK;IACxB,YAAA,OAAO,EAAE,EAAE;IACZ,SAAA,CAAC,CAAC;;YAGH,QAAQ,KAAK,CAAC,IAAI;IAChB,YAAA,KAAK,UAAU;oBACb,IAAM,YAAY,GAAG,KAAsB,CAAC;oBAC5C,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC;IACvD,gBAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,YAAY,CAAC;oBAC3C,MAAM;IACR,YAAA;IACE,gBAAA,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,gBAAA,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;IACtB,gBAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;oBACpC,MAAM;IACT,SAAA;SACF,CAAA;IAGD,IAAA,uBAAA,CAAA,SAAA,CAAA,cAAc,GAAd,UAAe,QAAgB,EAAE,OAAiB,EAAA;YAChD,IAAI,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YACxD,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,UAAC,CAAM,EAAA;IAChD,YAAA,OAAO,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC;IAC7B,SAAC,CAAC,CAAC;IAEH,QAAA,KAAK,GAAG,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACzC,QAAA,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAEnC,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;SACrC,CAAA;IAGD,IAAA,uBAAA,CAAA,SAAA,CAAA,cAAc,GAAd,UAAe,QAAgB,EAAE,OAAiB,EAAA;YAChD,IAAI,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YACxD,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,UAAC,CAAM,EAAA;IAChD,YAAA,OAAO,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC;IAC7B,SAAC,CAAC,CAAC;IAEH,QAAA,KAAK,GAAG,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC1C,QAAA,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAEtC,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;SACrC,CAAA;IAGD,IAAA,uBAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,UAAiB,QAAgB,EAAE,OAAiB,EAAA;YAClD,IAAI,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YACxD,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,UAAC,CAAM,EAAA;IAChD,YAAA,OAAO,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC;IAC7B,SAAC,CAAC,CAAC;IAEH,QAAA,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAEnC,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;SACrC,CAAA;IAGD,IAAA,uBAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,UAAiB,QAAgB,EAAE,OAAiB,EAAA;YAClD,IAAI,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YACxD,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,UAAC,CAAM,EAAA;IAChD,YAAA,OAAO,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC;IAC7B,SAAC,CAAC,CAAC;IAEH,QAAA,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAEtC,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;SACrC,CAAA;QAGD,uBAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAe,KAAU,EAAE,IAAY,EAAE,KAAU,KAAI,CAAA;IAGvD,IAAA,uBAAA,CAAA,SAAA,CAAA,sBAAsB,GAAtB,UAAuB,GAAW,EAAE,KAAU,EAAA;;YAC5C,IAAI,CAAC,SAAS,CAAC,UAAU,EAAA,EAAA,GAAA,EAAA;gBAErB,EAAC,CAAA,GAAG,IAAG,KAAK;IAEd,YAAA,EAAA,GAAA,EAAE,SAAS,EAAE,KAAK,EAAE,CACrB,CAAC;SACH,CAAA;QAGD,uBAAY,CAAA,SAAA,CAAA,YAAA,GAAZ,UAAa,QAAgB,EAAA;YAC3B,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;SAChD,CAAA;QAGD,uBAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAe,QAAgB,EAAA;YAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC;SAClD,CAAA;IAGD,IAAA,uBAAA,CAAA,SAAA,CAAA,qBAAqB,GAArB,YAAA;IACE,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;SACrC,CAAA;IAGK,IAAA,uBAAA,CAAA,SAAA,CAAA,yBAAyB,GAAzB,UAA0B,KAAU,EAAE,UAAe,EAAA;;;;;;IACzD,wBAAA,IAAIZ,QAAM,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE;IAC9B,4BAAA,UAAU,CAAC,OAAO,GAAG,mCAAmC,CACtD,KAAK,EACL,UAAU,EACV,IAAI,CAAC,SAAS,CACf,CAAC;IACH,yBAAA;IACG,wBAAA,IAAA,CAAAA,QAAM,CAAC,UAAU,EAAE,qBAAqB,CAAC,EAAzC,OAAyC,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;IAC3C,wBAAA,EAAA,GAAA,UAAU,CAAA;4BAAW,OAAM,CAAA,CAAA,YAAA,kCAAkC,CAC3D,KAAK,EACL,UAAU,EACV,IAAI,CAAC,SAAS,CACf,CAAA,CAAA;;4BAJD,EAAW,CAAA,OAAO,GAAG,EAAA,CAAA,IAAA,EAIpB,CAAC;;IAGJ,oBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,aAAO,UAAU,CAAC,CAAA;;;IACnB,SAAA,CAAA,CAAA;SAAA,CAAA;QAGK,uBAAsB,CAAA,SAAA,CAAA,sBAAA,GAAtB,UACJ,MAAe,EACf,KAAa,EACb,YAAiB,EACjB,QAAa,EACb,gBAAqB,EAAA;;;oBAErB,QAAQ,MAAM,CAAC,GAAG;wBAChB,KAAK,UAAU,CAAC,gBAAgB;4BAC9B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;4BAC3C,MAAM;wBACR,KAAK,UAAU,CAAC,gBAAgB;4BAC9B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;4BAC3C,MAAM;wBACR,KAAK,UAAU,CAAC,kBAAkB;4BAChC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;4BAC7C,MAAM;wBACR,KAAK,UAAU,CAAC,mBAAmB;4BACjC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;4BAC9C,MAAM;IACR,oBAAA;4BACE,MAAM;IACT,iBAAA;;;IACF,SAAA,CAAA,CAAA;SAAA,CAAA;QAGK,uBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UACJ,MAAe,EACf,KAAa,EACb,YAAiB,EACjB,QAAa,EACb,gBAAqB,EAAA;;;;;;4BAEb,EAAA,GAAA,MAAM,CAAC,GAAG,CAAA;;IACX,4BAAA,KAAA,UAAU,CAAC,UAAU,EAArB,OAAqB,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;IAGrB,4BAAA,KAAA,UAAU,CAAC,UAAU,EAArB,OAAqB,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;IAGrB,4BAAA,KAAA,UAAU,CAAC,aAAa,EAAxB,OAAwB,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;IAGxB,4BAAA,KAAA,UAAU,CAAC,YAAY,EAAvB,OAAuB,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;IAGvB,4BAAA,KAAA,UAAU,CAAC,WAAW,EAAtB,OAAsB,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;IAGtB,4BAAA,KAAA,UAAU,CAAC,gBAAgB,EAA3B,OAA2B,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;IAG3B,4BAAA,KAAA,UAAU,CAAC,gBAAgB,EAA3B,OAA2B,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;IAG3B,4BAAA,KAAA,UAAU,CAAC,kBAAkB,EAA7B,OAA6B,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;IAG7B,4BAAA,KAAA,UAAU,CAAC,mBAAmB,EAA9B,OAA8B,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;IAG9B,4BAAA,KAAA,UAAU,CAAC,SAAS,EAApB,OAAoB,CAAA,CAAA,YAAA,EAAA,CAAA,CAAA;IAmBpB,4BAAA,KAAA,UAAU,CAAC,yBAAyB,EAApC,OAAoC,CAAA,CAAA,YAAA,EAAA,CAAA,CAAA;IAGpC,4BAAA,KAAA,UAAU,CAAC,MAAM,EAAjB,OAAiB,CAAA,CAAA,YAAA,EAAA,CAAA,CAAA;;;;4BAhDpB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;4BACtC,OAAM,CAAA,CAAA,YAAA,EAAA,CAAA,CAAA;;4BAEN,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;4BACtC,OAAM,CAAA,CAAA,YAAA,EAAA,CAAA,CAAA;;4BAEN,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;4BACzC,OAAM,CAAA,CAAA,YAAA,EAAA,CAAA,CAAA;;4BAEN,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;4BACxC,OAAM,CAAA,CAAA,YAAA,EAAA,CAAA,CAAA;;4BAEN,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;4BACvC,OAAM,CAAA,CAAA,YAAA,EAAA,CAAA,CAAA;;IAEN,wBAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;4BACjE,OAAM,CAAA,CAAA,YAAA,EAAA,CAAA,CAAA;;IAEN,wBAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;4BACjE,OAAM,CAAA,CAAA,YAAA,EAAA,CAAA,CAAA;;IAEN,wBAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;4BACnE,OAAM,CAAA,CAAA,YAAA,EAAA,CAAA,CAAA;;IAEN,wBAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;4BACnE,OAAM,CAAA,CAAA,YAAA,EAAA,CAAA,CAAA;;IAEA,wBAAA,OAAO,GAAG,IAAIU,SAAO,CACzB,KAAK,EACL,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,YAAY,CAClB,CAAC;IAEkB,wBAAA,OAAA,CAAA,CAAA,YAAM,OAAO,CAAC,kBAAkB,CAClD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAC1B,CAAA,CAAA;;IAFK,wBAAA,WAAW,GAAG,EAEnB,CAAA,IAAA,EAAA,CAAA;IACD,wBAAA,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAEtE,wBAAA,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IACtB,wBAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IACjC,wBAAA,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IACzC,wBAAA,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;4BAEjD,OAAM,CAAA,CAAA,YAAA,EAAA,CAAA,CAAA;;IAEN,wBAAA,IAAI,CAAC,uBAAuB,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;4BAC3D,OAAM,CAAA,CAAA,YAAA,EAAA,CAAA,CAAA;iCAEN,OAAM,CAAA,CAAA,YAAA,EAAA,CAAA,CAAA;iCAEN,OAAM,CAAA,CAAA,YAAA,EAAA,CAAA,CAAA;;;;IAEX,SAAA,CAAA,CAAA;SAAA,CAAA;;;kKA78BU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAgDxBO,iBAAc,EAAA,EAAA,EAAA,KAAA,EACdC,kBAAe,EAAA,EAAA,EAAA,KAAA,EAAAC,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAArB,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAjDd,mBAAA,uBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,EAFvB,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,SAAA,EAAA,CAAC,qBAAqB,CAAC,0DCvDpC,q4eA+ZA,EAAA,MAAA,EAAA,CAAA,0+DAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAsB,aAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,OAAA,EAAA,YAAA,EAAA,QAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,MAAA,EAAA,WAAA,EAAA,OAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,MAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,MAAA,EAAA,cAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,KAAA,EAAA,KAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,KAAA,EAAA,KAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,aAAA,EAAA,2BAAA,EAAA,4BAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,aAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAD,aAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,MAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,6BAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,OAAA,EAAA,YAAA,EAAA,QAAA,EAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,aAAA,EAAA,MAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,aAAA,EAAA,MAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAE,aAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAD,aAAA,CAAA,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAE,aAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,aAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAD,aAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,aAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAF,aAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,CAAA,EAAA,CAAA,CAAA;IDhTE,UAAA,CAAA;QADC,GAAG;KAOH,EAAA,uBAAA,CAAA,SAAA,EAAA,UAAA,EAAA,IAAA,CAAA,CAAA;IAGD,UAAA,CAAA;QADC,GAAG;KACsB,EAAA,uBAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,IAAA,CAAA,CAAA;IAG1B,UAAA,CAAA;QADC,GAAG;KA2DH,EAAA,uBAAA,CAAA,SAAA,EAAA,aAAA,EAAA,IAAA,CAAA,CAAA;IAGD,UAAA,CAAA;QADC,GAAG;KAmDH,EAAA,uBAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,IAAA,CAAA,CAAA;IAGD,UAAA,CAAA;QADC,GAAG;KAUH,EAAA,uBAAA,CAAA,SAAA,EAAA,6BAAA,EAAA,IAAA,CAAA,CAAA;IAGD,UAAA,CAAA;QADC,GAAG;KAGH,EAAA,uBAAA,CAAA,SAAA,EAAA,kCAAA,EAAA,IAAA,CAAA,CAAA;IAGD,UAAA,CAAA;QADC,GAAG;KAOH,EAAA,uBAAA,CAAA,SAAA,EAAA,6BAAA,EAAA,IAAA,CAAA,CAAA;IAGD,UAAA,CAAA;QADC,GAAG;KAmCH,EAAA,uBAAA,CAAA,SAAA,EAAA,yCAAA,EAAA,IAAA,CAAA,CAAA;IAGD,UAAA,CAAA;QADC,GAAG;KAgDH,EAAA,uBAAA,CAAA,SAAA,EAAA,kCAAA,EAAA,IAAA,CAAA,CAAA;IAGD,UAAA,CAAA;QADC,GAAG;KAqCH,EAAA,uBAAA,CAAA,SAAA,EAAA,oCAAA,EAAA,IAAA,CAAA,CAAA;IAGD,UAAA,CAAA;QADC,GAAG;KA4FH,EAAA,uBAAA,CAAA,SAAA,EAAA,8BAAA,EAAA,IAAA,CAAA,CAAA;IAGD,UAAA,CAAA;QADC,GAAG;KA2BH,EAAA,uBAAA,CAAA,SAAA,EAAA,yBAAA,EAAA,IAAA,CAAA,CAAA;IAID,UAAA,CAAA;QADC,GAAG;KAoCH,EAAA,uBAAA,CAAA,SAAA,EAAA,mBAAA,EAAA,IAAA,CAAA,CAAA;IAGD,UAAA,CAAA;QADC,GAAG;KAiBH,EAAA,uBAAA,CAAA,SAAA,EAAA,8BAAA,EAAA,IAAA,CAAA,CAAA;IAGD,UAAA,CAAA;QADC,GAAG;KAmDH,EAAA,uBAAA,CAAA,SAAA,EAAA,sBAAA,EAAA,IAAA,CAAA,CAAA;IAGD,UAAA,CAAA;QADC,GAAG;KAKH,EAAA,uBAAA,CAAA,SAAA,EAAA,wBAAA,EAAA,IAAA,CAAA,CAAA;IAGD,UAAA,CAAA;QADC,GAAG;KA0EH,EAAA,uBAAA,CAAA,SAAA,EAAA,uBAAA,EAAA,IAAA,CAAA,CAAA;IAID,UAAA,CAAA;QADC,GAAG;KAGH,EAAA,uBAAA,CAAA,SAAA,EAAA,yBAAA,EAAA,IAAA,CAAA,CAAA;IAID,UAAA,CAAA;QADC,GAAG;KASH,EAAA,uBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,IAAA,CAAA,CAAA;IAGD,UAAA,CAAA;QADC,GAAG;KAKH,EAAA,uBAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,IAAA,CAAA,CAAA;IAGD,UAAA,CAAA;QADC,GAAG;KASH,EAAA,uBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,IAAA,CAAA,CAAA;IAGD,UAAA,CAAA;QADC,GAAG;KAKH,EAAA,uBAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,IAAA,CAAA,CAAA;IAGD,UAAA,CAAA;QADC,GAAG;KAiBH,EAAA,uBAAA,CAAA,SAAA,EAAA,cAAA,EAAA,IAAA,CAAA,CAAA;IAGD,UAAA,CAAA;QADC,GAAG;KAKH,EAAA,uBAAA,CAAA,SAAA,EAAA,mBAAA,EAAA,IAAA,CAAA,CAAA;IAGD,UAAA,CAAA;QADC,GAAG;KAiBH,EAAA,uBAAA,CAAA,SAAA,EAAA,aAAA,EAAA,IAAA,CAAA,CAAA;IAGD,UAAA,CAAA;QADC,GAAG;KAKH,EAAA,uBAAA,CAAA,SAAA,EAAA,kBAAA,EAAA,IAAA,CAAA,CAAA;IAGD,UAAA,CAAA;QADC,GAAG;KAyCH,EAAA,uBAAA,CAAA,SAAA,EAAA,YAAA,EAAA,IAAA,CAAA,CAAA;IAGD,UAAA,CAAA;QADC,GAAG;KAWH,EAAA,uBAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,IAAA,CAAA,CAAA;IAGD,UAAA,CAAA;QADC,GAAG;KAWH,EAAA,uBAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,IAAA,CAAA,CAAA;IAGD,UAAA,CAAA;QADC,GAAG;KAUH,EAAA,uBAAA,CAAA,SAAA,EAAA,kBAAA,EAAA,IAAA,CAAA,CAAA;IAGD,UAAA,CAAA;QADC,GAAG;KAUH,EAAA,uBAAA,CAAA,SAAA,EAAA,kBAAA,EAAA,IAAA,CAAA,CAAA;IAGD,UAAA,CAAA;QADC,GAAG;KACmD,EAAA,uBAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,IAAA,CAAA,CAAA;IAGvD,UAAA,CAAA;QADC,GAAG;KAQH,EAAA,uBAAA,CAAA,SAAA,EAAA,wBAAA,EAAA,IAAA,CAAA,CAAA;IAGD,UAAA,CAAA;QADC,GAAG;KAGH,EAAA,uBAAA,CAAA,SAAA,EAAA,cAAA,EAAA,IAAA,CAAA,CAAA;IAGD,UAAA,CAAA;QADC,GAAG;KAGH,EAAA,uBAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,IAAA,CAAA,CAAA;IAGD,UAAA,CAAA;QADC,GAAG;KAGH,EAAA,uBAAA,CAAA,SAAA,EAAA,uBAAA,EAAA,IAAA,CAAA,CAAA;IAGD,UAAA,CAAA;QADC,GAAG;KAkBH,EAAA,uBAAA,CAAA,SAAA,EAAA,2BAAA,EAAA,IAAA,CAAA,CAAA;IAGD,UAAA,CAAA;QADC,GAAG;KAwBH,EAAA,uBAAA,CAAA,SAAA,EAAA,wBAAA,EAAA,IAAA,CAAA,CAAA;IAGD,UAAA,CAAA;QADC,GAAG;KA+DH,EAAA,uBAAA,CAAA,SAAA,EAAA,YAAA,EAAA,IAAA,CAAA,CAAA;sHA78BU,uBAAuB,EAAA,UAAA,EAAA,CAAA;sBANnCvB,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,kBAAkB;IAC5B,oBAAA,WAAW,EAAE,4BAA4B;wBACzC,SAAS,EAAE,CAAC,4BAA4B,CAAC;wBACzC,SAAS,EAAE,CAAC,qBAAqB,CAAC;qBACnC,CAAA;;;kCAiDI0B,SAAM;mCAACR,iBAAc,CAAA;;kCACrBQ,SAAM;mCAACP,kBAAe,CAAA;;6BA/CzB,UAAU,EAAA,CAAA;0BADTQ,QAAK;oBAIN,QAAQ,EAAA,CAAA;0BADPA,QAAK;oBAIN,eAAe,EAAA,CAAA;0BADdA,QAAK;oBAIN,YAAY,EAAA,CAAA;0BADXA,QAAK;oBAIN,YAAY,EAAA,CAAA;0BADXA,QAAK;oBAIN,SAAS,EAAA,CAAA;0BADRA,QAAK;oBAIN,gBAAgB,EAAA,CAAA;0BADfC,SAAM;oBAIP,eAAe,EAAA,CAAA;0BADdA,SAAM;oBAIP,cAAc,EAAA,CAAA;0BADbA,SAAM;oBAIP,iBAAiB,EAAA,CAAA;0BADhBA,SAAM;IA0BP,aAAA,CAAA,EAAA,QAAQ,EASR,EAAA,EAAA,eAAe,EAGf,EAAA,EAAA,WAAW,MA6DL,cAAc,EAAA,EAAA,EAqDpB,2BAA2B,EAAA,EAAA,EAY3B,gCAAgC,EAKhC,EAAA,EAAA,2BAA2B,EASrB,EAAA,EAAA,uCAAuC,MAqCvC,gCAAgC,EAAA,EAAA,EAkDhC,kCAAkC,EAAA,EAAA,EAuClC,4BAA4B,EA8F5B,EAAA,EAAA,uBAAuB,EA8B7B,EAAA,EAAA,iBAAiB,MAsCX,4BAA4B,EAAA,EAAA,EAmB5B,oBAAoB,EAAA,EAAA,EAqD1B,sBAAsB,EAOtB,EAAA,EAAA,qBAAqB,EA6ErB,EAAA,EAAA,uBAAuB,MAMvB,SAAS,EAAA,EAAA,EAWT,cAAc,EAAA,EAAA,EAOd,SAAS,EAWT,EAAA,EAAA,cAAc,EAOd,EAAA,EAAA,YAAY,MAmBZ,iBAAiB,EAAA,EAAA,EAOjB,WAAW,EAAA,EAAA,EAmBX,gBAAgB,EAOhB,EAAA,EAAA,UAAU,EA2CV,EAAA,EAAA,cAAc,MAad,cAAc,EAAA,EAAA,EAad,gBAAgB,EAAA,EAAA,EAYhB,gBAAgB,EAYhB,EAAA,EAAA,cAAc,EAGd,EAAA,EAAA,sBAAsB,MAUtB,YAAY,EAAA,EAAA,EAKZ,cAAc,EAAA,EAAA,EAKd,qBAAqB,EAKf,EAAA,EAAA,yBAAyB,EAoBzB,EAAA,EAAA,sBAAsB,MA0BtB,UAAU,EAAA,EAAA,EAAA,EAAA,CAAA;;IEx8BX,IAAM,MAAM,GAAG,UAAC,MAAW,EAAE,GAAW,EAAA;IAC7C,IAAA,OAAO,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;;ACcD,QAAA,wBAAA,kBAAA,YAAA;IA6BE,IAAA,SAAA,wBAAA,GAAA;IA3BA,QAAA,IAAc,CAAA,cAAA,GAAQ,EAAE,CAAC;IAGzB,QAAA,IAAU,CAAA,UAAA,GAAQ,EAAE,CAAC;IAGrB,QAAA,IAAS,CAAA,SAAA,GAAU,EAAE,CAAC;IAGtB,QAAA,IAAkB,CAAA,kBAAA,GAAU,EAAE,CAAC;IAG/B,QAAA,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;IAG9B,QAAA,IAAA,CAAA,oBAAoB,GAAsB,IAAIZ,eAAY,EAAO,CAAC;IAGlE,QAAA,IAAA,CAAA,oBAAoB,GAAsB,IAAIA,eAAY,EAAO,CAAC;IAGlE,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAIA,eAAY,EAAO,CAAC;IAE7C,QAAA,IAAY,CAAA,YAAA,GAAW,EAAE,CAAC;IAE1B,QAAA,IAAmB,CAAA,mBAAA,GAAY,IAAI,CAAC;SAEpB;IAEhB,IAAA,wBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YACE,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC1E,CAAA;QAED,wBAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,OAAsB,EAAA;YAChC,IAAM,YAAY,GAAG,UAAC,GAAW,EAAA;IAC/B,YAAA,OAAO,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC;IAC3D,SAAC,CAAC;IACF,QAAA,IAAI,YAAY,CAAC,gBAAgB,CAAC,EAAE;gBAClC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC;IAC3D,SAAA;IACD,QAAA,IAAI,YAAY,CAAC,WAAW,CAAC,EAAE;gBAC7B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC;gBAChD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1E,SAAA;IACD,QAAA,IAAI,YAAY,CAAC,cAAc,CAAC,EAAE;gBAChC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC;IACvD,SAAA;SACF,CAAA;QAED,wBAAwB,CAAA,SAAA,CAAA,wBAAA,GAAxB,UAAyB,SAAgB,EAAA;;YACvC,IAAI,mBAAmB,GAAY,IAAI,CAAC;;IAExC,YAAA,KAAkB,IAAA,WAAA,GAAA,QAAA,CAAA,SAAS,CAAA,oCAAA,EAAE,CAAA,aAAA,CAAA,IAAA,EAAA,aAAA,GAAA,WAAA,CAAA,IAAA,EAAA,EAAA;IAAxB,gBAAA,IAAI,KAAK,GAAA,aAAA,CAAA,KAAA,CAAA;IACZ,gBAAA,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,EAAE;wBAChC,mBAAmB,GAAG,KAAK,CAAC;wBAC5B,MAAM;IACP,iBAAA;IACF,aAAA;;;;;;;;;IAED,QAAA,OAAO,mBAAmB,CAAC;SAC5B,CAAA;QAED,wBAA0B,CAAA,SAAA,CAAA,0BAAA,GAA1B,UAA2B,YAAoB,EAAA;IAC7C,QAAA,IACE,IAAI,CAAC,YAAY,KAAK,YAAY;iBACjC,IAAI,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,EAClD;IACA,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACjC,YAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9C,SAAA;SACF,CAAA;QAED,wBAAmB,CAAA,SAAA,CAAA,mBAAA,GAAnB,UAAoB,CAAM,EAAA;IACxB,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACjC,CAAA;;;mKA5EU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAjB,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAAxB,mBAAA,wBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,oZChBrC,mzFAmFA,EAAA,MAAA,EAAA,CAAA,m8HAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA8B,aAAA,CAAA,gCAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAR,aAAA,CAAA,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAQ,aAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,OAAA,EAAA,YAAA,EAAA,QAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,MAAA,EAAA,WAAA,EAAA,OAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAP,aAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;sHDnEa,wBAAwB,EAAA,UAAA,EAAA,CAAA;sBALpCtB,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,mBAAmB;IAC7B,oBAAA,WAAW,EAAE,6BAA6B;wBAC1C,SAAS,EAAE,CAAC,6BAA6B,CAAC;qBAC3C,CAAA;8EAGC,cAAc,EAAA,CAAA;0BADb2B,QAAK;oBAIN,UAAU,EAAA,CAAA;0BADTA,QAAK;oBAIN,SAAS,EAAA,CAAA;0BADRA,QAAK;oBAIN,kBAAkB,EAAA,CAAA;0BADjBA,QAAK;oBAIN,YAAY,EAAA,CAAA;0BADXA,QAAK;oBAIN,oBAAoB,EAAA,CAAA;0BADnBC,SAAM;oBAIP,oBAAoB,EAAA,CAAA;0BADnBA,SAAM;oBAIP,kBAAkB,EAAA,CAAA;0BADjBA,SAAM;;;IEtBT,IAAA,OAAA,kBAAA,YAAA;IASE,IAAA,SAAA,OAAA,CAAY,UAAe,EAAA;IACzB,QAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;SAC/B;IATD,IAAA,MAAA,CAAA,cAAA,CAAI,OAAU,CAAA,SAAA,EAAA,YAAA,EAAA;IAAd,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,WAAW,CAAC;aACzB;IACD,QAAA,GAAA,EAAA,UAAe,KAAU,EAAA;IACvB,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;aAC1B;;;IAHA,KAAA,CAAA,CAAA;QASO,OAAsB,CAAA,SAAA,CAAA,sBAAA,GAAtB,UAAuB,IAAY,EAAA;YACzC,IAAI,KAAK,GAAQ,EAAE,CAAC;IACpB,QAAA,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE;gBACpB,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAChD,SAAA;IAAM,aAAA;IACL,YAAA,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzC,SAAA;IACD,QAAA,OAAO,KAAK,CAAC;SACd,CAAA;IAEO,IAAA,OAAA,CAAA,SAAA,CAAA,0BAA0B,GAA1B,UACN,IAAyB,EACzB,GAAW,EAAA;YAEX,IAAI,KAAK,GAAQ,EAAE,CAAC;IACpB,QAAA,QAAQ,IAAI;gBACV,KAAK,mBAAmB,CAAC,aAAa;oBACpC,KAAK,GAAG,6BAA6B,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9D,sBAAE,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC;0BACzB,EAAE,CAAC;oBACP,MAAM;gBACR,KAAK,mBAAmB,CAAC,eAAe;oBACtC,KAAK,GAAG,6BAA6B,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChE,sBAAE,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC;0BAC3B,EAAE,CAAC;oBACP,MAAM;IACR,YAAA;oBACE,KAAK,GAAG,EAAE,CAAC;oBACX,MAAM;IACT,SAAA;IACD,QAAA,OAAO,KAAK,CAAC;SACd,CAAA;QAED,OAAkB,CAAA,SAAA,CAAA,kBAAA,GAAlB,UAAmB,MAAe,EAAA;YAChC,IAAI,KAAK,GAAQ,EAAE,CAAC;YAEpB,QAAQ,MAAM,CAAC,GAAG;gBAChB,KAAK,UAAU,CAAC,WAAW;oBACzB,KAAK,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACvD,MAAM;gBACR,KAAK,UAAU,CAAC,eAAe;oBAC7B,KAAK,GAAG,IAAI,CAAC,0BAA0B,CACrC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,EAChC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAChC,CAAC;oBACF,MAAM;gBACR,KAAK,UAAU,CAAC,UAAU;IACxB,gBAAA,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;oBACrB,MAAM;IACR,YAAA;oBACE,KAAK,GAAG,EAAE,CAAC;oBACX,MAAM;IACT,SAAA;IAED,QAAA,OAAO,KAAK,CAAC;SACd,CAAA;IAEO,IAAA,OAAA,CAAA,SAAA,CAAA,oBAAoB,GAApB,UAAqB,IAAY,EAAE,KAAU,EAAA;IACnD,QAAA,IAAI,CAAC,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;SACpE,CAAA;IACO,IAAA,OAAA,CAAA,SAAA,CAAA,wBAAwB,GAAxB,UAAyB,IAAY,EAAE,GAAW,EAAE,KAAU,EAAA;IACpE,QAAA,QAAQ,IAAI;gBACV,KAAK,mBAAmB,CAAC,aAAa;IACpC,gBAAA,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;oBACjC,MAAM;gBACR,KAAK,mBAAmB,CAAC,eAAe;IACtC,gBAAA,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;oBACnC,MAAM;IACR,YAAA;oBACE,MAAM;IACT,SAAA;SACF,CAAA;IAEK,IAAA,OAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,UAAiB,MAAe,EAAE,KAAU,EAAA;;;;;;4BACxC,EAAA,GAAA,MAAM,CAAC,GAAG,CAAA;;IACX,4BAAA,KAAA,UAAU,CAAC,WAAW,EAAtB,OAAsB,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;IAGtB,4BAAA,KAAA,UAAU,CAAC,eAAe,EAA1B,OAA0B,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;;;;4BAF7B,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;4BACpD,OAAM,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;gCAEN,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,wBAAwB,CACjC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,EAChC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,EAC/B,KAAK,CACN,CAAA,CAAA;;IAJD,wBAAA,EAAA,CAAA,IAAA,EAIC,CAAC;4BACF,OAAM,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;gCAEN,OAAM,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;;;;IAEX,SAAA,CAAA,CAAA;SAAA,CAAA;QACF,OAAA,OAAA,CAAA;IAAA,CAAA,EAAA,CAAA;;ICpHD,IAAA,SAAA,kBAAA,YAAA;QAIE,SAAY,SAAA,CAAA,SAAiB,EAAE,YAAiB,EAAA;IAC9C,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC5B,QAAA,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;SACnC;IAEO,IAAA,SAAA,CAAA,SAAA,CAAA,SAAS,GAAT,UAAU,SAAiB,EAAE,sBAA8B,EAAA;YACjE,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG,EAAA;IAC9C,YAAA,SAAS,GAAG,aAAa,CAAC,SAAS,EAAE,GAAG,EAAE,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC;IACzE,SAAC,CAAC,CAAC;IAEH,QAAA,OAAO,SAAS,CAAC;SAClB,CAAA;QAEO,SAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAe,SAAiB,EAAA;IACtC,QAAA,OAAO,SAAS,CAAC,OAAO,CAAC,+BAA+B,EAAE,UAAC,KAAK,EAAA;IAC9D,YAAA,QAAQ,KAAK;IACX,gBAAA,KAAK,KAAK;IACR,oBAAA,OAAO,IAAI,CAAC;IACd,gBAAA,KAAK,IAAI;IACP,oBAAA,OAAO,IAAI,CAAC;IACd,gBAAA,KAAK,KAAK;IACR,oBAAA,OAAO,GAAG,CAAC;IACb,gBAAA,KAAK,KAAK;IACR,oBAAA,OAAO,GAAG,CAAC;IACb,gBAAA,KAAK,MAAM;IACT,oBAAA,OAAO,IAAI,CAAC;IACd,gBAAA,KAAK,KAAK;IACR,oBAAA,OAAO,IAAI,CAAC;IACd,gBAAA,KAAK,MAAM;IACT,oBAAA,OAAO,IAAI,CAAC;IACd,gBAAA;IACE,oBAAA,OAAO,KAAK,CAAC;IAChB,aAAA;IACH,SAAC,CAAC,CAAC;SACJ,CAAA;IAED,IAAA,SAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACE,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACtE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAEvD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC9B,CAAA;QACF,OAAA,SAAA,CAAA;IAAA,CAAA,EAAA,CAAA;;IC9CD,IAAA,OAAA,kBAAA,YAAA;IAME,IAAA,SAAA,OAAA,CACE,MAAW,EACX,WAAgB,EAChB,UAAe,EACf,UAAoB,EAAA;IAEpB,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACtB,QAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;IAC9B,QAAA,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IAChC,QAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;SAC/B;IAEK,IAAA,OAAA,CAAA,SAAA,CAAA,OAAO,GAAP,YAAA;;;;IACE,gBAAA,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACrE,gBAAA,aAAa,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;IAE3C,gBAAA,IAAI,aAAa,EAAE;IACjB,oBAAA,OAAA,CAAA,CAAA,aAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAA;IACzD,iBAAA;;;IACF,SAAA,CAAA,CAAA;SAAA,CAAA;QACF,OAAA,OAAA,CAAA;IAAA,CAAA,EAAA,CAAA;;ICXD,IAAA,KAAA,kBAAA,YAAA;QAIE,SAAY,KAAA,CAAA,KAAmB,EAAE,UAAe,EAAA;IAC9C,QAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;IAC9B,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;SACrB;QAEO,KAAQ,CAAA,SAAA,CAAA,QAAA,GAAR,UAAS,IAAW,EAAA;IAC1B,QAAA,IAAI,QAAQ,GAAc,IAAI,CAAC,GAAG,CAAC;YACnC,IAAI,oBAAoB,GAAY,KAAK,CAAC;YAE1C,IAAM,MAAM,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAE7C,QAAA,QAAQ,QAAQ;gBACd,KAAK,QAAQ,CAAC,kBAAkB;oBAC9B,IAAM,oBAAoB,GAAG,IAA6B,CAAC;IAC3D,gBAAA,IAAM,0BAA0B,GAAG,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC;IACrE,gBAAA,IAAM,wBAAwB,GAAG,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC;IAEjE,gBAAA,QAAQ,0BAA0B;wBAChC,KAAK,UAAU,CAAC,WAAW;4BACzB,oBAAoB,GAAG,OAAO,CAC5B,IAAI,CAAC,WAAW,EAChB,wBAAwB,CACzB,CAAC;4BACF,MAAM;IACR,oBAAA;4BACE,oBAAoB,GAAG,KAAK,CAAC;4BAC7B,MAAM;IACT,iBAAA;oBACD,MAAM;gBACR,KAAK,QAAQ,CAAC,WAAW;oBACvB,IAAM,cAAc,GAAG,IAAuB,CAAC;oBAC/C,IAAM,oBAAoB,GAAY,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;oBACxE,IAAM,mBAAmB,GACvB,MAAM,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;oBAElD,IAAI,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,WAAW,CAAC,MAAM,EAAE;IAC3D,oBAAA,IAAI,EAAE,GAAG,IAAI,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3D,iBAAA;IAAM,qBAAA;IACL,oBAAA,IAAI,EAAE,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IACjE,iBAAA;IAED,gBAAA,oBAAoB,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;oBACpD,MAAM;gBACR,KAAK,QAAQ,CAAC,YAAY;oBACxB,IAAM,eAAe,GAAG,IAAwB,CAAC;oBACjD,IAAM,4BAA4B,GAChC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;oBAC7C,IAAM,6BAA6B,GACjC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;oBAE9C,IAAM,aAAa,GAAG,MAAM,CAAC,kBAAkB,CAC7C,6BAA6B,CAC9B,CAAC;oBACF,IAAM,YAAY,GAAG,MAAM,CAAC,kBAAkB,CAC5C,4BAA4B,CAC7B,CAAC;IAEF,gBAAA,oBAAoB,GAAG,aAAa,KAAK,YAAY,CAAC;oBACtD,MAAM;IACR,YAAA;oBACE,MAAM;IACT,SAAA;IAED,QAAA,OAAO,oBAAoB,CAAC;SAC7B,CAAA;IAEM,IAAA,KAAA,CAAA,SAAA,CAAA,OAAO,GAAP,YAAA;;YACL,IAAI,sBAAsB,GAAG,EAAE,CAAC;;gBAEhC,KAAmB,IAAA,KAAA,QAAA,CAAA,IAAI,CAAC,MAAM,CAAA,gBAAA,EAAE,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA;IAA3B,gBAAA,IAAM,IAAI,GAAA,EAAA,CAAA,KAAA,CAAA;oBACb,IAAM,oBAAoB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBAEjD,sBAAsB,GAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACjB,sBAAsB,CAAA,YACzB,EAAC,CAAA,IAAI,CAAC,EAAE,CAAA,GAAG,oBAAoB,EAAA,EAAA,EAChC,CAAC;IACH,aAAA;;;;;;;;;IAED,QAAA,OAAO,sBAAsB,CAAC;SAC/B,CAAA;QACF,OAAA,KAAA,CAAA;IAAA,CAAA,EAAA,CAAA;;ICjGD,IAAA,WAAA,kBAAA,YAAA;QAWE,SAAY,WAAA,CAAA,UAAU,EAAE,UAAe,EAAA;IACrC,QAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;IAC9B,QAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;SAC/B;IAZD,IAAA,MAAA,CAAA,cAAA,CAAI,WAAU,CAAA,SAAA,EAAA,YAAA,EAAA;IAAd,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,WAAW,CAAC;aACzB;IACD,QAAA,GAAA,EAAA,UAAe,KAAU,EAAA;IACvB,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;aAC1B;;;IAHA,KAAA,CAAA,CAAA;IAYK,IAAA,WAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;;;;;;;4BACE,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,UAAU,CAAC;4BAE/D,QAAQ,GAAG,WAAW,KAAA,IAAA,IAAX,WAAW,KAAX,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,WAAW,CAAE,QAAQ,CAAC;IACjC,wBAAA,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;IAC1B,wBAAA,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;IAE9B,wBAAA,YAAY,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC;;;;4BAE/C,SAAA,GAAA,QAAA,CAAA,OAAO,CAAA,EAAA,WAAA,GAAA,SAAA,CAAA,IAAA,EAAA,CAAA;;;;4BAAjB,MAAM,GAAA,WAAA,CAAA,KAAA,CAAA;IACP,wBAAA,mBAAmB,GAAG,IAAI,SAAS,CACvC,MAAM,CAAC,SAAS,EAChB,YAAY,CACb,CAAC,QAAQ,EAAE,CAAC;IAET,wBAAA,IAAA,CAAA,mBAAmB,EAAnB,OAAmB,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;IACf,wBAAA,SAAA,GAAU,IAAI,OAAO,CACzB,MAAM,EACN,YAAY,EACZ,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,WAAW,CACjB,CAAC;IAEF,wBAAA,OAAA,CAAA,CAAA,YAAM,SAAO,CAAC,OAAO,EAAE,CAAA,CAAA;;IAAvB,wBAAA,EAAA,CAAA,IAAA,EAAuB,CAAC;;;;;;;;;;;;;;;;;;;IAG7B,SAAA,CAAA,CAAA;SAAA,CAAA;QACF,OAAA,WAAA,CAAA;IAAA,CAAA,EAAA,CAAA;;IC1CD,IAAA,SAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,SAAA,GAAA;IACE,QAAA,IAAA,CAAA,aAAa,GAAG,UAAC,UAAe,EAAA;IAC9B,YAAA,IAAI,MAAa,CAAC;IAElB,YAAA,IAAI3B,QAAM,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE;IACnC,gBAAA,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC;IACtC,aAAA;IAAM,iBAAA;IACL,gBAAA,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC5B,aAAA;IAED,YAAA,OAAO,MAAM,CAAC;IAChB,SAAC,CAAC;YAEF,IAAuB,CAAA,uBAAA,GAAG,UAAC,KAAU,EAAE,GAAW,EAAE,KAAU,EAAA;IAC5D,YAAA,IAAI,CAACA,QAAM,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE;IACvB,gBAAA,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACpB,aAAA;IACD,YAAA,OAAO,KAAK,CAAC;IACf,SAAC,CAAC;YAEF,IAAgB,CAAA,gBAAA,GAAG,UAAC,KAAU,EAAE,GAAW,EAAE,KAAU,EAAA;IACrD,YAAA,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAEnB,YAAA,OAAO,KAAK,CAAC;IACf,SAAC,CAAC;IAEF,QAAA,IAAA,CAAA,cAAc,GAAG,UAAC,KAAU,EAAE,GAAW,EAAA;IACvC,YAAA,IAAIA,QAAM,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE;IACtB,gBAAA,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,aAAA;IAED,YAAA,OAAO,KAAK,CAAC;IACf,SAAC,CAAC;SA0sBH;QAvsBC,SAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,UAAe,EAAA;;YAAjC,IAssBC,KAAA,GAAA,IAAA,CAAA;YArsBC,IAAM,iBAAiB,GAAG,UAAC,KAAU,EAAA;gBACnC,IAAM,oBAAoB,GAAG,UAAC,KAAU,EAAA;oBACtC,KAAK,GAAG,KAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAEtD,gBAAA,OAAO,KAAK,CAAC;IACf,aAAC,CAAC;gBACF,IAAM,oBAAoB,GAAG,UAAC,KAAU,EAAA;IACtC,gBAAA,KAAK,CAAC,UAAU,GAAG,KAAI,CAAC,uBAAuB,CAC7C,KAAK,CAAC,UAAU,EAChB,MAAM,EACN,GAAG,CACJ,CAAC;IACF,gBAAA,KAAK,CAAC,UAAU,GAAG,KAAI,CAAC,uBAAuB,CAC7C,KAAK,CAAC,UAAU,EAChB,aAAa,EACb,UAAU,CACX,CAAC;oBACF,KAAK,GAAG,KAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;oBAEtD,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,CAAM,EAAA;wBACvC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;4BAClD,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACtC,qBAAA;IAAM,yBAAA;IACL,wBAAA,IAAIA,QAAM,CAAC,CAAC,EAAE,OAAO,CAAC,IAAIA,QAAM,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE;IAC/C,4BAAA,OAAO,CAAC,CAAC;IACV,yBAAA;IACF,qBAAA;IACH,iBAAC,CAAC,CAAC;IAEH,gBAAA,OAAO,KAAK,CAAC;IACf,aAAC,CAAC;gBACF,IAAM,kBAAkB,GAAG,UAAC,KAAU,EAAA;IACpC,gBAAA,KAAK,CAAC,UAAU,GAAG,KAAI,CAAC,uBAAuB,CAC7C,KAAK,CAAC,UAAU,EAChB,MAAM,EACN,IAAI,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAC1D,CAAC;oBACF,KAAK,GAAG,KAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAEtD,gBAAA,OAAO,KAAK,CAAC;IACf,aAAC,CAAC;gBACF,IAAM,mBAAmB,GAAG,UAAC,KAAU,EAAA;IACrC,gBAAA,IAAIA,QAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;wBACxB,IAAM,MAAM,GAAG,+BAA+B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7D,oBAAA,KAAK,CAAC,UAAU,GAAG,KAAI,CAAC,gBAAgB,CACtC,KAAK,CAAC,UAAU,EAChB,KAAK,EACL,MAAM,CACP,CAAC;IACH,iBAAA;IAAM,qBAAA;wBACL,KAAK,CAAC,UAAU,GAAG,KAAI,CAAC,uBAAuB,CAC7C,KAAK,CAAC,UAAU,EAChB,KAAK,EACL,IAAIO,UAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CACpB,CAAC;IACH,iBAAA;IAED,gBAAA,IAAIP,QAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;wBACxB,IAAM,MAAM,GAAG,+BAA+B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7D,oBAAA,KAAK,CAAC,UAAU,GAAG,KAAI,CAAC,gBAAgB,CACtC,KAAK,CAAC,UAAU,EAChB,KAAK,EACL,MAAM,CACP,CAAC;IACH,iBAAA;IAAM,qBAAA;wBACL,KAAK,CAAC,UAAU,GAAG,KAAI,CAAC,uBAAuB,CAC7C,KAAK,CAAC,UAAU,EAChB,KAAK,EACL,IAAIO,UAAM,CACR,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;IACxB,oBAAA,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE;IACrB,oBAAA,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;IACrB,qBAAA,CACF,CAAC;IACH,iBAAA;oBAED,KAAK,GAAG,KAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAEtD,gBAAA,OAAO,KAAK,CAAC;IACf,aAAC,CAAC;gBACF,IAAM,qBAAqB,GAAG,UAAC,KAAU,EAAA;IACvC,gBAAA,IAAIP,QAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;IACxB,oBAAA,IAAI,KAAK,CAAC,GAAG,KAAK,gBAAgB,EAAE;4BAClC,KAAK,GAAG,KAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAChE,qBAAA;IACD,oBAAA,IAAI,KAAK,CAAC,GAAG,KAAK,gBAAgB,EAAE;4BAClC,KAAK,GAAG,KAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACvD,qBAAA;wBAED,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;IACrD,wBAAA,KAAK,CAAC,UAAU,GAAG,KAAI,CAAC,uBAAuB,CAC7C,KAAK,CAAC,UAAU,EAChB,aAAa,EACb,KAAK,CACN,CAAC;IACF,wBAAA,KAAK,CAAC,UAAU,GAAG,KAAI,CAAC,uBAAuB,CAC7C,KAAK,CAAC,UAAU,EAChB,2BAA2B,EAC3B,aAAa,CACd,CAAC;IACF,wBAAA,KAAK,CAAC,UAAU,GAAG,KAAI,CAAC,uBAAuB,CAC7C,KAAK,CAAC,UAAU,EAChB,4BAA4B,EAC5B,IAAI,CACL,CAAC;IACF,wBAAA,KAAK,CAAC,UAAU,GAAG,KAAI,CAAC,uBAAuB,CAC7C,KAAK,CAAC,UAAU,EAChB,SAAS,EACT,OAAO,CACR,CAAC;IACF,wBAAA,KAAK,CAAC,UAAU,GAAG,KAAI,CAAC,uBAAuB,CAC7C,KAAK,CAAC,UAAU,EAChB,QAAQ,EACR,EAAE,CACH,CAAC;IACF,wBAAA,KAAK,CAAC,UAAU,GAAG,KAAI,CAAC,uBAAuB,CAC7C,KAAK,CAAC,UAAU,EAChB,SAAS,EACT,EAAE,CACH,CAAC;IACF,wBAAA,KAAK,CAAC,UAAU,GAAG,KAAI,CAAC,uBAAuB,CAC7C,KAAK,CAAC,UAAU,EAChB,KAAK,EACL,CAAC,QAAQ,CACV,CAAC;IACF,wBAAA,KAAK,CAAC,UAAU,GAAG,KAAI,CAAC,uBAAuB,CAC7C,KAAK,CAAC,UAAU,EAChB,KAAK,EACL,QAAQ,CACT,CAAC;IACF,wBAAA,KAAK,CAAC,UAAU,GAAG,KAAI,CAAC,uBAAuB,CAC7C,KAAK,CAAC,UAAU,EAChB,WAAW,EACX,CAAC,CACF,CAAC;IACH,qBAAA;IACF,iBAAA;oBAED,KAAK,GAAG,KAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAEtD,gBAAA,OAAO,KAAK,CAAC;IACf,aAAC,CAAC;gBACF,IAAM,sBAAsB,GAAG,UAAC,KAAU,EAAA;oBACxC,IAAI,CAACA,QAAM,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE;IACtC,oBAAA,KAAK,CAAC,UAAU,GAAG,KAAI,CAAC,gBAAgB,CACtC,KAAK,CAAC,UAAU,EAChB,OAAO,EACP,IAAI,CACL,CAAC;IACH,iBAAA;IACD,gBAAA,IAAI,CAACA,QAAM,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE;wBAChC,KAAK,GAAG,KAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;IAC3D,iBAAA;oBACD,IAAI,CAACA,QAAM,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE;IACrC,oBAAA,KAAK,CAAC,UAAU,GAAG,KAAI,CAAC,gBAAgB,CACtC,KAAK,CAAC,UAAU,EAChB,MAAM,EACN,GAAG,CACJ,CAAC;IACH,iBAAA;IACD,gBAAA,IAAI,CAACA,QAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;wBACzB,KAAK,GAAG,KAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAEhD,oBAAA,KAAK,CAAC,GAAG,GAAG,KAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAC/D,oBAAA,KAAK,CAAC,GAAG,GAAG,KAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IACnE,oBAAA,KAAK,CAAC,GAAG,GAAG,KAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;IACpE,oBAAA,KAAK,CAAC,GAAG,GAAG,KAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IAElE,oBAAA,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,KAAI,CAAC,uBAAuB,CAC7C,KAAK,CAAC,GAAG,CAAC,MAAM,EAChB,OAAO,EACP,SAAS,CACV,CAAC;IACF,oBAAA,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,KAAI,CAAC,uBAAuB,CAC7C,KAAK,CAAC,GAAG,CAAC,MAAM,EAChB,QAAQ,EACR;IACE,wBAAA,OAAO,EAAE,UAAU;IACnB,wBAAA,OAAO,EAAE,UAAU;IACnB,wBAAA,OAAO,EAAE,aAAa;IACtB,wBAAA,MAAM,EAAE,YAAY;IACrB,qBAAA,CACF,CAAC;IACH,iBAAA;IACD,gBAAA,OAAO,KAAK,CAAC;IACf,aAAC,CAAC;gBACF,IAAM,yBAAyB,GAAG,UAAC,KAAU,EAAA;IAC3C,gBAAA,IAAIA,QAAM,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE;IACzB,oBAAA,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE;4BAChC,KAAK,GAAG,KAAI,CAAC,gBAAgB,CAC3B,KAAK,EACL,MAAM,EACN,sBAAsB,CACvB,CAAC;IACH,qBAAA;IACF,iBAAA;IAED,gBAAA,OAAO,KAAK,CAAC;IACf,aAAC,CAAC;gBACF,IAAM,mBAAmB,GAAG,UAAC,KAAU,EAAA;IACrC,gBAAA,OAAO,KAAK,CAAC;IACf,aAAC,CAAC;gBAEF,QAAQ,KAAK,CAAC,IAAI;IAChB,gBAAA,KAAK,OAAO;IACV,oBAAA,KAAK,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;wBACpC,MAAM;IACR,gBAAA,KAAK,OAAO;IACV,oBAAA,KAAK,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;wBACpC,MAAM;IACR,gBAAA,KAAK,KAAK;IACR,oBAAA,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;wBAClC,MAAM;IACR,gBAAA,KAAK,MAAM;IACT,oBAAA,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;wBACnC,MAAM;IACR,gBAAA,KAAK,QAAQ;IACX,oBAAA,KAAK,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;wBACrC,MAAM;IACR,gBAAA,KAAK,UAAU;IACb,oBAAA,KAAK,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;wBACtC,MAAM;IACR,gBAAA,KAAK,aAAa;IAChB,oBAAA,KAAK,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;wBACzC,MAAM;IACR,gBAAA;wBACE,MAAM;IACT,aAAA;IAED,YAAA,OAAO,KAAK,CAAC;IACf,SAAC,CAAC;YAEF,IAAM,iCAAiC,GAAG,UAAC,GAAQ,EAAA;IACjD,YAAA,IAAM,MAAM,GAAG;IACb,gBAAA,GAAG,EAAE,GAAG;oBACR,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;oBACtC,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;iBACtC,CAAC;IACF,YAAA,OAAO,MAAM,CAAC;IAChB,SAAC,CAAC;YAEF,IAAM,eAAe,GAAG,UAAC,KAAU,EAAA;IACjC,YAAA,IAAIA,QAAM,CAAC,KAAK,EAAE,aAAa,CAAC,EAAE;IAChC,gBAAA,IAAI,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,QAAQ,EAAE;wBAC5C,KAAK,CAAC,mBAAmB,CAAC,GAAG;IAC3B,wBAAA,iCAAiC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;yBACxD,CAAC;IACH,iBAAA;IAAM,qBAAA;IACL,oBAAA,KAAK,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,UAAC,GAAW,EAAA;IAC1D,wBAAA,OAAO,iCAAiC,CAAC,GAAG,CAAC,CAAC;IAChD,qBAAC,CAAC,CAAC;wBACH,KAAK,CAAC,mBAAmB,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;IACnD,iBAAA;IACF,aAAA;IACD,YAAA,KAAI,CAAC,cAAc,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IAE1C,YAAA,IAAIA,QAAM,CAAC,KAAK,EAAE,mBAAmB,CAAC,EAAE;IACtC,gBAAA,IAAI,OAAO,KAAK,CAAC,mBAAmB,CAAC,KAAK,QAAQ,EAAE;wBAClD,KAAK,CAAC,uBAAuB,CAAC,GAAG;IAC/B,wBAAA,iCAAiC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;yBAC9D,CAAC;IACH,iBAAA;IAAM,qBAAA;wBACL,KAAK,CAAC,uBAAuB,CAAC,GAAG,iCAAiC,CAChE,KAAK,CAAC,mBAAmB,CAAC,CAC3B,CAAC;IACH,iBAAA;IACF,aAAA;IACD,YAAA,KAAI,CAAC,cAAc,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;IAEhD,YAAA,KAAI,CAAC,cAAc,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAEzC,YAAA,OAAO,KAAK,CAAC;IACf,SAAC,CAAC;IAEF,QAAA,IAAM,+BAA+B,GAAG,UACtC,KAAU,EACV,qBAA0B,EAAA;IAE1B,YAAA,IAAM,oCAAoC,GAAG,UAC3C,KAAU,EACV,qBAA0B,EAAA;IAE1B,gBAAA,IAAIA,QAAM,CAAC,KAAK,EAAE,mBAAmB,CAAC,EAAE;IACtC,oBAAA,qBAAqB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,iBAAiB,CAAC;IACrE,iBAAA;yBAAM,IAAIA,QAAM,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE;wBAC5D,KAAK,CAAC,mBAAmB,CAAC;4BACxB,qBAAqB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7C,iBAAA;oBAED,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,CAAC;IACxE,aAAC,CAAC;IAEF,YAAA,IAAM,qCAAqC,GAAG,UAC5C,KAAU,EACV,qBAA0B,EAAA;;oBAE1B,IAAIA,QAAM,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE;;IACrD,wBAAA,KAA+B,IAAA,EAAA,GAAA,QAAA,CAAA,qBAAqB,CAAC,OAAO,CAAC,CAC3D,KAAK,CAAC,GAAG,CACV,CAAA,gBAAA,EAAE,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA;IAFE,4BAAA,IAAI,kBAAkB,GAAA,EAAA,CAAA,KAAA,CAAA;IAGzB,4BAAA,IACEA,QAAM,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAClE;IACA,gCAAA,qBAAqB,CAAC,QAAQ,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAC7D,KAAK,CAAC,GAAG,CACV,CAAC;IACH,6BAAA;IAAM,iCAAA;oCACL,qBAAqB,CAAC,QAAQ,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,GAAG;IAC3D,oCAAA,KAAK,CAAC,GAAG;qCACV,CAAC;IACH,6BAAA;IACF,yBAAA;;;;;;;;;IACF,iBAAA;oBAED,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,CAAC;IACxE,aAAC,CAAC;gBAEF,IAAM,0BAA0B,GAAG,oCAAoC,CACrE,KAAK,EACL,qBAAqB,CACtB,CAAC;IACF,YAAA,KAAK,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;gBAC5C,qBAAqB;oBACnB,0BAA0B,CAAC,uBAAuB,CAAC,CAAC;gBAEtD,IAAM,2BAA2B,GAAG,qCAAqC,CACvE,KAAK,EACL,qBAAqB,CACtB,CAAC;IACF,YAAA,KAAK,GAAG,2BAA2B,CAAC,OAAO,CAAC,CAAC;gBAC7C,qBAAqB;oBACnB,2BAA2B,CAAC,uBAAuB,CAAC,CAAC;IAEvD,YAAA,OAAO,qBAAqB,CAAC;IAC/B,SAAC,CAAC;IAEF,QAAA,IAAM,+BAA+B,GAAG,UACtC,KAAU,EACV,qBAA0B,EAAA;gBAE1B,IAAIA,QAAM,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE;IACrD,gBAAA,KAAK,CAAC,mBAAmB,CAAC,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxE,aAAA;gBAED,IAAIA,QAAM,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE;oBACtD,KAAK,CAAC,uBAAuB,CAAC;wBAC5B,qBAAqB,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9C,aAAA;IAED,YAAA,OAAO,KAAK,CAAC;IACf,SAAC,CAAC;YAEF,IAAM,0BAA0B,GAAG,UAAC,KAAU,EAAA;;IAC5C,YAAA,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;IAC1B,gBAAA,IAAM,UAAU,GAAGA,QAAM,CAAC,KAAK,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC;oBAEvE,KAAK,GAAG,KAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;IAC9D,gBAAA,KAAK,GAAG,KAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAC5C,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,KAAK,CAAC,YAAY,CAAC,KACtB,GAAG,EAAEA,QAAM,CAAC,UAAU,EAAE,KAAK,CAAC;IAC5B,0BAAEE,YAAU,CAAC,UAAU,CAAC,GAAG,CAAC;IAC1B,8BAAE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC;IACxB,8BAAE,IAAI;IACR,0BAAEF,QAAM,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,8BAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;kCACjB,IAAI,EACR,GAAG,EAAEA,QAAM,CAAC,UAAU,EAAE,KAAK,CAAC;IAC5B,0BAAEE,YAAU,CAAC,UAAU,CAAC,GAAG,CAAC;IAC1B,8BAAE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC;IACxB,8BAAE,IAAI;IACR,0BAAEF,QAAM,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,8BAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;kCACjB,IAAI,EACR,QAAQ,EAAEA,QAAM,CAAC,UAAU,EAAE,UAAU,CAAC;IACtC,0BAAE,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;IAC9B,0BAAEA,QAAM,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,8BAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;kCACvB,KAAK,EACT,SAAS,EAAEA,QAAM,CAAC,UAAU,EAAE,WAAW,CAAC;IACxC,0BAAEE,YAAU,CAAC,UAAU,CAAC,SAAS,CAAC;IAChC,8BAAE,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC;IAC9B,8BAAE,IAAI;IACR,0BAAEF,QAAM,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,8BAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;kCACvB,IAAI,EACR,SAAS,EAAEA,QAAM,CAAC,UAAU,EAAE,WAAW,CAAC;IACxC,0BAAEE,YAAU,CAAC,UAAU,CAAC,SAAS,CAAC;IAChC,8BAAE,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC;IAC9B,8BAAE,IAAI;IACR,0BAAEF,QAAM,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,8BAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;IACtB,8BAAEA,QAAM,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,kCAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;sCACvB,IAAI,EACR,OAAO,EAAEA,QAAM,CAAC,UAAU,EAAE,SAAS,CAAC;IACpC,0BAAEE,YAAU,CAAC,UAAU,CAAC,OAAO,CAAC;kCAC5B,UAAU,CAAC,OAAO;IACpB,8BAAE,SAAS;IACb,0BAAEF,QAAM,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,8BAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;IACnD,8BAAEA,QAAM,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,kCAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;IACjD,kCAAE,SAAS,EAAA,CAAA,CACb,CAAC;oBAEH,OAAO,KAAK,CAAC,GAAG,CAAC;oBACjB,OAAO,KAAK,CAAC,GAAG,CAAC;oBACjB,OAAO,KAAK,CAAC,QAAQ,CAAC;oBACtB,OAAO,KAAK,CAAC,SAAS,CAAC;oBACvB,OAAO,KAAK,CAAC,MAAM,CAAC;oBACpB,OAAO,KAAK,CAAC,SAAS,CAAC;oBACvB,OAAO,KAAK,CAAC,OAAO,CAAC;oBACrB,OAAO,KAAK,CAAC,KAAK,CAAC;oBAEnB,QAAQ,KAAK,CAAC,IAAI;IAChB,oBAAA,KAAK,MAAM;IACT,wBAAA,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;IAC5B,wBAAA,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;4BAC5B,MAAM;IACR,oBAAA;4BACE,MAAM;IACT,iBAAA;IAED,gBAAA,IAAIC,SAAO,CAAC,CAAA,EAAA,GAAA,KAAK,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,GAAG,CAAC,EAAE;IAClC,oBAAA,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;IAC7B,iBAAA;IACD,gBAAA,IAAIA,SAAO,CAAC,CAAA,EAAA,GAAA,KAAK,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,GAAG,CAAC,EAAE;IAClC,oBAAA,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;IAC7B,iBAAA;IACD,gBAAA,IAAIA,SAAO,CAAC,CAAA,EAAA,GAAA,KAAK,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,CAAC,EAAE;IACxC,oBAAA,OAAO,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC;IACnC,iBAAA;IACD,gBAAA,IAAIA,SAAO,CAAC,CAAA,EAAA,GAAA,KAAK,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,CAAC,EAAE;IACxC,oBAAA,OAAO,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC;IACnC,iBAAA;IACD,gBAAA,IAAIA,SAAO,CAAC,CAAA,EAAA,GAAA,KAAK,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,CAAC,EAAE;IACtC,oBAAA,OAAO,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC;IACjC,iBAAA;IACF,aAAA;IAED,YAAA,OAAO,KAAK,CAAC;IACf,SAAC,CAAC;YAEF,IAAM,6BAA6B,GAAG,UAAC,KAAU,EAAA;IAC/C,YAAA,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;IAC1B,gBAAA,IAAID,QAAM,CAAC,KAAK,EAAE,cAAc,CAAC,EAAE;IACjC,oBAAA,OAAO,KAAK,CAAC;IACd,iBAAA;IAAM,qBAAA,IAAIA,QAAM,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE;IACnC,oBAAA,OAAO,KAAK,CAAC;IACd,iBAAA;IAAM,qBAAA;IACL,oBAAA,IAAIA,QAAM,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE;;;;IAIhC,qBAAA;;wBAGD,IAAI,KAAK,CAAC,2BAA2B,EAAE;4BACrC,KAAK,CAAC,cAAc,CAAC,GAAG;IACtB,4BAAA,QAAQ,EAAE,KAAK;IACf,4BAAA,KAAK,EAAE,EAAE;IACT,4BAAA,OAAO,EAAE;IACP,gCAAA;IACE,oCAAA,MAAM,EAAE,cAAc;IACtB,oCAAA,YAAY,EAAE;IACZ,wCAAA,IAAI,EAAE,IAAA,GAAK,KAAK,CAAC,GAAK;IACtB,wCAAA,UAAU,EAAE;IACV,4CAAA,KAAK,EAAE;IACL,gDAAA;IACE,oDAAA,GAAG,EAAE,GAAG;IACR,oDAAA,IAAI,EAAE,cAAc;IACpB,oDAAA,YAAY,EAAE;IACZ,wDAAA,KAAK,EAAE,IAAI;IACZ,qDAAA;IACF,iDAAA;IACF,6CAAA;IACD,4CAAA,OAAO,EAAE;IACP,gDAAA;IACE,oDAAA,IAAI,EAAE,yBAAyB;IAC/B,oDAAA,SAAS,EAAE,GAAG;IACd,oDAAA,uBAAuB,EAAE;IACvB,wDAAA,KAAK,EAAE,IAAI;IACZ,qDAAA;IACF,iDAAA;IACD,gDAAA;IACE,oDAAA,IAAI,EAAE,cAAc;IACpB,oDAAA,SAAS,EAAE,aAAa;IACxB,oDAAA,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;IAC9B,iDAAA;IACF,6CAAA;IACF,yCAAA;IACF,qCAAA;IACF,iCAAA;IACF,6BAAA;6BACF,CAAC;IACH,qBAAA;IAAM,yBAAA,IAAIA,QAAM,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE;4BACpC,IAAIA,QAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;IAClC,4BAAA,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE;oCACrC,KAAK,CAAC,cAAc,CAAC,GAAG;IACtB,oCAAA,QAAQ,EAAE,KAAK;IACf,oCAAA,KAAK,EAAE,EAAE;IACT,oCAAA,OAAO,EAAE;IACP,wCAAA;IACE,4CAAA,MAAM,EAAE,iBAAiB;IACzB,4CAAA,eAAe,EAAE;IACf,gDAAA,IAAI,EAAE,IAAA,GAAK,KAAK,CAAC,GAAK;IACtB,gDAAA,UAAU,EAAE;IACV,oDAAA,KAAK,EAAE;IACL,wDAAA;IACE,4DAAA,GAAG,EAAE,GAAG;IACR,4DAAA,IAAI,EAAE,cAAc;IACpB,4DAAA,YAAY,EAAE;IACZ,gEAAA,KAAK,EAAE,IAAI;IACZ,6DAAA;IACF,yDAAA;IACF,qDAAA;IACD,oDAAA,OAAO,EAAE;IACP,wDAAA;IACE,4DAAA,IAAI,EAAE,yBAAyB;IAC/B,4DAAA,SAAS,EAAE,GAAG;IACd,4DAAA,uBAAuB,EAAE;IACvB,gEAAA,KAAK,EAAE,IAAI;IACZ,6DAAA;IACF,yDAAA;IACD,wDAAA;IACE,4DAAA,IAAI,EAAE,cAAc;IACpB,4DAAA,SAAS,EAAE,aAAa;IACxB,4DAAA,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;IAC9B,yDAAA;IACF,qDAAA;IACF,iDAAA;IACF,6CAAA;IACF,yCAAA;IACF,qCAAA;qCACF,CAAC;IACH,6BAAA;IAAM,iCAAA,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE;oCAC3C,KAAK,CAAC,cAAc,CAAC,GAAG;IACtB,oCAAA,QAAQ,EAAE,KAAK;IACf,oCAAA,KAAK,EAAE,EAAE;IACT,oCAAA,OAAO,EAAE;IACP,wCAAA;IACE,4CAAA,MAAM,EAAE,cAAc;IACtB,4CAAA,YAAY,EAAE;IACZ,gDAAA,IAAI,EAAE,IAAA,GAAK,KAAK,CAAC,GAAK;IACtB,gDAAA,UAAU,EAAE;IACV,oDAAA,KAAK,EAAE;IACL,wDAAA;IACE,4DAAA,GAAG,EAAE,GAAG;IACR,4DAAA,IAAI,EAAE,cAAc;IACpB,4DAAA,YAAY,EAAE;IACZ,gEAAA,KAAK,EAAE,IAAI;IACZ,6DAAA;IACF,yDAAA;IACF,qDAAA;IACD,oDAAA,OAAO,EAAE;IACP,wDAAA;IACE,4DAAA,IAAI,EAAE,yBAAyB;IAC/B,4DAAA,SAAS,EAAE,GAAG;IACd,4DAAA,uBAAuB,EAAE;IACvB,gEAAA,KAAK,EAAE,IAAI;IACZ,6DAAA;IACF,yDAAA;IACD,wDAAA;IACE,4DAAA,IAAI,EAAE,cAAc;IACpB,4DAAA,SAAS,EAAE,aAAa;IACxB,4DAAA,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;IAC9B,yDAAA;IACF,qDAAA;IACF,iDAAA;IACF,6CAAA;IACF,yCAAA;IACF,qCAAA;qCACF,CAAC;IACH,6BAAA;IACF,yBAAA;IACF,qBAAA;IAAM,yBAAA;4BACL,KAAK,CAAC,cAAc,CAAC,GAAG;IACtB,4BAAA,QAAQ,EAAE,KAAK;IACf,4BAAA,KAAK,EAAE,EAAE;IACT,4BAAA,OAAO,EAAE;IACP,gCAAA;IACE,oCAAA,MAAM,EAAE,WAAW;IACnB,oCAAA,SAAS,EAAE;IACT,wCAAA,IAAI,EAAE,IAAA,GAAK,KAAK,CAAC,GAAK;IACtB,wCAAA,UAAU,EAAE;IACV,4CAAA,KAAK,EAAE;IACL,gDAAA;IACE,oDAAA,GAAG,EAAE,GAAG;IACR,oDAAA,IAAI,EAAE,cAAc;IACpB,oDAAA,YAAY,EAAE;IACZ,wDAAA,KAAK,EAAE,IAAI;IACZ,qDAAA;IACF,iDAAA;IACF,6CAAA;IACD,4CAAA,OAAO,EAAE;IACP,gDAAA;IACE,oDAAA,IAAI,EAAE,yBAAyB;IAC/B,oDAAA,SAAS,EAAE,GAAG;IACd,oDAAA,uBAAuB,EAAE;IACvB,wDAAA,KAAK,EAAE,IAAI;IACZ,qDAAA;IACF,iDAAA;IACD,gDAAA;IACE,oDAAA,IAAI,EAAE,cAAc;IACpB,oDAAA,SAAS,EAAE,aAAa;IACxB,oDAAA,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;IAC9B,iDAAA;IACF,6CAAA;IACF,yCAAA;IACF,qCAAA;IACF,iCAAA;IACF,6BAAA;6BACF,CAAC;IACH,qBAAA;IACF,iBAAA;IAED,gBAAA,OAAO,KAAK,CAAC,YAAY,CAAC,CAAC;IAC5B,aAAA;IAED,YAAA,OAAO,KAAK,CAAC;IACf,SAAC,CAAC;YAEF,IAAM,mBAAmB,GAAG,UAAC,KAAU,EAAA;IACrC,YAAA,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;oBAC1B,KAAK,GAAG,KAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;IAC7D,aAAA;IAED,YAAA,OAAO,KAAK,CAAC;IACf,SAAC,CAAC;YAEF,IAAM,sBAAsB,GAAG,UAAC,KAAU,EAAA;IACxC,YAAA,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;IAC1B,gBAAA,IACEA,QAAM,CAAC,KAAK,EAAE,QAAQ,CAAC;wBACvB,KAAK,CAAC,MAAM,KAAK,OAAO;IACxB,oBAAAA,QAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,EACvB;wBACA,KAAK,GAAG,KAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE;4BAC5C,MAAM,EAAE,KAAK,CAAC,MAAM;IACrB,qBAAA,CAAC,CAAC;IACJ,iBAAA;IACF,aAAA;IAED,YAAA,OAAO,KAAK,CAAC;IACf,SAAC,CAAC;IAEF,QAAA,IAAM,aAAa,GAAG,UAAC,UAAe,EAAE,MAAa,EAAA;IACnD,YAAA,IAAIA,QAAM,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE;IACnC,gBAAA,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;IACzC,aAAA;IAAM,iBAAA;IACL,gBAAA,UAAU,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;IAC/B,aAAA;IAED,YAAA,OAAO,UAAU,CAAC;IACpB,SAAC,CAAC;IAEF,QAAA,IAAM,kBAAkB,GAAG,UAAC,UAAe,EAAE,MAAW,EAAA;IACtD,YAAA,UAAU,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC;IAEnC,YAAA,OAAO,UAAU,CAAC;IACpB,SAAC,CAAC;IAEF,QAAA,IAAM,qBAAqB,GAAG,UAAC,WAAgB,EAAE,KAAU,EAAA;IACzD,YAAA,IAAIA,QAAM,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE;oBAC7B,IAAIA,QAAM,CAAC,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;IACvC,oBAAA,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7C,iBAAA;IAAM,qBAAA;wBACL,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3C,iBAAA;IACF,aAAA;IAED,YAAA,OAAO,WAAW,CAAC;IACrB,SAAC,CAAC;IAEF,QAAA,IAAI,qBAAqB,GAAQ;IAC/B,YAAA,MAAM,EAAE,EAAE;IACV,YAAA,KAAK,EAAE,EAAE;aACV,CAAC;YAEF,IAAI,MAAM,GAAU,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAEnD,IAAI,WAAW,GAAQ,EAAE,CAAC;;IAE1B,YAAA,KAAkB,IAAA,QAAA,GAAA,QAAA,CAAA,MAAM,CAAA,8BAAA,EAAE,CAAA,UAAA,CAAA,IAAA,EAAA,UAAA,GAAA,QAAA,CAAA,IAAA,EAAA,EAAA;IAArB,gBAAA,IAAI,KAAK,GAAA,UAAA,CAAA,KAAA,CAAA;IACZ,gBAAA,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAEjC,gBAAA,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;;;;;;IAO/B,gBAAA,WAAW,GAAG,qBAAqB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAExD,gBAAA,KAAK,GAAG,6BAA6B,CAAC,KAAK,CAAC,CAAC;IAE7C,gBAAA,KAAK,GAAG,0BAA0B,CAAC,KAAK,CAAC,CAAC;IAE1C,gBAAA,KAAK,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAEtC,gBAAA,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACpC,aAAA;;;;;;;;;IAED,QAAA,UAAU,GAAG,kBAAkB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAEzD,QAAA,UAAU,GAAG,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAE/C,QAAA,OAAO,UAAU,CAAC;SACnB,CAAA;QACF,OAAA,SAAA,CAAA;IAAA,CAAA,EAAA,CAAA,CAAA;IAvsBC,UAAA,CAAA;QADC,GAAG;KAusBH,EAAA,SAAA,CAAA,SAAA,EAAA,mBAAA,EAAA,IAAA,CAAA;;ICvuBH,IAAA,qBAAA,kBAAA,YAAA;IAoCE,IAAA,SAAA,qBAAA,GAAA;IAnCA,QAAA,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;IAerB,QAAA,IAAY,CAAA,YAAA,GAAQ,EAAE,CAAC;SAoBP;QAlChB,qBAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,YAAqB,EAAA;IACnC,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;SAClC,CAAA;QAGD,qBAAY,CAAA,SAAA,CAAA,YAAA,GAAZ,UAAa,SAAgB,EAAA;IAC3B,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAC5B,CAAA;QAGD,qBAAqB,CAAA,SAAA,CAAA,qBAAA,GAArB,UAAsB,kBAAyB,EAAA;IAC7C,QAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;SAC9C,CAAA;QAGD,qBAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,YAAmB,EAAA;IACjC,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;SAClC,CAAA;QAGD,qBAAmB,CAAA,SAAA,CAAA,mBAAA,GAAnB,UAAoB,gBAAqB,EAAA;IACvC,QAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;SAC1C,CAAA;QAGD,qBAAmB,CAAA,SAAA,CAAA,mBAAA,GAAnB,UAAoB,gBAAuB,EAAA;IACzC,QAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;SAC1C,CAAA;QAGD,qBAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,cAAmB,EAAA;IACnC,QAAA,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;SACtC,CAAA;QAIK,qBAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,GAAW,EAAA;;;;;gCACd,OAAM,CAAA,CAAA,YAAA,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA,CAAA;;IAA9C,wBAAA,QAAQ,GAAG,EAAmC,CAAA,IAAA,EAAA,CAAA;IACvC,wBAAA,OAAA,CAAA,CAAA,YAAM,QAAQ,CAAC,IAAI,EAAE,CAAA,CAAA;;IAA5B,wBAAA,IAAI,GAAG,EAAqB,CAAA,IAAA,EAAA,CAAA;IAClC,wBAAA,OAAA,CAAA,CAAA,aAAO,IAAI,CAAC,CAAA;;;IACb,SAAA,CAAA,CAAA;SAAA,CAAA;QAED,qBAAoB,CAAA,SAAA,CAAA,oBAAA,GAApB,UAAqB,SAAgB,EAAA;IACnC,QAAA,IAAM,gBAAgB,GAAG,SAAS,CAAC,IAAI,CAAC,UAAC,IAAI,EAAA;gBAC3C,OAAO,IAAI,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IACtD,SAAC,CAAC,CAAC;IACH,QAAA,OAAO,gBAAgB,CAAC;SACzB,CAAA;QAED,qBAAsB,CAAA,SAAA,CAAA,sBAAA,GAAtB,UAAuB,YAAiB,EAAA;YACtC,IAAI,kBAAkB,GAAa,EAAE,CAAC;YAEtC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,UAAC,OAAO,EAAA;IACpC,YAAA,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,SAAC,CAAC,CAAC;IAEH,QAAA,OAAO,kBAAkB,CAAC;SAC3B,CAAA;IAED,IAAA,qBAAA,CAAA,SAAA,CAAA,8BAA8B,GAA9B,UACE,SAAgB,EAChB,kBAA4B,EAAA;;;IAE5B,YAAA,KAAiB,IAAA,WAAA,GAAA,QAAA,CAAA,SAAS,CAAA,oCAAA,EAAE,CAAA,aAAA,CAAA,IAAA,EAAA,aAAA,GAAA,WAAA,CAAA,IAAA,EAAA,EAAA;IAAvB,gBAAA,IAAI,IAAI,GAAA,aAAA,CAAA,KAAA,CAAA;oBACX,IAAI,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;wBACzC,IAAI,GAAG,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;wBACrD,IAAI,GAAG,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IAClD,iBAAA;IACF,aAAA;;;;;;;;;IAED,QAAA,OAAO,SAAS,CAAC;SAClB,CAAA;IAED,IAAA,qBAAA,CAAA,SAAA,CAAA,6BAA6B,GAA7B,UACE,SAAgB,EAChB,kBAA4B,EAAA;;;IAE5B,YAAA,KAAiB,IAAA,WAAA,GAAA,QAAA,CAAA,SAAS,CAAA,oCAAA,EAAE,CAAA,aAAA,CAAA,IAAA,EAAA,aAAA,GAAA,WAAA,CAAA,IAAA,EAAA,EAAA;IAAvB,gBAAA,IAAI,IAAI,GAAA,aAAA,CAAA,KAAA,CAAA;IACX,gBAAA,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE;IAC/B,oBAAA,IAAIA,QAAM,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE;4BAC/B,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,UAAC,CAAS,IACnD,OAAA,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA,EAAA,CAC/B,CAAC;IACF,wBAAA,IAAI,WAAW,EAAE;gCACf,IAAI,GAAG,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;gCACpD,IAAI,GAAG,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IAClD,yBAAA;IAAM,6BAAA;gCACL,IAAI,GAAG,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;gCAClD,IAAI,GAAG,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IACjD,yBAAA;IACF,qBAAA;IAAM,yBAAA;4BACL,IAAI,GAAG,gBAAgB,CAAC,IAAI,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;4BACjD,IAAI,GAAG,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;4BACpD,IAAI,GAAG,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IAClD,qBAAA;IACF,iBAAA;IACF,aAAA;;;;;;;;;IAED,QAAA,OAAO,SAAS,CAAC;SAClB,CAAA;QAED,qBAAsB,CAAA,SAAA,CAAA,sBAAA,GAAtB,UAAuB,SAAgB,EAAA;;YACrC,IAAI,UAAU,GAAG,CAAC,CAAC;;IACnB,YAAA,KAAiB,IAAA,WAAA,GAAA,QAAA,CAAA,SAAS,CAAA,oCAAA,EAAE,CAAA,aAAA,CAAA,IAAA,EAAA,aAAA,GAAA,WAAA,CAAA,IAAA,EAAA,EAAA;IAAvB,gBAAA,IAAI,IAAI,GAAA,aAAA,CAAA,KAAA,CAAA;IACX,gBAAA,IAAI,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC;IAChC,aAAA;;;;;;;;;IAED,QAAA,OAAO,SAAS,CAAC;SAClB,CAAA;IAED,IAAA,qBAAA,CAAA,SAAA,CAAA,kBAAkB,GAAlB,UAAmB,YAAiB,EAAE,SAAgB,EAAA;;YACpD,IAAI,2BAA2B,GAAQ,EAAE,CAAC;;IAE1C,YAAA,KAAiB,IAAA,WAAA,GAAA,QAAA,CAAA,SAAS,CAAA,oCAAA,EAAE,CAAA,aAAA,CAAA,IAAA,EAAA,aAAA,GAAA,WAAA,CAAA,IAAA,EAAA,EAAA;IAAvB,gBAAA,IAAI,IAAI,GAAA,aAAA,CAAA,KAAA,CAAA;oBACX,IAAIA,QAAM,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE;wBAClC,2BAA2B,mCACtB,2BAA2B,CAAA,YAC9B,EAAC,CAAA,IAAI,CAAC,GAAG,CAAG,GAAA,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAA,EAAA,EACnC,CAAC;IACH,iBAAA;IACF,aAAA;;;;;;;;;IAED,QAAA,OAAO,2BAA2B,CAAC;SACpC,CAAA;IAED,IAAA,qBAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;IACE,QAAA,IAAI,SAAS,GAAU,IAAI,CAAC,SAAS,CAAC;IACtC,QAAA,IAAI,kBAA4B,CAAC;IACjC,QAAA,IAAI,gBAAqB,CAAC;IAE1B,QAAA,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAEnD;;;;;IAKG;IACH,QAAA,IAAM,2BAA2B,GAAG,IAAI,CAAC,kBAAkB,CACzD,IAAI,CAAC,YAAY,EACjB,SAAS,CACV,CAAC;IAEF,QAAA,kBAAkB,GAAG,IAAI,CAAC,sBAAsB,CAC9C,2BAA2B,CAC5B,CAAC;YAEF,SAAS,GAAG,IAAI,CAAC,8BAA8B,CAC7C,SAAS,EACT,kBAAkB,CACnB,CAAC;YAEF,SAAS,GAAG,IAAI,CAAC,6BAA6B,CAC5C,SAAS,EACT,kBAAkB,CACnB,CAAC;IAEF,QAAA,IAAI,SAAS,CAAC,MAAM,KAAK,kBAAkB,CAAC,MAAM,EAAE;IAClD,YAAA,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAExD,YAAA,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IAC5C,SAAA;IAED,QAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAC7B,QAAA,IAAI,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;SAChD,CAAA;;;gKAvKU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAF,aAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;IAArB,mBAAA,qBAAA,CAAA,KAAA,GAAAA,aAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,IAAA,EAAA,qBAAqB,cAFpB,MAAM,EAAA,CAAA,CAAA;sHAEP,qBAAqB,EAAA,UAAA,EAAA,CAAA;sBAHjC+B,aAAU;IAAC,YAAA,IAAA,EAAA,CAAA;IACV,oBAAA,UAAU,EAAE,MAAM;qBACnB,CAAA;;;AC8BD,QAAA,4BAAA,kBAAA,YAAA;QAmDE,SACS,4BAAA,CAAA,eAAsC,EACrC,WAAuB,EAAA;IADxB,QAAA,IAAe,CAAA,eAAA,GAAf,eAAe,CAAuB;IACrC,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;IAxBjC,QAAA,IAAS,CAAA,SAAA,GAAQ,EAAE,CAAC;IAGpB,QAAA,IAAe,CAAA,eAAA,GAAQ,EAAE,CAAC;IAG1B,QAAA,IAAA,CAAA,aAAa,GAAsB,IAAId,eAAY,EAAO,CAAC;IAG3D,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAIA,eAAY,EAAO,CAAC;IAGzD,QAAA,IAAA,CAAA,cAAc,GAAsB,IAAIA,eAAY,EAAO,CAAC;IAE5D,QAAA,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;IACzB,QAAA,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;;IAGxB,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;IAC1B,QAAA,IAAc,CAAA,cAAA,GAAY,IAAI,CAAC;IAC/B,QAAA,IAAgB,CAAA,gBAAA,GAAY,IAAI,CAAC;IA6KjC,QAAA,IAAqB,CAAA,qBAAA,GAAY,KAAK,CAAC;SAxKnC;;IAnDJ,IAAA,4BAAA,CAAA,SAAA,CAAA,mBAAmB,GAAnB,YAAA;YACE,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,WAAW,GAAG,GAAG,EAAE;gBACpD,IAAI,IAAI,CAAC,QAAQ,EAAE;IACjB,gBAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;IAC9B,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC5B,aAAA;IAAM,iBAAA;IACL,gBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAC7B,gBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAC7B,aAAA;IACD,YAAA,IAAI,CAAC,eAAe,CAAC,YAAY,GAAG,IAAI,CAAC;IAC1C,SAAA;IAAM,aAAA;gBACL,IAAI,IAAI,CAAC,QAAQ,EAAE;IACjB,gBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAC7B,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC5B,aAAA;IAAM,iBAAA;IACL,gBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAC7B,gBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAC7B,aAAA;IACD,YAAA,IAAI,CAAC,eAAe,CAAC,YAAY,GAAG,KAAK,CAAC;IAC3C,SAAA;SACF,CAAA;IAiCD,IAAA,4BAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACE,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACnB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YAEpB,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;YAElE,IAAI,CAAC,eAAe,EAAE,CAAC;IACvB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;SACrB,CAAA;QAED,4BAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,OAAsB,EAAA;YAChC,IAAM,YAAY,GAAG,UAAC,IAAY,EAAA;IAChC,YAAA,OAAO,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;IACpE,SAAC,CAAC;IACF,QAAA,IAAI,YAAY,CAAC,YAAY,CAAC,EAAE;gBAC9B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC;IAClD,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACrB,SAAA;IACD,QAAA,IAAI,YAAY,CAAC,WAAW,CAAC,EAAE;gBAC7B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC;gBAEhD,IAAI,CAAC,eAAe,EAAE,CAAC;IACxB,SAAA;IACD,QAAA,IAAI,YAAY,CAAC,iBAAiB,CAAC,EAAE;gBACnC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC;IAC5D,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACrB,SAAA;SACF,CAAA;IAEK,IAAA,4BAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;;;;;IACJ,wBAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;4BAEnB,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAErD,wBAAA,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC;4BAEvC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IAGhD,wBAAA,IAAA,EAAA,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,MAAM;gCACrC,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,MAAM,CAAA,EAD9C,OAC8C,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;IAE9C,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,0BAA0B,CACnC,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,GAAG,CAC1C,CAAA,CAAA;;IAFD,wBAAA,EAAA,CAAA,IAAA,EAEC,CAAC;;;IAEF,wBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACtB,wBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;;;IAG9B,wBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACpB,wBAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;;;;IACtB,SAAA,CAAA,CAAA;SAAA,CAAA;QAED,4BAAY,CAAA,SAAA,CAAA,YAAA,GAAZ,UAAa,SAAgB,EAAA;YAC3B,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,WAAW,GAAG,GAAG,EAAE;IACpD,YAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE;IAC5B,gBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAC7B,gBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAC5B,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACvB,aAAA;IAAM,iBAAA;IACL,gBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAC7B,gBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAC5B,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACvB,aAAA;IACD,YAAA,IAAI,CAAC,eAAe,CAAC,YAAY,GAAG,IAAI,CAAC;IAC1C,SAAA;IAAM,aAAA;IACL,YAAA,IAAI,CAAC,eAAe,CAAC,YAAY,GAAG,KAAK,CAAC;IAC3C,SAAA;SACF,CAAA;;QAGK,4BAA0B,CAAA,SAAA,CAAA,0BAAA,GAA1B,UAA2B,YAAoB,EAAA;;;;;;;IACnD,wBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACtB,wBAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;4BAEb,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,UAAC,IAAI,EAAA;IAChE,4BAAA,IAAI,IAAI,CAAC,GAAG,KAAK,YAAY,EAAE;IAC7B,gCAAA,OAAO,IAAI,CAAC;IACb,6BAAA;IACH,yBAAC,CAAC,CAAC;IAEc,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,eAAe,CAAC,eAAe,CACzD,gBAAgB,CAAC,WAAW,CAAC,GAAG,CACjC,CAAA,CAAA;;IAFG,wBAAA,UAAU,GAAG,EAEhB,CAAA,IAAA,EAAA,CAAA;4BAED,UAAU,GAAG,IAAI,SAAS,EAAE,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAErD,wBAAA,cAAc,GAClB,CAAA,EAAA,GAAA,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAC;IAC1D,wBAAA,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;4BAEvD,IAAI,CAAC,eAAe,CAAC,mBAAmB,iCACnC,gBAAgB,CAAA,EAChB,UAAU,CAAA,CACb,CAAC;4BAEH,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,WAAW,GAAG,GAAG,EAAE;IACpD,4BAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;IAC9B,4BAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC5B,yBAAA;iCAAM,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,WAAW,IAAI,GAAG,EAAE;IAC5D,4BAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAC7B,4BAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC5B,yBAAA;IAED,wBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACrB,wBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;;;;;SACrB,CAAA;;QAGD,4BAAwB,CAAA,SAAA,CAAA,wBAAA,GAAxB,UAAyB,CAAM,EAAA;YAA/B,IAsBC,KAAA,GAAA,IAAA,CAAA;IArBC,QAAA,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAEf,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,UAAU,EAAE;IACnD,YAAA,IAAM,aAAW,GAAG,IAAI,WAAW,CACjC,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAC3B,CAAC;gBAEF,CAAC,YAAA,EAAW,OAAA,SAAA,CAAA,KAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;oBAAA,IAWX,KAAA,GAAA,IAAA,CAAA;;;IAVC,wBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,aAAW,CAAC,aAAa,EAAE,CAAA,CAAA;;IAAjC,4BAAA,EAAA,CAAA,IAAA,EAAiC,CAAC;gCAElC,IAAI,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,MAAM,KAAK,WAAW,EAAE;IAC/D,gCAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5B,6BAAA;IAAM,iCAAA;IACL,gCAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;IACnC,gCAAA,UAAU,CAAC,YAAA;IACT,oCAAA,KAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;qCACrC,EAAE,IAAI,CAAC,CAAC;IACV,6BAAA;;;;IACF,aAAA,CAAA,CAXW,EAWX,GAAG,CAAC;IACN,SAAA;SACF,CAAA;;QAGD,4BAAoB,CAAA,SAAA,CAAA,oBAAA,GAApB,UAAqB,CAAM,EAAA;IACzB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACnB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAC7B,CAAA;;QAGD,4BAAuB,CAAA,SAAA,CAAA,uBAAA,GAAvB,UAAwB,CAAM,EAAA;;IAC5B,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,WAAW,CAAC,IAAI,EAAA,EAAA,GAAA,EAAA;gBACnB,EAAC,CAAA,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,GAAG,CAAG,GAAA,CAAC,CAAC,MAAM,CAAC;oBACtD,CAAC;SACJ,CAAA;;QAGD,4BAAqB,CAAA,SAAA,CAAA,qBAAA,GAArB,UAAsB,CAAM,EAAA;;IAC1B,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IAEnB,QAAA,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;YAE3C,IAAI,CAAC,WAAW,CAAC,IAAI,EAAA,EAAA,GAAA,EAAA;gBACnB,EAAC,CAAA,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,GAAG,CAAG,GAAA,CAAC,CAAC,MAAM,CAAC;oBACtD,CAAC;SACJ,CAAA;;QAGD,4BAAsB,CAAA,SAAA,CAAA,sBAAA,GAAtB,UAAuB,CAAM,EAAA;IAC3B,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAC7B,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACtB,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;SAC7B,CAAA;QAGD,4BAAuB,CAAA,SAAA,CAAA,uBAAA,GAAvB,UAAwB,IAAI,EAAA;IAC1B,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;SACnC,CAAA;IAEK,IAAA,4BAAA,CAAA,SAAA,CAAA,UAAU,GAAV,UAAW,MAAW,EAAE,UAAe,EAAA;;;;;;4BACnC,EAAA,GAAA,MAAM,CAAC,GAAG,CAAA;;IACX,4BAAA,KAAA,UAAU,CAAC,SAAS,EAApB,OAAoB,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;;;;IACjB,wBAAA,OAAO,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IAEpB,wBAAA,OAAA,CAAA,CAAA,YAAM,OAAO,CAAC,kBAAkB,CAClD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAC1B,CAAA,CAAA;;IAFK,wBAAA,WAAW,GAAG,EAEnB,CAAA,IAAA,EAAA,CAAA;IACD,wBAAA,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAEtE,wBAAA,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;4BACrC,OAAM,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;gCAEN,OAAM,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;;;;IAEX,SAAA,CAAA,CAAA;SAAA,CAAA;;;uKAlPU,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAe,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAhC,aAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAAA,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAA5B,mBAAA,4BAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,sUAF5B,CAAC,qBAAqB,CAAC,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,QAAA,EClCpC,2wEA+DA,EDxCc,MAAA,EAAA,CAAA,qhGAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAiC,wBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,YAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,EAAA,sBAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAV,aAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,aAAA,CAAA,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,aAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAF,aAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,CAAA,EAAA,UAAA,EAAA;YACVW,kBAAO,CAAC,YAAY,EAAE;gBACpBC,qBAAU,CAAC,QAAQ,EAAE;IACnB,gBAAAC,gBAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;oBACxCC,kBAAO,CAAC,GAAG,CAAC;iBACb,CAAC;gBACFF,qBAAU,CAAC,QAAQ,EAAE;oBACnBE,kBAAO,CAAC,GAAG,EAAED,gBAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC;iBACvD,CAAC;aACH,CAAC;IACH,KAAA,EAAA,CAAA,CAAA;sHAGU,4BAA4B,EAAA,UAAA,EAAA,CAAA;sBAjBxCpC,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,uBAAuB;IACjC,oBAAA,WAAW,EAAE,2BAA2B;wBACxC,SAAS,EAAE,CAAC,2BAA2B,CAAC;IACxC,oBAAA,UAAU,EAAE;4BACVkC,kBAAO,CAAC,YAAY,EAAE;gCACpBC,qBAAU,CAAC,QAAQ,EAAE;IACnB,gCAAAC,gBAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;oCACxCC,kBAAO,CAAC,GAAG,CAAC;iCACb,CAAC;gCACFF,qBAAU,CAAC,QAAQ,EAAE;oCACnBE,kBAAO,CAAC,GAAG,EAAED,gBAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC;iCACvD,CAAC;6BACH,CAAC;IACH,qBAAA;wBACD,SAAS,EAAE,CAAC,qBAAqB,CAAC;qBACnC,CAAA;iJAIC,mBAAmB,EAAA,CAAA;0BADlBE,eAAY;2BAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,CAAA;oBAwBzC,UAAU,EAAA,CAAA;0BADTX,QAAK;oBAIN,SAAS,EAAA,CAAA;0BADRA,QAAK;oBAIN,eAAe,EAAA,CAAA;0BADdA,QAAK;oBAIN,aAAa,EAAA,CAAA;0BADZC,SAAM;oBAIP,WAAW,EAAA,CAAA;0BADVA,SAAM;oBAIP,cAAc,EAAA,CAAA;0BADbA,SAAM;;;AEhET,QAAA,uBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,uBAAA,GAAA;;;;kKAAa,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA7B,aAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;mKAAvB,uBAAuB,EAAA,YAAA,EAAA,CALnB,2BAA2B,CAAA,EAAA,OAAA,EAAA,CAChCwC,eAAY,EAAEC,cAAW,EAAEC,sBAAmB,EAAEC,uBAAc,CAAA,EAAA,OAAA,EAAA,CAE9D,2BAA2B,CAAA,EAAA,CAAA,CAAA;mKAE1B,uBAAuB,EAAA,SAAA,EAHvB,EAAE,EAAA,OAAA,EAAA,CADJ,CAACH,eAAY,EAAEC,cAAW,EAAEC,sBAAmB,EAAEC,uBAAc,CAAC,CAAA,EAAA,CAAA,CAAA;sHAI9D,uBAAuB,EAAA,UAAA,EAAA,CAAA;sBANnCC,WAAQ;IAAC,YAAA,IAAA,EAAA,CAAA;wBACR,YAAY,EAAE,CAAC,2BAA2B,CAAC;wBAC3C,OAAO,EAAE,CAACJ,eAAY,EAAEC,cAAW,EAAEC,sBAAmB,EAAEC,uBAAc,CAAC;IACzE,oBAAA,SAAS,EAAE,EAAE;wBACb,OAAO,EAAE,CAAC,2BAA2B,CAAC;qBACvC,CAAA;;;ACUD,QAAA,oBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,oBAAA,GAAA;;;;+JAAa,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA3C,aAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gKAApB,oBAAoB,EAAA,YAAA,EAAA,CAZhB,uBAAuB,CAAA,EAAA,OAAA,EAAA,CAEpCwC,eAAY;YACZC,cAAW;YACXC,sBAAmB;YACnBG,iBAAc;YACdC,gBAAa;YACbC,eAAY;YACZC,eAAY,aAEJ,uBAAuB,CAAA,EAAA,CAAA,CAAA;IAEtB,mBAAA,oBAAA,CAAA,IAAA,GAAAhD,aAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,IAAA,EAAA,oBAAoB,EAXtB,OAAA,EAAA,CAAA;gBACPwC,eAAY;gBACZC,cAAW;gBACXC,sBAAmB;gBACnBG,iBAAc;gBACdC,gBAAa;gBACbC,eAAY;gBACZC,eAAY;aACb,CAAA,EAAA,CAAA,CAAA;sHAGU,oBAAoB,EAAA,UAAA,EAAA,CAAA;sBAbhCJ,WAAQ;IAAC,YAAA,IAAA,EAAA,CAAA;wBACR,YAAY,EAAE,CAAC,uBAAuB,CAAC;IACvC,oBAAA,OAAO,EAAE;4BACPJ,eAAY;4BACZC,cAAW;4BACXC,sBAAmB;4BACnBG,iBAAc;4BACdC,gBAAa;4BACbC,eAAY;4BACZC,eAAY;IACb,qBAAA;wBACD,OAAO,EAAE,CAAC,uBAAuB,CAAC;qBACnC,CAAA;;;ACFD,QAAA,qBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,qBAAA,GAAA;;;;gKAAa,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAhD,aAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;iKAArB,qBAAqB,EAAA,YAAA,EAAA,CAVjB,wBAAwB,CAAA,EAAA,OAAA,EAAA,CAErCwC,eAAY;YACZC,cAAW;YACXC,sBAAmB;YACnBM,eAAY;YACZD,eAAY,aAEJ,wBAAwB,CAAA,EAAA,CAAA,CAAA;IAEvB,mBAAA,qBAAA,CAAA,IAAA,GAAA/C,aAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,IAAA,EAAA,qBAAqB,EATvB,OAAA,EAAA,CAAA;gBACPwC,eAAY;gBACZC,cAAW;gBACXC,sBAAmB;gBACnBM,eAAY;gBACZD,eAAY;aACb,CAAA,EAAA,CAAA,CAAA;sHAGU,qBAAqB,EAAA,UAAA,EAAA,CAAA;sBAXjCH,WAAQ;IAAC,YAAA,IAAA,EAAA,CAAA;wBACR,YAAY,EAAE,CAAC,wBAAwB,CAAC;IACxC,oBAAA,OAAO,EAAE;4BACPJ,eAAY;4BACZC,cAAW;4BACXC,sBAAmB;4BACnBM,eAAY;4BACZD,eAAY;IACb,qBAAA;wBACD,OAAO,EAAE,CAAC,wBAAwB,CAAC;qBACpC,CAAA;;;ACQD,QAAA,wBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,wBAAA,GAAA;;;;mKAAa,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA/C,aAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;oKAAxB,wBAAwB,EAAA,YAAA,EAAA,CAdpB,4BAA4B,CAAA,EAAA,OAAA,EAAA,CAEzCwC,eAAY;YACZS,qBAAgB;YAChB,oBAAoB;YACpB,qBAAqB;YACrBD,eAAY;YACZE,kBAAe;YACfJ,gBAAa;YACbC,eAAY,aAGJ,4BAA4B,CAAA,EAAA,CAAA,CAAA;oKAE3B,wBAAwB,EAAA,SAAA,EAHxB,EAAE,EAVJ,OAAA,EAAA,CAAA;gBACPP,eAAY;gBACZS,qBAAgB;gBAChB,oBAAoB;gBACpB,qBAAqB;gBACrBD,eAAY;gBACZE,kBAAe;gBACfJ,gBAAa;gBACbC,eAAY;aACb,CAAA,EAAA,CAAA,CAAA;sHAIU,wBAAwB,EAAA,UAAA,EAAA,CAAA;sBAfpCH,WAAQ;IAAC,YAAA,IAAA,EAAA,CAAA;wBACR,YAAY,EAAE,CAAC,4BAA4B,CAAC;IAC5C,oBAAA,OAAO,EAAE;4BACPJ,eAAY;4BACZS,qBAAgB;4BAChB,oBAAoB;4BACpB,qBAAqB;4BACrBD,eAAY;4BACZE,kBAAe;4BACfJ,gBAAa;4BACbC,eAAY;IACb,qBAAA;IACD,oBAAA,SAAS,EAAE,EAAE;wBACb,OAAO,EAAE,CAAC,4BAA4B,CAAC;qBACxC,CAAA;;;ACLD,QAAA,iBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,iBAAA,GAAA;;;;4JAAa,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA/C,aAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;IAAjB,mBAAA,iBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,IAAA,EAAA,iBAAiB,YAT1BwC,eAAY;YACZC,cAAW;YACXC,sBAAmB;YACnB,uBAAuB;YACvB,wBAAwB,CAAA,EAAA,OAAA,EAAA,CAEhB,uBAAuB,EAAE,wBAAwB,CAAA,EAAA,CAAA,CAAA;IAGhD,mBAAA,iBAAA,CAAA,IAAA,GAAA1C,aAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,IAAA,EAAA,iBAAiB,EAFjB,SAAA,EAAA,CAAC,qBAAqB,CAAC,EARzB,OAAA,EAAA,CAAA;gBACPwC,eAAY;gBACZC,cAAW;gBACXC,sBAAmB;gBACnB,uBAAuB;gBACvB,wBAAwB;IACzB,SAAA,EACS,uBAAuB,EAAE,wBAAwB,CAAA,EAAA,CAAA,CAAA;sHAGhD,iBAAiB,EAAA,UAAA,EAAA,CAAA;sBAZ7BE,WAAQ;IAAC,YAAA,IAAA,EAAA,CAAA;IACR,oBAAA,YAAY,EAAE,EAAE;IAChB,oBAAA,OAAO,EAAE;4BACPJ,eAAY;4BACZC,cAAW;4BACXC,sBAAmB;4BACnB,uBAAuB;4BACvB,wBAAwB;IACzB,qBAAA;IACD,oBAAA,OAAO,EAAE,CAAC,uBAAuB,EAAE,wBAAwB,CAAC;wBAC5D,SAAS,EAAE,CAAC,qBAAqB,CAAC;qBACnC,CAAA;;;IClBD;;IAEG;;ICFH;;IAEG;;;;;;;;;;;;;;;;;;"}
|