@skyux/forms 5.9.4 → 6.0.0-beta.10
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/documentation.json +693 -693
- package/esm2020/index.mjs +43 -0
- package/esm2020/lib/modules/character-counter/character-counter-indicator.component.mjs +32 -0
- package/esm2020/lib/modules/character-counter/character-counter.directive.mjs +84 -0
- package/esm2020/lib/modules/character-counter/character-counter.module.mjs +46 -0
- package/esm2020/lib/modules/checkbox/checkbox-change.mjs +6 -0
- package/esm2020/lib/modules/checkbox/checkbox-label.component.mjs +14 -0
- package/esm2020/lib/modules/checkbox/checkbox-required-validator.directive.mjs +30 -0
- package/esm2020/lib/modules/checkbox/checkbox.component.mjs +237 -0
- package/esm2020/lib/modules/checkbox/checkbox.module.mjs +34 -0
- package/esm2020/lib/modules/file-attachment/file-attachment-label.component.mjs +14 -0
- package/esm2020/lib/modules/file-attachment/file-attachment.component.mjs +326 -0
- package/esm2020/lib/modules/file-attachment/file-attachment.service.mjs +94 -0
- package/esm2020/lib/modules/file-attachment/file-attachments.module.mjs +68 -0
- package/esm2020/lib/modules/file-attachment/file-drop.component.mjs +216 -0
- package/esm2020/lib/modules/file-attachment/file-item-error-type.mjs +2 -0
- package/esm2020/lib/modules/file-attachment/file-item.component.mjs +112 -0
- package/esm2020/lib/modules/file-attachment/file-item.mjs +2 -0
- package/esm2020/lib/modules/file-attachment/file-item.service.mjs +70 -0
- package/esm2020/lib/modules/file-attachment/file-link.mjs +2 -0
- package/esm2020/lib/modules/file-attachment/file-size.pipe.mjs +58 -0
- package/esm2020/lib/modules/file-attachment/types/file-attachment-change.mjs +2 -0
- package/esm2020/lib/modules/file-attachment/types/file-attachment-click.mjs +2 -0
- package/esm2020/lib/modules/file-attachment/types/file-drop-change.mjs +2 -0
- package/esm2020/lib/modules/input-box/input-box-adapter.service.mjs +35 -0
- package/esm2020/lib/modules/input-box/input-box-host.service.mjs +19 -0
- package/esm2020/lib/modules/input-box/input-box-populate-args.mjs +2 -0
- package/esm2020/lib/modules/input-box/input-box.component.mjs +89 -0
- package/esm2020/lib/modules/input-box/input-box.module.mjs +19 -0
- package/esm2020/lib/modules/radio/radio-group.component.mjs +220 -0
- package/esm2020/lib/modules/radio/radio-label.component.mjs +23 -0
- package/esm2020/lib/modules/radio/radio.component.mjs +254 -0
- package/esm2020/lib/modules/radio/radio.module.mjs +28 -0
- package/esm2020/lib/modules/radio/types/radio-change.mjs +2 -0
- package/esm2020/lib/modules/selection-box/selection-box-adapter.service.mjs +123 -0
- package/esm2020/lib/modules/selection-box/selection-box-description.component.mjs +14 -0
- package/esm2020/lib/modules/selection-box/selection-box-grid.component.mjs +128 -0
- package/esm2020/lib/modules/selection-box/selection-box-header.component.mjs +14 -0
- package/esm2020/lib/modules/selection-box/selection-box.component.mjs +101 -0
- package/esm2020/lib/modules/selection-box/selection-box.module.mjs +40 -0
- package/esm2020/lib/modules/selection-box/types/selection-box-grid-align-items-type.mjs +2 -0
- package/esm2020/lib/modules/selection-box/types/selection-box-grid-align-items.mjs +2 -0
- package/esm2020/lib/modules/shared/forms-utility.mjs +26 -0
- package/esm2020/lib/modules/shared/sky-forms-resources.module.mjs +89 -0
- package/esm2020/lib/modules/toggle-switch/toggle-switch-label.component.mjs +14 -0
- package/esm2020/lib/modules/toggle-switch/toggle-switch.component.mjs +151 -0
- package/esm2020/lib/modules/toggle-switch/toggle-switch.module.mjs +20 -0
- package/esm2020/lib/modules/toggle-switch/types/toggle-switch-change.mjs +2 -0
- package/esm2020/skyux-forms.mjs +5 -0
- package/esm2020/testing/checkbox-fixture.mjs +88 -0
- package/esm2020/testing/public-api.mjs +2 -0
- package/esm2020/testing/skyux-forms-testing.mjs +5 -0
- package/fesm2015/{skyux-forms-testing.js → skyux-forms-testing.mjs} +1 -1
- package/fesm2015/skyux-forms-testing.mjs.map +1 -0
- package/fesm2015/skyux-forms.mjs +2684 -0
- package/fesm2015/skyux-forms.mjs.map +1 -0
- package/{esm2015/testing/checkbox-fixture.js → fesm2020/skyux-forms-testing.mjs} +9 -2
- package/fesm2020/skyux-forms-testing.mjs.map +1 -0
- package/fesm2020/skyux-forms.mjs +2676 -0
- package/fesm2020/skyux-forms.mjs.map +1 -0
- package/package.json +39 -15
- package/testing/package.json +5 -5
- package/bundles/skyux-forms-testing.umd.js +0 -123
- package/bundles/skyux-forms.umd.js +0 -3430
- package/esm2015/index.js +0 -43
- package/esm2015/index.js.map +0 -1
- package/esm2015/lib/modules/character-counter/character-counter-indicator.component.js +0 -37
- package/esm2015/lib/modules/character-counter/character-counter-indicator.component.js.map +0 -1
- package/esm2015/lib/modules/character-counter/character-counter.directive.js +0 -84
- package/esm2015/lib/modules/character-counter/character-counter.directive.js.map +0 -1
- package/esm2015/lib/modules/character-counter/character-counter.module.js +0 -46
- package/esm2015/lib/modules/character-counter/character-counter.module.js.map +0 -1
- package/esm2015/lib/modules/checkbox/checkbox-change.js +0 -6
- package/esm2015/lib/modules/checkbox/checkbox-change.js.map +0 -1
- package/esm2015/lib/modules/checkbox/checkbox-label.component.js +0 -17
- package/esm2015/lib/modules/checkbox/checkbox-label.component.js.map +0 -1
- package/esm2015/lib/modules/checkbox/checkbox-required-validator.directive.js +0 -32
- package/esm2015/lib/modules/checkbox/checkbox-required-validator.directive.js.map +0 -1
- package/esm2015/lib/modules/checkbox/checkbox.component.js +0 -241
- package/esm2015/lib/modules/checkbox/checkbox.component.js.map +0 -1
- package/esm2015/lib/modules/checkbox/checkbox.module.js +0 -34
- package/esm2015/lib/modules/checkbox/checkbox.module.js.map +0 -1
- package/esm2015/lib/modules/file-attachment/file-attachment-label.component.js +0 -19
- package/esm2015/lib/modules/file-attachment/file-attachment-label.component.js.map +0 -1
- package/esm2015/lib/modules/file-attachment/file-attachment.component.js +0 -335
- package/esm2015/lib/modules/file-attachment/file-attachment.component.js.map +0 -1
- package/esm2015/lib/modules/file-attachment/file-attachment.service.js +0 -94
- package/esm2015/lib/modules/file-attachment/file-attachment.service.js.map +0 -1
- package/esm2015/lib/modules/file-attachment/file-attachments.module.js +0 -68
- package/esm2015/lib/modules/file-attachment/file-attachments.module.js.map +0 -1
- package/esm2015/lib/modules/file-attachment/file-drop.component.js +0 -222
- package/esm2015/lib/modules/file-attachment/file-drop.component.js.map +0 -1
- package/esm2015/lib/modules/file-attachment/file-item-error-type.js +0 -2
- package/esm2015/lib/modules/file-attachment/file-item-error-type.js.map +0 -1
- package/esm2015/lib/modules/file-attachment/file-item.component.js +0 -116
- package/esm2015/lib/modules/file-attachment/file-item.component.js.map +0 -1
- package/esm2015/lib/modules/file-attachment/file-item.js +0 -2
- package/esm2015/lib/modules/file-attachment/file-item.js.map +0 -1
- package/esm2015/lib/modules/file-attachment/file-item.service.js +0 -72
- package/esm2015/lib/modules/file-attachment/file-item.service.js.map +0 -1
- package/esm2015/lib/modules/file-attachment/file-link.js +0 -2
- package/esm2015/lib/modules/file-attachment/file-link.js.map +0 -1
- package/esm2015/lib/modules/file-attachment/file-size.pipe.js +0 -60
- package/esm2015/lib/modules/file-attachment/file-size.pipe.js.map +0 -1
- package/esm2015/lib/modules/file-attachment/types/file-attachment-change.js +0 -2
- package/esm2015/lib/modules/file-attachment/types/file-attachment-change.js.map +0 -1
- package/esm2015/lib/modules/file-attachment/types/file-attachment-click.js +0 -2
- package/esm2015/lib/modules/file-attachment/types/file-attachment-click.js.map +0 -1
- package/esm2015/lib/modules/file-attachment/types/file-drop-change.js +0 -2
- package/esm2015/lib/modules/file-attachment/types/file-drop-change.js.map +0 -1
- package/esm2015/lib/modules/input-box/input-box-adapter.service.js +0 -35
- package/esm2015/lib/modules/input-box/input-box-adapter.service.js.map +0 -1
- package/esm2015/lib/modules/input-box/input-box-host.service.js +0 -19
- package/esm2015/lib/modules/input-box/input-box-host.service.js.map +0 -1
- package/esm2015/lib/modules/input-box/input-box-populate-args.js +0 -2
- package/esm2015/lib/modules/input-box/input-box-populate-args.js.map +0 -1
- package/esm2015/lib/modules/input-box/input-box.component.js +0 -97
- package/esm2015/lib/modules/input-box/input-box.component.js.map +0 -1
- package/esm2015/lib/modules/input-box/input-box.module.js +0 -19
- package/esm2015/lib/modules/input-box/input-box.module.js.map +0 -1
- package/esm2015/lib/modules/radio/radio-group.component.js +0 -223
- package/esm2015/lib/modules/radio/radio-group.component.js.map +0 -1
- package/esm2015/lib/modules/radio/radio-label.component.js +0 -26
- package/esm2015/lib/modules/radio/radio-label.component.js.map +0 -1
- package/esm2015/lib/modules/radio/radio.component.js +0 -262
- package/esm2015/lib/modules/radio/radio.component.js.map +0 -1
- package/esm2015/lib/modules/radio/radio.module.js +0 -28
- package/esm2015/lib/modules/radio/radio.module.js.map +0 -1
- package/esm2015/lib/modules/radio/types/radio-change.js +0 -2
- package/esm2015/lib/modules/radio/types/radio-change.js.map +0 -1
- package/esm2015/lib/modules/selection-box/selection-box-adapter.service.js +0 -124
- package/esm2015/lib/modules/selection-box/selection-box-adapter.service.js.map +0 -1
- package/esm2015/lib/modules/selection-box/selection-box-description.component.js +0 -17
- package/esm2015/lib/modules/selection-box/selection-box-description.component.js.map +0 -1
- package/esm2015/lib/modules/selection-box/selection-box-grid.component.js +0 -134
- package/esm2015/lib/modules/selection-box/selection-box-grid.component.js.map +0 -1
- package/esm2015/lib/modules/selection-box/selection-box-header.component.js +0 -17
- package/esm2015/lib/modules/selection-box/selection-box-header.component.js.map +0 -1
- package/esm2015/lib/modules/selection-box/selection-box.component.js +0 -107
- package/esm2015/lib/modules/selection-box/selection-box.component.js.map +0 -1
- package/esm2015/lib/modules/selection-box/selection-box.module.js +0 -40
- package/esm2015/lib/modules/selection-box/selection-box.module.js.map +0 -1
- package/esm2015/lib/modules/selection-box/types/selection-box-grid-align-items-type.js +0 -2
- package/esm2015/lib/modules/selection-box/types/selection-box-grid-align-items-type.js.map +0 -1
- package/esm2015/lib/modules/selection-box/types/selection-box-grid-align-items.js +0 -2
- package/esm2015/lib/modules/selection-box/types/selection-box-grid-align-items.js.map +0 -1
- package/esm2015/lib/modules/shared/forms-utility.js +0 -26
- package/esm2015/lib/modules/shared/forms-utility.js.map +0 -1
- package/esm2015/lib/modules/shared/sky-forms-resources.module.js +0 -89
- package/esm2015/lib/modules/shared/sky-forms-resources.module.js.map +0 -1
- package/esm2015/lib/modules/toggle-switch/toggle-switch-label.component.js +0 -18
- package/esm2015/lib/modules/toggle-switch/toggle-switch-label.component.js.map +0 -1
- package/esm2015/lib/modules/toggle-switch/toggle-switch.component.js +0 -159
- package/esm2015/lib/modules/toggle-switch/toggle-switch.component.js.map +0 -1
- package/esm2015/lib/modules/toggle-switch/toggle-switch.module.js +0 -20
- package/esm2015/lib/modules/toggle-switch/toggle-switch.module.js.map +0 -1
- package/esm2015/lib/modules/toggle-switch/types/toggle-switch-change.js +0 -2
- package/esm2015/lib/modules/toggle-switch/types/toggle-switch-change.js.map +0 -1
- package/esm2015/skyux-forms.js +0 -5
- package/esm2015/skyux-forms.js.map +0 -1
- package/esm2015/testing/checkbox-fixture.js.map +0 -1
- package/esm2015/testing/public-api.js +0 -2
- package/esm2015/testing/public-api.js.map +0 -1
- package/esm2015/testing/skyux-forms-testing.js +0 -5
- package/esm2015/testing/skyux-forms-testing.js.map +0 -1
- package/fesm2015/skyux-forms-testing.js.map +0 -1
- package/fesm2015/skyux-forms.js +0 -2771
- package/fesm2015/skyux-forms.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skyux-forms.mjs","sources":["../../../../../libs/components/forms/src/lib/modules/shared/sky-forms-resources.module.ts","../../../../../libs/components/forms/src/lib/modules/character-counter/character-counter-indicator.component.ts","../../../../../libs/components/forms/src/lib/modules/character-counter/character-counter-indicator.component.html","../../../../../libs/components/forms/src/lib/modules/character-counter/character-counter.directive.ts","../../../../../libs/components/forms/src/lib/modules/character-counter/character-counter.module.ts","../../../../../libs/components/forms/src/lib/modules/checkbox/checkbox-change.ts","../../../../../libs/components/forms/src/lib/modules/checkbox/checkbox-label.component.ts","../../../../../libs/components/forms/src/lib/modules/checkbox/checkbox-label.component.html","../../../../../libs/components/forms/src/lib/modules/checkbox/checkbox-required-validator.directive.ts","../../../../../libs/components/forms/src/lib/modules/shared/forms-utility.ts","../../../../../libs/components/forms/src/lib/modules/checkbox/checkbox.component.ts","../../../../../libs/components/forms/src/lib/modules/checkbox/checkbox.component.html","../../../../../libs/components/forms/src/lib/modules/checkbox/checkbox.module.ts","../../../../../libs/components/forms/src/lib/modules/file-attachment/file-attachment-label.component.ts","../../../../../libs/components/forms/src/lib/modules/file-attachment/file-attachment-label.component.html","../../../../../libs/components/forms/src/lib/modules/file-attachment/file-attachment.service.ts","../../../../../libs/components/forms/src/lib/modules/file-attachment/file-item.service.ts","../../../../../libs/components/forms/src/lib/modules/file-attachment/file-attachment.component.ts","../../../../../libs/components/forms/src/lib/modules/file-attachment/file-attachment.component.html","../../../../../libs/components/forms/src/lib/modules/file-attachment/file-drop.component.ts","../../../../../libs/components/forms/src/lib/modules/file-attachment/file-drop.component.html","../../../../../libs/components/forms/src/lib/modules/file-attachment/file-size.pipe.ts","../../../../../libs/components/forms/src/lib/modules/file-attachment/file-item.component.ts","../../../../../libs/components/forms/src/lib/modules/file-attachment/file-item.component.html","../../../../../libs/components/forms/src/lib/modules/file-attachment/file-attachments.module.ts","../../../../../libs/components/forms/src/lib/modules/input-box/input-box-adapter.service.ts","../../../../../libs/components/forms/src/lib/modules/input-box/input-box-host.service.ts","../../../../../libs/components/forms/src/lib/modules/input-box/input-box.component.ts","../../../../../libs/components/forms/src/lib/modules/input-box/input-box.component.html","../../../../../libs/components/forms/src/lib/modules/input-box/input-box.module.ts","../../../../../libs/components/forms/src/lib/modules/radio/radio.component.ts","../../../../../libs/components/forms/src/lib/modules/radio/radio.component.html","../../../../../libs/components/forms/src/lib/modules/radio/radio-group.component.ts","../../../../../libs/components/forms/src/lib/modules/radio/radio-group.component.html","../../../../../libs/components/forms/src/lib/modules/radio/radio-label.component.ts","../../../../../libs/components/forms/src/lib/modules/radio/radio-label.component.html","../../../../../libs/components/forms/src/lib/modules/radio/radio.module.ts","../../../../../libs/components/forms/src/lib/modules/selection-box/selection-box-adapter.service.ts","../../../../../libs/components/forms/src/lib/modules/selection-box/selection-box-description.component.ts","../../../../../libs/components/forms/src/lib/modules/selection-box/selection-box-description.component.html","../../../../../libs/components/forms/src/lib/modules/selection-box/selection-box.component.ts","../../../../../libs/components/forms/src/lib/modules/selection-box/selection-box.component.html","../../../../../libs/components/forms/src/lib/modules/selection-box/selection-box-grid.component.ts","../../../../../libs/components/forms/src/lib/modules/selection-box/selection-box-grid.component.html","../../../../../libs/components/forms/src/lib/modules/selection-box/selection-box-header.component.ts","../../../../../libs/components/forms/src/lib/modules/selection-box/selection-box-header.component.html","../../../../../libs/components/forms/src/lib/modules/selection-box/selection-box.module.ts","../../../../../libs/components/forms/src/lib/modules/toggle-switch/toggle-switch-label.component.ts","../../../../../libs/components/forms/src/lib/modules/toggle-switch/toggle-switch-label.component.html","../../../../../libs/components/forms/src/lib/modules/toggle-switch/toggle-switch.component.ts","../../../../../libs/components/forms/src/lib/modules/toggle-switch/toggle-switch.component.html","../../../../../libs/components/forms/src/lib/modules/toggle-switch/toggle-switch.module.ts","../../../../../libs/components/forms/src/skyux-forms.ts"],"sourcesContent":["/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-forms' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SKY_LIB_RESOURCES_PROVIDERS,\n SkyAppLocaleInfo,\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesProvider,\n getLibStringForLocale,\n} from '@skyux/i18n';\n\nconst RESOURCES: { [locale: string]: SkyLibResources } = {\n 'EN-US': {\n skyux_character_count_message: { message: 'characters out of' },\n skyux_character_count_over_limit: {\n message: 'You are over the character limit.',\n },\n skyux_file_attachment_button_label_choose_file: { message: 'Choose file' },\n skyux_file_attachment_button_label_replace_file: {\n message: 'Replace file',\n },\n skyux_file_attachment_file_item_delete: { message: 'Delete file' },\n skyux_file_attachment_file_size_b_plural: { message: '{0} bytes' },\n skyux_file_attachment_file_size_b_singular: { message: '{0} byte' },\n skyux_file_attachment_file_size_gb: { message: '{0} GB' },\n skyux_file_attachment_file_size_kb: { message: '{0} KB' },\n skyux_file_attachment_file_size_mb: { message: '{0} MB' },\n skyux_file_attachment_file_upload_drag_file_here: {\n message: 'Drag a file here',\n },\n skyux_file_attachment_file_upload_drag_or_click: {\n message: 'Drag a file here or click to browse',\n },\n skyux_file_attachment_file_upload_drop_files_here: {\n message: 'Drop files here',\n },\n skyux_file_attachment_file_upload_image_preview_alt_text: {\n message: 'Image preview',\n },\n skyux_file_attachment_file_upload_invalid_file: {\n message: 'This file type is invalid',\n },\n skyux_file_attachment_file_upload_link_input: {\n message: 'Add a link to a file',\n },\n skyux_file_attachment_file_upload_link_placeholder: {\n message: 'http://www.something.com/file',\n },\n skyux_file_attachment_file_upload_or_click_to_browse: {\n message: 'or click to browse',\n },\n skyux_file_attachment_file_upload_paste_link: {\n message: 'Paste a link to a file',\n },\n skyux_file_attachment_file_upload_paste_link_done: { message: 'Done' },\n skyux_file_attachment_label_no_file_chosen: { message: 'No file chosen' },\n },\n};\n\nexport class SkyFormsResourcesProvider implements SkyLibResourcesProvider {\n public getString(\n localeInfo: SkyAppLocaleInfo,\n name: string\n ): string | undefined {\n return getLibStringForLocale(RESOURCES, localeInfo.locale, name);\n }\n}\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n providers: [\n {\n provide: SKY_LIB_RESOURCES_PROVIDERS,\n useClass: SkyFormsResourcesProvider,\n multi: true,\n },\n ],\n})\nexport class SkyFormsResourcesModule {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n} from '@angular/core';\n\n@Component({\n selector: 'sky-character-counter-indicator',\n templateUrl: './character-counter-indicator.component.html',\n styleUrls: ['./character-counter-indicator.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyCharacterCounterIndicatorComponent {\n public characterCountMessage: string;\n public overLimitMessage: string;\n\n private currentCharacterCountLimit = 0;\n private currentCharacterCount = 0;\n\n constructor(private changeDetector: ChangeDetectorRef) {}\n\n public get characterCount(): number {\n return this.currentCharacterCount;\n }\n\n public set characterCount(count: number) {\n this.currentCharacterCount = count;\n this.changeDetector.markForCheck();\n }\n\n public get characterCountLimit(): number {\n return this.currentCharacterCountLimit;\n }\n\n public set characterCountLimit(limit: number) {\n this.currentCharacterCountLimit = limit;\n this.changeDetector.markForCheck();\n }\n}\n","<span\n class=\"sky-character-count-label sky-deemphasized\"\n [ngClass]=\"{ 'sky-error-label': characterCount > characterCountLimit }\"\n>\n {{ characterCount + '/' + characterCountLimit }}\n</span>\n<span aria-live=\"polite\" class=\"sky-screen-reader-only\">\n {{ characterCount }} {{ 'skyux_character_count_message' | skyLibResources }}\n {{ characterCountLimit }}.\n {{\n characterCount > characterCountLimit\n ? ('skyux_character_count_over_limit' | skyLibResources)\n : ''\n }}\n</span>\n","import { Directive, Input } from '@angular/core';\nimport {\n AbstractControl,\n NG_VALIDATORS,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\n\nimport { SkyCharacterCounterIndicatorComponent } from './character-counter-indicator.component';\n\n/**\n * Creates an input field that validates the number of characters. Place this directive on\n * an `input` or `textarea` element. If users enter more characters than allowed, then the\n * input field is invalid and the component displays an error indicator.\n * @required\n */\n@Directive({\n selector: '[skyCharacterCounter]',\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: SkyCharacterCounterInputDirective,\n multi: true,\n },\n ],\n})\nexport class SkyCharacterCounterInputDirective implements Validator {\n /**\n * Specifies the character count indicator component that displays the character count,\n * character limit, and over-the-limit indicator. Place this directive on an `input` or\n * `textarea` element.\n */\n @Input()\n public skyCharacterCounterIndicator: SkyCharacterCounterIndicatorComponent;\n\n /**\n * Specifies the maximum number of characters allowed in the input field. Place this directive\n * on an `input` or `textarea` element. This property accepts `number` values.\n * @required\n */\n @Input()\n public set skyCharacterCounterLimit(value: number) {\n this._skyCharacterCounterLimit = value;\n this.updateIndicatorLimit(this.skyCharacterCounterLimit);\n this._validatorChange();\n }\n\n public get skyCharacterCounterLimit(): number {\n return this._skyCharacterCounterLimit || 0;\n }\n\n private _skyCharacterCounterLimit: number;\n\n public validate(control: AbstractControl): ValidationErrors {\n const value = control.value;\n\n this.updateIndicatorCount((value && value.length) || 0);\n\n if (!value) {\n return;\n }\n\n if (value.length > this.skyCharacterCounterLimit) {\n // This is needed to apply the appropriate error styles to the input.\n control.markAsTouched();\n\n return {\n skyCharacterCounter: {\n invalid: value,\n },\n };\n }\n }\n\n public registerOnValidatorChange(fn: () => void): void {\n this._validatorChange = fn;\n }\n\n private updateIndicatorCount(count: number): void {\n if (this.skyCharacterCounterIndicator) {\n this.skyCharacterCounterIndicator.characterCount = count;\n }\n }\n\n private updateIndicatorLimit(limit: number): void {\n if (this.skyCharacterCounterIndicator) {\n this.skyCharacterCounterIndicator.characterCountLimit = limit;\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private _validatorChange = () => {};\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SkyI18nModule } from '@skyux/i18n';\n\nimport { SkyFormsResourcesModule } from '../shared/sky-forms-resources.module';\n\nimport { SkyCharacterCounterIndicatorComponent } from './character-counter-indicator.component';\nimport { SkyCharacterCounterInputDirective } from './character-counter.directive';\n\n@NgModule({\n declarations: [\n SkyCharacterCounterInputDirective,\n SkyCharacterCounterIndicatorComponent,\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n SkyFormsResourcesModule,\n SkyI18nModule,\n ],\n exports: [\n SkyCharacterCounterInputDirective,\n SkyCharacterCounterIndicatorComponent,\n ],\n})\nexport class SkyCharacterCounterModule {}\n","import { SkyCheckboxComponent } from './checkbox.component';\n\n/**\n * Fires when users select or deselect the checkbox.\n */\nexport class SkyCheckboxChange {\n public source: SkyCheckboxComponent;\n public checked: boolean;\n}\n","import { Component } from '@angular/core';\n\n/**\n * Specifies a label for the checkbox.\n */\n@Component({\n selector: 'sky-checkbox-label',\n templateUrl: './checkbox-label.component.html',\n})\nexport class SkyCheckboxLabelComponent {}\n","<span class=\"sky-switch-label\">\n <ng-content></ng-content>\n</span>\n","import { Directive, Provider, forwardRef } from '@angular/core';\nimport { CheckboxRequiredValidator, NG_VALIDATORS } from '@angular/forms';\n\nexport const SKY_CHECKBOX_REQUIRED_VALIDATOR: Provider = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SkyCheckboxRequiredValidatorDirective),\n multi: true,\n};\n\n/**\n * Validator support for the `required` input on `sky-checkbox`.\n * Angular's `CheckboxRequiredValidator` only works with `input type=checkbox`. This directive\n * extends the angular validator to work with `sky-checkbox` tags.\n * This is based on Angular Material's similar implementation:\n * https://github.com/angular/components/blob/a415b52ead2ec202ba37edb7d7866b29dd790394/src/material/checkbox/checkbox-required-validator.ts\n * @internal\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: `sky-checkbox[required][formControlName],\n sky-checkbox[required][formControl], sky-checkbox[required][ngModel]`,\n providers: [SKY_CHECKBOX_REQUIRED_VALIDATOR],\n})\nexport class SkyCheckboxRequiredValidatorDirective extends CheckboxRequiredValidator {}\n","import { AbstractControl, NgControl } from '@angular/forms';\n\n// Need to add the following to classes which contain static methods.\n// See: https://github.com/ng-packagr/ng-packagr/issues/641\n// @dynamic\nexport class SkyFormsUtility {\n /** Coerces a data-bound value (typically a string) to a boolean. */\n public static coerceBooleanProperty(value: any): boolean {\n return value !== undefined && `${value}` !== 'false';\n }\n\n /**\n * Gets the required state of the checkbox.\n * Currently, Angular doesn't offer a way to get this easily, so we have to create an empty\n * control using the current validator to see if it throws a `required` validation error.\n * https://github.com/angular/angular/issues/13461#issuecomment-340368046\n */\n public static hasRequiredValidation(ngControl: NgControl): boolean {\n const abstractControl = ngControl.control as AbstractControl;\n if (abstractControl && abstractControl.validator) {\n const validator = abstractControl.validator({} as AbstractControl);\n if (validator && validator.required) {\n return true;\n }\n }\n return false;\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Optional,\n Output,\n Self,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\n\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { SkyFormsUtility } from '../shared/forms-utility';\n\nimport { SkyCheckboxChange } from './checkbox-change';\n\n/**\n * Monotonically increasing integer used to auto-generate unique ids for checkbox components.\n */\nlet nextId = 0;\n\n/**\n * Replaces the HTML input element with `type=\"checkbox\"`. When users select a checkbox, its value\n * is driven through an `ngModel` attribute that you specify on the `sky-checkbox` element.\n */\n@Component({\n selector: 'sky-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n})\nexport class SkyCheckboxComponent implements ControlValueAccessor, OnInit {\n /**\n * Specifies an ARIA label for the checkbox. This sets the checkbox's `aria-label` attribute\n * [to support accessibility](https://developer.blackbaud.com/skyux/components/checkbox#accessibility)\n * when the checkbox does not include a visible label. You must set this property for icon\n * checkboxes. If the checkbox includes a visible label, use `labelledBy` instead.\n */\n @Input()\n public label: string;\n\n /**\n * Specifies the HTML element ID (without the leading `#`) of the element that labels the\n * checkbox. This sets the checkbox's `aria-labelledby` attribute\n * [to support accessibility](https://developer.blackbaud.com/skyux/components/checkbox#accessibility).\n * If the checkbox does not include a visible label, use `label` instead.\n */\n @Input()\n public labelledBy: string;\n\n /**\n * Specifies an ID for the checkbox.\n * @default a unique, auto-incrementing integer. For example: `sky-checkbox-1`\n */\n @Input()\n public id = `sky-checkbox-${++nextId}`;\n\n /**\n * Indicates whether to disable the checkbox.\n * @default false\n */\n @Input()\n public set disabled(value: boolean) {\n const coercedValue = SkyFormsUtility.coerceBooleanProperty(value);\n if (coercedValue !== this.disabled) {\n this._disabled = coercedValue;\n this._disabledChange.next(this._disabled);\n }\n }\n\n /**\n * Indicates whether the checkbox is disabled.\n */\n public get disabled() {\n return this._disabled;\n }\n\n /**\n * Specifies an index for the checkbox. If not defined, the index is set to the position of the\n * checkbox on load.\n */\n @Input()\n public tabindex = 0;\n\n /**\n * Specifies a name for a group of checkboxes.\n * @default a unique, auto-incrementing integer. For example: `sky-checkbox-1`\n */\n @Input()\n public name = `sky-checkbox-${++nextId}`;\n\n /**\n * Fires when the selected value changes.\n */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-native\n public change = new EventEmitter<SkyCheckboxChange>();\n\n /**\n * Specifies an icon to display in place of the checkbox. To group icon checkboxes\n * like in the demo, place the `sky-switch-icon-group` class on the direct parent\n * element of the checkboxes.\n */\n @Input()\n public icon: string;\n\n /**\n * Specifies a type to set the background color after users select a checkbox where the\n * `icon` property displays an icon in place of the checkbox. The valid options correspond to\n * [the label component's](https://developer.blackbaud.com/skyux/components/label)\n * label types. `\"info\"` creates a blue background, `\"success\"` creates a green\n * background, `\"warning\"` creates an orange background, and `\"danger\"` creates a red background.\n * @default \"info\"\n */\n @Input()\n public set checkboxType(value: string) {\n if (value) {\n this._checkboxType = value.toLowerCase();\n }\n }\n\n public get checkboxType(): string {\n return this._checkboxType || 'info';\n }\n\n public get inputId(): string {\n return `input-${this.id}`;\n }\n\n /**\n * Indicates whether the checkbox is selected.\n * @default false\n */\n @Input()\n public set checked(checked: boolean) {\n if (checked !== this.checked) {\n this._checked = checked;\n this._controlValueAccessorChangeFn(checked);\n this._checkedChange.next(this._checked);\n\n // Do not mark the field as \"dirty\"\n // if the field has been initialized with a value.\n if (this.isFirstChange && this.ngControl && this.ngControl.control) {\n this.ngControl.control.markAsPristine();\n this.isFirstChange = false;\n }\n }\n }\n\n /**\n * Indicates whether the checkbox is selected.\n */\n public get checked() {\n return this._checked;\n }\n\n /**\n * Indicates whether the input is required for form validation.\n * When you set this property to `true`, the component adds `aria-required` and `required`\n * attributes to the input element so that forms display an invalid state until the input element\n * is complete.\n * @default false\n */\n @Input()\n set required(value: boolean) {\n this._required = SkyFormsUtility.coerceBooleanProperty(value);\n }\n\n get required(): boolean {\n return this._required;\n }\n\n /**\n * Fires when users select or deselect the checkbox.\n */\n @Output()\n public get checkedChange(): Observable<boolean> {\n return this._checkedChange;\n }\n\n /**\n * Fires when the selected value changes.\n */\n @Output()\n public get disabledChange(): Observable<boolean> {\n return this._disabledChange;\n }\n\n private isFirstChange = true;\n\n private _checkboxType: string;\n\n private _checked = false;\n\n private _checkedChange = new BehaviorSubject<boolean>(this._checked);\n\n private _disabled = false;\n\n private _disabledChange = new BehaviorSubject<boolean>(this._disabled);\n\n private _required = false;\n\n constructor(@Self() @Optional() private ngControl: NgControl) {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public ngOnInit(): void {\n if (this.ngControl) {\n // Backwards compatibility support for anyone still using Validators.Required.\n this.required =\n this.required || SkyFormsUtility.hasRequiredValidation(this.ngControl);\n }\n }\n\n /**\n * Implemented as part of ControlValueAccessor.\n */\n public writeValue(value: any) {\n this.checked = !!value;\n }\n\n /**\n * Implemented as part of ControlValueAccessor.\n */\n public registerOnChange(fn: (value: any) => void) {\n this._controlValueAccessorChangeFn = fn;\n }\n\n /**\n * Implemented as part of ControlValueAccessor.\n */\n public registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n /**\n * Implemented as part of ControlValueAccessor.\n */\n public setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n /**\n * Event handler for checkbox input element.\n * Toggles checked state if element is not disabled.\n */\n public onInteractionEvent(event: Event) {\n // We always have to stop propagation on the change event.\n // Otherwise the change event, from the input element, will bubble up and\n // emit its event object to the `change` output.\n event.stopPropagation();\n\n if (!this.disabled) {\n this._toggle();\n this._emitChangeEvent();\n }\n }\n\n public onInputBlur() {\n this.onTouched();\n }\n\n /** Called when the checkbox is blurred. Needed to properly implement ControlValueAccessor. */\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n public onTouched: () => any = () => {};\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private _controlValueAccessorChangeFn: (value: any) => void = (value) => {};\n\n private _emitChangeEvent() {\n const event = new SkyCheckboxChange();\n event.source = this;\n event.checked = this._checked;\n\n this._controlValueAccessorChangeFn(this._checked);\n this.change.emit(event);\n }\n\n /**\n * Toggles the `checked` value between true and false\n */\n private _toggle() {\n this.checked = !this.checked;\n }\n}\n","<label\n class=\"sky-checkbox-wrapper sky-switch\"\n [ngClass]=\"{\n 'sky-control-label-required': required,\n 'sky-switch-disabled': disabled\n }\"\n>\n <input\n class=\"sky-checkbox-input sky-switch-input\"\n type=\"checkbox\"\n [id]=\"inputId\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [name]=\"name\"\n [required]=\"required\"\n [tabIndex]=\"tabindex\"\n [attr.aria-label]=\"label\"\n [attr.aria-labelledby]=\"labelledBy\"\n [attr.aria-required]=\"required ? true : null\"\n (blur)=\"onInputBlur()\"\n (change)=\"onInteractionEvent($event)\"\n />\n <span\n class=\"sky-switch-control sky-rounded-corners\"\n [ngClass]=\"{\n 'sky-switch-control-icon': icon,\n 'sky-switch-control-info': checkboxType === 'info',\n 'sky-switch-control-success': checkboxType === 'success',\n 'sky-switch-control-warning': checkboxType === 'warning',\n 'sky-switch-control-danger': checkboxType === 'danger'\n }\"\n >\n <sky-icon\n *ngIf=\"icon || checked\"\n class=\"sky-checkbox-icon-default\"\n fixedWidth=\"true\"\n [icon]=\"icon || 'check'\"\n >\n </sky-icon>\n <div class=\"sky-checkbox-icon-modern\">\n <sky-icon\n *ngIf=\"icon; else checkedTemplate\"\n fixedWidth=\"true\"\n [icon]=\"icon\"\n >\n </sky-icon>\n <ng-template #checkedTemplate>\n <sky-icon\n *ngIf=\"checked\"\n class=\"sky-checkbox-icon-modern-checked\"\n fixedWidth=\"true\"\n icon=\"check\"\n iconType=\"skyux\"\n >\n </sky-icon>\n </ng-template>\n </div>\n </span>\n <ng-content select=\"sky-checkbox-label\"> </ng-content>\n</label>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { SkyIconModule } from '@skyux/indicators';\n\nimport { SkyCheckboxLabelComponent } from './checkbox-label.component';\nimport { SkyCheckboxRequiredValidatorDirective } from './checkbox-required-validator.directive';\nimport { SkyCheckboxComponent } from './checkbox.component';\n\n@NgModule({\n declarations: [\n SkyCheckboxComponent,\n SkyCheckboxLabelComponent,\n SkyCheckboxRequiredValidatorDirective,\n ],\n imports: [CommonModule, FormsModule, SkyIconModule],\n exports: [\n SkyCheckboxComponent,\n SkyCheckboxLabelComponent,\n SkyCheckboxRequiredValidatorDirective,\n ],\n})\nexport class SkyCheckboxModule {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n/**\n * Displays a label above the file attachment element.\n */\n@Component({\n selector: 'sky-file-attachment-label',\n templateUrl: './file-attachment-label.component.html',\n styleUrls: ['file-attachment-label.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyFileAttachmentLabelComponent {}\n","<span class=\"sky-control-label\">\n <ng-content></ng-content>\n</span>\n","import { Injectable } from '@angular/core';\n\nimport { SkyFileItem } from './file-item';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyFileAttachmentService {\n public checkFiles(\n files: FileList,\n minFileSize: number,\n maxFileSize: number,\n acceptedTypes: string,\n validateFn: Function\n ): SkyFileItem[] {\n const fileResults: SkyFileItem[] = [];\n\n for (let index = 0; index < files.length; index++) {\n const fileItem = {\n file: files.item(index),\n } as SkyFileItem;\n\n if (fileItem.file.size < minFileSize) {\n fileItem.errorType = 'minFileSize';\n fileItem.errorParam = minFileSize.toString();\n fileResults.push(fileItem);\n } else if (fileItem.file.size > maxFileSize) {\n fileItem.errorType = 'maxFileSize';\n fileItem.errorParam = maxFileSize.toString();\n fileResults.push(fileItem);\n } else if (this.fileTypeRejected(fileItem.file.type, acceptedTypes)) {\n fileItem.errorType = 'fileType';\n fileItem.errorParam = acceptedTypes;\n fileResults.push(fileItem);\n } else if (validateFn) {\n const errorParam = validateFn(fileItem);\n\n if (errorParam) {\n fileItem.errorType = 'validate';\n fileItem.errorParam = errorParam;\n }\n fileResults.push(fileItem);\n } else {\n fileResults.push(fileItem);\n }\n }\n return fileResults;\n }\n\n /**\n * Returns `true` if a directory is found in the provided `files` parameter.\n */\n public hasDirectory(files: FileList): boolean {\n for (let index = 0; index < files.length; index++) {\n const file: any = files.item(index);\n if (\n file.webkitGetAsEntry &&\n file.webkitGetAsEntry() &&\n file.webkitGetAsEntry().isDirectory\n ) {\n return true;\n }\n }\n\n return false;\n }\n\n public fileTypeRejected(fileType: string, acceptedTypes: string): boolean {\n if (!acceptedTypes) {\n return false;\n }\n\n if (!fileType) {\n return true;\n }\n\n const acceptedTypesUpper = acceptedTypes.toUpperCase();\n const typeArray = acceptedTypesUpper.split(',');\n\n return !this.fileTypeInArray(typeArray, fileType.toUpperCase());\n }\n\n private fileTypeInArray(typeArray: string[], fileType: string): boolean {\n if (typeArray.indexOf(fileType) !== -1) {\n return true;\n }\n\n for (let index = 0; index < typeArray.length; index++) {\n const type = typeArray[index];\n const validSubtype = this.getMimeSubtype(type);\n\n if (validSubtype === '*') {\n if (this.getMimeMainType(type) === this.getMimeMainType(fileType)) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n private getMimeSubtype(type: string): string {\n return type.substr(type.indexOf('/') + 1, type.length);\n }\n\n private getMimeMainType(type: string): string {\n return type.substr(0, type.indexOf('/'));\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { SkyFileItem } from './file-item';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyFileItemService {\n public isFile(fileItem: SkyFileItem): boolean {\n const file = fileItem.file;\n\n return (\n file &&\n file !== undefined &&\n file !== null &&\n file.size !== undefined &&\n file.size !== null\n );\n }\n\n public isImage(fileItem: SkyFileItem): boolean {\n const fileTypeUpper = this.getFileTypeUpper(fileItem);\n const slashIndex = fileTypeUpper.indexOf('/');\n\n if (slashIndex >= 0) {\n switch (fileTypeUpper.substr(fileTypeUpper.indexOf('/') + 1)) {\n case 'BMP':\n case 'GIF':\n case 'JPEG':\n case 'PNG':\n return true;\n default:\n break;\n }\n }\n\n return false;\n }\n\n public getFileExtensionUpper(fileItem: SkyFileItem): string {\n let extension = '',\n name: string;\n\n /* istanbul ignore else */\n /* sanity check */\n if (fileItem) {\n const file = fileItem.file;\n if (file) {\n /* istanbul ignore next */\n name = file.name || '';\n /* istanbul ignore next */\n extension = name.substr(name.lastIndexOf('.')) || '';\n } else {\n extension = '';\n }\n }\n\n return extension.toUpperCase();\n }\n\n public getFileTypeUpper(fileItem: SkyFileItem): string {\n let fileType = '';\n /* istanbul ignore else */\n /* sanity check */\n if (fileItem) {\n const file = fileItem.file;\n if (file) {\n fileType = file.type || '';\n } else {\n fileType = '';\n }\n }\n\n return fileType.toUpperCase();\n }\n}\n","import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n Self,\n ViewChild,\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { SkyThemeService } from '@skyux/theme';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyFormsUtility } from '../shared/forms-utility';\n\nimport { SkyFileAttachmentLabelComponent } from './file-attachment-label.component';\nimport { SkyFileAttachmentService } from './file-attachment.service';\nimport { SkyFileItem } from './file-item';\nimport { SkyFileItemService } from './file-item.service';\nimport { SkyFileAttachmentChange } from './types/file-attachment-change';\nimport { SkyFileAttachmentClick } from './types/file-attachment-click';\n\nlet uniqueId = 0;\n\n/**\n * Provides an element to attach a single local file.\n */\n@Component({\n selector: 'sky-file-attachment',\n templateUrl: './file-attachment.component.html',\n styleUrls: ['./file-attachment.component.scss'],\n providers: [SkyFileAttachmentService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyFileAttachmentComponent\n implements AfterViewInit, AfterContentInit, OnInit, OnDestroy\n{\n /**\n * Specifies a comma-delimited string literal of MIME types that users can attach.\n * By default, all file types are allowed.\n * @required\n */\n @Input()\n public acceptedTypes: string;\n\n /**\n * Indicates whether to disable the input.\n * @default false\n */\n @Input()\n public set disabled(value: boolean) {\n const newDisabledState = SkyFormsUtility.coerceBooleanProperty(value);\n if (this._disabled !== newDisabledState) {\n this._disabled = newDisabledState;\n }\n }\n\n public get disabled(): boolean {\n return this._disabled;\n }\n\n /**\n * Specifies the maximum size in bytes for valid files.\n */\n @Input()\n public maxFileSize = 500000;\n\n /**\n * Specifies the minimum size in bytes for valid files.\n */\n @Input()\n public minFileSize = 0;\n\n /**\n * Specifies a custom validation function. This validation runs alongside the internal\n * file validation. This function takes a `SkyFileItem` object as a parameter.\n */\n @Input()\n public validateFn: Function;\n\n /**\n * Fires when users add or remove files.\n */\n @Output()\n public fileChange = new EventEmitter<SkyFileAttachmentChange>();\n\n /**\n * Fires when users select the file name link. Make sure to bind the event.\n * If you do not, the file name link will be a dead link.\n */\n @Output()\n public fileClick = new EventEmitter<SkyFileAttachmentClick>();\n\n public acceptedOver = false;\n\n public get hasLabelComponent(): boolean {\n return this.labelComponents.length > 0;\n }\n\n public fileDropDescriptionElementId: string;\n\n public labelElementId: string;\n\n public rejectedOver = false;\n\n /**\n * Indicates whether the input is required for form validation.\n * When you set this property to `true`, the component adds `aria-required` and `required`\n * attributes to the input element so that forms display an invalid state until the input element\n * is complete.\n */\n @Input()\n public required = false;\n\n public set value(value: SkyFileItem) {\n // The null check is needed to address a bug in Angular 4.\n // writeValue is being called twice, first time with a phantom null value\n // See: https://github.com/angular/angular/issues/14988\n const isNewValue = value !== this.value && value !== null;\n\n if (isNewValue) {\n this._value = value;\n this._onChange(value);\n this.updateFileAttachmentButton();\n }\n }\n\n public get value(): SkyFileItem {\n return this._value;\n }\n\n public currentThemeName: string;\n\n public showFileAttachmentButton: boolean;\n\n @ViewChild('fileInput')\n private inputEl: ElementRef;\n\n @ContentChildren(SkyFileAttachmentLabelComponent)\n private labelComponents: QueryList<SkyFileAttachmentLabelComponent>;\n\n private enterEventTarget: any;\n\n private fileAttachmentId = uniqueId++;\n\n private ngUnsubscribe = new Subject<void>();\n\n private _disabled = false;\n\n private _value: any;\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n private fileAttachmentService: SkyFileAttachmentService,\n private fileItemService: SkyFileItemService,\n @Self() @Optional() private ngControl?: NgControl,\n @Optional() private themeSvc?: SkyThemeService\n ) {\n this.labelElementId = `sky-file-attachment-label-${this.fileAttachmentId}`;\n this.fileDropDescriptionElementId = `sky-file-attachment-drop-description-${this.fileAttachmentId}`;\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public ngOnInit(): void {\n if (this.themeSvc) {\n this.themeSvc.settingsChange\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((themeSettings) => {\n this.currentThemeName = themeSettings.currentSettings.theme.name;\n this.updateFileAttachmentButton();\n });\n }\n }\n\n public ngAfterViewInit(): void {\n // This is needed to address a bug in Angular 7.\n // When a control value is set intially, its value is not represented on the view.\n // See: https://github.com/angular/angular/issues/13792\n // Of note is the parent check which allows us to determine if the form is reactive.\n // Without this check there is a changed before checked error\n /* istanbul ignore else */\n if (this.ngControl) {\n setTimeout(() => {\n this.ngControl.control.setValue(this.value, {\n emitEvent: false,\n });\n this.changeDetector.markForCheck();\n });\n\n // Backwards compatibility support for anyone still using Validators.Required.\n this.required =\n this.required || SkyFormsUtility.hasRequiredValidation(this.ngControl);\n }\n }\n\n public ngAfterContentInit(): void {\n // Handles updating classes when label changes\n this.labelComponents.changes\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(() => {\n this.changeDetector.detectChanges();\n });\n }\n\n public isImage(): boolean {\n return this.fileItemService.isImage(this.value);\n }\n\n public onDropClicked(): void {\n this._onTouched();\n this.inputEl.nativeElement.click();\n }\n\n public fileChangeEvent(fileChangeEvent: any): void {\n this.handleFiles(fileChangeEvent.target.files);\n }\n\n public fileDragEnter(dragEnterEvent: any): void {\n // Save this target to know when the drag event leaves\n this.enterEventTarget = dragEnterEvent.target;\n dragEnterEvent.stopPropagation();\n dragEnterEvent.preventDefault();\n }\n\n public fileDragOver(dragOverEvent: any): void {\n const transfer = dragOverEvent.dataTransfer;\n\n dragOverEvent.stopPropagation();\n dragOverEvent.preventDefault();\n\n if (transfer) {\n if (transfer.items) {\n const files = transfer.items;\n\n for (let index = 0; index < files.length; index++) {\n const file: any = files[index];\n\n if (\n file.type &&\n this.fileAttachmentService.fileTypeRejected(\n file.type,\n this.acceptedTypes\n )\n ) {\n this.rejectedOver = true;\n this.acceptedOver = false;\n return;\n }\n }\n\n if (files.length > 0 && !this.acceptedOver) {\n this.rejectedOver = false;\n this.acceptedOver = true;\n }\n } else if (transfer.files) {\n // If the browser does not support DataTransfer.items,\n // defer file-type checking to drop handler.\n // https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/items#Browser_compatibility\n this.rejectedOver = false;\n this.acceptedOver = true;\n }\n }\n }\n\n public fileDrop(dropEvent: DragEvent): void {\n dropEvent.stopPropagation();\n dropEvent.preventDefault();\n\n this.enterEventTarget = undefined;\n this.rejectedOver = false;\n this.acceptedOver = false;\n\n if (dropEvent.dataTransfer && dropEvent.dataTransfer.files) {\n if (dropEvent.dataTransfer.files.length > 1) {\n return;\n }\n\n if (\n this.fileAttachmentService.hasDirectory(dropEvent.dataTransfer.files)\n ) {\n return;\n }\n\n this.handleFiles(dropEvent.dataTransfer.files);\n }\n }\n\n public fileDragLeave(dragLeaveEvent: any): void {\n if (this.enterEventTarget === dragLeaveEvent.target) {\n this.rejectedOver = false;\n this.acceptedOver = false;\n }\n }\n\n public deleteFileAttachment(): void {\n this.value = undefined;\n this.changeDetector.markForCheck();\n this.emitFileChangeEvent(this.value);\n }\n\n public getFileName(truncate = true): string | undefined {\n if (this.value) {\n const dropName =\n this.fileItemService.isFile(this.value) && this.value.file.name\n ? this.value.file.name\n : this.value.url;\n\n if (truncate && dropName.length > 26) {\n return dropName.slice(0, 26) + '...';\n } else {\n return dropName;\n }\n } else {\n return undefined;\n }\n }\n\n public ngOnDestroy(): void {\n this.fileChange.complete();\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public registerOnChange(fn: (value: any) => any): void {\n this._onChange = fn;\n }\n public registerOnTouched(fn: () => any): void {\n this._onTouched = fn;\n }\n\n public writeValue(value: any): void {\n this.value = value;\n this.changeDetector.markForCheck();\n }\n\n /**\n * @internal\n * Sets the disabled state of the control. Implemented as a part of ControlValueAccessor.\n * @param isDisabled Whether the control should be disabled.\n */\n public setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n this.changeDetector.markForCheck();\n }\n\n public emitClick(): void {\n this.fileClick.emit({\n file: this.value,\n });\n }\n\n private emitFileChangeEvent(currentFile: SkyFileItem): void {\n if (currentFile && !currentFile.errorType) {\n this.writeValue(currentFile);\n }\n this.fileChange.emit({\n file: currentFile,\n } as SkyFileAttachmentChange);\n\n this.inputEl.nativeElement.value = '';\n }\n\n private loadFile(file: SkyFileItem): void {\n const reader = new FileReader();\n\n reader.addEventListener('load', (event: any): void => {\n file.url = event.target.result;\n this.emitFileChangeEvent(file);\n });\n\n reader.addEventListener('error', (event: any): void => {\n this.emitFileChangeEvent(file);\n });\n\n reader.addEventListener('abort', (event: any): void => {\n this.emitFileChangeEvent(file);\n });\n\n reader.readAsDataURL(file.file);\n }\n\n private handleFiles(files: FileList): void {\n const processedFiles = this.fileAttachmentService.checkFiles(\n files,\n this.minFileSize,\n this.maxFileSize,\n this.acceptedTypes,\n this.validateFn\n );\n\n for (const file of processedFiles) {\n if (file.errorType) {\n this.emitFileChangeEvent(file);\n } else {\n this.loadFile(file);\n }\n }\n }\n\n private updateFileAttachmentButton(): void {\n this.showFileAttachmentButton = !(\n this.value && this.currentThemeName === 'modern'\n );\n this.changeDetector.markForCheck();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private _onChange = (_: any) => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private _onTouched = () => {};\n}\n","<div class=\"sky-file-attachment-wrapper\">\n <div\n class=\"sky-file-attachment-label-wrapper\"\n [attr.aria-required]=\"required ? true : null\"\n [attr.id]=\"labelElementId\"\n [ngClass]=\"{ 'sky-control-label-required': required && hasLabelComponent }\"\n >\n <ng-container *ngTemplateOutlet=\"labelContent\"></ng-container>\n </div>\n <div\n class=\"sky-file-attachment-upload sky-file-attachment sky-file-attachment-target\"\n [ngClass]=\"{\n 'sky-file-attachment-accept': acceptedOver,\n 'sky-file-attachment-reject': rejectedOver\n }\"\n (dragenter)=\"fileDragEnter($event)\"\n (dragover)=\"fileDragOver($event)\"\n (dragleave)=\"fileDragLeave($event)\"\n (drop)=\"fileDrop($event)\"\n >\n <div\n aria-hidden=\"true\"\n class=\"sky-file-attachment-drop-description\"\n role=\"tooltip\"\n [attr.id]=\"fileDropDescriptionElementId\"\n >\n {{ 'skyux_file_attachment_file_upload_drag_or_click' | skyLibResources }}\n </div>\n <input\n hidden\n tabindex=\"-1\"\n type=\"file\"\n [attr.accept]=\"acceptedTypes || null\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n (change)=\"fileChangeEvent($event)\"\n #fileInput\n />\n <button\n *ngIf=\"showFileAttachmentButton\"\n class=\"sky-file-attachment-btn sky-btn sky-btn-default\"\n type=\"button\"\n [attr.aria-describedby]=\"fileDropDescriptionElementId\"\n [disabled]=\"disabled\"\n (click)=\"onDropClicked()\"\n >\n <sky-icon icon=\"folder-open-o\"></sky-icon>\n {{\n value\n ? ('skyux_file_attachment_button_label_replace_file'\n | skyLibResources)\n : ('skyux_file_attachment_button_label_choose_file' | skyLibResources)\n }}\n </button>\n <sky-icon\n *ngIf=\"value && !isImage() && currentThemeName === 'modern'\"\n class=\"sky-file-attachment-icon sky-deemphasized\"\n icon=\"file-o\"\n size=\"2x\"\n >\n </sky-icon>\n <span\n *ngIf=\"value || currentThemeName === 'default'\"\n class=\"sky-file-attachment-name\"\n >\n <a\n *ngIf=\"value; else noFile\"\n [attr.title]=\"getFileName(false)\"\n (click)=\"emitClick()\"\n >\n {{ getFileName() }}\n </a>\n </span>\n <ng-template #noFile>\n <span class=\"sky-file-attachment-none sky-deemphasized\">\n {{ 'skyux_file_attachment_label_no_file_chosen' | skyLibResources }}\n </span>\n </ng-template>\n <button\n *ngIf=\"value\"\n class=\"sky-btn sky-btn-borderless sky-file-attachment-delete\"\n type=\"button\"\n [attr.aria-label]=\"\n 'skyux_file_attachment_file_item_delete' | skyLibResources\n \"\n [disabled]=\"disabled\"\n [skyThemeClass]=\"{\n 'sky-btn-icon-borderless': 'modern'\n }\"\n (click)=\"deleteFileAttachment()\"\n >\n <sky-icon icon=\"trash-o\" size=\"md\"> </sky-icon>\n </button>\n </div>\n\n <img\n *ngIf=\"value && isImage()\"\n class=\"sky-file-attachment-preview-img\"\n [alt]=\"\n 'skyux_file_attachment_file_upload_image_preview_alt_text'\n | skyLibResources\n \"\n [src]=\"value.url\"\n />\n</div>\n\n<ng-template #labelContent>\n <ng-content select=\"sky-file-attachment-label\"></ng-content>\n</ng-template>\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n ViewChild,\n} from '@angular/core';\n\nimport { SkyFileAttachmentService } from './file-attachment.service';\nimport { SkyFileItem } from './file-item';\nimport { SkyFileLink } from './file-link';\nimport { SkyFileDropChange } from './types/file-drop-change';\n\n/**\n * Provides an element to attach multiple files where users can browse or drag and drop local files\n * or provide hyperlinks to external files. You can leave the contents of the component\n * blank to display the drop zone's default UI, or you can specify custom content to\n * display instead. When the module initializes, it disables the ability to drag and\n * drop files for the entire window to prevent the browser from opening files that are\n * accidentally dropped outside the target zone. If you implement your own file drop functionality\n * outside of the file drop component, you can place the `sky-file-drop-target` CSS class\n * on the element that receives drop events to exempt it from the drop exclusion rule.\n */\n@Component({\n selector: 'sky-file-drop',\n templateUrl: './file-drop.component.html',\n styleUrls: ['./file-drop.component.scss'],\n providers: [SkyFileAttachmentService],\n})\nexport class SkyFileDropComponent implements OnDestroy {\n /**\n * Fires when users add or remove files.\n */\n @Output()\n public filesChanged = new EventEmitter<SkyFileDropChange>();\n\n /**\n * Fires when the link input box triggers a blur event.\n */\n @Output()\n public linkInputBlur = new EventEmitter<void>();\n\n /**\n * Fires when users add or remove links.\n */\n @Output()\n public linkChanged = new EventEmitter<SkyFileLink>();\n\n /**\n * Specifies an ARIA label for the file upload button. This provides a text equivalent for\n * screen readers [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n */\n @Input()\n public fileUploadAriaLabel: string;\n\n /**\n * Specifies an ARIA label for the link upload input. This provides a text equivalent for\n * screen readers [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n */\n @Input()\n public linkUploadAriaLabel: string;\n\n /**\n * Specifies the minimum size in bytes for valid files.\n */\n @Input()\n public minFileSize = 0;\n\n /**\n * Specifies the maximum size in bytes for valid files.\n */\n @Input()\n public maxFileSize = 500000;\n\n /**\n * Indicates whether users can drag and drop multiple files at the same time.\n */\n @Input()\n public multiple = true;\n\n /**\n * Specifies a custom validation function. This validation runs alongside the internal\n * file validation. This function takes a `SkyFileItem` object as a parameter.\n */\n @Input()\n public validateFn: Function;\n\n /**\n * Specifies a comma-delimited string literal of MIME types that users can attach.\n * By default, all file types are allowed.\n * @required\n */\n @Input()\n public acceptedTypes: string;\n\n /**\n * Indicates whether to disable the option to browse for files to attach.\n */\n @Input()\n public noClick = false;\n\n /**\n * Indicates whether to display the option to attach files from URLs rather than from local devices.\n */\n @Input()\n public allowLinks = false;\n\n @ViewChild('fileInput')\n public inputEl: ElementRef;\n\n public rejectedOver = false;\n public acceptedOver = false;\n public linkUrl: string;\n\n private enterEventTarget: any;\n\n constructor(private fileAttachmentService: SkyFileAttachmentService) {}\n\n public ngOnDestroy() {\n this.filesChanged.complete();\n this.linkChanged.complete();\n this.linkInputBlur.complete();\n }\n\n public dropClicked() {\n if (!this.noClick) {\n this.inputEl.nativeElement.click();\n }\n }\n\n public fileChangeEvent(fileChangeEvent: any) {\n this.handleFiles(fileChangeEvent.target.files);\n }\n\n public fileDragEnter(dragEnterEvent: any) {\n // Save this target to know when the drag event leaves\n this.enterEventTarget = dragEnterEvent.target;\n dragEnterEvent.stopPropagation();\n dragEnterEvent.preventDefault();\n }\n\n public fileDragOver(dragOverEvent: any) {\n const transfer = dragOverEvent.dataTransfer;\n\n dragOverEvent.stopPropagation();\n dragOverEvent.preventDefault();\n\n if (transfer) {\n if (transfer.items) {\n const files = transfer.items;\n\n for (let index = 0; index < files.length; index++) {\n const file: any = files[index];\n\n if (\n file.type &&\n this.fileAttachmentService.fileTypeRejected(\n file.type,\n this.acceptedTypes\n )\n ) {\n this.rejectedOver = true;\n this.acceptedOver = false;\n return;\n }\n }\n\n if (files.length > 0 && !this.acceptedOver) {\n this.rejectedOver = false;\n this.acceptedOver = true;\n }\n } /* istanbul ignore next: untestable */ else if (transfer.files) {\n // If the browser does not support DataTransfer.items,\n // defer file-type checking to drop handler.\n // https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/items#Browser_compatibility\n this.rejectedOver = false;\n this.acceptedOver = true;\n }\n }\n }\n\n public fileDrop(dropEvent: DragEvent): void {\n dropEvent.stopPropagation();\n dropEvent.preventDefault();\n\n this.enterEventTarget = undefined;\n this.rejectedOver = false;\n this.acceptedOver = false;\n\n if (dropEvent.dataTransfer && dropEvent.dataTransfer.files) {\n const hasDirectory = this.fileAttachmentService.hasDirectory(\n dropEvent.dataTransfer.files\n );\n const invalidNumberOfFiles =\n !this.multiple && dropEvent.dataTransfer.files.length > 1;\n\n if (hasDirectory || invalidNumberOfFiles) {\n return;\n }\n\n this.handleFiles(dropEvent.dataTransfer.files);\n }\n }\n\n public fileDragLeave(dragLeaveEvent: any) {\n if (this.enterEventTarget === dragLeaveEvent.target) {\n this.rejectedOver = false;\n this.acceptedOver = false;\n }\n }\n\n public addLinkEnter(event: KeyboardEvent) {\n if (event.which === 13) {\n this.addLink(event);\n }\n }\n\n public addLink(event: Event) {\n event.preventDefault();\n this.linkChanged.emit({ url: this.linkUrl } as SkyFileLink);\n this.linkUrl = undefined;\n }\n\n public onLinkBlur(): void {\n this.linkInputBlur.emit();\n }\n\n private emitFileChangeEvent(\n totalFiles: number,\n rejectedFileArray: Array<SkyFileItem>,\n validFileArray: Array<SkyFileItem>\n ) {\n if (totalFiles === rejectedFileArray.length + validFileArray.length) {\n this.filesChanged.emit({\n files: validFileArray,\n rejectedFiles: rejectedFileArray,\n } as SkyFileDropChange);\n\n this.inputEl.nativeElement.value = '';\n }\n }\n\n private filesRejected(\n file: SkyFileItem,\n validFileArray: Array<SkyFileItem>,\n rejectedFileArray: Array<SkyFileItem>,\n totalFiles: number\n ) {\n rejectedFileArray.push(file);\n this.emitFileChangeEvent(totalFiles, rejectedFileArray, validFileArray);\n }\n\n private loadFile(\n fileDrop: SkyFileDropComponent,\n file: SkyFileItem,\n validFileArray: Array<SkyFileItem>,\n rejectedFileArray: Array<SkyFileItem>,\n totalFiles: number\n ) {\n const reader = new FileReader();\n\n reader.addEventListener('load', (event: any) => {\n file.url = event.target.result;\n validFileArray.push(file);\n fileDrop.emitFileChangeEvent(\n totalFiles,\n rejectedFileArray,\n validFileArray\n );\n });\n\n reader.addEventListener('error', (event: any) => {\n fileDrop.filesRejected(\n file,\n validFileArray,\n rejectedFileArray,\n totalFiles\n );\n });\n\n reader.addEventListener('abort', (event: any) => {\n fileDrop.filesRejected(\n file,\n validFileArray,\n rejectedFileArray,\n totalFiles\n );\n });\n\n reader.readAsDataURL(file.file);\n }\n\n private handleFiles(files: FileList) {\n const validFileArray: Array<SkyFileItem> = [];\n const rejectedFileArray: Array<SkyFileItem> = [];\n const totalFiles = files.length;\n\n const processedFiles = this.fileAttachmentService.checkFiles(\n files,\n this.minFileSize,\n this.maxFileSize,\n this.acceptedTypes,\n this.validateFn\n );\n\n for (const file of processedFiles) {\n if (file.errorType) {\n this.filesRejected(file, validFileArray, rejectedFileArray, totalFiles);\n } else {\n this.loadFile(\n this,\n file,\n validFileArray,\n rejectedFileArray,\n totalFiles\n );\n }\n }\n }\n}\n","<div\n class=\"sky-file-drop-row\"\n [ngClass]=\"{ 'sky-file-drop-allow-links': allowLinks }\"\n>\n <div\n class=\"sky-file-drop-col\"\n [ngClass]=\"{\n 'sky-file-drop-accept': acceptedOver,\n 'sky-file-drop-reject': rejectedOver\n }\"\n >\n <button\n class=\"sky-file-drop sky-file-drop-target\"\n type=\"button\"\n (click)=\"dropClicked()\"\n (dragover)=\"fileDragOver($event)\"\n (dragenter)=\"fileDragEnter($event)\"\n (dragleave)=\"fileDragLeave($event)\"\n (drop)=\"fileDrop($event)\"\n [attr.aria-label]=\"\n fileUploadAriaLabel ||\n ('skyux_file_attachment_file_upload_drag_or_click' | skyLibResources)\n \"\n ></button>\n\n <input\n tabindex=\"-1\"\n aria-hidden=\"true\"\n type=\"file\"\n class=\"sky-file-input-hidden\"\n [attr.multiple]=\"multiple ? multiple : null\"\n [attr.accept]=\"acceptedTypes ? acceptedTypes : null\"\n (change)=\"fileChangeEvent($event)\"\n #fileInput\n />\n\n <div\n class=\"sky-file-drop-contents sky-padding-even-default\"\n *ngIf=\"customEl.children.length === 0\"\n >\n <div class=\"sky-file-drop-contents-not-over\">\n <div class=\"sky-file-drop-text-header sky-headline\">\n {{\n 'skyux_file_attachment_file_upload_drag_file_here' | skyLibResources\n }}\n </div>\n <div class=\"sky-file-drop-text\">\n {{\n 'skyux_file_attachment_file_upload_or_click_to_browse'\n | skyLibResources\n }}\n </div>\n <sky-icon icon=\"cloud-upload\" class=\"sky-file-upload-icon\"></sky-icon>\n </div>\n\n <!-- This will appear when file is dragged over and is valid -->\n <div class=\"sky-file-drop-contents-accept\">\n <div class=\"sky-file-drop-text-header sky-headline\">\n {{\n 'skyux_file_attachment_file_upload_drop_files_here'\n | skyLibResources\n }}\n </div>\n <sky-icon icon=\"bullseye\" class=\"sky-file-upload-icon\"></sky-icon>\n </div>\n\n <!-- This will appear when file is dragged over and is invalid -->\n <div class=\"sky-file-drop-contents-reject\">\n <div class=\"sky-file-drop-text-header sky-headline\">\n {{\n 'skyux_file_attachment_file_upload_invalid_file' | skyLibResources\n }}\n </div>\n <sky-icon icon=\"times-circle\" class=\"sky-file-upload-icon\"></sky-icon>\n </div>\n </div>\n\n <div class=\"sky-file-drop-contents-custom\" #customEl>\n <ng-content></ng-content>\n </div>\n </div>\n <div class=\"sky-file-drop-col\" *ngIf=\"allowLinks\">\n <div class=\"sky-file-drop-contents sky-padding-even-default\">\n <div class=\"sky-file-drop-link\">\n <div class=\"sky-file-drop-link-header\">\n <div class=\"sky-file-drop-text-header sky-headline\">\n {{\n 'skyux_file_attachment_file_upload_paste_link' | skyLibResources\n }}\n </div>\n </div>\n <div class=\"sky-form-group\">\n <input\n type=\"text\"\n class=\"sky-form-control\"\n [attr.aria-label]=\"\n linkUploadAriaLabel ||\n ('skyux_file_attachment_file_upload_link_input' | skyLibResources)\n \"\n [attr.placeholder]=\"\n 'skyux_file_attachment_file_upload_link_placeholder'\n | skyLibResources\n \"\n [(ngModel)]=\"linkUrl\"\n (blur)=\"onLinkBlur()\"\n (keyup)=\"addLinkEnter($event)\"\n />\n </div>\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-primary\"\n [disabled]=\"!linkUrl\"\n (click)=\"addLink($event)\"\n >\n {{\n 'skyux_file_attachment_file_upload_paste_link_done'\n | skyLibResources\n }}\n </button>\n </div>\n </div>\n </div>\n</div>\n","import { DecimalPipe } from '@angular/common';\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\n/**\n * @internal\n */\n@Pipe({\n name: 'skyFileSize',\n})\nexport class SkyFileSizePipe implements PipeTransform {\n constructor(\n private decimalPipe: DecimalPipe,\n private resourcesService: SkyLibResourcesService\n ) {}\n\n public transform(input: number): string {\n let decimalPlaces = 0,\n dividend = 1,\n template: string;\n\n if (input === null || input === undefined) {\n return '';\n }\n\n if (Math.abs(input) === 1) {\n template = 'skyux_file_attachment_file_size_b_singular';\n } else if (input < 1000) {\n template = 'skyux_file_attachment_file_size_b_plural';\n } else if (input < 1e6) {\n template = 'skyux_file_attachment_file_size_kb';\n dividend = 1000;\n } else if (input < 1e9) {\n template = 'skyux_file_attachment_file_size_mb';\n dividend = 1e6;\n decimalPlaces = 1;\n } else {\n template = 'skyux_file_attachment_file_size_gb';\n dividend = 1e9;\n decimalPlaces = 1;\n }\n\n const roundedSize =\n Math.floor(input / (dividend / Math.pow(10, decimalPlaces))) /\n Math.pow(10, decimalPlaces);\n\n const formattedSize = this.decimalPipe.transform(roundedSize, '.0-3');\n\n return this.getString(template, formattedSize);\n }\n\n private getString(key: string, ...args: any[]): string {\n // TODO: Need to implement the async `getString` method in a breaking change.\n return this.resourcesService.getStringForLocale(\n { locale: 'en-US' },\n key,\n ...args\n );\n }\n}\n","import {\n Component,\n DoCheck,\n EventEmitter,\n Input,\n KeyValueDiffer,\n KeyValueDiffers,\n Output,\n} from '@angular/core';\n\nimport { SkyFileItem } from './file-item';\nimport { SkyFileItemService } from './file-item.service';\nimport { SkyFileLink } from './file-link';\n\n@Component({\n selector: 'sky-file-item',\n templateUrl: './file-item.component.html',\n styleUrls: ['./file-item.component.scss'],\n})\nexport class SkyFileItemComponent implements DoCheck {\n /**\n * Specifies the summary information to display about file attachments. For local files,\n * the default summary includes the file name, file size, file preview, and a delete button.\n * For external files, the default summary includes the URL and a delete button.\n * You can include additional inputs to display user-entered metadata.\n * @required\n */\n @Input()\n public fileItem: SkyFileItem | SkyFileLink;\n\n /**\n * Fires when users select the delete button for an item. The deleted item is passed to the\n * function.\n */\n @Output()\n public deleteFile = new EventEmitter<SkyFileLink | SkyFileItem>();\n\n public get fileName(): string {\n return (this.fileItem as SkyFileItem).file.name;\n }\n\n public get fileSize(): number {\n return (this.fileItem as SkyFileItem).file.size;\n }\n\n public get url(): string {\n return this.fileItem.url;\n }\n\n public icon: string;\n\n private differ: KeyValueDiffer<any, any>;\n\n public constructor(\n private differs: KeyValueDiffers,\n private fileItemService: SkyFileItemService\n ) {\n this.differ = this.differs.find({}).create();\n }\n\n public ngDoCheck() {\n const changes = this.differ.diff(this.fileItem);\n\n if (changes) {\n let cls: string;\n const extensionUpper = this.fileItemService.getFileExtensionUpper(\n this.fileItem as SkyFileItem\n );\n let fileTypeUpper: string;\n\n switch (extensionUpper) {\n case '.PDF':\n cls = 'pdf';\n break;\n case '.GZ':\n case '.RAR':\n case '.TGZ':\n case '.ZIP':\n cls = 'archive';\n break;\n case '.PPT':\n case '.PPTX':\n cls = 'powerpoint';\n break;\n case '.DOC':\n case '.DOCX':\n cls = 'word';\n break;\n case '.XLS':\n case '.XLSX':\n cls = 'excel';\n break;\n case '.TXT':\n cls = 'text';\n break;\n case '.HTM':\n case '.HTML':\n cls = 'code';\n break;\n default:\n break;\n }\n\n if (!cls) {\n fileTypeUpper = this.fileItemService.getFileTypeUpper(\n this.fileItem as SkyFileItem\n );\n\n switch (fileTypeUpper.substr(0, fileTypeUpper.indexOf('/'))) {\n case 'AUDIO':\n cls = 'audio';\n break;\n case 'IMAGE':\n // Normally images are displayed as thumbnails, but if an image type is not recognized\n // as being widely supported by modern browsers (e.g. TIFF files) then an icon should\n // be displayed instead.\n cls = 'image';\n break;\n case 'TEXT':\n cls = 'text';\n break;\n case 'VIDEO':\n cls = 'video';\n break;\n default:\n break;\n }\n }\n this.icon = 'file-' + (cls ? cls + '-' : '') + 'o';\n }\n }\n\n public itemDelete() {\n this.deleteFile.emit(this.fileItem);\n }\n\n public isFile() {\n return this.fileItemService.isFile(this.fileItem as SkyFileItem);\n }\n\n public isImage() {\n return this.fileItemService.isImage(this.fileItem as SkyFileItem);\n }\n}\n","<div class=\"sky-file-item sky-padding-even-default\">\n <div class=\"sky-file-item-title\">\n <div class=\"sky-file-item-name-container\">\n <div class=\"sky-file-item-name\">\n <strong *ngIf=\"isFile()\">{{ fileName }}</strong>\n <strong *ngIf=\"!isFile()\">{{ url }}</strong>\n </div>\n <div class=\"sky-file-item-size\" *ngIf=\"isFile()\">\n ({{ fileSize | skyFileSize }})\n </div>\n </div>\n <div class=\"sky-file-item-controls\">\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-file-item-btn-delete\"\n [attr.aria-label]=\"\n 'skyux_file_attachment_file_item_delete' | skyLibResources\n \"\n (click)=\"itemDelete()\"\n >\n <sky-icon icon=\"trash-o\" size=\"lg\"></sky-icon>\n </button>\n </div>\n </div>\n <div class=\"sky-file-item-content\">\n <div class=\"sky-file-item-preview\">\n <div *ngIf=\"isImage()\" class=\"sky-file-item-preview-img-container\">\n <img\n class=\"sky-file-item-preview-img\"\n [src]=\"url\"\n [alt]=\"\n 'skyux_file_attachment_file_upload_image_preview_alt_text'\n | skyLibResources\n \"\n />\n </div>\n <div *ngIf=\"!isImage()\" class=\"sky-file-item-preview-other\">\n <sky-icon [icon]=\"icon\"></sky-icon>\n </div>\n </div>\n <div class=\"sky-file-item-content-custom\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n","import { CommonModule, DecimalPipe } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyIconModule } from '@skyux/indicators';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyFormsResourcesModule } from '../shared/sky-forms-resources.module';\n\nimport { SkyFileAttachmentLabelComponent } from './file-attachment-label.component';\nimport { SkyFileAttachmentComponent } from './file-attachment.component';\nimport { SkyFileDropComponent } from './file-drop.component';\nimport { SkyFileItemComponent } from './file-item.component';\nimport { SkyFileItemService } from './file-item.service';\nimport { SkyFileSizePipe } from './file-size.pipe';\n\n@NgModule({\n declarations: [\n SkyFileAttachmentComponent,\n SkyFileAttachmentLabelComponent,\n SkyFileDropComponent,\n SkyFileItemComponent,\n SkyFileSizePipe,\n ],\n imports: [\n CommonModule,\n FormsModule,\n SkyFormsResourcesModule,\n SkyI18nModule,\n SkyIconModule,\n SkyThemeModule,\n ],\n exports: [\n SkyFileAttachmentComponent,\n SkyFileAttachmentLabelComponent,\n SkyFileDropComponent,\n SkyFileItemComponent,\n SkyFileSizePipe,\n ],\n providers: [DecimalPipe, SkyFileItemService],\n})\nexport class SkyFileAttachmentsModule {}\n","import { ElementRef, Injectable } from '@angular/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyInputBoxAdapterService {\n public focusControl(elRef: ElementRef): void {\n const control = elRef.nativeElement.querySelector('.sky-form-control');\n /* istanbul ignore else */\n if (control) {\n control.focus();\n }\n }\n\n /**\n * Returns the inline help element.\n */\n public getInlineHelpElement(elRef: ElementRef): HTMLElement {\n return elRef.nativeElement.querySelector('.sky-control-help');\n }\n\n /**\n * Returns true if the provided element contains the focused element.\n */\n public isFocusInElement(el: HTMLElement): boolean {\n if (el) {\n return (\n el === document.activeElement || el.contains(document.activeElement)\n );\n }\n return false;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { SkyInputBoxPopulateArgs } from './input-box-populate-args';\nimport { SkyInputBoxComponent } from './input-box.component';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyInputBoxHostService {\n private host: SkyInputBoxComponent;\n\n public init(host: SkyInputBoxComponent): void {\n this.host = host;\n }\n\n public populate(args: SkyInputBoxPopulateArgs): void {\n this.host.populate(args);\n }\n}\n","import {\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n Input,\n OnInit,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n AbstractControlDirective,\n FormControlDirective,\n FormControlName,\n NgModel,\n} from '@angular/forms';\n\nimport { SkyInputBoxAdapterService } from './input-box-adapter.service';\nimport { SkyInputBoxHostService } from './input-box-host.service';\nimport { SkyInputBoxPopulateArgs } from './input-box-populate-args';\n\n/**\n * Creates a wrapper to provide styling for `input` and `label` elements. To render the\n * component correctly, include the `sky-form-control` CSS class on the `input` element\n * and the `sky-control-label` CSS class on the `label` element. To display a help button\n * beside the label, include a help button element in the `sky-input-box` element and a\n * `sky-control-help` CSS class on that element.\n */\n@Component({\n selector: 'sky-input-box',\n templateUrl: './input-box.component.html',\n styleUrls: ['./input-box.component.scss'],\n providers: [SkyInputBoxAdapterService, SkyInputBoxHostService],\n // Note that change detection is not set to OnPush; default change detection allows the\n // invalid CSS class to be added when the content control's invalid/dirty state changes.\n encapsulation: ViewEncapsulation.None,\n})\nexport class SkyInputBoxComponent implements OnInit {\n /**\n * Indicates whether to visually highlight the input box in an error state. If `hasErrors` is `false`, the input box still\n * displays in an error state when either the `ngModel` or the Angular `FormControl` contain an error.\n * @default false\n */\n @Input()\n public hasErrors: boolean;\n\n /**\n * Indicates whether to visually highlight the input box as disabled. To disable the input box's\n * `input` element, use the HTML `disabled` attribute or the Angular `FormControl.disabled`\n * property. You must set both properties to disable an `input` element and visually indicate\n * the disabled state on the input box.\n * @default false\n */\n @Input()\n public disabled: boolean;\n\n public hostInputTemplate: TemplateRef<unknown>;\n\n public hostButtonsTemplate: TemplateRef<unknown>;\n\n public hostButtonsInsetTemplate: TemplateRef<unknown>;\n\n public hostButtonsLeftTemplate: TemplateRef<unknown>;\n\n public formControlHasFocus: boolean;\n\n public hostIconsInsetTemplate: TemplateRef<unknown>;\n\n public hostIconsInsetLeftTemplate: TemplateRef<unknown>;\n\n @ContentChild(FormControlDirective)\n public formControl: FormControlDirective;\n\n @ContentChild(FormControlName)\n public formControlByName: FormControlName;\n\n @ContentChild(NgModel)\n public ngModel: NgModel;\n\n public get hasErrorsComputed(): boolean {\n if (this.hasErrors === undefined) {\n return (\n this.controlHasErrors(this.formControl) ||\n this.controlHasErrors(this.formControlByName) ||\n this.controlHasErrors(this.ngModel)\n );\n }\n\n return this.hasErrors;\n }\n\n constructor(\n private changeRef: ChangeDetectorRef,\n private inputBoxHostSvc: SkyInputBoxHostService,\n private adapterService: SkyInputBoxAdapterService,\n private elementRef: ElementRef\n ) {}\n\n public ngOnInit(): void {\n this.inputBoxHostSvc.init(this);\n }\n\n public formControlFocusIn(): void {\n const inlineHelpEl = this.adapterService.getInlineHelpElement(\n this.elementRef\n );\n if (!this.adapterService.isFocusInElement(inlineHelpEl)) {\n this.updateHasFocus(true);\n }\n }\n\n public formControlFocusOut(): void {\n this.updateHasFocus(false);\n }\n\n public onInsetIconClick(): void {\n if (!this.disabled) {\n this.adapterService.focusControl(this.elementRef);\n }\n }\n\n public populate(args: SkyInputBoxPopulateArgs): void {\n this.hostInputTemplate = args.inputTemplate;\n this.hostButtonsTemplate = args.buttonsTemplate;\n this.hostButtonsLeftTemplate = args.buttonsLeftTemplate;\n this.hostButtonsInsetTemplate = args.buttonsInsetTemplate;\n this.hostIconsInsetTemplate = args.iconsInsetTemplate;\n this.hostIconsInsetLeftTemplate = args.iconsInsetLeftTemplate;\n }\n\n private updateHasFocus(hasFocus: boolean): void {\n // Some components manipulate the focus of elements inside an input box programmatically,\n // which can cause an `ExpressionChangedAfterItHasBeenCheckedError` if focus was set after\n // initial change detection. Using `setTimeout()` here fixes it.\n setTimeout(() => {\n this.formControlHasFocus = hasFocus;\n this.changeRef.markForCheck();\n });\n }\n\n private controlHasErrors(control: AbstractControlDirective) {\n return control && control.invalid && (control.dirty || control.touched);\n }\n}\n","<div\n *skyThemeIf=\"'default'\"\n class=\"sky-input-box\"\n [ngClass]=\"{\n 'sky-input-box-disabled': disabled\n }\"\n>\n <div class=\"sky-form-group\">\n <div class=\"sky-input-box-label-wrapper\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"inlineHelpTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"characterCountTemplate\"></ng-container>\n </div>\n <div class=\"sky-input-group\">\n <ng-container *ngTemplateOutlet=\"buttonsLeftTemplate\"></ng-container>\n <div\n class=\"sky-input-box-input-group-inner\"\n [ngClass]=\"{\n 'sky-field-status-active': formControlHasFocus,\n 'sky-field-status-invalid': hasErrorsComputed\n }\"\n (focusin)=\"formControlFocusIn()\"\n (focusout)=\"formControlFocusOut()\"\n >\n <ng-container *ngTemplateOutlet=\"iconsInsetLeftTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"inputTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"buttonsInsetTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"iconsInsetTemplate\"></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"buttonsTemplate\"></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"errorLabelTemplate\"></ng-container>\n </div>\n</div>\n\n<div\n *skyThemeIf=\"'modern'\"\n class=\"sky-input-box\"\n [ngClass]=\"{\n 'sky-input-box-disabled': disabled\n }\"\n>\n <div class=\"sky-input-box-group\">\n <ng-container *ngTemplateOutlet=\"buttonsLeftTemplate\"></ng-container>\n <div\n class=\"sky-input-box-group-form-control\"\n [ngClass]=\"{\n 'sky-input-box-group-form-control-focus': formControlHasFocus,\n 'sky-input-box-group-form-control-invalid': hasErrorsComputed\n }\"\n (focusin)=\"formControlFocusIn()\"\n (focusout)=\"formControlFocusOut()\"\n >\n <div class=\"sky-form-group\">\n <ng-container *ngTemplateOutlet=\"iconsInsetLeftTemplate\"></ng-container>\n <div class=\"sky-input-box-form-group-inner\">\n <div class=\"sky-input-box-label-wrapper\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"inlineHelpTemplate\"></ng-container>\n <ng-container\n *ngTemplateOutlet=\"characterCountTemplate\"\n ></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"inputTemplate\"></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"buttonsInsetTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"iconsInsetTemplate\"></ng-container>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"buttonsTemplate\"></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"errorLabelTemplate\"></ng-container>\n</div>\n\n<ng-template #labelTemplate>\n <ng-content select=\".sky-control-label\"></ng-content>\n</ng-template>\n\n<ng-template #inlineHelpTemplate>\n <ng-content select=\".sky-control-help\"></ng-content>\n</ng-template>\n\n<ng-template #characterCountTemplate>\n <ng-content select=\"sky-character-counter-indicator\"></ng-content>\n</ng-template>\n\n<ng-template #inputTemplate>\n <ng-content select=\".sky-form-control\"></ng-content>\n <ng-container *ngTemplateOutlet=\"hostInputTemplate\"></ng-container>\n</ng-template>\n\n<ng-template #buttonsLeftTemplate>\n <ng-content select=\".sky-input-group-btn.sky-input-box-btn-left\"></ng-content>\n <ng-container *ngTemplateOutlet=\"hostButtonsLeftTemplate\"></ng-container>\n</ng-template>\n\n<ng-template #buttonsTemplate>\n <ng-content\n select=\".sky-input-group-btn:not(.sky-input-box-btn-left):not(.sky-input-box-btn-inset)\"\n ></ng-content>\n <ng-container *ngTemplateOutlet=\"hostButtonsTemplate\"></ng-container>\n</ng-template>\n\n<ng-template #buttonsInsetTemplate>\n <ng-content\n select=\".sky-input-group-btn.sky-input-box-btn-inset\"\n ></ng-content>\n <ng-container *ngTemplateOutlet=\"hostButtonsInsetTemplate\"></ng-container>\n</ng-template>\n\n<ng-template #iconsInsetTemplate>\n <div class=\"sky-input-box-icon-inset-wrapper\" (click)=\"onInsetIconClick()\">\n <ng-content\n select=\".sky-input-group-icon.sky-input-box-icon-inset\"\n ></ng-content>\n <ng-container *ngTemplateOutlet=\"hostIconsInsetTemplate\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #iconsInsetLeftTemplate>\n <div\n class=\"sky-input-box-icon-inset-left-wrapper\"\n (click)=\"onInsetIconClick()\"\n >\n <ng-content\n select=\".sky-input-group-icon.sky-input-box-icon-inset-left\"\n ></ng-content>\n <ng-container *ngTemplateOutlet=\"hostIconsInsetLeftTemplate\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #errorLabelTemplate>\n <ng-content select=\".sky-error-label\"></ng-content>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyInputBoxComponent } from './input-box.component';\n\n@NgModule({\n declarations: [SkyInputBoxComponent],\n imports: [CommonModule, SkyThemeModule],\n exports: [SkyInputBoxComponent],\n})\nexport class SkyInputBoxModule {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n Provider,\n forwardRef,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\n\nimport { SkyFormsUtility } from '../shared/forms-utility';\n\nimport { SkyRadioChange } from './types/radio-change';\n\n/**\n * Auto-incrementing integer that generates unique IDs for radio components.\n */\nlet nextUniqueId = 0;\n\n/**\n * Provider Expression that allows sky-radio to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)].\n */\nconst SKY_RADIO_CONTROL_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SkyRadioComponent),\n multi: true,\n};\n\n/**\n * Renders a SKY UX-themed replacement for an HTML `input` element\n * with `type=\"radio\"`. When users select a radio button, its value is driven through an\n * `ngModel` attribute that you specify on the `sky-radio` element or the parent `sky-radio-group` element.\n */\n@Component({\n selector: 'sky-radio',\n templateUrl: './radio.component.html',\n styleUrls: ['./radio.component.scss'],\n providers: [SKY_RADIO_CONTROL_VALUE_ACCESSOR],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyRadioComponent implements OnDestroy, ControlValueAccessor {\n /**\n * Fires when users focus off a radio button.\n */\n public blur = new Subject<void>();\n\n /**\n * Indicates whether the radio button is selected.\n * @default false\n */\n @Input()\n public set checked(value: boolean) {\n const newCheckedState = !!value;\n\n if (this._checked !== newCheckedState) {\n this._checked = newCheckedState;\n this._checkedChange.next(this._checked);\n\n if (newCheckedState) {\n this.selectedValue = this.value;\n }\n }\n\n this.changeDetector.markForCheck();\n }\n\n public get checked(): boolean {\n return this._checked;\n }\n\n /**\n * Indicates whether to disable the input.\n * @default false\n */\n @Input()\n public set disabled(value: boolean) {\n const coercedValue = SkyFormsUtility.coerceBooleanProperty(value);\n if (coercedValue !== this.disabled) {\n this._disabled = coercedValue;\n this._disabledChange.next(this._disabled);\n this.changeDetector.markForCheck();\n }\n }\n\n public get disabled(): boolean {\n return this._disabled;\n }\n\n /**\n * Specifies an ID for the radio button.\n * @default a unique, auto-incrementing integer. For example: `sky-radio-1`\n */\n @Input()\n public id = `sky-radio-${++nextUniqueId}`;\n\n /**\n * Specifies an ARIA label for the radio button. This sets the radio button's `aria-label`\n * attribute [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility)\n * when the radio button does not include a visible label. You must set this property for icon\n * radio buttons. If the radio button includes a visible label, use `labelledBy` instead.\n */\n @Input()\n public label: string;\n\n /**\n * Specifies the HTML element ID (without the leading `#`) of the element that labels\n * the radio button. This sets the radio button's `aria-labelledby` attribute\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n * If the radio button does not include a visible label, use `label` instead.\n */\n @Input()\n public labelledBy: string;\n\n /**\n * This property is deprecated in favor of the `name` property on the `sky-radio-group element`.\n * We recommend using the `sky-radio-group` element with all radio buttons, but if you opt not to,\n * then this property specifies a name for a group of radio buttons.\n * @deprecated\n */\n @Input()\n public set name(value: string) {\n this._name = value;\n this.changeDetector.markForCheck();\n }\n\n public get name(): string {\n return this._name;\n }\n\n /**\n * This property is deprecated in favor of\n * the `tabIndex` property on the `sky-radio-group` element. It specifies an index for the radio\n * button. If the index is not defined, it is set to the position of the radio button on load.\n * @deprecated\n */\n @Input()\n public set tabindex(value: number) {\n console.warn(\n 'The sky-radio `tabindex` property is deprecated. Please use the `tabindex` property on the sky-radio-group component.'\n );\n this._tabindex = value;\n this.changeDetector.markForCheck();\n }\n public get tabindex(): number {\n return this._tabindex || 0;\n }\n\n // For setting the tabindex from the radio group\n public set groupTabIndex(value: number) {\n this._tabindex = value;\n this.changeDetector.markForCheck();\n }\n\n /**\n * Specifies and binds a value to the radio button's `value` property. The value usually\n * corresponds to the radio button's label, which you specify with the `sky-radio-label`\n * component.\n * @required\n */\n @Input()\n public set value(value: any) {\n /* istanbul ignore else */\n if (this._value !== value) {\n if (this.selectedValue && this.selectedValue === this._value) {\n this.selectedValue = value;\n this.onChangeCallback(this.selectedValue);\n this.onTouchedCallback();\n }\n\n this._value = value;\n }\n\n this.changeDetector.markForCheck();\n }\n\n public get value(): any {\n return this._value;\n }\n\n /**\n * Specifies an icon to display in place of the radio button. To group radio buttons like in\n * the demo above, place the `sky-switch-icon-group` class on the direct parent element of the\n * radio buttons.\n */\n @Input()\n public icon: string;\n\n /**\n * Specifies a type to set the background color after users select an icon radio button.\n * The valid options correspond\n * [the label component's](https://developer.blackbaud.com/skyux/components/label)\n * label types. `danger` creates a red background, `info` creates a blue background,\n * `success` creates a green background, and `warning` creates an orange background.\n * @default \"info\"\n */\n @Input()\n public get radioType(): string {\n return this._radioType || 'info';\n }\n public set radioType(value: string) {\n if (value) {\n this._radioType = value.toLowerCase();\n }\n }\n\n /**\n * Fires when users select a radio button.\n */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-native\n public get change(): Observable<SkyRadioChange> {\n return this._change;\n }\n\n /**\n * Fires when the selected value changes.\n */\n @Output()\n public get checkedChange(): Observable<boolean> {\n return this._checkedChange;\n }\n\n /**\n * Fires when the selected value changes.\n */\n @Output()\n public get disabledChange(): Observable<boolean> {\n return this._disabledChange;\n }\n\n public get inputId(): string {\n return `sky-radio-${this.id}-input`;\n }\n\n public set selectedValue(value: any) {\n if (value !== this._selectedValue) {\n this._selectedValue = value;\n }\n }\n public get selectedValue(): any {\n return this._selectedValue;\n }\n\n private _change = new EventEmitter<SkyRadioChange>();\n private _checked = false;\n private _checkedChange = new BehaviorSubject<boolean>(this._checked);\n private _disabled = false;\n private _disabledChange = new BehaviorSubject<boolean>(this._disabled);\n private _name: string;\n private _radioType: string;\n private _selectedValue: any;\n private _tabindex: number;\n private _value: any;\n\n constructor(private changeDetector: ChangeDetectorRef) {}\n\n public ngOnDestroy(): void {\n this.removeUniqueSelectionListener();\n }\n\n public writeValue(value: any): void {\n if (value === undefined) {\n return;\n }\n\n this.selectedValue = value;\n this.checked = this.value === this.selectedValue;\n\n this.changeDetector.markForCheck();\n }\n\n /**\n * @internal\n * Indicates whether to disable the control. Implemented as a part of ControlValueAccessor.\n */\n public setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n public registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n public onInputChange(event: Event): void {\n event.stopPropagation();\n\n if (!this.disabled) {\n this.checked = true;\n this._change.emit({\n source: this,\n value: this._value,\n });\n\n this.onInputFocusChange(undefined);\n this.onChangeCallback(this.value);\n }\n }\n\n public onInputFocusChange(event: Event): void {\n this.onTouchedCallback();\n this.blur.next();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private removeUniqueSelectionListener = () => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private onChangeCallback = (value: any) => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private onTouchedCallback = () => {};\n}\n","<label\n class=\"sky-radio-wrapper sky-switch\"\n [ngClass]=\"{ 'sky-switch-disabled': disabled }\"\n>\n <input\n class=\"sky-radio-input sky-switch-input\"\n type=\"radio\"\n [attr.aria-label]=\"label\"\n [attr.aria-labelledby]=\"labelledBy\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [id]=\"inputId\"\n [name]=\"name\"\n [tabIndex]=\"tabindex\"\n [value]=\"value\"\n (blur)=\"onInputFocusChange($event)\"\n (change)=\"onInputChange($event)\"\n />\n <span\n class=\"sky-switch-control\"\n [ngClass]=\"{\n 'sky-switch-control-icon': icon,\n 'sky-rounded-corners': icon,\n 'sky-rounded-circle': !icon,\n 'sky-switch-control-info': icon && radioType === 'info',\n 'sky-switch-control-success': icon && radioType === 'success',\n 'sky-switch-control-warning': icon && radioType === 'warning',\n 'sky-switch-control-danger': icon && radioType === 'danger'\n }\"\n >\n <sky-icon *ngIf=\"icon\" fixedWidth=\"true\" [icon]=\"icon\"> </sky-icon>\n </span>\n <ng-content select=\"sky-radio-label\"></ng-content>\n</label>\n","import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n Input,\n OnDestroy,\n Optional,\n QueryList,\n Self,\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyFormsUtility } from '../shared/forms-utility';\n\nimport { SkyRadioComponent } from './radio.component';\nimport { SkyRadioChange } from './types/radio-change';\n\nlet nextUniqueId = 0;\n\n/**\n * Organizes radio buttons into a group. It is required for radio\n * buttons on Angular reactive forms, and we recommend using it with all radio buttons.\n * On Angular forms, the component manages the selected values and keeps the forms up-to-date.\n * When users select a radio button, its value is driven through an `ngModel` attribute that you specify on the `sky-radio-group` element.\n */\n@Component({\n selector: 'sky-radio-group',\n templateUrl: './radio-group.component.html',\n})\nexport class SkyRadioGroupComponent\n implements AfterContentInit, AfterViewInit, OnDestroy\n{\n /**\n * Specifies the HTML element ID (without the leading `#`) of the element that labels\n * the radio button group. This sets the radio button group's `aria-labelledby` attribute\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n * If the radio button group does not include a visible label, use `ariaLabel` instead.\n */\n @Input()\n public ariaLabelledBy: string;\n\n /**\n * Specifies an ARIA label for the radio button group. This sets the\n * radio button group's `aria-label` attribute\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n * If the radio button group includes a visible label, use `ariaLabelledBy` instead.\n */\n @Input()\n public ariaLabel: string;\n\n /**\n * Indicates whether to disable the input.\n * @default false\n */\n @Input()\n public set disabled(value: boolean) {\n const newDisabledState = SkyFormsUtility.coerceBooleanProperty(value);\n if (this._disabled !== newDisabledState) {\n this._disabled = newDisabledState;\n this.updateRadioButtonDisabled();\n }\n }\n\n public get disabled(): boolean {\n return this._disabled;\n }\n\n /**\n * Specifies a name for the collection of radio buttons that the component groups together.\n * This property overwrites the deprecated `name` property on individual `sky-radio` elements,\n * and it is required unless the `name` property is set on individual `sky-radio` elements.\n * @required\n */\n @Input()\n public set name(value: string) {\n this._name = value;\n this.updateRadioButtonNames();\n }\n public get name(): string {\n return this._name;\n }\n\n /**\n * Indicates whether the input is required for form validation.\n * When you set this property to `true`, the component adds `aria-required` and `required`\n * attributes to the input element so that forms display an invalid state until the input element\n * is complete.\n * @default false\n */\n @Input()\n public required = false;\n\n /**\n * Specifies the value of the radio button to select by default when the group loads.\n * The value corresponds to the `value` property of an individual `sky-radio` element within the\n * group.\n */\n @Input()\n public set value(value: any) {\n const isNewValue = value !== this._value;\n\n /* istanbul ignore else */\n if (isNewValue) {\n this._value = value;\n this.onChange(this._value);\n this.updateCheckedRadioFromValue();\n }\n }\n public get value(): any {\n return this._value;\n }\n\n /**\n * Specifies an index for all the radio buttons in the group. If the index is not defined,\n * the indices for individual radio buttons are set to their positions on load.\n * This property supports accessibility by placing focus on the currently selected radio\n * button. If no radio button is selected, it places focus on the first or last button\n * depending on how users navigate to the radio button group.\n */\n @Input()\n public set tabIndex(value: number) {\n if (this._tabIndex !== value) {\n this._tabIndex = value;\n this.updateRadioButtonTabIndexes();\n }\n }\n public get tabIndex(): number {\n return this._tabIndex;\n }\n\n @ContentChildren(SkyRadioComponent, { descendants: true })\n private radios: QueryList<SkyRadioComponent>;\n\n private ngUnsubscribe = new Subject<void>();\n\n private _disabled = false;\n\n private _name = `sky-radio-group-${nextUniqueId++}`;\n\n private _tabIndex: number;\n\n private _value: any;\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n @Self() @Optional() private ngControl: NgControl\n ) {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public ngAfterContentInit(): void {\n // Let child radio components render before updating.\n setTimeout(() => {\n this.resetRadioButtons();\n });\n\n // Watch for radio selections.\n this.watchForSelections();\n\n this.radios.changes.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {\n // Wait for child radio components to finish any rendering updates.\n setTimeout(() => {\n this.resetRadioButtons();\n });\n\n // Subscribe to the new radio buttons\n this.watchForSelections();\n });\n }\n\n public ngAfterViewInit(): void {\n if (this.ngControl) {\n // Backwards compatibility support for anyone still using Validators.Required.\n this.required =\n this.required || SkyFormsUtility.hasRequiredValidation(this.ngControl);\n\n // Avoid an ExpressionChangedAfterItHasBeenCheckedError.\n this.changeDetector.detectChanges();\n }\n }\n\n public watchForSelections() {\n this.radios.forEach((radio) => {\n radio.change\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((change: SkyRadioChange) => {\n this.onTouched();\n this.writeValue(change.value);\n });\n radio.blur.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {\n this.onTouched();\n this.changeDetector.markForCheck();\n });\n });\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public writeValue(value: any): void {\n this.value = value;\n }\n\n /**\n * @internal\n * Indicates whether to disable the control. Implemented as a part of ControlValueAccessor.\n */\n public setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n public registerOnChange(fn: (value: any) => void): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private onChange: (value: any) => void = () => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private onTouched: () => any = () => {};\n\n private updateRadioButtonDisabled(): void {\n if (this.radios) {\n this.radios.forEach((radio) => {\n radio.disabled = this.disabled;\n });\n }\n }\n\n private updateRadioButtonNames(): void {\n if (this.radios) {\n this.radios.forEach((radio) => {\n radio.name = this.name;\n });\n }\n }\n\n private updateRadioButtonTabIndexes(): void {\n if (this.radios) {\n this.radios.forEach((radio) => {\n radio.groupTabIndex = this.tabIndex;\n });\n }\n }\n\n private updateCheckedRadioFromValue(): void {\n if (!this.radios) {\n return;\n }\n\n this.radios.forEach((radio) => {\n radio.checked = this._value === radio.value;\n });\n }\n\n private resetRadioButtons(): void {\n this.updateCheckedRadioFromValue();\n this.updateRadioButtonNames();\n this.updateRadioButtonTabIndexes();\n }\n}\n","<div\n class=\"sky-radio-group\"\n role=\"radiogroup\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-required]=\"required ? true : null\"\n [attr.required]=\"required ? '' : null\"\n>\n <ng-content></ng-content>\n</div>\n","import { Component, HostListener } from '@angular/core';\n\n/**\n * Specifies a label for the radio button.\n */\n@Component({\n selector: 'sky-radio-label',\n templateUrl: './radio-label.component.html',\n})\nexport class SkyRadioLabelComponent {\n // When clicking on a checkbox label, Angular registers two click events.\n // This handler ignores all events except for those that deal\n // with the checkbox input explicitly.\n @HostListener('click', ['$event'])\n public onClick(event: MouseEvent): void {\n event.stopPropagation();\n }\n}\n","<span class=\"sky-switch-label\">\n <ng-content></ng-content>\n</span>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { SkyIconModule } from '@skyux/indicators';\n\nimport { SkyRadioGroupComponent } from './radio-group.component';\nimport { SkyRadioLabelComponent } from './radio-label.component';\nimport { SkyRadioComponent } from './radio.component';\n\n@NgModule({\n declarations: [\n SkyRadioComponent,\n SkyRadioGroupComponent,\n SkyRadioLabelComponent,\n ],\n imports: [CommonModule, FormsModule, SkyIconModule],\n exports: [SkyRadioComponent, SkyRadioGroupComponent, SkyRadioLabelComponent],\n})\nexport class SkyRadioModule {}\n","import {\n ElementRef,\n Injectable,\n Renderer2,\n RendererFactory2,\n} from '@angular/core';\nimport { SkyCoreAdapterService, SkyMediaBreakpoints } from '@skyux/core';\n\nconst RESPONSIVE_CLASS_XS = 'sky-selection-box-container-xs';\nconst RESPONSIVE_CLASS_SM = 'sky-selection-box-container-sm';\nconst RESPONSIVE_CLASS_MD = 'sky-selection-box-container-md';\nconst RESPONSIVE_CLASS_LG = 'sky-selection-box-container-lg';\n\nconst BREAKPOINT_XS_MAX_PIXELS = 767;\nconst BREAKPOINT_SM_MIN_PIXELS = 768;\nconst BREAKPOINT_SM_MAX_PIXELS = 991;\nconst BREAKPOINT_MD_MIN_PIXELS = 992;\nconst BREAKPOINT_MD_MAX_PIXELS = 1439;\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkySelectionBoxAdapterService {\n private renderer: Renderer2;\n\n constructor(\n private coreAdapterService: SkyCoreAdapterService,\n rendererFactory: RendererFactory2\n ) {\n this.renderer = rendererFactory.createRenderer(undefined, undefined);\n }\n\n /**\n * Sets focus on the specified element.\n */\n public focus(el: ElementRef): void {\n el.nativeElement.focus();\n }\n\n /**\n * Returns a child element with the `.sky-switch` class.\n * Useful for getting SKY UX-themed radio buttons or checkboxes.\n */\n public getControl(el: ElementRef): HTMLElement {\n return el.nativeElement.querySelector('.sky-switch');\n }\n\n /**\n * Returns a breakpoint based on the width.\n * @param width Width of the element in pixels.\n */\n public getBreakpointForWidth(width: number): SkyMediaBreakpoints {\n if (width <= BREAKPOINT_XS_MAX_PIXELS) {\n return SkyMediaBreakpoints.xs;\n } else if (\n width >= BREAKPOINT_SM_MIN_PIXELS &&\n width <= BREAKPOINT_SM_MAX_PIXELS\n ) {\n return SkyMediaBreakpoints.sm;\n } else if (\n width >= BREAKPOINT_MD_MIN_PIXELS &&\n width <= BREAKPOINT_MD_MAX_PIXELS\n ) {\n return SkyMediaBreakpoints.md;\n } else {\n return SkyMediaBreakpoints.lg;\n }\n }\n\n /**\n * Returns the width of the `parentNode` of the provided `element`.\n */\n public getParentWidth(element: ElementRef): number {\n return element.nativeElement.parentNode.getBoundingClientRect().width;\n }\n\n /**\n * Returns `true` if the `childEl` is a descendant of the `parentEl`.\n */\n public isDescendant(parentEl: ElementRef, childEl: HTMLElement): boolean {\n return parentEl.nativeElement.contains(childEl);\n }\n\n /**\n * Sets the `tabIndex` of all focusable children of the `element` to the provided `tabIndex`.\n */\n public setChildrenTabIndex(element: ElementRef, tabIndex: number): void {\n const el = element.nativeElement;\n const focusableElems = this.coreAdapterService.getFocusableChildren(el, {\n ignoreVisibility: true,\n });\n let index = focusableElems.length;\n while (index--) {\n focusableElems[index].tabIndex = tabIndex;\n }\n }\n\n /**\n * Adds a responsive CSS class on the provided element based on its current width.\n */\n public setResponsiveClass(\n element: ElementRef,\n breakpoint: SkyMediaBreakpoints\n ): void {\n const nativeEl: HTMLElement = element.nativeElement;\n\n this.renderer.removeClass(nativeEl, RESPONSIVE_CLASS_XS);\n this.renderer.removeClass(nativeEl, RESPONSIVE_CLASS_SM);\n this.renderer.removeClass(nativeEl, RESPONSIVE_CLASS_MD);\n this.renderer.removeClass(nativeEl, RESPONSIVE_CLASS_LG);\n\n let newClass: string;\n\n switch (breakpoint) {\n case SkyMediaBreakpoints.xs: {\n newClass = RESPONSIVE_CLASS_XS;\n break;\n }\n case SkyMediaBreakpoints.sm: {\n newClass = RESPONSIVE_CLASS_SM;\n break;\n }\n case SkyMediaBreakpoints.md: {\n newClass = RESPONSIVE_CLASS_MD;\n break;\n }\n case SkyMediaBreakpoints.lg: {\n newClass = RESPONSIVE_CLASS_LG;\n break;\n }\n }\n\n this.renderer.addClass(nativeEl, newClass);\n }\n\n /**\n * Sets the `tabIndex` of the `element` to the provided `tabIndex`.\n */\n public setTabIndex(element: ElementRef, tabIndex: number): void {\n const el = element.nativeElement;\n el.tabIndex = tabIndex;\n }\n}\n","import { Component } from '@angular/core';\n\n/**\n * Specifies the description to display in a selection box.\n */\n@Component({\n selector: 'sky-selection-box-description',\n templateUrl: './selection-box-description.component.html',\n})\nexport class SkySelectionBoxDescriptionComponent {}\n","<ng-content></ng-content>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyCheckboxComponent } from '../checkbox/checkbox.component';\nimport { SkyRadioComponent } from '../radio/radio.component';\n\nimport { SkySelectionBoxAdapterService } from './selection-box-adapter.service';\n\n/**\n * Creates a button to present users with a choice or question before proceeding with a one-time process.\n */\n@Component({\n selector: 'sky-selection-box',\n styleUrls: ['./selection-box.component.scss'],\n templateUrl: './selection-box.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class SkySelectionBoxComponent implements AfterViewInit, OnDestroy {\n /**\n * Specifies the radio button or checkbox to display in the selection box.\n * @required\n */\n @Input()\n public control: SkyCheckboxComponent | SkyRadioComponent;\n\n public set checked(value: boolean) {\n this._checked = value;\n this.changeDetector.markForCheck();\n }\n\n public get checked(): boolean {\n return this._checked;\n }\n\n public set disabled(value: boolean) {\n this.selectionBoxAdapterService.setTabIndex(\n this.selectionBoxEl,\n value ? -1 : 0\n );\n this._disabled = value;\n this.changeDetector.markForCheck();\n }\n\n public get disabled(): boolean {\n return this._disabled || false;\n }\n\n @ViewChild('control', {\n read: ElementRef,\n static: false,\n })\n private controlEl: ElementRef;\n\n @ViewChild('selectionBox', {\n read: ElementRef,\n static: false,\n })\n private selectionBoxEl: ElementRef;\n\n private ngUnsubscribe = new Subject<void>();\n\n private _checked: boolean;\n\n private _disabled: boolean;\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n private selectionBoxAdapterService: SkySelectionBoxAdapterService\n ) {}\n\n public ngAfterViewInit(): void {\n // Wait for consumer form controls to initialize before setting selected/disabled states.\n setTimeout(() => {\n this.selectionBoxAdapterService.setChildrenTabIndex(\n this.selectionBoxEl,\n -1\n );\n this.updateCheckedOnControlChange();\n this.updateDisabledState();\n });\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n /**\n * Since we are programatically firing a click on the control,\n * make sure user is not clicking on the control before firing click logic.\n */\n public onClick(event: any): void {\n const isControlClick = this.selectionBoxAdapterService.isDescendant(\n this.controlEl,\n event.target\n );\n if (!isControlClick) {\n this.selectControl();\n }\n }\n\n public onKeydown(event: KeyboardEvent): void {\n /* istanbul ignore else */\n if (event.key === ' ') {\n this.selectControl();\n event.preventDefault();\n }\n }\n\n private selectControl(): void {\n this.selectionBoxAdapterService.getControl(this.controlEl).click();\n this.selectionBoxAdapterService.focus(this.selectionBoxEl);\n }\n\n private updateCheckedOnControlChange(): void {\n this.control.checkedChange\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((value) => {\n this.checked = value;\n });\n }\n\n private updateDisabledState(): void {\n this.control.disabledChange\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((value) => {\n this.disabled = value;\n });\n }\n}\n","<div\n class=\"sky-selection-box sky-rounded-corners sky-btn sky-btn-default\"\n role=\"button\"\n tabindex=\"0\"\n [attr.disabled]=\"disabled ? true : null\"\n [ngClass]=\"{\n 'sky-selection-box-selected': checked,\n 'sky-selection-box-disabled': disabled\n }\"\n [skyThemeClass]=\"{\n 'sky-shadow': 'default',\n 'sky-box sky-elevation-1': 'modern'\n }\"\n (click)=\"onClick($event)\"\n (keydown)=\"onKeydown($event)\"\n #selectionBox\n>\n <div\n class=\"sky-selection-box-icon\"\n [ngStyle]=\"{\n display: !icon.innerHTML.trim() ? 'none' : ''\n }\"\n #icon\n >\n <ng-content select=\"sky-icon\"> </ng-content>\n </div>\n\n <div class=\"sky-selection-box-content\">\n <div\n class=\"sky-selection-box-header\"\n [ngClass]=\"{\n 'sky-font-heading-2': icon.innerHTML.trim(),\n 'sky-font-heading-3': !icon.innerHTML.trim()\n }\"\n >\n <ng-content select=\"sky-selection-box-header\"></ng-content>\n </div>\n <div\n class=\"sky-selection-box-description\"\n [skyThemeClass]=\"{\n 'sky-font-deemphasized': 'modern',\n 'sky-deemphasized': 'default'\n }\"\n >\n <ng-content select=\"sky-selection-box-description\"> </ng-content>\n </div>\n </div>\n\n <div class=\"sky-selection-box-control\" #control>\n <ng-content select=\"sky-radio\"> </ng-content>\n <ng-content select=\"sky-checkbox\"> </ng-content>\n </div>\n</div>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n HostListener,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Optional,\n QueryList,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n MutationObserverService,\n SkyCoreAdapterService,\n SkyMediaBreakpoints,\n} from '@skyux/core';\nimport { SkyThemeService } from '@skyux/theme';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkySelectionBoxAdapterService } from './selection-box-adapter.service';\nimport { SkySelectionBoxComponent } from './selection-box.component';\nimport { SkySelectionBoxGridAlignItemsType } from './types/selection-box-grid-align-items-type';\n\nconst SKY_SELECTION_BOX_CLASS_NAME = '.sky-selection-box';\n\n/**\n * Creates a grid layout for an array of selection boxes.\n */\n@Component({\n selector: 'sky-selection-box-grid',\n templateUrl: './selection-box-grid.component.html',\n styleUrls: ['./selection-box-grid.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class SkySelectionBoxGridComponent\n implements AfterViewInit, OnDestroy, OnInit\n{\n /**\n * @internal\n * Specifies how to display the selection boxes in the grid.\n * @default 'center'\n */\n @Input()\n public set alignItems(value: SkySelectionBoxGridAlignItemsType) {\n this._alignItems = value;\n }\n\n public get alignItems(): SkySelectionBoxGridAlignItemsType {\n return this._alignItems || 'center';\n }\n\n @ContentChildren(SkySelectionBoxComponent, {\n read: SkySelectionBoxComponent,\n })\n public selectionBoxes: QueryList<SkySelectionBoxComponent>;\n\n private set currentBreakpoint(value: SkyMediaBreakpoints) {\n if (value !== this._currentBreakpoint) {\n this._currentBreakpoint = value;\n this.selectionBoxAdapter.setResponsiveClass(this.elementRef, value);\n this.updateChildrenHeights();\n }\n }\n\n @ViewChild('container', {\n read: ElementRef,\n static: true,\n })\n private elementRef: ElementRef<any>;\n\n private mutationObserver: MutationObserver;\n\n private ngUnsubscribe = new Subject<void>();\n\n private _alignItems: SkySelectionBoxGridAlignItemsType;\n\n private _currentBreakpoint: SkyMediaBreakpoints;\n\n constructor(\n private coreAdapterService: SkyCoreAdapterService,\n private selectionBoxAdapter: SkySelectionBoxAdapterService,\n private hostElRef: ElementRef,\n private mutationObserverSvc: MutationObserverService,\n private ngZone: NgZone,\n @Optional() private themeSvc?: SkyThemeService\n ) {}\n\n public ngOnInit(): void {\n /* istanbul ignore else */\n if (this.themeSvc) {\n this.themeSvc.settingsChange\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(() => {\n this.updateBreakpointClass();\n this.updateChildrenHeights();\n });\n }\n }\n\n public ngAfterViewInit(): void {\n this.updateBreakpointClass();\n this.updateChildrenHeights();\n this.initMutationObserver();\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n\n this.destroyMutationObserver();\n }\n\n @HostListener('window:resize')\n public onWindowResize(): void {\n this.updateBreakpointClass();\n }\n\n private initMutationObserver(): void {\n /* istanbul ignore else */\n if (!this.mutationObserver) {\n const el = this.elementRef.nativeElement;\n\n // MutationObserver is patched by Zone.js and therefore becomes part of the\n // Angular change detection cycle, but this can lead to infinite loops in some\n // scenarios. This will keep MutationObserver from triggering change detection.\n this.ngZone.runOutsideAngular(() => {\n this.mutationObserver = this.mutationObserverSvc.create(() => {\n this.updateChildrenHeights();\n });\n\n this.mutationObserver.observe(el, {\n characterData: true,\n subtree: true,\n });\n });\n }\n }\n\n private destroyMutationObserver(): void {\n /* istanbul ignore else */\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n this.mutationObserver = undefined;\n }\n }\n\n private updateBreakpointClass(): void {\n const parentWidth = this.selectionBoxAdapter.getParentWidth(this.hostElRef);\n this.currentBreakpoint =\n this.selectionBoxAdapter.getBreakpointForWidth(parentWidth);\n }\n\n private updateChildrenHeights(): void {\n this.coreAdapterService.resetHeight(\n this.elementRef,\n SKY_SELECTION_BOX_CLASS_NAME\n );\n this.coreAdapterService.syncMaxHeight(\n this.elementRef,\n SKY_SELECTION_BOX_CLASS_NAME\n );\n }\n}\n","<div\n class=\"sky-selection-box-grid\"\n [ngClass]=\"'sky-selection-box-grid-align-' + alignItems\"\n #container\n>\n <ng-content select=\"sky-selection-box\"></ng-content>\n</div>\n","import { Component } from '@angular/core';\n\n/**\n * Specifies the header to display in a selection box.\n */\n@Component({\n selector: 'sky-selection-box-header',\n templateUrl: './selection-box-header.component.html',\n})\nexport class SkySelectionBoxHeaderComponent {}\n","<ng-content></ng-content>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkySelectionBoxAdapterService } from './selection-box-adapter.service';\nimport { SkySelectionBoxDescriptionComponent } from './selection-box-description.component';\nimport { SkySelectionBoxGridComponent } from './selection-box-grid.component';\nimport { SkySelectionBoxHeaderComponent } from './selection-box-header.component';\nimport { SkySelectionBoxComponent } from './selection-box.component';\n\n@NgModule({\n declarations: [\n SkySelectionBoxGridComponent,\n SkySelectionBoxComponent,\n SkySelectionBoxDescriptionComponent,\n SkySelectionBoxHeaderComponent,\n ],\n imports: [CommonModule, SkyThemeModule],\n exports: [\n SkySelectionBoxGridComponent,\n SkySelectionBoxComponent,\n SkySelectionBoxDescriptionComponent,\n SkySelectionBoxHeaderComponent,\n ],\n providers: [SkySelectionBoxAdapterService],\n})\nexport class SkySelectionBoxModule {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n/**\n * Specifies the label to display beside the toggle switch.\n */\n@Component({\n selector: 'sky-toggle-switch-label',\n templateUrl: './toggle-switch-label.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyToggleSwitchLabelComponent {}\n","<ng-content></ng-content>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n QueryList,\n forwardRef,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyToggleSwitchLabelComponent } from './toggle-switch-label.component';\nimport { SkyToggleSwitchChange } from './types/toggle-switch-change';\n\nconst SKY_TOGGLE_SWITCH_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SkyToggleSwitchComponent),\n multi: true,\n};\nconst SKY_TOGGLE_SWITCH_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SkyToggleSwitchComponent),\n multi: true,\n};\n\nlet uniqueId = 0;\n\n@Component({\n selector: 'sky-toggle-switch',\n templateUrl: './toggle-switch.component.html',\n styleUrls: ['./toggle-switch.component.scss'],\n providers: [\n SKY_TOGGLE_SWITCH_CONTROL_VALUE_ACCESSOR,\n SKY_TOGGLE_SWITCH_VALIDATOR,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyToggleSwitchComponent\n implements AfterContentInit, OnDestroy, ControlValueAccessor, Validator\n{\n /**\n * Specifies an ARIA label for the toggle switch. This sets the toggle switch's `aria-label`\n * attribute [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n * If the `sky-toggle-switch-label` component displays a visible label, do not use this property.\n */\n @Input()\n public ariaLabel: string;\n\n /**\n * Indicates whether the toggle switch is selected.\n * @default false\n */\n @Input()\n public set checked(checked: boolean) {\n if (checked !== this.checked) {\n this._checked = checked;\n this.onChange(checked);\n\n // Do not mark the field as \"dirty\"\n // if the field has been initialized with a value.\n if (this.isFirstChange && this.control) {\n this.control.markAsPristine();\n this.isFirstChange = false;\n }\n }\n }\n\n public get checked(): boolean {\n return this._checked || false;\n }\n\n /**\n * Indicates whether to disable the toggle switch.\n */\n @Input()\n public disabled = false;\n\n /**\n * Specifies a tab index for the toggle switch. If not defined, the index is set to the position\n * of the toggle switch on load.\n */\n @Input()\n public tabIndex = 0;\n\n /**\n * Fires when the checked state of a toggle switch changes.\n */\n @Output()\n public toggleChange = new EventEmitter<SkyToggleSwitchChange>();\n\n public get hasLabelComponent(): boolean {\n return this.labelComponents.length > 0;\n }\n\n public enableIndicatorAnimation = false;\n\n public get labelElementId(): string {\n return `sky-toggle-switch-label-${this.toggleSwitchId}`;\n }\n\n @ContentChildren(SkyToggleSwitchLabelComponent)\n private labelComponents: QueryList<SkyToggleSwitchLabelComponent>;\n\n private control: AbstractControl;\n private isFirstChange = true;\n private ngUnsubscribe = new Subject<void>();\n private toggleSwitchId = uniqueId++;\n\n private _checked = false;\n\n constructor(private changeDetector: ChangeDetectorRef) {}\n\n public ngAfterContentInit(): void {\n this.labelComponents.changes\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(() => {\n // Allow the template to reload any ARIA attributes that are relying on the\n // label component existing in the DOM.\n this.changeDetector.markForCheck();\n });\n\n // Wait for the view to render before applying animation effects.\n // (Some browsers, such as Firefox, apply the animation too early.)\n setTimeout(() => {\n this.enableIndicatorAnimation = true;\n });\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public writeValue(value: boolean): void {\n this.checked = !!value;\n this.changeDetector.markForCheck();\n }\n\n public validate(control: AbstractControl): ValidationErrors {\n if (!this.control) {\n this.control = control;\n }\n\n return;\n }\n\n public registerOnChange(fn: (value: any) => void) {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n public setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n this.changeDetector.markForCheck();\n }\n\n public onButtonClick(event: any): void {\n event.stopPropagation();\n this.toggleChecked();\n this.emitChangeEvent();\n }\n\n public onButtonBlur(): void {\n this.onTouched();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private onTouched: () => any = () => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private onChange: (value: any) => void = () => {};\n\n private emitChangeEvent(): void {\n this.onChange(this._checked);\n this.toggleChange.emit({\n checked: this._checked,\n });\n }\n\n private toggleChecked(): void {\n this.checked = !this.checked;\n }\n}\n","<span class=\"sky-toggle-switch\">\n <button\n class=\"sky-toggle-switch-button\"\n role=\"switch\"\n type=\"button\"\n [attr.aria-checked]=\"checked\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"hasLabelComponent ? labelElementId : null\"\n [disabled]=\"disabled\"\n [ngClass]=\"{\n 'sky-toggle-switch-checked': checked,\n 'sky-toggle-switch-disabled': disabled\n }\"\n [tabIndex]=\"tabIndex\"\n (blur)=\"onButtonBlur()\"\n (click)=\"onButtonClick($event)\"\n >\n <i\n aria-hidden=\"true\"\n class=\"sky-toggle-switch-indicator\"\n [ngClass]=\"{\n 'sky-toggle-switch-transition': enableIndicatorAnimation\n }\"\n role=\"presentation\"\n > </i\n >\n <!-- Non-breaking space needed to align switch to baseline! -->\n </button>\n\n <label\n *ngIf=\"hasLabelComponent\"\n class=\"sky-toggle-switch-label\"\n [attr.id]=\"labelElementId\"\n >\n <ng-container *ngTemplateOutlet=\"labelContent\"> </ng-container>\n </label>\n</span>\n\n<ng-template #labelContent>\n <ng-content select=\"sky-toggle-switch-label\"></ng-content>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { SkyToggleSwitchLabelComponent } from './toggle-switch-label.component';\nimport { SkyToggleSwitchComponent } from './toggle-switch.component';\n\n@NgModule({\n declarations: [SkyToggleSwitchLabelComponent, SkyToggleSwitchComponent],\n imports: [CommonModule, FormsModule],\n exports: [SkyToggleSwitchLabelComponent, SkyToggleSwitchComponent],\n})\nexport class SkyToggleSwitchModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3","uniqueId","i1.SkyFileAttachmentService","i2.SkyFileItemService","i4","i5","i6","i7","i1.SkyFileItemService","i4.SkyFileSizePipe","i1.SkyInputBoxHostService","i2.SkyInputBoxAdapterService","nextUniqueId","i1.SkySelectionBoxAdapterService","i2.SkySelectionBoxAdapterService"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;;;;AAKG;AAWH,MAAM,SAAS,GAA0C;AACvD,IAAA,OAAO,EAAE;AACP,QAAA,6BAA6B,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE;AAC/D,QAAA,gCAAgC,EAAE;AAChC,YAAA,OAAO,EAAE,mCAAmC;AAC7C,SAAA;AACD,QAAA,8CAA8C,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE;AAC1E,QAAA,+CAA+C,EAAE;AAC/C,YAAA,OAAO,EAAE,cAAc;AACxB,SAAA;AACD,QAAA,sCAAsC,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE;AAClE,QAAA,wCAAwC,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;AAClE,QAAA,0CAA0C,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;AACnE,QAAA,kCAAkC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;AACzD,QAAA,kCAAkC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;AACzD,QAAA,kCAAkC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;AACzD,QAAA,gDAAgD,EAAE;AAChD,YAAA,OAAO,EAAE,kBAAkB;AAC5B,SAAA;AACD,QAAA,+CAA+C,EAAE;AAC/C,YAAA,OAAO,EAAE,qCAAqC;AAC/C,SAAA;AACD,QAAA,iDAAiD,EAAE;AACjD,YAAA,OAAO,EAAE,iBAAiB;AAC3B,SAAA;AACD,QAAA,wDAAwD,EAAE;AACxD,YAAA,OAAO,EAAE,eAAe;AACzB,SAAA;AACD,QAAA,8CAA8C,EAAE;AAC9C,YAAA,OAAO,EAAE,2BAA2B;AACrC,SAAA;AACD,QAAA,4CAA4C,EAAE;AAC5C,YAAA,OAAO,EAAE,sBAAsB;AAChC,SAAA;AACD,QAAA,kDAAkD,EAAE;AAClD,YAAA,OAAO,EAAE,+BAA+B;AACzC,SAAA;AACD,QAAA,oDAAoD,EAAE;AACpD,YAAA,OAAO,EAAE,oBAAoB;AAC9B,SAAA;AACD,QAAA,4CAA4C,EAAE;AAC5C,YAAA,OAAO,EAAE,wBAAwB;AAClC,SAAA;AACD,QAAA,iDAAiD,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;AACtE,QAAA,0CAA0C,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE;AAC1E,KAAA;CACF,CAAC;MAEW,yBAAyB,CAAA;IAC7B,SAAS,CACd,UAA4B,EAC5B,IAAY,EAAA;QAEZ,OAAO,qBAAqB,CAAC,SAAS,EAAE,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;KAClE;AACF,CAAA;AAED;;AAEG;MAWU,uBAAuB,CAAA;;oHAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAvB,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,YATxB,aAAa,CAAA,EAAA,CAAA,CAAA;AASZ,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,EARvB,SAAA,EAAA;AACT,QAAA;AACE,YAAA,OAAO,EAAE,2BAA2B;AACpC,YAAA,QAAQ,EAAE,yBAAyB;AACnC,YAAA,KAAK,EAAE,IAAI;AACZ,SAAA;AACF,KAAA,EAAA,OAAA,EAAA,CAPS,aAAa,CAAA,EAAA,CAAA,CAAA;2FASZ,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAVnC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,aAAa,CAAC;AACxB,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,2BAA2B;AACpC,4BAAA,QAAQ,EAAE,yBAAyB;AACnC,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA;AACF,iBAAA,CAAA;;;MCzEY,qCAAqC,CAAA;AAOhD,IAAA,WAAA,CAAoB,cAAiC,EAAA;QAAjC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAmB;QAH7C,IAA0B,CAAA,0BAAA,GAAG,CAAC,CAAC;QAC/B,IAAqB,CAAA,qBAAA,GAAG,CAAC,CAAC;KAEuB;AAEzD,IAAA,IAAW,cAAc,GAAA;QACvB,OAAO,IAAI,CAAC,qBAAqB,CAAC;KACnC;IAED,IAAW,cAAc,CAAC,KAAa,EAAA;AACrC,QAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;AACnC,QAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;KACpC;AAED,IAAA,IAAW,mBAAmB,GAAA;QAC5B,OAAO,IAAI,CAAC,0BAA0B,CAAC;KACxC;IAED,IAAW,mBAAmB,CAAC,KAAa,EAAA;AAC1C,QAAA,IAAI,CAAC,0BAA0B,GAAG,KAAK,CAAC;AACxC,QAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;KACpC;;kIAzBU,qCAAqC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArC,qCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qCAAqC,uECZlD,qgBAeA,EAAA,MAAA,EAAA,CAAA,2TAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FDHa,qCAAqC,EAAA,UAAA,EAAA,CAAA;kBANjD,SAAS;+BACE,iCAAiC,EAAA,eAAA,EAG1B,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,qgBAAA,EAAA,MAAA,EAAA,CAAA,2TAAA,CAAA,EAAA,CAAA;;;AEAjD;;;;;AAKG;MAWU,iCAAiC,CAAA;AAV9C,IAAA,WAAA,GAAA;;AA2EU,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAK,GAAG,CAAC;AACrC,KAAA;AAzDC;;;;AAIG;IACH,IACW,wBAAwB,CAAC,KAAa,EAAA;AAC/C,QAAA,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;AACvC,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACzD,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;AAED,IAAA,IAAW,wBAAwB,GAAA;AACjC,QAAA,OAAO,IAAI,CAAC,yBAAyB,IAAI,CAAC,CAAC;KAC5C;AAIM,IAAA,QAAQ,CAAC,OAAwB,EAAA;AACtC,QAAA,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;AAE5B,QAAA,IAAI,CAAC,oBAAoB,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;QAExD,IAAI,CAAC,KAAK,EAAE;YACV,OAAO;AACR,SAAA;AAED,QAAA,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,wBAAwB,EAAE;;YAEhD,OAAO,CAAC,aAAa,EAAE,CAAC;YAExB,OAAO;AACL,gBAAA,mBAAmB,EAAE;AACnB,oBAAA,OAAO,EAAE,KAAK;AACf,iBAAA;aACF,CAAC;AACH,SAAA;KACF;AAEM,IAAA,yBAAyB,CAAC,EAAc,EAAA;AAC7C,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;KAC5B;AAEO,IAAA,oBAAoB,CAAC,KAAa,EAAA;QACxC,IAAI,IAAI,CAAC,4BAA4B,EAAE;AACrC,YAAA,IAAI,CAAC,4BAA4B,CAAC,cAAc,GAAG,KAAK,CAAC;AAC1D,SAAA;KACF;AAEO,IAAA,oBAAoB,CAAC,KAAa,EAAA;QACxC,IAAI,IAAI,CAAC,4BAA4B,EAAE;AACrC,YAAA,IAAI,CAAC,4BAA4B,CAAC,mBAAmB,GAAG,KAAK,CAAC;AAC/D,SAAA;KACF;;8HA9DU,iCAAiC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjC,iCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iCAAiC,EARjC,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,4BAAA,EAAA,8BAAA,EAAA,wBAAA,EAAA,0BAAA,EAAA,EAAA,SAAA,EAAA;AACT,QAAA;AACE,YAAA,OAAO,EAAE,aAAa;AACtB,YAAA,WAAW,EAAE,iCAAiC;AAC9C,YAAA,KAAK,EAAE,IAAI;AACZ,SAAA;AACF,KAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAEU,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAV7C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,WAAW,EAAmC,iCAAA;AAC9C,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA;AACF,iBAAA,CAAA;8BAQQ,4BAA4B,EAAA,CAAA;sBADlC,KAAK;gBASK,wBAAwB,EAAA,CAAA;sBADlC,KAAK;;;MCbK,yBAAyB,CAAA;;sHAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAzB,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,iBAflC,iCAAiC;AACjC,QAAA,qCAAqC,aAGrC,YAAY;QACZ,WAAW;QACX,mBAAmB;QACnB,uBAAuB;AACvB,QAAA,aAAa,aAGb,iCAAiC;QACjC,qCAAqC,CAAA,EAAA,CAAA,CAAA;AAG5B,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,EAZ3B,OAAA,EAAA,CAAA;YACP,YAAY;YACZ,WAAW;YACX,mBAAmB;YACnB,uBAAuB;YACvB,aAAa;AACd,SAAA,CAAA,EAAA,CAAA,CAAA;2FAMU,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAjBrC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,iCAAiC;wBACjC,qCAAqC;AACtC,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,mBAAmB;wBACnB,uBAAuB;wBACvB,aAAa;AACd,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,iCAAiC;wBACjC,qCAAqC;AACtC,qBAAA;AACF,iBAAA,CAAA;;;ACxBD;;AAEG;MACU,iBAAiB,CAAA;AAG7B;;ACND;;AAEG;MAKU,yBAAyB,CAAA;;sHAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,0DCTtC,2EAGA,EAAA,CAAA,CAAA;2FDMa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,SAAS;+BACE,oBAAoB,EAAA,QAAA,EAAA,2EAAA,EAAA,CAAA;;;AEHzB,MAAM,+BAA+B,GAAa;AACvD,IAAA,OAAO,EAAE,aAAa;AACtB,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,qCAAqC,CAAC;AACpE,IAAA,KAAK,EAAE,IAAI;CACZ,CAAC;AAEF;;;;;;;AAOG;AAOG,MAAO,qCAAsC,SAAQ,yBAAyB,CAAA;;kIAAvE,qCAAqC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sHAArC,qCAAqC,EAAA,QAAA,EAAA,6HAAA,EAAA,SAAA,EAFrC,CAAC,+BAA+B,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAEjC,qCAAqC,EAAA,UAAA,EAAA,CAAA;kBANjD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAET,oBAAA,QAAQ,EAAE,CAAA;AACsE,iFAAA,CAAA;oBAChF,SAAS,EAAE,CAAC,+BAA+B,CAAC;AAC7C,iBAAA,CAAA;;;ACpBD;AACA;AACA;MACa,eAAe,CAAA;;IAEnB,OAAO,qBAAqB,CAAC,KAAU,EAAA;QAC5C,OAAO,KAAK,KAAK,SAAS,IAAI,GAAG,KAAK,CAAA,CAAE,KAAK,OAAO,CAAC;KACtD;AAED;;;;;AAKG;IACI,OAAO,qBAAqB,CAAC,SAAoB,EAAA;AACtD,QAAA,MAAM,eAAe,GAAG,SAAS,CAAC,OAA0B,CAAC;AAC7D,QAAA,IAAI,eAAe,IAAI,eAAe,CAAC,SAAS,EAAE;YAChD,MAAM,SAAS,GAAG,eAAe,CAAC,SAAS,CAAC,EAAqB,CAAC,CAAC;AACnE,YAAA,IAAI,SAAS,IAAI,SAAS,CAAC,QAAQ,EAAE;AACnC,gBAAA,OAAO,IAAI,CAAC;AACb,aAAA;AACF,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KACd;AACF;;ACVD;;AAEG;AACH,IAAI,MAAM,GAAG,CAAC,CAAC;AAEf;;;AAGG;MAMU,oBAAoB,CAAA;AA2K/B,IAAA,WAAA,CAAwC,SAAoB,EAAA;QAApB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;AAxJ5D;;;AAGG;AAEI,QAAA,IAAA,CAAA,EAAE,GAAG,CAAA,aAAA,EAAgB,EAAE,MAAM,EAAE,CAAC;AAsBvC;;;AAGG;QAEI,IAAQ,CAAA,QAAA,GAAG,CAAC,CAAC;AAEpB;;;AAGG;AAEI,QAAA,IAAA,CAAA,IAAI,GAAG,CAAA,aAAA,EAAgB,EAAE,MAAM,EAAE,CAAC;AAEzC;;AAEG;AAGI,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAqB,CAAC;QA4F9C,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC;QAIrB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QAEjB,IAAc,CAAA,cAAA,GAAG,IAAI,eAAe,CAAU,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE7D,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAElB,IAAe,CAAA,eAAA,GAAG,IAAI,eAAe,CAAU,IAAI,CAAC,SAAS,CAAC,CAAC;QAE/D,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;;;AAkEnB,QAAA,IAAA,CAAA,SAAS,GAAc,MAAK,GAAG,CAAC;;AAG/B,QAAA,IAAA,CAAA,6BAA6B,GAAyB,CAAC,KAAK,KAAI,GAAG,CAAC;QAlE1E,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;AACrC,SAAA;KACF;AArJD;;;AAGG;IACH,IACW,QAAQ,CAAC,KAAc,EAAA;QAChC,MAAM,YAAY,GAAG,eAAe,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAClE,QAAA,IAAI,YAAY,KAAK,IAAI,CAAC,QAAQ,EAAE;AAClC,YAAA,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC;YAC9B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC3C,SAAA;KACF;AAED;;AAEG;AACH,IAAA,IAAW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;AA+BD;;;;;;;AAOG;IACH,IACW,YAAY,CAAC,KAAa,EAAA;AACnC,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;AAC1C,SAAA;KACF;AAED,IAAA,IAAW,YAAY,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,aAAa,IAAI,MAAM,CAAC;KACrC;AAED,IAAA,IAAW,OAAO,GAAA;AAChB,QAAA,OAAO,CAAS,MAAA,EAAA,IAAI,CAAC,EAAE,EAAE,CAAC;KAC3B;AAED;;;AAGG;IACH,IACW,OAAO,CAAC,OAAgB,EAAA;AACjC,QAAA,IAAI,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE;AAC5B,YAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;AACxB,YAAA,IAAI,CAAC,6BAA6B,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;;;AAIxC,YAAA,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;AAClE,gBAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;AACxC,gBAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC5B,aAAA;AACF,SAAA;KACF;AAED;;AAEG;AACH,IAAA,IAAW,OAAO,GAAA;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;KACtB;AAED;;;;;;AAMG;IACH,IACI,QAAQ,CAAC,KAAc,EAAA;QACzB,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;KAC/D;AAED,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;AAED;;AAEG;AACH,IAAA,IACW,aAAa,GAAA;QACtB,OAAO,IAAI,CAAC,cAAc,CAAC;KAC5B;AAED;;AAEG;AACH,IAAA,IACW,cAAc,GAAA;QACvB,OAAO,IAAI,CAAC,eAAe,CAAC;KAC7B;IAsBM,QAAQ,GAAA;QACb,IAAI,IAAI,CAAC,SAAS,EAAE;;AAElB,YAAA,IAAI,CAAC,QAAQ;gBACX,IAAI,CAAC,QAAQ,IAAI,eAAe,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC1E,SAAA;KACF;AAED;;AAEG;AACI,IAAA,UAAU,CAAC,KAAU,EAAA;AAC1B,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC;KACxB;AAED;;AAEG;AACI,IAAA,gBAAgB,CAAC,EAAwB,EAAA;AAC9C,QAAA,IAAI,CAAC,6BAA6B,GAAG,EAAE,CAAC;KACzC;AAED;;AAEG;AACI,IAAA,iBAAiB,CAAC,EAAO,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;AAED;;AAEG;AACI,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AACzC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC5B;AAED;;;AAGG;AACI,IAAA,kBAAkB,CAAC,KAAY,EAAA;;;;QAIpC,KAAK,CAAC,eAAe,EAAE,CAAC;AAExB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACzB,SAAA;KACF;IAEM,WAAW,GAAA;QAChB,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;IASO,gBAAgB,GAAA;AACtB,QAAA,MAAM,KAAK,GAAG,IAAI,iBAAiB,EAAE,CAAC;AACtC,QAAA,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;AACpB,QAAA,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;AAE9B,QAAA,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAClD,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACzB;AAED;;AAEG;IACK,OAAO,GAAA;AACb,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;KAC9B;;iHA9PU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,qWC/BjC,+sDA4DA,EAAA,MAAA,EAAA,CAAA,0zBAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,YAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FD7Ba,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;+BACE,cAAc,EAAA,QAAA,EAAA,+sDAAA,EAAA,MAAA,EAAA,CAAA,0zBAAA,CAAA,EAAA,CAAA;;0BA+KX,IAAI;;0BAAI,QAAQ;4CAnKtB,KAAK,EAAA,CAAA;sBADX,KAAK;gBAUC,UAAU,EAAA,CAAA;sBADhB,KAAK;gBAQC,EAAE,EAAA,CAAA;sBADR,KAAK;gBAQK,QAAQ,EAAA,CAAA;sBADlB,KAAK;gBAqBC,QAAQ,EAAA,CAAA;sBADd,KAAK;gBAQC,IAAI,EAAA,CAAA;sBADV,KAAK;gBAQC,MAAM,EAAA,CAAA;sBAFZ,MAAM;gBAUA,IAAI,EAAA,CAAA;sBADV,KAAK;gBAYK,YAAY,EAAA,CAAA;sBADtB,KAAK;gBAoBK,OAAO,EAAA,CAAA;sBADjB,KAAK;gBA+BF,QAAQ,EAAA,CAAA;sBADX,KAAK;gBAaK,aAAa,EAAA,CAAA;sBADvB,MAAM;gBASI,cAAc,EAAA,CAAA;sBADxB,MAAM;;;MEjKI,iBAAiB,CAAA;;8GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,iBAX1B,oBAAoB;QACpB,yBAAyB;AACzB,QAAA,qCAAqC,aAE7B,YAAY,EAAE,WAAW,EAAE,aAAa,aAEhD,oBAAoB;QACpB,yBAAyB;QACzB,qCAAqC,CAAA,EAAA,CAAA,CAAA;AAG5B,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAPnB,CAAC,YAAY,EAAE,WAAW,EAAE,aAAa,CAAC,CAAA,EAAA,CAAA,CAAA;2FAOxC,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAb7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,oBAAoB;wBACpB,yBAAyB;wBACzB,qCAAqC;AACtC,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,aAAa,CAAC;AACnD,oBAAA,OAAO,EAAE;wBACP,oBAAoB;wBACpB,yBAAyB;wBACzB,qCAAqC;AACtC,qBAAA;AACF,iBAAA,CAAA;;;ACnBD;;AAEG;MAOU,+BAA+B,CAAA;;4HAA/B,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA/B,+BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,+BAA+B,iECX5C,4EAGA,EAAA,MAAA,EAAA,CAAA,uJAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FDQa,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAN3C,SAAS;+BACE,2BAA2B,EAAA,eAAA,EAGpB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,4EAAA,EAAA,MAAA,EAAA,CAAA,uJAAA,CAAA,EAAA,CAAA;;;AELjD;;AAEG;MAEU,wBAAwB,CAAA;IAC5B,UAAU,CACf,KAAe,EACf,WAAmB,EACnB,WAAmB,EACnB,aAAqB,EACrB,UAAoB,EAAA;QAEpB,MAAM,WAAW,GAAkB,EAAE,CAAC;AAEtC,QAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;AACjD,YAAA,MAAM,QAAQ,GAAG;AACf,gBAAA,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;aACT,CAAC;AAEjB,YAAA,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,WAAW,EAAE;AACpC,gBAAA,QAAQ,CAAC,SAAS,GAAG,aAAa,CAAC;AACnC,gBAAA,QAAQ,CAAC,UAAU,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;AAC7C,gBAAA,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC5B,aAAA;AAAM,iBAAA,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,WAAW,EAAE;AAC3C,gBAAA,QAAQ,CAAC,SAAS,GAAG,aAAa,CAAC;AACnC,gBAAA,QAAQ,CAAC,UAAU,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;AAC7C,gBAAA,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC5B,aAAA;AAAM,iBAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE;AACnE,gBAAA,QAAQ,CAAC,SAAS,GAAG,UAAU,CAAC;AAChC,gBAAA,QAAQ,CAAC,UAAU,GAAG,aAAa,CAAC;AACpC,gBAAA,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC5B,aAAA;AAAM,iBAAA,IAAI,UAAU,EAAE;AACrB,gBAAA,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;AAExC,gBAAA,IAAI,UAAU,EAAE;AACd,oBAAA,QAAQ,CAAC,SAAS,GAAG,UAAU,CAAC;AAChC,oBAAA,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC;AAClC,iBAAA;AACD,gBAAA,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC5B,aAAA;AAAM,iBAAA;AACL,gBAAA,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC5B,aAAA;AACF,SAAA;AACD,QAAA,OAAO,WAAW,CAAC;KACpB;AAED;;AAEG;AACI,IAAA,YAAY,CAAC,KAAe,EAAA;AACjC,QAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACjD,MAAM,IAAI,GAAQ,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpC,IACE,IAAI,CAAC,gBAAgB;gBACrB,IAAI,CAAC,gBAAgB,EAAE;AACvB,gBAAA,IAAI,CAAC,gBAAgB,EAAE,CAAC,WAAW,EACnC;AACA,gBAAA,OAAO,IAAI,CAAC;AACb,aAAA;AACF,SAAA;AAED,QAAA,OAAO,KAAK,CAAC;KACd;IAEM,gBAAgB,CAAC,QAAgB,EAAE,aAAqB,EAAA;QAC7D,IAAI,CAAC,aAAa,EAAE;AAClB,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;QAED,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAED,QAAA,MAAM,kBAAkB,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;QACvD,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAEhD,QAAA,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;KACjE;IAEO,eAAe,CAAC,SAAmB,EAAE,QAAgB,EAAA;QAC3D,IAAI,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;AACtC,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;AAED,QAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;AACrD,YAAA,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;YAC9B,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAE/C,IAAI,YAAY,KAAK,GAAG,EAAE;AACxB,gBAAA,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE;AACjE,oBAAA,OAAO,IAAI,CAAC;AACb,iBAAA;AACF,aAAA;AACF,SAAA;AAED,QAAA,OAAO,KAAK,CAAC;KACd;AAEO,IAAA,cAAc,CAAC,IAAY,EAAA;AACjC,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;KACxD;AAEO,IAAA,eAAe,CAAC,IAAY,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;KAC1C;;qHApGU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;yHAAxB,wBAAwB,EAAA,CAAA,CAAA;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBADpC,UAAU;;;ACHX;;AAEG;MAEU,kBAAkB,CAAA;AACtB,IAAA,MAAM,CAAC,QAAqB,EAAA;AACjC,QAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;AAE3B,QAAA,QACE,IAAI;AACJ,YAAA,IAAI,KAAK,SAAS;AAClB,YAAA,IAAI,KAAK,IAAI;YACb,IAAI,CAAC,IAAI,KAAK,SAAS;AACvB,YAAA,IAAI,CAAC,IAAI,KAAK,IAAI,EAClB;KACH;AAEM,IAAA,OAAO,CAAC,QAAqB,EAAA;QAClC,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAE9C,IAAI,UAAU,IAAI,CAAC,EAAE;AACnB,YAAA,QAAQ,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC1D,gBAAA,KAAK,KAAK,CAAC;AACX,gBAAA,KAAK,KAAK,CAAC;AACX,gBAAA,KAAK,MAAM,CAAC;AACZ,gBAAA,KAAK,KAAK;AACR,oBAAA,OAAO,IAAI,CAAC;AACd,gBAAA;oBACE,MAAM;AACT,aAAA;AACF,SAAA;AAED,QAAA,OAAO,KAAK,CAAC;KACd;AAEM,IAAA,qBAAqB,CAAC,QAAqB,EAAA;AAChD,QAAA,IAAI,SAAS,GAAG,EAAE,EAChB,IAAY,CAAC;;;AAIf,QAAA,IAAI,QAAQ,EAAE;AACZ,YAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;AAC3B,YAAA,IAAI,IAAI,EAAE;;AAER,gBAAA,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;;AAEvB,gBAAA,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AACtD,aAAA;AAAM,iBAAA;gBACL,SAAS,GAAG,EAAE,CAAC;AAChB,aAAA;AACF,SAAA;AAED,QAAA,OAAO,SAAS,CAAC,WAAW,EAAE,CAAC;KAChC;AAEM,IAAA,gBAAgB,CAAC,QAAqB,EAAA;QAC3C,IAAI,QAAQ,GAAG,EAAE,CAAC;;;AAGlB,QAAA,IAAI,QAAQ,EAAE;AACZ,YAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;AAC3B,YAAA,IAAI,IAAI,EAAE;AACR,gBAAA,QAAQ,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;AAC5B,aAAA;AAAM,iBAAA;gBACL,QAAQ,GAAG,EAAE,CAAC;AACf,aAAA;AACF,SAAA;AAED,QAAA,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC;KAC/B;;+GAnEU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAlB,kBAAkB,EAAA,CAAA,CAAA;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B,UAAU;;;AC0BX,IAAIC,UAAQ,GAAG,CAAC,CAAC;AAEjB;;AAEG;MAQU,0BAA0B,CAAA;IAqHrC,WACU,CAAA,cAAiC,EACjC,qBAA+C,EAC/C,eAAmC,EACf,SAAqB,EAC7B,QAA0B,EAAA;QAJtC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAmB;QACjC,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAA0B;QAC/C,IAAe,CAAA,eAAA,GAAf,eAAe,CAAoB;QACf,IAAS,CAAA,SAAA,GAAT,SAAS,CAAY;QAC7B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAkB;AA/FhD;;AAEG;QAEI,IAAW,CAAA,WAAA,GAAG,MAAM,CAAC;AAE5B;;AAEG;QAEI,IAAW,CAAA,WAAA,GAAG,CAAC,CAAC;AASvB;;AAEG;AAEI,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAA2B,CAAC;AAEhE;;;AAGG;AAEI,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAA0B,CAAC;QAEvD,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QAUrB,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;AAE5B;;;;;AAKG;QAEI,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QA+BhB,IAAgB,CAAA,gBAAA,GAAGA,UAAQ,EAAE,CAAC;AAE9B,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,OAAO,EAAQ,CAAC;QAEpC,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;;AAsQlB,QAAA,IAAA,CAAA,SAAS,GAAG,CAAC,CAAM,KAAI,GAAG,CAAC;;AAE3B,QAAA,IAAA,CAAA,UAAU,GAAG,MAAK,GAAG,CAAC;QA7P5B,IAAI,CAAC,cAAc,GAAG,CAAA,0BAAA,EAA6B,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC3E,IAAI,CAAC,4BAA4B,GAAG,CAAA,qCAAA,EAAwC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACpG,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;AACrC,SAAA;KACF;AAtHD;;;AAGG;IACH,IACW,QAAQ,CAAC,KAAc,EAAA;QAChC,MAAM,gBAAgB,GAAG,eAAe,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AACtE,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,gBAAgB,EAAE;AACvC,YAAA,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC;AACnC,SAAA;KACF;AAED,IAAA,IAAW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;AAoCD,IAAA,IAAW,iBAAiB,GAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;KACxC;IAiBD,IAAW,KAAK,CAAC,KAAkB,EAAA;;;;QAIjC,MAAM,UAAU,GAAG,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,IAAI,CAAC;AAE1D,QAAA,IAAI,UAAU,EAAE;AACd,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACtB,IAAI,CAAC,0BAA0B,EAAE,CAAC;AACnC,SAAA;KACF;AAED,IAAA,IAAW,KAAK,GAAA;QACd,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;IAoCM,QAAQ,GAAA;QACb,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,QAAQ,CAAC,cAAc;AACzB,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACnC,iBAAA,SAAS,CAAC,CAAC,aAAa,KAAI;gBAC3B,IAAI,CAAC,gBAAgB,GAAG,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC;gBACjE,IAAI,CAAC,0BAA0B,EAAE,CAAC;AACpC,aAAC,CAAC,CAAC;AACN,SAAA;KACF;IAEM,eAAe,GAAA;;;;;;;QAOpB,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,UAAU,CAAC,MAAK;gBACd,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE;AAC1C,oBAAA,SAAS,EAAE,KAAK;AACjB,iBAAA,CAAC,CAAC;AACH,gBAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;AACrC,aAAC,CAAC,CAAC;;AAGH,YAAA,IAAI,CAAC,QAAQ;gBACX,IAAI,CAAC,QAAQ,IAAI,eAAe,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC1E,SAAA;KACF;IAEM,kBAAkB,GAAA;;QAEvB,IAAI,CAAC,eAAe,CAAC,OAAO;AACzB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;aACnC,SAAS,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;AACtC,SAAC,CAAC,CAAC;KACN;IAEM,OAAO,GAAA;QACZ,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACjD;IAEM,aAAa,GAAA;QAClB,IAAI,CAAC,UAAU,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;KACpC;AAEM,IAAA,eAAe,CAAC,eAAoB,EAAA;QACzC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KAChD;AAEM,IAAA,aAAa,CAAC,cAAmB,EAAA;;AAEtC,QAAA,IAAI,CAAC,gBAAgB,GAAG,cAAc,CAAC,MAAM,CAAC;QAC9C,cAAc,CAAC,eAAe,EAAE,CAAC;QACjC,cAAc,CAAC,cAAc,EAAE,CAAC;KACjC;AAEM,IAAA,YAAY,CAAC,aAAkB,EAAA;AACpC,QAAA,MAAM,QAAQ,GAAG,aAAa,CAAC,YAAY,CAAC;QAE5C,aAAa,CAAC,eAAe,EAAE,CAAC;QAChC,aAAa,CAAC,cAAc,EAAE,CAAC;AAE/B,QAAA,IAAI,QAAQ,EAAE;YACZ,IAAI,QAAQ,CAAC,KAAK,EAAE;AAClB,gBAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;AAE7B,gBAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;AACjD,oBAAA,MAAM,IAAI,GAAQ,KAAK,CAAC,KAAK,CAAC,CAAC;oBAE/B,IACE,IAAI,CAAC,IAAI;AACT,wBAAA,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,CACzC,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,aAAa,CACnB,EACD;AACA,wBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,wBAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;wBAC1B,OAAO;AACR,qBAAA;AACF,iBAAA;gBAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AAC1C,oBAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,oBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC1B,iBAAA;AACF,aAAA;iBAAM,IAAI,QAAQ,CAAC,KAAK,EAAE;;;;AAIzB,gBAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC1B,aAAA;AACF,SAAA;KACF;AAEM,IAAA,QAAQ,CAAC,SAAoB,EAAA;QAClC,SAAS,CAAC,eAAe,EAAE,CAAC;QAC5B,SAAS,CAAC,cAAc,EAAE,CAAC;AAE3B,QAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;AAClC,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAE1B,IAAI,SAAS,CAAC,YAAY,IAAI,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE;YAC1D,IAAI,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC3C,OAAO;AACR,aAAA;AAED,YAAA,IACE,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,EACrE;gBACA,OAAO;AACR,aAAA;YAED,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAChD,SAAA;KACF;AAEM,IAAA,aAAa,CAAC,cAAmB,EAAA;AACtC,QAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,cAAc,CAAC,MAAM,EAAE;AACnD,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC3B,SAAA;KACF;IAEM,oBAAoB,GAAA;AACzB,QAAA,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;AACvB,QAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;AACnC,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACtC;IAEM,WAAW,CAAC,QAAQ,GAAG,IAAI,EAAA;QAChC,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,MAAM,QAAQ,GACZ,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI;AAC7D,kBAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI;AACtB,kBAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AAErB,YAAA,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,EAAE,EAAE;gBACpC,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC;AACtC,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,QAAQ,CAAC;AACjB,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,SAAS,CAAC;AAClB,SAAA;KACF;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;AAC3B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;KAC/B;AAEM,IAAA,gBAAgB,CAAC,EAAuB,EAAA;AAC7C,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;AACM,IAAA,iBAAiB,CAAC,EAAa,EAAA;AACpC,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;KACtB;AAEM,IAAA,UAAU,CAAC,KAAU,EAAA;AAC1B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;KACpC;AAED;;;;AAIG;AACI,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AACzC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;AAC3B,QAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;KACpC;IAEM,SAAS,GAAA;AACd,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAClB,IAAI,EAAE,IAAI,CAAC,KAAK;AACjB,SAAA,CAAC,CAAC;KACJ;AAEO,IAAA,mBAAmB,CAAC,WAAwB,EAAA;AAClD,QAAA,IAAI,WAAW,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE;AACzC,YAAA,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAC9B,SAAA;AACD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AACnB,YAAA,IAAI,EAAE,WAAW;AACS,SAAA,CAAC,CAAC;QAE9B,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC;KACvC;AAEO,IAAA,QAAQ,CAAC,IAAiB,EAAA;AAChC,QAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAEhC,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,KAAU,KAAU;YACnD,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;AAC/B,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;AACjC,SAAC,CAAC,CAAC;QAEH,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAU,KAAU;AACpD,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;AACjC,SAAC,CAAC,CAAC;QAEH,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAU,KAAU;AACpD,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;AACjC,SAAC,CAAC,CAAC;AAEH,QAAA,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACjC;AAEO,IAAA,WAAW,CAAC,KAAe,EAAA;QACjC,MAAM,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAC1D,KAAK,EACL,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,UAAU,CAChB,CAAC;AAEF,QAAA,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE;YACjC,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,gBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;AAChC,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrB,aAAA;AACF,SAAA;KACF;IAEO,0BAA0B,GAAA;AAChC,QAAA,IAAI,CAAC,wBAAwB,GAAG,EAC9B,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,gBAAgB,KAAK,QAAQ,CACjD,CAAC;AACF,QAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;KACpC;;uHApXU,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAAH,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAI,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,0BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,uRAH1B,CAAC,wBAAwB,CAAC,EA2GpB,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,+BAA+B,mICrJlD,4zGA6GA,EAAA,MAAA,EAAA,CAAA,0mGAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,YAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAF,EAAA,CAAA,EAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAAG,EAAA,CAAA,mBAAA,EAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FDhEa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAPtC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,aAGpB,CAAC,wBAAwB,CAAC,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,4zGAAA,EAAA,MAAA,EAAA,CAAA,0mGAAA,CAAA,EAAA,CAAA;;0BA2H5C,IAAI;;0BAAI,QAAQ;;0BAChB,QAAQ;4CAjHJ,aAAa,EAAA,CAAA;sBADnB,KAAK;gBAQK,QAAQ,EAAA,CAAA;sBADlB,KAAK;gBAgBC,WAAW,EAAA,CAAA;sBADjB,KAAK;gBAOC,WAAW,EAAA,CAAA;sBADjB,KAAK;gBAQC,UAAU,EAAA,CAAA;sBADhB,KAAK;gBAOC,UAAU,EAAA,CAAA;sBADhB,MAAM;gBAQA,SAAS,EAAA,CAAA;sBADf,MAAM;gBAsBA,QAAQ,EAAA,CAAA;sBADd,KAAK;gBAyBE,OAAO,EAAA,CAAA;sBADd,SAAS;uBAAC,WAAW,CAAA;gBAId,eAAe,EAAA,CAAA;sBADtB,eAAe;uBAAC,+BAA+B,CAAA;;;AEtIlD;;;;;;;;;AASG;MAOU,oBAAoB,CAAA;AAuF/B,IAAA,WAAA,CAAoB,qBAA+C,EAAA;QAA/C,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAA0B;AAtFnE;;AAEG;AAEI,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAqB,CAAC;AAE5D;;AAEG;AAEI,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAQ,CAAC;AAEhD;;AAEG;AAEI,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAe,CAAC;AAgBrD;;AAEG;QAEI,IAAW,CAAA,WAAA,GAAG,CAAC,CAAC;AAEvB;;AAEG;QAEI,IAAW,CAAA,WAAA,GAAG,MAAM,CAAC;AAE5B;;AAEG;QAEI,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC;AAiBvB;;AAEG;QAEI,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;AAEvB;;AAEG;QAEI,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QAKnB,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QACrB,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;KAK2C;IAEhE,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;AAC5B,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;KAC/B;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACjB,YAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AACpC,SAAA;KACF;AAEM,IAAA,eAAe,CAAC,eAAoB,EAAA;QACzC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KAChD;AAEM,IAAA,aAAa,CAAC,cAAmB,EAAA;;AAEtC,QAAA,IAAI,CAAC,gBAAgB,GAAG,cAAc,CAAC,MAAM,CAAC;QAC9C,cAAc,CAAC,eAAe,EAAE,CAAC;QACjC,cAAc,CAAC,cAAc,EAAE,CAAC;KACjC;AAEM,IAAA,YAAY,CAAC,aAAkB,EAAA;AACpC,QAAA,MAAM,QAAQ,GAAG,aAAa,CAAC,YAAY,CAAC;QAE5C,aAAa,CAAC,eAAe,EAAE,CAAC;QAChC,aAAa,CAAC,cAAc,EAAE,CAAC;AAE/B,QAAA,IAAI,QAAQ,EAAE;YACZ,IAAI,QAAQ,CAAC,KAAK,EAAE;AAClB,gBAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;AAE7B,gBAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;AACjD,oBAAA,MAAM,IAAI,GAAQ,KAAK,CAAC,KAAK,CAAC,CAAC;oBAE/B,IACE,IAAI,CAAC,IAAI;AACT,wBAAA,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,CACzC,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,aAAa,CACnB,EACD;AACA,wBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,wBAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;wBAC1B,OAAO;AACR,qBAAA;AACF,iBAAA;gBAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AAC1C,oBAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,oBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC1B,iBAAA;AACF,aAAA;iBAA6C,IAAI,QAAQ,CAAC,KAAK,EAAE;;;;AAIhE,gBAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC1B,aAAA;AACF,SAAA;KACF;AAEM,IAAA,QAAQ,CAAC,SAAoB,EAAA;QAClC,SAAS,CAAC,eAAe,EAAE,CAAC;QAC5B,SAAS,CAAC,cAAc,EAAE,CAAC;AAE3B,QAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;AAClC,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAE1B,IAAI,SAAS,CAAC,YAAY,IAAI,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE;AAC1D,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAC1D,SAAS,CAAC,YAAY,CAAC,KAAK,CAC7B,CAAC;AACF,YAAA,MAAM,oBAAoB,GACxB,CAAC,IAAI,CAAC,QAAQ,IAAI,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YAE5D,IAAI,YAAY,IAAI,oBAAoB,EAAE;gBACxC,OAAO;AACR,aAAA;YAED,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAChD,SAAA;KACF;AAEM,IAAA,aAAa,CAAC,cAAmB,EAAA;AACtC,QAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,cAAc,CAAC,MAAM,EAAE;AACnD,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC3B,SAAA;KACF;AAEM,IAAA,YAAY,CAAC,KAAoB,EAAA;AACtC,QAAA,IAAI,KAAK,CAAC,KAAK,KAAK,EAAE,EAAE;AACtB,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACrB,SAAA;KACF;AAEM,IAAA,OAAO,CAAC,KAAY,EAAA;QACzB,KAAK,CAAC,cAAc,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAiB,CAAC,CAAC;AAC5D,QAAA,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;KAC1B;IAEM,UAAU,GAAA;AACf,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;KAC3B;AAEO,IAAA,mBAAmB,CACzB,UAAkB,EAClB,iBAAqC,EACrC,cAAkC,EAAA;QAElC,IAAI,UAAU,KAAK,iBAAiB,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,EAAE;AACnE,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;AACrB,gBAAA,KAAK,EAAE,cAAc;AACrB,gBAAA,aAAa,EAAE,iBAAiB;AACZ,aAAA,CAAC,CAAC;YAExB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC;AACvC,SAAA;KACF;AAEO,IAAA,aAAa,CACnB,IAAiB,EACjB,cAAkC,EAClC,iBAAqC,EACrC,UAAkB,EAAA;AAElB,QAAA,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,iBAAiB,EAAE,cAAc,CAAC,CAAC;KACzE;IAEO,QAAQ,CACd,QAA8B,EAC9B,IAAiB,EACjB,cAAkC,EAClC,iBAAqC,EACrC,UAAkB,EAAA;AAElB,QAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAEhC,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,KAAU,KAAI;YAC7C,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;AAC/B,YAAA,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,QAAQ,CAAC,mBAAmB,CAC1B,UAAU,EACV,iBAAiB,EACjB,cAAc,CACf,CAAC;AACJ,SAAC,CAAC,CAAC;QAEH,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAU,KAAI;YAC9C,QAAQ,CAAC,aAAa,CACpB,IAAI,EACJ,cAAc,EACd,iBAAiB,EACjB,UAAU,CACX,CAAC;AACJ,SAAC,CAAC,CAAC;QAEH,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAU,KAAI;YAC9C,QAAQ,CAAC,aAAa,CACpB,IAAI,EACJ,cAAc,EACd,iBAAiB,EACjB,UAAU,CACX,CAAC;AACJ,SAAC,CAAC,CAAC;AAEH,QAAA,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACjC;AAEO,IAAA,WAAW,CAAC,KAAe,EAAA;QACjC,MAAM,cAAc,GAAuB,EAAE,CAAC;QAC9C,MAAM,iBAAiB,GAAuB,EAAE,CAAC;AACjD,QAAA,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;QAEhC,MAAM,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAC1D,KAAK,EACL,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,UAAU,CAChB,CAAC;AAEF,QAAA,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE;YACjC,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,cAAc,EAAE,iBAAiB,EAAE,UAAU,CAAC,CAAC;AACzE,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,QAAQ,CACX,IAAI,EACJ,IAAI,EACJ,cAAc,EACd,iBAAiB,EACjB,UAAU,CACX,CAAC;AACH,aAAA;AACF,SAAA;KACF;;iHAjSU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAL,wBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EAFpB,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,eAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,aAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,SAAA,EAAA,CAAC,wBAAwB,CAAC,gIC7BvC,69HA2HA,EAAA,MAAA,EAAA,CAAA,ijHAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,YAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,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,CAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAAC,EAAA,CAAA,mBAAA,EAAA,EAAA,CAAA,CAAA;2FD5Fa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;+BACE,eAAe,EAAA,SAAA,EAGd,CAAC,wBAAwB,CAAC,EAAA,QAAA,EAAA,69HAAA,EAAA,MAAA,EAAA,CAAA,ijHAAA,CAAA,EAAA,CAAA;4GAO9B,YAAY,EAAA,CAAA;sBADlB,MAAM;gBAOA,aAAa,EAAA,CAAA;sBADnB,MAAM;gBAOA,WAAW,EAAA,CAAA;sBADjB,MAAM;gBAQA,mBAAmB,EAAA,CAAA;sBADzB,KAAK;gBAQC,mBAAmB,EAAA,CAAA;sBADzB,KAAK;gBAOC,WAAW,EAAA,CAAA;sBADjB,KAAK;gBAOC,WAAW,EAAA,CAAA;sBADjB,KAAK;gBAOC,QAAQ,EAAA,CAAA;sBADd,KAAK;gBAQC,UAAU,EAAA,CAAA;sBADhB,KAAK;gBASC,aAAa,EAAA,CAAA;sBADnB,KAAK;gBAOC,OAAO,EAAA,CAAA;sBADb,KAAK;gBAOC,UAAU,EAAA,CAAA;sBADhB,KAAK;gBAIC,OAAO,EAAA,CAAA;sBADb,SAAS;uBAAC,WAAW,CAAA;;;AEzGxB;;AAEG;MAIU,eAAe,CAAA;IAC1B,WACU,CAAA,WAAwB,EACxB,gBAAwC,EAAA;QADxC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAwB;KAC9C;AAEG,IAAA,SAAS,CAAC,KAAa,EAAA;QAC5B,IAAI,aAAa,GAAG,CAAC,EACnB,QAAQ,GAAG,CAAC,EACZ,QAAgB,CAAC;AAEnB,QAAA,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;AACzC,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;QAED,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACzB,QAAQ,GAAG,4CAA4C,CAAC;AACzD,SAAA;aAAM,IAAI,KAAK,GAAG,IAAI,EAAE;YACvB,QAAQ,GAAG,0CAA0C,CAAC;AACvD,SAAA;aAAM,IAAI,KAAK,GAAG,GAAG,EAAE;YACtB,QAAQ,GAAG,oCAAoC,CAAC;YAChD,QAAQ,GAAG,IAAI,CAAC;AACjB,SAAA;aAAM,IAAI,KAAK,GAAG,GAAG,EAAE;YACtB,QAAQ,GAAG,oCAAoC,CAAC;YAChD,QAAQ,GAAG,GAAG,CAAC;YACf,aAAa,GAAG,CAAC,CAAC;AACnB,SAAA;AAAM,aAAA;YACL,QAAQ,GAAG,oCAAoC,CAAC;YAChD,QAAQ,GAAG,GAAG,CAAC;YACf,aAAa,GAAG,CAAC,CAAC;AACnB,SAAA;QAED,MAAM,WAAW,GACf,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC;AAC5D,YAAA,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;AAE9B,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAEtE,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;KAChD;AAEO,IAAA,SAAS,CAAC,GAAW,EAAE,GAAG,IAAW,EAAA;;AAE3C,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAC7C,EAAE,MAAM,EAAE,OAAO,EAAE,EACnB,GAAG,EACH,GAAG,IAAI,CACR,CAAC;KACH;;4GAhDU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;0GAAf,eAAe,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,CAAA;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,aAAa;AACpB,iBAAA,CAAA;;;MCUY,oBAAoB,CAAA;IAkC/B,WACU,CAAA,OAAwB,EACxB,eAAmC,EAAA;QADnC,IAAO,CAAA,OAAA,GAAP,OAAO,CAAiB;QACxB,IAAe,CAAA,eAAA,GAAf,eAAe,CAAoB;AAzB7C;;;AAGG;AAEI,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAA6B,CAAC;AAsBhE,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;KAC9C;AArBD,IAAA,IAAW,QAAQ,GAAA;AACjB,QAAA,OAAQ,IAAI,CAAC,QAAwB,CAAC,IAAI,CAAC,IAAI,CAAC;KACjD;AAED,IAAA,IAAW,QAAQ,GAAA;AACjB,QAAA,OAAQ,IAAI,CAAC,QAAwB,CAAC,IAAI,CAAC,IAAI,CAAC;KACjD;AAED,IAAA,IAAW,GAAG,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;KAC1B;IAaM,SAAS,GAAA;AACd,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAEhD,QAAA,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,GAAW,CAAC;AAChB,YAAA,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAC/D,IAAI,CAAC,QAAuB,CAC7B,CAAC;AACF,YAAA,IAAI,aAAqB,CAAC;AAE1B,YAAA,QAAQ,cAAc;AACpB,gBAAA,KAAK,MAAM;oBACT,GAAG,GAAG,KAAK,CAAC;oBACZ,MAAM;AACR,gBAAA,KAAK,KAAK,CAAC;AACX,gBAAA,KAAK,MAAM,CAAC;AACZ,gBAAA,KAAK,MAAM,CAAC;AACZ,gBAAA,KAAK,MAAM;oBACT,GAAG,GAAG,SAAS,CAAC;oBAChB,MAAM;AACR,gBAAA,KAAK,MAAM,CAAC;AACZ,gBAAA,KAAK,OAAO;oBACV,GAAG,GAAG,YAAY,CAAC;oBACnB,MAAM;AACR,gBAAA,KAAK,MAAM,CAAC;AACZ,gBAAA,KAAK,OAAO;oBACV,GAAG,GAAG,MAAM,CAAC;oBACb,MAAM;AACR,gBAAA,KAAK,MAAM,CAAC;AACZ,gBAAA,KAAK,OAAO;oBACV,GAAG,GAAG,OAAO,CAAC;oBACd,MAAM;AACR,gBAAA,KAAK,MAAM;oBACT,GAAG,GAAG,MAAM,CAAC;oBACb,MAAM;AACR,gBAAA,KAAK,MAAM,CAAC;AACZ,gBAAA,KAAK,OAAO;oBACV,GAAG,GAAG,MAAM,CAAC;oBACb,MAAM;AACR,gBAAA;oBACE,MAAM;AACT,aAAA;YAED,IAAI,CAAC,GAAG,EAAE;gBACR,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,CACnD,IAAI,CAAC,QAAuB,CAC7B,CAAC;AAEF,gBAAA,QAAQ,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACzD,oBAAA,KAAK,OAAO;wBACV,GAAG,GAAG,OAAO,CAAC;wBACd,MAAM;AACR,oBAAA,KAAK,OAAO;;;;wBAIV,GAAG,GAAG,OAAO,CAAC;wBACd,MAAM;AACR,oBAAA,KAAK,MAAM;wBACT,GAAG,GAAG,MAAM,CAAC;wBACb,MAAM;AACR,oBAAA,KAAK,OAAO;wBACV,GAAG,GAAG,OAAO,CAAC;wBACd,MAAM;AACR,oBAAA;wBACE,MAAM;AACT,iBAAA;AACF,aAAA;YACD,IAAI,CAAC,IAAI,GAAG,OAAO,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;AACpD,SAAA;KACF;IAEM,UAAU,GAAA;QACf,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACrC;IAEM,MAAM,GAAA;QACX,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,QAAuB,CAAC,CAAC;KAClE;IAEM,OAAO,GAAA;QACZ,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,QAAuB,CAAC,CAAC;KACnE;;iHA3HU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAG,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,8HCnBjC,o/CA6CA,EAAA,MAAA,EAAA,CAAA,6yBAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAT,IAAA,CAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,YAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,aAAA,EAAAS,eAAA,EAAA,iBAAA,EAAAJ,EAAA,CAAA,mBAAA,EAAA,EAAA,CAAA,CAAA;2FD1Ba,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;+BACE,eAAe,EAAA,QAAA,EAAA,o/CAAA,EAAA,MAAA,EAAA,CAAA,6yBAAA,CAAA,EAAA,CAAA;oIAalB,QAAQ,EAAA,CAAA;sBADd,KAAK;gBAQC,UAAU,EAAA,CAAA;sBADhB,MAAM;;;MEOI,wBAAwB,CAAA;;qHAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAxB,wBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,iBAvBjC,0BAA0B;QAC1B,+BAA+B;QAC/B,oBAAoB;QACpB,oBAAoB;AACpB,QAAA,eAAe,aAGf,YAAY;QACZ,WAAW;QACX,uBAAuB;QACvB,aAAa;QACb,aAAa;AACb,QAAA,cAAc,aAGd,0BAA0B;QAC1B,+BAA+B;QAC/B,oBAAoB;QACpB,oBAAoB;QACpB,eAAe,CAAA,EAAA,CAAA,CAAA;AAIN,wBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,aAFxB,CAAC,WAAW,EAAE,kBAAkB,CAAC,EAfnC,OAAA,EAAA,CAAA;YACP,YAAY;YACZ,WAAW;YACX,uBAAuB;YACvB,aAAa;YACb,aAAa;YACb,cAAc;AACf,SAAA,CAAA,EAAA,CAAA,CAAA;2FAUU,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAzBpC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,0BAA0B;wBAC1B,+BAA+B;wBAC/B,oBAAoB;wBACpB,oBAAoB;wBACpB,eAAe;AAChB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,uBAAuB;wBACvB,aAAa;wBACb,aAAa;wBACb,cAAc;AACf,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,0BAA0B;wBAC1B,+BAA+B;wBAC/B,oBAAoB;wBACpB,oBAAoB;wBACpB,eAAe;AAChB,qBAAA;AACD,oBAAA,SAAS,EAAE,CAAC,WAAW,EAAE,kBAAkB,CAAC;AAC7C,iBAAA,CAAA;;;ACtCD;;AAEG;MAEU,yBAAyB,CAAA;AAC7B,IAAA,YAAY,CAAC,KAAiB,EAAA;QACnC,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;;AAEvE,QAAA,IAAI,OAAO,EAAE;YACX,OAAO,CAAC,KAAK,EAAE,CAAC;AACjB,SAAA;KACF;AAED;;AAEG;AACI,IAAA,oBAAoB,CAAC,KAAiB,EAAA;QAC3C,OAAO,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;KAC/D;AAED;;AAEG;AACI,IAAA,gBAAgB,CAAC,EAAe,EAAA;AACrC,QAAA,IAAI,EAAE,EAAE;AACN,YAAA,QACE,EAAE,KAAK,QAAQ,CAAC,aAAa,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,EACpE;AACH,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KACd;;sHA1BU,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;0HAAzB,yBAAyB,EAAA,CAAA,CAAA;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBADrC,UAAU;;;ACAX;;AAEG;MAEU,sBAAsB,CAAA;AAG1B,IAAA,IAAI,CAAC,IAA0B,EAAA;AACpC,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;KAClB;AAEM,IAAA,QAAQ,CAAC,IAA6B,EAAA;AAC3C,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KAC1B;;mHATU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;uHAAtB,sBAAsB,EAAA,CAAA,CAAA;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,UAAU;;;ACaX;;;;;;AAMG;MAUU,oBAAoB,CAAA;AAsD/B,IAAA,WAAA,CACU,SAA4B,EAC5B,eAAuC,EACvC,cAAyC,EACzC,UAAsB,EAAA;QAHtB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAmB;QAC5B,IAAe,CAAA,eAAA,GAAf,eAAe,CAAwB;QACvC,IAAc,CAAA,cAAA,GAAd,cAAc,CAA2B;QACzC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;KAC5B;AAjBJ,IAAA,IAAW,iBAAiB,GAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;YAChC,QACE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC;AACvC,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,CAAC;gBAC7C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,EACnC;AACH,SAAA;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;IASM,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACjC;IAEM,kBAAkB,GAAA;AACvB,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAC3D,IAAI,CAAC,UAAU,CAChB,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE;AACvD,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAC3B,SAAA;KACF;IAEM,mBAAmB,GAAA;AACxB,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;KAC5B;IAEM,gBAAgB,GAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACnD,SAAA;KACF;AAEM,IAAA,QAAQ,CAAC,IAA6B,EAAA;AAC3C,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC;AAC5C,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,eAAe,CAAC;AAChD,QAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,mBAAmB,CAAC;AACxD,QAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,oBAAoB,CAAC;AAC1D,QAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,kBAAkB,CAAC;AACtD,QAAA,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,sBAAsB,CAAC;KAC/D;AAEO,IAAA,cAAc,CAAC,QAAiB,EAAA;;;;QAItC,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC;AACpC,YAAA,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;AAChC,SAAC,CAAC,CAAC;KACJ;AAEO,IAAA,gBAAgB,CAAC,OAAiC,EAAA;AACxD,QAAA,OAAO,OAAO,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;KACzE;;iHAzGU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAK,sBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,yBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EALpB,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,CAAC,yBAAyB,EAAE,sBAAsB,CAAC,EAsChD,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,oBAAoB,EAGpB,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,eAAe,EAGf,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,OAAO,gDC5EvB,o3JAsIA,EAAA,MAAA,EAAA,CAAA,mzYAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,EAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAP,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FDjGa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAThC,SAAS;+BACE,eAAe,EAAA,SAAA,EAGd,CAAC,yBAAyB,EAAE,sBAAsB,CAAC,EAAA,aAAA,EAG/C,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,o3JAAA,EAAA,MAAA,EAAA,CAAA,mzYAAA,CAAA,EAAA,CAAA;wMAS9B,SAAS,EAAA,CAAA;sBADf,KAAK;gBAWC,QAAQ,EAAA,CAAA;sBADd,KAAK;gBAkBC,WAAW,EAAA,CAAA;sBADjB,YAAY;uBAAC,oBAAoB,CAAA;gBAI3B,iBAAiB,EAAA,CAAA;sBADvB,YAAY;uBAAC,eAAe,CAAA;gBAItB,OAAO,EAAA,CAAA;sBADb,YAAY;uBAAC,OAAO,CAAA;;;MEjEV,iBAAiB,CAAA;;8GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,iBAJb,oBAAoB,CAAA,EAAA,OAAA,EAAA,CACzB,YAAY,EAAE,cAAc,aAC5B,oBAAoB,CAAA,EAAA,CAAA,CAAA;AAEnB,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,EAHnB,OAAA,EAAA,CAAA,CAAC,YAAY,EAAE,cAAc,CAAC,CAAA,EAAA,CAAA,CAAA;2FAG5B,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,oBAAoB,CAAC;AACpC,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,cAAc,CAAC;oBACvC,OAAO,EAAE,CAAC,oBAAoB,CAAC;AAChC,iBAAA,CAAA;;;ACSD;;AAEG;AACH,IAAIQ,cAAY,GAAG,CAAC,CAAC;AAErB;;;AAGG;AACH,MAAM,gCAAgC,GAAa;AACjD,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,iBAAiB,CAAC;AAChD,IAAA,KAAK,EAAE,IAAI;CACZ,CAAC;AAEF;;;;AAIG;MAQU,iBAAiB,CAAA;AAsN5B,IAAA,WAAA,CAAoB,cAAiC,EAAA;QAAjC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAmB;AArNrD;;AAEG;AACI,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,OAAO,EAAQ,CAAC;AA4ClC;;;AAGG;AAEI,QAAA,IAAA,CAAA,EAAE,GAAG,CAAA,UAAA,EAAa,EAAEA,cAAY,EAAE,CAAC;AAsJlC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAkB,CAAC;QAC7C,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QACjB,IAAc,CAAA,cAAA,GAAG,IAAI,eAAe,CAAU,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7D,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAClB,IAAe,CAAA,eAAA,GAAG,IAAI,eAAe,CAAU,IAAI,CAAC,SAAS,CAAC,CAAC;;AA6D/D,QAAA,IAAA,CAAA,6BAA6B,GAAG,MAAK,GAAG,CAAC;;AAEzC,QAAA,IAAA,CAAA,gBAAgB,GAAG,CAAC,KAAU,KAAI,GAAG,CAAC;;AAEtC,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAK,GAAG,CAAC;KA1DoB;AAhNzD;;;AAGG;IACH,IACW,OAAO,CAAC,KAAc,EAAA;AAC/B,QAAA,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC;AAEhC,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,eAAe,EAAE;AACrC,YAAA,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC;YAChC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAExC,YAAA,IAAI,eAAe,EAAE;AACnB,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC;AACjC,aAAA;AACF,SAAA;AAED,QAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;KACpC;AAED,IAAA,IAAW,OAAO,GAAA;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;KACtB;AAED;;;AAGG;IACH,IACW,QAAQ,CAAC,KAAc,EAAA;QAChC,MAAM,YAAY,GAAG,eAAe,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAClE,QAAA,IAAI,YAAY,KAAK,IAAI,CAAC,QAAQ,EAAE;AAClC,YAAA,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC;YAC9B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC1C,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;AACpC,SAAA;KACF;AAED,IAAA,IAAW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;AA2BD;;;;;AAKG;IACH,IACW,IAAI,CAAC,KAAa,EAAA;AAC3B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;KACpC;AAED,IAAA,IAAW,IAAI,GAAA;QACb,OAAO,IAAI,CAAC,KAAK,CAAC;KACnB;AAED;;;;;AAKG;IACH,IACW,QAAQ,CAAC,KAAa,EAAA;AAC/B,QAAA,OAAO,CAAC,IAAI,CACV,uHAAuH,CACxH,CAAC;AACF,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;KACpC;AACD,IAAA,IAAW,QAAQ,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;KAC5B;;IAGD,IAAW,aAAa,CAAC,KAAa,EAAA;AACpC,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;KACpC;AAED;;;;;AAKG;IACH,IACW,KAAK,CAAC,KAAU,EAAA;;AAEzB,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE;YACzB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,MAAM,EAAE;AAC5D,gBAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC1C,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC1B,aAAA;AAED,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACrB,SAAA;AAED,QAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;KACpC;AAED,IAAA,IAAW,KAAK,GAAA;QACd,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;AAUD;;;;;;;AAOG;AACH,IAAA,IACW,SAAS,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC;KAClC;IACD,IAAW,SAAS,CAAC,KAAa,EAAA;AAChC,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;AACvC,SAAA;KACF;AAED;;AAEG;AACH,IAAA,IAEW,MAAM,GAAA;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;KACrB;AAED;;AAEG;AACH,IAAA,IACW,aAAa,GAAA;QACtB,OAAO,IAAI,CAAC,cAAc,CAAC;KAC5B;AAED;;AAEG;AACH,IAAA,IACW,cAAc,GAAA;QACvB,OAAO,IAAI,CAAC,eAAe,CAAC;KAC7B;AAED,IAAA,IAAW,OAAO,GAAA;AAChB,QAAA,OAAO,CAAa,UAAA,EAAA,IAAI,CAAC,EAAE,QAAQ,CAAC;KACrC;IAED,IAAW,aAAa,CAAC,KAAU,EAAA;AACjC,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,cAAc,EAAE;AACjC,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC7B,SAAA;KACF;AACD,IAAA,IAAW,aAAa,GAAA;QACtB,OAAO,IAAI,CAAC,cAAc,CAAC;KAC5B;IAeM,WAAW,GAAA;QAChB,IAAI,CAAC,6BAA6B,EAAE,CAAC;KACtC;AAEM,IAAA,UAAU,CAAC,KAAU,EAAA;QAC1B,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,OAAO;AACR,SAAA;AAED,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,aAAa,CAAC;AAEjD,QAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;KACpC;AAED;;;AAGG;AACI,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AACzC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC5B;AAEM,IAAA,gBAAgB,CAAC,EAAO,EAAA;AAC7B,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;KAC5B;AAEM,IAAA,iBAAiB,CAAC,EAAO,EAAA;AAC9B,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;KAC7B;AAEM,IAAA,aAAa,CAAC,KAAY,EAAA;QAC/B,KAAK,CAAC,eAAe,EAAE,CAAC;AAExB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACpB,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AAChB,gBAAA,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,IAAI,CAAC,MAAM;AACnB,aAAA,CAAC,CAAC;AAEH,YAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;AACnC,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnC,SAAA;KACF;AAEM,IAAA,kBAAkB,CAAC,KAAY,EAAA;QACpC,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;KAClB;;8GAzQU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EAHjB,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,UAAA,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,SAAA,EAAA,CAAC,gCAAgC,CAAC,0BC3C/C,6lCAkCA,EAAA,MAAA,EAAA,CAAA,yvBAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAd,IAAA,CAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,YAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FDYa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAP7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,aAGV,CAAC,gCAAgC,CAAC,EAC5B,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,6lCAAA,EAAA,MAAA,EAAA,CAAA,yvBAAA,CAAA,EAAA,CAAA;wGAapC,OAAO,EAAA,CAAA;sBADjB,KAAK;gBAyBK,QAAQ,EAAA,CAAA;sBADlB,KAAK;gBAmBC,EAAE,EAAA,CAAA;sBADR,KAAK;gBAUC,KAAK,EAAA,CAAA;sBADX,KAAK;gBAUC,UAAU,EAAA,CAAA;sBADhB,KAAK;gBAUK,IAAI,EAAA,CAAA;sBADd,KAAK;gBAiBK,QAAQ,EAAA,CAAA;sBADlB,KAAK;gBAyBK,KAAK,EAAA,CAAA;sBADf,KAAK;gBA0BC,IAAI,EAAA,CAAA;sBADV,KAAK;gBAYK,SAAS,EAAA,CAAA;sBADnB,KAAK;gBAeK,MAAM,EAAA,CAAA;sBAFhB,MAAM;gBAUI,aAAa,EAAA,CAAA;sBADvB,MAAM;gBASI,cAAc,EAAA,CAAA;sBADxB,MAAM;;;AEjNT,IAAI,YAAY,GAAG,CAAC,CAAC;AAErB;;;;;AAKG;MAKU,sBAAsB,CAAA;IAkHjC,WACU,CAAA,cAAiC,EACb,SAAoB,EAAA;QADxC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAmB;QACb,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;AA/DlD;;;;;;AAMG;QAEI,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AA2ChB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,OAAO,EAAQ,CAAC;QAEpC,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAElB,QAAA,IAAA,CAAA,KAAK,GAAG,CAAA,gBAAA,EAAmB,YAAY,EAAE,EAAE,CAAC;;AAuF5C,QAAA,IAAA,CAAA,QAAQ,GAAyB,MAAK,GAAG,CAAC;;AAE1C,QAAA,IAAA,CAAA,SAAS,GAAc,MAAK,GAAG,CAAC;QA/EtC,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;AACrC,SAAA;KACF;AApGD;;;AAGG;IACH,IACW,QAAQ,CAAC,KAAc,EAAA;QAChC,MAAM,gBAAgB,GAAG,eAAe,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AACtE,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,gBAAgB,EAAE;AACvC,YAAA,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC;YAClC,IAAI,CAAC,yBAAyB,EAAE,CAAC;AAClC,SAAA;KACF;AAED,IAAA,IAAW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;AAED;;;;;AAKG;IACH,IACW,IAAI,CAAC,KAAa,EAAA;AAC3B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;AACD,IAAA,IAAW,IAAI,GAAA;QACb,OAAO,IAAI,CAAC,KAAK,CAAC;KACnB;AAYD;;;;AAIG;IACH,IACW,KAAK,CAAC,KAAU,EAAA;AACzB,QAAA,MAAM,UAAU,GAAG,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC;;AAGzC,QAAA,IAAI,UAAU,EAAE;AACd,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3B,IAAI,CAAC,2BAA2B,EAAE,CAAC;AACpC,SAAA;KACF;AACD,IAAA,IAAW,KAAK,GAAA;QACd,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;AAED;;;;;;AAMG;IACH,IACW,QAAQ,CAAC,KAAa,EAAA;AAC/B,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE;AAC5B,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,2BAA2B,EAAE,CAAC;AACpC,SAAA;KACF;AACD,IAAA,IAAW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;IAwBM,kBAAkB,GAAA;;QAEvB,UAAU,CAAC,MAAK;YACd,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC3B,SAAC,CAAC,CAAC;;QAGH,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAE1B,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;;YAErE,UAAU,CAAC,MAAK;gBACd,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC3B,aAAC,CAAC,CAAC;;YAGH,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC5B,SAAC,CAAC,CAAC;KACJ;IAEM,eAAe,GAAA;QACpB,IAAI,IAAI,CAAC,SAAS,EAAE;;AAElB,YAAA,IAAI,CAAC,QAAQ;gBACX,IAAI,CAAC,QAAQ,IAAI,eAAe,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;;AAGzE,YAAA,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;AACrC,SAAA;KACF;IAEM,kBAAkB,GAAA;QACvB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;AAC5B,YAAA,KAAK,CAAC,MAAM;AACT,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACnC,iBAAA,SAAS,CAAC,CAAC,MAAsB,KAAI;gBACpC,IAAI,CAAC,SAAS,EAAE,CAAC;AACjB,gBAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChC,aAAC,CAAC,CAAC;AACL,YAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;gBAC5D,IAAI,CAAC,SAAS,EAAE,CAAC;AACjB,gBAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;AACrC,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACJ;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;KAC/B;AAEM,IAAA,UAAU,CAAC,KAAU,EAAA;AAC1B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACpB;AAED;;;AAGG;AACI,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AACzC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC5B;AAEM,IAAA,gBAAgB,CAAC,EAAwB,EAAA;AAC9C,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;AAEM,IAAA,iBAAiB,CAAC,EAAO,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;IAOO,yBAAyB,GAAA;QAC/B,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;AAC5B,gBAAA,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AACjC,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;IAEO,sBAAsB,GAAA;QAC5B,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;AAC5B,gBAAA,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACzB,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;IAEO,2BAA2B,GAAA;QACjC,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;AAC5B,gBAAA,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC;AACtC,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;IAEO,2BAA2B,GAAA;AACjC,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,OAAO;AACR,SAAA;QAED,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;YAC5B,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,KAAK,CAAC;AAC9C,SAAC,CAAC,CAAC;KACJ;IAEO,iBAAiB,GAAA;QACvB,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACnC,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,2BAA2B,EAAE,CAAC;KACpC;;mHA7OU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;uGAAtB,sBAAsB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,SAAA,EAqGhB,iBAAiB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECvIpC,mRAUA,EAAA,CAAA,CAAA;2FDwBa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,SAAS;+BACE,iBAAiB,EAAA,QAAA,EAAA,mRAAA,EAAA,CAAA;;0BAuHxB,IAAI;;0BAAI,QAAQ;4CA1GZ,cAAc,EAAA,CAAA;sBADpB,KAAK;gBAUC,SAAS,EAAA,CAAA;sBADf,KAAK;gBAQK,QAAQ,EAAA,CAAA;sBADlB,KAAK;gBAoBK,IAAI,EAAA,CAAA;sBADd,KAAK;gBAiBC,QAAQ,EAAA,CAAA;sBADd,KAAK;gBASK,KAAK,EAAA,CAAA;sBADf,KAAK;gBAuBK,QAAQ,EAAA,CAAA;sBADlB,KAAK;gBAYE,MAAM,EAAA,CAAA;sBADb,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,iBAAiB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;;;AErI3D;;AAEG;MAKU,sBAAsB,CAAA;;;;AAK1B,IAAA,OAAO,CAAC,KAAiB,EAAA;QAC9B,KAAK,CAAC,eAAe,EAAE,CAAC;KACzB;;mHAPU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,4GCTnC,2EAGA,EAAA,CAAA,CAAA;2FDMa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,SAAS;+BACE,iBAAiB,EAAA,QAAA,EAAA,2EAAA,EAAA,CAAA;8BAQpB,OAAO,EAAA,CAAA;sBADb,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MEKtB,cAAc,CAAA;;2GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,iBAPvB,iBAAiB;QACjB,sBAAsB;QACtB,sBAAsB,CAAA,EAAA,OAAA,EAAA,CAEd,YAAY,EAAE,WAAW,EAAE,aAAa,CAAA,EAAA,OAAA,EAAA,CACxC,iBAAiB,EAAE,sBAAsB,EAAE,sBAAsB,CAAA,EAAA,CAAA,CAAA;AAEhE,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YAHhB,CAAC,YAAY,EAAE,WAAW,EAAE,aAAa,CAAC,CAAA,EAAA,CAAA,CAAA;2FAGxC,cAAc,EAAA,UAAA,EAAA,CAAA;kBAT1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,iBAAiB;wBACjB,sBAAsB;wBACtB,sBAAsB;AACvB,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,aAAa,CAAC;AACnD,oBAAA,OAAO,EAAE,CAAC,iBAAiB,EAAE,sBAAsB,EAAE,sBAAsB,CAAC;AAC7E,iBAAA,CAAA;;;ACTD,MAAM,mBAAmB,GAAG,gCAAgC,CAAC;AAC7D,MAAM,mBAAmB,GAAG,gCAAgC,CAAC;AAC7D,MAAM,mBAAmB,GAAG,gCAAgC,CAAC;AAC7D,MAAM,mBAAmB,GAAG,gCAAgC,CAAC;AAE7D,MAAM,wBAAwB,GAAG,GAAG,CAAC;AACrC,MAAM,wBAAwB,GAAG,GAAG,CAAC;AACrC,MAAM,wBAAwB,GAAG,GAAG,CAAC;AACrC,MAAM,wBAAwB,GAAG,GAAG,CAAC;AACrC,MAAM,wBAAwB,GAAG,IAAI,CAAC;AAEtC;;AAEG;MAEU,6BAA6B,CAAA;IAGxC,WACU,CAAA,kBAAyC,EACjD,eAAiC,EAAA;QADzB,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAuB;QAGjD,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;KACtE;AAED;;AAEG;AACI,IAAA,KAAK,CAAC,EAAc,EAAA;AACzB,QAAA,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;KAC1B;AAED;;;AAGG;AACI,IAAA,UAAU,CAAC,EAAc,EAAA;QAC9B,OAAO,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;KACtD;AAED;;;AAGG;AACI,IAAA,qBAAqB,CAAC,KAAa,EAAA;QACxC,IAAI,KAAK,IAAI,wBAAwB,EAAE;YACrC,OAAO,mBAAmB,CAAC,EAAE,CAAC;AAC/B,SAAA;aAAM,IACL,KAAK,IAAI,wBAAwB;YACjC,KAAK,IAAI,wBAAwB,EACjC;YACA,OAAO,mBAAmB,CAAC,EAAE,CAAC;AAC/B,SAAA;aAAM,IACL,KAAK,IAAI,wBAAwB;YACjC,KAAK,IAAI,wBAAwB,EACjC;YACA,OAAO,mBAAmB,CAAC,EAAE,CAAC;AAC/B,SAAA;AAAM,aAAA;YACL,OAAO,mBAAmB,CAAC,EAAE,CAAC;AAC/B,SAAA;KACF;AAED;;AAEG;AACI,IAAA,cAAc,CAAC,OAAmB,EAAA;QACvC,OAAO,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC;KACvE;AAED;;AAEG;IACI,YAAY,CAAC,QAAoB,EAAE,OAAoB,EAAA;QAC5D,OAAO,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;KACjD;AAED;;AAEG;IACI,mBAAmB,CAAC,OAAmB,EAAE,QAAgB,EAAA;AAC9D,QAAA,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC;QACjC,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,EAAE;AACtE,YAAA,gBAAgB,EAAE,IAAI;AACvB,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC;QAClC,OAAO,KAAK,EAAE,EAAE;AACd,YAAA,cAAc,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC3C,SAAA;KACF;AAED;;AAEG;IACI,kBAAkB,CACvB,OAAmB,EACnB,UAA+B,EAAA;AAE/B,QAAA,MAAM,QAAQ,GAAgB,OAAO,CAAC,aAAa,CAAC;QAEpD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;QACzD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;QACzD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;QACzD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;AAEzD,QAAA,IAAI,QAAgB,CAAC;AAErB,QAAA,QAAQ,UAAU;AAChB,YAAA,KAAK,mBAAmB,CAAC,EAAE,EAAE;gBAC3B,QAAQ,GAAG,mBAAmB,CAAC;gBAC/B,MAAM;AACP,aAAA;AACD,YAAA,KAAK,mBAAmB,CAAC,EAAE,EAAE;gBAC3B,QAAQ,GAAG,mBAAmB,CAAC;gBAC/B,MAAM;AACP,aAAA;AACD,YAAA,KAAK,mBAAmB,CAAC,EAAE,EAAE;gBAC3B,QAAQ,GAAG,mBAAmB,CAAC;gBAC/B,MAAM;AACP,aAAA;AACD,YAAA,KAAK,mBAAmB,CAAC,EAAE,EAAE;gBAC3B,QAAQ,GAAG,mBAAmB,CAAC;gBAC/B,MAAM;AACP,aAAA;AACF,SAAA;QAED,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;KAC5C;AAED;;AAEG;IACI,WAAW,CAAC,OAAmB,EAAE,QAAgB,EAAA;AACtD,QAAA,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC;AACjC,QAAA,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC;KACxB;;0HAvHU,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;8HAA7B,6BAA6B,EAAA,CAAA,CAAA;2FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBADzC,UAAU;;;ACpBX;;AAEG;MAKU,mCAAmC,CAAA;;gIAAnC,mCAAmC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnC,mCAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mCAAmC,qECThD,6BACA,EAAA,CAAA,CAAA;2FDQa,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAJ/C,SAAS;+BACE,+BAA+B,EAAA,QAAA,EAAA,6BAAA,EAAA,CAAA;;;AEc3C;;AAEG;MAQU,wBAAwB,CAAA;IAgDnC,WACU,CAAA,cAAiC,EACjC,0BAAyD,EAAA;QADzD,IAAc,CAAA,cAAA,GAAd,cAAc,CAAmB;QACjC,IAA0B,CAAA,0BAAA,GAA1B,0BAA0B,CAA+B;AAR3D,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,OAAO,EAAQ,CAAC;KASxC;IA3CJ,IAAW,OAAO,CAAC,KAAc,EAAA;AAC/B,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,QAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;KACpC;AAED,IAAA,IAAW,OAAO,GAAA;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;KACtB;IAED,IAAW,QAAQ,CAAC,KAAc,EAAA;QAChC,IAAI,CAAC,0BAA0B,CAAC,WAAW,CACzC,IAAI,CAAC,cAAc,EACnB,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CACf,CAAC;AACF,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;KACpC;AAED,IAAA,IAAW,QAAQ,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC;KAChC;IAyBM,eAAe,GAAA;;QAEpB,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,0BAA0B,CAAC,mBAAmB,CACjD,IAAI,CAAC,cAAc,EACnB,CAAC,CAAC,CACH,CAAC;YACF,IAAI,CAAC,4BAA4B,EAAE,CAAC;YACpC,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC7B,SAAC,CAAC,CAAC;KACJ;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;KAC/B;AAED;;;AAGG;AACI,IAAA,OAAO,CAAC,KAAU,EAAA;AACvB,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,0BAA0B,CAAC,YAAY,CACjE,IAAI,CAAC,SAAS,EACd,KAAK,CAAC,MAAM,CACb,CAAC;QACF,IAAI,CAAC,cAAc,EAAE;YACnB,IAAI,CAAC,aAAa,EAAE,CAAC;AACtB,SAAA;KACF;AAEM,IAAA,SAAS,CAAC,KAAoB,EAAA;;AAEnC,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE;YACrB,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,KAAK,CAAC,cAAc,EAAE,CAAC;AACxB,SAAA;KACF;IAEO,aAAa,GAAA;AACnB,QAAA,IAAI,CAAC,0BAA0B,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC;QACnE,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;KAC5D;IAEO,4BAA4B,GAAA;QAClC,IAAI,CAAC,OAAO,CAAC,aAAa;AACvB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACnC,aAAA,SAAS,CAAC,CAAC,KAAK,KAAI;AACnB,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACvB,SAAC,CAAC,CAAC;KACN;IAEO,mBAAmB,GAAA;QACzB,IAAI,CAAC,OAAO,CAAC,cAAc;AACxB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACnC,aAAA,SAAS,CAAC,CAAC,KAAK,KAAI;AACnB,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACxB,SAAC,CAAC,CAAC;KACN;;qHA/GU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAe,6BAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,wBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,EA+B3B,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,UAAU,EAMV,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,UAAU,6BCnEpB,s7CAqDA,EAAA,MAAA,EAAA,CAAA,yjHAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAd,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,EAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FDvBa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAPpC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,mBAGZ,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,s7CAAA,EAAA,MAAA,EAAA,CAAA,yjHAAA,CAAA,EAAA,CAAA;iJAQ9B,OAAO,EAAA,CAAA;sBADb,KAAK;gBA6BE,SAAS,EAAA,CAAA;sBAJhB,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,SAAS,EAAE;AACpB,wBAAA,IAAI,EAAE,UAAU;AAChB,wBAAA,MAAM,EAAE,KAAK;AACd,qBAAA,CAAA;gBAOO,cAAc,EAAA,CAAA;sBAJrB,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,cAAc,EAAE;AACzB,wBAAA,IAAI,EAAE,UAAU;AAChB,wBAAA,MAAM,EAAE,KAAK;AACd,qBAAA,CAAA;;;AEvCH,MAAM,4BAA4B,GAAG,oBAAoB,CAAC;AAE1D;;AAEG;MAQU,4BAA4B,CAAA;IA4CvC,WACU,CAAA,kBAAyC,EACzC,mBAAkD,EAClD,SAAqB,EACrB,mBAA4C,EAC5C,MAAc,EACF,QAA0B,EAAA;QALtC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAuB;QACzC,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAA+B;QAClD,IAAS,CAAA,SAAA,GAAT,SAAS,CAAY;QACrB,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAyB;QAC5C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACF,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAkB;AAZxC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,OAAO,EAAQ,CAAC;KAaxC;AAhDJ;;;;AAIG;IACH,IACW,UAAU,CAAC,KAAwC,EAAA;AAC5D,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;KAC1B;AAED,IAAA,IAAW,UAAU,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,WAAW,IAAI,QAAQ,CAAC;KACrC;IAOD,IAAY,iBAAiB,CAAC,KAA0B,EAAA;AACtD,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,kBAAkB,EAAE;AACrC,YAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;YAChC,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YACpE,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAC9B,SAAA;KACF;IAyBM,QAAQ,GAAA;;QAEb,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,QAAQ,CAAC,cAAc;AACzB,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;iBACnC,SAAS,CAAC,MAAK;gBACd,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC7B,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAC/B,aAAC,CAAC,CAAC;AACN,SAAA;KACF;IAEM,eAAe,GAAA;QACpB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC7B;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;QAE9B,IAAI,CAAC,uBAAuB,EAAE,CAAC;KAChC;IAGM,cAAc,GAAA;QACnB,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAC9B;IAEO,oBAAoB,GAAA;;AAE1B,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AAC1B,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;;;;AAKzC,YAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAK;gBACjC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAK;oBAC3D,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAC/B,iBAAC,CAAC,CAAC;AAEH,gBAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,EAAE;AAChC,oBAAA,aAAa,EAAE,IAAI;AACnB,oBAAA,OAAO,EAAE,IAAI;AACd,iBAAA,CAAC,CAAC;AACL,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;IAEO,uBAAuB,GAAA;;QAE7B,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACzB,YAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC;AACnC,YAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;AACnC,SAAA;KACF;IAEO,qBAAqB,GAAA;AAC3B,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC5E,QAAA,IAAI,CAAC,iBAAiB;AACpB,YAAA,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;KAC/D;IAEO,qBAAqB,GAAA;QAC3B,IAAI,CAAC,kBAAkB,CAAC,WAAW,CACjC,IAAI,CAAC,UAAU,EACf,4BAA4B,CAC7B,CAAC;QACF,IAAI,CAAC,kBAAkB,CAAC,aAAa,CACnC,IAAI,CAAC,UAAU,EACf,4BAA4B,CAC7B,CAAC;KACH;;yHA/HU,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAgB,6BAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAhB,IAAA,CAAA,uBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,4BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,iMAiBtB,wBAAwB,EAAA,IAAA,EACjC,wBAAwB,EAaxB,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,UAAU,2CCzEpB,6LAOA,EAAA,MAAA,EAAA,CAAA,+mDAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAM,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FDmCa,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAPxC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,mBAGjB,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,6LAAA,EAAA,MAAA,EAAA,CAAA,+mDAAA,CAAA,EAAA,CAAA;;0BAoDlC,QAAQ;4CAzCA,UAAU,EAAA,CAAA;sBADpB,KAAK;gBAYC,cAAc,EAAA,CAAA;sBAHpB,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,wBAAwB,EAAE;AACzC,wBAAA,IAAI,EAAE,wBAAwB;AAC/B,qBAAA,CAAA;gBAeO,UAAU,EAAA,CAAA;sBAJjB,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,WAAW,EAAE;AACtB,wBAAA,IAAI,EAAE,UAAU;AAChB,wBAAA,MAAM,EAAE,IAAI;AACb,qBAAA,CAAA;gBA8CM,cAAc,EAAA,CAAA;sBADpB,YAAY;uBAAC,eAAe,CAAA;;;AEtH/B;;AAEG;MAKU,8BAA8B,CAAA;;2HAA9B,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA9B,8BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,8BAA8B,gECT3C,6BACA,EAAA,CAAA,CAAA;2FDQa,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAJ1C,SAAS;+BACE,0BAA0B,EAAA,QAAA,EAAA,6BAAA,EAAA,CAAA;;;MEoBzB,qBAAqB,CAAA;;kHAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,iBAd9B,4BAA4B;QAC5B,wBAAwB;QACxB,mCAAmC;AACnC,QAAA,8BAA8B,CAEtB,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,cAAc,aAEpC,4BAA4B;QAC5B,wBAAwB;QACxB,mCAAmC;QACnC,8BAA8B,CAAA,EAAA,CAAA,CAAA;mHAIrB,qBAAqB,EAAA,SAAA,EAFrB,CAAC,6BAA6B,CAAC,YAPjC,CAAC,YAAY,EAAE,cAAc,CAAC,CAAA,EAAA,CAAA,CAAA;2FAS5B,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAhBjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,4BAA4B;wBAC5B,wBAAwB;wBACxB,mCAAmC;wBACnC,8BAA8B;AAC/B,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,cAAc,CAAC;AACvC,oBAAA,OAAO,EAAE;wBACP,4BAA4B;wBAC5B,wBAAwB;wBACxB,mCAAmC;wBACnC,8BAA8B;AAC/B,qBAAA;oBACD,SAAS,EAAE,CAAC,6BAA6B,CAAC;AAC3C,iBAAA,CAAA;;;ACvBD;;AAEG;MAMU,6BAA6B,CAAA;;0HAA7B,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA7B,6BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,6BAA6B,+DCV1C,6BACA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FDSa,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBALzC,SAAS;+BACE,yBAAyB,EAAA,eAAA,EAElB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,6BAAA,EAAA,CAAA;;;AEoBjD,MAAM,wCAAwC,GAAQ;AACpD,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,wBAAwB,CAAC;AACvD,IAAA,KAAK,EAAE,IAAI;CACZ,CAAC;AACF,MAAM,2BAA2B,GAAG;AAClC,IAAA,OAAO,EAAE,aAAa;AACtB,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,wBAAwB,CAAC;AACvD,IAAA,KAAK,EAAE,IAAI;CACZ,CAAC;AAEF,IAAI,QAAQ,GAAG,CAAC,CAAC;MAYJ,wBAAwB,CAAA;AAyEnC,IAAA,WAAA,CAAoB,cAAiC,EAAA;QAAjC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAmB;AAvCrD;;AAEG;QAEI,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAExB;;;AAGG;QAEI,IAAQ,CAAA,QAAA,GAAG,CAAC,CAAC;AAEpB;;AAEG;AAEI,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAyB,CAAC;QAMzD,IAAwB,CAAA,wBAAA,GAAG,KAAK,CAAC;QAUhC,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC;AACrB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,OAAO,EAAQ,CAAC;QACpC,IAAc,CAAA,cAAA,GAAG,QAAQ,EAAE,CAAC;QAE5B,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;;AA8DjB,QAAA,IAAA,CAAA,SAAS,GAAc,MAAK,GAAG,CAAC;;AAEhC,QAAA,IAAA,CAAA,QAAQ,GAAyB,MAAK,GAAG,CAAC;KA9DO;AA9DzD;;;AAGG;IACH,IACW,OAAO,CAAC,OAAgB,EAAA;AACjC,QAAA,IAAI,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE;AAC5B,YAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;AACxB,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;;;AAIvB,YAAA,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,EAAE;AACtC,gBAAA,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;AAC9B,gBAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC5B,aAAA;AACF,SAAA;KACF;AAED,IAAA,IAAW,OAAO,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC;KAC/B;AAqBD,IAAA,IAAW,iBAAiB,GAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;KACxC;AAID,IAAA,IAAW,cAAc,GAAA;AACvB,QAAA,OAAO,CAA2B,wBAAA,EAAA,IAAI,CAAC,cAAc,EAAE,CAAC;KACzD;IAcM,kBAAkB,GAAA;QACvB,IAAI,CAAC,eAAe,CAAC,OAAO;AACzB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;aACnC,SAAS,CAAC,MAAK;;;AAGd,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;AACrC,SAAC,CAAC,CAAC;;;QAIL,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;AACvC,SAAC,CAAC,CAAC;KACJ;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;KAC/B;AAEM,IAAA,UAAU,CAAC,KAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;KACpC;AAEM,IAAA,QAAQ,CAAC,OAAwB,EAAA;AACtC,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACjB,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AACxB,SAAA;QAED,OAAO;KACR;AAEM,IAAA,gBAAgB,CAAC,EAAwB,EAAA;AAC9C,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;AAEM,IAAA,iBAAiB,CAAC,EAAO,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;AAEM,IAAA,gBAAgB,CAAC,QAAiB,EAAA;AACvC,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACzB,QAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;KACpC;AAEM,IAAA,aAAa,CAAC,KAAU,EAAA;QAC7B,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;IAEM,YAAY,GAAA;QACjB,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;IAOO,eAAe,GAAA;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC7B,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YACrB,OAAO,EAAE,IAAI,CAAC,QAAQ;AACvB,SAAA,CAAC,CAAC;KACJ;IAEO,aAAa,GAAA;AACnB,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;KAC9B;;qHAlJU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,wBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,EANxB,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,SAAA,EAAA;QACT,wCAAwC;QACxC,2BAA2B;KAC5B,EAkEgB,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,6BAA6B,6BClHhD,opCAyCA,EAAA,MAAA,EAAA,CAAA,83HAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FDUa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAVpC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EAGlB,SAAA,EAAA;wBACT,wCAAwC;wBACxC,2BAA2B;qBAC5B,EACgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,opCAAA,EAAA,MAAA,EAAA,CAAA,83HAAA,CAAA,EAAA,CAAA;wGAWxC,SAAS,EAAA,CAAA;sBADf,KAAK;gBAQK,OAAO,EAAA,CAAA;sBADjB,KAAK;gBAuBC,QAAQ,EAAA,CAAA;sBADd,KAAK;gBAQC,QAAQ,EAAA,CAAA;sBADd,KAAK;gBAOC,YAAY,EAAA,CAAA;sBADlB,MAAM;gBAcC,eAAe,EAAA,CAAA;sBADtB,eAAe;uBAAC,6BAA6B,CAAA;;;MEtGnC,qBAAqB,CAAA;;kHAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;mHAArB,qBAAqB,EAAA,YAAA,EAAA,CAJjB,6BAA6B,EAAE,wBAAwB,CAAA,EAAA,OAAA,EAAA,CAC5D,YAAY,EAAE,WAAW,CAAA,EAAA,OAAA,EAAA,CACzB,6BAA6B,EAAE,wBAAwB,CAAA,EAAA,CAAA,CAAA;AAEtD,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,EAHvB,OAAA,EAAA,CAAA,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA,EAAA,CAAA,CAAA;2FAGzB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,6BAA6B,EAAE,wBAAwB,CAAC;AACvE,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC;AACpC,oBAAA,OAAO,EAAE,CAAC,6BAA6B,EAAE,wBAAwB,CAAC;AACnE,iBAAA,CAAA;;;ACXD;;AAEG;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skyux/forms",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "6.0.0-beta.10",
|
|
4
4
|
"author": "Blackbaud, Inc.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"blackbaud",
|
|
@@ -15,25 +15,49 @@
|
|
|
15
15
|
"url": "https://github.com/blackbaud/skyux/issues"
|
|
16
16
|
},
|
|
17
17
|
"homepage": "https://github.com/blackbaud/skyux#readme",
|
|
18
|
+
"exports": {
|
|
19
|
+
"./package.json": {
|
|
20
|
+
"default": "./package.json"
|
|
21
|
+
},
|
|
22
|
+
".": {
|
|
23
|
+
"types": "./skyux-forms.d.ts",
|
|
24
|
+
"esm2020": "./esm2020/skyux-forms.mjs",
|
|
25
|
+
"es2020": "./fesm2020/skyux-forms.mjs",
|
|
26
|
+
"es2015": "./fesm2015/skyux-forms.mjs",
|
|
27
|
+
"node": "./fesm2015/skyux-forms.mjs",
|
|
28
|
+
"default": "./fesm2020/skyux-forms.mjs"
|
|
29
|
+
},
|
|
30
|
+
"./testing": {
|
|
31
|
+
"types": "./testing/skyux-forms-testing.d.ts",
|
|
32
|
+
"esm2020": "./esm2020/testing/skyux-forms-testing.mjs",
|
|
33
|
+
"es2020": "./fesm2020/skyux-forms-testing.mjs",
|
|
34
|
+
"es2015": "./fesm2015/skyux-forms-testing.mjs",
|
|
35
|
+
"node": "./fesm2015/skyux-forms-testing.mjs",
|
|
36
|
+
"default": "./fesm2020/skyux-forms-testing.mjs"
|
|
37
|
+
},
|
|
38
|
+
"./documentation.json": {
|
|
39
|
+
"default": "./documentation.json"
|
|
40
|
+
}
|
|
41
|
+
},
|
|
18
42
|
"peerDependencies": {
|
|
19
|
-
"@angular/common": "^
|
|
20
|
-
"@angular/core": "^
|
|
21
|
-
"@angular/forms": "^
|
|
22
|
-
"@angular/platform-browser": "^
|
|
23
|
-
"@skyux-sdk/testing": "
|
|
24
|
-
"@skyux/core": "
|
|
25
|
-
"@skyux/i18n": "
|
|
26
|
-
"@skyux/indicators": "
|
|
27
|
-
"@skyux/theme": "
|
|
43
|
+
"@angular/common": "^13.3.2",
|
|
44
|
+
"@angular/core": "^13.3.2",
|
|
45
|
+
"@angular/forms": "^13.3.2",
|
|
46
|
+
"@angular/platform-browser": "^13.3.2",
|
|
47
|
+
"@skyux-sdk/testing": "6.0.0-beta.10",
|
|
48
|
+
"@skyux/core": "6.0.0-beta.10",
|
|
49
|
+
"@skyux/i18n": "6.0.0-beta.10",
|
|
50
|
+
"@skyux/indicators": "6.0.0-beta.10",
|
|
51
|
+
"@skyux/theme": "6.0.0-beta.10"
|
|
28
52
|
},
|
|
29
53
|
"dependencies": {
|
|
30
54
|
"tslib": "^2.3.1"
|
|
31
55
|
},
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"fesm2015": "fesm2015/skyux-forms.
|
|
56
|
+
"module": "fesm2015/skyux-forms.mjs",
|
|
57
|
+
"es2020": "fesm2020/skyux-forms.mjs",
|
|
58
|
+
"esm2020": "esm2020/skyux-forms.mjs",
|
|
59
|
+
"fesm2020": "fesm2020/skyux-forms.mjs",
|
|
60
|
+
"fesm2015": "fesm2015/skyux-forms.mjs",
|
|
37
61
|
"typings": "skyux-forms.d.ts",
|
|
38
62
|
"sideEffects": false
|
|
39
63
|
}
|
package/testing/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
"
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
"fesm2015": "../fesm2015/skyux-forms-testing.
|
|
2
|
+
"module": "../fesm2015/skyux-forms-testing.mjs",
|
|
3
|
+
"es2020": "../fesm2020/skyux-forms-testing.mjs",
|
|
4
|
+
"esm2020": "../esm2020/testing/skyux-forms-testing.mjs",
|
|
5
|
+
"fesm2020": "../fesm2020/skyux-forms-testing.mjs",
|
|
6
|
+
"fesm2015": "../fesm2015/skyux-forms-testing.mjs",
|
|
7
7
|
"typings": "skyux-forms-testing.d.ts",
|
|
8
8
|
"sideEffects": false,
|
|
9
9
|
"name": "@skyux/forms/testing"
|