mmhglobal-dynamicform 1.2.2 → 1.2.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"mmhglobal-dynamicform.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../projects/mmhglobal-dynamicform/src/lib/services/zcomponent.debug.service.ts","../../../projects/mmhglobal-dynamicform/src/lib/zmodal/zmodal.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zmodal/zmodal-mobile.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/services/main.service.ts","../../../projects/mmhglobal-dynamicform/src/lib/directives/scrollbar.theme.directive.ts","../../../projects/mmhglobal-dynamicform/src/lib/directives/fieldelement.directive.ts","../../../projects/mmhglobal-dynamicform/src/lib/zgrid/zgrid.binding.directive.ts","../../../projects/mmhglobal-dynamicform/src/lib/zgrid/zgrid.popup.anchor-target.directive.ts","../../../projects/mmhglobal-dynamicform/src/lib/zselectmultiple/zselectmultiple.directive.ts","../../../projects/mmhglobal-dynamicform/src/lib/zdatetime/dateParser.pipe.ts","../../../projects/mmhglobal-dynamicform/src/lib/zcodeeditor/zcodeeditor.pipe.ts","../../../projects/mmhglobal-dynamicform/src/lib/zdiv/zdiv.pipe.ts","../../../projects/mmhglobal-dynamicform/src/lib/zreport/zreport.config.ts","../../../projects/mmhglobal-dynamicform/src/lib/ztab/ztab.pipe.ts","../../../projects/mmhglobal-dynamicform/src/lib/zgrid/date-range-cell-filter.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zscheduler/zscheduler.toolbar.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/uipage/uipage.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/uiheader/uiheader.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/uicontent/uicontent.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/uimenucontent/uimenucontent.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/uimenubutton/uimenubutton.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/uiappmenucontent/uiappmenucontent.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/uiactionbutton/uiactionbutton.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/uivalidationmessage/uivalidationmessage.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zbullet/zbullet.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zbuttons/zbuttons.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zcard/zcard.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zchart/zchart.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zcheckbox/zcheckbox.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zchip/zchip.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zcodeeditor/zcodeeditor.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zdaterange/zdaterange.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zdatetime/zdatetime.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zdiv/zdiv.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zform/zform.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zgauge/zgauge.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zgrid/zgrid.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zimg/zimg.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zkcard/zkcard.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zlabel/zlabel.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zmfb/zmfb.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/znumeric/znumeric.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zpostselectinput/zpostselectinput.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zquerybuilder/zquerybuilder.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zreport/zreport.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zscheduler/zscheduler.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zselectmultiple/zselectmultiple.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/ztab/ztab.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/ztext/ztext.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/ztextarea/ztextarea.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/ztexteditor/ztexteditor.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/ztree/ztree.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/ztreelist/ztreelist.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/ztrendcard/ztrendcard.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zudf/zudf.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zunknown/zunknown.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zupload/zupload.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zworkflowbuttons/zworkflowbuttons.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/services/zcomponent.service.ts","../../../projects/mmhglobal-dynamicform/src/lib/zformcontrol/zformcontrol.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/mmhglobal-dynamicform.module.ts","../../../projects/mmhglobal-dynamicform/src/public-api.ts","../../../projects/mmhglobal-dynamicform/src/mmhglobal-dynamicform.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 (_) 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 Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\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","/********** Angular **********/\r\nimport { Injectable } from \"@angular/core\";\r\nimport { FormGroup } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { HttpParams } from '@angular/common/http';\r\n\r\n/********** Ionic **********/\r\nimport { IonicSelectableComponent } from 'ionic-selectable';\r\n\r\n/********** Plugin **********/\r\nimport { BehaviorSubject, of, forkJoin, Observable } from 'rxjs';\r\nimport { tap, switchMap, map } from 'rxjs/operators';\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n AlertButton, AlertService, AuthService, FieldService, MESSAGETYPE,\r\n ResourceApiService, ToastService, WebApiService, ZComponentHelper, ZComponentOutputEvent,\r\n ZField, ZGroup, ZTreeTemplateParams\r\n} from \"mmhglobal-zcore\";\r\nimport { MainService } from \"./main.service\";\r\nimport { ModalResponse } from 'mmhglobal-zmodal';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ZComponentDebugService {\r\n constructor(\r\n private router: Router,\r\n private alertService: AlertService,\r\n private authService: AuthService,\r\n private fieldService: FieldService,\r\n private resourceApiService: ResourceApiService,\r\n private toastService: ToastService,\r\n private webApiService: WebApiService\r\n ) {}\r\n\r\n private scope: any;\r\n private mainService: MainService;\r\n\r\n get debug(): any {\r\n return this.scope.group._debug;\r\n }\r\n\r\n get group(): ZGroup {\r\n return this.scope.group;\r\n }\r\n\r\n public onInitDebugger(group: ZGroup, mainService: MainService) {\r\n group._debug = new ZGroup(true);\r\n group._isDebugging = true;\r\n group._debug.zData = {\r\n collectedActivities: [],\r\n activityCount: 0,\r\n collectedWorkflowButtons: [],\r\n workflowButtonCount: 0\r\n };\r\n group._debug.zComponents = {};\r\n group.isListForm = false;\r\n this.mainService = mainService;\r\n }\r\n\r\n\r\n public onStartDebugger(fieldElements: Array<ZField>, me: any) {\r\n this.scope = me;\r\n if (!me.group._debug) {\r\n me.group._debug = {};\r\n }\r\n\r\n const d: ZGroup = me.group._debug;\r\n me.form = me.toFormGroup(fieldElements);\r\n d.form = me.form;\r\n if (me.subscription) {\r\n me.subscription.unsubscribe();\r\n }\r\n\r\n Object.assign(d, {\r\n // zData: { collectedActivities: [], activityCount: 0 },\r\n zModel: {},\r\n subject: new BehaviorSubject<ZComponentOutputEvent>(null),\r\n isEdit: true,\r\n isNew: false,\r\n _debug: me.group._debug,\r\n _group: me.group,\r\n resourceURL: this.resourceApiService.getURL('field'),\r\n treeItemTemplate: this.treeItemTemplate,\r\n onItemClick: this.onItemClick,\r\n onTreeNodeChange: this.onTreeNodeChange,\r\n onAddNode: this.onAddNode,\r\n onRemoveNode: this.onRemoveNode,\r\n treeNodesExpandAll: this.treeNodesExpandAll,\r\n treeNodesCollapseAll: this.treeNodesCollapseAll,\r\n refreshTreeModel: this.refreshTreeModel,\r\n addNode: this.addNode,\r\n refreshActivityLogData: this.LoadGridData.bind(this),\r\n GoToFieldElement: this.gotoFieldElement.bind(this),\r\n ListWatchName: this.listWatchName,\r\n onChangeWatchName: this.onChangeWatchName.bind(this),\r\n getWatchName: this.getWatchName.bind(this),\r\n fieldElementonEditorCodeChange: this.fieldElementonEditorCodeChange.bind(this),\r\n gridActivityLogColumnFields: this.fieldService.getFormFieldCode(\r\n 'debugActivityLog',\r\n \"FormField\",\r\n this.group,\r\n \"debugActivityLogField\"\r\n ),\r\n gridActivityLogOnItemClick: this.gridActivityLogOnItemClick.bind(this),\r\n updateModel: this.updateModel.bind(this),\r\n refreshWorkflowButtonData: this.loadWorkflowData.bind(this),\r\n gridWorkflowButtonColumnFields: this.fieldService.getFormFieldCode(\r\n 'debugWorkflowButton',\r\n 'FormField',\r\n this.group,\r\n \"debugWorkflowButtonField\"\r\n ),\r\n gridWorkflowButtonOnItemClick: this.gridWorkflowButtonOnItemClick.bind(this)\r\n });\r\n if (!d.zData) {\r\n d.zData = { collectedActivities: [], activityCount: 0 };\r\n }\r\n\r\n me.subscription = d.subject.subscribe((event: ZComponentOutputEvent) =>\r\n this.subjectEvent(event, d, this)\r\n );\r\n ZComponentHelper.setFieldsDivClass(this.group._projectName, this.group.fieldName, fieldElements, this.authService);\r\n return this.loadDebugZModel(me);\r\n }\r\n\r\n private loadDebugZModel(me: any) {\r\n const d: ZGroup = me.group._debug;\r\n\r\n const downloadList = [];\r\n downloadList.push(this.getProjectId());\r\n\r\n const formType = me.group.isListForm ? 'ListField' : 'FormField';\r\n const fieldName = me.group.fieldName;\r\n const fieldzModel = this.getFieldzModel(formType, fieldName);\r\n downloadList.push(fieldzModel);\r\n\r\n return forkJoin(downloadList);\r\n }\r\n\r\n private getProjectId() {\r\n const d = this.debug;\r\n const url = this.resourceApiService.getURL('projectsURL');\r\n return this.webApiService.getApi(url, {}, d.zData, 'ProjectOptions', null, d, false);\r\n }\r\n\r\n private getFieldzModel(type: string, activityName: string) {\r\n if (type === 'FormField') {\r\n return this.getFormFieldzModel(activityName);\r\n } else {\r\n return this.getListFieldzModel(activityName);\r\n }\r\n }\r\n\r\n private getFormFieldzModel(activityName: string) {\r\n const d: ZGroup = this.debug;\r\n const url = this.resourceApiService.getURL('field');\r\n return this.webApiService.httpGet$(url, { name: activityName, type: 'FormField' }).pipe(\r\n tap((respData: any) => {\r\n // console.log('respData: ', respData);\r\n Object.assign(d.zModel, respData);\r\n d.form.patchValue(d.zModel);\r\n d.form.markAsPristine();\r\n const fields = JSON.parse(d.zModel.Code);\r\n Object.assign(d, {\r\n treeModel: ZComponentHelper.convertTreeModel(fields)\r\n });\r\n })\r\n );\r\n }\r\n\r\n private getListFieldzModel(activityName: string) {\r\n const d = this.debug;\r\n const url = this.resourceApiService.getURL('fieldsMapping');\r\n const url2 = this.resourceApiService.getURL('field');\r\n return this.webApiService.httpGet$(url, { name: activityName }).pipe(\r\n switchMap((fieldMapping: any) => {\r\n // console.log('fieldMapping: ', fieldMapping);\r\n return this.webApiService.httpGet$(url2, { id: fieldMapping.FieldElementMasterId });\r\n }),\r\n tap((respData: any) => {\r\n Object.assign(d.zModel, respData);\r\n d.form.patchValue(d.zModel);\r\n d.form.markAsPristine();\r\n const fields = JSON.parse(d.zModel.Code);\r\n Object.assign(d, {\r\n treeModel: ZComponentHelper.convertTreeModel(fields)\r\n });\r\n })\r\n )\r\n }\r\n\r\n\r\n private subjectEvent(event: ZComponentOutputEvent, group: ZGroup, me: any) {\r\n if (!event || !event.target || event.target.startsWith(\"modalGroup.\")) {\r\n return;\r\n }\r\n // console.log(\"** Debug - SubjectEvent\", event);\r\n let callFunc;\r\n\r\n try {\r\n callFunc = ZComponentHelper.getGroupEvalValue.call(\r\n me,\r\n event.target\r\n );\r\n // ZComponentHelper.getGroupValue(event.Target, group);\r\n } catch (error) {\r\n console.warn(\r\n \"Error when getGroupValue: \",\r\n event.target,\r\n \" > Error: \",\r\n error\r\n );\r\n }\r\n\r\n // callFunc(event);\r\n if (typeof callFunc === \"function\") {\r\n const newFunc = callFunc.bind(me);\r\n newFunc(event, group, me);\r\n } else if (typeof callFunc === \"string\") {\r\n if (event.type.endsWith(\"onNavigateTo\")) {\r\n const nUrl = event.target.replace(\"/:id\", \"/\" + event.data);\r\n this.router.navigate([nUrl]);\r\n return;\r\n }\r\n\r\n if (event.type === \"zgrid-cellClick\") {\r\n // (callFunc.startsWith('edit')) { zgrid-cellClick\r\n const cName = callFunc.slice(4);\r\n // debugger;\r\n // const modalGroupParam: ModalPageParams = {};\r\n // modalGroupParam.controllerName = cName;\r\n // modalGroupParam.referId = event.data.Id;\r\n // modalGroupParam.colFields$ = event.columnFields$;\r\n // modalGroupParam.parentGroup = me.group;\r\n\r\n // this.openModalForm(modalGroupParam);\r\n this.mainService.showzModal(event.columnFields$ || cName, group, '', {}, event.data.Id); // TODO\r\n }\r\n } else if (typeof callFunc === \"object\") {\r\n if (event.type === \"zgrid-cellClick\") {\r\n if (callFunc.navigateUrl) {\r\n const url = callFunc.navigateUrl.replace(\":id\", event.data.Id);\r\n this.router.navigate([url]);\r\n return;\r\n }\r\n\r\n // const modalGroupParam: ModalPageParams = {};\r\n // modalGroupParam.controllerName = callFunc.ctrlName;\r\n // modalGroupParam.referId = event.data.Id;\r\n // modalGroupParam.colFields$ = event.columnFields$;\r\n // modalGroupParam.parentGroup = me.group;\r\n // modalGroupParam.formHeader = callFunc.formHeader;\r\n\r\n if (callFunc.formHeader) {\r\n // this.openModalForm(modalGroupParam);\r\n\r\n this.mainService.showzModal(event.columnFields$ || callFunc.ctrlName, group, callFunc.formHeader, {}, event.data.Id);\r\n return;\r\n }\r\n console.warn(\r\n \"Invalid callFunc type: \",\r\n callFunc,\r\n \" event.Target: \",\r\n event.target\r\n );\r\n }\r\n // this.openModalFormByComponent(callFunc.type, event.Data.Id);\r\n } else {\r\n console.warn(\r\n \"Function not defined in group for: \",\r\n event.target,\r\n \", Event: \",\r\n event\r\n );\r\n }\r\n }\r\n\r\n private gridActivityLogOnItemClick(event: any) {\r\n // console.log('gridActivityLogOnItemClick: ', event);\r\n const rec = event.dataItem;\r\n switch (rec.type) {\r\n case 'ListField':\r\n case 'FormField':\r\n this.getFieldzModel(rec.type, rec.activityName).subscribe(() => {\r\n this.selectTab(0);\r\n });\r\n break;\r\n case 'ResourceServerAPI':\r\n const watchNameValue = '_debug.zData.collectedActivities[' + (rec.index - 1) + '].reference';\r\n this.setWatchNameValue(watchNameValue);\r\n this.selectTab(1);\r\n break;\r\n case 'HttpGet$':\r\n case 'HttpPost$':\r\n case 'HttpPut$':\r\n case 'HttpDelete$':\r\n this.setWatchNameValue('_debug.zData.collectedActivities[' + (rec.index - 1) + ']');\r\n this.selectTab(1);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n private selectTab(index: number) {\r\n // debugger;\r\n // this.debug.zComponents[\"ztab_debuggerTabs\"].state.lastSelectedTabIndex = index;\r\n // ZComponentHelper.getComponent(this.debug, 'ztab_debuggerTabs').state.lastSelectedTabIndex = index;\r\n ZComponentHelper.getComponent(this.debug, 'ztab_debuggerTabs').selectTab(index);\r\n }\r\n\r\n private setWatchNameValue(newValue: string) {\r\n this.debug.zModel['DebugWatchName'] = newValue;\r\n ZComponentHelper.setModelValue('WatchName', newValue, this.debug, true);\r\n }\r\n\r\n public LoadGridData() {\r\n const activityLogGrid = ZComponentHelper.getComponent(this.debug, 'zgrid_ActivityLogGrid');\r\n if (activityLogGrid) {\r\n activityLogGrid.setData(this.debug.zData.collectedActivities);\r\n }\r\n }\r\n\r\n private listWatchName(component: IonicSelectableComponent, searchText: string, pageNo: number,\r\n me: any, dataItem: any, recordId?: string) {\r\n\r\n const watchList = [\r\n { Name: 'group.zModel' },\r\n { Name: 'group.zData' },\r\n { Name: 'group.fields' },\r\n { Name: 'group.form.value' },\r\n { Name: 'group.backNavigationPage' },\r\n { Name: 'group.parentReferenceField' },\r\n { Name: 'group.parentReferenceId' },\r\n { Name: 'Object.keys(group.zComponents)' },\r\n { Name: 'group.gridOptions.zgrid.grid.data' }\r\n // { Name: 'Object.keys(_debug.zComponents)' },\r\n // { Name: '_debug.zModel' },\r\n // { Name: '_debug.zData' },\r\n // { Name: '_debug.zData.collectedActivities' },\r\n ];\r\n\r\n let results;\r\n if (searchText) {\r\n results = watchList.filter((s) => s.Name.toLowerCase().indexOf(searchText.toLowerCase()) !== -1);\r\n }\r\n\r\n if (pageNo === 0 && searchText) {\r\n return of({ dataSet: results });\r\n } else if (pageNo === 0) {\r\n return of({ dataSet: watchList });\r\n } else {\r\n return of({ dataSet: [] });\r\n }\r\n }\r\n\r\n private getWatchName() {\r\n return this.debug.zModel.DebugWatchName;\r\n }\r\n\r\n private onChangeWatchName(event: any, group: ZGroup, me: any) {\r\n // console.log('onChangeWatchName: ', event.data.value);\r\n const newValue = event.data.value;\r\n if (newValue) {\r\n this.debug.zModel['DebugWatchName'] = newValue.replace('group', '_group');\r\n }\r\n }\r\n\r\n private fieldElementonEditorCodeChange(el: ZComponentOutputEvent) {\r\n this.refreshTreeModel();\r\n }\r\n\r\n\r\n private treeNodesExpandAll() {\r\n this.debug.zComponents['ztree_debugZTree'].expandAll();\r\n }\r\n\r\n private treeNodesCollapseAll() {\r\n this.debug.zComponents['ztree_debugZTree'].collapseAll();\r\n }\r\n\r\n private refreshTreeModel() {\r\n try {\r\n const d = JSON.parse(this.debug.zModel.Code);\r\n // this._addNodesToTree(d);\r\n // group['treeModel'] = this.convertTreeModel(d);\r\n this.debug['treeModel'] = ZComponentHelper.convertTreeModel(d);\r\n } catch {\r\n debugger;\r\n }\r\n }\r\n\r\n private treeItemTemplate(el: ZTreeTemplateParams) {\r\n const getFieldValue = (item: any) => {\r\n if (typeof item._DataValue === \"string\") {\r\n return item._DataValue;\r\n }\r\n return \"...\";\r\n };\r\n return (\r\n el.dataItem.Name +\r\n \" - [\" +\r\n el.dataItem.Type +\r\n \"] = \" +\r\n getFieldValue(el.dataItem)\r\n );\r\n }\r\n\r\n async onItemClick(event: ZComponentOutputEvent) {\r\n // debugger;\r\n console.log(\"onItemClick data received: \", event);\r\n const modalFields = this.fieldService.getFormFieldCode(\r\n \"mvEditFieldNodeForm\",\r\n \"FormField\",\r\n null,\r\n null\r\n );\r\n const dataItem = Object.assign({}, event.data);\r\n dataItem.Value = dataItem._DataValue;\r\n delete dataItem._DataValue;\r\n const zmodel = {\r\n nodeModel: JSON.stringify(dataItem, null, 2)\r\n };\r\n const modal = await this.mainService.showzModal(modalFields, this.debug._group, 'Field Element Info', zmodel);\r\n modal.subscribe((modalData: ModalResponse) => {\r\n if (modalData.responseType === \"cancel\") {\r\n return;\r\n }\r\n const newData = JSON.parse(modalData.data.nodeModel);\r\n if (newData.Value) {\r\n newData._DataValue = newData.Value;\r\n newData.Value = null;\r\n }\r\n this.updateTreeNode(newData, this.debug['treeModel'], event.event);\r\n const newTreeModel = JSON.parse(JSON.stringify(this.debug['treeModel']));\r\n const revertedModel = ZComponentHelper.revertTreeModel(newTreeModel);\r\n const newCode = JSON.stringify(revertedModel, null, 2);\r\n ZComponentHelper.setModelValue(\"Code\", newCode, this.debug);\r\n this.updateModel();\r\n // this.mainService.updateModel(null, this.debug);\r\n });\r\n }\r\n\r\n private updateTreeNode(newNode: any, treeModel: any, index: string) {\r\n const treeIndex = index.split(\"_\");\r\n if (treeIndex.length > 1) {\r\n const newIndex = treeIndex.slice(1).join(\"_\");\r\n this.updateTreeNode(newNode, treeModel[+treeIndex[0]].Value, newIndex);\r\n } else {\r\n if (treeModel[+treeIndex[0]].Value) {\r\n newNode.Value = treeModel[+treeIndex[0]].Value;\r\n }\r\n treeModel[+treeIndex[0]] = newNode;\r\n }\r\n }\r\n\r\n\r\n\r\n private insertTreeNode(newNode: any, treeModel: any, index: string) {\r\n const treeIndex = index.split(\"_\");\r\n if (treeIndex.length > 1) {\r\n const newIndex = treeIndex.slice(1).join(\"_\");\r\n this.insertTreeNode(newNode, treeModel[+treeIndex[0]].Value, newIndex);\r\n } else {\r\n if (treeIndex[0]) {\r\n if (!Array.isArray(treeModel[+treeIndex[0]].Value)) {\r\n treeModel[+treeIndex[0]].Value = [];\r\n }\r\n treeModel[+treeIndex[0]].Value.push(newNode);\r\n } else {\r\n treeModel.push(newNode);\r\n }\r\n }\r\n }\r\n\r\n private removeTreeNode(treeModel: any, index: string) {\r\n const treeIndex = index.split(\"_\");\r\n if (treeIndex.length > 1) {\r\n const newIndex = treeIndex.slice(1).join(\"_\");\r\n this.removeTreeNode(treeModel[+treeIndex[0]].Value, newIndex);\r\n } else {\r\n treeModel.splice(+treeIndex[0], 1);\r\n }\r\n }\r\n\r\n private onTreeNodeChange(el: ZComponentOutputEvent) {\r\n console.log(\"onTreeNodeChange: \", el);\r\n const codeData = JSON.stringify(el.data);\r\n ZComponentHelper.setModelValue(\"Code\", codeData, this.debug);\r\n }\r\n\r\n private addNode() {\r\n const el: ZComponentOutputEvent = {\r\n data: {},\r\n rowData: {},\r\n event: \"\",\r\n target: \"\",\r\n type: \"\",\r\n columnFields$: null\r\n };\r\n this.onAddNode(el);\r\n }\r\n\r\n private async onAddNode(el: ZComponentOutputEvent) {\r\n console.log('onAddNode is called', el);\r\n const modalFields = this.fieldService.getFormFieldCode(\r\n \"mvEditFieldNodeForm\",\r\n \"FormField\",\r\n null,\r\n null\r\n );\r\n // const dataItem = Object.assign({}, el.data);\r\n // dataItem.Value = dataItem._DataValue;\r\n // delete dataItem._DataValue;\r\n const initialModel = {\r\n Name: 'Name', DisplayName: 'Name', Value: 'Name', Type: 'text',\r\n gridColVisible: true,\r\n width: 150,\r\n minWidth: 100,\r\n enableFiltering: true,\r\n enableSorting: true,\r\n pinnedLeft: false,\r\n PlaceHolder: \"Name\",\r\n IsRequired: false,\r\n MinLength: 2,\r\n MaxLength: 50,\r\n Label: \"Name:\",\r\n DivClass: \"col-xs-12 col-sm-6 col-md-6 col-lg-3\",\r\n ReadOnly: false,\r\n ShowLabel: true,\r\n Visible: true,\r\n //EnableHiding: true,\r\n //cellFilter: \"\",\r\n //filterCellFiltered: false,\r\n //enablePinning: true,\r\n //pinnedRight: false,\r\n //UpdateOnBlur: true,\r\n //AppendDivClearFix: false,\r\n };\r\n const zmodel = {\r\n nodeModel: JSON.stringify(initialModel, null, 2)\r\n };\r\n\r\n // const modal: HTMLIonModalElement = await this.mainService.openModalForm(modalGroupParam);\r\n const modal = await this.mainService.showzModal(modalFields, this.debug, 'Add Field Element Item', zmodel);\r\n\r\n modal.subscribe((modalData: ModalResponse) => {\r\n if (modalData.responseType === \"cancel\") {\r\n return;\r\n }\r\n const newData = JSON.parse(modalData.data.nodeModel);\r\n if (newData.Value) {\r\n newData._DataValue = newData.Value;\r\n newData.Value = null;\r\n }\r\n this.insertTreeNode(newData, this.debug[\"treeModel\"], el.event);\r\n const newTreeModel = JSON.parse(JSON.stringify(this.debug['treeModel']));\r\n const revertedModel = ZComponentHelper.revertTreeModel(newTreeModel);\r\n const newCode = JSON.stringify(revertedModel, null, 2);\r\n ZComponentHelper.setModelValue(\"Code\", newCode, this.debug);\r\n this.updateModel();\r\n // this.mainService.updateModel(null, this.debug);\r\n });\r\n }\r\n\r\n private onRemoveNode(el: ZComponentOutputEvent) {\r\n this.alertService.show('Remove Node', 'Are you sure?',\r\n [\r\n { text: \"No\", cssClass: \"secondary\" } as AlertButton,\r\n { text: \"Yes\", cssClass: \"primary\" } as AlertButton\r\n ])\r\n .subscribe(reply => {\r\n if (reply === 'Yes') {\r\n console.log('Remove Node', el);\r\n this.removeTreeNode(this.debug[\"treeModel\"], el.event);\r\n const newTreeModel = JSON.parse(JSON.stringify(this.debug['treeModel']));\r\n const revertedModel = ZComponentHelper.revertTreeModel(newTreeModel);\r\n const newCode = JSON.stringify(revertedModel, null, 2);\r\n ZComponentHelper.setModelValue(\"Code\", newCode, this.debug);\r\n }\r\n });\r\n }\r\n\r\n private gotoFieldElement() {\r\n this.router.navigate(['admin/field']);\r\n }\r\n\r\n private updateModel() {\r\n const debug = this.debug;\r\n const fg = this.debug.form as FormGroup;\r\n if (!fg.dirty) {\r\n console.warn(\"Debug Form is not dirty hence record is not save.\");\r\n return;\r\n }\r\n\r\n if (!fg.valid) {\r\n const errors = ZComponentHelper.getFormGroupErrors(fg, this.alertService);\r\n console.warn(\"Debug Form Validation got error(s):\", errors);\r\n return;\r\n }\r\n\r\n of(debug.zModel)\r\n .pipe(\r\n // switchMap(zmodel => {\r\n // console.log(\"Before update, zModel:\", zmodel);\r\n // return this.beforeUpdateModel(group);\r\n // }),\r\n tap(() => {\r\n Object.assign(debug.zModel, fg.value);\r\n }),\r\n switchMap(() => {\r\n return this.webApiService.httpPut$(\r\n debug.resourceURL + \"/\" + debug.zModel.Id,\r\n debug.zModel\r\n )\r\n .pipe(\r\n map(res => this.handleSuccess(res, \"Record is updated successfully.\")),\r\n );\r\n }),\r\n switchMap((zmodel: any) => {\r\n console.log(\"After Debug Form updated, zModel:\", zmodel);\r\n if (zmodel && zmodel.Data) {\r\n Object.assign(debug.zModel, zmodel.Data);\r\n fg.patchValue(zmodel.Data);\r\n }\r\n fg.markAsPristine();\r\n // this.afterUpdateModel(group);\r\n return of([]);\r\n }))\r\n .subscribe();\r\n }\r\n\r\n\r\n // ******************** Workflow Button ********************\r\n public loadWorkflowData() {\r\n const zgrid_WorkflowButtonGrid = ZComponentHelper.getComponent(this.debug, 'zgrid_WorkflowButtonGrid');\r\n if (zgrid_WorkflowButtonGrid) {\r\n zgrid_WorkflowButtonGrid.setData(this.debug.zData.collectedWorkflowButtons);\r\n }\r\n }\r\n\r\n private gridWorkflowButtonOnItemClick(event: any) {\r\n const dataItem = Object.assign({}, event.dataItem);\r\n const field = dataItem.refField;\r\n const attribute = dataItem.refAttribute;\r\n\r\n // Get Mapped Info\r\n const params = new HttpParams()\r\n .set(\"ButtonId\", field.Id);\r\n this.webApiService.httpPost$(this.resourceApiService.getURL(\"e1wfs_wfc_getmappedButtonInfoURL\"), params).pipe(\r\n map(async res => {\r\n let roleInfo = [];\r\n let statusInfo = [];\r\n let parentStatusInfo = [];\r\n\r\n if (res.MappedRoleList) {\r\n roleInfo = res.MappedRoleList;\r\n }\r\n\r\n if (res.MappedStatusList) {\r\n res.MappedStatusList.forEach((_status: any) => {\r\n statusInfo.push(_status.Name + ' (' + _status.Code + ')');\r\n });\r\n }\r\n\r\n if (res.MappedParentStatusList) {\r\n res.MappedParentStatusList.forEach((_parentStatus: any) => {\r\n parentStatusInfo.push(_parentStatus.Name + ' (' + _parentStatus.Code + ')');\r\n });\r\n }\r\n\r\n const _mappedInfo = {\r\n 'mappedRoleInfo': roleInfo.length > 0 ? roleInfo : 'N.A.',\r\n 'mappedStatusInfo': statusInfo.length > 0 ? statusInfo : 'N.A.',\r\n 'mappedParentStatusInfo': parentStatusInfo.length > 0 ? parentStatusInfo : 'N.A.'\r\n };\r\n\r\n // retreive all important info\r\n const _buttonInfo = {\r\n 'WorkflowId': field.WorkflowId,\r\n 'ButtonId': field.Id,\r\n 'ButtonName': field.Name,\r\n 'ButtonCode': field.Code,\r\n 'ButtonTypeId': field.Type.Id,\r\n 'ButtonTypeName': field.Type.Name,\r\n 'ButtonTypeCode': field.Type.Code,\r\n 'ButtonVisible': attribute.Visible,\r\n 'ButtonClickEvent': attribute.ClickEvent,\r\n 'ButtonURL': attribute.URL,\r\n 'ButtonIcon': attribute.Icon\r\n };\r\n\r\n let _gotoStatusInfo = {\r\n 'GotoStatusId': 'N.A.',\r\n 'GotoStatusName': 'N.A.',\r\n 'GotoStatusCode': 'N.A.'\r\n };\r\n\r\n if (field.Status) {\r\n const _gotoStatus = field.Status\r\n _gotoStatusInfo = {\r\n 'GotoStatusId': _gotoStatus.Id,\r\n 'GotoStatusName': _gotoStatus.Name,\r\n 'GotoStatusCode': _gotoStatus.Code\r\n }\r\n }\r\n\r\n const propertiesModel = Object.assign(_buttonInfo, _gotoStatusInfo, _mappedInfo);\r\n\r\n const modalFields = this.fieldService.getFormFieldCode(\r\n \"mvWorkflowButtonDebugForm\",\r\n \"FormField\",\r\n null,\r\n null\r\n );\r\n const modal = await this.mainService.showzModal(modalFields, this.debug._group, 'Workflow Button Info', propertiesModel);\r\n modal.subscribe((modalData: ModalResponse) => {\r\n if (modalData.responseType === \"cancel\") {\r\n return;\r\n }\r\n });\r\n })\r\n ).subscribe();\r\n }\r\n\r\n\r\n handleSuccess(res: Response | any, successMsg: string): Response {\r\n if (res == null) {\r\n this.toastService.show(successMsg);\r\n } else if (res.Data !== undefined && res.ProcessingStatus !== undefined) {\r\n if (res.ProcessingStatus === true) {\r\n if (Array.isArray(res.Data)) {\r\n res.Data.map(s => this.webApiService.showHttpResponseMessage(MESSAGETYPE.Success,\r\n `${successMsg} : ${s.CostCode}`, null));\r\n } else {\r\n this.webApiService.showHttpResponseMessage(MESSAGETYPE.Success, successMsg, null);\r\n }\r\n }\r\n } else {\r\n this.toastService.show(successMsg);\r\n }\r\n return res;\r\n }\r\n\r\n handleError(res: any): Observable<any> {\r\n return this.webApiService.handleError(res);\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, OnDestroy, Input } from \"@angular/core\";\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\nimport { ModalController, Platform } from \"@ionic/angular\";\r\n\r\n/********** Plugin **********/\r\nimport { Subscription, Observable } from \"rxjs\";\r\nimport { DialogContentBase, DialogRef } from '@progress/kendo-angular-dialog';\r\n\r\n/********** Component & Service **********/\r\nimport { \r\n ZGroup, ModalPageParams,\r\n WebApiService, AlertService, ZCoreService, FieldService, ResourceApiService,\r\n ZComponentHelper, ZComponentOutputEvent\r\n} from \"mmhglobal-zcore\";\r\nimport { ZmodalHelper, ModalResponse } from 'mmhglobal-zmodal';\r\n\r\n\r\n@Component({\r\n selector: 'app-zmodal',\r\n templateUrl: './zmodal.component.html',\r\n styleUrls: ['./zmodal.component.scss'],\r\n})\r\nexport class ZmodalComponent extends DialogContentBase implements OnInit, OnDestroy {\r\n @Input() modalParams: ModalPageParams;\r\n\r\n group: ZGroup = new ZGroup(true);\r\n subscription: Subscription;\r\n backButtonSubscription: Subscription;\r\n\r\n constructor( \r\n public dialog: DialogRef,\r\n private modalCtrl: ModalController,\r\n private zcoreService: ZCoreService,\r\n private webApiService: WebApiService,\r\n private resourceApiService: ResourceApiService,\r\n private fieldService: FieldService,\r\n private platform: Platform,\r\n private alertService: AlertService\r\n\r\n ) {\r\n super(dialog);\r\n }\r\n\r\n // get modalGroup() {\r\n // return this.group;\r\n // }\r\n\r\n ngOnInit() {\r\n ZmodalHelper.onInit_ModalForm(this);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n ZmodalHelper.onDestroy_ModalForm(this);\r\n }\r\n\r\n onCancel(event?: ZComponentOutputEvent) {\r\n ZmodalHelper.onCancel(this, event);\r\n // this.dialog.close();\r\n }\r\n\r\n onConfirm(event: ZComponentOutputEvent) {\r\n ZmodalHelper.onConfirm(this, event);\r\n // const fg = this.group.form as FormGroup;\r\n // if (!this.group.form) {\r\n // return;\r\n // }\r\n\r\n // if (!fg.dirty) {\r\n // console.warn('Form is not dirty hence modalform record is not saved.');\r\n // this.onCancel();\r\n // return;\r\n // }\r\n\r\n // if (!fg.valid) {\r\n // const errors = ZComponentHelper.getFormGroupErrors(fg, this.alertService);\r\n // console.warn(\"Form Validation got error(s):\", errors);\r\n // return;\r\n // }\r\n\r\n // Object.assign(this.group.zModel, fg.value);\r\n // this.modalCtrl.dismiss(this.group.zModel, \"confirm\");\r\n // if (ZComponentHelper.isMobileScreen()) {\r\n // this.modalCtrl.dismiss(event.data, \"confirm\");\r\n // } else {\r\n // this.dialog.close(event.data);\r\n // }\r\n }\r\n\r\n onInitClose(event?: ZComponentOutputEvent) {\r\n ZmodalHelper.onInitClose(this,event);\r\n }\r\n\r\n isSITEnvironment() {\r\n return this.zcoreService.isDebugSession();\r\n }\r\n\r\n\r\n // to serve actionButton at formHeader\r\n subjectEvent(event: ZComponentOutputEvent, group: ZGroup, me: any) {\r\n if (!event || !event.target || !event.target.startsWith('modalGroup')) {\r\n return;\r\n }\r\n console.log(\">> SubjectEvent\", event);\r\n // const target = event.target.replace('modalGroup.', 'group.');\r\n const callFunc = ZComponentHelper.getGroupEvalValue.call(this, event.target, group);\r\n // callFunc(event);\r\n if (typeof callFunc === \"function\") {\r\n const fg = this.group.form as FormGroup;\r\n Object.assign(this.group.zModel, fg.value);\r\n event.data = this.group.zModel;\r\n if (event.target.startsWith('modalGroup.modalAnswer') || event.target.startsWith('modalGroup.modalClose') || event.target.startsWith('modalGroup.modalCancel')) {\r\n const newFunc = callFunc.bind(this);\r\n newFunc(event);\r\n } else {\r\n const newFunc = callFunc.bind(group.ctrlScope);\r\n newFunc(event);\r\n }\r\n } else {\r\n console.warn(\r\n \"Function not defined in group for: \",\r\n callFunc,\r\n \", Event: \",\r\n event\r\n );\r\n }\r\n }\r\n\r\n getModel$(group: any, id: string): Observable<any> {\r\n const recId = id || group.referenceId;\r\n return this.webApiService.httpGet$(group.resourceURL + \"/\" + recId, null);\r\n }\r\n\r\n getGridStyle() {\r\n // debugger;\r\n if (!this.isMobileScreen) {\r\n return {\r\n \"height.px\": 500,\r\n \"width.px\": 700\r\n };\r\n }\r\n return;\r\n }\r\n\r\n isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, OnDestroy, Input } from \"@angular/core\";\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n// import { ModalController, Platform } from \"@ionic/angular\";\r\n\r\n/********** Plugin **********/\r\n// import { switchMap, tap } from \"rxjs/operators\";\r\nimport { Subscription, of, BehaviorSubject, Observable, fromEvent } from \"rxjs\";\r\n\r\n/********** Component & Service **********/\r\n// import { FieldService } from \"../mmhglobal-zcore/field.service\";\r\n// import { ResourceApiService } from \"../mmhglobal-zcore/resourceapi.service\";\r\nimport {\r\n WebApiService, ModalPageParams,\r\n ZGroup, ZCoreService, ZComponentHelper, ZComponentOutputEvent, FieldService,\r\n} from \"mmhglobal-zcore\";\r\nimport { ZmodalHelper } from 'mmhglobal-zmodal';\r\n\r\n\r\n@Component({\r\n selector: \"app-zmodal\",\r\n templateUrl: \"./zmodal.component.html\",\r\n styleUrls: [\"./zmodal.component.scss\"]\r\n})\r\nexport class ZmodalMobileComponent implements OnInit, OnDestroy {\r\n @Input() modalParams: ModalPageParams;\r\n\r\n group: ZGroup = new ZGroup(true);\r\n subscription: Subscription;\r\n backButtonSubscription: Subscription;\r\n\r\n constructor(\r\n private webApiService: WebApiService,\r\n private zcoreService: ZCoreService,\r\n private fieldService: FieldService // Use in mmhglobal-zmodal.helper\r\n ) {\r\n }\r\n\r\n // get modalGroup() {\r\n // return this.group;\r\n // }\r\n\r\n ngOnInit() {\r\n ZmodalHelper.onInit_ModalForm(this);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n ZmodalHelper.onDestroy_ModalForm(this);\r\n }\r\n\r\n onCancel(event?: ZComponentOutputEvent) {\r\n ZmodalHelper.onCancel(this, event);\r\n // this.modalCtrl.dismiss(null, \"cancel\");\r\n }\r\n\r\n onConfirm(event: ZComponentOutputEvent) {\r\n ZmodalHelper.onConfirm(this, event);\r\n // const fg = this.group.form as FormGroup;\r\n // if (!this.group.form) {\r\n // return;\r\n // }\r\n\r\n // if (!fg.dirty) {\r\n // console.warn('Form is not dirty hence modalform record is not saved.');\r\n // this.onCancel();\r\n // return;\r\n // }\r\n\r\n // if (!fg.valid) {\r\n // const errors = ZComponentHelper.getFormGroupErrors(fg, this.alertService);\r\n // console.warn(\"Form Validation got error(s):\", errors);\r\n // return;\r\n // }\r\n\r\n // // Object.assign(this.group.zModel, fg.value);\r\n // // this.modalCtrl.dismiss(this.group.zModel, \"confirm\");\r\n // // if (ZComponentHelper.isMobileScreen()) {\r\n // this.modalCtrl.dismiss(event.data, \"confirm\");\r\n // // } else {\r\n // // this.dialog.close(event.data);\r\n // // }\r\n }\r\n\r\n onInitClose(event?: ZComponentOutputEvent) {\r\n ZmodalHelper.onInitClose(this, event);\r\n }\r\n\r\n // to serve actionButton at formHeader\r\n subjectEvent(event: ZComponentOutputEvent, group: ZGroup, me: any) {\r\n if (!event || !event.target || !event.target.startsWith('modalGroup')) {\r\n return;\r\n }\r\n console.log(\">> SubjectEvent\", event);\r\n // const target = event.target.replace('modalGroup.', 'group.');\r\n const callFunc = ZComponentHelper.getGroupEvalValue.call(this, event.target, group);\r\n // callFunc(event);\r\n if (typeof callFunc === \"function\") {\r\n const fg = this.group.form as FormGroup;\r\n Object.assign(this.group.zModel, fg.value);\r\n event.data = this.group.zModel;\r\n if (event.target.startsWith('modalGroup.modalAnswer') || event.target.startsWith('modalGroup.modalCancel')) {\r\n const newFunc = callFunc.bind(this);\r\n newFunc(event);\r\n } else {\r\n const newFunc = callFunc.bind(group.ctrlScope);\r\n newFunc(event);\r\n }\r\n } else {\r\n console.warn(\r\n \"Function not defined in group for: \",\r\n callFunc,\r\n \", Event: \",\r\n event\r\n );\r\n }\r\n }\r\n\r\n getModel$(group: any, id: string): Observable<any> {\r\n const recId = id || group.referenceId;\r\n return this.webApiService.httpGet$(group.resourceURL + \"/\" + recId, null);\r\n }\r\n\r\n getGridStyle() {\r\n // debugger;\r\n if (!this.isMobileScreen) {\r\n return {\r\n \"height.px\": 500,\r\n \"width.px\": 700\r\n };\r\n }\r\n return;\r\n }\r\n\r\n isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n\r\n isSITEnvironment() {\r\n return this.zcoreService.isDebugSession();\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Injectable } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\n\r\n/********** Ionic **********/\r\nimport { ModalController, NavController } from '@ionic/angular';\r\n\r\n/********** Plugin **********/\r\nimport { Observable, BehaviorSubject, Subscription, of, from } from 'rxjs';\r\nimport { tap, switchMap, take, map } from 'rxjs/operators';\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n AlertButton, MESSAGETYPE, ModalPageParams,\r\n AlertService, CacheService, FieldService, ResourceApiService, ToastService, WebApiService,\r\n ZComponentHelper, ZComponentOutputEvent, ZComponentSize, ZCoreService, ZField, ZGroup\r\n} from 'mmhglobal-zcore';\r\nimport { ModalService, ModalResponse } from 'mmhglobal-zmodal';\r\n// import { ModalService } from '../zmodal/modal.service';\r\nimport { ZComponentDebugService } from './zcomponent.debug.service';\r\nimport { ZmodalComponent } from '../zmodal/zmodal.component';\r\nimport { ZmodalMobileComponent } from '../zmodal/zmodal-mobile.component';\r\nimport { ZGrid } from '../zgrid/zgrid.component';\r\n// import { ZmodalPage } from '../zmodal/zmodal.page';\r\n\r\n// import { ZComponentHelper, ZComponentOutputEvent, ModalPageParams, ZGrid } from '../dynamicform/zcomponent.model';\r\n// import { ZGroup, ZField } from '../model/zgroup.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MainService {\r\n private group: ZGroup;\r\n private oauthEnvironmentUrl: string;\r\n\r\n constructor(\r\n private router: Router,\r\n private modalCtrl: ModalController,\r\n private navController: NavController,\r\n private alertService: AlertService,\r\n private cacheService: CacheService,\r\n private fieldService: FieldService,\r\n private resourceApiService: ResourceApiService,\r\n private toastService: ToastService,\r\n private webApiService: WebApiService,\r\n private zcoreService: ZCoreService,\r\n private modalService: ModalService,\r\n private debugService: ZComponentDebugService\r\n ) {\r\n console.log('MainService constructor');\r\n this.oauthEnvironmentUrl = this.zcoreService.getEnvironment().e1OauthUrl + '/';\r\n }\r\n\r\n startUp() {\r\n console.log('At main.service (StartUp) ...');\r\n }\r\n\r\n setGroup(group: ZGroup) {\r\n this.group = group;\r\n this.fieldService.setGroup(group);\r\n this.resourceApiService.setGroup(group);\r\n this.webApiService.setGroup(group);\r\n const isDebugging = this.zcoreService.isDebugSession() || false;\r\n if (isDebugging) {\r\n this.debugService.onInitDebugger(group, this);\r\n }\r\n }\r\n\r\n getResourceServerData() {\r\n return this.resourceApiService.loadData();\r\n }\r\n\r\n getGroupFields(\r\n ctrlName: string,\r\n formType: \"ListField\" | \"FormField\",\r\n group: ZGroup,\r\n propertyName: string\r\n ) {\r\n return this.fieldService.getFormFieldCode(\r\n ctrlName,\r\n formType,\r\n group,\r\n propertyName\r\n );\r\n }\r\n\r\n initializeGroup(\r\n group: ZGroup,\r\n ctrlName: string,\r\n pageName: string,\r\n me: any\r\n ): Subscription {\r\n if (me.subscription) {\r\n me.subscription.unsubscribe();\r\n }\r\n const resourceName = group.resourceURLName || ctrlName;\r\n group.resourceURLName = resourceName;\r\n\r\n Object.assign(group, {\r\n resourceURL: this.resourceApiService.getURL(resourceName),\r\n gridColumnFields: this.fieldService.getFormFieldCode(\r\n ctrlName,\r\n \"FormField\",\r\n null,\r\n null\r\n ),\r\n ctrlScope: me,\r\n pageName,\r\n ctrlName,\r\n // createModelURL: \"/create\" + ctrlName.toLowerCase(),\r\n editModelURL: ctrlName.toLowerCase(),\r\n // listModelURL: \"/list\" + ctrlName.toLowerCase(),\r\n // formHeader: \"...\",\r\n isLoading: true,\r\n fields: [],\r\n zModel: {},\r\n zComponents: {},\r\n zData: {},\r\n subject: new BehaviorSubject<ZComponentOutputEvent>(null),\r\n // form: null as FormGroup, // removed for bug fix.\r\n cancelButtonName: \"Close\",\r\n zButtonsCount: 0,\r\n // topRightActionButton: [],\r\n // onAction: this.onAction.bind(this),\r\n backNavigation: this.backNavigation.bind(this),\r\n historyBack: this.historyBack.bind(this),\r\n refreshPage: this.refreshPage,\r\n refreshGrid: this.refreshGrid.bind(this),\r\n updateModel: this.updateModel.bind(this),\r\n createModel: this.createModel.bind(this),\r\n cloneNewModel: this.cloneNewModel.bind(this),\r\n deleteModel: this.deleteModel.bind(this),\r\n newModel: this.newModel.bind(this),\r\n // _isDebugging: environment.debugSession || false,\r\n // _debug: {\r\n // zData: { collectedActivities: [], activityCount: 0 }\r\n // }\r\n // afterGetModelSuccess: null,\r\n // beforeUpdateModel: null,\r\n // isEdit: false\r\n });\r\n\r\n me.subscription = group.subject.subscribe((event: ZComponentOutputEvent) =>\r\n this.subjectEvent(event, group, me)\r\n );\r\n\r\n return me.subscription;\r\n }\r\n\r\n getModel$(group: ZGroup, id: string): Observable<any> {\r\n const recId = id || group.referenceId;\r\n return this.webApiService\r\n .httpGet$(group.resourceURL + \"/\" + recId, null)\r\n .pipe(\r\n tap((zmodel) => {\r\n group.zModel = zmodel;\r\n if (\r\n group.parentReferenceField &&\r\n Object.keys(zmodel).indexOf(group.parentReferenceField) !== -1 &&\r\n !group.backNavigationPage.endsWith(\".edit\")\r\n ) {\r\n group.backNavigationPage =\r\n group.backNavigationPage +\r\n \"/\" +\r\n zmodel[group.parentReferenceField].toString() +\r\n \"/edit\";\r\n }\r\n }),\r\n switchMap(() => {\r\n if (group.afterGetModelSuccess) {\r\n return this.afterGetModelSuccess(group);\r\n }\r\n return of([]);\r\n })\r\n );\r\n }\r\n\r\n canExit(form: FormGroup): boolean | Observable<boolean> {\r\n if (!form || !form.dirty) {\r\n return true;\r\n }\r\n\r\n if (form['skipDirtyCheck']) {\r\n return true;\r\n }\r\n\r\n return this.alertService\r\n .show(\"Data not save yet\", \"Are you sure want to discard the changes?\", [\r\n \"Cancel\",\r\n \"Discard Changes\",\r\n ])\r\n .pipe(\r\n switchMap((reply) => {\r\n if (reply === \"Discard Changes\") {\r\n return of(true);\r\n }\r\n return of(false);\r\n })\r\n );\r\n // const replySub = new Subject<boolean>();\r\n // this.alertCtrl\r\n // .create({\r\n // header: \"Data not save yet\",\r\n // // subHeader: 'SubHeader statement here',\r\n // message: \"Are you sure want to discard the changes?\",\r\n // buttons: [\r\n // {\r\n // text: \"Cancel\",\r\n // role: \"cancel\",\r\n // cssClass: \"secondary\",\r\n // handler: () => {\r\n // replySub.next(false);\r\n // }\r\n // },\r\n // {\r\n // text: \"Discard Changes\",\r\n // cssClass: \"warning\",\r\n // handler: () => {\r\n // replySub.next(true);\r\n // }\r\n // }\r\n // ]\r\n // })\r\n // .then(alertElement => {\r\n // alertElement.present();\r\n // });\r\n // return replySub.asObservable().pipe(take(1));\r\n }\r\n\r\n // async openModalForm(modalParams: ModalPageParams) {\r\n // // console.log(\"openModalForm\");\r\n // console.error(\r\n // \"Please use ModalService.show instead of MainService.openModalForm!\"\r\n // );\r\n // // const modal = this.modalService.show(modalParams.colFields$ || modalParams.controllerName, modalParams.parentGroup,\r\n // // modalParams.formHeader, modalParams.zModel, modalParams.referId);\r\n // const modal = await this.modalCtrl.create({\r\n // component: ZmodalPage,\r\n // backdropDismiss: true,\r\n // componentProps: {\r\n // modalParams,\r\n // },\r\n // });\r\n // modal.present();\r\n // return modal;\r\n // // .onWillDismiss((zmodel: any) => {\r\n // // this.\r\n // // });\r\n // }\r\n\r\n closeModalForm() {\r\n this.modalCtrl.dismiss();\r\n }\r\n\r\n subjectEvent(event: ZComponentOutputEvent, group: ZGroup, me: any) {\r\n if (!event || !event.target || event.target.startsWith(\"modalGroup.\")) {\r\n return;\r\n }\r\n console.log(\">> SubjectEvent\", event);\r\n let callFunc;\r\n\r\n try {\r\n callFunc = ZComponentHelper.getGroupEvalValue.call(\r\n group.ctrlScope,\r\n event.target,\r\n group\r\n );\r\n // ZComponentHelper.getGroupValue(event.Target, group);\r\n } catch (error) {\r\n console.warn(\r\n \"Error when getGroupValue: \",\r\n event.target,\r\n \" > Error: \",\r\n error\r\n );\r\n }\r\n\r\n // callFunc(event);\r\n if (typeof callFunc === \"function\") {\r\n const newFunc = callFunc.bind(me);\r\n newFunc(event, group, me);\r\n } else if (typeof callFunc === \"string\") {\r\n if (event.type.endsWith(\"onNavigateTo\")) {\r\n const nUrl = event.target.replace(\"/:id\", \"/\" + event.data);\r\n this.router.navigate([nUrl]);\r\n return;\r\n }\r\n\r\n if (event.type === \"zgrid-cellClick\") {\r\n // (callFunc.startsWith('edit')) { zgrid-cellClick\r\n const cName = callFunc.slice(4);\r\n // // debugger;\r\n // const modalGroupParam: ModalPageParams = {};\r\n // modalGroupParam.controllerName = cName;\r\n // modalGroupParam.referId = event.data.Id;\r\n // modalGroupParam.colFields$ = event.columnFields$;\r\n // modalGroupParam.parentGroup = me.group;\r\n\r\n // this.openModalForm(modalGroupParam);\r\n this.modalService.show(\r\n event.columnFields$ || cName,\r\n group,\r\n \"\",\r\n {},\r\n event.data.Id\r\n );\r\n }\r\n } else if (typeof callFunc === \"object\") {\r\n if (event.type === \"zgrid-cellClick\") {\r\n if (callFunc.navigateUrl) {\r\n const url = callFunc.navigateUrl.replace(\":id\", event.data.Id);\r\n this.router.navigate([url]);\r\n return;\r\n }\r\n\r\n const modalGroupParam: ModalPageParams = {};\r\n modalGroupParam.controllerName = callFunc.ctrlName;\r\n modalGroupParam.referId = event.data.Id;\r\n modalGroupParam.colFields$ = event.columnFields$;\r\n modalGroupParam.parentGroup = me.group;\r\n modalGroupParam.formHeader = callFunc.formHeader;\r\n\r\n if (callFunc.formHeader) {\r\n // this.openModalForm(modalGroupParam);\r\n this.modalService.show(\r\n event.columnFields$ || callFunc.ctrlName,\r\n group,\r\n callFunc.formHeader,\r\n {},\r\n event.data.Id\r\n );\r\n return;\r\n }\r\n console.warn(\r\n \"Invalid callFunc type: \",\r\n callFunc,\r\n \" event.Target: \",\r\n event.target\r\n );\r\n }\r\n // this.openModalFormByComponent(callFunc.type, event.Data.Id);\r\n } else {\r\n console.warn(\r\n \"Function not defined in group for: \",\r\n event.target,\r\n \", Event: \",\r\n event\r\n );\r\n }\r\n }\r\n\r\n handleSuccess(res: Response | any, successMsg: string): Response {\r\n this.group.isTriggered = false;\r\n if (res == null) {\r\n this.toastService.show(successMsg);\r\n } else if (res.Data !== undefined && res.ProcessingStatus !== undefined) {\r\n if (res.ProcessingStatus === true) {\r\n if (Array.isArray(res.Data)) {\r\n res.Data.map((s) =>\r\n this.webApiService.showHttpResponseMessage(\r\n MESSAGETYPE.Success,\r\n `${successMsg} : ${s.CostCode}`,\r\n null\r\n )\r\n );\r\n } else {\r\n this.webApiService.showHttpResponseMessage(\r\n MESSAGETYPE.Success,\r\n successMsg,\r\n null\r\n );\r\n }\r\n }\r\n } else {\r\n this.toastService.show(successMsg);\r\n }\r\n return res;\r\n }\r\n\r\n handleError(res: any): Observable<any> {\r\n this.group.isTriggered = false;\r\n return this.webApiService.handleError(res);\r\n }\r\n\r\n private backNavigation(event: ZComponentOutputEvent, group: ZGroup, me: any) {\r\n if (group.beforeBackNavigationPage) {\r\n group.beforeBackNavigationPage(group).subscribe(() => {\r\n group['isTriggered'] = false;\r\n this.router.navigate([group.backNavigationPage]);\r\n\r\n //if (group['reload']) {\r\n // group['isTriggered'] = false;\r\n // this.router.routeReuseStrategy.shouldReuseRoute = function () {\r\n // return false;\r\n // }\r\n // this.router.onSameUrlNavigation = 'reload';\r\n //}\r\n //this.router.navigate([group.backNavigationPage],);\r\n })\r\n }\r\n else {\r\n group['isTriggered'] = false;\r\n \r\n //this.router.routeReuseStrategy.shouldReuseRoute = function () {\r\n // return false;\r\n //}\r\n //this.router.onSameUrlNavigation = 'reload';\r\n\r\n this.router.navigate([group.backNavigationPage]);\r\n }\r\n }\r\n\r\n private historyBack() {\r\n this.group.isTriggered = false;\r\n this.navController.pop();\r\n }\r\n\r\n public refreshGrid(\r\n event: ZComponentOutputEvent,\r\n group: ZGroup,\r\n me: any,\r\n gridOptionName?: string\r\n ) {\r\n gridOptionName = gridOptionName || \"gridOptions\";\r\n if (event && event.target) {\r\n const gridOption = event.target\r\n .trim()\r\n .replace(\"(\", \"\")\r\n .replace(\")\", \"\")\r\n .replace(\"group.refreshGrid\", \"\");\r\n if (gridOption.length > 0) {\r\n gridOptionName = gridOption;\r\n }\r\n }\r\n\r\n const zgridControl = group[gridOptionName] as ZGrid;\r\n if (zgridControl) {\r\n zgridControl.getData();\r\n }\r\n group['isTriggered'] = false;\r\n }\r\n\r\n private refreshPage() {\r\n if (this.group) {\r\n this.group.isTriggered = false;\r\n }\r\n location.reload();\r\n // this.router.routeReuseStrategy.shouldReuseRoute = () => false;\r\n // this.router.onSameUrlNavigation = 'reload';\r\n // console.log('Path: ', this.activatedRoute['_routerState'].snapshot.url);\r\n // this.router.navigate(['/crm/customer']);\r\n }\r\n\r\n getCloneNewCacheZModel(group: ZGroup) {\r\n const cacheZModel = this.cacheService.getCache(\"cloneNewModel\");\r\n if (cacheZModel) {\r\n this.cacheService.clearCache(\"cloneNewModel\");\r\n group.zModel = cacheZModel;\r\n group.zModel.Id = 0;\r\n }\r\n group.isTriggered = false;\r\n }\r\n\r\n private newModel(event: ZComponentOutputEvent, group: ZGroup) { \r\n let _group: ZGroup = group;\r\n\r\n if (event) {\r\n if (event.data && event.data.SubType) {\r\n _group = group['_' + event.data.SubType];\r\n }\r\n }\r\n\r\n of([])\r\n .pipe(\r\n switchMap((zmodel) => {\r\n console.log(\"Before new, zModel:\", zmodel);\r\n return this.beforeNewModel(_group);\r\n }),\r\n tap(() => {\r\n const referenceId = group.parentReferenceId || \"0\";\r\n console.log(\"current url: \", this.router.url);\r\n const pathSegment = this.router.url.split(\"/\");\r\n const lastSegment = pathSegment[pathSegment.length - 1];\r\n if (lastSegment === \"edit\") {\r\n const newPath = pathSegment.slice(0, pathSegment.length - 2);\r\n newPath.push(referenceId);\r\n newPath.push(\"new\");\r\n const cacheZModel = this.cacheService.getCache(\"cloneNewModel\");\r\n if (!cacheZModel) {\r\n // Skip if it CloneNew\r\n this.router.navigateByUrl(this.group.backNavigationPage, { skipLocationChange: true }).then(() => {\r\n this.group.zModel = {};\r\n this.group.isEdit = false;\r\n this.group.isNew = true;\r\n this.group.isTriggered = false;\r\n this.router.navigate(newPath);\r\n });\r\n }\r\n else {\r\n this.router.navigate(newPath);\r\n }\r\n } else if (lastSegment === \"new\") {\r\n group.zModel = {};\r\n group.form.reset();\r\n //group.form.markAsPristine();\r\n group.isEdit = false;\r\n group.isNew = true;\r\n group.isTriggered = false;\r\n group.zModel[\r\n group.parentReferenceField\r\n ] = group.parentReferenceId.toString();\r\n } else {\r\n group.isTriggered = false;\r\n this.router.navigate([group.editModelURL, referenceId, \"new\"], {\r\n relativeTo: group.ctrlScope.activatedRoute,\r\n });\r\n //this.router.navigate([group.editModelURL, referenceId, \"new\"]);\r\n }\r\n })\r\n )\r\n .subscribe();\r\n }\r\n\r\n public createModel(event: ZComponentOutputEvent, group: ZGroup) {\r\n let createModelres = null;\r\n let fg: FormGroup = group.form as FormGroup;\r\n let _group: ZGroup = group;\r\n\r\n if (event) {\r\n if (event.data && event.data.SubType) {\r\n fg = group['_' + event.data.SubType].form as FormGroup;\r\n _group = group['_' + event.data.SubType];\r\n }\r\n }\r\n \r\n if (!fg.dirty) {\r\n console.warn(\"Form is not dirty hence record is not save.\");\r\n return;\r\n }\r\n\r\n if (!fg.valid) {\r\n const errors = ZComponentHelper.getFormGroupErrors(fg, this.alertService, group);\r\n console.warn(\"Form Validation got error(s):\", errors);\r\n return;\r\n }\r\n\r\n of(_group.zModel)\r\n .pipe(\r\n switchMap((zmodel) => {\r\n console.log(\"Before create, zModel:\", zmodel);\r\n return this.beforeCreateModel(_group);\r\n }),\r\n tap(() => {\r\n Object.assign(_group.zModel, fg.value);\r\n }),\r\n switchMap(() => {\r\n const newModel = Object.assign({}, _group.zModel);\r\n ZComponentHelper.removeNullFields(newModel);\r\n // Object.keys(newModel).forEach((key) => {\r\n // if (newModel[key] === null) {\r\n // delete newModel[key];\r\n // }\r\n // });\r\n // if (!newModel.Id) {\r\n // newModel.Id = 0;\r\n // }\r\n\r\n return this.webApiService\r\n .httpPost$(\r\n _group.resourceURL, // + \"/\" + group.zModel.Id,\r\n newModel\r\n )\r\n .pipe(\r\n tap((resp) => {\r\n createModelres = resp;\r\n return resp;\r\n }),\r\n map((res) =>\r\n this.handleSuccess(res, \"Record is created successfully.\")\r\n )\r\n ); \r\n }),\r\n switchMap((zmodel: any) => {\r\n\r\n console.log(\"After created, zModel:\", zmodel);\r\n if (zmodel) {\r\n\r\n //support old and new webapi method\r\n if (zmodel.Data) {\r\n Object.assign(_group.zModel, zmodel.Data);\r\n fg.patchValue(zmodel.Data);\r\n }\r\n else if (zmodel[\"Id\"]) {\r\n Object.assign(_group.zModel, zmodel);\r\n fg.patchValue(zmodel);\r\n }\r\n\r\n _group.referenceId = _group.zModel.Id;\r\n fg.markAsPristine();\r\n }\r\n\r\n return this.afterCreateModel(_group);\r\n }),\r\n tap((resp) => {\r\n if (createModelres.ProcessingStatus == null || createModelres.ProcessingStatus == true) {\r\n if (resp && _group.zModel.Id !== 0) {\r\n _group.isNew = false;\r\n _group.isEdit = true;\r\n _group.isTriggered = false;\r\n _group.cancelButtonName = \"Close\";\r\n Object.assign(_group.zModel, resp);\r\n fg.patchValue(resp);\r\n }\r\n fg.markAsPristine();\r\n } else {\r\n fg.markAsDirty();\r\n }\r\n // console.log(\"Done updateModel updated zModel:\", fg.value);\r\n // this.toastService.show(\"Record is created successfully.\");\r\n })\r\n )\r\n .subscribe();\r\n }\r\n\r\n public updateModel(event: ZComponentOutputEvent, group: ZGroup) { \r\n let fg: FormGroup = group.form as FormGroup;\r\n let _group: ZGroup = group;\r\n\r\n if (event) {\r\n if (event.data && event.data.SubType) {\r\n fg = group['_' + event.data.SubType].form as FormGroup;\r\n _group = group['_' + event.data.SubType];\r\n }\r\n }\r\n\r\n if (!fg.dirty) {\r\n console.warn(\"Form is not dirty hence record is not save.\");\r\n return;\r\n }\r\n\r\n if (!fg.valid) {\r\n const errors = ZComponentHelper.getFormGroupErrors(fg, this.alertService, group);\r\n console.warn(\"Form Validation got error(s):\", errors);\r\n return;\r\n }\r\n\r\n of(_group.zModel)\r\n .pipe(\r\n switchMap((zmodel) => {\r\n console.log(\"Before update, zModel:\", zmodel);\r\n return this.beforeUpdateModel(_group);\r\n }),\r\n tap(() => {\r\n Object.assign(_group.zModel, fg.value);\r\n }),\r\n switchMap(() => {\r\n return this.webApiService\r\n .httpPut$(_group.resourceURL + \"/\" + _group.zModel.Id, _group.zModel)\r\n .pipe(\r\n map((res) =>\r\n this.handleSuccess(res, \"Record is updated successfully.\")\r\n )\r\n );\r\n }),\r\n switchMap((zmodel: any) => {\r\n console.log(\"After updated, zModel:\", zmodel);\r\n if (zmodel && zmodel.Data) {\r\n Object.assign(_group.zModel, zmodel.Data);\r\n fg.patchValue(zmodel.Data);\r\n // console.log(\"Done updateModel updated zModel:\", fg.value);\r\n }\r\n else if (zmodel && zmodel[\"Id\"]) {\r\n Object.assign(_group.zModel, zmodel);\r\n fg.patchValue(zmodel);\r\n // console.log(\"Done updateModel updated zModel:\", fg.value);\r\n }\r\n\r\n group.isTriggered = false;\r\n _group.isTriggered = false;\r\n\r\n fg.markAsPristine();\r\n return this.afterUpdateModel(_group);\r\n })\r\n )\r\n .subscribe();\r\n // Object.assign(group.zModel, fg.value);\r\n // this.webApiService\r\n // .httpPut$(group.resourceURL + \"/\" + group.zModel.Id, group.zModel)\r\n // .subscribe(resp => {\r\n // Object.assign(group.zModel, resp);\r\n // fg.patchValue(resp);\r\n // fg.markAsPristine();\r\n // console.log(\"Done updateModel updated zModel:\", fg.value);\r\n // });\r\n }\r\n\r\n private cloneNewModel(event: ZComponentOutputEvent, group: ZGroup) { \r\n let _group: ZGroup = group;\r\n\r\n if (event) {\r\n if (event.data && event.data.SubType) {\r\n _group = group['_' + event.data.SubType];\r\n }\r\n }\r\n\r\n Object.assign(_group.zModel, _group.form.value);\r\n _group.zModel.Id = 0;\r\n\r\n const clearFields = [\"WFS_DocumentId\", \"WFS_StatusCode\", \"WFS_StatusName\"];\r\n clearFields.forEach((field) => {\r\n if (_group.zModel.hasOwnProperty(field)) {\r\n _group.zModel[field] = null;\r\n }\r\n });\r\n\r\n this.cacheService.setCache(\"cloneNewModel\", group.zModel);\r\n this.newModel(null, group);\r\n group.isTriggered = false;\r\n _group.isTriggered = false;\r\n }\r\n\r\n private deleteModel(event: ZComponentOutputEvent, group: ZGroup) { \r\n let fg: FormGroup = group.form as FormGroup;\r\n let _group: ZGroup = group;\r\n\r\n if (event) {\r\n if (event.data && event.data.SubType) {\r\n fg = group['_' + event.data.SubType].form as FormGroup;\r\n _group = group['_' + event.data.SubType];\r\n }\r\n }\r\n \r\n of(_group.zModel)\r\n .pipe(\r\n switchMap((zmodel) => {\r\n console.log(\"Before delete, zModel:\", zmodel);\r\n return this.beforeDeleteModel(_group);\r\n }),\r\n switchMap(() => {\r\n group.isTriggered = false;\r\n _group.isTriggered = false;\r\n return this.alertService.show(\"Delete Record\", \"Are you sure?\",\r\n [\r\n { text: \"No\", cssClass: \"secondary\" } as AlertButton,\r\n { text: \"Yes\", cssClass: \"primary\" } as AlertButton\r\n ]);\r\n }),\r\n switchMap((reply: string) => {\r\n if (reply === \"Yes\") {\r\n Object.assign(_group.zModel, fg.value);\r\n _group.zModel.Disabled = true;\r\n\r\n return this.webApiService\r\n .httpPut$(_group.resourceURL + \"/\" + _group.zModel.Id, _group.zModel)\r\n .pipe(\r\n map((res) =>\r\n this.handleSuccess(res, \"Record is deleted successfully.\")\r\n ),\r\n switchMap((zmodel) => {\r\n console.log(\"After deleted, zModel:\", zmodel);\r\n return this.afterDeleteModel(_group);\r\n }),\r\n tap((resp) => {\r\n this.historyBack();\r\n })\r\n );\r\n } else {\r\n return of([]);\r\n }\r\n })\r\n )\r\n .subscribe();\r\n }\r\n\r\n private beforeUpdateModel(group: ZGroup) {\r\n if (!group.beforeUpdateModel) {\r\n console.warn(\"group.beforeUpdateModel is undefined\");\r\n return of({});\r\n }\r\n return group.beforeUpdateModel(group);\r\n }\r\n\r\n private beforeDeleteModel(group: ZGroup) {\r\n if (!group.beforeDeleteModel) {\r\n console.warn(\"group.beforeUpdateModel is undefined\");\r\n return of({});\r\n }\r\n return group.beforeDeleteModel(group);\r\n }\r\n\r\n private beforeNewModel(group: ZGroup) {\r\n if (!group.beforeNewModel) {\r\n console.warn(\"group.beforeNewodel is undefined\");\r\n return of({});\r\n }\r\n return group.beforeNewModel(group);\r\n }\r\n\r\n private beforeCreateModel(group: ZGroup) {\r\n if (!group.beforeCreateModel) {\r\n console.warn(\"group.beforeUpdateModel is undefined\");\r\n return of({});\r\n }\r\n return group.beforeCreateModel(group);\r\n }\r\n\r\n beforePageInitialise(group: ZGroup) {\r\n if (!group.beforePageInitialise) {\r\n console.warn(\"group.beforePageInitialise is undefined\");\r\n return of({});\r\n }\r\n return group.beforePageInitialise(group);\r\n }\r\n\r\n private afterGetModelSuccess(group: ZGroup): Observable<any> {\r\n if (!group.zModel.Id) {\r\n console.warn(\"zModel.Id is not defined\", group.zModel);\r\n return of({});\r\n }\r\n if (!group.afterGetModelSuccess) {\r\n console.warn(\"group.afterGetModelSuccess is not defined\");\r\n return of({});\r\n }\r\n return group.afterGetModelSuccess(group);\r\n }\r\n\r\n afterNewModel(group: ZGroup): Observable<any> {\r\n if (!group.afterNewModel) {\r\n console.warn(\"group.afterNewModel is not defined\");\r\n return of({});\r\n }\r\n return group.afterNewModel(group);\r\n }\r\n\r\n private afterCreateModel(group: ZGroup): Observable<any> {\r\n if (!group.afterCreateModel) {\r\n console.warn(\"group.afterCreateModel is not defined\");\r\n return of({});\r\n }\r\n return group.afterCreateModel(group);\r\n }\r\n\r\n private afterUpdateModel(group: ZGroup): Observable<any> {\r\n if (!group.afterUpdateModel) {\r\n console.warn(\"group.afterUpdateModel is not defined\");\r\n return of({});\r\n }\r\n return group.afterUpdateModel(group);\r\n }\r\n\r\n private afterDeleteModel(group: ZGroup): Observable<any> {\r\n if (!group.afterDeleteModel) {\r\n console.warn(\"group.afterDeleteModel is not defined\");\r\n return of({});\r\n }\r\n return group.afterDeleteModel(group);\r\n }\r\n\r\n afterPageInitialise(group: ZGroup) {\r\n if (!group.afterPageInitialise) {\r\n console.warn(\"group.afterPageInitialise is undefined\");\r\n return of({});\r\n }\r\n return group.afterPageInitialise(group);\r\n }\r\n\r\n // private onAction(group: ZGroup) {\r\n // this.actionSheetCtrl\r\n // .create({\r\n // header: \"Choose an Action\",\r\n // buttons: group.topRightActionButton\r\n // })\r\n // .then(actionSheetEl => {\r\n // actionSheetEl.present();\r\n // });\r\n // }\r\n\r\n // setModelValue(propertyName: string, value: any, group: ZGroup) {\r\n // group.zModel[propertyName] = value;\r\n // if (group.isLoading) {\r\n // return;\r\n // }\r\n // const fg = group.form as FormGroup;\r\n // if (!fg) {\r\n // eslint-disable-next-line , no-debugger\r\n // debugger;\r\n // }\r\n // const fc = fg.controls[propertyName];\r\n // if (!fc) {\r\n // eslint-disable-next-line no-debugger\r\n // debugger;\r\n // }\r\n // fc.setValue(value);\r\n // fc.markAsDirty();\r\n // }\r\n\r\n public async showzModal(\r\n colFields$: string | Observable<Array<ZField>>,\r\n parentGroup: ZGroup,\r\n formHeader: string,\r\n zModel?: any,\r\n referId?: string,\r\n componentSize?: ZComponentSize,\r\n skipIsDirtyCheck?: boolean\r\n ) {\r\n const modalcomponent = ZmodalComponent;\r\n const modalmobilecomponent = ZmodalMobileComponent;\r\n\r\n if (parentGroup) {\r\n // disable isTriggered before display the popup.\r\n parentGroup.isTriggered = false;\r\n }\r\n return await this.modalService.show(colFields$, parentGroup, formHeader, modalcomponent, modalmobilecomponent, zModel, referId, componentSize, skipIsDirtyCheck)\r\n //const modal = await this.modalService.show();\r\n }\r\n\r\n\r\n public cookieStorePost(name: string, value: any): Observable<any> {\r\n // for Post to CookieStore\r\n const cookieStoreURL = this.oauthEnvironmentUrl + \"api/CookieStores\";\r\n const cookieStoreValue = {\r\n 'Name': name,\r\n 'Value': JSON.stringify(value)\r\n };\r\n\r\n return this.webApiService.httpPost$(cookieStoreURL, cookieStoreValue).pipe(map(res => {\r\n if (res) {\r\n console.log(\"grid config saved(\" + res.status + \"): \", res);\r\n return res;\r\n }\r\n })); \r\n } \r\n\r\n public cookieStoreGet(name: string, accessToken: string): Observable<any> {\r\n const cookieStoreURL = this.oauthEnvironmentUrl + \"api/CookieStores/?name=\" + name;\r\n\r\n return this.webApiService.httpGet$(cookieStoreURL, { headers: accessToken }).pipe(map(res => {\r\n if (res) { \r\n return res;\r\n }\r\n })); \r\n }\r\n\r\n public cookieStoreDeleteMultiple(name: string): Observable<any> {\r\n // for Post to CookieStore\r\n const cookieStoreURL = this.oauthEnvironmentUrl + \"Admin/DeleteMultipleCookies\";\r\n const cookieStoreValue = {\r\n 'containName': name\r\n };\r\n\r\n return this.webApiService.httpPost$(cookieStoreURL, cookieStoreValue).pipe(map(res => {\r\n if (res) { \r\n return res;\r\n }\r\n }));\r\n }\r\n}\r\n\r\nexport function refreshGrid(group: ZGroup) {\r\n const zgridControl = group[\"gridOptions\"] as ZGrid;\r\n if (zgridControl) {\r\n zgridControl.getData();\r\n }\r\n group.isTriggered = false;\r\n}\r\n","import { NgModule, Directive, ElementRef, OnInit } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appScrollbarTheme]'\r\n})\r\nexport class ScrollbarThemeDirective implements OnInit {\r\n\r\n constructor(private el: ElementRef) {\r\n }\r\n\r\n private stylesheet = `\r\n ::-webkit-scrollbar {\r\n width: 5px;\r\n }\r\n ::-webkit-scrollbar-track {\r\n background: var(--ion-color-light);\r\n }\r\n ::-webkit-scrollbar-thumb {\r\n border-radius: 2px;\r\n background: var(--ion-color-light-shade);\r\n border: 0 solid #020202;\r\n }\r\n ::-webkit-scrollbar-thumb:hover {\r\n }\r\n `;\r\n\r\n // background: linear-gradient(var(--ion-color-medium-tint), var(--ion-color-light));\r\n\r\n ngOnInit(): void {\r\n const styleElmt = this.el.nativeElement.shadowRoot.querySelector('style');\r\n if (styleElmt) {\r\n styleElmt.append(this.stylesheet);\r\n } else {\r\n const barStyle = document.createElement('style');\r\n barStyle.append(this.stylesheet);\r\n this.el.nativeElement.shadowRoot.appendChild(barStyle);\r\n }\r\n }\r\n\r\n\r\n\r\n}\r\n\r\n\r\n\r\n","import { Directive, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[fieldelement]'\r\n})\r\nexport class FieldElementDirective {\r\n constructor(public viewContainerRef: ViewContainerRef) { }\r\n}\r\n","/********** Angular **********/\r\nimport { Directive, OnInit, OnDestroy, Input, Inject } from \"@angular/core\";\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { Router } from \"@angular/router\";\r\nimport { Subscription, Observable, Subject, of, AsyncSubject } from \"rxjs\";\r\nimport { tap, delay, switchMap, concatMap } from \"rxjs/operators\";\r\nimport {\r\n DataBindingDirective,\r\n GridComponent,\r\n DataStateChangeEvent,\r\n PageChangeEvent,\r\n} from \"@progress/kendo-angular-grid\";\r\nimport {\r\n SortDescriptor,\r\n State,\r\n FilterDescriptor,\r\n} from \"@progress/kendo-data-query\";\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n AuthService, GridCaching, WebApiService,\r\n ZComponentHelper, ZField, ZGridPostApiParams, ZGridColumnSettings,\r\n ZGridStatePersistingService, ZGroup, StorageSessionService\r\n} from \"mmhglobal-zcore\";\r\n\r\n\r\n@Directive({\r\n selector: \"[zgridbinding]\",\r\n})\r\nexport class ZGridBindingDirective extends DataBindingDirective implements OnInit, OnDestroy {\r\n private serviceSubscription: Subscription;\r\n @Input() zgridbinding: {\r\n data: ZField;\r\n group: ZGroup;\r\n params: ZGridPostApiParams;\r\n gridSubject: Subject<any>;\r\n };\r\n\r\n state: State = {\r\n skip: 0,\r\n take: 10,\r\n };\r\n\r\n gridColumns: any[] = [];\r\n\r\n usableColumns: any[] = [];\r\n\r\n resourceURL = null;\r\n\r\n paginationApiPostUrl = null;\r\n\r\n dataSource = null;\r\n\r\n get field() {\r\n return this.zgridbinding.data;\r\n }\r\n\r\n get grp() {\r\n return this.zgridbinding.group;\r\n }\r\n\r\n get gridSubject() {\r\n return this.zgridbinding.gridSubject;\r\n }\r\n\r\n get params(): ZGridPostApiParams {\r\n return this.zgridbinding.params;\r\n }\r\n\r\n get getData() {\r\n return this.grid.data;\r\n }\r\n\r\n constructor(\r\n @Inject(GridComponent) grid,\r\n private webapiService: WebApiService,\r\n private authService: AuthService,\r\n private storageService: StorageSessionService,\r\n private router: Router,\r\n private zGridStatePersistingService: ZGridStatePersistingService\r\n ) {\r\n super(grid);\r\n }\r\n\r\n public ngOnInit(): void {\r\n if (this.field.SkipDirective) {\r\n return;\r\n }\r\n\r\n super.ngOnInit();\r\n this.grid.loading = true;\r\n this.state.take = this.field.PageSize || 20;\r\n this.pageSize = this.state.take;\r\n this.dataSource = this.field.DataSource ? this.field.DataSource : null;\r\n\r\n if (!this.dataSource) {\r\n this.resourceURL = ZComponentHelper.getGroupValue(\r\n this.field.ResourceURL,\r\n this.grp\r\n );\r\n // console.log(\"At zgrid.component (OnInit) resourceURL: \", resourceURL);\r\n if (!this.resourceURL) {\r\n this.grid.loading = false;\r\n if (this.zgridbinding.data.Name !== \"ActivityLogGrid\") {\r\n console.warn(\r\n \"No initialise for Field.ResourceURL: \",\r\n this.field.ResourceURL\r\n );\r\n }\r\n return;\r\n }\r\n\r\n const array = this.resourceURL.split(\"/api/\");\r\n if (!!array[1]) {\r\n array[1] = \"Page\" + array[1];\r\n this.paginationApiPostUrl = array.join(\"/api/\");\r\n } else {\r\n const arr = this.resourceURL.split(\"/\");\r\n arr[arr.length - 2] = \"Page\" + arr[arr.length - 2];\r\n this.paginationApiPostUrl = arr.join(\"/\");\r\n }\r\n\r\n this.setFilterParamsByParentRefId();\r\n }\r\n\r\n this.gridSubject.next(this);\r\n this.generateGridColumns();\r\n }\r\n\r\n private setFilterParamsByParentRefId() {\r\n // Use field own referenceId if available\r\n const refId = this.getFieldReferenceId() || this.grp.referenceId;\r\n const refField = this.field.ReferenceField || this.grp.parentReferenceField;\r\n if (refId && refField) {\r\n const filterValue = {\r\n key: refField,\r\n ops: \"=\",\r\n value: refId,\r\n };\r\n // if (this.params.filterParams.find(x => x.key === filterValue.key) === undefined) {\r\n this.params.filterParams.push(filterValue);\r\n // }\r\n }\r\n }\r\n\r\n private getFieldReferenceId() {\r\n let fieldReferenceId = null;\r\n if (this.field.ReferenceId) {\r\n fieldReferenceId = ZComponentHelper.getGroupValue(\r\n this.field.ReferenceId,\r\n this.grp\r\n );\r\n }\r\n return fieldReferenceId;\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n if (this.serviceSubscription) {\r\n this.serviceSubscription.unsubscribe();\r\n }\r\n super.ngOnDestroy();\r\n }\r\n\r\n public generateGridColumns() {\r\n const columnFields$: Observable<any> = ZComponentHelper.getGroupValue(\r\n this.field.ColumnFields,\r\n this.grp\r\n );\r\n columnFields$\r\n .pipe(\r\n tap((data) => {\r\n const gridSetting = this.getGridSettings();\r\n const fieldName = this.field[\"FieldElementName\"];\r\n\r\n ZComponentHelper.getGridColumns(\r\n data,\r\n this.gridColumns,\r\n this.zgridbinding.group,\r\n this.authService,\r\n fieldName,\r\n gridSetting,\r\n this.usableColumns\r\n );\r\n this.getFilterParamsColumns();\r\n this.getFilter();\r\n this.getFilterParams();\r\n this.getSorting();\r\n this.getGrantType();\r\n this.setHiddenColumn(gridSetting);\r\n\r\n this.params.referId = this.getFieldReferenceId() || this.grp.referenceId || null;\r\n //}),\r\n //switchMap(() => {\r\n // //Get Session\r\n // return this.getGridSessionFilter(this.grp, this);\r\n //}),\r\n //switchMap(() => {\r\n // //Before get grid data\r\n // return this.beforeGridGetData(this.grp, this);\r\n //}),\r\n //switchMap(() => {\r\n // //Set grid data\r\n // return this.setGridSessionFilter(this.grp, this);\r\n })\r\n )\r\n .subscribe(() => {\r\n this.getDataBinding();\r\n });\r\n }\r\n\r\n private getFilterParamsColumns() {\r\n const colFields: Array<string> = [];\r\n this.gridColumns.forEach((field) => {\r\n if (field.valueExpr) {\r\n colFields.push(field.valueExpr + \" as \" + field.field);\r\n } else {\r\n colFields.push(field.field);\r\n }\r\n });\r\n\r\n if (colFields.length > 0) {\r\n if (colFields.indexOf(\"Id\") === -1) {\r\n colFields.push(\"Id\");\r\n }\r\n }\r\n\r\n let tmpGridColumn: any[] = [];\r\n tmpGridColumn.push(colFields.join(\",\"));\r\n if (this.usableColumns.length > 0) {\r\n tmpGridColumn.push(this.usableColumns.join(\",\"));\r\n }\r\n this.params.columns = tmpGridColumn.join(\",\");\r\n }\r\n\r\n private getFilter() {\r\n if (this.params.filters && this.field.Filters) {\r\n this.params.filters = this.params.filters + \" && \" + this.field.Filters;\r\n } else if (!this.params.filters && this.field.Filters) {\r\n this.params.filters = this.field.Filters;\r\n }\r\n\r\n if (this.field.Filters && this.field.Filters.indexOf(\"group.\") !== -1) {\r\n const filterKeyValPairs = this.field.Filters.split(\" \");\r\n const grpValues = filterKeyValPairs.filter(\r\n (element) => element.trim().indexOf(\"group.\") !== -1\r\n );\r\n\r\n grpValues.forEach((val) => {\r\n const actualVal = ZComponentHelper.getGroupValue(val, this.grp);\r\n this.params.filters = this.params.filters.replace(val, actualVal);\r\n });\r\n }\r\n }\r\n\r\n private getFilterParams() {\r\n if (this.field['FilterParams']) {\r\n if (this.field['FilterParams'].indexOf(\"group.\") !== -1) {\r\n this.params.filterParams = ZComponentHelper.getGroupValue(this.field['FilterParams'], this.grp);\r\n } else {\r\n this.params.filterParams = this.field['FilterParams'];\r\n }\r\n }\r\n }\r\n\r\n private getSorting() {\r\n if (this.field.SortOrder) {\r\n if (this.field.SortOrder.indexOf(\"group.\") !== -1) {\r\n this.params.sortOrder = ZComponentHelper.getGroupValue(this.field.SortOrder, this.grp);\r\n } else {\r\n this.params.sortOrder = this.field.SortOrder;\r\n }\r\n }\r\n }\r\n\r\n private getGrantType() {\r\n if (this.field.GrantType) {\r\n this.params.grantType = ZComponentHelper.getGroupValue(this.field.GrantType.toString(), this.grp);\r\n }\r\n }\r\n\r\n private setHiddenColumn(gridSetting: ZGridColumnSettings[]) {\r\n if (this.gridColumns && gridSetting) {\r\n // filter out hidden == false array.\r\n const gridSettingHiddenCol = gridSetting.filter(function (item) {\r\n return item['hidden'] == true;\r\n });\r\n\r\n // find and set the hidden to current column setting.\r\n Object.values(gridSettingHiddenCol).forEach(value => {\r\n if (this.gridColumns.find((c) => c.field === value.field)) {\r\n this.gridColumns.find((c) => c.field === value.field)['hidden'] = value['hidden'];\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n public getDataBinding(): void {\r\n this.grid.loading = true;\r\n\r\n if (!this.dataSource) {\r\n this.params.pageSize = this.state.take;\r\n if (this.field.ExternalPagination) {\r\n // For POST method Page WebAPI\r\n this.webapiService\r\n .postApi(\r\n this.paginationApiPostUrl,\r\n this.params,\r\n null,\r\n null,\r\n null,\r\n null,\r\n true\r\n )\r\n .subscribe((data) => {\r\n this.aggregateHandling(data.dataSet);\r\n this.grid.data = { data: data.dataSet, total: data.totalCount };\r\n this.grid.loading = false;\r\n this.gridSubject.next(this);\r\n this.notifyDataChange();\r\n });\r\n } else {\r\n // For GET method\r\n this.webapiService\r\n .getApi(this.resourceURL, null, null, null, null, null, true)\r\n .subscribe((data) => {\r\n let _data = null;\r\n let _totalCount = 0;\r\n\r\n if (data.dataSet) {\r\n _data = data.dataSet;\r\n _totalCount = data.totalCount;\r\n } else {\r\n _data = data;\r\n _totalCount = data.length;\r\n }\r\n\r\n this.aggregateHandling(_data);\r\n this.grid.data = { data: _data, total: _totalCount };\r\n this.grid.pageSize = _totalCount;\r\n this.grid.loading = false;\r\n this.gridSubject.next(this);\r\n this.notifyDataChange();\r\n });\r\n }\r\n } else {\r\n const ds = ZComponentHelper.getGroupValue(\r\n this.field.DataSource,\r\n this.grp\r\n );\r\n\r\n if (ds) {\r\n this.grid.data = {\r\n data: ds,\r\n total: ds.length,\r\n };\r\n this.grid.pageSize = ds.length;\r\n }\r\n this.gridSubject.next(this);\r\n this.grid.loading = false;\r\n }\r\n }\r\n\r\n public clearData(): void {\r\n this.grid.data = { data: [], total: 0 };\r\n }\r\n\r\n\r\n private aggregateHandling(data: any) {\r\n const aggregateColumns = this.gridColumns.filter(x => x.aggregateType);\r\n\r\n aggregateColumns.forEach(col => {\r\n const field = col.field;\r\n\r\n let _aggregateValue = null;\r\n switch (col.aggregateType.slice(0, -1).toLowerCase()) {\r\n case \"total\": {\r\n _aggregateValue = data.reduce((total, next) => total + next[field], 0);\r\n break;\r\n }\r\n case \"sum\": {\r\n _aggregateValue = data.reduce((total, next) => total + next[field], 0);\r\n break;\r\n }\r\n case \"average\": {\r\n _aggregateValue = data.reduce((total, next) => total + next[field], 0) / data.length;\r\n break;\r\n }\r\n case \"count\": {\r\n _aggregateValue = data.length;\r\n break;\r\n }\r\n case \"max\": {\r\n _aggregateValue = data.reduce((p, c) => p[field] > c[field] ? p : c)[field];\r\n break;\r\n }\r\n case \"min\": {\r\n _aggregateValue = data.reduce((p, c) => p[field] < c[field] ? p : c)[field];\r\n break;\r\n }\r\n }\r\n\r\n col.aggregateValue = _aggregateValue;\r\n });\r\n }\r\n\r\n private aggregateResetValue() {\r\n const aggregateColumns = this.gridColumns.filter(x => x.aggregateType);\r\n aggregateColumns.forEach(col => {\r\n col.aggregateValue = 0;\r\n });\r\n }\r\n\r\n\r\n public pageChange(event: PageChangeEvent): void {\r\n this.params.pageNo = event.skip / this.params.pageSize;\r\n this.state.skip = event.skip;\r\n this.getDataBinding();\r\n }\r\n\r\n public sortChange(sort: SortDescriptor[]): void {\r\n this.sort = sort;\r\n this.params.sortColumnNames = [];\r\n this.params.sortOrders = [];\r\n\r\n sort.forEach((f) => {\r\n if (f.dir) {\r\n this.params.sortOrders.push(f.dir);\r\n\r\n const field = this.gridColumns.find((c) => c.field === f.field);\r\n if (field.valueExpr !== undefined) {\r\n this.params.sortColumnNames.push(field.valueExpr);\r\n } else {\r\n this.params.sortColumnNames.push(f.field);\r\n }\r\n }\r\n });\r\n this.getDataBinding();\r\n }\r\n\r\n public filterChange(event: any): void {\r\n this.params.pageNo = 0;\r\n this.params.filterParams = [];\r\n this.setFilterParamsByParentRefId();\r\n\r\n console.log(event);\r\n if (event) {\r\n if (event.filters.length > 0) {\r\n event.filters.forEach((item) => {\r\n const field = this.gridColumns.find((c) => c.field === item.field);\r\n\r\n if (item.filters) {\r\n item.filters.forEach((f: FilterDescriptor) => {\r\n if (f.value === null) {\r\n f.value = \"\"; // convert null to \"\"\r\n }\r\n this.params.filterParams.push({\r\n key: f.field as string,\r\n ops: this.mapFilterOperator(f.operator),\r\n value: f.value,\r\n });\r\n });\r\n } else {\r\n if (item.value === null) {\r\n item.value = \"\"; // convert null to \"\"\r\n }\r\n this.params.filterParams.push({\r\n key:\r\n field.valueExpr !== undefined\r\n ? `(${field.valueExpr})`\r\n : item.field,\r\n ops: this.mapFilterOperator(item.operator),\r\n value: item.value,\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n this.setGridSessionFilter(this.grp, this);\r\n this.getDataBinding();\r\n\r\n\r\n }\r\n\r\n public dataStateChange(state: DataStateChangeEvent): void {\r\n // this.state = state;\r\n this.skip = state.skip;\r\n this.pageSize = state.take;\r\n this.state.skip = state.skip;\r\n this.state.take = state.take;\r\n this.grid.loading = true;\r\n this.aggregateResetValue();\r\n }\r\n\r\n private mapFilterOperator(operator: any) {\r\n switch (operator) {\r\n case \"eq\":\r\n return \"eq\";\r\n case \"neq\":\r\n return \"neq\";\r\n case \"lt\":\r\n return \"lt\";\r\n case \"lte\":\r\n return \"lte\";\r\n case \"gt\":\r\n return \"gt\";\r\n case \"gte\":\r\n return \"gte\";\r\n case \"startswith\":\r\n return \"startswith\";\r\n case \"endswith\":\r\n return \"endswith\";\r\n case \"isnull\":\r\n return \"isnull\";\r\n case \"isnotnull\":\r\n return \"isnotnull\";\r\n case \"contains\": {\r\n if (!this.field['FilterContainsUsingEqual']) {\r\n return \"contains\";\r\n } \r\n }\r\n default:\r\n return \"==\";\r\n // eq, neq, isnull, isnotnull, endswith, startswith\r\n }\r\n }\r\n\r\n private getGridSettings(): ZGridColumnSettings[] {\r\n const _storageKey = 'ionic-field::' + this.authService.e1Token.userName + '::' + this.field.Name + '::' + this.router.url;\r\n\r\n // Find any setting from localstorage..\r\n let _arrGridCaching: GridCaching[] = this.zGridStatePersistingService.get(_storageKey);\r\n if (_arrGridCaching) {\r\n const _gridCaching: GridCaching = JSON.parse(_arrGridCaching['Value']);\r\n if (_gridCaching) {\r\n return _gridCaching.gridSettings.columnsConfig.sort((a, b) => a.orderIndex - b.orderIndex);\r\n }\r\n }\r\n }\r\n\r\n public beforeGridGetData(group: ZGroup, me: any) {\r\n console.warn(\"beforeDataBinding triggered\");\r\n if (!group.beforeGridGetData) {\r\n console.warn(\"group.beforeDataBinding is undefined\");\r\n return of(true);\r\n }\r\n return group.beforeGridGetData(group, me);\r\n }\r\n\r\n private getGridSessionFilter(group: ZGroup, me: any) {\r\n if (!group[\"GridStorageKey\"]) {\r\n return of([]);\r\n }\r\n\r\n const StorageKey = group[\"GridStorageKey\"];\r\n\r\n if (this.storageService) {\r\n const subject = new Subject<string>();\r\n\r\n of(true)\r\n .pipe(\r\n switchMap(() => {\r\n return this.storageService.get(StorageKey);\r\n }),\r\n tap(data => {\r\n if (!data || !data.value || data.value === \"null\") {\r\n subject.next(); \r\n }\r\n else {\r\n const result = JSON.parse(data.value);\r\n this.state.filter = JSON.parse(result[\"StateFilter\"]);\r\n this.params.filterParams = JSON.parse(result[\"FilterParams\"]);\r\n\r\n this.state.filter.filters.forEach((d: any) => {\r\n if (d.field.includes('UTC')) {\r\n d.value = new Date(d.value);\r\n }\r\n });\r\n\r\n subject.next(); \r\n }\r\n })\r\n ).subscribe();\r\n\r\n return subject.asObservable();\r\n }\r\n else {\r\n return of([]);\r\n }\r\n }\r\n\r\n private setGridSessionFilter(group: ZGroup, me: any) {\r\n if (!group[\"GridStorageKey\"]) {\r\n return null;\r\n }\r\n\r\n const StorageKey = group[\"GridStorageKey\"]; \r\n\r\n if (me.state.filter && this.storageService && this.field['SaveFilter']) {\r\n //list of data for StateFilter and FilterParams\r\n const lstGridFilter = { \"StateFilter\": JSON.stringify(me.state.filter), \"FilterParams\": JSON.stringify(me.params.filterParams) }\r\n //create session storage\r\n this.storageService.set(StorageKey, JSON.stringify(lstGridFilter));\r\n }\r\n }\r\n\r\n}\r\n","import { Directive, ElementRef, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[popupAnchor]',\r\n exportAs: 'popupAnchor'\r\n})\r\nexport class ZGridPopupAnchorDirective {\r\n constructor(public element: ElementRef\r\n ) {\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Directive, HostListener, Input } from '@angular/core';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { ComboBoxComponent } from '@progress/kendo-angular-dropdowns';\r\n\r\n/********** Component & Service **********/\r\n\r\n\r\n@Directive({\r\n selector: 'kendo-combobox[openOnFocus]'\r\n})\r\nexport class OpenOnFocusDirective {\r\n\r\n @Input() openOnFocus: ComboBoxComponent;\r\n\r\n @HostListener('focus') onFocus() {\r\n if (this.openOnFocus) {\r\n if (!this.openOnFocus.readonly) {\r\n this.openOnFocus.toggle(true);\r\n }\r\n }\r\n }\r\n\r\n @HostListener('blur') onBlur() {\r\n if (this.openOnFocus) {\r\n this.openOnFocus.toggle(false);\r\n }\r\n }\r\n}","import { Pipe, PipeTransform } from \"@angular/core\";\r\n\r\n@Pipe({\r\n name: \"dateParser\",\r\n pure: true,\r\n})\r\nexport class DateParserFilter implements PipeTransform {\r\n transform(items: any): any {\r\n // debugger;\r\n if (!items) {\r\n return items;\r\n }\r\n // filter items array, items which match and return true will be\r\n // kept, false will be filtered out\r\n try {\r\n const d = new Date(items);\r\n return d;\r\n } catch (error) {\r\n console.log(\"DateParserFilter error: \", error);\r\n return null;\r\n }\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\n\r\n\r\n@Pipe({\r\n name: 'editorfilter',\r\n pure: false\r\n})\r\nexport class EditorFilter implements PipeTransform {\r\n transform(source: any): any {\r\n if (!source) {\r\n return;\r\n }\r\n if (typeof source === \"string\") {\r\n try {\r\n const jsonValue = JSON.parse(source);\r\n return JSON.stringify(jsonValue, null, 2);\r\n // return this.safeStringify(jsonValue);\r\n } catch {\r\n return source;\r\n }\r\n }\r\n if (typeof source === \"object\" || Array.isArray(source)) {\r\n try {\r\n return JSON.stringify(source, null, 2);\r\n // return this.safeStringify(source);\r\n } catch {\r\n return \"problem - [Circular structure to JSON]\";\r\n }\r\n }\r\n\r\n }\r\n\r\n private safeStringify(jsonValue: any) {\r\n // Note: cache should not be re-used by repeated calls to JSON.stringify.\r\n const cache: Array<any> = [];\r\n return JSON.stringify(jsonValue, (key, value) => {\r\n if (typeof value === 'object' && value !== null) {\r\n // Duplicate reference found, discard key\r\n if (cache.includes(value)) {\r\n // debugger;\r\n // return \"problem - [Circular structure to JSON]\";\r\n return;\r\n }\r\n // Store value in our collection\r\n cache.push(value);\r\n }\r\n return value;\r\n }, 2);\r\n // cache = null; // Enable garbage collection\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'divzlayout',\r\n pure: true\r\n})\r\nexport class DivzLayout implements PipeTransform {\r\n transform(items: any, zlayout: string): any {\r\n if (!items || !zlayout) {\r\n return items;\r\n }\r\n\r\n // if got zlayout, in div: 2 = 2 col per row; 3 = 1 col per row; \r\n if (zlayout == \"2\") {\r\n Object.values(items).forEach(value => {\r\n value['DivClass'] = \"col-sm-6\";\r\n });\r\n }\r\n else if (zlayout == '3') {\r\n Object.values(items).forEach(value => {\r\n value['DivClass'] = \"col-sm-12\";\r\n });\r\n }\r\n\r\n return items;\r\n }\r\n}","import { Component, Injectable } from \"@angular/core\";\r\n// import * as $ from 'jquery';\r\ndeclare var $: any;\r\n\r\n@Component({\r\n selector: \"app-zreport\",\r\n templateUrl: \"./zreport.component.html\",\r\n styleUrls: [\"./zreport.component.scss\"],\r\n})\r\n\r\n// @dynamic\r\nexport class ExportOptions {\r\n viewerToolTipOpening = null;\r\n resourceURL = null;\r\n ReportSource = null;\r\n ready = null;\r\n exportBegin = null;\r\n exportEnd = null;\r\n onRenderingEnd = null;\r\n viewerContainerStyle = null;\r\n isVisible = null;\r\n paramToResizeReportViewer = null;\r\n resizeReportView = null;\r\n // public static instance: ExportOptions;\r\n // public static init(component: any) {\r\n // if (!ExportOptions.instance) {\r\n // ExportOptions.instance = new ExportOptions();\r\n // }\r\n // ExportOptions.instance.bindEvents(component);\r\n\r\n // // Add the options when init. Sometime it will not init the class.\r\n // ExportOptions.instance.hideOptions = [\"PDF\", \"CSV\", \"XLS\", \"XLSX\", \"RTF\", \"IMAGE\", \"MHTML\", \"XPS\"];\r\n // }\r\n\r\n private largeMenuBound = false;\r\n private sideMenuBound = false;\r\n private reportSource = \"\";\r\n private hideOptions = [];\r\n\r\n public update(reportSource: string) {\r\n this.reportSource = reportSource;\r\n // show all extensions\r\n //$('[data-command-parameter]').show();\r\n\r\n // check to hide options\r\n this.hideUnwantedOptions();\r\n }\r\n\r\n public bindEvents(component: any) {\r\n this.exportOption(component);\r\n\r\n const sideMenu = $(\".trv-side-menu\").children(\"ul\").data('kendoPanelBar');\r\n const largeMenu = $(\".trv-menu-large\").data(\"kendoMenu\");\r\n const smallMenu = $(\".trv-menu-small\");\r\n\r\n // hide export button if all option is not available\r\n if (this.hideOptions.length == 8) {\r\n const exportButton = $(\"[data-command*='telerik_ReportViewer_export']\")\r\n exportButton.hide();\r\n }\r\n\r\n // bind to the 'open' event of the main menu\r\n if (!this.largeMenuBound && largeMenu) {\r\n largeMenu.bind(\"open\", () => {\r\n this.hideUnwantedOptions();\r\n });\r\n\r\n this.largeMenuBound = true;\r\n }\r\n\r\n // bind to the 'expand' event of the side menu\r\n if (!this.sideMenuBound && smallMenu) {\r\n if (sideMenu) {\r\n sideMenu.bind(\"expand\", () => {\r\n // recheck export options\r\n //if (reloadHideOptions) {\r\n // thisComponent.exportOption(thisComponent);\r\n //}\r\n this.hideUnwantedOptions();\r\n });\r\n }\r\n\r\n this.sideMenuBound = true;\r\n }\r\n }\r\n\r\n public exportOption(component: any) {\r\n const _data = component.data;\r\n if (_data.EnableExportPDF) {\r\n this.hideOptions = this.hideOptions.filter(item => item !== \"PDF\");\r\n }\r\n if (_data.EnableExportCSV) {\r\n this.hideOptions = this.hideOptions.filter(item => item !== \"CSV\");\r\n }\r\n if (_data.EnableExportExcel) {\r\n this.hideOptions = this.hideOptions.filter(item => item !== \"XLS\");\r\n this.hideOptions = this.hideOptions.filter(item => item !== \"XLSX\");\r\n }\r\n if (_data.EnableExportRTF) {\r\n this.hideOptions = this.hideOptions.filter(item => item !== \"RTF\");\r\n }\r\n if (_data.EnableExportTIFF) {\r\n this.hideOptions = this.hideOptions.filter(item => item !== \"IMAGE\");\r\n }\r\n if (_data.EnableExportMHTML) {\r\n this.hideOptions = this.hideOptions.filter(item => item !== \"MHTML\");\r\n }\r\n if (_data.EnableExportXPS) {\r\n this.hideOptions = this.hideOptions.filter(item => item !== \"XPS\");\r\n }\r\n }\r\n\r\n public hideUnwantedOptions() {\r\n // show all extensions\r\n $('[data-command-parameter]').show();\r\n\r\n // hide the specified extensions\r\n $.each(this.hideOptions, function (index, item) {\r\n var hiddenOption = $('[data-command-parameter=\"' + item + '\"]');\r\n if (hiddenOption && hiddenOption.length) {\r\n hiddenOption.hide();\r\n }\r\n });\r\n }\r\n\r\n public resizeViewer() {\r\n return null;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'tabfilter',\r\n pure: true\r\n})\r\nexport class TabFilter implements PipeTransform {\r\n transform(items: any, filter: string): any {\r\n // debugger;\r\n if (!items || !filter) {\r\n return items;\r\n }\r\n // filter items array, items which match and return true will be\r\n // kept, false will be filtered out\r\n return items.filter(item => {\r\n const target = item.TabArea + '';\r\n return target.indexOf(filter) !== -1;\r\n });\r\n }\r\n}","import { Component, Input } from \"@angular/core\";\r\nimport { BaseFilterCellComponent, FilterService } from \"@progress/kendo-angular-grid\";\r\nimport { FilterDescriptor, CompositeFilterDescriptor } from \"@progress/kendo-data-query/dist/es/main\";\r\n\r\n@Component({\r\n selector: 'date-range-filter-cell',\r\n styles: [`\r\n kendo-daterange > kendo-dateinput.range-filter {\r\n display: inline-block;\r\n }\r\n .k-button {\r\n margin-left: 4px;\r\n }\r\n ` ],\r\n template: `\r\n <kendo-daterange >\r\n <kendo-dateinput\r\n class=\"range-filter\"\r\n kendoDateRangeStartInput\r\n [format]=\"'dd-MM-yyyy'\"\r\n placeholder=\"dd-MM-yyyy\"\r\n [value]=\"start\"\r\n (valueChange)=\"filterRange($event, end)\"\r\n style=\"width:84px\">\r\n </kendo-dateinput>\r\n -\r\n <kendo-dateinput\r\n class=\"range-filter\"\r\n kendoDateRangeEndInput\r\n [format]=\"'dd-MM-yyyy'\"\r\n placeholder=\"dd-MM-yyyy\"\r\n [value]=\"end\"\r\n (valueChange)=\"filterRange(start, $event)\"\r\n style=\"width:85px\">\r\n </kendo-dateinput>\r\n </kendo-daterange>\r\n <button\r\n *ngIf=\"hasFilter\"\r\n class=\"k-button k-button-icon\"\r\n title=\"Clear\"\r\n (click)=\"clearFilter()\">\r\n <span class=\"k-icon k-i-filter-clear\" style=\"width:15px\"></span>\r\n </button>\r\n `\r\n})\r\nexport class DateRangeFilterCellComponent extends BaseFilterCellComponent {\r\n @Input()\r\n public filter: any;\r\n\r\n @Input()\r\n public field: string;\r\n\r\n constructor(filterService: FilterService) {\r\n super(filterService);\r\n }\r\n\r\n public get start(): Date {\r\n const first = this.findByOperator(\"gte\");\r\n\r\n return (first || <FilterDescriptor>{}).value;\r\n }\r\n\r\n public get end(): Date {\r\n const end = this.findByOperator(\"lte\");\r\n return (end || <FilterDescriptor>{}).value;\r\n }\r\n\r\n public get hasFilter(): boolean {\r\n return this.filtersByField(this.field).length > 0;\r\n }\r\n\r\n public clearFilter(): void {\r\n this.filterService.filter(\r\n this.removeFilter(this.field)\r\n );\r\n }\r\n\r\n public filterRange(start: Date, end: Date): void {\r\n this.filter = this.removeFilter(this.field);\r\n\r\n const filters = [];\r\n\r\n if (start) {\r\n filters.push({\r\n field: this.field,\r\n operator: \"gte\",\r\n value: start\r\n });\r\n }\r\n\r\n if (end) {\r\n filters.push({\r\n field: this.field,\r\n operator: \"lte\",\r\n value: end\r\n });\r\n }\r\n\r\n const root = this.filter || {\r\n logic: \"and\",\r\n filters: []\r\n };\r\n\r\n if (filters.length) {\r\n root.filters.push(...filters);\r\n }\r\n\r\n this.filterService.filter(root);\r\n }\r\n\r\n private findByOperator(op: string): FilterDescriptor {\r\n return this.filtersByField(this.field)\r\n .filter(({ operator }) => operator === op)[0];\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, Input, HostListener } from \"@angular/core\";\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { of } from \"rxjs\";\r\nimport { delay, take } from \"rxjs/operators\";\r\nimport { ToolbarService } from \"@progress/kendo-angular-scheduler\";\r\n\r\n/********** Component & Service **********/\r\n\r\n\r\n@Component({\r\n selector: \"zschedulertoolbar\",\r\n template: `\r\n <div class=\"k-scheduler-navigation\">\r\n <button class=\"k-nav-today\" (click)=\"today()\">\r\n Today\r\n </button>\r\n <button class=\"k-nav-prev\" (click)=\"prev($event)\">\r\n <span class=\"k-icon k-i-arrow-60-left\"></span>\r\n </button> &nbsp;\r\n <span>\r\n <a class=\"k-nav-current\" #anchor\r\n >\r\n <!-- <span class=\"k-icon k-i-calendar\"></span> -->\r\n {{ selectedDate | kendoDate: \"dd-MMM-yyyy\" }}\r\n </a>\r\n </span> &nbsp;\r\n <button class=\"k-nav-next\" (click)=\"next($event)\">\r\n <span class=\"k-icon k-i-arrow-60-right\"></span>\r\n </button>\r\n </div>\r\n <kendo-popup\r\n style=\"margin:15px 0px 0px 0px;\"\r\n [anchor]=\"anchor\"\r\n (anchorViewportLeave)=\"showCalendar = false\"\r\n *ngIf=\"showCalendar\"\r\n >\r\n <kendo-calendar\r\n [focusedDate]=\"selectedDate\"\r\n (blur)=\"onBlur_Calendar()\"\r\n (valueChange)=\"onChange_Calendar($event)\"\r\n ></kendo-calendar>\r\n </kendo-popup>\r\n `,\r\n styleUrls: [\"./zscheduler.toolbar.component.css\"]\r\n})\r\nexport class ZSchedulerToolBarComponent {\r\n @Input() local: any = {};\r\n @Input() public selectedDate: Date;\r\n showCalendar = false;\r\n\r\n constructor(public toolbarService: ToolbarService) {}\r\n\r\n public today(): void {\r\n this.toolbarService.navigate({\r\n type: \"today\"\r\n });\r\n }\r\n\r\n public next(event: any): void {\r\n this.toolbarService.navigate({\r\n type: \"next\"\r\n });\r\n }\r\n\r\n public prev(event: any): void {\r\n this.toolbarService.navigate({\r\n type: \"prev\"\r\n });\r\n }\r\n\r\n onChange_Calendar(value: any): void {\r\n this.local.inProgress = true;\r\n this.toolbarService.navigate({\r\n type: 'select-date',\r\n date: value\r\n });\r\n this.toggleCalendar();\r\n of([])\r\n .pipe(take(1), delay(1000))\r\n .subscribe(() => (this.local.inProgress = false));\r\n }\r\n\r\n onBlur_Calendar(): void {\r\n this.toggleCalendar();\r\n }\r\n\r\n toggleCalendar(status?: boolean) {\r\n if (status === false) {\r\n this.showCalendar = false;\r\n return;\r\n }\r\n this.showCalendar = !this.showCalendar;\r\n }\r\n\r\n @HostListener(\"keydown\", [\"$event\"])\r\n public keydown(event: any): void {\r\n if (event.keyCode === 27 && this.showCalendar === true) {\r\n this.toggleCalendar(false);\r\n }\r\n }\r\n\r\n @HostListener(\"document:click\", [\"$event\"])\r\n public documentClick(event: any): void {\r\n if (event.target.className === \"k-nav-current\") {\r\n this.toggleCalendar();\r\n } else {\r\n if (this.showCalendar === true) {\r\n this.toggleCalendar(false);\r\n }\r\n }\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component } from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { Subscription, of, Observable } from \"rxjs\";\r\nimport { switchMap, tap } from \"rxjs/operators\";\r\n\r\n/********** Component & Service **********/\r\nimport { MainService } from \"../services/main.service\";\r\nimport { ZGroup, IDeactivateComponent } from \"mmhglobal-zcore\";\r\n// import { IDeactivateComponent } from \"src/app/services/candeactivate.guard\";\r\n\r\n\r\n@Component({\r\n template: ``,\r\n})\r\nexport class UipageComponent implements IDeactivateComponent {\r\n // ctrlName = \"e1crm_bpactivity\";\r\n group: ZGroup = new ZGroup(true);\r\n subscription: Subscription;\r\n\r\n constructor(\r\n // public fieldService: FieldService,\r\n public mainService: MainService,\r\n public activatedRoute: ActivatedRoute\r\n ) {\r\n mainService.setGroup(this.group);\r\n // console.log(\"At \" + this.ctrlName + \" (constructor)\");\r\n }\r\n\r\n canExit(): boolean | Observable<boolean> {\r\n return this.mainService.canExit(this.group.form);\r\n }\r\n\r\n pageOnInit(ctrlName: string, pageName: string, isListForm: boolean, projectName?: string) {\r\n this.group._projectName = projectName;\r\n\r\n return this.mainService.getResourceServerData().pipe(\r\n switchMap((rsData) => {\r\n this.group.isListForm = isListForm;\r\n return this.activatedRoute.paramMap;\r\n }),\r\n tap((paramMap) => {\r\n const actName = paramMap.get(\"act\");\r\n this.group.isNew = actName === \"new\" ? true : false;\r\n this.group.isEdit = actName === \"edit\" ? true : false;\r\n if (actName === \"edit\") {\r\n this.group.referenceId = paramMap.get(\"id\");\r\n } else if (actName === \"new\") {\r\n this.group.parentReferenceId =\r\n paramMap.get(\"parentreferenceid\") || paramMap.get(\"id\");\r\n this.group.backNavigationPage =\r\n this.group.backNavigationPage +\r\n \"/\" +\r\n this.group.parentReferenceId.toString() +\r\n \"/edit\";\r\n }\r\n if (actName) {\r\n this.group.actName = actName;\r\n }\r\n this.mainService.initializeGroup(this.group, ctrlName, pageName, this);\r\n\r\n if (\r\n actName === \"new\" &&\r\n this.group.parentReferenceField &&\r\n this.group.parentReferenceId\r\n ) {\r\n this.group.zModel[\r\n this.group.parentReferenceField\r\n ] = this.group.parentReferenceId.toString();\r\n }\r\n }),\r\n switchMap(() => {\r\n const formType = isListForm ? \"ListField\" : \"FormField\";\r\n const formFieldName = this.group.fieldName\r\n ? this.group.fieldName\r\n : ctrlName;\r\n this.group.fieldName = formFieldName;\r\n return this.mainService.getGroupFields(\r\n formFieldName,\r\n formType,\r\n this.group,\r\n \"fields\"\r\n );\r\n }),\r\n switchMap((fields) => {\r\n return this.mainService.beforePageInitialise(this.group);\r\n }),\r\n switchMap((fields) => {\r\n if (this.group.actName === \"new\") {\r\n this.mainService.getCloneNewCacheZModel(this.group);\r\n return this.mainService.afterNewModel(this.group);\r\n } else {\r\n return of(fields);\r\n }\r\n }),\r\n switchMap(() => {\r\n // console.log('CtrName: ' + ctrlName + ' field Element: ', fields);\r\n if (this.group.referenceId && this.group.referenceId !== \"0\") {\r\n if (typeof this.group.getModel === \"function\") {\r\n return this.group.getModel(this.group, this.group.referenceId);\r\n } else {\r\n return this.mainService.getModel$(\r\n this.group,\r\n this.group.referenceId\r\n );\r\n }\r\n } else {\r\n return of({});\r\n }\r\n }),\r\n switchMap((zmodel) => {\r\n if (this.group.parentReferenceField) {\r\n this.group.parentReferenceId = this.group.zModel[\r\n this.group.parentReferenceField\r\n ];\r\n }\r\n return this.mainService.afterPageInitialise(this.group);\r\n })\r\n );\r\n // .subscribe(() => {\r\n // console.log(\"At activity-one.page ngOnInit() completed\");\r\n // this.group.isLoading = false;\r\n // });\r\n }\r\n\r\n pageDestroy(): void {\r\n console.log(this.group.pageName + \" ngOnDestroy.\");\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { Router } from '@angular/router';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport { ZGroup, ZCoreService, AuthService, ZComponentHelper } from \"mmhglobal-zcore\";\r\n\r\n\r\n@Component({\r\n selector: \"app-uiheader\",\r\n templateUrl: \"./uiheader.component.html\",\r\n styleUrls: [\"./uiheader.component.scss\"]\r\n})\r\nexport class UiheaderComponent implements OnInit {\r\n @Input() group: ZGroup;\r\n @Input() topFormHeader: string;\r\n public formHeader: string;\r\n public profileImgUrl: string;\r\n public username: string;\r\n public userDisplayName: string;\r\n // backNavigate = null;\r\n\r\n constructor(\r\n private router: Router,\r\n private zcoreService: ZCoreService,\r\n private authService: AuthService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n // if (this.group.backNavigationPage) {\r\n // if (this.group.backNavigationPage.indexOf('/', 1) > 1) {\r\n // this.backNavigate = this.group.backNavigationPage;\r\n // } else {\r\n // this.backNavigate = \"/_appmenu/\" + this.group.backNavigationPage;\r\n // }\r\n // }\r\n const environment = this.zcoreService.getEnvironment();\r\n this.profileImgUrl = environment.e1OauthUrl + '/api/ProfileImage?id=' + this.authService.e1Token.myProfile.UserName + '&size=80x80';\r\n const _myProfile = this.authService.e1Token.myProfile;\r\n if (_myProfile) {\r\n this.username = _myProfile.UserName;\r\n this.userDisplayName = _myProfile.LastName;\r\n }\r\n\r\n if (this.topFormHeader) {\r\n this.formHeader = this.topFormHeader;\r\n }\r\n }\r\n\r\n public bindFormHeader() { \r\n if (!this.topFormHeader) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n \r\n public onLogout() {\r\n this.authService.logout();\r\n this.router.navigateByUrl('/auth');\r\n }\r\n\r\n public isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from '@angular/core';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\n// import { ZComponentDebugService } from '../services/zcomponent.debug.service';\r\nimport { ZGroup, ZComponentHelper, ZCoreService } from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-uicontent',\r\n templateUrl: './uicontent.component.html',\r\n styleUrls: ['./uicontent.component.scss'],\r\n})\r\nexport class UicontentComponent implements OnInit {\r\n\r\n @Input() group: ZGroup;\r\n\r\n constructor(\r\n private zcoreService: ZCoreService\r\n ) { }\r\n\r\n ngOnInit() {\r\n console.log(this.group);\r\n }\r\n\r\n isSITEnvironment() {\r\n // return environment.e1OauthUrl.startsWith('https://oauthdev.');\r\n return this.zcoreService.isDebugSession() && !this.isFieldElement();\r\n }\r\n\r\n isFieldElement() {\r\n return this.group.fieldName === 'field';\r\n // return false;\r\n }\r\n\r\n isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { Router } from '@angular/router';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { FaIconLibrary } from '@fortawesome/angular-fontawesome';\r\n\r\n/********** Component & Service **********/\r\nimport { ZGroup } from \"mmhglobal-zcore\";\r\n\r\n\r\nexport interface UiMenuContentItem {\r\n url: string;\r\n icon: string | Array<string>;\r\n title: string;\r\n}\r\n\r\nexport interface UiMenuContentCategory {\r\n category:string;\r\n content:Array<UiMenuContentItem>\r\n}\r\n\r\n@Component({\r\n selector: 'app-uimenucontent',\r\n templateUrl: './uimenucontent.component.html',\r\n styleUrls: ['./uimenucontent.component.scss'],\r\n})\r\nexport class UimenucontentComponent implements OnInit {\r\n @Input() items: Array<UiMenuContentCategory> | Array<UiMenuContentItem>;\r\n\r\n \r\n constructor() { }\r\n\r\n ngOnInit() {\r\n if (this.items && this.items.length > 0) {\r\n console.error('Pls stop use hardcode submenu. Now the submenu can define in e1 Menu Relationship.');\r\n }\r\n }\r\n\r\n CheckisCategory(e: UiMenuContentCategory | UiMenuContentItem): e is UiMenuContentCategory { \r\n return (<UiMenuContentCategory>e).category !== undefined;\r\n }\r\n\r\n isCategory(){\r\n let v = false;\r\n if (this.items.length > 0) {\r\n if (this.CheckisCategory(this.items[0])) {\r\n v = true;\r\n }\r\n }\r\n return v; \r\n }\r\n\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { Router } from '@angular/router';\r\n\r\n/********** Ionic **********/\r\nimport { MenuController } from '@ionic/angular';\r\n\r\n/********** Plugin **********/\r\n// import { AsyncSubject, of } from 'rxjs';\r\n\r\n/********** Component & Service **********/\r\nimport { ZGroup } from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-uimenubutton',\r\n templateUrl: './uimenubutton.component.html',\r\n styleUrls: ['./uimenubutton.component.scss'],\r\n})\r\nexport class UimenubuttonComponent implements OnInit {\r\n @Input() group: ZGroup;\r\n\r\n constructor(\r\n public menuCtrl: MenuController,\r\n private router: Router\r\n ) { }\r\n\r\n ngOnInit() { }\r\n\r\n\r\n toggleMenu() {\r\n this.menuCtrl.toggle();\r\n }\r\n\r\n backNavigate() {\r\n if (this.group.beforeBackNavigationPage) {\r\n this.group.beforeBackNavigationPage(this.group).subscribe(() => {\r\n this.router.navigate([this.group.backNavigationPage]);\r\n })\r\n }\r\n else {\r\n this.router.navigate([this.group.backNavigationPage]);\r\n }\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport { OAuthMenuItem, MenuService, AuthService, ZComponentHelper, ZCoreService } from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-uiappmenucontent',\r\n templateUrl: './uiappmenucontent.component.html',\r\n styleUrls: ['./uiappmenucontent.component.scss'],\r\n})\r\nexport class UiappmenucontentComponent implements OnInit {\r\n @Input() items: Array<OAuthMenuItem>;\r\n\r\n colorArray: any[] = [\r\n { stroke: '#F59600', color: '#F59600' },\r\n\r\n { stroke: '#F5C800', color: '#F5C800' },\r\n { stroke: '#F5EF00', color: '#F5EF00' },\r\n { stroke: '#8FE300', color: '#8FE300' },\r\n { stroke: '#00B33D', color: '#00B33D' },\r\n { stroke: '#095D9D', color: '#095D9D' },\r\n { stroke: '#2116AA', color: '#2116AA' },\r\n\r\n { stroke: '#6509A4', color: '#6509A4' },\r\n { stroke: '#C4006F', color: '#C4006F' },\r\n { stroke: '#F52B00', color: '#F52B00' }\r\n ];\r\n\r\n constructor(\r\n private router: Router,\r\n private menuService: MenuService,\r\n private authService: AuthService,\r\n private zcoreService: ZCoreService\r\n ) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n public getDivClass(item) {\r\n return item.Type === 'dropdown-submenu' ? 'flex-show' : 'col-xs-4 col-sm-4 col-md-3 col-xl-2';\r\n }\r\n\r\n public getMenuList(item) {\r\n return item.Type === 'dropdown-submenu' ? this.menuService.getMenuFolder(item.URL) : null;\r\n }\r\n\r\n public menuOnClick(pathName: string, appClientPath?: string) {\r\n const startupPage: string = this.zcoreService.getEnvironment().startUpPage;\r\n\r\n if (appClientPath && startupPage.toLocaleLowerCase() == 'launcher') {\r\n ZComponentHelper.openAppClientPath(pathName, appClientPath, this.authService); \r\n return false;\r\n }\r\n else {\r\n this.router.navigate([pathName]);\r\n }\r\n } \r\n\r\n private setMapInput(key: string, value: string) {\r\n const mapInput = document.createElement('input');\r\n mapInput.type = 'hidden';\r\n mapInput.name = key;\r\n mapInput.setAttribute('value', value);\r\n\r\n return mapInput;\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input, Directive } from '@angular/core'; \r\nimport { Validators } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\nimport { ActionSheetController } from '@ionic/angular';\r\n\r\n/********** Plugin **********/\r\nimport { map } from 'rxjs/operators';\r\n\r\n/********** Component & Service **********/\r\nimport { \r\n FieldService, WebApiService, ResourceApiService, WorkflowService,\r\n ZGroup, ZField, ZComponentProperties, ZComponentHelper,\r\n ZComponentOutputEvent\r\n} from 'mmhglobal-zcore'; \r\n\r\n\r\n@Component({\r\n selector: 'app-uiactionbutton',\r\n templateUrl: './uiactionbutton.component.html',\r\n styleUrls: ['./uiactionbutton.component.scss'],\r\n})\r\n\r\nexport class UiactionbuttonComponent implements OnInit {\r\n @Input() group: ZGroup;\r\n topRightActionButton: any[] = [];\r\n actionBtnList: Array<ZField>;\r\n isWorkflowButton: boolean = false;\r\n // visible:boolean = true;\r\n private data: any;\r\n componentProperties = new ZComponentProperties();\r\n\r\n constructor(\r\n private fieldService: FieldService,\r\n private webApiService: WebApiService,\r\n private resourceApiService: ResourceApiService,\r\n private workflowService: WorkflowService,\r\n private actionSheetCtrl: ActionSheetController\r\n ) { }\r\n\r\n /******************** Common function ********************/\r\n ngOnInit() {\r\n this.data = this.getFirstzButton(this.group.fields);\r\n // this.visible = ZComponentHelper.isVisible(buttonData);\r\n\r\n if (this.data) {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n if (!ZComponentHelper.isNullUndefinedEmpty(this.data.WorkflowCode)) {\r\n // handle as zWorkflowButton\r\n this.isWorkflowButton = true;\r\n this.loadWorkflowButton();\r\n }\r\n else {\r\n // handle as zButton\r\n const field$ = this.fieldService.getFormFieldCode(\r\n this.data.Value,\r\n \"FormField\",\r\n null,\r\n null\r\n );\r\n field$.subscribe((data: Array<ZField>) => {\r\n this.actionBtnList = data;\r\n this.reloadButtonList();\r\n });\r\n }\r\n\r\n return;\r\n }\r\n }\r\n\r\n isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n private isBtnVisible(fieldExpr) {\r\n if (fieldExpr !== false && !fieldExpr) {\r\n return true;\r\n }\r\n const v = ZComponentHelper.getGroupEvalValue.call(this, fieldExpr);\r\n return v;\r\n }\r\n\r\n /******************** zButton ********************/\r\n getFirstzButton(data: any[]) {\r\n // data.forEach(d => {\r\n for (let i = 0; i < data.length - 1; i++) {\r\n if (data[i].Type === \"zbuttons\" || data[i].Type === \"zworkflowbuttons\") {\r\n return data[i];\r\n } else {\r\n if (Array.isArray(data[i].Value)) {\r\n this.getFirstzButton(data[i].Value);\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n onAction() {\r\n if (this.isWorkflowButton) {\r\n //this.loadWorkflowButton();\r\n this.actionSheetCtrl\r\n .create({\r\n header: \"Choose an Action\",\r\n buttons: this.topRightActionButton\r\n })\r\n .then(actionSheetEl => {\r\n actionSheetEl.present();\r\n });\r\n }\r\n else {\r\n //this.reloadButtonList();\r\n this.actionSheetCtrl\r\n .create({\r\n header: \"Choose an Action\",\r\n buttons: this.topRightActionButton\r\n })\r\n .then(actionSheetEl => {\r\n actionSheetEl.present();\r\n });\r\n }\r\n }\r\n\r\n private reloadButtonList() {\r\n this.topRightActionButton = [];\r\n this.actionBtnList.forEach((button: ZField) => {\r\n const visible = ZComponentHelper.getGroupEvalValue.call(\r\n this,\r\n button.Visible,\r\n this.group\r\n );\r\n if (visible !== false) {\r\n const label = this.getButtonLabel(button);\r\n const buttonRole = this.getButtonRole(button, label);\r\n this.topRightActionButton.push({\r\n text: label,\r\n handler: () => {\r\n this.buttonClick(button);\r\n },\r\n role: buttonRole\r\n });\r\n }\r\n });\r\n }\r\n\r\n private buttonClick(button: any) {\r\n // debugger;\r\n this.group['DismissType'] = button.DismissType;\r\n this.group.subject.next({\r\n type: \"buttonClick\",\r\n target: button.ClickEvent,\r\n data: null\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n private getButtonLabel(button: any) {\r\n let buttonLabel = button.Label;\r\n if (!buttonLabel) {\r\n buttonLabel = button.Name;\r\n }\r\n\r\n let labelExpr = buttonLabel.match(/^{{.*}}$/gi);\r\n if (labelExpr) {\r\n labelExpr = labelExpr[0].slice(2, -2);\r\n const label = ZComponentHelper.getGroupValue(labelExpr, this.group);\r\n return label;\r\n } else {\r\n return buttonLabel;\r\n }\r\n }\r\n\r\n private getButtonRole(button: any, label: string) {\r\n // console.log(\"getButtonRole: \", label, button.ClickEvent);\r\n const lowerCaseLabel = label.toLowerCase();\r\n if (\r\n lowerCaseLabel.indexOf(\"cancel\") !== -1 ||\r\n lowerCaseLabel.indexOf(\"close\") !== -1\r\n ) {\r\n return \"cancel\";\r\n }\r\n return null;\r\n }\r\n\r\n /******************** zWorkflowButton ********************/\r\n // URL required\r\n // eslint-disable-next-line @typescript-eslint/naming-convention,no-underscore-dangle,id-blacklist,id-match\r\n e1wfs_wfcGetWorkflowButtonURL = this.resourceApiService.getURL(\"e1wfs_wfcGetWorkflowButtonURL\");\r\n // eslint-disable-next-line @typescript-eslint/naming-convention,no-underscore-dangle,id-blacklist,id-match\r\n e1wfs_wfc_getWorkflowInitialStatusURL = this.resourceApiService.getURL(\"e1wfs_wfc_getWorkflowInitialStatusURL\");\r\n // eslint-disable-next-line @typescript-eslint/naming-convention, no-underscore-dangle, id-blacklist, id-match\r\n e1wfs_wfc_getDocumentStatusURL = this.resourceApiService.getURL(\"e1wfs_wfc_getDocumentStatusURL\");\r\n\r\n\r\n private loadWorkflowButton() {\r\n // actionBtnList: Array<ZField>;\r\n this.topRightActionButton = [];\r\n\r\n // Get WFS_DocumentId if any.\r\n let documentId = null;\r\n if (this.group.zModel) {\r\n documentId = this.group.zModel['WFS_DocumentId'];\r\n }\r\n\r\n // Set the documentId to the service\r\n this.workflowService.appendWFS_DocumentsInfo(this.data.WorkflowCode, documentId);\r\n\r\n try {\r\n // Set param for field\r\n const field$ = this.workflowService.getWorkflowButtonsField(\r\n this.data.WorkflowCode,\r\n this.e1wfs_wfcGetWorkflowButtonURL,\r\n String(false)\r\n );\r\n\r\n field$.subscribe(data => {\r\n data.forEach((button: any) => {\r\n const label = this.getButtonLabel(button);\r\n const attributes = JSON.parse(button.Attributes);\r\n const buttonLabel = attributes.Label || label;\r\n const _isVisible = this.isBtnVisible(button.Visible);\r\n\r\n if (_isVisible) {\r\n this.topRightActionButton.push({\r\n text: buttonLabel,\r\n fieldAttribute: button,\r\n iconName: attributes.Icon,\r\n handler: (y) => {\r\n this.workflowButtonClick(button);\r\n }\r\n });\r\n }\r\n //ZComponentHelper.collectWorkflowButton(this.group, this.data.WorkflowCode, buttonLabel, button, attributes, mappedInfo);\r\n });\r\n });\r\n\r\n if (!this.data.DisableSyncWorkflowStatus) {\r\n // Set default status\r\n // eslint-disable-next-line @typescript-eslint/dot-notation\r\n if (!this.group.zModel[\"WFS_StatusName\"]) {\r\n const params = {\r\n \"WorkflowMasterCode\": this.data.WorkflowCode\r\n };\r\n\r\n return this.webApiService.httpPost$(this.e1wfs_wfc_getWorkflowInitialStatusURL, params).pipe(\r\n map(res => {\r\n if (res.Data) {\r\n ZComponentHelper.presetModelValue(\"WFS_StatusId\", res.Data[\"Id\"], this.group);\r\n ZComponentHelper.presetModelValue(\"WFS_StatusName\", res.Data[\"Name\"], this.group);\r\n ZComponentHelper.presetModelValue(\"WFS_StatusCode\", res.Data[\"Code\"], this.group);\r\n\r\n this.workflowService.setCurrentDocumentStatus(res.Data);\r\n }\r\n })\r\n ).subscribe();\r\n } else {\r\n // When loading also to get current Status Information if any.\r\n const docInfoParam = {\r\n \"WorkflowMasterCode\": this.data.WorkflowCode,\r\n \"DocumentId\": documentId,\r\n };\r\n\r\n this.webApiService.httpPost$(this.e1wfs_wfc_getDocumentStatusURL, docInfoParam).pipe(\r\n map(res => {\r\n this.workflowService.setCurrentDocumentStatus(res);\r\n if (res.Data) {\r\n this.workflowService.setCurrentDocumentStatus(res.Data);\r\n }\r\n })\r\n ).subscribe();\r\n }\r\n }\r\n\r\n } catch (error) {\r\n console.error(\"error: \", error);\r\n }\r\n }\r\n\r\n workflowButtonClick(button: any) {\r\n // Type 1 == functional;\r\n // Type 2 == GOTO;\r\n const attributes = JSON.parse(button.Attributes);\r\n switch (button.TypeCode.toUpperCase()) {\r\n case \"FUNCTION\":\r\n console.log(\"Functional Button: \", button.Name);\r\n this.workflowService.functionalButton_OnClick(attributes, this.group);\r\n break;\r\n case \"GOTO\":\r\n console.log(\"GOTO Button: \", button.Name);\r\n this.workflowService.gotoButton_Onclick(button, this.data, attributes, this.group, false).subscribe(res => {\r\n this.loadWorkflowButton();\r\n if (res) {\r\n this.workflowService.triggerSendEmail(this.group).subscribe();\r\n }\r\n });\r\n break;\r\n default:\r\n console.log(\"Invalid Button Type. \", button.Name);\r\n break;\r\n }\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport { ZGroup, ZField, ZComponentHelper } from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-uivalidationmessage',\r\n templateUrl: './uivalidationmessage.component.html',\r\n styleUrls: ['./uivalidationmessage.component.scss'],\r\n})\r\nexport class UivalidationmessageComponent implements OnInit {\r\n @Input() group: ZGroup;\r\n @Input() data: ZField;\r\n @Input() form: FormGroup;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {}\r\n\r\n getValidationError(form: FormGroup, data: ZField) {\r\n return ZComponentHelper.getValidationError(form, data);\r\n } \r\n\r\n isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n\r\n getIconClass() {\r\n if (!this.isMobileScreen()) {\r\n return \"k-icon k-i-warning validation_icon\"\r\n }\r\n else {\r\n return \"k-icon k-i-warning\"\r\n }\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport { \r\n ZField, ZGroup, ZComponentProperties,\r\n ZComponent, ZComponentHelper \r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-zbullet',\r\n templateUrl: './zbullet.component.html',\r\n styleUrls: ['./zbullet.component.scss'],\r\n})\r\nexport class ZBulletComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n componentProperties = new ZComponentProperties();\r\n dataSource: Array<any>;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.data.ListType = this.data.ListType ? this.data.ListType : \"ul\";\r\n this.setupDataSource();\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n }\r\n \r\n private setupDataSource() {\r\n if (!this.data.DataSource) {\r\n console.error(\"No data source found for zhip\");\r\n return;\r\n }\r\n\r\n if (this.data.DataSource.indexOf(\"group.\") !== -1) {\r\n this.dataSource = ZComponentHelper.getGroupValue(\r\n this.data.DataSource,\r\n this.group\r\n );\r\n }\r\n else {\r\n this.dataSource = this.data.DataSource as any;\r\n }\r\n }\r\n\r\n getReadOnlyValue() {\r\n const readOnlyValue = ZComponentHelper.getGroupEvalValue.call(this, this.data.ReadOnly);\r\n if (typeof readOnlyValue === 'function') {\r\n return readOnlyValue();\r\n }\r\n return readOnlyValue;\r\n }\r\n\r\n isVisible() {\r\n if (this.componentProperties.isVisible === null) {\r\n return ZComponentHelper.isVisible.call(this, this.data);\r\n } else {\r\n return this.componentProperties.isVisible;\r\n }\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setData = (data: any) => {\r\n this.dataSource = data;\r\n }\r\n\r\n getIon_InvalidClass(form: FormGroup, data: ZField) {\r\n return ZComponentHelper.getIon_InvalidClass(form, data);\r\n }\r\n\r\n getClass(form: FormGroup, data: ZField) {\r\n return `${ZComponentHelper.getIon_InvalidClass(form, data)} ${data.DivClass}`;\r\n }\r\n}","/********** Angular **********/\r\nimport { Component, OnInit, Input } from '@angular/core';\r\nimport { FormGroup, Validators } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport { \r\n FieldService, ZComponent, ZComponentHelper, \r\n ZComponentOutputEvent, ZComponentProperties, ZField, ZGroup, FontAweSomeService\r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: \"app-zbuttons\",\r\n templateUrl: \"./zbuttons.component.html\",\r\n styleUrls: [\"./zbuttons.component.scss\"]\r\n})\r\nexport class ZbuttonsComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n items: Array<any> = [];\r\n FirstZbtn = false;\r\n componentProperties = new ZComponentProperties();\r\n expand = \"\";\r\n\r\n constructor(\r\n private fieldService: FieldService\r\n ) { }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n const field$ = this.fieldService.getFormFieldCode(\r\n this.data.Value,\r\n \"FormField\", null, null\r\n );\r\n\r\n this.group.zButtonsCount++;\r\n if (this.group.zButtonsCount === 1) {\r\n this.FirstZbtn = true;\r\n }\r\n\r\n this.expand = this.data.Expand || \"\";\r\n\r\n try {\r\n field$.subscribe(data => {\r\n // this.items = data;\r\n data.forEach((button: any) => {\r\n if (this.data.SubType) {\r\n button.Name = this.data.SubType + '_' + button.Name; \r\n } \r\n\r\n const label = this.getButtonLabel(button);\r\n\r\n let buttonDisabled = null;\r\n\r\n if (button.Disabled != \"\" && button.Disabled) {\r\n buttonDisabled = button.Disabled === 'true' ? true : ZComponentHelper.getGroupEvalValue.call(this, button.Disabled);\r\n }\r\n\r\n const fill = button['Fill'] ? button['Fill'] : 'outline';\r\n const color = button.Color ? button.Color : 'dark';\r\n\r\n this.items.push({\r\n name: button.Name,\r\n text: label,\r\n icon: ZComponentHelper.getIcon(button.Icon),\r\n visible: button.Visible,\r\n disabled: buttonDisabled,\r\n clickEvent: button.ClickEvent,\r\n iconName: button.Icon,\r\n dismissType: button.DismissType,\r\n disableTriggerTimer: button.DisableTriggerTimer,\r\n fill: fill,\r\n color: color,\r\n SubType: this.data.SubType,\r\n click: (y) => {\r\n this.buttonClick(button);\r\n }\r\n }); \r\n });\r\n });\r\n } catch (error) {\r\n console.error(\"error: \", error);\r\n }\r\n }\r\n\r\n public setLabelText(newText: string, name: string) {\r\n const btn = this.items.find(x => x.name === name);\r\n if (btn) {\r\n btn.text = newText;\r\n }\r\n }\r\n\r\n private buttonClick(button: any) {\r\n // debugger;\r\n this.group.isTriggered = true;\r\n const me = this.group;\r\n if (!this.data['DisableTriggerTimer']) {\r\n setTimeout(function () {\r\n me['isTriggered'] = false;\r\n }, 500);\r\n }\r\n this.group.subject.next({\r\n type: \"buttonClick\",\r\n target: button.ClickEvent,\r\n data: null\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n BtnClick(item: any) {\r\n // debugger;\r\n this.group.isTriggered = true;\r\n const me = this.group;\r\n if (!item['disableTriggerTimer']) {\r\n setTimeout(function () {\r\n me['isTriggered'] = false;\r\n }, 500);\r\n }\r\n this.group['DismissType'] = item.dismissType;\r\n this.group.subject.next({\r\n type: \"buttonClick\",\r\n target: item.clickEvent,\r\n data: item\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n private getButtonLabel(button: any) {\r\n if (button.Label) {\r\n let labelExpr = button.Label.match(/^{{.*}}$/gi);\r\n if (labelExpr) {\r\n labelExpr = labelExpr[0].slice(2, -2);\r\n const label = ZComponentHelper.getGroupValue(labelExpr, this.group);\r\n return label;\r\n } else {\r\n return button.Label;\r\n }\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n\r\n private getButtonRole(button: any, label: string) {\r\n // console.log(\"getButtonRole: \", label, button.ClickEvent);\r\n const lowerCaseLabel = label.toLowerCase();\r\n if (\r\n lowerCaseLabel.indexOf(\"cancel\") !== -1 ||\r\n lowerCaseLabel.indexOf(\"close\") !== -1\r\n ) {\r\n return \"cancel\";\r\n }\r\n return null;\r\n }\r\n\r\n isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n\r\n isBtnVisible(fieldExpr) {\r\n if (fieldExpr !== false && !fieldExpr) {\r\n return true;\r\n }\r\n const v = ZComponentHelper.getGroupEvalValue.call(this, fieldExpr);\r\n return v;\r\n }\r\n\r\n getFontAwesome(iconName: string) {\r\n return ZComponentHelper.getFontAwesome(iconName);\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n const fc = this.group.form.controls[this.data.Value];\r\n status ? fc.enable() : fc.disable();\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { FormGroup } from \"@angular/forms\";\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport { \r\n ZComponent, ZComponentHelper,\r\n ZField, ZGroup, ZComponentProperties, AuthService, FontAweSomeService\r\n} from \"mmhglobal-zcore\";\r\n\r\n\r\n@Component({\r\n selector: \"app-zcard\",\r\n templateUrl: \"./zcard.component.html\",\r\n styleUrls: [\"./zcard.component.scss\"],\r\n})\r\nexport class ZcardComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n // classStyleObservables: Array<BehaviorSubject<string>>;\r\n\r\n componentProperties = new ZComponentProperties();\r\n\r\n constructor(\r\n private authService: AuthService\r\n ) { }\r\n\r\n options = {\r\n Title: '',\r\n Icon:'Folder'\r\n }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n ZComponentHelper.setFieldsDivClass(this.group._projectName, this.group.fieldName, this.data, this.authService);\r\n\r\n this.getFieldDeclarationForSetup(this.data, this.options);\r\n\r\n }\r\n\r\n ComponentIsVisible(field: ZField): any {\r\n return ZComponentHelper.ComponentIsVisible(field, this.group);\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n getReadOnlyValue() {\r\n const readOnlyValue = ZComponentHelper.getGroupEvalValue.call(this, this.data.ReadOnly);\r\n if (typeof readOnlyValue === 'function') {\r\n return readOnlyValue();\r\n }\r\n return readOnlyValue;\r\n }\r\n\r\n private getFieldDeclarationForSetup(field: ZField, options: any) {\r\n options.Title = field.Title.includes(\"group.\") ? ZComponentHelper.getGroupEvalValue.call(this, field.Title) : field.Title;\r\n //options.Icon = ZComponentHelper.getIcon(field.Icon.toString())||options.Icon;\r\n }\r\n \r\n public setData = (gData: any) => {\r\n this.getFieldDeclarationForSetup(this.data, this.options);\r\n }\r\n\r\n // getFontAwesome(iconName: string) {\r\n // return ZComponentHelper.getFontAwesome(iconName);\r\n // }\r\n\r\n public setEnable = (status: boolean) => {\r\n const fc = this.group.form.controls[this.data.Value];\r\n status ? fc.enable() : fc.disable();\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { FormGroup, Validators } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n// import { groupBy, GroupResult } from '@progress/kendo-data-query';\r\n\r\n/********** Component & Service **********/\r\nimport { \r\n ZComponent, ZComponentHelper,\r\n ZField, ZGroup, ZComponentProperties \r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-zchart',\r\n templateUrl: './zchart.component.html',\r\n styleUrls: ['./zchart.component.scss'],\r\n})\r\nexport class ZchartComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n isLoading = true;\r\n componentProperties = new ZComponentProperties();\r\n private series: any[] = [];\r\n // = [{\r\n // type: '',\r\n // style: 'smooth',\r\n // name: 'India',\r\n // data: [3.907, 7.943, 7.848, 9.284, 9.263, 9.801, 3.890, 8.238, 9.552, 6.855]\r\n // }, {\r\n // type: '',\r\n // style: 'smooth',\r\n // name: 'Russian Federation',\r\n // data: [4.743, 7.295, 7.175, 6.376, 8.153, 8.535, 5.247, -7.832, 4.3, 4.3]\r\n // }, {\r\n // type: 'bar',\r\n // style: 'smooth',\r\n // name: 'Germany',\r\n // data: [0.010, -0.375, 1.161, 0.684, 3.7, 3.269, 1.083, -5.127, 3.690, 2.995]\r\n // }, {\r\n // type: 'area',\r\n // style: 'smooth',\r\n // name: 'World',\r\n // data: [1.988, 2.733, 3.994, 3.464, 4.001, 3.939, 1.333, -2.245, 4.339, 2.727]\r\n // }];\r\n\r\n private categories = [];\r\n // [2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011];\r\n\r\n options = {\r\n title: 'Chart Title Here',\r\n renderAs: 'canvas', // svg\r\n pannable: false,\r\n zoomable: false,\r\n categoryAxis: {\r\n categories: this.categories,\r\n max: 10,\r\n maxDivisions: null,\r\n labels: { rotation: 'auto' }\r\n },\r\n labels: {\r\n visible: false,\r\n background: \"transparent\"\r\n },\r\n series: this.series,\r\n dataType: 'bar',\r\n dataStyle: 'smooth',\r\n legendPosition: 'bottom',\r\n legendOrientation: 'horizontal',\r\n tooltipFormat: '{0}%',\r\n aggregateType: 'sum',\r\n dataField: null,\r\n categoryField: null,\r\n color: '#05A2FE',\r\n };\r\n\r\n // fieldElement01 = [{\r\n // Name: 'chart01',\r\n // Type: 'zchart',\r\n // Options: 'group.chart01Options',\r\n // DivClass: \"col-md-12 col-md-6\",\r\n // Visible: true\r\n // }];\r\n\r\n // fieldElement02 = [{\r\n // Name: 'chart01',\r\n // Type: 'zchart',\r\n // Title: 'Chart01 Title',\r\n // RenderAs: 'svg',\r\n // Pannable: true,\r\n // Zoomable: true,\r\n // Categories: 'group.chart01Categories',\r\n // Max: 10,\r\n // MaxDivisions: null,\r\n // Rotation: 'auto',\r\n // Series: 'group.chart01Series',\r\n // DataType: 'bar',\r\n // DataStyle: 'smooth',\r\n // LegendPosition: 'bottom',\r\n // LegendOrientation: 'horizonal',\r\n // TooltipFormat: '{0}',\r\n // AggregateType: 'sum',\r\n // DataField: null,\r\n // CategoryField: null,\r\n // DivClass: \"col-md-12 col-md-6\",\r\n // Visible: true\r\n // }];\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n if (this.data.Options) {\r\n const optionType = typeof (this.data.Options);\r\n if (optionType === 'object') {\r\n Object.assign(this.options, this.data.Options);\r\n } else if (optionType === 'string') {\r\n const optionValue = ZComponentHelper.getGroupEvalValue.call(this, this.data.Options);\r\n if (typeof(optionValue) === 'object') {\r\n Object.assign(this.options, optionValue);\r\n }\r\n }\r\n }\r\n\r\n if (this.data.Options && this.data.Options.categoryAxis && this.data.Options.categoryAxis.categories && typeof (this.data.Options.categoryAxis.categories) === 'string') {\r\n this.options.categoryAxis.categories =\r\n ZComponentHelper.getGroupEvalValue.call(this, this.data.Options.categoryAxis.categories);\r\n }\r\n\r\n if (this.data.Options && this.data.Options.series && typeof (this.data.Options.series) === 'string') {\r\n this.options.series =\r\n ZComponentHelper.getGroupEvalValue.call(this, this.data.Options.series);\r\n }\r\n\r\n\r\n this.getFieldDeclarationForSetup(this.data, this.options);\r\n\r\n this.isLoading = false;\r\n }\r\n\r\n private getFieldDeclarationForSetup(field: ZField, options: any) {\r\n options.title = field.Title || options.title;\r\n options.renderAs = field.RenderAs || options.renderAs;\r\n options.pannable = field.Pannable || options.pannable;\r\n options.zoomable = field.Zoomable || options.zoomable;\r\n options.categoryAxis.categories = ZComponentHelper.getGroupEvalValue.call(this, field.Categories) || [];\r\n options.categoryAxis.max = field.Max || options.categoryAxis.max;\r\n options.categoryAxis.maxDivisions = field.MaxDivisions || options.categoryAxis.maxDivisions;\r\n options.categoryAxis.labels.rotation = field.Rotation || options.categoryAxis.labels.rotation;\r\n options.series = ZComponentHelper.getGroupEvalValue.call(this, field.Series) || [];\r\n options.dataType = field.DataType || options.dataType;\r\n options.dataStyle = field.DataStyle || options.dataStyle;\r\n options.legendPosition = field.LegendPosition || options.legendPosition;\r\n options.legendOrientation = field.LegendOrientation || options.legendOrientation;\r\n options.tooltipFormat = field.TooltipFormat || options.tooltipFormat;\r\n options.aggregateType = field.AggregateType || options.aggregateType;\r\n options.dataField = field.DataField || options.dataField;\r\n options.categoryField = field.CategoryField || options.categoryField;\r\n }\r\n\r\n public onRender(e): void {\r\n // console.log('render');\r\n }\r\n\r\n public onAxisLabelClick(e): void {\r\n // console.log('axisLabelClick', e);\r\n }\r\n\r\n public onLegendItemClick(e): void {\r\n // console.log('legendItemClick', e);\r\n }\r\n\r\n public onLegendItemHover(e): void {\r\n // console.log('legendItemHover', e);\r\n }\r\n\r\n public onPlotAreaClick(e): void {\r\n // console.log('plotAreaClick', e);\r\n }\r\n\r\n public onPlotAreaHover(e): void {\r\n // console.log('plotAreaHover', e);\r\n }\r\n\r\n public onSeriesClick(e): void {\r\n // console.log('seriesClick', e);\r\n const f = ZComponentHelper.getGroupEvalValue.call(this, this.data.OnItemClick);\r\n if (typeof f === 'function') {\r\n const callFunc = f.bind(this.group.ctrlScope);\r\n return callFunc(e);\r\n }\r\n return;\r\n }\r\n\r\n public onSeriesHover(e): void {\r\n // console.log('seriesHover', e);\r\n }\r\n\r\n public setData = (gData: any) => {\r\n this.getFieldDeclarationForSetup(this.data, this.options);\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n // const fc = this.group.form.controls[this.data.Value];\r\n // status ? fc.enable() : fc.disable();\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport { \r\n ZGroup, ZField, ZComponentProperties,\r\n ZComponent, ZComponentHelper, ZComponentOutputEvent,\r\n} from \"mmhglobal-zcore\";\r\n\r\n\r\n@Component({\r\n selector: \"app-zcheckbox\",\r\n templateUrl: \"./zcheckbox.component.html\",\r\n styleUrls: [\"./zcheckbox.component.scss\"],\r\n})\r\nexport class ZcheckboxComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n componentProperties = new ZComponentProperties();\r\n public showTooltipsInfoIcon: boolean = false;\r\n public showTooltipsInfoBySide: boolean = false;\r\n public tooltipsInfo: any = null;\r\n public tooltipsDisplayText: string = null;\r\n public tooltipsDisplayIcon: any;\r\n public useKendoSwitch: boolean = false;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n this.tooltipsInfo = this.data['TooltipsInfo'];\r\n if (this.tooltipsInfo) {\r\n if ((this.tooltipsInfo['Icon'] != null || this.tooltipsInfo['Icon'] != undefined) && !this.isMobileScreen()) {\r\n this.showTooltipsInfoIcon = true;\r\n this.setTooltipsInfoIcon();\r\n }\r\n if (this.tooltipsInfo['SideBySide']) {\r\n this.showTooltipsInfoBySide = true;\r\n }\r\n \r\n this.setTooltipsDisplayText();\r\n }\r\n\r\n this.useKendoSwitch = this.data.UseKendoSwitch ? this.data.UseKendoSwitch : false;\r\n }\r\n\r\n isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n\r\n onSwitchChange(event: any) {\r\n ZComponentHelper.setModelValue(this.data.Value, event, this.group);\r\n this.group.subject.next({\r\n type: \"onChange\",\r\n target: this.data.OnChange,\r\n data: { value: event, field: this.data },\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n onChange(event: any) {\r\n if (this.data.OnChange) {\r\n const callFunc = ZComponentHelper.getGroupEvalValue.call(\r\n this,\r\n this.data.OnChange\r\n );\r\n if (typeof callFunc === \"function\") {\r\n const newFunc = callFunc.bind(this.group.ctrlScope);\r\n newFunc(event);\r\n }\r\n }\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n const fc = this.group.form.controls[this.data.Value];\r\n status ? fc.enable() : fc.disable();\r\n this.componentProperties.isReadOnly = !status;\r\n };\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n };\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(\r\n status,\r\n this.group,\r\n this.data.Value,\r\n this.componentProperties,\r\n Validators.required\r\n );\r\n };\r\n\r\n public getLabelStyle() {\r\n return {\r\n order:\r\n this.data.LabelOrder &&\r\n this.data.LabelOrder === \"end\" &&\r\n this.data.LabelPosition !== \"stacked\"\r\n ? 2\r\n : 0,\r\n \"white-space\": \"normal\",\r\n };\r\n }\r\n\r\n public getCheckboxClass() {\r\n const classList = [];\r\n if (this.data.LabelDivClass) {\r\n this.data.LabelDivClass.split(\" \").forEach((x) => {\r\n if (x.indexOf(\"col\") !== -1) {\r\n const divClassSegment = x.split(\"-\");\r\n divClassSegment[divClassSegment.length - 1] = (\r\n 12 - parseInt(divClassSegment[divClassSegment.length - 1])\r\n ).toString();\r\n classList.push(divClassSegment.join(\"-\"));\r\n } else {\r\n classList.push(x);\r\n }\r\n });\r\n }\r\n\r\n return classList.join(\" \");\r\n }\r\n\r\n getClass(form: FormGroup, data: ZField) {\r\n return `ionItem ${this.data.Class}`;\r\n }\r\n\r\n /********** TooltipsInfo **********/\r\n public setTooltipsInfoColor() {\r\n if (this.tooltipsInfo) {\r\n if (this.tooltipsInfo['TextColor']) {\r\n return this.tooltipsInfo['TextColor'];\r\n }\r\n }\r\n\r\n return \"#acacac\"; // default grey\r\n }\r\n\r\n public setTooltipsInfoIcon(displayIcon?: string) {\r\n if (this.showTooltipsInfoIcon) {\r\n if (this.tooltipsInfo.Icon != '') {\r\n if (displayIcon) {\r\n this.tooltipsDisplayIcon = displayIcon;\r\n }\r\n else {\r\n this.tooltipsDisplayIcon = this.tooltipsInfo.Icon;\r\n }\r\n }\r\n else {\r\n this.tooltipsDisplayIcon = 'question-circle'\r\n }\r\n }\r\n }\r\n\r\n public setTooltipsDisplayText(displayText?: string) {\r\n if (this.tooltipsInfo) {\r\n if (displayText) {\r\n this.tooltipsDisplayText = displayText;\r\n }\r\n else {\r\n this.tooltipsDisplayText = this.tooltipsInfo.DisplayText;\r\n }\r\n }\r\n else {\r\n this.tooltipsDisplayText = '<Display text error>';\r\n }\r\n }\r\n\r\n public setTooltipsInfoSideBySide() { \r\n if (this.tooltipsInfo ) {\r\n if (this.tooltipsInfo ['SideBySide'] && !this.showTooltipsInfoIcon) {\r\n return 'tooltipsinfo-right';\r\n }\r\n else {\r\n return '';\r\n }\r\n }\r\n return 'notooltipsinfo-adjustment';\r\n }\r\n\r\n\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input, ViewChild } from \"@angular/core\";\r\nimport { FormGroup, Validators } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { TooltipDirective } from '@progress/kendo-angular-tooltip';\r\n\r\n/********** Component & Service **********/\r\nimport { \r\n ZComponent, ZComponentHelper, ZComponentOutputEvent,\r\n ZGroup, ZField, ZComponentProperties, AuthService \r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-zchip',\r\n templateUrl: './zchip.component.html',\r\n styleUrls: ['./zchip.component.scss'],\r\n})\r\nexport class ZChipComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n private icon = \"k-icon k-i-cancel\";\r\n private selectedIcon = \"k-icon k-i-check-circle\";\r\n public componentProperties = new ZComponentProperties();\r\n public dataSource;\r\n @ViewChild(TooltipDirective, { static: false }) public tooltipDir: TooltipDirective;\r\n\r\n constructor(\r\n private authService: AuthService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.setupDataSource();\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n }\r\n\r\n private setupDataSource() {\r\n if (!this.data.DataSource) {\r\n console.error(\"No data source found for zhip\");\r\n return;\r\n }\r\n\r\n if (this.data.DataSource.indexOf(\"group.\") !== -1) {\r\n this.dataSource = ZComponentHelper.getGroupValue(\r\n this.data.DataSource,\r\n this.group\r\n );\r\n }\r\n else {\r\n this.dataSource = this.data.DataSource;\r\n }\r\n\r\n if (Array.isArray(this.dataSource)) {\r\n this.dataSource.forEach(x => {\r\n x.Label = x.Label ? x.Label : x.Value,\r\n x.Icon = !!x.Selected ? null : (x.Icon ? x.Icon : this.icon),\r\n x.SelectedIcon = x.SelectedIcon ? x.SelectedIcon : this.selectedIcon,\r\n x._Icon = x.Icon ? x.Icon : this.icon;\r\n x._Selected = x.Selected;\r\n })\r\n }\r\n }\r\n\r\n public getClass() {\r\n return this.data.DivClass;\r\n }\r\n\r\n public getChipClass(chip) {\r\n return chip.Class ? chip.Class : \"\";\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n public chipListChangeSelection(selectedChipIndexes: any): void {\r\n let ind = 0;\r\n for (let chip of this.dataSource) {\r\n if (selectedChipIndexes.includes(ind)) {\r\n chip.Icon = null\r\n }\r\n else {\r\n chip.Icon = this.dataSource.find(x => x.Value === chip.Value)._Icon;\r\n }\r\n ind++;\r\n }\r\n }\r\n\r\n public chipChangeSelection(chip: any) {\r\n this.dataSource.find(x => x.Value === chip.Value)._Selected = !chip._Selected;\r\n\r\n if (this.data.OnChange) {\r\n this.group.subject.next({\r\n type: \"onChange\",\r\n target: this.data.OnChange,\r\n data: { value: this.dataSource, selectedItem: chip, field: this.data }\r\n } as ZComponentOutputEvent);\r\n }\r\n }\r\n\r\n public getDataValue(): any {\r\n return this.dataSource as any;\r\n }\r\n\r\n public mouseover(event: any, chip: any) {\r\n if (this.data.OnHover) {\r\n this.group.subject.next({\r\n type: \"onHover\",\r\n target: this.data.OnHover,\r\n data: { value: this.dataSource, selectedItem: chip, field: this.data }\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n if (!!this.data['IsShowToolTip']) {\r\n this.showTooltip(event);\r\n }\r\n }\r\n\r\n public showTooltip(e: MouseEvent): void {\r\n const element = e.target as HTMLElement;\r\n this.tooltipDir.toggle(element);\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input, ViewChild, OnDestroy } from \"@angular/core\";\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { of, Subscription } from \"rxjs\";\r\nimport { delay } from \"rxjs/operators\";\r\nimport { AceEditorComponent } from \"ng2-ace-editor\";\r\nimport \"brace\";\r\nimport \"brace/theme/eclipse\";\r\nimport \"brace/mode/json\";\r\nimport \"brace/mode/javascript\";\r\nimport \"brace/mode/html\";\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n ZComponent, ZComponentHelper, ZComponentOutputEvent,\r\n ZField, ZGroup, ZComponentProperties\r\n} from \"mmhglobal-zcore\";\r\n\r\n\r\ndeclare let ace: any;\r\n\r\n// import { EditorComponent } from 'ngx-monaco-editor';\r\n// import { EditorOptions } from \"ngx-monaco-editor\";\r\n\r\n@Component({\r\n selector: \"app-zcodeeditor\",\r\n templateUrl: \"./zcodeeditor.component.html\",\r\n styleUrls: [\"./zcodeeditor.component.scss\"]\r\n})\r\nexport class ZcodeeditorComponent implements ZComponent, OnInit, OnDestroy {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n code: string | string[] = \"\";\r\n theme = \"eclipse\";\r\n mode = \"javascript\";\r\n subscription: Subscription;\r\n componentProperties = new ZComponentProperties();\r\n \r\n private widthReduce: number;\r\n private heightReduce: number;\r\n\r\n @ViewChild(\"editor\") editor: AceEditorComponent;\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n this.widthReduce = this.data.WidthReduce || 60;\r\n this.heightReduce = this.data.HeightReduce || 560;\r\n\r\n // const codeValue = this.getValue();\r\n // if (codeValue) {\r\n // this.code = codeValue;\r\n // }\r\n if (this.data.Type === \"textareajson\") {\r\n this.mode = \"json\";\r\n } else if (this.data.Type === \"textareahtml\") {\r\n this.mode = \"html\";\r\n }\r\n console.log(\"zcodeeditor OnInit\");\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n // https://github.com/fxmontigny/ng2-ace-editor/blob/master/sample/src/app/app.component.ts\r\n // ngAfterViewInit() {\r\n // const Range = ace.require('ace/range')['Range'];\r\n // this.editor\r\n // .getEditor()\r\n // .session.addMarker(new Range(0, 0, 2, 1), 'myMarker', 'fullLine');\r\n\r\n // this.editor.getEditor().session.setOption('useWorker', true);\r\n // }\r\n\r\n getValue() {\r\n let v;\r\n if (this.data.Value.indexOf('.') !== -1) {\r\n v = this.data.Value;\r\n } else {\r\n v = \"group.zModel.\" + this.data.Value;\r\n }\r\n const evalValue = ZComponentHelper.getEvalValue.call(this, v);\r\n if (typeof evalValue === 'function') {\r\n const nextValue = evalValue();\r\n if (nextValue) {\r\n try {\r\n const evalNextValue = ZComponentHelper.getEvalValue.call(this, nextValue, true);\r\n if (typeof evalNextValue === 'boolean') {\r\n return evalNextValue.toString();\r\n }\r\n if (evalNextValue === undefined) {\r\n return 'undefined';\r\n }\r\n if (evalNextValue === null) {\r\n return 'null';\r\n }\r\n return evalNextValue;\r\n } catch {\r\n return;\r\n }\r\n } else {\r\n return;\r\n }\r\n } else {\r\n return evalValue;\r\n }\r\n // if (this.data.Type === \"textareajson\") {\r\n // if (typeof evalValue === \"string\") {\r\n // const jsonValue = JSON.parse(evalValue);\r\n // return JSON.stringify(jsonValue, null, 2);\r\n // }\r\n // if (typeof evalValue === \"object\" || Array.isArray(evalValue)) {\r\n // return JSON.stringify(evalValue, null, 2);\r\n // }\r\n // }\r\n // if (typeof evalValue === 'string') {\r\n // return evalValue;\r\n // }\r\n // // debugger;\r\n // console.warn(\r\n // \"zcodeeditor - Invalid field.Value (\" + this.data.Value + \") setting \",\r\n // evalValue\r\n // );\r\n // return \"\";\r\n }\r\n\r\n getEditorStyle() {\r\n // debugger;\r\n // return { \"height.px\": 500, \"width.px\": window.innerWidth - 60 }; // \"width.px\": this.innerWidth - 25\r\n return {\r\n \"height.px\": this.getEditorHeight(),\r\n \"width.px\": window.innerWidth - this.widthReduce\r\n };\r\n }\r\n\r\n private getEditorHeight() {\r\n const h = window.innerHeight - this.heightReduce;\r\n return (h < 180) ? 180 : h;\r\n }\r\n\r\n onTextChange(newValue: any) {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n // console.log('onTextChange: ', newValue);\r\n this.subscription = of([])\r\n .pipe(delay(500))\r\n .subscribe(() => {\r\n ZComponentHelper.setModelValue(this.data.Value, newValue, this.group, true);\r\n this.group.subject.next({\r\n type: \"zcodeeditor-TextChanged\",\r\n target: this.data.OnChange,\r\n data: newValue\r\n } as ZComponentOutputEvent);\r\n });\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input, ViewChild } from '@angular/core';\r\nimport { FormGroup, Validators } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { DateRangeService } from '@progress/kendo-angular-dateinputs';\r\n\r\n/********** Component & Service **********/\r\nimport { \r\n ZField, ZGroup, ZComponentProperties,\r\n ZComponent, ZComponentHelper \r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-zdaterange',\r\n templateUrl: './zdaterange.component.html',\r\n styleUrls: ['./zdaterange.component.scss'],\r\n})\r\nexport class ZdaterangeComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n @ViewChild('zdaterange') public zdaterange: DateRangeService;\r\n // @ViewChild('endDateInput', { static: true }) public endInput: ElementRef;\r\n range: { start: Date, end: Date} = { start: null, end: null};\r\n componentProperties = new ZComponentProperties();\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n const rangeDateArray = this.data.Value.split(',');\r\n const fromDateString = rangeDateArray[0].trim();\r\n const toDateString = rangeDateArray[1].trim();\r\n \r\n const fromDate = ZComponentHelper.getGroupEvalValue.call(this, fromDateString);\r\n const toDate = ZComponentHelper.getGroupEvalValue.call(this, toDateString);\r\n // this.range = {\r\n // start: fromDate,\r\n // end: toDate\r\n // }\r\n\r\n\r\n const options = ZComponentHelper.getGroupEvalValue.call(this, this.data.Options);\r\n if (options) {\r\n if (options.min && options.max) {\r\n this.setNewRange(new Date(options.min), new Date(options.max));\r\n }\r\n }\r\n\r\n }\r\n\r\n setNewRange(min: Date, max: Date) {\r\n this.zdaterange.setRange({\r\n start: min,\r\n end: max\r\n });\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { PreventableEvent } from '@progress/kendo-angular-dateinputs';\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n ZComponent, ZComponentHelper, ZComponentOutputEvent,\r\n ZField, ZGroup, ZComponentProperties\r\n} from \"mmhglobal-zcore\";\r\n\r\n\r\n// import * as $ from 'jquery';\r\ndeclare var $: any;\r\n\r\n@Component({\r\n selector: \"app-zdatetime\",\r\n templateUrl: \"./zdatetime.component.html\",\r\n styleUrls: [\"./zdatetime.component.scss\"],\r\n})\r\nexport class ZdatetimeComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n dateFormat = \"DD-MMM-YYYY\";\r\n // dateValue = null;\r\n\r\n componentProperties = new ZComponentProperties();\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n if (this.data.Type === \"ztime\") {\r\n this.dateFormat = \"HH:mm\";\r\n }\r\n if (this.data.Type === \"zuidatetime\") {\r\n this.dateFormat = \"DD-MMM-YYYY h:mm A\";\r\n }\r\n if (this.data.Type === \"zuitime\") {\r\n this.dateFormat = \"HH:mm:ss\";\r\n }\r\n\tif (this.data.Type === \"zshortdate\") {\r\n this.dateFormat = \"MMM-YYYY\";\r\n }\r\n // if (this.group.zModel[this.data.Value]) {\r\n // this.dateValue = new Date(this.group.zModel[this.data.Value]);\r\n // }\r\n }\r\n\r\n toKendoDateFormat() {\r\n return this.dateFormat\r\n .replace(\"DD\", \"dd\")\r\n .replace(\"YYYY\", \"yyyy\")\r\n .replace(\"h\", \"H\")\r\n .replace(\"A\", \"a\");\r\n }\r\n\r\n getReadOnlyValue() {\r\n const readOnlyValue = ZComponentHelper.getGroupEvalValue.call(\r\n this,\r\n this.data.ReadOnly,\r\n this.group\r\n );\r\n if (typeof readOnlyValue === \"function\") {\r\n return readOnlyValue();\r\n }\r\n return readOnlyValue;\r\n }\r\n\r\n isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n\r\n getDateValue() {\r\n const value = this.form.controls[this.data.Value].value;\r\n if (value) {\r\n return new Date(value);\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n public GetDate(date: Date) {\r\n // convert the date to ISOString\r\n const myDate = new Date(date).toISOString();\r\n // assign to the zModel\r\n ZComponentHelper.setModelValue(this.data.Value, myDate, this.group);\r\n }\r\n\r\n public onChange(value: Date): void {\r\n // console.log(\r\n // \"date change \",\r\n // value.toISOString(),\r\n // \" date value: \",\r\n // new Date(value.toISOString())\r\n // );\r\n // // this.group.zModel[this.data.Value] = value.toISOString();\r\n // const v = value.toISOString();\r\n // this.dateValue = new Date(value.toISOString());\r\n if (value === null) {\r\n ZComponentHelper.setModelValue(\r\n this.data.Value,\r\n value,\r\n this.group\r\n );\r\n } else {\r\n ZComponentHelper.setModelValue(\r\n this.data.Value,\r\n value.toISOString(),\r\n this.group\r\n );\r\n\r\n const fc = this.form.controls[this.data.Value];\r\n fc.setValue(value.toISOString());\r\n }\r\n this.group.subject.next({\r\n type: \"onChange\",\r\n target: this.data.OnChange,\r\n data: value,\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n const fc = this.group.form.controls[this.data.Value];\r\n status ? fc.enable() : fc.disable();\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n public SetDateRange = (MinDate: string,MaxDate: string): any =>\r\n {\r\n var thisComponent = this;\r\n\r\n if (!isNaN(Date.parse(MinDate)))\r\n {\r\n this.data.MinDate = new Date(MinDate);\r\n }\r\n if (!isNaN(Date.parse(MaxDate)))\r\n {\r\n this.data.MaxDate = new Date(MaxDate);\r\n }\r\n }\r\n\r\n public handlePreventableEvent(event: PreventableEvent, eventName: string, preventDefault: boolean): void {\r\n // keep \"this\" to use in binding.\r\n var thisComponent = this;\r\n\r\n // need a timeout for ui to display the calender popup\r\n setTimeout(function () {\r\n // only available when popup is shown, get the element by class\r\n // for date\r\n thisComponent.dateAppendEvent(thisComponent);\r\n\r\n // for time\r\n thisComponent.timeAppendEvent(thisComponent);\r\n }, 500);\r\n }\r\n\r\n private dateAppendEvent(thisComponent: any) {\r\n let dateCell = $(\"tbody.k-calendar-tbody\").find(\"td.k-calendar-td\");\r\n for (var i = 0; i < dateCell.length; i++) {\r\n const node = dateCell[i];\r\n\r\n if (node.title != \"\") {\r\n // when date clicked\r\n node.addEventListener(\"click\", function () {\r\n if (!isNaN(Date.parse(node.title))) {\r\n const nodeDate = new Date(node.title).toISOString();\r\n // assign to the zModel\r\n ZComponentHelper.setModelValue(thisComponent.data.Value, nodeDate, thisComponent.group);\r\n }\r\n\r\n // timeout append time click event\r\n setTimeout(function () {\r\n thisComponent.hoursOnClick(thisComponent);\r\n thisComponent.minutesOnClick(thisComponent);\r\n thisComponent.ampmOnClick(thisComponent);\r\n thisComponent.nowOnClick(thisComponent);\r\n }, 500);\r\n });\r\n }\r\n }\r\n\r\n // Today clicked\r\n const todayDate = $(\"span.k-today\")[0];\r\n todayDate.addEventListener(\"click\", function () {\r\n const dateNow = new Date().toJSON().slice(0, 10).replace(/-/g, '/');\r\n // set to Model\r\n thisComponent.setDateTimeToModel(thisComponent, dateNow);\r\n\r\n thisComponent.hoursOnClick(thisComponent);\r\n thisComponent.minutesOnClick(thisComponent);\r\n thisComponent.ampmOnClick(thisComponent);\r\n thisComponent.nowOnClick(thisComponent);\r\n });\r\n }\r\n\r\n private timeAppendEvent(thisComponent: any) {\r\n var timeTab = $(\"button.k-button.k-time-tab\")[0];\r\n timeTab.addEventListener(\"click\", function () {\r\n thisComponent.hoursOnClick(thisComponent);\r\n thisComponent.minutesOnClick(thisComponent);\r\n thisComponent.ampmOnClick(thisComponent);\r\n thisComponent.nowOnClick(thisComponent);\r\n });\r\n }\r\n\r\n private nowOnClick(thisComponent: any) {\r\n const nowTime = $(\"button.k-button.k-bare.k-time-now\")[0];\r\n if (nowTime) {\r\n nowTime.addEventListener(\"click\", function (e) {\r\n // get model current value\r\n let valueDateTime = thisComponent.currentDateTimeValue(thisComponent);\r\n const dateTimeNow = new Date();\r\n\r\n // convert current value to datetime\r\n valueDateTime.setHours(dateTimeNow.getHours());\r\n valueDateTime.setMinutes(dateTimeNow.getMinutes());\r\n valueDateTime.setSeconds(dateTimeNow.getSeconds());\r\n\r\n // set to Model\r\n thisComponent.setDateTimeToModel(thisComponent, valueDateTime);\r\n });\r\n }\r\n }\r\n\r\n private hoursOnClick(thisComponent: any) {\r\n const timeWrapper = $(\"div.k-time-list-wrapper\").find(\"ul\");\r\n if (timeWrapper.length > 0) {\r\n const hour = timeWrapper[0].children;\r\n\r\n for (var i = 0; i < hour.length; i++) {\r\n hour[i].addEventListener(\"click\", function (e) {\r\n // get clicked node value\r\n const nodeValue = e.currentTarget.textContent;\r\n\r\n // get model current value\r\n let valueDateTime = thisComponent.currentDateTimeValue(thisComponent);\r\n\r\n // set new hour\r\n valueDateTime.setHours(nodeValue);\r\n\r\n // set to Model\r\n thisComponent.setDateTimeToModel(thisComponent, valueDateTime);\r\n });\r\n }\r\n }\r\n }\r\n\r\n private minutesOnClick(thisComponent: any) {\r\n const timeWrapper = $(\"div.k-time-list-wrapper\").find(\"ul\");\r\n if (timeWrapper.length > 0) {\r\n const minutes = timeWrapper[1].children;\r\n\r\n for (var i = 0; i < minutes.length; i++) {\r\n minutes[i].addEventListener(\"click\", function (e) {\r\n // get clicked node value\r\n const nodeValue = e.currentTarget.textContent;\r\n\r\n // get model current value\r\n const valueDateTime = thisComponent.currentDateTimeValue(thisComponent);\r\n\r\n // set new minute\r\n valueDateTime.setMinutes(nodeValue);\r\n\r\n // set to Model\r\n thisComponent.setDateTimeToModel(thisComponent, valueDateTime);\r\n });\r\n }\r\n }\r\n }\r\n\r\n private ampmOnClick(thisComponent: any) {\r\n const timeWrapper = $(\"div.k-time-list-wrapper\").find(\"ul\");\r\n if (timeWrapper.length > 0) {\r\n const ampm = timeWrapper[2].children;\r\n\r\n for (var i = 0; i < ampm.length; i++) {\r\n ampm[i].addEventListener(\"click\", function (e) {\r\n // get clicked node value\r\n const nodeValue = e.currentTarget.textContent;\r\n\r\n // get model current value\r\n const valueDateTime = thisComponent.currentDateTimeValue(thisComponent);\r\n\r\n // set new minutes\r\n var _hour = valueDateTime.getHours();\r\n if (nodeValue.toLowerCase() == \"am\") {\r\n _hour -= 12;\r\n }\r\n else {\r\n _hour += 12;\r\n }\r\n valueDateTime.setHours(_hour);\r\n\r\n // set to Model\r\n thisComponent.setDateTimeToModel(thisComponent, valueDateTime);\r\n });\r\n }\r\n }\r\n }\r\n\r\n private currentDateTimeValue(thisComponent: any) {\r\n // get current value\r\n const zModelValue = ZComponentHelper.getZModelValue(thisComponent.data.Value, thisComponent.group, thisComponent.group.zModel);\r\n\r\n let valueDateTime = new Date();\r\n\r\n if (zModelValue != \"\" && zModelValue != undefined) {\r\n // convert current value to datetime\r\n valueDateTime = new Date(zModelValue);\r\n }\r\n\r\n return valueDateTime\r\n }\r\n\r\n private setDateTimeToModel(thisComponent: any, valueDateTime: any) {\r\n // convert the date to ISOString\r\n const newDateTime = new Date(valueDateTime).toISOString();\r\n\r\n // assign to the zModel\r\n ZComponentHelper.setModelValue(thisComponent.data.Value, newDateTime, thisComponent.group);\r\n\r\n // set timeout do add event again after node clicked. if not it only work 1 time.\r\n setTimeout(function () {\r\n thisComponent.hoursOnClick(thisComponent);\r\n thisComponent.minutesOnClick(thisComponent);\r\n thisComponent.ampmOnClick(thisComponent);\r\n thisComponent.nowOnClick(thisComponent);\r\n }, 500);\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport { \r\n ZComponent, ZComponentHelper,\r\n ZField, ZGroup, ZComponentProperties, AuthService,\r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-zdiv',\r\n templateUrl: './zdiv.component.html',\r\n styleUrls: ['./zdiv.component.scss'],\r\n})\r\nexport class ZdivComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n componentProperties = new ZComponentProperties();\r\n\r\n constructor(\r\n private authService: AuthService\r\n ) { }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n ZComponentHelper.setFieldsDivClass(this.group._projectName, this.group.fieldName, this.data, this.authService);\r\n }\r\n\r\n\r\n ComponentIsVisible(field: ZField): any {\r\n return ZComponentHelper.ComponentIsVisible(field, this.group);\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input, OnDestroy } from \"@angular/core\";\r\nimport { FormGroup, FormControl, ValidatorFn } from \"@angular/forms\";\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { of, Subscription } from 'rxjs';\r\nimport { switchMap, delay } from 'rxjs/operators';\r\n\r\n/********** Component & Service **********/\r\nimport { ZComponentDebugService } from '../services/zcomponent.debug.service';\r\nimport { AuthService, FieldService, ZComponentHelper, ZGroup, ZField } from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: \"app-zform\",\r\n templateUrl: \"./zform.component.html\",\r\n styleUrls: [\"./zform.component.scss\"]\r\n})\r\nexport class ZformComponent implements OnInit, OnDestroy {\r\n @Input() group: ZGroup;\r\n @Input() fieldName: string;\r\n form: FormGroup;\r\n fields: Array<ZField>;\r\n isLoading = true;\r\n subscription: Subscription;\r\n fieldIndex = [];\r\n // @ViewChild('frm', {static: true}) form: NgForm;\r\n\r\n constructor(\r\n private authService: AuthService,\r\n private fieldService: FieldService,\r\n private debugService: ZComponentDebugService\r\n // private modalService: ModalService,\r\n // private router: Router\r\n ) { }\r\n\r\n ngOnInit() {\r\n if (!this.fieldName) {\r\n this.onInitNormal();\r\n // this.form = this.toFormGroup(this.group.fields);\r\n // this.group.form = this.form;\r\n // this.fields = this.group.fields;\r\n this.isLoading = false;\r\n } else {\r\n this.fieldService.getFormFieldCode(this.fieldName, 'FormField', this, 'fields').pipe(\r\n switchMap(fieldElements => {\r\n if (this.fieldName === 'debug') {\r\n return this.debugService.onStartDebugger(fieldElements, this);\r\n } else {\r\n this.group.fields = fieldElements;\r\n this.onInitNormal();\r\n }\r\n }),\r\n switchMap(() => {\r\n this.isLoading = false;\r\n if (this.group._isDebugging && this.group._debug.isLoading) {\r\n this.group._debug.isLoading = false;\r\n }\r\n return of([]);\r\n }),\r\n delay(500))\r\n .subscribe(() => {\r\n this.debugService.LoadGridData();\r\n this.debugService.loadWorkflowData();\r\n });\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.subscription) { // for debugger subscription\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n getGroup() {\r\n if (this.fieldName !== 'debug') {\r\n return this.group;\r\n } else {\r\n return this.group._debug;\r\n }\r\n }\r\n\r\n private onInitNormal() {\r\n this.form = this.toFormGroup(this.group.fields);\r\n this.group.form = this.form;\r\n this.fields = this.group.fields;\r\n ZComponentHelper.setFieldsDivClass(this.group._projectName, this.group.fieldName, this.fields, this.authService);\r\n }\r\n\r\n\r\n ComponentIsVisible(field: ZField): any {\r\n return ZComponentHelper.ComponentIsVisible(field, this.group);\r\n }\r\n\r\n private toFormGroup(fieldElements: Array<ZField>) {\r\n const formControls: { [key: string]: FormControl } = {};\r\n this.getFormControls(fieldElements, formControls);\r\n const newFormGroup = new FormGroup(formControls);\r\n return newFormGroup;\r\n }\r\n\r\n private addToFieldIndex(field: ZField) {\r\n if (!field.Name) {\r\n console.error('Field Name undefined: ', field);\r\n }\r\n if (field.Name && !this.fieldIndex.includes(field.Name)) {\r\n this.fieldIndex.push(field.Name);\r\n } else {\r\n console.error('Field Name Duplication: ' + field.Name + '; ', field);\r\n }\r\n }\r\n\r\n\r\n private getFormControls(\r\n fieldArray: Array<ZField>,\r\n formControls: { [key: string]: FormControl }\r\n ) {\r\n fieldArray.forEach(field => {\r\n this.addToFieldIndex(field);\r\n if (typeof field.Value === \"string\" && field.Value.indexOf(\".\") !== -1) {\r\n if (['zgrid', 'ztree', 'zimg', 'textareajson'].indexOf(field.Type) === -1) {\r\n console.warn(\"FormControl - invalid field value\", field.Value);\r\n }\r\n } else {\r\n if (Array.isArray(field.Value)) {\r\n this.getFormControls(field.Value, formControls);\r\n } else {\r\n const isFormControl = ZComponentHelper.isFormControl(field);\r\n const isVisible = ZComponentHelper.isVisibleFormControl(this, field);\r\n const isRequired = ZComponentHelper.isRequiredFormControl(this, field);\r\n if (isFormControl === true) {\r\n const validators: ValidatorFn[] = ZComponentHelper.getValidators(field, isVisible, isRequired);\r\n formControls[field.Value] = new FormControl(\r\n this.group.zModel[field.Value], validators\r\n );\r\n if (ZComponentHelper.hasCCField(field.Type)) {\r\n const ccValidators: ValidatorFn[] = ZComponentHelper.getCCValidators(field, isVisible, isRequired);\r\n formControls[field.CCValue] = new FormControl(\r\n this.group.zModel[field.CCValue],\r\n ccValidators\r\n );\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n private getReadOnlyValue(field: ZField) {\r\n const readOnlyValue = ZComponentHelper.getGroupEvalValue.call(this, field.ReadOnly);\r\n if (typeof readOnlyValue === 'function') {\r\n return readOnlyValue();\r\n }\r\n return readOnlyValue;\r\n }\r\n\r\n trackByFn(index: number, item): number {\r\n //return item['Type'] + '-' + item['Name'];\r\n return index;\r\n }\r\n\r\n // private getValue(field: ZField) {\r\n // if (field.Type.indexOf('date') !== -1) {\r\n // return new Date(this.group.zModel[field.Value]);\r\n // } else {\r\n // return this.group.zModel[field.Value];\r\n // }\r\n // }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport { \r\n ZComponent, ZComponentHelper,\r\n ZField, ZGroup, ZComponentProperties\r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-zgauge',\r\n templateUrl: './zgauge.component.html',\r\n styleUrls: ['./zgauge.component.scss'],\r\n})\r\nexport class ZgaugeComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n isLoading = true;\r\n componentProperties = new ZComponentProperties();\r\n private value = 0;\r\n private title = \"\";\r\n private color = [];\r\n private majorTicks = [{ visible: true, color: '#0000ff' }];\r\n private minorTicks = [{ visible: true, color: '#0000ff' }];\r\n private startAngle = 0;\r\n private endAngle = 180;\r\n private minValue = 0;\r\n private maxValue = 200;\r\n\r\n options = {\r\n value: this.value,\r\n title: this.title,\r\n scaleMax: 50,\r\n colors: this.color,\r\n transitions: false,\r\n majorTicks: this.majorTicks,\r\n minorTicks: this.minorTicks,\r\n minValue: this.minValue,\r\n maxValue: this.maxValue,\r\n reverse: false,\r\n startAngle: this.startAngle,\r\n endAngle: this.endAngle,\r\n rangePlaceholderColor: '#e6e5e5',\r\n labelsColor: '#0000ff',\r\n rangeFrom: 0,\r\n rangeTo: 100,\r\n rangeColor: '#ff6358',\r\n rangeLineCap: 'round',\r\n showLabels: true,\r\n rangeSize: 10,\r\n };\r\n\r\n // fieldElement01 = [{\r\n // Name: 'gauge01',\r\n // Type: 'zgauge',\r\n // Value: 'group.gauge01Value',\r\n // title: 'group.gauge01Title',\r\n // majorTicks: 'group.gauge01MajorTicks',\r\n // minorTicks: 'group.gauge01MinorTicks',\r\n // minValue:'group.gauge01MinValue',\r\n // maxValue:'group.gauge01MaxValue',\r\n // Max: 100,\r\n // Color: 'group.gauge01Color',\r\n // DivClass: \"col-md-12 col-md-6\",\r\n // Visible: true,\r\n // transitions:false,\r\n // reverse:false,\r\n // startAngle: 'group.gauge01StartAngle',\r\n // endAngle: 'group.gauge01EndAngle',\r\n // rangePlaceholderColor:'#e6e5e5',\r\n // labelsColor:'#0000ff',\r\n // rangeFrom:0,\r\n // rangeTo:50,\r\n // rangeColor:'#ff6358',\r\n // rangeLineCap:'round',\r\n // showLabels: true,\r\n // rangeSize:10,\r\n // }];\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n if (this.data.Options) {\r\n const optionType = typeof (this.data.Options);\r\n if (optionType === 'object') {\r\n Object.assign(this.options, this.data.Options);\r\n } else if (optionType === 'string') {\r\n const optionValue = ZComponentHelper.getGroupEvalValue.call(this, this.data.Options);\r\n if (typeof (optionValue) === 'object') {\r\n Object.assign(this.options, optionValue);\r\n }\r\n }\r\n }\r\n\r\n this.getFieldDeclarationForSetup(this.data, this.options);\r\n this.isLoading = false;\r\n }\r\n\r\n private getFieldDeclarationForSetup(field: ZField, options: any) {\r\n options.value = ZComponentHelper.getGroupEvalValue.call(this, field.Value) || options.value;\r\n options.title = ZComponentHelper.getGroupEvalValue.call(this, field.Title) || options.title;\r\n options.scaleMax = field.Max || options.scaleMax;\r\n options.minValue = ZComponentHelper.getGroupEvalValue.call(this, field.MinValue) || options.minValue;\r\n options.maxValue = ZComponentHelper.getGroupEvalValue.call(this, field.MaxValue) || options.maxValue;\r\n options.colors = ZComponentHelper.getGroupEvalValue.call(this, field.Color) || options.colors;\r\n options.transitions = field.Transitions || options.transitions;\r\n options.majorTicks = ZComponentHelper.getGroupEvalValue.call(this, field.MajorTicks) || options.majorTicks;\r\n options.showLabels = field.ShowLabels || options.showLabels;\r\n options.style = field.Style || options.style;\r\n options.minorTicks = ZComponentHelper.getGroupEvalValue.call(this, field.MinorTicks) || options.minorTicks;\r\n options.reverse = field.Reverse || options.reverse;\r\n options.startAngle = ZComponentHelper.getGroupEvalValue.call(this, field.StartAngle) || options.startAngle;\r\n options.endAngle = ZComponentHelper.getGroupEvalValue.call(this, field.EndAngle) || options.endAngle;\r\n options.rangePlaceholderColor = field.RangePlaceholderColor || options.rangePlaceholderColor;\r\n options.rangeFrom = ZComponentHelper.getGroupEvalValue.call(this, field.RangeFrom) || options.rangeFrom;\r\n options.rangeTo = ZComponentHelper.getGroupEvalValue.call(this, field.RangeTo) || options.rangeTo;\r\n options.rangeColor = field.RangeColor || options.rangeColor;\r\n options.rangeLineCap = field.RangeLineCap || options.rangeLineCap;\r\n options.rangeSize = field.RangeSize || options.rangeSize;\r\n options.GaugeAlignment = ZComponentHelper.getGroupEvalValue.call(this, field.GaugeAlignment) || options.GaugeAlignment;\r\n options.paddingValue = options.value.toString() === 'NaN' ? options.GaugeAlignment : '0%';\r\n }\r\n\r\n alignment() {\r\n const alignmentStyle = {\r\n \"padding-right\": this.options[\"paddingValue\"]\r\n };\r\n\r\n return alignmentStyle;\r\n }\r\n\r\n public setEnable(status: boolean) {\r\n // const fc = this.group.form.controls[this.data.Value];\r\n // status ? fc.enable() : fc.disable();\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible(status: boolean) {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire(status: boolean) {\r\n this.componentProperties.isRequired = status;\r\n }\r\n\r\n public setData(gData: any) {\r\n this.getFieldDeclarationForSetup(this.data, this.options);\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input, OnDestroy, ViewChild } from \"@angular/core\";\r\nimport { FormGroup, FormBuilder, Validators, FormControl, FormArray, ValidatorFn } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { Observable, of, Subject, Subscription } from \"rxjs\";\r\nimport { tap, delay, map, switchMap, concatMap } from \"rxjs/operators\";\r\nimport { ExcelExportData } from '@progress/kendo-angular-excel-export';\r\nimport { GridItem, SelectableSettings } from '@progress/kendo-angular-grid';\r\nimport { SortDescriptor, State, process } from \"@progress/kendo-data-query\";\r\nimport { TooltipDirective } from '@progress/kendo-angular-tooltip';\r\nimport {\r\n GridDataResult,\r\n DataStateChangeEvent,\r\n PageChangeEvent,\r\n CellClickEvent,\r\n GridComponent,\r\n RowArgs,\r\n ColumnReorderEvent\r\n} from \"@progress/kendo-angular-grid\";\r\n\r\n/********** Component & Service **********/\r\n// import { environment } from \"src/environments/environment\";\r\nimport { MainService } from \"../services/main.service\";\r\nimport { ZGridBindingDirective } from \"./zgrid.binding.directive\";\r\nimport {\r\n AuthService, WebApiService, ToastService, GridCaching,\r\n ZField, ZGroup, ZComponent, ZComponentProperties, ZComponentHelper, ZComponentOutputEvent, ZCoreService,\r\n ZGridStatePersistingService, ZGridPostApiParams, ZGridSettings, ZGridColumnSettings, ZGridCustomColumn, StorageSessionService\r\n} from 'mmhglobal-zcore';\r\n\r\n\r\nexport interface ZGrid {\r\n params: ZGridPostApiParams;\r\n state: State;\r\n columns: any[];\r\n paginationApiPostUrl: string;\r\n data: ZField;\r\n group: ZGroup;\r\n zgrid: ZGridBindingDirective;\r\n inlineEditedFormGroups: FormGroup;\r\n getGridData: () => any[];\r\n getData: () => void;\r\n clearData: () => void;\r\n setData: (data: any) => void;\r\n setColumns: (columnFieldsName: string, columns: Array<ZGridCustomColumn>) => void;\r\n}\r\n\r\n@Component({\r\n selector: \"app-zgrid\",\r\n templateUrl: \"./zgrid.component.html\",\r\n styleUrls: [\"./zgrid.component.scss\"]\r\n})\r\nexport class ZgridComponent implements ZComponent, OnInit, OnDestroy {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n @ViewChild(TooltipDirective) public tooltipDir: TooltipDirective;\r\n // @ViewChild(ZGridBindingDirective, { static: false }) zgrid: ZGridBindingDirective;\r\n zgrid: any = null;\r\n oauthUrl: string = null;\r\n\r\n gridData: GridDataResult;\r\n selectableSettings: SelectableSettings;\r\n mySelection: any[] = [];\r\n inlineEditedFormGroups: FormGroup;\r\n public formGroup: FormGroup; // for kendo grid built-in\r\n public previousNext: boolean;\r\n\r\n componentProperties = new ZComponentProperties();\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention, no-underscore-dangle, id-blacklist, id-match\r\n _state: State = {\r\n skip: 0,\r\n take: 10\r\n };\r\n\r\n params: ZGridPostApiParams = {\r\n referId: null,\r\n pageNo: 0,\r\n pageSize: 20,\r\n sortColumnName: \"\",\r\n sortOrder: \"\",\r\n sortColumnNames: [],\r\n sortOrders: [],\r\n filterParams: [],\r\n parameters: \"\",\r\n filters: \"\",\r\n columns: \"\",\r\n grantType: 4\r\n };\r\n\r\n gridSubject: Subject<any> = new Subject<any>();\r\n\r\n private widthReduce: number;\r\n private heightReduce: number;\r\n private gData: any;\r\n\r\n columns: any[];\r\n editableColumns: any[];\r\n subscription: Subscription;\r\n pageSizes: boolean | any[];\r\n isLoading: boolean;\r\n gridStorageKey: string;\r\n gridDefaultStateExist: boolean = false;\r\n isNew: boolean = true;\r\n private editedRowIndex: number;\r\n\r\n constructor(\r\n private activatedRoute: ActivatedRoute,\r\n private router: Router,\r\n private formBuilder: FormBuilder,\r\n private authService: AuthService,\r\n private webApiService: WebApiService,\r\n private zGridStatePersistingService: ZGridStatePersistingService,\r\n private toastService: ToastService,\r\n private zcoreService: ZCoreService,\r\n private storageService: StorageSessionService,\r\n private mainService: MainService\r\n ) {\r\n this.oauthUrl = this.zcoreService.getEnvironment().e1OauthUrl + \"/\";\r\n this.allResults = this.allResults.bind(this);\r\n this.refreshData = this.refreshData.bind(this);\r\n this.clearData = this.clearData.bind(this);\r\n this.saveGridSettings = this.saveGridSettings.bind(this);\r\n this.restoreGridSettings = this.restoreGridSettings.bind(this);\r\n }\r\n\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n // Grid saved setting key(Used in CookieStore & LocalStorage)\r\n this.gridStorageKey = 'ionic-field::' + this.authService.e1Token.userName + '::' + this.data.Name + '::' + this.router.url;\r\n\r\n of(true)\r\n .pipe(\r\n //concatMap(() => {\r\n // // try get gridsetting from cookiestore\r\n // return this.mainService.cookieStoreGet(this.gridStorageKey, this.authService.e1Token.access_token);\r\n //}),\r\n //switchMap(savedGridCache => {\r\n // if (savedGridCache) { \r\n // // Keep the gridSetting from cookiestore to localStorage\r\n // this.zGridStatePersistingService.set(this.gridStorageKey, savedGridCache);\r\n // return of(true);\r\n // }\r\n // return of(false);\r\n //}),\r\n switchMap(() => {\r\n // Grid default setting\r\n this.columns = [];\r\n this.widthReduce = this.data.WidthReduce || 60;\r\n this.heightReduce = this.data.HeightReduce || 560;\r\n this._state.take = this.data.PageSize || 20;\r\n this.pageSizes = [20, 50, 100, 200, 500];\r\n this.previousNext = this.data['EnablePreviousNextButton'] || false;\r\n\r\n // [Mobile] Disable PageSize\r\n if (this.data.PageSizes === false || ZComponentHelper.isMobileScreen()) {\r\n this.pageSizes = false;\r\n }\r\n\r\n // Grid Selection column\r\n if (this.data.SelectOptions) {\r\n this.selectableSettings = {\r\n // checkboxOnly: this.checkboxOnly,\r\n mode: this.data.SelectOptions === 'single' ? 'single' : 'multiple'\r\n };\r\n }\r\n\r\n // bind this to group using Grid value\r\n if (this.data.Value.startsWith('group.')) {\r\n const gridValue = this.data.Value.slice(6);\r\n this.group[gridValue] = this;\r\n }\r\n\r\n // clear any Subscription\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n // if no ResourceURL, still generate Column first, then insert grid data using DataSource\r\n if (!this.data.ResourceURL) {\r\n this.generateGridColumns().subscribe(() => {\r\n if (this.data.DataSource && this.data.SkipDirective) {\r\n const ds = ZComponentHelper.getGroupValue(\r\n this.data.DataSource,\r\n this.group\r\n );\r\n this.setData(ds);\r\n }\r\n });\r\n }\r\n\r\n // subscribe to set grid setting from directive to component\r\n this.subscription = this.gridSubject.subscribe(grid => {\r\n this.zgrid = grid;\r\n this._state = this.zgrid.state;\r\n this.columns = this.zgrid.gridColumns;\r\n if (this.zgrid && this.zgrid.grid.data) {\r\n this.gridData = Object.assign({}, this.zgrid.grid.data);\r\n this.createFormControls();\r\n }\r\n });\r\n\r\n // Check Grid setting exist in localstorage\r\n this.stateExist();\r\n\r\n // Set Filter SessionKey\r\n if (this.data['SaveFilter']) {\r\n this.setGridSessionKey(this.group);\r\n }\r\n return of(true);\r\n }),\r\n tap(() => {\r\n this.gridCallback(this.group);\r\n }),\r\n ).subscribe();\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n /* Start Grid State (pagination, sortable, filter, ordering) */\r\n get state() {\r\n return this._state;\r\n }\r\n\r\n private stateExist() {\r\n const userGridState = this.zGridStatePersistingService.get(this.gridStorageKey);\r\n\r\n if (userGridState) {\r\n this.gridDefaultStateExist = true;\r\n }\r\n else {\r\n this.gridDefaultStateExist = false;\r\n }\r\n }\r\n\r\n public dataStateChange(state: DataStateChangeEvent): void {\r\n if (this.zgrid) {\r\n this.zgrid.dataStateChange(state);\r\n } else {\r\n this.gridData = process(this.gData, state);\r\n this.createFormControls();\r\n }\r\n }\r\n\r\n public filterable(value: any) {\r\n if (value === false) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public sortable(value: any) {\r\n if (value === false) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public locked(colSetting: any) {\r\n if (colSetting['pinnedLeft'] == true) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /* End Grid State (pagination, sortable, filter, ordering) */\r\n\r\n /* Start Grid Styling, Display */\r\n public getGridStyle() {\r\n return {\r\n \"height.px\": this.getGridHeight(), // window.innerHeight - this.heightReduce, // 450,\r\n \"width.px\": window.innerWidth - this.widthReduce\r\n }; // \"width.px\": this.innerWidth - 35\r\n }\r\n\r\n private getGridHeight() {\r\n const gridHeight = window.innerHeight - this.heightReduce;\r\n return (gridHeight < 250) ? 250 : gridHeight;\r\n // const v = ZComponentHelper.isMobileScreen();\r\n // if(v){\r\n // const h = window.innerHeight - this.heightReduce;\r\n // return (h < 250) ? 250 : h;\r\n // }else{\r\n // return \"auto\";\r\n // } \r\n }\r\n /* End Grid Styling, Display */\r\n\r\n\r\n /* Start Grid Columns */\r\n public isSelectOption() {\r\n let selectOptionExist = false;\r\n if (this.data.SelectOptions) {\r\n this.selectableSettings = {\r\n checkboxOnly: false,\r\n mode: (this.data.SelectOptions == \"multiple\") ? \"multiple\" : \"single\"\r\n };\r\n selectOptionExist = true;\r\n }\r\n return selectOptionExist;\r\n }\r\n\r\n public setColumns(columnName: string, columns: Array<ZGridCustomColumn>) {\r\n this.group[columnName] = this.wrapColumnNamesInFieldElement(columns);\r\n this.generateGridColumns().subscribe();\r\n }\r\n\r\n private wrapColumnNamesInFieldElement(columnList: Array<ZGridCustomColumn>) {\r\n return of(columnList.map(c => {\r\n const isHidden: boolean = c.Hidden;\r\n return {\r\n Name: c.Name,\r\n Value: c.Code,\r\n Type: c.Type,\r\n gridColVisible: !isHidden,\r\n width: 100 + c.Name.length * 4,\r\n enableFiltering: false,\r\n enableSorting: true,\r\n enablePinning: true,\r\n DivClass: \"col-xs-12 col-sm-6\",\r\n IsEditableInGrid: c.Editable\r\n };\r\n }));\r\n }\r\n\r\n private generateGridColumns(): Observable<any> {\r\n const gridSetting = this.getGridSettings();\r\n\r\n const columnFields$: Observable<any> = ZComponentHelper.getGroupValue(\r\n this.data.ColumnFields,\r\n this.group\r\n );\r\n if (!this.data.ColumnFields) {\r\n console.warn('Invalid/Empty grid(' + this.data.Name + ') columnField');\r\n }\r\n return columnFields$.pipe(\r\n tap(data => {\r\n if (!data) {\r\n console.warn('Invalid/Empty grid(' + this.data.Name + ') data to generate column');\r\n }\r\n const fieldName = this.data['FieldElementName'];\r\n this.columns = [];\r\n ZComponentHelper.getGridColumns(data,\r\n this.columns,\r\n this.group,\r\n this.authService,\r\n fieldName,\r\n gridSetting,\r\n null,\r\n this.data);\r\n }),\r\n //switchMap(() => {\r\n // //Get Session\r\n // return this.getGridSessionFilter(this.grp, this);\r\n //}),\r\n //switchMap(() => {\r\n // //Before get grid data\r\n // return this.beforeGridGetData(this.grp, this);\r\n //}),\r\n //switchMap(() => {\r\n // //Set grid data\r\n // return this.setGridSessionFilter(this.grp, this);\r\n //})\r\n );\r\n }\r\n\r\n /* End Grid Columns */\r\n\r\n private editModel(dataItem: any) {\r\n if (this.data.EditClickURL) {\r\n // Edit incell field\r\n const colFields = ZComponentHelper.getGroupValue(this.data.ColumnFields, this.group);\r\n this.group.subject.next({\r\n type: \"zgrid-cellClick\",\r\n target: this.data.EditClickURL,\r\n data: dataItem,\r\n columnFields$: colFields\r\n } as ZComponentOutputEvent);\r\n }\r\n else {\r\n // When clicked route to page\r\n this.router.navigate([this.group.editModelURL, dataItem.Id, 'edit'], {\r\n relativeTo: this.activatedRoute\r\n });\r\n }\r\n }\r\n\r\n public gridCallback(group: ZGroup) {\r\n if (this.data['AfterloadCallback']) {\r\n const me = Object.assign({}, this);\r\n\r\n this.group.subject.next({\r\n type: \"zgrid-AfterloadCallback\",\r\n target: this.data['AfterloadCallback'],\r\n data: me\r\n } as ZComponentOutputEvent);\r\n }\r\n }\r\n\r\n public setData = (gData: any) => {\r\n this.gridData = {\r\n data: gData,\r\n total: (gData ? gData.length : 0)\r\n };\r\n this.gData = gData;\r\n\r\n if (this.zgrid) {\r\n this.zgrid.grid['pageSize'] = gData.length; // set grid size\r\n }\r\n\r\n if (!!this.data.ShowRecordNumber) {\r\n if (this.gridData.data) {\r\n this.gridData.data.forEach((d, i) => {\r\n d.GridNo = i + 1;\r\n });\r\n }\r\n }\r\n\r\n if (this.gData) {\r\n this.createFormControls();\r\n }\r\n }\r\n\r\n public getData() {\r\n if (this.zgrid) {\r\n this.zgrid.getDataBinding();\r\n }\r\n\r\n if (this.data.SkipDirective) {\r\n this.gridData = process(this.gData, this.state);\r\n this.createFormControls();\r\n }\r\n }\r\n\r\n public getGridData() {\r\n return this.gData;\r\n }\r\n\r\n\r\n public getFormControl(rowIndex: number, property: string) {\r\n const formArray: FormArray = this.inlineEditedFormGroups.get('items') as FormArray;\r\n const formItem = formArray.at(rowIndex);\r\n\r\n if (formItem) {\r\n return formItem.get(property);\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n\r\n private createFormControls() {\r\n if (this.columns) {\r\n // only create if there is at least 1 editable column\r\n if (this.columns.find(c => c.isEditableInGrid) === undefined) {\r\n return;\r\n }\r\n\r\n this.inlineEditedFormGroups = new FormGroup({ items: new FormArray([]) });\r\n\r\n if (Array.isArray(this.gridData.data)) {\r\n this.gridData.data.forEach(d => {\r\n const items = {};\r\n this.columns.forEach(c => {\r\n items[c.field] = new FormControl(d[c.field]);\r\n });\r\n const formGroup = new FormGroup(items);\r\n (<FormArray>this.inlineEditedFormGroups.get(\"items\")).push(formGroup);\r\n });\r\n }\r\n }\r\n }\r\n\r\n public createFormGroup(dataItem: any, fieldName: any): FormGroup {\r\n return this.formBuilder.group({\r\n [fieldName]: dataItem[fieldName]\r\n });\r\n }\r\n\r\n public getGroupValue(value: string, group: ZGroup) {\r\n return ZComponentHelper.getGroupValue(this.data.Value, this.group);\r\n }\r\n\r\n\r\n\r\n public onBtnClick(event: any, colSetting: any, rowData: any, cellData: string) {\r\n this.onNavigateTo(event, colSetting, rowData, cellData);\r\n }\r\n\r\n public cellClickHandler(event: CellClickEvent) {\r\n const disableAllColumnCellClickHandler = this.data.DisableCellClickHandler ? this.data.DisableCellClickHandler : false;\r\n const isCommandColumn = event.column.constructor.name == 'CommandColumnComponent' ? true : false;\r\n\r\n if (!disableAllColumnCellClickHandler && !isCommandColumn) {\r\n const inCellEditable = this.data.InCellEditable ? this.data.InCellEditable : false;\r\n if (inCellEditable) {\r\n this.editableColumns = this.columns.filter(s => s.isEditableInDataItem === true);\r\n if (!!this.editableColumns) {\r\n this.editableColumns.map(s => event.sender.editCell(event.rowIndex, event.columnIndex, this.createFormGroup(event.dataItem, s.field)));\r\n }\r\n } else {\r\n console.log(\"cellClick event: \", event);\r\n if (this.data.OnItemClick) {\r\n const func = ZComponentHelper.getGroupEvalValue.call(this, this.data.OnItemClick);\r\n if (typeof func === 'function') {\r\n const callFunc = func.bind(this.group.ctrlScope);\r\n callFunc(event);\r\n }\r\n return;\r\n }\r\n\r\n this.editModel(event.dataItem);\r\n }\r\n }\r\n }\r\n\r\n public editCellCloseHandler(args: any) {\r\n const { formGroup, dataItem } = args;\r\n if (!formGroup.valid) {\r\n args.preventDefault();\r\n } else if (formGroup.dirty) {\r\n this.editableColumns = this.columns.filter(s => s.isEditableInDataItem === true);\r\n this.editableColumns.map(s =>\r\n Object.assign(dataItem, { [s.field]: formGroup.value[s.field] }));\r\n this.mySelection.map(s => (s.Id === dataItem.Id) ? Object.assign(s, dataItem) : null);\r\n }\r\n }\r\n\r\n\r\n public onNavigateTo(event: any, clickAction: any, rowData: any, cellData: string) {\r\n // debugger;\r\n // const n = colSetting.navigateTo.replace('/:id', cellData);\r\n const n = ZComponentHelper.getGroupEvalValue.call(this, clickAction.Click);\r\n if (n) {\r\n event.stopPropagation();\r\n this.group.subject.next({\r\n type: 'zgrid-onNavigateTo',\r\n target: clickAction.Click,\r\n rowData: rowData,\r\n data: cellData\r\n } as ZComponentOutputEvent);\r\n }\r\n }\r\n\r\n public showTooltip(e: MouseEvent): void {\r\n const element = e.target as HTMLElement;\r\n\r\n let isCommandColumn = false;\r\n element.classList.forEach(data => {\r\n if (data == 'k-command-cell') {\r\n isCommandColumn = true;\r\n }\r\n });\r\n\r\n if (((element.nodeName === 'TD' || element.nodeName === 'TH') && element.offsetWidth < element.scrollWidth) && !isCommandColumn) {\r\n this.tooltipDir.toggle(element);\r\n }\r\n else {\r\n this.tooltipDir.hide();\r\n }\r\n }\r\n\r\n public rowSelectionKey(context: RowArgs): any {\r\n return context.dataItem;\r\n }\r\n\r\n public getSeletectedValues(): any {\r\n return this.mySelection;\r\n }\r\n\r\n public refreshGrid(event: ZComponentOutputEvent, group: ZGroup, me: any) {\r\n const _gridOptionSegment = event.target.trim().split('.');\r\n const _gridOption = _gridOptionSegment[1];\r\n if (_gridOption) {\r\n const zgridControl = group[_gridOption] as ZGrid;\r\n if (zgridControl) {\r\n zgridControl.getData();\r\n } else {\r\n console.log('Unable to find grid value: ' + _gridOption);\r\n }\r\n } else {\r\n console.log('Invalid refreshGrid event: ', event);\r\n }\r\n }\r\n\r\n public refreshData() {\r\n this.getData();\r\n }\r\n\r\n public clearData() {\r\n this.zgrid.clearData();\r\n }\r\n\r\n\r\n public allResults(): Observable<ExcelExportData> {\r\n const _zgridControl = this.zgrid as ZGrid;\r\n const _zgridComponent = this.zgrid.grid as GridComponent;\r\n const _data = _zgridComponent.data as GridDataResult;\r\n\r\n const paginationApiPostUrl = _zgridControl.paginationApiPostUrl;\r\n\r\n // Need to clone, if not will affect the grid params.\r\n const params = Object.assign({}, this.params);\r\n params.pageNo = 0;\r\n params.pageSize = _data.total;\r\n\r\n return this.webApiService.httpPost$(paginationApiPostUrl, params).pipe(\r\n map((data: any) => {\r\n const result: ExcelExportData = {\r\n data: process(data.dataSet, {}).data\r\n };\r\n\r\n return result;\r\n })\r\n );\r\n }\r\n\r\n public getClass(dataItem: any, col: any) {\r\n let ngClass = \"gridCell \";\r\n if (col.fieldType === 'number' || col.fieldType === 'currency' || col.fieldType === 'znumeric') {\r\n ngClass += \"rightAligned \";\r\n }\r\n\r\n if (dataItem[col.field + '_Class']) {\r\n ngClass += dataItem[col.field + '_Class'] + \" \";\r\n }\r\n\r\n if (col.Class) {\r\n ngClass += col.Class + \" \";\r\n }\r\n\r\n return ngClass;\r\n }\r\n\r\n public getFormat(col: any, defaultFormat?: any) {\r\n let format = \"\";\r\n if (col.FormatOptions === undefined) {\r\n format = defaultFormat ? defaultFormat : \"\";\r\n } else {\r\n const formatArr = col.FormatOptions.split(\".\")\r\n let dp = 0;\r\n\r\n if (formatArr.length > 1) {\r\n dp = formatArr[1].length;\r\n }\r\n\r\n if (dp !== 0) {\r\n format = \"1.\" + dp + \"-\" + dp;\r\n }\r\n }\r\n return format;\r\n }\r\n\r\n\r\n public setHeaderText(columnName: string, newHeaderTitle: string) {\r\n const gridColumns = this.columns;\r\n gridColumns.forEach((col: any) => {\r\n if (col.Name === columnName) {\r\n col.title = newHeaderTitle;\r\n }\r\n });\r\n }\r\n\r\n public setGridIsLoading(triggered: boolean) {\r\n this.isLoading = triggered;\r\n }\r\n\r\n public setGridSessionKey(group: ZGroup) {\r\n if (group[\"GridStorageKey\"]) {\r\n return;\r\n }\r\n else {\r\n group[\"GridStorageKey\"] = 'zgrid_' + group.resourceURL + '_' + this.data.Value + '::' + this.authService.e1Token.userName;\r\n }\r\n\r\n }\r\n\r\n public trackBy(index: number, item: GridItem): any {\r\n //console.log(item.data['Id'] || index);\r\n return index;\r\n }\r\n\r\n /* Grid configuration function */\r\n public saveGridSettings(): void {\r\n const _zgridComponent = this.zgrid.grid as GridComponent;\r\n const _columns = _zgridComponent.columns;\r\n\r\n of(this.columns)\r\n .pipe(\r\n switchMap(() => {\r\n const configValue: ZGridColumnSettings[] = _columns.toArray().map(item => {\r\n const _zGridColumnSettings: ZGridColumnSettings = Object.keys(item)\r\n .filter(propName => {\r\n return !propName.toLowerCase().includes('template')\r\n })\r\n .reduce((acc, curr) => (\r\n {\r\n ...acc,\r\n ...{ [curr]: item[curr] }\r\n })\r\n , {} as ZGridColumnSettings);\r\n return _zGridColumnSettings;\r\n });\r\n\r\n // remove extra element form array\r\n configValue.forEach(item => {\r\n delete item['headerStyle'];\r\n delete item['__ngContext__'];\r\n });\r\n\r\n const gridSetting: ZGridSettings = {\r\n // state: this.state,\r\n columnsConfig: configValue\r\n };\r\n\r\n // Find any setting from localstorage and update, if not just add in.\r\n let _arrGridCaching: GridCaching[] = this.zGridStatePersistingService.get(this.gridStorageKey);\r\n let _gridConfig: GridCaching = null;\r\n if (_arrGridCaching && _arrGridCaching[0]) {\r\n _gridConfig = _arrGridCaching.find(x => x['dataFormFields'] === this.gridStorageKey);\r\n\r\n if (_gridConfig) {\r\n _gridConfig.gridSettings = gridSetting;\r\n }\r\n }\r\n else {\r\n _arrGridCaching = [];\r\n }\r\n\r\n if (!_gridConfig) {\r\n _gridConfig = {\r\n dataFormFields: this.gridStorageKey,\r\n gridSettings: gridSetting\r\n };\r\n\r\n _arrGridCaching.push(_gridConfig);\r\n }\r\n return _arrGridCaching;\r\n }),\r\n concatMap(gridCache => {\r\n // Save grid caching to localstorage\r\n this.zGridStatePersistingService.set(this.gridStorageKey, gridCache);\r\n // Save to CookieStore\r\n return this.mainService.cookieStorePost(this.gridStorageKey, gridCache);\r\n }),\r\n tap(savedGridCache => {\r\n // check is saved state exist to enable/hide restore button\r\n this.stateExist();\r\n }),\r\n tap(() => {\r\n // Alert\r\n this.toastService.show('Grid Setting Saved', \"top\", true, 2000, 'success');\r\n })\r\n ).subscribe();\r\n }\r\n\r\n public restoreGridSettings() {\r\n of(true)\r\n .pipe(\r\n switchMap(() => {\r\n // Clear localstorage grid setting\r\n this.zGridStatePersistingService.remove(this.gridStorageKey);\r\n return of(true)\r\n }),\r\n switchMap(() => {\r\n // delete cookiestore gridSetting by storagekey as name\r\n return this.mainService.cookieStoreDeleteMultiple(this.gridStorageKey);\r\n }),\r\n concatMap(() => {\r\n // Use original column setting\r\n return this.generateGridColumns();\r\n }),\r\n tap(() => {\r\n // check is saved state exist\r\n this.stateExist();\r\n // Alert\r\n this.toastService.show('Grid Setting Restored', \"top\", true, 2000, 'success');\r\n })\r\n ).subscribe();\r\n }\r\n\r\n private getGridSettings(): ZGridColumnSettings[] {\r\n const _storageKey = 'ionic-field::' + this.authService.e1Token.userName + '::' + this.data.Name + '::' + this.router.url;\r\n\r\n // Find any setting from localstorage..\r\n let _arrGridCaching: GridCaching[] = this.zGridStatePersistingService.get(_storageKey);\r\n if (_arrGridCaching) {\r\n const _gridCaching: GridCaching = JSON.parse(_arrGridCaching['Value']);\r\n if (_gridCaching) {\r\n return _gridCaching.gridSettings.columnsConfig.sort((a, b) => a.orderIndex - b.orderIndex);\r\n }\r\n }\r\n }\r\n\r\n /* Inline setting */\r\n public getInlineField(value: any) {\r\n return this.columns.find(x => x.Value === value);\r\n }\r\n\r\n public getInlineForm(rowIndex: number) {\r\n const formArray: FormArray = this.inlineEditedFormGroups.get('items') as FormArray;\r\n return formArray.at(rowIndex)\r\n }\r\n\r\n public getFormControlData(value: any) {\r\n return this.inlineEditedFormGroups.value.items;\r\n }\r\n\r\n\r\n /* Event */\r\n public beforeGridGetData(group: ZGroup, me: any) {\r\n console.warn(\"beforeDataBinding triggered\");\r\n if (!group.beforeGridGetData) {\r\n console.warn(\"group.beforeDataBinding is undefined\");\r\n return of(true);\r\n }\r\n return group.beforeGridGetData(group, me);\r\n }\r\n\r\n public async getGridSessionFilter(group: ZGroup, me: any) {\r\n if (!group[\"GridStorageKey\"]) {\r\n return null;\r\n }\r\n const StorageKey = group[\"GridStorageKey\"];\r\n\r\n if (this.storageService) {\r\n await this.storageService.get(StorageKey)\r\n .then(data => {\r\n if (!data || !data.value || data.value === \"null\") {\r\n return null;\r\n }\r\n else {\r\n const result = JSON.parse(data.value);\r\n this.state.filter = JSON.parse(result[\"StateFilter\"]);\r\n this.params.filterParams = JSON.parse(result[\"FilterParams\"]);\r\n\r\n this.state.filter.filters.forEach((stateFilter: any) => {\r\n if (stateFilter.field.includes('UTC')) {\r\n stateFilter.value = new Date(stateFilter.value);\r\n }\r\n });\r\n\r\n return data;\r\n }\r\n });\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n\r\n public setGridSessionFilter(group: ZGroup, me: any) {\r\n if (!group[\"GridStorageKey\"]) {\r\n return null;\r\n }\r\n const StorageKey = group[\"GridStorageKey\"];\r\n\r\n let lstGridFilter: { [key: string]: string } = {};\r\n\r\n if (me.state.filter && this.storageService && this.data['SaveFilter']) {\r\n //list of data for StateFilter and FilterParams\r\n lstGridFilter = { \"StateFilter\": JSON.stringify(me.state.filter), \"FilterParams\": JSON.stringify(me.params.filterParams) }\r\n //create session storage\r\n this.storageService.set(StorageKey, JSON.stringify(lstGridFilter));\r\n }\r\n }\r\n\r\n /* Available Functions */\r\n public setEnable = (status: boolean) => {\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n\r\n /* onchange Events */\r\n public filterChange(event: any): void {\r\n if (this.zgrid) {\r\n this.zgrid.filterChange(event);\r\n }\r\n }\r\n\r\n public pageChange(event: PageChangeEvent): void { \r\n if (this.zgrid) {\r\n this.zgrid.pageChange(event);\r\n }\r\n }\r\n\r\n public sortChange(sort: SortDescriptor[]): void {\r\n if (this.zgrid) {\r\n this.zgrid.sortChange(sort);\r\n }\r\n }\r\n\r\n public inCellCheckBoxOnChange(event: any, rowIndex: any, column: any) {\r\n const isChecked = event.detail.checked;\r\n this.gData[rowIndex][column.Value] = isChecked;\r\n }\r\n\r\n public columnsOrderChanged(event: ColumnReorderEvent): void {\r\n const _zgridControl = this.zgrid as ZGrid;\r\n const _zgridComponent = this.zgrid.grid as GridComponent;\r\n const _data = _zgridComponent.data as GridDataResult;\r\n\r\n if (this.zgrid) {\r\n const _zgrid = this.zgrid;\r\n }\r\n }\r\n\r\n\r\n /* */\r\n public addHandler({ sender }) {\r\n this.isNew = true;\r\n\r\n // close any existing editor\r\n this.closeEditor(sender);\r\n\r\n // loop all column to get validation and create form control\r\n const colFormControl = {};\r\n this.zgrid.gridColumns.forEach(col => {\r\n const validators: ValidatorFn[] = [];\r\n if (col.IsRequired) {\r\n validators.push(Validators.required);\r\n }\r\n if (col.ValidatorPattern) {\r\n validators.push(Validators.pattern(col.ValidatorPattern));\r\n } \r\n\r\n colFormControl[col.Value] = new FormControl(null, validators); \r\n });\r\n\r\n // set form control object to form group\r\n this.formGroup = new FormGroup(colFormControl);\r\n\r\n // add to grid row\r\n sender.addRow(this.formGroup);\r\n }\r\n\r\n public saveHandler({ sender, rowIndex, formGroup, isNew }): void {\r\n // get grid data.\r\n const gridExistingData = this.gData ? this.gData : [];\r\n\r\n // if valid\r\n if (formGroup.valid) {\r\n // check for duplicate UniqueKey\r\n let uniqueKeyExist = false;\r\n const uniqueKey = this.data['UniqueKey'];\r\n if (uniqueKey) {\r\n gridExistingData.forEach(data => {\r\n if (data[uniqueKey] === formGroup.value[uniqueKey]) {\r\n uniqueKeyExist = true;\r\n }\r\n });\r\n }\r\n\r\n if (!uniqueKeyExist) {\r\n if (isNew) {\r\n // if new, push to data\r\n gridExistingData.push(formGroup.value);\r\n }\r\n else {\r\n // if edit, update data\r\n gridExistingData[rowIndex] = formGroup.value;\r\n }\r\n\r\n this.setData(gridExistingData);\r\n\r\n sender.closeRow(rowIndex);\r\n }\r\n }\r\n }\r\n\r\n public cancelHandler({ sender, rowIndex }) {\r\n // cancel any existing editor\r\n sender.closeRow(rowIndex);\r\n }\r\n\r\n public editHandler({ sender, rowIndex, dataItem }) {\r\n this.isNew = false;\r\n\r\n // close any existing editor\r\n this.closeEditor(sender);\r\n \r\n // loop all column to get validation and create form control, append current row value\r\n const colFormControl = {};\r\n this.zgrid.gridColumns.forEach(col => {\r\n const validators: ValidatorFn[] = [];\r\n if (col.IsRequired) {\r\n validators.push(Validators.required);\r\n }\r\n if (col.ValidatorPattern) {\r\n validators.push(Validators.pattern(col.ValidatorPattern));\r\n }\r\n \r\n colFormControl[col.Value] = new FormControl(dataItem[col.Value], validators);\r\n });\r\n\r\n // set form control object to form group\r\n this.formGroup = new FormGroup(colFormControl);\r\n\r\n // set grid row to edit\r\n this.editedRowIndex = rowIndex; \r\n sender.editRow(rowIndex, this.formGroup);\r\n }\r\n\r\n public removeHandler({ sender, dataItem }) {\r\n const index = this.getItemIndex(dataItem, this.gData, this.data['UniqueKey']);\r\n this.gData.splice(index, 1);\r\n\r\n sender.cancelCell();\r\n }\r\n\r\n private closeEditor(grid, rowIndex = this.editedRowIndex) {\r\n grid.closeRow(rowIndex);\r\n this.editedRowIndex = undefined;\r\n this.formGroup = undefined;\r\n }\r\n\r\n private getItemIndex(item: any, data: any[], key: string): number {\r\n for (let idx = 0; idx < data.length; idx++) {\r\n if (data[idx][key] === item[key]) {\r\n return idx;\r\n }\r\n }\r\n\r\n return -1;\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input, OnDestroy } from \"@angular/core\";\r\nimport { FormGroup, Validators } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { Subscription } from \"rxjs\";\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n ZComponent, ZComponentHelper, ZField, ZGroup, ZComponentProperties,\r\n WebApiService, AttachmentService\r\n} from \"mmhglobal-zcore\";\r\n\r\n\r\n@Component({\r\n selector: \"app-zimg\",\r\n templateUrl: \"./zimg.component.html\",\r\n styleUrls: [\"./zimg.component.scss\"]\r\n})\r\nexport class ZimgComponent implements ZComponent, OnInit, OnDestroy {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n imgWidth: string = null;\r\n imgHeight: string = null;\r\n imgSrc: string = null;\r\n randomNumber = Math.random();\r\n componentProperties = new ZComponentProperties();\r\n // imgSourceAvailable = false;\r\n subscription: Subscription;\r\n\r\n Guid;\r\n FileName;\r\n Image:string;\r\n constructor(private attachmentService: AttachmentService) { }\r\n\r\n async ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n if (this.data.Size && this.data.Size.toLowerCase().indexOf(\"x\") !== -1) {\r\n const imgSize = this.data.Size.toLowerCase().split(\"x\");\r\n this.imgWidth = imgSize[0];\r\n this.imgHeight = imgSize[1];\r\n }\r\n\r\n this.Guid = this.getGroupValue(this.data['Guid'], this.group);//this.data['Guid'];//this.getGroupValue(this.data['Guid'], this.group);\r\n this.FileName = this.getGroupValue(this.data['FileName'], this.group);//this.getGroupValue(this.data['FileName'], this.group);\r\n\r\n if(this.Guid != undefined && this.FileName != undefined){\r\n let blobfile = await this.attachmentService.getImageBlob(this.FileName, this.Guid);\r\n this.Image= await this.attachmentService.convertBlobToBase64(blobfile);\r\n }\r\n\r\n\r\n\r\n\r\n\r\n // this.subscription = this.group.zModel$\r\n // .asObservable()\r\n // .subscribe((zmodel: any) => {\r\n // this.onDataSourceChange(zmodel);\r\n // });\r\n }\r\n\r\n\r\n\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n onDataSourceChange() {\r\n const value = this.getGroupValue(this.data.Value, this.group);\r\n const sourceUrl = this.getGroupValue(this.data.SourceUrl, this.group);\r\n\r\n if (value && sourceUrl) {\r\n // this.imgSrc =\r\n // this.imgSourceAvailable = true;\r\n return (\r\n sourceUrl +\r\n \"?id=\" +\r\n value +\r\n \"&size=\" +\r\n this.data.Size\r\n // + \"&r=\" + this.randomNumber\r\n );\r\n // console.log(\"image source: \", this.imgSrc);\r\n } else {\r\n // this.imgSourceAvailable = false;\r\n }\r\n }\r\n\r\n getGroupValue(value: string, group: any) {\r\n return ZComponentHelper.getGroupValue(value, group);\r\n }\r\n\r\n // getValue(data: string) {\r\n // let gArray: Array<string>;\r\n // if (data) {\r\n // gArray = data.split(\".\");\r\n\r\n // if (gArray.length === 3 && data.startsWith(\"group.zModel\")) {\r\n // return this.group.zModel[gArray[2]];\r\n // } else if (gArray.length === 2 && data.startsWith(\"group.\")) {\r\n // return this.group[gArray[1]];\r\n // }\r\n // }\r\n // return null;\r\n // }\r\n\r\n getImgStyle(): any { }\r\n\r\n onIconClick() {\r\n const iconClick = ZComponentHelper.getGroupEvalValue.call(this, this.data.OnItemClick, this.group);\r\n if (typeof iconClick === 'function') {\r\n return iconClick();\r\n }\r\n\r\n if (!iconClick) {\r\n console.warn('ZImg OnItemClick property is invalid: ', iconClick);\r\n return;\r\n }\r\n\r\n if (typeof iconClick !== 'function') {\r\n console.warn('ZImg OnItemClick property is not a function: ', iconClick);\r\n return;\r\n }\r\n }\r\n\r\n getIconName() {\r\n const iconName = ZComponentHelper.getGroupEvalValue.call(this, this.data.Icon, this.group);\r\n return iconName;\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { Observable, Subscription } from 'rxjs';\r\nimport { delay, tap } from 'rxjs/operators';\r\nimport { LabelSettings } from '@progress/kendo-angular-progressbar';\r\nimport { State } from '@progress/kendo-data-query';\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n AuthService, ZField, ZGroup, ResourceApiService, WebApiService, GridCaching,\r\n ZComponent, ZComponentHelper, ZComponentOutputEvent,\r\n ZGridStatePersistingService, ZGridColumnSettings, ZGridPostApiParams\r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-zkcard',\r\n templateUrl: './zkcard.component.html',\r\n styleUrls: ['./zkcard.component.scss'],\r\n})\r\nexport class ZkcardComponent implements ZComponent, OnInit, OnDestroy {\r\n\r\n constructor(\r\n private activatedRoute: ActivatedRoute,\r\n private resourceApiService: ResourceApiService,\r\n private authService: AuthService,\r\n private zGridStatePersistingService: ZGridStatePersistingService,\r\n private webapiService: WebApiService,\r\n private router: Router,\r\n ) { }\r\n\r\n data: ZField;\r\n group: ZGroup;\r\n form: FormGroup;\r\n zgrid: any = null;\r\n scrollViewCards: any = { data: [], total: 0 };\r\n responseData: any = { data: [], total: 0 };\r\n params: ZGridPostApiParams = {\r\n referId: null,\r\n pageNo: 0,\r\n pageSize: 20,\r\n sortColumnName: \"\",\r\n sortOrder: \"\",\r\n sortColumnNames: [],\r\n sortOrders: [],\r\n filterParams: [],\r\n parameters: \"\",\r\n filters: \"\",\r\n columns: \"\",\r\n grantType: 4\r\n };\r\n //gridData: GridDataResult;\r\n columns: any[];\r\n gridColumns: any[] = [];\r\n usableColumns: any[] = [];\r\n dataSource = null;\r\n state: State = {\r\n skip: 0,\r\n take: 10,\r\n };\r\n paginationApiPostUrl = null;\r\n resourceURL = null;\r\n subscription: Subscription;\r\n public filterItems: Array<string> = [];\r\n public progressStyles: { [key: string]: any } = {\r\n color: '',\r\n background: 'green'\r\n };\r\n public loadingPanelVisible = false;\r\n\r\n\r\n public label: LabelSettings = {\r\n visible: true,\r\n format: 'percent',\r\n position: 'center'\r\n };\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n this.dataSource = this.field.DataSource ? this.field.DataSource : null;\r\n this.filterItems = this.group['filterItems'];\r\n if (!this.dataSource) {\r\n this.resourceURL = ZComponentHelper.getGroupValue(\r\n this.field.ResourceURL,\r\n this.grp\r\n );\r\n // console.log(\"At zgrid.component (OnInit) resourceURL: \", resourceURL);\r\n if (!this.resourceURL) {\r\n // this.grid.loading = false;\r\n //if (this.zgridbinding.data.Name !== \"ActivityLogGrid\") {\r\n // console.warn(\r\n // \"No initialise for Field.ResourceURL: \",\r\n // this.field.ResourceURL\r\n // );\r\n //}\r\n return;\r\n }\r\n\r\n const array = this.resourceURL.split(\"/api/\");\r\n if (!!array[1]) {\r\n array[1] = \"Page\" + array[1];\r\n this.paginationApiPostUrl = array.join(\"/api/\");\r\n } else {\r\n const arr = this.resourceURL.split(\"/\");\r\n arr[arr.length - 2] = \"Page\" + arr[arr.length - 2];\r\n this.paginationApiPostUrl = arr.join(\"/\");\r\n }\r\n\r\n this.setFilterParamsByParentRefId();\r\n }\r\n\r\n this.generateGridColumns();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n getData() {\r\n if (this.zgrid) {\r\n this.zgrid.getDataBinding();\r\n }\r\n //if (this.data.SkipDirective) {\r\n // this.gridData = process(this.gData, this.state);\r\n // this.createFormControls();\r\n //}\r\n }\r\n\r\n generateGridColumns() {\r\n this.loadingPanelVisible = true;\r\n const columnFields$: Observable<any> = ZComponentHelper.getGroupValue(\r\n this.field.ColumnFields,\r\n this.grp\r\n );\r\n columnFields$\r\n .pipe(\r\n tap((data) => {\r\n\r\n const gridSetting = this.getGridSettings();\r\n const fieldName = this.field[\"FieldElementName\"];\r\n ZComponentHelper.getGridColumns(\r\n data,\r\n this.gridColumns,\r\n this.group,\r\n this.authService,\r\n fieldName,\r\n gridSetting,\r\n this.usableColumns\r\n );\r\n this.getFilterParamsColumns();\r\n this.getFilter();\r\n //this.getSorting();\r\n //this.getGrantType();\r\n //this.setHiddenColumn(gridSetting);\r\n //this.params.referId = this.getFieldReferenceId() || this.grp.referenceId || null;\r\n }),\r\n tap(() => {\r\n this.getDataBinding();\r\n })\r\n )\r\n .subscribe(() => {\r\n });\r\n }\r\n\r\n getDataBinding(): void {\r\n if (!this.dataSource) {\r\n this.param.pageSize = this.field.PageSize ?? 50;\r\n if (this.field.ExternalPagination) {\r\n // For POST method Page WebAPI\r\n this.webapiService\r\n .postApi(\r\n this.paginationApiPostUrl,\r\n this.param,\r\n null,\r\n null,\r\n null,\r\n null,\r\n true\r\n )\r\n .subscribe((data) => {\r\n delay(2500)\r\n this.responseData = { data: data.dataSet, total: data.totalCount };\r\n this.scrollViewCards = { data: data.dataSet, total: data.totalCount };\r\n if (data.dataSet.length > 0) {\r\n this.getRecordsSummary();\r\n }\r\n\r\n if (this.data.ResourceURLAlt) {\r\n this.getNewSurvey();\r\n }\r\n //this.aggregateHandling(data.dataSet);\r\n //this.grid.data = { data: data.dataSet, total: data.totalCount };\r\n //this.grid.loading = false;\r\n this.loadingPanelVisible = false;\r\n //this.notifyDataChange();\r\n });\r\n } else {\r\n // For GET method\r\n this.webapiService\r\n .getApi(this.resourceURL, null, null, null, null, null, true)\r\n .subscribe((data) => {\r\n let _data = null;\r\n let _totalCount = 0;\r\n\r\n if (data.dataSet) {\r\n _data = data.dataSet;\r\n _totalCount = data.totalCount;\r\n } else {\r\n _data = data;\r\n _totalCount = data.length;\r\n }\r\n this.loadingPanelVisible = false;\r\n //this.aggregateHandling(_data);\r\n //this.grid.data = { data: _data, total: _totalCount };\r\n //this.grid.pageSize = _totalCount;\r\n //this.grid.loading = false;\r\n //this.notifyDataChange();\r\n });\r\n }\r\n } else {\r\n const ds = ZComponentHelper.getGroupValue(\r\n this.field.DataSource,\r\n this.grp\r\n );\r\n }\r\n }\r\n\r\n getRecordsSummary() {\r\n let SurveyIds = [];\r\n\r\n this.responseData.data.forEach(value => {\r\n SurveyIds.push(value.Id);\r\n });\r\n\r\n this.webapiService\r\n .postApi(\r\n this.resourceApiService.getURL('ppsapsurveysummaryinfoURL'),\r\n SurveyIds,\r\n null,\r\n null,\r\n null,\r\n null,\r\n true\r\n )\r\n .subscribe(data => {\r\n this.responseData.data.forEach(value => {\r\n data.forEach(x => {\r\n if (x.SurveyId == value.Id) {\r\n value['value'] = Number.isNaN(((x.TotalTakenQuestions / x.TotalQuestions) * 100)) ? 0 : Math.round(((x.TotalTakenQuestions / x.TotalQuestions) * 100));\r\n // value['value'] = 100;\r\n }\r\n })\r\n });\r\n })\r\n }\r\n\r\n getNewSurvey() {\r\n let requestBody = {\r\n columns: \"PartnerMillId,SurveyTemplateId,WFS_StatusCode,WFS_StatusName\",\r\n pageSize: this.field.PageSize ?? 50,\r\n };\r\n\r\n this.webapiService\r\n .postApi(\r\n this.resourceApiService.getPageUrl(this.data.ResourceURLAlt),\r\n requestBody,\r\n null,\r\n null,\r\n null,\r\n null,\r\n true\r\n )\r\n .subscribe((data) => {\r\n data.dataSet.forEach(value => {\r\n value['value'] = 0;\r\n this.scrollViewCards.data.push(value);\r\n this.scrollViewCards.total += 1;\r\n\r\n //data.forEach(x => {\r\n // if (x.SurveyId == value.Id) {\r\n // value['value'] = Number.isNaN(((x.TotalTakenQuestions / x.TotalQuestions) * 100)) ? 0 : Math.round(((x.TotalTakenQuestions / x.TotalQuestions) * 100));\r\n // }\r\n //})\r\n });\r\n })\r\n }\r\n\r\n get field() {\r\n return this.data;\r\n }\r\n\r\n get grp() {\r\n return this.group;\r\n }\r\n\r\n get param(): ZGridPostApiParams {\r\n return this.params;\r\n }\r\n\r\n private getGridSettings(): ZGridColumnSettings[] {\r\n const _storageKey = 'ionic-field::' + this.authService.e1Token.userName;\r\n const _gridName = this.field.Name + '::' + this.field.Value;\r\n\r\n // Find any setting from localstorage..\r\n let _arrGridCaching: GridCaching[] = this.zGridStatePersistingService.get(_storageKey);\r\n if (_arrGridCaching && _arrGridCaching[0]) {\r\n const _gridCaching: GridCaching = _arrGridCaching.find(x => x['dataFormFields'] === _gridName);\r\n\r\n if (_gridCaching) {\r\n return _gridCaching.gridSettings.columnsConfig.sort((a, b) => a.orderIndex - b.orderIndex);\r\n }\r\n }\r\n }\r\n\r\n private setFilterParamsByParentRefId() {\r\n // Use field own referenceId if available\r\n const refId = this.getFieldReferenceId() || this.grp.referenceId;\r\n const refField = this.field.ReferenceField || this.grp.parentReferenceField;\r\n if (refId && this.grp.parentReferenceField) {\r\n const filterValue = {\r\n key: refField,\r\n ops: \"=\",\r\n value: refId,\r\n };\r\n // if (this.params.filterParams.find(x => x.key === filterValue.key) === undefined) {\r\n this.params.filterParams.push(filterValue);\r\n // }\r\n }\r\n }\r\n\r\n private getFieldReferenceId() {\r\n let fieldReferenceId = null;\r\n if (this.field.ReferenceId) {\r\n fieldReferenceId = ZComponentHelper.getGroupValue(\r\n this.field.ReferenceId,\r\n this.grp\r\n );\r\n }\r\n return fieldReferenceId;\r\n }\r\n\r\n private getFilterParamsColumns() {\r\n const colFields: Array<string> = [];\r\n this.gridColumns.forEach((field) => {\r\n if (field.valueExpr) {\r\n colFields.push(field.valueExpr + \" as \" + field.field);\r\n } else {\r\n colFields.push(field.field);\r\n }\r\n });\r\n\r\n if (colFields.length > 0) {\r\n if (colFields.indexOf(\"Id\") === -1) {\r\n colFields.push(\"Id\");\r\n }\r\n }\r\n\r\n let tmpGridColumn: any[] = [];\r\n tmpGridColumn.push(colFields.join(\",\"));\r\n if (this.usableColumns.length > 0) {\r\n tmpGridColumn.push(this.usableColumns.join(\",\"));\r\n }\r\n this.params.columns = tmpGridColumn.join(\",\");\r\n }\r\n\r\n start(event: any) {\r\n this.group;\r\n this.group.isLoading = true;\r\n if (event.WFS_StatusName == 'New') {\r\n let param = {\r\n UserId: this.group['PSAPUSERID'],\r\n SurveyMillId: event.Id\r\n }\r\n\r\n this.webapiService\r\n .postApi(\r\n this.resourceApiService.getURL('ppsapsurveycreateURL'),\r\n param,\r\n null,\r\n null,\r\n null,\r\n null,\r\n true\r\n )\r\n .subscribe((data) => {\r\n this.group.isLoading = false;\r\n if (this.data.EditClickURL) {\r\n // TODO:\r\n // debugger;\r\n // this.router.navigate([this.data.EditClickURL, dataItem.Id]);\r\n const colFields = ZComponentHelper.getGroupValue(this.data.ColumnFields, this.group);\r\n this.group.subject.next({\r\n type: \"zgrid-cellClick\",\r\n target: this.data.EditClickURL,\r\n data: event,\r\n columnFields$: colFields\r\n } as ZComponentOutputEvent);\r\n } else {\r\n this.router.navigate([this.group.editModelURL, data.Id, 'edit'], {\r\n relativeTo: this.activatedRoute\r\n });\r\n }\r\n\r\n });\r\n }\r\n else {\r\n this.group.isLoading = false;\r\n if (this.data.EditClickURL) {\r\n // TODO:\r\n // debugger;\r\n // this.router.navigate([this.data.EditClickURL, dataItem.Id]);\r\n const colFields = ZComponentHelper.getGroupValue(this.data.ColumnFields, this.group);\r\n this.group.subject.next({\r\n type: \"zgrid-cellClick\",\r\n target: this.data.EditClickURL,\r\n data: event,\r\n columnFields$: colFields\r\n } as ZComponentOutputEvent);\r\n } else {\r\n this.router.navigate([this.group.editModelURL, event.Id, 'edit'], {\r\n relativeTo: this.activatedRoute\r\n });\r\n }\r\n }\r\n }\r\n\r\n getFontAwesome(iconName: string) {\r\n return ZComponentHelper.getFontAwesome(iconName);\r\n }\r\n\r\n private getFilter() {\r\n if (this.params.filters && this.field.Filters) {\r\n this.params.filters = this.params.filters + \" && \" + this.field.Filters;\r\n } else if (!this.params.filters && this.field.Filters) {\r\n this.params.filters = this.field.Filters;\r\n }\r\n\r\n if (this.field.Filters && this.field.Filters.indexOf(\"group.\") !== -1) {\r\n const filterKeyValPairs = this.field.Filters.split(\" \");\r\n const grpValues = filterKeyValPairs.filter(\r\n (element) => element.trim().indexOf(\"group.\") !== -1\r\n );\r\n\r\n grpValues.forEach((val) => {\r\n const actualVal = ZComponentHelper.getGroupValue(val, this.grp);\r\n this.params.filters = this.params.filters.replace(val, actualVal);\r\n });\r\n }\r\n }\r\n\r\n valueChange(event: any) {\r\n if (event.length < 1) {\r\n this.scrollViewCards.data = this.responseData.data;\r\n this.scrollViewCards.total = this.responseData.total;\r\n return;\r\n }\r\n this.scrollViewCards.data = this.responseData.data.filter(x => event.includes(x.WFS_StatusName));\r\n this.scrollViewCards.total = this.responseData.data.filter(x => event.includes(x.WFS_StatusName)).length;\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport { \r\n ZComponent, ZComponentHelper,\r\n ZField, ZGroup, ZComponentProperties \r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-zlabel',\r\n templateUrl: './zlabel.component.html',\r\n styleUrls: ['./zlabel.component.scss'],\r\n})\r\nexport class ZlabelComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n componentProperties = new ZComponentProperties();\r\n\r\n labelText = \"\";\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n this.labelText = ZComponentHelper.getGroupValue(this.data.Label.toString(), this.group);\r\n }\r\n\r\n getReadOnlyValue() {\r\n const readOnlyValue = ZComponentHelper.getGroupEvalValue.call(this, this.data.ReadOnly);\r\n if (typeof readOnlyValue === 'function') {\r\n return readOnlyValue();\r\n }\r\n return readOnlyValue;\r\n }\r\n\r\n isVisible() {\r\n if (this.componentProperties.isVisible === null) {\r\n return ZComponentHelper.isVisible.call(this, this.data);\r\n } else {\r\n return this.componentProperties.isVisible;\r\n }\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n getIon_InvalidClass(form: FormGroup, data: ZField) {\r\n return ZComponentHelper.getIon_InvalidClass(form, data);\r\n }\r\n\r\n getClass(form: FormGroup, data: ZField) {\r\n return `${ZComponentHelper.getIon_InvalidClass(form, data)} ${data.DivClass}`;\r\n }\r\n\r\n public setData = (data: any) => {\r\n this.labelText = data;\r\n }\r\n}","/********** Angular **********/\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { DialItemClickEvent, FabAlign, FabPositionMode } from '@progress/kendo-angular-buttons';\r\n\r\n/********** Component & Service **********/\r\nimport { \r\n FieldService, ResourceApiService, WebApiService, WorkflowService,\r\n ZComponent, ZComponentHelper, ZComponentOutputEvent, ZComponentProperties, ZField, ZGroup\r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-zmfb',\r\n templateUrl: './zmfb.component.html',\r\n styleUrls: ['./zmfb.component.scss'],\r\n})\r\nexport class ZmfbComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n componentProperties = new ZComponentProperties();\r\n positionMode: FabPositionMode = 'fixed';\r\n bottomEnd: FabAlign = { vertical: 'bottom', horizontal: 'end' };\r\n items: Array<any> = [];\r\n dialOpen: boolean = false; \r\n isWorkflowButton: boolean = false;\r\n buttonColor: string = 'info';\r\n\r\n constructor(\r\n private fieldService: FieldService,\r\n private resourceApiService: ResourceApiService,\r\n private workflowService: WorkflowService\r\n ) { }\r\n\r\n/******************** Common function ********************/\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n this.data = this.getFirstzButton(this.group.fields);\r\n\r\n if (this.data) {\r\n if (!ZComponentHelper.isNullUndefinedEmpty(this.data.WorkflowCode)) {\r\n // handle as zWorkflowButton\r\n this.isWorkflowButton = true;\r\n this.loadWorkflowButton();\r\n }\r\n else {\r\n const field$ = this.fieldService.getFormFieldCode(\r\n this.data.Value,\r\n \"FormField\",\r\n null,\r\n null\r\n );\r\n\r\n\r\n try {\r\n field$.subscribe(data => {\r\n data.forEach((button: any) => {\r\n const label = this.getButtonLabel(button);\r\n\r\n const _isVisible = this.isBtnVisible(button.Visible);\r\n if (_isVisible) {\r\n this.items.push({\r\n label: label,\r\n icon: ZComponentHelper.getIcon(button.Icon),\r\n 'clickEvent': button.ClickEvent,\r\n 'click': (y) => {\r\n this.buttonClick(button);\r\n }\r\n });\r\n }\r\n });\r\n });\r\n } catch (error) {\r\n console.error(\"error: \", error);\r\n }\r\n }\r\n }\r\n }\r\n\r\n isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n\r\n isBtnVisible(fieldExpr) {\r\n if (fieldExpr !== false && !fieldExpr) {\r\n return true;\r\n }\r\n const v = ZComponentHelper.getGroupEvalValue.call(this, fieldExpr);\r\n return v;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n \r\n /******************** zButton ********************/\r\n private getFirstzButton(data: any[]) {\r\n // data.forEach(d => {\r\n for (let i = 0; i < data.length - 1; i++) {\r\n if (data[i].Type === \"zbuttons\" || data[i].Type === \"zworkflowbuttons\") {\r\n return data[i];\r\n } else {\r\n if (Array.isArray(data[i].Value)) {\r\n this.getFirstzButton(data[i].Value);\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n private getButtonLabel(button: any) { \r\n let buttonLabel = button.Label;\r\n if (!buttonLabel) {\r\n buttonLabel = button.Name;\r\n }\r\n\r\n let labelExpr = buttonLabel.match(/^{{.*}}$/gi);\r\n if (labelExpr) {\r\n labelExpr = labelExpr[0].slice(2, -2);\r\n const label = ZComponentHelper.getGroupValue(labelExpr, this.group);\r\n return label;\r\n } else {\r\n return buttonLabel;\r\n }\r\n }\r\n\r\n private buttonClick(button: any) { \r\n this.group.subject.next({\r\n type: \"buttonClick\",\r\n target: button.ClickEvent,\r\n data: null\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n public events: string[] = [];\r\n\r\n public onBlur(): void {\r\n //console.log('blur');\r\n }\r\n\r\n public onFocus(): void {\r\n if (this.isWorkflowButton) {\r\n this.loadWorkflowButton();\r\n }\r\n //console.log('focus');\r\n }\r\n\r\n public onOpen(e): void {\r\n this.dialOpen = true;\r\n console.log('open');\r\n }\r\n\r\n public onClose(e): void {\r\n this.dialOpen = false;\r\n console.log('close');\r\n }\r\n\r\n public onDialItemClick(e: DialItemClickEvent): void { \r\n e.item.click(); \r\n }\r\n\r\n /******************** zWorkflowButton ********************/\r\n // URL required\r\n // eslint-disable-next-line @typescript-eslint/naming-convention,no-underscore-dangle,id-blacklist,id-match\r\n e1wfs_wfcGetWorkflowButtonURL = this.resourceApiService.getURL(\"e1wfs_wfcGetWorkflowButtonURL\");\r\n // eslint-disable-next-line @typescript-eslint/naming-convention,no-underscore-dangle,id-blacklist,id-match\r\n e1wfs_wfc_getWorkflowInitialStatusURL = this.resourceApiService.getURL(\"e1wfs_wfc_getWorkflowInitialStatusURL\");\r\n // eslint-disable-next-line @typescript-eslint/naming-convention, no-underscore-dangle, id-blacklist, id-match\r\n e1wfs_wfc_getDocumentStatusURL = this.resourceApiService.getURL(\"e1wfs_wfc_getDocumentStatusURL\");\r\n\r\n\r\n private loadWorkflowButton() {\r\n // actionBtnList: Array<ZField>;\r\n this.items = [];\r\n\r\n // Get WFS_DocumentId if any.\r\n let documentId = null;\r\n if (this.group.zModel) {\r\n documentId = this.group.zModel['WFS_DocumentId'];\r\n }\r\n\r\n // Set the documentId to the service\r\n this.workflowService.appendWFS_DocumentsInfo(this.data.WorkflowCode, documentId);\r\n\r\n try {\r\n // Set param for field\r\n const field$ = this.workflowService.getWorkflowButtonsField(\r\n this.data.WorkflowCode,\r\n this.e1wfs_wfcGetWorkflowButtonURL,\r\n String(false)\r\n );\r\n\r\n field$.subscribe(data => {\r\n data.forEach((button: any) => {\r\n const label = this.getButtonLabel(button);\r\n const attributes = JSON.parse(button.Attributes);\r\n const buttonLabel = attributes.Label || label;\r\n const _isVisible = this.isBtnVisible(button.Visible);\r\n\r\n if (_isVisible) { \r\n this.items.push({\r\n label: buttonLabel,\r\n fieldAttribute: button,\r\n icon: ZComponentHelper.getIcon(attributes.Icon),\r\n 'clickEvent': button.ClickEvent,\r\n 'click': (y) => {\r\n this.workflowButtonClick(button);\r\n }\r\n });\r\n } \r\n //ZComponentHelper.collectWorkflowButton(this.group, this.data.WorkflowCode, buttonLabel, button, attributes, mappedInfo);\r\n });\r\n }); \r\n } catch (error) {\r\n console.error(\"error: \", error);\r\n }\r\n }\r\n\r\n workflowButtonClick(button: any) {\r\n // Type 1 == functional;\r\n // Type 2 == GOTO;\r\n const attributes = JSON.parse(button.Attributes);\r\n switch (button.TypeCode.toUpperCase()) {\r\n case \"FUNCTION\":\r\n console.log(\"Functional Button: \", button.Name);\r\n this.workflowService.functionalButton_OnClick(attributes, this.group);\r\n break;\r\n case \"GOTO\":\r\n console.log(\"GOTO Button: \", button.Name);\r\n this.workflowService.gotoButton_Onclick(button, this.data, attributes, this.group, false).subscribe(res => {\r\n this.loadWorkflowButton();\r\n if (res) {\r\n this.workflowService.triggerSendEmail(this.group).subscribe();\r\n }\r\n });\r\n break;\r\n default:\r\n console.log(\"Invalid Button Type. \", button.Name);\r\n break;\r\n }\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, Input, OnInit } from '@angular/core';\r\nimport { FormGroup, Validators } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n// import * as $ from 'jquery';\r\ndeclare var $: any;\r\n\r\n/********** Component & Service **********/\r\nimport { \r\n ZComponent, ZComponentHelper, ZComponentOutputEvent,\r\n ZGroup, ZField, ZComponentProperties\r\n} from \"mmhglobal-zcore\";\r\n\r\n\r\n@Component({\r\n selector: 'app-znumeric',\r\n templateUrl: './znumeric.component.html',\r\n styleUrls: ['./znumeric.component.scss'],\r\n})\r\nexport class ZnumericComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup; \r\n\r\n componentProperties = new ZComponentProperties();\r\n constructor() { }\r\n \r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n if (this.data.RightAlign) {\r\n var thisComponent = this;\r\n setTimeout(function () {\r\n // only available when popup is shown, get the element by class \r\n let numericTextbox = $(\"#\" + thisComponent.data.Value).find(\"input\");\r\n if (numericTextbox.length > 0) {\r\n numericTextbox[0].style.textAlign = \"right\";\r\n }\r\n }, 750);\r\n }\r\n // FormatOption can be \"#.00\\\\%\" | \"$#.000\" | \"#\"\r\n }\r\n\r\n valueHandler() {\r\n const dataValue = this.form.get(this.data.Value).value;\r\n if (dataValue != \"\") {\r\n var value: number = +dataValue;//the \"+\" converts string to number\r\n return value;\r\n }\r\n }\r\n \r\n onChange(value: any) { \r\n ZComponentHelper.setModelValue(this.data.Value, value, this.group);\r\n this.group.subject.next({\r\n type: \"onChange\",\r\n target: this.data.OnChange,\r\n event,\r\n data: { value: value, field: this.data }\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n const fc = this.group.form.controls[this.data.Value];\r\n status ? fc.enable() : fc.disable();\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n getIon_InvalidClass(form: FormGroup, data: ZField) {\r\n return ZComponentHelper.getIon_InvalidClass(form, data);\r\n }\r\n \r\n // Mobile View\r\n public getStyle(RightAlign: boolean) {\r\n let ngStyle = \"\";\r\n if (RightAlign) {\r\n ngStyle += \"right\";\r\n } else {\r\n ngStyle += \"left\";\r\n }\r\n return ngStyle;\r\n } \r\n\r\n public autocorrectHandler() {\r\n if (this.data.AutoCorrect) {\r\n return \"on\";\r\n }\r\n else {\r\n return \"off\";\r\n }\r\n }\r\n\r\n public inputmodeHandler() {\r\n return \"decimal\";\r\n }\r\n \r\n getKendoStyle() {\r\n const isReadOnly = (!!this.componentProperties.isReadOnlyField ? this.group[this.componentProperties.isReadOnlyField] : this.componentProperties.isReadOnly);\r\n \r\n if (isReadOnly) {\r\n return {\r\n \"margin\": \"7px 0 0 0\",\r\n \"width\": \"100%\",\r\n \"background-color\": \"#eaeaea\",\r\n \"color\": \"#545454\"\r\n };\r\n }\r\n else {\r\n return {\r\n \"margin\": \"7px 0 0 0\",\r\n \"width\": \"100%\"\r\n };\r\n }\r\n }\r\n}\r\n","\r\n/********** Angular **********/\r\nimport { Component, OnInit, OnDestroy, Input, ViewChild } from \"@angular/core\";\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\n\r\n/********** Ionic **********/\r\nimport { IonicSelectableComponent } from \"ionic-selectable\";\r\n\r\n/********** Plugin **********/\r\nimport { Subscription, Observable, of } from \"rxjs\";\r\nimport { delay } from 'rxjs/operators';\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n CacheService, ResourceApiService, WebApiService,\r\n ZComponent, ZComponentHelper, ZComponentOutputEvent,\r\n ZSelectMultipleTemplateParams, ZSelectPostApiParams,\r\n ZField, ZGroup, ZComponentProperties\r\n} from \"mmhglobal-zcore\";\r\n\r\n\r\n@Component({\r\n selector: \"app-zpostselectinput\",\r\n templateUrl: \"./zpostselectinput.component.html\",\r\n styleUrls: [\"./zpostselectinput.component.scss\"]\r\n})\r\nexport class ZpostselectinputComponent implements ZComponent, OnInit, OnDestroy {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n @ViewChild(\"selectComponent\", { static: true })\r\n selectComponent: IonicSelectableComponent;\r\n items: Array<any> = [];\r\n modelzData: Array<any>;\r\n infinitezData: Array<any> = [];\r\n infiniteSearchText = null;\r\n // subscription: Subscription;\r\n toggleSelectable = true;\r\n itemValueField: string = null;\r\n itemTextField: string = null;\r\n itemDataField: string = null;\r\n itemTemplate = \"{{item[itemTextField]}}\";\r\n infiniteScrollPageNo = 0;\r\n isLoading = true;\r\n componentProperties = new ZComponentProperties();\r\n private debounceSub: Subscription;\r\n dataInfo: {} = {\r\n \"itemsResourceURL\": \"\",\r\n \"optionFilters\": \"\",\r\n \"totalCount\": 0\r\n };\r\n\r\n constructor(\r\n private resourceApiService: ResourceApiService,\r\n private webApiService: WebApiService,\r\n private cacheService: CacheService\r\n ) { }\r\n\r\n ngOnDestroy(): void {\r\n // if (this.subscription) {\r\n // this.subscription.unsubscribe();\r\n // }\r\n if (this.debounceSub) {\r\n this.debounceSub.unsubscribe();\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.isLoading = true;\r\n\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n ZComponentHelper.setSelectMultipleTextValue(this.data.CCSelectOptions, this);\r\n\r\n const fieldValue = this.data.CCValue;\r\n let getzDataForzModel$: Observable<any>;\r\n if (this.data.HasInfiniteScroll && this.data.InfiniteScroll$\r\n && this.group.zModel && this.group.zModel[fieldValue]) {\r\n const recordId = this.group.zModel[fieldValue];\r\n getzDataForzModel$ = ZComponentHelper.getInfiniteData(null, '', this, recordId.toString());\r\n if (getzDataForzModel$) {\r\n getzDataForzModel$.subscribe((zdata) => {\r\n console.log(this.data.Name, ' - initial zData load: ', zdata);\r\n this.isLoading = false;\r\n });\r\n } else {\r\n this.isLoading = false;\r\n }\r\n if (!ZComponentHelper.isMobileScreen()) {\r\n this.handleFilter(null, true);\r\n }\r\n } else {\r\n if (this.data.CCOptionResourceURL) {\r\n this.lazyLoadDataOptions().subscribe(() => {\r\n this.isLoading = false;\r\n });\r\n } else {\r\n this.isLoading = false;\r\n }\r\n }\r\n\r\n }\r\n\r\n lazyLoadDataOptions(): Observable<any> {\r\n const resourceUrl = this.resourceApiService.getURL(\r\n this.data.CCOptionResourceURL\r\n );\r\n\r\n const filterParam = new ZSelectPostApiParams();\r\n filterParam.sorts = this.data.CCOptionSort;\r\n filterParam.columns = this.data.CCOptionColumns;\r\n filterParam.filters = this.data.CCOptionFilter;\r\n\r\n return ZComponentHelper.getDataOptions(\r\n this.data.CCOptionName,\r\n filterParam,\r\n this.group,\r\n resourceUrl,\r\n this.cacheService,\r\n this.webApiService,\r\n this.data['DisableCache']\r\n );\r\n }\r\n\r\n\r\n getItemsData() {\r\n if (this.data.HasInfiniteScroll) {\r\n return this.infinitezData;\r\n }\r\n const optionName = this.data.CCOptionName || this.itemDataField || 'group.zData.' + this.data.Name;\r\n if (Array.isArray(this.data.CCSelectOptions) && !this.group.zData[optionName.slice(12)]) {\r\n // return selectionOptions;\r\n // return this.data.SelectOptions;\r\n this.group.zData[optionName.slice(12)] = this.data.CCSelectOptions;\r\n this.itemDataField = optionName;\r\n }\r\n\r\n if (optionName.startsWith('zData.')) {\r\n // this.items = this.group.zData[optionName.slice(6)];\r\n return this.group.zData[optionName.slice(6)] || [];\r\n }\r\n if (optionName.startsWith('group.zData.')) {\r\n // this.items = this.group.zData[optionName.slice(12)];\r\n return this.group.zData[optionName.slice(12)] || [];\r\n }\r\n if (optionName.startsWith('group.')) {\r\n // this.items = this.group[optionName.slice(6)];\r\n return this.group[optionName.slice(6)] || [];\r\n }\r\n if (optionName) {\r\n // this.items = this.group[optionName];\r\n return this.group[optionName] || [];\r\n }\r\n console.warn(this.data.Name, ' - Invalid setting for OptionName: ', optionName);\r\n }\r\n\r\n private onChangeEvent(value: string) {\r\n if (this.data.HasInfiniteScroll && !!this.data.InfiniteScroll$) {\r\n const textField = this.itemTextField.toString();\r\n const valueField = this.itemValueField.toString();\r\n let zdataModel = [];\r\n if (value) {\r\n zdataModel = this.infinitezData.filter(x => x[valueField] === value);\r\n this.modelzData = zdataModel.slice();\r\n }\r\n if (this.itemDataField.startsWith('group.zData.')) {\r\n this.group.zData[this.itemDataField.slice(12)] = zdataModel;\r\n } else if (this.itemDataField.startsWith('group.')) {\r\n this.group[this.itemDataField.slice(6)] = zdataModel;\r\n }\r\n }\r\n\r\n this.group.subject.next({\r\n type: \"onChange\",\r\n target: this.data.CCOnChange,\r\n event,\r\n data: {value, field: this.data}\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n onValueChange(value: any) {\r\n // console.log(\"zselectmultiple (onValueChange): \", value);\r\n ZComponentHelper.setModelValue(this.data.CCValue, value, this.group);\r\n this.onChangeEvent(value);\r\n }\r\n\r\n onChange(event: { component: IonicSelectableComponent; value: any }) {\r\n console.log(\"zselectmultiple (onChange): \", event.value);\r\n ZComponentHelper.setModelValue(this.data.CCValue, event.value, this.group);\r\n const fc = this.form.controls[this.data.CCValue];\r\n this.handleClose();\r\n\r\n if (\r\n this.data.CCIsRequired &&\r\n (event.value === null || event.value.length === 0)\r\n ) {\r\n fc.setErrors({ required: true });\r\n } else {\r\n fc.setErrors(null);\r\n }\r\n\r\n this.onChangeEvent(event.value);\r\n }\r\n\r\n clearItems() {\r\n this.selectComponent.clear();\r\n this.selectComponent.close();\r\n }\r\n\r\n toggleItems() {\r\n this.selectComponent.toggleItems(this.toggleSelectable);\r\n this.toggleSelectable = !this.toggleSelectable;\r\n }\r\n\r\n confirmItems() {\r\n this.selectComponent.confirm();\r\n this.selectComponent.close();\r\n }\r\n\r\n onSearch(event: { component: IonicSelectableComponent; text: string }) {\r\n // console.log(\"At zselectmultiple.component (onSearch): \", event);\r\n const component = event.component;\r\n if (component) {\r\n component.startSearch();\r\n component.enableInfiniteScroll();\r\n }\r\n\r\n // if (this.subscription) {\r\n // this.subscription.unsubscribe();\r\n // }\r\n\r\n if (this.data.HasInfiniteScroll) {\r\n if (event.text !== null && event.text !== this.infiniteSearchText) {\r\n this.infiniteScrollPageNo = 0;\r\n }\r\n this.getInfiniteData(event);\r\n } else {\r\n this.infiniteScrollPageNo = 0;\r\n if (component) {\r\n component.items = [];\r\n }\r\n const params = {\r\n referId: null,\r\n pageNo: 0,\r\n pageSize: 15,\r\n sortColumnName: \"\",\r\n sortOrder: \"\",\r\n sortColumnNames: [],\r\n sortOrders: [],\r\n filterParams: [],\r\n parameters: \"\"\r\n };\r\n const searchFields = this.data.SearchFields\r\n ? this.data.SearchFields\r\n : this.itemTextField;\r\n const filteritems = ZComponentHelper.filterSearchItems(\r\n this.getItemsData(),\r\n // this.items,\r\n event.text,\r\n searchFields,\r\n params.pageNo,\r\n params.pageSize\r\n );\r\n if (component) {\r\n const items = component.items.concat(filteritems);\r\n component.items = items;\r\n component.endInfiniteScroll();\r\n component.endSearch();\r\n this.isLoading = false;\r\n }\r\n }\r\n }\r\n\r\n getInfiniteData(event: {\r\n component: IonicSelectableComponent;\r\n text: string;\r\n }) {\r\n ZComponentHelper.getInfiniteData(event.component, event.text, this);\r\n }\r\n\r\n handleFilter(value: any, justOneTime?: boolean) {\r\n if (this.debounceSub) {\r\n this.debounceSub.unsubscribe();\r\n }\r\n this.debounceSub = of([]).pipe(delay(500)).subscribe(() => {\r\n this.isLoading = true;\r\n this.onSearch({ component: null, text: value });\r\n // if (this.loadInfiniteDataSub) {\r\n // this.loadInfiniteDataSub.unsubscribe();\r\n // }\r\n // this.loadInfiniteDataSub = new Subject(false);\r\n // this.handleFilter(null);\r\n // interval(2000).pipe(takeUntil(this.loadInfiniteDataSub)).subscribe(() => {\r\n // this.onSearch({ component: null, text: value });\r\n // if (justOneTime) {\r\n // this.handleClose();\r\n // }\r\n // });\r\n });\r\n }\r\n\r\n handleOpen() {\r\n if (this.data.HasInfiniteScroll) {\r\n this.handleFilter(null);\r\n // // if (this.loadInfiniteDataSub) {\r\n // // this.loadInfiniteDataSub.unsubscribe();\r\n // // }\r\n // // this.loadInfiniteDataSub = new Subject();\r\n // // // this.handleFilter(null);\r\n // // interval(3000).pipe(takeUntil(this.loadInfiniteDataSub)).subscribe(() => {\r\n // this.handleFilter(null);\r\n // // });\r\n }\r\n }\r\n\r\n handleClose() {\r\n // if (this.data.HasInfiniteScroll) {\r\n // if (this.loadInfiniteDataSub) {\r\n // this.loadInfiniteDataSub.next(true);\r\n // // this.loadInfiniteDataSub.complete();\r\n // }\r\n // }\r\n }\r\n\r\n handleBlur() {\r\n // this.handleClose();\r\n }\r\n \r\n getItemTemplate(\r\n item: any,\r\n data: any,\r\n group: any,\r\n itemValueField: string,\r\n itemTextField: string\r\n ) {\r\n // ToDO: itemValueField and itemTextField\r\n if (this.data.ItemTemplate) {\r\n const getTemplateFunc = ZComponentHelper.getGroupEvalValue.call(\r\n this,\r\n this.data.ItemTemplate\r\n );\r\n return getTemplateFunc({\r\n item,\r\n data,\r\n group,\r\n itemValueField,\r\n itemTextField\r\n } as ZSelectMultipleTemplateParams);\r\n } else if (itemTextField) {\r\n return item[itemTextField];\r\n } else {\r\n // return item[itemTextField];\r\n return Object.values(item).join(\", \");\r\n }\r\n }\r\n\r\n getReadOnlyValue() {\r\n const readOnlyValue = ZComponentHelper.getGroupEvalValue.call(this, this.data.ReadOnly);\r\n if (typeof readOnlyValue === 'function') {\r\n const callFunc = readOnlyValue.bind(this.group.ctrlScope);\r\n return callFunc(this.group);\r\n }\r\n return readOnlyValue;\r\n }\r\n\r\n getGroupValue(value: string, group: ZGroup) {\r\n return ZComponentHelper.getGroupValue(value, group);\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n const fc = this.group.form.controls[this.data.Value];\r\n status ? fc.enable() : fc.disable();\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n if (ZComponentHelper.hasCCField(this.data.Type)) {\r\n ZComponentHelper.changeValidator(status, this.group, this.data.CCValue, this.componentProperties, Validators.required);\r\n }\r\n }\r\n\r\n isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n\r\n getIon_InvalidClass(form: FormGroup, data: ZField) {\r\n if (!form) {\r\n //debugger;\r\n }\r\n return ZComponentHelper.getIon_InvalidClass(form, data);\r\n }\r\n\r\n onAddItem(event: any) {\r\n const f = ZComponentHelper.getGroupEvalValue.call(this, this.data.OnAddItem);\r\n if (typeof f === 'function') {\r\n const callFunc = f.bind(this.group.ctrlScope);\r\n return callFunc();\r\n }\r\n console.warn('Invalid declaration of OnAddItem: ', f);\r\n return;\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { map, switchMap, tap } from 'rxjs/operators';\r\nimport { QueryBuilderConfig, QueryBuilderClassNames, QueryBuilderComponent } from 'angular2-query-builder';\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n FieldService, ZComponentHelper, ZComponentProperties, ZField, ZGroup,\r\n FontAweSomeService, DefaultPageSettingParams, WebApiService, ResourceApiService\r\n} from 'mmhglobal-zcore';\r\nimport { of } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'app-zquerybuilder',\r\n templateUrl: './zquerybuilder.component.html',\r\n styleUrls: ['./zquerybuilder.component.scss'],\r\n})\r\nexport class ZquerybuilderComponent implements OnInit {\r\n @ViewChild(QueryBuilderComponent, { static: false }) queryBuilder: QueryBuilderComponent;\r\n @Input() classNames: QueryBuilderClassNames;\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n //qbItems: Array<any> = [];\r\n qbItems = {};\r\n\r\n public componentProperties = new ZComponentProperties();\r\n public queryCtrl: any;\r\n public currentConfig: QueryBuilderConfig = {\r\n fields: {},\r\n allowEmptyRulesets: true\r\n };\r\n public allowRuleset: boolean = true;\r\n public allowCollapse: boolean= false;\r\n public persistValueOnFieldChange: boolean = false; \r\n public isDisabled: boolean = false;\r\n public rule: any;\r\n public value: any;\r\n private fields: any;\r\n\r\n constructor(\r\n private fieldService: FieldService,\r\n private resourceApiService: ResourceApiService,\r\n private webApiService: WebApiService\r\n ) {\r\n }\r\n \r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n \r\n if (this.data['AllowCollapse'] === true) {\r\n this.allowCollapse = this.data['AllowCollapse'];\r\n }\r\n\r\n if (this.data['AllowRuleset'] === false) {\r\n this.allowRuleset = this.data['AllowRuleset'];\r\n }\r\n\r\n this.fields = this.fieldService.getFormFieldCode(this.data.Value, \"FormField\", null, null); \r\n \r\n try {\r\n this.fields.subscribe(data => { \r\n data.forEach((field: any) => {\r\n // Handle Options\r\n let optionList = [];\r\n\r\n if (field.Type == 'category' || field.Type == 'multiselect') {\r\n if (field['ValueOptions']) {\r\n field['ValueOptions'].forEach((valueOption: any) => {\r\n optionList.push({\r\n name: valueOption.Name,\r\n value: valueOption.Value\r\n });\r\n });\r\n }\r\n else {\r\n const selectOptions = field['SelectOptions'];\r\n\r\n const param = Object.assign({}, DefaultPageSettingParams);\r\n param.pageSize = selectOptions['PageSize'];\r\n param.columns = selectOptions['Columns'];\r\n param.filters += selectOptions['Filters'];\r\n param.sortColumnName = selectOptions['SortColumnName'];\r\n param.sortOrder = selectOptions['SortOrder'];\r\n\r\n this.webApiService\r\n .httpPost$(this.resourceApiService.getPageUrl(selectOptions['ResourceURL']), param)\r\n .pipe(\r\n map((resp) => {\r\n resp.dataSet.forEach((item: any) => {\r\n optionList.push({\r\n name: item[selectOptions['Name']],\r\n value: item[selectOptions['Value']]\r\n });\r\n })\r\n\r\n this.qbItems[field.Value]['options'] = optionList\r\n })\r\n ).subscribe();\r\n }\r\n }\r\n\r\n // Default rule to display\r\n this.qbItems[field.Value] = {\r\n name: field.Name,\r\n value: field.Value,\r\n type: field.Type,\r\n operatorList: field['Operators'],\r\n options: optionList,\r\n nullable: field['IsNullable'],\r\n defaultValue: field['DefaultValue'] ? field['DefaultValue'] : null\r\n } \r\n });\r\n \r\n this.currentConfig = {\r\n fields: this.qbItems,\r\n allowEmptyRulesets: true\r\n };\r\n \r\n });\r\n\r\n // append default query if any.\r\n if (this.data['DefaultQuery']) {\r\n let defaultQueryValueString = ZComponentHelper.getGroupEvalValue.call(\r\n this,\r\n this.data['DefaultQuery'],\r\n this.group\r\n ); \r\n\r\n if (defaultQueryValueString) {\r\n this.setQueryValue(defaultQueryValueString);\r\n }\r\n }\r\n } catch (error) {\r\n console.error(\"error: \", error);\r\n } \r\n }\r\n \r\n public completeRule(isUndo: boolean, queryValue: any) {\r\n this.isDisabled = isUndo; \r\n const qbResultValueName = this.data.Type + '_' + this.data.Value;\r\n this.group[qbResultValueName] = this.queryBuilder.value \r\n\r\n if (queryValue) {\r\n this.group[qbResultValueName] = queryValue;\r\n }\r\n\r\n if (!isUndo) {\r\n this.group[qbResultValueName] = [];\r\n }\r\n\r\n if (this.group.zModel) {\r\n ZComponentHelper.setModelValue(this.data.Value, this.group[qbResultValueName], this.group);\r\n }\r\n\r\n if (this.data['OnApplyClick'] && !queryValue) {\r\n let callFunc = ZComponentHelper.getGroupEvalValue.call(\r\n this,\r\n this.data['OnApplyClick'],\r\n this.group\r\n );\r\n const newFunc = callFunc.bind(this);\r\n newFunc(this.group, this.group[qbResultValueName], this.fields);\r\n } \r\n }\r\n \r\n public bootstrapClassNames: QueryBuilderClassNames = {\r\n arrowIcon: 'fa fa-chevron-right px-2',\r\n button: 'btn',\r\n buttonGroup: 'btn-group',\r\n rightAlign: 'order-12 ml-auto',\r\n switchRow: 'd-flex px-2',\r\n switchGroup: 'd-flex align-items-center',\r\n switchRadio: 'custom-control-input',\r\n switchLabel: 'custom-control-label',\r\n switchControl: 'custom-control custom-radio custom-control-inline',\r\n row: 'row p-2 m-1',\r\n rule: 'border',\r\n ruleSet: 'border',\r\n invalidRuleSet: 'alert alert-danger',\r\n emptyWarning: 'text-danger mx-auto',\r\n operatorControl: 'form-control',\r\n operatorControlSize: 'col-auto pr-0',\r\n fieldControl: 'form-control',\r\n fieldControlSize: 'col-auto pr-0',\r\n entityControl: 'form-control',\r\n entityControlSize: 'col-auto pr-0',\r\n inputControl: 'form-control',\r\n inputControlSize: 'col-auto'\r\n };\r\n\r\n public conditionList: Array<string> = [\r\n \"AND\",\r\n \"OR\"\r\n ];\r\n\r\n public getOperators(defaultOperatorList: any, rule: any) {\r\n return this.qbItems[rule.field].operatorList ? this.qbItems[rule.field].operatorList : defaultOperatorList;\r\n }\r\n \r\n public getOptionList(optionsList: any, rule: any) {\r\n return this.qbItems[rule.field].options ? this.qbItems[rule.field].options : optionsList;\r\n }\r\n\r\n public setQueryValue(queryValueString: string) {\r\n if (queryValueString) {\r\n const defaultQueryValueJson = toQueryRule(JSON.parse(queryValueString));\r\n this.queryCtrl = defaultQueryValueJson;\r\n\r\n // default lock the query builder if there default query\r\n this.completeRule(true, defaultQueryValueJson);\r\n }\r\n }\r\n}\r\n\r\nexport interface QueryRule {\r\n condition: string;\r\n rules: QueryRule[];\r\n field: string;\r\n type: string;\r\n operator: string;\r\n value: string[];\r\n}\r\n\r\nexport function toQueryRule(queryBuilderModel: any): QueryRule {\r\n let rule = <QueryRule>{};\r\n if (queryBuilderModel.condition) {\r\n rule.condition = queryBuilderModel.condition;\r\n rule.rules = queryBuilderModel.rules.map(q => toQueryRule(q));\r\n } else {\r\n rule.field = queryBuilderModel.field;\r\n rule.type = queryBuilderModel.type;\r\n rule.operator = queryBuilderModel.operator;\r\n rule.value = queryBuilderModel.value instanceof Array\r\n ? queryBuilderModel.type === 'date' ? new Date(queryBuilderModel.value) : queryBuilderModel.value\r\n : [queryBuilderModel.type === 'date' ? new Date(queryBuilderModel.value) : queryBuilderModel.value];\r\n }\r\n return rule;\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, ViewChild, Input, ViewEncapsulation } from \"@angular/core\";\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { ExportOptions } from \"./zreport.config\";\r\nimport { TelerikReportViewerComponent } from \"@progress/telerik-angular-report-viewer\";\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n ResourceApiService, ZField, ZGroup, ZComponentProperties, ZComponentHelper\r\n} from \"mmhglobal-zcore\";\r\n\r\n\r\n// import * as $ from 'jquery';\r\ndeclare var $: any;\r\n\r\n@Component({\r\n selector: \"app-zreport\",\r\n templateUrl: \"./zreport.component.html\",\r\n styleUrls: [\"./zreport.component.scss\"],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ZreportComponent implements OnInit {\r\n constructor(private resourceApiService: ResourceApiService) { }\r\n\r\n @ViewChild(\"ReportViewer\")\r\n viewer: TelerikReportViewerComponent;\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n\r\n componentProperties = new ZComponentProperties();\r\n\r\n title = \"Report Viewer\";\r\n viewerContainerStyle = {\r\n position: \"relative\",\r\n width: \"100%\",\r\n height: \"800px\",\r\n [\"font-family\"]: \"ms sans serif\"\r\n };\r\n\r\n resourceURL = null;\r\n ReportSource = null;\r\n\r\n isVisible = true;\r\n\r\n paramToResizeReportViewer = false;\r\n public resizeReportView: Function;\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n this.resizeReportView = this.onPageReady.bind(this);\r\n\r\n this.resourceURL = this.resourceApiService.getURL(this.data.ResourceURL);\r\n\r\n if (!this.resourceURL) {\r\n this.resourceURL = this.resourceApiService.getURL('e1wfs_wfm_workflowMasterReportURL');\r\n //this.isVisible = false;\r\n }\r\n\r\n if (!!this.data.IsAutoGenerateReport) {\r\n this.ReportSource = ZComponentHelper.getGroupEvalValue.call(this, this.data.ReportSource);\r\n }\r\n }\r\n\r\n public generateReport() {\r\n const rs = this.group[\"ReportSource\"];\r\n this.resourceURL = rs['url'];\r\n this.viewer.setReportSource(rs);\r\n this.viewer.refreshReport();\r\n\r\n if (this.data['AutoResize']) {\r\n this.paramToResizeReportViewer = true;\r\n } else {\r\n this.paramToResizeReportViewer = false;\r\n }\r\n\r\n const thisComponent = this;\r\n const exportButton = $(\"#trv-main-menu-export-command\");\r\n exportButton.on(\"mouseover\", function () {\r\n // trigger to hide list, sometime element not loaded yet.\r\n setTimeout(function () {\r\n // ExportOptions.instance.exportOption(thisComponent);\r\n // ExportOptions.instance.hideUnwantedOptions();\r\n }, 300);\r\n });\r\n }\r\n\r\n ready(thisComponent: any) {\r\n // console.log(\"ready\");\r\n // ExportOptions.init(thisComponent);\r\n }\r\n\r\n viewerToolTipOpening(args: any) {\r\n // console.log(\"viewerToolTipOpening \" + args.toolTip.text);\r\n }\r\n\r\n onRenderingEnd(e, args): void {\r\n // Occurs after rendering the report.\r\n // ExportOptions.instance.update(e.target.reportSource().report);\r\n }\r\n\r\n exportBegin(args: any) {\r\n }\r\n\r\n exportEnd(args: any) {\r\n }\r\n\r\n onPageReady(e: any, args:any) {\r\n if (this.paramToResizeReportViewer) {\r\n var pageHeight = $(\".trv-pages-area .trv-page-wrapper\").height() + $(\".trv-nav\").outerHeight() + 20, // Calculate the report page height\r\n viewer = $(\"#reportViewer1\"),\r\n viewerHeight = viewer.height();\r\n\r\n if (viewerHeight !== pageHeight ) {\r\n viewer.height(pageHeight);\r\n var documentMapSplitter = $(\".trv-document-map-splitter\").data(\"kendoSplitter\");\r\n if (documentMapSplitter !==undefined) {\r\n documentMapSplitter.resize(true);\r\n }\r\n var parameterSplitter = $(\".trv-parameters-splitter\").data(\"kendoSplitter\");\r\n if (parameterSplitter !==undefined) {\r\n parameterSplitter.resize(true);\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","import { Component, OnInit, Input, ChangeDetectorRef, AfterViewInit } from \"@angular/core\";\r\nimport {\r\n ZComponent, ZComponentHelper, ZComponentOutputEvent,\r\n ZGroup, ZField, ZComponentProperties, StorageSessionService, AuthService\r\n} from \"mmhglobal-zcore\";\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\nimport {\r\n DateChangeEvent,\r\n SlotClickEvent,\r\n EventClickEvent,\r\n EventStyleArgs,\r\n SlotClassArgs\r\n} from \"@progress/kendo-angular-scheduler\";\r\nimport { of } from 'rxjs';\r\nimport { delay, take } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: \"app-zscheduler\",\r\n templateUrl: \"./zscheduler.component.html\",\r\n styleUrls: [\"./zscheduler.component.scss\"]\r\n})\r\nexport class ZschedulerComponent implements ZComponent, OnInit, AfterViewInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n @Input() ngStyle: { [klass: string]: any; }\r\n\r\n\r\n isLoading = true;\r\n events: any[] = [];\r\n selectedDate = new Date();\r\n local = {\r\n inProgress: false,\r\n ctrlScope: null\r\n };\r\n // selectedDate: Date = new Date();\r\n selectedViewIndex = 3;\r\n componentProperties = new ZComponentProperties();\r\n\r\n // eventFields: SchedulerModelFields = {\r\n // id: \"Id\",\r\n // title: \"Objective\",\r\n // description: \"Description\",\r\n // // startTimezone: 'StartTimezone',\r\n // start: \"Date_UTC\",\r\n // end: \"End_UTC\"\r\n // // endTimezone: 'EndTimezone',\r\n // // isAllDay: 'IsAllDay',\r\n // // recurrenceRule: 'RecurrenceRule',\r\n // // recurrenceId: 'RecurrenceID',\r\n // // recurrenceExceptions: 'RecurrenceException'\r\n // };\r\n\r\n constructor(\r\n private changeDetector: ChangeDetectorRef,\r\n private storageService: StorageSessionService,\r\n private authService: AuthService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n this.local.ctrlScope = this.group.ctrlScope;\r\n //this.selectedViewIndex = this.data.SelectedViewIndex || this.selectedViewIndex;\r\n //\r\n if (this.data['SaveFilter']) {\r\n this.setSchedulerSessionKey(this.group);\r\n this.getSchedulerSessionFilter(this.group);\r\n }\r\n this.getItems();\r\n }\r\n\r\n ngAfterViewInit() {\r\n //this.selectedViewIndex = this.data.SelectedViewIndex || this.selectedViewIndex;\r\n }\r\n\r\n getEventStyles = (args: EventStyleArgs) => {\r\n\r\n if(args && args.event && args.event.dataItem)\r\n {\r\n const BGColor=args.event.dataItem[\"backgroundColor\"];\r\n const BorderColor=args.event.dataItem[\"borderColor\"];\r\n\r\n if (BGColor && BorderColor) \r\n { return { backgroundColor: BGColor, bordercolor: BorderColor, color: \"white\" }; }\r\n else {\r\n return { backgroundColor: \"#ff7c73\", bordercolor: \"#ff7c73\" , color: \"white\" };\r\n }\r\n\r\n }\r\n }\r\n\r\n public getSlotClass = (args: SlotClassArgs) => {\r\n const hour = args.start.getHours();\r\n args.resources = this.events\r\n return {\r\n args\r\n };\r\n }\r\n\r\n getItems() {\r\n // if (this.isLoading) {\r\n // return [];\r\n // }\r\n // debugger;\r\n const v = this.data.Value;\r\n if (Array.isArray(v)) {\r\n return v;\r\n } else {\r\n const evalValue = ZComponentHelper.getGroupEvalValue.call(this, v);\r\n // debugger;\r\n if (evalValue) {\r\n this.events = evalValue;\r\n if (this.events) {\r\n this.isLoading = false;\r\n }\r\n } else {\r\n console.warn(\"Invalid field.Value setting \", this.data.Value);\r\n return [];\r\n }\r\n }\r\n }\r\n\r\n onDateChange(args: DateChangeEvent): void {\r\n\r\n // this.events = generateEvents(args.dateRange.start, 7);\r\n\r\n if (this.local.inProgress) {\r\n return;\r\n }\r\n\r\n //Set session values\r\n this.group[\"selectedDate\"] = args.selectedDate;\r\n\r\n console.log(\"zschedule component date-change selection: \", args.dateRange);\r\n // this.local.selectedDate = args.dateRange.start;\r\n this.group.subject.next({\r\n type: \"zscheduler-onDateChange\",\r\n target: this.data.CalendarOptions + \".dateClick\",\r\n event: args.dateRange\r\n } as ZComponentOutputEvent);\r\n // We're setting the events after the current change detection cycle\r\n // has completed, hence we need to trigger a new one.\r\n this.changeDetector.detectChanges();\r\n\r\n }\r\n\r\n onSlotDblClick({ sender, start, end, isAllDay }: SlotClickEvent): void {\r\n console.log(\r\n \"zscheduler component slot-double-click: \",\r\n sender,\r\n start,\r\n end,\r\n isAllDay\r\n );\r\n\r\n if (\r\n sender.selectedView.name === \"month\" ||\r\n sender.selectedView.name === \"week\"\r\n ) {\r\n this.local.inProgress = true;\r\n this.selectedViewIndex = 3;\r\n this.selectedDate = start;\r\n of([]).pipe(take(1), delay(1000)).subscribe(() => this.local.inProgress = false);\r\n }\r\n\r\n // this.group.subject.next({\r\n // Type: \"zscheduler-onSlotDblClick\",\r\n // Target: this.data.CalendarOptions + 'select',\r\n // event: { sender, start, end, isAllDay }\r\n // });\r\n // this.closeEditor(sender);\r\n // this.formGroup = this.formBuilder.group({\r\n // 'Start': [start, Validators.required],\r\n // 'End': [end, Validators.required],\r\n // 'StartTimezone': new FormControl(),\r\n // 'EndTimezone': new FormControl(),\r\n // 'IsAllDay': isAllDay,\r\n // 'Title': new FormControl(''),\r\n // 'Description': new FormControl(''),\r\n // 'RecurrenceRule': new FormControl(),\r\n // 'RecurrenceID': new FormControl()\r\n // });\r\n // sender.addEvent(this.formGroup);\r\n }\r\n\r\n onEventDblClick({ sender, event }: EventClickEvent): void {\r\n console.log(\"zscheduler component event-double-click: \", sender, event);\r\n\r\n // this.group.subject.next({\r\n // type: \"zscheduler-onEventDblClick\" + \".eventClick\",\r\n // target: this.data.CalendarOptions,\r\n // event: { sender, event }\r\n // } as ZComponentOutputEvent);\r\n\r\n // this.closeEditor(sender);\r\n // let dataItem = event.dataItem;\r\n // if (this.editService.isRecurring(dataItem)) {\r\n // sender.openRecurringConfirmationDialog(CrudOperation.Edit)\r\n // // The result will be undefined if the dialog was closed.\r\n // .pipe(filter(editMode => editMode !== undefined))\r\n // .subscribe((editMode: EditMode) => {\r\n // if (editMode === EditMode.Series) {\r\n // dataItem = this.editService.findRecurrenceMaster(dataItem);\r\n // }\r\n // this.formGroup = this.createFormGroup(dataItem);\r\n // sender.editEvent(dataItem, { group: this.formGroup, mode: editMode });\r\n // });\r\n // } else {\r\n // this.formGroup = this.createFormGroup(dataItem);\r\n // sender.editEvent(dataItem, { group: this.formGroup });\r\n // }\r\n\r\n if (this.data.OnItemClick) {\r\n\r\n //Restore session\r\n this.beforeSchedulerGetData(this.group);\r\n this.setSchedulerSessionFilter(this.group);\r\n\r\n const func = ZComponentHelper.getGroupEvalValue.call(this, this.data.OnItemClick);\r\n if (typeof func === 'function') {\r\n const callFunc = func.bind(this.group.ctrlScope);\r\n callFunc(event);\r\n }\r\n return;\r\n }\r\n\r\n\r\n }\r\n \r\n public setData = (gData: any) => {\r\n this.selectedViewIndex = gData || this.selectedViewIndex;\r\n //reset data\r\n this.getItems();\r\n\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n\r\n public setSchedulerSessionKey(group: ZGroup) {\r\n\r\n if (group[\"SchedulerStorageKey\"]) {\r\n return;\r\n }\r\n else {\r\n group[\"SchedulerStorageKey\"] = 'zgrid_' + group.resourceURL + '_' + this.data.Value + '::' + this.authService.e1Token.userName;\r\n }\r\n\r\n }\r\n\r\n public beforeSchedulerGetData(group: ZGroup) {\r\n console.warn(\"beforeDateRangeBinding triggered\");\r\n if (!group.beforeSchedulerGetData) {\r\n console.warn(\"group.beforeDateRangeBinding is undefined\");\r\n return of(true);\r\n }\r\n\r\n return group.beforeSchedulerGetData(group);\r\n }\r\n\r\n async setSchedulerSessionFilter(group: ZGroup) {\r\n\r\n if (!group[\"SchedulerStorageKey\"]) {\r\n return null;\r\n }\r\n const StorageKey = group[\"SchedulerStorageKey\"];\r\n\r\n let lstFilter: { [key: string]: string } = {};\r\n\r\n if (group && this.storageService && this.data['SaveFilter']) {\r\n\r\n //list of data for StateFilter and FilterParams\r\n lstFilter = {\r\n \"SelectedDate\": JSON.stringify(group[\"selectedDate\"])\r\n }\r\n //create session storage \r\n this.storageService.set(StorageKey, JSON.stringify(lstFilter));\r\n\r\n }\r\n\r\n }\r\n\r\n async getSchedulerSessionFilter(group: ZGroup) {\r\n\r\n if (!group[\"SchedulerStorageKey\"]) {\r\n return null;\r\n }\r\n const StorageKey = group[\"SchedulerStorageKey\"];\r\n\r\n if (this.storageService) {\r\n await this.storageService.get(StorageKey)\r\n .then(data => {\r\n if (!data || !data.value || data.value === \"null\") {\r\n return null;\r\n }\r\n else {\r\n const result = JSON.parse(data.value);\r\n this.selectedDate = new Date(JSON.parse(result[\"SelectedDate\"]));\r\n\r\n return data;\r\n }\r\n });\r\n }\r\n else { return null; }\r\n\r\n }\r\n\r\n}\r\n","\r\n/********** Angular **********/\r\nimport { Component, OnInit, Input, ViewChild, OnDestroy, AfterViewInit } from \"@angular/core\";\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\n\r\n/********** Ionic **********/\r\nimport { IonicSelectableComponent } from \"ionic-selectable\";\r\n\r\n/********** Plugin **********/\r\nimport { interval, throwError, Subscription, Observable, of, Subject, timer } from \"rxjs\";\r\nimport { catchError, tap, debounceTime, delay, timeInterval, takeUntil } from \"rxjs/operators\";\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n ResourceApiService, WebApiService, CacheService, ClickableIcons, ButtonList,\r\n ZComponent, ZComponentHelper, ZComponentOutputEvent,\r\n ZSelectMultipleTemplateParams, ZSelectPostApiParams, zSelectMultipleParams,\r\n ZGroup, ZField, ZComponentProperties, TooltipsInfoProperties \r\n} from \"mmhglobal-zcore\";\r\n\r\n\r\n@Component({\r\n selector: \"app-zselectmultiple\",\r\n templateUrl: \"./zselectmultiple.component.html\",\r\n styleUrls: [\"./zselectmultiple.component.scss\"]\r\n})\r\nexport class ZselectmultipleComponent implements ZComponent, OnInit, OnDestroy {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n @Input() iconList: ClickableIcons[];\r\n @Input() buttonList: ButtonList[];\r\n @ViewChild(\"selectComponent\") selectComponent: IonicSelectableComponent;\r\n\r\n public showTooltipsInfoIcon: boolean = false;\r\n public showTooltipsInfoBySide: boolean = false;\r\n public tooltipsInfo: TooltipsInfoProperties = null;\r\n public tooltipsDisplayText: string = null;\r\n public tooltipsDisplayIcon: any;\r\n items: Array<any> = [];\r\n modelzData: Array<any>;\r\n infinitezData: Array<any> = [];\r\n infiniteSearchText = null;\r\n // subscription: Subscription;\r\n toggleSelectable = true;\r\n itemValueField: string = null;\r\n itemTextField: string = null;\r\n itemDataField: string = null;\r\n itemTemplate = \"{{item[itemTextField]}}\";\r\n infiniteScrollPageNo = 0;\r\n isLoading = true;\r\n componentProperties = new ZComponentProperties();\r\n private debounceSub: Subscription;\r\n allowCustomValue = false;\r\n autoClose: boolean = true;\r\n dataInfo: {} = {\r\n \"itemsResourceURL\": \"\",\r\n \"optionFilters\": \"\",\r\n \"totalCount\": 0\r\n };\r\n\r\n // private loadInfiniteDataSub: Subject<boolean> = new Subject<boolean>();\r\n\r\n constructor(\r\n private resourceApiService: ResourceApiService,\r\n private webApiService: WebApiService,\r\n private cacheService: CacheService\r\n ) { }\r\n\r\n ngOnDestroy(): void {\r\n // if (this.subscription) {\r\n // this.subscription.unsubscribe();\r\n // }\r\n if (this.debounceSub) {\r\n this.debounceSub.unsubscribe();\r\n }\r\n }\r\n\r\n public virtual: any = {\r\n itemHeight: 28,\r\n pageSize: 15\r\n };\r\n\r\n ngOnInit() {\r\n this.isLoading = true;\r\n\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n ZComponentHelper.setSelectMultipleTextValue(this.data.SelectOptions, this);\r\n\r\n this.tooltipsInfo = this.data.TooltipsInfo;\r\n if (this.tooltipsInfo) {\r\n if ((this.tooltipsInfo.Icon != null || this.tooltipsInfo.Icon != undefined) && !this.isMobileScreen()) {\r\n this.showTooltipsInfoIcon = true;\r\n this.setTooltipsInfoIcon();\r\n }\r\n if (this.tooltipsInfo.SideBySide) {\r\n this.showTooltipsInfoBySide = true;\r\n }\r\n\r\n this.setTooltipsDisplayText();\r\n }\r\n\r\n // [Dropdownlist Multiple] - auto close menu when lose focus.\r\n if (this.data.AutoClose === false) this.autoClose = this.data.AutoClose;\r\n\r\n // Handle Clickable Icons\r\n this.iconList = this.data.ClickableIcons;\r\n if (this.iconList) {\r\n if (this.iconList.length > 0) {\r\n this.iconList.forEach((i: any) => {\r\n if (i.Tooltip === undefined) {\r\n i.Tooltip = \"\";\r\n } else {\r\n i.Tooltip = ZComponentHelper.getGroupEvalValue.call(this, i.Tooltip);\r\n }\r\n // Default position top. right | bottom | top | left\r\n if (i.Position === undefined) {\r\n i.Position = \"top\";\r\n }\r\n });\r\n }\r\n }\r\n\r\n // Handle Button beside dropdown\r\n this.buttonList = this.data.ButtonList;\r\n if (this.buttonList) { \r\n this.buttonList.forEach(button => {\r\n if (button.tooltip) {\r\n button.tooltip = ZComponentHelper.getGroupEvalValue.call(this, button.tooltip);\r\n } \r\n \r\n }); \r\n }\r\n\r\n // dropdown configuration\r\n this.allowCustomValue = this.data.AllowCustomValue || false; // Allow enter text in dropdownbox\r\n const fieldValue = this.data.Value;\r\n const data = this.data;\r\n const zModel = this.group.zModel;\r\n\r\n /*\r\n * 4 Styles of declare the component�s option list data source.\r\n * Style #1 - Field.SelectOptions defined as an array of object that contain text and value.\r\n * Style #2 - Field.SelectOptions defined as a phase like �item.Id as item.Name for item in group.zData.ProjectOptions�.\r\n * Style #3 - Field.OptionResourceURL defined the name of resource server api.\r\n * Style #4 - Field.InfiniteScroll$ defined the method name as �group.getMoreDataAsScroll�.\r\n */\r\n\r\n if (data.HasInfiniteScroll && data.InfiniteScroll$) {\r\n // when infinitie scroll\r\n let recordId = null;\r\n if (zModel && zModel[fieldValue]) {\r\n // get zModel Value\r\n recordId = zModel[fieldValue].toString();\r\n }\r\n\r\n let getzDataForzModel$: Observable<any> = ZComponentHelper.getInfiniteData(null, '', this, recordId);\r\n if (getzDataForzModel$) {\r\n getzDataForzModel$.subscribe((zdata) => {\r\n console.log(data.Name, ' - initial zData load: ', zdata);\r\n\r\n if(this.group){\r\n if (this.group.afterLoadzDataOptions) {\r\n this.group.afterLoadzDataOptions(this.group);\r\n }\r\n }\r\n\r\n this.isLoading = false;\r\n });\r\n } else {\r\n this.isLoading = false;\r\n }\r\n\r\n if (!ZComponentHelper.isMobileScreen()) {\r\n this.handleFilter(null, true);\r\n }\r\n }\r\n else {\r\n // Style #1, #2, #3\r\n const isRequired = ZComponentHelper.getGroupEvalValue.call(this, data.IsRequired);\r\n\r\n if (this.data.OptionResourceURL) {\r\n this.lazyLoadDataOptions().subscribe(res => {\r\n const optionData = res.dataSet ? res.dataSet : res;\r\n\r\n if (optionData && optionData.length === 1 && !this.data.DisableAutoFirstSelection) {\r\n this.autoSelectFirstOption(isRequired, optionData[0], fieldValue, zModel.Id);\r\n }\r\n\r\n if(this.group){\r\n if (this.group.afterLoadzDataOptions) {\r\n this.group.afterLoadzDataOptions(this.group);\r\n }\r\n }\r\n\r\n this.isLoading = false;\r\n });\r\n }\r\n else {\r\n const optionData = ZComponentHelper.getGroupEvalValue.call(this, this.itemDataField);\r\n // append data via timeout after data is loaded.\r\n if (optionData && optionData.length === 1 && !this.data.DisableAutoFirstSelection) {\r\n const thisComponent = this;\r\n setTimeout(function () {\r\n thisComponent.autoSelectFirstOption(isRequired, optionData[0], fieldValue, thisComponent.group.zModel.Id);\r\n\r\n if(this.group){\r\n if (this.group.afterLoadzDataOptions) {\r\n this.group.afterLoadzDataOptions(this.group);\r\n }\r\n }\r\n }, 100);\r\n }\r\n this.isLoading = false;\r\n }\r\n }\r\n }\r\n\r\n // Auto select first option (if required & only 1 option)\r\n private autoSelectFirstOption(required: boolean, data: any, zModelPropertyName: string, id: any) {\r\n if (ZComponentHelper.isNullUndefinedEmpty(id) && required) {\r\n var optionId = data.Id;\r\n if (this.data.Multiple) {\r\n optionId = [optionId];\r\n }\r\n ZComponentHelper.setModelValue(zModelPropertyName, optionId, this.group);\r\n\r\n this.group.subject.next({\r\n type: \"onChange\",\r\n target: this.data.OnChange,\r\n event,\r\n data: { ['value']: optionId, field: this.data }\r\n } as ZComponentOutputEvent);\r\n\r\n this.form.markAsPristine();\r\n }\r\n }\r\n\r\n // Style #3\r\n lazyLoadDataOptions(): Observable<any> {\r\n const resourceUrl = this.resourceApiService.getURL(\r\n this.data.OptionResourceURL\r\n );\r\n\r\n const filterParam = new ZSelectPostApiParams();\r\n filterParam.sorts = this.data.OptionSort;\r\n filterParam.columns = this.data.OptionColumns;\r\n filterParam.filters = this.data.OptionFilter;\r\n\r\n return ZComponentHelper.getDataOptions(\r\n this.data.OptionName,\r\n filterParam,\r\n this.group,\r\n resourceUrl,\r\n this.cacheService,\r\n this.webApiService,\r\n this.data['DisableCache']\r\n );\r\n }\r\n\r\n // Style #4, used in ionic-selectable\r\n getInfiniteData(event: {\r\n component: IonicSelectableComponent;\r\n text: string;\r\n }) {\r\n ZComponentHelper.getInfiniteData(event.component, event.text, this);\r\n }\r\n\r\n getItemsData() {\r\n if (this.data.HasInfiniteScroll) {\r\n return this.infinitezData;\r\n }\r\n\r\n const optionName = this.data.OptionName || this.itemDataField || 'group.zData.' + this.data.Name;\r\n if (Array.isArray(this.data.SelectOptions) && !this.group.zData[optionName.slice(12)]) {\r\n // return selectionOptions;\r\n // return this.data.SelectOptions;\r\n this.group.zData[optionName.slice(12)] = this.data.SelectOptions;\r\n this.itemDataField = optionName;\r\n }\r\n\r\n if (optionName.startsWith('zData.')) {\r\n return this.group.zData[optionName.slice(6)] || [];\r\n }\r\n if (optionName.startsWith('group.zData.')) {\r\n return this.group.zData[optionName.slice(12)] || [];\r\n }\r\n if (optionName.startsWith('group.')) {\r\n return this.group[optionName.slice(6)] || [];\r\n }\r\n if (optionName) {\r\n return this.group[optionName] || [];\r\n }\r\n console.warn(this.data.Name, ' - Invalid setting for OptionName: ', optionName);\r\n }\r\n\r\n onSearch(event: { component: IonicSelectableComponent; text: string }) {\r\n // console.log(\"At zselectmultiple.component (onSearch): \", event);\r\n // event.component is for mobile only\r\n const component = event.component;\r\n if (component) {\r\n component.startSearch();\r\n component.enableInfiniteScroll();\r\n }\r\n\r\n if (this.data.HasInfiniteScroll) {\r\n // If search text, reset page to 0. Get infinite data\r\n if (event.text !== null && event.text !== this.infiniteSearchText) {\r\n this.infiniteScrollPageNo = 0;\r\n this.modelzData = [];\r\n }\r\n this.getInfiniteData(event);\r\n }\r\n else {\r\n // Reset scroll page, empty items\r\n this.infiniteScrollPageNo = 0;\r\n if (component) {\r\n component.items = [];\r\n }\r\n\r\n // Filter zData and push to items\r\n const params: zSelectMultipleParams = {\r\n referId: null,\r\n pageNo: 0,\r\n pageSize: 20,\r\n sortColumnName: \"\",\r\n sortOrder: \"\",\r\n sortColumnNames: [],\r\n sortOrders: [],\r\n filterParams: [],\r\n parameters: \"\"\r\n };\r\n\r\n const searchFields = this.data.SearchFields ? this.data.SearchFields : this.itemTextField;\r\n const filteritems = ZComponentHelper.filterSearchItems(\r\n this.getItemsData(),\r\n event.text,\r\n searchFields,\r\n params.pageNo,\r\n params.pageSize\r\n );\r\n if (component) {\r\n const items = component.items.concat(filteritems);\r\n component.items = items;\r\n component.endInfiniteScroll();\r\n component.endSearch();\r\n this.isLoading = false;\r\n }\r\n }\r\n }\r\n\r\n handleFilter(value: any, justOneTime?: boolean) {\r\n if (this.debounceSub) {\r\n this.debounceSub.unsubscribe();\r\n }\r\n this.debounceSub = of([]).pipe(delay(500)).subscribe(() => {\r\n this.isLoading = true;\r\n this.onSearch({ component: null, text: value });\r\n\r\n if(this.group){\r\n if (this.group.afterLoadzDataOptions) {\r\n this.group.afterLoadzDataOptions(this.group);\r\n }\r\n }\r\n\r\n // if (this.loadInfiniteDataSub) {\r\n // this.loadInfiniteDataSub.unsubscribe();\r\n // }\r\n // this.loadInfiniteDataSub = new Subject(false);\r\n // this.handleFilter(null);\r\n // interval(2000).pipe(takeUntil(this.loadInfiniteDataSub)).subscribe(() => {\r\n // this.onSearch({ component: null, text: value });\r\n // if (justOneTime) {\r\n // this.handleClose();\r\n // }\r\n // });\r\n });\r\n }\r\n\r\n handleOpen() {\r\n if (this.data.HasInfiniteScroll) {\r\n this.handleFilter(null);\r\n // // if (this.loadInfiniteDataSub) {\r\n // // this.loadInfiniteDataSub.unsubscribe();\r\n // // }\r\n // // this.loadInfiniteDataSub = new Subject();\r\n // // // this.handleFilter(null);\r\n // // interval(3000).pipe(takeUntil(this.loadInfiniteDataSub)).subscribe(() => {\r\n // // this.handleFilter(null);\r\n // // });\r\n }\r\n }\r\n\r\n handleClose() {\r\n // if (this.data.HasInfiniteScroll) {\r\n // if (this.loadInfiniteDataSub) {\r\n // this.loadInfiniteDataSub.next(true);\r\n // // this.loadInfiniteDataSub.complete();\r\n // }\r\n // }\r\n }\r\n\r\n handleBlur() {\r\n // this.handleClose();\r\n }\r\n\r\n getItemTemplate(\r\n item: any,\r\n data: any,\r\n group: any,\r\n itemValueField: string,\r\n itemTextField: string\r\n ) {\r\n // ToDO: itemValueField and itemTextField\r\n if (this.data.ItemTemplate) {\r\n const getTemplateFunc = ZComponentHelper.getGroupEvalValue.call(this, this.data.ItemTemplate);\r\n\r\n return getTemplateFunc({\r\n item,\r\n data,\r\n group,\r\n itemValueField,\r\n itemTextField\r\n } as ZSelectMultipleTemplateParams);\r\n } else if (itemTextField) {\r\n return item[itemTextField];\r\n } else {\r\n // return item[itemTextField];\r\n return Object.values(item).join(\", \");\r\n }\r\n }\r\n\r\n getReadOnlyValue() {\r\n const readOnlyValue = ZComponentHelper.getGroupEvalValue.call(this, this.data.ReadOnly);\r\n if (typeof readOnlyValue === 'function') {\r\n const callFunc = readOnlyValue.bind(this.group.ctrlScope);\r\n return callFunc(this.group);\r\n }\r\n return readOnlyValue;\r\n }\r\n\r\n getIsRequiredValue() {\r\n const IsRequiredValue = ZComponentHelper.getGroupEvalValue.call(this, this.data.IsRequired);\r\n if (typeof IsRequiredValue === 'function') {\r\n const callFunc = IsRequiredValue.bind(this.group.ctrlScope);\r\n return callFunc(this.group);\r\n\r\n }\r\n return IsRequiredValue;\r\n }\r\n\r\n getGroupValue(value: string, group: ZGroup) {\r\n return ZComponentHelper.getGroupValue(value, group);\r\n }\r\n\r\n getClass(form: FormGroup, data: ZField) {\r\n const ionInvalidClass = this.getIon_InvalidClass(form, data);\r\n return `${ionInvalidClass ? ionInvalidClass : ''} ${this.data.Class}`;\r\n }\r\n\r\n getIon_InvalidClass(form: FormGroup, data: ZField) {\r\n if (!form) {\r\n //debugger;\r\n }\r\n return ZComponentHelper.getIon_InvalidClass(form, data);\r\n }\r\n\r\n onAddItem(event: any) {\r\n const f = ZComponentHelper.getGroupEvalValue.call(this, this.data.OnAddItem);\r\n if (typeof f === 'function') {\r\n const callFunc = f.bind(this.group.ctrlScope);\r\n return callFunc();\r\n }\r\n console.warn('Invalid declaration of OnAddItem: ', f);\r\n return;\r\n }\r\n\r\n // Component basic function\r\n clearData() {\r\n ZComponentHelper.setModelValue(this.data.Value, \"\", this.group);\r\n }\r\n\r\n clearItems() {\r\n this.selectComponent.clear();\r\n this.selectComponent.close();\r\n }\r\n\r\n confirmItems() {\r\n this.selectComponent.confirm();\r\n this.selectComponent.close();\r\n }\r\n\r\n toggleItems() {\r\n this.selectComponent.toggleItems(this.toggleSelectable);\r\n this.toggleSelectable = !this.toggleSelectable;\r\n\r\n // Confirm items and close Select page\r\n // without having the user to click Confirm button.\r\n // this.confirm();\r\n }\r\n\r\n // Extra icon beside dropdown. Mainly for popup\r\n onIconClick(clickAction: string) {\r\n this.onNavigateTo(clickAction); \r\n }\r\n\r\n onNavigateTo(clickAction: string) {\r\n const n = ZComponentHelper.getGroupEvalValue.call(this, clickAction);\r\n if (n) {\r\n this.group.subject.next({\r\n type: 'ztext-onNavigateTo',\r\n target: clickAction,\r\n data: this.group.zModel[this.data.Value]\r\n } as ZComponentOutputEvent);\r\n }\r\n }\r\n\r\n // Disable Open On Focus\r\n disableOpenOnFocus(comboboxComponent: any) {\r\n if (this.data.DisableOpenOnFocus) {\r\n return null;\r\n }\r\n else {\r\n return comboboxComponent;\r\n }\r\n }\r\n\r\n // OnChange\r\n private onChangeEvent(value: string) {\r\n if (this.data.HasInfiniteScroll && !!this.data.InfiniteScroll$) {\r\n const textField = this.itemTextField.toString();\r\n const valueField = this.itemValueField.toString();\r\n let zdataModel = [];\r\n if (value) {\r\n zdataModel = this.infinitezData.filter(x => x[valueField] === value);\r\n this.modelzData = zdataModel.slice();\r\n }\r\n if (this.itemDataField.startsWith('group.zData.')) {\r\n this.group.zData[this.itemDataField.slice(12)] = zdataModel;\r\n } else if (this.itemDataField.startsWith('group.')) {\r\n this.group[this.itemDataField.slice(6)] = zdataModel;\r\n }\r\n }\r\n\r\n this.group.subject.next({\r\n type: \"onChange\",\r\n target: this.data.OnChange,\r\n event,\r\n data: { value, field: this.data }\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n onValueChange(value: any) {\r\n // console.log(\"zselectmultiple (onValueChange): \", value);\r\n ZComponentHelper.setModelValue(this.data.Value, value, this.group);\r\n this.onChangeEvent(value);\r\n }\r\n\r\n onChange(event: { component: IonicSelectableComponent; value: any }) {\r\n console.log(\"zselectmultiple (onChange): \", event.value);\r\n ZComponentHelper.setModelValue(this.data.Value, event.value, this.group);\r\n const fc = this.form.controls[this.data.Value];\r\n this.handleClose();\r\n\r\n if (\r\n // this.data.IsRequired &&\r\n this.getIsRequiredValue() &&\r\n (event.value === null || event.value.length === 0)\r\n ) {\r\n fc.setErrors({ required: true });\r\n } else {\r\n fc.setErrors(null);\r\n }\r\n\r\n this.onChangeEvent(event.value);\r\n }\r\n\r\n // Common function\r\n public setEnable = (status: boolean) => {\r\n const fc = this.group.form.controls[this.data.Value];\r\n status ? fc.enable() : fc.disable();\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n public setLabelText(newText: string) {\r\n this.data.Label = newText;\r\n }\r\n\r\n isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n\r\n /********** TooltipsInfo **********/\r\n public setTooltipsInfoClass() {\r\n if (this.tooltipsInfo && !this.showTooltipsInfoIcon && this.showTooltipsInfoBySide) {\r\n return 'tooltipsinfo-text';\r\n }\r\n return 'tooltipsinfo-text-wide';\r\n }\r\n\r\n public setTooltipsInfoColor() {\r\n if (this.tooltipsInfo) {\r\n if (this.tooltipsInfo.TextColor) {\r\n return this.tooltipsInfo.TextColor;\r\n }\r\n }\r\n\r\n return \"#acacac\"; // default grey\r\n }\r\n\r\n public setTooltipsInfoIcon(displayIcon?: string) {\r\n if (this.showTooltipsInfoIcon) {\r\n if (this.tooltipsInfo.Icon != '') {\r\n if (displayIcon) {\r\n this.tooltipsDisplayIcon = displayIcon;\r\n }\r\n else {\r\n this.tooltipsDisplayIcon = this.tooltipsInfo.Icon;\r\n }\r\n }\r\n else {\r\n this.tooltipsDisplayIcon = 'question-circle'\r\n }\r\n }\r\n }\r\n\r\n public setTooltipsDisplayText(displayText?: string) {\r\n if (this.tooltipsInfo) {\r\n if (displayText) {\r\n this.tooltipsDisplayText = displayText;\r\n }\r\n else {\r\n this.tooltipsDisplayText = this.tooltipsInfo.DisplayText;\r\n }\r\n }\r\n else {\r\n this.tooltipsDisplayText = '<Display text error>';\r\n }\r\n }\r\n\r\n public setTooltipsInfoSideBySide() {\r\n if (this.tooltipsInfo) {\r\n if (this.showTooltipsInfoBySide && !this.showTooltipsInfoIcon ) {\r\n return 'ion-row divselectmultiple tooltipsinfo-right';\r\n }\r\n }\r\n return 'ion-row divselectmultiple';\r\n }\r\n \r\n public getFontAwesome(iconName: string) {\r\n return ZComponentHelper.getFontAwesome(iconName);\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input, ViewChild } from '@angular/core';\r\nimport { FormGroup, Validators } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { TabStripComponent } from '@progress/kendo-angular-layout';\r\n\r\n/********** Component & Service **********/\r\nimport { \r\n ZComponent, ZComponentHelper, ZTabItem, ZGroup, ZField, \r\n ZComponentProperties, AuthService \r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-ztab',\r\n templateUrl: './ztab.component.html',\r\n styleUrls: ['./ztab.component.scss'],\r\n})\r\nexport class ZtabComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n // private lastSelectedTabIndex: number;\r\n @ViewChild('kendoTabStripInstance') public tabstrip: TabStripComponent;\r\n public state = {\r\n lastSelectedTabIndex: 0,\r\n currentTabs: Array<ZTabItem>(),\r\n allTabs: Array<ZTabItem>()\r\n };\r\n\r\n componentProperties = new ZComponentProperties();\r\n\r\n constructor(\r\n private authService: AuthService\r\n ) {\r\n // this.lastSelectedTabIndex = 0;\r\n }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n ZComponentHelper.setFieldsDivClass(this.group._projectName, this.group.fieldName, this.data, this.authService);\r\n this.setCurrentTabs();\r\n this.restoreTabSelection();\r\n }\r\n\r\n private setCurrentTabs() {\r\n this.state.currentTabs = new Array<ZTabItem>();\r\n\r\n if (Array.isArray(this.data.Label)) {\r\n let validIcon = false;\r\n if (this.data.Icon && Array.isArray(this.data.Icon) && this.data.Icon.length === this.data.Label.length) {\r\n validIcon = true;\r\n }\r\n\r\n // eslint-disable-next-line guard-for-in\r\n for (const index in this.data.Label) {\r\n this.state.currentTabs.push(\r\n {\r\n Label: this.data.Label[index],\r\n Icon: validIcon ? this.data.Icon[index] : null,\r\n Visible: true,\r\n Index: parseInt(index)\r\n });\r\n }\r\n this.state.allTabs = this.state.currentTabs;\r\n\r\n if (this.data.TabVisibleFalseIndex) {\r\n this.setTabsVisible(this.data.TabVisibleFalseIndex, false);\r\n }\r\n\r\n } else if (this.data.TabItems) {\r\n let ind = 0;\r\n for (const field of this.data.TabItems) {\r\n this.state.currentTabs.push(\r\n {\r\n Label: field.Label as string,\r\n Icon: field.Icon ? field.Icon as string : null,\r\n Visible: ZComponentHelper.getGroupValue(field.Visible as string, this.group),\r\n Counter: typeof (field[\"Counter\"]) === \"string\" ? ZComponentHelper.getGroupValue(field[\"Counter\"] as string, this.group) : field[\"Counter\"],\r\n Index: ind++\r\n });\r\n }\r\n this.state.allTabs = this.state.currentTabs;\r\n }\r\n }\r\n\r\n private refreshCurrentTabs() {\r\n const previousStateTabs = this.state.allTabs;\r\n\r\n if (Array.isArray(this.data.Label)) {\r\n this.state.currentTabs = new Array<ZTabItem>();\r\n let validIcon = false;\r\n if (this.data.Icon && Array.isArray(this.data.Icon) && this.data.Icon.length === this.data.Label.length) {\r\n validIcon = true;\r\n }\r\n\r\n // eslint-disable-next-line guard-for-in\r\n for (const index in this.data.Label) {\r\n const previousTab = previousStateTabs.filter(x => x.Label == this.data.Label[index]);\r\n const previousTabVisible = previousTab.length > 0 ? previousTab[0].Visible : false;\r\n\r\n const isVisible = previousTabVisible;\r\n if (isVisible) {\r\n this.state.currentTabs.push(\r\n {\r\n Label: this.data.Label[index],\r\n Icon: validIcon ? this.data.Icon[index] : null,\r\n Visible: true,\r\n Index: parseInt(index)\r\n });\r\n }\r\n }\r\n } else {\r\n Object.assign(this.state.currentTabs, this.state.allTabs);\r\n }\r\n }\r\n\r\n ComponentIsVisible(field: ZField): any {\r\n return ZComponentHelper.ComponentIsVisible(field, this.group);\r\n }\r\n\r\n public selectTab = (index: number) => {\r\n this.state.lastSelectedTabIndex = index;\r\n }\r\n\r\n getSelectedTab(tabIndex: number) {\r\n return this.state.lastSelectedTabIndex === tabIndex;\r\n }\r\n\r\n public setSelectTab(tabIndex: number) {\r\n this.state.lastSelectedTabIndex = tabIndex;\r\n }\r\n\r\n restoreTabSelection(): void {\r\n if (this.data.AllowSaveState === false) {\r\n return;\r\n }\r\n\r\n let tabSelections: Map<string, number> = \"tabSelections\" in this.group ? this.group['tabSelections'] : null;\r\n if (tabSelections !== null && tabSelections.has(this.data.Name)) { // subsequent loads\r\n this.state.lastSelectedTabIndex = tabSelections.get(this.data.Name);\r\n\r\n } else if (tabSelections === null) { // first load of first tab\r\n tabSelections = new Map<string, number>();\r\n this.group['tabSelections'] = tabSelections;\r\n tabSelections.set(this.data.Name, 0);\r\n\r\n } else if (!tabSelections.has(this.data.Name)) { // first load of rest tabs\r\n tabSelections.set(this.data.Name, 0);\r\n }\r\n }\r\n\r\n public onTabSelect(e) {\r\n this.state.lastSelectedTabIndex = e.index;\r\n this.saveState(e);\r\n\r\n const func = ZComponentHelper.getGroupEvalValue.call(this, this.data.ClickEvent);\r\n if (typeof func === 'function') {\r\n const callFunc = func.bind(this.group.ctrlScope);\r\n callFunc(e);\r\n }\r\n }\r\n\r\n private saveState(e) {\r\n if (this.data.AllowSaveState === false) {\r\n return;\r\n }\r\n\r\n const tabSelections = this.group['tabSelections'] as Map<string, number>;\r\n tabSelections.set(this.data.Name, e.index);\r\n }\r\n\r\n public setTabsVisible = (tabIndexes: number[], status: boolean) => {\r\n if (this.state.allTabs.length <= Math.max.apply(null, tabIndexes) || Math.min.apply(null, tabIndexes) < 0) {\r\n console.log(\"Invalid Tab index : \" + tabIndexes.join(\",\"));\r\n return;\r\n }\r\n\r\n tabIndexes.forEach(index => {\r\n this.state.allTabs[index].Visible = status;\r\n });\r\n this.refreshCurrentTabs();\r\n }\r\n\r\n public setTabCounter = (tabIndex: number, counter: number | string) => {\r\n const labels = this.data.Label ? this.data.Label : this.data.TabItems;\r\n if (labels.length <= tabIndex || tabIndex < 0) {\r\n console.log(\"Invalid Tab index : \" + tabIndex);\r\n return;\r\n }\r\n\r\n this.state.currentTabs[tabIndex].Counter = counter;\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n getFontAwesome(iconName: string) {\r\n return ZComponentHelper.getFontAwesome(iconName);\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { FormGroup, Validators } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n ZGroup, ZField, ZComponentProperties,\r\n ZComponent, ZComponentHelper, ZComponentOutputEvent, ClickableIcons, AdornmentProperties, TooltipsInfoProperties\r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: \"app-ztext\",\r\n templateUrl: \"./ztext.component.html\",\r\n styleUrls: [\"./ztext.component.scss\"]\r\n})\r\nexport class ZtextComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n @Input() iconList: ClickableIcons[];\r\n @Input() adornmentList: any[];\r\n\r\n componentProperties = new ZComponentProperties();\r\n public showTooltipsInfoIcon: boolean = false;\r\n public showTooltipsInfoBySide: boolean = false;\r\n public tooltipsInfo: TooltipsInfoProperties = null;\r\n public tooltipsDisplayText: string = null;\r\n public tooltipsDisplayIcon: any;\r\n public showClearButton: any;\r\n public clearButtonIcon: string = \"time-circle\";\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n // this.fControl = this.form.controls[this.data.Value]; //.get(this.data.Value);\r\n // this.fControl = this.form.get(this.data.Value) as FormControl;\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n this.adornmentList = this.data.AdornmentList;\r\n\r\n if (this.data.OnClick && !this.data.ReadOnly) {\r\n this.componentProperties.isReadOnly = true;\r\n }\r\n\r\n if (!this.componentProperties.isReadOnly) {\r\n this.showClearButton = this.data.ClearButton;\r\n }\r\n\r\n this.tooltipsInfo = this.data.TooltipsInfo;\r\n if (this.tooltipsInfo) {\r\n if ((this.tooltipsInfo.Icon != null || this.tooltipsInfo.Icon != undefined) && !this.isMobileScreen()) {\r\n this.showTooltipsInfoIcon = true;\r\n this.setTooltipsInfoIcon();\r\n }\r\n if (this.tooltipsInfo.SideBySide) {\r\n this.showTooltipsInfoBySide = true;\r\n }\r\n this.setTooltipsDisplayText();\r\n }\r\n\r\n // Handle Clickable Icons\r\n this.iconList = this.data.ClickableIcons;\r\n if (this.iconList) {\r\n if (this.iconList.length > 0) {\r\n this.iconList.forEach((i: any) => {\r\n if (i.Tooltip === undefined) {\r\n i.Tooltip = \"\";\r\n } else {\r\n if (i.Tooltip.indexOf(\"group.\") !== -1) {\r\n i.Tooltip = ZComponentHelper.getGroupEvalValue.call(this, i.Tooltip);\r\n }\r\n }\r\n // Default position top. right | bottom | top | left\r\n if (i.Position === undefined) {\r\n i.Position = \"top\";\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n mapInputType(fieldType: string): string {\r\n switch (fieldType) {\r\n case \"date\":\r\n return \"date\";\r\n case \"ztext\":\r\n return \"text\";\r\n case \"number\":\r\n return \"number\";\r\n case \"currency\":\r\n return \"number\";\r\n case \"email\":\r\n return \"email\";\r\n case \"password\":\r\n return \"password\";\r\n case \"search\":\r\n return \"search\";\r\n case \"tel\":\r\n return \"tel\";\r\n case \"text\":\r\n return \"text\";\r\n case \"time\":\r\n return \"time\";\r\n case \"url\":\r\n return \"url\";\r\n default:\r\n return \"text\";\r\n }\r\n }\r\n\r\n mapInputMode(fieldType: string): string {\r\n switch (fieldType) {\r\n case \"date\":\r\n return \"none\";\r\n case \"ztext\":\r\n return \"text\";\r\n case \"number\":\r\n return \"decimal\";\r\n case \"currency\":\r\n return \"decimal\";\r\n case \"email\":\r\n return \"email\";\r\n case \"password\":\r\n return \"text\";\r\n case \"search\":\r\n return \"search\";\r\n case \"tel\":\r\n return \"tel\";\r\n case \"text\":\r\n return \"text\";\r\n case \"time\":\r\n return \"none\";\r\n case \"url\":\r\n return \"url\";\r\n default:\r\n return \"text\";\r\n }\r\n }\r\n\r\n getReadOnlyValue() {\r\n const readOnlyValue = ZComponentHelper.getGroupEvalValue.call(this, this.data.ReadOnly);\r\n if (typeof readOnlyValue === 'function') {\r\n return readOnlyValue();\r\n }\r\n return readOnlyValue;\r\n }\r\n\r\n isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n const fc = this.group.form.controls[this.data.Value];\r\n status ? fc.enable() : fc.disable();\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n getIon_InvalidClass(form: FormGroup, data: ZField) {\r\n return ZComponentHelper.getIon_InvalidClass(form, data);\r\n }\r\n\r\n public getStyle(RightAlign: boolean) {\r\n let ngStyle = \"\";\r\n if (RightAlign) {\r\n ngStyle += \"right\";\r\n } else {\r\n ngStyle += \"left\";\r\n }\r\n return ngStyle;\r\n }\r\n\r\n public setTextboxClass() {\r\n if (this.data.OnClick && !this.data.ReadOnly) {\r\n return \"notmobile-textbox-onfocus\";\r\n }\r\n return \"notmobile-textbox\";\r\n }\r\n\r\n /********** Textbox Event **********/\r\n public textboxOnClick(): void {\r\n //console.log('TextBox is focused: ', event);\r\n this.group.subject.next({\r\n type: \"ztext-OnClick\",\r\n target: this.data.OnClick,\r\n event,\r\n data: { value: event['OnClick'], field: this.data }\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n onChange(event: any) {\r\n // console.log('ztext.component - onChange: ', event.target.value); \r\n ZComponentHelper.setComponentModelValue(this.data, event.target.value, this.group);\r\n this.group.subject.next({\r\n type: \"onChange\",\r\n target: this.data.OnChange,\r\n event,\r\n data: { value: event.data, field: this.data }\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n /********** Icon Button **********/\r\n onIconClick(clickAction: string) {\r\n this.onNavigateTo(clickAction);\r\n }\r\n\r\n onNavigateTo(clickAction: string) {\r\n const n = ZComponentHelper.getGroupEvalValue.call(this, clickAction);\r\n if (n) {\r\n this.group.subject.next({\r\n type: 'ztext-onNavigateTo',\r\n target: clickAction,\r\n data: this.group.zModel[this.data.Value]\r\n } as ZComponentOutputEvent);\r\n }\r\n }\r\n\r\n\r\n /********** Adornment **********/\r\n public getAdornmentBackgroundColor(adornment: AdornmentProperties) {\r\n if (adornment.BackgroundColor) {\r\n return adornment.BackgroundColor + \"!important\";\r\n }\r\n\r\n return \"transparent !important\";\r\n }\r\n\r\n public adornmentLook(adornment: AdornmentProperties) {\r\n if (adornment.AdornmentLook) {\r\n return adornment.AdornmentLook;\r\n }\r\n\r\n return 'clear'\r\n }\r\n\r\n public onAdornmentClick(adornment: AdornmentProperties) {\r\n if (adornment.OnClick) {\r\n this.group.subject.next({\r\n type: 'ztext-adornment',\r\n target: adornment.OnClick,\r\n data: adornment\r\n } as ZComponentOutputEvent);\r\n }\r\n }\r\n\r\n public readOnlyOnClear() {\r\n ZComponentHelper.setModelValue(this.data.Value, null, this.group);\r\n }\r\n\r\n /********** TooltipsInfo **********/\r\n public setTooltipsInfoClass() {\r\n if (this.tooltipsInfo && !this.showTooltipsInfoIcon && this.showTooltipsInfoBySide) {\r\n return 'tooltipsinfo-text';\r\n }\r\n return 'tooltipsinfo-text-wide';\r\n }\r\n\r\n public setTooltipsInfoColor() {\r\n if (this.tooltipsInfo) {\r\n if (this.tooltipsInfo.TextColor) {\r\n return this.tooltipsInfo.TextColor;\r\n }\r\n }\r\n\r\n return \"#acacac\"; // default grey\r\n }\r\n\r\n public setTooltipsInfoIcon(displayIcon?: string) {\r\n if (this.showTooltipsInfoIcon) {\r\n if (this.tooltipsInfo.Icon != '') {\r\n if (displayIcon) {\r\n this.tooltipsDisplayIcon = displayIcon;\r\n }\r\n else {\r\n this.tooltipsDisplayIcon = this.tooltipsInfo.Icon;\r\n }\r\n }\r\n else {\r\n this.tooltipsDisplayIcon = 'question-circle'\r\n }\r\n }\r\n }\r\n\r\n public setTooltipsDisplayText(displayText?: string) {\r\n if (this.tooltipsInfo) {\r\n if (displayText) {\r\n this.tooltipsDisplayText = displayText;\r\n }\r\n else {\r\n this.tooltipsDisplayText = this.tooltipsInfo.DisplayText;\r\n }\r\n }\r\n else {\r\n this.tooltipsDisplayText = '<Display text error>';\r\n }\r\n }\r\n\r\n public setTooltipsInfoSideBySide() {\r\n if (this.tooltipsInfo) {\r\n if (this.showTooltipsInfoBySide && !this.showTooltipsInfoIcon && this.adornmentList.length < 1) {\r\n return 'ion-row divtextbox tooltipsinfo-right';\r\n }\r\n }\r\n return 'ion-row divtextbox';\r\n }\r\n\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from '@angular/core';\r\nimport { FormGroup, Validators } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n ZComponent, ZComponentHelper, ZComponentOutputEvent,\r\n ZField, ZGroup, ZComponentProperties\r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-ztextarea',\r\n templateUrl: './ztextarea.component.html',\r\n styleUrls: ['./ztextarea.component.scss'],\r\n})\r\nexport class ZtextareaComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n itemValueField: string = null;\r\n itemTextField: string = null;\r\n itemDataField: string = null;\r\n itemTemplate = \"{{item[itemTextField]}}\";\r\n infinitezData: Array<any> = [];\r\n infiniteSearchText = null;\r\n modelzData: Array<any>;\r\n\r\n componentProperties = new ZComponentProperties();\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n }\r\n\r\n\r\n public setEnable = (status: boolean) => {\r\n const fc = this.group.form.controls[this.data.Value];\r\n status ? fc.enable() : fc.disable();\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n onValueChange(value: any) {\r\n // console.log(\"zselectmultiple (onValueChange): \", value);\r\n ZComponentHelper.setModelValue(this.data.Value, value, this.group);\r\n this.onChangeEvent(value);\r\n }\r\n\r\n private onChangeEvent(value: string) {\r\n if (this.data.HasInfiniteScroll && !!this.data.InfiniteScroll$) {\r\n const textField = this.itemTextField.toString();\r\n const valueField = this.itemValueField.toString();\r\n let zdataModel = [];\r\n if (value) {\r\n zdataModel = this.infinitezData.filter(x => x[valueField] === value);\r\n this.modelzData = zdataModel.slice();\r\n }\r\n if (this.itemDataField.startsWith('group.zData.')) {\r\n this.group.zData[this.itemDataField.slice(12)] = zdataModel;\r\n } else if (this.itemDataField.startsWith('group.')) {\r\n this.group[this.itemDataField.slice(6)] = zdataModel;\r\n }\r\n }\r\n\r\n\r\n this.group.subject.next({\r\n type: \"onChange\",\r\n target: this.data.OnChange,\r\n event,\r\n data: { value, field: this.data }\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n getReadOnlyValue() {\r\n const readOnlyValue = ZComponentHelper.getGroupEvalValue.call(this, this.data.ReadOnly, this.group);\r\n if (typeof readOnlyValue === 'function') {\r\n return readOnlyValue();\r\n }\r\n return readOnlyValue;\r\n }\r\n\r\n isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n\r\n getIon_InvalidClass(form: FormGroup, data: ZField) {\r\n return ZComponentHelper.getIon_InvalidClass(form, data);\r\n }\r\n\r\n getClass(form: FormGroup, data: ZField) {\r\n const ionInvalidClass = this.getIon_InvalidClass(form, data);\r\n return `${ionInvalidClass ? ionInvalidClass : ''} ${this.data.Class}`;\r\n }\r\n\r\n onClick() {\r\n if (this.data.OnItemClick) {\r\n this.group.subject.next({\r\n type: \"ztextarea-onClick\",\r\n target: this.data.OnItemClick,\r\n data: this.form.value\r\n } as ZComponentOutputEvent);\r\n }\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input, OnDestroy } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n ZField, ZGroup, ZComponentProperties,\r\n ZComponent, ZComponentHelper\r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-ztexteditor',\r\n templateUrl: './ztexteditor.component.html',\r\n styleUrls: ['./ztexteditor.component.scss'],\r\n})\r\nexport class ZtexteditorComponent implements ZComponent, OnInit, OnDestroy {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n componentProperties = new ZComponentProperties();\r\n private widthReduce: number;\r\n private heightReduce: number;\r\n public value = \"\";\r\n labelText = \"\";\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n this.widthReduce = this.data.WidthReduce || 60;\r\n this.heightReduce = this.data.HeightReduce || 560;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n getIon_InvalidClass(form: FormGroup, data: ZField) {\r\n return ZComponentHelper.getIon_InvalidClass(form, data);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n\r\n }\r\n\r\n getCompStyle() {\r\n return {\r\n \"height.px\": this.getCompHeight(),\r\n \"width.px\": window.innerWidth - this.widthReduce\r\n }\r\n }\r\n\r\n private getCompHeight() {\r\n const h = window.innerHeight - this.heightReduce;\r\n return (h < 250) ? 250 : h;\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input, ViewChild, ElementRef, AfterViewInit } from \"@angular/core\";\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport {\r\n TreeItemDropEvent,\r\n TreeItemDragEvent\r\n} from \"@progress/kendo-angular-treeview\";\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n ZComponent, ZComponentHelper, ZComponentOutputEvent, ZComponentProperties,\r\n ZField, ZGroup, ZTreeTemplateParams\r\n} from \"mmhglobal-zcore\";\r\n\r\n@Component({\r\n selector: \"app-ztree\",\r\n templateUrl: \"./ztree.component.html\",\r\n styleUrls: [\"./ztree.component.scss\"]\r\n})\r\nexport class ZtreeComponent implements ZComponent, OnInit, AfterViewInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n @ViewChild(\"nodetemplate\", { static: true }) nodetemplate: ElementRef;\r\n items: Array<any> = [];\r\n originalItemList: any = null;\r\n // modelzData: Array<any>;\r\n // modelName: string;\r\n // dataSet: any[] = null;\r\n isNodeDrop = false;\r\n private nodeCounter = 1;\r\n private clickActName = null;\r\n public state = { expandedkeys: [] };\r\n public itemIndex = [];\r\n public selectedKeys: any[] = [];\r\n public absoluteText: boolean = false;\r\n\r\n componentProperties = new ZComponentProperties();\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n if (this.data.TreeviewExpandAll) {\r\n this.expandAll();\r\n }\r\n\r\n // fix text align issue\r\n if (this.data.OnAddNode || this.data.OnRemoveNode) {\r\n this.absoluteText = true; \r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n // const componentId = ZComponentHelper.getComponentId(this.data);\r\n // this.group.zComponents[componentId] = this;\r\n ZComponentHelper.registerComponent(this);\r\n }\r\n\r\n getItems() {\r\n // if (this.modelName) {\r\n // return this.group[this.modelName];\r\n // }\r\n const fieldValue = this.data.Value;\r\n if (fieldValue) {\r\n this.nodeCounter = 1;\r\n const fValue = ZComponentHelper.getGroupEvalValue.call(this, this.data.Value);\r\n return fValue;\r\n } else {\r\n console.warn('ztree field Value is not set correctly. ', fieldValue);\r\n }\r\n // if (fieldValue && fieldValue.startsWith('group.')) {\r\n // // const newDataSet = JSON.parse(JSON.stringify(this.dataSet));\r\n // const name = fieldValue.slice(6);\r\n // this.nodeCounter = 1;\r\n // // this.group[name] = this.setValuePropToNullAtLeafLeave(this.group[name]);\r\n // this.modelName = name;\r\n // return this.group[name];\r\n // } else {\r\n // console.warn('ztree field Value is not set correctly. ', fieldValue);\r\n // }\r\n }\r\n\r\n public isExpanded = (dataItem: any, index: string) => {\r\n // console.log(index);\r\n return this.state.expandedkeys.indexOf(index) > -1;\r\n // return true;\r\n }\r\n\r\n public expandNode = (field:string, value: string, setAsSelected: boolean) => {\r\n this.itemIndex = [];\r\n const node = this.getItems();\r\n\r\n this.searchNodeIndex(node, value, '', field);\r\n\r\n const index = this.itemIndex;\r\n if (setAsSelected) {\r\n this.selectedKeys = index;\r\n }\r\n const indexArr = [];\r\n index.forEach((i:any) => {\r\n const arr = i.split('_');\r\n let indexs = \"\";\r\n arr.forEach((x:any) => {\r\n indexs = indexs.concat(\"_\").concat(x);\r\n indexArr.push(indexs.substring(1));\r\n })\r\n });\r\n this.state.expandedkeys = this.state.expandedkeys.concat(indexArr);\r\n }\r\n\r\n public collapseNode = (field:string, value: string, collapseParent: boolean) => {\r\n this.itemIndex = [];\r\n const node = this.getItems();\r\n\r\n this.searchNodeIndex(node, value, '', field);\r\n\r\n const index = this.itemIndex;\r\n let indexArr = [];\r\n if (collapseParent) {\r\n index.forEach((i:any) => {\r\n const arr = i.split('_');\r\n let indexs = \"\";\r\n arr.forEach((x:any) => {\r\n indexs = indexs.concat(\"_\").concat(x);\r\n indexArr.push(indexs.substring(1));\r\n })\r\n });\r\n } else {\r\n indexArr = index;\r\n }\r\n\r\n this.state.expandedkeys = this.state.expandedkeys.filter(v => {\r\n return !indexArr.includes(v);\r\n });\r\n }\r\n\r\n public searchNodeIndex(node: any, value: string, key: string, field: string) {\r\n if (key) {\r\n key = key + '_';\r\n }\r\n node.forEach((d: any, i: number) => {\r\n if (d[field] === Number(value) || d[field] === value) {\r\n this.itemIndex = this.itemIndex.concat(key + '' + i);\r\n }\r\n if (Array.isArray(d.Value)) {\r\n const k = key + '' + i;\r\n this.searchNodeIndex(d.Value, value, k, field);\r\n }\r\n });\r\n }\r\n\r\n public expandAll = () => {\r\n const node = this.getItems();\r\n if (node) {\r\n this.expandAllNode(node, '');\r\n } \r\n }\r\n\r\n public collapseAll = () => {\r\n this.state.expandedkeys = [];\r\n }\r\n\r\n private expandAllNode(node: any, key: string) {\r\n if (key) {\r\n key = key + '_';\r\n }\r\n node.forEach((d: any, i: number) => {\r\n if (Array.isArray(d.Value)) {\r\n const k = key + '' + i;\r\n this.state.expandedkeys = this.state.expandedkeys.concat(k);\r\n this.expandAllNode(d.Value, k);\r\n }\r\n });\r\n }\r\n\r\n public handleCollapse(node) {\r\n this.state.expandedkeys = this.state.expandedkeys.filter(k => k !== node.index);\r\n }\r\n\r\n public handleExpand(node) {\r\n this.state.expandedkeys = this.state.expandedkeys.concat(node.index);\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n getTemplate(dataItem: any, data: ZField, group: ZGroup) {\r\n if (data.ItemTemplate) {\r\n const getTemplateFunc = ZComponentHelper.getGroupEvalValue.call(\r\n this,\r\n data.ItemTemplate\r\n );\r\n if (!getTemplateFunc) {\r\n console.warn(\r\n \"The (\" +\r\n data.ItemTemplate +\r\n \") is not defined correctly. Value contains: \",\r\n getTemplateFunc\r\n );\r\n return;\r\n }\r\n\r\n return getTemplateFunc({\r\n dataItem,\r\n data,\r\n group\r\n } as ZTreeTemplateParams);\r\n } else {\r\n return Object.values(dataItem)\r\n .filter(data => typeof data === \"string\")\r\n .join(\", \");\r\n }\r\n }\r\n\r\n convertToTreeItems(dataSet: any[]) {\r\n const toTreeItems: any[] = [];\r\n const treeIndex: any = {};\r\n const pendingItems: any[] = [];\r\n dataSet.forEach((d: any) => {\r\n if (!d.ParentId) {\r\n toTreeItems.push(d);\r\n treeIndex[d.Id] = d;\r\n } else {\r\n if (treeIndex[d.ParentId]) {\r\n const parentItem = treeIndex[d.ParentId];\r\n if (!parentItem.Value) {\r\n parentItem.Value = [];\r\n }\r\n parentItem.Value.push(d);\r\n treeIndex[d.Id] = d;\r\n } else {\r\n pendingItems.push(d);\r\n }\r\n }\r\n });\r\n\r\n if (pendingItems.length > 0) {\r\n pendingItems.forEach((d: any) => {\r\n if (treeIndex[d.ParentId]) {\r\n const parentItem = treeIndex[d.ParentId];\r\n parentItem.Value.push(d);\r\n treeIndex[d.Id] = d;\r\n }\r\n });\r\n }\r\n\r\n return toTreeItems;\r\n }\r\n\r\n onSelectionChange(event: any) {\r\n let targetName: string;\r\n if (this.clickActName) {\r\n switch (this.clickActName) {\r\n case 'AddNode':\r\n targetName = this.data.OnAddNode;\r\n break;\r\n case 'RemoveNode':\r\n targetName = this.data.OnRemoveNode;\r\n break;\r\n }\r\n } else {\r\n targetName = this.data.OnItemClick;\r\n }\r\n this.clickActName = null;\r\n this.group.subject.next({\r\n type: \"ztree_onSelectionChange\",\r\n target: targetName,\r\n data: event.dataItem,\r\n event: event.index\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n onAddNode(event: any, dataItem: any, data: ZField, group: ZGroup) {\r\n this.clickActName = 'AddNode';\r\n // event.stopPropagation();\r\n // if (this.data.OnAddNode) {\r\n // const func = ZComponentHelper.getGroupEvalValue.call(this, this.data.OnAddNode);\r\n // if (typeof func === 'function') {\r\n // const callFunc = func.bind(this.group.ctrlScope);\r\n // callFunc(dataItem, data, group, event.index);\r\n // }\r\n // return;\r\n // }\r\n }\r\n\r\n onRemoveNode(event: any, dataItem: any, data: ZField, group: ZGroup) {\r\n this.clickActName = 'RemoveNode';\r\n }\r\n\r\n onEditNode(event: any) {\r\n if (this.data.OnEditNode) {\r\n const func = ZComponentHelper.getGroupEvalValue.call(this, this.data.OnEditNode);\r\n if (typeof func === 'function') {\r\n const callFunc = func.bind(this.group.ctrlScope);\r\n callFunc(event);\r\n }\r\n return;\r\n }\r\n }\r\n\r\n handleNodeDrop(event: TreeItemDropEvent): void {\r\n if(this.data.Draggable === false){\r\n event.setValid(false);\r\n return;\r\n }\r\n\r\n this.isNodeDrop = true;\r\n const dropHandler = ZComponentHelper.getGroupEvalValue.call(\r\n this,\r\n this.data.OnDrop\r\n );\r\n if (typeof dropHandler === \"function\") {\r\n const callFunc = dropHandler.bind(this);\r\n callFunc(event);\r\n }\r\n\r\n // prevent drop if attempting to add to file\r\n // if (isFile(event.destinationItem.item.dataItem.text) && event.dropPosition === DropPosition.Over) {\r\n // event.setValid(false);\r\n // }\r\n }\r\n\r\n handleNodeDragEnd(event: TreeItemDragEvent) {\r\n if (!this.isNodeDrop) {\r\n return;\r\n }\r\n this.isNodeDrop = false;\r\n const items = this.getItems();\r\n // console.log('Items: ', this.items);\r\n const target = [];\r\n this.updateChangeToDataSet(items, target);\r\n // this.dataSet = target;\r\n ZComponentHelper.setModelValue(this.data.Value, target, this.group);\r\n this.group.subject.next({\r\n type: \"ztree-onTreeNodeDragEnd\",\r\n target: this.data.OnChange,\r\n data: target\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n private updateChangeToDataSet(source: Array<any>, target: Array<any>) {\r\n source.forEach(d => {\r\n if (Array.isArray(d.Value)) {\r\n const t = JSON.parse(JSON.stringify(d));\r\n t.Value = [];\r\n target.push(t);\r\n this.updateChangeToDataSet(d.Value, t.Value);\r\n } else {\r\n const t = Object.assign({}, d);\r\n t.Value = t._DataValue;\r\n delete t._DataValue;\r\n target.push(t);\r\n }\r\n });\r\n }\r\n\r\n // #region search feature - filterable: true\r\n public handleFilter(value: string): void {\r\n if (this.items.length == 0) {\r\n this.items = ZComponentHelper.getGroupEvalValue.call(this, this.data.Value);\r\n if (this.originalItemList == null) {\r\n this.originalItemList = this.items.map(item => Object.assign({}, item));\r\n }\r\n }\r\n\r\n this.items = this.originalItemList.map(item => Object.assign({}, item));\r\n const target = this.search(this.items, value);\r\n const gridValue = this.filterPrefix(this.data.Value);\r\n this.group[gridValue] = target;\r\n }\r\n\r\n private filterPrefix(valueName: any) {\r\n if (valueName.startsWith('zData.')) {\r\n return valueName.slice(6);\r\n }\r\n if (valueName.startsWith('group.zData.')) {\r\n return valueName.slice(12);\r\n }\r\n if (valueName.startsWith('group.')) {\r\n return valueName.slice(6);\r\n }\r\n if (valueName) {\r\n return valueName;\r\n }\r\n }\r\n\r\n private search(items: any[], term: string): any[] {\r\n return items.reduce((acc, item) => {\r\n if (this.contains(item.Name, term)) {\r\n acc.push(item);\r\n } else if (item.Value && item.Value.length > 0) {\r\n const newItems = this.search(item.Value, term);\r\n\r\n if (newItems.length > 0) {\r\n var filterItem = item;\r\n filterItem.Value = newItems;\r\n acc.push(filterItem);\r\n }\r\n }\r\n return acc;\r\n }, []);\r\n }\r\n\r\n private contains(text: string, term: string): boolean {\r\n return text.toLowerCase().indexOf((term || \"\").toLowerCase()) >= 0;\r\n }\r\n // #endregion search feature - filterable: true\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input, OnDestroy } from \"@angular/core\";\r\nimport { FormControl, FormGroup, Validators } from \"@angular/forms\";\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { of, forkJoin, Observable, Subscription, Subject } from 'rxjs';\r\nimport { tap, switchMap } from 'rxjs/operators';\r\nimport { CellClickEvent } from '@progress/kendo-angular-treelist';\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n ZComponent, ZComponentHelper, ZComponentOutputEvent,\r\n ZField, ZGroup, ZComponentProperties, FieldService,\r\n WebApiService, AuthService\r\n} from \"mmhglobal-zcore\";\r\n\r\n\r\nexport interface ZTreeListColumn {\r\n field: string;\r\n title: string;\r\n width: number;\r\n visible: boolean | any;\r\n fieldType: string;\r\n navigateTo: string;\r\n command: any;\r\n class: any;\r\n footerTemplate: boolean;\r\n aggregateType: string;\r\n aggregateTitle: string;\r\n iconOnly?: boolean;\r\n}\r\n\r\nexport class ZTreeListOptions {\r\n constructor(\r\n public sortable?: boolean,\r\n public resizable?: boolean,\r\n public filterable?: boolean,\r\n public reorderable?: boolean,\r\n public columnMenu?: boolean,\r\n public scrollable?: boolean,\r\n public refresh?: boolean,\r\n public autoBind?: boolean,\r\n public dataSource?: string,\r\n public dataBound?: any,\r\n public idField?: string,\r\n public parentIdField?: string,\r\n public columns?: Array<any>,\r\n public aggregate?: any,\r\n public pageAble?: any,\r\n ) { }\r\n}\r\n\r\n@Component({\r\n selector: \"app-ztreelist\",\r\n templateUrl: \"./ztreelist.component.html\",\r\n styleUrls: [\"./ztreelist.component.scss\"],\r\n})\r\nexport class ZtreelistComponent implements ZComponent, OnInit, OnDestroy {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n // @ViewChild(ZTreeListBindingDirective, { static: false }) ztreelist: ZTreeListBindingDirective;\r\n ztreelist: any = null;\r\n subscription: Subscription;\r\n dataSource: string;\r\n idField = \"Id\";\r\n parentIdField = \"ParentId\";\r\n options: ZTreeListOptions = new ZTreeListOptions();\r\n componentProperties = new ZComponentProperties();\r\n fieldgridColVisible: any[];\r\n pageSize = 20;\r\n inlineEditedFormGroups: Array<any> = [];\r\n isLoading: boolean;\r\n treelistSubject: Subject<any> = new Subject<any>();\r\n // treelistSubject: Subject<any> = new Subject<any>();\r\n // subscription: Subscription;\r\n // ztreelist: any = null;\r\n // columns: any[];\r\n\r\n private widthReduce: number;\r\n\r\n private heightReduce: number;\r\n\r\n constructor(\r\n private fieldService: FieldService,\r\n private webapiService: WebApiService,\r\n private activatedRoute: ActivatedRoute,\r\n private router: Router,\r\n private authService: AuthService) { }\r\n // ngAfterViewInit(): void {\r\n // // this.ztreelist.setOptions({data: this.data, group: this.group});\r\n // }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n this.widthReduce = this.data.WidthReduce || 60;\r\n this.heightReduce = this.data.HeightReduce || 560;\r\n this.pageSize = this.data.PageSize || 20;\r\n if (!!this.data.Options) {\r\n this.setLocalOptions();\r\n } else {\r\n this.setFieldElementOptions();\r\n }\r\n \r\n }\r\n\r\n ngOnDestroy() {\r\n // if (this.subscription) {\r\n // this.subscription.unsubscribe();\r\n // }\r\n }\r\n\r\n getGridStyle() {\r\n // debugger;\r\n return {\r\n \"height.px\": this.getGridHeight(), // window.innerHeight - this.heightReduce, // 450,\r\n \"width.px\": window.innerWidth - this.widthReduce,\r\n }; // \"width.px\": this.innerWidth - 35\r\n }\r\n\r\n private getGridHeight() {\r\n const h = window.innerHeight - this.heightReduce;\r\n return h < 180 ? 180 : h;\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n const fc = this.group.form.controls[this.data.Value];\r\n status ? fc.enable() : fc.disable();\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n public setData = (gData: any) => {\r\n this.dataSource = gData;\r\n this.createFormControlsForInlineEdit(gData);\r\n if (gData && this.inlineEditedFormGroups && this.inlineEditedFormGroups.length > 0) {\r\n gData.forEach(data => {\r\n const fgVal = this.inlineEditedFormGroups.find(i => i[this.idField] === data[this.idField]);\r\n const fg = fgVal.Fg;\r\n if (fgVal && fg) {\r\n const ke = Object.keys(fg.controls);\r\n Object.keys(fg.controls).forEach(k => {\r\n const fc = fg.controls[k];\r\n if (fc) {\r\n fc.setValue(data[k]);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n public isButtonHidden(col: any, cellContain: any) {\r\n if (col.visible) {\r\n return ZComponentHelper.getGroupEvalValue.call(this, col.visible, cellContain.viewItem.data);\r\n }\r\n\r\n if (!col.hiddenParam || col.hiddenValue === 'undefined') {\r\n return false;\r\n }\r\n\r\n if (cellContain.viewItem.data[col.hiddenParam] === null) {\r\n return true;\r\n }\r\n\r\n if (cellContain.viewItem.data[col.hiddenParam] === col.hiddenValue) {\r\n return true;\r\n } else { return false; }\r\n }\r\n\r\n public buttonClick(button: any, cellContext: any) {\r\n if (button.edit) {\r\n button.edit(cellContext);\r\n } else {\r\n this.group.subject.next({\r\n type: \"buttonClick\",\r\n target: button.ClickEvent,\r\n data: cellContext\r\n } as ZComponentOutputEvent);\r\n }\r\n }\r\n\r\n public onNavigateTo(event: any, colSetting: any, rowData: any, cellData: string) {\r\n // debugger;\r\n // const n = colSetting.navigateTo.replace('/:id', cellData);\r\n event.stopPropagation();\r\n this.group.subject.next({\r\n type: 'zgrid-onNavigateTo',\r\n target: colSetting.navigateTo,\r\n data: cellData\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n public isColumnsVisible(fieldExpr) {\r\n if (fieldExpr !== false && !fieldExpr) {\r\n return true;\r\n }\r\n const v = ZComponentHelper.getGroupEvalValue.call(this, fieldExpr);\r\n return v;\r\n }\r\n\r\n private setLocalOptions() {\r\n const options: ZTreeListOptions = ZComponentHelper.getGroupValue(\r\n this.data.Options,\r\n this.group\r\n );\r\n if (!options) {\r\n console.warn(\"No initialise for Field.Options: \", this.data.Options);\r\n return;\r\n }\r\n this.options = options;\r\n this.options.idField = this.options.idField || this.idField;\r\n this.options.parentIdField = this.options.parentIdField || this.parentIdField;\r\n\r\n\r\n const _translationFullList = this.authService.SystemLocaleTranslation;\r\n //debugger;\r\n //const _translationFilteredList = _translationFullList ? _translationFullList.filter(x => x['ProjectName'] === projectName && x['ElementName'] === fieldName) : null;\r\n\r\n\r\n //if (this.options.columns && )\r\n //const translatedTitle = _translationFilteredList.find(x => x['PhraseKey'] === field.Name.toLowerCase());\r\n //if (translatedTitle) {\r\n // const _label = field.Label.toString().trim();\r\n //}\r\n\r\n if (\r\n this.options.dataSource &&\r\n typeof this.options.dataSource === \"string\"\r\n ) {\r\n if (this.options.dataSource.startsWith(\"group.\")) {\r\n this.dataSource = ZComponentHelper.getGroupValue(this.options.dataSource, this.group);\r\n } else {\r\n console.error(this.data.Name + \" - has invalid dataSource\");\r\n }\r\n } else {\r\n console.error(this.data.Name + \" - dataSource property is not declared.\");\r\n }\r\n }\r\n\r\n private setFieldElementOptions() {\r\n this.options.sortable = true;\r\n this.options.resizable = true;\r\n this.options.filterable = true;\r\n this.options.resizable = true;\r\n this.options.columnMenu = this.data.DisableGridColumnMenu ? false : true;\r\n this.options.scrollable = true;\r\n this.options.idField = this.data[\"idField\"] || this.idField;\r\n this.options.parentIdField = this.data[\"parentIdField\"] || this.parentIdField;\r\n this.options.columns = [];\r\n this.options.aggregate = [];\r\n this.options.pageAble = this.data.PageSize ? true : false;\r\n\r\n let zfields = [];\r\n this.fieldService.getFormFieldCode(this.data[\"ColumnFieldCode\"], \"FormField\", null, null).pipe(\r\n switchMap(fields => {\r\n zfields = fields;\r\n return this.getButtonsFromZButtons(fields);\r\n }),\r\n tap((buttons) => {\r\n this.setTreeListColumns(zfields, buttons);\r\n }),\r\n switchMap(() => {\r\n return this.getDataBinding();\r\n }),\r\n tap(data => {\r\n this.createFormControlsForInlineEdit(data);\r\n })\r\n ).subscribe(data => {\r\n if (data) {\r\n this.dataSource = data;\r\n }\r\n });\r\n }\r\n\r\n // const zbuttonFields = [] as Array<ZField>;\r\n // fields.forEach(field => {\r\n // if (field.Type === \"zbuttons\") {\r\n // let fieldColVisible = field.gridColVisible;\r\n // if (field.gridColVisible && field.gridColVisible.toString().startsWith('group.')) {\r\n // // field.gridColVisible = ZComponentHelper.getGroupValue(field.gridColVisible.toString(), this.group);\r\n // fieldColVisible = ZComponentHelper.getGroupValue(field.gridColVisible.toString(), this.group);\r\n // }\r\n // // if (field.gridColVisible === true) {\r\n // if (fieldColVisible === true) {\r\n // zbuttonFields.push(field);\r\n // }\r\n // }\r\n // });\r\n\r\n // if (zbuttonFields.length === 0) {\r\n // return of([]);\r\n // }\r\n // zbuttonFields.forEach(zbuttonField => {\r\n // zbuttonResult.push(\r\n // this.fieldService.getFormFieldCode(zbuttonField.Value, \"FormField\", null, null).pipe(\r\n // switchMap(buttons => {\r\n // return of({ zbuttonField, buttons });\r\n // }))\r\n // );\r\n // });\r\n\r\n private getButtonsFromZButtons(fields: Array<ZField>): Observable<any> {\r\n const buttonCmd = [];\r\n const zbuttonResult = [];\r\n fields.forEach(field => {\r\n if (field.Type === \"zbuttons\" && ZComponentHelper.getGroupValue(field.gridColVisible as string, this.group)) {\r\n zbuttonResult.push(\r\n this.fieldService.getFormFieldCode(field.Value, \"FormField\", null, null).pipe(\r\n switchMap(buttons => {\r\n return of({ field, buttons });\r\n }))\r\n );\r\n }\r\n });\r\n\r\n if (zbuttonResult.length === 0) {\r\n return of([]);\r\n }\r\n\r\n return forkJoin(zbuttonResult).pipe(\r\n tap(resp => {\r\n resp.forEach(zbuttonsArray =>\r\n zbuttonsArray[\"buttons\"].forEach((button: any) => {\r\n buttonCmd.push({\r\n zbuttonsName: zbuttonsArray[\"field\"].Value,\r\n name: button.Value,\r\n class: button.Class,\r\n text: button.Label,\r\n icon: button.Icon,\r\n visible: button.Visible,\r\n hiddenParam: button[\"hiddenParam\"],\r\n hiddenValue: button[\"hiddenValue\"],\r\n edit: button.edit,\r\n ClickEvent: button.ClickEvent,\r\n ShowLabel: button.ShowLabel,\r\n color: button.Color\r\n });\r\n })\r\n );\r\n }),\r\n switchMap(() => {\r\n return of(buttonCmd);\r\n })\r\n );\r\n }\r\n\r\n private setTreeListColumns(fields: Array<ZField>, buttons: any) {\r\n fields.forEach(field => {\r\n if (Array.isArray(field.Value)) {\r\n this.setTreeListColumns(field.Value, buttons);\r\n }\r\n if (ZComponentHelper.getGroupValue(field.gridColVisible as string, this.group) === true) {\r\n if (field.Type === \"zbuttons\") {\r\n this.insertCommand(field, buttons);\r\n } else {\r\n if (field.AggregateType && field.AggregateType !== \"\") {\r\n let aggregatetitle = \"\";\r\n if (field.AggregateType === \"sum\") {\r\n aggregatetitle = \"Total: \";\r\n } else {\r\n aggregatetitle = field.AggregateType + \": \";\r\n }\r\n this.insertFooterTemplateField(field, aggregatetitle);\r\n this.options.aggregate.push({\r\n field: field.Value,\r\n aggregate: field.AggregateType\r\n });\r\n } else {\r\n this.insertField(field);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n private insertField(field: ZField) {\r\n let colTitle = field.Name;\r\n if (colTitle.toString().startsWith('group.')) {\r\n colTitle = ZComponentHelper.getGroupValue(colTitle.toString(), this.group);\r\n }\r\n this.options.columns.push(\r\n Object.assign(field, {\r\n field: field.Value,\r\n title: colTitle,\r\n width: field.width,\r\n visible: true,\r\n fieldType: field.Type,\r\n navigateTo: field.NavigateTo,\r\n command: null,\r\n class: field.DivClass,\r\n footerTemplate: false,\r\n aggregateType: \"\",\r\n aggregateTitle: \"\",\r\n isEditableInGrid: field.IsEditableInGrid\r\n })\r\n );\r\n }\r\n\r\n private insertCommand(field: ZField, buttons: any) {\r\n let colTitle = field.Name;\r\n if (colTitle.toString().startsWith('group.')) {\r\n colTitle = ZComponentHelper.getGroupValue(colTitle.toString(), this.group);\r\n }\r\n this.options.columns.push({\r\n field: field.Name,\r\n title: colTitle,\r\n width: field.width,\r\n visible: field.Visible,\r\n fieldType: field.Type,\r\n navigateTo: field.NavigateTo,\r\n command: buttons.filter(x => x.zbuttonsName === field.Value),\r\n class: field.DivClass,\r\n footerTemplate: false,\r\n aggregateType: \"\",\r\n aggregateTitle: \"\",\r\n isEditableInGrid: field.IsEditableInGrid\r\n });\r\n }\r\n\r\n private insertFooterTemplateField(field: ZField, aggregatetitle: string) {\r\n let colTitle = field.Name;\r\n if (colTitle.toString().startsWith('group.')) {\r\n colTitle = ZComponentHelper.getGroupValue(colTitle.toString(), this.group);\r\n }\r\n this.options.columns.push({\r\n field: field.Value,\r\n title: colTitle,\r\n width: field.width,\r\n visible: true,\r\n fieldType: field.Type,\r\n navigateTo: field.NavigateTo,\r\n command: null,\r\n class: field.DivClass,\r\n footerTemplate: true,\r\n aggregateType: field.AggregateType,\r\n aggregateTitle: aggregatetitle,\r\n isEditableInGrid: field.IsEditableInGrid\r\n });\r\n }\r\n\r\n private getDataBinding(): Observable<any> {\r\n if (this.data.DataSource) {\r\n return of(ZComponentHelper.getGroupValue(this.data.DataSource, this.group));\r\n }\r\n\r\n const resourceUrl = this.getResouceURL();\r\n if (resourceUrl) {\r\n return this.webapiService.getApi(resourceUrl, null, null, null, null, null, true);\r\n }\r\n return of([]);\r\n }\r\n\r\n private getResouceURL() {\r\n return ZComponentHelper.getGroupValue(\r\n this.data.ResourceURL,\r\n this.group\r\n );\r\n }\r\n\r\n cellClickHandler(event: CellClickEvent) {\r\n if (!!this.data.DisableCellClickHandler) {\r\n return;\r\n }\r\n\r\n console.log(\"cellClick event: \", event);\r\n if (this.data.OnItemClick) {\r\n const func = ZComponentHelper.getGroupEvalValue.call(this, this.data.OnItemClick);\r\n if (typeof func === 'function') {\r\n const callFunc = func.bind(this.group.ctrlScope);\r\n callFunc(event);\r\n }\r\n return;\r\n }\r\n\r\n this.editModel(event.dataItem);\r\n }\r\n\r\n private editModel(dataItem: any) {\r\n if (this.data.EditClickURL) {\r\n // TODO:\r\n // debugger;\r\n // this.router.navigate([this.data.EditClickURL, dataItem.Id]);\r\n const colFields = ZComponentHelper.getGroupValue(this.data.ColumnFields, this.group);\r\n this.group.subject.next({\r\n type: \"zgrid-cellClick\",\r\n target: this.data.EditClickURL,\r\n data: dataItem,\r\n columnFields$: colFields\r\n } as ZComponentOutputEvent);\r\n } else {\r\n this.router.navigate([this.group.editModelURL, dataItem.Id, 'edit'], {\r\n relativeTo: this.activatedRoute\r\n });\r\n // console.log('Path: ', this.activatedRoute['_routerState'].snapshot.url);\r\n // const currentPath = this.activatedRoute['_routerState'].snapshot.url;\r\n // this.router.navigate([currentPath + \"/\" + this.group.editModelURL, dataItem.Id]);\r\n }\r\n }\r\n\r\n private createFormControlsForInlineEdit(data: any) {\r\n if (this.options.columns.find(c => c.isEditableInGrid) === undefined || !data) {\r\n return;\r\n }\r\n\r\n this.inlineEditedFormGroups = [];\r\n\r\n data.forEach(d => {\r\n const items = {};\r\n this.options.columns.forEach(c => {\r\n items[c.field] = new FormControl(d[c.field]);\r\n });\r\n const formGroup = new FormGroup(items);\r\n this.inlineEditedFormGroups.push({ Id: d[this.idField], Fg: formGroup });\r\n });\r\n }\r\n\r\n public getInlineField(value: any) {\r\n return this.options.columns.find(x => x.Value === value);\r\n }\r\n\r\n public getInlineForm(dataItem: any) {\r\n return this.inlineEditedFormGroups.find(x => x.Id === dataItem[this.idField]).Fg;\r\n }\r\n\r\n public isInlineEditColVisible(dataItem: any, column: any) {\r\n const isVisible = dataItem[`${column.Value}_Visible`];\r\n return !(isVisible === false);\r\n }\r\n\r\n public getFormat(col: any) {\r\n let format = \"\";\r\n const formatArr = col.FormatOptions.split(\".\")\r\n let dp = 0;\r\n\r\n if (formatArr.length > 1) {\r\n dp = formatArr[1].length;\r\n }\r\n\r\n if (dp !== 0) {\r\n format = \"1.\" + dp + \"-\" + dp;\r\n }\r\n\r\n return format;\r\n }\r\n\r\n public setHeaderText(columnName: string, newHeaderTitle: string) {\r\n const gridColumns = this.options.columns;\r\n gridColumns.forEach((col: any) => {\r\n if (col.Name === columnName || col.field === columnName) {\r\n col.title = newHeaderTitle;\r\n }\r\n });\r\n }\r\n\r\n public getColClass(dataItem: any, col: any) {\r\n let ngClass = \"gridCell \";\r\n if (col.fieldType === 'number' || col.fieldType === 'currency' || col.fieldType === 'znumeric') {\r\n ngClass += \"rightAligned \";\r\n }\r\n\r\n if (dataItem[col.field + '_Class']) {\r\n ngClass += dataItem[col.field + '_Class'] + \" \";\r\n }\r\n\r\n if (col.Class) {\r\n ngClass += col.Class + \" \";\r\n }\r\n\r\n return ngClass;\r\n }\r\n\r\n setGridIsLoading(triggered: boolean) {\r\n this.isLoading = triggered;\r\n }\r\n\r\n onFilterChange(event: any): void {\r\n if (this.ztreelist) {\r\n // to be implement.\r\n }\r\n }\r\n\r\n private mapFilterOperator(operator: any) {\r\n switch (operator) {\r\n case \"eq\":\r\n return \"eq\";\r\n case \"neq\":\r\n return \"neq\";\r\n case \"lt\":\r\n return \"lt\";\r\n case \"lte\":\r\n return \"lte\";\r\n case \"gt\":\r\n return \"gt\";\r\n case \"gte\":\r\n return \"gte\";\r\n case \"startswith\":\r\n return \"startswith\";\r\n case \"endswith\":\r\n return \"endswith\";\r\n case \"isnull\":\r\n return \"isnull\";\r\n case \"isnotnull\":\r\n return \"isnotnull\";\r\n default:\r\n return \"==\";\r\n // eq, neq, isnull, isnotnull, endswith, startswith\r\n }\r\n }\r\n\r\n public filterable(value: any) {\r\n if (value === false) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public sortable(value: any) {\r\n if (value === false) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n ZComponent, ZComponentHelper, ZComponentProperties,\r\n ZField, ZGroup\r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-ztrendcard',\r\n templateUrl: './ztrendcard.component.html',\r\n styleUrls: ['./ztrendcard.component.scss'],\r\n})\r\nexport class ZtrendcardComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n isLoading = true;\r\n componentProperties = new ZComponentProperties();\r\n private title = \"Undefined\";\r\n private icon = \"address-card\";\r\n private color = \"#000000\";\r\n private value = 0;\r\n\r\n options = {\r\n title: this.title,\r\n icon: this.icon,\r\n color: this.color,\r\n value: this.value\r\n };\r\n\r\n// fieldElement01 = [\r\n// {\"Name\": \"myTrendCard1\",\r\n// \"Value\": \"group.myTrendCard01Value\",\r\n// \"Type\": \"ztrendcard\",\r\n// \"Visible\": \"true\",\r\n// \"DivClass\": \"col-md-3 col-lg-3\",\r\n// \"AppendDivClearFix\": false,\r\n// \"Title\": \"Upcoming Call/Follow-Up Call\",\r\n// \"Icon\": \"phone\",\r\n// \"Color\": \"#F7BC46\",\r\n// }];\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n if (this.data.Options) {\r\n const optionType = typeof (this.data.Options);\r\n if (optionType === 'object') {\r\n Object.assign(this.options, this.data.Options);\r\n } else if (optionType === 'string') {\r\n const optionValue = ZComponentHelper.getGroupEvalValue.call(this, this.data.Options);\r\n if (typeof (optionValue) === 'object') {\r\n Object.assign(this.options, optionValue);\r\n }\r\n }\r\n }\r\n\r\n this.getFieldDeclarationForSetup(this.data, this.options);\r\n this.isLoading = false;\r\n\r\n }\r\n\r\n private getFieldDeclarationForSetup(field: ZField, options: any) {\r\n options.title = ZComponentHelper.getGroupEvalValue.call(this, field.Title) || options.title;\r\n options.icon =ZComponentHelper.getGroupEvalValue.call(this, field.Icon) || options.icon;\r\n options.color =ZComponentHelper.getGroupEvalValue.call(this, field.Color) || options.color;\r\n options.value = ZComponentHelper.getGroupEvalValue.call(this, field.Value) || options.value;\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n // const fc = this.group.form.controls[this.data.Value];\r\n // status ? fc.enable() : fc.disable();\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n }\r\n\r\n public setData = (gData: any) => {\r\n if(!gData)\r\n {\r\n this.options.value=0;\r\n }\r\n this.getFieldDeclarationForSetup(this.data, this.options);\r\n }\r\n\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { FormControl, FormGroup, ValidatorFn, Validators } from \"@angular/forms\";\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { AsyncSubject, forkJoin, Observable, of } from \"rxjs\";\r\nimport { concatMap, map, tap } from \"rxjs/operators\";\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n ZComponent, ZField,\r\n AlertService, AuthService, FieldService, ResourceApiService, ToastService, WebApiService,\r\n ZGroup, ZComponentProperties, ZComponentHelper\r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-zudf',\r\n templateUrl: './zudf.component.html',\r\n styleUrls: ['./zudf.component.scss'],\r\n})\r\nexport class ZudfComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n formField: ZField[];\r\n\r\n componentProperties = new ZComponentProperties();\r\n initialDataValue: any;\r\n\r\n constructor(\r\n private alertService: AlertService,\r\n private authService: AuthService,\r\n private fieldService: FieldService,\r\n private resourceApiService: ResourceApiService,\r\n private toastService: ToastService,\r\n private webApiService: WebApiService\r\n ) { }\r\n \r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n // keep data Value\r\n this.initialDataValue = this.data.Value;\r\n\r\n if (ZComponentHelper.isNullUndefinedEmpty(this.data.Value)) {\r\n this.loadEmptyForm();\r\n }\r\n else {\r\n this.loadZudfForm(); \r\n }\r\n }\r\n\r\n private loadEmptyForm() {\r\n of(true).pipe(\r\n tap(() => {\r\n this.data.SubType = 'zudf';\r\n\r\n // change the value to the result field form \r\n this.data.Value = [];\r\n\r\n // change zudf to zdiv\r\n //this.data.Type = 'zdiv';\r\n }),\r\n tap(() => { \r\n if (!this.group['_zudf_' + this.data.Name]) {\r\n this.group['_zudf_' + this.data.Name] = new ZGroup;\r\n }\r\n\r\n const grp = this.group['_zudf_' + this.data.Name];\r\n \r\n grp.zModel = {};\r\n\r\n // create as new Form Group\r\n this.form = this.toFormGroup(this.data.Value);\r\n\r\n // set to zGroup scope\r\n grp.form = this.form;\r\n }),\r\n tap(() => {\r\n // set to formField for display\r\n this.formField = this.data.Value;\r\n })\r\n ).subscribe(() => {\r\n // set Field div class\r\n ZComponentHelper.setFieldsDivClass(this.group._projectName, this.group.fieldName, this.data, this.authService);\r\n });\r\n }\r\n\r\n private loadZudfForm() {\r\n of(true).pipe(\r\n concatMap(fieldElements => {\r\n const asyncSubject = new AsyncSubject<any>();\r\n this.fieldService.getFormFieldCode(this.data.Value, 'FormField', this, 'fields').pipe(\r\n map(formFieldResult => {\r\n // rename add prefix to all udf field to prevent duplicate from main form\r\n this.appendPrefix(formFieldResult, 'zudf_' + this.data.Name);\r\n\r\n // change the value to the result field form \r\n this.data.Value = formFieldResult;\r\n\r\n // change zudf to zdiv\r\n //this.data.Type = 'zdiv';\r\n\r\n // end subject\r\n asyncSubject.next(true);\r\n asyncSubject.complete();\r\n })\r\n ).subscribe();\r\n\r\n return asyncSubject.asObservable();\r\n }),\r\n tap(() => {\r\n if (!this.group['_zudf_' + this.data.Name]) {\r\n this.group['_zudf_' + this.data.Name] = new ZGroup;\r\n }\r\n\r\n const grp = this.group['_zudf_' + this.data.Name];\r\n\r\n grp.zModel = {};\r\n\r\n // create as new Form Group\r\n this.form = this.toFormGroup(this.data.Value);\r\n\r\n // set to zGroup scope\r\n grp.form = this.form;\r\n }),\r\n tap(() => {\r\n // set to formField for display\r\n this.formField = this.data.Value;\r\n })\r\n ).subscribe(() => {\r\n // set Field div class\r\n ZComponentHelper.setFieldsDivClass(this.group._projectName, this.group.fieldName, this.data, this.authService);\r\n\r\n // TODO: get saved record\r\n //this.getFormFieldzModel();\r\n\r\n // change back the data.Value\r\n if (this.data['DisableReplaceValue']) {\r\n this.data.Value = this.initialDataValue;\r\n }\r\n });\r\n }\r\n\r\n private getFormFieldzModel() {\r\n const form = this.group['_zudf_' + this.data.Name].form;\r\n const zModel = this.group['_zudf_' + this.data.Name].zModel;\r\n const url = this.resourceApiService.getURL('field');\r\n\r\n const respData = { 'parentFormId': 5722, 'zudf_Name': 'test' };\r\n\r\n Object.assign(zModel, respData);\r\n form.patchValue(zModel);\r\n form.markAsPristine();\r\n\r\n //return this.webApiService.httpGet$(url, { name: this.group.fieldName, type: 'FormField' }).pipe(\r\n // tap((respData: any) => {\r\n // debugger;\r\n // Object.assign(zModel, respData);\r\n // form.patchValue(zModel);\r\n // form.markAsPristine();\r\n // })\r\n //);\r\n }\r\n\r\n private toFormGroup(fieldElements: Array<ZField>) {\r\n const formControls: { [key: string]: FormControl } = {};\r\n this.getFormControls(fieldElements, formControls);\r\n const newFormGroup = new FormGroup(formControls);\r\n return newFormGroup;\r\n }\r\n\r\n private getFormControls(fieldArray: Array<ZField>, formControls: { [key: string]: FormControl }) {\r\n fieldArray.forEach(field => {\r\n if (typeof field.Value === \"string\" && field.Value.indexOf(\".\") !== -1) {\r\n if (['zgrid', 'ztree', 'zimg', 'textareajson'].indexOf(field.Type) === -1) {\r\n console.warn(\"FormControl - invalid field value\", field.Value);\r\n }\r\n }\r\n else {\r\n if (Array.isArray(field.Value)) {\r\n this.getFormControls(field.Value, formControls);\r\n }\r\n else {\r\n const isFormControl = ZComponentHelper.isFormControl(field);\r\n const isVisible = ZComponentHelper.isVisibleFormControl(this, field);\r\n const isRequired = ZComponentHelper.isRequiredFormControl(this, field);\r\n if (isFormControl === true) {\r\n const validators: ValidatorFn[] = ZComponentHelper.getValidators(field, isVisible, isRequired);\r\n formControls[field.Value] = new FormControl(\r\n this.group['_zudf_' + this.data.Name].zModel[field.Value],\r\n validators\r\n );\r\n if (ZComponentHelper.hasCCField(field.Type)) {\r\n const ccValidators: ValidatorFn[] = ZComponentHelper.getCCValidators(field, isVisible, isRequired);\r\n formControls[field.CCValue] = new FormControl(\r\n this.group['_zudf_' + this.data.Name].zModel[field.CCValue],\r\n ccValidators\r\n );\r\n }\r\n }\r\n\r\n }\r\n }\r\n });\r\n }\r\n\r\n private appendPrefix(fields: ZField[], prefix: any) {\r\n fields.forEach(field => {\r\n if (Array.isArray(field.Value)) {\r\n this.appendPrefix(field.Value, prefix);\r\n }\r\n else {\r\n field.Name = prefix + '_' + field.Name;\r\n if (field.Type != 'zbuttons') {\r\n field.Value = prefix + '_' + field.Value;\r\n }\r\n field.SubType = prefix;\r\n }\r\n });\r\n }\r\n\r\n ComponentIsVisible(field: ZField): any {\r\n return ZComponentHelper.ComponentIsVisible(field, this.group);\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n public appendFormControl(zudfControlName: string, zudfControl: FormControl, fieldData: ZField) {\r\n this.form.addControl(zudfControlName, zudfControl);\r\n this.formField.push(fieldData);\r\n }\r\n \r\n public clearFormControl() {\r\n this.formField.forEach(data => {\r\n this.form.removeControl(data.Value); \r\n });\r\n\r\n this.data.Value = this.initialDataValue;\r\n\r\n this.formField = [];\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport { ZComponent, ZGroup, ZField } from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-zunknown',\r\n templateUrl: './zunknown.component.html',\r\n styleUrls: ['./zunknown.component.scss'],\r\n})\r\nexport class ZunknownComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {}\r\n\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input, NgZone, ViewChild } from \"@angular/core\";\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n// import { environment } from \"src/environments/environment\";\r\nimport { take } from 'rxjs/operators';\r\nimport { HttpEventType } from '@angular/common/http';\r\nimport {\r\n FileInfo,\r\n SuccessEvent,\r\n RemoveEvent,\r\n UploadEvent,\r\n FileRestrictions,\r\n ChunkSettings,\r\n SelectEvent,\r\n UploadComponent\r\n} from \"@progress/kendo-angular-upload\";\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n AuthService, ZCoreService, CompressImageService,\r\n ZComponent, ZComponentHelper, ZComponentOutputEvent, ZComponentProperties,\r\n ZField, ZGroup, UploadMetaData, ImageCompressionConfig\r\n} from \"mmhglobal-zcore\";\r\n\r\nexport class MyFileInfo implements FileInfo {\r\n name: string;\r\n uid?: string;\r\n myUid?: string;\r\n}\r\n\r\n@Component({\r\n selector: \"app-zupload\",\r\n templateUrl: \"./zupload.component.html\",\r\n styleUrls: [\"./zupload.component.scss\"],\r\n})\r\nexport class ZuploadComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n @ViewChild(\"uploadComponent\") uploadComponent: UploadComponent;\r\n\r\n componentProperties = new ZComponentProperties();\r\n uploadAttachmentUrl: string = null;\r\n uploadSaveUrl = \"/Attachment/Chunk_Upload_Save\"; // should represent an actual API endpoint\r\n uploadRemoveUrl = \"/Attachment/Chunk_Upload_Remove\"; // should represent an actual API endpoint\r\n downloadFileUrl = \"/Attachment/downloadFile\";\r\n getImageUrl = \"/Attachment/getImage\"; // GET method\r\n isAutoUpload = false;\r\n isMultiple = false;\r\n imagePreviews: any[] = [];\r\n uid: string[] = [];\r\n showFileList = true;\r\n fileList: any[] = [];\r\n\r\n public restrictions: FileRestrictions = {\r\n\r\n minFileSize: 1,\r\n maxFileSize: 4194304,\r\n allowedExtensions: [\r\n \"jpg\",\r\n \"jpeg\",\r\n \"png\",\r\n \"bmp\",\r\n \"pdf\",\r\n \"txt\",\r\n \"docx\",\r\n \"doc\",\r\n \"xlsx\",\r\n \"xls\",\r\n \"ppt\",\r\n \"pptx\",\r\n \"csv\",\r\n ],\r\n };\r\n\r\n public chunkSettings: ChunkSettings = {\r\n size: 102400,\r\n maxAutoRetries: 3,\r\n };\r\n\r\n // zModelValue = [{\r\n // name: \"RXJS 01.png\",\r\n // size: 128753,\r\n // uid: \"c96e234d-af61-4587-adcc-3b400ddef884\"\r\n // }];\r\n\r\n // fieldElement = [{\r\n // Name: 'FileUploadList',\r\n // Type: 'zupload',\r\n // Value: 'FileUploadList',\r\n // SelectionOptions: ['jpg', 'jpeg', 'png', 'bmp', 'pdf'],\r\n // UploadMetaData: 'group.UploadMetaData',\r\n // AutoUpload: false,\r\n // AllowRemove: true,\r\n // Multiple: false,\r\n // OnSuccess: 'group.onSuccess()',\r\n // DivClass: \"col-md-12 col-md-6\",\r\n // Visible: true\r\n // }];\r\n\r\n constructor(\r\n private authService: AuthService,\r\n private compressImage: CompressImageService,\r\n private zcoreService: ZCoreService,\r\n private ngZone: NgZone\r\n ) {\r\n this.uploadAttachmentUrl = this.zcoreService.getEnvironment().uploadAttachmentUrl;\r\n this.uploadSaveUrl = this.uploadAttachmentUrl + this.uploadSaveUrl;\r\n this.uploadRemoveUrl = this.uploadAttachmentUrl + this.uploadRemoveUrl;\r\n }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n // this.group['UploadMetaData'] = new UploadMetaData(null, '15', 'SO-No-1234', 'SaleOrder');\r\n\r\n\r\n // this.uploadSaveUrl = uploadAttachmentUrl + this.uploadSaveUrl;\r\n // this.uploadRemoveUrl = uploadAttachmentUrl + this.uploadRemoveUrl;\r\n\r\n if (this.data.SelectOptions) {\r\n this.restrictions.allowedExtensions = (this.data\r\n .SelectOptions as unknown) as string[];\r\n }\r\n\r\n if (this.data.MinFileSize) {\r\n this.restrictions.minFileSize = this.data.MinFileSize;\r\n }\r\n\r\n if (this.data.MaxFileSize) {\r\n this.restrictions.maxFileSize = this.data.MaxFileSize;\r\n }\r\n\r\n this.isAutoUpload = this.data.AutoUpload || false;\r\n\r\n if (!this.data.AllowRemove) {\r\n this.uploadRemoveUrl = \"\";\r\n }\r\n\r\n if (this.data.Multiple) {\r\n this.isMultiple = this.data.Multiple;\r\n }\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n const fc = this.group.form.controls[this.data.Value];\r\n status ? fc.enable() : fc.disable();\r\n this.componentProperties.isReadOnly = !status;\r\n };\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n };\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(\r\n status,\r\n this.group,\r\n this.data.Value,\r\n this.componentProperties,\r\n Validators.required\r\n );\r\n };\r\n\r\n getIon_InvalidClass(form: FormGroup, data: ZField) {\r\n return ZComponentHelper.getIon_InvalidClass(form, data);\r\n }\r\n\r\n onSuccess(e: SuccessEvent): void {\r\n // angular kendo upload didn't filter away Sent event for remove, so we have to handle it here\r\n // upload progress not required for removal, thus it's also removed\r\n // @ts-ignore\r\n if (e.operation === \"remove\" && (e.response.type === HttpEventType.Sent || e.response.type === HttpEventType.UploadProgress)) {\r\n return;\r\n }\r\n\r\n if (!Array.isArray(this.group.zModel[this.data.Value])) {\r\n this.group.zModel[this.data.Value] = [];\r\n }\r\n\r\n const file = e.files[0] as MyFileInfo;\r\n const existingFileIndex = this.group.zModel[this.data.Value].findIndex(f => f.name === file.name && f.uid === file.uid);\r\n if (e.operation === \"upload\") {\r\n // console.log('upload Success: ', e);\r\n file.myUid = file.uid;\r\n delete file['httpSubscription'];\r\n\r\n if (existingFileIndex !== -1) {\r\n this.group.zModel[this.data.Value][existingFileIndex] = file;\r\n } else {\r\n this.group.zModel[this.data.Value].push(file);\r\n }\r\n\r\n } else if (e.operation === \"remove\") {\r\n if (existingFileIndex !== -1) {\r\n this.group.zModel[this.data.Value].splice(existingFileIndex, 1);\r\n }\r\n }\r\n\r\n this.group.subject.next({\r\n type: \"zupload-onSuccess\",\r\n target: this.data.OnSuccess,\r\n event: e,\r\n data: { value: e.files[0], field: this.data },\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n private compressionConfigHandler(imgConfig: ImageCompressionConfig): ImageCompressionConfig {\r\n if (imgConfig.FileSizeMaxSize) {\r\n imgConfig.FileSizeMaxSizeByte = this.convertSizeToByte(imgConfig.FileSizeMaxSize);\r\n }\r\n\r\n if (imgConfig.FileSizeMinSize) {\r\n imgConfig.FileSizeMinSizeByte = this.convertSizeToByte(imgConfig.FileSizeMinSize);\r\n }\r\n else {\r\n imgConfig.FileSizeMinSizeByte = 0;\r\n }\r\n\r\n return imgConfig;\r\n }\r\n\r\n private convertSizeToByte(sizeString: string): number {\r\n let _tempFileSizeMaxSize: number = 0;\r\n let sizeByByte: number = 0;\r\n let sizeType = 'b';\r\n\r\n // remove all space\r\n const _tempFileSize = sizeString.replace(/ /g, '');\r\n\r\n // check last char is alphabetic\r\n const lastChar = _tempFileSize.substr(_tempFileSize.length - 1);\r\n if (isNaN(parseFloat(lastChar))) {\r\n const secLastChar = _tempFileSize.substr(_tempFileSize.length - 2).slice(0, -1);\r\n\r\n if (isNaN(parseFloat(secLastChar))) {\r\n // check last 2nd char is alphabetic\r\n sizeType = secLastChar + sizeType;\r\n _tempFileSizeMaxSize = parseFloat(_tempFileSize.slice(0, -2));\r\n }\r\n else {\r\n _tempFileSizeMaxSize = parseFloat(_tempFileSize.slice(0, -1));\r\n }\r\n\r\n switch (sizeType.toLowerCase()) {\r\n case \"b\":\r\n sizeByByte = _tempFileSizeMaxSize\r\n break;\r\n case \"kb\":\r\n sizeByByte = _tempFileSizeMaxSize * 1024\r\n break;\r\n case \"mb\":\r\n sizeByByte = _tempFileSizeMaxSize * 1048576\r\n break;\r\n case \"gb\":\r\n sizeByByte = _tempFileSizeMaxSize * 1073741824\r\n break;\r\n }\r\n }\r\n else {\r\n // default using bytes if no size type\r\n sizeByByte = parseFloat(_tempFileSize);\r\n }\r\n\r\n return sizeByByte;\r\n }\r\n\r\n uploadEventHandler(e: UploadEvent) {\r\n // Image Preview\r\n const me = this;\r\n e.files.forEach((file: FileInfo) => {\r\n if (file.rawFile && file.rawFile.type.includes(\"image\")) {\r\n if (!file.validationErrors) {\r\n const reader = new FileReader();\r\n reader.onload = function (ev) {\r\n if (me.data.EnableImagePreview) {\r\n if (!me.uid.includes(file.uid)) {\r\n me.uid.push(file.uid);\r\n me.imagePreviews.push({ ...file, src: <string>reader.result });\r\n }\r\n }\r\n }\r\n reader.readAsDataURL(file.rawFile);\r\n }\r\n }\r\n });\r\n\r\n // Add metadata to the upload event\r\n let additional: UploadMetaData = ZComponentHelper.getGroupEvalValue.call(this, this.data.UploadMetaData);\r\n\r\n if (!(additional instanceof UploadMetaData)) {\r\n console.error(\"UploadMetaData defined at \" + this.data.UploadMetaData + \" is invalid: \", additional);\r\n additional = new UploadMetaData(null, \"0\");\r\n }\r\n\r\n const str = JSON.stringify(additional);\r\n\r\n e.data = { additional: str, };\r\n e.headers = e.headers.append(\"Authorization\", \"Bearer \" + this.authService.e1AccessToken);\r\n }\r\n\r\n onRemove(e: RemoveEvent): void {\r\n // remove file from component memory\r\n const index = this.fileList.findIndex(\r\n (item) => item.uid === e.files[0].uid\r\n );\r\n\r\n if (index >= 0) {\r\n this.fileList.splice(index, 1);\r\n this.group['zupload_' + this.data.Value] = this.fileList;\r\n }\r\n\r\n if (this.data['FileRemovedEvent']) {\r\n this.group.subject.next({\r\n type: \"zupload-fileRemovedEvent\",\r\n target: this.data['FileRemovedEvent'],\r\n data: e\r\n } as ZComponentOutputEvent);\r\n }\r\n else {\r\n const myFile: MyFileInfo = e.files[0] as MyFileInfo;\r\n\r\n // console.log('remove done: ', e);\r\n e.data = {\r\n id: myFile.myUid,\r\n };\r\n e.headers = e.headers.append(\r\n \"Authorization\",\r\n \"Bearer \" + this.authService.e1AccessToken\r\n );\r\n\r\n if (this.data.EnableImagePreview) {\r\n e.files.forEach((file: FileInfo) => {\r\n this.imagePreviews = this.imagePreviews.filter(f => f.uid !== file.uid);\r\n });\r\n }\r\n }\r\n }\r\n\r\n onChange(file: FileInfo[]): void {\r\n if (this.data['FileChangedEvent']) {\r\n this.group.subject.next({\r\n type: \"zupload-fileChangedEvent\",\r\n target: this.data['FileChangedEvent'],\r\n data: file\r\n } as ZComponentOutputEvent);\r\n }\r\n }\r\n\r\n selectEventHandler(e: SelectEvent) {\r\n const me = this;\r\n\r\n if (this.data['SelectFileOnly']) {\r\n // append all file to component memory\r\n e.files.forEach(async (file: FileInfo) => {\r\n if (file.rawFile) {\r\n const reader = new FileReader();\r\n reader.onload = function (ev) {\r\n // clone the data and also add the readed file to the object\r\n const fileData = Object.assign({}, file);\r\n fileData['file'] = ev.target[\"result\"];\r\n // push to component fileList\r\n me.fileList.push(fileData);\r\n me.group['zupload_' + me.data.Value] = me.fileList;\r\n\r\n if (me.data['FileSelectedEvent']) {\r\n // call the project event\r\n me.group.subject.next({\r\n type: \"zupload-fileSelectedEvent\",\r\n target: me.data['FileSelectedEvent'],\r\n data: me.fileList\r\n } as ZComponentOutputEvent);\r\n }\r\n };\r\n await reader.readAsDataURL(file.rawFile);\r\n }\r\n });\r\n }\r\n else {\r\n // Only workable for Auto Upload = false\r\n if (!this.data.AutoUpload) {\r\n // Compression for image file\r\n const imageCompressionEnabled = this.data.Compression ? true : false;\r\n\r\n //Check if Image Compression is enabled.\r\n if (imageCompressionEnabled === true) {\r\n e.files.forEach((file: FileInfo) => {\r\n // Compress only if it is an image file\r\n if (file.rawFile && file.rawFile.type.includes(\"image\")) {\r\n if (!file.validationErrors) {\r\n const imgConfig = this.compressionConfigHandler(this.data.Compression);\r\n if (file.size > imgConfig.FileSizeMinSizeByte) {\r\n me.compressImage.compress(file.rawFile, imgConfig) //Pass in parameter to set the Compression Options\r\n .pipe(take(1))\r\n .subscribe(compressFile => {\r\n this.ngZone.run(() => {\r\n file.rawFile = compressFile;\r\n file.size = compressFile.size;\r\n\r\n // clone the data and also add the readed file to the object\r\n const fileData = Object.assign({}, file);\r\n // push to component fileList\r\n me.fileList.push(fileData);\r\n\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file.rawFile);\r\n });\r\n console.log(`Compressed file size: ${(file.rawFile.size / 1024).toFixed(2)}KB`);\r\n });\r\n } // file size check\r\n } // validationErrors check\r\n } // file type check\r\n }) // loop each file\r\n } // imagecompression check\r\n\r\n // add to group scope\r\n me.group['zupload_' + me.data.Value] = e.files;\r\n }\r\n }\r\n }\r\n\r\n clearFiles() {\r\n this.uploadComponent.clearFiles();\r\n this.group['zupload_' + this.data.Value] = this.fileList;\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from '@angular/core';\r\nimport { FormGroup, Validators } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { of } from 'rxjs';\r\nimport { concatMap, map, switchMap, tap } from 'rxjs/operators';\r\n\r\n/********** Component & Service **********/\r\nimport { MainService } from '../services/main.service';\r\nimport {\r\n ZGroup, ZField, ZComponentProperties,\r\n ZComponent, ZComponentHelper, WebApiService, ResourceApiService, WorkflowService, FontAweSomeService\r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-zworkflowbuttons',\r\n templateUrl: './zworkflowbuttons.component.html',\r\n styleUrls: ['./zworkflowbuttons.component.scss']\r\n})\r\nexport class ZworkflowbuttonsComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n componentProperties = new ZComponentProperties();\r\n\r\n // URL required\r\n // eslint-disable-next-line @typescript-eslint/naming-convention,no-underscore-dangle,id-blacklist,id-match\r\n e1wfs_wfcGetWorkflowButtonURL = this.resourceApiService.getURL(\"e1wfs_wfcGetWorkflowButtonURL\");\r\n // eslint-disable-next-line @typescript-eslint/naming-convention,no-underscore-dangle,id-blacklist,id-match\r\n e1wfs_wfc_getWorkflowInitialStatusURL = this.resourceApiService.getURL(\"e1wfs_wfc_getWorkflowInitialStatusURL\");\r\n // eslint-disable-next-line @typescript-eslint/naming-convention, no-underscore-dangle, id-blacklist, id-match\r\n e1wfs_wfc_getDocumentStatusURL = this.resourceApiService.getURL(\"e1wfs_wfc_getDocumentStatusURL\");\r\n\r\n //domainURL = \"https://localhost:44300/\";\r\n //e1wfs_wfcGetWorkflowButtonURL = this.domainURL + \"/api/WorkflowClients/GetWorkflowClientButtons/\";\r\n //e1wfs_wfc_getWorkflowInitialStatusURL = this.domainURL + \"/api/WorkflowClients/GetWorkflowInitialStatus/\";\r\n //e1wfs_wfc_getDocumentStatusURL = this.domainURL + \"/api/WorkflowClients/GetDocumentStatus/\";\r\n\r\n items: Array<any> = [];\r\n dataFormFields: any = {};\r\n FirstZbtn = false;\r\n isLoading = true;\r\n isLocalHostAPI: boolean = false;\r\n\r\n constructor(\r\n private webApiService: WebApiService,\r\n private resourceApiService: ResourceApiService,\r\n private workflowService: WorkflowService\r\n ) { }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n // Check project resourceURL is it localhost\r\n if (this.group.resourceURL) {\r\n this.isLocalHostAPI = this.group.resourceURL.toLowerCase().includes(\"localhost\") ? true : false;\r\n }\r\n\r\n this.loadButton();\r\n }\r\n\r\n private loadButton() {\r\n this.items = [];\r\n\r\n // Get WFS_DocumentId if any.\r\n let documentId = null;\r\n if (this.group.zModel) {\r\n documentId = this.group.zModel['WFS_DocumentId'];\r\n }\r\n\r\n // Set the documentId to the service\r\n this.workflowService.appendWFS_DocumentsInfo(this.data.WorkflowCode, documentId);\r\n\r\n // button count\r\n this.group.zButtonsCount++;\r\n if (this.group.zButtonsCount === 1) {\r\n this.FirstZbtn = true;\r\n }\r\n\r\n try {\r\n\r\n of(true)\r\n .pipe(\r\n concatMap(() => {\r\n // retrieve the workflow button\r\n return this.workflowService.getWorkflowButtonsField(\r\n this.data.WorkflowCode,\r\n this.e1wfs_wfcGetWorkflowButtonURL,\r\n String(this.isLocalHostAPI)\r\n )\r\n }),\r\n tap(resultData => {\r\n if (resultData) {\r\n resultData.forEach((button: any) => {\r\n const label = this.getButtonLabel(button);\r\n const attributes = JSON.parse(button.Attributes);\r\n const buttonLabel = attributes.Label || label;\r\n this.items.push({\r\n text: buttonLabel,\r\n icon: ZComponentHelper.getIcon(attributes.Icon),\r\n visible: attributes.Visible,\r\n fieldAttribute: button,\r\n iconName: attributes.Icon,\r\n click: (y) => {\r\n this.buttonClick(button);\r\n }\r\n });\r\n\r\n const mappedInfo = {\r\n 'role': [],\r\n 'status': [],\r\n 'parentStatus': []\r\n };\r\n //ZComponentHelper.collectWorkflowButton(this.group, this.data.WorkflowCode, buttonLabel, button, attributes, mappedInfo);\r\n });\r\n }\r\n else {\r\n console.warn('unable to get workflow button. data returned null.');\r\n }\r\n }),\r\n map(() => {\r\n if (!this.data.DisableSyncWorkflowStatus) {\r\n // Set default status\r\n // eslint-disable-next-line @typescript-eslint/dot-notation\r\n if (!this.group.zModel[\"WFS_StatusName\"]) {\r\n const params = {\r\n \"WorkflowMasterCode\": this.data.WorkflowCode\r\n };\r\n\r\n return this.webApiService.httpPost$(this.e1wfs_wfc_getWorkflowInitialStatusURL, params).pipe(\r\n map(res => {\r\n if (res.Data) {\r\n ZComponentHelper.presetModelValue(\"WFS_StatusId\", res.Data[\"Id\"], this.group);\r\n ZComponentHelper.presetModelValue(\"WFS_StatusName\", res.Data[\"Name\"], this.group);\r\n ZComponentHelper.presetModelValue(\"WFS_StatusCode\", res.Data[\"Code\"], this.group);\r\n\r\n this.workflowService.setCurrentDocumentStatus(res.Data);\r\n }\r\n })\r\n )\r\n } else {\r\n // When loading also to get current Status Information if any.\r\n const docInfoParam = {\r\n \"WorkflowMasterCode\": this.data.WorkflowCode,\r\n \"DocumentId\": documentId,\r\n };\r\n\r\n this.webApiService.httpPost$(this.e1wfs_wfc_getDocumentStatusURL, docInfoParam).pipe(\r\n map(res => {\r\n this.workflowService.setCurrentDocumentStatus(res);\r\n if (res.Data) {\r\n this.workflowService.setCurrentDocumentStatus(res.Data);\r\n }\r\n })\r\n )\r\n }\r\n }\r\n })\r\n\r\n ).subscribe();\r\n\r\n } catch (error) {\r\n console.error(\"error: \", error);\r\n }\r\n }\r\n\r\n buttonClick(button: any) {\r\n // Type 1 == functional;\r\n // Type 2 == GOTO;\r\n const attributes = JSON.parse(button.Attributes);\r\n switch (button.TypeCode.toUpperCase()) {\r\n case \"FUNCTION\":\r\n this.group.isTriggered = true;\r\n const me = this.group;\r\n if (!attributes['DisableTriggerTimer']) {\r\n setTimeout(function () {\r\n me['isTriggered'] = false;\r\n }, 500);\r\n }\r\n console.log(\"Functional Button: \", button.Name);\r\n this.workflowService.functionalButton_OnClick(attributes, this.group);\r\n break;\r\n case \"GOTO\":\r\n this.group.isTriggered = true;\r\n console.log(\"GOTO Button: \", button.Name);\r\n this.workflowService.gotoButton_Onclick(button, this.data, attributes, this.group, this.isLocalHostAPI).subscribe(res => {\r\n this.loadButton();\r\n this.group.isTriggered = false;\r\n if (res) {\r\n this.workflowService.triggerSendEmail(this.group).subscribe();\r\n }\r\n });\r\n break;\r\n default:\r\n console.log(\"Invalid Button Type. \", button.Name);\r\n break;\r\n }\r\n }\r\n\r\n\r\n\r\n /******************** Button Config ********************/\r\n private getButtonLabel(button: any) {\r\n let labelExpr = button.Name.match(/^{{.*}}$/gi);\r\n if (labelExpr) {\r\n labelExpr = labelExpr[0].slice(2, -2);\r\n const label = ZComponentHelper.getGroupValue(labelExpr, this.group);\r\n return label;\r\n } else {\r\n return button.Name;\r\n }\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n\r\n/******************** Common ********************/\r\n isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n\r\n isBtnVisible(fieldExpr) {\r\n if (fieldExpr !== false && !fieldExpr) {\r\n return true;\r\n }\r\n const v = ZComponentHelper.getGroupEvalValue.call(this, fieldExpr);\r\n return v;\r\n }\r\n\r\n getFontAwesome(iconName: string) {\r\n if (iconName == \"\") {\r\n iconName = \"help\";\r\n }\r\n return ZComponentHelper.getFontAwesome(iconName);\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Injectable, ComponentFactoryResolver, EmbeddedViewRef } from \"@angular/core\";\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n/********** Service & Directive **********/\r\nimport { ZComponent, ZComponentHelper } from 'mmhglobal-zcore';\r\nimport { FieldElementDirective } from '../directives/fieldelement.directive';\r\n// import { ZGridBindingDirective } from \"../zgrid/zgrid.binding.directive\";\r\n\r\n/********** zComponent **********/\r\nimport { ZBulletComponent } from \"../zbullet/zbullet.component\";\r\nimport { ZbuttonsComponent } from \"../zbuttons/zbuttons.component\";\r\nimport { ZcardComponent } from \"../zcard/zcard.component\";\r\nimport { ZchartComponent } from '../zchart/zchart.component';\r\nimport { ZcheckboxComponent } from '../zcheckbox/zcheckbox.component';\r\nimport { ZChipComponent } from \"../zchip/zchip.component\"; \r\nimport { ZcodeeditorComponent } from '../zcodeeditor/zcodeeditor.component';\r\nimport { ZdatetimeComponent } from '../zdatetime/zdatetime.component';\r\nimport { ZdivComponent } from '../zdiv/zdiv.component';\r\nimport { ZgaugeComponent } from '../zgauge/zgauge.component';\r\nimport { ZgridComponent } from '../zgrid/zgrid.component';\r\nimport { ZimgComponent } from '../zimg/zimg.component';\r\nimport { ZkcardComponent } from '../zkcard/zkcard.component';\r\nimport { ZlabelComponent } from '../zlabel/zlabel.component';\r\nimport { ZmfbComponent } from '../zmfb/zmfb.component';\r\nimport { ZnumericComponent } from '../znumeric/znumeric.component';\r\nimport { ZpostselectinputComponent } from '../zpostselectinput/zpostselectinput.component';\r\nimport { ZquerybuilderComponent } from '../zquerybuilder/zquerybuilder.component';\r\nimport { ZreportComponent } from '../zreport/zreport.component';\r\nimport { ZschedulerComponent } from '../zscheduler/zscheduler.component';\r\nimport { ZselectmultipleComponent } from \"../zselectmultiple/zselectmultiple.component\";\r\nimport { ZtabComponent } from \"../ztab/ztab.component\";\r\nimport { ZtextComponent } from \"../ztext/ztext.component\";\r\nimport { ZtextareaComponent } from '../ztextarea/ztextarea.component';\r\nimport { ZtexteditorComponent } from '../ztexteditor/ztexteditor.component';\r\nimport { ZtreeComponent } from '../ztree/ztree.component';\r\nimport { ZtreelistComponent } from '../ztreelist/ztreelist.component';\r\nimport { ZtrendcardComponent } from '../ztrendcard/ztrendcard.component';\r\nimport { ZudfComponent } from \"../zudf/zudf.component\";\r\nimport { ZunknownComponent } from \"../zunknown/zunknown.component\";\r\nimport { ZuploadComponent } from '../zupload/zupload.component';\r\nimport { ZworkflowbuttonsComponent } from \"../zworkflowbuttons/zworkflowbuttons.component\";\r\n// import { ZComponentServiceModule } from './zcomponent.service.module';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ZComponentService {\r\n constructor() { }\r\n\r\n mapByName(name: string) {\r\n const _name = name.toLocaleLowerCase();\r\n\r\n const data = {\r\n zbullet: ZBulletComponent,\r\n zbuttons: ZbuttonsComponent,\r\n zcard: ZcardComponent,\r\n zchart: ZchartComponent,\r\n checkbox: ZcheckboxComponent,\r\n zchip: ZChipComponent,\r\n textareajson: ZcodeeditorComponent,\r\n textareahtml: ZcodeeditorComponent,\r\n zdate: ZdatetimeComponent,\r\n zdatetime: ZdatetimeComponent,\r\n zshortdate: ZdatetimeComponent,\r\n zuidatetime: ZdatetimeComponent,\r\n zuitime: ZdatetimeComponent,\r\n zdiv: ZdivComponent,\r\n zgauge: ZgaugeComponent,\r\n zgrid: ZgridComponent,\r\n zimg: ZimgComponent,\r\n zkcard: ZkcardComponent,\r\n zlabel: ZlabelComponent,\r\n zmfb: ZmfbComponent,\r\n znumeric: ZnumericComponent,\r\n post_select_input: ZpostselectinputComponent,\r\n pre_select_input: ZpostselectinputComponent,\r\n zphone_countrycode: ZpostselectinputComponent,\r\n zquerybuilder: ZquerybuilderComponent,\r\n zreport: ZreportComponent,\r\n zcalendar: ZschedulerComponent,\r\n zuiselectmultiple: ZselectmultipleComponent,\r\n zuiselectmultiple_button: ZselectmultipleComponent,\r\n select: ZselectmultipleComponent,\r\n ztab: ZtabComponent,\r\n number: ZtextComponent,\r\n numeric: ZtextComponent,\r\n date: ZtextComponent,\r\n email: ZtextComponent,\r\n password: ZtextComponent,\r\n search: ZtextComponent,\r\n tel: ZtextComponent,\r\n text: ZtextComponent,\r\n url: ZtextComponent,\r\n currency: ZtextComponent,\r\n textarea: ZtextareaComponent,\r\n ztexteditor: ZtexteditorComponent,\r\n ztree: ZtreeComponent,\r\n ktree_list: ZtreelistComponent,\r\n ztrendcard: ZtrendcardComponent,\r\n unknown: ZunknownComponent,\r\n zudf: ZudfComponent,\r\n zupload: ZuploadComponent,\r\n zworkflowbuttons: ZworkflowbuttonsComponent\r\n // kdate_rangepicker: ZdaterangeComponent\r\n };\r\n\r\n return data[_name];\r\n }\r\n\r\n isSkipComponentType(componentType: string): boolean {\r\n return ZComponentHelper.isSkipComponentType(componentType);\r\n }\r\n\r\n loadComponent(\r\n componentFactoryResolver: ComponentFactoryResolver,\r\n fieldElement: FieldElementDirective,\r\n field: any,\r\n group: any,\r\n form: FormGroup\r\n ) {\r\n // if(field.Name === 'FormDetailContactGrid') {\r\n // debugger;\r\n // }\r\n\r\n if (this.isSkipComponentType(field.Type)) {\r\n return;\r\n }\r\n\r\n let componentFactory;\r\n const componentName = this.mapByName(field.Type);\r\n if (componentName) {\r\n componentFactory = componentFactoryResolver.resolveComponentFactory(\r\n componentName\r\n );\r\n } else {\r\n componentFactory = componentFactoryResolver.resolveComponentFactory(\r\n this.mapByName(\"unknown\")\r\n );\r\n }\r\n\r\n const viewContainerRef = fieldElement.viewContainerRef;\r\n viewContainerRef.clear();\r\n if (!form) {\r\n console.warn('FormGroup is empty!');\r\n debugger;\r\n }\r\n const componentRef = viewContainerRef.createComponent(componentFactory);\r\n (componentRef.instance as ZComponent).data = field;\r\n (componentRef.instance as ZComponent).group = group;\r\n (componentRef.instance as ZComponent).form = form;\r\n // (componentRef.instance as ZComponent).outputEvent.subscribe((event: any) => group.outputEvent(event));\r\n }\r\n\r\n appendComponentToDynamicForm(\r\n componentFactoryResolver: ComponentFactoryResolver,\r\n injector: any,\r\n appRef: any,\r\n field: any,\r\n group: any,\r\n containerId: string\r\n ) {\r\n if (this.isSkipComponentType(field.Type)) {\r\n return;\r\n }\r\n\r\n let componentRef;\r\n const componentName = this.mapByName(field.Type);\r\n // 1. Create a component reference from the component\r\n if (componentName) {\r\n componentRef = componentFactoryResolver\r\n .resolveComponentFactory(componentName)\r\n .create(injector);\r\n } else {\r\n componentRef = componentFactoryResolver\r\n .resolveComponentFactory(this.mapByName(\"unknown\"))\r\n .create(injector);\r\n }\r\n\r\n // 2. Attach component to the appRef so that it's inside the ng component tree\r\n appRef.attachView(componentRef.hostView);\r\n\r\n // 3. Get DOM element from component\r\n const domElem = (componentRef.hostView as EmbeddedViewRef<any>)\r\n .rootNodes[0] as HTMLElement;\r\n\r\n // 4. Append DOM element to the body\r\n const dynamicFormHost: any = document.querySelector(\"#\" + containerId);\r\n dynamicFormHost.appendChild(domElem);\r\n\r\n (componentRef.instance as ZComponent).data = field;\r\n (componentRef.instance as ZComponent).group = group;\r\n return componentRef;\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, OnDestroy, Input, ViewChild, ComponentFactoryResolver } from \"@angular/core\";\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport { FieldElementDirective } from \"../directives/fieldelement.directive\";\r\nimport { ZComponentService } from '../services/zcomponent.service';\r\nimport { ZField, ZGroup } from \"mmhglobal-zcore\";\r\n\r\n\r\n@Component({\r\n selector: \"app-zformcontrol\",\r\n templateUrl: \"./zformcontrol.component.html\",\r\n styleUrls: [\"./zformcontrol.component.scss\"]\r\n})\r\nexport class ZformcontrolComponent implements OnInit, OnDestroy {\r\n\r\n @Input() field: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n // @Input() containerid: string;\r\n @ViewChild(FieldElementDirective, { static: true }) fieldElement: FieldElementDirective;\r\n componentRef: any;\r\n\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private zcomponentService: ZComponentService\r\n // private appRef: ApplicationRef,\r\n // private injector: Injector,\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.zcomponentService.loadComponent(this.componentFactoryResolver, this.fieldElement, this.field, this.group, this.form);\r\n // this.componentRef = ZComponentHelper.appendComponentToDynamicForm(\r\n // this.componentFactoryResolver,\r\n // this.injector,\r\n // this.appRef,\r\n // this.field,\r\n // this.group,\r\n // this.containerid\r\n // );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n // this.appRef.detachView(this.componentRef.hostView);\r\n // this.componentRef.destroy();\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { NgModule, CUSTOM_ELEMENTS_SCHEMA, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\n// import { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\n\r\n/********** Ionic **********/\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { IonicSelectableModule } from 'ionic-selectable';\r\n\r\n/********** Plugin **********/\r\nimport { AceEditorModule } from 'ng2-ace-editor';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { QueryBuilderModule } from \"angular2-query-builder\";\r\n\r\n/********** Kendo **********/\r\nimport { ArcGaugeModule } from '@progress/kendo-angular-gauges';\r\nimport { ButtonsModule } from '@progress/kendo-angular-buttons';\r\nimport { ChartsModule } from '@progress/kendo-angular-charts';\r\nimport { CalendarModule, DateInputsModule } from '@progress/kendo-angular-dateinputs';\r\nimport { DropDownsModule } from '@progress/kendo-angular-dropdowns';\r\nimport { EditorModule } from '@progress/kendo-angular-editor';\r\nimport { ExcelModule, GridModule } from '@progress/kendo-angular-grid';\r\nimport { IndicatorsModule } from \"@progress/kendo-angular-indicators\";\r\nimport { IntlModule } from '@progress/kendo-angular-intl';\r\nimport { InputsModule, SwitchModule, TextBoxModule } from '@progress/kendo-angular-inputs';\r\nimport { LabelModule } from '@progress/kendo-angular-label';\r\nimport { LayoutModule, PanelBarModule, TabStripModule } from '@progress/kendo-angular-layout';\r\nimport { PopupModule } from '@progress/kendo-angular-popup';\r\nimport { ProgressBarModule } from \"@progress/kendo-angular-progressbar\";\r\nimport { TelerikReportingModule } from '@progress/telerik-angular-report-viewer';\r\nimport { SchedulerModule } from '@progress/kendo-angular-scheduler';\r\nimport { TreeListModule } from '@progress/kendo-angular-treelist';\r\nimport { TreeViewModule } from '@progress/kendo-angular-treeview';\r\nimport { TooltipModule } from '@progress/kendo-angular-tooltip';\r\nimport { UploadModule, UploadsModule } from '@progress/kendo-angular-upload';\r\n\r\n/********** Service & Directive **********/\r\nimport { ZCoreModule, ZGroup } from 'mmhglobal-zcore';\r\nimport { MmhglobalZmodalModule, ModalService } from 'mmhglobal-zmodal';\r\nimport { MainService } from './services/main.service';\r\nimport { ScrollbarThemeDirective } from './directives/scrollbar.theme.directive';\r\nimport { FieldElementDirective } from './directives/fieldelement.directive';\r\nimport { ZGridBindingDirective } from './zgrid/zgrid.binding.directive';\r\nimport { ZGridPopupAnchorDirective } from './zgrid/zgrid.popup.anchor-target.directive';\r\nimport { OpenOnFocusDirective } from './zselectmultiple/zselectmultiple.directive';\r\n\r\n/********** Addon **********/\r\nimport { DateParserFilter } from './zdatetime/dateParser.pipe';\r\nimport { EditorFilter } from './zcodeeditor/zcodeeditor.pipe';\r\nimport { DivzLayout } from './zdiv/zdiv.pipe';\r\nimport { ExportOptions } from './zreport/zreport.config';\r\nimport { TabFilter } from './ztab/ztab.pipe';\r\nimport { DateRangeFilterCellComponent } from './zgrid/date-range-cell-filter.component';\r\nimport { ZSchedulerToolBarComponent } from './zscheduler/zscheduler.toolbar.component';\r\n\r\n/********** zComponent **********/\r\nimport { UipageComponent } from './uipage/uipage.component';\r\nimport { UiheaderComponent } from './uiheader/uiheader.component';\r\nimport { UicontentComponent } from './uicontent/uicontent.component';\r\n\r\nimport { UimenucontentComponent } from './uimenucontent/uimenucontent.component';\r\nimport { UimenubuttonComponent } from './uimenubutton/uimenubutton.component';\r\nimport { UiappmenucontentComponent } from './uiappmenucontent/uiappmenucontent.component';\r\nimport { UiactionbuttonComponent } from './uiactionbutton/uiactionbutton.component';\r\nimport { UivalidationmessageComponent } from './uivalidationmessage/uivalidationmessage.component';\r\n\r\nimport { ZBulletComponent } from \"./zbullet/zbullet.component\";\r\nimport { ZbuttonsComponent } from \"./zbuttons/zbuttons.component\";\r\nimport { ZcardComponent } from \"./zcard/zcard.component\";\r\nimport { ZchartComponent } from './zchart/zchart.component';\r\nimport { ZcheckboxComponent } from './zcheckbox/zcheckbox.component';\r\nimport { ZChipComponent } from \"./zchip/zchip.component\";\r\nimport { ZcodeeditorComponent } from './zcodeeditor/zcodeeditor.component';\r\nimport { ZdaterangeComponent } from './zdaterange/zdaterange.component';\r\nimport { ZdatetimeComponent } from './zdatetime/zdatetime.component';\r\nimport { ZdivComponent } from './zdiv/zdiv.component';\r\nimport { ZformComponent } from \"./zform/zform.component\";\r\nimport { ZformcontrolComponent } from \"./zformcontrol/zformcontrol.component\";\r\nimport { ZgaugeComponent } from './zgauge/zgauge.component';\r\nimport { ZgridComponent } from \"./zgrid/zgrid.component\";\r\nimport { ZimgComponent } from './zimg/zimg.component';\r\nimport { ZkcardComponent } from './zkcard/zkcard.component';\r\nimport { ZlabelComponent } from './zlabel/zlabel.component';\r\nimport { ZmfbComponent } from './zmfb/zmfb.component';\r\nimport { ZmodalComponent } from \"./zmodal/zmodal.component\";\r\nimport { ZmodalMobileComponent } from \"./zmodal/zmodal-mobile.component\";\r\nimport { ZnumericComponent } from './znumeric/znumeric.component';\r\nimport { ZpostselectinputComponent } from './zpostselectinput/zpostselectinput.component'; \r\nimport { ZquerybuilderComponent } from './zquerybuilder/zquerybuilder.component';\r\nimport { ZreportComponent } from './zreport/zreport.component';\r\nimport { ZschedulerComponent } from './zscheduler/zscheduler.component';\r\nimport { ZselectmultipleComponent } from \"./zselectmultiple/zselectmultiple.component\";\r\nimport { ZtabComponent } from \"./ztab/ztab.component\";\r\nimport { ZtextComponent } from \"./ztext/ztext.component\";\r\nimport { ZtextareaComponent } from './ztextarea/ztextarea.component';\r\nimport { ZtexteditorComponent } from './ztexteditor/ztexteditor.component';\r\nimport { ZtreeComponent } from './ztree/ztree.component';\r\nimport { ZtreelistComponent } from './ztreelist/ztreelist.component';\r\nimport { ZtrendcardComponent } from './ztrendcard/ztrendcard.component';\r\nimport { ZunknownComponent } from \"./zunknown/zunknown.component\";\r\nimport { ZudfComponent } from './zudf/zudf.component';\r\nimport { ZuploadComponent } from './zupload/zupload.component';\r\nimport { ZworkflowbuttonsComponent } from \"./zworkflowbuttons/zworkflowbuttons.component\"; \r\n\r\n@NgModule({\r\n declarations: [\r\n ScrollbarThemeDirective,\r\n FieldElementDirective,\r\n ZGridBindingDirective,\r\n ZGridPopupAnchorDirective,\r\n OpenOnFocusDirective,\r\n DateParserFilter, // zgrid addon\r\n EditorFilter, // zcode addon\r\n DivzLayout, // zdiv addon\r\n ExportOptions, // zreport addon\r\n TabFilter, // ztab addon\r\n DateRangeFilterCellComponent, // zgrid addon\r\n ZSchedulerToolBarComponent, // zscheduler addon \r\n UiheaderComponent,\r\n UicontentComponent,\r\n UipageComponent,\r\n UiactionbuttonComponent,\r\n UimenucontentComponent,\r\n UimenubuttonComponent,\r\n UiappmenucontentComponent,\r\n UivalidationmessageComponent, \r\n ZBulletComponent,\r\n ZbuttonsComponent,\r\n ZcardComponent,\r\n ZchartComponent,\r\n ZcheckboxComponent,\r\n ZChipComponent,\r\n ZcodeeditorComponent,\r\n ZdaterangeComponent,\r\n ZdatetimeComponent,\r\n ZdivComponent,\r\n ZformComponent,\r\n ZformcontrolComponent,\r\n ZgaugeComponent,\r\n ZgridComponent,\r\n ZimgComponent,\r\n ZkcardComponent,\r\n ZlabelComponent,\r\n ZmfbComponent,\r\n ZmodalComponent,\r\n ZmodalMobileComponent,\r\n ZnumericComponent,\r\n ZpostselectinputComponent,\r\n ZquerybuilderComponent,\r\n ZreportComponent,\r\n ZschedulerComponent,\r\n ZselectmultipleComponent,\r\n ZtabComponent,\r\n ZtextComponent,\r\n ZtextareaComponent,\r\n ZtexteditorComponent,\r\n ZtreeComponent,\r\n ZtreelistComponent,\r\n ZtrendcardComponent,\r\n ZunknownComponent,\r\n ZudfComponent,\r\n ZuploadComponent,\r\n ZworkflowbuttonsComponent\r\n ],\r\n imports: [\r\n IonicModule,\r\n IonicSelectableModule,\r\n CommonModule,\r\n RouterModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n AceEditorModule,\r\n FontAwesomeModule,\r\n QueryBuilderModule,\r\n ArcGaugeModule,\r\n ButtonsModule,\r\n ChartsModule,\r\n CalendarModule,\r\n DateInputsModule,\r\n DropDownsModule,\r\n EditorModule,\r\n GridModule,\r\n ExcelModule,\r\n IndicatorsModule,\r\n IntlModule,\r\n InputsModule,\r\n SwitchModule,\r\n TextBoxModule,\r\n LabelModule,\r\n LayoutModule,\r\n PanelBarModule,\r\n TabStripModule,\r\n PopupModule,\r\n ProgressBarModule,\r\n TelerikReportingModule,\r\n SchedulerModule,\r\n TreeListModule,\r\n TreeViewModule,\r\n TooltipModule,\r\n UploadModule,\r\n UploadsModule,\r\n ZCoreModule,\r\n MmhglobalZmodalModule\r\n ],\r\n exports: [\r\n ScrollbarThemeDirective,\r\n FieldElementDirective,\r\n ZGridBindingDirective,\r\n ZGridPopupAnchorDirective,\r\n OpenOnFocusDirective,\r\n DateParserFilter, // zdatetime addon\r\n EditorFilter, // zcode addon\r\n DivzLayout, // zdiv addon\r\n ExportOptions, // zreport addon\r\n TabFilter, // ztab addon\r\n DateRangeFilterCellComponent, // zgrid addon\r\n ZSchedulerToolBarComponent, // zscheduler addon\r\n UiheaderComponent,\r\n UicontentComponent,\r\n UipageComponent, \r\n UimenucontentComponent,\r\n UimenubuttonComponent,\r\n UiappmenucontentComponent,\r\n UiactionbuttonComponent,\r\n UivalidationmessageComponent,\r\n ZBulletComponent,\r\n ZbuttonsComponent,\r\n ZcardComponent,\r\n ZchartComponent,\r\n ZcheckboxComponent,\r\n ZChipComponent,\r\n ZcodeeditorComponent,\r\n ZdaterangeComponent,\r\n ZdatetimeComponent,\r\n ZdivComponent,\r\n ZformComponent,\r\n ZformcontrolComponent,\r\n ZgaugeComponent,\r\n ZgridComponent,\r\n ZimgComponent,\r\n ZkcardComponent,\r\n ZlabelComponent,\r\n ZmfbComponent,\r\n ZmodalComponent,\r\n ZmodalMobileComponent,\r\n ZnumericComponent,\r\n ZpostselectinputComponent,\r\n ZquerybuilderComponent,\r\n ZreportComponent,\r\n ZschedulerComponent,\r\n ZselectmultipleComponent,\r\n ZtabComponent,\r\n ZtextComponent,\r\n ZtextareaComponent,\r\n ZtexteditorComponent,\r\n ZtreeComponent,\r\n ZtreelistComponent,\r\n ZtrendcardComponent,\r\n ZunknownComponent,\r\n ZudfComponent,\r\n ZuploadComponent,\r\n ZworkflowbuttonsComponent\r\n ],\r\n entryComponents: [\r\n DateRangeFilterCellComponent, // zgrid addon\r\n ZSchedulerToolBarComponent, // zscheduler addon\r\n UiheaderComponent,\r\n UicontentComponent,\r\n UipageComponent,\r\n UimenucontentComponent,\r\n UimenubuttonComponent,\r\n UiappmenucontentComponent,\r\n UiactionbuttonComponent,\r\n UivalidationmessageComponent,\r\n ZBulletComponent,\r\n ZbuttonsComponent,\r\n ZcardComponent,\r\n ZchartComponent,\r\n ZcheckboxComponent,\r\n ZChipComponent,\r\n ZcodeeditorComponent,\r\n ZdaterangeComponent,\r\n ZdatetimeComponent,\r\n ZdivComponent,\r\n ZformComponent,\r\n ZformcontrolComponent,\r\n ZgaugeComponent,\r\n ZgridComponent,\r\n ZimgComponent,\r\n ZkcardComponent,\r\n ZlabelComponent,\r\n ZmfbComponent,\r\n ZmodalComponent,\r\n ZmodalMobileComponent,\r\n ZnumericComponent,\r\n ZpostselectinputComponent,\r\n ZquerybuilderComponent,\r\n ZreportComponent,\r\n ZschedulerComponent,\r\n ZselectmultipleComponent,\r\n ZtabComponent,\r\n ZtextComponent,\r\n ZtextareaComponent,\r\n ZtexteditorComponent,\r\n ZtreeComponent,\r\n ZtreelistComponent,\r\n ZtrendcardComponent,\r\n ZunknownComponent,\r\n ZudfComponent,\r\n ZuploadComponent,\r\n ZworkflowbuttonsComponent\r\n ],\r\n providers: [\r\n ModalService\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\n\r\nexport class MmhglobalDynamicformModule { }\r\n","/*\r\n * Public API Surface of dynamic-form\r\n */\r\n\r\n/********** Service **********/\r\nexport * from './lib/services/main.service';\r\n// export * from './lib/zmodal/modal.service';\r\n// export * from './lib/services/zcomponent.service';\r\n// export * from './lib/services/zcomponent.debug.service';\r\n\r\n\r\n/********** Directive **********/\r\nexport * from './lib/directives/scrollbar.theme.directive';\r\nexport * from './lib/directives/fieldelement.directive';\r\nexport * from './lib/zgrid/zgrid.binding.directive';\r\nexport * from './lib/zgrid/zgrid.popup.anchor-target.directive'\r\nexport * from './lib/zselectmultiple/zselectmultiple.directive';\r\n\r\n\r\n/********** Module **********/\r\nexport * from './lib/mmhglobal-dynamicform.module'; \r\n\r\n\r\n/********** Addon **********/\r\nexport * from './lib/zdatetime/dateParser.pipe';\r\nexport * from './lib/zcodeeditor/zcodeeditor.pipe';\r\nexport * from './lib/zdiv/zdiv.pipe';\r\nexport * from './lib/zreport/zreport.config';\r\nexport * from './lib/ztab/ztab.pipe';\r\n// export * from './lib/zmodal/zmodal.module';\r\nexport * from './lib/zgrid/date-range-cell-filter.component';\r\nexport * from './lib/zscheduler/zscheduler.toolbar.component';\r\n\r\n\r\n/********** zComponent **********/\r\nexport * from './lib/uicontent/uicontent.component';\r\nexport * from './lib/uiheader/uiheader.component';\r\nexport * from './lib/uipage/uipage.component';\r\nexport * from './lib/uimenucontent/uimenucontent.component';\r\nexport * from './lib/uimenubutton/uimenubutton.component';\r\nexport * from './lib/uiappmenucontent/uiappmenucontent.component';\r\nexport * from './lib/uiactionbutton/uiactionbutton.component';\r\nexport * from './lib/uivalidationmessage/uivalidationmessage.component';\r\nexport * from './lib/zbullet/zbullet.component';\r\nexport * from './lib/zbuttons/zbuttons.component';\r\nexport * from './lib/zcard/zcard.component';\r\nexport * from './lib/zchart/zchart.component';\r\nexport * from './lib/zcheckbox/zcheckbox.component';\r\nexport * from './lib/zchip/zchip.component';\r\nexport * from './lib/zcodeeditor/zcodeeditor.component';\r\nexport * from './lib/zdaterange/zdaterange.component';\r\nexport * from './lib/zdatetime/zdatetime.component';\r\nexport * from './lib/zdiv/zdiv.component';\r\nexport * from './lib/zform/zform.component';\r\nexport * from './lib/zformcontrol/zformcontrol.component';\r\nexport * from './lib/zgauge/zgauge.component';\r\nexport * from './lib/zgrid/zgrid.component';\r\nexport * from './lib/zimg/zimg.component';\r\nexport * from './lib/zkcard/zkcard.component';\r\nexport * from './lib/zlabel/zlabel.component';\r\nexport * from './lib/zmfb/zmfb.component';\r\nexport * from './lib/zmodal/zmodal.component';\r\nexport * from './lib/zmodal/zmodal-mobile.component';\r\nexport * from './lib/znumeric/znumeric.component';\r\nexport * from './lib/zpostselectinput/zpostselectinput.component';\r\nexport * from './lib/zquerybuilder/zquerybuilder.component';\r\nexport * from './lib/zreport/zreport.component';\r\nexport * from './lib/zscheduler/zscheduler.component';\r\nexport * from './lib/zselectmultiple/zselectmultiple.component';\r\nexport * from './lib/ztab/ztab.component';\r\nexport * from './lib/ztext/ztext.component';\r\nexport * from './lib/ztextarea/ztextarea.component';\r\nexport * from './lib/ztexteditor/ztexteditor.component';\r\nexport * from './lib/ztree/ztree.component';\r\nexport * from './lib/ztreelist/ztreelist.component';\r\nexport * from './lib/ztrendcard/ztrendcard.component';\r\nexport * from './lib/zudf/zudf.component';\r\nexport * from './lib/zunknown/zunknown.component';\r\nexport * from './lib/zupload/zupload.component';\r\nexport * from './lib/zworkflowbuttons/zworkflowbuttons.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {ZComponentDebugService as ɵa} from './lib/services/zcomponent.debug.service';\nexport {ZComponentService as ɵb} from './lib/services/zcomponent.service';"],"names":["ZGroup","BehaviorSubject","ZComponentHelper","forkJoin","tap","switchMap","of","map","HttpParams","MESSAGETYPE","Injectable","Router","AlertService","AuthService","FieldService","ResourceApiService","ToastService","WebApiService","ZmodalHelper","DialogContentBase","Component","DialogRef","ModalController","ZCoreService","Platform","Input","NavController","CacheService","ModalService","Directive","ElementRef","ViewContainerRef","Subject","DataBindingDirective","Inject","GridComponent","StorageSessionService","ZGridStatePersistingService","HostListener","Pipe","BaseFilterCellComponent","FilterService","take","delay","ToolbarService","ActivatedRoute","MenuController","MenuService","ZComponentProperties","Validators","WorkflowService","ActionSheetController","ViewChild","TooltipDirective","FormGroup","FormControl","process","FormArray","concatMap","FormBuilder","AttachmentService","ZSelectPostApiParams","DefaultPageSettingParams","QueryBuilderComponent","ViewEncapsulation","ChangeDetectorRef","AsyncSubject","HttpEventType","UploadMetaData","CompressImageService","NgZone","ComponentFactoryResolver","NgModule","IonicModule","IonicSelectableModule","CommonModule","RouterModule","FormsModule","ReactiveFormsModule","AceEditorModule","FontAwesomeModule","QueryBuilderModule","ArcGaugeModule","ButtonsModule","ChartsModule","CalendarModule","DateInputsModule","DropDownsModule","EditorModule","GridModule","ExcelModule","IndicatorsModule","IntlModule","InputsModule","SwitchModule","TextBoxModule","LabelModule","LayoutModule","PanelBarModule","TabStripModule","PopupModule","ProgressBarModule","TelerikReportingModule","SchedulerModule","TreeListModule","TreeViewModule","TooltipModule","UploadModule","UploadsModule","ZCoreModule","MmhglobalZmodalModule","CUSTOM_ELEMENTS_SCHEMA"],"mappings":"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"}
1
+ {"version":3,"file":"mmhglobal-dynamicform.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../projects/mmhglobal-dynamicform/src/lib/services/zcomponent.debug.service.ts","../../../projects/mmhglobal-dynamicform/src/lib/zmodal/zmodal.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zmodal/zmodal-mobile.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/services/main.service.ts","../../../projects/mmhglobal-dynamicform/src/lib/directives/scrollbar.theme.directive.ts","../../../projects/mmhglobal-dynamicform/src/lib/directives/fieldelement.directive.ts","../../../projects/mmhglobal-dynamicform/src/lib/zgrid/zgrid.binding.directive.ts","../../../projects/mmhglobal-dynamicform/src/lib/zgrid/zgrid.popup.anchor-target.directive.ts","../../../projects/mmhglobal-dynamicform/src/lib/zselectmultiple/zselectmultiple.directive.ts","../../../projects/mmhglobal-dynamicform/src/lib/zdatetime/dateParser.pipe.ts","../../../projects/mmhglobal-dynamicform/src/lib/zcodeeditor/zcodeeditor.pipe.ts","../../../projects/mmhglobal-dynamicform/src/lib/zdiv/zdiv.pipe.ts","../../../projects/mmhglobal-dynamicform/src/lib/zreport/zreport.config.ts","../../../projects/mmhglobal-dynamicform/src/lib/ztab/ztab.pipe.ts","../../../projects/mmhglobal-dynamicform/src/lib/zgrid/date-range-cell-filter.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zscheduler/zscheduler.toolbar.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/uipage/uipage.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/uiheader/uiheader.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/uicontent/uicontent.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/uimenucontent/uimenucontent.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/uimenubutton/uimenubutton.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/uiappmenucontent/uiappmenucontent.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/uiactionbutton/uiactionbutton.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/uivalidationmessage/uivalidationmessage.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zbullet/zbullet.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zbuttons/zbuttons.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zcard/zcard.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zchart/zchart.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zcheckbox/zcheckbox.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zchip/zchip.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zcodeeditor/zcodeeditor.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zdaterange/zdaterange.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zdatetime/zdatetime.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zdiv/zdiv.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zform/zform.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zgauge/zgauge.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zgrid/zgrid.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zimg/zimg.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zkcard/zkcard.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zlabel/zlabel.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zmfb/zmfb.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/znumeric/znumeric.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zpostselectinput/zpostselectinput.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zquerybuilder/zquerybuilder.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zreport/zreport.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zscheduler/zscheduler.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zselectmultiple/zselectmultiple.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/ztab/ztab.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/ztext/ztext.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/ztextarea/ztextarea.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/ztexteditor/ztexteditor.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/ztree/ztree.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/ztreelist/ztreelist.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/ztrendcard/ztrendcard.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zudf/zudf.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zunknown/zunknown.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zupload/zupload.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zworkflowbuttons/zworkflowbuttons.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/services/zcomponent.service.ts","../../../projects/mmhglobal-dynamicform/src/lib/zformcontrol/zformcontrol.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/mmhglobal-dynamicform.module.ts","../../../projects/mmhglobal-dynamicform/src/public-api.ts","../../../projects/mmhglobal-dynamicform/src/mmhglobal-dynamicform.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 (_) 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 Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\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","/********** Angular **********/\r\nimport { Injectable } from \"@angular/core\";\r\nimport { FormGroup } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { HttpParams } from '@angular/common/http';\r\n\r\n/********** Ionic **********/\r\nimport { IonicSelectableComponent } from 'ionic-selectable';\r\n\r\n/********** Plugin **********/\r\nimport { BehaviorSubject, of, forkJoin, Observable } from 'rxjs';\r\nimport { tap, switchMap, map } from 'rxjs/operators';\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n AlertButton, AlertService, AuthService, FieldService, MESSAGETYPE,\r\n ResourceApiService, ToastService, WebApiService, ZComponentHelper, ZComponentOutputEvent,\r\n ZField, ZGroup, ZTreeTemplateParams\r\n} from \"mmhglobal-zcore\";\r\nimport { MainService } from \"./main.service\";\r\nimport { ModalResponse } from 'mmhglobal-zmodal';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ZComponentDebugService {\r\n constructor(\r\n private router: Router,\r\n private alertService: AlertService,\r\n private authService: AuthService,\r\n private fieldService: FieldService,\r\n private resourceApiService: ResourceApiService,\r\n private toastService: ToastService,\r\n private webApiService: WebApiService\r\n ) {}\r\n\r\n private scope: any;\r\n private mainService: MainService;\r\n\r\n get debug(): any {\r\n return this.scope.group._debug;\r\n }\r\n\r\n get group(): ZGroup {\r\n return this.scope.group;\r\n }\r\n\r\n public onInitDebugger(group: ZGroup, mainService: MainService) {\r\n group._debug = new ZGroup(true);\r\n group._isDebugging = true;\r\n group._debug.zData = {\r\n collectedActivities: [],\r\n activityCount: 0,\r\n collectedWorkflowButtons: [],\r\n workflowButtonCount: 0\r\n };\r\n group._debug.zComponents = {};\r\n group.isListForm = false;\r\n this.mainService = mainService;\r\n }\r\n\r\n\r\n public onStartDebugger(fieldElements: Array<ZField>, me: any) {\r\n this.scope = me;\r\n if (!me.group._debug) {\r\n me.group._debug = {};\r\n }\r\n\r\n const d: ZGroup = me.group._debug;\r\n me.form = me.toFormGroup(fieldElements);\r\n d.form = me.form;\r\n if (me.subscription) {\r\n me.subscription.unsubscribe();\r\n }\r\n\r\n Object.assign(d, {\r\n // zData: { collectedActivities: [], activityCount: 0 },\r\n zModel: {},\r\n subject: new BehaviorSubject<ZComponentOutputEvent>(null),\r\n isEdit: true,\r\n isNew: false,\r\n _debug: me.group._debug,\r\n _group: me.group,\r\n resourceURL: this.resourceApiService.getURL('field'),\r\n treeItemTemplate: this.treeItemTemplate,\r\n onItemClick: this.onItemClick,\r\n onTreeNodeChange: this.onTreeNodeChange,\r\n onAddNode: this.onAddNode,\r\n onRemoveNode: this.onRemoveNode,\r\n treeNodesExpandAll: this.treeNodesExpandAll,\r\n treeNodesCollapseAll: this.treeNodesCollapseAll,\r\n refreshTreeModel: this.refreshTreeModel,\r\n addNode: this.addNode,\r\n refreshActivityLogData: this.LoadGridData.bind(this),\r\n GoToFieldElement: this.gotoFieldElement.bind(this),\r\n ListWatchName: this.listWatchName,\r\n onChangeWatchName: this.onChangeWatchName.bind(this),\r\n getWatchName: this.getWatchName.bind(this),\r\n fieldElementonEditorCodeChange: this.fieldElementonEditorCodeChange.bind(this),\r\n gridActivityLogColumnFields: this.fieldService.getFormFieldCode(\r\n 'debugActivityLog',\r\n \"FormField\",\r\n this.group,\r\n \"debugActivityLogField\"\r\n ),\r\n gridActivityLogOnItemClick: this.gridActivityLogOnItemClick.bind(this),\r\n updateModel: this.updateModel.bind(this),\r\n refreshWorkflowButtonData: this.loadWorkflowData.bind(this),\r\n gridWorkflowButtonColumnFields: this.fieldService.getFormFieldCode(\r\n 'debugWorkflowButton',\r\n 'FormField',\r\n this.group,\r\n \"debugWorkflowButtonField\"\r\n ),\r\n gridWorkflowButtonOnItemClick: this.gridWorkflowButtonOnItemClick.bind(this)\r\n });\r\n if (!d.zData) {\r\n d.zData = { collectedActivities: [], activityCount: 0 };\r\n }\r\n\r\n me.subscription = d.subject.subscribe((event: ZComponentOutputEvent) =>\r\n this.subjectEvent(event, d, this)\r\n );\r\n ZComponentHelper.setFieldsDivClass(this.group._projectName, this.group.fieldName, fieldElements, this.authService);\r\n return this.loadDebugZModel(me);\r\n }\r\n\r\n private loadDebugZModel(me: any) {\r\n const d: ZGroup = me.group._debug;\r\n\r\n const downloadList = [];\r\n downloadList.push(this.getProjectId());\r\n\r\n const formType = me.group.isListForm ? 'ListField' : 'FormField';\r\n const fieldName = me.group.fieldName;\r\n const fieldzModel = this.getFieldzModel(formType, fieldName);\r\n downloadList.push(fieldzModel);\r\n\r\n return forkJoin(downloadList);\r\n }\r\n\r\n private getProjectId() {\r\n const d = this.debug;\r\n const url = this.resourceApiService.getURL('projectsURL');\r\n return this.webApiService.getApi(url, {}, d.zData, 'ProjectOptions', null, d, false);\r\n }\r\n\r\n private getFieldzModel(type: string, activityName: string) {\r\n if (type === 'FormField') {\r\n return this.getFormFieldzModel(activityName);\r\n } else {\r\n return this.getListFieldzModel(activityName);\r\n }\r\n }\r\n\r\n private getFormFieldzModel(activityName: string) {\r\n const d: ZGroup = this.debug;\r\n const url = this.resourceApiService.getURL('field');\r\n return this.webApiService.httpGet$(url, { name: activityName, type: 'FormField' }).pipe(\r\n tap((respData: any) => {\r\n // console.log('respData: ', respData);\r\n Object.assign(d.zModel, respData);\r\n d.form.patchValue(d.zModel);\r\n d.form.markAsPristine();\r\n const fields = JSON.parse(d.zModel.Code);\r\n Object.assign(d, {\r\n treeModel: ZComponentHelper.convertTreeModel(fields)\r\n });\r\n })\r\n );\r\n }\r\n\r\n private getListFieldzModel(activityName: string) {\r\n const d = this.debug;\r\n const url = this.resourceApiService.getURL('fieldsMapping');\r\n const url2 = this.resourceApiService.getURL('field');\r\n return this.webApiService.httpGet$(url, { name: activityName }).pipe(\r\n switchMap((fieldMapping: any) => {\r\n // console.log('fieldMapping: ', fieldMapping);\r\n return this.webApiService.httpGet$(url2, { id: fieldMapping.FieldElementMasterId });\r\n }),\r\n tap((respData: any) => {\r\n Object.assign(d.zModel, respData);\r\n d.form.patchValue(d.zModel);\r\n d.form.markAsPristine();\r\n const fields = JSON.parse(d.zModel.Code);\r\n Object.assign(d, {\r\n treeModel: ZComponentHelper.convertTreeModel(fields)\r\n });\r\n })\r\n )\r\n }\r\n\r\n\r\n private subjectEvent(event: ZComponentOutputEvent, group: ZGroup, me: any) {\r\n if (!event || !event.target || event.target.startsWith(\"modalGroup.\")) {\r\n return;\r\n }\r\n // console.log(\"** Debug - SubjectEvent\", event);\r\n let callFunc;\r\n\r\n try {\r\n callFunc = ZComponentHelper.getGroupEvalValue.call(\r\n me,\r\n event.target\r\n );\r\n // ZComponentHelper.getGroupValue(event.Target, group);\r\n } catch (error) {\r\n console.warn(\r\n \"Error when getGroupValue: \",\r\n event.target,\r\n \" > Error: \",\r\n error\r\n );\r\n }\r\n\r\n // callFunc(event);\r\n if (typeof callFunc === \"function\") {\r\n const newFunc = callFunc.bind(me);\r\n newFunc(event, group, me);\r\n } else if (typeof callFunc === \"string\") {\r\n if (event.type.endsWith(\"onNavigateTo\")) {\r\n const nUrl = event.target.replace(\"/:id\", \"/\" + event.data);\r\n this.router.navigate([nUrl]);\r\n return;\r\n }\r\n\r\n if (event.type === \"zgrid-cellClick\") {\r\n // (callFunc.startsWith('edit')) { zgrid-cellClick\r\n const cName = callFunc.slice(4);\r\n // debugger;\r\n // const modalGroupParam: ModalPageParams = {};\r\n // modalGroupParam.controllerName = cName;\r\n // modalGroupParam.referId = event.data.Id;\r\n // modalGroupParam.colFields$ = event.columnFields$;\r\n // modalGroupParam.parentGroup = me.group;\r\n\r\n // this.openModalForm(modalGroupParam);\r\n this.mainService.showzModal(event.columnFields$ || cName, group, '', {}, event.data.Id); // TODO\r\n }\r\n } else if (typeof callFunc === \"object\") {\r\n if (event.type === \"zgrid-cellClick\") {\r\n if (callFunc.navigateUrl) {\r\n const url = callFunc.navigateUrl.replace(\":id\", event.data.Id);\r\n this.router.navigate([url]);\r\n return;\r\n }\r\n\r\n // const modalGroupParam: ModalPageParams = {};\r\n // modalGroupParam.controllerName = callFunc.ctrlName;\r\n // modalGroupParam.referId = event.data.Id;\r\n // modalGroupParam.colFields$ = event.columnFields$;\r\n // modalGroupParam.parentGroup = me.group;\r\n // modalGroupParam.formHeader = callFunc.formHeader;\r\n\r\n if (callFunc.formHeader) {\r\n // this.openModalForm(modalGroupParam);\r\n\r\n this.mainService.showzModal(event.columnFields$ || callFunc.ctrlName, group, callFunc.formHeader, {}, event.data.Id);\r\n return;\r\n }\r\n console.warn(\r\n \"Invalid callFunc type: \",\r\n callFunc,\r\n \" event.Target: \",\r\n event.target\r\n );\r\n }\r\n // this.openModalFormByComponent(callFunc.type, event.Data.Id);\r\n } else {\r\n console.warn(\r\n \"Function not defined in group for: \",\r\n event.target,\r\n \", Event: \",\r\n event\r\n );\r\n }\r\n }\r\n\r\n private gridActivityLogOnItemClick(event: any) {\r\n // console.log('gridActivityLogOnItemClick: ', event);\r\n const rec = event.dataItem;\r\n switch (rec.type) {\r\n case 'ListField':\r\n case 'FormField':\r\n this.getFieldzModel(rec.type, rec.activityName).subscribe(() => {\r\n this.selectTab(0);\r\n });\r\n break;\r\n case 'ResourceServerAPI':\r\n const watchNameValue = '_debug.zData.collectedActivities[' + (rec.index - 1) + '].reference';\r\n this.setWatchNameValue(watchNameValue);\r\n this.selectTab(1);\r\n break;\r\n case 'HttpGet$':\r\n case 'HttpPost$':\r\n case 'HttpPut$':\r\n case 'HttpDelete$':\r\n this.setWatchNameValue('_debug.zData.collectedActivities[' + (rec.index - 1) + ']');\r\n this.selectTab(1);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n private selectTab(index: number) {\r\n // debugger;\r\n // this.debug.zComponents[\"ztab_debuggerTabs\"].state.lastSelectedTabIndex = index;\r\n // ZComponentHelper.getComponent(this.debug, 'ztab_debuggerTabs').state.lastSelectedTabIndex = index;\r\n ZComponentHelper.getComponent(this.debug, 'ztab_debuggerTabs').selectTab(index);\r\n }\r\n\r\n private setWatchNameValue(newValue: string) {\r\n this.debug.zModel['DebugWatchName'] = newValue;\r\n ZComponentHelper.setModelValue('WatchName', newValue, this.debug, true);\r\n }\r\n\r\n public LoadGridData() {\r\n const activityLogGrid = ZComponentHelper.getComponent(this.debug, 'zgrid_ActivityLogGrid');\r\n if (activityLogGrid) {\r\n activityLogGrid.setData(this.debug.zData.collectedActivities);\r\n }\r\n }\r\n\r\n private listWatchName(component: IonicSelectableComponent, searchText: string, pageNo: number,\r\n me: any, dataItem: any, recordId?: string) {\r\n\r\n const watchList = [\r\n { Name: 'group.zModel' },\r\n { Name: 'group.zData' },\r\n { Name: 'group.fields' },\r\n { Name: 'group.form.value' },\r\n { Name: 'group.backNavigationPage' },\r\n { Name: 'group.parentReferenceField' },\r\n { Name: 'group.parentReferenceId' },\r\n { Name: 'Object.keys(group.zComponents)' },\r\n { Name: 'group.gridOptions.zgrid.grid.data' }\r\n // { Name: 'Object.keys(_debug.zComponents)' },\r\n // { Name: '_debug.zModel' },\r\n // { Name: '_debug.zData' },\r\n // { Name: '_debug.zData.collectedActivities' },\r\n ];\r\n\r\n let results;\r\n if (searchText) {\r\n results = watchList.filter((s) => s.Name.toLowerCase().indexOf(searchText.toLowerCase()) !== -1);\r\n }\r\n\r\n if (pageNo === 0 && searchText) {\r\n return of({ dataSet: results });\r\n } else if (pageNo === 0) {\r\n return of({ dataSet: watchList });\r\n } else {\r\n return of({ dataSet: [] });\r\n }\r\n }\r\n\r\n private getWatchName() {\r\n return this.debug.zModel.DebugWatchName;\r\n }\r\n\r\n private onChangeWatchName(event: any, group: ZGroup, me: any) {\r\n // console.log('onChangeWatchName: ', event.data.value);\r\n const newValue = event.data.value;\r\n if (newValue) {\r\n this.debug.zModel['DebugWatchName'] = newValue.replace('group', '_group');\r\n }\r\n }\r\n\r\n private fieldElementonEditorCodeChange(el: ZComponentOutputEvent) {\r\n this.refreshTreeModel();\r\n }\r\n\r\n\r\n private treeNodesExpandAll() {\r\n this.debug.zComponents['ztree_debugZTree'].expandAll();\r\n }\r\n\r\n private treeNodesCollapseAll() {\r\n this.debug.zComponents['ztree_debugZTree'].collapseAll();\r\n }\r\n\r\n private refreshTreeModel() {\r\n try {\r\n const d = JSON.parse(this.debug.zModel.Code);\r\n // this._addNodesToTree(d);\r\n // group['treeModel'] = this.convertTreeModel(d);\r\n this.debug['treeModel'] = ZComponentHelper.convertTreeModel(d);\r\n } catch {\r\n debugger;\r\n }\r\n }\r\n\r\n private treeItemTemplate(el: ZTreeTemplateParams) {\r\n const getFieldValue = (item: any) => {\r\n if (typeof item._DataValue === \"string\") {\r\n return item._DataValue;\r\n }\r\n return \"...\";\r\n };\r\n return (\r\n el.dataItem.Name +\r\n \" - [\" +\r\n el.dataItem.Type +\r\n \"] = \" +\r\n getFieldValue(el.dataItem)\r\n );\r\n }\r\n\r\n async onItemClick(event: ZComponentOutputEvent) {\r\n // debugger;\r\n console.log(\"onItemClick data received: \", event);\r\n const modalFields = this.fieldService.getFormFieldCode(\r\n \"mvEditFieldNodeForm\",\r\n \"FormField\",\r\n null,\r\n null\r\n );\r\n const dataItem = Object.assign({}, event.data);\r\n dataItem.Value = dataItem._DataValue;\r\n delete dataItem._DataValue;\r\n const zmodel = {\r\n nodeModel: JSON.stringify(dataItem, null, 2)\r\n };\r\n const modal = await this.mainService.showzModal(modalFields, this.debug._group, 'Field Element Info', zmodel);\r\n modal.subscribe((modalData: ModalResponse) => {\r\n if (modalData.responseType === \"cancel\") {\r\n return;\r\n }\r\n const newData = JSON.parse(modalData.data.nodeModel);\r\n if (newData.Value) {\r\n newData._DataValue = newData.Value;\r\n newData.Value = null;\r\n }\r\n this.updateTreeNode(newData, this.debug['treeModel'], event.event);\r\n const newTreeModel = JSON.parse(JSON.stringify(this.debug['treeModel']));\r\n const revertedModel = ZComponentHelper.revertTreeModel(newTreeModel);\r\n const newCode = JSON.stringify(revertedModel, null, 2);\r\n ZComponentHelper.setModelValue(\"Code\", newCode, this.debug);\r\n this.updateModel();\r\n // this.mainService.updateModel(null, this.debug);\r\n });\r\n }\r\n\r\n private updateTreeNode(newNode: any, treeModel: any, index: string) {\r\n const treeIndex = index.split(\"_\");\r\n if (treeIndex.length > 1) {\r\n const newIndex = treeIndex.slice(1).join(\"_\");\r\n this.updateTreeNode(newNode, treeModel[+treeIndex[0]].Value, newIndex);\r\n } else {\r\n if (treeModel[+treeIndex[0]].Value) {\r\n newNode.Value = treeModel[+treeIndex[0]].Value;\r\n }\r\n treeModel[+treeIndex[0]] = newNode;\r\n }\r\n }\r\n\r\n\r\n\r\n private insertTreeNode(newNode: any, treeModel: any, index: string) {\r\n const treeIndex = index.split(\"_\");\r\n if (treeIndex.length > 1) {\r\n const newIndex = treeIndex.slice(1).join(\"_\");\r\n this.insertTreeNode(newNode, treeModel[+treeIndex[0]].Value, newIndex);\r\n } else {\r\n if (treeIndex[0]) {\r\n if (!Array.isArray(treeModel[+treeIndex[0]].Value)) {\r\n treeModel[+treeIndex[0]].Value = [];\r\n }\r\n treeModel[+treeIndex[0]].Value.push(newNode);\r\n } else {\r\n treeModel.push(newNode);\r\n }\r\n }\r\n }\r\n\r\n private removeTreeNode(treeModel: any, index: string) {\r\n const treeIndex = index.split(\"_\");\r\n if (treeIndex.length > 1) {\r\n const newIndex = treeIndex.slice(1).join(\"_\");\r\n this.removeTreeNode(treeModel[+treeIndex[0]].Value, newIndex);\r\n } else {\r\n treeModel.splice(+treeIndex[0], 1);\r\n }\r\n }\r\n\r\n private onTreeNodeChange(el: ZComponentOutputEvent) {\r\n console.log(\"onTreeNodeChange: \", el);\r\n const codeData = JSON.stringify(el.data);\r\n ZComponentHelper.setModelValue(\"Code\", codeData, this.debug);\r\n }\r\n\r\n private addNode() {\r\n const el: ZComponentOutputEvent = {\r\n data: {},\r\n rowData: {},\r\n event: \"\",\r\n target: \"\",\r\n type: \"\",\r\n columnFields$: null\r\n };\r\n this.onAddNode(el);\r\n }\r\n\r\n private async onAddNode(el: ZComponentOutputEvent) {\r\n console.log('onAddNode is called', el);\r\n const modalFields = this.fieldService.getFormFieldCode(\r\n \"mvEditFieldNodeForm\",\r\n \"FormField\",\r\n null,\r\n null\r\n );\r\n // const dataItem = Object.assign({}, el.data);\r\n // dataItem.Value = dataItem._DataValue;\r\n // delete dataItem._DataValue;\r\n const initialModel = {\r\n Name: 'Name', DisplayName: 'Name', Value: 'Name', Type: 'text',\r\n gridColVisible: true,\r\n width: 150,\r\n minWidth: 100,\r\n enableFiltering: true,\r\n enableSorting: true,\r\n pinnedLeft: false,\r\n PlaceHolder: \"Name\",\r\n IsRequired: false,\r\n MinLength: 2,\r\n MaxLength: 50,\r\n Label: \"Name:\",\r\n DivClass: \"col-xs-12 col-sm-6 col-md-6 col-lg-3\",\r\n ReadOnly: false,\r\n ShowLabel: true,\r\n Visible: true,\r\n //EnableHiding: true,\r\n //cellFilter: \"\",\r\n //filterCellFiltered: false,\r\n //enablePinning: true,\r\n //pinnedRight: false,\r\n //UpdateOnBlur: true,\r\n //AppendDivClearFix: false,\r\n };\r\n const zmodel = {\r\n nodeModel: JSON.stringify(initialModel, null, 2)\r\n };\r\n\r\n // const modal: HTMLIonModalElement = await this.mainService.openModalForm(modalGroupParam);\r\n const modal = await this.mainService.showzModal(modalFields, this.debug, 'Add Field Element Item', zmodel);\r\n\r\n modal.subscribe((modalData: ModalResponse) => {\r\n if (modalData.responseType === \"cancel\") {\r\n return;\r\n }\r\n const newData = JSON.parse(modalData.data.nodeModel);\r\n if (newData.Value) {\r\n newData._DataValue = newData.Value;\r\n newData.Value = null;\r\n }\r\n this.insertTreeNode(newData, this.debug[\"treeModel\"], el.event);\r\n const newTreeModel = JSON.parse(JSON.stringify(this.debug['treeModel']));\r\n const revertedModel = ZComponentHelper.revertTreeModel(newTreeModel);\r\n const newCode = JSON.stringify(revertedModel, null, 2);\r\n ZComponentHelper.setModelValue(\"Code\", newCode, this.debug);\r\n this.updateModel();\r\n // this.mainService.updateModel(null, this.debug);\r\n });\r\n }\r\n\r\n private onRemoveNode(el: ZComponentOutputEvent) {\r\n this.alertService.show('Remove Node', 'Are you sure?',\r\n [\r\n { text: \"No\", cssClass: \"secondary\" } as AlertButton,\r\n { text: \"Yes\", cssClass: \"primary\" } as AlertButton\r\n ])\r\n .subscribe(reply => {\r\n if (reply === 'Yes') {\r\n console.log('Remove Node', el);\r\n this.removeTreeNode(this.debug[\"treeModel\"], el.event);\r\n const newTreeModel = JSON.parse(JSON.stringify(this.debug['treeModel']));\r\n const revertedModel = ZComponentHelper.revertTreeModel(newTreeModel);\r\n const newCode = JSON.stringify(revertedModel, null, 2);\r\n ZComponentHelper.setModelValue(\"Code\", newCode, this.debug);\r\n }\r\n });\r\n }\r\n\r\n private gotoFieldElement() {\r\n this.router.navigate(['admin/field']);\r\n }\r\n\r\n private updateModel() {\r\n const debug = this.debug;\r\n const fg = this.debug.form as FormGroup;\r\n if (!fg.dirty) {\r\n console.warn(\"Debug Form is not dirty hence record is not save.\");\r\n return;\r\n }\r\n\r\n if (!fg.valid) {\r\n const errors = ZComponentHelper.getFormGroupErrors(fg, this.alertService);\r\n console.warn(\"Debug Form Validation got error(s):\", errors);\r\n return;\r\n }\r\n\r\n of(debug.zModel)\r\n .pipe(\r\n // switchMap(zmodel => {\r\n // console.log(\"Before update, zModel:\", zmodel);\r\n // return this.beforeUpdateModel(group);\r\n // }),\r\n tap(() => {\r\n Object.assign(debug.zModel, fg.value);\r\n }),\r\n switchMap(() => {\r\n return this.webApiService.httpPut$(\r\n debug.resourceURL + \"/\" + debug.zModel.Id,\r\n debug.zModel\r\n )\r\n .pipe(\r\n map(res => this.handleSuccess(res, \"Record is updated successfully.\")),\r\n );\r\n }),\r\n switchMap((zmodel: any) => {\r\n console.log(\"After Debug Form updated, zModel:\", zmodel);\r\n if (zmodel && zmodel.Data) {\r\n Object.assign(debug.zModel, zmodel.Data);\r\n fg.patchValue(zmodel.Data);\r\n }\r\n fg.markAsPristine();\r\n // this.afterUpdateModel(group);\r\n return of([]);\r\n }))\r\n .subscribe();\r\n }\r\n\r\n\r\n // ******************** Workflow Button ********************\r\n public loadWorkflowData() {\r\n const zgrid_WorkflowButtonGrid = ZComponentHelper.getComponent(this.debug, 'zgrid_WorkflowButtonGrid');\r\n if (zgrid_WorkflowButtonGrid) {\r\n zgrid_WorkflowButtonGrid.setData(this.debug.zData.collectedWorkflowButtons);\r\n }\r\n }\r\n\r\n private gridWorkflowButtonOnItemClick(event: any) {\r\n const dataItem = Object.assign({}, event.dataItem);\r\n const field = dataItem.refField;\r\n const attribute = dataItem.refAttribute;\r\n\r\n // Get Mapped Info\r\n const params = new HttpParams()\r\n .set(\"ButtonId\", field.Id);\r\n this.webApiService.httpPost$(this.resourceApiService.getURL(\"e1wfs_wfc_getmappedButtonInfoURL\"), params).pipe(\r\n map(async res => {\r\n let roleInfo = [];\r\n let statusInfo = [];\r\n let parentStatusInfo = [];\r\n\r\n if (res.MappedRoleList) {\r\n roleInfo = res.MappedRoleList;\r\n }\r\n\r\n if (res.MappedStatusList) {\r\n res.MappedStatusList.forEach((_status: any) => {\r\n statusInfo.push(_status.Name + ' (' + _status.Code + ')');\r\n });\r\n }\r\n\r\n if (res.MappedParentStatusList) {\r\n res.MappedParentStatusList.forEach((_parentStatus: any) => {\r\n parentStatusInfo.push(_parentStatus.Name + ' (' + _parentStatus.Code + ')');\r\n });\r\n }\r\n\r\n const _mappedInfo = {\r\n 'mappedRoleInfo': roleInfo.length > 0 ? roleInfo : 'N.A.',\r\n 'mappedStatusInfo': statusInfo.length > 0 ? statusInfo : 'N.A.',\r\n 'mappedParentStatusInfo': parentStatusInfo.length > 0 ? parentStatusInfo : 'N.A.'\r\n };\r\n\r\n // retreive all important info\r\n const _buttonInfo = {\r\n 'WorkflowId': field.WorkflowId,\r\n 'ButtonId': field.Id,\r\n 'ButtonName': field.Name,\r\n 'ButtonCode': field.Code,\r\n 'ButtonTypeId': field.Type.Id,\r\n 'ButtonTypeName': field.Type.Name,\r\n 'ButtonTypeCode': field.Type.Code,\r\n 'ButtonVisible': attribute.Visible,\r\n 'ButtonClickEvent': attribute.ClickEvent,\r\n 'ButtonURL': attribute.URL,\r\n 'ButtonIcon': attribute.Icon\r\n };\r\n\r\n let _gotoStatusInfo = {\r\n 'GotoStatusId': 'N.A.',\r\n 'GotoStatusName': 'N.A.',\r\n 'GotoStatusCode': 'N.A.'\r\n };\r\n\r\n if (field.Status) {\r\n const _gotoStatus = field.Status\r\n _gotoStatusInfo = {\r\n 'GotoStatusId': _gotoStatus.Id,\r\n 'GotoStatusName': _gotoStatus.Name,\r\n 'GotoStatusCode': _gotoStatus.Code\r\n }\r\n }\r\n\r\n const propertiesModel = Object.assign(_buttonInfo, _gotoStatusInfo, _mappedInfo);\r\n\r\n const modalFields = this.fieldService.getFormFieldCode(\r\n \"mvWorkflowButtonDebugForm\",\r\n \"FormField\",\r\n null,\r\n null\r\n );\r\n const modal = await this.mainService.showzModal(modalFields, this.debug._group, 'Workflow Button Info', propertiesModel);\r\n modal.subscribe((modalData: ModalResponse) => {\r\n if (modalData.responseType === \"cancel\") {\r\n return;\r\n }\r\n });\r\n })\r\n ).subscribe();\r\n }\r\n\r\n\r\n handleSuccess(res: Response | any, successMsg: string): Response {\r\n if (res == null) {\r\n this.toastService.show(successMsg);\r\n } else if (res.Data !== undefined && res.ProcessingStatus !== undefined) {\r\n if (res.ProcessingStatus === true) {\r\n if (Array.isArray(res.Data)) {\r\n res.Data.map(s => this.webApiService.showHttpResponseMessage(MESSAGETYPE.Success,\r\n `${successMsg} : ${s.CostCode}`, null));\r\n } else {\r\n this.webApiService.showHttpResponseMessage(MESSAGETYPE.Success, successMsg, null);\r\n }\r\n }\r\n } else {\r\n this.toastService.show(successMsg);\r\n }\r\n return res;\r\n }\r\n\r\n handleError(res: any): Observable<any> {\r\n return this.webApiService.handleError(res);\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, OnDestroy, Input } from \"@angular/core\";\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\nimport { ModalController, Platform } from \"@ionic/angular\";\r\n\r\n/********** Plugin **********/\r\nimport { Subscription, Observable } from \"rxjs\";\r\nimport { DialogContentBase, DialogRef } from '@progress/kendo-angular-dialog';\r\n\r\n/********** Component & Service **********/\r\nimport { \r\n ZGroup, ModalPageParams,\r\n WebApiService, AlertService, ZCoreService, FieldService, ResourceApiService,\r\n ZComponentHelper, ZComponentOutputEvent\r\n} from \"mmhglobal-zcore\";\r\nimport { ZmodalHelper, ModalResponse } from 'mmhglobal-zmodal';\r\n\r\n\r\n@Component({\r\n selector: 'app-zmodal',\r\n templateUrl: './zmodal.component.html',\r\n styleUrls: ['./zmodal.component.scss'],\r\n})\r\nexport class ZmodalComponent extends DialogContentBase implements OnInit, OnDestroy {\r\n @Input() modalParams: ModalPageParams;\r\n\r\n group: ZGroup = new ZGroup(true);\r\n subscription: Subscription;\r\n backButtonSubscription: Subscription;\r\n\r\n constructor( \r\n public dialog: DialogRef,\r\n private modalCtrl: ModalController,\r\n private zcoreService: ZCoreService,\r\n private webApiService: WebApiService,\r\n private resourceApiService: ResourceApiService,\r\n private fieldService: FieldService,\r\n private platform: Platform,\r\n private alertService: AlertService\r\n\r\n ) {\r\n super(dialog);\r\n }\r\n\r\n // get modalGroup() {\r\n // return this.group;\r\n // }\r\n\r\n ngOnInit() {\r\n ZmodalHelper.onInit_ModalForm(this);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n ZmodalHelper.onDestroy_ModalForm(this);\r\n }\r\n\r\n onCancel(event?: ZComponentOutputEvent) {\r\n ZmodalHelper.onCancel(this, event);\r\n // this.dialog.close();\r\n }\r\n\r\n onConfirm(event: ZComponentOutputEvent) {\r\n ZmodalHelper.onConfirm(this, event);\r\n // const fg = this.group.form as FormGroup;\r\n // if (!this.group.form) {\r\n // return;\r\n // }\r\n\r\n // if (!fg.dirty) {\r\n // console.warn('Form is not dirty hence modalform record is not saved.');\r\n // this.onCancel();\r\n // return;\r\n // }\r\n\r\n // if (!fg.valid) {\r\n // const errors = ZComponentHelper.getFormGroupErrors(fg, this.alertService);\r\n // console.warn(\"Form Validation got error(s):\", errors);\r\n // return;\r\n // }\r\n\r\n // Object.assign(this.group.zModel, fg.value);\r\n // this.modalCtrl.dismiss(this.group.zModel, \"confirm\");\r\n // if (ZComponentHelper.isMobileScreen()) {\r\n // this.modalCtrl.dismiss(event.data, \"confirm\");\r\n // } else {\r\n // this.dialog.close(event.data);\r\n // }\r\n }\r\n\r\n onInitClose(event?: ZComponentOutputEvent) {\r\n ZmodalHelper.onInitClose(this,event);\r\n }\r\n\r\n isSITEnvironment() {\r\n return this.zcoreService.isDebugSession();\r\n }\r\n\r\n\r\n // to serve actionButton at formHeader\r\n subjectEvent(event: ZComponentOutputEvent, group: ZGroup, me: any) {\r\n if (!event || !event.target || !event.target.startsWith('modalGroup')) {\r\n return;\r\n }\r\n console.log(\">> SubjectEvent\", event);\r\n // const target = event.target.replace('modalGroup.', 'group.');\r\n const callFunc = ZComponentHelper.getGroupEvalValue.call(this, event.target, group);\r\n // callFunc(event);\r\n if (typeof callFunc === \"function\") {\r\n const fg = this.group.form as FormGroup;\r\n Object.assign(this.group.zModel, fg.value);\r\n event.data = this.group.zModel;\r\n if (event.target.startsWith('modalGroup.modalAnswer') || event.target.startsWith('modalGroup.modalClose') || event.target.startsWith('modalGroup.modalCancel')) {\r\n const newFunc = callFunc.bind(this);\r\n newFunc(event);\r\n } else {\r\n const newFunc = callFunc.bind(group.ctrlScope);\r\n newFunc(event);\r\n }\r\n } else {\r\n console.warn(\r\n \"Function not defined in group for: \",\r\n callFunc,\r\n \", Event: \",\r\n event\r\n );\r\n }\r\n }\r\n\r\n getModel$(group: any, id: string): Observable<any> {\r\n const recId = id || group.referenceId;\r\n return this.webApiService.httpGet$(group.resourceURL + \"/\" + recId, null);\r\n }\r\n\r\n getGridStyle() {\r\n // debugger;\r\n if (!this.isMobileScreen) {\r\n return {\r\n \"height.px\": 500,\r\n \"width.px\": 700\r\n };\r\n }\r\n return;\r\n }\r\n\r\n isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, OnDestroy, Input } from \"@angular/core\";\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n// import { ModalController, Platform } from \"@ionic/angular\";\r\n\r\n/********** Plugin **********/\r\n// import { switchMap, tap } from \"rxjs/operators\";\r\nimport { Subscription, of, BehaviorSubject, Observable, fromEvent } from \"rxjs\";\r\n\r\n/********** Component & Service **********/\r\n// import { FieldService } from \"../mmhglobal-zcore/field.service\";\r\n// import { ResourceApiService } from \"../mmhglobal-zcore/resourceapi.service\";\r\nimport {\r\n WebApiService, ModalPageParams,\r\n ZGroup, ZCoreService, ZComponentHelper, ZComponentOutputEvent, FieldService,\r\n} from \"mmhglobal-zcore\";\r\nimport { ZmodalHelper } from 'mmhglobal-zmodal';\r\n\r\n\r\n@Component({\r\n selector: \"app-zmodal\",\r\n templateUrl: \"./zmodal.component.html\",\r\n styleUrls: [\"./zmodal.component.scss\"]\r\n})\r\nexport class ZmodalMobileComponent implements OnInit, OnDestroy {\r\n @Input() modalParams: ModalPageParams;\r\n\r\n group: ZGroup = new ZGroup(true);\r\n subscription: Subscription;\r\n backButtonSubscription: Subscription;\r\n\r\n constructor(\r\n private webApiService: WebApiService,\r\n private zcoreService: ZCoreService,\r\n private fieldService: FieldService // Use in mmhglobal-zmodal.helper\r\n ) {\r\n }\r\n\r\n // get modalGroup() {\r\n // return this.group;\r\n // }\r\n\r\n ngOnInit() {\r\n ZmodalHelper.onInit_ModalForm(this);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n ZmodalHelper.onDestroy_ModalForm(this);\r\n }\r\n\r\n onCancel(event?: ZComponentOutputEvent) {\r\n ZmodalHelper.onCancel(this, event);\r\n // this.modalCtrl.dismiss(null, \"cancel\");\r\n }\r\n\r\n onConfirm(event: ZComponentOutputEvent) {\r\n ZmodalHelper.onConfirm(this, event);\r\n // const fg = this.group.form as FormGroup;\r\n // if (!this.group.form) {\r\n // return;\r\n // }\r\n\r\n // if (!fg.dirty) {\r\n // console.warn('Form is not dirty hence modalform record is not saved.');\r\n // this.onCancel();\r\n // return;\r\n // }\r\n\r\n // if (!fg.valid) {\r\n // const errors = ZComponentHelper.getFormGroupErrors(fg, this.alertService);\r\n // console.warn(\"Form Validation got error(s):\", errors);\r\n // return;\r\n // }\r\n\r\n // // Object.assign(this.group.zModel, fg.value);\r\n // // this.modalCtrl.dismiss(this.group.zModel, \"confirm\");\r\n // // if (ZComponentHelper.isMobileScreen()) {\r\n // this.modalCtrl.dismiss(event.data, \"confirm\");\r\n // // } else {\r\n // // this.dialog.close(event.data);\r\n // // }\r\n }\r\n\r\n onInitClose(event?: ZComponentOutputEvent) {\r\n ZmodalHelper.onInitClose(this, event);\r\n }\r\n\r\n // to serve actionButton at formHeader\r\n subjectEvent(event: ZComponentOutputEvent, group: ZGroup, me: any) {\r\n if (!event || !event.target || !event.target.startsWith('modalGroup')) {\r\n return;\r\n }\r\n console.log(\">> SubjectEvent\", event);\r\n // const target = event.target.replace('modalGroup.', 'group.');\r\n const callFunc = ZComponentHelper.getGroupEvalValue.call(this, event.target, group);\r\n // callFunc(event);\r\n if (typeof callFunc === \"function\") {\r\n const fg = this.group.form as FormGroup;\r\n Object.assign(this.group.zModel, fg.value);\r\n event.data = this.group.zModel;\r\n if (event.target.startsWith('modalGroup.modalAnswer') || event.target.startsWith('modalGroup.modalCancel')) {\r\n const newFunc = callFunc.bind(this);\r\n newFunc(event);\r\n } else {\r\n const newFunc = callFunc.bind(group.ctrlScope);\r\n newFunc(event);\r\n }\r\n } else {\r\n console.warn(\r\n \"Function not defined in group for: \",\r\n callFunc,\r\n \", Event: \",\r\n event\r\n );\r\n }\r\n }\r\n\r\n getModel$(group: any, id: string): Observable<any> {\r\n const recId = id || group.referenceId;\r\n return this.webApiService.httpGet$(group.resourceURL + \"/\" + recId, null);\r\n }\r\n\r\n getGridStyle() {\r\n // debugger;\r\n if (!this.isMobileScreen) {\r\n return {\r\n \"height.px\": 500,\r\n \"width.px\": 700\r\n };\r\n }\r\n return;\r\n }\r\n\r\n isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n\r\n isSITEnvironment() {\r\n return this.zcoreService.isDebugSession();\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Injectable } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\n\r\n/********** Ionic **********/\r\nimport { ModalController, NavController } from '@ionic/angular';\r\n\r\n/********** Plugin **********/\r\nimport { Observable, BehaviorSubject, Subscription, of, from } from 'rxjs';\r\nimport { tap, switchMap, take, map } from 'rxjs/operators';\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n AlertButton, MESSAGETYPE, ModalPageParams,\r\n AlertService, CacheService, FieldService, ResourceApiService, ToastService, WebApiService,\r\n ZComponentHelper, ZComponentOutputEvent, ZComponentSize, ZCoreService, ZField, ZGroup\r\n} from 'mmhglobal-zcore';\r\nimport { ModalService, ModalResponse } from 'mmhglobal-zmodal';\r\n// import { ModalService } from '../zmodal/modal.service';\r\nimport { ZComponentDebugService } from './zcomponent.debug.service';\r\nimport { ZmodalComponent } from '../zmodal/zmodal.component';\r\nimport { ZmodalMobileComponent } from '../zmodal/zmodal-mobile.component';\r\nimport { ZGrid } from '../zgrid/zgrid.component';\r\n// import { ZmodalPage } from '../zmodal/zmodal.page';\r\n\r\n// import { ZComponentHelper, ZComponentOutputEvent, ModalPageParams, ZGrid } from '../dynamicform/zcomponent.model';\r\n// import { ZGroup, ZField } from '../model/zgroup.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MainService {\r\n private group: ZGroup;\r\n private oauthEnvironmentUrl: string;\r\n\r\n constructor(\r\n private router: Router,\r\n private modalCtrl: ModalController,\r\n private navController: NavController,\r\n private alertService: AlertService,\r\n private cacheService: CacheService,\r\n private fieldService: FieldService,\r\n private resourceApiService: ResourceApiService,\r\n private toastService: ToastService,\r\n private webApiService: WebApiService,\r\n private zcoreService: ZCoreService,\r\n private modalService: ModalService,\r\n private debugService: ZComponentDebugService\r\n ) {\r\n console.log('MainService constructor');\r\n this.oauthEnvironmentUrl = this.zcoreService.getEnvironment().e1OauthUrl + '/';\r\n }\r\n\r\n startUp() {\r\n console.log('At main.service (StartUp) ...');\r\n }\r\n\r\n setGroup(group: ZGroup) {\r\n this.group = group;\r\n this.fieldService.setGroup(group);\r\n this.resourceApiService.setGroup(group);\r\n this.webApiService.setGroup(group);\r\n const isDebugging = this.zcoreService.isDebugSession() || false;\r\n if (isDebugging) {\r\n this.debugService.onInitDebugger(group, this);\r\n }\r\n }\r\n\r\n getResourceServerData() {\r\n return this.resourceApiService.loadData();\r\n }\r\n\r\n getGroupFields(\r\n ctrlName: string,\r\n formType: \"ListField\" | \"FormField\",\r\n group: ZGroup,\r\n propertyName: string\r\n ) {\r\n return this.fieldService.getFormFieldCode(\r\n ctrlName,\r\n formType,\r\n group,\r\n propertyName\r\n );\r\n }\r\n\r\n initializeGroup(\r\n group: ZGroup,\r\n ctrlName: string,\r\n pageName: string,\r\n me: any\r\n ): Subscription {\r\n if (me.subscription) {\r\n me.subscription.unsubscribe();\r\n }\r\n const resourceName = group.resourceURLName || ctrlName;\r\n group.resourceURLName = resourceName;\r\n\r\n Object.assign(group, {\r\n resourceURL: this.resourceApiService.getURL(resourceName),\r\n gridColumnFields: this.fieldService.getFormFieldCode(\r\n ctrlName,\r\n \"FormField\",\r\n null,\r\n null\r\n ),\r\n ctrlScope: me,\r\n pageName,\r\n ctrlName,\r\n // createModelURL: \"/create\" + ctrlName.toLowerCase(),\r\n editModelURL: ctrlName.toLowerCase(),\r\n // listModelURL: \"/list\" + ctrlName.toLowerCase(),\r\n // formHeader: \"...\",\r\n isLoading: true,\r\n fields: [],\r\n zModel: {},\r\n zComponents: {},\r\n zData: {},\r\n subject: new BehaviorSubject<ZComponentOutputEvent>(null),\r\n // form: null as FormGroup, // removed for bug fix.\r\n cancelButtonName: \"Close\",\r\n zButtonsCount: 0,\r\n // topRightActionButton: [],\r\n // onAction: this.onAction.bind(this),\r\n backNavigation: this.backNavigation.bind(this),\r\n historyBack: this.historyBack.bind(this),\r\n refreshPage: this.refreshPage,\r\n refreshGrid: this.refreshGrid.bind(this),\r\n updateModel: this.updateModel.bind(this),\r\n createModel: this.createModel.bind(this),\r\n cloneNewModel: this.cloneNewModel.bind(this),\r\n deleteModel: this.deleteModel.bind(this),\r\n newModel: this.newModel.bind(this),\r\n // _isDebugging: environment.debugSession || false,\r\n // _debug: {\r\n // zData: { collectedActivities: [], activityCount: 0 }\r\n // }\r\n // afterGetModelSuccess: null,\r\n // beforeUpdateModel: null,\r\n // isEdit: false\r\n });\r\n\r\n me.subscription = group.subject.subscribe((event: ZComponentOutputEvent) =>\r\n this.subjectEvent(event, group, me)\r\n );\r\n\r\n return me.subscription;\r\n }\r\n\r\n getModel$(group: ZGroup, id: string): Observable<any> {\r\n const recId = id || group.referenceId;\r\n return this.webApiService\r\n .httpGet$(group.resourceURL + \"/\" + recId, null)\r\n .pipe(\r\n tap((zmodel) => {\r\n group.zModel = zmodel;\r\n if (\r\n group.parentReferenceField &&\r\n Object.keys(zmodel).indexOf(group.parentReferenceField) !== -1 &&\r\n !group.backNavigationPage.endsWith(\".edit\")\r\n ) {\r\n group.backNavigationPage =\r\n group.backNavigationPage +\r\n \"/\" +\r\n zmodel[group.parentReferenceField].toString() +\r\n \"/edit\";\r\n }\r\n }),\r\n switchMap(() => {\r\n if (group.afterGetModelSuccess) {\r\n return this.afterGetModelSuccess(group);\r\n }\r\n return of([]);\r\n })\r\n );\r\n }\r\n\r\n canExit(form: FormGroup): boolean | Observable<boolean> {\r\n if (!form || !form.dirty) {\r\n return true;\r\n }\r\n\r\n if (form['skipDirtyCheck']) {\r\n return true;\r\n }\r\n\r\n return this.alertService\r\n .show(\"Data not save yet\", \"Are you sure want to discard the changes?\", [\r\n \"Cancel\",\r\n \"Discard Changes\",\r\n ])\r\n .pipe(\r\n switchMap((reply) => {\r\n if (reply === \"Discard Changes\") {\r\n return of(true);\r\n }\r\n return of(false);\r\n })\r\n );\r\n // const replySub = new Subject<boolean>();\r\n // this.alertCtrl\r\n // .create({\r\n // header: \"Data not save yet\",\r\n // // subHeader: 'SubHeader statement here',\r\n // message: \"Are you sure want to discard the changes?\",\r\n // buttons: [\r\n // {\r\n // text: \"Cancel\",\r\n // role: \"cancel\",\r\n // cssClass: \"secondary\",\r\n // handler: () => {\r\n // replySub.next(false);\r\n // }\r\n // },\r\n // {\r\n // text: \"Discard Changes\",\r\n // cssClass: \"warning\",\r\n // handler: () => {\r\n // replySub.next(true);\r\n // }\r\n // }\r\n // ]\r\n // })\r\n // .then(alertElement => {\r\n // alertElement.present();\r\n // });\r\n // return replySub.asObservable().pipe(take(1));\r\n }\r\n\r\n // async openModalForm(modalParams: ModalPageParams) {\r\n // // console.log(\"openModalForm\");\r\n // console.error(\r\n // \"Please use ModalService.show instead of MainService.openModalForm!\"\r\n // );\r\n // // const modal = this.modalService.show(modalParams.colFields$ || modalParams.controllerName, modalParams.parentGroup,\r\n // // modalParams.formHeader, modalParams.zModel, modalParams.referId);\r\n // const modal = await this.modalCtrl.create({\r\n // component: ZmodalPage,\r\n // backdropDismiss: true,\r\n // componentProps: {\r\n // modalParams,\r\n // },\r\n // });\r\n // modal.present();\r\n // return modal;\r\n // // .onWillDismiss((zmodel: any) => {\r\n // // this.\r\n // // });\r\n // }\r\n\r\n closeModalForm() {\r\n this.modalCtrl.dismiss();\r\n }\r\n\r\n subjectEvent(event: ZComponentOutputEvent, group: ZGroup, me: any) {\r\n if (!event || !event.target || event.target.startsWith(\"modalGroup.\")) {\r\n return;\r\n }\r\n console.log(\">> SubjectEvent\", event);\r\n let callFunc;\r\n\r\n try {\r\n callFunc = ZComponentHelper.getGroupEvalValue.call(\r\n group.ctrlScope,\r\n event.target,\r\n group\r\n );\r\n // ZComponentHelper.getGroupValue(event.Target, group);\r\n } catch (error) {\r\n console.warn(\r\n \"Error when getGroupValue: \",\r\n event.target,\r\n \" > Error: \",\r\n error\r\n );\r\n }\r\n\r\n // callFunc(event);\r\n if (typeof callFunc === \"function\") {\r\n const newFunc = callFunc.bind(me);\r\n newFunc(event, group, me);\r\n } else if (typeof callFunc === \"string\") {\r\n if (event.type.endsWith(\"onNavigateTo\")) {\r\n const nUrl = event.target.replace(\"/:id\", \"/\" + event.data);\r\n this.router.navigate([nUrl]);\r\n return;\r\n }\r\n\r\n if (event.type === \"zgrid-cellClick\") {\r\n // (callFunc.startsWith('edit')) { zgrid-cellClick\r\n const cName = callFunc.slice(4);\r\n // // debugger;\r\n // const modalGroupParam: ModalPageParams = {};\r\n // modalGroupParam.controllerName = cName;\r\n // modalGroupParam.referId = event.data.Id;\r\n // modalGroupParam.colFields$ = event.columnFields$;\r\n // modalGroupParam.parentGroup = me.group;\r\n\r\n // this.openModalForm(modalGroupParam);\r\n this.modalService.show(\r\n event.columnFields$ || cName,\r\n group,\r\n \"\",\r\n {},\r\n event.data.Id\r\n );\r\n }\r\n } else if (typeof callFunc === \"object\") {\r\n if (event.type === \"zgrid-cellClick\") {\r\n if (callFunc.navigateUrl) {\r\n const url = callFunc.navigateUrl.replace(\":id\", event.data.Id);\r\n this.router.navigate([url]);\r\n return;\r\n }\r\n\r\n const modalGroupParam: ModalPageParams = {};\r\n modalGroupParam.controllerName = callFunc.ctrlName;\r\n modalGroupParam.referId = event.data.Id;\r\n modalGroupParam.colFields$ = event.columnFields$;\r\n modalGroupParam.parentGroup = me.group;\r\n modalGroupParam.formHeader = callFunc.formHeader;\r\n\r\n if (callFunc.formHeader) {\r\n // this.openModalForm(modalGroupParam);\r\n this.modalService.show(\r\n event.columnFields$ || callFunc.ctrlName,\r\n group,\r\n callFunc.formHeader,\r\n {},\r\n event.data.Id\r\n );\r\n return;\r\n }\r\n console.warn(\r\n \"Invalid callFunc type: \",\r\n callFunc,\r\n \" event.Target: \",\r\n event.target\r\n );\r\n }\r\n // this.openModalFormByComponent(callFunc.type, event.Data.Id);\r\n } else {\r\n console.warn(\r\n \"Function not defined in group for: \",\r\n event.target,\r\n \", Event: \",\r\n event\r\n );\r\n }\r\n }\r\n\r\n handleSuccess(res: Response | any, successMsg: string): Response {\r\n this.group.isTriggered = false;\r\n\r\n if (res) {\r\n if (res.ProcessingStatus) {\r\n this.webApiService.showHttpResponseMessage(\r\n MESSAGETYPE.Success,\r\n successMsg,\r\n null\r\n );\r\n }\r\n return res;\r\n }\r\n }\r\n\r\n handleError(res: any): Observable<any> {\r\n this.group.isTriggered = false;\r\n return this.webApiService.handleError(res);\r\n }\r\n\r\n private backNavigation(event: ZComponentOutputEvent, group: ZGroup, me: any) {\r\n if (group.beforeBackNavigationPage) {\r\n group.beforeBackNavigationPage(group).subscribe(() => {\r\n group['isTriggered'] = false;\r\n this.router.navigate([group.backNavigationPage]);\r\n\r\n //if (group['reload']) {\r\n // group['isTriggered'] = false;\r\n // this.router.routeReuseStrategy.shouldReuseRoute = function () {\r\n // return false;\r\n // }\r\n // this.router.onSameUrlNavigation = 'reload';\r\n //}\r\n //this.router.navigate([group.backNavigationPage],);\r\n })\r\n }\r\n else {\r\n group['isTriggered'] = false;\r\n \r\n //this.router.routeReuseStrategy.shouldReuseRoute = function () {\r\n // return false;\r\n //}\r\n //this.router.onSameUrlNavigation = 'reload';\r\n\r\n this.router.navigate([group.backNavigationPage]);\r\n }\r\n }\r\n\r\n private historyBack() {\r\n this.group.isTriggered = false;\r\n this.navController.pop();\r\n }\r\n\r\n public refreshGrid(\r\n event: ZComponentOutputEvent,\r\n group: ZGroup,\r\n me: any,\r\n gridOptionName?: string\r\n ) {\r\n gridOptionName = gridOptionName || \"gridOptions\";\r\n if (event && event.target) {\r\n const gridOption = event.target\r\n .trim()\r\n .replace(\"(\", \"\")\r\n .replace(\")\", \"\")\r\n .replace(\"group.refreshGrid\", \"\");\r\n if (gridOption.length > 0) {\r\n gridOptionName = gridOption;\r\n }\r\n }\r\n\r\n const zgridControl = group[gridOptionName] as ZGrid;\r\n if (zgridControl) {\r\n zgridControl.getData();\r\n }\r\n group['isTriggered'] = false;\r\n }\r\n\r\n private refreshPage() {\r\n if (this.group) {\r\n this.group.isTriggered = false;\r\n }\r\n location.reload();\r\n // this.router.routeReuseStrategy.shouldReuseRoute = () => false;\r\n // this.router.onSameUrlNavigation = 'reload';\r\n // console.log('Path: ', this.activatedRoute['_routerState'].snapshot.url);\r\n // this.router.navigate(['/crm/customer']);\r\n }\r\n\r\n getCloneNewCacheZModel(group: ZGroup) {\r\n const cacheZModel = this.cacheService.getCache(\"cloneNewModel\");\r\n if (cacheZModel) {\r\n this.cacheService.clearCache(\"cloneNewModel\");\r\n group.zModel = cacheZModel;\r\n group.zModel.Id = 0;\r\n }\r\n group.isTriggered = false;\r\n }\r\n\r\n private newModel(event: ZComponentOutputEvent, group: ZGroup) { \r\n let _group: ZGroup = group;\r\n\r\n if (event) {\r\n if (event.data && event.data.SubType) {\r\n _group = group['_' + event.data.SubType];\r\n }\r\n }\r\n\r\n of([])\r\n .pipe(\r\n switchMap((zmodel) => {\r\n console.log(\"Before new, zModel:\", zmodel);\r\n return this.beforeNewModel(_group);\r\n }),\r\n tap(() => {\r\n const referenceId = group.parentReferenceId || \"0\";\r\n console.log(\"current url: \", this.router.url);\r\n const pathSegment = this.router.url.split(\"/\");\r\n const lastSegment = pathSegment[pathSegment.length - 1];\r\n if (lastSegment === \"edit\") {\r\n const newPath = pathSegment.slice(0, pathSegment.length - 2);\r\n newPath.push(referenceId);\r\n newPath.push(\"new\");\r\n const cacheZModel = this.cacheService.getCache(\"cloneNewModel\");\r\n if (!cacheZModel) {\r\n // Skip if it CloneNew\r\n this.router.navigateByUrl(this.group.backNavigationPage, { skipLocationChange: true }).then(() => {\r\n this.group.zModel = {};\r\n this.group.isEdit = false;\r\n this.group.isNew = true;\r\n this.group.isTriggered = false;\r\n this.router.navigate(newPath);\r\n });\r\n }\r\n else {\r\n this.router.navigate(newPath);\r\n }\r\n } else if (lastSegment === \"new\") {\r\n group.zModel = {};\r\n group.form.reset();\r\n //group.form.markAsPristine();\r\n group.isEdit = false;\r\n group.isNew = true;\r\n group.isTriggered = false;\r\n group.zModel[\r\n group.parentReferenceField\r\n ] = group.parentReferenceId.toString();\r\n } else {\r\n group.isTriggered = false;\r\n this.router.navigate([group.editModelURL, referenceId, \"new\"], {\r\n relativeTo: group.ctrlScope.activatedRoute,\r\n });\r\n //this.router.navigate([group.editModelURL, referenceId, \"new\"]);\r\n }\r\n })\r\n )\r\n .subscribe();\r\n }\r\n\r\n public createModel(event: ZComponentOutputEvent, group: ZGroup) {\r\n let createModelres = null;\r\n let fg: FormGroup = group.form as FormGroup;\r\n let _group: ZGroup = group;\r\n\r\n if (event) {\r\n if (event.data && event.data.SubType) {\r\n fg = group['_' + event.data.SubType].form as FormGroup;\r\n _group = group['_' + event.data.SubType];\r\n }\r\n }\r\n \r\n if (!fg.dirty) {\r\n console.warn(\"Form is not dirty hence record is not save.\");\r\n return;\r\n }\r\n\r\n if (!fg.valid) {\r\n const errors = ZComponentHelper.getFormGroupErrors(fg, this.alertService, group);\r\n console.warn(\"Form Validation got error(s):\", errors);\r\n return;\r\n }\r\n\r\n of(_group.zModel)\r\n .pipe(\r\n switchMap((zmodel) => {\r\n console.log(\"Before create, zModel:\", zmodel);\r\n return this.beforeCreateModel(_group);\r\n }),\r\n tap(() => {\r\n Object.assign(_group.zModel, fg.value);\r\n }),\r\n switchMap(() => {\r\n const newModel = Object.assign({}, _group.zModel);\r\n ZComponentHelper.removeNullFields(newModel);\r\n // Object.keys(newModel).forEach((key) => {\r\n // if (newModel[key] === null) {\r\n // delete newModel[key];\r\n // }\r\n // });\r\n // if (!newModel.Id) {\r\n // newModel.Id = 0;\r\n // }\r\n\r\n return this.webApiService\r\n .httpPost$(\r\n _group.resourceURL, // + \"/\" + group.zModel.Id,\r\n newModel\r\n )\r\n .pipe(\r\n tap((resp) => {\r\n createModelres = resp;\r\n return resp;\r\n }),\r\n map((res) =>\r\n this.handleSuccess(res, \"Record is created successfully.\")\r\n )\r\n ); \r\n }),\r\n switchMap((zmodel: any) => {\r\n\r\n console.log(\"After created, zModel:\", zmodel);\r\n if (zmodel) {\r\n\r\n //support old and new webapi method\r\n if (zmodel.Data) {\r\n Object.assign(_group.zModel, zmodel.Data);\r\n fg.patchValue(zmodel.Data);\r\n }\r\n else if (zmodel[\"Id\"]) {\r\n Object.assign(_group.zModel, zmodel);\r\n fg.patchValue(zmodel);\r\n }\r\n\r\n _group.referenceId = _group.zModel.Id;\r\n fg.markAsPristine();\r\n }\r\n\r\n return this.afterCreateModel(_group);\r\n }),\r\n tap((resp) => {\r\n if (createModelres.ProcessingStatus == null || createModelres.ProcessingStatus == true) {\r\n if (resp && _group.zModel.Id !== 0) {\r\n _group.isNew = false;\r\n _group.isEdit = true;\r\n _group.isTriggered = false;\r\n _group.cancelButtonName = \"Close\";\r\n Object.assign(_group.zModel, resp);\r\n fg.patchValue(resp);\r\n }\r\n fg.markAsPristine();\r\n } else {\r\n fg.markAsDirty();\r\n }\r\n // console.log(\"Done updateModel updated zModel:\", fg.value);\r\n // this.toastService.show(\"Record is created successfully.\");\r\n })\r\n )\r\n .subscribe();\r\n }\r\n\r\n public updateModel(event: ZComponentOutputEvent, group: ZGroup) { \r\n let fg: FormGroup = group.form as FormGroup;\r\n let _group: ZGroup = group;\r\n\r\n if (event) {\r\n if (event.data && event.data.SubType) {\r\n fg = group['_' + event.data.SubType].form as FormGroup;\r\n _group = group['_' + event.data.SubType];\r\n }\r\n }\r\n\r\n if (!fg.dirty) {\r\n console.warn(\"Form is not dirty hence record is not save.\");\r\n return;\r\n }\r\n\r\n if (!fg.valid) {\r\n const errors = ZComponentHelper.getFormGroupErrors(fg, this.alertService, group);\r\n console.warn(\"Form Validation got error(s):\", errors);\r\n return;\r\n }\r\n\r\n of(_group.zModel)\r\n .pipe(\r\n switchMap((zmodel) => {\r\n console.log(\"Before update, zModel:\", zmodel);\r\n return this.beforeUpdateModel(_group);\r\n }),\r\n tap(() => {\r\n Object.assign(_group.zModel, fg.value);\r\n }),\r\n switchMap(() => {\r\n return this.webApiService\r\n .httpPut$(_group.resourceURL + \"/\" + _group.zModel.Id, _group.zModel)\r\n .pipe(\r\n map((res) =>\r\n this.handleSuccess(res, \"Record is updated successfully.\")\r\n )\r\n );\r\n }),\r\n switchMap((zmodel: any) => {\r\n console.log(\"After updated, zModel:\", zmodel);\r\n if (zmodel && zmodel.Data) {\r\n Object.assign(_group.zModel, zmodel.Data);\r\n fg.patchValue(zmodel.Data);\r\n // console.log(\"Done updateModel updated zModel:\", fg.value);\r\n }\r\n else if (zmodel && zmodel[\"Id\"]) {\r\n Object.assign(_group.zModel, zmodel);\r\n fg.patchValue(zmodel);\r\n // console.log(\"Done updateModel updated zModel:\", fg.value);\r\n }\r\n\r\n group.isTriggered = false;\r\n _group.isTriggered = false;\r\n\r\n fg.markAsPristine();\r\n return this.afterUpdateModel(_group);\r\n })\r\n )\r\n .subscribe();\r\n // Object.assign(group.zModel, fg.value);\r\n // this.webApiService\r\n // .httpPut$(group.resourceURL + \"/\" + group.zModel.Id, group.zModel)\r\n // .subscribe(resp => {\r\n // Object.assign(group.zModel, resp);\r\n // fg.patchValue(resp);\r\n // fg.markAsPristine();\r\n // console.log(\"Done updateModel updated zModel:\", fg.value);\r\n // });\r\n }\r\n\r\n private cloneNewModel(event: ZComponentOutputEvent, group: ZGroup) { \r\n let _group: ZGroup = group;\r\n\r\n if (event) {\r\n if (event.data && event.data.SubType) {\r\n _group = group['_' + event.data.SubType];\r\n }\r\n }\r\n\r\n Object.assign(_group.zModel, _group.form.value);\r\n _group.zModel.Id = 0;\r\n\r\n const clearFields = [\"WFS_DocumentId\", \"WFS_StatusCode\", \"WFS_StatusName\"];\r\n clearFields.forEach((field) => {\r\n if (_group.zModel.hasOwnProperty(field)) {\r\n _group.zModel[field] = null;\r\n }\r\n });\r\n\r\n this.cacheService.setCache(\"cloneNewModel\", group.zModel);\r\n this.newModel(null, group);\r\n group.isTriggered = false;\r\n _group.isTriggered = false;\r\n }\r\n\r\n private deleteModel(event: ZComponentOutputEvent, group: ZGroup) { \r\n let fg: FormGroup = group.form as FormGroup;\r\n let _group: ZGroup = group;\r\n\r\n if (event) {\r\n if (event.data && event.data.SubType) {\r\n fg = group['_' + event.data.SubType].form as FormGroup;\r\n _group = group['_' + event.data.SubType];\r\n }\r\n }\r\n \r\n of(_group.zModel)\r\n .pipe(\r\n switchMap((zmodel) => {\r\n console.log(\"Before delete, zModel:\", zmodel);\r\n return this.beforeDeleteModel(_group);\r\n }),\r\n switchMap(() => {\r\n group.isTriggered = false;\r\n _group.isTriggered = false;\r\n return this.alertService.show(\"Delete Record\", \"Are you sure?\",\r\n [\r\n { text: \"No\", cssClass: \"secondary\" } as AlertButton,\r\n { text: \"Yes\", cssClass: \"primary\" } as AlertButton\r\n ]);\r\n }),\r\n switchMap((reply: string) => {\r\n if (reply === \"Yes\") {\r\n Object.assign(_group.zModel, fg.value);\r\n _group.zModel.Disabled = true;\r\n\r\n return this.webApiService\r\n .httpPut$(_group.resourceURL + \"/\" + _group.zModel.Id, _group.zModel)\r\n .pipe(\r\n map((res) =>\r\n this.handleSuccess(res, \"Record is deleted successfully.\")\r\n ),\r\n switchMap((zmodel) => {\r\n console.log(\"After deleted, zModel:\", zmodel);\r\n return this.afterDeleteModel(_group);\r\n }),\r\n tap((resp) => {\r\n this.historyBack();\r\n })\r\n );\r\n } else {\r\n return of([]);\r\n }\r\n })\r\n )\r\n .subscribe();\r\n }\r\n\r\n private beforeUpdateModel(group: ZGroup) {\r\n if (!group.beforeUpdateModel) {\r\n console.warn(\"group.beforeUpdateModel is undefined\");\r\n return of({});\r\n }\r\n return group.beforeUpdateModel(group);\r\n }\r\n\r\n private beforeDeleteModel(group: ZGroup) {\r\n if (!group.beforeDeleteModel) {\r\n console.warn(\"group.beforeUpdateModel is undefined\");\r\n return of({});\r\n }\r\n return group.beforeDeleteModel(group);\r\n }\r\n\r\n private beforeNewModel(group: ZGroup) {\r\n if (!group.beforeNewModel) {\r\n console.warn(\"group.beforeNewodel is undefined\");\r\n return of({});\r\n }\r\n return group.beforeNewModel(group);\r\n }\r\n\r\n private beforeCreateModel(group: ZGroup) {\r\n if (!group.beforeCreateModel) {\r\n console.warn(\"group.beforeUpdateModel is undefined\");\r\n return of({});\r\n }\r\n return group.beforeCreateModel(group);\r\n }\r\n\r\n beforePageInitialise(group: ZGroup) {\r\n if (!group.beforePageInitialise) {\r\n console.warn(\"group.beforePageInitialise is undefined\");\r\n return of({});\r\n }\r\n return group.beforePageInitialise(group);\r\n }\r\n\r\n private afterGetModelSuccess(group: ZGroup): Observable<any> {\r\n if (!group.zModel.Id) {\r\n console.warn(\"zModel.Id is not defined\", group.zModel);\r\n return of({});\r\n }\r\n if (!group.afterGetModelSuccess) {\r\n console.warn(\"group.afterGetModelSuccess is not defined\");\r\n return of({});\r\n }\r\n return group.afterGetModelSuccess(group);\r\n }\r\n\r\n afterNewModel(group: ZGroup): Observable<any> {\r\n if (!group.afterNewModel) {\r\n console.warn(\"group.afterNewModel is not defined\");\r\n return of({});\r\n }\r\n return group.afterNewModel(group);\r\n }\r\n\r\n private afterCreateModel(group: ZGroup): Observable<any> {\r\n if (!group.afterCreateModel) {\r\n console.warn(\"group.afterCreateModel is not defined\");\r\n return of({});\r\n }\r\n return group.afterCreateModel(group);\r\n }\r\n\r\n private afterUpdateModel(group: ZGroup): Observable<any> {\r\n if (!group.afterUpdateModel) {\r\n console.warn(\"group.afterUpdateModel is not defined\");\r\n return of({});\r\n }\r\n return group.afterUpdateModel(group);\r\n }\r\n\r\n private afterDeleteModel(group: ZGroup): Observable<any> {\r\n if (!group.afterDeleteModel) {\r\n console.warn(\"group.afterDeleteModel is not defined\");\r\n return of({});\r\n }\r\n return group.afterDeleteModel(group);\r\n }\r\n\r\n afterPageInitialise(group: ZGroup) {\r\n if (!group.afterPageInitialise) {\r\n console.warn(\"group.afterPageInitialise is undefined\");\r\n return of({});\r\n }\r\n return group.afterPageInitialise(group);\r\n }\r\n\r\n // private onAction(group: ZGroup) {\r\n // this.actionSheetCtrl\r\n // .create({\r\n // header: \"Choose an Action\",\r\n // buttons: group.topRightActionButton\r\n // })\r\n // .then(actionSheetEl => {\r\n // actionSheetEl.present();\r\n // });\r\n // }\r\n\r\n // setModelValue(propertyName: string, value: any, group: ZGroup) {\r\n // group.zModel[propertyName] = value;\r\n // if (group.isLoading) {\r\n // return;\r\n // }\r\n // const fg = group.form as FormGroup;\r\n // if (!fg) {\r\n // eslint-disable-next-line , no-debugger\r\n // debugger;\r\n // }\r\n // const fc = fg.controls[propertyName];\r\n // if (!fc) {\r\n // eslint-disable-next-line no-debugger\r\n // debugger;\r\n // }\r\n // fc.setValue(value);\r\n // fc.markAsDirty();\r\n // }\r\n\r\n public async showzModal(\r\n colFields$: string | Observable<Array<ZField>>,\r\n parentGroup: ZGroup,\r\n formHeader: string,\r\n zModel?: any,\r\n referId?: string,\r\n componentSize?: ZComponentSize,\r\n skipIsDirtyCheck?: boolean\r\n ) {\r\n const modalcomponent = ZmodalComponent;\r\n const modalmobilecomponent = ZmodalMobileComponent;\r\n\r\n if (parentGroup) {\r\n // disable isTriggered before display the popup.\r\n parentGroup.isTriggered = false;\r\n }\r\n return await this.modalService.show(colFields$, parentGroup, formHeader, modalcomponent, modalmobilecomponent, zModel, referId, componentSize, skipIsDirtyCheck)\r\n //const modal = await this.modalService.show();\r\n }\r\n\r\n\r\n public cookieStorePost(name: string, value: any): Observable<any> {\r\n // for Post to CookieStore\r\n const cookieStoreURL = this.oauthEnvironmentUrl + \"api/CookieStores\";\r\n const cookieStoreValue = {\r\n 'Name': name,\r\n 'Value': JSON.stringify(value)\r\n };\r\n\r\n return this.webApiService.httpPost$(cookieStoreURL, cookieStoreValue).pipe(map(res => {\r\n if (res) {\r\n console.log(\"grid config saved(\" + res.status + \"): \", res);\r\n return res;\r\n }\r\n })); \r\n } \r\n\r\n public cookieStoreGet(name: string, accessToken: string): Observable<any> {\r\n const cookieStoreURL = this.oauthEnvironmentUrl + \"api/CookieStores/?name=\" + name;\r\n\r\n return this.webApiService.httpGet$(cookieStoreURL, { headers: accessToken }).pipe(map(res => {\r\n if (res) { \r\n return res;\r\n }\r\n })); \r\n }\r\n\r\n public cookieStoreDeleteMultiple(name: string): Observable<any> {\r\n // for Post to CookieStore\r\n const cookieStoreURL = this.oauthEnvironmentUrl + \"Admin/DeleteMultipleCookies\";\r\n const cookieStoreValue = {\r\n 'containName': name\r\n };\r\n\r\n return this.webApiService.httpPost$(cookieStoreURL, cookieStoreValue).pipe(map(res => {\r\n if (res) { \r\n return res;\r\n }\r\n }));\r\n }\r\n}\r\n\r\nexport function refreshGrid(group: ZGroup) {\r\n const zgridControl = group[\"gridOptions\"] as ZGrid;\r\n if (zgridControl) {\r\n zgridControl.getData();\r\n }\r\n group.isTriggered = false;\r\n}\r\n","import { NgModule, Directive, ElementRef, OnInit } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appScrollbarTheme]'\r\n})\r\nexport class ScrollbarThemeDirective implements OnInit {\r\n\r\n constructor(private el: ElementRef) {\r\n }\r\n\r\n private stylesheet = `\r\n ::-webkit-scrollbar {\r\n width: 5px;\r\n }\r\n ::-webkit-scrollbar-track {\r\n background: var(--ion-color-light);\r\n }\r\n ::-webkit-scrollbar-thumb {\r\n border-radius: 2px;\r\n background: var(--ion-color-light-shade);\r\n border: 0 solid #020202;\r\n }\r\n ::-webkit-scrollbar-thumb:hover {\r\n }\r\n `;\r\n\r\n // background: linear-gradient(var(--ion-color-medium-tint), var(--ion-color-light));\r\n\r\n ngOnInit(): void {\r\n const styleElmt = this.el.nativeElement.shadowRoot.querySelector('style');\r\n if (styleElmt) {\r\n styleElmt.append(this.stylesheet);\r\n } else {\r\n const barStyle = document.createElement('style');\r\n barStyle.append(this.stylesheet);\r\n this.el.nativeElement.shadowRoot.appendChild(barStyle);\r\n }\r\n }\r\n\r\n\r\n\r\n}\r\n\r\n\r\n\r\n","import { Directive, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[fieldelement]'\r\n})\r\nexport class FieldElementDirective {\r\n constructor(public viewContainerRef: ViewContainerRef) { }\r\n}\r\n","/********** Angular **********/\r\nimport { Directive, OnInit, OnDestroy, Input, Inject } from \"@angular/core\";\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { Router } from \"@angular/router\";\r\nimport { Subscription, Observable, Subject, of, AsyncSubject } from \"rxjs\";\r\nimport { tap, delay, switchMap, concatMap } from \"rxjs/operators\";\r\nimport {\r\n DataBindingDirective,\r\n GridComponent,\r\n DataStateChangeEvent,\r\n PageChangeEvent,\r\n} from \"@progress/kendo-angular-grid\";\r\nimport {\r\n SortDescriptor,\r\n State,\r\n FilterDescriptor,\r\n} from \"@progress/kendo-data-query\";\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n AuthService, GridCaching, WebApiService,\r\n ZComponentHelper, ZField, ZGridPostApiParams, ZGridColumnSettings,\r\n ZGridStatePersistingService, ZGroup, StorageSessionService\r\n} from \"mmhglobal-zcore\";\r\n\r\n\r\n@Directive({\r\n selector: \"[zgridbinding]\",\r\n})\r\nexport class ZGridBindingDirective extends DataBindingDirective implements OnInit, OnDestroy {\r\n private serviceSubscription: Subscription;\r\n @Input() zgridbinding: {\r\n data: ZField;\r\n group: ZGroup;\r\n params: ZGridPostApiParams;\r\n gridSubject: Subject<any>;\r\n };\r\n\r\n state: State = {\r\n skip: 0,\r\n take: 10,\r\n };\r\n\r\n gridColumns: any[] = [];\r\n\r\n usableColumns: any[] = [];\r\n\r\n resourceURL = null;\r\n\r\n paginationApiPostUrl = null;\r\n\r\n dataSource = null;\r\n\r\n get field() {\r\n return this.zgridbinding.data;\r\n }\r\n\r\n get grp() {\r\n return this.zgridbinding.group;\r\n }\r\n\r\n get gridSubject() {\r\n return this.zgridbinding.gridSubject;\r\n }\r\n\r\n get params(): ZGridPostApiParams {\r\n return this.zgridbinding.params;\r\n }\r\n\r\n get getData() {\r\n return this.grid.data;\r\n }\r\n\r\n constructor(\r\n @Inject(GridComponent) grid,\r\n private webapiService: WebApiService,\r\n private authService: AuthService,\r\n private storageService: StorageSessionService,\r\n private router: Router,\r\n private zGridStatePersistingService: ZGridStatePersistingService\r\n ) {\r\n super(grid);\r\n }\r\n\r\n public ngOnInit(): void {\r\n if (this.field.SkipDirective) {\r\n return;\r\n }\r\n\r\n super.ngOnInit();\r\n this.grid.loading = true;\r\n this.state.take = this.field.PageSize || 20;\r\n this.pageSize = this.state.take;\r\n this.dataSource = this.field.DataSource ? this.field.DataSource : null;\r\n\r\n if (!this.dataSource) {\r\n this.resourceURL = ZComponentHelper.getGroupValue(\r\n this.field.ResourceURL,\r\n this.grp\r\n );\r\n // console.log(\"At zgrid.component (OnInit) resourceURL: \", resourceURL);\r\n if (!this.resourceURL) {\r\n this.grid.loading = false;\r\n if (this.zgridbinding.data.Name !== \"ActivityLogGrid\") {\r\n console.warn(\r\n \"No initialise for Field.ResourceURL: \",\r\n this.field.ResourceURL\r\n );\r\n }\r\n return;\r\n }\r\n\r\n const array = this.resourceURL.split(\"/api/\");\r\n if (!!array[1]) {\r\n array[1] = \"Page\" + array[1];\r\n this.paginationApiPostUrl = array.join(\"/api/\");\r\n } else {\r\n const arr = this.resourceURL.split(\"/\");\r\n arr[arr.length - 2] = \"Page\" + arr[arr.length - 2];\r\n this.paginationApiPostUrl = arr.join(\"/\");\r\n }\r\n\r\n this.setFilterParamsByParentRefId();\r\n }\r\n\r\n this.gridSubject.next(this);\r\n this.generateGridColumns();\r\n }\r\n\r\n private setFilterParamsByParentRefId() {\r\n // Use field own referenceId if available\r\n const refId = this.getFieldReferenceId() || this.grp.referenceId;\r\n const refField = this.field.ReferenceField || this.grp.parentReferenceField;\r\n if (refId && refField) {\r\n const filterValue = {\r\n key: refField,\r\n ops: \"=\",\r\n value: refId,\r\n };\r\n // if (this.params.filterParams.find(x => x.key === filterValue.key) === undefined) {\r\n this.params.filterParams.push(filterValue);\r\n // }\r\n }\r\n }\r\n\r\n private getFieldReferenceId() {\r\n let fieldReferenceId = null;\r\n if (this.field.ReferenceId) {\r\n fieldReferenceId = ZComponentHelper.getGroupValue(\r\n this.field.ReferenceId,\r\n this.grp\r\n );\r\n }\r\n return fieldReferenceId;\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n if (this.serviceSubscription) {\r\n this.serviceSubscription.unsubscribe();\r\n }\r\n super.ngOnDestroy();\r\n }\r\n\r\n public generateGridColumns() {\r\n const columnFields$: Observable<any> = ZComponentHelper.getGroupValue(\r\n this.field.ColumnFields,\r\n this.grp\r\n );\r\n columnFields$\r\n .pipe(\r\n tap((data) => {\r\n const gridSetting = this.getGridSettings();\r\n const fieldName = this.field[\"FieldElementName\"];\r\n\r\n ZComponentHelper.getGridColumns(\r\n data,\r\n this.gridColumns,\r\n this.zgridbinding.group,\r\n this.authService,\r\n fieldName,\r\n gridSetting,\r\n this.usableColumns\r\n );\r\n this.getFilterParamsColumns();\r\n this.getFilter();\r\n this.getFilterParams();\r\n this.getSorting();\r\n this.getGrantType();\r\n this.setHiddenColumn(gridSetting);\r\n\r\n this.params.referId = this.getFieldReferenceId() || this.grp.referenceId || null;\r\n //}),\r\n //switchMap(() => {\r\n // //Get Session\r\n // return this.getGridSessionFilter(this.grp, this);\r\n //}),\r\n //switchMap(() => {\r\n // //Before get grid data\r\n // return this.beforeGridGetData(this.grp, this);\r\n //}),\r\n //switchMap(() => {\r\n // //Set grid data\r\n // return this.setGridSessionFilter(this.grp, this);\r\n })\r\n )\r\n .subscribe(() => {\r\n this.getDataBinding();\r\n });\r\n }\r\n\r\n private getFilterParamsColumns() {\r\n const colFields: Array<string> = [];\r\n this.gridColumns.forEach((field) => {\r\n if (field.valueExpr) {\r\n colFields.push(field.valueExpr + \" as \" + field.field);\r\n } else {\r\n colFields.push(field.field);\r\n }\r\n });\r\n\r\n if (colFields.length > 0) {\r\n if (colFields.indexOf(\"Id\") === -1) {\r\n colFields.push(\"Id\");\r\n }\r\n }\r\n\r\n let tmpGridColumn: any[] = [];\r\n tmpGridColumn.push(colFields.join(\",\"));\r\n if (this.usableColumns.length > 0) {\r\n tmpGridColumn.push(this.usableColumns.join(\",\"));\r\n }\r\n this.params.columns = tmpGridColumn.join(\",\");\r\n }\r\n\r\n private getFilter() {\r\n if (this.params.filters && this.field.Filters) {\r\n this.params.filters = this.params.filters + \" && \" + this.field.Filters;\r\n } else if (!this.params.filters && this.field.Filters) {\r\n this.params.filters = this.field.Filters;\r\n }\r\n\r\n if (this.field.Filters && this.field.Filters.indexOf(\"group.\") !== -1) {\r\n const filterKeyValPairs = this.field.Filters.split(\" \");\r\n const grpValues = filterKeyValPairs.filter(\r\n (element) => element.trim().indexOf(\"group.\") !== -1\r\n );\r\n\r\n grpValues.forEach((val) => {\r\n const actualVal = ZComponentHelper.getGroupValue(val, this.grp);\r\n this.params.filters = this.params.filters.replace(val, actualVal);\r\n });\r\n }\r\n }\r\n\r\n private getFilterParams() {\r\n if (this.field['FilterParams']) {\r\n if (this.field['FilterParams'].indexOf(\"group.\") !== -1) {\r\n this.params.filterParams = ZComponentHelper.getGroupValue(this.field['FilterParams'], this.grp);\r\n } else {\r\n this.params.filterParams = this.field['FilterParams'];\r\n }\r\n }\r\n }\r\n\r\n private getSorting() {\r\n if (this.field.SortOrder) {\r\n if (this.field.SortOrder.indexOf(\"group.\") !== -1) {\r\n this.params.sortOrder = ZComponentHelper.getGroupValue(this.field.SortOrder, this.grp);\r\n } else {\r\n this.params.sortOrder = this.field.SortOrder;\r\n }\r\n }\r\n }\r\n\r\n private getGrantType() {\r\n if (this.field.GrantType) {\r\n this.params.grantType = ZComponentHelper.getGroupValue(this.field.GrantType.toString(), this.grp);\r\n }\r\n }\r\n\r\n private setHiddenColumn(gridSetting: ZGridColumnSettings[]) {\r\n if (this.gridColumns && gridSetting) {\r\n // filter out hidden == false array.\r\n const gridSettingHiddenCol = gridSetting.filter(function (item) {\r\n return item['hidden'] == true;\r\n });\r\n\r\n // find and set the hidden to current column setting.\r\n Object.values(gridSettingHiddenCol).forEach(value => {\r\n if (this.gridColumns.find((c) => c.field === value.field)) {\r\n this.gridColumns.find((c) => c.field === value.field)['hidden'] = value['hidden'];\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n public getDataBinding(): void {\r\n this.grid.loading = true;\r\n\r\n if (!this.dataSource) {\r\n this.params.pageSize = this.state.take;\r\n if (this.field.ExternalPagination) {\r\n // For POST method Page WebAPI\r\n this.webapiService\r\n .postApi(\r\n this.paginationApiPostUrl,\r\n this.params,\r\n null,\r\n null,\r\n null,\r\n null,\r\n true\r\n )\r\n .subscribe((data) => {\r\n this.aggregateHandling(data.dataSet);\r\n this.grid.data = { data: data.dataSet, total: data.totalCount };\r\n this.grid.loading = false;\r\n this.gridSubject.next(this);\r\n this.notifyDataChange();\r\n });\r\n } else {\r\n // For GET method\r\n this.webapiService\r\n .getApi(this.resourceURL, null, null, null, null, null, true)\r\n .subscribe((data) => {\r\n let _data = null;\r\n let _totalCount = 0;\r\n\r\n if (data.dataSet) {\r\n _data = data.dataSet;\r\n _totalCount = data.totalCount;\r\n } else {\r\n _data = data;\r\n _totalCount = data.length;\r\n }\r\n\r\n this.aggregateHandling(_data);\r\n this.grid.data = { data: _data, total: _totalCount };\r\n this.grid.pageSize = _totalCount;\r\n this.grid.loading = false;\r\n this.gridSubject.next(this);\r\n this.notifyDataChange();\r\n });\r\n }\r\n } else {\r\n const ds = ZComponentHelper.getGroupValue(\r\n this.field.DataSource,\r\n this.grp\r\n );\r\n\r\n if (ds) {\r\n this.grid.data = {\r\n data: ds,\r\n total: ds.length,\r\n };\r\n this.grid.pageSize = ds.length;\r\n }\r\n this.gridSubject.next(this);\r\n this.grid.loading = false;\r\n }\r\n }\r\n\r\n public clearData(): void {\r\n this.grid.data = { data: [], total: 0 };\r\n }\r\n\r\n\r\n private aggregateHandling(data: any) {\r\n const aggregateColumns = this.gridColumns.filter(x => x.aggregateType);\r\n\r\n aggregateColumns.forEach(col => {\r\n const field = col.field;\r\n\r\n let _aggregateValue = null;\r\n switch (col.aggregateType.slice(0, -1).toLowerCase()) {\r\n case \"total\": {\r\n _aggregateValue = data.reduce((total, next) => total + next[field], 0);\r\n break;\r\n }\r\n case \"sum\": {\r\n _aggregateValue = data.reduce((total, next) => total + next[field], 0);\r\n break;\r\n }\r\n case \"average\": {\r\n _aggregateValue = data.reduce((total, next) => total + next[field], 0) / data.length;\r\n break;\r\n }\r\n case \"count\": {\r\n _aggregateValue = data.length;\r\n break;\r\n }\r\n case \"max\": {\r\n _aggregateValue = data.reduce((p, c) => p[field] > c[field] ? p : c)[field];\r\n break;\r\n }\r\n case \"min\": {\r\n _aggregateValue = data.reduce((p, c) => p[field] < c[field] ? p : c)[field];\r\n break;\r\n }\r\n }\r\n\r\n col.aggregateValue = _aggregateValue;\r\n });\r\n }\r\n\r\n private aggregateResetValue() {\r\n const aggregateColumns = this.gridColumns.filter(x => x.aggregateType);\r\n aggregateColumns.forEach(col => {\r\n col.aggregateValue = 0;\r\n });\r\n }\r\n\r\n\r\n public pageChange(event: PageChangeEvent): void {\r\n this.params.pageNo = event.skip / this.params.pageSize;\r\n this.state.skip = event.skip;\r\n this.getDataBinding();\r\n }\r\n\r\n public sortChange(sort: SortDescriptor[]): void {\r\n this.sort = sort;\r\n this.params.sortColumnNames = [];\r\n this.params.sortOrders = [];\r\n\r\n sort.forEach((f) => {\r\n if (f.dir) {\r\n this.params.sortOrders.push(f.dir);\r\n\r\n const field = this.gridColumns.find((c) => c.field === f.field);\r\n if (field.valueExpr !== undefined) {\r\n this.params.sortColumnNames.push(field.valueExpr);\r\n } else {\r\n this.params.sortColumnNames.push(f.field);\r\n }\r\n }\r\n });\r\n this.getDataBinding();\r\n }\r\n\r\n public filterChange(event: any): void {\r\n this.params.pageNo = 0;\r\n this.params.filterParams = [];\r\n this.setFilterParamsByParentRefId();\r\n\r\n console.log(event);\r\n if (event) {\r\n if (event.filters.length > 0) {\r\n event.filters.forEach((item) => {\r\n const field = this.gridColumns.find((c) => c.field === item.field);\r\n\r\n if (item.filters) {\r\n item.filters.forEach((f: FilterDescriptor) => {\r\n if (f.value === null) {\r\n f.value = \"\"; // convert null to \"\"\r\n }\r\n this.params.filterParams.push({\r\n key: f.field as string,\r\n ops: this.mapFilterOperator(f.operator),\r\n value: f.value,\r\n });\r\n });\r\n } else {\r\n if (item.value === null) {\r\n item.value = \"\"; // convert null to \"\"\r\n }\r\n this.params.filterParams.push({\r\n key:\r\n field.valueExpr !== undefined\r\n ? `(${field.valueExpr})`\r\n : item.field,\r\n ops: this.mapFilterOperator(item.operator),\r\n value: item.value,\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n this.setGridSessionFilter(this.grp, this);\r\n this.getDataBinding();\r\n\r\n\r\n }\r\n\r\n public dataStateChange(state: DataStateChangeEvent): void {\r\n // this.state = state;\r\n this.skip = state.skip;\r\n this.pageSize = state.take;\r\n this.state.skip = state.skip;\r\n this.state.take = state.take;\r\n this.grid.loading = true;\r\n this.aggregateResetValue();\r\n }\r\n\r\n private mapFilterOperator(operator: any) {\r\n switch (operator) {\r\n case \"eq\":\r\n return \"eq\";\r\n case \"neq\":\r\n return \"neq\";\r\n case \"lt\":\r\n return \"lt\";\r\n case \"lte\":\r\n return \"lte\";\r\n case \"gt\":\r\n return \"gt\";\r\n case \"gte\":\r\n return \"gte\";\r\n case \"startswith\":\r\n return \"startswith\";\r\n case \"endswith\":\r\n return \"endswith\";\r\n case \"isnull\":\r\n return \"isnull\";\r\n case \"isnotnull\":\r\n return \"isnotnull\";\r\n case \"contains\": {\r\n if (!this.field['FilterContainsUsingEqual']) {\r\n return \"contains\";\r\n } \r\n }\r\n default:\r\n return \"==\";\r\n // eq, neq, isnull, isnotnull, endswith, startswith\r\n }\r\n }\r\n\r\n private getGridSettings(): ZGridColumnSettings[] {\r\n const _storageKey = 'ionic-field::' + this.authService.e1Token.userName + '::' + this.field.Name + '::' + this.router.url;\r\n\r\n // Find any setting from localstorage..\r\n let _arrGridCaching: GridCaching[] = this.zGridStatePersistingService.get(_storageKey);\r\n if (_arrGridCaching) {\r\n const _gridCaching: GridCaching = JSON.parse(_arrGridCaching['Value']);\r\n if (_gridCaching) {\r\n return _gridCaching.gridSettings.columnsConfig.sort((a, b) => a.orderIndex - b.orderIndex);\r\n }\r\n }\r\n }\r\n\r\n public beforeGridGetData(group: ZGroup, me: any) {\r\n console.warn(\"beforeDataBinding triggered\");\r\n if (!group.beforeGridGetData) {\r\n console.warn(\"group.beforeDataBinding is undefined\");\r\n return of(true);\r\n }\r\n return group.beforeGridGetData(group, me);\r\n }\r\n\r\n private getGridSessionFilter(group: ZGroup, me: any) {\r\n if (!group[\"GridStorageKey\"]) {\r\n return of([]);\r\n }\r\n\r\n const StorageKey = group[\"GridStorageKey\"];\r\n\r\n if (this.storageService) {\r\n const subject = new Subject<string>();\r\n\r\n of(true)\r\n .pipe(\r\n switchMap(() => {\r\n return this.storageService.get(StorageKey);\r\n }),\r\n tap(data => {\r\n if (!data || !data.value || data.value === \"null\") {\r\n subject.next(); \r\n }\r\n else {\r\n const result = JSON.parse(data.value);\r\n this.state.filter = JSON.parse(result[\"StateFilter\"]);\r\n this.params.filterParams = JSON.parse(result[\"FilterParams\"]);\r\n\r\n this.state.filter.filters.forEach((d: any) => {\r\n if (d.field.includes('UTC')) {\r\n d.value = new Date(d.value);\r\n }\r\n });\r\n\r\n subject.next(); \r\n }\r\n })\r\n ).subscribe();\r\n\r\n return subject.asObservable();\r\n }\r\n else {\r\n return of([]);\r\n }\r\n }\r\n\r\n private setGridSessionFilter(group: ZGroup, me: any) {\r\n if (!group[\"GridStorageKey\"]) {\r\n return null;\r\n }\r\n\r\n const StorageKey = group[\"GridStorageKey\"]; \r\n\r\n if (me.state.filter && this.storageService && this.field['SaveFilter']) {\r\n //list of data for StateFilter and FilterParams\r\n const lstGridFilter = { \"StateFilter\": JSON.stringify(me.state.filter), \"FilterParams\": JSON.stringify(me.params.filterParams) }\r\n //create session storage\r\n this.storageService.set(StorageKey, JSON.stringify(lstGridFilter));\r\n }\r\n }\r\n\r\n}\r\n","import { Directive, ElementRef, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[popupAnchor]',\r\n exportAs: 'popupAnchor'\r\n})\r\nexport class ZGridPopupAnchorDirective {\r\n constructor(public element: ElementRef\r\n ) {\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Directive, HostListener, Input } from '@angular/core';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { ComboBoxComponent } from '@progress/kendo-angular-dropdowns';\r\n\r\n/********** Component & Service **********/\r\n\r\n\r\n@Directive({\r\n selector: 'kendo-combobox[openOnFocus]'\r\n})\r\nexport class OpenOnFocusDirective {\r\n\r\n @Input() openOnFocus: ComboBoxComponent;\r\n\r\n @HostListener('focus') onFocus() {\r\n if (this.openOnFocus) {\r\n if (!this.openOnFocus.readonly) {\r\n this.openOnFocus.toggle(true);\r\n }\r\n }\r\n }\r\n\r\n @HostListener('blur') onBlur() {\r\n if (this.openOnFocus) {\r\n this.openOnFocus.toggle(false);\r\n }\r\n }\r\n}","import { Pipe, PipeTransform } from \"@angular/core\";\r\n\r\n@Pipe({\r\n name: \"dateParser\",\r\n pure: true,\r\n})\r\nexport class DateParserFilter implements PipeTransform {\r\n transform(items: any): any {\r\n // debugger;\r\n if (!items) {\r\n return items;\r\n }\r\n // filter items array, items which match and return true will be\r\n // kept, false will be filtered out\r\n try {\r\n const d = new Date(items);\r\n return d;\r\n } catch (error) {\r\n console.log(\"DateParserFilter error: \", error);\r\n return null;\r\n }\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\n\r\n\r\n@Pipe({\r\n name: 'editorfilter',\r\n pure: false\r\n})\r\nexport class EditorFilter implements PipeTransform {\r\n transform(source: any): any {\r\n if (!source) {\r\n return;\r\n }\r\n if (typeof source === \"string\") {\r\n try {\r\n const jsonValue = JSON.parse(source);\r\n return JSON.stringify(jsonValue, null, 2);\r\n // return this.safeStringify(jsonValue);\r\n } catch {\r\n return source;\r\n }\r\n }\r\n if (typeof source === \"object\" || Array.isArray(source)) {\r\n try {\r\n return JSON.stringify(source, null, 2);\r\n // return this.safeStringify(source);\r\n } catch {\r\n return \"problem - [Circular structure to JSON]\";\r\n }\r\n }\r\n\r\n }\r\n\r\n private safeStringify(jsonValue: any) {\r\n // Note: cache should not be re-used by repeated calls to JSON.stringify.\r\n const cache: Array<any> = [];\r\n return JSON.stringify(jsonValue, (key, value) => {\r\n if (typeof value === 'object' && value !== null) {\r\n // Duplicate reference found, discard key\r\n if (cache.includes(value)) {\r\n // debugger;\r\n // return \"problem - [Circular structure to JSON]\";\r\n return;\r\n }\r\n // Store value in our collection\r\n cache.push(value);\r\n }\r\n return value;\r\n }, 2);\r\n // cache = null; // Enable garbage collection\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'divzlayout',\r\n pure: true\r\n})\r\nexport class DivzLayout implements PipeTransform {\r\n transform(items: any, zlayout: string): any {\r\n if (!items || !zlayout) {\r\n return items;\r\n }\r\n\r\n // if got zlayout, in div: 2 = 2 col per row; 3 = 1 col per row; \r\n if (zlayout == \"2\") {\r\n Object.values(items).forEach(value => {\r\n value['DivClass'] = \"col-sm-6\";\r\n });\r\n }\r\n else if (zlayout == '3') {\r\n Object.values(items).forEach(value => {\r\n value['DivClass'] = \"col-sm-12\";\r\n });\r\n }\r\n\r\n return items;\r\n }\r\n}","import { Component, Injectable } from \"@angular/core\";\r\n// import * as $ from 'jquery';\r\ndeclare var $: any;\r\n\r\n@Component({\r\n selector: \"app-zreport\",\r\n templateUrl: \"./zreport.component.html\",\r\n styleUrls: [\"./zreport.component.scss\"],\r\n})\r\n\r\n// @dynamic\r\nexport class ExportOptions {\r\n viewerToolTipOpening = null;\r\n resourceURL = null;\r\n ReportSource = null;\r\n ready = null;\r\n exportBegin = null;\r\n exportEnd = null;\r\n onRenderingEnd = null;\r\n viewerContainerStyle = null;\r\n isVisible = null;\r\n paramToResizeReportViewer = null;\r\n resizeReportView = null;\r\n // public static instance: ExportOptions;\r\n // public static init(component: any) {\r\n // if (!ExportOptions.instance) {\r\n // ExportOptions.instance = new ExportOptions();\r\n // }\r\n // ExportOptions.instance.bindEvents(component);\r\n\r\n // // Add the options when init. Sometime it will not init the class.\r\n // ExportOptions.instance.hideOptions = [\"PDF\", \"CSV\", \"XLS\", \"XLSX\", \"RTF\", \"IMAGE\", \"MHTML\", \"XPS\"];\r\n // }\r\n\r\n private largeMenuBound = false;\r\n private sideMenuBound = false;\r\n private reportSource = \"\";\r\n private hideOptions = [];\r\n\r\n public update(reportSource: string) {\r\n this.reportSource = reportSource;\r\n // show all extensions\r\n //$('[data-command-parameter]').show();\r\n\r\n // check to hide options\r\n this.hideUnwantedOptions();\r\n }\r\n\r\n public bindEvents(component: any) {\r\n this.exportOption(component);\r\n\r\n const sideMenu = $(\".trv-side-menu\").children(\"ul\").data('kendoPanelBar');\r\n const largeMenu = $(\".trv-menu-large\").data(\"kendoMenu\");\r\n const smallMenu = $(\".trv-menu-small\");\r\n\r\n // hide export button if all option is not available\r\n if (this.hideOptions.length == 8) {\r\n const exportButton = $(\"[data-command*='telerik_ReportViewer_export']\")\r\n exportButton.hide();\r\n }\r\n\r\n // bind to the 'open' event of the main menu\r\n if (!this.largeMenuBound && largeMenu) {\r\n largeMenu.bind(\"open\", () => {\r\n this.hideUnwantedOptions();\r\n });\r\n\r\n this.largeMenuBound = true;\r\n }\r\n\r\n // bind to the 'expand' event of the side menu\r\n if (!this.sideMenuBound && smallMenu) {\r\n if (sideMenu) {\r\n sideMenu.bind(\"expand\", () => {\r\n // recheck export options\r\n //if (reloadHideOptions) {\r\n // thisComponent.exportOption(thisComponent);\r\n //}\r\n this.hideUnwantedOptions();\r\n });\r\n }\r\n\r\n this.sideMenuBound = true;\r\n }\r\n }\r\n\r\n public exportOption(component: any) {\r\n const _data = component.data;\r\n if (_data.EnableExportPDF) {\r\n this.hideOptions = this.hideOptions.filter(item => item !== \"PDF\");\r\n }\r\n if (_data.EnableExportCSV) {\r\n this.hideOptions = this.hideOptions.filter(item => item !== \"CSV\");\r\n }\r\n if (_data.EnableExportExcel) {\r\n this.hideOptions = this.hideOptions.filter(item => item !== \"XLS\");\r\n this.hideOptions = this.hideOptions.filter(item => item !== \"XLSX\");\r\n }\r\n if (_data.EnableExportRTF) {\r\n this.hideOptions = this.hideOptions.filter(item => item !== \"RTF\");\r\n }\r\n if (_data.EnableExportTIFF) {\r\n this.hideOptions = this.hideOptions.filter(item => item !== \"IMAGE\");\r\n }\r\n if (_data.EnableExportMHTML) {\r\n this.hideOptions = this.hideOptions.filter(item => item !== \"MHTML\");\r\n }\r\n if (_data.EnableExportXPS) {\r\n this.hideOptions = this.hideOptions.filter(item => item !== \"XPS\");\r\n }\r\n }\r\n\r\n public hideUnwantedOptions() {\r\n // show all extensions\r\n $('[data-command-parameter]').show();\r\n\r\n // hide the specified extensions\r\n $.each(this.hideOptions, function (index, item) {\r\n var hiddenOption = $('[data-command-parameter=\"' + item + '\"]');\r\n if (hiddenOption && hiddenOption.length) {\r\n hiddenOption.hide();\r\n }\r\n });\r\n }\r\n\r\n public resizeViewer() {\r\n return null;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'tabfilter',\r\n pure: true\r\n})\r\nexport class TabFilter implements PipeTransform {\r\n transform(items: any, filter: string): any {\r\n // debugger;\r\n if (!items || !filter) {\r\n return items;\r\n }\r\n // filter items array, items which match and return true will be\r\n // kept, false will be filtered out\r\n return items.filter(item => {\r\n const target = item.TabArea + '';\r\n return target.indexOf(filter) !== -1;\r\n });\r\n }\r\n}","import { Component, Input } from \"@angular/core\";\r\nimport { BaseFilterCellComponent, FilterService } from \"@progress/kendo-angular-grid\";\r\nimport { FilterDescriptor, CompositeFilterDescriptor } from \"@progress/kendo-data-query/dist/es/main\";\r\n\r\n@Component({\r\n selector: 'date-range-filter-cell',\r\n styles: [`\r\n kendo-daterange > kendo-dateinput.range-filter {\r\n display: inline-block;\r\n }\r\n .k-button {\r\n margin-left: 4px;\r\n }\r\n ` ],\r\n template: `\r\n <kendo-daterange >\r\n <kendo-dateinput\r\n class=\"range-filter\"\r\n kendoDateRangeStartInput\r\n [format]=\"'dd-MM-yyyy'\"\r\n placeholder=\"dd-MM-yyyy\"\r\n [value]=\"start\"\r\n (valueChange)=\"filterRange($event, end)\"\r\n style=\"width:84px\">\r\n </kendo-dateinput>\r\n -\r\n <kendo-dateinput\r\n class=\"range-filter\"\r\n kendoDateRangeEndInput\r\n [format]=\"'dd-MM-yyyy'\"\r\n placeholder=\"dd-MM-yyyy\"\r\n [value]=\"end\"\r\n (valueChange)=\"filterRange(start, $event)\"\r\n style=\"width:85px\">\r\n </kendo-dateinput>\r\n </kendo-daterange>\r\n <button\r\n *ngIf=\"hasFilter\"\r\n class=\"k-button k-button-icon\"\r\n title=\"Clear\"\r\n (click)=\"clearFilter()\">\r\n <span class=\"k-icon k-i-filter-clear\" style=\"width:15px\"></span>\r\n </button>\r\n `\r\n})\r\nexport class DateRangeFilterCellComponent extends BaseFilterCellComponent {\r\n @Input()\r\n public filter: any;\r\n\r\n @Input()\r\n public field: string;\r\n\r\n constructor(filterService: FilterService) {\r\n super(filterService);\r\n }\r\n\r\n public get start(): Date {\r\n const first = this.findByOperator(\"gte\");\r\n\r\n return (first || <FilterDescriptor>{}).value;\r\n }\r\n\r\n public get end(): Date {\r\n const end = this.findByOperator(\"lte\");\r\n return (end || <FilterDescriptor>{}).value;\r\n }\r\n\r\n public get hasFilter(): boolean {\r\n return this.filtersByField(this.field).length > 0;\r\n }\r\n\r\n public clearFilter(): void {\r\n this.filterService.filter(\r\n this.removeFilter(this.field)\r\n );\r\n }\r\n\r\n public filterRange(start: Date, end: Date): void {\r\n this.filter = this.removeFilter(this.field);\r\n\r\n const filters = [];\r\n\r\n if (start) {\r\n filters.push({\r\n field: this.field,\r\n operator: \"gte\",\r\n value: start\r\n });\r\n }\r\n\r\n if (end) {\r\n filters.push({\r\n field: this.field,\r\n operator: \"lte\",\r\n value: end\r\n });\r\n }\r\n\r\n const root = this.filter || {\r\n logic: \"and\",\r\n filters: []\r\n };\r\n\r\n if (filters.length) {\r\n root.filters.push(...filters);\r\n }\r\n\r\n this.filterService.filter(root);\r\n }\r\n\r\n private findByOperator(op: string): FilterDescriptor {\r\n return this.filtersByField(this.field)\r\n .filter(({ operator }) => operator === op)[0];\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, Input, HostListener } from \"@angular/core\";\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { of } from \"rxjs\";\r\nimport { delay, take } from \"rxjs/operators\";\r\nimport { ToolbarService } from \"@progress/kendo-angular-scheduler\";\r\n\r\n/********** Component & Service **********/\r\n\r\n\r\n@Component({\r\n selector: \"zschedulertoolbar\",\r\n template: `\r\n <div class=\"k-scheduler-navigation\">\r\n <button class=\"k-nav-today\" (click)=\"today()\">\r\n Today\r\n </button>\r\n <button class=\"k-nav-prev\" (click)=\"prev($event)\">\r\n <span class=\"k-icon k-i-arrow-60-left\"></span>\r\n </button> &nbsp;\r\n <span>\r\n <a class=\"k-nav-current\" #anchor\r\n >\r\n <!-- <span class=\"k-icon k-i-calendar\"></span> -->\r\n {{ selectedDate | kendoDate: \"dd-MMM-yyyy\" }}\r\n </a>\r\n </span> &nbsp;\r\n <button class=\"k-nav-next\" (click)=\"next($event)\">\r\n <span class=\"k-icon k-i-arrow-60-right\"></span>\r\n </button>\r\n </div>\r\n <kendo-popup\r\n style=\"margin:15px 0px 0px 0px;\"\r\n [anchor]=\"anchor\"\r\n (anchorViewportLeave)=\"showCalendar = false\"\r\n *ngIf=\"showCalendar\"\r\n >\r\n <kendo-calendar\r\n [focusedDate]=\"selectedDate\"\r\n (blur)=\"onBlur_Calendar()\"\r\n (valueChange)=\"onChange_Calendar($event)\"\r\n ></kendo-calendar>\r\n </kendo-popup>\r\n `,\r\n styleUrls: [\"./zscheduler.toolbar.component.css\"]\r\n})\r\nexport class ZSchedulerToolBarComponent {\r\n @Input() local: any = {};\r\n @Input() public selectedDate: Date;\r\n showCalendar = false;\r\n\r\n constructor(public toolbarService: ToolbarService) {}\r\n\r\n public today(): void {\r\n this.toolbarService.navigate({\r\n type: \"today\"\r\n });\r\n }\r\n\r\n public next(event: any): void {\r\n this.toolbarService.navigate({\r\n type: \"next\"\r\n });\r\n }\r\n\r\n public prev(event: any): void {\r\n this.toolbarService.navigate({\r\n type: \"prev\"\r\n });\r\n }\r\n\r\n onChange_Calendar(value: any): void {\r\n this.local.inProgress = true;\r\n this.toolbarService.navigate({\r\n type: 'select-date',\r\n date: value\r\n });\r\n this.toggleCalendar();\r\n of([])\r\n .pipe(take(1), delay(1000))\r\n .subscribe(() => (this.local.inProgress = false));\r\n }\r\n\r\n onBlur_Calendar(): void {\r\n this.toggleCalendar();\r\n }\r\n\r\n toggleCalendar(status?: boolean) {\r\n if (status === false) {\r\n this.showCalendar = false;\r\n return;\r\n }\r\n this.showCalendar = !this.showCalendar;\r\n }\r\n\r\n @HostListener(\"keydown\", [\"$event\"])\r\n public keydown(event: any): void {\r\n if (event.keyCode === 27 && this.showCalendar === true) {\r\n this.toggleCalendar(false);\r\n }\r\n }\r\n\r\n @HostListener(\"document:click\", [\"$event\"])\r\n public documentClick(event: any): void {\r\n if (event.target.className === \"k-nav-current\") {\r\n this.toggleCalendar();\r\n } else {\r\n if (this.showCalendar === true) {\r\n this.toggleCalendar(false);\r\n }\r\n }\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component } from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { Subscription, of, Observable } from \"rxjs\";\r\nimport { switchMap, tap } from \"rxjs/operators\";\r\n\r\n/********** Component & Service **********/\r\nimport { MainService } from \"../services/main.service\";\r\nimport { ZGroup, IDeactivateComponent } from \"mmhglobal-zcore\";\r\n// import { IDeactivateComponent } from \"src/app/services/candeactivate.guard\";\r\n\r\n\r\n@Component({\r\n template: ``,\r\n})\r\nexport class UipageComponent implements IDeactivateComponent {\r\n // ctrlName = \"e1crm_bpactivity\";\r\n group: ZGroup = new ZGroup(true);\r\n subscription: Subscription;\r\n\r\n constructor(\r\n // public fieldService: FieldService,\r\n public mainService: MainService,\r\n public activatedRoute: ActivatedRoute\r\n ) {\r\n mainService.setGroup(this.group);\r\n // console.log(\"At \" + this.ctrlName + \" (constructor)\");\r\n }\r\n\r\n canExit(): boolean | Observable<boolean> {\r\n return this.mainService.canExit(this.group.form);\r\n }\r\n\r\n pageOnInit(ctrlName: string, pageName: string, isListForm: boolean, projectName?: string) {\r\n this.group._projectName = projectName;\r\n\r\n return this.mainService.getResourceServerData().pipe(\r\n switchMap((rsData) => {\r\n this.group.isListForm = isListForm;\r\n return this.activatedRoute.paramMap;\r\n }),\r\n tap((paramMap) => {\r\n const actName = paramMap.get(\"act\");\r\n this.group.isNew = actName === \"new\" ? true : false;\r\n this.group.isEdit = actName === \"edit\" ? true : false;\r\n if (actName === \"edit\") {\r\n this.group.referenceId = paramMap.get(\"id\");\r\n } else if (actName === \"new\") {\r\n this.group.parentReferenceId =\r\n paramMap.get(\"parentreferenceid\") || paramMap.get(\"id\");\r\n this.group.backNavigationPage =\r\n this.group.backNavigationPage +\r\n \"/\" +\r\n this.group.parentReferenceId.toString() +\r\n \"/edit\";\r\n }\r\n if (actName) {\r\n this.group.actName = actName;\r\n }\r\n this.mainService.initializeGroup(this.group, ctrlName, pageName, this);\r\n\r\n if (\r\n actName === \"new\" &&\r\n this.group.parentReferenceField &&\r\n this.group.parentReferenceId\r\n ) {\r\n this.group.zModel[\r\n this.group.parentReferenceField\r\n ] = this.group.parentReferenceId.toString();\r\n }\r\n }),\r\n switchMap(() => {\r\n const formType = isListForm ? \"ListField\" : \"FormField\";\r\n const formFieldName = this.group.fieldName\r\n ? this.group.fieldName\r\n : ctrlName;\r\n this.group.fieldName = formFieldName;\r\n return this.mainService.getGroupFields(\r\n formFieldName,\r\n formType,\r\n this.group,\r\n \"fields\"\r\n );\r\n }),\r\n switchMap((fields) => {\r\n return this.mainService.beforePageInitialise(this.group);\r\n }),\r\n switchMap((fields) => {\r\n if (this.group.actName === \"new\") {\r\n this.mainService.getCloneNewCacheZModel(this.group);\r\n return this.mainService.afterNewModel(this.group);\r\n } else {\r\n return of(fields);\r\n }\r\n }),\r\n switchMap(() => {\r\n // console.log('CtrName: ' + ctrlName + ' field Element: ', fields);\r\n if (this.group.referenceId && this.group.referenceId !== \"0\") {\r\n if (typeof this.group.getModel === \"function\") {\r\n return this.group.getModel(this.group, this.group.referenceId);\r\n } else {\r\n return this.mainService.getModel$(\r\n this.group,\r\n this.group.referenceId\r\n );\r\n }\r\n } else {\r\n return of({});\r\n }\r\n }),\r\n switchMap((zmodel) => {\r\n if (this.group.parentReferenceField) {\r\n this.group.parentReferenceId = this.group.zModel[\r\n this.group.parentReferenceField\r\n ];\r\n }\r\n return this.mainService.afterPageInitialise(this.group);\r\n })\r\n );\r\n // .subscribe(() => {\r\n // console.log(\"At activity-one.page ngOnInit() completed\");\r\n // this.group.isLoading = false;\r\n // });\r\n }\r\n\r\n pageDestroy(): void {\r\n console.log(this.group.pageName + \" ngOnDestroy.\");\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { Router } from '@angular/router';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport { ZGroup, ZCoreService, AuthService, ZComponentHelper } from \"mmhglobal-zcore\";\r\n\r\n\r\n@Component({\r\n selector: \"app-uiheader\",\r\n templateUrl: \"./uiheader.component.html\",\r\n styleUrls: [\"./uiheader.component.scss\"]\r\n})\r\nexport class UiheaderComponent implements OnInit {\r\n @Input() group: ZGroup;\r\n @Input() topFormHeader: string;\r\n public formHeader: string;\r\n public profileImgUrl: string;\r\n public username: string;\r\n public userDisplayName: string;\r\n // backNavigate = null;\r\n\r\n constructor(\r\n private router: Router,\r\n private zcoreService: ZCoreService,\r\n private authService: AuthService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n // if (this.group.backNavigationPage) {\r\n // if (this.group.backNavigationPage.indexOf('/', 1) > 1) {\r\n // this.backNavigate = this.group.backNavigationPage;\r\n // } else {\r\n // this.backNavigate = \"/_appmenu/\" + this.group.backNavigationPage;\r\n // }\r\n // }\r\n const environment = this.zcoreService.getEnvironment();\r\n this.profileImgUrl = environment.e1OauthUrl + '/api/ProfileImage?id=' + this.authService.e1Token.myProfile.UserName + '&size=80x80';\r\n const _myProfile = this.authService.e1Token.myProfile;\r\n if (_myProfile) {\r\n this.username = _myProfile.UserName;\r\n this.userDisplayName = _myProfile.LastName;\r\n }\r\n\r\n if (this.topFormHeader) {\r\n this.formHeader = this.topFormHeader;\r\n }\r\n }\r\n\r\n public bindFormHeader() { \r\n if (!this.topFormHeader) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n \r\n public onLogout() {\r\n this.authService.logout();\r\n this.router.navigateByUrl('/auth');\r\n }\r\n\r\n public isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from '@angular/core';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\n// import { ZComponentDebugService } from '../services/zcomponent.debug.service';\r\nimport { ZGroup, ZComponentHelper, ZCoreService } from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-uicontent',\r\n templateUrl: './uicontent.component.html',\r\n styleUrls: ['./uicontent.component.scss'],\r\n})\r\nexport class UicontentComponent implements OnInit {\r\n\r\n @Input() group: ZGroup;\r\n\r\n constructor(\r\n private zcoreService: ZCoreService\r\n ) { }\r\n\r\n ngOnInit() {\r\n console.log(this.group);\r\n }\r\n\r\n isSITEnvironment() {\r\n // return environment.e1OauthUrl.startsWith('https://oauthdev.');\r\n return this.zcoreService.isDebugSession() && !this.isFieldElement();\r\n }\r\n\r\n isFieldElement() {\r\n return this.group.fieldName === 'field';\r\n // return false;\r\n }\r\n\r\n isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { Router } from '@angular/router';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { FaIconLibrary } from '@fortawesome/angular-fontawesome';\r\n\r\n/********** Component & Service **********/\r\nimport { ZGroup } from \"mmhglobal-zcore\";\r\n\r\n\r\nexport interface UiMenuContentItem {\r\n url: string;\r\n icon: string | Array<string>;\r\n title: string;\r\n}\r\n\r\nexport interface UiMenuContentCategory {\r\n category:string;\r\n content:Array<UiMenuContentItem>\r\n}\r\n\r\n@Component({\r\n selector: 'app-uimenucontent',\r\n templateUrl: './uimenucontent.component.html',\r\n styleUrls: ['./uimenucontent.component.scss'],\r\n})\r\nexport class UimenucontentComponent implements OnInit {\r\n @Input() items: Array<UiMenuContentCategory> | Array<UiMenuContentItem>;\r\n\r\n \r\n constructor() { }\r\n\r\n ngOnInit() {\r\n if (this.items && this.items.length > 0) {\r\n console.error('Pls stop use hardcode submenu. Now the submenu can define in e1 Menu Relationship.');\r\n }\r\n }\r\n\r\n CheckisCategory(e: UiMenuContentCategory | UiMenuContentItem): e is UiMenuContentCategory { \r\n return (<UiMenuContentCategory>e).category !== undefined;\r\n }\r\n\r\n isCategory(){\r\n let v = false;\r\n if (this.items.length > 0) {\r\n if (this.CheckisCategory(this.items[0])) {\r\n v = true;\r\n }\r\n }\r\n return v; \r\n }\r\n\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { Router } from '@angular/router';\r\n\r\n/********** Ionic **********/\r\nimport { MenuController } from '@ionic/angular';\r\n\r\n/********** Plugin **********/\r\n// import { AsyncSubject, of } from 'rxjs';\r\n\r\n/********** Component & Service **********/\r\nimport { ZGroup } from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-uimenubutton',\r\n templateUrl: './uimenubutton.component.html',\r\n styleUrls: ['./uimenubutton.component.scss'],\r\n})\r\nexport class UimenubuttonComponent implements OnInit {\r\n @Input() group: ZGroup;\r\n\r\n constructor(\r\n public menuCtrl: MenuController,\r\n private router: Router\r\n ) { }\r\n\r\n ngOnInit() { }\r\n\r\n\r\n toggleMenu() {\r\n this.menuCtrl.toggle();\r\n }\r\n\r\n backNavigate() {\r\n if (this.group.beforeBackNavigationPage) {\r\n this.group.beforeBackNavigationPage(this.group).subscribe(() => {\r\n this.router.navigate([this.group.backNavigationPage]);\r\n })\r\n }\r\n else {\r\n this.router.navigate([this.group.backNavigationPage]);\r\n }\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport { OAuthMenuItem, MenuService, AuthService, ZComponentHelper, ZCoreService } from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-uiappmenucontent',\r\n templateUrl: './uiappmenucontent.component.html',\r\n styleUrls: ['./uiappmenucontent.component.scss'],\r\n})\r\nexport class UiappmenucontentComponent implements OnInit {\r\n @Input() items: Array<OAuthMenuItem>;\r\n\r\n colorArray: any[] = [\r\n { stroke: '#F59600', color: '#F59600' },\r\n\r\n { stroke: '#F5C800', color: '#F5C800' },\r\n { stroke: '#F5EF00', color: '#F5EF00' },\r\n { stroke: '#8FE300', color: '#8FE300' },\r\n { stroke: '#00B33D', color: '#00B33D' },\r\n { stroke: '#095D9D', color: '#095D9D' },\r\n { stroke: '#2116AA', color: '#2116AA' },\r\n\r\n { stroke: '#6509A4', color: '#6509A4' },\r\n { stroke: '#C4006F', color: '#C4006F' },\r\n { stroke: '#F52B00', color: '#F52B00' }\r\n ];\r\n\r\n constructor(\r\n private router: Router,\r\n private menuService: MenuService,\r\n private authService: AuthService,\r\n private zcoreService: ZCoreService\r\n ) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n public getDivClass(item) {\r\n return item.Type === 'dropdown-submenu' ? 'flex-show' : 'col-xs-4 col-sm-4 col-md-3 col-xl-2';\r\n }\r\n\r\n public getMenuList(item) {\r\n return item.Type === 'dropdown-submenu' ? this.menuService.getMenuFolder(item.URL) : null;\r\n }\r\n\r\n public menuOnClick(pathName: string, appClientPath?: string) {\r\n const startupPage: string = this.zcoreService.getEnvironment().startUpPage;\r\n\r\n if (appClientPath && startupPage.toLocaleLowerCase() == 'launcher') {\r\n ZComponentHelper.openAppClientPath(pathName, appClientPath, this.authService); \r\n return false;\r\n }\r\n else {\r\n this.router.navigate([pathName]);\r\n }\r\n } \r\n\r\n private setMapInput(key: string, value: string) {\r\n const mapInput = document.createElement('input');\r\n mapInput.type = 'hidden';\r\n mapInput.name = key;\r\n mapInput.setAttribute('value', value);\r\n\r\n return mapInput;\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input, Directive } from '@angular/core'; \r\nimport { Validators } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\nimport { ActionSheetController } from '@ionic/angular';\r\n\r\n/********** Plugin **********/\r\nimport { map } from 'rxjs/operators';\r\n\r\n/********** Component & Service **********/\r\nimport { \r\n FieldService, WebApiService, ResourceApiService, WorkflowService,\r\n ZGroup, ZField, ZComponentProperties, ZComponentHelper,\r\n ZComponentOutputEvent\r\n} from 'mmhglobal-zcore'; \r\n\r\n\r\n@Component({\r\n selector: 'app-uiactionbutton',\r\n templateUrl: './uiactionbutton.component.html',\r\n styleUrls: ['./uiactionbutton.component.scss'],\r\n})\r\n\r\nexport class UiactionbuttonComponent implements OnInit {\r\n @Input() group: ZGroup;\r\n topRightActionButton: any[] = [];\r\n actionBtnList: Array<ZField>;\r\n isWorkflowButton: boolean = false;\r\n // visible:boolean = true;\r\n private data: any;\r\n componentProperties = new ZComponentProperties();\r\n\r\n constructor(\r\n private fieldService: FieldService,\r\n private webApiService: WebApiService,\r\n private resourceApiService: ResourceApiService,\r\n private workflowService: WorkflowService,\r\n private actionSheetCtrl: ActionSheetController\r\n ) { }\r\n\r\n /******************** Common function ********************/\r\n ngOnInit() {\r\n this.data = this.getFirstzButton(this.group.fields);\r\n // this.visible = ZComponentHelper.isVisible(buttonData);\r\n\r\n if (this.data) {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n if (!ZComponentHelper.isNullUndefinedEmpty(this.data.WorkflowCode)) {\r\n // handle as zWorkflowButton\r\n this.isWorkflowButton = true;\r\n this.loadWorkflowButton();\r\n }\r\n else {\r\n // handle as zButton\r\n const field$ = this.fieldService.getFormFieldCode(\r\n this.data.Value,\r\n \"FormField\",\r\n null,\r\n null\r\n );\r\n field$.subscribe((data: Array<ZField>) => {\r\n this.actionBtnList = data;\r\n this.reloadButtonList();\r\n });\r\n }\r\n\r\n return;\r\n }\r\n }\r\n\r\n isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n private isBtnVisible(fieldExpr) {\r\n if (fieldExpr !== false && !fieldExpr) {\r\n return true;\r\n }\r\n const v = ZComponentHelper.getGroupEvalValue.call(this, fieldExpr);\r\n return v;\r\n }\r\n\r\n /******************** zButton ********************/\r\n getFirstzButton(data: any[]) {\r\n // data.forEach(d => {\r\n for (let i = 0; i < data.length - 1; i++) {\r\n if (data[i].Type === \"zbuttons\" || data[i].Type === \"zworkflowbuttons\") {\r\n return data[i];\r\n } else {\r\n if (Array.isArray(data[i].Value)) {\r\n this.getFirstzButton(data[i].Value);\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n onAction() {\r\n if (this.isWorkflowButton) {\r\n //this.loadWorkflowButton();\r\n this.actionSheetCtrl\r\n .create({\r\n header: \"Choose an Action\",\r\n buttons: this.topRightActionButton\r\n })\r\n .then(actionSheetEl => {\r\n actionSheetEl.present();\r\n });\r\n }\r\n else {\r\n //this.reloadButtonList();\r\n this.actionSheetCtrl\r\n .create({\r\n header: \"Choose an Action\",\r\n buttons: this.topRightActionButton\r\n })\r\n .then(actionSheetEl => {\r\n actionSheetEl.present();\r\n });\r\n }\r\n }\r\n\r\n private reloadButtonList() {\r\n this.topRightActionButton = [];\r\n this.actionBtnList.forEach((button: ZField) => {\r\n const visible = ZComponentHelper.getGroupEvalValue.call(\r\n this,\r\n button.Visible,\r\n this.group\r\n );\r\n if (visible !== false) {\r\n const label = this.getButtonLabel(button);\r\n const buttonRole = this.getButtonRole(button, label);\r\n this.topRightActionButton.push({\r\n text: label,\r\n handler: () => {\r\n this.buttonClick(button);\r\n },\r\n role: buttonRole\r\n });\r\n }\r\n });\r\n }\r\n\r\n private buttonClick(button: any) {\r\n // debugger;\r\n this.group['DismissType'] = button.DismissType;\r\n this.group.subject.next({\r\n type: \"buttonClick\",\r\n target: button.ClickEvent,\r\n data: null\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n private getButtonLabel(button: any) {\r\n let buttonLabel = button.Label;\r\n if (!buttonLabel) {\r\n buttonLabel = button.Name;\r\n }\r\n\r\n let labelExpr = buttonLabel.match(/^{{.*}}$/gi);\r\n if (labelExpr) {\r\n labelExpr = labelExpr[0].slice(2, -2);\r\n const label = ZComponentHelper.getGroupValue(labelExpr, this.group);\r\n return label;\r\n } else {\r\n return buttonLabel;\r\n }\r\n }\r\n\r\n private getButtonRole(button: any, label: string) {\r\n // console.log(\"getButtonRole: \", label, button.ClickEvent);\r\n const lowerCaseLabel = label.toLowerCase();\r\n if (\r\n lowerCaseLabel.indexOf(\"cancel\") !== -1 ||\r\n lowerCaseLabel.indexOf(\"close\") !== -1\r\n ) {\r\n return \"cancel\";\r\n }\r\n return null;\r\n }\r\n\r\n /******************** zWorkflowButton ********************/\r\n // URL required\r\n // eslint-disable-next-line @typescript-eslint/naming-convention,no-underscore-dangle,id-blacklist,id-match\r\n e1wfs_wfcGetWorkflowButtonURL = this.resourceApiService.getURL(\"e1wfs_wfcGetWorkflowButtonURL\");\r\n // eslint-disable-next-line @typescript-eslint/naming-convention,no-underscore-dangle,id-blacklist,id-match\r\n e1wfs_wfc_getWorkflowInitialStatusURL = this.resourceApiService.getURL(\"e1wfs_wfc_getWorkflowInitialStatusURL\");\r\n // eslint-disable-next-line @typescript-eslint/naming-convention, no-underscore-dangle, id-blacklist, id-match\r\n e1wfs_wfc_getDocumentStatusURL = this.resourceApiService.getURL(\"e1wfs_wfc_getDocumentStatusURL\");\r\n\r\n\r\n private loadWorkflowButton() {\r\n // actionBtnList: Array<ZField>;\r\n this.topRightActionButton = [];\r\n\r\n // Get WFS_DocumentId if any.\r\n let documentId = null;\r\n if (this.group.zModel) {\r\n documentId = this.group.zModel['WFS_DocumentId'];\r\n }\r\n\r\n // Set the documentId to the service\r\n this.workflowService.appendWFS_DocumentsInfo(this.data.WorkflowCode, documentId);\r\n\r\n try {\r\n // Set param for field\r\n const field$ = this.workflowService.getWorkflowButtonsField(\r\n this.data.WorkflowCode,\r\n this.e1wfs_wfcGetWorkflowButtonURL,\r\n String(false)\r\n );\r\n\r\n field$.subscribe(data => {\r\n data.forEach((button: any) => {\r\n const label = this.getButtonLabel(button);\r\n const attributes = JSON.parse(button.Attributes);\r\n const buttonLabel = attributes.Label || label;\r\n const _isVisible = this.isBtnVisible(button.Visible);\r\n\r\n if (_isVisible) {\r\n this.topRightActionButton.push({\r\n text: buttonLabel,\r\n fieldAttribute: button,\r\n iconName: attributes.Icon,\r\n handler: (y) => {\r\n this.workflowButtonClick(button);\r\n }\r\n });\r\n }\r\n //ZComponentHelper.collectWorkflowButton(this.group, this.data.WorkflowCode, buttonLabel, button, attributes, mappedInfo);\r\n });\r\n });\r\n\r\n if (!this.data.DisableSyncWorkflowStatus) {\r\n // Set default status\r\n // eslint-disable-next-line @typescript-eslint/dot-notation\r\n if (!this.group.zModel[\"WFS_StatusName\"]) {\r\n const params = {\r\n \"WorkflowMasterCode\": this.data.WorkflowCode\r\n };\r\n\r\n return this.webApiService.httpPost$(this.e1wfs_wfc_getWorkflowInitialStatusURL, params).pipe(\r\n map(res => {\r\n if (res.Data) {\r\n ZComponentHelper.presetModelValue(\"WFS_StatusId\", res.Data[\"Id\"], this.group);\r\n ZComponentHelper.presetModelValue(\"WFS_StatusName\", res.Data[\"Name\"], this.group);\r\n ZComponentHelper.presetModelValue(\"WFS_StatusCode\", res.Data[\"Code\"], this.group);\r\n\r\n this.workflowService.setCurrentDocumentStatus(res.Data);\r\n }\r\n })\r\n ).subscribe();\r\n } else {\r\n // When loading also to get current Status Information if any.\r\n const docInfoParam = {\r\n \"WorkflowMasterCode\": this.data.WorkflowCode,\r\n \"DocumentId\": documentId,\r\n };\r\n\r\n this.webApiService.httpPost$(this.e1wfs_wfc_getDocumentStatusURL, docInfoParam).pipe(\r\n map(res => {\r\n this.workflowService.setCurrentDocumentStatus(res);\r\n if (res.Data) {\r\n this.workflowService.setCurrentDocumentStatus(res.Data);\r\n }\r\n })\r\n ).subscribe();\r\n }\r\n }\r\n\r\n } catch (error) {\r\n console.error(\"error: \", error);\r\n }\r\n }\r\n\r\n workflowButtonClick(button: any) {\r\n // Type 1 == functional;\r\n // Type 2 == GOTO;\r\n const attributes = JSON.parse(button.Attributes);\r\n switch (button.TypeCode.toUpperCase()) {\r\n case \"FUNCTION\":\r\n console.log(\"Functional Button: \", button.Name);\r\n this.workflowService.functionalButton_OnClick(attributes, this.group);\r\n break;\r\n case \"GOTO\":\r\n console.log(\"GOTO Button: \", button.Name);\r\n this.workflowService.gotoButton_Onclick(button, this.data, attributes, this.group, false).subscribe(res => {\r\n this.loadWorkflowButton();\r\n if (res) {\r\n this.workflowService.triggerSendEmail(this.group).subscribe();\r\n }\r\n });\r\n break;\r\n default:\r\n console.log(\"Invalid Button Type. \", button.Name);\r\n break;\r\n }\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport { ZGroup, ZField, ZComponentHelper } from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-uivalidationmessage',\r\n templateUrl: './uivalidationmessage.component.html',\r\n styleUrls: ['./uivalidationmessage.component.scss'],\r\n})\r\nexport class UivalidationmessageComponent implements OnInit {\r\n @Input() group: ZGroup;\r\n @Input() data: ZField;\r\n @Input() form: FormGroup;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {}\r\n\r\n getValidationError(form: FormGroup, data: ZField) {\r\n return ZComponentHelper.getValidationError(form, data);\r\n } \r\n\r\n isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n\r\n getIconClass() {\r\n if (!this.isMobileScreen()) {\r\n return \"k-icon k-i-warning validation_icon\"\r\n }\r\n else {\r\n return \"k-icon k-i-warning\"\r\n }\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport { \r\n ZField, ZGroup, ZComponentProperties,\r\n ZComponent, ZComponentHelper \r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-zbullet',\r\n templateUrl: './zbullet.component.html',\r\n styleUrls: ['./zbullet.component.scss'],\r\n})\r\nexport class ZBulletComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n componentProperties = new ZComponentProperties();\r\n dataSource: Array<any>;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.data.ListType = this.data.ListType ? this.data.ListType : \"ul\";\r\n this.setupDataSource();\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n }\r\n \r\n private setupDataSource() {\r\n if (!this.data.DataSource) {\r\n console.error(\"No data source found for zhip\");\r\n return;\r\n }\r\n\r\n if (this.data.DataSource.indexOf(\"group.\") !== -1) {\r\n this.dataSource = ZComponentHelper.getGroupValue(\r\n this.data.DataSource,\r\n this.group\r\n );\r\n }\r\n else {\r\n this.dataSource = this.data.DataSource as any;\r\n }\r\n }\r\n\r\n getReadOnlyValue() {\r\n const readOnlyValue = ZComponentHelper.getGroupEvalValue.call(this, this.data.ReadOnly);\r\n if (typeof readOnlyValue === 'function') {\r\n return readOnlyValue();\r\n }\r\n return readOnlyValue;\r\n }\r\n\r\n isVisible() {\r\n if (this.componentProperties.isVisible === null) {\r\n return ZComponentHelper.isVisible.call(this, this.data);\r\n } else {\r\n return this.componentProperties.isVisible;\r\n }\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setData = (data: any) => {\r\n this.dataSource = data;\r\n }\r\n\r\n getIon_InvalidClass(form: FormGroup, data: ZField) {\r\n return ZComponentHelper.getIon_InvalidClass(form, data);\r\n }\r\n\r\n getClass(form: FormGroup, data: ZField) {\r\n return `${ZComponentHelper.getIon_InvalidClass(form, data)} ${data.DivClass}`;\r\n }\r\n}","/********** Angular **********/\r\nimport { Component, OnInit, Input } from '@angular/core';\r\nimport { FormGroup, Validators } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport { \r\n FieldService, ZComponent, ZComponentHelper, \r\n ZComponentOutputEvent, ZComponentProperties, ZField, ZGroup, FontAweSomeService\r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: \"app-zbuttons\",\r\n templateUrl: \"./zbuttons.component.html\",\r\n styleUrls: [\"./zbuttons.component.scss\"]\r\n})\r\nexport class ZbuttonsComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n items: Array<any> = [];\r\n FirstZbtn = false;\r\n componentProperties = new ZComponentProperties();\r\n expand = \"\";\r\n\r\n constructor(\r\n private fieldService: FieldService\r\n ) { }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n const field$ = this.fieldService.getFormFieldCode(\r\n this.data.Value,\r\n \"FormField\", null, null\r\n );\r\n\r\n this.group.zButtonsCount++;\r\n if (this.group.zButtonsCount === 1) {\r\n this.FirstZbtn = true;\r\n }\r\n\r\n this.expand = this.data.Expand || \"\";\r\n\r\n try {\r\n field$.subscribe(data => {\r\n // this.items = data;\r\n data.forEach((button: any) => {\r\n if (this.data.SubType) {\r\n button.Name = this.data.SubType + '_' + button.Name; \r\n } \r\n\r\n const label = this.getButtonLabel(button);\r\n\r\n let buttonDisabled = null;\r\n\r\n if (button.Disabled != \"\" && button.Disabled) {\r\n buttonDisabled = button.Disabled === 'true' ? true : ZComponentHelper.getGroupEvalValue.call(this, button.Disabled);\r\n }\r\n\r\n const fill = button['Fill'] ? button['Fill'] : 'outline';\r\n const color = button.Color ? button.Color : 'dark';\r\n\r\n this.items.push({\r\n name: button.Name,\r\n text: label,\r\n icon: ZComponentHelper.getIcon(button.Icon),\r\n visible: button.Visible,\r\n disabled: buttonDisabled,\r\n clickEvent: button.ClickEvent,\r\n iconName: button.Icon,\r\n dismissType: button.DismissType,\r\n disableTriggerTimer: button.DisableTriggerTimer,\r\n fill: fill,\r\n color: color,\r\n SubType: this.data.SubType,\r\n click: (y) => {\r\n this.buttonClick(button);\r\n }\r\n }); \r\n });\r\n });\r\n } catch (error) {\r\n console.error(\"error: \", error);\r\n }\r\n }\r\n\r\n public setLabelText(newText: string, name: string) {\r\n const btn = this.items.find(x => x.name === name);\r\n if (btn) {\r\n btn.text = newText;\r\n }\r\n }\r\n\r\n private buttonClick(button: any) {\r\n // debugger;\r\n this.group.isTriggered = true;\r\n const me = this.group;\r\n if (!this.data['DisableTriggerTimer']) {\r\n setTimeout(function () {\r\n me['isTriggered'] = false;\r\n }, 500);\r\n }\r\n this.group.subject.next({\r\n type: \"buttonClick\",\r\n target: button.ClickEvent,\r\n data: null\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n BtnClick(item: any) {\r\n // debugger;\r\n this.group.isTriggered = true;\r\n const me = this.group;\r\n if (!item['disableTriggerTimer']) {\r\n setTimeout(function () {\r\n me['isTriggered'] = false;\r\n }, 500);\r\n }\r\n this.group['DismissType'] = item.dismissType;\r\n this.group.subject.next({\r\n type: \"buttonClick\",\r\n target: item.clickEvent,\r\n data: item\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n private getButtonLabel(button: any) {\r\n if (button.Label) {\r\n let labelExpr = button.Label.match(/^{{.*}}$/gi);\r\n if (labelExpr) {\r\n labelExpr = labelExpr[0].slice(2, -2);\r\n const label = ZComponentHelper.getGroupValue(labelExpr, this.group);\r\n return label;\r\n } else {\r\n return button.Label;\r\n }\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n\r\n private getButtonRole(button: any, label: string) {\r\n // console.log(\"getButtonRole: \", label, button.ClickEvent);\r\n const lowerCaseLabel = label.toLowerCase();\r\n if (\r\n lowerCaseLabel.indexOf(\"cancel\") !== -1 ||\r\n lowerCaseLabel.indexOf(\"close\") !== -1\r\n ) {\r\n return \"cancel\";\r\n }\r\n return null;\r\n }\r\n\r\n isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n\r\n isBtnVisible(fieldExpr) {\r\n if (fieldExpr !== false && !fieldExpr) {\r\n return true;\r\n }\r\n const v = ZComponentHelper.getGroupEvalValue.call(this, fieldExpr);\r\n return v;\r\n }\r\n\r\n getFontAwesome(iconName: string) {\r\n return ZComponentHelper.getFontAwesome(iconName);\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n const fc = this.group.form.controls[this.data.Value];\r\n status ? fc.enable() : fc.disable();\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { FormGroup } from \"@angular/forms\";\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport { \r\n ZComponent, ZComponentHelper,\r\n ZField, ZGroup, ZComponentProperties, AuthService, FontAweSomeService\r\n} from \"mmhglobal-zcore\";\r\n\r\n\r\n@Component({\r\n selector: \"app-zcard\",\r\n templateUrl: \"./zcard.component.html\",\r\n styleUrls: [\"./zcard.component.scss\"],\r\n})\r\nexport class ZcardComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n // classStyleObservables: Array<BehaviorSubject<string>>;\r\n\r\n componentProperties = new ZComponentProperties();\r\n\r\n constructor(\r\n private authService: AuthService\r\n ) { }\r\n\r\n options = {\r\n Title: '',\r\n Icon:'Folder'\r\n }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n ZComponentHelper.setFieldsDivClass(this.group._projectName, this.group.fieldName, this.data, this.authService);\r\n\r\n this.getFieldDeclarationForSetup(this.data, this.options);\r\n\r\n }\r\n\r\n ComponentIsVisible(field: ZField): any {\r\n return ZComponentHelper.ComponentIsVisible(field, this.group);\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n getReadOnlyValue() {\r\n const readOnlyValue = ZComponentHelper.getGroupEvalValue.call(this, this.data.ReadOnly);\r\n if (typeof readOnlyValue === 'function') {\r\n return readOnlyValue();\r\n }\r\n return readOnlyValue;\r\n }\r\n\r\n private getFieldDeclarationForSetup(field: ZField, options: any) {\r\n options.Title = field.Title.includes(\"group.\") ? ZComponentHelper.getGroupEvalValue.call(this, field.Title) : field.Title;\r\n //options.Icon = ZComponentHelper.getIcon(field.Icon.toString())||options.Icon;\r\n }\r\n \r\n public setData = (gData: any) => {\r\n this.getFieldDeclarationForSetup(this.data, this.options);\r\n }\r\n\r\n // getFontAwesome(iconName: string) {\r\n // return ZComponentHelper.getFontAwesome(iconName);\r\n // }\r\n\r\n public setEnable = (status: boolean) => {\r\n const fc = this.group.form.controls[this.data.Value];\r\n status ? fc.enable() : fc.disable();\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { FormGroup, Validators } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n// import { groupBy, GroupResult } from '@progress/kendo-data-query';\r\n\r\n/********** Component & Service **********/\r\nimport { \r\n ZComponent, ZComponentHelper,\r\n ZField, ZGroup, ZComponentProperties \r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-zchart',\r\n templateUrl: './zchart.component.html',\r\n styleUrls: ['./zchart.component.scss'],\r\n})\r\nexport class ZchartComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n isLoading = true;\r\n componentProperties = new ZComponentProperties();\r\n private series: any[] = [];\r\n // = [{\r\n // type: '',\r\n // style: 'smooth',\r\n // name: 'India',\r\n // data: [3.907, 7.943, 7.848, 9.284, 9.263, 9.801, 3.890, 8.238, 9.552, 6.855]\r\n // }, {\r\n // type: '',\r\n // style: 'smooth',\r\n // name: 'Russian Federation',\r\n // data: [4.743, 7.295, 7.175, 6.376, 8.153, 8.535, 5.247, -7.832, 4.3, 4.3]\r\n // }, {\r\n // type: 'bar',\r\n // style: 'smooth',\r\n // name: 'Germany',\r\n // data: [0.010, -0.375, 1.161, 0.684, 3.7, 3.269, 1.083, -5.127, 3.690, 2.995]\r\n // }, {\r\n // type: 'area',\r\n // style: 'smooth',\r\n // name: 'World',\r\n // data: [1.988, 2.733, 3.994, 3.464, 4.001, 3.939, 1.333, -2.245, 4.339, 2.727]\r\n // }];\r\n\r\n private categories = [];\r\n // [2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011];\r\n\r\n options = {\r\n title: 'Chart Title Here',\r\n renderAs: 'canvas', // svg\r\n pannable: false,\r\n zoomable: false,\r\n categoryAxis: {\r\n categories: this.categories,\r\n max: 10,\r\n maxDivisions: null,\r\n labels: { rotation: 'auto' }\r\n },\r\n labels: {\r\n visible: false,\r\n background: \"transparent\"\r\n },\r\n series: this.series,\r\n dataType: 'bar',\r\n dataStyle: 'smooth',\r\n legendPosition: 'bottom',\r\n legendOrientation: 'horizontal',\r\n tooltipFormat: '{0}%',\r\n aggregateType: 'sum',\r\n dataField: null,\r\n categoryField: null,\r\n color: '#05A2FE',\r\n };\r\n\r\n // fieldElement01 = [{\r\n // Name: 'chart01',\r\n // Type: 'zchart',\r\n // Options: 'group.chart01Options',\r\n // DivClass: \"col-md-12 col-md-6\",\r\n // Visible: true\r\n // }];\r\n\r\n // fieldElement02 = [{\r\n // Name: 'chart01',\r\n // Type: 'zchart',\r\n // Title: 'Chart01 Title',\r\n // RenderAs: 'svg',\r\n // Pannable: true,\r\n // Zoomable: true,\r\n // Categories: 'group.chart01Categories',\r\n // Max: 10,\r\n // MaxDivisions: null,\r\n // Rotation: 'auto',\r\n // Series: 'group.chart01Series',\r\n // DataType: 'bar',\r\n // DataStyle: 'smooth',\r\n // LegendPosition: 'bottom',\r\n // LegendOrientation: 'horizonal',\r\n // TooltipFormat: '{0}',\r\n // AggregateType: 'sum',\r\n // DataField: null,\r\n // CategoryField: null,\r\n // DivClass: \"col-md-12 col-md-6\",\r\n // Visible: true\r\n // }];\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n if (this.data.Options) {\r\n const optionType = typeof (this.data.Options);\r\n if (optionType === 'object') {\r\n Object.assign(this.options, this.data.Options);\r\n } else if (optionType === 'string') {\r\n const optionValue = ZComponentHelper.getGroupEvalValue.call(this, this.data.Options);\r\n if (typeof(optionValue) === 'object') {\r\n Object.assign(this.options, optionValue);\r\n }\r\n }\r\n }\r\n\r\n if (this.data.Options && this.data.Options.categoryAxis && this.data.Options.categoryAxis.categories && typeof (this.data.Options.categoryAxis.categories) === 'string') {\r\n this.options.categoryAxis.categories =\r\n ZComponentHelper.getGroupEvalValue.call(this, this.data.Options.categoryAxis.categories);\r\n }\r\n\r\n if (this.data.Options && this.data.Options.series && typeof (this.data.Options.series) === 'string') {\r\n this.options.series =\r\n ZComponentHelper.getGroupEvalValue.call(this, this.data.Options.series);\r\n }\r\n\r\n\r\n this.getFieldDeclarationForSetup(this.data, this.options);\r\n\r\n this.isLoading = false;\r\n }\r\n\r\n private getFieldDeclarationForSetup(field: ZField, options: any) {\r\n options.title = field.Title || options.title;\r\n options.renderAs = field.RenderAs || options.renderAs;\r\n options.pannable = field.Pannable || options.pannable;\r\n options.zoomable = field.Zoomable || options.zoomable;\r\n options.categoryAxis.categories = ZComponentHelper.getGroupEvalValue.call(this, field.Categories) || [];\r\n options.categoryAxis.max = field.Max || options.categoryAxis.max;\r\n options.categoryAxis.maxDivisions = field.MaxDivisions || options.categoryAxis.maxDivisions;\r\n options.categoryAxis.labels.rotation = field.Rotation || options.categoryAxis.labels.rotation;\r\n options.series = ZComponentHelper.getGroupEvalValue.call(this, field.Series) || [];\r\n options.dataType = field.DataType || options.dataType;\r\n options.dataStyle = field.DataStyle || options.dataStyle;\r\n options.legendPosition = field.LegendPosition || options.legendPosition;\r\n options.legendOrientation = field.LegendOrientation || options.legendOrientation;\r\n options.tooltipFormat = field.TooltipFormat || options.tooltipFormat;\r\n options.aggregateType = field.AggregateType || options.aggregateType;\r\n options.dataField = field.DataField || options.dataField;\r\n options.categoryField = field.CategoryField || options.categoryField;\r\n }\r\n\r\n public onRender(e): void {\r\n // console.log('render');\r\n }\r\n\r\n public onAxisLabelClick(e): void {\r\n // console.log('axisLabelClick', e);\r\n }\r\n\r\n public onLegendItemClick(e): void {\r\n // console.log('legendItemClick', e);\r\n }\r\n\r\n public onLegendItemHover(e): void {\r\n // console.log('legendItemHover', e);\r\n }\r\n\r\n public onPlotAreaClick(e): void {\r\n // console.log('plotAreaClick', e);\r\n }\r\n\r\n public onPlotAreaHover(e): void {\r\n // console.log('plotAreaHover', e);\r\n }\r\n\r\n public onSeriesClick(e): void {\r\n // console.log('seriesClick', e);\r\n const f = ZComponentHelper.getGroupEvalValue.call(this, this.data.OnItemClick);\r\n if (typeof f === 'function') {\r\n const callFunc = f.bind(this.group.ctrlScope);\r\n return callFunc(e);\r\n }\r\n return;\r\n }\r\n\r\n public onSeriesHover(e): void {\r\n // console.log('seriesHover', e);\r\n }\r\n\r\n public setData = (gData: any) => {\r\n this.getFieldDeclarationForSetup(this.data, this.options);\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n // const fc = this.group.form.controls[this.data.Value];\r\n // status ? fc.enable() : fc.disable();\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport { \r\n ZGroup, ZField, ZComponentProperties,\r\n ZComponent, ZComponentHelper, ZComponentOutputEvent,\r\n} from \"mmhglobal-zcore\";\r\n\r\n\r\n@Component({\r\n selector: \"app-zcheckbox\",\r\n templateUrl: \"./zcheckbox.component.html\",\r\n styleUrls: [\"./zcheckbox.component.scss\"],\r\n})\r\nexport class ZcheckboxComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n componentProperties = new ZComponentProperties();\r\n public showTooltipsInfoIcon: boolean = false;\r\n public showTooltipsInfoBySide: boolean = false;\r\n public tooltipsInfo: any = null;\r\n public tooltipsDisplayText: string = null;\r\n public tooltipsDisplayIcon: any;\r\n public useKendoSwitch: boolean = false;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n this.tooltipsInfo = this.data['TooltipsInfo'];\r\n if (this.tooltipsInfo) {\r\n if ((this.tooltipsInfo['Icon'] != null || this.tooltipsInfo['Icon'] != undefined) && !this.isMobileScreen()) {\r\n this.showTooltipsInfoIcon = true;\r\n this.setTooltipsInfoIcon();\r\n }\r\n if (this.tooltipsInfo['SideBySide']) {\r\n this.showTooltipsInfoBySide = true;\r\n }\r\n \r\n this.setTooltipsDisplayText();\r\n }\r\n\r\n this.useKendoSwitch = this.data.UseKendoSwitch ? this.data.UseKendoSwitch : false;\r\n }\r\n\r\n isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n\r\n onSwitchChange(event: any) {\r\n ZComponentHelper.setModelValue(this.data.Value, event, this.group);\r\n this.group.subject.next({\r\n type: \"onChange\",\r\n target: this.data.OnChange,\r\n data: { value: event, field: this.data },\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n onChange(event: any) {\r\n if (this.data.OnChange) {\r\n const callFunc = ZComponentHelper.getGroupEvalValue.call(\r\n this,\r\n this.data.OnChange\r\n );\r\n if (typeof callFunc === \"function\") {\r\n const newFunc = callFunc.bind(this.group.ctrlScope);\r\n newFunc(event);\r\n }\r\n }\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n const fc = this.group.form.controls[this.data.Value];\r\n status ? fc.enable() : fc.disable();\r\n this.componentProperties.isReadOnly = !status;\r\n };\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n };\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(\r\n status,\r\n this.group,\r\n this.data.Value,\r\n this.componentProperties,\r\n Validators.required\r\n );\r\n };\r\n\r\n public getLabelStyle() {\r\n return {\r\n order:\r\n this.data.LabelOrder &&\r\n this.data.LabelOrder === \"end\" &&\r\n this.data.LabelPosition !== \"stacked\"\r\n ? 2\r\n : 0,\r\n \"white-space\": \"normal\",\r\n };\r\n }\r\n\r\n public getCheckboxClass() {\r\n const classList = [];\r\n if (this.data.LabelDivClass) {\r\n this.data.LabelDivClass.split(\" \").forEach((x) => {\r\n if (x.indexOf(\"col\") !== -1) {\r\n const divClassSegment = x.split(\"-\");\r\n divClassSegment[divClassSegment.length - 1] = (\r\n 12 - parseInt(divClassSegment[divClassSegment.length - 1])\r\n ).toString();\r\n classList.push(divClassSegment.join(\"-\"));\r\n } else {\r\n classList.push(x);\r\n }\r\n });\r\n }\r\n\r\n return classList.join(\" \");\r\n }\r\n\r\n getClass(form: FormGroup, data: ZField) {\r\n return `ionItem ${this.data.Class}`;\r\n }\r\n\r\n /********** TooltipsInfo **********/\r\n public setTooltipsInfoColor() {\r\n if (this.tooltipsInfo) {\r\n if (this.tooltipsInfo['TextColor']) {\r\n return this.tooltipsInfo['TextColor'];\r\n }\r\n }\r\n\r\n return \"#acacac\"; // default grey\r\n }\r\n\r\n public setTooltipsInfoIcon(displayIcon?: string) {\r\n if (this.showTooltipsInfoIcon) {\r\n if (this.tooltipsInfo.Icon != '') {\r\n if (displayIcon) {\r\n this.tooltipsDisplayIcon = displayIcon;\r\n }\r\n else {\r\n this.tooltipsDisplayIcon = this.tooltipsInfo.Icon;\r\n }\r\n }\r\n else {\r\n this.tooltipsDisplayIcon = 'question-circle'\r\n }\r\n }\r\n }\r\n\r\n public setTooltipsDisplayText(displayText?: string) {\r\n if (this.tooltipsInfo) {\r\n if (displayText) {\r\n this.tooltipsDisplayText = displayText;\r\n }\r\n else {\r\n this.tooltipsDisplayText = this.tooltipsInfo.DisplayText;\r\n }\r\n }\r\n else {\r\n this.tooltipsDisplayText = '<Display text error>';\r\n }\r\n }\r\n\r\n public setTooltipsInfoSideBySide() { \r\n if (this.tooltipsInfo ) {\r\n if (this.tooltipsInfo ['SideBySide'] && !this.showTooltipsInfoIcon) {\r\n return 'tooltipsinfo-right';\r\n }\r\n else {\r\n return '';\r\n }\r\n }\r\n return 'notooltipsinfo-adjustment';\r\n }\r\n\r\n\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input, ViewChild } from \"@angular/core\";\r\nimport { FormGroup, Validators } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { TooltipDirective } from '@progress/kendo-angular-tooltip';\r\n\r\n/********** Component & Service **********/\r\nimport { \r\n ZComponent, ZComponentHelper, ZComponentOutputEvent,\r\n ZGroup, ZField, ZComponentProperties, AuthService \r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-zchip',\r\n templateUrl: './zchip.component.html',\r\n styleUrls: ['./zchip.component.scss'],\r\n})\r\nexport class ZChipComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n private icon = \"k-icon k-i-cancel\";\r\n private selectedIcon = \"k-icon k-i-check-circle\";\r\n public componentProperties = new ZComponentProperties();\r\n public dataSource;\r\n @ViewChild(TooltipDirective, { static: false }) public tooltipDir: TooltipDirective;\r\n\r\n constructor(\r\n private authService: AuthService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.setupDataSource();\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n }\r\n\r\n private setupDataSource() {\r\n if (!this.data.DataSource) {\r\n console.error(\"No data source found for zhip\");\r\n return;\r\n }\r\n\r\n if (this.data.DataSource.indexOf(\"group.\") !== -1) {\r\n this.dataSource = ZComponentHelper.getGroupValue(\r\n this.data.DataSource,\r\n this.group\r\n );\r\n }\r\n else {\r\n this.dataSource = this.data.DataSource;\r\n }\r\n\r\n if (Array.isArray(this.dataSource)) {\r\n this.dataSource.forEach(x => {\r\n x.Label = x.Label ? x.Label : x.Value,\r\n x.Icon = !!x.Selected ? null : (x.Icon ? x.Icon : this.icon),\r\n x.SelectedIcon = x.SelectedIcon ? x.SelectedIcon : this.selectedIcon,\r\n x._Icon = x.Icon ? x.Icon : this.icon;\r\n x._Selected = x.Selected;\r\n })\r\n }\r\n }\r\n\r\n public getClass() {\r\n return this.data.DivClass;\r\n }\r\n\r\n public getChipClass(chip) {\r\n return chip.Class ? chip.Class : \"\";\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n public chipListChangeSelection(selectedChipIndexes: any): void {\r\n let ind = 0;\r\n for (let chip of this.dataSource) {\r\n if (selectedChipIndexes.includes(ind)) {\r\n chip.Icon = null\r\n }\r\n else {\r\n chip.Icon = this.dataSource.find(x => x.Value === chip.Value)._Icon;\r\n }\r\n ind++;\r\n }\r\n }\r\n\r\n public chipChangeSelection(chip: any) {\r\n this.dataSource.find(x => x.Value === chip.Value)._Selected = !chip._Selected;\r\n\r\n if (this.data.OnChange) {\r\n this.group.subject.next({\r\n type: \"onChange\",\r\n target: this.data.OnChange,\r\n data: { value: this.dataSource, selectedItem: chip, field: this.data }\r\n } as ZComponentOutputEvent);\r\n }\r\n }\r\n\r\n public getDataValue(): any {\r\n return this.dataSource as any;\r\n }\r\n\r\n public mouseover(event: any, chip: any) {\r\n if (this.data.OnHover) {\r\n this.group.subject.next({\r\n type: \"onHover\",\r\n target: this.data.OnHover,\r\n data: { value: this.dataSource, selectedItem: chip, field: this.data }\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n if (!!this.data['IsShowToolTip']) {\r\n this.showTooltip(event);\r\n }\r\n }\r\n\r\n public showTooltip(e: MouseEvent): void {\r\n const element = e.target as HTMLElement;\r\n this.tooltipDir.toggle(element);\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input, ViewChild, OnDestroy } from \"@angular/core\";\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { of, Subscription } from \"rxjs\";\r\nimport { delay } from \"rxjs/operators\";\r\nimport { AceEditorComponent } from \"ng2-ace-editor\";\r\nimport \"brace\";\r\nimport \"brace/theme/eclipse\";\r\nimport \"brace/mode/json\";\r\nimport \"brace/mode/javascript\";\r\nimport \"brace/mode/html\";\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n ZComponent, ZComponentHelper, ZComponentOutputEvent,\r\n ZField, ZGroup, ZComponentProperties\r\n} from \"mmhglobal-zcore\";\r\n\r\n\r\ndeclare let ace: any;\r\n\r\n// import { EditorComponent } from 'ngx-monaco-editor';\r\n// import { EditorOptions } from \"ngx-monaco-editor\";\r\n\r\n@Component({\r\n selector: \"app-zcodeeditor\",\r\n templateUrl: \"./zcodeeditor.component.html\",\r\n styleUrls: [\"./zcodeeditor.component.scss\"]\r\n})\r\nexport class ZcodeeditorComponent implements ZComponent, OnInit, OnDestroy {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n code: string | string[] = \"\";\r\n theme = \"eclipse\";\r\n mode = \"javascript\";\r\n subscription: Subscription;\r\n componentProperties = new ZComponentProperties();\r\n \r\n private widthReduce: number;\r\n private heightReduce: number;\r\n\r\n @ViewChild(\"editor\") editor: AceEditorComponent;\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n this.widthReduce = this.data.WidthReduce || 60;\r\n this.heightReduce = this.data.HeightReduce || 560;\r\n\r\n // const codeValue = this.getValue();\r\n // if (codeValue) {\r\n // this.code = codeValue;\r\n // }\r\n if (this.data.Type === \"textareajson\") {\r\n this.mode = \"json\";\r\n } else if (this.data.Type === \"textareahtml\") {\r\n this.mode = \"html\";\r\n }\r\n console.log(\"zcodeeditor OnInit\");\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n // https://github.com/fxmontigny/ng2-ace-editor/blob/master/sample/src/app/app.component.ts\r\n // ngAfterViewInit() {\r\n // const Range = ace.require('ace/range')['Range'];\r\n // this.editor\r\n // .getEditor()\r\n // .session.addMarker(new Range(0, 0, 2, 1), 'myMarker', 'fullLine');\r\n\r\n // this.editor.getEditor().session.setOption('useWorker', true);\r\n // }\r\n\r\n getValue() {\r\n let v;\r\n if (this.data.Value.indexOf('.') !== -1) {\r\n v = this.data.Value;\r\n } else {\r\n v = \"group.zModel.\" + this.data.Value;\r\n }\r\n const evalValue = ZComponentHelper.getEvalValue.call(this, v);\r\n if (typeof evalValue === 'function') {\r\n const nextValue = evalValue();\r\n if (nextValue) {\r\n try {\r\n const evalNextValue = ZComponentHelper.getEvalValue.call(this, nextValue, true);\r\n if (typeof evalNextValue === 'boolean') {\r\n return evalNextValue.toString();\r\n }\r\n if (evalNextValue === undefined) {\r\n return 'undefined';\r\n }\r\n if (evalNextValue === null) {\r\n return 'null';\r\n }\r\n return evalNextValue;\r\n } catch {\r\n return;\r\n }\r\n } else {\r\n return;\r\n }\r\n } else {\r\n return evalValue;\r\n }\r\n // if (this.data.Type === \"textareajson\") {\r\n // if (typeof evalValue === \"string\") {\r\n // const jsonValue = JSON.parse(evalValue);\r\n // return JSON.stringify(jsonValue, null, 2);\r\n // }\r\n // if (typeof evalValue === \"object\" || Array.isArray(evalValue)) {\r\n // return JSON.stringify(evalValue, null, 2);\r\n // }\r\n // }\r\n // if (typeof evalValue === 'string') {\r\n // return evalValue;\r\n // }\r\n // // debugger;\r\n // console.warn(\r\n // \"zcodeeditor - Invalid field.Value (\" + this.data.Value + \") setting \",\r\n // evalValue\r\n // );\r\n // return \"\";\r\n }\r\n\r\n getEditorStyle() {\r\n // debugger;\r\n // return { \"height.px\": 500, \"width.px\": window.innerWidth - 60 }; // \"width.px\": this.innerWidth - 25\r\n return {\r\n \"height.px\": this.getEditorHeight(),\r\n \"width.px\": window.innerWidth - this.widthReduce\r\n };\r\n }\r\n\r\n private getEditorHeight() {\r\n const h = window.innerHeight - this.heightReduce;\r\n return (h < 180) ? 180 : h;\r\n }\r\n\r\n onTextChange(newValue: any) {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n // console.log('onTextChange: ', newValue);\r\n this.subscription = of([])\r\n .pipe(delay(500))\r\n .subscribe(() => {\r\n ZComponentHelper.setModelValue(this.data.Value, newValue, this.group, true);\r\n this.group.subject.next({\r\n type: \"zcodeeditor-TextChanged\",\r\n target: this.data.OnChange,\r\n data: newValue\r\n } as ZComponentOutputEvent);\r\n });\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input, ViewChild } from '@angular/core';\r\nimport { FormGroup, Validators } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { DateRangeService } from '@progress/kendo-angular-dateinputs';\r\n\r\n/********** Component & Service **********/\r\nimport { \r\n ZField, ZGroup, ZComponentProperties,\r\n ZComponent, ZComponentHelper \r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-zdaterange',\r\n templateUrl: './zdaterange.component.html',\r\n styleUrls: ['./zdaterange.component.scss'],\r\n})\r\nexport class ZdaterangeComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n @ViewChild('zdaterange') public zdaterange: DateRangeService;\r\n // @ViewChild('endDateInput', { static: true }) public endInput: ElementRef;\r\n range: { start: Date, end: Date} = { start: null, end: null};\r\n componentProperties = new ZComponentProperties();\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n const rangeDateArray = this.data.Value.split(',');\r\n const fromDateString = rangeDateArray[0].trim();\r\n const toDateString = rangeDateArray[1].trim();\r\n \r\n const fromDate = ZComponentHelper.getGroupEvalValue.call(this, fromDateString);\r\n const toDate = ZComponentHelper.getGroupEvalValue.call(this, toDateString);\r\n // this.range = {\r\n // start: fromDate,\r\n // end: toDate\r\n // }\r\n\r\n\r\n const options = ZComponentHelper.getGroupEvalValue.call(this, this.data.Options);\r\n if (options) {\r\n if (options.min && options.max) {\r\n this.setNewRange(new Date(options.min), new Date(options.max));\r\n }\r\n }\r\n\r\n }\r\n\r\n setNewRange(min: Date, max: Date) {\r\n this.zdaterange.setRange({\r\n start: min,\r\n end: max\r\n });\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { PreventableEvent } from '@progress/kendo-angular-dateinputs';\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n ZComponent, ZComponentHelper, ZComponentOutputEvent,\r\n ZField, ZGroup, ZComponentProperties\r\n} from \"mmhglobal-zcore\";\r\n\r\n\r\n// import * as $ from 'jquery';\r\ndeclare var $: any;\r\n\r\n@Component({\r\n selector: \"app-zdatetime\",\r\n templateUrl: \"./zdatetime.component.html\",\r\n styleUrls: [\"./zdatetime.component.scss\"],\r\n})\r\nexport class ZdatetimeComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n dateFormat = \"DD-MMM-YYYY\";\r\n // dateValue = null;\r\n\r\n componentProperties = new ZComponentProperties();\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n if (this.data.Type === \"ztime\") {\r\n this.dateFormat = \"HH:mm\";\r\n }\r\n if (this.data.Type === \"zuidatetime\") {\r\n this.dateFormat = \"DD-MMM-YYYY h:mm A\";\r\n }\r\n if (this.data.Type === \"zuitime\") {\r\n this.dateFormat = \"HH:mm:ss\";\r\n }\r\n\tif (this.data.Type === \"zshortdate\") {\r\n this.dateFormat = \"MMM-YYYY\";\r\n }\r\n // if (this.group.zModel[this.data.Value]) {\r\n // this.dateValue = new Date(this.group.zModel[this.data.Value]);\r\n // }\r\n }\r\n\r\n toKendoDateFormat() {\r\n return this.dateFormat\r\n .replace(\"DD\", \"dd\")\r\n .replace(\"YYYY\", \"yyyy\")\r\n .replace(\"h\", \"H\")\r\n .replace(\"A\", \"a\");\r\n }\r\n\r\n getReadOnlyValue() {\r\n const readOnlyValue = ZComponentHelper.getGroupEvalValue.call(\r\n this,\r\n this.data.ReadOnly,\r\n this.group\r\n );\r\n if (typeof readOnlyValue === \"function\") {\r\n return readOnlyValue();\r\n }\r\n return readOnlyValue;\r\n }\r\n\r\n isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n\r\n getDateValue() {\r\n const value = this.form.controls[this.data.Value].value;\r\n if (value) {\r\n return new Date(value);\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n public GetDate(date: Date) {\r\n // convert the date to ISOString\r\n const myDate = new Date(date).toISOString();\r\n // assign to the zModel\r\n ZComponentHelper.setModelValue(this.data.Value, myDate, this.group);\r\n }\r\n\r\n public onChange(value: Date): void {\r\n // console.log(\r\n // \"date change \",\r\n // value.toISOString(),\r\n // \" date value: \",\r\n // new Date(value.toISOString())\r\n // );\r\n // // this.group.zModel[this.data.Value] = value.toISOString();\r\n // const v = value.toISOString();\r\n // this.dateValue = new Date(value.toISOString());\r\n if (value === null) {\r\n ZComponentHelper.setModelValue(\r\n this.data.Value,\r\n value,\r\n this.group\r\n );\r\n } else {\r\n ZComponentHelper.setModelValue(\r\n this.data.Value,\r\n value.toISOString(),\r\n this.group\r\n );\r\n\r\n const fc = this.form.controls[this.data.Value];\r\n fc.setValue(value.toISOString());\r\n }\r\n this.group.subject.next({\r\n type: \"onChange\",\r\n target: this.data.OnChange,\r\n data: value,\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n const fc = this.group.form.controls[this.data.Value];\r\n status ? fc.enable() : fc.disable();\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n public SetDateRange = (MinDate: string,MaxDate: string): any =>\r\n {\r\n var thisComponent = this;\r\n\r\n if (!isNaN(Date.parse(MinDate)))\r\n {\r\n this.data.MinDate = new Date(MinDate);\r\n }\r\n if (!isNaN(Date.parse(MaxDate)))\r\n {\r\n this.data.MaxDate = new Date(MaxDate);\r\n }\r\n }\r\n\r\n public handlePreventableEvent(event: PreventableEvent, eventName: string, preventDefault: boolean): void {\r\n // keep \"this\" to use in binding.\r\n var thisComponent = this;\r\n\r\n // need a timeout for ui to display the calender popup\r\n setTimeout(function () {\r\n // only available when popup is shown, get the element by class\r\n // for date\r\n thisComponent.dateAppendEvent(thisComponent);\r\n\r\n // for time\r\n thisComponent.timeAppendEvent(thisComponent);\r\n }, 500);\r\n }\r\n\r\n private dateAppendEvent(thisComponent: any) {\r\n let dateCell = $(\"tbody.k-calendar-tbody\").find(\"td.k-calendar-td\");\r\n for (var i = 0; i < dateCell.length; i++) {\r\n const node = dateCell[i];\r\n\r\n if (node.title != \"\") {\r\n // when date clicked\r\n node.addEventListener(\"click\", function () {\r\n if (!isNaN(Date.parse(node.title))) {\r\n const nodeDate = new Date(node.title).toISOString();\r\n // assign to the zModel\r\n ZComponentHelper.setModelValue(thisComponent.data.Value, nodeDate, thisComponent.group);\r\n }\r\n\r\n // timeout append time click event\r\n setTimeout(function () {\r\n thisComponent.hoursOnClick(thisComponent);\r\n thisComponent.minutesOnClick(thisComponent);\r\n thisComponent.ampmOnClick(thisComponent);\r\n thisComponent.nowOnClick(thisComponent);\r\n }, 500);\r\n });\r\n }\r\n }\r\n\r\n // Today clicked\r\n const todayDate = $(\"span.k-today\")[0];\r\n todayDate.addEventListener(\"click\", function () {\r\n const dateNow = new Date().toJSON().slice(0, 10).replace(/-/g, '/');\r\n // set to Model\r\n thisComponent.setDateTimeToModel(thisComponent, dateNow);\r\n\r\n thisComponent.hoursOnClick(thisComponent);\r\n thisComponent.minutesOnClick(thisComponent);\r\n thisComponent.ampmOnClick(thisComponent);\r\n thisComponent.nowOnClick(thisComponent);\r\n });\r\n }\r\n\r\n private timeAppendEvent(thisComponent: any) {\r\n var timeTab = $(\"button.k-button.k-time-tab\")[0];\r\n timeTab.addEventListener(\"click\", function () {\r\n thisComponent.hoursOnClick(thisComponent);\r\n thisComponent.minutesOnClick(thisComponent);\r\n thisComponent.ampmOnClick(thisComponent);\r\n thisComponent.nowOnClick(thisComponent);\r\n });\r\n }\r\n\r\n private nowOnClick(thisComponent: any) {\r\n const nowTime = $(\"button.k-button.k-bare.k-time-now\")[0];\r\n if (nowTime) {\r\n nowTime.addEventListener(\"click\", function (e) {\r\n // get model current value\r\n let valueDateTime = thisComponent.currentDateTimeValue(thisComponent);\r\n const dateTimeNow = new Date();\r\n\r\n // convert current value to datetime\r\n valueDateTime.setHours(dateTimeNow.getHours());\r\n valueDateTime.setMinutes(dateTimeNow.getMinutes());\r\n valueDateTime.setSeconds(dateTimeNow.getSeconds());\r\n\r\n // set to Model\r\n thisComponent.setDateTimeToModel(thisComponent, valueDateTime);\r\n });\r\n }\r\n }\r\n\r\n private hoursOnClick(thisComponent: any) {\r\n const timeWrapper = $(\"div.k-time-list-wrapper\").find(\"ul\");\r\n if (timeWrapper.length > 0) {\r\n const hour = timeWrapper[0].children;\r\n\r\n for (var i = 0; i < hour.length; i++) {\r\n hour[i].addEventListener(\"click\", function (e) {\r\n // get clicked node value\r\n const nodeValue = e.currentTarget.textContent;\r\n\r\n // get model current value\r\n let valueDateTime = thisComponent.currentDateTimeValue(thisComponent);\r\n\r\n // set new hour\r\n valueDateTime.setHours(nodeValue);\r\n\r\n // set to Model\r\n thisComponent.setDateTimeToModel(thisComponent, valueDateTime);\r\n });\r\n }\r\n }\r\n }\r\n\r\n private minutesOnClick(thisComponent: any) {\r\n const timeWrapper = $(\"div.k-time-list-wrapper\").find(\"ul\");\r\n if (timeWrapper.length > 0) {\r\n const minutes = timeWrapper[1].children;\r\n\r\n for (var i = 0; i < minutes.length; i++) {\r\n minutes[i].addEventListener(\"click\", function (e) {\r\n // get clicked node value\r\n const nodeValue = e.currentTarget.textContent;\r\n\r\n // get model current value\r\n const valueDateTime = thisComponent.currentDateTimeValue(thisComponent);\r\n\r\n // set new minute\r\n valueDateTime.setMinutes(nodeValue);\r\n\r\n // set to Model\r\n thisComponent.setDateTimeToModel(thisComponent, valueDateTime);\r\n });\r\n }\r\n }\r\n }\r\n\r\n private ampmOnClick(thisComponent: any) {\r\n const timeWrapper = $(\"div.k-time-list-wrapper\").find(\"ul\");\r\n if (timeWrapper.length > 0) {\r\n const ampm = timeWrapper[2].children;\r\n\r\n for (var i = 0; i < ampm.length; i++) {\r\n ampm[i].addEventListener(\"click\", function (e) {\r\n // get clicked node value\r\n const nodeValue = e.currentTarget.textContent;\r\n\r\n // get model current value\r\n const valueDateTime = thisComponent.currentDateTimeValue(thisComponent);\r\n\r\n // set new minutes\r\n var _hour = valueDateTime.getHours();\r\n if (nodeValue.toLowerCase() == \"am\") {\r\n _hour -= 12;\r\n }\r\n else {\r\n _hour += 12;\r\n }\r\n valueDateTime.setHours(_hour);\r\n\r\n // set to Model\r\n thisComponent.setDateTimeToModel(thisComponent, valueDateTime);\r\n });\r\n }\r\n }\r\n }\r\n\r\n private currentDateTimeValue(thisComponent: any) {\r\n // get current value\r\n const zModelValue = ZComponentHelper.getZModelValue(thisComponent.data.Value, thisComponent.group, thisComponent.group.zModel);\r\n\r\n let valueDateTime = new Date();\r\n\r\n if (zModelValue != \"\" && zModelValue != undefined) {\r\n // convert current value to datetime\r\n valueDateTime = new Date(zModelValue);\r\n }\r\n\r\n return valueDateTime\r\n }\r\n\r\n private setDateTimeToModel(thisComponent: any, valueDateTime: any) {\r\n // convert the date to ISOString\r\n const newDateTime = new Date(valueDateTime).toISOString();\r\n\r\n // assign to the zModel\r\n ZComponentHelper.setModelValue(thisComponent.data.Value, newDateTime, thisComponent.group);\r\n\r\n // set timeout do add event again after node clicked. if not it only work 1 time.\r\n setTimeout(function () {\r\n thisComponent.hoursOnClick(thisComponent);\r\n thisComponent.minutesOnClick(thisComponent);\r\n thisComponent.ampmOnClick(thisComponent);\r\n thisComponent.nowOnClick(thisComponent);\r\n }, 500);\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport { \r\n ZComponent, ZComponentHelper,\r\n ZField, ZGroup, ZComponentProperties, AuthService,\r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-zdiv',\r\n templateUrl: './zdiv.component.html',\r\n styleUrls: ['./zdiv.component.scss'],\r\n})\r\nexport class ZdivComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n componentProperties = new ZComponentProperties();\r\n\r\n constructor(\r\n private authService: AuthService\r\n ) { }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n ZComponentHelper.setFieldsDivClass(this.group._projectName, this.group.fieldName, this.data, this.authService);\r\n }\r\n\r\n\r\n ComponentIsVisible(field: ZField): any {\r\n return ZComponentHelper.ComponentIsVisible(field, this.group);\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input, OnDestroy } from \"@angular/core\";\r\nimport { FormGroup, FormControl, ValidatorFn } from \"@angular/forms\";\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { of, Subscription } from 'rxjs';\r\nimport { switchMap, delay } from 'rxjs/operators';\r\n\r\n/********** Component & Service **********/\r\nimport { ZComponentDebugService } from '../services/zcomponent.debug.service';\r\nimport { AuthService, FieldService, ZComponentHelper, ZGroup, ZField } from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: \"app-zform\",\r\n templateUrl: \"./zform.component.html\",\r\n styleUrls: [\"./zform.component.scss\"]\r\n})\r\nexport class ZformComponent implements OnInit, OnDestroy {\r\n @Input() group: ZGroup;\r\n @Input() fieldName: string;\r\n form: FormGroup;\r\n fields: Array<ZField>;\r\n isLoading = true;\r\n subscription: Subscription;\r\n fieldIndex = [];\r\n // @ViewChild('frm', {static: true}) form: NgForm;\r\n\r\n constructor(\r\n private authService: AuthService,\r\n private fieldService: FieldService,\r\n private debugService: ZComponentDebugService\r\n // private modalService: ModalService,\r\n // private router: Router\r\n ) { }\r\n\r\n ngOnInit() {\r\n if (!this.fieldName) {\r\n this.onInitNormal();\r\n // this.form = this.toFormGroup(this.group.fields);\r\n // this.group.form = this.form;\r\n // this.fields = this.group.fields;\r\n this.isLoading = false;\r\n } else {\r\n this.fieldService.getFormFieldCode(this.fieldName, 'FormField', this, 'fields').pipe(\r\n switchMap(fieldElements => {\r\n if (this.fieldName === 'debug') {\r\n return this.debugService.onStartDebugger(fieldElements, this);\r\n } else {\r\n this.group.fields = fieldElements;\r\n this.onInitNormal();\r\n }\r\n }),\r\n switchMap(() => {\r\n this.isLoading = false;\r\n if (this.group._isDebugging && this.group._debug.isLoading) {\r\n this.group._debug.isLoading = false;\r\n }\r\n return of([]);\r\n }),\r\n delay(500))\r\n .subscribe(() => {\r\n this.debugService.LoadGridData();\r\n this.debugService.loadWorkflowData();\r\n });\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.subscription) { // for debugger subscription\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n getGroup() {\r\n if (this.fieldName !== 'debug') {\r\n return this.group;\r\n } else {\r\n return this.group._debug;\r\n }\r\n }\r\n\r\n private onInitNormal() {\r\n this.form = this.toFormGroup(this.group.fields);\r\n this.group.form = this.form;\r\n this.fields = this.group.fields;\r\n ZComponentHelper.setFieldsDivClass(this.group._projectName, this.group.fieldName, this.fields, this.authService);\r\n }\r\n\r\n\r\n ComponentIsVisible(field: ZField): any {\r\n return ZComponentHelper.ComponentIsVisible(field, this.group);\r\n }\r\n\r\n private toFormGroup(fieldElements: Array<ZField>) {\r\n const formControls: { [key: string]: FormControl } = {};\r\n this.getFormControls(fieldElements, formControls);\r\n const newFormGroup = new FormGroup(formControls);\r\n return newFormGroup;\r\n }\r\n\r\n private addToFieldIndex(field: ZField) {\r\n if (!field.Name) {\r\n console.error('Field Name undefined: ', field);\r\n }\r\n if (field.Name && !this.fieldIndex.includes(field.Name)) {\r\n this.fieldIndex.push(field.Name);\r\n } else {\r\n console.error('Field Name Duplication: ' + field.Name + '; ', field);\r\n }\r\n }\r\n\r\n\r\n private getFormControls(\r\n fieldArray: Array<ZField>,\r\n formControls: { [key: string]: FormControl }\r\n ) {\r\n fieldArray.forEach(field => {\r\n this.addToFieldIndex(field);\r\n if (typeof field.Value === \"string\" && field.Value.indexOf(\".\") !== -1) {\r\n if (['zgrid', 'ztree', 'zimg', 'textareajson'].indexOf(field.Type) === -1) {\r\n console.warn(\"FormControl - invalid field value\", field.Value);\r\n }\r\n } else {\r\n if (Array.isArray(field.Value)) {\r\n this.getFormControls(field.Value, formControls);\r\n } else {\r\n const isFormControl = ZComponentHelper.isFormControl(field);\r\n const isVisible = ZComponentHelper.isVisibleFormControl(this, field);\r\n const isRequired = ZComponentHelper.isRequiredFormControl(this, field);\r\n if (isFormControl === true) {\r\n const validators: ValidatorFn[] = ZComponentHelper.getValidators(field, isVisible, isRequired);\r\n formControls[field.Value] = new FormControl(\r\n this.group.zModel[field.Value], validators\r\n );\r\n if (ZComponentHelper.hasCCField(field.Type)) {\r\n const ccValidators: ValidatorFn[] = ZComponentHelper.getCCValidators(field, isVisible, isRequired);\r\n formControls[field.CCValue] = new FormControl(\r\n this.group.zModel[field.CCValue],\r\n ccValidators\r\n );\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n private getReadOnlyValue(field: ZField) {\r\n const readOnlyValue = ZComponentHelper.getGroupEvalValue.call(this, field.ReadOnly);\r\n if (typeof readOnlyValue === 'function') {\r\n return readOnlyValue();\r\n }\r\n return readOnlyValue;\r\n }\r\n\r\n trackByFn(index: number, item): number {\r\n //return item['Type'] + '-' + item['Name'];\r\n return index;\r\n }\r\n\r\n // private getValue(field: ZField) {\r\n // if (field.Type.indexOf('date') !== -1) {\r\n // return new Date(this.group.zModel[field.Value]);\r\n // } else {\r\n // return this.group.zModel[field.Value];\r\n // }\r\n // }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport { \r\n ZComponent, ZComponentHelper,\r\n ZField, ZGroup, ZComponentProperties\r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-zgauge',\r\n templateUrl: './zgauge.component.html',\r\n styleUrls: ['./zgauge.component.scss'],\r\n})\r\nexport class ZgaugeComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n isLoading = true;\r\n componentProperties = new ZComponentProperties();\r\n private value = 0;\r\n private title = \"\";\r\n private color = [];\r\n private majorTicks = [{ visible: true, color: '#0000ff' }];\r\n private minorTicks = [{ visible: true, color: '#0000ff' }];\r\n private startAngle = 0;\r\n private endAngle = 180;\r\n private minValue = 0;\r\n private maxValue = 200;\r\n\r\n options = {\r\n value: this.value,\r\n title: this.title,\r\n scaleMax: 50,\r\n colors: this.color,\r\n transitions: false,\r\n majorTicks: this.majorTicks,\r\n minorTicks: this.minorTicks,\r\n minValue: this.minValue,\r\n maxValue: this.maxValue,\r\n reverse: false,\r\n startAngle: this.startAngle,\r\n endAngle: this.endAngle,\r\n rangePlaceholderColor: '#e6e5e5',\r\n labelsColor: '#0000ff',\r\n rangeFrom: 0,\r\n rangeTo: 100,\r\n rangeColor: '#ff6358',\r\n rangeLineCap: 'round',\r\n showLabels: true,\r\n rangeSize: 10,\r\n };\r\n\r\n // fieldElement01 = [{\r\n // Name: 'gauge01',\r\n // Type: 'zgauge',\r\n // Value: 'group.gauge01Value',\r\n // title: 'group.gauge01Title',\r\n // majorTicks: 'group.gauge01MajorTicks',\r\n // minorTicks: 'group.gauge01MinorTicks',\r\n // minValue:'group.gauge01MinValue',\r\n // maxValue:'group.gauge01MaxValue',\r\n // Max: 100,\r\n // Color: 'group.gauge01Color',\r\n // DivClass: \"col-md-12 col-md-6\",\r\n // Visible: true,\r\n // transitions:false,\r\n // reverse:false,\r\n // startAngle: 'group.gauge01StartAngle',\r\n // endAngle: 'group.gauge01EndAngle',\r\n // rangePlaceholderColor:'#e6e5e5',\r\n // labelsColor:'#0000ff',\r\n // rangeFrom:0,\r\n // rangeTo:50,\r\n // rangeColor:'#ff6358',\r\n // rangeLineCap:'round',\r\n // showLabels: true,\r\n // rangeSize:10,\r\n // }];\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n if (this.data.Options) {\r\n const optionType = typeof (this.data.Options);\r\n if (optionType === 'object') {\r\n Object.assign(this.options, this.data.Options);\r\n } else if (optionType === 'string') {\r\n const optionValue = ZComponentHelper.getGroupEvalValue.call(this, this.data.Options);\r\n if (typeof (optionValue) === 'object') {\r\n Object.assign(this.options, optionValue);\r\n }\r\n }\r\n }\r\n\r\n this.getFieldDeclarationForSetup(this.data, this.options);\r\n this.isLoading = false;\r\n }\r\n\r\n private getFieldDeclarationForSetup(field: ZField, options: any) {\r\n options.value = ZComponentHelper.getGroupEvalValue.call(this, field.Value) || options.value;\r\n options.title = ZComponentHelper.getGroupEvalValue.call(this, field.Title) || options.title;\r\n options.scaleMax = field.Max || options.scaleMax;\r\n options.minValue = ZComponentHelper.getGroupEvalValue.call(this, field.MinValue) || options.minValue;\r\n options.maxValue = ZComponentHelper.getGroupEvalValue.call(this, field.MaxValue) || options.maxValue;\r\n options.colors = ZComponentHelper.getGroupEvalValue.call(this, field.Color) || options.colors;\r\n options.transitions = field.Transitions || options.transitions;\r\n options.majorTicks = ZComponentHelper.getGroupEvalValue.call(this, field.MajorTicks) || options.majorTicks;\r\n options.showLabels = field.ShowLabels || options.showLabels;\r\n options.style = field.Style || options.style;\r\n options.minorTicks = ZComponentHelper.getGroupEvalValue.call(this, field.MinorTicks) || options.minorTicks;\r\n options.reverse = field.Reverse || options.reverse;\r\n options.startAngle = ZComponentHelper.getGroupEvalValue.call(this, field.StartAngle) || options.startAngle;\r\n options.endAngle = ZComponentHelper.getGroupEvalValue.call(this, field.EndAngle) || options.endAngle;\r\n options.rangePlaceholderColor = field.RangePlaceholderColor || options.rangePlaceholderColor;\r\n options.rangeFrom = ZComponentHelper.getGroupEvalValue.call(this, field.RangeFrom) || options.rangeFrom;\r\n options.rangeTo = ZComponentHelper.getGroupEvalValue.call(this, field.RangeTo) || options.rangeTo;\r\n options.rangeColor = field.RangeColor || options.rangeColor;\r\n options.rangeLineCap = field.RangeLineCap || options.rangeLineCap;\r\n options.rangeSize = field.RangeSize || options.rangeSize;\r\n options.GaugeAlignment = ZComponentHelper.getGroupEvalValue.call(this, field.GaugeAlignment) || options.GaugeAlignment;\r\n options.paddingValue = options.value.toString() === 'NaN' ? options.GaugeAlignment : '0%';\r\n }\r\n\r\n alignment() {\r\n const alignmentStyle = {\r\n \"padding-right\": this.options[\"paddingValue\"]\r\n };\r\n\r\n return alignmentStyle;\r\n }\r\n\r\n public setEnable(status: boolean) {\r\n // const fc = this.group.form.controls[this.data.Value];\r\n // status ? fc.enable() : fc.disable();\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible(status: boolean) {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire(status: boolean) {\r\n this.componentProperties.isRequired = status;\r\n }\r\n\r\n public setData(gData: any) {\r\n this.getFieldDeclarationForSetup(this.data, this.options);\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input, OnDestroy, ViewChild } from \"@angular/core\";\r\nimport { FormGroup, FormBuilder, Validators, FormControl, FormArray, ValidatorFn } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { Observable, of, Subject, Subscription } from \"rxjs\";\r\nimport { tap, delay, map, switchMap, concatMap } from \"rxjs/operators\";\r\nimport { ExcelExportData } from '@progress/kendo-angular-excel-export';\r\nimport { GridItem, SelectableSettings } from '@progress/kendo-angular-grid';\r\nimport { SortDescriptor, State, process } from \"@progress/kendo-data-query\";\r\nimport { TooltipDirective } from '@progress/kendo-angular-tooltip';\r\nimport {\r\n GridDataResult,\r\n DataStateChangeEvent,\r\n PageChangeEvent,\r\n CellClickEvent,\r\n GridComponent,\r\n RowArgs,\r\n ColumnReorderEvent\r\n} from \"@progress/kendo-angular-grid\";\r\n\r\n/********** Component & Service **********/\r\n// import { environment } from \"src/environments/environment\";\r\nimport { MainService } from \"../services/main.service\";\r\nimport { ZGridBindingDirective } from \"./zgrid.binding.directive\";\r\nimport {\r\n AuthService, WebApiService, ToastService, GridCaching,\r\n ZField, ZGroup, ZComponent, ZComponentProperties, ZComponentHelper, ZComponentOutputEvent, ZCoreService,\r\n ZGridStatePersistingService, ZGridPostApiParams, ZGridSettings, ZGridColumnSettings, ZGridCustomColumn, StorageSessionService\r\n} from 'mmhglobal-zcore';\r\n\r\n\r\nexport interface ZGrid {\r\n params: ZGridPostApiParams;\r\n state: State;\r\n columns: any[];\r\n paginationApiPostUrl: string;\r\n data: ZField;\r\n group: ZGroup;\r\n zgrid: ZGridBindingDirective;\r\n inlineEditedFormGroups: FormGroup;\r\n getGridData: () => any[];\r\n getData: () => void;\r\n clearData: () => void;\r\n setData: (data: any) => void;\r\n setColumns: (columnFieldsName: string, columns: Array<ZGridCustomColumn>) => void;\r\n}\r\n\r\n@Component({\r\n selector: \"app-zgrid\",\r\n templateUrl: \"./zgrid.component.html\",\r\n styleUrls: [\"./zgrid.component.scss\"]\r\n})\r\nexport class ZgridComponent implements ZComponent, OnInit, OnDestroy {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n @ViewChild(TooltipDirective) public tooltipDir: TooltipDirective;\r\n // @ViewChild(ZGridBindingDirective, { static: false }) zgrid: ZGridBindingDirective;\r\n zgrid: any = null;\r\n oauthUrl: string = null;\r\n\r\n gridData: GridDataResult;\r\n selectableSettings: SelectableSettings;\r\n mySelection: any[] = [];\r\n inlineEditedFormGroups: FormGroup;\r\n public formGroup: FormGroup; // for kendo grid built-in\r\n public previousNext: boolean;\r\n\r\n componentProperties = new ZComponentProperties();\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention, no-underscore-dangle, id-blacklist, id-match\r\n _state: State = {\r\n skip: 0,\r\n take: 10\r\n };\r\n\r\n params: ZGridPostApiParams = {\r\n referId: null,\r\n pageNo: 0,\r\n pageSize: 20,\r\n sortColumnName: \"\",\r\n sortOrder: \"\",\r\n sortColumnNames: [],\r\n sortOrders: [],\r\n filterParams: [],\r\n parameters: \"\",\r\n filters: \"\",\r\n columns: \"\",\r\n grantType: 4\r\n };\r\n\r\n gridSubject: Subject<any> = new Subject<any>();\r\n\r\n private widthReduce: number;\r\n private heightReduce: number;\r\n private gData: any;\r\n\r\n columns: any[];\r\n editableColumns: any[];\r\n subscription: Subscription;\r\n pageSizes: boolean | any[];\r\n isLoading: boolean;\r\n gridStorageKey: string;\r\n gridDefaultStateExist: boolean = false;\r\n isNew: boolean = true;\r\n private editedRowIndex: number;\r\n\r\n constructor(\r\n private activatedRoute: ActivatedRoute,\r\n private router: Router,\r\n private formBuilder: FormBuilder,\r\n private authService: AuthService,\r\n private webApiService: WebApiService,\r\n private zGridStatePersistingService: ZGridStatePersistingService,\r\n private toastService: ToastService,\r\n private zcoreService: ZCoreService,\r\n private storageService: StorageSessionService,\r\n private mainService: MainService\r\n ) {\r\n this.oauthUrl = this.zcoreService.getEnvironment().e1OauthUrl + \"/\";\r\n this.allResults = this.allResults.bind(this);\r\n this.refreshData = this.refreshData.bind(this);\r\n this.clearData = this.clearData.bind(this);\r\n this.saveGridSettings = this.saveGridSettings.bind(this);\r\n this.restoreGridSettings = this.restoreGridSettings.bind(this);\r\n }\r\n\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n // Grid saved setting key(Used in CookieStore & LocalStorage)\r\n this.gridStorageKey = 'ionic-field::' + this.authService.e1Token.userName + '::' + this.data.Name + '::' + this.router.url;\r\n\r\n of(true)\r\n .pipe(\r\n //concatMap(() => {\r\n // // try get gridsetting from cookiestore\r\n // return this.mainService.cookieStoreGet(this.gridStorageKey, this.authService.e1Token.access_token);\r\n //}),\r\n //switchMap(savedGridCache => {\r\n // if (savedGridCache) { \r\n // // Keep the gridSetting from cookiestore to localStorage\r\n // this.zGridStatePersistingService.set(this.gridStorageKey, savedGridCache);\r\n // return of(true);\r\n // }\r\n // return of(false);\r\n //}),\r\n switchMap(() => {\r\n // Grid default setting\r\n this.columns = [];\r\n this.widthReduce = this.data.WidthReduce || 60;\r\n this.heightReduce = this.data.HeightReduce || 560;\r\n this._state.take = this.data.PageSize || 20;\r\n this.pageSizes = [20, 50, 100, 200, 500];\r\n this.previousNext = this.data['EnablePreviousNextButton'] || false;\r\n\r\n // [Mobile] Disable PageSize\r\n if (this.data.PageSizes === false || ZComponentHelper.isMobileScreen()) {\r\n this.pageSizes = false;\r\n }\r\n\r\n // Grid Selection column\r\n if (this.data.SelectOptions) {\r\n this.selectableSettings = {\r\n // checkboxOnly: this.checkboxOnly,\r\n mode: this.data.SelectOptions === 'single' ? 'single' : 'multiple'\r\n };\r\n }\r\n\r\n // bind this to group using Grid value\r\n if (this.data.Value.startsWith('group.')) {\r\n const gridValue = this.data.Value.slice(6);\r\n this.group[gridValue] = this;\r\n }\r\n\r\n // clear any Subscription\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n // if no ResourceURL, still generate Column first, then insert grid data using DataSource\r\n if (!this.data.ResourceURL) {\r\n this.generateGridColumns().subscribe(() => {\r\n if (this.data.DataSource && this.data.SkipDirective) {\r\n const ds = ZComponentHelper.getGroupValue(\r\n this.data.DataSource,\r\n this.group\r\n );\r\n this.setData(ds);\r\n }\r\n });\r\n }\r\n\r\n // subscribe to set grid setting from directive to component\r\n this.subscription = this.gridSubject.subscribe(grid => {\r\n this.zgrid = grid;\r\n this._state = this.zgrid.state;\r\n this.columns = this.zgrid.gridColumns;\r\n if (this.zgrid && this.zgrid.grid.data) {\r\n this.gridData = Object.assign({}, this.zgrid.grid.data);\r\n this.createFormControls();\r\n }\r\n });\r\n\r\n // Check Grid setting exist in localstorage\r\n this.stateExist();\r\n\r\n // Set Filter SessionKey\r\n if (this.data['SaveFilter']) {\r\n this.setGridSessionKey(this.group);\r\n }\r\n return of(true);\r\n }),\r\n tap(() => {\r\n this.gridCallback(this.group);\r\n }),\r\n ).subscribe();\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n /* Start Grid State (pagination, sortable, filter, ordering) */\r\n get state() {\r\n return this._state;\r\n }\r\n\r\n private stateExist() {\r\n const userGridState = this.zGridStatePersistingService.get(this.gridStorageKey);\r\n\r\n if (userGridState) {\r\n this.gridDefaultStateExist = true;\r\n }\r\n else {\r\n this.gridDefaultStateExist = false;\r\n }\r\n }\r\n\r\n public dataStateChange(state: DataStateChangeEvent): void {\r\n if (this.zgrid) {\r\n this.zgrid.dataStateChange(state);\r\n } else {\r\n this.gridData = process(this.gData, state);\r\n this.createFormControls();\r\n }\r\n }\r\n\r\n public filterable(value: any) {\r\n if (value === false) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public sortable(value: any) {\r\n if (value === false) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public locked(colSetting: any) {\r\n if (colSetting['pinnedLeft'] == true) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /* End Grid State (pagination, sortable, filter, ordering) */\r\n\r\n /* Start Grid Styling, Display */\r\n public getGridStyle() {\r\n return {\r\n \"height.px\": this.getGridHeight(), // window.innerHeight - this.heightReduce, // 450,\r\n \"width.px\": window.innerWidth - this.widthReduce\r\n }; // \"width.px\": this.innerWidth - 35\r\n }\r\n\r\n private getGridHeight() {\r\n const gridHeight = window.innerHeight - this.heightReduce;\r\n return (gridHeight < 250) ? 250 : gridHeight;\r\n // const v = ZComponentHelper.isMobileScreen();\r\n // if(v){\r\n // const h = window.innerHeight - this.heightReduce;\r\n // return (h < 250) ? 250 : h;\r\n // }else{\r\n // return \"auto\";\r\n // } \r\n }\r\n /* End Grid Styling, Display */\r\n\r\n\r\n /* Start Grid Columns */\r\n public isSelectOption() {\r\n let selectOptionExist = false;\r\n if (this.data.SelectOptions) {\r\n this.selectableSettings = {\r\n checkboxOnly: false,\r\n mode: (this.data.SelectOptions == \"multiple\") ? \"multiple\" : \"single\"\r\n };\r\n selectOptionExist = true;\r\n }\r\n return selectOptionExist;\r\n }\r\n\r\n public setColumns(columnName: string, columns: Array<ZGridCustomColumn>) {\r\n this.group[columnName] = this.wrapColumnNamesInFieldElement(columns);\r\n this.generateGridColumns().subscribe();\r\n }\r\n\r\n private wrapColumnNamesInFieldElement(columnList: Array<ZGridCustomColumn>) {\r\n return of(columnList.map(c => {\r\n const isHidden: boolean = c.Hidden;\r\n return {\r\n Name: c.Name,\r\n Value: c.Code,\r\n Type: c.Type,\r\n gridColVisible: !isHidden,\r\n width: 100 + c.Name.length * 4,\r\n enableFiltering: false,\r\n enableSorting: true,\r\n enablePinning: true,\r\n DivClass: \"col-xs-12 col-sm-6\",\r\n IsEditableInGrid: c.Editable\r\n };\r\n }));\r\n }\r\n\r\n private generateGridColumns(): Observable<any> {\r\n const gridSetting = this.getGridSettings();\r\n\r\n const columnFields$: Observable<any> = ZComponentHelper.getGroupValue(\r\n this.data.ColumnFields,\r\n this.group\r\n );\r\n if (!this.data.ColumnFields) {\r\n console.warn('Invalid/Empty grid(' + this.data.Name + ') columnField');\r\n }\r\n return columnFields$.pipe(\r\n tap(data => {\r\n if (!data) {\r\n console.warn('Invalid/Empty grid(' + this.data.Name + ') data to generate column');\r\n }\r\n const fieldName = this.data['FieldElementName'];\r\n this.columns = [];\r\n ZComponentHelper.getGridColumns(data,\r\n this.columns,\r\n this.group,\r\n this.authService,\r\n fieldName,\r\n gridSetting,\r\n null,\r\n this.data);\r\n }),\r\n //switchMap(() => {\r\n // //Get Session\r\n // return this.getGridSessionFilter(this.grp, this);\r\n //}),\r\n //switchMap(() => {\r\n // //Before get grid data\r\n // return this.beforeGridGetData(this.grp, this);\r\n //}),\r\n //switchMap(() => {\r\n // //Set grid data\r\n // return this.setGridSessionFilter(this.grp, this);\r\n //})\r\n );\r\n }\r\n\r\n /* End Grid Columns */\r\n\r\n private editModel(dataItem: any) {\r\n if (this.data.EditClickURL) {\r\n // Edit incell field\r\n const colFields = ZComponentHelper.getGroupValue(this.data.ColumnFields, this.group);\r\n this.group.subject.next({\r\n type: \"zgrid-cellClick\",\r\n target: this.data.EditClickURL,\r\n data: dataItem,\r\n columnFields$: colFields\r\n } as ZComponentOutputEvent);\r\n }\r\n else {\r\n // When clicked route to page\r\n this.router.navigate([this.group.editModelURL, dataItem.Id, 'edit'], {\r\n relativeTo: this.activatedRoute\r\n });\r\n }\r\n }\r\n\r\n public gridCallback(group: ZGroup) {\r\n if (this.data['AfterloadCallback']) {\r\n const me = Object.assign({}, this);\r\n\r\n this.group.subject.next({\r\n type: \"zgrid-AfterloadCallback\",\r\n target: this.data['AfterloadCallback'],\r\n data: me\r\n } as ZComponentOutputEvent);\r\n }\r\n }\r\n\r\n public setData = (gData: any) => {\r\n this.gridData = {\r\n data: gData,\r\n total: (gData ? gData.length : 0)\r\n };\r\n this.gData = gData;\r\n\r\n if (this.zgrid) {\r\n this.zgrid.grid['pageSize'] = gData.length; // set grid size\r\n }\r\n\r\n if (!!this.data.ShowRecordNumber) {\r\n if (this.gridData.data) {\r\n this.gridData.data.forEach((d, i) => {\r\n d.GridNo = i + 1;\r\n });\r\n }\r\n }\r\n\r\n if (this.gData) {\r\n this.createFormControls();\r\n }\r\n }\r\n\r\n public getData() {\r\n if (this.zgrid) {\r\n this.zgrid.getDataBinding();\r\n }\r\n\r\n if (this.data.SkipDirective) {\r\n this.gridData = process(this.gData, this.state);\r\n this.createFormControls();\r\n }\r\n }\r\n\r\n public getGridData() {\r\n return this.gData;\r\n }\r\n\r\n\r\n public getFormControl(rowIndex: number, property: string) {\r\n const formArray: FormArray = this.inlineEditedFormGroups.get('items') as FormArray;\r\n const formItem = formArray.at(rowIndex);\r\n\r\n if (formItem) {\r\n return formItem.get(property);\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n\r\n private createFormControls() {\r\n if (this.columns) {\r\n // only create if there is at least 1 editable column\r\n if (this.columns.find(c => c.isEditableInGrid) === undefined) {\r\n return;\r\n }\r\n\r\n this.inlineEditedFormGroups = new FormGroup({ items: new FormArray([]) });\r\n\r\n if (Array.isArray(this.gridData.data)) {\r\n this.gridData.data.forEach(d => {\r\n const items = {};\r\n this.columns.forEach(c => {\r\n items[c.field] = new FormControl(d[c.field]);\r\n });\r\n const formGroup = new FormGroup(items);\r\n (<FormArray>this.inlineEditedFormGroups.get(\"items\")).push(formGroup);\r\n });\r\n }\r\n }\r\n }\r\n\r\n public createFormGroup(dataItem: any, fieldName: any): FormGroup {\r\n return this.formBuilder.group({\r\n [fieldName]: dataItem[fieldName]\r\n });\r\n }\r\n\r\n public getGroupValue(value: string, group: ZGroup) {\r\n return ZComponentHelper.getGroupValue(this.data.Value, this.group);\r\n }\r\n\r\n\r\n\r\n public onBtnClick(event: any, colSetting: any, rowData: any, cellData: string) {\r\n this.onNavigateTo(event, colSetting, rowData, cellData);\r\n }\r\n\r\n public cellClickHandler(event: CellClickEvent) {\r\n const disableAllColumnCellClickHandler = this.data.DisableCellClickHandler ? this.data.DisableCellClickHandler : false;\r\n const isCommandColumn = event.column.constructor.name == 'CommandColumnComponent' ? true : false;\r\n\r\n if (!disableAllColumnCellClickHandler && !isCommandColumn) {\r\n const inCellEditable = this.data.InCellEditable ? this.data.InCellEditable : false;\r\n if (inCellEditable) {\r\n this.editableColumns = this.columns.filter(s => s.isEditableInDataItem === true);\r\n if (!!this.editableColumns) {\r\n this.editableColumns.map(s => event.sender.editCell(event.rowIndex, event.columnIndex, this.createFormGroup(event.dataItem, s.field)));\r\n }\r\n } else {\r\n console.log(\"cellClick event: \", event);\r\n if (this.data.OnItemClick) {\r\n const func = ZComponentHelper.getGroupEvalValue.call(this, this.data.OnItemClick);\r\n if (typeof func === 'function') {\r\n const callFunc = func.bind(this.group.ctrlScope);\r\n callFunc(event);\r\n }\r\n return;\r\n }\r\n\r\n this.editModel(event.dataItem);\r\n }\r\n }\r\n }\r\n\r\n public editCellCloseHandler(args: any) {\r\n const { formGroup, dataItem } = args;\r\n if (!formGroup.valid) {\r\n args.preventDefault();\r\n } else if (formGroup.dirty) {\r\n this.editableColumns = this.columns.filter(s => s.isEditableInDataItem === true);\r\n this.editableColumns.map(s =>\r\n Object.assign(dataItem, { [s.field]: formGroup.value[s.field] }));\r\n this.mySelection.map(s => (s.Id === dataItem.Id) ? Object.assign(s, dataItem) : null);\r\n }\r\n }\r\n\r\n\r\n public onNavigateTo(event: any, clickAction: any, rowData: any, cellData: string) {\r\n // debugger;\r\n // const n = colSetting.navigateTo.replace('/:id', cellData);\r\n const n = ZComponentHelper.getGroupEvalValue.call(this, clickAction.Click);\r\n if (n) {\r\n event.stopPropagation();\r\n this.group.subject.next({\r\n type: 'zgrid-onNavigateTo',\r\n target: clickAction.Click,\r\n rowData: rowData,\r\n data: cellData\r\n } as ZComponentOutputEvent);\r\n }\r\n }\r\n\r\n public showTooltip(e: MouseEvent): void {\r\n const element = e.target as HTMLElement;\r\n\r\n let isCommandColumn = false;\r\n element.classList.forEach(data => {\r\n if (data == 'k-command-cell') {\r\n isCommandColumn = true;\r\n }\r\n });\r\n\r\n if (((element.nodeName === 'TD' || element.nodeName === 'TH') && element.offsetWidth < element.scrollWidth) && !isCommandColumn) {\r\n this.tooltipDir.toggle(element);\r\n }\r\n else {\r\n this.tooltipDir.hide();\r\n }\r\n }\r\n\r\n public rowSelectionKey(context: RowArgs): any {\r\n return context.dataItem;\r\n }\r\n\r\n public getSeletectedValues(): any {\r\n return this.mySelection;\r\n }\r\n\r\n public refreshGrid(event: ZComponentOutputEvent, group: ZGroup, me: any) {\r\n const _gridOptionSegment = event.target.trim().split('.');\r\n const _gridOption = _gridOptionSegment[1];\r\n if (_gridOption) {\r\n const zgridControl = group[_gridOption] as ZGrid;\r\n if (zgridControl) {\r\n zgridControl.getData();\r\n } else {\r\n console.log('Unable to find grid value: ' + _gridOption);\r\n }\r\n } else {\r\n console.log('Invalid refreshGrid event: ', event);\r\n }\r\n }\r\n\r\n public refreshData() {\r\n this.getData();\r\n }\r\n\r\n public clearData() {\r\n this.zgrid.clearData();\r\n }\r\n\r\n\r\n public allResults(): Observable<ExcelExportData> {\r\n const _zgridControl = this.zgrid as ZGrid;\r\n const _zgridComponent = this.zgrid.grid as GridComponent;\r\n const _data = _zgridComponent.data as GridDataResult;\r\n\r\n const paginationApiPostUrl = _zgridControl.paginationApiPostUrl;\r\n\r\n // Need to clone, if not will affect the grid params.\r\n const params = Object.assign({}, this.params);\r\n params.pageNo = 0;\r\n params.pageSize = _data.total;\r\n\r\n return this.webApiService.httpPost$(paginationApiPostUrl, params).pipe(\r\n map((data: any) => {\r\n const result: ExcelExportData = {\r\n data: process(data.dataSet, {}).data\r\n };\r\n\r\n return result;\r\n })\r\n );\r\n }\r\n\r\n public getClass(dataItem: any, col: any) {\r\n let ngClass = \"gridCell \";\r\n if (col.fieldType === 'number' || col.fieldType === 'currency' || col.fieldType === 'znumeric') {\r\n ngClass += \"rightAligned \";\r\n }\r\n\r\n if (dataItem[col.field + '_Class']) {\r\n ngClass += dataItem[col.field + '_Class'] + \" \";\r\n }\r\n\r\n if (col.Class) {\r\n ngClass += col.Class + \" \";\r\n }\r\n\r\n return ngClass;\r\n }\r\n\r\n public getFormat(col: any, defaultFormat?: any) {\r\n let format = \"\";\r\n if (col.FormatOptions === undefined) {\r\n format = defaultFormat ? defaultFormat : \"\";\r\n } else {\r\n const formatArr = col.FormatOptions.split(\".\")\r\n let dp = 0;\r\n\r\n if (formatArr.length > 1) {\r\n dp = formatArr[1].length;\r\n }\r\n\r\n if (dp !== 0) {\r\n format = \"1.\" + dp + \"-\" + dp;\r\n }\r\n }\r\n return format;\r\n }\r\n\r\n\r\n public setHeaderText(columnName: string, newHeaderTitle: string) {\r\n const gridColumns = this.columns;\r\n gridColumns.forEach((col: any) => {\r\n if (col.Name === columnName) {\r\n col.title = newHeaderTitle;\r\n }\r\n });\r\n }\r\n\r\n public setGridIsLoading(triggered: boolean) {\r\n this.isLoading = triggered;\r\n }\r\n\r\n public setGridSessionKey(group: ZGroup) {\r\n if (group[\"GridStorageKey\"]) {\r\n return;\r\n }\r\n else {\r\n group[\"GridStorageKey\"] = 'zgrid_' + group.resourceURL + '_' + this.data.Value + '::' + this.authService.e1Token.userName;\r\n }\r\n\r\n }\r\n\r\n public trackBy(index: number, item: GridItem): any {\r\n //console.log(item.data['Id'] || index);\r\n return index;\r\n }\r\n\r\n /* Grid configuration function */\r\n public saveGridSettings(): void {\r\n const _zgridComponent = this.zgrid.grid as GridComponent;\r\n const _columns = _zgridComponent.columns;\r\n\r\n of(this.columns)\r\n .pipe(\r\n switchMap(() => {\r\n const configValue: ZGridColumnSettings[] = _columns.toArray().map(item => {\r\n const _zGridColumnSettings: ZGridColumnSettings = Object.keys(item)\r\n .filter(propName => {\r\n return !propName.toLowerCase().includes('template')\r\n })\r\n .reduce((acc, curr) => (\r\n {\r\n ...acc,\r\n ...{ [curr]: item[curr] }\r\n })\r\n , {} as ZGridColumnSettings);\r\n return _zGridColumnSettings;\r\n });\r\n\r\n // remove extra element form array\r\n configValue.forEach(item => {\r\n delete item['headerStyle'];\r\n delete item['__ngContext__'];\r\n });\r\n\r\n const gridSetting: ZGridSettings = {\r\n // state: this.state,\r\n columnsConfig: configValue\r\n };\r\n\r\n // Find any setting from localstorage and update, if not just add in.\r\n let _arrGridCaching: GridCaching[] = this.zGridStatePersistingService.get(this.gridStorageKey);\r\n let _gridConfig: GridCaching = null;\r\n if (_arrGridCaching && _arrGridCaching[0]) {\r\n _gridConfig = _arrGridCaching.find(x => x['dataFormFields'] === this.gridStorageKey);\r\n\r\n if (_gridConfig) {\r\n _gridConfig.gridSettings = gridSetting;\r\n }\r\n }\r\n else {\r\n _arrGridCaching = [];\r\n }\r\n\r\n if (!_gridConfig) {\r\n _gridConfig = {\r\n dataFormFields: this.gridStorageKey,\r\n gridSettings: gridSetting\r\n };\r\n\r\n _arrGridCaching.push(_gridConfig);\r\n }\r\n return _arrGridCaching;\r\n }),\r\n concatMap(gridCache => {\r\n // Save grid caching to localstorage\r\n this.zGridStatePersistingService.set(this.gridStorageKey, gridCache);\r\n // Save to CookieStore\r\n return this.mainService.cookieStorePost(this.gridStorageKey, gridCache);\r\n }),\r\n tap(savedGridCache => {\r\n // check is saved state exist to enable/hide restore button\r\n this.stateExist();\r\n }),\r\n tap(() => {\r\n // Alert\r\n this.toastService.show('Grid Setting Saved', \"top\", true, 2000, 'success');\r\n })\r\n ).subscribe();\r\n }\r\n\r\n public restoreGridSettings() {\r\n of(true)\r\n .pipe(\r\n switchMap(() => {\r\n // Clear localstorage grid setting\r\n this.zGridStatePersistingService.remove(this.gridStorageKey);\r\n return of(true)\r\n }),\r\n switchMap(() => {\r\n // delete cookiestore gridSetting by storagekey as name\r\n return this.mainService.cookieStoreDeleteMultiple(this.gridStorageKey);\r\n }),\r\n concatMap(() => {\r\n // Use original column setting\r\n return this.generateGridColumns();\r\n }),\r\n tap(() => {\r\n // check is saved state exist\r\n this.stateExist();\r\n // Alert\r\n this.toastService.show('Grid Setting Restored', \"top\", true, 2000, 'success');\r\n })\r\n ).subscribe();\r\n }\r\n\r\n private getGridSettings(): ZGridColumnSettings[] {\r\n const _storageKey = 'ionic-field::' + this.authService.e1Token.userName + '::' + this.data.Name + '::' + this.router.url;\r\n\r\n // Find any setting from localstorage..\r\n let _arrGridCaching: GridCaching[] = this.zGridStatePersistingService.get(_storageKey);\r\n if (_arrGridCaching) {\r\n const _gridCaching: GridCaching = JSON.parse(_arrGridCaching['Value']);\r\n if (_gridCaching) {\r\n return _gridCaching.gridSettings.columnsConfig.sort((a, b) => a.orderIndex - b.orderIndex);\r\n }\r\n }\r\n }\r\n\r\n /* Inline setting */\r\n public getInlineField(value: any) {\r\n return this.columns.find(x => x.Value === value);\r\n }\r\n\r\n public getInlineForm(rowIndex: number) {\r\n const formArray: FormArray = this.inlineEditedFormGroups.get('items') as FormArray;\r\n return formArray.at(rowIndex)\r\n }\r\n\r\n public getFormControlData(value: any) {\r\n return this.inlineEditedFormGroups.value.items;\r\n }\r\n\r\n\r\n /* Event */\r\n public beforeGridGetData(group: ZGroup, me: any) {\r\n console.warn(\"beforeDataBinding triggered\");\r\n if (!group.beforeGridGetData) {\r\n console.warn(\"group.beforeDataBinding is undefined\");\r\n return of(true);\r\n }\r\n return group.beforeGridGetData(group, me);\r\n }\r\n\r\n public async getGridSessionFilter(group: ZGroup, me: any) {\r\n if (!group[\"GridStorageKey\"]) {\r\n return null;\r\n }\r\n const StorageKey = group[\"GridStorageKey\"];\r\n\r\n if (this.storageService) {\r\n await this.storageService.get(StorageKey)\r\n .then(data => {\r\n if (!data || !data.value || data.value === \"null\") {\r\n return null;\r\n }\r\n else {\r\n const result = JSON.parse(data.value);\r\n this.state.filter = JSON.parse(result[\"StateFilter\"]);\r\n this.params.filterParams = JSON.parse(result[\"FilterParams\"]);\r\n\r\n this.state.filter.filters.forEach((stateFilter: any) => {\r\n if (stateFilter.field.includes('UTC')) {\r\n stateFilter.value = new Date(stateFilter.value);\r\n }\r\n });\r\n\r\n return data;\r\n }\r\n });\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n\r\n public setGridSessionFilter(group: ZGroup, me: any) {\r\n if (!group[\"GridStorageKey\"]) {\r\n return null;\r\n }\r\n const StorageKey = group[\"GridStorageKey\"];\r\n\r\n let lstGridFilter: { [key: string]: string } = {};\r\n\r\n if (me.state.filter && this.storageService && this.data['SaveFilter']) {\r\n //list of data for StateFilter and FilterParams\r\n lstGridFilter = { \"StateFilter\": JSON.stringify(me.state.filter), \"FilterParams\": JSON.stringify(me.params.filterParams) }\r\n //create session storage\r\n this.storageService.set(StorageKey, JSON.stringify(lstGridFilter));\r\n }\r\n }\r\n\r\n /* Available Functions */\r\n public setEnable = (status: boolean) => {\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n\r\n /* onchange Events */\r\n public filterChange(event: any): void {\r\n if (this.zgrid) {\r\n this.zgrid.filterChange(event);\r\n }\r\n }\r\n\r\n public pageChange(event: PageChangeEvent): void { \r\n if (this.zgrid) {\r\n this.zgrid.pageChange(event);\r\n }\r\n }\r\n\r\n public sortChange(sort: SortDescriptor[]): void {\r\n if (this.zgrid) {\r\n this.zgrid.sortChange(sort);\r\n }\r\n }\r\n\r\n public inCellCheckBoxOnChange(event: any, rowIndex: any, column: any) {\r\n const isChecked = event.detail.checked;\r\n this.gData[rowIndex][column.Value] = isChecked;\r\n }\r\n\r\n public columnsOrderChanged(event: ColumnReorderEvent): void {\r\n const _zgridControl = this.zgrid as ZGrid;\r\n const _zgridComponent = this.zgrid.grid as GridComponent;\r\n const _data = _zgridComponent.data as GridDataResult;\r\n\r\n if (this.zgrid) {\r\n const _zgrid = this.zgrid;\r\n }\r\n }\r\n\r\n\r\n /* grid command handler */\r\n public addHandler({ sender }) {\r\n this.isNew = true;\r\n\r\n // close any existing editor\r\n this.closeEditor(sender);\r\n\r\n // loop all column to get validation and create form control\r\n const colFormControl = {};\r\n this.zgrid.gridColumns.forEach(col => {\r\n const validators: ValidatorFn[] = [];\r\n if (col.IsRequired) {\r\n validators.push(Validators.required);\r\n }\r\n if (col.ValidatorPattern) {\r\n validators.push(Validators.pattern(col.ValidatorPattern));\r\n } \r\n\r\n colFormControl[col.Value] = new FormControl(null, validators); \r\n });\r\n\r\n // set form control object to form group\r\n this.formGroup = new FormGroup(colFormControl);\r\n\r\n // add to grid row\r\n sender.addRow(this.formGroup);\r\n }\r\n\r\n public saveHandler({ sender, rowIndex, formGroup, isNew }): void {\r\n // get grid data.\r\n const gridExistingData = this.gData ? this.gData : this.gridData ? this.gridData.data : [];\r\n\r\n // if valid\r\n if (formGroup.valid) {\r\n // check for duplicate UniqueKey\r\n let uniqueKeyExist: boolean;\r\n const uniqueKey = this.data['UniqueKey'];\r\n if (uniqueKey) { \r\n const formUniqueKeyValue = formGroup.value[uniqueKey];\r\n\r\n if (isNew || (!isNew && (gridExistingData[rowIndex][uniqueKey] != formUniqueKeyValue))) {\r\n // if new...\r\n // if edit... if current field, uniquekey value changed. need to check. \r\n gridExistingData.forEach(data => {\r\n if (data[uniqueKey] === formUniqueKeyValue) {\r\n uniqueKeyExist = true;\r\n return;\r\n }\r\n });\r\n }\r\n }\r\n\r\n if (!uniqueKeyExist) {\r\n if (isNew) {\r\n // if new, push to data\r\n gridExistingData.push(formGroup.value);\r\n }\r\n else {\r\n // if edit, update data\r\n gridExistingData[rowIndex] = formGroup.value;\r\n }\r\n\r\n this.setData(gridExistingData);\r\n\r\n sender.closeRow(rowIndex);\r\n }\r\n else {\r\n this.toastService.show('Error occur: Duplicated unique field entry.', 'top', true, 3000, 'danger');\r\n }\r\n }\r\n }\r\n\r\n public cancelHandler({ sender, rowIndex }) {\r\n // cancel any existing editor\r\n sender.closeRow(rowIndex);\r\n }\r\n\r\n public editHandler({ sender, rowIndex, dataItem }) {\r\n this.isNew = false;\r\n\r\n // close any existing editor\r\n this.closeEditor(sender);\r\n \r\n // loop all column to get validation and create form control, append current row value\r\n const colFormControl = {};\r\n this.zgrid.gridColumns.forEach(col => {\r\n const validators: ValidatorFn[] = [];\r\n if (col.IsRequired) {\r\n validators.push(Validators.required);\r\n }\r\n if (col.ValidatorPattern) {\r\n validators.push(Validators.pattern(col.ValidatorPattern));\r\n }\r\n \r\n colFormControl[col.Value] = new FormControl(dataItem[col.Value], validators);\r\n });\r\n\r\n // set form control object to form group\r\n this.formGroup = new FormGroup(colFormControl);\r\n\r\n // set grid row to edit\r\n this.editedRowIndex = rowIndex; \r\n sender.editRow(rowIndex, this.formGroup);\r\n }\r\n\r\n public removeHandler({ sender, dataItem }) {\r\n const index = this.getItemIndex(dataItem, this.gData, this.data['UniqueKey']);\r\n this.gData.splice(index, 1);\r\n\r\n sender.cancelCell();\r\n }\r\n\r\n private closeEditor(grid, rowIndex = this.editedRowIndex) {\r\n grid.closeRow(rowIndex);\r\n this.editedRowIndex = undefined;\r\n this.formGroup = undefined;\r\n }\r\n\r\n private getItemIndex(item: any, data: any[], key: string): number {\r\n for (let idx = 0; idx < data.length; idx++) {\r\n if (data[idx][key] === item[key]) {\r\n return idx;\r\n }\r\n }\r\n\r\n return -1;\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input, OnDestroy } from \"@angular/core\";\r\nimport { FormGroup, Validators } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { Subscription } from \"rxjs\";\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n ZComponent, ZComponentHelper, ZField, ZGroup, ZComponentProperties,\r\n WebApiService, AttachmentService\r\n} from \"mmhglobal-zcore\";\r\n\r\n\r\n@Component({\r\n selector: \"app-zimg\",\r\n templateUrl: \"./zimg.component.html\",\r\n styleUrls: [\"./zimg.component.scss\"]\r\n})\r\nexport class ZimgComponent implements ZComponent, OnInit, OnDestroy {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n imgWidth: string = null;\r\n imgHeight: string = null;\r\n imgSrc: string = null;\r\n randomNumber = Math.random();\r\n componentProperties = new ZComponentProperties();\r\n // imgSourceAvailable = false;\r\n subscription: Subscription;\r\n\r\n Guid;\r\n FileName;\r\n Image:string;\r\n constructor(private attachmentService: AttachmentService) { }\r\n\r\n async ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n if (this.data.Size && this.data.Size.toLowerCase().indexOf(\"x\") !== -1) {\r\n const imgSize = this.data.Size.toLowerCase().split(\"x\");\r\n this.imgWidth = imgSize[0];\r\n this.imgHeight = imgSize[1];\r\n }\r\n\r\n this.Guid = this.getGroupValue(this.data['Guid'], this.group);//this.data['Guid'];//this.getGroupValue(this.data['Guid'], this.group);\r\n this.FileName = this.getGroupValue(this.data['FileName'], this.group);//this.getGroupValue(this.data['FileName'], this.group);\r\n\r\n if(this.Guid != undefined && this.FileName != undefined){\r\n let blobfile = await this.attachmentService.getImageBlob(this.FileName, this.Guid);\r\n this.Image= await this.attachmentService.convertBlobToBase64(blobfile);\r\n }\r\n\r\n\r\n\r\n\r\n\r\n // this.subscription = this.group.zModel$\r\n // .asObservable()\r\n // .subscribe((zmodel: any) => {\r\n // this.onDataSourceChange(zmodel);\r\n // });\r\n }\r\n\r\n\r\n\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n onDataSourceChange() {\r\n const value = this.getGroupValue(this.data.Value, this.group);\r\n const sourceUrl = this.getGroupValue(this.data.SourceUrl, this.group);\r\n\r\n if (value && sourceUrl) {\r\n // this.imgSrc =\r\n // this.imgSourceAvailable = true;\r\n return (\r\n sourceUrl +\r\n \"?id=\" +\r\n value +\r\n \"&size=\" +\r\n this.data.Size\r\n // + \"&r=\" + this.randomNumber\r\n );\r\n // console.log(\"image source: \", this.imgSrc);\r\n } else {\r\n // this.imgSourceAvailable = false;\r\n }\r\n }\r\n\r\n getGroupValue(value: string, group: any) {\r\n return ZComponentHelper.getGroupValue(value, group);\r\n }\r\n\r\n // getValue(data: string) {\r\n // let gArray: Array<string>;\r\n // if (data) {\r\n // gArray = data.split(\".\");\r\n\r\n // if (gArray.length === 3 && data.startsWith(\"group.zModel\")) {\r\n // return this.group.zModel[gArray[2]];\r\n // } else if (gArray.length === 2 && data.startsWith(\"group.\")) {\r\n // return this.group[gArray[1]];\r\n // }\r\n // }\r\n // return null;\r\n // }\r\n\r\n getImgStyle(): any { }\r\n\r\n onIconClick() {\r\n const iconClick = ZComponentHelper.getGroupEvalValue.call(this, this.data.OnItemClick, this.group);\r\n if (typeof iconClick === 'function') {\r\n return iconClick();\r\n }\r\n\r\n if (!iconClick) {\r\n console.warn('ZImg OnItemClick property is invalid: ', iconClick);\r\n return;\r\n }\r\n\r\n if (typeof iconClick !== 'function') {\r\n console.warn('ZImg OnItemClick property is not a function: ', iconClick);\r\n return;\r\n }\r\n }\r\n\r\n getIconName() {\r\n const iconName = ZComponentHelper.getGroupEvalValue.call(this, this.data.Icon, this.group);\r\n return iconName;\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { Observable, Subscription } from 'rxjs';\r\nimport { delay, tap } from 'rxjs/operators';\r\nimport { LabelSettings } from '@progress/kendo-angular-progressbar';\r\nimport { State } from '@progress/kendo-data-query';\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n AuthService, ZField, ZGroup, ResourceApiService, WebApiService, GridCaching,\r\n ZComponent, ZComponentHelper, ZComponentOutputEvent,\r\n ZGridStatePersistingService, ZGridColumnSettings, ZGridPostApiParams\r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-zkcard',\r\n templateUrl: './zkcard.component.html',\r\n styleUrls: ['./zkcard.component.scss'],\r\n})\r\nexport class ZkcardComponent implements ZComponent, OnInit, OnDestroy {\r\n\r\n constructor(\r\n private activatedRoute: ActivatedRoute,\r\n private resourceApiService: ResourceApiService,\r\n private authService: AuthService,\r\n private zGridStatePersistingService: ZGridStatePersistingService,\r\n private webapiService: WebApiService,\r\n private router: Router,\r\n ) { }\r\n\r\n data: ZField;\r\n group: ZGroup;\r\n form: FormGroup;\r\n zgrid: any = null;\r\n scrollViewCards: any = { data: [], total: 0 };\r\n responseData: any = { data: [], total: 0 };\r\n params: ZGridPostApiParams = {\r\n referId: null,\r\n pageNo: 0,\r\n pageSize: 20,\r\n sortColumnName: \"\",\r\n sortOrder: \"\",\r\n sortColumnNames: [],\r\n sortOrders: [],\r\n filterParams: [],\r\n parameters: \"\",\r\n filters: \"\",\r\n columns: \"\",\r\n grantType: 4\r\n };\r\n //gridData: GridDataResult;\r\n columns: any[];\r\n gridColumns: any[] = [];\r\n usableColumns: any[] = [];\r\n dataSource = null;\r\n state: State = {\r\n skip: 0,\r\n take: 10,\r\n };\r\n paginationApiPostUrl = null;\r\n resourceURL = null;\r\n subscription: Subscription;\r\n public filterItems: Array<string> = [];\r\n public progressStyles: { [key: string]: any } = {\r\n color: '',\r\n background: 'green'\r\n };\r\n public loadingPanelVisible = false;\r\n\r\n\r\n public label: LabelSettings = {\r\n visible: true,\r\n format: 'percent',\r\n position: 'center'\r\n };\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n this.dataSource = this.field.DataSource ? this.field.DataSource : null;\r\n this.filterItems = this.group['filterItems'];\r\n if (!this.dataSource) {\r\n this.resourceURL = ZComponentHelper.getGroupValue(\r\n this.field.ResourceURL,\r\n this.grp\r\n );\r\n // console.log(\"At zgrid.component (OnInit) resourceURL: \", resourceURL);\r\n if (!this.resourceURL) {\r\n // this.grid.loading = false;\r\n //if (this.zgridbinding.data.Name !== \"ActivityLogGrid\") {\r\n // console.warn(\r\n // \"No initialise for Field.ResourceURL: \",\r\n // this.field.ResourceURL\r\n // );\r\n //}\r\n return;\r\n }\r\n\r\n const array = this.resourceURL.split(\"/api/\");\r\n if (!!array[1]) {\r\n array[1] = \"Page\" + array[1];\r\n this.paginationApiPostUrl = array.join(\"/api/\");\r\n } else {\r\n const arr = this.resourceURL.split(\"/\");\r\n arr[arr.length - 2] = \"Page\" + arr[arr.length - 2];\r\n this.paginationApiPostUrl = arr.join(\"/\");\r\n }\r\n\r\n this.setFilterParamsByParentRefId();\r\n }\r\n\r\n this.generateGridColumns();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n getData() {\r\n if (this.zgrid) {\r\n this.zgrid.getDataBinding();\r\n }\r\n //if (this.data.SkipDirective) {\r\n // this.gridData = process(this.gData, this.state);\r\n // this.createFormControls();\r\n //}\r\n }\r\n\r\n generateGridColumns() {\r\n this.loadingPanelVisible = true;\r\n const columnFields$: Observable<any> = ZComponentHelper.getGroupValue(\r\n this.field.ColumnFields,\r\n this.grp\r\n );\r\n columnFields$\r\n .pipe(\r\n tap((data) => {\r\n\r\n const gridSetting = this.getGridSettings();\r\n const fieldName = this.field[\"FieldElementName\"];\r\n ZComponentHelper.getGridColumns(\r\n data,\r\n this.gridColumns,\r\n this.group,\r\n this.authService,\r\n fieldName,\r\n gridSetting,\r\n this.usableColumns\r\n );\r\n this.getFilterParamsColumns();\r\n this.getFilter();\r\n //this.getSorting();\r\n //this.getGrantType();\r\n //this.setHiddenColumn(gridSetting);\r\n //this.params.referId = this.getFieldReferenceId() || this.grp.referenceId || null;\r\n }),\r\n tap(() => {\r\n this.getDataBinding();\r\n })\r\n )\r\n .subscribe(() => {\r\n });\r\n }\r\n\r\n getDataBinding(): void {\r\n if (!this.dataSource) {\r\n this.param.pageSize = this.field.PageSize ?? 50;\r\n if (this.field.ExternalPagination) {\r\n // For POST method Page WebAPI\r\n this.webapiService\r\n .postApi(\r\n this.paginationApiPostUrl,\r\n this.param,\r\n null,\r\n null,\r\n null,\r\n null,\r\n true\r\n )\r\n .subscribe((data) => {\r\n delay(2500)\r\n this.responseData = { data: data.dataSet, total: data.totalCount };\r\n this.scrollViewCards = { data: data.dataSet, total: data.totalCount };\r\n if (data.dataSet.length > 0) {\r\n this.getRecordsSummary();\r\n }\r\n\r\n if (this.data.ResourceURLAlt) {\r\n this.getNewSurvey();\r\n }\r\n //this.aggregateHandling(data.dataSet);\r\n //this.grid.data = { data: data.dataSet, total: data.totalCount };\r\n //this.grid.loading = false;\r\n this.loadingPanelVisible = false;\r\n //this.notifyDataChange();\r\n });\r\n } else {\r\n // For GET method\r\n this.webapiService\r\n .getApi(this.resourceURL, null, null, null, null, null, true)\r\n .subscribe((data) => {\r\n let _data = null;\r\n let _totalCount = 0;\r\n\r\n if (data.dataSet) {\r\n _data = data.dataSet;\r\n _totalCount = data.totalCount;\r\n } else {\r\n _data = data;\r\n _totalCount = data.length;\r\n }\r\n this.loadingPanelVisible = false;\r\n //this.aggregateHandling(_data);\r\n //this.grid.data = { data: _data, total: _totalCount };\r\n //this.grid.pageSize = _totalCount;\r\n //this.grid.loading = false;\r\n //this.notifyDataChange();\r\n });\r\n }\r\n } else {\r\n const ds = ZComponentHelper.getGroupValue(\r\n this.field.DataSource,\r\n this.grp\r\n );\r\n }\r\n }\r\n\r\n getRecordsSummary() {\r\n let SurveyIds = [];\r\n\r\n this.responseData.data.forEach(value => {\r\n SurveyIds.push(value.Id);\r\n });\r\n\r\n this.webapiService\r\n .postApi(\r\n this.resourceApiService.getURL('ppsapsurveysummaryinfoURL'),\r\n SurveyIds,\r\n null,\r\n null,\r\n null,\r\n null,\r\n true\r\n )\r\n .subscribe(data => {\r\n this.responseData.data.forEach(value => {\r\n data.forEach(x => {\r\n if (x.SurveyId == value.Id) {\r\n value['value'] = Number.isNaN(((x.TotalTakenQuestions / x.TotalQuestions) * 100)) ? 0 : Math.round(((x.TotalTakenQuestions / x.TotalQuestions) * 100));\r\n // value['value'] = 100;\r\n }\r\n })\r\n });\r\n })\r\n }\r\n\r\n getNewSurvey() {\r\n let requestBody = {\r\n columns: \"PartnerMillId,SurveyTemplateId,WFS_StatusCode,WFS_StatusName\",\r\n pageSize: this.field.PageSize ?? 50,\r\n };\r\n\r\n this.webapiService\r\n .postApi(\r\n this.resourceApiService.getPageUrl(this.data.ResourceURLAlt),\r\n requestBody,\r\n null,\r\n null,\r\n null,\r\n null,\r\n true\r\n )\r\n .subscribe((data) => {\r\n data.dataSet.forEach(value => {\r\n value['value'] = 0;\r\n this.scrollViewCards.data.push(value);\r\n this.scrollViewCards.total += 1;\r\n\r\n //data.forEach(x => {\r\n // if (x.SurveyId == value.Id) {\r\n // value['value'] = Number.isNaN(((x.TotalTakenQuestions / x.TotalQuestions) * 100)) ? 0 : Math.round(((x.TotalTakenQuestions / x.TotalQuestions) * 100));\r\n // }\r\n //})\r\n });\r\n })\r\n }\r\n\r\n get field() {\r\n return this.data;\r\n }\r\n\r\n get grp() {\r\n return this.group;\r\n }\r\n\r\n get param(): ZGridPostApiParams {\r\n return this.params;\r\n }\r\n\r\n private getGridSettings(): ZGridColumnSettings[] {\r\n const _storageKey = 'ionic-field::' + this.authService.e1Token.userName;\r\n const _gridName = this.field.Name + '::' + this.field.Value;\r\n\r\n // Find any setting from localstorage..\r\n let _arrGridCaching: GridCaching[] = this.zGridStatePersistingService.get(_storageKey);\r\n if (_arrGridCaching && _arrGridCaching[0]) {\r\n const _gridCaching: GridCaching = _arrGridCaching.find(x => x['dataFormFields'] === _gridName);\r\n\r\n if (_gridCaching) {\r\n return _gridCaching.gridSettings.columnsConfig.sort((a, b) => a.orderIndex - b.orderIndex);\r\n }\r\n }\r\n }\r\n\r\n private setFilterParamsByParentRefId() {\r\n // Use field own referenceId if available\r\n const refId = this.getFieldReferenceId() || this.grp.referenceId;\r\n const refField = this.field.ReferenceField || this.grp.parentReferenceField;\r\n if (refId && this.grp.parentReferenceField) {\r\n const filterValue = {\r\n key: refField,\r\n ops: \"=\",\r\n value: refId,\r\n };\r\n // if (this.params.filterParams.find(x => x.key === filterValue.key) === undefined) {\r\n this.params.filterParams.push(filterValue);\r\n // }\r\n }\r\n }\r\n\r\n private getFieldReferenceId() {\r\n let fieldReferenceId = null;\r\n if (this.field.ReferenceId) {\r\n fieldReferenceId = ZComponentHelper.getGroupValue(\r\n this.field.ReferenceId,\r\n this.grp\r\n );\r\n }\r\n return fieldReferenceId;\r\n }\r\n\r\n private getFilterParamsColumns() {\r\n const colFields: Array<string> = [];\r\n this.gridColumns.forEach((field) => {\r\n if (field.valueExpr) {\r\n colFields.push(field.valueExpr + \" as \" + field.field);\r\n } else {\r\n colFields.push(field.field);\r\n }\r\n });\r\n\r\n if (colFields.length > 0) {\r\n if (colFields.indexOf(\"Id\") === -1) {\r\n colFields.push(\"Id\");\r\n }\r\n }\r\n\r\n let tmpGridColumn: any[] = [];\r\n tmpGridColumn.push(colFields.join(\",\"));\r\n if (this.usableColumns.length > 0) {\r\n tmpGridColumn.push(this.usableColumns.join(\",\"));\r\n }\r\n this.params.columns = tmpGridColumn.join(\",\");\r\n }\r\n\r\n start(event: any) {\r\n this.group;\r\n this.group.isLoading = true;\r\n if (event.WFS_StatusName == 'New') {\r\n let param = {\r\n UserId: this.group['PSAPUSERID'],\r\n SurveyMillId: event.Id\r\n }\r\n\r\n this.webapiService\r\n .postApi(\r\n this.resourceApiService.getURL('ppsapsurveycreateURL'),\r\n param,\r\n null,\r\n null,\r\n null,\r\n null,\r\n true\r\n )\r\n .subscribe((data) => {\r\n this.group.isLoading = false;\r\n if (this.data.EditClickURL) {\r\n // TODO:\r\n // debugger;\r\n // this.router.navigate([this.data.EditClickURL, dataItem.Id]);\r\n const colFields = ZComponentHelper.getGroupValue(this.data.ColumnFields, this.group);\r\n this.group.subject.next({\r\n type: \"zgrid-cellClick\",\r\n target: this.data.EditClickURL,\r\n data: event,\r\n columnFields$: colFields\r\n } as ZComponentOutputEvent);\r\n } else {\r\n this.router.navigate([this.group.editModelURL, data.Id, 'edit'], {\r\n relativeTo: this.activatedRoute\r\n });\r\n }\r\n\r\n });\r\n }\r\n else {\r\n this.group.isLoading = false;\r\n if (this.data.EditClickURL) {\r\n // TODO:\r\n // debugger;\r\n // this.router.navigate([this.data.EditClickURL, dataItem.Id]);\r\n const colFields = ZComponentHelper.getGroupValue(this.data.ColumnFields, this.group);\r\n this.group.subject.next({\r\n type: \"zgrid-cellClick\",\r\n target: this.data.EditClickURL,\r\n data: event,\r\n columnFields$: colFields\r\n } as ZComponentOutputEvent);\r\n } else {\r\n this.router.navigate([this.group.editModelURL, event.Id, 'edit'], {\r\n relativeTo: this.activatedRoute\r\n });\r\n }\r\n }\r\n }\r\n\r\n getFontAwesome(iconName: string) {\r\n return ZComponentHelper.getFontAwesome(iconName);\r\n }\r\n\r\n private getFilter() {\r\n if (this.params.filters && this.field.Filters) {\r\n this.params.filters = this.params.filters + \" && \" + this.field.Filters;\r\n } else if (!this.params.filters && this.field.Filters) {\r\n this.params.filters = this.field.Filters;\r\n }\r\n\r\n if (this.field.Filters && this.field.Filters.indexOf(\"group.\") !== -1) {\r\n const filterKeyValPairs = this.field.Filters.split(\" \");\r\n const grpValues = filterKeyValPairs.filter(\r\n (element) => element.trim().indexOf(\"group.\") !== -1\r\n );\r\n\r\n grpValues.forEach((val) => {\r\n const actualVal = ZComponentHelper.getGroupValue(val, this.grp);\r\n this.params.filters = this.params.filters.replace(val, actualVal);\r\n });\r\n }\r\n }\r\n\r\n valueChange(event: any) {\r\n if (event.length < 1) {\r\n this.scrollViewCards.data = this.responseData.data;\r\n this.scrollViewCards.total = this.responseData.total;\r\n return;\r\n }\r\n this.scrollViewCards.data = this.responseData.data.filter(x => event.includes(x.WFS_StatusName));\r\n this.scrollViewCards.total = this.responseData.data.filter(x => event.includes(x.WFS_StatusName)).length;\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport { \r\n ZComponent, ZComponentHelper,\r\n ZField, ZGroup, ZComponentProperties \r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-zlabel',\r\n templateUrl: './zlabel.component.html',\r\n styleUrls: ['./zlabel.component.scss'],\r\n})\r\nexport class ZlabelComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n componentProperties = new ZComponentProperties();\r\n\r\n labelText = \"\";\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n this.labelText = ZComponentHelper.getGroupValue(this.data.Label.toString(), this.group);\r\n }\r\n\r\n getReadOnlyValue() {\r\n const readOnlyValue = ZComponentHelper.getGroupEvalValue.call(this, this.data.ReadOnly);\r\n if (typeof readOnlyValue === 'function') {\r\n return readOnlyValue();\r\n }\r\n return readOnlyValue;\r\n }\r\n\r\n isVisible() {\r\n if (this.componentProperties.isVisible === null) {\r\n return ZComponentHelper.isVisible.call(this, this.data);\r\n } else {\r\n return this.componentProperties.isVisible;\r\n }\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n getIon_InvalidClass(form: FormGroup, data: ZField) {\r\n return ZComponentHelper.getIon_InvalidClass(form, data);\r\n }\r\n\r\n getClass(form: FormGroup, data: ZField) {\r\n return `${ZComponentHelper.getIon_InvalidClass(form, data)} ${data.DivClass}`;\r\n }\r\n\r\n public setData = (data: any) => {\r\n this.labelText = data;\r\n }\r\n}","/********** Angular **********/\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { DialItemClickEvent, FabAlign, FabPositionMode } from '@progress/kendo-angular-buttons';\r\n\r\n/********** Component & Service **********/\r\nimport { \r\n FieldService, ResourceApiService, WebApiService, WorkflowService,\r\n ZComponent, ZComponentHelper, ZComponentOutputEvent, ZComponentProperties, ZField, ZGroup\r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-zmfb',\r\n templateUrl: './zmfb.component.html',\r\n styleUrls: ['./zmfb.component.scss'],\r\n})\r\nexport class ZmfbComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n componentProperties = new ZComponentProperties();\r\n positionMode: FabPositionMode = 'fixed';\r\n bottomEnd: FabAlign = { vertical: 'bottom', horizontal: 'end' };\r\n items: Array<any> = [];\r\n dialOpen: boolean = false; \r\n isWorkflowButton: boolean = false;\r\n buttonColor: string = 'info';\r\n\r\n constructor(\r\n private fieldService: FieldService,\r\n private resourceApiService: ResourceApiService,\r\n private workflowService: WorkflowService\r\n ) { }\r\n\r\n/******************** Common function ********************/\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n this.data = this.getFirstzButton(this.group.fields);\r\n\r\n if (this.data) {\r\n if (!ZComponentHelper.isNullUndefinedEmpty(this.data.WorkflowCode)) {\r\n // handle as zWorkflowButton\r\n this.isWorkflowButton = true;\r\n this.loadWorkflowButton();\r\n }\r\n else {\r\n const field$ = this.fieldService.getFormFieldCode(\r\n this.data.Value,\r\n \"FormField\",\r\n null,\r\n null\r\n );\r\n\r\n\r\n try {\r\n field$.subscribe(data => {\r\n data.forEach((button: any) => {\r\n const label = this.getButtonLabel(button);\r\n\r\n const _isVisible = this.isBtnVisible(button.Visible);\r\n if (_isVisible) {\r\n this.items.push({\r\n label: label,\r\n icon: ZComponentHelper.getIcon(button.Icon),\r\n 'clickEvent': button.ClickEvent,\r\n 'click': (y) => {\r\n this.buttonClick(button);\r\n }\r\n });\r\n }\r\n });\r\n });\r\n } catch (error) {\r\n console.error(\"error: \", error);\r\n }\r\n }\r\n }\r\n }\r\n\r\n isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n\r\n isBtnVisible(fieldExpr) {\r\n if (fieldExpr !== false && !fieldExpr) {\r\n return true;\r\n }\r\n const v = ZComponentHelper.getGroupEvalValue.call(this, fieldExpr);\r\n return v;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n \r\n /******************** zButton ********************/\r\n private getFirstzButton(data: any[]) {\r\n // data.forEach(d => {\r\n for (let i = 0; i < data.length - 1; i++) {\r\n if (data[i].Type === \"zbuttons\" || data[i].Type === \"zworkflowbuttons\") {\r\n return data[i];\r\n } else {\r\n if (Array.isArray(data[i].Value)) {\r\n this.getFirstzButton(data[i].Value);\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n private getButtonLabel(button: any) { \r\n let buttonLabel = button.Label;\r\n if (!buttonLabel) {\r\n buttonLabel = button.Name;\r\n }\r\n\r\n let labelExpr = buttonLabel.match(/^{{.*}}$/gi);\r\n if (labelExpr) {\r\n labelExpr = labelExpr[0].slice(2, -2);\r\n const label = ZComponentHelper.getGroupValue(labelExpr, this.group);\r\n return label;\r\n } else {\r\n return buttonLabel;\r\n }\r\n }\r\n\r\n private buttonClick(button: any) { \r\n this.group.subject.next({\r\n type: \"buttonClick\",\r\n target: button.ClickEvent,\r\n data: null\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n public events: string[] = [];\r\n\r\n public onBlur(): void {\r\n //console.log('blur');\r\n }\r\n\r\n public onFocus(): void {\r\n if (this.isWorkflowButton) {\r\n this.loadWorkflowButton();\r\n }\r\n //console.log('focus');\r\n }\r\n\r\n public onOpen(e): void {\r\n this.dialOpen = true;\r\n console.log('open');\r\n }\r\n\r\n public onClose(e): void {\r\n this.dialOpen = false;\r\n console.log('close');\r\n }\r\n\r\n public onDialItemClick(e: DialItemClickEvent): void { \r\n e.item.click(); \r\n }\r\n\r\n /******************** zWorkflowButton ********************/\r\n // URL required\r\n // eslint-disable-next-line @typescript-eslint/naming-convention,no-underscore-dangle,id-blacklist,id-match\r\n e1wfs_wfcGetWorkflowButtonURL = this.resourceApiService.getURL(\"e1wfs_wfcGetWorkflowButtonURL\");\r\n // eslint-disable-next-line @typescript-eslint/naming-convention,no-underscore-dangle,id-blacklist,id-match\r\n e1wfs_wfc_getWorkflowInitialStatusURL = this.resourceApiService.getURL(\"e1wfs_wfc_getWorkflowInitialStatusURL\");\r\n // eslint-disable-next-line @typescript-eslint/naming-convention, no-underscore-dangle, id-blacklist, id-match\r\n e1wfs_wfc_getDocumentStatusURL = this.resourceApiService.getURL(\"e1wfs_wfc_getDocumentStatusURL\");\r\n\r\n\r\n private loadWorkflowButton() {\r\n // actionBtnList: Array<ZField>;\r\n this.items = [];\r\n\r\n // Get WFS_DocumentId if any.\r\n let documentId = null;\r\n if (this.group.zModel) {\r\n documentId = this.group.zModel['WFS_DocumentId'];\r\n }\r\n\r\n // Set the documentId to the service\r\n this.workflowService.appendWFS_DocumentsInfo(this.data.WorkflowCode, documentId);\r\n\r\n try {\r\n // Set param for field\r\n const field$ = this.workflowService.getWorkflowButtonsField(\r\n this.data.WorkflowCode,\r\n this.e1wfs_wfcGetWorkflowButtonURL,\r\n String(false)\r\n );\r\n\r\n field$.subscribe(data => {\r\n data.forEach((button: any) => {\r\n const label = this.getButtonLabel(button);\r\n const attributes = JSON.parse(button.Attributes);\r\n const buttonLabel = attributes.Label || label;\r\n const _isVisible = this.isBtnVisible(button.Visible);\r\n\r\n if (_isVisible) { \r\n this.items.push({\r\n label: buttonLabel,\r\n fieldAttribute: button,\r\n icon: ZComponentHelper.getIcon(attributes.Icon),\r\n 'clickEvent': button.ClickEvent,\r\n 'click': (y) => {\r\n this.workflowButtonClick(button);\r\n }\r\n });\r\n } \r\n //ZComponentHelper.collectWorkflowButton(this.group, this.data.WorkflowCode, buttonLabel, button, attributes, mappedInfo);\r\n });\r\n }); \r\n } catch (error) {\r\n console.error(\"error: \", error);\r\n }\r\n }\r\n\r\n workflowButtonClick(button: any) {\r\n // Type 1 == functional;\r\n // Type 2 == GOTO;\r\n const attributes = JSON.parse(button.Attributes);\r\n switch (button.TypeCode.toUpperCase()) {\r\n case \"FUNCTION\":\r\n console.log(\"Functional Button: \", button.Name);\r\n this.workflowService.functionalButton_OnClick(attributes, this.group);\r\n break;\r\n case \"GOTO\":\r\n console.log(\"GOTO Button: \", button.Name);\r\n this.workflowService.gotoButton_Onclick(button, this.data, attributes, this.group, false).subscribe(res => {\r\n this.loadWorkflowButton();\r\n if (res) {\r\n this.workflowService.triggerSendEmail(this.group).subscribe();\r\n }\r\n });\r\n break;\r\n default:\r\n console.log(\"Invalid Button Type. \", button.Name);\r\n break;\r\n }\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, Input, OnInit } from '@angular/core';\r\nimport { FormGroup, Validators } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n// import * as $ from 'jquery';\r\ndeclare var $: any;\r\n\r\n/********** Component & Service **********/\r\nimport { \r\n ZComponent, ZComponentHelper, ZComponentOutputEvent,\r\n ZGroup, ZField, ZComponentProperties\r\n} from \"mmhglobal-zcore\";\r\n\r\n\r\n@Component({\r\n selector: 'app-znumeric',\r\n templateUrl: './znumeric.component.html',\r\n styleUrls: ['./znumeric.component.scss'],\r\n})\r\nexport class ZnumericComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup; \r\n\r\n componentProperties = new ZComponentProperties();\r\n constructor() { }\r\n \r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n if (this.data.RightAlign) {\r\n var thisComponent = this;\r\n setTimeout(function () {\r\n // only available when popup is shown, get the element by class \r\n let numericTextbox = $(\"#\" + thisComponent.data.Value).find(\"input\");\r\n if (numericTextbox.length > 0) {\r\n numericTextbox[0].style.textAlign = \"right\";\r\n }\r\n }, 750);\r\n }\r\n // FormatOption can be \"#.00\\\\%\" | \"$#.000\" | \"#\"\r\n }\r\n\r\n valueHandler() {\r\n const dataValue = this.form.get(this.data.Value).value;\r\n if (dataValue != \"\") {\r\n var value: number = +dataValue;//the \"+\" converts string to number\r\n return value;\r\n }\r\n }\r\n \r\n onChange(value: any) { \r\n ZComponentHelper.setModelValue(this.data.Value, value, this.group);\r\n this.group.subject.next({\r\n type: \"onChange\",\r\n target: this.data.OnChange,\r\n event,\r\n data: { value: value, field: this.data }\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n const fc = this.group.form.controls[this.data.Value];\r\n status ? fc.enable() : fc.disable();\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n getIon_InvalidClass(form: FormGroup, data: ZField) {\r\n return ZComponentHelper.getIon_InvalidClass(form, data);\r\n }\r\n \r\n // Mobile View\r\n public getStyle(RightAlign: boolean) {\r\n let ngStyle = \"\";\r\n if (RightAlign) {\r\n ngStyle += \"right\";\r\n } else {\r\n ngStyle += \"left\";\r\n }\r\n return ngStyle;\r\n } \r\n\r\n public autocorrectHandler() {\r\n if (this.data.AutoCorrect) {\r\n return \"on\";\r\n }\r\n else {\r\n return \"off\";\r\n }\r\n }\r\n\r\n public inputmodeHandler() {\r\n return \"decimal\";\r\n }\r\n \r\n getKendoStyle() {\r\n const isReadOnly = (!!this.componentProperties.isReadOnlyField ? this.group[this.componentProperties.isReadOnlyField] : this.componentProperties.isReadOnly);\r\n \r\n if (isReadOnly) {\r\n return {\r\n \"margin\": \"7px 0 0 0\",\r\n \"width\": \"100%\",\r\n \"background-color\": \"#eaeaea\",\r\n \"color\": \"#545454\"\r\n };\r\n }\r\n else {\r\n return {\r\n \"margin\": \"7px 0 0 0\",\r\n \"width\": \"100%\"\r\n };\r\n }\r\n }\r\n}\r\n","\r\n/********** Angular **********/\r\nimport { Component, OnInit, OnDestroy, Input, ViewChild } from \"@angular/core\";\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\n\r\n/********** Ionic **********/\r\nimport { IonicSelectableComponent } from \"ionic-selectable\";\r\n\r\n/********** Plugin **********/\r\nimport { Subscription, Observable, of } from \"rxjs\";\r\nimport { delay } from 'rxjs/operators';\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n CacheService, ResourceApiService, WebApiService,\r\n ZComponent, ZComponentHelper, ZComponentOutputEvent,\r\n ZSelectMultipleTemplateParams, ZSelectPostApiParams,\r\n ZField, ZGroup, ZComponentProperties\r\n} from \"mmhglobal-zcore\";\r\n\r\n\r\n@Component({\r\n selector: \"app-zpostselectinput\",\r\n templateUrl: \"./zpostselectinput.component.html\",\r\n styleUrls: [\"./zpostselectinput.component.scss\"]\r\n})\r\nexport class ZpostselectinputComponent implements ZComponent, OnInit, OnDestroy {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n @ViewChild(\"selectComponent\", { static: true })\r\n selectComponent: IonicSelectableComponent;\r\n items: Array<any> = [];\r\n modelzData: Array<any>;\r\n infinitezData: Array<any> = [];\r\n infiniteSearchText = null;\r\n // subscription: Subscription;\r\n toggleSelectable = true;\r\n itemValueField: string = null;\r\n itemTextField: string = null;\r\n itemDataField: string = null;\r\n itemTemplate = \"{{item[itemTextField]}}\";\r\n infiniteScrollPageNo = 0;\r\n isLoading = true;\r\n componentProperties = new ZComponentProperties();\r\n private debounceSub: Subscription;\r\n dataInfo: {} = {\r\n \"itemsResourceURL\": \"\",\r\n \"optionFilters\": \"\",\r\n \"totalCount\": 0\r\n };\r\n\r\n constructor(\r\n private resourceApiService: ResourceApiService,\r\n private webApiService: WebApiService,\r\n private cacheService: CacheService\r\n ) { }\r\n\r\n ngOnDestroy(): void {\r\n // if (this.subscription) {\r\n // this.subscription.unsubscribe();\r\n // }\r\n if (this.debounceSub) {\r\n this.debounceSub.unsubscribe();\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.isLoading = true;\r\n\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n ZComponentHelper.setSelectMultipleTextValue(this.data.CCSelectOptions, this);\r\n\r\n const fieldValue = this.data.CCValue;\r\n let getzDataForzModel$: Observable<any>;\r\n if (this.data.HasInfiniteScroll && this.data.InfiniteScroll$\r\n && this.group.zModel && this.group.zModel[fieldValue]) {\r\n const recordId = this.group.zModel[fieldValue];\r\n getzDataForzModel$ = ZComponentHelper.getInfiniteData(null, '', this, recordId.toString());\r\n if (getzDataForzModel$) {\r\n getzDataForzModel$.subscribe((zdata) => {\r\n console.log(this.data.Name, ' - initial zData load: ', zdata);\r\n this.isLoading = false;\r\n });\r\n } else {\r\n this.isLoading = false;\r\n }\r\n if (!ZComponentHelper.isMobileScreen()) {\r\n this.handleFilter(null, true);\r\n }\r\n } else {\r\n if (this.data.CCOptionResourceURL) {\r\n this.lazyLoadDataOptions().subscribe(() => {\r\n this.isLoading = false;\r\n });\r\n } else {\r\n this.isLoading = false;\r\n }\r\n }\r\n\r\n }\r\n\r\n lazyLoadDataOptions(): Observable<any> {\r\n const resourceUrl = this.resourceApiService.getURL(\r\n this.data.CCOptionResourceURL\r\n );\r\n\r\n const filterParam = new ZSelectPostApiParams();\r\n filterParam.sorts = this.data.CCOptionSort;\r\n filterParam.columns = this.data.CCOptionColumns;\r\n filterParam.filters = this.data.CCOptionFilter;\r\n\r\n return ZComponentHelper.getDataOptions(\r\n this.data.CCOptionName,\r\n filterParam,\r\n this.group,\r\n resourceUrl,\r\n this.cacheService,\r\n this.webApiService,\r\n this.data['DisableCache']\r\n );\r\n }\r\n\r\n\r\n getItemsData() {\r\n if (this.data.HasInfiniteScroll) {\r\n return this.infinitezData;\r\n }\r\n const optionName = this.data.CCOptionName || this.itemDataField || 'group.zData.' + this.data.Name;\r\n if (Array.isArray(this.data.CCSelectOptions) && !this.group.zData[optionName.slice(12)]) {\r\n // return selectionOptions;\r\n // return this.data.SelectOptions;\r\n this.group.zData[optionName.slice(12)] = this.data.CCSelectOptions;\r\n this.itemDataField = optionName;\r\n }\r\n\r\n if (optionName.startsWith('zData.')) {\r\n // this.items = this.group.zData[optionName.slice(6)];\r\n return this.group.zData[optionName.slice(6)] || [];\r\n }\r\n if (optionName.startsWith('group.zData.')) {\r\n // this.items = this.group.zData[optionName.slice(12)];\r\n return this.group.zData[optionName.slice(12)] || [];\r\n }\r\n if (optionName.startsWith('group.')) {\r\n // this.items = this.group[optionName.slice(6)];\r\n return this.group[optionName.slice(6)] || [];\r\n }\r\n if (optionName) {\r\n // this.items = this.group[optionName];\r\n return this.group[optionName] || [];\r\n }\r\n console.warn(this.data.Name, ' - Invalid setting for OptionName: ', optionName);\r\n }\r\n\r\n private onChangeEvent(value: string) {\r\n if (this.data.HasInfiniteScroll && !!this.data.InfiniteScroll$) {\r\n const textField = this.itemTextField.toString();\r\n const valueField = this.itemValueField.toString();\r\n let zdataModel = [];\r\n if (value) {\r\n zdataModel = this.infinitezData.filter(x => x[valueField] === value);\r\n this.modelzData = zdataModel.slice();\r\n }\r\n if (this.itemDataField.startsWith('group.zData.')) {\r\n this.group.zData[this.itemDataField.slice(12)] = zdataModel;\r\n } else if (this.itemDataField.startsWith('group.')) {\r\n this.group[this.itemDataField.slice(6)] = zdataModel;\r\n }\r\n }\r\n\r\n this.group.subject.next({\r\n type: \"onChange\",\r\n target: this.data.CCOnChange,\r\n event,\r\n data: {value, field: this.data}\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n onValueChange(value: any) {\r\n // console.log(\"zselectmultiple (onValueChange): \", value);\r\n ZComponentHelper.setModelValue(this.data.CCValue, value, this.group);\r\n this.onChangeEvent(value);\r\n }\r\n\r\n onChange(event: { component: IonicSelectableComponent; value: any }) {\r\n console.log(\"zselectmultiple (onChange): \", event.value);\r\n ZComponentHelper.setModelValue(this.data.CCValue, event.value, this.group);\r\n const fc = this.form.controls[this.data.CCValue];\r\n this.handleClose();\r\n\r\n if (\r\n this.data.CCIsRequired &&\r\n (event.value === null || event.value.length === 0)\r\n ) {\r\n fc.setErrors({ required: true });\r\n } else {\r\n fc.setErrors(null);\r\n }\r\n\r\n this.onChangeEvent(event.value);\r\n }\r\n\r\n clearItems() {\r\n this.selectComponent.clear();\r\n this.selectComponent.close();\r\n }\r\n\r\n toggleItems() {\r\n this.selectComponent.toggleItems(this.toggleSelectable);\r\n this.toggleSelectable = !this.toggleSelectable;\r\n }\r\n\r\n confirmItems() {\r\n this.selectComponent.confirm();\r\n this.selectComponent.close();\r\n }\r\n\r\n onSearch(event: { component: IonicSelectableComponent; text: string }) {\r\n // console.log(\"At zselectmultiple.component (onSearch): \", event);\r\n const component = event.component;\r\n if (component) {\r\n component.startSearch();\r\n component.enableInfiniteScroll();\r\n }\r\n\r\n // if (this.subscription) {\r\n // this.subscription.unsubscribe();\r\n // }\r\n\r\n if (this.data.HasInfiniteScroll) {\r\n if (event.text !== null && event.text !== this.infiniteSearchText) {\r\n this.infiniteScrollPageNo = 0;\r\n }\r\n this.getInfiniteData(event);\r\n } else {\r\n this.infiniteScrollPageNo = 0;\r\n if (component) {\r\n component.items = [];\r\n }\r\n const params = {\r\n referId: null,\r\n pageNo: 0,\r\n pageSize: 15,\r\n sortColumnName: \"\",\r\n sortOrder: \"\",\r\n sortColumnNames: [],\r\n sortOrders: [],\r\n filterParams: [],\r\n parameters: \"\"\r\n };\r\n const searchFields = this.data.SearchFields\r\n ? this.data.SearchFields\r\n : this.itemTextField;\r\n const filteritems = ZComponentHelper.filterSearchItems(\r\n this.getItemsData(),\r\n // this.items,\r\n event.text,\r\n searchFields,\r\n params.pageNo,\r\n params.pageSize\r\n );\r\n if (component) {\r\n const items = component.items.concat(filteritems);\r\n component.items = items;\r\n component.endInfiniteScroll();\r\n component.endSearch();\r\n this.isLoading = false;\r\n }\r\n }\r\n }\r\n\r\n getInfiniteData(event: {\r\n component: IonicSelectableComponent;\r\n text: string;\r\n }) {\r\n ZComponentHelper.getInfiniteData(event.component, event.text, this);\r\n }\r\n\r\n handleFilter(value: any, justOneTime?: boolean) {\r\n if (this.debounceSub) {\r\n this.debounceSub.unsubscribe();\r\n }\r\n this.debounceSub = of([]).pipe(delay(500)).subscribe(() => {\r\n this.isLoading = true;\r\n this.onSearch({ component: null, text: value });\r\n // if (this.loadInfiniteDataSub) {\r\n // this.loadInfiniteDataSub.unsubscribe();\r\n // }\r\n // this.loadInfiniteDataSub = new Subject(false);\r\n // this.handleFilter(null);\r\n // interval(2000).pipe(takeUntil(this.loadInfiniteDataSub)).subscribe(() => {\r\n // this.onSearch({ component: null, text: value });\r\n // if (justOneTime) {\r\n // this.handleClose();\r\n // }\r\n // });\r\n });\r\n }\r\n\r\n handleOpen() {\r\n if (this.data.HasInfiniteScroll) {\r\n this.handleFilter(null);\r\n // // if (this.loadInfiniteDataSub) {\r\n // // this.loadInfiniteDataSub.unsubscribe();\r\n // // }\r\n // // this.loadInfiniteDataSub = new Subject();\r\n // // // this.handleFilter(null);\r\n // // interval(3000).pipe(takeUntil(this.loadInfiniteDataSub)).subscribe(() => {\r\n // this.handleFilter(null);\r\n // // });\r\n }\r\n }\r\n\r\n handleClose() {\r\n // if (this.data.HasInfiniteScroll) {\r\n // if (this.loadInfiniteDataSub) {\r\n // this.loadInfiniteDataSub.next(true);\r\n // // this.loadInfiniteDataSub.complete();\r\n // }\r\n // }\r\n }\r\n\r\n handleBlur() {\r\n // this.handleClose();\r\n }\r\n \r\n getItemTemplate(\r\n item: any,\r\n data: any,\r\n group: any,\r\n itemValueField: string,\r\n itemTextField: string\r\n ) {\r\n // ToDO: itemValueField and itemTextField\r\n if (this.data.ItemTemplate) {\r\n const getTemplateFunc = ZComponentHelper.getGroupEvalValue.call(\r\n this,\r\n this.data.ItemTemplate\r\n );\r\n return getTemplateFunc({\r\n item,\r\n data,\r\n group,\r\n itemValueField,\r\n itemTextField\r\n } as ZSelectMultipleTemplateParams);\r\n } else if (itemTextField) {\r\n return item[itemTextField];\r\n } else {\r\n // return item[itemTextField];\r\n return Object.values(item).join(\", \");\r\n }\r\n }\r\n\r\n getReadOnlyValue() {\r\n const readOnlyValue = ZComponentHelper.getGroupEvalValue.call(this, this.data.ReadOnly);\r\n if (typeof readOnlyValue === 'function') {\r\n const callFunc = readOnlyValue.bind(this.group.ctrlScope);\r\n return callFunc(this.group);\r\n }\r\n return readOnlyValue;\r\n }\r\n\r\n getGroupValue(value: string, group: ZGroup) {\r\n return ZComponentHelper.getGroupValue(value, group);\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n const fc = this.group.form.controls[this.data.Value];\r\n status ? fc.enable() : fc.disable();\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n if (ZComponentHelper.hasCCField(this.data.Type)) {\r\n ZComponentHelper.changeValidator(status, this.group, this.data.CCValue, this.componentProperties, Validators.required);\r\n }\r\n }\r\n\r\n isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n\r\n getIon_InvalidClass(form: FormGroup, data: ZField) {\r\n if (!form) {\r\n //debugger;\r\n }\r\n return ZComponentHelper.getIon_InvalidClass(form, data);\r\n }\r\n\r\n onAddItem(event: any) {\r\n const f = ZComponentHelper.getGroupEvalValue.call(this, this.data.OnAddItem);\r\n if (typeof f === 'function') {\r\n const callFunc = f.bind(this.group.ctrlScope);\r\n return callFunc();\r\n }\r\n console.warn('Invalid declaration of OnAddItem: ', f);\r\n return;\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { map, switchMap, tap } from 'rxjs/operators';\r\nimport { QueryBuilderConfig, QueryBuilderClassNames, QueryBuilderComponent } from 'angular2-query-builder';\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n FieldService, ZComponentHelper, ZComponentProperties, ZField, ZGroup,\r\n FontAweSomeService, DefaultPageSettingParams, WebApiService, ResourceApiService\r\n} from 'mmhglobal-zcore';\r\nimport { of } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'app-zquerybuilder',\r\n templateUrl: './zquerybuilder.component.html',\r\n styleUrls: ['./zquerybuilder.component.scss'],\r\n})\r\nexport class ZquerybuilderComponent implements OnInit {\r\n @ViewChild(QueryBuilderComponent, { static: false }) queryBuilder: QueryBuilderComponent;\r\n @Input() classNames: QueryBuilderClassNames;\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n //qbItems: Array<any> = [];\r\n qbItems = {};\r\n\r\n public componentProperties = new ZComponentProperties();\r\n public queryCtrl: any;\r\n public currentConfig: QueryBuilderConfig = {\r\n fields: {},\r\n allowEmptyRulesets: true\r\n };\r\n public allowRuleset: boolean = true;\r\n public allowCollapse: boolean= false;\r\n public persistValueOnFieldChange: boolean = false; \r\n public isDisabled: boolean = false;\r\n public rule: any;\r\n public value: any;\r\n private fields: any;\r\n\r\n constructor(\r\n private fieldService: FieldService,\r\n private resourceApiService: ResourceApiService,\r\n private webApiService: WebApiService\r\n ) {\r\n }\r\n \r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n \r\n if (this.data['AllowCollapse'] === true) {\r\n this.allowCollapse = this.data['AllowCollapse'];\r\n }\r\n\r\n if (this.data['AllowRuleset'] === false) {\r\n this.allowRuleset = this.data['AllowRuleset'];\r\n }\r\n\r\n this.fields = this.fieldService.getFormFieldCode(this.data.Value, \"FormField\", null, null); \r\n \r\n try {\r\n this.fields.subscribe(data => { \r\n data.forEach((field: any) => {\r\n // Handle Options\r\n let optionList = [];\r\n\r\n if (field.Type == 'category' || field.Type == 'multiselect') {\r\n if (field['ValueOptions']) {\r\n field['ValueOptions'].forEach((valueOption: any) => {\r\n optionList.push({\r\n name: valueOption.Name,\r\n value: valueOption.Value\r\n });\r\n });\r\n }\r\n else {\r\n const selectOptions = field['SelectOptions'];\r\n\r\n const param = Object.assign({}, DefaultPageSettingParams);\r\n param.pageSize = selectOptions['PageSize'];\r\n param.columns = selectOptions['Columns'];\r\n param.filters += selectOptions['Filters'];\r\n param.sortColumnName = selectOptions['SortColumnName'];\r\n param.sortOrder = selectOptions['SortOrder'];\r\n\r\n this.webApiService\r\n .httpPost$(this.resourceApiService.getPageUrl(selectOptions['ResourceURL']), param)\r\n .pipe(\r\n map((resp) => {\r\n resp.dataSet.forEach((item: any) => {\r\n optionList.push({\r\n name: item[selectOptions['Name']],\r\n value: item[selectOptions['Value']]\r\n });\r\n })\r\n\r\n this.qbItems[field.Value]['options'] = optionList\r\n })\r\n ).subscribe();\r\n }\r\n }\r\n\r\n // Default rule to display\r\n this.qbItems[field.Value] = {\r\n name: field.Name,\r\n value: field.Value,\r\n type: field.Type,\r\n operatorList: field['Operators'],\r\n options: optionList,\r\n nullable: field['IsNullable'],\r\n defaultValue: field['DefaultValue'] ? field['DefaultValue'] : null\r\n } \r\n });\r\n \r\n this.currentConfig = {\r\n fields: this.qbItems,\r\n allowEmptyRulesets: true\r\n };\r\n \r\n });\r\n\r\n // append default query if any.\r\n if (this.data['DefaultQuery']) {\r\n let defaultQueryValueString = ZComponentHelper.getGroupEvalValue.call(\r\n this,\r\n this.data['DefaultQuery'],\r\n this.group\r\n ); \r\n\r\n if (defaultQueryValueString) {\r\n this.setQueryValue(defaultQueryValueString);\r\n }\r\n }\r\n } catch (error) {\r\n console.error(\"error: \", error);\r\n } \r\n }\r\n \r\n public completeRule(isUndo: boolean, queryValue: any) {\r\n this.isDisabled = isUndo; \r\n const qbResultValueName = this.data.Type + '_' + this.data.Value;\r\n this.group[qbResultValueName] = this.queryBuilder.value \r\n\r\n if (queryValue) {\r\n this.group[qbResultValueName] = queryValue;\r\n }\r\n\r\n if (!isUndo) {\r\n this.group[qbResultValueName] = [];\r\n }\r\n\r\n if (this.group.zModel) {\r\n ZComponentHelper.setModelValue(this.data.Value, this.group[qbResultValueName], this.group);\r\n }\r\n\r\n if (this.data['OnApplyClick'] && !queryValue) {\r\n let callFunc = ZComponentHelper.getGroupEvalValue.call(\r\n this,\r\n this.data['OnApplyClick'],\r\n this.group\r\n );\r\n const newFunc = callFunc.bind(this);\r\n newFunc(this.group, this.group[qbResultValueName], this.fields);\r\n } \r\n }\r\n \r\n public bootstrapClassNames: QueryBuilderClassNames = {\r\n arrowIcon: 'fa fa-chevron-right px-2',\r\n button: 'btn',\r\n buttonGroup: 'btn-group',\r\n rightAlign: 'order-12 ml-auto',\r\n switchRow: 'd-flex px-2',\r\n switchGroup: 'd-flex align-items-center',\r\n switchRadio: 'custom-control-input',\r\n switchLabel: 'custom-control-label',\r\n switchControl: 'custom-control custom-radio custom-control-inline',\r\n row: 'row p-2 m-1',\r\n rule: 'border',\r\n ruleSet: 'border',\r\n invalidRuleSet: 'alert alert-danger',\r\n emptyWarning: 'text-danger mx-auto',\r\n operatorControl: 'form-control',\r\n operatorControlSize: 'col-auto pr-0',\r\n fieldControl: 'form-control',\r\n fieldControlSize: 'col-auto pr-0',\r\n entityControl: 'form-control',\r\n entityControlSize: 'col-auto pr-0',\r\n inputControl: 'form-control',\r\n inputControlSize: 'col-auto'\r\n };\r\n\r\n public conditionList: Array<string> = [\r\n \"AND\",\r\n \"OR\"\r\n ];\r\n\r\n public getOperators(defaultOperatorList: any, rule: any) {\r\n return this.qbItems[rule.field].operatorList ? this.qbItems[rule.field].operatorList : defaultOperatorList;\r\n }\r\n \r\n public getOptionList(optionsList: any, rule: any) {\r\n return this.qbItems[rule.field].options ? this.qbItems[rule.field].options : optionsList;\r\n }\r\n\r\n public setQueryValue(queryValueString: string) {\r\n if (queryValueString) {\r\n const defaultQueryValueJson = toQueryRule(JSON.parse(queryValueString));\r\n this.queryCtrl = defaultQueryValueJson;\r\n\r\n // default lock the query builder if there default query\r\n this.completeRule(true, defaultQueryValueJson);\r\n }\r\n }\r\n}\r\n\r\nexport interface QueryRule {\r\n condition: string;\r\n rules: QueryRule[];\r\n field: string;\r\n type: string;\r\n operator: string;\r\n value: string[];\r\n}\r\n\r\nexport function toQueryRule(queryBuilderModel: any): QueryRule {\r\n let rule = <QueryRule>{};\r\n if (queryBuilderModel.condition) {\r\n rule.condition = queryBuilderModel.condition;\r\n rule.rules = queryBuilderModel.rules.map(q => toQueryRule(q));\r\n } else {\r\n rule.field = queryBuilderModel.field;\r\n rule.type = queryBuilderModel.type;\r\n rule.operator = queryBuilderModel.operator;\r\n rule.value = queryBuilderModel.value instanceof Array\r\n ? queryBuilderModel.type === 'date' ? new Date(queryBuilderModel.value) : queryBuilderModel.value\r\n : [queryBuilderModel.type === 'date' ? new Date(queryBuilderModel.value) : queryBuilderModel.value];\r\n }\r\n return rule;\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, ViewChild, Input, ViewEncapsulation } from \"@angular/core\";\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { ExportOptions } from \"./zreport.config\";\r\nimport { TelerikReportViewerComponent } from \"@progress/telerik-angular-report-viewer\";\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n ResourceApiService, ZField, ZGroup, ZComponentProperties, ZComponentHelper\r\n} from \"mmhglobal-zcore\";\r\n\r\n\r\n// import * as $ from 'jquery';\r\ndeclare var $: any;\r\n\r\n@Component({\r\n selector: \"app-zreport\",\r\n templateUrl: \"./zreport.component.html\",\r\n styleUrls: [\"./zreport.component.scss\"],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ZreportComponent implements OnInit {\r\n constructor(private resourceApiService: ResourceApiService) { }\r\n\r\n @ViewChild(\"ReportViewer\")\r\n viewer: TelerikReportViewerComponent;\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n\r\n componentProperties = new ZComponentProperties();\r\n\r\n title = \"Report Viewer\";\r\n viewerContainerStyle = {\r\n position: \"relative\",\r\n width: \"100%\",\r\n height: \"800px\",\r\n [\"font-family\"]: \"ms sans serif\"\r\n };\r\n\r\n resourceURL = null;\r\n ReportSource = null;\r\n\r\n isVisible = true;\r\n\r\n paramToResizeReportViewer = false;\r\n public resizeReportView: Function;\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n this.resizeReportView = this.onPageReady.bind(this);\r\n\r\n this.resourceURL = this.resourceApiService.getURL(this.data.ResourceURL);\r\n\r\n if (!this.resourceURL) {\r\n this.resourceURL = this.resourceApiService.getURL('e1wfs_wfm_workflowMasterReportURL');\r\n //this.isVisible = false;\r\n }\r\n\r\n if (!!this.data.IsAutoGenerateReport) {\r\n this.ReportSource = ZComponentHelper.getGroupEvalValue.call(this, this.data.ReportSource);\r\n }\r\n }\r\n\r\n public generateReport() {\r\n const rs = this.group[\"ReportSource\"];\r\n this.resourceURL = rs['url'];\r\n this.viewer.setReportSource(rs);\r\n this.viewer.refreshReport();\r\n\r\n if (this.data['AutoResize']) {\r\n this.paramToResizeReportViewer = true;\r\n } else {\r\n this.paramToResizeReportViewer = false;\r\n }\r\n\r\n const thisComponent = this;\r\n const exportButton = $(\"#trv-main-menu-export-command\");\r\n exportButton.on(\"mouseover\", function () {\r\n // trigger to hide list, sometime element not loaded yet.\r\n setTimeout(function () {\r\n // ExportOptions.instance.exportOption(thisComponent);\r\n // ExportOptions.instance.hideUnwantedOptions();\r\n }, 300);\r\n });\r\n }\r\n\r\n ready(thisComponent: any) {\r\n // console.log(\"ready\");\r\n // ExportOptions.init(thisComponent);\r\n }\r\n\r\n viewerToolTipOpening(args: any) {\r\n // console.log(\"viewerToolTipOpening \" + args.toolTip.text);\r\n }\r\n\r\n onRenderingEnd(e, args): void {\r\n // Occurs after rendering the report.\r\n // ExportOptions.instance.update(e.target.reportSource().report);\r\n }\r\n\r\n exportBegin(args: any) {\r\n }\r\n\r\n exportEnd(args: any) {\r\n }\r\n\r\n onPageReady(e: any, args:any) {\r\n if (this.paramToResizeReportViewer) {\r\n var pageHeight = $(\".trv-pages-area .trv-page-wrapper\").height() + $(\".trv-nav\").outerHeight() + 20, // Calculate the report page height\r\n viewer = $(\"#reportViewer1\"),\r\n viewerHeight = viewer.height();\r\n\r\n if (viewerHeight !== pageHeight ) {\r\n viewer.height(pageHeight);\r\n var documentMapSplitter = $(\".trv-document-map-splitter\").data(\"kendoSplitter\");\r\n if (documentMapSplitter !==undefined) {\r\n documentMapSplitter.resize(true);\r\n }\r\n var parameterSplitter = $(\".trv-parameters-splitter\").data(\"kendoSplitter\");\r\n if (parameterSplitter !==undefined) {\r\n parameterSplitter.resize(true);\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","import { Component, OnInit, Input, ChangeDetectorRef, AfterViewInit } from \"@angular/core\";\r\nimport {\r\n ZComponent, ZComponentHelper, ZComponentOutputEvent,\r\n ZGroup, ZField, ZComponentProperties, StorageSessionService, AuthService\r\n} from \"mmhglobal-zcore\";\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\nimport {\r\n DateChangeEvent,\r\n SlotClickEvent,\r\n EventClickEvent,\r\n EventStyleArgs,\r\n SlotClassArgs\r\n} from \"@progress/kendo-angular-scheduler\";\r\nimport { of } from 'rxjs';\r\nimport { delay, take } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: \"app-zscheduler\",\r\n templateUrl: \"./zscheduler.component.html\",\r\n styleUrls: [\"./zscheduler.component.scss\"]\r\n})\r\nexport class ZschedulerComponent implements ZComponent, OnInit, AfterViewInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n @Input() ngStyle: { [klass: string]: any; }\r\n\r\n\r\n isLoading = true;\r\n events: any[] = [];\r\n selectedDate = new Date();\r\n local = {\r\n inProgress: false,\r\n ctrlScope: null\r\n };\r\n // selectedDate: Date = new Date();\r\n selectedViewIndex = 3;\r\n componentProperties = new ZComponentProperties();\r\n\r\n // eventFields: SchedulerModelFields = {\r\n // id: \"Id\",\r\n // title: \"Objective\",\r\n // description: \"Description\",\r\n // // startTimezone: 'StartTimezone',\r\n // start: \"Date_UTC\",\r\n // end: \"End_UTC\"\r\n // // endTimezone: 'EndTimezone',\r\n // // isAllDay: 'IsAllDay',\r\n // // recurrenceRule: 'RecurrenceRule',\r\n // // recurrenceId: 'RecurrenceID',\r\n // // recurrenceExceptions: 'RecurrenceException'\r\n // };\r\n\r\n constructor(\r\n private changeDetector: ChangeDetectorRef,\r\n private storageService: StorageSessionService,\r\n private authService: AuthService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n this.local.ctrlScope = this.group.ctrlScope;\r\n //this.selectedViewIndex = this.data.SelectedViewIndex || this.selectedViewIndex;\r\n //\r\n if (this.data['SaveFilter']) {\r\n this.setSchedulerSessionKey(this.group);\r\n this.getSchedulerSessionFilter(this.group);\r\n }\r\n this.getItems();\r\n }\r\n\r\n ngAfterViewInit() {\r\n //this.selectedViewIndex = this.data.SelectedViewIndex || this.selectedViewIndex;\r\n }\r\n\r\n getEventStyles = (args: EventStyleArgs) => {\r\n\r\n if(args && args.event && args.event.dataItem)\r\n {\r\n const BGColor=args.event.dataItem[\"backgroundColor\"];\r\n const BorderColor=args.event.dataItem[\"borderColor\"];\r\n\r\n if (BGColor && BorderColor) \r\n { return { backgroundColor: BGColor, bordercolor: BorderColor, color: \"white\" }; }\r\n else {\r\n return { backgroundColor: \"#ff7c73\", bordercolor: \"#ff7c73\" , color: \"white\" };\r\n }\r\n\r\n }\r\n }\r\n\r\n public getSlotClass = (args: SlotClassArgs) => {\r\n const hour = args.start.getHours();\r\n args.resources = this.events\r\n return {\r\n args\r\n };\r\n }\r\n\r\n getItems() {\r\n // if (this.isLoading) {\r\n // return [];\r\n // }\r\n // debugger;\r\n const v = this.data.Value;\r\n if (Array.isArray(v)) {\r\n return v;\r\n } else {\r\n const evalValue = ZComponentHelper.getGroupEvalValue.call(this, v);\r\n // debugger;\r\n if (evalValue) {\r\n this.events = evalValue;\r\n if (this.events) {\r\n this.isLoading = false;\r\n }\r\n } else {\r\n console.warn(\"Invalid field.Value setting \", this.data.Value);\r\n return [];\r\n }\r\n }\r\n }\r\n\r\n onDateChange(args: DateChangeEvent): void {\r\n\r\n // this.events = generateEvents(args.dateRange.start, 7);\r\n\r\n if (this.local.inProgress) {\r\n return;\r\n }\r\n\r\n //Set session values\r\n this.group[\"selectedDate\"] = args.selectedDate;\r\n\r\n console.log(\"zschedule component date-change selection: \", args.dateRange);\r\n // this.local.selectedDate = args.dateRange.start;\r\n this.group.subject.next({\r\n type: \"zscheduler-onDateChange\",\r\n target: this.data.CalendarOptions + \".dateClick\",\r\n event: args.dateRange\r\n } as ZComponentOutputEvent);\r\n // We're setting the events after the current change detection cycle\r\n // has completed, hence we need to trigger a new one.\r\n this.changeDetector.detectChanges();\r\n\r\n }\r\n\r\n onSlotDblClick({ sender, start, end, isAllDay }: SlotClickEvent): void {\r\n console.log(\r\n \"zscheduler component slot-double-click: \",\r\n sender,\r\n start,\r\n end,\r\n isAllDay\r\n );\r\n\r\n if (\r\n sender.selectedView.name === \"month\" ||\r\n sender.selectedView.name === \"week\"\r\n ) {\r\n this.local.inProgress = true;\r\n this.selectedViewIndex = 3;\r\n this.selectedDate = start;\r\n of([]).pipe(take(1), delay(1000)).subscribe(() => this.local.inProgress = false);\r\n }\r\n\r\n // this.group.subject.next({\r\n // Type: \"zscheduler-onSlotDblClick\",\r\n // Target: this.data.CalendarOptions + 'select',\r\n // event: { sender, start, end, isAllDay }\r\n // });\r\n // this.closeEditor(sender);\r\n // this.formGroup = this.formBuilder.group({\r\n // 'Start': [start, Validators.required],\r\n // 'End': [end, Validators.required],\r\n // 'StartTimezone': new FormControl(),\r\n // 'EndTimezone': new FormControl(),\r\n // 'IsAllDay': isAllDay,\r\n // 'Title': new FormControl(''),\r\n // 'Description': new FormControl(''),\r\n // 'RecurrenceRule': new FormControl(),\r\n // 'RecurrenceID': new FormControl()\r\n // });\r\n // sender.addEvent(this.formGroup);\r\n }\r\n\r\n onEventDblClick({ sender, event }: EventClickEvent): void {\r\n console.log(\"zscheduler component event-double-click: \", sender, event);\r\n\r\n // this.group.subject.next({\r\n // type: \"zscheduler-onEventDblClick\" + \".eventClick\",\r\n // target: this.data.CalendarOptions,\r\n // event: { sender, event }\r\n // } as ZComponentOutputEvent);\r\n\r\n // this.closeEditor(sender);\r\n // let dataItem = event.dataItem;\r\n // if (this.editService.isRecurring(dataItem)) {\r\n // sender.openRecurringConfirmationDialog(CrudOperation.Edit)\r\n // // The result will be undefined if the dialog was closed.\r\n // .pipe(filter(editMode => editMode !== undefined))\r\n // .subscribe((editMode: EditMode) => {\r\n // if (editMode === EditMode.Series) {\r\n // dataItem = this.editService.findRecurrenceMaster(dataItem);\r\n // }\r\n // this.formGroup = this.createFormGroup(dataItem);\r\n // sender.editEvent(dataItem, { group: this.formGroup, mode: editMode });\r\n // });\r\n // } else {\r\n // this.formGroup = this.createFormGroup(dataItem);\r\n // sender.editEvent(dataItem, { group: this.formGroup });\r\n // }\r\n\r\n if (this.data.OnItemClick) {\r\n\r\n //Restore session\r\n this.beforeSchedulerGetData(this.group);\r\n this.setSchedulerSessionFilter(this.group);\r\n\r\n const func = ZComponentHelper.getGroupEvalValue.call(this, this.data.OnItemClick);\r\n if (typeof func === 'function') {\r\n const callFunc = func.bind(this.group.ctrlScope);\r\n callFunc(event);\r\n }\r\n return;\r\n }\r\n\r\n\r\n }\r\n \r\n public setData = (gData: any) => {\r\n this.selectedViewIndex = gData || this.selectedViewIndex;\r\n //reset data\r\n this.getItems();\r\n\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n\r\n public setSchedulerSessionKey(group: ZGroup) {\r\n\r\n if (group[\"SchedulerStorageKey\"]) {\r\n return;\r\n }\r\n else {\r\n group[\"SchedulerStorageKey\"] = 'zgrid_' + group.resourceURL + '_' + this.data.Value + '::' + this.authService.e1Token.userName;\r\n }\r\n\r\n }\r\n\r\n public beforeSchedulerGetData(group: ZGroup) {\r\n console.warn(\"beforeDateRangeBinding triggered\");\r\n if (!group.beforeSchedulerGetData) {\r\n console.warn(\"group.beforeDateRangeBinding is undefined\");\r\n return of(true);\r\n }\r\n\r\n return group.beforeSchedulerGetData(group);\r\n }\r\n\r\n async setSchedulerSessionFilter(group: ZGroup) {\r\n\r\n if (!group[\"SchedulerStorageKey\"]) {\r\n return null;\r\n }\r\n const StorageKey = group[\"SchedulerStorageKey\"];\r\n\r\n let lstFilter: { [key: string]: string } = {};\r\n\r\n if (group && this.storageService && this.data['SaveFilter']) {\r\n\r\n //list of data for StateFilter and FilterParams\r\n lstFilter = {\r\n \"SelectedDate\": JSON.stringify(group[\"selectedDate\"])\r\n }\r\n //create session storage \r\n this.storageService.set(StorageKey, JSON.stringify(lstFilter));\r\n\r\n }\r\n\r\n }\r\n\r\n async getSchedulerSessionFilter(group: ZGroup) {\r\n\r\n if (!group[\"SchedulerStorageKey\"]) {\r\n return null;\r\n }\r\n const StorageKey = group[\"SchedulerStorageKey\"];\r\n\r\n if (this.storageService) {\r\n await this.storageService.get(StorageKey)\r\n .then(data => {\r\n if (!data || !data.value || data.value === \"null\") {\r\n return null;\r\n }\r\n else {\r\n const result = JSON.parse(data.value);\r\n this.selectedDate = new Date(JSON.parse(result[\"SelectedDate\"]));\r\n\r\n return data;\r\n }\r\n });\r\n }\r\n else { return null; }\r\n\r\n }\r\n\r\n}\r\n","\r\n/********** Angular **********/\r\nimport { Component, OnInit, Input, ViewChild, OnDestroy, AfterViewInit } from \"@angular/core\";\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\n\r\n/********** Ionic **********/\r\nimport { IonicSelectableComponent } from \"ionic-selectable\";\r\n\r\n/********** Plugin **********/\r\nimport { interval, throwError, Subscription, Observable, of, Subject, timer } from \"rxjs\";\r\nimport { catchError, tap, debounceTime, delay, timeInterval, takeUntil } from \"rxjs/operators\";\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n ResourceApiService, WebApiService, CacheService, ClickableIcons, ButtonList,\r\n ZComponent, ZComponentHelper, ZComponentOutputEvent,\r\n ZSelectMultipleTemplateParams, ZSelectPostApiParams, zSelectMultipleParams,\r\n ZGroup, ZField, ZComponentProperties, TooltipsInfoProperties \r\n} from \"mmhglobal-zcore\";\r\n\r\n\r\n@Component({\r\n selector: \"app-zselectmultiple\",\r\n templateUrl: \"./zselectmultiple.component.html\",\r\n styleUrls: [\"./zselectmultiple.component.scss\"]\r\n})\r\nexport class ZselectmultipleComponent implements ZComponent, OnInit, OnDestroy {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n @Input() iconList: ClickableIcons[];\r\n @Input() buttonList: ButtonList[];\r\n @ViewChild(\"selectComponent\") selectComponent: IonicSelectableComponent;\r\n\r\n public showTooltipsInfoIcon: boolean = false;\r\n public showTooltipsInfoBySide: boolean = false;\r\n public tooltipsInfo: TooltipsInfoProperties = null;\r\n public tooltipsDisplayText: string = null;\r\n public tooltipsDisplayIcon: any;\r\n items: Array<any> = [];\r\n modelzData: Array<any>;\r\n infinitezData: Array<any> = [];\r\n infiniteSearchText = null;\r\n // subscription: Subscription;\r\n toggleSelectable = true;\r\n itemValueField: string = null;\r\n itemTextField: string = null;\r\n itemDataField: string = null;\r\n itemTemplate = \"{{item[itemTextField]}}\";\r\n infiniteScrollPageNo = 0;\r\n isLoading = true;\r\n componentProperties = new ZComponentProperties();\r\n private debounceSub: Subscription;\r\n allowCustomValue = false;\r\n autoClose: boolean = true;\r\n dataInfo: {} = {\r\n \"itemsResourceURL\": \"\",\r\n \"optionFilters\": \"\",\r\n \"totalCount\": 0\r\n };\r\n\r\n // private loadInfiniteDataSub: Subject<boolean> = new Subject<boolean>();\r\n\r\n constructor(\r\n private resourceApiService: ResourceApiService,\r\n private webApiService: WebApiService,\r\n private cacheService: CacheService\r\n ) { }\r\n\r\n ngOnDestroy(): void {\r\n // if (this.subscription) {\r\n // this.subscription.unsubscribe();\r\n // }\r\n if (this.debounceSub) {\r\n this.debounceSub.unsubscribe();\r\n }\r\n }\r\n\r\n public virtual: any = {\r\n itemHeight: 28,\r\n pageSize: 15\r\n };\r\n\r\n ngOnInit() {\r\n this.isLoading = true;\r\n\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n ZComponentHelper.setSelectMultipleTextValue(this.data.SelectOptions, this);\r\n\r\n this.tooltipsInfo = this.data.TooltipsInfo;\r\n if (this.tooltipsInfo) {\r\n if ((this.tooltipsInfo.Icon != null || this.tooltipsInfo.Icon != undefined) && !this.isMobileScreen()) {\r\n this.showTooltipsInfoIcon = true;\r\n this.setTooltipsInfoIcon();\r\n }\r\n if (this.tooltipsInfo.SideBySide) {\r\n this.showTooltipsInfoBySide = true;\r\n }\r\n\r\n this.setTooltipsDisplayText();\r\n }\r\n\r\n // [Dropdownlist Multiple] - auto close menu when lose focus.\r\n if (this.data.AutoClose === false) this.autoClose = this.data.AutoClose;\r\n\r\n // Handle Clickable Icons\r\n this.iconList = this.data.ClickableIcons;\r\n if (this.iconList) {\r\n if (this.iconList.length > 0) {\r\n this.iconList.forEach((i: any) => {\r\n if (i.Tooltip === undefined) {\r\n i.Tooltip = \"\";\r\n } else {\r\n i.Tooltip = ZComponentHelper.getGroupEvalValue.call(this, i.Tooltip);\r\n }\r\n // Default position top. right | bottom | top | left\r\n if (i.Position === undefined) {\r\n i.Position = \"top\";\r\n }\r\n });\r\n }\r\n }\r\n\r\n // Handle Button beside dropdown\r\n this.buttonList = this.data.ButtonList;\r\n if (this.buttonList) {\r\n this.buttonList.forEach(button => {\r\n if (button.tooltip) {\r\n button.tooltip = ZComponentHelper.getGroupEvalValue.call(this, button.tooltip);\r\n }\r\n\r\n });\r\n }\r\n\r\n // dropdown configuration\r\n this.allowCustomValue = this.data.AllowCustomValue || false; // Allow enter text in dropdownbox\r\n const fieldValue = this.data.Value;\r\n const data = this.data;\r\n const zModel = this.group.zModel;\r\n\r\n /*\r\n * 4 Styles of declare the component�s option list data source.\r\n * Style #1 - Field.SelectOptions defined as an array of object that contain text and value.\r\n * Style #2 - Field.SelectOptions defined as a phase like �item.Id as item.Name for item in group.zData.ProjectOptions�.\r\n * Style #3 - Field.OptionResourceURL defined the name of resource server api.\r\n * Style #4 - Field.InfiniteScroll$ defined the method name as �group.getMoreDataAsScroll�.\r\n */\r\n\r\n if (data.HasInfiniteScroll && data.InfiniteScroll$) {\r\n // when infinitie scroll\r\n let recordId = null;\r\n if (zModel && zModel[fieldValue]) {\r\n // get zModel Value\r\n recordId = zModel[fieldValue].toString();\r\n }\r\n\r\n let getzDataForzModel$: Observable<any> = ZComponentHelper.getInfiniteData(null, '', this, recordId);\r\n if (getzDataForzModel$) {\r\n getzDataForzModel$.subscribe((zdata) => {\r\n console.log(data.Name, ' - initial zData load: ', zdata);\r\n\r\n if (this.group) {\r\n if (this.group.afterLoadzDataOptions) {\r\n this.group.afterLoadzDataOptions(this.group);\r\n }\r\n }\r\n\r\n this.isLoading = false;\r\n });\r\n } else {\r\n this.isLoading = false;\r\n }\r\n\r\n if (!ZComponentHelper.isMobileScreen()) {\r\n this.handleFilter(null, true);\r\n }\r\n }\r\n else {\r\n // Style #1, #2, #3\r\n const isRequired = ZComponentHelper.getGroupEvalValue.call(this, data.IsRequired);\r\n\r\n if (this.data.OptionResourceURL) {\r\n this.lazyLoadDataOptions().subscribe(res => {\r\n const optionData = res.dataSet ? res.dataSet : res;\r\n\r\n if (optionData && optionData.length === 1 && !this.data.DisableAutoFirstSelection) {\r\n this.autoSelectFirstOption(isRequired, optionData[0], fieldValue, zModel.Id);\r\n }\r\n\r\n if (this.group) {\r\n if (this.group.afterLoadzDataOptions) {\r\n this.group.afterLoadzDataOptions(this.group);\r\n }\r\n }\r\n\r\n this.isLoading = false;\r\n });\r\n }\r\n else {\r\n if (Array.isArray(this.data.SelectOptions) && this.data.SelectOptions) {\r\n //skip eval if selectoptions is exist\r\n }\r\n else {\r\n const optionData = ZComponentHelper.getGroupEvalValue.call(this, this.itemDataField);\r\n // append data via timeout after data is loaded.\r\n if (optionData && optionData.length === 1 && !this.data.DisableAutoFirstSelection) {\r\n const thisComponent = this;\r\n setTimeout(function () {\r\n thisComponent.autoSelectFirstOption(isRequired, optionData[0], fieldValue, thisComponent.group.zModel.Id);\r\n\r\n if (this.group) {\r\n if (this.group.afterLoadzDataOptions) {\r\n this.group.afterLoadzDataOptions(this.group);\r\n }\r\n }\r\n }, 100);\r\n }\r\n }\r\n this.isLoading = false;\r\n }\r\n }\r\n }\r\n\r\n // Auto select first option (if required & only 1 option)\r\n private autoSelectFirstOption(required: boolean, data: any, zModelPropertyName: string, id: any) {\r\n if (ZComponentHelper.isNullUndefinedEmpty(id) && required) {\r\n var optionId = data.Id;\r\n if (this.data.Multiple) {\r\n optionId = [optionId];\r\n }\r\n ZComponentHelper.setModelValue(zModelPropertyName, optionId, this.group);\r\n\r\n this.group.subject.next({\r\n type: \"onChange\",\r\n target: this.data.OnChange,\r\n event,\r\n data: { ['value']: optionId, field: this.data }\r\n } as ZComponentOutputEvent);\r\n\r\n this.form.markAsPristine();\r\n }\r\n }\r\n\r\n // Style #3\r\n lazyLoadDataOptions(): Observable<any> {\r\n const resourceUrl = this.resourceApiService.getURL(\r\n this.data.OptionResourceURL\r\n );\r\n\r\n const filterParam = new ZSelectPostApiParams();\r\n filterParam.sorts = this.data.OptionSort;\r\n filterParam.columns = this.data.OptionColumns;\r\n filterParam.filters = this.data.OptionFilter;\r\n\r\n return ZComponentHelper.getDataOptions(\r\n this.data.OptionName,\r\n filterParam,\r\n this.group,\r\n resourceUrl,\r\n this.cacheService,\r\n this.webApiService,\r\n this.data['DisableCache']\r\n );\r\n }\r\n\r\n // Style #4, used in ionic-selectable\r\n getInfiniteData(event: {\r\n component: IonicSelectableComponent;\r\n text: string;\r\n }) {\r\n ZComponentHelper.getInfiniteData(event.component, event.text, this);\r\n }\r\n\r\n getItemsData() {\r\n if (this.data.HasInfiniteScroll) {\r\n return this.infinitezData;\r\n }\r\n\r\n const optionName = this.data.OptionName || this.itemDataField || 'group.zData.' + this.data.Name;\r\n if (Array.isArray(this.data.SelectOptions) && !this.group.zData[optionName.slice(12)]) {\r\n // return selectionOptions;\r\n // return this.data.SelectOptions;\r\n this.group.zData[optionName.slice(12)] = this.data.SelectOptions;\r\n this.itemDataField = optionName;\r\n }\r\n\r\n if (optionName.startsWith('zData.')) {\r\n return this.group.zData[optionName.slice(6)] || [];\r\n }\r\n if (optionName.startsWith('group.zData.')) {\r\n return this.group.zData[optionName.slice(12)] || [];\r\n }\r\n if (optionName.startsWith('group.')) {\r\n return this.group[optionName.slice(6)] || [];\r\n }\r\n if (optionName) {\r\n return this.group[optionName] || [];\r\n }\r\n console.warn(this.data.Name, ' - Invalid setting for OptionName: ', optionName);\r\n }\r\n\r\n onSearch(event: { component: IonicSelectableComponent; text: string }) {\r\n // console.log(\"At zselectmultiple.component (onSearch): \", event);\r\n // event.component is for mobile only\r\n const component = event.component;\r\n if (component) {\r\n component.startSearch();\r\n component.enableInfiniteScroll();\r\n }\r\n\r\n if (this.data.HasInfiniteScroll) {\r\n // If search text, reset page to 0. Get infinite data\r\n if (event.text !== null && event.text !== this.infiniteSearchText) {\r\n this.infiniteScrollPageNo = 0;\r\n this.modelzData = [];\r\n }\r\n this.getInfiniteData(event);\r\n }\r\n else {\r\n // Reset scroll page, empty items\r\n this.infiniteScrollPageNo = 0;\r\n if (component) {\r\n component.items = [];\r\n }\r\n\r\n // Filter zData and push to items\r\n const params: zSelectMultipleParams = {\r\n referId: null,\r\n pageNo: 0,\r\n pageSize: 20,\r\n sortColumnName: \"\",\r\n sortOrder: \"\",\r\n sortColumnNames: [],\r\n sortOrders: [],\r\n filterParams: [],\r\n parameters: \"\"\r\n };\r\n\r\n const searchFields = this.data.SearchFields ? this.data.SearchFields : this.itemTextField;\r\n const filteritems = ZComponentHelper.filterSearchItems(\r\n this.getItemsData(),\r\n event.text,\r\n searchFields,\r\n params.pageNo,\r\n params.pageSize\r\n );\r\n if (component) {\r\n const items = component.items.concat(filteritems);\r\n component.items = items;\r\n component.endInfiniteScroll();\r\n component.endSearch();\r\n this.isLoading = false;\r\n }\r\n }\r\n }\r\n\r\n handleFilter(value: any, justOneTime?: boolean) {\r\n if (this.debounceSub) {\r\n this.debounceSub.unsubscribe();\r\n }\r\n this.debounceSub = of([]).pipe(delay(500)).subscribe(() => {\r\n this.isLoading = true;\r\n this.onSearch({ component: null, text: value });\r\n\r\n if(this.group){\r\n if (this.group.afterLoadzDataOptions) {\r\n this.group.afterLoadzDataOptions(this.group);\r\n }\r\n }\r\n\r\n // if (this.loadInfiniteDataSub) {\r\n // this.loadInfiniteDataSub.unsubscribe();\r\n // }\r\n // this.loadInfiniteDataSub = new Subject(false);\r\n // this.handleFilter(null);\r\n // interval(2000).pipe(takeUntil(this.loadInfiniteDataSub)).subscribe(() => {\r\n // this.onSearch({ component: null, text: value });\r\n // if (justOneTime) {\r\n // this.handleClose();\r\n // }\r\n // });\r\n });\r\n }\r\n\r\n handleOpen() {\r\n if (this.data.HasInfiniteScroll) {\r\n this.handleFilter(null);\r\n // // if (this.loadInfiniteDataSub) {\r\n // // this.loadInfiniteDataSub.unsubscribe();\r\n // // }\r\n // // this.loadInfiniteDataSub = new Subject();\r\n // // // this.handleFilter(null);\r\n // // interval(3000).pipe(takeUntil(this.loadInfiniteDataSub)).subscribe(() => {\r\n // // this.handleFilter(null);\r\n // // });\r\n }\r\n }\r\n\r\n handleClose() {\r\n // if (this.data.HasInfiniteScroll) {\r\n // if (this.loadInfiniteDataSub) {\r\n // this.loadInfiniteDataSub.next(true);\r\n // // this.loadInfiniteDataSub.complete();\r\n // }\r\n // }\r\n }\r\n\r\n handleBlur() {\r\n // this.handleClose();\r\n }\r\n\r\n getItemTemplate(\r\n item: any,\r\n data: any,\r\n group: any,\r\n itemValueField: string,\r\n itemTextField: string\r\n ) {\r\n // ToDO: itemValueField and itemTextField\r\n if (this.data.ItemTemplate) {\r\n const getTemplateFunc = ZComponentHelper.getGroupEvalValue.call(this, this.data.ItemTemplate);\r\n\r\n return getTemplateFunc({\r\n item,\r\n data,\r\n group,\r\n itemValueField,\r\n itemTextField\r\n } as ZSelectMultipleTemplateParams);\r\n } else if (itemTextField) {\r\n return item[itemTextField];\r\n } else {\r\n // return item[itemTextField];\r\n return Object.values(item).join(\", \");\r\n }\r\n }\r\n\r\n getReadOnlyValue() {\r\n const readOnlyValue = ZComponentHelper.getGroupEvalValue.call(this, this.data.ReadOnly);\r\n if (typeof readOnlyValue === 'function') {\r\n const callFunc = readOnlyValue.bind(this.group.ctrlScope);\r\n return callFunc(this.group);\r\n }\r\n return readOnlyValue;\r\n }\r\n\r\n getIsRequiredValue() {\r\n const IsRequiredValue = ZComponentHelper.getGroupEvalValue.call(this, this.data.IsRequired);\r\n if (typeof IsRequiredValue === 'function') {\r\n const callFunc = IsRequiredValue.bind(this.group.ctrlScope);\r\n return callFunc(this.group);\r\n\r\n }\r\n return IsRequiredValue;\r\n }\r\n\r\n getGroupValue(value: string, group: ZGroup) {\r\n return ZComponentHelper.getGroupValue(value, group);\r\n }\r\n\r\n getClass(form: FormGroup, data: ZField) {\r\n const ionInvalidClass = this.getIon_InvalidClass(form, data);\r\n return `${ionInvalidClass ? ionInvalidClass : ''} ${this.data.Class}`;\r\n }\r\n\r\n getIon_InvalidClass(form: FormGroup, data: ZField) {\r\n if (!form) {\r\n //debugger;\r\n }\r\n return ZComponentHelper.getIon_InvalidClass(form, data);\r\n }\r\n\r\n onAddItem(event: any) {\r\n const f = ZComponentHelper.getGroupEvalValue.call(this, this.data.OnAddItem);\r\n if (typeof f === 'function') {\r\n const callFunc = f.bind(this.group.ctrlScope);\r\n return callFunc();\r\n }\r\n console.warn('Invalid declaration of OnAddItem: ', f);\r\n return;\r\n }\r\n\r\n // Component basic function\r\n clearData() {\r\n ZComponentHelper.setModelValue(this.data.Value, \"\", this.group);\r\n }\r\n\r\n clearItems() {\r\n this.selectComponent.clear();\r\n this.selectComponent.close();\r\n }\r\n\r\n confirmItems() {\r\n this.selectComponent.confirm();\r\n this.selectComponent.close();\r\n }\r\n\r\n toggleItems() {\r\n this.selectComponent.toggleItems(this.toggleSelectable);\r\n this.toggleSelectable = !this.toggleSelectable;\r\n\r\n // Confirm items and close Select page\r\n // without having the user to click Confirm button.\r\n // this.confirm();\r\n }\r\n\r\n // Extra icon beside dropdown. Mainly for popup\r\n onIconClick(clickAction: string) {\r\n this.onNavigateTo(clickAction); \r\n }\r\n\r\n onNavigateTo(clickAction: string) {\r\n const n = ZComponentHelper.getGroupEvalValue.call(this, clickAction);\r\n if (n) {\r\n this.group.subject.next({\r\n type: 'ztext-onNavigateTo',\r\n target: clickAction,\r\n data: this.group.zModel[this.data.Value]\r\n } as ZComponentOutputEvent);\r\n }\r\n }\r\n\r\n // Disable Open On Focus\r\n disableOpenOnFocus(comboboxComponent: any) {\r\n if (this.data.DisableOpenOnFocus) {\r\n return null;\r\n }\r\n else {\r\n return comboboxComponent;\r\n }\r\n }\r\n\r\n // OnChange\r\n private onChangeEvent(value: string) {\r\n if (this.data.HasInfiniteScroll && !!this.data.InfiniteScroll$) {\r\n const textField = this.itemTextField.toString();\r\n const valueField = this.itemValueField.toString();\r\n let zdataModel = [];\r\n if (value) {\r\n zdataModel = this.infinitezData.filter(x => x[valueField] === value);\r\n this.modelzData = zdataModel.slice();\r\n }\r\n if (this.itemDataField.startsWith('group.zData.')) {\r\n this.group.zData[this.itemDataField.slice(12)] = zdataModel;\r\n } else if (this.itemDataField.startsWith('group.')) {\r\n this.group[this.itemDataField.slice(6)] = zdataModel;\r\n }\r\n }\r\n\r\n this.group.subject.next({\r\n type: \"onChange\",\r\n target: this.data.OnChange,\r\n event,\r\n data: { value, field: this.data }\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n onValueChange(value: any) {\r\n // console.log(\"zselectmultiple (onValueChange): \", value);\r\n ZComponentHelper.setModelValue(this.data.Value, value, this.group);\r\n this.onChangeEvent(value);\r\n }\r\n\r\n onChange(event: { component: IonicSelectableComponent; value: any }) {\r\n console.log(\"zselectmultiple (onChange): \", event.value);\r\n ZComponentHelper.setModelValue(this.data.Value, event.value, this.group);\r\n const fc = this.form.controls[this.data.Value];\r\n this.handleClose();\r\n\r\n if (\r\n // this.data.IsRequired &&\r\n this.getIsRequiredValue() &&\r\n (event.value === null || event.value.length === 0)\r\n ) {\r\n fc.setErrors({ required: true });\r\n } else {\r\n fc.setErrors(null);\r\n }\r\n\r\n this.onChangeEvent(event.value);\r\n }\r\n\r\n // Common function\r\n public setEnable = (status: boolean) => {\r\n const fc = this.group.form.controls[this.data.Value];\r\n status ? fc.enable() : fc.disable();\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n public setLabelText(newText: string) {\r\n this.data.Label = newText;\r\n }\r\n\r\n isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n\r\n /********** TooltipsInfo **********/\r\n public setTooltipsInfoClass() {\r\n if (this.tooltipsInfo && !this.showTooltipsInfoIcon && this.showTooltipsInfoBySide) {\r\n return 'tooltipsinfo-text';\r\n }\r\n return 'tooltipsinfo-text-wide';\r\n }\r\n\r\n public setTooltipsInfoColor() {\r\n if (this.tooltipsInfo) {\r\n if (this.tooltipsInfo.TextColor) {\r\n return this.tooltipsInfo.TextColor;\r\n }\r\n }\r\n\r\n return \"#acacac\"; // default grey\r\n }\r\n\r\n public setTooltipsInfoIcon(displayIcon?: string) {\r\n if (this.showTooltipsInfoIcon) {\r\n if (this.tooltipsInfo.Icon != '') {\r\n if (displayIcon) {\r\n this.tooltipsDisplayIcon = displayIcon;\r\n }\r\n else {\r\n this.tooltipsDisplayIcon = this.tooltipsInfo.Icon;\r\n }\r\n }\r\n else {\r\n this.tooltipsDisplayIcon = 'question-circle'\r\n }\r\n }\r\n }\r\n\r\n public setTooltipsDisplayText(displayText?: string) {\r\n if (this.tooltipsInfo) {\r\n if (displayText) {\r\n this.tooltipsDisplayText = displayText;\r\n }\r\n else {\r\n this.tooltipsDisplayText = this.tooltipsInfo.DisplayText;\r\n }\r\n }\r\n else {\r\n this.tooltipsDisplayText = '<Display text error>';\r\n }\r\n }\r\n\r\n public setTooltipsInfoSideBySide() {\r\n if (this.tooltipsInfo) {\r\n if (this.showTooltipsInfoBySide && !this.showTooltipsInfoIcon ) {\r\n return 'ion-row divselectmultiple tooltipsinfo-right';\r\n }\r\n }\r\n return 'ion-row divselectmultiple';\r\n }\r\n \r\n public getFontAwesome(iconName: string) {\r\n return ZComponentHelper.getFontAwesome(iconName);\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input, ViewChild } from '@angular/core';\r\nimport { FormGroup, Validators } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { TabStripComponent } from '@progress/kendo-angular-layout';\r\n\r\n/********** Component & Service **********/\r\nimport { \r\n ZComponent, ZComponentHelper, ZTabItem, ZGroup, ZField, \r\n ZComponentProperties, AuthService \r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-ztab',\r\n templateUrl: './ztab.component.html',\r\n styleUrls: ['./ztab.component.scss'],\r\n})\r\nexport class ZtabComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n // private lastSelectedTabIndex: number;\r\n @ViewChild('kendoTabStripInstance') public tabstrip: TabStripComponent;\r\n public state = {\r\n lastSelectedTabIndex: 0,\r\n currentTabs: Array<ZTabItem>(),\r\n allTabs: Array<ZTabItem>()\r\n };\r\n\r\n componentProperties = new ZComponentProperties();\r\n\r\n constructor(\r\n private authService: AuthService\r\n ) {\r\n // this.lastSelectedTabIndex = 0;\r\n }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n ZComponentHelper.setFieldsDivClass(this.group._projectName, this.group.fieldName, this.data, this.authService);\r\n this.setCurrentTabs();\r\n this.restoreTabSelection();\r\n }\r\n\r\n private setCurrentTabs() {\r\n this.state.currentTabs = new Array<ZTabItem>();\r\n\r\n if (Array.isArray(this.data.Label)) {\r\n let validIcon = false;\r\n if (this.data.Icon && Array.isArray(this.data.Icon) && this.data.Icon.length === this.data.Label.length) {\r\n validIcon = true;\r\n }\r\n\r\n // eslint-disable-next-line guard-for-in\r\n for (const index in this.data.Label) {\r\n this.state.currentTabs.push(\r\n {\r\n Label: this.data.Label[index],\r\n Icon: validIcon ? this.data.Icon[index] : null,\r\n Visible: true,\r\n Index: parseInt(index)\r\n });\r\n }\r\n this.state.allTabs = this.state.currentTabs;\r\n\r\n if (this.data.TabVisibleFalseIndex) {\r\n this.setTabsVisible(this.data.TabVisibleFalseIndex, false);\r\n }\r\n\r\n } else if (this.data.TabItems) {\r\n let ind = 0;\r\n for (const field of this.data.TabItems) {\r\n this.state.currentTabs.push(\r\n {\r\n Label: field.Label as string,\r\n Icon: field.Icon ? field.Icon as string : null,\r\n Visible: ZComponentHelper.getGroupValue(field.Visible as string, this.group),\r\n Counter: typeof (field[\"Counter\"]) === \"string\" ? ZComponentHelper.getGroupValue(field[\"Counter\"] as string, this.group) : field[\"Counter\"],\r\n Index: ind++\r\n });\r\n }\r\n this.state.allTabs = this.state.currentTabs;\r\n }\r\n }\r\n\r\n private refreshCurrentTabs() {\r\n const previousStateTabs = this.state.allTabs;\r\n\r\n if (Array.isArray(this.data.Label)) {\r\n this.state.currentTabs = new Array<ZTabItem>();\r\n let validIcon = false;\r\n if (this.data.Icon && Array.isArray(this.data.Icon) && this.data.Icon.length === this.data.Label.length) {\r\n validIcon = true;\r\n }\r\n\r\n // eslint-disable-next-line guard-for-in\r\n for (const index in this.data.Label) {\r\n const previousTab = previousStateTabs.filter(x => x.Label == this.data.Label[index]);\r\n const previousTabVisible = previousTab.length > 0 ? previousTab[0].Visible : false;\r\n\r\n const isVisible = previousTabVisible;\r\n if (isVisible) {\r\n this.state.currentTabs.push(\r\n {\r\n Label: this.data.Label[index],\r\n Icon: validIcon ? this.data.Icon[index] : null,\r\n Visible: true,\r\n Index: parseInt(index)\r\n });\r\n }\r\n }\r\n } else {\r\n Object.assign(this.state.currentTabs, this.state.allTabs);\r\n }\r\n }\r\n\r\n ComponentIsVisible(field: ZField): any {\r\n return ZComponentHelper.ComponentIsVisible(field, this.group);\r\n }\r\n\r\n public selectTab = (index: number) => {\r\n this.state.lastSelectedTabIndex = index;\r\n }\r\n\r\n getSelectedTab(tabIndex: number) {\r\n return this.state.lastSelectedTabIndex === tabIndex;\r\n }\r\n\r\n public setSelectTab(tabIndex: number) {\r\n this.state.lastSelectedTabIndex = tabIndex;\r\n }\r\n\r\n restoreTabSelection(): void {\r\n if (this.data.AllowSaveState === false) {\r\n return;\r\n }\r\n\r\n let tabSelections: Map<string, number> = \"tabSelections\" in this.group ? this.group['tabSelections'] : null;\r\n if (tabSelections !== null && tabSelections.has(this.data.Name)) { // subsequent loads\r\n this.state.lastSelectedTabIndex = tabSelections.get(this.data.Name);\r\n\r\n } else if (tabSelections === null) { // first load of first tab\r\n tabSelections = new Map<string, number>();\r\n this.group['tabSelections'] = tabSelections;\r\n tabSelections.set(this.data.Name, 0);\r\n\r\n } else if (!tabSelections.has(this.data.Name)) { // first load of rest tabs\r\n tabSelections.set(this.data.Name, 0);\r\n }\r\n }\r\n\r\n public onTabSelect(e) {\r\n this.state.lastSelectedTabIndex = e.index;\r\n this.saveState(e);\r\n\r\n const func = ZComponentHelper.getGroupEvalValue.call(this, this.data.ClickEvent);\r\n if (typeof func === 'function') {\r\n const callFunc = func.bind(this.group.ctrlScope);\r\n callFunc(e);\r\n }\r\n }\r\n\r\n private saveState(e) {\r\n if (this.data.AllowSaveState === false) {\r\n return;\r\n }\r\n\r\n const tabSelections = this.group['tabSelections'] as Map<string, number>;\r\n tabSelections.set(this.data.Name, e.index);\r\n }\r\n\r\n public setTabsVisible = (tabIndexes: number[], status: boolean) => {\r\n if (this.state.allTabs.length <= Math.max.apply(null, tabIndexes) || Math.min.apply(null, tabIndexes) < 0) {\r\n console.log(\"Invalid Tab index : \" + tabIndexes.join(\",\"));\r\n return;\r\n }\r\n\r\n tabIndexes.forEach(index => {\r\n this.state.allTabs[index].Visible = status;\r\n });\r\n this.refreshCurrentTabs();\r\n }\r\n\r\n public setTabCounter = (tabIndex: number, counter: number | string) => {\r\n const labels = this.data.Label ? this.data.Label : this.data.TabItems;\r\n if (labels.length <= tabIndex || tabIndex < 0) {\r\n console.log(\"Invalid Tab index : \" + tabIndex);\r\n return;\r\n }\r\n\r\n this.state.currentTabs[tabIndex].Counter = counter;\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n getFontAwesome(iconName: string) {\r\n return ZComponentHelper.getFontAwesome(iconName);\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { FormGroup, Validators } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n ZGroup, ZField, ZComponentProperties,\r\n ZComponent, ZComponentHelper, ZComponentOutputEvent, ClickableIcons, AdornmentProperties, TooltipsInfoProperties\r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: \"app-ztext\",\r\n templateUrl: \"./ztext.component.html\",\r\n styleUrls: [\"./ztext.component.scss\"]\r\n})\r\nexport class ZtextComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n @Input() iconList: ClickableIcons[];\r\n @Input() adornmentList: any[];\r\n\r\n componentProperties = new ZComponentProperties();\r\n public showTooltipsInfoIcon: boolean = false;\r\n public showTooltipsInfoBySide: boolean = false;\r\n public tooltipsInfo: TooltipsInfoProperties = null;\r\n public tooltipsDisplayText: string = null;\r\n public tooltipsDisplayIcon: any;\r\n public showClearButton: any;\r\n public clearButtonIcon: string = \"time-circle\";\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n // this.fControl = this.form.controls[this.data.Value]; //.get(this.data.Value);\r\n // this.fControl = this.form.get(this.data.Value) as FormControl;\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n this.adornmentList = this.data.AdornmentList;\r\n\r\n if (this.data.OnClick && !this.data.ReadOnly) {\r\n this.componentProperties.isReadOnly = true;\r\n }\r\n\r\n if (!this.componentProperties.isReadOnly) {\r\n this.showClearButton = this.data.ClearButton;\r\n }\r\n\r\n this.tooltipsInfo = this.data.TooltipsInfo;\r\n if (this.tooltipsInfo) {\r\n if ((this.tooltipsInfo.Icon != null || this.tooltipsInfo.Icon != undefined) && !this.isMobileScreen()) {\r\n this.showTooltipsInfoIcon = true;\r\n this.setTooltipsInfoIcon();\r\n }\r\n if (this.tooltipsInfo.SideBySide) {\r\n this.showTooltipsInfoBySide = true;\r\n }\r\n this.setTooltipsDisplayText();\r\n }\r\n\r\n // Handle Clickable Icons\r\n this.iconList = this.data.ClickableIcons;\r\n if (this.iconList) {\r\n if (this.iconList.length > 0) {\r\n this.iconList.forEach((i: any) => {\r\n if (i.Tooltip === undefined) {\r\n i.Tooltip = \"\";\r\n } else {\r\n if (i.Tooltip.indexOf(\"group.\") !== -1) {\r\n i.Tooltip = ZComponentHelper.getGroupEvalValue.call(this, i.Tooltip);\r\n }\r\n }\r\n // Default position top. right | bottom | top | left\r\n if (i.Position === undefined) {\r\n i.Position = \"top\";\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n mapInputType(fieldType: string): string {\r\n switch (fieldType) {\r\n case \"date\":\r\n return \"date\";\r\n case \"ztext\":\r\n return \"text\";\r\n case \"number\":\r\n return \"number\";\r\n case \"currency\":\r\n return \"number\";\r\n case \"email\":\r\n return \"email\";\r\n case \"password\":\r\n return \"password\";\r\n case \"search\":\r\n return \"search\";\r\n case \"tel\":\r\n return \"tel\";\r\n case \"text\":\r\n return \"text\";\r\n case \"time\":\r\n return \"time\";\r\n case \"url\":\r\n return \"url\";\r\n default:\r\n return \"text\";\r\n }\r\n }\r\n\r\n mapInputMode(fieldType: string): string {\r\n switch (fieldType) {\r\n case \"date\":\r\n return \"none\";\r\n case \"ztext\":\r\n return \"text\";\r\n case \"number\":\r\n return \"decimal\";\r\n case \"currency\":\r\n return \"decimal\";\r\n case \"email\":\r\n return \"email\";\r\n case \"password\":\r\n return \"text\";\r\n case \"search\":\r\n return \"search\";\r\n case \"tel\":\r\n return \"tel\";\r\n case \"text\":\r\n return \"text\";\r\n case \"time\":\r\n return \"none\";\r\n case \"url\":\r\n return \"url\";\r\n default:\r\n return \"text\";\r\n }\r\n }\r\n\r\n getReadOnlyValue() {\r\n const readOnlyValue = ZComponentHelper.getGroupEvalValue.call(this, this.data.ReadOnly);\r\n if (typeof readOnlyValue === 'function') {\r\n return readOnlyValue();\r\n }\r\n return readOnlyValue;\r\n }\r\n\r\n isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n const fc = this.group.form.controls[this.data.Value];\r\n status ? fc.enable() : fc.disable();\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n getIon_InvalidClass(form: FormGroup, data: ZField) {\r\n return ZComponentHelper.getIon_InvalidClass(form, data);\r\n }\r\n\r\n public getStyle(RightAlign: boolean) {\r\n let ngStyle = \"\";\r\n if (RightAlign) {\r\n ngStyle += \"right\";\r\n } else {\r\n ngStyle += \"left\";\r\n }\r\n return ngStyle;\r\n }\r\n\r\n public setTextboxClass() {\r\n if (this.data.OnClick && !this.data.ReadOnly) {\r\n return \"notmobile-textbox-onfocus\";\r\n }\r\n return \"notmobile-textbox\";\r\n }\r\n\r\n /********** Textbox Event **********/\r\n public textboxOnClick(): void {\r\n //console.log('TextBox is focused: ', event);\r\n this.group.subject.next({\r\n type: \"ztext-OnClick\",\r\n target: this.data.OnClick,\r\n event,\r\n data: { value: event['OnClick'], field: this.data }\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n onChange(event: any) {\r\n // console.log('ztext.component - onChange: ', event.target.value); \r\n ZComponentHelper.setComponentModelValue(this.data, event.target.value, this.group);\r\n this.group.subject.next({\r\n type: \"onChange\",\r\n target: this.data.OnChange,\r\n event,\r\n data: { value: event.data, field: this.data }\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n /********** Icon Button **********/\r\n onIconClick(clickAction: string) {\r\n this.onNavigateTo(clickAction);\r\n }\r\n\r\n onNavigateTo(clickAction: string) {\r\n const n = ZComponentHelper.getGroupEvalValue.call(this, clickAction);\r\n if (n) {\r\n this.group.subject.next({\r\n type: 'ztext-onNavigateTo',\r\n target: clickAction,\r\n data: this.group.zModel[this.data.Value]\r\n } as ZComponentOutputEvent);\r\n }\r\n }\r\n\r\n\r\n /********** Adornment **********/\r\n public getAdornmentBackgroundColor(adornment: AdornmentProperties) {\r\n if (adornment.BackgroundColor) {\r\n return adornment.BackgroundColor + \"!important\";\r\n }\r\n\r\n return \"transparent !important\";\r\n }\r\n\r\n public adornmentLook(adornment: AdornmentProperties) {\r\n if (adornment.AdornmentLook) {\r\n return adornment.AdornmentLook;\r\n }\r\n\r\n return 'clear'\r\n }\r\n\r\n public onAdornmentClick(adornment: AdornmentProperties) {\r\n if (adornment.OnClick) {\r\n this.group.subject.next({\r\n type: 'ztext-adornment',\r\n target: adornment.OnClick,\r\n data: adornment\r\n } as ZComponentOutputEvent);\r\n }\r\n }\r\n\r\n public readOnlyOnClear() {\r\n ZComponentHelper.setModelValue(this.data.Value, null, this.group);\r\n }\r\n\r\n /********** TooltipsInfo **********/\r\n public setTooltipsInfoClass() {\r\n if (this.tooltipsInfo && !this.showTooltipsInfoIcon && this.showTooltipsInfoBySide) {\r\n return 'tooltipsinfo-text';\r\n }\r\n return 'tooltipsinfo-text-wide';\r\n }\r\n\r\n public setTooltipsInfoColor() {\r\n if (this.tooltipsInfo) {\r\n if (this.tooltipsInfo.TextColor) {\r\n return this.tooltipsInfo.TextColor;\r\n }\r\n }\r\n\r\n return \"#acacac\"; // default grey\r\n }\r\n\r\n public setTooltipsInfoIcon(displayIcon?: string) {\r\n if (this.showTooltipsInfoIcon) {\r\n if (this.tooltipsInfo.Icon != '') {\r\n if (displayIcon) {\r\n this.tooltipsDisplayIcon = displayIcon;\r\n }\r\n else {\r\n this.tooltipsDisplayIcon = this.tooltipsInfo.Icon;\r\n }\r\n }\r\n else {\r\n this.tooltipsDisplayIcon = 'question-circle'\r\n }\r\n }\r\n }\r\n\r\n public setTooltipsDisplayText(displayText?: string) {\r\n if (this.tooltipsInfo) {\r\n if (displayText) {\r\n this.tooltipsDisplayText = displayText;\r\n }\r\n else {\r\n this.tooltipsDisplayText = this.tooltipsInfo.DisplayText;\r\n }\r\n }\r\n else {\r\n this.tooltipsDisplayText = '<Display text error>';\r\n }\r\n }\r\n\r\n public setTooltipsInfoSideBySide() {\r\n if (this.tooltipsInfo) {\r\n if (this.showTooltipsInfoBySide && !this.showTooltipsInfoIcon && this.adornmentList.length < 1) {\r\n return 'ion-row divtextbox tooltipsinfo-right';\r\n }\r\n }\r\n return 'ion-row divtextbox';\r\n }\r\n\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from '@angular/core';\r\nimport { FormGroup, Validators } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n ZComponent, ZComponentHelper, ZComponentOutputEvent,\r\n ZField, ZGroup, ZComponentProperties\r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-ztextarea',\r\n templateUrl: './ztextarea.component.html',\r\n styleUrls: ['./ztextarea.component.scss'],\r\n})\r\nexport class ZtextareaComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n itemValueField: string = null;\r\n itemTextField: string = null;\r\n itemDataField: string = null;\r\n itemTemplate = \"{{item[itemTextField]}}\";\r\n infinitezData: Array<any> = [];\r\n infiniteSearchText = null;\r\n modelzData: Array<any>;\r\n\r\n componentProperties = new ZComponentProperties();\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n }\r\n\r\n\r\n public setEnable = (status: boolean) => {\r\n const fc = this.group.form.controls[this.data.Value];\r\n status ? fc.enable() : fc.disable();\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n onValueChange(value: any) {\r\n // console.log(\"zselectmultiple (onValueChange): \", value);\r\n ZComponentHelper.setModelValue(this.data.Value, value, this.group);\r\n this.onChangeEvent(value);\r\n }\r\n\r\n private onChangeEvent(value: string) {\r\n if (this.data.HasInfiniteScroll && !!this.data.InfiniteScroll$) {\r\n const textField = this.itemTextField.toString();\r\n const valueField = this.itemValueField.toString();\r\n let zdataModel = [];\r\n if (value) {\r\n zdataModel = this.infinitezData.filter(x => x[valueField] === value);\r\n this.modelzData = zdataModel.slice();\r\n }\r\n if (this.itemDataField.startsWith('group.zData.')) {\r\n this.group.zData[this.itemDataField.slice(12)] = zdataModel;\r\n } else if (this.itemDataField.startsWith('group.')) {\r\n this.group[this.itemDataField.slice(6)] = zdataModel;\r\n }\r\n }\r\n\r\n\r\n this.group.subject.next({\r\n type: \"onChange\",\r\n target: this.data.OnChange,\r\n event,\r\n data: { value, field: this.data }\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n getReadOnlyValue() {\r\n const readOnlyValue = ZComponentHelper.getGroupEvalValue.call(this, this.data.ReadOnly, this.group);\r\n if (typeof readOnlyValue === 'function') {\r\n return readOnlyValue();\r\n }\r\n return readOnlyValue;\r\n }\r\n\r\n isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n\r\n getIon_InvalidClass(form: FormGroup, data: ZField) {\r\n return ZComponentHelper.getIon_InvalidClass(form, data);\r\n }\r\n\r\n getClass(form: FormGroup, data: ZField) {\r\n const ionInvalidClass = this.getIon_InvalidClass(form, data);\r\n return `${ionInvalidClass ? ionInvalidClass : ''} ${this.data.Class}`;\r\n }\r\n\r\n onClick() {\r\n if (this.data.OnItemClick) {\r\n this.group.subject.next({\r\n type: \"ztextarea-onClick\",\r\n target: this.data.OnItemClick,\r\n data: this.form.value\r\n } as ZComponentOutputEvent);\r\n }\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input, OnDestroy } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n ZField, ZGroup, ZComponentProperties,\r\n ZComponent, ZComponentHelper\r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-ztexteditor',\r\n templateUrl: './ztexteditor.component.html',\r\n styleUrls: ['./ztexteditor.component.scss'],\r\n})\r\nexport class ZtexteditorComponent implements ZComponent, OnInit, OnDestroy {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n componentProperties = new ZComponentProperties();\r\n private widthReduce: number;\r\n private heightReduce: number;\r\n public value = \"\";\r\n labelText = \"\";\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n this.widthReduce = this.data.WidthReduce || 60;\r\n this.heightReduce = this.data.HeightReduce || 560;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n getIon_InvalidClass(form: FormGroup, data: ZField) {\r\n return ZComponentHelper.getIon_InvalidClass(form, data);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n\r\n }\r\n\r\n getCompStyle() {\r\n return {\r\n \"height.px\": this.getCompHeight(),\r\n \"width.px\": window.innerWidth - this.widthReduce\r\n }\r\n }\r\n\r\n private getCompHeight() {\r\n const h = window.innerHeight - this.heightReduce;\r\n return (h < 250) ? 250 : h;\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input, ViewChild, ElementRef, AfterViewInit } from \"@angular/core\";\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport {\r\n TreeItemDropEvent,\r\n TreeItemDragEvent\r\n} from \"@progress/kendo-angular-treeview\";\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n ZComponent, ZComponentHelper, ZComponentOutputEvent, ZComponentProperties,\r\n ZField, ZGroup, ZTreeTemplateParams\r\n} from \"mmhglobal-zcore\";\r\n\r\n@Component({\r\n selector: \"app-ztree\",\r\n templateUrl: \"./ztree.component.html\",\r\n styleUrls: [\"./ztree.component.scss\"]\r\n})\r\nexport class ZtreeComponent implements ZComponent, OnInit, AfterViewInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n @ViewChild(\"nodetemplate\", { static: true }) nodetemplate: ElementRef;\r\n items: Array<any> = [];\r\n originalItemList: any = null;\r\n // modelzData: Array<any>;\r\n // modelName: string;\r\n // dataSet: any[] = null;\r\n isNodeDrop = false;\r\n private nodeCounter = 1;\r\n private clickActName = null;\r\n public state = { expandedkeys: [] };\r\n public itemIndex = [];\r\n public selectedKeys: any[] = [];\r\n public absoluteText: boolean = false;\r\n\r\n componentProperties = new ZComponentProperties();\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n if (this.data.TreeviewExpandAll) {\r\n this.expandAll();\r\n }\r\n\r\n // fix text align issue\r\n if (this.data.OnAddNode || this.data.OnRemoveNode) {\r\n this.absoluteText = true; \r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n // const componentId = ZComponentHelper.getComponentId(this.data);\r\n // this.group.zComponents[componentId] = this;\r\n ZComponentHelper.registerComponent(this);\r\n }\r\n\r\n getItems() {\r\n // if (this.modelName) {\r\n // return this.group[this.modelName];\r\n // }\r\n const fieldValue = this.data.Value;\r\n if (fieldValue) {\r\n this.nodeCounter = 1;\r\n const fValue = ZComponentHelper.getGroupEvalValue.call(this, this.data.Value);\r\n return fValue;\r\n } else {\r\n console.warn('ztree field Value is not set correctly. ', fieldValue);\r\n }\r\n // if (fieldValue && fieldValue.startsWith('group.')) {\r\n // // const newDataSet = JSON.parse(JSON.stringify(this.dataSet));\r\n // const name = fieldValue.slice(6);\r\n // this.nodeCounter = 1;\r\n // // this.group[name] = this.setValuePropToNullAtLeafLeave(this.group[name]);\r\n // this.modelName = name;\r\n // return this.group[name];\r\n // } else {\r\n // console.warn('ztree field Value is not set correctly. ', fieldValue);\r\n // }\r\n }\r\n\r\n public isExpanded = (dataItem: any, index: string) => {\r\n // console.log(index);\r\n return this.state.expandedkeys.indexOf(index) > -1;\r\n // return true;\r\n }\r\n\r\n public expandNode = (field:string, value: string, setAsSelected: boolean) => {\r\n this.itemIndex = [];\r\n const node = this.getItems();\r\n\r\n this.searchNodeIndex(node, value, '', field);\r\n\r\n const index = this.itemIndex;\r\n if (setAsSelected) {\r\n this.selectedKeys = index;\r\n }\r\n const indexArr = [];\r\n index.forEach((i:any) => {\r\n const arr = i.split('_');\r\n let indexs = \"\";\r\n arr.forEach((x:any) => {\r\n indexs = indexs.concat(\"_\").concat(x);\r\n indexArr.push(indexs.substring(1));\r\n })\r\n });\r\n this.state.expandedkeys = this.state.expandedkeys.concat(indexArr);\r\n }\r\n\r\n public collapseNode = (field:string, value: string, collapseParent: boolean) => {\r\n this.itemIndex = [];\r\n const node = this.getItems();\r\n\r\n this.searchNodeIndex(node, value, '', field);\r\n\r\n const index = this.itemIndex;\r\n let indexArr = [];\r\n if (collapseParent) {\r\n index.forEach((i:any) => {\r\n const arr = i.split('_');\r\n let indexs = \"\";\r\n arr.forEach((x:any) => {\r\n indexs = indexs.concat(\"_\").concat(x);\r\n indexArr.push(indexs.substring(1));\r\n })\r\n });\r\n } else {\r\n indexArr = index;\r\n }\r\n\r\n this.state.expandedkeys = this.state.expandedkeys.filter(v => {\r\n return !indexArr.includes(v);\r\n });\r\n }\r\n\r\n public searchNodeIndex(node: any, value: string, key: string, field: string) {\r\n if (key) {\r\n key = key + '_';\r\n }\r\n node.forEach((d: any, i: number) => {\r\n if (d[field] === Number(value) || d[field] === value) {\r\n this.itemIndex = this.itemIndex.concat(key + '' + i);\r\n }\r\n if (Array.isArray(d.Value)) {\r\n const k = key + '' + i;\r\n this.searchNodeIndex(d.Value, value, k, field);\r\n }\r\n });\r\n }\r\n\r\n public expandAll = () => {\r\n const node = this.getItems();\r\n if (node) {\r\n this.expandAllNode(node, '');\r\n } \r\n }\r\n\r\n public collapseAll = () => {\r\n this.state.expandedkeys = [];\r\n }\r\n\r\n private expandAllNode(node: any, key: string) {\r\n if (key) {\r\n key = key + '_';\r\n }\r\n node.forEach((d: any, i: number) => {\r\n if (Array.isArray(d.Value)) {\r\n const k = key + '' + i;\r\n this.state.expandedkeys = this.state.expandedkeys.concat(k);\r\n this.expandAllNode(d.Value, k);\r\n }\r\n });\r\n }\r\n\r\n public handleCollapse(node) {\r\n this.state.expandedkeys = this.state.expandedkeys.filter(k => k !== node.index);\r\n }\r\n\r\n public handleExpand(node) {\r\n this.state.expandedkeys = this.state.expandedkeys.concat(node.index);\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n getTemplate(dataItem: any, data: ZField, group: ZGroup) {\r\n if (data.ItemTemplate) {\r\n const getTemplateFunc = ZComponentHelper.getGroupEvalValue.call(\r\n this,\r\n data.ItemTemplate\r\n );\r\n if (!getTemplateFunc) {\r\n console.warn(\r\n \"The (\" +\r\n data.ItemTemplate +\r\n \") is not defined correctly. Value contains: \",\r\n getTemplateFunc\r\n );\r\n return;\r\n }\r\n\r\n return getTemplateFunc({\r\n dataItem,\r\n data,\r\n group\r\n } as ZTreeTemplateParams);\r\n } else {\r\n return Object.values(dataItem)\r\n .filter(data => typeof data === \"string\")\r\n .join(\", \");\r\n }\r\n }\r\n\r\n convertToTreeItems(dataSet: any[]) {\r\n const toTreeItems: any[] = [];\r\n const treeIndex: any = {};\r\n const pendingItems: any[] = [];\r\n dataSet.forEach((d: any) => {\r\n if (!d.ParentId) {\r\n toTreeItems.push(d);\r\n treeIndex[d.Id] = d;\r\n } else {\r\n if (treeIndex[d.ParentId]) {\r\n const parentItem = treeIndex[d.ParentId];\r\n if (!parentItem.Value) {\r\n parentItem.Value = [];\r\n }\r\n parentItem.Value.push(d);\r\n treeIndex[d.Id] = d;\r\n } else {\r\n pendingItems.push(d);\r\n }\r\n }\r\n });\r\n\r\n if (pendingItems.length > 0) {\r\n pendingItems.forEach((d: any) => {\r\n if (treeIndex[d.ParentId]) {\r\n const parentItem = treeIndex[d.ParentId];\r\n parentItem.Value.push(d);\r\n treeIndex[d.Id] = d;\r\n }\r\n });\r\n }\r\n\r\n return toTreeItems;\r\n }\r\n\r\n onSelectionChange(event: any) {\r\n let targetName: string;\r\n if (this.clickActName) {\r\n switch (this.clickActName) {\r\n case 'AddNode':\r\n targetName = this.data.OnAddNode;\r\n break;\r\n case 'RemoveNode':\r\n targetName = this.data.OnRemoveNode;\r\n break;\r\n }\r\n } else {\r\n targetName = this.data.OnItemClick;\r\n }\r\n this.clickActName = null;\r\n this.group.subject.next({\r\n type: \"ztree_onSelectionChange\",\r\n target: targetName,\r\n data: event.dataItem,\r\n event: event.index\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n onAddNode(event: any, dataItem: any, data: ZField, group: ZGroup) {\r\n this.clickActName = 'AddNode';\r\n // event.stopPropagation();\r\n // if (this.data.OnAddNode) {\r\n // const func = ZComponentHelper.getGroupEvalValue.call(this, this.data.OnAddNode);\r\n // if (typeof func === 'function') {\r\n // const callFunc = func.bind(this.group.ctrlScope);\r\n // callFunc(dataItem, data, group, event.index);\r\n // }\r\n // return;\r\n // }\r\n }\r\n\r\n onRemoveNode(event: any, dataItem: any, data: ZField, group: ZGroup) {\r\n this.clickActName = 'RemoveNode';\r\n }\r\n\r\n onEditNode(event: any) {\r\n if (this.data.OnEditNode) {\r\n const func = ZComponentHelper.getGroupEvalValue.call(this, this.data.OnEditNode);\r\n if (typeof func === 'function') {\r\n const callFunc = func.bind(this.group.ctrlScope);\r\n callFunc(event);\r\n }\r\n return;\r\n }\r\n }\r\n\r\n handleNodeDrop(event: TreeItemDropEvent): void {\r\n if(this.data.Draggable === false){\r\n event.setValid(false);\r\n return;\r\n }\r\n\r\n this.isNodeDrop = true;\r\n const dropHandler = ZComponentHelper.getGroupEvalValue.call(\r\n this,\r\n this.data.OnDrop\r\n );\r\n if (typeof dropHandler === \"function\") {\r\n const callFunc = dropHandler.bind(this);\r\n callFunc(event);\r\n }\r\n\r\n // prevent drop if attempting to add to file\r\n // if (isFile(event.destinationItem.item.dataItem.text) && event.dropPosition === DropPosition.Over) {\r\n // event.setValid(false);\r\n // }\r\n }\r\n\r\n handleNodeDragEnd(event: TreeItemDragEvent) {\r\n if (!this.isNodeDrop) {\r\n return;\r\n }\r\n this.isNodeDrop = false;\r\n const items = this.getItems();\r\n // console.log('Items: ', this.items);\r\n const target = [];\r\n this.updateChangeToDataSet(items, target);\r\n // this.dataSet = target;\r\n ZComponentHelper.setModelValue(this.data.Value, target, this.group);\r\n this.group.subject.next({\r\n type: \"ztree-onTreeNodeDragEnd\",\r\n target: this.data.OnChange,\r\n data: target\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n private updateChangeToDataSet(source: Array<any>, target: Array<any>) {\r\n source.forEach(d => {\r\n if (Array.isArray(d.Value)) {\r\n const t = JSON.parse(JSON.stringify(d));\r\n t.Value = [];\r\n target.push(t);\r\n this.updateChangeToDataSet(d.Value, t.Value);\r\n } else {\r\n const t = Object.assign({}, d);\r\n t.Value = t._DataValue;\r\n delete t._DataValue;\r\n target.push(t);\r\n }\r\n });\r\n }\r\n\r\n // #region search feature - filterable: true\r\n public handleFilter(value: string): void {\r\n if (this.items.length == 0) {\r\n this.items = ZComponentHelper.getGroupEvalValue.call(this, this.data.Value);\r\n if (this.originalItemList == null) {\r\n this.originalItemList = this.items.map(item => Object.assign({}, item));\r\n }\r\n }\r\n\r\n this.items = this.originalItemList.map(item => Object.assign({}, item));\r\n const target = this.search(this.items, value);\r\n const gridValue = this.filterPrefix(this.data.Value);\r\n this.group[gridValue] = target;\r\n }\r\n\r\n private filterPrefix(valueName: any) {\r\n if (valueName.startsWith('zData.')) {\r\n return valueName.slice(6);\r\n }\r\n if (valueName.startsWith('group.zData.')) {\r\n return valueName.slice(12);\r\n }\r\n if (valueName.startsWith('group.')) {\r\n return valueName.slice(6);\r\n }\r\n if (valueName) {\r\n return valueName;\r\n }\r\n }\r\n\r\n private search(items: any[], term: string): any[] {\r\n return items.reduce((acc, item) => {\r\n if (this.contains(item.Name, term)) {\r\n acc.push(item);\r\n } else if (item.Value && item.Value.length > 0) {\r\n const newItems = this.search(item.Value, term);\r\n\r\n if (newItems.length > 0) {\r\n var filterItem = item;\r\n filterItem.Value = newItems;\r\n acc.push(filterItem);\r\n }\r\n }\r\n return acc;\r\n }, []);\r\n }\r\n\r\n private contains(text: string, term: string): boolean {\r\n return text.toLowerCase().indexOf((term || \"\").toLowerCase()) >= 0;\r\n }\r\n // #endregion search feature - filterable: true\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input, OnDestroy } from \"@angular/core\";\r\nimport { FormControl, FormGroup, Validators } from \"@angular/forms\";\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { of, forkJoin, Observable, Subscription, Subject } from 'rxjs';\r\nimport { tap, switchMap } from 'rxjs/operators';\r\nimport { CellClickEvent } from '@progress/kendo-angular-treelist';\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n ZComponent, ZComponentHelper, ZComponentOutputEvent,\r\n ZField, ZGroup, ZComponentProperties, FieldService,\r\n WebApiService, AuthService\r\n} from \"mmhglobal-zcore\";\r\n\r\n\r\nexport interface ZTreeListColumn {\r\n field: string;\r\n title: string;\r\n width: number;\r\n visible: boolean | any;\r\n fieldType: string;\r\n navigateTo: string;\r\n command: any;\r\n class: any;\r\n footerTemplate: boolean;\r\n aggregateType: string;\r\n aggregateTitle: string;\r\n iconOnly?: boolean;\r\n}\r\n\r\nexport class ZTreeListOptions {\r\n constructor(\r\n public sortable?: boolean,\r\n public resizable?: boolean,\r\n public filterable?: boolean,\r\n public reorderable?: boolean,\r\n public columnMenu?: boolean,\r\n public scrollable?: boolean,\r\n public refresh?: boolean,\r\n public autoBind?: boolean,\r\n public dataSource?: string,\r\n public dataBound?: any,\r\n public idField?: string,\r\n public parentIdField?: string,\r\n public columns?: Array<any>,\r\n public aggregate?: any,\r\n public pageAble?: any,\r\n ) { }\r\n}\r\n\r\n@Component({\r\n selector: \"app-ztreelist\",\r\n templateUrl: \"./ztreelist.component.html\",\r\n styleUrls: [\"./ztreelist.component.scss\"],\r\n})\r\nexport class ZtreelistComponent implements ZComponent, OnInit, OnDestroy {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n // @ViewChild(ZTreeListBindingDirective, { static: false }) ztreelist: ZTreeListBindingDirective;\r\n ztreelist: any = null;\r\n subscription: Subscription;\r\n dataSource: string;\r\n idField = \"Id\";\r\n parentIdField = \"ParentId\";\r\n options: ZTreeListOptions = new ZTreeListOptions();\r\n componentProperties = new ZComponentProperties();\r\n fieldgridColVisible: any[];\r\n pageSize = 20;\r\n inlineEditedFormGroups: Array<any> = [];\r\n isLoading: boolean;\r\n treelistSubject: Subject<any> = new Subject<any>();\r\n // treelistSubject: Subject<any> = new Subject<any>();\r\n // subscription: Subscription;\r\n // ztreelist: any = null;\r\n // columns: any[];\r\n\r\n private widthReduce: number;\r\n\r\n private heightReduce: number;\r\n\r\n constructor(\r\n private fieldService: FieldService,\r\n private webapiService: WebApiService,\r\n private activatedRoute: ActivatedRoute,\r\n private router: Router,\r\n private authService: AuthService) { }\r\n // ngAfterViewInit(): void {\r\n // // this.ztreelist.setOptions({data: this.data, group: this.group});\r\n // }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n this.widthReduce = this.data.WidthReduce || 60;\r\n this.heightReduce = this.data.HeightReduce || 560;\r\n this.pageSize = this.data.PageSize || 20;\r\n if (!!this.data.Options) {\r\n this.setLocalOptions();\r\n } else {\r\n this.setFieldElementOptions();\r\n }\r\n \r\n }\r\n\r\n ngOnDestroy() {\r\n // if (this.subscription) {\r\n // this.subscription.unsubscribe();\r\n // }\r\n }\r\n\r\n getGridStyle() {\r\n // debugger;\r\n return {\r\n \"height.px\": this.getGridHeight(), // window.innerHeight - this.heightReduce, // 450,\r\n \"width.px\": window.innerWidth - this.widthReduce,\r\n }; // \"width.px\": this.innerWidth - 35\r\n }\r\n\r\n private getGridHeight() {\r\n const h = window.innerHeight - this.heightReduce;\r\n return h < 180 ? 180 : h;\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n const fc = this.group.form.controls[this.data.Value];\r\n status ? fc.enable() : fc.disable();\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n public setData = (gData: any) => {\r\n this.dataSource = gData;\r\n this.createFormControlsForInlineEdit(gData);\r\n if (gData && this.inlineEditedFormGroups && this.inlineEditedFormGroups.length > 0) {\r\n gData.forEach(data => {\r\n const fgVal = this.inlineEditedFormGroups.find(i => i[this.idField] === data[this.idField]);\r\n const fg = fgVal.Fg;\r\n if (fgVal && fg) {\r\n const ke = Object.keys(fg.controls);\r\n Object.keys(fg.controls).forEach(k => {\r\n const fc = fg.controls[k];\r\n if (fc) {\r\n fc.setValue(data[k]);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n public isButtonHidden(col: any, cellContain: any) {\r\n if (col.visible) {\r\n return ZComponentHelper.getGroupEvalValue.call(this, col.visible, cellContain.viewItem.data);\r\n }\r\n\r\n if (!col.hiddenParam || col.hiddenValue === 'undefined') {\r\n return false;\r\n }\r\n\r\n if (cellContain.viewItem.data[col.hiddenParam] === null) {\r\n return true;\r\n }\r\n\r\n if (cellContain.viewItem.data[col.hiddenParam] === col.hiddenValue) {\r\n return true;\r\n } else { return false; }\r\n }\r\n\r\n public buttonClick(button: any, cellContext: any) {\r\n if (button.edit) {\r\n button.edit(cellContext);\r\n } else {\r\n this.group.subject.next({\r\n type: \"buttonClick\",\r\n target: button.ClickEvent,\r\n data: cellContext\r\n } as ZComponentOutputEvent);\r\n }\r\n }\r\n\r\n public onNavigateTo(event: any, colSetting: any, rowData: any, cellData: string) {\r\n // debugger;\r\n // const n = colSetting.navigateTo.replace('/:id', cellData);\r\n event.stopPropagation();\r\n this.group.subject.next({\r\n type: 'zgrid-onNavigateTo',\r\n target: colSetting.navigateTo,\r\n data: cellData\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n public isColumnsVisible(fieldExpr) {\r\n if (fieldExpr !== false && !fieldExpr) {\r\n return true;\r\n }\r\n const v = ZComponentHelper.getGroupEvalValue.call(this, fieldExpr);\r\n return v;\r\n }\r\n\r\n private setLocalOptions() {\r\n const options: ZTreeListOptions = ZComponentHelper.getGroupValue(\r\n this.data.Options,\r\n this.group\r\n );\r\n if (!options) {\r\n console.warn(\"No initialise for Field.Options: \", this.data.Options);\r\n return;\r\n }\r\n this.options = options;\r\n this.options.idField = this.options.idField || this.idField;\r\n this.options.parentIdField = this.options.parentIdField || this.parentIdField;\r\n\r\n\r\n const _translationFullList = this.authService.SystemLocaleTranslation;\r\n //debugger;\r\n //const _translationFilteredList = _translationFullList ? _translationFullList.filter(x => x['ProjectName'] === projectName && x['ElementName'] === fieldName) : null;\r\n\r\n\r\n //if (this.options.columns && )\r\n //const translatedTitle = _translationFilteredList.find(x => x['PhraseKey'] === field.Name.toLowerCase());\r\n //if (translatedTitle) {\r\n // const _label = field.Label.toString().trim();\r\n //}\r\n\r\n if (\r\n this.options.dataSource &&\r\n typeof this.options.dataSource === \"string\"\r\n ) {\r\n if (this.options.dataSource.startsWith(\"group.\")) {\r\n this.dataSource = ZComponentHelper.getGroupValue(this.options.dataSource, this.group);\r\n } else {\r\n console.error(this.data.Name + \" - has invalid dataSource\");\r\n }\r\n } else {\r\n console.error(this.data.Name + \" - dataSource property is not declared.\");\r\n }\r\n }\r\n\r\n private setFieldElementOptions() {\r\n this.options.sortable = true;\r\n this.options.resizable = true;\r\n this.options.filterable = true;\r\n this.options.resizable = true;\r\n this.options.columnMenu = this.data.DisableGridColumnMenu ? false : true;\r\n this.options.scrollable = true;\r\n this.options.idField = this.data[\"idField\"] || this.idField;\r\n this.options.parentIdField = this.data[\"parentIdField\"] || this.parentIdField;\r\n this.options.columns = [];\r\n this.options.aggregate = [];\r\n this.options.pageAble = this.data.PageSize ? true : false;\r\n\r\n let zfields = [];\r\n this.fieldService.getFormFieldCode(this.data[\"ColumnFieldCode\"], \"FormField\", null, null).pipe(\r\n switchMap(fields => {\r\n zfields = fields;\r\n return this.getButtonsFromZButtons(fields);\r\n }),\r\n tap((buttons) => {\r\n this.setTreeListColumns(zfields, buttons);\r\n }),\r\n switchMap(() => {\r\n return this.getDataBinding();\r\n }),\r\n tap(data => {\r\n this.createFormControlsForInlineEdit(data);\r\n })\r\n ).subscribe(data => {\r\n if (data) {\r\n this.dataSource = data;\r\n }\r\n });\r\n }\r\n\r\n // const zbuttonFields = [] as Array<ZField>;\r\n // fields.forEach(field => {\r\n // if (field.Type === \"zbuttons\") {\r\n // let fieldColVisible = field.gridColVisible;\r\n // if (field.gridColVisible && field.gridColVisible.toString().startsWith('group.')) {\r\n // // field.gridColVisible = ZComponentHelper.getGroupValue(field.gridColVisible.toString(), this.group);\r\n // fieldColVisible = ZComponentHelper.getGroupValue(field.gridColVisible.toString(), this.group);\r\n // }\r\n // // if (field.gridColVisible === true) {\r\n // if (fieldColVisible === true) {\r\n // zbuttonFields.push(field);\r\n // }\r\n // }\r\n // });\r\n\r\n // if (zbuttonFields.length === 0) {\r\n // return of([]);\r\n // }\r\n // zbuttonFields.forEach(zbuttonField => {\r\n // zbuttonResult.push(\r\n // this.fieldService.getFormFieldCode(zbuttonField.Value, \"FormField\", null, null).pipe(\r\n // switchMap(buttons => {\r\n // return of({ zbuttonField, buttons });\r\n // }))\r\n // );\r\n // });\r\n\r\n private getButtonsFromZButtons(fields: Array<ZField>): Observable<any> {\r\n const buttonCmd = [];\r\n const zbuttonResult = [];\r\n fields.forEach(field => {\r\n if (field.Type === \"zbuttons\" && ZComponentHelper.getGroupValue(field.gridColVisible as string, this.group)) {\r\n zbuttonResult.push(\r\n this.fieldService.getFormFieldCode(field.Value, \"FormField\", null, null).pipe(\r\n switchMap(buttons => {\r\n return of({ field, buttons });\r\n }))\r\n );\r\n }\r\n });\r\n\r\n if (zbuttonResult.length === 0) {\r\n return of([]);\r\n }\r\n\r\n return forkJoin(zbuttonResult).pipe(\r\n tap(resp => {\r\n resp.forEach(zbuttonsArray =>\r\n zbuttonsArray[\"buttons\"].forEach((button: any) => {\r\n buttonCmd.push({\r\n zbuttonsName: zbuttonsArray[\"field\"].Value,\r\n name: button.Value,\r\n class: button.Class,\r\n text: button.Label,\r\n icon: button.Icon,\r\n visible: button.Visible,\r\n hiddenParam: button[\"hiddenParam\"],\r\n hiddenValue: button[\"hiddenValue\"],\r\n edit: button.edit,\r\n ClickEvent: button.ClickEvent,\r\n ShowLabel: button.ShowLabel,\r\n color: button.Color\r\n });\r\n })\r\n );\r\n }),\r\n switchMap(() => {\r\n return of(buttonCmd);\r\n })\r\n );\r\n }\r\n\r\n private setTreeListColumns(fields: Array<ZField>, buttons: any) {\r\n fields.forEach(field => {\r\n if (Array.isArray(field.Value)) {\r\n this.setTreeListColumns(field.Value, buttons);\r\n }\r\n if (ZComponentHelper.getGroupValue(field.gridColVisible as string, this.group) === true) {\r\n if (field.Type === \"zbuttons\") {\r\n this.insertCommand(field, buttons);\r\n } else {\r\n if (field.AggregateType && field.AggregateType !== \"\") {\r\n let aggregatetitle = \"\";\r\n if (field.AggregateType === \"sum\") {\r\n aggregatetitle = \"Total: \";\r\n } else {\r\n aggregatetitle = field.AggregateType + \": \";\r\n }\r\n this.insertFooterTemplateField(field, aggregatetitle);\r\n this.options.aggregate.push({\r\n field: field.Value,\r\n aggregate: field.AggregateType\r\n });\r\n } else {\r\n this.insertField(field);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n private insertField(field: ZField) {\r\n let colTitle = field.Name;\r\n if (colTitle.toString().startsWith('group.')) {\r\n colTitle = ZComponentHelper.getGroupValue(colTitle.toString(), this.group);\r\n }\r\n this.options.columns.push(\r\n Object.assign(field, {\r\n field: field.Value,\r\n title: colTitle,\r\n width: field.width,\r\n visible: true,\r\n fieldType: field.Type,\r\n navigateTo: field.NavigateTo,\r\n command: null,\r\n class: field.DivClass,\r\n footerTemplate: false,\r\n aggregateType: \"\",\r\n aggregateTitle: \"\",\r\n isEditableInGrid: field.IsEditableInGrid\r\n })\r\n );\r\n }\r\n\r\n private insertCommand(field: ZField, buttons: any) {\r\n let colTitle = field.Name;\r\n if (colTitle.toString().startsWith('group.')) {\r\n colTitle = ZComponentHelper.getGroupValue(colTitle.toString(), this.group);\r\n }\r\n this.options.columns.push({\r\n field: field.Name,\r\n title: colTitle,\r\n width: field.width,\r\n visible: field.Visible,\r\n fieldType: field.Type,\r\n navigateTo: field.NavigateTo,\r\n command: buttons.filter(x => x.zbuttonsName === field.Value),\r\n class: field.DivClass,\r\n footerTemplate: false,\r\n aggregateType: \"\",\r\n aggregateTitle: \"\",\r\n isEditableInGrid: field.IsEditableInGrid\r\n });\r\n }\r\n\r\n private insertFooterTemplateField(field: ZField, aggregatetitle: string) {\r\n let colTitle = field.Name;\r\n if (colTitle.toString().startsWith('group.')) {\r\n colTitle = ZComponentHelper.getGroupValue(colTitle.toString(), this.group);\r\n }\r\n this.options.columns.push({\r\n field: field.Value,\r\n title: colTitle,\r\n width: field.width,\r\n visible: true,\r\n fieldType: field.Type,\r\n navigateTo: field.NavigateTo,\r\n command: null,\r\n class: field.DivClass,\r\n footerTemplate: true,\r\n aggregateType: field.AggregateType,\r\n aggregateTitle: aggregatetitle,\r\n isEditableInGrid: field.IsEditableInGrid\r\n });\r\n }\r\n\r\n private getDataBinding(): Observable<any> {\r\n if (this.data.DataSource) {\r\n return of(ZComponentHelper.getGroupValue(this.data.DataSource, this.group));\r\n }\r\n\r\n const resourceUrl = this.getResouceURL();\r\n if (resourceUrl) {\r\n return this.webapiService.getApi(resourceUrl, null, null, null, null, null, true);\r\n }\r\n return of([]);\r\n }\r\n\r\n private getResouceURL() {\r\n return ZComponentHelper.getGroupValue(\r\n this.data.ResourceURL,\r\n this.group\r\n );\r\n }\r\n\r\n cellClickHandler(event: CellClickEvent) {\r\n if (!!this.data.DisableCellClickHandler) {\r\n return;\r\n }\r\n\r\n console.log(\"cellClick event: \", event);\r\n if (this.data.OnItemClick) {\r\n const func = ZComponentHelper.getGroupEvalValue.call(this, this.data.OnItemClick);\r\n if (typeof func === 'function') {\r\n const callFunc = func.bind(this.group.ctrlScope);\r\n callFunc(event);\r\n }\r\n return;\r\n }\r\n\r\n this.editModel(event.dataItem);\r\n }\r\n\r\n private editModel(dataItem: any) {\r\n if (this.data.EditClickURL) {\r\n // TODO:\r\n // debugger;\r\n // this.router.navigate([this.data.EditClickURL, dataItem.Id]);\r\n const colFields = ZComponentHelper.getGroupValue(this.data.ColumnFields, this.group);\r\n this.group.subject.next({\r\n type: \"zgrid-cellClick\",\r\n target: this.data.EditClickURL,\r\n data: dataItem,\r\n columnFields$: colFields\r\n } as ZComponentOutputEvent);\r\n } else {\r\n this.router.navigate([this.group.editModelURL, dataItem.Id, 'edit'], {\r\n relativeTo: this.activatedRoute\r\n });\r\n // console.log('Path: ', this.activatedRoute['_routerState'].snapshot.url);\r\n // const currentPath = this.activatedRoute['_routerState'].snapshot.url;\r\n // this.router.navigate([currentPath + \"/\" + this.group.editModelURL, dataItem.Id]);\r\n }\r\n }\r\n\r\n private createFormControlsForInlineEdit(data: any) {\r\n if (this.options.columns.find(c => c.isEditableInGrid) === undefined || !data) {\r\n return;\r\n }\r\n\r\n this.inlineEditedFormGroups = [];\r\n\r\n data.forEach(d => {\r\n const items = {};\r\n this.options.columns.forEach(c => {\r\n items[c.field] = new FormControl(d[c.field]);\r\n });\r\n const formGroup = new FormGroup(items);\r\n this.inlineEditedFormGroups.push({ Id: d[this.idField], Fg: formGroup });\r\n });\r\n }\r\n\r\n public getInlineField(value: any) {\r\n return this.options.columns.find(x => x.Value === value);\r\n }\r\n\r\n public getInlineForm(dataItem: any) {\r\n return this.inlineEditedFormGroups.find(x => x.Id === dataItem[this.idField]).Fg;\r\n }\r\n\r\n public isInlineEditColVisible(dataItem: any, column: any) {\r\n const isVisible = dataItem[`${column.Value}_Visible`];\r\n return !(isVisible === false);\r\n }\r\n\r\n public getFormat(col: any) {\r\n let format = \"\";\r\n const formatArr = col.FormatOptions.split(\".\")\r\n let dp = 0;\r\n\r\n if (formatArr.length > 1) {\r\n dp = formatArr[1].length;\r\n }\r\n\r\n if (dp !== 0) {\r\n format = \"1.\" + dp + \"-\" + dp;\r\n }\r\n\r\n return format;\r\n }\r\n\r\n public setHeaderText(columnName: string, newHeaderTitle: string) {\r\n const gridColumns = this.options.columns;\r\n gridColumns.forEach((col: any) => {\r\n if (col.Name === columnName || col.field === columnName) {\r\n col.title = newHeaderTitle;\r\n }\r\n });\r\n }\r\n\r\n public getColClass(dataItem: any, col: any) {\r\n let ngClass = \"gridCell \";\r\n if (col.fieldType === 'number' || col.fieldType === 'currency' || col.fieldType === 'znumeric') {\r\n ngClass += \"rightAligned \";\r\n }\r\n\r\n if (dataItem[col.field + '_Class']) {\r\n ngClass += dataItem[col.field + '_Class'] + \" \";\r\n }\r\n\r\n if (col.Class) {\r\n ngClass += col.Class + \" \";\r\n }\r\n\r\n return ngClass;\r\n }\r\n\r\n setGridIsLoading(triggered: boolean) {\r\n this.isLoading = triggered;\r\n }\r\n\r\n onFilterChange(event: any): void {\r\n if (this.ztreelist) {\r\n // to be implement.\r\n }\r\n }\r\n\r\n private mapFilterOperator(operator: any) {\r\n switch (operator) {\r\n case \"eq\":\r\n return \"eq\";\r\n case \"neq\":\r\n return \"neq\";\r\n case \"lt\":\r\n return \"lt\";\r\n case \"lte\":\r\n return \"lte\";\r\n case \"gt\":\r\n return \"gt\";\r\n case \"gte\":\r\n return \"gte\";\r\n case \"startswith\":\r\n return \"startswith\";\r\n case \"endswith\":\r\n return \"endswith\";\r\n case \"isnull\":\r\n return \"isnull\";\r\n case \"isnotnull\":\r\n return \"isnotnull\";\r\n default:\r\n return \"==\";\r\n // eq, neq, isnull, isnotnull, endswith, startswith\r\n }\r\n }\r\n\r\n public filterable(value: any) {\r\n if (value === false) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public sortable(value: any) {\r\n if (value === false) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n ZComponent, ZComponentHelper, ZComponentProperties,\r\n ZField, ZGroup\r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-ztrendcard',\r\n templateUrl: './ztrendcard.component.html',\r\n styleUrls: ['./ztrendcard.component.scss'],\r\n})\r\nexport class ZtrendcardComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n isLoading = true;\r\n componentProperties = new ZComponentProperties();\r\n private title = \"Undefined\";\r\n private icon = \"address-card\";\r\n private color = \"#000000\";\r\n private value = 0;\r\n\r\n options = {\r\n title: this.title,\r\n icon: this.icon,\r\n color: this.color,\r\n value: this.value\r\n };\r\n\r\n// fieldElement01 = [\r\n// {\"Name\": \"myTrendCard1\",\r\n// \"Value\": \"group.myTrendCard01Value\",\r\n// \"Type\": \"ztrendcard\",\r\n// \"Visible\": \"true\",\r\n// \"DivClass\": \"col-md-3 col-lg-3\",\r\n// \"AppendDivClearFix\": false,\r\n// \"Title\": \"Upcoming Call/Follow-Up Call\",\r\n// \"Icon\": \"phone\",\r\n// \"Color\": \"#F7BC46\",\r\n// }];\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n if (this.data.Options) {\r\n const optionType = typeof (this.data.Options);\r\n if (optionType === 'object') {\r\n Object.assign(this.options, this.data.Options);\r\n } else if (optionType === 'string') {\r\n const optionValue = ZComponentHelper.getGroupEvalValue.call(this, this.data.Options);\r\n if (typeof (optionValue) === 'object') {\r\n Object.assign(this.options, optionValue);\r\n }\r\n }\r\n }\r\n\r\n this.getFieldDeclarationForSetup(this.data, this.options);\r\n this.isLoading = false;\r\n\r\n }\r\n\r\n private getFieldDeclarationForSetup(field: ZField, options: any) {\r\n options.title = ZComponentHelper.getGroupEvalValue.call(this, field.Title) || options.title;\r\n options.icon =ZComponentHelper.getGroupEvalValue.call(this, field.Icon) || options.icon;\r\n options.color =ZComponentHelper.getGroupEvalValue.call(this, field.Color) || options.color;\r\n options.value = ZComponentHelper.getGroupEvalValue.call(this, field.Value) || options.value;\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n // const fc = this.group.form.controls[this.data.Value];\r\n // status ? fc.enable() : fc.disable();\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n }\r\n\r\n public setData = (gData: any) => {\r\n if(!gData)\r\n {\r\n this.options.value=0;\r\n }\r\n this.getFieldDeclarationForSetup(this.data, this.options);\r\n }\r\n\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { FormControl, FormGroup, ValidatorFn, Validators } from \"@angular/forms\";\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { AsyncSubject, forkJoin, Observable, of } from \"rxjs\";\r\nimport { concatMap, map, tap } from \"rxjs/operators\";\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n ZComponent, ZField,\r\n AlertService, AuthService, FieldService, ResourceApiService, ToastService, WebApiService,\r\n ZGroup, ZComponentProperties, ZComponentHelper\r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-zudf',\r\n templateUrl: './zudf.component.html',\r\n styleUrls: ['./zudf.component.scss'],\r\n})\r\nexport class ZudfComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n formField: ZField[];\r\n\r\n componentProperties = new ZComponentProperties();\r\n initialDataValue: any;\r\n\r\n constructor(\r\n private alertService: AlertService,\r\n private authService: AuthService,\r\n private fieldService: FieldService,\r\n private resourceApiService: ResourceApiService,\r\n private toastService: ToastService,\r\n private webApiService: WebApiService\r\n ) { }\r\n \r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n // keep data Value\r\n this.initialDataValue = this.data.Value;\r\n\r\n if (ZComponentHelper.isNullUndefinedEmpty(this.data.Value)) {\r\n this.loadEmptyForm();\r\n }\r\n else {\r\n this.loadZudfForm(); \r\n }\r\n }\r\n\r\n private loadEmptyForm() {\r\n of(true).pipe(\r\n tap(() => {\r\n this.data.SubType = 'zudf';\r\n\r\n // change the value to the result field form \r\n this.data.Value = [];\r\n\r\n // change zudf to zdiv\r\n //this.data.Type = 'zdiv';\r\n }),\r\n tap(() => { \r\n if (!this.group['_zudf_' + this.data.Name]) {\r\n this.group['_zudf_' + this.data.Name] = new ZGroup;\r\n }\r\n\r\n const grp = this.group['_zudf_' + this.data.Name];\r\n \r\n grp.zModel = {};\r\n\r\n // create as new Form Group\r\n this.form = this.toFormGroup(this.data.Value);\r\n\r\n // set to zGroup scope\r\n grp.form = this.form;\r\n }),\r\n tap(() => {\r\n // set to formField for display\r\n this.formField = this.data.Value;\r\n })\r\n ).subscribe(() => {\r\n // set Field div class\r\n ZComponentHelper.setFieldsDivClass(this.group._projectName, this.group.fieldName, this.data, this.authService);\r\n });\r\n }\r\n\r\n private loadZudfForm() {\r\n of(true).pipe(\r\n concatMap(fieldElements => {\r\n const asyncSubject = new AsyncSubject<any>();\r\n this.fieldService.getFormFieldCode(this.data.Value, 'FormField', this, 'fields').pipe(\r\n map(formFieldResult => {\r\n // rename add prefix to all udf field to prevent duplicate from main form\r\n this.appendPrefix(formFieldResult, 'zudf_' + this.data.Name);\r\n\r\n // change the value to the result field form \r\n this.data.Value = formFieldResult;\r\n\r\n // change zudf to zdiv\r\n //this.data.Type = 'zdiv';\r\n\r\n // end subject\r\n asyncSubject.next(true);\r\n asyncSubject.complete();\r\n })\r\n ).subscribe();\r\n\r\n return asyncSubject.asObservable();\r\n }),\r\n tap(() => {\r\n if (!this.group['_zudf_' + this.data.Name]) {\r\n this.group['_zudf_' + this.data.Name] = new ZGroup;\r\n }\r\n\r\n const grp = this.group['_zudf_' + this.data.Name];\r\n\r\n grp.zModel = {};\r\n\r\n // create as new Form Group\r\n this.form = this.toFormGroup(this.data.Value);\r\n\r\n // set to zGroup scope\r\n grp.form = this.form;\r\n }),\r\n tap(() => {\r\n // set to formField for display\r\n this.formField = this.data.Value;\r\n })\r\n ).subscribe(() => {\r\n // set Field div class\r\n ZComponentHelper.setFieldsDivClass(this.group._projectName, this.group.fieldName, this.data, this.authService);\r\n\r\n // TODO: get saved record\r\n //this.getFormFieldzModel();\r\n\r\n // change back the data.Value\r\n if (this.data['DisableReplaceValue']) {\r\n this.data.Value = this.initialDataValue;\r\n }\r\n });\r\n }\r\n\r\n private getFormFieldzModel() {\r\n const form = this.group['_zudf_' + this.data.Name].form;\r\n const zModel = this.group['_zudf_' + this.data.Name].zModel;\r\n const url = this.resourceApiService.getURL('field');\r\n\r\n const respData = { 'parentFormId': 5722, 'zudf_Name': 'test' };\r\n\r\n Object.assign(zModel, respData);\r\n form.patchValue(zModel);\r\n form.markAsPristine();\r\n\r\n //return this.webApiService.httpGet$(url, { name: this.group.fieldName, type: 'FormField' }).pipe(\r\n // tap((respData: any) => {\r\n // debugger;\r\n // Object.assign(zModel, respData);\r\n // form.patchValue(zModel);\r\n // form.markAsPristine();\r\n // })\r\n //);\r\n }\r\n\r\n private toFormGroup(fieldElements: Array<ZField>) {\r\n const formControls: { [key: string]: FormControl } = {};\r\n this.getFormControls(fieldElements, formControls);\r\n const newFormGroup = new FormGroup(formControls);\r\n return newFormGroup;\r\n }\r\n\r\n private getFormControls(fieldArray: Array<ZField>, formControls: { [key: string]: FormControl }) {\r\n fieldArray.forEach(field => {\r\n if (typeof field.Value === \"string\" && field.Value.indexOf(\".\") !== -1) {\r\n if (['zgrid', 'ztree', 'zimg', 'textareajson'].indexOf(field.Type) === -1) {\r\n console.warn(\"FormControl - invalid field value\", field.Value);\r\n }\r\n }\r\n else {\r\n if (Array.isArray(field.Value)) {\r\n this.getFormControls(field.Value, formControls);\r\n }\r\n else {\r\n const isFormControl = ZComponentHelper.isFormControl(field);\r\n const isVisible = ZComponentHelper.isVisibleFormControl(this, field);\r\n const isRequired = ZComponentHelper.isRequiredFormControl(this, field);\r\n if (isFormControl === true) {\r\n const validators: ValidatorFn[] = ZComponentHelper.getValidators(field, isVisible, isRequired);\r\n formControls[field.Value] = new FormControl(\r\n this.group['_zudf_' + this.data.Name].zModel[field.Value],\r\n validators\r\n );\r\n if (ZComponentHelper.hasCCField(field.Type)) {\r\n const ccValidators: ValidatorFn[] = ZComponentHelper.getCCValidators(field, isVisible, isRequired);\r\n formControls[field.CCValue] = new FormControl(\r\n this.group['_zudf_' + this.data.Name].zModel[field.CCValue],\r\n ccValidators\r\n );\r\n }\r\n }\r\n\r\n }\r\n }\r\n });\r\n }\r\n\r\n private appendPrefix(fields: ZField[], prefix: any) {\r\n fields.forEach(field => {\r\n if (Array.isArray(field.Value)) {\r\n this.appendPrefix(field.Value, prefix);\r\n }\r\n else {\r\n field.Name = prefix + '_' + field.Name;\r\n if (field.Type != 'zbuttons') {\r\n field.Value = prefix + '_' + field.Value;\r\n }\r\n field.SubType = prefix;\r\n }\r\n });\r\n }\r\n\r\n ComponentIsVisible(field: ZField): any {\r\n return ZComponentHelper.ComponentIsVisible(field, this.group);\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n public appendFormControl(zudfControlName: string, zudfControl: FormControl, fieldData: ZField) {\r\n this.form.addControl(zudfControlName, zudfControl);\r\n this.formField.push(fieldData);\r\n }\r\n \r\n public clearFormControl() {\r\n this.formField.forEach(data => {\r\n this.form.removeControl(data.Value); \r\n });\r\n\r\n this.data.Value = this.initialDataValue;\r\n\r\n this.formField = [];\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport { ZComponent, ZGroup, ZField } from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-zunknown',\r\n templateUrl: './zunknown.component.html',\r\n styleUrls: ['./zunknown.component.scss'],\r\n})\r\nexport class ZunknownComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {}\r\n\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input, NgZone, ViewChild } from \"@angular/core\";\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n// import { environment } from \"src/environments/environment\";\r\nimport { take } from 'rxjs/operators';\r\nimport { HttpEventType } from '@angular/common/http';\r\nimport {\r\n FileInfo,\r\n SuccessEvent,\r\n RemoveEvent,\r\n UploadEvent,\r\n FileRestrictions,\r\n ChunkSettings,\r\n SelectEvent,\r\n UploadComponent\r\n} from \"@progress/kendo-angular-upload\";\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n AuthService, ZCoreService, CompressImageService,\r\n ZComponent, ZComponentHelper, ZComponentOutputEvent, ZComponentProperties,\r\n ZField, ZGroup, UploadMetaData, ImageCompressionConfig\r\n} from \"mmhglobal-zcore\";\r\n\r\nexport class MyFileInfo implements FileInfo {\r\n name: string;\r\n uid?: string;\r\n myUid?: string;\r\n}\r\n\r\n@Component({\r\n selector: \"app-zupload\",\r\n templateUrl: \"./zupload.component.html\",\r\n styleUrls: [\"./zupload.component.scss\"],\r\n})\r\nexport class ZuploadComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n @ViewChild(\"uploadComponent\") uploadComponent: UploadComponent;\r\n\r\n componentProperties = new ZComponentProperties();\r\n uploadAttachmentUrl: string = null;\r\n uploadSaveUrl = \"/Attachment/Chunk_Upload_Save\"; // should represent an actual API endpoint\r\n uploadRemoveUrl = \"/Attachment/Chunk_Upload_Remove\"; // should represent an actual API endpoint\r\n downloadFileUrl = \"/Attachment/downloadFile\";\r\n getImageUrl = \"/Attachment/getImage\"; // GET method\r\n isAutoUpload = false;\r\n isMultiple = false;\r\n imagePreviews: any[] = [];\r\n uid: string[] = [];\r\n showFileList = true;\r\n fileList: any[] = [];\r\n\r\n public restrictions: FileRestrictions = {\r\n\r\n minFileSize: 1,\r\n maxFileSize: 4194304,\r\n allowedExtensions: [\r\n \"jpg\",\r\n \"jpeg\",\r\n \"png\",\r\n \"bmp\",\r\n \"pdf\",\r\n \"txt\",\r\n \"docx\",\r\n \"doc\",\r\n \"xlsx\",\r\n \"xls\",\r\n \"ppt\",\r\n \"pptx\",\r\n \"csv\",\r\n ],\r\n };\r\n\r\n public chunkSettings: ChunkSettings = {\r\n size: 102400,\r\n maxAutoRetries: 3,\r\n };\r\n\r\n // zModelValue = [{\r\n // name: \"RXJS 01.png\",\r\n // size: 128753,\r\n // uid: \"c96e234d-af61-4587-adcc-3b400ddef884\"\r\n // }];\r\n\r\n // fieldElement = [{\r\n // Name: 'FileUploadList',\r\n // Type: 'zupload',\r\n // Value: 'FileUploadList',\r\n // SelectionOptions: ['jpg', 'jpeg', 'png', 'bmp', 'pdf'],\r\n // UploadMetaData: 'group.UploadMetaData',\r\n // AutoUpload: false,\r\n // AllowRemove: true,\r\n // Multiple: false,\r\n // OnSuccess: 'group.onSuccess()',\r\n // DivClass: \"col-md-12 col-md-6\",\r\n // Visible: true\r\n // }];\r\n\r\n constructor(\r\n private authService: AuthService,\r\n private compressImage: CompressImageService,\r\n private zcoreService: ZCoreService,\r\n private ngZone: NgZone\r\n ) {\r\n this.uploadAttachmentUrl = this.zcoreService.getEnvironment().uploadAttachmentUrl;\r\n this.uploadSaveUrl = this.uploadAttachmentUrl + this.uploadSaveUrl;\r\n this.uploadRemoveUrl = this.uploadAttachmentUrl + this.uploadRemoveUrl;\r\n }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n // this.group['UploadMetaData'] = new UploadMetaData(null, '15', 'SO-No-1234', 'SaleOrder');\r\n\r\n\r\n // this.uploadSaveUrl = uploadAttachmentUrl + this.uploadSaveUrl;\r\n // this.uploadRemoveUrl = uploadAttachmentUrl + this.uploadRemoveUrl;\r\n\r\n if (this.data.SelectOptions) {\r\n this.restrictions.allowedExtensions = (this.data\r\n .SelectOptions as unknown) as string[];\r\n }\r\n\r\n if (this.data.MinFileSize) {\r\n this.restrictions.minFileSize = this.data.MinFileSize;\r\n }\r\n\r\n if (this.data.MaxFileSize) {\r\n this.restrictions.maxFileSize = this.data.MaxFileSize;\r\n }\r\n\r\n this.isAutoUpload = this.data.AutoUpload || false;\r\n\r\n if (!this.data.AllowRemove) {\r\n this.uploadRemoveUrl = \"\";\r\n }\r\n\r\n if (this.data.Multiple) {\r\n this.isMultiple = this.data.Multiple;\r\n }\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n const fc = this.group.form.controls[this.data.Value];\r\n status ? fc.enable() : fc.disable();\r\n this.componentProperties.isReadOnly = !status;\r\n };\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n };\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(\r\n status,\r\n this.group,\r\n this.data.Value,\r\n this.componentProperties,\r\n Validators.required\r\n );\r\n };\r\n\r\n getIon_InvalidClass(form: FormGroup, data: ZField) {\r\n return ZComponentHelper.getIon_InvalidClass(form, data);\r\n }\r\n\r\n onSuccess(e: SuccessEvent): void {\r\n // angular kendo upload didn't filter away Sent event for remove, so we have to handle it here\r\n // upload progress not required for removal, thus it's also removed\r\n // @ts-ignore\r\n if (e.operation === \"remove\" && (e.response.type === HttpEventType.Sent || e.response.type === HttpEventType.UploadProgress)) {\r\n return;\r\n }\r\n\r\n if (!Array.isArray(this.group.zModel[this.data.Value])) {\r\n this.group.zModel[this.data.Value] = [];\r\n }\r\n\r\n const file = e.files[0] as MyFileInfo;\r\n const existingFileIndex = this.group.zModel[this.data.Value].findIndex(f => f.name === file.name && f.uid === file.uid);\r\n if (e.operation === \"upload\") {\r\n // console.log('upload Success: ', e);\r\n file.myUid = file.uid;\r\n delete file['httpSubscription'];\r\n\r\n if (existingFileIndex !== -1) {\r\n this.group.zModel[this.data.Value][existingFileIndex] = file;\r\n } else {\r\n this.group.zModel[this.data.Value].push(file);\r\n }\r\n\r\n } else if (e.operation === \"remove\") {\r\n if (existingFileIndex !== -1) {\r\n this.group.zModel[this.data.Value].splice(existingFileIndex, 1);\r\n }\r\n }\r\n\r\n this.group.subject.next({\r\n type: \"zupload-onSuccess\",\r\n target: this.data.OnSuccess,\r\n event: e,\r\n data: { value: e.files[0], field: this.data },\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n private compressionConfigHandler(imgConfig: ImageCompressionConfig): ImageCompressionConfig {\r\n if (imgConfig.FileSizeMaxSize) {\r\n imgConfig.FileSizeMaxSizeByte = this.convertSizeToByte(imgConfig.FileSizeMaxSize);\r\n }\r\n\r\n if (imgConfig.FileSizeMinSize) {\r\n imgConfig.FileSizeMinSizeByte = this.convertSizeToByte(imgConfig.FileSizeMinSize);\r\n }\r\n else {\r\n imgConfig.FileSizeMinSizeByte = 0;\r\n }\r\n\r\n return imgConfig;\r\n }\r\n\r\n private convertSizeToByte(sizeString: string): number {\r\n let _tempFileSizeMaxSize: number = 0;\r\n let sizeByByte: number = 0;\r\n let sizeType = 'b';\r\n\r\n // remove all space\r\n const _tempFileSize = sizeString.replace(/ /g, '');\r\n\r\n // check last char is alphabetic\r\n const lastChar = _tempFileSize.substr(_tempFileSize.length - 1);\r\n if (isNaN(parseFloat(lastChar))) {\r\n const secLastChar = _tempFileSize.substr(_tempFileSize.length - 2).slice(0, -1);\r\n\r\n if (isNaN(parseFloat(secLastChar))) {\r\n // check last 2nd char is alphabetic\r\n sizeType = secLastChar + sizeType;\r\n _tempFileSizeMaxSize = parseFloat(_tempFileSize.slice(0, -2));\r\n }\r\n else {\r\n _tempFileSizeMaxSize = parseFloat(_tempFileSize.slice(0, -1));\r\n }\r\n\r\n switch (sizeType.toLowerCase()) {\r\n case \"b\":\r\n sizeByByte = _tempFileSizeMaxSize\r\n break;\r\n case \"kb\":\r\n sizeByByte = _tempFileSizeMaxSize * 1024\r\n break;\r\n case \"mb\":\r\n sizeByByte = _tempFileSizeMaxSize * 1048576\r\n break;\r\n case \"gb\":\r\n sizeByByte = _tempFileSizeMaxSize * 1073741824\r\n break;\r\n }\r\n }\r\n else {\r\n // default using bytes if no size type\r\n sizeByByte = parseFloat(_tempFileSize);\r\n }\r\n\r\n return sizeByByte;\r\n }\r\n\r\n uploadEventHandler(e: UploadEvent) {\r\n // Image Preview\r\n const me = this;\r\n e.files.forEach((file: FileInfo) => {\r\n if (file.rawFile && file.rawFile.type.includes(\"image\")) {\r\n if (!file.validationErrors) {\r\n const reader = new FileReader();\r\n reader.onload = function (ev) {\r\n if (me.data.EnableImagePreview) {\r\n if (!me.uid.includes(file.uid)) {\r\n me.uid.push(file.uid);\r\n me.imagePreviews.push({ ...file, src: <string>reader.result });\r\n }\r\n }\r\n }\r\n reader.readAsDataURL(file.rawFile);\r\n }\r\n }\r\n });\r\n\r\n // Add metadata to the upload event\r\n let additional: UploadMetaData = ZComponentHelper.getGroupEvalValue.call(this, this.data.UploadMetaData);\r\n\r\n if (!(additional instanceof UploadMetaData)) {\r\n console.error(\"UploadMetaData defined at \" + this.data.UploadMetaData + \" is invalid: \", additional);\r\n additional = new UploadMetaData(null, \"0\");\r\n }\r\n\r\n const str = JSON.stringify(additional);\r\n\r\n e.data = { additional: str, };\r\n e.headers = e.headers.append(\"Authorization\", \"Bearer \" + this.authService.e1AccessToken);\r\n }\r\n\r\n onRemove(e: RemoveEvent): void {\r\n // remove file from component memory\r\n const index = this.fileList.findIndex(\r\n (item) => item.uid === e.files[0].uid\r\n );\r\n\r\n if (index >= 0) {\r\n this.fileList.splice(index, 1);\r\n this.group['zupload_' + this.data.Value] = this.fileList;\r\n }\r\n\r\n if (this.data['FileRemovedEvent']) {\r\n this.group.subject.next({\r\n type: \"zupload-fileRemovedEvent\",\r\n target: this.data['FileRemovedEvent'],\r\n data: e\r\n } as ZComponentOutputEvent);\r\n }\r\n else {\r\n const myFile: MyFileInfo = e.files[0] as MyFileInfo;\r\n\r\n // console.log('remove done: ', e);\r\n e.data = {\r\n id: myFile.myUid,\r\n };\r\n e.headers = e.headers.append(\r\n \"Authorization\",\r\n \"Bearer \" + this.authService.e1AccessToken\r\n );\r\n\r\n if (this.data.EnableImagePreview) {\r\n e.files.forEach((file: FileInfo) => {\r\n this.imagePreviews = this.imagePreviews.filter(f => f.uid !== file.uid);\r\n });\r\n }\r\n }\r\n }\r\n\r\n onChange(file: FileInfo[]): void {\r\n if (this.data['FileChangedEvent']) {\r\n this.group.subject.next({\r\n type: \"zupload-fileChangedEvent\",\r\n target: this.data['FileChangedEvent'],\r\n data: file\r\n } as ZComponentOutputEvent);\r\n }\r\n }\r\n\r\n selectEventHandler(e: SelectEvent) {\r\n const me = this;\r\n\r\n if (this.data['SelectFileOnly']) {\r\n // append all file to component memory\r\n e.files.forEach(async (file: FileInfo) => {\r\n if (file.rawFile) {\r\n const reader = new FileReader();\r\n reader.onload = function (ev) {\r\n // clone the data and also add the readed file to the object\r\n const fileData = Object.assign({}, file);\r\n fileData['file'] = ev.target[\"result\"];\r\n // push to component fileList\r\n me.fileList.push(fileData);\r\n me.group['zupload_' + me.data.Value] = me.fileList;\r\n\r\n if (me.data['FileSelectedEvent']) {\r\n // call the project event\r\n me.group.subject.next({\r\n type: \"zupload-fileSelectedEvent\",\r\n target: me.data['FileSelectedEvent'],\r\n data: me.fileList\r\n } as ZComponentOutputEvent);\r\n }\r\n };\r\n await reader.readAsDataURL(file.rawFile);\r\n }\r\n });\r\n }\r\n else {\r\n // Only workable for Auto Upload = false\r\n if (!this.data.AutoUpload) {\r\n // Compression for image file\r\n const imageCompressionEnabled = this.data.Compression ? true : false;\r\n\r\n //Check if Image Compression is enabled.\r\n if (imageCompressionEnabled === true) {\r\n e.files.forEach((file: FileInfo) => {\r\n // Compress only if it is an image file\r\n if (file.rawFile && file.rawFile.type.includes(\"image\")) {\r\n if (!file.validationErrors) {\r\n const imgConfig = this.compressionConfigHandler(this.data.Compression);\r\n if (file.size > imgConfig.FileSizeMinSizeByte) {\r\n me.compressImage.compress(file.rawFile, imgConfig) //Pass in parameter to set the Compression Options\r\n .pipe(take(1))\r\n .subscribe(compressFile => {\r\n this.ngZone.run(() => {\r\n file.rawFile = compressFile;\r\n file.size = compressFile.size;\r\n\r\n // clone the data and also add the readed file to the object\r\n const fileData = Object.assign({}, file);\r\n // push to component fileList\r\n me.fileList.push(fileData);\r\n\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file.rawFile);\r\n });\r\n console.log(`Compressed file size: ${(file.rawFile.size / 1024).toFixed(2)}KB`);\r\n });\r\n } // file size check\r\n } // validationErrors check\r\n } // file type check\r\n }) // loop each file\r\n } // imagecompression check\r\n\r\n // add to group scope\r\n me.group['zupload_' + me.data.Value] = e.files;\r\n }\r\n }\r\n }\r\n\r\n clearFiles() {\r\n this.uploadComponent.clearFiles();\r\n this.group['zupload_' + this.data.Value] = this.fileList;\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from '@angular/core';\r\nimport { FormGroup, Validators } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { of } from 'rxjs';\r\nimport { concatMap, map, switchMap, tap } from 'rxjs/operators';\r\n\r\n/********** Component & Service **********/\r\nimport { MainService } from '../services/main.service';\r\nimport {\r\n ZGroup, ZField, ZComponentProperties,\r\n ZComponent, ZComponentHelper, WebApiService, ResourceApiService, WorkflowService, FontAweSomeService\r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-zworkflowbuttons',\r\n templateUrl: './zworkflowbuttons.component.html',\r\n styleUrls: ['./zworkflowbuttons.component.scss']\r\n})\r\nexport class ZworkflowbuttonsComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n componentProperties = new ZComponentProperties();\r\n\r\n // URL required\r\n // eslint-disable-next-line @typescript-eslint/naming-convention,no-underscore-dangle,id-blacklist,id-match\r\n e1wfs_wfcGetWorkflowButtonURL = this.resourceApiService.getURL(\"e1wfs_wfcGetWorkflowButtonURL\");\r\n // eslint-disable-next-line @typescript-eslint/naming-convention,no-underscore-dangle,id-blacklist,id-match\r\n e1wfs_wfc_getWorkflowInitialStatusURL = this.resourceApiService.getURL(\"e1wfs_wfc_getWorkflowInitialStatusURL\");\r\n // eslint-disable-next-line @typescript-eslint/naming-convention, no-underscore-dangle, id-blacklist, id-match\r\n e1wfs_wfc_getDocumentStatusURL = this.resourceApiService.getURL(\"e1wfs_wfc_getDocumentStatusURL\");\r\n\r\n //domainURL = \"https://localhost:44300/\";\r\n //e1wfs_wfcGetWorkflowButtonURL = this.domainURL + \"/api/WorkflowClients/GetWorkflowClientButtons/\";\r\n //e1wfs_wfc_getWorkflowInitialStatusURL = this.domainURL + \"/api/WorkflowClients/GetWorkflowInitialStatus/\";\r\n //e1wfs_wfc_getDocumentStatusURL = this.domainURL + \"/api/WorkflowClients/GetDocumentStatus/\";\r\n\r\n items: Array<any> = [];\r\n dataFormFields: any = {};\r\n FirstZbtn = false;\r\n isLoading = true;\r\n isLocalHostAPI: boolean = false;\r\n\r\n constructor(\r\n private webApiService: WebApiService,\r\n private resourceApiService: ResourceApiService,\r\n private workflowService: WorkflowService\r\n ) { }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n // Check project resourceURL is it localhost\r\n if (this.group.resourceURL) {\r\n this.isLocalHostAPI = this.group.resourceURL.toLowerCase().includes(\"localhost\") ? true : false;\r\n }\r\n\r\n this.loadButton();\r\n }\r\n\r\n private loadButton() {\r\n this.items = [];\r\n\r\n // Get WFS_DocumentId if any.\r\n let documentId = null;\r\n if (this.group.zModel) {\r\n documentId = this.group.zModel['WFS_DocumentId'];\r\n }\r\n\r\n // Set the documentId to the service\r\n this.workflowService.appendWFS_DocumentsInfo(this.data.WorkflowCode, documentId);\r\n\r\n // button count\r\n this.group.zButtonsCount++;\r\n if (this.group.zButtonsCount === 1) {\r\n this.FirstZbtn = true;\r\n }\r\n\r\n try {\r\n\r\n of(true)\r\n .pipe(\r\n concatMap(() => {\r\n // retrieve the workflow button\r\n return this.workflowService.getWorkflowButtonsField(\r\n this.data.WorkflowCode,\r\n this.e1wfs_wfcGetWorkflowButtonURL,\r\n String(this.isLocalHostAPI)\r\n )\r\n }),\r\n tap(resultData => {\r\n if (resultData) {\r\n resultData.forEach((button: any) => {\r\n const label = this.getButtonLabel(button);\r\n const attributes = JSON.parse(button.Attributes);\r\n const buttonLabel = attributes.Label || label;\r\n this.items.push({\r\n text: buttonLabel,\r\n icon: ZComponentHelper.getIcon(attributes.Icon),\r\n visible: attributes.Visible,\r\n fieldAttribute: button,\r\n iconName: attributes.Icon,\r\n click: (y) => {\r\n this.buttonClick(button);\r\n }\r\n });\r\n\r\n const mappedInfo = {\r\n 'role': [],\r\n 'status': [],\r\n 'parentStatus': []\r\n };\r\n //ZComponentHelper.collectWorkflowButton(this.group, this.data.WorkflowCode, buttonLabel, button, attributes, mappedInfo);\r\n });\r\n }\r\n else {\r\n console.warn('unable to get workflow button. data returned null.');\r\n }\r\n }),\r\n map(() => {\r\n if (!this.data.DisableSyncWorkflowStatus) {\r\n // Set default status\r\n // eslint-disable-next-line @typescript-eslint/dot-notation\r\n if (!this.group.zModel[\"WFS_StatusName\"]) {\r\n const params = {\r\n \"WorkflowMasterCode\": this.data.WorkflowCode\r\n };\r\n\r\n return this.webApiService.httpPost$(this.e1wfs_wfc_getWorkflowInitialStatusURL, params).pipe(\r\n map(res => {\r\n if (res.Data) {\r\n ZComponentHelper.presetModelValue(\"WFS_StatusId\", res.Data[\"Id\"], this.group);\r\n ZComponentHelper.presetModelValue(\"WFS_StatusName\", res.Data[\"Name\"], this.group);\r\n ZComponentHelper.presetModelValue(\"WFS_StatusCode\", res.Data[\"Code\"], this.group);\r\n\r\n this.workflowService.setCurrentDocumentStatus(res.Data);\r\n }\r\n })\r\n )\r\n } else {\r\n // When loading also to get current Status Information if any.\r\n const docInfoParam = {\r\n \"WorkflowMasterCode\": this.data.WorkflowCode,\r\n \"DocumentId\": documentId,\r\n };\r\n\r\n this.webApiService.httpPost$(this.e1wfs_wfc_getDocumentStatusURL, docInfoParam).pipe(\r\n map(res => {\r\n this.workflowService.setCurrentDocumentStatus(res);\r\n if (res.Data) {\r\n this.workflowService.setCurrentDocumentStatus(res.Data);\r\n }\r\n })\r\n )\r\n }\r\n }\r\n })\r\n\r\n ).subscribe();\r\n\r\n } catch (error) {\r\n console.error(\"error: \", error);\r\n }\r\n }\r\n\r\n buttonClick(button: any) {\r\n // Type 1 == functional;\r\n // Type 2 == GOTO;\r\n const attributes = JSON.parse(button.Attributes);\r\n switch (button.TypeCode.toUpperCase()) {\r\n case \"FUNCTION\":\r\n this.group.isTriggered = true;\r\n const me = this.group;\r\n if (!attributes['DisableTriggerTimer']) {\r\n setTimeout(function () {\r\n me['isTriggered'] = false;\r\n }, 500);\r\n }\r\n console.log(\"Functional Button: \", button.Name);\r\n this.workflowService.functionalButton_OnClick(attributes, this.group);\r\n break;\r\n case \"GOTO\":\r\n this.group.isTriggered = true;\r\n console.log(\"GOTO Button: \", button.Name);\r\n this.workflowService.gotoButton_Onclick(button, this.data, attributes, this.group, this.isLocalHostAPI).subscribe(res => {\r\n this.loadButton();\r\n this.group.isTriggered = false;\r\n if (res) {\r\n this.workflowService.triggerSendEmail(this.group).subscribe();\r\n }\r\n });\r\n break;\r\n default:\r\n console.log(\"Invalid Button Type. \", button.Name);\r\n break;\r\n }\r\n }\r\n\r\n\r\n\r\n /******************** Button Config ********************/\r\n private getButtonLabel(button: any) {\r\n let labelExpr = button.Name.match(/^{{.*}}$/gi);\r\n if (labelExpr) {\r\n labelExpr = labelExpr[0].slice(2, -2);\r\n const label = ZComponentHelper.getGroupValue(labelExpr, this.group);\r\n return label;\r\n } else {\r\n return button.Name;\r\n }\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n\r\n/******************** Common ********************/\r\n isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n\r\n isBtnVisible(fieldExpr) {\r\n if (fieldExpr !== false && !fieldExpr) {\r\n return true;\r\n }\r\n const v = ZComponentHelper.getGroupEvalValue.call(this, fieldExpr);\r\n return v;\r\n }\r\n\r\n getFontAwesome(iconName: string) {\r\n if (iconName == \"\") {\r\n iconName = \"help\";\r\n }\r\n return ZComponentHelper.getFontAwesome(iconName);\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Injectable, ComponentFactoryResolver, EmbeddedViewRef } from \"@angular/core\";\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n/********** Service & Directive **********/\r\nimport { ZComponent, ZComponentHelper } from 'mmhglobal-zcore';\r\nimport { FieldElementDirective } from '../directives/fieldelement.directive';\r\n// import { ZGridBindingDirective } from \"../zgrid/zgrid.binding.directive\";\r\n\r\n/********** zComponent **********/\r\nimport { ZBulletComponent } from \"../zbullet/zbullet.component\";\r\nimport { ZbuttonsComponent } from \"../zbuttons/zbuttons.component\";\r\nimport { ZcardComponent } from \"../zcard/zcard.component\";\r\nimport { ZchartComponent } from '../zchart/zchart.component';\r\nimport { ZcheckboxComponent } from '../zcheckbox/zcheckbox.component';\r\nimport { ZChipComponent } from \"../zchip/zchip.component\"; \r\nimport { ZcodeeditorComponent } from '../zcodeeditor/zcodeeditor.component';\r\nimport { ZdatetimeComponent } from '../zdatetime/zdatetime.component';\r\nimport { ZdivComponent } from '../zdiv/zdiv.component';\r\nimport { ZgaugeComponent } from '../zgauge/zgauge.component';\r\nimport { ZgridComponent } from '../zgrid/zgrid.component';\r\nimport { ZimgComponent } from '../zimg/zimg.component';\r\nimport { ZkcardComponent } from '../zkcard/zkcard.component';\r\nimport { ZlabelComponent } from '../zlabel/zlabel.component';\r\nimport { ZmfbComponent } from '../zmfb/zmfb.component';\r\nimport { ZnumericComponent } from '../znumeric/znumeric.component';\r\nimport { ZpostselectinputComponent } from '../zpostselectinput/zpostselectinput.component';\r\nimport { ZquerybuilderComponent } from '../zquerybuilder/zquerybuilder.component';\r\nimport { ZreportComponent } from '../zreport/zreport.component';\r\nimport { ZschedulerComponent } from '../zscheduler/zscheduler.component';\r\nimport { ZselectmultipleComponent } from \"../zselectmultiple/zselectmultiple.component\";\r\nimport { ZtabComponent } from \"../ztab/ztab.component\";\r\nimport { ZtextComponent } from \"../ztext/ztext.component\";\r\nimport { ZtextareaComponent } from '../ztextarea/ztextarea.component';\r\nimport { ZtexteditorComponent } from '../ztexteditor/ztexteditor.component';\r\nimport { ZtreeComponent } from '../ztree/ztree.component';\r\nimport { ZtreelistComponent } from '../ztreelist/ztreelist.component';\r\nimport { ZtrendcardComponent } from '../ztrendcard/ztrendcard.component';\r\nimport { ZudfComponent } from \"../zudf/zudf.component\";\r\nimport { ZunknownComponent } from \"../zunknown/zunknown.component\";\r\nimport { ZuploadComponent } from '../zupload/zupload.component';\r\nimport { ZworkflowbuttonsComponent } from \"../zworkflowbuttons/zworkflowbuttons.component\";\r\n// import { ZComponentServiceModule } from './zcomponent.service.module';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ZComponentService {\r\n constructor() { }\r\n\r\n mapByName(name: string) {\r\n const _name = name.toLocaleLowerCase();\r\n\r\n const data = {\r\n zbullet: ZBulletComponent,\r\n zbuttons: ZbuttonsComponent,\r\n zcard: ZcardComponent,\r\n zchart: ZchartComponent,\r\n checkbox: ZcheckboxComponent,\r\n zchip: ZChipComponent,\r\n textareajson: ZcodeeditorComponent,\r\n textareahtml: ZcodeeditorComponent,\r\n zdate: ZdatetimeComponent,\r\n zdatetime: ZdatetimeComponent,\r\n zshortdate: ZdatetimeComponent,\r\n zuidatetime: ZdatetimeComponent,\r\n zuitime: ZdatetimeComponent,\r\n zdiv: ZdivComponent,\r\n zgauge: ZgaugeComponent,\r\n zgrid: ZgridComponent,\r\n zimg: ZimgComponent,\r\n zkcard: ZkcardComponent,\r\n zlabel: ZlabelComponent,\r\n zmfb: ZmfbComponent,\r\n znumeric: ZnumericComponent,\r\n post_select_input: ZpostselectinputComponent,\r\n pre_select_input: ZpostselectinputComponent,\r\n zphone_countrycode: ZpostselectinputComponent,\r\n zquerybuilder: ZquerybuilderComponent,\r\n zreport: ZreportComponent,\r\n zcalendar: ZschedulerComponent,\r\n zuiselectmultiple: ZselectmultipleComponent,\r\n zuiselectmultiple_button: ZselectmultipleComponent,\r\n select: ZselectmultipleComponent,\r\n ztab: ZtabComponent,\r\n number: ZtextComponent,\r\n numeric: ZtextComponent,\r\n date: ZtextComponent,\r\n email: ZtextComponent,\r\n password: ZtextComponent,\r\n search: ZtextComponent,\r\n tel: ZtextComponent,\r\n text: ZtextComponent,\r\n url: ZtextComponent,\r\n currency: ZtextComponent,\r\n textarea: ZtextareaComponent,\r\n ztexteditor: ZtexteditorComponent,\r\n ztree: ZtreeComponent,\r\n ktree_list: ZtreelistComponent,\r\n ztrendcard: ZtrendcardComponent,\r\n unknown: ZunknownComponent,\r\n zudf: ZudfComponent,\r\n zupload: ZuploadComponent,\r\n zworkflowbuttons: ZworkflowbuttonsComponent\r\n // kdate_rangepicker: ZdaterangeComponent\r\n };\r\n\r\n return data[_name];\r\n }\r\n\r\n isSkipComponentType(componentType: string): boolean {\r\n return ZComponentHelper.isSkipComponentType(componentType);\r\n }\r\n\r\n loadComponent(\r\n componentFactoryResolver: ComponentFactoryResolver,\r\n fieldElement: FieldElementDirective,\r\n field: any,\r\n group: any,\r\n form: FormGroup\r\n ) {\r\n // if(field.Name === 'FormDetailContactGrid') {\r\n // debugger;\r\n // }\r\n\r\n if (this.isSkipComponentType(field.Type)) {\r\n return;\r\n }\r\n\r\n let componentFactory;\r\n const componentName = this.mapByName(field.Type);\r\n if (componentName) {\r\n componentFactory = componentFactoryResolver.resolveComponentFactory(\r\n componentName\r\n );\r\n } else {\r\n componentFactory = componentFactoryResolver.resolveComponentFactory(\r\n this.mapByName(\"unknown\")\r\n );\r\n }\r\n\r\n const viewContainerRef = fieldElement.viewContainerRef;\r\n viewContainerRef.clear();\r\n if (!form) {\r\n console.warn('FormGroup is empty!');\r\n debugger;\r\n }\r\n const componentRef = viewContainerRef.createComponent(componentFactory);\r\n (componentRef.instance as ZComponent).data = field;\r\n (componentRef.instance as ZComponent).group = group;\r\n (componentRef.instance as ZComponent).form = form;\r\n // (componentRef.instance as ZComponent).outputEvent.subscribe((event: any) => group.outputEvent(event));\r\n }\r\n\r\n appendComponentToDynamicForm(\r\n componentFactoryResolver: ComponentFactoryResolver,\r\n injector: any,\r\n appRef: any,\r\n field: any,\r\n group: any,\r\n containerId: string\r\n ) {\r\n if (this.isSkipComponentType(field.Type)) {\r\n return;\r\n }\r\n\r\n let componentRef;\r\n const componentName = this.mapByName(field.Type);\r\n // 1. Create a component reference from the component\r\n if (componentName) {\r\n componentRef = componentFactoryResolver\r\n .resolveComponentFactory(componentName)\r\n .create(injector);\r\n } else {\r\n componentRef = componentFactoryResolver\r\n .resolveComponentFactory(this.mapByName(\"unknown\"))\r\n .create(injector);\r\n }\r\n\r\n // 2. Attach component to the appRef so that it's inside the ng component tree\r\n appRef.attachView(componentRef.hostView);\r\n\r\n // 3. Get DOM element from component\r\n const domElem = (componentRef.hostView as EmbeddedViewRef<any>)\r\n .rootNodes[0] as HTMLElement;\r\n\r\n // 4. Append DOM element to the body\r\n const dynamicFormHost: any = document.querySelector(\"#\" + containerId);\r\n dynamicFormHost.appendChild(domElem);\r\n\r\n (componentRef.instance as ZComponent).data = field;\r\n (componentRef.instance as ZComponent).group = group;\r\n return componentRef;\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, OnDestroy, Input, ViewChild, ComponentFactoryResolver } from \"@angular/core\";\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport { FieldElementDirective } from \"../directives/fieldelement.directive\";\r\nimport { ZComponentService } from '../services/zcomponent.service';\r\nimport { ZField, ZGroup } from \"mmhglobal-zcore\";\r\n\r\n\r\n@Component({\r\n selector: \"app-zformcontrol\",\r\n templateUrl: \"./zformcontrol.component.html\",\r\n styleUrls: [\"./zformcontrol.component.scss\"]\r\n})\r\nexport class ZformcontrolComponent implements OnInit, OnDestroy {\r\n\r\n @Input() field: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n // @Input() containerid: string;\r\n @ViewChild(FieldElementDirective, { static: true }) fieldElement: FieldElementDirective;\r\n componentRef: any;\r\n\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private zcomponentService: ZComponentService\r\n // private appRef: ApplicationRef,\r\n // private injector: Injector,\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.zcomponentService.loadComponent(this.componentFactoryResolver, this.fieldElement, this.field, this.group, this.form);\r\n // this.componentRef = ZComponentHelper.appendComponentToDynamicForm(\r\n // this.componentFactoryResolver,\r\n // this.injector,\r\n // this.appRef,\r\n // this.field,\r\n // this.group,\r\n // this.containerid\r\n // );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n // this.appRef.detachView(this.componentRef.hostView);\r\n // this.componentRef.destroy();\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { NgModule, CUSTOM_ELEMENTS_SCHEMA, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\n// import { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\n\r\n/********** Ionic **********/\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { IonicSelectableModule } from 'ionic-selectable';\r\n\r\n/********** Plugin **********/\r\nimport { AceEditorModule } from 'ng2-ace-editor';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { QueryBuilderModule } from \"angular2-query-builder\";\r\n\r\n/********** Kendo **********/\r\nimport { ArcGaugeModule } from '@progress/kendo-angular-gauges';\r\nimport { ButtonsModule } from '@progress/kendo-angular-buttons';\r\nimport { ChartsModule } from '@progress/kendo-angular-charts';\r\nimport { CalendarModule, DateInputsModule } from '@progress/kendo-angular-dateinputs';\r\nimport { DropDownsModule } from '@progress/kendo-angular-dropdowns';\r\nimport { EditorModule } from '@progress/kendo-angular-editor';\r\nimport { ExcelModule, GridModule } from '@progress/kendo-angular-grid';\r\nimport { IndicatorsModule } from \"@progress/kendo-angular-indicators\";\r\nimport { IntlModule } from '@progress/kendo-angular-intl';\r\nimport { InputsModule, SwitchModule, TextBoxModule } from '@progress/kendo-angular-inputs';\r\nimport { LabelModule } from '@progress/kendo-angular-label';\r\nimport { LayoutModule, PanelBarModule, TabStripModule } from '@progress/kendo-angular-layout';\r\nimport { PopupModule } from '@progress/kendo-angular-popup';\r\nimport { ProgressBarModule } from \"@progress/kendo-angular-progressbar\";\r\nimport { TelerikReportingModule } from '@progress/telerik-angular-report-viewer';\r\nimport { SchedulerModule } from '@progress/kendo-angular-scheduler';\r\nimport { TreeListModule } from '@progress/kendo-angular-treelist';\r\nimport { TreeViewModule } from '@progress/kendo-angular-treeview';\r\nimport { TooltipModule } from '@progress/kendo-angular-tooltip';\r\nimport { UploadModule, UploadsModule } from '@progress/kendo-angular-upload';\r\n\r\n/********** Service & Directive **********/\r\nimport { ZCoreModule, ZGroup } from 'mmhglobal-zcore';\r\nimport { MmhglobalZmodalModule, ModalService } from 'mmhglobal-zmodal';\r\nimport { MainService } from './services/main.service';\r\nimport { ScrollbarThemeDirective } from './directives/scrollbar.theme.directive';\r\nimport { FieldElementDirective } from './directives/fieldelement.directive';\r\nimport { ZGridBindingDirective } from './zgrid/zgrid.binding.directive';\r\nimport { ZGridPopupAnchorDirective } from './zgrid/zgrid.popup.anchor-target.directive';\r\nimport { OpenOnFocusDirective } from './zselectmultiple/zselectmultiple.directive';\r\n\r\n/********** Addon **********/\r\nimport { DateParserFilter } from './zdatetime/dateParser.pipe';\r\nimport { EditorFilter } from './zcodeeditor/zcodeeditor.pipe';\r\nimport { DivzLayout } from './zdiv/zdiv.pipe';\r\nimport { ExportOptions } from './zreport/zreport.config';\r\nimport { TabFilter } from './ztab/ztab.pipe';\r\nimport { DateRangeFilterCellComponent } from './zgrid/date-range-cell-filter.component';\r\nimport { ZSchedulerToolBarComponent } from './zscheduler/zscheduler.toolbar.component';\r\n\r\n/********** zComponent **********/\r\nimport { UipageComponent } from './uipage/uipage.component';\r\nimport { UiheaderComponent } from './uiheader/uiheader.component';\r\nimport { UicontentComponent } from './uicontent/uicontent.component';\r\n\r\nimport { UimenucontentComponent } from './uimenucontent/uimenucontent.component';\r\nimport { UimenubuttonComponent } from './uimenubutton/uimenubutton.component';\r\nimport { UiappmenucontentComponent } from './uiappmenucontent/uiappmenucontent.component';\r\nimport { UiactionbuttonComponent } from './uiactionbutton/uiactionbutton.component';\r\nimport { UivalidationmessageComponent } from './uivalidationmessage/uivalidationmessage.component';\r\n\r\nimport { ZBulletComponent } from \"./zbullet/zbullet.component\";\r\nimport { ZbuttonsComponent } from \"./zbuttons/zbuttons.component\";\r\nimport { ZcardComponent } from \"./zcard/zcard.component\";\r\nimport { ZchartComponent } from './zchart/zchart.component';\r\nimport { ZcheckboxComponent } from './zcheckbox/zcheckbox.component';\r\nimport { ZChipComponent } from \"./zchip/zchip.component\";\r\nimport { ZcodeeditorComponent } from './zcodeeditor/zcodeeditor.component';\r\nimport { ZdaterangeComponent } from './zdaterange/zdaterange.component';\r\nimport { ZdatetimeComponent } from './zdatetime/zdatetime.component';\r\nimport { ZdivComponent } from './zdiv/zdiv.component';\r\nimport { ZformComponent } from \"./zform/zform.component\";\r\nimport { ZformcontrolComponent } from \"./zformcontrol/zformcontrol.component\";\r\nimport { ZgaugeComponent } from './zgauge/zgauge.component';\r\nimport { ZgridComponent } from \"./zgrid/zgrid.component\";\r\nimport { ZimgComponent } from './zimg/zimg.component';\r\nimport { ZkcardComponent } from './zkcard/zkcard.component';\r\nimport { ZlabelComponent } from './zlabel/zlabel.component';\r\nimport { ZmfbComponent } from './zmfb/zmfb.component';\r\nimport { ZmodalComponent } from \"./zmodal/zmodal.component\";\r\nimport { ZmodalMobileComponent } from \"./zmodal/zmodal-mobile.component\";\r\nimport { ZnumericComponent } from './znumeric/znumeric.component';\r\nimport { ZpostselectinputComponent } from './zpostselectinput/zpostselectinput.component'; \r\nimport { ZquerybuilderComponent } from './zquerybuilder/zquerybuilder.component';\r\nimport { ZreportComponent } from './zreport/zreport.component';\r\nimport { ZschedulerComponent } from './zscheduler/zscheduler.component';\r\nimport { ZselectmultipleComponent } from \"./zselectmultiple/zselectmultiple.component\";\r\nimport { ZtabComponent } from \"./ztab/ztab.component\";\r\nimport { ZtextComponent } from \"./ztext/ztext.component\";\r\nimport { ZtextareaComponent } from './ztextarea/ztextarea.component';\r\nimport { ZtexteditorComponent } from './ztexteditor/ztexteditor.component';\r\nimport { ZtreeComponent } from './ztree/ztree.component';\r\nimport { ZtreelistComponent } from './ztreelist/ztreelist.component';\r\nimport { ZtrendcardComponent } from './ztrendcard/ztrendcard.component';\r\nimport { ZunknownComponent } from \"./zunknown/zunknown.component\";\r\nimport { ZudfComponent } from './zudf/zudf.component';\r\nimport { ZuploadComponent } from './zupload/zupload.component';\r\nimport { ZworkflowbuttonsComponent } from \"./zworkflowbuttons/zworkflowbuttons.component\"; \r\n\r\n@NgModule({\r\n declarations: [\r\n ScrollbarThemeDirective,\r\n FieldElementDirective,\r\n ZGridBindingDirective,\r\n ZGridPopupAnchorDirective,\r\n OpenOnFocusDirective,\r\n DateParserFilter, // zgrid addon\r\n EditorFilter, // zcode addon\r\n DivzLayout, // zdiv addon\r\n ExportOptions, // zreport addon\r\n TabFilter, // ztab addon\r\n DateRangeFilterCellComponent, // zgrid addon\r\n ZSchedulerToolBarComponent, // zscheduler addon \r\n UiheaderComponent,\r\n UicontentComponent,\r\n UipageComponent,\r\n UiactionbuttonComponent,\r\n UimenucontentComponent,\r\n UimenubuttonComponent,\r\n UiappmenucontentComponent,\r\n UivalidationmessageComponent, \r\n ZBulletComponent,\r\n ZbuttonsComponent,\r\n ZcardComponent,\r\n ZchartComponent,\r\n ZcheckboxComponent,\r\n ZChipComponent,\r\n ZcodeeditorComponent,\r\n ZdaterangeComponent,\r\n ZdatetimeComponent,\r\n ZdivComponent,\r\n ZformComponent,\r\n ZformcontrolComponent,\r\n ZgaugeComponent,\r\n ZgridComponent,\r\n ZimgComponent,\r\n ZkcardComponent,\r\n ZlabelComponent,\r\n ZmfbComponent,\r\n ZmodalComponent,\r\n ZmodalMobileComponent,\r\n ZnumericComponent,\r\n ZpostselectinputComponent,\r\n ZquerybuilderComponent,\r\n ZreportComponent,\r\n ZschedulerComponent,\r\n ZselectmultipleComponent,\r\n ZtabComponent,\r\n ZtextComponent,\r\n ZtextareaComponent,\r\n ZtexteditorComponent,\r\n ZtreeComponent,\r\n ZtreelistComponent,\r\n ZtrendcardComponent,\r\n ZunknownComponent,\r\n ZudfComponent,\r\n ZuploadComponent,\r\n ZworkflowbuttonsComponent\r\n ],\r\n imports: [\r\n IonicModule,\r\n IonicSelectableModule,\r\n CommonModule,\r\n RouterModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n AceEditorModule,\r\n FontAwesomeModule,\r\n QueryBuilderModule,\r\n ArcGaugeModule,\r\n ButtonsModule,\r\n ChartsModule,\r\n CalendarModule,\r\n DateInputsModule,\r\n DropDownsModule,\r\n EditorModule,\r\n GridModule,\r\n ExcelModule,\r\n IndicatorsModule,\r\n IntlModule,\r\n InputsModule,\r\n SwitchModule,\r\n TextBoxModule,\r\n LabelModule,\r\n LayoutModule,\r\n PanelBarModule,\r\n TabStripModule,\r\n PopupModule,\r\n ProgressBarModule,\r\n TelerikReportingModule,\r\n SchedulerModule,\r\n TreeListModule,\r\n TreeViewModule,\r\n TooltipModule,\r\n UploadModule,\r\n UploadsModule,\r\n ZCoreModule,\r\n MmhglobalZmodalModule\r\n ],\r\n exports: [\r\n ScrollbarThemeDirective,\r\n FieldElementDirective,\r\n ZGridBindingDirective,\r\n ZGridPopupAnchorDirective,\r\n OpenOnFocusDirective,\r\n DateParserFilter, // zdatetime addon\r\n EditorFilter, // zcode addon\r\n DivzLayout, // zdiv addon\r\n ExportOptions, // zreport addon\r\n TabFilter, // ztab addon\r\n DateRangeFilterCellComponent, // zgrid addon\r\n ZSchedulerToolBarComponent, // zscheduler addon\r\n UiheaderComponent,\r\n UicontentComponent,\r\n UipageComponent, \r\n UimenucontentComponent,\r\n UimenubuttonComponent,\r\n UiappmenucontentComponent,\r\n UiactionbuttonComponent,\r\n UivalidationmessageComponent,\r\n ZBulletComponent,\r\n ZbuttonsComponent,\r\n ZcardComponent,\r\n ZchartComponent,\r\n ZcheckboxComponent,\r\n ZChipComponent,\r\n ZcodeeditorComponent,\r\n ZdaterangeComponent,\r\n ZdatetimeComponent,\r\n ZdivComponent,\r\n ZformComponent,\r\n ZformcontrolComponent,\r\n ZgaugeComponent,\r\n ZgridComponent,\r\n ZimgComponent,\r\n ZkcardComponent,\r\n ZlabelComponent,\r\n ZmfbComponent,\r\n ZmodalComponent,\r\n ZmodalMobileComponent,\r\n ZnumericComponent,\r\n ZpostselectinputComponent,\r\n ZquerybuilderComponent,\r\n ZreportComponent,\r\n ZschedulerComponent,\r\n ZselectmultipleComponent,\r\n ZtabComponent,\r\n ZtextComponent,\r\n ZtextareaComponent,\r\n ZtexteditorComponent,\r\n ZtreeComponent,\r\n ZtreelistComponent,\r\n ZtrendcardComponent,\r\n ZunknownComponent,\r\n ZudfComponent,\r\n ZuploadComponent,\r\n ZworkflowbuttonsComponent\r\n ],\r\n entryComponents: [\r\n DateRangeFilterCellComponent, // zgrid addon\r\n ZSchedulerToolBarComponent, // zscheduler addon\r\n UiheaderComponent,\r\n UicontentComponent,\r\n UipageComponent,\r\n UimenucontentComponent,\r\n UimenubuttonComponent,\r\n UiappmenucontentComponent,\r\n UiactionbuttonComponent,\r\n UivalidationmessageComponent,\r\n ZBulletComponent,\r\n ZbuttonsComponent,\r\n ZcardComponent,\r\n ZchartComponent,\r\n ZcheckboxComponent,\r\n ZChipComponent,\r\n ZcodeeditorComponent,\r\n ZdaterangeComponent,\r\n ZdatetimeComponent,\r\n ZdivComponent,\r\n ZformComponent,\r\n ZformcontrolComponent,\r\n ZgaugeComponent,\r\n ZgridComponent,\r\n ZimgComponent,\r\n ZkcardComponent,\r\n ZlabelComponent,\r\n ZmfbComponent,\r\n ZmodalComponent,\r\n ZmodalMobileComponent,\r\n ZnumericComponent,\r\n ZpostselectinputComponent,\r\n ZquerybuilderComponent,\r\n ZreportComponent,\r\n ZschedulerComponent,\r\n ZselectmultipleComponent,\r\n ZtabComponent,\r\n ZtextComponent,\r\n ZtextareaComponent,\r\n ZtexteditorComponent,\r\n ZtreeComponent,\r\n ZtreelistComponent,\r\n ZtrendcardComponent,\r\n ZunknownComponent,\r\n ZudfComponent,\r\n ZuploadComponent,\r\n ZworkflowbuttonsComponent\r\n ],\r\n providers: [\r\n ModalService\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\n\r\nexport class MmhglobalDynamicformModule { }\r\n","/*\r\n * Public API Surface of dynamic-form\r\n */\r\n\r\n/********** Service **********/\r\nexport * from './lib/services/main.service';\r\n// export * from './lib/zmodal/modal.service';\r\n// export * from './lib/services/zcomponent.service';\r\n// export * from './lib/services/zcomponent.debug.service';\r\n\r\n\r\n/********** Directive **********/\r\nexport * from './lib/directives/scrollbar.theme.directive';\r\nexport * from './lib/directives/fieldelement.directive';\r\nexport * from './lib/zgrid/zgrid.binding.directive';\r\nexport * from './lib/zgrid/zgrid.popup.anchor-target.directive'\r\nexport * from './lib/zselectmultiple/zselectmultiple.directive';\r\n\r\n\r\n/********** Module **********/\r\nexport * from './lib/mmhglobal-dynamicform.module'; \r\n\r\n\r\n/********** Addon **********/\r\nexport * from './lib/zdatetime/dateParser.pipe';\r\nexport * from './lib/zcodeeditor/zcodeeditor.pipe';\r\nexport * from './lib/zdiv/zdiv.pipe';\r\nexport * from './lib/zreport/zreport.config';\r\nexport * from './lib/ztab/ztab.pipe';\r\n// export * from './lib/zmodal/zmodal.module';\r\nexport * from './lib/zgrid/date-range-cell-filter.component';\r\nexport * from './lib/zscheduler/zscheduler.toolbar.component';\r\n\r\n\r\n/********** zComponent **********/\r\nexport * from './lib/uicontent/uicontent.component';\r\nexport * from './lib/uiheader/uiheader.component';\r\nexport * from './lib/uipage/uipage.component';\r\nexport * from './lib/uimenucontent/uimenucontent.component';\r\nexport * from './lib/uimenubutton/uimenubutton.component';\r\nexport * from './lib/uiappmenucontent/uiappmenucontent.component';\r\nexport * from './lib/uiactionbutton/uiactionbutton.component';\r\nexport * from './lib/uivalidationmessage/uivalidationmessage.component';\r\nexport * from './lib/zbullet/zbullet.component';\r\nexport * from './lib/zbuttons/zbuttons.component';\r\nexport * from './lib/zcard/zcard.component';\r\nexport * from './lib/zchart/zchart.component';\r\nexport * from './lib/zcheckbox/zcheckbox.component';\r\nexport * from './lib/zchip/zchip.component';\r\nexport * from './lib/zcodeeditor/zcodeeditor.component';\r\nexport * from './lib/zdaterange/zdaterange.component';\r\nexport * from './lib/zdatetime/zdatetime.component';\r\nexport * from './lib/zdiv/zdiv.component';\r\nexport * from './lib/zform/zform.component';\r\nexport * from './lib/zformcontrol/zformcontrol.component';\r\nexport * from './lib/zgauge/zgauge.component';\r\nexport * from './lib/zgrid/zgrid.component';\r\nexport * from './lib/zimg/zimg.component';\r\nexport * from './lib/zkcard/zkcard.component';\r\nexport * from './lib/zlabel/zlabel.component';\r\nexport * from './lib/zmfb/zmfb.component';\r\nexport * from './lib/zmodal/zmodal.component';\r\nexport * from './lib/zmodal/zmodal-mobile.component';\r\nexport * from './lib/znumeric/znumeric.component';\r\nexport * from './lib/zpostselectinput/zpostselectinput.component';\r\nexport * from './lib/zquerybuilder/zquerybuilder.component';\r\nexport * from './lib/zreport/zreport.component';\r\nexport * from './lib/zscheduler/zscheduler.component';\r\nexport * from './lib/zselectmultiple/zselectmultiple.component';\r\nexport * from './lib/ztab/ztab.component';\r\nexport * from './lib/ztext/ztext.component';\r\nexport * from './lib/ztextarea/ztextarea.component';\r\nexport * from './lib/ztexteditor/ztexteditor.component';\r\nexport * from './lib/ztree/ztree.component';\r\nexport * from './lib/ztreelist/ztreelist.component';\r\nexport * from './lib/ztrendcard/ztrendcard.component';\r\nexport * from './lib/zudf/zudf.component';\r\nexport * from './lib/zunknown/zunknown.component';\r\nexport * from './lib/zupload/zupload.component';\r\nexport * from './lib/zworkflowbuttons/zworkflowbuttons.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {ZComponentDebugService as ɵa} from './lib/services/zcomponent.debug.service';\nexport {ZComponentService as ɵb} from './lib/services/zcomponent.service';"],"names":["ZGroup","BehaviorSubject","ZComponentHelper","forkJoin","tap","switchMap","of","map","HttpParams","MESSAGETYPE","Injectable","Router","AlertService","AuthService","FieldService","ResourceApiService","ToastService","WebApiService","ZmodalHelper","DialogContentBase","Component","DialogRef","ModalController","ZCoreService","Platform","Input","NavController","CacheService","ModalService","Directive","ElementRef","ViewContainerRef","Subject","DataBindingDirective","Inject","GridComponent","StorageSessionService","ZGridStatePersistingService","HostListener","Pipe","BaseFilterCellComponent","FilterService","take","delay","ToolbarService","ActivatedRoute","MenuController","MenuService","ZComponentProperties","Validators","WorkflowService","ActionSheetController","ViewChild","TooltipDirective","FormGroup","FormControl","process","FormArray","concatMap","FormBuilder","AttachmentService","ZSelectPostApiParams","DefaultPageSettingParams","QueryBuilderComponent","ViewEncapsulation","ChangeDetectorRef","AsyncSubject","HttpEventType","UploadMetaData","CompressImageService","NgZone","ComponentFactoryResolver","NgModule","IonicModule","IonicSelectableModule","CommonModule","RouterModule","FormsModule","ReactiveFormsModule","AceEditorModule","FontAwesomeModule","QueryBuilderModule","ArcGaugeModule","ButtonsModule","ChartsModule","CalendarModule","DateInputsModule","DropDownsModule","EditorModule","GridModule","ExcelModule","IndicatorsModule","IntlModule","InputsModule","SwitchModule","TextBoxModule","LabelModule","LayoutModule","PanelBarModule","TabStripModule","PopupModule","ProgressBarModule","TelerikReportingModule","SchedulerModule","TreeListModule","TreeViewModule","TooltipModule","UploadModule","UploadsModule","ZCoreModule","MmhglobalZmodalModule","CUSTOM_ELEMENTS_SCHEMA"],"mappings":";;;;;;IAAA;;;;;;;;;;;;;;IAcA;IAEA,IAAI,aAAa,GAAG,UAAS,CAAC,EAAE,CAAC;QAC7B,aAAa,GAAG,MAAM,CAAC,cAAc;aAChC,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;YAC5E,UAAU,CAAC,EAAE,CAAC,IAAI,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;QACtG,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC;aAEc,SAAS,CAAC,CAAC,EAAE,CAAC;QAC1B,IAAI,OAAO,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,IAAI;YACrC,MAAM,IAAI,SAAS,CAAC,sBAAsB,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,+BAA+B,CAAC,CAAC;QAC9F,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpB,SAAS,EAAE,KAAK,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;QACvC,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;QAClB,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,QAAQ,CAAC,CAAC;YAC3C,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACjD,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;aAChF;YACD,OAAO,CAAC,CAAC;SACZ,CAAA;QACD,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC3C,CAAC,CAAA;aAEe,MAAM,CAAC,CAAC,EAAE,CAAC;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;oBAC1E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACzB;QACL,OAAO,CAAC,CAAC;IACb,CAAC;aAEe,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI;QACpD,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;YAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;;YAC1H,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;gBAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;oBAAE,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;QAClJ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;aAEe,OAAO,CAAC,UAAU,EAAE,SAAS;QACzC,OAAO,UAAU,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,CAAA;IACzE,CAAC;aAEe,UAAU,CAAC,WAAW,EAAE,aAAa;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;aAEe,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS;QACvD,SAAS,KAAK,CAAC,KAAK,IAAI,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;QAC5G,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM;YACrD,SAAS,SAAS,CAAC,KAAK,IAAI,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;aAAE;YAAC,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC;aAAE,EAAE;YAC3F,SAAS,QAAQ,CAAC,KAAK,IAAI,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;aAAE;YAAC,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC;aAAE,EAAE;YAC9F,SAAS,IAAI,CAAC,MAAM,IAAI,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;YAC9G,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;SACzE,CAAC,CAAC;IACP,CAAC;aAEe,WAAW,CAAC,OAAO,EAAE,IAAI;QACrC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,cAAa,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBAAE,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,cAAa,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACzJ,SAAS,IAAI,CAAC,CAAC,IAAI,OAAO,UAAU,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;QAClE,SAAS,IAAI,CAAC,EAAE;YACZ,IAAI,CAAC;gBAAE,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;YAC9D,OAAO,CAAC;gBAAE,IAAI;oBACV,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;wBAAE,OAAO,CAAC,CAAC;oBAC7J,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;wBAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;oBACxC,QAAQ,EAAE,CAAC,CAAC,CAAC;wBACT,KAAK,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,CAAC,GAAG,EAAE,CAAC;4BAAC,MAAM;wBAC9B,KAAK,CAAC;4BAAE,CAAC,CAAC,KAAK,EAAE,CAAC;4BAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;wBACxD,KAAK,CAAC;4BAAE,CAAC,CAAC,KAAK,EAAE,CAAC;4BAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;4BAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;4BAAC,SAAS;wBACjD,KAAK,CAAC;4BAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;4BAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;4BAAC,SAAS;wBACjD;4BACI,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;6BAAE;4BAC5G,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;gCAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gCAAC,MAAM;6BAAE;4BACtF,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;gCAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gCAAC,CAAC,GAAG,EAAE,CAAC;gCAAC,MAAM;6BAAE;4BACrE,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;gCAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gCAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gCAAC,MAAM;6BAAE;4BACnE,IAAI,CAAC,CAAC,CAAC,CAAC;gCAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;4BACtB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;4BAAC,SAAS;qBAC9B;oBACD,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;iBAC9B;gBAAC,OAAO,CAAC,EAAE;oBAAE,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAAC,CAAC,GAAG,CAAC,CAAC;iBAAE;wBAAS;oBAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;iBAAE;YAC1D,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gBAAE,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;QAC9D,IAAI,EAAE,KAAK,SAAS;YAAE,EAAE,GAAG,CAAC,CAAC;QAC7B,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,cAAa,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC,KAAK,UAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;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;aAEa,YAAY,CAAC,CAAC,EAAE,CAAC;QAC7B,KAAK,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;gBAAE,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAClH,CAAC;aAEe,QAAQ,CAAC,CAAC;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;QAC9E,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO;gBAC1C,IAAI,EAAE;oBACF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM;wBAAE,CAAC,GAAG,KAAK,CAAC,CAAC;oBACnC,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;iBAC3C;aACJ,CAAC;QACF,MAAM,IAAI,SAAS,CAAC,CAAC,GAAG,yBAAyB,GAAG,iCAAiC,CAAC,CAAC;IAC3F,CAAC;aAEe,MAAM,CAAC,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC3D,IAAI,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;QACjB,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;gBAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;SAC9E;QACD,OAAO,KAAK,EAAE;YAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;SAAE;gBAC/B;YACJ,IAAI;gBACA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;oBAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACpD;oBACO;gBAAE,IAAI,CAAC;oBAAE,MAAM,CAAC,CAAC,KAAK,CAAC;aAAE;SACpC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED;aACgB,QAAQ;QACpB,KAAK,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE;YAC9C,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,OAAO,EAAE,CAAC;IACd,CAAC;IAED;aACgB,cAAc;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;YAAE,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;QACpB,OAAO,CAAC,CAAC;IACb,CAAC;aAEe,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI;QACxC,IAAI,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,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;oBACpB,IAAI,CAAC,EAAE;wBAAE,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;iBACnB;aACJ;QACD,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7D,CAAC;aAEe,OAAO,CAAC,CAAC;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;QAC3D,IAAI,CAAC,MAAM,CAAC,aAAa;YAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;QACvF,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;QAC9D,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,cAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACtH,SAAS,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;YAAE,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,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;QAC1I,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI;YAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAAE;QAAC,OAAO,CAAC,EAAE;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAAE,EAAE;QAClF,SAAS,IAAI,CAAC,CAAC,IAAI,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;QACxH,SAAS,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE;QAClD,SAAS,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE;QAClD,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;IACtF,CAAC;aAEe,gBAAgB,CAAC,CAAC;QAC9B,IAAI,CAAC,EAAE,CAAC,CAAC;QACT,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,cAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5I,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,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;aAEe,aAAa,CAAC,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,aAAa;YAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;QACvF,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACnC,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,cAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACjN,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,IAAI,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;QAChK,SAAS,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAS,CAAC,IAAI,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE;IAChI,CAAC;aAEe,oBAAoB,CAAC,MAAM,EAAE,GAAG;QAC5C,IAAI,MAAM,CAAC,cAAc,EAAE;YAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;SAAE;aAAM;YAAE,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;SAAE;QAC/G,OAAO,MAAM,CAAC;IAClB,CAAC;IAAA,CAAC;IAEF,IAAI,kBAAkB,GAAG,MAAM,CAAC,MAAM,IAAI,UAAS,CAAC,EAAE,CAAC;QACnD,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;QACd,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC,CAAC;aAEc,YAAY,CAAC,GAAG;QAC5B,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU;YAAE,OAAO,GAAG,CAAC;QACtC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,GAAG,IAAI,IAAI;YAAE,KAAK,IAAI,CAAC,IAAI,GAAG;gBAAE,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;oBAAE,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QACzI,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChC,OAAO,MAAM,CAAC;IAClB,CAAC;aAEe,eAAe,CAAC,GAAG;QAC/B,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC5D,CAAC;aAEe,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC3D,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC;YAAE,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;YAAE,MAAM,IAAI,SAAS,CAAC,0EAA0E,CAAC,CAAC;QACnL,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;aAEe,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAClE,IAAI,IAAI,KAAK,GAAG;YAAE,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAC;QACxE,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC;YAAE,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;YAAE,MAAM,IAAI,SAAS,CAAC,yEAAyE,CAAC,CAAC;QAClL,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;;;QCpNE,gCACU,MAAc,EACd,YAA0B,EAC1B,WAAwB,EACxB,YAA0B,EAC1B,kBAAsC,EACtC,YAA0B,EAC1B,aAA4B;YAN5B,WAAM,GAAN,MAAM,CAAQ;YACd,iBAAY,GAAZ,YAAY,CAAc;YAC1B,gBAAW,GAAX,WAAW,CAAa;YACxB,iBAAY,GAAZ,YAAY,CAAc;YAC1B,uBAAkB,GAAlB,kBAAkB,CAAoB;YACtC,iBAAY,GAAZ,YAAY,CAAc;YAC1B,kBAAa,GAAb,aAAa,CAAe;SAClC;QAKJ,sBAAI,yCAAK;iBAAT;gBACE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;aAChC;;;WAAA;QAED,sBAAI,yCAAK;iBAAT;gBACE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;aACzB;;;WAAA;QAEM,+CAAc,GAAd,UAAe,KAAa,EAAE,WAAwB;YAC3D,KAAK,CAAC,MAAM,GAAG,IAAIA,SAAM,CAAC,IAAI,CAAC,CAAC;YAChC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;YAC1B,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG;gBACnB,mBAAmB,EAAE,EAAE;gBACvB,aAAa,EAAE,CAAC;gBAChB,wBAAwB,EAAE,EAAE;gBAC5B,mBAAmB,EAAE,CAAC;aACvB,CAAC;YACF,KAAK,CAAC,MAAM,CAAC,WAAW,GAAG,EAAE,CAAC;YAC9B,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC;YACzB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;SAChC;QAGM,gDAAe,GAAf,UAAgB,aAA4B,EAAE,EAAO;YAArD,iBA+DN;YA9DC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE;gBACpB,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC;aACtB;YAED,IAAM,CAAC,GAAW,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;YAClC,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;YACxC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;YACjB,IAAI,EAAE,CAAC,YAAY,EAAE;gBACnB,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;aAC/B;YAED,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE;;gBAEf,MAAM,EAAE,EAAE;gBACV,OAAO,EAAE,IAAIC,oBAAe,CAAwB,IAAI,CAAC;gBACzD,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM;gBACvB,MAAM,EAAE,EAAE,CAAC,KAAK;gBAChB,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC;gBACpD,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;gBACvC,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;gBACvC,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;gBAC3C,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;gBAC/C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;gBACvC,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,sBAAsB,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;gBACpD,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;gBAClD,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;gBACpD,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC1C,8BAA8B,EAAE,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC9E,2BAA2B,EAAE,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAC7D,kBAAkB,EAClB,WAAW,EACX,IAAI,CAAC,KAAK,EACV,uBAAuB,CACxB;gBACD,0BAA0B,EAAE,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC;gBACtE,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;gBACxC,yBAAyB,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC3D,8BAA8B,EAAE,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAChE,qBAAqB,EACrB,WAAW,EACX,IAAI,CAAC,KAAK,EACV,0BAA0B,CAC3B;gBACD,6BAA6B,EAAE,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC;aAC7E,CAAC,CAAC;YACH,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE;gBACZ,CAAC,CAAC,KAAK,GAAG,EAAE,mBAAmB,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;aACzD;YAED,EAAE,CAAC,YAAY,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,UAAC,KAA4B,IACjE,OAAA,KAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,EAAE,KAAI,CAAC,GAAA,CAClC,CAAC;YACFC,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YACnH,OAAO,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;SACjC;QAEO,gDAAe,GAAf,UAAgB,EAAO;YAC7B,IAAM,CAAC,GAAW,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;YAElC,IAAM,YAAY,GAAG,EAAE,CAAC;YACxB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;YAEvC,IAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,WAAW,GAAG,WAAW,CAAC;YACjE,IAAM,SAAS,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;YACrC,IAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC7D,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAE/B,OAAOC,aAAQ,CAAC,YAAY,CAAC,CAAC;SAC/B;QAEO,6CAAY,GAAZ;YACN,IAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;YACrB,IAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAC1D,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;SACtF;QAEO,+CAAc,GAAd,UAAe,IAAY,EAAE,YAAoB;YACvD,IAAI,IAAI,KAAK,WAAW,EAAE;gBACxB,OAAO,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;aAC9C;iBAAM;gBACL,OAAO,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;aAC9C;SACF;QAEO,mDAAkB,GAAlB,UAAmB,YAAoB;YAC7C,IAAM,CAAC,GAAW,IAAI,CAAC,KAAK,CAAC;YAC7B,IAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACpD,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,IAAI,CACrFC,aAAG,CAAC,UAAC,QAAa;;gBAEhB,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBAClC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBAC5B,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxB,IAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACzC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE;oBACf,SAAS,EAAEF,mBAAgB,CAAC,gBAAgB,CAAC,MAAM,CAAC;iBACrD,CAAC,CAAC;aACJ,CAAC,CACH,CAAC;SACH;QAEO,mDAAkB,GAAlB,UAAmB,YAAoB;YAAvC,iBAmBP;YAlBC,IAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;YACrB,IAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YAC5D,IAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACrD,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,CAClEG,mBAAS,CAAC,UAAC,YAAiB;;gBAE1B,OAAO,KAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,YAAY,CAAC,oBAAoB,EAAE,CAAC,CAAC;aACrF,CAAC,EACFD,aAAG,CAAC,UAAC,QAAa;gBAChB,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBAClC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBAC5B,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxB,IAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACzC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE;oBACf,SAAS,EAAEF,mBAAgB,CAAC,gBAAgB,CAAC,MAAM,CAAC;iBACrD,CAAC,CAAC;aACJ,CAAC,CACH,CAAA;SACF;QAGO,6CAAY,GAAZ,UAAa,KAA4B,EAAE,KAAa,EAAE,EAAO;YACvE,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;gBACrE,OAAO;aACR;;YAED,IAAI,QAAQ,CAAC;YAEb,IAAI;gBACF,QAAQ,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAChD,EAAE,EACF,KAAK,CAAC,MAAM,CACb,CAAC;;aAEH;YAAC,OAAO,KAAK,EAAE;gBACd,OAAO,CAAC,IAAI,CACV,4BAA4B,EAC5B,KAAK,CAAC,MAAM,EACZ,YAAY,EACZ,KAAK,CACN,CAAC;aACH;;YAGD,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;gBAClC,IAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAClC,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;aAC3B;iBAAM,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;gBACvC,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;oBACvC,IAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC5D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC7B,OAAO;iBACR;gBAED,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,EAAE;;oBAEpC,IAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;;;;;;;;oBAShC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,aAAa,IAAI,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;iBACzF;aACF;iBAAM,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;gBACvC,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,EAAE;oBACpC,IAAI,QAAQ,CAAC,WAAW,EAAE;wBACxB,IAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBAC/D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;wBAC5B,OAAO;qBACR;;;;;;;oBASD,IAAI,QAAQ,CAAC,UAAU,EAAE;;wBAGvB,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,aAAa,IAAI,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,UAAU,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBACrH,OAAO;qBACR;oBACD,OAAO,CAAC,IAAI,CACV,yBAAyB,EACzB,QAAQ,EACR,iBAAiB,EACjB,KAAK,CAAC,MAAM,CACb,CAAC;iBACH;;aAEF;iBAAM;gBACL,OAAO,CAAC,IAAI,CACV,qCAAqC,EACrC,KAAK,CAAC,MAAM,EACZ,WAAW,EACX,KAAK,CACN,CAAC;aACH;SACF;QAEO,2DAA0B,GAA1B,UAA2B,KAAU;YAArC,iBAyBP;;YAvBC,IAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC;YAC3B,QAAQ,GAAG,CAAC,IAAI;gBACd,KAAK,WAAW,CAAC;gBACjB,KAAK,WAAW;oBACd,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC;wBACxD,KAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;qBACnB,CAAC,CAAC;oBACH,MAAM;gBACR,KAAK,mBAAmB;oBACtB,IAAM,cAAc,GAAG,mCAAmC,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC;oBAC7F,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;oBACvC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBAClB,MAAM;gBACR,KAAK,UAAU,CAAC;gBAChB,KAAK,WAAW,CAAC;gBACjB,KAAK,UAAU,CAAC;gBAChB,KAAK,aAAa;oBAChB,IAAI,CAAC,iBAAiB,CAAC,mCAAmC,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;oBACpF,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBAClB,MAAM;gBACR;oBACE,MAAM;aACT;SACF;QAEO,0CAAS,GAAT,UAAU,KAAa;;;;YAI7BA,mBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SACjF;QAEO,kDAAiB,GAAjB,UAAkB,QAAgB;YACxC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,QAAQ,CAAC;YAC/CA,mBAAgB,CAAC,aAAa,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;SACzE;QAEM,6CAAY,GAAZ;YACL,IAAM,eAAe,GAAGA,mBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;YAC3F,IAAI,eAAe,EAAE;gBACnB,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;aAC/D;SACF;QAEO,8CAAa,GAAb,UAAc,SAAmC,EAAE,UAAkB,EAAE,MAAc,EAC3F,EAAO,EAAE,QAAa,EAAE,QAAiB;YAEzC,IAAM,SAAS,GAAG;gBAChB,EAAE,IAAI,EAAE,cAAc,EAAE;gBACxB,EAAE,IAAI,EAAE,aAAa,EAAE;gBACvB,EAAE,IAAI,EAAE,cAAc,EAAE;gBACxB,EAAE,IAAI,EAAE,kBAAkB,EAAE;gBAC5B,EAAE,IAAI,EAAE,0BAA0B,EAAE;gBACpC,EAAE,IAAI,EAAE,4BAA4B,EAAE;gBACtC,EAAE,IAAI,EAAE,yBAAyB,EAAE;gBACnC,EAAE,IAAI,EAAE,gCAAgC,EAAE;gBAC1C,EAAE,IAAI,EAAE,mCAAmC,EAAE;;;;;aAK9C,CAAC;YAEF,IAAI,OAAO,CAAC;YACZ,IAAI,UAAU,EAAE;gBACd,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,GAAA,CAAC,CAAC;aAClG;YAED,IAAI,MAAM,KAAK,CAAC,IAAI,UAAU,EAAE;gBAC9B,OAAOI,OAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;aACjC;iBAAM,IAAI,MAAM,KAAK,CAAC,EAAE;gBACvB,OAAOA,OAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;aACnC;iBAAM;gBACL,OAAOA,OAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;aAC5B;SACF;QAEO,6CAAY,GAAZ;YACN,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC;SACzC;QAEO,kDAAiB,GAAjB,UAAkB,KAAU,EAAE,KAAa,EAAE,EAAO;;YAE1D,IAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;YAClC,IAAI,QAAQ,EAAE;gBACZ,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;aAC3E;SACF;QAEO,+DAA8B,GAA9B,UAA+B,EAAyB;YAC9D,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACzB;QAGO,mDAAkB,GAAlB;YACN,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,SAAS,EAAE,CAAC;SACxD;QAEO,qDAAoB,GAApB;YACN,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,WAAW,EAAE,CAAC;SAC1D;QAEO,iDAAgB,GAAhB;YACN,IAAI;gBACF,IAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;;;gBAG7C,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAGJ,mBAAgB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;aAChE;YAAC,WAAM;gBACN,SAAS;aACV;SACF;QAEO,iDAAgB,GAAhB,UAAiB,EAAuB;YAC9C,IAAM,aAAa,GAAG,UAAC,IAAS;gBAC9B,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE;oBACvC,OAAO,IAAI,CAAC,UAAU,CAAC;iBACxB;gBACD,OAAO,KAAK,CAAC;aACd,CAAC;YACF,QACE,EAAE,CAAC,QAAQ,CAAC,IAAI;gBAChB,MAAM;gBACN,EAAE,CAAC,QAAQ,CAAC,IAAI;gBAChB,MAAM;gBACN,aAAa,CAAC,EAAE,CAAC,QAAQ,CAAC,EAC1B;SACH;QAEK,4CAAW,GAAX,UAAY,KAA4B;;;iCAiC7C;;;;;4BA/BC,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;4BAC5C,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,gBAAgB,CACpD,qBAAqB,EACrB,WAAW,EACX,IAAI,EACJ,IAAI,CACL,CAAC;4BACI,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;4BAC/C,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC;4BACrC,OAAO,QAAQ,CAAC,UAAU,CAAC;4BACrB,MAAM,GAAG;gCACb,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;6BAC7C,CAAC;4BACY,qBAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,oBAAoB,EAAE,MAAM,CAAC,EAAA;;4BAAvG,KAAK,GAAG,SAA+F;4BAC7G,KAAK,CAAC,SAAS,CAAC,UAAC,SAAwB;gCACvC,IAAI,SAAS,CAAC,YAAY,KAAK,QAAQ,EAAE;oCACvC,OAAO;iCACR;gCACD,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gCACrD,IAAI,OAAO,CAAC,KAAK,EAAE;oCACjB,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC;oCACnC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;iCACtB;gCACD,KAAI,CAAC,cAAc,CAAC,OAAO,EAAE,KAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;gCACnE,IAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gCACzE,IAAM,aAAa,GAAGA,mBAAgB,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;gCACrE,IAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gCACvDA,mBAAgB,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,KAAI,CAAC,KAAK,CAAC,CAAC;gCAC5D,KAAI,CAAC,WAAW,EAAE,CAAC;;6BAEpB,CAAC,CAAC;;;;aACJ;SAAA;QAEO,+CAAc,GAAd,UAAe,OAAY,EAAE,SAAc,EAAE,KAAa;YAChE,IAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxB,IAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC9C,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;aACxE;iBAAM;gBACL,IAAI,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;oBAClC,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;iBAChD;gBACD,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;aACpC;SACF;QAIO,+CAAc,GAAd,UAAe,OAAY,EAAE,SAAc,EAAE,KAAa;YAChE,IAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxB,IAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC9C,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;aACxE;iBAAM;gBACL,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE;oBAChB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;wBAClD,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;qBACrC;oBACD,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iBAC9C;qBAAM;oBACL,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iBACzB;aACF;SACF;QAEO,+CAAc,GAAd,UAAe,SAAc,EAAE,KAAa;YAClD,IAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxB,IAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC9C,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;aAC/D;iBAAM;gBACL,SAAS,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACpC;SACF;QAEO,iDAAgB,GAAhB,UAAiB,EAAyB;YAChD,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;YACtC,IAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YACzCA,mBAAgB,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SAC9D;QAEO,wCAAO,GAAP;YACN,IAAM,EAAE,GAA0B;gBAChC,IAAI,EAAE,EAAE;gBACR,OAAO,EAAE,EAAE;gBACX,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,EAAE;gBACV,IAAI,EAAE,EAAE;gBACR,aAAa,EAAE,IAAI;aACpB,CAAC;YACF,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;SACpB;QAEa,0CAAS,GAAT,UAAU,EAAyB;;;iCA4DhD;;;;4BA3DC,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;4BACjC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,gBAAgB,CACpD,qBAAqB,EACrB,WAAW,EACX,IAAI,EACJ,IAAI,CACL,CAAC;4BAII,YAAY,GAAG;gCACnB,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;gCAC9D,cAAc,EAAE,IAAI;gCACpB,KAAK,EAAE,GAAG;gCACV,QAAQ,EAAE,GAAG;gCACb,eAAe,EAAE,IAAI;gCACrB,aAAa,EAAE,IAAI;gCACnB,UAAU,EAAE,KAAK;gCACjB,WAAW,EAAE,MAAM;gCACnB,UAAU,EAAE,KAAK;gCACjB,SAAS,EAAE,CAAC;gCACZ,SAAS,EAAE,EAAE;gCACb,KAAK,EAAE,OAAO;gCACd,QAAQ,EAAE,sCAAsC;gCAChD,QAAQ,EAAE,KAAK;gCACf,SAAS,EAAE,IAAI;gCACf,OAAO,EAAE,IAAI;6BAQd,CAAC;4BACI,MAAM,GAAG;gCACb,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;6BACjD,CAAC;4BAGY,qBAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,EAAE,wBAAwB,EAAE,MAAM,CAAC,EAAA;;4BAApG,KAAK,GAAG,SAA4F;4BAE1G,KAAK,CAAC,SAAS,CAAC,UAAC,SAAwB;gCACvC,IAAI,SAAS,CAAC,YAAY,KAAK,QAAQ,EAAE;oCACvC,OAAO;iCACR;gCACD,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gCACrD,IAAI,OAAO,CAAC,KAAK,EAAE;oCACjB,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC;oCACnC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;iCACtB;gCACD,KAAI,CAAC,cAAc,CAAC,OAAO,EAAE,KAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;gCAChE,IAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gCACzE,IAAM,aAAa,GAAGA,mBAAgB,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;gCACrE,IAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gCACvDA,mBAAgB,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,KAAI,CAAC,KAAK,CAAC,CAAC;gCAC5D,KAAI,CAAC,WAAW,EAAE,CAAC;;6BAEpB,CAAC,CAAC;;;;aACJ;SAAA;QAEO,6CAAY,GAAZ,UAAa,EAAyB;YAAtC,iBAgBP;YAfC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,EAAE,eAAe,EACnD;gBACE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAiB;gBACpD,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAiB;aACpD,CAAC;iBACD,SAAS,CAAC,UAAA,KAAK;gBACd,IAAI,KAAK,KAAK,KAAK,EAAE;oBACnB,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;oBAC/B,KAAI,CAAC,cAAc,CAAC,KAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;oBACvD,IAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;oBACzE,IAAM,aAAa,GAAGA,mBAAgB,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;oBACrE,IAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;oBACvDA,mBAAgB,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,KAAI,CAAC,KAAK,CAAC,CAAC;iBAC7D;aACF,CAAC,CAAC;SACN;QAEO,iDAAgB,GAAhB;YACN,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;SACvC;QAEO,4CAAW,GAAX;YAAA,iBA2CP;YA1CC,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACzB,IAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAiB,CAAC;YACxC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE;gBACb,OAAO,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;gBAClE,OAAO;aACR;YAED,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE;gBACb,IAAM,MAAM,GAAGA,mBAAgB,CAAC,kBAAkB,CAAC,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC1E,OAAO,CAAC,IAAI,CAAC,qCAAqC,EAAE,MAAM,CAAC,CAAC;gBAC5D,OAAO;aACR;YAEDI,OAAE,CAAC,KAAK,CAAC,MAAM,CAAC;iBACb,IAAI;;;;;YAKHF,aAAG,CAAC;gBACF,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;aACvC,CAAC,EACFC,mBAAS,CAAC;gBACR,OAAO,KAAI,CAAC,aAAa,CAAC,QAAQ,CAChC,KAAK,CAAC,WAAW,GAAG,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,EACzC,KAAK,CAAC,MAAM,CACb;qBACE,IAAI,CACHE,aAAG,CAAC,UAAA,GAAG,IAAI,OAAA,KAAI,CAAC,aAAa,CAAC,GAAG,EAAE,iCAAiC,CAAC,GAAA,CAAC,CACvE,CAAC;aACL,CAAC,EACFF,mBAAS,CAAC,UAAC,MAAW;gBACpB,OAAO,CAAC,GAAG,CAAC,mCAAmC,EAAE,MAAM,CAAC,CAAC;gBACzD,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE;oBACzB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;oBACzC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBAC5B;gBACD,EAAE,CAAC,cAAc,EAAE,CAAC;;gBAEpB,OAAOC,OAAE,CAAC,EAAE,CAAC,CAAC;aACf,CAAC,CAAC;iBACJ,SAAS,EAAE,CAAC;SAChB;;QAIM,iDAAgB,GAAhB;YACL,IAAM,wBAAwB,GAAGJ,mBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,0BAA0B,CAAC,CAAC;YACvG,IAAI,wBAAwB,EAAE;gBAC5B,wBAAwB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;aAC7E;SACF;QAEO,8DAA6B,GAA7B,UAA8B,KAAU;YAAxC,iBAkFP;YAjFC,IAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;YACnD,IAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC;YAChC,IAAM,SAAS,GAAG,QAAQ,CAAC,YAAY,CAAC;;YAGxC,IAAM,MAAM,GAAG,IAAIM,eAAU,EAAE;iBAC5B,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;YAC7B,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,kCAAkC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAC3GD,aAAG,CAAC,UAAM,GAAG;;;;;4BACP,QAAQ,GAAG,EAAE,CAAC;4BACd,UAAU,GAAG,EAAE,CAAC;4BAChB,gBAAgB,GAAG,EAAE,CAAC;4BAE1B,IAAI,GAAG,CAAC,cAAc,EAAE;gCACtB,QAAQ,GAAG,GAAG,CAAC,cAAc,CAAC;6BAC/B;4BAED,IAAI,GAAG,CAAC,gBAAgB,EAAE;gCACxB,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAC,OAAY;oCACxC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;iCAC3D,CAAC,CAAC;6BACJ;4BAED,IAAI,GAAG,CAAC,sBAAsB,EAAE;gCAC9B,GAAG,CAAC,sBAAsB,CAAC,OAAO,CAAC,UAAC,aAAkB;oCACpD,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,IAAI,GAAG,aAAa,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;iCAC7E,CAAC,CAAC;6BACJ;4BAEK,WAAW,GAAG;gCAClB,gBAAgB,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,QAAQ,GAAG,MAAM;gCACzD,kBAAkB,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,UAAU,GAAG,MAAM;gCAC/D,wBAAwB,EAAE,gBAAgB,CAAC,MAAM,GAAG,CAAC,GAAG,gBAAgB,GAAG,MAAM;6BAClF,CAAC;4BAGI,WAAW,GAAG;gCAClB,YAAY,EAAE,KAAK,CAAC,UAAU;gCAC9B,UAAU,EAAE,KAAK,CAAC,EAAE;gCACpB,YAAY,EAAE,KAAK,CAAC,IAAI;gCACxB,YAAY,EAAE,KAAK,CAAC,IAAI;gCACxB,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE;gCAC7B,gBAAgB,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;gCACjC,gBAAgB,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;gCACjC,eAAe,EAAE,SAAS,CAAC,OAAO;gCAClC,kBAAkB,EAAE,SAAS,CAAC,UAAU;gCACxC,WAAW,EAAE,SAAS,CAAC,GAAG;gCAC1B,YAAY,EAAE,SAAS,CAAC,IAAI;6BAC7B,CAAC;4BAEE,eAAe,GAAG;gCACpB,cAAc,EAAE,MAAM;gCACtB,gBAAgB,EAAE,MAAM;gCACxB,gBAAgB,EAAE,MAAM;6BACzB,CAAC;4BAEF,IAAI,KAAK,CAAC,MAAM,EAAE;gCACV,WAAW,GAAG,KAAK,CAAC,MAAM,CAAA;gCAChC,eAAe,GAAG;oCAChB,cAAc,EAAE,WAAW,CAAC,EAAE;oCAC9B,gBAAgB,EAAE,WAAW,CAAC,IAAI;oCAClC,gBAAgB,EAAE,WAAW,CAAC,IAAI;iCACnC,CAAA;6BACF;4BAEK,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC;4BAE3E,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,gBAAgB,CACpD,2BAA2B,EAC3B,WAAW,EACX,IAAI,EACJ,IAAI,CACL,CAAC;4BACY,qBAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,sBAAsB,EAAE,eAAe,CAAC,EAAA;;4BAAlH,KAAK,GAAG,SAA0G;4BACxH,KAAK,CAAC,SAAS,CAAC,UAAC,SAAwB;gCACvC,IAAI,SAAS,CAAC,YAAY,KAAK,QAAQ,EAAE;oCACvC,OAAO;iCACR;6BACF,CAAC,CAAC;;;;aACJ,CAAA,GAAA,CAAC,CACH,CAAC,SAAS,EAAE,CAAC;SACf;QAGD,8CAAa,GAAb,UAAc,GAAmB,EAAE,UAAkB;YAArD,iBAgBC;YAfC,IAAI,GAAG,IAAI,IAAI,EAAE;gBACf,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aACpC;iBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,gBAAgB,KAAK,SAAS,EAAE;gBACvE,IAAI,GAAG,CAAC,gBAAgB,KAAK,IAAI,EAAE;oBACjC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;wBAC3B,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,KAAI,CAAC,aAAa,CAAC,uBAAuB,CAACE,cAAW,CAAC,OAAO,EAC3E,UAAU,WAAM,CAAC,CAAC,QAAU,EAAE,IAAI,CAAC,GAAA,CAAC,CAAC;qBAC3C;yBAAM;wBACL,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAACA,cAAW,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;qBACnF;iBACF;aACF;iBAAM;gBACL,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aACpC;YACD,OAAO,GAAG,CAAC;SACZ;QAED,4CAAW,GAAX,UAAY,GAAQ;YAClB,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;SAC5C;;;;;gBAttBFC,aAAU,SAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;gBArBQC,SAAM;gBAYAC,eAAY;gBAAEC,cAAW;gBAAEC,eAAY;gBACpDC,qBAAkB;gBAAEC,eAAY;gBAAEC,gBAAa;;;;QCSZ,mCAAiB;QAOpD,yBACS,MAAiB,EAChB,SAA0B,EAC1B,YAA0B,EAC1B,aAA4B,EAC5B,kBAAsC,EACtC,YAA0B,EAC1B,QAAkB,EAClB,YAA0B;YARpC,YAWE,kBAAM,MAAM,CAAC,SACd;YAXQ,YAAM,GAAN,MAAM,CAAW;YAChB,eAAS,GAAT,SAAS,CAAiB;YAC1B,kBAAY,GAAZ,YAAY,CAAc;YAC1B,mBAAa,GAAb,aAAa,CAAe;YAC5B,wBAAkB,GAAlB,kBAAkB,CAAoB;YACtC,kBAAY,GAAZ,YAAY,CAAc;YAC1B,cAAQ,GAAR,QAAQ,CAAU;YAClB,kBAAY,GAAZ,YAAY,CAAc;YAZpC,WAAK,GAAW,IAAIjB,SAAM,CAAC,IAAI,CAAC,CAAC;;SAgBhC;;;;QAMD,kCAAQ,GAAR;YACEkB,eAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;SACrC;QAED,qCAAW,GAAX;YACEA,eAAY,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;SACxC;QAED,kCAAQ,GAAR,UAAS,KAA6B;YACpCA,eAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;;SAEpC;QAED,mCAAS,GAAT,UAAU,KAA4B;YACpCA,eAAY,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;SAyBrC;QAED,qCAAW,GAAX,UAAY,KAA6B;YACvCA,eAAY,CAAC,WAAW,CAAC,IAAI,EAAC,KAAK,CAAC,CAAC;SACtC;QAED,0CAAgB,GAAhB;YACE,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;SAC3C;;QAID,sCAAY,GAAZ,UAAa,KAA4B,EAAE,KAAa,EAAE,EAAO;YAC/D,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE;gBACrE,OAAO;aACR;YACD,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;;YAEtC,IAAM,QAAQ,GAAGhB,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;;YAEpF,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;gBAClC,IAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAiB,CAAC;gBACxC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;gBAC3C,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;gBAC/B,IAAI,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,wBAAwB,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,uBAAuB,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,wBAAwB,CAAC,EAAE;oBAC9J,IAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpC,OAAO,CAAC,KAAK,CAAC,CAAC;iBAChB;qBAAM;oBACL,IAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;oBAC/C,OAAO,CAAC,KAAK,CAAC,CAAC;iBAChB;aACF;iBAAM;gBACL,OAAO,CAAC,IAAI,CACV,qCAAqC,EACrC,QAAQ,EACR,WAAW,EACX,KAAK,CACN,CAAC;aACH;SACF;QAED,mCAAS,GAAT,UAAU,KAAU,EAAE,EAAU;YAC9B,IAAM,KAAK,GAAG,EAAE,IAAI,KAAK,CAAC,WAAW,CAAC;YACtC,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,GAAG,GAAG,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC;SAC3E;QAED,sCAAY,GAAZ;;YAEE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;gBACxB,OAAO;oBACL,WAAW,EAAE,GAAG;oBAChB,UAAU,EAAE,GAAG;iBAChB,CAAC;aACH;YACD,OAAO;SACR;QAED,wCAAc,GAAd;YACE,IAAM,CAAC,GAAGA,mBAAgB,CAAC,cAAc,EAAE,CAAC;YAC5C,OAAO,CAAC,CAAC;SACV;;KA5HH,CAAqCiB,oCAAiB;;gBALrDC,YAAS,SAAC;oBACT,QAAQ,EAAE,YAAY;oBACtB,+uCAAsC;;iBAEvC;;;gBAf2BC,4BAAS;gBAJ5BC,kBAAe;gBASOC,eAAY;gBAAzCN,gBAAa;gBAA4CF,qBAAkB;gBAAhCD,eAAY;gBAT/BU,WAAQ;gBASjBZ,eAAY;;;8BAY1Ba,QAAK;;;IC1BR;;QAiCI,+BACY,aAA4B,EAC5B,YAA0B,EAC1B,YAA0B;;YAF1B,kBAAa,GAAb,aAAa,CAAe;YAC5B,iBAAY,GAAZ,YAAY,CAAc;YAC1B,iBAAY,GAAZ,YAAY,CAAc;YAPtC,UAAK,GAAW,IAAIzB,SAAM,CAAC,IAAI,CAAC,CAAC;SAShC;;;;QAMD,wCAAQ,GAAR;YACIkB,eAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;SACvC;QAED,2CAAW,GAAX;YACIA,eAAY,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;SAC1C;QAED,wCAAQ,GAAR,UAAS,KAA6B;YAClCA,eAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;;SAEtC;QAED,yCAAS,GAAT,UAAU,KAA4B;YAClCA,eAAY,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;SAyBvC;QAED,2CAAW,GAAX,UAAY,KAA6B;YACvCA,eAAY,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SACvC;;QAGD,4CAAY,GAAZ,UAAa,KAA4B,EAAE,KAAa,EAAE,EAAO;YAC7D,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE;gBACnE,OAAO;aACV;YACD,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;;YAEtC,IAAM,QAAQ,GAAGhB,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;;YAEpF,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;gBAChC,IAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAiB,CAAC;gBACxC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;gBAC3C,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;gBAC/B,IAAI,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,wBAAwB,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,wBAAwB,CAAC,EAAE;oBACxG,IAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpC,OAAO,CAAC,KAAK,CAAC,CAAC;iBAClB;qBAAM;oBACH,IAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;oBAC/C,OAAO,CAAC,KAAK,CAAC,CAAC;iBAClB;aACJ;iBAAM;gBACH,OAAO,CAAC,IAAI,CACR,qCAAqC,EACrC,QAAQ,EACR,WAAW,EACX,KAAK,CACR,CAAC;aACL;SACJ;QAED,yCAAS,GAAT,UAAU,KAAU,EAAE,EAAU;YAC5B,IAAM,KAAK,GAAG,EAAE,IAAI,KAAK,CAAC,WAAW,CAAC;YACtC,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,GAAG,GAAG,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC;SAC7E;QAED,4CAAY,GAAZ;;YAEI,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;gBACtB,OAAO;oBACH,WAAW,EAAE,GAAG;oBAChB,UAAU,EAAE,GAAG;iBAClB,CAAC;aACL;YACD,OAAO;SACV;QAED,8CAAc,GAAd;YACI,IAAM,CAAC,GAAGA,mBAAgB,CAAC,cAAc,EAAE,CAAC;YAC5C,OAAO,CAAC,CAAC;SACZ;QAED,gDAAgB,GAAhB;YACI,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;SAC7C;;;;gBAzHJkB,YAAS,SAAC;oBACP,QAAQ,EAAE,YAAY;oBACtB,+uCAAsC;;iBAEzC;;;gBAVGH,gBAAa;gBACLM,eAAY;gBAA2CT,eAAY;;;8BAW1EW,QAAK;;;ICHV;IAEA;IACA;;QASE,qBACU,MAAc,EACd,SAA0B,EAC1B,aAA4B,EAC5B,YAA0B,EAC1B,YAA0B,EAC1B,YAA0B,EAC1B,kBAAsC,EACtC,YAA0B,EAC1B,aAA4B,EAC5B,YAA0B,EAC1B,YAA0B,EAC1B,YAAoC;YAXpC,WAAM,GAAN,MAAM,CAAQ;YACd,cAAS,GAAT,SAAS,CAAiB;YAC1B,kBAAa,GAAb,aAAa,CAAe;YAC5B,iBAAY,GAAZ,YAAY,CAAc;YAC1B,iBAAY,GAAZ,YAAY,CAAc;YAC1B,iBAAY,GAAZ,YAAY,CAAc;YAC1B,uBAAkB,GAAlB,kBAAkB,CAAoB;YACtC,iBAAY,GAAZ,YAAY,CAAc;YAC1B,kBAAa,GAAb,aAAa,CAAe;YAC5B,iBAAY,GAAZ,YAAY,CAAc;YAC1B,iBAAY,GAAZ,YAAY,CAAc;YAC1B,iBAAY,GAAZ,YAAY,CAAwB;YAE5C,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;YACvC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC,UAAU,GAAG,GAAG,CAAC;SAChF;QAED,6BAAO,GAAP;YACE,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;SAC9C;QAED,8BAAQ,GAAR,UAAS,KAAa;YACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACxC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACnC,IAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,IAAI,KAAK,CAAC;YAChE,IAAI,WAAW,EAAE;gBACf,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;aAC/C;SACF;QAED,2CAAqB,GAArB;YACE,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC;SAC3C;QAED,oCAAc,GAAd,UACE,QAAgB,EAChB,QAAmC,EACnC,KAAa,EACb,YAAoB;YAEpB,OAAO,IAAI,CAAC,YAAY,CAAC,gBAAgB,CACvC,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,YAAY,CACb,CAAC;SACH;QAED,qCAAe,GAAf,UACE,KAAa,EACb,QAAgB,EAChB,QAAgB,EAChB,EAAO;YAJT,iBA6DC;YAvDC,IAAI,EAAE,CAAC,YAAY,EAAE;gBACnB,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;aAC/B;YACD,IAAM,YAAY,GAAG,KAAK,CAAC,eAAe,IAAI,QAAQ,CAAC;YACvD,KAAK,CAAC,eAAe,GAAG,YAAY,CAAC;YAErC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;gBACnB,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,YAAY,CAAC;gBACzD,gBAAgB,EAAE,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAClD,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,IAAI,CACL;gBACD,SAAS,EAAE,EAAE;gBACb,QAAQ,UAAA;gBACR,QAAQ,UAAA;;gBAER,YAAY,EAAE,QAAQ,CAAC,WAAW,EAAE;;;gBAGpC,SAAS,EAAE,IAAI;gBACf,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,EAAE;gBACV,WAAW,EAAE,EAAE;gBACf,KAAK,EAAE,EAAE;gBACT,OAAO,EAAE,IAAIxB,oBAAe,CAAwB,IAAI,CAAC;;gBAEzD,gBAAgB,EAAE,OAAO;gBACzB,aAAa,EAAE,CAAC;;;gBAGhB,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC9C,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;gBACxC,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;gBACxC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;gBACxC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;gBACxC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC5C,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;gBACxC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;aAQnC,CAAC,CAAC;YAEH,EAAE,CAAC,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,UAAC,KAA4B,IACrE,OAAA,KAAI,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,GAAA,CACpC,CAAC;YAEF,OAAO,EAAE,CAAC,YAAY,CAAC;SACxB;QAED,+BAAS,GAAT,UAAU,KAAa,EAAE,EAAU;YAAnC,iBA0BC;YAzBC,IAAM,KAAK,GAAG,EAAE,IAAI,KAAK,CAAC,WAAW,CAAC;YACtC,OAAO,IAAI,CAAC,aAAa;iBACtB,QAAQ,CAAC,KAAK,CAAC,WAAW,GAAG,GAAG,GAAG,KAAK,EAAE,IAAI,CAAC;iBAC/C,IAAI,CACHG,aAAG,CAAC,UAAC,MAAM;gBACT,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;gBACtB,IACE,KAAK,CAAC,oBAAoB;oBAC1B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;oBAC9D,CAAC,KAAK,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAC3C;oBACA,KAAK,CAAC,kBAAkB;wBACtB,KAAK,CAAC,kBAAkB;4BACxB,GAAG;4BACH,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE;4BAC7C,OAAO,CAAC;iBACX;aACF,CAAC,EACFC,mBAAS,CAAC;gBACR,IAAI,KAAK,CAAC,oBAAoB,EAAE;oBAC9B,OAAO,KAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;iBACzC;gBACD,OAAOC,OAAE,CAAC,EAAE,CAAC,CAAC;aACf,CAAC,CACH,CAAC;SACL;QAED,6BAAO,GAAP,UAAQ,IAAe;YACrB,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;gBACxB,OAAO,IAAI,CAAC;aACb;YAED,IAAI,IAAI,CAAC,gBAAgB,CAAC,EAAE;gBAC1B,OAAO,IAAI,CAAC;aACb;YAED,OAAO,IAAI,CAAC,YAAY;iBACrB,IAAI,CAAC,mBAAmB,EAAE,2CAA2C,EAAE;gBACtE,QAAQ;gBACR,iBAAiB;aAClB,CAAC;iBACD,IAAI,CACHD,mBAAS,CAAC,UAAC,KAAK;gBACd,IAAI,KAAK,KAAK,iBAAiB,EAAE;oBAC/B,OAAOC,OAAE,CAAC,IAAI,CAAC,CAAC;iBACjB;gBACD,OAAOA,OAAE,CAAC,KAAK,CAAC,CAAC;aAClB,CAAC,CACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SA6BL;;;;;;;;;;;;;;;;;;;;;QAuBD,oCAAc,GAAd;YACE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;SAC1B;QAED,kCAAY,GAAZ,UAAa,KAA4B,EAAE,KAAa,EAAE,EAAO;YAC/D,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;gBACrE,OAAO;aACR;YACD,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;YACtC,IAAI,QAAQ,CAAC;YAEb,IAAI;gBACF,QAAQ,GAAGJ,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAChD,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,MAAM,EACZ,KAAK,CACN,CAAC;;aAEH;YAAC,OAAO,KAAK,EAAE;gBACd,OAAO,CAAC,IAAI,CACV,4BAA4B,EAC5B,KAAK,CAAC,MAAM,EACZ,YAAY,EACZ,KAAK,CACN,CAAC;aACH;;YAGD,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;gBAClC,IAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAClC,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;aAC3B;iBAAM,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;gBACvC,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;oBACvC,IAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC5D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC7B,OAAO;iBACR;gBAED,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,EAAE;;oBAEpC,IAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;;;;;;;;oBAShC,IAAI,CAAC,YAAY,CAAC,IAAI,CACpB,KAAK,CAAC,aAAa,IAAI,KAAK,EAC5B,KAAK,EACL,EAAE,EACF,EAAE,EACF,KAAK,CAAC,IAAI,CAAC,EAAE,CACd,CAAC;iBACH;aACF;iBAAM,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;gBACvC,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,EAAE;oBACpC,IAAI,QAAQ,CAAC,WAAW,EAAE;wBACxB,IAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBAC/D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;wBAC5B,OAAO;qBACR;oBAED,IAAM,eAAe,GAAoB,EAAE,CAAC;oBAC5C,eAAe,CAAC,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC;oBACnD,eAAe,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;oBACxC,eAAe,CAAC,UAAU,GAAG,KAAK,CAAC,aAAa,CAAC;oBACjD,eAAe,CAAC,WAAW,GAAG,EAAE,CAAC,KAAK,CAAC;oBACvC,eAAe,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;oBAEjD,IAAI,QAAQ,CAAC,UAAU,EAAE;;wBAEvB,IAAI,CAAC,YAAY,CAAC,IAAI,CACpB,KAAK,CAAC,aAAa,IAAI,QAAQ,CAAC,QAAQ,EACxC,KAAK,EACL,QAAQ,CAAC,UAAU,EACnB,EAAE,EACF,KAAK,CAAC,IAAI,CAAC,EAAE,CACd,CAAC;wBACF,OAAO;qBACR;oBACD,OAAO,CAAC,IAAI,CACV,yBAAyB,EACzB,QAAQ,EACR,iBAAiB,EACjB,KAAK,CAAC,MAAM,CACb,CAAC;iBACH;;aAEF;iBAAM;gBACL,OAAO,CAAC,IAAI,CACV,qCAAqC,EACrC,KAAK,CAAC,MAAM,EACZ,WAAW,EACX,KAAK,CACN,CAAC;aACH;SACF;QAED,mCAAa,GAAb,UAAc,GAAmB,EAAE,UAAkB;YACnD,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;YAE/B,IAAI,GAAG,EAAE;gBACP,IAAI,GAAG,CAAC,gBAAgB,EAAE;oBACxB,IAAI,CAAC,aAAa,CAAC,uBAAuB,CACxCO,cAAW,CAAC,OAAO,EACnB,UAAU,EACV,IAAI,CACL,CAAC;iBACH;gBACD,OAAO,GAAG,CAAC;aACZ;SACF;QAED,iCAAW,GAAX,UAAY,GAAQ;YAClB,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;YAC/B,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;SAC5C;QAEO,oCAAc,GAAd,UAAe,KAA4B,EAAE,KAAa,EAAE,EAAO;YAAnE,iBA0BP;YAzBC,IAAI,KAAK,CAAC,wBAAwB,EAAE;gBAClC,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;oBAC9C,KAAK,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC;oBAC7B,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;;;;;;;;;iBAUlD,CAAC,CAAA;aACH;iBACI;gBACH,KAAK,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC;;;;;gBAO7B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;aAClD;SACF;QAEO,iCAAW,GAAX;YACN,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;YAC/B,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;SAC1B;QAEM,iCAAW,GAAX,UACL,KAA4B,EAC5B,KAAa,EACb,EAAO,EACP,cAAuB;YAEvB,cAAc,GAAG,cAAc,IAAI,aAAa,CAAC;YACjD,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;gBACzB,IAAM,UAAU,GAAG,KAAK,CAAC,MAAM;qBAC5B,IAAI,EAAE;qBACN,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;qBAChB,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;qBAChB,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;gBACpC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;oBACzB,cAAc,GAAG,UAAU,CAAC;iBAC7B;aACF;YAED,IAAM,YAAY,GAAG,KAAK,CAAC,cAAc,CAAU,CAAC;YACpD,IAAI,YAAY,EAAE;gBAChB,YAAY,CAAC,OAAO,EAAE,CAAC;aACxB;YACD,KAAK,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC;SAC9B;QAEO,iCAAW,GAAX;YACN,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;aAChC;YACD,QAAQ,CAAC,MAAM,EAAE,CAAC;;;;;SAKnB;QAED,4CAAsB,GAAtB,UAAuB,KAAa;YAClC,IAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;YAChE,IAAI,WAAW,EAAE;gBACf,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;gBAC9C,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC;gBAC3B,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;aACrB;YACD,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;SAC3B;QAEO,8BAAQ,GAAR,UAAS,KAA4B,EAAE,KAAa;YAApD,iBA0DP;YAzDC,IAAI,MAAM,GAAW,KAAK,CAAC;YAE3B,IAAI,KAAK,EAAE;gBACT,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE;oBACpC,MAAM,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iBAC1C;aACF;YAEDH,OAAE,CAAC,EAAE,CAAC;iBACH,IAAI,CACHD,mBAAS,CAAC,UAAC,MAAM;gBACf,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;gBAC3C,OAAO,KAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;aACpC,CAAC,EACFD,aAAG,CAAC;gBACF,IAAM,WAAW,GAAG,KAAK,CAAC,iBAAiB,IAAI,GAAG,CAAC;gBACnD,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,KAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC9C,IAAM,WAAW,GAAG,KAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC/C,IAAM,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACxD,IAAI,WAAW,KAAK,MAAM,EAAE;oBAC1B,IAAM,SAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBAC7D,SAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC1B,SAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACpB,IAAM,WAAW,GAAG,KAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;oBAChE,IAAI,CAAC,WAAW,EAAE;;wBAEhB,KAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;4BAC1F,KAAI,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC;4BACvB,KAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;4BAC1B,KAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;4BACxB,KAAI,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;4BAC/B,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAO,CAAC,CAAC;yBAC/B,CAAC,CAAC;qBACJ;yBACI;wBACH,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAO,CAAC,CAAC;qBAC/B;iBACF;qBAAM,IAAI,WAAW,KAAK,KAAK,EAAE;oBAChC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC;oBAClB,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;;oBAEnB,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;oBACrB,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;oBACnB,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;oBAC1B,KAAK,CAAC,MAAM,CACV,KAAK,CAAC,oBAAoB,CAC3B,GAAG,KAAK,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;iBACxC;qBAAM;oBACL,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;oBAC1B,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE;wBAC7D,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc;qBAC3C,CAAC,CAAC;;iBAEJ;aACF,CAAC,CACH;iBACA,SAAS,EAAE,CAAC;SAChB;QAEM,iCAAW,GAAX,UAAY,KAA4B,EAAE,KAAa;YAAvD,iBAmGN;YAlGC,IAAI,cAAc,GAAG,IAAI,CAAC;YAC1B,IAAI,EAAE,GAAc,KAAK,CAAC,IAAiB,CAAC;YAC5C,IAAI,MAAM,GAAW,KAAK,CAAC;YAE3B,IAAI,KAAK,EAAE;gBACT,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE;oBACpC,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAiB,CAAC;oBACvD,MAAM,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iBAC1C;aACF;YAED,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE;gBACb,OAAO,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;gBAC5D,OAAO;aACR;YAED,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE;gBACb,IAAM,MAAM,GAAGF,mBAAgB,CAAC,kBAAkB,CAAC,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;gBACjF,OAAO,CAAC,IAAI,CAAC,+BAA+B,EAAE,MAAM,CAAC,CAAC;gBACtD,OAAO;aACR;YAEDI,OAAE,CAAC,MAAM,CAAC,MAAM,CAAC;iBACd,IAAI,CACHD,mBAAS,CAAC,UAAC,MAAM;gBACf,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC;gBAC9C,OAAO,KAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;aACvC,CAAC,EACFD,aAAG,CAAC;gBACF,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;aACxC,CAAC,EACFC,mBAAS,CAAC;gBACR,IAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBAClDH,mBAAgB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;;;;;;;;;gBAU5C,OAAO,KAAI,CAAC,aAAa;qBACtB,SAAS,CACR,MAAM,CAAC,WAAW;gBAClB,QAAQ,CACT;qBACA,IAAI,CACHE,aAAG,CAAC,UAAC,IAAI;oBACP,cAAc,GAAG,IAAI,CAAC;oBACtB,OAAO,IAAI,CAAC;iBACb,CAAC,EACFG,aAAG,CAAC,UAAC,GAAG,IACN,OAAA,KAAI,CAAC,aAAa,CAAC,GAAG,EAAE,iCAAiC,CAAC,GAAA,CAC3D,CACF,CAAC;aACL,CAAC,EACFF,mBAAS,CAAC,UAAC,MAAW;gBAEpB,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC;gBAC9C,IAAI,MAAM,EAAE;;oBAGV,IAAI,MAAM,CAAC,IAAI,EAAE;wBACf,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;wBAC1C,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;qBAC5B;yBACI,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE;wBACrB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;wBACrC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;qBACvB;oBAED,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;oBACtC,EAAE,CAAC,cAAc,EAAE,CAAC;iBACrB;gBAED,OAAO,KAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;aACtC,CAAC,EACFD,aAAG,CAAC,UAAC,IAAI;gBACP,IAAI,cAAc,CAAC,gBAAgB,IAAI,IAAI,IAAI,cAAc,CAAC,gBAAgB,IAAI,IAAI,EAAE;oBACtF,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE;wBAClC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;wBACrB,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;wBACrB,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;wBAC3B,MAAM,CAAC,gBAAgB,GAAG,OAAO,CAAC;wBAClC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;wBACnC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;qBACrB;oBACD,EAAE,CAAC,cAAc,EAAE,CAAC;iBACrB;qBAAM;oBACL,EAAE,CAAC,WAAW,EAAE,CAAC;iBAClB;;;aAGF,CAAC,CACH;iBACA,SAAS,EAAE,CAAC;SAChB;QAEM,iCAAW,GAAX,UAAY,KAA4B,EAAE,KAAa;YAAvD,iBAsEN;YArEC,IAAI,EAAE,GAAc,KAAK,CAAC,IAAiB,CAAC;YAC5C,IAAI,MAAM,GAAW,KAAK,CAAC;YAE3B,IAAI,KAAK,EAAE;gBACT,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE;oBACpC,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAiB,CAAC;oBACvD,MAAM,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iBAC1C;aACF;YAED,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE;gBACb,OAAO,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;gBAC5D,OAAO;aACR;YAED,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE;gBACb,IAAM,MAAM,GAAGF,mBAAgB,CAAC,kBAAkB,CAAC,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;gBACjF,OAAO,CAAC,IAAI,CAAC,+BAA+B,EAAE,MAAM,CAAC,CAAC;gBACtD,OAAO;aACR;YAEDI,OAAE,CAAC,MAAM,CAAC,MAAM,CAAC;iBACd,IAAI,CACHD,mBAAS,CAAC,UAAC,MAAM;gBACf,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC;gBAC9C,OAAO,KAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;aACvC,CAAC,EACFD,aAAG,CAAC;gBACF,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;aACxC,CAAC,EACFC,mBAAS,CAAC;gBACR,OAAO,KAAI,CAAC,aAAa;qBACtB,QAAQ,CAAC,MAAM,CAAC,WAAW,GAAG,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC;qBACpE,IAAI,CACHE,aAAG,CAAC,UAAC,GAAG,IACN,OAAA,KAAI,CAAC,aAAa,CAAC,GAAG,EAAE,iCAAiC,CAAC,GAAA,CAC3D,CACF,CAAC;aACL,CAAC,EACFF,mBAAS,CAAC,UAAC,MAAW;gBACpB,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC;gBAC9C,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE;oBACzB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC1C,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;;iBAE5B;qBACI,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE;oBAC/B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;oBACrC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;;iBAEvB;gBAED,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;gBAC1B,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;gBAE3B,EAAE,CAAC,cAAc,EAAE,CAAC;gBACpB,OAAO,KAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;aACtC,CAAC,CACH;iBACA,SAAS,EAAE,CAAC;;;;;;;;;;SAUhB;QAEO,mCAAa,GAAb,UAAc,KAA4B,EAAE,KAAa;YAC/D,IAAI,MAAM,GAAW,KAAK,CAAC;YAE3B,IAAI,KAAK,EAAE;gBACT,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE;oBACpC,MAAM,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iBAC1C;aACF;YAED,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;YAErB,IAAM,WAAW,GAAG,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;YAC3E,WAAW,CAAC,OAAO,CAAC,UAAC,KAAK;gBACxB,IAAI,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;oBACvC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;iBAC7B;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YAC1D,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC3B,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;YAC1B,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;SAC5B;QAEO,iCAAW,GAAX,UAAY,KAA4B,EAAE,KAAa;YAAvD,iBAmDP;YAlDC,IAAI,EAAE,GAAc,KAAK,CAAC,IAAiB,CAAC;YAC5C,IAAI,MAAM,GAAW,KAAK,CAAC;YAE3B,IAAI,KAAK,EAAE;gBACT,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE;oBACpC,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAiB,CAAC;oBACvD,MAAM,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iBAC1C;aACF;YAEDC,OAAE,CAAC,MAAM,CAAC,MAAM,CAAC;iBACd,IAAI,CACHD,mBAAS,CAAC,UAAC,MAAM;gBACf,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC;gBAC9C,OAAO,KAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;aACvC,CAAC,EACFA,mBAAS,CAAC;gBACR,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;gBAC1B,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;gBAC3B,OAAO,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,EAAE,eAAe,EAC5D;oBACE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAiB;oBACpD,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAiB;iBACpD,CAAC,CAAC;aACN,CAAC,EACFA,mBAAS,CAAC,UAAC,KAAa;gBACtB,IAAI,KAAK,KAAK,KAAK,EAAE;oBACnB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;oBACvC,MAAM,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;oBAE9B,OAAO,KAAI,CAAC,aAAa;yBACtB,QAAQ,CAAC,MAAM,CAAC,WAAW,GAAG,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC;yBACpE,IAAI,CACHE,aAAG,CAAC,UAAC,GAAG,IACN,OAAA,KAAI,CAAC,aAAa,CAAC,GAAG,EAAE,iCAAiC,CAAC,GAAA,CAC3D,EACDF,mBAAS,CAAC,UAAC,MAAM;wBACf,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC;wBAC9C,OAAO,KAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;qBACtC,CAAC,EACFD,aAAG,CAAC,UAAC,IAAI;wBACP,KAAI,CAAC,WAAW,EAAE,CAAC;qBACpB,CAAC,CACH,CAAC;iBACL;qBAAM;oBACL,OAAOE,OAAE,CAAC,EAAE,CAAC,CAAC;iBACf;aACF,CAAC,CACH;iBACA,SAAS,EAAE,CAAC;SAChB;QAEO,uCAAiB,GAAjB,UAAkB,KAAa;YACrC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE;gBAC5B,OAAO,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;gBACrD,OAAOA,OAAE,CAAC,EAAE,CAAC,CAAC;aACf;YACD,OAAO,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;SACvC;QAEO,uCAAiB,GAAjB,UAAkB,KAAa;YACrC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE;gBAC5B,OAAO,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;gBACrD,OAAOA,OAAE,CAAC,EAAE,CAAC,CAAC;aACf;YACD,OAAO,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;SACvC;QAEO,oCAAc,GAAd,UAAe,KAAa;YAClC,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE;gBACzB,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;gBACjD,OAAOA,OAAE,CAAC,EAAE,CAAC,CAAC;aACf;YACD,OAAO,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;SACpC;QAEO,uCAAiB,GAAjB,UAAkB,KAAa;YACrC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE;gBAC5B,OAAO,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;gBACrD,OAAOA,OAAE,CAAC,EAAE,CAAC,CAAC;aACf;YACD,OAAO,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;SACvC;QAED,0CAAoB,GAApB,UAAqB,KAAa;YAChC,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE;gBAC/B,OAAO,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;gBACxD,OAAOA,OAAE,CAAC,EAAE,CAAC,CAAC;aACf;YACD,OAAO,KAAK,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;SAC1C;QAEO,0CAAoB,GAApB,UAAqB,KAAa;YACxC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE;gBACpB,OAAO,CAAC,IAAI,CAAC,0BAA0B,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;gBACvD,OAAOA,OAAE,CAAC,EAAE,CAAC,CAAC;aACf;YACD,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE;gBAC/B,OAAO,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;gBAC1D,OAAOA,OAAE,CAAC,EAAE,CAAC,CAAC;aACf;YACD,OAAO,KAAK,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;SAC1C;QAED,mCAAa,GAAb,UAAc,KAAa;YACzB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;gBACxB,OAAO,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;gBACnD,OAAOA,OAAE,CAAC,EAAE,CAAC,CAAC;aACf;YACD,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SACnC;QAEO,sCAAgB,GAAhB,UAAiB,KAAa;YACpC,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE;gBAC3B,OAAO,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;gBACtD,OAAOA,OAAE,CAAC,EAAE,CAAC,CAAC;aACf;YACD,OAAO,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;SACtC;QAEO,sCAAgB,GAAhB,UAAiB,KAAa;YACpC,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE;gBAC3B,OAAO,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;gBACtD,OAAOA,OAAE,CAAC,EAAE,CAAC,CAAC;aACf;YACD,OAAO,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;SACtC;QAEO,sCAAgB,GAAhB,UAAiB,KAAa;YACpC,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE;gBAC3B,OAAO,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;gBACtD,OAAOA,OAAE,CAAC,EAAE,CAAC,CAAC;aACf;YACD,OAAO,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;SACtC;QAED,yCAAmB,GAAnB,UAAoB,KAAa;YAC/B,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE;gBAC9B,OAAO,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;gBACvD,OAAOA,OAAE,CAAC,EAAE,CAAC,CAAC;aACf;YACD,OAAO,KAAK,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;SACzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAgCY,gCAAU,GAAV,UACX,UAA8C,EAC9C,WAAmB,EACnB,UAAkB,EAClB,MAAY,EACZ,OAAgB,EAChB,aAA8B,EAC9B,gBAA0B;;;;;;4BAEpB,cAAc,GAAG,eAAe,CAAC;4BACjC,oBAAoB,GAAG,qBAAqB,CAAC;4BAEnD,IAAI,WAAW,EAAE;;gCAEf,WAAW,CAAC,WAAW,GAAG,KAAK,CAAC;6BACjC;4BACM,qBAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,gBAAgB,CAAC,EAAA;gCAAhK,sBAAO,SAAyJ,EAAA;;;aAEjK;SAAA;QAGM,qCAAe,GAAf,UAAgB,IAAY,EAAE,KAAU;;YAE7C,IAAM,cAAc,GAAG,IAAI,CAAC,mBAAmB,GAAG,kBAAkB,CAAC;YACrE,IAAM,gBAAgB,GAAG;gBACvB,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;aAC/B,CAAC;YAEF,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC,IAAI,CAACC,aAAG,CAAC,UAAA,GAAG;gBAChF,IAAI,GAAG,EAAE;oBACP,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,GAAG,CAAC,MAAM,GAAG,KAAK,EAAE,GAAG,CAAC,CAAC;oBAC5D,OAAO,GAAG,CAAC;iBACZ;aACF,CAAC,CAAC,CAAC;SACL;QAEM,oCAAc,GAAd,UAAe,IAAY,EAAE,WAAmB;YACrD,IAAM,cAAc,GAAG,IAAI,CAAC,mBAAmB,GAAG,yBAAyB,GAAG,IAAI,CAAC;YAEnF,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,IAAI,CAACA,aAAG,CAAC,UAAA,GAAG;gBACvF,IAAI,GAAG,EAAE;oBACP,OAAO,GAAG,CAAC;iBACZ;aACF,CAAC,CAAC,CAAC;SACL;QAEM,+CAAyB,GAAzB,UAA0B,IAAY;;YAE3C,IAAM,cAAc,GAAG,IAAI,CAAC,mBAAmB,GAAG,6BAA6B,CAAC;YAChF,IAAM,gBAAgB,GAAG;gBACvB,aAAa,EAAE,IAAI;aACpB,CAAC;YAEF,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC,IAAI,CAACA,aAAG,CAAC,UAAA,GAAG;gBAChF,IAAI,GAAG,EAAE;oBACP,OAAO,GAAG,CAAC;iBACZ;aACF,CAAC,CAAC,CAAC;SACL;;;;;gBAl5BFG,aAAU,SAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;gBA5BQC,SAAM;gBAGNW,kBAAe;gBAAEI,gBAAa;gBASrCd,eAAY;gBAAEe,eAAY;gBAAEb,eAAY;gBAAEC,qBAAkB;gBAAEC,eAAY;gBAAEC,gBAAa;gBAChCM,eAAY;gBAE9DK,eAAY;gBAEZ,sBAAsB;;aA85Bf,WAAW,CAAC,KAAa;QACvC,IAAM,YAAY,GAAG,KAAK,CAAC,aAAa,CAAU,CAAC;QACnD,IAAI,YAAY,EAAE;YAChB,YAAY,CAAC,OAAO,EAAE,CAAC;SACxB;QACD,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;IAC5B;;;QCj7BE,iCAAoB,EAAc;YAAd,OAAE,GAAF,EAAE,CAAY;YAG1B,eAAU,GAAG,4WAclB,CAAC;SAhBF;;QAoBF,0CAAQ,GAAR;YACE,IAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC1E,IAAI,SAAS,EAAE;gBACb,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aACnC;iBAAM;gBACL,IAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBACjD,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACjC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;aACxD;SACF;;;;gBAnCFC,YAAS,SAAC;oBACT,QAAQ,EAAE,qBAAqB;iBAChC;;;gBAJ6BC,aAAU;;;;QCMtC,+BAAmB,gBAAkC;YAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;SAAK;;;;gBAJ3DD,YAAS,SAAC;oBACT,QAAQ,EAAE,gBAAgB;iBAC3B;;;gBAJmBE,mBAAgB;;;;QCgCO,yCAAoB;QA4C7D,+BACyB,IAAI,EACnB,aAA4B,EAC5B,WAAwB,EACxB,cAAqC,EACrC,MAAc,EACd,2BAAwD;YANlE,YAQE,kBAAM,IAAI,CAAC,SACZ;YAPS,mBAAa,GAAb,aAAa,CAAe;YAC5B,iBAAW,GAAX,WAAW,CAAa;YACxB,oBAAc,GAAd,cAAc,CAAuB;YACrC,YAAM,GAAN,MAAM,CAAQ;YACd,iCAA2B,GAA3B,2BAA2B,CAA6B;YAzClE,WAAK,GAAU;gBACb,IAAI,EAAE,CAAC;gBACP,IAAI,EAAE,EAAE;aACT,CAAC;YAEF,iBAAW,GAAU,EAAE,CAAC;YAExB,mBAAa,GAAU,EAAE,CAAC;YAE1B,iBAAW,GAAG,IAAI,CAAC;YAEnB,0BAAoB,GAAG,IAAI,CAAC;YAE5B,gBAAU,GAAG,IAAI,CAAC;;SA+BjB;QA7BD,sBAAI,wCAAK;iBAAT;gBACE,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;aAC/B;;;WAAA;QAED,sBAAI,sCAAG;iBAAP;gBACE,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;aAChC;;;WAAA;QAED,sBAAI,8CAAW;iBAAf;gBACE,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;aACtC;;;WAAA;QAED,sBAAI,yCAAM;iBAAV;gBACE,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;aACjC;;;WAAA;QAED,sBAAI,0CAAO;iBAAX;gBACE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;aACvB;;;WAAA;QAaM,wCAAQ,GAAR;YACL,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;gBAC5B,OAAO;aACR;YAED,iBAAM,QAAQ,WAAE,CAAC;YACjB,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;YAC5C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAChC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;YAEvE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBACpB,IAAI,CAAC,WAAW,GAAG7B,mBAAgB,CAAC,aAAa,CAC/C,IAAI,CAAC,KAAK,CAAC,WAAW,EACtB,IAAI,CAAC,GAAG,CACT,CAAC;;gBAEF,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;oBACrB,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;oBAC1B,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAiB,EAAE;wBACrD,OAAO,CAAC,IAAI,CACV,uCAAuC,EACvC,IAAI,CAAC,KAAK,CAAC,WAAW,CACvB,CAAC;qBACH;oBACD,OAAO;iBACR;gBAED,IAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC9C,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;oBACd,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBAC7B,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iBACjD;qBAAM;oBACL,IAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACxC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBACnD,IAAI,CAAC,oBAAoB,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBAC3C;gBAED,IAAI,CAAC,4BAA4B,EAAE,CAAC;aACrC;YAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC5B;QAEO,4DAA4B,GAA5B;;YAEN,IAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;YACjE,IAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC;YAC5E,IAAI,KAAK,IAAI,QAAQ,EAAE;gBACrB,IAAM,WAAW,GAAG;oBAClB,GAAG,EAAE,QAAQ;oBACb,GAAG,EAAE,GAAG;oBACR,KAAK,EAAE,KAAK;iBACb,CAAC;;gBAEF,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;;aAE5C;SACF;QAEO,mDAAmB,GAAnB;YACN,IAAI,gBAAgB,GAAG,IAAI,CAAC;YAC5B,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;gBAC1B,gBAAgB,GAAGA,mBAAgB,CAAC,aAAa,CAC/C,IAAI,CAAC,KAAK,CAAC,WAAW,EACtB,IAAI,CAAC,GAAG,CACT,CAAC;aACH;YACD,OAAO,gBAAgB,CAAC;SACzB;QAEM,2CAAW,GAAX;YACL,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBAC5B,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,CAAC;aACxC;YACD,iBAAM,WAAW,WAAE,CAAC;SACrB;QAEM,mDAAmB,GAAnB;YAAA,iBA6CN;YA5CC,IAAM,aAAa,GAAoBA,mBAAgB,CAAC,aAAa,CACnE,IAAI,CAAC,KAAK,CAAC,YAAY,EACvB,IAAI,CAAC,GAAG,CACT,CAAC;YACF,aAAa;iBACV,IAAI,CACHE,aAAG,CAAC,UAAC,IAAI;gBACP,IAAM,WAAW,GAAG,KAAI,CAAC,eAAe,EAAE,CAAC;gBAC3C,IAAM,SAAS,GAAG,KAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;gBAEjDF,mBAAgB,CAAC,cAAc,CAC7B,IAAI,EACJ,KAAI,CAAC,WAAW,EAChB,KAAI,CAAC,YAAY,CAAC,KAAK,EACvB,KAAI,CAAC,WAAW,EAChB,SAAS,EACT,WAAW,EACX,KAAI,CAAC,aAAa,CACnB,CAAC;gBACF,KAAI,CAAC,sBAAsB,EAAE,CAAC;gBAC9B,KAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,KAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,KAAI,CAAC,UAAU,EAAE,CAAC;gBAClB,KAAI,CAAC,YAAY,EAAE,CAAC;gBACpB,KAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;gBAElC,KAAI,CAAC,MAAM,CAAC,OAAO,GAAG,KAAI,CAAC,mBAAmB,EAAE,IAAI,KAAI,CAAC,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC;;;;;;;;;;;;;aAalF,CAAC,CACH;iBACA,SAAS,CAAC;gBACT,KAAI,CAAC,cAAc,EAAE,CAAC;aACvB,CAAC,CAAC;SACN;QAEO,sDAAsB,GAAtB;YACN,IAAM,SAAS,GAAkB,EAAE,CAAC;YACpC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAC,KAAK;gBAC7B,IAAI,KAAK,CAAC,SAAS,EAAE;oBACnB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;iBACxD;qBAAM;oBACL,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;iBAC7B;aACF,CAAC,CAAC;YAEH,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxB,IAAI,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;oBAClC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACtB;aACF;YAED,IAAI,aAAa,GAAU,EAAE,CAAC;YAC9B,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACxC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;gBACjC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;aAClD;YACD,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC/C;QAEO,yCAAS,GAAT;YAAA,iBAkBP;YAjBC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC7C,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;aACzE;iBAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBACrD,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;aAC1C;YAED,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;gBACrE,IAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACxD,IAAM,SAAS,GAAG,iBAAiB,CAAC,MAAM,CACxC,UAAC,OAAO,IAAK,OAAA,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAA,CACrD,CAAC;gBAEF,SAAS,CAAC,OAAO,CAAC,UAAC,GAAG;oBACpB,IAAM,SAAS,GAAGA,mBAAgB,CAAC,aAAa,CAAC,GAAG,EAAE,KAAI,CAAC,GAAG,CAAC,CAAC;oBAChE,KAAI,CAAC,MAAM,CAAC,OAAO,GAAG,KAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;iBACnE,CAAC,CAAC;aACJ;SACF;QAEO,+CAAe,GAAf;YACN,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE;gBAC9B,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;oBACvD,IAAI,CAAC,MAAM,CAAC,YAAY,GAAGA,mBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;iBACjG;qBAAM;oBACL,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;iBACvD;aACF;SACF;QAEO,0CAAU,GAAV;YACN,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;gBACxB,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;oBACjD,IAAI,CAAC,MAAM,CAAC,SAAS,GAAGA,mBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;iBACxF;qBAAM;oBACL,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;iBAC9C;aACF;SACF;QAEO,4CAAY,GAAZ;YACN,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;gBACxB,IAAI,CAAC,MAAM,CAAC,SAAS,GAAGA,mBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;aACnG;SACF;QAEO,+CAAe,GAAf,UAAgB,WAAkC;YAAlD,iBAcP;YAbC,IAAI,IAAI,CAAC,WAAW,IAAI,WAAW,EAAE;;gBAEnC,IAAM,oBAAoB,GAAG,WAAW,CAAC,MAAM,CAAC,UAAU,IAAI;oBAC5D,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;iBAC/B,CAAC,CAAC;;gBAGH,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,UAAA,KAAK;oBAC/C,IAAI,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,GAAA,CAAC,EAAE;wBACzD,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,GAAA,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;qBACnF;iBACF,CAAC,CAAC;aACJ;SACF;QAGM,8CAAc,GAAd;YAAA,iBAgEN;YA/DC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YAEzB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBACpB,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBACvC,IAAI,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE;;oBAEjC,IAAI,CAAC,aAAa;yBACf,OAAO,CACN,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,MAAM,EACX,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,CACL;yBACA,SAAS,CAAC,UAAC,IAAI;wBACd,KAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBACrC,KAAI,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;wBAChE,KAAI,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;wBAC1B,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;wBAC5B,KAAI,CAAC,gBAAgB,EAAE,CAAC;qBACzB,CAAC,CAAC;iBACN;qBAAM;;oBAEL,IAAI,CAAC,aAAa;yBACf,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;yBAC5D,SAAS,CAAC,UAAC,IAAI;wBACd,IAAI,KAAK,GAAG,IAAI,CAAC;wBACjB,IAAI,WAAW,GAAG,CAAC,CAAC;wBAEpB,IAAI,IAAI,CAAC,OAAO,EAAE;4BAChB,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC;4BACrB,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC;yBAC/B;6BAAM;4BACL,KAAK,GAAG,IAAI,CAAC;4BACb,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC;yBAC3B;wBAED,KAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;wBAC9B,KAAI,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;wBACrD,KAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;wBACjC,KAAI,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;wBAC1B,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;wBAC5B,KAAI,CAAC,gBAAgB,EAAE,CAAC;qBACzB,CAAC,CAAC;iBACN;aACF;iBAAM;gBACL,IAAM,EAAE,GAAGA,mBAAgB,CAAC,aAAa,CACvC,IAAI,CAAC,KAAK,CAAC,UAAU,EACrB,IAAI,CAAC,GAAG,CACT,CAAC;gBAEF,IAAI,EAAE,EAAE;oBACN,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG;wBACf,IAAI,EAAE,EAAE;wBACR,KAAK,EAAE,EAAE,CAAC,MAAM;qBACjB,CAAC;oBACF,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,MAAM,CAAC;iBAChC;gBACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5B,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;aAC3B;SACF;QAEM,yCAAS,GAAT;YACL,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;SACzC;QAGO,iDAAiB,GAAjB,UAAkB,IAAS;YACjC,IAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,aAAa,GAAA,CAAC,CAAC;YAEvE,gBAAgB,CAAC,OAAO,CAAC,UAAA,GAAG;gBAC1B,IAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;gBAExB,IAAI,eAAe,GAAG,IAAI,CAAC;gBAC3B,QAAQ,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;oBAClD,KAAK,OAAO,EAAE;wBACZ,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,UAAC,KAAK,EAAE,IAAI,IAAK,OAAA,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAA,EAAE,CAAC,CAAC,CAAC;wBACvE,MAAM;qBACP;oBACD,KAAK,KAAK,EAAE;wBACV,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,UAAC,KAAK,EAAE,IAAI,IAAK,OAAA,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAA,EAAE,CAAC,CAAC,CAAC;wBACvE,MAAM;qBACP;oBACD,KAAK,SAAS,EAAE;wBACd,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,UAAC,KAAK,EAAE,IAAI,IAAK,OAAA,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAA,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;wBACrF,MAAM;qBACP;oBACD,KAAK,OAAO,EAAE;wBACZ,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC;wBAC9B,MAAM;qBACP;oBACD,KAAK,KAAK,EAAE;wBACV,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAA,CAAC,CAAC,KAAK,CAAC,CAAC;wBAC5E,MAAM;qBACP;oBACD,KAAK,KAAK,EAAE;wBACV,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAA,CAAC,CAAC,KAAK,CAAC,CAAC;wBAC5E,MAAM;qBACP;iBACF;gBAED,GAAG,CAAC,cAAc,GAAG,eAAe,CAAC;aACtC,CAAC,CAAC;SACJ;QAEO,mDAAmB,GAAnB;YACN,IAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,aAAa,GAAA,CAAC,CAAC;YACvE,gBAAgB,CAAC,OAAO,CAAC,UAAA,GAAG;gBAC1B,GAAG,CAAC,cAAc,GAAG,CAAC,CAAC;aACxB,CAAC,CAAC;SACJ;QAGM,0CAAU,GAAV,UAAW,KAAsB;YACtC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;YACvD,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YAC7B,IAAI,CAAC,cAAc,EAAE,CAAC;SACvB;QAEM,0CAAU,GAAV,UAAW,IAAsB;YAAjC,iBAkBN;YAjBC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,EAAE,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC;YAE5B,IAAI,CAAC,OAAO,CAAC,UAAC,CAAC;gBACb,IAAI,CAAC,CAAC,GAAG,EAAE;oBACT,KAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBAEnC,IAAM,KAAK,GAAG,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,GAAA,CAAC,CAAC;oBAChE,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE;wBACjC,KAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;qBACnD;yBAAM;wBACL,KAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;qBAC3C;iBACF;aACF,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,EAAE,CAAC;SACvB;QAEM,4CAAY,GAAZ,UAAa,KAAU;YAAvB,iBA2CN;YA1CC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,EAAE,CAAC;YAC9B,IAAI,CAAC,4BAA4B,EAAE,CAAC;YAEpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACnB,IAAI,KAAK,EAAE;gBACT,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC5B,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,UAAC,IAAI;wBACzB,IAAM,KAAK,GAAG,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,GAAA,CAAC,CAAC;wBAEnE,IAAI,IAAI,CAAC,OAAO,EAAE;4BAChB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAC,CAAmB;gCACvC,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,EAAE;oCACpB,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;iCACd;gCACD,KAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC;oCAC5B,GAAG,EAAE,CAAC,CAAC,KAAe;oCACtB,GAAG,EAAE,KAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC;oCACvC,KAAK,EAAE,CAAC,CAAC,KAAK;iCACf,CAAC,CAAC;6BACJ,CAAC,CAAC;yBACJ;6BAAM;4BACL,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;gCACvB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;6BACjB;4BACD,KAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC;gCAC5B,GAAG,EACD,KAAK,CAAC,SAAS,KAAK,SAAS;sCACzB,MAAI,KAAK,CAAC,SAAS,MAAG;sCACtB,IAAI,CAAC,KAAK;gCAChB,GAAG,EAAE,KAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC;gCAC1C,KAAK,EAAE,IAAI,CAAC,KAAK;6BAClB,CAAC,CAAC;yBACJ;qBACF,CAAC,CAAC;iBACJ;aACF;YAED,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC1C,IAAI,CAAC,cAAc,EAAE,CAAC;SAGvB;QAEM,+CAAe,GAAf,UAAgB,KAA2B;;YAEhD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YACvB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YAC7B,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC5B;QAEO,iDAAiB,GAAjB,UAAkB,QAAa;YACrC,QAAQ,QAAQ;gBACd,KAAK,IAAI;oBACP,OAAO,IAAI,CAAC;gBACd,KAAK,KAAK;oBACR,OAAO,KAAK,CAAC;gBACf,KAAK,IAAI;oBACP,OAAO,IAAI,CAAC;gBACd,KAAK,KAAK;oBACR,OAAO,KAAK,CAAC;gBACf,KAAK,IAAI;oBACP,OAAO,IAAI,CAAC;gBACd,KAAK,KAAK;oBACR,OAAO,KAAK,CAAC;gBACf,KAAK,YAAY;oBACf,OAAO,YAAY,CAAC;gBACtB,KAAK,UAAU;oBACb,OAAO,UAAU,CAAC;gBACpB,KAAK,QAAQ;oBACX,OAAO,QAAQ,CAAC;gBAClB,KAAK,WAAW;oBACd,OAAO,WAAW,CAAC;gBACrB,KAAK,UAAU,EAAE;oBACf,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,EAAE;wBAC3C,OAAO,UAAU,CAAC;qBACnB;iBACF;gBACD;oBACE,OAAO,IAAI,CAAC;;aAEf;SACF;QAEO,+CAAe,GAAf;YACN,IAAM,WAAW,GAAG,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;;YAG1H,IAAI,eAAe,GAAkB,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACvF,IAAI,eAAe,EAAE;gBACnB,IAAM,YAAY,GAAgB,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;gBACvE,IAAI,YAAY,EAAE;oBAChB,OAAO,YAAY,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,GAAA,CAAC,CAAC;iBAC5F;aACF;SACF;QAEM,iDAAiB,GAAjB,UAAkB,KAAa,EAAE,EAAO;YAC7C,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE;gBAC5B,OAAO,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;gBACrD,OAAOI,OAAE,CAAC,IAAI,CAAC,CAAC;aACjB;YACD,OAAO,KAAK,CAAC,iBAAiB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;SAC3C;QAEO,oDAAoB,GAApB,UAAqB,KAAa,EAAE,EAAO;YAA3C,iBAwCP;YAvCC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE;gBAC5B,OAAOA,OAAE,CAAC,EAAE,CAAC,CAAC;aACf;YAED,IAAM,UAAU,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAE3C,IAAI,IAAI,CAAC,cAAc,EAAE;gBACvB,IAAM,SAAO,GAAG,IAAI0B,YAAO,EAAU,CAAC;gBAEtC1B,OAAE,CAAC,IAAI,CAAC;qBACL,IAAI,CACHD,mBAAS,CAAC;oBACR,OAAO,KAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;iBAC5C,CAAC,EACFD,aAAG,CAAC,UAAA,IAAI;oBACN,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,EAAE;wBACjD,SAAO,CAAC,IAAI,EAAE,CAAC;qBAChB;yBACI;wBACH,IAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBACtC,KAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;wBACtD,KAAI,CAAC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;wBAE9D,KAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,UAAC,CAAM;4BACvC,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gCAC3B,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;6BAC7B;yBACF,CAAC,CAAC;wBAEH,SAAO,CAAC,IAAI,EAAE,CAAC;qBAChB;iBACF,CAAC,CACH,CAAC,SAAS,EAAE,CAAC;gBAEhB,OAAO,SAAO,CAAC,YAAY,EAAE,CAAC;aAC/B;iBACI;gBACH,OAAOE,OAAE,CAAC,EAAE,CAAC,CAAC;aACf;SACF;QAEO,oDAAoB,GAApB,UAAqB,KAAa,EAAE,EAAO;YACjD,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE;gBAC5B,OAAO,IAAI,CAAC;aACb;YAED,IAAM,UAAU,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAE3C,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE;;gBAEtE,IAAM,aAAa,GAAG,EAAE,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAA;;gBAEhI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;aACpE;SACF;;KAhkBH,CAA2C2B,qCAAoB;;gBAH9DJ,YAAS,SAAC;oBACT,QAAQ,EAAE,gBAAgB;iBAC3B;;;gDA8CIK,SAAM,SAACC,8BAAa;gBAtDGlB,gBAAa;gBAAvCJ,cAAW;gBAE0BuB,wBAAqB;gBAnBnDzB,SAAM;gBAmBb0B,8BAA2B;;;+BAS1BZ,QAAK;;;;QC3BN,mCAAmB,OAAmB;YAAnB,YAAO,GAAP,OAAO,CAAY;SAErC;;;;gBAPFI,YAAS,SAAC;oBACT,QAAQ,EAAE,eAAe;oBACzB,QAAQ,EAAE,aAAa;iBACxB;;;gBALmBC,aAAU;;;ICA9B;IAQA;;QAMA;;QAIyB,sCAAO,GAAP;YACrB,IAAI,IAAI,CAAC,WAAW,EAAE;gBACpB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;oBAC9B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBAC/B;aACF;SACF;QAEqB,qCAAM,GAAN;YACpB,IAAI,IAAI,CAAC,WAAW,EAAE;gBACpB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aAChC;SACF;;;;gBAnBFD,YAAS,SAAC;oBACT,QAAQ,EAAE,6BAA6B;iBACxC;;;8BAGEJ,QAAK;0BAELa,eAAY,SAAC,OAAO;yBAQpBA,eAAY,SAAC,MAAM;;;;QCpBtB;;QACE,oCAAS,GAAT,UAAU,KAAU;;YAElB,IAAI,CAAC,KAAK,EAAE;gBACV,OAAO,KAAK,CAAC;aACd;;;YAGD,IAAI;gBACF,IAAM,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC1B,OAAO,CAAC,CAAC;aACV;YAAC,OAAO,KAAK,EAAE;gBACd,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;gBAC/C,OAAO,IAAI,CAAC;aACb;SACF;;;;gBAnBFC,OAAI,SAAC;oBACJ,IAAI,EAAE,YAAY;oBAClB,IAAI,EAAE,IAAI;iBACX;;;ICLD;IAGA;IAEA;IAEA;;QAOA;;QACI,gCAAS,GAAT,UAAU,MAAW;YACjB,IAAI,CAAC,MAAM,EAAE;gBACT,OAAO;aACV;YACD,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;gBAC5B,IAAI;oBACA,IAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBACrC,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;;iBAE7C;gBAAC,WAAM;oBACJ,OAAO,MAAM,CAAC;iBACjB;aACJ;YACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBACrD,IAAI;oBACA,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;;iBAE1C;gBAAC,WAAM;oBACJ,OAAO,wCAAwC,CAAC;iBACnD;aACJ;SAEJ;QAEO,oCAAa,GAAb,UAAc,SAAc;;YAEhC,IAAM,KAAK,GAAe,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,UAAC,GAAG,EAAE,KAAK;gBACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;;oBAE7C,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;;;wBAGvB,OAAO;qBACV;;oBAED,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBACrB;gBACD,OAAO,KAAK,CAAC;aAChB,EAAE,CAAC,CAAC,CAAC;;SAET;;;;gBA9CJA,OAAI,SAAC;oBACF,IAAI,EAAE,cAAc;oBACpB,IAAI,EAAE,KAAK;iBACd;;;;QCPD;;QACE,8BAAS,GAAT,UAAU,KAAU,EAAE,OAAe;YACnC,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE;gBACtB,OAAO,KAAK,CAAC;aACd;;YAGD,IAAI,OAAO,IAAI,GAAG,EAAE;gBAClB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAA,KAAK;oBAChC,KAAK,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;iBAChC,CAAC,CAAC;aACJ;iBACI,IAAI,OAAO,IAAI,GAAG,EAAE;gBACvB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAA,KAAK;oBAChC,KAAK,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC;iBACjC,CAAC,CAAC;aACJ;YAED,OAAO,KAAK,CAAC;SACd;;;;gBAvBFA,OAAI,SAAC;oBACJ,IAAI,EAAE,YAAY;oBAClB,IAAI,EAAE,IAAI;iBACX;;;ICKD;;QANA;YAQE,yBAAoB,GAAG,IAAI,CAAC;YAC5B,gBAAW,GAAG,IAAI,CAAC;YACnB,iBAAY,GAAG,IAAI,CAAC;YACpB,UAAK,GAAG,IAAI,CAAC;YACb,gBAAW,GAAG,IAAI,CAAC;YACnB,cAAS,GAAG,IAAI,CAAC;YACjB,mBAAc,GAAG,IAAI,CAAC;YACtB,yBAAoB,GAAG,IAAI,CAAC;YAC5B,cAAS,GAAG,IAAI,CAAC;YACjB,8BAAyB,GAAG,IAAI,CAAC;YACjC,qBAAgB,GAAG,IAAI,CAAC;;;;;;;;;;YAYhB,mBAAc,GAAG,KAAK,CAAC;YACvB,kBAAa,GAAG,KAAK,CAAC;YACtB,iBAAY,GAAG,EAAE,CAAC;YAClB,gBAAW,GAAG,EAAE,CAAC;SA2F1B;QAzFQ,8BAAM,GAAN,UAAO,YAAoB;YAChC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;;;;YAKjC,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC5B;QAEM,kCAAU,GAAV,UAAW,SAAc;YAAzB,iBAoCN;YAnCC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YAE7B,IAAM,QAAQ,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC1E,IAAM,SAAS,GAAG,CAAC,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACzD,IAAM,SAAS,GAAG,CAAC,CAAC,iBAAiB,CAAC,CAAC;;YAGvC,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE;gBAChC,IAAM,YAAY,GAAG,CAAC,CAAC,+CAA+C,CAAC,CAAA;gBACvE,YAAY,CAAC,IAAI,EAAE,CAAC;aACrB;;YAGD,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,SAAS,EAAE;gBACrC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE;oBACrB,KAAI,CAAC,mBAAmB,EAAE,CAAC;iBAC5B,CAAC,CAAC;gBAEH,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;aAC5B;;YAGD,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,SAAS,EAAE;gBACpC,IAAI,QAAQ,EAAE;oBACZ,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE;;;;;wBAKtB,KAAI,CAAC,mBAAmB,EAAE,CAAC;qBAC5B,CAAC,CAAC;iBACJ;gBAED,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;aAC3B;SACF;QAEM,oCAAY,GAAZ,UAAa,SAAc;YAChC,IAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC;YAC7B,IAAI,KAAK,CAAC,eAAe,EAAE;gBACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,KAAK,KAAK,GAAA,CAAC,CAAC;aACpE;YACD,IAAI,KAAK,CAAC,eAAe,EAAE;gBACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,KAAK,KAAK,GAAA,CAAC,CAAC;aACpE;YACD,IAAI,KAAK,CAAC,iBAAiB,EAAE;gBAC3B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,KAAK,KAAK,GAAA,CAAC,CAAC;gBACnE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,KAAK,MAAM,GAAA,CAAC,CAAC;aACrE;YACD,IAAI,KAAK,CAAC,eAAe,EAAE;gBACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,KAAK,KAAK,GAAA,CAAC,CAAC;aACpE;YACD,IAAI,KAAK,CAAC,gBAAgB,EAAE;gBAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,KAAK,OAAO,GAAA,CAAC,CAAC;aACtE;YACD,IAAI,KAAK,CAAC,iBAAiB,EAAE;gBAC3B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,KAAK,OAAO,GAAA,CAAC,CAAC;aACtE;YACD,IAAI,KAAK,CAAC,eAAe,EAAE;gBACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,KAAK,KAAK,GAAA,CAAC,CAAC;aACpE;SACF;QAEM,2CAAmB,GAAnB;;YAEL,CAAC,CAAC,0BAA0B,CAAC,CAAC,IAAI,EAAE,CAAC;;YAGrC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,KAAK,EAAE,IAAI;gBAC5C,IAAI,YAAY,GAAG,CAAC,CAAC,2BAA2B,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;gBAChE,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,EAAE;oBACvC,YAAY,CAAC,IAAI,EAAE,CAAC;iBACrB;aACF,CAAC,CAAC;SACJ;QAEM,oCAAY,GAAZ;YACL,OAAO,IAAI,CAAC;SACb;;;;gBA3HFnB,YAAS,SAAC;oBACT,QAAQ,EAAE,aAAa;oBACvB,myBAAuC;;iBAExC;;;;QCFD;;QACI,6BAAS,GAAT,UAAU,KAAU,EAAE,MAAc;;YAEhC,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE;gBACnB,OAAO,KAAK,CAAC;aAChB;;;YAGD,OAAO,KAAK,CAAC,MAAM,CAAC,UAAA,IAAI;gBACpB,IAAM,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;gBACjC,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;aACxC,CAAC,CAAC;SACN;;;;gBAhBJmB,OAAI,SAAC;oBACF,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,IAAI;iBACb;;;;QCwCiD,gDAAuB;QAOvE,sCAAY,aAA4B;mBACtC,kBAAM,aAAa,CAAC;SACrB;QAED,sBAAW,+CAAK;iBAAhB;gBACE,IAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;gBAEzC,OAAO,CAAC,KAAK,IAAsB,EAAE,EAAE,KAAK,CAAC;aAC9C;;;WAAA;QAED,sBAAW,6CAAG;iBAAd;gBACE,IAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;gBACvC,OAAO,CAAC,GAAG,IAAsB,EAAE,EAAE,KAAK,CAAC;aAC5C;;;WAAA;QAED,sBAAW,mDAAS;iBAApB;gBACE,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;aACnD;;;WAAA;QAEM,kDAAW,GAAX;YACL,IAAI,CAAC,aAAa,CAAC,MAAM,CACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAC9B,CAAC;SACH;QAEM,kDAAW,GAAX,UAAY,KAAW,EAAE,GAAS;;YACvC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAE5C,IAAM,OAAO,GAAG,EAAE,CAAC;YAEnB,IAAI,KAAK,EAAE;gBACT,OAAO,CAAC,IAAI,CAAC;oBACX,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,QAAQ,EAAE,KAAK;oBACf,KAAK,EAAE,KAAK;iBACb,CAAC,CAAC;aACJ;YAED,IAAI,GAAG,EAAE;gBACP,OAAO,CAAC,IAAI,CAAC;oBACX,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,QAAQ,EAAE,KAAK;oBACf,KAAK,EAAE,GAAG;iBACX,CAAC,CAAC;aACJ;YAED,IAAM,IAAI,GAAG,IAAI,CAAC,MAAM,IAAI;gBAC1B,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,EAAE;aACZ,CAAC;YAEF,IAAI,OAAO,CAAC,MAAM,EAAE;gBAClB,CAAA,KAAA,IAAI,CAAC,OAAO,EAAC,IAAI,oBAAI,OAAO,GAAE;aAC/B;YAED,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SACjC;QAEO,qDAAc,GAAd,UAAe,EAAU;YAC/B,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;iBACnC,MAAM,CAAC,UAAC,EAAY;oBAAV,QAAQ,cAAA;gBAAO,OAAA,QAAQ,KAAK,EAAE;aAAA,CAAC,CAAC,CAAC,CAAC,CAAC;SACjD;;KApEH,CAAkDC,wCAAuB;;gBAzCxEpB,YAAS,SAAC;oBACT,QAAQ,EAAE,wBAAwB;oBASlC,QAAQ,EAAE,gjCA6BP;6BArCM,gLAON;iBA+BJ;;;gBA3CiCqB,8BAAa;;;yBA6C5ChB,QAAK;wBAGLA,QAAK;;;ICjDR;IAUA;;QA4CE,oCAAmB,cAA8B;YAA9B,mBAAc,GAAd,cAAc,CAAgB;YAJxC,UAAK,GAAQ,EAAE,CAAC;YAEzB,iBAAY,GAAG,KAAK,CAAC;SAEgC;QAE9C,0CAAK,GAAL;YACL,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;gBAC3B,IAAI,EAAE,OAAO;aACd,CAAC,CAAC;SACJ;QAEM,yCAAI,GAAJ,UAAK,KAAU;YACpB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;gBAC3B,IAAI,EAAE,MAAM;aACb,CAAC,CAAC;SACJ;QAEM,yCAAI,GAAJ,UAAK,KAAU;YACpB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;gBAC3B,IAAI,EAAE,MAAM;aACb,CAAC,CAAC;SACJ;QAED,sDAAiB,GAAjB,UAAkB,KAAU;YAA5B,iBAUC;YATC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;gBAC3B,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,KAAK;aACZ,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,EAAE,CAAC;YACtBnB,OAAE,CAAC,EAAE,CAAC;iBACH,IAAI,CAACoC,cAAI,CAAC,CAAC,CAAC,EAAEC,eAAK,CAAC,IAAI,CAAC,CAAC;iBAC1B,SAAS,CAAC,cAAM,QAAC,KAAI,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,IAAC,CAAC,CAAC;SACrD;QAED,oDAAe,GAAf;YACE,IAAI,CAAC,cAAc,EAAE,CAAC;SACvB;QAED,mDAAc,GAAd,UAAe,MAAgB;YAC7B,IAAI,MAAM,KAAK,KAAK,EAAE;gBACpB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;gBAC1B,OAAO;aACR;YACD,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;SACxC;QAGM,4CAAO,GAAP,UAAQ,KAAU;YACvB,IAAI,KAAK,CAAC,OAAO,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,EAAE;gBACtD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;aAC5B;SACF;QAGM,kDAAa,GAAb,UAAc,KAAU;YAC7B,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,KAAK,eAAe,EAAE;gBAC9C,IAAI,CAAC,cAAc,EAAE,CAAC;aACvB;iBAAM;gBACL,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,EAAE;oBAC9B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;iBAC5B;aACF;SACF;;;;gBArGFvB,YAAS,SAAC;oBACT,QAAQ,EAAE,mBAAmB;oBAC7B,QAAQ,EAAE,8hCA+BT;;iBAEF;;;gBAxCQwB,oCAAc;;;wBA0CpBnB,QAAK;+BACLA,QAAK;0BA+CLa,eAAY,SAAC,SAAS,EAAE,CAAC,QAAQ,CAAC;gCAOlCA,eAAY,SAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC;;;ICzG5C;IAaA;;QAWE;;QAES,WAAwB,EACxB,cAA8B;YAD9B,gBAAW,GAAX,WAAW,CAAa;YACxB,mBAAc,GAAd,cAAc,CAAgB;;YANvC,UAAK,GAAW,IAAItC,SAAM,CAAC,IAAI,CAAC,CAAC;YAQ/B,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;SAElC;QAED,iCAAO,GAAP;YACE,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAClD;QAED,oCAAU,GAAV,UAAW,QAAgB,EAAE,QAAgB,EAAE,UAAmB,EAAE,WAAoB;YAAxF,iBA0FC;YAzFC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,WAAW,CAAC;YAEtC,OAAO,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CAAC,IAAI,CAClDK,mBAAS,CAAC,UAAC,MAAM;gBACf,KAAI,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;gBACnC,OAAO,KAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;aACrC,CAAC,EACFD,aAAG,CAAC,UAAC,QAAQ;gBACX,IAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACpC,KAAI,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO,KAAK,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC;gBACpD,KAAI,CAAC,KAAK,CAAC,MAAM,GAAG,OAAO,KAAK,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;gBACtD,IAAI,OAAO,KAAK,MAAM,EAAE;oBACtB,KAAI,CAAC,KAAK,CAAC,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;iBAC7C;qBAAM,IAAI,OAAO,KAAK,KAAK,EAAE;oBAC5B,KAAI,CAAC,KAAK,CAAC,iBAAiB;wBAC1B,QAAQ,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAC1D,KAAI,CAAC,KAAK,CAAC,kBAAkB;wBAC3B,KAAI,CAAC,KAAK,CAAC,kBAAkB;4BAC7B,GAAG;4BACH,KAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,QAAQ,EAAE;4BACvC,OAAO,CAAC;iBACX;gBACD,IAAI,OAAO,EAAE;oBACX,KAAI,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;iBAC9B;gBACD,KAAI,CAAC,WAAW,CAAC,eAAe,CAAC,KAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAI,CAAC,CAAC;gBAEvE,IACE,OAAO,KAAK,KAAK;oBACjB,KAAI,CAAC,KAAK,CAAC,oBAAoB;oBAC/B,KAAI,CAAC,KAAK,CAAC,iBAAiB,EAC5B;oBACA,KAAI,CAAC,KAAK,CAAC,MAAM,CACf,KAAI,CAAC,KAAK,CAAC,oBAAoB,CAChC,GAAG,KAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;iBAC7C;aACF,CAAC,EACFC,mBAAS,CAAC;gBACR,IAAM,QAAQ,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,CAAC;gBACxD,IAAM,aAAa,GAAG,KAAI,CAAC,KAAK,CAAC,SAAS;sBACtC,KAAI,CAAC,KAAK,CAAC,SAAS;sBACpB,QAAQ,CAAC;gBACb,KAAI,CAAC,KAAK,CAAC,SAAS,GAAG,aAAa,CAAC;gBACrC,OAAO,KAAI,CAAC,WAAW,CAAC,cAAc,CACpC,aAAa,EACb,QAAQ,EACR,KAAI,CAAC,KAAK,EACV,QAAQ,CACT,CAAC;aACH,CAAC,EACFA,mBAAS,CAAC,UAAC,MAAM;gBACf,OAAO,KAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,KAAI,CAAC,KAAK,CAAC,CAAC;aAC1D,CAAC,EACFA,mBAAS,CAAC,UAAC,MAAM;gBACf,IAAI,KAAI,CAAC,KAAK,CAAC,OAAO,KAAK,KAAK,EAAE;oBAChC,KAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,KAAI,CAAC,KAAK,CAAC,CAAC;oBACpD,OAAO,KAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAI,CAAC,KAAK,CAAC,CAAC;iBACnD;qBAAM;oBACL,OAAOC,OAAE,CAAC,MAAM,CAAC,CAAC;iBACnB;aACF,CAAC,EACFD,mBAAS,CAAC;;gBAER,IAAI,KAAI,CAAC,KAAK,CAAC,WAAW,IAAI,KAAI,CAAC,KAAK,CAAC,WAAW,KAAK,GAAG,EAAE;oBAC5D,IAAI,OAAO,KAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,UAAU,EAAE;wBAC7C,OAAO,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAI,CAAC,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;qBAChE;yBAAM;wBACL,OAAO,KAAI,CAAC,WAAW,CAAC,SAAS,CAC/B,KAAI,CAAC,KAAK,EACV,KAAI,CAAC,KAAK,CAAC,WAAW,CACvB,CAAC;qBACH;iBACF;qBAAM;oBACL,OAAOC,OAAE,CAAC,EAAE,CAAC,CAAC;iBACf;aACF,CAAC,EACFD,mBAAS,CAAC,UAAC,MAAM;gBACf,IAAI,KAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE;oBACnC,KAAI,CAAC,KAAK,CAAC,iBAAiB,GAAG,KAAI,CAAC,KAAK,CAAC,MAAM,CAC9C,KAAI,CAAC,KAAK,CAAC,oBAAoB,CAChC,CAAC;iBACH;gBACD,OAAO,KAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,KAAI,CAAC,KAAK,CAAC,CAAC;aACzD,CAAC,CACH,CAAC;;;;;SAKH;QAED,qCAAW,GAAX;YACE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,eAAe,CAAC,CAAC;YACnD,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;aACjC;SACF;;;;gBAtHFe,YAAS,SAAC;oBACT,QAAQ,EAAE,EAAE;iBACb;;;gBAPQ,WAAW;gBATXyB,iBAAc;;;ICFvB;;;QA0BE,2BACU,MAAc,EACd,YAA0B,EAC1B,WAAwB;YAFxB,WAAM,GAAN,MAAM,CAAQ;YACd,iBAAY,GAAZ,YAAY,CAAc;YAC1B,gBAAW,GAAX,WAAW,CAAa;SAC9B;QAEJ,oCAAQ,GAAR;;;;;;;;YAQE,IAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;YACvD,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,UAAU,GAAG,uBAAuB,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,GAAG,aAAa,CAAC;YACpI,IAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC;YACtD,IAAI,UAAU,EAAE;gBACd,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;gBACpC,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,QAAQ,CAAC;aAC5C;YAED,IAAI,IAAI,CAAC,aAAa,EAAE;gBACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC;aACtC;SACF;QAEM,0CAAc,GAAd;YACL,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;gBACvB,OAAO,IAAI,CAAC;aACb;YAED,OAAO,KAAK,CAAC;SACd;QAEM,oCAAQ,GAAR;YACL,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;SACpC;QAEM,0CAAc,GAAd;YACL,IAAM,CAAC,GAAG3C,mBAAgB,CAAC,cAAc,EAAE,CAAC;YAC5C,OAAO,CAAC,CAAC;SACV;;;;gBAzDFkB,YAAS,SAAC;oBACT,QAAQ,EAAE,cAAc;oBACxB,2+CAAwC;;iBAEzC;;;gBAdQT,SAAM;gBAOEY,eAAY;gBAAEV,cAAW;;;wBASvCY,QAAK;gCACLA,QAAK;;;ICnBR;;QAqBE,4BACU,YAA0B;YAA1B,iBAAY,GAAZ,YAAY,CAAc;SAC/B;QAEL,qCAAQ,GAAR;YACE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACzB;QAED,6CAAgB,GAAhB;;YAEE,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;SACrE;QAED,2CAAc,GAAd;YACE,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,OAAO,CAAC;;SAEzC;QAED,2CAAc,GAAd;YACE,IAAM,CAAC,GAAGvB,mBAAgB,CAAC,cAAc,EAAE,CAAC;YAC5C,OAAO,CAAC,CAAC;SACV;;;;gBA9BFkB,YAAS,SAAC;oBACT,QAAQ,EAAE,eAAe;oBACzB,yzBAAyC;;iBAE1C;;;gBAPkCG,eAAY;;;wBAU5CE,QAAK;;;ICnBR;;QAiCE;SAAiB;QAEjB,yCAAQ,GAAR;YACE,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvC,OAAO,CAAC,KAAK,CAAC,oFAAoF,CAAC,CAAC;aACrG;SACF;QAED,gDAAe,GAAf,UAAgB,CAA4C;YAC1D,OAA+B,CAAE,CAAC,QAAQ,KAAK,SAAS,CAAC;SAC1D;QAED,2CAAU,GAAV;YACE,IAAI,CAAC,GAAG,KAAK,CAAC;YACd,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzB,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;oBACvC,CAAC,GAAG,IAAI,CAAC;iBACV;aACF;YACD,OAAO,CAAC,CAAC;SACV;;;;gBA7BFL,YAAS,SAAC;oBACT,QAAQ,EAAE,mBAAmB;oBAC7B,w6DAA6C;;iBAE9C;;;;wBAEEK,QAAK;;;IC9BR;;QAsBE,+BACS,QAAwB,EACvB,MAAc;YADf,aAAQ,GAAR,QAAQ,CAAgB;YACvB,WAAM,GAAN,MAAM,CAAQ;SACnB;QAEL,wCAAQ,GAAR,eAAc;QAGd,0CAAU,GAAV;YACE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;SACxB;QAED,4CAAY,GAAZ;YAAA,iBASC;YARC,IAAI,IAAI,CAAC,KAAK,CAAC,wBAAwB,EAAE;gBACvC,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;oBACxD,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;iBACvD,CAAC,CAAA;aACH;iBACI;gBACH,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;aACvD;SACF;;;;gBA7BFL,YAAS,SAAC;oBACT,QAAQ,EAAE,kBAAkB;oBAC5B,suBAA4C;;iBAE7C;;;gBAbQ0B,iBAAc;gBAHdnC,SAAM;;;wBAkBZc,QAAK;;;ICpBR;;QAmCE,mCACU,MAAc,EACd,WAAwB,EACxB,WAAwB,EACxB,YAA0B;YAH1B,WAAM,GAAN,MAAM,CAAQ;YACd,gBAAW,GAAX,WAAW,CAAa;YACxB,gBAAW,GAAX,WAAW,CAAa;YACxB,iBAAY,GAAZ,YAAY,CAAc;YAnBpC,eAAU,GAAU;gBAClB,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;gBAEvC,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;gBACvC,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;gBACvC,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;gBACvC,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;gBACvC,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;gBACvC,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;gBAEvC,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;gBACvC,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;gBACvC,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;aACxC,CAAC;SAOG;QAEL,4CAAQ,GAAR;SACC;QAEM,+CAAW,GAAX,UAAY,IAAI;YACrB,OAAO,IAAI,CAAC,IAAI,KAAK,kBAAkB,GAAG,WAAW,GAAG,qCAAqC,CAAC;SAC/F;QAEM,+CAAW,GAAX,UAAY,IAAI;YACrB,OAAO,IAAI,CAAC,IAAI,KAAK,kBAAkB,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;SAC3F;QAEM,+CAAW,GAAX,UAAY,QAAgB,EAAE,aAAsB;YACzD,IAAM,WAAW,GAAW,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC,WAAW,CAAC;YAE3E,IAAI,aAAa,IAAI,WAAW,CAAC,iBAAiB,EAAE,IAAI,UAAU,EAAE;gBAClEvB,mBAAgB,CAAC,iBAAiB,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC9E,OAAO,KAAK,CAAC;aACd;iBACI;gBACH,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;aAClC;SACF;QAEO,+CAAW,GAAX,UAAY,GAAW,EAAE,KAAa;YAC5C,IAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACjD,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC;YACzB,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAC;YACpB,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAEtC,OAAO,QAAQ,CAAC;SACjB;;;;gBA5DFkB,YAAS,SAAC;oBACT,QAAQ,EAAE,sBAAsB;oBAChC,qlDAAgD;;iBAEjD;;;gBAdQT,SAAM;gBAOSoC,cAAW;gBAAElC,cAAW;gBAAoBU,eAAY;;;wBAS7EE,QAAK;;;IClBR;;QAiCE,iCACU,YAA0B,EAC1B,aAA4B,EAC5B,kBAAsC,EACtC,eAAgC,EAChC,eAAsC;YALhD,iBAMK;YALK,iBAAY,GAAZ,YAAY,CAAc;YAC1B,kBAAa,GAAb,aAAa,CAAe;YAC5B,uBAAkB,GAAlB,kBAAkB,CAAoB;YACtC,oBAAe,GAAf,eAAe,CAAiB;YAChC,oBAAe,GAAf,eAAe,CAAuB;YAZhD,yBAAoB,GAAU,EAAE,CAAC;YAEjC,qBAAgB,GAAY,KAAK,CAAC;YAGlC,wBAAmB,GAAG,IAAIuB,uBAAoB,EAAE,CAAC;YA+C1C,cAAS,GAAG,UAAC,MAAe;gBACjC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,CAAC,MAAM,CAAC;aAC/C,CAAA;YAEM,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,MAAM,CAAC;gBAC5C,KAAI,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;aAC5B,CAAA;YAEM,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,MAAM,CAAC;gBAC7C9C,mBAAgB,CAAC,eAAe,CAAC,MAAM,EAAE,KAAI,CAAC,KAAK,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAI,CAAC,mBAAmB,EAAE+C,gBAAU,CAAC,QAAQ,CAAC,CAAC;aACtH,CAAA;;;;YAiHD,kCAA6B,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,+BAA+B,CAAC,CAAC;;YAEhG,0CAAqC,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,uCAAuC,CAAC,CAAC;;YAEhH,mCAA8B,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC;SAxK7F;;QAGL,0CAAQ,GAAR;YAAA,iBA6BC;YA5BC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;;YAGpD,IAAI,IAAI,CAAC,IAAI,EAAE;gBACb/C,mBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;gBAC9CA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBAEzC,IAAI,CAACA,mBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;;oBAElE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;oBAC7B,IAAI,CAAC,kBAAkB,EAAE,CAAC;iBAC3B;qBACI;;oBAEH,IAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAC/C,IAAI,CAAC,IAAI,CAAC,KAAK,EACf,WAAW,EACX,IAAI,EACJ,IAAI,CACL,CAAC;oBACF,MAAM,CAAC,SAAS,CAAC,UAAC,IAAmB;wBACnC,KAAI,CAAC,aAAa,GAAG,IAAI,CAAC;wBAC1B,KAAI,CAAC,gBAAgB,EAAE,CAAC;qBACzB,CAAC,CAAC;iBACJ;gBAED,OAAO;aACR;SACF;QAED,gDAAc,GAAd;YACE,IAAM,CAAC,GAAGA,mBAAgB,CAAC,cAAc,EAAE,CAAC;YAC5C,OAAO,CAAC,CAAC;SACV;QAgBO,8CAAY,GAAZ,UAAa,SAAS;YAC5B,IAAI,SAAS,KAAK,KAAK,IAAI,CAAC,SAAS,EAAE;gBACrC,OAAO,IAAI,CAAC;aACb;YACD,IAAM,CAAC,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YACnE,OAAO,CAAC,CAAC;SACV;;QAGD,iDAAe,GAAf,UAAgB,IAAW;;YAEzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACxC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,kBAAkB,EAAE;oBACtE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;iBAChB;qBAAM;oBACL,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;wBAChC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;qBACrC;iBACF;aACF;YACD,OAAO,IAAI,CAAC;SACb;QAED,0CAAQ,GAAR;YACE,IAAI,IAAI,CAAC,gBAAgB,EAAE;;gBAEzB,IAAI,CAAC,eAAe;qBACjB,MAAM,CAAC;oBACN,MAAM,EAAE,kBAAkB;oBAC1B,OAAO,EAAE,IAAI,CAAC,oBAAoB;iBACnC,CAAC;qBACD,IAAI,CAAC,UAAA,aAAa;oBACjB,aAAa,CAAC,OAAO,EAAE,CAAC;iBACzB,CAAC,CAAC;aACN;iBACI;;gBAEH,IAAI,CAAC,eAAe;qBACjB,MAAM,CAAC;oBACN,MAAM,EAAE,kBAAkB;oBAC1B,OAAO,EAAE,IAAI,CAAC,oBAAoB;iBACnC,CAAC;qBACD,IAAI,CAAC,UAAA,aAAa;oBACjB,aAAa,CAAC,OAAO,EAAE,CAAC;iBACzB,CAAC,CAAC;aACN;SACF;QAEO,kDAAgB,GAAhB;YAAA,iBAoBP;YAnBC,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;YAC/B,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,UAAC,MAAc;gBACxC,IAAM,OAAO,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CACrD,KAAI,EACJ,MAAM,CAAC,OAAO,EACd,KAAI,CAAC,KAAK,CACX,CAAC;gBACF,IAAI,OAAO,KAAK,KAAK,EAAE;oBACrB,IAAM,KAAK,GAAG,KAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;oBAC1C,IAAM,UAAU,GAAG,KAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;oBACrD,KAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;wBAC7B,IAAI,EAAE,KAAK;wBACX,OAAO,EAAE;4BACP,KAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;yBAC1B;wBACD,IAAI,EAAE,UAAU;qBACjB,CAAC,CAAC;iBACJ;aACF,CAAC,CAAC;SACJ;QAEO,6CAAW,GAAX,UAAY,MAAW;;YAE7B,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC;YAC/C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBACtB,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,MAAM,CAAC,UAAU;gBACzB,IAAI,EAAE,IAAI;aACc,CAAC,CAAC;SAC7B;QAEO,gDAAc,GAAd,UAAe,MAAW;YAChC,IAAI,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;YAC/B,IAAI,CAAC,WAAW,EAAE;gBAChB,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC;aAC3B;YAED,IAAI,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAChD,IAAI,SAAS,EAAE;gBACb,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACtC,IAAM,KAAK,GAAGA,mBAAgB,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBACpE,OAAO,KAAK,CAAC;aACd;iBAAM;gBACL,OAAO,WAAW,CAAC;aACpB;SACF;QAEO,+CAAa,GAAb,UAAc,MAAW,EAAE,KAAa;;YAE9C,IAAM,cAAc,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YAC3C,IACE,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACvC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EACtC;gBACA,OAAO,QAAQ,CAAC;aACjB;YACD,OAAO,IAAI,CAAC;SACb;QAYO,oDAAkB,GAAlB;YAAA,iBAkFP;;YAhFC,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;;YAG/B,IAAI,UAAU,GAAG,IAAI,CAAC;YACtB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;gBACrB,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;aAClD;;YAGD,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;YAEjF,IAAI;;gBAEF,IAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,uBAAuB,CACzD,IAAI,CAAC,IAAI,CAAC,YAAY,EACtB,IAAI,CAAC,6BAA6B,EAClC,MAAM,CAAC,KAAK,CAAC,CACd,CAAC;gBAEF,MAAM,CAAC,SAAS,CAAC,UAAA,IAAI;oBACnB,IAAI,CAAC,OAAO,CAAC,UAAC,MAAW;wBACvB,IAAM,KAAK,GAAG,KAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;wBAC1C,IAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;wBACjD,IAAM,WAAW,GAAG,UAAU,CAAC,KAAK,IAAI,KAAK,CAAC;wBAC9C,IAAM,UAAU,GAAG,KAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;wBAErD,IAAI,UAAU,EAAE;4BACd,KAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;gCAC7B,IAAI,EAAE,WAAW;gCACjB,cAAc,EAAE,MAAM;gCACtB,QAAQ,EAAE,UAAU,CAAC,IAAI;gCACzB,OAAO,EAAE,UAAC,CAAC;oCACT,KAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;iCAClC;6BACF,CAAC,CAAC;yBACJ;;qBAEF,CAAC,CAAC;iBACJ,CAAC,CAAC;gBAEH,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE;;;oBAGxC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE;wBACxC,IAAM,MAAM,GAAG;4BACb,oBAAoB,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY;yBAC7C,CAAC;wBAEF,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,qCAAqC,EAAE,MAAM,CAAC,CAAC,IAAI,CAC1FK,aAAG,CAAC,UAAA,GAAG;4BACL,IAAI,GAAG,CAAC,IAAI,EAAE;gCACZL,mBAAgB,CAAC,gBAAgB,CAAC,cAAc,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAI,CAAC,KAAK,CAAC,CAAC;gCAC9EA,mBAAgB,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,KAAI,CAAC,KAAK,CAAC,CAAC;gCAClFA,mBAAgB,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,KAAI,CAAC,KAAK,CAAC,CAAC;gCAElF,KAAI,CAAC,eAAe,CAAC,wBAAwB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;6BACzD;yBACF,CAAC,CACH,CAAC,SAAS,EAAE,CAAC;qBACf;yBAAM;;wBAEL,IAAM,YAAY,GAAG;4BACnB,oBAAoB,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY;4BAC5C,YAAY,EAAE,UAAU;yBACzB,CAAC;wBAEF,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,8BAA8B,EAAE,YAAY,CAAC,CAAC,IAAI,CAClFK,aAAG,CAAC,UAAA,GAAG;4BACL,KAAI,CAAC,eAAe,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;4BACnD,IAAI,GAAG,CAAC,IAAI,EAAE;gCACZ,KAAI,CAAC,eAAe,CAAC,wBAAwB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;6BACzD;yBACF,CAAC,CACH,CAAC,SAAS,EAAE,CAAC;qBACf;iBACF;aAEF;YAAC,OAAO,KAAK,EAAE;gBACd,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;aACjC;SACF;QAED,qDAAmB,GAAnB,UAAoB,MAAW;YAA/B,iBAsBC;;;YAnBC,IAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACjD,QAAQ,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE;gBACnC,KAAK,UAAU;oBACb,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;oBAChD,IAAI,CAAC,eAAe,CAAC,wBAAwB,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;oBACtE,MAAM;gBACR,KAAK,MAAM;oBACT,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC1C,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,SAAS,CAAC,UAAA,GAAG;wBACrG,KAAI,CAAC,kBAAkB,EAAE,CAAC;wBAC1B,IAAI,GAAG,EAAE;4BACP,KAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,KAAI,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,CAAC;yBAC/D;qBACF,CAAC,CAAC;oBACH,MAAM;gBACR;oBACE,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;oBAClD,MAAM;aACT;SACF;;;;gBA1SFa,YAAS,SAAC;oBACT,QAAQ,EAAE,oBAAoB;oBAC9B,+jBAA8C;;iBAE/C;;;gBAVEN,eAAY;gBAAEG,gBAAa;gBAAEF,qBAAkB;gBAAEmC,kBAAe;gBAP1DC,wBAAqB;;;wBAoB3B1B,QAAK;;;ICzBR;;QAsBE;SAAiB;QAEjB,+CAAQ,GAAR,eAAa;QAEb,yDAAkB,GAAlB,UAAmB,IAAe,EAAE,IAAY;YAC9C,OAAOvB,mBAAgB,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SACxD;QAED,qDAAc,GAAd;YACE,IAAM,CAAC,GAAGA,mBAAgB,CAAC,cAAc,EAAE,CAAC;YAC5C,OAAO,CAAC,CAAC;SACV;QAED,mDAAY,GAAZ;YACE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE;gBAC1B,OAAO,oCAAoC,CAAA;aAC5C;iBACI;gBACH,OAAO,oBAAoB,CAAA;aAC5B;SACF;;;;gBA9BFkB,YAAS,SAAC;oBACT,QAAQ,EAAE,yBAAyB;oBACnC,gYAAmD;;iBAEpD;;;;wBAEEK,QAAK;uBACLA,QAAK;uBACLA,QAAK;;;ICpBR;;QA4BE;YAAA,iBAAiB;YAHjB,wBAAmB,GAAG,IAAIuB,uBAAoB,EAAE,CAAC;YA6C1C,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,MAAM,CAAC;gBAC5C,KAAI,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;aAC5B,CAAA;YAEM,YAAO,GAAG,UAAC,IAAS;gBACzB,KAAI,CAAC,UAAU,GAAG,IAAI,CAAC;aACxB,CAAA;SAjDgB;QAEjB,mCAAQ,GAAR;YACE,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACpE,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB9C,mBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAC9CA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;SAC1C;QAEO,0CAAe,GAAf;YACN,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBACzB,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;gBAC/C,OAAO;aACR;YAED,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;gBACjD,IAAI,CAAC,UAAU,GAAGA,mBAAgB,CAAC,aAAa,CAC9C,IAAI,CAAC,IAAI,CAAC,UAAU,EACpB,IAAI,CAAC,KAAK,CACX,CAAC;aACH;iBACI;gBACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAiB,CAAC;aAC/C;SACF;QAED,2CAAgB,GAAhB;YACE,IAAM,aAAa,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxF,IAAI,OAAO,aAAa,KAAK,UAAU,EAAE;gBACvC,OAAO,aAAa,EAAE,CAAC;aACxB;YACD,OAAO,aAAa,CAAC;SACtB;QAED,oCAAS,GAAT;YACE,IAAI,IAAI,CAAC,mBAAmB,CAAC,SAAS,KAAK,IAAI,EAAE;gBAC/C,OAAOA,mBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;aACzD;iBAAM;gBACL,OAAO,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC;aAC3C;SACF;QAWD,8CAAmB,GAAnB,UAAoB,IAAe,EAAE,IAAY;YAC/C,OAAOA,mBAAgB,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SACzD;QAED,mCAAQ,GAAR,UAAS,IAAe,EAAE,IAAY;YACpC,OAAUA,mBAAgB,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,SAAI,IAAI,CAAC,QAAU,CAAC;SAC/E;;;;gBAtEFkB,YAAS,SAAC;oBACT,QAAQ,EAAE,aAAa;oBACvB,+vCAAuC;;iBAExC;;;;uBAEEK,QAAK;wBACLA,QAAK;uBACLA,QAAK;;;ICvBR;;QA8BE,2BACU,YAA0B;YADpC,iBAEK;YADK,iBAAY,GAAZ,YAAY,CAAc;YANpC,UAAK,GAAe,EAAE,CAAC;YACvB,cAAS,GAAG,KAAK,CAAC;YAClB,wBAAmB,GAAG,IAAIuB,uBAAoB,EAAE,CAAC;YACjD,WAAM,GAAG,EAAE,CAAC;YAsJL,cAAS,GAAG,UAAC,MAAe;gBACjC,IAAM,EAAE,GAAG,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrD,MAAM,GAAG,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;gBACpC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,CAAC,MAAM,CAAC;aAC/C,CAAA;YAEM,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,MAAM,CAAC;gBAC5C,KAAI,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;aAC5B,CAAA;YAEM,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,MAAM,CAAC;gBAC7C9C,mBAAgB,CAAC,eAAe,CAAC,MAAM,EAAE,KAAI,CAAC,KAAK,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAI,CAAC,mBAAmB,EAAE+C,gBAAU,CAAC,QAAQ,CAAC,CAAC;aACtH,CAAA;SAhKI;QAEL,oCAAQ,GAAR;YAAA,iBAyDC;YAxDC/C,mBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAC9CA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAEzC,IAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAC/C,IAAI,CAAC,IAAI,CAAC,KAAK,EACf,WAAW,EAAE,IAAI,EAAE,IAAI,CACxB,CAAC;YAEF,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC3B,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,KAAK,CAAC,EAAE;gBAClC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;aACvB;YAED,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;YAErC,IAAI;gBACF,MAAM,CAAC,SAAS,CAAC,UAAA,IAAI;;oBAEnB,IAAI,CAAC,OAAO,CAAC,UAAC,MAAW;wBACvB,IAAI,KAAI,CAAC,IAAI,CAAC,OAAO,EAAE;4BACrB,MAAM,CAAC,IAAI,GAAG,KAAI,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC;yBACrD;wBAED,IAAM,KAAK,GAAG,KAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;wBAE1C,IAAI,cAAc,GAAG,IAAI,CAAC;wBAE1B,IAAI,MAAM,CAAC,QAAQ,IAAI,EAAE,IAAI,MAAM,CAAC,QAAQ,EAAE;4BAC5C,cAAc,GAAG,MAAM,CAAC,QAAQ,KAAK,MAAM,GAAG,IAAI,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;yBACrH;wBAED,IAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;wBACzD,IAAM,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC;wBAEnD,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC;4BACd,IAAI,EAAE,MAAM,CAAC,IAAI;4BACjB,IAAI,EAAE,KAAK;4BACX,IAAI,EAAEA,mBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;4BAC3C,OAAO,EAAE,MAAM,CAAC,OAAO;4BACvB,QAAQ,EAAE,cAAc;4BACxB,UAAU,EAAE,MAAM,CAAC,UAAU;4BAC7B,QAAQ,EAAE,MAAM,CAAC,IAAI;4BACrB,WAAW,EAAE,MAAM,CAAC,WAAW;4BAC/B,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;4BAC/C,IAAI,EAAE,IAAI;4BACV,KAAK,EAAE,KAAK;4BACZ,OAAO,EAAE,KAAI,CAAC,IAAI,CAAC,OAAO;4BAC1B,KAAK,EAAE,UAAC,CAAC;gCACP,KAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;6BAC1B;yBACF,CAAC,CAAC;qBACJ,CAAC,CAAC;iBACJ,CAAC,CAAC;aACJ;YAAC,OAAO,KAAK,EAAE;gBACd,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;aACjC;SACF;QAEM,wCAAY,GAAZ,UAAa,OAAe,EAAE,IAAY;YAC/C,IAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,IAAI,KAAK,IAAI,GAAA,CAAC,CAAC;YAClD,IAAI,GAAG,EAAE;gBACP,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC;aACpB;SACF;QAEO,uCAAW,GAAX,UAAY,MAAW;;YAE7B,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;YAC9B,IAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,EAAE;gBACrC,UAAU,CAAC;oBACT,EAAE,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC;iBAC3B,EAAE,GAAG,CAAC,CAAC;aACT;YACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBACtB,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,MAAM,CAAC,UAAU;gBACzB,IAAI,EAAE,IAAI;aACc,CAAC,CAAC;SAC7B;QAED,oCAAQ,GAAR,UAAS,IAAS;;YAEhB,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;YAC9B,IAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,EAAE;gBAChC,UAAU,CAAC;oBACT,EAAE,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC;iBAC3B,EAAE,GAAG,CAAC,CAAC;aACT;YACD,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;YAC7C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBACtB,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,IAAI,CAAC,UAAU;gBACvB,IAAI,EAAE,IAAI;aACc,CAAC,CAAC;SAC7B;QAEO,0CAAc,GAAd,UAAe,MAAW;YAChC,IAAI,MAAM,CAAC,KAAK,EAAE;gBAChB,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBACjD,IAAI,SAAS,EAAE;oBACb,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBACtC,IAAM,KAAK,GAAGA,mBAAgB,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;oBACpE,OAAO,KAAK,CAAC;iBACd;qBAAM;oBACL,OAAO,MAAM,CAAC,KAAK,CAAC;iBACrB;aACF;iBACI;gBACH,OAAO,IAAI,CAAC;aACb;SACF;QAEO,yCAAa,GAAb,UAAc,MAAW,EAAE,KAAa;;YAE9C,IAAM,cAAc,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YAC3C,IACE,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACvC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EACtC;gBACA,OAAO,QAAQ,CAAC;aACjB;YACD,OAAO,IAAI,CAAC;SACb;QAED,0CAAc,GAAd;YACE,IAAM,CAAC,GAAGA,mBAAgB,CAAC,cAAc,EAAE,CAAC;YAC5C,OAAO,CAAC,CAAC;SACV;QAED,wCAAY,GAAZ,UAAa,SAAS;YACpB,IAAI,SAAS,KAAK,KAAK,IAAI,CAAC,SAAS,EAAE;gBACrC,OAAO,IAAI,CAAC;aACb;YACD,IAAM,CAAC,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YACnE,OAAO,CAAC,CAAC;SACV;QAED,0CAAc,GAAd,UAAe,QAAgB;YAC7B,OAAOA,mBAAgB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;SAClD;;;;gBAjKFkB,YAAS,SAAC;oBACT,QAAQ,EAAE,cAAc;oBACxB,q6DAAwC;;iBAEzC;;;gBATCN,eAAY;;;uBAWXW,QAAK;wBACLA,QAAK;uBACLA,QAAK;;;ICvBR;;QA6BE,wBACU,WAAwB;YADlC,iBAEK;YADK,gBAAW,GAAX,WAAW,CAAa;;YAHlC,wBAAmB,GAAG,IAAIuB,uBAAoB,EAAE,CAAC;YAMjD,YAAO,GAAG;gBACR,KAAK,EAAE,EAAE;gBACT,IAAI,EAAC,QAAQ;aACd,CAAA;YAeM,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,MAAM,CAAC;gBAC5C,KAAI,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;aAC5B,CAAA;YAeM,YAAO,GAAG,UAAC,KAAU;gBAC1B,KAAI,CAAC,2BAA2B,CAAC,KAAI,CAAC,IAAI,EAAE,KAAI,CAAC,OAAO,CAAC,CAAC;aAC3D,CAAA;;;;YAMM,cAAS,GAAG,UAAC,MAAe;gBACjC,IAAM,EAAE,GAAG,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrD,MAAM,GAAG,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;gBACpC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,CAAC,MAAM,CAAC;aAC/C,CAAA;SAlDI;QAOL,iCAAQ,GAAR;YACE9C,mBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAC9CA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACzCA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAE/G,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SAE3D;QAED,2CAAkB,GAAlB,UAAmB,KAAa;YAC9B,OAAOA,mBAAgB,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SAC/D;QAOD,yCAAgB,GAAhB;YACE,IAAM,aAAa,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxF,IAAI,OAAO,aAAa,KAAK,UAAU,EAAE;gBACvC,OAAO,aAAa,EAAE,CAAC;aACxB;YACD,OAAO,aAAa,CAAC;SACtB;QAEO,oDAA2B,GAA3B,UAA4B,KAAa,EAAE,OAAY;YAC7D,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;;SAE3H;;;;gBApDFkB,YAAS,SAAC;oBACT,QAAQ,EAAE,WAAW;oBACrB,2jFAAqC;;iBAEtC;;;gBARuCP,cAAW;;;uBAUhDY,QAAK;wBACLA,QAAK;uBACLA,QAAK;;;ICvBR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAiHE;YAAA,iBAAiB;YAvFjB,cAAS,GAAG,IAAI,CAAC;YACjB,wBAAmB,GAAG,IAAIuB,uBAAoB,EAAE,CAAC;YACzC,WAAM,GAAU,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;YAuBnB,eAAU,GAAG,EAAE,CAAC;;YAGxB,YAAO,GAAG;gBACR,KAAK,EAAE,kBAAkB;gBACzB,QAAQ,EAAE,QAAQ;gBAClB,QAAQ,EAAE,KAAK;gBACf,QAAQ,EAAE,KAAK;gBACf,YAAY,EAAE;oBACZ,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,GAAG,EAAE,EAAE;oBACP,YAAY,EAAE,IAAI;oBAClB,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE;iBAC7B;gBACD,MAAM,EAAE;oBACN,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,aAAa;iBAC1B;gBACD,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,QAAQ,EAAE,KAAK;gBACf,SAAS,EAAE,QAAQ;gBACnB,cAAc,EAAE,QAAQ;gBACxB,iBAAiB,EAAE,YAAY;gBAC/B,aAAa,EAAE,MAAM;gBACrB,aAAa,EAAE,KAAK;gBACpB,SAAS,EAAE,IAAI;gBACf,aAAa,EAAE,IAAI;gBACnB,KAAK,EAAE,SAAS;aACjB,CAAC;YA8HK,YAAO,GAAG,UAAC,KAAU;gBAC1B,KAAI,CAAC,2BAA2B,CAAC,KAAI,CAAC,IAAI,EAAE,KAAI,CAAC,OAAO,CAAC,CAAC;aAC3D,CAAA;YAEM,cAAS,GAAG,UAAC,MAAe;;;gBAGjC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,CAAC,MAAM,CAAC;aAC/C,CAAA;YAEM,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,MAAM,CAAC;gBAC5C,KAAI,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;aAC5B,CAAA;YAEM,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,MAAM,CAAC;gBAC7C9C,mBAAgB,CAAC,eAAe,CAAC,MAAM,EAAE,KAAI,CAAC,KAAK,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAI,CAAC,mBAAmB,EAAE+C,gBAAU,CAAC,QAAQ,CAAC,CAAC;aACtH,CAAA;SA9GgB;QAEjB,kCAAQ,GAAR;YACE/C,mBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAC9CA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAEzC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBACrB,IAAM,UAAU,GAAG,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC9C,IAAI,UAAU,KAAK,QAAQ,EAAE;oBAC3B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iBAChD;qBAAM,IAAI,UAAU,KAAK,QAAQ,EAAE;oBAClC,IAAM,WAAW,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACrF,IAAI,QAAO,WAAW,CAAC,KAAK,QAAQ,EAAE;wBACpC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;qBAC1C;iBACF;aACF;YAED,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,QAAQ,EAAE;gBACvK,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU;oBAClCA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;aAC5F;YAED,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE;gBACnG,IAAI,CAAC,OAAO,CAAC,MAAM;oBACjBA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;aAC3E;YAGD,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAE1D,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;QAEO,qDAA2B,GAA3B,UAA4B,KAAa,EAAE,OAAY;YAC7D,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;YAC7C,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;YACtD,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;YACtD,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;YACtD,OAAO,CAAC,YAAY,CAAC,UAAU,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACxG,OAAO,CAAC,YAAY,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC;YACjE,OAAO,CAAC,YAAY,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC;YAC5F,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC;YAC9F,OAAO,CAAC,MAAM,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACnF,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;YACtD,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC;YACzD,OAAO,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,IAAI,OAAO,CAAC,cAAc,CAAC;YACxE,OAAO,CAAC,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,IAAI,OAAO,CAAC,iBAAiB,CAAC;YACjF,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC;YACrE,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC;YACrE,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC;YACzD,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC;SACtE;QAEM,kCAAQ,GAAR,UAAS,CAAC;;SAEhB;QAEM,0CAAgB,GAAhB,UAAiB,CAAC;;SAExB;QAEM,2CAAiB,GAAjB,UAAkB,CAAC;;SAEzB;QAEM,2CAAiB,GAAjB,UAAkB,CAAC;;SAEzB;QAEM,yCAAe,GAAf,UAAgB,CAAC;;SAEvB;QAEM,yCAAe,GAAf,UAAgB,CAAC;;SAEvB;QAEM,uCAAa,GAAb,UAAc,CAAC;;YAEpB,IAAM,CAAC,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC/E,IAAI,OAAO,CAAC,KAAK,UAAU,EAAE;gBAC3B,IAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC9C,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;aACpB;YACD,OAAO;SACR;QAEM,uCAAa,GAAb,UAAc,CAAC;;SAErB;;;;gBA3LFkB,YAAS,SAAC;oBACT,QAAQ,EAAE,YAAY;oBACtB,yqDAAsC;;iBAEvC;;;;uBAEEK,QAAK;wBACLA,QAAK;uBACLA,QAAK;;;ICxBR;;QAiCE;YAAA,iBAAiB;YARjB,wBAAmB,GAAG,IAAIuB,uBAAoB,EAAE,CAAC;YAC1C,yBAAoB,GAAY,KAAK,CAAC;YACtC,2BAAsB,GAAY,KAAK,CAAC;YACxC,iBAAY,GAAQ,IAAI,CAAC;YACzB,wBAAmB,GAAW,IAAI,CAAC;YAEnC,mBAAc,GAAY,KAAK,CAAC;YAmDhC,cAAS,GAAG,UAAC,MAAe;gBACjC,IAAM,EAAE,GAAG,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrD,MAAM,GAAG,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;gBACpC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,CAAC,MAAM,CAAC;aAC/C,CAAC;YAEK,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,MAAM,CAAC;gBAC5C,KAAI,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;aAC5B,CAAC;YAEK,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,MAAM,CAAC;gBAC7C9C,mBAAgB,CAAC,eAAe,CAC9B,MAAM,EACN,KAAI,CAAC,KAAK,EACV,KAAI,CAAC,IAAI,CAAC,KAAK,EACf,KAAI,CAAC,mBAAmB,EACxB+C,gBAAU,CAAC,QAAQ,CACpB,CAAC;aACH,CAAC;SArEe;QAEjB,qCAAQ,GAAR;YACE/C,mBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAC9CA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAEzC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC9C,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,SAAS,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE;oBAC3G,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;oBACjC,IAAI,CAAC,mBAAmB,EAAE,CAAC;iBAC5B;gBACD,IAAI,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE;oBACnC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;iBACpC;gBAED,IAAI,CAAC,sBAAsB,EAAE,CAAC;aAC/B;YAED,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;SACnF;QAED,2CAAc,GAAd;YACE,IAAM,CAAC,GAAGA,mBAAgB,CAAC,cAAc,EAAE,CAAC;YAC5C,OAAO,CAAC,CAAC;SACV;QAED,2CAAc,GAAd,UAAe,KAAU;YACvBA,mBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACnE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBACtB,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAC1B,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE;aAChB,CAAC,CAAC;SAC7B;QAED,qCAAQ,GAAR,UAAS,KAAU;YACjB,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBACtB,IAAM,QAAQ,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CACtD,IAAI,EACJ,IAAI,CAAC,IAAI,CAAC,QAAQ,CACnB,CAAC;gBACF,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;oBAClC,IAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;oBACpD,OAAO,CAAC,KAAK,CAAC,CAAC;iBAChB;aACF;SACF;QAwBM,0CAAa,GAAb;YACL,OAAO;gBACL,KAAK,EACH,IAAI,CAAC,IAAI,CAAC,UAAU;oBAClB,IAAI,CAAC,IAAI,CAAC,UAAU,KAAK,KAAK;oBAC9B,IAAI,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS;sBACnC,CAAC;sBACD,CAAC;gBACP,aAAa,EAAE,QAAQ;aACxB,CAAC;SACH;QAEM,6CAAgB,GAAhB;YACL,IAAM,SAAS,GAAG,EAAE,CAAC;YACrB,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;gBAC3B,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAC,CAAC;oBAC3C,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE;wBAC3B,IAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBACrC,eAAe,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAC5C,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAC1D,QAAQ,EAAE,CAAC;wBACb,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;qBAC3C;yBAAM;wBACL,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;qBACnB;iBACF,CAAC,CAAC;aACJ;YAED,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC5B;QAED,qCAAQ,GAAR,UAAS,IAAe,EAAE,IAAY;YACpC,OAAO,aAAW,IAAI,CAAC,IAAI,CAAC,KAAO,CAAC;SACrC;;QAGM,iDAAoB,GAApB;YACL,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE;oBAClC,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;iBACvC;aACF;YAED,OAAO,SAAS,CAAC;SAClB;QAEM,gDAAmB,GAAnB,UAAoB,WAAoB;YAC7C,IAAI,IAAI,CAAC,oBAAoB,EAAE;gBAC7B,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,EAAE,EAAE;oBAChC,IAAI,WAAW,EAAE;wBACf,IAAI,CAAC,mBAAmB,GAAG,WAAW,CAAC;qBACxC;yBACI;wBACH,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;qBACnD;iBACF;qBACI;oBACH,IAAI,CAAC,mBAAmB,GAAG,iBAAiB,CAAA;iBAC7C;aACF;SACF;QAEM,mDAAsB,GAAtB,UAAuB,WAAoB;YAChD,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,IAAI,WAAW,EAAE;oBACf,IAAI,CAAC,mBAAmB,GAAG,WAAW,CAAC;iBACxC;qBACI;oBACH,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;iBAC1D;aACF;iBACI;gBACH,IAAI,CAAC,mBAAmB,GAAG,sBAAsB,CAAC;aACnD;SACF;QAEM,sDAAyB,GAAzB;YACL,IAAI,IAAI,CAAC,YAAY,EAAG;gBACtB,IAAI,IAAI,CAAC,YAAY,CAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;oBAClE,OAAO,oBAAoB,CAAC;iBAC7B;qBACI;oBACH,OAAO,EAAE,CAAC;iBACX;aACF;YACD,OAAO,2BAA2B,CAAC;SACpC;;;;gBA/KFkB,YAAS,SAAC;oBACT,QAAQ,EAAE,eAAe;oBACzB,2zFAAyC;;iBAE1C;;;;uBAEEK,QAAK;wBACLA,QAAK;uBACLA,QAAK;;;;QCSN,wBACU,WAAwB;YADlC,iBAGC;YAFS,gBAAW,GAAX,WAAW,CAAa;YAP1B,SAAI,GAAG,mBAAmB,CAAC;YAC3B,iBAAY,GAAG,yBAAyB,CAAC;YAC1C,wBAAmB,GAAG,IAAIuB,uBAAoB,EAAE,CAAC;YAkDjD,cAAS,GAAG,UAAC,MAAe;gBACjC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,CAAC,MAAM,CAAC;aAC/C,CAAA;YAEM,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,MAAM,CAAC;gBAC5C,KAAI,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;aAC5B,CAAA;YAEM,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,MAAM,CAAC;gBAC7C9C,mBAAgB,CAAC,eAAe,CAAC,MAAM,EAAE,KAAI,CAAC,KAAK,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAI,CAAC,mBAAmB,EAAE+C,gBAAU,CAAC,QAAQ,CAAC,CAAC;aACtH,CAAA;SAvDA;QAED,iCAAQ,GAAR;YACE,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB/C,mBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAC9CA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;SAC1C;QAEO,wCAAe,GAAf;YAAA,iBAyBP;YAxBC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBACzB,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;gBAC/C,OAAO;aACR;YAED,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;gBACjD,IAAI,CAAC,UAAU,GAAGA,mBAAgB,CAAC,aAAa,CAC9C,IAAI,CAAC,IAAI,CAAC,UAAU,EACpB,IAAI,CAAC,KAAK,CACX,CAAC;aACH;iBACI;gBACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;aACxC;YAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;gBAClC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAA,CAAC;oBACvB,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK;wBACnC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,KAAI,CAAC,IAAI,CAAC;wBAC5D,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,GAAG,KAAI,CAAC,YAAY;wBACpE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,KAAI,CAAC,IAAI,CAAC;oBACxC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,QAAQ,CAAC;iBAC1B,CAAC,CAAA;aACH;SACF;QAEM,iCAAQ,GAAR;YACL,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;SAC3B;QAEM,qCAAY,GAAZ,UAAa,IAAI;YACtB,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;SACrC;QAgBM,gDAAuB,GAAvB,UAAwB,mBAAwB;;YACrD,IAAI,GAAG,GAAG,CAAC,CAAC;oCACH,IAAI;gBACX,IAAI,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;oBACrC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;iBACjB;qBACI;oBACH,IAAI,CAAC,IAAI,GAAG,OAAK,UAAU,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,GAAA,CAAC,CAAC,KAAK,CAAC;iBACrE;gBACD,GAAG,EAAE,CAAC;;;;gBAPR,KAAiB,IAAA,KAAA,SAAA,IAAI,CAAC,UAAU,CAAA,gBAAA;oBAA3B,IAAI,IAAI,WAAA;4BAAJ,IAAI;iBAQZ;;;;;;;;;SACF;QAEM,4CAAmB,GAAnB,UAAoB,IAAS;YAClC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,GAAA,CAAC,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;YAE9E,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBACtB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;oBACtB,IAAI,EAAE,UAAU;oBAChB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;oBAC1B,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE;iBAC9C,CAAC,CAAC;aAC7B;SACF;QAEM,qCAAY,GAAZ;YACL,OAAO,IAAI,CAAC,UAAiB,CAAC;SAC/B;QAEM,kCAAS,GAAT,UAAU,KAAU,EAAE,IAAS;YACpC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBACrB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;oBACtB,IAAI,EAAE,SAAS;oBACf,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;oBACzB,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE;iBAC9C,CAAC,CAAC;aAC7B;YAED,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE;gBAChC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;aACzB;SACF;QAEM,oCAAW,GAAX,UAAY,CAAa;YAC9B,IAAM,OAAO,GAAG,CAAC,CAAC,MAAqB,CAAC;YACxC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;SACjC;;;;gBA1HFkB,YAAS,SAAC;oBACT,QAAQ,EAAE,WAAW;oBACrB,i4BAAqC;;iBAEtC;;;gBARuCP,cAAW;;;uBAUhDY,QAAK;wBACLA,QAAK;uBACLA,QAAK;6BAML2B,YAAS,SAACC,oCAAgB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;;;IC9BhD;IAyBA;IACA;;QAsBE;YAAA,iBAAgB;YAXhB,SAAI,GAAsB,EAAE,CAAC;YAC7B,UAAK,GAAG,SAAS,CAAC;YAClB,SAAI,GAAG,YAAY,CAAC;YAEpB,wBAAmB,GAAG,IAAIL,uBAAoB,EAAE,CAAC;YA+H1C,cAAS,GAAG,UAAC,MAAe;gBACjC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,CAAC,MAAM,CAAC;aAC/C,CAAA;YAEM,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,MAAM,CAAC;gBAC5C,KAAI,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;aAC5B,CAAA;YAEM,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,MAAM,CAAC;gBAC7C9C,mBAAgB,CAAC,eAAe,CAAC,MAAM,EAAE,KAAI,CAAC,KAAK,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAI,CAAC,mBAAmB,EAAE+C,gBAAU,CAAC,QAAQ,CAAC,CAAC;aACtH,CAAA;SApIe;QAEhB,uCAAQ,GAAR;YACE/C,mBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAC9CA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAEzC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;YAC/C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,GAAG,CAAC;;;;;YAMlD,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc,EAAE;gBACrC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;aACpB;iBAAM,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc,EAAE;gBAC5C,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;aACpB;YACD,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;SACnC;QAED,0CAAW,GAAX;YACE,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;aACjC;SACF;;;;;;;;;QAYD,uCAAQ,GAAR;YACE,IAAI,CAAC,CAAC;YACN,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;gBACvC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;aACrB;iBAAM;gBACL,CAAC,GAAG,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;aACvC;YACD,IAAM,SAAS,GAAGA,mBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC9D,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE;gBACnC,IAAM,SAAS,GAAG,SAAS,EAAE,CAAC;gBAC9B,IAAI,SAAS,EAAE;oBACb,IAAI;wBACF,IAAM,aAAa,GAAGA,mBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;wBAChF,IAAI,OAAO,aAAa,KAAK,SAAS,EAAE;4BACtC,OAAO,aAAa,CAAC,QAAQ,EAAE,CAAC;yBACjC;wBACD,IAAI,aAAa,KAAK,SAAS,EAAE;4BAC/B,OAAO,WAAW,CAAC;yBACpB;wBACD,IAAI,aAAa,KAAK,IAAI,EAAE;4BAC1B,OAAO,MAAM,CAAC;yBACf;wBACD,OAAO,aAAa,CAAC;qBACtB;oBAAC,WAAM;wBACN,OAAO;qBACR;iBACF;qBAAM;oBACL,OAAO;iBACR;aACF;iBAAM;gBACL,OAAO,SAAS,CAAC;aAClB;;;;;;;;;;;;;;;;;;;SAmBF;QAED,6CAAc,GAAd;;;YAGE,OAAO;gBACL,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE;gBACpC,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW;aAChD,CAAC;SACH;QAEO,8CAAe,GAAf;YACN,IAAM,CAAC,GAAG,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;YACjD,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC;SAC5B;QAED,2CAAY,GAAZ,UAAa,QAAa;YAA1B,iBAeC;YAdC,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;aACjC;;YAED,IAAI,CAAC,YAAY,GAAGI,OAAE,CAAC,EAAE,CAAC;iBACvB,IAAI,CAACqC,eAAK,CAAC,GAAG,CAAC,CAAC;iBAChB,SAAS,CAAC;gBACTzC,mBAAgB,CAAC,aAAa,CAAC,KAAI,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBAC5E,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;oBACtB,IAAI,EAAE,yBAAyB;oBAC/B,MAAM,EAAE,KAAI,CAAC,IAAI,CAAC,QAAQ;oBAC1B,IAAI,EAAE,QAAQ;iBACU,CAAC,CAAC;aAC7B,CAAC,CAAC;SACN;;;;gBA1IFkB,YAAS,SAAC;oBACT,QAAQ,EAAE,iBAAiB;oBAC3B,u/BAA2C;;iBAE5C;;;;uBAEEK,QAAK;wBACLA,QAAK;uBACLA,QAAK;yBAUL2B,YAAS,SAAC,QAAQ;;;IC9CrB;;QA8BE;YAAA,iBAAiB;;YAHjB,UAAK,GAA8B,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAC,CAAC;YAC7D,wBAAmB,GAAG,IAAIJ,uBAAoB,EAAE,CAAC;YAoC1C,cAAS,GAAG,UAAC,MAAe;gBACjC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,CAAC,MAAM,CAAC;aAC/C,CAAA;YAEM,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,MAAM,CAAC;gBAC5C,KAAI,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;aAC5B,CAAA;YAEM,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,MAAM,CAAC;gBAC7C9C,mBAAgB,CAAC,eAAe,CAAC,MAAM,EAAE,KAAI,CAAC,KAAK,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAI,CAAC,mBAAmB,EAAE+C,gBAAU,CAAC,QAAQ,CAAC,CAAC;aACtH,CAAA;SA9CgB;QAEjB,sCAAQ,GAAR;YACE/C,mBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAC9CA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAEzC,IAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAClD,IAAM,cAAc,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAChD,IAAM,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAE9C,IAAM,QAAQ,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;YAC/E,IAAM,MAAM,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;;;;;YAO3E,IAAM,OAAO,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACjF,IAAI,OAAO,EAAE;gBACX,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE;oBAC9B,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;iBAChE;aACF;SAEF;QAED,yCAAW,GAAX,UAAY,GAAS,EAAE,GAAS;YAC9B,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;gBACvB,KAAK,EAAE,GAAG;gBACV,GAAG,EAAE,GAAG;aACT,CAAC,CAAC;SACJ;;;;gBA9CFkB,YAAS,SAAC;oBACT,QAAQ,EAAE,gBAAgB;oBAC1B,6iDAA0C;;iBAE3C;;;;uBAEEK,QAAK;wBACLA,QAAK;uBACLA,QAAK;6BACL2B,YAAS,SAAC,YAAY;;;ICzBzB;;QAiCE;YAAA,iBAAiB;YALjB,eAAU,GAAG,aAAa,CAAC;;YAG3B,wBAAmB,GAAG,IAAIJ,uBAAoB,EAAE,CAAC;YAmG1C,cAAS,GAAG,UAAC,MAAe;gBACjC,IAAM,EAAE,GAAG,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrD,MAAM,GAAG,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;gBACpC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,CAAC,MAAM,CAAC;aAC/C,CAAA;YAEM,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,MAAM,CAAC;gBAC5C,KAAI,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;aAC5B,CAAA;YAEM,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,MAAM,CAAC;gBAC7C9C,mBAAgB,CAAC,eAAe,CAAC,MAAM,EAAE,KAAI,CAAC,KAAK,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAI,CAAC,mBAAmB,EAAE+C,gBAAU,CAAC,QAAQ,CAAC,CAAC;aACtH,CAAA;YAEM,iBAAY,GAAG,UAAC,OAAe,EAAC,OAAe;gBAEpD,IAAI,aAAa,GAAG,KAAI,CAAC;gBAEzB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAC/B;oBACE,KAAI,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;iBACvC;gBACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAC/B;oBACE,KAAI,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;iBACvC;aACF,CAAA;SA7HgB;QAEjB,qCAAQ,GAAR;YACE/C,mBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAC9CA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAEzC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;gBAC9B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;aAC3B;YACD,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE;gBACpC,IAAI,CAAC,UAAU,GAAG,oBAAoB,CAAC;aACxC;YACD,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAChC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;aAC9B;YACJ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE;gBAChC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;aAC9B;;;;SAIF;QAED,8CAAiB,GAAjB;YACE,OAAO,IAAI,CAAC,UAAU;iBACnB,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;iBACnB,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC;iBACvB,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;iBACjB,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;SACtB;QAED,6CAAgB,GAAhB;YACE,IAAM,aAAa,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAC3D,IAAI,EACJ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAClB,IAAI,CAAC,KAAK,CACX,CAAC;YACF,IAAI,OAAO,aAAa,KAAK,UAAU,EAAE;gBACvC,OAAO,aAAa,EAAE,CAAC;aACxB;YACD,OAAO,aAAa,CAAC;SACtB;QAED,2CAAc,GAAd;YACE,IAAM,CAAC,GAAGA,mBAAgB,CAAC,cAAc,EAAE,CAAC;YAC5C,OAAO,CAAC,CAAC;SACV;QAED,yCAAY,GAAZ;YACE,IAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;YACxD,IAAI,KAAK,EAAE;gBACT,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;aACxB;iBAAM;gBACL,OAAO,IAAI,CAAC;aACb;SACF;QAEM,oCAAO,GAAP,UAAQ,IAAU;;YAEvB,IAAM,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;;YAE5CA,mBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SACrE;QAEM,qCAAQ,GAAR,UAAS,KAAW;;;;;;;;;;YAUzB,IAAI,KAAK,KAAK,IAAI,EAAE;gBAClBA,mBAAgB,CAAC,aAAa,CAC5B,IAAI,CAAC,IAAI,CAAC,KAAK,EACf,KAAK,EACL,IAAI,CAAC,KAAK,CACX,CAAC;aACH;iBAAM;gBACLA,mBAAgB,CAAC,aAAa,CAC5B,IAAI,CAAC,IAAI,CAAC,KAAK,EACf,KAAK,CAAC,WAAW,EAAE,EACnB,IAAI,CAAC,KAAK,CACX,CAAC;gBAEF,IAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC/C,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;aAClC;YACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBACtB,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAC1B,IAAI,EAAE,KAAK;aACa,CAAC,CAAC;SAC7B;QAgCM,mDAAsB,GAAtB,UAAuB,KAAuB,EAAE,SAAiB,EAAE,cAAuB;;YAE/F,IAAI,aAAa,GAAG,IAAI,CAAC;;YAGzB,UAAU,CAAC;;;gBAGT,aAAa,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;;gBAG7C,aAAa,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;aAC9C,EAAE,GAAG,CAAC,CAAC;SACT;QAEO,4CAAe,GAAf,UAAgB,aAAkB;YACxC,IAAI,QAAQ,GAAG,CAAC,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;;gBAElE,IAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAEzB,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE;;oBAEpB,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE;wBAC7B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;4BAClC,IAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;;4BAEpDA,mBAAgB,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;yBACzF;;wBAGD,UAAU,CAAC;4BACT,aAAa,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;4BAC1C,aAAa,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;4BAC5C,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;4BACzC,aAAa,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;yBACzC,EAAE,GAAG,CAAC,CAAC;qBACT,CAAC,CAAC;iBACJ;;YApBH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE;;aAqBvC;;YAGD,IAAM,SAAS,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE;gBAClC,IAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;;gBAEpE,aAAa,CAAC,kBAAkB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;gBAEzD,aAAa,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;gBAC1C,aAAa,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;gBAC5C,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;gBACzC,aAAa,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;aACzC,CAAC,CAAC;SACJ;QAEO,4CAAe,GAAf,UAAgB,aAAkB;YACxC,IAAI,OAAO,GAAG,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE;gBAChC,aAAa,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;gBAC1C,aAAa,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;gBAC5C,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;gBACzC,aAAa,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;aACzC,CAAC,CAAC;SACJ;QAEO,uCAAU,GAAV,UAAW,aAAkB;YACnC,IAAM,OAAO,GAAG,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1D,IAAI,OAAO,EAAE;gBACX,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC;;oBAE3C,IAAI,aAAa,GAAG,aAAa,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;oBACtE,IAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;;oBAG/B,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAC/C,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC;oBACnD,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC;;oBAGnD,aAAa,CAAC,kBAAkB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;iBAChE,CAAC,CAAC;aACJ;SACF;QAEO,yCAAY,GAAZ,UAAa,aAAkB;YACrC,IAAM,WAAW,GAAG,CAAC,CAAC,yBAAyB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5D,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC1B,IAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;gBAErC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACpC,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC;;wBAE3C,IAAM,SAAS,GAAG,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC;;wBAG9C,IAAI,aAAa,GAAG,aAAa,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;;wBAGtE,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;;wBAGlC,aAAa,CAAC,kBAAkB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;qBAChE,CAAC,CAAC;iBACJ;aACF;SACF;QAEO,2CAAc,GAAd,UAAe,aAAkB;YACvC,IAAM,WAAW,GAAG,CAAC,CAAC,yBAAyB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5D,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC1B,IAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;gBAExC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACvC,OAAO,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC;;wBAE9C,IAAM,SAAS,GAAG,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC;;wBAG9C,IAAM,aAAa,GAAG,aAAa,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;;wBAGxE,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;;wBAGpC,aAAa,CAAC,kBAAkB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;qBAChE,CAAC,CAAC;iBACJ;aACF;SACF;QAEO,wCAAW,GAAX,UAAY,aAAkB;YACpC,IAAM,WAAW,GAAG,CAAC,CAAC,yBAAyB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5D,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC1B,IAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;gBAErC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACpC,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC;;wBAE3C,IAAM,SAAS,GAAG,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC;;wBAG9C,IAAM,aAAa,GAAG,aAAa,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;;wBAGxE,IAAI,KAAK,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC;wBACrC,IAAI,SAAS,CAAC,WAAW,EAAE,IAAI,IAAI,EAAE;4BACnC,KAAK,IAAI,EAAE,CAAC;yBACb;6BACI;4BACH,KAAK,IAAI,EAAE,CAAC;yBACb;wBACD,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;;wBAG9B,aAAa,CAAC,kBAAkB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;qBAChE,CAAC,CAAC;iBACJ;aACF;SACF;QAEO,iDAAoB,GAApB,UAAqB,aAAkB;;YAE7C,IAAM,WAAW,GAAGA,mBAAgB,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAE/H,IAAI,aAAa,GAAG,IAAI,IAAI,EAAE,CAAC;YAE/B,IAAI,WAAW,IAAI,EAAE,IAAI,WAAW,IAAI,SAAS,EAAE;;gBAEjD,aAAa,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC;aACvC;YAED,OAAO,aAAa,CAAA;SACrB;QAEO,+CAAkB,GAAlB,UAAmB,aAAkB,EAAE,aAAkB;;YAE/D,IAAM,WAAW,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;;YAG1DA,mBAAgB,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;;YAG3F,UAAU,CAAC;gBACT,aAAa,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;gBAC1C,aAAa,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;gBAC5C,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;gBACzC,aAAa,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;aACzC,EAAE,GAAG,CAAC,CAAC;SACT;;;;gBAxUFkB,YAAS,SAAC;oBACT,QAAQ,EAAE,eAAe;oBACzB,k4KAAyC;;iBAE1C;;;;uBAEEK,QAAK;wBACLA,QAAK;uBACLA,QAAK;;;IC3BR;;QA2BE,uBACU,WAAwB;YADlC,iBAEK;YADK,gBAAW,GAAX,WAAW,CAAa;YAHlC,wBAAmB,GAAG,IAAIuB,uBAAoB,EAAE,CAAC;YAiB1C,cAAS,GAAG,UAAC,MAAe;gBACjC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,CAAC,MAAM,CAAC;aAC/C,CAAA;YAEM,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,MAAM,CAAC;gBAC5C,KAAI,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;aAC5B,CAAA;YAEM,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,MAAM,CAAC;gBAC7C9C,mBAAgB,CAAC,eAAe,CAAC,MAAM,EAAE,KAAI,CAAC,KAAK,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAI,CAAC,mBAAmB,EAAE+C,gBAAU,CAAC,QAAQ,CAAC,CAAC;aACtH,CAAA;SAzBI;QAEL,gCAAQ,GAAR;YACE/C,mBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAC9CA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACzCA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;SAChH;QAGD,0CAAkB,GAAlB,UAAmB,KAAa;YAC9B,OAAOA,mBAAgB,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SAC/D;;;;gBAzBFkB,YAAS,SAAC;oBACT,QAAQ,EAAE,UAAU;oBACpB,2gBAAoC;;iBAErC;;;gBARuCP,cAAW;;;uBAUhDY,QAAK;wBACLA,QAAK;uBACLA,QAAK;;;ICvBR;;;QA8BE,wBACU,WAAwB,EACxB,YAA0B,EAC1B,YAAoC;;;;YAFpC,gBAAW,GAAX,WAAW,CAAa;YACxB,iBAAY,GAAZ,YAAY,CAAc;YAC1B,iBAAY,GAAZ,YAAY,CAAwB;YAR9C,cAAS,GAAG,IAAI,CAAC;YAEjB,eAAU,GAAG,EAAE,CAAC;SASX;QAEL,iCAAQ,GAAR;YAAA,iBA8BC;YA7BC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;gBACnB,IAAI,CAAC,YAAY,EAAE,CAAC;;;;gBAIpB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;aACxB;iBAAM;gBACL,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,IAAI,CAClFpB,mBAAS,CAAC,UAAA,aAAa;oBACrB,IAAI,KAAI,CAAC,SAAS,KAAK,OAAO,EAAE;wBAC9B,OAAO,KAAI,CAAC,YAAY,CAAC,eAAe,CAAC,aAAa,EAAE,KAAI,CAAC,CAAC;qBAC/D;yBAAM;wBACL,KAAI,CAAC,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC;wBAClC,KAAI,CAAC,YAAY,EAAE,CAAC;qBACrB;iBACF,CAAC,EACFA,mBAAS,CAAC;oBACR,KAAI,CAAC,SAAS,GAAG,KAAK,CAAC;oBACvB,IAAI,KAAI,CAAC,KAAK,CAAC,YAAY,IAAI,KAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE;wBAC1D,KAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;qBACrC;oBACD,OAAOC,OAAE,CAAC,EAAE,CAAC,CAAC;iBACf,CAAC,EACFqC,eAAK,CAAC,GAAG,CAAC,CAAC;qBACV,SAAS,CAAC;oBACT,KAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;oBACjC,KAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC;iBACtC,CAAC,CAAC;aACN;SACF;QAED,oCAAW,GAAX;YACE,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;aACjC;SACF;QAED,iCAAQ,GAAR;YACE,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,EAAE;gBAC9B,OAAO,IAAI,CAAC,KAAK,CAAC;aACnB;iBAAM;gBACL,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;aAC1B;SACF;QAEO,qCAAY,GAAZ;YACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAChD,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YAChCzC,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;SAClH;QAGD,2CAAkB,GAAlB,UAAmB,KAAa;YAC9B,OAAOA,mBAAgB,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SAC/D;QAEO,oCAAW,GAAX,UAAY,aAA4B;YAC9C,IAAM,YAAY,GAAmC,EAAE,CAAC;YACxD,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;YAClD,IAAM,YAAY,GAAG,IAAIoD,eAAS,CAAC,YAAY,CAAC,CAAC;YACjD,OAAO,YAAY,CAAC;SACrB;QAEO,wCAAe,GAAf,UAAgB,KAAa;YACnC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;gBACf,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;aAChD;YACD,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gBACvD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAClC;iBAAM;gBACL,OAAO,CAAC,KAAK,CAAC,0BAA0B,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,EAAE,KAAK,CAAC,CAAC;aACvE;SACF;QAGO,wCAAe,GAAf,UACN,UAAyB,EACzB,YAA4C;YAFtC,iBAiCP;YA7BC,UAAU,CAAC,OAAO,CAAC,UAAA,KAAK;gBACtB,KAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;gBAC5B,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;oBACtE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;wBACzE,OAAO,CAAC,IAAI,CAAC,mCAAmC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;qBAChE;iBACF;qBAAM;oBACL,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;wBAC9B,KAAI,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;qBACjD;yBAAM;wBACL,IAAM,aAAa,GAAGpD,mBAAgB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;wBAC5D,IAAM,SAAS,GAAGA,mBAAgB,CAAC,oBAAoB,CAAC,KAAI,EAAE,KAAK,CAAC,CAAC;wBACrE,IAAM,UAAU,GAAGA,mBAAgB,CAAC,qBAAqB,CAAC,KAAI,EAAE,KAAK,CAAC,CAAC;wBACvE,IAAI,aAAa,KAAK,IAAI,EAAE;4BAC1B,IAAM,UAAU,GAAkBA,mBAAgB,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;4BAC/F,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAIqD,iBAAW,CACzC,KAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,UAAU,CAC3C,CAAC;4BACF,IAAIrD,mBAAgB,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gCAC3C,IAAM,YAAY,GAAkBA,mBAAgB,CAAC,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;gCACnG,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,IAAIqD,iBAAW,CAC3C,KAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAChC,YAAY,CACb,CAAC;6BACH;yBACF;qBACF;iBACF;aACF,CAAC,CAAC;SACJ;QAEO,yCAAgB,GAAhB,UAAiB,KAAa;YACpC,IAAM,aAAa,GAAGrD,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;YACpF,IAAI,OAAO,aAAa,KAAK,UAAU,EAAE;gBACvC,OAAO,aAAa,EAAE,CAAC;aACxB;YACD,OAAO,aAAa,CAAC;SACtB;QAED,kCAAS,GAAT,UAAU,KAAa,EAAE,IAAI;;YAE3B,OAAO,KAAK,CAAC;SACd;;;;gBAlJFkB,YAAS,SAAC;oBACT,QAAQ,EAAE,WAAW;oBACrB,yzBAAqC;;iBAEtC;;;gBAPQP,cAAW;gBAAEC,eAAY;gBADzB,sBAAsB;;;wBAU5BW,QAAK;4BACLA,QAAK;;;ICtBR;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAuFE;YA9DA,cAAS,GAAG,IAAI,CAAC;YACjB,wBAAmB,GAAG,IAAIuB,uBAAoB,EAAE,CAAC;YACzC,UAAK,GAAG,CAAC,CAAC;YACV,UAAK,GAAG,EAAE,CAAC;YACX,UAAK,GAAG,EAAE,CAAC;YACX,eAAU,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YACnD,eAAU,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YACnD,eAAU,GAAG,CAAC,CAAC;YACf,aAAQ,GAAG,GAAG,CAAC;YACf,aAAQ,GAAG,CAAC,CAAC;YACb,aAAQ,GAAG,GAAG,CAAC;YAEvB,YAAO,GAAG;gBACR,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,QAAQ,EAAE,EAAE;gBACZ,MAAM,EAAE,IAAI,CAAC,KAAK;gBAClB,WAAW,EAAE,KAAK;gBAClB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,OAAO,EAAE,KAAK;gBACd,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,qBAAqB,EAAE,SAAS;gBAChC,WAAW,EAAE,SAAS;gBACtB,SAAS,EAAE,CAAC;gBACZ,OAAO,EAAE,GAAG;gBACZ,UAAU,EAAE,SAAS;gBACrB,YAAY,EAAE,OAAO;gBACrB,UAAU,EAAE,IAAI;gBAChB,SAAS,EAAE,EAAE;aACd,CAAC;SA6Be;QAEjB,kCAAQ,GAAR;YACE9C,mBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAC9CA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAEzC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBACrB,IAAM,UAAU,GAAG,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC9C,IAAI,UAAU,KAAK,QAAQ,EAAE;oBAC3B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iBAChD;qBAAM,IAAI,UAAU,KAAK,QAAQ,EAAE;oBAClC,IAAM,WAAW,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACrF,IAAI,QAAQ,WAAW,CAAC,KAAK,QAAQ,EAAE;wBACrC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;qBAC1C;iBACF;aACF;YAED,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1D,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB;QAEO,qDAA2B,GAA3B,UAA4B,KAAa,EAAE,OAAY;YAC7D,OAAO,CAAC,KAAK,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC;YAC5F,OAAO,CAAC,KAAK,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC;YAC5F,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;YACjD,OAAO,CAAC,QAAQ,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC;YACrG,OAAO,CAAC,QAAQ,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC;YACrG,OAAO,CAAC,MAAM,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC;YAC9F,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC;YAC/D,OAAO,CAAC,UAAU,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC;YAC3G,OAAO,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC;YAC5D,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;YAC7C,OAAO,CAAC,UAAU,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC;YAC3G,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;YACnD,OAAO,CAAC,UAAU,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC;YAC3G,OAAO,CAAC,QAAQ,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC;YACrG,OAAO,CAAC,qBAAqB,GAAG,KAAK,CAAC,qBAAqB,IAAI,OAAO,CAAC,qBAAqB,CAAC;YAC7F,OAAO,CAAC,SAAS,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC;YACxG,OAAO,CAAC,OAAO,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC;YAClG,OAAO,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC;YAC5D,OAAO,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC;YAClE,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC;YACzD,OAAO,CAAC,cAAc,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC,cAAc,CAAC;YACvH,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,KAAK,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;SAC3F;QAED,mCAAS,GAAT;YACE,IAAM,cAAc,GAAG;gBACrB,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;aAC9C,CAAC;YAEF,OAAO,cAAc,CAAC;SACvB;QAEM,mCAAS,GAAT,UAAU,MAAe;;;YAG9B,IAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,CAAC,MAAM,CAAC;SAC/C;QAEM,oCAAU,GAAV,UAAW,MAAe;YAC/B,IAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,MAAM,CAAC;YAC5C,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;SAC5B;QAEM,oCAAU,GAAV,UAAW,MAAe;YAC/B,IAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,MAAM,CAAC;SAC9C;QAEM,iCAAO,GAAP,UAAQ,KAAU;YACvB,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SAC3D;;;;gBAhJFkB,YAAS,SAAC;oBACT,QAAQ,EAAE,YAAY;oBACtB,6/CAAsC;;iBAEvC;;;;uBAEEK,QAAK;wBACLA,QAAK;uBACLA,QAAK;;;;QCwFN,wBACU,cAA8B,EAC9B,MAAc,EACd,WAAwB,EACxB,WAAwB,EACxB,aAA4B,EAC5B,2BAAwD,EACxD,YAA0B,EAC1B,YAA0B,EAC1B,cAAqC,EACrC,WAAwB;YAVlC,iBAkBC;YAjBS,mBAAc,GAAd,cAAc,CAAgB;YAC9B,WAAM,GAAN,MAAM,CAAQ;YACd,gBAAW,GAAX,WAAW,CAAa;YACxB,gBAAW,GAAX,WAAW,CAAa;YACxB,kBAAa,GAAb,aAAa,CAAe;YAC5B,gCAA2B,GAA3B,2BAA2B,CAA6B;YACxD,iBAAY,GAAZ,YAAY,CAAc;YAC1B,iBAAY,GAAZ,YAAY,CAAc;YAC1B,mBAAc,GAAd,cAAc,CAAuB;YACrC,gBAAW,GAAX,WAAW,CAAa;;YA3DlC,UAAK,GAAQ,IAAI,CAAC;YAClB,aAAQ,GAAW,IAAI,CAAC;YAIxB,gBAAW,GAAU,EAAE,CAAC;YAKxB,wBAAmB,GAAG,IAAIuB,uBAAoB,EAAE,CAAC;;YAGjD,WAAM,GAAU;gBACd,IAAI,EAAE,CAAC;gBACP,IAAI,EAAE,EAAE;aACT,CAAC;YAEF,WAAM,GAAuB;gBAC3B,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,CAAC;gBACT,QAAQ,EAAE,EAAE;gBACZ,cAAc,EAAE,EAAE;gBAClB,SAAS,EAAE,EAAE;gBACb,eAAe,EAAE,EAAE;gBACnB,UAAU,EAAE,EAAE;gBACd,YAAY,EAAE,EAAE;gBAChB,UAAU,EAAE,EAAE;gBACd,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE,EAAE;gBACX,SAAS,EAAE,CAAC;aACb,CAAC;YAEF,gBAAW,GAAiB,IAAIhB,YAAO,EAAO,CAAC;YAY/C,0BAAqB,GAAY,KAAK,CAAC;YACvC,UAAK,GAAY,IAAI,CAAC;YA+Sf,YAAO,GAAG,UAAC,KAAU;gBAC1B,KAAI,CAAC,QAAQ,GAAG;oBACd,IAAI,EAAE,KAAK;oBACX,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;iBAClC,CAAC;gBACF,KAAI,CAAC,KAAK,GAAG,KAAK,CAAC;gBAEnB,IAAI,KAAI,CAAC,KAAK,EAAE;oBACd,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;iBAC5C;gBAED,IAAI,CAAC,CAAC,KAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;oBAChC,IAAI,KAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;wBACtB,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,UAAC,CAAC,EAAE,CAAC;4BAC9B,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;yBAClB,CAAC,CAAC;qBACJ;iBACF;gBAED,IAAI,KAAI,CAAC,KAAK,EAAE;oBACd,KAAI,CAAC,kBAAkB,EAAE,CAAC;iBAC3B;aACF,CAAA;;YA+bM,cAAS,GAAG,UAAC,MAAe;gBACjC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,CAAC,MAAM,CAAC;aAC/C,CAAA;YAEM,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,MAAM,CAAC;gBAC5C,KAAI,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;aAC5B,CAAA;YAEM,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,MAAM,CAAC;gBAC7C9B,mBAAgB,CAAC,eAAe,CAAC,MAAM,EAAE,KAAI,CAAC,KAAK,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAI,CAAC,mBAAmB,EAAE+C,gBAAU,CAAC,QAAQ,CAAC,CAAC;aACtH,CAAA;YAjwBC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC,UAAU,GAAG,GAAG,CAAC;YACpE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAChE;QAGD,iCAAQ,GAAR;YAAA,iBA2FC;YA1FC/C,mBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAC9CA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;;YAGzC,IAAI,CAAC,cAAc,GAAG,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;YAE3HI,OAAE,CAAC,IAAI,CAAC;iBACL,IAAI;;;;;;;;;;;;;YAaHD,mBAAS,CAAC;;gBAER,KAAI,CAAC,OAAO,GAAG,EAAE,CAAC;gBAClB,KAAI,CAAC,WAAW,GAAG,KAAI,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;gBAC/C,KAAI,CAAC,YAAY,GAAG,KAAI,CAAC,IAAI,CAAC,YAAY,IAAI,GAAG,CAAC;gBAClD,KAAI,CAAC,MAAM,CAAC,IAAI,GAAG,KAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;gBAC5C,KAAI,CAAC,SAAS,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;gBACzC,KAAI,CAAC,YAAY,GAAG,KAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,KAAK,CAAC;;gBAGnE,IAAI,KAAI,CAAC,IAAI,CAAC,SAAS,KAAK,KAAK,IAAIH,mBAAgB,CAAC,cAAc,EAAE,EAAE;oBACtE,KAAI,CAAC,SAAS,GAAG,KAAK,CAAC;iBACxB;;gBAGD,IAAI,KAAI,CAAC,IAAI,CAAC,aAAa,EAAE;oBAC3B,KAAI,CAAC,kBAAkB,GAAG;;wBAExB,IAAI,EAAE,KAAI,CAAC,IAAI,CAAC,aAAa,KAAK,QAAQ,GAAG,QAAQ,GAAG,UAAU;qBACnE,CAAC;iBACH;;gBAGD,IAAI,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;oBACxC,IAAM,SAAS,GAAG,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAC3C,KAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,KAAI,CAAC;iBAC9B;;gBAGD,IAAI,KAAI,CAAC,YAAY,EAAE;oBACrB,KAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;iBACjC;;gBAGD,IAAI,CAAC,KAAI,CAAC,IAAI,CAAC,WAAW,EAAE;oBAC1B,KAAI,CAAC,mBAAmB,EAAE,CAAC,SAAS,CAAC;wBACnC,IAAI,KAAI,CAAC,IAAI,CAAC,UAAU,IAAI,KAAI,CAAC,IAAI,CAAC,aAAa,EAAE;4BACnD,IAAM,EAAE,GAAGA,mBAAgB,CAAC,aAAa,CACvC,KAAI,CAAC,IAAI,CAAC,UAAU,EACpB,KAAI,CAAC,KAAK,CACX,CAAC;4BACF,KAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;yBAClB;qBACF,CAAC,CAAC;iBACJ;;gBAGD,KAAI,CAAC,YAAY,GAAG,KAAI,CAAC,WAAW,CAAC,SAAS,CAAC,UAAA,IAAI;oBACjD,KAAI,CAAC,KAAK,GAAG,IAAI,CAAC;oBAClB,KAAI,CAAC,MAAM,GAAG,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC;oBAC/B,KAAI,CAAC,OAAO,GAAG,KAAI,CAAC,KAAK,CAAC,WAAW,CAAC;oBACtC,IAAI,KAAI,CAAC,KAAK,IAAI,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;wBACtC,KAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACxD,KAAI,CAAC,kBAAkB,EAAE,CAAC;qBAC3B;iBACF,CAAC,CAAC;;gBAGH,KAAI,CAAC,UAAU,EAAE,CAAC;;gBAGlB,IAAI,KAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;oBAC3B,KAAI,CAAC,iBAAiB,CAAC,KAAI,CAAC,KAAK,CAAC,CAAC;iBACpC;gBACD,OAAOI,OAAE,CAAC,IAAI,CAAC,CAAC;aACjB,CAAC,EACFF,aAAG,CAAC;gBACF,KAAI,CAAC,YAAY,CAAC,KAAI,CAAC,KAAK,CAAC,CAAC;aAC/B,CAAC,CACH,CAAC,SAAS,EAAE,CAAC;SACjB;QAED,oCAAW,GAAX;YACE,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;aACjC;SACF;QAGD,sBAAI,iCAAK;;iBAAT;gBACE,OAAO,IAAI,CAAC,MAAM,CAAC;aACpB;;;WAAA;QAEO,mCAAU,GAAV;YACN,IAAM,aAAa,GAAG,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAEhF,IAAI,aAAa,EAAE;gBACjB,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;aACnC;iBACI;gBACH,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;aACpC;SACF;QAEM,wCAAe,GAAf,UAAgB,KAA2B;YAChD,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;aACnC;iBAAM;gBACL,IAAI,CAAC,QAAQ,GAAGoD,sBAAO,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBAC3C,IAAI,CAAC,kBAAkB,EAAE,CAAC;aAC3B;SACF;QAEM,mCAAU,GAAV,UAAW,KAAU;YAC1B,IAAI,KAAK,KAAK,KAAK,EAAE;gBACnB,OAAO,KAAK,CAAC;aACd;YACD,OAAO,IAAI,CAAC;SACb;QAEM,iCAAQ,GAAR,UAAS,KAAU;YACxB,IAAI,KAAK,KAAK,KAAK,EAAE;gBACnB,OAAO,KAAK,CAAC;aACd;YACD,OAAO,IAAI,CAAC;SACb;QAEM,+BAAM,GAAN,UAAO,UAAe;YAC3B,IAAI,UAAU,CAAC,YAAY,CAAC,IAAI,IAAI,EAAE;gBACpC,OAAO,IAAI,CAAC;aACb;YACD,OAAO,KAAK,CAAC;SACd;;;QAKM,qCAAY,GAAZ;YACL,OAAO;gBACL,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE;gBACjC,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW;aACjD,CAAC;SACH;QAEO,sCAAa,GAAb;YACN,IAAM,UAAU,GAAG,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;YAC1D,OAAO,CAAC,UAAU,GAAG,GAAG,IAAI,GAAG,GAAG,UAAU,CAAC;;;;;;;;SAQ9C;;;QAKM,uCAAc,GAAd;YACL,IAAI,iBAAiB,GAAG,KAAK,CAAC;YAC9B,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;gBAC3B,IAAI,CAAC,kBAAkB,GAAG;oBACxB,YAAY,EAAE,KAAK;oBACnB,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,UAAU,IAAI,UAAU,GAAG,QAAQ;iBACtE,CAAC;gBACF,iBAAiB,GAAG,IAAI,CAAC;aAC1B;YACD,OAAO,iBAAiB,CAAC;SAC1B;QAEM,mCAAU,GAAV,UAAW,UAAkB,EAAE,OAAiC;YACrE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,6BAA6B,CAAC,OAAO,CAAC,CAAC;YACrE,IAAI,CAAC,mBAAmB,EAAE,CAAC,SAAS,EAAE,CAAC;SACxC;QAEO,sDAA6B,GAA7B,UAA8B,UAAoC;YACxE,OAAOlD,OAAE,CAAC,UAAU,CAAC,GAAG,CAAC,UAAA,CAAC;gBACxB,IAAM,QAAQ,GAAY,CAAC,CAAC,MAAM,CAAC;gBACnC,OAAO;oBACL,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,KAAK,EAAE,CAAC,CAAC,IAAI;oBACb,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,cAAc,EAAE,CAAC,QAAQ;oBACzB,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;oBAC9B,eAAe,EAAE,KAAK;oBACtB,aAAa,EAAE,IAAI;oBACnB,aAAa,EAAE,IAAI;oBACnB,QAAQ,EAAE,oBAAoB;oBAC9B,gBAAgB,EAAE,CAAC,CAAC,QAAQ;iBAC7B,CAAC;aACH,CAAC,CAAC,CAAC;SACL;QAEO,4CAAmB,GAAnB;YAAA,iBAuCP;YAtCC,IAAM,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YAE3C,IAAM,aAAa,GAAoBJ,mBAAgB,CAAC,aAAa,CACnE,IAAI,CAAC,IAAI,CAAC,YAAY,EACtB,IAAI,CAAC,KAAK,CACX,CAAC;YACF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;gBAC3B,OAAO,CAAC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC,CAAC;aACxE;YACD,OAAO,aAAa,CAAC,IAAI,CACvBE,aAAG,CAAC,UAAA,IAAI;gBACN,IAAI,CAAC,IAAI,EAAE;oBACT,OAAO,CAAC,IAAI,CAAC,qBAAqB,GAAG,KAAI,CAAC,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC,CAAC;iBACpF;gBACD,IAAM,SAAS,GAAG,KAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBAChD,KAAI,CAAC,OAAO,GAAG,EAAE,CAAC;gBAClBF,mBAAgB,CAAC,cAAc,CAAC,IAAI,EAClC,KAAI,CAAC,OAAO,EACZ,KAAI,CAAC,KAAK,EACV,KAAI,CAAC,WAAW,EAChB,SAAS,EACT,WAAW,EACX,IAAI,EACJ,KAAI,CAAC,IAAI,CAAC,CAAC;aACd,CAAC,CAaH,CAAC;SACH;;QAIO,kCAAS,GAAT,UAAU,QAAa;YAC7B,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;;gBAE1B,IAAM,SAAS,GAAGA,mBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;oBACtB,IAAI,EAAE,iBAAiB;oBACvB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY;oBAC9B,IAAI,EAAE,QAAQ;oBACd,aAAa,EAAE,SAAS;iBACA,CAAC,CAAC;aAC7B;iBACI;;gBAEH,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE;oBACnE,UAAU,EAAE,IAAI,CAAC,cAAc;iBAChC,CAAC,CAAC;aACJ;SACF;QAEM,qCAAY,GAAZ,UAAa,KAAa;YAC/B,IAAI,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE;gBAClC,IAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBAEnC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;oBACtB,IAAI,EAAE,yBAAyB;oBAC/B,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC;oBACtC,IAAI,EAAE,EAAE;iBACgB,CAAC,CAAC;aAC7B;SACF;QA0BM,gCAAO,GAAP;YACL,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;aAC7B;YAED,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;gBAC3B,IAAI,CAAC,QAAQ,GAAGsD,sBAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBAChD,IAAI,CAAC,kBAAkB,EAAE,CAAC;aAC3B;SACF;QAEM,oCAAW,GAAX;YACL,OAAO,IAAI,CAAC,KAAK,CAAC;SACnB;QAGM,uCAAc,GAAd,UAAe,QAAgB,EAAE,QAAgB;YACtD,IAAM,SAAS,GAAc,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAc,CAAC;YACnF,IAAM,QAAQ,GAAG,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;YAExC,IAAI,QAAQ,EAAE;gBACZ,OAAO,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;aAC/B;iBACI;gBACH,OAAO,IAAI,CAAC;aACb;SACF;QAEO,2CAAkB,GAAlB;YAAA,iBAoBP;YAnBC,IAAI,IAAI,CAAC,OAAO,EAAE;;gBAEhB,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,gBAAgB,GAAA,CAAC,KAAK,SAAS,EAAE;oBAC5D,OAAO;iBACR;gBAED,IAAI,CAAC,sBAAsB,GAAG,IAAIF,eAAS,CAAC,EAAE,KAAK,EAAE,IAAIG,eAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBAE1E,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;oBACrC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,UAAA,CAAC;wBAC1B,IAAM,KAAK,GAAG,EAAE,CAAC;wBACjB,KAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAA,CAAC;4BACpB,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,IAAIF,iBAAW,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;yBAC9C,CAAC,CAAC;wBACH,IAAM,SAAS,GAAG,IAAID,eAAS,CAAC,KAAK,CAAC,CAAC;wBAC3B,KAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;qBACvE,CAAC,CAAC;iBACJ;aACF;SACF;QAEM,wCAAe,GAAf,UAAgB,QAAa,EAAE,SAAc;;YAClD,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK;gBAC3B,GAAC,SAAS,IAAG,QAAQ,CAAC,SAAS,CAAC;oBAChC,CAAC;SACJ;QAEM,sCAAa,GAAb,UAAc,KAAa,EAAE,KAAa;YAC/C,OAAOpD,mBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SACpE;QAIM,mCAAU,GAAV,UAAW,KAAU,EAAE,UAAe,EAAE,OAAY,EAAE,QAAgB;YAC3E,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;SACzD;QAEM,yCAAgB,GAAhB,UAAiB,KAAqB;YAAtC,iBAyBN;YAxBC,IAAM,gCAAgC,GAAG,IAAI,CAAC,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC;YACvH,IAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,IAAI,wBAAwB,GAAG,IAAI,GAAG,KAAK,CAAC;YAEjG,IAAI,CAAC,gCAAgC,IAAI,CAAC,eAAe,EAAE;gBACzD,IAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBACnF,IAAI,cAAc,EAAE;oBAClB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,oBAAoB,KAAK,IAAI,GAAA,CAAC,CAAC;oBACjF,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE;wBAC1B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,WAAW,EAAE,KAAI,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAA,CAAC,CAAC;qBACxI;iBACF;qBAAM;oBACL,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;oBACxC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;wBACzB,IAAM,IAAI,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;wBAClF,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;4BAC9B,IAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;4BACjD,QAAQ,CAAC,KAAK,CAAC,CAAC;yBACjB;wBACD,OAAO;qBACR;oBAED,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;iBAChC;aACF;SACF;QAEM,6CAAoB,GAApB,UAAqB,IAAS;YAC3B,IAAA,SAAS,GAAe,IAAI,UAAnB,EAAE,QAAQ,GAAK,IAAI,SAAT,CAAU;YACrC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;gBACpB,IAAI,CAAC,cAAc,EAAE,CAAC;aACvB;iBAAM,IAAI,SAAS,CAAC,KAAK,EAAE;gBAC1B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,oBAAoB,KAAK,IAAI,GAAA,CAAC,CAAC;gBACjF,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAA,CAAC;;oBACxB,OAAA,MAAM,CAAC,MAAM,CAAC,QAAQ,YAAI,GAAC,CAAC,CAAC,KAAK,IAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAG;iBAAA,CAAC,CAAC;gBACpE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,IAAI,GAAA,CAAC,CAAC;aACvF;SACF;QAGM,qCAAY,GAAZ,UAAa,KAAU,EAAE,WAAgB,EAAE,OAAY,EAAE,QAAgB;;;YAG9E,IAAM,CAAC,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;YAC3E,IAAI,CAAC,EAAE;gBACL,KAAK,CAAC,eAAe,EAAE,CAAC;gBACxB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;oBACtB,IAAI,EAAE,oBAAoB;oBAC1B,MAAM,EAAE,WAAW,CAAC,KAAK;oBACzB,OAAO,EAAE,OAAO;oBAChB,IAAI,EAAE,QAAQ;iBACU,CAAC,CAAC;aAC7B;SACF;QAEM,oCAAW,GAAX,UAAY,CAAa;YAC9B,IAAM,OAAO,GAAG,CAAC,CAAC,MAAqB,CAAC;YAExC,IAAI,eAAe,GAAG,KAAK,CAAC;YAC5B,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,UAAA,IAAI;gBAC5B,IAAI,IAAI,IAAI,gBAAgB,EAAE;oBAC5B,eAAe,GAAG,IAAI,CAAC;iBACxB;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,IAAI,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,KAAK,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,KAAK,CAAC,eAAe,EAAE;gBAC/H,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;aACjC;iBACI;gBACH,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;aACxB;SACF;QAEM,wCAAe,GAAf,UAAgB,OAAgB;YACrC,OAAO,OAAO,CAAC,QAAQ,CAAC;SACzB;QAEM,4CAAmB,GAAnB;YACL,OAAO,IAAI,CAAC,WAAW,CAAC;SACzB;QAEM,oCAAW,GAAX,UAAY,KAA4B,EAAE,KAAa,EAAE,EAAO;YACrE,IAAM,kBAAkB,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC1D,IAAM,WAAW,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;YAC1C,IAAI,WAAW,EAAE;gBACf,IAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAU,CAAC;gBACjD,IAAI,YAAY,EAAE;oBAChB,YAAY,CAAC,OAAO,EAAE,CAAC;iBACxB;qBAAM;oBACL,OAAO,CAAC,GAAG,CAAC,6BAA6B,GAAG,WAAW,CAAC,CAAC;iBAC1D;aACF;iBAAM;gBACL,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;aACnD;SACF;QAEM,oCAAW,GAAX;YACL,IAAI,CAAC,OAAO,EAAE,CAAC;SAChB;QAEM,kCAAS,GAAT;YACL,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;SACxB;QAGM,mCAAU,GAAV;YACL,IAAM,aAAa,GAAG,IAAI,CAAC,KAAc,CAAC;YAC1C,IAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,IAAqB,CAAC;YACzD,IAAM,KAAK,GAAG,eAAe,CAAC,IAAsB,CAAC;YAErD,IAAM,oBAAoB,GAAG,aAAa,CAAC,oBAAoB,CAAC;;YAGhE,IAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9C,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YAClB,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC;YAE9B,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC,IAAI,CACpEK,aAAG,CAAC,UAAC,IAAS;gBACZ,IAAM,MAAM,GAAoB;oBAC9B,IAAI,EAAEiD,sBAAO,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI;iBACrC,CAAC;gBAEF,OAAO,MAAM,CAAC;aACf,CAAC,CACH,CAAC;SACH;QAEM,iCAAQ,GAAR,UAAS,QAAa,EAAE,GAAQ;YACrC,IAAI,OAAO,GAAG,WAAW,CAAC;YAC1B,IAAI,GAAG,CAAC,SAAS,KAAK,QAAQ,IAAI,GAAG,CAAC,SAAS,KAAK,UAAU,IAAI,GAAG,CAAC,SAAS,KAAK,UAAU,EAAE;gBAC9F,OAAO,IAAI,eAAe,CAAC;aAC5B;YAED,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC,EAAE;gBAClC,OAAO,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC,GAAG,GAAG,CAAC;aACjD;YAED,IAAI,GAAG,CAAC,KAAK,EAAE;gBACb,OAAO,IAAI,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC;aAC5B;YAED,OAAO,OAAO,CAAC;SAChB;QAEM,kCAAS,GAAT,UAAU,GAAQ,EAAE,aAAmB;YAC5C,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,GAAG,CAAC,aAAa,KAAK,SAAS,EAAE;gBACnC,MAAM,GAAG,aAAa,GAAG,aAAa,GAAG,EAAE,CAAC;aAC7C;iBAAM;gBACL,IAAM,SAAS,GAAG,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBAC9C,IAAI,EAAE,GAAG,CAAC,CAAC;gBAEX,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;oBACxB,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;iBAC1B;gBAED,IAAI,EAAE,KAAK,CAAC,EAAE;oBACZ,MAAM,GAAG,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;iBAC/B;aACF;YACD,OAAO,MAAM,CAAC;SACf;QAGM,sCAAa,GAAb,UAAc,UAAkB,EAAE,cAAsB;YAC7D,IAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC;YACjC,WAAW,CAAC,OAAO,CAAC,UAAC,GAAQ;gBAC3B,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE;oBAC3B,GAAG,CAAC,KAAK,GAAG,cAAc,CAAC;iBAC5B;aACF,CAAC,CAAC;SACJ;QAEM,yCAAgB,GAAhB,UAAiB,SAAkB;YACxC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAC5B;QAEM,0CAAiB,GAAjB,UAAkB,KAAa;YACpC,IAAI,KAAK,CAAC,gBAAgB,CAAC,EAAE;gBAC3B,OAAO;aACR;iBACI;gBACH,KAAK,CAAC,gBAAgB,CAAC,GAAG,QAAQ,GAAG,KAAK,CAAC,WAAW,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC;aAC3H;SAEF;QAEM,gCAAO,GAAP,UAAQ,KAAa,EAAE,IAAc;;YAE1C,OAAO,KAAK,CAAC;SACd;;QAGM,yCAAgB,GAAhB;YAAA,iBAuEN;YAtEC,IAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,IAAqB,CAAC;YACzD,IAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC;YAEzClD,OAAE,CAAC,IAAI,CAAC,OAAO,CAAC;iBACb,IAAI,CACHD,mBAAS,CAAC;gBACR,IAAM,WAAW,GAA0B,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,UAAA,IAAI;oBACpE,IAAM,oBAAoB,GAAwB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;yBAChE,MAAM,CAAC,UAAA,QAAQ;wBACd,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;qBACpD,CAAC;yBACD,MAAM,CAAC,UAAC,GAAG,EAAE,IAAI;;wBAAK,wCAEhB,GAAG,aACD,GAAC,IAAI,IAAG,IAAI,CAAC,IAAI,CAAC;qBACvB,EACA,EAAyB,CAAC,CAAC;oBACjC,OAAO,oBAAoB,CAAC;iBAC7B,CAAC,CAAC;;gBAGH,WAAW,CAAC,OAAO,CAAC,UAAA,IAAI;oBACtB,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC;oBAC3B,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC;iBAC9B,CAAC,CAAC;gBAEH,IAAM,WAAW,GAAkB;;oBAEjC,aAAa,EAAE,WAAW;iBAC3B,CAAC;;gBAGF,IAAI,eAAe,GAAkB,KAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,KAAI,CAAC,cAAc,CAAC,CAAC;gBAC/F,IAAI,WAAW,GAAgB,IAAI,CAAC;gBACpC,IAAI,eAAe,IAAI,eAAe,CAAC,CAAC,CAAC,EAAE;oBACzC,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,gBAAgB,CAAC,KAAK,KAAI,CAAC,cAAc,GAAA,CAAC,CAAC;oBAErF,IAAI,WAAW,EAAE;wBACf,WAAW,CAAC,YAAY,GAAG,WAAW,CAAC;qBACxC;iBACF;qBACI;oBACH,eAAe,GAAG,EAAE,CAAC;iBACtB;gBAED,IAAI,CAAC,WAAW,EAAE;oBAChB,WAAW,GAAG;wBACZ,cAAc,EAAE,KAAI,CAAC,cAAc;wBACnC,YAAY,EAAE,WAAW;qBAC1B,CAAC;oBAEF,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;iBACnC;gBACD,OAAO,eAAe,CAAC;aACxB,CAAC,EACFqD,mBAAS,CAAC,UAAA,SAAS;;gBAEjB,KAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,KAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;;gBAErE,OAAO,KAAI,CAAC,WAAW,CAAC,eAAe,CAAC,KAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;aACzE,CAAC,EACFtD,aAAG,CAAC,UAAA,cAAc;;gBAEhB,KAAI,CAAC,UAAU,EAAE,CAAC;aACnB,CAAC,EACFA,aAAG,CAAC;;gBAEF,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;aAC5E,CAAC,CACH,CAAC,SAAS,EAAE,CAAC;SACjB;QAEM,4CAAmB,GAAnB;YAAA,iBAuBN;YAtBCE,OAAE,CAAC,IAAI,CAAC;iBACL,IAAI,CACHD,mBAAS,CAAC;;gBAER,KAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,KAAI,CAAC,cAAc,CAAC,CAAC;gBAC7D,OAAOC,OAAE,CAAC,IAAI,CAAC,CAAA;aAChB,CAAC,EACFD,mBAAS,CAAC;;gBAER,OAAO,KAAI,CAAC,WAAW,CAAC,yBAAyB,CAAC,KAAI,CAAC,cAAc,CAAC,CAAC;aACxE,CAAC,EACFqD,mBAAS,CAAC;;gBAER,OAAO,KAAI,CAAC,mBAAmB,EAAE,CAAC;aACnC,CAAC,EACFtD,aAAG,CAAC;;gBAEF,KAAI,CAAC,UAAU,EAAE,CAAC;;gBAElB,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,uBAAuB,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;aAC/E,CAAC,CACH,CAAC,SAAS,EAAE,CAAC;SACjB;QAEO,wCAAe,GAAf;YACN,IAAM,WAAW,GAAG,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;;YAGzH,IAAI,eAAe,GAAkB,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACvF,IAAI,eAAe,EAAE;gBACnB,IAAM,YAAY,GAAgB,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;gBACvE,IAAI,YAAY,EAAE;oBAChB,OAAO,YAAY,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,GAAA,CAAC,CAAC;iBAC5F;aACF;SACF;;QAGM,uCAAc,GAAd,UAAe,KAAU;YAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,KAAK,KAAK,KAAK,GAAA,CAAC,CAAC;SAClD;QAEM,sCAAa,GAAb,UAAc,QAAgB;YACnC,IAAM,SAAS,GAAc,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAc,CAAC;YACnF,OAAO,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAA;SAC9B;QAEM,2CAAkB,GAAlB,UAAmB,KAAU;YAClC,OAAO,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,KAAK,CAAC;SAChD;;QAIM,0CAAiB,GAAjB,UAAkB,KAAa,EAAE,EAAO;YAC7C,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE;gBAC5B,OAAO,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;gBACrD,OAAOE,OAAE,CAAC,IAAI,CAAC,CAAC;aACjB;YACD,OAAO,KAAK,CAAC,iBAAiB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;SAC3C;QAEY,6CAAoB,GAApB,UAAqB,KAAa,EAAE,EAAO;;;iCA8BvD;;;;4BA7BC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE;gCAC5B,sBAAO,IAAI,EAAC;6BACb;4BACK,UAAU,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC;iCAEvC,IAAI,CAAC,cAAc,EAAnB,wBAAmB;4BACrB,qBAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC;qCACtC,IAAI,CAAC,UAAA,IAAI;oCACR,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,EAAE;wCACjD,OAAO,IAAI,CAAC;qCACb;yCACI;wCACH,IAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wCACtC,KAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;wCACtD,KAAI,CAAC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;wCAE9D,KAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,UAAC,WAAgB;4CACjD,IAAI,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gDACrC,WAAW,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;6CACjD;yCACF,CAAC,CAAC;wCAEH,OAAO,IAAI,CAAC;qCACb;iCACF,CAAC,EAAA;;4BAlBJ,SAkBI,CAAC;;gCAGL,sBAAO,IAAI,EAAC;;;;aAEf;SAAA;QAEM,6CAAoB,GAApB,UAAqB,KAAa,EAAE,EAAO;YAChD,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE;gBAC5B,OAAO,IAAI,CAAC;aACb;YACD,IAAM,UAAU,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAE3C,IAAI,aAAa,GAA8B,EAAE,CAAC;YAElD,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;;gBAErE,aAAa,GAAG,EAAE,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAA;;gBAE1H,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;aACpE;SACF;;QAmBM,qCAAY,GAAZ,UAAa,KAAU;YAC5B,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;aAChC;SACF;QAEM,mCAAU,GAAV,UAAW,KAAsB;YACtC,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;aAC9B;SACF;QAEM,mCAAU,GAAV,UAAW,IAAsB;YACtC,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aAC7B;SACF;QAEM,+CAAsB,GAAtB,UAAuB,KAAU,EAAE,QAAa,EAAE,MAAW;YAClE,IAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;YACvC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;SAChD;QAEM,4CAAmB,GAAnB,UAAoB,KAAyB;YAClD,IAAM,aAAa,GAAG,IAAI,CAAC,KAAc,CAAC;YAC1C,IAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,IAAqB,CAAC;YACzD,IAAM,KAAK,GAAG,eAAe,CAAC,IAAsB,CAAC;YAErD,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,IAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;aAC3B;SACF;;QAIM,mCAAU,GAAV,UAAW,EAAU;gBAAR,MAAM,YAAA;YACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;;YAGlB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;;YAGzB,IAAM,cAAc,GAAG,EAAE,CAAC;YAC1B,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,UAAA,GAAG;gBAChC,IAAM,UAAU,GAAkB,EAAE,CAAC;gBACrC,IAAI,GAAG,CAAC,UAAU,EAAE;oBAClB,UAAU,CAAC,IAAI,CAAC2C,gBAAU,CAAC,QAAQ,CAAC,CAAC;iBACtC;gBACD,IAAI,GAAG,CAAC,gBAAgB,EAAE;oBACxB,UAAU,CAAC,IAAI,CAACA,gBAAU,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;iBAC3D;gBAED,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAIM,iBAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;aAC/D,CAAC,CAAC;;YAGH,IAAI,CAAC,SAAS,GAAG,IAAID,eAAS,CAAC,cAAc,CAAC,CAAC;;YAG/C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC/B;QAEM,oCAAW,GAAX,UAAY,EAAsC;gBAApC,MAAM,YAAA,EAAE,QAAQ,cAAA,EAAE,SAAS,eAAA,EAAE,KAAK,WAAA;;YAErD,IAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,EAAE,CAAC;;YAG3F,IAAI,SAAS,CAAC,KAAK,EAAE;;gBAEnB,IAAI,gBAAuB,CAAC;gBAC5B,IAAM,WAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACzC,IAAI,WAAS,EAAE;oBACb,IAAM,oBAAkB,GAAG,SAAS,CAAC,KAAK,CAAC,WAAS,CAAC,CAAC;oBAEtD,IAAI,KAAK,KAAK,CAAC,KAAK,KAAK,gBAAgB,CAAC,QAAQ,CAAC,CAAC,WAAS,CAAC,IAAI,oBAAkB,CAAC,CAAC,EAAE;;;wBAGtF,gBAAgB,CAAC,OAAO,CAAC,UAAA,IAAI;4BAC3B,IAAI,IAAI,CAAC,WAAS,CAAC,KAAK,oBAAkB,EAAE;gCAC1C,gBAAc,GAAG,IAAI,CAAC;gCACtB,OAAO;6BACR;yBACF,CAAC,CAAC;qBACJ;iBACF;gBAED,IAAI,CAAC,gBAAc,EAAE;oBACnB,IAAI,KAAK,EAAE;;wBAET,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;qBACxC;yBACI;;wBAEH,gBAAgB,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC;qBAC9C;oBAED,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;oBAE/B,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;iBAC3B;qBACI;oBACH,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,6CAA6C,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;iBACpG;aACF;SACF;QAEM,sCAAa,GAAb,UAAc,EAAoB;gBAAlB,MAAM,YAAA,EAAE,QAAQ,cAAA;;YAErC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;SAC3B;QAEM,oCAAW,GAAX,UAAY,EAA8B;gBAA5B,MAAM,YAAA,EAAE,QAAQ,cAAA,EAAE,QAAQ,cAAA;YAC7C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;;YAGnB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;;YAGzB,IAAM,cAAc,GAAG,EAAE,CAAC;YAC1B,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,UAAA,GAAG;gBAChC,IAAM,UAAU,GAAkB,EAAE,CAAC;gBACrC,IAAI,GAAG,CAAC,UAAU,EAAE;oBAClB,UAAU,CAAC,IAAI,CAACL,gBAAU,CAAC,QAAQ,CAAC,CAAC;iBACtC;gBACD,IAAI,GAAG,CAAC,gBAAgB,EAAE;oBACxB,UAAU,CAAC,IAAI,CAACA,gBAAU,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;iBAC3D;gBAED,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAIM,iBAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,CAAC;aAC9E,CAAC,CAAC;;YAGH,IAAI,CAAC,SAAS,GAAG,IAAID,eAAS,CAAC,cAAc,CAAC,CAAC;;YAG/C,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;YAC/B,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;SAC1C;QAEM,sCAAa,GAAb,UAAc,EAAoB;gBAAlB,MAAM,YAAA,EAAE,QAAQ,cAAA;YACrC,IAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YAC9E,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAE5B,MAAM,CAAC,UAAU,EAAE,CAAC;SACrB;QAEO,oCAAW,GAAX,UAAY,IAAI,EAAE,QAA8B;YAA9B,yBAAA,EAAA,WAAW,IAAI,CAAC,cAAc;YACtD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACxB,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;YAChC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAC5B;QAEO,qCAAY,GAAZ,UAAa,IAAS,EAAE,IAAW,EAAE,GAAW;YACtD,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;gBAC1C,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE;oBAChC,OAAO,GAAG,CAAC;iBACZ;aACF;YAED,OAAO,CAAC,CAAC,CAAC;SACX;;;;gBA7+BFlC,YAAS,SAAC;oBACT,QAAQ,EAAE,WAAW;oBACrB,oinBAAqC;;iBAEtC;;;gBApDQyB,iBAAc;gBAAElC,SAAM;gBADXgD,iBAAW;gBA2B7B9C,cAAW;gBAAEI,gBAAa;gBAE1BoB,8BAA2B;gBAFCrB,eAAY;gBACmDO,eAAY;gBACCa,wBAAqB;gBALtH,WAAW;;;uBA+BjBX,QAAK;wBACLA,QAAK;uBACLA,QAAK;6BACL2B,YAAS,SAACC,oCAAgB;;;;QCxB3B,uBAAoB,iBAAoC;YAAxD,iBAA6D;YAAzC,sBAAiB,GAAjB,iBAAiB,CAAmB;YAXxD,aAAQ,GAAW,IAAI,CAAC;YACxB,cAAS,GAAW,IAAI,CAAC;YACzB,WAAM,GAAW,IAAI,CAAC;YACtB,iBAAY,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YAC7B,wBAAmB,GAAG,IAAIL,uBAAoB,EAAE,CAAC;YA6G1C,cAAS,GAAG,UAAC,MAAe;gBACjC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,CAAC,MAAM,CAAC;aAC/C,CAAA;YAEM,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,MAAM,CAAC;gBAC5C,KAAI,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;aAC5B,CAAA;YAEM,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,MAAM,CAAC;gBAC7C9C,mBAAgB,CAAC,eAAe,CAAC,MAAM,EAAE,KAAI,CAAC,KAAK,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAI,CAAC,mBAAmB,EAAE+C,gBAAU,CAAC,QAAQ,CAAC,CAAC;aACtH,CAAA;SAlH4D;QAEvD,gCAAQ,GAAR;;;;;;4BACJ/C,mBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;4BAC9CA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;4BACzC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;gCAChE,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gCACxD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gCAC3B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;6BAC7B;4BAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;4BAC9D,IAAI,CAAC,QAAQ,GAAK,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;kCAErE,IAAI,CAAC,IAAI,IAAI,SAAS,IAAK,IAAI,CAAC,QAAQ,IAAI,SAAS,CAAA,EAArD,wBAAqD;4BACvC,qBAAM,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,EAAA;;4BAA9E,QAAQ,GAAG,SAAmE;4BAClF,KAAA,IAAI,CAAA;4BAAQ,qBAAM,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAA;;4BAAtE,GAAK,KAAK,GAAE,SAA0D,CAAC;;;;;aAY1E;SAAA;QAKD,mCAAW,GAAX;YACE,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;aACjC;SACF;QAED,0CAAkB,GAAlB;YACE,IAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9D,IAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAEtE,IAAI,KAAK,IAAI,SAAS,EAAE;;;gBAGtB,QACE,SAAS;oBACT,MAAM;oBACN,KAAK;oBACL,QAAQ;oBACR,IAAI,CAAC,IAAI,CAAC,IAAI;;kBAEd;;aAEH;iBAAM;;aAEN;SACF;QAED,qCAAa,GAAb,UAAc,KAAa,EAAE,KAAU;YACrC,OAAOA,mBAAgB,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SACrD;;;;;;;;;;;;;QAgBD,mCAAW,GAAX,eAAsB;QAEtB,mCAAW,GAAX;YACE,IAAM,SAAS,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACnG,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE;gBACnC,OAAO,SAAS,EAAE,CAAC;aACpB;YAED,IAAI,CAAC,SAAS,EAAE;gBACd,OAAO,CAAC,IAAI,CAAC,wCAAwC,EAAE,SAAS,CAAC,CAAC;gBAClE,OAAO;aACR;YAED,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE;gBACnC,OAAO,CAAC,IAAI,CAAC,+CAA+C,EAAE,SAAS,CAAC,CAAC;gBACzE,OAAO;aACR;SACF;QAED,mCAAW,GAAX;YACE,IAAM,QAAQ,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3F,OAAO,QAAQ,CAAC;SACjB;;;;gBAxHFkB,YAAS,SAAC;oBACT,QAAQ,EAAE,UAAU;oBACpB,m3BAAoC;;iBAErC;;;gBARgBwC,oBAAiB;;;uBAU/BnC,QAAK;wBACLA,QAAK;uBACLA,QAAK;;;ICxBR;;QA4BE,yBACU,cAA8B,EAC9B,kBAAsC,EACtC,WAAwB,EACxB,2BAAwD,EACxD,aAA4B,EAC5B,MAAc;YALd,mBAAc,GAAd,cAAc,CAAgB;YAC9B,uBAAkB,GAAlB,kBAAkB,CAAoB;YACtC,gBAAW,GAAX,WAAW,CAAa;YACxB,gCAA2B,GAA3B,2BAA2B,CAA6B;YACxD,kBAAa,GAAb,aAAa,CAAe;YAC5B,WAAM,GAAN,MAAM,CAAQ;YAMxB,UAAK,GAAQ,IAAI,CAAC;YAClB,oBAAe,GAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YAC9C,iBAAY,GAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YAC3C,WAAM,GAAuB;gBAC3B,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,CAAC;gBACT,QAAQ,EAAE,EAAE;gBACZ,cAAc,EAAE,EAAE;gBAClB,SAAS,EAAE,EAAE;gBACb,eAAe,EAAE,EAAE;gBACnB,UAAU,EAAE,EAAE;gBACd,YAAY,EAAE,EAAE;gBAChB,UAAU,EAAE,EAAE;gBACd,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE,EAAE;gBACX,SAAS,EAAE,CAAC;aACb,CAAC;YAGF,gBAAW,GAAU,EAAE,CAAC;YACxB,kBAAa,GAAU,EAAE,CAAC;YAC1B,eAAU,GAAG,IAAI,CAAC;YAClB,UAAK,GAAU;gBACb,IAAI,EAAE,CAAC;gBACP,IAAI,EAAE,EAAE;aACT,CAAC;YACF,yBAAoB,GAAG,IAAI,CAAC;YAC5B,gBAAW,GAAG,IAAI,CAAC;YAEZ,gBAAW,GAAkB,EAAE,CAAC;YAChC,mBAAc,GAA2B;gBAC9C,KAAK,EAAE,EAAE;gBACT,UAAU,EAAE,OAAO;aACpB,CAAC;YACK,wBAAmB,GAAG,KAAK,CAAC;YAG5B,UAAK,GAAkB;gBAC5B,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,SAAS;gBACjB,QAAQ,EAAE,QAAQ;aACnB,CAAC;SA9CG;QAgDL,kCAAQ,GAAR;YACEvB,mBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAC9CA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAEzC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;YACvE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAC7C,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBACpB,IAAI,CAAC,WAAW,GAAGA,mBAAgB,CAAC,aAAa,CAC/C,IAAI,CAAC,KAAK,CAAC,WAAW,EACtB,IAAI,CAAC,GAAG,CACT,CAAC;;gBAEF,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;;;;;;;;oBAQrB,OAAO;iBACR;gBAED,IAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC9C,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;oBACd,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBAC7B,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iBACjD;qBAAM;oBACL,IAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACxC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBACnD,IAAI,CAAC,oBAAoB,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBAC3C;gBAED,IAAI,CAAC,4BAA4B,EAAE,CAAC;aACrC;YAED,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC5B;QAED,qCAAW,GAAX;YACE,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;aACjC;SACF;QAED,iCAAO,GAAP;YACE,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;aAC7B;;;;;SAKF;QAED,6CAAmB,GAAnB;YAAA,iBAkCC;YAjCC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;YAChC,IAAM,aAAa,GAAoBA,mBAAgB,CAAC,aAAa,CACnE,IAAI,CAAC,KAAK,CAAC,YAAY,EACvB,IAAI,CAAC,GAAG,CACT,CAAC;YACF,aAAa;iBACV,IAAI,CACHE,aAAG,CAAC,UAAC,IAAI;gBAEP,IAAM,WAAW,GAAG,KAAI,CAAC,eAAe,EAAE,CAAC;gBAC3C,IAAM,SAAS,GAAG,KAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;gBACjDF,mBAAgB,CAAC,cAAc,CAC7B,IAAI,EACJ,KAAI,CAAC,WAAW,EAChB,KAAI,CAAC,KAAK,EACV,KAAI,CAAC,WAAW,EAChB,SAAS,EACT,WAAW,EACX,KAAI,CAAC,aAAa,CACnB,CAAC;gBACF,KAAI,CAAC,sBAAsB,EAAE,CAAC;gBAC9B,KAAI,CAAC,SAAS,EAAE,CAAC;;;;;aAKlB,CAAC,EACFE,aAAG,CAAC;gBACF,KAAI,CAAC,cAAc,EAAE,CAAC;aACvB,CAAC,CACH;iBACA,SAAS,CAAC;aACV,CAAC,CAAC;SACN;QAED,wCAAc,GAAd;YAAA,iBA6DC;;YA5DC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBACpB,IAAI,CAAC,KAAK,CAAC,QAAQ,SAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,mCAAI,EAAE,CAAC;gBAChD,IAAI,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE;;oBAEjC,IAAI,CAAC,aAAa;yBACf,OAAO,CACN,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,KAAK,EACV,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,CACL;yBACA,SAAS,CAAC,UAAC,IAAI;wBACduC,eAAK,CAAC,IAAI,CAAC,CAAA;wBACX,KAAI,CAAC,YAAY,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;wBACnE,KAAI,CAAC,eAAe,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;wBACtE,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;4BAC3B,KAAI,CAAC,iBAAiB,EAAE,CAAC;yBAC1B;wBAED,IAAI,KAAI,CAAC,IAAI,CAAC,cAAc,EAAE;4BAC5B,KAAI,CAAC,YAAY,EAAE,CAAC;yBACrB;;;;wBAID,KAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;;qBAElC,CAAC,CAAC;iBACN;qBAAM;;oBAEL,IAAI,CAAC,aAAa;yBACf,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;yBAC5D,SAAS,CAAC,UAAC,IAAI;wBACd,IAAI,KAAK,GAAG,IAAI,CAAC;wBACjB,IAAI,WAAW,GAAG,CAAC,CAAC;wBAEpB,IAAI,IAAI,CAAC,OAAO,EAAE;4BAChB,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC;4BACrB,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC;yBAC/B;6BAAM;4BACL,KAAK,GAAG,IAAI,CAAC;4BACb,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC;yBAC3B;wBACD,KAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;;;;;;qBAMlC,CAAC,CAAC;iBACN;aACF;iBAAM;gBACL,IAAM,EAAE,GAAGzC,mBAAgB,CAAC,aAAa,CACvC,IAAI,CAAC,KAAK,CAAC,UAAU,EACrB,IAAI,CAAC,GAAG,CACT,CAAC;aACH;SACF;QAED,2CAAiB,GAAjB;YAAA,iBA2BC;YA1BC,IAAI,SAAS,GAAG,EAAE,CAAC;YAEnB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,UAAA,KAAK;gBAClC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;aAC1B,CAAC,CAAC;YAEH,IAAI,CAAC,aAAa;iBACf,OAAO,CACN,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,2BAA2B,CAAC,EAC3D,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,CACL;iBACA,SAAS,CAAC,UAAA,IAAI;gBACb,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,UAAA,KAAK;oBAClC,IAAI,CAAC,OAAO,CAAC,UAAA,CAAC;wBACZ,IAAI,CAAC,CAAC,QAAQ,IAAI,KAAK,CAAC,EAAE,EAAE;4BAC1B,KAAK,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,mBAAmB,GAAG,CAAC,CAAC,cAAc,IAAI,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,mBAAmB,GAAG,CAAC,CAAC,cAAc,IAAI,GAAG,EAAE,CAAC;;yBAExJ;qBACF,CAAC,CAAA;iBACH,CAAC,CAAC;aACJ,CAAC,CAAA;SACL;QAED,sCAAY,GAAZ;YAAA,iBA6BC;;YA5BC,IAAI,WAAW,GAAG;gBAChB,OAAO,EAAE,8DAA8D;gBACvE,QAAQ,QAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,mCAAI,EAAE;aACpC,CAAC;YAEF,IAAI,CAAC,aAAa;iBACf,OAAO,CACN,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,EAC5D,WAAW,EACX,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,CACL;iBACA,SAAS,CAAC,UAAC,IAAI;gBACd,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAA,KAAK;oBACxB,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBACnB,KAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACtC,KAAI,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC,CAAC;;;;;;iBAOjC,CAAC,CAAC;aACJ,CAAC,CAAA;SACL;QAED,sBAAI,kCAAK;iBAAT;gBACE,OAAO,IAAI,CAAC,IAAI,CAAC;aAClB;;;WAAA;QAED,sBAAI,gCAAG;iBAAP;gBACE,OAAO,IAAI,CAAC,KAAK,CAAC;aACnB;;;WAAA;QAED,sBAAI,kCAAK;iBAAT;gBACE,OAAO,IAAI,CAAC,MAAM,CAAC;aACpB;;;WAAA;QAEO,yCAAe,GAAf;YACN,IAAM,WAAW,GAAG,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC;YACxE,IAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;;YAG5D,IAAI,eAAe,GAAkB,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACvF,IAAI,eAAe,IAAI,eAAe,CAAC,CAAC,CAAC,EAAE;gBACzC,IAAM,YAAY,GAAgB,eAAe,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,gBAAgB,CAAC,KAAK,SAAS,GAAA,CAAC,CAAC;gBAE/F,IAAI,YAAY,EAAE;oBAChB,OAAO,YAAY,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,GAAA,CAAC,CAAC;iBAC5F;aACF;SACF;QAEO,sDAA4B,GAA5B;;YAEN,IAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;YACjE,IAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC;YAC5E,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE;gBAC1C,IAAM,WAAW,GAAG;oBAClB,GAAG,EAAE,QAAQ;oBACb,GAAG,EAAE,GAAG;oBACR,KAAK,EAAE,KAAK;iBACb,CAAC;;gBAEF,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;;aAE5C;SACF;QAEO,6CAAmB,GAAnB;YACN,IAAI,gBAAgB,GAAG,IAAI,CAAC;YAC5B,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;gBAC1B,gBAAgB,GAAGA,mBAAgB,CAAC,aAAa,CAC/C,IAAI,CAAC,KAAK,CAAC,WAAW,EACtB,IAAI,CAAC,GAAG,CACT,CAAC;aACH;YACD,OAAO,gBAAgB,CAAC;SACzB;QAEO,gDAAsB,GAAtB;YACN,IAAM,SAAS,GAAkB,EAAE,CAAC;YACpC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAC,KAAK;gBAC7B,IAAI,KAAK,CAAC,SAAS,EAAE;oBACnB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;iBACxD;qBAAM;oBACL,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;iBAC7B;aACF,CAAC,CAAC;YAEH,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxB,IAAI,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;oBAClC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACtB;aACF;YAED,IAAI,aAAa,GAAU,EAAE,CAAC;YAC9B,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACxC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;gBACjC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;aAClD;YACD,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC/C;QAED,+BAAK,GAAL,UAAM,KAAU;YAAhB,iBA2DC;YA1DC,IAAI,CAAC,KAAK,CAAC;YACX,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;YAC5B,IAAI,KAAK,CAAC,cAAc,IAAI,KAAK,EAAE;gBACjC,IAAI,KAAK,GAAG;oBACV,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;oBAChC,YAAY,EAAE,KAAK,CAAC,EAAE;iBACvB,CAAA;gBAED,IAAI,CAAC,aAAa;qBACf,OAAO,CACN,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,sBAAsB,CAAC,EACtD,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,CACL;qBACA,SAAS,CAAC,UAAC,IAAI;oBACd,KAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;oBAC7B,IAAI,KAAI,CAAC,IAAI,CAAC,YAAY,EAAE;;;;wBAI1B,IAAM,SAAS,GAAGA,mBAAgB,CAAC,aAAa,CAAC,KAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAI,CAAC,KAAK,CAAC,CAAC;wBACrF,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;4BACtB,IAAI,EAAE,iBAAiB;4BACvB,MAAM,EAAE,KAAI,CAAC,IAAI,CAAC,YAAY;4BAC9B,IAAI,EAAE,KAAK;4BACX,aAAa,EAAE,SAAS;yBACA,CAAC,CAAC;qBAC7B;yBAAM;wBACL,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE;4BAC/D,UAAU,EAAE,KAAI,CAAC,cAAc;yBAChC,CAAC,CAAC;qBACJ;iBAEF,CAAC,CAAC;aACN;iBACI;gBACH,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;gBAC7B,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;;;;oBAI1B,IAAM,SAAS,GAAGA,mBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;oBACrF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;wBACtB,IAAI,EAAE,iBAAiB;wBACvB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY;wBAC9B,IAAI,EAAE,KAAK;wBACX,aAAa,EAAE,SAAS;qBACA,CAAC,CAAC;iBAC7B;qBAAM;oBACL,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE;wBAChE,UAAU,EAAE,IAAI,CAAC,cAAc;qBAChC,CAAC,CAAC;iBACJ;aACF;SACF;QAED,wCAAc,GAAd,UAAe,QAAgB;YAC7B,OAAOA,mBAAgB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;SAClD;QAEO,mCAAS,GAAT;YAAA,iBAkBP;YAjBC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBAC7C,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;aACzE;iBAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;gBACrD,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;aAC1C;YAED,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;gBACrE,IAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACxD,IAAM,SAAS,GAAG,iBAAiB,CAAC,MAAM,CACxC,UAAC,OAAO,IAAK,OAAA,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAA,CACrD,CAAC;gBAEF,SAAS,CAAC,OAAO,CAAC,UAAC,GAAG;oBACpB,IAAM,SAAS,GAAGA,mBAAgB,CAAC,aAAa,CAAC,GAAG,EAAE,KAAI,CAAC,GAAG,CAAC,CAAC;oBAChE,KAAI,CAAC,MAAM,CAAC,OAAO,GAAG,KAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;iBACnE,CAAC,CAAC;aACJ;SACF;QAED,qCAAW,GAAX,UAAY,KAAU;YACpB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBACpB,IAAI,CAAC,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;gBACnD,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;gBACrD,OAAO;aACR;YACD,IAAI,CAAC,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,GAAA,CAAC,CAAC;YACjG,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,GAAA,CAAC,CAAC,MAAM,CAAC;SAC1G;;;;gBA/bFkB,YAAS,SAAC;oBACT,QAAQ,EAAE,YAAY;oBACtB,wuIAAsC;;iBAEvC;;;gBAtBQyB,iBAAc;gBAYQ9B,qBAAkB;gBAA/CF,cAAW;gBAEXwB,8BAA2B;gBAFsBpB,gBAAa;gBAZvCN,SAAM;;;ICH/B;;QA6BE;YAAA,iBAAiB;YAJjB,wBAAmB,GAAG,IAAIqC,uBAAoB,EAAE,CAAC;YAEjD,cAAS,GAAG,EAAE,CAAC;YA0BR,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,MAAM,CAAC;gBAC5C,KAAI,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;aAC5B,CAAA;YAUM,YAAO,GAAG,UAAC,IAAS;gBACzB,KAAI,CAAC,SAAS,GAAG,IAAI,CAAC;aACvB,CAAA;SAvCgB;QAEjB,kCAAQ,GAAR;YACE9C,mBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAC9CA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,CAAC,SAAS,GAAGA,mBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SACzF;QAED,0CAAgB,GAAhB;YACE,IAAM,aAAa,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxF,IAAI,OAAO,aAAa,KAAK,UAAU,EAAE;gBACvC,OAAO,aAAa,EAAE,CAAC;aACxB;YACD,OAAO,aAAa,CAAC;SACtB;QAED,mCAAS,GAAT;YACE,IAAI,IAAI,CAAC,mBAAmB,CAAC,SAAS,KAAK,IAAI,EAAE;gBAC/C,OAAOA,mBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;aACzD;iBAAM;gBACL,OAAO,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC;aAC3C;SACF;QAOD,6CAAmB,GAAnB,UAAoB,IAAe,EAAE,IAAY;YAC/C,OAAOA,mBAAgB,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SACzD;QAED,kCAAQ,GAAR,UAAS,IAAe,EAAE,IAAY;YACpC,OAAUA,mBAAgB,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,SAAI,IAAI,CAAC,QAAU,CAAC;SAC/E;;;;gBAjDFkB,YAAS,SAAC;oBACT,QAAQ,EAAE,YAAY;oBACtB,8YAAsC;;iBAEvC;;;;uBAEEK,QAAK;wBACLA,QAAK;uBACLA,QAAK;;;ICvBR;;QAkCE,uBACU,YAA0B,EAC1B,kBAAsC,EACtC,eAAgC;YAH1C,iBAIK;YAHK,iBAAY,GAAZ,YAAY,CAAc;YAC1B,uBAAkB,GAAlB,kBAAkB,CAAoB;YACtC,oBAAe,GAAf,eAAe,CAAiB;YAX1C,wBAAmB,GAAG,IAAIuB,uBAAoB,EAAE,CAAC;YACjD,iBAAY,GAAoB,OAAO,CAAC;YACxC,cAAS,GAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;YAChE,UAAK,GAAe,EAAE,CAAC;YACvB,aAAQ,GAAY,KAAK,CAAC;YAC1B,qBAAgB,GAAY,KAAK,CAAC;YAClC,gBAAW,GAAW,MAAM,CAAC;YAoEtB,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,MAAM,CAAC;gBAC5C,KAAI,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;aAC5B,CAAA;YAyCM,WAAM,GAAa,EAAE,CAAC;;;;YA8B7B,kCAA6B,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,+BAA+B,CAAC,CAAC;;YAEhG,0CAAqC,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,uCAAuC,CAAC,CAAC;;YAEhH,mCAA8B,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC;SA5I7F;;QAGL,gCAAQ,GAAR;YAAA,iBA4CC;YA3CC9C,mBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAC9CA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAEzC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAEpD,IAAI,IAAI,CAAC,IAAI,EAAE;gBACb,IAAI,CAACA,mBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;;oBAElE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;oBAC7B,IAAI,CAAC,kBAAkB,EAAE,CAAC;iBAC3B;qBACI;oBACH,IAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAC/C,IAAI,CAAC,IAAI,CAAC,KAAK,EACf,WAAW,EACX,IAAI,EACJ,IAAI,CACL,CAAC;oBAGF,IAAI;wBACF,MAAM,CAAC,SAAS,CAAC,UAAA,IAAI;4BACnB,IAAI,CAAC,OAAO,CAAC,UAAC,MAAW;gCACvB,IAAM,KAAK,GAAG,KAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;gCAE1C,IAAM,UAAU,GAAG,KAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gCACrD,IAAI,UAAU,EAAE;oCACd,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC;wCACd,KAAK,EAAE,KAAK;wCACZ,IAAI,EAAEA,mBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;wCAC3C,YAAY,EAAE,MAAM,CAAC,UAAU;wCAC/B,OAAO,EAAE,UAAC,CAAC;4CACT,KAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;yCAC1B;qCACF,CAAC,CAAC;iCACJ;6BACF,CAAC,CAAC;yBACJ,CAAC,CAAC;qBACJ;oBAAC,OAAO,KAAK,EAAE;wBACd,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;qBACjC;iBACF;aACF;SACF;QAED,sCAAc,GAAd;YACE,IAAM,CAAC,GAAGA,mBAAgB,CAAC,cAAc,EAAE,CAAC;YAC5C,OAAO,CAAC,CAAC;SACV;QAED,oCAAY,GAAZ,UAAa,SAAS;YACpB,IAAI,SAAS,KAAK,KAAK,IAAI,CAAC,SAAS,EAAE;gBACrC,OAAO,IAAI,CAAC;aACb;YACD,IAAM,CAAC,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YACnE,OAAO,CAAC,CAAC;SACV;;QAQO,uCAAe,GAAf,UAAgB,IAAW;;YAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACxC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,kBAAkB,EAAE;oBACtE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;iBAChB;qBAAM;oBACL,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;wBAChC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;qBACrC;iBACF;aACF;YACD,OAAO,IAAI,CAAC;SACb;QAEO,sCAAc,GAAd,UAAe,MAAW;YAChC,IAAI,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;YAC/B,IAAI,CAAC,WAAW,EAAE;gBAChB,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC;aAC3B;YAED,IAAI,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAChD,IAAI,SAAS,EAAE;gBACb,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACtC,IAAM,KAAK,GAAGA,mBAAgB,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBACpE,OAAO,KAAK,CAAC;aACd;iBAAM;gBACL,OAAO,WAAW,CAAC;aACpB;SACF;QAEO,mCAAW,GAAX,UAAY,MAAW;YAC7B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBACtB,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,MAAM,CAAC,UAAU;gBACzB,IAAI,EAAE,IAAI;aACc,CAAC,CAAC;SAC7B;QAIM,8BAAM,GAAN;;SAEN;QAEM,+BAAO,GAAP;YACL,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBACzB,IAAI,CAAC,kBAAkB,EAAE,CAAC;aAC3B;;SAEF;QAEM,8BAAM,GAAN,UAAO,CAAC;YACb,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;SACrB;QAEM,+BAAO,GAAP,UAAQ,CAAC;YACd,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SACtB;QAEM,uCAAe,GAAf,UAAgB,CAAqB;YAC1C,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;SAChB;QAYO,0CAAkB,GAAlB;YAAA,iBA6CP;;YA3CC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;;YAGhB,IAAI,UAAU,GAAG,IAAI,CAAC;YACtB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;gBACrB,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;aAClD;;YAGD,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;YAEjF,IAAI;;gBAEF,IAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,uBAAuB,CACzD,IAAI,CAAC,IAAI,CAAC,YAAY,EACtB,IAAI,CAAC,6BAA6B,EAClC,MAAM,CAAC,KAAK,CAAC,CACd,CAAC;gBAEF,MAAM,CAAC,SAAS,CAAC,UAAA,IAAI;oBACnB,IAAI,CAAC,OAAO,CAAC,UAAC,MAAW;wBACvB,IAAM,KAAK,GAAG,KAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;wBAC1C,IAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;wBACjD,IAAM,WAAW,GAAG,UAAU,CAAC,KAAK,IAAI,KAAK,CAAC;wBAC9C,IAAM,UAAU,GAAG,KAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;wBAErD,IAAI,UAAU,EAAE;4BACd,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gCACd,KAAK,EAAE,WAAW;gCAClB,cAAc,EAAE,MAAM;gCACtB,IAAI,EAAEA,mBAAgB,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;gCAC/C,YAAY,EAAE,MAAM,CAAC,UAAU;gCAC/B,OAAO,EAAE,UAAC,CAAC;oCACT,KAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;iCAClC;6BACF,CAAC,CAAC;yBACJ;;qBAEF,CAAC,CAAC;iBACJ,CAAC,CAAC;aACJ;YAAC,OAAO,KAAK,EAAE;gBACd,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;aACjC;SACF;QAED,2CAAmB,GAAnB,UAAoB,MAAW;YAA/B,iBAsBC;;;YAnBC,IAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACjD,QAAQ,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE;gBACnC,KAAK,UAAU;oBACb,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;oBAChD,IAAI,CAAC,eAAe,CAAC,wBAAwB,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;oBACtE,MAAM;gBACR,KAAK,MAAM;oBACT,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC1C,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,SAAS,CAAC,UAAA,GAAG;wBACrG,KAAI,CAAC,kBAAkB,EAAE,CAAC;wBAC1B,IAAI,GAAG,EAAE;4BACP,KAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,KAAI,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,CAAC;yBAC/D;qBACF,CAAC,CAAC;oBACH,MAAM;gBACR;oBACE,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;oBAClD,MAAM;aACT;SACF;;;;gBA1OFkB,YAAS,SAAC;oBACT,QAAQ,EAAE,UAAU;oBACpB,okCAAoC;;iBAErC;;;gBATCN,eAAY;gBAAEC,qBAAkB;gBAAiBmC,kBAAe;;;uBAW/DzB,QAAK;wBACLA,QAAK;uBACLA,QAAK;;;ICxBR;;QA4BE;YAAA,iBAAiB;YADjB,wBAAmB,GAAG,IAAIuB,uBAAoB,EAAE,CAAC;YA2C1C,cAAS,GAAG,UAAC,MAAe;gBACjC,IAAM,EAAE,GAAG,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrD,MAAM,GAAG,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;gBACpC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,CAAC,MAAM,CAAC;aAC/C,CAAA;YAEM,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,MAAM,CAAC;gBAC5C,KAAI,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;aAC5B,CAAA;YAEM,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,MAAM,CAAC;gBAC7C9C,mBAAgB,CAAC,eAAe,CAAC,MAAM,EAAE,KAAI,CAAC,KAAK,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAI,CAAC,mBAAmB,EAAE+C,gBAAU,CAAC,QAAQ,CAAC,CAAC;aACtH,CAAA;SAxDgB;QAEjB,oCAAQ,GAAR;YACE/C,mBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAC9CA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAEzC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBACxB,IAAI,aAAa,GAAG,IAAI,CAAC;gBACzB,UAAU,CAAC;;oBAET,IAAI,cAAc,GAAG,CAAC,CAAC,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACrE,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC7B,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC;qBAC7C;iBACF,EAAE,GAAG,CAAC,CAAC;aACT;;SAEF;QAED,wCAAY,GAAZ;YACE,IAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;YACvD,IAAI,SAAS,IAAI,EAAE,EAAE;gBACnB,IAAI,KAAK,GAAW,CAAC,SAAS,CAAC;gBAC/B,OAAO,KAAK,CAAC;aACd;SACF;QAED,oCAAQ,GAAR,UAAS,KAAU;YACjBA,mBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACnE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBACtB,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAC1B,KAAK,OAAA;gBACL,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE;aAChB,CAAC,CAAC;SAC7B;QAED,0CAAc,GAAd;YACE,IAAM,CAAC,GAAGA,mBAAgB,CAAC,cAAc,EAAE,CAAC;YAC5C,OAAO,CAAC,CAAC;SACV;QAkBD,+CAAmB,GAAnB,UAAoB,IAAe,EAAE,IAAY;YAC/C,OAAOA,mBAAgB,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SACzD;;QAGM,oCAAQ,GAAR,UAAS,UAAmB;YACjC,IAAI,OAAO,GAAG,EAAE,CAAC;YACjB,IAAI,UAAU,EAAE;gBACd,OAAO,IAAI,OAAO,CAAC;aACpB;iBAAM;gBACL,OAAO,IAAI,MAAM,CAAC;aACnB;YACD,OAAO,OAAO,CAAC;SAChB;QAEM,8CAAkB,GAAlB;YACL,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBACzB,OAAO,IAAI,CAAC;aACb;iBACI;gBACH,OAAO,KAAK,CAAC;aACd;SACF;QAEM,4CAAgB,GAAhB;YACL,OAAO,SAAS,CAAC;SAClB;QAED,yCAAa,GAAb;YACE,IAAM,UAAU,IAAI,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;YAE7J,IAAI,UAAU,EAAE;gBACd,OAAO;oBACL,QAAQ,EAAE,WAAW;oBACrB,OAAO,EAAE,MAAM;oBACf,kBAAkB,EAAE,SAAS;oBAC7B,OAAO,EAAE,SAAS;iBACnB,CAAC;aACH;iBACI;gBACH,OAAO;oBACL,QAAQ,EAAE,WAAW;oBACrB,OAAO,EAAE,MAAM;iBAChB,CAAC;aACH;SACF;;;;gBAlHFkB,YAAS,SAAC;oBACT,QAAQ,EAAE,cAAc;oBACxB,2sFAAwC;;iBAEzC;;;;uBAEEK,QAAK;wBACLA,QAAK;uBACLA,QAAK;;;ICxBR;;QAmDE,mCACU,kBAAsC,EACtC,aAA4B,EAC5B,YAA0B;YAHpC,iBAIK;YAHK,uBAAkB,GAAlB,kBAAkB,CAAoB;YACtC,kBAAa,GAAb,aAAa,CAAe;YAC5B,iBAAY,GAAZ,YAAY,CAAc;YAvBpC,UAAK,GAAe,EAAE,CAAC;YAEvB,kBAAa,GAAe,EAAE,CAAC;YAC/B,uBAAkB,GAAG,IAAI,CAAC;;YAE1B,qBAAgB,GAAG,IAAI,CAAC;YACxB,mBAAc,GAAW,IAAI,CAAC;YAC9B,kBAAa,GAAW,IAAI,CAAC;YAC7B,kBAAa,GAAW,IAAI,CAAC;YAC7B,iBAAY,GAAG,yBAAyB,CAAC;YACzC,yBAAoB,GAAG,CAAC,CAAC;YACzB,cAAS,GAAG,IAAI,CAAC;YACjB,wBAAmB,GAAG,IAAIuB,uBAAoB,EAAE,CAAC;YAEjD,aAAQ,GAAO;gBACb,kBAAkB,EAAE,EAAE;gBACtB,eAAe,EAAE,EAAE;gBACnB,YAAY,EAAE,CAAC;aAChB,CAAC;YAgUK,cAAS,GAAG,UAAC,MAAe;gBACjC,IAAM,EAAE,GAAG,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrD,MAAM,GAAG,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;gBACpC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,CAAC,MAAM,CAAC;aAC/C,CAAA;YAEM,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,MAAM,CAAC;gBAC5C,KAAI,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;aAC5B,CAAA;YAEM,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,MAAM,CAAC;gBAE7C9C,mBAAgB,CAAC,eAAe,CAAC,MAAM,EAAE,KAAI,CAAC,KAAK,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAI,CAAC,mBAAmB,EAAE+C,gBAAU,CAAC,QAAQ,CAAC,CAAC;gBACrH,IAAI/C,mBAAgB,CAAC,UAAU,CAAC,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBAC/CA,mBAAgB,CAAC,eAAe,CAAC,MAAM,EAAE,KAAI,CAAC,KAAK,EAAE,KAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAI,CAAC,mBAAmB,EAAE+C,gBAAU,CAAC,QAAQ,CAAC,CAAC;iBACxH;aACF,CAAA;SA5UI;QAEL,+CAAW,GAAX;;;;YAIE,IAAI,IAAI,CAAC,WAAW,EAAE;gBACpB,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;aAChC;SACF;QAED,4CAAQ,GAAR;YAAA,iBAmCC;YAlCC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YAEtB/C,mBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAC9CA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAEzCA,mBAAgB,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;YAE7E,IAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YACrC,IAAI,kBAAmC,CAAC;YACxC,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe;mBACvD,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;gBACvD,IAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAC/C,kBAAkB,GAAGA,mBAAgB,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC3F,IAAI,kBAAkB,EAAE;oBACtB,kBAAkB,CAAC,SAAS,CAAC,UAAC,KAAK;wBACjC,OAAO,CAAC,GAAG,CAAC,KAAI,CAAC,IAAI,CAAC,IAAI,EAAE,yBAAyB,EAAE,KAAK,CAAC,CAAC;wBAC9D,KAAI,CAAC,SAAS,GAAG,KAAK,CAAC;qBACxB,CAAC,CAAC;iBACJ;qBAAM;oBACL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;iBACxB;gBACD,IAAI,CAACA,mBAAgB,CAAC,cAAc,EAAE,EAAE;oBACtC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;iBAC/B;aACF;iBAAM;gBACL,IAAI,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;oBACjC,IAAI,CAAC,mBAAmB,EAAE,CAAC,SAAS,CAAC;wBACnC,KAAI,CAAC,SAAS,GAAG,KAAK,CAAC;qBACxB,CAAC,CAAC;iBACJ;qBAAM;oBACL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;iBACxB;aACF;SAEF;QAED,uDAAmB,GAAnB;YACE,IAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAChD,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAC9B,CAAC;YAEF,IAAM,WAAW,GAAG,IAAI2D,uBAAoB,EAAE,CAAC;YAC/C,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;YAC3C,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;YAChD,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;YAE/C,OAAO3D,mBAAgB,CAAC,cAAc,CACpC,IAAI,CAAC,IAAI,CAAC,YAAY,EACtB,WAAW,EACX,IAAI,CAAC,KAAK,EACV,WAAW,EACX,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAC1B,CAAC;SACH;QAGD,gDAAY,GAAZ;YACE,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;gBAC/B,OAAO,IAAI,CAAC,aAAa,CAAC;aAC3B;YACD,IAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,aAAa,IAAI,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YACnG,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE;;;gBAGvF,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;gBACnE,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC;aACjC;YAED,IAAI,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;;gBAEnC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpD;YACD,IAAI,UAAU,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE;;gBAEzC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;aACrD;YACD,IAAI,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;;gBAEnC,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aAC9C;YACD,IAAI,UAAU,EAAE;;gBAEd,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;aACrC;YACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,qCAAqC,EAAE,UAAU,CAAC,CAAC;SACjF;QAEO,iDAAa,GAAb,UAAc,KAAa;YACjC,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;gBAC9D,IAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;gBAChD,IAAM,YAAU,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;gBAClD,IAAI,UAAU,GAAG,EAAE,CAAC;gBACpB,IAAI,KAAK,EAAE;oBACT,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,YAAU,CAAC,KAAK,KAAK,GAAA,CAAC,CAAC;oBACrE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC;iBACtC;gBACD,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE;oBACjD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC;iBAC7D;qBAAM,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;oBAClD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;iBACtD;aACF;YAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBACtB,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU;gBAC5B,KAAK,OAAA;gBACL,IAAI,EAAE,EAAC,KAAK,OAAA,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAC;aACP,CAAC,CAAC;SAC7B;QAED,iDAAa,GAAb,UAAc,KAAU;;YAEtBA,mBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACrE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SAC3B;QAED,4CAAQ,GAAR,UAAS,KAA0D;YACjE,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YACzDA,mBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3E,IAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACjD,IAAI,CAAC,WAAW,EAAE,CAAC;YAEnB,IACE,IAAI,CAAC,IAAI,CAAC,YAAY;iBACrB,KAAK,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,EAClD;gBACA,EAAE,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;aAClC;iBAAM;gBACL,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;aACpB;YAED,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SACjC;QAED,8CAAU,GAAV;YACE,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YAC7B,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;SAC9B;QAED,+CAAW,GAAX;YACE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACxD,IAAI,CAAC,gBAAgB,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC;SAChD;QAED,gDAAY,GAAZ;YACE,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;YAC/B,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;SAC9B;QAED,4CAAQ,GAAR,UAAS,KAA4D;;YAEnE,IAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;YAClC,IAAI,SAAS,EAAE;gBACb,SAAS,CAAC,WAAW,EAAE,CAAC;gBACxB,SAAS,CAAC,oBAAoB,EAAE,CAAC;aAClC;;;;YAMD,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;gBAC/B,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,kBAAkB,EAAE;oBACjE,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;iBAC/B;gBACD,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;aAC7B;iBAAM;gBACL,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;gBAC9B,IAAI,SAAS,EAAE;oBACb,SAAS,CAAC,KAAK,GAAG,EAAE,CAAC;iBACtB;gBACD,IAAM,MAAM,GAAG;oBACb,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE,CAAC;oBACT,QAAQ,EAAE,EAAE;oBACZ,cAAc,EAAE,EAAE;oBAClB,SAAS,EAAE,EAAE;oBACb,eAAe,EAAE,EAAE;oBACnB,UAAU,EAAE,EAAE;oBACd,YAAY,EAAE,EAAE;oBAChB,UAAU,EAAE,EAAE;iBACf,CAAC;gBACF,IAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY;sBACvC,IAAI,CAAC,IAAI,CAAC,YAAY;sBACtB,IAAI,CAAC,aAAa,CAAC;gBACvB,IAAM,WAAW,GAAGA,mBAAgB,CAAC,iBAAiB,CACpD,IAAI,CAAC,YAAY,EAAE;;gBAEnB,KAAK,CAAC,IAAI,EACV,YAAY,EACZ,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,QAAQ,CAChB,CAAC;gBACF,IAAI,SAAS,EAAE;oBACb,IAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;oBAClD,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC;oBACxB,SAAS,CAAC,iBAAiB,EAAE,CAAC;oBAC9B,SAAS,CAAC,SAAS,EAAE,CAAC;oBACtB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;iBACxB;aACF;SACF;QAED,mDAAe,GAAf,UAAgB,KAGf;YACCA,mBAAgB,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SACrE;QAED,gDAAY,GAAZ,UAAa,KAAU,EAAE,WAAqB;YAA9C,iBAmBC;YAlBC,IAAI,IAAI,CAAC,WAAW,EAAE;gBACpB,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;aAChC;YACD,IAAI,CAAC,WAAW,GAAGI,OAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAACqC,eAAK,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;gBACnD,KAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,KAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;;;;;;;;;;;;aAYjD,CAAC,CAAC;SACJ;QAED,8CAAU,GAAV;YACE,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;gBAC/B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;;;;;;;;;aASzB;SACF;QAED,+CAAW,GAAX;;;;;;;SAOC;QAED,8CAAU,GAAV;;SAEC;QAED,mDAAe,GAAf,UACE,IAAS,EACT,IAAS,EACT,KAAU,EACV,cAAsB,EACtB,aAAqB;;YAGrB,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;gBAC1B,IAAM,eAAe,GAAGzC,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAC7D,IAAI,EACJ,IAAI,CAAC,IAAI,CAAC,YAAY,CACvB,CAAC;gBACF,OAAO,eAAe,CAAC;oBACrB,IAAI,MAAA;oBACJ,IAAI,MAAA;oBACJ,KAAK,OAAA;oBACL,cAAc,gBAAA;oBACd,aAAa,eAAA;iBACmB,CAAC,CAAC;aACrC;iBAAM,IAAI,aAAa,EAAE;gBACxB,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC;aAC5B;iBAAM;;gBAEL,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACvC;SACF;QAED,oDAAgB,GAAhB;YACE,IAAM,aAAa,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxF,IAAI,OAAO,aAAa,KAAK,UAAU,EAAE;gBACvC,IAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC1D,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC7B;YACD,OAAO,aAAa,CAAC;SACtB;QAED,iDAAa,GAAb,UAAc,KAAa,EAAE,KAAa;YACxC,OAAOA,mBAAgB,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SACrD;QAsBD,kDAAc,GAAd;YACE,IAAM,CAAC,GAAGA,mBAAgB,CAAC,cAAc,EAAE,CAAC;YAC5C,OAAO,CAAC,CAAC;SACV;QAED,uDAAmB,GAAnB,UAAoB,IAAe,EAAE,IAAY;YAC/C,IAAI,CAAC,IAAI,EAAE;;aAEV;YACD,OAAOA,mBAAgB,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SACzD;QAED,6CAAS,GAAT,UAAU,KAAU;YAClB,IAAM,CAAC,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7E,IAAI,OAAO,CAAC,KAAK,UAAU,EAAE;gBAC3B,IAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC9C,OAAO,QAAQ,EAAE,CAAC;aACnB;YACD,OAAO,CAAC,IAAI,CAAC,oCAAoC,EAAE,CAAC,CAAC,CAAC;YACtD,OAAO;SACR;;;;gBArYFkB,YAAS,SAAC;oBACT,QAAQ,EAAE,sBAAsB;oBAChC,+sKAAgD;;iBAEjD;;;gBAXeL,qBAAkB;gBAAEE,gBAAa;gBAA/CU,eAAY;;;uBAaXF,QAAK;wBACLA,QAAK;uBACLA,QAAK;kCACL2B,YAAS,SAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;IC9BhD;;QA+CE,gCACU,YAA0B,EAC1B,kBAAsC,EACtC,aAA4B;YAF5B,iBAAY,GAAZ,YAAY,CAAc;YAC1B,uBAAkB,GAAlB,kBAAkB,CAAoB;YACtC,kBAAa,GAAb,aAAa,CAAe;;YAnBtC,YAAO,GAAG,EAAE,CAAC;YAEN,wBAAmB,GAAG,IAAIJ,uBAAoB,EAAE,CAAC;YAEjD,kBAAa,GAAuB;gBACzC,MAAM,EAAE,EAAE;gBACV,kBAAkB,EAAE,IAAI;aACzB,CAAC;YACK,iBAAY,GAAY,IAAI,CAAC;YAC7B,kBAAa,GAAW,KAAK,CAAC;YAC9B,8BAAyB,GAAY,KAAK,CAAC;YAC3C,eAAU,GAAY,KAAK,CAAC;YAoI5B,wBAAmB,GAA2B;gBACnD,SAAS,EAAE,0BAA0B;gBACrC,MAAM,EAAE,KAAK;gBACb,WAAW,EAAE,WAAW;gBACxB,UAAU,EAAE,kBAAkB;gBAC9B,SAAS,EAAE,aAAa;gBACxB,WAAW,EAAE,2BAA2B;gBACxC,WAAW,EAAE,sBAAsB;gBACnC,WAAW,EAAE,sBAAsB;gBACnC,aAAa,EAAE,mDAAmD;gBAClE,GAAG,EAAE,aAAa;gBAClB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,QAAQ;gBACjB,cAAc,EAAE,oBAAoB;gBACpC,YAAY,EAAE,qBAAqB;gBACnC,eAAe,EAAE,cAAc;gBAC/B,mBAAmB,EAAE,eAAe;gBACpC,YAAY,EAAE,cAAc;gBAC5B,gBAAgB,EAAE,eAAe;gBACjC,aAAa,EAAE,cAAc;gBAC7B,iBAAiB,EAAE,eAAe;gBAClC,YAAY,EAAE,cAAc;gBAC5B,gBAAgB,EAAE,UAAU;aAC7B,CAAC;YAEK,kBAAa,GAAkB;gBACpC,KAAK;gBACL,IAAI;aACL,CAAC;SAtJD;QAED,yCAAQ,GAAR;YAAA,iBA0FC;YAzFC9C,mBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAC9CA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAEzC,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,IAAI,EAAE;gBACvC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;aACjD;YAED,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,KAAK,EAAE;gBACvC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;aAC/C;YAED,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAE3F,IAAI;gBACF,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAA,IAAI;oBACxB,IAAI,CAAC,OAAO,CAAC,UAAC,KAAU;;wBAEtB,IAAI,UAAU,GAAG,EAAE,CAAC;wBAEpB,IAAI,KAAK,CAAC,IAAI,IAAI,UAAU,IAAI,KAAK,CAAC,IAAI,IAAI,aAAa,EAAE;4BAC3D,IAAI,KAAK,CAAC,cAAc,CAAC,EAAE;gCACzB,KAAK,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,UAAC,WAAgB;oCAC7C,UAAU,CAAC,IAAI,CAAC;wCACd,IAAI,EAAE,WAAW,CAAC,IAAI;wCACtB,KAAK,EAAE,WAAW,CAAC,KAAK;qCACzB,CAAC,CAAC;iCACJ,CAAC,CAAC;6BACJ;iCACI;gCACH,IAAM,eAAa,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC;gCAE7C,IAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE4D,2BAAwB,CAAC,CAAC;gCAC1D,KAAK,CAAC,QAAQ,GAAG,eAAa,CAAC,UAAU,CAAC,CAAC;gCAC3C,KAAK,CAAC,OAAO,GAAG,eAAa,CAAC,SAAS,CAAC,CAAC;gCACzC,KAAK,CAAC,OAAO,IAAI,eAAa,CAAC,SAAS,CAAC,CAAC;gCAC1C,KAAK,CAAC,cAAc,GAAG,eAAa,CAAC,gBAAgB,CAAC,CAAC;gCACvD,KAAK,CAAC,SAAS,GAAG,eAAa,CAAC,WAAW,CAAC,CAAC;gCAE7C,KAAI,CAAC,aAAa;qCACf,SAAS,CAAC,KAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,eAAa,CAAC,aAAa,CAAC,CAAC,EAAE,KAAK,CAAC;qCAClF,IAAI,CACHvD,aAAG,CAAC,UAAC,IAAI;oCACP,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAC,IAAS;wCAC7B,UAAU,CAAC,IAAI,CAAC;4CACd,IAAI,EAAE,IAAI,CAAC,eAAa,CAAC,MAAM,CAAC,CAAC;4CACjC,KAAK,EAAE,IAAI,CAAC,eAAa,CAAC,OAAO,CAAC,CAAC;yCACpC,CAAC,CAAC;qCACJ,CAAC,CAAA;oCAEF,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,GAAG,UAAU,CAAA;iCAClD,CAAC,CACH,CAAC,SAAS,EAAE,CAAC;6BACjB;yBACF;;wBAGD,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG;4BAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;4BAChB,KAAK,EAAE,KAAK,CAAC,KAAK;4BAClB,IAAI,EAAE,KAAK,CAAC,IAAI;4BAChB,YAAY,EAAE,KAAK,CAAC,WAAW,CAAC;4BAChC,OAAO,EAAE,UAAU;4BACnB,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC;4BAC7B,YAAY,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,cAAc,CAAC,GAAG,IAAI;yBACnE,CAAA;qBACF,CAAC,CAAC;oBAEH,KAAI,CAAC,aAAa,GAAG;wBACnB,MAAM,EAAE,KAAI,CAAC,OAAO;wBACpB,kBAAkB,EAAE,IAAI;qBACzB,CAAC;iBAEH,CAAC,CAAC;;gBAGH,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;oBAC7B,IAAI,uBAAuB,GAAGL,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CACnE,IAAI,EACJ,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,EACzB,IAAI,CAAC,KAAK,CACX,CAAC;oBAEF,IAAI,uBAAuB,EAAE;wBAC3B,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC;qBAC7C;iBACF;aACF;YAAC,OAAO,KAAK,EAAE;gBACd,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;aACjC;SACF;QAEM,6CAAY,GAAZ,UAAa,MAAe,EAAE,UAAe;YAClD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;YACzB,IAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YACjE,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAA;YAEvD,IAAI,UAAU,EAAE;gBACd,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,UAAU,CAAC;aAC5C;YAED,IAAI,CAAC,MAAM,EAAE;gBACX,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC;aACpC;YAED,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;gBACrBA,mBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;aAC5F;YAED,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE;gBAC5C,IAAI,QAAQ,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CACpD,IAAI,EACJ,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,EACzB,IAAI,CAAC,KAAK,CACX,CAAC;gBACF,IAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;aACjE;SACF;QAgCM,6CAAY,GAAZ,UAAa,mBAAwB,EAAE,IAAS;YACrD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,mBAAmB,CAAC;SAC5G;QAEM,8CAAa,GAAb,UAAc,WAAgB,EAAE,IAAS;YAC9C,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,WAAW,CAAC;SAC1F;QAEM,8CAAa,GAAb,UAAc,gBAAwB;YAC3C,IAAI,gBAAgB,EAAE;gBACpB,IAAM,qBAAqB,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBACxE,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC;;gBAGvC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;aAChD;SACF;;;;gBA1MFkB,YAAS,SAAC;oBACT,QAAQ,EAAE,mBAAmB;oBAC7B,qvTAA6C;;iBAE9C;;;gBAVCN,eAAY;gBACiDC,qBAAkB;gBAAjCE,gBAAa;;;+BAW1DmC,YAAS,SAACW,0CAAqB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;6BAClDtC,QAAK;uBACLA,QAAK;wBACLA,QAAK;uBACLA,QAAK;;aA4MQ,WAAW,CAAC,iBAAsB;QAChD,IAAI,IAAI,GAAc,EAAE,CAAC;QACzB,IAAI,iBAAiB,CAAC,SAAS,EAAE;YAC/B,IAAI,CAAC,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC;YAC7C,IAAI,CAAC,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,WAAW,CAAC,CAAC,CAAC,GAAA,CAAC,CAAC;SAC/D;aAAM;YACL,IAAI,CAAC,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC;YACrC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC;YACnC,IAAI,CAAC,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,CAAC;YAC3C,IAAI,CAAC,KAAK,GAAG,iBAAiB,CAAC,KAAK,YAAY,KAAK;kBACjD,iBAAiB,CAAC,IAAI,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,iBAAiB,CAAC,KAAK;kBAC/F,CAAC,iBAAiB,CAAC,IAAI,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;SACvG;QACD,OAAO,IAAI,CAAC;IACd;;ICtPA;;QAyBE,0BAAoB,kBAAsC;;YAAtC,uBAAkB,GAAlB,kBAAkB,CAAoB;YAO1D,wBAAmB,GAAG,IAAIuB,uBAAoB,EAAE,CAAC;YAEjD,UAAK,GAAG,eAAe,CAAC;YACxB,yBAAoB;oBAClB,QAAQ,EAAE,UAAU;oBACpB,KAAK,EAAE,MAAM;oBACb,MAAM,EAAE,OAAO;;gBACf,GAAC,aAAa,IAAG,eAAe;mBACjC,CAAC;YAEF,gBAAW,GAAG,IAAI,CAAC;YACnB,iBAAY,GAAG,IAAI,CAAC;YAEpB,cAAS,GAAG,IAAI,CAAC;YAEjB,8BAAyB,GAAG,KAAK,CAAC;SAtB6B;QAyB/D,mCAAQ,GAAR;YACE9C,mBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAC9CA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEpD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAEzE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBACrB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,mCAAmC,CAAC,CAAC;;aAExF;YAED,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;gBACpC,IAAI,CAAC,YAAY,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;aAC3F;SACF;QAEM,yCAAc,GAAd;YACL,IAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YACtC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YAE5B,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;gBAC3B,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;aACvC;iBAAM;gBACL,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;aACxC;YAED,IAAM,aAAa,GAAG,IAAI,CAAC;YAC3B,IAAM,YAAY,GAAG,CAAC,CAAC,+BAA+B,CAAC,CAAC;YACxD,YAAY,CAAC,EAAE,CAAC,WAAW,EAAE;;gBAE3B,UAAU,CAAC;;;iBAGV,EAAE,GAAG,CAAC,CAAC;aACT,CAAC,CAAC;SACJ;QAED,gCAAK,GAAL,UAAM,aAAkB;;;SAGvB;QAED,+CAAoB,GAApB,UAAqB,IAAS;;SAE7B;QAED,yCAAc,GAAd,UAAe,CAAC,EAAE,IAAI;;;SAGrB;QAED,sCAAW,GAAX,UAAY,IAAS;SACpB;QAED,oCAAS,GAAT,UAAU,IAAS;SAClB;QAED,sCAAW,GAAX,UAAY,CAAM,EAAE,IAAQ;YAC1B,IAAI,IAAI,CAAC,yBAAyB,EAAE;gBAClC,IAAI,UAAU,GAAG,CAAC,CAAC,mCAAmC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,GAAG,EAAE;gBAC/F,MAAM,GAAG,CAAC,CAAC,gBAAgB,CAAC,EAC5B,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;gBAEnC,IAAI,YAAY,KAAK,UAAU,EAAG;oBAC9B,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;oBAC1B,IAAI,mBAAmB,GAAG,CAAC,CAAC,4BAA4B,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBAChF,IAAI,mBAAmB,KAAI,SAAS,EAAE;wBACpC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;qBAClC;oBACD,IAAI,iBAAiB,GAAG,CAAC,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBAC5E,IAAI,iBAAiB,KAAI,SAAS,EAAE;wBAClC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;qBAChC;iBACJ;aACF;SACF;;;;gBA9GFkB,YAAS,SAAC;oBACT,QAAQ,EAAE,aAAa;oBACvB,myBAAuC;oBAEvC,aAAa,EAAE4C,oBAAiB,CAAC,IAAI;;iBACtC;;;gBAZCjD,qBAAkB;;;yBAgBjBqC,YAAS,SAAC,cAAc;uBAExB3B,QAAK;wBACLA,QAAK;;;;;;;;;;;;;;;;;QCuBN,6BACU,cAAiC,EACjC,cAAqC,EACrC,WAAwB;YAHlC,iBAKC;YAJS,mBAAc,GAAd,cAAc,CAAmB;YACjC,mBAAc,GAAd,cAAc,CAAuB;YACrC,gBAAW,GAAX,WAAW,CAAa;YA5BlC,cAAS,GAAG,IAAI,CAAC;YACjB,WAAM,GAAU,EAAE,CAAC;YACnB,iBAAY,GAAG,IAAI,IAAI,EAAE,CAAC;YAC1B,UAAK,GAAG;gBACN,UAAU,EAAE,KAAK;gBACjB,SAAS,EAAE,IAAI;aAChB,CAAC;;YAEF,sBAAiB,GAAG,CAAC,CAAC;YACtB,wBAAmB,GAAG,IAAIuB,uBAAoB,EAAE,CAAC;YAwCjD,mBAAc,GAAG,UAAC,IAAoB;gBAEpC,IAAG,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAC5C;oBACE,IAAM,OAAO,GAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;oBACrD,IAAM,WAAW,GAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;oBAEvD,IAAI,OAAO,IAAI,WAAW,EAC1B;wBAAE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;qBAAE;yBAC7E;wBACH,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAG,KAAK,EAAE,OAAO,EAAE,CAAC;qBAChF;iBAEA;aACF,CAAA;YAEM,iBAAY,GAAG,UAAC,IAAmB;gBACxC,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACnC,IAAI,CAAC,SAAS,GAAG,KAAI,CAAC,MAAM,CAAA;gBAC5B,OAAO;oBACL,IAAI,MAAA;iBACL,CAAC;aACH,CAAA;YAoIM,YAAO,GAAG,UAAC,KAAU;gBAC1B,KAAI,CAAC,iBAAiB,GAAG,KAAK,IAAI,KAAI,CAAC,iBAAiB,CAAC;;gBAEzD,KAAI,CAAC,QAAQ,EAAE,CAAC;aAEjB,CAAA;YAEM,cAAS,GAAG,UAAC,MAAe;gBACjC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,CAAC,MAAM,CAAC;aAC/C,CAAA;YAEM,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,MAAM,CAAC;gBAC5C,KAAI,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;aAC5B,CAAA;YAEM,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,MAAM,CAAC;gBAC7C9C,mBAAgB,CAAC,eAAe,CAAC,MAAM,EAAE,KAAI,CAAC,KAAK,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAI,CAAC,mBAAmB,EAAE+C,gBAAU,CAAC,QAAQ,CAAC,CAAC;aACtH,CAAA;SAhMA;QAED,sCAAQ,GAAR;YACE/C,mBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAC9CA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;;;YAG5C,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;gBAC3B,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACxC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC5C;YACD,IAAI,CAAC,QAAQ,EAAE,CAAC;SACjB;QAED,6CAAe,GAAf;;SAEC;QA0BD,sCAAQ,GAAR;;;;;YAKE,IAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YAC1B,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACpB,OAAO,CAAC,CAAC;aACV;iBAAM;gBACL,IAAM,SAAS,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;;gBAEnE,IAAI,SAAS,EAAE;oBACb,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;oBACxB,IAAI,IAAI,CAAC,MAAM,EAAE;wBACf,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;qBACxB;iBACF;qBAAM;oBACL,OAAO,CAAC,IAAI,CAAC,8BAA8B,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC9D,OAAO,EAAE,CAAC;iBACX;aACF;SACF;QAED,0CAAY,GAAZ,UAAa,IAAqB;;YAIhC,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;gBACzB,OAAO;aACR;;YAGD,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;YAE/C,OAAO,CAAC,GAAG,CAAC,6CAA6C,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;;YAE3E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBACxB,IAAI,EAAE,yBAAyB;gBAC/B,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,YAAY;gBAChD,KAAK,EAAE,IAAI,CAAC,SAAS;aACK,CAAC,CAAC;;;YAG5B,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;SAErC;QAED,4CAAc,GAAd,UAAe,EAAgD;YAA/D,iBAqCC;gBArCgB,MAAM,YAAA,EAAE,KAAK,WAAA,EAAE,GAAG,SAAA,EAAE,QAAQ,cAAA;YAC3C,OAAO,CAAC,GAAG,CACT,0CAA0C,EAC1C,MAAM,EACN,KAAK,EACL,GAAG,EACH,QAAQ,CACT,CAAC;YAEF,IACE,MAAM,CAAC,YAAY,CAAC,IAAI,KAAK,OAAO;gBACpC,MAAM,CAAC,YAAY,CAAC,IAAI,KAAK,MAAM,EACnC;gBACA,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;gBAC7B,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;gBAC3B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;gBAC1BI,OAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAACoC,cAAI,CAAC,CAAC,CAAC,EAAEC,eAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,cAAM,OAAA,KAAI,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,GAAA,CAAC,CAAC;aAClF;;;;;;;;;;;;;;;;;;;SAoBF;QAED,6CAAe,GAAf,UAAgB,EAAkC;gBAAhC,MAAM,YAAA,EAAE,KAAK,WAAA;YAC7B,OAAO,CAAC,GAAG,CAAC,2CAA2C,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;YA0BxE,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;;gBAGzB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACxC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAE3C,IAAM,IAAI,GAAGzC,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAClF,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;oBAC9B,IAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;oBACjD,QAAQ,CAAC,KAAK,CAAC,CAAC;iBACjB;gBACD,OAAO;aACR;SAGF;QAwBM,oDAAsB,GAAtB,UAAuB,KAAa;YAEzC,IAAI,KAAK,CAAC,qBAAqB,CAAC,EAAE;gBAChC,OAAO;aACR;iBACI;gBACH,KAAK,CAAC,qBAAqB,CAAC,GAAG,QAAQ,GAAG,KAAK,CAAC,WAAW,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC;aAChI;SAEF;QAEM,oDAAsB,GAAtB,UAAuB,KAAa;YACzC,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;YACjD,IAAI,CAAC,KAAK,CAAC,sBAAsB,EAAE;gBACjC,OAAO,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;gBAC1D,OAAOI,OAAE,CAAC,IAAI,CAAC,CAAC;aACjB;YAED,OAAO,KAAK,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;SAC5C;QAEK,uDAAyB,GAAzB,UAA0B,KAAa;;;;oBAE3C,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,EAAE;wBACjC,sBAAO,IAAI,EAAC;qBACb;oBACK,UAAU,GAAG,KAAK,CAAC,qBAAqB,CAAC,CAAC;oBAE5C,SAAS,GAA8B,EAAE,CAAC;oBAE9C,IAAI,KAAK,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;;wBAG3D,SAAS,GAAG;4BACV,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;yBACtD,CAAA;;wBAED,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;qBAEhE;;;aAEF;SAAA;QAEK,uDAAyB,GAAzB,UAA0B,KAAa;;;iCAuB5C;;;;4BArBC,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,EAAE;gCACjC,sBAAO,IAAI,EAAC;6BACb;4BACK,UAAU,GAAG,KAAK,CAAC,qBAAqB,CAAC,CAAC;iCAE5C,IAAI,CAAC,cAAc,EAAnB,wBAAmB;4BACrB,qBAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC;qCACtC,IAAI,CAAC,UAAA,IAAI;oCACR,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,EAAE;wCACjD,OAAO,IAAI,CAAC;qCACb;yCACI;wCACH,IAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wCACtC,KAAI,CAAC,YAAY,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;wCAEjE,OAAO,IAAI,CAAC;qCACb;iCACF,CAAC,EAAA;;4BAXJ,SAWI,CAAC;;gCAEA,sBAAO,IAAI,EAAC;;;;aAEpB;SAAA;;;;gBA/SFc,YAAS,SAAC;oBACT,QAAQ,EAAE,gBAAgB;oBAC1B,86EAA0C;;iBAE3C;;;gBApBkC6C,oBAAiB;gBAGZ7B,wBAAqB;gBAAEvB,cAAW;;;uBAmBvEY,QAAK;wBACLA,QAAK;uBACLA,QAAK;0BACLA,QAAK;;;ICxBR;;;QA8DE,kCACU,kBAAsC,EACtC,aAA4B,EAC5B,YAA0B;YAHpC,iBAIK;YAHK,uBAAkB,GAAlB,kBAAkB,CAAoB;YACtC,kBAAa,GAAb,aAAa,CAAe;YAC5B,iBAAY,GAAZ,YAAY,CAAc;YAhC7B,yBAAoB,GAAY,KAAK,CAAC;YACtC,2BAAsB,GAAY,KAAK,CAAC;YACxC,iBAAY,GAA2B,IAAI,CAAC;YAC5C,wBAAmB,GAAW,IAAI,CAAC;YAE1C,UAAK,GAAe,EAAE,CAAC;YAEvB,kBAAa,GAAe,EAAE,CAAC;YAC/B,uBAAkB,GAAG,IAAI,CAAC;;YAE1B,qBAAgB,GAAG,IAAI,CAAC;YACxB,mBAAc,GAAW,IAAI,CAAC;YAC9B,kBAAa,GAAW,IAAI,CAAC;YAC7B,kBAAa,GAAW,IAAI,CAAC;YAC7B,iBAAY,GAAG,yBAAyB,CAAC;YACzC,yBAAoB,GAAG,CAAC,CAAC;YACzB,cAAS,GAAG,IAAI,CAAC;YACjB,wBAAmB,GAAG,IAAIuB,uBAAoB,EAAE,CAAC;YAEjD,qBAAgB,GAAG,KAAK,CAAC;YACzB,cAAS,GAAY,IAAI,CAAC;YAC1B,aAAQ,GAAO;gBACb,kBAAkB,EAAE,EAAE;gBACtB,eAAe,EAAE,EAAE;gBACnB,YAAY,EAAE,CAAC;aAChB,CAAC;YAmBK,YAAO,GAAQ;gBACpB,UAAU,EAAE,EAAE;gBACd,QAAQ,EAAE,EAAE;aACb,CAAC;;YAufK,cAAS,GAAG,UAAC,MAAe;gBACjC,IAAM,EAAE,GAAG,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrD,MAAM,GAAG,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;gBACpC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,CAAC,MAAM,CAAC;aAC/C,CAAA;YAEM,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,MAAM,CAAC;gBAC5C,KAAI,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;aAC5B,CAAA;YAEM,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,MAAM,CAAC;gBAC7C9C,mBAAgB,CAAC,eAAe,CAAC,MAAM,EAAE,KAAI,CAAC,KAAK,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAI,CAAC,mBAAmB,EAAE+C,gBAAU,CAAC,QAAQ,CAAC,CAAC;aACtH,CAAA;SAnhBI;QAEL,8CAAW,GAAX;;;;YAIE,IAAI,IAAI,CAAC,WAAW,EAAE;gBACpB,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;aAChC;SACF;QAOD,2CAAQ,GAAR;YAAA,iBA2IC;YA1IC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YAEtB/C,mBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAC9CA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACzCA,mBAAgB,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;YAE3E,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;YAC3C,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,SAAS,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE;oBACrG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;oBACjC,IAAI,CAAC,mBAAmB,EAAE,CAAC;iBAC5B;gBACD,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;oBAChC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;iBACpC;gBAED,IAAI,CAAC,sBAAsB,EAAE,CAAC;aAC/B;;YAGD,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,KAAK,KAAK;gBAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;;YAGxE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;YACzC,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC5B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAC,CAAM;wBAC3B,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,EAAE;4BAC3B,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC;yBAChB;6BAAM;4BACL,CAAC,CAAC,OAAO,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;yBACtE;;wBAED,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS,EAAE;4BAC5B,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;yBACpB;qBACF,CAAC,CAAC;iBACJ;aACF;;YAGD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;YACvC,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAA,MAAM;oBAC5B,IAAI,MAAM,CAAC,OAAO,EAAE;wBAClB,MAAM,CAAC,OAAO,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;qBAChF;iBAEF,CAAC,CAAC;aACJ;;YAGD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,KAAK,CAAC;YAC5D,IAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YACnC,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACvB,IAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;;;;;;;;YAUjC,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,eAAe,EAAE;;gBAElD,IAAI,QAAQ,GAAG,IAAI,CAAC;gBACpB,IAAI,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,EAAE;;oBAEhC,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;iBAC1C;gBAED,IAAI,kBAAkB,GAAoBA,mBAAgB,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;gBACrG,IAAI,kBAAkB,EAAE;oBACtB,kBAAkB,CAAC,SAAS,CAAC,UAAC,KAAK;wBACjC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,yBAAyB,EAAE,KAAK,CAAC,CAAC;wBAEzD,IAAI,KAAI,CAAC,KAAK,EAAE;4BACd,IAAI,KAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE;gCACpC,KAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,KAAI,CAAC,KAAK,CAAC,CAAC;6BAC9C;yBACF;wBAED,KAAI,CAAC,SAAS,GAAG,KAAK,CAAC;qBACxB,CAAC,CAAC;iBACJ;qBAAM;oBACL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;iBACxB;gBAED,IAAI,CAACA,mBAAgB,CAAC,cAAc,EAAE,EAAE;oBACtC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;iBAC/B;aACF;iBACI;;gBAEH,IAAM,YAAU,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;gBAElF,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;oBAC/B,IAAI,CAAC,mBAAmB,EAAE,CAAC,SAAS,CAAC,UAAA,GAAG;wBACtC,IAAM,UAAU,GAAG,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC;wBAEnD,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE;4BACjF,KAAI,CAAC,qBAAqB,CAAC,YAAU,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;yBAC9E;wBAED,IAAI,KAAI,CAAC,KAAK,EAAE;4BACd,IAAI,KAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE;gCACpC,KAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,KAAI,CAAC,KAAK,CAAC,CAAC;6BAC9C;yBACF;wBAED,KAAI,CAAC,SAAS,GAAG,KAAK,CAAC;qBACxB,CAAC,CAAC;iBACJ;qBACI;oBACH,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;;qBAEtE;yBACI;wBACH,IAAM,YAAU,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;;wBAErF,IAAI,YAAU,IAAI,YAAU,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE;4BACjF,IAAM,eAAa,GAAG,IAAI,CAAC;4BAC3B,UAAU,CAAC;gCACT,eAAa,CAAC,qBAAqB,CAAC,YAAU,EAAE,YAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,eAAa,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gCAE1G,IAAI,IAAI,CAAC,KAAK,EAAE;oCACd,IAAI,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE;wCACpC,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;qCAC9C;iCACF;6BACF,EAAE,GAAG,CAAC,CAAC;yBACT;qBACF;oBACD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;iBACxB;aACF;SACF;;QAGO,wDAAqB,GAArB,UAAsB,QAAiB,EAAE,IAAS,EAAE,kBAA0B,EAAE,EAAO;;YAC7F,IAAIA,mBAAgB,CAAC,oBAAoB,CAAC,EAAE,CAAC,IAAI,QAAQ,EAAE;gBACzD,IAAI,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC;gBACvB,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;oBACtB,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAC;iBACvB;gBACDA,mBAAgB,CAAC,aAAa,CAAC,kBAAkB,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBAEzE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;oBACtB,IAAI,EAAE,UAAU;oBAChB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;oBAC1B,KAAK,OAAA;oBACL,IAAI,YAAI,GAAC,OAAO,IAAG,QAAQ,EAAE,QAAK,GAAE,IAAI,CAAC,IAAI,KAAE;iBACvB,CAAC,CAAC;gBAE5B,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;aAC5B;SACF;;QAGD,sDAAmB,GAAnB;YACE,IAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAChD,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAC5B,CAAC;YAEF,IAAM,WAAW,GAAG,IAAI2D,uBAAoB,EAAE,CAAC;YAC/C,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;YACzC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;YAC9C,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;YAE7C,OAAO3D,mBAAgB,CAAC,cAAc,CACpC,IAAI,CAAC,IAAI,CAAC,UAAU,EACpB,WAAW,EACX,IAAI,CAAC,KAAK,EACV,WAAW,EACX,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAC1B,CAAC;SACH;;QAGD,kDAAe,GAAf,UAAgB,KAGf;YACCA,mBAAgB,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SACrE;QAED,+CAAY,GAAZ;YACE,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;gBAC/B,OAAO,IAAI,CAAC,aAAa,CAAC;aAC3B;YAED,IAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,aAAa,IAAI,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YACjG,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE;;;gBAGrF,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;gBACjE,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC;aACjC;YAED,IAAI,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;gBACnC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpD;YACD,IAAI,UAAU,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE;gBACzC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;aACrD;YACD,IAAI,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;gBACnC,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aAC9C;YACD,IAAI,UAAU,EAAE;gBACd,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;aACrC;YACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,qCAAqC,EAAE,UAAU,CAAC,CAAC;SACjF;QAED,2CAAQ,GAAR,UAAS,KAA4D;;;YAGnE,IAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;YAClC,IAAI,SAAS,EAAE;gBACb,SAAS,CAAC,WAAW,EAAE,CAAC;gBACxB,SAAS,CAAC,oBAAoB,EAAE,CAAC;aAClC;YAED,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;;gBAE/B,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,kBAAkB,EAAE;oBACjE,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;oBAC9B,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;iBACtB;gBACD,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;aAC7B;iBACI;;gBAEH,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;gBAC9B,IAAI,SAAS,EAAE;oBACb,SAAS,CAAC,KAAK,GAAG,EAAE,CAAC;iBACtB;;gBAGD,IAAM,MAAM,GAA0B;oBACpC,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE,CAAC;oBACT,QAAQ,EAAE,EAAE;oBACZ,cAAc,EAAE,EAAE;oBAClB,SAAS,EAAE,EAAE;oBACb,eAAe,EAAE,EAAE;oBACnB,UAAU,EAAE,EAAE;oBACd,YAAY,EAAE,EAAE;oBAChB,UAAU,EAAE,EAAE;iBACf,CAAC;gBAEF,IAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC;gBAC1F,IAAM,WAAW,GAAGA,mBAAgB,CAAC,iBAAiB,CACpD,IAAI,CAAC,YAAY,EAAE,EACnB,KAAK,CAAC,IAAI,EACV,YAAY,EACZ,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,QAAQ,CAChB,CAAC;gBACF,IAAI,SAAS,EAAE;oBACb,IAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;oBAClD,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC;oBACxB,SAAS,CAAC,iBAAiB,EAAE,CAAC;oBAC9B,SAAS,CAAC,SAAS,EAAE,CAAC;oBACtB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;iBACxB;aACF;SACF;QAED,+CAAY,GAAZ,UAAa,KAAU,EAAE,WAAqB;YAA9C,iBA0BC;YAzBC,IAAI,IAAI,CAAC,WAAW,EAAE;gBACpB,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;aAChC;YACD,IAAI,CAAC,WAAW,GAAGI,OAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAACqC,eAAK,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;gBACnD,KAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,KAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;gBAEhD,IAAG,KAAI,CAAC,KAAK,EAAC;oBACZ,IAAI,KAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE;wBACpC,KAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,KAAI,CAAC,KAAK,CAAC,CAAC;qBAC9C;iBACF;;;;;;;;;;;;aAaF,CAAC,CAAC;SACJ;QAED,6CAAU,GAAV;YACE,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;gBAC/B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;;;;;;;;;aASzB;SACF;QAED,8CAAW,GAAX;;;;;;;SAOC;QAED,6CAAU,GAAV;;SAEC;QAED,kDAAe,GAAf,UACE,IAAS,EACT,IAAS,EACT,KAAU,EACV,cAAsB,EACtB,aAAqB;;YAGrB,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;gBAC1B,IAAM,eAAe,GAAGzC,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAE9F,OAAO,eAAe,CAAC;oBACrB,IAAI,MAAA;oBACJ,IAAI,MAAA;oBACJ,KAAK,OAAA;oBACL,cAAc,gBAAA;oBACd,aAAa,eAAA;iBACmB,CAAC,CAAC;aACrC;iBAAM,IAAI,aAAa,EAAE;gBACxB,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC;aAC5B;iBAAM;;gBAEL,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACvC;SACF;QAED,mDAAgB,GAAhB;YACE,IAAM,aAAa,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxF,IAAI,OAAO,aAAa,KAAK,UAAU,EAAE;gBACvC,IAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC1D,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC7B;YACD,OAAO,aAAa,CAAC;SACtB;QAED,qDAAkB,GAAlB;YACE,IAAM,eAAe,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC5F,IAAI,OAAO,eAAe,KAAK,UAAU,EAAE;gBACzC,IAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC5D,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAE7B;YACD,OAAO,eAAe,CAAC;SACxB;QAED,gDAAa,GAAb,UAAc,KAAa,EAAE,KAAa;YACxC,OAAOA,mBAAgB,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SACrD;QAED,2CAAQ,GAAR,UAAS,IAAe,EAAE,IAAY;YACpC,IAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC7D,OAAO,CAAG,eAAe,GAAG,eAAe,GAAG,EAAE,UAAI,IAAI,CAAC,IAAI,CAAC,KAAO,CAAC;SACvE;QAED,sDAAmB,GAAnB,UAAoB,IAAe,EAAE,IAAY;YAC/C,IAAI,CAAC,IAAI,EAAE;;aAEV;YACD,OAAOA,mBAAgB,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SACzD;QAED,4CAAS,GAAT,UAAU,KAAU;YAClB,IAAM,CAAC,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7E,IAAI,OAAO,CAAC,KAAK,UAAU,EAAE;gBAC3B,IAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC9C,OAAO,QAAQ,EAAE,CAAC;aACnB;YACD,OAAO,CAAC,IAAI,CAAC,oCAAoC,EAAE,CAAC,CAAC,CAAC;YACtD,OAAO;SACR;;QAGD,4CAAS,GAAT;YACEA,mBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SACjE;QAED,6CAAU,GAAV;YACE,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YAC7B,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;SAC9B;QAED,+CAAY,GAAZ;YACE,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;YAC/B,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;SAC9B;QAED,8CAAW,GAAX;YACE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACxD,IAAI,CAAC,gBAAgB,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC;;;;SAKhD;;QAGD,8CAAW,GAAX,UAAY,WAAmB;YAC7B,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;SAChC;QAED,+CAAY,GAAZ,UAAa,WAAmB;YAC9B,IAAM,CAAC,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YACrE,IAAI,CAAC,EAAE;gBACL,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;oBACtB,IAAI,EAAE,oBAAoB;oBAC1B,MAAM,EAAE,WAAW;oBACnB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;iBAChB,CAAC,CAAC;aAC7B;SACF;;QAGD,qDAAkB,GAAlB,UAAmB,iBAAsB;YACvC,IAAI,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;gBAChC,OAAO,IAAI,CAAC;aACb;iBACI;gBACH,OAAO,iBAAiB,CAAC;aAC1B;SACF;;QAGO,gDAAa,GAAb,UAAc,KAAa;YACjC,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;gBAC9D,IAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;gBAChD,IAAM,YAAU,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;gBAClD,IAAI,UAAU,GAAG,EAAE,CAAC;gBACpB,IAAI,KAAK,EAAE;oBACT,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,YAAU,CAAC,KAAK,KAAK,GAAA,CAAC,CAAC;oBACrE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC;iBACtC;gBACD,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE;oBACjD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC;iBAC7D;qBAAM,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;oBAClD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;iBACtD;aACF;YAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBACtB,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAC1B,KAAK,OAAA;gBACL,IAAI,EAAE,EAAE,KAAK,OAAA,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE;aACT,CAAC,CAAC;SAC7B;QAED,gDAAa,GAAb,UAAc,KAAU;;YAEtBA,mBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACnE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SAC3B;QAED,2CAAQ,GAAR,UAAS,KAA0D;YACjE,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YACzDA,mBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACzE,IAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/C,IAAI,CAAC,WAAW,EAAE,CAAC;YAEnB;;YAEE,IAAI,CAAC,kBAAkB,EAAE;iBACxB,KAAK,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,EAClD;gBACA,EAAE,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;aAClC;iBAAM;gBACL,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;aACpB;YAED,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SACjC;QAmBM,+CAAY,GAAZ,UAAa,OAAe;YACjC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;SAC3B;QAED,iDAAc,GAAd;YACE,IAAM,CAAC,GAAGA,mBAAgB,CAAC,cAAc,EAAE,CAAC;YAC5C,OAAO,CAAC,CAAC;SACV;;QAGM,uDAAoB,GAApB;YACL,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,sBAAsB,EAAE;gBAClF,OAAO,mBAAmB,CAAC;aAC5B;YACD,OAAO,wBAAwB,CAAC;SACjC;QAEM,uDAAoB,GAApB;YACL,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE;oBAC/B,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;iBACpC;aACF;YAED,OAAO,SAAS,CAAC;SAClB;QAEM,sDAAmB,GAAnB,UAAoB,WAAoB;YAC7C,IAAI,IAAI,CAAC,oBAAoB,EAAE;gBAC7B,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,EAAE,EAAE;oBAChC,IAAI,WAAW,EAAE;wBACf,IAAI,CAAC,mBAAmB,GAAG,WAAW,CAAC;qBACxC;yBACI;wBACH,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;qBACnD;iBACF;qBACI;oBACH,IAAI,CAAC,mBAAmB,GAAG,iBAAiB,CAAA;iBAC7C;aACF;SACF;QAEM,yDAAsB,GAAtB,UAAuB,WAAoB;YAChD,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,IAAI,WAAW,EAAE;oBACf,IAAI,CAAC,mBAAmB,GAAG,WAAW,CAAC;iBACxC;qBACI;oBACH,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;iBAC1D;aACF;iBACI;gBACH,IAAI,CAAC,mBAAmB,GAAG,sBAAsB,CAAC;aACnD;SACF;QAEM,4DAAyB,GAAzB;YACL,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,IAAI,IAAI,CAAC,sBAAsB,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAG;oBAC9D,OAAO,8CAA8C,CAAC;iBACvD;aACF;YACD,OAAO,2BAA2B,CAAC;SACpC;QAEM,iDAAc,GAAd,UAAe,QAAgB;YACpC,OAAOA,mBAAgB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;SAClD;;;;gBAvoBFkB,YAAS,SAAC;oBACT,QAAQ,EAAE,qBAAqB;oBAC/B,4xWAA+C;;iBAEhD;;;gBAXCL,qBAAkB;gBAAEE,gBAAa;gBAAEU,eAAY;;;uBAa9CF,QAAK;wBACLA,QAAK;uBACLA,QAAK;2BACLA,QAAK;6BACLA,QAAK;kCACL2B,YAAS,SAAC,iBAAiB;;;;QCG5B,uBACU,WAAwB;YADlC,iBAIC;YAHS,gBAAW,GAAX,WAAW,CAAa;YAT3B,UAAK,GAAG;gBACb,oBAAoB,EAAE,CAAC;gBACvB,WAAW,EAAE,KAAK,EAAY;gBAC9B,OAAO,EAAE,KAAK,EAAY;aAC3B,CAAC;YAEF,wBAAmB,GAAG,IAAIJ,uBAAoB,EAAE,CAAC;YA4F1C,cAAS,GAAG,UAAC,KAAa;gBAC/B,KAAI,CAAC,KAAK,CAAC,oBAAoB,GAAG,KAAK,CAAC;aACzC,CAAA;YAiDM,mBAAc,GAAG,UAAC,UAAoB,EAAE,MAAe;gBAC5D,IAAI,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE;oBACzG,OAAO,CAAC,GAAG,CAAC,sBAAsB,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC3D,OAAO;iBACR;gBAED,UAAU,CAAC,OAAO,CAAC,UAAA,KAAK;oBACtB,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC;iBAC5C,CAAC,CAAC;gBACH,KAAI,CAAC,kBAAkB,EAAE,CAAC;aAC3B,CAAA;YAEM,kBAAa,GAAG,UAAC,QAAgB,EAAE,OAAwB;gBAChE,IAAM,MAAM,GAAG,KAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;gBACtE,IAAI,MAAM,CAAC,MAAM,IAAI,QAAQ,IAAI,QAAQ,GAAG,CAAC,EAAE;oBAC7C,OAAO,CAAC,GAAG,CAAC,sBAAsB,GAAG,QAAQ,CAAC,CAAC;oBAC/C,OAAO;iBACR;gBAED,KAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC;aACpD,CAAA;YAEM,cAAS,GAAG,UAAC,MAAe;gBACjC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,CAAC,MAAM,CAAC;aAC/C,CAAA;YAEM,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,MAAM,CAAC;gBAC5C,KAAI,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;aAC5B,CAAA;YAEM,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,MAAM,CAAC;gBAC7C9C,mBAAgB,CAAC,eAAe,CAAC,MAAM,EAAE,KAAI,CAAC,KAAK,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAI,CAAC,mBAAmB,EAAE+C,gBAAU,CAAC,QAAQ,CAAC,CAAC;aACtH,CAAA;;SA3KA;QAED,gCAAQ,GAAR;YACE/C,mBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAC9CA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACzCA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAC/G,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC5B;QAEO,sCAAc,GAAd;;YACN,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,KAAK,EAAY,CAAC;YAE/C,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBAClC,IAAI,SAAS,GAAG,KAAK,CAAC;gBACtB,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;oBACvG,SAAS,GAAG,IAAI,CAAC;iBAClB;;gBAGD,KAAK,IAAM,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;oBACnC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CACzB;wBACE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;wBAC7B,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI;wBAC9C,OAAO,EAAE,IAAI;wBACb,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC;qBACvB,CAAC,CAAC;iBACN;gBACD,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;gBAE5C,IAAI,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;oBAClC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;iBAC5D;aAEF;iBAAM,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAC7B,IAAI,GAAG,GAAG,CAAC,CAAC;;oBACZ,KAAoB,IAAA,KAAA,SAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAA,gBAAA,4BAAE;wBAAnC,IAAM,KAAK,WAAA;wBACd,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CACzB;4BACE,KAAK,EAAE,KAAK,CAAC,KAAe;4BAC5B,IAAI,EAAE,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAc,GAAG,IAAI;4BAC9C,OAAO,EAAEA,mBAAgB,CAAC,aAAa,CAAC,KAAK,CAAC,OAAiB,EAAE,IAAI,CAAC,KAAK,CAAC;4BAC5E,OAAO,EAAE,QAAQ,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,QAAQ,GAAGA,mBAAgB,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAW,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC;4BAC3I,KAAK,EAAE,GAAG,EAAE;yBACb,CAAC,CAAC;qBACN;;;;;;;;;gBACD,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;aAC7C;SACF;QAEO,0CAAkB,GAAlB;YAAA,iBA6BP;YA5BC,IAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YAE7C,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBAClC,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,KAAK,EAAY,CAAC;gBAC/C,IAAI,SAAS,GAAG,KAAK,CAAC;gBACtB,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;oBACvG,SAAS,GAAG,IAAI,CAAC;iBAClB;wCAGU,KAAK;oBACd,IAAM,WAAW,GAAG,iBAAiB,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,KAAK,IAAI,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAA,CAAC,CAAC;oBACrF,IAAM,kBAAkB,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;oBAEnF,IAAM,SAAS,GAAG,kBAAkB,CAAC;oBACrC,IAAI,SAAS,EAAE;wBACb,OAAK,KAAK,CAAC,WAAW,CAAC,IAAI,CACzB;4BACE,KAAK,EAAE,OAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;4BAC7B,IAAI,EAAE,SAAS,GAAG,OAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI;4BAC9C,OAAO,EAAE,IAAI;4BACb,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC;yBACvB,CAAC,CAAC;qBACN;;;;gBAbH,KAAK,IAAM,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK;4BAAxB,KAAK;iBAcf;aACF;iBAAM;gBACL,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;aAC3D;SACF;QAED,0CAAkB,GAAlB,UAAmB,KAAa;YAC9B,OAAOA,mBAAgB,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SAC/D;QAMD,sCAAc,GAAd,UAAe,QAAgB;YAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,oBAAoB,KAAK,QAAQ,CAAC;SACrD;QAEM,oCAAY,GAAZ,UAAa,QAAgB;YAClC,IAAI,CAAC,KAAK,CAAC,oBAAoB,GAAG,QAAQ,CAAC;SAC5C;QAED,2CAAmB,GAAnB;YACE,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE;gBACtC,OAAO;aACR;YAED,IAAI,aAAa,GAAwB,eAAe,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC;YAC5G,IAAI,aAAa,KAAK,IAAI,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC/D,IAAI,CAAC,KAAK,CAAC,oBAAoB,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAErE;iBAAM,IAAI,aAAa,KAAK,IAAI,EAAE;gBACjC,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;gBAC1C,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,aAAa,CAAC;gBAC5C,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;aAEtC;iBAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC7C,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;aACtC;SACF;QAEM,mCAAW,GAAX,UAAY,CAAC;YAClB,IAAI,CAAC,KAAK,CAAC,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC;YAC1C,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAElB,IAAM,IAAI,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACjF,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;gBAC9B,IAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBACjD,QAAQ,CAAC,CAAC,CAAC,CAAC;aACb;SACF;QAEO,iCAAS,GAAT,UAAU,CAAC;YACjB,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE;gBACtC,OAAO;aACR;YAED,IAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAwB,CAAC;YACzE,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;SAC5C;QAsCD,sCAAc,GAAd,UAAe,QAAgB;YAC7B,OAAOA,mBAAgB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;SAClD;;;;gBAtMFkB,YAAS,SAAC;oBACT,QAAQ,EAAE,UAAU;oBACpB,+0CAAoC;;iBAErC;;;gBARuBP,cAAW;;;uBAUhCY,QAAK;wBACLA,QAAK;uBACLA,QAAK;2BAEL2B,YAAS,SAAC,uBAAuB;;;IC1BpC;;QAoCE;YAAA,iBAAiB;YATjB,wBAAmB,GAAG,IAAIJ,uBAAoB,EAAE,CAAC;YAC1C,yBAAoB,GAAY,KAAK,CAAC;YACtC,2BAAsB,GAAY,KAAK,CAAC;YACxC,iBAAY,GAA2B,IAAI,CAAC;YAC5C,wBAAmB,GAAW,IAAI,CAAC;YAGnC,oBAAe,GAAW,aAAa,CAAC;YA4HxC,cAAS,GAAG,UAAC,MAAe;gBACjC,IAAM,EAAE,GAAG,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrD,MAAM,GAAG,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;gBACpC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,CAAC,MAAM,CAAC;aAC/C,CAAA;YAEM,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,MAAM,CAAC;gBAC5C,KAAI,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;aAC5B,CAAA;YAEM,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,MAAM,CAAC;gBAC7C9C,mBAAgB,CAAC,eAAe,CAAC,MAAM,EAAE,KAAI,CAAC,KAAK,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAI,CAAC,mBAAmB,EAAE+C,gBAAU,CAAC,QAAQ,CAAC,CAAC;aACtH,CAAA;SAxIgB;QAEjB,iCAAQ,GAAR;YAAA,iBA+CC;;;YA5CC/C,mBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAC9CA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAEzC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;YAE7C,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAC5C,IAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,IAAI,CAAC;aAC5C;YAED,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE;gBACxC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;aAC9C;YAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;YAC3C,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,SAAS,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE;oBACrG,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;oBACjC,IAAI,CAAC,mBAAmB,EAAE,CAAC;iBAC5B;gBACD,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;oBAChC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;iBACpC;gBACD,IAAI,CAAC,sBAAsB,EAAE,CAAC;aAC/B;;YAGD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;YACzC,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC5B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAC,CAAM;wBAC3B,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,EAAE;4BAC3B,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC;yBAChB;6BAAM;4BACL,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;gCACtC,CAAC,CAAC,OAAO,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;6BACtE;yBACF;;wBAED,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS,EAAE;4BAC5B,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;yBACpB;qBACF,CAAC,CAAC;iBACJ;aACF;SACF;QAED,qCAAY,GAAZ,UAAa,SAAiB;YAC5B,QAAQ,SAAS;gBACf,KAAK,MAAM;oBACT,OAAO,MAAM,CAAC;gBAChB,KAAK,OAAO;oBACV,OAAO,MAAM,CAAC;gBAChB,KAAK,QAAQ;oBACX,OAAO,QAAQ,CAAC;gBAClB,KAAK,UAAU;oBACb,OAAO,QAAQ,CAAC;gBAClB,KAAK,OAAO;oBACV,OAAO,OAAO,CAAC;gBACjB,KAAK,UAAU;oBACb,OAAO,UAAU,CAAC;gBACpB,KAAK,QAAQ;oBACX,OAAO,QAAQ,CAAC;gBAClB,KAAK,KAAK;oBACR,OAAO,KAAK,CAAC;gBACf,KAAK,MAAM;oBACT,OAAO,MAAM,CAAC;gBAChB,KAAK,MAAM;oBACT,OAAO,MAAM,CAAC;gBAChB,KAAK,KAAK;oBACR,OAAO,KAAK,CAAC;gBACf;oBACE,OAAO,MAAM,CAAC;aACjB;SACF;QAED,qCAAY,GAAZ,UAAa,SAAiB;YAC5B,QAAQ,SAAS;gBACf,KAAK,MAAM;oBACT,OAAO,MAAM,CAAC;gBAChB,KAAK,OAAO;oBACV,OAAO,MAAM,CAAC;gBAChB,KAAK,QAAQ;oBACX,OAAO,SAAS,CAAC;gBACnB,KAAK,UAAU;oBACb,OAAO,SAAS,CAAC;gBACnB,KAAK,OAAO;oBACV,OAAO,OAAO,CAAC;gBACjB,KAAK,UAAU;oBACb,OAAO,MAAM,CAAC;gBAChB,KAAK,QAAQ;oBACX,OAAO,QAAQ,CAAC;gBAClB,KAAK,KAAK;oBACR,OAAO,KAAK,CAAC;gBACf,KAAK,MAAM;oBACT,OAAO,MAAM,CAAC;gBAChB,KAAK,MAAM;oBACT,OAAO,MAAM,CAAC;gBAChB,KAAK,KAAK;oBACR,OAAO,KAAK,CAAC;gBACf;oBACE,OAAO,MAAM,CAAC;aACjB;SACF;QAED,yCAAgB,GAAhB;YACE,IAAM,aAAa,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxF,IAAI,OAAO,aAAa,KAAK,UAAU,EAAE;gBACvC,OAAO,aAAa,EAAE,CAAC;aACxB;YACD,OAAO,aAAa,CAAC;SACtB;QAED,uCAAc,GAAd;YACE,IAAM,CAAC,GAAGA,mBAAgB,CAAC,cAAc,EAAE,CAAC;YAC5C,OAAO,CAAC,CAAC;SACV;QAkBD,4CAAmB,GAAnB,UAAoB,IAAe,EAAE,IAAY;YAC/C,OAAOA,mBAAgB,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SACzD;QAEM,iCAAQ,GAAR,UAAS,UAAmB;YACjC,IAAI,OAAO,GAAG,EAAE,CAAC;YACjB,IAAI,UAAU,EAAE;gBACd,OAAO,IAAI,OAAO,CAAC;aACpB;iBAAM;gBACL,OAAO,IAAI,MAAM,CAAC;aACnB;YACD,OAAO,OAAO,CAAC;SAChB;QAEM,wCAAe,GAAf;YACL,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAC5C,OAAO,2BAA2B,CAAC;aACpC;YACD,OAAO,mBAAmB,CAAC;SAC5B;;QAGM,uCAAc,GAAd;;YAEL,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBACtB,IAAI,EAAE,eAAe;gBACrB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;gBACzB,KAAK,OAAA;gBACL,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE;aAC3B,CAAC,CAAC;SAC7B;QAED,iCAAQ,GAAR,UAAS,KAAU;;YAEjBA,mBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACnF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBACtB,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAC1B,KAAK,OAAA;gBACL,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE;aACrB,CAAC,CAAC;SAC7B;;QAGD,oCAAW,GAAX,UAAY,WAAmB;YAC7B,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;SAChC;QAED,qCAAY,GAAZ,UAAa,WAAmB;YAC9B,IAAM,CAAC,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YACrE,IAAI,CAAC,EAAE;gBACL,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;oBACtB,IAAI,EAAE,oBAAoB;oBAC1B,MAAM,EAAE,WAAW;oBACnB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;iBAChB,CAAC,CAAC;aAC7B;SACF;;QAIM,oDAA2B,GAA3B,UAA4B,SAA8B;YAC/D,IAAI,SAAS,CAAC,eAAe,EAAE;gBAC7B,OAAO,SAAS,CAAC,eAAe,GAAG,YAAY,CAAC;aACjD;YAED,OAAO,wBAAwB,CAAC;SACjC;QAEM,sCAAa,GAAb,UAAc,SAA8B;YACjD,IAAI,SAAS,CAAC,aAAa,EAAE;gBAC3B,OAAO,SAAS,CAAC,aAAa,CAAC;aAChC;YAED,OAAO,OAAO,CAAA;SACf;QAEM,yCAAgB,GAAhB,UAAiB,SAA8B;YACpD,IAAI,SAAS,CAAC,OAAO,EAAE;gBACrB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;oBACtB,IAAI,EAAE,iBAAiB;oBACvB,MAAM,EAAE,SAAS,CAAC,OAAO;oBACzB,IAAI,EAAE,SAAS;iBACS,CAAC,CAAC;aAC7B;SACF;QAEM,wCAAe,GAAf;YACLA,mBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SACnE;;QAGM,6CAAoB,GAApB;YACL,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,sBAAsB,EAAE;gBAClF,OAAO,mBAAmB,CAAC;aAC5B;YACD,OAAO,wBAAwB,CAAC;SACjC;QAEM,6CAAoB,GAApB;YACL,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE;oBAC/B,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;iBACpC;aACF;YAED,OAAO,SAAS,CAAC;SAClB;QAEM,4CAAmB,GAAnB,UAAoB,WAAoB;YAC7C,IAAI,IAAI,CAAC,oBAAoB,EAAE;gBAC7B,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,EAAE,EAAE;oBAChC,IAAI,WAAW,EAAE;wBACf,IAAI,CAAC,mBAAmB,GAAG,WAAW,CAAC;qBACxC;yBACI;wBACH,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;qBACnD;iBACF;qBACI;oBACH,IAAI,CAAC,mBAAmB,GAAG,iBAAiB,CAAA;iBAC7C;aACF;SACF;QAEM,+CAAsB,GAAtB,UAAuB,WAAoB;YAChD,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,IAAI,WAAW,EAAE;oBACf,IAAI,CAAC,mBAAmB,GAAG,WAAW,CAAC;iBACxC;qBACI;oBACH,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;iBAC1D;aACF;iBACI;gBACH,IAAI,CAAC,mBAAmB,GAAG,sBAAsB,CAAC;aACnD;SACF;QAEM,kDAAyB,GAAzB;YACL,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,IAAI,IAAI,CAAC,sBAAsB,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC9F,OAAO,uCAAuC,CAAC;iBAChD;aACF;YACD,OAAO,oBAAoB,CAAC;SAC7B;;;;gBAjTFkB,YAAS,SAAC;oBACT,QAAQ,EAAE,WAAW;oBACrB,u+NAAqC;;iBAEtC;;;;uBAEEK,QAAK;wBACLA,QAAK;uBACLA,QAAK;2BACLA,QAAK;gCACLA,QAAK;;;ICzBR;;QAmCE;YAAA,iBAAiB;YAVjB,mBAAc,GAAW,IAAI,CAAC;YAC9B,kBAAa,GAAW,IAAI,CAAC;YAC7B,kBAAa,GAAW,IAAI,CAAC;YAC7B,iBAAY,GAAG,yBAAyB,CAAC;YACzC,kBAAa,GAAe,EAAE,CAAC;YAC/B,uBAAkB,GAAG,IAAI,CAAC;YAG1B,wBAAmB,GAAG,IAAIuB,uBAAoB,EAAE,CAAC;YAU1C,cAAS,GAAG,UAAC,MAAe;gBACjC,IAAM,EAAE,GAAG,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrD,MAAM,GAAG,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;gBACpC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,CAAC,MAAM,CAAC;aAC/C,CAAA;YAEM,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,MAAM,CAAC;gBAC5C,KAAI,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;aAC5B,CAAA;YAEM,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,MAAM,CAAC;gBAC7C9C,mBAAgB,CAAC,eAAe,CAAC,MAAM,EAAE,KAAI,CAAC,KAAK,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAI,CAAC,mBAAmB,EAAE+C,gBAAU,CAAC,QAAQ,CAAC,CAAC;aACtH,CAAA;SAtBgB;QAEjB,qCAAQ,GAAR;YACE/C,mBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAC9CA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;SAC1C;QAmBD,0CAAa,GAAb,UAAc,KAAU;;YAEtBA,mBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACnE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SAC3B;QAEO,0CAAa,GAAb,UAAc,KAAa;YACjC,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;gBAC9D,IAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;gBAChD,IAAM,YAAU,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;gBAClD,IAAI,UAAU,GAAG,EAAE,CAAC;gBACpB,IAAI,KAAK,EAAE;oBACT,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,YAAU,CAAC,KAAK,KAAK,GAAA,CAAC,CAAC;oBACrE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC;iBACtC;gBACD,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE;oBACjD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC;iBAC7D;qBAAM,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;oBAClD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;iBACtD;aACF;YAGD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBACtB,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAC1B,KAAK,OAAA;gBACL,IAAI,EAAE,EAAE,KAAK,OAAA,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE;aACT,CAAC,CAAC;SAC7B;QAED,6CAAgB,GAAhB;YACE,IAAM,aAAa,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACpG,IAAI,OAAO,aAAa,KAAK,UAAU,EAAE;gBACvC,OAAO,aAAa,EAAE,CAAC;aACxB;YACD,OAAO,aAAa,CAAC;SACtB;QAED,2CAAc,GAAd;YACE,IAAM,CAAC,GAAGA,mBAAgB,CAAC,cAAc,EAAE,CAAC;YAC5C,OAAO,CAAC,CAAC;SACV;QAED,gDAAmB,GAAnB,UAAoB,IAAe,EAAE,IAAY;YAC/C,OAAOA,mBAAgB,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SACzD;QAED,qCAAQ,GAAR,UAAS,IAAe,EAAE,IAAY;YACpC,IAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC7D,OAAO,CAAG,eAAe,GAAG,eAAe,GAAG,EAAE,UAAI,IAAI,CAAC,IAAI,CAAC,KAAO,CAAC;SACvE;QAED,oCAAO,GAAP;YACE,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBACzB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;oBACtB,IAAI,EAAE,mBAAmB;oBACzB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW;oBAC7B,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;iBACG,CAAC,CAAC;aAC7B;SACF;;;;gBAzGFkB,YAAS,SAAC;oBACT,QAAQ,EAAE,eAAe;oBACzB,m2EAAyC;;iBAE1C;;;;uBAEEK,QAAK;wBACLA,QAAK;uBACLA,QAAK;;;ICvBR;;QA+BE;YAAA,iBAAiB;YANjB,wBAAmB,GAAG,IAAIuB,uBAAoB,EAAE,CAAC;YAG1C,UAAK,GAAG,EAAE,CAAC;YAClB,cAAS,GAAG,EAAE,CAAC;YAYR,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,MAAM,CAAC;gBAC5C,KAAI,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;aAC5B,CAAA;SAbgB;QAEjB,uCAAQ,GAAR;YACE9C,mBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAC9CA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAEzC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;YAC/C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,GAAG,CAAC;SACnD;QAOD,kDAAmB,GAAnB,UAAoB,IAAe,EAAE,IAAY;YAC/C,OAAOA,mBAAgB,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SACzD;QAED,0CAAW,GAAX;SAEC;QAED,2CAAY,GAAZ;YACE,OAAO;gBACL,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE;gBACjC,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW;aACjD,CAAA;SACF;QAEO,4CAAa,GAAb;YACN,IAAM,CAAC,GAAG,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;YACjD,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC;SAC5B;;;;gBAjDFkB,YAAS,SAAC;oBACT,QAAQ,EAAE,iBAAiB;oBAC3B,okKAA2C;;iBAE5C;;;;uBAEEK,QAAK;wBACLA,QAAK;uBACLA,QAAK;;;ICvBR;;QA0CE;YAAA,iBAAiB;YAfjB,UAAK,GAAe,EAAE,CAAC;YACvB,qBAAgB,GAAQ,IAAI,CAAC;;;;YAI7B,eAAU,GAAG,KAAK,CAAC;YACX,gBAAW,GAAG,CAAC,CAAC;YAChB,iBAAY,GAAG,IAAI,CAAC;YACrB,UAAK,GAAG,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;YAC7B,cAAS,GAAG,EAAE,CAAC;YACf,iBAAY,GAAU,EAAE,CAAC;YACzB,iBAAY,GAAY,KAAK,CAAC;YAErC,wBAAmB,GAAG,IAAIuB,uBAAoB,EAAE,CAAC;YAgD1C,eAAU,GAAG,UAAC,QAAa,EAAE,KAAa;;gBAE7C,OAAO,KAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;;aAEtD,CAAA;YAEM,eAAU,GAAG,UAAC,KAAY,EAAE,KAAa,EAAE,aAAsB;gBACtE,KAAI,CAAC,SAAS,GAAG,EAAE,CAAC;gBACpB,IAAM,IAAI,GAAG,KAAI,CAAC,QAAQ,EAAE,CAAC;gBAE7B,KAAI,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;gBAE7C,IAAM,KAAK,GAAG,KAAI,CAAC,SAAS,CAAC;gBAC7B,IAAI,aAAa,EAAE;oBACjB,KAAI,CAAC,YAAY,GAAG,KAAK,CAAC;iBAC3B;gBACD,IAAM,QAAQ,GAAG,EAAE,CAAC;gBACpB,KAAK,CAAC,OAAO,CAAC,UAAC,CAAK;oBAClB,IAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACzB,IAAI,MAAM,GAAG,EAAE,CAAC;oBAChB,GAAG,CAAC,OAAO,CAAC,UAAC,CAAK;wBAChB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;wBACtC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;qBACpC,CAAC,CAAA;iBACH,CAAC,CAAC;gBACH,KAAI,CAAC,KAAK,CAAC,YAAY,GAAG,KAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;aACpE,CAAA;YAEM,iBAAY,GAAG,UAAC,KAAY,EAAE,KAAa,EAAE,cAAuB;gBACzE,KAAI,CAAC,SAAS,GAAG,EAAE,CAAC;gBACpB,IAAM,IAAI,GAAG,KAAI,CAAC,QAAQ,EAAE,CAAC;gBAE7B,KAAI,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;gBAE7C,IAAM,KAAK,GAAG,KAAI,CAAC,SAAS,CAAC;gBAC7B,IAAI,QAAQ,GAAG,EAAE,CAAC;gBAClB,IAAI,cAAc,EAAE;oBAClB,KAAK,CAAC,OAAO,CAAC,UAAC,CAAK;wBAClB,IAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBACzB,IAAI,MAAM,GAAG,EAAE,CAAC;wBAChB,GAAG,CAAC,OAAO,CAAC,UAAC,CAAK;4BAChB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;4BACtC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;yBACpC,CAAC,CAAA;qBACH,CAAC,CAAC;iBACJ;qBAAM;oBACL,QAAQ,GAAG,KAAK,CAAC;iBAClB;gBAED,KAAI,CAAC,KAAK,CAAC,YAAY,GAAG,KAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,UAAA,CAAC;oBACxD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;iBAC9B,CAAC,CAAC;aACJ,CAAA;YAiBM,cAAS,GAAG;gBACf,IAAM,IAAI,GAAG,KAAI,CAAC,QAAQ,EAAE,CAAC;gBAC7B,IAAI,IAAI,EAAE;oBACR,KAAI,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;iBAC9B;aACJ,CAAA;YAEM,gBAAW,GAAG;gBACnB,KAAI,CAAC,KAAK,CAAC,YAAY,GAAG,EAAE,CAAC;aAC9B,CAAA;YAuBM,cAAS,GAAG,UAAC,MAAe;gBACjC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,CAAC,MAAM,CAAC;aAC/C,CAAA;YAEM,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,MAAM,CAAC;gBAC5C,KAAI,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;aAC5B,CAAA;YAEM,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,MAAM,CAAC;gBAC7C9C,mBAAgB,CAAC,eAAe,CAAC,MAAM,EAAE,KAAI,CAAC,KAAK,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAI,CAAC,mBAAmB,EAAE+C,gBAAU,CAAC,QAAQ,CAAC,CAAC;aACtH,CAAA;SA/JgB;QAEjB,iCAAQ,GAAR;YACE/C,mBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAC9CA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAEzC,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;gBAC/B,IAAI,CAAC,SAAS,EAAE,CAAC;aAClB;;YAGD,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;gBACjD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;aAC1B;SACF;QAED,wCAAe,GAAf;;;YAGEA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;SAC1C;QAED,iCAAQ,GAAR;;;;YAIE,IAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YACnC,IAAI,UAAU,EAAE;gBACd,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;gBACrB,IAAM,MAAM,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC9E,OAAO,MAAM,CAAC;aACf;iBAAM;gBACL,OAAO,CAAC,IAAI,CAAC,0CAA0C,EAAE,UAAU,CAAC,CAAC;aACtE;;;;;;;;;;;SAWF;QAwDM,wCAAe,GAAf,UAAgB,IAAS,EAAE,KAAa,EAAE,GAAW,EAAE,KAAa;YAApE,iBAaN;YAZC,IAAI,GAAG,EAAE;gBACP,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;aACjB;YACD,IAAI,CAAC,OAAO,CAAC,UAAC,CAAM,EAAE,CAAS;gBAC7B,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE;oBACpD,KAAI,CAAC,SAAS,GAAG,KAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;iBACtD;gBACD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;oBAC1B,IAAM,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;oBACvB,KAAI,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;iBAChD;aACF,CAAC,CAAC;SACJ;QAaO,sCAAa,GAAb,UAAc,IAAS,EAAE,GAAW;YAApC,iBAWP;YAVC,IAAI,GAAG,EAAE;gBACP,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;aACjB;YACD,IAAI,CAAC,OAAO,CAAC,UAAC,CAAM,EAAE,CAAS;gBAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;oBAC1B,IAAM,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;oBACvB,KAAI,CAAC,KAAK,CAAC,YAAY,GAAG,KAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBAC5D,KAAI,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;iBAChC;aACF,CAAC,CAAC;SACJ;QAEM,uCAAc,GAAd,UAAe,IAAI;YACtB,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,KAAK,IAAI,CAAC,KAAK,GAAA,CAAC,CAAC;SACnF;QAEM,qCAAY,GAAZ,UAAa,IAAI;YACpB,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACxE;QAgBD,oCAAW,GAAX,UAAY,QAAa,EAAE,IAAY,EAAE,KAAa;YACpD,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,IAAM,eAAe,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAC7D,IAAI,EACJ,IAAI,CAAC,YAAY,CAClB,CAAC;gBACF,IAAI,CAAC,eAAe,EAAE;oBACpB,OAAO,CAAC,IAAI,CACV,OAAO;wBACP,IAAI,CAAC,YAAY;wBACjB,8CAA8C,EAC9C,eAAe,CAChB,CAAC;oBACF,OAAO;iBACR;gBAED,OAAO,eAAe,CAAC;oBACrB,QAAQ,UAAA;oBACR,IAAI,MAAA;oBACJ,KAAK,OAAA;iBACiB,CAAC,CAAC;aAC3B;iBAAM;gBACL,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;qBAC3B,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,OAAO,IAAI,KAAK,QAAQ,GAAA,CAAC;qBACxC,IAAI,CAAC,IAAI,CAAC,CAAC;aACf;SACF;QAED,2CAAkB,GAAlB,UAAmB,OAAc;YAC/B,IAAM,WAAW,GAAU,EAAE,CAAC;YAC9B,IAAM,SAAS,GAAQ,EAAE,CAAC;YAC1B,IAAM,YAAY,GAAU,EAAE,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,UAAC,CAAM;gBACrB,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE;oBACf,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACpB,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;iBACrB;qBAAM;oBACL,IAAI,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE;wBACzB,IAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;wBACzC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;4BACrB,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC;yBACvB;wBACD,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBACzB,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;qBACrB;yBAAM;wBACL,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;qBACtB;iBACF;aACF,CAAC,CAAC;YAEH,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC3B,YAAY,CAAC,OAAO,CAAC,UAAC,CAAM;oBAC1B,IAAI,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE;wBACzB,IAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;wBACzC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBACzB,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;qBACrB;iBACF,CAAC,CAAC;aACJ;YAED,OAAO,WAAW,CAAC;SACpB;QAED,0CAAiB,GAAjB,UAAkB,KAAU;YAC1B,IAAI,UAAkB,CAAC;YACvB,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,QAAQ,IAAI,CAAC,YAAY;oBACvB,KAAK,SAAS;wBACZ,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;wBACjC,MAAM;oBACR,KAAK,YAAY;wBACf,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;wBACpC,MAAM;iBACT;aACF;iBAAM;gBACL,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;aACpC;YACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBACtB,IAAI,EAAE,yBAAyB;gBAC/B,MAAM,EAAE,UAAU;gBAClB,IAAI,EAAE,KAAK,CAAC,QAAQ;gBACpB,KAAK,EAAE,KAAK,CAAC,KAAK;aACM,CAAC,CAAC;SAC7B;QAED,kCAAS,GAAT,UAAU,KAAU,EAAE,QAAa,EAAE,IAAY,EAAE,KAAa;YAC9D,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;;;;;;;;;;SAU/B;QAED,qCAAY,GAAZ,UAAa,KAAU,EAAE,QAAa,EAAE,IAAY,EAAE,KAAa;YACjE,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;SAClC;QAED,mCAAU,GAAV,UAAW,KAAU;YACnB,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBACxB,IAAM,IAAI,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACjF,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;oBAC9B,IAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;oBACjD,QAAQ,CAAC,KAAK,CAAC,CAAC;iBACjB;gBACD,OAAO;aACR;SACF;QAED,uCAAc,GAAd,UAAe,KAAwB;YACrC,IAAG,IAAI,CAAC,IAAI,CAAC,SAAS,KAAK,KAAK,EAAC;gBAC/B,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACtB,OAAO;aACR;YAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAM,WAAW,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CACzD,IAAI,EACJ,IAAI,CAAC,IAAI,CAAC,MAAM,CACjB,CAAC;YACF,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;gBACrC,IAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxC,QAAQ,CAAC,KAAK,CAAC,CAAC;aACjB;;;;;SAMF;QAED,0CAAiB,GAAjB,UAAkB,KAAwB;YACxC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBACpB,OAAO;aACR;YACD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;;YAE9B,IAAM,MAAM,GAAG,EAAE,CAAC;YAClB,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;;YAE1CA,mBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACpE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBACtB,IAAI,EAAE,yBAAyB;gBAC/B,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAC1B,IAAI,EAAE,MAAM;aACY,CAAC,CAAC;SAC7B;QAEO,8CAAqB,GAArB,UAAsB,MAAkB,EAAE,MAAkB;YAA5D,iBAcP;YAbC,MAAM,CAAC,OAAO,CAAC,UAAA,CAAC;gBACd,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;oBAC1B,IAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;oBACxC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;oBACb,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACf,KAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;iBAC9C;qBAAM;oBACL,IAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;oBAC/B,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC;oBACvB,OAAO,CAAC,CAAC,UAAU,CAAC;oBACpB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBAChB;aACF,CAAC,CAAC;SACJ;;QAGM,qCAAY,GAAZ,UAAa,KAAa;YAC/B,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;gBAC1B,IAAI,CAAC,KAAK,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC5E,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,EAAE;oBACjC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,GAAA,CAAC,CAAC;iBACzE;aACF;YAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,GAAA,CAAC,CAAC;YACxE,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC9C,IAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrD,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;SAChC;QAEO,qCAAY,GAAZ,UAAa,SAAc;YACjC,IAAI,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;gBAClC,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aAC3B;YACD,IAAI,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE;gBACxC,OAAO,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;aAC5B;YACD,IAAI,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;gBAClC,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aAC3B;YACD,IAAI,SAAS,EAAE;gBACb,OAAO,SAAS,CAAC;aAClB;SACF;QAEO,+BAAM,GAAN,UAAO,KAAY,EAAE,IAAY;YAAjC,iBAeP;YAdC,OAAO,KAAK,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,IAAI;gBAC5B,IAAI,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;oBAClC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAChB;qBAAM,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC9C,IAAM,QAAQ,GAAG,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;oBAE/C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;wBACvB,IAAI,UAAU,GAAG,IAAI,CAAC;wBACtB,UAAU,CAAC,KAAK,GAAG,QAAQ,CAAC;wBAC5B,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;qBACtB;iBACF;gBACD,OAAO,GAAG,CAAC;aACZ,EAAE,EAAE,CAAC,CAAC;SACR;QAEO,iCAAQ,GAAR,UAAS,IAAY,EAAE,IAAY;YACzC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC;SACpE;;;;gBArZFkB,YAAS,SAAC;oBACT,QAAQ,EAAE,WAAW;oBACrB,srEAAqC;;iBAEtC;;;;uBAEEK,QAAK;wBACLA,QAAK;uBACLA,QAAK;+BACL2B,YAAS,SAAC,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;IC1B7C;;QAoCE,0BACS,QAAkB,EAClB,SAAmB,EACnB,UAAoB,EACpB,WAAqB,EACrB,UAAoB,EACpB,UAAoB,EACpB,OAAiB,EACjB,QAAkB,EAClB,UAAmB,EACnB,SAAe,EACf,OAAgB,EAChB,aAAsB,EACtB,OAAoB,EACpB,SAAe,EACf,QAAc;YAdd,aAAQ,GAAR,QAAQ,CAAU;YAClB,cAAS,GAAT,SAAS,CAAU;YACnB,eAAU,GAAV,UAAU,CAAU;YACpB,gBAAW,GAAX,WAAW,CAAU;YACrB,eAAU,GAAV,UAAU,CAAU;YACpB,eAAU,GAAV,UAAU,CAAU;YACpB,YAAO,GAAP,OAAO,CAAU;YACjB,aAAQ,GAAR,QAAQ,CAAU;YAClB,eAAU,GAAV,UAAU,CAAS;YACnB,cAAS,GAAT,SAAS,CAAM;YACf,YAAO,GAAP,OAAO,CAAS;YAChB,kBAAa,GAAb,aAAa,CAAS;YACtB,YAAO,GAAP,OAAO,CAAa;YACpB,cAAS,GAAT,SAAS,CAAM;YACf,aAAQ,GAAR,QAAQ,CAAM;SAClB;+BACN;KAAA,IAAA;;QAiCC,4BACU,YAA0B,EAC1B,aAA4B,EAC5B,cAA8B,EAC9B,MAAc,EACd,WAAwB;YALlC,iBAKuC;YAJ7B,iBAAY,GAAZ,YAAY,CAAc;YAC1B,kBAAa,GAAb,aAAa,CAAe;YAC5B,mBAAc,GAAd,cAAc,CAAgB;YAC9B,WAAM,GAAN,MAAM,CAAQ;YACd,gBAAW,GAAX,WAAW,CAAa;;YA1BlC,cAAS,GAAQ,IAAI,CAAC;YAGtB,YAAO,GAAG,IAAI,CAAC;YACf,kBAAa,GAAG,UAAU,CAAC;YAC3B,YAAO,GAAqB,IAAI,gBAAgB,EAAE,CAAC;YACnD,wBAAmB,GAAG,IAAIJ,uBAAoB,EAAE,CAAC;YAEjD,aAAQ,GAAG,EAAE,CAAC;YACd,2BAAsB,GAAe,EAAE,CAAC;YAExC,oBAAe,GAAiB,IAAIhB,YAAO,EAAO,CAAC;YAsD5C,cAAS,GAAG,UAAC,MAAe;gBACjC,IAAM,EAAE,GAAG,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrD,MAAM,GAAG,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;gBACpC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,CAAC,MAAM,CAAC;aAC/C,CAAA;YAEM,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,MAAM,CAAC;gBAC5C,KAAI,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;aAC5B,CAAA;YAEM,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,MAAM,CAAC;gBAC7C9B,mBAAgB,CAAC,eAAe,CAAC,MAAM,EAAE,KAAI,CAAC,KAAK,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAI,CAAC,mBAAmB,EAAE+C,gBAAU,CAAC,QAAQ,CAAC,CAAC;aACtH,CAAA;YAEM,YAAO,GAAG,UAAC,KAAU;gBAC1B,KAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACxB,KAAI,CAAC,+BAA+B,CAAC,KAAK,CAAC,CAAC;gBAC5C,IAAI,KAAK,IAAI,KAAI,CAAC,sBAAsB,IAAI,KAAI,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAAE;oBAClF,KAAK,CAAC,OAAO,CAAC,UAAA,IAAI;wBAChB,IAAM,KAAK,GAAG,KAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,KAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,GAAA,CAAC,CAAC;wBAC5F,IAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;wBACpB,IAAI,KAAK,IAAI,EAAE,EAAE;4BACf,IAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;4BACpC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,UAAA,CAAC;gCAChC,IAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gCAC1B,IAAI,EAAE,EAAE;oCACN,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;iCACtB;6BACF,CAAC,CAAC;yBACJ;qBACF,CAAC,CAAC;iBACJ;aACF,CAAA;SAzEsC;;;;QAKvC,qCAAQ,GAAR;YACE/C,mBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAC9CA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAEzC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;YAC/C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,GAAG,CAAC;YAClD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;YACzC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBACvB,IAAI,CAAC,eAAe,EAAE,CAAC;aACxB;iBAAM;gBACL,IAAI,CAAC,sBAAsB,EAAE,CAAC;aAC/B;SAEF;QAED,wCAAW,GAAX;;;;SAIC;QAED,yCAAY,GAAZ;;YAEE,OAAO;gBACL,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE;gBACjC,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW;aACjD,CAAC;SACH;QAEO,0CAAa,GAAb;YACN,IAAM,CAAC,GAAG,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;YACjD,OAAO,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;SAC1B;QAsCM,2CAAc,GAAd,UAAe,GAAQ,EAAE,WAAgB;YAC9C,IAAI,GAAG,CAAC,OAAO,EAAE;gBACf,OAAOA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aAC9F;YAED,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,KAAK,WAAW,EAAE;gBACvD,OAAO,KAAK,CAAC;aACd;YAED,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;gBACvD,OAAO,IAAI,CAAC;aACb;YAED,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,WAAW,EAAE;gBAClE,OAAO,IAAI,CAAC;aACb;iBAAM;gBAAE,OAAO,KAAK,CAAC;aAAE;SACzB;QAEM,wCAAW,GAAX,UAAY,MAAW,EAAE,WAAgB;YAC9C,IAAI,MAAM,CAAC,IAAI,EAAE;gBACf,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aAC1B;iBAAM;gBACL,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;oBACtB,IAAI,EAAE,aAAa;oBACnB,MAAM,EAAE,MAAM,CAAC,UAAU;oBACzB,IAAI,EAAE,WAAW;iBACO,CAAC,CAAC;aAC7B;SACF;QAEM,yCAAY,GAAZ,UAAa,KAAU,EAAE,UAAe,EAAE,OAAY,EAAE,QAAgB;;;YAG7E,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBACtB,IAAI,EAAE,oBAAoB;gBAC1B,MAAM,EAAE,UAAU,CAAC,UAAU;gBAC7B,IAAI,EAAE,QAAQ;aACU,CAAC,CAAC;SAC7B;QAEM,6CAAgB,GAAhB,UAAiB,SAAS;YAC/B,IAAI,SAAS,KAAK,KAAK,IAAI,CAAC,SAAS,EAAE;gBACrC,OAAO,IAAI,CAAC;aACb;YACD,IAAM,CAAC,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YACnE,OAAO,CAAC,CAAC;SACV;QAEO,4CAAe,GAAf;YACN,IAAM,OAAO,GAAqBA,mBAAgB,CAAC,aAAa,CAC9D,IAAI,CAAC,IAAI,CAAC,OAAO,EACjB,IAAI,CAAC,KAAK,CACX,CAAC;YACF,IAAI,CAAC,OAAO,EAAE;gBACZ,OAAO,CAAC,IAAI,CAAC,mCAAmC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACrE,OAAO;aACR;YACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACvB,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC;YAC5D,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC;YAG9E,IAAM,oBAAoB,GAAG,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC;;;;;;;;YAWtE,IACE,IAAI,CAAC,OAAO,CAAC,UAAU;gBACvB,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK,QAAQ,EAC3C;gBACA,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;oBAChD,IAAI,CAAC,UAAU,GAAGA,mBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;iBACvF;qBAAM;oBACL,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC,CAAC;iBAC7D;aACF;iBAAM;gBACL,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,yCAAyC,CAAC,CAAC;aAC3E;SACF;QAEO,mDAAsB,GAAtB;YAAA,iBAiCP;YAhCC,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,qBAAqB,GAAG,KAAK,GAAG,IAAI,CAAC;YACzE,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC;YAC5D,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC;YAC9E,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,KAAK,CAAC;YAE1D,IAAI,OAAO,GAAG,EAAE,CAAC;YACjB,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAC5FG,mBAAS,CAAC,UAAA,MAAM;gBACd,OAAO,GAAG,MAAM,CAAC;gBACjB,OAAO,KAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;aAC5C,CAAC,EACFD,aAAG,CAAC,UAAC,OAAO;gBACV,KAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;aAC3C,CAAC,EACFC,mBAAS,CAAC;gBACR,OAAO,KAAI,CAAC,cAAc,EAAE,CAAC;aAC9B,CAAC,EACFD,aAAG,CAAC,UAAA,IAAI;gBACN,KAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAC;aAC5C,CAAC,CACH,CAAC,SAAS,CAAC,UAAA,IAAI;gBACd,IAAI,IAAI,EAAE;oBACR,KAAI,CAAC,UAAU,GAAG,IAAI,CAAC;iBACxB;aACF,CAAC,CAAC;SACJ;;;;;;;;;;;;;;;;;;;;;;;;;;QA6BO,mDAAsB,GAAtB,UAAuB,MAAqB;YAA5C,iBA2CP;YA1CC,IAAM,SAAS,GAAG,EAAE,CAAC;YACrB,IAAM,aAAa,GAAG,EAAE,CAAC;YACzB,MAAM,CAAC,OAAO,CAAC,UAAA,KAAK;gBAClB,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAIF,mBAAgB,CAAC,aAAa,CAAC,KAAK,CAAC,cAAwB,EAAE,KAAI,CAAC,KAAK,CAAC,EAAE;oBAC3G,aAAa,CAAC,IAAI,CAChB,KAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAC3EG,mBAAS,CAAC,UAAA,OAAO;wBACf,OAAOC,OAAE,CAAC,EAAE,KAAK,OAAA,EAAE,OAAO,SAAA,EAAE,CAAC,CAAC;qBAC/B,CAAC,CAAC,CACN,CAAC;iBACH;aACF,CAAC,CAAC;YAEH,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC9B,OAAOA,OAAE,CAAC,EAAE,CAAC,CAAC;aACf;YAED,OAAOH,aAAQ,CAAC,aAAa,CAAC,CAAC,IAAI,CACjCC,aAAG,CAAC,UAAA,IAAI;gBACN,IAAI,CAAC,OAAO,CAAC,UAAA,aAAa,IACxB,OAAA,aAAa,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,UAAC,MAAW;oBAC3C,SAAS,CAAC,IAAI,CAAC;wBACb,YAAY,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK;wBAC1C,IAAI,EAAE,MAAM,CAAC,KAAK;wBAClB,KAAK,EAAE,MAAM,CAAC,KAAK;wBACnB,IAAI,EAAE,MAAM,CAAC,KAAK;wBAClB,IAAI,EAAE,MAAM,CAAC,IAAI;wBACjB,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC;wBAClC,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC;wBAClC,IAAI,EAAE,MAAM,CAAC,IAAI;wBACjB,UAAU,EAAE,MAAM,CAAC,UAAU;wBAC7B,SAAS,EAAE,MAAM,CAAC,SAAS;wBAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;qBACpB,CAAC,CAAC;iBACJ,CAAC,GAAA,CACH,CAAC;aACH,CAAC,EACFC,mBAAS,CAAC;gBACR,OAAOC,OAAE,CAAC,SAAS,CAAC,CAAC;aACtB,CAAC,CACH,CAAC;SACH;QAEO,+CAAkB,GAAlB,UAAmB,MAAqB,EAAE,OAAY;YAAtD,iBA2BP;YA1BC,MAAM,CAAC,OAAO,CAAC,UAAA,KAAK;gBAClB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;oBAC9B,KAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;iBAC/C;gBACD,IAAIJ,mBAAgB,CAAC,aAAa,CAAC,KAAK,CAAC,cAAwB,EAAE,KAAI,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE;oBACvF,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE;wBAC7B,KAAI,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;qBACpC;yBAAM;wBACL,IAAI,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,KAAK,EAAE,EAAE;4BACrD,IAAI,cAAc,GAAG,EAAE,CAAC;4BACxB,IAAI,KAAK,CAAC,aAAa,KAAK,KAAK,EAAE;gCACjC,cAAc,GAAG,SAAS,CAAC;6BAC5B;iCAAM;gCACL,cAAc,GAAG,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;6BAC7C;4BACD,KAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;4BACtD,KAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;gCAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;gCAClB,SAAS,EAAE,KAAK,CAAC,aAAa;6BAC/B,CAAC,CAAC;yBACJ;6BAAM;4BACL,KAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;yBACzB;qBACF;iBACF;aACF,CAAC,CAAC;SACJ;QAEO,wCAAW,GAAX,UAAY,KAAa;YAC/B,IAAI,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC;YAC1B,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;gBAC5C,QAAQ,GAAGA,mBAAgB,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;aAC5E;YACD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CACvB,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;gBACnB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,KAAK,CAAC,IAAI;gBACrB,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,KAAK,CAAC,QAAQ;gBACrB,cAAc,EAAE,KAAK;gBACrB,aAAa,EAAE,EAAE;gBACjB,cAAc,EAAE,EAAE;gBAClB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;aACzC,CAAC,CACH,CAAC;SACH;QAEO,0CAAa,GAAb,UAAc,KAAa,EAAE,OAAY;YAC/C,IAAI,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC;YAC1B,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;gBAC5C,QAAQ,GAAGA,mBAAgB,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;aAC5E;YACD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;gBACxB,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,SAAS,EAAE,KAAK,CAAC,IAAI;gBACrB,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,YAAY,KAAK,KAAK,CAAC,KAAK,GAAA,CAAC;gBAC5D,KAAK,EAAE,KAAK,CAAC,QAAQ;gBACrB,cAAc,EAAE,KAAK;gBACrB,aAAa,EAAE,EAAE;gBACjB,cAAc,EAAE,EAAE;gBAClB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;aACzC,CAAC,CAAC;SACJ;QAEO,sDAAyB,GAAzB,UAA0B,KAAa,EAAE,cAAsB;YACrE,IAAI,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC;YAC1B,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;gBAC5C,QAAQ,GAAGA,mBAAgB,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;aAC5E;YACD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;gBACxB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,KAAK,CAAC,IAAI;gBACrB,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,KAAK,CAAC,QAAQ;gBACrB,cAAc,EAAE,IAAI;gBACpB,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,cAAc,EAAE,cAAc;gBAC9B,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;aACzC,CAAC,CAAC;SACJ;QAEO,2CAAc,GAAd;YACN,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBACxB,OAAOI,OAAE,CAACJ,mBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;aAC7E;YAED,IAAM,WAAW,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YACzC,IAAI,WAAW,EAAE;gBACf,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;aACnF;YACD,OAAOI,OAAE,CAAC,EAAE,CAAC,CAAC;SACf;QAEO,0CAAa,GAAb;YACN,OAAOJ,mBAAgB,CAAC,aAAa,CACnC,IAAI,CAAC,IAAI,CAAC,WAAW,EACrB,IAAI,CAAC,KAAK,CACX,CAAC;SACH;QAED,6CAAgB,GAAhB,UAAiB,KAAqB;YACpC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE;gBACvC,OAAO;aACR;YAED,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;YACxC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBACzB,IAAM,IAAI,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAClF,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;oBAC9B,IAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;oBACjD,QAAQ,CAAC,KAAK,CAAC,CAAC;iBACjB;gBACD,OAAO;aACR;YAED,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;SAChC;QAEO,sCAAS,GAAT,UAAU,QAAa;YAC7B,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;;;;gBAI1B,IAAM,SAAS,GAAGA,mBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;oBACtB,IAAI,EAAE,iBAAiB;oBACvB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY;oBAC9B,IAAI,EAAE,QAAQ;oBACd,aAAa,EAAE,SAAS;iBACA,CAAC,CAAC;aAC7B;iBAAM;gBACL,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE;oBACnE,UAAU,EAAE,IAAI,CAAC,cAAc;iBAChC,CAAC,CAAC;;;;aAIJ;SACF;QAEO,4DAA+B,GAA/B,UAAgC,IAAS;YAAzC,iBAeP;YAdC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,gBAAgB,GAAA,CAAC,KAAK,SAAS,IAAI,CAAC,IAAI,EAAE;gBAC7E,OAAO;aACR;YAED,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC;YAEjC,IAAI,CAAC,OAAO,CAAC,UAAA,CAAC;gBACZ,IAAM,KAAK,GAAG,EAAE,CAAC;gBACjB,KAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,UAAA,CAAC;oBAC5B,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,IAAIqD,iBAAW,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;iBAC9C,CAAC,CAAC;gBACH,IAAM,SAAS,GAAG,IAAID,eAAS,CAAC,KAAK,CAAC,CAAC;gBACvC,KAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,KAAI,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;aAC1E,CAAC,CAAC;SACJ;QAEM,2CAAc,GAAd,UAAe,KAAU;YAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,KAAK,KAAK,KAAK,GAAA,CAAC,CAAC;SAC1D;QAEM,0CAAa,GAAb,UAAc,QAAa;YAA3B,iBAEN;YADC,OAAO,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,KAAI,CAAC,OAAO,CAAC,GAAA,CAAC,CAAC,EAAE,CAAC;SAClF;QAEM,mDAAsB,GAAtB,UAAuB,QAAa,EAAE,MAAW;YACtD,IAAM,SAAS,GAAG,QAAQ,CAAI,MAAM,CAAC,KAAK,aAAU,CAAC,CAAC;YACtD,OAAO,EAAE,SAAS,KAAK,KAAK,CAAC,CAAC;SAC/B;QAEM,sCAAS,GAAT,UAAU,GAAQ;YACvB,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAM,SAAS,GAAG,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC9C,IAAI,EAAE,GAAG,CAAC,CAAC;YAEX,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxB,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;aAC1B;YAED,IAAI,EAAE,KAAK,CAAC,EAAE;gBACZ,MAAM,GAAG,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;aAC/B;YAED,OAAO,MAAM,CAAC;SACf;QAEM,0CAAa,GAAb,UAAc,UAAkB,EAAE,cAAsB;YAC7D,IAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;YACzC,WAAW,CAAC,OAAO,CAAC,UAAC,GAAQ;gBAC3B,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,IAAI,GAAG,CAAC,KAAK,KAAK,UAAU,EAAE;oBACvD,GAAG,CAAC,KAAK,GAAG,cAAc,CAAC;iBAC5B;aACF,CAAC,CAAC;SACJ;QAEM,wCAAW,GAAX,UAAY,QAAa,EAAE,GAAQ;YACxC,IAAI,OAAO,GAAG,WAAW,CAAC;YAC1B,IAAI,GAAG,CAAC,SAAS,KAAK,QAAQ,IAAI,GAAG,CAAC,SAAS,KAAK,UAAU,IAAI,GAAG,CAAC,SAAS,KAAK,UAAU,EAAE;gBAC9F,OAAO,IAAI,eAAe,CAAC;aAC5B;YAED,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC,EAAE;gBAClC,OAAO,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC,GAAG,GAAG,CAAC;aACjD;YAED,IAAI,GAAG,CAAC,KAAK,EAAE;gBACb,OAAO,IAAI,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC;aAC5B;YAED,OAAO,OAAO,CAAC;SAChB;QAED,6CAAgB,GAAhB,UAAiB,SAAkB;YACjC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAC5B;QAED,2CAAc,GAAd,UAAe,KAAU;YACvB,IAAI,IAAI,CAAC,SAAS,EAAE;;aAEnB;SACF;QAEO,8CAAiB,GAAjB,UAAkB,QAAa;YACrC,QAAQ,QAAQ;gBACd,KAAK,IAAI;oBACP,OAAO,IAAI,CAAC;gBACd,KAAK,KAAK;oBACR,OAAO,KAAK,CAAC;gBACf,KAAK,IAAI;oBACP,OAAO,IAAI,CAAC;gBACd,KAAK,KAAK;oBACR,OAAO,KAAK,CAAC;gBACf,KAAK,IAAI;oBACP,OAAO,IAAI,CAAC;gBACd,KAAK,KAAK;oBACR,OAAO,KAAK,CAAC;gBACf,KAAK,YAAY;oBACf,OAAO,YAAY,CAAC;gBACtB,KAAK,UAAU;oBACb,OAAO,UAAU,CAAC;gBACpB,KAAK,QAAQ;oBACX,OAAO,QAAQ,CAAC;gBAClB,KAAK,WAAW;oBACd,OAAO,WAAW,CAAC;gBACrB;oBACE,OAAO,IAAI,CAAC;;aAEf;SACF;QAEM,uCAAU,GAAV,UAAW,KAAU;YAC1B,IAAI,KAAK,KAAK,KAAK,EAAE;gBACnB,OAAO,KAAK,CAAC;aACd;YACD,OAAO,IAAI,CAAC;SACb;QAEM,qCAAQ,GAAR,UAAS,KAAU;YACxB,IAAI,KAAK,KAAK,KAAK,EAAE;gBACnB,OAAO,KAAK,CAAC;aACd;YACD,OAAO,IAAI,CAAC;SACb;;;;gBArkBFlC,YAAS,SAAC;oBACT,QAAQ,EAAE,eAAe;oBACzB,shYAAyC;;iBAE1C;;;gBA5CuCN,eAAY;gBAClDG,gBAAa;gBAbN4B,iBAAc;gBAAElC,SAAM;gBAadE,cAAW;;;uBA6CzBY,QAAK;wBACLA,QAAK;uBACLA,QAAK;;;IC/DR;;;;;;;;;;;;;QAmDE;YAAA,iBAAiB;YA1BjB,cAAS,GAAG,IAAI,CAAC;YACjB,wBAAmB,GAAG,IAAIuB,uBAAoB,EAAE,CAAC;YACzC,UAAK,GAAG,WAAW,CAAC;YACpB,SAAI,GAAG,cAAc,CAAC;YACtB,UAAK,GAAG,SAAS,CAAC;YAClB,UAAK,GAAG,CAAC,CAAC;YAElB,YAAO,GAAG;gBACR,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,KAAK,EAAE,IAAI,CAAC,KAAK;aAClB,CAAC;YA4CK,cAAS,GAAG,UAAC,MAAe;;;gBAGjC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,CAAC,MAAM,CAAC;aAC/C,CAAA;YAEM,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,MAAM,CAAC;gBAC5C,KAAI,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;aAC5B,CAAA;YAEM,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,MAAM,CAAC;aAC9C,CAAA;YAEM,YAAO,GAAG,UAAC,KAAU;gBAC1B,IAAG,CAAC,KAAK,EACT;oBACE,KAAI,CAAC,OAAO,CAAC,KAAK,GAAC,CAAC,CAAC;iBACtB;gBACD,KAAI,CAAC,2BAA2B,CAAC,KAAI,CAAC,IAAI,EAAE,KAAI,CAAC,OAAO,CAAC,CAAC;aAC3D,CAAA;SAnDgB;QAEjB,sCAAQ,GAAR;YACE9C,mBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAC9CA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAEzC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBACrB,IAAM,UAAU,GAAG,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC9C,IAAI,UAAU,KAAK,QAAQ,EAAE;oBAC3B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iBAChD;qBAAM,IAAI,UAAU,KAAK,QAAQ,EAAE;oBAClC,IAAM,WAAW,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACrF,IAAI,QAAQ,WAAW,CAAC,KAAK,QAAQ,EAAE;wBACrC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;qBAC1C;iBACF;aACF;YAED,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1D,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SAExB;QAEO,yDAA2B,GAA3B,UAA4B,KAAa,EAAE,OAAY;YAC7D,OAAO,CAAC,KAAK,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC;YAC5F,OAAO,CAAC,IAAI,GAAEA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC;YACxF,OAAO,CAAC,KAAK,GAAEA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC;YAC3F,OAAO,CAAC,KAAK,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC;SAC7F;;;;gBAhEFkB,YAAS,SAAC;oBACT,QAAQ,EAAE,gBAAgB;oBAC1B,uyCAA0C;;iBAE3C;;;;uBAEEK,QAAK;wBACLA,QAAK;uBACLA,QAAK;;;ICvBR;;QAgCE,uBACU,YAA0B,EAC1B,WAAwB,EACxB,YAA0B,EAC1B,kBAAsC,EACtC,YAA0B,EAC1B,aAA4B;YANtC,iBAOK;YANK,iBAAY,GAAZ,YAAY,CAAc;YAC1B,gBAAW,GAAX,WAAW,CAAa;YACxB,iBAAY,GAAZ,YAAY,CAAc;YAC1B,uBAAkB,GAAlB,kBAAkB,CAAoB;YACtC,iBAAY,GAAZ,YAAY,CAAc;YAC1B,kBAAa,GAAb,aAAa,CAAe;YATtC,wBAAmB,GAAG,IAAIuB,uBAAoB,EAAE,CAAC;YAyM1C,cAAS,GAAG,UAAC,MAAe;gBACjC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,CAAC,MAAM,CAAC;aAC/C,CAAA;YAEM,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,MAAM,CAAC;gBAC5C,KAAI,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;aAC5B,CAAA;YAEM,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,MAAM,CAAC;gBAC7C9C,mBAAgB,CAAC,eAAe,CAAC,MAAM,EAAE,KAAI,CAAC,KAAK,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAI,CAAC,mBAAmB,EAAE+C,gBAAU,CAAC,QAAQ,CAAC,CAAC;aACtH,CAAA;SA3MI;QAEL,gCAAQ,GAAR;YACE/C,mBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAC9CA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;;YAGzC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YAExC,IAAIA,mBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBAC1D,IAAI,CAAC,aAAa,EAAE,CAAC;aACtB;iBACI;gBACH,IAAI,CAAC,YAAY,EAAE,CAAC;aACrB;SACF;QAEO,qCAAa,GAAb;YAAA,iBAkCP;YAjCCI,OAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CACXF,aAAG,CAAC;gBACF,KAAI,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;;gBAG3B,KAAI,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;;;aAItB,CAAC,EACFA,aAAG,CAAC;gBACF,IAAI,CAAC,KAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBAC1C,KAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAIJ,SAAM,CAAC;iBACpD;gBAED,IAAM,GAAG,GAAG,KAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAElD,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC;;gBAGhB,KAAI,CAAC,IAAI,GAAG,KAAI,CAAC,WAAW,CAAC,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;gBAG9C,GAAG,CAAC,IAAI,GAAG,KAAI,CAAC,IAAI,CAAC;aACtB,CAAC,EACFI,aAAG,CAAC;;gBAEF,KAAI,CAAC,SAAS,GAAG,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC;aAClC,CAAC,CACH,CAAC,SAAS,CAAC;;gBAEVF,mBAAgB,CAAC,iBAAiB,CAAC,KAAI,CAAC,KAAK,CAAC,YAAY,EAAE,KAAI,CAAC,KAAK,CAAC,SAAS,EAAE,KAAI,CAAC,IAAI,EAAE,KAAI,CAAC,WAAW,CAAC,CAAC;aAChH,CAAC,CAAC;SACJ;QAEO,oCAAY,GAAZ;YAAA,iBAsDP;YArDCI,OAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CACXoD,mBAAS,CAAC,UAAA,aAAa;gBACrB,IAAM,YAAY,GAAG,IAAIQ,iBAAY,EAAO,CAAC;gBAC7C,KAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,KAAI,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,KAAI,EAAE,QAAQ,CAAC,CAAC,IAAI,CACnF3D,aAAG,CAAC,UAAA,eAAe;;oBAEjB,KAAI,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,GAAG,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;oBAG7D,KAAI,CAAC,IAAI,CAAC,KAAK,GAAG,eAAe,CAAC;;;;oBAMlC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACxB,YAAY,CAAC,QAAQ,EAAE,CAAC;iBACzB,CAAC,CACH,CAAC,SAAS,EAAE,CAAC;gBAEd,OAAO,YAAY,CAAC,YAAY,EAAE,CAAC;aACpC,CAAC,EACFH,aAAG,CAAC;gBACF,IAAI,CAAC,KAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBAC1C,KAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAIJ,SAAM,CAAC;iBACpD;gBAED,IAAM,GAAG,GAAG,KAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAElD,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC;;gBAGhB,KAAI,CAAC,IAAI,GAAG,KAAI,CAAC,WAAW,CAAC,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;gBAG9C,GAAG,CAAC,IAAI,GAAG,KAAI,CAAC,IAAI,CAAC;aACtB,CAAC,EACFI,aAAG,CAAC;;gBAEF,KAAI,CAAC,SAAS,GAAG,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC;aAClC,CAAC,CACH,CAAC,SAAS,CAAC;;gBAEVF,mBAAgB,CAAC,iBAAiB,CAAC,KAAI,CAAC,KAAK,CAAC,YAAY,EAAE,KAAI,CAAC,KAAK,CAAC,SAAS,EAAE,KAAI,CAAC,IAAI,EAAE,KAAI,CAAC,WAAW,CAAC,CAAC;;;;gBAM/G,IAAI,KAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,EAAE;oBACpC,KAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAI,CAAC,gBAAgB,CAAC;iBACzC;aACF,CAAC,CAAC;SACJ;QAEO,0CAAkB,GAAlB;YACN,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;YACxD,IAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;YAC5D,IAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAEpD,IAAM,QAAQ,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;YAE/D,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAChC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACxB,IAAI,CAAC,cAAc,EAAE,CAAC;;;;;;;;;SAUvB;QAEO,mCAAW,GAAX,UAAY,aAA4B;YAC9C,IAAM,YAAY,GAAmC,EAAE,CAAC;YACxD,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;YAClD,IAAM,YAAY,GAAG,IAAIoD,eAAS,CAAC,YAAY,CAAC,CAAC;YACjD,OAAO,YAAY,CAAC;SACrB;QAEO,uCAAe,GAAf,UAAgB,UAAyB,EAAE,YAA4C;YAAvF,iBAiCP;YAhCC,UAAU,CAAC,OAAO,CAAC,UAAA,KAAK;gBACtB,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;oBACtE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;wBACzE,OAAO,CAAC,IAAI,CAAC,mCAAmC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;qBAChE;iBACF;qBACI;oBACH,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;wBAC9B,KAAI,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;qBACjD;yBACI;wBACH,IAAM,aAAa,GAAGpD,mBAAgB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;wBAC5D,IAAM,SAAS,GAAGA,mBAAgB,CAAC,oBAAoB,CAAC,KAAI,EAAE,KAAK,CAAC,CAAC;wBACrE,IAAM,UAAU,GAAGA,mBAAgB,CAAC,qBAAqB,CAAC,KAAI,EAAE,KAAK,CAAC,CAAC;wBACvE,IAAI,aAAa,KAAK,IAAI,EAAE;4BAC1B,IAAM,UAAU,GAAkBA,mBAAgB,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;4BAC/F,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAIqD,iBAAW,CACzC,KAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EACzD,UAAU,CACX,CAAC;4BACF,IAAIrD,mBAAgB,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gCAC3C,IAAM,YAAY,GAAkBA,mBAAgB,CAAC,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;gCACnG,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,IAAIqD,iBAAW,CAC3C,KAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAC3D,YAAY,CACb,CAAC;6BACH;yBACF;qBAEF;iBACF;aACF,CAAC,CAAC;SACJ;QAEO,oCAAY,GAAZ,UAAa,MAAgB,EAAE,MAAW;YAA1C,iBAaP;YAZC,MAAM,CAAC,OAAO,CAAC,UAAA,KAAK;gBAClB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;oBAC9B,KAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;iBACxC;qBACI;oBACH,KAAK,CAAC,IAAI,GAAG,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC;oBACvC,IAAI,KAAK,CAAC,IAAI,IAAI,UAAU,EAAE;wBAC5B,KAAK,CAAC,KAAK,GAAG,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC;qBAC1C;oBACD,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;iBACxB;aACF,CAAC,CAAC;SACJ;QAED,0CAAkB,GAAlB,UAAmB,KAAa;YAC9B,OAAOrD,mBAAgB,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SAC/D;QAgBM,yCAAiB,GAAjB,UAAkB,eAAuB,EAAE,WAAwB,EAAE,SAAiB;YAC3F,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;YACnD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAChC;QAEM,wCAAgB,GAAhB;YAAA,iBAQN;YAPC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAA,IAAI;gBACzB,KAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACrC,CAAC,CAAC;YAEH,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC;YAExC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;SACrB;;;;gBA/OFkB,YAAS,SAAC;oBACT,QAAQ,EAAE,UAAU;oBACpB,gpDAAoC;;iBAErC;;;gBATCR,eAAY;gBAAEC,cAAW;gBAAEC,eAAY;gBAAEC,qBAAkB;gBAAEC,eAAY;gBAAEC,gBAAa;;;uBAWvFQ,QAAK;wBACLA,QAAK;uBACLA,QAAK;;;IC1BR;;QAsBE;SAAiB;QAEjB,oCAAQ,GAAR,eAAa;;;;gBAZdL,YAAS,SAAC;oBACT,QAAQ,EAAE,cAAc;oBACxB,sFAAwC;;iBAEzC;;;;uBAEEK,QAAK;wBACLA,QAAK;uBACLA,QAAK;;;;QCQR;SAIC;yBAAA;KAAA,IAAA;;;;;;;;;;;;;;;;;;;;QAwEC,0BACU,WAAwB,EACxB,aAAmC,EACnC,YAA0B,EAC1B,MAAc;YAJxB,iBASC;YARS,gBAAW,GAAX,WAAW,CAAa;YACxB,kBAAa,GAAb,aAAa,CAAsB;YACnC,iBAAY,GAAZ,YAAY,CAAc;YAC1B,WAAM,GAAN,MAAM,CAAQ;YA/DxB,wBAAmB,GAAG,IAAIuB,uBAAoB,EAAE,CAAC;YACjD,wBAAmB,GAAW,IAAI,CAAC;YACnC,kBAAa,GAAG,+BAA+B,CAAC;YAChD,oBAAe,GAAG,iCAAiC,CAAC;YACpD,oBAAe,GAAG,0BAA0B,CAAC;YAC7C,gBAAW,GAAG,sBAAsB,CAAC;YACrC,iBAAY,GAAG,KAAK,CAAC;YACrB,eAAU,GAAG,KAAK,CAAC;YACnB,kBAAa,GAAU,EAAE,CAAC;YAC1B,QAAG,GAAa,EAAE,CAAC;YACnB,iBAAY,GAAG,IAAI,CAAC;YACpB,aAAQ,GAAU,EAAE,CAAC;YAEd,iBAAY,GAAqB;gBAEtC,WAAW,EAAE,CAAC;gBACd,WAAW,EAAE,OAAO;gBACpB,iBAAiB,EAAE;oBACjB,KAAK;oBACL,MAAM;oBACN,KAAK;oBACL,KAAK;oBACL,KAAK;oBACL,KAAK;oBACL,MAAM;oBACN,KAAK;oBACL,MAAM;oBACN,KAAK;oBACL,KAAK;oBACL,MAAM;oBACN,KAAK;iBACN;aACF,CAAC;YAEK,kBAAa,GAAkB;gBACpC,IAAI,EAAE,MAAM;gBACZ,cAAc,EAAE,CAAC;aAClB,CAAC;YAmEK,cAAS,GAAG,UAAC,MAAe;gBACjC,IAAM,EAAE,GAAG,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrD,MAAM,GAAG,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;gBACpC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,CAAC,MAAM,CAAC;aAC/C,CAAC;YAEK,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,MAAM,CAAC;gBAC5C,KAAI,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;aAC5B,CAAC;YAEK,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,MAAM,CAAC;gBAC7C9C,mBAAgB,CAAC,eAAe,CAC9B,MAAM,EACN,KAAI,CAAC,KAAK,EACV,KAAI,CAAC,IAAI,CAAC,KAAK,EACf,KAAI,CAAC,mBAAmB,EACxB+C,gBAAU,CAAC,QAAQ,CACpB,CAAC;aACH,CAAC;YA3DA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC,mBAAmB,CAAC;YAClF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,aAAa,CAAC;YACnE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,eAAe,CAAC;SACxE;QAED,mCAAQ,GAAR;YACE/C,mBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAC9CA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;;;;YAQzC,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;gBAC3B,IAAI,CAAC,YAAY,CAAC,iBAAiB,GAAI,IAAI,CAAC,IAAI;qBAC7C,aAAqC,CAAC;aAC1C;YAED,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBACzB,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;aACvD;YAED,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBACzB,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;aACvD;YAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC;YAElD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBAC1B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;aAC3B;YAED,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;aACtC;SACF;QAwBD,8CAAmB,GAAnB,UAAoB,IAAe,EAAE,IAAY;YAC/C,OAAOA,mBAAgB,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SACzD;QAED,oCAAS,GAAT,UAAU,CAAe;;;;YAIvB,IAAI,CAAC,CAAC,SAAS,KAAK,QAAQ,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAKiE,kBAAa,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAKA,kBAAa,CAAC,cAAc,CAAC,EAAE;gBAC5H,OAAO;aACR;YAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;gBACtD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;aACzC;YAED,IAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAe,CAAC;YACtC,IAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,GAAA,CAAC,CAAC;YACxH,IAAI,CAAC,CAAC,SAAS,KAAK,QAAQ,EAAE;;gBAE5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;gBACtB,OAAO,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBAEhC,IAAI,iBAAiB,KAAK,CAAC,CAAC,EAAE;oBAC5B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;iBAC9D;qBAAM;oBACL,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC/C;aAEF;iBAAM,IAAI,CAAC,CAAC,SAAS,KAAK,QAAQ,EAAE;gBACnC,IAAI,iBAAiB,KAAK,CAAC,CAAC,EAAE;oBAC5B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;iBACjE;aACF;YAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBACtB,IAAI,EAAE,mBAAmB;gBACzB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS;gBAC3B,KAAK,EAAE,CAAC;gBACR,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE;aACrB,CAAC,CAAC;SAC7B;QAEO,mDAAwB,GAAxB,UAAyB,SAAiC;YAChE,IAAI,SAAS,CAAC,eAAe,EAAE;gBAC7B,SAAS,CAAC,mBAAmB,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;aACnF;YAED,IAAI,SAAS,CAAC,eAAe,EAAE;gBAC7B,SAAS,CAAC,mBAAmB,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;aACnF;iBACI;gBACH,SAAS,CAAC,mBAAmB,GAAG,CAAC,CAAC;aACnC;YAED,OAAO,SAAS,CAAC;SAClB;QAEO,4CAAiB,GAAjB,UAAkB,UAAkB;YAC1C,IAAI,oBAAoB,GAAW,CAAC,CAAC;YACrC,IAAI,UAAU,GAAW,CAAC,CAAC;YAC3B,IAAI,QAAQ,GAAG,GAAG,CAAC;;YAGnB,IAAM,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;;YAGnD,IAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAChE,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE;gBAC/B,IAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAEhF,IAAI,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,EAAE;;oBAElC,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;oBAClC,oBAAoB,GAAG,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC/D;qBACI;oBACH,oBAAoB,GAAG,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC/D;gBAED,QAAQ,QAAQ,CAAC,WAAW,EAAE;oBAC5B,KAAK,GAAG;wBACN,UAAU,GAAG,oBAAoB,CAAA;wBACjC,MAAM;oBACR,KAAK,IAAI;wBACP,UAAU,GAAG,oBAAoB,GAAG,IAAI,CAAA;wBACxC,MAAM;oBACR,KAAK,IAAI;wBACP,UAAU,GAAG,oBAAoB,GAAG,OAAO,CAAA;wBAC3C,MAAM;oBACR,KAAK,IAAI;wBACP,UAAU,GAAG,oBAAoB,GAAG,UAAU,CAAA;wBAC9C,MAAM;iBACT;aACF;iBACI;;gBAEH,UAAU,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;aACxC;YAED,OAAO,UAAU,CAAC;SACnB;QAED,6CAAkB,GAAlB,UAAmB,CAAc;;YAE/B,IAAM,EAAE,GAAG,IAAI,CAAC;YAChB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,UAAC,IAAc;gBAC7B,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;oBACvD,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;wBAC1B,IAAM,QAAM,GAAG,IAAI,UAAU,EAAE,CAAC;wBAChC,QAAM,CAAC,MAAM,GAAG,UAAU,EAAE;4BAC1B,IAAI,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE;gCAC9B,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;oCAC9B,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oCACtB,EAAE,CAAC,aAAa,CAAC,IAAI,iCAAM,IAAI,KAAE,GAAG,EAAU,QAAM,CAAC,MAAM,IAAG,CAAC;iCAChE;6BACF;yBACF,CAAA;wBACD,QAAM,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;qBACpC;iBACF;aACF,CAAC,CAAC;;YAGH,IAAI,UAAU,GAAmBjE,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAEzG,IAAI,EAAE,UAAU,YAAYkE,iBAAc,CAAC,EAAE;gBAC3C,OAAO,CAAC,KAAK,CAAC,4BAA4B,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,eAAe,EAAE,UAAU,CAAC,CAAC;gBACrG,UAAU,GAAG,IAAIA,iBAAc,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;aAC5C;YAED,IAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YAEvC,CAAC,CAAC,IAAI,GAAG,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC;YAC9B,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;SAC3F;QAED,mCAAQ,GAAR,UAAS,CAAc;YAAvB,iBAoCC;;YAlCC,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CACnC,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAA,CACtC,CAAC;YAEF,IAAI,KAAK,IAAI,CAAC,EAAE;gBACd,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC/B,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;aAC1D;YAED,IAAI,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE;gBACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;oBACtB,IAAI,EAAE,0BAA0B;oBAChC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC;oBACrC,IAAI,EAAE,CAAC;iBACiB,CAAC,CAAC;aAC7B;iBACI;gBACH,IAAM,MAAM,GAAe,CAAC,CAAC,KAAK,CAAC,CAAC,CAAe,CAAC;;gBAGpD,CAAC,CAAC,IAAI,GAAG;oBACP,EAAE,EAAE,MAAM,CAAC,KAAK;iBACjB,CAAC;gBACF,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAC1B,eAAe,EACf,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAC3C,CAAC;gBAEF,IAAI,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;oBAChC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,UAAC,IAAc;wBAC7B,KAAI,CAAC,aAAa,GAAG,KAAI,CAAC,aAAa,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,GAAA,CAAC,CAAC;qBACzE,CAAC,CAAC;iBACJ;aACF;SACF;QAED,mCAAQ,GAAR,UAAS,IAAgB;YACvB,IAAI,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE;gBACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;oBACtB,IAAI,EAAE,0BAA0B;oBAChC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC;oBACrC,IAAI,EAAE,IAAI;iBACc,CAAC,CAAC;aAC7B;SACF;QAED,6CAAkB,GAAlB,UAAmB,CAAc;YAAjC,iBAsEC;YArEC,IAAM,EAAE,GAAG,IAAI,CAAC;YAEhB,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;;gBAE/B,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,UAAO,IAAc;;;;;qCAC/B,IAAI,CAAC,OAAO,EAAZ,wBAAY;gCACR,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;gCAChC,MAAM,CAAC,MAAM,GAAG,UAAU,EAAE;;oCAE1B,IAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;oCACzC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;;oCAEvC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oCAC3B,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC;oCAEnD,IAAI,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE;;wCAEhC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;4CACpB,IAAI,EAAE,2BAA2B;4CACjC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC;4CACpC,IAAI,EAAE,EAAE,CAAC,QAAQ;yCACO,CAAC,CAAC;qCAC7B;iCACF,CAAC;gCACF,qBAAM,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAA;;gCAAxC,SAAwC,CAAC;;;;;iBAE5C,CAAA,GAAA,CAAC,CAAC;aACJ;iBACI;;gBAEH,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;;oBAEzB,IAAM,uBAAuB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,KAAK,CAAC;;oBAGrE,IAAI,uBAAuB,KAAK,IAAI,EAAE;wBACpC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,UAAC,IAAc;;4BAE7B,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;gCACvD,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;oCAC1B,IAAM,SAAS,GAAG,KAAI,CAAC,wBAAwB,CAAC,KAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oCACvE,IAAI,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,mBAAmB,EAAE;wCAC7C,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC;6CAC/C,IAAI,CAAC1B,cAAI,CAAC,CAAC,CAAC,CAAC;6CACb,SAAS,CAAC,UAAA,YAAY;4CACrB,KAAI,CAAC,MAAM,CAAC,GAAG,CAAC;gDACd,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC;gDAC5B,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;;gDAG9B,IAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;;gDAEzC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gDAE3B,IAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;gDAChC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;6CACpC,CAAC,CAAC;4CACH,OAAO,CAAC,GAAG,CAAC,2BAAyB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,OAAI,CAAC,CAAC;yCACjF,CAAC,CAAC;qCACN;iCACF;6BACF;yBACF,CAAC,CAAA;qBACH;;oBAGD,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;iBAChD;aACF;SACF;QAED,qCAAU,GAAV;YACE,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;SAC1D;;;;gBA7YFtB,YAAS,SAAC;oBACT,QAAQ,EAAE,aAAa;oBACvB,okFAAuC;;iBAExC;;;gBAfCP,cAAW;gBAAgBwD,uBAAoB;gBAAlC9C,eAAY;gBAtBQ+C,SAAM;;;uBAuCtC7C,QAAK;wBACLA,QAAK;uBACLA,QAAK;kCACL2B,YAAS,SAAC,iBAAiB;;;IC3C9B;;QAiDE,mCACU,aAA4B,EAC5B,kBAAsC,EACtC,eAAgC;YAH1C,iBAIK;YAHK,kBAAa,GAAb,aAAa,CAAe;YAC5B,uBAAkB,GAAlB,kBAAkB,CAAoB;YACtC,oBAAe,GAAf,eAAe,CAAiB;YAxB1C,wBAAmB,GAAG,IAAIJ,uBAAoB,EAAE,CAAC;;;YAIjD,kCAA6B,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,+BAA+B,CAAC,CAAC;;YAEhG,0CAAqC,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,uCAAuC,CAAC,CAAC;;YAEhH,mCAA8B,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC;;;;;YAOlG,UAAK,GAAe,EAAE,CAAC;YACvB,mBAAc,GAAQ,EAAE,CAAC;YACzB,cAAS,GAAG,KAAK,CAAC;YAClB,cAAS,GAAG,IAAI,CAAC;YACjB,mBAAc,GAAY,KAAK,CAAC;YA4KzB,cAAS,GAAG,UAAC,MAAe;gBACjC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,CAAC,MAAM,CAAC;aAC/C,CAAA;YAEM,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,MAAM,CAAC;gBAC5C,KAAI,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;aAC5B,CAAA;YAEM,eAAU,GAAG,UAAC,MAAe;gBAClC,KAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,MAAM,CAAC;gBAC7C9C,mBAAgB,CAAC,eAAe,CAAC,MAAM,EAAE,KAAI,CAAC,KAAK,EAAE,KAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAI,CAAC,mBAAmB,EAAE+C,gBAAU,CAAC,QAAQ,CAAC,CAAC;aACtH,CAAA;SAlLI;QAEL,4CAAQ,GAAR;YACE/C,mBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAC9CA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;;YAGzC,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;gBAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;aACjG;YAED,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;QAEO,8CAAU,GAAV;YAAA,iBAuGP;YAtGC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;;YAGhB,IAAI,UAAU,GAAG,IAAI,CAAC;YACtB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;gBACrB,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;aAClD;;YAGD,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;;YAGjF,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC3B,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,KAAK,CAAC,EAAE;gBAClC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;aACvB;YAED,IAAI;gBAEFI,OAAE,CAAC,IAAI,CAAC;qBACL,IAAI,CACHoD,mBAAS,CAAC;;oBAER,OAAO,KAAI,CAAC,eAAe,CAAC,uBAAuB,CACjD,KAAI,CAAC,IAAI,CAAC,YAAY,EACtB,KAAI,CAAC,6BAA6B,EAClC,MAAM,CAAC,KAAI,CAAC,cAAc,CAAC,CAC5B,CAAA;iBACF,CAAC,EACFtD,aAAG,CAAC,UAAA,UAAU;oBACZ,IAAI,UAAU,EAAE;wBACd,UAAU,CAAC,OAAO,CAAC,UAAC,MAAW;4BAC7B,IAAM,KAAK,GAAG,KAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;4BAC1C,IAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;4BACjD,IAAM,WAAW,GAAG,UAAU,CAAC,KAAK,IAAI,KAAK,CAAC;4BAC9C,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gCACd,IAAI,EAAE,WAAW;gCACjB,IAAI,EAAEF,mBAAgB,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;gCAC/C,OAAO,EAAE,UAAU,CAAC,OAAO;gCAC3B,cAAc,EAAE,MAAM;gCACtB,QAAQ,EAAE,UAAU,CAAC,IAAI;gCACzB,KAAK,EAAE,UAAC,CAAC;oCACP,KAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;iCAC1B;6BACF,CAAC,CAAC;4BAEH,IAAM,UAAU,GAAG;gCACjB,MAAM,EAAE,EAAE;gCACV,QAAQ,EAAE,EAAE;gCACZ,cAAc,EAAE,EAAE;6BACnB,CAAC;;yBAEH,CAAC,CAAC;qBACJ;yBACI;wBACH,OAAO,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;qBACpE;iBACF,CAAC,EACFK,aAAG,CAAC;oBACF,IAAI,CAAC,KAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE;;;wBAGxC,IAAI,CAAC,KAAI,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE;4BACxC,IAAM,MAAM,GAAG;gCACb,oBAAoB,EAAE,KAAI,CAAC,IAAI,CAAC,YAAY;6BAC7C,CAAC;4BAEF,OAAO,KAAI,CAAC,aAAa,CAAC,SAAS,CAAC,KAAI,CAAC,qCAAqC,EAAE,MAAM,CAAC,CAAC,IAAI,CAC1FA,aAAG,CAAC,UAAA,GAAG;gCACL,IAAI,GAAG,CAAC,IAAI,EAAE;oCACZL,mBAAgB,CAAC,gBAAgB,CAAC,cAAc,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAI,CAAC,KAAK,CAAC,CAAC;oCAC9EA,mBAAgB,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,KAAI,CAAC,KAAK,CAAC,CAAC;oCAClFA,mBAAgB,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,KAAI,CAAC,KAAK,CAAC,CAAC;oCAElF,KAAI,CAAC,eAAe,CAAC,wBAAwB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;iCACzD;6BACF,CAAC,CACH,CAAA;yBACF;6BAAM;;4BAEL,IAAM,YAAY,GAAG;gCACnB,oBAAoB,EAAE,KAAI,CAAC,IAAI,CAAC,YAAY;gCAC5C,YAAY,EAAE,UAAU;6BACzB,CAAC;4BAEF,KAAI,CAAC,aAAa,CAAC,SAAS,CAAC,KAAI,CAAC,8BAA8B,EAAE,YAAY,CAAC,CAAC,IAAI,CAClFK,aAAG,CAAC,UAAA,GAAG;gCACL,KAAI,CAAC,eAAe,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;gCACnD,IAAI,GAAG,CAAC,IAAI,EAAE;oCACZ,KAAI,CAAC,eAAe,CAAC,wBAAwB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;iCACzD;6BACF,CAAC,CACH,CAAA;yBACF;qBACF;iBACF,CAAC,CAEH,CAAC,SAAS,EAAE,CAAC;aAEjB;YAAC,OAAO,KAAK,EAAE;gBACd,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;aACjC;SACF;QAED,+CAAW,GAAX,UAAY,MAAW;YAAvB,iBA+BC;;;YA5BC,IAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACjD,QAAQ,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE;gBACnC,KAAK,UAAU;oBACb,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;oBAC9B,IAAM,IAAE,GAAG,IAAI,CAAC,KAAK,CAAC;oBACtB,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,EAAE;wBACtC,UAAU,CAAC;4BACT,IAAE,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC;yBAC3B,EAAE,GAAG,CAAC,CAAC;qBACT;oBACD,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;oBAChD,IAAI,CAAC,eAAe,CAAC,wBAAwB,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;oBACtE,MAAM;gBACR,KAAK,MAAM;oBACP,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;oBAC9B,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC1C,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,UAAA,GAAG;wBACnH,KAAI,CAAC,UAAU,EAAE,CAAC;wBAClB,KAAI,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;wBAC/B,IAAI,GAAG,EAAE;4BACP,KAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,KAAI,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,CAAC;yBAC/D;qBACF,CAAC,CAAC;oBACL,MAAM;gBACR;oBACE,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;oBAClD,MAAM;aACT;SACF;;QAKO,kDAAc,GAAd,UAAe,MAAW;YAChC,IAAI,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAChD,IAAI,SAAS,EAAE;gBACb,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACtC,IAAM,KAAK,GAAGL,mBAAgB,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBACpE,OAAO,KAAK,CAAC;aACd;iBAAM;gBACL,OAAO,MAAM,CAAC,IAAI,CAAC;aACpB;SACF;;QAkBD,kDAAc,GAAd;YACE,IAAM,CAAC,GAAGA,mBAAgB,CAAC,cAAc,EAAE,CAAC;YAC5C,OAAO,CAAC,CAAC;SACV;QAED,gDAAY,GAAZ,UAAa,SAAS;YACpB,IAAI,SAAS,KAAK,KAAK,IAAI,CAAC,SAAS,EAAE;gBACrC,OAAO,IAAI,CAAC;aACb;YACD,IAAM,CAAC,GAAGA,mBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YACnE,OAAO,CAAC,CAAC;SACV;QAED,kDAAc,GAAd,UAAe,QAAgB;YAC7B,IAAI,QAAQ,IAAI,EAAE,EAAE;gBAClB,QAAQ,GAAG,MAAM,CAAC;aACnB;YACD,OAAOA,mBAAgB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;SAClD;;;;gBA3OFkB,YAAS,SAAC;oBACT,QAAQ,EAAE,sBAAsB;oBAChC,yjDAAgD;;iBAEjD;;;gBAR+BH,gBAAa;gBAAEF,qBAAkB;gBAAEmC,kBAAe;;;uBAU/EzB,QAAK;wBACLA,QAAK;uBACLA,QAAK;;;IC1BR;IA0CA;;QAME;SAAiB;QAEjB,qCAAS,GAAT,UAAU,IAAY;YACpB,IAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAEvC,IAAM,IAAI,GAAG;gBACX,OAAO,EAAE,gBAAgB;gBACzB,QAAQ,EAAE,iBAAiB;gBAC3B,KAAK,EAAE,cAAc;gBACrB,MAAM,EAAE,eAAe;gBACvB,QAAQ,EAAE,kBAAkB;gBAC5B,KAAK,EAAE,cAAc;gBACrB,YAAY,EAAE,oBAAoB;gBAClC,YAAY,EAAE,oBAAoB;gBAClC,KAAK,EAAE,kBAAkB;gBACzB,SAAS,EAAE,kBAAkB;gBAC7B,UAAU,EAAE,kBAAkB;gBAC9B,WAAW,EAAE,kBAAkB;gBAC/B,OAAO,EAAE,kBAAkB;gBAC3B,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,eAAe;gBACvB,KAAK,EAAE,cAAc;gBACrB,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,eAAe;gBACvB,MAAM,EAAE,eAAe;gBACvB,IAAI,EAAE,aAAa;gBACnB,QAAQ,EAAE,iBAAiB;gBAC3B,iBAAiB,EAAE,yBAAyB;gBAC5C,gBAAgB,EAAE,yBAAyB;gBAC3C,kBAAkB,EAAE,yBAAyB;gBAC7C,aAAa,EAAE,sBAAsB;gBACrC,OAAO,EAAE,gBAAgB;gBACzB,SAAS,EAAE,mBAAmB;gBAC9B,iBAAiB,EAAE,wBAAwB;gBAC3C,wBAAwB,EAAE,wBAAwB;gBAClD,MAAM,EAAE,wBAAwB;gBAChC,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,cAAc;gBACtB,OAAO,EAAE,cAAc;gBACvB,IAAI,EAAE,cAAc;gBACpB,KAAK,EAAE,cAAc;gBACrB,QAAQ,EAAE,cAAc;gBACxB,MAAM,EAAE,cAAc;gBACtB,GAAG,EAAE,cAAc;gBACnB,IAAI,EAAE,cAAc;gBACpB,GAAG,EAAE,cAAc;gBACnB,QAAQ,EAAE,cAAc;gBACxB,QAAQ,EAAE,kBAAkB;gBAC5B,WAAW,EAAE,oBAAoB;gBACjC,KAAK,EAAE,cAAc;gBACrB,UAAU,EAAE,kBAAkB;gBAC9B,UAAU,EAAE,mBAAmB;gBAC/B,OAAO,EAAE,iBAAiB;gBAC1B,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,gBAAgB;gBACzB,gBAAgB,EAAE,yBAAyB;;aAE5C,CAAC;YAEF,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;SACpB;QAED,+CAAmB,GAAnB,UAAoB,aAAqB;YACvC,OAAOvB,mBAAgB,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;SAC5D;QAED,yCAAa,GAAb,UACE,wBAAkD,EAClD,YAAmC,EACnC,KAAU,EACV,KAAU,EACV,IAAe;;;;YAMf,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gBACxC,OAAO;aACR;YAED,IAAI,gBAAgB,CAAC;YACrB,IAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACjD,IAAI,aAAa,EAAE;gBACjB,gBAAgB,GAAG,wBAAwB,CAAC,uBAAuB,CACjE,aAAa,CACd,CAAC;aACH;iBAAM;gBACL,gBAAgB,GAAG,wBAAwB,CAAC,uBAAuB,CACjE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAC1B,CAAC;aACH;YAED,IAAM,gBAAgB,GAAG,YAAY,CAAC,gBAAgB,CAAC;YACvD,gBAAgB,CAAC,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,EAAE;gBACT,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBACpC,SAAS;aACV;YACD,IAAM,YAAY,GAAG,gBAAgB,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;YACvE,YAAY,CAAC,QAAuB,CAAC,IAAI,GAAG,KAAK,CAAC;YAClD,YAAY,CAAC,QAAuB,CAAC,KAAK,GAAG,KAAK,CAAC;YACnD,YAAY,CAAC,QAAuB,CAAC,IAAI,GAAG,IAAI,CAAC;;SAEnD;QAED,wDAA4B,GAA5B,UACE,wBAAkD,EAClD,QAAa,EACb,MAAW,EACX,KAAU,EACV,KAAU,EACV,WAAmB;YAEnB,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gBACxC,OAAO;aACR;YAED,IAAI,YAAY,CAAC;YACjB,IAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;;YAEjD,IAAI,aAAa,EAAE;gBACjB,YAAY,GAAG,wBAAwB;qBACpC,uBAAuB,CAAC,aAAa,CAAC;qBACtC,MAAM,CAAC,QAAQ,CAAC,CAAC;aACrB;iBAAM;gBACL,YAAY,GAAG,wBAAwB;qBACpC,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;qBAClD,MAAM,CAAC,QAAQ,CAAC,CAAC;aACrB;;YAGD,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;;YAGzC,IAAM,OAAO,GAAI,YAAY,CAAC,QAAiC;iBAC5D,SAAS,CAAC,CAAC,CAAgB,CAAC;;YAG/B,IAAM,eAAe,GAAQ,QAAQ,CAAC,aAAa,CAAC,GAAG,GAAG,WAAW,CAAC,CAAC;YACvE,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAEpC,YAAY,CAAC,QAAuB,CAAC,IAAI,GAAG,KAAK,CAAC;YAClD,YAAY,CAAC,QAAuB,CAAC,KAAK,GAAG,KAAK,CAAC;YACpD,OAAO,YAAY,CAAC;SACrB;;;;;gBArJFQ,aAAU,SAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;;IC9CD;;QA4BE,+BACU,wBAAkD,EAClD,iBAAoC;;;;YADpC,6BAAwB,GAAxB,wBAAwB,CAA0B;YAClD,sBAAiB,GAAjB,iBAAiB,CAAmB;SAG1C;QAEJ,wCAAQ,GAAR;YACE,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,IAAI,CAAC,wBAAwB,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;;;;;;;;;SAS3H;QAED,2CAAW,GAAX;;;SAGC;;;;gBApCFU,YAAS,SAAC;oBACT,QAAQ,EAAE,kBAAkB;oBAC5B,gJAA4C;;iBAE7C;;;gBAjBwDmD,2BAAwB;gBASxE,iBAAiB;;;wBAWvB9C,QAAK;wBACLA,QAAK;uBACLA,QAAK;+BAEL2B,YAAS,SAAC,qBAAqB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;ICzBpD;;QAgUA;;;;;gBAtNCoB,WAAQ,SAAC;oBACR,YAAY,EAAE;wBACZ,uBAAuB;wBACvB,qBAAqB;wBACrB,qBAAqB;wBACrB,yBAAyB;wBACzB,oBAAoB;wBACpB,gBAAgB;wBAChB,YAAY;wBACZ,UAAU;wBACV,aAAa;wBACb,SAAS;wBACT,4BAA4B;wBAC5B,0BAA0B;wBAC1B,iBAAiB;wBACjB,kBAAkB;wBAClB,eAAe;wBACf,uBAAuB;wBACvB,sBAAsB;wBACtB,qBAAqB;wBACrB,yBAAyB;wBACzB,4BAA4B;wBAC5B,gBAAgB;wBAChB,iBAAiB;wBACjB,cAAc;wBACd,eAAe;wBACf,kBAAkB;wBAClB,cAAc;wBACd,oBAAoB;wBACpB,mBAAmB;wBACnB,kBAAkB;wBAClB,aAAa;wBACb,cAAc;wBACd,qBAAqB;wBACrB,eAAe;wBACf,cAAc;wBACd,aAAa;wBACb,eAAe;wBACf,eAAe;wBACf,aAAa;wBACb,eAAe;wBACf,qBAAqB;wBACrB,iBAAiB;wBACjB,yBAAyB;wBACzB,sBAAsB;wBACtB,gBAAgB;wBAChB,mBAAmB;wBACnB,wBAAwB;wBACxB,aAAa;wBACb,cAAc;wBACd,kBAAkB;wBAClB,oBAAoB;wBACpB,cAAc;wBACd,kBAAkB;wBAClB,mBAAmB;wBACnB,iBAAiB;wBACjB,aAAa;wBACb,gBAAgB;wBAChB,yBAAyB;qBAC1B;oBACD,OAAO,EAAE;wBACPC,cAAW;wBACXC,qCAAqB;wBACrBC,mBAAY;wBACZC,eAAY;wBACZC,iBAAW;wBACXC,yBAAmB;wBACnBC,4BAAe;wBACfC,oCAAiB;wBACjBC,uCAAkB;wBAClBC,iCAAc;wBACdC,iCAAa;wBACbC,+BAAY;wBACZC,qCAAc;wBACdC,uCAAgB;wBAChBC,qCAAe;wBACfC,+BAAY;wBACZC,2BAAU;wBACVC,4BAAW;wBACXC,uCAAgB;wBAChBC,2BAAU;wBACVC,+BAAY;wBACZC,+BAAY;wBACZC,gCAAa;wBACbC,6BAAW;wBACXC,+BAAY;wBACZC,iCAAc;wBACdC,iCAAc;wBACdC,6BAAW;wBACXC,yCAAiB;wBACjBC,iDAAsB;wBACtBC,qCAAe;wBACfC,mCAAc;wBACdC,mCAAc;wBACdC,iCAAa;wBACbC,+BAAY;wBACZC,gCAAa;wBACbC,cAAW;wBACXC,wBAAqB;qBACtB;oBACD,OAAO,EAAE;wBACP,uBAAuB;wBACvB,qBAAqB;wBACrB,qBAAqB;wBACrB,yBAAyB;wBACzB,oBAAoB;wBACpB,gBAAgB;wBAChB,YAAY;wBACZ,UAAU;wBACV,aAAa;wBACb,SAAS;wBACT,4BAA4B;wBAC5B,0BAA0B;wBAC1B,iBAAiB;wBACjB,kBAAkB;wBAClB,eAAe;wBACf,sBAAsB;wBACtB,qBAAqB;wBACrB,yBAAyB;wBACzB,uBAAuB;wBACvB,4BAA4B;wBAC5B,gBAAgB;wBAChB,iBAAiB;wBACjB,cAAc;wBACd,eAAe;wBACf,kBAAkB;wBAClB,cAAc;wBACd,oBAAoB;wBACpB,mBAAmB;wBACnB,kBAAkB;wBAClB,aAAa;wBACb,cAAc;wBACd,qBAAqB;wBACrB,eAAe;wBACf,cAAc;wBACd,aAAa;wBACb,eAAe;wBACf,eAAe;wBACf,aAAa;wBACb,eAAe;wBACf,qBAAqB;wBACrB,iBAAiB;wBACjB,yBAAyB;wBACzB,sBAAsB;wBACtB,gBAAgB;wBAChB,mBAAmB;wBACnB,wBAAwB;wBACxB,aAAa;wBACb,cAAc;wBACd,kBAAkB;wBAClB,oBAAoB;wBACpB,cAAc;wBACd,kBAAkB;wBAClB,mBAAmB;wBACnB,iBAAiB;wBACjB,aAAa;wBACb,gBAAgB;wBAChB,yBAAyB;qBAC1B;oBACD,eAAe,EAAE;wBACf,4BAA4B;wBAC5B,0BAA0B;wBAC1B,iBAAiB;wBACjB,kBAAkB;wBAClB,eAAe;wBACf,sBAAsB;wBACtB,qBAAqB;wBACrB,yBAAyB;wBACzB,uBAAuB;wBACvB,4BAA4B;wBAC5B,gBAAgB;wBAChB,iBAAiB;wBACjB,cAAc;wBACd,eAAe;wBACf,kBAAkB;wBAClB,cAAc;wBACd,oBAAoB;wBACpB,mBAAmB;wBACnB,kBAAkB;wBAClB,aAAa;wBACb,cAAc;wBACd,qBAAqB;wBACrB,eAAe;wBACf,cAAc;wBACd,aAAa;wBACb,eAAe;wBACf,eAAe;wBACf,aAAa;wBACb,eAAe;wBACf,qBAAqB;wBACrB,iBAAiB;wBACjB,yBAAyB;wBACzB,sBAAsB;wBACtB,gBAAgB;wBAChB,mBAAmB;wBACnB,wBAAwB;wBACxB,aAAa;wBACb,cAAc;wBACd,kBAAkB;wBAClB,oBAAoB;wBACpB,cAAc;wBACd,kBAAkB;wBAClB,mBAAmB;wBACnB,iBAAiB;wBACjB,aAAa;wBACb,gBAAgB;wBAChB,yBAAyB;qBAC1B;oBACD,SAAS,EAAE;wBACTlF,eAAY;qBACb;oBACD,OAAO,EAAE,CAACmF,yBAAsB,CAAC;iBAClC;;;IC9TD;;;;ICAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}