UNPKG

@synergy-design-system/angular

Version:
1 lines 31.3 kB
{"version":3,"file":"synergy-design-system-angular-components-input.mjs","sources":["../../components/input/input.component.ts","../../components/input/synergy-design-system-angular-components-input.ts"],"sourcesContent":["// ---------------------------------------------------------------------\n// 🔒 AUTOGENERATED @synergy-design-system/angular wrappers for @synergy-design-system/components\n// Please do not edit this file directly!\n// It will get recreated when running pnpm build.\n// ---------------------------------------------------------------------\nimport {\n Component,\n ElementRef,\n NgZone,\n Input,\n Output,\n EventEmitter,\n AfterContentInit,\n} from '@angular/core';\nimport type { SynInput } from '@synergy-design-system/components';\nimport type { SynBlurEvent } from '@synergy-design-system/components';\nimport type { SynChangeEvent } from '@synergy-design-system/components';\nimport type { SynClearEvent } from '@synergy-design-system/components';\nimport type { SynFocusEvent } from '@synergy-design-system/components';\nimport type { SynInputEvent } from '@synergy-design-system/components';\nimport type { SynInvalidEvent } from '@synergy-design-system/components';\nimport type { SynClampEvent } from '@synergy-design-system/components';\nimport '@synergy-design-system/components/components/input/input.js';\n\n/**\n * @summary Inputs collect data from the user.\n * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-input--docs\n * @status stable\n * @since 2.0\n *\n * @dependency syn-icon\n * @dependency syn-divider\n *\n * @slot label - The input's label. Alternatively, you can use the `label` attribute.\n * @slot prefix - Used to prepend a presentational icon or similar element to the input.\n * @slot suffix - Used to append a presentational icon or similar element to the input.\n * @slot clear-icon - An icon to use in lieu of the default clear icon.\n * @slot show-password-icon - An icon to use in lieu of the default show password icon.\n * @slot hide-password-icon - An icon to use in lieu of the default hide password icon.\n * @slot help-text - Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.\n * @slot increment-number-stepper - An icon to use in lieu of the default increment number stepper icon.\n * @slot decrement-number-stepper - An icon to use in lieu of the default decrement number stepper icon.\n *\n * @event syn-blur - Emitted when the control loses focus.\n * @event syn-change - Emitted when an alteration to the control's value is committed by the user.\n * @event syn-clear - Emitted when the clear button is activated.\n * @event syn-focus - Emitted when the control gains focus.\n * @event syn-input - Emitted when the control receives input.\n * @event syn-invalid - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n * @event syn-clamp - Emitted if the numeric strategy allows autoClamp and the value is clamped to the min or max attribute.\n *\n * @csspart form-control - The form control that wraps the label, input, and help text.\n * @csspart form-control-label - The label's wrapper.\n * @csspart form-control-input - The input's wrapper.\n * @csspart form-control-help-text - The help text's wrapper.\n * @csspart base - The component's base wrapper.\n * @csspart input - The internal `<input>` control.\n * @csspart prefix - The container that wraps the prefix.\n * @csspart clear-button - The clear button.\n * @csspart password-toggle-button - The password toggle button.\n * @csspart suffix - The container that wraps the suffix.\n * @csspart stepper - The container that wraps the number stepper.\n * @csspart decrement-number-stepper - The decrement number stepper button.\n * @csspart increment-number-stepper - The increment number stepper button.\n * @csspart divider - The divider between the increment and decrement number stepper buttons.\n *\n * @cssproperty --syn-input-autofill-shadow - The shadow to apply when the input is autofilled.\n * @cssproperty --syn-input-autofill-readonly-shadow - The shadow to apply when the input is readonly and autofilled.\n * @cssproperty --syn-input-autofill-text-fill-color - The text fill color to apply when the input is autofilled.\n * @cssproperty --syn-input-autofill-caret-color - The caret color to apply when the input is autofilled.\n */\n@Component({\n selector: 'syn-input',\n standalone: true,\n template: '<ng-content></ng-content>',\n})\nexport class SynInputComponent {\n public nativeElement: SynInput;\n private _ngZone: NgZone;\n private modelSignal = new AbortController();\n\n constructor(e: ElementRef, ngZone: NgZone) {\n this.nativeElement = e.nativeElement;\n this._ngZone = ngZone;\n this.nativeElement.addEventListener('syn-blur', (e: SynBlurEvent) => {\n this.synBlurEvent.emit(e);\n });\n this.nativeElement.addEventListener('syn-change', (e: SynChangeEvent) => {\n this.synChangeEvent.emit(e);\n });\n this.nativeElement.addEventListener('syn-clear', (e: SynClearEvent) => {\n this.synClearEvent.emit(e);\n });\n this.nativeElement.addEventListener('syn-focus', (e: SynFocusEvent) => {\n this.synFocusEvent.emit(e);\n });\n this.nativeElement.addEventListener('syn-input', (e: SynInputEvent) => {\n this.synInputEvent.emit(e);\n });\n this.nativeElement.addEventListener('syn-invalid', (e: SynInvalidEvent) => {\n this.synInvalidEvent.emit(e);\n });\n this.nativeElement.addEventListener('syn-clamp', (e: SynClampEvent) => {\n this.synClampEvent.emit(e);\n });\n this.ngModelUpdateOn = 'syn-input';\n }\n\n /**\n * The event that will trigger the ngModel update.\n * By default, this is set to \"syn-input\".\n */\n @Input()\n set ngModelUpdateOn(v: keyof HTMLElementEventMap) {\n this.modelSignal.abort();\n this.modelSignal = new AbortController();\n const option = v || 'syn-input';\n this.nativeElement.addEventListener(\n option,\n () => {\n this.valueChange.emit(this.value);\n },\n {\n signal: this.modelSignal.signal,\n },\n );\n }\n get ngModelUpdateOn(): keyof HTMLElementEventMap {\n return this.ngModelUpdateOn;\n }\n\n @Input()\n set title(v: SynInput['title']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.title = v));\n }\n get title(): SynInput['title'] {\n return this.nativeElement.title;\n }\n\n /**\n* The type of input.\n* Works the same as a native `<input>` element, but only a subset of types are supported.\n* Defaults\nto `text`.\n */\n @Input()\n set type(v: SynInput['type']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.type = v));\n }\n get type(): SynInput['type'] {\n return this.nativeElement.type;\n }\n\n /**\n * The name of the input, submitted as a name/value pair with form data.\n */\n @Input()\n set name(v: SynInput['name']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.name = v));\n }\n get name(): SynInput['name'] {\n return this.nativeElement.name;\n }\n\n /**\n * The current value of the input, submitted as a name/value pair with form data.\n */\n @Input()\n set value(v: SynInput['value']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.value = v));\n }\n get value(): SynInput['value'] {\n return this.nativeElement.value;\n }\n\n /**\n * The input's size.\n */\n @Input()\n set size(v: SynInput['size']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.size = v));\n }\n get size(): SynInput['size'] {\n return this.nativeElement.size;\n }\n\n /**\n * The input's label.\n * If you need to display HTML, use the `label` slot instead.\n */\n @Input()\n set label(v: SynInput['label']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.label = v));\n }\n get label(): SynInput['label'] {\n return this.nativeElement.label;\n }\n\n /**\n * The input's help text.\n * If you need to display HTML, use the `help-text` slot instead.\n */\n @Input()\n set helpText(v: SynInput['helpText']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.helpText = v));\n }\n get helpText(): SynInput['helpText'] {\n return this.nativeElement.helpText;\n }\n\n /**\n * Adds a clear button when the input is not empty.\n */\n @Input()\n set clearable(v: '' | SynInput['clearable']) {\n this._ngZone.runOutsideAngular(\n () => (this.nativeElement.clearable = v === '' || v),\n );\n }\n get clearable(): SynInput['clearable'] {\n return this.nativeElement.clearable;\n }\n\n /**\n * Disables the input.\n */\n @Input()\n set disabled(v: '' | SynInput['disabled']) {\n this._ngZone.runOutsideAngular(\n () => (this.nativeElement.disabled = v === '' || v),\n );\n }\n get disabled(): SynInput['disabled'] {\n return this.nativeElement.disabled;\n }\n\n /**\n * Placeholder text to show as a hint when the input is empty.\n */\n @Input()\n set placeholder(v: SynInput['placeholder']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.placeholder = v));\n }\n get placeholder(): SynInput['placeholder'] {\n return this.nativeElement.placeholder;\n }\n\n /**\n * Makes the input readonly.\n */\n @Input()\n set readonly(v: '' | SynInput['readonly']) {\n this._ngZone.runOutsideAngular(\n () => (this.nativeElement.readonly = v === '' || v),\n );\n }\n get readonly(): SynInput['readonly'] {\n return this.nativeElement.readonly;\n }\n\n /**\n * Adds a button to toggle the password's visibility.\n * Only applies to password types.\n */\n @Input()\n set passwordToggle(v: '' | SynInput['passwordToggle']) {\n this._ngZone.runOutsideAngular(\n () => (this.nativeElement.passwordToggle = v === '' || v),\n );\n }\n get passwordToggle(): SynInput['passwordToggle'] {\n return this.nativeElement.passwordToggle;\n }\n\n /**\n * Determines whether or not the password is currently visible.\n * Only applies to password input types.\n */\n @Input()\n set passwordVisible(v: '' | SynInput['passwordVisible']) {\n this._ngZone.runOutsideAngular(\n () => (this.nativeElement.passwordVisible = v === '' || v),\n );\n }\n get passwordVisible(): SynInput['passwordVisible'] {\n return this.nativeElement.passwordVisible;\n }\n\n /**\n * Hides the increment/decrement spin buttons for number inputs.\n */\n @Input()\n set noSpinButtons(v: '' | SynInput['noSpinButtons']) {\n this._ngZone.runOutsideAngular(\n () => (this.nativeElement.noSpinButtons = v === '' || v),\n );\n }\n get noSpinButtons(): SynInput['noSpinButtons'] {\n return this.nativeElement.noSpinButtons;\n }\n\n /**\n* By default, form controls are associated with the nearest containing `<form>` element.\n* This attribute allows you\nto place the form control outside of a form and associate it with the form that has this `id`.\n* The form must be in\nthe same document or shadow root for this to work.\n */\n @Input()\n set form(v: SynInput['form']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.form = v));\n }\n get form(): SynInput['form'] {\n return this.nativeElement.form;\n }\n\n /**\n * Makes the input a required field.\n */\n @Input()\n set required(v: '' | SynInput['required']) {\n this._ngZone.runOutsideAngular(\n () => (this.nativeElement.required = v === '' || v),\n );\n }\n get required(): SynInput['required'] {\n return this.nativeElement.required;\n }\n\n /**\n * A regular expression pattern to validate input against.\n */\n @Input()\n set pattern(v: SynInput['pattern']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.pattern = v));\n }\n get pattern(): SynInput['pattern'] {\n return this.nativeElement.pattern;\n }\n\n /**\n * The minimum length of input that will be considered valid.\n */\n @Input()\n set minlength(v: SynInput['minlength']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.minlength = v));\n }\n get minlength(): SynInput['minlength'] {\n return this.nativeElement.minlength;\n }\n\n /**\n * The maximum length of input that will be considered valid.\n */\n @Input()\n set maxlength(v: SynInput['maxlength']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.maxlength = v));\n }\n get maxlength(): SynInput['maxlength'] {\n return this.nativeElement.maxlength;\n }\n\n /**\n * The input's minimum value.\n * Only applies to date and number input types.\n */\n @Input()\n set min(v: SynInput['min']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.min = v));\n }\n get min(): SynInput['min'] {\n return this.nativeElement.min;\n }\n\n /**\n * The input's maximum value.\n * Only applies to date and number input types.\n */\n @Input()\n set max(v: SynInput['max']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.max = v));\n }\n get max(): SynInput['max'] {\n return this.nativeElement.max;\n }\n\n /**\n* Specifies the granularity that the value must adhere to, or the special value `any` which means no stepping is\nimplied, allowing any numeric value.\n* Only applies to date and number input types.\n */\n @Input()\n set step(v: SynInput['step']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.step = v));\n }\n get step(): SynInput['step'] {\n return this.nativeElement.step;\n }\n\n /**\n * Controls whether and how text input is automatically capitalized as it is entered by the user.\n */\n @Input()\n set autocapitalize(v: SynInput['autocapitalize']) {\n this._ngZone.runOutsideAngular(\n () => (this.nativeElement.autocapitalize = v),\n );\n }\n get autocapitalize(): SynInput['autocapitalize'] {\n return this.nativeElement.autocapitalize;\n }\n\n /**\n * Indicates whether the browser's autocorrect feature is on or off.\n */\n @Input()\n set autocorrect(v: SynInput['autocorrect']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.autocorrect = v));\n }\n get autocorrect(): SynInput['autocorrect'] {\n return this.nativeElement.autocorrect;\n }\n\n /**\n* Specifies what permission the browser has to provide assistance in filling out form field values.\n* Refer to\n[this page on MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) for available values.\n */\n @Input()\n set autocomplete(v: SynInput['autocomplete']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.autocomplete = v));\n }\n get autocomplete(): SynInput['autocomplete'] {\n return this.nativeElement.autocomplete;\n }\n\n /**\n * Indicates that the input should receive focus on page load.\n */\n @Input()\n set autofocus(v: '' | SynInput['autofocus']) {\n this._ngZone.runOutsideAngular(\n () => (this.nativeElement.autofocus = v === '' || v),\n );\n }\n get autofocus(): SynInput['autofocus'] {\n return this.nativeElement.autofocus;\n }\n\n /**\n * Used to customize the label or icon of the Enter key on virtual keyboards.\n */\n @Input()\n set enterkeyhint(v: SynInput['enterkeyhint']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.enterkeyhint = v));\n }\n get enterkeyhint(): SynInput['enterkeyhint'] {\n return this.nativeElement.enterkeyhint;\n }\n\n /**\n * Enables spell checking on the input.\n */\n @Input()\n set spellcheck(v: '' | SynInput['spellcheck']) {\n this._ngZone.runOutsideAngular(\n () => (this.nativeElement.spellcheck = v === '' || v),\n );\n }\n get spellcheck(): SynInput['spellcheck'] {\n return this.nativeElement.spellcheck;\n }\n\n /**\n* Tells the browser what type of data will be entered by the user, allowing it to display the appropriate virtual\nkeyboard on supportive devices.\n */\n @Input()\n set inputmode(v: SynInput['inputmode']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.inputmode = v));\n }\n get inputmode(): SynInput['inputmode'] {\n return this.nativeElement.inputmode;\n }\n\n /**\n* The minimal amount of fraction digits to use for numeric values.\nUsed to format the number when the input type is `number`.\n */\n @Input()\n set minFractionDigits(v: SynInput['minFractionDigits']) {\n this._ngZone.runOutsideAngular(\n () => (this.nativeElement.minFractionDigits = v),\n );\n }\n get minFractionDigits(): SynInput['minFractionDigits'] {\n return this.nativeElement.minFractionDigits;\n }\n\n /**\n* The maximal amount of fraction digits to use for numeric values.\nUsed to format the number when the input type is `number`.\n */\n @Input()\n set maxFractionDigits(v: SynInput['maxFractionDigits']) {\n this._ngZone.runOutsideAngular(\n () => (this.nativeElement.maxFractionDigits = v),\n );\n }\n get maxFractionDigits(): SynInput['maxFractionDigits'] {\n return this.nativeElement.maxFractionDigits;\n }\n\n /**\n* Defines the strategy for handling numbers in the numeric input.\nThis is used to determine how the input behaves when the user interacts with it.\n\nIncludes the following configuration options:\n\n- **autoClamp**: If true, the input will clamp the value to the min and max attributes.\n- **noStepAlign**: If true, the input will not align the value to the step attribute.\n- **noStepValidation**: If true, the input will not validate the value against the step attribute.\n\nYou may provide this as one of the following values:\n\n- 'native': Uses the native browser implementation.\n- 'modern': Uses a more intuitive implementation:\n - Values are clamped to the nearest min or max value.\n - Stepping is inclusive to the provided min and max values.\n - Provided stepping is no longer used in validation.\n- An object that matches the `NumericStrategy` type.\n* Note this can only be set via `property`, not as an `attribute`!\n */\n @Input()\n set numericStrategy(v: SynInput['numericStrategy']) {\n this._ngZone.runOutsideAngular(\n () => (this.nativeElement.numericStrategy = v),\n );\n }\n get numericStrategy(): SynInput['numericStrategy'] {\n return this.nativeElement.numericStrategy;\n }\n\n /**\n* Optional options that should be passed to the `NumberFormatter` when formatting the value.\nThis is used to format the number when the input type is `number`.\nNote this can only be set via `property`, not as an `attribute`!\n */\n @Input()\n set numberFormatterOptions(v: SynInput['numberFormatterOptions']) {\n this._ngZone.runOutsideAngular(\n () => (this.nativeElement.numberFormatterOptions = v),\n );\n }\n get numberFormatterOptions(): SynInput['numberFormatterOptions'] {\n return this.nativeElement.numberFormatterOptions;\n }\n\n /**\n * Emitted when the control loses focus.\n */\n @Output() synBlurEvent = new EventEmitter<SynBlurEvent>();\n\n /**\n * Emitted when an alteration to the control's value is committed by the user.\n */\n @Output() synChangeEvent = new EventEmitter<SynChangeEvent>();\n\n /**\n * Emitted when the clear button is activated.\n */\n @Output() synClearEvent = new EventEmitter<SynClearEvent>();\n\n /**\n * Emitted when the control gains focus.\n */\n @Output() synFocusEvent = new EventEmitter<SynFocusEvent>();\n\n /**\n * Emitted when the control receives input.\n */\n @Output() synInputEvent = new EventEmitter<SynInputEvent>();\n\n /**\n * Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n */\n @Output() synInvalidEvent = new EventEmitter<SynInvalidEvent>();\n\n /**\n * Emitted if the numeric strategy allows autoClamp and the value is clamped to the min or max attribute.\n */\n @Output() synClampEvent = new EventEmitter<SynClampEvent>();\n\n /**\n * Support for two way data binding\n */\n @Output() valueChange = new EventEmitter<SynInput['value']>();\n}\n\nexport type { SynBlurEvent } from '@synergy-design-system/components';\nexport type { SynChangeEvent } from '@synergy-design-system/components';\nexport type { SynClearEvent } from '@synergy-design-system/components';\nexport type { SynFocusEvent } from '@synergy-design-system/components';\nexport type { SynInputEvent } from '@synergy-design-system/components';\nexport type { SynInvalidEvent } from '@synergy-design-system/components';\nexport type { SynClampEvent } from '@synergy-design-system/components';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './input.component';\n"],"names":[],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AAoBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8CG;MAMU,iBAAiB,CAAA;AACrB,IAAA,aAAa;AACZ,IAAA,OAAO;AACP,IAAA,WAAW,GAAG,IAAI,eAAe,EAAE;IAE3C,WAAY,CAAA,CAAa,EAAE,MAAc,EAAA;AACvC,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,aAAa;AACpC,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM;QACrB,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC,CAAe,KAAI;AAClE,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3B,SAAC,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC,CAAiB,KAAI;AACtE,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7B,SAAC,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAgB,KAAI;AACpE,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5B,SAAC,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAgB,KAAI;AACpE,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5B,SAAC,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAgB,KAAI;AACpE,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5B,SAAC,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,CAAkB,KAAI;AACxE,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9B,SAAC,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAgB,KAAI;AACpE,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5B,SAAC,CAAC;AACF,QAAA,IAAI,CAAC,eAAe,GAAG,WAAW;;AAGpC;;;AAGG;IACH,IACI,eAAe,CAAC,CAA4B,EAAA;AAC9C,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;AACxB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,eAAe,EAAE;AACxC,QAAA,MAAM,MAAM,GAAG,CAAC,IAAI,WAAW;QAC/B,IAAI,CAAC,aAAa,CAAC,gBAAgB,CACjC,MAAM,EACN,MAAK;YACH,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AACnC,SAAC,EACD;AACE,YAAA,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM;AAChC,SAAA,CACF;;AAEH,IAAA,IAAI,eAAe,GAAA;QACjB,OAAO,IAAI,CAAC,eAAe;;IAG7B,IACI,KAAK,CAAC,CAAoB,EAAA;AAC5B,QAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;;AAEtE,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK;;AAGjC;;;;;AAKC;IACD,IACI,IAAI,CAAC,CAAmB,EAAA;AAC1B,QAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;;AAErE,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI;;AAGhC;;AAEG;IACH,IACI,IAAI,CAAC,CAAmB,EAAA;AAC1B,QAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;;AAErE,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI;;AAGhC;;AAEG;IACH,IACI,KAAK,CAAC,CAAoB,EAAA;AAC5B,QAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;;AAEtE,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK;;AAGjC;;AAEG;IACH,IACI,IAAI,CAAC,CAAmB,EAAA;AAC1B,QAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;;AAErE,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI;;AAGhC;;;AAGG;IACH,IACI,KAAK,CAAC,CAAoB,EAAA;AAC5B,QAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;;AAEtE,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK;;AAGjC;;;AAGG;IACH,IACI,QAAQ,CAAC,CAAuB,EAAA;AAClC,QAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;;AAEzE,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ;;AAGpC;;AAEG;IACH,IACI,SAAS,CAAC,CAA6B,EAAA;QACzC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAC5B,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CACrD;;AAEH,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS;;AAGrC;;AAEG;IACH,IACI,QAAQ,CAAC,CAA4B,EAAA;QACvC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAC5B,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CACpD;;AAEH,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ;;AAGpC;;AAEG;IACH,IACI,WAAW,CAAC,CAA0B,EAAA;AACxC,QAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;;AAE5E,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW;;AAGvC;;AAEG;IACH,IACI,QAAQ,CAAC,CAA4B,EAAA;QACvC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAC5B,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CACpD;;AAEH,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ;;AAGpC;;;AAGG;IACH,IACI,cAAc,CAAC,CAAkC,EAAA;QACnD,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAC5B,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAC1D;;AAEH,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc;;AAG1C;;;AAGG;IACH,IACI,eAAe,CAAC,CAAmC,EAAA;QACrD,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAC5B,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAC3D;;AAEH,IAAA,IAAI,eAAe,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe;;AAG3C;;AAEG;IACH,IACI,aAAa,CAAC,CAAiC,EAAA;QACjD,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAC5B,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CACzD;;AAEH,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa;;AAGzC;;;;;;AAMC;IACD,IACI,IAAI,CAAC,CAAmB,EAAA;AAC1B,QAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;;AAErE,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI;;AAGhC;;AAEG;IACH,IACI,QAAQ,CAAC,CAA4B,EAAA;QACvC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAC5B,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CACpD;;AAEH,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ;;AAGpC;;AAEG;IACH,IACI,OAAO,CAAC,CAAsB,EAAA;AAChC,QAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;;AAExE,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO;;AAGnC;;AAEG;IACH,IACI,SAAS,CAAC,CAAwB,EAAA;AACpC,QAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;;AAE1E,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS;;AAGrC;;AAEG;IACH,IACI,SAAS,CAAC,CAAwB,EAAA;AACpC,QAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;;AAE1E,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS;;AAGrC;;;AAGG;IACH,IACI,GAAG,CAAC,CAAkB,EAAA;AACxB,QAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;;AAEpE,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG;;AAG/B;;;AAGG;IACH,IACI,GAAG,CAAC,CAAkB,EAAA;AACxB,QAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;;AAEpE,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG;;AAG/B;;;;AAIC;IACD,IACI,IAAI,CAAC,CAAmB,EAAA;AAC1B,QAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;;AAErE,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI;;AAGhC;;AAEG;IACH,IACI,cAAc,CAAC,CAA6B,EAAA;AAC9C,QAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAC5B,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,CAAC,CAAC,CAC9C;;AAEH,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc;;AAG1C;;AAEG;IACH,IACI,WAAW,CAAC,CAA0B,EAAA;AACxC,QAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;;AAE5E,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW;;AAGvC;;;;AAIC;IACD,IACI,YAAY,CAAC,CAA2B,EAAA;AAC1C,QAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;;AAE7E,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY;;AAGxC;;AAEG;IACH,IACI,SAAS,CAAC,CAA6B,EAAA;QACzC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAC5B,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CACrD;;AAEH,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS;;AAGrC;;AAEG;IACH,IACI,YAAY,CAAC,CAA2B,EAAA;AAC1C,QAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;;AAE7E,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY;;AAGxC;;AAEG;IACH,IACI,UAAU,CAAC,CAA8B,EAAA;QAC3C,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAC5B,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CACtD;;AAEH,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU;;AAGtC;;;AAGC;IACD,IACI,SAAS,CAAC,CAAwB,EAAA;AACpC,QAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;;AAE1E,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS;;AAGrC;;;AAGC;IACD,IACI,iBAAiB,CAAC,CAAgC,EAAA;AACpD,QAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAC5B,OAAO,IAAI,CAAC,aAAa,CAAC,iBAAiB,GAAG,CAAC,CAAC,CACjD;;AAEH,IAAA,IAAI,iBAAiB,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,iBAAiB;;AAG7C;;;AAGC;IACD,IACI,iBAAiB,CAAC,CAAgC,EAAA;AACpD,QAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAC5B,OAAO,IAAI,CAAC,aAAa,CAAC,iBAAiB,GAAG,CAAC,CAAC,CACjD;;AAEH,IAAA,IAAI,iBAAiB,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,iBAAiB;;AAG7C;;;;;;;;;;;;;;;;;;;AAmBC;IACD,IACI,eAAe,CAAC,CAA8B,EAAA;AAChD,QAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAC5B,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,GAAG,CAAC,CAAC,CAC/C;;AAEH,IAAA,IAAI,eAAe,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe;;AAG3C;;;;AAIC;IACD,IACI,sBAAsB,CAAC,CAAqC,EAAA;AAC9D,QAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAC5B,OAAO,IAAI,CAAC,aAAa,CAAC,sBAAsB,GAAG,CAAC,CAAC,CACtD;;AAEH,IAAA,IAAI,sBAAsB,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,sBAAsB;;AAGlD;;AAEG;AACO,IAAA,YAAY,GAAG,IAAI,YAAY,EAAgB;AAEzD;;AAEG;AACO,IAAA,cAAc,GAAG,IAAI,YAAY,EAAkB;AAE7D;;AAEG;AACO,IAAA,aAAa,GAAG,IAAI,YAAY,EAAiB;AAE3D;;AAEG;AACO,IAAA,aAAa,GAAG,IAAI,YAAY,EAAiB;AAE3D;;AAEG;AACO,IAAA,aAAa,GAAG,IAAI,YAAY,EAAiB;AAE3D;;AAEG;AACO,IAAA,eAAe,GAAG,IAAI,YAAY,EAAmB;AAE/D;;AAEG;AACO,IAAA,aAAa,GAAG,IAAI,YAAY,EAAiB;AAE3D;;AAEG;AACO,IAAA,WAAW,GAAG,IAAI,YAAY,EAAqB;uGAxgBlD,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,grCAFlB,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA;;2FAE1B,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,2BAA2B;AACtC,iBAAA;oGAsCK,eAAe,EAAA,CAAA;sBADlB;gBAoBG,KAAK,EAAA,CAAA;sBADR;gBAeG,IAAI,EAAA,CAAA;sBADP;gBAYG,IAAI,EAAA,CAAA;sBADP;gBAYG,KAAK,EAAA,CAAA;sBADR;gBAYG,IAAI,EAAA,CAAA;sBADP;gBAaG,KAAK,EAAA,CAAA;sBADR;gBAaG,QAAQ,EAAA,CAAA;sBADX;gBAYG,SAAS,EAAA,CAAA;sBADZ;gBAcG,QAAQ,EAAA,CAAA;sBADX;gBAcG,WAAW,EAAA,CAAA;sBADd;gBAYG,QAAQ,EAAA,CAAA;sBADX;gBAeG,cAAc,EAAA,CAAA;sBADjB;gBAeG,eAAe,EAAA,CAAA;sBADlB;gBAcG,aAAa,EAAA,CAAA;sBADhB;gBAkBG,IAAI,EAAA,CAAA;sBADP;gBAYG,QAAQ,EAAA,CAAA;sBADX;gBAcG,OAAO,EAAA,CAAA;sBADV;gBAYG,SAAS,EAAA,CAAA;sBADZ;gBAYG,SAAS,EAAA,CAAA;sBADZ;gBAaG,GAAG,EAAA,CAAA;sBADN;gBAaG,GAAG,EAAA,CAAA;sBADN;gBAcG,IAAI,EAAA,CAAA;sBADP;gBAYG,cAAc,EAAA,CAAA;sBADjB;gBAcG,WAAW,EAAA,CAAA;sBADd;gBAcG,YAAY,EAAA,CAAA;sBADf;gBAYG,SAAS,EAAA,CAAA;sBADZ;gBAcG,YAAY,EAAA,CAAA;sBADf;gBAYG,UAAU,EAAA,CAAA;sBADb;gBAeG,SAAS,EAAA,CAAA;sBADZ;gBAaG,iBAAiB,EAAA,CAAA;sBADpB;gBAeG,iBAAiB,EAAA,CAAA;sBADpB;gBA+BG,eAAe,EAAA,CAAA;sBADlB;gBAgBG,sBAAsB,EAAA,CAAA;sBADzB;gBAaS,YAAY,EAAA,CAAA;sBAArB;gBAKS,cAAc,EAAA,CAAA;sBAAvB;gBAKS,aAAa,EAAA,CAAA;sBAAtB;gBAKS,aAAa,EAAA,CAAA;sBAAtB;gBAKS,aAAa,EAAA,CAAA;sBAAtB;gBAKS,eAAe,EAAA,CAAA;sBAAxB;gBAKS,aAAa,EAAA,CAAA;sBAAtB;gBAKS,WAAW,EAAA,CAAA;sBAApB;;;ACplBH;;AAEG;;;;"}