@seniorsistemas/angular-components 18.0.1 → 18.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/badge/lib/badge/badge.component.d.ts +2 -1
- package/badge/lib/badge/badge.module.d.ts +3 -1
- package/dynamic-form/lib/dynamic-form/components/lookup/lookup.component.d.ts +2 -1
- package/esm2022/badge/lib/badge/badge.component.mjs +6 -4
- package/esm2022/badge/lib/badge/badge.module.mjs +6 -4
- package/esm2022/button/lib/button/button.component.mjs +2 -2
- package/esm2022/dynamic-form/lib/dynamic-form/components/lookup/lookup.component.mjs +6 -5
- package/esm2022/dynamic-form/lib/dynamic-form/form-field/fields/autocomplete/autocomplete-field.component.mjs +1 -1
- package/esm2022/dynamic-form/lib/dynamic-form/form-field/fields/lookup/lookup-field.component.mjs +1 -1
- package/esm2022/ia-insight/lib/ia-insight/components/ia-insight-card/ia-insight-card.component.mjs +1 -1
- package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-lookup/inline-edit-lookup.component.mjs +1 -1
- package/esm2022/kanban/lib/kanban/components/kanban-item-dragging/kanban-item-dragging.component.mjs +1 -1
- package/esm2022/label-value/lib/label-value/label-value.component.mjs +1 -1
- package/esm2022/numeric-mask/lib/numeric-mask/numeric-mask.directive.mjs +579 -0
- package/esm2022/numeric-mask/lib/numeric-mask/numeric-mask.module.mjs +16 -0
- package/esm2022/numeric-mask/public-api.mjs +3 -0
- package/esm2022/numeric-mask/seniorsistemas-angular-components-numeric-mask.mjs +5 -0
- package/esm2022/object-card/lib/object-card/elements/field/object-card-field.component.mjs +7 -4
- package/esm2022/object-card/lib/object-card/object-card.module.mjs +5 -4
- package/esm2022/table/lib/table/table-column/table-columns.component.mjs +1 -1
- package/esm2022/tooltip/lib/tooltip/tooltip.directive.mjs +26 -20
- package/fesm2022/seniorsistemas-angular-components-badge.mjs +10 -6
- package/fesm2022/seniorsistemas-angular-components-badge.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-button.mjs +1 -1
- package/fesm2022/seniorsistemas-angular-components-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +6 -5
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-ia-insight.mjs +1 -1
- package/fesm2022/seniorsistemas-angular-components-ia-insight.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs +1 -1
- package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-kanban.mjs +1 -1
- package/fesm2022/seniorsistemas-angular-components-kanban.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-label-value.mjs +1 -1
- package/fesm2022/seniorsistemas-angular-components-label-value.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-numeric-mask.mjs +599 -0
- package/fesm2022/seniorsistemas-angular-components-numeric-mask.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-object-card.mjs +10 -6
- package/fesm2022/seniorsistemas-angular-components-object-card.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-table.mjs +1 -1
- package/fesm2022/seniorsistemas-angular-components-table.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-tooltip.mjs +23 -17
- package/fesm2022/seniorsistemas-angular-components-tooltip.mjs.map +1 -1
- package/numeric-mask/README.md +367 -0
- package/numeric-mask/index.d.ts +5 -0
- package/numeric-mask/lib/numeric-mask/numeric-mask.directive.d.ts +195 -0
- package/numeric-mask/lib/numeric-mask/numeric-mask.module.d.ts +7 -0
- package/numeric-mask/public-api.d.ts +2 -0
- package/object-card/lib/object-card/elements/field/object-card-field.component.d.ts +4 -1
- package/object-card/lib/object-card/object-card.module.d.ts +2 -1
- package/package.json +13 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seniorsistemas-angular-components-dynamic-form.mjs","sources":["../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/field-size.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/bignumber-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/boolean-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/boolean-switch-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/field-type.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/calendar-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/chips-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/number-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/decimal-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/currency-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/lookup-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/password-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/radio-button-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/select-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/slider-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/text-area-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/text-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/autocomplete-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/configurations/dynamic-type.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/configurations/grid-type.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/configurations/grid/grid.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/configurations/grid/row.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/configurations/structure/structure.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/configurations/structure/fieldset.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/configurations/structure/section.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/configurations/dynamic-config.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/configurations/structure-type.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/services/dynamic-form-cache.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/dynamic-form.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/dynamic-form.directive.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/dynamic-form.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/dynamic-form.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/components/field-label/field-label.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/components/field-label/field-label.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/components/grid/row/row.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/components/grid/row/row.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/blob-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/button-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/checkbox-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/country-phone-picker-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/editor-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/profile-picture.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/text-area-ia-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/star-rating-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/form-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/components/lookup/lookup.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/components/lookup/lookup.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/profile-picture/profile-picture-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/profile-picture/profile-picture-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/components/structure/fieldset/fieldset.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/components/structure/fieldset/fieldset.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/components/structure/section/section.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/components/structure/section/section.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/autocomplete/autocomplete-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/autocomplete/autocomplete-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/base-field-component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/bignumber/bignumber-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/bignumber/bignumber-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/boolean/boolean-radio-field/boolean-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/boolean/boolean-radio-field/boolean-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/boolean/boolean-switch-field/boolean-switch-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/boolean/boolean-switch-field/boolean-switch-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/button-field/button-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/button-field/button-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/calendar/calendar-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/calendar/calendar-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/checkbox/checkbox-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/checkbox/checkbox-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/chips/chips-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/chips/chips-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/country-phone-picker/country-phone-picker-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/country-phone-picker/country-phone-picker-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/currency/currency-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/currency/currency-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/editor/editor-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/editor/editor-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/file-upload/file-upload-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/file-upload/file-upload-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/lookup/lookup-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/lookup/lookup-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/number/number-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/number/number-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/password/password-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/password/password-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/radio-button/radio-button-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/radio-button/radio-button-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/select/select-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/select/select-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/slider/slider-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/slider/slider-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/star-rating/star-rating-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/star-rating/star-rating-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/text-area-ia/text-area-ia-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/text-area-ia/text-area-ia-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/text-area/text-area-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/text-area/text-area-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/text/text-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/text/text-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/dynamic-form.module.ts","../../projects/angular-components/dynamic-form/src/seniorsistemas-angular-components-dynamic-form.ts"],"sourcesContent":["export class FieldSize {\n sm?: number;\n md?: number;\n lg?: number;\n xl?: number;\n\n constructor({ sm = 12, md = 6, lg = 6, xl = 6 }: FieldSize) {\n this.sm = sm;\n this.md = md;\n this.lg = lg;\n this.xl = xl;\n }\n}\n","import { TemplateRef } from '@angular/core';\nimport { FieldSize } from '../field-size';\nimport { FieldType } from '../field-type';\nimport { AbstractControl } from '@angular/forms';\nimport { FormField } from '../../form-field';\n\nexport interface FieldConfig {\n defaultValue?: any;\n required?: () => boolean;\n visible?: () => boolean;\n id?: string;\n name: string;\n label: string;\n infoSign?: string;\n tooltip?: string;\n placeholder?: string;\n showClear?: boolean;\n type?: FieldType;\n size?: FieldSize;\n representedBy?: \"radio\" | \"switch\";\n errorMessages?: () => ({}) | {};\n bottomTemplate?: TemplateRef<Element>;\n footer?: {\n help?: {\n text: string;\n visible?: (options: { abstractControl: AbstractControl, formField: FormField }) => boolean;\n };\n link?: {\n label: string;\n onClick: (options: { abstractControl: AbstractControl, formField: FormField }) => void;\n visible?: (options: { abstractControl: AbstractControl, formField: FormField }) => boolean;\n };\n };\n CustomFieldClass?: unknown;\n CustomFieldComponentClass?: unknown;\n displayTimeInfoSign?: number;\n sortableColumnName?: string\n useInfoSignFocusedInputRef?: boolean;\n /**\n * In some cases DynamicFormField use a custom field that alredy exists, this happen in CustomFields when convert 'Integer, Double & Money' types to 'Custom' this create two labels. activate this property hide the parent label.\n */\n ignoreLabel?: boolean;\n}\n\nexport abstract class Field {\n public required?: () => boolean;\n public visible?: () => boolean;\n public id?: string;\n public name: string;\n public label: string;\n public infoSign?: string;\n public tooltip?: string;\n public placeholder?: string;\n public showClear?: boolean;\n public type?: FieldType;\n public size: FieldSize;\n public defaultValue?: any;\n public representedBy?: \"radio\" | \"switch\";\n public errorMessages?: () => ({}) | {};\n public bottomTemplate?: TemplateRef<Element>;\n public CustomFieldClass?: unknown;\n public CustomFieldComponentClass?: unknown;\n public displayTimeInfoSign?: number;\n public sortableColumnName?: string\n public footer?: {\n help?: {\n text: string;\n visible?: (options: { abstractControl: AbstractControl, formField: FormField }) => boolean;\n };\n link?: {\n label: string;\n onClick: (options: { abstractControl: AbstractControl, formField: FormField }) => void;\n visible?: (options: { abstractControl: AbstractControl, formField: FormField }) => boolean;\n };\n };\n public useInfoSignFocusedInputRef: boolean;\n public ignoreLabel?: boolean;\n\n constructor(config: FieldConfig) {\n if (config.footer?.help) {\n config.footer.help = {\n visible: () => true,\n ...config.footer?.help,\n };\n }\n\n if (config.footer?.link) {\n config.footer.link = {\n visible: () => true,\n ...config.footer?.link,\n };\n }\n\n this.required = config.required || (() => false);\n this.visible = config.visible || (() => true);\n this.id = config.id;\n this.name = config.name;\n this.label = config.label;\n this.infoSign = config.infoSign;\n this.tooltip = config.tooltip;\n this.placeholder = config.placeholder || \"\";\n this.showClear = config.showClear || false;\n this.type = config.type;\n this.size = new FieldSize(config.size || {});\n this.errorMessages = config.errorMessages;\n this.bottomTemplate = config.bottomTemplate;\n this.footer = config.footer;\n this.defaultValue = config.defaultValue;\n this.representedBy = config.representedBy;\n this.CustomFieldClass = config.CustomFieldClass;\n this.CustomFieldComponentClass = config.CustomFieldComponentClass;\n this.displayTimeInfoSign = config.displayTimeInfoSign ?? 5000;\n this.ignoreLabel = config.ignoreLabel ?? false;\n this.useInfoSignFocusedInputRef = config.useInfoSignFocusedInputRef ?? true\n }\n\n get gridClass() {\n return Object.keys(this.size).map(key => `ui-${key}-${(this.size as any)[key]}`);\n }\n}\n","import { AlignmentOptions } from '@seniorsistemas/ng2-currency-mask';\nimport { AddonConfig } from '../../addon-config';\nimport { Field, FieldConfig } from './field';\nimport { NumberLocaleOptions } from '@seniorsistemas/angular-components/locale';\n\ntype stringFn = () => string;\n\nexport interface BignumberFieldConfig extends FieldConfig {\n allowNegative: boolean;\n numberLocaleOptions?: NumberLocaleOptions;\n browserAutocomplete?: boolean;\n precision?: Function | number;\n scale?: Function | number;\n mask?: stringFn | string;\n leftAddon?: AddonConfig;\n rightAddon?: AddonConfig;\n onBlur?: (event: Event) => void;\n onFocus?: (event: FocusEvent) => void;\n onComplete?: (event: FocusEvent) => void;\n onInput?: (event: FocusEvent) => void;\n autoClear?: boolean;\n}\n\nexport class BignumberField extends Field {\n public allowNegative: boolean;\n public numberLocaleOptions?: NumberLocaleOptions;\n public browserAutocomplete?: boolean;\n public precision?: Function | number;\n public scale?: Function | number;\n public alignTo: AlignmentOptions;\n public mask?: stringFn | string;\n public leftAddon?: AddonConfig;\n public rightAddon?: AddonConfig;\n public onBlur?: (event: Event) => void;\n public onFocus?: (event: FocusEvent) => void;\n public onComplete?: (event: FocusEvent) => void;\n public onInput?: (event: FocusEvent) => void;\n public autoClear?: boolean;\n\n constructor(config: BignumberFieldConfig) {\n super(config);\n this.allowNegative = config.allowNegative ?? true;\n this.numberLocaleOptions = config.numberLocaleOptions ?? new NumberLocaleOptions();\n this.browserAutocomplete = config.browserAutocomplete;\n this.precision = config.precision;\n this.scale = config.scale ?? 2;\n this.alignTo = this.scale ? AlignmentOptions.RIGHT : AlignmentOptions.LEFT;\n this.mask = config.mask;\n this.leftAddon = config.leftAddon;\n this.rightAddon = config.rightAddon;\n this.onBlur = config.onBlur;\n this.onFocus = config.onFocus;\n this.onComplete = config.onComplete;\n this.onInput = config.onInput;\n this.autoClear = config.autoClear ?? true;\n }\n}\n","import { Field, FieldConfig } from './field';\n\nexport interface BooleanOptionsLabelConfig {\n true: string;\n false: string;\n empty?: string;\n clear?: string;\n}\n\nexport class BooleanOptionsLabel {\n public true: string;\n public false: string;\n public empty?: string;\n public clear?: string;\n\n constructor(config: BooleanOptionsLabelConfig) {\n this.true = config.true;\n this.false = config.false;\n this.empty = config.empty;\n this.clear = config.clear;\n }\n}\n\nexport interface BooleanFieldConfig extends FieldConfig {\n verticalAlignment?: boolean;\n optionsLabel: BooleanOptionsLabel;\n onBlur?: (event: Event) => void;\n onFocus?: (event: Event) => void;\n onClick?: (event: any) => void;\n}\n\nexport class BooleanField extends Field {\n public verticalAlignment?: boolean;\n public optionsLabel: BooleanOptionsLabel;\n public onBlur?: (event: Event) => void;\n public onFocus?: (event: Event) => void;\n public onClick?: (event: any) => void;\n\n constructor(config: BooleanFieldConfig) {\n super(config);\n this.verticalAlignment = config.verticalAlignment;\n this.optionsLabel = new BooleanOptionsLabel(config.optionsLabel);\n this.representedBy = 'radio';\n this.onBlur = config.onBlur;\n this.onFocus = config.onFocus;\n this.onClick = config.onClick;\n }\n}\n","import { BooleanOptionsLabel } from './boolean-field';\nimport { Field, FieldConfig } from './field';\n\nexport interface BooleanSwitchFieldConfig extends FieldConfig {\n onChange?: (event: any) => void;\n optionsLabel?: BooleanOptionsLabel;\n}\n\nexport class BooleanSwitchField extends Field {\n public onChange?: (event: any) => void;\n public optionsLabel?: BooleanOptionsLabel;\n constructor(config: BooleanSwitchFieldConfig) {\n super(config);\n this.onChange = config.onChange;\n if (config.optionsLabel) {\n this.optionsLabel = new BooleanOptionsLabel(config.optionsLabel);\n }\n this.representedBy = 'switch';\n }\n}\n","export enum FieldType {\n Autocomplete = \"Autocomplete\",\n Binary = \"Binary\",\n Blob = \"Blob\",\n Boolean = \"Boolean\",\n BooleanSwitch = \"BooleanSwitch\",\n Checkbox = \"Checkbox\",\n Chips = \"Chips\",\n CodeEditor = \"CodeEditor\",\n CountryPhonePicker = \"CountryPhonePicker\",\n Custom = \"Custom\",\n Date = \"Date\",\n DateTime = \"DateTime\",\n Double = \"Double\",\n Editor = \"Editor\",\n Enum = \"Enum\",\n Integer = \"Integer\",\n LocalDateTime = \"LocalDateTime\",\n Lookup = \"Lookup\",\n Money = \"Money\",\n Number = \"Number\",\n Password = \"Password\",\n Radio = \"Radio\",\n Slider = \"Slider\",\n String = \"String\",\n Text = \"Text\",\n TextIA = \"TextIA\",\n Time = \"Time\",\n ProfilePicture = \"ProfilePicture\",\n Button = \"Button\",\n StarRating = \"StarRating\"\n}\n","import { CalendarLocaleOptions } from '@seniorsistemas/angular-components/locale';\nimport { FieldType } from '../field-type';\nimport { Field, FieldConfig } from './field';\n\nexport interface CalendarFieldConfig extends FieldConfig {\n view?: 'date' | 'month' | 'year';\n minDate?: Date;\n maxDate?: Date;\n defaultDate?: Date;\n appendTo?: string;\n showOnFocus?: boolean;\n calendarLocaleOptions?: CalendarLocaleOptions;\n onBlur?: (event: Event) => void;\n onFocus?: (event: Event) => void;\n onSelect?: (event: any) => void;\n onInput?: (event: any) => void;\n onClose?: (event: any) => void;\n onTodayClick?: (event: any) => void;\n onClearClick?: (event: any) => void;\n onMonthChange?: (event: any) => void;\n onYearChange?: (event: any) => void;\n selectionMode?: 'single' | 'multiple';\n rangeSeparator?: string;\n showSeconds?: boolean;\n}\n\nexport class CalendarField extends Field implements CalendarFieldConfig {\n public view?: 'date' | 'month' | 'year';\n public appendTo?: string;\n public minDate?: Date;\n public maxDate?: Date;\n public defaultDate?: Date;\n public calendarLocaleOptions?: CalendarLocaleOptions;\n public showOnFocus?: boolean;\n public onBlur?: (event: Event) => void;\n public onFocus?: (event: Event) => void;\n public onSelect?: (event: any) => void;\n public onInput?: (event: any) => void;\n public onClose?: (event: any) => void;\n public onTodayClick?: (event: any) => void;\n public onClearClick?: (event: any) => void;\n public onMonthChange?: (event: any) => void;\n public onYearChange?: (event: any) => void;\n public selectionMode?: 'single' | 'multiple';\n public rangeSeparator?: string;\n public showSeconds?: boolean;\n\n constructor(config: CalendarFieldConfig) {\n super(config);\n this.view = config.view || 'date';\n this.minDate = config.minDate;\n this.maxDate = config.maxDate;\n this.defaultDate = config.defaultDate;\n this.appendTo = config.appendTo;\n this.showOnFocus = typeof config.showOnFocus === 'boolean' ? config.showOnFocus : true;\n this.calendarLocaleOptions = config.calendarLocaleOptions;\n this.onBlur = config.onBlur;\n this.onFocus = config.onFocus;\n this.onSelect = config.onSelect;\n this.onInput = config.onInput;\n this.onClose = config.onClose;\n this.onTodayClick = config.onTodayClick;\n this.onClearClick = config.onClearClick;\n this.onMonthChange = config.onMonthChange;\n this.onYearChange = config.onYearChange;\n this.selectionMode = config.selectionMode || 'single';\n this.rangeSeparator = config.rangeSeparator || '-';\n this.showSeconds = config.showSeconds;\n\n // Tornando true o padrão para showSeconds.\n if (this.showSeconds === null || this.showSeconds === undefined) {\n switch (this.type) {\n case FieldType.DateTime:\n case FieldType.LocalDateTime:\n case FieldType.Time:\n this.showSeconds = true;\n break;\n }\n }\n }\n}\n","import { Field, FieldConfig } from './field';\n\nexport interface ChipsFieldConfig extends FieldConfig {\n keyFilter?: RegExp;\n separator?: string;\n showCopyButton?: boolean;\n onAdd?: (event: any) => void;\n onRemove?: (event: any) => void;\n onChipClick?: (event: any) => void;\n onFocus?: (event: any) => void;\n onBlur?: (event: any) => void;\n onCopy?: (content: string) => void;\n}\n\nexport class ChipsField extends Field implements ChipsFieldConfig {\n public keyFilter?: RegExp;\n public showCopyButton = false;\n public separator?: string;\n public onAdd?: (event: any) => void;\n public onRemove?: (event: any) => void;\n public onChipClick?: (event: any) => void;\n public onFocus?: (event: any) => void;\n public onBlur?: (event: any) => void;\n public onCopy?: (content: string) => void;\n\n constructor(config: ChipsFieldConfig) {\n super(config);\n this.keyFilter = config.keyFilter;\n this.showCopyButton = config.showCopyButton || false;\n this.separator = config.separator;\n this.onAdd = config.onAdd;\n this.onRemove = config.onRemove;\n this.onChipClick = config.onChipClick;\n this.onFocus = config.onFocus;\n this.onBlur = config.onBlur;\n this.onCopy = config.onCopy;\n }\n}\n","import { NumberLocaleOptions } from '@seniorsistemas/angular-components/locale';\nimport { AddonConfig } from '../../addon-config';\nimport { Field, FieldConfig } from './field';\nimport { NumberAlignmentOption } from '@seniorsistemas/angular-components/number-input';\n\ntype stringFn = () => string | string;\n\n/**\n * @deprecated Should use BignumberFieldConfig instead\n */\nexport interface NumberFieldConfig extends FieldConfig {\n /**\n * @deprecated `numberLocaleOptions` should not be used. It is not needed anymore and should be removed if possible.\n */\n numberLocaleOptions?: NumberLocaleOptions;\n browserAutocomplete?: boolean;\n precision?: Function | number;\n scale?: (() => number) | number;\n alignTo?: NumberAlignmentOption;\n mask?: stringFn | string;\n leftAddon?: AddonConfig;\n rightAddon?: AddonConfig;\n onBlur?: (event: Event) => void;\n onFocus?: (event: Event) => void;\n onComplete?: (event: FocusEvent) => void;\n onInput?: (event: Event) => void;\n}\n\n/**\n * @deprecated Should use BignumberField instead\n */\nexport class NumberField extends Field {\n /**\n * @deprecated `numberLocaleOptions` should not be used. It is not needed anymore and should be removed if possible.\n */\n public numberLocaleOptions?: NumberLocaleOptions;\n\n public browserAutocomplete?: boolean;\n public precision?: Function | number;\n public scale?: (() => number) | number;\n public alignTo: NumberAlignmentOption;\n public mask?: stringFn | string;\n public leftAddon?: AddonConfig;\n public rightAddon?: AddonConfig;\n public onBlur?: (event: Event) => void;\n public onFocus?: (event: Event) => void;\n public onComplete?: (event: FocusEvent) => void;\n public onInput?: (event: Event) => void;\n\n constructor(config: NumberFieldConfig) {\n super(config);\n this.numberLocaleOptions = config.numberLocaleOptions;\n this.browserAutocomplete = config.browserAutocomplete;\n this.precision = config.precision;\n this.scale = config.scale;\n this.alignTo = config.alignTo || NumberAlignmentOption.LEFT;\n this.mask = config.mask;\n this.leftAddon = config.leftAddon;\n this.rightAddon = config.rightAddon;\n this.onBlur = config.onBlur;\n this.onFocus = config.onFocus;\n this.onComplete = config.onComplete;\n this.onInput = config.onInput;\n }\n}\n","import { NumberLocaleOptions } from '@seniorsistemas/angular-components/locale';\nimport { NumberField, NumberFieldConfig } from './number-field';\nimport { NumberAlignmentOption } from '@seniorsistemas/angular-components/number-input';\n\n/**\n * @deprecated Should use BignumberField instead\n */\nexport interface DecimalFieldConfig extends NumberFieldConfig {\n scale?: (() => number) | number;\n}\n\n/**\n * @deprecated Should use BignumberField instead\n */\nexport class DecimalField extends NumberField implements DecimalFieldConfig {\n public override scale?: (() => number) | number;\n\n constructor(config: DecimalFieldConfig) {\n super(config);\n this.numberLocaleOptions = config.numberLocaleOptions ?? new NumberLocaleOptions();\n this.alignTo = config.alignTo || NumberAlignmentOption.RIGHT;\n this.scale = typeof config.scale === \"function\" ? config.scale() : config.scale;\n }\n}\n","import { NumberLocaleOptions } from '@seniorsistemas/angular-components/locale';\nimport { DecimalField, DecimalFieldConfig } from './decimal-field';\nimport { Currency } from '@seniorsistemas/angular-components/currency';\n\n\n/**\n * @deprecated Should use BignumberField instead\n */\nexport class CurrencyField extends DecimalField {\n currency?: () => Currency;\n\n constructor(config: DecimalFieldConfig) {\n super(config);\n this.currency = (config as any)['currency'];\n this.numberLocaleOptions = config.numberLocaleOptions ?? new NumberLocaleOptions();\n }\n}\n","import { Observable, of } from 'rxjs';\nimport { delay } from 'rxjs/operators';\n\nimport { FieldType } from '../field-type';\nimport { Field, FieldConfig } from './field';\n\nexport interface LookupFieldConfig extends FieldConfig {\n multiple?: boolean;\n showSearch?: boolean;\n searchFields: any[];\n searchGridFields: any[];\n lookupSuggestions: any[];\n suggestionsObservable: Observable<any[]>;\n searchObservable: Observable<{ gridData: any[]; totalRecords: number; searchTotalRecordsLabel?: string }>;\n dataKey: string;\n lookupDisplayField: string;\n searchTitle: string;\n searchEmptyTitle: string;\n filterLabel: string;\n filterTitle?: string;\n clearLabel: string;\n cancelLabel: string;\n selectLabel: string;\n emptyMessage: string;\n recordLabel: string;\n recordsLabel: string;\n emptyFieldLabel: string;\n appendTo?: string;\n autocompleteForceSelection?: boolean;\n showAddOption: boolean;\n showEditOption: boolean;\n showRemoveOption: boolean;\n onLookupRequest: (query: string) => void;\n onSearchRequest: (event: any) => void;\n onSelect?: (event: any) => void;\n onUnselect?: (event: any) => void;\n onClear?: (event: any) => void;\n onBlur?: (event: FocusEvent) => void;\n onAdd?: () => void;\n onEdit?: (selectedItem: unknown) => void;\n onRemove?: (selectedItems: unknown[]) => void;\n onClearButtonClick?: () => void;\n}\n\nexport class LookupField extends Field implements LookupFieldConfig {\n public multiple = false;\n public showSearch = true;\n public searchFields: any[] = [];\n public searchGridFields: any[] = [];\n public lookupSuggestions: any[] = [];\n public suggestionsObservable: Observable<any[]> = of([]);\n public searchObservable: Observable<{ gridData: any[]; totalRecords: number; searchTotalRecordsLabel?: string }> =\n of({ gridData: [], totalRecords: 0 });\n public dataKey: string = '';\n public lookupDisplayField: string = '';\n public searchTitle = '';\n public searchEmptyTitle = '';\n public filterLabel = '';\n public filterTitle = '';\n public clearLabel = '';\n public cancelLabel = '';\n public selectLabel = '';\n public recordLabel = '';\n public recordsLabel = '';\n public emptyFieldLabel = '';\n public emptyMessage = '';\n public appendTo?: string;\n public autocompleteForceSelection = true;\n public showAddOption = false;\n public showEditOption = false;\n public showRemoveOption = false;\n public defaultFilter: DefaultFilter[] = [];\n public sortableColumnsDisabled: string[] = [];\n public onLookupRequest: (query: string) => void = () => {};\n public onSearchRequest: (event: any) => void = () => {};\n public onClear?: (event: any) => void;\n public onBlur?: (event: FocusEvent) => void;\n public onAdd?: () => void;\n public onEdit?: (selectedItem: unknown) => void;\n public onRemove?: (selectedItems: unknown[]) => void;\n public onClearButtonClick?: () => void;\n\n private _gridData: any[] = [];\n private _searchTotalRecords: number = 0;\n private _searchTotalRecordsLabel: string = '';\n\n constructor(config: LookupFieldConfig) {\n super({ ...config, type: FieldType.Lookup } as LookupFieldConfig);\n Object.assign(this, config);\n\n this.suggestionsObservable.subscribe((suggestions) => (this.lookupSuggestions = suggestions));\n this.searchObservable.pipe(delay(0)).subscribe(({ totalRecords, gridData, searchTotalRecordsLabel }) => {\n this._gridData = gridData;\n this._searchTotalRecords = totalRecords;\n this._searchTotalRecordsLabel = searchTotalRecordsLabel as string;\n });\n }\n\n public get gridData() {\n return this._gridData;\n }\n\n public get searchTotalRecords() {\n return this._searchTotalRecords;\n }\n\n public get searchTotalRecordsLabel() {\n return this._searchTotalRecordsLabel;\n }\n\n public onSelect = (event: any) => {};\n public onUnselect = (event: any) => {};\n}\n\nexport type DefaultFilter = {\n field: string;\n value: string | (() => string);\n};\n","import { PasswordStrengths } from '@seniorsistemas/angular-components/password-strength';\nimport { AddonConfig } from '../../addon-config';\nimport { Field, FieldConfig } from './field';\n\nexport interface PasswordFieldConfig extends FieldConfig {\n inputType?: string;\n keyFilter?: any;\n leftAddon?: AddonConfig;\n rightAddon?: AddonConfig;\n maxLength?: string | number;\n passwordStrength: boolean;\n passwordStrengthOptions?: PasswordStrengthOptions;\n showToggle: boolean;\n style?: { [klass: string]: any };\n onBlur?: (event: FocusEvent) => void;\n onFocus?: (event: FocusEvent) => void;\n onComplete?: (event: FocusEvent) => void;\n onInput?: (event: FocusEvent) => void;\n}\n\nexport class PasswordField extends Field {\n public inputType?: string;\n public keyFilter?: any;\n public leftAddon?: AddonConfig;\n public rightAddon?: AddonConfig;\n public maxLength?: string | number;\n public passwordStrength: boolean;\n public passwordStrengthOptions?: PasswordStrengthOptions;\n public showToggle: boolean;\n public style?: { [klass: string]: any };\n public onBlur?: (event: FocusEvent) => void;\n public onFocus?: (event: FocusEvent) => void;\n public onComplete?: (event: any) => void;\n public onInput?: (event: any) => void;\n\n constructor(config: PasswordFieldConfig) {\n super(config);\n this.inputType = config.inputType;\n this.keyFilter = config.keyFilter;\n this.leftAddon = config.leftAddon;\n this.rightAddon = config.rightAddon;\n this.maxLength = config.maxLength || 9999999;\n this.passwordStrength = config.passwordStrength || false;\n this.passwordStrengthOptions = config.passwordStrengthOptions;\n this.showToggle = config.showToggle;\n this.style = config.style;\n this.onBlur = config.onBlur;\n this.onFocus = config.onFocus;\n this.onComplete = config.onComplete;\n this.onInput = config.onInput;\n }\n}\n\nexport interface PasswordStrengthOptions {\n description: string;\n weakTitle?: string;\n mediumTitle?: string;\n strongTitle?: string;\n validation?: (content: string) => PasswordStrengths;\n}\n","import { Field, FieldConfig } from './field';\n\nexport class RationButtonOption {\n label: string;\n value?: any;\n\n constructor(config: RationButtonOption) {\n this.label = config.label;\n this.value = config.value;\n }\n}\n\nexport interface RadioButtonFieldConfig extends FieldConfig {\n verticalAlignment?: boolean;\n clearLabel?: string;\n options: RationButtonOption[];\n onBlur?: (event: Event) => void;\n onFocus?: (event: FocusEvent) => void;\n onClick?: (event: any) => void;\n}\n\nexport class RadioButtonField extends Field {\n public verticalAlignment?: boolean;\n public clearLabel?: string;\n public options: RationButtonOption[];\n public onBlur?: (event: Event) => void;\n public onFocus?: (event: FocusEvent) => void;\n public onClick?: (event: any) => void;\n\n constructor(config: RadioButtonFieldConfig) {\n super(config);\n this.verticalAlignment = config.verticalAlignment;\n this.clearLabel = config.clearLabel;\n this.options = config.options;\n this.onBlur = config.onBlur;\n this.onFocus = config.onFocus;\n this.onClick = config.onClick;\n }\n}\n","import { Field, FieldConfig } from './field';\n\ntype selectOptionFn = () => SelectOption[];\nexport interface SelectFieldConfig extends FieldConfig {\n appendTo?: string;\n optionLabel?: string;\n optionValue?: string;\n dataKey?: string;\n autoDisplayFirst?: boolean;\n options: selectOptionFn | any[];\n multiple?: boolean;\n multipleSelectedLabel?: string;\n onClick?: (event: any) => void;\n onChange?: (event: any) => void;\n emptyMessage?: string;\n editable?: boolean;\n filter?: boolean;\n group?: boolean;\n}\n\nexport class SelectField extends Field implements SelectFieldConfig {\n public appendTo?: string;\n public optionLabel?: string;\n public optionValue?: string;\n public dataKey?: string;\n public autoDisplayFirst?: boolean;\n public options: selectOptionFn | any[];\n public multiple?: boolean;\n public multipleSelectedLabel?: string;\n public onClick?: (event: any) => void;\n public onChange?: (event: any) => void;\n public emptyMessage?: string;\n public editable?: boolean;\n public filter?: boolean;\n public group?: boolean;\n\n constructor(config: SelectFieldConfig) {\n super(config);\n this.appendTo = config.appendTo;\n this.dataKey = config.dataKey;\n this.optionLabel = config.optionLabel;\n this.optionValue = config.optionValue;\n this.autoDisplayFirst = config.autoDisplayFirst;\n this.options = config.options;\n this.multiple = config.multiple;\n this.multipleSelectedLabel = config.multipleSelectedLabel;\n this.onClick = config.onClick;\n this.onChange = config.onChange;\n this.emptyMessage = config.emptyMessage;\n this.editable = config.editable;\n this.filter = config.filter;\n this.group = config.group;\n }\n}\n\nexport class SelectOption {\n label: string;\n value?: any;\n\n constructor(config: SelectOption) {\n this.label = config.label;\n this.value = config.value;\n }\n}\n","import { Field, FieldConfig } from './field';\n\nexport interface SliderFieldConfig extends FieldConfig {\n onChange?: (event: any) => void;\n onSlideEnd?: (event: any) => void;\n range?: boolean;\n min?: number;\n max?: number;\n step?: number;\n /**\n * this property exist on primeng slider, currently not exist in s-slider, when it will be added, this property will be used\n */\n orientation: 'horizontal' | 'vertical';\n disabled?: boolean;\n prefix: string;\n suffix: string;\n rangeSeparator: string;\n}\n\nexport class SliderField extends Field implements SliderFieldConfig {\n public onChange?: (event: any) => void;\n public onSlideEnd?: (event: any) => void;\n public range?: boolean;\n public min: number;\n public max: number;\n public step: number;\n public orientation: 'horizontal' | 'vertical';\n public disabled: boolean;\n public prefix: string;\n public suffix: string;\n public rangeSeparator: string;\n\n private readonly _maxDefault = 100;\n\n constructor(config: SliderFieldConfig) {\n super(config);\n this.onChange = config.onChange;\n this.onSlideEnd = config.onSlideEnd;\n this.range = config.range ?? false;\n this.min = config.min ?? 0;\n this.max = config.max ?? this._maxDefault;\n this.orientation = config.orientation ?? 'horizontal';\n this.step = config.step ?? 1;\n this.disabled = config.disabled ?? false;\n this.prefix = config.prefix;\n this.suffix = config.suffix;\n this.rangeSeparator = config.rangeSeparator ?? ' - ';\n }\n}\n","import { Field, FieldConfig } from \"./field\";\n\nexport interface TextAreaFieldConfig extends FieldConfig {\n cols?: number;\n rows?: number;\n keyFilter?: any;\n style?: Partial<CSSStyleDeclaration>;\n readonly?: () => boolean;\n speechRecognition?: boolean\n keepContext: boolean\n speechRecognitionPlaceholder: string\n maxLength?: number;\n}\n\nexport class TextAreaField extends Field {\n public cols?: number;\n public rows?: number;\n public keyFilter?: any;\n public style?: Partial<CSSStyleDeclaration> = {\n resize: 'vertical'\n };\n public readonly?: () => boolean;\n public speechRecognition: boolean\n public keepContext: boolean\n public speechRecognitionPlaceholder: string\n public maxLength: number | null;\n\n constructor(config: TextAreaFieldConfig) {\n super(config);\n this.cols = config.cols;\n this.rows = config.rows;\n this.keyFilter = config.keyFilter;\n this.style = {\n ...config.style,\n ...this.style,\n };\n this.readonly = config.readonly;\n this.speechRecognition = config.speechRecognition ?? false\n this.keepContext = config.keepContext ?? false\n this.speechRecognitionPlaceholder = config.speechRecognitionPlaceholder ?? '';\n this.maxLength = config.maxLength ?? null;\n }\n}\n","import { AddonConfig } from '../../addon-config';\nimport { Field, FieldConfig } from './field';\n\nexport interface TextFieldConfig extends FieldConfig {\n mask?: () => string | any;\n readonly?: () => boolean\n characterPattern?: (() => string) | string;\n unmask?: (() => boolean) | boolean;\n inputType?: string;\n keyFilter?: any;\n leftAddon?: AddonConfig;\n rightAddon?: AddonConfig;\n maxLength?: string | number;\n browserAutocomplete?: boolean;\n style?: { [klass: string]: any };\n onBlur?: (event: Event) => void;\n onFocus?: (event: FocusEvent) => void;\n onComplete?: (event: FocusEvent) => void;\n onInput?: (event: FocusEvent) => void;\n}\n\nexport class TextField extends Field {\n public mask?: () => string | any;\n public characterPattern?: (() => string) | string;\n public unmask?: (() => boolean) | boolean;\n public readonly?: () => boolean;\n public inputType?: string;\n public keyFilter?: any;\n public leftAddon?: AddonConfig;\n public rightAddon?: AddonConfig;\n public maxLength?: string | number;\n public browserAutocomplete?: boolean;\n public style?: { [klass: string]: any };\n public onBlur?: (event: Event) => void;\n public onFocus?: (event: FocusEvent) => void;\n public onComplete?: (event: any) => void;\n public onInput?: (event: any) => void;\n\n constructor(config: TextFieldConfig) {\n super(config);\n this.mask = config.mask;\n this.characterPattern = config.characterPattern ?? \"[A-Za-z]\";\n this.unmask = config.unmask ?? false;\n this.readonly = config.readonly;\n this.inputType = config.inputType;\n this.keyFilter = config.keyFilter;\n this.leftAddon = config.leftAddon;\n this.rightAddon = config.rightAddon;\n this.maxLength = config.maxLength || 9999999;\n this.browserAutocomplete = config.browserAutocomplete;\n this.style = config.style;\n this.onBlur = config.onBlur;\n this.onFocus = config.onFocus;\n this.onComplete = config.onComplete;\n this.onInput = config.onInput;\n this.sortableColumnName = config.sortableColumnName;\n }\n}\n","import { Observable } from 'rxjs';\nimport { FieldType } from '../field-type';\nimport { Field, FieldConfig } from './field';\n\nexport interface AutocompleteFieldConfig extends FieldConfig {\n dataKey?: string;\n displayField?: string;\n multiple?: boolean;\n appendTo?: string;\n emptyMessage?: string;\n suggestionsObservable?: Observable<any>;\n onSelect?: (event: any) => void;\n onUnselect?: (event: any) => void;\n onClear?: (event: any) => void;\n onSearch?: (value: string) => void;\n onBlur?: (event: FocusEvent) => void;\n}\n\nexport class AutocompleteField extends Field implements AutocompleteFieldConfig {\n public dataKey?: string;\n public displayField?: string;\n public multiple?: boolean;\n public appendTo?: string;\n public emptyMessage?: string;\n public suggestionsObservable?: Observable<any>;\n public suggestions: any[] = [];\n\n public onSelect?: (event: any) => void;\n public onUnselect?: (event: any) => void;\n public onClear?: (event: any) => void;\n public onSearch?: (value: string) => void;\n public onBlur?: (event: FocusEvent) => void;\n\n constructor(config: AutocompleteFieldConfig) {\n super({ ...config, type: FieldType.Autocomplete } as AutocompleteFieldConfig);\n Object.assign(this, config);\n if (this.suggestionsObservable) {\n this.suggestionsObservable.subscribe(suggestions => (this.suggestions = suggestions));\n }\n }\n}\n","export enum DynamicType {\n Autocomplete = 'Autocomplete',\n Binary = 'Binary',\n Boolean = 'Boolean',\n Chips = 'Chips',\n Date = 'Date',\n DateTime = 'DateTime',\n LocalDateTime = 'LocalDateTime',\n Double = 'Double',\n Enum = 'Enum',\n Fieldset = 'Fieldset',\n Integer = 'Integer',\n Lookup = 'Lookup',\n Money = 'Money',\n Radio = 'Radio',\n Row = 'Row',\n Section = 'Section',\n String = 'String',\n Text = 'Text',\n Time = 'Time',\n Number = 'Number',\n Password = 'Password',\n Slider = 'Slider',\n}\n","export enum GridType {\n Row = 'Row',\n}\n","import { isNullOrUndefined } from \"@seniorsistemas/angular-components/utils\";\nimport { FormField } from \"../../form-field/form-field\";\nimport { GridType } from \"../grid-type\";\nimport { Section } from \"../structure/section\";\n\nexport interface GridConfig {\n fields?: Array<FormField | Section>;\n type: GridType;\n visible?: () => boolean;\n}\n\nexport class Grid implements GridConfig {\n public fields: Array<FormField | Section> = [];\n public type: GridType = GridType.Row;\n public visible?: () => boolean;\n\n constructor(config: GridConfig) {\n Object.assign(this, { ...config });\n if (isNullOrUndefined(config.visible)) {\n this.visible = () => true;\n }\n }\n}\n","import { FormField } from '../../form-field/form-field';\nimport { GridType } from '../grid-type';\nimport { Grid, GridConfig } from './grid';\n\nexport class Row extends Grid {\n public override fields: FormField[] = [];\n public override type: GridType = GridType.Row;\n\n constructor(config: GridConfig) {\n super(config);\n }\n}\n","import { FormField } from '../../form-field/form-field';\nimport { Grid } from '../grid/grid';\nimport { StructureType } from '../structure-type';\n\nexport interface StructureConfig {\n header?: string;\n configs?: Grid[];\n type?: StructureType;\n}\n\nexport abstract class Structure {\n public header?: string = '';\n public configs?: Grid[] | FormField[];\n public type?: StructureType;\n\n constructor(config: StructureConfig) {\n Object.assign(this, { ...config });\n }\n}\n","import { Structure, StructureConfig } from './structure';\n\nexport interface FieldsetConfig extends StructureConfig {\n beforeToggle?: (event: any) => void;\n afterToggle?: (event: any) => void;\n}\n\nexport class Fieldset extends Structure {\n public beforeToggle?: (event: any) => void;\n public afterToggle?: (event: any) => void;\n\n constructor(config: FieldsetConfig) {\n super(config);\n Object.assign(this, { ...config });\n }\n}\n","import { FieldSize } from '../../form-field/configurations/field-size';\nimport { Structure, StructureConfig } from './structure';\n\nexport class Section extends Structure {\n /**\n * Define if the structure is a flex container.\n */\n public isFlex? = false;\n /**\n * Define the justify-content property.\n */\n public justifyContent?: 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly' =\n 'flex-start';\n /**\n * Define the align-items property.\n */\n public alignItems?: 'stretch' | 'flex-start' | 'flex-end' | 'center' | 'baseline' | 'initial' | 'inherit' =\n 'flex-start';\n\n public visible?: () => boolean = () => true;\n\n public size?: FieldSize;\n protected gridClass?: string[];\n constructor(config: Section) {\n super(config as StructureConfig);\n this.isFlex = config.isFlex || false;\n this.justifyContent = config.justifyContent || 'flex-start';\n this.alignItems = config.alignItems || 'flex-start';\n\n if (config.visible) {\n this.visible = config.visible;\n }\n\n this.size = new FieldSize(config.size || {});\n this.gridClass = Object.keys(this.size).map((key) => `ui-${key}-${(this.size as any)[key]}`);\n }\n}\n\n","import { AutocompleteFieldConfig } from '../form-field/configurations/fields/autocomplete-field';\nimport { BignumberField, BignumberFieldConfig } from '../form-field/configurations/fields/bignumber-field';\nimport { BooleanField, BooleanFieldConfig } from '../form-field/configurations/fields/boolean-field';\nimport { BooleanSwitchField, BooleanSwitchFieldConfig } from '../form-field/configurations/fields/boolean-switch-field';\nimport { CalendarField, CalendarFieldConfig } from '../form-field/configurations/fields/calendar-field';\nimport { ChipsField, ChipsFieldConfig } from '../form-field/configurations/fields/chips-field';\nimport { CurrencyField } from '../form-field/configurations/fields/currency-field';\nimport { DecimalField, DecimalFieldConfig } from '../form-field/configurations/fields/decimal-field';\nimport { LookupField, LookupFieldConfig } from '../form-field/configurations/fields/lookup-field';\nimport { NumberField, NumberFieldConfig } from '../form-field/configurations/fields/number-field';\nimport { PasswordField, PasswordFieldConfig } from '../form-field/configurations/fields/password-field';\nimport { RadioButtonField } from '../form-field/configurations/fields/radio-button-field';\nimport { SelectField, SelectFieldConfig } from '../form-field/configurations/fields/select-field';\nimport { SliderField, SliderFieldConfig } from '../form-field/configurations/fields/slider-field';\nimport { TextAreaField, TextAreaFieldConfig } from '../form-field/configurations/fields/text-area-field';\nimport { TextField, TextFieldConfig } from '../form-field/configurations/fields/text-field';\nimport { AutocompleteField } from '../form-field/configurations/fields/autocomplete-field';\n\nimport { DynamicType } from './dynamic-type';\nimport { Row } from './grid/row';\nimport { Fieldset, FieldsetConfig } from './structure/fieldset';\nimport { Section } from './structure/section';\n\nexport class DynamicConfig {\n constructor(config: any) {\n const { type, representedBy } = config;\n switch (type) {\n case DynamicType.Autocomplete:\n return new AutocompleteField(config as AutocompleteFieldConfig);\n case DynamicType.Binary:\n case DynamicType.String:\n return new TextField(config as TextFieldConfig);\n case DynamicType.Password:\n return new PasswordField(config as PasswordFieldConfig);\n case DynamicType.Boolean:\n if (representedBy === 'switch') {\n return new BooleanSwitchField(config as BooleanSwitchFieldConfig);\n }\n return new BooleanField(config as BooleanFieldConfig);\n case DynamicType.Chips:\n return new ChipsField(config as ChipsFieldConfig);\n case DynamicType.Date:\n case DynamicType.DateTime:\n case DynamicType.LocalDateTime:\n case DynamicType.Time:\n return new CalendarField(config as CalendarFieldConfig);\n case DynamicType.Double:\n return new DecimalField(config as DecimalFieldConfig);\n case DynamicType.Enum:\n return new SelectField(config as SelectFieldConfig);\n case DynamicType.Fieldset:\n return new Fieldset(config as FieldsetConfig);\n case DynamicType.Integer:\n return new NumberField(config as NumberFieldConfig);\n case DynamicType.Number:\n return new BignumberField(config as BignumberFieldConfig);\n case DynamicType.Lookup:\n return new LookupField(config as LookupFieldConfig);\n case DynamicType.Money:\n return new CurrencyField(config as DecimalFieldConfig);\n case DynamicType.Radio:\n return new RadioButtonField(config);\n case DynamicType.Row:\n return new Row(config);\n case DynamicType.Section:\n return new Section(config as Section);\n case DynamicType.Slider:\n return new SliderField(config as SliderFieldConfig);\n case DynamicType.Text:\n return new TextAreaField(config as TextAreaFieldConfig);\n }\n }\n}\n\n","export enum StructureType {\n Fieldset = 'Fieldset',\n Section = 'Section',\n}\n","import { Injectable } from '@angular/core';\nimport { GridType } from '../configurations/grid-type';\nimport { FieldType } from '../form-field/configurations/field-type';\nimport { StructureType } from '../configurations/structure-type';\n\n@Injectable({ providedIn: 'root' })\nexport class DynamicFormCacheService {\n LOADED_ALL_CACHE = false;\n private readonly CACHED_COMPONENTS: Map<GridType | FieldType | StructureType, any> = new Map();\n async setCache() {\n const setAutoComplete = async () => {\n const { AutocompleteFieldComponent } = await import(\n '../../dynamic-form/form-field/fields/autocomplete/autocomplete-field.component'\n );\n this.CACHED_COMPONENTS.set(FieldType.Autocomplete, AutocompleteFieldComponent);\n };\n const setLookup = async () => {\n const { LookupFieldComponent } = await import(\n '../../dynamic-form/form-field/fields/lookup/lookup-field.component'\n );\n this.CACHED_COMPONENTS.set(FieldType.Lookup, LookupFieldComponent);\n };\n const setTextAreaIA = async () => {\n const { TextAreaIAFieldComponent } = await import(\n '../../dynamic-form/form-field/fields/text-area-ia/text-area-ia-field.component'\n );\n this.CACHED_COMPONENTS.set(FieldType.TextIA, TextAreaIAFieldComponent);\n };\n const setBigNumberField = async () => {\n const { BignumberFieldComponent } = await import(\n '../../dynamic-form/form-field/fields/bignumber/bignumber-field.component'\n );\n this.CACHED_COMPONENTS.set(FieldType.Number, BignumberFieldComponent);\n };\n const setBooleanField = async () => {\n const { BooleanFieldComponent } = await import(\n '../../dynamic-form/form-field/fields/boolean/boolean-radio-field/boolean-field.component'\n );\n this.CACHED_COMPONENTS.set(FieldType.Boolean, BooleanFieldComponent);\n };\n const setBooleanSwitchField = async () => {\n const { BooleanSwitchFieldComponent } = await import(\n '../../dynamic-form/form-field/fields/boolean/boolean-switch-field/boolean-switch-field.component'\n );\n this.CACHED_COMPONENTS.set(FieldType.BooleanSwitch, BooleanSwitchFieldComponent);\n };\n const setCalendarField = async () => {\n const { CalendarFieldComponent } = await import(\n '../../dynamic-form/form-field/fields/calendar/calendar-field.component'\n );\n this.CACHED_COMPONENTS.set(FieldType.Date, CalendarFieldComponent);\n };\n\n const setCheckboxField = async () => {\n const { CheckboxFieldComponent } = await import(\n '../../dynamic-form/form-field/fields/checkbox/checkbox-field.component'\n );\n this.CACHED_COMPONENTS.set(FieldType.Checkbox, CheckboxFieldComponent);\n };\n const setChipsField = async () => {\n const { ChipsFieldComponent } = await import(\n '../../dynamic-form/form-field/fields/chips/chips-field.component'\n );\n this.CACHED_COMPONENTS.set(FieldType.Chips, ChipsFieldComponent);\n };\n const setCountryPhonePickerField = async () => {\n const { CountryPhonePickerFieldComponent } = await import(\n '../../dynamic-form/form-field/fields/country-phone-picker/country-phone-picker-field.component'\n );\n this.CACHED_COMPONENTS.set(FieldType.CountryPhonePicker, CountryPhonePickerFieldComponent);\n };\n const setCurrencyField = async () => {\n const { CurrencyFieldComponent } = await import(\n '../../dynamic-form/form-field/fields/currency/currency-field.component'\n );\n this.CACHED_COMPONENTS.set(FieldType.Money, CurrencyFieldComponent);\n };\n const setEditorField = async () => {\n const { EditorFieldComponent } = await import(\n '../../dynamic-form/form-field/fields/editor/editor-field.component'\n );\n this.CACHED_COMPONENTS.set(FieldType.Editor, EditorFieldComponent);\n };\n const setFileUploadField = async () => {\n const { FileUploadFieldComponent } = await import(\n '../../dynamic-form/form-field/fields/file-upload/file-upload-field.component'\n );\n this.CACHED_COMPONENTS.set(FieldType.Blob, FileUploadFieldComponent);\n };\n const setPasswordField = async () => {\n const { PasswordFieldComponent } = await import(\n '../../dynamic-form/form-field/fields/password/password-field.component'\n );\n this.CACHED_COMPONENTS.set(FieldType.Password, PasswordFieldComponent);\n };\n const setProfilePictureField = async () => {\n const { ProfilePictureFieldComponent } = await import(\n '../../dynamic-form/form-field/fields/profile-picture/profile-picture-field.component'\n );\n this.CACHED_COMPONENTS.set(FieldType.ProfilePicture, ProfilePictureFieldComponent);\n };\n const setRadioButtonField = async () => {\n const { RadioButtonFieldComponent } = await import(\n '../../dynamic-form/form-field/fields/radio-button/radio-button-field.component'\n );\n this.CACHED_COMPONENTS.set(FieldType.Radio, RadioButtonFieldComponent);\n };\n const setSelectField = async () => {\n const { SelectFieldComponent } = await import(\n '../../dynamic-form/form-field/fields/select/select-field.component'\n );\n this.CACHED_COMPONENTS.set(FieldType.Enum, SelectFieldComponent);\n };\n const setSliderField = async () => {\n const { SliderFieldComponent } = await import(\n '../../dynamic-form/form-field/fields/slider/slider-field.component'\n );\n this.CACHED_COMPONENTS.set(FieldType.Slider, SliderFieldComponent);\n };\n const setTextAreaField = async () => {\n const { TextAreaFieldComponent } = await import(\n '../../dynamic-form/form-field/fields/text-area/text-area-field.component'\n );\n this.CACHED_COMPONENTS.set(FieldType.Text, TextAreaFieldComponent);\n };\n\n const setTextField = async () => {\n const { TextFieldComponent } = await import(\n '../../dynamic-form/form-field/fields/text/text-field.component'\n );\n this.CACHED_COMPONENTS.set(FieldType.String, TextFieldComponent);\n };\n const setButtonField = async () => {\n const { ButtonFieldComponent } = await import(\n '../../dynamic-form/form-field/fields/button-field/button-field.component'\n );\n this.CACHED_COMPONENTS.set(FieldType.Button, ButtonFieldComponent);\n };\n\n const setFieldSetComponent = async () => {\n const { FieldsetComponent } = await import('../components/structure/fieldset/fieldset.component');\n this.CACHED_COMPONENTS.set(StructureType.Fieldset, FieldsetComponent);\n };\n const setSectionComponent = async () => {\n const { SectionComponent } = await import('../components/structure/section/section.component');\n this.CACHED_COMPONENTS.set(StructureType.Section, SectionComponent);\n };\n const setRowComponent = async () => {\n const { RowComponent } = await import('../components/grid/row/row.component');\n this.CACHED_COMPONENTS.set(GridType.Row, RowComponent);\n };\n\n const setStarRatingComponent = async () => {\n const { StarRatingFieldComponent } = await import(\n '../../dynamic-form/form-field/fields/star-rating/star-rating-field.component'\n );\n this.CACHED_COMPONENTS.set(FieldType.StarRating, StarRatingFieldComponent);\n };\n\n const SET_CACHE_PROMISES = [\n setAutoComplete,\n setLookup,\n setTextAreaIA,\n setBigNumberField,\n setBooleanField,\n setBooleanSwitchField,\n setCalendarField,\n setCheckboxField,\n setChipsField,\n setCountryPhonePickerField,\n setCurrencyField,\n setEditorField,\n setFileUploadField,\n setPasswordField,\n setProfilePictureField,\n setRadioButtonField,\n setSelectField,\n setSliderField,\n setTextAreaField,\n setTextField,\n setButtonField,\n setFieldSetComponent,\n setSectionComponent,\n setRowComponent,\n setStarRatingComponent,\n ];\n await Promise.allSettled(SET_CACHE_PROMISES.map((promise) => promise()));\n this.LOADED_ALL_CACHE = true;\n }\n\n get(type: GridType | FieldType | StructureType) {\n return this.CACHED_COMPONENTS.get(type);\n }\n}\n","import { ComponentRef, ViewContainerRef } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\nimport { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\n\nimport { Subscription } from 'rxjs';\nimport { GridType } from './configurations/grid-type';\nimport { Row } from './configurations/grid/row';\nimport { StructureType } from './configurations/structure-type';\nimport { Structure } from './configurations/structure/structure';\nimport { FieldType } from './form-field/configurations/field-type';\nimport { FormField } from './form-field/form-field';\nimport { DynamicFormCacheService } from './services/dynamic-form-cache';\n\nexport abstract class DynamicForm {\n group: FormGroup | undefined;\n errorMessages: any;\n cacheService: DynamicFormCacheService;\n\n abstract createComponent(viewContainerRef: ViewContainerRef): any;\n abstract updateVariables(component: ComponentRef<any>): void;\n abstract getComponent(): any;\n\n constructor({ group, errorMessages, cacheService }: { group: FormGroup | undefined; errorMessages: any, cacheService: DynamicFormCacheService }) {\n this.group = group;\n this.errorMessages = errorMessages;\n this.cacheService = cacheService;\n }\n}\n\nexport class DynamicField extends DynamicForm {\n field: FormField | undefined;\n\n constructor({\n group,\n field,\n errorMessages,\n cacheService\n }: {\n group: FormGroup | undefined;\n field: FormField | undefined;\n errorMessages: any;\n cacheService: DynamicFormCacheService;\n }) {\n super({\n group,\n errorMessages,\n cacheService\n });\n this.field = field;\n }\n\n public createComponent(viewContainerRef: ViewContainerRef) {\n const component = viewContainerRef.createComponent(this.getComponent()) as ComponentRef<any>;\n\n component.instance.field = this.field;\n\n if (!isNullOrUndefined(this.field?.name)) {\n // Must be this way because some teams use name like \"e070emp.codemp\"\n component.instance.formControl = this.group?.['controls'][this.field.name];\n }\n\n this._switchEmptyStringToNull(component);\n\n component.instance.errorMessages = this.errorMessages;\n\n this.setVariablesByType(component);\n return component;\n }\n\n public setVariablesByType(component: ComponentRef<any>) {\n if (this.field?.type == FieldType.Time) {\n component.instance.timeOnly = true;\n }\n if (!isNullOrUndefined(this.field?.type)) {\n if ([FieldType.LocalDateTime, FieldType.DateTime, FieldType.Time].includes(this.field.type)) {\n component.instance.showTime = true;\n }\n }\n }\n\n public updateVariables(component: ComponentRef<any>) {\n if (isNullOrUndefined(this.field?.name)) return;\n\n component.instance.field = this.field;\n component.instance.formControl = this.group?.['controls'][this.field.name];\n this.setVariablesByType(component);\n }\n\n public getComponent() {\n if (isNullOrUndefined(this.field)) {\n throw new Error(`Field is null or undefined.`);\n }\n\n const fieldType = this.field.type as FieldType;\n\n switch (fieldType) {\n case FieldType.Binary:\n case FieldType.String: {\n return this.cacheService.get(FieldType.String);\n }\n case FieldType.Boolean: {\n if (this.field.representedBy === 'switch') {\n return this.cacheService.get(FieldType.BooleanSwitch);\n } else {\n return this.cacheService.get(FieldType.Boolean);\n }\n }\n case FieldType.Date:\n case FieldType.DateTime:\n case FieldType.LocalDateTime:\n case FieldType.Time: {\n return this.cacheService.get(FieldType.Date);\n }\n case FieldType.Number:\n case FieldType.Integer:\n case FieldType.Double: {\n return this.cacheService.get(FieldType.Number);\n }\n case FieldType.Autocomplete:\n case FieldType.Checkbox:\n case FieldType.Chips:\n case FieldType.CountryPhonePicker:\n case FieldType.Enum:\n case FieldType.Lookup:\n case FieldType.Money:\n case FieldType.Radio:\n case FieldType.Text:\n case FieldType.TextIA:\n case FieldType.Password:\n case FieldType.Blob:\n case FieldType.Slider:\n case FieldType.ProfilePicture:\n case FieldType.Editor:\n case FieldType.StarRating:\n case FieldType.Button: {\n return this.cacheService.get(fieldType);\n }\n\n case FieldType.Custom:\n return this.field.CustomFieldComponentClass;\n default:\n throw new Error(`Trying to use an unsupported type (${this.field?.type}).`);\n }\n }\n\n private _switchEmptyStringToNull(component: ComponentRef<any>) {\n switch (component.instance.field.type) {\n case FieldType.Password:\n case FieldType.String:\n case FieldType.Text:\n case FieldType.TextIA:\n const valueChanges$: Subscription = component.instance.formControl.valueChanges.subscribe(\n (value: unknown) => {\n if (value === '') {\n component.instance.formControl.setValue(null, { emitEvent: false });\n }\n },\n );\n\n component.onDestroy(() => {\n valueChanges$.unsubscribe();\n });\n\n return;\n }\n }\n}\n\nexport class DynamicStructure extends DynamicForm {\n config: Structure | undefined;\n\n constructor({\n group,\n config,\n errorMessages,\n cacheService\n }: {\n group: FormGroup | undefined;\n config: Structure | undefined;\n errorMessages: any;\n cacheService: DynamicFormCacheService;\n }) {\n super({\n group,\n errorMessages,\n cacheService\n });\n\n this.config = config;\n }\n\n public createComponent(viewContainerRef: ViewContainerRef) {\n const component = viewContainerRef.createComponent(this.getComponent()) as ComponentRef<any>;\n component.instance.config = this.config;\n component.instance.group = this.group;\n return component;\n }\n\n public updateVariables(component: ComponentRef<any>) {\n component.instance.structure = this.config;\n component.instance.group = this.group;\n }\n\n public getComponent() {\n if (isNullOrUndefined(this.config)) {\n throw new Error('Config is null or undefined.');\n }\n\n const structureType = this.config.type as StructureType;\n switch (structureType) {\n case StructureType.Fieldset:\n case StructureType.Section:\n return this.cacheService.get(structureType);\n default:\n throw new Error(`Trying to use an unsupported type (${this.config?.type}).`);\n }\n }\n}\n\nexport class DynamicGrid extends DynamicForm {\n config: Row | undefined;\n\n constructor({\n group,\n config,\n errorMessages,\n cacheService\n }: {\n group: FormGroup | undefined;\n config: Row | undefined;\n errorMessages: any;\n cacheService: DynamicFormCacheService;\n }) {\n super({ group, errorMessages, cacheService });\n\n this.config = config;\n }\n\n public createComponent(viewContainerRef: ViewContainerRef) {\n const component: any = viewContainerRef.createComponent(this.getComponent());\n component.instance.config = this.config as Row;\n component.instance.group = this.group as FormGroup;\n component.instance.errorMessages = this.errorMessages;\n return component;\n }\n\n public updateVariables(component: ComponentRef<any>) {\n component.instance.config = this.config;\n component.instance.group = this.group;\n }\n\n public getComponent() {\n if (isNullOrUndefined(this.config)) {\n throw new Error('Config is null or undefined.');\n }\n\n switch (this.config?.type) {\n case GridType.Row:\n return this.cacheService.get(GridType.Row);\n default:\n throw new Error(`Trying to use an unsupported type (${this.config?.type}).`);\n }\n }\n}\n\n","import {\n ComponentRef,\n Directive,\n inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n ViewContainerRef\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { FieldType } from './form-field/configurations/field-type';\nimport { FormField } from './form-field/form-field';\nimport { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\nimport { DynamicConfig } from './configurations/dynamic-config';\nimport { GridType } from './configurations/grid-type';\nimport { Grid } from './configurations/grid/grid';\nimport { Row } from './configurations/grid/row';\nimport { StructureType } from './configurations/structure-type';\nimport { Structure } from './configurations/structure/structure';\nimport { DynamicField, DynamicForm, DynamicGrid, DynamicStructure } from './dynamic-form';\nimport { Field } from './form-field/configurations/fields/field';\nimport { DynamicFormCacheService } from './services/dynamic-form-cache';\n\n@Directive({ selector: '[sDynamicForm]' })\nexport class DynamicFormDirective implements OnInit, OnChanges, OnDestroy {\n private id?: string;\n private config?: Structure | FormField | Grid | DynamicConfig | Row;\n private group?: FormGroup;\n private errorMessages?: FormGroup;\n private directiveConfig?: DynamicForm;\n\n @Input()\n set sDynamicForm(context: {\n id?: string;\n config?: FormField | Grid | DynamicConfig | undefined;\n structure?: Structure;\n group?: FormGroup;\n errorMessages?: any;\n }) {\n const { id, config, group, errorMessages } = context;\n this.id = id;\n this.config = config;\n this.group = group;\n this.errorMessages = errorMessages;\n }\n\n public component: ComponentRef<any> | null = null;\n\n private readonly viewContainerRef = inject(ViewContainerRef);\n\n dynamicFormCacheService = inject(DynamicFormCacheService);\n\n public ngOnInit() {\n if (this.isField()) {\n if (!(this.config as FormField).id && this.id) {\n (this.config as FormField).id = this.id + '-' + (this.config as FormField).name;\n }\n\n this.directiveConfig = new DynamicField({\n group: this.group,\n field: this.config as FormField,\n errorMessages: this.errorMessages,\n cacheService: this.dynamicFormCacheService\n });\n } else if (this.isStructure()) {\n this.directiveConfig = new DynamicStructure({\n group: this.group,\n config: this.config as Structure,\n errorMessages: this.errorMessages,\n cacheService: this.dynamicFormCacheService\n });\n } else if (this.isGrid()) {\n this.directiveConfig = new DynamicGrid({\n group: this.group,\n config: this.config as Row,\n errorMessages: this.errorMessages,\n cacheService: this.dynamicFormCacheService\n });\n } else throw new Error(`Trying to use an unsupported type (${this.getType}).`);\n\n this.component = this.directiveConfig.createComponent(this.viewContainerRef);\n\n if (!isNullOrUndefined(this.component)) {\n this.component.instance.id = this.id;\n this.component.instance.errorMessages = this.errorMessages;\n }\n }\n\n public ngOnChanges() {\n if (this.component) {\n this.directiveConfig?.updateVariables(this.component);\n this.component.instance.errorMessages = this.errorMessages;\n }\n }\n\n public ngOnDestroy(): void {\n this.component?.destroy();\n }\n\n private isField(): boolean {\n if (isNullOrUndefined(this.getType)) {\n return false;\n }\n\n return !!(FieldType as any)[this.getType];\n }\n\n private isStructure(): boolean {\n if (isNullOrUndefined(this.getType)) {\n return false;\n }\n\n return !!(StructureType as any)[this.getType];\n }\n\n private isGrid() {\n if (isNullOrUndefined(this.getType)) {\n return false;\n }\n\n return !!(GridType as any)[this.getType];\n }\n\n private get getType() {\n const config = this.config;\n if (config instanceof DynamicConfig) {\n return (config as Field).type;\n } else {\n return config?.type;\n }\n }\n}\n","import { Component, computed, inject, input, Input, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { DynamicConfig } from './configurations/dynamic-config';\nimport { GridType } from './configurations/grid-type';\nimport { FormField } from './form-field/form-field';\nimport { DynamicFormCacheService } from './services/dynamic-form-cache';\n\n@Component({\n selector: 's-dynamic-form',\n templateUrl: './dynamic-form.component.html',\n styleUrls: ['dynamic-form.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DynamicFormComponent {\n @Input()\n public id!: string;\n\n @Input()\n public configs: DynamicConfig[] = [];\n\n /**\n * @deprecated Use `configs` input instead. Este campo será removido em versões futuras.\n */\n fields = input<DynamicConfig[] | null, FormField[]>(null, {\n transform: (fields) => [\n {\n type: GridType.Row,\n fields,\n },\n ],\n });\n\n conf = computed(() => (this.fields() ? this.fields() : this.configs));\n\n @Input({ required: true })\n public form!: FormGroup;\n\n @Input()\n public errorMessages?: any = {};\n\n dynamicFormCacheService = inject(DynamicFormCacheService);\n}\n\n","@if(dynamicFormCacheService.LOADED_ALL_CACHE) {\n <ng-container *ngFor=\"let config of conf()\">\n <ng-container\n *sDynamicForm=\"{\n id: id,\n config: config,\n group: form,\n errorMessages: errorMessages\n }\">\n </ng-container>\n </ng-container>\n}\n","import { Component, Input } from \"@angular/core\";\n\nimport { Field } from \"../../form-field/configurations/fields/field\";\n\n@Component({\n selector: 's-field-label',\n templateUrl: './field-label.component.html',\n})\nexport class FieldLabelComponent {\n @Input({ required: true })\n public field!: Field;\n\n @Input()\n public fieldContainerRef: HTMLElement | null | undefined = null;\n}\n","<!--\n Caso esse componente seja alterado/removido/movido,\n alterar a label no row.component.ts\n-->\n\n@if (field.label) {\n <span>\n <label\n *sInfoSign=\"\n field.infoSign ?? '';\n displayTime: field.displayTimeInfoSign ?? 0;\n focusedInputRef: fieldContainerRef;\n useFocusedInputRef: field.useInfoSignFocusedInputRef;\n \"\n [for]=\"field.name\"\n class=\"inline-block\"\n [ngClass]=\"{ required: field.required?.() }\"\n >\n {{ field.label }}\n </label>\n </span>\n}\n","import { Component, Input } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\nimport { Row } from '../../../configurations/grid/row';\nimport { FieldType } from '../../../form-field/configurations/field-type';\n\n@Component({\n templateUrl: './row.component.html',\n selector: 's-row',\n})\nexport class RowComponent {\n @Input()\n public id?: string;\n\n @Input({ required: true })\n public config!: Row;\n\n @Input({ required: true })\n public group!: FormGroup;\n\n @Input()\n public errorMessages: any;\n\n FieldType = FieldType;\n\n public getErrorMessages(errorMessages: any) {\n if (errorMessages) return this.isFunction(errorMessages) ? errorMessages() : errorMessages;\n return this.errorMessages;\n }\n\n public isFunction(value: any): boolean {\n return value instanceof Function;\n }\n}\n\n","<div\n class=\"p-fluid\"\n [formGroup]=\"group\"\n>\n <div class=\"ui-g\">\n @for (field of config.fields; let i = $index; track i) {\n @if (field.visible && field.visible()) {\n <div [ngClass]=\"field.gridClass\">\n <ng-container *sDynamicForm=\"{ id: id, config: field, group: group }\"></ng-container>\n\n @if (field.type === FieldType.Custom && field.label) {\n <label\n *sInfoSign=\"\n field.infoSign ?? '';\n displayTime: field.displayTimeInfoSign ?? 5000;\n useFocusedInputRef: field.useInfoSignFocusedInputRef ?? false\n \"\n [for]=\"field.name\"\n [ngClass]=\"{ required: field.required ? field.required() : false }\"\n >\n {{ field.label }}\n </label>\n }\n\n @if (field.name) {\n <s-control-errors\n [form]=\"group\"\n [control]=\"group.controls[field.name]\"\n [errorMessages]=\"getErrorMessages(field.errorMessages)\"\n ></s-control-errors>\n }\n\n @if (field.footer) {\n @if (field.footer.help) {\n @if (\n field.name &&\n field.footer.help.visible &&\n field.footer.help.visible({\n abstractControl: group.controls[field.name],\n formField: field,\n })\n ) {\n <span style=\"color: #888b99\">\n {{ field.footer.help.text }}\n </span>\n }\n }\n }\n\n @if (field.footer) {\n @if (\n field.name &&\n field.footer.link?.visible({\n abstractControl: group.controls[field.name],\n formField: field,\n })\n ) {\n <div\n class=\"ui-g\"\n style=\"margin-left: -17px\"\n >\n <s-button\n [label]=\"field.footer.link?.label\"\n priority=\"link\"\n (clicked)=\"\n field.footer.link?.onClick({\n abstractControl: group.controls[field.name],\n formField: field,\n })\n \"\n [auxiliary]=\"true\"\n ></s-button>\n </div>\n }\n }\n @if (field.bottomTemplate) {\n <ng-template [ngTemplateOutlet]=\"field.bottomTemplate\"></ng-template>\n }\n </div>\n }\n }\n </div>\n</div>\n\n","import { ElementRef } from '@angular/core';\nimport { FormField } from '../../form-field';\nimport { Field, FieldConfig } from './field';\nimport { FileDto } from '@seniorsistemas/angular-components/file-upload';\n\nexport interface BlobFieldConfig extends FieldConfig {\n accept: string;\n files: FileDto[];\n chooseLabel: string;\n removeLabel: string;\n cancelLabel: string;\n successTooltip: string;\n multiple: boolean;\n onUploadFile: (event: { files: FileDto[] }, field: FormField) => void;\n onRemoveFile: (event: FileDto, field: FormField) => void;\n onCancelUpload: (event: number, field: FormField) => void;\n onDownloadFile: (event: { index: number; anchor: ElementRef }, field: FormField) => void;\n showFileUploadDate: boolean;\n}\n\nexport class BlobField extends Field {\n public accept: string;\n public files: FileDto[];\n public chooseLabel: string;\n public removeLabel: string;\n public cancelLabel: string;\n public successTooltip: string;\n public multiple: boolean;\n public onUploadFile: (event: { files: FileDto[] }, field: FormField) => void;\n public onRemoveFile: (event: FileDto, field: FormField) => void;\n public onCancelUpload: (event: number, field: FormField) => void;\n public onDownloadFile: (event: { index: number; anchor: ElementRef }, field: FormField) => void;\n public showFileUploadDate: boolean;\n\n constructor(config: BlobFieldConfig) {\n super(config);\n this.accept = config.accept;\n this.files = config.files || [];\n this.chooseLabel = config.chooseLabel;\n this.removeLabel = config.removeLabel;\n this.cancelLabel = config.cancelLabel;\n this.successTooltip = config.successTooltip;\n this.multiple = config.multiple;\n this.onUploadFile = config.onUploadFile;\n this.onRemoveFile = config.onRemoveFile;\n this.onCancelUpload = config.onCancelUpload;\n this.onDownloadFile = config.onDownloadFile;\n this.showFileUploadDate = config.showFileUploadDate;\n }\n}\n","import { ButtonAnimations, ButtonBadgeConfig, ButtonComponent, ButtonPriority, ButtonSize } from '@seniorsistemas/angular-components/button';\nimport { Field, FieldConfig } from './field';\nimport { TieredMenuItemData } from '@seniorsistemas/angular-components/tiered-menu';\nimport { randomHash } from '@seniorsistemas/angular-components/utils';\n\ntype ExtractedButtonProperties = Partial<\n Pick<\n ButtonComponent,\n | 'priority'\n | 'iconClass'\n | 'disabled'\n | 'auxiliary'\n | 'caret'\n | 'iconColor'\n | 'badge'\n | 'animation'\n | 'slide'\n | 'menuOptions'\n | 'baseZIndex'\n | 'styleClass'\n | 'rightIconClass'\n | 'tooltipPosition'\n >\n>;\n\nexport interface ButtonFieldConfig extends FieldConfig, ExtractedButtonProperties {\n onClick?: (event?: any) => any;\n fullWidth?: boolean;\n mouseEnter?: (button: ButtonField) => void\n mouseLeave?: (button: ButtonField) => void\n}\n\nexport class ButtonField extends Field implements ExtractedButtonProperties {\n public priority?: ButtonPriority;\n public iconClass?: string;\n public disabled = false;\n public auxiliary = false;\n public caret = false;\n public onClick?: (event?: Event) => any;\n public fullWidth?: boolean;\n public iconColor?: string;\n public badge?: ButtonBadgeConfig;\n public animation?: ButtonAnimations;\n public slide = false;\n public menuOptions: TieredMenuItemData[] = [];\n public baseZIndex = 0;\n public styleClass?: string;\n public rightIconClass?: string;\n public tooltipPosition?: 'top' | 'right' | 'bottom' | 'left' = 'top';\n public buttonType?: string;\n public buttonSize?: ButtonSize;\n public mouseEnter?: (button: ButtonField) => void\n public mouseLeave?: (button: ButtonField) => void\n\n constructor(config: ButtonFieldConfig) {\n super(config);\n this.priority = config.priority || 'primary';\n this.iconClass = config.iconClass || '';\n this.disabled = config.disabled || false;\n this.auxiliary = config.auxiliary || false;\n this.caret = config.caret || false;\n this.id = config.id || `s-button-${randomHash()}`;\n this.onClick = config.onClick || (() => { });\n this.fullWidth = config.fullWidth || false;\n this.iconColor = config.iconColor;\n this.badge = config.badge;\n this.animation = config.animation;\n this.slide = config.slide || false;\n this.menuOptions = config.menuOptions || [];\n this.baseZIndex = config.baseZIndex || 0;\n this.styleClass = config.styleClass;\n this.rightIconClass = config.rightIconClass;\n this.tooltipPosition = config.tooltipPosition;\n this.mouseEnter = config.mouseEnter;\n this.mouseLeave = config.mouseLeave;\n }\n}\n","import { CheckboxListData } from \"@seniorsistemas/angular-components/checkbox-list\";\nimport { Field, FieldConfig } from \"./field\";\n\nexport interface CheckboxFieldConfig extends FieldConfig {\n data: CheckboxListData;\n}\n\nexport class CheckboxField extends Field {\n public data: CheckboxListData;\n\n constructor(config: CheckboxFieldConfig) {\n super(config);\n this.data = config.data;\n }\n}\n","import {\n CountryPhoneData,\n Ordination,\n PhoneSelectionData,\n} from '@seniorsistemas/angular-components/country-phone-picker';\nimport { Field, FieldConfig } from './field';\n\nexport interface CountryPhonePickerConfig extends FieldConfig {\n countries: string[];\n ordination: Ordination;\n onSelected: (data: CountryPhoneData) => void;\n onFocusLost?: (data: PhoneSelectionData | null) => void;\n}\n\nexport class CountryPhonePickerField extends Field {\n public countries: string[];\n public ordination: Ordination;\n public onSelected: (data: CountryPhoneData) => void;\n public onFocusLost?: (data: PhoneSelectionData | null) => void;\n\n constructor(config: CountryPhonePickerConfig) {\n super(config);\n this.countries = config.countries;\n this.ordination = config.ordination;\n this.onSelected = config.onSelected;\n this.onFocusLost = config.onFocusLost;\n }\n}\n\n","import { Field, FieldConfig } from \"./field\";\n\nexport interface EditorFieldConfig extends FieldConfig {\n formats?: string[];\n readonly?: boolean;\n modules?: any;\n style?: { [klass: string]: unknown };\n}\n\nexport class EditorField extends Field {\n public formats?: string[];\n public readonly?: boolean;\n public modules?: any;\n public style?: { [klass: string]: unknown };\n\n constructor(config: EditorFieldConfig) {\n super(config);\n this.formats = config.formats;\n this.readonly = config.readonly;\n this.modules = config.modules;\n this.style = config.style;\n }\n}\n","import { CropperLabelsConfig, FileValidationErrors, ProfilePicturePickerData, ConfirmationTexts } from \"@seniorsistemas/angular-components/profile-picture-picker\";\nimport { Field, FieldConfig } from \"./field\";\n\nexport interface ProfilePictureConfig extends FieldConfig {\n simpleTitle: string;\n actionTitle: string;\n subtitle: string;\n aspectRatio: number;\n cropperLabelsConfig?: CropperLabelsConfig;\n removeButtonLabel?: string;\n changeButtonLabel?: string;\n confirmationTexts?: ConfirmationTexts;\n maxFileSize?: number;\n accept?: string;\n supportedExtensions?: string[];\n onChangeImage?: (event: string | ProfilePicturePickerData) => void;\n onRemovedImage?: () => void;\n onInvalidFile?: (event: FileValidationErrors) => void;\n}\n\nexport class ProfilePictureField extends Field {\n public simpleTitle: string;\n public actionTitle: string;\n public subtitle: string;\n public aspectRatio: number;\n public cropperLabelsConfig?: CropperLabelsConfig;\n public removeButtonLabel?: string;\n public changeButtonLabel?: string;\n public confirmationTexts?: ConfirmationTexts;\n public maxFileSize?: number;\n public accept?: string;\n public supportedExtensions: string[] = [];\n public onChangeImage?: (event: string | ProfilePicturePickerData) => void;\n public onRemovedImage?: () => void;\n public onInvalidFile?: (event: FileValidationErrors) => void;\n\n constructor(config: ProfilePictureConfig) {\n super(config);\n this.simpleTitle = config.simpleTitle;\n this.actionTitle = config.actionTitle;\n this.subtitle = config.subtitle;\n this.aspectRatio = config.aspectRatio;\n this.cropperLabelsConfig = config.cropperLabelsConfig;\n this.removeButtonLabel = config.removeButtonLabel;\n this.changeButtonLabel = config.changeButtonLabel;\n this.confirmationTexts = config.confirmationTexts;\n this.maxFileSize = config.maxFileSize;\n this.accept = config.accept;\n this.supportedExtensions = config.supportedExtensions || [];\n this.onChangeImage = config.onChangeImage;\n this.onRemovedImage = config.onRemovedImage;\n this.onInvalidFile = config.onInvalidFile;\n }\n}\n","import { Field, FieldConfig } from \"./field\";\n\nexport interface TextAreaIAFieldConfig extends FieldConfig {\n cols?: number;\n rows?: number;\n keyFilter?: any;\n style?: Partial<CSSStyleDeclaration>;\n prompt?: string;\n readonly?: () => boolean;\n speechRecognition?: boolean;\n keepContext: boolean\n speechRecognitionPlaceholder: string\n maxLength?: number;\n}\n\nexport class TextAreaIAField extends Field {\n public cols?: number;\n public rows?: number;\n public keyFilter?: any;\n public style?: Partial<CSSStyleDeclaration> = {\n resize: 'vertical'\n };\n public prompt?: string;\n public readonly?: () => boolean;\n public speechRecognition: boolean\n public keepContext: boolean\n public speechRecognitionPlaceholder: string\n public maxLength: number | null;\n\n constructor(config: TextAreaIAFieldConfig) {\n super(config);\n this.cols = config.cols;\n this.rows = config.rows;\n this.keyFilter = config.keyFilter;\n this.style = {\n ...config.style,\n ...this.style,\n };\n this.prompt = config.prompt;\n this.readonly = config.readonly;\n this.speechRecognition = config.speechRecognition ?? false;\n this.keepContext = config.keepContext ?? false\n this.speechRecognitionPlaceholder = config.speechRecognitionPlaceholder ?? '';\n this.maxLength = config.maxLength ?? null;\n }\n}\n","import { JustifyTypes } from '@seniorsistemas/angular-components/star-rating';\nimport { Field, FieldConfig } from './field';\n\n\ntype booleanFn = () => boolean;\nexport interface StarRatingFieldConfig extends FieldConfig {\n starRange: number;\n disabled: boolean | booleanFn\n justifyContent?: JustifyTypes;\n valueChange?: (star: number) => any\n}\n\nexport class StarRatingField extends Field implements StarRatingFieldConfig {\n starRange: number;\n disabled: boolean | booleanFn;\n justifyContent: JustifyTypes;\n valueChange?: ((star: number) => any) | undefined;\n constructor(config: StarRatingFieldConfig) {\n super(config);\n this.starRange = config.starRange ?? 5;\n this.disabled = config.disabled ?? false;\n this.justifyContent = config.justifyContent || 'start'\n if (config.valueChange) {\n this.valueChange = config.valueChange;\n }\n }\n}\n","import { TemplateRef } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { FileDto } from '@seniorsistemas/angular-components/file-upload';\nimport { AddonConfig } from './addon-config';\nimport { AutocompleteField } from './configurations/fields/autocomplete-field';\nimport { BignumberField } from './configurations/fields/bignumber-field';\nimport { BlobField } from './configurations/fields/blob-field';\nimport { BooleanField } from './configurations/fields/boolean-field';\nimport { BooleanOptionsLabel } from './configurations/fields/boolean-field';\nimport { BooleanSwitchField } from './configurations/fields/boolean-switch-field';\nimport { ButtonField } from './configurations/fields/button-field';\nimport { CalendarField } from './configurations/fields/calendar-field';\nimport { CheckboxField } from './configurations/fields/checkbox-field';\nimport { ChipsField } from './configurations/fields/chips-field';\nimport { CountryPhonePickerField } from './configurations/fields/country-phone-picker-field';\nimport { CurrencyField } from './configurations/fields/currency-field';\nimport { DecimalField } from './configurations/fields/decimal-field';\nimport { EditorField } from './configurations/fields/editor-field';\nimport { FieldSize } from './configurations/field-size';\nimport { FieldType } from './configurations/field-type';\nimport { LookupField } from './configurations/fields/lookup-field';\nimport { NumberField } from './configurations/fields/number-field';\nimport { PasswordField } from './configurations/fields/password-field';\nimport { ProfilePictureField } from './configurations/fields/profile-picture';\nimport { RadioButtonField } from './configurations/fields/radio-button-field';\nimport { SelectField } from './configurations/fields/select-field';\nimport { SliderField } from './configurations/fields/slider-field';\nimport { TextAreaField } from './configurations/fields/text-area-field';\nimport { TextAreaIAField } from './configurations/fields/text-area-ia-field';\nimport { TextField } from './configurations/fields/text-field';\nimport { CalendarLocaleOptions, NumberLocaleOptions } from '@seniorsistemas/angular-components/locale';\nimport { NumberAlignmentOption } from '@seniorsistemas/angular-components/number-input';\nimport { AlignmentOptions } from '@seniorsistemas/ng2-currency-mask';\nimport { StarRatingField } from './configurations/fields/star-rating-field';\n\nexport class FormField {\n id?: string;\n /**\n * Tells whether the field is required or not\n */\n required?: () => boolean;\n name: string = '';\n sortableColumnName?: string;\n type?: FieldType;\n label?: string;\n /**\n * Labels of a Radio Button, only used to FieldType Boolean\n */\n optionsLabel?: BooleanOptionsLabel;\n tooltip?: string;\n /**\n * Mask pattern.\n */\n mask?: ((options?: { value: unknown }) => string) | string;\n /**\n * Message to display when there are no results for a query.\n */\n emptyMessage?: string;\n cols?: number;\n rows?: number;\n placeholder?: string;\n options?: any;\n calendarLocaleOptions?: CalendarLocaleOptions;\n numberLocaleOptions?: NumberLocaleOptions;\n multiple?: boolean;\n appendTo?: string;\n browserAutocomplete?: boolean;\n showClear?: boolean;\n showOnFocus?: boolean;\n style?: { [klass: string]: any };\n representedBy?: 'radio' | 'switch';\n /**\n * Whether the `RadioButton` should be displayed on the vertical or not.\n *\n * @default false\n */\n verticalAlignment?: boolean;\n /**\n * Field max length\n */\n precision?: Function | number;\n /**\n * Number of decimal places\n */\n scale?: Function | number;\n /**\n * @deprecated Using FieldType.Number this attribute is unnecessary\n */\n alignTo?: NumberAlignmentOption | AlignmentOptions;\n gridClass?:\n | string\n | string[]\n | Set<string>\n | {\n [klass: string]: any;\n };\n size?: FieldSize;\n multipleSelectedLabel?: string;\n inputType?: string;\n accept?: string;\n files?: FileDto[];\n autocompleteForceSelection?: boolean;\n /**\n * The minimum selectable date.\n */\n minDate?: Date;\n /**\n * The maximum selectable date.\n */\n maxDate?: Date;\n /**\n * Set the date to highlight on first opening if the field is blank.\n */\n defaultDate?: Date;\n /**\n * Text or icon to be grouped in the left of an input.\n */\n leftAddon?: AddonConfig;\n /**\n * Text or icon to be grouped in right of an input.\n */\n rightAddon?: AddonConfig;\n /**\n * InfoSign para a label do input.\n */\n infoSign?: string;\n /**\n * Expression to restricts user input\n */\n keyFilter?: RegExp;\n\n /**\n * Default value for field\n */\n defaultValue?: any;\n /**\n * Customized FormField error message\n */\n errorMessages?: () => {} | {};\n visible?: () => boolean;\n /**\n * Callback to invoke when the field loses focus\n */\n onBlur?: (event: FocusEvent) => void;\n /**\n * Callback to invoke when the field receives focus\n */\n onFocus?: (event: FocusEvent) => void;\n onComplete?: (event: any) => void;\n onInput?: (event: any) => void;\n onChange?: (event: boolean) => void;\n onSelect?: (event: any) => void;\n /**\n * Callback to invoke on component click.\n */\n onClick?: (event: any) => void;\n onClose?: (event: any) => void;\n onTodayClick?: (event: any) => void;\n onClearClick?: (event: any) => void;\n onMonthChange?: (event: any) => void;\n onYearChange?: (event: any) => void;\n /**\n * Callback to invoke when a value is added.\n */\n onAdd?: (event: any) => void;\n /**\n * Callback to invoke when a value is removed.\n */\n onRemove?: (event: any) => void;\n /**\n * Callback to invoke when a chip is clicked.\n */\n onChipClick?: (event: any) => void;\n\n /**\n * Callback to invoke when a slider is released\n */\n onSlideEnd?: (event: any) => void;\n\n CustomFieldClass?: any;\n CustomFieldComponentClass?: any;\n\n /**\n * @deprecated You should use footer attribute instead.\n */\n bottomTemplate?: TemplateRef<Element>;\n\n autoClear?: boolean;\n displayTimeInfoSign?: number;\n\n footer?: {\n help?: {\n text: string;\n visible?: (options: { abstractControl: AbstractControl; formField: FormField }) => boolean;\n };\n link?: {\n label: string;\n onClick: (options: { abstractControl: AbstractControl; formField: FormField }) => void;\n visible?: (options: { abstractControl: AbstractControl; formField: FormField }) => boolean;\n };\n };\n\n useInfoSignFocusedInputRef?: boolean;\n width?: number;\n /**\n * In some cases DynamicFormField use a custom field that alredy exists, this happen in CustomFields when convert 'Integer, Double & Money' types to 'Custom' this create two labels. activate this property hide the parent label.\n */\n ignoreLabel? = false;\n\n constructor(config: any) {\n this.useInfoSignFocusedInputRef = config.useInfoSignFocusedInputRef ?? false;\n switch (config.type) {\n case FieldType.Enum:\n return new SelectField(config);\n case FieldType.Autocomplete:\n return new AutocompleteField(config);\n case FieldType.Money:\n return new CurrencyField(config);\n case FieldType.Integer:\n return new NumberField(config);\n case FieldType.Double:\n return new DecimalField(config);\n case FieldType.Number:\n return new BignumberField(config);\n case FieldType.String:\n case FieldType.Binary:\n return new TextField(config);\n case FieldType.Password:\n return new PasswordField(config);\n case FieldType.Text:\n return new TextAreaField(config);\n case FieldType.TextIA:\n return new TextAreaIAField(config);\n case FieldType.Boolean:\n return config.representedBy === 'switch' ? new BooleanSwitchField(config) : new BooleanField(config);\n case FieldType.Date:\n case FieldType.DateTime:\n case FieldType.LocalDateTime:\n case FieldType.Time:\n return new CalendarField(config);\n case FieldType.Lookup:\n return new LookupField(config);\n case FieldType.Radio:\n return new RadioButtonField(config);\n case FieldType.Checkbox:\n return new CheckboxField(config);\n case FieldType.Chips:\n return new ChipsField(config);\n case FieldType.CountryPhonePicker:\n return new CountryPhonePickerField(config);\n case FieldType.Blob:\n return new BlobField(config);\n case FieldType.Slider:\n return new SliderField(config);\n case FieldType.ProfilePicture:\n return new ProfilePictureField(config);\n case FieldType.Editor:\n return new EditorField(config);\n case FieldType.Button:\n return new ButtonField(config);\n case FieldType.StarRating:\n return new StarRatingField(config);\n case FieldType.Custom:\n const { CustomFieldClass, ...otherConfigs } = config;\n return new CustomFieldClass(otherConfigs);\n }\n }\n}\n\nexport class Option {\n label: string;\n value?: any;\n\n constructor(label: string, value: any) {\n this.label = label;\n this.value = value;\n }\n}\n\n","import { animate, animateChild, group, query, state, style, transition, trigger } from '@angular/animations';\nimport {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n viewChild,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ControlValueAccessor, FormControl, FormGroup, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { TranslateService } from '@ngx-translate/core';\nimport { MaskConfig } from '@seniorsistemas/ng2-currency-mask';\nimport { Hotkey, HotkeysService } from 'angular2-hotkeys';\nimport BigNumber from 'bignumber.js';\nimport { SortMeta } from 'primeng/api';\nimport { AutoComplete, AutoCompleteCompleteEvent } from 'primeng/autocomplete';\nimport { Table } from 'primeng/table';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { DefaultFilter } from './types/default-filter';\nimport { LabelOptions } from './types/label-options';\n\nimport { BadgeComponent } from '@seniorsistemas/angular-components/badge';\nimport { LoadingStateIndicators } from '@seniorsistemas/angular-components/loading-state';\nimport { CalendarLocaleOptions } from '@seniorsistemas/angular-components/locale';\nimport { CheckDisabled } from '@seniorsistemas/angular-components/shared';\nimport { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\nimport { FieldType } from '../../form-field/configurations/field-type';\nimport { FormField } from '../../form-field/form-field';\n\n@Component({\n selector: 's-lookup',\n templateUrl: './lookup.component.html',\n styleUrls: ['./lookup.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => LookupComponent),\n multi: true,\n },\n ],\n encapsulation: ViewEncapsulation.None,\n animations: [\n trigger('collapseContent', [\n state(\n 'hidden',\n style({\n width: '10px',\n padding: 0,\n }),\n ),\n state(\n 'visible',\n style({\n width: '*',\n }),\n ),\n transition('visible <=> hidden', [\n group([query('@childCollapseContent', animateChild()), animate('{{transitionParams}}')]),\n ]),\n ]),\n trigger('childCollapseContent', [\n state(\n ':leave',\n style({\n opacity: 0,\n }),\n ),\n state(\n ':enter',\n style({\n opacity: 1,\n }),\n ),\n transition('* <=> *', animate('{{transitionParams}}')),\n ]),\n ],\n})\nexport class LookupComponent implements ControlValueAccessor, OnChanges, OnInit, OnDestroy {\n private readonly lookupDialogContainer = viewChild<ElementRef<HTMLElement>>('dialogContainer');\n protected rowType = 'Row';\n public indicatorLogo = LoadingStateIndicators.Logo;\n public static nextId = 0;\n\n @Input()\n public formControlName?: string;\n\n @Input()\n public id = `s-lookup-${LookupComponent.nextId++}`;\n\n @Input()\n public autocompleteForceSelection = true;\n\n @Input()\n public multiple = false;\n\n @Input({ required: true })\n public dataKey!: string;\n\n @Input()\n public disabled = false;\n\n @Input()\n public showSearch = true;\n\n @Input()\n public lookupSuggestions: any[] = [];\n\n @Input()\n public lookupDisplayField?: string;\n\n @Input()\n public lookupDisplayFieldTooltip = false;\n\n @Input()\n public lookupEmptyMessage?: string;\n\n @Input()\n public lookupAppendTo? = 'body';\n\n @Input()\n public searchEmptyDescription?: string;\n\n @Input()\n public searchGridData: any[] = [];\n\n @Input()\n public searchTotalRecords = 0;\n\n @Input()\n public searchFields: FormField[] = [];\n\n @Input()\n public searchGridFields: FormField[] = [];\n\n @Input()\n public multiSortMeta: SortMeta[] = [];\n\n @Input()\n public placeholder?: string;\n\n @Input()\n public sortableColumnsDisabled: string[] = [];\n\n @Input()\n public lookupRowProps: string[] = [];\n\n @Input()\n public defaultFilter: DefaultFilter[] = [];\n\n @Input()\n public showAddOption = false;\n\n @Input()\n public showEditOption = false;\n\n @Input()\n public showRemoveOption = false;\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onLookupRequest = new EventEmitter();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onSearchRequest = new EventEmitter();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onFocus = new EventEmitter();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onBlur = new EventEmitter();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onKeyUp = new EventEmitter();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onSelect = new EventEmitter();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onUnselect = new EventEmitter();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onClear = new EventEmitter();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onAdd = new EventEmitter();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onEdit = new EventEmitter<unknown>();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onRemove = new EventEmitter<unknown[]>();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onClearButtonClick = new EventEmitter<void>();\n\n @ViewChild(Table, { static: false })\n public table: Table | null = null;\n\n @ViewChild(AutoComplete, { static: false })\n public autocomplete: AutoComplete | null = null;\n\n @Input()\n public labelOptions?: Partial<LabelOptions>;\n\n public value: any;\n public loading = false;\n public animating = false;\n public dialogVisible = false;\n public collapsed = false;\n public selected: any[] = [];\n public formGroupDialog!: FormGroup<any>;\n public transitionOptions = '400ms cubic-bezier(0.86, 0, 0.07, 1)';\n\n private onChange?: Function;\n private onTouched?: Function;\n private originalFormValues = {};\n private readonly ngUnsubscribe = new Subject<void>();\n\n constructor(\n private readonly hotkeysService: HotkeysService,\n protected readonly translateService: TranslateService,\n protected readonly changeDetectorRef: ChangeDetectorRef,\n ) {}\n\n public ngOnInit() {\n if (!this.searchGridFields.length) {\n this.searchGridFields = this.searchFields\n .filter((item) => !item.visible || item.visible?.())\n .map((item) => new FormField({ ...item }));\n }\n this.searchFields = this.searchFields.map(\n (value: FormField) =>\n new FormField({\n ...value,\n size: { sm: 12, md: 12, lg: 12, xl: 12 },\n }),\n );\n\n this.searchGridFields = this.searchGridFields\n .filter((gridField: FormField) => !gridField.visible || gridField.visible?.())\n .map((gridField: FormField) => {\n if (gridField.label) {\n (gridField as any)['width'] = this.getColWidth(gridField.label);\n }\n\n const calendarOptions = new CalendarLocaleOptions({ ...gridField.calendarLocaleOptions });\n\n if (calendarOptions?.dateFormat) {\n switch (gridField.type) {\n case FieldType.Date:\n calendarOptions.dateFormat = this._convertToMomentDateFormat(calendarOptions.dateFormat);\n break;\n case FieldType.Time:\n calendarOptions.dateFormat = this._convertToMomentHourFormat(\n calendarOptions.hourFormat!,\n calendarOptions.dateFormat,\n );\n break;\n }\n gridField.calendarLocaleOptions = calendarOptions;\n }\n\n return gridField;\n });\n\n const hasFieldWithDotInName = this.searchFields.some((field) => field.name.includes('.'));\n if (hasFieldWithDotInName) {\n const fieldsWithDot = this.searchFields\n .filter((item) => item.name.includes('.'))\n .map((item) => item.name)\n .join();\n throw new Error(`This fields: [${fieldsWithDot}] can't have dot in their names, please replace.`);\n }\n const formGroup = this.searchFields.reduce((result: any, field) => {\n if (field.name) {\n result[field.name] = new FormControl(field.defaultValue);\n (this.originalFormValues as any)[field.name] = field.defaultValue;\n }\n return result;\n }, {});\n\n this.formGroupDialog = new FormGroup(formGroup);\n\n this._subscribeEvents();\n }\n\n public printRecordTotalizer(): string {\n if (this.labelOptions?.searchTotalRecordsLabel) {\n return this.labelOptions?.searchTotalRecordsLabel;\n }\n\n const recordLabel = this.labelOptions?.recordLabel\n ? `${this.searchTotalRecords} ${this.labelOptions?.recordLabel}`\n : this.translateService.instant('platform.angular_components.total_record', {\n count: this.searchTotalRecords,\n });\n\n const recordsLabel = this.labelOptions?.recordsLabel\n ? `${this.searchTotalRecords} ${this.labelOptions?.recordsLabel}`\n : this.translateService.instant('platform.angular_components.total_records', {\n count: this.searchTotalRecords,\n });\n\n return this.searchTotalRecords === 1 ? recordLabel : recordsLabel;\n }\n\n private _convertToMomentHourFormat(hourFormat: string, format: string) {\n if (format === 'dd/mm/yy') {\n // valor padrão para o format.\n return 'LTS';\n }\n\n if (hourFormat === '12') {\n return format\n .replace(/\\bH\\b/, 'h') // hour (12 hour time) (no leading zero)\n .replace(/\\bHH\\b/, 'hh'); // hour (12 hour time)\n }\n\n if (hourFormat === '24') {\n return format\n .replace(/\\bh\\b/, 'H') // hour (24 hour time) (no leading zero)\n .replace(/\\bhh\\b/, 'HH'); // hour (24 hour time)\n }\n\n return format;\n }\n\n private _convertToMomentDateFormat(format: string): string {\n // A ordem dos replaces é importante.\n return format\n .replace(/\\bd\\b/, 'D') // day of month (no leading zero)\n .replace(/\\bdd\\b/, 'DD') // day of month\n .replace(/\\bo\\b/, 'DDD') // day of the year (no leading zero)\n .replace(/\\boo\\b/, 'DDDD') // day of the year\n .replace(/\\bM\\b/, 'MMM') // month name short\n .replace(/\\bMM\\b/, 'MMMM') // month name long\n .replace(/\\bm\\b/, 'M') // month of year (no leading)\n .replace(/\\bmm\\b/, 'MM') // month of year\n .replace(/\\by\\b/, 'YY') // year (two digits)\n .replace(/\\byy\\b/, 'YYYY'); // year (four digits)\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (this.dialogVisible && changes['searchGridData']) {\n this.loading = false;\n }\n\n this._setFocusFilter();\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public getGridData() {\n return this.searchGridData;\n }\n\n public getLookupSuggestions() {\n return this.lookupSuggestions;\n }\n\n protected makeSearchRequestParams(event: any) {\n const filters = this.formGroupDialog?.getRawValue();\n const params = { ...event, filterData: filters };\n const { multiSortMeta } = event;\n this.multiSortMeta = multiSortMeta || this.multiSortMeta;\n\n return params;\n }\n\n public lazyLoadGrid(event: any) {\n // Ao definir uma ordenação na tabela do lookup esse método é chamado 2 vezes https://github.com/primefaces/primeng/issues/5480\n const params = this.makeSearchRequestParams(event);\n this.onSearchRequest.next(params);\n }\n\n public onCompleteMethod(event: AutoCompleteCompleteEvent): void {\n if (!this.autocompleteForceSelection) {\n this.onChange?.(this.value === '' ? null : this.value);\n }\n\n this.onLookupRequest.next(event.query);\n }\n\n public setDefaultFilters() {\n if (!this.defaultFilter) return;\n\n this.defaultFilter\n .filter(({ field }) => this.formGroupDialog?.contains(field) && !this.formGroupDialog?.get([field])?.dirty)\n .forEach(({ value, field }) => {\n this.formGroupDialog?.get([field])?.patchValue(value instanceof Function ? value() : value);\n });\n }\n\n @CheckDisabled()\n public async showDialog() {\n this.setDefaultFilters();\n this.searchGridData = [];\n this.onTouched?.();\n this.hotkeysService.pause([...this.hotkeysService.hotkeys]);\n this.setHotkeys();\n\n let selected: any = [];\n if (this.multiple && this.value) {\n selected = selected.concat(this.value);\n } else if (this.value) {\n selected = [this.value];\n }\n this.selected = selected;\n\n this.loading = true;\n this.dialogVisible = true;\n }\n\n setInputs(componentRef: any, configs: any, form: any) {\n componentRef.instance.configs = configs;\n componentRef.instance.form = form;\n\n // chame ngOnChanges manualmente se necessário\n if (typeof componentRef.instance.ngOnChanges === 'function') {\n componentRef.instance.ngOnChanges();\n }\n }\n\n onVisibleChange(visibilityState: boolean) {\n if (visibilityState) {\n return;\n }\n this.hideDialog();\n }\n public hideDialog() {\n if (!this.autocomplete) {\n return;\n }\n const { inputEL, multiInputEl } = this.autocomplete;\n this.dialogVisible = false;\n this.collapsed = false;\n this.hotkeysService.unpause([...this.hotkeysService.pausedHotkeys]);\n if (this.multiple) {\n multiInputEl?.nativeElement?.focus();\n } else {\n inputEL?.nativeElement?.focus();\n }\n }\n\n public search() {\n this.resetTable();\n this.collapsed = true;\n const dialogContainer = this.lookupDialogContainer()?.nativeElement;\n if (dialogContainer) {\n dialogContainer.scrollIntoView({ behavior: 'smooth' });\n }\n }\n\n public clear() {\n this.formGroupDialog?.reset(this.originalFormValues);\n this.resetTable();\n this.onClearButtonClick.emit();\n }\n\n protected resetTable() {\n this.table?.reset();\n }\n\n public select() {\n if (!this.selected.length) return;\n\n const selected = this.selected && (this.multiple ? this.selected : this.selected[0]);\n this.value = selected;\n this.onSelect.next(selected);\n this.hideDialog();\n }\n\n public onSelectionChange(selected: any) {\n if (!selected) return;\n if (Array.isArray(selected)) this.selected = selected;\n else this.selected = [selected];\n }\n\n public registerOnChange(onChange: Function) {\n this.onChange = (value: any) => {\n this.writeValue(value);\n onChange(value);\n };\n }\n\n public registerOnTouched(onTouched: Function) {\n this.onTouched = onTouched;\n }\n\n public writeValue(value: any) {\n this.value = value;\n }\n\n public setDisabledState(disabled: boolean) {\n this.disabled = disabled;\n }\n\n public getFieldValue(obj: any, path: string) {\n return path.split('.').reduce((result, prop) => (result[prop] === undefined ? '' : result[prop]), obj);\n }\n\n public getBadgeFromValue(\n value: unknown,\n options: {\n label: string;\n value: unknown;\n badge?: {\n type?: BadgeComponent['type'];\n color?: BadgeComponent['color'];\n iconClass?: BadgeComponent['iconClass'];\n iconPosition?: BadgeComponent['iconPosition'];\n };\n }[],\n ) {\n return options?.find((opt) => opt.value === value)?.badge;\n }\n\n public getLabelForValue(\n value: unknown,\n options: {\n label: string;\n value: unknown;\n badge?: {\n type?: BadgeComponent['type'];\n color?: BadgeComponent['color'];\n iconClass?: BadgeComponent['iconClass'];\n iconPosition?: BadgeComponent['iconPosition'];\n };\n }[],\n ) {\n if (!options) return `${value}`;\n\n const option = options.find((opt) => opt.value === value);\n return option ? option.label : `${value}`;\n }\n\n public isBooleanValue(obj: any, path: string) {\n const value = this.getFieldValue(obj, path);\n if (value === true || value === false) return true;\n else return false;\n }\n\n public getBooleanLabel(obj: any, path: string, optionsLabel: BooleanOptionsLabel | undefined) {\n if (!optionsLabel) {\n return;\n }\n if (this.getFieldValue(obj, path)) {\n return optionsLabel.true;\n } else {\n return optionsLabel.false;\n }\n }\n\n public isNumber(obj: any, path: string) {\n return !new BigNumber(this.getFieldValue(obj, path)).isNaN();\n }\n\n public setHotkeys() {\n const clearHotkey = this.newHotkey('alt+shift+l', this.clear.bind(this));\n const findHotkey = this.newHotkey('alt+shift+f', this.search.bind(this));\n const hideHotkey = this.newHotkey('alt+shift+c', this.hideDialog.bind(this));\n const selectHotkey = this.newHotkey('alt+shift+s', this.select.bind(this));\n\n const bindedHotkeys = [clearHotkey, findHotkey, hideHotkey, selectHotkey];\n bindedHotkeys.forEach((hotkey: Hotkey) => this.hotkeysService.add(hotkey));\n }\n\n private newHotkey(combo: string, fn: Function): Hotkey {\n return new Hotkey(combo, () => {\n fn();\n return false;\n }, ['INPUT', 'SELECT', 'TEXTAREA']);\n }\n\n public filterToggle() {\n if (this.animating) return;\n\n this.animating = true;\n this.collapsed = !this.collapsed;\n }\n\n public onToggleDone() {\n this.animating = false;\n }\n\n /**\n * Calculate the table column size. The minimum value is 14.286em, which is equals to 200px duo to the current font size.\n * @param label Column name.\n */\n public getColWidth(label: string) {\n const size = label.length;\n if (size < 14.286) return `14.286em`;\n return `${size}em`;\n }\n\n public getScale(scale: any): number {\n return this.isFunction(scale) ? scale() : scale;\n }\n\n private isFunction(value: any): boolean {\n return value instanceof Function;\n }\n\n public getIntegerMaskConfig(col: FormField): MaskConfig {\n return {\n scale: 0,\n thousandsSeparator: col.numberLocaleOptions?.thousandsSeparator,\n prefix: '',\n };\n }\n\n public getDoubleMaskConfig(col: FormField): MaskConfig {\n return {\n scale: this.getScale(col.scale),\n decimalSeparator: col.numberLocaleOptions?.decimalSeparator,\n thousandsSeparator: col.numberLocaleOptions?.thousandsSeparator,\n prefix: '',\n };\n }\n\n public getMoneyMaskConfig(col: FormField): MaskConfig {\n return {\n scale: this.getScale(col.scale),\n decimalSeparator: col.numberLocaleOptions?.decimalSeparator,\n thousandsSeparator: col.numberLocaleOptions?.thousandsSeparator,\n prefix: col.numberLocaleOptions?.currencySymbol,\n };\n }\n\n public getNumberMaskConfig(col: FormField): MaskConfig {\n return {\n scale: this.getScale(col.scale),\n decimalSeparator: col.numberLocaleOptions?.decimalSeparator,\n thousandsSeparator: col.numberLocaleOptions?.thousandsSeparator,\n prefix: col.numberLocaleOptions?.currencySymbol,\n };\n }\n\n public parseValueMaskValue(col: FormField, rowData: any) {\n const _mask = col.mask;\n const isFunction = this.isFunction(_mask);\n return isFunction ? (_mask as Function)({ value: rowData }) : _mask;\n }\n\n public onTableRowDoubleClick(rowData: any): void {\n this.selected = [rowData];\n this.select();\n }\n\n private _setFocusFilter() {\n if (this.dialogVisible && !this.collapsed) {\n const input = this.lookupDialogContainer()?.nativeElement.querySelector('input');\n if (input) {\n (input as HTMLInputElement).focus();\n }\n }\n }\n\n private _subscribeEvents(): void {\n this.onSearchRequest.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => (this.loading = true));\n\n this.onSelect.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => this.onChange?.(this.value));\n\n this.onUnselect.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => this.onChange?.(this.value));\n\n this.onClear.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {\n if (this.multiple) {\n return;\n }\n this.onChange?.(null);\n });\n\n this.onFocus.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {\n this.onTouched?.();\n });\n\n this.onBlur.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: Event) => {\n if (isNullOrUndefined(this.lookupDisplayField)) return;\n\n const target = event.target as HTMLInputElement;\n const currentValue = this.value && this.value[this.lookupDisplayField];\n const { value } = target;\n\n if (this.multiple || !currentValue || currentValue == value) return;\n\n const newValue = '';\n target.value = newValue;\n this.onChange?.(newValue);\n });\n }\n}\n\nexport interface BooleanOptionsLabelConfig {\n true: string;\n false: string;\n empty?: string;\n clear?: string;\n}\n\nexport class BooleanOptionsLabel {\n public true: string;\n public false: string;\n public empty?: string;\n public clear?: string;\n\n constructor(config: BooleanOptionsLabelConfig) {\n this.true = config.true;\n this.false = config.false;\n this.empty = config.empty;\n this.clear = config.clear;\n }\n}\n","<div [ngClass]=\"{ inputgroup: showSearch }\">\n <p-autoComplete\n #autocomplete\n [(ngModel)]=\"value\"\n [disabled]=\"disabled\"\n [dataKey]=\"dataKey\"\n [multiple]=\"multiple\"\n [inputId]=\"id + '-autocomplete'\"\n [forceSelection]=\"autocompleteForceSelection\"\n [suggestions]=\"getLookupSuggestions()\"\n (completeMethod)=\"onCompleteMethod($event)\"\n (onSelect)=\"onSelect.next($event)\"\n (onBlur)=\"onBlur.next($event)\"\n (onFocus)=\"onFocus.next($event)\"\n (onUnselect)=\"onUnselect.next($event)\"\n (onClear)=\"onClear.next($event)\"\n (onKeyUp)=\"onKeyUp.next($event)\"\n [field]=\"lookupDisplayField\"\n [emptyMessage]=\"lookupEmptyMessage\"\n [dropdown]=\"!showSearch\"\n [appendTo]=\"lookupAppendTo\"\n [placeholder]=\"placeholder || ' '\"\n [autoHighlight]=\"true\"\n inputStyleClass=\"mousetrap\"\n >\n </p-autoComplete>\n @if (showSearch) {\n <button\n class=\"button-addon\"\n [class.button-addon--disabled]=\"disabled\"\n [disabled]=\"disabled\"\n (click)=\"showDialog()\"\n >\n <i class=\"fa fa-search\"></i>\n </button>\n }\n</div>\n\n<s-dialog\n [(visible)]=\"dialogVisible\"\n (visibleChange)=\"onVisibleChange($event!)\"\n [header]=\"labelOptions?.searchTitle || 'platform.angular_components.advanced_search' | translate\"\n contentClassName=\"s-lookup-modal\"\n size=\"xl\"\n>\n @if (dialogVisible) {\n <div\n class=\"s-lookup-modal-container\"\n #dialogContainer\n >\n @if (searchFields && searchFields.length) {\n <div\n class=\"filter\"\n [@collapseContent]=\"\n collapsed\n ? { value: 'hidden', params: { transitionParams: transitionOptions } }\n : { value: 'visible', params: { transitionParams: transitionOptions } }\n \"\n (@collapseContent.done)=\"onToggleDone()\"\n >\n <form\n [formGroup]=\"formGroupDialog\"\n novalidate\n autocomplete=\"off\"\n >\n @if (!collapsed) {\n <div\n class=\"form-content\"\n [@childCollapseContent]=\"\n collapsed\n ? { value: ':leave', params: { transitionParams: transitionOptions } }\n : { value: ':enter', params: { transitionParams: transitionOptions } }\n \"\n >\n <div class=\"filter-title sds-section-title\">\n {{ labelOptions?.filterTitle || 'platform.angular_components.filters' | translate }}\n </div>\n <div class=\"form-fields\">\n @let configs =\n [\n {\n type: rowType,\n fields: searchFields,\n },\n ];\n\n <s-dynamic-form\n [configs]=\"configs\"\n [form]=\"formGroupDialog\"\n >\n </s-dynamic-form>\n </div>\n <div class=\"ui-g\">\n <div class=\"ui-g-12\">\n <s-button\n [id]=\"id + '-filter-button'\"\n type=\"submit\"\n [label]=\"\n labelOptions?.filterLabel || 'platform.angular_components.filter'\n | translate\n \"\n (clicked)=\"search()\"\n sTooltip=\"(ALT + SHIFT + F)\"\n >\n </s-button>\n <s-button\n [id]=\"id + '-clear-button'\"\n type=\"button\"\n [label]=\"\n labelOptions?.clearLabel || 'platform.angular_components.clear'\n | translate\n \"\n (clicked)=\"clear()\"\n priority=\"link\"\n sTooltip=\"(ALT + SHIFT + L)\"\n >\n </s-button>\n </div>\n </div>\n </div>\n }\n </form>\n </div>\n }\n @if (searchFields && searchFields.length) {\n <div class=\"filter-toggle\">\n <button\n [id]=\"id + '-filter-toggle-button'\"\n type=\"button\"\n (click)=\"filterToggle()\"\n >\n <span\n class=\"fa\"\n [ngClass]=\"{ 'fa-chevron-left': !collapsed, 'fa-chevron-right': collapsed }\"\n aria-hidden=\"true\"\n >\n </span>\n </button>\n </div>\n }\n @let isEmptyContent = !searchTotalRecords && !loading;\n <div\n class=\"content\"\n #contentContainer\n [ngClass]=\"{ 'empty-content': isEmptyContent }\"\n >\n @if (isEmptyContent) {\n <s-empty-state\n [id]=\"id + '-empty-state'\"\n [title]=\"\n labelOptions?.searchEmptyTitle || 'platform.angular_components.no_records_found' | translate\n \"\n [description]=\"searchEmptyDescription\"\n iconClass=\"fa fa-search\"\n >\n </s-empty-state>\n }\n <div class=\"content-child\">\n <p-table\n [dataKey]=\"dataKey\"\n [value]=\"getGridData()\"\n [columns]=\"searchGridFields\"\n [lazy]=\"true\"\n [scrollable]=\"true\"\n [paginator]=\"true\"\n sortMode=\"multiple\"\n [totalRecords]=\"searchTotalRecords\"\n [rows]=\"10\"\n [selection]=\"selected\"\n (onLazyLoad)=\"lazyLoadGrid($event)\"\n [multiSortMeta]=\"multiSortMeta\"\n [attr.data-hidden]=\"!searchTotalRecords && !loading\"\n [selectionMode]=\"multiple ? 'multiple' : 'single'\"\n (selectionChange)=\"onSelectionChange($event)\"\n *sLoadingState=\"{ loading: loading, indicator: indicatorLogo }\"\n >\n <ng-template pTemplate=\"caption\">\n <div>\n @if (showAddOption) {\n <s-button\n priority=\"default\"\n [label]=\"'platform.angular_components.add' | translate\"\n (clicked)=\"onAdd.emit()\"\n >\n </s-button>\n }\n @if (showEditOption) {\n <s-button\n priority=\"default\"\n [label]=\"'platform.angular_components.edit' | translate\"\n [disabled]=\"selected.length !== 1\"\n (clicked)=\"onEdit.emit(this.selected[0])\"\n >\n </s-button>\n }\n @if (showRemoveOption) {\n <s-button\n priority=\"default\"\n [label]=\"'platform.angular_components.remove' | translate\"\n [disabled]=\"!selected.length\"\n (clicked)=\"onRemove.emit(this.selected)\"\n >\n </s-button>\n }\n </div>\n </ng-template>\n <ng-template\n pTemplate=\"colgroup\"\n let-columns\n >\n <colgroup>\n @if (multiple) {\n <col style=\"width: 50px\" />\n }\n\n @for (col of columns; track $index) {\n <col [style.width]=\"col.width\" />\n }\n </colgroup>\n </ng-template>\n <ng-template\n pTemplate=\"header\"\n let-columns\n >\n <tr>\n @if (multiple) {\n <th style=\"width: 50px\">\n <s-table-header-checkbox\n [useAllObject]=\"lookupRowProps ? false : true\"\n [rowProps]=\"lookupRowProps\"\n >\n </s-table-header-checkbox>\n </th>\n }\n @for (col of columns; track $index) {\n <th\n [style.width]=\"col.width\"\n [pSortableColumn]=\"col.name\"\n [pSortableColumnDisabled]=\"sortableColumnsDisabled.includes(col.name)\"\n >\n <div class=\"senior-header\">\n <span class=\"senior-header-title\">{{ col.label }}</span>\n @if (!sortableColumnsDisabled.includes(col.name)) {\n <p-sortIcon [field]=\"col.name\"> </p-sortIcon>\n }\n </div>\n </th>\n }\n </tr>\n </ng-template>\n <ng-template\n pTemplate=\"body\"\n let-rowData\n let-columns\n let-rowIndex=\"rowIndex\"\n >\n <tr\n sNavigation\n [pSelectableRow]=\"rowData\"\n [pSelectableRowIndex]=\"rowIndex\"\n sDoubleClick\n (onDoubleClick)=\"onTableRowDoubleClick(rowData)\"\n >\n @if (multiple) {\n <td\n style=\"width: 50px\"\n tabindex=\"0\"\n >\n <p-tableCheckbox\n [value]=\"rowData\"\n [pSelectableRow]=\"rowData\"\n >\n </p-tableCheckbox>\n </td>\n }\n @for (col of searchGridFields; track $index) {\n <td\n [style.width]=\"col.width\"\n [ngSwitch]=\"col.type\"\n tabindex=\"0\"\n >\n @switch (col.type) {\n @case ('Boolean') {\n <ng-container\n *ngIf=\"isBooleanValue(rowData, col.name); else emptyTemplate\"\n >\n <span>{{\n getBooleanLabel(rowData, col.name, col.optionsLabel)\n }}</span>\n </ng-container>\n }\n @case ('Date') {\n <ng-container\n *ngIf=\"getFieldValue(rowData, col.name); else emptyTemplate\"\n >\n <span>{{\n getFieldValue(rowData, col.name)\n | localizedDate\n : col.calendarLocaleOptions?.dateFormat || 'L'\n | async\n }}</span>\n </ng-container>\n }\n @case ('DateTime') {\n <ng-container\n *ngIf=\"getFieldValue(rowData, col.name); else emptyTemplate\"\n >\n <span>{{\n getFieldValue(rowData, col.name) | localizedDate | async\n }}</span>\n </ng-container>\n }\n @case ('LocalDateTime') {\n <ng-container\n *ngIf=\"getFieldValue(rowData, col.name); else emptyTemplate\"\n >\n <span>{{\n getFieldValue(rowData, col.name) | localizedDate | async\n }}</span>\n </ng-container>\n }\n @case ('Time') {\n <ng-container\n *ngIf=\"getFieldValue(rowData, col.name); else emptyTemplate\"\n >\n <span>{{\n getFieldValue(rowData, col.name)\n | localizedTime\n : col.calendarLocaleOptions?.dateFormat || 'LTS'\n | async\n }}</span>\n </ng-container>\n }\n @case ('Integer') {\n <ng-container *ngIf=\"isNumber(rowData, col.name); else emptyTemplate\">\n <span>\n {{\n getFieldValue(rowData, col.name)\n | localizedBignumber: getIntegerMaskConfig(col)\n | async\n }}\n </span>\n </ng-container>\n }\n @case ('Double') {\n <ng-container *ngIf=\"isNumber(rowData, col.name); else emptyTemplate\">\n <span>\n {{\n getFieldValue(rowData, col.name)\n | localizedBignumber: getDoubleMaskConfig(col)\n | async\n }}\n </span>\n </ng-container>\n }\n @case ('Money') {\n <ng-container *ngIf=\"isNumber(rowData, col.name); else emptyTemplate\">\n <span>\n {{\n getFieldValue(rowData, col.name)\n | localizedBignumber: getMoneyMaskConfig(col)\n | async\n }}\n </span>\n </ng-container>\n }\n @case ('Number') {\n <ng-container *ngIf=\"isNumber(rowData, col.name); else emptyTemplate\">\n <span>\n {{\n getFieldValue(rowData, col.name)\n | localizedBignumber: getNumberMaskConfig(col)\n | async\n }}\n </span>\n </ng-container>\n }\n @case ('Enum') {\n <ng-container\n *ngIf=\"\n getLabelForValue(getFieldValue(rowData, col.name), col.options);\n else emptyTemplate\n \"\n >\n <ng-container\n *ngIf=\"\n getBadgeFromValue(\n getFieldValue(rowData, col.name),\n col.options\n );\n then withBadge;\n else withoutBadge\n \"\n ></ng-container>\n <ng-template #withBadge>\n <s-badge\n [text]=\"\n getLabelForValue(\n getFieldValue(rowData, col.name),\n col.options\n )\n \"\n [color]=\"\n getBadgeFromValue(\n getFieldValue(rowData, col.name),\n col.options\n )?.color\n \"\n [type]=\"\n getBadgeFromValue(\n getFieldValue(rowData, col.name),\n col.options\n )?.type\n \"\n [iconClass]=\"\n getBadgeFromValue(\n getFieldValue(rowData, col.name),\n col.options\n )?.iconClass\n \"\n [iconPosition]=\"\n getBadgeFromValue(\n getFieldValue(rowData, col.name),\n col.options\n )?.iconPosition\n \"\n >\n </s-badge>\n </ng-template>\n <ng-template #withoutBadge>\n <span>\n {{\n getLabelForValue(\n getFieldValue(rowData, col.name),\n col.options\n )\n }}\n </span>\n </ng-template>\n </ng-container>\n }\n @default {\n @if (col.mask && parseValueMaskValue(col, rowData)) {\n <ng-container\n *ngIf=\"\n isNumber(rowData, col.name) ||\n getFieldValue(rowData, col.name)\n \"\n >\n <span>{{\n getFieldValue(rowData, col.name)\n | sMaskFormatter: parseValueMaskValue(col, rowData)\n }}</span>\n </ng-container>\n } @else {\n <ng-container\n *ngIf=\"\n isNumber(rowData, col.name) ||\n getFieldValue(rowData, col.name);\n else emptyTemplate\n \"\n >\n <span>{{ getFieldValue(rowData, col.name) }}</span>\n </ng-container>\n }\n }\n }\n </td>\n }\n </tr>\n </ng-template>\n <ng-template pTemplate=\"paginatorright\">\n <span [attr.data-hidden]=\"loading\">\n {{ printRecordTotalizer() }}\n </span>\n </ng-template>\n </p-table>\n </div>\n </div>\n </div>\n\n <ng-template sTemplate=\"footer\">\n <div class=\"flex w-full justify-end\">\n <s-button\n [id]=\"id + '-cancel-button'\"\n type=\"button\"\n priority=\"link\"\n [label]=\"labelOptions?.cancelLabel || 'platform.angular_components.cancel' | translate\"\n (clicked)=\"hideDialog()\"\n sTooltip=\"(ALT + SHIFT + C)\"\n >\n </s-button>\n <s-button\n [id]=\"id + '-select-button'\"\n type=\"button\"\n [label]=\"labelOptions?.selectLabel || 'platform.angular_components.select' | translate\"\n (clicked)=\"select()\"\n sTooltip=\"(ALT + SHIFT + S)\"\n [disabled]=\"!selected.length\"\n >\n </s-button>\n </div>\n </ng-template>\n }\n</s-dialog>\n\n<ng-template #emptyTemplate>\n <span class=\"sds-empty-value\">\n {{ labelOptions?.emptyFieldLabel || 'platform.angular_components.not_informed' | translate }}\n </span>\n</ng-template>\n","import { Component, Input } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { ProfilePictureField } from '../../configurations/fields/profile-picture';\n\n@Component({\n templateUrl: \"./profile-picture-field.component.html\",\n})\nexport class ProfilePictureFieldComponent {\n @Input({ required: true })\n public field!: ProfilePictureField;\n\n @Input({ required: true })\n public formControl!: FormControl;\n}\n","<s-field-label [field]=\"field\"></s-field-label>\n\n<s-profile-picture-picker\n [formControl]=\"formControl\"\n [simpleTitle]=\"field.simpleTitle\"\n [actionTitle]=\"field.actionTitle\"\n [subtitle]=\"field.subtitle\"\n [aspectRatio]=\"field.aspectRatio\"\n [cropperLabelsConfig]=\"field.cropperLabelsConfig\"\n [removeButtonLabel]=\"field.removeButtonLabel\"\n [changeButtonLabel]=\"field.changeButtonLabel\"\n [confirmationTexts]=\"field.confirmationTexts\"\n [maxFileSize]=\"field.maxFileSize\"\n [accept]=\"field.accept\"\n [supportedExtensions]=\"field.supportedExtensions\"\n (changedImage)=\"field.onChangeImage ? field.onChangeImage($event) : null\"\n (removedImage)=\"field.onRemovedImage ? field.onRemovedImage() : null\"\n (invalidFile)=\"field.onInvalidFile ? field.onInvalidFile($event) : null\">\n</s-profile-picture-picker>\n","import { Component, Input } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\n\nimport { Fieldset } from '../../../configurations/structure/fieldset';\nimport { BaseStructureComponentConfig } from '../base-structure-component';\n\n@Component({\n templateUrl: './fieldset.component.html',\n})\nexport class FieldsetComponent implements BaseStructureComponentConfig {\n @Input()\n public id?: string;\n\n @Input({ required: true })\n public config!: Fieldset;\n\n @Input({ required: true })\n public group!: UntypedFormGroup;\n\n @Input()\n public errorMessages: any;\n}\n\n","<s-fieldset\n [toggleable]=\"true\"\n (onBeforeToggle)=\"config.beforeToggle ? config.beforeToggle($event) : 'null'\"\n (onAfterToggle)=\"config.afterToggle ? config.afterToggle($event) : 'null'\"\n [legend]=\"config.header ? config.header : ''\"\n>\n @for (conf of config.configs; let i = $index; track i) {\n <ng-container\n *sDynamicForm=\"{ id: id, config: conf, group: group, errorMessages: errorMessages }\"\n ></ng-container>\n }\n</s-fieldset>\n","import { Component, Input } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { Section } from '../../../configurations/structure/section';\nimport { BaseStructureComponentConfig } from '../base-structure-component';\n\n@Component({\n selector: 's-section',\n templateUrl: './section.component.html',\n styleUrls: ['./section.component.scss'],\n})\nexport class SectionComponent implements BaseStructureComponentConfig {\n @Input()\n public id?: string;\n\n @Input({ required: true })\n public config!: Section;\n\n @Input({ required: true })\n public group!: UntypedFormGroup;\n\n @Input()\n public errorMessages: any;\n\n get flexContainer() {\n return this.config.isFlex;\n }\n\n get configs() {\n const _configs: any[] = this.config?.configs || [];\n return _configs.filter((x: any) => x.visible === undefined || x.visible());\n }\n}\n\n","@if (config.header) {\n <h3 class=\"sds-section-title\">\n {{ config.header }}\n </h3>\n}\n\n<section\n [class.flex-container]=\"flexContainer\"\n [style.justify-content]=\"config.justifyContent\"\n [style.align-items]=\"config.alignItems\"\n>\n @for (conf of configs; let i = $index; track i) {\n <ng-container\n *sDynamicForm=\"{ id: id, config: conf, group: group, errorMessages: errorMessages }\"\n ></ng-container>\n }\n</section>\n\n","import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, Input } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { AutocompleteField } from '../../configurations/fields/autocomplete-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\n\n@Component({\n templateUrl: 'autocomplete-field.component.html',\n})\nexport class AutocompleteFieldComponent implements BaseFieldComponentConfig, AfterViewInit {\n @Input({ required: true })\n public field!: AutocompleteField;\n\n @Input({ required: true })\n public formControl!: FormControl;\n\n public inputRef: HTMLElement | null = null;\n\n constructor(\n private readonly changeDetectorRef: ChangeDetectorRef,\n private readonly elementRef: ElementRef,\n ) { }\n\n public ngAfterViewInit(): void {\n this.setInputRef();\n this.changeDetectorRef.detectChanges();\n }\n\n private setInputRef(): void {\n this.inputRef = this.elementRef.nativeElement.querySelector('input');\n }\n}\n\n","@if (inputRef) {\n <s-field-label\n [field]=\"field\"\n [fieldContainerRef]=\"inputRef\"\n ></s-field-label>\n}\n\n<div [sTooltip]=\"field.tooltip\">\n <s-lookup\n [id]=\"field.id || field.name\"\n [multiple]=\"field.multiple!\"\n [placeholder]=\"field.placeholder\"\n [formControl]=\"formControl\"\n [lookupSuggestions]=\"field.suggestions\"\n [dataKey]=\"field.dataKey!\"\n (onLookupRequest)=\"field.onSearch ? field.onSearch($event) : null\"\n [lookupDisplayField]=\"field.displayField\"\n [showSearch]=\"false\"\n [lookupAppendTo]=\"field.appendTo\"\n (onSelect)=\"field.onSelect ? field.onSelect($event) : null\"\n (onUnselect)=\"field.onUnselect ? field.onUnselect($event) : null\"\n (onClear)=\"field.onClear ? field.onClear($event) : null\"\n (onBlur)=\"field.onBlur ? field.onBlur($event) : null\"\n [lookupEmptyMessage]=\"field.emptyMessage\"\n >\n </s-lookup>\n</div>\n","import { FormControl } from '@angular/forms';\nimport { AutocompleteField } from '../configurations/fields/autocomplete-field';\nimport { BlobField } from '../configurations/fields/blob-field';\nimport { BooleanField } from '../configurations/fields/boolean-field';\nimport { CalendarField } from '../configurations/fields/calendar-field';\nimport { CheckboxField } from '../configurations/fields/checkbox-field';\nimport { ChipsField } from '../configurations/fields/chips-field';\nimport { CountryPhonePickerField } from '../configurations/fields/country-phone-picker-field';\nimport { CurrencyField } from '../configurations/fields/currency-field';\nimport { EditorField } from '../configurations/fields/editor-field';\nimport { LookupField } from '../configurations/fields/lookup-field';\nimport { NumberField } from '../configurations/fields/number-field';\nimport { PasswordField } from '../configurations/fields/password-field';\nimport { RadioButtonField } from '../configurations/fields/radio-button-field';\nimport { SelectField } from '../configurations/fields/select-field';\nimport { SliderField } from '../configurations/fields/slider-field';\nimport { TextAreaField } from '../configurations/fields/text-area-field';\nimport { TextAreaIAField } from '../configurations/fields/text-area-ia-field';\nimport { TextField } from '../configurations/fields/text-field';\n\nimport { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\n\nexport interface BaseFieldComponentConfig {\n field:\n | AutocompleteField\n | BooleanField\n | BlobField\n | CalendarField\n | CheckboxField\n | ChipsField\n | CountryPhonePickerField\n | CurrencyField\n | EditorField\n | LookupField\n | NumberField\n | PasswordField\n | RadioButtonField\n | SelectField\n | SliderField\n | TextAreaField\n | TextAreaIAField\n | TextField;\n formControl: FormControl;\n}\n\nexport class BaseFieldComponent {\n public isFunction(value: any): boolean {\n return value instanceof Function;\n }\n\n public trigger(callback: any) {\n return callback();\n }\n\n public fieldPropertyIsDisabled<T extends { disabled?: Function | boolean }>(fieldProperty: T): boolean {\n if (!isNullOrUndefined(fieldProperty)) {\n return typeof fieldProperty.disabled === 'function' ? fieldProperty.disabled() : !!fieldProperty.disabled;\n }\n return false;\n }\n\n public getFieldPropertyMask(fieldData: Function | string) {\n return typeof fieldData === 'function' ? fieldData() : fieldData;\n }\n\n public getFieldProperty<T, K>(property: T | K) {\n return typeof property === 'function' ? (property as Function)() : property;\n }\n}\n\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { FormControl } from '@angular/forms';\n\nimport { Subject } from 'rxjs';\nimport { first, takeUntil } from 'rxjs/operators';\n\nimport { LocaleService } from '@seniorsistemas/angular-components/locale';\nimport { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\nimport { FieldType } from '../../configurations/field-type';\nimport { BignumberField } from '../../configurations/fields/bignumber-field';\nimport { BaseFieldComponent, BaseFieldComponentConfig } from '../base-field-component';\n\n\n@Component({\n templateUrl: 'bignumber-field.component.html',\n styleUrls: ['./bignumber-field.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class BignumberFieldComponent\n extends BaseFieldComponent\n implements OnInit, AfterViewInit, OnDestroy, BaseFieldComponentConfig {\n @Input({ required: true })\n public field!: BignumberField;\n\n @Input({ required: true })\n public formControl!: FormControl;\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onInput: EventEmitter<any> = new EventEmitter();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onFocus: EventEmitter<any> = new EventEmitter();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onComplete: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('inputRef') inputRef: ElementRef | null = null;\n\n private ngUnsubscribe = new Subject<void>();\n\n constructor(\n private readonly localeService: LocaleService,\n private readonly changeDetectorRef: ChangeDetectorRef,\n ) {\n super();\n }\n\n public ngOnInit() {\n this.onLocaleService();\n\n this.onFocus.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: FocusEvent) => {\n if (this.field.onFocus) {\n this.field.onFocus(event);\n }\n });\n\n this.onInput.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field.onInput) {\n this.field.onInput(event);\n }\n });\n\n this.onComplete.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field.onComplete) {\n this.field.onComplete(event);\n }\n });\n this.onScale();\n }\n\n public ngAfterViewInit(): void {\n this.changeDetectorRef.detectChanges();\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public get fieldType() {\n return FieldType;\n }\n\n private onLocaleService(): void {\n this.localeService\n .getLocale()\n .pipe(first())\n .subscribe({\n next: () => {\n if (!this.field.numberLocaleOptions?.decimalSeparator) {\n this.field.numberLocaleOptions = {\n ...this.field.numberLocaleOptions,\n decimalSeparator: this.localeService.getDecimalSeparator() ?? '',\n };\n }\n\n if (!this.field.numberLocaleOptions?.thousandsSeparator) {\n this.field.numberLocaleOptions = {\n ...this.field.numberLocaleOptions,\n thousandsSeparator: this.localeService.getGroupingSeparator() ?? '',\n };\n }\n\n if (!this.field.numberLocaleOptions?.currencySymbol) {\n this.field.numberLocaleOptions = {\n ...this.field.numberLocaleOptions,\n currencySymbol:\n this.field.type === FieldType.Integer || this.field.type === FieldType.Double\n ? ''\n : 'R$',\n };\n }\n },\n error: () =>\n (this.field.numberLocaleOptions = this.field.numberLocaleOptions ?? {\n thousandsSeparator: '.',\n decimalSeparator: ',',\n currencySymbol:\n this.field.type === FieldType.Integer || this.field.type === FieldType.Double ? '' : 'R$',\n }),\n });\n }\n\n private onScale(): void {\n // Currently, this component is used for the following types\n // FieldType.Number, FieldType.Integer and FieldType.Double\n if (isNullOrUndefined(this.field.scale)) {\n this.field.scale = this.field.type === FieldType.Integer ? 0 : 2;\n }\n }\n}\n","@if (inputRef) {\n <s-field-label\n [field]=\"field\"\n [fieldContainerRef]=\"inputRef!.nativeElement\"\n />\n}\n@if (field.mask) {\n <p-inputMask\n #inputRef\n type=\"text\"\n [inputId]=\"field.id || field.name\"\n [name]=\"field.name\"\n [mask]=\"getFieldPropertyMask(field.mask)\"\n [placeholder]=\"field.placeholder\"\n slotChar=\"_\"\n [sTooltip]=\"field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n styleClass=\"mousetrap\"\n (onBlur)=\"field.onBlur ? field.onBlur($event) : null\"\n (onFocus)=\"onFocus.next($event)\"\n (onComplete)=\"onComplete.next($event)\"\n (onInput)=\"onInput.next($event)\"\n [formControl]=\"formControl\"\n [autoClear]=\"field.autoClear\"\n >\n </p-inputMask>\n} @else {\n <div class=\"ui-inputgroup\">\n @if (field.leftAddon) {\n @if (field.leftAddon.callback) {\n <span class=\"addon-button addon-button--left\">\n <s-button\n [label]=\"field.leftAddon.label\"\n [iconClass]=\"field.leftAddon.icon\"\n [priority]=\"field.leftAddon.priority\"\n [disabled]=\"fieldPropertyIsDisabled(field.leftAddon)\"\n (clicked)=\"field.leftAddon.callback()\"\n >\n </s-button>\n </span>\n }\n @if (!field.leftAddon.callback) {\n <span class=\"ui-inputgroup-addon\">\n @if (field.leftAddon.label) {\n <span>\n {{ field.leftAddon.label }}\n </span>\n }\n @if (!field.leftAddon.label) {\n <span [ngClass]=\"field.leftAddon.icon\"></span>\n }\n </span>\n }\n }\n <input\n #inputRef\n [id]=\"field.id || field.name\"\n type=\"text\"\n [name]=\"field.name\"\n sBignumberInput\n [allowNegative]=\"field.allowNegative\"\n [precision]=\"isFunction(field.precision) ? trigger(field.precision) : field.precision\"\n [scale]=\"isFunction(field.scale) ? trigger(field.scale) : field.scale\"\n [decimalSeparator]=\"field.numberLocaleOptions?.decimalSeparator\"\n [thousandsSeparator]=\"field.numberLocaleOptions?.thousandsSeparator\"\n [alignTo]=\"field.alignTo\"\n [sTooltip]=\"field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"field.placeholder\"\n [showDelay]=\"500\"\n pInputText\n [autocomplete]=\"field.browserAutocomplete ? 'on' : 'off'\"\n [ngClass]=\"'mousetrap'\"\n (blur)=\"field.onBlur ? field.onBlur($event) : null\"\n (focus)=\"onFocus.next($event)\"\n [formControl]=\"formControl\"\n />\n @if (field.rightAddon) {\n @if (field.rightAddon.callback) {\n <span class=\"addon-button addon-button--right\">\n <s-button\n [label]=\"field.rightAddon.label\"\n [iconClass]=\"field.rightAddon.icon\"\n [priority]=\"field.rightAddon.priority!\"\n [disabled]=\"fieldPropertyIsDisabled(field.rightAddon)\"\n (clicked)=\"field.rightAddon.callback()\"\n >\n </s-button>\n </span>\n }\n @if (!field.rightAddon.callback) {\n <span class=\"ui-inputgroup-addon\">\n @if (field.rightAddon.label) {\n <span>\n {{ field.rightAddon.label }}\n </span>\n } @else {\n <span [ngClass]=\"field.rightAddon.icon\"></span>\n }\n </span>\n }\n }\n </div>\n}\n","import { Component, Input } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { BooleanField } from '../../../configurations/fields/boolean-field';\nimport { BaseFieldComponentConfig } from '../../base-field-component';\n\n@Component({\n templateUrl: 'boolean-field.component.html',\n styles: [\n `\n .horizontal-radio-buttons-container {\n gap: 20px 40px;\n .radio-button-item {\n margin: 0;\n }\n }\n `,\n ],\n})\nexport class BooleanFieldComponent implements BaseFieldComponentConfig {\n @Input({ required: true })\n public field!: BooleanField;\n\n @Input({ required: true })\n public formControl!: FormControl;\n\n public onClear(): void {\n this.formControl.reset();\n }\n}\n\n","<ng-template\n #radioButtonRender\n let-value=\"value\"\n let-label=\"label\"\n let-inputIdAppend=\"inputIdAppend\"\n>\n @let inputId = (field.id || field.name) + inputIdAppend;\n <s-radiobutton\n [name]=\"field.name\"\n [value]=\"value\"\n [formControl]=\"formControl\"\n [inputId]=\"inputId\"\n [label]=\"label\"\n (focusedInput)=\"field.onFocus ? field.onFocus($event) : null\"\n (inputFocusLost)=\"field.onBlur ? field.onBlur($event) : null\"\n />\n</ng-template>\n\n<s-field-label [field]=\"field\"></s-field-label>\n\n@if (field.verticalAlignment) {\n <div class=\"ui-g\">\n <div class=\"ui-g-12\">\n <ng-template\n *ngTemplateOutlet=\"\n radioButtonRender;\n context: { value: true, label: field.optionsLabel.true, inputIdAppend: '-1' }\n \"\n />\n </div>\n <div class=\"ui-g-12\">\n <ng-template\n *ngTemplateOutlet=\"\n radioButtonRender;\n context: { value: false, label: field.optionsLabel.false, inputIdAppend: '-2' }\n \"\n />\n </div>\n @if (!field.showClear && !!field.required && !field.required()) {\n <div class=\"ui-g-12\">\n <ng-template\n *ngTemplateOutlet=\"\n radioButtonRender;\n context: { value: null, label: field.optionsLabel.empty, inputIdAppend: '-3' }\n \"\n />\n </div>\n }\n <div>\n @if (field.showClear && !field.required?.() && !formControl.disabled) {\n <s-button\n [label]=\"field.optionsLabel.clear || 'Clear selection'\"\n (clicked)=\"onClear()\"\n priority=\"link\"\n >\n </s-button>\n }\n </div>\n </div>\n} @else {\n <div class=\"ui-g horizontal-radio-buttons-container\">\n <ng-template\n *ngTemplateOutlet=\"\n radioButtonRender;\n context: { value: true, label: field.optionsLabel.true, inputIdAppend: '-1' }\n \"\n />\n\n <ng-template\n *ngTemplateOutlet=\"\n radioButtonRender;\n context: { value: false, label: field.optionsLabel.false, inputIdAppend: '-2' }\n \"\n />\n\n <ng-template\n *ngTemplateOutlet=\"\n radioButtonRender;\n context: { value: null, label: field.optionsLabel.empty, inputIdAppend: '-3' }\n \"\n />\n\n @if (field.showClear && !field.required?.() && !formControl.disabled) {\n <s-button\n style=\"margin-left: 40px\"\n [label]=\"field.optionsLabel.clear || 'Clear selection'\"\n (clicked)=\"onClear()\"\n priority=\"link\"\n >\n </s-button>\n }\n </div>\n}\n","import { Component, Input } from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\nimport { BooleanSwitchField } from '../../../configurations/fields/boolean-switch-field';\nimport { BaseFieldComponentConfig } from '../../base-field-component';\n\n@Component({\n templateUrl: 'boolean-switch-field.component.html',\n})\nexport class BooleanSwitchFieldComponent implements BaseFieldComponentConfig {\n @Input({ required: true })\n public field!: BooleanSwitchField;\n\n @Input({ required: true })\n public formControl!: UntypedFormControl;\n}\n\n","<s-field-label [field]=\"field\"></s-field-label>\n\n<div class=\"ui-grid ui-grid-responsive ui-grid-pad p-fluid\">\n <div class=\"ui-grid-row\">\n <div class=\"i-grid-col-1\">\n <s-switch\n [id]=\"field.id || field.name\"\n [inputName]=\"field.name\"\n [formControl]=\"formControl\"\n [sTooltip]=\"field.tooltip\"\n tooltipPosition=\"top\"\n (valueChanged)=\"field.onChange ? field.onChange($event) : null\"\n >\n </s-switch>\n </div>\n @if (field.optionsLabel) {\n <div class=\"i-grid-col-1\">\n @if (formControl.value) {\n <span>{{ field.optionsLabel.true }}</span>\n } @else {\n <span>{{ field.optionsLabel.false }}</span>\n }\n </div>\n }\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { ButtonField } from '../../configurations/fields/button-field';\n\n@Component({\n selector: 's-button-field',\n templateUrl: './button-field.component.html',\n styleUrl: './button-field.component.scss',\n})\nexport class ButtonFieldComponent {\n @Input({ required: true }) field!: ButtonField;\n\n clickedButton($event: Event) {\n if (this.field.onClick) {\n this.field.onClick($event);\n }\n }\n\n handleMouseEnter() {\n if (this.field.mouseEnter) {\n this.field.mouseEnter(this.field);\n }\n }\n\n handleMouseLeave() {\n if (this.field.mouseLeave) {\n this.field.mouseLeave(this.field);\n }\n }\n}\n\n","<section [class.full-width]=\"field.fullWidth\" [class.fit-content]=\"!field.fullWidth\">\n <s-button\n #button\n [label]=\"field.label\"\n [priority]=\"field.priority\"\n [iconClass]=\"field.iconClass\"\n [disabled]=\"field.disabled\"\n [auxiliary]=\"field.auxiliary\"\n [caret]=\"field.caret\"\n [id]=\"field.id\"\n [tooltip]=\"field.tooltip ? field.tooltip : button.tooltip\"\n (clicked)=\"clickedButton($event)\"\n [iconColor]=\"field.iconColor\"\n [badge]=\"field.badge\"\n [animation]=\"field.animation\"\n [slide]=\"field.slide\"\n [menuOptions]=\"field.menuOptions\"\n [baseZIndex]=\"field.baseZIndex\"\n [styleClass]=\"field.styleClass ? field.styleClass : button.styleClass\"\n [rightIconClass]=\"field.rightIconClass\"\n [tooltipPosition]=\"field.tooltipPosition ? field.tooltipPosition : button.tooltipPosition\"\n [type]=\"field.buttonType\"\n [size]=\"field.buttonSize\"\n (mouseenter)=\"handleMouseEnter()\"\n (mouseleave)=\"handleMouseLeave()\">\n </s-button>\n</section>\n","import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, inject, Input, OnInit, ViewChild } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\n\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { PrimeNG } from \"primeng/config\";\nimport { CalendarField } from '../../configurations/fields/calendar-field';\nimport { BaseFieldComponentConfig } from \"../base-field-component\";\nimport { DatePicker } from \"primeng/datepicker\";\n\n@Component({\n templateUrl: 'calendar-field.component.html',\n})\nexport class CalendarFieldComponent implements BaseFieldComponentConfig, AfterViewInit, OnInit {\n @Input({ required: true })\n public field!: CalendarField;\n\n @Input({ required: true })\n public formControl!: FormControl;\n\n private readonly translateService = inject(TranslateService);\n\n public locale = {\n firstDayOfWeek: 0,\n dayNames: [\n this.translateService.instant(\"platform.angular_components.sunday\"),\n this.translateService.instant(\"platform.angular_components.monday\"),\n this.translateService.instant(\"platform.angular_components.tuesday\"),\n this.translateService.instant(\"platform.angular_components.wednesday\"),\n this.translateService.instant(\"platform.angular_components.thursday\"),\n this.translateService.instant(\"platform.angular_components.friday\"),\n this.translateService.instant(\"platform.angular_components.saturday\"),\n ],\n dayNamesShort: [\n this.translateService.instant(\"platform.angular_components.sunday_short\"),\n this.translateService.instant(\"platform.angular_components.monday_short\"),\n this.translateService.instant(\"platform.angular_components.tuesday_short\"),\n this.translateService.instant(\"platform.angular_components.wednesday_short\"),\n this.translateService.instant(\"platform.angular_components.thursday_short\"),\n this.translateService.instant(\"platform.angular_components.friday_short\"),\n this.translateService.instant(\"platform.angular_components.saturday_short\"),\n ],\n dayNamesMin: [\n this.translateService.instant(\"platform.angular_components.sunday_min\"),\n this.translateService.instant(\"platform.angular_components.monday_min\"),\n this.translateService.instant(\"platform.angular_components.tuesday_min\"),\n this.translateService.instant(\"platform.angular_components.wednesday_min\"),\n this.translateService.instant(\"platform.angular_components.thursday_min\"),\n this.translateService.instant(\"platform.angular_components.friday_min\"),\n this.translateService.instant(\"platform.angular_components.saturday_min\"),\n ],\n monthNames: [\n this.translateService.instant(\"platform.angular_components.january\"),\n this.translateService.instant(\"platform.angular_components.february\"),\n this.translateService.instant(\"platform.angular_components.march\"),\n this.translateService.instant(\"platform.angular_components.april\"),\n this.translateService.instant(\"platform.angular_components.may\"),\n this.translateService.instant(\"platform.angular_components.june\"),\n this.translateService.instant(\"platform.angular_components.july\"),\n this.translateService.instant(\"platform.angular_components.august\"),\n this.translateService.instant(\"platform.angular_components.september\"),\n this.translateService.instant(\"platform.angular_components.october\"),\n this.translateService.instant(\"platform.angular_components.november\"),\n this.translateService.instant(\"platform.angular_components.december\"),\n ],\n monthNamesShort: [\n this.translateService.instant(\"platform.angular_components.january_short\"),\n this.translateService.instant(\"platform.angular_components.february_short\"),\n this.translateService.instant(\"platform.angular_components.march_short\"),\n this.translateService.instant(\"platform.angular_components.april_short\"),\n this.translateService.instant(\"platform.angular_components.may_short\"),\n this.translateService.instant(\"platform.angular_components.june_short\"),\n this.translateService.instant(\"platform.angular_components.july_short\"),\n this.translateService.instant(\"platform.angular_components.august_short\"),\n this.translateService.instant(\"platform.angular_components.september_short\"),\n this.translateService.instant(\"platform.angular_components.october_short\"),\n this.translateService.instant(\"platform.angular_components.november_short\"),\n this.translateService.instant(\"platform.angular_components.december_short\"),\n ],\n today: this.translateService.instant(\"platform.angular_components.today\"),\n clear: this.translateService.instant(\"platform.angular_components.clear\"),\n dateFormat: this.translateService.instant(\"platform.angular_components.date_format\"),\n hourFormat: this.translateService.instant(\"platform.angular_components.hour_format\"),\n }\n\n private primengConfig = inject(PrimeNG);\n\n constructor(\n private readonly changeDetectorRef: ChangeDetectorRef,\n ) { }\n\n ngOnInit(): void {\n const _locale = this.field.calendarLocaleOptions || this.locale;\n this.primengConfig.setTranslation({\n ..._locale,\n })\n }\n\n @Input()\n public showTime = false;\n\n @Input()\n public timeOnly = false;\n\n @ViewChild('calendar') calendar: DatePicker | null = null;\n\n public inputRef: HTMLInputElement | undefined\n\n public ngAfterViewInit(): void {\n this.setInputRef();\n this.changeDetectorRef.detectChanges();\n }\n\n private setInputRef(): void {\n this.inputRef = this.calendar?.inputfieldViewChild?.nativeElement;\n }\n}\n","@if (inputRef) {\n <s-field-label\n [field]=\"field\"\n [fieldContainerRef]=\"inputRef\"\n >\n </s-field-label>\n}\n\n<div [sTooltip]=\"field.tooltip\">\n <!-- Remover as propriedades [showTransitionOptions] e [hideTransitionOptions] quando atualizar para o PrimeNG v10, esses atributos foram\n usados para remover um bug ocasionado pela animação do componente p-datepicker, bug explicado nas issues: #ERPROM-5534, #ERPROM-8248 e #DSN-1045. -->\n\n <!-- A diretiva sCalendarMask não está suportando seleção múltipla. A forma como ela foi escrita não permite identificar a quantidade de datas\n que estão sendo selecionadas. Removi o uso dela quando está com selectionMode=multiple. Analisar a removeção completa desta diretiva. -->\n @if(field.selectionMode !== 'multiple') {\n <p-datepicker\n #calendar\n sCalendarMask\n [inputId]=\"field.id || field.name\"\n [name]=\"field.name\"\n [showIcon]=\"true\"\n [timeOnly]=\"timeOnly\"\n [selectionMode]=\"field.selectionMode\"\n [rangeSeparator]=\"field.rangeSeparator ? field.rangeSeparator : calendar.rangeSeparator\"\n [showTime]=\"showTime\"\n [showSeconds]=\"field.showSeconds\"\n [showOnFocus]=\"field.showOnFocus\"\n [formControl]=\"formControl\"\n [icon]=\"timeOnly ? 'fa fa-clock' : 'fa fa-calendar'\"\n [minDate]=\"field.minDate\"\n [maxDate]=\"field.maxDate\"\n [defaultDate]=\"field.defaultDate ? field.defaultDate : calendar.defaultDate\"\n [dateFormat]=\"field.calendarLocaleOptions?.dateFormat || 'platform.angular_components.date_format' | translate\"\n [hourFormat]=\"field.calendarLocaleOptions?.hourFormat || 'platform.angular_components.hour_format' | translate\"\n [view]=\"field.view ? field.view : calendar.view\"\n [placeholder]=\"field.placeholder\"\n inputStyleClass=\"mousetrap\"\n [appendTo]=\"field.appendTo\"\n (onBlur)=\"field.onBlur ? field.onBlur($event) : null\"\n (onFocus)=\"field.onFocus ? field.onFocus($event) : null\"\n (onSelect)=\"field.onSelect ? field.onSelect($event) : null\"\n (onClose)=\"field.onClose ? field.onClose($event) : null\"\n (onTodayClick)=\"field.onTodayClick ? field.onTodayClick($event) : null\"\n (onClearClick)=\"field.onClearClick ? field.onClearClick($event) : null\"\n (onMonthChange)=\"field.onMonthChange ? field.onMonthChange($event) : null\"\n (onYearChange)=\"field.onYearChange ? field.onYearChange($event) : null\"\n [showTransitionOptions]=\"'0ms'\"\n [hideTransitionOptions]=\"'0ms'\"\n >\n </p-datepicker>\n }@else {\n <!-- A única diferença deste bloco é a remoção da diretiva sCalendarMask. -->\n <p-datepicker\n #calendar\n [inputId]=\"field.id || field.name\"\n [name]=\"field.name\"\n [showIcon]=\"true\"\n [timeOnly]=\"timeOnly\"\n [selectionMode]=\"field.selectionMode\"\n [rangeSeparator]=\"field.rangeSeparator ? field.rangeSeparator : calendar.rangeSeparator\"\n [showTime]=\"showTime\"\n [showSeconds]=\"field.showSeconds\"\n [showOnFocus]=\"field.showOnFocus\"\n [formControl]=\"formControl\"\n [icon]=\"timeOnly ? 'fa fa-clock' : 'fa fa-calendar'\"\n [minDate]=\"field.minDate\"\n [maxDate]=\"field.maxDate\"\n [defaultDate]=\"field.defaultDate ? field.defaultDate : calendar.defaultDate\"\n [dateFormat]=\"\n field.calendarLocaleOptions?.dateFormat || 'platform.angular_components.date_format' | translate\n \"\n [hourFormat]=\"\n field.calendarLocaleOptions?.hourFormat || 'platform.angular_components.hour_format' | translate\n \"\n [view]=\"field.view ? field.view : calendar.view\"\n [placeholder]=\"field.placeholder\"\n inputStyleClass=\"mousetrap\"\n [appendTo]=\"field.appendTo\"\n (onBlur)=\"field.onBlur ? field.onBlur($event) : null\"\n (onFocus)=\"field.onFocus ? field.onFocus($event) : null\"\n (onSelect)=\"field.onSelect ? field.onSelect($event) : null\"\n (onClose)=\"field.onClose ? field.onClose($event) : null\"\n (onTodayClick)=\"field.onTodayClick ? field.onTodayClick($event) : null\"\n (onClearClick)=\"field.onClearClick ? field.onClearClick($event) : null\"\n (onMonthChange)=\"field.onMonthChange ? field.onMonthChange($event) : null\"\n (onYearChange)=\"field.onYearChange ? field.onYearChange($event) : null\"\n [showTransitionOptions]=\"'0ms'\"\n [hideTransitionOptions]=\"'0ms'\"\n >\n </p-datepicker>\n }\n</div>\n","import { Component, Input } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { CheckboxField } from \"../../configurations/fields/checkbox-field\";\nimport { BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"checkbox-field.component.html\",\n})\nexport class CheckboxFieldComponent implements BaseFieldComponentConfig {\n @Input({ required: true })\n public field!: CheckboxField;\n\n @Input({ required: true })\n public formControl!: FormControl;\n}\n","<s-checkbox-list\n [data]=\"field.data\"\n [formControl]=\"formControl\"\n>\n</s-checkbox-list>\n","import { Clipboard } from '@angular/cdk/clipboard';\nimport { AfterViewInit, ChangeDetectorRef, Component, ElementRef, Input } from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\nimport { ChipsField } from '../../configurations/fields/chips-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\n\n@Component({\n templateUrl: './chips-field.component.html',\n styleUrls: ['./chips-field.component.scss'],\n})\nexport class ChipsFieldComponent implements BaseFieldComponentConfig, AfterViewInit {\n @Input({ required: true })\n public field!: ChipsField;\n\n @Input({ required: true })\n public formControl!: UntypedFormControl;\n\n public feedbackMessageVisible = false;\n public copyButtonVisible = true;\n public inputRef: HTMLElement | null = null;\n\n constructor(\n private readonly clipboard: Clipboard,\n private readonly changeDetectorRef: ChangeDetectorRef,\n private readonly elementRef: ElementRef,\n ) { }\n\n public onCopyFieldContent(): void {\n if (this.formControl.value) {\n this.copyButtonVisible = false;\n this.feedbackMessageVisible = true;\n\n setTimeout(() => {\n this.feedbackMessageVisible = false;\n this.copyButtonVisible = true;\n }, 3000);\n\n const content = this.formControl.value.join(this.field.separator || '\\n');\n\n this.clipboard.copy(content);\n\n if (this.field.onCopy) {\n this.field.onCopy(content);\n }\n }\n }\n\n public ngAfterViewInit(): void {\n this.setInputRef();\n this.changeDetectorRef.detectChanges();\n }\n\n private setInputRef(): void {\n this.inputRef = this.elementRef.nativeElement.querySelector('input');\n }\n}\n\n","@if (inputRef) {\n <s-field-label\n [field]=\"field\"\n [fieldContainerRef]=\"inputRef\"\n ></s-field-label>\n}\n\n<div class=\"chips-field-wrapper\">\n <div style=\"width: 100%\">\n @if (field.keyFilter) {\n <s-chips\n [inputId]=\"field.id || field.name\"\n [formControl]=\"formControl\"\n [placeholder]=\"field.placeholder\"\n [allowDuplicated]=\"false\"\n [addOnTab]=\"true\"\n [addOnBlur]=\"true\"\n (onAdd)=\"field.onAdd ? field.onAdd($event) : null\"\n (onRemove)=\"field.onRemove ? field.onRemove($event) : null\"\n (onChipClick)=\"field.onChipClick ? field.onChipClick($event) : null\"\n (onFocus)=\"field.onFocus ? field.onFocus($event) : null\"\n (onBlur)=\"field.onBlur ? field.onBlur($event) : null\"\n [keyFilter]=\"field.keyFilter\"\n >\n <ng-template\n let-item\n pTemplate=\"item\"\n >\n <span\n class=\"chip-content\"\n [sTooltip]=\"item\"\n >\n {{ item }}\n </span>\n </ng-template>\n </s-chips>\n } @else {\n <s-chips\n [inputId]=\"field.id || field.name\"\n [formControl]=\"formControl\"\n [placeholder]=\"field.placeholder\"\n [allowDuplicated]=\"false\"\n [addOnTab]=\"true\"\n [addOnBlur]=\"true\"\n (onAdd)=\"field.onAdd ? field.onAdd($event) : null\"\n (onRemove)=\"field.onRemove ? field.onRemove($event) : null\"\n (onChipClick)=\"field.onChipClick ? field.onChipClick($event) : null\"\n (onFocus)=\"field.onFocus ? field.onFocus($event) : null\"\n (onBlur)=\"field.onBlur ? field.onBlur($event) : null\"\n >\n <ng-template\n let-item\n pTemplate=\"item\"\n >\n <span\n class=\"chip-content\"\n [sTooltip]=\"item\"\n >\n {{ item }}\n </span>\n </ng-template>\n </s-chips>\n }\n\n </div>\n\n @if(field.showCopyButton && formControl.value?.length > 0 && copyButtonVisible) {\n <button\n class=\"copy-content-button\"\n (click)=\"onCopyFieldContent()\"\n >\n {{ 'platform.angular_components.copy_field_content' | translate }}\n </button>\n }\n\n @if(feedbackMessageVisible) {\n <span\n class=\"feedback-message\"\n >\n {{ 'platform.angular_components.copied_to_clipboard' | translate }}\n </span>\n }\n</div>\n","import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, Input } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\nimport { CountryPhonePickerField } from '../../configurations/fields/country-phone-picker-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\n\n@Component({\n templateUrl: './country-phone-picker-field.component.html',\n})\nexport class CountryPhonePickerFieldComponent implements BaseFieldComponentConfig, AfterViewInit {\n @Input({ required: true })\n public field!: CountryPhonePickerField;\n\n @Input({ required: true })\n public formControl!: FormControl;\n\n constructor(\n private readonly changeDetectorRef: ChangeDetectorRef,\n ) { }\n\n public ngAfterViewInit(): void {\n this.changeDetectorRef.detectChanges();\n }\n}\n\n","@if (countryPhonePicker.phoneInput?.nativeElement) {\n <s-field-label\n [field]=\"field\"\n [fieldContainerRef]=\"countryPhonePicker.phoneInput?.nativeElement\"\n ></s-field-label>\n}\n\n<s-country-phone-picker\n #countryPhonePicker\n [formControl]=\"formControl\"\n [ordination]=\"field.ordination\"\n [countries]=\"field.countries\"\n (selected)=\"field.onSelected($event)\"\n (focusLost)=\"field.onFocusLost ? field.onFocusLost($event): null\"\n>\n</s-country-phone-picker>\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n computed,\n ElementRef,\n Input,\n OnInit,\n viewChild,\n} from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\nimport { currencies, CurrencyService } from '@seniorsistemas/angular-components/currency';\nimport { LocaleService } from '@seniorsistemas/angular-components/locale';\nimport { InputMask } from 'primeng/inputmask';\nimport { first } from 'rxjs/operators';\nimport { CurrencyField } from '../../configurations/fields/currency-field';\nimport { BaseFieldComponent, BaseFieldComponentConfig } from '../base-field-component';\n\n/**\n * @deprecated Should use bignumber instead\n */\n@Component({\n templateUrl: 'currency-field.component.html',\n})\nexport class CurrencyFieldComponent\n extends BaseFieldComponent\n implements BaseFieldComponentConfig, OnInit, AfterViewInit\n{\n private readonly inputRefComponent = viewChild<ElementRef | InputMask>('inputRef');\n @Input({ required: true })\n public field!: CurrencyField;\n\n @Input({ required: true })\n public formControl!: FormControl;\n\n public currencies = currencies;\n public mask?: string;\n\n public inputRef = computed(() => {\n const inputRef = this.inputRefComponent();\n if (!inputRef) {\n return undefined;\n }\n if (inputRef instanceof InputMask) {\n return inputRef.input;\n } else {\n return inputRef.nativeElement;\n }\n });\n\n constructor(\n readonly currencyService: CurrencyService,\n private readonly localeService: LocaleService,\n private readonly changeDetectorRef: ChangeDetectorRef,\n ) {\n super();\n }\n\n ngOnInit(): void {\n this.onLocaleService();\n this.mask = typeof this.field.mask === 'function' ? this.field.mask() : this.field.mask;\n }\n\n public ngAfterViewInit(): void {\n this.changeDetectorRef.detectChanges();\n }\n\n private onLocaleService(): void {\n this.localeService\n .getLocale()\n .pipe(first())\n .subscribe({\n next: () => {\n if (!this.field.numberLocaleOptions?.decimalSeparator) {\n this.field.numberLocaleOptions = {\n currencySymbol: this.field.numberLocaleOptions?.currencySymbol,\n thousandsSeparator: this.field.numberLocaleOptions?.thousandsSeparator,\n decimalSeparator: this.localeService.getDecimalSeparator(),\n };\n }\n\n if (!this.field.numberLocaleOptions?.thousandsSeparator) {\n this.field.numberLocaleOptions = {\n currencySymbol: this.field.numberLocaleOptions.currencySymbol,\n decimalSeparator: this.field.numberLocaleOptions.decimalSeparator,\n thousandsSeparator: this.localeService.getGroupingSeparator(),\n };\n }\n\n if (!this.field.numberLocaleOptions?.currencySymbol) {\n this.field.numberLocaleOptions = {\n decimalSeparator: this.field.numberLocaleOptions.decimalSeparator,\n thousandsSeparator: this.field.numberLocaleOptions.thousandsSeparator,\n currencySymbol: 'R$',\n };\n }\n },\n error: () =>\n (this.field.numberLocaleOptions = this.field.numberLocaleOptions ?? {\n thousandsSeparator: '.',\n decimalSeparator: ',',\n currencySymbol: 'R$',\n }),\n });\n }\n}\n","@if (inputRef()) {\n <s-field-label\n [field]=\"field\"\n [fieldContainerRef]=\"inputRef()\"\n ></s-field-label>\n}\n@let hasMask = !!field.mask;\n<div\n class=\"[input-is-invalid>.button-container>.button-container]:border-[1px] [input-is-invalid>.button-container>.button-container]:border-r-0 [input-is-invalid>.button-container>.button-container]:border-criticality-red [input-is-invalid>.button-container>input]:border-[1px] [input-is-invalid>.button-container>input]:border-criticality-red [input-has-focus>.button-container]:border-[1px] [input-has-focus>.button-container]:border-r-0 [input-has-focus>.button-container]:border-primary flex h-[35px] w-full\"\n [ngClass]=\"{\n '[&:has(.input-mask.ng-invalid.ng-dirty)>.button-container]:border-[1px] [&:has(.input-mask.ng-invalid.ng-dirty)>.button-container]:border-r-0 [&:has(.input-mask.ng-invalid.ng-dirty)>.button-container]:border-criticality-red [&:has(.input-mask.ng-invalid.ng-dirty)>input]:border-[1px] [&:has(.input-mask.ng-invalid.ng-dirty)>input]:border-criticality-red':\n hasMask,\n }\"\n>\n @if (field.currency || field.numberLocaleOptions?.currencySymbol) {\n <div\n class=\"button-container flex h-full min-w-10 items-center justify-center rounded-l-[3px] border border-r-0 border-[#c1c1cc] px-[8px]\"\n >\n <span class=\"text-[#212533]\">\n {{\n field.currency\n ? currencyService.getCurrencySymbol({ currency: field.currency() })\n : field.numberLocaleOptions?.currencySymbol\n }}\n </span>\n </div>\n }\n\n @if (hasMask) {\n <p-inputMask\n class=\"input-mask\"\n #inputRef\n type=\"text\"\n [inputId]=\"field.id || field.name\"\n [name]=\"field.name\"\n [formControl]=\"formControl\"\n [mask]=\"mask\"\n [placeholder]=\"field.placeholder\"\n slotChar=\"_\"\n [sTooltip]=\"field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n styleClass=\"mousetrap !rounded-l-[0px]\"\n (onBlur)=\"field.onBlur ? field.onBlur($event) : null\"\n (onFocus)=\"field.onFocus ? field.onFocus($event) : null\"\n (onComplete)=\"field.onComplete ? field.onComplete($event) : null\"\n (onInput)=\"field.onInput ? field.onInput($event) : null\"\n ></p-inputMask>\n } @else if (!hasMask) {\n <input\n #inputRef\n type=\"text\"\n [id]=\"field.id || field.name\"\n class=\"h-full w-full rounded-r-[3px] border border-[#c1c1cc] p-2 outline-none focus:border-[1px] focus:border-primary\"\n [name]=\"field.name\"\n [formControl]=\"formControl\"\n sNumberInput\n [precision]=\"\n field.precision\n ? isFunction(field.precision)\n ? trigger(field.precision)\n : field.precision\n : field.currency && field.currency()\n ? currencies[field.currency()].precision\n : 15\n \"\n [scale]=\"\n field.scale\n ? isFunction(field.scale)\n ? trigger(field.scale)\n : field.scale\n : field.currency && field.currency()\n ? currencies[field.currency()].scale\n : 2\n \"\n [decimalSeparator]=\"field.numberLocaleOptions?.decimalSeparator\"\n [thousandsSeparator]=\"field.numberLocaleOptions?.thousandsSeparator\"\n [alignTo]=\"field.alignTo\"\n [sTooltip]=\"field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"field.placeholder\"\n [showDelay]=\"500\"\n [autocomplete]=\"field.browserAutocomplete ? 'on' : 'off'\"\n [ngClass]=\"'mousetrap'\"\n (blur)=\"field.onBlur ? field.onBlur($event) : null\"\n (focus)=\"field.onFocus ? field.onFocus($event) : null\"\n />\n }\n</div>\n","import { Component, Input } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\n\n\nimport { EditorField } from '../../configurations/fields/editor-field';\nimport { BaseFieldComponent, BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"./editor-field.component.html\",\n})\nexport class EditorFieldComponent extends BaseFieldComponent implements BaseFieldComponentConfig {\n @Input({ required: true })\n public field!: EditorField;\n\n @Input({ required: true })\n public formControl!: FormControl;\n}\n","<s-field-label [field]=\"field\"></s-field-label>\n\n<p-editor\n [formControl]=\"formControl\"\n [formats]=\"field.formats\"\n [readonly]=\"field.readonly ? field.readonly : false\"\n [modules]=\"field.modules\"\n [style]=\"field.style\"\n>\n</p-editor>\n","import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, HostListener, Input } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\nimport { BlobField } from '../../configurations/fields/blob-field';\nimport { BaseFieldComponent, BaseFieldComponentConfig } from '../base-field-component';\n\n@Component({\n templateUrl: 'file-upload-field.component.html',\n})\nexport class FileUploadFieldComponent extends BaseFieldComponent implements BaseFieldComponentConfig, AfterViewInit {\n @Input({ required: true })\n public field!: BlobField;\n\n // TODO: TIPAR.\n @Input({ required: true })\n public formControl!: any;\n\n public inputRef: HTMLInputElement | null = null;\n\n constructor(\n private readonly changeDetectorRef: ChangeDetectorRef,\n private readonly elementRef: ElementRef,\n ) {\n super();\n }\n\n @HostListener('click')\n public onClick(): void {\n this.dispatchFocusInputRef();\n }\n\n public ngAfterViewInit(): void {\n this.setInputRef();\n this.changeDetectorRef.detectChanges();\n }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent): void {\n if (!this.elementRef.nativeElement.contains(event.target)) {\n this.inputRef?.dispatchEvent(new Event('blur'));\n }\n }\n\n private setInputRef(): void {\n this.inputRef = this.elementRef.nativeElement.querySelector('input') as HTMLInputElement;\n }\n\n private dispatchFocusInputRef(): void {\n this.inputRef?.dispatchEvent(new Event('focus'));\n }\n}\n\n","@if (inputRef) {\n <s-field-label\n [field]=\"field\"\n [fieldContainerRef]=\"inputRef\"\n ></s-field-label>\n}\n\n<s-file-upload\n [id]=\"field.id || field.name\"\n [accept]=\"field.accept\"\n [files]=\"field.files\"\n [multiple]=\"field.multiple\"\n [chooseLabel]=\"field.chooseLabel\"\n [removeLabel]=\"field.removeLabel\"\n [cancelLabel]=\"field.cancelLabel\"\n [successTooltip]=\"field.successTooltip\"\n (uploadHandler)=\"field.onUploadFile($event, field)\"\n (removeFile)=\"field.onRemoveFile($event.file, field)\"\n (cancelUpload)=\"field.onCancelUpload($event, field)\"\n (downloadFile)=\"field.onDownloadFile($event, field)\"\n [formGroup]=\"formControl\"\n [showFileUploadDate]=\"field.showFileUploadDate\"\n>\n</s-file-upload>\n","import { Component, Input } from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\nimport { LookupField } from '../../configurations/fields/lookup-field';\n\n@Component({\n templateUrl: 'lookup-field.component.html',\n})\nexport class LookupFieldComponent {\n @Input({ required: true })\n public field!: LookupField;\n\n @Input({ required: true })\n public formControl!: UntypedFormControl;\n}\n","<s-field-label [field]=\"field\"></s-field-label>\n\n<div\n [sTooltip]=\"field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n>\n <s-lookup\n [id]=\"field.id || field.name\"\n [multiple]=\"field.multiple\"\n [formControl]=\"formControl\"\n [lookupSuggestions]=\"field.lookupSuggestions\"\n [dataKey]=\"field.dataKey\"\n [placeholder]=\"field.placeholder\"\n [showSearch]=\"field.showSearch\"\n [searchFields]=\"field.searchFields\"\n [searchGridFields]=\"field.searchGridFields\"\n [searchGridData]=\"field.gridData\"\n (onLookupRequest)=\"field.onLookupRequest($event)\"\n (onSearchRequest)=\"field.onSearchRequest($event)\"\n [lookupDisplayField]=\"field.lookupDisplayField\"\n [searchTotalRecords]=\"field.searchTotalRecords\"\n [labelOptions]=\"{\n recordsLabel: field.recordsLabel,\n recordLabel: field.recordLabel,\n emptyFieldLabel: field.emptyFieldLabel,\n selectLabel: field.selectLabel,\n cancelLabel: field.cancelLabel,\n clearLabel: field.clearLabel,\n filterLabel: field.filterLabel,\n filterTitle: field.filterTitle,\n searchTotalRecordsLabel: field.searchTotalRecordsLabel,\n searchEmptyTitle: field.searchEmptyTitle,\n searchTitle: field.searchTitle,\n }\"\n (onSelect)=\"field.onSelect($event)\"\n (onUnselect)=\"field.onUnselect($event)\"\n (onClear)=\"field.onClear ? field.onClear($event) : null\"\n (onBlur)=\"field.onBlur ? field.onBlur($event) : null\"\n [lookupAppendTo]=\"field.appendTo\"\n [lookupEmptyMessage]=\"field.emptyMessage\"\n [defaultFilter]=\"field.defaultFilter\"\n [autocompleteForceSelection]=\"field.autocompleteForceSelection\"\n [showAddOption]=\"field.showAddOption\"\n [showEditOption]=\"field.showEditOption\"\n [showRemoveOption]=\"field.showRemoveOption\"\n [sortableColumnsDisabled]=\"field.sortableColumnsDisabled\"\n (onAdd)=\"field.onAdd ? field.onAdd() : null\"\n (onEdit)=\"field.onEdit ? field.onEdit($event) : null\"\n (onRemove)=\"field.onRemove ? field.onRemove($event) : null\"\n (onClearButtonClick)=\"field.onClearButtonClick ? field.onClearButtonClick() : null\"\n >\n </s-lookup>\n</div>\n","/* eslint-disable @angular-eslint/no-output-on-prefix */\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { first, takeUntil } from 'rxjs/operators';\nimport { BaseFieldComponent, BaseFieldComponentConfig } from '../base-field-component';\n\nimport { LocaleService } from '@seniorsistemas/angular-components/locale';\nimport { NumberAlignmentOption } from '@seniorsistemas/angular-components/number-input';\nimport { FieldType } from '../../configurations/field-type';\nimport { DecimalField } from '../../configurations/fields/decimal-field';\n\n@Component({\n templateUrl: 'number-field.component.html',\n styleUrls: ['./number-field.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class NumberFieldComponent\n extends BaseFieldComponent\n implements OnInit, OnDestroy, BaseFieldComponentConfig, AfterViewInit {\n @Input({ required: true })\n public field!: DecimalField;\n\n @Input({ required: true })\n public formControl!: FormControl;\n\n @Output()\n public onInput: EventEmitter<any> = new EventEmitter();\n @Output()\n public onFocus: EventEmitter<any> = new EventEmitter();\n @Output()\n public onComplete: EventEmitter<any> = new EventEmitter();\n\n public inputRef: ElementRef | null = null;\n\n private ngUnsubscribe = new Subject<void>();\n\n protected FieldType = FieldType;\n\n constructor(\n private readonly localeService: LocaleService,\n private readonly elementRef: ElementRef,\n private readonly changeDetectorRef: ChangeDetectorRef,\n ) {\n super();\n }\n\n public ngOnInit() {\n this.onLocaleService();\n\n this.onFocus.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: FocusEvent) => {\n if (this.field.onFocus) this.field.onFocus(event);\n });\n\n this.onInput.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field.onInput) this.field.onInput(event);\n });\n\n this.onComplete.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field.onComplete) this.field.onComplete(event);\n });\n }\n\n public ngAfterViewInit(): void {\n this.setInputRef();\n this.changeDetectorRef.detectChanges();\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public get numberAlignmentOption() {\n return NumberAlignmentOption;\n }\n\n public get fieldType() {\n return FieldType;\n }\n\n private onLocaleService(): void {\n this.localeService\n .getLocale()\n .pipe(first())\n .subscribe({\n next: () => {\n if (!this.field.numberLocaleOptions?.decimalSeparator) {\n this.field.numberLocaleOptions = {\n ...this.field.numberLocaleOptions,\n decimalSeparator: this.localeService.getDecimalSeparator() ?? '',\n };\n }\n\n if (!this.field.numberLocaleOptions?.thousandsSeparator) {\n this.field.numberLocaleOptions = {\n ...this.field.numberLocaleOptions,\n thousandsSeparator: this.localeService.getGroupingSeparator() ?? '',\n };\n }\n\n if (!this.field.numberLocaleOptions?.currencySymbol) {\n this.field.numberLocaleOptions = {\n ...this.field.numberLocaleOptions,\n currencySymbol: 'R$',\n };\n }\n },\n error: () =>\n (this.field.numberLocaleOptions = this.field.numberLocaleOptions ?? {\n thousandsSeparator: '.',\n decimalSeparator: ',',\n currencySymbol: 'R$',\n }),\n });\n }\n\n private setInputRef(): void {\n const input = this.elementRef.nativeElement.querySelector('input');\n this.inputRef = input;\n }\n}\n","@if (inputRef) {\n <s-field-label\n [field]=\"field\"\n [fieldContainerRef]=\"inputRef.nativeElement\"\n />\n}\n\n@let hasMask = !!field.mask;\n@if (hasMask) {\n <p-inputMask\n #inputRef\n type=\"text\"\n [inputId]=\"field.id || field.name\"\n [name]=\"field.name\"\n [mask]=\"field.mask ? getFieldPropertyMask(field.mask) : null\"\n [placeholder]=\"field.placeholder\"\n slotChar=\"_\"\n [sTooltip]=\"field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n styleClass=\"mousetrap\"\n (onBlur)=\"field.onBlur ? field.onBlur($event) : null\"\n (onFocus)=\"onFocus.next($event)\"\n (onComplete)=\"onComplete.next($event)\"\n (onInput)=\"onInput.next($event)\"\n [formControl]=\"formControl\"\n >\n </p-inputMask>\n} @else if (!hasMask) {\n <div class=\"ui-inputgroup\">\n @if (field.leftAddon) {\n @if (field.leftAddon.callback) {\n <span class=\"addon-button addon-button--left\">\n <s-button\n [label]=\"field.leftAddon.label\"\n [iconClass]=\"field.leftAddon.icon\"\n [priority]=\"field.leftAddon.priority\"\n [disabled]=\"fieldPropertyIsDisabled(field.leftAddon)\"\n (clicked)=\"field.leftAddon.callback()\"\n >\n </s-button>\n </span>\n }\n @if (!field.leftAddon.callback) {\n <span class=\"ui-inputgroup-addon\">\n @if (field.leftAddon.label) {\n <span>{{ field.leftAddon.label }}</span>\n } @else if (!field.leftAddon.label) {\n <span [ngClass]=\"field.leftAddon.icon\"></span>\n }\n </span>\n }\n }\n\n @if(field.type === FieldType.Double && field.alignTo === numberAlignmentOption.LEFT) {\n <ng-container *ngTemplateOutlet=\"localizedNumber\"></ng-container>\n } @else {\n <ng-container *ngTemplateOutlet=\"input\"></ng-container>\n }\n\n @if (field.rightAddon) {\n @if (field.rightAddon.callback) {\n <span class=\"addon-button addon-button--right\">\n <s-button\n [label]=\"field.rightAddon.label\"\n [iconClass]=\"field.rightAddon.icon\"\n [priority]=\"field.rightAddon.priority\"\n [disabled]=\"fieldPropertyIsDisabled(field.rightAddon)\"\n (clicked)=\"field.rightAddon.callback()\"\n >\n </s-button>\n </span>\n }\n @if (!field.rightAddon.callback) {\n <span class=\"ui-inputgroup-addon\">\n @if (field.rightAddon.label) {\n {{ field.rightAddon.label }}\n } @else if (!field.rightAddon.label) {\n <span [ngClass]=\"field.rightAddon.icon\"></span>\n }\n </span>\n }\n }\n </div>\n}\n\n<ng-template #input>\n <input\n #inputRef\n [id]=\"field.id || field.name\"\n type=\"text\"\n [name]=\"field.name\"\n sNumberInput\n [precision]=\"isFunction(field.precision) ? trigger(field.precision) : field.precision\"\n [scale]=\"isFunction(field.scale) ? trigger(field.scale) : field.scale\"\n [decimalSeparator]=\"field.numberLocaleOptions?.decimalSeparator\"\n [thousandsSeparator]=\"field.numberLocaleOptions?.thousandsSeparator\"\n [alignTo]=\"field.alignTo\"\n [sTooltip]=\"field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"field.placeholder\"\n [showDelay]=\"500\"\n pInputText\n [autocomplete]=\"field.browserAutocomplete ? 'on' : 'off'\"\n [ngClass]=\"'mousetrap'\"\n (blur)=\"field.onBlur ? field.onBlur($event) : null\"\n (focus)=\"onFocus.next($event)\"\n [formControl]=\"formControl\"\n />\n</ng-template>\n<ng-template #localizedNumber>\n <input\n #inputRef\n [id]=\"field.id || field.name\"\n type=\"text\"\n [name]=\"field.name\"\n sLocalizedNumberInput\n [precision]=\"isFunction(field.precision) ? trigger(field.precision) : field.precision\"\n [decimalSeparator]=\"field.numberLocaleOptions?.decimalSeparator\"\n [thousandsSeparator]=\"field.numberLocaleOptions?.thousandsSeparator\"\n [sTooltip]=\"field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"field.placeholder\"\n [showDelay]=\"500\"\n pInputText\n [autocomplete]=\"field.browserAutocomplete ? 'on' : 'off'\"\n [ngClass]=\"'mousetrap'\"\n (blur)=\"field.onBlur ? field.onBlur($event) : null\"\n (focus)=\"onFocus.next($event)\"\n [formControl]=\"formControl\"\n />\n</ng-template>\n","/* eslint-disable @angular-eslint/no-output-on-prefix */\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { PasswordField } from '../../configurations/fields/password-field';\n\n@Component({\n templateUrl: './password-field.component.html',\n styleUrls: ['./password-field.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class PasswordFieldComponent implements OnInit, AfterViewInit, OnDestroy {\n @Input({ required: true })\n public field!: PasswordField;\n\n @Input({ required: true })\n public formControl!: FormControl;\n\n @Output()\n public onInput: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public onFocus: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public onComplete: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('inputRef') inputRef: ElementRef | null = null;\n\n private ngUnsubscribe = new Subject<void>();\n public passwordVisible = false;\n\n constructor(private readonly changeDetectorRef: ChangeDetectorRef) { }\n\n public ngOnInit(): void {\n this.onFocus.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: FocusEvent) => {\n if (this.field.onFocus) {\n this.field.onFocus(event);\n }\n });\n this.onInput.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: InputEvent) => {\n if (this.field.onInput) {\n this.field.onInput(event);\n }\n });\n this.onComplete.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field.onComplete) {\n this.field.onComplete(event);\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public onChangeVisible(): void {\n this.passwordVisible = !this.passwordVisible;\n }\n\n public ngAfterViewInit(): void {\n this.changeDetectorRef.detectChanges();\n }\n}\n","@if(inputRef) {\n <s-field-label\n [field]=\"field\"\n [fieldContainerRef]=\"inputRef\"\n ></s-field-label>\n}\n\n<div\n class=\"password-field\"\n [ngClass]=\"{ 'password-field--toggle': field.showToggle }\"\n>\n <input\n #inputRef\n [type]=\"passwordVisible ? 'text' : 'password'\"\n [id]=\"field.id || field.name\"\n class=\"password-input\"\n [name]=\"field.name\"\n [sTooltip]=\"field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"field.placeholder\"\n [showDelay]=\"500\"\n [maxLength]=\"field.maxLength\"\n pInputText\n [ngClass]=\"'mousetrap'\"\n (blur)=\"field.onBlur ? field.onBlur($event) : null\"\n (focus)=\"onFocus.next($event)\"\n (input)=\"onInput.next($event)\"\n [formControl]=\"formControl\"\n [ngStyle]=\"field.style\"\n [sPasswordStrength]=\"field.passwordStrength ? field.passwordStrength : false\"\n [passwordStrengthDescription]=\"field.passwordStrengthOptions?.description ? field.passwordStrengthOptions!.description : ''\"\n [passwordStrengthWeakTitle]=\"field.passwordStrengthOptions?.weakTitle ? field.passwordStrengthOptions?.weakTitle : ''\"\n [passwordStrengthMediumTitle]=\"field.passwordStrengthOptions?.mediumTitle ? field.passwordStrengthOptions?.mediumTitle : ''\"\n [passwordStrengthStrongTitle]=\"field.passwordStrengthOptions?.strongTitle ? field.passwordStrengthOptions?.strongTitle : ''\"\n [passwordStrengthValidation]=\"field.passwordStrengthOptions?.validation\"\n />\n @if (field.showToggle) {\n <span class=\"toggle-button\">\n <s-button\n [iconClass]=\"passwordVisible ? 'fas fa-eye-slash' : 'fas fa-eye'\"\n priority=\"default\"\n (clicked)=\"onChangeVisible()\"\n >\n </s-button>\n </span>\n }\n</div>\n","/* eslint-disable @angular-eslint/no-output-on-prefix */\nimport { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { RadioButtonField } from '../../configurations/fields/radio-button-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\n\n@Component({\n templateUrl: 'radio-button-field.component.html',\n styles: [\n `\n s-button.horizontal-clear-option button {\n width: min-content !important;\n }\n .horizontal-radio-buttons-container {\n gap: 20px 40px;\n .radio-button-item {\n margin: 0;\n }\n }\n `,\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class RadioButtonFieldComponent implements OnInit, OnDestroy, BaseFieldComponentConfig {\n @Input({ required: true })\n public field!: RadioButtonField;\n\n @Input({ required: true })\n public formControl!: UntypedFormControl;\n\n @Output()\n public onClick: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public onFocus: EventEmitter<any> = new EventEmitter();\n\n private _ngUnsubscribe = new Subject<void>();\n\n public ngOnInit(): void {\n this.onFocus.pipe(takeUntil(this._ngUnsubscribe)).subscribe((event: FocusEvent) => {\n if (this.field.onFocus) this.field.onFocus(event);\n });\n this.onClick.pipe(takeUntil(this._ngUnsubscribe)).subscribe((event: any) => {\n if (this.field.onClick) this.field.onClick(event);\n });\n }\n\n public ngOnDestroy(): void {\n this._ngUnsubscribe.next();\n this._ngUnsubscribe.complete();\n }\n\n public onClear(): void {\n this.formControl.reset();\n }\n}\n","<s-field-label [field]=\"field\"></s-field-label>\n\n@if (field.verticalAlignment) {\n <div class=\"ui-g\">\n @for (option of field.options; let i = $index; track i) {\n <div class=\"ui-g-12\">\n <ng-container\n [ngTemplateOutlet]=\"radioButton\"\n [ngTemplateOutletContext]=\"{ option: option, index: i }\"\n >\n </ng-container>\n </div>\n }\n @if (field.showClear && field.required && !field.required() && !formControl.disabled) {\n <s-button\n [label]=\"field.clearLabel || 'Clear selection'\"\n (clicked)=\"onClear()\"\n priority=\"link\"\n >\n </s-button>\n }\n </div>\n} @else {\n <div class=\"ui-g horizontal-radio-buttons-container\">\n @for (option of field.options; let i = $index; track i) {\n <ng-container\n [ngTemplateOutlet]=\"radioButton\"\n [ngTemplateOutletContext]=\"{ option: option, index: i }\"\n >\n </ng-container>\n }\n </div>\n @if (field.showClear && field.required && !field.required() && !formControl.disabled) {\n <s-button\n class=\"horizontal-clear-option\"\n [label]=\"field.clearLabel || 'Clear selection'\"\n (clicked)=\"onClear()\"\n priority=\"link\"\n >\n </s-button>\n }\n}\n\n<ng-template\n #radioButton\n let-option=\"option\"\n let-i=\"index\"\n>\n @let inputId = (field.id || field.name) + '-' + i;\n <s-radiobutton\n class=\"radio-button-item\"\n [name]=\"field.name\"\n [value]=\"option.value\"\n [formControl]=\"formControl\"\n [inputId]=\"inputId\"\n [sTooltip]=\"field.tooltip\"\n [label]=\"option.label\"\n (focusedInput)=\"onFocus.next($event)\"\n (inputFocusLost)=\"field.onBlur ? field.onBlur($event) : null\"\n />\n</ng-template>\n","import { Component, Input } from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\nimport { SelectField } from '../../configurations/fields/select-field';\nimport { BaseFieldComponent, BaseFieldComponentConfig } from '../base-field-component';\n\n@Component({\n templateUrl: 'select-field.component.html',\n})\nexport class SelectFieldComponent extends BaseFieldComponent implements BaseFieldComponentConfig {\n @Input({ required: true })\n public field!: SelectField;\n\n @Input({ required: true })\n public formControl!: UntypedFormControl;\n}\n\n","<s-field-label [field]=\"field\"></s-field-label>\n\n<s-select\n [multiple]=\"field.multiple ?? false\"\n [filter]=\"field.filter ?? false\"\n [id]=\"field.id || field.name\"\n [options]=\"getFieldProperty(field.options)\"\n [placeholder]=\"field.placeholder || ' '\"\n [formControl]=\"formControl\"\n [sTooltip]=\"field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n [group]=\"field.group ?? false\"\n [showClear]=\"field.showClear ?? false\"\n [optionLabel]=\"field.optionLabel ?? 'label'\"\n [optionValue]=\"field.optionValue ?? 'value'\"\n (clicked)=\"field.onClick ? field.onClick($event) : null\"\n (onChange)=\"field.onChange ? field.onChange($event) : null\"\n [emptyMessage]=\"field.emptyMessage ?? null\"\n>\n</s-select>\n","/* eslint-disable @angular-eslint/no-output-on-prefix */\nimport { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { FieldType } from '../../configurations/field-type';\nimport { SliderField } from '../../configurations/fields/slider-field';\nimport { BaseFieldComponent, BaseFieldComponentConfig } from '../base-field-component';\n\n@Component({\n templateUrl: 'slider-field.component.html',\n styleUrls: ['./slider-field.component.scss'],\n})\nexport class SliderFieldComponent extends BaseFieldComponent implements OnInit, OnDestroy, BaseFieldComponentConfig {\n @Input({ required: true })\n public field!: SliderField;\n\n @Input({ required: true })\n public formControl!: UntypedFormControl;\n\n @Output()\n public onChange: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public onSlideEnd: EventEmitter<any> = new EventEmitter();\n\n private ngUnsubscribe = new Subject<void>();\n\n public ngOnInit() {\n const defaultValue = this.field?.range ? [this.field.min, this.field.max] : this.field.min;\n if (!this.isValid(this.formControl.value)) {\n this.formControl.setValue(this.field.defaultValue ?? defaultValue);\n }\n this.subscribeToFormControlEvents();\n }\n\n private subscribeToFormControlEvents() {\n this.onChange.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: FocusEvent) => {\n if (this.field.onChange) {\n this.field.onChange(event);\n }\n });\n\n this.onSlideEnd.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field.onSlideEnd) {\n this.field.onSlideEnd(event);\n }\n });\n }\n\n private isValid(value: any): boolean {\n if (this.field?.range) {\n return Array.isArray(value) && this.isValidRange(value);\n } else {\n return Number.isInteger(value) && this.isValidNoRange(value);\n }\n }\n\n private isValidRange(value: any[]): boolean {\n const [startValue, endValue] = value;\n return startValue >= this.field?.min && startValue <= this.field?.max && endValue >= this.field?.min && endValue <= this.field?.max;\n }\n\n private isValidNoRange(value: number): boolean {\n return value >= this.field.min && value <= this.field.max;\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public get fieldType() {\n return FieldType;\n }\n\n private getRangeLabel(): string {\n let [value0, value1] = this.formControl.value ?? [0, 0];\n const prefix = this.field.prefix ?? '';\n const suffix = this.field.suffix ?? '';\n const separator = this.field.rangeSeparator ?? ' - ';\n\n if (!value0 || value0 < this.field.min) {\n value0 = this.field.min;\n }\n\n if (!value1 || value1 > this.field.max) {\n value1 = this.field.max;\n }\n\n return `${prefix}${value0}${suffix}${separator}${prefix}${value1}${suffix}`;\n }\n\n private getNonRangeLabel(): string {\n let value = this.formControl?.value;\n const prefix = this.field.prefix ?? '';\n const suffix = this.field.suffix ?? '';\n\n if (!value || value < this.field.min) {\n value = this.field.min;\n }\n\n if (value > this.field.max) {\n value = this.field.max;\n }\n\n return `${prefix}${value}${suffix}`;\n }\n\n public get label() {\n return this.field.range ? this.getRangeLabel() : this.getNonRangeLabel();\n }\n}\n","<s-field-label [field]=\"field\"></s-field-label>\n\n<div class=\"slider-group\">\n <div class=\"slider-label\">\n <span>{{ label }}</span>\n </div>\n <s-slider\n #slider\n [id]=\"field.id || field.name\"\n [formControl]=\"formControl\"\n [multiple]=\"field.range ? field.range : slider.multiple\"\n [min]=\"field.min\"\n [max]=\"field.max\"\n [step]=\"field.step\"\n (valueChange)=\"field.onChange ? field.onChange($event) : null\"\n >\n </s-slider>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { StarRatingField } from '../../configurations/fields/star-rating-field';\n\n@Component({\n selector: 's-star-rating-field',\n templateUrl: './star-rating-field.component.html'\n})\nexport class StarRatingFieldComponent {\n @Input() field!: StarRatingField\n @Input() formControl!: FormControl;\n\n onValueChange(newValue: number) {\n if (this.field.valueChange) {\n this.field.valueChange(newValue);\n }\n }\n}\n","<s-field-label [field]=\"field\"/>\n\n<s-star-rating [justifyContent]=\"field.justifyContent\" [formControl]=\"formControl\" (selectedStarChange)=\"onValueChange($event)\">\n","import { Component, Input } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { TextAreaIAField } from '../../configurations/fields/text-area-ia-field';\n\n@Component({\n templateUrl: './text-area-ia-field.component.html',\n styleUrls: ['./text-area-ia-field.component.scss'],\n})\nexport class TextAreaIAFieldComponent {\n @Input({ required: true })\n public field!: TextAreaIAField;\n\n @Input({ required: true })\n public formControl!: FormControl;\n}\n\n","@if (textAreaIA.textArea()?.renderTextArea) {\n <s-field-label\n [field]=\"field\"\n [fieldContainerRef]=\"textAreaIA.textArea()?.textAreaElement?.nativeElement\"\n ></s-field-label>\n}\n\n<s-text-area-ia\n #textAreaIA\n [rows]=\"field.rows ?? 5\"\n [formControl]=\"formControl\"\n [id]=\"field.name\"\n [readonly]=\"field.readonly ? field.readonly() : false\"\n [prompt]=\"field.prompt ?? ''\"\n [placeholder]=\"field.placeholder ?? ''\"\n [label]=\"field.label\"\n [speechRecognition]=\"field.speechRecognition\"\n [keepContext]=\"field.keepContext\"\n [speechRecognitionPlaceholder]=\"field.speechRecognitionPlaceholder\"\n [maxLength]=\"field.maxLength\"\n></s-text-area-ia>\n","import { AfterViewInit, ChangeDetectorRef, Component, Input } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\nimport { TextAreaField } from '../../configurations/fields/text-area-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\n\n@Component({\n templateUrl: 'text-area-field.component.html',\n styleUrl: 'text-area-field.component.scss',\n})\nexport class TextAreaFieldComponent implements BaseFieldComponentConfig, AfterViewInit {\n @Input({ required: true })\n public field!: TextAreaField;\n\n @Input({ required: true })\n public formControl!: FormControl;\n\n constructor(private readonly changeDetectorRef: ChangeDetectorRef) { }\n\n public ngAfterViewInit(): void {\n this.changeDetectorRef.detectChanges();\n }\n}\n\n","@if (textArea.renderTextArea) {\n <s-field-label [field]=\"field\"\n [fieldContainerRef]=\"textArea.textAreaElement.nativeElement\"></s-field-label>\n}\n\n<s-textarea\n #textArea\n [inputId]=\"(field.id || field.name)\"\n [rows]=\"field.rows ?? textArea.rows\"\n [formControl]=\"formControl\"\n [inputStyle]=\"field.style ?? {}\"\n [readOnly]=\"field.readonly ? field.readonly() : false\"\n [keyFilter]=\"field.keyFilter\"\n [placeholder]=\"field.placeholder ?? ''\"\n [keepContext]=\"field.keepContext\"\n [speechRecognitionPlaceholder]=\"field.speechRecognitionPlaceholder\"\n [maxLength]=\"field.maxLength\"\n [speechRecognition]=\"field.speechRecognition\">\n</s-textarea>\n\n","/* eslint-disable @angular-eslint/no-output-on-prefix */\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { TextField } from '../../configurations/fields/text-field';\nimport { BaseFieldComponent, BaseFieldComponentConfig } from '../base-field-component';\nimport { InputMask } from 'primeng/inputmask';\n\n@Component({\n templateUrl: 'text-field.component.html',\n styleUrls: ['./text-field.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class TextFieldComponent\n extends BaseFieldComponent\n implements OnInit, AfterViewInit, OnDestroy, BaseFieldComponentConfig {\n @Input({ required: true })\n public field!: TextField;\n\n @Input({ required: true })\n public formControl!: FormControl;\n\n @Output()\n public onInput: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public onFocus: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public onComplete: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('inputRef')\n public inputRef: ElementRef | InputMask | null = null;\n\n private ngUnsubscribe = new Subject<void>();\n\n constructor(private readonly changeDetectorRef: ChangeDetectorRef) {\n super();\n }\n\n public ngOnInit() {\n this.onFocus.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: FocusEvent) => {\n if (this.field.onFocus) this.field.onFocus(event);\n });\n this.onInput.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field.onInput) this.field.onInput(event);\n });\n this.onComplete.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field.onComplete) this.field.onComplete(event);\n });\n }\n\n public ngAfterViewInit(): void {\n this.changeDetectorRef.detectChanges();\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n getCharacterPattern(): string {\n return typeof this.field.characterPattern === 'function'\n ? this.field.characterPattern()\n : (this.field.characterPattern as string);\n }\n\n getUnmask(): boolean {\n return typeof this.field.unmask === 'function' ? this.field.unmask() : (this.field.unmask as boolean);\n }\n\n get inputElement() {\n if (this.inputRef instanceof InputMask) {\n return this.inputRef?.inputViewChild?.nativeElement;\n } else {\n return this.inputRef?.nativeElement;\n }\n }\n}\n","@if (inputElement) {\n <s-field-label\n [field]=\"field\"\n [fieldContainerRef]=\"inputElement\"\n />\n}\n\n@if (field.mask) {\n <p-inputMask\n #inputRef\n [type]=\"field.inputType || 'text'\"\n [inputId]=\"field.id || field.name\"\n [name]=\"field.name\"\n [mask]=\"isFunction(field.mask) ? field.mask() : field.mask\"\n [characterPattern]=\"getCharacterPattern()\"\n [unmask]=\"getUnmask()\"\n [placeholder]=\"field.placeholder\"\n slotChar=\"_\"\n [sTooltip]=\"field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n styleClass=\"mousetrap\"\n (onBlur)=\"field.onBlur ? field.onBlur($event) : null\"\n (onFocus)=\"onFocus.next($event)\"\n (onComplete)=\"onComplete.next($event)\"\n (onInput)=\"onInput.next($event)\"\n [formControl]=\"formControl\"\n [readonly]=\"field.readonly ? field.readonly() : false\"\n [autocomplete]=\"field.browserAutocomplete ? 'on' : 'off'\"\n\n >\n </p-inputMask>\n} @else {\n <div class=\"ui-inputgroup\">\n @if (field.leftAddon) {\n @if (field.leftAddon.callback) {\n <span class=\"addon-button addon-button--left\">\n <s-button\n [label]=\"field.leftAddon.label\"\n [iconClass]=\"field.leftAddon.icon\"\n [priority]=\"field.leftAddon.priority\"\n [disabled]=\"fieldPropertyIsDisabled(field.leftAddon)\"\n (clicked)=\"field.leftAddon.callback()\"\n >\n </s-button>\n </span>\n }\n @if (!field.leftAddon.callback) {\n <span class=\"ui-inputgroup-addon\">\n @if (field.leftAddon.label) {\n <span>{{ field.leftAddon.label }}</span>\n } @else if (!field.leftAddon.label) {\n <span [ngClass]=\"field.leftAddon.icon\"></span>\n }\n </span>\n }\n }\n\n <ng-container *ngTemplateOutlet=\"field.keyFilter ? inputKeyFilter : input\"></ng-container>\n\n @if (field.rightAddon) {\n @if (field.rightAddon.callback) {\n <s-button\n [label]=\"field.rightAddon.label\"\n [iconClass]=\"field.rightAddon.icon\"\n [priority]=\"field.rightAddon.priority\"\n [disabled]=\"fieldPropertyIsDisabled(field.rightAddon)\"\n (clicked)=\"field.rightAddon.callback()\"\n >\n </s-button>\n } @else if (field.rightAddon.callback) {\n <span class=\"ui-inputgroup-addon\">\n @if (field.rightAddon.label) {\n <span>{{ field.rightAddon.label }}</span>\n } @else if (!field.rightAddon.label) {\n <span [ngClass]=\"field.rightAddon.icon\"></span>\n }\n </span>\n }\n }\n </div>\n}\n<ng-template #input>\n <input\n #inputRef\n [type]=\"field.inputType || 'text'\"\n [id]=\"field.id || field.name\"\n [name]=\"field.name\"\n [sTooltip]=\"field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"field.placeholder\"\n [showDelay]=\"500\"\n [maxLength]=\"field.maxLength\"\n pInputText\n [autocomplete]=\"field.browserAutocomplete ? 'on' : 'off'\"\n [ngClass]=\"'mousetrap'\"\n (blur)=\"field.onBlur ? field.onBlur($event) : null\"\n (focus)=\"onFocus.next($event)\"\n (input)=\"onInput.next($event)\"\n [formControl]=\"formControl\"\n [ngStyle]=\"field.style\"\n [readOnly]=\"field.readonly ? field.readonly() : false\"\n />\n</ng-template>\n<ng-template #inputKeyFilter>\n <input\n #inputText\n [type]=\"field.inputType || 'text'\"\n [id]=\"field.id || field.name\"\n [name]=\"field.name\"\n [sTooltip]=\"field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"field.placeholder\"\n [showDelay]=\"500\"\n [maxLength]=\"field.maxLength\"\n pInputText\n [autocomplete]=\"field.browserAutocomplete ? 'on' : 'off'\"\n [ngClass]=\"'mousetrap'\"\n (blur)=\"field.onBlur ? field.onBlur($event) : null\"\n (focus)=\"onFocus.next($event)\"\n (input)=\"onInput.next($event)\"\n [pKeyFilter]=\"field.keyFilter\"\n [formControl]=\"formControl\"\n [ngStyle]=\"field.style\"\n [readOnly]=\"field.readonly ? field.readonly() : false\"\n />\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { ButtonModule } from '@seniorsistemas/angular-components/button';\nimport { ControlErrorsModule } from '@seniorsistemas/angular-components/control-errors';\nimport { InfoSignModule } from '@seniorsistemas/angular-components/info-sign';\nimport { DynamicFormComponent } from './dynamic-form.component';\nimport { DynamicFormDirective } from './dynamic-form.directive';\n\nimport { TranslateModule } from '@ngx-translate/core';\nimport { BadgeModule } from '@seniorsistemas/angular-components/badge';\nimport { EmptyStateModule } from '@seniorsistemas/angular-components/empty-state';\nimport { LoadingStateModule } from '@seniorsistemas/angular-components/loading-state';\nimport { LocaleModule } from '@seniorsistemas/angular-components/locale';\nimport { MaskFormatterModule } from '@seniorsistemas/angular-components/mask';\nimport { TableHeaderCheckboxModule } from '@seniorsistemas/angular-components/table-header';\nimport { TooltipModule } from '@seniorsistemas/angular-components/tooltip';\n\nimport { BignumberInputModule } from '@seniorsistemas/angular-components/bignumber-input';\nimport { CalendarMaskModule } from '@seniorsistemas/angular-components/calendar-mask';\nimport { ChipsModule } from '@seniorsistemas/angular-components/chips';\nimport { CountryPhonePickerModule } from '@seniorsistemas/angular-components/country-phone-picker';\nimport { FileUploadModule } from '@seniorsistemas/angular-components/file-upload';\nimport { LocalizedNumberInputModule } from '@seniorsistemas/angular-components/localized-number-input';\nimport { MouseEventsModule } from '@seniorsistemas/angular-components/mouse-events';\nimport { SwitchModule } from '@seniorsistemas/angular-components/switch';\nimport { TextAreaIAModule } from '@seniorsistemas/angular-components/text-area-ia';\nimport { HotkeyModule } from 'angular2-hotkeys';\nimport { AutoCompleteModule } from 'primeng/autocomplete';\nimport { ButtonModule as PrimeButtonModule } from 'primeng/button';\nimport { DatePickerModule } from 'primeng/datepicker';\nimport { InputMaskModule } from 'primeng/inputmask';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { KeyFilterModule } from 'primeng/keyfilter';\nimport { MultiSelectModule } from 'primeng/multiselect';\nimport { PanelModule } from 'primeng/panel';\nimport { TableModule as PrimeNGTableModule } from 'primeng/table';\nimport { FieldLabelComponent } from './components/field-label/field-label.component';\nimport { RowComponent } from './components/grid/row/row.component';\nimport { LookupComponent } from './components/lookup/lookup.component';\nimport { ProfilePictureFieldComponent } from './form-field/fields/profile-picture/profile-picture-field.component';\n\nimport { CheckboxListModule } from '@seniorsistemas/angular-components/checkbox-list';\nimport { FieldsetModule } from '@seniorsistemas/angular-components/fieldset';\nimport { NumberInputModule } from '@seniorsistemas/angular-components/number-input';\nimport { PasswordStrengthModule } from '@seniorsistemas/angular-components/password-strength';\nimport { ProfilePicturePickerModule } from '@seniorsistemas/angular-components/profile-picture-picker';\nimport { SliderModule } from '@seniorsistemas/angular-components/slider';\nimport { StarRatingComponent } from '@seniorsistemas/angular-components/star-rating';\nimport { TextAreaModule } from '@seniorsistemas/angular-components/text-area';\nimport { EditorModule } from 'primeng/editor';\nimport { FieldsetComponent } from './components/structure/fieldset/fieldset.component';\nimport { SectionComponent } from './components/structure/section/section.component';\nimport { AutocompleteFieldComponent } from './form-field/fields/autocomplete/autocomplete-field.component';\nimport { BignumberFieldComponent } from './form-field/fields/bignumber/bignumber-field.component';\nimport { BooleanFieldComponent } from './form-field/fields/boolean/boolean-radio-field/boolean-field.component';\nimport { BooleanSwitchFieldComponent } from './form-field/fields/boolean/boolean-switch-field/boolean-switch-field.component';\nimport { ButtonFieldComponent } from './form-field/fields/button-field/button-field.component';\nimport { CalendarFieldComponent } from './form-field/fields/calendar/calendar-field.component';\nimport { CheckboxFieldComponent } from './form-field/fields/checkbox/checkbox-field.component';\nimport { ChipsFieldComponent } from './form-field/fields/chips/chips-field.component';\nimport { CountryPhonePickerFieldComponent } from './form-field/fields/country-phone-picker/country-phone-picker-field.component';\nimport { CurrencyFieldComponent } from './form-field/fields/currency/currency-field.component';\nimport { EditorFieldComponent } from './form-field/fields/editor/editor-field.component';\nimport { FileUploadFieldComponent } from './form-field/fields/file-upload/file-upload-field.component';\nimport { LookupFieldComponent } from './form-field/fields/lookup/lookup-field.component';\nimport { NumberFieldComponent } from './form-field/fields/number/number-field.component';\nimport { PasswordFieldComponent } from './form-field/fields/password/password-field.component';\nimport { RadioButtonFieldComponent } from './form-field/fields/radio-button/radio-button-field.component';\nimport { SelectFieldComponent } from './form-field/fields/select/select-field.component';\nimport { SliderFieldComponent } from './form-field/fields/slider/slider-field.component';\nimport { StarRatingFieldComponent } from './form-field/fields/star-rating/star-rating-field.component';\nimport { TextAreaIAFieldComponent } from './form-field/fields/text-area-ia/text-area-ia-field.component';\nimport { TextAreaFieldComponent } from './form-field/fields/text-area/text-area-field.component';\nimport { TextFieldComponent } from './form-field/fields/text/text-field.component';\nimport { DynamicFormCacheService } from './services/dynamic-form-cache';\n\nimport { DialogComponent } from '@seniorsistemas/angular-components/dialog';\nimport { RadioButtonComponent } from '@seniorsistemas/angular-components/radio-button';\nimport { SelectComponent } from '@seniorsistemas/angular-components/select';\nimport { TemplateModule } from '@seniorsistemas/angular-components/template';\n\n@NgModule({\n imports: [\n AutoCompleteModule,\n BadgeModule,\n BignumberInputModule,\n ButtonModule,\n CalendarMaskModule,\n ChipsModule,\n CommonModule,\n ControlErrorsModule,\n CountryPhonePickerModule,\n DialogComponent,\n EmptyStateModule,\n FormsModule,\n HotkeyModule,\n InputMaskModule,\n InputTextModule,\n KeyFilterModule,\n LoadingStateModule,\n LocaleModule,\n LocalizedNumberInputModule,\n PanelModule,\n PrimeButtonModule,\n PrimeNGTableModule,\n ReactiveFormsModule,\n TooltipModule,\n FieldsetModule,\n TableHeaderCheckboxModule,\n FileUploadModule,\n InfoSignModule,\n MaskFormatterModule,\n HotkeyModule.forRoot(),\n MouseEventsModule,\n SwitchModule,\n PasswordStrengthModule,\n SliderModule,\n DatePickerModule,\n TranslateModule.forChild(),\n MultiSelectModule,\n ProfilePicturePickerModule,\n NumberInputModule,\n EditorModule,\n CheckboxListModule,\n TextAreaIAModule,\n TextAreaModule,\n StarRatingComponent,\n SelectComponent,\n TemplateModule,\n RadioButtonComponent,\n ],\n declarations: [\n FieldLabelComponent,\n FileUploadFieldComponent,\n AutocompleteFieldComponent,\n BooleanFieldComponent,\n BooleanSwitchFieldComponent,\n CalendarFieldComponent,\n ChipsFieldComponent,\n CountryPhonePickerFieldComponent,\n DynamicFormComponent,\n DynamicFormDirective,\n FieldsetComponent,\n LookupComponent,\n LookupFieldComponent,\n RadioButtonFieldComponent,\n RowComponent,\n SectionComponent,\n SelectFieldComponent,\n SliderFieldComponent,\n TextAreaFieldComponent,\n TextAreaIAFieldComponent,\n ButtonFieldComponent,\n TextFieldComponent,\n BignumberFieldComponent,\n ProfilePictureFieldComponent,\n PasswordFieldComponent,\n NumberFieldComponent,\n CurrencyFieldComponent,\n EditorFieldComponent,\n CheckboxFieldComponent,\n StarRatingFieldComponent,\n ],\n exports: [DynamicFormComponent, DynamicFormDirective, LookupComponent],\n})\nexport class DynamicFormModule {\n constructor(dynamicFormCache: DynamicFormCacheService) {\n dynamicFormCache.setCache();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["BooleanOptionsLabel","i1","i2.DynamicFormDirective","i2","i4","i5","i6.DynamicFormDirective","i3","i6","i7","i10","i13","i17.DynamicFormComponent","i18","i3.FieldLabelComponent","i1.DynamicFormDirective","i4.LookupComponent","i8","i9.FieldLabelComponent","i5.FieldLabelComponent","i4.FieldLabelComponent","i6.FieldLabelComponent","i8.FieldLabelComponent","i9","i10.FieldLabelComponent","i7.FieldLabelComponent","i1.DynamicFormCacheService","PrimeButtonModule","PrimeNGTableModule"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAa,SAAS,CAAA;AAClB,IAAA,EAAE,CAAU;AACZ,IAAA,EAAE,CAAU;AACZ,IAAA,EAAE,CAAU;AACZ,IAAA,EAAE,CAAU;AAEZ,IAAA,WAAA,CAAY,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAa,EAAA;AACtD,QAAA,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACb,QAAA,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACb,QAAA,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACb,QAAA,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;KAChB;AACJ;;MCgCqB,KAAK,CAAA;AAChB,IAAA,QAAQ,CAAiB;AACzB,IAAA,OAAO,CAAiB;AACxB,IAAA,EAAE,CAAU;AACZ,IAAA,IAAI,CAAS;AACb,IAAA,KAAK,CAAS;AACd,IAAA,QAAQ,CAAU;AAClB,IAAA,OAAO,CAAU;AACjB,IAAA,WAAW,CAAU;AACrB,IAAA,SAAS,CAAW;AACpB,IAAA,IAAI,CAAa;AACjB,IAAA,IAAI,CAAY;AAChB,IAAA,YAAY,CAAO;AACnB,IAAA,aAAa,CAAsB;AACnC,IAAA,aAAa,CAAmB;AAChC,IAAA,cAAc,CAAwB;AACtC,IAAA,gBAAgB,CAAW;AAC3B,IAAA,yBAAyB,CAAW;AACpC,IAAA,mBAAmB,CAAU;AAC7B,IAAA,kBAAkB,CAAS;AAC3B,IAAA,MAAM,CAUX;AACK,IAAA,0BAA0B,CAAU;AACpC,IAAA,WAAW,CAAW;AAE7B,IAAA,WAAA,CAAY,MAAmB,EAAA;AAC3B,QAAA,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE;AACrB,YAAA,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG;AACjB,gBAAA,OAAO,EAAE,MAAM,IAAI;AACnB,gBAAA,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI;aACzB,CAAC;SACL;AAED,QAAA,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE;AACrB,YAAA,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG;AACjB,gBAAA,OAAO,EAAE,MAAM,IAAI;AACnB,gBAAA,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI;aACzB,CAAC;SACL;AAED,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,KAAK,MAAM,KAAK,CAAC,CAAC;AACjD,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,KAAK,MAAM,IAAI,CAAC,CAAC;AAC9C,QAAA,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;AACpB,QAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AAC1B,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAChC,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;QAC5C,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,KAAK,CAAC;AAC3C,QAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;AAC7C,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;AAC1C,QAAA,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;AAC5C,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC5B,QAAA,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;AACxC,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;AAC1C,QAAA,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAChD,QAAA,IAAI,CAAC,yBAAyB,GAAG,MAAM,CAAC,yBAAyB,CAAC;QAClE,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,IAAI,IAAI,CAAC;QAC9D,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,KAAK,CAAC;QAC/C,IAAI,CAAC,0BAA0B,GAAG,MAAM,CAAC,0BAA0B,IAAI,IAAI,CAAA;KAC9E;AAED,IAAA,IAAI,SAAS,GAAA;QACT,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA,GAAA,EAAM,GAAG,CAAA,CAAA,EAAK,IAAI,CAAC,IAAY,CAAC,GAAG,CAAC,CAAE,CAAA,CAAC,CAAC;KACpF;AACJ;;AChGK,MAAO,cAAe,SAAQ,KAAK,CAAA;AAC9B,IAAA,aAAa,CAAU;AACvB,IAAA,mBAAmB,CAAuB;AAC1C,IAAA,mBAAmB,CAAW;AAC9B,IAAA,SAAS,CAAqB;AAC9B,IAAA,KAAK,CAAqB;AAC1B,IAAA,OAAO,CAAmB;AAC1B,IAAA,IAAI,CAAqB;AACzB,IAAA,SAAS,CAAe;AACxB,IAAA,UAAU,CAAe;AACzB,IAAA,MAAM,CAA0B;AAChC,IAAA,OAAO,CAA+B;AACtC,IAAA,UAAU,CAA+B;AACzC,IAAA,OAAO,CAA+B;AACtC,IAAA,SAAS,CAAW;AAE3B,IAAA,WAAA,CAAY,MAA4B,EAAA;QACpC,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,IAAI,CAAC;QAClD,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,IAAI,IAAI,mBAAmB,EAAE,CAAC;AACnF,QAAA,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC;AACtD,QAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;AAC/B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,GAAG,gBAAgB,CAAC,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC;AAC3E,QAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AAClC,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AACpC,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC5B,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAC9B,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AACpC,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC;KAC7C;AACJ;;kCC/CY,mBAAmB,CAAA;AACrB,IAAA,IAAI,CAAS;AACb,IAAA,KAAK,CAAS;AACd,IAAA,KAAK,CAAU;AACf,IAAA,KAAK,CAAU;AAEtB,IAAA,WAAA,CAAY,MAAiC,EAAA;AACzC,QAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AAC1B,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AAC1B,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;KAC7B;AACJ,EAAA;AAUK,MAAO,YAAa,SAAQ,KAAK,CAAA;AAC5B,IAAA,iBAAiB,CAAW;AAC5B,IAAA,YAAY,CAAsB;AAClC,IAAA,MAAM,CAA0B;AAChC,IAAA,OAAO,CAA0B;AACjC,IAAA,OAAO,CAAwB;AAEtC,IAAA,WAAA,CAAY,MAA0B,EAAA;QAClC,KAAK,CAAC,MAAM,CAAC,CAAC;AACd,QAAA,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAClD,IAAI,CAAC,YAAY,GAAG,IAAIA,qBAAmB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AACjE,QAAA,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;AAC7B,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC5B,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAC9B,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;KACjC;AACJ;;ACvCK,MAAO,kBAAmB,SAAQ,KAAK,CAAA;AAClC,IAAA,QAAQ,CAAwB;AAChC,IAAA,YAAY,CAAuB;AAC1C,IAAA,WAAA,CAAY,MAAgC,EAAA;QACxC,KAAK,CAAC,MAAM,CAAC,CAAC;AACd,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAChC,QAAA,IAAI,MAAM,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,YAAY,GAAG,IAAIA,qBAAmB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;SACpE;AACD,QAAA,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;KACjC;AACJ;;ICnBW,UA+BX;AA/BD,CAAA,UAAY,SAAS,EAAA;AACjB,IAAA,SAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,SAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;AAC/B,IAAA,SAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,SAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,SAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC,CAAA;AACzC,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,SAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,SAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;AAC/B,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,SAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,SAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC,CAAA;AACjC,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,SAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AAC7B,CAAC,EA/BW,SAAS,KAAT,SAAS,GA+BpB,EAAA,CAAA,CAAA;;ACLK,MAAO,aAAc,SAAQ,KAAK,CAAA;AAC7B,IAAA,IAAI,CAA6B;AACjC,IAAA,QAAQ,CAAU;AAClB,IAAA,OAAO,CAAQ;AACf,IAAA,OAAO,CAAQ;AACf,IAAA,WAAW,CAAQ;AACnB,IAAA,qBAAqB,CAAyB;AAC9C,IAAA,WAAW,CAAW;AACtB,IAAA,MAAM,CAA0B;AAChC,IAAA,OAAO,CAA0B;AACjC,IAAA,QAAQ,CAAwB;AAChC,IAAA,OAAO,CAAwB;AAC/B,IAAA,OAAO,CAAwB;AAC/B,IAAA,YAAY,CAAwB;AACpC,IAAA,YAAY,CAAwB;AACpC,IAAA,aAAa,CAAwB;AACrC,IAAA,YAAY,CAAwB;AACpC,IAAA,aAAa,CAAyB;AACtC,IAAA,cAAc,CAAU;AACxB,IAAA,WAAW,CAAW;AAE7B,IAAA,WAAA,CAAY,MAA2B,EAAA;QACnC,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC;AAClC,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAC9B,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAC9B,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACtC,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAChC,QAAA,IAAI,CAAC,WAAW,GAAG,OAAO,MAAM,CAAC,WAAW,KAAK,SAAS,GAAG,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC;AACvF,QAAA,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,CAAC;AAC1D,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC5B,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAC9B,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAChC,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAC9B,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAC9B,QAAA,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;AACxC,QAAA,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;AACxC,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;AAC1C,QAAA,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,QAAQ,CAAC;QACtD,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,GAAG,CAAC;AACnD,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;;AAGtC,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE;AAC7D,YAAA,QAAQ,IAAI,CAAC,IAAI;gBACb,KAAK,SAAS,CAAC,QAAQ,CAAC;gBACxB,KAAK,SAAS,CAAC,aAAa,CAAC;gBAC7B,KAAK,SAAS,CAAC,IAAI;AACf,oBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;oBACxB,MAAM;aACb;SACJ;KACJ;AACJ;;AClEK,MAAO,UAAW,SAAQ,KAAK,CAAA;AAC1B,IAAA,SAAS,CAAU;IACnB,cAAc,GAAG,KAAK,CAAC;AACvB,IAAA,SAAS,CAAU;AACnB,IAAA,KAAK,CAAwB;AAC7B,IAAA,QAAQ,CAAwB;AAChC,IAAA,WAAW,CAAwB;AACnC,IAAA,OAAO,CAAwB;AAC/B,IAAA,MAAM,CAAwB;AAC9B,IAAA,MAAM,CAA6B;AAE1C,IAAA,WAAA,CAAY,MAAwB,EAAA;QAChC,KAAK,CAAC,MAAM,CAAC,CAAC;AACd,QAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,KAAK,CAAC;AACrD,QAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AAClC,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AAC1B,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAChC,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACtC,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAC9B,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC5B,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;KAC/B;AACJ;;ACTD;;AAEG;AACG,MAAO,WAAY,SAAQ,KAAK,CAAA;AAClC;;AAEG;AACI,IAAA,mBAAmB,CAAuB;AAE1C,IAAA,mBAAmB,CAAW;AAC9B,IAAA,SAAS,CAAqB;AAC9B,IAAA,KAAK,CAA2B;AAChC,IAAA,OAAO,CAAwB;AAC/B,IAAA,IAAI,CAAqB;AACzB,IAAA,SAAS,CAAe;AACxB,IAAA,UAAU,CAAe;AACzB,IAAA,MAAM,CAA0B;AAChC,IAAA,OAAO,CAA0B;AACjC,IAAA,UAAU,CAA+B;AACzC,IAAA,OAAO,CAA0B;AAExC,IAAA,WAAA,CAAY,MAAyB,EAAA;QACjC,KAAK,CAAC,MAAM,CAAC,CAAC;AACd,QAAA,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC;AACtD,QAAA,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC;AACtD,QAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AAClC,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,qBAAqB,CAAC,IAAI,CAAC;AAC5D,QAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AAClC,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AACpC,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC5B,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAC9B,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AACpC,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;KACjC;AACJ;;ACrDD;;AAEG;AACG,MAAO,YAAa,SAAQ,WAAW,CAAA;AACzB,IAAA,KAAK,CAA2B;AAEhD,IAAA,WAAA,CAAY,MAA0B,EAAA;QAClC,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,IAAI,IAAI,mBAAmB,EAAE,CAAC;QACnF,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,qBAAqB,CAAC,KAAK,CAAC;QAC7D,IAAI,CAAC,KAAK,GAAG,OAAO,MAAM,CAAC,KAAK,KAAK,UAAU,GAAG,MAAM,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;KACnF;AACJ;;AClBD;;AAEG;AACG,MAAO,aAAc,SAAQ,YAAY,CAAA;AAC3C,IAAA,QAAQ,CAAkB;AAE1B,IAAA,WAAA,CAAY,MAA0B,EAAA;QAClC,KAAK,CAAC,MAAM,CAAC,CAAC;AACd,QAAA,IAAI,CAAC,QAAQ,GAAI,MAAc,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,IAAI,IAAI,mBAAmB,EAAE,CAAC;KACtF;AACJ;;AC4BK,MAAO,WAAY,SAAQ,KAAK,CAAA;IAC3B,QAAQ,GAAG,KAAK,CAAC;IACjB,UAAU,GAAG,IAAI,CAAC;IAClB,YAAY,GAAU,EAAE,CAAC;IACzB,gBAAgB,GAAU,EAAE,CAAC;IAC7B,iBAAiB,GAAU,EAAE,CAAC;AAC9B,IAAA,qBAAqB,GAAsB,EAAE,CAAC,EAAE,CAAC,CAAC;AAClD,IAAA,gBAAgB,GACnB,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC;IACnC,OAAO,GAAW,EAAE,CAAC;IACrB,kBAAkB,GAAW,EAAE,CAAC;IAChC,WAAW,GAAG,EAAE,CAAC;IACjB,gBAAgB,GAAG,EAAE,CAAC;IACtB,WAAW,GAAG,EAAE,CAAC;IACjB,WAAW,GAAG,EAAE,CAAC;IACjB,UAAU,GAAG,EAAE,CAAC;IAChB,WAAW,GAAG,EAAE,CAAC;IACjB,WAAW,GAAG,EAAE,CAAC;IACjB,WAAW,GAAG,EAAE,CAAC;IACjB,YAAY,GAAG,EAAE,CAAC;IAClB,eAAe,GAAG,EAAE,CAAC;IACrB,YAAY,GAAG,EAAE,CAAC;AAClB,IAAA,QAAQ,CAAU;IAClB,0BAA0B,GAAG,IAAI,CAAC;IAClC,aAAa,GAAG,KAAK,CAAC;IACtB,cAAc,GAAG,KAAK,CAAC;IACvB,gBAAgB,GAAG,KAAK,CAAC;IACzB,aAAa,GAAoB,EAAE,CAAC;IACpC,uBAAuB,GAAa,EAAE,CAAC;AACvC,IAAA,eAAe,GAA4B,MAAK,GAAG,CAAC;AACpD,IAAA,eAAe,GAAyB,MAAK,GAAG,CAAC;AACjD,IAAA,OAAO,CAAwB;AAC/B,IAAA,MAAM,CAA+B;AACrC,IAAA,KAAK,CAAc;AACnB,IAAA,MAAM,CAAmC;AACzC,IAAA,QAAQ,CAAsC;AAC9C,IAAA,kBAAkB,CAAc;IAE/B,SAAS,GAAU,EAAE,CAAC;IACtB,mBAAmB,GAAW,CAAC,CAAC;IAChC,wBAAwB,GAAW,EAAE,CAAC;AAE9C,IAAA,WAAA,CAAY,MAAyB,EAAA;AACjC,QAAA,KAAK,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAuB,CAAC,CAAC;AAClE,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAE5B,QAAA,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,WAAW,MAAM,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC,CAAC,CAAC;QAC9F,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,uBAAuB,EAAE,KAAI;AACnG,YAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;AAC1B,YAAA,IAAI,CAAC,mBAAmB,GAAG,YAAY,CAAC;AACxC,YAAA,IAAI,CAAC,wBAAwB,GAAG,uBAAiC,CAAC;AACtE,SAAC,CAAC,CAAC;KACN;AAED,IAAA,IAAW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;AAED,IAAA,IAAW,kBAAkB,GAAA;QACzB,OAAO,IAAI,CAAC,mBAAmB,CAAC;KACnC;AAED,IAAA,IAAW,uBAAuB,GAAA;QAC9B,OAAO,IAAI,CAAC,wBAAwB,CAAC;KACxC;AAEM,IAAA,QAAQ,GAAG,CAAC,KAAU,KAAI,GAAG,CAAC;AAC9B,IAAA,UAAU,GAAG,CAAC,KAAU,KAAI,GAAG,CAAC;AAC1C;;AC5FK,MAAO,aAAc,SAAQ,KAAK,CAAA;AAC7B,IAAA,SAAS,CAAU;AACnB,IAAA,SAAS,CAAO;AAChB,IAAA,SAAS,CAAe;AACxB,IAAA,UAAU,CAAe;AACzB,IAAA,SAAS,CAAmB;AAC5B,IAAA,gBAAgB,CAAU;AAC1B,IAAA,uBAAuB,CAA2B;AAClD,IAAA,UAAU,CAAU;AACpB,IAAA,KAAK,CAA4B;AACjC,IAAA,MAAM,CAA+B;AACrC,IAAA,OAAO,CAA+B;AACtC,IAAA,UAAU,CAAwB;AAClC,IAAA,OAAO,CAAwB;AAEtC,IAAA,WAAA,CAAY,MAA2B,EAAA;QACnC,KAAK,CAAC,MAAM,CAAC,CAAC;AACd,QAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AAClC,QAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AAClC,QAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AAClC,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,OAAO,CAAC;QAC7C,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,IAAI,KAAK,CAAC;AACzD,QAAA,IAAI,CAAC,uBAAuB,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAC9D,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AACpC,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AAC1B,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC5B,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAC9B,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AACpC,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;KACjC;AACJ;;MCjDY,kBAAkB,CAAA;AAC3B,IAAA,KAAK,CAAS;AACd,IAAA,KAAK,CAAO;AAEZ,IAAA,WAAA,CAAY,MAA0B,EAAA;AAClC,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AAC1B,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;KAC7B;AACJ,CAAA;AAWK,MAAO,gBAAiB,SAAQ,KAAK,CAAA;AAChC,IAAA,iBAAiB,CAAW;AAC5B,IAAA,UAAU,CAAU;AACpB,IAAA,OAAO,CAAuB;AAC9B,IAAA,MAAM,CAA0B;AAChC,IAAA,OAAO,CAA+B;AACtC,IAAA,OAAO,CAAwB;AAEtC,IAAA,WAAA,CAAY,MAA8B,EAAA;QACtC,KAAK,CAAC,MAAM,CAAC,CAAC;AACd,QAAA,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAClD,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AACpC,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAC9B,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC5B,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAC9B,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;KACjC;AACJ;;AClBK,MAAO,WAAY,SAAQ,KAAK,CAAA;AAC3B,IAAA,QAAQ,CAAU;AAClB,IAAA,WAAW,CAAU;AACrB,IAAA,WAAW,CAAU;AACrB,IAAA,OAAO,CAAU;AACjB,IAAA,gBAAgB,CAAW;AAC3B,IAAA,OAAO,CAAyB;AAChC,IAAA,QAAQ,CAAW;AACnB,IAAA,qBAAqB,CAAU;AAC/B,IAAA,OAAO,CAAwB;AAC/B,IAAA,QAAQ,CAAwB;AAChC,IAAA,YAAY,CAAU;AACtB,IAAA,QAAQ,CAAW;AACnB,IAAA,MAAM,CAAW;AACjB,IAAA,KAAK,CAAW;AAEvB,IAAA,WAAA,CAAY,MAAyB,EAAA;QACjC,KAAK,CAAC,MAAM,CAAC,CAAC;AACd,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAChC,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAC9B,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACtC,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACtC,QAAA,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAChD,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAC9B,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAChC,QAAA,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,CAAC;AAC1D,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAC9B,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAChC,QAAA,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;AACxC,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAChC,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC5B,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;KAC7B;AACJ,CAAA;MAEY,YAAY,CAAA;AACrB,IAAA,KAAK,CAAS;AACd,IAAA,KAAK,CAAO;AAEZ,IAAA,WAAA,CAAY,MAAoB,EAAA;AAC5B,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AAC1B,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;KAC7B;AACJ;;AC5CK,MAAO,WAAY,SAAQ,KAAK,CAAA;AAC3B,IAAA,QAAQ,CAAwB;AAChC,IAAA,UAAU,CAAwB;AAClC,IAAA,KAAK,CAAW;AAChB,IAAA,GAAG,CAAS;AACZ,IAAA,GAAG,CAAS;AACZ,IAAA,IAAI,CAAS;AACb,IAAA,WAAW,CAA4B;AACvC,IAAA,QAAQ,CAAU;AAClB,IAAA,MAAM,CAAS;AACf,IAAA,MAAM,CAAS;AACf,IAAA,cAAc,CAAS;IAEb,WAAW,GAAG,GAAG,CAAC;AAEnC,IAAA,WAAA,CAAY,MAAyB,EAAA;QACjC,KAAK,CAAC,MAAM,CAAC,CAAC;AACd,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAChC,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC;QACnC,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;QAC3B,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC;QAC1C,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,YAAY,CAAC;QACtD,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAC;AACzC,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC5B,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,KAAK,CAAC;KACxD;AACJ;;AClCK,MAAO,aAAc,SAAQ,KAAK,CAAA;AAC7B,IAAA,IAAI,CAAU;AACd,IAAA,IAAI,CAAU;AACd,IAAA,SAAS,CAAO;AAChB,IAAA,KAAK,GAAkC;AAC1C,QAAA,MAAM,EAAE,UAAU;KACrB,CAAC;AACK,IAAA,QAAQ,CAAiB;AACzB,IAAA,iBAAiB,CAAS;AAC1B,IAAA,WAAW,CAAS;AACpB,IAAA,4BAA4B,CAAQ;AACpC,IAAA,SAAS,CAAgB;AAEhC,IAAA,WAAA,CAAY,MAA2B,EAAA;QACnC,KAAK,CAAC,MAAM,CAAC,CAAC;AACd,QAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,KAAK,GAAG;YACT,GAAG,MAAM,CAAC,KAAK;YACf,GAAG,IAAI,CAAC,KAAK;SAChB,CAAC;AACF,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,IAAI,KAAK,CAAA;QAC1D,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,KAAK,CAAA;QAC9C,IAAI,CAAC,4BAA4B,GAAG,MAAM,CAAC,4BAA4B,IAAI,EAAE,CAAC;QAC9E,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC;KAC7C;AACJ;;ACrBK,MAAO,SAAU,SAAQ,KAAK,CAAA;AACzB,IAAA,IAAI,CAAsB;AAC1B,IAAA,gBAAgB,CAA2B;AAC3C,IAAA,MAAM,CAA6B;AACnC,IAAA,QAAQ,CAAiB;AACzB,IAAA,SAAS,CAAU;AACnB,IAAA,SAAS,CAAO;AAChB,IAAA,SAAS,CAAe;AACxB,IAAA,UAAU,CAAe;AACzB,IAAA,SAAS,CAAmB;AAC5B,IAAA,mBAAmB,CAAW;AAC9B,IAAA,KAAK,CAA4B;AACjC,IAAA,MAAM,CAA0B;AAChC,IAAA,OAAO,CAA+B;AACtC,IAAA,UAAU,CAAwB;AAClC,IAAA,OAAO,CAAwB;AAEtC,IAAA,WAAA,CAAY,MAAuB,EAAA;QAC/B,KAAK,CAAC,MAAM,CAAC,CAAC;AACd,QAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,IAAI,UAAU,CAAC;QAC9D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC;AACrC,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAChC,QAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AAClC,QAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AAClC,QAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AAClC,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,OAAO,CAAC;AAC7C,QAAA,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC;AACtD,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AAC1B,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC5B,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAC9B,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AACpC,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAC9B,QAAA,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;KACvD;AACJ;;ACvCK,MAAO,iBAAkB,SAAQ,KAAK,CAAA;AACjC,IAAA,OAAO,CAAU;AACjB,IAAA,YAAY,CAAU;AACtB,IAAA,QAAQ,CAAW;AACnB,IAAA,QAAQ,CAAU;AAClB,IAAA,YAAY,CAAU;AACtB,IAAA,qBAAqB,CAAmB;IACxC,WAAW,GAAU,EAAE,CAAC;AAExB,IAAA,QAAQ,CAAwB;AAChC,IAAA,UAAU,CAAwB;AAClC,IAAA,OAAO,CAAwB;AAC/B,IAAA,QAAQ,CAA2B;AACnC,IAAA,MAAM,CAA+B;AAE5C,IAAA,WAAA,CAAY,MAA+B,EAAA;AACvC,QAAA,KAAK,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,YAAY,EAA6B,CAAC,CAAC;AAC9E,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC5B,QAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE;AAC5B,YAAA,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC;SACzF;KACJ;AACJ;;ICxCW,YAuBX;AAvBD,CAAA,UAAY,WAAW,EAAA;AACnB,IAAA,WAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,WAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,WAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,WAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;AAC/B,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,WAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,WAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,WAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,WAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,WAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACrB,CAAC,EAvBW,WAAW,KAAX,WAAW,GAuBtB,EAAA,CAAA,CAAA;;ICvBW,SAEX;AAFD,CAAA,UAAY,QAAQ,EAAA;AAChB,IAAA,QAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACf,CAAC,EAFW,QAAQ,KAAR,QAAQ,GAEnB,EAAA,CAAA,CAAA;;MCSY,IAAI,CAAA;IACN,MAAM,GAA+B,EAAE,CAAC;AACxC,IAAA,IAAI,GAAa,QAAQ,CAAC,GAAG,CAAC;AAC9B,IAAA,OAAO,CAAiB;AAE/B,IAAA,WAAA,CAAY,MAAkB,EAAA;QAC1B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;AACnC,QAAA,IAAI,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;AACnC,YAAA,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC;SAC7B;KACJ;AACJ;;AClBK,MAAO,GAAI,SAAQ,IAAI,CAAA;IACT,MAAM,GAAgB,EAAE,CAAC;AACzB,IAAA,IAAI,GAAa,QAAQ,CAAC,GAAG,CAAC;AAE9C,IAAA,WAAA,CAAY,MAAkB,EAAA;QAC1B,KAAK,CAAC,MAAM,CAAC,CAAC;KACjB;AACJ;;MCDqB,SAAS,CAAA;IACpB,MAAM,GAAY,EAAE,CAAC;AACrB,IAAA,OAAO,CAAwB;AAC/B,IAAA,IAAI,CAAiB;AAE5B,IAAA,WAAA,CAAY,MAAuB,EAAA;QAC/B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;KACtC;AACJ;;ACXK,MAAO,QAAS,SAAQ,SAAS,CAAA;AAC5B,IAAA,YAAY,CAAwB;AACpC,IAAA,WAAW,CAAwB;AAE1C,IAAA,WAAA,CAAY,MAAsB,EAAA;QAC9B,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;KACtC;AACJ;;ACZK,MAAO,OAAQ,SAAQ,SAAS,CAAA;AAClC;;AAEG;IACI,MAAM,GAAI,KAAK,CAAC;AACvB;;AAEG;IACI,cAAc,GACjB,YAAY,CAAC;AACjB;;AAEG;IACI,UAAU,GACb,YAAY,CAAC;AAEV,IAAA,OAAO,GAAmB,MAAM,IAAI,CAAC;AAErC,IAAA,IAAI,CAAa;AACd,IAAA,SAAS,CAAY;AAC/B,IAAA,WAAA,CAAY,MAAe,EAAA;QACvB,KAAK,CAAC,MAAyB,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC;QACrC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,YAAY,CAAC;QAC5D,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,YAAY,CAAC;AAEpD,QAAA,IAAI,MAAM,CAAC,OAAO,EAAE;AAChB,YAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;SACjC;AAED,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;AAC7C,QAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAM,GAAA,EAAA,GAAG,CAAK,CAAA,EAAA,IAAI,CAAC,IAAY,CAAC,GAAG,CAAC,CAAA,CAAE,CAAC,CAAC;KAChG;AACJ;;MCbY,aAAa,CAAA;AACtB,IAAA,WAAA,CAAY,MAAW,EAAA;AACnB,QAAA,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC;QACvC,QAAQ,IAAI;YACR,KAAK,WAAW,CAAC,YAAY;AACzB,gBAAA,OAAO,IAAI,iBAAiB,CAAC,MAAiC,CAAC,CAAC;YACpE,KAAK,WAAW,CAAC,MAAM,CAAC;YACxB,KAAK,WAAW,CAAC,MAAM;AACnB,gBAAA,OAAO,IAAI,SAAS,CAAC,MAAyB,CAAC,CAAC;YACpD,KAAK,WAAW,CAAC,QAAQ;AACrB,gBAAA,OAAO,IAAI,aAAa,CAAC,MAA6B,CAAC,CAAC;YAC5D,KAAK,WAAW,CAAC,OAAO;AACpB,gBAAA,IAAI,aAAa,KAAK,QAAQ,EAAE;AAC5B,oBAAA,OAAO,IAAI,kBAAkB,CAAC,MAAkC,CAAC,CAAC;iBACrE;AACD,gBAAA,OAAO,IAAI,YAAY,CAAC,MAA4B,CAAC,CAAC;YAC1D,KAAK,WAAW,CAAC,KAAK;AAClB,gBAAA,OAAO,IAAI,UAAU,CAAC,MAA0B,CAAC,CAAC;YACtD,KAAK,WAAW,CAAC,IAAI,CAAC;YACtB,KAAK,WAAW,CAAC,QAAQ,CAAC;YAC1B,KAAK,WAAW,CAAC,aAAa,CAAC;YAC/B,KAAK,WAAW,CAAC,IAAI;AACjB,gBAAA,OAAO,IAAI,aAAa,CAAC,MAA6B,CAAC,CAAC;YAC5D,KAAK,WAAW,CAAC,MAAM;AACnB,gBAAA,OAAO,IAAI,YAAY,CAAC,MAA4B,CAAC,CAAC;YAC1D,KAAK,WAAW,CAAC,IAAI;AACjB,gBAAA,OAAO,IAAI,WAAW,CAAC,MAA2B,CAAC,CAAC;YACxD,KAAK,WAAW,CAAC,QAAQ;AACrB,gBAAA,OAAO,IAAI,QAAQ,CAAC,MAAwB,CAAC,CAAC;YAClD,KAAK,WAAW,CAAC,OAAO;AACpB,gBAAA,OAAO,IAAI,WAAW,CAAC,MAA2B,CAAC,CAAC;YACxD,KAAK,WAAW,CAAC,MAAM;AACnB,gBAAA,OAAO,IAAI,cAAc,CAAC,MAA8B,CAAC,CAAC;YAC9D,KAAK,WAAW,CAAC,MAAM;AACnB,gBAAA,OAAO,IAAI,WAAW,CAAC,MAA2B,CAAC,CAAC;YACxD,KAAK,WAAW,CAAC,KAAK;AAClB,gBAAA,OAAO,IAAI,aAAa,CAAC,MAA4B,CAAC,CAAC;YAC3D,KAAK,WAAW,CAAC,KAAK;AAClB,gBAAA,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACxC,KAAK,WAAW,CAAC,GAAG;AAChB,gBAAA,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;YAC3B,KAAK,WAAW,CAAC,OAAO;AACpB,gBAAA,OAAO,IAAI,OAAO,CAAC,MAAiB,CAAC,CAAC;YAC1C,KAAK,WAAW,CAAC,MAAM;AACnB,gBAAA,OAAO,IAAI,WAAW,CAAC,MAA2B,CAAC,CAAC;YACxD,KAAK,WAAW,CAAC,IAAI;AACjB,gBAAA,OAAO,IAAI,aAAa,CAAC,MAA6B,CAAC,CAAC;SAC/D;KACJ;AACJ;;ICxEW,cAGX;AAHD,CAAA,UAAY,aAAa,EAAA;AACrB,IAAA,aAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,aAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACvB,CAAC,EAHW,aAAa,KAAb,aAAa,GAGxB,EAAA,CAAA,CAAA;;MCGY,uBAAuB,CAAA;IAChC,gBAAgB,GAAG,KAAK,CAAC;AACR,IAAA,iBAAiB,GAAmD,IAAI,GAAG,EAAE,CAAC;AAC/F,IAAA,MAAM,QAAQ,GAAA;AACV,QAAA,MAAM,eAAe,GAAG,YAAW;YAC/B,MAAM,EAAE,0BAA0B,EAAE,GAAG,MAAM,2EAE5C,CAAC;YACF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,0BAA0B,CAAC,CAAC;AACnF,SAAC,CAAC;AACF,QAAA,MAAM,SAAS,GAAG,YAAW;YACzB,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,qEAEtC,CAAC;YACF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;AACvE,SAAC,CAAC;AACF,QAAA,MAAM,aAAa,GAAG,YAAW;YAC7B,MAAM,EAAE,wBAAwB,EAAE,GAAG,MAAM,yEAE1C,CAAC;YACF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;AAC3E,SAAC,CAAC;AACF,QAAA,MAAM,iBAAiB,GAAG,YAAW;YACjC,MAAM,EAAE,uBAAuB,EAAE,GAAG,MAAM,wEAEzC,CAAC;YACF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;AAC1E,SAAC,CAAC;AACF,QAAA,MAAM,eAAe,GAAG,YAAW;YAC/B,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,sEAEvC,CAAC;YACF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;AACzE,SAAC,CAAC;AACF,QAAA,MAAM,qBAAqB,GAAG,YAAW;YACrC,MAAM,EAAE,2BAA2B,EAAE,GAAG,MAAM,4EAE7C,CAAC;YACF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,EAAE,2BAA2B,CAAC,CAAC;AACrF,SAAC,CAAC;AACF,QAAA,MAAM,gBAAgB,GAAG,YAAW;YAChC,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,uEAExC,CAAC;YACF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;AACvE,SAAC,CAAC;AAEF,QAAA,MAAM,gBAAgB,GAAG,YAAW;YAChC,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,uEAExC,CAAC;YACF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC;AAC3E,SAAC,CAAC;AACF,QAAA,MAAM,aAAa,GAAG,YAAW;YAC7B,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,oEAErC,CAAC;YACF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;AACrE,SAAC,CAAC;AACF,QAAA,MAAM,0BAA0B,GAAG,YAAW;YAC1C,MAAM,EAAE,gCAAgC,EAAE,GAAG,MAAM,iFAElD,CAAC;YACF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,kBAAkB,EAAE,gCAAgC,CAAC,CAAC;AAC/F,SAAC,CAAC;AACF,QAAA,MAAM,gBAAgB,GAAG,YAAW;YAChC,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,uEAExC,CAAC;YACF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;AACxE,SAAC,CAAC;AACF,QAAA,MAAM,cAAc,GAAG,YAAW;YAC9B,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,qEAEtC,CAAC;YACF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;AACvE,SAAC,CAAC;AACF,QAAA,MAAM,kBAAkB,GAAG,YAAW;YAClC,MAAM,EAAE,wBAAwB,EAAE,GAAG,MAAM,yEAE1C,CAAC;YACF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAAC;AACzE,SAAC,CAAC;AACF,QAAA,MAAM,gBAAgB,GAAG,YAAW;YAChC,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,uEAExC,CAAC;YACF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC;AAC3E,SAAC,CAAC;AACF,QAAA,MAAM,sBAAsB,GAAG,YAAW;YACtC,MAAM,EAAE,4BAA4B,EAAE,GAAG,MAAM,6EAE9C,CAAC;YACF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,4BAA4B,CAAC,CAAC;AACvF,SAAC,CAAC;AACF,QAAA,MAAM,mBAAmB,GAAG,YAAW;YACnC,MAAM,EAAE,yBAAyB,EAAE,GAAG,MAAM,0EAE3C,CAAC;YACF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,yBAAyB,CAAC,CAAC;AAC3E,SAAC,CAAC;AACF,QAAA,MAAM,cAAc,GAAG,YAAW;YAC9B,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,qEAEtC,CAAC;YACF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;AACrE,SAAC,CAAC;AACF,QAAA,MAAM,cAAc,GAAG,YAAW;YAC9B,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,qEAEtC,CAAC;YACF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;AACvE,SAAC,CAAC;AACF,QAAA,MAAM,gBAAgB,GAAG,YAAW;YAChC,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,uEAExC,CAAC;YACF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;AACvE,SAAC,CAAC;AAEF,QAAA,MAAM,YAAY,GAAG,YAAW;YAC5B,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,mEAEpC,CAAC;YACF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;AACrE,SAAC,CAAC;AACF,QAAA,MAAM,cAAc,GAAG,YAAW;YAC9B,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,qEAEtC,CAAC;YACF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;AACvE,SAAC,CAAC;AAEF,QAAA,MAAM,oBAAoB,GAAG,YAAW;YACpC,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,kEAA6D,CAAC;YAClG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;AAC1E,SAAC,CAAC;AACF,QAAA,MAAM,mBAAmB,GAAG,YAAW;YACnC,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,iEAA2D,CAAC;YAC/F,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;AACxE,SAAC,CAAC;AACF,QAAA,MAAM,eAAe,GAAG,YAAW;YAC/B,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,6DAA8C,CAAC;YAC9E,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;AAC3D,SAAC,CAAC;AAEF,QAAA,MAAM,sBAAsB,GAAG,YAAW;YACtC,MAAM,EAAE,wBAAwB,EAAE,GAAG,MAAM,yEAE1C,CAAC;YACF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC;AAC/E,SAAC,CAAC;AAEF,QAAA,MAAM,kBAAkB,GAAG;YACvB,eAAe;YACf,SAAS;YACT,aAAa;YACb,iBAAiB;YACjB,eAAe;YACf,qBAAqB;YACrB,gBAAgB;YAChB,gBAAgB;YAChB,aAAa;YACb,0BAA0B;YAC1B,gBAAgB;YAChB,cAAc;YACd,kBAAkB;YAClB,gBAAgB;YAChB,sBAAsB;YACtB,mBAAmB;YACnB,cAAc;YACd,cAAc;YACd,gBAAgB;YAChB,YAAY;YACZ,cAAc;YACd,oBAAoB;YACpB,mBAAmB;YACnB,eAAe;YACf,sBAAsB;SACzB,CAAC;AACF,QAAA,MAAM,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;AACzE,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;KAChC;AAED,IAAA,GAAG,CAAC,IAA0C,EAAA;QAC1C,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KAC3C;wGA1LQ,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,cADV,MAAM,EAAA,CAAA,CAAA;;4FACnB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;MCSZ,WAAW,CAAA;AAC7B,IAAA,KAAK,CAAwB;AAC7B,IAAA,aAAa,CAAM;AACnB,IAAA,YAAY,CAA0B;AAMtC,IAAA,WAAA,CAAY,EAAE,KAAK,EAAE,aAAa,EAAE,YAAY,EAA+F,EAAA;AAC3I,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;AACnC,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;KACpC;AACJ,CAAA;AAEK,MAAO,YAAa,SAAQ,WAAW,CAAA;AACzC,IAAA,KAAK,CAAwB;IAE7B,WAAY,CAAA,EACR,KAAK,EACL,KAAK,EACL,aAAa,EACb,YAAY,EAMf,EAAA;AACG,QAAA,KAAK,CAAC;YACF,KAAK;YACL,aAAa;YACb,YAAY;AACf,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACtB;AAEM,IAAA,eAAe,CAAC,gBAAkC,EAAA;QACrD,MAAM,SAAS,GAAG,gBAAgB,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,EAAE,CAAsB,CAAC;QAE7F,SAAS,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEtC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE;;AAEtC,YAAA,SAAS,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAC9E;AAED,QAAA,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;QAEzC,SAAS,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;AAEtD,QAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;AACnC,QAAA,OAAO,SAAS,CAAC;KACpB;AAEM,IAAA,kBAAkB,CAAC,SAA4B,EAAA;QAClD,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,SAAS,CAAC,IAAI,EAAE;AACpC,YAAA,SAAS,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC;SACtC;QACD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE;YACtC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AACzF,gBAAA,SAAS,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC;aACtC;SACJ;KACJ;AAEM,IAAA,eAAe,CAAC,SAA4B,EAAA;AAC/C,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC;YAAE,OAAO;QAEhD,SAAS,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AACtC,QAAA,SAAS,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC3E,QAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;KACtC;IAEM,YAAY,GAAA;AACf,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC/B,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,2BAAA,CAA6B,CAAC,CAAC;SAClD;AAED,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAiB,CAAC;QAE/C,QAAQ,SAAS;YACb,KAAK,SAAS,CAAC,MAAM,CAAC;AACtB,YAAA,KAAK,SAAS,CAAC,MAAM,EAAE;gBACnB,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;aAClD;AACD,YAAA,KAAK,SAAS,CAAC,OAAO,EAAE;gBACpB,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,KAAK,QAAQ,EAAE;oBACvC,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;iBACzD;qBAAM;oBACH,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;iBACnD;aACJ;YACD,KAAK,SAAS,CAAC,IAAI,CAAC;YACpB,KAAK,SAAS,CAAC,QAAQ,CAAC;YACxB,KAAK,SAAS,CAAC,aAAa,CAAC;AAC7B,YAAA,KAAK,SAAS,CAAC,IAAI,EAAE;gBACjB,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;aAChD;YACD,KAAK,SAAS,CAAC,MAAM,CAAC;YACtB,KAAK,SAAS,CAAC,OAAO,CAAC;AACvB,YAAA,KAAK,SAAS,CAAC,MAAM,EAAE;gBACnB,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;aAClD;YACD,KAAK,SAAS,CAAC,YAAY,CAAC;YAC5B,KAAK,SAAS,CAAC,QAAQ,CAAC;YACxB,KAAK,SAAS,CAAC,KAAK,CAAC;YACrB,KAAK,SAAS,CAAC,kBAAkB,CAAC;YAClC,KAAK,SAAS,CAAC,IAAI,CAAC;YACpB,KAAK,SAAS,CAAC,MAAM,CAAC;YACtB,KAAK,SAAS,CAAC,KAAK,CAAC;YACrB,KAAK,SAAS,CAAC,KAAK,CAAC;YACrB,KAAK,SAAS,CAAC,IAAI,CAAC;YACpB,KAAK,SAAS,CAAC,MAAM,CAAC;YACtB,KAAK,SAAS,CAAC,QAAQ,CAAC;YACxB,KAAK,SAAS,CAAC,IAAI,CAAC;YACpB,KAAK,SAAS,CAAC,MAAM,CAAC;YACtB,KAAK,SAAS,CAAC,cAAc,CAAC;YAC9B,KAAK,SAAS,CAAC,MAAM,CAAC;YACtB,KAAK,SAAS,CAAC,UAAU,CAAC;AAC1B,YAAA,KAAK,SAAS,CAAC,MAAM,EAAE;gBACnB,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;aAC3C;YAED,KAAK,SAAS,CAAC,MAAM;AACjB,gBAAA,OAAO,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC;AAChD,YAAA;gBACI,MAAM,IAAI,KAAK,CAAC,CAAsC,mCAAA,EAAA,IAAI,CAAC,KAAK,EAAE,IAAI,CAAI,EAAA,CAAA,CAAC,CAAC;SACnF;KACJ;AAEO,IAAA,wBAAwB,CAAC,SAA4B,EAAA;QACzD,QAAQ,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI;YACjC,KAAK,SAAS,CAAC,QAAQ,CAAC;YACxB,KAAK,SAAS,CAAC,MAAM,CAAC;YACtB,KAAK,SAAS,CAAC,IAAI,CAAC;YACpB,KAAK,SAAS,CAAC,MAAM;AACjB,gBAAA,MAAM,aAAa,GAAiB,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,SAAS,CACrF,CAAC,KAAc,KAAI;AACf,oBAAA,IAAI,KAAK,KAAK,EAAE,EAAE;AACd,wBAAA,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;qBACvE;AACL,iBAAC,CACJ,CAAC;AAEF,gBAAA,SAAS,CAAC,SAAS,CAAC,MAAK;oBACrB,aAAa,CAAC,WAAW,EAAE,CAAC;AAChC,iBAAC,CAAC,CAAC;gBAEH,OAAO;SACd;KACJ;AACJ,CAAA;AAEK,MAAO,gBAAiB,SAAQ,WAAW,CAAA;AAC7C,IAAA,MAAM,CAAwB;IAE9B,WAAY,CAAA,EACR,KAAK,EACL,MAAM,EACN,aAAa,EACb,YAAY,EAMf,EAAA;AACG,QAAA,KAAK,CAAC;YACF,KAAK;YACL,aAAa;YACb,YAAY;AACf,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;KACxB;AAEM,IAAA,eAAe,CAAC,gBAAkC,EAAA;QACrD,MAAM,SAAS,GAAG,gBAAgB,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,EAAE,CAAsB,CAAC;QAC7F,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACxC,SAAS,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AACtC,QAAA,OAAO,SAAS,CAAC;KACpB;AAEM,IAAA,eAAe,CAAC,SAA4B,EAAA;QAC/C,SAAS,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3C,SAAS,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;KACzC;IAEM,YAAY,GAAA;AACf,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AAChC,YAAA,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;SACnD;AAED,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,IAAqB,CAAC;QACxD,QAAQ,aAAa;YACjB,KAAK,aAAa,CAAC,QAAQ,CAAC;YAC5B,KAAK,aAAa,CAAC,OAAO;gBACtB,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AAChD,YAAA;gBACI,MAAM,IAAI,KAAK,CAAC,CAAsC,mCAAA,EAAA,IAAI,CAAC,MAAM,EAAE,IAAI,CAAI,EAAA,CAAA,CAAC,CAAC;SACpF;KACJ;AACJ,CAAA;AAEK,MAAO,WAAY,SAAQ,WAAW,CAAA;AACxC,IAAA,MAAM,CAAkB;IAExB,WAAY,CAAA,EACR,KAAK,EACL,MAAM,EACN,aAAa,EACb,YAAY,EAMf,EAAA;QACG,KAAK,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC,CAAC;AAE9C,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;KACxB;AAEM,IAAA,eAAe,CAAC,gBAAkC,EAAA;QACrD,MAAM,SAAS,GAAQ,gBAAgB,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QAC7E,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAa,CAAC;QAC/C,SAAS,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAkB,CAAC;QACnD,SAAS,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;AACtD,QAAA,OAAO,SAAS,CAAC;KACpB;AAEM,IAAA,eAAe,CAAC,SAA4B,EAAA;QAC/C,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACxC,SAAS,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;KACzC;IAEM,YAAY,GAAA;AACf,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AAChC,YAAA,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;SACnD;AAED,QAAA,QAAQ,IAAI,CAAC,MAAM,EAAE,IAAI;YACrB,KAAK,QAAQ,CAAC,GAAG;gBACb,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC/C,YAAA;gBACI,MAAM,IAAI,KAAK,CAAC,CAAsC,mCAAA,EAAA,IAAI,CAAC,MAAM,EAAE,IAAI,CAAI,EAAA,CAAA,CAAC,CAAC;SACpF;KACJ;AACJ;;MC/OY,oBAAoB,CAAA;AACrB,IAAA,EAAE,CAAU;AACZ,IAAA,MAAM,CAAsD;AAC5D,IAAA,KAAK,CAAa;AAClB,IAAA,aAAa,CAAa;AAC1B,IAAA,eAAe,CAAe;IAEtC,IACI,YAAY,CAAC,OAMhB,EAAA;QACG,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;AACrD,QAAA,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACb,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACrB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;KACtC;IAEM,SAAS,GAA6B,IAAI,CAAC;AAEjC,IAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAE7D,IAAA,uBAAuB,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC;IAEnD,QAAQ,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;YAChB,IAAI,CAAE,IAAI,CAAC,MAAoB,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,EAAE;AAC1C,gBAAA,IAAI,CAAC,MAAoB,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAI,IAAI,CAAC,MAAoB,CAAC,IAAI,CAAC;aACnF;AAED,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,YAAY,CAAC;gBACpC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,KAAK,EAAE,IAAI,CAAC,MAAmB;gBAC/B,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,YAAY,EAAE,IAAI,CAAC,uBAAuB;AAC7C,aAAA,CAAC,CAAC;SACN;AAAM,aAAA,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;AAC3B,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,gBAAgB,CAAC;gBACxC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,IAAI,CAAC,MAAmB;gBAChC,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,YAAY,EAAE,IAAI,CAAC,uBAAuB;AAC7C,aAAA,CAAC,CAAC;SACN;AAAM,aAAA,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;AACtB,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,WAAW,CAAC;gBACnC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,IAAI,CAAC,MAAa;gBAC1B,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,YAAY,EAAE,IAAI,CAAC,uBAAuB;AAC7C,aAAA,CAAC,CAAC;SACN;;YAAM,MAAM,IAAI,KAAK,CAAC,CAAA,mCAAA,EAAsC,IAAI,CAAC,OAAO,CAAI,EAAA,CAAA,CAAC,CAAC;AAE/E,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAE7E,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YACpC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;SAC9D;KACJ;IAEM,WAAW,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,eAAe,EAAE,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;SAC9D;KACJ;IAEM,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC;KAC7B;IAEO,OAAO,GAAA;AACX,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AACjC,YAAA,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,CAAC,CAAE,SAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAC7C;IAEO,WAAW,GAAA;AACf,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AACjC,YAAA,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,CAAC,CAAE,aAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACjD;IAEO,MAAM,GAAA;AACV,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AACjC,YAAA,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,CAAC,CAAE,QAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAC5C;AAED,IAAA,IAAY,OAAO,GAAA;AACf,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAC3B,QAAA,IAAI,MAAM,YAAY,aAAa,EAAE;YACjC,OAAQ,MAAgB,CAAC,IAAI,CAAC;SACjC;aAAM;YACH,OAAO,MAAM,EAAE,IAAI,CAAC;SACvB;KACJ;wGA1GQ,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4FAApB,oBAAoB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC,SAAS;mBAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAA;8BASjC,YAAY,EAAA,CAAA;sBADf,KAAK;;;MCnBG,oBAAoB,CAAA;AAEtB,IAAA,EAAE,CAAU;IAGZ,OAAO,GAAoB,EAAE,CAAC;AAErC;;AAEG;AACH,IAAA,MAAM,GAAG,KAAK,CAAsC,IAAI,EAAE;AACtD,QAAA,SAAS,EAAE,CAAC,MAAM,KAAK;AACnB,YAAA;gBACI,IAAI,EAAE,QAAQ,CAAC,GAAG;gBAClB,MAAM;AACT,aAAA;AACJ,SAAA;AACJ,KAAA,CAAC,CAAC;IAEH,IAAI,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAG/D,IAAA,IAAI,CAAa;IAGjB,aAAa,GAAS,EAAE,CAAC;AAEhC,IAAA,uBAAuB,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC;wGA3BjD,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,krBCbjC,sWAYA,EAAA,MAAA,EAAA,CAAA,sDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,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,EAAAC,oBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FDCa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;+BACI,gBAAgB,EAAA,aAAA,EAGX,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,sWAAA,EAAA,MAAA,EAAA,CAAA,sDAAA,CAAA,EAAA,CAAA;8BAI9B,EAAE,EAAA,CAAA;sBADR,KAAK;gBAIC,OAAO,EAAA,CAAA;sBADb,KAAK;gBAkBC,IAAI,EAAA,CAAA;sBADV,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIlB,aAAa,EAAA,CAAA;sBADnB,KAAK;;;ME7BG,mBAAmB,CAAA;AAErB,IAAA,KAAK,CAAS;IAGd,iBAAiB,GAAmC,IAAI,CAAC;wGALvD,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,yHCRhC,4nBAsBA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,sBAAA,EAAA,0BAAA,EAAA,6BAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDda,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,SAAS;+BACI,eAAe,EAAA,QAAA,EAAA,4nBAAA,EAAA,CAAA;8BAKlB,KAAK,EAAA,CAAA;sBADX,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIlB,iBAAiB,EAAA,CAAA;sBADvB,KAAK;;;MEFG,YAAY,CAAA;AAEd,IAAA,EAAE,CAAU;AAGZ,IAAA,MAAM,CAAO;AAGb,IAAA,KAAK,CAAa;AAGlB,IAAA,aAAa,CAAM;IAE1B,SAAS,GAAG,SAAS,CAAC;AAEf,IAAA,gBAAgB,CAAC,aAAkB,EAAA;AACtC,QAAA,IAAI,aAAa;AAAE,YAAA,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,aAAa,EAAE,GAAG,aAAa,CAAC;QAC3F,OAAO,IAAI,CAAC,aAAa,CAAC;KAC7B;AAEM,IAAA,UAAU,CAAC,KAAU,EAAA;QACxB,OAAO,KAAK,YAAY,QAAQ,CAAC;KACpC;wGAtBQ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAZ,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,YAAY,qICVzB,mmHAoFA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,aAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,OAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,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,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,SAAA,EAAA,eAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,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,EAAAC,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,sBAAA,EAAA,0BAAA,EAAA,6BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FD1Ea,YAAY,EAAA,UAAA,EAAA,CAAA;kBAJxB,SAAS;+BAEI,OAAO,EAAA,QAAA,EAAA,mmHAAA,EAAA,CAAA;8BAIV,EAAE,EAAA,CAAA;sBADR,KAAK;gBAIC,MAAM,EAAA,CAAA;sBADZ,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIlB,KAAK,EAAA,CAAA;sBADX,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIlB,aAAa,EAAA,CAAA;sBADnB,KAAK;;;;;;;;AEAJ,MAAO,SAAU,SAAQ,KAAK,CAAA;AACzB,IAAA,MAAM,CAAS;AACf,IAAA,KAAK,CAAY;AACjB,IAAA,WAAW,CAAS;AACpB,IAAA,WAAW,CAAS;AACpB,IAAA,WAAW,CAAS;AACpB,IAAA,cAAc,CAAS;AACvB,IAAA,QAAQ,CAAU;AAClB,IAAA,YAAY,CAA0D;AACtE,IAAA,YAAY,CAA6C;AACzD,IAAA,cAAc,CAA4C;AAC1D,IAAA,cAAc,CAA2E;AACzF,IAAA,kBAAkB,CAAU;AAEnC,IAAA,WAAA,CAAY,MAAuB,EAAA;QAC/B,KAAK,CAAC,MAAM,CAAC,CAAC;AACd,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;AAChC,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACtC,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACtC,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACtC,QAAA,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;AAC5C,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAChC,QAAA,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;AACxC,QAAA,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;AACxC,QAAA,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;AAC5C,QAAA,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;AAC5C,QAAA,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;KACvD;AACJ;;ACjBK,MAAO,WAAY,SAAQ,KAAK,CAAA;AAC3B,IAAA,QAAQ,CAAkB;AAC1B,IAAA,SAAS,CAAU;IACnB,QAAQ,GAAG,KAAK,CAAC;IACjB,SAAS,GAAG,KAAK,CAAC;IAClB,KAAK,GAAG,KAAK,CAAC;AACd,IAAA,OAAO,CAA0B;AACjC,IAAA,SAAS,CAAW;AACpB,IAAA,SAAS,CAAU;AACnB,IAAA,KAAK,CAAqB;AAC1B,IAAA,SAAS,CAAoB;IAC7B,KAAK,GAAG,KAAK,CAAC;IACd,WAAW,GAAyB,EAAE,CAAC;IACvC,UAAU,GAAG,CAAC,CAAC;AACf,IAAA,UAAU,CAAU;AACpB,IAAA,cAAc,CAAU;IACxB,eAAe,GAAyC,KAAK,CAAC;AAC9D,IAAA,UAAU,CAAU;AACpB,IAAA,UAAU,CAAc;AACxB,IAAA,UAAU,CAAgC;AAC1C,IAAA,UAAU,CAAgC;AAEjD,IAAA,WAAA,CAAY,MAAyB,EAAA;QACjC,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,SAAS,CAAC;QAC7C,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,KAAK,CAAC;QAC3C,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC;QACnC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,IAAI,CAAY,SAAA,EAAA,UAAU,EAAE,CAAA,CAAE,CAAC;AAClD,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,KAAK,MAAQ,GAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,KAAK,CAAC;AAC3C,QAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AAClC,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;QAC5C,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC;AACzC,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AACpC,QAAA,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;AAC5C,QAAA,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAC9C,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AACpC,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;KACvC;AACJ;;ACrEK,MAAO,aAAc,SAAQ,KAAK,CAAA;AAC7B,IAAA,IAAI,CAAmB;AAE9B,IAAA,WAAA,CAAY,MAA2B,EAAA;QACnC,KAAK,CAAC,MAAM,CAAC,CAAC;AACd,QAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;KAC3B;AACJ;;ACAK,MAAO,uBAAwB,SAAQ,KAAK,CAAA;AACvC,IAAA,SAAS,CAAW;AACpB,IAAA,UAAU,CAAa;AACvB,IAAA,UAAU,CAAmC;AAC7C,IAAA,WAAW,CAA6C;AAE/D,IAAA,WAAA,CAAY,MAAgC,EAAA;QACxC,KAAK,CAAC,MAAM,CAAC,CAAC;AACd,QAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AAClC,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AACpC,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AACpC,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;KACzC;AACJ;;AClBK,MAAO,WAAY,SAAQ,KAAK,CAAA;AAC3B,IAAA,OAAO,CAAY;AACnB,IAAA,QAAQ,CAAW;AACnB,IAAA,OAAO,CAAO;AACd,IAAA,KAAK,CAAgC;AAE5C,IAAA,WAAA,CAAY,MAAyB,EAAA;QACjC,KAAK,CAAC,MAAM,CAAC,CAAC;AACd,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAC9B,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAChC,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAC9B,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;KAC7B;AACJ;;ACFK,MAAO,mBAAoB,SAAQ,KAAK,CAAA;AACnC,IAAA,WAAW,CAAS;AACpB,IAAA,WAAW,CAAS;AACpB,IAAA,QAAQ,CAAS;AACjB,IAAA,WAAW,CAAS;AACpB,IAAA,mBAAmB,CAAuB;AAC1C,IAAA,iBAAiB,CAAU;AAC3B,IAAA,iBAAiB,CAAU;AAC3B,IAAA,iBAAiB,CAAqB;AACtC,IAAA,WAAW,CAAU;AACrB,IAAA,MAAM,CAAU;IAChB,mBAAmB,GAAa,EAAE,CAAC;AACnC,IAAA,aAAa,CAAsD;AACnE,IAAA,cAAc,CAAc;AAC5B,IAAA,aAAa,CAAyC;AAE7D,IAAA,WAAA,CAAY,MAA4B,EAAA;QACpC,KAAK,CAAC,MAAM,CAAC,CAAC;AACd,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACtC,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACtC,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAChC,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACtC,QAAA,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC;AACtD,QAAA,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAClD,QAAA,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAClD,QAAA,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAClD,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACtC,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,IAAI,EAAE,CAAC;AAC5D,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;AAC1C,QAAA,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;AAC5C,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;KAC7C;AACJ;;ACtCK,MAAO,eAAgB,SAAQ,KAAK,CAAA;AAC/B,IAAA,IAAI,CAAU;AACd,IAAA,IAAI,CAAU;AACd,IAAA,SAAS,CAAO;AAChB,IAAA,KAAK,GAAkC;AAC1C,QAAA,MAAM,EAAE,UAAU;KACrB,CAAC;AACK,IAAA,MAAM,CAAU;AAChB,IAAA,QAAQ,CAAiB;AACzB,IAAA,iBAAiB,CAAS;AAC1B,IAAA,WAAW,CAAS;AACpB,IAAA,4BAA4B,CAAQ;AACpC,IAAA,SAAS,CAAgB;AAEhC,IAAA,WAAA,CAAY,MAA6B,EAAA;QACrC,KAAK,CAAC,MAAM,CAAC,CAAC;AACd,QAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,KAAK,GAAG;YACT,GAAG,MAAM,CAAC,KAAK;YACf,GAAG,IAAI,CAAC,KAAK;SAChB,CAAC;AACF,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC5B,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,IAAI,KAAK,CAAC;QAC3D,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,KAAK,CAAA;QAC9C,IAAI,CAAC,4BAA4B,GAAG,MAAM,CAAC,4BAA4B,IAAI,EAAE,CAAC;QAC9E,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC;KAC7C;AACJ;;ACjCK,MAAO,eAAgB,SAAQ,KAAK,CAAA;AACtC,IAAA,SAAS,CAAS;AAClB,IAAA,QAAQ,CAAsB;AAC9B,IAAA,cAAc,CAAe;AAC7B,IAAA,WAAW,CAAuC;AAClD,IAAA,WAAA,CAAY,MAA6B,EAAA;QACrC,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAC;QACzC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,OAAO,CAAA;AACtD,QAAA,IAAI,MAAM,CAAC,WAAW,EAAE;AACpB,YAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;SACzC;KACJ;AACJ;;MCSY,SAAS,CAAA;AAClB,IAAA,EAAE,CAAU;AACZ;;AAEG;AACH,IAAA,QAAQ,CAAiB;IACzB,IAAI,GAAW,EAAE,CAAC;AAClB,IAAA,kBAAkB,CAAU;AAC5B,IAAA,IAAI,CAAa;AACjB,IAAA,KAAK,CAAU;AACf;;AAEG;AACH,IAAA,YAAY,CAAuB;AACnC,IAAA,OAAO,CAAU;AACjB;;AAEG;AACH,IAAA,IAAI,CAAuD;AAC3D;;AAEG;AACH,IAAA,YAAY,CAAU;AACtB,IAAA,IAAI,CAAU;AACd,IAAA,IAAI,CAAU;AACd,IAAA,WAAW,CAAU;AACrB,IAAA,OAAO,CAAO;AACd,IAAA,qBAAqB,CAAyB;AAC9C,IAAA,mBAAmB,CAAuB;AAC1C,IAAA,QAAQ,CAAW;AACnB,IAAA,QAAQ,CAAU;AAClB,IAAA,mBAAmB,CAAW;AAC9B,IAAA,SAAS,CAAW;AACpB,IAAA,WAAW,CAAW;AACtB,IAAA,KAAK,CAA4B;AACjC,IAAA,aAAa,CAAsB;AACnC;;;;AAIG;AACH,IAAA,iBAAiB,CAAW;AAC5B;;AAEG;AACH,IAAA,SAAS,CAAqB;AAC9B;;AAEG;AACH,IAAA,KAAK,CAAqB;AAC1B;;AAEG;AACH,IAAA,OAAO,CAA4C;AACnD,IAAA,SAAS,CAMH;AACN,IAAA,IAAI,CAAa;AACjB,IAAA,qBAAqB,CAAU;AAC/B,IAAA,SAAS,CAAU;AACnB,IAAA,MAAM,CAAU;AAChB,IAAA,KAAK,CAAa;AAClB,IAAA,0BAA0B,CAAW;AACrC;;AAEG;AACH,IAAA,OAAO,CAAQ;AACf;;AAEG;AACH,IAAA,OAAO,CAAQ;AACf;;AAEG;AACH,IAAA,WAAW,CAAQ;AACnB;;AAEG;AACH,IAAA,SAAS,CAAe;AACxB;;AAEG;AACH,IAAA,UAAU,CAAe;AACzB;;AAEG;AACH,IAAA,QAAQ,CAAU;AAClB;;AAEG;AACH,IAAA,SAAS,CAAU;AAEnB;;AAEG;AACH,IAAA,YAAY,CAAO;AACnB;;AAEG;AACH,IAAA,aAAa,CAAiB;AAC9B,IAAA,OAAO,CAAiB;AACxB;;AAEG;AACH,IAAA,MAAM,CAA+B;AACrC;;AAEG;AACH,IAAA,OAAO,CAA+B;AACtC,IAAA,UAAU,CAAwB;AAClC,IAAA,OAAO,CAAwB;AAC/B,IAAA,QAAQ,CAA4B;AACpC,IAAA,QAAQ,CAAwB;AAChC;;AAEG;AACH,IAAA,OAAO,CAAwB;AAC/B,IAAA,OAAO,CAAwB;AAC/B,IAAA,YAAY,CAAwB;AACpC,IAAA,YAAY,CAAwB;AACpC,IAAA,aAAa,CAAwB;AACrC,IAAA,YAAY,CAAwB;AACpC;;AAEG;AACH,IAAA,KAAK,CAAwB;AAC7B;;AAEG;AACH,IAAA,QAAQ,CAAwB;AAChC;;AAEG;AACH,IAAA,WAAW,CAAwB;AAEnC;;AAEG;AACH,IAAA,UAAU,CAAwB;AAElC,IAAA,gBAAgB,CAAO;AACvB,IAAA,yBAAyB,CAAO;AAEhC;;AAEG;AACH,IAAA,cAAc,CAAwB;AAEtC,IAAA,SAAS,CAAW;AACpB,IAAA,mBAAmB,CAAU;AAE7B,IAAA,MAAM,CAUJ;AAEF,IAAA,0BAA0B,CAAW;AACrC,IAAA,KAAK,CAAU;AACf;;AAEG;IACH,WAAW,GAAI,KAAK,CAAC;AAErB,IAAA,WAAA,CAAY,MAAW,EAAA;QACnB,IAAI,CAAC,0BAA0B,GAAG,MAAM,CAAC,0BAA0B,IAAI,KAAK,CAAC;AAC7E,QAAA,QAAQ,MAAM,CAAC,IAAI;YACf,KAAK,SAAS,CAAC,IAAI;AACf,gBAAA,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;YACnC,KAAK,SAAS,CAAC,YAAY;AACvB,gBAAA,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;YACzC,KAAK,SAAS,CAAC,KAAK;AAChB,gBAAA,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;YACrC,KAAK,SAAS,CAAC,OAAO;AAClB,gBAAA,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;YACnC,KAAK,SAAS,CAAC,MAAM;AACjB,gBAAA,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;YACpC,KAAK,SAAS,CAAC,MAAM;AACjB,gBAAA,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;YACtC,KAAK,SAAS,CAAC,MAAM,CAAC;YACtB,KAAK,SAAS,CAAC,MAAM;AACjB,gBAAA,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;YACjC,KAAK,SAAS,CAAC,QAAQ;AACnB,gBAAA,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;YACrC,KAAK,SAAS,CAAC,IAAI;AACf,gBAAA,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;YACrC,KAAK,SAAS,CAAC,MAAM;AACjB,gBAAA,OAAO,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;YACvC,KAAK,SAAS,CAAC,OAAO;gBAClB,OAAO,MAAM,CAAC,aAAa,KAAK,QAAQ,GAAG,IAAI,kBAAkB,CAAC,MAAM,CAAC,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;YACzG,KAAK,SAAS,CAAC,IAAI,CAAC;YACpB,KAAK,SAAS,CAAC,QAAQ,CAAC;YACxB,KAAK,SAAS,CAAC,aAAa,CAAC;YAC7B,KAAK,SAAS,CAAC,IAAI;AACf,gBAAA,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;YACrC,KAAK,SAAS,CAAC,MAAM;AACjB,gBAAA,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;YACnC,KAAK,SAAS,CAAC,KAAK;AAChB,gBAAA,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACxC,KAAK,SAAS,CAAC,QAAQ;AACnB,gBAAA,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;YACrC,KAAK,SAAS,CAAC,KAAK;AAChB,gBAAA,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;YAClC,KAAK,SAAS,CAAC,kBAAkB;AAC7B,gBAAA,OAAO,IAAI,uBAAuB,CAAC,MAAM,CAAC,CAAC;YAC/C,KAAK,SAAS,CAAC,IAAI;AACf,gBAAA,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;YACjC,KAAK,SAAS,CAAC,MAAM;AACjB,gBAAA,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;YACnC,KAAK,SAAS,CAAC,cAAc;AACzB,gBAAA,OAAO,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAC3C,KAAK,SAAS,CAAC,MAAM;AACjB,gBAAA,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;YACnC,KAAK,SAAS,CAAC,MAAM;AACjB,gBAAA,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;YACnC,KAAK,SAAS,CAAC,UAAU;AACrB,gBAAA,OAAO,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;YACvC,KAAK,SAAS,CAAC,MAAM;gBACjB,MAAM,EAAE,gBAAgB,EAAE,GAAG,YAAY,EAAE,GAAG,MAAM,CAAC;AACrD,gBAAA,OAAO,IAAI,gBAAgB,CAAC,YAAY,CAAC,CAAC;SACjD;KACJ;AACJ,CAAA;MAEY,MAAM,CAAA;AACf,IAAA,KAAK,CAAS;AACd,IAAA,KAAK,CAAO;IAEZ,WAAY,CAAA,KAAa,EAAE,KAAU,EAAA;AACjC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACtB;AACJ;;MC7LY,eAAe,CAAA;AAyJH,IAAA,cAAA,CAAA;AACE,IAAA,gBAAA,CAAA;AACA,IAAA,iBAAA,CAAA;AA1JN,IAAA,qBAAqB,GAAG,SAAS,CAA0B,iBAAiB,CAAC,CAAC;IACrF,OAAO,GAAG,KAAK,CAAC;AACnB,IAAA,aAAa,GAAG,sBAAsB,CAAC,IAAI,CAAC;AAC5C,IAAA,OAAO,MAAM,GAAG,CAAC,CAAC;AAGlB,IAAA,eAAe,CAAU;AAGzB,IAAA,EAAE,GAAG,CAAY,SAAA,EAAA,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;IAG5C,0BAA0B,GAAG,IAAI,CAAC;IAGlC,QAAQ,GAAG,KAAK,CAAC;AAGjB,IAAA,OAAO,CAAU;IAGjB,QAAQ,GAAG,KAAK,CAAC;IAGjB,UAAU,GAAG,IAAI,CAAC;IAGlB,iBAAiB,GAAU,EAAE,CAAC;AAG9B,IAAA,kBAAkB,CAAU;IAG5B,yBAAyB,GAAG,KAAK,CAAC;AAGlC,IAAA,kBAAkB,CAAU;IAG5B,cAAc,GAAI,MAAM,CAAC;AAGzB,IAAA,sBAAsB,CAAU;IAGhC,cAAc,GAAU,EAAE,CAAC;IAG3B,kBAAkB,GAAG,CAAC,CAAC;IAGvB,YAAY,GAAgB,EAAE,CAAC;IAG/B,gBAAgB,GAAgB,EAAE,CAAC;IAGnC,aAAa,GAAe,EAAE,CAAC;AAG/B,IAAA,WAAW,CAAU;IAGrB,uBAAuB,GAAa,EAAE,CAAC;IAGvC,cAAc,GAAa,EAAE,CAAC;IAG9B,aAAa,GAAoB,EAAE,CAAC;IAGpC,aAAa,GAAG,KAAK,CAAC;IAGtB,cAAc,GAAG,KAAK,CAAC;IAGvB,gBAAgB,GAAG,KAAK,CAAC;AAIzB,IAAA,eAAe,GAAG,IAAI,YAAY,EAAE,CAAC;AAIrC,IAAA,eAAe,GAAG,IAAI,YAAY,EAAE,CAAC;AAIrC,IAAA,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;AAI7B,IAAA,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;AAI5B,IAAA,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;AAI7B,IAAA,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;AAI9B,IAAA,UAAU,GAAG,IAAI,YAAY,EAAE,CAAC;AAIhC,IAAA,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;AAI7B,IAAA,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;AAI3B,IAAA,MAAM,GAAG,IAAI,YAAY,EAAW,CAAC;AAIrC,IAAA,QAAQ,GAAG,IAAI,YAAY,EAAa,CAAC;AAIzC,IAAA,kBAAkB,GAAG,IAAI,YAAY,EAAQ,CAAC;IAG9C,KAAK,GAAiB,IAAI,CAAC;IAG3B,YAAY,GAAwB,IAAI,CAAC;AAGzC,IAAA,YAAY,CAAyB;AAErC,IAAA,KAAK,CAAM;IACX,OAAO,GAAG,KAAK,CAAC;IAChB,SAAS,GAAG,KAAK,CAAC;IAClB,aAAa,GAAG,KAAK,CAAC;IACtB,SAAS,GAAG,KAAK,CAAC;IAClB,QAAQ,GAAU,EAAE,CAAC;AACrB,IAAA,eAAe,CAAkB;IACjC,iBAAiB,GAAG,sCAAsC,CAAC;AAE1D,IAAA,QAAQ,CAAY;AACpB,IAAA,SAAS,CAAY;IACrB,kBAAkB,GAAG,EAAE,CAAC;AACf,IAAA,aAAa,GAAG,IAAI,OAAO,EAAQ,CAAC;AAErD,IAAA,WAAA,CACqB,cAA8B,EAC5B,gBAAkC,EAClC,iBAAoC,EAAA;QAFtC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC5B,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAClC,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;KACvD;IAEG,QAAQ,GAAA;AACX,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;AAC/B,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY;AACpC,iBAAA,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC;AACnD,iBAAA,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,SAAS,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;SAClD;AACD,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CACrC,CAAC,KAAgB,KACb,IAAI,SAAS,CAAC;AACV,YAAA,GAAG,KAAK;AACR,YAAA,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC3C,SAAA,CAAC,CACT,CAAC;AAEF,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB;AACxC,aAAA,MAAM,CAAC,CAAC,SAAoB,KAAK,CAAC,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,IAAI,CAAC;AAC7E,aAAA,GAAG,CAAC,CAAC,SAAoB,KAAI;AAC1B,YAAA,IAAI,SAAS,CAAC,KAAK,EAAE;AAChB,gBAAA,SAAiB,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;aACnE;AAED,YAAA,MAAM,eAAe,GAAG,IAAI,qBAAqB,CAAC,EAAE,GAAG,SAAS,CAAC,qBAAqB,EAAE,CAAC,CAAC;AAE1F,YAAA,IAAI,eAAe,EAAE,UAAU,EAAE;AAC7B,gBAAA,QAAQ,SAAS,CAAC,IAAI;oBAClB,KAAK,SAAS,CAAC,IAAI;wBACf,eAAe,CAAC,UAAU,GAAG,IAAI,CAAC,0BAA0B,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;wBACzF,MAAM;oBACV,KAAK,SAAS,CAAC,IAAI;AACf,wBAAA,eAAe,CAAC,UAAU,GAAG,IAAI,CAAC,0BAA0B,CACxD,eAAe,CAAC,UAAW,EAC3B,eAAe,CAAC,UAAU,CAC7B,CAAC;wBACF,MAAM;iBACb;AACD,gBAAA,SAAS,CAAC,qBAAqB,GAAG,eAAe,CAAC;aACrD;AAED,YAAA,OAAO,SAAS,CAAC;AACrB,SAAC,CAAC,CAAC;QAEP,MAAM,qBAAqB,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1F,IAAI,qBAAqB,EAAE;AACvB,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY;AAClC,iBAAA,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;iBACzC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;AACxB,iBAAA,IAAI,EAAE,CAAC;AACZ,YAAA,MAAM,IAAI,KAAK,CAAC,iBAAiB,aAAa,CAAA,iDAAA,CAAmD,CAAC,CAAC;SACtG;AACD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,MAAW,EAAE,KAAK,KAAI;AAC9D,YAAA,IAAI,KAAK,CAAC,IAAI,EAAE;AACZ,gBAAA,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBACxD,IAAI,CAAC,kBAA0B,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC;aACrE;AACD,YAAA,OAAO,MAAM,CAAC;SACjB,EAAE,EAAE,CAAC,CAAC;QAEP,IAAI,CAAC,eAAe,GAAG,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC;QAEhD,IAAI,CAAC,gBAAgB,EAAE,CAAC;KAC3B;IAEM,oBAAoB,GAAA;AACvB,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,uBAAuB,EAAE;AAC5C,YAAA,OAAO,IAAI,CAAC,YAAY,EAAE,uBAAuB,CAAC;SACrD;AAED,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE,WAAW;cAC5C,CAAG,EAAA,IAAI,CAAC,kBAAkB,CAAI,CAAA,EAAA,IAAI,CAAC,YAAY,EAAE,WAAW,CAAE,CAAA;cAC9D,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,0CAA0C,EAAE;gBACtE,KAAK,EAAE,IAAI,CAAC,kBAAkB;AACjC,aAAA,CAAC,CAAC;AAET,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,YAAY;cAC9C,CAAG,EAAA,IAAI,CAAC,kBAAkB,CAAI,CAAA,EAAA,IAAI,CAAC,YAAY,EAAE,YAAY,CAAE,CAAA;cAC/D,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,2CAA2C,EAAE;gBACvE,KAAK,EAAE,IAAI,CAAC,kBAAkB;AACjC,aAAA,CAAC,CAAC;AAET,QAAA,OAAO,IAAI,CAAC,kBAAkB,KAAK,CAAC,GAAG,WAAW,GAAG,YAAY,CAAC;KACrE;IAEO,0BAA0B,CAAC,UAAkB,EAAE,MAAc,EAAA;AACjE,QAAA,IAAI,MAAM,KAAK,UAAU,EAAE;;AAEvB,YAAA,OAAO,KAAK,CAAC;SAChB;AAED,QAAA,IAAI,UAAU,KAAK,IAAI,EAAE;AACrB,YAAA,OAAO,MAAM;AACR,iBAAA,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;AACrB,iBAAA,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;SAChC;AAED,QAAA,IAAI,UAAU,KAAK,IAAI,EAAE;AACrB,YAAA,OAAO,MAAM;AACR,iBAAA,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;AACrB,iBAAA,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;SAChC;AAED,QAAA,OAAO,MAAM,CAAC;KACjB;AAEO,IAAA,0BAA0B,CAAC,MAAc,EAAA;;AAE7C,QAAA,OAAO,MAAM;AACR,aAAA,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;AACrB,aAAA,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC;AACvB,aAAA,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC;AACvB,aAAA,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC;AACzB,aAAA,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC;AACvB,aAAA,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC;AACzB,aAAA,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;AACrB,aAAA,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC;AACvB,aAAA,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;AACtB,aAAA,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;KAClC;AAEM,IAAA,WAAW,CAAC,OAAsB,EAAA;QACrC,IAAI,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC,gBAAgB,CAAC,EAAE;AACjD,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;SACxB;QAED,IAAI,CAAC,eAAe,EAAE,CAAC;KAC1B;IAEM,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;KACjC;IAEM,WAAW,GAAA;QACd,OAAO,IAAI,CAAC,cAAc,CAAC;KAC9B;IAEM,oBAAoB,GAAA;QACvB,OAAO,IAAI,CAAC,iBAAiB,CAAC;KACjC;AAES,IAAA,uBAAuB,CAAC,KAAU,EAAA;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,WAAW,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AACjD,QAAA,MAAM,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,aAAa,GAAG,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC;AAEzD,QAAA,OAAO,MAAM,CAAC;KACjB;AAEM,IAAA,YAAY,CAAC,KAAU,EAAA;;QAE1B,MAAM,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;AACnD,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACrC;AAEM,IAAA,gBAAgB,CAAC,KAAgC,EAAA;AACpD,QAAA,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE;YAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,KAAK,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;SAC1D;QAED,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KAC1C;IAEM,iBAAiB,GAAA;QACpB,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO;AAEhC,QAAA,IAAI,CAAC,aAAa;AACb,aAAA,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;aAC1G,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAI;YAC1B,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,KAAK,YAAY,QAAQ,GAAG,KAAK,EAAE,GAAG,KAAK,CAAC,CAAC;AAChG,SAAC,CAAC,CAAC;KACV;IAGY,MAAA,UAAU,GAAA;QACnB,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,SAAS,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,IAAI,QAAQ,GAAQ,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE;YAC7B,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC1C;AAAM,aAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACnB,YAAA,QAAQ,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC3B;AACD,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAEzB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACpB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;KAC7B;AAED,IAAA,SAAS,CAAC,YAAiB,EAAE,OAAY,EAAE,IAAS,EAAA;AAChD,QAAA,YAAY,CAAC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;AACxC,QAAA,YAAY,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;;QAGlC,IAAI,OAAO,YAAY,CAAC,QAAQ,CAAC,WAAW,KAAK,UAAU,EAAE;AACzD,YAAA,YAAY,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;SACvC;KACJ;AAED,IAAA,eAAe,CAAC,eAAwB,EAAA;QACpC,IAAI,eAAe,EAAE;YACjB,OAAO;SACV;QACD,IAAI,CAAC,UAAU,EAAE,CAAC;KACrB;IACM,UAAU,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACpB,OAAO;SACV;QACD,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC;AACpD,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC;AACpE,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,YAAY,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;SACxC;aAAM;AACH,YAAA,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;SACnC;KACJ;IAEM,MAAM,GAAA;QACT,IAAI,CAAC,UAAU,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,MAAM,eAAe,GAAG,IAAI,CAAC,qBAAqB,EAAE,EAAE,aAAa,CAAC;QACpE,IAAI,eAAe,EAAE;YACjB,eAAe,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;SAC1D;KACJ;IAEM,KAAK,GAAA;QACR,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACrD,IAAI,CAAC,UAAU,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;KAClC;IAES,UAAU,GAAA;AAChB,QAAA,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;KACvB;IAEM,MAAM,GAAA;AACT,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM;YAAE,OAAO;QAElC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACrF,QAAA,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;AACtB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7B,IAAI,CAAC,UAAU,EAAE,CAAC;KACrB;AAEM,IAAA,iBAAiB,CAAC,QAAa,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ;YAAE,OAAO;AACtB,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;;AACjD,YAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAC;KACnC;AAEM,IAAA,gBAAgB,CAAC,QAAkB,EAAA;AACtC,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,KAAU,KAAI;AAC3B,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACvB,QAAQ,CAAC,KAAK,CAAC,CAAC;AACpB,SAAC,CAAC;KACL;AAEM,IAAA,iBAAiB,CAAC,SAAmB,EAAA;AACxC,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;KAC9B;AAEM,IAAA,UAAU,CAAC,KAAU,EAAA;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACtB;AAEM,IAAA,gBAAgB,CAAC,QAAiB,EAAA;AACrC,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC5B;IAEM,aAAa,CAAC,GAAQ,EAAE,IAAY,EAAA;AACvC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,IAAI,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,SAAS,GAAG,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;KAC1G;IAEM,iBAAiB,CACpB,KAAc,EACd,OASG,EAAA;AAEH,QAAA,OAAO,OAAO,EAAE,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,EAAE,KAAK,CAAC;KAC7D;IAEM,gBAAgB,CACnB,KAAc,EACd,OASG,EAAA;AAEH,QAAA,IAAI,CAAC,OAAO;YAAE,OAAO,CAAA,EAAG,KAAK,CAAA,CAAE,CAAC;AAEhC,QAAA,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;AAC1D,QAAA,OAAO,MAAM,GAAG,MAAM,CAAC,KAAK,GAAG,CAAG,EAAA,KAAK,EAAE,CAAC;KAC7C;IAEM,cAAc,CAAC,GAAQ,EAAE,IAAY,EAAA;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC5C,QAAA,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK;AAAE,YAAA,OAAO,IAAI,CAAC;;AAC9C,YAAA,OAAO,KAAK,CAAC;KACrB;AAEM,IAAA,eAAe,CAAC,GAAQ,EAAE,IAAY,EAAE,YAA6C,EAAA;QACxF,IAAI,CAAC,YAAY,EAAE;YACf,OAAO;SACV;QACD,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE;YAC/B,OAAO,YAAY,CAAC,IAAI,CAAC;SAC5B;aAAM;YACH,OAAO,YAAY,CAAC,KAAK,CAAC;SAC7B;KACJ;IAEM,QAAQ,CAAC,GAAQ,EAAE,IAAY,EAAA;AAClC,QAAA,OAAO,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;KAChE;IAEM,UAAU,GAAA;AACb,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACzE,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACzE,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7E,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAE3E,MAAM,aAAa,GAAG,CAAC,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;AAC1E,QAAA,aAAa,CAAC,OAAO,CAAC,CAAC,MAAc,KAAK,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;KAC9E;IAEO,SAAS,CAAC,KAAa,EAAE,EAAY,EAAA;AACzC,QAAA,OAAO,IAAI,MAAM,CAAC,KAAK,EAAE,MAAK;AAC1B,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,OAAO,KAAK,CAAC;SAChB,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;KACvC;IAEM,YAAY,GAAA;QACf,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO;AAE3B,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;KACpC;IAEM,YAAY,GAAA;AACf,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KAC1B;AAED;;;AAGG;AACI,IAAA,WAAW,CAAC,KAAa,EAAA;AAC5B,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC;QAC1B,IAAI,IAAI,GAAG,MAAM;AAAE,YAAA,OAAO,UAAU,CAAC;QACrC,OAAO,CAAA,EAAG,IAAI,CAAA,EAAA,CAAI,CAAC;KACtB;AAEM,IAAA,QAAQ,CAAC,KAAU,EAAA;AACtB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,KAAK,EAAE,GAAG,KAAK,CAAC;KACnD;AAEO,IAAA,UAAU,CAAC,KAAU,EAAA;QACzB,OAAO,KAAK,YAAY,QAAQ,CAAC;KACpC;AAEM,IAAA,oBAAoB,CAAC,GAAc,EAAA;QACtC,OAAO;AACH,YAAA,KAAK,EAAE,CAAC;AACR,YAAA,kBAAkB,EAAE,GAAG,CAAC,mBAAmB,EAAE,kBAAkB;AAC/D,YAAA,MAAM,EAAE,EAAE;SACb,CAAC;KACL;AAEM,IAAA,mBAAmB,CAAC,GAAc,EAAA;QACrC,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/B,YAAA,gBAAgB,EAAE,GAAG,CAAC,mBAAmB,EAAE,gBAAgB;AAC3D,YAAA,kBAAkB,EAAE,GAAG,CAAC,mBAAmB,EAAE,kBAAkB;AAC/D,YAAA,MAAM,EAAE,EAAE;SACb,CAAC;KACL;AAEM,IAAA,kBAAkB,CAAC,GAAc,EAAA;QACpC,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/B,YAAA,gBAAgB,EAAE,GAAG,CAAC,mBAAmB,EAAE,gBAAgB;AAC3D,YAAA,kBAAkB,EAAE,GAAG,CAAC,mBAAmB,EAAE,kBAAkB;AAC/D,YAAA,MAAM,EAAE,GAAG,CAAC,mBAAmB,EAAE,cAAc;SAClD,CAAC;KACL;AAEM,IAAA,mBAAmB,CAAC,GAAc,EAAA;QACrC,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;AAC/B,YAAA,gBAAgB,EAAE,GAAG,CAAC,mBAAmB,EAAE,gBAAgB;AAC3D,YAAA,kBAAkB,EAAE,GAAG,CAAC,mBAAmB,EAAE,kBAAkB;AAC/D,YAAA,MAAM,EAAE,GAAG,CAAC,mBAAmB,EAAE,cAAc;SAClD,CAAC;KACL;IAEM,mBAAmB,CAAC,GAAc,EAAE,OAAY,EAAA;AACnD,QAAA,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC;QACvB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAC1C,QAAA,OAAO,UAAU,GAAI,KAAkB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,GAAG,KAAK,CAAC;KACvE;AAEM,IAAA,qBAAqB,CAAC,OAAY,EAAA;AACrC,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,OAAO,CAAC,CAAC;QAC1B,IAAI,CAAC,MAAM,EAAE,CAAC;KACjB;IAEO,eAAe,GAAA;QACnB,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACvC,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,EAAE,EAAE,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACjF,IAAI,KAAK,EAAE;gBACN,KAA0B,CAAC,KAAK,EAAE,CAAC;aACvC;SACJ;KACJ;IAEO,gBAAgB,GAAA;QACpB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;AAEhG,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAE/F,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAEjG,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AAC5D,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACf,OAAO;aACV;AACD,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;AAC1B,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AAC5D,YAAA,IAAI,CAAC,SAAS,IAAI,CAAC;AACvB,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAY,KAAI;AACvE,YAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,kBAAkB,CAAC;gBAAE,OAAO;AAEvD,YAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAA0B,CAAC;AAChD,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AACvE,YAAA,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;YAEzB,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,YAAY,IAAI,YAAY,IAAI,KAAK;gBAAE,OAAO;YAEpE,MAAM,QAAQ,GAAG,EAAE,CAAC;AACpB,YAAA,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC;AACxB,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC;AAC9B,SAAC,CAAC,CAAC;KACN;wGAlnBQ,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAL,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAE,IAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,EA5Cb,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAAA,EAAA,4BAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,eAAe,CAAC;AAC9C,gBAAA,KAAK,EAAE,IAAI;AACd,aAAA;AACJ,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,OAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAuKU,KAAK,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAGL,YAAY,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC5N3B,uq5BA+fA,ED3cgB,MAAA,EAAA,CAAA,0qHAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,iDAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,OAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,cAAA,EAAA,MAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,sBAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,YAAA,EAAA,YAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,QAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,OAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,aAAA,EAAA,IAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,WAAA,EAAA,SAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,WAAA,EAAA,cAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,aAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,OAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,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,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,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,EAAA,GAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,KAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,2BAAA,EAAA,+BAAA,EAAA,2BAAA,EAAA,uBAAA,EAAA,wBAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,0BAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,YAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,sBAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,YAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,UAAA,EAAA,aAAA,EAAA,MAAA,EAAA,eAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,MAAA,EAAA,cAAA,EAAA,WAAA,EAAA,WAAA,EAAA,eAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,4BAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,YAAA,EAAA,aAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,cAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,yBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,aAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,qBAAA,EAAA,wBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,OAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,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,EAAAC,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,UAAA,EAAA,UAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,GAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,SAAA,EAAA,QAAA,EAAA,MAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAH,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,iBAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,sBAAA,EAAA,IAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,GAAA,CAAA,iBAAA,EAAA,IAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAV,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,UAAA,EAAA;YACR,OAAO,CAAC,iBAAiB,EAAE;AACvB,gBAAA,KAAK,CACD,QAAQ,EACR,KAAK,CAAC;AACF,oBAAA,KAAK,EAAE,MAAM;AACb,oBAAA,OAAO,EAAE,CAAC;AACb,iBAAA,CAAC,CACL;AACD,gBAAA,KAAK,CACD,SAAS,EACT,KAAK,CAAC;AACF,oBAAA,KAAK,EAAE,GAAG;AACb,iBAAA,CAAC,CACL;gBACD,UAAU,CAAC,oBAAoB,EAAE;AAC7B,oBAAA,KAAK,CAAC,CAAC,KAAK,CAAC,uBAAuB,EAAE,YAAY,EAAE,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC;iBAC3F,CAAC;aACL,CAAC;YACF,OAAO,CAAC,sBAAsB,EAAE;AAC5B,gBAAA,KAAK,CACD,QAAQ,EACR,KAAK,CAAC;AACF,oBAAA,OAAO,EAAE,CAAC;AACb,iBAAA,CAAC,CACL;AACD,gBAAA,KAAK,CACD,QAAQ,EACR,KAAK,CAAC;AACF,oBAAA,OAAO,EAAE,CAAC;AACb,iBAAA,CAAC,CACL;AACD,gBAAA,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC;aACzD,CAAC;AACL,SAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;AA6UY,UAAA,CAAA;AADZ,IAAA,aAAa,EAAE;AAkBf,CAAA,EAAA,eAAA,CAAA,SAAA,EAAA,YAAA,EAAA,IAAA,CAAA,CAAA;4FA5VQ,eAAe,EAAA,UAAA,EAAA,CAAA;kBAhD3B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,EAGT,SAAA,EAAA;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,qBAAqB,CAAC;AAC9C,4BAAA,KAAK,EAAE,IAAI;AACd,yBAAA;qBACJ,EACc,aAAA,EAAA,iBAAiB,CAAC,IAAI,EACzB,UAAA,EAAA;wBACR,OAAO,CAAC,iBAAiB,EAAE;AACvB,4BAAA,KAAK,CACD,QAAQ,EACR,KAAK,CAAC;AACF,gCAAA,KAAK,EAAE,MAAM;AACb,gCAAA,OAAO,EAAE,CAAC;AACb,6BAAA,CAAC,CACL;AACD,4BAAA,KAAK,CACD,SAAS,EACT,KAAK,CAAC;AACF,gCAAA,KAAK,EAAE,GAAG;AACb,6BAAA,CAAC,CACL;4BACD,UAAU,CAAC,oBAAoB,EAAE;AAC7B,gCAAA,KAAK,CAAC,CAAC,KAAK,CAAC,uBAAuB,EAAE,YAAY,EAAE,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC;6BAC3F,CAAC;yBACL,CAAC;wBACF,OAAO,CAAC,sBAAsB,EAAE;AAC5B,4BAAA,KAAK,CACD,QAAQ,EACR,KAAK,CAAC;AACF,gCAAA,OAAO,EAAE,CAAC;AACb,6BAAA,CAAC,CACL;AACD,4BAAA,KAAK,CACD,QAAQ,EACR,KAAK,CAAC;AACF,gCAAA,OAAO,EAAE,CAAC;AACb,6BAAA,CAAC,CACL;AACD,4BAAA,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC;yBACzD,CAAC;AACL,qBAAA,EAAA,QAAA,EAAA,uq5BAAA,EAAA,MAAA,EAAA,CAAA,0qHAAA,CAAA,EAAA,CAAA;sJASM,eAAe,EAAA,CAAA;sBADrB,KAAK;gBAIC,EAAE,EAAA,CAAA;sBADR,KAAK;gBAIC,0BAA0B,EAAA,CAAA;sBADhC,KAAK;gBAIC,QAAQ,EAAA,CAAA;sBADd,KAAK;gBAIC,OAAO,EAAA,CAAA;sBADb,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIlB,QAAQ,EAAA,CAAA;sBADd,KAAK;gBAIC,UAAU,EAAA,CAAA;sBADhB,KAAK;gBAIC,iBAAiB,EAAA,CAAA;sBADvB,KAAK;gBAIC,kBAAkB,EAAA,CAAA;sBADxB,KAAK;gBAIC,yBAAyB,EAAA,CAAA;sBAD/B,KAAK;gBAIC,kBAAkB,EAAA,CAAA;sBADxB,KAAK;gBAIC,cAAc,EAAA,CAAA;sBADpB,KAAK;gBAIC,sBAAsB,EAAA,CAAA;sBAD5B,KAAK;gBAIC,cAAc,EAAA,CAAA;sBADpB,KAAK;gBAIC,kBAAkB,EAAA,CAAA;sBADxB,KAAK;gBAIC,YAAY,EAAA,CAAA;sBADlB,KAAK;gBAIC,gBAAgB,EAAA,CAAA;sBADtB,KAAK;gBAIC,aAAa,EAAA,CAAA;sBADnB,KAAK;gBAIC,WAAW,EAAA,CAAA;sBADjB,KAAK;gBAIC,uBAAuB,EAAA,CAAA;sBAD7B,KAAK;gBAIC,cAAc,EAAA,CAAA;sBADpB,KAAK;gBAIC,aAAa,EAAA,CAAA;sBADnB,KAAK;gBAIC,aAAa,EAAA,CAAA;sBADnB,KAAK;gBAIC,cAAc,EAAA,CAAA;sBADpB,KAAK;gBAIC,gBAAgB,EAAA,CAAA;sBADtB,KAAK;gBAKC,eAAe,EAAA,CAAA;sBAFrB,MAAM;gBAMA,eAAe,EAAA,CAAA;sBAFrB,MAAM;gBAMA,OAAO,EAAA,CAAA;sBAFb,MAAM;gBAMA,MAAM,EAAA,CAAA;sBAFZ,MAAM;gBAMA,OAAO,EAAA,CAAA;sBAFb,MAAM;gBAMA,QAAQ,EAAA,CAAA;sBAFd,MAAM;gBAMA,UAAU,EAAA,CAAA;sBAFhB,MAAM;gBAMA,OAAO,EAAA,CAAA;sBAFb,MAAM;gBAMA,KAAK,EAAA,CAAA;sBAFX,MAAM;gBAMA,MAAM,EAAA,CAAA;sBAFZ,MAAM;gBAMA,QAAQ,EAAA,CAAA;sBAFd,MAAM;gBAMA,kBAAkB,EAAA,CAAA;sBAFxB,MAAM;gBAKA,KAAK,EAAA,CAAA;sBADX,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAI5B,YAAY,EAAA,CAAA;sBADlB,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,YAAY,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAInC,YAAY,EAAA,CAAA;sBADlB,KAAK;gBAoMO,UAAU,EAAA,EAAA,EAAA,EAAA,CAAA,CAAA;MAiTd,mBAAmB,CAAA;AACrB,IAAA,IAAI,CAAS;AACb,IAAA,KAAK,CAAS;AACd,IAAA,KAAK,CAAU;AACf,IAAA,KAAK,CAAU;AAEtB,IAAA,WAAA,CAAY,MAAiC,EAAA;AACzC,QAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AAC1B,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AAC1B,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;KAC7B;AACJ;;MEztBY,4BAA4B,CAAA;AAE9B,IAAA,KAAK,CAAuB;AAG5B,IAAA,WAAW,CAAe;wGALxB,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,4GCPzC,w3BAmBA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,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,EAAAE,IAAA,CAAA,6BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,aAAA,EAAA,cAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAW,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDZa,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAHxC,SAAS;;8BAKC,KAAK,EAAA,CAAA;sBADX,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIlB,WAAW,EAAA,CAAA;sBADjB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;;;;;;;;MEFhB,iBAAiB,CAAA;AAEnB,IAAA,EAAE,CAAU;AAGZ,IAAA,MAAM,CAAY;AAGlB,IAAA,KAAK,CAAoB;AAGzB,IAAA,aAAa,CAAM;wGAXjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,4ICT9B,kfAYA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAb,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDHa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,SAAS;;8BAKC,EAAE,EAAA,CAAA;sBADR,KAAK;gBAIC,MAAM,EAAA,CAAA;sBADZ,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIlB,KAAK,EAAA,CAAA;sBADX,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIlB,aAAa,EAAA,CAAA;sBADnB,KAAK;;;;;;;;METG,gBAAgB,CAAA;AAElB,IAAA,EAAE,CAAU;AAGZ,IAAA,MAAM,CAAW;AAGjB,IAAA,KAAK,CAAoB;AAGzB,IAAA,aAAa,CAAM;AAE1B,IAAA,IAAI,aAAa,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;KAC7B;AAED,IAAA,IAAI,OAAO,GAAA;QACP,MAAM,QAAQ,GAAU,IAAI,CAAC,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC;QACnD,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;KAC9E;wGApBQ,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,yICV7B,8eAkBA,EAAA,MAAA,EAAA,CAAA,uEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,oBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDRa,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,SAAS;+BACI,WAAW,EAAA,QAAA,EAAA,8eAAA,EAAA,MAAA,EAAA,CAAA,uEAAA,CAAA,EAAA,CAAA;8BAMd,EAAE,EAAA,CAAA;sBADR,KAAK;gBAIC,MAAM,EAAA,CAAA;sBADZ,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIlB,KAAK,EAAA,CAAA;sBADX,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIlB,aAAa,EAAA,CAAA;sBADnB,KAAK;;;;;;;;MEZG,0BAA0B,CAAA;AAUd,IAAA,iBAAA,CAAA;AACA,IAAA,UAAA,CAAA;AATd,IAAA,KAAK,CAAqB;AAG1B,IAAA,WAAW,CAAe;IAE1B,QAAQ,GAAuB,IAAI,CAAC;IAE3C,WACqB,CAAA,iBAAoC,EACpC,UAAsB,EAAA;QADtB,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QACpC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;KACtC;IAEE,eAAe,GAAA;QAClB,IAAI,CAAC,WAAW,EAAE,CAAC;AACnB,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;KAC1C;IAEO,WAAW,GAAA;AACf,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;KACxE;wGArBQ,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,4GCRvC,w/BA2BA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAd,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,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,EAAAE,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAW,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,IAAA,EAAA,4BAAA,EAAA,UAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,2BAAA,EAAA,oBAAA,EAAA,gBAAA,EAAA,wBAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,aAAA,EAAA,yBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,QAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDnBa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAHtC,SAAS;;+GAKC,KAAK,EAAA,CAAA;sBADX,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIlB,WAAW,EAAA,CAAA;sBADjB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;;;;;;;;MEiChB,kBAAkB,CAAA;AACpB,IAAA,UAAU,CAAC,KAAU,EAAA;QACxB,OAAO,KAAK,YAAY,QAAQ,CAAC;KACpC;AAEM,IAAA,OAAO,CAAC,QAAa,EAAA;QACxB,OAAO,QAAQ,EAAE,CAAC;KACrB;AAEM,IAAA,uBAAuB,CAA8C,aAAgB,EAAA;AACxF,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,EAAE;YACnC,OAAO,OAAO,aAAa,CAAC,QAAQ,KAAK,UAAU,GAAG,aAAa,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC;SAC7G;AACD,QAAA,OAAO,KAAK,CAAC;KAChB;AAEM,IAAA,oBAAoB,CAAC,SAA4B,EAAA;AACpD,QAAA,OAAO,OAAO,SAAS,KAAK,UAAU,GAAG,SAAS,EAAE,GAAG,SAAS,CAAC;KACpE;AAEM,IAAA,gBAAgB,CAAO,QAAe,EAAA;AACzC,QAAA,OAAO,OAAO,QAAQ,KAAK,UAAU,GAAI,QAAqB,EAAE,GAAG,QAAQ,CAAC;KAC/E;AACJ;;ACrCK,MAAO,uBACT,SAAQ,kBAAkB,CAAA;AAyBL,IAAA,aAAA,CAAA;AACA,IAAA,iBAAA,CAAA;AAvBd,IAAA,KAAK,CAAkB;AAGvB,IAAA,WAAW,CAAe;AAI1B,IAAA,OAAO,GAAsB,IAAI,YAAY,EAAE,CAAC;AAIhD,IAAA,OAAO,GAAsB,IAAI,YAAY,EAAE,CAAC;AAIhD,IAAA,UAAU,GAAsB,IAAI,YAAY,EAAE,CAAC;IAEnC,QAAQ,GAAsB,IAAI,CAAC;AAElD,IAAA,aAAa,GAAG,IAAI,OAAO,EAAQ,CAAC;IAE5C,WACqB,CAAA,aAA4B,EAC5B,iBAAoC,EAAA;AAErD,QAAA,KAAK,EAAE,CAAC;QAHS,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAC5B,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;KAGxD;IAEM,QAAQ,GAAA;QACX,IAAI,CAAC,eAAe,EAAE,CAAC;AAEvB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAiB,KAAI;AAC7E,YAAA,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AACpB,gBAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;aAC7B;AACL,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAU,KAAI;AACtE,YAAA,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AACpB,gBAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;aAC7B;AACL,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAU,KAAI;AACzE,YAAA,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;AACvB,gBAAA,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;aAChC;AACL,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,EAAE,CAAC;KAClB;IAEM,eAAe,GAAA;AAClB,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;KAC1C;IAEM,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;KACjC;AAED,IAAA,IAAW,SAAS,GAAA;AAChB,QAAA,OAAO,SAAS,CAAC;KACpB;IAEO,eAAe,GAAA;AACnB,QAAA,IAAI,CAAC,aAAa;AACb,aAAA,SAAS,EAAE;aACX,IAAI,CAAC,KAAK,EAAE,CAAC;AACb,aAAA,SAAS,CAAC;YACP,IAAI,EAAE,MAAK;gBACP,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,gBAAgB,EAAE;AACnD,oBAAA,IAAI,CAAC,KAAK,CAAC,mBAAmB,GAAG;AAC7B,wBAAA,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB;wBACjC,gBAAgB,EAAE,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,IAAI,EAAE;qBACnE,CAAC;iBACL;gBAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,kBAAkB,EAAE;AACrD,oBAAA,IAAI,CAAC,KAAK,CAAC,mBAAmB,GAAG;AAC7B,wBAAA,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB;wBACjC,kBAAkB,EAAE,IAAI,CAAC,aAAa,CAAC,oBAAoB,EAAE,IAAI,EAAE;qBACtE,CAAC;iBACL;gBAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,cAAc,EAAE;AACjD,oBAAA,IAAI,CAAC,KAAK,CAAC,mBAAmB,GAAG;AAC7B,wBAAA,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB;AACjC,wBAAA,cAAc,EACV,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM;AACzE,8BAAE,EAAE;AACJ,8BAAE,IAAI;qBACjB,CAAC;iBACL;aACJ;AACD,YAAA,KAAK,EAAE,OACN,IAAI,CAAC,KAAK,CAAC,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,IAAI;AAChE,gBAAA,kBAAkB,EAAE,GAAG;AACvB,gBAAA,gBAAgB,EAAE,GAAG;gBACrB,cAAc,EACV,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI;aAChG,CAAC;AACL,SAAA,CAAC,CAAC;KACV;IAEO,OAAO,GAAA;;;QAGX,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACrC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;SACpE;KACJ;wGAlHQ,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAf,IAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,wTC/BpC,klIAyGA,EAAA,MAAA,EAAA,CAAA,2mBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,SAAA,EAAA,eAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,aAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,OAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,aAAA,EAAA,MAAA,EAAA,WAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,MAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,cAAA,EAAA,YAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,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,EAAAY,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FD1Ea,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;AAGS,YAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,klIAAA,EAAA,MAAA,EAAA,CAAA,2mBAAA,CAAA,EAAA,CAAA;oHAM9B,KAAK,EAAA,CAAA;sBADX,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIlB,WAAW,EAAA,CAAA;sBADjB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAKlB,OAAO,EAAA,CAAA;sBAFb,MAAM;gBAMA,OAAO,EAAA,CAAA;sBAFb,MAAM;gBAMA,UAAU,EAAA,CAAA;sBAFhB,MAAM;gBAIgB,QAAQ,EAAA,CAAA;sBAA9B,SAAS;uBAAC,UAAU,CAAA;;;;;;;;MElCZ,qBAAqB,CAAA;AAEvB,IAAA,KAAK,CAAgB;AAGrB,IAAA,WAAW,CAAe;IAE1B,OAAO,GAAA;AACV,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;KAC5B;wGATQ,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,4GClBlC,yiGA6FA,EAAA,MAAA,EAAA,CAAA,mFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,aAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,OAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,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,EAAAX,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,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,EAAAH,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAe,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FD3Ea,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAbjC,SAAS;;8BAeC,KAAK,EAAA,CAAA;sBADX,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIlB,WAAW,EAAA,CAAA;sBADjB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;;;;;;;;MEdhB,2BAA2B,CAAA;AAE7B,IAAA,KAAK,CAAsB;AAG3B,IAAA,WAAW,CAAsB;wGAL/B,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,4GCRxC,85BA0BA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAlB,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,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,EAAAE,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDlBa,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAHvC,SAAS;;8BAKC,KAAK,EAAA,CAAA;sBADX,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIlB,WAAW,EAAA,CAAA;sBADjB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;;;;;;;;MEJhB,oBAAoB,CAAA;AACJ,IAAA,KAAK,CAAe;AAE/C,IAAA,aAAa,CAAC,MAAa,EAAA;AACzB,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AACtB,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SAC5B;KACF;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;YACzB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACnC;KACF;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;YACzB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACnC;KACF;wGAnBU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,kFCRjC,soCA2BA,EAAA,MAAA,EAAA,CAAA,8HAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,aAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,OAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDnBa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;+BACE,gBAAgB,EAAA,QAAA,EAAA,soCAAA,EAAA,MAAA,EAAA,CAAA,8HAAA,CAAA,EAAA,CAAA;8BAKC,KAAK,EAAA,CAAA;sBAA/B,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;;;;;;;;MEGd,sBAAsB,CAAA;AA2EV,IAAA,iBAAA,CAAA;AAzEd,IAAA,KAAK,CAAiB;AAGtB,IAAA,WAAW,CAAe;AAEhB,IAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAEtD,IAAA,MAAM,GAAG;AACZ,QAAA,cAAc,EAAE,CAAC;AACjB,QAAA,QAAQ,EAAE;AACN,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,oCAAoC,CAAC;AACnE,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,oCAAoC,CAAC;AACnE,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,qCAAqC,CAAC;AACpE,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,uCAAuC,CAAC;AACtE,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,sCAAsC,CAAC;AACrE,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,oCAAoC,CAAC;AACnE,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,sCAAsC,CAAC;AACxE,SAAA;AACD,QAAA,aAAa,EAAE;AACX,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,0CAA0C,CAAC;AACzE,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,0CAA0C,CAAC;AACzE,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,2CAA2C,CAAC;AAC1E,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,6CAA6C,CAAC;AAC5E,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,4CAA4C,CAAC;AAC3E,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,0CAA0C,CAAC;AACzE,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,4CAA4C,CAAC;AAC9E,SAAA;AACD,QAAA,WAAW,EAAE;AACT,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,wCAAwC,CAAC;AACvE,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,wCAAwC,CAAC;AACvE,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,yCAAyC,CAAC;AACxE,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,2CAA2C,CAAC;AAC1E,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,0CAA0C,CAAC;AACzE,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,wCAAwC,CAAC;AACvE,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,0CAA0C,CAAC;AAC5E,SAAA;AACD,QAAA,UAAU,EAAE;AACR,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,qCAAqC,CAAC;AACpE,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,sCAAsC,CAAC;AACrE,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,mCAAmC,CAAC;AAClE,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,mCAAmC,CAAC;AAClE,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,iCAAiC,CAAC;AAChE,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,kCAAkC,CAAC;AACjE,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,kCAAkC,CAAC;AACjE,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,oCAAoC,CAAC;AACnE,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,uCAAuC,CAAC;AACtE,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,qCAAqC,CAAC;AACpE,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,sCAAsC,CAAC;AACrE,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,sCAAsC,CAAC;AACxE,SAAA;AACD,QAAA,eAAe,EAAE;AACb,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,2CAA2C,CAAC;AAC1E,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,4CAA4C,CAAC;AAC3E,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,yCAAyC,CAAC;AACxE,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,yCAAyC,CAAC;AACxE,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,uCAAuC,CAAC;AACtE,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,wCAAwC,CAAC;AACvE,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,wCAAwC,CAAC;AACvE,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,0CAA0C,CAAC;AACzE,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,6CAA6C,CAAC;AAC5E,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,2CAA2C,CAAC;AAC1E,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,4CAA4C,CAAC;AAC3E,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,4CAA4C,CAAC;AAC9E,SAAA;QACD,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,mCAAmC,CAAC;QACzE,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,mCAAmC,CAAC;QACzE,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,yCAAyC,CAAC;QACpF,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,yCAAyC,CAAC;KACvF,CAAA;AAEO,IAAA,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;AAExC,IAAA,WAAA,CACqB,iBAAoC,EAAA;QAApC,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;KACpD;IAEL,QAAQ,GAAA;QACJ,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,IAAI,IAAI,CAAC,MAAM,CAAC;AAChE,QAAA,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC;AAC9B,YAAA,GAAG,OAAO;AACb,SAAA,CAAC,CAAA;KACL;IAGM,QAAQ,GAAG,KAAK,CAAC;IAGjB,QAAQ,GAAG,KAAK,CAAC;IAED,QAAQ,GAAsB,IAAI,CAAC;AAEnD,IAAA,QAAQ,CAA8B;IAEtC,eAAe,GAAA;QAClB,IAAI,CAAC,WAAW,EAAE,CAAC;AACnB,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;KAC1C;IAEO,WAAW,GAAA;QACf,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,mBAAmB,EAAE,aAAa,CAAC;KACrE;wGAtGQ,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,8PCZnC,q/JA4FA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAnB,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,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,EAAAE,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,SAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,UAAA,EAAA,6BAAA,EAAA,WAAA,EAAA,UAAA,EAAA,eAAA,EAAA,cAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,sBAAA,EAAA,SAAA,EAAA,eAAA,EAAA,WAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,MAAA,EAAA,SAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,EAAA,WAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,SAAA,EAAA,cAAA,EAAA,cAAA,EAAA,eAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAf,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDhFa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,SAAS;;sFAKC,KAAK,EAAA,CAAA;sBADX,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIlB,WAAW,EAAA,CAAA;sBADjB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAkFlB,QAAQ,EAAA,CAAA;sBADd,KAAK;gBAIC,QAAQ,EAAA,CAAA;sBADd,KAAK;gBAGiB,QAAQ,EAAA,CAAA;sBAA9B,SAAS;uBAAC,UAAU,CAAA;;;;;;;;ME/FZ,sBAAsB,CAAA;AAExB,IAAA,KAAK,CAAiB;AAGtB,IAAA,WAAW,CAAe;wGALxB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,4GCRnC,yGAKA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,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,EAAAE,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDGa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,SAAS;;8BAKC,KAAK,EAAA,CAAA;sBADX,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIlB,WAAW,EAAA,CAAA;sBADjB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;;;;;;;;MEFhB,mBAAmB,CAAA;AAYP,IAAA,SAAA,CAAA;AACA,IAAA,iBAAA,CAAA;AACA,IAAA,UAAA,CAAA;AAZd,IAAA,KAAK,CAAc;AAGnB,IAAA,WAAW,CAAsB;IAEjC,sBAAsB,GAAG,KAAK,CAAC;IAC/B,iBAAiB,GAAG,IAAI,CAAC;IACzB,QAAQ,GAAuB,IAAI,CAAC;AAE3C,IAAA,WAAA,CACqB,SAAoB,EACpB,iBAAoC,EACpC,UAAsB,EAAA;QAFtB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QACpB,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QACpC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;KACtC;IAEE,kBAAkB,GAAA;AACrB,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;AACxB,YAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAC/B,YAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;YAEnC,UAAU,CAAC,MAAK;AACZ,gBAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;AACpC,gBAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;aACjC,EAAE,IAAI,CAAC,CAAC;AAET,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC;AAE1E,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAE7B,YAAA,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AACnB,gBAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;aAC9B;SACJ;KACJ;IAEM,eAAe,GAAA;QAClB,IAAI,CAAC,WAAW,EAAE,CAAC;AACnB,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;KAC1C;IAEO,WAAW,GAAA;AACf,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;KACxE;wGA5CQ,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAF,IAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,4GCVhC,68FAmFA,EAAA,MAAA,EAAA,CAAA,ybAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,OAAA,EAAA,OAAA,EAAA,aAAA,EAAA,KAAA,EAAA,WAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,0BAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,+BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,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,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgB,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAZ,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDzEa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,SAAS;;yIAMC,KAAK,EAAA,CAAA;sBADX,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIlB,WAAW,EAAA,CAAA;sBADjB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;;;;;;;;MELhB,gCAAgC,CAAA;AAQpB,IAAA,iBAAA,CAAA;AANd,IAAA,KAAK,CAA2B;AAGhC,IAAA,WAAW,CAAe;AAEjC,IAAA,WAAA,CACqB,iBAAoC,EAAA;QAApC,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;KACpD;IAEE,eAAe,GAAA;AAClB,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;KAC1C;wGAbQ,gCAAgC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gCAAgC,4GCT7C,sgBAgBA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAR,IAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,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,EAAAW,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDPa,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAH5C,SAAS;;sFAKC,KAAK,EAAA,CAAA;sBADX,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIlB,WAAW,EAAA,CAAA;sBADjB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;;;;;;;;AEM7B;;AAEG;AAIG,MAAO,sBACT,SAAQ,kBAAkB,CAAA;AA0Bb,IAAA,eAAA,CAAA;AACQ,IAAA,aAAA,CAAA;AACA,IAAA,iBAAA,CAAA;AAzBJ,IAAA,iBAAiB,GAAG,SAAS,CAAyB,UAAU,CAAC,CAAC;AAE5E,IAAA,KAAK,CAAiB;AAGtB,IAAA,WAAW,CAAe;IAE1B,UAAU,GAAG,UAAU,CAAC;AACxB,IAAA,IAAI,CAAU;AAEd,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;AAC5B,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC1C,IAAI,CAAC,QAAQ,EAAE;AACX,YAAA,OAAO,SAAS,CAAC;SACpB;AACD,QAAA,IAAI,QAAQ,YAAY,SAAS,EAAE;YAC/B,OAAO,QAAQ,CAAC,KAAK,CAAC;SACzB;aAAM;YACH,OAAO,QAAQ,CAAC,aAAa,CAAC;SACjC;AACL,KAAC,CAAC,CAAC;AAEH,IAAA,WAAA,CACa,eAAgC,EACxB,aAA4B,EAC5B,iBAAoC,EAAA;AAErD,QAAA,KAAK,EAAE,CAAC;QAJC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QACxB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAC5B,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;KAGxD;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,eAAe,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,IAAI,GAAG,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;KAC3F;IAEM,eAAe,GAAA;AAClB,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;KAC1C;IAEO,eAAe,GAAA;AACnB,QAAA,IAAI,CAAC,aAAa;AACb,aAAA,SAAS,EAAE;aACX,IAAI,CAAC,KAAK,EAAE,CAAC;AACb,aAAA,SAAS,CAAC;YACP,IAAI,EAAE,MAAK;gBACP,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,gBAAgB,EAAE;AACnD,oBAAA,IAAI,CAAC,KAAK,CAAC,mBAAmB,GAAG;AAC7B,wBAAA,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,cAAc;AAC9D,wBAAA,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,kBAAkB;AACtE,wBAAA,gBAAgB,EAAE,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE;qBAC7D,CAAC;iBACL;gBAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,kBAAkB,EAAE;AACrD,oBAAA,IAAI,CAAC,KAAK,CAAC,mBAAmB,GAAG;AAC7B,wBAAA,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,cAAc;AAC7D,wBAAA,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,gBAAgB;AACjE,wBAAA,kBAAkB,EAAE,IAAI,CAAC,aAAa,CAAC,oBAAoB,EAAE;qBAChE,CAAC;iBACL;gBAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,cAAc,EAAE;AACjD,oBAAA,IAAI,CAAC,KAAK,CAAC,mBAAmB,GAAG;AAC7B,wBAAA,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,gBAAgB;AACjE,wBAAA,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,kBAAkB;AACrE,wBAAA,cAAc,EAAE,IAAI;qBACvB,CAAC;iBACL;aACJ;AACD,YAAA,KAAK,EAAE,OACF,IAAI,CAAC,KAAK,CAAC,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,IAAI;AAChE,gBAAA,kBAAkB,EAAE,GAAG;AACvB,gBAAA,gBAAgB,EAAE,GAAG;AACrB,gBAAA,cAAc,EAAE,IAAI;aACvB,CAAC;AACT,SAAA,CAAC,CAAC;KACV;wGAhFQ,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAb,IAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAE,IAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,kQCzBnC,mrIAyFA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,aAAA,EAAA,MAAA,EAAA,WAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,MAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,cAAA,EAAA,YAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,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,EAAAI,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,SAAA,EAAA,eAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDhEa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,SAAS;;oJASC,KAAK,EAAA,CAAA;sBADX,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIlB,WAAW,EAAA,CAAA;sBADjB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;;;;;;;;AEvBvB,MAAO,oBAAqB,SAAQ,kBAAkB,CAAA;AAEjD,IAAA,KAAK,CAAe;AAGpB,IAAA,WAAW,CAAe;wGALxB,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,mICVjC,gRAUA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAArB,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,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,EAAAE,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,aAAA,EAAA,SAAA,EAAA,SAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,cAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAW,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDAa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,SAAS;;8BAKC,KAAK,EAAA,CAAA;sBADX,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIlB,WAAW,EAAA,CAAA;sBADjB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;;;;;;;;AELvB,MAAO,wBAAyB,SAAQ,kBAAkB,CAAA;AAWvC,IAAA,iBAAA,CAAA;AACA,IAAA,UAAA,CAAA;AAVd,IAAA,KAAK,CAAa;;AAIlB,IAAA,WAAW,CAAO;IAElB,QAAQ,GAA4B,IAAI,CAAC;IAEhD,WACqB,CAAA,iBAAoC,EACpC,UAAsB,EAAA;AAEvC,QAAA,KAAK,EAAE,CAAC;QAHS,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QACpC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;KAG1C;IAGM,OAAO,GAAA;QACV,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAChC;IAEM,eAAe,GAAA;QAClB,IAAI,CAAC,WAAW,EAAE,CAAC;AACnB,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;KAC1C;AAGD,IAAA,eAAe,CAAC,KAAiB,EAAA;AAC7B,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;YACvD,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;SACnD;KACJ;IAEO,WAAW,GAAA;AACf,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAqB,CAAC;KAC5F;IAEO,qBAAqB,GAAA;QACzB,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;KACpD;wGAxCQ,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,+NCTrC,oyBAwBA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAb,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,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,EAAAE,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,qBAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAW,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDfa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,SAAS;;+GAKC,KAAK,EAAA,CAAA;sBADX,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAKlB,WAAW,EAAA,CAAA;sBADjB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAalB,OAAO,EAAA,CAAA;sBADb,YAAY;uBAAC,OAAO,CAAA;gBAWrB,eAAe,EAAA,CAAA;sBADd,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAA;;;;;;;;ME7BjC,oBAAoB,CAAA;AAEtB,IAAA,KAAK,CAAe;AAGpB,IAAA,WAAW,CAAsB;wGAL/B,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,4GCPjC,63EAsDA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAb,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,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,EAAAE,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAW,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,IAAA,EAAA,4BAAA,EAAA,UAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,2BAAA,EAAA,oBAAA,EAAA,gBAAA,EAAA,wBAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,aAAA,EAAA,yBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,QAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FD/Ca,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,SAAS;;8BAKC,KAAK,EAAA,CAAA;sBADX,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIlB,WAAW,EAAA,CAAA;sBADjB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;;;;;;;;AEX7B;AA4BM,MAAO,oBACT,SAAQ,kBAAkB,CAAA;AAsBL,IAAA,aAAA,CAAA;AACA,IAAA,UAAA,CAAA;AACA,IAAA,iBAAA,CAAA;AArBd,IAAA,KAAK,CAAgB;AAGrB,IAAA,WAAW,CAAe;AAG1B,IAAA,OAAO,GAAsB,IAAI,YAAY,EAAE,CAAC;AAEhD,IAAA,OAAO,GAAsB,IAAI,YAAY,EAAE,CAAC;AAEhD,IAAA,UAAU,GAAsB,IAAI,YAAY,EAAE,CAAC;IAEnD,QAAQ,GAAsB,IAAI,CAAC;AAElC,IAAA,aAAa,GAAG,IAAI,OAAO,EAAQ,CAAC;IAElC,SAAS,GAAG,SAAS,CAAC;AAEhC,IAAA,WAAA,CACqB,aAA4B,EAC5B,UAAsB,EACtB,iBAAoC,EAAA;AAErD,QAAA,KAAK,EAAE,CAAC;QAJS,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAC5B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;KAGxD;IAEM,QAAQ,GAAA;QACX,IAAI,CAAC,eAAe,EAAE,CAAC;AAEvB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAiB,KAAI;AAC7E,YAAA,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO;AAAE,gBAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACtD,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAU,KAAI;AACtE,YAAA,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO;AAAE,gBAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACtD,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAU,KAAI;AACzE,YAAA,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU;AAAE,gBAAA,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAC5D,SAAC,CAAC,CAAC;KACN;IAEM,eAAe,GAAA;QAClB,IAAI,CAAC,WAAW,EAAE,CAAC;AACnB,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;KAC1C;IAEM,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;KACjC;AAED,IAAA,IAAW,qBAAqB,GAAA;AAC5B,QAAA,OAAO,qBAAqB,CAAC;KAChC;AAED,IAAA,IAAW,SAAS,GAAA;AAChB,QAAA,OAAO,SAAS,CAAC;KACpB;IAEO,eAAe,GAAA;AACnB,QAAA,IAAI,CAAC,aAAa;AACb,aAAA,SAAS,EAAE;aACX,IAAI,CAAC,KAAK,EAAE,CAAC;AACb,aAAA,SAAS,CAAC;YACP,IAAI,EAAE,MAAK;gBACP,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,gBAAgB,EAAE;AACnD,oBAAA,IAAI,CAAC,KAAK,CAAC,mBAAmB,GAAG;AAC7B,wBAAA,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB;wBACjC,gBAAgB,EAAE,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,IAAI,EAAE;qBACnE,CAAC;iBACL;gBAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,kBAAkB,EAAE;AACrD,oBAAA,IAAI,CAAC,KAAK,CAAC,mBAAmB,GAAG;AAC7B,wBAAA,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB;wBACjC,kBAAkB,EAAE,IAAI,CAAC,aAAa,CAAC,oBAAoB,EAAE,IAAI,EAAE;qBACtE,CAAC;iBACL;gBAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,cAAc,EAAE;AACjD,oBAAA,IAAI,CAAC,KAAK,CAAC,mBAAmB,GAAG;AAC7B,wBAAA,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB;AACjC,wBAAA,cAAc,EAAE,IAAI;qBACvB,CAAC;iBACL;aACJ;AACD,YAAA,KAAK,EAAE,OACN,IAAI,CAAC,KAAK,CAAC,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,IAAI;AAChE,gBAAA,kBAAkB,EAAE,GAAG;AACvB,gBAAA,gBAAgB,EAAE,GAAG;AACrB,gBAAA,cAAc,EAAE,IAAI;aACvB,CAAC;AACL,SAAA,CAAC,CAAC;KACV;IAEO,WAAW,GAAA;AACf,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AACnE,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;KACzB;wGAvGQ,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAf,IAAA,CAAA,aAAA,EAAA,EAAA,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;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,kNC5BjC,whKAoIA,EAAA,MAAA,EAAA,CAAA,imBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,aAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,OAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,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,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,aAAA,EAAA,MAAA,EAAA,WAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,MAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,cAAA,EAAA,YAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,6BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,oBAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,IAAA,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,EAAAa,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,SAAA,EAAA,eAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FDxGa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;AAGS,YAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,whKAAA,EAAA,MAAA,EAAA,CAAA,imBAAA,CAAA,EAAA,CAAA;6IAM9B,KAAK,EAAA,CAAA;sBADX,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIlB,WAAW,EAAA,CAAA;sBADjB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIlB,OAAO,EAAA,CAAA;sBADb,MAAM;gBAGA,OAAO,EAAA,CAAA;sBADb,MAAM;gBAGA,UAAU,EAAA,CAAA;sBADhB,MAAM;;;AEzCX;MA0Ba,sBAAsB,CAAA;AAqBF,IAAA,iBAAA,CAAA;AAnBtB,IAAA,KAAK,CAAiB;AAGtB,IAAA,WAAW,CAAe;AAG1B,IAAA,OAAO,GAAsB,IAAI,YAAY,EAAE,CAAC;AAGhD,IAAA,OAAO,GAAsB,IAAI,YAAY,EAAE,CAAC;AAGhD,IAAA,UAAU,GAAsB,IAAI,YAAY,EAAE,CAAC;IAEnC,QAAQ,GAAsB,IAAI,CAAC;AAElD,IAAA,aAAa,GAAG,IAAI,OAAO,EAAQ,CAAC;IACrC,eAAe,GAAG,KAAK,CAAC;AAE/B,IAAA,WAAA,CAA6B,iBAAoC,EAAA;QAApC,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;KAAK;IAE/D,QAAQ,GAAA;AACX,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAiB,KAAI;AAC7E,YAAA,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AACpB,gBAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;aAC7B;AACL,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAiB,KAAI;AAC7E,YAAA,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AACpB,gBAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;aAC7B;AACL,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAU,KAAI;AACzE,YAAA,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;AACvB,gBAAA,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;aAChC;AACL,SAAC,CAAC,CAAC;KACN;IAEM,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;KACjC;IAEM,eAAe,GAAA;AAClB,QAAA,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC;KAChD;IAEM,eAAe,GAAA;AAClB,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;KAC1C;wGApDQ,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,iSC1BnC,k6DA+CA,EAAA,MAAA,EAAA,CAAA,0qBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,aAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,OAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,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,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAjB,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,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,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,4BAAA,EAAA,0BAAA,EAAA,2BAAA,EAAA,6BAAA,EAAA,6BAAA,EAAA,6BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAoB,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FDrBa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;AAGS,YAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,k6DAAA,EAAA,MAAA,EAAA,CAAA,0qBAAA,CAAA,EAAA,CAAA;sFAI9B,KAAK,EAAA,CAAA;sBADX,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIlB,WAAW,EAAA,CAAA;sBADjB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIlB,OAAO,EAAA,CAAA;sBADb,MAAM;gBAIA,OAAO,EAAA,CAAA;sBADb,MAAM;gBAIA,UAAU,EAAA,CAAA;sBADhB,MAAM;gBAGgB,QAAQ,EAAA,CAAA;sBAA9B,SAAS;uBAAC,UAAU,CAAA;;;;;;;;AE1CzB;MA2Ba,yBAAyB,CAAA;AAE3B,IAAA,KAAK,CAAoB;AAGzB,IAAA,WAAW,CAAsB;AAGjC,IAAA,OAAO,GAAsB,IAAI,YAAY,EAAE,CAAC;AAGhD,IAAA,OAAO,GAAsB,IAAI,YAAY,EAAE,CAAC;AAE/C,IAAA,cAAc,GAAG,IAAI,OAAO,EAAQ,CAAC;IAEtC,QAAQ,GAAA;AACX,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAiB,KAAI;AAC9E,YAAA,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO;AAAE,gBAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACtD,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAU,KAAI;AACvE,YAAA,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO;AAAE,gBAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACtD,SAAC,CAAC,CAAC;KACN;IAEM,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;AAC3B,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;KAClC;IAEM,OAAO,GAAA;AACV,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;KAC5B;wGA/BQ,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,iKC3BtC,s/DA6DA,EAAA,MAAA,EAAA,CAAA,uJAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,aAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,OAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,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,EAAAlB,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,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,EAAAH,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,sBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAgB,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FDlCa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAjBrC,SAAS;AAeS,YAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,s/DAAA,EAAA,MAAA,EAAA,CAAA,uJAAA,CAAA,EAAA,CAAA;8BAI9B,KAAK,EAAA,CAAA;sBADX,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIlB,WAAW,EAAA,CAAA;sBADjB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIlB,OAAO,EAAA,CAAA;sBADb,MAAM;gBAIA,OAAO,EAAA,CAAA;sBADb,MAAM;;;;;;;;AE7BL,MAAO,oBAAqB,SAAQ,kBAAkB,CAAA;AAEjD,IAAA,KAAK,CAAe;AAGpB,IAAA,WAAW,CAAsB;wGAL/B,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,mICRjC,2xBAqBA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAApB,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,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,EAAAE,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,EAAA,aAAA,EAAA,aAAA,EAAA,WAAA,EAAA,QAAA,EAAA,WAAA,EAAA,UAAA,EAAA,OAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDba,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,SAAS;;8BAKC,KAAK,EAAA,CAAA;sBADX,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIlB,WAAW,EAAA,CAAA;sBADjB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;;;;;;;;AEZ7B;AAaM,MAAO,oBAAqB,SAAQ,kBAAkB,CAAA;AAEjD,IAAA,KAAK,CAAe;AAGpB,IAAA,WAAW,CAAsB;AAGjC,IAAA,QAAQ,GAAsB,IAAI,YAAY,EAAE,CAAC;AAGjD,IAAA,UAAU,GAAsB,IAAI,YAAY,EAAE,CAAC;AAElD,IAAA,aAAa,GAAG,IAAI,OAAO,EAAQ,CAAC;IAErC,QAAQ,GAAA;AACX,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AAC3F,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;AACvC,YAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,YAAY,CAAC,CAAC;SACtE;QACD,IAAI,CAAC,4BAA4B,EAAE,CAAC;KACvC;IAEO,4BAA4B,GAAA;AAChC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAiB,KAAI;AAC9E,YAAA,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;AACrB,gBAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aAC9B;AACL,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAU,KAAI;AACzE,YAAA,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;AACvB,gBAAA,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;aAChC;AACL,SAAC,CAAC,CAAC;KACN;AAEO,IAAA,OAAO,CAAC,KAAU,EAAA;AACtB,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE;AACnB,YAAA,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;SAC3D;aAAM;AACH,YAAA,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;SAChE;KACJ;AAEO,IAAA,YAAY,CAAC,KAAY,EAAA;AAC7B,QAAA,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC;AACrC,QAAA,OAAO,UAAU,IAAI,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,UAAU,IAAI,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC;KACvI;AAEO,IAAA,cAAc,CAAC,KAAa,EAAA;AAChC,QAAA,OAAO,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;KAC7D;IAEM,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;KACjC;AAED,IAAA,IAAW,SAAS,GAAA;AAChB,QAAA,OAAO,SAAS,CAAC;KACpB;IAEO,aAAa,GAAA;AACjB,QAAA,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;QACvC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC;QAErD,IAAI,CAAC,MAAM,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;AACpC,YAAA,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;SAC3B;QAED,IAAI,CAAC,MAAM,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;AACpC,YAAA,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;SAC3B;AAED,QAAA,OAAO,CAAG,EAAA,MAAM,CAAG,EAAA,MAAM,GAAG,MAAM,CAAA,EAAG,SAAS,CAAA,EAAG,MAAM,CAAG,EAAA,MAAM,CAAG,EAAA,MAAM,EAAE,CAAC;KAC/E;IAEO,gBAAgB,GAAA;AACpB,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;QAEvC,IAAI,CAAC,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;AAClC,YAAA,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;SAC1B;QAED,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;AACxB,YAAA,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;SAC1B;AAED,QAAA,OAAO,GAAG,MAAM,CAAA,EAAG,KAAK,CAAG,EAAA,MAAM,EAAE,CAAC;KACvC;AAED,IAAA,IAAW,KAAK,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;KAC5E;wGAlGQ,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,gMCbjC,4hBAkBA,EAAA,MAAA,EAAA,CAAA,sGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAnB,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,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,EAAAE,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,OAAA,EAAA,MAAA,EAAA,aAAA,EAAA,UAAA,EAAA,KAAA,EAAA,KAAA,EAAA,eAAA,EAAA,eAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAW,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDLa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,SAAS;;8BAMC,KAAK,EAAA,CAAA;sBADX,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIlB,WAAW,EAAA,CAAA;sBADjB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIlB,QAAQ,EAAA,CAAA;sBADd,MAAM;gBAIA,UAAU,EAAA,CAAA;sBADhB,MAAM;;;;;;;;MEfE,wBAAwB,CAAA;AAC1B,IAAA,KAAK,CAAkB;AACvB,IAAA,WAAW,CAAe;AAEnC,IAAA,aAAa,CAAC,QAAgB,EAAA;AAC5B,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;AAC1B,YAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;SAClC;KACF;wGARU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,mHCRrC,gLAGA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAb,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,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,EAAAE,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAW,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDKa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAJpC,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,gLAAA,EAAA,CAAA;8BAItB,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;;;;;;;;MEFK,wBAAwB,CAAA;AAE1B,IAAA,KAAK,CAAmB;AAGxB,IAAA,WAAW,CAAe;wGALxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,4GCRrC,kuBAqBA,EAAA,MAAA,EAAA,CAAA,kbAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAb,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,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,EAAAE,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,8BAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAW,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDba,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAJpC,SAAS;;8BAMC,KAAK,EAAA,CAAA;sBADX,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIlB,WAAW,EAAA,CAAA;sBADjB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;;;;;;;;MEFhB,sBAAsB,CAAA;AAOF,IAAA,iBAAA,CAAA;AALtB,IAAA,KAAK,CAAiB;AAGtB,IAAA,WAAW,CAAe;AAEjC,IAAA,WAAA,CAA6B,iBAAoC,EAAA;QAApC,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;KAAK;IAE/D,eAAe,GAAA;AAClB,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;KAC1C;wGAXQ,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,4GCVnC,otBAoBA,EAAA,MAAA,EAAA,CAAA,sGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAb,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,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,EAAAE,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,8BAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAW,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDVa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,SAAS;;sFAMC,KAAK,EAAA,CAAA;sBADX,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIlB,WAAW,EAAA,CAAA;sBADjB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;;;;;;;;AEd7B;AA4BM,MAAO,kBACT,SAAQ,kBAAkB,CAAA;AAsBG,IAAA,iBAAA,CAAA;AAnBtB,IAAA,KAAK,CAAa;AAGlB,IAAA,WAAW,CAAe;AAG1B,IAAA,OAAO,GAAsB,IAAI,YAAY,EAAE,CAAC;AAGhD,IAAA,OAAO,GAAsB,IAAI,YAAY,EAAE,CAAC;AAGhD,IAAA,UAAU,GAAsB,IAAI,YAAY,EAAE,CAAC;IAGnD,QAAQ,GAAkC,IAAI,CAAC;AAE9C,IAAA,aAAa,GAAG,IAAI,OAAO,EAAQ,CAAC;AAE5C,IAAA,WAAA,CAA6B,iBAAoC,EAAA;AAC7D,QAAA,KAAK,EAAE,CAAC;QADiB,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;KAEhE;IAEM,QAAQ,GAAA;AACX,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAiB,KAAI;AAC7E,YAAA,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO;AAAE,gBAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACtD,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAU,KAAI;AACtE,YAAA,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO;AAAE,gBAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACtD,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAU,KAAI;AACzE,YAAA,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU;AAAE,gBAAA,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAC5D,SAAC,CAAC,CAAC;KACN;IAEM,eAAe,GAAA;AAClB,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;KAC1C;IAEM,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;KACjC;IAED,mBAAmB,GAAA;AACf,QAAA,OAAO,OAAO,IAAI,CAAC,KAAK,CAAC,gBAAgB,KAAK,UAAU;AACpD,cAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE;AAC/B,cAAG,IAAI,CAAC,KAAK,CAAC,gBAA2B,CAAC;KACjD;IAED,SAAS,GAAA;QACL,OAAO,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,GAAI,IAAI,CAAC,KAAK,CAAC,MAAkB,CAAC;KACzG;AAED,IAAA,IAAI,YAAY,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,QAAQ,YAAY,SAAS,EAAE;AACpC,YAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,cAAc,EAAE,aAAa,CAAC;SACvD;aAAM;AACH,YAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC;SACvC;KACJ;wGAhEQ,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,wTC5B/B,qtJA+HA,EAAA,MAAA,EAAA,CAAA,6lBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,aAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,OAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,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,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,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,EAAAP,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,aAAA,EAAA,MAAA,EAAA,WAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,MAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,cAAA,EAAA,YAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,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,EAAAE,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FDnGa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;AAGS,YAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,qtJAAA,EAAA,MAAA,EAAA,CAAA,6lBAAA,CAAA,EAAA,CAAA;sFAM9B,KAAK,EAAA,CAAA;sBADX,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIlB,WAAW,EAAA,CAAA;sBADjB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIlB,OAAO,EAAA,CAAA;sBADb,MAAM;gBAIA,OAAO,EAAA,CAAA;sBADb,MAAM;gBAIA,UAAU,EAAA,CAAA;sBADhB,MAAM;gBAIA,QAAQ,EAAA,CAAA;sBADd,SAAS;uBAAC,UAAU,CAAA;;;;;;;;MEyHZ,iBAAiB,CAAA;AAC1B,IAAA,WAAA,CAAY,gBAAyC,EAAA;QACjD,gBAAgB,CAAC,QAAQ,EAAE,CAAC;KAC/B;wGAHQ,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAI,uBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,iBAjCtB,mBAAmB;YACnB,wBAAwB;YACxB,0BAA0B;YAC1B,qBAAqB;YACrB,2BAA2B;YAC3B,sBAAsB;YACtB,mBAAmB;YACnB,gCAAgC;YAChC,oBAAoB;YACpB,oBAAoB;YACpB,iBAAiB;YACjB,eAAe;YACf,oBAAoB;YACpB,yBAAyB;YACzB,YAAY;YACZ,gBAAgB;YAChB,oBAAoB;YACpB,oBAAoB;YACpB,sBAAsB;YACtB,wBAAwB;YACxB,oBAAoB;YACpB,kBAAkB;YAClB,uBAAuB;YACvB,4BAA4B;YAC5B,sBAAsB;YACtB,oBAAoB;YACpB,sBAAsB;YACtB,oBAAoB;YACpB,sBAAsB;AACtB,YAAA,wBAAwB,aA9ExB,kBAAkB;YAClB,WAAW;YACX,oBAAoB;YACpB,YAAY;YACZ,kBAAkB;YAClB,WAAW;YACX,YAAY;YACZ,mBAAmB;YACnB,wBAAwB;YACxB,eAAe;YACf,gBAAgB;YAChB,WAAW;YACX,YAAY;YACZ,eAAe;YACf,eAAe;YACf,eAAe;YACf,kBAAkB;YAClB,YAAY;YACZ,0BAA0B;YAC1B,WAAW;YACXC,cAAiB;YACjBC,WAAkB;YAClB,mBAAmB;YACnB,aAAa;YACb,cAAc;YACd,yBAAyB;YACzB,gBAAgB;YAChB,cAAc;AACd,YAAA,mBAAmB,qBAEnB,iBAAiB;YACjB,YAAY;YACZ,sBAAsB;YACtB,YAAY;AACZ,YAAA,gBAAgB,wBAEhB,iBAAiB;YACjB,0BAA0B;YAC1B,iBAAiB;YACjB,YAAY;YACZ,kBAAkB;YAClB,gBAAgB;YAChB,cAAc;YACd,mBAAmB;YACnB,eAAe;YACf,cAAc;AACd,YAAA,oBAAoB,CAkCd,EAAA,OAAA,EAAA,CAAA,oBAAoB,EAAE,oBAAoB,EAAE,eAAe,CAAA,EAAA,CAAA,CAAA;AAE5D,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAlFtB,kBAAkB;YAClB,WAAW;YACX,oBAAoB;YACpB,YAAY;YACZ,kBAAkB;YAClB,WAAW;YACX,YAAY;YACZ,mBAAmB;YACnB,wBAAwB;YACxB,eAAe;YACf,gBAAgB;YAChB,WAAW;YACX,YAAY;YACZ,eAAe;YACf,eAAe;YACf,eAAe;YACf,kBAAkB;YAClB,YAAY;YACZ,0BAA0B;YAC1B,WAAW;YACXD,cAAiB;YACjBC,WAAkB;YAClB,mBAAmB;YACnB,aAAa;YACb,cAAc;YACd,yBAAyB;YACzB,gBAAgB;YAChB,cAAc;YACd,mBAAmB;YACnB,YAAY,CAAC,OAAO,EAAE;YACtB,iBAAiB;YACjB,YAAY;YACZ,sBAAsB;YACtB,YAAY;YACZ,gBAAgB;YAChB,eAAe,CAAC,QAAQ,EAAE;YAC1B,iBAAiB;YACjB,0BAA0B;YAC1B,iBAAiB;YACjB,YAAY;YACZ,kBAAkB;YAClB,gBAAgB;YAChB,cAAc;YACd,mBAAmB;YACnB,eAAe;YACf,cAAc;YACd,oBAAoB,CAAA,EAAA,CAAA,CAAA;;4FAoCf,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBApF7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,kBAAkB;wBAClB,WAAW;wBACX,oBAAoB;wBACpB,YAAY;wBACZ,kBAAkB;wBAClB,WAAW;wBACX,YAAY;wBACZ,mBAAmB;wBACnB,wBAAwB;wBACxB,eAAe;wBACf,gBAAgB;wBAChB,WAAW;wBACX,YAAY;wBACZ,eAAe;wBACf,eAAe;wBACf,eAAe;wBACf,kBAAkB;wBAClB,YAAY;wBACZ,0BAA0B;wBAC1B,WAAW;wBACXD,cAAiB;wBACjBC,WAAkB;wBAClB,mBAAmB;wBACnB,aAAa;wBACb,cAAc;wBACd,yBAAyB;wBACzB,gBAAgB;wBAChB,cAAc;wBACd,mBAAmB;wBACnB,YAAY,CAAC,OAAO,EAAE;wBACtB,iBAAiB;wBACjB,YAAY;wBACZ,sBAAsB;wBACtB,YAAY;wBACZ,gBAAgB;wBAChB,eAAe,CAAC,QAAQ,EAAE;wBAC1B,iBAAiB;wBACjB,0BAA0B;wBAC1B,iBAAiB;wBACjB,YAAY;wBACZ,kBAAkB;wBAClB,gBAAgB;wBAChB,cAAc;wBACd,mBAAmB;wBACnB,eAAe;wBACf,cAAc;wBACd,oBAAoB;AACvB,qBAAA;AACD,oBAAA,YAAY,EAAE;wBACV,mBAAmB;wBACnB,wBAAwB;wBACxB,0BAA0B;wBAC1B,qBAAqB;wBACrB,2BAA2B;wBAC3B,sBAAsB;wBACtB,mBAAmB;wBACnB,gCAAgC;wBAChC,oBAAoB;wBACpB,oBAAoB;wBACpB,iBAAiB;wBACjB,eAAe;wBACf,oBAAoB;wBACpB,yBAAyB;wBACzB,YAAY;wBACZ,gBAAgB;wBAChB,oBAAoB;wBACpB,oBAAoB;wBACpB,sBAAsB;wBACtB,wBAAwB;wBACxB,oBAAoB;wBACpB,kBAAkB;wBAClB,uBAAuB;wBACvB,4BAA4B;wBAC5B,sBAAsB;wBACtB,oBAAoB;wBACpB,sBAAsB;wBACtB,oBAAoB;wBACpB,sBAAsB;wBACtB,wBAAwB;AAC3B,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,oBAAoB,EAAE,oBAAoB,EAAE,eAAe,CAAC;AACzE,iBAAA,CAAA;;;ACtKD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"seniorsistemas-angular-components-dynamic-form.mjs","sources":["../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/field-size.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/bignumber-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/boolean-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/boolean-switch-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/field-type.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/calendar-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/chips-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/number-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/decimal-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/currency-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/lookup-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/password-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/radio-button-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/select-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/slider-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/text-area-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/text-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/autocomplete-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/configurations/dynamic-type.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/configurations/grid-type.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/configurations/grid/grid.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/configurations/grid/row.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/configurations/structure/structure.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/configurations/structure/fieldset.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/configurations/structure/section.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/configurations/dynamic-config.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/configurations/structure-type.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/services/dynamic-form-cache.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/dynamic-form.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/dynamic-form.directive.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/dynamic-form.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/dynamic-form.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/components/field-label/field-label.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/components/field-label/field-label.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/components/grid/row/row.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/components/grid/row/row.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/blob-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/button-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/checkbox-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/country-phone-picker-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/editor-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/profile-picture.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/text-area-ia-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/star-rating-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/form-field.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/components/lookup/lookup.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/components/lookup/lookup.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/profile-picture/profile-picture-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/profile-picture/profile-picture-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/components/structure/fieldset/fieldset.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/components/structure/fieldset/fieldset.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/components/structure/section/section.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/components/structure/section/section.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/autocomplete/autocomplete-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/autocomplete/autocomplete-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/base-field-component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/bignumber/bignumber-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/bignumber/bignumber-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/boolean/boolean-radio-field/boolean-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/boolean/boolean-radio-field/boolean-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/boolean/boolean-switch-field/boolean-switch-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/boolean/boolean-switch-field/boolean-switch-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/button-field/button-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/button-field/button-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/calendar/calendar-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/calendar/calendar-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/checkbox/checkbox-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/checkbox/checkbox-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/chips/chips-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/chips/chips-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/country-phone-picker/country-phone-picker-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/country-phone-picker/country-phone-picker-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/currency/currency-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/currency/currency-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/editor/editor-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/editor/editor-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/file-upload/file-upload-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/file-upload/file-upload-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/lookup/lookup-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/lookup/lookup-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/number/number-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/number/number-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/password/password-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/password/password-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/radio-button/radio-button-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/radio-button/radio-button-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/select/select-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/select/select-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/slider/slider-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/slider/slider-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/star-rating/star-rating-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/star-rating/star-rating-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/text-area-ia/text-area-ia-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/text-area-ia/text-area-ia-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/text-area/text-area-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/text-area/text-area-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/text/text-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/text/text-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/dynamic-form.module.ts","../../projects/angular-components/dynamic-form/src/seniorsistemas-angular-components-dynamic-form.ts"],"sourcesContent":["export class FieldSize {\n sm?: number;\n md?: number;\n lg?: number;\n xl?: number;\n\n constructor({ sm = 12, md = 6, lg = 6, xl = 6 }: FieldSize) {\n this.sm = sm;\n this.md = md;\n this.lg = lg;\n this.xl = xl;\n }\n}\n","import { TemplateRef } from '@angular/core';\nimport { FieldSize } from '../field-size';\nimport { FieldType } from '../field-type';\nimport { AbstractControl } from '@angular/forms';\nimport { FormField } from '../../form-field';\n\nexport interface FieldConfig {\n defaultValue?: any;\n required?: () => boolean;\n visible?: () => boolean;\n id?: string;\n name: string;\n label: string;\n infoSign?: string;\n tooltip?: string;\n placeholder?: string;\n showClear?: boolean;\n type?: FieldType;\n size?: FieldSize;\n representedBy?: \"radio\" | \"switch\";\n errorMessages?: () => ({}) | {};\n bottomTemplate?: TemplateRef<Element>;\n footer?: {\n help?: {\n text: string;\n visible?: (options: { abstractControl: AbstractControl, formField: FormField }) => boolean;\n };\n link?: {\n label: string;\n onClick: (options: { abstractControl: AbstractControl, formField: FormField }) => void;\n visible?: (options: { abstractControl: AbstractControl, formField: FormField }) => boolean;\n };\n };\n CustomFieldClass?: unknown;\n CustomFieldComponentClass?: unknown;\n displayTimeInfoSign?: number;\n sortableColumnName?: string\n useInfoSignFocusedInputRef?: boolean;\n /**\n * In some cases DynamicFormField use a custom field that alredy exists, this happen in CustomFields when convert 'Integer, Double & Money' types to 'Custom' this create two labels. activate this property hide the parent label.\n */\n ignoreLabel?: boolean;\n}\n\nexport abstract class Field {\n public required?: () => boolean;\n public visible?: () => boolean;\n public id?: string;\n public name: string;\n public label: string;\n public infoSign?: string;\n public tooltip?: string;\n public placeholder?: string;\n public showClear?: boolean;\n public type?: FieldType;\n public size: FieldSize;\n public defaultValue?: any;\n public representedBy?: \"radio\" | \"switch\";\n public errorMessages?: () => ({}) | {};\n public bottomTemplate?: TemplateRef<Element>;\n public CustomFieldClass?: unknown;\n public CustomFieldComponentClass?: unknown;\n public displayTimeInfoSign?: number;\n public sortableColumnName?: string\n public footer?: {\n help?: {\n text: string;\n visible?: (options: { abstractControl: AbstractControl, formField: FormField }) => boolean;\n };\n link?: {\n label: string;\n onClick: (options: { abstractControl: AbstractControl, formField: FormField }) => void;\n visible?: (options: { abstractControl: AbstractControl, formField: FormField }) => boolean;\n };\n };\n public useInfoSignFocusedInputRef: boolean;\n public ignoreLabel?: boolean;\n\n constructor(config: FieldConfig) {\n if (config.footer?.help) {\n config.footer.help = {\n visible: () => true,\n ...config.footer?.help,\n };\n }\n\n if (config.footer?.link) {\n config.footer.link = {\n visible: () => true,\n ...config.footer?.link,\n };\n }\n\n this.required = config.required || (() => false);\n this.visible = config.visible || (() => true);\n this.id = config.id;\n this.name = config.name;\n this.label = config.label;\n this.infoSign = config.infoSign;\n this.tooltip = config.tooltip;\n this.placeholder = config.placeholder || \"\";\n this.showClear = config.showClear || false;\n this.type = config.type;\n this.size = new FieldSize(config.size || {});\n this.errorMessages = config.errorMessages;\n this.bottomTemplate = config.bottomTemplate;\n this.footer = config.footer;\n this.defaultValue = config.defaultValue;\n this.representedBy = config.representedBy;\n this.CustomFieldClass = config.CustomFieldClass;\n this.CustomFieldComponentClass = config.CustomFieldComponentClass;\n this.displayTimeInfoSign = config.displayTimeInfoSign ?? 5000;\n this.ignoreLabel = config.ignoreLabel ?? false;\n this.useInfoSignFocusedInputRef = config.useInfoSignFocusedInputRef ?? true\n }\n\n get gridClass() {\n return Object.keys(this.size).map(key => `ui-${key}-${(this.size as any)[key]}`);\n }\n}\n","import { AlignmentOptions } from '@seniorsistemas/ng2-currency-mask';\nimport { AddonConfig } from '../../addon-config';\nimport { Field, FieldConfig } from './field';\nimport { NumberLocaleOptions } from '@seniorsistemas/angular-components/locale';\n\ntype stringFn = () => string;\n\nexport interface BignumberFieldConfig extends FieldConfig {\n allowNegative: boolean;\n numberLocaleOptions?: NumberLocaleOptions;\n browserAutocomplete?: boolean;\n precision?: Function | number;\n scale?: Function | number;\n mask?: stringFn | string;\n leftAddon?: AddonConfig;\n rightAddon?: AddonConfig;\n onBlur?: (event: Event) => void;\n onFocus?: (event: FocusEvent) => void;\n onComplete?: (event: FocusEvent) => void;\n onInput?: (event: FocusEvent) => void;\n autoClear?: boolean;\n}\n\nexport class BignumberField extends Field {\n public allowNegative: boolean;\n public numberLocaleOptions?: NumberLocaleOptions;\n public browserAutocomplete?: boolean;\n public precision?: Function | number;\n public scale?: Function | number;\n public alignTo: AlignmentOptions;\n public mask?: stringFn | string;\n public leftAddon?: AddonConfig;\n public rightAddon?: AddonConfig;\n public onBlur?: (event: Event) => void;\n public onFocus?: (event: FocusEvent) => void;\n public onComplete?: (event: FocusEvent) => void;\n public onInput?: (event: FocusEvent) => void;\n public autoClear?: boolean;\n\n constructor(config: BignumberFieldConfig) {\n super(config);\n this.allowNegative = config.allowNegative ?? true;\n this.numberLocaleOptions = config.numberLocaleOptions ?? new NumberLocaleOptions();\n this.browserAutocomplete = config.browserAutocomplete;\n this.precision = config.precision;\n this.scale = config.scale ?? 2;\n this.alignTo = this.scale ? AlignmentOptions.RIGHT : AlignmentOptions.LEFT;\n this.mask = config.mask;\n this.leftAddon = config.leftAddon;\n this.rightAddon = config.rightAddon;\n this.onBlur = config.onBlur;\n this.onFocus = config.onFocus;\n this.onComplete = config.onComplete;\n this.onInput = config.onInput;\n this.autoClear = config.autoClear ?? true;\n }\n}\n","import { Field, FieldConfig } from './field';\n\nexport interface BooleanOptionsLabelConfig {\n true: string;\n false: string;\n empty?: string;\n clear?: string;\n}\n\nexport class BooleanOptionsLabel {\n public true: string;\n public false: string;\n public empty?: string;\n public clear?: string;\n\n constructor(config: BooleanOptionsLabelConfig) {\n this.true = config.true;\n this.false = config.false;\n this.empty = config.empty;\n this.clear = config.clear;\n }\n}\n\nexport interface BooleanFieldConfig extends FieldConfig {\n verticalAlignment?: boolean;\n optionsLabel: BooleanOptionsLabel;\n onBlur?: (event: Event) => void;\n onFocus?: (event: Event) => void;\n onClick?: (event: any) => void;\n}\n\nexport class BooleanField extends Field {\n public verticalAlignment?: boolean;\n public optionsLabel: BooleanOptionsLabel;\n public onBlur?: (event: Event) => void;\n public onFocus?: (event: Event) => void;\n public onClick?: (event: any) => void;\n\n constructor(config: BooleanFieldConfig) {\n super(config);\n this.verticalAlignment = config.verticalAlignment;\n this.optionsLabel = new BooleanOptionsLabel(config.optionsLabel);\n this.representedBy = 'radio';\n this.onBlur = config.onBlur;\n this.onFocus = config.onFocus;\n this.onClick = config.onClick;\n }\n}\n","import { BooleanOptionsLabel } from './boolean-field';\nimport { Field, FieldConfig } from './field';\n\nexport interface BooleanSwitchFieldConfig extends FieldConfig {\n onChange?: (event: any) => void;\n optionsLabel?: BooleanOptionsLabel;\n}\n\nexport class BooleanSwitchField extends Field {\n public onChange?: (event: any) => void;\n public optionsLabel?: BooleanOptionsLabel;\n constructor(config: BooleanSwitchFieldConfig) {\n super(config);\n this.onChange = config.onChange;\n if (config.optionsLabel) {\n this.optionsLabel = new BooleanOptionsLabel(config.optionsLabel);\n }\n this.representedBy = 'switch';\n }\n}\n","export enum FieldType {\n Autocomplete = \"Autocomplete\",\n Binary = \"Binary\",\n Blob = \"Blob\",\n Boolean = \"Boolean\",\n BooleanSwitch = \"BooleanSwitch\",\n Checkbox = \"Checkbox\",\n Chips = \"Chips\",\n CodeEditor = \"CodeEditor\",\n CountryPhonePicker = \"CountryPhonePicker\",\n Custom = \"Custom\",\n Date = \"Date\",\n DateTime = \"DateTime\",\n Double = \"Double\",\n Editor = \"Editor\",\n Enum = \"Enum\",\n Integer = \"Integer\",\n LocalDateTime = \"LocalDateTime\",\n Lookup = \"Lookup\",\n Money = \"Money\",\n Number = \"Number\",\n Password = \"Password\",\n Radio = \"Radio\",\n Slider = \"Slider\",\n String = \"String\",\n Text = \"Text\",\n TextIA = \"TextIA\",\n Time = \"Time\",\n ProfilePicture = \"ProfilePicture\",\n Button = \"Button\",\n StarRating = \"StarRating\"\n}\n","import { CalendarLocaleOptions } from '@seniorsistemas/angular-components/locale';\nimport { FieldType } from '../field-type';\nimport { Field, FieldConfig } from './field';\n\nexport interface CalendarFieldConfig extends FieldConfig {\n view?: 'date' | 'month' | 'year';\n minDate?: Date;\n maxDate?: Date;\n defaultDate?: Date;\n appendTo?: string;\n showOnFocus?: boolean;\n calendarLocaleOptions?: CalendarLocaleOptions;\n onBlur?: (event: Event) => void;\n onFocus?: (event: Event) => void;\n onSelect?: (event: any) => void;\n onInput?: (event: any) => void;\n onClose?: (event: any) => void;\n onTodayClick?: (event: any) => void;\n onClearClick?: (event: any) => void;\n onMonthChange?: (event: any) => void;\n onYearChange?: (event: any) => void;\n selectionMode?: 'single' | 'multiple';\n rangeSeparator?: string;\n showSeconds?: boolean;\n}\n\nexport class CalendarField extends Field implements CalendarFieldConfig {\n public view?: 'date' | 'month' | 'year';\n public appendTo?: string;\n public minDate?: Date;\n public maxDate?: Date;\n public defaultDate?: Date;\n public calendarLocaleOptions?: CalendarLocaleOptions;\n public showOnFocus?: boolean;\n public onBlur?: (event: Event) => void;\n public onFocus?: (event: Event) => void;\n public onSelect?: (event: any) => void;\n public onInput?: (event: any) => void;\n public onClose?: (event: any) => void;\n public onTodayClick?: (event: any) => void;\n public onClearClick?: (event: any) => void;\n public onMonthChange?: (event: any) => void;\n public onYearChange?: (event: any) => void;\n public selectionMode?: 'single' | 'multiple';\n public rangeSeparator?: string;\n public showSeconds?: boolean;\n\n constructor(config: CalendarFieldConfig) {\n super(config);\n this.view = config.view || 'date';\n this.minDate = config.minDate;\n this.maxDate = config.maxDate;\n this.defaultDate = config.defaultDate;\n this.appendTo = config.appendTo;\n this.showOnFocus = typeof config.showOnFocus === 'boolean' ? config.showOnFocus : true;\n this.calendarLocaleOptions = config.calendarLocaleOptions;\n this.onBlur = config.onBlur;\n this.onFocus = config.onFocus;\n this.onSelect = config.onSelect;\n this.onInput = config.onInput;\n this.onClose = config.onClose;\n this.onTodayClick = config.onTodayClick;\n this.onClearClick = config.onClearClick;\n this.onMonthChange = config.onMonthChange;\n this.onYearChange = config.onYearChange;\n this.selectionMode = config.selectionMode || 'single';\n this.rangeSeparator = config.rangeSeparator || '-';\n this.showSeconds = config.showSeconds;\n\n // Tornando true o padrão para showSeconds.\n if (this.showSeconds === null || this.showSeconds === undefined) {\n switch (this.type) {\n case FieldType.DateTime:\n case FieldType.LocalDateTime:\n case FieldType.Time:\n this.showSeconds = true;\n break;\n }\n }\n }\n}\n","import { Field, FieldConfig } from './field';\n\nexport interface ChipsFieldConfig extends FieldConfig {\n keyFilter?: RegExp;\n separator?: string;\n showCopyButton?: boolean;\n onAdd?: (event: any) => void;\n onRemove?: (event: any) => void;\n onChipClick?: (event: any) => void;\n onFocus?: (event: any) => void;\n onBlur?: (event: any) => void;\n onCopy?: (content: string) => void;\n}\n\nexport class ChipsField extends Field implements ChipsFieldConfig {\n public keyFilter?: RegExp;\n public showCopyButton = false;\n public separator?: string;\n public onAdd?: (event: any) => void;\n public onRemove?: (event: any) => void;\n public onChipClick?: (event: any) => void;\n public onFocus?: (event: any) => void;\n public onBlur?: (event: any) => void;\n public onCopy?: (content: string) => void;\n\n constructor(config: ChipsFieldConfig) {\n super(config);\n this.keyFilter = config.keyFilter;\n this.showCopyButton = config.showCopyButton || false;\n this.separator = config.separator;\n this.onAdd = config.onAdd;\n this.onRemove = config.onRemove;\n this.onChipClick = config.onChipClick;\n this.onFocus = config.onFocus;\n this.onBlur = config.onBlur;\n this.onCopy = config.onCopy;\n }\n}\n","import { NumberLocaleOptions } from '@seniorsistemas/angular-components/locale';\nimport { AddonConfig } from '../../addon-config';\nimport { Field, FieldConfig } from './field';\nimport { NumberAlignmentOption } from '@seniorsistemas/angular-components/number-input';\n\ntype stringFn = () => string | string;\n\n/**\n * @deprecated Should use BignumberFieldConfig instead\n */\nexport interface NumberFieldConfig extends FieldConfig {\n /**\n * @deprecated `numberLocaleOptions` should not be used. It is not needed anymore and should be removed if possible.\n */\n numberLocaleOptions?: NumberLocaleOptions;\n browserAutocomplete?: boolean;\n precision?: Function | number;\n scale?: (() => number) | number;\n alignTo?: NumberAlignmentOption;\n mask?: stringFn | string;\n leftAddon?: AddonConfig;\n rightAddon?: AddonConfig;\n onBlur?: (event: Event) => void;\n onFocus?: (event: Event) => void;\n onComplete?: (event: FocusEvent) => void;\n onInput?: (event: Event) => void;\n}\n\n/**\n * @deprecated Should use BignumberField instead\n */\nexport class NumberField extends Field {\n /**\n * @deprecated `numberLocaleOptions` should not be used. It is not needed anymore and should be removed if possible.\n */\n public numberLocaleOptions?: NumberLocaleOptions;\n\n public browserAutocomplete?: boolean;\n public precision?: Function | number;\n public scale?: (() => number) | number;\n public alignTo: NumberAlignmentOption;\n public mask?: stringFn | string;\n public leftAddon?: AddonConfig;\n public rightAddon?: AddonConfig;\n public onBlur?: (event: Event) => void;\n public onFocus?: (event: Event) => void;\n public onComplete?: (event: FocusEvent) => void;\n public onInput?: (event: Event) => void;\n\n constructor(config: NumberFieldConfig) {\n super(config);\n this.numberLocaleOptions = config.numberLocaleOptions;\n this.browserAutocomplete = config.browserAutocomplete;\n this.precision = config.precision;\n this.scale = config.scale;\n this.alignTo = config.alignTo || NumberAlignmentOption.LEFT;\n this.mask = config.mask;\n this.leftAddon = config.leftAddon;\n this.rightAddon = config.rightAddon;\n this.onBlur = config.onBlur;\n this.onFocus = config.onFocus;\n this.onComplete = config.onComplete;\n this.onInput = config.onInput;\n }\n}\n","import { NumberLocaleOptions } from '@seniorsistemas/angular-components/locale';\nimport { NumberField, NumberFieldConfig } from './number-field';\nimport { NumberAlignmentOption } from '@seniorsistemas/angular-components/number-input';\n\n/**\n * @deprecated Should use BignumberField instead\n */\nexport interface DecimalFieldConfig extends NumberFieldConfig {\n scale?: (() => number) | number;\n}\n\n/**\n * @deprecated Should use BignumberField instead\n */\nexport class DecimalField extends NumberField implements DecimalFieldConfig {\n public override scale?: (() => number) | number;\n\n constructor(config: DecimalFieldConfig) {\n super(config);\n this.numberLocaleOptions = config.numberLocaleOptions ?? new NumberLocaleOptions();\n this.alignTo = config.alignTo || NumberAlignmentOption.RIGHT;\n this.scale = typeof config.scale === \"function\" ? config.scale() : config.scale;\n }\n}\n","import { NumberLocaleOptions } from '@seniorsistemas/angular-components/locale';\nimport { DecimalField, DecimalFieldConfig } from './decimal-field';\nimport { Currency } from '@seniorsistemas/angular-components/currency';\n\n\n/**\n * @deprecated Should use BignumberField instead\n */\nexport class CurrencyField extends DecimalField {\n currency?: () => Currency;\n\n constructor(config: DecimalFieldConfig) {\n super(config);\n this.currency = (config as any)['currency'];\n this.numberLocaleOptions = config.numberLocaleOptions ?? new NumberLocaleOptions();\n }\n}\n","import { Observable, of } from 'rxjs';\nimport { delay } from 'rxjs/operators';\n\nimport { FieldType } from '../field-type';\nimport { Field, FieldConfig } from './field';\n\nexport interface LookupFieldConfig extends FieldConfig {\n multiple?: boolean;\n showSearch?: boolean;\n searchFields: any[];\n searchGridFields: any[];\n lookupSuggestions: any[];\n suggestionsObservable: Observable<any[]>;\n searchObservable: Observable<{ gridData: any[]; totalRecords: number; searchTotalRecordsLabel?: string }>;\n dataKey: string;\n lookupDisplayField: string;\n searchTitle: string;\n searchEmptyTitle: string;\n filterLabel: string;\n filterTitle?: string;\n clearLabel: string;\n cancelLabel: string;\n selectLabel: string;\n emptyMessage: string;\n recordLabel: string;\n recordsLabel: string;\n emptyFieldLabel: string;\n appendTo?: string;\n autocompleteForceSelection?: boolean;\n showAddOption: boolean;\n showEditOption: boolean;\n showRemoveOption: boolean;\n onLookupRequest: (query: string) => void;\n onSearchRequest: (event: any) => void;\n onSelect?: (event: any) => void;\n onUnselect?: (event: any) => void;\n onClear?: (event: any) => void;\n onBlur?: (event: FocusEvent) => void;\n onAdd?: () => void;\n onEdit?: (selectedItem: unknown) => void;\n onRemove?: (selectedItems: unknown[]) => void;\n onClearButtonClick?: () => void;\n}\n\nexport class LookupField extends Field implements LookupFieldConfig {\n public multiple = false;\n public showSearch = true;\n public searchFields: any[] = [];\n public searchGridFields: any[] = [];\n public lookupSuggestions: any[] = [];\n public suggestionsObservable: Observable<any[]> = of([]);\n public searchObservable: Observable<{ gridData: any[]; totalRecords: number; searchTotalRecordsLabel?: string }> =\n of({ gridData: [], totalRecords: 0 });\n public dataKey: string = '';\n public lookupDisplayField: string = '';\n public searchTitle = '';\n public searchEmptyTitle = '';\n public filterLabel = '';\n public filterTitle = '';\n public clearLabel = '';\n public cancelLabel = '';\n public selectLabel = '';\n public recordLabel = '';\n public recordsLabel = '';\n public emptyFieldLabel = '';\n public emptyMessage = '';\n public appendTo?: string;\n public autocompleteForceSelection = true;\n public showAddOption = false;\n public showEditOption = false;\n public showRemoveOption = false;\n public defaultFilter: DefaultFilter[] = [];\n public sortableColumnsDisabled: string[] = [];\n public onLookupRequest: (query: string) => void = () => {};\n public onSearchRequest: (event: any) => void = () => {};\n public onClear?: (event: any) => void;\n public onBlur?: (event: FocusEvent) => void;\n public onAdd?: () => void;\n public onEdit?: (selectedItem: unknown) => void;\n public onRemove?: (selectedItems: unknown[]) => void;\n public onClearButtonClick?: () => void;\n\n private _gridData: any[] = [];\n private _searchTotalRecords: number = 0;\n private _searchTotalRecordsLabel: string = '';\n\n constructor(config: LookupFieldConfig) {\n super({ ...config, type: FieldType.Lookup } as LookupFieldConfig);\n Object.assign(this, config);\n\n this.suggestionsObservable.subscribe((suggestions) => (this.lookupSuggestions = suggestions));\n this.searchObservable.pipe(delay(0)).subscribe(({ totalRecords, gridData, searchTotalRecordsLabel }) => {\n this._gridData = gridData;\n this._searchTotalRecords = totalRecords;\n this._searchTotalRecordsLabel = searchTotalRecordsLabel as string;\n });\n }\n\n public get gridData() {\n return this._gridData;\n }\n\n public get searchTotalRecords() {\n return this._searchTotalRecords;\n }\n\n public get searchTotalRecordsLabel() {\n return this._searchTotalRecordsLabel;\n }\n\n public onSelect = (event: any) => {};\n public onUnselect = (event: any) => {};\n}\n\nexport type DefaultFilter = {\n field: string;\n value: string | (() => string);\n};\n","import { PasswordStrengths } from '@seniorsistemas/angular-components/password-strength';\nimport { AddonConfig } from '../../addon-config';\nimport { Field, FieldConfig } from './field';\n\nexport interface PasswordFieldConfig extends FieldConfig {\n inputType?: string;\n keyFilter?: any;\n leftAddon?: AddonConfig;\n rightAddon?: AddonConfig;\n maxLength?: string | number;\n passwordStrength: boolean;\n passwordStrengthOptions?: PasswordStrengthOptions;\n showToggle: boolean;\n style?: { [klass: string]: any };\n onBlur?: (event: FocusEvent) => void;\n onFocus?: (event: FocusEvent) => void;\n onComplete?: (event: FocusEvent) => void;\n onInput?: (event: FocusEvent) => void;\n}\n\nexport class PasswordField extends Field {\n public inputType?: string;\n public keyFilter?: any;\n public leftAddon?: AddonConfig;\n public rightAddon?: AddonConfig;\n public maxLength?: string | number;\n public passwordStrength: boolean;\n public passwordStrengthOptions?: PasswordStrengthOptions;\n public showToggle: boolean;\n public style?: { [klass: string]: any };\n public onBlur?: (event: FocusEvent) => void;\n public onFocus?: (event: FocusEvent) => void;\n public onComplete?: (event: any) => void;\n public onInput?: (event: any) => void;\n\n constructor(config: PasswordFieldConfig) {\n super(config);\n this.inputType = config.inputType;\n this.keyFilter = config.keyFilter;\n this.leftAddon = config.leftAddon;\n this.rightAddon = config.rightAddon;\n this.maxLength = config.maxLength || 9999999;\n this.passwordStrength = config.passwordStrength || false;\n this.passwordStrengthOptions = config.passwordStrengthOptions;\n this.showToggle = config.showToggle;\n this.style = config.style;\n this.onBlur = config.onBlur;\n this.onFocus = config.onFocus;\n this.onComplete = config.onComplete;\n this.onInput = config.onInput;\n }\n}\n\nexport interface PasswordStrengthOptions {\n description: string;\n weakTitle?: string;\n mediumTitle?: string;\n strongTitle?: string;\n validation?: (content: string) => PasswordStrengths;\n}\n","import { Field, FieldConfig } from './field';\n\nexport class RationButtonOption {\n label: string;\n value?: any;\n\n constructor(config: RationButtonOption) {\n this.label = config.label;\n this.value = config.value;\n }\n}\n\nexport interface RadioButtonFieldConfig extends FieldConfig {\n verticalAlignment?: boolean;\n clearLabel?: string;\n options: RationButtonOption[];\n onBlur?: (event: Event) => void;\n onFocus?: (event: FocusEvent) => void;\n onClick?: (event: any) => void;\n}\n\nexport class RadioButtonField extends Field {\n public verticalAlignment?: boolean;\n public clearLabel?: string;\n public options: RationButtonOption[];\n public onBlur?: (event: Event) => void;\n public onFocus?: (event: FocusEvent) => void;\n public onClick?: (event: any) => void;\n\n constructor(config: RadioButtonFieldConfig) {\n super(config);\n this.verticalAlignment = config.verticalAlignment;\n this.clearLabel = config.clearLabel;\n this.options = config.options;\n this.onBlur = config.onBlur;\n this.onFocus = config.onFocus;\n this.onClick = config.onClick;\n }\n}\n","import { Field, FieldConfig } from './field';\n\ntype selectOptionFn = () => SelectOption[];\nexport interface SelectFieldConfig extends FieldConfig {\n appendTo?: string;\n optionLabel?: string;\n optionValue?: string;\n dataKey?: string;\n autoDisplayFirst?: boolean;\n options: selectOptionFn | any[];\n multiple?: boolean;\n multipleSelectedLabel?: string;\n onClick?: (event: any) => void;\n onChange?: (event: any) => void;\n emptyMessage?: string;\n editable?: boolean;\n filter?: boolean;\n group?: boolean;\n}\n\nexport class SelectField extends Field implements SelectFieldConfig {\n public appendTo?: string;\n public optionLabel?: string;\n public optionValue?: string;\n public dataKey?: string;\n public autoDisplayFirst?: boolean;\n public options: selectOptionFn | any[];\n public multiple?: boolean;\n public multipleSelectedLabel?: string;\n public onClick?: (event: any) => void;\n public onChange?: (event: any) => void;\n public emptyMessage?: string;\n public editable?: boolean;\n public filter?: boolean;\n public group?: boolean;\n\n constructor(config: SelectFieldConfig) {\n super(config);\n this.appendTo = config.appendTo;\n this.dataKey = config.dataKey;\n this.optionLabel = config.optionLabel;\n this.optionValue = config.optionValue;\n this.autoDisplayFirst = config.autoDisplayFirst;\n this.options = config.options;\n this.multiple = config.multiple;\n this.multipleSelectedLabel = config.multipleSelectedLabel;\n this.onClick = config.onClick;\n this.onChange = config.onChange;\n this.emptyMessage = config.emptyMessage;\n this.editable = config.editable;\n this.filter = config.filter;\n this.group = config.group;\n }\n}\n\nexport class SelectOption {\n label: string;\n value?: any;\n\n constructor(config: SelectOption) {\n this.label = config.label;\n this.value = config.value;\n }\n}\n","import { Field, FieldConfig } from './field';\n\nexport interface SliderFieldConfig extends FieldConfig {\n onChange?: (event: any) => void;\n onSlideEnd?: (event: any) => void;\n range?: boolean;\n min?: number;\n max?: number;\n step?: number;\n /**\n * this property exist on primeng slider, currently not exist in s-slider, when it will be added, this property will be used\n */\n orientation: 'horizontal' | 'vertical';\n disabled?: boolean;\n prefix: string;\n suffix: string;\n rangeSeparator: string;\n}\n\nexport class SliderField extends Field implements SliderFieldConfig {\n public onChange?: (event: any) => void;\n public onSlideEnd?: (event: any) => void;\n public range?: boolean;\n public min: number;\n public max: number;\n public step: number;\n public orientation: 'horizontal' | 'vertical';\n public disabled: boolean;\n public prefix: string;\n public suffix: string;\n public rangeSeparator: string;\n\n private readonly _maxDefault = 100;\n\n constructor(config: SliderFieldConfig) {\n super(config);\n this.onChange = config.onChange;\n this.onSlideEnd = config.onSlideEnd;\n this.range = config.range ?? false;\n this.min = config.min ?? 0;\n this.max = config.max ?? this._maxDefault;\n this.orientation = config.orientation ?? 'horizontal';\n this.step = config.step ?? 1;\n this.disabled = config.disabled ?? false;\n this.prefix = config.prefix;\n this.suffix = config.suffix;\n this.rangeSeparator = config.rangeSeparator ?? ' - ';\n }\n}\n","import { Field, FieldConfig } from \"./field\";\n\nexport interface TextAreaFieldConfig extends FieldConfig {\n cols?: number;\n rows?: number;\n keyFilter?: any;\n style?: Partial<CSSStyleDeclaration>;\n readonly?: () => boolean;\n speechRecognition?: boolean\n keepContext: boolean\n speechRecognitionPlaceholder: string\n maxLength?: number;\n}\n\nexport class TextAreaField extends Field {\n public cols?: number;\n public rows?: number;\n public keyFilter?: any;\n public style?: Partial<CSSStyleDeclaration> = {\n resize: 'vertical'\n };\n public readonly?: () => boolean;\n public speechRecognition: boolean\n public keepContext: boolean\n public speechRecognitionPlaceholder: string\n public maxLength: number | null;\n\n constructor(config: TextAreaFieldConfig) {\n super(config);\n this.cols = config.cols;\n this.rows = config.rows;\n this.keyFilter = config.keyFilter;\n this.style = {\n ...config.style,\n ...this.style,\n };\n this.readonly = config.readonly;\n this.speechRecognition = config.speechRecognition ?? false\n this.keepContext = config.keepContext ?? false\n this.speechRecognitionPlaceholder = config.speechRecognitionPlaceholder ?? '';\n this.maxLength = config.maxLength ?? null;\n }\n}\n","import { AddonConfig } from '../../addon-config';\nimport { Field, FieldConfig } from './field';\n\nexport interface TextFieldConfig extends FieldConfig {\n mask?: () => string | any;\n readonly?: () => boolean\n characterPattern?: (() => string) | string;\n unmask?: (() => boolean) | boolean;\n inputType?: string;\n keyFilter?: any;\n leftAddon?: AddonConfig;\n rightAddon?: AddonConfig;\n maxLength?: string | number;\n browserAutocomplete?: boolean;\n style?: { [klass: string]: any };\n onBlur?: (event: Event) => void;\n onFocus?: (event: FocusEvent) => void;\n onComplete?: (event: FocusEvent) => void;\n onInput?: (event: FocusEvent) => void;\n}\n\nexport class TextField extends Field {\n public mask?: () => string | any;\n public characterPattern?: (() => string) | string;\n public unmask?: (() => boolean) | boolean;\n public readonly?: () => boolean;\n public inputType?: string;\n public keyFilter?: any;\n public leftAddon?: AddonConfig;\n public rightAddon?: AddonConfig;\n public maxLength?: string | number;\n public browserAutocomplete?: boolean;\n public style?: { [klass: string]: any };\n public onBlur?: (event: Event) => void;\n public onFocus?: (event: FocusEvent) => void;\n public onComplete?: (event: any) => void;\n public onInput?: (event: any) => void;\n\n constructor(config: TextFieldConfig) {\n super(config);\n this.mask = config.mask;\n this.characterPattern = config.characterPattern ?? \"[A-Za-z]\";\n this.unmask = config.unmask ?? false;\n this.readonly = config.readonly;\n this.inputType = config.inputType;\n this.keyFilter = config.keyFilter;\n this.leftAddon = config.leftAddon;\n this.rightAddon = config.rightAddon;\n this.maxLength = config.maxLength || 9999999;\n this.browserAutocomplete = config.browserAutocomplete;\n this.style = config.style;\n this.onBlur = config.onBlur;\n this.onFocus = config.onFocus;\n this.onComplete = config.onComplete;\n this.onInput = config.onInput;\n this.sortableColumnName = config.sortableColumnName;\n }\n}\n","import { Observable } from 'rxjs';\nimport { FieldType } from '../field-type';\nimport { Field, FieldConfig } from './field';\n\nexport interface AutocompleteFieldConfig extends FieldConfig {\n dataKey?: string;\n displayField?: string;\n multiple?: boolean;\n appendTo?: string;\n emptyMessage?: string;\n suggestionsObservable?: Observable<any>;\n onSelect?: (event: any) => void;\n onUnselect?: (event: any) => void;\n onClear?: (event: any) => void;\n onSearch?: (value: string) => void;\n onBlur?: (event: FocusEvent) => void;\n}\n\nexport class AutocompleteField extends Field implements AutocompleteFieldConfig {\n public dataKey?: string;\n public displayField?: string;\n public multiple?: boolean;\n public appendTo?: string;\n public emptyMessage?: string;\n public suggestionsObservable?: Observable<any>;\n public suggestions: any[] = [];\n\n public onSelect?: (event: any) => void;\n public onUnselect?: (event: any) => void;\n public onClear?: (event: any) => void;\n public onSearch?: (value: string) => void;\n public onBlur?: (event: FocusEvent) => void;\n\n constructor(config: AutocompleteFieldConfig) {\n super({ ...config, type: FieldType.Autocomplete } as AutocompleteFieldConfig);\n Object.assign(this, config);\n if (this.suggestionsObservable) {\n this.suggestionsObservable.subscribe(suggestions => (this.suggestions = suggestions));\n }\n }\n}\n","export enum DynamicType {\n Autocomplete = 'Autocomplete',\n Binary = 'Binary',\n Boolean = 'Boolean',\n Chips = 'Chips',\n Date = 'Date',\n DateTime = 'DateTime',\n LocalDateTime = 'LocalDateTime',\n Double = 'Double',\n Enum = 'Enum',\n Fieldset = 'Fieldset',\n Integer = 'Integer',\n Lookup = 'Lookup',\n Money = 'Money',\n Radio = 'Radio',\n Row = 'Row',\n Section = 'Section',\n String = 'String',\n Text = 'Text',\n Time = 'Time',\n Number = 'Number',\n Password = 'Password',\n Slider = 'Slider',\n}\n","export enum GridType {\n Row = 'Row',\n}\n","import { isNullOrUndefined } from \"@seniorsistemas/angular-components/utils\";\nimport { FormField } from \"../../form-field/form-field\";\nimport { GridType } from \"../grid-type\";\nimport { Section } from \"../structure/section\";\n\nexport interface GridConfig {\n fields?: Array<FormField | Section>;\n type: GridType;\n visible?: () => boolean;\n}\n\nexport class Grid implements GridConfig {\n public fields: Array<FormField | Section> = [];\n public type: GridType = GridType.Row;\n public visible?: () => boolean;\n\n constructor(config: GridConfig) {\n Object.assign(this, { ...config });\n if (isNullOrUndefined(config.visible)) {\n this.visible = () => true;\n }\n }\n}\n","import { FormField } from '../../form-field/form-field';\nimport { GridType } from '../grid-type';\nimport { Grid, GridConfig } from './grid';\n\nexport class Row extends Grid {\n public override fields: FormField[] = [];\n public override type: GridType = GridType.Row;\n\n constructor(config: GridConfig) {\n super(config);\n }\n}\n","import { FormField } from '../../form-field/form-field';\nimport { Grid } from '../grid/grid';\nimport { StructureType } from '../structure-type';\n\nexport interface StructureConfig {\n header?: string;\n configs?: Grid[];\n type?: StructureType;\n}\n\nexport abstract class Structure {\n public header?: string = '';\n public configs?: Grid[] | FormField[];\n public type?: StructureType;\n\n constructor(config: StructureConfig) {\n Object.assign(this, { ...config });\n }\n}\n","import { Structure, StructureConfig } from './structure';\n\nexport interface FieldsetConfig extends StructureConfig {\n beforeToggle?: (event: any) => void;\n afterToggle?: (event: any) => void;\n}\n\nexport class Fieldset extends Structure {\n public beforeToggle?: (event: any) => void;\n public afterToggle?: (event: any) => void;\n\n constructor(config: FieldsetConfig) {\n super(config);\n Object.assign(this, { ...config });\n }\n}\n","import { FieldSize } from '../../form-field/configurations/field-size';\nimport { Structure, StructureConfig } from './structure';\n\nexport class Section extends Structure {\n /**\n * Define if the structure is a flex container.\n */\n public isFlex? = false;\n /**\n * Define the justify-content property.\n */\n public justifyContent?: 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly' =\n 'flex-start';\n /**\n * Define the align-items property.\n */\n public alignItems?: 'stretch' | 'flex-start' | 'flex-end' | 'center' | 'baseline' | 'initial' | 'inherit' =\n 'flex-start';\n\n public visible?: () => boolean = () => true;\n\n public size?: FieldSize;\n protected gridClass?: string[];\n constructor(config: Section) {\n super(config as StructureConfig);\n this.isFlex = config.isFlex || false;\n this.justifyContent = config.justifyContent || 'flex-start';\n this.alignItems = config.alignItems || 'flex-start';\n\n if (config.visible) {\n this.visible = config.visible;\n }\n\n this.size = new FieldSize(config.size || {});\n this.gridClass = Object.keys(this.size).map((key) => `ui-${key}-${(this.size as any)[key]}`);\n }\n}\n\n","import { AutocompleteFieldConfig } from '../form-field/configurations/fields/autocomplete-field';\nimport { BignumberField, BignumberFieldConfig } from '../form-field/configurations/fields/bignumber-field';\nimport { BooleanField, BooleanFieldConfig } from '../form-field/configurations/fields/boolean-field';\nimport { BooleanSwitchField, BooleanSwitchFieldConfig } from '../form-field/configurations/fields/boolean-switch-field';\nimport { CalendarField, CalendarFieldConfig } from '../form-field/configurations/fields/calendar-field';\nimport { ChipsField, ChipsFieldConfig } from '../form-field/configurations/fields/chips-field';\nimport { CurrencyField } from '../form-field/configurations/fields/currency-field';\nimport { DecimalField, DecimalFieldConfig } from '../form-field/configurations/fields/decimal-field';\nimport { LookupField, LookupFieldConfig } from '../form-field/configurations/fields/lookup-field';\nimport { NumberField, NumberFieldConfig } from '../form-field/configurations/fields/number-field';\nimport { PasswordField, PasswordFieldConfig } from '../form-field/configurations/fields/password-field';\nimport { RadioButtonField } from '../form-field/configurations/fields/radio-button-field';\nimport { SelectField, SelectFieldConfig } from '../form-field/configurations/fields/select-field';\nimport { SliderField, SliderFieldConfig } from '../form-field/configurations/fields/slider-field';\nimport { TextAreaField, TextAreaFieldConfig } from '../form-field/configurations/fields/text-area-field';\nimport { TextField, TextFieldConfig } from '../form-field/configurations/fields/text-field';\nimport { AutocompleteField } from '../form-field/configurations/fields/autocomplete-field';\n\nimport { DynamicType } from './dynamic-type';\nimport { Row } from './grid/row';\nimport { Fieldset, FieldsetConfig } from './structure/fieldset';\nimport { Section } from './structure/section';\n\nexport class DynamicConfig {\n constructor(config: any) {\n const { type, representedBy } = config;\n switch (type) {\n case DynamicType.Autocomplete:\n return new AutocompleteField(config as AutocompleteFieldConfig);\n case DynamicType.Binary:\n case DynamicType.String:\n return new TextField(config as TextFieldConfig);\n case DynamicType.Password:\n return new PasswordField(config as PasswordFieldConfig);\n case DynamicType.Boolean:\n if (representedBy === 'switch') {\n return new BooleanSwitchField(config as BooleanSwitchFieldConfig);\n }\n return new BooleanField(config as BooleanFieldConfig);\n case DynamicType.Chips:\n return new ChipsField(config as ChipsFieldConfig);\n case DynamicType.Date:\n case DynamicType.DateTime:\n case DynamicType.LocalDateTime:\n case DynamicType.Time:\n return new CalendarField(config as CalendarFieldConfig);\n case DynamicType.Double:\n return new DecimalField(config as DecimalFieldConfig);\n case DynamicType.Enum:\n return new SelectField(config as SelectFieldConfig);\n case DynamicType.Fieldset:\n return new Fieldset(config as FieldsetConfig);\n case DynamicType.Integer:\n return new NumberField(config as NumberFieldConfig);\n case DynamicType.Number:\n return new BignumberField(config as BignumberFieldConfig);\n case DynamicType.Lookup:\n return new LookupField(config as LookupFieldConfig);\n case DynamicType.Money:\n return new CurrencyField(config as DecimalFieldConfig);\n case DynamicType.Radio:\n return new RadioButtonField(config);\n case DynamicType.Row:\n return new Row(config);\n case DynamicType.Section:\n return new Section(config as Section);\n case DynamicType.Slider:\n return new SliderField(config as SliderFieldConfig);\n case DynamicType.Text:\n return new TextAreaField(config as TextAreaFieldConfig);\n }\n }\n}\n\n","export enum StructureType {\n Fieldset = 'Fieldset',\n Section = 'Section',\n}\n","import { Injectable } from '@angular/core';\nimport { GridType } from '../configurations/grid-type';\nimport { FieldType } from '../form-field/configurations/field-type';\nimport { StructureType } from '../configurations/structure-type';\n\n@Injectable({ providedIn: 'root' })\nexport class DynamicFormCacheService {\n LOADED_ALL_CACHE = false;\n private readonly CACHED_COMPONENTS: Map<GridType | FieldType | StructureType, any> = new Map();\n async setCache() {\n const setAutoComplete = async () => {\n const { AutocompleteFieldComponent } = await import(\n '../../dynamic-form/form-field/fields/autocomplete/autocomplete-field.component'\n );\n this.CACHED_COMPONENTS.set(FieldType.Autocomplete, AutocompleteFieldComponent);\n };\n const setLookup = async () => {\n const { LookupFieldComponent } = await import(\n '../../dynamic-form/form-field/fields/lookup/lookup-field.component'\n );\n this.CACHED_COMPONENTS.set(FieldType.Lookup, LookupFieldComponent);\n };\n const setTextAreaIA = async () => {\n const { TextAreaIAFieldComponent } = await import(\n '../../dynamic-form/form-field/fields/text-area-ia/text-area-ia-field.component'\n );\n this.CACHED_COMPONENTS.set(FieldType.TextIA, TextAreaIAFieldComponent);\n };\n const setBigNumberField = async () => {\n const { BignumberFieldComponent } = await import(\n '../../dynamic-form/form-field/fields/bignumber/bignumber-field.component'\n );\n this.CACHED_COMPONENTS.set(FieldType.Number, BignumberFieldComponent);\n };\n const setBooleanField = async () => {\n const { BooleanFieldComponent } = await import(\n '../../dynamic-form/form-field/fields/boolean/boolean-radio-field/boolean-field.component'\n );\n this.CACHED_COMPONENTS.set(FieldType.Boolean, BooleanFieldComponent);\n };\n const setBooleanSwitchField = async () => {\n const { BooleanSwitchFieldComponent } = await import(\n '../../dynamic-form/form-field/fields/boolean/boolean-switch-field/boolean-switch-field.component'\n );\n this.CACHED_COMPONENTS.set(FieldType.BooleanSwitch, BooleanSwitchFieldComponent);\n };\n const setCalendarField = async () => {\n const { CalendarFieldComponent } = await import(\n '../../dynamic-form/form-field/fields/calendar/calendar-field.component'\n );\n this.CACHED_COMPONENTS.set(FieldType.Date, CalendarFieldComponent);\n };\n\n const setCheckboxField = async () => {\n const { CheckboxFieldComponent } = await import(\n '../../dynamic-form/form-field/fields/checkbox/checkbox-field.component'\n );\n this.CACHED_COMPONENTS.set(FieldType.Checkbox, CheckboxFieldComponent);\n };\n const setChipsField = async () => {\n const { ChipsFieldComponent } = await import(\n '../../dynamic-form/form-field/fields/chips/chips-field.component'\n );\n this.CACHED_COMPONENTS.set(FieldType.Chips, ChipsFieldComponent);\n };\n const setCountryPhonePickerField = async () => {\n const { CountryPhonePickerFieldComponent } = await import(\n '../../dynamic-form/form-field/fields/country-phone-picker/country-phone-picker-field.component'\n );\n this.CACHED_COMPONENTS.set(FieldType.CountryPhonePicker, CountryPhonePickerFieldComponent);\n };\n const setCurrencyField = async () => {\n const { CurrencyFieldComponent } = await import(\n '../../dynamic-form/form-field/fields/currency/currency-field.component'\n );\n this.CACHED_COMPONENTS.set(FieldType.Money, CurrencyFieldComponent);\n };\n const setEditorField = async () => {\n const { EditorFieldComponent } = await import(\n '../../dynamic-form/form-field/fields/editor/editor-field.component'\n );\n this.CACHED_COMPONENTS.set(FieldType.Editor, EditorFieldComponent);\n };\n const setFileUploadField = async () => {\n const { FileUploadFieldComponent } = await import(\n '../../dynamic-form/form-field/fields/file-upload/file-upload-field.component'\n );\n this.CACHED_COMPONENTS.set(FieldType.Blob, FileUploadFieldComponent);\n };\n const setPasswordField = async () => {\n const { PasswordFieldComponent } = await import(\n '../../dynamic-form/form-field/fields/password/password-field.component'\n );\n this.CACHED_COMPONENTS.set(FieldType.Password, PasswordFieldComponent);\n };\n const setProfilePictureField = async () => {\n const { ProfilePictureFieldComponent } = await import(\n '../../dynamic-form/form-field/fields/profile-picture/profile-picture-field.component'\n );\n this.CACHED_COMPONENTS.set(FieldType.ProfilePicture, ProfilePictureFieldComponent);\n };\n const setRadioButtonField = async () => {\n const { RadioButtonFieldComponent } = await import(\n '../../dynamic-form/form-field/fields/radio-button/radio-button-field.component'\n );\n this.CACHED_COMPONENTS.set(FieldType.Radio, RadioButtonFieldComponent);\n };\n const setSelectField = async () => {\n const { SelectFieldComponent } = await import(\n '../../dynamic-form/form-field/fields/select/select-field.component'\n );\n this.CACHED_COMPONENTS.set(FieldType.Enum, SelectFieldComponent);\n };\n const setSliderField = async () => {\n const { SliderFieldComponent } = await import(\n '../../dynamic-form/form-field/fields/slider/slider-field.component'\n );\n this.CACHED_COMPONENTS.set(FieldType.Slider, SliderFieldComponent);\n };\n const setTextAreaField = async () => {\n const { TextAreaFieldComponent } = await import(\n '../../dynamic-form/form-field/fields/text-area/text-area-field.component'\n );\n this.CACHED_COMPONENTS.set(FieldType.Text, TextAreaFieldComponent);\n };\n\n const setTextField = async () => {\n const { TextFieldComponent } = await import(\n '../../dynamic-form/form-field/fields/text/text-field.component'\n );\n this.CACHED_COMPONENTS.set(FieldType.String, TextFieldComponent);\n };\n const setButtonField = async () => {\n const { ButtonFieldComponent } = await import(\n '../../dynamic-form/form-field/fields/button-field/button-field.component'\n );\n this.CACHED_COMPONENTS.set(FieldType.Button, ButtonFieldComponent);\n };\n\n const setFieldSetComponent = async () => {\n const { FieldsetComponent } = await import('../components/structure/fieldset/fieldset.component');\n this.CACHED_COMPONENTS.set(StructureType.Fieldset, FieldsetComponent);\n };\n const setSectionComponent = async () => {\n const { SectionComponent } = await import('../components/structure/section/section.component');\n this.CACHED_COMPONENTS.set(StructureType.Section, SectionComponent);\n };\n const setRowComponent = async () => {\n const { RowComponent } = await import('../components/grid/row/row.component');\n this.CACHED_COMPONENTS.set(GridType.Row, RowComponent);\n };\n\n const setStarRatingComponent = async () => {\n const { StarRatingFieldComponent } = await import(\n '../../dynamic-form/form-field/fields/star-rating/star-rating-field.component'\n );\n this.CACHED_COMPONENTS.set(FieldType.StarRating, StarRatingFieldComponent);\n };\n\n const SET_CACHE_PROMISES = [\n setAutoComplete,\n setLookup,\n setTextAreaIA,\n setBigNumberField,\n setBooleanField,\n setBooleanSwitchField,\n setCalendarField,\n setCheckboxField,\n setChipsField,\n setCountryPhonePickerField,\n setCurrencyField,\n setEditorField,\n setFileUploadField,\n setPasswordField,\n setProfilePictureField,\n setRadioButtonField,\n setSelectField,\n setSliderField,\n setTextAreaField,\n setTextField,\n setButtonField,\n setFieldSetComponent,\n setSectionComponent,\n setRowComponent,\n setStarRatingComponent,\n ];\n await Promise.allSettled(SET_CACHE_PROMISES.map((promise) => promise()));\n this.LOADED_ALL_CACHE = true;\n }\n\n get(type: GridType | FieldType | StructureType) {\n return this.CACHED_COMPONENTS.get(type);\n }\n}\n","import { ComponentRef, ViewContainerRef } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\nimport { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\n\nimport { Subscription } from 'rxjs';\nimport { GridType } from './configurations/grid-type';\nimport { Row } from './configurations/grid/row';\nimport { StructureType } from './configurations/structure-type';\nimport { Structure } from './configurations/structure/structure';\nimport { FieldType } from './form-field/configurations/field-type';\nimport { FormField } from './form-field/form-field';\nimport { DynamicFormCacheService } from './services/dynamic-form-cache';\n\nexport abstract class DynamicForm {\n group: FormGroup | undefined;\n errorMessages: any;\n cacheService: DynamicFormCacheService;\n\n abstract createComponent(viewContainerRef: ViewContainerRef): any;\n abstract updateVariables(component: ComponentRef<any>): void;\n abstract getComponent(): any;\n\n constructor({ group, errorMessages, cacheService }: { group: FormGroup | undefined; errorMessages: any, cacheService: DynamicFormCacheService }) {\n this.group = group;\n this.errorMessages = errorMessages;\n this.cacheService = cacheService;\n }\n}\n\nexport class DynamicField extends DynamicForm {\n field: FormField | undefined;\n\n constructor({\n group,\n field,\n errorMessages,\n cacheService\n }: {\n group: FormGroup | undefined;\n field: FormField | undefined;\n errorMessages: any;\n cacheService: DynamicFormCacheService;\n }) {\n super({\n group,\n errorMessages,\n cacheService\n });\n this.field = field;\n }\n\n public createComponent(viewContainerRef: ViewContainerRef) {\n const component = viewContainerRef.createComponent(this.getComponent()) as ComponentRef<any>;\n\n component.instance.field = this.field;\n\n if (!isNullOrUndefined(this.field?.name)) {\n // Must be this way because some teams use name like \"e070emp.codemp\"\n component.instance.formControl = this.group?.['controls'][this.field.name];\n }\n\n this._switchEmptyStringToNull(component);\n\n component.instance.errorMessages = this.errorMessages;\n\n this.setVariablesByType(component);\n return component;\n }\n\n public setVariablesByType(component: ComponentRef<any>) {\n if (this.field?.type == FieldType.Time) {\n component.instance.timeOnly = true;\n }\n if (!isNullOrUndefined(this.field?.type)) {\n if ([FieldType.LocalDateTime, FieldType.DateTime, FieldType.Time].includes(this.field.type)) {\n component.instance.showTime = true;\n }\n }\n }\n\n public updateVariables(component: ComponentRef<any>) {\n if (isNullOrUndefined(this.field?.name)) return;\n\n component.instance.field = this.field;\n component.instance.formControl = this.group?.['controls'][this.field.name];\n this.setVariablesByType(component);\n }\n\n public getComponent() {\n if (isNullOrUndefined(this.field)) {\n throw new Error(`Field is null or undefined.`);\n }\n\n const fieldType = this.field.type as FieldType;\n\n switch (fieldType) {\n case FieldType.Binary:\n case FieldType.String: {\n return this.cacheService.get(FieldType.String);\n }\n case FieldType.Boolean: {\n if (this.field.representedBy === 'switch') {\n return this.cacheService.get(FieldType.BooleanSwitch);\n } else {\n return this.cacheService.get(FieldType.Boolean);\n }\n }\n case FieldType.Date:\n case FieldType.DateTime:\n case FieldType.LocalDateTime:\n case FieldType.Time: {\n return this.cacheService.get(FieldType.Date);\n }\n case FieldType.Number:\n case FieldType.Integer:\n case FieldType.Double: {\n return this.cacheService.get(FieldType.Number);\n }\n case FieldType.Autocomplete:\n case FieldType.Checkbox:\n case FieldType.Chips:\n case FieldType.CountryPhonePicker:\n case FieldType.Enum:\n case FieldType.Lookup:\n case FieldType.Money:\n case FieldType.Radio:\n case FieldType.Text:\n case FieldType.TextIA:\n case FieldType.Password:\n case FieldType.Blob:\n case FieldType.Slider:\n case FieldType.ProfilePicture:\n case FieldType.Editor:\n case FieldType.StarRating:\n case FieldType.Button: {\n return this.cacheService.get(fieldType);\n }\n\n case FieldType.Custom:\n return this.field.CustomFieldComponentClass;\n default:\n throw new Error(`Trying to use an unsupported type (${this.field?.type}).`);\n }\n }\n\n private _switchEmptyStringToNull(component: ComponentRef<any>) {\n switch (component.instance.field.type) {\n case FieldType.Password:\n case FieldType.String:\n case FieldType.Text:\n case FieldType.TextIA:\n const valueChanges$: Subscription = component.instance.formControl.valueChanges.subscribe(\n (value: unknown) => {\n if (value === '') {\n component.instance.formControl.setValue(null, { emitEvent: false });\n }\n },\n );\n\n component.onDestroy(() => {\n valueChanges$.unsubscribe();\n });\n\n return;\n }\n }\n}\n\nexport class DynamicStructure extends DynamicForm {\n config: Structure | undefined;\n\n constructor({\n group,\n config,\n errorMessages,\n cacheService\n }: {\n group: FormGroup | undefined;\n config: Structure | undefined;\n errorMessages: any;\n cacheService: DynamicFormCacheService;\n }) {\n super({\n group,\n errorMessages,\n cacheService\n });\n\n this.config = config;\n }\n\n public createComponent(viewContainerRef: ViewContainerRef) {\n const component = viewContainerRef.createComponent(this.getComponent()) as ComponentRef<any>;\n component.instance.config = this.config;\n component.instance.group = this.group;\n return component;\n }\n\n public updateVariables(component: ComponentRef<any>) {\n component.instance.structure = this.config;\n component.instance.group = this.group;\n }\n\n public getComponent() {\n if (isNullOrUndefined(this.config)) {\n throw new Error('Config is null or undefined.');\n }\n\n const structureType = this.config.type as StructureType;\n switch (structureType) {\n case StructureType.Fieldset:\n case StructureType.Section:\n return this.cacheService.get(structureType);\n default:\n throw new Error(`Trying to use an unsupported type (${this.config?.type}).`);\n }\n }\n}\n\nexport class DynamicGrid extends DynamicForm {\n config: Row | undefined;\n\n constructor({\n group,\n config,\n errorMessages,\n cacheService\n }: {\n group: FormGroup | undefined;\n config: Row | undefined;\n errorMessages: any;\n cacheService: DynamicFormCacheService;\n }) {\n super({ group, errorMessages, cacheService });\n\n this.config = config;\n }\n\n public createComponent(viewContainerRef: ViewContainerRef) {\n const component: any = viewContainerRef.createComponent(this.getComponent());\n component.instance.config = this.config as Row;\n component.instance.group = this.group as FormGroup;\n component.instance.errorMessages = this.errorMessages;\n return component;\n }\n\n public updateVariables(component: ComponentRef<any>) {\n component.instance.config = this.config;\n component.instance.group = this.group;\n }\n\n public getComponent() {\n if (isNullOrUndefined(this.config)) {\n throw new Error('Config is null or undefined.');\n }\n\n switch (this.config?.type) {\n case GridType.Row:\n return this.cacheService.get(GridType.Row);\n default:\n throw new Error(`Trying to use an unsupported type (${this.config?.type}).`);\n }\n }\n}\n\n","import {\n ComponentRef,\n Directive,\n inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n ViewContainerRef\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { FieldType } from './form-field/configurations/field-type';\nimport { FormField } from './form-field/form-field';\nimport { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\nimport { DynamicConfig } from './configurations/dynamic-config';\nimport { GridType } from './configurations/grid-type';\nimport { Grid } from './configurations/grid/grid';\nimport { Row } from './configurations/grid/row';\nimport { StructureType } from './configurations/structure-type';\nimport { Structure } from './configurations/structure/structure';\nimport { DynamicField, DynamicForm, DynamicGrid, DynamicStructure } from './dynamic-form';\nimport { Field } from './form-field/configurations/fields/field';\nimport { DynamicFormCacheService } from './services/dynamic-form-cache';\n\n@Directive({ selector: '[sDynamicForm]' })\nexport class DynamicFormDirective implements OnInit, OnChanges, OnDestroy {\n private id?: string;\n private config?: Structure | FormField | Grid | DynamicConfig | Row;\n private group?: FormGroup;\n private errorMessages?: FormGroup;\n private directiveConfig?: DynamicForm;\n\n @Input()\n set sDynamicForm(context: {\n id?: string;\n config?: FormField | Grid | DynamicConfig | undefined;\n structure?: Structure;\n group?: FormGroup;\n errorMessages?: any;\n }) {\n const { id, config, group, errorMessages } = context;\n this.id = id;\n this.config = config;\n this.group = group;\n this.errorMessages = errorMessages;\n }\n\n public component: ComponentRef<any> | null = null;\n\n private readonly viewContainerRef = inject(ViewContainerRef);\n\n dynamicFormCacheService = inject(DynamicFormCacheService);\n\n public ngOnInit() {\n if (this.isField()) {\n if (!(this.config as FormField).id && this.id) {\n (this.config as FormField).id = this.id + '-' + (this.config as FormField).name;\n }\n\n this.directiveConfig = new DynamicField({\n group: this.group,\n field: this.config as FormField,\n errorMessages: this.errorMessages,\n cacheService: this.dynamicFormCacheService\n });\n } else if (this.isStructure()) {\n this.directiveConfig = new DynamicStructure({\n group: this.group,\n config: this.config as Structure,\n errorMessages: this.errorMessages,\n cacheService: this.dynamicFormCacheService\n });\n } else if (this.isGrid()) {\n this.directiveConfig = new DynamicGrid({\n group: this.group,\n config: this.config as Row,\n errorMessages: this.errorMessages,\n cacheService: this.dynamicFormCacheService\n });\n } else throw new Error(`Trying to use an unsupported type (${this.getType}).`);\n\n this.component = this.directiveConfig.createComponent(this.viewContainerRef);\n\n if (!isNullOrUndefined(this.component)) {\n this.component.instance.id = this.id;\n this.component.instance.errorMessages = this.errorMessages;\n }\n }\n\n public ngOnChanges() {\n if (this.component) {\n this.directiveConfig?.updateVariables(this.component);\n this.component.instance.errorMessages = this.errorMessages;\n }\n }\n\n public ngOnDestroy(): void {\n this.component?.destroy();\n }\n\n private isField(): boolean {\n if (isNullOrUndefined(this.getType)) {\n return false;\n }\n\n return !!(FieldType as any)[this.getType];\n }\n\n private isStructure(): boolean {\n if (isNullOrUndefined(this.getType)) {\n return false;\n }\n\n return !!(StructureType as any)[this.getType];\n }\n\n private isGrid() {\n if (isNullOrUndefined(this.getType)) {\n return false;\n }\n\n return !!(GridType as any)[this.getType];\n }\n\n private get getType() {\n const config = this.config;\n if (config instanceof DynamicConfig) {\n return (config as Field).type;\n } else {\n return config?.type;\n }\n }\n}\n","import { Component, computed, inject, input, Input, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { DynamicConfig } from './configurations/dynamic-config';\nimport { GridType } from './configurations/grid-type';\nimport { FormField } from './form-field/form-field';\nimport { DynamicFormCacheService } from './services/dynamic-form-cache';\n\n@Component({\n selector: 's-dynamic-form',\n templateUrl: './dynamic-form.component.html',\n styleUrls: ['dynamic-form.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DynamicFormComponent {\n @Input()\n public id!: string;\n\n @Input()\n public configs: DynamicConfig[] = [];\n\n /**\n * @deprecated Use `configs` input instead. Este campo será removido em versões futuras.\n */\n fields = input<DynamicConfig[] | null, FormField[]>(null, {\n transform: (fields) => [\n {\n type: GridType.Row,\n fields,\n },\n ],\n });\n\n conf = computed(() => (this.fields() ? this.fields() : this.configs));\n\n @Input({ required: true })\n public form!: FormGroup;\n\n @Input()\n public errorMessages?: any = {};\n\n dynamicFormCacheService = inject(DynamicFormCacheService);\n}\n\n","@if(dynamicFormCacheService.LOADED_ALL_CACHE) {\n <ng-container *ngFor=\"let config of conf()\">\n <ng-container\n *sDynamicForm=\"{\n id: id,\n config: config,\n group: form,\n errorMessages: errorMessages\n }\">\n </ng-container>\n </ng-container>\n}\n","import { Component, Input } from \"@angular/core\";\n\nimport { Field } from \"../../form-field/configurations/fields/field\";\n\n@Component({\n selector: 's-field-label',\n templateUrl: './field-label.component.html',\n})\nexport class FieldLabelComponent {\n @Input({ required: true })\n public field!: Field;\n\n @Input()\n public fieldContainerRef: HTMLElement | null | undefined = null;\n}\n","<!--\n Caso esse componente seja alterado/removido/movido,\n alterar a label no row.component.ts\n-->\n\n@if (field.label) {\n <span>\n <label\n *sInfoSign=\"\n field.infoSign ?? '';\n displayTime: field.displayTimeInfoSign ?? 0;\n focusedInputRef: fieldContainerRef;\n useFocusedInputRef: field.useInfoSignFocusedInputRef;\n \"\n [for]=\"field.name\"\n class=\"inline-block\"\n [ngClass]=\"{ required: field.required?.() }\"\n >\n {{ field.label }}\n </label>\n </span>\n}\n","import { Component, Input } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\nimport { Row } from '../../../configurations/grid/row';\nimport { FieldType } from '../../../form-field/configurations/field-type';\n\n@Component({\n templateUrl: './row.component.html',\n selector: 's-row',\n})\nexport class RowComponent {\n @Input()\n public id?: string;\n\n @Input({ required: true })\n public config!: Row;\n\n @Input({ required: true })\n public group!: FormGroup;\n\n @Input()\n public errorMessages: any;\n\n FieldType = FieldType;\n\n public getErrorMessages(errorMessages: any) {\n if (errorMessages) return this.isFunction(errorMessages) ? errorMessages() : errorMessages;\n return this.errorMessages;\n }\n\n public isFunction(value: any): boolean {\n return value instanceof Function;\n }\n}\n\n","<div\n class=\"p-fluid\"\n [formGroup]=\"group\"\n>\n <div class=\"ui-g\">\n @for (field of config.fields; let i = $index; track i) {\n @if (field.visible && field.visible()) {\n <div [ngClass]=\"field.gridClass\">\n <ng-container *sDynamicForm=\"{ id: id, config: field, group: group }\"></ng-container>\n\n @if (field.type === FieldType.Custom && field.label) {\n <label\n *sInfoSign=\"\n field.infoSign ?? '';\n displayTime: field.displayTimeInfoSign ?? 5000;\n useFocusedInputRef: field.useInfoSignFocusedInputRef ?? false\n \"\n [for]=\"field.name\"\n [ngClass]=\"{ required: field.required ? field.required() : false }\"\n >\n {{ field.label }}\n </label>\n }\n\n @if (field.name) {\n <s-control-errors\n [form]=\"group\"\n [control]=\"group.controls[field.name]\"\n [errorMessages]=\"getErrorMessages(field.errorMessages)\"\n ></s-control-errors>\n }\n\n @if (field.footer) {\n @if (field.footer.help) {\n @if (\n field.name &&\n field.footer.help.visible &&\n field.footer.help.visible({\n abstractControl: group.controls[field.name],\n formField: field,\n })\n ) {\n <span style=\"color: #888b99\">\n {{ field.footer.help.text }}\n </span>\n }\n }\n }\n\n @if (field.footer) {\n @if (\n field.name &&\n field.footer.link?.visible({\n abstractControl: group.controls[field.name],\n formField: field,\n })\n ) {\n <div\n class=\"ui-g\"\n style=\"margin-left: -17px\"\n >\n <s-button\n [label]=\"field.footer.link?.label\"\n priority=\"link\"\n (clicked)=\"\n field.footer.link?.onClick({\n abstractControl: group.controls[field.name],\n formField: field,\n })\n \"\n [auxiliary]=\"true\"\n ></s-button>\n </div>\n }\n }\n @if (field.bottomTemplate) {\n <ng-template [ngTemplateOutlet]=\"field.bottomTemplate\"></ng-template>\n }\n </div>\n }\n }\n </div>\n</div>\n\n","import { ElementRef } from '@angular/core';\nimport { FormField } from '../../form-field';\nimport { Field, FieldConfig } from './field';\nimport { FileDto } from '@seniorsistemas/angular-components/file-upload';\n\nexport interface BlobFieldConfig extends FieldConfig {\n accept: string;\n files: FileDto[];\n chooseLabel: string;\n removeLabel: string;\n cancelLabel: string;\n successTooltip: string;\n multiple: boolean;\n onUploadFile: (event: { files: FileDto[] }, field: FormField) => void;\n onRemoveFile: (event: FileDto, field: FormField) => void;\n onCancelUpload: (event: number, field: FormField) => void;\n onDownloadFile: (event: { index: number; anchor: ElementRef }, field: FormField) => void;\n showFileUploadDate: boolean;\n}\n\nexport class BlobField extends Field {\n public accept: string;\n public files: FileDto[];\n public chooseLabel: string;\n public removeLabel: string;\n public cancelLabel: string;\n public successTooltip: string;\n public multiple: boolean;\n public onUploadFile: (event: { files: FileDto[] }, field: FormField) => void;\n public onRemoveFile: (event: FileDto, field: FormField) => void;\n public onCancelUpload: (event: number, field: FormField) => void;\n public onDownloadFile: (event: { index: number; anchor: ElementRef }, field: FormField) => void;\n public showFileUploadDate: boolean;\n\n constructor(config: BlobFieldConfig) {\n super(config);\n this.accept = config.accept;\n this.files = config.files || [];\n this.chooseLabel = config.chooseLabel;\n this.removeLabel = config.removeLabel;\n this.cancelLabel = config.cancelLabel;\n this.successTooltip = config.successTooltip;\n this.multiple = config.multiple;\n this.onUploadFile = config.onUploadFile;\n this.onRemoveFile = config.onRemoveFile;\n this.onCancelUpload = config.onCancelUpload;\n this.onDownloadFile = config.onDownloadFile;\n this.showFileUploadDate = config.showFileUploadDate;\n }\n}\n","import { ButtonAnimations, ButtonBadgeConfig, ButtonComponent, ButtonPriority, ButtonSize } from '@seniorsistemas/angular-components/button';\nimport { Field, FieldConfig } from './field';\nimport { TieredMenuItemData } from '@seniorsistemas/angular-components/tiered-menu';\nimport { randomHash } from '@seniorsistemas/angular-components/utils';\n\ntype ExtractedButtonProperties = Partial<\n Pick<\n ButtonComponent,\n | 'priority'\n | 'iconClass'\n | 'disabled'\n | 'auxiliary'\n | 'caret'\n | 'iconColor'\n | 'badge'\n | 'animation'\n | 'slide'\n | 'menuOptions'\n | 'baseZIndex'\n | 'styleClass'\n | 'rightIconClass'\n | 'tooltipPosition'\n >\n>;\n\nexport interface ButtonFieldConfig extends FieldConfig, ExtractedButtonProperties {\n onClick?: (event?: any) => any;\n fullWidth?: boolean;\n mouseEnter?: (button: ButtonField) => void\n mouseLeave?: (button: ButtonField) => void\n}\n\nexport class ButtonField extends Field implements ExtractedButtonProperties {\n public priority?: ButtonPriority;\n public iconClass?: string;\n public disabled = false;\n public auxiliary = false;\n public caret = false;\n public onClick?: (event?: Event) => any;\n public fullWidth?: boolean;\n public iconColor?: string;\n public badge?: ButtonBadgeConfig;\n public animation?: ButtonAnimations;\n public slide = false;\n public menuOptions: TieredMenuItemData[] = [];\n public baseZIndex = 0;\n public styleClass?: string;\n public rightIconClass?: string;\n public tooltipPosition?: 'top' | 'right' | 'bottom' | 'left' = 'top';\n public buttonType?: string;\n public buttonSize?: ButtonSize;\n public mouseEnter?: (button: ButtonField) => void\n public mouseLeave?: (button: ButtonField) => void\n\n constructor(config: ButtonFieldConfig) {\n super(config);\n this.priority = config.priority || 'primary';\n this.iconClass = config.iconClass || '';\n this.disabled = config.disabled || false;\n this.auxiliary = config.auxiliary || false;\n this.caret = config.caret || false;\n this.id = config.id || `s-button-${randomHash()}`;\n this.onClick = config.onClick || (() => { });\n this.fullWidth = config.fullWidth || false;\n this.iconColor = config.iconColor;\n this.badge = config.badge;\n this.animation = config.animation;\n this.slide = config.slide || false;\n this.menuOptions = config.menuOptions || [];\n this.baseZIndex = config.baseZIndex || 0;\n this.styleClass = config.styleClass;\n this.rightIconClass = config.rightIconClass;\n this.tooltipPosition = config.tooltipPosition;\n this.mouseEnter = config.mouseEnter;\n this.mouseLeave = config.mouseLeave;\n }\n}\n","import { CheckboxListData } from \"@seniorsistemas/angular-components/checkbox-list\";\nimport { Field, FieldConfig } from \"./field\";\n\nexport interface CheckboxFieldConfig extends FieldConfig {\n data: CheckboxListData;\n}\n\nexport class CheckboxField extends Field {\n public data: CheckboxListData;\n\n constructor(config: CheckboxFieldConfig) {\n super(config);\n this.data = config.data;\n }\n}\n","import {\n CountryPhoneData,\n Ordination,\n PhoneSelectionData,\n} from '@seniorsistemas/angular-components/country-phone-picker';\nimport { Field, FieldConfig } from './field';\n\nexport interface CountryPhonePickerConfig extends FieldConfig {\n countries: string[];\n ordination: Ordination;\n onSelected: (data: CountryPhoneData) => void;\n onFocusLost?: (data: PhoneSelectionData | null) => void;\n}\n\nexport class CountryPhonePickerField extends Field {\n public countries: string[];\n public ordination: Ordination;\n public onSelected: (data: CountryPhoneData) => void;\n public onFocusLost?: (data: PhoneSelectionData | null) => void;\n\n constructor(config: CountryPhonePickerConfig) {\n super(config);\n this.countries = config.countries;\n this.ordination = config.ordination;\n this.onSelected = config.onSelected;\n this.onFocusLost = config.onFocusLost;\n }\n}\n\n","import { Field, FieldConfig } from \"./field\";\n\nexport interface EditorFieldConfig extends FieldConfig {\n formats?: string[];\n readonly?: boolean;\n modules?: any;\n style?: { [klass: string]: unknown };\n}\n\nexport class EditorField extends Field {\n public formats?: string[];\n public readonly?: boolean;\n public modules?: any;\n public style?: { [klass: string]: unknown };\n\n constructor(config: EditorFieldConfig) {\n super(config);\n this.formats = config.formats;\n this.readonly = config.readonly;\n this.modules = config.modules;\n this.style = config.style;\n }\n}\n","import { CropperLabelsConfig, FileValidationErrors, ProfilePicturePickerData, ConfirmationTexts } from \"@seniorsistemas/angular-components/profile-picture-picker\";\nimport { Field, FieldConfig } from \"./field\";\n\nexport interface ProfilePictureConfig extends FieldConfig {\n simpleTitle: string;\n actionTitle: string;\n subtitle: string;\n aspectRatio: number;\n cropperLabelsConfig?: CropperLabelsConfig;\n removeButtonLabel?: string;\n changeButtonLabel?: string;\n confirmationTexts?: ConfirmationTexts;\n maxFileSize?: number;\n accept?: string;\n supportedExtensions?: string[];\n onChangeImage?: (event: string | ProfilePicturePickerData) => void;\n onRemovedImage?: () => void;\n onInvalidFile?: (event: FileValidationErrors) => void;\n}\n\nexport class ProfilePictureField extends Field {\n public simpleTitle: string;\n public actionTitle: string;\n public subtitle: string;\n public aspectRatio: number;\n public cropperLabelsConfig?: CropperLabelsConfig;\n public removeButtonLabel?: string;\n public changeButtonLabel?: string;\n public confirmationTexts?: ConfirmationTexts;\n public maxFileSize?: number;\n public accept?: string;\n public supportedExtensions: string[] = [];\n public onChangeImage?: (event: string | ProfilePicturePickerData) => void;\n public onRemovedImage?: () => void;\n public onInvalidFile?: (event: FileValidationErrors) => void;\n\n constructor(config: ProfilePictureConfig) {\n super(config);\n this.simpleTitle = config.simpleTitle;\n this.actionTitle = config.actionTitle;\n this.subtitle = config.subtitle;\n this.aspectRatio = config.aspectRatio;\n this.cropperLabelsConfig = config.cropperLabelsConfig;\n this.removeButtonLabel = config.removeButtonLabel;\n this.changeButtonLabel = config.changeButtonLabel;\n this.confirmationTexts = config.confirmationTexts;\n this.maxFileSize = config.maxFileSize;\n this.accept = config.accept;\n this.supportedExtensions = config.supportedExtensions || [];\n this.onChangeImage = config.onChangeImage;\n this.onRemovedImage = config.onRemovedImage;\n this.onInvalidFile = config.onInvalidFile;\n }\n}\n","import { Field, FieldConfig } from \"./field\";\n\nexport interface TextAreaIAFieldConfig extends FieldConfig {\n cols?: number;\n rows?: number;\n keyFilter?: any;\n style?: Partial<CSSStyleDeclaration>;\n prompt?: string;\n readonly?: () => boolean;\n speechRecognition?: boolean;\n keepContext: boolean\n speechRecognitionPlaceholder: string\n maxLength?: number;\n}\n\nexport class TextAreaIAField extends Field {\n public cols?: number;\n public rows?: number;\n public keyFilter?: any;\n public style?: Partial<CSSStyleDeclaration> = {\n resize: 'vertical'\n };\n public prompt?: string;\n public readonly?: () => boolean;\n public speechRecognition: boolean\n public keepContext: boolean\n public speechRecognitionPlaceholder: string\n public maxLength: number | null;\n\n constructor(config: TextAreaIAFieldConfig) {\n super(config);\n this.cols = config.cols;\n this.rows = config.rows;\n this.keyFilter = config.keyFilter;\n this.style = {\n ...config.style,\n ...this.style,\n };\n this.prompt = config.prompt;\n this.readonly = config.readonly;\n this.speechRecognition = config.speechRecognition ?? false;\n this.keepContext = config.keepContext ?? false\n this.speechRecognitionPlaceholder = config.speechRecognitionPlaceholder ?? '';\n this.maxLength = config.maxLength ?? null;\n }\n}\n","import { JustifyTypes } from '@seniorsistemas/angular-components/star-rating';\nimport { Field, FieldConfig } from './field';\n\n\ntype booleanFn = () => boolean;\nexport interface StarRatingFieldConfig extends FieldConfig {\n starRange: number;\n disabled: boolean | booleanFn\n justifyContent?: JustifyTypes;\n valueChange?: (star: number) => any\n}\n\nexport class StarRatingField extends Field implements StarRatingFieldConfig {\n starRange: number;\n disabled: boolean | booleanFn;\n justifyContent: JustifyTypes;\n valueChange?: ((star: number) => any) | undefined;\n constructor(config: StarRatingFieldConfig) {\n super(config);\n this.starRange = config.starRange ?? 5;\n this.disabled = config.disabled ?? false;\n this.justifyContent = config.justifyContent || 'start'\n if (config.valueChange) {\n this.valueChange = config.valueChange;\n }\n }\n}\n","import { TemplateRef } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { FileDto } from '@seniorsistemas/angular-components/file-upload';\nimport { AddonConfig } from './addon-config';\nimport { AutocompleteField } from './configurations/fields/autocomplete-field';\nimport { BignumberField } from './configurations/fields/bignumber-field';\nimport { BlobField } from './configurations/fields/blob-field';\nimport { BooleanField } from './configurations/fields/boolean-field';\nimport { BooleanOptionsLabel } from './configurations/fields/boolean-field';\nimport { BooleanSwitchField } from './configurations/fields/boolean-switch-field';\nimport { ButtonField } from './configurations/fields/button-field';\nimport { CalendarField } from './configurations/fields/calendar-field';\nimport { CheckboxField } from './configurations/fields/checkbox-field';\nimport { ChipsField } from './configurations/fields/chips-field';\nimport { CountryPhonePickerField } from './configurations/fields/country-phone-picker-field';\nimport { CurrencyField } from './configurations/fields/currency-field';\nimport { DecimalField } from './configurations/fields/decimal-field';\nimport { EditorField } from './configurations/fields/editor-field';\nimport { FieldSize } from './configurations/field-size';\nimport { FieldType } from './configurations/field-type';\nimport { LookupField } from './configurations/fields/lookup-field';\nimport { NumberField } from './configurations/fields/number-field';\nimport { PasswordField } from './configurations/fields/password-field';\nimport { ProfilePictureField } from './configurations/fields/profile-picture';\nimport { RadioButtonField } from './configurations/fields/radio-button-field';\nimport { SelectField } from './configurations/fields/select-field';\nimport { SliderField } from './configurations/fields/slider-field';\nimport { TextAreaField } from './configurations/fields/text-area-field';\nimport { TextAreaIAField } from './configurations/fields/text-area-ia-field';\nimport { TextField } from './configurations/fields/text-field';\nimport { CalendarLocaleOptions, NumberLocaleOptions } from '@seniorsistemas/angular-components/locale';\nimport { NumberAlignmentOption } from '@seniorsistemas/angular-components/number-input';\nimport { AlignmentOptions } from '@seniorsistemas/ng2-currency-mask';\nimport { StarRatingField } from './configurations/fields/star-rating-field';\n\nexport class FormField {\n id?: string;\n /**\n * Tells whether the field is required or not\n */\n required?: () => boolean;\n name: string = '';\n sortableColumnName?: string;\n type?: FieldType;\n label?: string;\n /**\n * Labels of a Radio Button, only used to FieldType Boolean\n */\n optionsLabel?: BooleanOptionsLabel;\n tooltip?: string;\n /**\n * Mask pattern.\n */\n mask?: ((options?: { value: unknown }) => string) | string;\n /**\n * Message to display when there are no results for a query.\n */\n emptyMessage?: string;\n cols?: number;\n rows?: number;\n placeholder?: string;\n options?: any;\n calendarLocaleOptions?: CalendarLocaleOptions;\n numberLocaleOptions?: NumberLocaleOptions;\n multiple?: boolean;\n appendTo?: string;\n browserAutocomplete?: boolean;\n showClear?: boolean;\n showOnFocus?: boolean;\n style?: { [klass: string]: any };\n representedBy?: 'radio' | 'switch';\n /**\n * Whether the `RadioButton` should be displayed on the vertical or not.\n *\n * @default false\n */\n verticalAlignment?: boolean;\n /**\n * Field max length\n */\n precision?: Function | number;\n /**\n * Number of decimal places\n */\n scale?: Function | number;\n /**\n * @deprecated Using FieldType.Number this attribute is unnecessary\n */\n alignTo?: NumberAlignmentOption | AlignmentOptions;\n gridClass?:\n | string\n | string[]\n | Set<string>\n | {\n [klass: string]: any;\n };\n size?: FieldSize;\n multipleSelectedLabel?: string;\n inputType?: string;\n accept?: string;\n files?: FileDto[];\n autocompleteForceSelection?: boolean;\n /**\n * The minimum selectable date.\n */\n minDate?: Date;\n /**\n * The maximum selectable date.\n */\n maxDate?: Date;\n /**\n * Set the date to highlight on first opening if the field is blank.\n */\n defaultDate?: Date;\n /**\n * Text or icon to be grouped in the left of an input.\n */\n leftAddon?: AddonConfig;\n /**\n * Text or icon to be grouped in right of an input.\n */\n rightAddon?: AddonConfig;\n /**\n * InfoSign para a label do input.\n */\n infoSign?: string;\n /**\n * Expression to restricts user input\n */\n keyFilter?: RegExp;\n\n /**\n * Default value for field\n */\n defaultValue?: any;\n /**\n * Customized FormField error message\n */\n errorMessages?: () => {} | {};\n visible?: () => boolean;\n /**\n * Callback to invoke when the field loses focus\n */\n onBlur?: (event: FocusEvent) => void;\n /**\n * Callback to invoke when the field receives focus\n */\n onFocus?: (event: FocusEvent) => void;\n onComplete?: (event: any) => void;\n onInput?: (event: any) => void;\n onChange?: (event: boolean) => void;\n onSelect?: (event: any) => void;\n /**\n * Callback to invoke on component click.\n */\n onClick?: (event: any) => void;\n onClose?: (event: any) => void;\n onTodayClick?: (event: any) => void;\n onClearClick?: (event: any) => void;\n onMonthChange?: (event: any) => void;\n onYearChange?: (event: any) => void;\n /**\n * Callback to invoke when a value is added.\n */\n onAdd?: (event: any) => void;\n /**\n * Callback to invoke when a value is removed.\n */\n onRemove?: (event: any) => void;\n /**\n * Callback to invoke when a chip is clicked.\n */\n onChipClick?: (event: any) => void;\n\n /**\n * Callback to invoke when a slider is released\n */\n onSlideEnd?: (event: any) => void;\n\n CustomFieldClass?: any;\n CustomFieldComponentClass?: any;\n\n /**\n * @deprecated You should use footer attribute instead.\n */\n bottomTemplate?: TemplateRef<Element>;\n\n autoClear?: boolean;\n displayTimeInfoSign?: number;\n\n footer?: {\n help?: {\n text: string;\n visible?: (options: { abstractControl: AbstractControl; formField: FormField }) => boolean;\n };\n link?: {\n label: string;\n onClick: (options: { abstractControl: AbstractControl; formField: FormField }) => void;\n visible?: (options: { abstractControl: AbstractControl; formField: FormField }) => boolean;\n };\n };\n\n useInfoSignFocusedInputRef?: boolean;\n width?: number;\n /**\n * In some cases DynamicFormField use a custom field that alredy exists, this happen in CustomFields when convert 'Integer, Double & Money' types to 'Custom' this create two labels. activate this property hide the parent label.\n */\n ignoreLabel? = false;\n\n constructor(config: any) {\n this.useInfoSignFocusedInputRef = config.useInfoSignFocusedInputRef ?? false;\n switch (config.type) {\n case FieldType.Enum:\n return new SelectField(config);\n case FieldType.Autocomplete:\n return new AutocompleteField(config);\n case FieldType.Money:\n return new CurrencyField(config);\n case FieldType.Integer:\n return new NumberField(config);\n case FieldType.Double:\n return new DecimalField(config);\n case FieldType.Number:\n return new BignumberField(config);\n case FieldType.String:\n case FieldType.Binary:\n return new TextField(config);\n case FieldType.Password:\n return new PasswordField(config);\n case FieldType.Text:\n return new TextAreaField(config);\n case FieldType.TextIA:\n return new TextAreaIAField(config);\n case FieldType.Boolean:\n return config.representedBy === 'switch' ? new BooleanSwitchField(config) : new BooleanField(config);\n case FieldType.Date:\n case FieldType.DateTime:\n case FieldType.LocalDateTime:\n case FieldType.Time:\n return new CalendarField(config);\n case FieldType.Lookup:\n return new LookupField(config);\n case FieldType.Radio:\n return new RadioButtonField(config);\n case FieldType.Checkbox:\n return new CheckboxField(config);\n case FieldType.Chips:\n return new ChipsField(config);\n case FieldType.CountryPhonePicker:\n return new CountryPhonePickerField(config);\n case FieldType.Blob:\n return new BlobField(config);\n case FieldType.Slider:\n return new SliderField(config);\n case FieldType.ProfilePicture:\n return new ProfilePictureField(config);\n case FieldType.Editor:\n return new EditorField(config);\n case FieldType.Button:\n return new ButtonField(config);\n case FieldType.StarRating:\n return new StarRatingField(config);\n case FieldType.Custom:\n const { CustomFieldClass, ...otherConfigs } = config;\n return new CustomFieldClass(otherConfigs);\n }\n }\n}\n\nexport class Option {\n label: string;\n value?: any;\n\n constructor(label: string, value: any) {\n this.label = label;\n this.value = value;\n }\n}\n\n","import { animate, animateChild, group, query, state, style, transition, trigger } from '@angular/animations';\nimport {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n input,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n viewChild,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ControlValueAccessor, FormControl, FormGroup, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { TranslateService } from '@ngx-translate/core';\nimport { MaskConfig } from '@seniorsistemas/ng2-currency-mask';\nimport { Hotkey, HotkeysService } from 'angular2-hotkeys';\nimport BigNumber from 'bignumber.js';\nimport { SortMeta } from 'primeng/api';\nimport { AutoComplete, AutoCompleteCompleteEvent } from 'primeng/autocomplete';\nimport { Table } from 'primeng/table';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { DefaultFilter } from './types/default-filter';\nimport { LabelOptions } from './types/label-options';\n\nimport { BadgeComponent } from '@seniorsistemas/angular-components/badge';\nimport { LoadingStateIndicators } from '@seniorsistemas/angular-components/loading-state';\nimport { CalendarLocaleOptions } from '@seniorsistemas/angular-components/locale';\nimport { CheckDisabled } from '@seniorsistemas/angular-components/shared';\nimport { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\nimport { FieldType } from '../../form-field/configurations/field-type';\nimport { FormField } from '../../form-field/form-field';\n\n@Component({\n selector: 's-lookup',\n templateUrl: './lookup.component.html',\n styleUrls: ['./lookup.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => LookupComponent),\n multi: true,\n },\n ],\n encapsulation: ViewEncapsulation.None,\n animations: [\n trigger('collapseContent', [\n state(\n 'hidden',\n style({\n width: '10px',\n padding: 0,\n }),\n ),\n state(\n 'visible',\n style({\n width: '*',\n }),\n ),\n transition('visible <=> hidden', [\n group([query('@childCollapseContent', animateChild()), animate('{{transitionParams}}')]),\n ]),\n ]),\n trigger('childCollapseContent', [\n state(\n ':leave',\n style({\n opacity: 0,\n }),\n ),\n state(\n ':enter',\n style({\n opacity: 1,\n }),\n ),\n transition('* <=> *', animate('{{transitionParams}}')),\n ]),\n ],\n})\nexport class LookupComponent implements ControlValueAccessor, OnChanges, OnInit, OnDestroy {\n private readonly lookupDialogContainer = viewChild<ElementRef<HTMLElement>>('dialogContainer');\n protected rowType = 'Row';\n public indicatorLogo = LoadingStateIndicators.Logo;\n public static nextId = 0;\n\n @Input()\n public formControlName?: string;\n\n @Input()\n public id = `s-lookup-${LookupComponent.nextId++}`;\n\n @Input()\n public autocompleteForceSelection = true;\n\n @Input()\n public multiple = false;\n\n @Input({ required: true })\n public dataKey!: string;\n\n @Input()\n public disabled = false;\n\n @Input()\n public showSearch = true;\n\n @Input()\n public lookupSuggestions: any[] = [];\n\n @Input()\n public lookupDisplayField?: string;\n\n @Input()\n public lookupDisplayFieldTooltip = false;\n\n @Input()\n public lookupEmptyMessage?: string;\n\n @Input()\n public lookupAppendTo? = 'body';\n\n @Input()\n public searchEmptyDescription?: string;\n\n @Input()\n public searchGridData: any[] = [];\n\n @Input()\n public searchTotalRecords = 0;\n\n @Input()\n public searchFields: FormField[] = [];\n\n @Input()\n public searchGridFields: FormField[] = [];\n\n @Input()\n public multiSortMeta: SortMeta[] = [];\n\n @Input()\n public placeholder?: string;\n\n @Input()\n public sortableColumnsDisabled: string[] = [];\n\n @Input()\n public lookupRowProps: string[] = [];\n\n @Input()\n public defaultFilter: DefaultFilter[] = [];\n\n @Input()\n public showAddOption = false;\n\n @Input()\n public showEditOption = false;\n\n @Input()\n public showRemoveOption = false;\n\n dialogFullScreen = input(false);\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onLookupRequest = new EventEmitter();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onSearchRequest = new EventEmitter();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onFocus = new EventEmitter();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onBlur = new EventEmitter();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onKeyUp = new EventEmitter();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onSelect = new EventEmitter();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onUnselect = new EventEmitter();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onClear = new EventEmitter();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onAdd = new EventEmitter();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onEdit = new EventEmitter<unknown>();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onRemove = new EventEmitter<unknown[]>();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onClearButtonClick = new EventEmitter<void>();\n\n @ViewChild(Table, { static: false })\n public table: Table | null = null;\n\n @ViewChild(AutoComplete, { static: false })\n public autocomplete: AutoComplete | null = null;\n\n @Input()\n public labelOptions?: Partial<LabelOptions>;\n\n public value: any;\n public loading = false;\n public animating = false;\n public dialogVisible = false;\n public collapsed = false;\n public selected: any[] = [];\n public formGroupDialog!: FormGroup<any>;\n public transitionOptions = '400ms cubic-bezier(0.86, 0, 0.07, 1)';\n\n private onChange?: Function;\n private onTouched?: Function;\n private originalFormValues = {};\n private readonly ngUnsubscribe = new Subject<void>();\n\n constructor(\n private readonly hotkeysService: HotkeysService,\n protected readonly translateService: TranslateService,\n protected readonly changeDetectorRef: ChangeDetectorRef,\n ) {}\n\n public ngOnInit() {\n if (!this.searchGridFields.length) {\n this.searchGridFields = this.searchFields\n .filter((item) => !item.visible || item.visible?.())\n .map((item) => new FormField({ ...item }));\n }\n this.searchFields = this.searchFields.map(\n (value: FormField) =>\n new FormField({\n ...value,\n size: { sm: 12, md: 12, lg: 12, xl: 12 },\n }),\n );\n\n this.searchGridFields = this.searchGridFields\n .filter((gridField: FormField) => !gridField.visible || gridField.visible?.())\n .map((gridField: FormField) => {\n if (gridField.label) {\n (gridField as any)['width'] = this.getColWidth(gridField.label);\n }\n\n const calendarOptions = new CalendarLocaleOptions({ ...gridField.calendarLocaleOptions });\n\n if (calendarOptions?.dateFormat) {\n switch (gridField.type) {\n case FieldType.Date:\n calendarOptions.dateFormat = this._convertToMomentDateFormat(calendarOptions.dateFormat);\n break;\n case FieldType.Time:\n calendarOptions.dateFormat = this._convertToMomentHourFormat(\n calendarOptions.hourFormat!,\n calendarOptions.dateFormat,\n );\n break;\n }\n gridField.calendarLocaleOptions = calendarOptions;\n }\n\n return gridField;\n });\n\n const hasFieldWithDotInName = this.searchFields.some((field) => field.name.includes('.'));\n if (hasFieldWithDotInName) {\n const fieldsWithDot = this.searchFields\n .filter((item) => item.name.includes('.'))\n .map((item) => item.name)\n .join();\n throw new Error(`This fields: [${fieldsWithDot}] can't have dot in their names, please replace.`);\n }\n const formGroup = this.searchFields.reduce((result: any, field) => {\n if (field.name) {\n result[field.name] = new FormControl(field.defaultValue);\n (this.originalFormValues as any)[field.name] = field.defaultValue;\n }\n return result;\n }, {});\n\n this.formGroupDialog = new FormGroup(formGroup);\n\n this._subscribeEvents();\n }\n\n public printRecordTotalizer(): string {\n if (this.labelOptions?.searchTotalRecordsLabel) {\n return this.labelOptions?.searchTotalRecordsLabel;\n }\n\n const recordLabel = this.labelOptions?.recordLabel\n ? `${this.searchTotalRecords} ${this.labelOptions?.recordLabel}`\n : this.translateService.instant('platform.angular_components.total_record', {\n count: this.searchTotalRecords,\n });\n\n const recordsLabel = this.labelOptions?.recordsLabel\n ? `${this.searchTotalRecords} ${this.labelOptions?.recordsLabel}`\n : this.translateService.instant('platform.angular_components.total_records', {\n count: this.searchTotalRecords,\n });\n\n return this.searchTotalRecords === 1 ? recordLabel : recordsLabel;\n }\n\n private _convertToMomentHourFormat(hourFormat: string, format: string) {\n if (format === 'dd/mm/yy') {\n // valor padrão para o format.\n return 'LTS';\n }\n\n if (hourFormat === '12') {\n return format\n .replace(/\\bH\\b/, 'h') // hour (12 hour time) (no leading zero)\n .replace(/\\bHH\\b/, 'hh'); // hour (12 hour time)\n }\n\n if (hourFormat === '24') {\n return format\n .replace(/\\bh\\b/, 'H') // hour (24 hour time) (no leading zero)\n .replace(/\\bhh\\b/, 'HH'); // hour (24 hour time)\n }\n\n return format;\n }\n\n private _convertToMomentDateFormat(format: string): string {\n // A ordem dos replaces é importante.\n return format\n .replace(/\\bd\\b/, 'D') // day of month (no leading zero)\n .replace(/\\bdd\\b/, 'DD') // day of month\n .replace(/\\bo\\b/, 'DDD') // day of the year (no leading zero)\n .replace(/\\boo\\b/, 'DDDD') // day of the year\n .replace(/\\bM\\b/, 'MMM') // month name short\n .replace(/\\bMM\\b/, 'MMMM') // month name long\n .replace(/\\bm\\b/, 'M') // month of year (no leading)\n .replace(/\\bmm\\b/, 'MM') // month of year\n .replace(/\\by\\b/, 'YY') // year (two digits)\n .replace(/\\byy\\b/, 'YYYY'); // year (four digits)\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (this.dialogVisible && changes['searchGridData']) {\n this.loading = false;\n }\n\n this._setFocusFilter();\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public getGridData() {\n return this.searchGridData;\n }\n\n public getLookupSuggestions() {\n return this.lookupSuggestions;\n }\n\n protected makeSearchRequestParams(event: any) {\n const filters = this.formGroupDialog?.getRawValue();\n const params = { ...event, filterData: filters };\n const { multiSortMeta } = event;\n this.multiSortMeta = multiSortMeta || this.multiSortMeta;\n\n return params;\n }\n\n public lazyLoadGrid(event: any) {\n // Ao definir uma ordenação na tabela do lookup esse método é chamado 2 vezes https://github.com/primefaces/primeng/issues/5480\n const params = this.makeSearchRequestParams(event);\n this.onSearchRequest.next(params);\n }\n\n public onCompleteMethod(event: AutoCompleteCompleteEvent): void {\n if (!this.autocompleteForceSelection) {\n this.onChange?.(this.value === '' ? null : this.value);\n }\n\n this.onLookupRequest.next(event.query);\n }\n\n public setDefaultFilters() {\n if (!this.defaultFilter) return;\n\n this.defaultFilter\n .filter(({ field }) => this.formGroupDialog?.contains(field) && !this.formGroupDialog?.get([field])?.dirty)\n .forEach(({ value, field }) => {\n this.formGroupDialog?.get([field])?.patchValue(value instanceof Function ? value() : value);\n });\n }\n\n @CheckDisabled()\n public async showDialog() {\n this.setDefaultFilters();\n this.searchGridData = [];\n this.onTouched?.();\n this.hotkeysService.pause([...this.hotkeysService.hotkeys]);\n this.setHotkeys();\n\n let selected: any = [];\n if (this.multiple && this.value) {\n selected = selected.concat(this.value);\n } else if (this.value) {\n selected = [this.value];\n }\n this.selected = selected;\n\n this.loading = true;\n this.dialogVisible = true;\n }\n\n setInputs(componentRef: any, configs: any, form: any) {\n componentRef.instance.configs = configs;\n componentRef.instance.form = form;\n\n // chame ngOnChanges manualmente se necessário\n if (typeof componentRef.instance.ngOnChanges === 'function') {\n componentRef.instance.ngOnChanges();\n }\n }\n\n onVisibleChange(visibilityState: boolean) {\n if (visibilityState) {\n return;\n }\n this.hideDialog();\n }\n public hideDialog() {\n if (!this.autocomplete) {\n return;\n }\n const { inputEL, multiInputEl } = this.autocomplete;\n this.dialogVisible = false;\n this.collapsed = false;\n this.hotkeysService.unpause([...this.hotkeysService.pausedHotkeys]);\n if (this.multiple) {\n multiInputEl?.nativeElement?.focus();\n } else {\n inputEL?.nativeElement?.focus();\n }\n }\n\n public search() {\n this.resetTable();\n this.collapsed = true;\n const dialogContainer = this.lookupDialogContainer()?.nativeElement;\n if (dialogContainer) {\n dialogContainer.scrollIntoView({ behavior: 'smooth' });\n }\n }\n\n public clear() {\n this.formGroupDialog?.reset(this.originalFormValues);\n this.resetTable();\n this.onClearButtonClick.emit();\n }\n\n protected resetTable() {\n this.table?.reset();\n }\n\n public select() {\n if (!this.selected.length) return;\n\n const selected = this.selected && (this.multiple ? this.selected : this.selected[0]);\n this.value = selected;\n this.onSelect.next(selected);\n this.hideDialog();\n }\n\n public onSelectionChange(selected: any) {\n if (!selected) return;\n if (Array.isArray(selected)) this.selected = selected;\n else this.selected = [selected];\n }\n\n public registerOnChange(onChange: Function) {\n this.onChange = (value: any) => {\n this.writeValue(value);\n onChange(value);\n };\n }\n\n public registerOnTouched(onTouched: Function) {\n this.onTouched = onTouched;\n }\n\n public writeValue(value: any) {\n this.value = value;\n }\n\n public setDisabledState(disabled: boolean) {\n this.disabled = disabled;\n }\n\n public getFieldValue(obj: any, path: string) {\n return path.split('.').reduce((result, prop) => (result[prop] === undefined ? '' : result[prop]), obj);\n }\n\n public getBadgeFromValue(\n value: unknown,\n options: {\n label: string;\n value: unknown;\n badge?: {\n type?: BadgeComponent['type'];\n color?: BadgeComponent['color'];\n iconClass?: BadgeComponent['iconClass'];\n iconPosition?: BadgeComponent['iconPosition'];\n };\n }[],\n ) {\n return options?.find((opt) => opt.value === value)?.badge;\n }\n\n public getLabelForValue(\n value: unknown,\n options: {\n label: string;\n value: unknown;\n badge?: {\n type?: BadgeComponent['type'];\n color?: BadgeComponent['color'];\n iconClass?: BadgeComponent['iconClass'];\n iconPosition?: BadgeComponent['iconPosition'];\n };\n }[],\n ) {\n if (!options) return `${value}`;\n\n const option = options.find((opt) => opt.value === value);\n return option ? option.label : `${value}`;\n }\n\n public isBooleanValue(obj: any, path: string) {\n const value = this.getFieldValue(obj, path);\n if (value === true || value === false) return true;\n else return false;\n }\n\n public getBooleanLabel(obj: any, path: string, optionsLabel: BooleanOptionsLabel | undefined) {\n if (!optionsLabel) {\n return;\n }\n if (this.getFieldValue(obj, path)) {\n return optionsLabel.true;\n } else {\n return optionsLabel.false;\n }\n }\n\n public isNumber(obj: any, path: string) {\n return !new BigNumber(this.getFieldValue(obj, path)).isNaN();\n }\n\n public setHotkeys() {\n const clearHotkey = this.newHotkey('alt+shift+l', this.clear.bind(this));\n const findHotkey = this.newHotkey('alt+shift+f', this.search.bind(this));\n const hideHotkey = this.newHotkey('alt+shift+c', this.hideDialog.bind(this));\n const selectHotkey = this.newHotkey('alt+shift+s', this.select.bind(this));\n\n const bindedHotkeys = [clearHotkey, findHotkey, hideHotkey, selectHotkey];\n bindedHotkeys.forEach((hotkey: Hotkey) => this.hotkeysService.add(hotkey));\n }\n\n private newHotkey(combo: string, fn: Function): Hotkey {\n return new Hotkey(combo, () => {\n fn();\n return false;\n }, ['INPUT', 'SELECT', 'TEXTAREA']);\n }\n\n public filterToggle() {\n if (this.animating) return;\n\n this.animating = true;\n this.collapsed = !this.collapsed;\n }\n\n public onToggleDone() {\n this.animating = false;\n }\n\n /**\n * Calculate the table column size. The minimum value is 14.286em, which is equals to 200px duo to the current font size.\n * @param label Column name.\n */\n public getColWidth(label: string) {\n const size = label.length;\n if (size < 14.286) return `14.286em`;\n return `${size}em`;\n }\n\n public getScale(scale: any): number {\n return this.isFunction(scale) ? scale() : scale;\n }\n\n private isFunction(value: any): boolean {\n return value instanceof Function;\n }\n\n public getIntegerMaskConfig(col: FormField): MaskConfig {\n return {\n scale: 0,\n thousandsSeparator: col.numberLocaleOptions?.thousandsSeparator,\n prefix: '',\n };\n }\n\n public getDoubleMaskConfig(col: FormField): MaskConfig {\n return {\n scale: this.getScale(col.scale),\n decimalSeparator: col.numberLocaleOptions?.decimalSeparator,\n thousandsSeparator: col.numberLocaleOptions?.thousandsSeparator,\n prefix: '',\n };\n }\n\n public getMoneyMaskConfig(col: FormField): MaskConfig {\n return {\n scale: this.getScale(col.scale),\n decimalSeparator: col.numberLocaleOptions?.decimalSeparator,\n thousandsSeparator: col.numberLocaleOptions?.thousandsSeparator,\n prefix: col.numberLocaleOptions?.currencySymbol,\n };\n }\n\n public getNumberMaskConfig(col: FormField): MaskConfig {\n return {\n scale: this.getScale(col.scale),\n decimalSeparator: col.numberLocaleOptions?.decimalSeparator,\n thousandsSeparator: col.numberLocaleOptions?.thousandsSeparator,\n prefix: col.numberLocaleOptions?.currencySymbol,\n };\n }\n\n public parseValueMaskValue(col: FormField, rowData: any) {\n const _mask = col.mask;\n const isFunction = this.isFunction(_mask);\n return isFunction ? (_mask as Function)({ value: rowData }) : _mask;\n }\n\n public onTableRowDoubleClick(rowData: any): void {\n this.selected = [rowData];\n this.select();\n }\n\n private _setFocusFilter() {\n if (this.dialogVisible && !this.collapsed) {\n const input = this.lookupDialogContainer()?.nativeElement.querySelector('input');\n if (input) {\n (input as HTMLInputElement).focus();\n }\n }\n }\n\n private _subscribeEvents(): void {\n this.onSearchRequest.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => (this.loading = true));\n\n this.onSelect.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => this.onChange?.(this.value));\n\n this.onUnselect.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => this.onChange?.(this.value));\n\n this.onClear.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {\n if (this.multiple) {\n return;\n }\n this.onChange?.(null);\n });\n\n this.onFocus.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {\n this.onTouched?.();\n });\n\n this.onBlur.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: Event) => {\n if (isNullOrUndefined(this.lookupDisplayField)) return;\n\n const target = event.target as HTMLInputElement;\n const currentValue = this.value && this.value[this.lookupDisplayField];\n const { value } = target;\n\n if (this.multiple || !currentValue || currentValue == value) return;\n\n const newValue = '';\n target.value = newValue;\n this.onChange?.(newValue);\n });\n }\n}\n\nexport interface BooleanOptionsLabelConfig {\n true: string;\n false: string;\n empty?: string;\n clear?: string;\n}\n\nexport class BooleanOptionsLabel {\n public true: string;\n public false: string;\n public empty?: string;\n public clear?: string;\n\n constructor(config: BooleanOptionsLabelConfig) {\n this.true = config.true;\n this.false = config.false;\n this.empty = config.empty;\n this.clear = config.clear;\n }\n}\n","<div [ngClass]=\"{ inputgroup: showSearch }\">\n <p-autoComplete\n #autocomplete\n [(ngModel)]=\"value\"\n [disabled]=\"disabled\"\n [dataKey]=\"dataKey\"\n [multiple]=\"multiple\"\n [inputId]=\"id + '-autocomplete'\"\n [forceSelection]=\"autocompleteForceSelection\"\n [suggestions]=\"getLookupSuggestions()\"\n (completeMethod)=\"onCompleteMethod($event)\"\n (onSelect)=\"onSelect.next($event)\"\n (onBlur)=\"onBlur.next($event)\"\n (onFocus)=\"onFocus.next($event)\"\n (onUnselect)=\"onUnselect.next($event)\"\n (onClear)=\"onClear.next($event)\"\n (onKeyUp)=\"onKeyUp.next($event)\"\n [field]=\"lookupDisplayField\"\n [emptyMessage]=\"lookupEmptyMessage\"\n [dropdown]=\"!showSearch\"\n [appendTo]=\"lookupAppendTo\"\n [placeholder]=\"placeholder || ' '\"\n [autoHighlight]=\"true\"\n inputStyleClass=\"mousetrap\"\n >\n </p-autoComplete>\n @if (showSearch) {\n <button\n class=\"button-addon\"\n [class.button-addon--disabled]=\"disabled\"\n [disabled]=\"disabled\"\n (click)=\"showDialog()\"\n >\n <i class=\"fa fa-search\"></i>\n </button>\n }\n</div>\n\n<s-dialog\n [(visible)]=\"dialogVisible\"\n (visibleChange)=\"onVisibleChange($event!)\"\n [header]=\"labelOptions?.searchTitle || 'platform.angular_components.advanced_search' | translate\"\n contentClassName=\"s-lookup-modal\"\n [size]=\"dialogFullScreen() ? 'fullscreen' : 'xl'\"\n>\n @if (dialogVisible) {\n <div\n class=\"s-lookup-modal-container\"\n #dialogContainer\n >\n @if (searchFields && searchFields.length) {\n <div\n class=\"filter\"\n [@collapseContent]=\"\n collapsed\n ? { value: 'hidden', params: { transitionParams: transitionOptions } }\n : { value: 'visible', params: { transitionParams: transitionOptions } }\n \"\n (@collapseContent.done)=\"onToggleDone()\"\n >\n <form\n [formGroup]=\"formGroupDialog\"\n novalidate\n autocomplete=\"off\"\n >\n @if (!collapsed) {\n <div\n class=\"form-content\"\n [@childCollapseContent]=\"\n collapsed\n ? { value: ':leave', params: { transitionParams: transitionOptions } }\n : { value: ':enter', params: { transitionParams: transitionOptions } }\n \"\n >\n <div class=\"filter-title sds-section-title\">\n {{ labelOptions?.filterTitle || 'platform.angular_components.filters' | translate }}\n </div>\n <div class=\"form-fields\">\n @let configs =\n [\n {\n type: rowType,\n fields: searchFields,\n },\n ];\n\n <s-dynamic-form\n [configs]=\"configs\"\n [form]=\"formGroupDialog\"\n >\n </s-dynamic-form>\n </div>\n <div class=\"ui-g\">\n <div class=\"ui-g-12\">\n <s-button\n [id]=\"id + '-filter-button'\"\n type=\"submit\"\n [label]=\"\n labelOptions?.filterLabel || 'platform.angular_components.filter'\n | translate\n \"\n (clicked)=\"search()\"\n sTooltip=\"(ALT + SHIFT + F)\"\n >\n </s-button>\n <s-button\n [id]=\"id + '-clear-button'\"\n type=\"button\"\n [label]=\"\n labelOptions?.clearLabel || 'platform.angular_components.clear'\n | translate\n \"\n (clicked)=\"clear()\"\n priority=\"link\"\n sTooltip=\"(ALT + SHIFT + L)\"\n >\n </s-button>\n </div>\n </div>\n </div>\n }\n </form>\n </div>\n }\n @if (searchFields && searchFields.length) {\n <div class=\"filter-toggle\">\n <button\n [id]=\"id + '-filter-toggle-button'\"\n type=\"button\"\n (click)=\"filterToggle()\"\n >\n <span\n class=\"fa\"\n [ngClass]=\"{ 'fa-chevron-left': !collapsed, 'fa-chevron-right': collapsed }\"\n aria-hidden=\"true\"\n >\n </span>\n </button>\n </div>\n }\n @let isEmptyContent = !searchTotalRecords && !loading;\n <div\n class=\"content\"\n #contentContainer\n [ngClass]=\"{ 'empty-content': isEmptyContent }\"\n >\n @if (isEmptyContent) {\n <s-empty-state\n [id]=\"id + '-empty-state'\"\n [title]=\"\n labelOptions?.searchEmptyTitle || 'platform.angular_components.no_records_found' | translate\n \"\n [description]=\"searchEmptyDescription\"\n iconClass=\"fa fa-search\"\n >\n </s-empty-state>\n }\n <div class=\"content-child\">\n <p-table\n [dataKey]=\"dataKey\"\n [value]=\"getGridData()\"\n [columns]=\"searchGridFields\"\n [lazy]=\"true\"\n [scrollable]=\"true\"\n [paginator]=\"true\"\n sortMode=\"multiple\"\n [totalRecords]=\"searchTotalRecords\"\n [rows]=\"10\"\n [selection]=\"selected\"\n (onLazyLoad)=\"lazyLoadGrid($event)\"\n [multiSortMeta]=\"multiSortMeta\"\n [attr.data-hidden]=\"!searchTotalRecords && !loading\"\n [selectionMode]=\"multiple ? 'multiple' : 'single'\"\n (selectionChange)=\"onSelectionChange($event)\"\n *sLoadingState=\"{ loading: loading, indicator: indicatorLogo }\"\n >\n <ng-template pTemplate=\"caption\">\n <div>\n @if (showAddOption) {\n <s-button\n priority=\"default\"\n [label]=\"'platform.angular_components.add' | translate\"\n (clicked)=\"onAdd.emit()\"\n >\n </s-button>\n }\n @if (showEditOption) {\n <s-button\n priority=\"default\"\n [label]=\"'platform.angular_components.edit' | translate\"\n [disabled]=\"selected.length !== 1\"\n (clicked)=\"onEdit.emit(this.selected[0])\"\n >\n </s-button>\n }\n @if (showRemoveOption) {\n <s-button\n priority=\"default\"\n [label]=\"'platform.angular_components.remove' | translate\"\n [disabled]=\"!selected.length\"\n (clicked)=\"onRemove.emit(this.selected)\"\n >\n </s-button>\n }\n </div>\n </ng-template>\n <ng-template\n pTemplate=\"colgroup\"\n let-columns\n >\n <colgroup>\n @if (multiple) {\n <col style=\"width: 50px\" />\n }\n\n @for (col of columns; track $index) {\n <col [style.width]=\"col.width\" />\n }\n </colgroup>\n </ng-template>\n <ng-template\n pTemplate=\"header\"\n let-columns\n >\n <tr>\n @if (multiple) {\n <th style=\"width: 50px\">\n <s-table-header-checkbox\n [useAllObject]=\"lookupRowProps ? false : true\"\n [rowProps]=\"lookupRowProps\"\n >\n </s-table-header-checkbox>\n </th>\n }\n @for (col of columns; track $index) {\n <th\n [style.width]=\"col.width\"\n [pSortableColumn]=\"col.name\"\n [pSortableColumnDisabled]=\"sortableColumnsDisabled.includes(col.name)\"\n >\n <div class=\"senior-header\">\n <span class=\"senior-header-title\">{{ col.label }}</span>\n @if (!sortableColumnsDisabled.includes(col.name)) {\n <p-sortIcon [field]=\"col.name\"> </p-sortIcon>\n }\n </div>\n </th>\n }\n </tr>\n </ng-template>\n <ng-template\n pTemplate=\"body\"\n let-rowData\n let-columns\n let-rowIndex=\"rowIndex\"\n >\n <tr\n sNavigation\n [pSelectableRow]=\"rowData\"\n [pSelectableRowIndex]=\"rowIndex\"\n sDoubleClick\n (onDoubleClick)=\"onTableRowDoubleClick(rowData)\"\n >\n @if (multiple) {\n <td\n style=\"width: 50px\"\n tabindex=\"0\"\n >\n <p-tableCheckbox\n [value]=\"rowData\"\n [pSelectableRow]=\"rowData\"\n >\n </p-tableCheckbox>\n </td>\n }\n @for (col of searchGridFields; track $index) {\n <td\n [style.width]=\"col.width\"\n [ngSwitch]=\"col.type\"\n tabindex=\"0\"\n >\n @switch (col.type) {\n @case ('Boolean') {\n <ng-container\n *ngIf=\"isBooleanValue(rowData, col.name); else emptyTemplate\"\n >\n <span>{{\n getBooleanLabel(rowData, col.name, col.optionsLabel)\n }}</span>\n </ng-container>\n }\n @case ('Date') {\n <ng-container\n *ngIf=\"getFieldValue(rowData, col.name); else emptyTemplate\"\n >\n <span>{{\n getFieldValue(rowData, col.name)\n | localizedDate\n : col.calendarLocaleOptions?.dateFormat || 'L'\n | async\n }}</span>\n </ng-container>\n }\n @case ('DateTime') {\n <ng-container\n *ngIf=\"getFieldValue(rowData, col.name); else emptyTemplate\"\n >\n <span>{{\n getFieldValue(rowData, col.name) | localizedDate | async\n }}</span>\n </ng-container>\n }\n @case ('LocalDateTime') {\n <ng-container\n *ngIf=\"getFieldValue(rowData, col.name); else emptyTemplate\"\n >\n <span>{{\n getFieldValue(rowData, col.name) | localizedDate | async\n }}</span>\n </ng-container>\n }\n @case ('Time') {\n <ng-container\n *ngIf=\"getFieldValue(rowData, col.name); else emptyTemplate\"\n >\n <span>{{\n getFieldValue(rowData, col.name)\n | localizedTime\n : col.calendarLocaleOptions?.dateFormat || 'LTS'\n | async\n }}</span>\n </ng-container>\n }\n @case ('Integer') {\n <ng-container *ngIf=\"isNumber(rowData, col.name); else emptyTemplate\">\n <span>\n {{\n getFieldValue(rowData, col.name)\n | localizedBignumber: getIntegerMaskConfig(col)\n | async\n }}\n </span>\n </ng-container>\n }\n @case ('Double') {\n <ng-container *ngIf=\"isNumber(rowData, col.name); else emptyTemplate\">\n <span>\n {{\n getFieldValue(rowData, col.name)\n | localizedBignumber: getDoubleMaskConfig(col)\n | async\n }}\n </span>\n </ng-container>\n }\n @case ('Money') {\n <ng-container *ngIf=\"isNumber(rowData, col.name); else emptyTemplate\">\n <span>\n {{\n getFieldValue(rowData, col.name)\n | localizedBignumber: getMoneyMaskConfig(col)\n | async\n }}\n </span>\n </ng-container>\n }\n @case ('Number') {\n <ng-container *ngIf=\"isNumber(rowData, col.name); else emptyTemplate\">\n <span>\n {{\n getFieldValue(rowData, col.name)\n | localizedBignumber: getNumberMaskConfig(col)\n | async\n }}\n </span>\n </ng-container>\n }\n @case ('Enum') {\n <ng-container\n *ngIf=\"\n getLabelForValue(getFieldValue(rowData, col.name), col.options);\n else emptyTemplate\n \"\n >\n <ng-container\n *ngIf=\"\n getBadgeFromValue(\n getFieldValue(rowData, col.name),\n col.options\n );\n then withBadge;\n else withoutBadge\n \"\n ></ng-container>\n <ng-template #withBadge>\n <s-badge\n [text]=\"\n getLabelForValue(\n getFieldValue(rowData, col.name),\n col.options\n )\n \"\n [color]=\"\n getBadgeFromValue(\n getFieldValue(rowData, col.name),\n col.options\n )?.color\n \"\n [type]=\"\n getBadgeFromValue(\n getFieldValue(rowData, col.name),\n col.options\n )?.type\n \"\n [iconClass]=\"\n getBadgeFromValue(\n getFieldValue(rowData, col.name),\n col.options\n )?.iconClass\n \"\n [iconPosition]=\"\n getBadgeFromValue(\n getFieldValue(rowData, col.name),\n col.options\n )?.iconPosition\n \"\n >\n </s-badge>\n </ng-template>\n <ng-template #withoutBadge>\n <span>\n {{\n getLabelForValue(\n getFieldValue(rowData, col.name),\n col.options\n )\n }}\n </span>\n </ng-template>\n </ng-container>\n }\n @default {\n @if (col.mask && parseValueMaskValue(col, rowData)) {\n <ng-container\n *ngIf=\"\n isNumber(rowData, col.name) ||\n getFieldValue(rowData, col.name)\n \"\n >\n <span>{{\n getFieldValue(rowData, col.name)\n | sMaskFormatter: parseValueMaskValue(col, rowData)\n }}</span>\n </ng-container>\n } @else {\n <ng-container\n *ngIf=\"\n isNumber(rowData, col.name) ||\n getFieldValue(rowData, col.name);\n else emptyTemplate\n \"\n >\n <span>{{ getFieldValue(rowData, col.name) }}</span>\n </ng-container>\n }\n }\n }\n </td>\n }\n </tr>\n </ng-template>\n <ng-template pTemplate=\"paginatorright\">\n <span [attr.data-hidden]=\"loading\">\n {{ printRecordTotalizer() }}\n </span>\n </ng-template>\n </p-table>\n </div>\n </div>\n </div>\n\n <ng-template sTemplate=\"footer\">\n <div class=\"flex w-full justify-end\">\n <s-button\n [id]=\"id + '-cancel-button'\"\n type=\"button\"\n priority=\"link\"\n [label]=\"labelOptions?.cancelLabel || 'platform.angular_components.cancel' | translate\"\n (clicked)=\"hideDialog()\"\n sTooltip=\"(ALT + SHIFT + C)\"\n >\n </s-button>\n <s-button\n [id]=\"id + '-select-button'\"\n type=\"button\"\n [label]=\"labelOptions?.selectLabel || 'platform.angular_components.select' | translate\"\n (clicked)=\"select()\"\n sTooltip=\"(ALT + SHIFT + S)\"\n [disabled]=\"!selected.length\"\n >\n </s-button>\n </div>\n </ng-template>\n }\n</s-dialog>\n\n<ng-template #emptyTemplate>\n <span class=\"sds-empty-value\">\n {{ labelOptions?.emptyFieldLabel || 'platform.angular_components.not_informed' | translate }}\n </span>\n</ng-template>\n","import { Component, Input } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { ProfilePictureField } from '../../configurations/fields/profile-picture';\n\n@Component({\n templateUrl: \"./profile-picture-field.component.html\",\n})\nexport class ProfilePictureFieldComponent {\n @Input({ required: true })\n public field!: ProfilePictureField;\n\n @Input({ required: true })\n public formControl!: FormControl;\n}\n","<s-field-label [field]=\"field\"></s-field-label>\n\n<s-profile-picture-picker\n [formControl]=\"formControl\"\n [simpleTitle]=\"field.simpleTitle\"\n [actionTitle]=\"field.actionTitle\"\n [subtitle]=\"field.subtitle\"\n [aspectRatio]=\"field.aspectRatio\"\n [cropperLabelsConfig]=\"field.cropperLabelsConfig\"\n [removeButtonLabel]=\"field.removeButtonLabel\"\n [changeButtonLabel]=\"field.changeButtonLabel\"\n [confirmationTexts]=\"field.confirmationTexts\"\n [maxFileSize]=\"field.maxFileSize\"\n [accept]=\"field.accept\"\n [supportedExtensions]=\"field.supportedExtensions\"\n (changedImage)=\"field.onChangeImage ? field.onChangeImage($event) : null\"\n (removedImage)=\"field.onRemovedImage ? field.onRemovedImage() : null\"\n (invalidFile)=\"field.onInvalidFile ? field.onInvalidFile($event) : null\">\n</s-profile-picture-picker>\n","import { Component, Input } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\n\nimport { Fieldset } from '../../../configurations/structure/fieldset';\nimport { BaseStructureComponentConfig } from '../base-structure-component';\n\n@Component({\n templateUrl: './fieldset.component.html',\n})\nexport class FieldsetComponent implements BaseStructureComponentConfig {\n @Input()\n public id?: string;\n\n @Input({ required: true })\n public config!: Fieldset;\n\n @Input({ required: true })\n public group!: UntypedFormGroup;\n\n @Input()\n public errorMessages: any;\n}\n\n","<s-fieldset\n [toggleable]=\"true\"\n (onBeforeToggle)=\"config.beforeToggle ? config.beforeToggle($event) : 'null'\"\n (onAfterToggle)=\"config.afterToggle ? config.afterToggle($event) : 'null'\"\n [legend]=\"config.header ? config.header : ''\"\n>\n @for (conf of config.configs; let i = $index; track i) {\n <ng-container\n *sDynamicForm=\"{ id: id, config: conf, group: group, errorMessages: errorMessages }\"\n ></ng-container>\n }\n</s-fieldset>\n","import { Component, Input } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { Section } from '../../../configurations/structure/section';\nimport { BaseStructureComponentConfig } from '../base-structure-component';\n\n@Component({\n selector: 's-section',\n templateUrl: './section.component.html',\n styleUrls: ['./section.component.scss'],\n})\nexport class SectionComponent implements BaseStructureComponentConfig {\n @Input()\n public id?: string;\n\n @Input({ required: true })\n public config!: Section;\n\n @Input({ required: true })\n public group!: UntypedFormGroup;\n\n @Input()\n public errorMessages: any;\n\n get flexContainer() {\n return this.config.isFlex;\n }\n\n get configs() {\n const _configs: any[] = this.config?.configs || [];\n return _configs.filter((x: any) => x.visible === undefined || x.visible());\n }\n}\n\n","@if (config.header) {\n <h3 class=\"sds-section-title\">\n {{ config.header }}\n </h3>\n}\n\n<section\n [class.flex-container]=\"flexContainer\"\n [style.justify-content]=\"config.justifyContent\"\n [style.align-items]=\"config.alignItems\"\n>\n @for (conf of configs; let i = $index; track i) {\n <ng-container\n *sDynamicForm=\"{ id: id, config: conf, group: group, errorMessages: errorMessages }\"\n ></ng-container>\n }\n</section>\n\n","import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, Input } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { AutocompleteField } from '../../configurations/fields/autocomplete-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\n\n@Component({\n templateUrl: 'autocomplete-field.component.html',\n})\nexport class AutocompleteFieldComponent implements BaseFieldComponentConfig, AfterViewInit {\n @Input({ required: true })\n public field!: AutocompleteField;\n\n @Input({ required: true })\n public formControl!: FormControl;\n\n public inputRef: HTMLElement | null = null;\n\n constructor(\n private readonly changeDetectorRef: ChangeDetectorRef,\n private readonly elementRef: ElementRef,\n ) { }\n\n public ngAfterViewInit(): void {\n this.setInputRef();\n this.changeDetectorRef.detectChanges();\n }\n\n private setInputRef(): void {\n this.inputRef = this.elementRef.nativeElement.querySelector('input');\n }\n}\n\n","@if (inputRef) {\n <s-field-label\n [field]=\"field\"\n [fieldContainerRef]=\"inputRef\"\n ></s-field-label>\n}\n\n<div [sTooltip]=\"field.tooltip\">\n <s-lookup\n [id]=\"field.id || field.name\"\n [multiple]=\"field.multiple!\"\n [placeholder]=\"field.placeholder\"\n [formControl]=\"formControl\"\n [lookupSuggestions]=\"field.suggestions\"\n [dataKey]=\"field.dataKey!\"\n (onLookupRequest)=\"field.onSearch ? field.onSearch($event) : null\"\n [lookupDisplayField]=\"field.displayField\"\n [showSearch]=\"false\"\n [lookupAppendTo]=\"field.appendTo\"\n (onSelect)=\"field.onSelect ? field.onSelect($event) : null\"\n (onUnselect)=\"field.onUnselect ? field.onUnselect($event) : null\"\n (onClear)=\"field.onClear ? field.onClear($event) : null\"\n (onBlur)=\"field.onBlur ? field.onBlur($event) : null\"\n [lookupEmptyMessage]=\"field.emptyMessage\"\n >\n </s-lookup>\n</div>\n","import { FormControl } from '@angular/forms';\nimport { AutocompleteField } from '../configurations/fields/autocomplete-field';\nimport { BlobField } from '../configurations/fields/blob-field';\nimport { BooleanField } from '../configurations/fields/boolean-field';\nimport { CalendarField } from '../configurations/fields/calendar-field';\nimport { CheckboxField } from '../configurations/fields/checkbox-field';\nimport { ChipsField } from '../configurations/fields/chips-field';\nimport { CountryPhonePickerField } from '../configurations/fields/country-phone-picker-field';\nimport { CurrencyField } from '../configurations/fields/currency-field';\nimport { EditorField } from '../configurations/fields/editor-field';\nimport { LookupField } from '../configurations/fields/lookup-field';\nimport { NumberField } from '../configurations/fields/number-field';\nimport { PasswordField } from '../configurations/fields/password-field';\nimport { RadioButtonField } from '../configurations/fields/radio-button-field';\nimport { SelectField } from '../configurations/fields/select-field';\nimport { SliderField } from '../configurations/fields/slider-field';\nimport { TextAreaField } from '../configurations/fields/text-area-field';\nimport { TextAreaIAField } from '../configurations/fields/text-area-ia-field';\nimport { TextField } from '../configurations/fields/text-field';\n\nimport { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\n\nexport interface BaseFieldComponentConfig {\n field:\n | AutocompleteField\n | BooleanField\n | BlobField\n | CalendarField\n | CheckboxField\n | ChipsField\n | CountryPhonePickerField\n | CurrencyField\n | EditorField\n | LookupField\n | NumberField\n | PasswordField\n | RadioButtonField\n | SelectField\n | SliderField\n | TextAreaField\n | TextAreaIAField\n | TextField;\n formControl: FormControl;\n}\n\nexport class BaseFieldComponent {\n public isFunction(value: any): boolean {\n return value instanceof Function;\n }\n\n public trigger(callback: any) {\n return callback();\n }\n\n public fieldPropertyIsDisabled<T extends { disabled?: Function | boolean }>(fieldProperty: T): boolean {\n if (!isNullOrUndefined(fieldProperty)) {\n return typeof fieldProperty.disabled === 'function' ? fieldProperty.disabled() : !!fieldProperty.disabled;\n }\n return false;\n }\n\n public getFieldPropertyMask(fieldData: Function | string) {\n return typeof fieldData === 'function' ? fieldData() : fieldData;\n }\n\n public getFieldProperty<T, K>(property: T | K) {\n return typeof property === 'function' ? (property as Function)() : property;\n }\n}\n\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { FormControl } from '@angular/forms';\n\nimport { Subject } from 'rxjs';\nimport { first, takeUntil } from 'rxjs/operators';\n\nimport { LocaleService } from '@seniorsistemas/angular-components/locale';\nimport { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\nimport { FieldType } from '../../configurations/field-type';\nimport { BignumberField } from '../../configurations/fields/bignumber-field';\nimport { BaseFieldComponent, BaseFieldComponentConfig } from '../base-field-component';\n\n\n@Component({\n templateUrl: 'bignumber-field.component.html',\n styleUrls: ['./bignumber-field.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class BignumberFieldComponent\n extends BaseFieldComponent\n implements OnInit, AfterViewInit, OnDestroy, BaseFieldComponentConfig {\n @Input({ required: true })\n public field!: BignumberField;\n\n @Input({ required: true })\n public formControl!: FormControl;\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onInput: EventEmitter<any> = new EventEmitter();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onFocus: EventEmitter<any> = new EventEmitter();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onComplete: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('inputRef') inputRef: ElementRef | null = null;\n\n private ngUnsubscribe = new Subject<void>();\n\n constructor(\n private readonly localeService: LocaleService,\n private readonly changeDetectorRef: ChangeDetectorRef,\n ) {\n super();\n }\n\n public ngOnInit() {\n this.onLocaleService();\n\n this.onFocus.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: FocusEvent) => {\n if (this.field.onFocus) {\n this.field.onFocus(event);\n }\n });\n\n this.onInput.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field.onInput) {\n this.field.onInput(event);\n }\n });\n\n this.onComplete.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field.onComplete) {\n this.field.onComplete(event);\n }\n });\n this.onScale();\n }\n\n public ngAfterViewInit(): void {\n this.changeDetectorRef.detectChanges();\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public get fieldType() {\n return FieldType;\n }\n\n private onLocaleService(): void {\n this.localeService\n .getLocale()\n .pipe(first())\n .subscribe({\n next: () => {\n if (!this.field.numberLocaleOptions?.decimalSeparator) {\n this.field.numberLocaleOptions = {\n ...this.field.numberLocaleOptions,\n decimalSeparator: this.localeService.getDecimalSeparator() ?? '',\n };\n }\n\n if (!this.field.numberLocaleOptions?.thousandsSeparator) {\n this.field.numberLocaleOptions = {\n ...this.field.numberLocaleOptions,\n thousandsSeparator: this.localeService.getGroupingSeparator() ?? '',\n };\n }\n\n if (!this.field.numberLocaleOptions?.currencySymbol) {\n this.field.numberLocaleOptions = {\n ...this.field.numberLocaleOptions,\n currencySymbol:\n this.field.type === FieldType.Integer || this.field.type === FieldType.Double\n ? ''\n : 'R$',\n };\n }\n },\n error: () =>\n (this.field.numberLocaleOptions = this.field.numberLocaleOptions ?? {\n thousandsSeparator: '.',\n decimalSeparator: ',',\n currencySymbol:\n this.field.type === FieldType.Integer || this.field.type === FieldType.Double ? '' : 'R$',\n }),\n });\n }\n\n private onScale(): void {\n // Currently, this component is used for the following types\n // FieldType.Number, FieldType.Integer and FieldType.Double\n if (isNullOrUndefined(this.field.scale)) {\n this.field.scale = this.field.type === FieldType.Integer ? 0 : 2;\n }\n }\n}\n","@if (inputRef) {\n <s-field-label\n [field]=\"field\"\n [fieldContainerRef]=\"inputRef!.nativeElement\"\n />\n}\n@if (field.mask) {\n <p-inputMask\n #inputRef\n type=\"text\"\n [inputId]=\"field.id || field.name\"\n [name]=\"field.name\"\n [mask]=\"getFieldPropertyMask(field.mask)\"\n [placeholder]=\"field.placeholder\"\n slotChar=\"_\"\n [sTooltip]=\"field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n styleClass=\"mousetrap\"\n (onBlur)=\"field.onBlur ? field.onBlur($event) : null\"\n (onFocus)=\"onFocus.next($event)\"\n (onComplete)=\"onComplete.next($event)\"\n (onInput)=\"onInput.next($event)\"\n [formControl]=\"formControl\"\n [autoClear]=\"field.autoClear\"\n >\n </p-inputMask>\n} @else {\n <div class=\"ui-inputgroup\">\n @if (field.leftAddon) {\n @if (field.leftAddon.callback) {\n <span class=\"addon-button addon-button--left\">\n <s-button\n [label]=\"field.leftAddon.label\"\n [iconClass]=\"field.leftAddon.icon\"\n [priority]=\"field.leftAddon.priority\"\n [disabled]=\"fieldPropertyIsDisabled(field.leftAddon)\"\n (clicked)=\"field.leftAddon.callback()\"\n >\n </s-button>\n </span>\n }\n @if (!field.leftAddon.callback) {\n <span class=\"ui-inputgroup-addon\">\n @if (field.leftAddon.label) {\n <span>\n {{ field.leftAddon.label }}\n </span>\n }\n @if (!field.leftAddon.label) {\n <span [ngClass]=\"field.leftAddon.icon\"></span>\n }\n </span>\n }\n }\n <input\n #inputRef\n [id]=\"field.id || field.name\"\n type=\"text\"\n [name]=\"field.name\"\n sBignumberInput\n [allowNegative]=\"field.allowNegative\"\n [precision]=\"isFunction(field.precision) ? trigger(field.precision) : field.precision\"\n [scale]=\"isFunction(field.scale) ? trigger(field.scale) : field.scale\"\n [decimalSeparator]=\"field.numberLocaleOptions?.decimalSeparator\"\n [thousandsSeparator]=\"field.numberLocaleOptions?.thousandsSeparator\"\n [alignTo]=\"field.alignTo\"\n [sTooltip]=\"field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"field.placeholder\"\n [showDelay]=\"500\"\n pInputText\n [autocomplete]=\"field.browserAutocomplete ? 'on' : 'off'\"\n [ngClass]=\"'mousetrap'\"\n (blur)=\"field.onBlur ? field.onBlur($event) : null\"\n (focus)=\"onFocus.next($event)\"\n [formControl]=\"formControl\"\n />\n @if (field.rightAddon) {\n @if (field.rightAddon.callback) {\n <span class=\"addon-button addon-button--right\">\n <s-button\n [label]=\"field.rightAddon.label\"\n [iconClass]=\"field.rightAddon.icon\"\n [priority]=\"field.rightAddon.priority!\"\n [disabled]=\"fieldPropertyIsDisabled(field.rightAddon)\"\n (clicked)=\"field.rightAddon.callback()\"\n >\n </s-button>\n </span>\n }\n @if (!field.rightAddon.callback) {\n <span class=\"ui-inputgroup-addon\">\n @if (field.rightAddon.label) {\n <span>\n {{ field.rightAddon.label }}\n </span>\n } @else {\n <span [ngClass]=\"field.rightAddon.icon\"></span>\n }\n </span>\n }\n }\n </div>\n}\n","import { Component, Input } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { BooleanField } from '../../../configurations/fields/boolean-field';\nimport { BaseFieldComponentConfig } from '../../base-field-component';\n\n@Component({\n templateUrl: 'boolean-field.component.html',\n styles: [\n `\n .horizontal-radio-buttons-container {\n gap: 20px 40px;\n .radio-button-item {\n margin: 0;\n }\n }\n `,\n ],\n})\nexport class BooleanFieldComponent implements BaseFieldComponentConfig {\n @Input({ required: true })\n public field!: BooleanField;\n\n @Input({ required: true })\n public formControl!: FormControl;\n\n public onClear(): void {\n this.formControl.reset();\n }\n}\n\n","<ng-template\n #radioButtonRender\n let-value=\"value\"\n let-label=\"label\"\n let-inputIdAppend=\"inputIdAppend\"\n>\n @let inputId = (field.id || field.name) + inputIdAppend;\n <s-radiobutton\n [name]=\"field.name\"\n [value]=\"value\"\n [formControl]=\"formControl\"\n [inputId]=\"inputId\"\n [label]=\"label\"\n (focusedInput)=\"field.onFocus ? field.onFocus($event) : null\"\n (inputFocusLost)=\"field.onBlur ? field.onBlur($event) : null\"\n />\n</ng-template>\n\n<s-field-label [field]=\"field\"></s-field-label>\n\n@if (field.verticalAlignment) {\n <div class=\"ui-g\">\n <div class=\"ui-g-12\">\n <ng-template\n *ngTemplateOutlet=\"\n radioButtonRender;\n context: { value: true, label: field.optionsLabel.true, inputIdAppend: '-1' }\n \"\n />\n </div>\n <div class=\"ui-g-12\">\n <ng-template\n *ngTemplateOutlet=\"\n radioButtonRender;\n context: { value: false, label: field.optionsLabel.false, inputIdAppend: '-2' }\n \"\n />\n </div>\n @if (!field.showClear && !!field.required && !field.required()) {\n <div class=\"ui-g-12\">\n <ng-template\n *ngTemplateOutlet=\"\n radioButtonRender;\n context: { value: null, label: field.optionsLabel.empty, inputIdAppend: '-3' }\n \"\n />\n </div>\n }\n <div>\n @if (field.showClear && !field.required?.() && !formControl.disabled) {\n <s-button\n [label]=\"field.optionsLabel.clear || 'Clear selection'\"\n (clicked)=\"onClear()\"\n priority=\"link\"\n >\n </s-button>\n }\n </div>\n </div>\n} @else {\n <div class=\"ui-g horizontal-radio-buttons-container\">\n <ng-template\n *ngTemplateOutlet=\"\n radioButtonRender;\n context: { value: true, label: field.optionsLabel.true, inputIdAppend: '-1' }\n \"\n />\n\n <ng-template\n *ngTemplateOutlet=\"\n radioButtonRender;\n context: { value: false, label: field.optionsLabel.false, inputIdAppend: '-2' }\n \"\n />\n\n <ng-template\n *ngTemplateOutlet=\"\n radioButtonRender;\n context: { value: null, label: field.optionsLabel.empty, inputIdAppend: '-3' }\n \"\n />\n\n @if (field.showClear && !field.required?.() && !formControl.disabled) {\n <s-button\n style=\"margin-left: 40px\"\n [label]=\"field.optionsLabel.clear || 'Clear selection'\"\n (clicked)=\"onClear()\"\n priority=\"link\"\n >\n </s-button>\n }\n </div>\n}\n","import { Component, Input } from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\nimport { BooleanSwitchField } from '../../../configurations/fields/boolean-switch-field';\nimport { BaseFieldComponentConfig } from '../../base-field-component';\n\n@Component({\n templateUrl: 'boolean-switch-field.component.html',\n})\nexport class BooleanSwitchFieldComponent implements BaseFieldComponentConfig {\n @Input({ required: true })\n public field!: BooleanSwitchField;\n\n @Input({ required: true })\n public formControl!: UntypedFormControl;\n}\n\n","<s-field-label [field]=\"field\"></s-field-label>\n\n<div class=\"ui-grid ui-grid-responsive ui-grid-pad p-fluid\">\n <div class=\"ui-grid-row\">\n <div class=\"i-grid-col-1\">\n <s-switch\n [id]=\"field.id || field.name\"\n [inputName]=\"field.name\"\n [formControl]=\"formControl\"\n [sTooltip]=\"field.tooltip\"\n tooltipPosition=\"top\"\n (valueChanged)=\"field.onChange ? field.onChange($event) : null\"\n >\n </s-switch>\n </div>\n @if (field.optionsLabel) {\n <div class=\"i-grid-col-1\">\n @if (formControl.value) {\n <span>{{ field.optionsLabel.true }}</span>\n } @else {\n <span>{{ field.optionsLabel.false }}</span>\n }\n </div>\n }\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { ButtonField } from '../../configurations/fields/button-field';\n\n@Component({\n selector: 's-button-field',\n templateUrl: './button-field.component.html',\n styleUrl: './button-field.component.scss',\n})\nexport class ButtonFieldComponent {\n @Input({ required: true }) field!: ButtonField;\n\n clickedButton($event: Event) {\n if (this.field.onClick) {\n this.field.onClick($event);\n }\n }\n\n handleMouseEnter() {\n if (this.field.mouseEnter) {\n this.field.mouseEnter(this.field);\n }\n }\n\n handleMouseLeave() {\n if (this.field.mouseLeave) {\n this.field.mouseLeave(this.field);\n }\n }\n}\n\n","<section [class.full-width]=\"field.fullWidth\" [class.fit-content]=\"!field.fullWidth\">\n <s-button\n #button\n [label]=\"field.label\"\n [priority]=\"field.priority\"\n [iconClass]=\"field.iconClass\"\n [disabled]=\"field.disabled\"\n [auxiliary]=\"field.auxiliary\"\n [caret]=\"field.caret\"\n [id]=\"field.id\"\n [tooltip]=\"field.tooltip ? field.tooltip : button.tooltip\"\n (clicked)=\"clickedButton($event)\"\n [iconColor]=\"field.iconColor\"\n [badge]=\"field.badge\"\n [animation]=\"field.animation\"\n [slide]=\"field.slide\"\n [menuOptions]=\"field.menuOptions\"\n [baseZIndex]=\"field.baseZIndex\"\n [styleClass]=\"field.styleClass ? field.styleClass : button.styleClass\"\n [rightIconClass]=\"field.rightIconClass\"\n [tooltipPosition]=\"field.tooltipPosition ? field.tooltipPosition : button.tooltipPosition\"\n [type]=\"field.buttonType\"\n [size]=\"field.buttonSize\"\n (mouseenter)=\"handleMouseEnter()\"\n (mouseleave)=\"handleMouseLeave()\">\n </s-button>\n</section>\n","import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, inject, Input, OnInit, ViewChild } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\n\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { PrimeNG } from \"primeng/config\";\nimport { CalendarField } from '../../configurations/fields/calendar-field';\nimport { BaseFieldComponentConfig } from \"../base-field-component\";\nimport { DatePicker } from \"primeng/datepicker\";\n\n@Component({\n templateUrl: 'calendar-field.component.html',\n})\nexport class CalendarFieldComponent implements BaseFieldComponentConfig, AfterViewInit, OnInit {\n @Input({ required: true })\n public field!: CalendarField;\n\n @Input({ required: true })\n public formControl!: FormControl;\n\n private readonly translateService = inject(TranslateService);\n\n public locale = {\n firstDayOfWeek: 0,\n dayNames: [\n this.translateService.instant(\"platform.angular_components.sunday\"),\n this.translateService.instant(\"platform.angular_components.monday\"),\n this.translateService.instant(\"platform.angular_components.tuesday\"),\n this.translateService.instant(\"platform.angular_components.wednesday\"),\n this.translateService.instant(\"platform.angular_components.thursday\"),\n this.translateService.instant(\"platform.angular_components.friday\"),\n this.translateService.instant(\"platform.angular_components.saturday\"),\n ],\n dayNamesShort: [\n this.translateService.instant(\"platform.angular_components.sunday_short\"),\n this.translateService.instant(\"platform.angular_components.monday_short\"),\n this.translateService.instant(\"platform.angular_components.tuesday_short\"),\n this.translateService.instant(\"platform.angular_components.wednesday_short\"),\n this.translateService.instant(\"platform.angular_components.thursday_short\"),\n this.translateService.instant(\"platform.angular_components.friday_short\"),\n this.translateService.instant(\"platform.angular_components.saturday_short\"),\n ],\n dayNamesMin: [\n this.translateService.instant(\"platform.angular_components.sunday_min\"),\n this.translateService.instant(\"platform.angular_components.monday_min\"),\n this.translateService.instant(\"platform.angular_components.tuesday_min\"),\n this.translateService.instant(\"platform.angular_components.wednesday_min\"),\n this.translateService.instant(\"platform.angular_components.thursday_min\"),\n this.translateService.instant(\"platform.angular_components.friday_min\"),\n this.translateService.instant(\"platform.angular_components.saturday_min\"),\n ],\n monthNames: [\n this.translateService.instant(\"platform.angular_components.january\"),\n this.translateService.instant(\"platform.angular_components.february\"),\n this.translateService.instant(\"platform.angular_components.march\"),\n this.translateService.instant(\"platform.angular_components.april\"),\n this.translateService.instant(\"platform.angular_components.may\"),\n this.translateService.instant(\"platform.angular_components.june\"),\n this.translateService.instant(\"platform.angular_components.july\"),\n this.translateService.instant(\"platform.angular_components.august\"),\n this.translateService.instant(\"platform.angular_components.september\"),\n this.translateService.instant(\"platform.angular_components.october\"),\n this.translateService.instant(\"platform.angular_components.november\"),\n this.translateService.instant(\"platform.angular_components.december\"),\n ],\n monthNamesShort: [\n this.translateService.instant(\"platform.angular_components.january_short\"),\n this.translateService.instant(\"platform.angular_components.february_short\"),\n this.translateService.instant(\"platform.angular_components.march_short\"),\n this.translateService.instant(\"platform.angular_components.april_short\"),\n this.translateService.instant(\"platform.angular_components.may_short\"),\n this.translateService.instant(\"platform.angular_components.june_short\"),\n this.translateService.instant(\"platform.angular_components.july_short\"),\n this.translateService.instant(\"platform.angular_components.august_short\"),\n this.translateService.instant(\"platform.angular_components.september_short\"),\n this.translateService.instant(\"platform.angular_components.october_short\"),\n this.translateService.instant(\"platform.angular_components.november_short\"),\n this.translateService.instant(\"platform.angular_components.december_short\"),\n ],\n today: this.translateService.instant(\"platform.angular_components.today\"),\n clear: this.translateService.instant(\"platform.angular_components.clear\"),\n dateFormat: this.translateService.instant(\"platform.angular_components.date_format\"),\n hourFormat: this.translateService.instant(\"platform.angular_components.hour_format\"),\n }\n\n private primengConfig = inject(PrimeNG);\n\n constructor(\n private readonly changeDetectorRef: ChangeDetectorRef,\n ) { }\n\n ngOnInit(): void {\n const _locale = this.field.calendarLocaleOptions || this.locale;\n this.primengConfig.setTranslation({\n ..._locale,\n })\n }\n\n @Input()\n public showTime = false;\n\n @Input()\n public timeOnly = false;\n\n @ViewChild('calendar') calendar: DatePicker | null = null;\n\n public inputRef: HTMLInputElement | undefined\n\n public ngAfterViewInit(): void {\n this.setInputRef();\n this.changeDetectorRef.detectChanges();\n }\n\n private setInputRef(): void {\n this.inputRef = this.calendar?.inputfieldViewChild?.nativeElement;\n }\n}\n","@if (inputRef) {\n <s-field-label\n [field]=\"field\"\n [fieldContainerRef]=\"inputRef\"\n >\n </s-field-label>\n}\n\n<div [sTooltip]=\"field.tooltip\">\n <!-- Remover as propriedades [showTransitionOptions] e [hideTransitionOptions] quando atualizar para o PrimeNG v10, esses atributos foram\n usados para remover um bug ocasionado pela animação do componente p-datepicker, bug explicado nas issues: #ERPROM-5534, #ERPROM-8248 e #DSN-1045. -->\n\n <!-- A diretiva sCalendarMask não está suportando seleção múltipla. A forma como ela foi escrita não permite identificar a quantidade de datas\n que estão sendo selecionadas. Removi o uso dela quando está com selectionMode=multiple. Analisar a removeção completa desta diretiva. -->\n @if(field.selectionMode !== 'multiple') {\n <p-datepicker\n #calendar\n sCalendarMask\n [inputId]=\"field.id || field.name\"\n [name]=\"field.name\"\n [showIcon]=\"true\"\n [timeOnly]=\"timeOnly\"\n [selectionMode]=\"field.selectionMode\"\n [rangeSeparator]=\"field.rangeSeparator ? field.rangeSeparator : calendar.rangeSeparator\"\n [showTime]=\"showTime\"\n [showSeconds]=\"field.showSeconds\"\n [showOnFocus]=\"field.showOnFocus\"\n [formControl]=\"formControl\"\n [icon]=\"timeOnly ? 'fa fa-clock' : 'fa fa-calendar'\"\n [minDate]=\"field.minDate\"\n [maxDate]=\"field.maxDate\"\n [defaultDate]=\"field.defaultDate ? field.defaultDate : calendar.defaultDate\"\n [dateFormat]=\"field.calendarLocaleOptions?.dateFormat || 'platform.angular_components.date_format' | translate\"\n [hourFormat]=\"field.calendarLocaleOptions?.hourFormat || 'platform.angular_components.hour_format' | translate\"\n [view]=\"field.view ? field.view : calendar.view\"\n [placeholder]=\"field.placeholder\"\n inputStyleClass=\"mousetrap\"\n [appendTo]=\"field.appendTo\"\n (onBlur)=\"field.onBlur ? field.onBlur($event) : null\"\n (onFocus)=\"field.onFocus ? field.onFocus($event) : null\"\n (onSelect)=\"field.onSelect ? field.onSelect($event) : null\"\n (onClose)=\"field.onClose ? field.onClose($event) : null\"\n (onTodayClick)=\"field.onTodayClick ? field.onTodayClick($event) : null\"\n (onClearClick)=\"field.onClearClick ? field.onClearClick($event) : null\"\n (onMonthChange)=\"field.onMonthChange ? field.onMonthChange($event) : null\"\n (onYearChange)=\"field.onYearChange ? field.onYearChange($event) : null\"\n [showTransitionOptions]=\"'0ms'\"\n [hideTransitionOptions]=\"'0ms'\"\n >\n </p-datepicker>\n }@else {\n <!-- A única diferença deste bloco é a remoção da diretiva sCalendarMask. -->\n <p-datepicker\n #calendar\n [inputId]=\"field.id || field.name\"\n [name]=\"field.name\"\n [showIcon]=\"true\"\n [timeOnly]=\"timeOnly\"\n [selectionMode]=\"field.selectionMode\"\n [rangeSeparator]=\"field.rangeSeparator ? field.rangeSeparator : calendar.rangeSeparator\"\n [showTime]=\"showTime\"\n [showSeconds]=\"field.showSeconds\"\n [showOnFocus]=\"field.showOnFocus\"\n [formControl]=\"formControl\"\n [icon]=\"timeOnly ? 'fa fa-clock' : 'fa fa-calendar'\"\n [minDate]=\"field.minDate\"\n [maxDate]=\"field.maxDate\"\n [defaultDate]=\"field.defaultDate ? field.defaultDate : calendar.defaultDate\"\n [dateFormat]=\"\n field.calendarLocaleOptions?.dateFormat || 'platform.angular_components.date_format' | translate\n \"\n [hourFormat]=\"\n field.calendarLocaleOptions?.hourFormat || 'platform.angular_components.hour_format' | translate\n \"\n [view]=\"field.view ? field.view : calendar.view\"\n [placeholder]=\"field.placeholder\"\n inputStyleClass=\"mousetrap\"\n [appendTo]=\"field.appendTo\"\n (onBlur)=\"field.onBlur ? field.onBlur($event) : null\"\n (onFocus)=\"field.onFocus ? field.onFocus($event) : null\"\n (onSelect)=\"field.onSelect ? field.onSelect($event) : null\"\n (onClose)=\"field.onClose ? field.onClose($event) : null\"\n (onTodayClick)=\"field.onTodayClick ? field.onTodayClick($event) : null\"\n (onClearClick)=\"field.onClearClick ? field.onClearClick($event) : null\"\n (onMonthChange)=\"field.onMonthChange ? field.onMonthChange($event) : null\"\n (onYearChange)=\"field.onYearChange ? field.onYearChange($event) : null\"\n [showTransitionOptions]=\"'0ms'\"\n [hideTransitionOptions]=\"'0ms'\"\n >\n </p-datepicker>\n }\n</div>\n","import { Component, Input } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { CheckboxField } from \"../../configurations/fields/checkbox-field\";\nimport { BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"checkbox-field.component.html\",\n})\nexport class CheckboxFieldComponent implements BaseFieldComponentConfig {\n @Input({ required: true })\n public field!: CheckboxField;\n\n @Input({ required: true })\n public formControl!: FormControl;\n}\n","<s-checkbox-list\n [data]=\"field.data\"\n [formControl]=\"formControl\"\n>\n</s-checkbox-list>\n","import { Clipboard } from '@angular/cdk/clipboard';\nimport { AfterViewInit, ChangeDetectorRef, Component, ElementRef, Input } from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\nimport { ChipsField } from '../../configurations/fields/chips-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\n\n@Component({\n templateUrl: './chips-field.component.html',\n styleUrls: ['./chips-field.component.scss'],\n})\nexport class ChipsFieldComponent implements BaseFieldComponentConfig, AfterViewInit {\n @Input({ required: true })\n public field!: ChipsField;\n\n @Input({ required: true })\n public formControl!: UntypedFormControl;\n\n public feedbackMessageVisible = false;\n public copyButtonVisible = true;\n public inputRef: HTMLElement | null = null;\n\n constructor(\n private readonly clipboard: Clipboard,\n private readonly changeDetectorRef: ChangeDetectorRef,\n private readonly elementRef: ElementRef,\n ) { }\n\n public onCopyFieldContent(): void {\n if (this.formControl.value) {\n this.copyButtonVisible = false;\n this.feedbackMessageVisible = true;\n\n setTimeout(() => {\n this.feedbackMessageVisible = false;\n this.copyButtonVisible = true;\n }, 3000);\n\n const content = this.formControl.value.join(this.field.separator || '\\n');\n\n this.clipboard.copy(content);\n\n if (this.field.onCopy) {\n this.field.onCopy(content);\n }\n }\n }\n\n public ngAfterViewInit(): void {\n this.setInputRef();\n this.changeDetectorRef.detectChanges();\n }\n\n private setInputRef(): void {\n this.inputRef = this.elementRef.nativeElement.querySelector('input');\n }\n}\n\n","@if (inputRef) {\n <s-field-label\n [field]=\"field\"\n [fieldContainerRef]=\"inputRef\"\n ></s-field-label>\n}\n\n<div class=\"chips-field-wrapper\">\n <div style=\"width: 100%\">\n @if (field.keyFilter) {\n <s-chips\n [inputId]=\"field.id || field.name\"\n [formControl]=\"formControl\"\n [placeholder]=\"field.placeholder\"\n [allowDuplicated]=\"false\"\n [addOnTab]=\"true\"\n [addOnBlur]=\"true\"\n (onAdd)=\"field.onAdd ? field.onAdd($event) : null\"\n (onRemove)=\"field.onRemove ? field.onRemove($event) : null\"\n (onChipClick)=\"field.onChipClick ? field.onChipClick($event) : null\"\n (onFocus)=\"field.onFocus ? field.onFocus($event) : null\"\n (onBlur)=\"field.onBlur ? field.onBlur($event) : null\"\n [keyFilter]=\"field.keyFilter\"\n >\n <ng-template\n let-item\n pTemplate=\"item\"\n >\n <span\n class=\"chip-content\"\n [sTooltip]=\"item\"\n >\n {{ item }}\n </span>\n </ng-template>\n </s-chips>\n } @else {\n <s-chips\n [inputId]=\"field.id || field.name\"\n [formControl]=\"formControl\"\n [placeholder]=\"field.placeholder\"\n [allowDuplicated]=\"false\"\n [addOnTab]=\"true\"\n [addOnBlur]=\"true\"\n (onAdd)=\"field.onAdd ? field.onAdd($event) : null\"\n (onRemove)=\"field.onRemove ? field.onRemove($event) : null\"\n (onChipClick)=\"field.onChipClick ? field.onChipClick($event) : null\"\n (onFocus)=\"field.onFocus ? field.onFocus($event) : null\"\n (onBlur)=\"field.onBlur ? field.onBlur($event) : null\"\n >\n <ng-template\n let-item\n pTemplate=\"item\"\n >\n <span\n class=\"chip-content\"\n [sTooltip]=\"item\"\n >\n {{ item }}\n </span>\n </ng-template>\n </s-chips>\n }\n\n </div>\n\n @if(field.showCopyButton && formControl.value?.length > 0 && copyButtonVisible) {\n <button\n class=\"copy-content-button\"\n (click)=\"onCopyFieldContent()\"\n >\n {{ 'platform.angular_components.copy_field_content' | translate }}\n </button>\n }\n\n @if(feedbackMessageVisible) {\n <span\n class=\"feedback-message\"\n >\n {{ 'platform.angular_components.copied_to_clipboard' | translate }}\n </span>\n }\n</div>\n","import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, Input } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\nimport { CountryPhonePickerField } from '../../configurations/fields/country-phone-picker-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\n\n@Component({\n templateUrl: './country-phone-picker-field.component.html',\n})\nexport class CountryPhonePickerFieldComponent implements BaseFieldComponentConfig, AfterViewInit {\n @Input({ required: true })\n public field!: CountryPhonePickerField;\n\n @Input({ required: true })\n public formControl!: FormControl;\n\n constructor(\n private readonly changeDetectorRef: ChangeDetectorRef,\n ) { }\n\n public ngAfterViewInit(): void {\n this.changeDetectorRef.detectChanges();\n }\n}\n\n","@if (countryPhonePicker.phoneInput?.nativeElement) {\n <s-field-label\n [field]=\"field\"\n [fieldContainerRef]=\"countryPhonePicker.phoneInput?.nativeElement\"\n ></s-field-label>\n}\n\n<s-country-phone-picker\n #countryPhonePicker\n [formControl]=\"formControl\"\n [ordination]=\"field.ordination\"\n [countries]=\"field.countries\"\n (selected)=\"field.onSelected($event)\"\n (focusLost)=\"field.onFocusLost ? field.onFocusLost($event): null\"\n>\n</s-country-phone-picker>\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n computed,\n ElementRef,\n Input,\n OnInit,\n viewChild,\n} from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\nimport { currencies, CurrencyService } from '@seniorsistemas/angular-components/currency';\nimport { LocaleService } from '@seniorsistemas/angular-components/locale';\nimport { InputMask } from 'primeng/inputmask';\nimport { first } from 'rxjs/operators';\nimport { CurrencyField } from '../../configurations/fields/currency-field';\nimport { BaseFieldComponent, BaseFieldComponentConfig } from '../base-field-component';\n\n/**\n * @deprecated Should use bignumber instead\n */\n@Component({\n templateUrl: 'currency-field.component.html',\n})\nexport class CurrencyFieldComponent\n extends BaseFieldComponent\n implements BaseFieldComponentConfig, OnInit, AfterViewInit\n{\n private readonly inputRefComponent = viewChild<ElementRef | InputMask>('inputRef');\n @Input({ required: true })\n public field!: CurrencyField;\n\n @Input({ required: true })\n public formControl!: FormControl;\n\n public currencies = currencies;\n public mask?: string;\n\n public inputRef = computed(() => {\n const inputRef = this.inputRefComponent();\n if (!inputRef) {\n return undefined;\n }\n if (inputRef instanceof InputMask) {\n return inputRef.input;\n } else {\n return inputRef.nativeElement;\n }\n });\n\n constructor(\n readonly currencyService: CurrencyService,\n private readonly localeService: LocaleService,\n private readonly changeDetectorRef: ChangeDetectorRef,\n ) {\n super();\n }\n\n ngOnInit(): void {\n this.onLocaleService();\n this.mask = typeof this.field.mask === 'function' ? this.field.mask() : this.field.mask;\n }\n\n public ngAfterViewInit(): void {\n this.changeDetectorRef.detectChanges();\n }\n\n private onLocaleService(): void {\n this.localeService\n .getLocale()\n .pipe(first())\n .subscribe({\n next: () => {\n if (!this.field.numberLocaleOptions?.decimalSeparator) {\n this.field.numberLocaleOptions = {\n currencySymbol: this.field.numberLocaleOptions?.currencySymbol,\n thousandsSeparator: this.field.numberLocaleOptions?.thousandsSeparator,\n decimalSeparator: this.localeService.getDecimalSeparator(),\n };\n }\n\n if (!this.field.numberLocaleOptions?.thousandsSeparator) {\n this.field.numberLocaleOptions = {\n currencySymbol: this.field.numberLocaleOptions.currencySymbol,\n decimalSeparator: this.field.numberLocaleOptions.decimalSeparator,\n thousandsSeparator: this.localeService.getGroupingSeparator(),\n };\n }\n\n if (!this.field.numberLocaleOptions?.currencySymbol) {\n this.field.numberLocaleOptions = {\n decimalSeparator: this.field.numberLocaleOptions.decimalSeparator,\n thousandsSeparator: this.field.numberLocaleOptions.thousandsSeparator,\n currencySymbol: 'R$',\n };\n }\n },\n error: () =>\n (this.field.numberLocaleOptions = this.field.numberLocaleOptions ?? {\n thousandsSeparator: '.',\n decimalSeparator: ',',\n currencySymbol: 'R$',\n }),\n });\n }\n}\n","@if (inputRef()) {\n <s-field-label\n [field]=\"field\"\n [fieldContainerRef]=\"inputRef()\"\n ></s-field-label>\n}\n@let hasMask = !!field.mask;\n<div\n class=\"[input-is-invalid>.button-container>.button-container]:border-[1px] [input-is-invalid>.button-container>.button-container]:border-r-0 [input-is-invalid>.button-container>.button-container]:border-criticality-red [input-is-invalid>.button-container>input]:border-[1px] [input-is-invalid>.button-container>input]:border-criticality-red [input-has-focus>.button-container]:border-[1px] [input-has-focus>.button-container]:border-r-0 [input-has-focus>.button-container]:border-primary flex h-[35px] w-full\"\n [ngClass]=\"{\n '[&:has(.input-mask.ng-invalid.ng-dirty)>.button-container]:border-[1px] [&:has(.input-mask.ng-invalid.ng-dirty)>.button-container]:border-r-0 [&:has(.input-mask.ng-invalid.ng-dirty)>.button-container]:border-criticality-red [&:has(.input-mask.ng-invalid.ng-dirty)>input]:border-[1px] [&:has(.input-mask.ng-invalid.ng-dirty)>input]:border-criticality-red':\n hasMask,\n }\"\n>\n @if (field.currency || field.numberLocaleOptions?.currencySymbol) {\n <div\n class=\"button-container flex h-full min-w-10 items-center justify-center rounded-l-[3px] border border-r-0 border-[#c1c1cc] px-[8px]\"\n >\n <span class=\"text-[#212533]\">\n {{\n field.currency\n ? currencyService.getCurrencySymbol({ currency: field.currency() })\n : field.numberLocaleOptions?.currencySymbol\n }}\n </span>\n </div>\n }\n\n @if (hasMask) {\n <p-inputMask\n class=\"input-mask\"\n #inputRef\n type=\"text\"\n [inputId]=\"field.id || field.name\"\n [name]=\"field.name\"\n [formControl]=\"formControl\"\n [mask]=\"mask\"\n [placeholder]=\"field.placeholder\"\n slotChar=\"_\"\n [sTooltip]=\"field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n styleClass=\"mousetrap !rounded-l-[0px]\"\n (onBlur)=\"field.onBlur ? field.onBlur($event) : null\"\n (onFocus)=\"field.onFocus ? field.onFocus($event) : null\"\n (onComplete)=\"field.onComplete ? field.onComplete($event) : null\"\n (onInput)=\"field.onInput ? field.onInput($event) : null\"\n ></p-inputMask>\n } @else if (!hasMask) {\n <input\n #inputRef\n type=\"text\"\n [id]=\"field.id || field.name\"\n class=\"h-full w-full rounded-r-[3px] border border-[#c1c1cc] p-2 outline-none focus:border-[1px] focus:border-primary\"\n [name]=\"field.name\"\n [formControl]=\"formControl\"\n sNumberInput\n [precision]=\"\n field.precision\n ? isFunction(field.precision)\n ? trigger(field.precision)\n : field.precision\n : field.currency && field.currency()\n ? currencies[field.currency()].precision\n : 15\n \"\n [scale]=\"\n field.scale\n ? isFunction(field.scale)\n ? trigger(field.scale)\n : field.scale\n : field.currency && field.currency()\n ? currencies[field.currency()].scale\n : 2\n \"\n [decimalSeparator]=\"field.numberLocaleOptions?.decimalSeparator\"\n [thousandsSeparator]=\"field.numberLocaleOptions?.thousandsSeparator\"\n [alignTo]=\"field.alignTo\"\n [sTooltip]=\"field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"field.placeholder\"\n [showDelay]=\"500\"\n [autocomplete]=\"field.browserAutocomplete ? 'on' : 'off'\"\n [ngClass]=\"'mousetrap'\"\n (blur)=\"field.onBlur ? field.onBlur($event) : null\"\n (focus)=\"field.onFocus ? field.onFocus($event) : null\"\n />\n }\n</div>\n","import { Component, Input } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\n\n\nimport { EditorField } from '../../configurations/fields/editor-field';\nimport { BaseFieldComponent, BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"./editor-field.component.html\",\n})\nexport class EditorFieldComponent extends BaseFieldComponent implements BaseFieldComponentConfig {\n @Input({ required: true })\n public field!: EditorField;\n\n @Input({ required: true })\n public formControl!: FormControl;\n}\n","<s-field-label [field]=\"field\"></s-field-label>\n\n<p-editor\n [formControl]=\"formControl\"\n [formats]=\"field.formats\"\n [readonly]=\"field.readonly ? field.readonly : false\"\n [modules]=\"field.modules\"\n [style]=\"field.style\"\n>\n</p-editor>\n","import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, HostListener, Input } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\nimport { BlobField } from '../../configurations/fields/blob-field';\nimport { BaseFieldComponent, BaseFieldComponentConfig } from '../base-field-component';\n\n@Component({\n templateUrl: 'file-upload-field.component.html',\n})\nexport class FileUploadFieldComponent extends BaseFieldComponent implements BaseFieldComponentConfig, AfterViewInit {\n @Input({ required: true })\n public field!: BlobField;\n\n // TODO: TIPAR.\n @Input({ required: true })\n public formControl!: any;\n\n public inputRef: HTMLInputElement | null = null;\n\n constructor(\n private readonly changeDetectorRef: ChangeDetectorRef,\n private readonly elementRef: ElementRef,\n ) {\n super();\n }\n\n @HostListener('click')\n public onClick(): void {\n this.dispatchFocusInputRef();\n }\n\n public ngAfterViewInit(): void {\n this.setInputRef();\n this.changeDetectorRef.detectChanges();\n }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent): void {\n if (!this.elementRef.nativeElement.contains(event.target)) {\n this.inputRef?.dispatchEvent(new Event('blur'));\n }\n }\n\n private setInputRef(): void {\n this.inputRef = this.elementRef.nativeElement.querySelector('input') as HTMLInputElement;\n }\n\n private dispatchFocusInputRef(): void {\n this.inputRef?.dispatchEvent(new Event('focus'));\n }\n}\n\n","@if (inputRef) {\n <s-field-label\n [field]=\"field\"\n [fieldContainerRef]=\"inputRef\"\n ></s-field-label>\n}\n\n<s-file-upload\n [id]=\"field.id || field.name\"\n [accept]=\"field.accept\"\n [files]=\"field.files\"\n [multiple]=\"field.multiple\"\n [chooseLabel]=\"field.chooseLabel\"\n [removeLabel]=\"field.removeLabel\"\n [cancelLabel]=\"field.cancelLabel\"\n [successTooltip]=\"field.successTooltip\"\n (uploadHandler)=\"field.onUploadFile($event, field)\"\n (removeFile)=\"field.onRemoveFile($event.file, field)\"\n (cancelUpload)=\"field.onCancelUpload($event, field)\"\n (downloadFile)=\"field.onDownloadFile($event, field)\"\n [formGroup]=\"formControl\"\n [showFileUploadDate]=\"field.showFileUploadDate\"\n>\n</s-file-upload>\n","import { Component, Input } from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\nimport { LookupField } from '../../configurations/fields/lookup-field';\n\n@Component({\n templateUrl: 'lookup-field.component.html',\n})\nexport class LookupFieldComponent {\n @Input({ required: true })\n public field!: LookupField;\n\n @Input({ required: true })\n public formControl!: UntypedFormControl;\n}\n","<s-field-label [field]=\"field\"></s-field-label>\n\n<div\n [sTooltip]=\"field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n>\n <s-lookup\n [id]=\"field.id || field.name\"\n [multiple]=\"field.multiple\"\n [formControl]=\"formControl\"\n [lookupSuggestions]=\"field.lookupSuggestions\"\n [dataKey]=\"field.dataKey\"\n [placeholder]=\"field.placeholder\"\n [showSearch]=\"field.showSearch\"\n [searchFields]=\"field.searchFields\"\n [searchGridFields]=\"field.searchGridFields\"\n [searchGridData]=\"field.gridData\"\n (onLookupRequest)=\"field.onLookupRequest($event)\"\n (onSearchRequest)=\"field.onSearchRequest($event)\"\n [lookupDisplayField]=\"field.lookupDisplayField\"\n [searchTotalRecords]=\"field.searchTotalRecords\"\n [labelOptions]=\"{\n recordsLabel: field.recordsLabel,\n recordLabel: field.recordLabel,\n emptyFieldLabel: field.emptyFieldLabel,\n selectLabel: field.selectLabel,\n cancelLabel: field.cancelLabel,\n clearLabel: field.clearLabel,\n filterLabel: field.filterLabel,\n filterTitle: field.filterTitle,\n searchTotalRecordsLabel: field.searchTotalRecordsLabel,\n searchEmptyTitle: field.searchEmptyTitle,\n searchTitle: field.searchTitle,\n }\"\n (onSelect)=\"field.onSelect($event)\"\n (onUnselect)=\"field.onUnselect($event)\"\n (onClear)=\"field.onClear ? field.onClear($event) : null\"\n (onBlur)=\"field.onBlur ? field.onBlur($event) : null\"\n [lookupAppendTo]=\"field.appendTo\"\n [lookupEmptyMessage]=\"field.emptyMessage\"\n [defaultFilter]=\"field.defaultFilter\"\n [autocompleteForceSelection]=\"field.autocompleteForceSelection\"\n [showAddOption]=\"field.showAddOption\"\n [showEditOption]=\"field.showEditOption\"\n [showRemoveOption]=\"field.showRemoveOption\"\n [sortableColumnsDisabled]=\"field.sortableColumnsDisabled\"\n (onAdd)=\"field.onAdd ? field.onAdd() : null\"\n (onEdit)=\"field.onEdit ? field.onEdit($event) : null\"\n (onRemove)=\"field.onRemove ? field.onRemove($event) : null\"\n (onClearButtonClick)=\"field.onClearButtonClick ? field.onClearButtonClick() : null\"\n >\n </s-lookup>\n</div>\n","/* eslint-disable @angular-eslint/no-output-on-prefix */\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { first, takeUntil } from 'rxjs/operators';\nimport { BaseFieldComponent, BaseFieldComponentConfig } from '../base-field-component';\n\nimport { LocaleService } from '@seniorsistemas/angular-components/locale';\nimport { NumberAlignmentOption } from '@seniorsistemas/angular-components/number-input';\nimport { FieldType } from '../../configurations/field-type';\nimport { DecimalField } from '../../configurations/fields/decimal-field';\n\n@Component({\n templateUrl: 'number-field.component.html',\n styleUrls: ['./number-field.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class NumberFieldComponent\n extends BaseFieldComponent\n implements OnInit, OnDestroy, BaseFieldComponentConfig, AfterViewInit {\n @Input({ required: true })\n public field!: DecimalField;\n\n @Input({ required: true })\n public formControl!: FormControl;\n\n @Output()\n public onInput: EventEmitter<any> = new EventEmitter();\n @Output()\n public onFocus: EventEmitter<any> = new EventEmitter();\n @Output()\n public onComplete: EventEmitter<any> = new EventEmitter();\n\n public inputRef: ElementRef | null = null;\n\n private ngUnsubscribe = new Subject<void>();\n\n protected FieldType = FieldType;\n\n constructor(\n private readonly localeService: LocaleService,\n private readonly elementRef: ElementRef,\n private readonly changeDetectorRef: ChangeDetectorRef,\n ) {\n super();\n }\n\n public ngOnInit() {\n this.onLocaleService();\n\n this.onFocus.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: FocusEvent) => {\n if (this.field.onFocus) this.field.onFocus(event);\n });\n\n this.onInput.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field.onInput) this.field.onInput(event);\n });\n\n this.onComplete.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field.onComplete) this.field.onComplete(event);\n });\n }\n\n public ngAfterViewInit(): void {\n this.setInputRef();\n this.changeDetectorRef.detectChanges();\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public get numberAlignmentOption() {\n return NumberAlignmentOption;\n }\n\n public get fieldType() {\n return FieldType;\n }\n\n private onLocaleService(): void {\n this.localeService\n .getLocale()\n .pipe(first())\n .subscribe({\n next: () => {\n if (!this.field.numberLocaleOptions?.decimalSeparator) {\n this.field.numberLocaleOptions = {\n ...this.field.numberLocaleOptions,\n decimalSeparator: this.localeService.getDecimalSeparator() ?? '',\n };\n }\n\n if (!this.field.numberLocaleOptions?.thousandsSeparator) {\n this.field.numberLocaleOptions = {\n ...this.field.numberLocaleOptions,\n thousandsSeparator: this.localeService.getGroupingSeparator() ?? '',\n };\n }\n\n if (!this.field.numberLocaleOptions?.currencySymbol) {\n this.field.numberLocaleOptions = {\n ...this.field.numberLocaleOptions,\n currencySymbol: 'R$',\n };\n }\n },\n error: () =>\n (this.field.numberLocaleOptions = this.field.numberLocaleOptions ?? {\n thousandsSeparator: '.',\n decimalSeparator: ',',\n currencySymbol: 'R$',\n }),\n });\n }\n\n private setInputRef(): void {\n const input = this.elementRef.nativeElement.querySelector('input');\n this.inputRef = input;\n }\n}\n","@if (inputRef) {\n <s-field-label\n [field]=\"field\"\n [fieldContainerRef]=\"inputRef.nativeElement\"\n />\n}\n\n@let hasMask = !!field.mask;\n@if (hasMask) {\n <p-inputMask\n #inputRef\n type=\"text\"\n [inputId]=\"field.id || field.name\"\n [name]=\"field.name\"\n [mask]=\"field.mask ? getFieldPropertyMask(field.mask) : null\"\n [placeholder]=\"field.placeholder\"\n slotChar=\"_\"\n [sTooltip]=\"field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n styleClass=\"mousetrap\"\n (onBlur)=\"field.onBlur ? field.onBlur($event) : null\"\n (onFocus)=\"onFocus.next($event)\"\n (onComplete)=\"onComplete.next($event)\"\n (onInput)=\"onInput.next($event)\"\n [formControl]=\"formControl\"\n >\n </p-inputMask>\n} @else if (!hasMask) {\n <div class=\"ui-inputgroup\">\n @if (field.leftAddon) {\n @if (field.leftAddon.callback) {\n <span class=\"addon-button addon-button--left\">\n <s-button\n [label]=\"field.leftAddon.label\"\n [iconClass]=\"field.leftAddon.icon\"\n [priority]=\"field.leftAddon.priority\"\n [disabled]=\"fieldPropertyIsDisabled(field.leftAddon)\"\n (clicked)=\"field.leftAddon.callback()\"\n >\n </s-button>\n </span>\n }\n @if (!field.leftAddon.callback) {\n <span class=\"ui-inputgroup-addon\">\n @if (field.leftAddon.label) {\n <span>{{ field.leftAddon.label }}</span>\n } @else if (!field.leftAddon.label) {\n <span [ngClass]=\"field.leftAddon.icon\"></span>\n }\n </span>\n }\n }\n\n @if(field.type === FieldType.Double && field.alignTo === numberAlignmentOption.LEFT) {\n <ng-container *ngTemplateOutlet=\"localizedNumber\"></ng-container>\n } @else {\n <ng-container *ngTemplateOutlet=\"input\"></ng-container>\n }\n\n @if (field.rightAddon) {\n @if (field.rightAddon.callback) {\n <span class=\"addon-button addon-button--right\">\n <s-button\n [label]=\"field.rightAddon.label\"\n [iconClass]=\"field.rightAddon.icon\"\n [priority]=\"field.rightAddon.priority\"\n [disabled]=\"fieldPropertyIsDisabled(field.rightAddon)\"\n (clicked)=\"field.rightAddon.callback()\"\n >\n </s-button>\n </span>\n }\n @if (!field.rightAddon.callback) {\n <span class=\"ui-inputgroup-addon\">\n @if (field.rightAddon.label) {\n {{ field.rightAddon.label }}\n } @else if (!field.rightAddon.label) {\n <span [ngClass]=\"field.rightAddon.icon\"></span>\n }\n </span>\n }\n }\n </div>\n}\n\n<ng-template #input>\n <input\n #inputRef\n [id]=\"field.id || field.name\"\n type=\"text\"\n [name]=\"field.name\"\n sNumberInput\n [precision]=\"isFunction(field.precision) ? trigger(field.precision) : field.precision\"\n [scale]=\"isFunction(field.scale) ? trigger(field.scale) : field.scale\"\n [decimalSeparator]=\"field.numberLocaleOptions?.decimalSeparator\"\n [thousandsSeparator]=\"field.numberLocaleOptions?.thousandsSeparator\"\n [alignTo]=\"field.alignTo\"\n [sTooltip]=\"field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"field.placeholder\"\n [showDelay]=\"500\"\n pInputText\n [autocomplete]=\"field.browserAutocomplete ? 'on' : 'off'\"\n [ngClass]=\"'mousetrap'\"\n (blur)=\"field.onBlur ? field.onBlur($event) : null\"\n (focus)=\"onFocus.next($event)\"\n [formControl]=\"formControl\"\n />\n</ng-template>\n<ng-template #localizedNumber>\n <input\n #inputRef\n [id]=\"field.id || field.name\"\n type=\"text\"\n [name]=\"field.name\"\n sLocalizedNumberInput\n [precision]=\"isFunction(field.precision) ? trigger(field.precision) : field.precision\"\n [decimalSeparator]=\"field.numberLocaleOptions?.decimalSeparator\"\n [thousandsSeparator]=\"field.numberLocaleOptions?.thousandsSeparator\"\n [sTooltip]=\"field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"field.placeholder\"\n [showDelay]=\"500\"\n pInputText\n [autocomplete]=\"field.browserAutocomplete ? 'on' : 'off'\"\n [ngClass]=\"'mousetrap'\"\n (blur)=\"field.onBlur ? field.onBlur($event) : null\"\n (focus)=\"onFocus.next($event)\"\n [formControl]=\"formControl\"\n />\n</ng-template>\n","/* eslint-disable @angular-eslint/no-output-on-prefix */\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { PasswordField } from '../../configurations/fields/password-field';\n\n@Component({\n templateUrl: './password-field.component.html',\n styleUrls: ['./password-field.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class PasswordFieldComponent implements OnInit, AfterViewInit, OnDestroy {\n @Input({ required: true })\n public field!: PasswordField;\n\n @Input({ required: true })\n public formControl!: FormControl;\n\n @Output()\n public onInput: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public onFocus: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public onComplete: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('inputRef') inputRef: ElementRef | null = null;\n\n private ngUnsubscribe = new Subject<void>();\n public passwordVisible = false;\n\n constructor(private readonly changeDetectorRef: ChangeDetectorRef) { }\n\n public ngOnInit(): void {\n this.onFocus.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: FocusEvent) => {\n if (this.field.onFocus) {\n this.field.onFocus(event);\n }\n });\n this.onInput.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: InputEvent) => {\n if (this.field.onInput) {\n this.field.onInput(event);\n }\n });\n this.onComplete.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field.onComplete) {\n this.field.onComplete(event);\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public onChangeVisible(): void {\n this.passwordVisible = !this.passwordVisible;\n }\n\n public ngAfterViewInit(): void {\n this.changeDetectorRef.detectChanges();\n }\n}\n","@if(inputRef) {\n <s-field-label\n [field]=\"field\"\n [fieldContainerRef]=\"inputRef\"\n ></s-field-label>\n}\n\n<div\n class=\"password-field\"\n [ngClass]=\"{ 'password-field--toggle': field.showToggle }\"\n>\n <input\n #inputRef\n [type]=\"passwordVisible ? 'text' : 'password'\"\n [id]=\"field.id || field.name\"\n class=\"password-input\"\n [name]=\"field.name\"\n [sTooltip]=\"field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"field.placeholder\"\n [showDelay]=\"500\"\n [maxLength]=\"field.maxLength\"\n pInputText\n [ngClass]=\"'mousetrap'\"\n (blur)=\"field.onBlur ? field.onBlur($event) : null\"\n (focus)=\"onFocus.next($event)\"\n (input)=\"onInput.next($event)\"\n [formControl]=\"formControl\"\n [ngStyle]=\"field.style\"\n [sPasswordStrength]=\"field.passwordStrength ? field.passwordStrength : false\"\n [passwordStrengthDescription]=\"field.passwordStrengthOptions?.description ? field.passwordStrengthOptions!.description : ''\"\n [passwordStrengthWeakTitle]=\"field.passwordStrengthOptions?.weakTitle ? field.passwordStrengthOptions?.weakTitle : ''\"\n [passwordStrengthMediumTitle]=\"field.passwordStrengthOptions?.mediumTitle ? field.passwordStrengthOptions?.mediumTitle : ''\"\n [passwordStrengthStrongTitle]=\"field.passwordStrengthOptions?.strongTitle ? field.passwordStrengthOptions?.strongTitle : ''\"\n [passwordStrengthValidation]=\"field.passwordStrengthOptions?.validation\"\n />\n @if (field.showToggle) {\n <span class=\"toggle-button\">\n <s-button\n [iconClass]=\"passwordVisible ? 'fas fa-eye-slash' : 'fas fa-eye'\"\n priority=\"default\"\n (clicked)=\"onChangeVisible()\"\n >\n </s-button>\n </span>\n }\n</div>\n","/* eslint-disable @angular-eslint/no-output-on-prefix */\nimport { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { RadioButtonField } from '../../configurations/fields/radio-button-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\n\n@Component({\n templateUrl: 'radio-button-field.component.html',\n styles: [\n `\n s-button.horizontal-clear-option button {\n width: min-content !important;\n }\n .horizontal-radio-buttons-container {\n gap: 20px 40px;\n .radio-button-item {\n margin: 0;\n }\n }\n `,\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class RadioButtonFieldComponent implements OnInit, OnDestroy, BaseFieldComponentConfig {\n @Input({ required: true })\n public field!: RadioButtonField;\n\n @Input({ required: true })\n public formControl!: UntypedFormControl;\n\n @Output()\n public onClick: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public onFocus: EventEmitter<any> = new EventEmitter();\n\n private _ngUnsubscribe = new Subject<void>();\n\n public ngOnInit(): void {\n this.onFocus.pipe(takeUntil(this._ngUnsubscribe)).subscribe((event: FocusEvent) => {\n if (this.field.onFocus) this.field.onFocus(event);\n });\n this.onClick.pipe(takeUntil(this._ngUnsubscribe)).subscribe((event: any) => {\n if (this.field.onClick) this.field.onClick(event);\n });\n }\n\n public ngOnDestroy(): void {\n this._ngUnsubscribe.next();\n this._ngUnsubscribe.complete();\n }\n\n public onClear(): void {\n this.formControl.reset();\n }\n}\n","<s-field-label [field]=\"field\"></s-field-label>\n\n@if (field.verticalAlignment) {\n <div class=\"ui-g\">\n @for (option of field.options; let i = $index; track i) {\n <div class=\"ui-g-12\">\n <ng-container\n [ngTemplateOutlet]=\"radioButton\"\n [ngTemplateOutletContext]=\"{ option: option, index: i }\"\n >\n </ng-container>\n </div>\n }\n @if (field.showClear && field.required && !field.required() && !formControl.disabled) {\n <s-button\n [label]=\"field.clearLabel || 'Clear selection'\"\n (clicked)=\"onClear()\"\n priority=\"link\"\n >\n </s-button>\n }\n </div>\n} @else {\n <div class=\"ui-g horizontal-radio-buttons-container\">\n @for (option of field.options; let i = $index; track i) {\n <ng-container\n [ngTemplateOutlet]=\"radioButton\"\n [ngTemplateOutletContext]=\"{ option: option, index: i }\"\n >\n </ng-container>\n }\n </div>\n @if (field.showClear && field.required && !field.required() && !formControl.disabled) {\n <s-button\n class=\"horizontal-clear-option\"\n [label]=\"field.clearLabel || 'Clear selection'\"\n (clicked)=\"onClear()\"\n priority=\"link\"\n >\n </s-button>\n }\n}\n\n<ng-template\n #radioButton\n let-option=\"option\"\n let-i=\"index\"\n>\n @let inputId = (field.id || field.name) + '-' + i;\n <s-radiobutton\n class=\"radio-button-item\"\n [name]=\"field.name\"\n [value]=\"option.value\"\n [formControl]=\"formControl\"\n [inputId]=\"inputId\"\n [sTooltip]=\"field.tooltip\"\n [label]=\"option.label\"\n (focusedInput)=\"onFocus.next($event)\"\n (inputFocusLost)=\"field.onBlur ? field.onBlur($event) : null\"\n />\n</ng-template>\n","import { Component, Input } from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\nimport { SelectField } from '../../configurations/fields/select-field';\nimport { BaseFieldComponent, BaseFieldComponentConfig } from '../base-field-component';\n\n@Component({\n templateUrl: 'select-field.component.html',\n})\nexport class SelectFieldComponent extends BaseFieldComponent implements BaseFieldComponentConfig {\n @Input({ required: true })\n public field!: SelectField;\n\n @Input({ required: true })\n public formControl!: UntypedFormControl;\n}\n\n","<s-field-label [field]=\"field\"></s-field-label>\n\n<s-select\n [multiple]=\"field.multiple ?? false\"\n [filter]=\"field.filter ?? false\"\n [id]=\"field.id || field.name\"\n [options]=\"getFieldProperty(field.options)\"\n [placeholder]=\"field.placeholder || ' '\"\n [formControl]=\"formControl\"\n [sTooltip]=\"field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n [group]=\"field.group ?? false\"\n [showClear]=\"field.showClear ?? false\"\n [optionLabel]=\"field.optionLabel ?? 'label'\"\n [optionValue]=\"field.optionValue ?? 'value'\"\n (clicked)=\"field.onClick ? field.onClick($event) : null\"\n (onChange)=\"field.onChange ? field.onChange($event) : null\"\n [emptyMessage]=\"field.emptyMessage ?? null\"\n>\n</s-select>\n","/* eslint-disable @angular-eslint/no-output-on-prefix */\nimport { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { FieldType } from '../../configurations/field-type';\nimport { SliderField } from '../../configurations/fields/slider-field';\nimport { BaseFieldComponent, BaseFieldComponentConfig } from '../base-field-component';\n\n@Component({\n templateUrl: 'slider-field.component.html',\n styleUrls: ['./slider-field.component.scss'],\n})\nexport class SliderFieldComponent extends BaseFieldComponent implements OnInit, OnDestroy, BaseFieldComponentConfig {\n @Input({ required: true })\n public field!: SliderField;\n\n @Input({ required: true })\n public formControl!: UntypedFormControl;\n\n @Output()\n public onChange: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public onSlideEnd: EventEmitter<any> = new EventEmitter();\n\n private ngUnsubscribe = new Subject<void>();\n\n public ngOnInit() {\n const defaultValue = this.field?.range ? [this.field.min, this.field.max] : this.field.min;\n if (!this.isValid(this.formControl.value)) {\n this.formControl.setValue(this.field.defaultValue ?? defaultValue);\n }\n this.subscribeToFormControlEvents();\n }\n\n private subscribeToFormControlEvents() {\n this.onChange.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: FocusEvent) => {\n if (this.field.onChange) {\n this.field.onChange(event);\n }\n });\n\n this.onSlideEnd.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field.onSlideEnd) {\n this.field.onSlideEnd(event);\n }\n });\n }\n\n private isValid(value: any): boolean {\n if (this.field?.range) {\n return Array.isArray(value) && this.isValidRange(value);\n } else {\n return Number.isInteger(value) && this.isValidNoRange(value);\n }\n }\n\n private isValidRange(value: any[]): boolean {\n const [startValue, endValue] = value;\n return startValue >= this.field?.min && startValue <= this.field?.max && endValue >= this.field?.min && endValue <= this.field?.max;\n }\n\n private isValidNoRange(value: number): boolean {\n return value >= this.field.min && value <= this.field.max;\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public get fieldType() {\n return FieldType;\n }\n\n private getRangeLabel(): string {\n let [value0, value1] = this.formControl.value ?? [0, 0];\n const prefix = this.field.prefix ?? '';\n const suffix = this.field.suffix ?? '';\n const separator = this.field.rangeSeparator ?? ' - ';\n\n if (!value0 || value0 < this.field.min) {\n value0 = this.field.min;\n }\n\n if (!value1 || value1 > this.field.max) {\n value1 = this.field.max;\n }\n\n return `${prefix}${value0}${suffix}${separator}${prefix}${value1}${suffix}`;\n }\n\n private getNonRangeLabel(): string {\n let value = this.formControl?.value;\n const prefix = this.field.prefix ?? '';\n const suffix = this.field.suffix ?? '';\n\n if (!value || value < this.field.min) {\n value = this.field.min;\n }\n\n if (value > this.field.max) {\n value = this.field.max;\n }\n\n return `${prefix}${value}${suffix}`;\n }\n\n public get label() {\n return this.field.range ? this.getRangeLabel() : this.getNonRangeLabel();\n }\n}\n","<s-field-label [field]=\"field\"></s-field-label>\n\n<div class=\"slider-group\">\n <div class=\"slider-label\">\n <span>{{ label }}</span>\n </div>\n <s-slider\n #slider\n [id]=\"field.id || field.name\"\n [formControl]=\"formControl\"\n [multiple]=\"field.range ? field.range : slider.multiple\"\n [min]=\"field.min\"\n [max]=\"field.max\"\n [step]=\"field.step\"\n (valueChange)=\"field.onChange ? field.onChange($event) : null\"\n >\n </s-slider>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { StarRatingField } from '../../configurations/fields/star-rating-field';\n\n@Component({\n selector: 's-star-rating-field',\n templateUrl: './star-rating-field.component.html'\n})\nexport class StarRatingFieldComponent {\n @Input() field!: StarRatingField\n @Input() formControl!: FormControl;\n\n onValueChange(newValue: number) {\n if (this.field.valueChange) {\n this.field.valueChange(newValue);\n }\n }\n}\n","<s-field-label [field]=\"field\"/>\n\n<s-star-rating [justifyContent]=\"field.justifyContent\" [formControl]=\"formControl\" (selectedStarChange)=\"onValueChange($event)\">\n","import { Component, Input } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { TextAreaIAField } from '../../configurations/fields/text-area-ia-field';\n\n@Component({\n templateUrl: './text-area-ia-field.component.html',\n styleUrls: ['./text-area-ia-field.component.scss'],\n})\nexport class TextAreaIAFieldComponent {\n @Input({ required: true })\n public field!: TextAreaIAField;\n\n @Input({ required: true })\n public formControl!: FormControl;\n}\n\n","@if (textAreaIA.textArea()?.renderTextArea) {\n <s-field-label\n [field]=\"field\"\n [fieldContainerRef]=\"textAreaIA.textArea()?.textAreaElement?.nativeElement\"\n ></s-field-label>\n}\n\n<s-text-area-ia\n #textAreaIA\n [rows]=\"field.rows ?? 5\"\n [formControl]=\"formControl\"\n [id]=\"field.name\"\n [readonly]=\"field.readonly ? field.readonly() : false\"\n [prompt]=\"field.prompt ?? ''\"\n [placeholder]=\"field.placeholder ?? ''\"\n [label]=\"field.label\"\n [speechRecognition]=\"field.speechRecognition\"\n [keepContext]=\"field.keepContext\"\n [speechRecognitionPlaceholder]=\"field.speechRecognitionPlaceholder\"\n [maxLength]=\"field.maxLength\"\n></s-text-area-ia>\n","import { AfterViewInit, ChangeDetectorRef, Component, Input } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\nimport { TextAreaField } from '../../configurations/fields/text-area-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\n\n@Component({\n templateUrl: 'text-area-field.component.html',\n styleUrl: 'text-area-field.component.scss',\n})\nexport class TextAreaFieldComponent implements BaseFieldComponentConfig, AfterViewInit {\n @Input({ required: true })\n public field!: TextAreaField;\n\n @Input({ required: true })\n public formControl!: FormControl;\n\n constructor(private readonly changeDetectorRef: ChangeDetectorRef) { }\n\n public ngAfterViewInit(): void {\n this.changeDetectorRef.detectChanges();\n }\n}\n\n","@if (textArea.renderTextArea) {\n <s-field-label [field]=\"field\"\n [fieldContainerRef]=\"textArea.textAreaElement.nativeElement\"></s-field-label>\n}\n\n<s-textarea\n #textArea\n [inputId]=\"(field.id || field.name)\"\n [rows]=\"field.rows ?? textArea.rows\"\n [formControl]=\"formControl\"\n [inputStyle]=\"field.style ?? {}\"\n [readOnly]=\"field.readonly ? field.readonly() : false\"\n [keyFilter]=\"field.keyFilter\"\n [placeholder]=\"field.placeholder ?? ''\"\n [keepContext]=\"field.keepContext\"\n [speechRecognitionPlaceholder]=\"field.speechRecognitionPlaceholder\"\n [maxLength]=\"field.maxLength\"\n [speechRecognition]=\"field.speechRecognition\">\n</s-textarea>\n\n","/* eslint-disable @angular-eslint/no-output-on-prefix */\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { TextField } from '../../configurations/fields/text-field';\nimport { BaseFieldComponent, BaseFieldComponentConfig } from '../base-field-component';\nimport { InputMask } from 'primeng/inputmask';\n\n@Component({\n templateUrl: 'text-field.component.html',\n styleUrls: ['./text-field.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class TextFieldComponent\n extends BaseFieldComponent\n implements OnInit, AfterViewInit, OnDestroy, BaseFieldComponentConfig {\n @Input({ required: true })\n public field!: TextField;\n\n @Input({ required: true })\n public formControl!: FormControl;\n\n @Output()\n public onInput: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public onFocus: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public onComplete: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('inputRef')\n public inputRef: ElementRef | InputMask | null = null;\n\n private ngUnsubscribe = new Subject<void>();\n\n constructor(private readonly changeDetectorRef: ChangeDetectorRef) {\n super();\n }\n\n public ngOnInit() {\n this.onFocus.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: FocusEvent) => {\n if (this.field.onFocus) this.field.onFocus(event);\n });\n this.onInput.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field.onInput) this.field.onInput(event);\n });\n this.onComplete.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field.onComplete) this.field.onComplete(event);\n });\n }\n\n public ngAfterViewInit(): void {\n this.changeDetectorRef.detectChanges();\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n getCharacterPattern(): string {\n return typeof this.field.characterPattern === 'function'\n ? this.field.characterPattern()\n : (this.field.characterPattern as string);\n }\n\n getUnmask(): boolean {\n return typeof this.field.unmask === 'function' ? this.field.unmask() : (this.field.unmask as boolean);\n }\n\n get inputElement() {\n if (this.inputRef instanceof InputMask) {\n return this.inputRef?.inputViewChild?.nativeElement;\n } else {\n return this.inputRef?.nativeElement;\n }\n }\n}\n","@if (inputElement) {\n <s-field-label\n [field]=\"field\"\n [fieldContainerRef]=\"inputElement\"\n />\n}\n\n@if (field.mask) {\n <p-inputMask\n #inputRef\n [type]=\"field.inputType || 'text'\"\n [inputId]=\"field.id || field.name\"\n [name]=\"field.name\"\n [mask]=\"isFunction(field.mask) ? field.mask() : field.mask\"\n [characterPattern]=\"getCharacterPattern()\"\n [unmask]=\"getUnmask()\"\n [placeholder]=\"field.placeholder\"\n slotChar=\"_\"\n [sTooltip]=\"field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n styleClass=\"mousetrap\"\n (onBlur)=\"field.onBlur ? field.onBlur($event) : null\"\n (onFocus)=\"onFocus.next($event)\"\n (onComplete)=\"onComplete.next($event)\"\n (onInput)=\"onInput.next($event)\"\n [formControl]=\"formControl\"\n [readonly]=\"field.readonly ? field.readonly() : false\"\n [autocomplete]=\"field.browserAutocomplete ? 'on' : 'off'\"\n\n >\n </p-inputMask>\n} @else {\n <div class=\"ui-inputgroup\">\n @if (field.leftAddon) {\n @if (field.leftAddon.callback) {\n <span class=\"addon-button addon-button--left\">\n <s-button\n [label]=\"field.leftAddon.label\"\n [iconClass]=\"field.leftAddon.icon\"\n [priority]=\"field.leftAddon.priority\"\n [disabled]=\"fieldPropertyIsDisabled(field.leftAddon)\"\n (clicked)=\"field.leftAddon.callback()\"\n >\n </s-button>\n </span>\n }\n @if (!field.leftAddon.callback) {\n <span class=\"ui-inputgroup-addon\">\n @if (field.leftAddon.label) {\n <span>{{ field.leftAddon.label }}</span>\n } @else if (!field.leftAddon.label) {\n <span [ngClass]=\"field.leftAddon.icon\"></span>\n }\n </span>\n }\n }\n\n <ng-container *ngTemplateOutlet=\"field.keyFilter ? inputKeyFilter : input\"></ng-container>\n\n @if (field.rightAddon) {\n @if (field.rightAddon.callback) {\n <s-button\n [label]=\"field.rightAddon.label\"\n [iconClass]=\"field.rightAddon.icon\"\n [priority]=\"field.rightAddon.priority\"\n [disabled]=\"fieldPropertyIsDisabled(field.rightAddon)\"\n (clicked)=\"field.rightAddon.callback()\"\n >\n </s-button>\n } @else if (field.rightAddon.callback) {\n <span class=\"ui-inputgroup-addon\">\n @if (field.rightAddon.label) {\n <span>{{ field.rightAddon.label }}</span>\n } @else if (!field.rightAddon.label) {\n <span [ngClass]=\"field.rightAddon.icon\"></span>\n }\n </span>\n }\n }\n </div>\n}\n<ng-template #input>\n <input\n #inputRef\n [type]=\"field.inputType || 'text'\"\n [id]=\"field.id || field.name\"\n [name]=\"field.name\"\n [sTooltip]=\"field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"field.placeholder\"\n [showDelay]=\"500\"\n [maxLength]=\"field.maxLength\"\n pInputText\n [autocomplete]=\"field.browserAutocomplete ? 'on' : 'off'\"\n [ngClass]=\"'mousetrap'\"\n (blur)=\"field.onBlur ? field.onBlur($event) : null\"\n (focus)=\"onFocus.next($event)\"\n (input)=\"onInput.next($event)\"\n [formControl]=\"formControl\"\n [ngStyle]=\"field.style\"\n [readOnly]=\"field.readonly ? field.readonly() : false\"\n />\n</ng-template>\n<ng-template #inputKeyFilter>\n <input\n #inputText\n [type]=\"field.inputType || 'text'\"\n [id]=\"field.id || field.name\"\n [name]=\"field.name\"\n [sTooltip]=\"field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"field.placeholder\"\n [showDelay]=\"500\"\n [maxLength]=\"field.maxLength\"\n pInputText\n [autocomplete]=\"field.browserAutocomplete ? 'on' : 'off'\"\n [ngClass]=\"'mousetrap'\"\n (blur)=\"field.onBlur ? field.onBlur($event) : null\"\n (focus)=\"onFocus.next($event)\"\n (input)=\"onInput.next($event)\"\n [pKeyFilter]=\"field.keyFilter\"\n [formControl]=\"formControl\"\n [ngStyle]=\"field.style\"\n [readOnly]=\"field.readonly ? field.readonly() : false\"\n />\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { ButtonModule } from '@seniorsistemas/angular-components/button';\nimport { ControlErrorsModule } from '@seniorsistemas/angular-components/control-errors';\nimport { InfoSignModule } from '@seniorsistemas/angular-components/info-sign';\nimport { DynamicFormComponent } from './dynamic-form.component';\nimport { DynamicFormDirective } from './dynamic-form.directive';\n\nimport { TranslateModule } from '@ngx-translate/core';\nimport { BadgeModule } from '@seniorsistemas/angular-components/badge';\nimport { EmptyStateModule } from '@seniorsistemas/angular-components/empty-state';\nimport { LoadingStateModule } from '@seniorsistemas/angular-components/loading-state';\nimport { LocaleModule } from '@seniorsistemas/angular-components/locale';\nimport { MaskFormatterModule } from '@seniorsistemas/angular-components/mask';\nimport { TableHeaderCheckboxModule } from '@seniorsistemas/angular-components/table-header';\nimport { TooltipModule } from '@seniorsistemas/angular-components/tooltip';\n\nimport { BignumberInputModule } from '@seniorsistemas/angular-components/bignumber-input';\nimport { CalendarMaskModule } from '@seniorsistemas/angular-components/calendar-mask';\nimport { ChipsModule } from '@seniorsistemas/angular-components/chips';\nimport { CountryPhonePickerModule } from '@seniorsistemas/angular-components/country-phone-picker';\nimport { FileUploadModule } from '@seniorsistemas/angular-components/file-upload';\nimport { LocalizedNumberInputModule } from '@seniorsistemas/angular-components/localized-number-input';\nimport { MouseEventsModule } from '@seniorsistemas/angular-components/mouse-events';\nimport { SwitchModule } from '@seniorsistemas/angular-components/switch';\nimport { TextAreaIAModule } from '@seniorsistemas/angular-components/text-area-ia';\nimport { HotkeyModule } from 'angular2-hotkeys';\nimport { AutoCompleteModule } from 'primeng/autocomplete';\nimport { ButtonModule as PrimeButtonModule } from 'primeng/button';\nimport { DatePickerModule } from 'primeng/datepicker';\nimport { InputMaskModule } from 'primeng/inputmask';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { KeyFilterModule } from 'primeng/keyfilter';\nimport { MultiSelectModule } from 'primeng/multiselect';\nimport { PanelModule } from 'primeng/panel';\nimport { TableModule as PrimeNGTableModule } from 'primeng/table';\nimport { FieldLabelComponent } from './components/field-label/field-label.component';\nimport { RowComponent } from './components/grid/row/row.component';\nimport { LookupComponent } from './components/lookup/lookup.component';\nimport { ProfilePictureFieldComponent } from './form-field/fields/profile-picture/profile-picture-field.component';\n\nimport { CheckboxListModule } from '@seniorsistemas/angular-components/checkbox-list';\nimport { FieldsetModule } from '@seniorsistemas/angular-components/fieldset';\nimport { NumberInputModule } from '@seniorsistemas/angular-components/number-input';\nimport { PasswordStrengthModule } from '@seniorsistemas/angular-components/password-strength';\nimport { ProfilePicturePickerModule } from '@seniorsistemas/angular-components/profile-picture-picker';\nimport { SliderModule } from '@seniorsistemas/angular-components/slider';\nimport { StarRatingComponent } from '@seniorsistemas/angular-components/star-rating';\nimport { TextAreaModule } from '@seniorsistemas/angular-components/text-area';\nimport { EditorModule } from 'primeng/editor';\nimport { FieldsetComponent } from './components/structure/fieldset/fieldset.component';\nimport { SectionComponent } from './components/structure/section/section.component';\nimport { AutocompleteFieldComponent } from './form-field/fields/autocomplete/autocomplete-field.component';\nimport { BignumberFieldComponent } from './form-field/fields/bignumber/bignumber-field.component';\nimport { BooleanFieldComponent } from './form-field/fields/boolean/boolean-radio-field/boolean-field.component';\nimport { BooleanSwitchFieldComponent } from './form-field/fields/boolean/boolean-switch-field/boolean-switch-field.component';\nimport { ButtonFieldComponent } from './form-field/fields/button-field/button-field.component';\nimport { CalendarFieldComponent } from './form-field/fields/calendar/calendar-field.component';\nimport { CheckboxFieldComponent } from './form-field/fields/checkbox/checkbox-field.component';\nimport { ChipsFieldComponent } from './form-field/fields/chips/chips-field.component';\nimport { CountryPhonePickerFieldComponent } from './form-field/fields/country-phone-picker/country-phone-picker-field.component';\nimport { CurrencyFieldComponent } from './form-field/fields/currency/currency-field.component';\nimport { EditorFieldComponent } from './form-field/fields/editor/editor-field.component';\nimport { FileUploadFieldComponent } from './form-field/fields/file-upload/file-upload-field.component';\nimport { LookupFieldComponent } from './form-field/fields/lookup/lookup-field.component';\nimport { NumberFieldComponent } from './form-field/fields/number/number-field.component';\nimport { PasswordFieldComponent } from './form-field/fields/password/password-field.component';\nimport { RadioButtonFieldComponent } from './form-field/fields/radio-button/radio-button-field.component';\nimport { SelectFieldComponent } from './form-field/fields/select/select-field.component';\nimport { SliderFieldComponent } from './form-field/fields/slider/slider-field.component';\nimport { StarRatingFieldComponent } from './form-field/fields/star-rating/star-rating-field.component';\nimport { TextAreaIAFieldComponent } from './form-field/fields/text-area-ia/text-area-ia-field.component';\nimport { TextAreaFieldComponent } from './form-field/fields/text-area/text-area-field.component';\nimport { TextFieldComponent } from './form-field/fields/text/text-field.component';\nimport { DynamicFormCacheService } from './services/dynamic-form-cache';\n\nimport { DialogComponent } from '@seniorsistemas/angular-components/dialog';\nimport { RadioButtonComponent } from '@seniorsistemas/angular-components/radio-button';\nimport { SelectComponent } from '@seniorsistemas/angular-components/select';\nimport { TemplateModule } from '@seniorsistemas/angular-components/template';\n\n@NgModule({\n imports: [\n AutoCompleteModule,\n BadgeModule,\n BignumberInputModule,\n ButtonModule,\n CalendarMaskModule,\n ChipsModule,\n CommonModule,\n ControlErrorsModule,\n CountryPhonePickerModule,\n DialogComponent,\n EmptyStateModule,\n FormsModule,\n HotkeyModule,\n InputMaskModule,\n InputTextModule,\n KeyFilterModule,\n LoadingStateModule,\n LocaleModule,\n LocalizedNumberInputModule,\n PanelModule,\n PrimeButtonModule,\n PrimeNGTableModule,\n ReactiveFormsModule,\n TooltipModule,\n FieldsetModule,\n TableHeaderCheckboxModule,\n FileUploadModule,\n InfoSignModule,\n MaskFormatterModule,\n HotkeyModule.forRoot(),\n MouseEventsModule,\n SwitchModule,\n PasswordStrengthModule,\n SliderModule,\n DatePickerModule,\n TranslateModule.forChild(),\n MultiSelectModule,\n ProfilePicturePickerModule,\n NumberInputModule,\n EditorModule,\n CheckboxListModule,\n TextAreaIAModule,\n TextAreaModule,\n StarRatingComponent,\n SelectComponent,\n TemplateModule,\n RadioButtonComponent,\n ],\n declarations: [\n FieldLabelComponent,\n FileUploadFieldComponent,\n AutocompleteFieldComponent,\n BooleanFieldComponent,\n BooleanSwitchFieldComponent,\n CalendarFieldComponent,\n ChipsFieldComponent,\n CountryPhonePickerFieldComponent,\n DynamicFormComponent,\n DynamicFormDirective,\n FieldsetComponent,\n LookupComponent,\n LookupFieldComponent,\n RadioButtonFieldComponent,\n RowComponent,\n SectionComponent,\n SelectFieldComponent,\n SliderFieldComponent,\n TextAreaFieldComponent,\n TextAreaIAFieldComponent,\n ButtonFieldComponent,\n TextFieldComponent,\n BignumberFieldComponent,\n ProfilePictureFieldComponent,\n PasswordFieldComponent,\n NumberFieldComponent,\n CurrencyFieldComponent,\n EditorFieldComponent,\n CheckboxFieldComponent,\n StarRatingFieldComponent,\n ],\n exports: [DynamicFormComponent, DynamicFormDirective, LookupComponent],\n})\nexport class DynamicFormModule {\n constructor(dynamicFormCache: DynamicFormCacheService) {\n dynamicFormCache.setCache();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["BooleanOptionsLabel","i1","i2.DynamicFormDirective","i2","i4","i5","i6.DynamicFormDirective","i3","i6","i7","i10","i13","i17.DynamicFormComponent","i18","i3.FieldLabelComponent","i1.DynamicFormDirective","i4.LookupComponent","i8","i9.FieldLabelComponent","i5.FieldLabelComponent","i4.FieldLabelComponent","i6.FieldLabelComponent","i8.FieldLabelComponent","i9","i10.FieldLabelComponent","i7.FieldLabelComponent","i1.DynamicFormCacheService","PrimeButtonModule","PrimeNGTableModule"],"mappings":"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"}
|