ngx-render-material-forms 2.5.14 → 2.5.16

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":"ngx-render-material-forms.mjs","sources":["../../../projects/ngx-render-material-forms/src/lib/ngx-render-material-forms.service.ts","../../../projects/ngx-render-material-forms/src/lib/ngx-render-material-forms.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/Webform.ts","../../../projects/ngx-render-material-forms/src/lib/components/Base.ts","../../../projects/ngx-render-material-forms/src/lib/FormioControl.ts","../../../projects/ngx-render-material-forms/src/lib/components/MaterialComponent.ts","../../../projects/ngx-render-material-forms/src/lib/const/LabelPositions.ts","../../../projects/ngx-render-material-forms/src/lib/components/label/label.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/label/label.component.html","../../../projects/ngx-render-material-forms/src/lib/components/formio-form-field/formio-form-field.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/formio-form-field/formio-form-field.component.html","../../../projects/ngx-render-material-forms/src/lib/components/textfield/textfield.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/password/password.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/email/email.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/url/url.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/phonenumber/phonenumber.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/number/number.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/currency/currency.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/day/day.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/hidden/hidden.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/html/html.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/tags/tags.component.ts","../../../projects/ngx-render-material-forms/src/lib/const/ButtonsThemes.ts","../../../projects/ngx-render-material-forms/src/lib/components/button/button.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/button/button.component.html","../../../projects/ngx-render-material-forms/src/lib/components/textarea/textarea.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/MaterialNestedComponent.ts","../../../projects/ngx-render-material-forms/src/lib/components/panel/panel.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/columns/columns.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/container/container.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/tabs/tabs.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/time/time.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/calendar/calendar.component.ts","../../../projects/ngx-render-material-forms/src/lib/directives/mask.directive.ts","../../../projects/ngx-render-material-forms/src/lib/components/date/date.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/checkbox/checkbox.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/fieldset/fieldset.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/content/content.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/signature/signature.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/survey/survey.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/radio/radio.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/selectboxes/selectboxes.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/common.service.ts","../../../projects/ngx-render-material-forms/src/lib/components/select/select.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/well/well.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/confirmation-dialog/confirmation-dialog.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/confirmation-dialog/confirmation-dialog.component.html","../../../projects/ngx-render-material-forms/src/lib/components/add-on-products/add-on-products.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/add-on-products/add-on-products.component.html","../../../projects/ngx-render-material-forms/src/lib/components/datagrid/datagrid.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/editgrid/editgrid.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/editgrid/editgrid.component.html","../../../projects/ngx-render-material-forms/src/lib/components/table/table.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/formio.wizard.ts","../../../projects/ngx-render-material-forms/src/lib/components/index.ts","../../../projects/ngx-render-material-forms/src/lib/renderer.ts","../../../projects/ngx-render-material-forms/src/lib/formio.component.ts","../../../projects/ngx-render-material-forms/src/lib/ngx-render-material-forms.module.ts","../../../projects/ngx-render-material-forms/src/public-api.ts","../../../projects/ngx-render-material-forms/src/ngx-render-material-forms.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NgxRenderMaterialFormsService {\r\n\r\n constructor() { }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'NgxMat-NgxRenderMaterialForms',\r\n template: `\r\n <p>\r\n ngx-render-material-forms works!\r\n </p>\r\n `,\r\n styles: [\r\n ]\r\n})\r\nexport class NgxRenderMaterialFormsComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import Webform from 'formiojs/Webform.js';\r\nWebform.prototype.redraw = function() {\r\n return this.render();\r\n};\r\nWebform.prototype.clear = function() {\r\n const viewContainer = this.viewContainer ? this.viewContainer() : null;\r\n if (viewContainer) {\r\n viewContainer.clear(); \r\n }\r\n};\r\nWebform.prototype.render = function() {\r\n if (this.viewContainer && this.viewContainer()) {\r\n this.clear();\r\n this.renderComponents();\r\n this.setValue(this._submission);\r\n }\r\n};\r\n","import FormioComponent from 'formiojs/components/_classes/component/Component.js';\r\n\r\nexport default (() => {\r\n const beforeSubmit = FormioComponent.prototype.beforeSubmit;\r\n FormioComponent.prototype.beforeSubmit = function(...args) {\r\n if (this.materialComponent) {\r\n this.materialComponent.beforeSubmit();\r\n }\r\n return beforeSubmit.call(this, ...args);\r\n };\r\n\r\n Object.defineProperty(FormioComponent.prototype, 'disabled', {\r\n set(disabled) {\r\n this._disabled = disabled;\r\n if (this.materialComponent) {\r\n this.materialComponent.setDisabled(disabled);\r\n }\r\n }\r\n });\r\n\r\n Object.defineProperty(FormioComponent.prototype, 'visible', {\r\n set(visible) {\r\n if (this._visible !== visible) {\r\n this._visible = visible;\r\n this.clearOnHide();\r\n this.redraw();\r\n }\r\n if (this.materialComponent) {\r\n this.materialComponent.setVisible(visible);\r\n }\r\n }\r\n });\r\n return FormioComponent;\r\n})();\r\n\r\n","import { FormControl, ValidationErrors } from '@angular/forms';\r\nimport unescape from 'lodash/unescape';\r\n\r\n// @dynamic\r\nexport class FormioControl extends FormControl {\r\n public instance: any;\r\n\r\n static customValidator(control: FormioControl): Promise<ValidationErrors> {\r\n return new Promise((resolve) => {\r\n if (control.instance) {\r\n control.instance.validateResolve = resolve;\r\n } else {\r\n resolve(null);\r\n }\r\n });\r\n }\r\n\r\n constructor(...args) {\r\n super(args[0], [], [FormioControl.customValidator.bind(FormioControl)]);\r\n }\r\n\r\n setInstance(instance: any) {\r\n this.instance = instance;\r\n const setCustomValidity = instance.setCustomValidity;\r\n instance.setCustomValidity = (message: any, dirty, external, isWarning = false) => {\r\n let decodedMessage = message;\r\n if (Array.isArray(message)) {\r\n decodedMessage = message.map(msg => Object.assign(msg, { message: unescape(msg.message) }));\r\n }\r\n else if (message) {\r\n decodedMessage = unescape(message);\r\n }\r\n\r\n setCustomValidity.call(instance, decodedMessage, dirty, external, isWarning);\r\n if (instance.validateResolve) {\r\n instance.validateResolve(decodedMessage ? {custom: true} : null);\r\n }\r\n };\r\n }\r\n}\r\n","import {Component, Input, ViewChild, ElementRef, ChangeDetectorRef, AfterViewInit, OnInit} from '@angular/core';\r\nimport FormioComponent from './Base';\r\nimport Validator from 'formiojs/validator/Validator.js';\r\nimport { FormioControl } from '../FormioControl';\r\nimport get from 'lodash/get';\r\n\r\n@Component({\r\n selector: 'mat-formio-comp',\r\n template: '<mat-card appearance=\"outlined\">Unknown Component: {{ instance.component.type }}</mat-card>'\r\n})\r\nexport class MaterialComponent implements AfterViewInit, OnInit {\r\n @Input() instance: any;\r\n @ViewChild('input') input: ElementRef;\r\n @Input() control: FormioControl = new FormioControl();\r\n constructor(public element: ElementRef, public ref: ChangeDetectorRef) {}\r\n\r\n setInstance(instance: any) {\r\n this.control.setInstance(instance);\r\n instance.materialComponent = this;\r\n this.instance = instance;\r\n this.instance.disabled = this.instance.shouldDisabled;\r\n this.setVisible(this.instance.visible);\r\n this.renderComponents();\r\n }\r\n\r\n ngOnInit() {\r\n if (this.instance) {\r\n if (this.shouldValidateOnInit()) {\r\n this.storeFormData();\r\n this.validateOnInit();\r\n }\r\n this.instance.component.defaultValue ? this.setValue(this.instance.component.defaultValue) : '';\r\n }\r\n }\r\n\r\n validateOnInit() {\r\n const {key} = this.instance.component;\r\n const validationValue = this.getFormValue(this.instance.path);\r\n\r\n if (validationValue === null) {\r\n return;\r\n }\r\n\r\n this.instance.setPristine(false);\r\n\r\n const validationResult = Validator.checkComponent(\r\n this.instance,\r\n {[key]: validationValue},\r\n {[key]: validationValue}\r\n );\r\n\r\n if (validationResult.length) {\r\n this.instance.setCustomValidity(validationResult, false);\r\n if (!!validationValue) {\r\n this.control.markAsTouched();\r\n }\r\n this.ref.detectChanges();\r\n }\r\n }\r\n\r\n storeFormData() {\r\n if (this.instance.parent && this.instance.parent.submission && this.instance.parent.submission.data) {\r\n sessionStorage.setItem('formData', JSON.stringify(this.instance.parent.submission.data));\r\n }\r\n }\r\n\r\n getFormValue(path) {\r\n const formData = JSON.parse(sessionStorage.getItem('formData'));\r\n\r\n if (!formData) {\r\n return null;\r\n }\r\n\r\n return get(formData, path);\r\n }\r\n\r\n renderComponents() {}\r\n\r\n onChange(keepInputRaw?: boolean) {\r\n let value = this.getValue();\r\n\r\n if (value === undefined || value === null) {\r\n value = this.instance.emptyValue;\r\n }\r\n\r\n if (this.input && this.input.nativeElement.mask && value && !keepInputRaw) {\r\n this.input.nativeElement.mask.textMaskInputElement.update(value);\r\n this.control.setValue(this.input.nativeElement.value);\r\n value = this.getValue();\r\n }\r\n this.instance.updateValue(value, {modified: true});\r\n }\r\n\r\n getValue() {\r\n return this.control.value;\r\n }\r\n\r\n setValue(value) {\r\n this.control.setValue(value);\r\n }\r\n\r\n beforeSubmit() {\r\n this.control.markAsTouched();\r\n }\r\n\r\n hasError() {\r\n return !!this.instance && !!this.instance.error;\r\n }\r\n\r\n shouldValidateOnInit() {\r\n if (!this.instance) {\r\n return;\r\n }\r\n\r\n return this.instance.options.validateOnInit\r\n || this.instance.parent.options.validateOnInit;\r\n }\r\n\r\n setDisabled(disabled) {\r\n if (disabled) {\r\n this.control.disable();\r\n } else {\r\n this.control.enable();\r\n }\r\n }\r\n\r\n setVisible(visible) {\r\n if (this.element && this.element.nativeElement) {\r\n if (visible) {\r\n this.element.nativeElement.removeAttribute('hidden');\r\n this.element.nativeElement.style.visibility = 'visible';\r\n this.element.nativeElement.style.position = 'relative';\r\n } else {\r\n this.element.nativeElement.setAttribute('hidden', true);\r\n this.element.nativeElement.style.visibility = 'hidden';\r\n this.element.nativeElement.style.position = 'absolute';\r\n }\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this.element && this.element.nativeElement && this.instance) {\r\n // Add custom classes to elements.\r\n if (this.instance.component.customClass) {\r\n this.element.nativeElement.classList.add(this.instance.component.customClass);\r\n }\r\n }\r\n\r\n if (this.input) {\r\n // Set the input masks.\r\n const mask = this.instance?.component?.inputMask || this.instance?.component?.mask;\r\n if (mask) {\r\n this.instance.setInputMask(this.input.nativeElement);\r\n }\r\n this.instance.addFocusBlurEvents(this.input.nativeElement);\r\n }\r\n }\r\n}\r\n\r\nFormioComponent.MaterialComponent = MaterialComponent;\r\nexport { FormioComponent };\r\n","export enum LabelPositions {\r\n RIGHT_RIGHT = 'right-right',\r\n RIGHT_LEFT = 'right-left',\r\n LEFT_LEFT = 'left-left',\r\n LEFT_RIGHT = 'left-right',\r\n BOTTOM = 'bottom',\r\n TOP = 'top',\r\n}\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'span[matFormioLabel]',\r\n templateUrl: './label.component.html',\r\n styleUrls: ['./label.component.css']\r\n})\r\nexport class LabelComponent {\r\n @Input() instance;\r\n}\r\n","<ng-container *ngIf=\"instance\">\r\n {{ instance.component.label }}<span class=\"required-star\" *ngIf=\"instance.component.validate.required\">*</span>\r\n <mat-icon *ngIf=\"instance.component.tooltip\" style=\"font-size: 1rem;\"\r\n matTooltip=\"{{ instance.component.tooltip }}\" matSuffix\r\n >\r\n info\r\n </mat-icon>\r\n</ng-container>\r\n","import { Component, Input, TemplateRef } from '@angular/core';\r\nimport { LabelPositions } from '../../const/LabelPositions';\r\n\r\n@Component({\r\n selector: 'mat-formio-form-field',\r\n templateUrl: './formio-form-field.component.html',\r\n styleUrls: ['./formio-form-field.component.css']\r\n})\r\nexport class FormioFormFieldComponent {\r\n private _instance;\r\n public labelPositions = LabelPositions;\r\n @Input() labelTemplate: TemplateRef<any>;\r\n @Input() renderTopLabel = false;\r\n @Input() showDescription = true;\r\n @Input() renderElementOnly = false;\r\n\r\n @Input('instance')\r\n set instance(instance) {\r\n this._instance = instance;\r\n if (instance) {\r\n this.componentTemplateContext = {$implicit: this.hasLabel(['top'])};\r\n }\r\n }\r\n\r\n get instance() {\r\n return this._instance;\r\n }\r\n\r\n @Input() componentTemplate: TemplateRef<any>;\r\n componentTemplateContext;\r\n\r\n hasLabel(labelPositions?: string[]) {\r\n const { component } = this.instance;\r\n const hasNoLabel = !component.label || component.hideLabel;\r\n const labelPositionIsNotSpecified = !labelPositions ||\r\n !labelPositions.length ||\r\n !component.labelPosition;\r\n\r\n if (hasNoLabel || labelPositionIsNotSpecified || this.renderElementOnly) {\r\n return false;\r\n }\r\n\r\n if (labelPositions.includes(component.labelPosition)) {\r\n return true;\r\n }\r\n }\r\n}\r\n","<div class=\"mat-formio-component-wrapper\" *ngIf=\"instance && !renderElementOnly\"\r\n [ngClass]=\"{\r\n 'mat-formio-label-right': hasLabel([labelPositions.RIGHT_RIGHT, labelPositions.RIGHT_LEFT]),\r\n 'mat-formio-label-left': hasLabel([labelPositions.LEFT_LEFT, labelPositions.LEFT_RIGHT])\r\n }\"\r\n>\r\n <span *ngIf=\"renderTopLabel && hasLabel([labelPositions.TOP])\"\r\n class=\"mat-formio-label\"\r\n [ngClass]=\"{\r\n 'mat-formio-label-align-right': hasLabel([labelPositions.LEFT_RIGHT, labelPositions.RIGHT_RIGHT]),\r\n 'mat-formio-label-align-left': hasLabel([labelPositions.LEFT_LEFT, labelPositions.RIGHT_LEFT])\r\n }\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"labelTemplate || defaultLabel\"></ng-container>\r\n </span>\r\n\r\n <div class=\"mat-formio-component\" *ngTemplateOutlet=\"componentTemplate; context: componentTemplateContext\"></div>\r\n\r\n <span *ngIf=\"hasLabel([\r\n labelPositions.BOTTOM,\r\n labelPositions.RIGHT_RIGHT,\r\n labelPositions.RIGHT_LEFT,\r\n labelPositions.LEFT_LEFT,\r\n labelPositions.LEFT_RIGHT\r\n ])\"\r\n class=\"mat-formio-label\"\r\n [ngClass]=\"{\r\n 'mat-formio-label-align-right': hasLabel([labelPositions.LEFT_RIGHT, labelPositions.RIGHT_RIGHT]),\r\n 'mat-formio-label-align-left': hasLabel([labelPositions.LEFT_LEFT, labelPositions.RIGHT_LEFT])\r\n }\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"labelTemplate || defaultLabel\"></ng-container>\r\n </span>\r\n\r\n <mat-hint *ngIf=\"showDescription && instance.component.description\" class=\"mat-formio-component-description\">\r\n {{ instance.component.description }}\r\n </mat-hint>\r\n</div>\r\n\r\n<div class=\"mat-formio-component-wrapper\" *ngIf=\"renderElementOnly\">\r\n <div class=\"mat-formio-component\" *ngTemplateOutlet=\"componentTemplate; context: componentTemplateContext\"></div>\r\n</div>\r\n\r\n<ng-template #defaultLabel>\r\n <mat-label>\r\n <span style=\"display: block;\"\r\n [instance]=\"instance\" matFormioLabel>\r\n </span>\r\n </mat-label>\r\n</ng-template>\r\n","import { Component, OnInit, AfterContentInit } from '@angular/core';\r\nimport TextFieldComponent from 'formiojs/components/textfield/TextField.js';\r\nimport { MaterialComponent } from '../MaterialComponent';\r\n\r\nexport const TEXTFIELD_TEMPLATE = `\r\n <mat-formio-form-field [instance]=\"instance\" [componentTemplate]=\"componentTemplate\"></mat-formio-form-field>\r\n <ng-template #componentTemplate let-hasLabel>\r\n <mat-form-field [appearance]=\"getFormFieldAppearance()\" fxFill>\r\n\r\n <mat-label *ngIf=\"hasLabel\">\r\n <span [instance]=\"instance\" matFormioLabel></span>\r\n </mat-label>\r\n\r\n <span *ngIf=\"instance.component.prefix && instance.type !== 'currency'\"\r\n matPrefix\r\n >\r\n {{ instance.component.prefix }}&nbsp;\r\n </span>\r\n <input matInput\r\n type=\"{{ inputType }}\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"instance.component.placeholder\"\r\n (input)=\"onChange()\" #input\r\n [ngClass]=\"{ 'show-invalid': inputType=='email' }\"\r\n >\r\n <span *ngIf=\"instance.component.suffix\" matSuffix>{{ instance.component.suffix }}</span>\r\n\r\n <mat-hint *ngIf=\"instance.component.showWordCount || instance.component.showCharCount\">\r\n {{ getHint() }}\r\n </mat-hint>\r\n\r\n <br/>\r\n <mat-error *ngIf=\"isError()\" >{{ getErrorMessage() }}</mat-error>\r\n </mat-form-field>\r\n </ng-template>\r\n`;\r\n\r\n@Component({\r\n selector: 'mat-formio-textfield',\r\n template: TEXTFIELD_TEMPLATE\r\n})\r\nexport class MaterialTextfieldComponent extends MaterialComponent implements AfterContentInit {\r\n public inputType = 'text';\r\n controlHasError: boolean;\r\n\r\n ngAfterContentInit() {\r\n if (this.instance && this.control && this.instance.component.disabled) {\r\n this.control.disable();\r\n }\r\n }\r\n\r\n getHint() {\r\n if (!this.instance || !this.control || !this.control.value) {\r\n return '';\r\n }\r\n\r\n const { showWordCount, showCharCount } = this.instance.component;\r\n\r\n if (showWordCount && showCharCount) {\r\n return `${this.getWordsCount()} words, ${this.control.value.length} characters`;\r\n } else if (showWordCount) {\r\n return `${this.getWordsCount()} words`;\r\n } else {\r\n return `${this.control.value.length} characters`;\r\n }\r\n }\r\n\r\n getWordsCount() {\r\n const matches = this.control.value ? this.control.value.match(/[\\w\\d’'-]+/gi) : [];\r\n return matches ? matches.length : 0;\r\n }\r\n\r\n getFormFieldAppearance() {\r\n const appearances = ['legacy', 'standard', 'fill', 'outline'];\r\n const appearance = this.instance.component.appearance ? this.instance.component.appearance.toLowerCase() : '';\r\n return appearances.includes(appearance) ? appearance : 'outline';\r\n }\r\n\r\n isError() {\r\n if (this.instance.error) {\r\n this.control.setErrors(this.instance.component.validate);\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n getErrorMessage() {\r\n if (this.instance.error && this.instance.error.messages) {\r\n const { messages } = this.instance.error;\r\n\r\n if (messages.length) {\r\n for (const msg of messages) {\r\n //this.control.hasError(msg.context.validator)\r\n if (this.instance.type == 'phoneNumber' || this.instance.type == 'email') {\r\n this.controlHasError = true;\r\n } else {\r\n this.controlHasError = this.control.hasError(msg.context.validator)\r\n }\r\n if (msg.context && this.controlHasError) {\r\n if (this.instance && this.instance.parent && this.instance.parent._data) {\r\n if (this.instance.parent._data.submit) {\r\n this.control.markAllAsTouched();\r\n }\r\n }\r\n return this.instance.error ? this.instance.error.message : '';\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\nTextFieldComponent.MaterialComponent = MaterialTextfieldComponent;\r\nexport { TextFieldComponent };\r\n","import { Component } from '@angular/core';\r\nimport { MaterialTextfieldComponent, TEXTFIELD_TEMPLATE } from '../textfield/textfield.component';\r\nimport PasswordComponent from 'formiojs/components/password/Password.js';\r\n@Component({\r\n selector: 'mat-formio-password',\r\n template: TEXTFIELD_TEMPLATE\r\n})\r\nexport class MaterialPasswordComponent extends MaterialTextfieldComponent {\r\n public inputType = 'password';\r\n}\r\nPasswordComponent.MaterialComponent = MaterialPasswordComponent;\r\nexport { PasswordComponent };\r\n","import { Component } from '@angular/core';\r\nimport { MaterialTextfieldComponent, TEXTFIELD_TEMPLATE } from '../textfield/textfield.component';\r\nimport EmailComponent from 'formiojs/components/email/Email.js';\r\n@Component({\r\n selector: 'mat-formio-email',\r\n template: TEXTFIELD_TEMPLATE\r\n})\r\nexport class MaterialEmailComponent extends MaterialTextfieldComponent {\r\n public inputType = 'email';\r\n}\r\nEmailComponent.MaterialComponent = MaterialEmailComponent;\r\nexport { EmailComponent };\r\n","import { Component } from '@angular/core';\r\nimport { MaterialTextfieldComponent, TEXTFIELD_TEMPLATE } from '../textfield/textfield.component';\r\nimport UrlComponent from 'formiojs/components/url/Url.js';\r\n@Component({\r\n selector: 'mat-formio-url',\r\n template: TEXTFIELD_TEMPLATE\r\n})\r\nexport class MaterialUrlComponent extends MaterialTextfieldComponent {\r\n public inputType = 'url';\r\n}\r\nUrlComponent.MaterialComponent = MaterialUrlComponent;\r\nexport { UrlComponent };\r\n","import { Component } from '@angular/core';\r\nimport { MaterialTextfieldComponent, TEXTFIELD_TEMPLATE } from '../textfield/textfield.component';\r\nimport PhoneNumberComponent from 'formiojs/components/phonenumber/PhoneNumber.js';\r\n@Component({\r\n selector: 'mat-formio-phonenumber',\r\n template: TEXTFIELD_TEMPLATE\r\n})\r\nexport class MaterialPhoneNumberComponent extends MaterialTextfieldComponent {\r\n public inputType = 'text';\r\n}\r\nPhoneNumberComponent.MaterialComponent = MaterialPhoneNumberComponent;\r\nexport { PhoneNumberComponent };\r\n","import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, Renderer2 } from '@angular/core';\r\nimport { MaterialTextfieldComponent, TEXTFIELD_TEMPLATE } from '../textfield/textfield.component';\r\nimport NumberComponent from 'formiojs/components/number/Number.js';\r\nimport _ from 'lodash';\r\n\r\n@Component({\r\n selector: 'mat-formio-number',\r\n template: TEXTFIELD_TEMPLATE\r\n})\r\nexport class MaterialNumberComponent extends MaterialTextfieldComponent implements AfterViewInit {\r\n public inputType = 'text';\r\n\r\n constructor(public element: ElementRef, public ref: ChangeDetectorRef, private renderer: Renderer2) {\r\n super(element, ref);\r\n }\r\n\r\n ngAfterViewInit() {\r\n super.ngAfterViewInit();\r\n if (this.instance) {\r\n const { instance } = this;\r\n\r\n this.renderer.listen(this.input.nativeElement, 'blur', () => {\r\n let value = instance.parseValue(this.control.value);\r\n value = instance.formatValue(value);\r\n value = instance.getValueAsString(value);\r\n this.control.setValue(value);\r\n });\r\n\r\n }\r\n }\r\n\r\n getValue() {\r\n let value = this.control.value;\r\n if (value && this.instance) {\r\n value = value.replace(this.instance.prefix, '');\r\n return !_.isNil(value) && value !== '' ? this.instance.parseNumber(value) : value;\r\n }\r\n return value;\r\n }\r\n\r\n setValue(value) {\r\n if (this.instance) {\r\n const { instance } = this;\r\n value = instance.formatValue(instance.parseValue(value));\r\n }\r\n else {\r\n value = value.toString();\r\n }\r\n\r\n return super.setValue(value);\r\n }\r\n\r\n onChange() {\r\n super.onChange(true);\r\n }\r\n}\r\nNumberComponent.MaterialComponent = MaterialNumberComponent;\r\nexport { NumberComponent };\r\n","import { Component } from '@angular/core';\r\nimport { TEXTFIELD_TEMPLATE } from '../textfield/textfield.component';\r\nimport { MaterialNumberComponent } from '../number/number.component';\r\nimport CurrencyComponent from 'formiojs/components/currency/Currency.js';\r\nimport _ from 'lodash';\r\n\r\n@Component({\r\n selector: 'mat-formio-currency',\r\n template: TEXTFIELD_TEMPLATE\r\n})\r\nexport class MaterialCurrencyComponent extends MaterialNumberComponent {\r\n public inputType = 'text';\r\n\r\n onChange() {\r\n let newValue;\r\n newValue = _.isNil(this.getValue()) ? '' : this.getValue();\r\n if(!(Number.isNaN(newValue))){\r\n this.instance.updateValue(newValue, {modified: true});\r\n } else {\r\n newValue = '';\r\n this.instance.updateValue(newValue, {modified: true});\r\n }\r\n }\r\n}\r\nCurrencyComponent.MaterialComponent = MaterialCurrencyComponent;\r\nexport { CurrencyComponent };\r\n","import { Component } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MaterialComponent } from '../MaterialComponent';\r\nimport DayComponent from 'formiojs/components/day/Day.js';\r\nimport { momentDate } from 'formiojs/utils/utils.js';\r\nDayComponent.prototype.getFieldValue = function(name) {\r\n return this.refs[name] ? this.refs[name].value : '';\r\n};\r\n\r\n@Component({\r\n selector: 'mat-formio-day',\r\n template: `\r\n <mat-formio-form-field [instance]=\"instance\" [componentTemplate]=\"componentTemplate\"></mat-formio-form-field>\r\n <ng-template #componentTemplate let-hasLabel>\r\n <mat-label *ngIf=\"hasLabel\">\r\n <span [instance]=\"instance\" matFormioLabel></span>\r\n </mat-label>\r\n <mat-form-field *ngIf=\"instance.dayFirst && instance.showDay\">\r\n <mat-label *ngIf=\"!instance.component.hideInputLabels\">Day</mat-label>\r\n <mat-select [formControl]=\"dayControl\" (selectionChange)=\"onChange()\" [required]=\"instance.dayRequired\">\r\n <mat-option *ngFor=\"let day of instance.days\" [value]=\"day.value\">\r\n {{day.label}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field *ngIf=\"instance.showMonth\">\r\n <mat-label *ngIf=\"!instance.component.hideInputLabels\">Month</mat-label>\r\n <mat-select [formControl]=\"monthControl\" (selectionChange)=\"onChange()\" [required]=\"instance.monthRequired\">\r\n <mat-option *ngFor=\"let month of instance.months\" [value]=\"month.value\">\r\n {{month.label}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field *ngIf=\"!instance.dayFirst && instance.showDay\">\r\n <mat-label *ngIf=\"!instance.component.hideInputLabels\">Day</mat-label>\r\n <mat-select [formControl]=\"dayControl\" (selectionChange)=\"onChange()\" [required]=\"instance.dayRequired\">\r\n <mat-option *ngFor=\"let day of instance.days\" [value]=\"day.value\">\r\n {{day.label}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field *ngIf=\"instance.showYear\">\r\n <mat-label *ngIf=\"!instance.component.hideInputLabels\">Year</mat-label>\r\n <mat-select [formControl]=\"yearControl\" (selectionChange)=\"onChange()\" [required]=\"instance.yearRequired\">\r\n <mat-option *ngFor=\"let year of instance.years\" [value]=\"year.value\">\r\n {{year.label}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-error *ngIf=\"instance.error\">{{ instance.error.message }}</mat-error>\r\n </ng-template>\r\n `\r\n})\r\nexport class MaterialDayComponent extends MaterialComponent {\r\n public dayControl: FormControl = new FormControl();\r\n public monthControl: FormControl = new FormControl();\r\n public yearControl: FormControl = new FormControl();\r\n setInstance(instance) {\r\n // Add stub methods to match dom elements.\r\n (this.dayControl as any).setAttribute = () => {};\r\n (this.dayControl as any).removeAttribute = () => {};\r\n (this.monthControl as any).setAttribute = () => {};\r\n (this.monthControl as any).removeAttribute = () => {};\r\n (this.yearControl as any).setAttribute = () => {};\r\n (this.yearControl as any).removeAttribute = () => {};\r\n instance.refs = {\r\n day: this.dayControl,\r\n month: this.monthControl,\r\n year: this.yearControl\r\n };\r\n return super.setInstance(instance);\r\n }\r\n\r\n setDisabled(disabled) {\r\n if (disabled) {\r\n this.dayControl.disable();\r\n this.monthControl.disable();\r\n this.yearControl.disable();\r\n } else {\r\n this.dayControl.enable();\r\n this.monthControl.enable();\r\n this.yearControl.enable();\r\n }\r\n }\r\n\r\n getValue() {\r\n return this.instance.getDate();\r\n }\r\n\r\n setValue(value) {\r\n if (value) {\r\n this.dayControl.setValue(parseInt(momentDate(value).format('D')));\r\n this.monthControl.setValue(parseInt(momentDate(value).format('M')));\r\n this.yearControl.setValue(parseInt(momentDate(value).format('YYYY')));\r\n }\r\n this.instance.setValueAt(0, value);\r\n }\r\n}\r\nDayComponent.MaterialComponent = MaterialDayComponent;\r\nexport { DayComponent };\r\n","import { Component } from '@angular/core';\r\nimport { MaterialComponent } from '../MaterialComponent';\r\nimport HiddenComponent from 'formiojs/components/hidden/Hidden.js';\r\n@Component({\r\n selector: 'mat-formio-hidden',\r\n template: `<input matInput type=\"hidden\" [formControl]=\"control\" #input>`\r\n})\r\nexport class MaterialHiddenComponent extends MaterialComponent {}\r\nHiddenComponent.MaterialComponent = MaterialHiddenComponent;\r\nexport { HiddenComponent };\r\n","import { Component, AfterViewInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { MaterialComponent } from '../MaterialComponent';\r\nimport HtmlComponent from 'formiojs/components/html/HTML.js';\r\n\r\n@Component({\r\n selector: 'mat-formio-html',\r\n template: `<div #htmlBody></div>`\r\n})\r\nexport class MaterialHtmlComponent extends MaterialComponent implements AfterViewInit {\r\n @ViewChild('htmlBody') htmlBody: ElementRef;\r\n\r\n ngAfterViewInit() {\r\n super.ngAfterViewInit();\r\n if (this.instance.component.refreshOnChange) {\r\n this.instance.checkRefreshOn = () => {\r\n this.htmlBody.nativeElement.innerHTML = this.instance.renderContent();\r\n };\r\n }\r\n }\r\n}\r\nHtmlComponent.MaterialComponent = MaterialHtmlComponent;\r\nexport { HtmlComponent };\r\n","import { Component } from '@angular/core';\r\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\r\nimport TagsComponent from 'formiojs/components/tags/Tags.js';\r\nimport { MaterialComponent } from '../MaterialComponent';\r\nimport { MatChipInputEvent } from '@angular/material/chips';\r\n\r\n@Component({\r\n selector: 'mat-formio-tags',\r\n template: `\r\n <mat-formio-form-field [instance]=\"instance\" [componentTemplate]=\"componentTemplate\"></mat-formio-form-field>\r\n <ng-template #componentTemplate let-hasLabel>\r\n <mat-form-field class=\"example-chip-list\" fxFill>\r\n\r\n <mat-label *ngIf=\"hasLabel\">\r\n <span [instance]=\"instance\" matFormioLabel></span>\r\n </mat-label>\r\n\r\n <mat-chip-grid #chipList [attr.aria-label]=\"instance.component.label\">\r\n <mat-chip-row *ngFor=\"let tag of tags; index as i;\"\r\n [removable]=\"true\"\r\n (removed)=\"remove(i)\"\r\n >\r\n {{tag}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n\r\n <input [formControl]=\"control\"\r\n [matChipInputFor]=\"chipList\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n [matChipInputAddOnBlur]=\"true\"\r\n (matChipInputTokenEnd)=\"add($event)\"\r\n >\r\n </mat-chip-grid>\r\n </mat-form-field>\r\n </ng-template>\r\n `\r\n})\r\nexport class MaterialTagsComponent extends MaterialComponent {\r\n readonly separatorKeysCodes: number[] = [ENTER, COMMA];\r\n tags: string[] = [];\r\n add(event: MatChipInputEvent): void {\r\n const input = event.input;\r\n const value = event.value;\r\n if ((value || '').trim()) {\r\n this.tags.push(value.trim());\r\n }\r\n if (input) {\r\n input.value = '';\r\n }\r\n this.onChange();\r\n }\r\n\r\n remove(index): void {\r\n if (index >= 0 && index < this.tags.length) {\r\n this.tags.splice(index, 1);\r\n }\r\n this.onChange();\r\n }\r\n\r\n getValue() {\r\n return (this.instance.component.storeas === 'string') ? this.tags.join(this.instance.delimiter) : this.tags;\r\n }\r\n\r\n setValue(value) {\r\n if (typeof value === 'string') {\r\n value = value.split(this.instance.delimiter);\r\n }\r\n if (value && !Array.isArray(value)) {\r\n value = [value];\r\n }\r\n this.tags = value;\r\n }\r\n}\r\n(TagsComponent as any).MaterialComponent = MaterialTagsComponent;\r\nexport { TagsComponent };\r\n","export enum ButtonsThemes {\r\n PRIMARY = 'primary',\r\n SECONDARY = 'secondary',\r\n INFO = 'info',\r\n WARNING = 'warning',\r\n DANGER = 'danger',\r\n SUCCESS = 'success'\r\n}\r\n\r\nexport enum AngularButtonsThemes {\r\n WARN = 'warn',\r\n PRIMARY = 'primary',\r\n BASIC = 'basic',\r\n ACCENT = 'accent'\r\n}\r\n","import { ChangeDetectorRef, Component, ElementRef } from '@angular/core';\r\nimport ButtonComponent from 'formiojs/components/button/Button.js';\r\nimport { MaterialComponent } from '../MaterialComponent';\r\nimport { AngularButtonsThemes, ButtonsThemes } from '../../const/ButtonsThemes';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'mat-formio-button',\r\n templateUrl: './button.component.html',\r\n styleUrls: ['./button.component.css']\r\n})\r\nexport class MaterialButtonComponent extends MaterialComponent {\r\n public loading = false;\r\n public done = false;\r\n public error = false;\r\n public disabled = false;\r\n public clicked = false;\r\n walkmeClass: string = '';\r\n constructor(public element: ElementRef, public ref: ChangeDetectorRef, private dialog: MatDialog) {\r\n super(element, ref);\r\n }\r\n get color() {\r\n if (this.error) {\r\n return AngularButtonsThemes.WARN;\r\n }\r\n const theme = this.angularButtonTheme;\r\n return theme || AngularButtonsThemes.PRIMARY;\r\n }\r\n\r\n get angularButtonTheme() {\r\n switch (this.instance.component.theme) {\r\n case ButtonsThemes.PRIMARY:\r\n return AngularButtonsThemes.PRIMARY;\r\n\r\n case ButtonsThemes.WARNING:\r\n return AngularButtonsThemes.ACCENT;\r\n\r\n case ButtonsThemes.DANGER:\r\n return AngularButtonsThemes.WARN;\r\n\r\n case ButtonsThemes.SECONDARY:\r\n return AngularButtonsThemes.BASIC;\r\n\r\n default:\r\n return '';\r\n }\r\n }\r\n\r\n get buttonClass() {\r\n let className = this.instance.component.block ? 'mat-formio-button-block' : '';\r\n className += this.instance.component.size ? ` mat-formio-button-${this.instance.component.size}` : '';\r\n className += !this.angularButtonTheme ? ` mat-formio-theme-${this.instance.component.theme}` : '';\r\n const attributes = this.instance?.component?.attributes;\r\n if (attributes) {\r\n const buttonType = attributes.buttonType || '';\r\n const programName = attributes.programName || '';\r\n this.walkmeClass = `walkme-${buttonType}-${programName}`.toLowerCase();\r\n }\r\n return className;\r\n }\r\n\r\n onClick(event) {\r\n this.clicked = true;\r\n this.instance.onClick(event);\r\n }\r\n\r\n getValue() {\r\n return this.clicked;\r\n }\r\n\r\n setState(loading, error, done) {\r\n this.loading = loading;\r\n this.done = done;\r\n this.error = error;\r\n }\r\n\r\n getIconFontSet(icon: string) {\r\n const fontSet = icon.split(' ')[0];\r\n return fontSet;\r\n }\r\n\r\n getIconName(icon: string) {\r\n return icon.replace(this.getIconFontSet(icon), '');\r\n }\r\n\r\n setInstance(instance) {\r\n const retVal = super.setInstance(instance);\r\n this.disabled = instance.shouldDisabled;\r\n instance.on('submitButton', () => this.setState(true, false, false));\r\n instance.on('submitDone', () => this.setState(false, false, true));\r\n instance.on('submitError', () => this.setState(false, true, false));\r\n instance.on('requestButton', () => this.setState(true, false, false));\r\n instance.on('requestDone', () => this.setState(false, false, true));\r\n instance.on('change', (event) => {\r\n this.disabled = this.instance.shouldDisabled || (this.instance.component.disableOnInvalid && !event.isValid);\r\n if (event.isValid) {\r\n this.loading = false;\r\n this.error = false;\r\n }\r\n });\r\n return retVal;\r\n }\r\n}\r\nButtonComponent.MaterialComponent = MaterialButtonComponent;\r\nexport { ButtonComponent };\r\n","<button *ngIf=\"instance && instance.component.label != 'Click to add Products'\"\r\n [ngClass]=\"[buttonClass, walkmeClass]\"\r\n type=\"{{ instance.component.action }}\"\r\n mat-raised-button [color]=\"color\"\r\n [disabled]=\"disabled\"\r\n (click)=\"instance.onClick($event)\"\r\n>\r\n\r\n\r\n <mat-icon *ngIf=\"instance.component.leftIcon\">{{instance.component.leftIcon}}</mat-icon>\r\n <mat-icon *ngIf=\"done\">done</mat-icon>\r\n <mat-icon *ngIf=\"error\">close</mat-icon>\r\n <mat-icon class=\"mat-icon-spin\" *ngIf=\"loading\">autorenew</mat-icon>\r\n {{ instance.component.label }}\r\n <mat-icon *ngIf=\"instance.component.rightIcon\">{{instance.component.rightIcon}}</mat-icon>\r\n</button>\r\n","import { Component, ViewChild, ElementRef, AfterViewInit } from '@angular/core';\r\nimport { MaterialComponent } from '../MaterialComponent';\r\nimport TextAreaComponent from 'formiojs/components/textarea/TextArea.js';\r\nimport isNil from 'lodash/isNil';\r\n\r\n@Component({\r\n selector: 'mat-formio-textarea',\r\n styleUrls: ['./textarea.component.css'],\r\n template: `\r\n <mat-formio-form-field [instance]=\"instance\" [componentTemplate]=\"componentTemplate\"></mat-formio-form-field>\r\n <ng-template #componentTemplate let-hasLabel>\r\n <mat-form-field class=\"mat-formio-textarea\"\r\n [ngClass]=\"{'editor-enabled': !!instance.component.editor}\"\r\n style=\"width:100%; align-self:center;\"\r\n >\r\n <mat-label style=\"width:100%;\" *ngIf=\"hasLabel\">\r\n <span [instance]=\"instance\" matFormioLabel></span>\r\n </mat-label>\r\n <span *ngIf=\"instance.component.prefix\" matPrefix>{{ instance.component.prefix }}&nbsp;</span>\r\n <textarea matInput\r\n [placeholder]=\"instance.component.placeholder\"\r\n [formControl]=\"control\"\r\n [rows]=\"(instance.component.rows || 3)\"\r\n (input)=\"onChange()\"\r\n #textarea\r\n >\r\n </textarea>\r\n <span *ngIf=\"instance.component.suffix\" matSuffix>{{ instance.component.suffix }}</span>\r\n <mat-error *ngIf=\"instance.error\">{{ getErrorMessage() }}</mat-error>\r\n </mat-form-field>\r\n </ng-template>\r\n `\r\n})\r\nexport class MaterialTextareaComponent extends MaterialComponent implements AfterViewInit {\r\n @ViewChild('textarea') textarea: ElementRef;\r\n\r\n ngAfterViewInit() {\r\n if (this.element && this.element.nativeElement && this.instance) {\r\n // Add custom classes to elements.\r\n if (this.instance.component.customClass) {\r\n this.element.nativeElement.classList.add(this.instance.component.customClass);\r\n }\r\n }\r\n // Attach the element so the wysiwyg will work.\r\n this.instance.attachElement(this.textarea.nativeElement);\r\n }\r\n\r\n getErrorMessage() {\r\n // Check if instance and necessary properties exist\r\n if (this.instance && this.instance.parent && this.instance.parent._data) {\r\n if (this.instance.parent._data.submit) {\r\n this.control.markAllAsTouched();\r\n }\r\n }\r\n\r\n // Return the error message if it exists\r\n return this.instance.error ? this.instance.error.message : '';\r\n }\r\n\r\n\r\n getValue() {\r\n return isNil(this.control.value) ? '' : this.control.value;\r\n }\r\n}\r\nTextAreaComponent.MaterialComponent = MaterialTextareaComponent;\r\nexport { TextAreaComponent };\r\n","import { AfterViewInit, Component, QueryList, ViewChildren, ViewContainerRef } from '@angular/core';\r\nimport { MaterialComponent } from './MaterialComponent';\r\n\r\n@Component({\r\n selector: 'mat-formio-nested',\r\n template: '<ng-template #components></ng-template>'\r\n})\r\nexport class MaterialNestedComponent extends MaterialComponent implements AfterViewInit {\r\n public viewContainers;\r\n @ViewChildren('components', {read: ViewContainerRef}) components: QueryList<ViewContainerRef>;\r\n setInstance(instance: any) {\r\n instance.viewContainer = () => {\r\n return this.viewContainers ? this.viewContainers[0] : null;\r\n };\r\n super.setInstance(instance);\r\n }\r\n\r\n renderComponents() {\r\n if (this.instance.renderComponents) {\r\n this.instance.renderComponents();\r\n }\r\n }\r\n\r\n render() {\r\n this.viewContainers = this.components.toArray();\r\n this.renderComponents();\r\n this.ref.detectChanges();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.components.changes.subscribe(() => this.render());\r\n this.render();\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { MaterialNestedComponent } from '../MaterialNestedComponent';\r\nimport PanelComponent from 'formiojs/components/panel/Panel.js';\r\n@Component({\r\n selector: 'mat-formio-panel',\r\n template: `\r\n <mat-card appearance=\"outlined\" *ngIf=\"!instance.component.collapsible\">\r\n <mat-card-title *ngIf=\"instance?.component?.title\">\r\n {{ instance.component.title }}\r\n </mat-card-title>\r\n <mat-card-content style=\"display:flex; flex-direction:column; gap:1em;\">\r\n <ng-template #components></ng-template>\r\n </mat-card-content>\r\n </mat-card>\r\n <mat-expansion-panel *ngIf=\"instance.component.collapsible\"\r\n [expanded]=\"!instance.component.collapsed\"\r\n >\r\n <mat-expansion-panel-header *ngIf=\"instance?.component?.title\">\r\n <mat-panel-title>\r\n {{ instance.component.title }}\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <ng-template #components></ng-template>\r\n </mat-expansion-panel>\r\n `,\r\n styles: [\r\n ':host { margin-bottom: 1em; }'\r\n ]\r\n})\r\nexport class MaterialPanelComponent extends MaterialNestedComponent {}\r\nPanelComponent.MaterialComponent = MaterialPanelComponent;\r\nexport { PanelComponent };\r\n","import { Component } from '@angular/core';\r\nimport { MaterialNestedComponent } from '../MaterialNestedComponent';\r\nimport ColumnsComponent from 'formiojs/components/columns/Columns.js';\r\n\r\n@Component({\r\n selector: 'mat-formio-columns',\r\n template: `\r\n <div class=\"container columns-row\"\r\n [style.gap]=\"flexGap + '%'\"\r\n >\r\n <div\r\n *ngFor=\"let column of instance.component.columns; let i = index\"\r\n [style.flex]=\"'0 1 ' + flexWidth(column, i)\"\r\n style=\"display:flex; flex-direction:column; gap:1em;\">\r\n <ng-template #components></ng-template>\r\n </div>\r\n </div>\r\n `,\r\n styles: [`\r\n .columns-row {\r\n display: flex;\r\n flex-direction: row;\r\n flex-wrap: wrap;\r\n justify-content: center;\r\n }\r\n @media (max-width: 599px) {\r\n .columns-row {\r\n flex-direction: column;\r\n }\r\n }\r\n `]\r\n})\r\nexport class MaterialColumnsComponent extends MaterialNestedComponent {\r\n public flexGap = 0.5;\r\n public totalSpace = 0;\r\n setInstance(instance: any) {\r\n this.totalSpace = 100 - ((instance.component.columns.length - 1) * this.flexGap);\r\n super.setInstance(instance);\r\n instance.viewContainer = (component) => {\r\n return this.viewContainers ? this.viewContainers[component.column] : null;\r\n };\r\n }\r\n\r\n flexWidth(column, index) {\r\n if (index >= (this.instance.component.columns.length - 1)) {\r\n return Math.ceil(((parseFloat(column.width) / 12) * this.totalSpace)) + '%';\r\n } else {\r\n return Math.floor(((parseFloat(column.width) / 12) * this.totalSpace)) + '%';\r\n }\r\n }\r\n}\r\nColumnsComponent.MaterialComponent = MaterialColumnsComponent;\r\nexport { ColumnsComponent };\r\n","import { Component } from '@angular/core';\r\nimport { MaterialNestedComponent } from '../MaterialNestedComponent';\r\nimport ContainerComponent from 'formiojs/components/container/Container.js';\r\n\r\n@Component({\r\n selector: 'mat-formio-container',\r\n template: `\r\n <div style=\"display:flex; flex-direction:column; gap:1em;\">\r\n <ng-template #components></ng-template>\r\n </div>`\r\n})\r\nexport class MaterialContainerComponent extends MaterialNestedComponent { }\r\nContainerComponent.MaterialComponent = MaterialContainerComponent;\r\nexport { ContainerComponent };\r\n","import { Component } from '@angular/core';\r\nimport { MaterialNestedComponent } from '../MaterialNestedComponent';\r\nimport TabsComponent from 'formiojs/components/tabs/Tabs.js';\r\n\r\n@Component({\r\n selector: 'mat-formio-tabs',\r\n template: `\r\n <mat-tab-group>\r\n <mat-tab *ngFor=\"let tab of instance.component.components\" [label]=\"tab.label\">\r\n <div style=\"display:flex; flex-direction:column; gap:1em; border: 1px dotted rgba(0, 0, 0, 0.125)\">\r\n <ng-template #components></ng-template>\r\n </div>\r\n </mat-tab>\r\n </mat-tab-group>\r\n `\r\n})\r\nexport class MaterialTabsComponent extends MaterialNestedComponent {\r\n setInstance(instance: any) {\r\n super.setInstance(instance);\r\n instance.viewContainer = (component) => {\r\n return this.viewContainers ? this.viewContainers[component.tab] : null;\r\n };\r\n }\r\n}\r\nTabsComponent.MaterialComponent = MaterialTabsComponent;\r\nexport { TabsComponent };\r\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MaterialComponent } from '../MaterialComponent';\r\nimport TimeComponent from 'formiojs/components/time/Time.js';\r\nimport * as moment_ from 'moment';\r\n@Component({\r\n selector: 'mat-formio-time',\r\n template: `\r\n <mat-formio-form-field\r\n [instance]=\"instance\"\r\n [componentTemplate]=\"componentTemplate\"\r\n [renderElementOnly]=\"renderElementOnly\"\r\n ></mat-formio-form-field>\r\n <ng-template #componentTemplate let-hasLabel>\r\n <mat-label style=\"width:100%;\" *ngIf=\"hasLabel\">\r\n <span [instance]=\"instance\" matFormioLabel></span>\r\n </mat-label>\r\n\r\n <div style=\"display: block\">\r\n <div style=\"display:flex; flex-direction:row; gap:5%;\">\r\n <input\r\n [formControl]=\"hourControl\"\r\n [step]=\"hourStep\"\r\n [min]=\"0\"\r\n [max]=\"12\"\r\n type=\"number\"\r\n style=\"flex: 0 1 25%;\"\r\n (input)=\"onChange()\"\r\n >\r\n <input\r\n [formControl]=\"minuteControl\"\r\n [step]=\"minuteStep\"\r\n [min]=\"0\"\r\n [max]=\"59\"\r\n type=\"number\"\r\n style=\"flex: 0 1 25%;\"\r\n (input)=\"onChange()\"\r\n >\r\n <input\r\n [formControl]=\"secondControl\"\r\n [step]=\"secondStep\"\r\n [min]=\"0\"\r\n [max]=\"59\"\r\n type=\"number\"\r\n style=\"flex: 0 1 25%;\"\r\n (input)=\"onChange()\"\r\n *ngIf=\"instance?.component?.dataFormat === 'HH:mm:ss' ||\r\n instance?.component?.dataFormat === 'HH:mm:ss.SSS'\"\r\n >\r\n <button\r\n [disabled]=\"instance?.component?.disabled\"\r\n style=\"flex: 0 1 25%;\"\r\n (click)=\"changePeriod()\"\r\n >\r\n {{period}}\r\n </button>\r\n </div>\r\n <mat-error *ngIf=\"instance.error\">{{ instance.error.message }}</mat-error>\r\n </div>\r\n </ng-template>\r\n `\r\n})\r\n\r\nexport class MaterialTimeComponent extends MaterialComponent {\r\n public disabled = false;\r\n public period = 'AM';\r\n public hourControl: FormControl = new FormControl();\r\n public minuteControl: FormControl = new FormControl();\r\n public secondControl: FormControl = new FormControl();\r\n @Output() selectedEvent = new EventEmitter<any>();\r\n @Input() hourStep = 1;\r\n @Input() minuteStep = 1;\r\n @Input() secondStep = 1;\r\n @Input() renderElementOnly = false;\r\n\r\n setDisabled(disabled) {\r\n if (disabled) {\r\n this.hourControl.disable();\r\n this.minuteControl.disable();\r\n this.secondControl.disable();\r\n }\r\n }\r\n\r\n get dataFormat() {\r\n let format = this.instance.component.dataFormat;\r\n format = format ? format : 'HH:mm';\r\n return format;\r\n }\r\n\r\n setInstance(instance) {\r\n super.setInstance(instance);\r\n // this.control.setValue('00:00:00');\r\n this.onChange();\r\n }\r\n\r\n onChange() {\r\n const hours = this.hourControl.value;\r\n const minutes = this.minuteControl.value || '00';\r\n const seconds = this.secondControl.value || '';\r\n const rawValue = `${hours || '00'}:${minutes}${seconds ? ':' + seconds : ''} ${this.period}`;\r\n let value = this.getTwentyFourHourTime(rawValue);\r\n\r\n if (!hours) {\r\n value = this.instance.emptyValue;\r\n }\r\n\r\n this.control.setValue(value);\r\n if (this.instance) {\r\n super.onChange();\r\n }\r\n this.selectedEvent.emit(this.control);\r\n }\r\n\r\n setValue(value) {\r\n if (!value) {\r\n return;\r\n }\r\n super.setValue(value);\r\n const [hourValue, minuteValue, period] = value.split(':');\r\n this.hourControl.setValue(hourValue);\r\n this.minuteControl.setValue(minuteValue);\r\n // fix for default value with seconds instead of period\r\n this.period = period === ('AM' || 'PM') ? period : this.period;\r\n }\r\n\r\n getTwentyFourHourTime(amPmString) {\r\n const moment = moment_;\r\n return moment(amPmString, ['h:mm:ss A']).format(this.dataFormat);\r\n }\r\n\r\n changePeriod() {\r\n this.period = this.period === 'AM' ? 'PM' : 'AM';\r\n this.onChange();\r\n }\r\n}\r\n\r\nTimeComponent.MaterialComponent = MaterialTimeComponent;\r\nexport { TimeComponent };\r\n","import {Component, EventEmitter, Input, NgModule, Output, ViewChild} from '@angular/core';\r\nimport { MaterialComponent } from '../MaterialComponent';\r\n@Component({\r\n selector: 'mat-formio-calendar',\r\n styles: [\r\n `.calendar, .formio-time {\r\n padding: 16px;\r\n background-color: white;\r\n box-shadow: 0 2px 1px -1px rgba(0,0,0,.2), 0 1px 1px 0 rgba(0,0,0,.14), 0 1px 3px 0 rgba(0,0,0,.12);\r\n }\r\n .formio-time {\r\n display: flex;\r\n }\r\n `\r\n ],\r\n template: `\r\n <div class=\"container\" style=\"display:flex; flex-direction:row; flex-wrap:wrap; gap:0.5%;\">\r\n <div [ngStyle]=\"getPopupStyles()\">\r\n <mat-card appearance=\"outlined\" style=\"padding: 0;\">\r\n <mat-calendar\r\n [dateFilter]=\"dateFilter\"\r\n [maxDate]=\"maxDate\"\r\n [minDate]=\"minDate\"\r\n [selected]=\"selectedDate\"\r\n (selectedChange)=\"onDate($event)\"\r\n class=\"calendar\"\r\n *ngIf=\"enableDate !== false\"\r\n >\r\n </mat-calendar>\r\n <mat-formio-time\r\n #time\r\n [hourStep]=\"hourStep\"\r\n [instance]=\"instance\"\r\n [renderElementOnly]=\"true\"\r\n [minuteStep]=\"minuteStep\"\r\n (selectedEvent)=\"onTime($event)\"\r\n class=\"ml-3 formio-time\"\r\n *ngIf=\"enableTime\"\r\n >\r\n </mat-formio-time>\r\n </mat-card>\r\n </div>\r\n </div>\r\n `\r\n})\r\n\r\nexport class MaterialCalendarComponent extends MaterialComponent {\r\n public selectedDate: any;\r\n public selectedTime: any;\r\n public selectedTimeComponent: any;\r\n\r\n @ViewChild('time') time;\r\n\r\n @Input() enableDate: boolean;\r\n @Input() enableTime: boolean;\r\n @Input() minDate: any;\r\n @Input() maxDate: any;\r\n @Input() dateFilter: any;\r\n @Input() hourStep: any;\r\n @Input() minuteStep: any;\r\n @Output() timeSelectEvent = new EventEmitter<any>();\r\n @Output() dateSelectEvent = new EventEmitter<any>();\r\n\r\n setInstance(instance: any) {\r\n super.setInstance(instance);\r\n }\r\n\r\n setExistedDate(value) {\r\n this.selectedDate = value;\r\n }\r\n\r\n setExistedTime(value, forTime) {\r\n this.selectedTime = value;\r\n this.time.setValue(forTime);\r\n }\r\n\r\n onDate(event){\r\n this.selectedDate = event;\r\n this.dateSelectEvent.emit(this.selectedDate);\r\n }\r\n\r\n onTime(event) {\r\n this.selectedTime = event.value;\r\n this.timeSelectEvent.emit(this.selectedTime);\r\n }\r\n\r\n getPopupStyles() {\r\n return {\r\n position: 'absolute',\r\n zIndex: '1000',\r\n display: 'flex',\r\n maxWidth: '100%',\r\n maxHeight: '100%',\r\n top: '90px',\r\n left: '30px'\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, forwardRef, Input } from '@angular/core';\r\nimport { MAT_INPUT_VALUE_ACCESSOR } from '@angular/material/input';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: 'input[matMask]',\r\n providers: [\r\n {provide: MAT_INPUT_VALUE_ACCESSOR, useExisting: MaskDirective},\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => MaskDirective),\r\n multi: true,\r\n }\r\n ]\r\n})\r\nexport class MaskDirective {\r\n @Input('matMask') format: (value: string) => string;\r\n private _value: string | null;\r\n\r\n constructor(private elementRef: ElementRef<HTMLInputElement>) {}\r\n\r\n\r\n get value(): string | null {\r\n return this._value;\r\n }\r\n\r\n @Input('value')\r\n set value(value: string | null) {\r\n this._value = value;\r\n this.formatValue(value);\r\n }\r\n\r\n private formatValue(value: string | null) {\r\n if (value !== null) {\r\n this.elementRef.nativeElement.value = this.format(value);\r\n }\r\n else {\r\n this.elementRef.nativeElement.value = '';\r\n }\r\n }\r\n\r\n _onChange(value: any): void {\r\n }\r\n\r\n writeValue(value: any) {\r\n this._value = value;\r\n this.formatValue(this._value); // format Value\r\n }\r\n\r\n registerOnChange(fn: (value: any) => void) {\r\n this._onChange = fn;\r\n }\r\n\r\n registerOnTouched() {\r\n }\r\n}\r\n","import { Component, ViewChild } from '@angular/core'\r\nimport { MaterialComponent } from '../MaterialComponent';\r\nimport DateTimeComponent from 'formiojs/components/datetime/DateTime.js';\r\nimport { momentDate } from 'formiojs/utils/utils.js';\r\nimport { FormControl } from '@angular/forms';\r\n@Component({\r\n selector: 'mat-formio-date',\r\n host: {\r\n '(document:click)': 'clickOutside($event)',\r\n },\r\n template: `\r\n <mat-formio-form-field [instance]=\"instance\" [componentTemplate]=\"componentTemplate\"></mat-formio-form-field>\r\n <ng-template #componentTemplate let-hasLabel>\r\n <mat-label *ngIf=\"hasLabel\" fxFill>\r\n <span [instance]=\"instance\" matFormioLabel></span>\r\n </mat-label>\r\n\r\n <form class=\"example-form\">\r\n <mat-datepicker-toggle [disabled]=\"isDisabled()\" (click)=\"toggleCalendar($event)\">\r\n <mat-icon matDatepickerToggleIcon *ngIf=\"enableTime && !enableDate\">schedule</mat-icon>\r\n </mat-datepicker-toggle>\r\n <mat-form-field class=\"example-full-width\">\r\n <input\r\n *ngIf=\"enableTime && enableDate\"\r\n matInput\r\n type=\"datetime-local\"\r\n [placeholder]=\"instance.component.placeholder\"\r\n [formControl]=\"displayControl\"\r\n (input)=\"onChangeInput()\"\r\n [readonly]=\"!allowManualInput\"\r\n >\r\n <input\r\n *ngIf=\"enableTime && !enableDate\"\r\n matInput\r\n [placeholder]=\"instance.component.placeholder\"\r\n [formControl]=\"displayControl\"\r\n [matMask]=\"formatTime\"\r\n (input)=\"onChangeInput()\"\r\n [readonly]=\"!allowManualInput\"\r\n >\r\n <input\r\n *ngIf=\"!enableTime && enableDate\"\r\n matInput\r\n [placeholder]=\"instance.component.placeholder\"\r\n [formControl]=\"displayControl\"\r\n (input)=\"onChangeInput()\"\r\n [readonly]=\"!allowManualInput\"\r\n >\r\n </mat-form-field>\r\n\r\n <mat-formio-calendar\r\n #calendar\r\n [minDate]=\"instance.component.datePicker.minDate || ''\"\r\n [maxDate]=\"instance.component.datePicker.maxDate || ''\"\r\n [dateFilter]=\"dateFilter\"\r\n [hidden]=\"!isPickerOpened\"\r\n (dateSelectEvent)=\"onChangeDate($event)\"\r\n (timeSelectEvent)=\"onChangeTime($event)\"\r\n [enableDate]=\"enableDate\"\r\n [enableTime]=\"enableTime\"\r\n [hourStep]=\"instance.component.timePicker.hourStep\"\r\n [minuteStep]=\"instance.component.timePicker.minuteStep\"\r\n [instance]=\"instance\"\r\n ></mat-formio-calendar>\r\n <mat-error *ngIf=\"instance.error\">{{ instance.error.message }}</mat-error>\r\n </form>\r\n </ng-template>\r\n `\r\n})\r\n\r\nexport class MaterialDateComponent extends MaterialComponent {\r\n public timeControl: FormControl = new FormControl();\r\n public displayControl: FormControl = new FormControl();\r\n public isPickerOpened: boolean;\r\n public selectedDate: any;\r\n public selectedTime: any = '00:00';\r\n public allowManualInput: boolean = true;\r\n\r\n @ViewChild('calendar') calendar;\r\n\r\n get enableDate() {\r\n return this.instance && this.instance.component.enableDate !== false;\r\n }\r\n\r\n get enableTime() {\r\n return this.instance && this.instance.component.enableTime === true;\r\n }\r\n\r\n setDisplayControlValue(value = null) {\r\n const format = `YYYY-MM-DD${this.enableTime ? 'THH:mm' : ''}`;\r\n value = value || this.getDateTimeValue();\r\n\r\n if (value) {\r\n this.displayControl.setValue(momentDate(value).format(format));\r\n }\r\n else {\r\n this.displayControl.setValue('');\r\n }\r\n }\r\n\r\n onChangeDate(event) {\r\n this.selectedDate = momentDate(event).utc().format();\r\n this.control.setValue(this.selectedDate);\r\n this.setDateTime();\r\n }\r\n\r\n onChangeTime(time) {\r\n this.selectedTime = time;\r\n if (this.selectedDate || (this.enableTime && !this.enableDate)) {\r\n this.setDateTime();\r\n }\r\n }\r\n\r\n onChangeInput() {\r\n const value = this.dateFilter(this.displayControl.value) &&\r\n this.checkMinMax(this.displayControl.value) ? this.displayControl.value : '';\r\n\r\n this.control.setValue(value);\r\n this.onChange();\r\n }\r\n\r\n getDateTimeValue() {\r\n let newDate = '';\r\n let isSelectedTime = false;\r\n\r\n if (this.calendar && this.calendar.selectedTime) {\r\n const { selectedTime } = this.calendar;\r\n isSelectedTime = true;\r\n\r\n if (this.selectedTime !== selectedTime) {\r\n this.selectedTime = selectedTime;\r\n }\r\n }\r\n\r\n if (this.enableTime && this.enableDate) {\r\n const [hours, minutes] = this.selectedTime.split(':');\r\n newDate = isSelectedTime\r\n ? momentDate(this.selectedDate)\r\n .hours(Number.parseInt(hours))\r\n .minutes(Number.parseInt(minutes))\r\n .utc()\r\n : this.selectedDate;\r\n }\r\n\r\n if (!this.enableTime && this.enableDate) {\r\n newDate = this.selectedDate;\r\n }\r\n\r\n if (this.enableTime && !this.enableDate) {\r\n const [hours, minutes] = this.selectedTime.split(':');\r\n newDate = momentDate(new Date())\r\n .hours(Number.parseInt(hours))\r\n .minutes(Number.parseInt(minutes))\r\n .seconds(0)\r\n .utc();\r\n }\r\n\r\n return newDate;\r\n }\r\n\r\n setDateTime() {\r\n this.control.setValue(this.getDateTimeValue());\r\n this.onChange();\r\n }\r\n\r\n setInstance(instance: any) {\r\n super.setInstance(instance);\r\n this.isDisabled() ? this.control.disable() : this.control.enable();\r\n this.isDisabled() ? this.displayControl.disable() : this.displayControl.enable();\r\n\r\n if (this.instance) {\r\n this.allowManualInput = this.instance.component.allowInput === false ? false : true;\r\n if (this.instance.component && this.instance.component.datePicker) {\r\n const { minDate: min, maxDate: max } = this.instance.component.datePicker;\r\n\r\n // It improves the date to the full format if the customer set only a year. Otherwise we will have conflicts into the moment.js.\r\n const { minDate, maxDate } = this.improveMinMaxDate(min, max);\r\n this.instance.component.datePicker.minDate = minDate;\r\n this.instance.component.datePicker.maxDate = maxDate;\r\n }\r\n }\r\n }\r\n\r\n toggleCalendar(event) {\r\n if (!this.isDisabled()) {\r\n if (!this.isPickerOpened) {\r\n const date = this.getValue();\r\n if (date && this.checkMinMax(date)) {\r\n if (this.enableDate && this.calendar && !this.calendar.selectedDate) {\r\n this.calendar.setExistedDate(momentDate(date).toDate())\r\n }\r\n\r\n if (this.enableTime && this.calendar && !this.calendar.selectedTime) {\r\n const time = momentDate(date)\r\n this.calendar.setExistedTime(time.format('HH:mm'), time.format('h:mm:A'))\r\n }\r\n }\r\n }\r\n this.isPickerOpened = !this.isPickerOpened;\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n isDisabled() {\r\n const { readonly, disabled } = this.instance.component;\r\n return readonly || disabled || this.instance.root.options.readOnly\r\n }\r\n\r\n public formatTime = (value) => {\r\n if (!value) {\r\n return this.instance.emptyValue;\r\n }\r\n return momentDate(value).format(this.instance.component.format);\r\n }\r\n\r\n setValue(value) {\r\n if (this.dateFilter(value) && this.checkMinMax(value)) {\r\n this.setDisplayControlValue(value);\r\n super.setValue(value);\r\n }\r\n }\r\n\r\n onChange() {\r\n const value = this.dateFilter(this.getValue()) && this.checkMinMax(this.getValue()) ? this.getValue() : '';\r\n this.setDisplayControlValue(value);\r\n }\r\n\r\n beforeSubmit() {\r\n this.onChange();\r\n super.beforeSubmit();\r\n }\r\n\r\n checkMinMax(value) {\r\n let isValid = true;\r\n const { minDate: min, maxDate: max } = this.instance.component.datePicker;\r\n const { minDate, maxDate } = this.improveMinMaxDate(min, max);\r\n\r\n if (minDate) {\r\n isValid = momentDate(value).isSameOrAfter(minDate);\r\n }\r\n if (maxDate && isValid) {\r\n isValid = momentDate(value).isSameOrBefore(maxDate);\r\n }\r\n return isValid;\r\n }\r\n\r\n disableWeekends(d: Date) {\r\n if (d && d.getDay) {\r\n const day = d.getDay();\r\n return day !== 0 && day !== 6;\r\n }\r\n return true;\r\n }\r\n\r\n disableDates(dates: Array<string>, d: Date) {\r\n const formattedDates = dates.map((date) => momentDate(date).format('YYYY-MM-DD'));\r\n return !formattedDates.includes(momentDate(d).format('YYYY-MM-DD'));\r\n }\r\n\r\n dateFilter = (d: Date | null): boolean => {\r\n const isValid = this.instance.component.datePicker.disableWeekends ? this.disableWeekends(d) : true;\r\n return this.instance.component.widget.disabledDates && isValid ?\r\n this.disableDates(this.instance.component.widget.disabledDates.split(','), d) : isValid;\r\n }\r\n\r\n clickOutside(event) {\r\n if (this.isPickerOpened && (event.target.classList.value == \"mat-calendar-body-cell-content mat-focus-indicator mat-calendar-body-today\" || event.target.classList.value == \"mat-calendar-body\" || event.target.classList.value == \"mat-calendar-body-cell mat-calendar-body-active\" || event.target.classList.value == '' || event.target.classList.value == \"mat-calendar-body-label\" || event.target.classList.value == \"mat-calendar-table-header-divider\" || event.target.classList.value == \"mat-calendar-controls\" || event.target.classList.value == \"mat-button-wrapper\" || event.target.classList.value == \"mat-calendar-header\" || event.target.classList.value == \"mat-calendar-arrow mat-calendar-invert\" || event.target.classList.value == \"mat-calendar-content cdk-focused cdk-mouse-focused\" || event.target.classList.value == \"mat-calendar calendar ng-star-inserted\" || event.target.classList.value == \"mat-focus-indicator mat-calendar-period-button mat-button mat-button-base cdk-focused cdk-mouse-focused\" || event.target.classList.value == 'mat-calendar-body-cell-content mat-focus-indicator' || event.target.classList.value == \"mat-focus-indicator mat-calendar-next-button mat-icon-button mat-button-base cdk-focused cdk-mouse-focused\" || event.target.classList.value == \"mat-focus-indicator mat-calendar-previous-button mat-icon-button mat-button-base cdk-focused cdk-mouse-focused\")) {\r\n this.isPickerOpened = true;\r\n } else {\r\n if (event.target.classList.value == 'mat-calendar-body-cell-content mat-focus-indicator mat-calendar-body-selected' && this.isPickerOpened) {\r\n this.toggleCalendar(event);\r\n } else {\r\n this.isPickerOpened = false;\r\n }\r\n }\r\n // if (event.target.classList.contains('mat-calendar-body-selected') && this.isPickerOpened) {\r\n // this.toggleCalendar(event);\r\n // }\r\n\r\n }\r\n\r\n improveMinMaxDate(minDate, maxDate) {\r\n if (minDate && minDate.length === 4) {\r\n minDate = momentDate(`${minDate}-01-01`).format('YYYY-MM-DD');\r\n }\r\n\r\n if (maxDate && maxDate.length === 4) {\r\n maxDate = momentDate(`${maxDate}-01-01`).subtract(1, 'day').format('YYYY-MM-DD');\r\n }\r\n return { minDate, maxDate };\r\n }\r\n}\r\nDateTimeComponent.MaterialComponent = MaterialDateComponent;\r\nexport { DateTimeComponent };\r\n","import { Component } from '@angular/core';\r\nimport { MaterialComponent } from '../MaterialComponent';\r\n// import CheckboxComponent from 'formiojs/components/checkbox/Checkbox.js';\r\nimport CheckboxComponent from 'formiojs/components/checkbox/Checkbox.js';\r\nimport _ from 'lodash';\r\n\r\n@Component({\r\n selector: 'mat-formio-checkbox',\r\n template: `\r\n <mat-checkbox (change)=\"onChange()\" [ngClass]=\"{'validation-error' : !!instance.error}\"\r\n [formControl]=\"control\"\r\n >\r\n <span matFormioLabel [instance]=\"instance\"></span>\r\n <mat-icon *ngIf=\"instance.component.tooltip\" matSuffix\r\n matTooltip=\"{{ instance.component.tooltip }}\" style=\"font-size: 1rem;\">info\r\n </mat-icon>\r\n </mat-checkbox>\r\n <mat-hint>\r\n {{ instance.component.description }}\r\n </mat-hint>\r\n <mat-error *ngIf=\"instance.error\">{{ instance.error.message }}</mat-error>\r\n `,\r\n styles:[`\r\n/* TODO(mdc-migration): The following rule targets internal classes of checkbox that may no longer apply for the MDC version. */\r\n::ng-deep .mat-mdc-checkbox.validation-error .mat-checkbox-frame {border-color: red; }`]\r\n})\r\nexport class MaterialCheckboxComponent extends MaterialComponent {\r\n getValue() {\r\n return _.isNil(this.control.value) ? '' : this.control.value;\r\n }\r\n}\r\nCheckboxComponent.MaterialComponent = MaterialCheckboxComponent;\r\nexport { CheckboxComponent };\r\n","import { Component } from '@angular/core';\r\nimport FieldsetComponent from 'formiojs/components/fieldset/Fieldset.js';\r\nimport { MaterialNestedComponent } from '../MaterialNestedComponent';\r\n@Component({\r\n selector: 'mat-formio-fieldset',\r\n template: `\r\n <fieldset>\r\n <legend [attr.ref]=\"'header'\">\r\n {{ instance.component.legend }}\r\n <mat-icon *ngIf=\"instance.component.tooltip\"\r\n matSuffix\r\n matTooltip=\"{{ instance.component.tooltip }}\"\r\n >\r\n info\r\n </mat-icon>\r\n </legend>\r\n <div class=\"fieldset-body\" [attr.ref]=\"instance.component.key\" style=\"display:flex; flex-direction:column; gap:1em;\">\r\n <ng-template #components></ng-template>\r\n </div>\r\n </fieldset>\r\n `,\r\n styles: []\r\n})\r\nexport class MaterialFieldsetComponent extends MaterialNestedComponent {}\r\nFieldsetComponent.MaterialComponent = MaterialFieldsetComponent;\r\nexport { FieldsetComponent };\r\n","import { Component } from '@angular/core';\r\nimport { MaterialComponent } from '../MaterialComponent';\r\nimport ContentComponent from 'formiojs/components/content/Content.js';\r\n@Component({\r\n selector: 'mat-formio-content',\r\n template: `<div [innerHTML]=\"instance.content\"></div>`\r\n})\r\nexport class MaterialContentComponent extends MaterialComponent {}\r\nContentComponent.MaterialComponent = MaterialContentComponent;\r\nexport { ContentComponent };\r\n","import { Component, ViewChild, ElementRef, AfterViewInit } from '@angular/core';\r\nimport { MaterialComponent } from '../MaterialComponent';\r\nimport SignatureComponent from 'formiojs/components/signature/Signature.js';\r\n@Component({\r\n selector: 'mat-formio-signature',\r\n template: `\r\n <mat-formio-form-field [instance]=\"instance\" [componentTemplate]=\"componentTemplate\"></mat-formio-form-field>\r\n <ng-template #componentTemplate let-hasLabel>\r\n <div #signature>\r\n\r\n <mat-label *ngIf=\"hasLabel\">\r\n <span [instance]=\"instance\" matFormioLabel></span>\r\n </mat-label>\r\n\r\n <button mat-icon-button [ngStyle]=\"{position: 'absolute'}\" ref=\"refresh\">\r\n <mat-icon>refresh</mat-icon>\r\n </button>\r\n\r\n <div class=\"signature-pad-body\"\r\n [ngStyle]=\"{width: instance.component.width, height: instance.component.height, padding: 0, margin: 0}\"\r\n [attr.tabindex]=\"instance.component.tabindex || 0\"\r\n ref=\"padBody\"\r\n >\r\n <canvas class=\"signature-pad-canvas\"\r\n [attr.height]=\"instance.component.height\"\r\n ref=\"canvas\"\r\n ></canvas>\r\n <img style=\"width:100%; height:100%;\" [ngStyle]=\"{display: 'none'}\" ref=\"signatureImage\">\r\n </div>\r\n <div *ngIf=\"instance.component.footer\"\r\n class=\"signature-pad-footer\"\r\n style=\"display:flex; flex-direction:row; justify-content:center; align-items:center;\"\r\n >\r\n <mat-hint>{{ instance.t(instance.component.footer) }}</mat-hint>\r\n </div>\r\n </div>\r\n </ng-template>\r\n `\r\n})\r\nexport class MaterialSignatureComponent extends MaterialComponent implements AfterViewInit {\r\n @ViewChild('signature') signatureElement: ElementRef;\r\n\r\n renderComponents() {\r\n if (this.signatureElement) {\r\n this.instance.attach(this.signatureElement.nativeElement);\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.renderComponents();\r\n }\r\n}\r\nSignatureComponent.MaterialComponent = MaterialSignatureComponent;\r\nexport { SignatureComponent };\r\n","import { Component } from '@angular/core';\r\nimport { MaterialComponent } from '../MaterialComponent';\r\nimport SurveyComponent from 'formiojs/components/survey/Survey.js';\r\nimport { FormControl } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'mat-formio-survey',\r\n template: `\r\n\r\n <mat-formio-form-field\r\n [instance]=\"instance\"\r\n [componentTemplate]=\"componentTemplate\"\r\n [showDescription]=\"false\"\r\n ></mat-formio-form-field>\r\n <ng-template #componentTemplate let-hasLabel>\r\n\r\n <table class=\"mat-elevation-z8 mat-table\" fxFill>\r\n <thead>\r\n <tr class=\"mat-header-row\">\r\n <th class=\"mat-header-cell\">\r\n <h2 *ngIf=\"hasLabel\">\r\n <span [instance]=\"instance\" matFormioLabel></span>\r\n </h2>\r\n </th>\r\n <th class=\"mat-header-cell\"\r\n *ngFor=\"let value of instance.component.values\"\r\n style=\"text-align: center;\"\r\n >\r\n {{ value.label }}\r\n </th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody>\r\n <tr class=\"mat-row\" *ngFor=\"let question of instance.component.questions; index as i;\">\r\n <td class=\"mat-cell\">{{ question.label }}</td>\r\n <td class=\"mat-cell\"\r\n *ngFor=\"let value of instance.component.values; index as j;\"\r\n style=\"text-align: center;\"\r\n >\r\n <mat-radio-group (change)=\"onChange()\"\r\n [formControl]=\"getFormControl(question.value)\"\r\n [name]=\"getUniqueName(question.value)\"\r\n >\r\n <mat-radio-button [value]=\"value.value\"></mat-radio-button>\r\n </mat-radio-group>\r\n </td>\r\n </tr>\r\n <mat-hint *ngIf=\"instance.component.description\" class=\"mat-formio-component-description\">\r\n {{ instance.component.description }}\r\n </mat-hint>\r\n </tbody>\r\n\r\n <mat-error *ngIf=\"instance.error\">{{ instance.error.message }}</mat-error>\r\n </table>\r\n </ng-template>\r\n `\r\n})\r\nexport class MaterialSurveyComponent extends MaterialComponent {\r\n public controls: any = {};\r\n getFormControl(question) {\r\n if (!this.controls[question]) {\r\n this.controls[question] = new FormControl();\r\n if (this.instance.shouldDisabled) {\r\n this.controls[question].disable();\r\n }\r\n }\r\n return this.controls[question];\r\n }\r\n\r\n setDisabled(disabled) {\r\n const method = disabled ? 'disable' : 'enable';\r\n for (const question in this.controls) {\r\n if (this.controls.hasOwnProperty(question)) {\r\n this.controls[question][method]();\r\n }\r\n }\r\n }\r\n\r\n getValue() {\r\n const values = {};\r\n for (const question in this.controls) {\r\n if (this.controls.hasOwnProperty(question)) {\r\n values[question] = this.controls[question].value || false;\r\n }\r\n }\r\n return values;\r\n }\r\n\r\n setValue(value) {\r\n for (const question in value) {\r\n if (value.hasOwnProperty(question)) {\r\n const control = this.getFormControl(question);\r\n if (control) {\r\n control.setValue(value[question] || false);\r\n }\r\n }\r\n }\r\n }\r\n\r\n getUniqueName(question) {\r\n return `${this.instance.id}-${question}`;\r\n }\r\n}\r\nSurveyComponent.MaterialComponent = MaterialSurveyComponent;\r\nexport { SurveyComponent };\r\n","import { Component } from '@angular/core';\r\nimport { MaterialComponent } from '../MaterialComponent';\r\nimport RadioComponent from 'formiojs/components/radio/Radio.js';\r\n\r\n@Component({\r\n selector: 'mat-formio-radio',\r\n template: `\r\n <mat-formio-form-field [instance]=\"instance\" [componentTemplate]=\"componentTemplate\"></mat-formio-form-field>\r\n <ng-template #componentTemplate let-hasLabel>\r\n <div style=\"display:flex; flex-direction:column;\">\r\n <mat-label *ngIf=\"hasLabel\">\r\n <span [instance]=\"instance\" matFormioLabel></span>\r\n </mat-label>\r\n\r\n <mat-radio-group\r\n (change)=\"onChange()\"\r\n [formControl]=\"control\"\r\n style=\"display:flex; margin-left:10px; gap:10px;\"\r\n [style.flex-direction]=\"getLayout()\"\r\n >\r\n <mat-radio-button *ngFor=\"let option of instance.component.values\"\r\n value=\"{{ option.value }}\"\r\n [checked]=\"isRadioChecked(option)\"\r\n (keyup.space)=\"clearValue($event, option)\"\r\n (click)=\"clearValue($event, option)\"\r\n >\r\n {{ option.label }}\r\n </mat-radio-button>\r\n <mat-error *ngIf=\"instance.error\">{{ instance.error.message }}</mat-error>\r\n </mat-radio-group>\r\n </div>\r\n </ng-template>\r\n `\r\n})\r\nexport class MaterialRadioComponent extends MaterialComponent {\r\n getLayout() {\r\n return this.instance.component.inline ? 'row' : 'column';\r\n }\r\n\r\n isRadioChecked(option) {\r\n return option.value === this.instance.dataValue;\r\n }\r\n\r\n clearValue(event, option) {\r\n if (this.isRadioChecked(option)) {\r\n event.preventDefault();\r\n this.deselectValue();\r\n }\r\n }\r\n\r\n deselectValue() {\r\n this.instance.updateValue(null, {\r\n modified: true,\r\n });\r\n }\r\n}\r\nRadioComponent.MaterialComponent = MaterialRadioComponent;\r\nexport { RadioComponent };\r\n","import { Component } from '@angular/core';\r\nimport { MaterialRadioComponent } from '../radio/radio.component';\r\nimport SelectBoxesComponent from 'formiojs/components/selectboxes/SelectBoxes.js';\r\n@Component({\r\n selector: 'mat-formio-selectboxes',\r\n template: `\r\n <mat-formio-form-field [instance]=\"instance\" [componentTemplate]=\"componentTemplate\"></mat-formio-form-field>\r\n <ng-template #componentTemplate let-hasLabel>\r\n <div style=\"display:flex; flex-direction:column;\">\r\n <mat-label *ngIf=\"hasLabel\">\r\n <span [instance]=\"instance\" matFormioLabel></span>\r\n </mat-label>\r\n <div\r\n style=\"display:flex; margin-left:10px; gap:10px;\"\r\n [style.flex-direction]=\"getLayout()\"\r\n >\r\n <mat-checkbox\r\n *ngFor=\"let option of instance.component.values\"\r\n (change)=\"onChange()\"\r\n [(ngModel)]=\"value[option.value]\"\r\n [disabled]=\"disabled\"\r\n >\r\n {{ option.label }}\r\n </mat-checkbox>\r\n <mat-error *ngIf=\"instance.error\">{{ instance.error.message }}</mat-error>\r\n </div>\r\n </div>\r\n </ng-template>\r\n `\r\n})\r\nexport class MaterialSelectBoxesComponent extends MaterialRadioComponent {\r\n public value: any = {};\r\n public disabled = false;\r\n\r\n setInstance(instance) {\r\n instance.component.values.forEach((option) => {\r\n this.value[option.value] = false;\r\n });\r\n super.setInstance(instance);\r\n }\r\n\r\n getValue() {\r\n return this.value;\r\n }\r\n\r\n setValue(value) {\r\n const normalizedValue = this.instance.normalizeValue(value);\r\n for (const prop in normalizedValue) {\r\n if (normalizedValue.hasOwnProperty(prop)) {\r\n this.value[prop] = normalizedValue[prop];\r\n }\r\n }\r\n }\r\n\r\n setDisabled(disabled) {\r\n this.disabled = !!disabled;\r\n }\r\n\r\n onChange() {\r\n this.instance.updateValue(this.getValue(), {modified: true});\r\n this.instance.triggerChange({modified: true});\r\n }\r\n}\r\nSelectBoxesComponent.MaterialComponent = MaterialSelectBoxesComponent;\r\nexport { SelectBoxesComponent };\r\n","import { Injectable } from '@angular/core';\r\nimport * as CryptoJS from 'crypto-js';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\ninterface VendorProductsResponse {\r\n code: number;\r\n data: any;\r\n message: string;\r\n statusCode: number;\r\n}\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CommonService {\r\n paramsData: any;\r\n includeDescription: any;\r\n vendorId: any;\r\n onlyActive: any;\r\n currentUser: any;\r\n private dropdownItemsSubject = new BehaviorSubject<any[]>([]);\r\n dropdownItems$ = this.dropdownItemsSubject.asObservable();\r\n private setFlag = new BehaviorSubject<boolean>(false); // Initialize with false\r\n dropdownflag$ = this.setFlag.asObservable(); // Observable that emits the boolean value\r\n holy: any = '';\r\n grail: any = '';\r\n //static sort_5 = '4sw==';\r\n private sort_5 = 'oOA==';\r\n private Lsort_5 = 'L/w==';\r\n private Jsort_5 = 'BaQ==';\r\n private Psort_5 = 'WVQ==';\r\n\r\n //static sales_2 = '2+T2NX';\r\n private sales_2 = 'gupVC1';\r\n private Lsales_2 = 'DyLI+G';\r\n private Jsales_2 = '5g63ak';\r\n private Psales_2 = 'HFQDgE';\r\n\r\n //static Mobile_4 = 'RR12R';\r\n private Mobile_4 = 'NV9VK';\r\n private LMobile_4 = '+P91l';\r\n private JMobile_4 = 'N+Bxw';\r\n private PMobile_4 = 'j4UMt';\r\n\r\n //static Id_2 = 'qUBQE';\r\n private Id_2 = 'W7TJv';\r\n private LId_2 = 'kAJ87';\r\n private JId_2 = 'I4PMB';\r\n private PId_2 = '4Ha4U';\r\n\r\n // static Name_1 = '8F/';\r\n private Name_1 = 'd3u';\r\n private LName_1 = 'UwX';\r\n private JName_1 = 'mCc';\r\n private PName_1 = 'nyP';\r\n\r\n private city = 'Vq';//1\r\n private state = 'drA2';//4\r\n private region = 'E/f';//2\r\n private territory = 'gZnA==';//6\r\n private country = '2sMK';//5\r\n private continent = 'Q5N2X';//3\r\n private Jcity = 'lk';//1\r\n private Jstate = 'rswL';//4\r\n private Jregion = 'xsH';//2\r\n private Jterritory = 'Xsow==';//6\r\n private Jcountry = 'n0bs';//5\r\n private Jcontinent = 'hQOoI';//3\r\n\r\n private Lcity = 'Aw';//1\r\n private Lstate = 'hrmx';//4\r\n private Lregion = 'MMC';//2\r\n private Lterritory = 'vVGQ==';//6\r\n private Lcountry = 'IqPc';//5\r\n private Lcontinent = 'CttR+';//3\r\n\r\n private Pcity = '7h';//1\r\n private Pstate = 'JtNz';//4\r\n private Pregion = 'FTl';//2\r\n private Pterritory = '/v+g==';//6\r\n private Pcountry = 'WFDd';//5\r\n private Pcontinent = 'sDt6N';//3\r\n\r\n\r\n constructor(public http: HttpClient) {\r\n this.currentUser = JSON.parse(localStorage.getItem('currentUser'));\r\n this.holy = CryptoJS.enc.Base64.parse(this.getcombodeal());\r\n this.grail = CryptoJS.enc.Base64.parse(this.getglobedata());\r\n\r\n this.paramsData = JSON.parse(localStorage.getItem('productPickerParams'));\r\n }\r\n\r\n getBaseApiUrl(): string | null {\r\n const baseUrlMapping = {\r\n 'bG9jYWxob3N0': 'http://localhost:58504',\r\n 'bGluY29sbi52YXJ0b3BpYS5jb20=': 'https://lincoln-api.vartopia.com',\r\n 'c3RhZ2UudmFydG9waWEuY29t': 'https://stage-api.vartopia.com',\r\n 'bXkudmFydG9waWEuY29t': 'https://reagan-api.vartopia.com',\r\n 'amFja3Nvbi52YXJ0b3BpYS5jb20=': 'https://jackson-api.vartopia.com',\r\n 'dWF0LnZhcnRvcGlhLmNvbQ==': 'https://uat-api.vartopia.com'\r\n };\r\n\r\n // Get the current hostname\r\n const hostname = window.location.hostname;\r\n return baseUrlMapping[btoa(hostname)] || null;\r\n }\r\n\r\n scrumble(msg) {\r\n if (msg !== null && msg !== undefined) {\r\n var conceal = this.getcampaign(msg, this.holy, this.grail);\r\n var sha256 = CryptoJS.HmacSHA256(CryptoJS.enc.Base64.stringify(this.grail) + conceal.toString(), CryptoJS.enc.Base64.stringify(this.holy));\r\n var hashInBase64 = CryptoJS.enc.Base64.stringify(sha256);\r\n let keyValue = {\r\n \"value\": conceal.toString(),\r\n \"mac\": hashInBase64\r\n };\r\n var result = JSON.stringify(keyValue);\r\n var jumbled = CryptoJS.enc.Utf8.parse(result);\r\n return CryptoJS.enc.Base64.stringify(jumbled);\r\n }\r\n }\r\n\r\n getcampaign(data: any, holy: any, grail: any) {\r\n return CryptoJS.AES.encrypt(data.toString(), holy,\r\n {\r\n blockSize: 128,\r\n iv: grail,\r\n mode: CryptoJS.mode.CBC,\r\n padding: CryptoJS.pad.Pkcs7\r\n });\r\n }\r\n\r\n /* Intialization of api path and queryparams */\r\n initializeApiPath(getUrl, queryParams: any): Observable<any> {\r\n if (queryParams?.length) {\r\n const changeToObject = this.convertToObject(queryParams);\r\n if (Object.keys(changeToObject).length) {\r\n const queryString = this.convertToQueryString(changeToObject);\r\n const baseApiUrl = this.getBaseApiUrl();\r\n var apiUrl = `${baseApiUrl}/api/` + getUrl;\r\n apiUrl += '?' + queryString;\r\n return this.http.get<VendorProductsResponse>(apiUrl);\r\n }\r\n }\r\n }\r\n\r\n /* Functon for convert array to object */\r\n convertToObject(queryParams) {\r\n if (queryParams.length) {\r\n var obj = {};\r\n queryParams.forEach(function (item) {\r\n obj[item.key] = item.value;\r\n });\r\n return obj;\r\n }\r\n }\r\n\r\n loadProducts(pageNumber, pazeSize, search: string = '', onlyActive: boolean = true, description: boolean = false, levelOneId: any, levelTwoId: any, levelThreeId: any, levelFourId: any): Observable<any> {\r\n this.paramsData = JSON.parse(localStorage.getItem('productPickerParams'));\r\n const baseApiUrl = this.getBaseApiUrl();\r\n const vendorId = this.getValueByKey(this.paramsData, 'vendorId');\r\n const programId = this.getValueByKey(this.paramsData, 'programId');\r\n let apiUrl = `${baseApiUrl}/api/VendorFormBuilder/GetVendorProductsV2?vendorId=${vendorId}&pageNumber=${pageNumber}&pageSize=${pazeSize}&search=${search}&onlyActive=${onlyActive}&includeDescription=${description}&levelOne=${levelOneId}&levelTwo=${levelTwoId}&levelThree=${levelThreeId}&levelFour=${levelFourId}`;\r\n if (programId) {\r\n apiUrl += `&programId=${programId}`;\r\n }\r\n return this.http.get<VendorProductsResponse>(apiUrl);\r\n }\r\n\r\n listSubCategory(category: string): Observable<any> {\r\n this.paramsData = JSON.parse(localStorage.getItem('productPickerParams'));\r\n const vendorId = this.getValueByKey(this.paramsData, 'vendorId');\r\n const baseApiUrl = this.getBaseApiUrl();\r\n return this.http.get<VendorProductsResponse>(`${baseApiUrl}/api/VendorFormBuilder/GetProductsSubCategory?vendorId=${vendorId}&categoryName=${category}`)\r\n }\r\n\r\n /* Append key and value to query string */\r\n convertToQueryString(queryParams) {\r\n const queryString = Object.keys(queryParams)\r\n .map(key => {\r\n if (queryParams[key] !== '' && queryParams[key] !== null) {\r\n return encodeURIComponent(key) + '=' + encodeURIComponent(queryParams[key]);\r\n } else {\r\n if (queryParams.hasOwnProperty('search')) {\r\n return encodeURIComponent(key) + '=' + encodeURIComponent(queryParams[key]);\r\n }\r\n }\r\n })\r\n .join('&');\r\n return queryString;\r\n }\r\n\r\n listProductCategory(): Observable<any> {\r\n this.paramsData = JSON.parse(localStorage.getItem('productPickerParams'));\r\n const vendorId = this.getValueByKey(this.paramsData, 'vendorId');\r\n const baseApiUrl = this.getBaseApiUrl();\r\n return this.http.get<VendorProductsResponse>(`${baseApiUrl}/api/VendorFormBuilder/GetProductsCategory?vendorId=${vendorId}`);\r\n }\r\n\r\n productLevelOne(): Observable<any> {\r\n this.paramsData = JSON.parse(localStorage.getItem('productPickerParams'));\r\n const baseApiUrl = this.getBaseApiUrl();\r\n const vendorId = this.getValueByKey(this.paramsData, 'vendorId');\r\n return this.http.get<VendorProductsResponse>(`${baseApiUrl}/api/VendorFormBuilder/GetProductLevelOne?vendorId=${vendorId}`);\r\n }\r\n\r\n productLevelTwo(levelOneId: any): Observable<any> {\r\n this.paramsData = JSON.parse(localStorage.getItem('productPickerParams'));\r\n const baseApiUrl = this.getBaseApiUrl();\r\n const vendorId = this.getValueByKey(this.paramsData, 'vendorId');\r\n return this.http.get<VendorProductsResponse>(`${baseApiUrl}/api/VendorFormBuilder/GetProductLevelTwo?levelOneId=${levelOneId}&vendorId=${vendorId}`);\r\n }\r\n\r\n productLevelThree(levelOneId: any, levelTwoId: any): Observable<any> {\r\n this.paramsData = JSON.parse(localStorage.getItem('productPickerParams'));\r\n const baseApiUrl = this.getBaseApiUrl();\r\n const vendorId = this.getValueByKey(this.paramsData, 'vendorId');\r\n return this.http.get<VendorProductsResponse>(`${baseApiUrl}/api/VendorFormBuilder/GetProductLevelThree?levelOneId=${levelOneId}&levelTwoId=${levelTwoId}&vendorId=${vendorId}`);\r\n }\r\n\r\n productLevelFour(levelOneId: any, levelTwoId: any, levelThreeId: any): Observable<any> {\r\n this.paramsData = JSON.parse(localStorage.getItem('productPickerParams'));\r\n const baseApiUrl = this.getBaseApiUrl();\r\n const vendorId = this.getValueByKey(this.paramsData, 'vendorId');\r\n return this.http.get<VendorProductsResponse>(`${baseApiUrl}/api/VendorFormBuilder/GetProductLevelFour?levelOneId=${levelOneId}&levelTwoId=${levelTwoId}&levelThreeId=${levelThreeId}&vendorId=${vendorId}`);\r\n }\r\n\r\n // Function to get value by key from the array\r\n getValueByKey(data, key) {\r\n if (!data || data.length === 0) {\r\n return null;\r\n }\r\n const item = data.find(kv => kv.key.toLowerCase() === key.toLowerCase());\r\n return item ? item.value : null;\r\n }\r\n\r\n /* Function for verify numbers and numbers with comma seperated values */\r\n onlyNumbers(str) {\r\n if (str) {\r\n return /^[0-9.,]+$/.test(str);\r\n }\r\n }\r\n /* End */\r\n\r\n setDropdownItems(items: any[]) {\r\n this.dropdownItemsSubject.next(items);\r\n }\r\n\r\n getDropdownItems() {\r\n return this.dropdownItemsSubject.getValue();\r\n }\r\n\r\n setDropDownFlag(flag: boolean) {\r\n this.setFlag.next(flag)\r\n }\r\n\r\n getDropDownFlag() {\r\n return this.setFlag.getValue();\r\n }\r\n\r\n /*Funtion to check if property is matched with given attributes in formBuilder or not */\r\n checkIsAttributeTrue(newProductPickerFlag, attributeName) {\r\n return newProductPickerFlag && Object.keys(newProductPickerFlag).some(key =>\r\n key.toLocaleLowerCase() === attributeName.toLowerCase() &&\r\n newProductPickerFlag[key].toLowerCase() === \"true\"\r\n );\r\n }\r\n\r\n getglobedata(): String {\r\n const hostMappings: { [key: string]: string } = {\r\n 'c3RhZ2UudmFydG9waWEuY29t': this.city + this.region + this.continent + this.state + this.country + this.territory,\r\n 'bGluY29sbi52YXJ0b3BpYS5jb20=': this.Lcity + this.Lregion + this.Lcontinent + this.Lstate + this.Lcountry + this.Lterritory,\r\n 'amFja3Nvbi52YXJ0b3BpYS5jb20=': this.Jcity + this.Jregion + this.Jcontinent + this.Jstate + this.Jcountry + this.Jterritory,\r\n 'bXkudmFydG9waWEuY29t': this.Pcity + this.Pregion + this.Pcontinent + this.Pstate + this.Pcountry + this.Pterritory,\r\n 'bG9jYWxob3N0': this.city + this.region + this.continent + this.state + this.country + this.territory,\r\n 'dWF0LnZhcnRvcGlhLmNvbQ==': this.Jcity + this.Jregion + this.Jcontinent + this.Jstate + this.Jcountry + this.Jterritory\r\n };\r\n const hostname = window.location.hostname;\r\n return hostMappings[btoa(hostname)] || '';\r\n }\r\n\r\n getcombodeal(): string {\r\n const hostMappings: { [key: string]: string } = {\r\n 'c3RhZ2UudmFydG9waWEuY29t': this.Name_1 + this.sales_2 + this.Id_2 + this.Mobile_4 + this.sort_5,\r\n 'bGluY29sbi52YXJ0b3BpYS5jb20=': this.LName_1 + this.Lsales_2 + this.LId_2 + this.LMobile_4 + this.Lsort_5,\r\n 'amFja3Nvbi52YXJ0b3BpYS5jb20=': this.JName_1 + this.Jsales_2 + this.JId_2 + this.JMobile_4 + this.Jsort_5,\r\n 'bXkudmFydG9waWEuY29t': this.PName_1 + this.Psales_2 + this.PId_2 + this.PMobile_4 + this.Psort_5,\r\n 'bG9jYWxob3N0': this.Name_1 + this.sales_2 + this.Id_2 + this.Mobile_4 + this.sort_5,\r\n 'dWF0LnZhcnRvcGlhLmNvbQ==': this.JName_1 + this.Jsales_2 + this.JId_2 + this.JMobile_4 + this.Jsort_5\r\n \r\n };\r\n const hostname = window.location.hostname;\r\n return hostMappings[btoa(hostname)] || '';\r\n }\r\n}","import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, OnDestroy, OnInit, Renderer2, ViewChild } from '@angular/core';\r\nimport { MaterialComponent } from '../MaterialComponent';\r\nimport SelectComponent from 'formiojs/components/select/Select.js';\r\nimport _ from 'lodash';\r\nimport { FormControl } from '@angular/forms';\r\nimport { Subject } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged, filter, takeUntil, tap } from 'rxjs/operators';\r\nimport { MatSelect } from '@angular/material/select';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { CommonService } from '../common.service';\r\n@Component({\r\n selector: 'mat-formio-select',\r\n template: `\r\n <mat-formio-form-field [instance]=\"instance\" [componentTemplate]=\"componentTemplate\"></mat-formio-form-field>\r\n <ng-template #componentTemplate let-hasLabel>\r\n <mat-form-field style=\"width:100%;\">\r\n\r\n <mat-label *ngIf=\"hasLabel\">\r\n <span [instance]=\"instance\" matFormioLabel></span>\r\n </mat-label>\r\n\r\n <span *ngIf=\"instance.component.prefix\" matPrefix>\r\n {{ instance.component.prefix }}&nbsp;\r\n </span>\r\n <mat-select\r\n [multiple]=\"instance.component.multiple\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"instance.component.placeholder\"\r\n (selectionChange)=\"onChange()\"\r\n [compareWith]=\"compareObjects\"\r\n #productSelect\r\n [panelClass]=\"addCustomClass(instance.component.key)\"\r\n >\r\n <mat-option>\r\n <ngx-mat-select-search [searching]=\"instance.component.key.toLowerCase() === 'vendorproductid' ? searching : false\" (input)=\"onInputChange($event)\" placeholderLabel=\"Type to search\" [formControl]=\"websiteMultiFilterCtrl\"> \r\n <mat-icon ngxMatSelectSearchClear (click)=\"clearProducts()\">close</mat-icon>\r\n </ngx-mat-select-search>\r\n </mat-option>\r\n\r\n <mat-option *ngFor=\"let option of filteredOptions | async\" [value]=\"option.value\" class=\"virtual-full-view\">\r\n <span [innerHTML]=\"option.label\"></span>\r\n </mat-option> \r\n <mat-option *ngIf=\"!filteredOptionsLength\" disabled>\r\n <span>Nothing was found</span>\r\n </mat-option>\r\n </mat-select>\r\n\r\n <span *ngIf=\"instance.component.suffix\" matSuffix>\r\n {{ instance.component.suffix }}\r\n </span>\r\n <mat-error *ngIf=\"isError()\" >{{ getErrorMessage() }}</mat-error>\r\n </mat-form-field>\r\n </ng-template>\r\n `,\r\n styles: [`\r\n .example-viewport {\r\n height: 200px;\r\n }\r\n \r\n .product-picker {\r\n overflow-x: hidden; /* Disable horizontal scrolling */\r\n }\r\n\r\n .virtual-full-view {\r\n height: auto !important;\r\n white-space: normal !important;\r\n line-height: 1.4 !important;\r\n text-overflow: initial !important;\r\n min-height: 48px !important;\r\n overflow: initial !important;\r\n padding-top: 10px !important;\r\n padding-bottom: 10px !important;\r\n }\r\n\r\n ::ng-deep .product-picker .cdk-virtual-scroll-content-wrapper {\r\n width: 100% !important;\r\n }\r\n\r\n .virtual-full-view .mat-pseudo-checkbox {\r\n align-self: top !important;\r\n }\r\n\r\n`]\r\n})\r\nexport class MaterialSelectComponent extends MaterialComponent implements OnInit, AfterViewInit, OnDestroy {\r\n selectOptions: Promise<any[]>;\r\n filteredOptions: Promise<any[]>;\r\n filteredOptionsLength: number;\r\n selectOptionsResolve: any;\r\n public websiteMultiCtrl: FormControl = new FormControl();\r\n public websiteMultiFilterCtrl: FormControl = new FormControl();\r\n @ViewChild('multiSelect', { static: true }) multiSelect: MatSelect;\r\n protected _onDestroy = new Subject();\r\n @ViewChild('productSelect') selectElem: MatSelect;\r\n // Variables to track pagination\r\n pageNumber = 1;\r\n pageSize = 20;\r\n totalPages = 0;\r\n searchQuery = '';\r\n productsloadingFlag: boolean = false;\r\n public searching = false;\r\n productList: any[] = [];\r\n selectedValue: any = '';\r\n searchItem = \"\";\r\n // Variable to hold the reference to the current panel element\r\n private currentPanelElement: HTMLElement | null = null;\r\n openCounter: number = 1\r\n firstDropdownItems: any = [];\r\n secondDropdownItems: any = [];\r\n storeValue: any = []\r\n storeDependentItems: any = [];\r\n executionFlag: boolean = false;\r\n private apiCounter: number = 0;\r\n checkAttribute: any;\r\n constructor(public element: ElementRef, public ref: ChangeDetectorRef, public http: HttpClient, public commonService: CommonService) {\r\n super(element, ref);\r\n }\r\n\r\n onInputChange(event: any) {\r\n if (this.instance.component.key.toLowerCase() === 'vendorproductid' && event.target.value === '') {\r\n this.onClearAll();\r\n }\r\n }\r\n\r\n clearProducts() {\r\n if (this.instance.component.key.toLowerCase() === 'vendorproductid') {\r\n this.onClearAll();\r\n this.searchItem = \"\";\r\n\r\n }\r\n }\r\n\r\n registerPanelScrollEvent(selectElem: MatSelect) {\r\n if (selectElem && selectElem?.panel) {\r\n // const panelElement = selectElem.panel.nativeElement;\r\n this.currentPanelElement = selectElem.panel.nativeElement;\r\n this.currentPanelElement.addEventListener('scroll', this.onScroll.bind(this));\r\n }\r\n }\r\n\r\n addCustomClass(key) {\r\n return 'walkme_select_' + key;\r\n }\r\n\r\n onScroll(event) {\r\n if (this.instance.component.key.toLowerCase() === 'vendorproductid') {\r\n const scrollElement = event.target;\r\n if (!scrollElement) return; // Ensure scrollElement is not undefined\r\n const trackHeight = scrollElement.scrollHeight - scrollElement.offsetHeight;\r\n if (isNaN(trackHeight) || trackHeight <= 0) return; // Check if trackHeight is valid\r\n if (this.openCounter < 2) {\r\n const retrievedObject = JSON.parse(localStorage.getItem('storageObject'));\r\n this.totalPages = Number(retrievedObject?.totalPages);\r\n this.productsloadingFlag = true;\r\n this.productList = retrievedObject?.dataSource;\r\n }\r\n if (this.productsloadingFlag && Math.floor(scrollElement?.scrollTop / trackHeight * 100) > 50) {\r\n this.productsloadingFlag = false;\r\n this.openCounter = this.openCounter + 1;\r\n if (this.pageNumber < this.totalPages) {\r\n this.pageNumber = this.pageNumber + 1;\r\n this.searching = true;\r\n this.loadData(this.pageNumber, this.pageSize, this.searchQuery)\r\n } else {\r\n this.productsloadingFlag = true;\r\n this.searching = false;\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Function to get value by key from the array\r\n getValueByKey(data, key) {\r\n if (!data || data.length === 0) {\r\n return null; // Return null if data is empty or undefined\r\n }\r\n const item = data.find(kv => kv.key.toLowerCase() === key.toLowerCase());\r\n return item ? item.value : null;\r\n }\r\n\r\n\r\n loadData(pageNumber, pageSize, searchQuery) {\r\n const paramsData = JSON.parse(localStorage.getItem('productPickerParams'));\r\n const includeDescription = this.getValueByKey(paramsData, 'includeDescription');\r\n const vendorId = this.getValueByKey(paramsData, 'vendorId');\r\n const onlyActive = this.getValueByKey(paramsData, 'onlyActive');\r\n const includeCountry = this.getValueByKey(paramsData, 'filterProductBasedOnCustomerCountry');\r\n const programId = this.getValueByKey(paramsData, \"programId\");\r\n var currentUser = JSON.parse(localStorage.getItem('currentUser'));\r\n let headers;\r\n if (currentUser && currentUser.Tokens && currentUser.Tokens.AccessToken) {\r\n var accessToken = currentUser.Tokens.AccessToken;\r\n headers = new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': 'Bearer ' + accessToken\r\n });\r\n } else {\r\n console.error('User not authenticated or tokens missing.');\r\n }\r\n\r\n const envendorId = this.commonService.scrumble(vendorId)\r\n const enpageNumber = this.commonService.scrumble(pageNumber)\r\n const enpageSize = this.commonService.scrumble(pageSize);\r\n const ensearchQuery = this.commonService.scrumble(searchQuery);\r\n const encodeIncludeCountry = this.commonService.scrumble(includeCountry);\r\n let enactive = this.commonService.scrumble(onlyActive);\r\n const enprogramId = this.commonService.scrumble(programId);\r\n //Check if enactive is undefined, null, or blank\r\n if (enactive === undefined || enactive === null || enactive === '') {\r\n enactive = this.commonService.scrumble(true); // Set default value to true\r\n }\r\n\r\n // Scrumble and handle the includeDescription parameter\r\n let endescription = this.commonService.scrumble(includeDescription);\r\n if (!endescription) {\r\n endescription = this.commonService.scrumble(false); // Set to 'false' if undefined, null, or blank\r\n }\r\n\r\n const baseUrlMapping = {\r\n 'bG9jYWxob3N0': 'http://localhost:58504',\r\n 'bGluY29sbi52YXJ0b3BpYS5jb20=': 'https://lincoln-api.vartopia.com',\r\n 'c3RhZ2UudmFydG9waWEuY29t': 'https://stage-api.vartopia.com',\r\n 'bXkudmFydG9waWEuY29t': 'https://reagan-api.vartopia.com',\r\n 'amFja3Nvbi52YXJ0b3BpYS5jb20=': 'https://jackson-api.vartopia.com',\r\n 'dWF0LnZhcnRvcGlhLmNvbQ==': 'https://uat-api.vartopia.com'\r\n };\r\n // Get the current hostname\r\n const hostname = window.location.hostname;\r\n const baseApiUrl = baseUrlMapping[btoa(hostname)] || null;\r\n interface VendorProductsResponse {\r\n code: number;\r\n data: any;\r\n message: string;\r\n statusCode: number;\r\n }\r\n let url = `${baseApiUrl}/api/VendorFormBuilder/GetVendorProducts?vendorId=${envendorId}&pageNumber=${enpageNumber}&pageSize=${enpageSize}&search=${ensearchQuery}&onlyActive=${enactive}&includeDescription=${endescription}`;\r\n if (enprogramId && programId) {\r\n url += `&programId=${enprogramId}`;\r\n }\r\n // Only add includeCountryId if it has a valid value\r\n if (encodeIncludeCountry !== null && encodeIncludeCountry !== undefined && this.isFilterProductBasedOnCustomerCountryValid(this.instance.component.data)) {\r\n url += `&filterProductBasedOnCustomerCountry=${encodeIncludeCountry}`;\r\n }\r\n\r\n this.http.get<VendorProductsResponse>(url, { headers }).subscribe(response => {\r\n if (response && response.code === 200) {\r\n if (this.instance.component.key.toLowerCase() === 'vendorproductid') {\r\n this.totalPages = response?.data?.totalPages;\r\n const data = response.data.dataSource;\r\n this.filteredOptionsLength = data.length;\r\n if (this.productList.length > 0) {\r\n data.map(item => {\r\n return item\r\n }).forEach(i => this.productList.push(i))\r\n } else {\r\n this.productList = data;\r\n }\r\n // Update filteredOptions with transformedData\r\n var allProductList = this.transformResponseData(this.productList);\r\n this.filteredOptions = Promise.resolve(allProductList);\r\n this.searching = false;\r\n this.productsloadingFlag = true;\r\n setTimeout(() => {\r\n const ele = this.selectElem?.panel?.nativeElement;\r\n if (ele) {\r\n const trackHeight = ele.scrollHeight - ele.offsetHeight\r\n const middlePosition = trackHeight / 2 - 50;\r\n ele.scrollTo({ top: middlePosition, behavior: 'auto' });\r\n } else {\r\n console.log('Panel element is not available yet.');\r\n }\r\n\r\n }, 250);\r\n }\r\n\r\n }\r\n });\r\n }\r\n\r\n // Utility function to transform response data\r\n transformResponseData(data: Array<{ text: any, value: any, date: any }> | null | undefined): Array<{ label: string, value: number, date: string }> {\r\n // Check if data is not null, undefined, and is an array with elements\r\n if (data && Array.isArray(data) && data.length > 0) {\r\n return data.map(item => ({\r\n label: item.text,\r\n value: item.value,\r\n date: item.date\r\n }));\r\n } else {\r\n // Return an empty array if data is null, undefined, or empty\r\n return [];\r\n }\r\n }\r\n\r\n\r\n\r\n filterWebsiteMulti() {\r\n if (!this.selectOptions) {\r\n return;\r\n }\r\n let search = this.websiteMultiFilterCtrl.value;\r\n search = search.toLowerCase();\r\n this.filteredOptions = this.selectOptions.then((options) => {\r\n const filtered = options.filter((option) => option.label.replace(/<\\/?span[^>]*>/g, \"\").toLowerCase().indexOf(search) !== -1);\r\n this.filteredOptionsLength = filtered.length;\r\n return filtered;\r\n });\r\n }\r\n\r\n\r\n ngOnDestroy() {\r\n this._onDestroy.next('');\r\n this._onDestroy.complete();\r\n if (this.currentPanelElement) {\r\n this.currentPanelElement.removeEventListener('scroll', this.onScroll.bind(this));\r\n }\r\n }\r\n\r\n\r\n /*End*/\r\n setInstance(instance: any) {\r\n super.setInstance(instance);\r\n this.instance.triggerUpdate();\r\n }\r\n\r\n onClearAll() {\r\n if (this.instance.component.key.toLowerCase() === 'vendorproductid') {\r\n this.pageNumber = 1;\r\n this.pageSize = 20;\r\n this.searchQuery = '';\r\n this.searching = false;\r\n this.productList = [];\r\n this.selectedValue = '';\r\n this.loadData(this.pageNumber, this.pageSize, this.searchQuery);\r\n }\r\n }\r\n\r\n updateSecondDropdown(value: any) {\r\n const paramsData = JSON.parse(localStorage.getItem('cascadingDropdownsParamsone'));\r\n const vendorId = this.getValueByKey(paramsData, 'vendorId');\r\n const dealId = this.getValueByKey(paramsData, 'dealId');\r\n const isEdit = this.getValueByKey(paramsData, 'isEdit');\r\n let finalParams;\r\n this.instance?.parent?.components?.length && this.instance.parent.components.forEach(items => {\r\n if (this.checkVendorRefItems(items)) {\r\n const apiEndPoint = items?.component?.selectValues;\r\n if (apiEndPoint != '') {\r\n var parameters = [\r\n {\r\n \"key\": \"userId\",\r\n \"value\": JSON.parse(localStorage.getItem('currentUser')).UserId\r\n },\r\n {\r\n \"key\": \"vendorId\",\r\n \"value\": vendorId\r\n },\r\n {\r\n \"key\": \"loginUserId\",\r\n \"value\": JSON.parse(localStorage.getItem('currentUser')).UserId\r\n },\r\n {\r\n \"key\": \"country\",\r\n \"value\": typeof value === 'string' ? value.trim() : ''\r\n },\r\n {\r\n \"key\": \"dataValue\",\r\n \"value\": typeof value === 'string' ? value.trim() : ''\r\n },\r\n {\r\n \"key\": \"dealId\",\r\n \"value\": dealId\r\n },\r\n {\r\n \"key\": \"isEdit\",\r\n \"value\": isEdit\r\n },\r\n {\r\n \"key\": \"referenceListName\",\r\n \"value\": items?.component?.key\r\n },\r\n {\r\n \"key\": \"referenceListFieldName\",\r\n \"value\": this.instance?.component?.key\r\n }\r\n ]\r\n finalParams = parameters?.filter(f1 => items?.component?.data?.headers.some(f2 => f1.key === f2.key));\r\n if (Array.isArray(finalParams)) {\r\n const index = finalParams.findIndex(param => param.key === 'dataValue');\r\n if (index !== -1) {\r\n // If the object exists, update its value\r\n finalParams[index].value = value;\r\n } else {\r\n // If the object doesn't exist, add it to the array\r\n finalParams.push({ key: 'dataValue', value: value });\r\n }\r\n this.commonService.initializeApiPath(apiEndPoint, finalParams).subscribe(response => {\r\n if (response && response.code === 200) {\r\n this.secondDropdownItems = response.data;\r\n this.commonService.setDropdownItems(this.secondDropdownItems);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this.element && this.element.nativeElement && this.instance) {\r\n // Add custom classes to elements.\r\n if (this.instance.component.customClass) {\r\n this.element.nativeElement.classList.add(this.instance.component.customClass);\r\n }\r\n }\r\n this.selectElem.openedChange.subscribe(async (isOpen: boolean) => {\r\n let i = 0\r\n if (isOpen) {\r\n const newProductPickerFlag = this.instance?.component?.attributes;\r\n let checkInvokeFromLibrary = this.commonService.checkIsAttributeTrue(newProductPickerFlag, \"invokeFromLibrary\")\r\n const firstLevel = (this.getVendorRefList(this.instance) && checkInvokeFromLibrary);\r\n if (firstLevel) {\r\n this.selectElem.valueChange.subscribe(res => {\r\n this.commonService.setDropDownFlag(true);\r\n if (i === 0) {\r\n this.updateSecondDropdown(res);\r\n }\r\n i++\r\n });\r\n }\r\n\r\n\r\n\r\n if (this.checkVendorRefItems(this.instance) && checkInvokeFromLibrary) {\r\n this.storeDependentItems = [];\r\n this.secondDropdownItems = this.commonService.getDropdownItems();\r\n if (this.secondDropdownItems?.length) {\r\n this.secondDropdownItems.forEach((renderElement, index, array) => {\r\n this.storeDependentItems.push({ label: renderElement['text'], value: this.commonService.onlyNumbers(renderElement['value']) ? renderElement['value'] + ' ' : renderElement['value'] });\r\n });\r\n }\r\n if (!this.commonService.getDropDownFlag()) {\r\n this.storeDependentItems = this.instance.component.data.values;\r\n }\r\n this.filteredOptions = Promise.resolve(this.storeDependentItems);\r\n this.selectOptions = Promise.resolve(this.storeDependentItems);\r\n this.selectOptions.then(result => {\r\n this.filteredOptionsLength = result.length\r\n });\r\n }\r\n }\r\n });\r\n\r\n if (this.instance.component.key.toLowerCase() === 'vendorproductid') {\r\n this.selectElem.openedChange.subscribe((isOpen: boolean) => {\r\n if (isOpen) {\r\n this.pageNumber = 1;\r\n this.pageSize = 20;\r\n if (this.searchQuery?.length > 0) {\r\n if (this.searchItem?.length > 0) {\r\n this.websiteMultiFilterCtrl.setValue(this.searchItem);\r\n this.ref.detectChanges();\r\n }\r\n }\r\n // this.searchQuery = '';\r\n this.searching = false;\r\n //this.loadData(this.pageNumber, this.pageSize, this.searchQuery);\r\n this.registerPanelScrollEvent(this.selectElem);\r\n } else {\r\n this.removePanelScrollEvent();\r\n this.searching = false;\r\n // this.selectedValue = this.getValue();\r\n // if (this.selectedValue?.toString().length == 0) {\r\n // this.productList = [];\r\n // this.pageNumber = 1;\r\n // this.pageSize = 20;\r\n // this.searchQuery = '';\r\n // this.loadData(this.pageNumber, this.pageSize, this.searchQuery);\r\n // }\r\n }\r\n });\r\n }\r\n }\r\n\r\n removePanelScrollEvent() {\r\n // Remove the scroll event listener\r\n if (this.currentPanelElement) {\r\n this.currentPanelElement.removeEventListener('scroll', this.onScroll.bind(this));\r\n this.currentPanelElement = null;\r\n }\r\n }\r\n\r\n\r\n\r\n ngOnInit() {\r\n /*new logic */\r\n if (this.instance.component.key.toLowerCase() === 'vendorproductid') {\r\n this.websiteMultiFilterCtrl.valueChanges\r\n .pipe(\r\n debounceTime(1000), // Time in milliseconds between key events\r\n // tap(() => this.searching = true),\r\n distinctUntilChanged(),\r\n takeUntil(this._onDestroy))\r\n .subscribe((searchQuery) => {\r\n if (searchQuery != '') {\r\n\r\n this.pageNumber = 1;\r\n this.pageSize = 20;\r\n this.productList = [];\r\n this.searching = true;\r\n this.searchQuery = searchQuery;\r\n this.searchItem = searchQuery\r\n this.loadData(this.pageNumber, this.pageSize, searchQuery);\r\n }\r\n });\r\n } else {\r\n this.websiteMultiFilterCtrl.valueChanges\r\n .pipe(\r\n takeUntil(this._onDestroy))\r\n .subscribe(() => {\r\n this.filterWebsiteMulti();\r\n });\r\n }\r\n /*End */\r\n this.selectOptions = new Promise((resolve) => {\r\n this.selectOptionsResolve = resolve;\r\n });\r\n this.selectOptions.then((options) => {\r\n this.filteredOptionsLength = options.length;\r\n });\r\n\r\n this.filteredOptions = this.selectOptions;\r\n }\r\n\r\n onSelectionChange(event: any, submitData: any, attributes: any) {\r\n\r\n }\r\n\r\n checkVendorRefItems(instance) {\r\n const selectValues = instance.component['selectValues'];\r\n const dataUrl = instance.component['data']?.url;\r\n const isSelectValuesValid = selectValues != null && selectValues !== '' && selectValues !== undefined;\r\n const isDataUrlInvalid = dataUrl == null || dataUrl === '' || dataUrl === undefined;\r\n return isSelectValuesValid && isDataUrlInvalid;\r\n }\r\n\r\n getVendorRefList(instance) {\r\n const dataUrl = instance.component['data']?.url;\r\n const isSelectValuesValid = dataUrl != null && dataUrl !== '' && dataUrl !== undefined;\r\n return isSelectValuesValid;\r\n }\r\n\r\n isError() {\r\n if (this.instance.error) {\r\n this.control.setErrors(this.instance.component.validate);\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n getErrorMessage() {\r\n if (this.instance.error && this.instance.error.messages) {\r\n const { messages } = this.instance.error;\r\n if (messages.length) {\r\n for (const msg of messages) {\r\n if (msg.context) {\r\n if (this.instance && this.instance.parent && this.instance.parent._data) {\r\n if (this.instance.parent._data.submit) {\r\n this.control.markAllAsTouched();\r\n }\r\n }\r\n return this.instance.error ? this.instance.error.message : '';\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n compareObjects(o1: any, o2: any): boolean {\r\n return _.isEqual(o1, o2);\r\n }\r\n\r\n isFilterProductBasedOnCustomerCountryValid(data) {\r\n if (data && data.headers && Array.isArray(data.headers)) {\r\n const header = data.headers.find(h => h.key === 'filterProductBasedOnCustomerCountry');\r\n if (\r\n header &&\r\n header.value !== null &&\r\n header.value !== undefined &&\r\n header.value.trim() !== \"\" &&\r\n header.value.trim().toLowerCase() === \"true\"\r\n ) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n}\r\nSelectComponent.MaterialComponent = MaterialSelectComponent;\r\n\r\n// Make sure we detect changes when new items make their way into the select dropdown.\r\nconst setItems = SelectComponent.prototype.setItems;\r\nSelectComponent.prototype.setItems = function (...args) {\r\n setItems.call(this, ...args);\r\n if (this.materialComponent && this.materialComponent.selectOptionsResolve) {\r\n this.materialComponent.selectOptionsResolve(this.selectOptions);\r\n }\r\n};\r\n\r\nexport { SelectComponent };","import { Component } from '@angular/core';\r\nimport WellComponent from 'formiojs/components/well/Well.js';\r\nimport { MaterialNestedComponent } from '../MaterialNestedComponent';\r\n@Component({\r\n selector: 'mat-formio-well',\r\n template: `\r\n <mat-card appearance=\"outlined\">\r\n <mat-card-content\r\n style=\"display:flex; flex-direction:column; gap:1em;\"\r\n [ngStyle]=\"{\r\n 'background-color':'#f5f5f5',\r\n 'padding': '1.5em'\r\n }\"\r\n >\r\n <ng-template #components></ng-template>\r\n </mat-card-content>\r\n </mat-card>\r\n `,\r\n styles: []\r\n})\r\nexport class MaterialWellComponent extends MaterialNestedComponent {}\r\nWellComponent.MaterialComponent = MaterialWellComponent;\r\nexport { WellComponent };\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'NgxMat-confirmation-dialog',\r\n templateUrl: './confirmation-dialog.component.html',\r\n styleUrls: ['./confirmation-dialog.component.css']\r\n})\r\nexport class ConfirmationDialogComponent implements OnInit {\r\n\r\n constructor(public dialogRef: MatDialogRef<ConfirmationDialogComponent>, @Inject(MAT_DIALOG_DATA) public data: any) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<div class=\"dialog-container\">\r\n<h2 mat-dialog-title class=\"data-grid-alert\">Alert</h2>\r\n<mat-dialog-content class=\"data-grid-popup-body\">\r\n {{data.message}}\r\n</mat-dialog-content>\r\n<mat-dialog-actions class=\"data-grid-popup-footer\">\r\n <button mat-button [mat-dialog-close]=\"true\" color=\"warn\" *ngIf=\"data.buttonStatus\">Delete</button>\r\n <button mat-button [mat-dialog-close]=\"false\" [ngClass]=\"{'data-grid-closed-btn': !data.buttonStatus}\">{{data.buttonStatus ? 'Cancel': 'Close'}}</button>\r\n</mat-dialog-actions>\r\n</div>","import { SelectionModel } from '@angular/cdk/collections';\r\nimport { AfterViewInit, Component, ElementRef, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormGroup, FormArray, Validators } from '@angular/forms';\r\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { ConfirmationDialogComponent } from '../confirmation-dialog/confirmation-dialog.component';\r\nimport { CommonService } from '../common.service';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\n\r\nexport interface Product {\r\n productName: string;\r\n productDescription: string;\r\n quantity: any,\r\n price: any,\r\n text: any,\r\n id: any,\r\n value: any,\r\n otherInformation0: any,\r\n otherInformation1: any,\r\n otherInformation2: any\r\n}\r\n\r\n@Component({\r\n selector: 'ngx-mat-add-on-products',\r\n templateUrl: './add-on-products.component.html',\r\n styleUrls: ['./add-on-products.component.css'],\r\n animations: [\r\n trigger('slideDown', [\r\n state('hidden', style({ height: '0px', opacity: 0, overflow: 'hidden' })),\r\n state('visible', style({ height: '*', opacity: 1 })),\r\n transition('hidden => visible', [\r\n animate('300ms ease-out')\r\n ]),\r\n transition('visible => hidden', [\r\n animate('300ms ease-in')\r\n ])\r\n ])\r\n ]\r\n})\r\nexport class AddOnProductsComponent implements AfterViewInit, OnInit {\r\n form: FormGroup;\r\n dropdownOne: string[] = [];\r\n dropdownTwo: string[] = [];\r\n dropdownThree: string[] = [];\r\n dropdownFour: string[] = [];\r\n filteredDropdownOne: string[] = [];\r\n filteredDropdownTwo: string[] = [];\r\n filteredDropdownThree: string[] = [];\r\n filteredDropdownFour: string[] = [];\r\n addProductsColumns: string[] = ['select', 'productName', 'skuNumber', 'inventory'];\r\n showAllproductsColumns: string[] = ['delete', 'productName', 'categoryName', 'subCategory', 'Quantity', 'price', 'skuNumber', 'inventory', 'cost'];\r\n quantityList: number[] = [5, 10, 15, 20, 25];\r\n ELEMENT_DATA: Product[] = [];\r\n dataSource = new MatTableDataSource<Product>();\r\n selection = new SelectionModel<any>(true, []);\r\n selectedDataSource = new MatTableDataSource<Product>([]);\r\n selectedCategory: any = null;\r\n selectedSubCategory: any = null;\r\n showCategory: boolean = false;\r\n showSubcategory: boolean = false;\r\n showPrice: boolean = true;\r\n showQuantity: boolean = true;\r\n showSkuNumber: boolean = false;\r\n showInventory: boolean = false;\r\n showNewProductPicker: boolean = true;\r\n setCategory: string = '';\r\n setSubCategory: string = '';\r\n loadingFlag: boolean = false;\r\n pageNumber = 1;\r\n pageSize = 20;\r\n totalPages = 0;\r\n searchQuery = '';\r\n itemList: any[] = [];\r\n trackHeight: any;\r\n prevScrollPosition = 0; // Track the previous scroll position\r\n @ViewChild('firstscrollableDiv') firstscrollableDiv: ElementRef;\r\n spinnerFlag: boolean = false;\r\n dropdownL1: boolean = false;\r\n dropdownL2: boolean = false;\r\n dropdownL3: boolean = false;\r\n dropdownL4: boolean = false;\r\n dropdownL1Label: string = '';\r\n dropdownL2Label: string = '';\r\n dropdownL3Label: string = '';\r\n dropdownL4Label: string = '';\r\n dropDownCount: number = 0;\r\n levelOneId: any = '';\r\n levelTwoId: any = '';\r\n levelThreeId: any = '';\r\n levelFourId: any = '';\r\n disablePrice: boolean = true;\r\n checkSubmissionStatus: boolean = false;\r\n currentPage: string = 'select-products';\r\n isVisible: boolean = true;\r\n isDisabled2: boolean = true;\r\n isDisabled3: boolean = true;\r\n isDisabled4: boolean = true;\r\n isPriceDisable: boolean = true;\r\n activeFiltersCount: number = 0;\r\n emptyImage: string = '/i/table-grid-empty-state.svg';\r\n getTotalRecords: number = 0;\r\n priceFieldLable: string = 'Price';\r\n targetCost: string = 'Your Target Cost';\r\n showCost: boolean = false;\r\n skuTweek: string = 'SKU Number';\r\n costTweek: string = 'Your Target Cost';\r\n priceTweek: string = 'Price';\r\n productTweek: string = 'Product Name';\r\n quantityTweek: string = 'Quantity';\r\n categoryTweek: string = 'Category Name';\r\n subCategoryTweek: string = 'Sub Category';\r\n inventoryTweek: string = 'Inventory';\r\n alphanumeric: boolean = false;\r\n\r\n constructor(\r\n public matDialogRef: MatDialogRef<AddOnProductsComponent>,\r\n @Inject(MAT_DIALOG_DATA) data: any,\r\n private fb: FormBuilder,\r\n private dialog: MatDialog,\r\n private commonSevice: CommonService\r\n ) {\r\n this.showCategory = data.dropdownsFlag.showDialogCategory;\r\n this.showSubcategory = data.dropdownsFlag.showDialogSubCategory;\r\n this.showPrice = data.dropdownsFlag.showDialogPrice;\r\n this.showQuantity = data.dropdownsFlag.showDialogQuantity;\r\n this.showSkuNumber = data.dropdownsFlag.showDialogSkuNumber;\r\n this.showInventory = data.dropdownsFlag.showDialogInventory;\r\n this.showNewProductPicker = data.dropdownsFlag.showNewProductPicker;\r\n this.dropdownL1 = data.dropdownsFlag.dropdownL1;\r\n this.dropdownL2 = data.dropdownsFlag.dropdownL2;\r\n this.dropdownL3 = data.dropdownsFlag.dropdownL3;\r\n this.dropdownL4 = data.dropdownsFlag.dropdownL4;\r\n this.dropdownL1Label = data.dropdownsFlag.dropdownL1Label;\r\n this.dropdownL2Label = data.dropdownsFlag.dropdownL2Label;\r\n this.dropdownL3Label = data.dropdownsFlag.dropdownL3Label;\r\n this.dropdownL4Label = data.dropdownsFlag.dropdownL4Label;\r\n this.checkSubmissionStatus = data.dropdownsFlag.checkSubmissionStatus;\r\n this.dropDownCount = this.countTrueDropdowns(data.dropdownsFlag);\r\n this.selection = new SelectionModel<Product>(true, data.selectedProducts || []);\r\n this.isPriceDisable = data.dropdownsFlag.priceDisable;\r\n this.skuTweek = data.dropdownsFlag?.skuTweek || \"SKU Number\";\r\n this.costTweek = data.dropdownsFlag?.costTweek || \"Your Target Cost\";\r\n this.priceTweek = data.dropdownsFlag?.priceTweek || \"Price\";\r\n this.productTweek = data.dropdownsFlag?.productTweek || \"Product Name\";\r\n this.quantityTweek = data.dropdownsFlag?.quantityTweek || \"Quantity\";\r\n this.showCost = data.dropdownsFlag?.showDialogCost;\r\n this.categoryTweek = data.dropdownsFlag?.categoryTweek || \"Category Name\";\r\n this.subCategoryTweek = data.dropdownsFlag?.subCategoryTweek || \"Sub Category\";\r\n this.inventoryTweek = data.dropdownsFlag?.inventoryTweek || \"Inventory\";\r\n this.alphanumeric = data.dropdownsFlag.alphanumeric;\r\n if (!this.showCategory) {\r\n this.removeColumn('categoryName');\r\n }\r\n if (!this.showPrice) {\r\n this.removeColumn('price');\r\n }\r\n if (!this.showSubcategory) {\r\n this.removeColumn('subCategory');\r\n }\r\n if (!this.showQuantity) {\r\n this.removeColumn('Quantity');\r\n }\r\n if (!this.showSkuNumber) {\r\n this.removeColumn('skuNumber');\r\n }\r\n if (!this.showInventory) {\r\n this.removeColumn('inventory');\r\n }\r\n if (!this.showCost) {\r\n this.removeColumn('cost');\r\n }\r\n }\r\n\r\n removeColumn(columnName: string) {\r\n this.showAllproductsColumns = this.showAllproductsColumns.filter(column => column !== columnName);\r\n this.addProductsColumns = this.addProductsColumns.filter(column => column !== columnName);\r\n }\r\n\r\n initializeFormArray() {\r\n const selectedProductsArray = this.form.get('selectedProducts') as FormArray;\r\n if (!selectedProductsArray) {\r\n console.error('selectedProducts FormArray not initialized.');\r\n return;\r\n }\r\n\r\n this.selection.selected.forEach(product => {\r\n selectedProductsArray.push(this.fb.group({\r\n price: [product?.price ?? '', this.showPrice && !this.isPriceDisable ? Validators.required : []],\r\n text: [product?.text || ''],\r\n quantity: [product.quantity || '', Validators.required],\r\n category: [product?.category || ''],\r\n subCategory: [product?.subCategory || ''],\r\n value: [product?.value || ''],\r\n otherInformation0: [product?.otherInformation0 || '', this.showCost ? Validators.required : []],\r\n otherInformation1: [product?.otherInformation1 || ''],\r\n otherInformation2: [product?.otherInformation2 || '']\r\n }));\r\n });\r\n\r\n selectedProductsArray.controls.forEach(control => {\r\n this.isPriceDisable ? control.get('price')?.disable() : control.get('price')?.enable();\r\n });\r\n\r\n\r\n this.selectedDataSource.data = [...this.selection.selected];\r\n }\r\n\r\n initializeDataSources() {\r\n // Debugging logs to trace issues\r\n if (Array.isArray(this.selection?.selected) && Array.isArray(this.dataSource?.data) && this.selection?.selected?.length) {\r\n this.selection?.selected?.forEach(selectedProduct => {\r\n const index = this.dataSource.data.findIndex(product => product.value === selectedProduct.value);\r\n if (index >= 0) {\r\n this.dataSource.data[index] = selectedProduct;\r\n }\r\n });\r\n this.selectedDataSource.data = [...this.selection.selected];\r\n } else {\r\n console.warn('No selected products found.');\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n this.form = this.fb.group({\r\n dropdownLevel1: [{ value: '', disabled: false }],\r\n dropdownLevel2: [{ value: '', disabled: true }],\r\n dropdownLevel3: [{ value: '', disabled: true }],\r\n dropdownLevel4: [{ value: '', disabled: true }],\r\n searchProductName: [''],\r\n selectedProducts: this.fb.array([])\r\n });\r\n this.initializeFormArray();\r\n\r\n if (this.dropdownL1) {\r\n this.loadDropdownL1();\r\n }\r\n\r\n this.form.get('dropdownLevel1').valueChanges\r\n .pipe(\r\n startWith(''),\r\n map(value =>\r\n this.filterProducts(value, 'category1'))\r\n ).subscribe(l1 => {\r\n this.filteredDropdownOne = l1;\r\n });\r\n this.form.get('dropdownLevel2').valueChanges\r\n .pipe(\r\n startWith(''),\r\n map(value => this.filterProducts(value, 'category2'))\r\n ).subscribe(l2 => {\r\n this.filteredDropdownTwo = l2;\r\n });\r\n this.form.get('dropdownLevel3').valueChanges\r\n .pipe(\r\n startWith(''),\r\n map(value => this.filterProducts(value, 'category3'))\r\n ).subscribe(l3 => {\r\n this.filteredDropdownThree = l3;\r\n });\r\n this.form.get('dropdownLevel4').valueChanges\r\n .pipe(\r\n startWith(''),\r\n map(value => this.filterProducts(value, 'category4'))\r\n ).subscribe(l4 => {\r\n this.filteredDropdownFour = l4;\r\n });\r\n }\r\n\r\n handleDropdownFilter() {\r\n const searchQuery = this.form.controls.searchProductName?.value?.trim(); // Trim to remove blank spaces\r\n const levelOneId = this.form.controls.dropdownLevel1?.value?.id;\r\n this.loadingFlag = false;\r\n if (this.firstscrollableDiv) {\r\n this.firstscrollableDiv.nativeElement.scrollTop = 0;\r\n }\r\n if ((searchQuery && searchQuery !== '') || (levelOneId && levelOneId !== null && levelOneId !== undefined)) {\r\n let productName = this.form.controls.searchProductName?.value || '';\r\n // Check if the length exceeds 100 and truncate if necessary\r\n if (productName?.length > 100) {\r\n productName = productName.substring(0, 100);\r\n }\r\n this.searchQuery = encodeURIComponent(productName);\r\n this.levelOneId = this.form.controls.dropdownLevel1.value?.id;\r\n this.levelTwoId = this.form.controls.dropdownLevel2.value?.id;\r\n this.levelThreeId = this.form.controls.dropdownLevel3.value?.id;\r\n this.levelFourId = this.form.controls.dropdownLevel4.value?.id;\r\n this.pageNumber = 1;\r\n this.pageSize = 20;\r\n this.getProducts(false);\r\n }\r\n this.updateActiveFiltersCount();\r\n }\r\n\r\n loadDropdownL1() {\r\n this.spinnerFlag = true;\r\n this.commonSevice.productLevelOne().subscribe(response => {\r\n this.spinnerFlag = false\r\n if (response && response.code === 200) {\r\n this.dropdownOne = response.data;\r\n this.filteredDropdownOne = this.filterProducts('', 'category1');\r\n }\r\n });\r\n }\r\n\r\n loadDropdownL2(levelOneId: any) {\r\n this.spinnerFlag = true;\r\n this.commonSevice.productLevelTwo(levelOneId).subscribe(response => {\r\n this.spinnerFlag = false\r\n if (response && response.code === 200) {\r\n this.dropdownTwo = response.data;\r\n this.filteredDropdownTwo = this.filterProducts('', 'category2');\r\n }\r\n });\r\n }\r\n\r\n loadDropdownL3(levelOneId: any, levelTwoId: any) {\r\n this.spinnerFlag = true;\r\n this.commonSevice.productLevelThree(levelOneId, levelTwoId).subscribe(response => {\r\n this.spinnerFlag = false\r\n if (response && response.code === 200) {\r\n this.dropdownThree = response.data;\r\n this.filteredDropdownThree = this.filterProducts('', 'category3');\r\n }\r\n });\r\n }\r\n\r\n loadDropdownL4(levelOneId: any, levelTwoId: any, levelThreeId: any) {\r\n this.spinnerFlag = true;\r\n this.commonSevice.productLevelFour(levelOneId, levelTwoId, levelThreeId).subscribe(response => {\r\n this.spinnerFlag = false\r\n if (response && response.code === 200) {\r\n this.dropdownFour = response.data;\r\n this.filteredDropdownFour = this.filterProducts('', 'category4');\r\n }\r\n });\r\n }\r\n\r\n\r\n filterProducts(value: string, cat: string): string[] {\r\n const filterValue = typeof value === 'string' ? value?.toLowerCase() : value;\r\n let data: string[];\r\n\r\n /*Dynamically assign the data array based on the category*/\r\n switch (cat) {\r\n case 'category1':\r\n data = this.dropdownOne;\r\n break;\r\n case 'category2':\r\n data = this.dropdownTwo;\r\n break;\r\n case 'category3':\r\n data = this.dropdownThree;\r\n break;\r\n case 'category4':\r\n data = this.dropdownFour;\r\n break;\r\n default:\r\n data = [];\r\n }\r\n\r\n if (!filterValue) {\r\n return data;\r\n } else {\r\n return data?.filter(option => option['name']?.toLowerCase().includes(filterValue));\r\n }\r\n }\r\n\r\n\r\n onSubmit() {\r\n if (this.form.valid) {\r\n this.matDialogRef.close({\r\n data: {\r\n status: true,\r\n items: this.form.getRawValue()\r\n }\r\n });\r\n } else {\r\n this.form.markAllAsTouched();\r\n setTimeout(() => {\r\n this.scrollToFirstInvalidControl();\r\n });\r\n }\r\n }\r\n\r\n isAllSelected(): boolean {\r\n const numSelected = this.selection.selected.length;\r\n const numRows = this.dataSource.data.length;\r\n return numSelected === numRows;\r\n }\r\n\r\n isIndeterminate(): boolean {\r\n const numSelected = this.selection.selected.length;\r\n const numRows = this.dataSource.data.length;\r\n return numSelected > 0 && numSelected < numRows;\r\n }\r\n\r\n masterToggle() {\r\n this.isAllSelected()\r\n ? this.selection.clear()\r\n : this.dataSource.data.forEach(row => this.selection.select(row));\r\n this.updateSelectedProducts();\r\n }\r\n\r\n toggleSelection(row: Product) {\r\n // Check if the product is already selected\r\n const alreadySelected = this.selection.selected.some(selected => selected.value === row.value);\r\n if (alreadySelected) {\r\n // If the product is already selected, deselect it\r\n this.selection.deselect(row);\r\n } else {\r\n // If not already selected, select it\r\n this.selection.select(row);\r\n }\r\n // Update selected products to ensure no duplicates\r\n this.updateSelectedProducts();\r\n\r\n }\r\n\r\n\r\n // Getter for the FormArray\r\n get selectedProducts(): FormArray {\r\n return this.form.get('selectedProducts') as FormArray;\r\n }\r\n\r\n updateSelectedProducts() {\r\n if (Array.isArray(this.selection.selected)) {\r\n // Deduplicate selected products\r\n const uniqueProducts = Array.from(\r\n new Map(this.selection.selected.map(product => [product.value, product])).values()\r\n );\r\n this.selection.clear();\r\n uniqueProducts.forEach(product => this.selection.select(product));\r\n\r\n this.selectedDataSource.data = [...this.selection.selected];\r\n const selectedProductsArray = this.selectedProducts;\r\n selectedProductsArray.clear();\r\n this.selection?.selected?.forEach((product, index) => {\r\n if (!product?.value) {\r\n console.error('Product value (SKU) is missing at index:', index, product);\r\n return;\r\n }\r\n const productFormGroup = this.fb.group({\r\n price: [product?.price ?? '', this.showPrice && !this.isPriceDisable ? Validators.required : []],\r\n text: [product?.text || ''],\r\n quantity: [product?.quantity ?? '', this.showQuantity ? Validators.required : []],\r\n category: [product?.category || ''],\r\n subCategory: [product?.subCategory || ''],\r\n value: [product?.value || ''],\r\n otherInformation0: [product?.otherInformation0 || '', this.showCost ? Validators.required : []],\r\n otherInformation1: [product?.otherInformation1 || ''],\r\n otherInformation2: [product?.otherInformation2 ?? '']\r\n });\r\n if (productFormGroup) {\r\n selectedProductsArray.push(productFormGroup);\r\n } else {\r\n console.error(`Failed to create FormGroup for product at index ${index}.`);\r\n }\r\n });\r\n selectedProductsArray.controls.forEach((control, index) => {\r\n if (control instanceof FormGroup) {\r\n const priceControl = control.get('price');\r\n if (priceControl) {\r\n this.isPriceDisable ? priceControl.disable() : priceControl.enable();\r\n } else {\r\n console.error(`Price control is missing in FormGroup at index ${index}.`);\r\n }\r\n } else {\r\n console.error(`Unexpected control type at index ${index}:`, control);\r\n }\r\n });\r\n } else {\r\n console.error('Selection.selected is not an array:', this.selection.selected);\r\n }\r\n }\r\n\r\n\r\n getTotalRows(): number {\r\n return this.dataSource.data.length;\r\n }\r\n\r\n getSelectedRowsCount(): number {\r\n return this.selection.selected.length;\r\n }\r\n\r\n onOptionSelected(event: any, category: string) {\r\n let selectedValue;\r\n if (event && event.option && event.option.value !== undefined) {\r\n selectedValue = event.option.value.id;\r\n } else {\r\n selectedValue = event;\r\n }\r\n if (category === 'category1') {\r\n this.levelOneId = selectedValue;\r\n this.form.get('dropdownLevel2').setValue(null);\r\n this.form.get('dropdownLevel3').setValue(null);\r\n this.form.get('dropdownLevel4').setValue(null);\r\n this.filteredDropdownTwo = [];\r\n this.filteredDropdownThree = [];\r\n this.filteredDropdownFour = [];\r\n if (this.dropdownL2 && this.levelOneId) {\r\n this.form.get('dropdownLevel2')?.enable();\r\n this.form.get('dropdownLevel3')?.disable();\r\n this.form.get('dropdownLevel4')?.disable();\r\n this.isDisabled2 = false;\r\n this.loadDropdownL2(this.levelOneId);\r\n } else {\r\n this.form.get('dropdownLevel2')?.disable();\r\n this.form.get('dropdownLevel3')?.disable();\r\n this.form.get('dropdownLevel4')?.disable();\r\n this.form.get('dropdownLevel2').setValue(null);\r\n this.form.get('dropdownLevel3').setValue(null);\r\n this.form.get('dropdownLevel4').setValue(null);\r\n //this.levelOneId = null;\r\n this.levelTwoId = null;\r\n this.levelThreeId = null;\r\n this.levelFourId = null;\r\n this.isDisabled2 = true;\r\n this.isDisabled3 = true;\r\n this.isDisabled4 = true;\r\n }\r\n this.pageNumber = 1;\r\n this.pageSize = 20;\r\n this.getProducts(false);\r\n }\r\n if (category === 'category2') {\r\n this.levelTwoId = selectedValue;\r\n this.form.get('dropdownLevel3').setValue(null);\r\n this.form.get('dropdownLevel4').setValue(null);\r\n this.filteredDropdownThree = [];\r\n if (this.dropdownL3 && this.levelOneId && this.levelTwoId) {\r\n this.form.get('dropdownLevel3')?.enable();\r\n this.form.get('dropdownLevel4')?.disable();\r\n this.isDisabled3 = false;\r\n this.loadDropdownL3(this.levelOneId, this.levelTwoId);\r\n } else {\r\n this.form.get('dropdownLevel3')?.disable();\r\n this.form.get('dropdownLevel4')?.disable();\r\n this.form.get('dropdownLevel3').setValue(null);\r\n this.form.get('dropdownLevel4').setValue(null);\r\n //this.levelTwoId = null;\r\n this.levelThreeId = null;\r\n this.levelFourId = null;\r\n this.isDisabled3 = true;\r\n this.isDisabled4 = true;\r\n }\r\n this.pageNumber = 1;\r\n this.pageSize = 20;\r\n this.getProducts(false);\r\n }\r\n if (category === 'category3') {\r\n this.levelThreeId = selectedValue;\r\n this.form.get('dropdownLevel4').setValue(null);\r\n this.filteredDropdownFour = [];\r\n if (this.dropdownL4 && this.levelOneId && this.levelTwoId && this.levelThreeId) {\r\n this.form.get('dropdownLevel4')?.enable();\r\n this.isDisabled4 = false;\r\n this.loadDropdownL4(this.levelOneId, this.levelTwoId, this.levelThreeId);\r\n } else {\r\n this.form.get('dropdownLevel4')?.disable();\r\n this.form.get('dropdownLevel4').setValue(null);\r\n //this.levelThreeId = null;\r\n this.levelFourId = null;\r\n this.isDisabled4 = true;\r\n }\r\n this.pageNumber = 1;\r\n this.pageSize = 20;\r\n this.getProducts(false);\r\n }\r\n if (category === 'category4') {\r\n this.levelFourId = selectedValue;\r\n this.pageNumber = 1;\r\n this.pageSize = 20;\r\n this.getProducts(false);\r\n }\r\n this.updateActiveFiltersCount();\r\n }\r\n\r\n getProducts(flag: boolean) {\r\n this.spinnerFlag = true;\r\n const search = this.searchQuery;\r\n const levelOneId = this.levelOneId ? this.levelOneId : 0;\r\n const levelTwoId = this.levelTwoId ? this.levelTwoId : 0;\r\n const levelThreeId = this.levelThreeId ? this.levelThreeId : 0;\r\n const levelFourId = this.levelFourId ? this.levelFourId : 0;\r\n if (this.shouldResetTable(search, levelOneId, levelTwoId, levelThreeId, levelFourId)) {\r\n this.resetTable();\r\n return;\r\n }\r\n this.commonSevice.loadProducts(this.pageNumber, this.pageSize, search, true, false, levelOneId, levelTwoId, levelThreeId, levelFourId).subscribe(response => {\r\n this.spinnerFlag = false;\r\n if (response && response.code === 200) {\r\n this.totalPages = response?.data?.totalPages;\r\n const data = response.data.dataSource;\r\n this.getTotalRecords = response.data.totalRecords\r\n // Sync selection state with new data\r\n data.forEach(product => {\r\n const existingProduct = this.selection.selected.find(p => p.value === product.value);\r\n if (existingProduct) {\r\n Object.assign(product, existingProduct); // Replace product with existing reference\r\n this.selection.select(product); // Mark as selected\r\n this.updateSelectedProducts();\r\n }\r\n });\r\n\r\n // Avoid duplicates in the dataSource\r\n const existingProductValues = new Set(this.dataSource.data.map(product => product.value));\r\n const uniqueNewData = data.filter(product => !existingProductValues.has(product.value));\r\n if (this.dataSource.data.length > 0 && flag) {\r\n // data.forEach(item => this.dataSource.data.push(item));\r\n this.dataSource.data = [...this.dataSource.data, ...uniqueNewData];\r\n } else {\r\n this.dataSource.data = data;\r\n }\r\n\r\n this.loadingFlag = true;\r\n setTimeout(() => {\r\n const middlePosition = this.trackHeight / 2 - 50;\r\n if (this.firstscrollableDiv && this.firstscrollableDiv.nativeElement && flag) {\r\n this.firstscrollableDiv.nativeElement.scrollTo({ top: middlePosition, behavior: 'auto' });\r\n }\r\n }, 250);\r\n this.initializeDataSources();\r\n }\r\n });\r\n }\r\n\r\n removeRow(event: Event, element: Product) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n let message = 'Are you sure you want to delete this product?';\r\n let showButton = true;\r\n const index = this.selectedDataSource.data.indexOf(element);\r\n if (index >= 0) {\r\n if (this.selectedDataSource.data.length === 1 && !this.checkSubmissionStatus) {\r\n message = 'Please select at least one product.';\r\n showButton = false;\r\n }\r\n const dialogRef = this.dialog.open(ConfirmationDialogComponent, {\r\n disableClose: true,\r\n width: '90%',\r\n maxWidth: '400px',\r\n data: { message: message, buttonStatus: showButton }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.selectedDataSource.data.splice(index, 1);\r\n this.selectedDataSource._updateChangeSubscription();\r\n this.selection.deselect(element);\r\n const selectedProductsArray = this.form.get('selectedProducts') as FormArray;\r\n const productIndex = selectedProductsArray.controls.findIndex(control => control.value.value === element.value);\r\n if (productIndex >= 0) {\r\n selectedProductsArray.removeAt(productIndex);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n onScroll(event: any) {\r\n this.trackHeight = event.target.scrollHeight - event.target.offsetHeight;\r\n if (this.loadingFlag && (Math.floor(event.target.scrollTop / this.trackHeight * 100) > 50)) {\r\n this.loadingFlag = false;\r\n if (this.pageNumber < this.totalPages) {\r\n this.pageNumber = this.pageNumber + 1;\r\n this.getProducts(true);\r\n } else {\r\n this.loadingFlag = true;\r\n }\r\n }\r\n this.prevScrollPosition = event.target.scrollTop;\r\n }\r\n\r\n countTrueDropdowns(obj) {\r\n // Dynamically find all keys that start with 'dropdownL' and are boolean (true/false)\r\n return Object.keys(obj)\r\n .filter(key => key.startsWith('dropdownL') && typeof obj[key] === 'boolean' && obj[key] === true)\r\n .length;\r\n }\r\n\r\n /* Use the property that should display in the input field */\r\n displayFn(option): string {\r\n return option ? option.name : '';\r\n }\r\n\r\n onQuantityChange(event: any, index: number): void {\r\n const value = event.target.value;\r\n const quantityControl = this.selectedProducts.at(index).get('quantity');\r\n\r\n if (!quantityControl) return;\r\n\r\n // Clear any previous errors\r\n quantityControl.setErrors(null);\r\n\r\n // If the value is empty, set 'required' error\r\n if (value === '' || value === null) {\r\n quantityControl.setErrors({ 'required': true });\r\n }\r\n // If the value is less than 1, set 'min' error\r\n else if (Number(value) < 1) {\r\n quantityControl.setErrors({ 'min': true });\r\n }\r\n // If the value is not an integer, set 'pattern' error\r\n else if (!/^\\d+$/.test(value)) {\r\n quantityControl.setErrors({ 'pattern': true });\r\n }\r\n }\r\n\r\n\r\n goToNextPage() {\r\n this.currentPage = 'edit-save';\r\n }\r\n\r\n goToPreviousPage() {\r\n this.currentPage = 'select-products';\r\n }\r\n\r\n toggleSection() {\r\n this.isVisible = !this.isVisible;\r\n }\r\n\r\n clearField(field: string, category: string, event: Event) {\r\n event?.stopPropagation(); // Stop event propagation to prevent dropdown reopen\r\n this.form.get(field)?.setValue(null);\r\n if (category === 'category1') {\r\n this.onOptionSelected(null, 'category1');\r\n } else if (category === 'category2') {\r\n this.onOptionSelected(null, 'category2');\r\n } else if (category === 'category3') {\r\n this.onOptionSelected(null, 'category3');\r\n } else if (category === 'category4') {\r\n this.levelFourId = null;\r\n this.onOptionSelected(null, 'category4');\r\n }\r\n this.updateActiveFiltersCount();\r\n }\r\n\r\n onInputChange(event: Event, category: string) {\r\n const inputValue = (event.target as HTMLInputElement).value;\r\n if (!inputValue) {\r\n // Handle case where input is cleared\r\n this.clearField(`dropdownLevel${this.getDropdownLevel(category)}`, category, null);\r\n }\r\n }\r\n\r\n getDropdownLevel(category: string): number {\r\n switch (category) {\r\n case 'category1': return 1;\r\n case 'category2': return 2;\r\n case 'category3': return 3;\r\n case 'category4': return 4;\r\n default: return 0;\r\n }\r\n }\r\n\r\n updateActiveFiltersCount() {\r\n this.activeFiltersCount = 0;\r\n if (this.searchQuery !== '') this.activeFiltersCount++;\r\n if (this.form.get('dropdownLevel1').value) this.activeFiltersCount++;\r\n if (this.form.get('dropdownLevel2').value) this.activeFiltersCount++;\r\n if (this.form.get('dropdownLevel3').value) this.activeFiltersCount++;\r\n if (this.form.get('dropdownLevel4').value) this.activeFiltersCount++;\r\n }\r\n\r\n clearIfEmpty(event: any) {\r\n if (!event.target.value) {\r\n this.form.controls['searchProductName'].setValue('');\r\n this.searchQuery = '';\r\n const search = this.searchQuery;\r\n const levelOneId = this.levelOneId ? this.levelOneId : 0;\r\n const levelTwoId = this.levelTwoId ? this.levelTwoId : 0;\r\n const levelThreeId = this.levelThreeId ? this.levelThreeId : 0;\r\n const levelFourId = this.levelFourId ? this.levelFourId : 0;\r\n if (this.shouldResetTable(search, levelOneId, levelTwoId, levelThreeId, levelFourId)) {\r\n this.resetTable();\r\n return;\r\n }\r\n }\r\n }\r\n\r\n resetTable() {\r\n this.form.get('dropdownLevel1').setValue(null);\r\n this.form.get('dropdownLevel2').setValue(null);\r\n this.form.get('dropdownLevel3').setValue(null);\r\n this.form.get('dropdownLevel4').setValue(null);\r\n this.form.get('dropdownLevel2')?.disable();\r\n this.form.get('dropdownLevel3')?.disable();\r\n this.form.get('dropdownLevel4')?.disable();\r\n this.levelOneId = 0;\r\n this.levelTwoId = 0;\r\n this.levelThreeId = 0;\r\n this.levelFourId = 0;\r\n this.pageNumber = 1;\r\n this.pageSize = 20;\r\n this.form.controls['searchProductName'].setValue('');\r\n this.searchQuery = '';\r\n this.dataSource.data = [];\r\n this.spinnerFlag = false;\r\n this.updateActiveFiltersCount();\r\n }\r\n\r\n shouldResetTable(search: string, levelOneId: number, levelTwoId: number, levelThreeId: number, levelFourId: number): boolean {\r\n return search === '' && levelOneId === 0 && levelTwoId === 0 && levelThreeId === 0 && levelFourId === 0;\r\n }\r\n\r\n /* This function will manage price and cost validation */\r\n applyValidationRule(event: any, index: number, controlName: string) {\r\n const value = event.target.value.trim();\r\n const control = this.selectedProducts.at(index).get(controlName);\r\n if (!control) return;\r\n\r\n // Clear any previous errors\r\n control.setErrors(null);\r\n // If the value is empty, set 'required' error\r\n if (value === '' || value === null) {\r\n control.setErrors({ 'required': true });\r\n return;\r\n }\r\n if (controlName === 'otherInformation0' && this.alphanumeric) {\r\n // Allow all characters — no restrictions\r\n return;\r\n } else {\r\n // Check if value contains only numbers and decimals (but no alphabets or special characters)\r\n if (!/^\\d*\\.?\\d*$/.test(value)) {\r\n event.target.value = value.replace(/[^0-9.]/g, '');\r\n control.setErrors({ 'invalidFormat': true });\r\n }\r\n }\r\n }\r\n\r\n\r\n restrictInput(event: KeyboardEvent, controlName: string) {\r\n const key = event.key;\r\n const inputElement = (event.target as HTMLInputElement);\r\n const inputValue = inputElement.value;\r\n if (controlName === 'otherInformation0' && this.alphanumeric) {\r\n // Allow all characters — no restrictions\r\n return;\r\n } else {\r\n // Allow numbers and one decimal, but prevent everything else\r\n if (!/[\\d.]/.test(key) || (key === '.' && inputValue.includes('.'))) {\r\n event.preventDefault();\r\n }\r\n }\r\n }\r\n\r\n handlePaste(event: ClipboardEvent, controlName: string) {\r\n const pasteData = event.clipboardData?.getData('text') || '';\r\n if (controlName === 'otherInformation0' && this.alphanumeric) {\r\n // Allow all characters — no restrictions\r\n return;\r\n } else {\r\n // If pasted value is not a valid number, prevent pasting\r\n if (!/^\\d*\\.?\\d*$/.test(pasteData)) {\r\n event.preventDefault();\r\n }\r\n }\r\n }\r\n\r\n scrollToFirstInvalidControl() {\r\n const dialogContent = document.querySelector(\r\n '.mat-dialog-content'\r\n ) as HTMLElement;\r\n\r\n const firstMatError = dialogContent?.querySelector(\r\n 'mat-error'\r\n ) as HTMLElement;\r\n\r\n if (!dialogContent || !firstMatError) return;\r\n\r\n const matFormField = firstMatError.closest('mat-form-field') as HTMLElement;\r\n if (!matFormField) return;\r\n\r\n dialogContent.scrollTop = dialogContent.scrollTop + 1;\r\n matFormField.scrollIntoView({\r\n behavior: 'smooth',\r\n block: 'center'\r\n });\r\n\r\n setTimeout(() => {\r\n const input = matFormField.querySelector(\r\n 'input, select, textarea'\r\n ) as HTMLElement;\r\n input?.focus();\r\n }, 300);\r\n }\r\n\r\n\r\n\r\n}\r\n","<div *ngIf=\"spinnerFlag\" class=\"OverlayDiv\">\r\n <div class=\"OverlayDivContent\">\r\n <mat-spinner></mat-spinner>\r\n </div>\r\n</div>\r\n<div class=\"mat-dialog-heading\">\r\n <h1 mat-dialog-title>Add Products</h1>\r\n</div>\r\n\r\n<mat-dialog-content [ngClass]=\"dataSource?.data?.length > 0 ? 'products-scroll-visible': ''\">\r\n <div class=\"mat-dialog-content\">\r\n <!--Search Start-->\r\n <div class=\"basic-search\" [hidden]=\"currentPage !== 'select-products'\">\r\n <div class=\"basic-search-wrp\">\r\n <div class=\"search-icon\">\r\n <svg width=\"80\" height=\"80\" viewBox=\"0 0 24 25\" xmlns=\"http://www.w3.org/2000/svg\"\r\n transform=\"rotate(0 0 0)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M11.25 2.75C6.14154 2.75 2 6.89029 2 11.998C2 17.1056 6.14154 21.2459 11.25 21.2459C13.5335 21.2459 15.6238 20.4187 17.2373 19.0475L20.7182 22.5287C21.011 22.8216 21.4859 22.8217 21.7788 22.5288C22.0717 22.2359 22.0718 21.761 21.7789 21.4681L18.2983 17.9872C19.6714 16.3736 20.5 14.2826 20.5 11.998C20.5 6.89029 16.3585 2.75 11.25 2.75ZM3.5 11.998C3.5 7.71905 6.96962 4.25 11.25 4.25C15.5304 4.25 19 7.71905 19 11.998C19 16.2769 15.5304 19.7459 11.25 19.7459C6.96962 19.7459 3.5 16.2769 3.5 11.998Z\" />\r\n </svg>\r\n </div>\r\n <form [formGroup]=\"form\">\r\n <div class=\"input-search\">\r\n <input (keydown.enter)=\"handleDropdownFilter(); $event.stopPropagation()\" type=\"text\" matInput\r\n placeholder=\"Search Product\" formControlName=\"searchProductName\"\r\n (input)=\"clearIfEmpty($event)\">\r\n </div>\r\n </form>\r\n <!-- <div class=\"advfilter\">\r\n <button class=\"adv\" (click)=\"toggleSection();$event.stopPropagation();\">\r\n <mat-icon class=\"material-icons-round\" aria-hidden=\"false\"\r\n aria-label=\"tune\">tune\r\n </mat-icon>\r\n <span *ngIf=\"activeFiltersCount > 0\" class=\"custom-badge\">{{ activeFiltersCount }}</span>\r\n </button>\r\n </div> -->\r\n </div>\r\n <div class=\"search-btn\">\r\n <button mat-raised-button color=\"primary\"\r\n (click)=\"handleDropdownFilter();$event.stopPropagation();\">Search</button>\r\n </div>\r\n </div>\r\n <!--Search End-->\r\n <div class=\"product-selector\">\r\n <div [hidden]=\"currentPage !== 'select-products'\">\r\n <form [formGroup]=\"form\">\r\n <div class=\"product-selection-container\" *ngIf=\"isVisible && dropdownL1\">\r\n <div class=\"dropdown-selection\" *ngIf=\"dropdownL1\">\r\n <div [ngClass]=\"dropDownCount === 1 ? 'no-child': 'child'\">\r\n <div class=\"title-adv\">\r\n <h5>Advanced Filters</h5>\r\n <button class=\"clr-all-picker\" type=\"button\" (click)=\"resetTable()\"\r\n *ngIf=\"activeFiltersCount > 0\">Clear All</button>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-lg-6\">\r\n <div class=\"example-full-width\">\r\n <mat-form-field *ngIf=\"dropdownL1\" class=\"example-full-width\">\r\n <mat-label>{{dropdownL1Label}}</mat-label>\r\n <input type=\"text\" matInput formControlName=\"dropdownLevel1\"\r\n [matAutocomplete]=\"auto3\"\r\n (input)=\"onInputChange($event, 'category1')\">\r\n <mat-autocomplete [displayWith]=\"displayFn\" #auto3=\"matAutocomplete\"\r\n (optionSelected)=\"onOptionSelected($event, 'category1')\">\r\n <mat-option *ngFor=\"let option of filteredDropdownOne\"\r\n [value]=\"option\">{{option.name}}</mat-option>\r\n </mat-autocomplete>\r\n <mat-icon matSuffix *ngIf=\"form.get('dropdownLevel1').value\"\r\n (click)=\"clearField('dropdownLevel1', 'category1', $event)\"\r\n class=\"iconclose\">close</mat-icon>\r\n <mat-icon class=\"icondropdown\" matSuffix>arrow_drop_down</mat-icon>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div class=\"col-lg-6\">\r\n <div class=\"example-full-width\">\r\n <mat-form-field *ngIf=\"dropdownL2\" class=\"example-full-width\">\r\n <mat-label>{{dropdownL2Label}}</mat-label>\r\n <input type=\"text\" matInput formControlName=\"dropdownLevel2\"\r\n [matAutocomplete]=\"auto4\"\r\n (input)=\"onInputChange($event, 'category2')\">\r\n <mat-autocomplete [displayWith]=\"displayFn\" #auto4=\"matAutocomplete\"\r\n (optionSelected)=\"onOptionSelected($event, 'category2')\">\r\n <mat-option *ngFor=\"let option of filteredDropdownTwo\"\r\n [value]=\"option\">{{option.name}}</mat-option>\r\n </mat-autocomplete>\r\n <mat-icon matSuffix *ngIf=\"form.get('dropdownLevel2').value\"\r\n (click)=\"clearField('dropdownLevel2', 'category2', $event)\"\r\n class=\"iconclose\">close</mat-icon>\r\n <mat-icon class=\"icondropdown\" matSuffix\r\n [ngClass]=\"{'disabled-icon': isDisabled2}\">arrow_drop_down</mat-icon>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-6\">\r\n <div class=\"example-full-width\">\r\n <mat-form-field *ngIf=\"dropdownL3\" class=\"example-full-width\">\r\n <mat-label>{{dropdownL3Label}}</mat-label>\r\n <input type=\"text\" matInput formControlName=\"dropdownLevel3\"\r\n [matAutocomplete]=\"auto5\"\r\n (input)=\"onInputChange($event, 'category3')\">\r\n <mat-autocomplete [displayWith]=\"displayFn\" #auto5=\"matAutocomplete\"\r\n (optionSelected)=\"onOptionSelected($event, 'category3')\">\r\n <mat-option *ngFor=\"let option of filteredDropdownThree\"\r\n [value]=\"option\">{{option.name}}</mat-option>\r\n </mat-autocomplete>\r\n <mat-icon matSuffix *ngIf=\"form.get('dropdownLevel3').value\"\r\n (click)=\"clearField('dropdownLevel3', 'category3', $event)\"\r\n class=\"iconclose\">close</mat-icon>\r\n <mat-icon class=\"icondropdown\" matSuffix\r\n [ngClass]=\"{'disable-icon': isDisabled3}\">arrow_drop_down</mat-icon>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div class=\"col-lg-6\">\r\n <div class=\"example-full-width\">\r\n <mat-form-field *ngIf=\"dropdownL4\" class=\"example-full-width\">\r\n <mat-label>{{dropdownL4Label}}</mat-label>\r\n <input type=\"text\" matInput formControlName=\"dropdownLevel4\"\r\n [matAutocomplete]=\"auto6\"\r\n (input)=\"onInputChange($event, 'category4')\">\r\n <mat-autocomplete [displayWith]=\"displayFn\" #auto6=\"matAutocomplete\"\r\n (optionSelected)=\"onOptionSelected($event, 'category4')\">\r\n <mat-option *ngFor=\"let option of filteredDropdownFour\"\r\n [value]=\"option\">{{option.name}}</mat-option>\r\n </mat-autocomplete>\r\n <mat-icon matSuffix *ngIf=\"form.get('dropdownLevel4').value\"\r\n (click)=\"clearField('dropdownLevel4', 'category4', $event)\"\r\n class=\"iconclose\">close</mat-icon>\r\n <mat-icon class=\"icondropdown\" matSuffix\r\n [ngClass]=\"{'disable-icon': isDisabled4}\">arrow_drop_down</mat-icon>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div #firstscrollableDiv id=\"firstscrollableDiv\" class=\"new-class first-div\"\r\n (scroll)=\"onScroll($event)\" [ngClass]=\"dataSource?.data?.length > 0 ? 'tbl-record-found': ''\">\r\n <table mat-table [dataSource]=\"dataSource\" class=\"mat-table abc\"\r\n *ngIf=\"dataSource && dataSource?.data?.length > 0; else noData\">\r\n <ng-container matColumnDef=\"select\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\" class=\"checkbox-picker-pointer\">\r\n <mat-checkbox color=\"primary\" (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? toggleSelection(row) : null\"\r\n [checked]=\"selection.isSelected(row)\"></mat-checkbox>\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"productName\">\r\n <th mat-header-cell *matHeaderCellDef> {{productTweek}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element?.text}} </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"skuNumber\" *ngIf=\"showSkuNumber\">\r\n <th mat-header-cell *matHeaderCellDef> {{skuTweek}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element?.otherInformation0}} </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"inventory\" *ngIf=\"showInventory\">\r\n <th mat-header-cell *matHeaderCellDef> {{inventoryTweek}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element?.otherInformation1}} </td>\r\n </ng-container>\r\n <tr mat-header-row *matHeaderRowDef=\"addProductsColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: addProductsColumns;\"\r\n [class.selected]=\"selection.isSelected(row)\"></tr>\r\n </table>\r\n <ng-template #noData>\r\n <div class=\"no-data-message\">\r\n <!--No data found.-->\r\n <div class=\"pp-empty-state\">\r\n <div class=\"img-empty-state\">\r\n <img [src]=\"emptyImage\" alt=\"\">\r\n </div>\r\n <h3>No records to show at the moment</h3>\r\n <p>Please modify your search criteria to find the desired result</p>\r\n </div>\r\n\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div class=\"row-summary\" *ngIf=\"dataSource && dataSource?.data?.length > 0\">\r\n <div>Selected: <strong>{{ getSelectedRowsCount() }}</strong> </div>\r\n <div>Total Records: <strong>{{ getTotalRecords }}</strong></div>\r\n </div>\r\n </form>\r\n </div>\r\n\r\n <div [hidden]=\"currentPage !== 'edit-save'\">\r\n <form [formGroup]=\"form\">\r\n <div class=\"new-class\"\r\n [ngClass]=\"selectedDataSource && selectedDataSource.data.length > 0 ? 'added-products': ''\">\r\n <table mat-table [dataSource]=\"selectedDataSource\"\r\n *ngIf=\"selectedDataSource && selectedDataSource.data.length > 0; else showBlank\">\r\n <ng-container matColumnDef=\"delete\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <button class=\"delete-btn-picker\" mat-button\r\n (click)=\"$event.stopPropagation();removeRow($event, element)\">\r\n <mat-icon aria-hidden=\"false\" aria-label=\"Remove row\">delete</mat-icon>\r\n </button>\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"productName\">\r\n <th mat-header-cell *matHeaderCellDef> {{productTweek}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.text}} </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"categoryName\" *ngIf=\"showCategory\">\r\n <th mat-header-cell *matHeaderCellDef> {{categoryTweek}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.category}} </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"subCategory\" *ngIf=\"showSubcategory\">\r\n <th mat-header-cell *matHeaderCellDef> {{subCategoryTweek}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.subCategory}} </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"price\" *ngIf=\"showPrice\">\r\n <th mat-header-cell *matHeaderCellDef>{{priceTweek}}</th>\r\n <td mat-cell *matCellDef=\"let element; let i = index\">\r\n <mat-form-field class=\"example-full-width select-price\">\r\n <mat-label>{{priceTweek}}</mat-label>\r\n <input matInput [formControl]=\"selectedProducts.at(i).get('price')\"\r\n (input)=\"applyValidationRule($event, i, 'price')\"\r\n (keypress)=\"restrictInput($event, '')\" (paste)=\"handlePaste($event, '')\">\r\n <mat-error *ngIf=\"selectedProducts.at(i).get('price').hasError('required')\">\r\n This field is required\r\n </mat-error>\r\n </mat-form-field>\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"Quantity\" *ngIf=\"showQuantity\">\r\n <th mat-header-cell *matHeaderCellDef> {{quantityTweek}} </th>\r\n <td mat-cell *matCellDef=\"let element; let i = index\">\r\n <mat-form-field class=\"example-full-width\">\r\n <mat-label>{{quantityTweek}}</mat-label>\r\n <input matInput [formControl]=\"selectedProducts.at(i).get('quantity')\"\r\n type=\"number\" min=\"1\" step=\"1\" (input)=\"onQuantityChange($event, i)\">\r\n <mat-error *ngIf=\"selectedProducts.at(i).get('quantity').hasError('required')\">\r\n This field is required\r\n </mat-error>\r\n <mat-error *ngIf=\"selectedProducts.at(i).get('quantity').hasError('min')\">\r\n Quantity can not be less than 1\r\n </mat-error>\r\n <mat-error *ngIf=\"selectedProducts.at(i).get('quantity').hasError('pattern')\">\r\n Decimals not allowed\r\n </mat-error>\r\n </mat-form-field>\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"skuNumber\" *ngIf=\"showSkuNumber\">\r\n <th mat-header-cell *matHeaderCellDef> {{skuTweek}} </th>\r\n <td mat-cell *matCellDef=\"let element\">{{element?.otherInformation0}} </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"inventory\" *ngIf=\"showInventory\">\r\n <th mat-header-cell *matHeaderCellDef> {{inventoryTweek}} </th>\r\n <td mat-cell *matCellDef=\"let element\">{{element?.otherInformation1}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"cost\" *ngIf=\"showCost\">\r\n <th mat-header-cell *matHeaderCellDef>{{costTweek}}</th>\r\n <td mat-cell *matCellDef=\"let element; let i = index\">\r\n <mat-form-field class=\"example-full-width select-cost\">\r\n <mat-label>{{costTweek}}</mat-label>\r\n <input matInput [formControl]=\"selectedProducts.at(i).get('otherInformation0')\"\r\n (input)=\"applyValidationRule($event, i, 'otherInformation0')\"\r\n (keypress)=\"restrictInput($event, 'otherInformation0')\" (paste)=\"handlePaste($event, 'otherInformation0')\">\r\n <mat-error\r\n *ngIf=\"selectedProducts.at(i).get('otherInformation0').hasError('required')\">\r\n This field is required\r\n </mat-error>\r\n </mat-form-field>\r\n </td>\r\n </ng-container>\r\n <tr mat-header-row *matHeaderRowDef=\"showAllproductsColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: showAllproductsColumns;\"></tr>\r\n </table>\r\n <!-- <ng-template #showBlank>\r\n <div class=\"no-data-message\">\r\n No data found.\r\n </div>\r\n </ng-template> -->\r\n <ng-template #showBlank>\r\n <div class=\"no-data-message\">\r\n <div class=\"pp-empty-state\">\r\n <div class=\"img-empty-state\">\r\n <img [src]=\"emptyImage\" alt=\"\">\r\n </div>\r\n <h3>No Product added</h3>\r\n <p>Please go back and start adding products</p>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n </div>\r\n</mat-dialog-content>\r\n\r\n<mat-dialog-actions>\r\n <div class=\"tabs-action-step-one\" *ngIf=\"currentPage === 'select-products'\">\r\n <div>\r\n <button mat-button (click)=\"goToNextPage()\" [disabled]=\"selection.selected.length ? false : true\"\r\n color=\"primary\" mat-raised-button>Edit Selected Products</button>\r\n </div>\r\n <div>\r\n <button mat-button (click)=\"goToNextPage()\" [disabled]=\"selection.selected.length ? false : true\"\r\n color=\"primary\" mat-raised-button>Next</button>\r\n <button mat-button [mat-dialog-close]=\"false\">Cancel</button>\r\n </div>\r\n </div>\r\n <div class=\"tabs-action\" *ngIf=\"currentPage === 'edit-save'\">\r\n <div class=\"tab-action-wrp\">\r\n <button mat-button (click)=\"goToPreviousPage()\">Back</button>\r\n <button mat-button type=\"submit\" color=\"primary\" mat-raised-button (click)=\"onSubmit()\">Add/Update</button>\r\n </div>\r\n </div>\r\n</mat-dialog-actions>","import { Attribute, ChangeDetectorRef, Component, ElementRef } from '@angular/core';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MaterialNestedComponent } from '../MaterialNestedComponent';\r\nimport DataGridComponent from 'formiojs/components/datagrid/DataGrid.js';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ConfirmationDialogComponent } from '../confirmation-dialog/confirmation-dialog.component';\r\nimport { AddOnProductsComponent } from '../add-on-products/add-on-products.component';\r\nimport { CommonService } from '../common.service';\r\nexport interface Product {\r\n productName: string;\r\n quantity: number;\r\n price: number;\r\n}\r\nconst ELEMENT_DATA: Product[] = [\r\n];\r\n@Component({\r\n selector: 'mat-formio-datagrid',\r\n template: `\r\n <mat-formio-form-field [instance]=\"instance\"\r\n [componentTemplate]=\"componentTemplate\"\r\n [labelTemplate]=\"labelTemplate\"\r\n ></mat-formio-form-field>\r\n <ng-template #componentTemplate let-hasLabel>\r\n <mat-card appearance=\"outlined\" fxFill>\r\n <ng-container *ngIf=\"hasLabel\">\r\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\r\n </ng-container>\r\n <mat-card-content>\r\n\r\n <!-- Message when no products are found -->\r\n <div class=\"no-data-message\" *ngIf=\"!showDataGrid || (dataSource?.data?.length === 0 && !showNewProductPicker)\">\r\n No products found. Please add some products.\r\n </div>\r\n\r\n <ng-container *ngIf=\"showDataGrid\">\r\n <mat-card-actions\r\n *ngIf=\"instance.hasAddButton() && (instance.component.addAnotherPosition === 'both' || instance.component.addAnotherPosition === 'top')\">\r\n <button mat-raised-button color=\"primary\" (click)=\"addAnother()\">\r\n <mat-icon>add</mat-icon>\r\n {{instance.component.addAnother || 'Add Another'}}\r\n </button>\r\n </mat-card-actions>\r\n<ng-container *ngIf=\"!showNewProductPicker\">\r\n<div class=\"mat-elevation-z8\">\r\n <table\r\n mat-table\r\n [dataSource]=\"dataSource\"\r\n class=\"mat-elevation-z8\"\r\n fxFill\r\n cdkDropList\r\n [cdkDropListData]=\"dataSource\"\r\n (cdkDropListDropped)=\"dropTable($event)\" *ngIf=\"!isCustomerCountryFiltered || !emptyArray; else noDataMessage\">\r\n \r\n \r\n <ng-container *ngFor=\"let column of formColumns\" [matColumnDef]=\"column\">\r\n <th mat-header-cell *matHeaderCellDef>{{ getColumnLabel(columns[column]) }}</th>\r\n <td mat-cell *matCellDef=\"let i = index;\" [attr.rowIndex]=\"i\" [attr.component]=\"column\">\r\n <ng-template #components></ng-template>\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"__removeRow\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td mat-cell *matCellDef=\"let i = index;\">\r\n <button mat-button *ngIf=\"instance.hasRemoveButtons()\" (click)=\"removeRow(i)\">\r\n <mat-icon aria-hidden=\"false\" aria-label=\"Remove row\">delete</mat-icon>\r\n </button>\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"position\" *ngIf=\"instance.component.reorder\">\r\n <th mat-header-cell *matHeaderCellDef> No.</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <mat-icon cdkDragHandle>reorder</mat-icon>\r\n </td>\r\n </ng-container>\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <div *ngIf=\"instance?.component?.reorder\">\r\n <tr class=\"datagrid-row\" mat-row *matRowDef=\"let row; columns: displayedColumns;\" cdkDrag\r\n [cdkDragData]=\"row\"></tr>\r\n </div>\r\n <div *ngIf=\"!instance?.component?.reorder\">\r\n <tr class=\"datagrid-row\" mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\r\n </div>\r\n </table>\r\n </div>\r\n</ng-container>\r\n\r\n<!-- Default Message -->\r\n<ng-template #noDataMessage>\r\n <div class=\"no-data-message\" *ngIf=\"isCustomerCountryFiltered && emptyArray && !showNewProductPicker\">\r\n <span>\r\n No Product found with the selected Customer country.\r\n </span>\r\n </div>\r\n</ng-template>\r\n\r\n <table mat-table [dataSource]=\"dataSourceNew\" class=\"mat-table\" *ngIf=\"dataSourceNew.length > 0 && showNewProductPicker; else noData\" >\r\n <!-- Product Name Column -->\r\n <ng-container matColumnDef=\"productName\">\r\n <th mat-header-cell *matHeaderCellDef> {{productTweek}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.text}} </td>\r\n </ng-container>\r\n\r\n <!-- Quantity Column -->\r\n <ng-container matColumnDef=\"quantity\" *ngIf=\"showQuantity\">\r\n <th mat-header-cell *matHeaderCellDef> {{ quantityTweek }} </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.quantity}} </td>\r\n </ng-container>\r\n\r\n <!-- Price Column -->\r\n <ng-container matColumnDef=\"price\" *ngIf=\"showPrice\">\r\n <th mat-header-cell *matHeaderCellDef> {{priceTweek}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.price}} </td>\r\n </ng-container>\r\n\r\n <!-- Category Column -->\r\n <ng-container matColumnDef=\"category\" *ngIf=\"showCategory\">\r\n <th mat-header-cell *matHeaderCellDef> {{categoryTweek}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.category}} </td>\r\n </ng-container>\r\n\r\n <!-- Category Column -->\r\n <ng-container matColumnDef=\"subCategory\" *ngIf=\"showSubcategory\">\r\n <th mat-header-cell *matHeaderCellDef> {{subCategoryTweek}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.subCategory}} </td>\r\n </ng-container>\r\n\r\n <!-- SKU Column -->\r\n <ng-container matColumnDef=\"skuNumber\" *ngIf=\"showSkuNumber\">\r\n <th mat-header-cell *matHeaderCellDef> {{skuTweek}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element?.otherInformation0}} </td>\r\n </ng-container>\r\n\r\n <!-- Inventory Column -->\r\n <ng-container matColumnDef=\"inventory\" *ngIf=\"showInventory\">\r\n <th mat-header-cell *matHeaderCellDef> {{inventoryTweek}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element?.otherInformation1}} </td>\r\n </ng-container>\r\n\r\n <!-- Your Target Cost -->\r\n <ng-container matColumnDef=\"cost\" *ngIf=\"showCost\">\r\n <th mat-header-cell *matHeaderCellDef> {{costTweek}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element?.otherInformation0 || element?.otherInformation2}} </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumnsNew\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumnsNew;\"></tr>\r\n </table>\r\n <ng-template #noData>\r\n <div class=\"no-data-message\" *ngIf=\"showNewProductPicker\">\r\n <ng-container *ngIf=\"showNewProductPicker && !isCustomerCountryFiltered\">\r\n No products found. Please add some products.\r\n </ng-container>\r\n <ng-container *ngIf=\"showNewProductPicker && isCustomerCountryFiltered\">\r\n No products found. Please add some products.\r\n </ng-container>\r\n </div>\r\n </ng-template>\r\n\r\n</ng-container>\r\n\r\n </mat-card-content>\r\n <mat-card-actions *ngIf=\"instance.hasAddButton() && instance.component.addAnotherPosition !== 'top'\">\r\n <button class = \"picker2new-btn\" mat-raised-button color=\"primary\" (click)=\"addAnother()\" *ngIf=\"!(isCustomerCountryFiltered && emptyArray && !showNewProductPicker)\">\r\n <mat-icon>add</mat-icon>\r\n {{instance.component.addAnother || 'Add Another'}}\r\n </button>\r\n </mat-card-actions>\r\n </mat-card>\r\n </ng-template>\r\n\r\n <ng-template #labelTemplate>\r\n <mat-card-title>\r\n <span [instance]=\"instance\" matFormioLabel></span>\r\n </mat-card-title>\r\n </ng-template>\r\n `,\r\n styles: [\r\n `.datagrid-row { height: auto; } .mat-mdc-table{ width: 100% } .mat-mdc-header-cell, .mat-mdc-cell{ padding: 8px } .no-data-message {display: flex; justify-content: center; align-items: center; text-align: center; padding:20px; margin: 0 20px 0; font-size: 18px;color: #888;} /* TODO(mdc-migration): The following rule targets internal classes of button that may no longer apply for the MDC version. */\r\n ::ng-deep .picker2new-btn.cdk-program-focused .mat-button-focus-overlay{opacity: 0}`\r\n ]\r\n})\r\nexport class MaterialDataGridComponent extends MaterialNestedComponent {\r\n\r\n constructor(public element: ElementRef, public ref: ChangeDetectorRef, private dialog: MatDialog, public commonService: CommonService) {\r\n super(element, ref);\r\n if (this.element && this.element.nativeElement && this.instance) {\r\n // Add custom classes to elements.\r\n if (this.instance.component.customClass) {\r\n this.element.nativeElement.classList.add(this.instance.component.customClass);\r\n }\r\n }\r\n }\r\n displayedColumns: string[];\r\n formColumns: string[];\r\n columns: any;\r\n dataSource = new MatTableDataSource();\r\n dataSourceNew = ELEMENT_DATA;\r\n displayedColumnsNew: string[] = ['productName', 'category', 'subCategory', 'quantity', 'price', 'skuNumber', 'inventory', 'cost'];\r\n showNewProductPicker: boolean = false;\r\n showCategory: boolean = false;\r\n showSubcategory: boolean = false;\r\n showPrice: boolean = true;\r\n showQuantity: boolean = true;\r\n showSkuNumber: boolean = false;\r\n showInventory: boolean = false;\r\n hasInitialized: boolean = false;\r\n checkSubmissionStatus: boolean = false;\r\n showDataGrid: boolean = true;\r\n hasValueAndEditMode: boolean = false;\r\n dropdownL1: boolean = false;\r\n dropdownL2: boolean = false;\r\n dropdownL3: boolean = false;\r\n dropdownL4: boolean = false;\r\n showDialogQuantity: boolean = false;\r\n showDialogPrice: boolean = false;\r\n showDialogCategory: boolean = false;\r\n showDialogSkuNumber: boolean = false;\r\n showDialogInventory: boolean = false;\r\n showDialogSubCategory: boolean = false;\r\n dropdownL1Label: string = '';\r\n dropdownL2Label: string = '';\r\n dropdownL3Label: string = '';\r\n dropdownL4Label: string = '';\r\n dealId: any;\r\n isCustomerCountryFiltered: boolean = false;\r\n emptyArray: boolean = false;\r\n isPriceDisable: boolean = true;\r\n priceTweek: string = 'Price';\r\n skuTweek: string = 'SKU Number';\r\n costTweek: string = 'Your Target Cost';\r\n showCost: boolean = false;\r\n showDialogCost: boolean = false;\r\n quantityTweek: string = 'Quantity';\r\n productTweek: string = 'Product Name';\r\n categoryTweek: string = 'Category Name';\r\n subCategoryTweek: string = 'Sub Category';\r\n inventoryTweek: string = 'Inventory';\r\n alphanumeric: boolean = false;\r\n getColumnLabel(column) {\r\n return column.label || column.key;\r\n }\r\n\r\n\r\n\r\n getLabelName(newProductPickerFlag, attributeName) {\r\n if (newProductPickerFlag && Object.keys(newProductPickerFlag).some(key =>\r\n key.toLocaleLowerCase() === attributeName.toLowerCase())) {\r\n // Find the key that matches attributeName case-insensitively\r\n const matchingKey = Object.keys(newProductPickerFlag).find(key =>\r\n key.toLocaleLowerCase() === attributeName.toLowerCase()\r\n );\r\n // Return the value of the matching key\r\n return newProductPickerFlag[matchingKey];\r\n }\r\n\r\n return '';\r\n }\r\n\r\n\r\n // ngOnInit(): void {\r\n\r\n // }\r\n\r\n setInstance(instance: any) {\r\n const checkAttribute = instance?.component?.attributes;\r\n this.showNewProductPicker = this.commonService.checkIsAttributeTrue(checkAttribute, \"newproductpicker\");\r\n this.showCategory = this.commonService.checkIsAttributeTrue(checkAttribute, \"showCategory\");\r\n this.showSubcategory = this.commonService.checkIsAttributeTrue(checkAttribute, \"showSubcategory\");\r\n this.showPrice = this.commonService.checkIsAttributeTrue(checkAttribute, \"showPrice\");\r\n this.showQuantity = this.commonService.checkIsAttributeTrue(checkAttribute, \"showQuantity\");\r\n this.showSkuNumber = this.commonService.checkIsAttributeTrue(checkAttribute, \"showSkuNumber\");\r\n this.showInventory = this.commonService.checkIsAttributeTrue(checkAttribute, \"showInventory\")\r\n this.showDialogQuantity = this.commonService.checkIsAttributeTrue(checkAttribute, \"showDialogQuantity\");\r\n this.showDialogPrice = this.commonService.checkIsAttributeTrue(checkAttribute, \"showDialogPrice\");\r\n this.showDialogCategory = this.commonService.checkIsAttributeTrue(checkAttribute, \"showDialogCategory\");\r\n this.showDialogSkuNumber = this.commonService.checkIsAttributeTrue(checkAttribute, \"showDialogSkuNumber\");\r\n this.showDialogInventory = this.commonService.checkIsAttributeTrue(checkAttribute, \"showDialogInventory\");\r\n this.showDialogSubCategory = this.commonService.checkIsAttributeTrue(checkAttribute, \"showDialogSubCategory\");\r\n this.isCustomerCountryFiltered = this.commonService.checkIsAttributeTrue(checkAttribute, \"filterProductBasedOnCustomerCountry\");\r\n this.isPriceDisable = this.commonService.checkIsAttributeTrue(checkAttribute, \"isPriceDisable\");\r\n this.showCost = this.commonService.checkIsAttributeTrue(checkAttribute, \"showCost\");\r\n this.showDialogCost = this.commonService.checkIsAttributeTrue(checkAttribute, \"showDialogCost\");\r\n this.alphanumeric = this.commonService.checkIsAttributeTrue(checkAttribute, \"Alphanumeric\");\r\n const l1 = this.getLabelName(checkAttribute, \"dropdownL1\");\r\n const l2 = this.getLabelName(checkAttribute, \"dropdownL2\");\r\n const l3 = this.getLabelName(checkAttribute, \"dropdownL3\");\r\n const l4 = this.getLabelName(checkAttribute, \"dropdownL4\");\r\n const price = this.getLabelName(checkAttribute, \"priceLabel\");\r\n const sku = this.getLabelName(checkAttribute, \"skuLabel\");\r\n const cost = this.getLabelName(checkAttribute, \"costLabel\");\r\n const quantity = this.getLabelName(checkAttribute, \"quantityLabel\");\r\n const product = this.getLabelName(checkAttribute, \"productLabel\");\r\n const category = this.getLabelName(checkAttribute, \"categoryLabel\");\r\n const subCategory = this.getLabelName(checkAttribute, \"subCategoryLabel\");\r\n const inventory = this.getLabelName(checkAttribute, \"inventoryLabel\");\r\n this.dropdownL1 = l1 !== null && l1 !== undefined && (typeof l1 === 'string' ? l1.trim() !== \"\" : l1 !== \"\") ? true : false;\r\n this.dropdownL2 = l2 !== null && l2 !== undefined && (typeof l2 === 'string' ? l2.trim() !== \"\" : l2 !== \"\") ? true : false;\r\n this.dropdownL3 = l3 !== null && l3 !== undefined && (typeof l3 === 'string' ? l3.trim() !== \"\" : l3 !== \"\") ? true : false;\r\n this.dropdownL4 = l4 !== null && l4 !== undefined && (typeof l4 === 'string' ? l4.trim() !== \"\" : l4 !== \"\") ? true : false;\r\n const priceTweek = price !== null && price !== undefined && (typeof price === 'string' ? price.trim() !== \"\" : price !== \"\") ? true : false;\r\n const skuTweek = sku !== null && sku !== undefined && (typeof sku === 'string' ? sku.trim() !== \"\" : sku !== \"\") ? true : false;\r\n const costTweek = cost !== null && cost !== undefined && (typeof cost === 'string' ? cost.trim() !== \"\" : cost !== \"\") ? true : false;\r\n const quantityTweek = quantity !== null && quantity !== undefined && (typeof quantity === 'string' ? quantity.trim() !== \"\" : quantity !== \"\") ? true : false;\r\n const productTweek = product !== null && product !== undefined && (typeof product === 'string' ? product.trim() !== \"\" : product !== \"\") ? true : false;\r\n const categoryTweek = category !== null && category !== undefined && (typeof category === 'string' ? category.trim() !== \"\" : category !== \"\") ? true : false;\r\n const subCategoryTweek = subCategory !== null && subCategory !== undefined && (typeof subCategory === 'string' ? subCategory.trim() !== \"\" : subCategory !== \"\") ? true : false;\r\n const inventoryTweek = inventory !== null && inventory !== undefined && (typeof inventory === 'string' ? inventory.trim() !== \"\" : inventory !== \"\") ? true : false;\r\n if (this.dropdownL1) {\r\n this.dropdownL1Label = l1;\r\n }\r\n if (this.dropdownL2) {\r\n this.dropdownL2Label = l2;\r\n }\r\n if (this.dropdownL3) {\r\n this.dropdownL3Label = l3;\r\n }\r\n if (this.dropdownL4) {\r\n this.dropdownL4Label = l4;\r\n }\r\n if (priceTweek) {\r\n this.priceTweek = price;\r\n }\r\n\r\n if (skuTweek) {\r\n this.skuTweek = sku;\r\n }\r\n\r\n if (costTweek) {\r\n this.costTweek = cost;\r\n }\r\n if (quantityTweek) {\r\n this.quantityTweek = quantity;\r\n }\r\n\r\n if (productTweek) {\r\n this.productTweek = product;\r\n }\r\n if (categoryTweek) {\r\n this.categoryTweek = category;\r\n }\r\n if (subCategoryTweek) {\r\n this.subCategoryTweek = subCategory;\r\n }\r\n if (inventoryTweek) {\r\n this.inventoryTweek = inventory;\r\n }\r\n this.checkSubmissionStatus = this.commonService.checkIsAttributeTrue(checkAttribute, 'isProductOptional');\r\n this.hasValueAndEditMode = (checkAttribute?.hasValue === 'yes') && (checkAttribute?.editMode === 'true');\r\n const retrievedObject = JSON.parse(localStorage.getItem('storageObject'));\r\n this.emptyArray = retrievedObject?.dataSource?.length < 1 ? true : false;\r\n super.setInstance(instance);\r\n if (this.showNewProductPicker && !this.hasInitialized) {\r\n if (!this.showCategory) {\r\n this.removeColumn('category');\r\n }\r\n if (!this.showQuantity) {\r\n this.removeColumn('quantity');\r\n }\r\n if (!this.showPrice) {\r\n this.removeColumn('price');\r\n }\r\n if (!this.showSubcategory) {\r\n this.removeColumn('subCategory');\r\n }\r\n if (!this.showSkuNumber) {\r\n this.removeColumn('skuNumber');\r\n }\r\n if (!this.showInventory) {\r\n this.removeColumn('inventory')\r\n }\r\n if (!this.showCost) {\r\n this.removeColumn('cost');\r\n }\r\n this.dealId = this.getLabelName(checkAttribute, \"dealId\");\r\n localStorage.setItem(\"currentDealId\", this.dealId);\r\n const storedData = localStorage.getItem(`showGridPickerProducts-${this.dealId}`) || '';\r\n const parsedData = JSON.parse(storedData || 'null');\r\n this.dataSourceNew = Array.isArray(parsedData) ? parsedData : [];\r\n\r\n // Set flag to true to prevent further execution\r\n this.hasInitialized = true;\r\n } else {\r\n this.dataSource.data = instance.dataValue;\r\n }\r\n //this.checkSubmissionStatus && \r\n if (this.checkSubmissionStatus && !this.hasValueAndEditMode) {\r\n this.showDataGrid = false;\r\n this.dataSource.data = []\r\n } else {\r\n this.showDataGrid = true;\r\n this.dataSource.data = instance.dataValue;\r\n }\r\n this.columns = {};\r\n this.displayedColumns = [];\r\n this.formColumns = [];\r\n instance.getColumns().map((column) => {\r\n this.formColumns.push(column.key);\r\n this.displayedColumns.push(column.key);\r\n this.columns[column.key] = column;\r\n });\r\n this.displayedColumns.push('__removeRow');\r\n if (this.instance.component.reorder) {\r\n this.displayedColumns.push('position');\r\n }\r\n instance.viewContainer = (component) => {\r\n let viewContainer;\r\n if (this.instance.component.disabled) {\r\n component.component.disabled = true;\r\n }\r\n this.viewContainers.forEach((container) => {\r\n const td = container.element.nativeElement.parentNode;\r\n if (\r\n component.rowIndex === parseInt(td.getAttribute('rowIndex'), 10) &&\r\n component.component.key === td.getAttribute('component')\r\n ) {\r\n viewContainer = container;\r\n }\r\n });\r\n\r\n return viewContainer ? viewContainer : null;\r\n };\r\n\r\n if (this.element && this.element.nativeElement && this.instance) {\r\n // Add custom classes to elements.\r\n if (this.instance.component.customClass) {\r\n this.element.nativeElement.classList.add(this.instance.component.customClass);\r\n }\r\n }\r\n }\r\n\r\n removeColumn(columnName: string) {\r\n this.displayedColumnsNew = this.displayedColumnsNew.filter(column => column !== columnName);\r\n }\r\n\r\n addAnotherOld() {\r\n this.showDataGrid = true;\r\n this.checkRowsNumber();\r\n this.instance.addRow();\r\n if (this.dataSource.data.length < this.instance.rows.length) {\r\n this.dataSource.data.push({});\r\n }\r\n this.dataSource.data = [...this.dataSource.data];\r\n }\r\n\r\n addAnother() {\r\n this.showDataGrid = true;\r\n if (this.showNewProductPicker) {\r\n localStorage.setItem('currentDealId', this.dealId);\r\n const diologeRef = this.dialog.open(AddOnProductsComponent, {\r\n disableClose: true,\r\n width: '90%',\r\n maxWidth: '1000px',\r\n autoFocus: false,\r\n data: { dropdownsFlag: { showDialogInventory: this.showDialogInventory, showInventory: this.showInventory, inventoryTweek: this.inventoryTweek, quantityTweek: this.quantityTweek, subCategoryTweek: this.subCategoryTweek, categoryTweek: this.categoryTweek, productTweek: this.productTweek, costTweek: this.costTweek, skuTweek: this.skuTweek, priceTweek: this.priceTweek, showDialogCost: this.showDialogCost, showNewProductPicker: this.showNewProductPicker, showDialogSubCategory: this.showDialogSubCategory, showDialogSkuNumber: this.showDialogSkuNumber, showDialogCategory: this.showDialogCategory, showDialogPrice: this.showDialogPrice, showDialogQuantity: this.showDialogQuantity, dropdownL1: this.dropdownL1, dropdownL2: this.dropdownL2, dropdownL3: this.dropdownL3, dropdownL4: this.dropdownL4, dropdownL1Label: this.dropdownL1Label, dropdownL2Label: this.dropdownL2Label, dropdownL3Label: this.dropdownL3Label, dropdownL4Label: this.dropdownL4Label, checkSubmissionStatus: this.checkSubmissionStatus, priceDisable: this.isPriceDisable, alphanumeric: this.alphanumeric }, selectedProducts: this.dataSourceNew }\r\n })\r\n .afterClosed().subscribe(response => {\r\n this.instance.addRow();\r\n if (response?.data?.status) {\r\n this.instance.addRow();\r\n if (!this.showCategory) {\r\n this.removeColumn('category');\r\n }\r\n if (!this.showQuantity) {\r\n this.removeColumn('quantity');\r\n }\r\n if (!this.showPrice) {\r\n this.removeColumn('price');\r\n }\r\n if (!this.showSubcategory) {\r\n this.removeColumn('subCategory');\r\n }\r\n if (!this.showInventory) {\r\n this.removeColumn('inventory');\r\n }\r\n const selectedProductsCopy = JSON.parse(JSON.stringify(response.data.items.selectedProducts));\r\n localStorage.setItem(`selectedProducts-${this.dealId}`, JSON.stringify(this.addPriceProperty(selectedProductsCopy)));\r\n this.dataSourceNew = response.data.items.selectedProducts;\r\n this.showDataGrid = true;\r\n this.instance.component.defaultValue = response.data.items.selectedProducts;\r\n }\r\n });\r\n } else {\r\n this.checkRowsNumber();\r\n this.instance.addRow();\r\n if (this.dataSource.data.length < this.instance.rows.length) {\r\n this.dataSource.data.push({});\r\n }\r\n this.dataSource.data = [...this.dataSource.data];\r\n }\r\n\r\n }\r\n\r\n addPriceProperty(selectedProducts) {\r\n return selectedProducts.map(products => {\r\n return {\r\n ...products,\r\n priceDisable: this.isPriceDisable ? true : false\r\n }\r\n })\r\n }\r\n checkRowsNumber() {\r\n while (this.instance.rows.length < this.dataSource.data.length) {\r\n this.instance.addRow();\r\n }\r\n }\r\n\r\n removeRow(index) {\r\n let message = 'Are you sure you want to delete this product?';\r\n let showButton = true;\r\n if (this.dataSource?.data?.length === 1 && !this.checkSubmissionStatus) {\r\n message = 'Please select at least one product.';\r\n showButton = false;\r\n }\r\n const dialogRef = this.dialog.open(ConfirmationDialogComponent, {\r\n disableClose: true,\r\n width: '90%',\r\n maxWidth: '400px',\r\n data: { message: message, buttonStatus: showButton }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n if (this.dataSource?.data?.length === 1 && this.checkSubmissionStatus) {\r\n this.showDataGrid = false;\r\n }\r\n // User confirmed, proceed with deletion\r\n this.instance.removeRow(index);\r\n this.dataSource.data.splice(index, 1);\r\n this.dataSource.data = [...this.dataSource.data];\r\n }\r\n });\r\n }\r\n\r\n dropTable(event: CdkDragDrop<any>) {\r\n const prevIndex = this.dataSource.data.findIndex((d) => d === event.item.data);\r\n moveItemInArray(this.control.value, prevIndex, event.currentIndex);\r\n this.renderComponents();\r\n }\r\n\r\n renderComponents() {\r\n this.instance.getRows();\r\n this.instance.setValue(this.control.value || []);\r\n }\r\n\r\n setValue(value: [] | null) {\r\n const gridLength = value ? value.length : 0;\r\n while (this.instance.rows.length < gridLength) {\r\n this.addAnother();\r\n this.instance.dataValue = value;\r\n this.instance.setValue(value);\r\n }\r\n\r\n if (!value && this.instance.component.clearOnHide) {\r\n this.dataSource = new MatTableDataSource(this.instance.defaultValue);\r\n }\r\n super.setValue(value);\r\n }\r\n}\r\nDataGridComponent.MaterialComponent = MaterialDataGridComponent;\r\nexport { DataGridComponent };","import {\r\n Component,\r\n ViewChild,\r\n ViewChildren,\r\n QueryList,\r\n ElementRef,\r\n AfterViewInit\r\n} from '@angular/core';\r\nimport { MaterialNestedComponent } from '../MaterialNestedComponent';\r\nimport EditGridComponent from 'formiojs/components/editgrid/EditGrid.js';\r\nimport { FormioComponent } from '../../formio.component';\r\nimport Components from 'formiojs/components/Components';\r\nimport isString from 'lodash/isString';\r\n\r\nenum EditRowState {\r\n NEW = 'new',\r\n EDITING ='editing',\r\n SAVED = 'saved',\r\n REMOVED = 'removed',\r\n DRAFT = 'draft'\r\n};\r\n\r\n/* tslint:disable no-bitwise only-arrow-functions */\r\nconst hashCode = function(str) {\r\n let hash = 0;\r\n let i = 0;\r\n let chr;\r\n str = str.replace(/\\s/g, '');\r\n if (str.length === 0) {\r\n return hash;\r\n }\r\n for (i = 0; i < str.length; i++) {\r\n chr = str.charCodeAt(i);\r\n hash = ((hash << 5) - hash) + chr;\r\n hash |= 0; // Convert to 32bit integer\r\n }\r\n return hash;\r\n};\r\n/* tslint:enable no-bitwise only-arrow-functions */\r\n\r\n// Do nothing to createRowComponents, let mat-formio handle it.\r\n/* tslint:disable only-arrow-functions */\r\nEditGridComponent.prototype.createRowComponents = function() {\r\n return [];\r\n};\r\n\r\nconst checkRow = EditGridComponent.prototype.checkRow;\r\nEditGridComponent.prototype.checkRow = function(data, editRow, flags: any = {}) {\r\n if (flags.checkRow) {\r\n return checkRow.call(this, data, editRow, flags);\r\n } else {\r\n return true;\r\n }\r\n};\r\n/* tslint:enable only-arrow-functions */\r\n\r\nconst DEFAULT_HEADER_TEMPLATES = [\r\n hashCode((EditGridComponent as any).defaultHeaderTemplate),\r\n hashCode(`\r\n <div class=\"row\">\r\n {% (components || []).forEach(function(component) { %}\r\n <div class=\"col-sm-2\">{{ component.label }}</div>\r\n {% }) %}\r\n </div>`)\r\n];\r\n\r\nconst DEFAULT_ROW_TEMPLATES = [\r\n hashCode((EditGridComponent as any).defaultRowTemplate),\r\n hashCode(`<div class=\"row\">\r\n {% util.eachComponent(components, function(component) { %}\r\n <div class=\"col-sm-2\">\r\n {{ getView(component, row[component.key]) }}\r\n </div>\r\n {% }) %}\r\n {% if (!instance.options.readOnly) { %}\r\n <div class=\"col-sm-2\">\r\n <div class=\"btn-group pull-right\">\r\n <button class=\"btn btn-default btn-sm editRow\">Edit</button>\r\n <button class=\"btn btn-danger btn-sm removeRow\">Delete</button>\r\n </div>\r\n </div>\r\n {% } %}\r\n</div>`)\r\n];\r\n\r\n@Component({\r\n selector: 'mat-formio-editgrid',\r\n styleUrls: ['./editgrid.component.css'],\r\n templateUrl: './editgrid.component.html'\r\n})\r\nexport class MaterialEditGridComponent extends MaterialNestedComponent implements AfterViewInit {\r\n @ViewChild('header') headerElement: ElementRef;\r\n @ViewChild('footer') footerElement: ElementRef;\r\n @ViewChildren('rows') rowElements: QueryList<ElementRef>;\r\n @ViewChildren('forms') forms: QueryList<FormioComponent>;\r\n public header: string;\r\n public footer: string;\r\n public displayedColumns: string[];\r\n public columns: any = {};\r\n public colWidth = 0;\r\n public valid = true;\r\n public RowStates = EditRowState;\r\n\r\n getRowTemplate(content) {\r\n return `<mat-list style=\"display: flex;\">\r\n {% (components || []).forEach(function(component) { %}\r\n {% if (!component.hasOwnProperty('tableView') || component.tableView) { %}\r\n <mat-list-item style=\"width: {{ colWidth }}%; margin: 0 0.8rem\">${content}</mat-list-item>\r\n {% } %}\r\n {% }) %}\r\n </mat-list>`;\r\n}\r\n\r\n validate(index) {\r\n if (!this.forms) {\r\n return;\r\n }\r\n const forms = this.forms.toArray();\r\n if (!forms[index]) {\r\n return;\r\n }\r\n const formioComponent = forms[index];\r\n const {data} = formioComponent.formio.submission;\r\n const isInvalid = Object.keys(data).some(\r\n value => isString(data[value]) && data[value].length === 0\r\n );\r\n\r\n if (isInvalid) {\r\n this.valid = false;\r\n } else {\r\n this.valid = true;\r\n }\r\n }\r\n\r\n setInstance(instance) {\r\n if (\r\n instance.component.templates.header &&\r\n (DEFAULT_HEADER_TEMPLATES.indexOf(hashCode(instance.component.templates.header)) !== -1)\r\n ) {\r\n instance.component.templates.header = this.getRowTemplate('{{ component.label }}');\r\n }\r\n\r\n if (instance.component.templates.row &&\r\n (DEFAULT_ROW_TEMPLATES.indexOf(hashCode(instance.component.templates.row)) !== -1)\r\n ) {\r\n instance.component.templates.row = this.getRowTemplate('{{ getView(component, row[component.key]) }}');\r\n }\r\n\r\n this.displayedColumns = instance.component.components.map((comp) => {\r\n if (comp.hasOwnProperty('tableView') && !comp.tableView) {\r\n return false;\r\n }\r\n\r\n this.columns[comp.key] = comp;\r\n return comp.key;\r\n }).filter(name => !!name);\r\n const dataValue = instance.dataValue || [];\r\n this.colWidth = instance.component.components.length ? Math.floor(100 / instance.component.components.length) : 100;\r\n if (instance.component.templates && instance.component.templates.header) {\r\n this.header = instance.renderString(instance.component.templates.header, {\r\n components: instance.component.components,\r\n value: dataValue,\r\n colWidth: this.colWidth\r\n });\r\n }\r\n if (instance.component.templates && instance.component.templates.footer) {\r\n this.footer = instance.renderString(instance.component.templates.footer, {\r\n components: instance.component.components,\r\n value: dataValue,\r\n colWidth: this.colWidth\r\n });\r\n }\r\n setTimeout(() => {\r\n this.renderTemplate(this.headerElement, this.header);\r\n this.renderTemplate(this.footerElement, this.footer);\r\n }, 0);\r\n super.setInstance(instance);\r\n }\r\n\r\n addAnother() {\r\n const row = this.instance.addRow();\r\n }\r\n\r\n editRow(row, index) {\r\n const { state } = row;\r\n const { NEW, REMOVED } = this.RowStates;\r\n\r\n if (state === NEW || state === REMOVED) {\r\n return;\r\n }\r\n this.instance.editRow(index);\r\n const forms = this.forms.toArray();\r\n if (forms[index]) {\r\n forms[index].formio.submission = {data: JSON.parse(JSON.stringify(row.data))};\r\n }\r\n }\r\n\r\n /**\r\n * Updates the row template.\r\n *\r\n * @param row\r\n * @param index\r\n */\r\n updateRowTemplate(rowElement: ElementRef, index, comps) {\r\n const self = this;\r\n const editRow: any = {...this.instance.editRows[index]};\r\n if (editRow.state !== this.RowStates.NEW) {\r\n this.renderTemplate(rowElement, this.instance.renderString(this.instance.component.templates.row, {\r\n row: this.instance.dataValue[index] || {},\r\n data: this.instance.data,\r\n rowIndex: index,\r\n colWidth: this.colWidth,\r\n components: this.instance.component.components,\r\n getView: function getView(component, data) {\r\n if (!comps[component.type]) {\r\n comps[component.type] = Components.create(component, {}, {}, true);\r\n }\r\n return comps[component.type] ? comps[component.type].getView(data) : '';\r\n }\r\n }));\r\n }\r\n }\r\n\r\n /**\r\n * Saves a row.\r\n *\r\n * @param row - The edit grid row.\r\n * @param index - The index for this row.\r\n */\r\n saveRow(row, index) {\r\n const forms = this.forms.toArray();\r\n if (forms[index]) {\r\n const formioComponent = forms[index];\r\n row.data = JSON.parse(JSON.stringify(formioComponent.formio.submission.data));\r\n this.instance.saveRow(index);\r\n const rows = this.rowElements.toArray();\r\n if (rows && rows[index]) {\r\n this.updateRowTemplate(rows[index], index, {});\r\n }\r\n }\r\n }\r\n\r\n cancelRow(index) {\r\n this.instance.cancelRow(index);\r\n this.valid = true;\r\n }\r\n\r\n renderTemplate(element: ElementRef, template) {\r\n if (!element || !element.nativeElement) {\r\n return;\r\n }\r\n element.nativeElement.innerHTML = template;\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.rowElements.changes.subscribe((rows: QueryList<ElementRef>) => {\r\n const rowCache = {};\r\n rows.forEach((row: ElementRef, index) => this.updateRowTemplate(row, index, rowCache));\r\n });\r\n }\r\n}\r\nEditGridComponent.MaterialComponent = MaterialEditGridComponent;\r\nexport { EditGridComponent };\r\n","<!-- <mat-formio-form-field [instance]=\"instance\" [componentTemplate]=\"componentTemplate\" [labelTemplate]=\"labelTemplate\">\r\n</mat-formio-form-field>\r\n<ng-template #componentTemplate let-hasLabel>\r\n\r\n <span fxLayout=\"column\" fxLayoutGap=\"1em\" fxFill>\r\n <ng-container *ngIf=\"hasLabel\">\r\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\r\n </ng-container>\r\n <mat-accordion>\r\n <mat-expansion-panel *ngIf=\"header\" disabled=\"true\">\r\n <mat-expansion-panel-header>\r\n <span #header fxFill></span>\r\n </mat-expansion-panel-header>\r\n </mat-expansion-panel>\r\n\r\n <mat-expansion-panel *ngFor=\"let row of instance.editRows; index as i;\" [expanded]=\"instance.isOpen(row)\">\r\n <mat-expansion-panel-header (click)=\"editRow(row, i)\">\r\n <span *ngIf=\"row.state !== RowStates.NEW\" #rows fxFill></span>\r\n </mat-expansion-panel-header>\r\n\r\n <mat-formio [form]=\"instance.component\" #forms (change)=\"validate(i)\"></mat-formio>\r\n\r\n <span fxLayout=\"row\" fxLayoutGap=\"1em\">\r\n <button mat-raised-button color=\"primary\" [disabled]=\"!valid\" (click)=\"saveRow(row, i)\">Save</button>\r\n <button mat-raised-button color=\"secondary\" (click)=\"cancelRow(i)\">Cancel</button>\r\n <button mat-raised-button color=\"warn\" (click)=\"instance.removeRow(i)\" class=\"delete-button\">\r\n <mat-icon>delete</mat-icon>\r\n </button>\r\n </span>\r\n </mat-expansion-panel>\r\n\r\n <mat-expansion-panel *ngIf=\"footer\" disabled=\"true\">\r\n <mat-expansion-panel-header>\r\n <span #footer></span>\r\n </mat-expansion-panel-header>\r\n </mat-expansion-panel>\r\n </mat-accordion>\r\n\r\n <span fxFill=\"none\" *ngIf=\"instance.hasAddButton()\">\r\n <button mat-raised-button color=\"primary\" (click)=\"addAnother()\">\r\n <mat-icon>add</mat-icon> Add Another\r\n </button>\r\n </span>\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #labelTemplate>\r\n <mat-card-title>\r\n <span [instance]=\"instance\" matFormioLabel></span>\r\n </mat-card-title>\r\n</ng-template> -->\r\n","import { Component } from '@angular/core';\r\nimport { MaterialNestedComponent } from '../MaterialNestedComponent';\r\nimport TableComponent from 'formiojs/components/table/Table.js';\r\n\r\n@Component({\r\n selector: 'mat-formio-table',\r\n styleUrls: [ './table.component.css' ],\r\n template: `\r\n <table class=\"mat-table\" style=\"width: 100%;\" [ngClass]=\"{'is-bordered' : instance.component.bordered}\">\r\n <thead>\r\n <tr class=\"mat-header-row\">\r\n <th *ngFor=\"let header of instance.component.header\"\r\n class=\"mat-header-cell\"\r\n >\r\n {{ instance.t(header) }}\r\n </th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody>\r\n <tr *ngFor=\"let row of instance.table; let i = index\"\r\n role=\"row\"\r\n class=\"mat-row\"\r\n [ngClass]=\"{\r\n 'is-hover': instance.component.hover,\r\n 'is-striped': instance.component.striped && i % 2 === 0\r\n }\"\r\n >\r\n <td *ngFor=\"let col of row\"\r\n role=\"gridcell\"\r\n class=\"mat-cell\"\r\n [ngClass]=\"getTableColClasses()\"\r\n >\r\n <ng-template #components></ng-template>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n `\r\n})\r\nexport class MaterialTableComponent extends MaterialNestedComponent {\r\n\r\n setInstance(instance: any) {\r\n super.setInstance(instance);\r\n instance.viewContainer = (component) => {\r\n return this.viewContainers ?\r\n this.viewContainers[(component.tableRow * this.instance.component.numCols) + component.tableColumn] :\r\n null;\r\n };\r\n }\r\n\r\n getTableColClasses() {\r\n if (!this.instance) {\r\n return;\r\n }\r\n const {condensed, cellAlignment} = this.instance.component;\r\n return {\r\n 'is-condensed': condensed,\r\n ...(cellAlignment && {[cellAlignment]: true})\r\n }\r\n }\r\n}\r\nTableComponent.MaterialComponent = MaterialTableComponent;\r\nexport { TableComponent };\r\n","import { Component, ViewChild } from '@angular/core';\r\nimport { MatStepper } from '@angular/material/stepper';\r\nimport Wizard from 'formiojs/Wizard';\r\nimport Displays from 'formiojs/displays/Displays';\r\nimport { MaterialNestedComponent } from './MaterialNestedComponent';\r\n\r\n@Component({\r\n selector: 'mat-formio-wizard',\r\n styles: [\r\n ':host .navigation-button-row { margin-top: 8px; }',\r\n ':host .navigation-button-row button { margin-right: 8px; }'\r\n ],\r\n template: `\r\n <mat-horizontal-stepper [linear]=\"isLinear\" #stepper>\r\n <mat-step *ngFor=\"let page of instance.pages\" [label]=\"page.component.title\">\r\n <ng-template #components></ng-template>\r\n <div class=\"navigation-button-row\">\r\n <button *ngIf=\"instance.hasButton('cancel')\" mat-raised-button (click)=\"resetWizard()\">Cancel</button>\r\n <button *ngIf=\"instance.hasButton('previous')\" mat-raised-button color=\"primary\" (click)=\"prevPage()\">Previous</button>\r\n <button *ngIf=\"instance.hasButton('next')\" mat-raised-button color=\"primary\" (click)=\"nextPage()\">Next</button>\r\n <button *ngIf=\"instance.hasButton('submit')\" mat-raised-button color=\"primary\" (click)=\"submit()\">Submit</button>\r\n </div>\r\n </mat-step>\r\n </mat-horizontal-stepper>`\r\n})\r\nexport class MaterialWizardComponent extends MaterialNestedComponent {\r\n @ViewChild('stepper', {static: true}) stepper: MatStepper;\r\n public isLinear = true;\r\n private prevNumOfPages = 0;\r\n\r\n setInstance(instance: any) {\r\n this.isLinear = (\r\n instance.options &&\r\n instance.options.breadcrumbSettings &&\r\n instance.options.breadcrumbSettings.clickable\r\n ) ? false : true;\r\n\r\n this.updatePages(instance);\r\n instance.on('pagesChanged', () => this.updatePages());\r\n\r\n super.setInstance(instance);\r\n }\r\n\r\n updatePages(instance = this.instance) {\r\n if (this.prevNumOfPages !== instance.pages.length) {\r\n instance.pages.forEach((page, pageIndex) => {\r\n page.viewContainer = () => {\r\n return this.viewContainers ? this.viewContainers[pageIndex] : null;\r\n };\r\n });\r\n this.prevNumOfPages = instance.pages.length;\r\n }\r\n }\r\n\r\n resetWizard() {\r\n this.instance.cancel();\r\n this.stepper.reset();\r\n }\r\n\r\n nextPage() {\r\n this.instance.nextPage().then(() => this.stepper.next());\r\n }\r\n\r\n prevPage() {\r\n this.instance.prevPage().then(() => this.stepper.previous());\r\n }\r\n\r\n submit() {\r\n this.instance.submit();\r\n }\r\n\r\n renderComponents() {\r\n if (this.instance.renderComponents && this.instance.pages) {\r\n this.instance.renderComponents(this.instance.pages.reduce((comps, page) => {\r\n return comps.concat(page.components);\r\n }, []));\r\n }\r\n }\r\n}\r\nWizard.MaterialComponent = MaterialWizardComponent;\r\nDisplays.addDisplay('wizard', Wizard);\r\nexport { Wizard };\r\n","declare var require: any\r\nconst Components = require('formiojs/components/Components').default;\r\nimport Component from 'formiojs/components/_classes/component/Component.js';\r\n\r\nimport { TextFieldComponent } from './textfield/textfield.component';\r\nimport { PasswordComponent } from './password/password.component';\r\nimport { EmailComponent } from './email/email.component';\r\nimport { UrlComponent } from './url/url.component';\r\nimport { PhoneNumberComponent } from './phonenumber/phonenumber.component';\r\nimport { NumberComponent } from './number/number.component';\r\nimport { CurrencyComponent } from './currency/currency.component';\r\nimport { DayComponent } from './day/day.component';\r\nimport { HiddenComponent } from './hidden/hidden.component';\r\nimport { HtmlComponent } from './html/html.component';\r\nimport { TagsComponent } from './tags/tags.component';\r\nimport { ButtonComponent } from './button/button.component';\r\nimport { TextAreaComponent } from './textarea/textarea.component';\r\nimport { PanelComponent } from './panel/panel.component';\r\nimport { ColumnsComponent } from './columns/columns.component';\r\nimport { ContainerComponent } from './container/container.component';\r\nimport { TabsComponent } from './tabs/tabs.component';\r\nimport { DateTimeComponent } from './date/date.component';\r\nimport { CheckboxComponent } from './checkbox/checkbox.component';\r\nimport { FieldsetComponent } from './fieldset/fieldset.component';\r\nimport { ContentComponent } from './content/content.component';\r\nimport { SignatureComponent } from './signature/signature.component';\r\nimport { SurveyComponent } from './survey/survey.component';\r\nimport { SelectBoxesComponent } from './selectboxes/selectboxes.component';\r\nimport { RadioComponent } from './radio/radio.component';\r\nimport { SelectComponent } from './select/select.component';\r\nimport { WellComponent } from './well/well.component';\r\nimport { DataGridComponent } from './datagrid/datagrid.component';\r\nimport { EditGridComponent } from './editgrid/editgrid.component';\r\nimport { TableComponent } from './table/table.component';\r\nimport { FormioComponent } from './MaterialComponent';\r\nimport { Wizard } from './formio.wizard';\r\nimport { TimeComponent } from './time/time.component'\r\n\r\n// Set the components.\r\nconst components: any = {\r\n textfield: TextFieldComponent,\r\n password: PasswordComponent,\r\n url: UrlComponent,\r\n checkbox: CheckboxComponent,\r\n email: EmailComponent,\r\n phoneNumber: PhoneNumberComponent,\r\n number: NumberComponent,\r\n currency: CurrencyComponent,\r\n day: DayComponent,\r\n hidden: HiddenComponent,\r\n htmlelement: HtmlComponent,\r\n tags: TagsComponent,\r\n textarea: TextAreaComponent,\r\n button: ButtonComponent,\r\n datetime: DateTimeComponent,\r\n panel: PanelComponent,\r\n columns: ColumnsComponent,\r\n tabs: TabsComponent,\r\n table: TableComponent,\r\n well: WellComponent,\r\n fieldset: FieldsetComponent,\r\n content: ContentComponent,\r\n signature: SignatureComponent,\r\n survey: SurveyComponent,\r\n selectboxes: SelectBoxesComponent,\r\n radio: RadioComponent,\r\n select: SelectComponent,\r\n container: ContainerComponent,\r\n datagrid: DataGridComponent,\r\n editgrid: EditGridComponent,\r\n unknown: FormioComponent,\r\n time: TimeComponent,\r\n wizard: Wizard\r\n};\r\n\r\nexport function getComponents() {\r\n for (const type of Object.keys(components)) {\r\n const CompClass = components[type];\r\n CompClass.prototype.render = (function () {\r\n if (this.materialComponent) {\r\n return this.materialComponent.renderComponents();\r\n }\r\n\r\n const viewContainer = this.parent ? this.parent.viewContainer(this) : this.viewContainer(this);\r\n if (!viewContainer) {\r\n return;\r\n }\r\n const factory = this.options.viewResolver.resolveComponentFactory(CompClass.MaterialComponent);\r\n const componentRef = viewContainer.createComponent(factory);\r\n (componentRef.instance as any).setInstance(this);\r\n });\r\n\r\n const setValue = CompClass.prototype.setValue;\r\n CompClass.prototype.setValue = (function (...args) {\r\n if (this.materialComponent) {\r\n this.materialComponent.setValue(args[0]);\r\n }\r\n return setValue.call(this, ...args);\r\n });\r\n\r\n components[type] = CompClass;\r\n }\r\n\r\n return components;\r\n}\r\n\r\nexport function registerComponent(name: string, CompClass: any) {\r\n\r\n class DummyComponent extends Component {};\r\n const formIOComp = (DummyComponent as any);\r\n\r\n formIOComp.MaterialComponent = CompClass;\r\n formIOComp.prototype.render = (function () {\r\n if (this.materialComponent) {\r\n return this.materialComponent;\r\n }\r\n const viewContainer = this.parent ? this.parent.viewContainer(this) : this.viewContainer(this);\r\n if (!viewContainer) {\r\n return;\r\n }\r\n const factory = this.options.viewResolver.resolveComponentFactory(formIOComp.MaterialComponent);\r\n const componentRef = viewContainer.createComponent(factory);\r\n (componentRef.instance as any).setInstance(this);\r\n });\r\n\r\n const setValue = formIOComp.prototype.setValue;\r\n formIOComp.prototype.setValue = (function (...args) {\r\n if (this.materialComponent) {\r\n this.materialComponent.setValue(args[0]);\r\n }\r\n return setValue.call(this, ...args);\r\n });\r\n\r\n Components.addComponent(name, formIOComp);\r\n\r\n}\r\n","declare var require: any\r\nconst Components = require('formiojs/components/Components').default;\r\nimport './components/Webform';\r\nimport { getComponents, registerComponent } from './components';\r\nconst Formio = require('formiojs/Formio').default;\r\nconst Form = require('formiojs/Form').default;\r\nconst Utils = require('formiojs/utils').default;\r\n\r\nfunction initRenderer() {\r\n Components.setComponents(getComponents());\r\n Formio.Components = Components;\r\n Formio.Templates = {};\r\n}\r\n\r\nexport { Form, Utils, Components, Formio, initRenderer, registerComponent };\r\n","import { Component, ChangeDetectorRef, ViewContainerRef, ViewChild, ComponentFactoryResolver, NgZone, Input, Output } from '@angular/core';\r\nimport { FormioBaseComponent } from '@formio/angular';\r\nimport { Form } from './renderer';\r\nimport { get } from 'lodash';\r\n@Component({\r\n selector: 'mat-formio',\r\n styles: [\r\n `.alert-danger {\r\n color: #721c24;\r\n background-color: #f8d7da;\r\n border-color: #f5c6cb;\r\n }\r\n .alert-success {\r\n color: #155724;\r\n background-color: #d4edda;\r\n border-color: #c3e6cb;\r\n }\r\n .alert {\r\n position: relative;\r\n padding: .75rem 1.25rem;\r\n margin-bottom: 0.5rem;\r\n border: 1px solid transparent;\r\n border-radius: .25rem;\r\n }\r\n ::ng-deep mat-card {\r\n box-sizing: border-box;\r\n -moz-box-sizing: border-box;\r\n }\r\n `\r\n ],\r\n template: `\r\n <mat-spinner *ngIf=\"isLoading\"></mat-spinner>\r\n <div *ngIf=\"!this.options?.disableAlerts\">\r\n <div *ngFor=\"let alert of alerts.alerts\"\r\n class=\"alert alert-{{ alert.type }}\"\r\n role=\"alert\"\r\n >\r\n {{ alert.message }}\r\n </div>\r\n </div>\r\n <div style=\"display:flex; flex-direction:column; gap:1em;\">\r\n <ng-template #formio></ng-template>\r\n </div>\r\n `\r\n})\r\nexport class FormioComponent extends FormioBaseComponent {\r\n @Input() form: any;\r\n @ViewChild('formio', {static: true, read: ViewContainerRef}) formioViewContainer: ViewContainerRef;\r\n constructor(\r\n private resolver: ComponentFactoryResolver,\r\n private cd: ChangeDetectorRef,\r\n public ngZone: NgZone\r\n ) {\r\n super(ngZone, null as any);\r\n }\r\n\r\n getRendererOptions(): any {\r\n const rendererOptions = super.getRendererOptions();\r\n return {...rendererOptions, validateOnInit: get(rendererOptions, 'validateOnInit', true) }\r\n }\r\n\r\n createRenderer() {\r\n const options = this.getRendererOptions();\r\n const flags = {\r\n validateOnInit: options.validateOnInit\r\n };\r\n options.viewResolver = this.resolver;\r\n const form = new Form();\r\n form._form = this.form;\r\n form.options = options;\r\n form.options.events = form.events;\r\n form.instance = form.create(this.form.display);\r\n form.instance.viewContainer = () => this.formioViewContainer;\r\n if (this.submission && this.submission.data) {\r\n form.instance.data = this.submission.data;\r\n }\r\n this.ngZone.run(() => form.instance.setForm(this.form, flags)\r\n .then(() => form.readyResolve(form.instance))\r\n .catch(() => form.readyReject())\r\n );\r\n return form.instance;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS, MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatNativeDateModule } from '@angular/material/core';\r\nimport { NgxRenderMaterialFormsComponent } from './ngx-render-material-forms.component';\r\nimport {MatDialogModule} from '@angular/material/dialog';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { initRenderer } from './renderer';\r\nimport { FormioComponent } from './formio.component';\r\nimport { MaterialComponent } from './components/MaterialComponent';\r\nimport { MaterialNestedComponent } from './components/MaterialNestedComponent';\r\nimport { MaterialButtonComponent } from './components/button/button.component';\r\nimport { MaterialTextfieldComponent } from './components/textfield/textfield.component';\r\nimport { MaterialPasswordComponent } from './components/password/password.component';\r\nimport { MaterialUrlComponent } from './components/url/url.component';\r\nimport { MaterialEmailComponent } from './components/email/email.component';\r\nimport { MaterialPhoneNumberComponent } from './components/phonenumber/phonenumber.component';\r\nimport { MaterialNumberComponent } from './components/number/number.component';\r\nimport { MaterialHiddenComponent } from './components/hidden/hidden.component';\r\nimport { MaterialHtmlComponent } from './components/html/html.component';\r\nimport { MaterialTagsComponent } from './components/tags/tags.component';\r\nimport { MaterialCurrencyComponent } from './components/currency/currency.component';\r\nimport { MaterialDayComponent } from './components/day/day.component';\r\nimport { MaterialTextareaComponent } from './components/textarea/textarea.component';\r\nimport { MaterialColumnsComponent } from './components/columns/columns.component';\r\nimport { MaterialContainerComponent } from './components/container/container.component';\r\nimport { MaterialCheckboxComponent } from './components/checkbox/checkbox.component';\r\nimport { MaterialFieldsetComponent } from './components/fieldset/fieldset.component';\r\nimport { MaterialContentComponent } from './components/content/content.component';\r\nimport { MaterialSignatureComponent } from './components/signature/signature.component';\r\nimport { MaterialSurveyComponent } from './components/survey/survey.component';\r\nimport { MaterialSelectBoxesComponent } from './components/selectboxes/selectboxes.component';\r\nimport { MaterialRadioComponent } from './components/radio/radio.component';\r\nimport { MaterialSelectComponent } from './components/select/select.component';\r\nimport { MaterialPanelComponent } from './components/panel/panel.component';\r\nimport { MaterialTabsComponent } from './components/tabs/tabs.component';\r\nimport { MaterialTableComponent } from './components/table/table.component';\r\nimport { MaterialDateComponent } from './components/date/date.component';\r\nimport { MaterialDataGridComponent } from './components/datagrid/datagrid.component';\r\nimport { MaterialEditGridComponent } from './components/editgrid/editgrid.component';\r\nimport { MaterialWellComponent } from './components/well/well.component';\r\nimport { MaterialWizardComponent } from './components/formio.wizard';\r\nimport { MaterialTimeComponent } from './components/time/time.component';\r\nimport { MaterialCalendarComponent } from './components/calendar/calendar.component';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { FormioFormFieldComponent } from './components/formio-form-field/formio-form-field.component';\r\nimport { LabelComponent } from './components/label/label.component';\r\nimport { MaskDirective } from './directives/mask.directive';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { NgxMatSelectSearchModule } from 'ngx-mat-select-search';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { ConfirmationDialogComponent } from './components/confirmation-dialog/confirmation-dialog.component';\r\nimport { AddOnProductsComponent } from './components/add-on-products/add-on-products.component';\r\n\r\nexport {\r\n FormioComponent,\r\n MaterialButtonComponent,\r\n MaterialTextfieldComponent,\r\n MaterialPasswordComponent,\r\n MaterialUrlComponent,\r\n MaterialEmailComponent,\r\n MaterialPhoneNumberComponent,\r\n MaterialNumberComponent,\r\n MaterialCurrencyComponent,\r\n MaterialDayComponent,\r\n MaterialHiddenComponent,\r\n MaterialHtmlComponent,\r\n MaterialTagsComponent,\r\n MaterialTableComponent,\r\n MaterialTextareaComponent,\r\n MaterialColumnsComponent,\r\n MaterialContainerComponent,\r\n MaterialDataGridComponent,\r\n MaterialEditGridComponent,\r\n MaterialPanelComponent,\r\n MaterialCheckboxComponent,\r\n MaterialFieldsetComponent,\r\n MaterialContentComponent,\r\n MaterialSignatureComponent,\r\n MaterialSurveyComponent,\r\n MaterialSelectBoxesComponent,\r\n MaterialRadioComponent,\r\n MaterialSelectComponent,\r\n MaterialTabsComponent,\r\n MaterialDateComponent,\r\n MaterialWellComponent,\r\n MaterialComponent,\r\n MaterialNestedComponent,\r\n MaterialTimeComponent \r\n};\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n NgxRenderMaterialFormsComponent,\r\n FormioComponent,\r\n MaterialButtonComponent,\r\n MaterialTextfieldComponent,\r\n MaterialPasswordComponent,\r\n MaterialUrlComponent,\r\n MaterialEmailComponent,\r\n MaterialPhoneNumberComponent,\r\n MaterialNumberComponent,\r\n MaterialCurrencyComponent,\r\n MaterialDayComponent,\r\n MaterialHiddenComponent,\r\n MaterialHtmlComponent,\r\n MaterialTagsComponent,\r\n MaterialTextareaComponent,\r\n MaterialColumnsComponent,\r\n MaterialContainerComponent,\r\n MaterialDataGridComponent,\r\n MaterialEditGridComponent,\r\n MaterialPanelComponent,\r\n MaterialCheckboxComponent,\r\n MaterialFieldsetComponent,\r\n MaterialContentComponent,\r\n MaterialSignatureComponent,\r\n MaterialSurveyComponent,\r\n MaterialSelectBoxesComponent,\r\n MaterialRadioComponent,\r\n MaterialSelectComponent,\r\n MaterialTabsComponent,\r\n MaterialTableComponent,\r\n MaterialDateComponent,\r\n MaterialWellComponent,\r\n MaterialWizardComponent,\r\n MaterialComponent,\r\n MaterialNestedComponent,\r\n MaterialTimeComponent,\r\n MaterialCalendarComponent,\r\n FormioFormFieldComponent,\r\n LabelComponent,\r\n MaskDirective,\r\n ConfirmationDialogComponent,\r\n AddOnProductsComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatInputModule,\r\n MatButtonModule,\r\n MatFormFieldModule,\r\n MatCheckboxModule,\r\n MatRadioModule,\r\n MatSelectModule,\r\n MatListModule,\r\n MatChipsModule,\r\n MatExpansionModule,\r\n MatTabsModule,\r\n MatTableModule,\r\n MatNativeDateModule,\r\n MatDatepickerModule,\r\n MatProgressSpinnerModule,\r\n MatTooltipModule,\r\n MatIconModule,\r\n MatStepperModule,\r\n MatCardModule,\r\n DragDropModule,\r\n ScrollingModule,\r\n NgxMatSelectSearchModule,\r\n MatDialogModule,\r\n MatAutocompleteModule\r\n ],\r\n exports: [\r\n MatAutocompleteModule,\r\n NgxRenderMaterialFormsComponent,\r\n FormioComponent,\r\n MatInputModule,\r\n MatFormFieldModule,\r\n MatCheckboxModule,\r\n MatRadioModule,\r\n MatSelectModule,\r\n MatListModule,\r\n MatChipsModule,\r\n MatExpansionModule,\r\n MatButtonModule,\r\n MatCardModule,\r\n MatTabsModule,\r\n MatTableModule,\r\n MatNativeDateModule,\r\n MatDatepickerModule,\r\n MatProgressSpinnerModule,\r\n MatTooltipModule,\r\n MatIconModule,\r\n DragDropModule,\r\n MatStepperModule,\r\n ScrollingModule,\r\n NgxMatSelectSearchModule,\r\n MatDialogModule\r\n ],\r\n providers: [provideHttpClient(withInterceptorsFromDi()),\r\n {\r\n provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,\r\n useValue: { appearance: 'outline' }\r\n }]\r\n})\r\nexport class NgxRenderMaterialFormsModule { \r\n constructor() {\r\n initRenderer();\r\n }\r\n}\r\n\r\nexport * from './renderer';\r\n","/*\r\n * Public API Surface of ngx-render-material-forms\r\n */\r\n\r\nexport * from './lib/ngx-render-material-forms.service';\r\nexport * from './lib/ngx-render-material-forms.component';\r\nexport * from './lib/ngx-render-material-forms.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["FormioComponent","i1","i2","i3","i4","i3.LabelComponent","i5.FormioFormFieldComponent","i6.LabelComponent","i6.FormioFormFieldComponent","i7.LabelComponent","i5","i4.FormioFormFieldComponent","i5.LabelComponent","i4.MaterialTimeComponent","i6","i7.MaterialCalendarComponent","i8.FormioFormFieldComponent","i9.LabelComponent","i10.MaskDirective","i2.CommonService","i7","i8","i10.FormioFormFieldComponent","i11.LabelComponent","i3.CommonService","i9","i12","i9.FormioFormFieldComponent","i10.LabelComponent","Components","Component","get"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAKa,6BAA6B,CAAA;AAExC,IAAA,WAAA,GAAA,GAAiB;+GAFN,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,6BAA6B,cAF5B,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAHzC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCQY,+BAA+B,CAAA;AAE1C,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;+GALU,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,+BAA+B,EARhC,QAAA,EAAA,+BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;AAIT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAIU,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAV3C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,+BAA+B,EAC/B,QAAA,EAAA,CAAA;;;;AAIT,EAAA,CAAA,EAAA,CAAA;;;ACPH,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,YAAA;AACzB,IAAA,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;AACvB,CAAC,CAAC;AACF,OAAO,CAAC,SAAS,CAAC,KAAK,GAAG,YAAA;AACxB,IAAA,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC;IACvE,IAAI,aAAa,EAAE;QACjB,aAAa,CAAC,KAAK,EAAE,CAAC;KACvB;AACH,CAAC,CAAC;AACF,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,YAAA;IACzB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;QAC9C,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KACjC;AACH,CAAC;;ACdD,wBAAe,CAAC,MAAK;AACnB,IAAA,MAAM,YAAY,GAAGA,iBAAe,CAAC,SAAS,CAAC,YAAY,CAAC;AAC5D,IAAAA,iBAAe,CAAC,SAAS,CAAC,YAAY,GAAG,UAAS,GAAG,IAAI,EAAA;AACvD,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,YAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;SACvC;QACD,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;AAC1C,KAAC,CAAC;IAEF,MAAM,CAAC,cAAc,CAACA,iBAAe,CAAC,SAAS,EAAE,UAAU,EAAE;AAC3D,QAAA,GAAG,CAAC,QAAQ,EAAA;AACV,YAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;AAC1B,YAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,gBAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;aAC9C;SACF;AACF,KAAA,CAAC,CAAC;IAEH,MAAM,CAAC,cAAc,CAACA,iBAAe,CAAC,SAAS,EAAE,SAAS,EAAE;AAC1D,QAAA,GAAG,CAAC,OAAO,EAAA;AACT,YAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE;AAC7B,gBAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;gBACxB,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,IAAI,CAAC,MAAM,EAAE,CAAC;aACf;AACD,YAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,gBAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;aAC5C;SACF;AACF,KAAA,CAAC,CAAC;AACH,IAAA,OAAOA,iBAAe,CAAC;AACzB,CAAC,GAAG;;AC9BJ;AACM,MAAO,aAAc,SAAQ,WAAW,CAAA;IAG5C,OAAO,eAAe,CAAC,OAAsB,EAAA;AAC3C,QAAA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;AAC7B,YAAA,IAAI,OAAO,CAAC,QAAQ,EAAE;AACpB,gBAAA,OAAO,CAAC,QAAQ,CAAC,eAAe,GAAG,OAAO,CAAC;aAC5C;iBAAM;gBACL,OAAO,CAAC,IAAI,CAAC,CAAC;aACf;AACH,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,WAAA,CAAY,GAAG,IAAI,EAAA;AACjB,QAAA,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;KACzE;AAED,IAAA,WAAW,CAAC,QAAa,EAAA;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACzB,QAAA,MAAM,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB,CAAC;AACrD,QAAA,QAAQ,CAAC,iBAAiB,GAAG,CAAC,OAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,GAAG,KAAK,KAAI;YAChF,IAAI,cAAc,GAAG,OAAO,CAAC;AAC7B,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBAC1B,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;aAC7F;iBACI,IAAI,OAAO,EAAE;AAChB,gBAAA,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;aACpC;AAED,YAAA,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC7E,YAAA,IAAI,QAAQ,CAAC,eAAe,EAAE;AAC5B,gBAAA,QAAQ,CAAC,eAAe,CAAC,cAAc,GAAG,EAAC,MAAM,EAAE,IAAI,EAAC,GAAG,IAAI,CAAC,CAAC;aAClE;AACH,SAAC,CAAC;KACH;AACF;;MC7BY,iBAAiB,CAAA;IAI5B,WAAmB,CAAA,OAAmB,EAAS,GAAsB,EAAA;QAAlD,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;QAAS,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AAD5D,QAAA,IAAA,CAAA,OAAO,GAAkB,IAAI,aAAa,EAAE,CAAC;KACmB;AAEzE,IAAA,WAAW,CAAC,QAAa,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AACnC,QAAA,QAAQ,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;QACtD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE,EAAE;gBAC/B,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,IAAI,CAAC,cAAc,EAAE,CAAC;aACvB;YACD,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;SACjG;KACF;IAED,cAAc,GAAA;QACZ,MAAM,EAAC,GAAG,EAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;AACtC,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAE9D,QAAA,IAAI,eAAe,KAAK,IAAI,EAAE;YAC5B,OAAO;SACR;AAED,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAEjC,MAAM,gBAAgB,GAAG,SAAS,CAAC,cAAc,CAC/C,IAAI,CAAC,QAAQ,EACb,EAAC,CAAC,GAAG,GAAG,eAAe,EAAC,EACxB,EAAC,CAAC,GAAG,GAAG,eAAe,EAAC,CACzB,CAAC;AAEF,QAAA,IAAI,gBAAgB,CAAC,MAAM,EAAE;YAC3B,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;AACzD,YAAA,IAAI,CAAC,CAAC,eAAe,EAAE;AACrB,gBAAA,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;aAC9B;AACD,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;SAC1B;KACF;IAED,aAAa,GAAA;QACX,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE;YACnG,cAAc,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;SAC1F;KACF;AAED,IAAA,YAAY,CAAC,IAAI,EAAA;AACf,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;QAEhE,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,OAAO,IAAI,CAAC;SACb;AAED,QAAA,OAAO,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;KAC5B;AAED,IAAA,gBAAgB,MAAK;AAErB,IAAA,QAAQ,CAAC,YAAsB,EAAA;AAC7B,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAE5B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE;AACzC,YAAA,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;SAClC;AAED,QAAA,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,IAAI,KAAK,IAAI,CAAC,YAAY,EAAE;AACzE,YAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACjE,YAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACtD,YAAA,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;SACzB;AACD,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;KACpD;IAED,QAAQ,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;KAC3B;AAED,IAAA,QAAQ,CAAC,KAAK,EAAA;AACZ,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KAC9B;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;KAC9B;IAED,QAAQ,GAAA;AACN,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;KACjD;IAED,oBAAoB,GAAA;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,OAAO;SACR;AAED,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc;eACtC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC;KAClD;AAED,IAAA,WAAW,CAAC,QAAQ,EAAA;QAClB,IAAI,QAAQ,EAAE;AACZ,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;SACxB;aAAM;AACL,YAAA,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;SACvB;KACF;AAED,IAAA,UAAU,CAAC,OAAO,EAAA;QAChB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;YAC9C,IAAI,OAAO,EAAE;gBACX,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;gBACrD,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC;gBACxD,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;aACxD;iBAAM;gBACL,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBACxD,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;gBACvD,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;aACxD;SACF;KACF;IAED,eAAe,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,QAAQ,EAAE;;YAE/D,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE;AACvC,gBAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;aAC/E;SACF;AAED,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;;AAEd,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC;YACnF,IAAI,IAAI,EAAE;gBACR,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;aACtD;YACD,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;SAC5D;KACF;+GAlJU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,6MAFlB,6FAA6F,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAE5F,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,QAAQ,EAAE,6FAA6F;AACxG,iBAAA,CAAA;+GAEU,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACc,KAAK,EAAA,CAAA;sBAAxB,SAAS;uBAAC,OAAO,CAAA;gBACT,OAAO,EAAA,CAAA;sBAAf,KAAK;;AAkJRD,iBAAe,CAAC,iBAAiB,GAAG,iBAAiB;;AC/JrD,IAAY,cAOX,CAAA;AAPD,CAAA,UAAY,cAAc,EAAA;AACxB,IAAA,cAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,cAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,cAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,cAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,cAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,cAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACb,CAAC,EAPW,cAAc,KAAd,cAAc,GAOzB,EAAA,CAAA,CAAA;;MCCY,cAAc,CAAA;+GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,8FCR3B,+WAQA,EAAA,MAAA,EAAA,CAAA,yHAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDAa,cAAc,EAAA,UAAA,EAAA,CAAA;kBAN1B,SAAS;+BAEE,sBAAsB,EAAA,QAAA,EAAA,+WAAA,EAAA,MAAA,EAAA,CAAA,yHAAA,CAAA,EAAA,CAAA;8BAKvB,QAAQ,EAAA,CAAA;sBAAhB,KAAK;;;MEDK,wBAAwB,CAAA;AALrC,IAAA,WAAA,GAAA;QAOS,IAAc,CAAA,cAAA,GAAG,cAAc,CAAC;QAE9B,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;QACvB,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC;QACvB,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;AAgCpC,KAAA;IA9BC,IACI,QAAQ,CAAC,QAAQ,EAAA;AACnB,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,QAAQ,EAAE;AACZ,YAAA,IAAI,CAAC,wBAAwB,GAAG,EAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC;SACrE;KACF;AAED,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;AAKD,IAAA,QAAQ,CAAC,cAAyB,EAAA;AAChC,QAAA,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;QACpC,MAAM,UAAU,GAAG,CAAC,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,SAAS,CAAC;QAC3D,MAAM,2BAA2B,GAAG,CAAC,cAAc;YACf,CAAC,cAAc,CAAC,MAAM;YACtB,CAAC,SAAS,CAAC,aAAa,CAAC;QAE7D,IAAI,UAAU,IAAI,2BAA2B,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACvE,YAAA,OAAO,KAAK,CAAC;SACd;QAED,IAAI,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE;AACpD,YAAA,OAAO,IAAI,CAAC;SACb;KACF;+GArCU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,qRCRrC,+uEAkDA,EAAA,MAAA,EAAA,CAAA,qqBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,cAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD1Ca,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;+BACE,uBAAuB,EAAA,QAAA,EAAA,+uEAAA,EAAA,MAAA,EAAA,CAAA,qqBAAA,CAAA,EAAA,CAAA;8BAOxB,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBAGF,QAAQ,EAAA,CAAA;sBADX,KAAK;uBAAC,UAAU,CAAA;gBAYR,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;;;AExBD,MAAM,kBAAkB,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BjC,CAAC;AAMI,MAAO,0BAA2B,SAAQ,iBAAiB,CAAA;AAJjE,IAAA,WAAA,GAAA;;QAKS,IAAS,CAAA,SAAA,GAAG,MAAM,CAAC;AAsE3B,KAAA;IAnEC,kBAAkB,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE;AACrE,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;SACxB;KACF;IAED,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;AAC1D,YAAA,OAAO,EAAE,CAAC;SACX;QAED,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;AAEjE,QAAA,IAAI,aAAa,IAAI,aAAa,EAAE;AAClC,YAAA,OAAO,CAAG,EAAA,IAAI,CAAC,aAAa,EAAE,CAAW,QAAA,EAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,aAAa,CAAC;SACjF;aAAM,IAAI,aAAa,EAAE;AACxB,YAAA,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC;SACxC;aAAM;YACL,OAAO,CAAA,EAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAA,WAAA,CAAa,CAAC;SAClD;KACF;IAED,aAAa,GAAA;QACX,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC;QACnF,OAAO,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;KACrC;IAED,sBAAsB,GAAA;QACpB,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC;AAC9G,QAAA,OAAO,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,UAAU,GAAG,SAAS,CAAC;KAClE;IAED,OAAO,GAAA;AACL,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;AACvB,YAAA,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AACzD,YAAA,OAAO,IAAI,CAAC;SACb;aACI;AACH,YAAA,OAAO,KAAK,CAAC;SACd;KACF;IAED,eAAe,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE;YACvD,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAEzC,YAAA,IAAI,QAAQ,CAAC,MAAM,EAAE;AACnB,gBAAA,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE;;AAE1B,oBAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,aAAa,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,OAAO,EAAE;AACxE,wBAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;qBAC7B;yBAAM;AACL,wBAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;qBACpE;oBACD,IAAI,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,eAAe,EAAE;AACvC,wBAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE;4BACvE,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE;AACrC,gCAAA,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;6BACjC;yBACF;AACD,wBAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;qBAC/D;iBACF;aACF;SACF;KACF;+GAtEU,0BAA0B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAA1B,0BAA0B,EAAA,QAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,0qCAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAJtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,QAAQ,EAAE,kBAAkB;AAC7B,iBAAA,CAAA;;AAyED,kBAAkB,CAAC,iBAAiB,GAAG,0BAA0B;;AC1G3D,MAAO,yBAA0B,SAAQ,0BAA0B,CAAA;AAJzE,IAAA,WAAA,GAAA;;QAKS,IAAS,CAAA,SAAA,GAAG,UAAU,CAAC;AAC/B,KAAA;+GAFY,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAzB,yBAAyB,EAAA,QAAA,EAAA,qBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,0qCAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,QAAQ,EAAE,kBAAkB;AAC7B,iBAAA,CAAA;;AAID,iBAAiB,CAAC,iBAAiB,GAAG,yBAAyB;;ACHzD,MAAO,sBAAuB,SAAQ,0BAA0B,CAAA;AAJtE,IAAA,WAAA,GAAA;;QAKS,IAAS,CAAA,SAAA,GAAG,OAAO,CAAC;AAC5B,KAAA;+GAFY,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAtB,sBAAsB,EAAA,QAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,0qCAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,QAAQ,EAAE,kBAAkB;AAC7B,iBAAA,CAAA;;AAID,cAAc,CAAC,iBAAiB,GAAG,sBAAsB;;ACHnD,MAAO,oBAAqB,SAAQ,0BAA0B,CAAA;AAJpE,IAAA,WAAA,GAAA;;QAKS,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAC1B,KAAA;+GAFY,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAApB,oBAAoB,EAAA,QAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,0qCAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,QAAQ,EAAE,kBAAkB;AAC7B,iBAAA,CAAA;;AAID,YAAY,CAAC,iBAAiB,GAAG,oBAAoB;;ACH/C,MAAO,4BAA6B,SAAQ,0BAA0B,CAAA;AAJ5E,IAAA,WAAA,GAAA;;QAKS,IAAS,CAAA,SAAA,GAAG,MAAM,CAAC;AAC3B,KAAA;+GAFY,4BAA4B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAA5B,4BAA4B,EAAA,QAAA,EAAA,wBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,0qCAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAJxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,QAAQ,EAAE,kBAAkB;AAC7B,iBAAA,CAAA;;AAID,oBAAoB,CAAC,iBAAiB,GAAG,4BAA4B;;ACD/D,MAAO,uBAAwB,SAAQ,0BAA0B,CAAA;AAGrE,IAAA,WAAA,CAAmB,OAAmB,EAAS,GAAsB,EAAU,QAAmB,EAAA;AAChG,QAAA,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QADH,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;QAAS,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QAAU,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QAF3F,IAAS,CAAA,SAAA,GAAG,MAAM,CAAC;KAIzB;IAED,eAAe,GAAA;QACb,KAAK,CAAC,eAAe,EAAE,CAAC;AACxB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;AAExB,YAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,MAAM,EAAE,MAAK;AAC1D,gBAAA,IAAI,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACpD,gBAAA,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACpC,gBAAA,KAAK,GAAG,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AACzC,gBAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC/B,aAAC,CAAC,CAAC;SAEN;KACF;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AAC/B,QAAA,IAAI,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC1B,YAAA,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAChD,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;SACnF;AACD,QAAA,OAAO,KAAK,CAAC;KACd;AAED,IAAA,QAAQ,CAAC,KAAK,EAAA;AACZ,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;AAC1B,YAAA,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;SAC1D;aACI;AACH,YAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;SAC1B;AAED,QAAA,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KAC9B;IAED,QAAQ,GAAA;AACN,QAAA,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KACtB;+GA7CU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAvB,uBAAuB,EAAA,QAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,0qCAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,QAAQ,EAAE,kBAAkB;AAC7B,iBAAA,CAAA;;AAgDD,eAAe,CAAC,iBAAiB,GAAG,uBAAuB;;AC9CrD,MAAO,yBAA0B,SAAQ,uBAAuB,CAAA;AAJtE,IAAA,WAAA,GAAA;;QAKS,IAAS,CAAA,SAAA,GAAG,MAAM,CAAC;AAY3B,KAAA;IAVC,QAAQ,GAAA;AACN,QAAA,IAAI,QAAQ,CAAC;QACZ,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5D,IAAG,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAC;AAC3B,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;SACvD;aAAM;YACL,QAAQ,GAAG,EAAE,CAAC;AACd,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;SACvD;KACF;+GAZU,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAzB,yBAAyB,EAAA,QAAA,EAAA,qBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,0qCAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,QAAQ,EAAE,kBAAkB;AAC7B,iBAAA,CAAA;;AAeD,iBAAiB,CAAC,iBAAiB,GAAG,yBAAyB;;ACnB/D,YAAY,CAAC,SAAS,CAAC,aAAa,GAAG,UAAS,IAAI,EAAA;IAClD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;AACtD,CAAC,CAAC;AA8CI,MAAO,oBAAqB,SAAQ,iBAAiB,CAAA;AA5C3D,IAAA,WAAA,GAAA;;AA6CS,QAAA,IAAA,CAAA,UAAU,GAAgB,IAAI,WAAW,EAAE,CAAC;AAC5C,QAAA,IAAA,CAAA,YAAY,GAAgB,IAAI,WAAW,EAAE,CAAC;AAC9C,QAAA,IAAA,CAAA,WAAW,GAAgB,IAAI,WAAW,EAAE,CAAC;AAyCrD,KAAA;AAxCC,IAAA,WAAW,CAAC,QAAQ,EAAA;;QAEjB,IAAI,CAAC,UAAkB,CAAC,YAAY,GAAG,MAAO,GAAC,CAAC;QAChD,IAAI,CAAC,UAAkB,CAAC,eAAe,GAAG,MAAO,GAAC,CAAC;QACnD,IAAI,CAAC,YAAoB,CAAC,YAAY,GAAG,MAAO,GAAC,CAAC;QAClD,IAAI,CAAC,YAAoB,CAAC,eAAe,GAAG,MAAO,GAAC,CAAC;QACrD,IAAI,CAAC,WAAmB,CAAC,YAAY,GAAG,MAAO,GAAC,CAAC;QACjD,IAAI,CAAC,WAAmB,CAAC,eAAe,GAAG,MAAO,GAAC,CAAC;QACrD,QAAQ,CAAC,IAAI,GAAG;YACd,GAAG,EAAE,IAAI,CAAC,UAAU;YACpB,KAAK,EAAE,IAAI,CAAC,YAAY;YACxB,IAAI,EAAE,IAAI,CAAC,WAAW;SACvB,CAAC;AACF,QAAA,OAAO,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;KACpC;AAED,IAAA,WAAW,CAAC,QAAQ,EAAA;QAClB,IAAI,QAAQ,EAAE;AACZ,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;AAC1B,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;AAC5B,YAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;SAC5B;aAAM;AACL,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;AACzB,YAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;AAC3B,YAAA,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;SAC3B;KACF;IAED,QAAQ,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;KAChC;AAED,IAAA,QAAQ,CAAC,KAAK,EAAA;QACZ,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClE,YAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACpE,YAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SACvE;QACD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;KACpC;+GA3CU,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EA1CrB,QAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAEU,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBA5ChC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCT,EAAA,CAAA;AACF,iBAAA,CAAA;;AA8CD,YAAY,CAAC,iBAAiB,GAAG,oBAAoB;;AC3F/C,MAAO,uBAAwB,SAAQ,iBAAiB,CAAA;+GAAjD,uBAAuB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,gFAFxB,CAA+D,6DAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAR,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAE9D,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,QAAQ,EAAE,CAA+D,6DAAA,CAAA;AAC1E,iBAAA,CAAA;;AAED,eAAe,CAAC,iBAAiB,GAAG,uBAAuB;;ACArD,MAAO,qBAAsB,SAAQ,iBAAiB,CAAA;IAG1D,eAAe,GAAA;QACb,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,eAAe,EAAE;AAC3C,YAAA,IAAI,CAAC,QAAQ,CAAC,cAAc,GAAG,MAAK;AAClC,gBAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;AACxE,aAAC,CAAC;SACH;KACF;+GAVU,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,oLAFtB,CAAuB,qBAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAEtB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,QAAQ,EAAE,CAAuB,qBAAA,CAAA;AAClC,iBAAA,CAAA;8BAEwB,QAAQ,EAAA,CAAA;sBAA9B,SAAS;uBAAC,UAAU,CAAA;;AAWvB,aAAa,CAAC,iBAAiB,GAAG,qBAAqB;;ACiBjD,MAAO,qBAAsB,SAAQ,iBAAiB,CAAA;AA/B5D,IAAA,WAAA,GAAA;;AAgCW,QAAA,IAAA,CAAA,kBAAkB,GAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACvD,IAAI,CAAA,IAAA,GAAa,EAAE,CAAC;AAiCrB,KAAA;AAhCC,IAAA,GAAG,CAAC,KAAwB,EAAA;AAC1B,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;AAC1B,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE;YACxB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;SAC9B;QACD,IAAI,KAAK,EAAE;AACT,YAAA,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;SAClB;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;AAED,IAAA,MAAM,CAAC,KAAK,EAAA;AACV,QAAA,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAC1C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;SAC5B;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;IAED,QAAQ,GAAA;AACN,QAAA,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;KAC7G;AAED,IAAA,QAAQ,CAAC,KAAK,EAAA;AACZ,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SAC9C;QACD,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAClC,YAAA,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;SACjB;AACD,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;KACnB;+GAlCU,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EA7BtB,QAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,UAAA,EAAA,OAAA,EAAA,mBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,uBAAA,EAAA,+BAAA,EAAA,aAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,wEAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAEU,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBA/BjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BT,EAAA,CAAA;AACF,iBAAA,CAAA;;AAqCA,aAAqB,CAAC,iBAAiB,GAAG,qBAAqB;;ACzEhE,IAAY,aAOX,CAAA;AAPD,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,aAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,aAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,aAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,aAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,aAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,CAAC,EAPW,aAAa,KAAb,aAAa,GAOxB,EAAA,CAAA,CAAA,CAAA;AAED,IAAY,oBAKX,CAAA;AALD,CAAA,UAAY,oBAAoB,EAAA;AAC9B,IAAA,oBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,oBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,oBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACnB,CAAC,EALW,oBAAoB,KAApB,oBAAoB,GAK/B,EAAA,CAAA,CAAA;;ACHK,MAAO,uBAAwB,SAAQ,iBAAiB,CAAA;AAO5D,IAAA,WAAA,CAAmB,OAAmB,EAAS,GAAsB,EAAU,MAAiB,EAAA;AAC9F,QAAA,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QADH,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;QAAS,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QAAU,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QANzF,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;QAChB,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC;QACb,IAAK,CAAA,KAAA,GAAG,KAAK,CAAC;QACd,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QACjB,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;QACvB,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;KAGxB;AACD,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,OAAO,oBAAoB,CAAC,IAAI,CAAC;SAClC;AACD,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC;AACtC,QAAA,OAAO,KAAK,IAAI,oBAAoB,CAAC,OAAO,CAAC;KAC9C;AAED,IAAA,IAAI,kBAAkB,GAAA;QACpB,QAAQ,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK;YACnC,KAAK,aAAa,CAAC,OAAO;gBACxB,OAAO,oBAAoB,CAAC,OAAO,CAAC;YAEtC,KAAK,aAAa,CAAC,OAAO;gBACxB,OAAO,oBAAoB,CAAC,MAAM,CAAC;YAErC,KAAK,aAAa,CAAC,MAAM;gBACvB,OAAO,oBAAoB,CAAC,IAAI,CAAC;YAEnC,KAAK,aAAa,CAAC,SAAS;gBAC1B,OAAO,oBAAoB,CAAC,KAAK,CAAC;AAEpC,YAAA;AACE,gBAAA,OAAO,EAAE,CAAC;SACb;KACF;AAED,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,GAAG,yBAAyB,GAAG,EAAE,CAAC;QAC/E,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,CAAA,mBAAA,EAAsB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC;QACtG,SAAS,IAAI,CAAC,IAAI,CAAC,kBAAkB,GAAG,CAAqB,kBAAA,EAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC;QAClG,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC;QACxD,IAAI,UAAU,EAAE;AACd,YAAA,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,IAAI,EAAE,CAAC;AAC/C,YAAA,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,IAAI,EAAE,CAAC;YACjD,IAAI,CAAC,WAAW,GAAG,CAAU,OAAA,EAAA,UAAU,CAAI,CAAA,EAAA,WAAW,CAAE,CAAA,CAAC,WAAW,EAAE,CAAC;SACxE;AACD,QAAA,OAAO,SAAS,CAAC;KAClB;AAED,IAAA,OAAO,CAAC,KAAK,EAAA;AACX,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACpB,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KAC9B;IAED,QAAQ,GAAA;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;KACrB;AAED,IAAA,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAA;AAC3B,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AACvB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACjB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACpB;AAED,IAAA,cAAc,CAAC,IAAY,EAAA;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,QAAA,OAAO,OAAO,CAAC;KAChB;AAED,IAAA,WAAW,CAAC,IAAY,EAAA;AACtB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;KACpD;AAED,IAAA,WAAW,CAAC,QAAQ,EAAA;QAClB,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC3C,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC;AACxC,QAAA,QAAQ,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AACrE,QAAA,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AACnE,QAAA,QAAQ,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AACpE,QAAA,QAAQ,CAAC,EAAE,CAAC,eAAe,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AACtE,QAAA,QAAQ,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QACpE,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,KAAI;YAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,KAAK,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC7G,YAAA,IAAI,KAAK,CAAC,OAAO,EAAE;AACjB,gBAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,gBAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;aACpB;AACH,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,MAAM,CAAC;KACf;+GA1FU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAR,IAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,gFCXpC,6uBAgBA,EAAA,MAAA,EAAA,CAAA,4kBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDLa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,6uBAAA,EAAA,MAAA,EAAA,CAAA,4kBAAA,CAAA,EAAA,CAAA;;AAgG/B,eAAe,CAAC,iBAAiB,GAAG,uBAAuB;;AEtErD,MAAO,yBAA0B,SAAQ,iBAAiB,CAAA;IAG9D,eAAe,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,QAAQ,EAAE;;YAE/D,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE;AACvC,gBAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;aAC/E;SACF;;QAED,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;KAC1D;IAED,eAAe,GAAA;;AAEb,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE;YACvE,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE;AACrC,gBAAA,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;aACjC;SACF;;AAGD,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;KAC/D;IAGD,QAAQ,GAAA;QACN,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;KAC5D;+GA7BU,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,EAzB1B,QAAA,EAAA,qBAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;AAuBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,2CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAEU,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBA5BrC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EAErB,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;AAuBT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,2CAAA,CAAA,EAAA,CAAA;8BAGsB,QAAQ,EAAA,CAAA;sBAA9B,SAAS;uBAAC,UAAU,CAAA;;AA8BvB,iBAAiB,CAAC,iBAAiB,GAAG,yBAAyB;;ACzDzD,MAAO,uBAAwB,SAAQ,iBAAiB,CAAA;AAG5D,IAAA,WAAW,CAAC,QAAa,EAAA;AACvB,QAAA,QAAQ,CAAC,aAAa,GAAG,MAAK;AAC5B,YAAA,OAAO,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAC7D,SAAC,CAAC;AACF,QAAA,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;KAC7B;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE;AAClC,YAAA,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC;SAClC;KACF;IAED,MAAM,GAAA;QACJ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAChD,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC1B;IAED,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,EAAE,CAAC;KACf;+GAzBU,uBAAuB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAvB,uBAAuB,EAAA,QAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAEC,gBAAgB,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAJzC,yCAAyC,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAExC,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,QAAQ,EAAE,yCAAyC;AACpD,iBAAA,CAAA;8BAGuD,UAAU,EAAA,CAAA;sBAA/D,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,YAAY,EAAE,EAAC,IAAI,EAAE,gBAAgB,EAAC,CAAA;;;ACoBhD,MAAO,sBAAuB,SAAQ,uBAAuB,CAAA;+GAAtD,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EAxBvB,QAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;AAmBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,4BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,iBAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,kDAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAKU,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBA1BlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAClB,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;AAmBT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,4BAAA,CAAA,EAAA,CAAA;;AAMH,cAAc,CAAC,iBAAiB,GAAG,sBAAsB;;ACEnD,MAAO,wBAAyB,SAAQ,uBAAuB,CAAA;AA5BrE,IAAA,WAAA,GAAA;;QA6BS,IAAO,CAAA,OAAA,GAAG,GAAG,CAAC;QACd,IAAU,CAAA,UAAA,GAAG,CAAC,CAAC;AAgBvB,KAAA;AAfC,IAAA,WAAW,CAAC,QAAa,EAAA;QACvB,IAAI,CAAC,UAAU,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;AACjF,QAAA,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC5B,QAAA,QAAQ,CAAC,aAAa,GAAG,CAAC,SAAS,KAAI;AACrC,YAAA,OAAO,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;AAC5E,SAAC,CAAC;KACH;IAED,SAAS,CAAC,MAAM,EAAE,KAAK,EAAA;AACrB,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;YACzD,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,GAAG,GAAG,CAAC;SAC7E;aAAM;YACL,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,GAAG,GAAG,CAAC;SAC9E;KACF;+GAjBU,wBAAwB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,EA1BzB,QAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;AAWT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,qJAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAeU,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBA5BpC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EACpB,QAAA,EAAA,CAAA;;;;;;;;;;;AAWT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,qJAAA,CAAA,EAAA,CAAA;;AAkCH,gBAAgB,CAAC,iBAAiB,GAAG,wBAAwB;;ACxCvD,MAAO,0BAA2B,SAAQ,uBAAuB,CAAA;+GAA1D,0BAA0B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,EAL3B,QAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;AAGD,UAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAEE,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAPtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,QAAQ,EAAE,CAAA;;;AAGD,UAAA,CAAA;AACV,iBAAA,CAAA;;AAED,kBAAkB,CAAC,iBAAiB,GAAG,0BAA0B;;ACI3D,MAAO,qBAAsB,SAAQ,uBAAuB,CAAA;AAChE,IAAA,WAAW,CAAC,QAAa,EAAA;AACvB,QAAA,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC5B,QAAA,QAAQ,CAAC,aAAa,GAAG,CAAC,SAAS,KAAI;AACrC,YAAA,OAAO,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AACzE,SAAC,CAAC;KACH;+GANU,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EAVtB,QAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;AAQT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,OAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAEU,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAZjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;AAQT,EAAA,CAAA;AACF,iBAAA,CAAA;;AASD,aAAa,CAAC,iBAAiB,GAAG,qBAAqB;;ACuCjD,MAAO,qBAAsB,SAAQ,iBAAiB,CAAA;AA1D5D,IAAA,WAAA,GAAA;;QA2DS,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QACjB,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC;AACd,QAAA,IAAA,CAAA,WAAW,GAAgB,IAAI,WAAW,EAAE,CAAC;AAC7C,QAAA,IAAA,CAAA,aAAa,GAAgB,IAAI,WAAW,EAAE,CAAC;AAC/C,QAAA,IAAA,CAAA,aAAa,GAAgB,IAAI,WAAW,EAAE,CAAC;AAC5C,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAO,CAAC;QACzC,IAAQ,CAAA,QAAA,GAAG,CAAC,CAAC;QACb,IAAU,CAAA,UAAA,GAAG,CAAC,CAAC;QACf,IAAU,CAAA,UAAA,GAAG,CAAC,CAAC;QACf,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;AA6DpC,KAAA;AA3DC,IAAA,WAAW,CAAC,QAAQ,EAAA;QAClB,IAAI,QAAQ,EAAE;AACZ,YAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;AAC3B,YAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;AAC7B,YAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;SAC9B;KACF;AAED,IAAA,IAAI,UAAU,GAAA;QACZ,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC;QAChD,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AACnC,QAAA,OAAO,MAAM,CAAC;KACf;AAED,IAAA,WAAW,CAAC,QAAQ,EAAA;AAClB,QAAA,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;;QAE5B,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;IAED,QAAQ,GAAA;AACN,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,IAAI,CAAC;QACjD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC;QAC/C,MAAM,QAAQ,GAAG,CAAA,EAAG,KAAK,IAAI,IAAI,CAAI,CAAA,EAAA,OAAO,CAAG,EAAA,OAAO,GAAG,GAAG,GAAG,OAAO,GAAG,EAAE,CAAA,CAAA,EAAI,IAAI,CAAC,MAAM,CAAA,CAAE,CAAC;QAC7F,IAAI,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAEjD,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;SAClC;AAED,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC7B,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,KAAK,CAAC,QAAQ,EAAE,CAAC;SAClB;QACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACvC;AAED,IAAA,QAAQ,CAAC,KAAK,EAAA;QACZ,IAAI,CAAC,KAAK,EAAE;YACV,OAAO;SACR;AACD,QAAA,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACtB,QAAA,MAAM,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC1D,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACrC,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;;QAEzC,IAAI,CAAC,MAAM,GAAG,MAAM,MAAM,IAAI,IAAI,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;KAChE;AAED,IAAA,qBAAqB,CAAC,UAAU,EAAA;QAC9B,MAAM,MAAM,GAAG,OAAO,CAAC;AACvB,QAAA,OAAO,MAAM,CAAC,UAAU,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAClE;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;QACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;+GAtEU,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EAxDtB,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqDT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gHAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gHAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAQ,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGU,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBA1DjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqDT,EAAA,CAAA;AACF,iBAAA,CAAA;8BAQW,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACE,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;;AA+DR,aAAa,CAAC,iBAAiB,GAAG,qBAAqB;;AC1FjD,MAAO,yBAA0B,SAAQ,iBAAiB,CAAA;AA5ChE,IAAA,WAAA,GAAA;;AA0DY,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAO,CAAC;AAC1C,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAO,CAAC;AAoCrD,KAAA;AAlCC,IAAA,WAAW,CAAC,QAAa,EAAA;AACvB,QAAA,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;KAC7B;AAED,IAAA,cAAc,CAAC,KAAK,EAAA;AAClB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;KAC3B;IAED,cAAc,CAAC,KAAK,EAAE,OAAO,EAAA;AAC3B,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;KAC7B;AAED,IAAA,MAAM,CAAC,KAAK,EAAA;AACV,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAC9C;AAED,IAAA,MAAM,CAAC,KAAK,EAAA;AACV,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC;QAChC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAC9C;IAED,cAAc,GAAA;QACZ,OAAO;AACL,YAAA,QAAQ,EAAE,UAAU;AACpB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,SAAS,EAAE,MAAM;AACjB,YAAA,GAAG,EAAE,MAAM;AACX,YAAA,IAAI,EAAE,MAAM;SACb,CAAA;KACF;+GAlDU,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,EA/B1B,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,MAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,MAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,gKAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAV,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,SAAA,EAAA,SAAA,EAAA,YAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,yBAAA,EAAA,uBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAW,qBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,mBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGU,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBA5CrC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EAYrB,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,gKAAA,CAAA,EAAA,CAAA;8BAQkB,IAAI,EAAA,CAAA;sBAAtB,SAAS;uBAAC,MAAM,CAAA;gBAER,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACI,eAAe,EAAA,CAAA;sBAAxB,MAAM;gBACG,eAAe,EAAA,CAAA;sBAAxB,MAAM;;;MC9CI,aAAa,CAAA;AAIxB,IAAA,WAAA,CAAoB,UAAwC,EAAA;QAAxC,IAAU,CAAA,UAAA,GAAV,UAAU,CAA8B;KAAI;AAGhE,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;IAED,IACI,KAAK,CAAC,KAAoB,EAAA;AAC5B,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;KACzB;AAEO,IAAA,WAAW,CAAC,KAAoB,EAAA;AACtC,QAAA,IAAI,KAAK,KAAK,IAAI,EAAE;AAClB,YAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SAC1D;aACI;YACH,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC;SAC1C;KACF;AAED,IAAA,SAAS,CAAC,KAAU,EAAA;KACnB;AAED,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC/B;AAED,IAAA,gBAAgB,CAAC,EAAwB,EAAA;AACvC,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;IAED,iBAAiB,GAAA;KAChB;+GAvCU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,aAAa,EATb,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,QAAA,CAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA,EAAC,OAAO,EAAE,wBAAwB,EAAE,WAAW,EAAE,aAAa,EAAC;AAC/D,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,aAAa,CAAC;AAC5C,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAEU,aAAa,EAAA,UAAA,EAAA,CAAA;kBAXzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,SAAS,EAAE;AACT,wBAAA,EAAC,OAAO,EAAE,wBAAwB,EAAE,WAAW,eAAe,EAAC;AAC/D,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,mBAAmB,CAAC;AAC5C,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA;AACF,iBAAA,CAAA;+EAEmB,MAAM,EAAA,CAAA;sBAAvB,KAAK;uBAAC,SAAS,CAAA;gBAWZ,KAAK,EAAA,CAAA;sBADR,KAAK;uBAAC,OAAO,CAAA;;;AC4CV,MAAO,qBAAsB,SAAQ,iBAAiB,CAAA;AAjE5D,IAAA,WAAA,GAAA;;AAkES,QAAA,IAAA,CAAA,WAAW,GAAgB,IAAI,WAAW,EAAE,CAAC;AAC7C,QAAA,IAAA,CAAA,cAAc,GAAgB,IAAI,WAAW,EAAE,CAAC;QAGhD,IAAY,CAAA,YAAA,GAAQ,OAAO,CAAC;QAC5B,IAAgB,CAAA,gBAAA,GAAY,IAAI,CAAC;AAoIjC,QAAA,IAAA,CAAA,UAAU,GAAG,CAAC,KAAK,KAAI;YAC5B,IAAI,CAAC,KAAK,EAAE;AACV,gBAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;aACjC;AACD,YAAA,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAClE,SAAC,CAAA;AA8CD,QAAA,IAAA,CAAA,UAAU,GAAG,CAAC,CAAc,KAAa;YACvC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACpG,YAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,IAAI,OAAO;gBAC5D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC;AAC5F,SAAC,CAAA;AA4BF,KAAA;AAnNC,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,KAAK,KAAK,CAAC;KACtE;AAED,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,KAAK,IAAI,CAAC;KACrE;IAED,sBAAsB,CAAC,KAAK,GAAG,IAAI,EAAA;AACjC,QAAA,MAAM,MAAM,GAAG,CAAa,UAAA,EAAA,IAAI,CAAC,UAAU,GAAG,QAAQ,GAAG,EAAE,EAAE,CAAC;AAC9D,QAAA,KAAK,GAAG,KAAK,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAEzC,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;SAChE;aACI;AACH,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;SAClC;KACF;AAED,IAAA,YAAY,CAAC,KAAK,EAAA;AAChB,QAAA,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;QACrD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzC,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;AAED,IAAA,YAAY,CAAC,IAAI,EAAA;AACf,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YAC9D,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;KACF;IAED,aAAa,GAAA;QACX,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;YACtD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,EAAE,CAAC;AAE/E,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;IAED,gBAAgB,GAAA;QACd,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,cAAc,GAAG,KAAK,CAAC;QAE3B,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;AAC/C,YAAA,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;YACvC,cAAc,GAAG,IAAI,CAAC;AAEtB,YAAA,IAAI,IAAI,CAAC,YAAY,KAAK,YAAY,EAAE;AACtC,gBAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;aAClC;SACF;QAED,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,EAAE;AACtC,YAAA,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACtD,YAAA,OAAO,GAAG,cAAc;AACtB,kBAAE,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;AAC5B,qBAAA,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC7B,qBAAA,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACjC,qBAAA,GAAG,EAAE;AACR,kBAAE,IAAI,CAAC,YAAY,CAAC;SACvB;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,EAAE;AACvC,YAAA,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC;SAC7B;QAED,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACvC,YAAA,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACtD,YAAA,OAAO,GAAG,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC;AAC7B,iBAAA,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC7B,iBAAA,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;iBACjC,OAAO,CAAC,CAAC,CAAC;AACV,iBAAA,GAAG,EAAE,CAAC;SACV;AAED,QAAA,OAAO,OAAO,CAAC;KAChB;IAED,WAAW,GAAA;QACT,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;AAED,IAAA,WAAW,CAAC,QAAa,EAAA;AACvB,QAAA,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC5B,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACnE,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;AAEjF,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,KAAK,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;AACpF,YAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE;AACjE,gBAAA,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC;;AAG1E,gBAAA,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC9D,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;gBACrD,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;aACtD;SACF;KACF;AAED,IAAA,cAAc,CAAC,KAAK,EAAA;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE;AACtB,YAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AACxB,gBAAA,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC7B,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;AAClC,oBAAA,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;AACnE,wBAAA,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;qBACxD;AAED,oBAAA,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;AACnE,wBAAA,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;AAC7B,wBAAA,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA;qBAC1E;iBACF;aACF;AACD,YAAA,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC;YAC3C,KAAK,CAAC,eAAe,EAAE,CAAC;SACzB;KACF;IAED,UAAU,GAAA;QACR,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;AACvD,QAAA,OAAO,QAAQ,IAAI,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAA;KACnE;AASD,IAAA,QAAQ,CAAC,KAAK,EAAA;AACZ,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;AACrD,YAAA,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;AACnC,YAAA,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SACvB;KACF;IAED,QAAQ,GAAA;AACN,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC;AAC3G,QAAA,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;KACpC;IAED,YAAY,GAAA;QACV,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,KAAK,CAAC,YAAY,EAAE,CAAC;KACtB;AAED,IAAA,WAAW,CAAC,KAAK,EAAA;QACf,IAAI,OAAO,GAAG,IAAI,CAAC;AACnB,QAAA,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC;AAC1E,QAAA,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAE9D,IAAI,OAAO,EAAE;YACX,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;SACpD;AACD,QAAA,IAAI,OAAO,IAAI,OAAO,EAAE;YACtB,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;SACrD;AACD,QAAA,OAAO,OAAO,CAAC;KAChB;AAED,IAAA,eAAe,CAAC,CAAO,EAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE;AACjB,YAAA,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;AACvB,YAAA,OAAO,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;SAC/B;AACD,QAAA,OAAO,IAAI,CAAC;KACb;IAED,YAAY,CAAC,KAAoB,EAAE,CAAO,EAAA;QACxC,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;AAClF,QAAA,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;KACrE;AAQD,IAAA,YAAY,CAAC,KAAK,EAAA;AAChB,QAAA,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,4EAA4E,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,mBAAmB,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,iDAAiD,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,yBAAyB,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,mCAAmC,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,uBAAuB,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,oBAAoB,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,qBAAqB,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,wCAAwC,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,oDAAoD,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,wCAAwC,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,yGAAyG,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,oDAAoD,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,4GAA4G,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,gHAAgH,CAAC,EAAE;AACp2C,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;SAC5B;aAAM;AACL,YAAA,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,+EAA+E,IAAI,IAAI,CAAC,cAAc,EAAE;AAC1I,gBAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;aAC5B;iBAAM;AACL,gBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;aAC7B;SACF;;;;KAKF;IAED,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAA;QAChC,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AACnC,YAAA,OAAO,GAAG,UAAU,CAAC,CAAA,EAAG,OAAO,CAAA,MAAA,CAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;SAC/D;QAED,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AACnC,YAAA,OAAO,GAAG,UAAU,CAAC,GAAG,OAAO,CAAA,MAAA,CAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;SAClF;AACD,QAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;KAC7B;+GA5NU,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EA5DtB,QAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gBAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyDT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,wDAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAV,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAO,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,SAAA,EAAA,SAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGU,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAjEjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,IAAI,EAAE;AACJ,wBAAA,kBAAkB,EAAE,sBAAsB;AAC3C,qBAAA;AACD,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyDT,EAAA,CAAA;AACF,iBAAA,CAAA;8BAUwB,QAAQ,EAAA,CAAA;sBAA9B,SAAS;uBAAC,UAAU,CAAA;;AAsNvB,iBAAiB,CAAC,iBAAiB,GAAG,qBAAqB;;AC1QrD,MAAO,yBAA0B,SAAQ,iBAAiB,CAAA;IAC9D,QAAQ,GAAA;QACN,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;KAC9D;+GAHU,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,EAlB1B,QAAA,EAAA,qBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;AAaT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,sFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAf,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,eAAA,EAAA,MAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,cAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAKU,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBApBrC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EACrB,QAAA,EAAA,CAAA;;;;;;;;;;;;;AAaT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,sFAAA,CAAA,EAAA,CAAA;;AAUH,iBAAiB,CAAC,iBAAiB,GAAG,yBAAyB;;ACRzD,MAAO,yBAA0B,SAAQ,uBAAuB,CAAA;+GAAzD,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,EAlB1B,QAAA,EAAA,qBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;AAeT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAP,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGU,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBApBrC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EACrB,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;AAeT,EAAA,CAAA,EAAA,CAAA;;AAIH,iBAAiB,CAAC,iBAAiB,GAAG,yBAAyB;;ACjBzD,MAAO,wBAAyB,SAAQ,iBAAiB,CAAA;+GAAlD,wBAAwB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,iFAFzB,CAA4C,0CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAE3C,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAJpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,QAAQ,EAAE,CAA4C,0CAAA,CAAA;AACvD,iBAAA,CAAA;;AAED,gBAAgB,CAAC,iBAAiB,GAAG,wBAAwB;;AC+BvD,MAAO,0BAA2B,SAAQ,iBAAiB,CAAA;IAG/D,gBAAgB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;SAC3D;KACF;IAED,eAAe,GAAA;QACb,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;+GAXU,0BAA0B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,EAlC3B,QAAA,EAAA,sBAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAEU,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBApCtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCT,EAAA,CAAA;AACF,iBAAA,CAAA;8BAEyB,gBAAgB,EAAA,CAAA;sBAAvC,SAAS;uBAAC,WAAW,CAAA;;AAYxB,kBAAkB,CAAC,iBAAiB,GAAG,0BAA0B;;ACM3D,MAAO,uBAAwB,SAAQ,iBAAiB,CAAA;AArD9D,IAAA,WAAA,GAAA;;QAsDS,IAAQ,CAAA,QAAA,GAAQ,EAAE,CAAC;AA4C3B,KAAA;AA3CC,IAAA,cAAc,CAAC,QAAQ,EAAA;QACrB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YAC5B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,WAAW,EAAE,CAAC;AAC5C,YAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE;gBAChC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;aACnC;SACF;AACD,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;KAChC;AAED,IAAA,WAAW,CAAC,QAAQ,EAAA;QAClB,MAAM,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AAC/C,QAAA,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;YACpC,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;gBAC1C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;aACnC;SACF;KACF;IAED,QAAQ,GAAA;QACN,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;YACpC,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;AAC1C,gBAAA,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC;aAC3D;SACF;AACD,QAAA,OAAO,MAAM,CAAC;KACf;AAED,IAAA,QAAQ,CAAC,KAAK,EAAA;AACZ,QAAA,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE;AAC5B,YAAA,IAAI,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;gBAClC,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;gBAC9C,IAAI,OAAO,EAAE;oBACX,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAC;iBAC5C;aACF;SACF;KACF;AAED,IAAA,aAAa,CAAC,QAAQ,EAAA;QACpB,OAAO,CAAA,EAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAA,CAAA,EAAI,QAAQ,CAAA,CAAE,CAAC;KAC1C;+GA5CU,uBAAuB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,EAnDtB,QAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiDT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,eAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAEQ,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBArDnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiDT,IAAA,CAAA;AACJ,iBAAA,CAAA;;AA+CD,eAAe,CAAC,iBAAiB,GAAG,uBAAuB;;ACtErD,MAAO,sBAAuB,SAAQ,iBAAiB,CAAA;IAC3D,SAAS,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;KAC1D;AAED,IAAA,cAAc,CAAC,MAAM,EAAA;QACnB,OAAO,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;KACjD;IAED,UAAU,CAAC,KAAK,EAAE,MAAM,EAAA;AACtB,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;YAC/B,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;KACF;IAED,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE;AAC9B,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA,CAAC,CAAC;KACJ;+GApBU,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EA5BvB,QAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,eAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAEU,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBA9BlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BT,EAAA,CAAA;AACF,iBAAA,CAAA;;AAuBD,cAAc,CAAC,iBAAiB,GAAG,sBAAsB;;AC1BnD,MAAO,4BAA6B,SAAQ,sBAAsB,CAAA;AA3BxE,IAAA,WAAA,GAAA;;QA4BS,IAAK,CAAA,KAAA,GAAQ,EAAE,CAAC;QAChB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AA8BzB,KAAA;AA5BC,IAAA,WAAW,CAAC,QAAQ,EAAA;QAClB,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;YAC3C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;AACnC,SAAC,CAAC,CAAC;AACH,QAAA,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;KAC7B;IAED,QAAQ,GAAA;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;KACnB;AAED,IAAA,QAAQ,CAAC,KAAK,EAAA;QACZ,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AAC5D,QAAA,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE;AAClC,YAAA,IAAI,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;gBACxC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;aAC1C;SACF;KACF;AAED,IAAA,WAAW,CAAC,QAAQ,EAAA;AAClB,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;KAC5B;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;QAC7D,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;KAC/C;+GA/BU,4BAA4B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,EAzB7B,QAAA,EAAA,wBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;AAuBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,eAAA,EAAA,MAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAEU,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBA3BxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;AAuBT,EAAA,CAAA;AACF,iBAAA,CAAA;;AAkCD,oBAAoB,CAAC,iBAAiB,GAAG,4BAA4B;;MClDxD,aAAa,CAAA;AAsExB,IAAA,WAAA,CAAmB,IAAgB,EAAA;QAAhB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;AAhE3B,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,eAAe,CAAQ,EAAE,CAAC,CAAC;AAC9D,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE,CAAC;QAClD,IAAO,CAAA,OAAA,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;QACtD,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;QAC5C,IAAI,CAAA,IAAA,GAAQ,EAAE,CAAC;QACf,IAAK,CAAA,KAAA,GAAQ,EAAE,CAAC;;QAER,IAAM,CAAA,MAAA,GAAG,OAAO,CAAC;QACjB,IAAO,CAAA,OAAA,GAAG,OAAO,CAAC;QAClB,IAAO,CAAA,OAAA,GAAG,OAAO,CAAC;QAClB,IAAO,CAAA,OAAA,GAAG,OAAO,CAAC;;QAGlB,IAAO,CAAA,OAAA,GAAG,QAAQ,CAAC;QACnB,IAAQ,CAAA,QAAA,GAAG,QAAQ,CAAC;QACpB,IAAQ,CAAA,QAAA,GAAG,QAAQ,CAAC;QACpB,IAAQ,CAAA,QAAA,GAAG,QAAQ,CAAC;;QAGpB,IAAQ,CAAA,QAAA,GAAG,OAAO,CAAC;QACnB,IAAS,CAAA,SAAA,GAAG,OAAO,CAAC;QACpB,IAAS,CAAA,SAAA,GAAG,OAAO,CAAC;QACpB,IAAS,CAAA,SAAA,GAAG,OAAO,CAAC;;QAGpB,IAAI,CAAA,IAAA,GAAG,OAAO,CAAC;QACf,IAAK,CAAA,KAAA,GAAG,OAAO,CAAC;QAChB,IAAK,CAAA,KAAA,GAAG,OAAO,CAAC;QAChB,IAAK,CAAA,KAAA,GAAG,OAAO,CAAC;;QAGhB,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;QACf,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;QAChB,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;QAChB,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;AAEhB,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,CAAC;AACZ,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC;AACf,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC;AACf,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC;AACrB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC;AACjB,QAAA,IAAA,CAAA,SAAS,GAAG,OAAO,CAAC;AACpB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC;AACb,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC;AAChB,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC;AAChB,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC;AACtB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC;AAClB,QAAA,IAAA,CAAA,UAAU,GAAG,OAAO,CAAC;AAErB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC;AACb,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC;AAChB,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC;AAChB,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC;AACtB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC;AAClB,QAAA,IAAA,CAAA,UAAU,GAAG,OAAO,CAAC;AAErB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC;AACb,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC;AAChB,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC;AAChB,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC;AACtB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC;AAClB,QAAA,IAAA,CAAA,UAAU,GAAG,OAAO,CAAC;AAI3B,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;AACnE,QAAA,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;AAC3D,QAAA,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;AAE5D,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC;KAC3E;IAED,aAAa,GAAA;AACX,QAAA,MAAM,cAAc,GAAG;AACrB,YAAA,cAAc,EAAE,wBAAwB;AACxC,YAAA,8BAA8B,EAAE,kCAAkC;AAClE,YAAA,0BAA0B,EAAE,gCAAgC;AAC5D,YAAA,sBAAsB,EAAE,iCAAiC;AACzD,YAAA,8BAA8B,EAAE,kCAAkC;AAClE,YAAA,0BAA0B,EAAE,8BAA8B;SAC3D,CAAC;;AAGF,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC1C,OAAO,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC;KAC/C;AAED,IAAA,QAAQ,CAAC,GAAG,EAAA;QACT,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE;AACtC,YAAA,IAAI,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3D,YAAA,IAAI,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,QAAQ,EAAE,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3I,YAAA,IAAI,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACzD,YAAA,IAAI,QAAQ,GAAG;AACb,gBAAA,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE;AAC3B,gBAAA,KAAK,EAAE,YAAY;aACpB,CAAC;YACF,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AACtC,YAAA,IAAI,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC9C,OAAO,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;SAC/C;KACF;AAED,IAAA,WAAW,CAAC,IAAS,EAAE,IAAS,EAAE,KAAU,EAAA;AAC1C,QAAA,OAAO,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAC/C;AACE,YAAA,SAAS,EAAE,GAAG;AACd,YAAA,EAAE,EAAE,KAAK;AACT,YAAA,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG;AACvB,YAAA,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK;AAC5B,SAAA,CAAC,CAAC;KACN;;IAGD,iBAAiB,CAAC,MAAM,EAAE,WAAgB,EAAA;AACxC,QAAA,IAAI,WAAW,EAAE,MAAM,EAAE;YACvB,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;YACzD,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE;gBACtC,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;AAC9D,gBAAA,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;AACxC,gBAAA,IAAI,MAAM,GAAG,CAAA,EAAG,UAAU,CAAO,KAAA,CAAA,GAAG,MAAM,CAAC;AAC3C,gBAAA,MAAM,IAAI,GAAG,GAAG,WAAW,CAAC;gBAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,MAAM,CAAC,CAAC;aACtD;SACF;KACF;;AAGD,IAAA,eAAe,CAAC,WAAW,EAAA;AACzB,QAAA,IAAI,WAAW,CAAC,MAAM,EAAE;YACtB,IAAI,GAAG,GAAG,EAAE,CAAC;AACb,YAAA,WAAW,CAAC,OAAO,CAAC,UAAU,IAAI,EAAA;gBAChC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;AAC7B,aAAC,CAAC,CAAC;AACH,YAAA,OAAO,GAAG,CAAC;SACZ;KACF;IAED,YAAY,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAiB,GAAA,EAAE,EAAE,UAAsB,GAAA,IAAI,EAAE,WAAuB,GAAA,KAAK,EAAE,UAAe,EAAE,UAAe,EAAE,YAAiB,EAAE,WAAgB,EAAA;AACrL,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC;AAC1E,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;AACxC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AACjE,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QACnE,IAAI,MAAM,GAAG,CAAA,EAAG,UAAU,CAAA,oDAAA,EAAuD,QAAQ,CAAe,YAAA,EAAA,UAAU,CAAa,UAAA,EAAA,QAAQ,CAAW,QAAA,EAAA,MAAM,eAAe,UAAU,CAAA,oBAAA,EAAuB,WAAW,CAAA,UAAA,EAAa,UAAU,CAAA,UAAA,EAAa,UAAU,CAAA,YAAA,EAAe,YAAY,CAAA,WAAA,EAAc,WAAW,CAAA,CAAE,CAAC;QACxT,IAAI,SAAS,EAAE;AACb,YAAA,MAAM,IAAI,CAAA,WAAA,EAAc,SAAS,CAAA,CAAE,CAAC;SACrC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,MAAM,CAAC,CAAC;KACtD;AAED,IAAA,eAAe,CAAC,QAAgB,EAAA;AAC9B,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC;AAC1E,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AACjE,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;AACxC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,CAAA,EAAG,UAAU,CAAA,uDAAA,EAA0D,QAAQ,CAAA,cAAA,EAAiB,QAAQ,CAAA,CAAE,CAAC,CAAA;KACzJ;;AAGD,IAAA,oBAAoB,CAAC,WAAW,EAAA;AAC9B,QAAA,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;aACzC,GAAG,CAAC,GAAG,IAAG;AACT,YAAA,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;AACxD,gBAAA,OAAO,kBAAkB,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,kBAAkB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;aAC7E;iBAAM;AACL,gBAAA,IAAI,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;AACxC,oBAAA,OAAO,kBAAkB,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,kBAAkB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;iBAC7E;aACF;AACH,SAAC,CAAC;aACD,IAAI,CAAC,GAAG,CAAC,CAAC;AACb,QAAA,OAAO,WAAW,CAAC;KACpB;IAED,mBAAmB,GAAA;AACjB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC;AAC1E,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AACjE,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;AACxC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,CAAG,EAAA,UAAU,CAAuD,oDAAA,EAAA,QAAQ,CAAE,CAAA,CAAC,CAAC;KAC9H;IAED,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC;AAC1E,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;AACxC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AACjE,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,CAAG,EAAA,UAAU,CAAsD,mDAAA,EAAA,QAAQ,CAAE,CAAA,CAAC,CAAC;KAC7H;AAED,IAAA,eAAe,CAAC,UAAe,EAAA;AAC7B,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC;AAC1E,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;AACxC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AACjE,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,CAAA,EAAG,UAAU,CAAA,qDAAA,EAAwD,UAAU,CAAA,UAAA,EAAa,QAAQ,CAAA,CAAE,CAAC,CAAC;KACtJ;IAED,iBAAiB,CAAC,UAAe,EAAE,UAAe,EAAA;AAChD,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC;AAC1E,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;AACxC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AACjE,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,CAAG,EAAA,UAAU,CAA0D,uDAAA,EAAA,UAAU,eAAe,UAAU,CAAA,UAAA,EAAa,QAAQ,CAAA,CAAE,CAAC,CAAC;KACjL;AAED,IAAA,gBAAgB,CAAC,UAAe,EAAE,UAAe,EAAE,YAAiB,EAAA;AAClE,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC;AAC1E,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;AACxC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AACjE,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,GAAG,UAAU,CAAA,sDAAA,EAAyD,UAAU,CAAA,YAAA,EAAe,UAAU,CAAiB,cAAA,EAAA,YAAY,aAAa,QAAQ,CAAA,CAAE,CAAC,CAAC;KAC7M;;IAGD,aAAa,CAAC,IAAI,EAAE,GAAG,EAAA;QACrB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9B,YAAA,OAAO,IAAI,CAAC;SACb;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QACzE,OAAO,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;KACjC;;AAGD,IAAA,WAAW,CAAC,GAAG,EAAA;QACb,IAAI,GAAG,EAAE;AACP,YAAA,OAAO,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC/B;KACF;;AAGD,IAAA,gBAAgB,CAAC,KAAY,EAAA;AAC3B,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACvC;IAED,gBAAgB,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,CAAC;KAC7C;AAED,IAAA,eAAe,CAAC,IAAa,EAAA;AAC3B,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KACxB;IAED,eAAe,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;KAChC;;IAGD,oBAAoB,CAAC,oBAAoB,EAAE,aAAa,EAAA;QACtD,OAAO,oBAAoB,IAAI,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,GAAG,IACvE,GAAG,CAAC,iBAAiB,EAAE,KAAK,aAAa,CAAC,WAAW,EAAE;YACvD,oBAAoB,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CACnD,CAAC;KACH;IAED,YAAY,GAAA;AACV,QAAA,MAAM,YAAY,GAA8B;YAC9C,0BAA0B,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS;YACjH,8BAA8B,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU;YAC3H,8BAA8B,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU;YAC3H,sBAAsB,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU;YACnH,cAAc,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS;YACrG,0BAA0B,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU;SACxH,CAAC;AACF,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC1C,OAAO,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;KAC3C;IAED,YAAY,GAAA;AACV,QAAA,MAAM,YAAY,GAA8B;AAC9C,YAAA,0BAA0B,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM;AAChG,YAAA,8BAA8B,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO;AACzG,YAAA,8BAA8B,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO;AACzG,YAAA,sBAAsB,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO;AACjG,YAAA,cAAc,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM;AACpF,YAAA,0BAA0B,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO;SAEtG,CAAC;AACF,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC1C,OAAO,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;KAC3C;+GAvRU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAN,IAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFZ,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACwEK,MAAO,uBAAwB,SAAQ,iBAAiB,CAAA;AA8B5D,IAAA,WAAA,CAAmB,OAAmB,EAAS,GAAsB,EAAS,IAAgB,EAAS,aAA4B,EAAA;AACjI,QAAA,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QADH,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;QAAS,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QAAS,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAAS,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;AAzB5H,QAAA,IAAA,CAAA,gBAAgB,GAAgB,IAAI,WAAW,EAAE,CAAC;AAClD,QAAA,IAAA,CAAA,sBAAsB,GAAgB,IAAI,WAAW,EAAE,CAAC;AAErD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,OAAO,EAAE,CAAC;;QAGrC,IAAU,CAAA,UAAA,GAAG,CAAC,CAAC;QACf,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAC;QACd,IAAU,CAAA,UAAA,GAAG,CAAC,CAAC;QACf,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;QACjB,IAAmB,CAAA,mBAAA,GAAY,KAAK,CAAC;QAC9B,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QACzB,IAAW,CAAA,WAAA,GAAU,EAAE,CAAC;QACxB,IAAa,CAAA,aAAA,GAAQ,EAAE,CAAC;QACxB,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;;QAER,IAAmB,CAAA,mBAAA,GAAuB,IAAI,CAAC;QACvD,IAAW,CAAA,WAAA,GAAW,CAAC,CAAA;QACvB,IAAkB,CAAA,kBAAA,GAAQ,EAAE,CAAC;QAC7B,IAAmB,CAAA,mBAAA,GAAQ,EAAE,CAAC;QAC9B,IAAU,CAAA,UAAA,GAAQ,EAAE,CAAA;QACpB,IAAmB,CAAA,mBAAA,GAAQ,EAAE,CAAC;QAC9B,IAAa,CAAA,aAAA,GAAY,KAAK,CAAC;QACvB,IAAU,CAAA,UAAA,GAAW,CAAC,CAAC;KAI9B;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;QACtB,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,iBAAiB,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK,EAAE,EAAE;YAChG,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;KACF;IAED,aAAa,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,iBAAiB,EAAE;YACnE,IAAI,CAAC,UAAU,EAAE,CAAC;AAClB,YAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;SAEtB;KACF;AAED,IAAA,wBAAwB,CAAC,UAAqB,EAAA;AAC5C,QAAA,IAAI,UAAU,IAAI,UAAU,EAAE,KAAK,EAAE;;YAEnC,IAAI,CAAC,mBAAmB,GAAG,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC;AAC1D,YAAA,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SAC/E;KACF;AAED,IAAA,cAAc,CAAC,GAAG,EAAA;QAChB,OAAO,gBAAgB,GAAG,GAAG,CAAC;KAC/B;AAED,IAAA,QAAQ,CAAC,KAAK,EAAA;AACZ,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,iBAAiB,EAAE;AACnE,YAAA,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC;AACnC,YAAA,IAAI,CAAC,aAAa;AAAE,gBAAA,OAAO;YAC3B,MAAM,WAAW,GAAG,aAAa,CAAC,YAAY,GAAG,aAAa,CAAC,YAAY,CAAC;AAC5E,YAAA,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,WAAW,IAAI,CAAC;AAAE,gBAAA,OAAO;AACnD,YAAA,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE;AACxB,gBAAA,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;gBAC1E,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;AACtD,gBAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;AAChC,gBAAA,IAAI,CAAC,WAAW,GAAG,eAAe,EAAE,UAAU,CAAC;aAChD;AACD,YAAA,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,SAAS,GAAG,WAAW,GAAG,GAAG,CAAC,GAAG,EAAE,EAAE;AAC7F,gBAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;gBACjC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;gBACxC,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE;oBACrC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACtC,oBAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,oBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;iBAChE;qBAAM;AACL,oBAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;AAChC,oBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;iBACxB;aACF;SACF;KACF;;IAGD,aAAa,CAAC,IAAI,EAAE,GAAG,EAAA;QACrB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9B,OAAO,IAAI,CAAC;SACb;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QACzE,OAAO,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;KACjC;AAGD,IAAA,QAAQ,CAAC,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAA;AACxC,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC3E,MAAM,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;QAChF,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QAChE,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,qCAAqC,CAAC,CAAC;QAC7F,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;AAC9D,QAAA,IAAI,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;AAClE,QAAA,IAAI,OAAO,CAAC;AACZ,QAAA,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,WAAW,EAAE;AACvE,YAAA,IAAI,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC;YACjD,OAAO,GAAG,IAAI,WAAW,CAAC;AACxB,gBAAA,cAAc,EAAE,kBAAkB;gBAClC,eAAe,EAAE,SAAS,GAAG,WAAW;AACzC,aAAA,CAAC,CAAC;SACJ;aAAM;AACL,YAAA,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;SAC5D;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;QACxD,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;QAC5D,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACzD,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC/D,MAAM,oBAAoB,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QACzE,IAAI,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACvD,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;;AAE3D,QAAA,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,EAAE,EAAE;YAClE,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SAC9C;;QAGD,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QACpE,IAAI,CAAC,aAAa,EAAE;YAClB,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SACpD;AAED,QAAA,MAAM,cAAc,GAAG;AACrB,YAAA,cAAc,EAAE,wBAAwB;AACxC,YAAA,8BAA8B,EAAE,kCAAkC;AAClE,YAAA,0BAA0B,EAAE,gCAAgC;AAC5D,YAAA,sBAAsB,EAAE,iCAAiC;AACzD,YAAA,8BAA8B,EAAE,kCAAkC;AAClE,YAAA,0BAA0B,EAAE,8BAA8B;SAC3D,CAAC;;AAEF,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC1C,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC;AAO1D,QAAA,IAAI,GAAG,GAAG,CAAA,EAAG,UAAU,CAAA,kDAAA,EAAqD,UAAU,CAAe,YAAA,EAAA,YAAY,CAAa,UAAA,EAAA,UAAU,WAAW,aAAa,CAAA,YAAA,EAAe,QAAQ,CAAuB,oBAAA,EAAA,aAAa,EAAE,CAAC;AAC9N,QAAA,IAAI,WAAW,IAAI,SAAS,EAAE;AAC5B,YAAA,GAAG,IAAI,CAAA,WAAA,EAAc,WAAW,CAAA,CAAE,CAAC;SACpC;;QAED,IAAI,oBAAoB,KAAK,IAAI,IAAI,oBAAoB,KAAK,SAAS,IAAI,IAAI,CAAC,0CAA0C,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;AACxJ,YAAA,GAAG,IAAI,CAAA,qCAAA,EAAwC,oBAAoB,CAAA,CAAE,CAAC;SACvE;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,IAAG;YAC3E,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,GAAG,EAAE;AACrC,gBAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,iBAAiB,EAAE;oBACnE,IAAI,CAAC,UAAU,GAAG,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC;AAC7C,oBAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;AACtC,oBAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,MAAM,CAAC;oBACzC,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/B,wBAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAG;AACd,4BAAA,OAAO,IAAI,CAAA;AACb,yBAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;qBAC1C;yBAAM;AACL,wBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;qBACzB;;oBAED,IAAI,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAClE,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;AACvD,oBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,oBAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;oBAChC,UAAU,CAAC,MAAK;wBACd,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,aAAa,CAAC;wBAClD,IAAI,GAAG,EAAE;4BACP,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY,CAAA;AACvD,4BAAA,MAAM,cAAc,GAAG,WAAW,GAAG,CAAC,GAAG,EAAE,CAAC;AAC5C,4BAAA,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;yBACzD;6BAAM;AACL,4BAAA,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;yBACpD;qBAEF,EAAE,GAAG,CAAC,CAAC;iBACT;aAEF;AACH,SAAC,CAAC,CAAC;KACJ;;AAGD,IAAA,qBAAqB,CAAC,IAAoE,EAAA;;AAExF,QAAA,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YAClD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK;gBACvB,KAAK,EAAE,IAAI,CAAC,IAAI;gBAChB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;AAChB,aAAA,CAAC,CAAC,CAAC;SACL;aAAM;;AAEL,YAAA,OAAO,EAAE,CAAC;SACX;KACF;IAID,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,OAAO;SACR;AACD,QAAA,IAAI,MAAM,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC;AAC/C,QAAA,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;AAC9B,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,KAAI;AACzD,YAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9H,YAAA,IAAI,CAAC,qBAAqB,GAAG,QAAQ,CAAC,MAAM,CAAC;AAC7C,YAAA,OAAO,QAAQ,CAAC;AAClB,SAAC,CAAC,CAAC;KACJ;IAGD,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzB,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;AAC3B,QAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC5B,YAAA,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SAClF;KACF;;AAID,IAAA,WAAW,CAAC,QAAa,EAAA;AACvB,QAAA,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC5B,QAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;KAC/B;IAED,UAAU,GAAA;AACR,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,iBAAiB,EAAE;AACnE,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACpB,YAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AACnB,YAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACtB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,YAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACtB,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AACxB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;SACjE;KACF;AAED,IAAA,oBAAoB,CAAC,KAAU,EAAA;AAC7B,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC,CAAC;QACnF,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AACxD,QAAA,IAAI,WAAW,CAAC;QAChB,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,IAAG;AAC3F,YAAA,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE;AACnC,gBAAA,MAAM,WAAW,GAAG,KAAK,EAAE,SAAS,EAAE,YAAY,CAAC;AACnD,gBAAA,IAAI,WAAW,IAAI,EAAE,EAAE;AACrB,oBAAA,IAAI,UAAU,GAAG;AACf,wBAAA;AACE,4BAAA,KAAK,EAAE,QAAQ;AACf,4BAAA,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM;AAChE,yBAAA;AACD,wBAAA;AACE,4BAAA,KAAK,EAAE,UAAU;AACjB,4BAAA,OAAO,EAAE,QAAQ;AAClB,yBAAA;AACD,wBAAA;AACE,4BAAA,KAAK,EAAE,aAAa;AACpB,4BAAA,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM;AAChE,yBAAA;AACD,wBAAA;AACE,4BAAA,KAAK,EAAE,SAAS;AAChB,4BAAA,OAAO,EAAE,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE;AACvD,yBAAA;AACD,wBAAA;AACE,4BAAA,KAAK,EAAE,WAAW;AAClB,4BAAA,OAAO,EAAE,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE;AACvD,yBAAA;AACD,wBAAA;AACE,4BAAA,KAAK,EAAE,QAAQ;AACf,4BAAA,OAAO,EAAE,MAAM;AAChB,yBAAA;AACD,wBAAA;AACE,4BAAA,KAAK,EAAE,QAAQ;AACf,4BAAA,OAAO,EAAE,MAAM;AAChB,yBAAA;AACD,wBAAA;AACE,4BAAA,KAAK,EAAE,mBAAmB;AAC1B,4BAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG;AAC/B,yBAAA;AACD,wBAAA;AACE,4BAAA,KAAK,EAAE,wBAAwB;AAC/B,4BAAA,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG;AACvC,yBAAA;qBACF,CAAA;AACD,oBAAA,WAAW,GAAG,UAAU,EAAE,MAAM,CAAC,EAAE,IAAI,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACtG,oBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;AAC9B,wBAAA,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,CAAC,CAAC;AACxE,wBAAA,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;;AAEhB,4BAAA,WAAW,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;yBAClC;6BAAM;;AAEL,4BAAA,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;yBACtD;AACD,wBAAA,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,SAAS,CAAC,QAAQ,IAAG;4BAClF,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,GAAG,EAAE;AACrC,gCAAA,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CAAC;gCACzC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;6BAC/D;AACH,yBAAC,CAAC,CAAC;qBACJ;iBACF;aACF;AACH,SAAC,CAAC,CAAC;KACJ;IAED,eAAe,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,QAAQ,EAAE;;YAE/D,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE;AACvC,gBAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;aAC/E;SACF;QACD,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,MAAe,KAAI;YAC/D,IAAI,CAAC,GAAG,CAAC,CAAA;YACT,IAAI,MAAM,EAAE;gBACV,MAAM,oBAAoB,GAAG,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC;AAClE,gBAAA,IAAI,sBAAsB,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,oBAAoB,EAAE,mBAAmB,CAAC,CAAA;AAC/G,gBAAA,MAAM,UAAU,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,sBAAsB,CAAC,CAAC;gBACpF,IAAI,UAAU,EAAE;oBACd,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,IAAG;AAC1C,wBAAA,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AACzC,wBAAA,IAAI,CAAC,KAAK,CAAC,EAAE;AACX,4BAAA,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;yBAChC;AACD,wBAAA,CAAC,EAAE,CAAA;AACL,qBAAC,CAAC,CAAC;iBACJ;gBAID,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,sBAAsB,EAAE;AACrE,oBAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;oBAC9B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,CAAC;AACjE,oBAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE,MAAM,EAAE;AACpC,wBAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,KAAI;4BAC/D,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AACzL,yBAAC,CAAC,CAAC;qBACJ;oBACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,EAAE;AACzC,wBAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;qBAChE;oBACD,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;oBACjE,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;AAC/D,oBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,IAAG;AAC/B,wBAAA,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAA;AAC5C,qBAAC,CAAC,CAAC;iBACJ;aACF;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,iBAAiB,EAAE;YACnE,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,MAAe,KAAI;gBACzD,IAAI,MAAM,EAAE;AACV,oBAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACpB,oBAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;oBACnB,IAAI,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,CAAC,EAAE;wBAChC,IAAI,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,CAAC,EAAE;4BAC/B,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACtD,4BAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;yBAC1B;qBACF;;AAED,oBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;;AAEvB,oBAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;iBAChD;qBAAM;oBACL,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAC9B,oBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;;;;;;;;;iBASxB;AACH,aAAC,CAAC,CAAC;SACJ;KACF;IAED,sBAAsB,GAAA;;AAEpB,QAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC5B,YAAA,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACjF,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;SACjC;KACF;IAID,QAAQ,GAAA;;AAEN,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,iBAAiB,EAAE;YACnE,IAAI,CAAC,sBAAsB,CAAC,YAAY;AACrC,iBAAA,IAAI,CACH,YAAY,CAAC,IAAI,CAAC;;YAElB,oBAAoB,EAAE,EACtB,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC5B,iBAAA,SAAS,CAAC,CAAC,WAAW,KAAI;AACzB,gBAAA,IAAI,WAAW,IAAI,EAAE,EAAE;AAErB,oBAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACpB,oBAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AACnB,oBAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACtB,oBAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,oBAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AAC/B,oBAAA,IAAI,CAAC,UAAU,GAAG,WAAW,CAAA;AAC7B,oBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;iBAC5D;AACH,aAAC,CAAC,CAAC;SACN;aAAM;YACL,IAAI,CAAC,sBAAsB,CAAC,YAAY;AACrC,iBAAA,IAAI,CACH,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;iBAC5B,SAAS,CAAC,MAAK;gBACd,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC5B,aAAC,CAAC,CAAC;SACN;;QAED,IAAI,CAAC,aAAa,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;AAC3C,YAAA,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC;AACtC,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,KAAI;AAClC,YAAA,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;AAC9C,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC;KAC3C;AAED,IAAA,iBAAiB,CAAC,KAAU,EAAE,UAAe,EAAE,UAAe,EAAA;KAE7D;AAED,IAAA,mBAAmB,CAAC,QAAQ,EAAA;QAC1B,MAAM,YAAY,GAAG,QAAQ,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC;AAChD,QAAA,MAAM,mBAAmB,GAAG,YAAY,IAAI,IAAI,IAAI,YAAY,KAAK,EAAE,IAAI,YAAY,KAAK,SAAS,CAAC;AACtG,QAAA,MAAM,gBAAgB,GAAG,OAAO,IAAI,IAAI,IAAI,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,SAAS,CAAC;QACpF,OAAO,mBAAmB,IAAI,gBAAgB,CAAC;KAChD;AAED,IAAA,gBAAgB,CAAC,QAAQ,EAAA;QACvB,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC;AAChD,QAAA,MAAM,mBAAmB,GAAG,OAAO,IAAI,IAAI,IAAI,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,SAAS,CAAC;AACvF,QAAA,OAAO,mBAAmB,CAAC;KAC5B;IAED,OAAO,GAAA;AACL,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;AACvB,YAAA,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AACzD,YAAA,OAAO,IAAI,CAAC;SACb;aACI;AACH,YAAA,OAAO,KAAK,CAAC;SACd;KACF;IAED,eAAe,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE;YACvD,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AACzC,YAAA,IAAI,QAAQ,CAAC,MAAM,EAAE;AACnB,gBAAA,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE;AAC1B,oBAAA,IAAI,GAAG,CAAC,OAAO,EAAE;AACf,wBAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE;4BACvE,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE;AACrC,gCAAA,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;6BACjC;yBACF;AACD,wBAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;qBAC/D;iBACF;aACF;SACF;KACF;IAED,cAAc,CAAC,EAAO,EAAE,EAAO,EAAA;QAC7B,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;KAC1B;AAED,IAAA,0CAA0C,CAAC,IAAI,EAAA;AAC7C,QAAA,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AACvD,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,qCAAqC,CAAC,CAAC;AACvF,YAAA,IACE,MAAM;gBACN,MAAM,CAAC,KAAK,KAAK,IAAI;gBACrB,MAAM,CAAC,KAAK,KAAK,SAAS;AAC1B,gBAAA,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;gBAC1B,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,MAAM,EAC5C;AACA,gBAAA,OAAO,IAAI,CAAC;aACb;SACF;AACD,QAAA,OAAO,KAAK,CAAC;KACd;+GAjgBU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAkB,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,EAxExB,QAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,eAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,ucAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAhB,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,MAAA,EAAA,WAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,4BAAA,EAAA,8BAAA,EAAA,uCAAA,EAAA,WAAA,EAAA,uBAAA,EAAA,0BAAA,EAAA,gCAAA,EAAA,iCAAA,EAAA,kCAAA,EAAA,uBAAA,EAAA,mCAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,6BAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAApB,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FA+BU,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBA1EnC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EACnB,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,ucAAA,CAAA,EAAA,CAAA;mKAsC2C,WAAW,EAAA,CAAA;sBAAtD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAEd,UAAU,EAAA,CAAA;sBAArC,SAAS;uBAAC,eAAe,CAAA;;AA2f5B,eAAe,CAAC,iBAAiB,GAAG,uBAAuB,CAAC;AAE5D;AACA,MAAM,QAAQ,GAAG,eAAe,CAAC,SAAS,CAAC,QAAQ,CAAC;AACpD,eAAe,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAU,GAAG,IAAI,EAAA;IACpD,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IAC7B,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,EAAE;QACzE,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KACjE;AACH,CAAC;;AC7kBK,MAAO,qBAAsB,SAAQ,uBAAuB,CAAA;+GAArD,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EAftB,QAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;AAYT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGU,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAjBjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EACjB,QAAA,EAAA,CAAA;;;;;;;;;;;;AAYT,EAAA,CAAA,EAAA,CAAA;;AAIH,aAAa,CAAC,iBAAiB,GAAG,qBAAqB;;MCb1C,2BAA2B,CAAA;IAEtC,WAAmB,CAAA,SAAoD,EAAkC,IAAS,EAAA;QAA/F,IAAS,CAAA,SAAA,GAAT,SAAS,CAA2C;QAAkC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAK;KAAK;IAEvH,QAAQ,GAAA;KACP;AALU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,gDAE2C,eAAe,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAFrF,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,kECRxC,wjBASM,EAAA,MAAA,EAAA,CAAA,2FAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDDO,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;+BACE,4BAA4B,EAAA,QAAA,EAAA,wjBAAA,EAAA,MAAA,EAAA,CAAA,2FAAA,CAAA,EAAA,CAAA;;0BAMoC,MAAM;2BAAC,eAAe,CAAA;;;ME8BrF,sBAAsB,CAAA;IA2EjC,WACS,CAAA,YAAkD,EAChC,IAAS,EAC1B,EAAe,EACf,MAAiB,EACjB,YAA2B,EAAA;QAJ5B,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAsC;QAEjD,IAAE,CAAA,EAAA,GAAF,EAAE,CAAa;QACf,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QACjB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAe;QA9ErC,IAAW,CAAA,WAAA,GAAa,EAAE,CAAC;QAC3B,IAAW,CAAA,WAAA,GAAa,EAAE,CAAC;QAC3B,IAAa,CAAA,aAAA,GAAa,EAAE,CAAC;QAC7B,IAAY,CAAA,YAAA,GAAa,EAAE,CAAC;QAC5B,IAAmB,CAAA,mBAAA,GAAa,EAAE,CAAC;QACnC,IAAmB,CAAA,mBAAA,GAAa,EAAE,CAAC;QACnC,IAAqB,CAAA,qBAAA,GAAa,EAAE,CAAC;QACrC,IAAoB,CAAA,oBAAA,GAAa,EAAE,CAAC;QACpC,IAAkB,CAAA,kBAAA,GAAa,CAAC,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;QACnF,IAAsB,CAAA,sBAAA,GAAa,CAAC,QAAQ,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;AACnJ,QAAA,IAAA,CAAA,YAAY,GAAa,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAC7C,IAAY,CAAA,YAAA,GAAc,EAAE,CAAC;AAC7B,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,kBAAkB,EAAW,CAAC;QAC/C,IAAS,CAAA,SAAA,GAAG,IAAI,cAAc,CAAM,IAAI,EAAE,EAAE,CAAC,CAAC;AAC9C,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,kBAAkB,CAAU,EAAE,CAAC,CAAC;QACzD,IAAgB,CAAA,gBAAA,GAAQ,IAAI,CAAC;QAC7B,IAAmB,CAAA,mBAAA,GAAQ,IAAI,CAAC;QAChC,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;QAC9B,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;QACjC,IAAS,CAAA,SAAA,GAAY,IAAI,CAAC;QAC1B,IAAY,CAAA,YAAA,GAAY,IAAI,CAAC;QAC7B,IAAa,CAAA,aAAA,GAAY,KAAK,CAAC;QAC/B,IAAa,CAAA,aAAA,GAAY,KAAK,CAAC;QAC/B,IAAoB,CAAA,oBAAA,GAAY,IAAI,CAAC;QACrC,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;QACzB,IAAc,CAAA,cAAA,GAAW,EAAE,CAAC;QAC5B,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;QAC7B,IAAU,CAAA,UAAA,GAAG,CAAC,CAAC;QACf,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAC;QACd,IAAU,CAAA,UAAA,GAAG,CAAC,CAAC;QACf,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;QACjB,IAAQ,CAAA,QAAA,GAAU,EAAE,CAAC;AAErB,QAAA,IAAA,CAAA,kBAAkB,GAAG,CAAC,CAAC;QAEvB,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;QAC7B,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAC5B,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAC5B,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAC5B,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAC5B,IAAe,CAAA,eAAA,GAAW,EAAE,CAAC;QAC7B,IAAe,CAAA,eAAA,GAAW,EAAE,CAAC;QAC7B,IAAe,CAAA,eAAA,GAAW,EAAE,CAAC;QAC7B,IAAe,CAAA,eAAA,GAAW,EAAE,CAAC;QAC7B,IAAa,CAAA,aAAA,GAAW,CAAC,CAAC;QAC1B,IAAU,CAAA,UAAA,GAAQ,EAAE,CAAC;QACrB,IAAU,CAAA,UAAA,GAAQ,EAAE,CAAC;QACrB,IAAY,CAAA,YAAA,GAAQ,EAAE,CAAC;QACvB,IAAW,CAAA,WAAA,GAAQ,EAAE,CAAC;QACtB,IAAY,CAAA,YAAA,GAAY,IAAI,CAAC;QAC7B,IAAqB,CAAA,qBAAA,GAAY,KAAK,CAAC;QACvC,IAAW,CAAA,WAAA,GAAW,iBAAiB,CAAC;QACxC,IAAS,CAAA,SAAA,GAAY,IAAI,CAAC;QAC1B,IAAW,CAAA,WAAA,GAAY,IAAI,CAAC;QAC5B,IAAW,CAAA,WAAA,GAAY,IAAI,CAAC;QAC5B,IAAW,CAAA,WAAA,GAAY,IAAI,CAAC;QAC5B,IAAc,CAAA,cAAA,GAAY,IAAI,CAAC;QAC/B,IAAkB,CAAA,kBAAA,GAAW,CAAC,CAAC;QAC/B,IAAU,CAAA,UAAA,GAAW,+BAA+B,CAAC;QACrD,IAAe,CAAA,eAAA,GAAW,CAAC,CAAC;QAC5B,IAAe,CAAA,eAAA,GAAW,OAAO,CAAC;QAClC,IAAU,CAAA,UAAA,GAAW,kBAAkB,CAAC;QACxC,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAC1B,IAAQ,CAAA,QAAA,GAAW,YAAY,CAAC;QAChC,IAAS,CAAA,SAAA,GAAW,kBAAkB,CAAC;QACvC,IAAU,CAAA,UAAA,GAAW,OAAO,CAAC;QAC7B,IAAY,CAAA,YAAA,GAAW,cAAc,CAAC;QACtC,IAAa,CAAA,aAAA,GAAW,UAAU,CAAC;QACnC,IAAa,CAAA,aAAA,GAAW,eAAe,CAAC;QACxC,IAAgB,CAAA,gBAAA,GAAW,cAAc,CAAC;QAC1C,IAAc,CAAA,cAAA,GAAW,WAAW,CAAC;QACrC,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;QAS5B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC;QAC1D,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC;QAChE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;QACpD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC;QAC1D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC;QAC5D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC;QAC5D,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC;QACpE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;QAChD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;QAChD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;QAChD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;QAChD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;QAC1D,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;QAC1D,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;QAC1D,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;QAC1D,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC;QACtE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACjE,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,cAAc,CAAU,IAAI,EAAE,IAAI,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC;QAChF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC;QACtD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,QAAQ,IAAI,YAAY,CAAC;QAC7D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,SAAS,IAAI,kBAAkB,CAAC;QACrE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,UAAU,IAAI,OAAO,CAAC;QAC5D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,EAAE,YAAY,IAAI,cAAc,CAAC;QACvE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,aAAa,IAAI,UAAU,CAAC;QACrE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,cAAc,CAAC;QACnD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,aAAa,IAAI,eAAe,CAAC;QAC1E,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,EAAE,gBAAgB,IAAI,cAAc,CAAC;QAC/E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,EAAE,cAAc,IAAI,WAAW,CAAC;QACxE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC;AACpD,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACtB,YAAA,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;SACnC;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACnB,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;SAC5B;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AACzB,YAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;SAClC;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACtB,YAAA,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;SAC/B;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACvB,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;SAChC;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACvB,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;SAChC;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;SAC3B;KACF;AAED,IAAA,YAAY,CAAC,UAAkB,EAAA;AAC7B,QAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,KAAK,UAAU,CAAC,CAAC;AAClG,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,KAAK,UAAU,CAAC,CAAC;KAC3F;IAED,mBAAmB,GAAA;QACjB,MAAM,qBAAqB,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAc,CAAC;QAC7E,IAAI,CAAC,qBAAqB,EAAE;AAC1B,YAAA,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;YAC7D,OAAO;SACR;QAED,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,IAAG;YACxC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;gBACvC,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,QAAQ,GAAG,EAAE,CAAC;AAChG,gBAAA,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC;gBAC3B,QAAQ,EAAE,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;AACvD,gBAAA,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,IAAI,EAAE,CAAC;AACnC,gBAAA,WAAW,EAAE,CAAC,OAAO,EAAE,WAAW,IAAI,EAAE,CAAC;AACzC,gBAAA,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;gBAC7B,iBAAiB,EAAE,CAAC,OAAO,EAAE,iBAAiB,IAAI,EAAE,EAAE,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,GAAG,EAAE,CAAC;AAC/F,gBAAA,iBAAiB,EAAE,CAAC,OAAO,EAAE,iBAAiB,IAAI,EAAE,CAAC;AACrD,gBAAA,iBAAiB,EAAE,CAAC,OAAO,EAAE,iBAAiB,IAAI,EAAE,CAAC;AACtD,aAAA,CAAC,CAAC,CAAC;AACN,SAAC,CAAC,CAAC;AAEH,QAAA,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,IAAG;YAC/C,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;AACzF,SAAC,CAAC,CAAC;AAGH,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;KAC7D;IAED,qBAAqB,GAAA;;AAEnB,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE;YACvH,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,eAAe,IAAG;gBAClD,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,eAAe,CAAC,KAAK,CAAC,CAAC;AACjG,gBAAA,IAAI,KAAK,IAAI,CAAC,EAAE;oBACd,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,eAAe,CAAC;iBAC/C;AACH,aAAC,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;SAC7D;aAAM;AACL,YAAA,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;SAC7C;KACF;IAED,eAAe,GAAA;KACd;IAGD,QAAQ,GAAA;QACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACxB,cAAc,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;YAChD,cAAc,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAC/C,cAAc,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAC/C,cAAc,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAC/C,iBAAiB,EAAE,CAAC,EAAE,CAAC;YACvB,gBAAgB,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;AACpC,SAAA,CAAC,CAAC;QACH,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAE3B,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,cAAc,EAAE,CAAC;SACvB;QAED,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,YAAY;aACzC,IAAI,CACH,SAAS,CAAC,EAAE,CAAC,EACb,GAAG,CAAC,KAAK,IACP,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAC3C,CAAC,SAAS,CAAC,EAAE,IAAG;AACf,YAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;AAChC,SAAC,CAAC,CAAC;QACL,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,YAAY;aACzC,IAAI,CACH,SAAS,CAAC,EAAE,CAAC,EACb,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CACtD,CAAC,SAAS,CAAC,EAAE,IAAG;AACf,YAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;AAChC,SAAC,CAAC,CAAC;QACL,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,YAAY;aACzC,IAAI,CACH,SAAS,CAAC,EAAE,CAAC,EACb,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CACtD,CAAC,SAAS,CAAC,EAAE,IAAG;AACf,YAAA,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;AAClC,SAAC,CAAC,CAAC;QACL,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,YAAY;aACzC,IAAI,CACH,SAAS,CAAC,EAAE,CAAC,EACb,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CACtD,CAAC,SAAS,CAAC,EAAE,IAAG;AACf,YAAA,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;AACjC,SAAC,CAAC,CAAC;KACN;IAED,oBAAoB,GAAA;AAClB,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACxE,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,KAAK,EAAE,EAAE,CAAC;AAChE,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC3B,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,SAAS,GAAG,CAAC,CAAC;SACrD;QACD,IAAI,CAAC,WAAW,IAAI,WAAW,KAAK,EAAE,MAAM,UAAU,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,CAAC,EAAE;AAC1G,YAAA,IAAI,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE,CAAC;;AAEpE,YAAA,IAAI,WAAW,EAAE,MAAM,GAAG,GAAG,EAAE;gBAC7B,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;aAC7C;AACD,YAAA,IAAI,CAAC,WAAW,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;AACnD,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC;AAC9D,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC;AAC9D,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC;AAChE,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC;AAC/D,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACpB,YAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AACnB,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SACzB;QACD,IAAI,CAAC,wBAAwB,EAAE,CAAC;KACjC;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,QAAQ,IAAG;AACvD,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;YACxB,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,GAAG,EAAE;AACrC,gBAAA,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC;gBACjC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;aACjE;AACH,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,cAAc,CAAC,UAAe,EAAA;AAC5B,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,QAAQ,IAAG;AACjE,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;YACxB,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,GAAG,EAAE;AACrC,gBAAA,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC;gBACjC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;aACjE;AACH,SAAC,CAAC,CAAC;KACJ;IAED,cAAc,CAAC,UAAe,EAAE,UAAe,EAAA;AAC7C,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,SAAS,CAAC,QAAQ,IAAG;AAC/E,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;YACxB,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,GAAG,EAAE;AACrC,gBAAA,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC;gBACnC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;aACnE;AACH,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,cAAc,CAAC,UAAe,EAAE,UAAe,EAAE,YAAiB,EAAA;AAChE,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC,SAAS,CAAC,QAAQ,IAAG;AAC5F,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;YACxB,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,GAAG,EAAE;AACrC,gBAAA,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC;gBAClC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;aAClE;AACH,SAAC,CAAC,CAAC;KACJ;IAGD,cAAc,CAAC,KAAa,EAAE,GAAW,EAAA;AACvC,QAAA,MAAM,WAAW,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;AAC7E,QAAA,IAAI,IAAc,CAAC;;QAGnB,QAAQ,GAAG;AACT,YAAA,KAAK,WAAW;AACd,gBAAA,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;gBACxB,MAAM;AACR,YAAA,KAAK,WAAW;AACd,gBAAA,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;gBACxB,MAAM;AACR,YAAA,KAAK,WAAW;AACd,gBAAA,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC;gBAC1B,MAAM;AACR,YAAA,KAAK,WAAW;AACd,gBAAA,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC;gBACzB,MAAM;AACR,YAAA;gBACE,IAAI,GAAG,EAAE,CAAC;SACb;QAED,IAAI,CAAC,WAAW,EAAE;AAChB,YAAA,OAAO,IAAI,CAAC;SACb;aAAM;YACL,OAAO,IAAI,EAAE,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;SACpF;KACF;IAGD,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACnB,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;AACtB,gBAAA,IAAI,EAAE;AACJ,oBAAA,MAAM,EAAE,IAAI;AACZ,oBAAA,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AAC/B,iBAAA;AACF,aAAA,CAAC,CAAC;SACJ;aAAM;AACL,YAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC7B,UAAU,CAAC,MAAK;gBACd,IAAI,CAAC,2BAA2B,EAAE,CAAC;AACrC,aAAC,CAAC,CAAC;SACJ;KACF;IAED,aAAa,GAAA;QACX,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QACnD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;QAC5C,OAAO,WAAW,KAAK,OAAO,CAAC;KAChC;IAED,eAAe,GAAA;QACb,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QACnD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;AAC5C,QAAA,OAAO,WAAW,GAAG,CAAC,IAAI,WAAW,GAAG,OAAO,CAAC;KACjD;IAED,YAAY,GAAA;QACV,IAAI,CAAC,aAAa,EAAE;AAClB,cAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;cACtB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACpE,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;AAED,IAAA,eAAe,CAAC,GAAY,EAAA;;QAE1B,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;QAC/F,IAAI,eAAe,EAAE;;AAEnB,YAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;SAC9B;aAAM;;AAEL,YAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;;QAED,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAE/B;;AAID,IAAA,IAAI,gBAAgB,GAAA;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAc,CAAC;KACvD;IAED,sBAAsB,GAAA;QACpB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;;AAE1C,YAAA,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAC/B,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CACnF,CAAC;AACF,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;AACvB,YAAA,cAAc,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AAElE,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC5D,YAAA,MAAM,qBAAqB,GAAG,IAAI,CAAC,gBAAgB,CAAC;YACpD,qBAAqB,CAAC,KAAK,EAAE,CAAC;AAC9B,YAAA,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,KAAI;AACnD,gBAAA,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE;oBACnB,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;oBAC1E,OAAO;iBACR;AACD,gBAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;oBACrC,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,QAAQ,GAAG,EAAE,CAAC;AAChG,oBAAA,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC;oBAC3B,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,QAAQ,GAAG,EAAE,CAAC;AACjF,oBAAA,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,IAAI,EAAE,CAAC;AACnC,oBAAA,WAAW,EAAE,CAAC,OAAO,EAAE,WAAW,IAAI,EAAE,CAAC;AACzC,oBAAA,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;oBAC7B,iBAAiB,EAAE,CAAC,OAAO,EAAE,iBAAiB,IAAI,EAAE,EAAE,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,GAAG,EAAE,CAAC;AAC/F,oBAAA,iBAAiB,EAAE,CAAC,OAAO,EAAE,iBAAiB,IAAI,EAAE,CAAC;AACrD,oBAAA,iBAAiB,EAAE,CAAC,OAAO,EAAE,iBAAiB,IAAI,EAAE,CAAC;AACtD,iBAAA,CAAC,CAAC;gBACH,IAAI,gBAAgB,EAAE;AACpB,oBAAA,qBAAqB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;iBAC9C;qBAAM;AACL,oBAAA,OAAO,CAAC,KAAK,CAAC,mDAAmD,KAAK,CAAA,CAAA,CAAG,CAAC,CAAC;iBAC5E;AACH,aAAC,CAAC,CAAC;YACH,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,KAAI;AACxD,gBAAA,IAAI,OAAO,YAAY,SAAS,EAAE;oBAChC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBAC1C,IAAI,YAAY,EAAE;AAChB,wBAAA,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;qBACtE;yBAAM;AACL,wBAAA,OAAO,CAAC,KAAK,CAAC,kDAAkD,KAAK,CAAA,CAAA,CAAG,CAAC,CAAC;qBAC3E;iBACF;qBAAM;oBACL,OAAO,CAAC,KAAK,CAAC,CAAA,iCAAA,EAAoC,KAAK,CAAG,CAAA,CAAA,EAAE,OAAO,CAAC,CAAC;iBACtE;AACH,aAAC,CAAC,CAAC;SACJ;aAAM;YACL,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;SAC/E;KACF;IAGD,YAAY,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;KACpC;IAED,oBAAoB,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;KACvC;IAED,gBAAgB,CAAC,KAAU,EAAE,QAAgB,EAAA;AAC3C,QAAA,IAAI,aAAa,CAAC;AAClB,QAAA,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE;YAC7D,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;SACvC;aAAM;YACL,aAAa,GAAG,KAAK,CAAC;SACvB;AACD,QAAA,IAAI,QAAQ,KAAK,WAAW,EAAE;AAC5B,YAAA,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC;AAChC,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC/C,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC/C,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC/C,YAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;AAC9B,YAAA,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;AAChC,YAAA,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,EAAE;gBACtC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;gBAC1C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC;gBAC3C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC;AAC3C,gBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aACtC;iBAAM;gBACL,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC;gBAC3C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC;gBAC3C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC;AAC3C,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC/C,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC/C,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;;AAE/C,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;aACzB;AACD,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACpB,YAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AACnB,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SACzB;AACD,QAAA,IAAI,QAAQ,KAAK,WAAW,EAAE;AAC5B,YAAA,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC;AAChC,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC/C,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC/C,YAAA,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;AAChC,YAAA,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,EAAE;gBACzD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;gBAC1C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC;AAC3C,gBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;gBACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;aACvD;iBAAM;gBACL,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC;gBAC3C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC;AAC3C,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC/C,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;;AAE/C,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;aACzB;AACD,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACpB,YAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AACnB,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SACzB;AACD,QAAA,IAAI,QAAQ,KAAK,WAAW,EAAE;AAC5B,YAAA,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC;AAClC,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC/C,YAAA,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;AAC/B,YAAA,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,EAAE;gBAC9E,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;AAC1C,gBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;aAC1E;iBAAM;gBACL,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC;AAC3C,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;;AAE/C,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;aACzB;AACD,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACpB,YAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AACnB,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SACzB;AACD,QAAA,IAAI,QAAQ,KAAK,WAAW,EAAE;AAC5B,YAAA,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC;AACjC,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACpB,YAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AACnB,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SACzB;QACD,IAAI,CAAC,wBAAwB,EAAE,CAAC;KACjC;AAED,IAAA,WAAW,CAAC,IAAa,EAAA;AACvB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;AAChC,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACzD,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACzD,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;AAC/D,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AAC5D,QAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE;YACpF,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,OAAO;SACR;AACD,QAAA,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC,SAAS,CAAC,QAAQ,IAAG;AAC1J,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,GAAG,EAAE;gBACrC,IAAI,CAAC,UAAU,GAAG,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC;AAC7C,gBAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;gBACtC,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAA;;AAEjD,gBAAA,IAAI,CAAC,OAAO,CAAC,OAAO,IAAG;oBACrB,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;oBACrF,IAAI,eAAe,EAAE;wBACnB,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;wBACxC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;wBAC/B,IAAI,CAAC,sBAAsB,EAAE,CAAC;qBAC/B;AACH,iBAAC,CAAC,CAAC;;gBAGH,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC1F,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AACxF,gBAAA,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,EAAE;;AAE3C,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,aAAa,CAAC,CAAC;iBACpE;qBAAM;AACL,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC;iBAC7B;AAED,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,UAAU,CAAC,MAAK;oBACd,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,EAAE,CAAC;AACjD,oBAAA,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,aAAa,IAAI,IAAI,EAAE;AAC5E,wBAAA,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;qBAC3F;iBACF,EAAE,GAAG,CAAC,CAAC;gBACR,IAAI,CAAC,qBAAqB,EAAE,CAAC;aAC9B;AACH,SAAC,CAAC,CAAC;KACJ;IAED,SAAS,CAAC,KAAY,EAAE,OAAgB,EAAA;QACtC,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,OAAO,GAAG,+CAA+C,CAAC;QAC9D,IAAI,UAAU,GAAG,IAAI,CAAC;AACtB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC5D,QAAA,IAAI,KAAK,IAAI,CAAC,EAAE;AACd,YAAA,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;gBAC5E,OAAO,GAAG,qCAAqC,CAAC;gBAChD,UAAU,GAAG,KAAK,CAAC;aACpB;YACD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;AAC9D,gBAAA,YAAY,EAAE,IAAI;AAClB,gBAAA,KAAK,EAAE,KAAK;AACZ,gBAAA,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE;AACrD,aAAA,CAAC,CAAC;YACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,IAAG;gBACzC,IAAI,MAAM,EAAE;oBACV,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC9C,oBAAA,IAAI,CAAC,kBAAkB,CAAC,yBAAyB,EAAE,CAAC;AACpD,oBAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;oBACjC,MAAM,qBAAqB,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAc,CAAC;oBAC7E,MAAM,YAAY,GAAG,qBAAqB,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;AAChH,oBAAA,IAAI,YAAY,IAAI,CAAC,EAAE;AACrB,wBAAA,qBAAqB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;qBAC9C;iBACF;AACH,aAAC,CAAC,CAAC;SACJ;KACF;AAED,IAAA,QAAQ,CAAC,KAAU,EAAA;AACjB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC;QACzE,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE;AAC1F,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE;gBACrC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACtC,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;aACxB;iBAAM;AACL,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;aACzB;SACF;QACD,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC;KAClD;AAED,IAAA,kBAAkB,CAAC,GAAG,EAAA;;AAEpB,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;aACpB,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;AAChG,aAAA,MAAM,CAAC;KACX;;AAGD,IAAA,SAAS,CAAC,MAAM,EAAA;QACd,OAAO,MAAM,GAAG,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;KAClC;IAED,gBAAgB,CAAC,KAAU,EAAE,KAAa,EAAA;AACxC,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AACjC,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAExE,QAAA,IAAI,CAAC,eAAe;YAAE,OAAO;;AAG7B,QAAA,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;;QAGhC,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,IAAI,EAAE;YAClC,eAAe,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;SACjD;;AAEI,aAAA,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YAC1B,eAAe,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;SAC5C;;aAEI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC7B,eAAe,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;SAChD;KACF;IAGD,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;KAChC;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,WAAW,GAAG,iBAAiB,CAAC;KACtC;IAED,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;KAClC;AAED,IAAA,UAAU,CAAC,KAAa,EAAE,QAAgB,EAAE,KAAY,EAAA;AACtD,QAAA,KAAK,EAAE,eAAe,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrC,QAAA,IAAI,QAAQ,KAAK,WAAW,EAAE;AAC5B,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;SAC1C;AAAM,aAAA,IAAI,QAAQ,KAAK,WAAW,EAAE;AACnC,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;SAC1C;AAAM,aAAA,IAAI,QAAQ,KAAK,WAAW,EAAE;AACnC,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;SAC1C;AAAM,aAAA,IAAI,QAAQ,KAAK,WAAW,EAAE;AACnC,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;SAC1C;QACD,IAAI,CAAC,wBAAwB,EAAE,CAAC;KACjC;IAED,aAAa,CAAC,KAAY,EAAE,QAAgB,EAAA;AAC1C,QAAA,MAAM,UAAU,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;QAC5D,IAAI,CAAC,UAAU,EAAE;;AAEf,YAAA,IAAI,CAAC,UAAU,CAAC,CAAgB,aAAA,EAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;SACpF;KACF;AAED,IAAA,gBAAgB,CAAC,QAAgB,EAAA;QAC/B,QAAQ,QAAQ;AACd,YAAA,KAAK,WAAW,EAAE,OAAO,CAAC,CAAC;AAC3B,YAAA,KAAK,WAAW,EAAE,OAAO,CAAC,CAAC;AAC3B,YAAA,KAAK,WAAW,EAAE,OAAO,CAAC,CAAC;AAC3B,YAAA,KAAK,WAAW,EAAE,OAAO,CAAC,CAAC;AAC3B,YAAA,SAAS,OAAO,CAAC,CAAC;SACnB;KACF;IAED,wBAAwB,GAAA;AACtB,QAAA,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC;AAC5B,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,EAAE;YAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACvD,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK;YAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACrE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK;YAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACrE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK;YAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACrE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK;YAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC;KACtE;AAED,IAAA,YAAY,CAAC,KAAU,EAAA;AACrB,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE;AACvB,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACrD,YAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACtB,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;AAChC,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACzD,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACzD,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;AAC/D,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AAC5D,YAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE;gBACpF,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClB,OAAO;aACR;SACF;KACF;IAED,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC/C,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC/C,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC/C,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC;AAC3C,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACpB,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACpB,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;AACtB,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AACrB,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACpB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACrD,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,wBAAwB,EAAE,CAAC;KACjC;IAED,gBAAgB,CAAC,MAAc,EAAE,UAAkB,EAAE,UAAkB,EAAE,YAAoB,EAAE,WAAmB,EAAA;AAChH,QAAA,OAAO,MAAM,KAAK,EAAE,IAAI,UAAU,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC,IAAI,YAAY,KAAK,CAAC,IAAI,WAAW,KAAK,CAAC,CAAC;KACzG;;AAGD,IAAA,mBAAmB,CAAC,KAAU,EAAE,KAAa,EAAE,WAAmB,EAAA;QAChE,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AACxC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AACjE,QAAA,IAAI,CAAC,OAAO;YAAE,OAAO;;AAGrB,QAAA,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;;QAExB,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,IAAI,EAAE;YAClC,OAAO,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;YACxC,OAAO;SACR;QACD,IAAI,WAAW,KAAK,mBAAmB,IAAI,IAAI,CAAC,YAAY,EAAE;;YAE5D,OAAO;SACR;aAAM;;YAEL,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC9B,gBAAA,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;gBACnD,OAAO,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;aAC9C;SACF;KACF;IAGD,aAAa,CAAC,KAAoB,EAAE,WAAmB,EAAA;AACrD,QAAA,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;AACtB,QAAA,MAAM,YAAY,GAAI,KAAK,CAAC,MAA2B,CAAC;AACxD,QAAA,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC;QACtC,IAAI,WAAW,KAAK,mBAAmB,IAAI,IAAI,CAAC,YAAY,EAAE;;YAE5D,OAAO;SACR;aAAM;;YAEL,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE;gBACnE,KAAK,CAAC,cAAc,EAAE,CAAC;aACxB;SACF;KACF;IAED,WAAW,CAAC,KAAqB,EAAE,WAAmB,EAAA;AACpD,QAAA,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC7D,IAAI,WAAW,KAAK,mBAAmB,IAAI,IAAI,CAAC,YAAY,EAAE;;YAE5D,OAAO;SACR;aAAM;;YAEL,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;gBAClC,KAAK,CAAC,cAAc,EAAE,CAAC;aACxB;SACF;KACF;IAED,2BAA2B,GAAA;QACzB,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAC1C,qBAAqB,CACP,CAAC;QAEjB,MAAM,aAAa,GAAG,aAAa,EAAE,aAAa,CAChD,WAAW,CACG,CAAC;AAEjB,QAAA,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa;YAAE,OAAO;QAE7C,MAAM,YAAY,GAAG,aAAa,CAAC,OAAO,CAAC,gBAAgB,CAAgB,CAAC;AAC5E,QAAA,IAAI,CAAC,YAAY;YAAE,OAAO;QAE1B,aAAa,CAAC,SAAS,GAAG,aAAa,CAAC,SAAS,GAAG,CAAC,CAAC;QACtD,YAAY,CAAC,cAAc,CAAC;AAC1B,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,KAAK,EAAE,QAAQ;AAChB,SAAA,CAAC,CAAC;QAEH,UAAU,CAAC,MAAK;YACd,MAAM,KAAK,GAAG,YAAY,CAAC,aAAa,CACtC,yBAAyB,CACX,CAAC;YACjB,KAAK,EAAE,KAAK,EAAE,CAAC;SAChB,EAAE,GAAG,CAAC,CAAC;KACT;AAj1BU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,gDA6EvB,eAAe,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAuB,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGA7Ed,sBAAsB,EAAA,QAAA,EAAA,yBAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECxCnC,u/uBA6TqB,EDlSP,MAAA,EAAA,CAAA,wuKAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAApB,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gHAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,eAAA,EAAA,MAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,QAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,OAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,YAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,MAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAzB,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,eAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,uBAAA,EAAA,wBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,eAAA,EAAA,OAAA,EAAA,8BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,mDAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,yBAAA,EAAA,4BAAA,EAAA,cAAA,EAAA,yBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA;YACV,OAAO,CAAC,WAAW,EAAE;AACnB,gBAAA,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;AACzE,gBAAA,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;gBACpD,UAAU,CAAC,mBAAmB,EAAE;oBAC9B,OAAO,CAAC,gBAAgB,CAAC;iBAC1B,CAAC;gBACF,UAAU,CAAC,mBAAmB,EAAE;oBAC9B,OAAO,CAAC,eAAe,CAAC;iBACzB,CAAC;aACH,CAAC;AACH,SAAA,EAAA,CAAA,CAAA,EAAA;;4FAEU,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAjBlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,yBAAyB,EAGvB,UAAA,EAAA;wBACV,OAAO,CAAC,WAAW,EAAE;AACnB,4BAAA,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;AACzE,4BAAA,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;4BACpD,UAAU,CAAC,mBAAmB,EAAE;gCAC9B,OAAO,CAAC,gBAAgB,CAAC;6BAC1B,CAAC;4BACF,UAAU,CAAC,mBAAmB,EAAE;gCAC9B,OAAO,CAAC,eAAe,CAAC;6BACzB,CAAC;yBACH,CAAC;AACH,qBAAA,EAAA,QAAA,EAAA,u/uBAAA,EAAA,MAAA,EAAA,CAAA,wuKAAA,CAAA,EAAA,CAAA;;0BA+EE,MAAM;2BAAC,eAAe,CAAA;sHAzCQ,kBAAkB,EAAA,CAAA;sBAAlD,SAAS;uBAAC,oBAAoB,CAAA;;;AE9DjC,MAAM,YAAY,GAAc,EAC/B,CAAC;AAuKI,MAAO,yBAA0B,SAAQ,uBAAuB,CAAA;AAEpE,IAAA,WAAA,CAAmB,OAAmB,EAAS,GAAsB,EAAU,MAAiB,EAAS,aAA4B,EAAA;AACnI,QAAA,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QADH,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;QAAS,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QAAU,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAAS,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;AAYrI,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACtC,IAAa,CAAA,aAAA,GAAG,YAAY,CAAC;AAC7B,QAAA,IAAA,CAAA,mBAAmB,GAAa,CAAC,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QAClI,IAAoB,CAAA,oBAAA,GAAY,KAAK,CAAC;QACtC,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;QAC9B,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;QACjC,IAAS,CAAA,SAAA,GAAY,IAAI,CAAC;QAC1B,IAAY,CAAA,YAAA,GAAY,IAAI,CAAC;QAC7B,IAAa,CAAA,aAAA,GAAY,KAAK,CAAC;QAC/B,IAAa,CAAA,aAAA,GAAY,KAAK,CAAC;QAC/B,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;QAChC,IAAqB,CAAA,qBAAA,GAAY,KAAK,CAAC;QACvC,IAAY,CAAA,YAAA,GAAY,IAAI,CAAC;QAC7B,IAAmB,CAAA,mBAAA,GAAY,KAAK,CAAC;QACrC,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAC5B,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAC5B,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAC5B,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAC5B,IAAkB,CAAA,kBAAA,GAAY,KAAK,CAAC;QACpC,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;QACjC,IAAkB,CAAA,kBAAA,GAAY,KAAK,CAAC;QACpC,IAAmB,CAAA,mBAAA,GAAY,KAAK,CAAC;QACrC,IAAmB,CAAA,mBAAA,GAAY,KAAK,CAAC;QACrC,IAAqB,CAAA,qBAAA,GAAY,KAAK,CAAC;QACvC,IAAe,CAAA,eAAA,GAAW,EAAE,CAAC;QAC7B,IAAe,CAAA,eAAA,GAAW,EAAE,CAAC;QAC7B,IAAe,CAAA,eAAA,GAAW,EAAE,CAAC;QAC7B,IAAe,CAAA,eAAA,GAAW,EAAE,CAAC;QAE7B,IAAyB,CAAA,yBAAA,GAAY,KAAK,CAAC;QAC3C,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAC5B,IAAc,CAAA,cAAA,GAAY,IAAI,CAAC;QAC/B,IAAU,CAAA,UAAA,GAAW,OAAO,CAAC;QAC7B,IAAQ,CAAA,QAAA,GAAW,YAAY,CAAC;QAChC,IAAS,CAAA,SAAA,GAAW,kBAAkB,CAAC;QACvC,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAC1B,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;QAChC,IAAa,CAAA,aAAA,GAAW,UAAU,CAAC;QACnC,IAAY,CAAA,YAAA,GAAW,cAAc,CAAC;QACtC,IAAa,CAAA,aAAA,GAAW,eAAe,CAAC;QACxC,IAAgB,CAAA,gBAAA,GAAW,cAAc,CAAC;QAC1C,IAAc,CAAA,cAAA,GAAW,WAAW,CAAC;QACrC,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;AApD5B,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,QAAQ,EAAE;;YAE/D,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE;AACvC,gBAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;aAC/E;SACF;KACF;AA+CD,IAAA,cAAc,CAAC,MAAM,EAAA;AACnB,QAAA,OAAO,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC;KACnC;IAID,YAAY,CAAC,oBAAoB,EAAE,aAAa,EAAA;QAC9C,IAAI,oBAAoB,IAAI,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,GAAG,IACpE,GAAG,CAAC,iBAAiB,EAAE,KAAK,aAAa,CAAC,WAAW,EAAE,CAAC,EAAE;;YAE1D,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,GAAG,IAC5D,GAAG,CAAC,iBAAiB,EAAE,KAAK,aAAa,CAAC,WAAW,EAAE,CACxD,CAAC;;AAEF,YAAA,OAAO,oBAAoB,CAAC,WAAW,CAAC,CAAC;SAC1C;AAED,QAAA,OAAO,EAAE,CAAC;KACX;;;AAOD,IAAA,WAAW,CAAC,QAAa,EAAA;AACvB,QAAA,MAAM,cAAc,GAAG,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC;AACvD,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;AACxG,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;AAC5F,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;AAClG,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;AACtF,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;AAC5F,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;AAC9F,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,cAAc,EAAE,eAAe,CAAC,CAAA;AAC7F,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAC;AACxG,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;AAClG,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAC;AACxG,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,cAAc,EAAE,qBAAqB,CAAC,CAAC;AAC1G,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,cAAc,EAAE,qBAAqB,CAAC,CAAC;AAC1G,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,cAAc,EAAE,uBAAuB,CAAC,CAAC;AAC9G,QAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,cAAc,EAAE,qCAAqC,CAAC,CAAC;AAChI,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;AAChG,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;AACpF,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;AAChG,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;QAC5F,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;QAC3D,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;QAC3D,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;QAC3D,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;QAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;QAC9D,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;QACpE,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;QAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;QACpE,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;QAC1E,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;AACtE,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,SAAS,KAAK,OAAO,EAAE,KAAK,QAAQ,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;AAC5H,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,SAAS,KAAK,OAAO,EAAE,KAAK,QAAQ,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;AAC5H,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,SAAS,KAAK,OAAO,EAAE,KAAK,QAAQ,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;AAC5H,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,SAAS,KAAK,OAAO,EAAE,KAAK,QAAQ,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;AAC5H,QAAA,MAAM,UAAU,GAAG,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,KAAK,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;AAC5I,QAAA,MAAM,QAAQ,GAAG,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,KAAK,OAAO,GAAG,KAAK,QAAQ,GAAG,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;AAChI,QAAA,MAAM,SAAS,GAAG,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,KAAK,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;AACtI,QAAA,MAAM,aAAa,GAAG,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS,KAAK,OAAO,QAAQ,KAAK,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,QAAQ,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;AAC9J,QAAA,MAAM,YAAY,GAAG,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,KAAK,OAAO,OAAO,KAAK,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;AACxJ,QAAA,MAAM,aAAa,GAAG,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS,KAAK,OAAO,QAAQ,KAAK,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,QAAQ,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;AAC9J,QAAA,MAAM,gBAAgB,GAAG,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,SAAS,KAAK,OAAO,WAAW,KAAK,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,WAAW,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;AAChL,QAAA,MAAM,cAAc,GAAG,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,SAAS,KAAK,OAAO,SAAS,KAAK,QAAQ,GAAG,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,SAAS,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;AACpK,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;SAC3B;AACD,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;SAC3B;AACD,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;SAC3B;AACD,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;SAC3B;QACD,IAAI,UAAU,EAAE;AACd,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;SACzB;QAED,IAAI,QAAQ,EAAE;AACZ,YAAA,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;SACrB;QAED,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;QACD,IAAI,aAAa,EAAE;AACjB,YAAA,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;SAC/B;QAED,IAAI,YAAY,EAAE;AAChB,YAAA,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;SAC7B;QACD,IAAI,aAAa,EAAE;AACjB,YAAA,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;SAC/B;QACD,IAAI,gBAAgB,EAAE;AACpB,YAAA,IAAI,CAAC,gBAAgB,GAAG,WAAW,CAAC;SACrC;QACD,IAAI,cAAc,EAAE;AAClB,YAAA,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;SACjC;AACD,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC;AAC1G,QAAA,IAAI,CAAC,mBAAmB,GAAG,CAAC,cAAc,EAAE,QAAQ,KAAK,KAAK,MAAM,cAAc,EAAE,QAAQ,KAAK,MAAM,CAAC,CAAC;AACzG,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;AAC1E,QAAA,IAAI,CAAC,UAAU,GAAG,eAAe,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;AACzE,QAAA,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC5B,IAAI,IAAI,CAAC,oBAAoB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AACrD,YAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACtB,gBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;aAC/B;AACD,YAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACtB,gBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;aAC/B;AACD,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACnB,gBAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;aAC5B;AACD,YAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AACzB,gBAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;aAClC;AACD,YAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACvB,gBAAA,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;aAChC;AACD,YAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACvB,gBAAA,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAA;aAC/B;AACD,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,gBAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;aAC3B;YACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;YAC1D,YAAY,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AACnD,YAAA,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA,uBAAA,EAA0B,IAAI,CAAC,MAAM,CAAA,CAAE,CAAC,IAAI,EAAE,CAAC;YACvF,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,MAAM,CAAC,CAAC;AACpD,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,GAAG,EAAE,CAAC;;AAGjE,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;SAC5B;aAAM;YACL,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC;SAC3C;;QAED,IAAI,IAAI,CAAC,qBAAqB,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;AAC3D,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,EAAE,CAAA;SAC1B;aAAM;AACL,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC;SAC3C;AACD,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;AAC3B,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,QAAQ,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,KAAI;YACnC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;AACpC,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1C,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE;AACnC,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SACxC;AACD,QAAA,QAAQ,CAAC,aAAa,GAAG,CAAC,SAAS,KAAI;AACrC,YAAA,IAAI,aAAa,CAAC;YAClB,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE;AACpC,gBAAA,SAAS,CAAC,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC;aACrC;YACD,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,SAAS,KAAI;gBACxC,MAAM,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC;AACtD,gBAAA,IACE,SAAS,CAAC,QAAQ,KAAK,QAAQ,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;AAChE,oBAAA,SAAS,CAAC,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,EACxD;oBACA,aAAa,GAAG,SAAS,CAAC;iBAC3B;AACH,aAAC,CAAC,CAAC;YAEH,OAAO,aAAa,GAAG,aAAa,GAAG,IAAI,CAAC;AAC9C,SAAC,CAAC;AAEF,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,QAAQ,EAAE;;YAE/D,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE;AACvC,gBAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;aAC/E;SACF;KACF;AAED,IAAA,YAAY,CAAC,UAAkB,EAAA;AAC7B,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,KAAK,UAAU,CAAC,CAAC;KAC7F;IAED,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,eAAe,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;AACvB,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE;YAC3D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAC/B;AACD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;KAClD;IAED,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,QAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC7B,YAAY,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACnD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAC1D,gBAAA,YAAY,EAAE,IAAI;AAClB,gBAAA,KAAK,EAAE,KAAK;AACZ,gBAAA,QAAQ,EAAE,QAAQ;AAClB,gBAAA,SAAS,EAAE,KAAK;AAChB,gBAAA,IAAI,EAAE,EAAE,aAAa,EAAE,EAAE,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,EAAE,qBAAqB,EAAE,IAAI,CAAC,qBAAqB,EAAE,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,EAAE,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,qBAAqB,EAAE,IAAI,CAAC,qBAAqB,EAAE,YAAY,EAAE,IAAI,CAAC,cAAc,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,gBAAgB,EAAE,IAAI,CAAC,aAAa,EAAE;aAC1lC,CAAC;AACC,iBAAA,WAAW,EAAE,CAAC,SAAS,CAAC,QAAQ,IAAG;AAClC,gBAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;AACvB,gBAAA,IAAI,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE;AAC1B,oBAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;AACvB,oBAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACtB,wBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;qBAC/B;AACD,oBAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACtB,wBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;qBAC/B;AACD,oBAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACnB,wBAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;qBAC5B;AACD,oBAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AACzB,wBAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;qBAClC;AACD,oBAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACvB,wBAAA,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;qBAChC;AACD,oBAAA,MAAM,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;oBAC9F,YAAY,CAAC,OAAO,CAAC,CAAA,iBAAA,EAAoB,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;oBACrH,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC;AAC1D,oBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,oBAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC;iBAC7E;AACH,aAAC,CAAC,CAAC;SACN;aAAM;YACL,IAAI,CAAC,eAAe,EAAE,CAAC;AACvB,YAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;AACvB,YAAA,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE;gBAC3D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aAC/B;AACD,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAClD;KAEF;AAED,IAAA,gBAAgB,CAAC,gBAAgB,EAAA;AAC/B,QAAA,OAAO,gBAAgB,CAAC,GAAG,CAAC,QAAQ,IAAG;YACrC,OAAO;AACL,gBAAA,GAAG,QAAQ;gBACX,YAAY,EAAE,IAAI,CAAC,cAAc,GAAG,IAAI,GAAG,KAAK;aACjD,CAAA;AACH,SAAC,CAAC,CAAA;KACH;IACD,eAAe,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE;AAC9D,YAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;SACxB;KACF;AAED,IAAA,SAAS,CAAC,KAAK,EAAA;QACb,IAAI,OAAO,GAAG,+CAA+C,CAAC;QAC9D,IAAI,UAAU,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;YACtE,OAAO,GAAG,qCAAqC,CAAC;YAChD,UAAU,GAAG,KAAK,CAAC;SACpB;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;AAC9D,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,QAAQ,EAAE,OAAO;YACjB,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE;AACrD,SAAA,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,IAAG;YACzC,IAAI,MAAM,EAAE;AACV,gBAAA,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,qBAAqB,EAAE;AACrE,oBAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;iBAC3B;;AAED,gBAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAC/B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACtC,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aAClD;AACH,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,SAAS,CAAC,KAAuB,EAAA;QAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/E,QAAA,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;QACnE,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;KAClD;AAED,IAAA,QAAQ,CAAC,KAAgB,EAAA;AACvB,QAAA,MAAM,UAAU,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,UAAU,EAAE;YAC7C,IAAI,CAAC,UAAU,EAAE,CAAC;AAClB,YAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,KAAK,CAAC;AAChC,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SAC/B;QAED,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE;AACjD,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;SACtE;AACD,QAAA,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KACvB;+GAtXU,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAkB,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,EApK1B,QAAA,EAAA,qBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8JT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,wUAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAhB,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,GAAA,CAAA,QAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,GAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,GAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,GAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,GAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,GAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,GAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,GAAA,CAAA,OAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,GAAA,CAAA,YAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,GAAA,CAAA,MAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,kDAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,IAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,4BAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,+BAAA,EAAA,2BAAA,EAAA,6BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,iBAAA,EAAA,0BAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAO,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAMU,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAtKrC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EACrB,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8JT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,wUAAA,CAAA,EAAA,CAAA;;AA8XH,iBAAiB,CAAC,iBAAiB,GAAG,yBAAyB;;AChiB/D,IAAK,YAMJ,CAAA;AAND,CAAA,UAAK,YAAY,EAAA;AACf,IAAA,YAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,SAAkB,CAAA;AAClB,IAAA,YAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,YAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACjB,CAAC,EANI,YAAY,KAAZ,YAAY,GAMhB,EAAA,CAAA,CAAA,CAAA;AAAA,CAAC;AAEF;AACA,MAAM,QAAQ,GAAG,UAAS,GAAG,EAAA;IAC3B,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,CAAC,GAAG,CAAC,CAAC;AACV,IAAA,IAAI,GAAG,CAAC;IACR,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC7B,IAAA,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;AACpB,QAAA,OAAO,IAAI,CAAC;KACb;AACD,IAAA,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/B,QAAA,GAAG,GAAK,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC1B,QAAA,IAAI,GAAI,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC;AACnC,QAAA,IAAI,IAAI,CAAC,CAAC;KACX;AACD,IAAA,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AACF;AAEA;AACA;AACA,iBAAiB,CAAC,SAAS,CAAC,mBAAmB,GAAG,YAAA;AAChD,IAAA,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,iBAAiB,CAAC,SAAS,CAAC,QAAQ,CAAC;AACtD,iBAAiB,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAS,IAAI,EAAE,OAAO,EAAE,KAAA,GAAa,EAAE,EAAA;AAC5E,IAAA,IAAI,KAAK,CAAC,QAAQ,EAAE;AAClB,QAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;KAClD;SAAM;AACL,QAAA,OAAO,IAAI,CAAC;KACb;AACH,CAAC,CAAC;AACF;AAEA,MAAM,wBAAwB,GAAG;AAC/B,IAAA,QAAQ,CAAE,iBAAyB,CAAC,qBAAqB,CAAC;AAC1D,IAAA,QAAQ,CAAC,CAAA;;;;;SAKF,CAAC;CACT,CAAC;AAEF,MAAM,qBAAqB,GAAG;AAC5B,IAAA,QAAQ,CAAE,iBAAyB,CAAC,kBAAkB,CAAC;AACvD,IAAA,QAAQ,CAAC,CAAA;;;;;;;;;;;;;;OAcJ,CAAC;CACP,CAAC;AAOI,MAAO,yBAA0B,SAAQ,uBAAuB,CAAA;AALtE,IAAA,WAAA,GAAA;;QAaS,IAAO,CAAA,OAAA,GAAQ,EAAE,CAAC;QAClB,IAAQ,CAAA,QAAA,GAAG,CAAC,CAAC;QACb,IAAK,CAAA,KAAA,GAAG,IAAI,CAAC;QACb,IAAS,CAAA,SAAA,GAAG,YAAY,CAAC;AA+JjC,KAAA;AA7JC,IAAA,cAAc,CAAC,OAAO,EAAA;QACpB,OAAO,CAAA;;;4EAGiE,OAAO,CAAA;;;gBAGnE,CAAC;KAChB;AAEC,IAAA,QAAQ,CAAC,KAAK,EAAA;AACZ,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,OAAO;SACR;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;AACnC,QAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACjB,OAAO;SACR;AACD,QAAA,MAAM,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,EAAC,IAAI,EAAC,GAAG,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC;AACjD,QAAA,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CACtC,KAAK,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAC3D,CAAC;QAEF,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SACpB;aAAM;AACL,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;SACnB;KACF;AAED,IAAA,WAAW,CAAC,QAAQ,EAAA;AAClB,QAAA,IACE,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM;aAClC,wBAAwB,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EACxF;AACA,YAAA,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC;SACpF;AAED,QAAA,IAAI,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG;aACjC,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAClF;AACA,YAAA,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,8CAA8C,CAAC,CAAC;SACxG;AAED,QAAA,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AACjE,YAAA,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACvD,gBAAA,OAAO,KAAK,CAAC;aACd;YAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YAC9B,OAAO,IAAI,CAAC,GAAG,CAAC;AAClB,SAAC,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AAC1B,QAAA,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC;AAC3C,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;AACpH,QAAA,IAAI,QAAQ,CAAC,SAAS,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE;AACvE,YAAA,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE;AACvE,gBAAA,UAAU,EAAE,QAAQ,CAAC,SAAS,CAAC,UAAU;AACzC,gBAAA,KAAK,EAAE,SAAS;gBAChB,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACxB,aAAA,CAAC,CAAC;SACJ;AACD,QAAA,IAAI,QAAQ,CAAC,SAAS,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE;AACvE,YAAA,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE;AACvE,gBAAA,UAAU,EAAE,QAAQ,CAAC,SAAS,CAAC,UAAU;AACzC,gBAAA,KAAK,EAAE,SAAS;gBAChB,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACxB,aAAA,CAAC,CAAC;SACJ;QACD,UAAU,CAAC,MAAK;YACd,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACrD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SACtD,EAAE,CAAC,CAAC,CAAC;AACN,QAAA,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;KAC7B;IAED,UAAU,GAAA;QACR,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;KACpC;IAED,OAAO,CAAC,GAAG,EAAE,KAAK,EAAA;AAChB,QAAA,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;QACtB,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QAExC,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,OAAO,EAAE;YACtC,OAAO;SACR;AACD,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;AACnC,QAAA,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;YAChB,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,GAAG,EAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAC,CAAC;SAC/E;KACF;AAED;;;;;AAKG;AACH,IAAA,iBAAiB,CAAC,UAAsB,EAAE,KAAK,EAAE,KAAK,EAAA;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC;AAClB,QAAA,MAAM,OAAO,GAAQ,EAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAC,CAAC;QACxD,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE;YACxC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE;gBAChG,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE;AACzC,gBAAA,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;AACxB,gBAAA,QAAQ,EAAE,KAAK;gBACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvB,gBAAA,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU;AAC9C,gBAAA,OAAO,EAAE,SAAS,OAAO,CAAC,SAAS,EAAE,IAAI,EAAA;oBACvC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;AAC1B,wBAAA,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,GAAGC,YAAU,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;qBACpE;oBACD,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;iBACzE;AACF,aAAA,CAAC,CAAC,CAAC;SACL;KACF;AAED;;;;;AAKG;IACH,OAAO,CAAC,GAAG,EAAE,KAAK,EAAA;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;AACnC,QAAA,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;AAChB,YAAA,MAAM,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;YACrC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9E,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;AACxC,YAAA,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;AACvB,gBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;aAChD;SACF;KACF;AAED,IAAA,SAAS,CAAC,KAAK,EAAA;AACb,QAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/B,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;KACnB;IAED,cAAc,CAAC,OAAmB,EAAE,QAAQ,EAAA;QAC1C,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;YACtC,OAAO;SACR;AACD,QAAA,OAAO,CAAC,aAAa,CAAC,SAAS,GAAG,QAAQ,CAAC;KAC5C;IAED,eAAe,GAAA;QACb,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAA2B,KAAI;YACjE,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,IAAI,CAAC,OAAO,CAAC,CAAC,GAAe,EAAE,KAAK,KAAK,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;AACzF,SAAC,CAAC,CAAC;KACJ;+GAzKU,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,kaC1FtC,ssEAmDA,EAAA,MAAA,EAAA,CAAA,kDAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDuCa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,ssEAAA,EAAA,MAAA,EAAA,CAAA,kDAAA,CAAA,EAAA,CAAA;8BAKV,aAAa,EAAA,CAAA;sBAAjC,SAAS;uBAAC,QAAQ,CAAA;gBACE,aAAa,EAAA,CAAA;sBAAjC,SAAS;uBAAC,QAAQ,CAAA;gBACG,WAAW,EAAA,CAAA;sBAAhC,YAAY;uBAAC,MAAM,CAAA;gBACG,KAAK,EAAA,CAAA;sBAA3B,YAAY;uBAAC,OAAO,CAAA;;AAuKvB,iBAAiB,CAAC,iBAAiB,GAAG,yBAAyB;;AE7NzD,MAAO,sBAAuB,SAAQ,uBAAuB,CAAA;AAEjE,IAAA,WAAW,CAAC,QAAa,EAAA;AACvB,QAAA,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC5B,QAAA,QAAQ,CAAC,aAAa,GAAG,CAAC,SAAS,KAAI;AACrC,YAAA,OAAO,IAAI,CAAC,cAAc;gBACxB,IAAI,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,WAAW,CAAC;AACnG,gBAAA,IAAI,CAAC;AACT,SAAC,CAAC;KACH;IAED,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,OAAO;SACR;QACD,MAAM,EAAC,SAAS,EAAE,aAAa,EAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC3D,OAAO;AACL,YAAA,cAAc,EAAE,SAAS;YACzB,IAAI,aAAa,IAAI,EAAC,CAAC,aAAa,GAAG,IAAI,EAAC,CAAC;SAC9C,CAAA;KACF;+GApBU,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EAjCvB,QAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,qSAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAEU,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBApClC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAElB,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,qSAAA,CAAA,EAAA,CAAA;;AAwBH,cAAc,CAAC,iBAAiB,GAAG,sBAAsB;;ACrCnD,MAAO,uBAAwB,SAAQ,uBAAuB,CAAA;AAnBpE,IAAA,WAAA,GAAA;;QAqBS,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC;QACf,IAAc,CAAA,cAAA,GAAG,CAAC,CAAC;AAkD5B,KAAA;AAhDC,IAAA,WAAW,CAAC,QAAa,EAAA;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,CACd,QAAQ,CAAC,OAAO;YAChB,QAAQ,CAAC,OAAO,CAAC,kBAAkB;AACnC,YAAA,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC,SAAS,IAC3C,KAAK,GAAG,IAAI,CAAC;AAEjB,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC3B,QAAA,QAAQ,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AAEtD,QAAA,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;KAC7B;AAED,IAAA,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAA;QAClC,IAAI,IAAI,CAAC,cAAc,KAAK,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE;YACjD,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,KAAI;AACzC,gBAAA,IAAI,CAAC,aAAa,GAAG,MAAK;AACxB,oBAAA,OAAO,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;AACrE,iBAAC,CAAC;AACJ,aAAC,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;SAC7C;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;KACtB;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;KAC1D;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;KAC9D;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;KACxB;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;AACzD,YAAA,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,KAAI;gBACxE,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACvC,aAAC,EAAE,EAAE,CAAC,CAAC,CAAC;SACT;KACF;+GApDU,uBAAuB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,EAbxB,QAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;AAWkB,6BAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,gDAAA,EAAA,yDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA3B,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,yEAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,OAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,mBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,EAAA,oBAAA,EAAA,sBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAEjB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAnBnC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EAKnB,QAAA,EAAA,CAAA;;;;;;;;;;;AAWkB,6BAAA,CAAA,EAAA,MAAA,EAAA,CAAA,gDAAA,EAAA,yDAAA,CAAA,EAAA,CAAA;8BAGU,OAAO,EAAA,CAAA;sBAA5C,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,SAAS,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,CAAA;;AAqDtC,MAAM,CAAC,iBAAiB,GAAG,uBAAuB,CAAC;AACnD,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC;;AC/ErC,MAAM0B,YAAU,GAAG,OAAO,CAAC,gCAAgC,CAAC,CAAC,OAAO,CAAC;AAqCrE;AACA,MAAM,UAAU,GAAQ;AACtB,IAAA,SAAS,EAAE,kBAAkB;AAC7B,IAAA,QAAQ,EAAE,iBAAiB;AAC3B,IAAA,GAAG,EAAE,YAAY;AACjB,IAAA,QAAQ,EAAE,iBAAiB;AAC3B,IAAA,KAAK,EAAE,cAAc;AACrB,IAAA,WAAW,EAAE,oBAAoB;AACjC,IAAA,MAAM,EAAE,eAAe;AACvB,IAAA,QAAQ,EAAE,iBAAiB;AAC3B,IAAA,GAAG,EAAE,YAAY;AACjB,IAAA,MAAM,EAAE,eAAe;AACvB,IAAA,WAAW,EAAE,aAAa;AAC1B,IAAA,IAAI,EAAE,aAAa;AACnB,IAAA,QAAQ,EAAE,iBAAiB;AAC3B,IAAA,MAAM,EAAE,eAAe;AACvB,IAAA,QAAQ,EAAE,iBAAiB;AAC3B,IAAA,KAAK,EAAE,cAAc;AACrB,IAAA,OAAO,EAAE,gBAAgB;AACzB,IAAA,IAAI,EAAE,aAAa;AACnB,IAAA,KAAK,EAAE,cAAc;AACrB,IAAA,IAAI,EAAE,aAAa;AACnB,IAAA,QAAQ,EAAE,iBAAiB;AAC3B,IAAA,OAAO,EAAE,gBAAgB;AACzB,IAAA,SAAS,EAAE,kBAAkB;AAC7B,IAAA,MAAM,EAAE,eAAe;AACvB,IAAA,WAAW,EAAE,oBAAoB;AACjC,IAAA,KAAK,EAAE,cAAc;AACrB,IAAA,MAAM,EAAE,eAAe;AACvB,IAAA,SAAS,EAAE,kBAAkB;AAC7B,IAAA,QAAQ,EAAE,iBAAiB;AAC3B,IAAA,QAAQ,EAAE,iBAAiB;AAC3B,IAAA,OAAO,EAAE7B,iBAAe;AACxB,IAAA,IAAI,EAAE,aAAa;AACnB,IAAA,MAAM,EAAE,MAAM;CACf,CAAC;SAEc,aAAa,GAAA;IAC3B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AAC1C,QAAA,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;AACnC,QAAA,SAAS,CAAC,SAAS,CAAC,MAAM,IAAI,YAAA;AAC5B,YAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,gBAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,CAAC;aAClD;YAED,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAC/F,IAAI,CAAC,aAAa,EAAE;gBAClB,OAAO;aACR;AACD,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,uBAAuB,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;YAC/F,MAAM,YAAY,GAAG,aAAa,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AAC3D,YAAA,YAAY,CAAC,QAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACnD,SAAC,CAAC,CAAC;AAEH,QAAA,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC;QAC9C,SAAS,CAAC,SAAS,CAAC,QAAQ,IAAI,UAAU,GAAG,IAAI,EAAA;AAC/C,YAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBAC1B,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;aAC1C;YACD,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;AACtC,SAAC,CAAC,CAAC;AAEH,QAAA,UAAU,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;KAC9B;AAED,IAAA,OAAO,UAAU,CAAC;AACpB,CAAC;AAEe,SAAA,iBAAiB,CAAC,IAAY,EAAE,SAAc,EAAA;IAE5D,MAAM,cAAe,SAAQ8B,iBAAS,CAAA;AAAG,KAAA;IAAA,CAAC;IAC1C,MAAM,UAAU,GAAI,cAAsB,CAAC;AAE3C,IAAA,UAAU,CAAC,iBAAiB,GAAG,SAAS,CAAC;AACzC,IAAA,UAAU,CAAC,SAAS,CAAC,MAAM,IAAI,YAAA;AAC7B,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,OAAO,IAAI,CAAC,iBAAiB,CAAC;SAC/B;QACD,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC/F,IAAI,CAAC,aAAa,EAAE;YAClB,OAAO;SACR;AACD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,uBAAuB,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;QAChG,MAAM,YAAY,GAAG,aAAa,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AAC3D,QAAA,YAAY,CAAC,QAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACnD,KAAC,CAAC,CAAC;AAEH,IAAA,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC;IAC/C,UAAU,CAAC,SAAS,CAAC,QAAQ,IAAI,UAAU,GAAG,IAAI,EAAA;AAChD,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SAC1C;QACD,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;AACtC,KAAC,CAAC,CAAC;AAEH,IAAAD,YAAU,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AAE5C;;ACtIM,MAAA,UAAU,GAAG,OAAO,CAAC,gCAAgC,CAAC,CAAC,QAAQ;AAG/D,MAAA,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,QAAQ;AAC5C,MAAA,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,QAAQ;AACxC,MAAA,KAAK,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,QAAQ;AAEhD,SAAS,YAAY,GAAA;AACjB,IAAA,UAAU,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC,CAAC;AAC1C,IAAA,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;AAC/B,IAAA,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC;AAC1B;;ACiCM,MAAO,eAAgB,SAAQ,mBAAmB,CAAA;AAGtD,IAAA,WAAA,CACU,QAAkC,EAClC,EAAqB,EACtB,MAAc,EAAA;AAErB,QAAA,KAAK,CAAC,MAAM,EAAE,IAAW,CAAC,CAAC;QAJnB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAA0B;QAClC,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;QACtB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;KAGtB;IAED,kBAAkB,GAAA;AAChB,QAAA,MAAM,eAAe,GAAG,KAAK,CAAC,kBAAkB,EAAE,CAAC;AACnD,QAAA,OAAO,EAAC,GAAG,eAAe,EAAE,cAAc,EAAEE,KAAG,CAAC,eAAe,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,CAAA;KAC3F;IAED,cAAc,GAAA;AACZ,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC1C,QAAA,MAAM,KAAK,GAAG;YACZ,cAAc,EAAE,OAAO,CAAC,cAAc;SACvC,CAAC;AACF,QAAA,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;AACrC,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC;QAC7D,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;YAC3C,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;SAC3C;AACD,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AAC1D,aAAA,IAAI,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC5C,KAAK,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,CACjC,CAAC;QACF,OAAO,IAAI,CAAC,QAAQ,CAAC;KACtB;+GApCU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAf,eAAe,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAEgB,gBAAgB,EAjBhD,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;AAaT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,mVAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA7B,GAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAEU,eAAe,EAAA,UAAA,EAAA,CAAA;kBAzC3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAyBZ,QAAA,EAAA,CAAA;;;;;;;;;;;;;AAaT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,mVAAA,CAAA,EAAA,CAAA;kJAGQ,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACuD,mBAAmB,EAAA,CAAA;sBAA/E,SAAS;uBAAC,QAAQ,EAAE,EAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAC,CAAA;;;MCyKhD,4BAA4B,CAAA;AACvC,IAAA,WAAA,GAAA;AACE,QAAA,YAAY,EAAE,CAAC;KAChB;+GAHU,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,iBAxGrC,+BAA+B;YAC/B,eAAe;YACf,uBAAuB;YACvB,0BAA0B;YAC1B,yBAAyB;YACzB,oBAAoB;YACpB,sBAAsB;YACtB,4BAA4B;YAC5B,uBAAuB;YACvB,yBAAyB;YACzB,oBAAoB;YACpB,uBAAuB;YACvB,qBAAqB;YACrB,qBAAqB;YACrB,yBAAyB;YACzB,wBAAwB;YACxB,0BAA0B;YAC1B,yBAAyB;YACzB,yBAAyB;YACzB,sBAAsB;YACtB,yBAAyB;YACzB,yBAAyB;YACzB,wBAAwB;YACxB,0BAA0B;YAC1B,uBAAuB;YACvB,4BAA4B;YAC5B,sBAAsB;YACtB,uBAAuB;YACvB,qBAAqB;YACrB,sBAAsB;YACtB,qBAAqB;YACrB,qBAAqB;YACrB,uBAAuB;YACvB,iBAAiB;YACjB,uBAAuB;YACvB,qBAAqB;YACrB,yBAAyB;YACzB,wBAAwB;YACxB,cAAc;YACd,aAAa;YACb,2BAA2B;AAC3B,YAAA,sBAAsB,aAGtB,YAAY;YACZ,WAAW;YACX,mBAAmB;YACnB,cAAc;YACd,eAAe;YACf,kBAAkB;YAClB,iBAAiB;YACjB,cAAc;YACd,eAAe;YACf,aAAa;YACb,cAAc;YACd,kBAAkB;YAClB,aAAa;YACb,cAAc;YACd,mBAAmB;YACnB,mBAAmB;YACnB,wBAAwB;YACxB,gBAAgB;YAChB,aAAa;YACb,gBAAgB;YAChB,aAAa;YACb,cAAc;YACd,eAAe;YACf,wBAAwB;YACxB,eAAe;AACf,YAAA,qBAAqB,aAGrB,qBAAqB;YACrB,+BAA+B;YAC/B,eAAe;YACf,cAAc;YACd,kBAAkB;YAClB,iBAAiB;YACjB,cAAc;YACd,eAAe;YACf,aAAa;YACb,cAAc;YACd,kBAAkB;YAClB,eAAe;YACf,aAAa;YACb,aAAa;YACb,cAAc;YACd,mBAAmB;YACnB,mBAAmB;YACnB,wBAAwB;YACxB,gBAAgB;YAChB,aAAa;YACb,cAAc;YACd,gBAAgB;YAChB,eAAe;YACf,wBAAwB;YACxB,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;AAQN,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,aAN5B,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,CAAC;AACrD,YAAA;AACE,gBAAA,OAAO,EAAE,8BAA8B;AACvC,gBAAA,QAAQ,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE;AACpC,aAAA,CAAC,YA1DF,YAAY;YACZ,WAAW;YACX,mBAAmB;YACnB,cAAc;YACd,eAAe;YACf,kBAAkB;YAClB,iBAAiB;YACjB,cAAc;YACd,eAAe;YACf,aAAa;YACb,cAAc;YACd,kBAAkB;YAClB,aAAa;YACb,cAAc;YACd,mBAAmB;YACnB,mBAAmB;YACnB,wBAAwB;YACxB,gBAAgB;YAChB,aAAa;YACb,gBAAgB;YAChB,aAAa;YACb,cAAc;YACd,eAAe;YACf,wBAAwB;YACxB,eAAe;AACf,YAAA,qBAAqB,EAGrB,qBAAqB;YAGrB,cAAc;YACd,kBAAkB;YAClB,iBAAiB;YACjB,cAAc;YACd,eAAe;YACf,aAAa;YACb,cAAc;YACd,kBAAkB;YAClB,eAAe;YACf,aAAa;YACb,aAAa;YACb,cAAc;YACd,mBAAmB;YACnB,mBAAmB;YACnB,wBAAwB;YACxB,gBAAgB;YAChB,aAAa;YACb,cAAc;YACd,gBAAgB;YAChB,eAAe;YACf,wBAAwB;YACxB,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAQN,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBA1GxC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,+BAA+B;wBAC/B,eAAe;wBACf,uBAAuB;wBACvB,0BAA0B;wBAC1B,yBAAyB;wBACzB,oBAAoB;wBACpB,sBAAsB;wBACtB,4BAA4B;wBAC5B,uBAAuB;wBACvB,yBAAyB;wBACzB,oBAAoB;wBACpB,uBAAuB;wBACvB,qBAAqB;wBACrB,qBAAqB;wBACrB,yBAAyB;wBACzB,wBAAwB;wBACxB,0BAA0B;wBAC1B,yBAAyB;wBACzB,yBAAyB;wBACzB,sBAAsB;wBACtB,yBAAyB;wBACzB,yBAAyB;wBACzB,wBAAwB;wBACxB,0BAA0B;wBAC1B,uBAAuB;wBACvB,4BAA4B;wBAC5B,sBAAsB;wBACtB,uBAAuB;wBACvB,qBAAqB;wBACrB,sBAAsB;wBACtB,qBAAqB;wBACrB,qBAAqB;wBACrB,uBAAuB;wBACvB,iBAAiB;wBACjB,uBAAuB;wBACvB,qBAAqB;wBACrB,yBAAyB;wBACzB,wBAAwB;wBACxB,cAAc;wBACd,aAAa;wBACb,2BAA2B;wBAC3B,sBAAsB;AACvB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,mBAAmB;wBACnB,cAAc;wBACd,eAAe;wBACf,kBAAkB;wBAClB,iBAAiB;wBACjB,cAAc;wBACd,eAAe;wBACf,aAAa;wBACb,cAAc;wBACd,kBAAkB;wBAClB,aAAa;wBACb,cAAc;wBACd,mBAAmB;wBACnB,mBAAmB;wBACnB,wBAAwB;wBACxB,gBAAgB;wBAChB,aAAa;wBACb,gBAAgB;wBAChB,aAAa;wBACb,cAAc;wBACd,eAAe;wBACf,wBAAwB;wBACxB,eAAe;wBACf,qBAAqB;AACtB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,qBAAqB;wBACrB,+BAA+B;wBAC/B,eAAe;wBACf,cAAc;wBACd,kBAAkB;wBAClB,iBAAiB;wBACjB,cAAc;wBACd,eAAe;wBACf,aAAa;wBACb,cAAc;wBACd,kBAAkB;wBAClB,eAAe;wBACf,aAAa;wBACb,aAAa;wBACb,cAAc;wBACd,mBAAmB;wBACnB,mBAAmB;wBACnB,wBAAwB;wBACxB,gBAAgB;wBAChB,aAAa;wBACb,cAAc;wBACd,gBAAgB;wBAChB,eAAe;wBACf,wBAAwB;wBACxB,eAAe;AAChB,qBAAA;AACD,oBAAA,SAAS,EAAE,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,CAAC;AACrD,wBAAA;AACE,4BAAA,OAAO,EAAE,8BAA8B;AACvC,4BAAA,QAAQ,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE;yBACpC,CAAC;AACL,iBAAA,CAAA;;;ACvND;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"version":3,"file":"ngx-render-material-forms.mjs","sources":["../../../projects/ngx-render-material-forms/src/lib/ngx-render-material-forms.service.ts","../../../projects/ngx-render-material-forms/src/lib/ngx-render-material-forms.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/Webform.ts","../../../projects/ngx-render-material-forms/src/lib/components/Base.ts","../../../projects/ngx-render-material-forms/src/lib/FormioControl.ts","../../../projects/ngx-render-material-forms/src/lib/components/MaterialComponent.ts","../../../projects/ngx-render-material-forms/src/lib/const/LabelPositions.ts","../../../projects/ngx-render-material-forms/src/lib/components/label/label.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/label/label.component.html","../../../projects/ngx-render-material-forms/src/lib/components/formio-form-field/formio-form-field.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/formio-form-field/formio-form-field.component.html","../../../projects/ngx-render-material-forms/src/lib/components/textfield/textfield.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/password/password.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/email/email.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/url/url.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/phonenumber/phonenumber.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/number/number.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/currency/currency.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/day/day.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/hidden/hidden.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/html/html.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/tags/tags.component.ts","../../../projects/ngx-render-material-forms/src/lib/const/ButtonsThemes.ts","../../../projects/ngx-render-material-forms/src/lib/components/button/button.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/button/button.component.html","../../../projects/ngx-render-material-forms/src/lib/components/textarea/textarea.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/MaterialNestedComponent.ts","../../../projects/ngx-render-material-forms/src/lib/components/panel/panel.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/columns/columns.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/container/container.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/tabs/tabs.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/time/time.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/calendar/calendar.component.ts","../../../projects/ngx-render-material-forms/src/lib/directives/mask.directive.ts","../../../projects/ngx-render-material-forms/src/lib/components/date/date.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/checkbox/checkbox.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/fieldset/fieldset.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/content/content.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/signature/signature.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/survey/survey.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/radio/radio.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/selectboxes/selectboxes.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/common.service.ts","../../../projects/ngx-render-material-forms/src/lib/components/select/select.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/well/well.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/confirmation-dialog/confirmation-dialog.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/confirmation-dialog/confirmation-dialog.component.html","../../../projects/ngx-render-material-forms/src/lib/components/add-on-products/add-on-products.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/add-on-products/add-on-products.component.html","../../../projects/ngx-render-material-forms/src/lib/components/datagrid/datagrid.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/editgrid/editgrid.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/editgrid/editgrid.component.html","../../../projects/ngx-render-material-forms/src/lib/components/table/table.component.ts","../../../projects/ngx-render-material-forms/src/lib/components/formio.wizard.ts","../../../projects/ngx-render-material-forms/src/lib/components/index.ts","../../../projects/ngx-render-material-forms/src/lib/renderer.ts","../../../projects/ngx-render-material-forms/src/lib/formio.component.ts","../../../projects/ngx-render-material-forms/src/lib/ngx-render-material-forms.module.ts","../../../projects/ngx-render-material-forms/src/public-api.ts","../../../projects/ngx-render-material-forms/src/ngx-render-material-forms.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NgxRenderMaterialFormsService {\r\n\r\n constructor() { }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'NgxMat-NgxRenderMaterialForms',\r\n template: `\r\n <p>\r\n ngx-render-material-forms works!\r\n </p>\r\n `,\r\n styles: [\r\n ]\r\n})\r\nexport class NgxRenderMaterialFormsComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import Webform from 'formiojs/Webform.js';\r\nWebform.prototype.redraw = function() {\r\n return this.render();\r\n};\r\nWebform.prototype.clear = function() {\r\n const viewContainer = this.viewContainer ? this.viewContainer() : null;\r\n if (viewContainer) {\r\n viewContainer.clear(); \r\n }\r\n};\r\nWebform.prototype.render = function() {\r\n if (this.viewContainer && this.viewContainer()) {\r\n this.clear();\r\n this.renderComponents();\r\n this.setValue(this._submission);\r\n }\r\n};\r\n","import FormioComponent from 'formiojs/components/_classes/component/Component.js';\r\n\r\nexport default (() => {\r\n const beforeSubmit = FormioComponent.prototype.beforeSubmit;\r\n FormioComponent.prototype.beforeSubmit = function(...args) {\r\n if (this.materialComponent) {\r\n this.materialComponent.beforeSubmit();\r\n }\r\n return beforeSubmit.call(this, ...args);\r\n };\r\n\r\n Object.defineProperty(FormioComponent.prototype, 'disabled', {\r\n set(disabled) {\r\n this._disabled = disabled;\r\n if (this.materialComponent) {\r\n this.materialComponent.setDisabled(disabled);\r\n }\r\n }\r\n });\r\n\r\n Object.defineProperty(FormioComponent.prototype, 'visible', {\r\n set(visible) {\r\n if (this._visible !== visible) {\r\n this._visible = visible;\r\n this.clearOnHide();\r\n this.redraw();\r\n }\r\n if (this.materialComponent) {\r\n this.materialComponent.setVisible(visible);\r\n }\r\n }\r\n });\r\n return FormioComponent;\r\n})();\r\n\r\n","import { FormControl, ValidationErrors } from '@angular/forms';\r\nimport unescape from 'lodash/unescape';\r\n\r\n// @dynamic\r\nexport class FormioControl extends FormControl {\r\n public instance: any;\r\n\r\n static customValidator(control: FormioControl): Promise<ValidationErrors> {\r\n return new Promise((resolve) => {\r\n if (control.instance) {\r\n control.instance.validateResolve = resolve;\r\n } else {\r\n resolve(null);\r\n }\r\n });\r\n }\r\n\r\n constructor(...args) {\r\n super(args[0], [], [FormioControl.customValidator.bind(FormioControl)]);\r\n }\r\n\r\n setInstance(instance: any) {\r\n this.instance = instance;\r\n const setCustomValidity = instance.setCustomValidity;\r\n instance.setCustomValidity = (message: any, dirty, external, isWarning = false) => {\r\n let decodedMessage = message;\r\n if (Array.isArray(message)) {\r\n decodedMessage = message.map(msg => Object.assign(msg, { message: unescape(msg.message) }));\r\n }\r\n else if (message) {\r\n decodedMessage = unescape(message);\r\n }\r\n\r\n setCustomValidity.call(instance, decodedMessage, dirty, external, isWarning);\r\n if (instance.validateResolve) {\r\n instance.validateResolve(decodedMessage ? {custom: true} : null);\r\n }\r\n };\r\n }\r\n}\r\n","import {Component, Input, ViewChild, ElementRef, ChangeDetectorRef, AfterViewInit, OnInit} from '@angular/core';\r\nimport FormioComponent from './Base';\r\nimport Validator from 'formiojs/validator/Validator.js';\r\nimport { FormioControl } from '../FormioControl';\r\nimport get from 'lodash/get';\r\n\r\n@Component({\r\n selector: 'mat-formio-comp',\r\n template: '<mat-card appearance=\"outlined\">Unknown Component: {{ instance.component.type }}</mat-card>'\r\n})\r\nexport class MaterialComponent implements AfterViewInit, OnInit {\r\n @Input() instance: any;\r\n @ViewChild('input') input: ElementRef;\r\n @Input() control: FormioControl = new FormioControl();\r\n constructor(public element: ElementRef, public ref: ChangeDetectorRef) {}\r\n\r\n setInstance(instance: any) {\r\n this.control.setInstance(instance);\r\n instance.materialComponent = this;\r\n this.instance = instance;\r\n this.instance.disabled = this.instance.shouldDisabled;\r\n this.setVisible(this.instance.visible);\r\n this.renderComponents();\r\n }\r\n\r\n ngOnInit() {\r\n if (this.instance) {\r\n if (this.shouldValidateOnInit()) {\r\n this.storeFormData();\r\n this.validateOnInit();\r\n }\r\n this.instance.component.defaultValue ? this.setValue(this.instance.component.defaultValue) : '';\r\n }\r\n }\r\n\r\n validateOnInit() {\r\n const {key} = this.instance.component;\r\n const validationValue = this.getFormValue(this.instance.path);\r\n\r\n if (validationValue === null) {\r\n return;\r\n }\r\n\r\n this.instance.setPristine(false);\r\n\r\n const validationResult = Validator.checkComponent(\r\n this.instance,\r\n {[key]: validationValue},\r\n {[key]: validationValue}\r\n );\r\n\r\n if (validationResult.length) {\r\n this.instance.setCustomValidity(validationResult, false);\r\n if (!!validationValue) {\r\n this.control.markAsTouched();\r\n }\r\n this.ref.detectChanges();\r\n }\r\n }\r\n\r\n storeFormData() {\r\n if (this.instance.parent && this.instance.parent.submission && this.instance.parent.submission.data) {\r\n sessionStorage.setItem('formData', JSON.stringify(this.instance.parent.submission.data));\r\n }\r\n }\r\n\r\n getFormValue(path) {\r\n const formData = JSON.parse(sessionStorage.getItem('formData'));\r\n\r\n if (!formData) {\r\n return null;\r\n }\r\n\r\n return get(formData, path);\r\n }\r\n\r\n renderComponents() {}\r\n\r\n onChange(keepInputRaw?: boolean) {\r\n let value = this.getValue();\r\n\r\n if (value === undefined || value === null) {\r\n value = this.instance.emptyValue;\r\n }\r\n\r\n if (this.input && this.input.nativeElement.mask && value && !keepInputRaw) {\r\n this.input.nativeElement.mask.textMaskInputElement.update(value);\r\n this.control.setValue(this.input.nativeElement.value);\r\n value = this.getValue();\r\n }\r\n this.instance.updateValue(value, {modified: true});\r\n }\r\n\r\n getValue() {\r\n return this.control.value;\r\n }\r\n\r\n setValue(value) {\r\n this.control.setValue(value);\r\n }\r\n\r\n beforeSubmit() {\r\n this.control.markAsTouched();\r\n }\r\n\r\n hasError() {\r\n return !!this.instance && !!this.instance.error;\r\n }\r\n\r\n shouldValidateOnInit() {\r\n if (!this.instance) {\r\n return;\r\n }\r\n\r\n return this.instance.options.validateOnInit\r\n || this.instance.parent.options.validateOnInit;\r\n }\r\n\r\n setDisabled(disabled) {\r\n if (disabled) {\r\n this.control.disable();\r\n } else {\r\n this.control.enable();\r\n }\r\n }\r\n\r\n setVisible(visible) {\r\n if (this.element && this.element.nativeElement) {\r\n if (visible) {\r\n this.element.nativeElement.removeAttribute('hidden');\r\n this.element.nativeElement.style.visibility = 'visible';\r\n this.element.nativeElement.style.position = 'relative';\r\n } else {\r\n this.element.nativeElement.setAttribute('hidden', true);\r\n this.element.nativeElement.style.visibility = 'hidden';\r\n this.element.nativeElement.style.position = 'absolute';\r\n }\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this.element && this.element.nativeElement && this.instance) {\r\n // Add custom classes to elements.\r\n if (this.instance.component.customClass) {\r\n this.element.nativeElement.classList.add(this.instance.component.customClass);\r\n }\r\n }\r\n\r\n if (this.input) {\r\n // Set the input masks.\r\n const mask = this.instance?.component?.inputMask || this.instance?.component?.mask;\r\n if (mask) {\r\n this.instance.setInputMask(this.input.nativeElement);\r\n }\r\n this.instance.addFocusBlurEvents(this.input.nativeElement);\r\n }\r\n }\r\n}\r\n\r\nFormioComponent.MaterialComponent = MaterialComponent;\r\nexport { FormioComponent };\r\n","export enum LabelPositions {\r\n RIGHT_RIGHT = 'right-right',\r\n RIGHT_LEFT = 'right-left',\r\n LEFT_LEFT = 'left-left',\r\n LEFT_RIGHT = 'left-right',\r\n BOTTOM = 'bottom',\r\n TOP = 'top',\r\n}\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'span[matFormioLabel]',\r\n templateUrl: './label.component.html',\r\n styleUrls: ['./label.component.css']\r\n})\r\nexport class LabelComponent {\r\n @Input() instance;\r\n}\r\n","<ng-container *ngIf=\"instance\">\r\n {{ instance.component.label }}<span class=\"required-star\" *ngIf=\"instance.component.validate.required\">*</span>\r\n <mat-icon *ngIf=\"instance.component.tooltip\" style=\"font-size: 1rem;\"\r\n matTooltip=\"{{ instance.component.tooltip }}\" matSuffix\r\n >\r\n info\r\n </mat-icon>\r\n</ng-container>\r\n","import { Component, Input, TemplateRef } from '@angular/core';\r\nimport { LabelPositions } from '../../const/LabelPositions';\r\n\r\n@Component({\r\n selector: 'mat-formio-form-field',\r\n templateUrl: './formio-form-field.component.html',\r\n styleUrls: ['./formio-form-field.component.css']\r\n})\r\nexport class FormioFormFieldComponent {\r\n private _instance;\r\n public labelPositions = LabelPositions;\r\n @Input() labelTemplate: TemplateRef<any>;\r\n @Input() renderTopLabel = false;\r\n @Input() showDescription = true;\r\n @Input() renderElementOnly = false;\r\n\r\n @Input('instance')\r\n set instance(instance) {\r\n this._instance = instance;\r\n if (instance) {\r\n this.componentTemplateContext = {$implicit: this.hasLabel(['top'])};\r\n }\r\n }\r\n\r\n get instance() {\r\n return this._instance;\r\n }\r\n\r\n @Input() componentTemplate: TemplateRef<any>;\r\n componentTemplateContext;\r\n\r\n hasLabel(labelPositions?: string[]) {\r\n const { component } = this.instance;\r\n const hasNoLabel = !component.label || component.hideLabel;\r\n const labelPositionIsNotSpecified = !labelPositions ||\r\n !labelPositions.length ||\r\n !component.labelPosition;\r\n\r\n if (hasNoLabel || labelPositionIsNotSpecified || this.renderElementOnly) {\r\n return false;\r\n }\r\n\r\n if (labelPositions.includes(component.labelPosition)) {\r\n return true;\r\n }\r\n }\r\n}\r\n","<div class=\"mat-formio-component-wrapper\" *ngIf=\"instance && !renderElementOnly\"\r\n [ngClass]=\"{\r\n 'mat-formio-label-right': hasLabel([labelPositions.RIGHT_RIGHT, labelPositions.RIGHT_LEFT]),\r\n 'mat-formio-label-left': hasLabel([labelPositions.LEFT_LEFT, labelPositions.LEFT_RIGHT])\r\n }\"\r\n>\r\n <span *ngIf=\"renderTopLabel && hasLabel([labelPositions.TOP])\"\r\n class=\"mat-formio-label\"\r\n [ngClass]=\"{\r\n 'mat-formio-label-align-right': hasLabel([labelPositions.LEFT_RIGHT, labelPositions.RIGHT_RIGHT]),\r\n 'mat-formio-label-align-left': hasLabel([labelPositions.LEFT_LEFT, labelPositions.RIGHT_LEFT])\r\n }\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"labelTemplate || defaultLabel\"></ng-container>\r\n </span>\r\n\r\n <div class=\"mat-formio-component\" *ngTemplateOutlet=\"componentTemplate; context: componentTemplateContext\"></div>\r\n\r\n <span *ngIf=\"hasLabel([\r\n labelPositions.BOTTOM,\r\n labelPositions.RIGHT_RIGHT,\r\n labelPositions.RIGHT_LEFT,\r\n labelPositions.LEFT_LEFT,\r\n labelPositions.LEFT_RIGHT\r\n ])\"\r\n class=\"mat-formio-label\"\r\n [ngClass]=\"{\r\n 'mat-formio-label-align-right': hasLabel([labelPositions.LEFT_RIGHT, labelPositions.RIGHT_RIGHT]),\r\n 'mat-formio-label-align-left': hasLabel([labelPositions.LEFT_LEFT, labelPositions.RIGHT_LEFT])\r\n }\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"labelTemplate || defaultLabel\"></ng-container>\r\n </span>\r\n\r\n <mat-hint *ngIf=\"showDescription && instance.component.description\" class=\"mat-formio-component-description\">\r\n {{ instance.component.description }}\r\n </mat-hint>\r\n</div>\r\n\r\n<div class=\"mat-formio-component-wrapper\" *ngIf=\"renderElementOnly\">\r\n <div class=\"mat-formio-component\" *ngTemplateOutlet=\"componentTemplate; context: componentTemplateContext\"></div>\r\n</div>\r\n\r\n<ng-template #defaultLabel>\r\n <mat-label>\r\n <span style=\"display: block;\"\r\n [instance]=\"instance\" matFormioLabel>\r\n </span>\r\n </mat-label>\r\n</ng-template>\r\n","import { Component, OnInit, AfterContentInit } from '@angular/core';\r\nimport TextFieldComponent from 'formiojs/components/textfield/TextField.js';\r\nimport { MaterialComponent } from '../MaterialComponent';\r\n\r\nexport const TEXTFIELD_TEMPLATE = `\r\n <mat-formio-form-field [instance]=\"instance\" [componentTemplate]=\"componentTemplate\"></mat-formio-form-field>\r\n <ng-template #componentTemplate let-hasLabel>\r\n <mat-form-field [appearance]=\"getFormFieldAppearance()\" fxFill>\r\n\r\n <mat-label *ngIf=\"hasLabel\">\r\n <span [instance]=\"instance\" matFormioLabel></span>\r\n </mat-label>\r\n\r\n <span *ngIf=\"instance.component.prefix && instance.type !== 'currency'\"\r\n matPrefix\r\n >\r\n {{ instance.component.prefix }}&nbsp;\r\n </span>\r\n <input matInput\r\n type=\"{{ inputType }}\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"instance.component.placeholder\"\r\n (input)=\"onChange()\" #input\r\n [ngClass]=\"{ 'show-invalid': inputType=='email' }\"\r\n >\r\n <span *ngIf=\"instance.component.suffix\" matSuffix>{{ instance.component.suffix }}</span>\r\n\r\n <mat-hint *ngIf=\"instance.component.showWordCount || instance.component.showCharCount\">\r\n {{ getHint() }}\r\n </mat-hint>\r\n\r\n <br/>\r\n <mat-error *ngIf=\"isError()\" >{{ getErrorMessage() }}</mat-error>\r\n </mat-form-field>\r\n </ng-template>\r\n`;\r\n\r\n@Component({\r\n selector: 'mat-formio-textfield',\r\n template: TEXTFIELD_TEMPLATE\r\n})\r\nexport class MaterialTextfieldComponent extends MaterialComponent implements AfterContentInit {\r\n public inputType = 'text';\r\n controlHasError: boolean;\r\n\r\n ngAfterContentInit() {\r\n if (this.instance && this.control && this.instance.component.disabled) {\r\n this.control.disable();\r\n }\r\n }\r\n\r\n getHint() {\r\n if (!this.instance || !this.control || !this.control.value) {\r\n return '';\r\n }\r\n\r\n const { showWordCount, showCharCount } = this.instance.component;\r\n\r\n if (showWordCount && showCharCount) {\r\n return `${this.getWordsCount()} words, ${this.control.value.length} characters`;\r\n } else if (showWordCount) {\r\n return `${this.getWordsCount()} words`;\r\n } else {\r\n return `${this.control.value.length} characters`;\r\n }\r\n }\r\n\r\n getWordsCount() {\r\n const matches = this.control.value ? this.control.value.match(/[\\w\\d’'-]+/gi) : [];\r\n return matches ? matches.length : 0;\r\n }\r\n\r\n getFormFieldAppearance() {\r\n const appearances = ['legacy', 'standard', 'fill', 'outline'];\r\n const appearance = this.instance.component.appearance ? this.instance.component.appearance.toLowerCase() : '';\r\n return appearances.includes(appearance) ? appearance : 'outline';\r\n }\r\n\r\n isError() {\r\n if (this.instance.error) {\r\n this.control.setErrors(this.instance.component.validate);\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n getErrorMessage() {\r\n if (this.instance.error && this.instance.error.messages) {\r\n const { messages } = this.instance.error;\r\n\r\n if (messages.length) {\r\n for (const msg of messages) {\r\n //this.control.hasError(msg.context.validator)\r\n if (this.instance.type == 'phoneNumber' || this.instance.type == 'email') {\r\n this.controlHasError = true;\r\n } else {\r\n this.controlHasError = this.control.hasError(msg.context.validator)\r\n }\r\n if (msg.context && this.controlHasError) {\r\n if (this.instance && this.instance.parent && this.instance.parent._data) {\r\n if (this.instance.parent._data.submit) {\r\n this.control.markAllAsTouched();\r\n }\r\n }\r\n return this.instance.error ? this.instance.error.message : '';\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\nTextFieldComponent.MaterialComponent = MaterialTextfieldComponent;\r\nexport { TextFieldComponent };\r\n","import { Component } from '@angular/core';\r\nimport { MaterialTextfieldComponent, TEXTFIELD_TEMPLATE } from '../textfield/textfield.component';\r\nimport PasswordComponent from 'formiojs/components/password/Password.js';\r\n@Component({\r\n selector: 'mat-formio-password',\r\n template: TEXTFIELD_TEMPLATE\r\n})\r\nexport class MaterialPasswordComponent extends MaterialTextfieldComponent {\r\n public inputType = 'password';\r\n}\r\nPasswordComponent.MaterialComponent = MaterialPasswordComponent;\r\nexport { PasswordComponent };\r\n","import { Component } from '@angular/core';\r\nimport { MaterialTextfieldComponent, TEXTFIELD_TEMPLATE } from '../textfield/textfield.component';\r\nimport EmailComponent from 'formiojs/components/email/Email.js';\r\n@Component({\r\n selector: 'mat-formio-email',\r\n template: TEXTFIELD_TEMPLATE\r\n})\r\nexport class MaterialEmailComponent extends MaterialTextfieldComponent {\r\n public inputType = 'email';\r\n}\r\nEmailComponent.MaterialComponent = MaterialEmailComponent;\r\nexport { EmailComponent };\r\n","import { Component } from '@angular/core';\r\nimport { MaterialTextfieldComponent, TEXTFIELD_TEMPLATE } from '../textfield/textfield.component';\r\nimport UrlComponent from 'formiojs/components/url/Url.js';\r\n@Component({\r\n selector: 'mat-formio-url',\r\n template: TEXTFIELD_TEMPLATE\r\n})\r\nexport class MaterialUrlComponent extends MaterialTextfieldComponent {\r\n public inputType = 'url';\r\n}\r\nUrlComponent.MaterialComponent = MaterialUrlComponent;\r\nexport { UrlComponent };\r\n","import { Component } from '@angular/core';\r\nimport { MaterialTextfieldComponent, TEXTFIELD_TEMPLATE } from '../textfield/textfield.component';\r\nimport PhoneNumberComponent from 'formiojs/components/phonenumber/PhoneNumber.js';\r\n@Component({\r\n selector: 'mat-formio-phonenumber',\r\n template: TEXTFIELD_TEMPLATE\r\n})\r\nexport class MaterialPhoneNumberComponent extends MaterialTextfieldComponent {\r\n public inputType = 'text';\r\n}\r\nPhoneNumberComponent.MaterialComponent = MaterialPhoneNumberComponent;\r\nexport { PhoneNumberComponent };\r\n","import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, Renderer2 } from '@angular/core';\r\nimport { MaterialTextfieldComponent, TEXTFIELD_TEMPLATE } from '../textfield/textfield.component';\r\nimport NumberComponent from 'formiojs/components/number/Number.js';\r\nimport _ from 'lodash';\r\n\r\n@Component({\r\n selector: 'mat-formio-number',\r\n template: TEXTFIELD_TEMPLATE\r\n})\r\nexport class MaterialNumberComponent extends MaterialTextfieldComponent implements AfterViewInit {\r\n public inputType = 'text';\r\n\r\n constructor(public element: ElementRef, public ref: ChangeDetectorRef, private renderer: Renderer2) {\r\n super(element, ref);\r\n }\r\n\r\n ngAfterViewInit() {\r\n super.ngAfterViewInit();\r\n if (this.instance) {\r\n const { instance } = this;\r\n\r\n this.renderer.listen(this.input.nativeElement, 'blur', () => {\r\n let value = instance.parseValue(this.control.value);\r\n value = instance.formatValue(value);\r\n value = instance.getValueAsString(value);\r\n this.control.setValue(value);\r\n });\r\n\r\n }\r\n }\r\n\r\n getValue() {\r\n let value = this.control.value;\r\n if (value && this.instance) {\r\n value = value.replace(this.instance.prefix, '');\r\n return !_.isNil(value) && value !== '' ? this.instance.parseNumber(value) : value;\r\n }\r\n return value;\r\n }\r\n\r\n setValue(value) {\r\n if (this.instance) {\r\n const { instance } = this;\r\n value = instance.formatValue(instance.parseValue(value));\r\n }\r\n else {\r\n value = value.toString();\r\n }\r\n\r\n return super.setValue(value);\r\n }\r\n\r\n onChange() {\r\n super.onChange(true);\r\n }\r\n}\r\nNumberComponent.MaterialComponent = MaterialNumberComponent;\r\nexport { NumberComponent };\r\n","import { Component } from '@angular/core';\r\nimport { TEXTFIELD_TEMPLATE } from '../textfield/textfield.component';\r\nimport { MaterialNumberComponent } from '../number/number.component';\r\nimport CurrencyComponent from 'formiojs/components/currency/Currency.js';\r\nimport _ from 'lodash';\r\n\r\n@Component({\r\n selector: 'mat-formio-currency',\r\n template: TEXTFIELD_TEMPLATE\r\n})\r\nexport class MaterialCurrencyComponent extends MaterialNumberComponent {\r\n public inputType = 'text';\r\n\r\n onChange() {\r\n let newValue;\r\n newValue = _.isNil(this.getValue()) ? '' : this.getValue();\r\n if(!(Number.isNaN(newValue))){\r\n this.instance.updateValue(newValue, {modified: true});\r\n } else {\r\n newValue = '';\r\n this.instance.updateValue(newValue, {modified: true});\r\n }\r\n }\r\n}\r\nCurrencyComponent.MaterialComponent = MaterialCurrencyComponent;\r\nexport { CurrencyComponent };\r\n","import { Component } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MaterialComponent } from '../MaterialComponent';\r\nimport DayComponent from 'formiojs/components/day/Day.js';\r\nimport { momentDate } from 'formiojs/utils/utils.js';\r\nDayComponent.prototype.getFieldValue = function(name) {\r\n return this.refs[name] ? this.refs[name].value : '';\r\n};\r\n\r\n@Component({\r\n selector: 'mat-formio-day',\r\n template: `\r\n <mat-formio-form-field [instance]=\"instance\" [componentTemplate]=\"componentTemplate\"></mat-formio-form-field>\r\n <ng-template #componentTemplate let-hasLabel>\r\n <mat-label *ngIf=\"hasLabel\">\r\n <span [instance]=\"instance\" matFormioLabel></span>\r\n </mat-label>\r\n <mat-form-field *ngIf=\"instance.dayFirst && instance.showDay\">\r\n <mat-label *ngIf=\"!instance.component.hideInputLabels\">Day</mat-label>\r\n <mat-select [formControl]=\"dayControl\" (selectionChange)=\"onChange()\" [required]=\"instance.dayRequired\">\r\n <mat-option *ngFor=\"let day of instance.days\" [value]=\"day.value\">\r\n {{day.label}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field *ngIf=\"instance.showMonth\">\r\n <mat-label *ngIf=\"!instance.component.hideInputLabels\">Month</mat-label>\r\n <mat-select [formControl]=\"monthControl\" (selectionChange)=\"onChange()\" [required]=\"instance.monthRequired\">\r\n <mat-option *ngFor=\"let month of instance.months\" [value]=\"month.value\">\r\n {{month.label}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field *ngIf=\"!instance.dayFirst && instance.showDay\">\r\n <mat-label *ngIf=\"!instance.component.hideInputLabels\">Day</mat-label>\r\n <mat-select [formControl]=\"dayControl\" (selectionChange)=\"onChange()\" [required]=\"instance.dayRequired\">\r\n <mat-option *ngFor=\"let day of instance.days\" [value]=\"day.value\">\r\n {{day.label}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field *ngIf=\"instance.showYear\">\r\n <mat-label *ngIf=\"!instance.component.hideInputLabels\">Year</mat-label>\r\n <mat-select [formControl]=\"yearControl\" (selectionChange)=\"onChange()\" [required]=\"instance.yearRequired\">\r\n <mat-option *ngFor=\"let year of instance.years\" [value]=\"year.value\">\r\n {{year.label}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-error *ngIf=\"instance.error\">{{ instance.error.message }}</mat-error>\r\n </ng-template>\r\n `\r\n})\r\nexport class MaterialDayComponent extends MaterialComponent {\r\n public dayControl: FormControl = new FormControl();\r\n public monthControl: FormControl = new FormControl();\r\n public yearControl: FormControl = new FormControl();\r\n setInstance(instance) {\r\n // Add stub methods to match dom elements.\r\n (this.dayControl as any).setAttribute = () => {};\r\n (this.dayControl as any).removeAttribute = () => {};\r\n (this.monthControl as any).setAttribute = () => {};\r\n (this.monthControl as any).removeAttribute = () => {};\r\n (this.yearControl as any).setAttribute = () => {};\r\n (this.yearControl as any).removeAttribute = () => {};\r\n instance.refs = {\r\n day: this.dayControl,\r\n month: this.monthControl,\r\n year: this.yearControl\r\n };\r\n return super.setInstance(instance);\r\n }\r\n\r\n setDisabled(disabled) {\r\n if (disabled) {\r\n this.dayControl.disable();\r\n this.monthControl.disable();\r\n this.yearControl.disable();\r\n } else {\r\n this.dayControl.enable();\r\n this.monthControl.enable();\r\n this.yearControl.enable();\r\n }\r\n }\r\n\r\n getValue() {\r\n return this.instance.getDate();\r\n }\r\n\r\n setValue(value) {\r\n if (value) {\r\n this.dayControl.setValue(parseInt(momentDate(value).format('D')));\r\n this.monthControl.setValue(parseInt(momentDate(value).format('M')));\r\n this.yearControl.setValue(parseInt(momentDate(value).format('YYYY')));\r\n }\r\n this.instance.setValueAt(0, value);\r\n }\r\n}\r\nDayComponent.MaterialComponent = MaterialDayComponent;\r\nexport { DayComponent };\r\n","import { Component } from '@angular/core';\r\nimport { MaterialComponent } from '../MaterialComponent';\r\nimport HiddenComponent from 'formiojs/components/hidden/Hidden.js';\r\n@Component({\r\n selector: 'mat-formio-hidden',\r\n template: `<input matInput type=\"hidden\" [formControl]=\"control\" #input>`\r\n})\r\nexport class MaterialHiddenComponent extends MaterialComponent {}\r\nHiddenComponent.MaterialComponent = MaterialHiddenComponent;\r\nexport { HiddenComponent };\r\n","import { Component, AfterViewInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { MaterialComponent } from '../MaterialComponent';\r\nimport HtmlComponent from 'formiojs/components/html/HTML.js';\r\n\r\n@Component({\r\n selector: 'mat-formio-html',\r\n template: `<div #htmlBody></div>`\r\n})\r\nexport class MaterialHtmlComponent extends MaterialComponent implements AfterViewInit {\r\n @ViewChild('htmlBody') htmlBody: ElementRef;\r\n\r\n ngAfterViewInit() {\r\n super.ngAfterViewInit();\r\n if (this.instance.component.refreshOnChange) {\r\n this.instance.checkRefreshOn = () => {\r\n this.htmlBody.nativeElement.innerHTML = this.instance.renderContent();\r\n };\r\n }\r\n }\r\n}\r\nHtmlComponent.MaterialComponent = MaterialHtmlComponent;\r\nexport { HtmlComponent };\r\n","import { Component } from '@angular/core';\r\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\r\nimport TagsComponent from 'formiojs/components/tags/Tags.js';\r\nimport { MaterialComponent } from '../MaterialComponent';\r\nimport { MatChipInputEvent } from '@angular/material/chips';\r\n\r\n@Component({\r\n selector: 'mat-formio-tags',\r\n template: `\r\n <mat-formio-form-field [instance]=\"instance\" [componentTemplate]=\"componentTemplate\"></mat-formio-form-field>\r\n <ng-template #componentTemplate let-hasLabel>\r\n <mat-form-field class=\"example-chip-list\" fxFill>\r\n\r\n <mat-label *ngIf=\"hasLabel\">\r\n <span [instance]=\"instance\" matFormioLabel></span>\r\n </mat-label>\r\n\r\n <mat-chip-grid #chipList [attr.aria-label]=\"instance.component.label\">\r\n <mat-chip-row *ngFor=\"let tag of tags; index as i;\"\r\n [removable]=\"true\"\r\n (removed)=\"remove(i)\"\r\n >\r\n {{tag}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n\r\n <input [formControl]=\"control\"\r\n [matChipInputFor]=\"chipList\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n [matChipInputAddOnBlur]=\"true\"\r\n (matChipInputTokenEnd)=\"add($event)\"\r\n >\r\n </mat-chip-grid>\r\n </mat-form-field>\r\n </ng-template>\r\n `\r\n})\r\nexport class MaterialTagsComponent extends MaterialComponent {\r\n readonly separatorKeysCodes: number[] = [ENTER, COMMA];\r\n tags: string[] = [];\r\n add(event: MatChipInputEvent): void {\r\n const input = event.input;\r\n const value = event.value;\r\n if ((value || '').trim()) {\r\n this.tags.push(value.trim());\r\n }\r\n if (input) {\r\n input.value = '';\r\n }\r\n this.onChange();\r\n }\r\n\r\n remove(index): void {\r\n if (index >= 0 && index < this.tags.length) {\r\n this.tags.splice(index, 1);\r\n }\r\n this.onChange();\r\n }\r\n\r\n getValue() {\r\n return (this.instance.component.storeas === 'string') ? this.tags.join(this.instance.delimiter) : this.tags;\r\n }\r\n\r\n setValue(value) {\r\n if (typeof value === 'string') {\r\n value = value.split(this.instance.delimiter);\r\n }\r\n if (value && !Array.isArray(value)) {\r\n value = [value];\r\n }\r\n this.tags = value;\r\n }\r\n}\r\n(TagsComponent as any).MaterialComponent = MaterialTagsComponent;\r\nexport { TagsComponent };\r\n","export enum ButtonsThemes {\r\n PRIMARY = 'primary',\r\n SECONDARY = 'secondary',\r\n INFO = 'info',\r\n WARNING = 'warning',\r\n DANGER = 'danger',\r\n SUCCESS = 'success'\r\n}\r\n\r\nexport enum AngularButtonsThemes {\r\n WARN = 'warn',\r\n PRIMARY = 'primary',\r\n BASIC = 'basic',\r\n ACCENT = 'accent'\r\n}\r\n","import { ChangeDetectorRef, Component, ElementRef } from '@angular/core';\r\nimport ButtonComponent from 'formiojs/components/button/Button.js';\r\nimport { MaterialComponent } from '../MaterialComponent';\r\nimport { AngularButtonsThemes, ButtonsThemes } from '../../const/ButtonsThemes';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'mat-formio-button',\r\n templateUrl: './button.component.html',\r\n styleUrls: ['./button.component.css']\r\n})\r\nexport class MaterialButtonComponent extends MaterialComponent {\r\n public loading = false;\r\n public done = false;\r\n public error = false;\r\n public disabled = false;\r\n public clicked = false;\r\n walkmeClass: string = '';\r\n constructor(public element: ElementRef, public ref: ChangeDetectorRef, private dialog: MatDialog) {\r\n super(element, ref);\r\n }\r\n get color() {\r\n if (this.error) {\r\n return AngularButtonsThemes.WARN;\r\n }\r\n const theme = this.angularButtonTheme;\r\n return theme || AngularButtonsThemes.PRIMARY;\r\n }\r\n\r\n get angularButtonTheme() {\r\n switch (this.instance.component.theme) {\r\n case ButtonsThemes.PRIMARY:\r\n return AngularButtonsThemes.PRIMARY;\r\n\r\n case ButtonsThemes.WARNING:\r\n return AngularButtonsThemes.ACCENT;\r\n\r\n case ButtonsThemes.DANGER:\r\n return AngularButtonsThemes.WARN;\r\n\r\n case ButtonsThemes.SECONDARY:\r\n return AngularButtonsThemes.BASIC;\r\n\r\n default:\r\n return '';\r\n }\r\n }\r\n\r\n get buttonClass() {\r\n let className = this.instance.component.block ? 'mat-formio-button-block' : '';\r\n className += this.instance.component.size ? ` mat-formio-button-${this.instance.component.size}` : '';\r\n className += !this.angularButtonTheme ? ` mat-formio-theme-${this.instance.component.theme}` : '';\r\n const attributes = this.instance?.component?.attributes;\r\n if (attributes) {\r\n const buttonType = attributes.buttonType || '';\r\n const programName = attributes.programName || '';\r\n this.walkmeClass = `walkme-${buttonType}-${programName}`.toLowerCase();\r\n }\r\n return className;\r\n }\r\n\r\n onClick(event) {\r\n this.clicked = true;\r\n this.instance.onClick(event);\r\n }\r\n\r\n getValue() {\r\n return this.clicked;\r\n }\r\n\r\n setState(loading, error, done) {\r\n this.loading = loading;\r\n this.done = done;\r\n this.error = error;\r\n }\r\n\r\n getIconFontSet(icon: string) {\r\n const fontSet = icon.split(' ')[0];\r\n return fontSet;\r\n }\r\n\r\n getIconName(icon: string) {\r\n return icon.replace(this.getIconFontSet(icon), '');\r\n }\r\n\r\n setInstance(instance) {\r\n const retVal = super.setInstance(instance);\r\n this.disabled = instance.shouldDisabled;\r\n instance.on('submitButton', () => this.setState(true, false, false));\r\n instance.on('submitDone', () => this.setState(false, false, true));\r\n instance.on('submitError', () => this.setState(false, true, false));\r\n instance.on('requestButton', () => this.setState(true, false, false));\r\n instance.on('requestDone', () => this.setState(false, false, true));\r\n instance.on('change', (event) => {\r\n this.disabled = this.instance.shouldDisabled || (this.instance.component.disableOnInvalid && !event.isValid);\r\n if (event.isValid) {\r\n this.loading = false;\r\n this.error = false;\r\n }\r\n });\r\n return retVal;\r\n }\r\n}\r\nButtonComponent.MaterialComponent = MaterialButtonComponent;\r\nexport { ButtonComponent };\r\n","<button *ngIf=\"instance && instance.component.label != 'Click to add Products'\"\r\n [ngClass]=\"[buttonClass, walkmeClass]\"\r\n type=\"{{ instance.component.action }}\"\r\n mat-raised-button [color]=\"color\"\r\n [disabled]=\"disabled\"\r\n (click)=\"instance.onClick($event)\"\r\n>\r\n\r\n\r\n <mat-icon *ngIf=\"instance.component.leftIcon\">{{instance.component.leftIcon}}</mat-icon>\r\n <mat-icon *ngIf=\"done\">done</mat-icon>\r\n <mat-icon *ngIf=\"error\">close</mat-icon>\r\n <mat-icon class=\"mat-icon-spin\" *ngIf=\"loading\">autorenew</mat-icon>\r\n {{ instance.component.label }}\r\n <mat-icon *ngIf=\"instance.component.rightIcon\">{{instance.component.rightIcon}}</mat-icon>\r\n</button>\r\n","import { Component, ViewChild, ElementRef, AfterViewInit } from '@angular/core';\r\nimport { MaterialComponent } from '../MaterialComponent';\r\nimport TextAreaComponent from 'formiojs/components/textarea/TextArea.js';\r\nimport isNil from 'lodash/isNil';\r\n\r\n@Component({\r\n selector: 'mat-formio-textarea',\r\n styleUrls: ['./textarea.component.css'],\r\n template: `\r\n <mat-formio-form-field [instance]=\"instance\" [componentTemplate]=\"componentTemplate\"></mat-formio-form-field>\r\n <ng-template #componentTemplate let-hasLabel>\r\n <mat-form-field class=\"mat-formio-textarea\"\r\n [ngClass]=\"{'editor-enabled': !!instance.component.editor}\"\r\n style=\"width:100%; align-self:center;\"\r\n >\r\n <mat-label style=\"width:100%;\" *ngIf=\"hasLabel\">\r\n <span [instance]=\"instance\" matFormioLabel></span>\r\n </mat-label>\r\n <span *ngIf=\"instance.component.prefix\" matPrefix>{{ instance.component.prefix }}&nbsp;</span>\r\n <textarea matInput\r\n [placeholder]=\"instance.component.placeholder\"\r\n [formControl]=\"control\"\r\n [rows]=\"(instance.component.rows || 3)\"\r\n (input)=\"onChange()\"\r\n #textarea\r\n >\r\n </textarea>\r\n <span *ngIf=\"instance.component.suffix\" matSuffix>{{ instance.component.suffix }}</span>\r\n <mat-error *ngIf=\"instance.error\">{{ getErrorMessage() }}</mat-error>\r\n </mat-form-field>\r\n </ng-template>\r\n `\r\n})\r\nexport class MaterialTextareaComponent extends MaterialComponent implements AfterViewInit {\r\n @ViewChild('textarea') textarea: ElementRef;\r\n\r\n ngAfterViewInit() {\r\n if (this.element && this.element.nativeElement && this.instance) {\r\n // Add custom classes to elements.\r\n if (this.instance.component.customClass) {\r\n this.element.nativeElement.classList.add(this.instance.component.customClass);\r\n }\r\n }\r\n // Attach the element so the wysiwyg will work.\r\n this.instance.attachElement(this.textarea.nativeElement);\r\n }\r\n\r\n getErrorMessage() {\r\n // Check if instance and necessary properties exist\r\n if (this.instance && this.instance.parent && this.instance.parent._data) {\r\n if (this.instance.parent._data.submit) {\r\n this.control.markAllAsTouched();\r\n }\r\n }\r\n\r\n // Return the error message if it exists\r\n return this.instance.error ? this.instance.error.message : '';\r\n }\r\n\r\n\r\n getValue() {\r\n return isNil(this.control.value) ? '' : this.control.value;\r\n }\r\n}\r\nTextAreaComponent.MaterialComponent = MaterialTextareaComponent;\r\nexport { TextAreaComponent };\r\n","import { AfterViewInit, Component, QueryList, ViewChildren, ViewContainerRef } from '@angular/core';\r\nimport { MaterialComponent } from './MaterialComponent';\r\n\r\n@Component({\r\n selector: 'mat-formio-nested',\r\n template: '<ng-template #components></ng-template>'\r\n})\r\nexport class MaterialNestedComponent extends MaterialComponent implements AfterViewInit {\r\n public viewContainers;\r\n @ViewChildren('components', {read: ViewContainerRef}) components: QueryList<ViewContainerRef>;\r\n setInstance(instance: any) {\r\n instance.viewContainer = () => {\r\n return this.viewContainers ? this.viewContainers[0] : null;\r\n };\r\n super.setInstance(instance);\r\n }\r\n\r\n renderComponents() {\r\n if (this.instance.renderComponents) {\r\n this.instance.renderComponents();\r\n }\r\n }\r\n\r\n render() {\r\n this.viewContainers = this.components.toArray();\r\n this.renderComponents();\r\n this.ref.detectChanges();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.components.changes.subscribe(() => this.render());\r\n this.render();\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { MaterialNestedComponent } from '../MaterialNestedComponent';\r\nimport PanelComponent from 'formiojs/components/panel/Panel.js';\r\n@Component({\r\n selector: 'mat-formio-panel',\r\n template: `\r\n <mat-card appearance=\"outlined\" *ngIf=\"!instance.component.collapsible\">\r\n <mat-card-title *ngIf=\"instance?.component?.title\">\r\n {{ instance.component.title }}\r\n </mat-card-title>\r\n <mat-card-content style=\"display:flex; flex-direction:column; gap:1em;\">\r\n <ng-template #components></ng-template>\r\n </mat-card-content>\r\n </mat-card>\r\n <mat-expansion-panel *ngIf=\"instance.component.collapsible\"\r\n [expanded]=\"!instance.component.collapsed\"\r\n >\r\n <mat-expansion-panel-header *ngIf=\"instance?.component?.title\">\r\n <mat-panel-title>\r\n {{ instance.component.title }}\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <ng-template #components></ng-template>\r\n </mat-expansion-panel>\r\n `,\r\n styles: [\r\n ':host { margin-bottom: 1em; }'\r\n ]\r\n})\r\nexport class MaterialPanelComponent extends MaterialNestedComponent {}\r\nPanelComponent.MaterialComponent = MaterialPanelComponent;\r\nexport { PanelComponent };\r\n","import { Component } from '@angular/core';\r\nimport { MaterialNestedComponent } from '../MaterialNestedComponent';\r\nimport ColumnsComponent from 'formiojs/components/columns/Columns.js';\r\n\r\n@Component({\r\n selector: 'mat-formio-columns',\r\n template: `\r\n <div class=\"container columns-row\"\r\n [style.gap]=\"flexGap + '%'\"\r\n >\r\n <div\r\n *ngFor=\"let column of instance.component.columns; let i = index\"\r\n [style.flex]=\"'0 1 ' + flexWidth(column, i)\"\r\n style=\"display:flex; flex-direction:column; gap:1em;\">\r\n <ng-template #components></ng-template>\r\n </div>\r\n </div>\r\n `,\r\n styles: [`\r\n .columns-row {\r\n display: flex;\r\n flex-direction: row;\r\n flex-wrap: wrap;\r\n justify-content: center;\r\n }\r\n @media (max-width: 599px) {\r\n .columns-row {\r\n flex-direction: column;\r\n }\r\n }\r\n `]\r\n})\r\nexport class MaterialColumnsComponent extends MaterialNestedComponent {\r\n public flexGap = 0.5;\r\n public totalSpace = 0;\r\n setInstance(instance: any) {\r\n this.totalSpace = 100 - ((instance.component.columns.length - 1) * this.flexGap);\r\n super.setInstance(instance);\r\n instance.viewContainer = (component) => {\r\n return this.viewContainers ? this.viewContainers[component.column] : null;\r\n };\r\n }\r\n\r\n flexWidth(column, index) {\r\n if (index >= (this.instance.component.columns.length - 1)) {\r\n return Math.ceil(((parseFloat(column.width) / 12) * this.totalSpace)) + '%';\r\n } else {\r\n return Math.floor(((parseFloat(column.width) / 12) * this.totalSpace)) + '%';\r\n }\r\n }\r\n}\r\nColumnsComponent.MaterialComponent = MaterialColumnsComponent;\r\nexport { ColumnsComponent };\r\n","import { Component } from '@angular/core';\r\nimport { MaterialNestedComponent } from '../MaterialNestedComponent';\r\nimport ContainerComponent from 'formiojs/components/container/Container.js';\r\n\r\n@Component({\r\n selector: 'mat-formio-container',\r\n template: `\r\n <div style=\"display:flex; flex-direction:column; gap:1em;\">\r\n <ng-template #components></ng-template>\r\n </div>`\r\n})\r\nexport class MaterialContainerComponent extends MaterialNestedComponent { }\r\nContainerComponent.MaterialComponent = MaterialContainerComponent;\r\nexport { ContainerComponent };\r\n","import { Component } from '@angular/core';\r\nimport { MaterialNestedComponent } from '../MaterialNestedComponent';\r\nimport TabsComponent from 'formiojs/components/tabs/Tabs.js';\r\n\r\n@Component({\r\n selector: 'mat-formio-tabs',\r\n template: `\r\n <mat-tab-group>\r\n <mat-tab *ngFor=\"let tab of instance.component.components\" [label]=\"tab.label\">\r\n <div style=\"display:flex; flex-direction:column; gap:1em; border: 1px dotted rgba(0, 0, 0, 0.125)\">\r\n <ng-template #components></ng-template>\r\n </div>\r\n </mat-tab>\r\n </mat-tab-group>\r\n `\r\n})\r\nexport class MaterialTabsComponent extends MaterialNestedComponent {\r\n setInstance(instance: any) {\r\n super.setInstance(instance);\r\n instance.viewContainer = (component) => {\r\n return this.viewContainers ? this.viewContainers[component.tab] : null;\r\n };\r\n }\r\n}\r\nTabsComponent.MaterialComponent = MaterialTabsComponent;\r\nexport { TabsComponent };\r\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MaterialComponent } from '../MaterialComponent';\r\nimport TimeComponent from 'formiojs/components/time/Time.js';\r\nimport * as moment_ from 'moment';\r\n@Component({\r\n selector: 'mat-formio-time',\r\n template: `\r\n <mat-formio-form-field\r\n [instance]=\"instance\"\r\n [componentTemplate]=\"componentTemplate\"\r\n [renderElementOnly]=\"renderElementOnly\"\r\n ></mat-formio-form-field>\r\n <ng-template #componentTemplate let-hasLabel>\r\n <mat-label style=\"width:100%;\" *ngIf=\"hasLabel\">\r\n <span [instance]=\"instance\" matFormioLabel></span>\r\n </mat-label>\r\n\r\n <div style=\"display: block\">\r\n <div style=\"display:flex; flex-direction:row; gap:5%;\">\r\n <input\r\n [formControl]=\"hourControl\"\r\n [step]=\"hourStep\"\r\n [min]=\"0\"\r\n [max]=\"12\"\r\n type=\"number\"\r\n style=\"flex: 0 1 25%;\"\r\n (input)=\"onChange()\"\r\n >\r\n <input\r\n [formControl]=\"minuteControl\"\r\n [step]=\"minuteStep\"\r\n [min]=\"0\"\r\n [max]=\"59\"\r\n type=\"number\"\r\n style=\"flex: 0 1 25%;\"\r\n (input)=\"onChange()\"\r\n >\r\n <input\r\n [formControl]=\"secondControl\"\r\n [step]=\"secondStep\"\r\n [min]=\"0\"\r\n [max]=\"59\"\r\n type=\"number\"\r\n style=\"flex: 0 1 25%;\"\r\n (input)=\"onChange()\"\r\n *ngIf=\"instance?.component?.dataFormat === 'HH:mm:ss' ||\r\n instance?.component?.dataFormat === 'HH:mm:ss.SSS'\"\r\n >\r\n <button\r\n [disabled]=\"instance?.component?.disabled\"\r\n style=\"flex: 0 1 25%;\"\r\n (click)=\"changePeriod()\"\r\n >\r\n {{period}}\r\n </button>\r\n </div>\r\n <mat-error *ngIf=\"instance.error\">{{ instance.error.message }}</mat-error>\r\n </div>\r\n </ng-template>\r\n `\r\n})\r\n\r\nexport class MaterialTimeComponent extends MaterialComponent {\r\n public disabled = false;\r\n public period = 'AM';\r\n public hourControl: FormControl = new FormControl();\r\n public minuteControl: FormControl = new FormControl();\r\n public secondControl: FormControl = new FormControl();\r\n @Output() selectedEvent = new EventEmitter<any>();\r\n @Input() hourStep = 1;\r\n @Input() minuteStep = 1;\r\n @Input() secondStep = 1;\r\n @Input() renderElementOnly = false;\r\n\r\n setDisabled(disabled) {\r\n if (disabled) {\r\n this.hourControl.disable();\r\n this.minuteControl.disable();\r\n this.secondControl.disable();\r\n }\r\n }\r\n\r\n get dataFormat() {\r\n let format = this.instance.component.dataFormat;\r\n format = format ? format : 'HH:mm';\r\n return format;\r\n }\r\n\r\n setInstance(instance) {\r\n super.setInstance(instance);\r\n // this.control.setValue('00:00:00');\r\n this.onChange();\r\n }\r\n\r\n onChange() {\r\n const hours = this.hourControl.value;\r\n const minutes = this.minuteControl.value || '00';\r\n const seconds = this.secondControl.value || '';\r\n const rawValue = `${hours || '00'}:${minutes}${seconds ? ':' + seconds : ''} ${this.period}`;\r\n let value = this.getTwentyFourHourTime(rawValue);\r\n\r\n if (!hours) {\r\n value = this.instance.emptyValue;\r\n }\r\n\r\n this.control.setValue(value);\r\n if (this.instance) {\r\n super.onChange();\r\n }\r\n this.selectedEvent.emit(this.control);\r\n }\r\n\r\n setValue(value) {\r\n if (!value) {\r\n return;\r\n }\r\n super.setValue(value);\r\n const [hourValue, minuteValue, period] = value.split(':');\r\n this.hourControl.setValue(hourValue);\r\n this.minuteControl.setValue(minuteValue);\r\n // fix for default value with seconds instead of period\r\n this.period = period === ('AM' || 'PM') ? period : this.period;\r\n }\r\n\r\n getTwentyFourHourTime(amPmString) {\r\n const moment = moment_;\r\n return moment(amPmString, ['h:mm:ss A']).format(this.dataFormat);\r\n }\r\n\r\n changePeriod() {\r\n this.period = this.period === 'AM' ? 'PM' : 'AM';\r\n this.onChange();\r\n }\r\n}\r\n\r\nTimeComponent.MaterialComponent = MaterialTimeComponent;\r\nexport { TimeComponent };\r\n","import {Component, EventEmitter, Input, NgModule, Output, ViewChild} from '@angular/core';\r\nimport { MaterialComponent } from '../MaterialComponent';\r\n@Component({\r\n selector: 'mat-formio-calendar',\r\n styles: [\r\n `.calendar, .formio-time {\r\n padding: 16px;\r\n background-color: white;\r\n box-shadow: 0 2px 1px -1px rgba(0,0,0,.2), 0 1px 1px 0 rgba(0,0,0,.14), 0 1px 3px 0 rgba(0,0,0,.12);\r\n }\r\n .formio-time {\r\n display: flex;\r\n }\r\n `\r\n ],\r\n template: `\r\n <div class=\"container\" style=\"display:flex; flex-direction:row; flex-wrap:wrap; gap:0.5%;\">\r\n <div [ngStyle]=\"getPopupStyles()\">\r\n <mat-card appearance=\"outlined\" style=\"padding: 0;\">\r\n <mat-calendar\r\n [dateFilter]=\"dateFilter\"\r\n [maxDate]=\"maxDate\"\r\n [minDate]=\"minDate\"\r\n [selected]=\"selectedDate\"\r\n (selectedChange)=\"onDate($event)\"\r\n class=\"calendar\"\r\n *ngIf=\"enableDate !== false\"\r\n >\r\n </mat-calendar>\r\n <mat-formio-time\r\n #time\r\n [hourStep]=\"hourStep\"\r\n [instance]=\"instance\"\r\n [renderElementOnly]=\"true\"\r\n [minuteStep]=\"minuteStep\"\r\n (selectedEvent)=\"onTime($event)\"\r\n class=\"ml-3 formio-time\"\r\n *ngIf=\"enableTime\"\r\n >\r\n </mat-formio-time>\r\n </mat-card>\r\n </div>\r\n </div>\r\n `\r\n})\r\n\r\nexport class MaterialCalendarComponent extends MaterialComponent {\r\n public selectedDate: any;\r\n public selectedTime: any;\r\n public selectedTimeComponent: any;\r\n\r\n @ViewChild('time') time;\r\n\r\n @Input() enableDate: boolean;\r\n @Input() enableTime: boolean;\r\n @Input() minDate: any;\r\n @Input() maxDate: any;\r\n @Input() dateFilter: any;\r\n @Input() hourStep: any;\r\n @Input() minuteStep: any;\r\n @Output() timeSelectEvent = new EventEmitter<any>();\r\n @Output() dateSelectEvent = new EventEmitter<any>();\r\n\r\n setInstance(instance: any) {\r\n super.setInstance(instance);\r\n }\r\n\r\n setExistedDate(value) {\r\n this.selectedDate = value;\r\n }\r\n\r\n setExistedTime(value, forTime) {\r\n this.selectedTime = value;\r\n this.time.setValue(forTime);\r\n }\r\n\r\n onDate(event){\r\n this.selectedDate = event;\r\n this.dateSelectEvent.emit(this.selectedDate);\r\n }\r\n\r\n onTime(event) {\r\n this.selectedTime = event.value;\r\n this.timeSelectEvent.emit(this.selectedTime);\r\n }\r\n\r\n getPopupStyles() {\r\n return {\r\n position: 'absolute',\r\n zIndex: '1000',\r\n display: 'flex',\r\n maxWidth: '100%',\r\n maxHeight: '100%',\r\n top: '90px',\r\n left: '30px'\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, forwardRef, Input } from '@angular/core';\r\nimport { MAT_INPUT_VALUE_ACCESSOR } from '@angular/material/input';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: 'input[matMask]',\r\n providers: [\r\n {provide: MAT_INPUT_VALUE_ACCESSOR, useExisting: MaskDirective},\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => MaskDirective),\r\n multi: true,\r\n }\r\n ]\r\n})\r\nexport class MaskDirective {\r\n @Input('matMask') format: (value: string) => string;\r\n private _value: string | null;\r\n\r\n constructor(private elementRef: ElementRef<HTMLInputElement>) {}\r\n\r\n\r\n get value(): string | null {\r\n return this._value;\r\n }\r\n\r\n @Input('value')\r\n set value(value: string | null) {\r\n this._value = value;\r\n this.formatValue(value);\r\n }\r\n\r\n private formatValue(value: string | null) {\r\n if (value !== null) {\r\n this.elementRef.nativeElement.value = this.format(value);\r\n }\r\n else {\r\n this.elementRef.nativeElement.value = '';\r\n }\r\n }\r\n\r\n _onChange(value: any): void {\r\n }\r\n\r\n writeValue(value: any) {\r\n this._value = value;\r\n this.formatValue(this._value); // format Value\r\n }\r\n\r\n registerOnChange(fn: (value: any) => void) {\r\n this._onChange = fn;\r\n }\r\n\r\n registerOnTouched() {\r\n }\r\n}\r\n","import { Component, ViewChild } from '@angular/core'\r\nimport { MaterialComponent } from '../MaterialComponent';\r\nimport DateTimeComponent from 'formiojs/components/datetime/DateTime.js';\r\nimport { momentDate } from 'formiojs/utils/utils.js';\r\nimport { FormControl } from '@angular/forms';\r\n@Component({\r\n selector: 'mat-formio-date',\r\n host: {\r\n '(document:click)': 'clickOutside($event)',\r\n },\r\n template: `\r\n <mat-formio-form-field [instance]=\"instance\" [componentTemplate]=\"componentTemplate\"></mat-formio-form-field>\r\n <ng-template #componentTemplate let-hasLabel>\r\n <mat-label *ngIf=\"hasLabel\" fxFill>\r\n <span [instance]=\"instance\" matFormioLabel></span>\r\n </mat-label>\r\n\r\n <form class=\"example-form\">\r\n <mat-datepicker-toggle [disabled]=\"isDisabled()\" (click)=\"toggleCalendar($event)\">\r\n <mat-icon matDatepickerToggleIcon *ngIf=\"enableTime && !enableDate\">schedule</mat-icon>\r\n </mat-datepicker-toggle>\r\n <mat-form-field class=\"example-full-width\">\r\n <input\r\n *ngIf=\"enableTime && enableDate\"\r\n matInput\r\n type=\"datetime-local\"\r\n [placeholder]=\"instance.component.placeholder\"\r\n [formControl]=\"displayControl\"\r\n (input)=\"onChangeInput()\"\r\n [readonly]=\"!allowManualInput\"\r\n >\r\n <input\r\n *ngIf=\"enableTime && !enableDate\"\r\n matInput\r\n [placeholder]=\"instance.component.placeholder\"\r\n [formControl]=\"displayControl\"\r\n [matMask]=\"formatTime\"\r\n (input)=\"onChangeInput()\"\r\n [readonly]=\"!allowManualInput\"\r\n >\r\n <input\r\n *ngIf=\"!enableTime && enableDate\"\r\n matInput\r\n [placeholder]=\"instance.component.placeholder\"\r\n [formControl]=\"displayControl\"\r\n (input)=\"onChangeInput()\"\r\n [readonly]=\"!allowManualInput\"\r\n >\r\n </mat-form-field>\r\n\r\n <mat-formio-calendar\r\n #calendar\r\n [minDate]=\"instance.component.datePicker.minDate || ''\"\r\n [maxDate]=\"instance.component.datePicker.maxDate || ''\"\r\n [dateFilter]=\"dateFilter\"\r\n [hidden]=\"!isPickerOpened\"\r\n (dateSelectEvent)=\"onChangeDate($event)\"\r\n (timeSelectEvent)=\"onChangeTime($event)\"\r\n [enableDate]=\"enableDate\"\r\n [enableTime]=\"enableTime\"\r\n [hourStep]=\"instance.component.timePicker.hourStep\"\r\n [minuteStep]=\"instance.component.timePicker.minuteStep\"\r\n [instance]=\"instance\"\r\n ></mat-formio-calendar>\r\n <mat-error *ngIf=\"instance.error\">{{ instance.error.message }}</mat-error>\r\n </form>\r\n </ng-template>\r\n `\r\n})\r\n\r\nexport class MaterialDateComponent extends MaterialComponent {\r\n public timeControl: FormControl = new FormControl();\r\n public displayControl: FormControl = new FormControl();\r\n public isPickerOpened: boolean;\r\n public selectedDate: any;\r\n public selectedTime: any = '00:00';\r\n public allowManualInput: boolean = true;\r\n\r\n @ViewChild('calendar') calendar;\r\n\r\n get enableDate() {\r\n return this.instance && this.instance.component.enableDate !== false;\r\n }\r\n\r\n get enableTime() {\r\n return this.instance && this.instance.component.enableTime === true;\r\n }\r\n\r\n setDisplayControlValue(value = null) {\r\n const format = `YYYY-MM-DD${this.enableTime ? 'THH:mm' : ''}`;\r\n value = value || this.getDateTimeValue();\r\n\r\n if (value) {\r\n this.displayControl.setValue(momentDate(value).format(format));\r\n }\r\n else {\r\n this.displayControl.setValue('');\r\n }\r\n }\r\n\r\n onChangeDate(event) {\r\n this.selectedDate = momentDate(event).utc().format();\r\n this.control.setValue(this.selectedDate);\r\n this.setDateTime();\r\n }\r\n\r\n onChangeTime(time) {\r\n this.selectedTime = time;\r\n if (this.selectedDate || (this.enableTime && !this.enableDate)) {\r\n this.setDateTime();\r\n }\r\n }\r\n\r\n onChangeInput() {\r\n const value = this.dateFilter(this.displayControl.value) &&\r\n this.checkMinMax(this.displayControl.value) ? this.displayControl.value : '';\r\n\r\n this.control.setValue(value);\r\n this.onChange();\r\n }\r\n\r\n getDateTimeValue() {\r\n let newDate = '';\r\n let isSelectedTime = false;\r\n\r\n if (this.calendar && this.calendar.selectedTime) {\r\n const { selectedTime } = this.calendar;\r\n isSelectedTime = true;\r\n\r\n if (this.selectedTime !== selectedTime) {\r\n this.selectedTime = selectedTime;\r\n }\r\n }\r\n\r\n if (this.enableTime && this.enableDate) {\r\n const [hours, minutes] = this.selectedTime.split(':');\r\n newDate = isSelectedTime\r\n ? momentDate(this.selectedDate)\r\n .hours(Number.parseInt(hours))\r\n .minutes(Number.parseInt(minutes))\r\n .utc()\r\n : this.selectedDate;\r\n }\r\n\r\n if (!this.enableTime && this.enableDate) {\r\n newDate = this.selectedDate;\r\n }\r\n\r\n if (this.enableTime && !this.enableDate) {\r\n const [hours, minutes] = this.selectedTime.split(':');\r\n newDate = momentDate(new Date())\r\n .hours(Number.parseInt(hours))\r\n .minutes(Number.parseInt(minutes))\r\n .seconds(0)\r\n .utc();\r\n }\r\n\r\n return newDate;\r\n }\r\n\r\n setDateTime() {\r\n this.control.setValue(this.getDateTimeValue());\r\n this.onChange();\r\n }\r\n\r\n setInstance(instance: any) {\r\n super.setInstance(instance);\r\n this.isDisabled() ? this.control.disable() : this.control.enable();\r\n this.isDisabled() ? this.displayControl.disable() : this.displayControl.enable();\r\n\r\n if (this.instance) {\r\n this.allowManualInput = this.instance.component.allowInput === false ? false : true;\r\n if (this.instance.component && this.instance.component.datePicker) {\r\n const { minDate: min, maxDate: max } = this.instance.component.datePicker;\r\n\r\n // It improves the date to the full format if the customer set only a year. Otherwise we will have conflicts into the moment.js.\r\n const { minDate, maxDate } = this.improveMinMaxDate(min, max);\r\n this.instance.component.datePicker.minDate = minDate;\r\n this.instance.component.datePicker.maxDate = maxDate;\r\n }\r\n }\r\n }\r\n\r\n toggleCalendar(event) {\r\n if (!this.isDisabled()) {\r\n if (!this.isPickerOpened) {\r\n const date = this.getValue();\r\n if (date && this.checkMinMax(date)) {\r\n if (this.enableDate && this.calendar && !this.calendar.selectedDate) {\r\n this.calendar.setExistedDate(momentDate(date).toDate())\r\n }\r\n\r\n if (this.enableTime && this.calendar && !this.calendar.selectedTime) {\r\n const time = momentDate(date)\r\n this.calendar.setExistedTime(time.format('HH:mm'), time.format('h:mm:A'))\r\n }\r\n }\r\n }\r\n this.isPickerOpened = !this.isPickerOpened;\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n isDisabled() {\r\n const { readonly, disabled } = this.instance.component;\r\n return readonly || disabled || this.instance.root.options.readOnly\r\n }\r\n\r\n public formatTime = (value) => {\r\n if (!value) {\r\n return this.instance.emptyValue;\r\n }\r\n return momentDate(value).format(this.instance.component.format);\r\n }\r\n\r\n setValue(value) {\r\n if (this.dateFilter(value) && this.checkMinMax(value)) {\r\n this.setDisplayControlValue(value);\r\n super.setValue(value);\r\n }\r\n }\r\n\r\n onChange() {\r\n const value = this.dateFilter(this.getValue()) && this.checkMinMax(this.getValue()) ? this.getValue() : '';\r\n this.setDisplayControlValue(value);\r\n }\r\n\r\n beforeSubmit() {\r\n this.onChange();\r\n super.beforeSubmit();\r\n }\r\n\r\n checkMinMax(value) {\r\n let isValid = true;\r\n const { minDate: min, maxDate: max } = this.instance.component.datePicker;\r\n const { minDate, maxDate } = this.improveMinMaxDate(min, max);\r\n\r\n if (minDate) {\r\n isValid = momentDate(value).isSameOrAfter(minDate);\r\n }\r\n if (maxDate && isValid) {\r\n isValid = momentDate(value).isSameOrBefore(maxDate);\r\n }\r\n return isValid;\r\n }\r\n\r\n disableWeekends(d: Date) {\r\n if (d && d.getDay) {\r\n const day = d.getDay();\r\n return day !== 0 && day !== 6;\r\n }\r\n return true;\r\n }\r\n\r\n disableDates(dates: Array<string>, d: Date) {\r\n const formattedDates = dates.map((date) => momentDate(date).format('YYYY-MM-DD'));\r\n return !formattedDates.includes(momentDate(d).format('YYYY-MM-DD'));\r\n }\r\n\r\n dateFilter = (d: Date | null): boolean => {\r\n const isValid = this.instance.component.datePicker.disableWeekends ? this.disableWeekends(d) : true;\r\n return this.instance.component.widget.disabledDates && isValid ?\r\n this.disableDates(this.instance.component.widget.disabledDates.split(','), d) : isValid;\r\n }\r\n\r\n clickOutside(event) {\r\n if (this.isPickerOpened && (event.target.classList.value == \"mat-calendar-body-cell-content mat-focus-indicator mat-calendar-body-today\" || event.target.classList.value == \"mat-calendar-body\" || event.target.classList.value == \"mat-calendar-body-cell mat-calendar-body-active\" || event.target.classList.value == '' || event.target.classList.value == \"mat-calendar-body-label\" || event.target.classList.value == \"mat-calendar-table-header-divider\" || event.target.classList.value == \"mat-calendar-controls\" || event.target.classList.value == \"mat-button-wrapper\" || event.target.classList.value == \"mat-calendar-header\" || event.target.classList.value == \"mat-calendar-arrow mat-calendar-invert\" || event.target.classList.value == \"mat-calendar-content cdk-focused cdk-mouse-focused\" || event.target.classList.value == \"mat-calendar calendar ng-star-inserted\" || event.target.classList.value == \"mat-focus-indicator mat-calendar-period-button mat-button mat-button-base cdk-focused cdk-mouse-focused\" || event.target.classList.value == 'mat-calendar-body-cell-content mat-focus-indicator' || event.target.classList.value == \"mat-focus-indicator mat-calendar-next-button mat-icon-button mat-button-base cdk-focused cdk-mouse-focused\" || event.target.classList.value == \"mat-focus-indicator mat-calendar-previous-button mat-icon-button mat-button-base cdk-focused cdk-mouse-focused\")) {\r\n this.isPickerOpened = true;\r\n } else {\r\n if (event.target.classList.value == 'mat-calendar-body-cell-content mat-focus-indicator mat-calendar-body-selected' && this.isPickerOpened) {\r\n this.toggleCalendar(event);\r\n } else {\r\n this.isPickerOpened = false;\r\n }\r\n }\r\n // if (event.target.classList.contains('mat-calendar-body-selected') && this.isPickerOpened) {\r\n // this.toggleCalendar(event);\r\n // }\r\n\r\n }\r\n\r\n improveMinMaxDate(minDate, maxDate) {\r\n if (minDate && minDate.length === 4) {\r\n minDate = momentDate(`${minDate}-01-01`).format('YYYY-MM-DD');\r\n }\r\n\r\n if (maxDate && maxDate.length === 4) {\r\n maxDate = momentDate(`${maxDate}-01-01`).subtract(1, 'day').format('YYYY-MM-DD');\r\n }\r\n return { minDate, maxDate };\r\n }\r\n}\r\nDateTimeComponent.MaterialComponent = MaterialDateComponent;\r\nexport { DateTimeComponent };\r\n","import { Component } from '@angular/core';\r\nimport { MaterialComponent } from '../MaterialComponent';\r\n// import CheckboxComponent from 'formiojs/components/checkbox/Checkbox.js';\r\nimport CheckboxComponent from 'formiojs/components/checkbox/Checkbox.js';\r\nimport _ from 'lodash';\r\n\r\n@Component({\r\n selector: 'mat-formio-checkbox',\r\n template: `\r\n <mat-checkbox (change)=\"onChange()\" [ngClass]=\"{'validation-error' : !!instance.error}\"\r\n [formControl]=\"control\"\r\n >\r\n <span matFormioLabel [instance]=\"instance\"></span>\r\n <mat-icon *ngIf=\"instance.component.tooltip\" matSuffix\r\n matTooltip=\"{{ instance.component.tooltip }}\" style=\"font-size: 1rem;\">info\r\n </mat-icon>\r\n </mat-checkbox>\r\n <mat-hint>\r\n {{ instance.component.description }}\r\n </mat-hint>\r\n <mat-error *ngIf=\"instance.error\">{{ instance.error.message }}</mat-error>\r\n `,\r\n styles:[`\r\n::ng-deep .mat-mdc-checkbox.validation-error .mdc-checkbox__background {\r\n border-color: red;\r\n}\r\n`\r\n\r\n]\r\n})\r\nexport class MaterialCheckboxComponent extends MaterialComponent {\r\n getValue() {\r\n return _.isNil(this.control.value) ? '' : this.control.value;\r\n }\r\n}\r\nCheckboxComponent.MaterialComponent = MaterialCheckboxComponent;\r\nexport { CheckboxComponent };\r\n","import { Component } from '@angular/core';\r\nimport FieldsetComponent from 'formiojs/components/fieldset/Fieldset.js';\r\nimport { MaterialNestedComponent } from '../MaterialNestedComponent';\r\n@Component({\r\n selector: 'mat-formio-fieldset',\r\n template: `\r\n <fieldset>\r\n <legend [attr.ref]=\"'header'\">\r\n {{ instance.component.legend }}\r\n <mat-icon *ngIf=\"instance.component.tooltip\"\r\n matSuffix\r\n matTooltip=\"{{ instance.component.tooltip }}\"\r\n >\r\n info\r\n </mat-icon>\r\n </legend>\r\n <div class=\"fieldset-body\" [attr.ref]=\"instance.component.key\" style=\"display:flex; flex-direction:column; gap:1em;\">\r\n <ng-template #components></ng-template>\r\n </div>\r\n </fieldset>\r\n `,\r\n styles: []\r\n})\r\nexport class MaterialFieldsetComponent extends MaterialNestedComponent {}\r\nFieldsetComponent.MaterialComponent = MaterialFieldsetComponent;\r\nexport { FieldsetComponent };\r\n","import { Component } from '@angular/core';\r\nimport { MaterialComponent } from '../MaterialComponent';\r\nimport ContentComponent from 'formiojs/components/content/Content.js';\r\n@Component({\r\n selector: 'mat-formio-content',\r\n template: `<div [innerHTML]=\"instance.content\"></div>`\r\n})\r\nexport class MaterialContentComponent extends MaterialComponent {}\r\nContentComponent.MaterialComponent = MaterialContentComponent;\r\nexport { ContentComponent };\r\n","import { Component, ViewChild, ElementRef, AfterViewInit } from '@angular/core';\r\nimport { MaterialComponent } from '../MaterialComponent';\r\nimport SignatureComponent from 'formiojs/components/signature/Signature.js';\r\n@Component({\r\n selector: 'mat-formio-signature',\r\n template: `\r\n <mat-formio-form-field [instance]=\"instance\" [componentTemplate]=\"componentTemplate\"></mat-formio-form-field>\r\n <ng-template #componentTemplate let-hasLabel>\r\n <div #signature>\r\n\r\n <mat-label *ngIf=\"hasLabel\">\r\n <span [instance]=\"instance\" matFormioLabel></span>\r\n </mat-label>\r\n\r\n <button mat-icon-button [ngStyle]=\"{position: 'absolute'}\" ref=\"refresh\">\r\n <mat-icon>refresh</mat-icon>\r\n </button>\r\n\r\n <div class=\"signature-pad-body\"\r\n [ngStyle]=\"{width: instance.component.width, height: instance.component.height, padding: 0, margin: 0}\"\r\n [attr.tabindex]=\"instance.component.tabindex || 0\"\r\n ref=\"padBody\"\r\n >\r\n <canvas class=\"signature-pad-canvas\"\r\n [attr.height]=\"instance.component.height\"\r\n ref=\"canvas\"\r\n ></canvas>\r\n <img style=\"width:100%; height:100%;\" [ngStyle]=\"{display: 'none'}\" ref=\"signatureImage\">\r\n </div>\r\n <div *ngIf=\"instance.component.footer\"\r\n class=\"signature-pad-footer\"\r\n style=\"display:flex; flex-direction:row; justify-content:center; align-items:center;\"\r\n >\r\n <mat-hint>{{ instance.t(instance.component.footer) }}</mat-hint>\r\n </div>\r\n </div>\r\n </ng-template>\r\n `\r\n})\r\nexport class MaterialSignatureComponent extends MaterialComponent implements AfterViewInit {\r\n @ViewChild('signature') signatureElement: ElementRef;\r\n\r\n renderComponents() {\r\n if (this.signatureElement) {\r\n this.instance.attach(this.signatureElement.nativeElement);\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.renderComponents();\r\n }\r\n}\r\nSignatureComponent.MaterialComponent = MaterialSignatureComponent;\r\nexport { SignatureComponent };\r\n","import { Component } from '@angular/core';\r\nimport { MaterialComponent } from '../MaterialComponent';\r\nimport SurveyComponent from 'formiojs/components/survey/Survey.js';\r\nimport { FormControl } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'mat-formio-survey',\r\n template: `\r\n\r\n <mat-formio-form-field\r\n [instance]=\"instance\"\r\n [componentTemplate]=\"componentTemplate\"\r\n [showDescription]=\"false\"\r\n ></mat-formio-form-field>\r\n <ng-template #componentTemplate let-hasLabel>\r\n\r\n <table class=\"mat-elevation-z8 mat-table\" fxFill>\r\n <thead>\r\n <tr class=\"mat-header-row\">\r\n <th class=\"mat-header-cell\">\r\n <h2 *ngIf=\"hasLabel\">\r\n <span [instance]=\"instance\" matFormioLabel></span>\r\n </h2>\r\n </th>\r\n <th class=\"mat-header-cell\"\r\n *ngFor=\"let value of instance.component.values\"\r\n style=\"text-align: center;\"\r\n >\r\n {{ value.label }}\r\n </th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody>\r\n <tr class=\"mat-row\" *ngFor=\"let question of instance.component.questions; index as i;\">\r\n <td class=\"mat-cell\">{{ question.label }}</td>\r\n <td class=\"mat-cell\"\r\n *ngFor=\"let value of instance.component.values; index as j;\"\r\n style=\"text-align: center;\"\r\n >\r\n <mat-radio-group (change)=\"onChange()\"\r\n [formControl]=\"getFormControl(question.value)\"\r\n [name]=\"getUniqueName(question.value)\"\r\n >\r\n <mat-radio-button [value]=\"value.value\"></mat-radio-button>\r\n </mat-radio-group>\r\n </td>\r\n </tr>\r\n <mat-hint *ngIf=\"instance.component.description\" class=\"mat-formio-component-description\">\r\n {{ instance.component.description }}\r\n </mat-hint>\r\n </tbody>\r\n\r\n <mat-error *ngIf=\"instance.error\">{{ instance.error.message }}</mat-error>\r\n </table>\r\n </ng-template>\r\n `\r\n})\r\nexport class MaterialSurveyComponent extends MaterialComponent {\r\n public controls: any = {};\r\n getFormControl(question) {\r\n if (!this.controls[question]) {\r\n this.controls[question] = new FormControl();\r\n if (this.instance.shouldDisabled) {\r\n this.controls[question].disable();\r\n }\r\n }\r\n return this.controls[question];\r\n }\r\n\r\n setDisabled(disabled) {\r\n const method = disabled ? 'disable' : 'enable';\r\n for (const question in this.controls) {\r\n if (this.controls.hasOwnProperty(question)) {\r\n this.controls[question][method]();\r\n }\r\n }\r\n }\r\n\r\n getValue() {\r\n const values = {};\r\n for (const question in this.controls) {\r\n if (this.controls.hasOwnProperty(question)) {\r\n values[question] = this.controls[question].value || false;\r\n }\r\n }\r\n return values;\r\n }\r\n\r\n setValue(value) {\r\n for (const question in value) {\r\n if (value.hasOwnProperty(question)) {\r\n const control = this.getFormControl(question);\r\n if (control) {\r\n control.setValue(value[question] || false);\r\n }\r\n }\r\n }\r\n }\r\n\r\n getUniqueName(question) {\r\n return `${this.instance.id}-${question}`;\r\n }\r\n}\r\nSurveyComponent.MaterialComponent = MaterialSurveyComponent;\r\nexport { SurveyComponent };\r\n","import { Component } from '@angular/core';\r\nimport { MaterialComponent } from '../MaterialComponent';\r\nimport RadioComponent from 'formiojs/components/radio/Radio.js';\r\n\r\n@Component({\r\n selector: 'mat-formio-radio',\r\n template: `\r\n <mat-formio-form-field [instance]=\"instance\" [componentTemplate]=\"componentTemplate\"></mat-formio-form-field>\r\n <ng-template #componentTemplate let-hasLabel>\r\n <div style=\"display:flex; flex-direction:column;\">\r\n <mat-label *ngIf=\"hasLabel\">\r\n <span [instance]=\"instance\" matFormioLabel></span>\r\n </mat-label>\r\n\r\n <mat-radio-group\r\n (change)=\"onChange()\"\r\n [formControl]=\"control\"\r\n style=\"display:flex; margin-left:10px; gap:10px;\"\r\n [style.flex-direction]=\"getLayout()\"\r\n >\r\n <mat-radio-button *ngFor=\"let option of instance.component.values\"\r\n value=\"{{ option.value }}\"\r\n [checked]=\"isRadioChecked(option)\"\r\n (keyup.space)=\"clearValue($event, option)\"\r\n (click)=\"clearValue($event, option)\"\r\n >\r\n {{ option.label }}\r\n </mat-radio-button>\r\n <mat-error *ngIf=\"instance.error\">{{ instance.error.message }}</mat-error>\r\n </mat-radio-group>\r\n </div>\r\n </ng-template>\r\n `\r\n})\r\nexport class MaterialRadioComponent extends MaterialComponent {\r\n getLayout() {\r\n return this.instance.component.inline ? 'row' : 'column';\r\n }\r\n\r\n isRadioChecked(option) {\r\n return option.value === this.instance.dataValue;\r\n }\r\n\r\n clearValue(event, option) {\r\n if (this.isRadioChecked(option)) {\r\n event.preventDefault();\r\n this.deselectValue();\r\n }\r\n }\r\n\r\n deselectValue() {\r\n this.instance.updateValue(null, {\r\n modified: true,\r\n });\r\n }\r\n}\r\nRadioComponent.MaterialComponent = MaterialRadioComponent;\r\nexport { RadioComponent };\r\n","import { Component } from '@angular/core';\r\nimport { MaterialRadioComponent } from '../radio/radio.component';\r\nimport SelectBoxesComponent from 'formiojs/components/selectboxes/SelectBoxes.js';\r\n@Component({\r\n selector: 'mat-formio-selectboxes',\r\n template: `\r\n <mat-formio-form-field [instance]=\"instance\" [componentTemplate]=\"componentTemplate\"></mat-formio-form-field>\r\n <ng-template #componentTemplate let-hasLabel>\r\n <div style=\"display:flex; flex-direction:column;\">\r\n <mat-label *ngIf=\"hasLabel\">\r\n <span [instance]=\"instance\" matFormioLabel></span>\r\n </mat-label>\r\n <div\r\n style=\"display:flex; margin-left:10px; gap:10px;\"\r\n [style.flex-direction]=\"getLayout()\"\r\n >\r\n <mat-checkbox\r\n *ngFor=\"let option of instance.component.values\"\r\n (change)=\"onChange()\"\r\n [(ngModel)]=\"value[option.value]\"\r\n [disabled]=\"disabled\"\r\n >\r\n {{ option.label }}\r\n </mat-checkbox>\r\n <mat-error *ngIf=\"instance.error\">{{ instance.error.message }}</mat-error>\r\n </div>\r\n </div>\r\n </ng-template>\r\n `\r\n})\r\nexport class MaterialSelectBoxesComponent extends MaterialRadioComponent {\r\n public value: any = {};\r\n public disabled = false;\r\n\r\n setInstance(instance) {\r\n instance.component.values.forEach((option) => {\r\n this.value[option.value] = false;\r\n });\r\n super.setInstance(instance);\r\n }\r\n\r\n getValue() {\r\n return this.value;\r\n }\r\n\r\n setValue(value) {\r\n const normalizedValue = this.instance.normalizeValue(value);\r\n for (const prop in normalizedValue) {\r\n if (normalizedValue.hasOwnProperty(prop)) {\r\n this.value[prop] = normalizedValue[prop];\r\n }\r\n }\r\n }\r\n\r\n setDisabled(disabled) {\r\n this.disabled = !!disabled;\r\n }\r\n\r\n onChange() {\r\n this.instance.updateValue(this.getValue(), {modified: true});\r\n this.instance.triggerChange({modified: true});\r\n }\r\n}\r\nSelectBoxesComponent.MaterialComponent = MaterialSelectBoxesComponent;\r\nexport { SelectBoxesComponent };\r\n","import { Injectable } from '@angular/core';\r\nimport * as CryptoJS from 'crypto-js';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\ninterface VendorProductsResponse {\r\n code: number;\r\n data: any;\r\n message: string;\r\n statusCode: number;\r\n}\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CommonService {\r\n paramsData: any;\r\n includeDescription: any;\r\n vendorId: any;\r\n onlyActive: any;\r\n currentUser: any;\r\n private dropdownItemsSubject = new BehaviorSubject<any[]>([]);\r\n dropdownItems$ = this.dropdownItemsSubject.asObservable();\r\n private setFlag = new BehaviorSubject<boolean>(false); // Initialize with false\r\n dropdownflag$ = this.setFlag.asObservable(); // Observable that emits the boolean value\r\n holy: any = '';\r\n grail: any = '';\r\n //static sort_5 = '4sw==';\r\n private sort_5 = 'oOA==';\r\n private Lsort_5 = 'L/w==';\r\n private Jsort_5 = 'BaQ==';\r\n private Psort_5 = 'WVQ==';\r\n\r\n //static sales_2 = '2+T2NX';\r\n private sales_2 = 'gupVC1';\r\n private Lsales_2 = 'DyLI+G';\r\n private Jsales_2 = '5g63ak';\r\n private Psales_2 = 'HFQDgE';\r\n\r\n //static Mobile_4 = 'RR12R';\r\n private Mobile_4 = 'NV9VK';\r\n private LMobile_4 = '+P91l';\r\n private JMobile_4 = 'N+Bxw';\r\n private PMobile_4 = 'j4UMt';\r\n\r\n //static Id_2 = 'qUBQE';\r\n private Id_2 = 'W7TJv';\r\n private LId_2 = 'kAJ87';\r\n private JId_2 = 'I4PMB';\r\n private PId_2 = '4Ha4U';\r\n\r\n // static Name_1 = '8F/';\r\n private Name_1 = 'd3u';\r\n private LName_1 = 'UwX';\r\n private JName_1 = 'mCc';\r\n private PName_1 = 'nyP';\r\n\r\n private city = 'Vq';//1\r\n private state = 'drA2';//4\r\n private region = 'E/f';//2\r\n private territory = 'gZnA==';//6\r\n private country = '2sMK';//5\r\n private continent = 'Q5N2X';//3\r\n private Jcity = 'lk';//1\r\n private Jstate = 'rswL';//4\r\n private Jregion = 'xsH';//2\r\n private Jterritory = 'Xsow==';//6\r\n private Jcountry = 'n0bs';//5\r\n private Jcontinent = 'hQOoI';//3\r\n\r\n private Lcity = 'Aw';//1\r\n private Lstate = 'hrmx';//4\r\n private Lregion = 'MMC';//2\r\n private Lterritory = 'vVGQ==';//6\r\n private Lcountry = 'IqPc';//5\r\n private Lcontinent = 'CttR+';//3\r\n\r\n private Pcity = '7h';//1\r\n private Pstate = 'JtNz';//4\r\n private Pregion = 'FTl';//2\r\n private Pterritory = '/v+g==';//6\r\n private Pcountry = 'WFDd';//5\r\n private Pcontinent = 'sDt6N';//3\r\n\r\n\r\n constructor(public http: HttpClient) {\r\n this.currentUser = JSON.parse(localStorage.getItem('currentUser'));\r\n this.holy = CryptoJS.enc.Base64.parse(this.getcombodeal());\r\n this.grail = CryptoJS.enc.Base64.parse(this.getglobedata());\r\n\r\n this.paramsData = JSON.parse(localStorage.getItem('productPickerParams'));\r\n }\r\n\r\n getBaseApiUrl(): string | null {\r\n const baseUrlMapping = {\r\n 'bG9jYWxob3N0': 'http://localhost:58504',\r\n 'bGluY29sbi52YXJ0b3BpYS5jb20=': 'https://lincoln-api.vartopia.com',\r\n 'c3RhZ2UudmFydG9waWEuY29t': 'https://stage-api.vartopia.com',\r\n 'bXkudmFydG9waWEuY29t': 'https://reagan-api.vartopia.com',\r\n 'amFja3Nvbi52YXJ0b3BpYS5jb20=': 'https://jackson-api.vartopia.com',\r\n 'dWF0LnZhcnRvcGlhLmNvbQ==': 'https://uat-api.vartopia.com'\r\n };\r\n\r\n // Get the current hostname\r\n const hostname = window.location.hostname;\r\n return baseUrlMapping[btoa(hostname)] || null;\r\n }\r\n\r\n scrumble(msg) {\r\n if (msg !== null && msg !== undefined) {\r\n var conceal = this.getcampaign(msg, this.holy, this.grail);\r\n var sha256 = CryptoJS.HmacSHA256(CryptoJS.enc.Base64.stringify(this.grail) + conceal.toString(), CryptoJS.enc.Base64.stringify(this.holy));\r\n var hashInBase64 = CryptoJS.enc.Base64.stringify(sha256);\r\n let keyValue = {\r\n \"value\": conceal.toString(),\r\n \"mac\": hashInBase64\r\n };\r\n var result = JSON.stringify(keyValue);\r\n var jumbled = CryptoJS.enc.Utf8.parse(result);\r\n return CryptoJS.enc.Base64.stringify(jumbled);\r\n }\r\n }\r\n\r\n getcampaign(data: any, holy: any, grail: any) {\r\n return CryptoJS.AES.encrypt(data.toString(), holy,\r\n {\r\n blockSize: 128,\r\n iv: grail,\r\n mode: CryptoJS.mode.CBC,\r\n padding: CryptoJS.pad.Pkcs7\r\n });\r\n }\r\n\r\n /* Intialization of api path and queryparams */\r\n initializeApiPath(getUrl, queryParams: any): Observable<any> {\r\n if (queryParams?.length) {\r\n const changeToObject = this.convertToObject(queryParams);\r\n if (Object.keys(changeToObject).length) {\r\n const queryString = this.convertToQueryString(changeToObject);\r\n const baseApiUrl = this.getBaseApiUrl();\r\n var apiUrl = `${baseApiUrl}/api/` + getUrl;\r\n apiUrl += '?' + queryString;\r\n return this.http.get<VendorProductsResponse>(apiUrl);\r\n }\r\n }\r\n }\r\n\r\n /* Functon for convert array to object */\r\n convertToObject(queryParams) {\r\n if (queryParams.length) {\r\n var obj = {};\r\n queryParams.forEach(function (item) {\r\n obj[item.key] = item.value;\r\n });\r\n return obj;\r\n }\r\n }\r\n\r\n loadProducts(pageNumber, pazeSize, search: string = '', onlyActive: boolean = true, description: boolean = false, levelOneId: any, levelTwoId: any, levelThreeId: any, levelFourId: any): Observable<any> {\r\n this.paramsData = JSON.parse(localStorage.getItem('productPickerParams'));\r\n const baseApiUrl = this.getBaseApiUrl();\r\n const vendorId = this.getValueByKey(this.paramsData, 'vendorId');\r\n const programId = this.getValueByKey(this.paramsData, 'programId');\r\n let apiUrl = `${baseApiUrl}/api/VendorFormBuilder/GetVendorProductsV2?vendorId=${vendorId}&pageNumber=${pageNumber}&pageSize=${pazeSize}&search=${search}&onlyActive=${onlyActive}&includeDescription=${description}&levelOne=${levelOneId}&levelTwo=${levelTwoId}&levelThree=${levelThreeId}&levelFour=${levelFourId}`;\r\n if (programId) {\r\n apiUrl += `&programId=${programId}`;\r\n }\r\n return this.http.get<VendorProductsResponse>(apiUrl);\r\n }\r\n\r\n listSubCategory(category: string): Observable<any> {\r\n this.paramsData = JSON.parse(localStorage.getItem('productPickerParams'));\r\n const vendorId = this.getValueByKey(this.paramsData, 'vendorId');\r\n const baseApiUrl = this.getBaseApiUrl();\r\n return this.http.get<VendorProductsResponse>(`${baseApiUrl}/api/VendorFormBuilder/GetProductsSubCategory?vendorId=${vendorId}&categoryName=${category}`)\r\n }\r\n\r\n /* Append key and value to query string */\r\n convertToQueryString(queryParams) {\r\n const queryString = Object.keys(queryParams)\r\n .map(key => {\r\n if (queryParams[key] !== '' && queryParams[key] !== null) {\r\n return encodeURIComponent(key) + '=' + encodeURIComponent(queryParams[key]);\r\n } else {\r\n if (queryParams.hasOwnProperty('search')) {\r\n return encodeURIComponent(key) + '=' + encodeURIComponent(queryParams[key]);\r\n }\r\n }\r\n })\r\n .join('&');\r\n return queryString;\r\n }\r\n\r\n listProductCategory(): Observable<any> {\r\n this.paramsData = JSON.parse(localStorage.getItem('productPickerParams'));\r\n const vendorId = this.getValueByKey(this.paramsData, 'vendorId');\r\n const baseApiUrl = this.getBaseApiUrl();\r\n return this.http.get<VendorProductsResponse>(`${baseApiUrl}/api/VendorFormBuilder/GetProductsCategory?vendorId=${vendorId}`);\r\n }\r\n\r\n productLevelOne(): Observable<any> {\r\n this.paramsData = JSON.parse(localStorage.getItem('productPickerParams'));\r\n const baseApiUrl = this.getBaseApiUrl();\r\n const vendorId = this.getValueByKey(this.paramsData, 'vendorId');\r\n return this.http.get<VendorProductsResponse>(`${baseApiUrl}/api/VendorFormBuilder/GetProductLevelOne?vendorId=${vendorId}`);\r\n }\r\n\r\n productLevelTwo(levelOneId: any): Observable<any> {\r\n this.paramsData = JSON.parse(localStorage.getItem('productPickerParams'));\r\n const baseApiUrl = this.getBaseApiUrl();\r\n const vendorId = this.getValueByKey(this.paramsData, 'vendorId');\r\n return this.http.get<VendorProductsResponse>(`${baseApiUrl}/api/VendorFormBuilder/GetProductLevelTwo?levelOneId=${levelOneId}&vendorId=${vendorId}`);\r\n }\r\n\r\n productLevelThree(levelOneId: any, levelTwoId: any): Observable<any> {\r\n this.paramsData = JSON.parse(localStorage.getItem('productPickerParams'));\r\n const baseApiUrl = this.getBaseApiUrl();\r\n const vendorId = this.getValueByKey(this.paramsData, 'vendorId');\r\n return this.http.get<VendorProductsResponse>(`${baseApiUrl}/api/VendorFormBuilder/GetProductLevelThree?levelOneId=${levelOneId}&levelTwoId=${levelTwoId}&vendorId=${vendorId}`);\r\n }\r\n\r\n productLevelFour(levelOneId: any, levelTwoId: any, levelThreeId: any): Observable<any> {\r\n this.paramsData = JSON.parse(localStorage.getItem('productPickerParams'));\r\n const baseApiUrl = this.getBaseApiUrl();\r\n const vendorId = this.getValueByKey(this.paramsData, 'vendorId');\r\n return this.http.get<VendorProductsResponse>(`${baseApiUrl}/api/VendorFormBuilder/GetProductLevelFour?levelOneId=${levelOneId}&levelTwoId=${levelTwoId}&levelThreeId=${levelThreeId}&vendorId=${vendorId}`);\r\n }\r\n\r\n // Function to get value by key from the array\r\n getValueByKey(data, key) {\r\n if (!data || data.length === 0) {\r\n return null;\r\n }\r\n const item = data.find(kv => kv.key.toLowerCase() === key.toLowerCase());\r\n return item ? item.value : null;\r\n }\r\n\r\n /* Function for verify numbers and numbers with comma seperated values */\r\n onlyNumbers(str) {\r\n if (str) {\r\n return /^[0-9.,]+$/.test(str);\r\n }\r\n }\r\n /* End */\r\n\r\n setDropdownItems(items: any[]) {\r\n this.dropdownItemsSubject.next(items);\r\n }\r\n\r\n getDropdownItems() {\r\n return this.dropdownItemsSubject.getValue();\r\n }\r\n\r\n setDropDownFlag(flag: boolean) {\r\n this.setFlag.next(flag)\r\n }\r\n\r\n getDropDownFlag() {\r\n return this.setFlag.getValue();\r\n }\r\n\r\n /*Funtion to check if property is matched with given attributes in formBuilder or not */\r\n checkIsAttributeTrue(newProductPickerFlag, attributeName) {\r\n return newProductPickerFlag && Object.keys(newProductPickerFlag).some(key =>\r\n key.toLocaleLowerCase() === attributeName.toLowerCase() &&\r\n newProductPickerFlag[key].toLowerCase() === \"true\"\r\n );\r\n }\r\n\r\n getglobedata(): String {\r\n const hostMappings: { [key: string]: string } = {\r\n 'c3RhZ2UudmFydG9waWEuY29t': this.city + this.region + this.continent + this.state + this.country + this.territory,\r\n 'bGluY29sbi52YXJ0b3BpYS5jb20=': this.Lcity + this.Lregion + this.Lcontinent + this.Lstate + this.Lcountry + this.Lterritory,\r\n 'amFja3Nvbi52YXJ0b3BpYS5jb20=': this.Jcity + this.Jregion + this.Jcontinent + this.Jstate + this.Jcountry + this.Jterritory,\r\n 'bXkudmFydG9waWEuY29t': this.Pcity + this.Pregion + this.Pcontinent + this.Pstate + this.Pcountry + this.Pterritory,\r\n 'bG9jYWxob3N0': this.city + this.region + this.continent + this.state + this.country + this.territory,\r\n 'dWF0LnZhcnRvcGlhLmNvbQ==': this.Jcity + this.Jregion + this.Jcontinent + this.Jstate + this.Jcountry + this.Jterritory\r\n };\r\n const hostname = window.location.hostname;\r\n return hostMappings[btoa(hostname)] || '';\r\n }\r\n\r\n getcombodeal(): string {\r\n const hostMappings: { [key: string]: string } = {\r\n 'c3RhZ2UudmFydG9waWEuY29t': this.Name_1 + this.sales_2 + this.Id_2 + this.Mobile_4 + this.sort_5,\r\n 'bGluY29sbi52YXJ0b3BpYS5jb20=': this.LName_1 + this.Lsales_2 + this.LId_2 + this.LMobile_4 + this.Lsort_5,\r\n 'amFja3Nvbi52YXJ0b3BpYS5jb20=': this.JName_1 + this.Jsales_2 + this.JId_2 + this.JMobile_4 + this.Jsort_5,\r\n 'bXkudmFydG9waWEuY29t': this.PName_1 + this.Psales_2 + this.PId_2 + this.PMobile_4 + this.Psort_5,\r\n 'bG9jYWxob3N0': this.Name_1 + this.sales_2 + this.Id_2 + this.Mobile_4 + this.sort_5,\r\n 'dWF0LnZhcnRvcGlhLmNvbQ==': this.JName_1 + this.Jsales_2 + this.JId_2 + this.JMobile_4 + this.Jsort_5\r\n \r\n };\r\n const hostname = window.location.hostname;\r\n return hostMappings[btoa(hostname)] || '';\r\n }\r\n}","import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, OnDestroy, OnInit, Renderer2, ViewChild } from '@angular/core';\r\nimport { MaterialComponent } from '../MaterialComponent';\r\nimport SelectComponent from 'formiojs/components/select/Select.js';\r\nimport _ from 'lodash';\r\nimport { FormControl } from '@angular/forms';\r\nimport { Subject } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged, filter, takeUntil, tap } from 'rxjs/operators';\r\nimport { MatSelect } from '@angular/material/select';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { CommonService } from '../common.service';\r\n@Component({\r\n selector: 'mat-formio-select',\r\n template: `\r\n <mat-formio-form-field [instance]=\"instance\" [componentTemplate]=\"componentTemplate\"></mat-formio-form-field>\r\n <ng-template #componentTemplate let-hasLabel>\r\n <mat-form-field style=\"width:100%;\">\r\n\r\n <mat-label *ngIf=\"hasLabel\">\r\n <span [instance]=\"instance\" matFormioLabel></span>\r\n </mat-label>\r\n\r\n <span *ngIf=\"instance.component.prefix\" matPrefix>\r\n {{ instance.component.prefix }}&nbsp;\r\n </span>\r\n <mat-select\r\n [multiple]=\"instance.component.multiple\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"instance.component.placeholder\"\r\n (selectionChange)=\"onChange()\"\r\n [compareWith]=\"compareObjects\"\r\n #productSelect\r\n [panelClass]=\"addCustomClass(instance.component.key)\"\r\n >\r\n <mat-option>\r\n <ngx-mat-select-search [searching]=\"instance.component.key.toLowerCase() === 'vendorproductid' ? searching : false\" (input)=\"onInputChange($event)\" placeholderLabel=\"Type to search\" [formControl]=\"websiteMultiFilterCtrl\"> \r\n <mat-icon ngxMatSelectSearchClear (click)=\"clearProducts()\">close</mat-icon>\r\n </ngx-mat-select-search>\r\n </mat-option>\r\n\r\n <mat-option *ngFor=\"let option of filteredOptions | async\" [value]=\"option.value\" class=\"virtual-full-view\">\r\n <span [innerHTML]=\"option.label\"></span>\r\n </mat-option> \r\n <mat-option *ngIf=\"!filteredOptionsLength\" disabled>\r\n <span>Nothing was found</span>\r\n </mat-option>\r\n </mat-select>\r\n\r\n <span *ngIf=\"instance.component.suffix\" matSuffix>\r\n {{ instance.component.suffix }}\r\n </span>\r\n <mat-error *ngIf=\"isError()\" >{{ getErrorMessage() }}</mat-error>\r\n </mat-form-field>\r\n </ng-template>\r\n `,\r\n styles: [`\r\n .example-viewport {\r\n height: 200px;\r\n }\r\n \r\n .product-picker {\r\n overflow-x: hidden; /* Disable horizontal scrolling */\r\n }\r\n\r\n .virtual-full-view {\r\n height: auto !important;\r\n white-space: normal !important;\r\n line-height: 1.4 !important;\r\n text-overflow: initial !important;\r\n min-height: 48px !important;\r\n overflow: initial !important;\r\n padding-top: 10px !important;\r\n padding-bottom: 10px !important;\r\n }\r\n\r\n ::ng-deep .product-picker .cdk-virtual-scroll-content-wrapper {\r\n width: 100% !important;\r\n }\r\n\r\n .virtual-full-view .mat-pseudo-checkbox {\r\n align-self: top !important;\r\n }\r\n\r\n`]\r\n})\r\nexport class MaterialSelectComponent extends MaterialComponent implements OnInit, AfterViewInit, OnDestroy {\r\n selectOptions: Promise<any[]>;\r\n filteredOptions: Promise<any[]>;\r\n filteredOptionsLength: number;\r\n selectOptionsResolve: any;\r\n public websiteMultiCtrl: FormControl = new FormControl();\r\n public websiteMultiFilterCtrl: FormControl = new FormControl();\r\n @ViewChild('multiSelect', { static: true }) multiSelect: MatSelect;\r\n protected _onDestroy = new Subject();\r\n @ViewChild('productSelect') selectElem: MatSelect;\r\n // Variables to track pagination\r\n pageNumber = 1;\r\n pageSize = 20;\r\n totalPages = 0;\r\n searchQuery = '';\r\n productsloadingFlag: boolean = false;\r\n public searching = false;\r\n productList: any[] = [];\r\n selectedValue: any = '';\r\n searchItem = \"\";\r\n // Variable to hold the reference to the current panel element\r\n private currentPanelElement: HTMLElement | null = null;\r\n openCounter: number = 1\r\n firstDropdownItems: any = [];\r\n secondDropdownItems: any = [];\r\n storeValue: any = []\r\n storeDependentItems: any = [];\r\n executionFlag: boolean = false;\r\n private apiCounter: number = 0;\r\n checkAttribute: any;\r\n constructor(public element: ElementRef, public ref: ChangeDetectorRef, public http: HttpClient, public commonService: CommonService) {\r\n super(element, ref);\r\n }\r\n\r\n onInputChange(event: any) {\r\n if (this.instance.component.key.toLowerCase() === 'vendorproductid' && event.target.value === '') {\r\n this.onClearAll();\r\n }\r\n }\r\n\r\n clearProducts() {\r\n if (this.instance.component.key.toLowerCase() === 'vendorproductid') {\r\n this.onClearAll();\r\n this.searchItem = \"\";\r\n\r\n }\r\n }\r\n\r\n registerPanelScrollEvent(selectElem: MatSelect) {\r\n if (selectElem && selectElem?.panel) {\r\n // const panelElement = selectElem.panel.nativeElement;\r\n this.currentPanelElement = selectElem.panel.nativeElement;\r\n this.currentPanelElement.addEventListener('scroll', this.onScroll.bind(this));\r\n }\r\n }\r\n\r\n addCustomClass(key) {\r\n return 'walkme_select_' + key;\r\n }\r\n\r\n onScroll(event) {\r\n if (this.instance.component.key.toLowerCase() === 'vendorproductid') {\r\n const scrollElement = event.target;\r\n if (!scrollElement) return; // Ensure scrollElement is not undefined\r\n const trackHeight = scrollElement.scrollHeight - scrollElement.offsetHeight;\r\n if (isNaN(trackHeight) || trackHeight <= 0) return; // Check if trackHeight is valid\r\n if (this.openCounter < 2) {\r\n const retrievedObject = JSON.parse(localStorage.getItem('storageObject'));\r\n this.totalPages = Number(retrievedObject?.totalPages);\r\n this.productsloadingFlag = true;\r\n this.productList = retrievedObject?.dataSource;\r\n }\r\n if (this.productsloadingFlag && Math.floor(scrollElement?.scrollTop / trackHeight * 100) > 50) {\r\n this.productsloadingFlag = false;\r\n this.openCounter = this.openCounter + 1;\r\n if (this.pageNumber < this.totalPages) {\r\n this.pageNumber = this.pageNumber + 1;\r\n this.searching = true;\r\n this.loadData(this.pageNumber, this.pageSize, this.searchQuery)\r\n } else {\r\n this.productsloadingFlag = true;\r\n this.searching = false;\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Function to get value by key from the array\r\n getValueByKey(data, key) {\r\n if (!data || data.length === 0) {\r\n return null; // Return null if data is empty or undefined\r\n }\r\n const item = data.find(kv => kv.key.toLowerCase() === key.toLowerCase());\r\n return item ? item.value : null;\r\n }\r\n\r\n\r\n loadData(pageNumber, pageSize, searchQuery) {\r\n const paramsData = JSON.parse(localStorage.getItem('productPickerParams'));\r\n const includeDescription = this.getValueByKey(paramsData, 'includeDescription');\r\n const vendorId = this.getValueByKey(paramsData, 'vendorId');\r\n const onlyActive = this.getValueByKey(paramsData, 'onlyActive');\r\n const includeCountry = this.getValueByKey(paramsData, 'filterProductBasedOnCustomerCountry');\r\n const programId = this.getValueByKey(paramsData, \"programId\");\r\n var currentUser = JSON.parse(localStorage.getItem('currentUser'));\r\n let headers;\r\n if (currentUser && currentUser.Tokens && currentUser.Tokens.AccessToken) {\r\n var accessToken = currentUser.Tokens.AccessToken;\r\n headers = new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': 'Bearer ' + accessToken\r\n });\r\n } else {\r\n console.error('User not authenticated or tokens missing.');\r\n }\r\n\r\n const envendorId = this.commonService.scrumble(vendorId)\r\n const enpageNumber = this.commonService.scrumble(pageNumber)\r\n const enpageSize = this.commonService.scrumble(pageSize);\r\n const ensearchQuery = this.commonService.scrumble(searchQuery);\r\n const encodeIncludeCountry = this.commonService.scrumble(includeCountry);\r\n let enactive = this.commonService.scrumble(onlyActive);\r\n const enprogramId = this.commonService.scrumble(programId);\r\n //Check if enactive is undefined, null, or blank\r\n if (enactive === undefined || enactive === null || enactive === '') {\r\n enactive = this.commonService.scrumble(true); // Set default value to true\r\n }\r\n\r\n // Scrumble and handle the includeDescription parameter\r\n let endescription = this.commonService.scrumble(includeDescription);\r\n if (!endescription) {\r\n endescription = this.commonService.scrumble(false); // Set to 'false' if undefined, null, or blank\r\n }\r\n\r\n const baseUrlMapping = {\r\n 'bG9jYWxob3N0': 'http://localhost:58504',\r\n 'bGluY29sbi52YXJ0b3BpYS5jb20=': 'https://lincoln-api.vartopia.com',\r\n 'c3RhZ2UudmFydG9waWEuY29t': 'https://stage-api.vartopia.com',\r\n 'bXkudmFydG9waWEuY29t': 'https://reagan-api.vartopia.com',\r\n 'amFja3Nvbi52YXJ0b3BpYS5jb20=': 'https://jackson-api.vartopia.com',\r\n 'dWF0LnZhcnRvcGlhLmNvbQ==': 'https://uat-api.vartopia.com'\r\n };\r\n // Get the current hostname\r\n const hostname = window.location.hostname;\r\n const baseApiUrl = baseUrlMapping[btoa(hostname)] || null;\r\n interface VendorProductsResponse {\r\n code: number;\r\n data: any;\r\n message: string;\r\n statusCode: number;\r\n }\r\n let url = `${baseApiUrl}/api/VendorFormBuilder/GetVendorProducts?vendorId=${envendorId}&pageNumber=${enpageNumber}&pageSize=${enpageSize}&search=${ensearchQuery}&onlyActive=${enactive}&includeDescription=${endescription}`;\r\n if (enprogramId && programId) {\r\n url += `&programId=${enprogramId}`;\r\n }\r\n // Only add includeCountryId if it has a valid value\r\n if (encodeIncludeCountry !== null && encodeIncludeCountry !== undefined && this.isFilterProductBasedOnCustomerCountryValid(this.instance.component.data)) {\r\n url += `&filterProductBasedOnCustomerCountry=${encodeIncludeCountry}`;\r\n }\r\n\r\n this.http.get<VendorProductsResponse>(url, { headers }).subscribe(response => {\r\n if (response && response.code === 200) {\r\n if (this.instance.component.key.toLowerCase() === 'vendorproductid') {\r\n this.totalPages = response?.data?.totalPages;\r\n const data = response.data.dataSource;\r\n this.filteredOptionsLength = data.length;\r\n if (this.productList.length > 0) {\r\n data.map(item => {\r\n return item\r\n }).forEach(i => this.productList.push(i))\r\n } else {\r\n this.productList = data;\r\n }\r\n // Update filteredOptions with transformedData\r\n var allProductList = this.transformResponseData(this.productList);\r\n this.filteredOptions = Promise.resolve(allProductList);\r\n this.searching = false;\r\n this.productsloadingFlag = true;\r\n setTimeout(() => {\r\n const ele = this.selectElem?.panel?.nativeElement;\r\n if (ele) {\r\n const trackHeight = ele.scrollHeight - ele.offsetHeight\r\n const middlePosition = trackHeight / 2 - 50;\r\n ele.scrollTo({ top: middlePosition, behavior: 'auto' });\r\n } else {\r\n console.log('Panel element is not available yet.');\r\n }\r\n\r\n }, 250);\r\n }\r\n\r\n }\r\n });\r\n }\r\n\r\n // Utility function to transform response data\r\n transformResponseData(data: Array<{ text: any, value: any, date: any }> | null | undefined): Array<{ label: string, value: number, date: string }> {\r\n // Check if data is not null, undefined, and is an array with elements\r\n if (data && Array.isArray(data) && data.length > 0) {\r\n return data.map(item => ({\r\n label: item.text,\r\n value: item.value,\r\n date: item.date\r\n }));\r\n } else {\r\n // Return an empty array if data is null, undefined, or empty\r\n return [];\r\n }\r\n }\r\n\r\n\r\n\r\n filterWebsiteMulti() {\r\n if (!this.selectOptions) {\r\n return;\r\n }\r\n let search = this.websiteMultiFilterCtrl.value;\r\n search = search.toLowerCase();\r\n this.filteredOptions = this.selectOptions.then((options) => {\r\n const filtered = options.filter((option) => option.label.replace(/<\\/?span[^>]*>/g, \"\").toLowerCase().indexOf(search) !== -1);\r\n this.filteredOptionsLength = filtered.length;\r\n return filtered;\r\n });\r\n }\r\n\r\n\r\n ngOnDestroy() {\r\n this._onDestroy.next('');\r\n this._onDestroy.complete();\r\n if (this.currentPanelElement) {\r\n this.currentPanelElement.removeEventListener('scroll', this.onScroll.bind(this));\r\n }\r\n }\r\n\r\n\r\n /*End*/\r\n setInstance(instance: any) {\r\n super.setInstance(instance);\r\n this.instance.triggerUpdate();\r\n }\r\n\r\n onClearAll() {\r\n if (this.instance.component.key.toLowerCase() === 'vendorproductid') {\r\n this.pageNumber = 1;\r\n this.pageSize = 20;\r\n this.searchQuery = '';\r\n this.searching = false;\r\n this.productList = [];\r\n this.selectedValue = '';\r\n this.loadData(this.pageNumber, this.pageSize, this.searchQuery);\r\n }\r\n }\r\n\r\n updateSecondDropdown(value: any) {\r\n const paramsData = JSON.parse(localStorage.getItem('cascadingDropdownsParamsone'));\r\n const vendorId = this.getValueByKey(paramsData, 'vendorId');\r\n const dealId = this.getValueByKey(paramsData, 'dealId');\r\n const isEdit = this.getValueByKey(paramsData, 'isEdit');\r\n let finalParams;\r\n this.instance?.parent?.components?.length && this.instance.parent.components.forEach(items => {\r\n if (this.checkVendorRefItems(items)) {\r\n const apiEndPoint = items?.component?.selectValues;\r\n if (apiEndPoint != '') {\r\n var parameters = [\r\n {\r\n \"key\": \"userId\",\r\n \"value\": JSON.parse(localStorage.getItem('currentUser')).UserId\r\n },\r\n {\r\n \"key\": \"vendorId\",\r\n \"value\": vendorId\r\n },\r\n {\r\n \"key\": \"loginUserId\",\r\n \"value\": JSON.parse(localStorage.getItem('currentUser')).UserId\r\n },\r\n {\r\n \"key\": \"country\",\r\n \"value\": typeof value === 'string' ? value.trim() : ''\r\n },\r\n {\r\n \"key\": \"dataValue\",\r\n \"value\": typeof value === 'string' ? value.trim() : ''\r\n },\r\n {\r\n \"key\": \"dealId\",\r\n \"value\": dealId\r\n },\r\n {\r\n \"key\": \"isEdit\",\r\n \"value\": isEdit\r\n },\r\n {\r\n \"key\": \"referenceListName\",\r\n \"value\": items?.component?.key\r\n },\r\n {\r\n \"key\": \"referenceListFieldName\",\r\n \"value\": this.instance?.component?.key\r\n }\r\n ]\r\n finalParams = parameters?.filter(f1 => items?.component?.data?.headers.some(f2 => f1.key === f2.key));\r\n if (Array.isArray(finalParams)) {\r\n const index = finalParams.findIndex(param => param.key === 'dataValue');\r\n if (index !== -1) {\r\n // If the object exists, update its value\r\n finalParams[index].value = value;\r\n } else {\r\n // If the object doesn't exist, add it to the array\r\n finalParams.push({ key: 'dataValue', value: value });\r\n }\r\n this.commonService.initializeApiPath(apiEndPoint, finalParams).subscribe(response => {\r\n if (response && response.code === 200) {\r\n this.secondDropdownItems = response.data;\r\n this.commonService.setDropdownItems(this.secondDropdownItems);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this.element && this.element.nativeElement && this.instance) {\r\n // Add custom classes to elements.\r\n if (this.instance.component.customClass) {\r\n this.element.nativeElement.classList.add(this.instance.component.customClass);\r\n }\r\n }\r\n this.selectElem.openedChange.subscribe(async (isOpen: boolean) => {\r\n let i = 0\r\n if (isOpen) {\r\n const newProductPickerFlag = this.instance?.component?.attributes;\r\n let checkInvokeFromLibrary = this.commonService.checkIsAttributeTrue(newProductPickerFlag, \"invokeFromLibrary\")\r\n const firstLevel = (this.getVendorRefList(this.instance) && checkInvokeFromLibrary);\r\n if (firstLevel) {\r\n this.selectElem.valueChange.subscribe(res => {\r\n this.commonService.setDropDownFlag(true);\r\n if (i === 0) {\r\n this.updateSecondDropdown(res);\r\n }\r\n i++\r\n });\r\n }\r\n\r\n\r\n\r\n if (this.checkVendorRefItems(this.instance) && checkInvokeFromLibrary) {\r\n this.storeDependentItems = [];\r\n this.secondDropdownItems = this.commonService.getDropdownItems();\r\n if (this.secondDropdownItems?.length) {\r\n this.secondDropdownItems.forEach((renderElement, index, array) => {\r\n this.storeDependentItems.push({ label: renderElement['text'], value: this.commonService.onlyNumbers(renderElement['value']) ? renderElement['value'] + ' ' : renderElement['value'] });\r\n });\r\n }\r\n if (!this.commonService.getDropDownFlag()) {\r\n this.storeDependentItems = this.instance.component.data.values;\r\n }\r\n this.filteredOptions = Promise.resolve(this.storeDependentItems);\r\n this.selectOptions = Promise.resolve(this.storeDependentItems);\r\n this.selectOptions.then(result => {\r\n this.filteredOptionsLength = result.length\r\n });\r\n }\r\n }\r\n });\r\n\r\n if (this.instance.component.key.toLowerCase() === 'vendorproductid') {\r\n this.selectElem.openedChange.subscribe((isOpen: boolean) => {\r\n if (isOpen) {\r\n this.pageNumber = 1;\r\n this.pageSize = 20;\r\n if (this.searchQuery?.length > 0) {\r\n if (this.searchItem?.length > 0) {\r\n this.websiteMultiFilterCtrl.setValue(this.searchItem);\r\n this.ref.detectChanges();\r\n }\r\n }\r\n // this.searchQuery = '';\r\n this.searching = false;\r\n //this.loadData(this.pageNumber, this.pageSize, this.searchQuery);\r\n this.registerPanelScrollEvent(this.selectElem);\r\n } else {\r\n this.removePanelScrollEvent();\r\n this.searching = false;\r\n // this.selectedValue = this.getValue();\r\n // if (this.selectedValue?.toString().length == 0) {\r\n // this.productList = [];\r\n // this.pageNumber = 1;\r\n // this.pageSize = 20;\r\n // this.searchQuery = '';\r\n // this.loadData(this.pageNumber, this.pageSize, this.searchQuery);\r\n // }\r\n }\r\n });\r\n }\r\n }\r\n\r\n removePanelScrollEvent() {\r\n // Remove the scroll event listener\r\n if (this.currentPanelElement) {\r\n this.currentPanelElement.removeEventListener('scroll', this.onScroll.bind(this));\r\n this.currentPanelElement = null;\r\n }\r\n }\r\n\r\n\r\n\r\n ngOnInit() {\r\n /*new logic */\r\n if (this.instance.component.key.toLowerCase() === 'vendorproductid') {\r\n this.websiteMultiFilterCtrl.valueChanges\r\n .pipe(\r\n debounceTime(1000), // Time in milliseconds between key events\r\n // tap(() => this.searching = true),\r\n distinctUntilChanged(),\r\n takeUntil(this._onDestroy))\r\n .subscribe((searchQuery) => {\r\n if (searchQuery != '') {\r\n\r\n this.pageNumber = 1;\r\n this.pageSize = 20;\r\n this.productList = [];\r\n this.searching = true;\r\n this.searchQuery = searchQuery;\r\n this.searchItem = searchQuery\r\n this.loadData(this.pageNumber, this.pageSize, searchQuery);\r\n }\r\n });\r\n } else {\r\n this.websiteMultiFilterCtrl.valueChanges\r\n .pipe(\r\n takeUntil(this._onDestroy))\r\n .subscribe(() => {\r\n this.filterWebsiteMulti();\r\n });\r\n }\r\n /*End */\r\n this.selectOptions = new Promise((resolve) => {\r\n this.selectOptionsResolve = resolve;\r\n });\r\n this.selectOptions.then((options) => {\r\n this.filteredOptionsLength = options.length;\r\n });\r\n\r\n this.filteredOptions = this.selectOptions;\r\n }\r\n\r\n onSelectionChange(event: any, submitData: any, attributes: any) {\r\n\r\n }\r\n\r\n checkVendorRefItems(instance) {\r\n const selectValues = instance.component['selectValues'];\r\n const dataUrl = instance.component['data']?.url;\r\n const isSelectValuesValid = selectValues != null && selectValues !== '' && selectValues !== undefined;\r\n const isDataUrlInvalid = dataUrl == null || dataUrl === '' || dataUrl === undefined;\r\n return isSelectValuesValid && isDataUrlInvalid;\r\n }\r\n\r\n getVendorRefList(instance) {\r\n const dataUrl = instance.component['data']?.url;\r\n const isSelectValuesValid = dataUrl != null && dataUrl !== '' && dataUrl !== undefined;\r\n return isSelectValuesValid;\r\n }\r\n\r\n isError() {\r\n if (this.instance.error) {\r\n this.control.setErrors(this.instance.component.validate);\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n getErrorMessage() {\r\n if (this.instance.error && this.instance.error.messages) {\r\n const { messages } = this.instance.error;\r\n if (messages.length) {\r\n for (const msg of messages) {\r\n if (msg.context) {\r\n if (this.instance && this.instance.parent && this.instance.parent._data) {\r\n if (this.instance.parent._data.submit) {\r\n this.control.markAllAsTouched();\r\n }\r\n }\r\n return this.instance.error ? this.instance.error.message : '';\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n compareObjects(o1: any, o2: any): boolean {\r\n return _.isEqual(o1, o2);\r\n }\r\n\r\n isFilterProductBasedOnCustomerCountryValid(data) {\r\n if (data && data.headers && Array.isArray(data.headers)) {\r\n const header = data.headers.find(h => h.key === 'filterProductBasedOnCustomerCountry');\r\n if (\r\n header &&\r\n header.value !== null &&\r\n header.value !== undefined &&\r\n header.value.trim() !== \"\" &&\r\n header.value.trim().toLowerCase() === \"true\"\r\n ) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n}\r\nSelectComponent.MaterialComponent = MaterialSelectComponent;\r\n\r\n// Make sure we detect changes when new items make their way into the select dropdown.\r\nconst setItems = SelectComponent.prototype.setItems;\r\nSelectComponent.prototype.setItems = function (...args) {\r\n setItems.call(this, ...args);\r\n if (this.materialComponent && this.materialComponent.selectOptionsResolve) {\r\n this.materialComponent.selectOptionsResolve(this.selectOptions);\r\n }\r\n};\r\n\r\nexport { SelectComponent };","import { Component } from '@angular/core';\r\nimport WellComponent from 'formiojs/components/well/Well.js';\r\nimport { MaterialNestedComponent } from '../MaterialNestedComponent';\r\n@Component({\r\n selector: 'mat-formio-well',\r\n template: `\r\n <mat-card appearance=\"outlined\">\r\n <mat-card-content\r\n style=\"display:flex; flex-direction:column; gap:1em;\"\r\n [ngStyle]=\"{\r\n 'background-color':'#f5f5f5',\r\n 'padding': '1.5em'\r\n }\"\r\n >\r\n <ng-template #components></ng-template>\r\n </mat-card-content>\r\n </mat-card>\r\n `,\r\n styles: []\r\n})\r\nexport class MaterialWellComponent extends MaterialNestedComponent {}\r\nWellComponent.MaterialComponent = MaterialWellComponent;\r\nexport { WellComponent };\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'NgxMat-confirmation-dialog',\r\n templateUrl: './confirmation-dialog.component.html',\r\n styleUrls: ['./confirmation-dialog.component.css']\r\n})\r\nexport class ConfirmationDialogComponent implements OnInit {\r\n\r\n constructor(public dialogRef: MatDialogRef<ConfirmationDialogComponent>, @Inject(MAT_DIALOG_DATA) public data: any) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<div class=\"dialog-container\">\r\n<h2 mat-dialog-title class=\"data-grid-alert\">Alert</h2>\r\n<mat-dialog-content class=\"data-grid-popup-body\">\r\n {{data.message}}\r\n</mat-dialog-content>\r\n<mat-dialog-actions class=\"data-grid-popup-footer\">\r\n <button mat-button [mat-dialog-close]=\"true\" color=\"warn\" *ngIf=\"data.buttonStatus\">Delete</button>\r\n <button mat-button [mat-dialog-close]=\"false\" [ngClass]=\"{'data-grid-closed-btn': !data.buttonStatus}\">{{data.buttonStatus ? 'Cancel': 'Close'}}</button>\r\n</mat-dialog-actions>\r\n</div>","import { SelectionModel } from '@angular/cdk/collections';\r\nimport { AfterViewInit, Component, ElementRef, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormGroup, FormArray, Validators } from '@angular/forms';\r\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { ConfirmationDialogComponent } from '../confirmation-dialog/confirmation-dialog.component';\r\nimport { CommonService } from '../common.service';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\n\r\nexport interface Product {\r\n productName: string;\r\n productDescription: string;\r\n quantity: any,\r\n price: any,\r\n text: any,\r\n id: any,\r\n value: any,\r\n otherInformation0: any,\r\n otherInformation1: any,\r\n otherInformation2: any\r\n}\r\n\r\n@Component({\r\n selector: 'ngx-mat-add-on-products',\r\n templateUrl: './add-on-products.component.html',\r\n styleUrls: ['./add-on-products.component.css'],\r\n animations: [\r\n trigger('slideDown', [\r\n state('hidden', style({ height: '0px', opacity: 0, overflow: 'hidden' })),\r\n state('visible', style({ height: '*', opacity: 1 })),\r\n transition('hidden => visible', [\r\n animate('300ms ease-out')\r\n ]),\r\n transition('visible => hidden', [\r\n animate('300ms ease-in')\r\n ])\r\n ])\r\n ]\r\n})\r\nexport class AddOnProductsComponent implements AfterViewInit, OnInit {\r\n form: FormGroup;\r\n dropdownOne: string[] = [];\r\n dropdownTwo: string[] = [];\r\n dropdownThree: string[] = [];\r\n dropdownFour: string[] = [];\r\n filteredDropdownOne: string[] = [];\r\n filteredDropdownTwo: string[] = [];\r\n filteredDropdownThree: string[] = [];\r\n filteredDropdownFour: string[] = [];\r\n addProductsColumns: string[] = ['select', 'productName', 'skuNumber', 'inventory'];\r\n showAllproductsColumns: string[] = ['delete', 'productName', 'categoryName', 'subCategory', 'Quantity', 'price', 'skuNumber', 'inventory', 'cost'];\r\n quantityList: number[] = [5, 10, 15, 20, 25];\r\n ELEMENT_DATA: Product[] = [];\r\n dataSource = new MatTableDataSource<Product>();\r\n selection = new SelectionModel<any>(true, []);\r\n selectedDataSource = new MatTableDataSource<Product>([]);\r\n selectedCategory: any = null;\r\n selectedSubCategory: any = null;\r\n showCategory: boolean = false;\r\n showSubcategory: boolean = false;\r\n showPrice: boolean = true;\r\n showQuantity: boolean = true;\r\n showSkuNumber: boolean = false;\r\n showInventory: boolean = false;\r\n showNewProductPicker: boolean = true;\r\n setCategory: string = '';\r\n setSubCategory: string = '';\r\n loadingFlag: boolean = false;\r\n pageNumber = 1;\r\n pageSize = 20;\r\n totalPages = 0;\r\n searchQuery = '';\r\n itemList: any[] = [];\r\n trackHeight: any;\r\n prevScrollPosition = 0; // Track the previous scroll position\r\n @ViewChild('firstscrollableDiv') firstscrollableDiv: ElementRef;\r\n spinnerFlag: boolean = false;\r\n dropdownL1: boolean = false;\r\n dropdownL2: boolean = false;\r\n dropdownL3: boolean = false;\r\n dropdownL4: boolean = false;\r\n dropdownL1Label: string = '';\r\n dropdownL2Label: string = '';\r\n dropdownL3Label: string = '';\r\n dropdownL4Label: string = '';\r\n dropDownCount: number = 0;\r\n levelOneId: any = '';\r\n levelTwoId: any = '';\r\n levelThreeId: any = '';\r\n levelFourId: any = '';\r\n disablePrice: boolean = true;\r\n checkSubmissionStatus: boolean = false;\r\n currentPage: string = 'select-products';\r\n isVisible: boolean = true;\r\n isDisabled2: boolean = true;\r\n isDisabled3: boolean = true;\r\n isDisabled4: boolean = true;\r\n isPriceDisable: boolean = true;\r\n activeFiltersCount: number = 0;\r\n emptyImage: string = '/i/table-grid-empty-state.svg';\r\n getTotalRecords: number = 0;\r\n priceFieldLable: string = 'Price';\r\n targetCost: string = 'Your Target Cost';\r\n showCost: boolean = false;\r\n skuTweek: string = 'SKU Number';\r\n costTweek: string = 'Your Target Cost';\r\n priceTweek: string = 'Price';\r\n productTweek: string = 'Product Name';\r\n quantityTweek: string = 'Quantity';\r\n categoryTweek: string = 'Category Name';\r\n subCategoryTweek: string = 'Sub Category';\r\n inventoryTweek: string = 'Inventory';\r\n alphanumeric: boolean = false;\r\n\r\n constructor(\r\n public matDialogRef: MatDialogRef<AddOnProductsComponent>,\r\n @Inject(MAT_DIALOG_DATA) data: any,\r\n private fb: FormBuilder,\r\n private dialog: MatDialog,\r\n private commonSevice: CommonService\r\n ) {\r\n this.showCategory = data.dropdownsFlag.showDialogCategory;\r\n this.showSubcategory = data.dropdownsFlag.showDialogSubCategory;\r\n this.showPrice = data.dropdownsFlag.showDialogPrice;\r\n this.showQuantity = data.dropdownsFlag.showDialogQuantity;\r\n this.showSkuNumber = data.dropdownsFlag.showDialogSkuNumber;\r\n this.showInventory = data.dropdownsFlag.showDialogInventory;\r\n this.showNewProductPicker = data.dropdownsFlag.showNewProductPicker;\r\n this.dropdownL1 = data.dropdownsFlag.dropdownL1;\r\n this.dropdownL2 = data.dropdownsFlag.dropdownL2;\r\n this.dropdownL3 = data.dropdownsFlag.dropdownL3;\r\n this.dropdownL4 = data.dropdownsFlag.dropdownL4;\r\n this.dropdownL1Label = data.dropdownsFlag.dropdownL1Label;\r\n this.dropdownL2Label = data.dropdownsFlag.dropdownL2Label;\r\n this.dropdownL3Label = data.dropdownsFlag.dropdownL3Label;\r\n this.dropdownL4Label = data.dropdownsFlag.dropdownL4Label;\r\n this.checkSubmissionStatus = data.dropdownsFlag.checkSubmissionStatus;\r\n this.dropDownCount = this.countTrueDropdowns(data.dropdownsFlag);\r\n this.selection = new SelectionModel<Product>(true, data.selectedProducts || []);\r\n this.isPriceDisable = data.dropdownsFlag.priceDisable;\r\n this.skuTweek = data.dropdownsFlag?.skuTweek || \"SKU Number\";\r\n this.costTweek = data.dropdownsFlag?.costTweek || \"Your Target Cost\";\r\n this.priceTweek = data.dropdownsFlag?.priceTweek || \"Price\";\r\n this.productTweek = data.dropdownsFlag?.productTweek || \"Product Name\";\r\n this.quantityTweek = data.dropdownsFlag?.quantityTweek || \"Quantity\";\r\n this.showCost = data.dropdownsFlag?.showDialogCost;\r\n this.categoryTweek = data.dropdownsFlag?.categoryTweek || \"Category Name\";\r\n this.subCategoryTweek = data.dropdownsFlag?.subCategoryTweek || \"Sub Category\";\r\n this.inventoryTweek = data.dropdownsFlag?.inventoryTweek || \"Inventory\";\r\n this.alphanumeric = data.dropdownsFlag.alphanumeric;\r\n if (!this.showCategory) {\r\n this.removeColumn('categoryName');\r\n }\r\n if (!this.showPrice) {\r\n this.removeColumn('price');\r\n }\r\n if (!this.showSubcategory) {\r\n this.removeColumn('subCategory');\r\n }\r\n if (!this.showQuantity) {\r\n this.removeColumn('Quantity');\r\n }\r\n if (!this.showSkuNumber) {\r\n this.removeColumn('skuNumber');\r\n }\r\n if (!this.showInventory) {\r\n this.removeColumn('inventory');\r\n }\r\n if (!this.showCost) {\r\n this.removeColumn('cost');\r\n }\r\n }\r\n\r\n removeColumn(columnName: string) {\r\n this.showAllproductsColumns = this.showAllproductsColumns.filter(column => column !== columnName);\r\n this.addProductsColumns = this.addProductsColumns.filter(column => column !== columnName);\r\n }\r\n\r\n initializeFormArray() {\r\n const selectedProductsArray = this.form.get('selectedProducts') as FormArray;\r\n if (!selectedProductsArray) {\r\n console.error('selectedProducts FormArray not initialized.');\r\n return;\r\n }\r\n\r\n this.selection.selected.forEach(product => {\r\n selectedProductsArray.push(this.fb.group({\r\n price: [product?.price ?? '', this.showPrice && !this.isPriceDisable ? Validators.required : []],\r\n text: [product?.text || ''],\r\n quantity: [product.quantity || '', Validators.required],\r\n category: [product?.category || ''],\r\n subCategory: [product?.subCategory || ''],\r\n value: [product?.value || ''],\r\n otherInformation0: [product?.otherInformation0 || '', this.showCost ? Validators.required : []],\r\n otherInformation1: [product?.otherInformation1 || ''],\r\n otherInformation2: [product?.otherInformation2 || '']\r\n }));\r\n });\r\n\r\n selectedProductsArray.controls.forEach(control => {\r\n this.isPriceDisable ? control.get('price')?.disable() : control.get('price')?.enable();\r\n });\r\n\r\n\r\n this.selectedDataSource.data = [...this.selection.selected];\r\n }\r\n\r\n initializeDataSources() {\r\n // Debugging logs to trace issues\r\n if (Array.isArray(this.selection?.selected) && Array.isArray(this.dataSource?.data) && this.selection?.selected?.length) {\r\n this.selection?.selected?.forEach(selectedProduct => {\r\n const index = this.dataSource.data.findIndex(product => product.value === selectedProduct.value);\r\n if (index >= 0) {\r\n this.dataSource.data[index] = selectedProduct;\r\n }\r\n });\r\n this.selectedDataSource.data = [...this.selection.selected];\r\n } else {\r\n console.warn('No selected products found.');\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n this.form = this.fb.group({\r\n dropdownLevel1: [{ value: '', disabled: false }],\r\n dropdownLevel2: [{ value: '', disabled: true }],\r\n dropdownLevel3: [{ value: '', disabled: true }],\r\n dropdownLevel4: [{ value: '', disabled: true }],\r\n searchProductName: [''],\r\n selectedProducts: this.fb.array([])\r\n });\r\n this.initializeFormArray();\r\n\r\n if (this.dropdownL1) {\r\n this.loadDropdownL1();\r\n }\r\n\r\n this.form.get('dropdownLevel1').valueChanges\r\n .pipe(\r\n startWith(''),\r\n map(value =>\r\n this.filterProducts(value, 'category1'))\r\n ).subscribe(l1 => {\r\n this.filteredDropdownOne = l1;\r\n });\r\n this.form.get('dropdownLevel2').valueChanges\r\n .pipe(\r\n startWith(''),\r\n map(value => this.filterProducts(value, 'category2'))\r\n ).subscribe(l2 => {\r\n this.filteredDropdownTwo = l2;\r\n });\r\n this.form.get('dropdownLevel3').valueChanges\r\n .pipe(\r\n startWith(''),\r\n map(value => this.filterProducts(value, 'category3'))\r\n ).subscribe(l3 => {\r\n this.filteredDropdownThree = l3;\r\n });\r\n this.form.get('dropdownLevel4').valueChanges\r\n .pipe(\r\n startWith(''),\r\n map(value => this.filterProducts(value, 'category4'))\r\n ).subscribe(l4 => {\r\n this.filteredDropdownFour = l4;\r\n });\r\n }\r\n\r\n handleDropdownFilter() {\r\n const searchQuery = this.form.controls.searchProductName?.value?.trim(); // Trim to remove blank spaces\r\n const levelOneId = this.form.controls.dropdownLevel1?.value?.id;\r\n this.loadingFlag = false;\r\n if (this.firstscrollableDiv) {\r\n this.firstscrollableDiv.nativeElement.scrollTop = 0;\r\n }\r\n if ((searchQuery && searchQuery !== '') || (levelOneId && levelOneId !== null && levelOneId !== undefined)) {\r\n let productName = this.form.controls.searchProductName?.value || '';\r\n // Check if the length exceeds 100 and truncate if necessary\r\n if (productName?.length > 100) {\r\n productName = productName.substring(0, 100);\r\n }\r\n this.searchQuery = encodeURIComponent(productName);\r\n this.levelOneId = this.form.controls.dropdownLevel1.value?.id;\r\n this.levelTwoId = this.form.controls.dropdownLevel2.value?.id;\r\n this.levelThreeId = this.form.controls.dropdownLevel3.value?.id;\r\n this.levelFourId = this.form.controls.dropdownLevel4.value?.id;\r\n this.pageNumber = 1;\r\n this.pageSize = 20;\r\n this.getProducts(false);\r\n }\r\n this.updateActiveFiltersCount();\r\n }\r\n\r\n loadDropdownL1() {\r\n this.spinnerFlag = true;\r\n this.commonSevice.productLevelOne().subscribe(response => {\r\n this.spinnerFlag = false\r\n if (response && response.code === 200) {\r\n this.dropdownOne = response.data;\r\n this.filteredDropdownOne = this.filterProducts('', 'category1');\r\n }\r\n });\r\n }\r\n\r\n loadDropdownL2(levelOneId: any) {\r\n this.spinnerFlag = true;\r\n this.commonSevice.productLevelTwo(levelOneId).subscribe(response => {\r\n this.spinnerFlag = false\r\n if (response && response.code === 200) {\r\n this.dropdownTwo = response.data;\r\n this.filteredDropdownTwo = this.filterProducts('', 'category2');\r\n }\r\n });\r\n }\r\n\r\n loadDropdownL3(levelOneId: any, levelTwoId: any) {\r\n this.spinnerFlag = true;\r\n this.commonSevice.productLevelThree(levelOneId, levelTwoId).subscribe(response => {\r\n this.spinnerFlag = false\r\n if (response && response.code === 200) {\r\n this.dropdownThree = response.data;\r\n this.filteredDropdownThree = this.filterProducts('', 'category3');\r\n }\r\n });\r\n }\r\n\r\n loadDropdownL4(levelOneId: any, levelTwoId: any, levelThreeId: any) {\r\n this.spinnerFlag = true;\r\n this.commonSevice.productLevelFour(levelOneId, levelTwoId, levelThreeId).subscribe(response => {\r\n this.spinnerFlag = false\r\n if (response && response.code === 200) {\r\n this.dropdownFour = response.data;\r\n this.filteredDropdownFour = this.filterProducts('', 'category4');\r\n }\r\n });\r\n }\r\n\r\n\r\n filterProducts(value: string, cat: string): string[] {\r\n const filterValue = typeof value === 'string' ? value?.toLowerCase() : value;\r\n let data: string[];\r\n\r\n /*Dynamically assign the data array based on the category*/\r\n switch (cat) {\r\n case 'category1':\r\n data = this.dropdownOne;\r\n break;\r\n case 'category2':\r\n data = this.dropdownTwo;\r\n break;\r\n case 'category3':\r\n data = this.dropdownThree;\r\n break;\r\n case 'category4':\r\n data = this.dropdownFour;\r\n break;\r\n default:\r\n data = [];\r\n }\r\n\r\n if (!filterValue) {\r\n return data;\r\n } else {\r\n return data?.filter(option => option['name']?.toLowerCase().includes(filterValue));\r\n }\r\n }\r\n\r\n\r\n onSubmit() {\r\n if (this.form.valid) {\r\n this.matDialogRef.close({\r\n data: {\r\n status: true,\r\n items: this.form.getRawValue()\r\n }\r\n });\r\n } else {\r\n this.form.markAllAsTouched();\r\n setTimeout(() => {\r\n this.scrollToFirstInvalidControl();\r\n });\r\n }\r\n }\r\n\r\n isAllSelected(): boolean {\r\n const numSelected = this.selection.selected.length;\r\n const numRows = this.dataSource.data.length;\r\n return numSelected === numRows;\r\n }\r\n\r\n isIndeterminate(): boolean {\r\n const numSelected = this.selection.selected.length;\r\n const numRows = this.dataSource.data.length;\r\n return numSelected > 0 && numSelected < numRows;\r\n }\r\n\r\n masterToggle() {\r\n this.isAllSelected()\r\n ? this.selection.clear()\r\n : this.dataSource.data.forEach(row => this.selection.select(row));\r\n this.updateSelectedProducts();\r\n }\r\n\r\n toggleSelection(row: Product) {\r\n // Check if the product is already selected\r\n const alreadySelected = this.selection.selected.some(selected => selected.value === row.value);\r\n if (alreadySelected) {\r\n // If the product is already selected, deselect it\r\n this.selection.deselect(row);\r\n } else {\r\n // If not already selected, select it\r\n this.selection.select(row);\r\n }\r\n // Update selected products to ensure no duplicates\r\n this.updateSelectedProducts();\r\n\r\n }\r\n\r\n\r\n // Getter for the FormArray\r\n get selectedProducts(): FormArray {\r\n return this.form.get('selectedProducts') as FormArray;\r\n }\r\n\r\n updateSelectedProducts() {\r\n if (Array.isArray(this.selection.selected)) {\r\n // Deduplicate selected products\r\n const uniqueProducts = Array.from(\r\n new Map(this.selection.selected.map(product => [product.value, product])).values()\r\n );\r\n this.selection.clear();\r\n uniqueProducts.forEach(product => this.selection.select(product));\r\n\r\n this.selectedDataSource.data = [...this.selection.selected];\r\n const selectedProductsArray = this.selectedProducts;\r\n selectedProductsArray.clear();\r\n this.selection?.selected?.forEach((product, index) => {\r\n if (!product?.value) {\r\n console.error('Product value (SKU) is missing at index:', index, product);\r\n return;\r\n }\r\n const productFormGroup = this.fb.group({\r\n price: [product?.price ?? '', this.showPrice && !this.isPriceDisable ? Validators.required : []],\r\n text: [product?.text || ''],\r\n quantity: [product?.quantity ?? '', this.showQuantity ? Validators.required : []],\r\n category: [product?.category || ''],\r\n subCategory: [product?.subCategory || ''],\r\n value: [product?.value || ''],\r\n otherInformation0: [product?.otherInformation0 || '', this.showCost ? Validators.required : []],\r\n otherInformation1: [product?.otherInformation1 || ''],\r\n otherInformation2: [product?.otherInformation2 ?? '']\r\n });\r\n if (productFormGroup) {\r\n selectedProductsArray.push(productFormGroup);\r\n } else {\r\n console.error(`Failed to create FormGroup for product at index ${index}.`);\r\n }\r\n });\r\n selectedProductsArray.controls.forEach((control, index) => {\r\n if (control instanceof FormGroup) {\r\n const priceControl = control.get('price');\r\n if (priceControl) {\r\n this.isPriceDisable ? priceControl.disable() : priceControl.enable();\r\n } else {\r\n console.error(`Price control is missing in FormGroup at index ${index}.`);\r\n }\r\n } else {\r\n console.error(`Unexpected control type at index ${index}:`, control);\r\n }\r\n });\r\n } else {\r\n console.error('Selection.selected is not an array:', this.selection.selected);\r\n }\r\n }\r\n\r\n\r\n getTotalRows(): number {\r\n return this.dataSource.data.length;\r\n }\r\n\r\n getSelectedRowsCount(): number {\r\n return this.selection.selected.length;\r\n }\r\n\r\n onOptionSelected(event: any, category: string) {\r\n let selectedValue;\r\n if (event && event.option && event.option.value !== undefined) {\r\n selectedValue = event.option.value.id;\r\n } else {\r\n selectedValue = event;\r\n }\r\n if (category === 'category1') {\r\n this.levelOneId = selectedValue;\r\n this.form.get('dropdownLevel2').setValue(null);\r\n this.form.get('dropdownLevel3').setValue(null);\r\n this.form.get('dropdownLevel4').setValue(null);\r\n this.filteredDropdownTwo = [];\r\n this.filteredDropdownThree = [];\r\n this.filteredDropdownFour = [];\r\n if (this.dropdownL2 && this.levelOneId) {\r\n this.form.get('dropdownLevel2')?.enable();\r\n this.form.get('dropdownLevel3')?.disable();\r\n this.form.get('dropdownLevel4')?.disable();\r\n this.isDisabled2 = false;\r\n this.loadDropdownL2(this.levelOneId);\r\n } else {\r\n this.form.get('dropdownLevel2')?.disable();\r\n this.form.get('dropdownLevel3')?.disable();\r\n this.form.get('dropdownLevel4')?.disable();\r\n this.form.get('dropdownLevel2').setValue(null);\r\n this.form.get('dropdownLevel3').setValue(null);\r\n this.form.get('dropdownLevel4').setValue(null);\r\n //this.levelOneId = null;\r\n this.levelTwoId = null;\r\n this.levelThreeId = null;\r\n this.levelFourId = null;\r\n this.isDisabled2 = true;\r\n this.isDisabled3 = true;\r\n this.isDisabled4 = true;\r\n }\r\n this.pageNumber = 1;\r\n this.pageSize = 20;\r\n this.getProducts(false);\r\n }\r\n if (category === 'category2') {\r\n this.levelTwoId = selectedValue;\r\n this.form.get('dropdownLevel3').setValue(null);\r\n this.form.get('dropdownLevel4').setValue(null);\r\n this.filteredDropdownThree = [];\r\n if (this.dropdownL3 && this.levelOneId && this.levelTwoId) {\r\n this.form.get('dropdownLevel3')?.enable();\r\n this.form.get('dropdownLevel4')?.disable();\r\n this.isDisabled3 = false;\r\n this.loadDropdownL3(this.levelOneId, this.levelTwoId);\r\n } else {\r\n this.form.get('dropdownLevel3')?.disable();\r\n this.form.get('dropdownLevel4')?.disable();\r\n this.form.get('dropdownLevel3').setValue(null);\r\n this.form.get('dropdownLevel4').setValue(null);\r\n //this.levelTwoId = null;\r\n this.levelThreeId = null;\r\n this.levelFourId = null;\r\n this.isDisabled3 = true;\r\n this.isDisabled4 = true;\r\n }\r\n this.pageNumber = 1;\r\n this.pageSize = 20;\r\n this.getProducts(false);\r\n }\r\n if (category === 'category3') {\r\n this.levelThreeId = selectedValue;\r\n this.form.get('dropdownLevel4').setValue(null);\r\n this.filteredDropdownFour = [];\r\n if (this.dropdownL4 && this.levelOneId && this.levelTwoId && this.levelThreeId) {\r\n this.form.get('dropdownLevel4')?.enable();\r\n this.isDisabled4 = false;\r\n this.loadDropdownL4(this.levelOneId, this.levelTwoId, this.levelThreeId);\r\n } else {\r\n this.form.get('dropdownLevel4')?.disable();\r\n this.form.get('dropdownLevel4').setValue(null);\r\n //this.levelThreeId = null;\r\n this.levelFourId = null;\r\n this.isDisabled4 = true;\r\n }\r\n this.pageNumber = 1;\r\n this.pageSize = 20;\r\n this.getProducts(false);\r\n }\r\n if (category === 'category4') {\r\n this.levelFourId = selectedValue;\r\n this.pageNumber = 1;\r\n this.pageSize = 20;\r\n this.getProducts(false);\r\n }\r\n this.updateActiveFiltersCount();\r\n }\r\n\r\n getProducts(flag: boolean) {\r\n this.spinnerFlag = true;\r\n const search = this.searchQuery;\r\n const levelOneId = this.levelOneId ? this.levelOneId : 0;\r\n const levelTwoId = this.levelTwoId ? this.levelTwoId : 0;\r\n const levelThreeId = this.levelThreeId ? this.levelThreeId : 0;\r\n const levelFourId = this.levelFourId ? this.levelFourId : 0;\r\n if (this.shouldResetTable(search, levelOneId, levelTwoId, levelThreeId, levelFourId)) {\r\n this.resetTable();\r\n return;\r\n }\r\n this.commonSevice.loadProducts(this.pageNumber, this.pageSize, search, true, false, levelOneId, levelTwoId, levelThreeId, levelFourId).subscribe(response => {\r\n this.spinnerFlag = false;\r\n if (response && response.code === 200) {\r\n this.totalPages = response?.data?.totalPages;\r\n const data = response.data.dataSource;\r\n this.getTotalRecords = response.data.totalRecords\r\n // Sync selection state with new data\r\n data.forEach(product => {\r\n const existingProduct = this.selection.selected.find(p => p.value === product.value);\r\n if (existingProduct) {\r\n Object.assign(product, existingProduct); // Replace product with existing reference\r\n this.selection.select(product); // Mark as selected\r\n this.updateSelectedProducts();\r\n }\r\n });\r\n\r\n // Avoid duplicates in the dataSource\r\n const existingProductValues = new Set(this.dataSource.data.map(product => product.value));\r\n const uniqueNewData = data.filter(product => !existingProductValues.has(product.value));\r\n if (this.dataSource.data.length > 0 && flag) {\r\n // data.forEach(item => this.dataSource.data.push(item));\r\n this.dataSource.data = [...this.dataSource.data, ...uniqueNewData];\r\n } else {\r\n this.dataSource.data = data;\r\n }\r\n\r\n this.loadingFlag = true;\r\n setTimeout(() => {\r\n const middlePosition = this.trackHeight / 2 - 50;\r\n if (this.firstscrollableDiv && this.firstscrollableDiv.nativeElement && flag) {\r\n this.firstscrollableDiv.nativeElement.scrollTo({ top: middlePosition, behavior: 'auto' });\r\n }\r\n }, 250);\r\n this.initializeDataSources();\r\n }\r\n });\r\n }\r\n\r\n removeRow(event: Event, element: Product) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n let message = 'Are you sure you want to delete this product?';\r\n let showButton = true;\r\n const index = this.selectedDataSource.data.indexOf(element);\r\n if (index >= 0) {\r\n if (this.selectedDataSource.data.length === 1 && !this.checkSubmissionStatus) {\r\n message = 'Please select at least one product.';\r\n showButton = false;\r\n }\r\n const dialogRef = this.dialog.open(ConfirmationDialogComponent, {\r\n disableClose: true,\r\n width: '90%',\r\n maxWidth: '400px',\r\n data: { message: message, buttonStatus: showButton }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.selectedDataSource.data.splice(index, 1);\r\n this.selectedDataSource._updateChangeSubscription();\r\n this.selection.deselect(element);\r\n const selectedProductsArray = this.form.get('selectedProducts') as FormArray;\r\n const productIndex = selectedProductsArray.controls.findIndex(control => control.value.value === element.value);\r\n if (productIndex >= 0) {\r\n selectedProductsArray.removeAt(productIndex);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n onScroll(event: any) {\r\n this.trackHeight = event.target.scrollHeight - event.target.offsetHeight;\r\n if (this.loadingFlag && (Math.floor(event.target.scrollTop / this.trackHeight * 100) > 50)) {\r\n this.loadingFlag = false;\r\n if (this.pageNumber < this.totalPages) {\r\n this.pageNumber = this.pageNumber + 1;\r\n this.getProducts(true);\r\n } else {\r\n this.loadingFlag = true;\r\n }\r\n }\r\n this.prevScrollPosition = event.target.scrollTop;\r\n }\r\n\r\n countTrueDropdowns(obj) {\r\n // Dynamically find all keys that start with 'dropdownL' and are boolean (true/false)\r\n return Object.keys(obj)\r\n .filter(key => key.startsWith('dropdownL') && typeof obj[key] === 'boolean' && obj[key] === true)\r\n .length;\r\n }\r\n\r\n /* Use the property that should display in the input field */\r\n displayFn(option): string {\r\n return option ? option.name : '';\r\n }\r\n\r\n onQuantityChange(event: any, index: number): void {\r\n const value = event.target.value;\r\n const quantityControl = this.selectedProducts.at(index).get('quantity');\r\n\r\n if (!quantityControl) return;\r\n\r\n // Clear any previous errors\r\n quantityControl.setErrors(null);\r\n\r\n // If the value is empty, set 'required' error\r\n if (value === '' || value === null) {\r\n quantityControl.setErrors({ 'required': true });\r\n }\r\n // If the value is less than 1, set 'min' error\r\n else if (Number(value) < 1) {\r\n quantityControl.setErrors({ 'min': true });\r\n }\r\n // If the value is not an integer, set 'pattern' error\r\n else if (!/^\\d+$/.test(value)) {\r\n quantityControl.setErrors({ 'pattern': true });\r\n }\r\n }\r\n\r\n\r\n goToNextPage() {\r\n this.currentPage = 'edit-save';\r\n }\r\n\r\n goToPreviousPage() {\r\n this.currentPage = 'select-products';\r\n }\r\n\r\n toggleSection() {\r\n this.isVisible = !this.isVisible;\r\n }\r\n\r\n clearField(field: string, category: string, event: Event) {\r\n event?.stopPropagation(); // Stop event propagation to prevent dropdown reopen\r\n this.form.get(field)?.setValue(null);\r\n if (category === 'category1') {\r\n this.onOptionSelected(null, 'category1');\r\n } else if (category === 'category2') {\r\n this.onOptionSelected(null, 'category2');\r\n } else if (category === 'category3') {\r\n this.onOptionSelected(null, 'category3');\r\n } else if (category === 'category4') {\r\n this.levelFourId = null;\r\n this.onOptionSelected(null, 'category4');\r\n }\r\n this.updateActiveFiltersCount();\r\n }\r\n\r\n onInputChange(event: Event, category: string) {\r\n const inputValue = (event.target as HTMLInputElement).value;\r\n if (!inputValue) {\r\n // Handle case where input is cleared\r\n this.clearField(`dropdownLevel${this.getDropdownLevel(category)}`, category, null);\r\n }\r\n }\r\n\r\n getDropdownLevel(category: string): number {\r\n switch (category) {\r\n case 'category1': return 1;\r\n case 'category2': return 2;\r\n case 'category3': return 3;\r\n case 'category4': return 4;\r\n default: return 0;\r\n }\r\n }\r\n\r\n updateActiveFiltersCount() {\r\n this.activeFiltersCount = 0;\r\n if (this.searchQuery !== '') this.activeFiltersCount++;\r\n if (this.form.get('dropdownLevel1').value) this.activeFiltersCount++;\r\n if (this.form.get('dropdownLevel2').value) this.activeFiltersCount++;\r\n if (this.form.get('dropdownLevel3').value) this.activeFiltersCount++;\r\n if (this.form.get('dropdownLevel4').value) this.activeFiltersCount++;\r\n }\r\n\r\n clearIfEmpty(event: any) {\r\n if (!event.target.value) {\r\n this.form.controls['searchProductName'].setValue('');\r\n this.searchQuery = '';\r\n const search = this.searchQuery;\r\n const levelOneId = this.levelOneId ? this.levelOneId : 0;\r\n const levelTwoId = this.levelTwoId ? this.levelTwoId : 0;\r\n const levelThreeId = this.levelThreeId ? this.levelThreeId : 0;\r\n const levelFourId = this.levelFourId ? this.levelFourId : 0;\r\n if (this.shouldResetTable(search, levelOneId, levelTwoId, levelThreeId, levelFourId)) {\r\n this.resetTable();\r\n return;\r\n }\r\n }\r\n }\r\n\r\n resetTable() {\r\n this.form.get('dropdownLevel1').setValue(null);\r\n this.form.get('dropdownLevel2').setValue(null);\r\n this.form.get('dropdownLevel3').setValue(null);\r\n this.form.get('dropdownLevel4').setValue(null);\r\n this.form.get('dropdownLevel2')?.disable();\r\n this.form.get('dropdownLevel3')?.disable();\r\n this.form.get('dropdownLevel4')?.disable();\r\n this.levelOneId = 0;\r\n this.levelTwoId = 0;\r\n this.levelThreeId = 0;\r\n this.levelFourId = 0;\r\n this.pageNumber = 1;\r\n this.pageSize = 20;\r\n this.form.controls['searchProductName'].setValue('');\r\n this.searchQuery = '';\r\n this.dataSource.data = [];\r\n this.spinnerFlag = false;\r\n this.updateActiveFiltersCount();\r\n }\r\n\r\n shouldResetTable(search: string, levelOneId: number, levelTwoId: number, levelThreeId: number, levelFourId: number): boolean {\r\n return search === '' && levelOneId === 0 && levelTwoId === 0 && levelThreeId === 0 && levelFourId === 0;\r\n }\r\n\r\n /* This function will manage price and cost validation */\r\n applyValidationRule(event: any, index: number, controlName: string) {\r\n const value = event.target.value.trim();\r\n const control = this.selectedProducts.at(index).get(controlName);\r\n if (!control) return;\r\n\r\n // Clear any previous errors\r\n control.setErrors(null);\r\n // If the value is empty, set 'required' error\r\n if (value === '' || value === null) {\r\n control.setErrors({ 'required': true });\r\n return;\r\n }\r\n if (controlName === 'otherInformation0' && this.alphanumeric) {\r\n // Allow all characters — no restrictions\r\n return;\r\n } else {\r\n // Check if value contains only numbers and decimals (but no alphabets or special characters)\r\n if (!/^\\d*\\.?\\d*$/.test(value)) {\r\n event.target.value = value.replace(/[^0-9.]/g, '');\r\n control.setErrors({ 'invalidFormat': true });\r\n }\r\n }\r\n }\r\n\r\n\r\n restrictInput(event: KeyboardEvent, controlName: string) {\r\n const key = event.key;\r\n const inputElement = (event.target as HTMLInputElement);\r\n const inputValue = inputElement.value;\r\n if (controlName === 'otherInformation0' && this.alphanumeric) {\r\n // Allow all characters — no restrictions\r\n return;\r\n } else {\r\n // Allow numbers and one decimal, but prevent everything else\r\n if (!/[\\d.]/.test(key) || (key === '.' && inputValue.includes('.'))) {\r\n event.preventDefault();\r\n }\r\n }\r\n }\r\n\r\n handlePaste(event: ClipboardEvent, controlName: string) {\r\n const pasteData = event.clipboardData?.getData('text') || '';\r\n if (controlName === 'otherInformation0' && this.alphanumeric) {\r\n // Allow all characters — no restrictions\r\n return;\r\n } else {\r\n // If pasted value is not a valid number, prevent pasting\r\n if (!/^\\d*\\.?\\d*$/.test(pasteData)) {\r\n event.preventDefault();\r\n }\r\n }\r\n }\r\n\r\n scrollToFirstInvalidControl() {\r\n const dialogContent = document.querySelector(\r\n '.mat-dialog-content'\r\n ) as HTMLElement;\r\n\r\n const firstMatError = dialogContent?.querySelector(\r\n 'mat-error'\r\n ) as HTMLElement;\r\n\r\n if (!dialogContent || !firstMatError) return;\r\n\r\n const matFormField = firstMatError.closest('mat-form-field') as HTMLElement;\r\n if (!matFormField) return;\r\n\r\n dialogContent.scrollTop = dialogContent.scrollTop + 1;\r\n matFormField.scrollIntoView({\r\n behavior: 'smooth',\r\n block: 'center'\r\n });\r\n\r\n setTimeout(() => {\r\n const input = matFormField.querySelector(\r\n 'input, select, textarea'\r\n ) as HTMLElement;\r\n input?.focus();\r\n }, 300);\r\n }\r\n\r\n\r\n\r\n}\r\n","<div *ngIf=\"spinnerFlag\" class=\"OverlayDiv\">\r\n <div class=\"OverlayDivContent\">\r\n <mat-spinner></mat-spinner>\r\n </div>\r\n</div>\r\n<div class=\"mat-dialog-heading\">\r\n <h1 mat-dialog-title>Add Products</h1>\r\n</div>\r\n\r\n<mat-dialog-content [ngClass]=\"dataSource?.data?.length > 0 ? 'products-scroll-visible': ''\">\r\n <div class=\"mat-dialog-content\">\r\n <!--Search Start-->\r\n <div class=\"basic-search\" [hidden]=\"currentPage !== 'select-products'\">\r\n <div class=\"basic-search-wrp\">\r\n <div class=\"search-icon\">\r\n <svg width=\"80\" height=\"80\" viewBox=\"0 0 24 25\" xmlns=\"http://www.w3.org/2000/svg\"\r\n transform=\"rotate(0 0 0)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M11.25 2.75C6.14154 2.75 2 6.89029 2 11.998C2 17.1056 6.14154 21.2459 11.25 21.2459C13.5335 21.2459 15.6238 20.4187 17.2373 19.0475L20.7182 22.5287C21.011 22.8216 21.4859 22.8217 21.7788 22.5288C22.0717 22.2359 22.0718 21.761 21.7789 21.4681L18.2983 17.9872C19.6714 16.3736 20.5 14.2826 20.5 11.998C20.5 6.89029 16.3585 2.75 11.25 2.75ZM3.5 11.998C3.5 7.71905 6.96962 4.25 11.25 4.25C15.5304 4.25 19 7.71905 19 11.998C19 16.2769 15.5304 19.7459 11.25 19.7459C6.96962 19.7459 3.5 16.2769 3.5 11.998Z\" />\r\n </svg>\r\n </div>\r\n <form [formGroup]=\"form\">\r\n <div class=\"input-search\">\r\n <input (keydown.enter)=\"handleDropdownFilter(); $event.stopPropagation()\" type=\"text\" matInput\r\n placeholder=\"Search Product\" formControlName=\"searchProductName\"\r\n (input)=\"clearIfEmpty($event)\">\r\n </div>\r\n </form>\r\n <!-- <div class=\"advfilter\">\r\n <button class=\"adv\" (click)=\"toggleSection();$event.stopPropagation();\">\r\n <mat-icon class=\"material-icons-round\" aria-hidden=\"false\"\r\n aria-label=\"tune\">tune\r\n </mat-icon>\r\n <span *ngIf=\"activeFiltersCount > 0\" class=\"custom-badge\">{{ activeFiltersCount }}</span>\r\n </button>\r\n </div> -->\r\n </div>\r\n <div class=\"search-btn\">\r\n <button mat-raised-button color=\"primary\"\r\n (click)=\"handleDropdownFilter();$event.stopPropagation();\">Search</button>\r\n </div>\r\n </div>\r\n <!--Search End-->\r\n <div class=\"product-selector\">\r\n <div [hidden]=\"currentPage !== 'select-products'\">\r\n <form [formGroup]=\"form\">\r\n <div class=\"product-selection-container\" *ngIf=\"isVisible && dropdownL1\">\r\n <div class=\"dropdown-selection\" *ngIf=\"dropdownL1\">\r\n <div [ngClass]=\"dropDownCount === 1 ? 'no-child': 'child'\">\r\n <div class=\"title-adv\">\r\n <h5>Advanced Filters</h5>\r\n <button class=\"clr-all-picker\" type=\"button\" (click)=\"resetTable()\"\r\n *ngIf=\"activeFiltersCount > 0\">Clear All</button>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-lg-6\">\r\n <div class=\"example-full-width\">\r\n <mat-form-field *ngIf=\"dropdownL1\" class=\"example-full-width\">\r\n <mat-label>{{dropdownL1Label}}</mat-label>\r\n <input type=\"text\" matInput formControlName=\"dropdownLevel1\"\r\n [matAutocomplete]=\"auto3\"\r\n (input)=\"onInputChange($event, 'category1')\">\r\n <mat-autocomplete [displayWith]=\"displayFn\" #auto3=\"matAutocomplete\"\r\n (optionSelected)=\"onOptionSelected($event, 'category1')\">\r\n <mat-option *ngFor=\"let option of filteredDropdownOne\"\r\n [value]=\"option\">{{option.name}}</mat-option>\r\n </mat-autocomplete>\r\n <mat-icon matSuffix *ngIf=\"form.get('dropdownLevel1').value\"\r\n (click)=\"clearField('dropdownLevel1', 'category1', $event)\"\r\n class=\"iconclose\">close</mat-icon>\r\n <mat-icon class=\"icondropdown\" matSuffix>arrow_drop_down</mat-icon>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div class=\"col-lg-6\">\r\n <div class=\"example-full-width\">\r\n <mat-form-field *ngIf=\"dropdownL2\" class=\"example-full-width\">\r\n <mat-label>{{dropdownL2Label}}</mat-label>\r\n <input type=\"text\" matInput formControlName=\"dropdownLevel2\"\r\n [matAutocomplete]=\"auto4\"\r\n (input)=\"onInputChange($event, 'category2')\">\r\n <mat-autocomplete [displayWith]=\"displayFn\" #auto4=\"matAutocomplete\"\r\n (optionSelected)=\"onOptionSelected($event, 'category2')\">\r\n <mat-option *ngFor=\"let option of filteredDropdownTwo\"\r\n [value]=\"option\">{{option.name}}</mat-option>\r\n </mat-autocomplete>\r\n <mat-icon matSuffix *ngIf=\"form.get('dropdownLevel2').value\"\r\n (click)=\"clearField('dropdownLevel2', 'category2', $event)\"\r\n class=\"iconclose\">close</mat-icon>\r\n <mat-icon class=\"icondropdown\" matSuffix\r\n [ngClass]=\"{'disabled-icon': isDisabled2}\">arrow_drop_down</mat-icon>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-6\">\r\n <div class=\"example-full-width\">\r\n <mat-form-field *ngIf=\"dropdownL3\" class=\"example-full-width\">\r\n <mat-label>{{dropdownL3Label}}</mat-label>\r\n <input type=\"text\" matInput formControlName=\"dropdownLevel3\"\r\n [matAutocomplete]=\"auto5\"\r\n (input)=\"onInputChange($event, 'category3')\">\r\n <mat-autocomplete [displayWith]=\"displayFn\" #auto5=\"matAutocomplete\"\r\n (optionSelected)=\"onOptionSelected($event, 'category3')\">\r\n <mat-option *ngFor=\"let option of filteredDropdownThree\"\r\n [value]=\"option\">{{option.name}}</mat-option>\r\n </mat-autocomplete>\r\n <mat-icon matSuffix *ngIf=\"form.get('dropdownLevel3').value\"\r\n (click)=\"clearField('dropdownLevel3', 'category3', $event)\"\r\n class=\"iconclose\">close</mat-icon>\r\n <mat-icon class=\"icondropdown\" matSuffix\r\n [ngClass]=\"{'disable-icon': isDisabled3}\">arrow_drop_down</mat-icon>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div class=\"col-lg-6\">\r\n <div class=\"example-full-width\">\r\n <mat-form-field *ngIf=\"dropdownL4\" class=\"example-full-width\">\r\n <mat-label>{{dropdownL4Label}}</mat-label>\r\n <input type=\"text\" matInput formControlName=\"dropdownLevel4\"\r\n [matAutocomplete]=\"auto6\"\r\n (input)=\"onInputChange($event, 'category4')\">\r\n <mat-autocomplete [displayWith]=\"displayFn\" #auto6=\"matAutocomplete\"\r\n (optionSelected)=\"onOptionSelected($event, 'category4')\">\r\n <mat-option *ngFor=\"let option of filteredDropdownFour\"\r\n [value]=\"option\">{{option.name}}</mat-option>\r\n </mat-autocomplete>\r\n <mat-icon matSuffix *ngIf=\"form.get('dropdownLevel4').value\"\r\n (click)=\"clearField('dropdownLevel4', 'category4', $event)\"\r\n class=\"iconclose\">close</mat-icon>\r\n <mat-icon class=\"icondropdown\" matSuffix\r\n [ngClass]=\"{'disable-icon': isDisabled4}\">arrow_drop_down</mat-icon>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div #firstscrollableDiv id=\"firstscrollableDiv\" class=\"new-class first-div\"\r\n (scroll)=\"onScroll($event)\" [ngClass]=\"dataSource?.data?.length > 0 ? 'tbl-record-found': ''\">\r\n <table mat-table [dataSource]=\"dataSource\" class=\"mat-table abc\"\r\n *ngIf=\"dataSource && dataSource?.data?.length > 0; else noData\">\r\n <ng-container matColumnDef=\"select\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\" class=\"checkbox-picker-pointer\">\r\n <mat-checkbox color=\"primary\" (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? toggleSelection(row) : null\"\r\n [checked]=\"selection.isSelected(row)\"></mat-checkbox>\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"productName\">\r\n <th mat-header-cell *matHeaderCellDef> {{productTweek}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element?.text}} </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"skuNumber\" *ngIf=\"showSkuNumber\">\r\n <th mat-header-cell *matHeaderCellDef> {{skuTweek}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element?.otherInformation0}} </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"inventory\" *ngIf=\"showInventory\">\r\n <th mat-header-cell *matHeaderCellDef> {{inventoryTweek}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element?.otherInformation1}} </td>\r\n </ng-container>\r\n <tr mat-header-row *matHeaderRowDef=\"addProductsColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: addProductsColumns;\"\r\n [class.selected]=\"selection.isSelected(row)\"></tr>\r\n </table>\r\n <ng-template #noData>\r\n <div class=\"no-data-message\">\r\n <!--No data found.-->\r\n <div class=\"pp-empty-state\">\r\n <div class=\"img-empty-state\">\r\n <img [src]=\"emptyImage\" alt=\"\">\r\n </div>\r\n <h3>No records to show at the moment</h3>\r\n <p>Please modify your search criteria to find the desired result</p>\r\n </div>\r\n\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div class=\"row-summary\" *ngIf=\"dataSource && dataSource?.data?.length > 0\">\r\n <div>Selected: <strong>{{ getSelectedRowsCount() }}</strong> </div>\r\n <div>Total Records: <strong>{{ getTotalRecords }}</strong></div>\r\n </div>\r\n </form>\r\n </div>\r\n\r\n <div [hidden]=\"currentPage !== 'edit-save'\">\r\n <form [formGroup]=\"form\">\r\n <div class=\"new-class\"\r\n [ngClass]=\"selectedDataSource && selectedDataSource.data.length > 0 ? 'added-products': ''\">\r\n <table mat-table [dataSource]=\"selectedDataSource\"\r\n *ngIf=\"selectedDataSource && selectedDataSource.data.length > 0; else showBlank\">\r\n <ng-container matColumnDef=\"delete\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <button class=\"delete-btn-picker\" mat-button\r\n (click)=\"$event.stopPropagation();removeRow($event, element)\">\r\n <mat-icon aria-hidden=\"false\" aria-label=\"Remove row\">delete</mat-icon>\r\n </button>\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"productName\">\r\n <th mat-header-cell *matHeaderCellDef> {{productTweek}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.text}} </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"categoryName\" *ngIf=\"showCategory\">\r\n <th mat-header-cell *matHeaderCellDef> {{categoryTweek}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.category}} </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"subCategory\" *ngIf=\"showSubcategory\">\r\n <th mat-header-cell *matHeaderCellDef> {{subCategoryTweek}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.subCategory}} </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"price\" *ngIf=\"showPrice\">\r\n <th mat-header-cell *matHeaderCellDef>{{priceTweek}}</th>\r\n <td mat-cell *matCellDef=\"let element; let i = index\">\r\n <mat-form-field class=\"example-full-width select-price\">\r\n <mat-label>{{priceTweek}}</mat-label>\r\n <input matInput [formControl]=\"selectedProducts.at(i).get('price')\"\r\n (input)=\"applyValidationRule($event, i, 'price')\"\r\n (keypress)=\"restrictInput($event, '')\" (paste)=\"handlePaste($event, '')\">\r\n <mat-error *ngIf=\"selectedProducts.at(i).get('price').hasError('required')\">\r\n This field is required\r\n </mat-error>\r\n </mat-form-field>\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"Quantity\" *ngIf=\"showQuantity\">\r\n <th mat-header-cell *matHeaderCellDef> {{quantityTweek}} </th>\r\n <td mat-cell *matCellDef=\"let element; let i = index\">\r\n <mat-form-field class=\"example-full-width\">\r\n <mat-label>{{quantityTweek}}</mat-label>\r\n <input matInput [formControl]=\"selectedProducts.at(i).get('quantity')\"\r\n type=\"number\" min=\"1\" step=\"1\" (input)=\"onQuantityChange($event, i)\">\r\n <mat-error *ngIf=\"selectedProducts.at(i).get('quantity').hasError('required')\">\r\n This field is required\r\n </mat-error>\r\n <mat-error *ngIf=\"selectedProducts.at(i).get('quantity').hasError('min')\">\r\n Quantity can not be less than 1\r\n </mat-error>\r\n <mat-error *ngIf=\"selectedProducts.at(i).get('quantity').hasError('pattern')\">\r\n Decimals not allowed\r\n </mat-error>\r\n </mat-form-field>\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"skuNumber\" *ngIf=\"showSkuNumber\">\r\n <th mat-header-cell *matHeaderCellDef> {{skuTweek}} </th>\r\n <td mat-cell *matCellDef=\"let element\">{{element?.otherInformation0}} </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"inventory\" *ngIf=\"showInventory\">\r\n <th mat-header-cell *matHeaderCellDef> {{inventoryTweek}} </th>\r\n <td mat-cell *matCellDef=\"let element\">{{element?.otherInformation1}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"cost\" *ngIf=\"showCost\">\r\n <th mat-header-cell *matHeaderCellDef>{{costTweek}}</th>\r\n <td mat-cell *matCellDef=\"let element; let i = index\">\r\n <mat-form-field class=\"example-full-width select-cost\">\r\n <mat-label>{{costTweek}}</mat-label>\r\n <input matInput [formControl]=\"selectedProducts.at(i).get('otherInformation0')\"\r\n (input)=\"applyValidationRule($event, i, 'otherInformation0')\"\r\n (keypress)=\"restrictInput($event, 'otherInformation0')\" (paste)=\"handlePaste($event, 'otherInformation0')\">\r\n <mat-error\r\n *ngIf=\"selectedProducts.at(i).get('otherInformation0').hasError('required')\">\r\n This field is required\r\n </mat-error>\r\n </mat-form-field>\r\n </td>\r\n </ng-container>\r\n <tr mat-header-row *matHeaderRowDef=\"showAllproductsColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: showAllproductsColumns;\"></tr>\r\n </table>\r\n <!-- <ng-template #showBlank>\r\n <div class=\"no-data-message\">\r\n No data found.\r\n </div>\r\n </ng-template> -->\r\n <ng-template #showBlank>\r\n <div class=\"no-data-message\">\r\n <div class=\"pp-empty-state\">\r\n <div class=\"img-empty-state\">\r\n <img [src]=\"emptyImage\" alt=\"\">\r\n </div>\r\n <h3>No Product added</h3>\r\n <p>Please go back and start adding products</p>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n </div>\r\n</mat-dialog-content>\r\n\r\n<mat-dialog-actions>\r\n <div class=\"tabs-action-step-one\" *ngIf=\"currentPage === 'select-products'\">\r\n <div>\r\n <button mat-button (click)=\"goToNextPage()\" [disabled]=\"selection.selected.length ? false : true\"\r\n color=\"primary\" mat-raised-button>Edit Selected Products</button>\r\n </div>\r\n <div>\r\n <button mat-button (click)=\"goToNextPage()\" [disabled]=\"selection.selected.length ? false : true\"\r\n color=\"primary\" mat-raised-button>Next</button>\r\n <button mat-button [mat-dialog-close]=\"false\">Cancel</button>\r\n </div>\r\n </div>\r\n <div class=\"tabs-action\" *ngIf=\"currentPage === 'edit-save'\">\r\n <div class=\"tab-action-wrp\">\r\n <button mat-button (click)=\"goToPreviousPage()\">Back</button>\r\n <button mat-button type=\"submit\" color=\"primary\" mat-raised-button (click)=\"onSubmit()\">Add/Update</button>\r\n </div>\r\n </div>\r\n</mat-dialog-actions>","import { Attribute, ChangeDetectorRef, Component, ElementRef } from '@angular/core';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MaterialNestedComponent } from '../MaterialNestedComponent';\r\nimport DataGridComponent from 'formiojs/components/datagrid/DataGrid.js';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ConfirmationDialogComponent } from '../confirmation-dialog/confirmation-dialog.component';\r\nimport { AddOnProductsComponent } from '../add-on-products/add-on-products.component';\r\nimport { CommonService } from '../common.service';\r\nexport interface Product {\r\n productName: string;\r\n quantity: number;\r\n price: number;\r\n}\r\nconst ELEMENT_DATA: Product[] = [\r\n];\r\n@Component({\r\n selector: 'mat-formio-datagrid',\r\n template: `\r\n <mat-formio-form-field [instance]=\"instance\"\r\n [componentTemplate]=\"componentTemplate\"\r\n [labelTemplate]=\"labelTemplate\"\r\n ></mat-formio-form-field>\r\n <ng-template #componentTemplate let-hasLabel>\r\n <mat-card appearance=\"outlined\" fxFill>\r\n <ng-container *ngIf=\"hasLabel\">\r\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\r\n </ng-container>\r\n <mat-card-content>\r\n\r\n <!-- Message when no products are found -->\r\n <div class=\"no-data-message\" *ngIf=\"!showDataGrid || (dataSource?.data?.length === 0 && !showNewProductPicker)\">\r\n No products found. Please add some products.\r\n </div>\r\n\r\n <ng-container *ngIf=\"showDataGrid\">\r\n <mat-card-actions\r\n *ngIf=\"instance.hasAddButton() && (instance.component.addAnotherPosition === 'both' || instance.component.addAnotherPosition === 'top')\">\r\n <button mat-raised-button color=\"primary\" (click)=\"addAnother()\">\r\n <mat-icon>add</mat-icon>\r\n {{instance.component.addAnother || 'Add Another'}}\r\n </button>\r\n </mat-card-actions>\r\n<ng-container *ngIf=\"!showNewProductPicker\">\r\n<div>\r\n <table\r\n mat-table\r\n [dataSource]=\"dataSource\"\r\n class=\"mat-elevation-z8\"\r\n fxFill\r\n cdkDropList\r\n [cdkDropListData]=\"dataSource\"\r\n (cdkDropListDropped)=\"dropTable($event)\" *ngIf=\"!isCustomerCountryFiltered || !emptyArray; else noDataMessage\">\r\n \r\n \r\n <ng-container *ngFor=\"let column of formColumns\" [matColumnDef]=\"column\">\r\n <th mat-header-cell *matHeaderCellDef>{{ getColumnLabel(columns[column]) }}</th>\r\n <td mat-cell *matCellDef=\"let i = index;\" [attr.rowIndex]=\"i\" [attr.component]=\"column\">\r\n <ng-template #components></ng-template>\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"__removeRow\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td class=\"delete-btn-wrp\" mat-cell *matCellDef=\"let i = index;\">\r\n <button mat-button *ngIf=\"instance.hasRemoveButtons()\" (click)=\"removeRow(i)\">\r\n <mat-icon aria-hidden=\"false\" aria-label=\"Remove row\">delete</mat-icon>\r\n </button>\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"position\" *ngIf=\"instance.component.reorder\">\r\n <th mat-header-cell *matHeaderCellDef> No.</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <mat-icon cdkDragHandle>reorder</mat-icon>\r\n </td>\r\n </ng-container>\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <div *ngIf=\"instance?.component?.reorder\">\r\n <tr class=\"datagrid-row\" mat-row *matRowDef=\"let row; columns: displayedColumns;\" cdkDrag\r\n [cdkDragData]=\"row\"></tr>\r\n </div>\r\n <div *ngIf=\"!instance?.component?.reorder\">\r\n <tr class=\"datagrid-row\" mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\r\n </div>\r\n </table>\r\n </div>\r\n</ng-container>\r\n\r\n<!-- Default Message -->\r\n<ng-template #noDataMessage>\r\n <div class=\"no-data-message\" *ngIf=\"isCustomerCountryFiltered && emptyArray && !showNewProductPicker\">\r\n <span>\r\n No Product found with the selected Customer country.\r\n </span>\r\n </div>\r\n</ng-template>\r\n\r\n <table mat-table [dataSource]=\"dataSourceNew\" class=\"mat-table\" *ngIf=\"dataSourceNew.length > 0 && showNewProductPicker; else noData\" >\r\n <!-- Product Name Column -->\r\n <ng-container matColumnDef=\"productName\">\r\n <th mat-header-cell *matHeaderCellDef> {{productTweek}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.text}} </td>\r\n </ng-container>\r\n\r\n <!-- Quantity Column -->\r\n <ng-container matColumnDef=\"quantity\" *ngIf=\"showQuantity\">\r\n <th mat-header-cell *matHeaderCellDef> {{ quantityTweek }} </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.quantity}} </td>\r\n </ng-container>\r\n\r\n <!-- Price Column -->\r\n <ng-container matColumnDef=\"price\" *ngIf=\"showPrice\">\r\n <th mat-header-cell *matHeaderCellDef> {{priceTweek}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.price}} </td>\r\n </ng-container>\r\n\r\n <!-- Category Column -->\r\n <ng-container matColumnDef=\"category\" *ngIf=\"showCategory\">\r\n <th mat-header-cell *matHeaderCellDef> {{categoryTweek}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.category}} </td>\r\n </ng-container>\r\n\r\n <!-- Category Column -->\r\n <ng-container matColumnDef=\"subCategory\" *ngIf=\"showSubcategory\">\r\n <th mat-header-cell *matHeaderCellDef> {{subCategoryTweek}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.subCategory}} </td>\r\n </ng-container>\r\n\r\n <!-- SKU Column -->\r\n <ng-container matColumnDef=\"skuNumber\" *ngIf=\"showSkuNumber\">\r\n <th mat-header-cell *matHeaderCellDef> {{skuTweek}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element?.otherInformation0}} </td>\r\n </ng-container>\r\n\r\n <!-- Inventory Column -->\r\n <ng-container matColumnDef=\"inventory\" *ngIf=\"showInventory\">\r\n <th mat-header-cell *matHeaderCellDef> {{inventoryTweek}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element?.otherInformation1}} </td>\r\n </ng-container>\r\n\r\n <!-- Your Target Cost -->\r\n <ng-container matColumnDef=\"cost\" *ngIf=\"showCost\">\r\n <th mat-header-cell *matHeaderCellDef> {{costTweek}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element?.otherInformation0 || element?.otherInformation2}} </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumnsNew\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumnsNew;\"></tr>\r\n </table>\r\n <ng-template #noData>\r\n <div class=\"no-data-message\" *ngIf=\"showNewProductPicker\">\r\n <ng-container *ngIf=\"showNewProductPicker && !isCustomerCountryFiltered\">\r\n No products found. Please add some products.\r\n </ng-container>\r\n <ng-container *ngIf=\"showNewProductPicker && isCustomerCountryFiltered\">\r\n No products found. Please add some products.\r\n </ng-container>\r\n </div>\r\n </ng-template>\r\n\r\n</ng-container>\r\n\r\n </mat-card-content>\r\n <mat-card-actions *ngIf=\"instance.hasAddButton() && instance.component.addAnotherPosition !== 'top'\">\r\n <button class = \"picker2new-btn\" mat-raised-button color=\"primary\" (click)=\"addAnother()\" *ngIf=\"!(isCustomerCountryFiltered && emptyArray && !showNewProductPicker)\">\r\n <mat-icon>add</mat-icon>\r\n {{instance.component.addAnother || 'Add Another'}}\r\n </button>\r\n </mat-card-actions>\r\n </mat-card>\r\n </ng-template>\r\n\r\n <ng-template #labelTemplate>\r\n <mat-card-title>\r\n <span [instance]=\"instance\" matFormioLabel></span>\r\n </mat-card-title>\r\n </ng-template>\r\n `,\r\n styles: [\r\n `.datagrid-row { height: auto; } .mat-mdc-table{ width: 100% } .mat-mdc-header-cell, .mat-mdc-cell{ padding: 8px } .no-data-message {display: flex; justify-content: center; align-items: center; text-align: center; padding:20px; margin: 0 20px 0; font-size: 18px;color: #888;}\r\n ::ng-deep .picker2new-btn.cdk-program-focused .mat-mdc-button-persistent-ripple::before{opacity: 0} \r\n .mat-mdc-card-content { padding:0 }\r\n .delete-btn-wrp .mat-icon { font-size:24px; width:auto ; height: auto; margin-left:8px } \r\n .delete-btn-wrp {vertical-align: top} .dropdown-selection .mat-mdc-form-field .mat-icon {padding-right:0}\r\n \r\n `\r\n ]\r\n})\r\nexport class MaterialDataGridComponent extends MaterialNestedComponent {\r\n\r\n constructor(public element: ElementRef, public ref: ChangeDetectorRef, private dialog: MatDialog, public commonService: CommonService) {\r\n super(element, ref);\r\n if (this.element && this.element.nativeElement && this.instance) {\r\n // Add custom classes to elements.\r\n if (this.instance.component.customClass) {\r\n this.element.nativeElement.classList.add(this.instance.component.customClass);\r\n }\r\n }\r\n }\r\n displayedColumns: string[];\r\n formColumns: string[];\r\n columns: any;\r\n dataSource = new MatTableDataSource();\r\n dataSourceNew = ELEMENT_DATA;\r\n displayedColumnsNew: string[] = ['productName', 'category', 'subCategory', 'quantity', 'price', 'skuNumber', 'inventory', 'cost'];\r\n showNewProductPicker: boolean = false;\r\n showCategory: boolean = false;\r\n showSubcategory: boolean = false;\r\n showPrice: boolean = true;\r\n showQuantity: boolean = true;\r\n showSkuNumber: boolean = false;\r\n showInventory: boolean = false;\r\n hasInitialized: boolean = false;\r\n checkSubmissionStatus: boolean = false;\r\n showDataGrid: boolean = true;\r\n hasValueAndEditMode: boolean = false;\r\n dropdownL1: boolean = false;\r\n dropdownL2: boolean = false;\r\n dropdownL3: boolean = false;\r\n dropdownL4: boolean = false;\r\n showDialogQuantity: boolean = false;\r\n showDialogPrice: boolean = false;\r\n showDialogCategory: boolean = false;\r\n showDialogSkuNumber: boolean = false;\r\n showDialogInventory: boolean = false;\r\n showDialogSubCategory: boolean = false;\r\n dropdownL1Label: string = '';\r\n dropdownL2Label: string = '';\r\n dropdownL3Label: string = '';\r\n dropdownL4Label: string = '';\r\n dealId: any;\r\n isCustomerCountryFiltered: boolean = false;\r\n emptyArray: boolean = false;\r\n isPriceDisable: boolean = true;\r\n priceTweek: string = 'Price';\r\n skuTweek: string = 'SKU Number';\r\n costTweek: string = 'Your Target Cost';\r\n showCost: boolean = false;\r\n showDialogCost: boolean = false;\r\n quantityTweek: string = 'Quantity';\r\n productTweek: string = 'Product Name';\r\n categoryTweek: string = 'Category Name';\r\n subCategoryTweek: string = 'Sub Category';\r\n inventoryTweek: string = 'Inventory';\r\n alphanumeric: boolean = false;\r\n getColumnLabel(column) {\r\n return column.label || column.key;\r\n }\r\n\r\n\r\n\r\n getLabelName(newProductPickerFlag, attributeName) {\r\n if (newProductPickerFlag && Object.keys(newProductPickerFlag).some(key =>\r\n key.toLocaleLowerCase() === attributeName.toLowerCase())) {\r\n // Find the key that matches attributeName case-insensitively\r\n const matchingKey = Object.keys(newProductPickerFlag).find(key =>\r\n key.toLocaleLowerCase() === attributeName.toLowerCase()\r\n );\r\n // Return the value of the matching key\r\n return newProductPickerFlag[matchingKey];\r\n }\r\n\r\n return '';\r\n }\r\n\r\n\r\n // ngOnInit(): void {\r\n\r\n // }\r\n\r\n setInstance(instance: any) {\r\n const checkAttribute = instance?.component?.attributes;\r\n this.showNewProductPicker = this.commonService.checkIsAttributeTrue(checkAttribute, \"newproductpicker\");\r\n this.showCategory = this.commonService.checkIsAttributeTrue(checkAttribute, \"showCategory\");\r\n this.showSubcategory = this.commonService.checkIsAttributeTrue(checkAttribute, \"showSubcategory\");\r\n this.showPrice = this.commonService.checkIsAttributeTrue(checkAttribute, \"showPrice\");\r\n this.showQuantity = this.commonService.checkIsAttributeTrue(checkAttribute, \"showQuantity\");\r\n this.showSkuNumber = this.commonService.checkIsAttributeTrue(checkAttribute, \"showSkuNumber\");\r\n this.showInventory = this.commonService.checkIsAttributeTrue(checkAttribute, \"showInventory\")\r\n this.showDialogQuantity = this.commonService.checkIsAttributeTrue(checkAttribute, \"showDialogQuantity\");\r\n this.showDialogPrice = this.commonService.checkIsAttributeTrue(checkAttribute, \"showDialogPrice\");\r\n this.showDialogCategory = this.commonService.checkIsAttributeTrue(checkAttribute, \"showDialogCategory\");\r\n this.showDialogSkuNumber = this.commonService.checkIsAttributeTrue(checkAttribute, \"showDialogSkuNumber\");\r\n this.showDialogInventory = this.commonService.checkIsAttributeTrue(checkAttribute, \"showDialogInventory\");\r\n this.showDialogSubCategory = this.commonService.checkIsAttributeTrue(checkAttribute, \"showDialogSubCategory\");\r\n this.isCustomerCountryFiltered = this.commonService.checkIsAttributeTrue(checkAttribute, \"filterProductBasedOnCustomerCountry\");\r\n this.isPriceDisable = this.commonService.checkIsAttributeTrue(checkAttribute, \"isPriceDisable\");\r\n this.showCost = this.commonService.checkIsAttributeTrue(checkAttribute, \"showCost\");\r\n this.showDialogCost = this.commonService.checkIsAttributeTrue(checkAttribute, \"showDialogCost\");\r\n this.alphanumeric = this.commonService.checkIsAttributeTrue(checkAttribute, \"Alphanumeric\");\r\n const l1 = this.getLabelName(checkAttribute, \"dropdownL1\");\r\n const l2 = this.getLabelName(checkAttribute, \"dropdownL2\");\r\n const l3 = this.getLabelName(checkAttribute, \"dropdownL3\");\r\n const l4 = this.getLabelName(checkAttribute, \"dropdownL4\");\r\n const price = this.getLabelName(checkAttribute, \"priceLabel\");\r\n const sku = this.getLabelName(checkAttribute, \"skuLabel\");\r\n const cost = this.getLabelName(checkAttribute, \"costLabel\");\r\n const quantity = this.getLabelName(checkAttribute, \"quantityLabel\");\r\n const product = this.getLabelName(checkAttribute, \"productLabel\");\r\n const category = this.getLabelName(checkAttribute, \"categoryLabel\");\r\n const subCategory = this.getLabelName(checkAttribute, \"subCategoryLabel\");\r\n const inventory = this.getLabelName(checkAttribute, \"inventoryLabel\");\r\n this.dropdownL1 = l1 !== null && l1 !== undefined && (typeof l1 === 'string' ? l1.trim() !== \"\" : l1 !== \"\") ? true : false;\r\n this.dropdownL2 = l2 !== null && l2 !== undefined && (typeof l2 === 'string' ? l2.trim() !== \"\" : l2 !== \"\") ? true : false;\r\n this.dropdownL3 = l3 !== null && l3 !== undefined && (typeof l3 === 'string' ? l3.trim() !== \"\" : l3 !== \"\") ? true : false;\r\n this.dropdownL4 = l4 !== null && l4 !== undefined && (typeof l4 === 'string' ? l4.trim() !== \"\" : l4 !== \"\") ? true : false;\r\n const priceTweek = price !== null && price !== undefined && (typeof price === 'string' ? price.trim() !== \"\" : price !== \"\") ? true : false;\r\n const skuTweek = sku !== null && sku !== undefined && (typeof sku === 'string' ? sku.trim() !== \"\" : sku !== \"\") ? true : false;\r\n const costTweek = cost !== null && cost !== undefined && (typeof cost === 'string' ? cost.trim() !== \"\" : cost !== \"\") ? true : false;\r\n const quantityTweek = quantity !== null && quantity !== undefined && (typeof quantity === 'string' ? quantity.trim() !== \"\" : quantity !== \"\") ? true : false;\r\n const productTweek = product !== null && product !== undefined && (typeof product === 'string' ? product.trim() !== \"\" : product !== \"\") ? true : false;\r\n const categoryTweek = category !== null && category !== undefined && (typeof category === 'string' ? category.trim() !== \"\" : category !== \"\") ? true : false;\r\n const subCategoryTweek = subCategory !== null && subCategory !== undefined && (typeof subCategory === 'string' ? subCategory.trim() !== \"\" : subCategory !== \"\") ? true : false;\r\n const inventoryTweek = inventory !== null && inventory !== undefined && (typeof inventory === 'string' ? inventory.trim() !== \"\" : inventory !== \"\") ? true : false;\r\n if (this.dropdownL1) {\r\n this.dropdownL1Label = l1;\r\n }\r\n if (this.dropdownL2) {\r\n this.dropdownL2Label = l2;\r\n }\r\n if (this.dropdownL3) {\r\n this.dropdownL3Label = l3;\r\n }\r\n if (this.dropdownL4) {\r\n this.dropdownL4Label = l4;\r\n }\r\n if (priceTweek) {\r\n this.priceTweek = price;\r\n }\r\n\r\n if (skuTweek) {\r\n this.skuTweek = sku;\r\n }\r\n\r\n if (costTweek) {\r\n this.costTweek = cost;\r\n }\r\n if (quantityTweek) {\r\n this.quantityTweek = quantity;\r\n }\r\n\r\n if (productTweek) {\r\n this.productTweek = product;\r\n }\r\n if (categoryTweek) {\r\n this.categoryTweek = category;\r\n }\r\n if (subCategoryTweek) {\r\n this.subCategoryTweek = subCategory;\r\n }\r\n if (inventoryTweek) {\r\n this.inventoryTweek = inventory;\r\n }\r\n this.checkSubmissionStatus = this.commonService.checkIsAttributeTrue(checkAttribute, 'isProductOptional');\r\n this.hasValueAndEditMode = (checkAttribute?.hasValue === 'yes') && (checkAttribute?.editMode === 'true');\r\n const retrievedObject = JSON.parse(localStorage.getItem('storageObject'));\r\n this.emptyArray = retrievedObject?.dataSource?.length < 1 ? true : false;\r\n super.setInstance(instance);\r\n if (this.showNewProductPicker && !this.hasInitialized) {\r\n if (!this.showCategory) {\r\n this.removeColumn('category');\r\n }\r\n if (!this.showQuantity) {\r\n this.removeColumn('quantity');\r\n }\r\n if (!this.showPrice) {\r\n this.removeColumn('price');\r\n }\r\n if (!this.showSubcategory) {\r\n this.removeColumn('subCategory');\r\n }\r\n if (!this.showSkuNumber) {\r\n this.removeColumn('skuNumber');\r\n }\r\n if (!this.showInventory) {\r\n this.removeColumn('inventory')\r\n }\r\n if (!this.showCost) {\r\n this.removeColumn('cost');\r\n }\r\n this.dealId = this.getLabelName(checkAttribute, \"dealId\");\r\n localStorage.setItem(\"currentDealId\", this.dealId);\r\n const storedData = localStorage.getItem(`showGridPickerProducts-${this.dealId}`) || '';\r\n const parsedData = JSON.parse(storedData || 'null');\r\n this.dataSourceNew = Array.isArray(parsedData) ? parsedData : [];\r\n\r\n // Set flag to true to prevent further execution\r\n this.hasInitialized = true;\r\n } else {\r\n this.dataSource.data = instance.dataValue;\r\n }\r\n //this.checkSubmissionStatus && \r\n if (this.checkSubmissionStatus && !this.hasValueAndEditMode) {\r\n this.showDataGrid = false;\r\n this.dataSource.data = []\r\n } else {\r\n this.showDataGrid = true;\r\n this.dataSource.data = instance.dataValue;\r\n }\r\n this.columns = {};\r\n this.displayedColumns = [];\r\n this.formColumns = [];\r\n instance.getColumns().map((column) => {\r\n this.formColumns.push(column.key);\r\n this.displayedColumns.push(column.key);\r\n this.columns[column.key] = column;\r\n });\r\n this.displayedColumns.push('__removeRow');\r\n if (this.instance.component.reorder) {\r\n this.displayedColumns.push('position');\r\n }\r\n instance.viewContainer = (component) => {\r\n let viewContainer;\r\n if (this.instance.component.disabled) {\r\n component.component.disabled = true;\r\n }\r\n this.viewContainers.forEach((container) => {\r\n const td = container.element.nativeElement.parentNode;\r\n if (\r\n component.rowIndex === parseInt(td.getAttribute('rowIndex'), 10) &&\r\n component.component.key === td.getAttribute('component')\r\n ) {\r\n viewContainer = container;\r\n }\r\n });\r\n\r\n return viewContainer ? viewContainer : null;\r\n };\r\n\r\n if (this.element && this.element.nativeElement && this.instance) {\r\n // Add custom classes to elements.\r\n if (this.instance.component.customClass) {\r\n this.element.nativeElement.classList.add(this.instance.component.customClass);\r\n }\r\n }\r\n }\r\n\r\n removeColumn(columnName: string) {\r\n this.displayedColumnsNew = this.displayedColumnsNew.filter(column => column !== columnName);\r\n }\r\n\r\n addAnotherOld() {\r\n this.showDataGrid = true;\r\n this.checkRowsNumber();\r\n this.instance.addRow();\r\n if (this.dataSource.data.length < this.instance.rows.length) {\r\n this.dataSource.data.push({});\r\n }\r\n this.dataSource.data = [...this.dataSource.data];\r\n }\r\n\r\n addAnother() {\r\n this.showDataGrid = true;\r\n if (this.showNewProductPicker) {\r\n localStorage.setItem('currentDealId', this.dealId);\r\n const diologeRef = this.dialog.open(AddOnProductsComponent, {\r\n disableClose: true,\r\n width: '90%',\r\n maxWidth: '1000px',\r\n autoFocus: false,\r\n data: { dropdownsFlag: { showDialogInventory: this.showDialogInventory, showInventory: this.showInventory, inventoryTweek: this.inventoryTweek, quantityTweek: this.quantityTweek, subCategoryTweek: this.subCategoryTweek, categoryTweek: this.categoryTweek, productTweek: this.productTweek, costTweek: this.costTweek, skuTweek: this.skuTweek, priceTweek: this.priceTweek, showDialogCost: this.showDialogCost, showNewProductPicker: this.showNewProductPicker, showDialogSubCategory: this.showDialogSubCategory, showDialogSkuNumber: this.showDialogSkuNumber, showDialogCategory: this.showDialogCategory, showDialogPrice: this.showDialogPrice, showDialogQuantity: this.showDialogQuantity, dropdownL1: this.dropdownL1, dropdownL2: this.dropdownL2, dropdownL3: this.dropdownL3, dropdownL4: this.dropdownL4, dropdownL1Label: this.dropdownL1Label, dropdownL2Label: this.dropdownL2Label, dropdownL3Label: this.dropdownL3Label, dropdownL4Label: this.dropdownL4Label, checkSubmissionStatus: this.checkSubmissionStatus, priceDisable: this.isPriceDisable, alphanumeric: this.alphanumeric }, selectedProducts: this.dataSourceNew }\r\n })\r\n .afterClosed().subscribe(response => {\r\n this.instance.addRow();\r\n if (response?.data?.status) {\r\n this.instance.addRow();\r\n if (!this.showCategory) {\r\n this.removeColumn('category');\r\n }\r\n if (!this.showQuantity) {\r\n this.removeColumn('quantity');\r\n }\r\n if (!this.showPrice) {\r\n this.removeColumn('price');\r\n }\r\n if (!this.showSubcategory) {\r\n this.removeColumn('subCategory');\r\n }\r\n if (!this.showInventory) {\r\n this.removeColumn('inventory');\r\n }\r\n const selectedProductsCopy = JSON.parse(JSON.stringify(response.data.items.selectedProducts));\r\n localStorage.setItem(`selectedProducts-${this.dealId}`, JSON.stringify(this.addPriceProperty(selectedProductsCopy)));\r\n this.dataSourceNew = response.data.items.selectedProducts;\r\n this.showDataGrid = true;\r\n this.instance.component.defaultValue = response.data.items.selectedProducts;\r\n }\r\n });\r\n } else {\r\n this.checkRowsNumber();\r\n this.instance.addRow();\r\n if (this.dataSource.data.length < this.instance.rows.length) {\r\n this.dataSource.data.push({});\r\n }\r\n this.dataSource.data = [...this.dataSource.data];\r\n }\r\n\r\n }\r\n\r\n addPriceProperty(selectedProducts) {\r\n return selectedProducts.map(products => {\r\n return {\r\n ...products,\r\n priceDisable: this.isPriceDisable ? true : false\r\n }\r\n })\r\n }\r\n checkRowsNumber() {\r\n while (this.instance.rows.length < this.dataSource.data.length) {\r\n this.instance.addRow();\r\n }\r\n }\r\n\r\n removeRow(index) {\r\n let message = 'Are you sure you want to delete this product?';\r\n let showButton = true;\r\n if (this.dataSource?.data?.length === 1 && !this.checkSubmissionStatus) {\r\n message = 'Please select at least one product.';\r\n showButton = false;\r\n }\r\n const dialogRef = this.dialog.open(ConfirmationDialogComponent, {\r\n disableClose: true,\r\n width: '90%',\r\n maxWidth: '400px',\r\n data: { message: message, buttonStatus: showButton }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n if (this.dataSource?.data?.length === 1 && this.checkSubmissionStatus) {\r\n this.showDataGrid = false;\r\n }\r\n // User confirmed, proceed with deletion\r\n this.instance.removeRow(index);\r\n this.dataSource.data.splice(index, 1);\r\n this.dataSource.data = [...this.dataSource.data];\r\n }\r\n });\r\n }\r\n\r\n dropTable(event: CdkDragDrop<any>) {\r\n const prevIndex = this.dataSource.data.findIndex((d) => d === event.item.data);\r\n moveItemInArray(this.control.value, prevIndex, event.currentIndex);\r\n this.renderComponents();\r\n }\r\n\r\n renderComponents() {\r\n this.instance.getRows();\r\n this.instance.setValue(this.control.value || []);\r\n }\r\n\r\n setValue(value: [] | null) {\r\n const gridLength = value ? value.length : 0;\r\n while (this.instance.rows.length < gridLength) {\r\n this.addAnother();\r\n this.instance.dataValue = value;\r\n this.instance.setValue(value);\r\n }\r\n\r\n if (!value && this.instance.component.clearOnHide) {\r\n this.dataSource = new MatTableDataSource(this.instance.defaultValue);\r\n }\r\n super.setValue(value);\r\n }\r\n}\r\nDataGridComponent.MaterialComponent = MaterialDataGridComponent;\r\nexport { DataGridComponent };","import {\r\n Component,\r\n ViewChild,\r\n ViewChildren,\r\n QueryList,\r\n ElementRef,\r\n AfterViewInit\r\n} from '@angular/core';\r\nimport { MaterialNestedComponent } from '../MaterialNestedComponent';\r\nimport EditGridComponent from 'formiojs/components/editgrid/EditGrid.js';\r\nimport { FormioComponent } from '../../formio.component';\r\nimport Components from 'formiojs/components/Components';\r\nimport isString from 'lodash/isString';\r\n\r\nenum EditRowState {\r\n NEW = 'new',\r\n EDITING ='editing',\r\n SAVED = 'saved',\r\n REMOVED = 'removed',\r\n DRAFT = 'draft'\r\n};\r\n\r\n/* tslint:disable no-bitwise only-arrow-functions */\r\nconst hashCode = function(str) {\r\n let hash = 0;\r\n let i = 0;\r\n let chr;\r\n str = str.replace(/\\s/g, '');\r\n if (str.length === 0) {\r\n return hash;\r\n }\r\n for (i = 0; i < str.length; i++) {\r\n chr = str.charCodeAt(i);\r\n hash = ((hash << 5) - hash) + chr;\r\n hash |= 0; // Convert to 32bit integer\r\n }\r\n return hash;\r\n};\r\n/* tslint:enable no-bitwise only-arrow-functions */\r\n\r\n// Do nothing to createRowComponents, let mat-formio handle it.\r\n/* tslint:disable only-arrow-functions */\r\nEditGridComponent.prototype.createRowComponents = function() {\r\n return [];\r\n};\r\n\r\nconst checkRow = EditGridComponent.prototype.checkRow;\r\nEditGridComponent.prototype.checkRow = function(data, editRow, flags: any = {}) {\r\n if (flags.checkRow) {\r\n return checkRow.call(this, data, editRow, flags);\r\n } else {\r\n return true;\r\n }\r\n};\r\n/* tslint:enable only-arrow-functions */\r\n\r\nconst DEFAULT_HEADER_TEMPLATES = [\r\n hashCode((EditGridComponent as any).defaultHeaderTemplate),\r\n hashCode(`\r\n <div class=\"row\">\r\n {% (components || []).forEach(function(component) { %}\r\n <div class=\"col-sm-2\">{{ component.label }}</div>\r\n {% }) %}\r\n </div>`)\r\n];\r\n\r\nconst DEFAULT_ROW_TEMPLATES = [\r\n hashCode((EditGridComponent as any).defaultRowTemplate),\r\n hashCode(`<div class=\"row\">\r\n {% util.eachComponent(components, function(component) { %}\r\n <div class=\"col-sm-2\">\r\n {{ getView(component, row[component.key]) }}\r\n </div>\r\n {% }) %}\r\n {% if (!instance.options.readOnly) { %}\r\n <div class=\"col-sm-2\">\r\n <div class=\"btn-group pull-right\">\r\n <button class=\"btn btn-default btn-sm editRow\">Edit</button>\r\n <button class=\"btn btn-danger btn-sm removeRow\">Delete</button>\r\n </div>\r\n </div>\r\n {% } %}\r\n</div>`)\r\n];\r\n\r\n@Component({\r\n selector: 'mat-formio-editgrid',\r\n styleUrls: ['./editgrid.component.css'],\r\n templateUrl: './editgrid.component.html'\r\n})\r\nexport class MaterialEditGridComponent extends MaterialNestedComponent implements AfterViewInit {\r\n @ViewChild('header') headerElement: ElementRef;\r\n @ViewChild('footer') footerElement: ElementRef;\r\n @ViewChildren('rows') rowElements: QueryList<ElementRef>;\r\n @ViewChildren('forms') forms: QueryList<FormioComponent>;\r\n public header: string;\r\n public footer: string;\r\n public displayedColumns: string[];\r\n public columns: any = {};\r\n public colWidth = 0;\r\n public valid = true;\r\n public RowStates = EditRowState;\r\n\r\n getRowTemplate(content) {\r\n return `<mat-list style=\"display: flex;\">\r\n {% (components || []).forEach(function(component) { %}\r\n {% if (!component.hasOwnProperty('tableView') || component.tableView) { %}\r\n <mat-list-item style=\"width: {{ colWidth }}%; margin: 0 0.8rem\">${content}</mat-list-item>\r\n {% } %}\r\n {% }) %}\r\n </mat-list>`;\r\n}\r\n\r\n validate(index) {\r\n if (!this.forms) {\r\n return;\r\n }\r\n const forms = this.forms.toArray();\r\n if (!forms[index]) {\r\n return;\r\n }\r\n const formioComponent = forms[index];\r\n const {data} = formioComponent.formio.submission;\r\n const isInvalid = Object.keys(data).some(\r\n value => isString(data[value]) && data[value].length === 0\r\n );\r\n\r\n if (isInvalid) {\r\n this.valid = false;\r\n } else {\r\n this.valid = true;\r\n }\r\n }\r\n\r\n setInstance(instance) {\r\n if (\r\n instance.component.templates.header &&\r\n (DEFAULT_HEADER_TEMPLATES.indexOf(hashCode(instance.component.templates.header)) !== -1)\r\n ) {\r\n instance.component.templates.header = this.getRowTemplate('{{ component.label }}');\r\n }\r\n\r\n if (instance.component.templates.row &&\r\n (DEFAULT_ROW_TEMPLATES.indexOf(hashCode(instance.component.templates.row)) !== -1)\r\n ) {\r\n instance.component.templates.row = this.getRowTemplate('{{ getView(component, row[component.key]) }}');\r\n }\r\n\r\n this.displayedColumns = instance.component.components.map((comp) => {\r\n if (comp.hasOwnProperty('tableView') && !comp.tableView) {\r\n return false;\r\n }\r\n\r\n this.columns[comp.key] = comp;\r\n return comp.key;\r\n }).filter(name => !!name);\r\n const dataValue = instance.dataValue || [];\r\n this.colWidth = instance.component.components.length ? Math.floor(100 / instance.component.components.length) : 100;\r\n if (instance.component.templates && instance.component.templates.header) {\r\n this.header = instance.renderString(instance.component.templates.header, {\r\n components: instance.component.components,\r\n value: dataValue,\r\n colWidth: this.colWidth\r\n });\r\n }\r\n if (instance.component.templates && instance.component.templates.footer) {\r\n this.footer = instance.renderString(instance.component.templates.footer, {\r\n components: instance.component.components,\r\n value: dataValue,\r\n colWidth: this.colWidth\r\n });\r\n }\r\n setTimeout(() => {\r\n this.renderTemplate(this.headerElement, this.header);\r\n this.renderTemplate(this.footerElement, this.footer);\r\n }, 0);\r\n super.setInstance(instance);\r\n }\r\n\r\n addAnother() {\r\n const row = this.instance.addRow();\r\n }\r\n\r\n editRow(row, index) {\r\n const { state } = row;\r\n const { NEW, REMOVED } = this.RowStates;\r\n\r\n if (state === NEW || state === REMOVED) {\r\n return;\r\n }\r\n this.instance.editRow(index);\r\n const forms = this.forms.toArray();\r\n if (forms[index]) {\r\n forms[index].formio.submission = {data: JSON.parse(JSON.stringify(row.data))};\r\n }\r\n }\r\n\r\n /**\r\n * Updates the row template.\r\n *\r\n * @param row\r\n * @param index\r\n */\r\n updateRowTemplate(rowElement: ElementRef, index, comps) {\r\n const self = this;\r\n const editRow: any = {...this.instance.editRows[index]};\r\n if (editRow.state !== this.RowStates.NEW) {\r\n this.renderTemplate(rowElement, this.instance.renderString(this.instance.component.templates.row, {\r\n row: this.instance.dataValue[index] || {},\r\n data: this.instance.data,\r\n rowIndex: index,\r\n colWidth: this.colWidth,\r\n components: this.instance.component.components,\r\n getView: function getView(component, data) {\r\n if (!comps[component.type]) {\r\n comps[component.type] = Components.create(component, {}, {}, true);\r\n }\r\n return comps[component.type] ? comps[component.type].getView(data) : '';\r\n }\r\n }));\r\n }\r\n }\r\n\r\n /**\r\n * Saves a row.\r\n *\r\n * @param row - The edit grid row.\r\n * @param index - The index for this row.\r\n */\r\n saveRow(row, index) {\r\n const forms = this.forms.toArray();\r\n if (forms[index]) {\r\n const formioComponent = forms[index];\r\n row.data = JSON.parse(JSON.stringify(formioComponent.formio.submission.data));\r\n this.instance.saveRow(index);\r\n const rows = this.rowElements.toArray();\r\n if (rows && rows[index]) {\r\n this.updateRowTemplate(rows[index], index, {});\r\n }\r\n }\r\n }\r\n\r\n cancelRow(index) {\r\n this.instance.cancelRow(index);\r\n this.valid = true;\r\n }\r\n\r\n renderTemplate(element: ElementRef, template) {\r\n if (!element || !element.nativeElement) {\r\n return;\r\n }\r\n element.nativeElement.innerHTML = template;\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.rowElements.changes.subscribe((rows: QueryList<ElementRef>) => {\r\n const rowCache = {};\r\n rows.forEach((row: ElementRef, index) => this.updateRowTemplate(row, index, rowCache));\r\n });\r\n }\r\n}\r\nEditGridComponent.MaterialComponent = MaterialEditGridComponent;\r\nexport { EditGridComponent };\r\n","<!-- <mat-formio-form-field [instance]=\"instance\" [componentTemplate]=\"componentTemplate\" [labelTemplate]=\"labelTemplate\">\r\n</mat-formio-form-field>\r\n<ng-template #componentTemplate let-hasLabel>\r\n\r\n <span fxLayout=\"column\" fxLayoutGap=\"1em\" fxFill>\r\n <ng-container *ngIf=\"hasLabel\">\r\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\r\n </ng-container>\r\n <mat-accordion>\r\n <mat-expansion-panel *ngIf=\"header\" disabled=\"true\">\r\n <mat-expansion-panel-header>\r\n <span #header fxFill></span>\r\n </mat-expansion-panel-header>\r\n </mat-expansion-panel>\r\n\r\n <mat-expansion-panel *ngFor=\"let row of instance.editRows; index as i;\" [expanded]=\"instance.isOpen(row)\">\r\n <mat-expansion-panel-header (click)=\"editRow(row, i)\">\r\n <span *ngIf=\"row.state !== RowStates.NEW\" #rows fxFill></span>\r\n </mat-expansion-panel-header>\r\n\r\n <mat-formio [form]=\"instance.component\" #forms (change)=\"validate(i)\"></mat-formio>\r\n\r\n <span fxLayout=\"row\" fxLayoutGap=\"1em\">\r\n <button mat-raised-button color=\"primary\" [disabled]=\"!valid\" (click)=\"saveRow(row, i)\">Save</button>\r\n <button mat-raised-button color=\"secondary\" (click)=\"cancelRow(i)\">Cancel</button>\r\n <button mat-raised-button color=\"warn\" (click)=\"instance.removeRow(i)\" class=\"delete-button\">\r\n <mat-icon>delete</mat-icon>\r\n </button>\r\n </span>\r\n </mat-expansion-panel>\r\n\r\n <mat-expansion-panel *ngIf=\"footer\" disabled=\"true\">\r\n <mat-expansion-panel-header>\r\n <span #footer></span>\r\n </mat-expansion-panel-header>\r\n </mat-expansion-panel>\r\n </mat-accordion>\r\n\r\n <span fxFill=\"none\" *ngIf=\"instance.hasAddButton()\">\r\n <button mat-raised-button color=\"primary\" (click)=\"addAnother()\">\r\n <mat-icon>add</mat-icon> Add Another\r\n </button>\r\n </span>\r\n </span>\r\n</ng-template>\r\n\r\n<ng-template #labelTemplate>\r\n <mat-card-title>\r\n <span [instance]=\"instance\" matFormioLabel></span>\r\n </mat-card-title>\r\n</ng-template> -->\r\n","import { Component } from '@angular/core';\r\nimport { MaterialNestedComponent } from '../MaterialNestedComponent';\r\nimport TableComponent from 'formiojs/components/table/Table.js';\r\n\r\n@Component({\r\n selector: 'mat-formio-table',\r\n styleUrls: [ './table.component.css' ],\r\n template: `\r\n <table class=\"mat-table\" style=\"width: 100%;\" [ngClass]=\"{'is-bordered' : instance.component.bordered}\">\r\n <thead>\r\n <tr class=\"mat-header-row\">\r\n <th *ngFor=\"let header of instance.component.header\"\r\n class=\"mat-header-cell\"\r\n >\r\n {{ instance.t(header) }}\r\n </th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody>\r\n <tr *ngFor=\"let row of instance.table; let i = index\"\r\n role=\"row\"\r\n class=\"mat-row\"\r\n [ngClass]=\"{\r\n 'is-hover': instance.component.hover,\r\n 'is-striped': instance.component.striped && i % 2 === 0\r\n }\"\r\n >\r\n <td *ngFor=\"let col of row\"\r\n role=\"gridcell\"\r\n class=\"mat-cell\"\r\n [ngClass]=\"getTableColClasses()\"\r\n >\r\n <ng-template #components></ng-template>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n `\r\n})\r\nexport class MaterialTableComponent extends MaterialNestedComponent {\r\n\r\n setInstance(instance: any) {\r\n super.setInstance(instance);\r\n instance.viewContainer = (component) => {\r\n return this.viewContainers ?\r\n this.viewContainers[(component.tableRow * this.instance.component.numCols) + component.tableColumn] :\r\n null;\r\n };\r\n }\r\n\r\n getTableColClasses() {\r\n if (!this.instance) {\r\n return;\r\n }\r\n const {condensed, cellAlignment} = this.instance.component;\r\n return {\r\n 'is-condensed': condensed,\r\n ...(cellAlignment && {[cellAlignment]: true})\r\n }\r\n }\r\n}\r\nTableComponent.MaterialComponent = MaterialTableComponent;\r\nexport { TableComponent };\r\n","import { Component, ViewChild } from '@angular/core';\r\nimport { MatStepper } from '@angular/material/stepper';\r\nimport Wizard from 'formiojs/Wizard';\r\nimport Displays from 'formiojs/displays/Displays';\r\nimport { MaterialNestedComponent } from './MaterialNestedComponent';\r\n\r\n@Component({\r\n selector: 'mat-formio-wizard',\r\n styles: [\r\n ':host .navigation-button-row { margin-top: 8px; }',\r\n ':host .navigation-button-row button { margin-right: 8px; }'\r\n ],\r\n template: `\r\n <mat-horizontal-stepper [linear]=\"isLinear\" #stepper>\r\n <mat-step *ngFor=\"let page of instance.pages\" [label]=\"page.component.title\">\r\n <ng-template #components></ng-template>\r\n <div class=\"navigation-button-row\">\r\n <button *ngIf=\"instance.hasButton('cancel')\" mat-raised-button (click)=\"resetWizard()\">Cancel</button>\r\n <button *ngIf=\"instance.hasButton('previous')\" mat-raised-button color=\"primary\" (click)=\"prevPage()\">Previous</button>\r\n <button *ngIf=\"instance.hasButton('next')\" mat-raised-button color=\"primary\" (click)=\"nextPage()\">Next</button>\r\n <button *ngIf=\"instance.hasButton('submit')\" mat-raised-button color=\"primary\" (click)=\"submit()\">Submit</button>\r\n </div>\r\n </mat-step>\r\n </mat-horizontal-stepper>`\r\n})\r\nexport class MaterialWizardComponent extends MaterialNestedComponent {\r\n @ViewChild('stepper', {static: true}) stepper: MatStepper;\r\n public isLinear = true;\r\n private prevNumOfPages = 0;\r\n\r\n setInstance(instance: any) {\r\n this.isLinear = (\r\n instance.options &&\r\n instance.options.breadcrumbSettings &&\r\n instance.options.breadcrumbSettings.clickable\r\n ) ? false : true;\r\n\r\n this.updatePages(instance);\r\n instance.on('pagesChanged', () => this.updatePages());\r\n\r\n super.setInstance(instance);\r\n }\r\n\r\n updatePages(instance = this.instance) {\r\n if (this.prevNumOfPages !== instance.pages.length) {\r\n instance.pages.forEach((page, pageIndex) => {\r\n page.viewContainer = () => {\r\n return this.viewContainers ? this.viewContainers[pageIndex] : null;\r\n };\r\n });\r\n this.prevNumOfPages = instance.pages.length;\r\n }\r\n }\r\n\r\n resetWizard() {\r\n this.instance.cancel();\r\n this.stepper.reset();\r\n }\r\n\r\n nextPage() {\r\n this.instance.nextPage().then(() => this.stepper.next());\r\n }\r\n\r\n prevPage() {\r\n this.instance.prevPage().then(() => this.stepper.previous());\r\n }\r\n\r\n submit() {\r\n this.instance.submit();\r\n }\r\n\r\n renderComponents() {\r\n if (this.instance.renderComponents && this.instance.pages) {\r\n this.instance.renderComponents(this.instance.pages.reduce((comps, page) => {\r\n return comps.concat(page.components);\r\n }, []));\r\n }\r\n }\r\n}\r\nWizard.MaterialComponent = MaterialWizardComponent;\r\nDisplays.addDisplay('wizard', Wizard);\r\nexport { Wizard };\r\n","declare var require: any\r\nconst Components = require('formiojs/components/Components').default;\r\nimport Component from 'formiojs/components/_classes/component/Component.js';\r\n\r\nimport { TextFieldComponent } from './textfield/textfield.component';\r\nimport { PasswordComponent } from './password/password.component';\r\nimport { EmailComponent } from './email/email.component';\r\nimport { UrlComponent } from './url/url.component';\r\nimport { PhoneNumberComponent } from './phonenumber/phonenumber.component';\r\nimport { NumberComponent } from './number/number.component';\r\nimport { CurrencyComponent } from './currency/currency.component';\r\nimport { DayComponent } from './day/day.component';\r\nimport { HiddenComponent } from './hidden/hidden.component';\r\nimport { HtmlComponent } from './html/html.component';\r\nimport { TagsComponent } from './tags/tags.component';\r\nimport { ButtonComponent } from './button/button.component';\r\nimport { TextAreaComponent } from './textarea/textarea.component';\r\nimport { PanelComponent } from './panel/panel.component';\r\nimport { ColumnsComponent } from './columns/columns.component';\r\nimport { ContainerComponent } from './container/container.component';\r\nimport { TabsComponent } from './tabs/tabs.component';\r\nimport { DateTimeComponent } from './date/date.component';\r\nimport { CheckboxComponent } from './checkbox/checkbox.component';\r\nimport { FieldsetComponent } from './fieldset/fieldset.component';\r\nimport { ContentComponent } from './content/content.component';\r\nimport { SignatureComponent } from './signature/signature.component';\r\nimport { SurveyComponent } from './survey/survey.component';\r\nimport { SelectBoxesComponent } from './selectboxes/selectboxes.component';\r\nimport { RadioComponent } from './radio/radio.component';\r\nimport { SelectComponent } from './select/select.component';\r\nimport { WellComponent } from './well/well.component';\r\nimport { DataGridComponent } from './datagrid/datagrid.component';\r\nimport { EditGridComponent } from './editgrid/editgrid.component';\r\nimport { TableComponent } from './table/table.component';\r\nimport { FormioComponent } from './MaterialComponent';\r\nimport { Wizard } from './formio.wizard';\r\nimport { TimeComponent } from './time/time.component'\r\n\r\n// Set the components.\r\nconst components: any = {\r\n textfield: TextFieldComponent,\r\n password: PasswordComponent,\r\n url: UrlComponent,\r\n checkbox: CheckboxComponent,\r\n email: EmailComponent,\r\n phoneNumber: PhoneNumberComponent,\r\n number: NumberComponent,\r\n currency: CurrencyComponent,\r\n day: DayComponent,\r\n hidden: HiddenComponent,\r\n htmlelement: HtmlComponent,\r\n tags: TagsComponent,\r\n textarea: TextAreaComponent,\r\n button: ButtonComponent,\r\n datetime: DateTimeComponent,\r\n panel: PanelComponent,\r\n columns: ColumnsComponent,\r\n tabs: TabsComponent,\r\n table: TableComponent,\r\n well: WellComponent,\r\n fieldset: FieldsetComponent,\r\n content: ContentComponent,\r\n signature: SignatureComponent,\r\n survey: SurveyComponent,\r\n selectboxes: SelectBoxesComponent,\r\n radio: RadioComponent,\r\n select: SelectComponent,\r\n container: ContainerComponent,\r\n datagrid: DataGridComponent,\r\n editgrid: EditGridComponent,\r\n unknown: FormioComponent,\r\n time: TimeComponent,\r\n wizard: Wizard\r\n};\r\n\r\nexport function getComponents() {\r\n for (const type of Object.keys(components)) {\r\n const CompClass = components[type];\r\n CompClass.prototype.render = (function () {\r\n if (this.materialComponent) {\r\n return this.materialComponent.renderComponents();\r\n }\r\n\r\n const viewContainer = this.parent ? this.parent.viewContainer(this) : this.viewContainer(this);\r\n if (!viewContainer) {\r\n return;\r\n }\r\n const factory = this.options.viewResolver.resolveComponentFactory(CompClass.MaterialComponent);\r\n const componentRef = viewContainer.createComponent(factory);\r\n (componentRef.instance as any).setInstance(this);\r\n });\r\n\r\n const setValue = CompClass.prototype.setValue;\r\n CompClass.prototype.setValue = (function (...args) {\r\n if (this.materialComponent) {\r\n this.materialComponent.setValue(args[0]);\r\n }\r\n return setValue.call(this, ...args);\r\n });\r\n\r\n components[type] = CompClass;\r\n }\r\n\r\n return components;\r\n}\r\n\r\nexport function registerComponent(name: string, CompClass: any) {\r\n\r\n class DummyComponent extends Component {};\r\n const formIOComp = (DummyComponent as any);\r\n\r\n formIOComp.MaterialComponent = CompClass;\r\n formIOComp.prototype.render = (function () {\r\n if (this.materialComponent) {\r\n return this.materialComponent;\r\n }\r\n const viewContainer = this.parent ? this.parent.viewContainer(this) : this.viewContainer(this);\r\n if (!viewContainer) {\r\n return;\r\n }\r\n const factory = this.options.viewResolver.resolveComponentFactory(formIOComp.MaterialComponent);\r\n const componentRef = viewContainer.createComponent(factory);\r\n (componentRef.instance as any).setInstance(this);\r\n });\r\n\r\n const setValue = formIOComp.prototype.setValue;\r\n formIOComp.prototype.setValue = (function (...args) {\r\n if (this.materialComponent) {\r\n this.materialComponent.setValue(args[0]);\r\n }\r\n return setValue.call(this, ...args);\r\n });\r\n\r\n Components.addComponent(name, formIOComp);\r\n\r\n}\r\n","declare var require: any\r\nconst Components = require('formiojs/components/Components').default;\r\nimport './components/Webform';\r\nimport { getComponents, registerComponent } from './components';\r\nconst Formio = require('formiojs/Formio').default;\r\nconst Form = require('formiojs/Form').default;\r\nconst Utils = require('formiojs/utils').default;\r\n\r\nfunction initRenderer() {\r\n Components.setComponents(getComponents());\r\n Formio.Components = Components;\r\n Formio.Templates = {};\r\n}\r\n\r\nexport { Form, Utils, Components, Formio, initRenderer, registerComponent };\r\n","import { Component, ChangeDetectorRef, ViewContainerRef, ViewChild, ComponentFactoryResolver, NgZone, Input, Output } from '@angular/core';\r\nimport { FormioBaseComponent } from '@formio/angular';\r\nimport { Form } from './renderer';\r\nimport { get } from 'lodash';\r\n@Component({\r\n selector: 'mat-formio',\r\n styles: [\r\n `.alert-danger {\r\n color: #721c24;\r\n background-color: #f8d7da;\r\n border-color: #f5c6cb;\r\n }\r\n .alert-success {\r\n color: #155724;\r\n background-color: #d4edda;\r\n border-color: #c3e6cb;\r\n }\r\n .alert {\r\n position: relative;\r\n padding: .75rem 1.25rem;\r\n margin-bottom: 0.5rem;\r\n border: 1px solid transparent;\r\n border-radius: .25rem;\r\n }\r\n ::ng-deep mat-card {\r\n box-sizing: border-box;\r\n -moz-box-sizing: border-box;\r\n }\r\n `\r\n ],\r\n template: `\r\n <mat-spinner *ngIf=\"isLoading\"></mat-spinner>\r\n <div *ngIf=\"!this.options?.disableAlerts\">\r\n <div *ngFor=\"let alert of alerts.alerts\"\r\n class=\"alert alert-{{ alert.type }}\"\r\n role=\"alert\"\r\n >\r\n {{ alert.message }}\r\n </div>\r\n </div>\r\n <div style=\"display:flex; flex-direction:column; gap:1em;\">\r\n <ng-template #formio></ng-template>\r\n </div>\r\n `\r\n})\r\nexport class FormioComponent extends FormioBaseComponent {\r\n @Input() form: any;\r\n @ViewChild('formio', {static: true, read: ViewContainerRef}) formioViewContainer: ViewContainerRef;\r\n constructor(\r\n private resolver: ComponentFactoryResolver,\r\n private cd: ChangeDetectorRef,\r\n public ngZone: NgZone\r\n ) {\r\n super(ngZone, null as any);\r\n }\r\n\r\n getRendererOptions(): any {\r\n const rendererOptions = super.getRendererOptions();\r\n return {...rendererOptions, validateOnInit: get(rendererOptions, 'validateOnInit', true) }\r\n }\r\n\r\n createRenderer() {\r\n const options = this.getRendererOptions();\r\n const flags = {\r\n validateOnInit: options.validateOnInit\r\n };\r\n options.viewResolver = this.resolver;\r\n const form = new Form();\r\n form._form = this.form;\r\n form.options = options;\r\n form.options.events = form.events;\r\n form.instance = form.create(this.form.display);\r\n form.instance.viewContainer = () => this.formioViewContainer;\r\n if (this.submission && this.submission.data) {\r\n form.instance.data = this.submission.data;\r\n }\r\n this.ngZone.run(() => form.instance.setForm(this.form, flags)\r\n .then(() => form.readyResolve(form.instance))\r\n .catch(() => form.readyReject())\r\n );\r\n return form.instance;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS, MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatNativeDateModule } from '@angular/material/core';\r\nimport { NgxRenderMaterialFormsComponent } from './ngx-render-material-forms.component';\r\nimport {MatDialogModule} from '@angular/material/dialog';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { initRenderer } from './renderer';\r\nimport { FormioComponent } from './formio.component';\r\nimport { MaterialComponent } from './components/MaterialComponent';\r\nimport { MaterialNestedComponent } from './components/MaterialNestedComponent';\r\nimport { MaterialButtonComponent } from './components/button/button.component';\r\nimport { MaterialTextfieldComponent } from './components/textfield/textfield.component';\r\nimport { MaterialPasswordComponent } from './components/password/password.component';\r\nimport { MaterialUrlComponent } from './components/url/url.component';\r\nimport { MaterialEmailComponent } from './components/email/email.component';\r\nimport { MaterialPhoneNumberComponent } from './components/phonenumber/phonenumber.component';\r\nimport { MaterialNumberComponent } from './components/number/number.component';\r\nimport { MaterialHiddenComponent } from './components/hidden/hidden.component';\r\nimport { MaterialHtmlComponent } from './components/html/html.component';\r\nimport { MaterialTagsComponent } from './components/tags/tags.component';\r\nimport { MaterialCurrencyComponent } from './components/currency/currency.component';\r\nimport { MaterialDayComponent } from './components/day/day.component';\r\nimport { MaterialTextareaComponent } from './components/textarea/textarea.component';\r\nimport { MaterialColumnsComponent } from './components/columns/columns.component';\r\nimport { MaterialContainerComponent } from './components/container/container.component';\r\nimport { MaterialCheckboxComponent } from './components/checkbox/checkbox.component';\r\nimport { MaterialFieldsetComponent } from './components/fieldset/fieldset.component';\r\nimport { MaterialContentComponent } from './components/content/content.component';\r\nimport { MaterialSignatureComponent } from './components/signature/signature.component';\r\nimport { MaterialSurveyComponent } from './components/survey/survey.component';\r\nimport { MaterialSelectBoxesComponent } from './components/selectboxes/selectboxes.component';\r\nimport { MaterialRadioComponent } from './components/radio/radio.component';\r\nimport { MaterialSelectComponent } from './components/select/select.component';\r\nimport { MaterialPanelComponent } from './components/panel/panel.component';\r\nimport { MaterialTabsComponent } from './components/tabs/tabs.component';\r\nimport { MaterialTableComponent } from './components/table/table.component';\r\nimport { MaterialDateComponent } from './components/date/date.component';\r\nimport { MaterialDataGridComponent } from './components/datagrid/datagrid.component';\r\nimport { MaterialEditGridComponent } from './components/editgrid/editgrid.component';\r\nimport { MaterialWellComponent } from './components/well/well.component';\r\nimport { MaterialWizardComponent } from './components/formio.wizard';\r\nimport { MaterialTimeComponent } from './components/time/time.component';\r\nimport { MaterialCalendarComponent } from './components/calendar/calendar.component';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { FormioFormFieldComponent } from './components/formio-form-field/formio-form-field.component';\r\nimport { LabelComponent } from './components/label/label.component';\r\nimport { MaskDirective } from './directives/mask.directive';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { NgxMatSelectSearchModule } from 'ngx-mat-select-search';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { ConfirmationDialogComponent } from './components/confirmation-dialog/confirmation-dialog.component';\r\nimport { AddOnProductsComponent } from './components/add-on-products/add-on-products.component';\r\n\r\nexport {\r\n FormioComponent,\r\n MaterialButtonComponent,\r\n MaterialTextfieldComponent,\r\n MaterialPasswordComponent,\r\n MaterialUrlComponent,\r\n MaterialEmailComponent,\r\n MaterialPhoneNumberComponent,\r\n MaterialNumberComponent,\r\n MaterialCurrencyComponent,\r\n MaterialDayComponent,\r\n MaterialHiddenComponent,\r\n MaterialHtmlComponent,\r\n MaterialTagsComponent,\r\n MaterialTableComponent,\r\n MaterialTextareaComponent,\r\n MaterialColumnsComponent,\r\n MaterialContainerComponent,\r\n MaterialDataGridComponent,\r\n MaterialEditGridComponent,\r\n MaterialPanelComponent,\r\n MaterialCheckboxComponent,\r\n MaterialFieldsetComponent,\r\n MaterialContentComponent,\r\n MaterialSignatureComponent,\r\n MaterialSurveyComponent,\r\n MaterialSelectBoxesComponent,\r\n MaterialRadioComponent,\r\n MaterialSelectComponent,\r\n MaterialTabsComponent,\r\n MaterialDateComponent,\r\n MaterialWellComponent,\r\n MaterialComponent,\r\n MaterialNestedComponent,\r\n MaterialTimeComponent \r\n};\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n NgxRenderMaterialFormsComponent,\r\n FormioComponent,\r\n MaterialButtonComponent,\r\n MaterialTextfieldComponent,\r\n MaterialPasswordComponent,\r\n MaterialUrlComponent,\r\n MaterialEmailComponent,\r\n MaterialPhoneNumberComponent,\r\n MaterialNumberComponent,\r\n MaterialCurrencyComponent,\r\n MaterialDayComponent,\r\n MaterialHiddenComponent,\r\n MaterialHtmlComponent,\r\n MaterialTagsComponent,\r\n MaterialTextareaComponent,\r\n MaterialColumnsComponent,\r\n MaterialContainerComponent,\r\n MaterialDataGridComponent,\r\n MaterialEditGridComponent,\r\n MaterialPanelComponent,\r\n MaterialCheckboxComponent,\r\n MaterialFieldsetComponent,\r\n MaterialContentComponent,\r\n MaterialSignatureComponent,\r\n MaterialSurveyComponent,\r\n MaterialSelectBoxesComponent,\r\n MaterialRadioComponent,\r\n MaterialSelectComponent,\r\n MaterialTabsComponent,\r\n MaterialTableComponent,\r\n MaterialDateComponent,\r\n MaterialWellComponent,\r\n MaterialWizardComponent,\r\n MaterialComponent,\r\n MaterialNestedComponent,\r\n MaterialTimeComponent,\r\n MaterialCalendarComponent,\r\n FormioFormFieldComponent,\r\n LabelComponent,\r\n MaskDirective,\r\n ConfirmationDialogComponent,\r\n AddOnProductsComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatInputModule,\r\n MatButtonModule,\r\n MatFormFieldModule,\r\n MatCheckboxModule,\r\n MatRadioModule,\r\n MatSelectModule,\r\n MatListModule,\r\n MatChipsModule,\r\n MatExpansionModule,\r\n MatTabsModule,\r\n MatTableModule,\r\n MatNativeDateModule,\r\n MatDatepickerModule,\r\n MatProgressSpinnerModule,\r\n MatTooltipModule,\r\n MatIconModule,\r\n MatStepperModule,\r\n MatCardModule,\r\n DragDropModule,\r\n ScrollingModule,\r\n NgxMatSelectSearchModule,\r\n MatDialogModule,\r\n MatAutocompleteModule\r\n ],\r\n exports: [\r\n MatAutocompleteModule,\r\n NgxRenderMaterialFormsComponent,\r\n FormioComponent,\r\n MatInputModule,\r\n MatFormFieldModule,\r\n MatCheckboxModule,\r\n MatRadioModule,\r\n MatSelectModule,\r\n MatListModule,\r\n MatChipsModule,\r\n MatExpansionModule,\r\n MatButtonModule,\r\n MatCardModule,\r\n MatTabsModule,\r\n MatTableModule,\r\n MatNativeDateModule,\r\n MatDatepickerModule,\r\n MatProgressSpinnerModule,\r\n MatTooltipModule,\r\n MatIconModule,\r\n DragDropModule,\r\n MatStepperModule,\r\n ScrollingModule,\r\n NgxMatSelectSearchModule,\r\n MatDialogModule\r\n ],\r\n providers: [provideHttpClient(withInterceptorsFromDi()),\r\n {\r\n provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,\r\n useValue: { appearance: 'outline' }\r\n }]\r\n})\r\nexport class NgxRenderMaterialFormsModule { \r\n constructor() {\r\n initRenderer();\r\n }\r\n}\r\n\r\nexport * from './renderer';\r\n","/*\r\n * Public API Surface of ngx-render-material-forms\r\n */\r\n\r\nexport * from './lib/ngx-render-material-forms.service';\r\nexport * from './lib/ngx-render-material-forms.component';\r\nexport * from './lib/ngx-render-material-forms.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["FormioComponent","i1","i2","i3","i4","i3.LabelComponent","i5.FormioFormFieldComponent","i6.LabelComponent","i6.FormioFormFieldComponent","i7.LabelComponent","i5","i4.FormioFormFieldComponent","i5.LabelComponent","i4.MaterialTimeComponent","i6","i7.MaterialCalendarComponent","i8.FormioFormFieldComponent","i9.LabelComponent","i10.MaskDirective","i2.CommonService","i7","i8","i10.FormioFormFieldComponent","i11.LabelComponent","i3.CommonService","i9","i12","i9.FormioFormFieldComponent","i10.LabelComponent","Components","Component","get"],"mappings":"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"}