@blank-software/core-components 0.0.1
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.
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blank-software-core-components.mjs","sources":["../../../projects/core-components/src/lib/accordion/accordion.ts","../../../projects/core-components/src/lib/accordion/accordion.html","../../../projects/core-components/src/lib/alert/alert.ts","../../../projects/core-components/src/lib/alert/alert.html","../../../projects/core-components/src/lib/avatar/avatar.ts","../../../projects/core-components/src/lib/avatar/avatar.html","../../../projects/core-components/src/lib/badge/badge.ts","../../../projects/core-components/src/lib/badge/badge.html","../../../projects/core-components/src/lib/breadcrumb/breadcrumb.ts","../../../projects/core-components/src/lib/breadcrumb/breadcrumb.html","../../../projects/core-components/src/lib/button/button.ts","../../../projects/core-components/src/lib/button/button.html","../../../projects/core-components/src/lib/card/card.ts","../../../projects/core-components/src/lib/card/card.html","../../../projects/core-components/src/lib/checkbox/checkbox.ts","../../../projects/core-components/src/lib/checkbox/checkbox.html","../../../projects/core-components/src/lib/date-picker/date-picker.ts","../../../projects/core-components/src/lib/date-picker/date-picker.html","../../../projects/core-components/src/lib/dropdown/dropdown.ts","../../../projects/core-components/src/lib/dropdown/dropdown.html","../../../projects/core-components/src/lib/file-upload/file-upload.ts","../../../projects/core-components/src/lib/file-upload/file-upload.html","../../../projects/core-components/src/lib/footer/footer.ts","../../../projects/core-components/src/lib/footer/footer.html","../../../projects/core-components/src/lib/form-field/form-field.ts","../../../projects/core-components/src/lib/form-field/form-field.html","../../../projects/core-components/src/lib/header/header.ts","../../../projects/core-components/src/lib/header/header.html","../../../projects/core-components/src/lib/icon/icon.ts","../../../projects/core-components/src/lib/icon/icon.html","../../../projects/core-components/src/lib/input/input.ts","../../../projects/core-components/src/lib/input/input.html","../../../projects/core-components/src/lib/label/label.ts","../../../projects/core-components/src/lib/label/label.html","../../../projects/core-components/src/lib/modal/modal.ts","../../../projects/core-components/src/lib/modal/modal.html","../../../projects/core-components/src/lib/navigation/navigation.ts","../../../projects/core-components/src/lib/navigation/navigation.html","../../../projects/core-components/src/lib/select/select.ts","../../../projects/core-components/src/lib/select/select.html","../../../projects/core-components/src/lib/pagination/pagination.ts","../../../projects/core-components/src/lib/pagination/pagination.html","../../../projects/core-components/src/lib/progress-bar/progress-bar.ts","../../../projects/core-components/src/lib/progress-bar/progress-bar.html","../../../projects/core-components/src/lib/radio/radio.ts","../../../projects/core-components/src/lib/radio/radio.html","../../../projects/core-components/src/lib/search-bar/search-bar.ts","../../../projects/core-components/src/lib/search-bar/search-bar.html","../../../projects/core-components/src/lib/sidebar/sidebar.service.ts","../../../projects/core-components/src/lib/sidebar/sidebar.ts","../../../projects/core-components/src/lib/sidebar/sidebar.html","../../../projects/core-components/src/lib/skeleton/skeleton.ts","../../../projects/core-components/src/lib/skeleton/skeleton.html","../../../projects/core-components/src/lib/spinner/spinner.ts","../../../projects/core-components/src/lib/spinner/spinner.html","../../../projects/core-components/src/lib/stepper/stepper.ts","../../../projects/core-components/src/lib/stepper/stepper.html","../../../projects/core-components/src/lib/table/table.ts","../../../projects/core-components/src/lib/table/table.html","../../../projects/core-components/src/lib/tabs/tabs.ts","../../../projects/core-components/src/lib/tabs/tabs.html","../../../projects/core-components/src/lib/toggle/toggle.ts","../../../projects/core-components/src/lib/toggle/toggle.html","../../../projects/core-components/src/lib/tooltip/tooltip.ts","../../../projects/core-components/src/lib/tooltip/tooltip.html","../../../projects/core-components/src/public-api.ts","../../../projects/core-components/src/blank-software-core-components.ts"],"sourcesContent":["import {\n booleanAttribute,\n Component,\n computed,\n contentChildren,\n forwardRef,\n inject,\n input,\n model,\n} from '@angular/core';\n\n@Component({\n selector: 'bsc-accordion-item',\n imports: [],\n template: `\n <div [class]=\"itemClasses()\">\n <button class=\"accordion-header\" [disabled]=\"disabled()\" (click)=\"toggle()\">\n <span class=\"accordion-title\">{{ title() }}</span>\n <svg\n class=\"accordion-chevron\"\n [class.accordion-chevron-open]=\"open()\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <path d=\"M6 9l6 6 6-6\" />\n </svg>\n </button>\n @if (open()) {\n <div class=\"accordion-body\">\n <ng-content />\n </div>\n }\n </div>\n `,\n styles: `\n :host {\n display: block;\n }\n\n .accordion-item {\n border-bottom: 1px solid var(--color-ink-200);\n }\n\n .accordion-item:last-child {\n border-bottom: none;\n }\n\n .accordion-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding: 1rem 1.5rem;\n background: transparent;\n border: none;\n cursor: pointer;\n font-weight: 500;\n font-size: 0.875rem;\n line-height: 1.25rem;\n color: var(--color-ink-900);\n transition: background-color 0.15s;\n }\n\n .accordion-header:hover:not(:disabled) {\n background-color: var(--color-ink-50);\n }\n\n .accordion-header:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .accordion-chevron {\n flex-shrink: 0;\n color: var(--color-ink-400);\n transition: transform 0.2s ease;\n }\n\n .accordion-chevron-open {\n transform: rotate(180deg);\n }\n\n .accordion-body {\n padding: 0 1.5rem 1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: var(--color-ink-600);\n }\n\n .accordion-item-disabled {\n opacity: 0.5;\n }\n `,\n})\nexport class AccordionItem {\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly title = input.required<string>();\n readonly open = model(false);\n\n private readonly parent = inject(\n forwardRef(() => Accordion),\n { optional: true },\n );\n\n protected readonly itemClasses = computed(() => {\n const classes = ['accordion-item'];\n if (this.disabled()) classes.push('accordion-item-disabled');\n return classes.join(' ');\n });\n\n toggle() {\n if (this.disabled()) return;\n this.open.set(!this.open());\n if (this.open() && this.parent) {\n this.parent.onItemToggle(this);\n }\n }\n}\n\n@Component({\n selector: 'bsc-accordion',\n imports: [],\n templateUrl: './accordion.html',\n styleUrl: './accordion.css',\n})\nexport class Accordion {\n readonly multiple = input(false, { transform: booleanAttribute });\n\n private readonly items = contentChildren(AccordionItem);\n\n onItemToggle(openedItem: AccordionItem) {\n if (this.multiple()) return;\n for (const item of this.items()) {\n if (item !== openedItem) {\n item.open.set(false);\n }\n }\n }\n}\n","<div class=\"accordion\">\n <ng-content />\n</div>\n","import { Component, computed, input } from '@angular/core';\n\nexport type AlertVariant = 'info' | 'danger' | 'success' | 'warning' | 'dark';\n\n@Component({\n selector: 'bsc-alert',\n imports: [],\n templateUrl: './alert.html',\n})\nexport class Alert {\n readonly variant = input<AlertVariant>('info');\n\n protected readonly alertClasses = computed(() => {\n return `alert alert-${this.variant()}`;\n });\n}\n","<div [class]=\"alertClasses()\" role=\"alert\">\n <ng-content />\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-avatar',\n imports: [],\n templateUrl: './avatar.html',\n styleUrl: './avatar.css',\n})\nexport class Avatar {}\n","<p>avatar works!</p>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-badge',\n imports: [],\n templateUrl: './badge.html',\n styleUrl: './badge.css',\n})\nexport class Badge {}\n","<p>badge works!</p>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-breadcrumb',\n imports: [],\n templateUrl: './breadcrumb.html',\n styleUrl: './breadcrumb.css',\n})\nexport class Breadcrumb {}\n","<p>breadcrumb works!</p>\n","import { booleanAttribute, Component, computed, input } from '@angular/core';\n\nimport { Size } from '../types';\n\nexport type ButtonVariant = 'primary' | 'secondary' | 'outline' | 'ghost';\nexport type ButtonShape = 'rounded' | 'pill';\n\nfunction luminance(hex: string): number {\n const raw = hex.replace('#', '');\n const r = parseInt(raw.substring(0, 2), 16) / 255;\n const g = parseInt(raw.substring(2, 4), 16) / 255;\n const b = parseInt(raw.substring(4, 6), 16) / 255;\n const toLinear = (c: number) => (c <= 0.03928 ? c / 12.92 : Math.pow((c + 0.055) / 1.055, 2.4));\n return 0.2126 * toLinear(r) + 0.7152 * toLinear(g) + 0.0722 * toLinear(b);\n}\n\n@Component({\n selector: 'bsc-button',\n imports: [],\n templateUrl: './button.html',\n})\nexport class Button {\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly iconOnly = input(false, { transform: booleanAttribute });\n readonly loading = input(false, { transform: booleanAttribute });\n readonly color = input<string | undefined>(undefined);\n readonly shape = input<ButtonShape>('rounded');\n readonly size = input<Size>('md');\n readonly type = input<'button' | 'submit' | 'reset'>('button');\n readonly variant = input<ButtonVariant>('primary');\n\n protected readonly buttonClasses = computed(() => {\n const io = this.iconOnly();\n const sizePrefix = io ? 'btn-icon-' : 'btn-';\n\n const classes = ['btn', `btn-${this.shape()}`, `${sizePrefix}${this.size()}`];\n\n if (this.color()) {\n classes.push('btn-custom-color');\n } else {\n classes.push(`btn-${this.variant()}`);\n }\n\n return classes.join(' ');\n });\n\n protected readonly buttonStyles = computed(() => {\n const c = this.color();\n if (!c) return {};\n const textColor = luminance(c) > 0.4 ? '#0F172A' : '#FFFFFF';\n return {\n '--btn-bg': c,\n '--btn-text': textColor,\n } as Record<string, string>;\n });\n}\n","<button\n [type]=\"type()\"\n [disabled]=\"disabled() || loading()\"\n [class]=\"buttonClasses()\"\n [style]=\"buttonStyles()\"\n>\n @if (loading()) {\n <svg\n class=\"animate-spin shrink-0\"\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle class=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"4\" />\n <path\n class=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n />\n </svg>\n }\n <ng-content select=\"[leftIcon]\" />\n <ng-content />\n <ng-content select=\"[rightIcon]\" />\n</button>\n","import { booleanAttribute, Component, computed, input } from '@angular/core';\n\nexport type CardVariant = 'default' | 'outlined';\n\n@Component({\n selector: 'bsc-card',\n imports: [],\n templateUrl: './card.html',\n styleUrl: './card.css',\n})\nexport class Card {\n readonly padded = input(true, { transform: booleanAttribute });\n readonly variant = input<CardVariant>('default');\n\n protected readonly cardClasses = computed(() => {\n const classes = ['card', `card-${this.variant()}`];\n if (this.padded()) classes.push('card-padded');\n return classes.join(' ');\n });\n}\n","<div [class]=\"cardClasses()\">\n <ng-content select=\"[cardHeader]\" />\n <div class=\"card-body\">\n <ng-content />\n </div>\n <ng-content select=\"[cardFooter]\" />\n</div>\n","import { booleanAttribute, Component, input, model } from '@angular/core';\n\n@Component({\n selector: 'bsc-checkbox',\n imports: [],\n templateUrl: './checkbox.html',\n})\nexport class Checkbox {\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly indeterminate = input(false, { transform: booleanAttribute });\n readonly checked = model<boolean>(false);\n\n protected toggle() {\n if (!this.disabled()) {\n this.checked.set(!this.checked());\n }\n }\n}\n","<label class=\"checkbox\">\n <input\n type=\"checkbox\"\n class=\"checkbox-input\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n (change)=\"toggle()\"\n />\n <span class=\"checkbox-box\" [class.checkbox-indeterminate]=\"indeterminate() && !checked()\">\n @if (indeterminate() && !checked()) {\n <svg\n class=\"checkbox-check\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n >\n <path d=\"M2 6h8\" />\n </svg>\n } @else {\n <svg\n class=\"checkbox-check\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n >\n <path d=\"M2 6l3 3 5-6\" />\n </svg>\n }\n </span>\n <span class=\"checkbox-label\">\n <ng-content />\n </span>\n</label>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-date-picker',\n imports: [],\n templateUrl: './date-picker.html',\n styleUrl: './date-picker.css',\n})\nexport class DatePicker {}\n","<p>date-picker works!</p>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-dropdown',\n imports: [],\n templateUrl: './dropdown.html',\n styleUrl: './dropdown.css',\n})\nexport class Dropdown {}\n","<p>dropdown works!</p>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-file-upload',\n imports: [],\n templateUrl: './file-upload.html',\n styleUrl: './file-upload.css',\n})\nexport class FileUpload {}\n","<p>file-upload works!</p>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-footer',\n imports: [],\n templateUrl: './footer.html',\n styleUrl: './footer.css',\n})\nexport class Footer {}\n","<p>footer works!</p>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-form-field',\n imports: [],\n templateUrl: './form-field.html',\n styleUrl: './form-field.css',\n})\nexport class FormField {}\n","<p>form-field works!</p>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-header',\n imports: [],\n templateUrl: './header.html',\n})\nexport class Header {}\n","<nav class=\"header\" aria-label=\"Top navigation\">\n <div class=\"header-inner\">\n <div class=\"header-left\">\n <ng-content select=\"[headerLeft]\" />\n </div>\n <div class=\"header-right\">\n <ng-content select=\"[headerRight]\" />\n </div>\n </div>\n</nav>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-icon',\n imports: [],\n templateUrl: './icon.html',\n styleUrl: './icon.css',\n})\nexport class Icon {}\n","<p>icon works!</p>\n","import { booleanAttribute, Component, computed, input } from '@angular/core';\n\nimport { Size, State } from '../types';\n\n@Component({\n selector: 'bsc-input',\n imports: [],\n templateUrl: './input.html',\n})\nexport class Input {\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly readonly = input(false, { transform: booleanAttribute });\n readonly placeholder = input<string>('');\n readonly size = input<Size>('md');\n readonly state = input<State>('default');\n readonly type = input<string>('text');\n\n protected readonly inputClasses = computed(() => {\n const classes = ['input', `input-${this.size()}`];\n const s = this.state();\n if (s !== 'default') classes.push(`input-${s}`);\n return classes.join(' ');\n });\n}\n","<input\n [type]=\"type()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [readOnly]=\"readonly()\"\n [class]=\"inputClasses()\"\n/>\n","import { booleanAttribute, Component, computed, input } from '@angular/core';\n\nimport { Size } from '../types';\n\n@Component({\n selector: 'bsc-label',\n imports: [],\n templateUrl: './label.html',\n})\nexport class Label {\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly required = input(false, { transform: booleanAttribute });\n readonly size = input<Size>('md');\n\n protected readonly labelClasses = computed(() => {\n const classes = ['label', `label-${this.size()}`];\n if (this.disabled()) classes.push('label-disabled');\n return classes.join(' ');\n });\n}\n","<!-- eslint-disable-next-line @angular-eslint/template/label-has-associated-control -->\n<label [class]=\"labelClasses()\">\n <ng-content />\n @if (required()) {\n <span class=\"label-required\">*</span>\n }\n</label>\n","import {\n booleanAttribute,\n Component,\n computed,\n HostListener,\n input,\n model,\n output,\n} from '@angular/core';\n\nimport { Size } from '../types';\n\n@Component({\n selector: 'bsc-modal',\n imports: [],\n templateUrl: './modal.html',\n})\nexport class Modal {\n readonly closeOnBackdrop = input(true, { transform: booleanAttribute });\n readonly closeOnEsc = input(true, { transform: booleanAttribute });\n readonly confirmDisabled = input(false, { transform: booleanAttribute });\n readonly closed = output<void>();\n readonly confirmed = output<void>();\n readonly confirmText = input<string>('Conferma');\n readonly open = model<boolean>(false);\n\n readonly size = input<Size>('md');\n readonly title = input<string>('');\n\n protected readonly panelClasses = computed(() => {\n return `bsc-modal-panel bsc-modal-${this.size()}`;\n });\n\n protected close() {\n this.open.set(false);\n this.closed.emit();\n }\n\n protected onBackdropClick() {\n if (this.closeOnBackdrop()) {\n this.close();\n }\n }\n\n protected onConfirm() {\n this.confirmed.emit();\n }\n\n @HostListener('document:keydown.escape')\n protected onEscKey() {\n if (this.open() && this.closeOnEsc()) {\n this.close();\n }\n }\n}\n","@if (open()) {\n <!-- Backdrop -->\n <div\n class=\"bsc-modal-backdrop\"\n (click)=\"onBackdropClick()\"\n (keydown.escape)=\"close()\"\n tabindex=\"-1\"\n role=\"button\"\n aria-label=\"Close modal\"\n ></div>\n\n <!-- Modal -->\n <div class=\"bsc-modal-overlay\">\n <div [class]=\"panelClasses()\">\n <!-- Modal content -->\n <div class=\"bsc-modal-content\" role=\"dialog\" aria-modal=\"true\">\n <!-- Header -->\n <div class=\"bsc-modal-header\">\n <h3 class=\"bsc-modal-title\">{{ title() }}</h3>\n <button type=\"button\" class=\"bsc-modal-close\" (click)=\"close()\">\n <svg\n class=\"w-5 h-5\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M6 18 17.94 6M18 18 6.06 6\"\n />\n </svg>\n <span class=\"sr-only\">Close modal</span>\n </button>\n </div>\n\n <!-- Body (content projection) -->\n <div class=\"bsc-modal-body\">\n <ng-content />\n </div>\n\n <!-- Footer -->\n <div class=\"bsc-modal-footer\">\n <button\n type=\"button\"\n class=\"bsc-modal-confirm-btn\"\n [disabled]=\"confirmDisabled()\"\n (click)=\"onConfirm()\"\n >\n {{ confirmText() }}\n </button>\n <ng-content select=\"[modalFooter]\" />\n </div>\n </div>\n </div>\n </div>\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-navigation',\n imports: [],\n templateUrl: './navigation.html',\n styleUrl: './navigation.css',\n})\nexport class Navigation {}\n","<p>navigation works!</p>\n","import {\n booleanAttribute,\n Component,\n computed,\n ElementRef,\n HostListener,\n inject,\n input,\n model,\n signal,\n} from '@angular/core';\n\nexport interface SelectOption {\n value: string;\n label: string;\n}\n\nimport { Size, State } from '../types';\n\n@Component({\n selector: 'bsc-select',\n imports: [],\n templateUrl: './select.html',\n styleUrl: './select.css',\n})\nexport class Select {\n readonly disabled = input(false, { transform: booleanAttribute });\n\n readonly multiple = input(false, { transform: booleanAttribute });\n readonly placeholder = input('');\n readonly isOpen = signal(false);\n readonly options = input<SelectOption[]>([]);\n readonly size = input<Size>('md');\n readonly state = input<State>('default');\n readonly value = model<string | string[] | null>(null);\n\n private readonly el = inject(ElementRef);\n\n protected readonly displayText = computed(() => {\n const val = this.value();\n const opts = this.options();\n\n if (val === null || val === undefined) return this.placeholder();\n\n if (Array.isArray(val)) {\n if (val.length === 0) return this.placeholder();\n const labels = val.map((v) => opts.find((o) => o.value === v)?.label ?? v).join(', ');\n return labels;\n }\n\n return (opts.find((o) => o.value === val)?.label ?? val) || this.placeholder();\n });\n\n protected readonly triggerClasses = computed(() => {\n const classes = ['select-trigger', `select-${this.size()}`];\n const s = this.state();\n if (s !== 'default') classes.push(`select-${s}`);\n if (this.disabled()) classes.push('select-disabled');\n return classes.join(' ');\n });\n\n isSelected(option: SelectOption): boolean {\n const val = this.value();\n if (Array.isArray(val)) return val.includes(option.value);\n return val === option.value;\n }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent) {\n if (!this.el.nativeElement.contains(event.target)) {\n this.isOpen.set(false);\n }\n }\n\n selectOption(option: SelectOption) {\n if (this.multiple()) {\n const current = (this.value() as string[]) ?? [];\n const idx = current.indexOf(option.value);\n if (idx === -1) {\n this.value.set([...current, option.value]);\n } else {\n this.value.set(current.filter((v) => v !== option.value));\n }\n } else {\n this.value.set(option.value);\n this.isOpen.set(false);\n }\n }\n\n toggle() {\n if (this.disabled()) return;\n this.isOpen.update((v) => !v);\n }\n}\n","<div class=\"select-wrapper\">\n <button type=\"button\" [class]=\"triggerClasses()\" [disabled]=\"disabled()\" (click)=\"toggle()\">\n <span [class.select-placeholder]=\"displayText() === placeholder()\">\n {{ displayText() }}\n </span>\n <svg\n class=\"select-icon\"\n [class.select-chevron-open]=\"isOpen()\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <path d=\"M6 9l6 6 6-6\" />\n </svg>\n </button>\n\n @if (isOpen()) {\n <ul class=\"select-panel\" role=\"listbox\">\n @for (option of options(); track option.value) {\n <li\n class=\"select-option\"\n [class.select-option-selected]=\"isSelected(option)\"\n role=\"option\"\n [attr.aria-selected]=\"isSelected(option)\"\n tabindex=\"0\"\n (click)=\"selectOption(option)\"\n (keydown.enter)=\"selectOption(option)\"\n (keydown.space)=\"selectOption(option)\"\n >\n @if (multiple()) {\n <span class=\"select-checkbox\" [class.select-checkbox-checked]=\"isSelected(option)\">\n @if (isSelected(option)) {\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"3\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <path d=\"M20 6L9 17l-5-5\" />\n </svg>\n }\n </span>\n }\n {{ option.label }}\n </li>\n }\n </ul>\n }\n</div>\n","import { booleanAttribute, Component, computed, input, model } from '@angular/core';\n\nimport { Select, SelectOption } from '../select/select';\n\n@Component({\n selector: 'bsc-pagination',\n imports: [Select],\n templateUrl: './pagination.html',\n styleUrl: './pagination.css',\n})\nexport class Pagination {\n readonly pageSizeOptions = input([10, 25, 50, 100]);\n readonly showPageSize = input(false, { transform: booleanAttribute });\n readonly totalItems = input(0);\n\n readonly currentPage = model(1);\n readonly pageSize = model(10);\n\n protected readonly pageSizeSelectOptions = computed<SelectOption[]>(() => {\n return this.pageSizeOptions().map((n) => ({ value: String(n), label: `${n} / page` }));\n });\n\n protected readonly pageSizeValue = computed(() => String(this.pageSize()));\n\n protected readonly totalPages = computed(() => {\n return Math.max(1, Math.ceil(this.totalItems() / this.pageSize()));\n });\n\n protected readonly visiblePages = computed<(number | '...')[]>(() => {\n const total = this.totalPages();\n const current = this.currentPage();\n\n if (total <= 7) {\n return Array.from({ length: total }, (_, i) => i + 1);\n }\n\n // Always 7 slots: 5 numbers + up to 2 ellipsis\n if (current <= 4) {\n return [1, 2, 3, 4, 5, '...', total];\n }\n\n if (current >= total - 3) {\n return [1, '...', total - 4, total - 3, total - 2, total - 1, total];\n }\n\n return [1, '...', current - 1, current, current + 1, '...', total];\n });\n\n first() {\n this.goToPage(1);\n }\n\n goToPage(page: number) {\n this.currentPage.set(Math.max(1, Math.min(page, this.totalPages())));\n }\n\n last() {\n this.goToPage(this.totalPages());\n }\n\n next() {\n this.goToPage(this.currentPage() + 1);\n }\n\n onPageSizeChange(value: string | string[] | null) {\n if (value && !Array.isArray(value)) {\n this.pageSize.set(Number(value));\n this.currentPage.set(1);\n }\n }\n\n previous() {\n this.goToPage(this.currentPage() - 1);\n }\n}\n","<nav class=\"pagination\">\n <ul class=\"pagination-list\">\n <li>\n <button\n class=\"pagination-btn pagination-btn-first\"\n [class.pagination-btn-disabled]=\"currentPage() === 1\"\n [disabled]=\"currentPage() === 1\"\n (click)=\"previous()\"\n >\n ‹\n </button>\n </li>\n @for (page of visiblePages(); track $index) {\n @if (page === '...') {\n <li>\n <span class=\"pagination-btn pagination-btn-page pagination-ellipsis\">…</span>\n </li>\n } @else {\n <li>\n <button\n class=\"pagination-btn pagination-btn-page\"\n [class.pagination-btn-active]=\"page === currentPage()\"\n (click)=\"goToPage(+page)\"\n >\n {{ page }}\n </button>\n </li>\n }\n }\n <li>\n <button\n class=\"pagination-btn pagination-btn-last\"\n [class.pagination-btn-disabled]=\"currentPage() === totalPages()\"\n [disabled]=\"currentPage() === totalPages()\"\n (click)=\"next()\"\n >\n ›\n </button>\n </li>\n </ul>\n\n @if (showPageSize()) {\n <bsc-select\n size=\"sm\"\n [options]=\"pageSizeSelectOptions()\"\n [value]=\"pageSizeValue()\"\n (valueChange)=\"onPageSizeChange($event)\"\n />\n }\n</nav>\n","import { Component, computed, input } from '@angular/core';\n\nimport { Size } from '../types';\n\nexport type ProgressBarVariant = 'dark' | 'brand' | 'success' | 'danger' | 'warning';\nexport type ProgressBarLabelPosition = 'none' | 'inside' | 'outside';\n\n@Component({\n selector: 'bsc-progress-bar',\n imports: [],\n templateUrl: './progress-bar.html',\n})\nexport class ProgressBar {\n readonly label = input<string>('');\n readonly labelPosition = input<ProgressBarLabelPosition>('none');\n readonly size = input<Size>('md');\n readonly value = input<number>(0);\n readonly variant = input<ProgressBarVariant>('brand');\n\n protected readonly barClasses = computed(() => {\n const pos = this.labelPosition();\n const classes = ['progress-bar', `progress-bar-${this.variant()}`];\n if (pos === 'inside') {\n classes.push('progress-bar-inside');\n } else {\n classes.push(`progress-bar-${this.size()}`);\n }\n return classes.join(' ');\n });\n\n protected readonly clampedValue = computed(() => {\n return Math.max(0, Math.min(100, this.value()));\n });\n\n protected readonly barWidth = computed(() => {\n return `${this.clampedValue()}%`;\n });\n\n protected readonly labelClasses = computed(() => {\n return `progress-label progress-label-${this.variant()}`;\n });\n\n protected readonly trackClasses = computed(() => {\n return `progress-track progress-track-${this.size()}`;\n });\n\n protected readonly valueText = computed(() => {\n return `${this.clampedValue()}%`;\n });\n}\n","@switch (labelPosition()) {\n @case ('outside') {\n <!-- Outside: label + percentage on top -->\n <div class=\"progress-outside-header\">\n <span [class]=\"labelClasses()\">{{ label() }}</span>\n <span class=\"progress-outside-value\">{{ valueText() }}</span>\n </div>\n <div [class]=\"trackClasses()\">\n <div [class]=\"barClasses()\" [style.width]=\"barWidth()\"></div>\n </div>\n }\n @case ('inside') {\n <!-- Inside: percentage inside the bar -->\n <div class=\"progress-track progress-track-inside\">\n <div [class]=\"barClasses()\" [style.width]=\"barWidth()\">{{ valueText() }}</div>\n </div>\n }\n @default {\n <!-- None: optional label on top, no percentage -->\n @if (label()) {\n <div [class]=\"labelClasses()\">{{ label() }}</div>\n }\n <div [class]=\"trackClasses()\">\n <div [class]=\"barClasses()\" [style.width]=\"barWidth()\"></div>\n </div>\n }\n}\n","import { booleanAttribute, Component, input, model } from '@angular/core';\n\n@Component({\n selector: 'bsc-radio',\n imports: [],\n templateUrl: './radio.html',\n})\nexport class Radio {\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly checked = model<boolean>(false);\n readonly name = input<string>('');\n readonly value = input<string>('');\n\n protected onSelect() {\n if (!this.disabled()) {\n this.checked.set(true);\n }\n }\n}\n","<label class=\"radio\">\n <input\n type=\"radio\"\n class=\"radio-input\"\n [name]=\"name()\"\n [value]=\"value()\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n (change)=\"onSelect()\"\n />\n <span class=\"radio-circle\"></span>\n <span class=\"radio-label\">\n <ng-content />\n </span>\n</label>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-search-bar',\n imports: [],\n templateUrl: './search-bar.html',\n styleUrl: './search-bar.css',\n})\nexport class SearchBar {}\n","<p>search-bar works!</p>\n","import { Injectable, signal } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SidebarService {\n readonly isPinned = signal(this.loadPinned());\n\n readonly isVisible = signal(this.loadPinned());\n private blockShow = false;\n\n private hideTimeout: ReturnType<typeof setTimeout> | null = null;\n private readonly STORAGE_KEY = 'sidebar-pinned';\n\n hide(): void {\n if (this.isPinned()) return;\n this.clearHideTimeout();\n this.hideTimeout = setTimeout(() => {\n this.isVisible.set(false);\n this.hideTimeout = null;\n }, 150);\n }\n\n show(): void {\n if (this.blockShow) return;\n this.clearHideTimeout();\n if (!this.isPinned()) {\n this.isVisible.set(true);\n }\n }\n\n toggle(): void {\n this.clearHideTimeout();\n this.isVisible.update((v) => !v);\n }\n\n togglePin(): void {\n const wasPinned = this.isPinned();\n const pinned = !wasPinned;\n\n this.isPinned.set(pinned);\n this.savePinned(pinned);\n\n if (pinned) {\n this.isVisible.set(true);\n this.clearHideTimeout();\n } else {\n this.isVisible.set(false);\n this.clearHideTimeout();\n this.blockShow = true;\n setTimeout(() => (this.blockShow = false), 300);\n }\n }\n\n private clearHideTimeout(): void {\n if (this.hideTimeout) {\n clearTimeout(this.hideTimeout);\n this.hideTimeout = null;\n }\n }\n\n private loadPinned(): boolean {\n try {\n return localStorage.getItem(this.STORAGE_KEY) === 'true';\n } catch {\n return false;\n }\n }\n\n private savePinned(pinned: boolean): void {\n try {\n localStorage.setItem(this.STORAGE_KEY, String(pinned));\n } catch {\n // ignore (e.g. incognito)\n }\n }\n}\n","import { booleanAttribute, Component, computed, inject, input } from '@angular/core';\n\nimport { SidebarService } from './sidebar.service';\n\n@Component({\n selector: 'bsc-sidebar',\n imports: [],\n templateUrl: './sidebar.html',\n})\nexport class Sidebar {\n readonly hasHeader = input(false, { transform: booleanAttribute });\n\n protected readonly sidebar = inject(SidebarService);\n\n protected readonly sidebarClasses = computed(() => {\n const visible = this.sidebar.isVisible();\n const classes = ['sidebar', visible ? 'sidebar-visible' : 'sidebar-hidden'];\n if (this.hasHeader()) classes.push('sidebar-with-header');\n return classes.join(' ');\n });\n\n protected onMouseEnter(): void {\n this.sidebar.show();\n }\n\n protected onMouseLeave(): void {\n this.sidebar.hide();\n }\n}\n","<!-- Invisible hover trigger at left edge (shows sidebar on hover when unpinned) -->\n@if (!sidebar.isVisible()) {\n <div class=\"sidebar-trigger\" (mouseenter)=\"onMouseEnter()\"></div>\n}\n\n<aside\n [class]=\"sidebarClasses()\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n aria-label=\"Sidebar\"\n>\n <!-- Header -->\n <div class=\"sidebar-header\">\n <ng-content select=\"[sidebarHeader]\" />\n </div>\n\n <!-- Body (scrollable) -->\n <div class=\"sidebar-body\">\n <ng-content />\n </div>\n\n <!-- Footer (optional) -->\n <ng-content select=\"[sidebarFooter]\" />\n</aside>\n","import { Component, computed, input } from '@angular/core';\n\nexport type SkeletonVariant = 'text' | 'circular' | 'rectangular' | 'table';\n\n@Component({\n selector: 'bsc-skeleton',\n imports: [],\n templateUrl: './skeleton.html',\n})\nexport class Skeleton {\n readonly animated = input<boolean>(true);\n readonly columns = input<number>(3);\n readonly height = input<string>('');\n readonly lines = input<number>(1);\n readonly variant = input<SkeletonVariant>('text');\n readonly width = input<string>('100%');\n\n protected readonly animClass = computed(() => {\n return this.animated() ? 'skeleton-animated' : '';\n });\n\n protected readonly columnsArray = computed(() => {\n return Array.from({ length: this.columns() });\n });\n\n protected readonly linesArray = computed(() => {\n return Array.from({ length: this.lines() });\n });\n}\n","@switch (variant()) {\n @case ('text') {\n <div class=\"skeleton-text-container\" [style.width]=\"width()\">\n @for (line of linesArray(); track $index; let last = $last) {\n <div\n class=\"skeleton-base skeleton-text\"\n [class]=\"animClass()\"\n [style.width]=\"last && linesArray().length > 1 ? '75%' : '100%'\"\n [style.height]=\"height() || null\"\n ></div>\n }\n </div>\n }\n @case ('circular') {\n <div\n class=\"skeleton-base skeleton-circular\"\n [class]=\"animClass()\"\n [style.width]=\"width() === '100%' ? '3rem' : width()\"\n [style.height]=\"height() || (width() === '100%' ? '3rem' : width())\"\n ></div>\n }\n @case ('rectangular') {\n <div\n class=\"skeleton-base skeleton-rectangular\"\n [class]=\"animClass()\"\n [style.width]=\"width()\"\n [style.height]=\"height() || '8rem'\"\n ></div>\n }\n @case ('table') {\n <div class=\"skeleton-table\" [style.width]=\"width()\">\n <!-- Header row -->\n <div class=\"skeleton-table-row\">\n @for (col of columnsArray(); track $index) {\n <div class=\"skeleton-base skeleton-table-header-cell\" [class]=\"animClass()\"></div>\n }\n </div>\n <!-- Body rows -->\n @for (row of linesArray(); track $index) {\n <div class=\"skeleton-table-row\">\n @for (col of columnsArray(); track $index) {\n <div class=\"skeleton-base skeleton-table-cell\" [class]=\"animClass()\"></div>\n }\n </div>\n }\n </div>\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-spinner',\n imports: [],\n templateUrl: './spinner.html',\n styleUrl: './spinner.css',\n})\nexport class Spinner {}\n","<p>spinner works!</p>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-stepper',\n imports: [],\n templateUrl: './stepper.html',\n styleUrl: './stepper.css',\n})\nexport class Stepper {}\n","<p>stepper works!</p>\n","import { booleanAttribute, Component, computed, input, signal } from '@angular/core';\n\nimport { Pagination } from '../pagination/pagination';\n\nexport interface TableColumn {\n key: string;\n label: string;\n sortable?: boolean;\n}\n\nexport type StripedDirection = 'row' | 'column' | 'none';\nexport type SortDirection = 'asc' | 'desc' | 'none';\n\nexport interface SortState {\n column: string;\n direction: SortDirection;\n}\n\n@Component({\n selector: 'bsc-table',\n imports: [Pagination],\n templateUrl: './table.html',\n styleUrl: './table.css',\n})\nexport class Table {\n readonly hover = input(true, { transform: booleanAttribute });\n readonly pageSizeOptions = input([10, 25, 50, 100]);\n readonly paginate = input(false, { transform: booleanAttribute });\n readonly showPageSize = input(false, { transform: booleanAttribute });\n readonly sortable = input(false, { transform: booleanAttribute });\n readonly tableSearch = input(false, { transform: booleanAttribute });\n readonly columns = input<TableColumn[]>([]);\n readonly currentPage = signal(1);\n readonly data = input<Record<string, unknown>[]>([]);\n\n readonly pageSize = signal(10);\n readonly searchTerm = signal('');\n readonly sortState = signal<SortState>({ column: '', direction: 'none' });\n readonly stripedDirection = input<StripedDirection>('none');\n\n protected readonly filteredData = computed(() => {\n const term = this.searchTerm().toLowerCase();\n const rows = this.data();\n if (!term) return rows;\n return rows.filter((row) =>\n this.columns().some((col) => {\n const val = row[col.key];\n return val != null && String(val).toLowerCase().includes(term);\n }),\n );\n });\n\n protected readonly displayData = computed(() => {\n const rows = this.filteredData();\n const sort = this.sortState();\n if (sort.direction === 'none' || !sort.column) return rows;\n return [...rows].sort((a, b) => {\n const aVal = String(a[sort.column] ?? '');\n const bVal = String(b[sort.column] ?? '');\n const cmp = aVal.localeCompare(bVal, undefined, { numeric: true });\n return sort.direction === 'asc' ? cmp : -cmp;\n });\n });\n\n protected readonly paginatedData = computed(() => {\n const rows = this.displayData();\n if (!this.paginate()) return rows;\n const page = this.currentPage();\n const size = this.pageSize();\n const start = (page - 1) * size;\n return rows.slice(start, start + size);\n });\n\n protected readonly tableClasses = computed(() => {\n const classes = ['table'];\n const dir = this.stripedDirection();\n if (dir !== 'none') classes.push(`table-striped-${dir}`);\n if (this.hover()) classes.push('table-hover');\n return classes.join(' ');\n });\n\n protected readonly totalItems = computed(() => this.displayData().length);\n\n getSortDirection(col: TableColumn): SortDirection {\n const sort = this.sortState();\n return sort.column === col.key ? sort.direction : 'none';\n }\n\n isColumnSortable(col: TableColumn): boolean {\n if (col.sortable !== undefined) return col.sortable;\n return this.sortable();\n }\n\n onSearchInput(event: Event) {\n const target = event.target as HTMLInputElement;\n this.searchTerm.set(target.value);\n this.currentPage.set(1);\n }\n\n toggleSort(col: TableColumn) {\n if (!this.isColumnSortable(col)) return;\n const current = this.sortState();\n if (current.column !== col.key) {\n this.sortState.set({ column: col.key, direction: 'asc' });\n } else {\n const next: SortDirection =\n current.direction === 'asc' ? 'desc' : current.direction === 'desc' ? 'none' : 'asc';\n this.sortState.set({ column: col.key, direction: next });\n }\n }\n}\n","<div class=\"table-wrapper\">\n @if (tableSearch()) {\n <div class=\"table-search\">\n <svg\n class=\"table-search-icon\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <path d=\"M21 21l-4.35-4.35\" />\n </svg>\n <input\n class=\"table-search-input\"\n type=\"text\"\n placeholder=\"Search...\"\n [value]=\"searchTerm()\"\n (input)=\"onSearchInput($event)\"\n />\n </div>\n }\n\n <div class=\"table-scroll\">\n <table [class]=\"tableClasses()\">\n <thead>\n <tr>\n @for (col of columns(); track col.key) {\n <th\n class=\"table-th\"\n [class.table-th-sortable]=\"isColumnSortable(col)\"\n (click)=\"toggleSort(col)\"\n >\n <span class=\"table-th-content\">\n {{ col.label }}\n @if (isColumnSortable(col)) {\n <svg\n class=\"table-sort-icon\"\n [class.table-sort-asc]=\"getSortDirection(col) === 'asc'\"\n [class.table-sort-desc]=\"getSortDirection(col) === 'desc'\"\n [class.table-sort-none]=\"getSortDirection(col) === 'none'\"\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <path d=\"M6 9l6-6 6 6\" />\n <path d=\"M6 15l6 6 6-6\" />\n </svg>\n }\n </span>\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of paginatedData(); track $index) {\n <tr>\n @for (col of columns(); track col.key) {\n <td class=\"table-td\">{{ row[col.key] }}</td>\n }\n </tr>\n } @empty {\n <tr>\n <td class=\"table-empty\" [attr.colspan]=\"columns().length\">No data available.</td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n\n @if (paginate()) {\n <div class=\"table-pagination\">\n <bsc-pagination\n [totalItems]=\"totalItems()\"\n [(currentPage)]=\"currentPage\"\n [(pageSize)]=\"pageSize\"\n [showPageSize]=\"showPageSize()\"\n [pageSizeOptions]=\"pageSizeOptions()\"\n />\n </div>\n }\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-tabs',\n imports: [],\n templateUrl: './tabs.html',\n styleUrl: './tabs.css',\n})\nexport class Tabs {}\n","<p>tabs works!</p>\n","import { booleanAttribute, Component, computed, input, model } from '@angular/core';\n\nimport { Size } from '../types';\n\n@Component({\n selector: 'bsc-toggle',\n imports: [],\n templateUrl: './toggle.html',\n})\nexport class Toggle {\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly checked = model<boolean>(false);\n readonly size = input<Size>('md');\n\n protected readonly thumbClasses = computed(() => {\n const classes = ['toggle-thumb'];\n if (this.checked()) classes.push('toggle-thumb-checked');\n return classes.join(' ');\n });\n\n protected readonly trackClasses = computed(() => {\n const classes = ['toggle-track'];\n if (this.checked()) classes.push('toggle-track-checked');\n return classes.join(' ');\n });\n\n protected readonly wrapperClasses = computed(() => {\n return `toggle toggle-${this.size()}`;\n });\n\n protected toggle() {\n if (!this.disabled()) {\n this.checked.set(!this.checked());\n }\n }\n}\n","<button\n type=\"button\"\n role=\"switch\"\n [attr.aria-checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [class]=\"wrapperClasses()\"\n (click)=\"toggle()\"\n>\n <span [class]=\"trackClasses()\">\n <span [class]=\"thumbClasses()\"></span>\n </span>\n</button>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bsc-tooltip',\n imports: [],\n templateUrl: './tooltip.html',\n styleUrl: './tooltip.css',\n})\nexport class Tooltip {}\n","<p>tooltip works!</p>\n","/*\n * Public API Surface of core-components\n */\n\nexport * from './lib/types';\nexport * from './lib/accordion/accordion';\nexport * from './lib/alert/alert';\nexport * from './lib/avatar/avatar';\nexport * from './lib/badge/badge';\nexport * from './lib/breadcrumb/breadcrumb';\nexport * from './lib/button/button';\nexport * from './lib/card/card';\nexport * from './lib/checkbox/checkbox';\nexport * from './lib/date-picker/date-picker';\nexport * from './lib/dropdown/dropdown';\nexport * from './lib/file-upload/file-upload';\nexport * from './lib/footer/footer';\nexport * from './lib/form-field/form-field';\nexport * from './lib/header/header';\nexport * from './lib/icon/icon';\nexport * from './lib/input/input';\nexport * from './lib/label/label';\nexport * from './lib/modal/modal';\nexport * from './lib/navigation/navigation';\nexport * from './lib/pagination/pagination';\nexport * from './lib/progress-bar/progress-bar';\nexport * from './lib/radio/radio';\nexport * from './lib/search-bar/search-bar';\nexport * from './lib/select/select';\nexport * from './lib/sidebar/sidebar';\nexport * from './lib/skeleton/skeleton';\nexport * from './lib/sidebar/sidebar.service';\nexport * from './lib/spinner/spinner';\nexport * from './lib/stepper/stepper';\nexport * from './lib/table/table';\nexport * from './lib/tabs/tabs';\nexport * from './lib/toggle/toggle';\nexport * from './lib/tooltip/tooltip';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAoGa,aAAa,CAAA;IACf,QAAQ,GAAG,KAAK,CAAC,KAAK,qDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AACxD,IAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,gDAAU;AAChC,IAAA,IAAI,GAAG,KAAK,CAAC,KAAK,gDAAC;AAEX,IAAA,MAAM,GAAG,MAAM,CAC9B,UAAU,CAAC,MAAM,SAAS,CAAC,EAC3B,EAAE,QAAQ,EAAE,IAAI,EAAE,CACnB;AAEkB,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;AAC7C,QAAA,MAAM,OAAO,GAAG,CAAC,gBAAgB,CAAC;QAClC,IAAI,IAAI,CAAC,QAAQ,EAAE;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC;AAC5D,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AAC1B,IAAA,CAAC,uDAAC;IAEF,MAAM,GAAA;QACJ,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;QACrB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE;AAC9B,YAAA,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC;QAChC;IACF;uGAtBW,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAb,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAtFd;;;;;;;;;;;;;;;;;;;;;;;;;AAyBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,6yBAAA,CAAA,EAAA,CAAA;;2FA6DU,aAAa,EAAA,UAAA,EAAA,CAAA;kBAzFzB,SAAS;+BACE,oBAAoB,EAAA,OAAA,EACrB,EAAE,EAAA,QAAA,EACD;;;;;;;;;;;;;;;;;;;;;;;;;AAyBT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,6yBAAA,CAAA,EAAA;;MA4FU,SAAS,CAAA;IACX,QAAQ,GAAG,KAAK,CAAC,KAAK,qDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAEhD,IAAA,KAAK,GAAG,eAAe,CAAC,aAAa,iDAAC;AAEvD,IAAA,YAAY,CAAC,UAAyB,EAAA;QACpC,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;QACrB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE;AAC/B,YAAA,IAAI,IAAI,KAAK,UAAU,EAAE;AACvB,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;YACtB;QACF;IACF;uGAZW,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAT,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAGqB,aAAa,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtIxD,uDAGA,EAAA,MAAA,EAAA,CAAA,+GAAA,CAAA,EAAA,CAAA;;2FDgIa,SAAS,EAAA,UAAA,EAAA,CAAA;kBANrB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,WAChB,EAAE,EAAA,QAAA,EAAA,uDAAA,EAAA,MAAA,EAAA,CAAA,+GAAA,CAAA,EAAA;6LAO8B,aAAa,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;ME7H3C,KAAK,CAAA;AACP,IAAA,OAAO,GAAG,KAAK,CAAe,MAAM,mDAAC;AAE3B,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AAC9C,QAAA,OAAO,eAAe,IAAI,CAAC,OAAO,EAAE,EAAE;AACxC,IAAA,CAAC,wDAAC;uGALS,KAAK,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAL,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAK,+MCTlB,6EAGA,EAAA,CAAA;;2FDMa,KAAK,EAAA,UAAA,EAAA,CAAA;kBALjB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,WACZ,EAAE,EAAA,QAAA,EAAA,6EAAA,EAAA;;;MEEA,MAAM,CAAA;uGAAN,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAN,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAM,sECRnB,wBACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FDOa,MAAM,EAAA,UAAA,EAAA,CAAA;kBANlB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,WACb,EAAE,EAAA,QAAA,EAAA,wBAAA,EAAA;;;MEIA,KAAK,CAAA;uGAAL,KAAK,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAL,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAK,qECRlB,uBACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FDOa,KAAK,EAAA,UAAA,EAAA,CAAA;kBANjB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,WACZ,EAAE,EAAA,QAAA,EAAA,uBAAA,EAAA;;;MEIA,UAAU,CAAA;uGAAV,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAV,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAU,0ECRvB,4BACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FDOa,UAAU,EAAA,UAAA,EAAA,CAAA;kBANtB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,WACjB,EAAE,EAAA,QAAA,EAAA,4BAAA,EAAA;;;AEGb,SAAS,SAAS,CAAC,GAAW,EAAA;IAC5B,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;AAChC,IAAA,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG;AACjD,IAAA,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG;AACjD,IAAA,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG;AACjD,IAAA,MAAM,QAAQ,GAAG,CAAC,CAAS,MAAM,CAAC,IAAI,OAAO,GAAG,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,EAAE,GAAG,CAAC,CAAC;IAC/F,OAAO,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC;AAC3E;MAOa,MAAM,CAAA;IACR,QAAQ,GAAG,KAAK,CAAC,KAAK,qDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IACxD,QAAQ,GAAG,KAAK,CAAC,KAAK,qDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IACxD,OAAO,GAAG,KAAK,CAAC,KAAK,oDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AACvD,IAAA,KAAK,GAAG,KAAK,CAAqB,SAAS,iDAAC;AAC5C,IAAA,KAAK,GAAG,KAAK,CAAc,SAAS,iDAAC;AACrC,IAAA,IAAI,GAAG,KAAK,CAAO,IAAI,gDAAC;AACxB,IAAA,IAAI,GAAG,KAAK,CAAgC,QAAQ,gDAAC;AACrD,IAAA,OAAO,GAAG,KAAK,CAAgB,SAAS,mDAAC;AAE/B,IAAA,aAAa,GAAG,QAAQ,CAAC,MAAK;AAC/C,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE;QAC1B,MAAM,UAAU,GAAG,EAAE,GAAG,WAAW,GAAG,MAAM;QAE5C,MAAM,OAAO,GAAG,CAAC,KAAK,EAAE,CAAA,IAAA,EAAO,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,CAAA,EAAG,UAAU,CAAA,EAAG,IAAI,CAAC,IAAI,EAAE,CAAA,CAAE,CAAC;AAE7E,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE;AAChB,YAAA,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC;QAClC;aAAO;YACL,OAAO,CAAC,IAAI,CAAC,CAAA,IAAA,EAAO,IAAI,CAAC,OAAO,EAAE,CAAA,CAAE,CAAC;QACvC;AAEA,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AAC1B,IAAA,CAAC,yDAAC;AAEiB,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AAC9C,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;AACtB,QAAA,IAAI,CAAC,CAAC;AAAE,YAAA,OAAO,EAAE;AACjB,QAAA,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,SAAS,GAAG,SAAS;QAC5D,OAAO;AACL,YAAA,UAAU,EAAE,CAAC;AACb,YAAA,YAAY,EAAE,SAAS;SACE;AAC7B,IAAA,CAAC,wDAAC;uGAjCS,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAN,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAM,0iCCrBnB,iyBA2BA,EAAA,CAAA;;2FDNa,MAAM,EAAA,UAAA,EAAA,CAAA;kBALlB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,WACb,EAAE,EAAA,QAAA,EAAA,iyBAAA,EAAA;;;MERA,IAAI,CAAA;IACN,MAAM,GAAG,KAAK,CAAC,IAAI,mDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AACrD,IAAA,OAAO,GAAG,KAAK,CAAc,SAAS,mDAAC;AAE7B,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;AAC7C,QAAA,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,CAAA,KAAA,EAAQ,IAAI,CAAC,OAAO,EAAE,CAAA,CAAE,CAAC;QAClD,IAAI,IAAI,CAAC,MAAM,EAAE;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;AAC9C,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AAC1B,IAAA,CAAC,uDAAC;uGARS,IAAI,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAJ,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,IAAI,yUCVjB,0LAOA,EAAA,MAAA,EAAA,CAAA,kbAAA,CAAA,EAAA,CAAA;;2FDGa,IAAI,EAAA,UAAA,EAAA,CAAA;kBANhB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,WACX,EAAE,EAAA,QAAA,EAAA,0LAAA,EAAA,MAAA,EAAA,CAAA,kbAAA,CAAA,EAAA;;;MECA,QAAQ,CAAA;IACV,QAAQ,GAAG,KAAK,CAAC,KAAK,qDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IACxD,aAAa,GAAG,KAAK,CAAC,KAAK,0DAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAC7D,IAAA,OAAO,GAAG,KAAK,CAAU,KAAK,mDAAC;IAE9B,MAAM,GAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;YACpB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACnC;IACF;uGATW,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAR,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAQ,0gBCPrB,w2BAmCA,EAAA,CAAA;;2FD5Ba,QAAQ,EAAA,UAAA,EAAA,CAAA;kBALpB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,WACf,EAAE,EAAA,QAAA,EAAA,w2BAAA,EAAA;;;MEIA,UAAU,CAAA;uGAAV,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAV,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAU,2ECRvB,6BACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FDOa,UAAU,EAAA,UAAA,EAAA,CAAA;kBANtB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,WAClB,EAAE,EAAA,QAAA,EAAA,6BAAA,EAAA;;;MEIA,QAAQ,CAAA;uGAAR,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAR,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAQ,wECRrB,0BACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FDOa,QAAQ,EAAA,UAAA,EAAA,CAAA;kBANpB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,WACf,EAAE,EAAA,QAAA,EAAA,0BAAA,EAAA;;;MEIA,UAAU,CAAA;uGAAV,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAV,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAU,2ECRvB,6BACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FDOa,UAAU,EAAA,UAAA,EAAA,CAAA;kBANtB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,WAClB,EAAE,EAAA,QAAA,EAAA,6BAAA,EAAA;;;MEIA,MAAM,CAAA;uGAAN,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAN,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAM,sECRnB,wBACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FDOa,MAAM,EAAA,UAAA,EAAA,CAAA;kBANlB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,WACb,EAAE,EAAA,QAAA,EAAA,wBAAA,EAAA;;;MEIA,SAAS,CAAA;uGAAT,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAT,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,SAAS,0ECRtB,4BACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FDOa,SAAS,EAAA,UAAA,EAAA,CAAA;kBANrB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,WACjB,EAAE,EAAA,QAAA,EAAA,4BAAA,EAAA;;;MEGA,MAAM,CAAA;uGAAN,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAN,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAM,sECPnB,kSAUA,EAAA,CAAA;;2FDHa,MAAM,EAAA,UAAA,EAAA,CAAA;kBALlB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,WACb,EAAE,EAAA,QAAA,EAAA,kSAAA,EAAA;;;MEIA,IAAI,CAAA;uGAAJ,IAAI,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAJ,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,IAAI,oECRjB,sBACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FDOa,IAAI,EAAA,UAAA,EAAA,CAAA;kBANhB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,WACX,EAAE,EAAA,QAAA,EAAA,sBAAA,EAAA;;;MEKA,KAAK,CAAA;IACP,QAAQ,GAAG,KAAK,CAAC,KAAK,qDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IACxD,QAAQ,GAAG,KAAK,CAAC,KAAK,qDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AACxD,IAAA,WAAW,GAAG,KAAK,CAAS,EAAE,uDAAC;AAC/B,IAAA,IAAI,GAAG,KAAK,CAAO,IAAI,gDAAC;AACxB,IAAA,KAAK,GAAG,KAAK,CAAQ,SAAS,iDAAC;AAC/B,IAAA,IAAI,GAAG,KAAK,CAAS,MAAM,gDAAC;AAElB,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AAC9C,QAAA,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,CAAA,MAAA,EAAS,IAAI,CAAC,IAAI,EAAE,CAAA,CAAE,CAAC;AACjD,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;QACtB,IAAI,CAAC,KAAK,SAAS;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA,CAAE,CAAC;AAC/C,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AAC1B,IAAA,CAAC,wDAAC;uGAbS,KAAK,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAL,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAK,+zBCTlB,8JAOA,EAAA,CAAA;;2FDEa,KAAK,EAAA,UAAA,EAAA,CAAA;kBALjB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,WACZ,EAAE,EAAA,QAAA,EAAA,8JAAA,EAAA;;;MEGA,KAAK,CAAA;IACP,QAAQ,GAAG,KAAK,CAAC,KAAK,qDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IACxD,QAAQ,GAAG,KAAK,CAAC,KAAK,qDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AACxD,IAAA,IAAI,GAAG,KAAK,CAAO,IAAI,gDAAC;AAEd,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AAC9C,QAAA,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,CAAA,MAAA,EAAS,IAAI,CAAC,IAAI,EAAE,CAAA,CAAE,CAAC;QACjD,IAAI,IAAI,CAAC,QAAQ,EAAE;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC;AACnD,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AAC1B,IAAA,CAAC,wDAAC;uGATS,KAAK,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAL,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAK,wcCTlB,mOAOA,EAAA,CAAA;;2FDEa,KAAK,EAAA,UAAA,EAAA,CAAA;kBALjB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,WACZ,EAAE,EAAA,QAAA,EAAA,mOAAA,EAAA;;;MEWA,KAAK,CAAA;IACP,eAAe,GAAG,KAAK,CAAC,IAAI,4DAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IAC9D,UAAU,GAAG,KAAK,CAAC,IAAI,uDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IACzD,eAAe,GAAG,KAAK,CAAC,KAAK,4DAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IAC/D,MAAM,GAAG,MAAM,EAAQ;IACvB,SAAS,GAAG,MAAM,EAAQ;AAC1B,IAAA,WAAW,GAAG,KAAK,CAAS,UAAU,uDAAC;AACvC,IAAA,IAAI,GAAG,KAAK,CAAU,KAAK,gDAAC;AAE5B,IAAA,IAAI,GAAG,KAAK,CAAO,IAAI,gDAAC;AACxB,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,iDAAC;AAEf,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AAC9C,QAAA,OAAO,6BAA6B,IAAI,CAAC,IAAI,EAAE,EAAE;AACnD,IAAA,CAAC,wDAAC;IAEQ,KAAK,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;AACpB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;IACpB;IAEU,eAAe,GAAA;AACvB,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;YAC1B,IAAI,CAAC,KAAK,EAAE;QACd;IACF;IAEU,SAAS,GAAA;AACjB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;IACvB;IAGU,QAAQ,GAAA;QAChB,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YACpC,IAAI,CAAC,KAAK,EAAE;QACd;IACF;uGApCW,KAAK,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAL,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAK,6nCCjBlB,yyDA8DA,EAAA,CAAA;;2FD7Ca,KAAK,EAAA,UAAA,EAAA,CAAA;kBALjB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,WACZ,EAAE,EAAA,QAAA,EAAA,yyDAAA,EAAA;;sBAkCV,YAAY;uBAAC,yBAAyB;;;MExC5B,UAAU,CAAA;uGAAV,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAV,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAU,0ECRvB,4BACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FDOa,UAAU,EAAA,UAAA,EAAA,CAAA;kBANtB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,WACjB,EAAE,EAAA,QAAA,EAAA,4BAAA,EAAA;;;MEqBA,MAAM,CAAA;IACR,QAAQ,GAAG,KAAK,CAAC,KAAK,qDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IAExD,QAAQ,GAAG,KAAK,CAAC,KAAK,qDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AACxD,IAAA,WAAW,GAAG,KAAK,CAAC,EAAE,uDAAC;AACvB,IAAA,MAAM,GAAG,MAAM,CAAC,KAAK,kDAAC;AACtB,IAAA,OAAO,GAAG,KAAK,CAAiB,EAAE,mDAAC;AACnC,IAAA,IAAI,GAAG,KAAK,CAAO,IAAI,gDAAC;AACxB,IAAA,KAAK,GAAG,KAAK,CAAQ,SAAS,iDAAC;AAC/B,IAAA,KAAK,GAAG,KAAK,CAA2B,IAAI,iDAAC;AAErC,IAAA,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;AAErB,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;AAC7C,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE;AACxB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE;AAE3B,QAAA,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS;AAAE,YAAA,OAAO,IAAI,CAAC,WAAW,EAAE;AAEhE,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AACtB,YAAA,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;AAAE,gBAAA,OAAO,IAAI,CAAC,WAAW,EAAE;AAC/C,YAAA,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACrF,YAAA,OAAO,MAAM;QACf;QAEA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,GAAG,KAAK,IAAI,CAAC,WAAW,EAAE;AAChF,IAAA,CAAC,uDAAC;AAEiB,IAAA,cAAc,GAAG,QAAQ,CAAC,MAAK;AAChD,QAAA,MAAM,OAAO,GAAG,CAAC,gBAAgB,EAAE,CAAA,OAAA,EAAU,IAAI,CAAC,IAAI,EAAE,CAAA,CAAE,CAAC;AAC3D,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;QACtB,IAAI,CAAC,KAAK,SAAS;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA,CAAE,CAAC;QAChD,IAAI,IAAI,CAAC,QAAQ,EAAE;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC;AACpD,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AAC1B,IAAA,CAAC,0DAAC;AAEF,IAAA,UAAU,CAAC,MAAoB,EAAA;AAC7B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE;AACxB,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;AACzD,QAAA,OAAO,GAAG,KAAK,MAAM,CAAC,KAAK;IAC7B;AAGA,IAAA,eAAe,CAAC,KAAiB,EAAA;AAC/B,QAAA,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AACjD,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;QACxB;IACF;AAEA,IAAA,YAAY,CAAC,MAAoB,EAAA;AAC/B,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACnB,MAAM,OAAO,GAAI,IAAI,CAAC,KAAK,EAAe,IAAI,EAAE;YAChD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;AACzC,YAAA,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE;AACd,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5C;iBAAO;gBACL,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC;YAC3D;QACF;aAAO;YACL,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;AAC5B,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;QACxB;IACF;IAEA,MAAM,GAAA;QACJ,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;AACrB,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/B;uGAnEW,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAN,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAM,0iCCzBnB,8zDA0DA,EAAA,MAAA,EAAA,CAAA,27CAAA,CAAA,EAAA,CAAA;;2FDjCa,MAAM,EAAA,UAAA,EAAA,CAAA;kBANlB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,WACb,EAAE,EAAA,QAAA,EAAA,8zDAAA,EAAA,MAAA,EAAA,CAAA,27CAAA,CAAA,EAAA;;sBA8CV,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC;;;MEzD/B,UAAU,CAAA;AACZ,IAAA,eAAe,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,2DAAC;IAC1C,YAAY,GAAG,KAAK,CAAC,KAAK,yDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAC5D,IAAA,UAAU,GAAG,KAAK,CAAC,CAAC,sDAAC;AAErB,IAAA,WAAW,GAAG,KAAK,CAAC,CAAC,uDAAC;AACtB,IAAA,QAAQ,GAAG,KAAK,CAAC,EAAE,oDAAC;AAEV,IAAA,qBAAqB,GAAG,QAAQ,CAAiB,MAAK;AACvE,QAAA,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAA,EAAG,CAAC,CAAA,OAAA,CAAS,EAAE,CAAC,CAAC;AACxF,IAAA,CAAC,iEAAC;AAEiB,IAAA,aAAa,GAAG,QAAQ,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,yDAAC;AAEvD,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;QAC5C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AACpE,IAAA,CAAC,sDAAC;AAEiB,IAAA,YAAY,GAAG,QAAQ,CAAqB,MAAK;AAClE,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE;AAC/B,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE;AAElC,QAAA,IAAI,KAAK,IAAI,CAAC,EAAE;YACd,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvD;;AAGA,QAAA,IAAI,OAAO,IAAI,CAAC,EAAE;AAChB,YAAA,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC;QACtC;AAEA,QAAA,IAAI,OAAO,IAAI,KAAK,GAAG,CAAC,EAAE;YACxB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,CAAC;QACtE;AAEA,QAAA,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC;AACpE,IAAA,CAAC,wDAAC;IAEF,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClB;AAEA,IAAA,QAAQ,CAAC,IAAY,EAAA;QACnB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACtE;IAEA,IAAI,GAAA;QACF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;IAClC;IAEA,IAAI,GAAA;QACF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IACvC;AAEA,IAAA,gBAAgB,CAAC,KAA+B,EAAA;QAC9C,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAClC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChC,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QACzB;IACF;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IACvC;uGA/DW,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAV,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECVvB,u1CAkDA,EAAA,MAAA,EAAA,CAAA,glCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED5CY,MAAM,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,aAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAIL,UAAU,EAAA,UAAA,EAAA,CAAA;kBANtB,SAAS;+BACE,gBAAgB,EAAA,OAAA,EACjB,CAAC,MAAM,CAAC,EAAA,QAAA,EAAA,u1CAAA,EAAA,MAAA,EAAA,CAAA,glCAAA,CAAA,EAAA;;;MEMN,WAAW,CAAA;AACb,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,iDAAC;AACzB,IAAA,aAAa,GAAG,KAAK,CAA2B,MAAM,yDAAC;AACvD,IAAA,IAAI,GAAG,KAAK,CAAO,IAAI,gDAAC;AACxB,IAAA,KAAK,GAAG,KAAK,CAAS,CAAC,iDAAC;AACxB,IAAA,OAAO,GAAG,KAAK,CAAqB,OAAO,mDAAC;AAElC,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;AAC5C,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE;AAChC,QAAA,MAAM,OAAO,GAAG,CAAC,cAAc,EAAE,CAAA,aAAA,EAAgB,IAAI,CAAC,OAAO,EAAE,CAAA,CAAE,CAAC;AAClE,QAAA,IAAI,GAAG,KAAK,QAAQ,EAAE;AACpB,YAAA,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC;QACrC;aAAO;YACL,OAAO,CAAC,IAAI,CAAC,CAAA,aAAA,EAAgB,IAAI,CAAC,IAAI,EAAE,CAAA,CAAE,CAAC;QAC7C;AACA,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AAC1B,IAAA,CAAC,sDAAC;AAEiB,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AAC9C,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;AACjD,IAAA,CAAC,wDAAC;AAEiB,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;AAC1C,QAAA,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG;AAClC,IAAA,CAAC,oDAAC;AAEiB,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AAC9C,QAAA,OAAO,iCAAiC,IAAI,CAAC,OAAO,EAAE,EAAE;AAC1D,IAAA,CAAC,wDAAC;AAEiB,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AAC9C,QAAA,OAAO,iCAAiC,IAAI,CAAC,IAAI,EAAE,EAAE;AACvD,IAAA,CAAC,wDAAC;AAEiB,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAK;AAC3C,QAAA,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG;AAClC,IAAA,CAAC,qDAAC;uGApCS,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAX,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,WAAW,2sBCZxB,g7BA2BA,EAAA,CAAA;;2FDfa,WAAW,EAAA,UAAA,EAAA,CAAA;kBALvB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,WACnB,EAAE,EAAA,QAAA,EAAA,g7BAAA,EAAA;;;MEFA,KAAK,CAAA;IACP,QAAQ,GAAG,KAAK,CAAC,KAAK,qDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AACxD,IAAA,OAAO,GAAG,KAAK,CAAU,KAAK,mDAAC;AAC/B,IAAA,IAAI,GAAG,KAAK,CAAS,EAAE,gDAAC;AACxB,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,iDAAC;IAExB,QAAQ,GAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;AACpB,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;QACxB;IACF;uGAVW,KAAK,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAL,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAK,omBCPlB,oVAeA,EAAA,CAAA;;2FDRa,KAAK,EAAA,UAAA,EAAA,CAAA;kBALjB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,WACZ,EAAE,EAAA,QAAA,EAAA,oVAAA,EAAA;;;MEIA,SAAS,CAAA;uGAAT,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAT,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,SAAS,0ECRtB,4BACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FDOa,SAAS,EAAA,UAAA,EAAA,CAAA;kBANrB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,WACjB,EAAE,EAAA,QAAA,EAAA,4BAAA,EAAA;;;MECA,cAAc,CAAA;IAChB,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,oDAAC;IAEpC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,qDAAC;IACtC,SAAS,GAAG,KAAK;IAEjB,WAAW,GAAyC,IAAI;IAC/C,WAAW,GAAG,gBAAgB;IAE/C,IAAI,GAAA;QACF,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;QACrB,IAAI,CAAC,gBAAgB,EAAE;AACvB,QAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,MAAK;AACjC,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;AACzB,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI;QACzB,CAAC,EAAE,GAAG,CAAC;IACT;IAEA,IAAI,GAAA;QACF,IAAI,IAAI,CAAC,SAAS;YAAE;QACpB,IAAI,CAAC,gBAAgB,EAAE;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;AACpB,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;QAC1B;IACF;IAEA,MAAM,GAAA;QACJ,IAAI,CAAC,gBAAgB,EAAE;AACvB,QAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAClC;IAEA,SAAS,GAAA;AACP,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE;AACjC,QAAA,MAAM,MAAM,GAAG,CAAC,SAAS;AAEzB,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;AACzB,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAEvB,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;YACxB,IAAI,CAAC,gBAAgB,EAAE;QACzB;aAAO;AACL,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;YACzB,IAAI,CAAC,gBAAgB,EAAE;AACvB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,YAAA,UAAU,CAAC,OAAO,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC;QACjD;IACF;IAEQ,gBAAgB,GAAA;AACtB,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC;AAC9B,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI;QACzB;IACF;IAEQ,UAAU,GAAA;AAChB,QAAA,IAAI;YACF,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,MAAM;QAC1D;AAAE,QAAA,MAAM;AACN,YAAA,OAAO,KAAK;QACd;IACF;AAEQ,IAAA,UAAU,CAAC,MAAe,EAAA;AAChC,QAAA,IAAI;AACF,YAAA,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACxD;AAAE,QAAA,MAAM;;QAER;IACF;uGAtEW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAd,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFb,MAAM,EAAA,CAAA;;2FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCKY,OAAO,CAAA;IACT,SAAS,GAAG,KAAK,CAAC,KAAK,sDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAE/C,IAAA,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC;AAEhC,IAAA,cAAc,GAAG,QAAQ,CAAC,MAAK;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;AACxC,QAAA,MAAM,OAAO,GAAG,CAAC,SAAS,EAAE,OAAO,GAAG,iBAAiB,GAAG,gBAAgB,CAAC;QAC3E,IAAI,IAAI,CAAC,SAAS,EAAE;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC;AACzD,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AAC1B,IAAA,CAAC,0DAAC;IAEQ,YAAY,GAAA;AACpB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;IACrB;IAEU,YAAY,GAAA;AACpB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;IACrB;uGAlBW,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAP,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,OAAO,uNCTpB,knBAwBA,EAAA,CAAA;;2FDfa,OAAO,EAAA,UAAA,EAAA,CAAA;kBALnB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,WACd,EAAE,EAAA,QAAA,EAAA,knBAAA,EAAA;;;MEGA,QAAQ,CAAA;AACV,IAAA,QAAQ,GAAG,KAAK,CAAU,IAAI,oDAAC;AAC/B,IAAA,OAAO,GAAG,KAAK,CAAS,CAAC,mDAAC;AAC1B,IAAA,MAAM,GAAG,KAAK,CAAS,EAAE,kDAAC;AAC1B,IAAA,KAAK,GAAG,KAAK,CAAS,CAAC,iDAAC;AACxB,IAAA,OAAO,GAAG,KAAK,CAAkB,MAAM,mDAAC;AACxC,IAAA,KAAK,GAAG,KAAK,CAAS,MAAM,iDAAC;AAEnB,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAK;AAC3C,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,GAAG,mBAAmB,GAAG,EAAE;AACnD,IAAA,CAAC,qDAAC;AAEiB,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AAC9C,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;AAC/C,IAAA,CAAC,wDAAC;AAEiB,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;AAC5C,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;AAC7C,IAAA,CAAC,sDAAC;uGAlBS,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAR,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAQ,4zBCTrB,4jDAgDA,EAAA,CAAA;;2FDvCa,QAAQ,EAAA,UAAA,EAAA,CAAA;kBALpB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,WACf,EAAE,EAAA,QAAA,EAAA,4jDAAA,EAAA;;;MEEA,OAAO,CAAA;uGAAP,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAP,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,OAAO,uECRpB,yBACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FDOa,OAAO,EAAA,UAAA,EAAA,CAAA;kBANnB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,WACd,EAAE,EAAA,QAAA,EAAA,yBAAA,EAAA;;;MEIA,OAAO,CAAA;uGAAP,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAP,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,OAAO,uECRpB,yBACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FDOa,OAAO,EAAA,UAAA,EAAA,CAAA;kBANnB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,WACd,EAAE,EAAA,QAAA,EAAA,yBAAA,EAAA;;;MEoBA,KAAK,CAAA;IACP,KAAK,GAAG,KAAK,CAAC,IAAI,kDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AACpD,IAAA,eAAe,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,2DAAC;IAC1C,QAAQ,GAAG,KAAK,CAAC,KAAK,qDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IACxD,YAAY,GAAG,KAAK,CAAC,KAAK,yDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IAC5D,QAAQ,GAAG,KAAK,CAAC,KAAK,qDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IACxD,WAAW,GAAG,KAAK,CAAC,KAAK,wDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAC3D,IAAA,OAAO,GAAG,KAAK,CAAgB,EAAE,mDAAC;AAClC,IAAA,WAAW,GAAG,MAAM,CAAC,CAAC,uDAAC;AACvB,IAAA,IAAI,GAAG,KAAK,CAA4B,EAAE,gDAAC;AAE3C,IAAA,QAAQ,GAAG,MAAM,CAAC,EAAE,oDAAC;AACrB,IAAA,UAAU,GAAG,MAAM,CAAC,EAAE,sDAAC;AACvB,IAAA,SAAS,GAAG,MAAM,CAAY,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,qDAAC;AAChE,IAAA,gBAAgB,GAAG,KAAK,CAAmB,MAAM,4DAAC;AAExC,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;QAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE;AAC5C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AACxB,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,IAAI;AACtB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,KACrB,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,KAAI;YAC1B,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;AACxB,YAAA,OAAO,GAAG,IAAI,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;QAChE,CAAC,CAAC,CACH;AACH,IAAA,CAAC,wDAAC;AAEiB,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;AAC7C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE;AAChC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE;QAC7B,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM;AAAE,YAAA,OAAO,IAAI;AAC1D,QAAA,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;AAC7B,YAAA,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AACzC,YAAA,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AACzC,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAClE,YAAA,OAAO,IAAI,CAAC,SAAS,KAAK,KAAK,GAAG,GAAG,GAAG,CAAC,GAAG;AAC9C,QAAA,CAAC,CAAC;AACJ,IAAA,CAAC,uDAAC;AAEiB,IAAA,aAAa,GAAG,QAAQ,CAAC,MAAK;AAC/C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;AAC/B,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAAE,YAAA,OAAO,IAAI;AACjC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;AAC/B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE;QAC5B,MAAM,KAAK,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI;QAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;AACxC,IAAA,CAAC,yDAAC;AAEiB,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AAC9C,QAAA,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC;AACzB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE;QACnC,IAAI,GAAG,KAAK,MAAM;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAA,CAAE,CAAC;QACxD,IAAI,IAAI,CAAC,KAAK,EAAE;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;AAC7C,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AAC1B,IAAA,CAAC,wDAAC;AAEiB,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,sDAAC;AAEzE,IAAA,gBAAgB,CAAC,GAAgB,EAAA;AAC/B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE;AAC7B,QAAA,OAAO,IAAI,CAAC,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,MAAM;IAC1D;AAEA,IAAA,gBAAgB,CAAC,GAAgB,EAAA;AAC/B,QAAA,IAAI,GAAG,CAAC,QAAQ,KAAK,SAAS;YAAE,OAAO,GAAG,CAAC,QAAQ;AACnD,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE;IACxB;AAEA,IAAA,aAAa,CAAC,KAAY,EAAA;AACxB,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAA0B;QAC/C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;AACjC,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB;AAEA,IAAA,UAAU,CAAC,GAAgB,EAAA;AACzB,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC;YAAE;AACjC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE;QAChC,IAAI,OAAO,CAAC,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE;AAC9B,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QAC3D;aAAO;YACL,MAAM,IAAI,GACR,OAAO,CAAC,SAAS,KAAK,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC,SAAS,KAAK,MAAM,GAAG,MAAM,GAAG,KAAK;AACtF,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAC1D;IACF;uGArFW,KAAK,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAL,KAAK,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECxBlB,4vFA2FA,EAAA,MAAA,EAAA,CAAA,u5CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDvEY,UAAU,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,cAAA,EAAA,YAAA,EAAA,aAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAIT,KAAK,EAAA,UAAA,EAAA,CAAA;kBANjB,SAAS;+BACE,WAAW,EAAA,OAAA,EACZ,CAAC,UAAU,CAAC,EAAA,QAAA,EAAA,4vFAAA,EAAA,MAAA,EAAA,CAAA,u5CAAA,CAAA,EAAA;;;MEZV,IAAI,CAAA;uGAAJ,IAAI,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAJ,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,IAAI,oECRjB,sBACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FDOa,IAAI,EAAA,UAAA,EAAA,CAAA;kBANhB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,WACX,EAAE,EAAA,QAAA,EAAA,sBAAA,EAAA;;;MEKA,MAAM,CAAA;IACR,QAAQ,GAAG,KAAK,CAAC,KAAK,qDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AACxD,IAAA,OAAO,GAAG,KAAK,CAAU,KAAK,mDAAC;AAC/B,IAAA,IAAI,GAAG,KAAK,CAAO,IAAI,gDAAC;AAEd,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AAC9C,QAAA,MAAM,OAAO,GAAG,CAAC,cAAc,CAAC;QAChC,IAAI,IAAI,CAAC,OAAO,EAAE;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC;AACxD,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AAC1B,IAAA,CAAC,wDAAC;AAEiB,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AAC9C,QAAA,MAAM,OAAO,GAAG,CAAC,cAAc,CAAC;QAChC,IAAI,IAAI,CAAC,OAAO,EAAE;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC;AACxD,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AAC1B,IAAA,CAAC,wDAAC;AAEiB,IAAA,cAAc,GAAG,QAAQ,CAAC,MAAK;AAChD,QAAA,OAAO,iBAAiB,IAAI,CAAC,IAAI,EAAE,EAAE;AACvC,IAAA,CAAC,0DAAC;IAEQ,MAAM,GAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;YACpB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACnC;IACF;uGAzBW,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAN,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAM,6eCTnB,uRAYA,EAAA,CAAA;;2FDHa,MAAM,EAAA,UAAA,EAAA,CAAA;kBALlB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,WACb,EAAE,EAAA,QAAA,EAAA,uRAAA,EAAA;;;MEEA,OAAO,CAAA;uGAAP,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAP,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,OAAO,uECRpB,yBACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FDOa,OAAO,EAAA,UAAA,EAAA,CAAA;kBANnB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,WACd,EAAE,EAAA,QAAA,EAAA,yBAAA,EAAA;;;AEJb;;AAEG;;ACFH;;AAEG;;;;"}
|
package/package.json
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@blank-software/core-components",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "Angular component library by Blank Software",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "https://github.com/blank-software/core-components.git"
|
|
9
|
+
},
|
|
10
|
+
"keywords": [
|
|
11
|
+
"angular",
|
|
12
|
+
"components",
|
|
13
|
+
"ui",
|
|
14
|
+
"blank-software"
|
|
15
|
+
],
|
|
16
|
+
"peerDependencies": {
|
|
17
|
+
"@angular/common": "^21.0.0",
|
|
18
|
+
"@angular/core": "^21.0.0"
|
|
19
|
+
},
|
|
20
|
+
"dependencies": {
|
|
21
|
+
"tslib": "^2.3.0"
|
|
22
|
+
},
|
|
23
|
+
"sideEffects": false,
|
|
24
|
+
"module": "fesm2022/blank-software-core-components.mjs",
|
|
25
|
+
"typings": "types/blank-software-core-components.d.ts",
|
|
26
|
+
"exports": {
|
|
27
|
+
"./package.json": {
|
|
28
|
+
"default": "./package.json"
|
|
29
|
+
},
|
|
30
|
+
".": {
|
|
31
|
+
"types": "./types/blank-software-core-components.d.ts",
|
|
32
|
+
"default": "./fesm2022/blank-software-core-components.mjs"
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,352 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
|
|
3
|
+
type Size = 'sm' | 'md' | 'lg';
|
|
4
|
+
type State = 'default' | 'error' | 'success';
|
|
5
|
+
|
|
6
|
+
declare class AccordionItem {
|
|
7
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
8
|
+
readonly title: _angular_core.InputSignal<string>;
|
|
9
|
+
readonly open: _angular_core.ModelSignal<boolean>;
|
|
10
|
+
private readonly parent;
|
|
11
|
+
protected readonly itemClasses: _angular_core.Signal<string>;
|
|
12
|
+
toggle(): void;
|
|
13
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AccordionItem, never>;
|
|
14
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AccordionItem, "bsc-accordion-item", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": true; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; }, { "open": "openChange"; }, never, ["*"], true, never>;
|
|
15
|
+
}
|
|
16
|
+
declare class Accordion {
|
|
17
|
+
readonly multiple: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
18
|
+
private readonly items;
|
|
19
|
+
onItemToggle(openedItem: AccordionItem): void;
|
|
20
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Accordion, never>;
|
|
21
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Accordion, "bsc-accordion", never, { "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; }, {}, ["items"], ["*"], true, never>;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
type AlertVariant = 'info' | 'danger' | 'success' | 'warning' | 'dark';
|
|
25
|
+
declare class Alert {
|
|
26
|
+
readonly variant: _angular_core.InputSignal<AlertVariant>;
|
|
27
|
+
protected readonly alertClasses: _angular_core.Signal<string>;
|
|
28
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Alert, never>;
|
|
29
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Alert, "bsc-alert", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
declare class Avatar {
|
|
33
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Avatar, never>;
|
|
34
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Avatar, "bsc-avatar", never, {}, {}, never, never, true, never>;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
declare class Badge {
|
|
38
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Badge, never>;
|
|
39
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Badge, "bsc-badge", never, {}, {}, never, never, true, never>;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
declare class Breadcrumb {
|
|
43
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Breadcrumb, never>;
|
|
44
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Breadcrumb, "bsc-breadcrumb", never, {}, {}, never, never, true, never>;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
type ButtonVariant = 'primary' | 'secondary' | 'outline' | 'ghost';
|
|
48
|
+
type ButtonShape = 'rounded' | 'pill';
|
|
49
|
+
declare class Button {
|
|
50
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
51
|
+
readonly iconOnly: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
52
|
+
readonly loading: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
53
|
+
readonly color: _angular_core.InputSignal<string | undefined>;
|
|
54
|
+
readonly shape: _angular_core.InputSignal<ButtonShape>;
|
|
55
|
+
readonly size: _angular_core.InputSignal<Size>;
|
|
56
|
+
readonly type: _angular_core.InputSignal<"button" | "submit" | "reset">;
|
|
57
|
+
readonly variant: _angular_core.InputSignal<ButtonVariant>;
|
|
58
|
+
protected readonly buttonClasses: _angular_core.Signal<string>;
|
|
59
|
+
protected readonly buttonStyles: _angular_core.Signal<Record<string, string>>;
|
|
60
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Button, never>;
|
|
61
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Button, "bsc-button", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "iconOnly": { "alias": "iconOnly"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "shape": { "alias": "shape"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; }, {}, never, ["[leftIcon]", "*", "[rightIcon]"], true, never>;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
type CardVariant = 'default' | 'outlined';
|
|
65
|
+
declare class Card {
|
|
66
|
+
readonly padded: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
67
|
+
readonly variant: _angular_core.InputSignal<CardVariant>;
|
|
68
|
+
protected readonly cardClasses: _angular_core.Signal<string>;
|
|
69
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Card, never>;
|
|
70
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Card, "bsc-card", never, { "padded": { "alias": "padded"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; }, {}, never, ["[cardHeader]", "*", "[cardFooter]"], true, never>;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
declare class Checkbox {
|
|
74
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
75
|
+
readonly indeterminate: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
76
|
+
readonly checked: _angular_core.ModelSignal<boolean>;
|
|
77
|
+
protected toggle(): void;
|
|
78
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Checkbox, never>;
|
|
79
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Checkbox, "bsc-checkbox", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; }, never, ["*"], true, never>;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
declare class DatePicker {
|
|
83
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DatePicker, never>;
|
|
84
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DatePicker, "bsc-date-picker", never, {}, {}, never, never, true, never>;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
declare class Dropdown {
|
|
88
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Dropdown, never>;
|
|
89
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Dropdown, "bsc-dropdown", never, {}, {}, never, never, true, never>;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
declare class FileUpload {
|
|
93
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FileUpload, never>;
|
|
94
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FileUpload, "bsc-file-upload", never, {}, {}, never, never, true, never>;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
declare class Footer {
|
|
98
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Footer, never>;
|
|
99
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Footer, "bsc-footer", never, {}, {}, never, never, true, never>;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
declare class FormField {
|
|
103
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FormField, never>;
|
|
104
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FormField, "bsc-form-field", never, {}, {}, never, never, true, never>;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
declare class Header {
|
|
108
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Header, never>;
|
|
109
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Header, "bsc-header", never, {}, {}, never, ["[headerLeft]", "[headerRight]"], true, never>;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
declare class Icon {
|
|
113
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Icon, never>;
|
|
114
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Icon, "bsc-icon", never, {}, {}, never, never, true, never>;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
declare class Input {
|
|
118
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
119
|
+
readonly readonly: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
120
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
121
|
+
readonly size: _angular_core.InputSignal<Size>;
|
|
122
|
+
readonly state: _angular_core.InputSignal<State>;
|
|
123
|
+
readonly type: _angular_core.InputSignal<string>;
|
|
124
|
+
protected readonly inputClasses: _angular_core.Signal<string>;
|
|
125
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Input, never>;
|
|
126
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Input, "bsc-input", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
declare class Label {
|
|
130
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
131
|
+
readonly required: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
132
|
+
readonly size: _angular_core.InputSignal<Size>;
|
|
133
|
+
protected readonly labelClasses: _angular_core.Signal<string>;
|
|
134
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Label, never>;
|
|
135
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Label, "bsc-label", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
declare class Modal {
|
|
139
|
+
readonly closeOnBackdrop: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
140
|
+
readonly closeOnEsc: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
141
|
+
readonly confirmDisabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
142
|
+
readonly closed: _angular_core.OutputEmitterRef<void>;
|
|
143
|
+
readonly confirmed: _angular_core.OutputEmitterRef<void>;
|
|
144
|
+
readonly confirmText: _angular_core.InputSignal<string>;
|
|
145
|
+
readonly open: _angular_core.ModelSignal<boolean>;
|
|
146
|
+
readonly size: _angular_core.InputSignal<Size>;
|
|
147
|
+
readonly title: _angular_core.InputSignal<string>;
|
|
148
|
+
protected readonly panelClasses: _angular_core.Signal<string>;
|
|
149
|
+
protected close(): void;
|
|
150
|
+
protected onBackdropClick(): void;
|
|
151
|
+
protected onConfirm(): void;
|
|
152
|
+
protected onEscKey(): void;
|
|
153
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Modal, never>;
|
|
154
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Modal, "bsc-modal", never, { "closeOnBackdrop": { "alias": "closeOnBackdrop"; "required": false; "isSignal": true; }; "closeOnEsc": { "alias": "closeOnEsc"; "required": false; "isSignal": true; }; "confirmDisabled": { "alias": "confirmDisabled"; "required": false; "isSignal": true; }; "confirmText": { "alias": "confirmText"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; }, { "closed": "closed"; "confirmed": "confirmed"; "open": "openChange"; }, never, ["*", "[modalFooter]"], true, never>;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
declare class Navigation {
|
|
158
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Navigation, never>;
|
|
159
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Navigation, "bsc-navigation", never, {}, {}, never, never, true, never>;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
interface SelectOption {
|
|
163
|
+
value: string;
|
|
164
|
+
label: string;
|
|
165
|
+
}
|
|
166
|
+
declare class Select {
|
|
167
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
168
|
+
readonly multiple: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
169
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
170
|
+
readonly isOpen: _angular_core.WritableSignal<boolean>;
|
|
171
|
+
readonly options: _angular_core.InputSignal<SelectOption[]>;
|
|
172
|
+
readonly size: _angular_core.InputSignal<Size>;
|
|
173
|
+
readonly state: _angular_core.InputSignal<State>;
|
|
174
|
+
readonly value: _angular_core.ModelSignal<string | string[] | null>;
|
|
175
|
+
private readonly el;
|
|
176
|
+
protected readonly displayText: _angular_core.Signal<string>;
|
|
177
|
+
protected readonly triggerClasses: _angular_core.Signal<string>;
|
|
178
|
+
isSelected(option: SelectOption): boolean;
|
|
179
|
+
onDocumentClick(event: MouseEvent): void;
|
|
180
|
+
selectOption(option: SelectOption): void;
|
|
181
|
+
toggle(): void;
|
|
182
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Select, never>;
|
|
183
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Select, "bsc-select", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
declare class Pagination {
|
|
187
|
+
readonly pageSizeOptions: _angular_core.InputSignal<number[]>;
|
|
188
|
+
readonly showPageSize: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
189
|
+
readonly totalItems: _angular_core.InputSignal<number>;
|
|
190
|
+
readonly currentPage: _angular_core.ModelSignal<number>;
|
|
191
|
+
readonly pageSize: _angular_core.ModelSignal<number>;
|
|
192
|
+
protected readonly pageSizeSelectOptions: _angular_core.Signal<SelectOption[]>;
|
|
193
|
+
protected readonly pageSizeValue: _angular_core.Signal<string>;
|
|
194
|
+
protected readonly totalPages: _angular_core.Signal<number>;
|
|
195
|
+
protected readonly visiblePages: _angular_core.Signal<(number | "...")[]>;
|
|
196
|
+
first(): void;
|
|
197
|
+
goToPage(page: number): void;
|
|
198
|
+
last(): void;
|
|
199
|
+
next(): void;
|
|
200
|
+
onPageSizeChange(value: string | string[] | null): void;
|
|
201
|
+
previous(): void;
|
|
202
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Pagination, never>;
|
|
203
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Pagination, "bsc-pagination", never, { "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; "isSignal": true; }; "showPageSize": { "alias": "showPageSize"; "required": false; "isSignal": true; }; "totalItems": { "alias": "totalItems"; "required": false; "isSignal": true; }; "currentPage": { "alias": "currentPage"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; }, { "currentPage": "currentPageChange"; "pageSize": "pageSizeChange"; }, never, never, true, never>;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
type ProgressBarVariant = 'dark' | 'brand' | 'success' | 'danger' | 'warning';
|
|
207
|
+
type ProgressBarLabelPosition = 'none' | 'inside' | 'outside';
|
|
208
|
+
declare class ProgressBar {
|
|
209
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
210
|
+
readonly labelPosition: _angular_core.InputSignal<ProgressBarLabelPosition>;
|
|
211
|
+
readonly size: _angular_core.InputSignal<Size>;
|
|
212
|
+
readonly value: _angular_core.InputSignal<number>;
|
|
213
|
+
readonly variant: _angular_core.InputSignal<ProgressBarVariant>;
|
|
214
|
+
protected readonly barClasses: _angular_core.Signal<string>;
|
|
215
|
+
protected readonly clampedValue: _angular_core.Signal<number>;
|
|
216
|
+
protected readonly barWidth: _angular_core.Signal<string>;
|
|
217
|
+
protected readonly labelClasses: _angular_core.Signal<string>;
|
|
218
|
+
protected readonly trackClasses: _angular_core.Signal<string>;
|
|
219
|
+
protected readonly valueText: _angular_core.Signal<string>;
|
|
220
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProgressBar, never>;
|
|
221
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ProgressBar, "bsc-progress-bar", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "labelPosition": { "alias": "labelPosition"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
declare class Radio {
|
|
225
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
226
|
+
readonly checked: _angular_core.ModelSignal<boolean>;
|
|
227
|
+
readonly name: _angular_core.InputSignal<string>;
|
|
228
|
+
readonly value: _angular_core.InputSignal<string>;
|
|
229
|
+
protected onSelect(): void;
|
|
230
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Radio, never>;
|
|
231
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Radio, "bsc-radio", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; }, never, ["*"], true, never>;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
declare class SearchBar {
|
|
235
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SearchBar, never>;
|
|
236
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SearchBar, "bsc-search-bar", never, {}, {}, never, never, true, never>;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
declare class SidebarService {
|
|
240
|
+
readonly isPinned: _angular_core.WritableSignal<boolean>;
|
|
241
|
+
readonly isVisible: _angular_core.WritableSignal<boolean>;
|
|
242
|
+
private blockShow;
|
|
243
|
+
private hideTimeout;
|
|
244
|
+
private readonly STORAGE_KEY;
|
|
245
|
+
hide(): void;
|
|
246
|
+
show(): void;
|
|
247
|
+
toggle(): void;
|
|
248
|
+
togglePin(): void;
|
|
249
|
+
private clearHideTimeout;
|
|
250
|
+
private loadPinned;
|
|
251
|
+
private savePinned;
|
|
252
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SidebarService, never>;
|
|
253
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<SidebarService>;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
declare class Sidebar {
|
|
257
|
+
readonly hasHeader: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
258
|
+
protected readonly sidebar: SidebarService;
|
|
259
|
+
protected readonly sidebarClasses: _angular_core.Signal<string>;
|
|
260
|
+
protected onMouseEnter(): void;
|
|
261
|
+
protected onMouseLeave(): void;
|
|
262
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Sidebar, never>;
|
|
263
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Sidebar, "bsc-sidebar", never, { "hasHeader": { "alias": "hasHeader"; "required": false; "isSignal": true; }; }, {}, never, ["[sidebarHeader]", "*", "[sidebarFooter]"], true, never>;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
type SkeletonVariant = 'text' | 'circular' | 'rectangular' | 'table';
|
|
267
|
+
declare class Skeleton {
|
|
268
|
+
readonly animated: _angular_core.InputSignal<boolean>;
|
|
269
|
+
readonly columns: _angular_core.InputSignal<number>;
|
|
270
|
+
readonly height: _angular_core.InputSignal<string>;
|
|
271
|
+
readonly lines: _angular_core.InputSignal<number>;
|
|
272
|
+
readonly variant: _angular_core.InputSignal<SkeletonVariant>;
|
|
273
|
+
readonly width: _angular_core.InputSignal<string>;
|
|
274
|
+
protected readonly animClass: _angular_core.Signal<"" | "skeleton-animated">;
|
|
275
|
+
protected readonly columnsArray: _angular_core.Signal<unknown[]>;
|
|
276
|
+
protected readonly linesArray: _angular_core.Signal<unknown[]>;
|
|
277
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Skeleton, never>;
|
|
278
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Skeleton, "bsc-skeleton", never, { "animated": { "alias": "animated"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "lines": { "alias": "lines"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
declare class Spinner {
|
|
282
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Spinner, never>;
|
|
283
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Spinner, "bsc-spinner", never, {}, {}, never, never, true, never>;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
declare class Stepper {
|
|
287
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Stepper, never>;
|
|
288
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Stepper, "bsc-stepper", never, {}, {}, never, never, true, never>;
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
interface TableColumn {
|
|
292
|
+
key: string;
|
|
293
|
+
label: string;
|
|
294
|
+
sortable?: boolean;
|
|
295
|
+
}
|
|
296
|
+
type StripedDirection = 'row' | 'column' | 'none';
|
|
297
|
+
type SortDirection = 'asc' | 'desc' | 'none';
|
|
298
|
+
interface SortState {
|
|
299
|
+
column: string;
|
|
300
|
+
direction: SortDirection;
|
|
301
|
+
}
|
|
302
|
+
declare class Table {
|
|
303
|
+
readonly hover: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
304
|
+
readonly pageSizeOptions: _angular_core.InputSignal<number[]>;
|
|
305
|
+
readonly paginate: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
306
|
+
readonly showPageSize: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
307
|
+
readonly sortable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
308
|
+
readonly tableSearch: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
309
|
+
readonly columns: _angular_core.InputSignal<TableColumn[]>;
|
|
310
|
+
readonly currentPage: _angular_core.WritableSignal<number>;
|
|
311
|
+
readonly data: _angular_core.InputSignal<Record<string, unknown>[]>;
|
|
312
|
+
readonly pageSize: _angular_core.WritableSignal<number>;
|
|
313
|
+
readonly searchTerm: _angular_core.WritableSignal<string>;
|
|
314
|
+
readonly sortState: _angular_core.WritableSignal<SortState>;
|
|
315
|
+
readonly stripedDirection: _angular_core.InputSignal<StripedDirection>;
|
|
316
|
+
protected readonly filteredData: _angular_core.Signal<Record<string, unknown>[]>;
|
|
317
|
+
protected readonly displayData: _angular_core.Signal<Record<string, unknown>[]>;
|
|
318
|
+
protected readonly paginatedData: _angular_core.Signal<Record<string, unknown>[]>;
|
|
319
|
+
protected readonly tableClasses: _angular_core.Signal<string>;
|
|
320
|
+
protected readonly totalItems: _angular_core.Signal<number>;
|
|
321
|
+
getSortDirection(col: TableColumn): SortDirection;
|
|
322
|
+
isColumnSortable(col: TableColumn): boolean;
|
|
323
|
+
onSearchInput(event: Event): void;
|
|
324
|
+
toggleSort(col: TableColumn): void;
|
|
325
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Table, never>;
|
|
326
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Table, "bsc-table", never, { "hover": { "alias": "hover"; "required": false; "isSignal": true; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; "isSignal": true; }; "paginate": { "alias": "paginate"; "required": false; "isSignal": true; }; "showPageSize": { "alias": "showPageSize"; "required": false; "isSignal": true; }; "sortable": { "alias": "sortable"; "required": false; "isSignal": true; }; "tableSearch": { "alias": "tableSearch"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "stripedDirection": { "alias": "stripedDirection"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
declare class Tabs {
|
|
330
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Tabs, never>;
|
|
331
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Tabs, "bsc-tabs", never, {}, {}, never, never, true, never>;
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
declare class Toggle {
|
|
335
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
336
|
+
readonly checked: _angular_core.ModelSignal<boolean>;
|
|
337
|
+
readonly size: _angular_core.InputSignal<Size>;
|
|
338
|
+
protected readonly thumbClasses: _angular_core.Signal<string>;
|
|
339
|
+
protected readonly trackClasses: _angular_core.Signal<string>;
|
|
340
|
+
protected readonly wrapperClasses: _angular_core.Signal<string>;
|
|
341
|
+
protected toggle(): void;
|
|
342
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Toggle, never>;
|
|
343
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Toggle, "bsc-toggle", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; }, never, never, true, never>;
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
declare class Tooltip {
|
|
347
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Tooltip, never>;
|
|
348
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Tooltip, "bsc-tooltip", never, {}, {}, never, never, true, never>;
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
export { Accordion, AccordionItem, Alert, Avatar, Badge, Breadcrumb, Button, Card, Checkbox, DatePicker, Dropdown, FileUpload, Footer, FormField, Header, Icon, Input, Label, Modal, Navigation, Pagination, ProgressBar, Radio, SearchBar, Select, Sidebar, SidebarService, Skeleton, Spinner, Stepper, Table, Tabs, Toggle, Tooltip };
|
|
352
|
+
export type { AlertVariant, ButtonShape, ButtonVariant, CardVariant, ProgressBarLabelPosition, ProgressBarVariant, SelectOption, Size, SkeletonVariant, SortDirection, SortState, State, StripedDirection, TableColumn };
|