{"version":3,"file":"bravura-ui-selection-panel.mjs","sources":["../../../projects/ui/selection-panel/selection-panel-item.component.ts","../../../projects/ui/selection-panel/selection-panel-item.component.html","../../../projects/ui/selection-panel/selection-panel.directive.ts","../../../projects/ui/selection-panel/selection-panel.module.ts","../../../projects/ui/selection-panel/bravura-ui-selection-panel.ts"],"sourcesContent":["import { coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport {\r\n\tAfterContentInit,\r\n\tChangeDetectionStrategy,\r\n\tChangeDetectorRef,\r\n\tComponent,\r\n\tElementRef,\r\n\tInject,\r\n\tInjectionToken,\r\n\tInput,\r\n\tViewChild\r\n} from '@angular/core';\r\nimport { MatRipple, ThemePalette } from '@angular/material/core';\r\n\r\n/**\r\n * @ignore\r\n */\r\nexport interface SelectionPanelItemGroup {\r\n\t_selection: any[];\r\n\tcolor: ThemePalette;\r\n\t_isDisabled: boolean;\r\n\t_onTouched?: () => void;\r\n\tselectByHeader: boolean;\r\n}\r\n\r\n/**\r\n * @ignore\r\n */\r\nexport const SELECTION_PANEL_GROUP = new InjectionToken<SelectionPanelItemGroup>('SelectionPanelItemGroup');\r\n\r\n/**\r\n * Use `bui-selection-panel-item` within a `bui-selection-panel` to display an option.\r\n */\r\n@Component({\r\n\tselector: 'bui-selection-panel-item',\r\n\ttemplateUrl: './selection-panel-item.component.html',\r\n\tstyleUrls: ['./selection-panel-item.component.scss'],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n\thost: {\r\n\t\tclass: 'bui-selection-panel-item',\r\n\t\t'[class.bui-selection-checked]': 'checked',\r\n\t\t'[class.bui-disabled]': 'disabled',\r\n\t\t'[class.bui-unselectable]': '!selectable'\r\n\t},\r\n\tstandalone: false\r\n})\r\nexport class SelectionPanelItemComponent implements AfterContentInit {\r\n\t/** @ignore */\r\n\tstatic ngAcceptInputType_disabled: boolean | string;\r\n\r\n\t/** @ignore */\r\n\tstatic ngAcceptInputType_checked: boolean | string;\r\n\r\n\t/**\r\n\t * This will be displayed as the panel header\r\n\t */\r\n\t@Input()\r\n\ttitle = '';\r\n\r\n\t/**\r\n\t * Show the header in with a shaded background\r\n\t */\r\n\t@Input()\r\n\tshadedHeader = false;\r\n\r\n\t/**\r\n\t * when false will hide the checkbox\r\n\t */\r\n\t@Input()\r\n\tselectable = true;\r\n\r\n\t/** Whether the option is disabled. */\r\n\t@Input()\r\n\tget disabled(): boolean {\r\n\t\treturn this._disabled || this._group._isDisabled;\r\n\t}\r\n\tset disabled(value: boolean) {\r\n\t\tthis._setDisabled(coerceBooleanProperty(value));\r\n\t}\r\n\r\n\t/** The value of this option. */\r\n\t@Input()\r\n\tget value(): any {\r\n\t\treturn this._value;\r\n\t}\r\n\tset value(value: any) {\r\n\t\tif (this._value !== value) {\r\n\t\t\tthis._value = value;\r\n\t\t\tthis._cd.markForCheck();\r\n\t\t}\r\n\t}\r\n\r\n\t/** Whether this option is checked. */\r\n\t@Input()\r\n\tget checked(): boolean {\r\n\t\treturn this._group._selection.includes(this.value);\r\n\t}\r\n\tset checked(value: boolean) {\r\n\t\tif (!this._group._onTouched) {\r\n\t\t\tsetTimeout(() => this._setChecked(value), 0);\r\n\t\t} else {\r\n\t\t\tthis._setChecked(value);\r\n\t\t}\r\n\t}\r\n\r\n\t/** Theme color of the radio button. */\r\n\t@Input()\r\n\tget color(): ThemePalette {\r\n\t\treturn this._color || this._group.color;\r\n\t}\r\n\tset color(newValue: ThemePalette) {\r\n\t\tthis._color = newValue;\r\n\t}\r\n\r\n\tget _selectByHeader(): boolean {\r\n\t\treturn this._group.selectByHeader;\r\n\t}\r\n\r\n\tempty: boolean = true;\r\n\r\n\tprivate _color: ThemePalette;\r\n\tprivate _disabled = false;\r\n\tprivate _value: any;\r\n\r\n\t@ViewChild('contentBody', { static: true })\r\n\tprivate _bodyContent?: ElementRef<any>;\r\n\r\n\t@ViewChild(MatRipple)\r\n\tprivate _ripple?: MatRipple;\r\n\r\n\tconstructor(\r\n\t\t@Inject(SELECTION_PANEL_GROUP) private _group: SelectionPanelItemGroup,\r\n\t\tprivate _cd: ChangeDetectorRef\r\n\t) {}\r\n\r\n\t/** @ignore */\r\n\t_markInteracted() {\r\n\t\tif (this._group._onTouched) {\r\n\t\t\tthis._group._onTouched();\r\n\t\t}\r\n\t}\r\n\r\n\t/** @ignore */\r\n\t_notify() {\r\n\t\tthis._cd.markForCheck();\r\n\t}\r\n\r\n\t/** Toggle selection programmatically */\r\n\ttoggle() {\r\n\t\tthis.checked = !this.checked;\r\n\t}\r\n\r\n\t/** @ignore */\r\n\t_contentClicked(event: MouseEvent) {\r\n\t\tif (!this._selectByHeader && this.selectable) {\r\n\t\t\tthis._ripple?.launch(event.clientX, event.clientY);\r\n\t\t\tthis.toggle();\r\n\t\t}\r\n\t}\r\n\r\n\t/** @ignore */\r\n\tcontentChanged() {\r\n\t\tconst el: HTMLElement = this._bodyContent?.nativeElement;\r\n\t\tthis.empty = (el?.childElementCount || 0) === 0 && (el?.textContent || '') === '';\r\n\t}\r\n\r\n\t/** @ignore */\r\n\tngAfterContentInit() {\r\n\t\tthis.contentChanged();\r\n\t}\r\n\r\n\t/** Sets the disabled state and marks for check if a change occurred. */\r\n\tprivate _setDisabled(value: boolean) {\r\n\t\tif (this._disabled !== value) {\r\n\t\t\tthis._disabled = value;\r\n\t\t\tthis._cd.markForCheck();\r\n\t\t}\r\n\t}\r\n\r\n\tprivate _setChecked(value: boolean) {\r\n\t\tconst newCheckedState = coerceBooleanProperty(value);\r\n\t\tconst old = this._group._selection.includes(this.value);\r\n\t\tif (old !== newCheckedState) {\r\n\t\t\tconst contained = this._group._selection.some(v => v === this._value);\r\n\t\t\tif (newCheckedState && this._group && !contained) {\r\n\t\t\t\tthis._group._selection = [...this._group._selection, this._value];\r\n\t\t\t} else if (!newCheckedState && this._group && contained) {\r\n\t\t\t\t// When unchecking the selected item, update the selection\r\n\t\t\t\t// property on the group.\r\n\t\t\t\tthis._group._selection = this._group._selection.filter(v => v !== this._value);\r\n\t\t\t}\r\n\t\t\tthis._cd.markForCheck();\r\n\t\t}\r\n\t}\r\n}\r\n","<div class=\"bui-selection-panel-item-wrapper\">\n\t@if (!disabled) {\n\t\t<div\n\t\t\tmatRipple\n\t\t\tmatRippleColor=\"rgba(128,128,128,.1)\"\n\t\t\tclass=\"bui-ripple\"\n\t\t\t[matRippleTrigger]=\"toggleTrigger\"\n\t\t\t#ripple=\"matRipple\"\n\t\t\t[matRippleDisabled]=\"!selectable\"\n\t\t></div>\n\t}\n\t<div\n\t\tclass=\"bui-selection-panel-item-header\"\n\t\t[ngClass]=\"{ 'bui-shaded': shadedHeader, 'bui-empty': empty }\"\n\t\t#toggleTrigger\n\t>\n\t\t@if (shadedHeader) {\n\t\t\t<div class=\"bui-selection-panel-item-header-underlay\" [ngClass]=\"{ 'bui-not-empty': !empty }\"></div>\n\t\t}\n\t\t<div class=\"bui-selection-panel-item-header-container\">\n\t\t\t@if (selectable) {\n\t\t\t\t<mat-checkbox\n\t\t\t\t\tclass=\"bui-selection-checkbox\"\n\t\t\t\t\t[(ngModel)]=\"checked\"\n\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t(change)=\"_markInteracted()\"\n\t\t\t\t\tstyle=\"flex-grow: 1\"\n\t\t\t\t>\n\t\t\t\t\t<div class=\"bui-selection-panel-item-title\" [innerHTML]=\"title\"></div>\n\t\t\t\t</mat-checkbox>\n\t\t\t} @else {\n\t\t\t\t<div style=\"flex-grow: 1\" class=\"bui-selection-panel-item-title\" [innerHTML]=\"title\"></div>\n\t\t\t}\n\t\t\t<ng-content select=\"[buiSelectionItemHeadingEnd]\"></ng-content>\n\t\t</div>\n\t\t<ng-content select=\"[buiSelectionItemSubtitle]\"></ng-content>\n\t</div>\n\t<div\n\t\t#contentBody\n\t\tclass=\"bui-selection-panel-item-content\"\n\t\t[class.bui-empty]=\"empty\"\n\t\t[class.bui-selectable]=\"!_selectByHeader\"\n\t\t(click)=\"_contentClicked($event)\"\n\t\t(cdkObserveContent)=\"contentChanged()\"\n\t>\n\t\t<ng-content></ng-content>\n\t</div>\n\t<div class=\"bui-selection-panel-item-bottom\"></div>\n</div>\n","import {\r\n\tChangeDetectorRef,\r\n\tContentChildren,\r\n\tDirective,\r\n\tforwardRef,\r\n\tInput,\r\n\tOnChanges,\r\n\tQueryList,\r\n\tSimpleChanges\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport {\r\n\tSelectionPanelItemComponent,\r\n\tSelectionPanelItemGroup,\r\n\tSELECTION_PANEL_GROUP\r\n} from './selection-panel-item.component';\r\n\r\n/**\r\n * Selection panel is a [control value accessor](https://angular.io/api/forms/ControlValueAccessor)\r\n * that display a set of multi-selection items as bordered panels, in a similar fashion as Radio Panel `bui-radio-panel`.\r\n *\r\n * Accessibility features are not yet fully implemented.\r\n *\r\n * Example:\r\n *\r\n * ```html\r\n * <bui-selection-panel>\r\n *   <bui-selection-panel-item *ngFor=\"let obj of objects\" [value]=\"obj\">{{obj.description}}</bui-selection-panel-item>\r\n * </bui-selection-panel>\r\n * ```\r\n *\r\n */\r\n@Directive({\r\n\tselector: 'bui-selection-panel',\r\n\tproviders: [\r\n\t\t{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SelectionPanelDirective), multi: true },\r\n\t\t{ provide: SELECTION_PANEL_GROUP, useExisting: forwardRef(() => SelectionPanelDirective) }\r\n\t],\r\n\texportAs: 'buiSelectionPanel',\r\n\thost: { class: 'bui-selection-panel bui-host' },\r\n\tstandalone: false\r\n})\r\nexport class SelectionPanelDirective implements ControlValueAccessor, SelectionPanelItemGroup, OnChanges {\r\n\t/** Theme color for all of the selection checkboxes in the group. */\r\n\t@Input() color: ThemePalette;\r\n\r\n\t/**\r\n\t * When set to `false`, the selection is triggered by click everywhere within the panels that is\r\n\t * not focus-trapping; otherwise, only clicking on the header will activate the selection.\r\n\t *\r\n\t * @default true\r\n\t */\r\n\t@Input() selectByHeader = true;\r\n\r\n\t/**\r\n\t * @ignore\r\n\t * The selected values. Used by the child elements to modify the group's value\r\n\t */\r\n\tget _selection(): any[] {\r\n\t\treturn this._selected;\r\n\t}\r\n\tset _selection(value: any[]) {\r\n\t\tif (value !== this._selected) {\r\n\t\t\tthis._selected = value;\r\n\t\t\tif (this._onChange) {\r\n\t\t\t\tthis._onChange(this._selected);\r\n\t\t\t}\r\n\t\t\tthis._cd.markForCheck();\r\n\t\t}\r\n\t}\r\n\r\n\t/** @ignore */\r\n\t_onTouched?: () => void;\r\n\r\n\t/** @ignore */\r\n\t_isDisabled = false;\r\n\r\n\tprivate _onChange?: (_: any) => void;\r\n\r\n\tprivate _selected: any[] = [];\r\n\r\n\t@ContentChildren(SelectionPanelItemComponent, { descendants: true })\r\n\tprivate _items!: QueryList<SelectionPanelItemComponent>;\r\n\r\n\tconstructor(private _cd: ChangeDetectorRef) {}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\twriteValue(obj: any): void {\r\n\t\tthis._selected = [];\r\n\t\tif (Array.isArray(obj)) {\r\n\t\t\tthis._selected.push(...obj);\r\n\t\t} else if (obj !== null && obj !== undefined) {\r\n\t\t\tthis._selected.push(obj);\r\n\t\t}\r\n\t\tthis._items?.forEach(it => it._notify());\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tregisterOnChange(fn: (_: any) => void): void {\r\n\t\tthis._onChange = fn;\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tregisterOnTouched(fn: () => void): void {\r\n\t\tthis._onTouched = fn;\r\n\t}\r\n\r\n\t/**\r\n\t * Sets the disabled state and marks for check if a change occurred.\r\n\t * @ignore\r\n\t */\r\n\tsetDisabledState(isDisabled: boolean): void {\r\n\t\tif (this._isDisabled !== isDisabled) {\r\n\t\t\tthis._isDisabled = isDisabled;\r\n\t\t\tthis._cd.markForCheck();\r\n\t\t\tthis._items.forEach(it => it._notify());\r\n\t\t}\r\n\t}\r\n\r\n\t/** @ignore */\r\n\tngOnChanges(changes: SimpleChanges): void {\r\n\t\tif (this._items) {\r\n\t\t\tif (changes.color || changes.selectByHeader) {\r\n\t\t\t\tthis._items.forEach(item => item._notify());\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n","import { ObserversModule } from '@angular/cdk/observers';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatRippleModule } from '@angular/material/core';\r\nimport { SelectionPanelItemComponent } from './selection-panel-item.component';\r\nimport { SelectionPanelDirective } from './selection-panel.directive';\r\n\r\n@NgModule({\r\n\tdeclarations: [SelectionPanelDirective, SelectionPanelItemComponent],\r\n\timports: [CommonModule, MatCheckboxModule, FormsModule, MatRippleModule, ObserversModule],\r\n\texports: [SelectionPanelDirective, SelectionPanelItemComponent]\r\n})\r\nexport class SelectionPanelModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAyBA;;AAEG;AACI,MAAM,qBAAqB,GAAG,IAAI,cAAc,CAA0B,yBAAyB,CAAC;AAE3G;;AAEG;MAcU,2BAA2B,CAAA;;AA0BvC,IAAA,IACI,QAAQ,GAAA;QACX,OAAO,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW;IACjD;IACA,IAAI,QAAQ,CAAC,KAAc,EAAA;QAC1B,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAChD;;AAGA,IAAA,IACI,KAAK,GAAA;QACR,OAAO,IAAI,CAAC,MAAM;IACnB;IACA,IAAI,KAAK,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE;AAC1B,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;QACxB;IACD;;AAGA,IAAA,IACI,OAAO,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;IACnD;IACA,IAAI,OAAO,CAAC,KAAc,EAAA;AACzB,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;AAC5B,YAAA,UAAU,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7C;aAAO;AACN,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;QACxB;IACD;;AAGA,IAAA,IACI,KAAK,GAAA;QACR,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK;IACxC;IACA,IAAI,KAAK,CAAC,QAAsB,EAAA;AAC/B,QAAA,IAAI,CAAC,MAAM,GAAG,QAAQ;IACvB;AAEA,IAAA,IAAI,eAAe,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc;IAClC;IAcA,WAAA,CACwC,MAA+B,EAC9D,GAAsB,EAAA;QADS,IAAA,CAAA,MAAM,GAAN,MAAM;QACrC,IAAA,CAAA,GAAG,GAAH,GAAG;AA/EZ;;AAEG;QAEH,IAAA,CAAA,KAAK,GAAG,EAAE;AAEV;;AAEG;QAEH,IAAA,CAAA,YAAY,GAAG,KAAK;AAEpB;;AAEG;QAEH,IAAA,CAAA,UAAU,GAAG,IAAI;QAiDjB,IAAA,CAAA,KAAK,GAAY,IAAI;QAGb,IAAA,CAAA,SAAS,GAAG,KAAK;IAYtB;;IAGH,eAAe,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;AAC3B,YAAA,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;QACzB;IACD;;IAGA,OAAO,GAAA;AACN,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;IACxB;;IAGA,MAAM,GAAA;AACL,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO;IAC7B;;AAGA,IAAA,eAAe,CAAC,KAAiB,EAAA;QAChC,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,UAAU,EAAE;AAC7C,YAAA,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;YAClD,IAAI,CAAC,MAAM,EAAE;QACd;IACD;;IAGA,cAAc,GAAA;AACb,QAAA,MAAM,EAAE,GAAgB,IAAI,CAAC,YAAY,EAAE,aAAa;QACxD,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,EAAE,iBAAiB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,IAAI,EAAE,MAAM,EAAE;IAClF;;IAGA,kBAAkB,GAAA;QACjB,IAAI,CAAC,cAAc,EAAE;IACtB;;AAGQ,IAAA,YAAY,CAAC,KAAc,EAAA;AAClC,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE;AAC7B,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;QACxB;IACD;AAEQ,IAAA,WAAW,CAAC,KAAc,EAAA;AACjC,QAAA,MAAM,eAAe,GAAG,qBAAqB,CAAC,KAAK,CAAC;AACpD,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AACvD,QAAA,IAAI,GAAG,KAAK,eAAe,EAAE;YAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC;YACrE,IAAI,eAAe,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE;AACjD,gBAAA,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;YAClE;iBAAO,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,MAAM,IAAI,SAAS,EAAE;;;gBAGxD,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC;YAC/E;AACA,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;QACxB;IACD;AAnJY,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,kBAqF9B,qBAAqB,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGArFlB,2BAA2B,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,6BAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,aAAA,EAAA,EAAA,cAAA,EAAA,0BAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAiF5B,SAAS,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC/HrB,+oDAiDA,EAAA,MAAA,EAAA,CAAA,s1CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,WAAA,EAAA,IAAA,EAAA,UAAA,EAAA,eAAA,EAAA,MAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,2BAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FDHa,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAbvC,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,0BAA0B,EAAA,eAAA,EAGnB,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC;AACL,wBAAA,KAAK,EAAE,0BAA0B;AACjC,wBAAA,+BAA+B,EAAE,SAAS;AAC1C,wBAAA,sBAAsB,EAAE,UAAU;AAClC,wBAAA,0BAA0B,EAAE;AAC5B,qBAAA,EAAA,UAAA,EACW,KAAK,EAAA,QAAA,EAAA,+oDAAA,EAAA,MAAA,EAAA,CAAA,s1CAAA,CAAA,EAAA;;0BAuFf,MAAM;2BAAC,qBAAqB;;sBA3E7B;;sBAMA;;sBAMA;;sBAIA;;sBASA;;sBAYA;;sBAaA;;sBAkBA,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;sBAGzC,SAAS;uBAAC,SAAS;;;AE7GrB;;;;;;;;;;;;;;AAcG;MAWU,uBAAuB,CAAA;AAYnC;;;AAGG;AACH,IAAA,IAAI,UAAU,GAAA;QACb,OAAO,IAAI,CAAC,SAAS;IACtB;IACA,IAAI,UAAU,CAAC,KAAY,EAAA;AAC1B,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,SAAS,EAAE;AAC7B,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,YAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AACnB,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;YAC/B;AACA,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;QACxB;IACD;AAeA,IAAA,WAAA,CAAoB,GAAsB,EAAA;QAAtB,IAAA,CAAA,GAAG,GAAH,GAAG;AAtCvB;;;;;AAKG;QACM,IAAA,CAAA,cAAc,GAAG,IAAI;;QAuB9B,IAAA,CAAA,WAAW,GAAG,KAAK;QAIX,IAAA,CAAA,SAAS,GAAU,EAAE;IAKgB;AAE7C;;AAEG;AACH,IAAA,UAAU,CAAC,GAAQ,EAAA;AAClB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;AACnB,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACvB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;QAC5B;aAAO,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE;AAC7C,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;QACzB;AACA,QAAA,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IACzC;AAEA;;AAEG;AACH,IAAA,gBAAgB,CAAC,EAAoB,EAAA;AACpC,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACpB;AAEA;;AAEG;AACH,IAAA,iBAAiB,CAAC,EAAc,EAAA;AAC/B,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;IACrB;AAEA;;;AAGG;AACH,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AACnC,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,UAAU,EAAE;AACpC,YAAA,IAAI,CAAC,WAAW,GAAG,UAAU;AAC7B,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;AACvB,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QACxC;IACD;;AAGA,IAAA,WAAW,CAAC,OAAsB,EAAA;AACjC,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,cAAc,EAAE;AAC5C,gBAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC5C;QACD;IACD;8GA1FY,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,8BAAA,EAAA,EAAA,SAAA,EARxB;AACV,YAAA,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,uBAAuB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;AACnG,YAAA,EAAE,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,uBAAuB,CAAC;AACxF,SAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,SAAA,EA4CgB,2BAA2B,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAvChC,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAVnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,SAAS,EAAE;AACV,wBAAA,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,CAAC,6BAA6B,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;AACnG,wBAAA,EAAE,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,UAAU,CAAC,MAAK,uBAAwB,CAAC;AACxF,qBAAA;AACD,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,8BAA8B,EAAE;AAC/C,oBAAA,UAAU,EAAE;AACZ,iBAAA;;sBAGC;;sBAQA;;sBA6BA,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,2BAA2B,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;;;MCpEvD,oBAAoB,CAAA;8GAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,iBAJjB,uBAAuB,EAAE,2BAA2B,CAAA,EAAA,OAAA,EAAA,CACzD,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,eAAe,EAAE,eAAe,CAAA,EAAA,OAAA,EAAA,CAC9E,uBAAuB,EAAE,2BAA2B,CAAA,EAAA,CAAA,CAAA;+GAElD,oBAAoB,EAAA,OAAA,EAAA,CAHtB,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,eAAe,EAAE,eAAe,CAAA,EAAA,CAAA,CAAA;;2FAG5E,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,YAAY,EAAE,CAAC,uBAAuB,EAAE,2BAA2B,CAAC;oBACpE,OAAO,EAAE,CAAC,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,eAAe,EAAE,eAAe,CAAC;AACzF,oBAAA,OAAO,EAAE,CAAC,uBAAuB,EAAE,2BAA2B;AAC9D,iBAAA;;;ACbD;;AAEG;;;;"}