@3ddv/software-division-components 2.0.2 → 2.0.4

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.
Files changed (23) hide show
  1. package/fesm2022/3ddv-software-division-components-backoffice-datepicker.mjs +4 -4
  2. package/fesm2022/3ddv-software-division-components-backoffice-datepicker.mjs.map +1 -1
  3. package/fesm2022/3ddv-software-division-components-backoffice-table.mjs +2 -2
  4. package/fesm2022/3ddv-software-division-components-backoffice-table.mjs.map +1 -1
  5. package/fesm2022/3ddv-software-division-components-dvm-legend.mjs +4 -4
  6. package/fesm2022/3ddv-software-division-components-dvm-legend.mjs.map +1 -1
  7. package/fesm2022/3ddv-software-division-components-dvm-popover.mjs.map +1 -1
  8. package/fesm2022/3ddv-software-division-components-generic-button.mjs +4 -2
  9. package/fesm2022/3ddv-software-division-components-generic-button.mjs.map +1 -1
  10. package/fesm2022/3ddv-software-division-components-generic-carousel.mjs +2 -2
  11. package/fesm2022/3ddv-software-division-components-generic-carousel.mjs.map +1 -1
  12. package/fesm2022/3ddv-software-division-components-generic-dialog.mjs +12 -8
  13. package/fesm2022/3ddv-software-division-components-generic-dialog.mjs.map +1 -1
  14. package/fesm2022/3ddv-software-division-components-generic-icon.mjs +28 -5
  15. package/fesm2022/3ddv-software-division-components-generic-icon.mjs.map +1 -1
  16. package/fesm2022/3ddv-software-division-components-generic-select.mjs +31 -11
  17. package/fesm2022/3ddv-software-division-components-generic-select.mjs.map +1 -1
  18. package/package.json +1 -1
  19. package/styles.css +1 -1
  20. package/types/3ddv-software-division-components-generic-button.d.ts +3 -1
  21. package/types/3ddv-software-division-components-generic-dialog.d.ts +6 -2
  22. package/types/3ddv-software-division-components-generic-icon.d.ts +10 -1
  23. package/types/3ddv-software-division-components-generic-select.d.ts +3 -2
@@ -1 +1 @@
1
- {"version":3,"file":"3ddv-software-division-components-backoffice-table.mjs","sources":["../../backoffice/table/_components/pagination/pagination.component.ts","../../backoffice/table/_components/pagination/pagination.component.html","../../backoffice/table/_components/selection-table-head/selection-table-head.component.ts","../../backoffice/table/_components/selection-table-head/selection-table-head.component.html","../../backoffice/table/_components/selection-table-row/selection-table-row.component.ts","../../backoffice/table/_components/selection-table-row/selection-table-row.component.html","../../backoffice/table/_components/sort-header-button/sort-header-button.component.ts","../../backoffice/table/_components/sort-header-button/sort-header-button.component.html","../../backoffice/table/ui/ui-table-helm/src/lib/hlm-table.ts","../../backoffice/table/ui/ui-table-helm/src/index.ts","../../backoffice/table/table.component.ts","../../backoffice/table/table.component.html","../../backoffice/table/public-api.ts","../../backoffice/table/3ddv-software-division-components-backoffice-table.ts"],"sourcesContent":["import { ButtonComponent } from '@3ddv/software-division-components/generic/button';\nimport { HlmIconModule } from '@3ddv/software-division-components/generic/icon';\nimport { ThemeClass } from '@3ddv/software-division-components/shared';\nimport { Component, input, output } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronLeft, lucideChevronRight } from '@ng-icons/lucide';\nimport { Table } from '@tanstack/angular-table';\n\n@Component({\n selector: 'sdc-pagination',\n imports: [NgIcon, HlmIconModule, ButtonComponent],\n providers: [provideIcons({ lucideChevronLeft, lucideChevronRight })],\n templateUrl: './pagination.component.html',\n styleUrl: './pagination.component.css',\n})\nexport class PaginationComponent {\n public readonly table = input.required<Table<any>>();\n public readonly maxVisiblePages = input<number>(7);\n public readonly showFirstLastButtons = input<boolean>(false);\n public readonly theme = input.required<ThemeClass>();\n public readonly exportButtonText = input<string>('Export');\n public readonly exportClick = output<{ selectedRows: any[]; allRows: any[] }>();\n\n protected getVisiblePageNumbers(): number[] {\n const currentPage = this.table().getState().pagination.pageIndex;\n const totalPages = this.table().getPageCount();\n const maxVisible = this.maxVisiblePages();\n\n if (totalPages <= maxVisible) {\n // If total pages is less than or equal to maxVisible, show all pages\n return Array.from({ length: totalPages }, (_, i) => i);\n }\n\n // Calculate the sliding window of pages to show\n const pages: number[] = [];\n\n // Calculate the center position for the window\n const centerPosition = Math.floor(maxVisible / 2);\n\n // Calculate the start page of the window\n let startPage = Math.max(0, currentPage - centerPosition);\n\n // Adjust start page if we're near the end\n if (startPage + maxVisible > totalPages) {\n startPage = Math.max(0, totalPages - maxVisible);\n }\n\n // Generate the page numbers for the window\n for (let i = 0; i < maxVisible; i++) {\n pages.push(startPage + i);\n }\n\n return pages;\n }\n\n protected onExportClick() {\n const tableState = this.table().getState();\n const selectedRows = tableState.rowSelection;\n const allRows = this.table()\n .getRowModel()\n .rows.map(row => row.original);\n\n // Get the actual selected row data\n const selectedRowData = Object.keys(selectedRows)\n .filter(key => selectedRows[key])\n .map(rowId => {\n const row = this.table()\n .getRowModel()\n .rows.find(r => r.id === rowId);\n return row ? row.original : null;\n })\n .filter(Boolean);\n\n this.exportClick.emit({\n selectedRows: selectedRowData,\n allRows: allRows,\n });\n }\n}\n","<div class=\"pagination\" [class]=\"theme()\">\n <!-- Pagination Controls -->\n <div class=\"pagination-controls\">\n <!-- First Page Button (conditional) -->\n @if (showFirstLastButtons()) {\n <button\n class=\"pagination-button first-page\"\n [disabled]=\"!table().getCanPreviousPage()\"\n (click)=\"table().setPageIndex(0)\">\n 1\n </button>\n }\n\n @if (table().getRowCount() > 0) {\n <!-- Previous Page Button -->\n <button class=\"pagination-button\" [disabled]=\"!table().getCanPreviousPage()\" (click)=\"table().previousPage()\">\n <ng-icon hlm name=\"lucideChevronLeft\" size=\"base\" />\n </button>\n\n <!-- Page Numbers -->\n @for (pageIndex of getVisiblePageNumbers(); track pageIndex) {\n <button\n class=\"pagination-button\"\n [class.active]=\"pageIndex === table().getState().pagination.pageIndex\"\n (click)=\"table().setPageIndex(pageIndex)\">\n {{ pageIndex + 1 }}\n </button>\n }\n\n <!-- Next Page Button -->\n <button class=\"pagination-button\" [disabled]=\"!table().getCanNextPage()\" (click)=\"table().nextPage()\">\n <ng-icon hlm name=\"lucideChevronRight\" size=\"base\" />\n </button>\n\n <!-- Last Page Button (conditional) -->\n @if (showFirstLastButtons()) {\n <button\n class=\"pagination-button last-page\"\n [disabled]=\"!table().getCanNextPage()\"\n (click)=\"table().setPageIndex(table().getPageCount() - 1)\">\n {{ table().getPageCount() }}\n </button>\n }\n } @else {\n <div class=\"no-data-container\">\n <div class=\"no-data-text\">No Data</div>\n </div>\n }\n </div>\n\n <!-- Added Export button to match the design -->\n <div class=\"export-button\">\n <sdc-button (click)=\"onExportClick()\">{{ exportButtonText() }}</sdc-button>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { type HeaderContext, injectFlexRenderContext } from '@tanstack/angular-table';\n\n@Component({\n templateUrl: './selection-table-head.component.html',\n styleUrl: './selection-table-head.component.css',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SelectionTableHeadComponent<T> {\n context = injectFlexRenderContext<HeaderContext<T, unknown>>();\n\n getIsAllVisibleRowsSelected(): boolean {\n const visibleRows = this.context.table.getRowModel().rows;\n return visibleRows.length > 0 && visibleRows.every(row => row.getIsSelected());\n }\n\n getIsSomeVisibleRowsSelected(): boolean {\n const visibleRows = this.context.table.getRowModel().rows;\n const selectedCount = visibleRows.filter(row => row.getIsSelected()).length;\n return selectedCount > 0 && selectedCount < visibleRows.length;\n }\n\n toggleAllVisibleRowsSelected(): void {\n const visibleRows = this.context.table.getRowModel().rows;\n const allSelected = this.getIsAllVisibleRowsSelected();\n\n visibleRows.forEach(row => {\n if (allSelected) {\n row.toggleSelected(false);\n } else {\n row.toggleSelected(true);\n }\n });\n }\n}\n","<input\n class=\"block px-1 selection-header\"\n type=\"checkbox\"\n [checked]=\"getIsAllVisibleRowsSelected()\"\n [indeterminate]=\"getIsSomeVisibleRowsSelected()\"\n (change)=\"toggleAllVisibleRowsSelected()\" />\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { type CellContext, injectFlexRenderContext } from '@tanstack/angular-table';\n\n@Component({\n templateUrl: './selection-table-row.component.html',\n styleUrl: './selection-table-row.component.css',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SelectionTableRowComponent<T> {\n context = injectFlexRenderContext<CellContext<T, unknown>>();\n}\n","<input\n class=\"block px-1\"\n type=\"checkbox\"\n [checked]=\"context.row.getIsSelected()\"\n (change)=\"context.row.getToggleSelectedHandler()($event)\" />\n","import { ButtonComponent } from '@3ddv/software-division-components/generic/button';\nimport { HlmIconModule } from '@3ddv/software-division-components/generic/icon';\nimport { Component, input, output, signal } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideArrowDown, lucideArrowUp, lucideArrowUpDown } from '@ng-icons/lucide';\n\n@Component({\n selector: 'sdc-table-head-sort-button',\n imports: [NgIcon, ButtonComponent, HlmIconModule],\n providers: [provideIcons({ lucideArrowUpDown, lucideArrowUp, lucideArrowDown })],\n templateUrl: './sort-header-button.component.html',\n styleUrl: './sort-header-button.component.css',\n})\nexport class SortTableHeadButtonComponent {\n public readonly isSorted = input<boolean>(false);\n public readonly columnName = input.required<string>();\n public readonly sortDirection = input.required<'asc' | 'desc' | false>();\n public readonly enableSorting = input<boolean>(false);\n\n public readonly sortClick = output<void>();\n\n protected isHovered = signal(false);\n\n protected onSortClick() {\n if (this.enableSorting()) {\n this.sortClick.emit();\n }\n }\n\n protected onMouseEnter() {\n if (this.enableSorting()) {\n this.isHovered.set(true);\n }\n }\n\n protected onMouseLeave() {\n if (this.enableSorting()) {\n this.isHovered.set(false);\n }\n }\n\n protected iconName() {\n // Show active sort arrow when sorted\n if (this.isSorted()) {\n return this.sortDirection() === 'asc' ? 'lucideArrowDown' : 'lucideArrowUp';\n }\n\n if (this.isHovered()) {\n return 'lucideArrowUpDown';\n }\n\n // No icon when not sorted and not hovering\n return '';\n }\n}\n","<button class=\"sort-button\" (click)=\"onSortClick()\" (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\">\n <span class=\"capitalize\">\n {{ columnName() }}\n </span>\n <span class=\"sort-icon\">\n <!-- Sort Icon -->\n @if (enableSorting() && iconName()) {\n <ng-icon hlm size=\"sm\" [name]=\"iconName()\" aria-hidden=\"true\" />\n }\n </span>\n</button>\n","// src/app/directives/hlm-table-directives.ts\nimport { computed, Directive, inject, InjectionToken, input, ValueProvider } from '@angular/core';\nimport { hlm } from '@spartan-ng/brain/core';\nimport type { ClassValue } from 'clsx';\n\n// Configuration Interface and InjectionToken\nexport const HlmTableConfigToken = new InjectionToken<HlmTableVariant>('HlmTableConfig');\nexport interface HlmTableVariant {\n\ttable: string;\n\tthead: string;\n\ttbody: string;\n\ttfoot: string;\n\ttr: string;\n\tth: string;\n\ttd: string;\n\tcaption: string;\n}\n\nexport const HlmTableVariantDefault: HlmTableVariant = {\n\ttable: 'w-full caption-bottom text-sm',\n\tthead: '[&_tr]:border-b',\n\ttbody: '[&_tr:last-child]:border-0',\n\ttfoot: 'bg-muted/50 border-t font-medium [&>tr]:last:border-b-0',\n\ttr: 'hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors',\n\tth: 'text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]',\n\ttd: 'p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]',\n\tcaption: 'text-muted-foreground mt-4 text-sm',\n};\n\nexport function provideHlmTableConfig(config: Partial<HlmTableVariant>): ValueProvider {\n\treturn {\n\t\tprovide: HlmTableConfigToken,\n\t\tuseValue: { ...HlmTableVariantDefault, ...config },\n\t};\n}\n\nexport function injectHlmTableConfig(): HlmTableVariant {\n\treturn inject(HlmTableConfigToken, { optional: true }) ?? HlmTableVariantDefault;\n}\n\n/**\n * Directive to apply Shadcn-like styling to a <table> element.\n * It resolves and provides base classes for its child table elements.\n * If a table has the `hlmTable` attribute, it will be styled with the provided variant.\n * The other table elements will check if a parent table has the `hlmTable` attribute and will be styled accordingly.\n */\n@Directive({\n\tselector: 'table[hlmTable]',\n\tstandalone: true,\n\thost: {\n\t\t'[class]': '_computedClass()',\n\t},\n})\nexport class HlmTable {\n\t/** Input to configure the variant of the table, this input has the highest priority. */\n\tpublic readonly userVariant = input<Partial<HlmTableVariant> | string>({}, { alias: 'hlmTable' });\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n\t/** Global or default configuration provided by injectHlmTableConfig() */\n\tprivate readonly _globalOrDefaultConfig = injectHlmTableConfig();\n\n\t// Protected variant that resolves user input to a full HlmTableVariant\n\tprotected readonly _variant = computed<HlmTableVariant>(() => {\n\t\tconst globalOrDefaultConfig = this._globalOrDefaultConfig;\n\t\tconst localInputConfig = this.userVariant();\n\n\t\t// Priority 1: Local input object\n\t\tif (typeof localInputConfig === 'object' && localInputConfig !== null && Object.keys(localInputConfig).length > 0) {\n\t\t\t// Merge local input with the baseline provided by injectHlmTableConfig()\n\t\t\t// This ensures that properties not in localInputConfig still fall back to global/default values.\n\t\t\treturn { ...globalOrDefaultConfig, ...localInputConfig };\n\t\t}\n\t\t// If localInputConfig is not a non-empty object (e.g., it's undefined, an empty object, or a string),\n\t\t// then the globalOrDefaultConfig (which is already the result of injected OR default) is used.\n\t\treturn globalOrDefaultConfig;\n\t});\n\n\t// Computed class for the host <table> element\n\tprotected readonly _computedClass = computed(() => hlm(this._variant().table, this.userClass()));\n}\n\n/**\n * Directive to apply Shadcn-like styling to a <thead> element\n * within an HlmTableDirective context.\n */\n@Directive({\n\tselector: 'thead[hlmTHead]',\n\tstandalone: true,\n\thost: {\n\t\t'[class]': '_computedClass()',\n\t},\n})\nexport class HlmTHead {\n\tprivate readonly _globalOrDefaultConfig = injectHlmTableConfig();\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n\tprotected readonly _computedClass = computed(() =>\n\t\thlm(this._globalOrDefaultConfig ? this._globalOrDefaultConfig.thead.trim() : '', this.userClass()),\n\t);\n}\n\n/**\n * Directive to apply Shadcn-like styling to a <tbody> element\n * within an HlmTableDirective context.\n */\n@Directive({\n\tselector: 'tbody[hlmTBody]',\n\tstandalone: true,\n\thost: {\n\t\t'[class]': '_computedClass()',\n\t},\n})\nexport class HlmTBody {\n\tprivate readonly _globalOrDefaultConfig = injectHlmTableConfig();\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n\tprotected readonly _computedClass = computed(() =>\n\t\thlm(this._globalOrDefaultConfig ? this._globalOrDefaultConfig.tbody.trim() : '', this.userClass()),\n\t);\n}\n\n/**\n * Directive to apply Shadcn-like styling to a <tfoot> element\n * within an HlmTableDirective context.\n */\n@Directive({\n\tselector: 'tfoot[hlmTFoot]',\n\tstandalone: true,\n\thost: {\n\t\t'[class]': '_computedClass()',\n\t},\n})\nexport class HlmTFoot {\n\tprivate readonly _globalOrDefaultConfig = injectHlmTableConfig();\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n\tprotected readonly _computedClass = computed(() =>\n\t\thlm(this._globalOrDefaultConfig ? this._globalOrDefaultConfig.tfoot.trim() : '', this.userClass()),\n\t);\n}\n\n/**\n * Directive to apply Shadcn-like styling to a <tr> element\n * within an HlmTableDirective context.\n */\n@Directive({\n\tselector: 'tr[hlmTr]',\n\tstandalone: true,\n\thost: {\n\t\t'[class]': '_computedClass()',\n\t},\n})\nexport class HlmTr {\n\tprivate readonly _globalOrDefaultConfig = injectHlmTableConfig();\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n\tprotected readonly _computedClass = computed(() =>\n\t\thlm(this._globalOrDefaultConfig ? this._globalOrDefaultConfig.tr.trim() : '', this.userClass()),\n\t);\n}\n\n/**\n * Directive to apply Shadcn-like styling to a <th> element\n * within an HlmTableDirective context.\n */\n@Directive({\n\tselector: 'th[hlmTh]',\n\tstandalone: true,\n\thost: {\n\t\t'[class]': '_computedClass()',\n\t},\n})\nexport class HlmTh {\n\tprivate readonly _globalOrDefaultConfig = injectHlmTableConfig();\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n\tprotected readonly _computedClass = computed(() =>\n\t\thlm(this._globalOrDefaultConfig ? this._globalOrDefaultConfig.th.trim() : '', this.userClass()),\n\t);\n}\n\n/**\n * Directive to apply Shadcn-like styling to a <td> element\n * within an HlmTableDirective context.\n */\n@Directive({\n\tselector: 'td[hlmTd]',\n\tstandalone: true,\n\thost: {\n\t\t'[class]': '_computedClass()',\n\t},\n})\nexport class HlmTd {\n\tprivate readonly _globalOrDefaultConfig = injectHlmTableConfig();\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n\tprotected readonly _computedClass = computed(() =>\n\t\thlm(this._globalOrDefaultConfig ? this._globalOrDefaultConfig.td.trim() : '', this.userClass()),\n\t);\n}\n\n/**\n * Directive to apply Shadcn-like styling to a <caption> element\n * within an HlmTableDirective context.\n */\n@Directive({\n\tselector: 'caption[hlmCaption]',\n\tstandalone: true,\n\thost: {\n\t\t'[class]': '_computedClass()',\n\t},\n})\nexport class HlmCaption {\n\tprivate readonly _globalOrDefaultConfig = injectHlmTableConfig();\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n\tprotected readonly _computedClass = computed(() =>\n\t\thlm(this._globalOrDefaultConfig ? this._globalOrDefaultConfig.caption.trim() : '', this.userClass()),\n\t);\n}\n","import { NgModule } from '@angular/core';\n\nimport { HlmCaption, HlmTable, HlmTBody, HlmTd, HlmTFoot, HlmTh, HlmTHead, HlmTr } from './lib/hlm-table';\n\nexport * from './lib/hlm-table';\n\nexport const HlmTableImports = [HlmCaption, HlmTable, HlmTBody, HlmTd, HlmTFoot, HlmTh, HlmTHead, HlmTr] as const;\n\n@NgModule({\n\timports: [...HlmTableImports],\n\texports: [...HlmTableImports],\n})\nexport class HlmTableModule {}\n","import { ThemeClass } from '@3ddv/software-division-components/shared';\nimport { Component, computed, effect, input, OnDestroy, output, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { provideIcons } from '@ng-icons/core';\nimport { lucideChevronDown, lucideChevronLeft, lucideChevronRight } from '@ng-icons/lucide';\nimport {\n ColumnDef,\n createAngularTable,\n flexRenderComponent,\n FlexRenderDirective,\n getCoreRowModel,\n getPaginationRowModel,\n PaginationState,\n RowSelectionState,\n SortingState,\n} from '@tanstack/angular-table';\nimport { PaginationComponent } from './_components/pagination/pagination.component';\nimport { SelectionTableHeadComponent } from './_components/selection-table-head/selection-table-head.component';\nimport { SelectionTableRowComponent } from './_components/selection-table-row/selection-table-row.component';\nimport { SortTableHeadButtonComponent } from './_components/sort-header-button/sort-header-button.component';\nimport { HlmTableImports } from './ui/ui-table-helm/src';\n\nexport type TableStyleClasses = ReturnType<(typeof TableComponent.prototype)['styleClass']>;\n@Component({\n selector: 'sdc-table',\n imports: [FormsModule, FlexRenderDirective, PaginationComponent, ...HlmTableImports],\n providers: [provideIcons({ lucideChevronDown, lucideChevronLeft, lucideChevronRight })],\n templateUrl: './table.component.html',\n styleUrl: './table.component.css',\n})\nexport class TableComponent<T extends Record<string, any>> implements OnDestroy {\n private readonly allowedVariants = ['full-table', 'minimal-table'] as const;\n\n /**\n * The data to display in the table.\n */\n public readonly data = input<T[]>([]);\n\n /**\n * The columns to display in the table.\n */\n public readonly columns = input<ColumnDef<T>[]>([]);\n\n /**\n * Whether to show the selection column.\n */\n public readonly showSelection = input<boolean>(false);\n\n /**\n * Whether to enable sorting for the table.\n */\n public readonly enableSort = input<boolean | string[]>(false);\n\n /**\n * The maximum number of pages to display in the pagination.\n */\n public readonly maxVisiblePages = input<number>(3);\n\n /**\n * The page size for the table pagination.\n */\n public readonly pageSize = input<number>(10);\n\n /**\n * The initial page index for the table pagination.\n */\n public readonly initialPageIndex = input<number>(0);\n\n /**\n * Whether to show the first and last buttons in the pagination.\n */\n public readonly showFirstLastButtons = input<boolean>(true);\n\n /**\n * The current theme applied to the component.\n */\n public readonly theme = input<ThemeClass>('theme-sdc');\n\n /**\n * Predefined styles to apply to the component.\n * Can be a single class or multiple classes from different categories.\n */\n public readonly styleClass = input<(typeof this.allowedVariants)[number][]>([this.allowedVariants[0]]);\n\n // Computed signal that validates and filters the styleClass input\n private readonly _validatedStyleClass = computed(() => {\n const value = this.styleClass();\n\n if (!Array.isArray(value)) {\n console.warn('TableComponent: styleClass must be an array, defaulting to empty array');\n return [];\n }\n\n const validValues = value.filter(style => this.allowedVariants.includes(style));\n const invalidValues = value.filter(style => !this.allowedVariants.includes(style));\n\n if (invalidValues.length > 0) {\n throw new Error(\n `TableComponent: Invalid styleClass values ignored: ${invalidValues.join(', ')}. Allowed values: ${this.allowedVariants.join(', ')}`\n );\n }\n\n return validValues;\n });\n\n /**\n * Additional CSS classes to apply to the component.\n */\n public readonly className = input<string>('');\n\n /**\n * The text to display in the export button.\n */\n public readonly exportButtonText = input<string>('Export');\n\n /**\n * Event emitted when the export button is clicked.\n * Includes selected rows and all rows for export functionality.\n */\n public readonly exportClick = output<{ selectedRows: T[]; allRows: T[] }>();\n\n /**\n * Event emitted when the sorting state changes.\n */\n public readonly sortingChange = output<SortingState>();\n\n /**\n * Event emitted when the selection state changes.\n */\n public readonly selectionChange = output<RowSelectionState>();\n\n /**\n * Whether to pin/freeze the table headers so they remain visible during vertical scrolling.\n * When enabled, headers will stay at the top of the viewport while scrolling through table data.\n */\n public readonly pinningHeaders = input<boolean>(false);\n\n /**\n * Whether to show the pagination controls at the bottom of the table.\n * When disabled, all rows will be displayed without pagination.\n */\n public readonly showPagination = input<boolean>(true);\n\n /**\n * Event emitted when the pagination state changes.\n */\n public readonly paginationChange = output<PaginationState>();\n\n /**\n * Computed class string that combines theme and user classes.\n */\n protected readonly computedClass = computed(() => {\n const themeClass = this.theme();\n const styleClass = this._validatedStyleClass();\n const className = this.className();\n const pinningHeadersClass = this.pinningHeaders() ? 'pinning-headers' : '';\n return ['sdc-table', themeClass, ...styleClass, pinningHeadersClass, className].filter(Boolean).join(' ');\n });\n\n protected _handleSortClick(columnId: string) {\n const currentSort = this._sorting();\n const currentColumnSort = currentSort.find(sort => sort.id === columnId);\n\n let newSort: SortingState = [];\n\n if (!currentColumnSort) {\n // First click: sort asc\n newSort = [{ id: columnId, desc: false }];\n } else if (!currentColumnSort.desc) {\n // Second click: sort desc\n newSort = [{ id: columnId, desc: true }];\n } else {\n // Third click: remove sort\n newSort = [];\n }\n\n this._sorting.set(newSort);\n this.sortingChange.emit(newSort);\n }\n\n protected _getSortDirection(columnId: string): 'asc' | 'desc' | false {\n const currentSort = this._sorting();\n const columnSort = currentSort.find(sort => sort.id === columnId);\n\n if (!columnSort) {\n return false;\n }\n\n return columnSort.desc ? 'desc' : 'asc';\n }\n\n protected _isColumnSorted(columnId: string): boolean {\n const currentSort = this._sorting();\n return currentSort.some(sort => sort.id === columnId);\n }\n\n protected _isSortEnabled(columnId: string): boolean {\n const sortConfig = this.enableSort();\n\n if (typeof sortConfig === 'boolean') {\n return sortConfig;\n }\n\n if (Array.isArray(sortConfig)) {\n return sortConfig.includes(columnId);\n }\n\n return false;\n }\n\n protected _createSortableHeader(column: ColumnDef<T>, columnId: string) {\n return flexRenderComponent(SortTableHeadButtonComponent, {\n inputs: {\n columnName: columnId,\n isSorted: this._isColumnSorted(columnId),\n sortDirection: this._getSortDirection(columnId),\n enableSorting: this._isSortEnabled(columnId),\n },\n outputs: {\n sortClick: () => this._handleSortClick(columnId),\n },\n });\n }\n\n protected _processColumns(): ColumnDef<T>[] {\n const baseColumns = this.columns() || [];\n const processedColumns: ColumnDef<T>[] = [];\n\n // Add selection column if enabled\n if (this.showSelection()) {\n processedColumns.push({\n accessorKey: 'select',\n id: 'select',\n header: () => flexRenderComponent(SelectionTableHeadComponent),\n cell: () => flexRenderComponent(SelectionTableRowComponent),\n enableSorting: false,\n enableHiding: false,\n });\n }\n\n // Process each column\n baseColumns.forEach(column => {\n const processedColumn = { ...column };\n\n // If sorting is enabled for this column, wrap the header with sort functionality\n if (this._isSortEnabled(column.id || '')) {\n processedColumn.header = context => this._createSortableHeader(column, context.column.id);\n }\n\n // Ensure sorting is disabled for client-side (we only support server-side sorting)\n processedColumn.enableSorting = false;\n\n processedColumns.push(processedColumn);\n });\n\n return processedColumns;\n }\n\n private readonly _sorting = signal<SortingState>([]);\n private readonly _rowSelection = signal<RowSelectionState>({});\n private readonly _pagination = signal<PaginationState>({\n pageSize: this.pageSize(),\n pageIndex: this.initialPageIndex(),\n });\n\n // Effect to sync input changes to the pagination signal\n // Only runs when pagination is enabled\n private readonly _paginationEffect = effect(() => {\n // Only update pagination when it's enabled\n if (!this.showPagination()) {\n return;\n }\n\n const newPageSize = this.pageSize();\n const newPageIndex = this.initialPageIndex();\n\n this._pagination.update(current => ({\n ...current,\n pageSize: newPageSize,\n pageIndex: newPageIndex,\n }));\n });\n\n public ngOnDestroy(): void {\n // Cleans up the pagination effect to prevent memory leaks.\n if (this._paginationEffect) {\n this._paginationEffect.destroy();\n }\n }\n\n private readonly _table = createAngularTable<T>(() => ({\n data: this.data(),\n columns: this._processColumns(),\n state: {\n sorting: this._sorting(),\n rowSelection: this._rowSelection(),\n // Only include pagination state when pagination is enabled\n ...(this.showPagination() && { pagination: this._pagination() }),\n },\n onSortingChange: updater => {\n updater instanceof Function ? this._sorting.update(updater) : this._sorting.set(updater);\n this.sortingChange.emit(this._sorting());\n },\n onRowSelectionChange: updater => {\n updater instanceof Function ? this._rowSelection.update(updater) : this._rowSelection.set(updater);\n this.selectionChange.emit(this._rowSelection());\n },\n // Only include pagination change handler when pagination is enabled\n ...(this.showPagination() && {\n onPaginationChange: updater => {\n updater instanceof Function ? this._pagination.update(updater) : this._pagination.set(updater);\n this.paginationChange.emit(this._pagination());\n },\n }),\n getCoreRowModel: getCoreRowModel(),\n // Only include pagination row model when pagination is enabled\n ...(this.showPagination() && { getPaginationRowModel: getPaginationRowModel() }),\n enableRowSelection: this.showSelection(),\n initialState: {\n // Only include pagination initial state when pagination is enabled\n ...(this.showPagination() && { pagination: this._pagination() }),\n },\n }));\n\n // Public getters for template access\n public get headerGroups() {\n return this._table.getHeaderGroups();\n }\n\n public get rows() {\n return this._table.getRowModel().rows;\n }\n\n public get paginatedRows() {\n if (this.showPagination()) {\n return this._table.getPaginationRowModel().rows;\n } else {\n // When pagination is disabled, return all rows from the core row model\n return this._table.getRowModel().rows;\n }\n }\n\n // Public getter for pagination component\n public get tableForPagination() {\n return this._table as any;\n }\n}\n","<div [class]=\"computedClass()\">\n <div class=\"table-container\">\n <!-- we defer the loading of the table, because tanstack manipulates the DOM with flexRender which can cause errors during SSR -->\n @defer {\n <table hlmTable>\n <thead hlmTHead class=\"sdc-table-header\">\n @for (headerGroup of tableForPagination.getHeaderGroups(); track headerGroup.id) {\n <tr hlmTr>\n @for (header of headerGroup.headers; track header.id) {\n <th hlmTh [attr.colSpan]=\"header.colSpan\">\n @if (!header.isPlaceholder) {\n <ng-container\n *flexRender=\"header.column.columnDef.header; props: header.getContext(); let headerText\">\n <div [innerHTML]=\"headerText\"></div>\n </ng-container>\n }\n </th>\n }\n </tr>\n }\n </thead>\n <tbody hlmTBody class=\"sdc-table-body w-full\">\n @for (row of paginatedRows; track row.id) {\n <tr hlmTr [attr.key]=\"row.id\" [attr.data-state]=\"row.getIsSelected() && 'selected'\">\n @for (cell of row.getVisibleCells(); track $index) {\n <td hlmTd>\n <ng-container *flexRender=\"cell.column.columnDef.cell; props: cell.getContext(); let cell\">\n <div [innerHTML]=\"cell\"></div>\n </ng-container>\n </td>\n }\n </tr>\n } @empty {\n <tr hlmTr>\n <td hlmTd class=\"h-24 text-center\" [attr.colspan]=\"_processColumns().length\">No results.</td>\n </tr>\n }\n </tbody>\n </table>\n }\n </div>\n</div>\n\n<!-- Pagination Component -->\n@if (showPagination()) {\n <sdc-pagination\n [theme]=\"theme()\"\n [table]=\"tableForPagination\"\n [maxVisiblePages]=\"maxVisiblePages()\"\n [showFirstLastButtons]=\"showFirstLastButtons()\"\n [exportButtonText]=\"exportButtonText()\"\n (exportClick)=\"exportClick.emit($event)\"></sdc-pagination>\n}\n","// Export the main table component\nexport * from './table.component';\n\n// Re-export TanStack Table utilities used by consumers\nexport { flexRenderComponent } from '@tanstack/angular-table';\nexport type { ColumnDef, RowSelectionState, SortingState } from '@tanstack/angular-table';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.HlmTable","i1.HlmTBody","i1.HlmTd","i1.HlmTh","i1.HlmTHead","i1.HlmTr"],"mappings":"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"}
1
+ {"version":3,"file":"3ddv-software-division-components-backoffice-table.mjs","sources":["../../backoffice/table/_components/pagination/pagination.component.ts","../../backoffice/table/_components/pagination/pagination.component.html","../../backoffice/table/_components/selection-table-head/selection-table-head.component.ts","../../backoffice/table/_components/selection-table-head/selection-table-head.component.html","../../backoffice/table/_components/selection-table-row/selection-table-row.component.ts","../../backoffice/table/_components/selection-table-row/selection-table-row.component.html","../../backoffice/table/_components/sort-header-button/sort-header-button.component.ts","../../backoffice/table/_components/sort-header-button/sort-header-button.component.html","../../backoffice/table/ui/ui-table-helm/src/lib/hlm-table.ts","../../backoffice/table/ui/ui-table-helm/src/index.ts","../../backoffice/table/table.component.ts","../../backoffice/table/table.component.html","../../backoffice/table/public-api.ts","../../backoffice/table/3ddv-software-division-components-backoffice-table.ts"],"sourcesContent":["import { ButtonComponent } from '@3ddv/software-division-components/generic/button';\nimport { HlmIconModule } from '@3ddv/software-division-components/generic/icon';\nimport { ThemeClass } from '@3ddv/software-division-components/shared';\nimport { Component, input, output } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronLeft, lucideChevronRight } from '@ng-icons/lucide';\nimport { Table } from '@tanstack/angular-table';\n\n@Component({\n selector: 'sdc-pagination',\n imports: [NgIcon, HlmIconModule, ButtonComponent],\n providers: [provideIcons({ lucideChevronLeft, lucideChevronRight })],\n templateUrl: './pagination.component.html',\n styleUrl: './pagination.component.css',\n})\nexport class PaginationComponent {\n public readonly table = input.required<Table<any>>();\n public readonly maxVisiblePages = input<number>(7);\n public readonly showFirstLastButtons = input<boolean>(false);\n public readonly theme = input.required<ThemeClass>();\n public readonly exportButtonText = input<string>('Export');\n public readonly exportClick = output<{ selectedRows: any[]; allRows: any[] }>();\n\n protected getVisiblePageNumbers(): number[] {\n const currentPage = this.table().getState().pagination.pageIndex;\n const totalPages = this.table().getPageCount();\n const maxVisible = this.maxVisiblePages();\n\n if (totalPages <= maxVisible) {\n // If total pages is less than or equal to maxVisible, show all pages\n return Array.from({ length: totalPages }, (_, i) => i);\n }\n\n // Calculate the sliding window of pages to show\n const pages: number[] = [];\n\n // Calculate the center position for the window\n const centerPosition = Math.floor(maxVisible / 2);\n\n // Calculate the start page of the window\n let startPage = Math.max(0, currentPage - centerPosition);\n\n // Adjust start page if we're near the end\n if (startPage + maxVisible > totalPages) {\n startPage = Math.max(0, totalPages - maxVisible);\n }\n\n // Generate the page numbers for the window\n for (let i = 0; i < maxVisible; i++) {\n pages.push(startPage + i);\n }\n\n return pages;\n }\n\n protected onExportClick() {\n const tableState = this.table().getState();\n const selectedRows = tableState.rowSelection;\n const allRows = this.table()\n .getRowModel()\n .rows.map(row => row.original);\n\n // Get the actual selected row data\n const selectedRowData = Object.keys(selectedRows)\n .filter(key => selectedRows[key])\n .map(rowId => {\n const row = this.table()\n .getRowModel()\n .rows.find(r => r.id === rowId);\n return row ? row.original : null;\n })\n .filter(Boolean);\n\n this.exportClick.emit({\n selectedRows: selectedRowData,\n allRows: allRows,\n });\n }\n}\n","<div class=\"pagination\" [class]=\"theme()\">\n <!-- Pagination Controls -->\n <div class=\"pagination-controls\">\n <!-- First Page Button (conditional) -->\n @if (showFirstLastButtons()) {\n <button\n class=\"pagination-button first-page\"\n [disabled]=\"!table().getCanPreviousPage()\"\n (click)=\"table().setPageIndex(0)\">\n 1\n </button>\n }\n\n @if (table().getRowCount() > 0) {\n <!-- Previous Page Button -->\n <button class=\"pagination-button\" [disabled]=\"!table().getCanPreviousPage()\" (click)=\"table().previousPage()\">\n <ng-icon hlm name=\"lucideChevronLeft\" size=\"base\" />\n </button>\n\n <!-- Page Numbers -->\n @for (pageIndex of getVisiblePageNumbers(); track pageIndex) {\n <button\n class=\"pagination-button\"\n [class.active]=\"pageIndex === table().getState().pagination.pageIndex\"\n (click)=\"table().setPageIndex(pageIndex)\">\n {{ pageIndex + 1 }}\n </button>\n }\n\n <!-- Next Page Button -->\n <button class=\"pagination-button\" [disabled]=\"!table().getCanNextPage()\" (click)=\"table().nextPage()\">\n <ng-icon hlm name=\"lucideChevronRight\" size=\"base\" />\n </button>\n\n <!-- Last Page Button (conditional) -->\n @if (showFirstLastButtons()) {\n <button\n class=\"pagination-button last-page\"\n [disabled]=\"!table().getCanNextPage()\"\n (click)=\"table().setPageIndex(table().getPageCount() - 1)\">\n {{ table().getPageCount() }}\n </button>\n }\n } @else {\n <div class=\"no-data-container\">\n <div class=\"no-data-text\">No Data</div>\n </div>\n }\n </div>\n\n <!-- Added Export button to match the design -->\n <div class=\"export-button\">\n <sdc-button (click)=\"onExportClick()\">{{ exportButtonText() }}</sdc-button>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { type HeaderContext, injectFlexRenderContext } from '@tanstack/angular-table';\n\n@Component({\n templateUrl: './selection-table-head.component.html',\n styleUrl: './selection-table-head.component.css',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SelectionTableHeadComponent<T> {\n context = injectFlexRenderContext<HeaderContext<T, unknown>>();\n\n getIsAllVisibleRowsSelected(): boolean {\n const visibleRows = this.context.table.getRowModel().rows;\n return visibleRows.length > 0 && visibleRows.every(row => row.getIsSelected());\n }\n\n getIsSomeVisibleRowsSelected(): boolean {\n const visibleRows = this.context.table.getRowModel().rows;\n const selectedCount = visibleRows.filter(row => row.getIsSelected()).length;\n return selectedCount > 0 && selectedCount < visibleRows.length;\n }\n\n toggleAllVisibleRowsSelected(): void {\n const visibleRows = this.context.table.getRowModel().rows;\n const allSelected = this.getIsAllVisibleRowsSelected();\n\n visibleRows.forEach(row => {\n if (allSelected) {\n row.toggleSelected(false);\n } else {\n row.toggleSelected(true);\n }\n });\n }\n}\n","<input\n class=\"block px-1 selection-header\"\n type=\"checkbox\"\n [checked]=\"getIsAllVisibleRowsSelected()\"\n [indeterminate]=\"getIsSomeVisibleRowsSelected()\"\n (change)=\"toggleAllVisibleRowsSelected()\" />\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { type CellContext, injectFlexRenderContext } from '@tanstack/angular-table';\n\n@Component({\n templateUrl: './selection-table-row.component.html',\n styleUrl: './selection-table-row.component.css',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SelectionTableRowComponent<T> {\n context = injectFlexRenderContext<CellContext<T, unknown>>();\n}\n","<input\n class=\"block px-1\"\n type=\"checkbox\"\n [checked]=\"context.row.getIsSelected()\"\n (change)=\"context.row.getToggleSelectedHandler()($event)\" />\n","import { ButtonComponent } from '@3ddv/software-division-components/generic/button';\nimport { HlmIconModule } from '@3ddv/software-division-components/generic/icon';\nimport { Component, input, output, signal } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideArrowDown, lucideArrowUp, lucideArrowUpDown } from '@ng-icons/lucide';\n\n@Component({\n selector: 'sdc-table-head-sort-button',\n imports: [NgIcon, ButtonComponent, HlmIconModule],\n providers: [provideIcons({ lucideArrowUpDown, lucideArrowUp, lucideArrowDown })],\n templateUrl: './sort-header-button.component.html',\n styleUrl: './sort-header-button.component.css',\n})\nexport class SortTableHeadButtonComponent {\n public readonly isSorted = input<boolean>(false);\n public readonly columnName = input.required<string>();\n public readonly sortDirection = input.required<'asc' | 'desc' | false>();\n public readonly enableSorting = input<boolean>(false);\n\n public readonly sortClick = output<void>();\n\n protected isHovered = signal(false);\n\n protected onSortClick() {\n if (this.enableSorting()) {\n this.sortClick.emit();\n }\n }\n\n protected onMouseEnter() {\n if (this.enableSorting()) {\n this.isHovered.set(true);\n }\n }\n\n protected onMouseLeave() {\n if (this.enableSorting()) {\n this.isHovered.set(false);\n }\n }\n\n protected iconName() {\n // Show active sort arrow when sorted\n if (this.isSorted()) {\n return this.sortDirection() === 'asc' ? 'lucideArrowDown' : 'lucideArrowUp';\n }\n\n if (this.isHovered()) {\n return 'lucideArrowUpDown';\n }\n\n // No icon when not sorted and not hovering\n return '';\n }\n}\n","<button class=\"sort-button\" (click)=\"onSortClick()\" (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\">\n <span class=\"capitalize\">\n {{ columnName() }}\n </span>\n <span class=\"sort-icon\">\n <!-- Sort Icon -->\n @if (enableSorting() && iconName()) {\n <ng-icon hlm size=\"sm\" [name]=\"iconName()\" aria-hidden=\"true\" />\n }\n </span>\n</button>\n","// src/app/directives/hlm-table-directives.ts\nimport { computed, Directive, inject, InjectionToken, input, ValueProvider } from '@angular/core';\nimport { hlm } from '@spartan-ng/brain/core';\nimport type { ClassValue } from 'clsx';\n\n// Configuration Interface and InjectionToken\nexport const HlmTableConfigToken = new InjectionToken<HlmTableVariant>('HlmTableConfig');\nexport interface HlmTableVariant {\n\ttable: string;\n\tthead: string;\n\ttbody: string;\n\ttfoot: string;\n\ttr: string;\n\tth: string;\n\ttd: string;\n\tcaption: string;\n}\n\nexport const HlmTableVariantDefault: HlmTableVariant = {\n\ttable: 'w-full caption-bottom text-sm',\n\tthead: '[&_tr]:border-b',\n\ttbody: '[&_tr:last-child]:border-0',\n\ttfoot: 'bg-muted/50 border-t font-medium [&>tr]:last:border-b-0',\n\ttr: 'hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors',\n\tth: 'text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]',\n\ttd: 'p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]',\n\tcaption: 'text-muted-foreground mt-4 text-sm',\n};\n\nexport function provideHlmTableConfig(config: Partial<HlmTableVariant>): ValueProvider {\n\treturn {\n\t\tprovide: HlmTableConfigToken,\n\t\tuseValue: { ...HlmTableVariantDefault, ...config },\n\t};\n}\n\nexport function injectHlmTableConfig(): HlmTableVariant {\n\treturn inject(HlmTableConfigToken, { optional: true }) ?? HlmTableVariantDefault;\n}\n\n/**\n * Directive to apply Shadcn-like styling to a <table> element.\n * It resolves and provides base classes for its child table elements.\n * If a table has the `hlmTable` attribute, it will be styled with the provided variant.\n * The other table elements will check if a parent table has the `hlmTable` attribute and will be styled accordingly.\n */\n@Directive({\n\tselector: 'table[hlmTable]',\n\tstandalone: true,\n\thost: {\n\t\t'[class]': '_computedClass()',\n\t},\n})\nexport class HlmTable {\n\t/** Input to configure the variant of the table, this input has the highest priority. */\n\tpublic readonly userVariant = input<Partial<HlmTableVariant> | string>({}, { alias: 'hlmTable' });\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n\t/** Global or default configuration provided by injectHlmTableConfig() */\n\tprivate readonly _globalOrDefaultConfig = injectHlmTableConfig();\n\n\t// Protected variant that resolves user input to a full HlmTableVariant\n\tprotected readonly _variant = computed<HlmTableVariant>(() => {\n\t\tconst globalOrDefaultConfig = this._globalOrDefaultConfig;\n\t\tconst localInputConfig = this.userVariant();\n\n\t\t// Priority 1: Local input object\n\t\tif (typeof localInputConfig === 'object' && localInputConfig !== null && Object.keys(localInputConfig).length > 0) {\n\t\t\t// Merge local input with the baseline provided by injectHlmTableConfig()\n\t\t\t// This ensures that properties not in localInputConfig still fall back to global/default values.\n\t\t\treturn { ...globalOrDefaultConfig, ...localInputConfig };\n\t\t}\n\t\t// If localInputConfig is not a non-empty object (e.g., it's undefined, an empty object, or a string),\n\t\t// then the globalOrDefaultConfig (which is already the result of injected OR default) is used.\n\t\treturn globalOrDefaultConfig;\n\t});\n\n\t// Computed class for the host <table> element\n\tprotected readonly _computedClass = computed(() => hlm(this._variant().table, this.userClass()));\n}\n\n/**\n * Directive to apply Shadcn-like styling to a <thead> element\n * within an HlmTableDirective context.\n */\n@Directive({\n\tselector: 'thead[hlmTHead]',\n\tstandalone: true,\n\thost: {\n\t\t'[class]': '_computedClass()',\n\t},\n})\nexport class HlmTHead {\n\tprivate readonly _globalOrDefaultConfig = injectHlmTableConfig();\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n\tprotected readonly _computedClass = computed(() =>\n\t\thlm(this._globalOrDefaultConfig ? this._globalOrDefaultConfig.thead.trim() : '', this.userClass()),\n\t);\n}\n\n/**\n * Directive to apply Shadcn-like styling to a <tbody> element\n * within an HlmTableDirective context.\n */\n@Directive({\n\tselector: 'tbody[hlmTBody]',\n\tstandalone: true,\n\thost: {\n\t\t'[class]': '_computedClass()',\n\t},\n})\nexport class HlmTBody {\n\tprivate readonly _globalOrDefaultConfig = injectHlmTableConfig();\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n\tprotected readonly _computedClass = computed(() =>\n\t\thlm(this._globalOrDefaultConfig ? this._globalOrDefaultConfig.tbody.trim() : '', this.userClass()),\n\t);\n}\n\n/**\n * Directive to apply Shadcn-like styling to a <tfoot> element\n * within an HlmTableDirective context.\n */\n@Directive({\n\tselector: 'tfoot[hlmTFoot]',\n\tstandalone: true,\n\thost: {\n\t\t'[class]': '_computedClass()',\n\t},\n})\nexport class HlmTFoot {\n\tprivate readonly _globalOrDefaultConfig = injectHlmTableConfig();\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n\tprotected readonly _computedClass = computed(() =>\n\t\thlm(this._globalOrDefaultConfig ? this._globalOrDefaultConfig.tfoot.trim() : '', this.userClass()),\n\t);\n}\n\n/**\n * Directive to apply Shadcn-like styling to a <tr> element\n * within an HlmTableDirective context.\n */\n@Directive({\n\tselector: 'tr[hlmTr]',\n\tstandalone: true,\n\thost: {\n\t\t'[class]': '_computedClass()',\n\t},\n})\nexport class HlmTr {\n\tprivate readonly _globalOrDefaultConfig = injectHlmTableConfig();\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n\tprotected readonly _computedClass = computed(() =>\n\t\thlm(this._globalOrDefaultConfig ? this._globalOrDefaultConfig.tr.trim() : '', this.userClass()),\n\t);\n}\n\n/**\n * Directive to apply Shadcn-like styling to a <th> element\n * within an HlmTableDirective context.\n */\n@Directive({\n\tselector: 'th[hlmTh]',\n\tstandalone: true,\n\thost: {\n\t\t'[class]': '_computedClass()',\n\t},\n})\nexport class HlmTh {\n\tprivate readonly _globalOrDefaultConfig = injectHlmTableConfig();\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n\tprotected readonly _computedClass = computed(() =>\n\t\thlm(this._globalOrDefaultConfig ? this._globalOrDefaultConfig.th.trim() : '', this.userClass()),\n\t);\n}\n\n/**\n * Directive to apply Shadcn-like styling to a <td> element\n * within an HlmTableDirective context.\n */\n@Directive({\n\tselector: 'td[hlmTd]',\n\tstandalone: true,\n\thost: {\n\t\t'[class]': '_computedClass()',\n\t},\n})\nexport class HlmTd {\n\tprivate readonly _globalOrDefaultConfig = injectHlmTableConfig();\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n\tprotected readonly _computedClass = computed(() =>\n\t\thlm(this._globalOrDefaultConfig ? this._globalOrDefaultConfig.td.trim() : '', this.userClass()),\n\t);\n}\n\n/**\n * Directive to apply Shadcn-like styling to a <caption> element\n * within an HlmTableDirective context.\n */\n@Directive({\n\tselector: 'caption[hlmCaption]',\n\tstandalone: true,\n\thost: {\n\t\t'[class]': '_computedClass()',\n\t},\n})\nexport class HlmCaption {\n\tprivate readonly _globalOrDefaultConfig = injectHlmTableConfig();\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n\tprotected readonly _computedClass = computed(() =>\n\t\thlm(this._globalOrDefaultConfig ? this._globalOrDefaultConfig.caption.trim() : '', this.userClass()),\n\t);\n}\n","import { NgModule } from '@angular/core';\n\nimport { HlmCaption, HlmTable, HlmTBody, HlmTd, HlmTFoot, HlmTh, HlmTHead, HlmTr } from './lib/hlm-table';\n\nexport * from './lib/hlm-table';\n\nexport const HlmTableImports = [HlmCaption, HlmTable, HlmTBody, HlmTd, HlmTFoot, HlmTh, HlmTHead, HlmTr] as const;\n\n@NgModule({\n\timports: [...HlmTableImports],\n\texports: [...HlmTableImports],\n})\nexport class HlmTableModule {}\n","import { ThemeClass } from '@3ddv/software-division-components/shared';\nimport { Component, computed, effect, input, OnDestroy, output, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { provideIcons } from '@ng-icons/core';\nimport { lucideChevronDown, lucideChevronLeft, lucideChevronRight } from '@ng-icons/lucide';\nimport {\n ColumnDef,\n createAngularTable,\n flexRenderComponent,\n FlexRenderDirective,\n getCoreRowModel,\n getPaginationRowModel,\n PaginationState,\n RowSelectionState,\n SortingState,\n} from '@tanstack/angular-table';\nimport { PaginationComponent } from './_components/pagination/pagination.component';\nimport { SelectionTableHeadComponent } from './_components/selection-table-head/selection-table-head.component';\nimport { SelectionTableRowComponent } from './_components/selection-table-row/selection-table-row.component';\nimport { SortTableHeadButtonComponent } from './_components/sort-header-button/sort-header-button.component';\nimport { HlmTableImports } from './ui/ui-table-helm/src';\n\nexport type TableStyleClasses = ReturnType<(typeof TableComponent.prototype)['styleClass']>;\n@Component({\n selector: 'sdc-table',\n imports: [FormsModule, FlexRenderDirective, PaginationComponent, ...HlmTableImports],\n providers: [provideIcons({ lucideChevronDown, lucideChevronLeft, lucideChevronRight })],\n templateUrl: './table.component.html',\n styleUrl: './table.component.css',\n})\nexport class TableComponent<T extends Record<string, any>> implements OnDestroy {\n private readonly allowedVariants = ['full-table', 'minimal-table'] as const;\n\n /**\n * The data to display in the table.\n */\n public readonly data = input<T[]>([]);\n\n /**\n * The columns to display in the table.\n */\n public readonly columns = input<ColumnDef<T>[]>([]);\n\n /**\n * Whether to show the selection column.\n */\n public readonly showSelection = input<boolean>(false);\n\n /**\n * Whether to enable sorting for the table.\n */\n public readonly enableSort = input<boolean | string[]>(false);\n\n /**\n * The maximum number of pages to display in the pagination.\n */\n public readonly maxVisiblePages = input<number>(3);\n\n /**\n * The page size for the table pagination.\n */\n public readonly pageSize = input<number>(10);\n\n /**\n * The initial page index for the table pagination.\n */\n public readonly initialPageIndex = input<number>(0);\n\n /**\n * Whether to show the first and last buttons in the pagination.\n */\n public readonly showFirstLastButtons = input<boolean>(true);\n\n /**\n * The current theme applied to the component.\n */\n public readonly theme = input<ThemeClass>('theme-sdc');\n\n /**\n * Predefined styles to apply to the component.\n * Can be a single class or multiple classes from different categories.\n */\n public readonly styleClass = input<(typeof this.allowedVariants)[number][]>([this.allowedVariants[0]]);\n\n // Computed signal that validates and filters the styleClass input\n private readonly _validatedStyleClass = computed(() => {\n const value = this.styleClass();\n\n if (!Array.isArray(value)) {\n console.warn('TableComponent: styleClass must be an array, defaulting to empty array');\n return [];\n }\n\n const validValues = value.filter(style => this.allowedVariants.includes(style));\n const invalidValues = value.filter(style => !this.allowedVariants.includes(style));\n\n if (invalidValues.length > 0) {\n throw new Error(\n `TableComponent: Invalid styleClass values ignored: ${invalidValues.join(', ')}. Allowed values: ${this.allowedVariants.join(', ')}`\n );\n }\n\n return validValues;\n });\n\n /**\n * Additional CSS classes to apply to the component.\n */\n public readonly className = input<string>('');\n\n /**\n * The text to display in the export button.\n */\n public readonly exportButtonText = input<string>('Export');\n\n /**\n * Event emitted when the export button is clicked.\n * Includes selected rows and all rows for export functionality.\n */\n public readonly exportClick = output<{ selectedRows: T[]; allRows: T[] }>();\n\n /**\n * Event emitted when the sorting state changes.\n */\n public readonly sortingChange = output<SortingState>();\n\n /**\n * Event emitted when the selection state changes.\n */\n public readonly selectionChange = output<RowSelectionState>();\n\n /**\n * Whether to pin/freeze the table headers so they remain visible during vertical scrolling.\n * When enabled, headers will stay at the top of the viewport while scrolling through table data.\n */\n public readonly pinningHeaders = input<boolean>(false);\n\n /**\n * Whether to show the pagination controls at the bottom of the table.\n * When disabled, all rows will be displayed without pagination.\n */\n public readonly showPagination = input<boolean>(true);\n\n /**\n * Event emitted when the pagination state changes.\n */\n public readonly paginationChange = output<PaginationState>();\n\n /**\n * Computed class string that combines theme and user classes.\n */\n protected readonly computedClass = computed(() => {\n const themeClass = this.theme();\n const styleClass = this._validatedStyleClass();\n const className = this.className();\n const pinningHeadersClass = this.pinningHeaders() ? 'pinning-headers' : '';\n return ['sdc-table', themeClass, ...styleClass, pinningHeadersClass, className].filter(Boolean).join(' ');\n });\n\n protected _handleSortClick(columnId: string) {\n const currentSort = this._sorting();\n const currentColumnSort = currentSort.find(sort => sort.id === columnId);\n\n let newSort: SortingState = [];\n\n if (!currentColumnSort) {\n // First click: sort asc\n newSort = [{ id: columnId, desc: false }];\n } else if (!currentColumnSort.desc) {\n // Second click: sort desc\n newSort = [{ id: columnId, desc: true }];\n } else {\n // Third click: remove sort\n newSort = [];\n }\n\n this._sorting.set(newSort);\n this.sortingChange.emit(newSort);\n }\n\n protected _getSortDirection(columnId: string): 'asc' | 'desc' | false {\n const currentSort = this._sorting();\n const columnSort = currentSort.find(sort => sort.id === columnId);\n\n if (!columnSort) {\n return false;\n }\n\n return columnSort.desc ? 'desc' : 'asc';\n }\n\n protected _isColumnSorted(columnId: string): boolean {\n const currentSort = this._sorting();\n return currentSort.some(sort => sort.id === columnId);\n }\n\n protected _isSortEnabled(columnId: string): boolean {\n const sortConfig = this.enableSort();\n\n if (typeof sortConfig === 'boolean') {\n return sortConfig;\n }\n\n if (Array.isArray(sortConfig)) {\n return sortConfig.includes(columnId);\n }\n\n return false;\n }\n\n protected _createSortableHeader(column: ColumnDef<T>, columnId: string) {\n return flexRenderComponent(SortTableHeadButtonComponent, {\n inputs: {\n columnName: columnId,\n isSorted: this._isColumnSorted(columnId),\n sortDirection: this._getSortDirection(columnId),\n enableSorting: this._isSortEnabled(columnId),\n },\n outputs: {\n sortClick: () => this._handleSortClick(columnId),\n },\n });\n }\n\n protected _processColumns(): ColumnDef<T>[] {\n const baseColumns = this.columns() || [];\n const processedColumns: ColumnDef<T>[] = [];\n\n // Add selection column if enabled\n if (this.showSelection()) {\n processedColumns.push({\n accessorKey: 'select',\n id: 'select',\n header: () => flexRenderComponent(SelectionTableHeadComponent),\n cell: () => flexRenderComponent(SelectionTableRowComponent),\n enableSorting: false,\n enableHiding: false,\n });\n }\n\n // Process each column\n baseColumns.forEach(column => {\n const processedColumn = { ...column };\n\n // If sorting is enabled for this column, wrap the header with sort functionality\n if (this._isSortEnabled(column.id || '')) {\n processedColumn.header = context => this._createSortableHeader(column, context.column.id);\n }\n\n // Ensure sorting is disabled for client-side (we only support server-side sorting)\n processedColumn.enableSorting = false;\n\n processedColumns.push(processedColumn);\n });\n\n return processedColumns;\n }\n\n private readonly _sorting = signal<SortingState>([]);\n private readonly _rowSelection = signal<RowSelectionState>({});\n private readonly _pagination = signal<PaginationState>({\n pageSize: this.pageSize(),\n pageIndex: this.initialPageIndex(),\n });\n\n // Effect to sync input changes to the pagination signal\n // Only runs when pagination is enabled\n private readonly _paginationEffect = effect(() => {\n // Only update pagination when it's enabled\n if (!this.showPagination()) {\n return;\n }\n\n const newPageSize = this.pageSize();\n const newPageIndex = this.initialPageIndex();\n\n this._pagination.update(current => ({\n ...current,\n pageSize: newPageSize,\n pageIndex: newPageIndex,\n }));\n });\n\n public ngOnDestroy(): void {\n // Cleans up the pagination effect to prevent memory leaks.\n if (this._paginationEffect) {\n this._paginationEffect.destroy();\n }\n }\n\n private readonly _table = createAngularTable<T>(() => ({\n data: this.data(),\n columns: this._processColumns(),\n state: {\n sorting: this._sorting(),\n rowSelection: this._rowSelection(),\n // Only include pagination state when pagination is enabled\n ...(this.showPagination() && { pagination: this._pagination() }),\n },\n onSortingChange: updater => {\n updater instanceof Function ? this._sorting.update(updater) : this._sorting.set(updater);\n this.sortingChange.emit(this._sorting());\n },\n onRowSelectionChange: updater => {\n updater instanceof Function ? this._rowSelection.update(updater) : this._rowSelection.set(updater);\n this.selectionChange.emit(this._rowSelection());\n },\n // Only include pagination change handler when pagination is enabled\n ...(this.showPagination() && {\n onPaginationChange: updater => {\n updater instanceof Function ? this._pagination.update(updater) : this._pagination.set(updater);\n this.paginationChange.emit(this._pagination());\n },\n }),\n getCoreRowModel: getCoreRowModel(),\n // Only include pagination row model when pagination is enabled\n ...(this.showPagination() && { getPaginationRowModel: getPaginationRowModel() }),\n enableRowSelection: this.showSelection(),\n initialState: {\n // Only include pagination initial state when pagination is enabled\n ...(this.showPagination() && { pagination: this._pagination() }),\n },\n }));\n\n // Public getters for template access\n public get headerGroups() {\n return this._table.getHeaderGroups();\n }\n\n public get rows() {\n return this._table.getRowModel().rows;\n }\n\n public get paginatedRows() {\n if (this.showPagination()) {\n return this._table.getPaginationRowModel().rows;\n } else {\n // When pagination is disabled, return all rows from the core row model\n return this._table.getRowModel().rows;\n }\n }\n\n // Public getter for pagination component\n public get tableForPagination() {\n return this._table as any;\n }\n}\n","<div [class]=\"computedClass()\">\n <div class=\"table-container\">\n <!-- we defer the loading of the table, because tanstack manipulates the DOM with flexRender which can cause errors during SSR -->\n @defer {\n <table hlmTable>\n <thead hlmTHead class=\"sdc-table-header\">\n @for (headerGroup of tableForPagination.getHeaderGroups(); track headerGroup.id) {\n <tr hlmTr>\n @for (header of headerGroup.headers; track header.id) {\n <th hlmTh [attr.colSpan]=\"header.colSpan\">\n @if (!header.isPlaceholder) {\n <ng-container\n *flexRender=\"header.column.columnDef.header; props: header.getContext(); let headerText\">\n <div [innerHTML]=\"headerText\"></div>\n </ng-container>\n }\n </th>\n }\n </tr>\n }\n </thead>\n <tbody hlmTBody class=\"sdc-table-body w-full\">\n @for (row of paginatedRows; track row.id) {\n <tr hlmTr [attr.key]=\"row.id\" [attr.data-state]=\"row.getIsSelected() && 'selected'\">\n @for (cell of row.getVisibleCells(); track $index) {\n <td hlmTd>\n <ng-container *flexRender=\"cell.column.columnDef.cell; props: cell.getContext(); let cell\">\n <div [innerHTML]=\"cell\"></div>\n </ng-container>\n </td>\n }\n </tr>\n } @empty {\n <tr hlmTr>\n <td hlmTd class=\"h-24 text-center\" [attr.colspan]=\"_processColumns().length\">No results.</td>\n </tr>\n }\n </tbody>\n </table>\n }\n </div>\n</div>\n\n<!-- Pagination Component -->\n@if (showPagination()) {\n <sdc-pagination\n [theme]=\"theme()\"\n [table]=\"tableForPagination\"\n [maxVisiblePages]=\"maxVisiblePages()\"\n [showFirstLastButtons]=\"showFirstLastButtons()\"\n [exportButtonText]=\"exportButtonText()\"\n (exportClick)=\"exportClick.emit($event)\"></sdc-pagination>\n}\n","// Export the main table component\nexport * from './table.component';\n\n// Re-export TanStack Table utilities used by consumers\nexport { flexRenderComponent } from '@tanstack/angular-table';\nexport type { ColumnDef, RowSelectionState, SortingState } from '@tanstack/angular-table';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.HlmTable","i1.HlmTBody","i1.HlmTd","i1.HlmTh","i1.HlmTHead","i1.HlmTr"],"mappings":";;;;;;;;;;;;MAea,mBAAmB,CAAA;AACd,IAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,gDAAc;AACpC,IAAA,eAAe,GAAG,KAAK,CAAS,CAAC,2DAAC;AAClC,IAAA,oBAAoB,GAAG,KAAK,CAAU,KAAK,gEAAC;AAC5C,IAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,gDAAc;AACpC,IAAA,gBAAgB,GAAG,KAAK,CAAS,QAAQ,4DAAC;IAC1C,WAAW,GAAG,MAAM,EAA2C;IAErE,qBAAqB,GAAA;AAC7B,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,SAAS;QAChE,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,YAAY,EAAE;AAC9C,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE;AAEzC,QAAA,IAAI,UAAU,IAAI,UAAU,EAAE;;AAE5B,YAAA,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QACxD;;QAGA,MAAM,KAAK,GAAa,EAAE;;QAG1B,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC;;AAGjD,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,cAAc,CAAC;;AAGzD,QAAA,IAAI,SAAS,GAAG,UAAU,GAAG,UAAU,EAAE;YACvC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;QAClD;;AAGA,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;AACnC,YAAA,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QAC3B;AAEA,QAAA,OAAO,KAAK;IACd;IAEU,aAAa,GAAA;QACrB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;AAC1C,QAAA,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY;AAC5C,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK;AACvB,aAAA,WAAW;aACX,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC;;AAGhC,QAAA,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY;aAC7C,MAAM,CAAC,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC;aAC/B,GAAG,CAAC,KAAK,IAAG;AACX,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK;AACnB,iBAAA,WAAW;AACX,iBAAA,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC;YACjC,OAAO,GAAG,GAAG,GAAG,CAAC,QAAQ,GAAG,IAAI;AAClC,QAAA,CAAC;aACA,MAAM,CAAC,OAAO,CAAC;AAElB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AACpB,YAAA,YAAY,EAAE,eAAe;AAC7B,YAAA,OAAO,EAAE,OAAO;AACjB,SAAA,CAAC;IACJ;uGA9DW,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,ozBAJnB,CAAC,YAAY,CAAC,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,CAAC,CAAC,0BCXtE,65DAuDA,EAAA,MAAA,EAAA,CAAA,o5FAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED7CY,MAAM,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,aAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,aAAa,+HAAE,eAAe,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,WAAA,EAAA,SAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,QAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAKrC,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAP/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,WACjB,CAAC,MAAM,EAAE,aAAa,EAAE,eAAe,CAAC,EAAA,SAAA,EACtC,CAAC,YAAY,CAAC,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,CAAC,CAAC,EAAA,QAAA,EAAA,65DAAA,EAAA,MAAA,EAAA,CAAA,o5FAAA,CAAA,EAAA;;;MEFzD,2BAA2B,CAAA;IACtC,OAAO,GAAG,uBAAuB,EAA6B;IAE9D,2BAA2B,GAAA;AACzB,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI;AACzD,QAAA,OAAO,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;IAChF;IAEA,4BAA4B,GAAA;AAC1B,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI;AACzD,QAAA,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,MAAM;QAC3E,OAAO,aAAa,GAAG,CAAC,IAAI,aAAa,GAAG,WAAW,CAAC,MAAM;IAChE;IAEA,4BAA4B,GAAA;AAC1B,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI;AACzD,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,2BAA2B,EAAE;AAEtD,QAAA,WAAW,CAAC,OAAO,CAAC,GAAG,IAAG;YACxB,IAAI,WAAW,EAAE;AACf,gBAAA,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC;YAC3B;iBAAO;AACL,gBAAA,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC;YAC1B;AACF,QAAA,CAAC,CAAC;IACJ;uGAzBW,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA3B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,wECTxC,+NAMA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FDGa,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBANvC,SAAS;iCAGI,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,+NAAA,EAAA;;;MEEpC,0BAA0B,CAAA;IACrC,OAAO,GAAG,uBAAuB,EAA2B;uGADjD,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA1B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,wECTvC,sKAKA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FDIa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBANtC,SAAS;iCAGI,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,sKAAA,EAAA;;;MEMpC,4BAA4B,CAAA;AACvB,IAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,oDAAC;AAChC,IAAA,UAAU,GAAG,KAAK,CAAC,QAAQ,qDAAU;AACrC,IAAA,aAAa,GAAG,KAAK,CAAC,QAAQ,wDAA0B;AACxD,IAAA,aAAa,GAAG,KAAK,CAAU,KAAK,yDAAC;IAErC,SAAS,GAAG,MAAM,EAAQ;AAEhC,IAAA,SAAS,GAAG,MAAM,CAAC,KAAK,qDAAC;IAEzB,WAAW,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AACxB,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;QACvB;IACF;IAEU,YAAY,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AACxB,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;QAC1B;IACF;IAEU,YAAY,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AACxB,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;QAC3B;IACF;IAEU,QAAQ,GAAA;;AAEhB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACnB,YAAA,OAAO,IAAI,CAAC,aAAa,EAAE,KAAK,KAAK,GAAG,iBAAiB,GAAG,eAAe;QAC7E;AAEA,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;AACpB,YAAA,OAAO,mBAAmB;QAC5B;;AAGA,QAAA,OAAO,EAAE;IACX;uGAxCW,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA5B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,gqBAJ5B,CAAC,YAAY,CAAC,EAAE,iBAAiB,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECTlF,0YAWA,EAAA,MAAA,EAAA,CAAA,qLAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDHY,MAAM,4GAAmB,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAKrC,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAPxC,SAAS;+BACE,4BAA4B,EAAA,OAAA,EAC7B,CAAC,MAAM,EAAE,eAAe,EAAE,aAAa,CAAC,EAAA,SAAA,EACtC,CAAC,YAAY,CAAC,EAAE,iBAAiB,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC,CAAC,EAAA,QAAA,EAAA,0YAAA,EAAA,MAAA,EAAA,CAAA,qLAAA,CAAA,EAAA;;;AETlF;AAKA;AACO,MAAM,mBAAmB,GAAG,IAAI,cAAc,CAAkB,gBAAgB,CAAC;AAYjF,MAAM,sBAAsB,GAAoB;AACtD,IAAA,KAAK,EAAE,+BAA+B;AACtC,IAAA,KAAK,EAAE,iBAAiB;AACxB,IAAA,KAAK,EAAE,4BAA4B;AACnC,IAAA,KAAK,EAAE,yDAAyD;AAChE,IAAA,EAAE,EAAE,6EAA6E;AACjF,IAAA,EAAE,EAAE,oJAAoJ;AACxJ,IAAA,EAAE,EAAE,wGAAwG;AAC5G,IAAA,OAAO,EAAE,oCAAoC;CAC7C;AAEK,SAAU,qBAAqB,CAAC,MAAgC,EAAA;IACrE,OAAO;AACN,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,QAAQ,EAAE,EAAE,GAAG,sBAAsB,EAAE,GAAG,MAAM,EAAE;KAClD;AACF;SAEgB,oBAAoB,GAAA;AACnC,IAAA,OAAO,MAAM,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,sBAAsB;AACjF;AAEA;;;;;AAKG;MAQU,QAAQ,CAAA;;IAEJ,WAAW,GAAG,KAAK,CAAoC,EAAE,wDAAI,KAAK,EAAE,UAAU,EAAA,CAAG;IACjF,SAAS,GAAG,KAAK,CAAa,EAAE,sDAAI,KAAK,EAAE,OAAO,EAAA,CAAG;;IAGpD,sBAAsB,GAAG,oBAAoB,EAAE;;AAG7C,IAAA,QAAQ,GAAG,QAAQ,CAAkB,MAAK;AAC5D,QAAA,MAAM,qBAAqB,GAAG,IAAI,CAAC,sBAAsB;AACzD,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,EAAE;;QAG3C,IAAI,OAAO,gBAAgB,KAAK,QAAQ,IAAI,gBAAgB,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;;;AAGlH,YAAA,OAAO,EAAE,GAAG,qBAAqB,EAAE,GAAG,gBAAgB,EAAE;QACzD;;;AAGA,QAAA,OAAO,qBAAqB;AAC7B,IAAA,CAAC,oDAAC;;IAGiB,cAAc,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;uGAzBpF,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAR,QAAQ,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAR,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAPpB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACL,wBAAA,SAAS,EAAE,kBAAkB;AAC7B,qBAAA;AACD,iBAAA;;AA6BD;;;AAGG;MAQU,QAAQ,CAAA;IACH,sBAAsB,GAAG,oBAAoB,EAAE;IAChD,SAAS,GAAG,KAAK,CAAa,EAAE,sDAAI,KAAK,EAAE,OAAO,EAAA,CAAG;AAElD,IAAA,cAAc,GAAG,QAAQ,CAAC,MAC5C,GAAG,CAAC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,0DAClG;uGANW,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAR,QAAQ,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAR,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAPpB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACL,wBAAA,SAAS,EAAE,kBAAkB;AAC7B,qBAAA;AACD,iBAAA;;AAUD;;;AAGG;MAQU,QAAQ,CAAA;IACH,sBAAsB,GAAG,oBAAoB,EAAE;IAChD,SAAS,GAAG,KAAK,CAAa,EAAE,sDAAI,KAAK,EAAE,OAAO,EAAA,CAAG;AAElD,IAAA,cAAc,GAAG,QAAQ,CAAC,MAC5C,GAAG,CAAC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,0DAClG;uGANW,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAR,QAAQ,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAR,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAPpB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACL,wBAAA,SAAS,EAAE,kBAAkB;AAC7B,qBAAA;AACD,iBAAA;;AAUD;;;AAGG;MAQU,QAAQ,CAAA;IACH,sBAAsB,GAAG,oBAAoB,EAAE;IAChD,SAAS,GAAG,KAAK,CAAa,EAAE,sDAAI,KAAK,EAAE,OAAO,EAAA,CAAG;AAElD,IAAA,cAAc,GAAG,QAAQ,CAAC,MAC5C,GAAG,CAAC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,0DAClG;uGANW,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAR,QAAQ,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAR,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAPpB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACL,wBAAA,SAAS,EAAE,kBAAkB;AAC7B,qBAAA;AACD,iBAAA;;AAUD;;;AAGG;MAQU,KAAK,CAAA;IACA,sBAAsB,GAAG,oBAAoB,EAAE;IAChD,SAAS,GAAG,KAAK,CAAa,EAAE,sDAAI,KAAK,EAAE,OAAO,EAAA,CAAG;AAElD,IAAA,cAAc,GAAG,QAAQ,CAAC,MAC5C,GAAG,CAAC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,0DAC/F;uGANW,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,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAL,KAAK,EAAA,UAAA,EAAA,CAAA;kBAPjB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACL,wBAAA,SAAS,EAAE,kBAAkB;AAC7B,qBAAA;AACD,iBAAA;;AAUD;;;AAGG;MAQU,KAAK,CAAA;IACA,sBAAsB,GAAG,oBAAoB,EAAE;IAChD,SAAS,GAAG,KAAK,CAAa,EAAE,sDAAI,KAAK,EAAE,OAAO,EAAA,CAAG;AAElD,IAAA,cAAc,GAAG,QAAQ,CAAC,MAC5C,GAAG,CAAC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,0DAC/F;uGANW,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,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAL,KAAK,EAAA,UAAA,EAAA,CAAA;kBAPjB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACL,wBAAA,SAAS,EAAE,kBAAkB;AAC7B,qBAAA;AACD,iBAAA;;AAUD;;;AAGG;MAQU,KAAK,CAAA;IACA,sBAAsB,GAAG,oBAAoB,EAAE;IAChD,SAAS,GAAG,KAAK,CAAa,EAAE,sDAAI,KAAK,EAAE,OAAO,EAAA,CAAG;AAElD,IAAA,cAAc,GAAG,QAAQ,CAAC,MAC5C,GAAG,CAAC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,0DAC/F;uGANW,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,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAL,KAAK,EAAA,UAAA,EAAA,CAAA;kBAPjB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACL,wBAAA,SAAS,EAAE,kBAAkB;AAC7B,qBAAA;AACD,iBAAA;;AAUD;;;AAGG;MAQU,UAAU,CAAA;IACL,sBAAsB,GAAG,oBAAoB,EAAE;IAChD,SAAS,GAAG,KAAK,CAAa,EAAE,sDAAI,KAAK,EAAE,OAAO,EAAA,CAAG;AAElD,IAAA,cAAc,GAAG,QAAQ,CAAC,MAC5C,GAAG,CAAC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,0DACpG;uGANW,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAV,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBAPtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACL,wBAAA,SAAS,EAAE,kBAAkB;AAC7B,qBAAA;AACD,iBAAA;;;AC7MM,MAAM,eAAe,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAU;MAMpG,cAAc,CAAA;uGAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAd,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,EAAA,OAAA,EAAA,CANK,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAA,EAAA,OAAA,EAAA,CAAvE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAA,EAAA,CAAA;wGAM1F,cAAc,EAAA,CAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,OAAO,EAAE,CAAC,GAAG,eAAe,CAAC;AAC7B,oBAAA,OAAO,EAAE,CAAC,GAAG,eAAe,CAAC;AAC7B,iBAAA;;;MCmBY,cAAc,CAAA;AACR,IAAA,eAAe,GAAG,CAAC,YAAY,EAAE,eAAe,CAAU;AAE3E;;AAEG;AACa,IAAA,IAAI,GAAG,KAAK,CAAM,EAAE,gDAAC;AAErC;;AAEG;AACa,IAAA,OAAO,GAAG,KAAK,CAAiB,EAAE,mDAAC;AAEnD;;AAEG;AACa,IAAA,aAAa,GAAG,KAAK,CAAU,KAAK,yDAAC;AAErD;;AAEG;AACa,IAAA,UAAU,GAAG,KAAK,CAAqB,KAAK,sDAAC;AAE7D;;AAEG;AACa,IAAA,eAAe,GAAG,KAAK,CAAS,CAAC,2DAAC;AAElD;;AAEG;AACa,IAAA,QAAQ,GAAG,KAAK,CAAS,EAAE,oDAAC;AAE5C;;AAEG;AACa,IAAA,gBAAgB,GAAG,KAAK,CAAS,CAAC,4DAAC;AAEnD;;AAEG;AACa,IAAA,oBAAoB,GAAG,KAAK,CAAU,IAAI,gEAAC;AAE3D;;AAEG;AACa,IAAA,KAAK,GAAG,KAAK,CAAa,WAAW,iDAAC;AAEtD;;;AAGG;AACa,IAAA,UAAU,GAAG,KAAK,CAA0C,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,YAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;;AAGrF,IAAA,oBAAoB,GAAG,QAAQ,CAAC,MAAK;AACpD,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE;QAE/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACzB,YAAA,OAAO,CAAC,IAAI,CAAC,wEAAwE,CAAC;AACtF,YAAA,OAAO,EAAE;QACX;AAEA,QAAA,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC/E,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAElF,QAAA,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,MAAM,IAAI,KAAK,CACb,CAAA,mDAAA,EAAsD,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAE,CACrI;QACH;AAEA,QAAA,OAAO,WAAW;AACpB,IAAA,CAAC,gEAAC;AAEF;;AAEG;AACa,IAAA,SAAS,GAAG,KAAK,CAAS,EAAE,qDAAC;AAE7C;;AAEG;AACa,IAAA,gBAAgB,GAAG,KAAK,CAAS,QAAQ,4DAAC;AAE1D;;;AAGG;IACa,WAAW,GAAG,MAAM,EAAuC;AAE3E;;AAEG;IACa,aAAa,GAAG,MAAM,EAAgB;AAEtD;;AAEG;IACa,eAAe,GAAG,MAAM,EAAqB;AAE7D;;;AAGG;AACa,IAAA,cAAc,GAAG,KAAK,CAAU,KAAK,0DAAC;AAEtD;;;AAGG;AACa,IAAA,cAAc,GAAG,KAAK,CAAU,IAAI,0DAAC;AAErD;;AAEG;IACa,gBAAgB,GAAG,MAAM,EAAmB;AAE5D;;AAEG;AACgB,IAAA,aAAa,GAAG,QAAQ,CAAC,MAAK;AAC/C,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,EAAE;AAC/B,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,EAAE;AAC9C,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE;AAClC,QAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,iBAAiB,GAAG,EAAE;QAC1E,OAAO,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,mBAAmB,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAC3G,IAAA,CAAC,yDAAC;AAEQ,IAAA,gBAAgB,CAAC,QAAgB,EAAA;AACzC,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;AACnC,QAAA,MAAM,iBAAiB,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC;QAExE,IAAI,OAAO,GAAiB,EAAE;QAE9B,IAAI,CAAC,iBAAiB,EAAE;;AAEtB,YAAA,OAAO,GAAG,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QAC3C;AAAO,aAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE;;AAElC,YAAA,OAAO,GAAG,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC1C;aAAO;;YAEL,OAAO,GAAG,EAAE;QACd;AAEA,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;AAC1B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;IAClC;AAEU,IAAA,iBAAiB,CAAC,QAAgB,EAAA;AAC1C,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;AACnC,QAAA,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC;QAEjE,IAAI,CAAC,UAAU,EAAE;AACf,YAAA,OAAO,KAAK;QACd;QAEA,OAAO,UAAU,CAAC,IAAI,GAAG,MAAM,GAAG,KAAK;IACzC;AAEU,IAAA,eAAe,CAAC,QAAgB,EAAA;AACxC,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;AACnC,QAAA,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC;IACvD;AAEU,IAAA,cAAc,CAAC,QAAgB,EAAA;AACvC,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE;AAEpC,QAAA,IAAI,OAAO,UAAU,KAAK,SAAS,EAAE;AACnC,YAAA,OAAO,UAAU;QACnB;AAEA,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AAC7B,YAAA,OAAO,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACtC;AAEA,QAAA,OAAO,KAAK;IACd;IAEU,qBAAqB,CAAC,MAAoB,EAAE,QAAgB,EAAA;QACpE,OAAO,mBAAmB,CAAC,4BAA4B,EAAE;AACvD,YAAA,MAAM,EAAE;AACN,gBAAA,UAAU,EAAE,QAAQ;AACpB,gBAAA,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;AACxC,gBAAA,aAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC;AAC/C,gBAAA,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;AAC7C,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,SAAS,EAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;AACjD,aAAA;AACF,SAAA,CAAC;IACJ;IAEU,eAAe,GAAA;QACvB,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE;QACxC,MAAM,gBAAgB,GAAmB,EAAE;;AAG3C,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;YACxB,gBAAgB,CAAC,IAAI,CAAC;AACpB,gBAAA,WAAW,EAAE,QAAQ;AACrB,gBAAA,EAAE,EAAE,QAAQ;AACZ,gBAAA,MAAM,EAAE,MAAM,mBAAmB,CAAC,2BAA2B,CAAC;AAC9D,gBAAA,IAAI,EAAE,MAAM,mBAAmB,CAAC,0BAA0B,CAAC;AAC3D,gBAAA,aAAa,EAAE,KAAK;AACpB,gBAAA,YAAY,EAAE,KAAK;AACpB,aAAA,CAAC;QACJ;;AAGA,QAAA,WAAW,CAAC,OAAO,CAAC,MAAM,IAAG;AAC3B,YAAA,MAAM,eAAe,GAAG,EAAE,GAAG,MAAM,EAAE;;YAGrC,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE;AACxC,gBAAA,eAAe,CAAC,MAAM,GAAG,OAAO,IAAI,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3F;;AAGA,YAAA,eAAe,CAAC,aAAa,GAAG,KAAK;AAErC,YAAA,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC;AACxC,QAAA,CAAC,CAAC;AAEF,QAAA,OAAO,gBAAgB;IACzB;AAEiB,IAAA,QAAQ,GAAG,MAAM,CAAe,EAAE,oDAAC;AACnC,IAAA,aAAa,GAAG,MAAM,CAAoB,EAAE,yDAAC;IAC7C,WAAW,GAAG,MAAM,CAAkB;AACrD,QAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;AACzB,QAAA,SAAS,EAAE,IAAI,CAAC,gBAAgB,EAAE;AACnC,KAAA,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,aAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;;;AAIe,IAAA,iBAAiB,GAAG,MAAM,CAAC,MAAK;;AAE/C,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE;YAC1B;QACF;AAEA,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;AACnC,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE;QAE5C,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,KAAK;AAClC,YAAA,GAAG,OAAO;AACV,YAAA,QAAQ,EAAE,WAAW;AACrB,YAAA,SAAS,EAAE,YAAY;AACxB,SAAA,CAAC,CAAC;AACL,IAAA,CAAC,6DAAC;IAEK,WAAW,GAAA;;AAEhB,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,YAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE;QAClC;IACF;AAEiB,IAAA,MAAM,GAAG,kBAAkB,CAAI,OAAO;AACrD,QAAA,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;AACjB,QAAA,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE;AAC/B,QAAA,KAAK,EAAE;AACL,YAAA,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE;AACxB,YAAA,YAAY,EAAE,IAAI,CAAC,aAAa,EAAE;;AAElC,YAAA,IAAI,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;AACjE,SAAA;QACD,eAAe,EAAE,OAAO,IAAG;YACzB,OAAO,YAAY,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;YACxF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC1C,CAAC;QACD,oBAAoB,EAAE,OAAO,IAAG;YAC9B,OAAO,YAAY,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC;YAClG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QACjD,CAAC;;AAED,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE,IAAI;YAC3B,kBAAkB,EAAE,OAAO,IAAG;gBAC5B,OAAO,YAAY,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC;gBAC9F,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAChD,CAAC;SACF,CAAC;QACF,eAAe,EAAE,eAAe,EAAE;;AAElC,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,EAAE,CAAC;AAChF,QAAA,kBAAkB,EAAE,IAAI,CAAC,aAAa,EAAE;AACxC,QAAA,YAAY,EAAE;;AAEZ,YAAA,IAAI,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;AACjE,SAAA;AACF,KAAA,CAAC,CAAC;;AAGH,IAAA,IAAW,YAAY,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE;IACtC;AAEA,IAAA,IAAW,IAAI,GAAA;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI;IACvC;AAEA,IAAA,IAAW,aAAa,GAAA;AACtB,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE;YACzB,OAAO,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC,IAAI;QACjD;aAAO;;YAEL,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI;QACvC;IACF;;AAGA,IAAA,IAAW,kBAAkB,GAAA;QAC3B,OAAO,IAAI,CAAC,MAAa;IAC3B;uGA3TW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,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,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,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,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,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,oBAAA,EAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,sBAAA,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,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,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,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,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,SAAA,EAJd,CAAC,YAAY,CAAC,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,CAAC,CAAC,0BC1BzF,wlEAqDA,EAAA,MAAA,EAAA,CAAA,4wKAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED5BY,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAuB,mBAAmB,sLAAxC,mBAAmB,EAAAA,QAAA,EAAAC,QAAA,EAAAC,KAAA,EAAAC,KAAA,EAAAC,QAAA,EAAAC,KAAA,CAAA,CAAA,EAAA,CAAA;;2FAK/B,cAAc,EAAA,UAAA,EAAA,CAAA;kBAP1B,SAAS;+BACE,WAAW,EAAA,OAAA,EACZ,CAAC,WAAW,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,GAAG,eAAe,CAAC,aACzE,CAAC,YAAY,CAAC,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,CAAC,CAAC,EAAA,QAAA,EAAA,wlEAAA,EAAA,MAAA,EAAA,CAAA,4wKAAA,CAAA,EAAA;;;AE1BzF;;ACAA;;AAEG;;;;"}
@@ -26,11 +26,11 @@ class LegendElementsComponent {
26
26
  }, ...(ngDevMode ? [{ debugName: "computedClass" }] : []));
27
27
  itemClasses = computed(() => this._effectiveSize() === 'lg' ? 'justify-center' : 'justify-start', ...(ngDevMode ? [{ debugName: "itemClasses" }] : []));
28
28
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: LegendElementsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
29
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.4", type: LegendElementsComponent, isStandalone: true, selector: "sdc-legend-elements", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, elements: { classPropertyName: "elements", publicName: "elements", isSignal: true, isRequired: true, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div [class]=\"computedClass()\">\n @for (element of elements(); track element.name) {\n <div class=\"sdc-legend-elements__item\">\n <span class=\"sdc-legend-elements__dot\" [style.backgroundColor]=\"element.color\"></span>\n <p class=\"sdc-legend-elements__label\">{{ element.name }}</p>\n </div>\n }\n</div>\n", styles: [".sdc-legend-elements{--slec-gap-x: 0;--slec-gap-y: var(--space-6);display:grid;grid-auto-flow:row;row-gap:var(--slec-gap-y);column-gap:var(--slec-gap-x)}.sdc-legend-elements.size-xs{--slec-gap-y: var(--space-2)}.sdc-legend-elements.size-sm{--slec-gap-y: var(--space-4)}.sdc-legend-elements.size-md{--slec-gap-y: var(--space-6)}.sdc-legend-elements.size-lg{--slec-gap-y: var(--space-6);--slec-gap-x: var(--space-8)}.sdc-legend-elements__item{display:flex;align-items:center;justify-content:flex-start}.sdc-legend-elements.size-lg .sdc-legend-elements__item{justify-content:center}.sdc-legend-elements__dot{margin-right:var(--space-1_5);border-radius:9999px;width:var(--space-3);height:var(--space-3);flex-shrink:0;outline:.1px solid gray}.sdc-legend-elements__label{white-space:nowrap}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
29
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.4", type: LegendElementsComponent, isStandalone: true, selector: "sdc-legend-elements", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, elements: { classPropertyName: "elements", publicName: "elements", isSignal: true, isRequired: true, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div [class]=\"computedClass()\">\n @for (element of elements(); track element.name) {\n <div class=\"sdc-legend-elements__item\">\n <span class=\"sdc-legend-elements__dot\" [style.backgroundColor]=\"element.color\"></span>\n <p class=\"sdc-legend-elements__label\">{{ element.name }}</p>\n </div>\n }\n</div>\n", styles: [".sdc-legend-elements{--slec-gap-x: 0;--slec-gap-y: var(--space-6);display:grid;grid-auto-flow:row;row-gap:var(--slec-gap-y);column-gap:var(--slec-gap-x)}.sdc-legend-elements.size-xs{--slec-gap-y: var(--space-2)}.sdc-legend-elements.size-sm{--slec-gap-y: var(--space-4)}.sdc-legend-elements.size-md{--slec-gap-y: var(--space-6)}.sdc-legend-elements.size-lg{--slec-gap-y: var(--space-6);--slec-gap-x: var(--space-8)}.sdc-legend-elements__item{display:flex;align-items:center;justify-content:flex-start}.sdc-legend-elements.size-lg .sdc-legend-elements__item{justify-content:center}.sdc-legend-elements__dot{margin-right:var(--space-1_5);border-radius:9999px;width:var(--space-4);height:var(--space-4);flex-shrink:0;outline:.1px solid gray}.sdc-legend-elements__label{white-space:nowrap}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
30
30
  }
31
31
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: LegendElementsComponent, decorators: [{
32
32
  type: Component,
33
- args: [{ selector: 'sdc-legend-elements', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [class]=\"computedClass()\">\n @for (element of elements(); track element.name) {\n <div class=\"sdc-legend-elements__item\">\n <span class=\"sdc-legend-elements__dot\" [style.backgroundColor]=\"element.color\"></span>\n <p class=\"sdc-legend-elements__label\">{{ element.name }}</p>\n </div>\n }\n</div>\n", styles: [".sdc-legend-elements{--slec-gap-x: 0;--slec-gap-y: var(--space-6);display:grid;grid-auto-flow:row;row-gap:var(--slec-gap-y);column-gap:var(--slec-gap-x)}.sdc-legend-elements.size-xs{--slec-gap-y: var(--space-2)}.sdc-legend-elements.size-sm{--slec-gap-y: var(--space-4)}.sdc-legend-elements.size-md{--slec-gap-y: var(--space-6)}.sdc-legend-elements.size-lg{--slec-gap-y: var(--space-6);--slec-gap-x: var(--space-8)}.sdc-legend-elements__item{display:flex;align-items:center;justify-content:flex-start}.sdc-legend-elements.size-lg .sdc-legend-elements__item{justify-content:center}.sdc-legend-elements__dot{margin-right:var(--space-1_5);border-radius:9999px;width:var(--space-3);height:var(--space-3);flex-shrink:0;outline:.1px solid gray}.sdc-legend-elements__label{white-space:nowrap}\n"] }]
33
+ args: [{ selector: 'sdc-legend-elements', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [class]=\"computedClass()\">\n @for (element of elements(); track element.name) {\n <div class=\"sdc-legend-elements__item\">\n <span class=\"sdc-legend-elements__dot\" [style.backgroundColor]=\"element.color\"></span>\n <p class=\"sdc-legend-elements__label\">{{ element.name }}</p>\n </div>\n }\n</div>\n", styles: [".sdc-legend-elements{--slec-gap-x: 0;--slec-gap-y: var(--space-6);display:grid;grid-auto-flow:row;row-gap:var(--slec-gap-y);column-gap:var(--slec-gap-x)}.sdc-legend-elements.size-xs{--slec-gap-y: var(--space-2)}.sdc-legend-elements.size-sm{--slec-gap-y: var(--space-4)}.sdc-legend-elements.size-md{--slec-gap-y: var(--space-6)}.sdc-legend-elements.size-lg{--slec-gap-y: var(--space-6);--slec-gap-x: var(--space-8)}.sdc-legend-elements__item{display:flex;align-items:center;justify-content:flex-start}.sdc-legend-elements.size-lg .sdc-legend-elements__item{justify-content:center}.sdc-legend-elements__dot{margin-right:var(--space-1_5);border-radius:9999px;width:var(--space-4);height:var(--space-4);flex-shrink:0;outline:.1px solid gray}.sdc-legend-elements__label{white-space:nowrap}\n"] }]
34
34
  }], propDecorators: { size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], elements: [{ type: i0.Input, args: [{ isSignal: true, alias: "elements", required: true }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }] } });
35
35
 
36
36
  class LegendComponent {
@@ -58,11 +58,11 @@ class LegendComponent {
58
58
  return ['sdc-legend', `size-${normalizedSize}`, this.className()].filter(Boolean).join(' ');
59
59
  }, ...(ngDevMode ? [{ debugName: "computedClass" }] : []));
60
60
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: LegendComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
61
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.4", type: LegendComponent, isStandalone: true, selector: "sdc-legend", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, elements: { classPropertyName: "elements", publicName: "elements", isSignal: true, isRequired: true, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<fieldset [class]=\"computedClass()\">\n @if (title()) {\n <h1 class=\"sdc-legend__title\">\n {{ title() }}\n </h1>\n }\n <sdc-legend-elements [elements]=\"elements()\" [size]=\"size()\" />\n</fieldset>\n", styles: [".sdc-legend{--sdc-legend-gap-y: var(--space-4);--sdc-legend-padding-x: var(--space-7);--sdc-legend-padding-y: var(--space-2);--sdc-legend-font-size: var(--text-xs);--sdc-legend-font-weight: var(--font-normal);display:flex;flex-direction:column;align-items:center;gap:var(--sdc-legend-gap-y);max-width:375px;padding:var(--sdc-legend-padding-y) var(--sdc-legend-padding-x);font-size:var(--sdc-legend-font-size);font-weight:var(--sdc-legend-font-weight)}.sdc-legend__title{font-weight:var(--font-semibold);font-size:var(--text-lg)}.sdc-legend.size-xxs,.sdc-legend.size-xs{--sdc-legend-padding-x: 0;--sdc-legend-padding-y: 0;--sdc-legend-font-size: var(--text-sm)}.sdc-legend.size-sm{--sdc-legend-padding-x: var(--space-4);--sdc-legend-padding-y: var(--space-1)}.sdc-legend.size-md{--sdc-legend-padding-x: var(--space-7);--sdc-legend-padding-y: var(--space-2)}.sdc-legend.size-lg{--sdc-legend-gap-y: var(--space-6);--sdc-legend-padding-x: var(--space-8);--sdc-legend-padding-y: var(--space-4);--sdc-legend-font-size: var(--text-md);--sdc-legend-font-weight: var(--font-semibold)}\n"], dependencies: [{ kind: "component", type: LegendElementsComponent, selector: "sdc-legend-elements", inputs: ["size", "elements", "className"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
61
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.4", type: LegendComponent, isStandalone: true, selector: "sdc-legend", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, elements: { classPropertyName: "elements", publicName: "elements", isSignal: true, isRequired: true, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<fieldset [class]=\"computedClass()\">\n @if (title()) {\n <h1 class=\"sdc-legend__title\">\n {{ title() }}\n </h1>\n }\n\n <sdc-legend-elements [elements]=\"elements()\" [size]=\"size()\" />\n</fieldset>\n", styles: [".sdc-legend{--sdc-legend-gap-y: var(--space-4);--sdc-legend-padding-x: var(--space-7);--sdc-legend-padding-y: var(--space-2);--sdc-legend-font-size: var(--text-xs);--sdc-legend-font-weight: var(--font-normal);display:flex;flex-direction:column;align-items:center;gap:var(--sdc-legend-gap-y);max-width:375px;padding:var(--sdc-legend-padding-y) var(--sdc-legend-padding-x);font-size:var(--sdc-legend-font-size);font-weight:var(--sdc-legend-font-weight)}.sdc-legend__title{font-weight:var(--font-weight-extrabold);font-size:var(--text-xl);margin-bottom:20px;color:var(--color-black)}.sdc-legend.size-xxs,.sdc-legend.size-xs{--sdc-legend-padding-x: 0;--sdc-legend-padding-y: 0;--sdc-legend-font-size: var(--text-sm)}.sdc-legend.size-sm{--sdc-legend-padding-x: var(--space-4);--sdc-legend-padding-y: var(--space-1)}.sdc-legend.size-md{--sdc-legend-padding-x: var(--space-7);--sdc-legend-padding-y: var(--space-2)}.sdc-legend.size-lg{--sdc-legend-gap-y: var(--space-6);--sdc-legend-padding-x: var(--space-8);--sdc-legend-padding-y: var(--space-4);--sdc-legend-font-size: var(--text-md);--sdc-legend-font-weight: var(--font-semibold)}\n"], dependencies: [{ kind: "component", type: LegendElementsComponent, selector: "sdc-legend-elements", inputs: ["size", "elements", "className"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
62
62
  }
63
63
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: LegendComponent, decorators: [{
64
64
  type: Component,
65
- args: [{ selector: 'sdc-legend', standalone: true, imports: [LegendElementsComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<fieldset [class]=\"computedClass()\">\n @if (title()) {\n <h1 class=\"sdc-legend__title\">\n {{ title() }}\n </h1>\n }\n <sdc-legend-elements [elements]=\"elements()\" [size]=\"size()\" />\n</fieldset>\n", styles: [".sdc-legend{--sdc-legend-gap-y: var(--space-4);--sdc-legend-padding-x: var(--space-7);--sdc-legend-padding-y: var(--space-2);--sdc-legend-font-size: var(--text-xs);--sdc-legend-font-weight: var(--font-normal);display:flex;flex-direction:column;align-items:center;gap:var(--sdc-legend-gap-y);max-width:375px;padding:var(--sdc-legend-padding-y) var(--sdc-legend-padding-x);font-size:var(--sdc-legend-font-size);font-weight:var(--sdc-legend-font-weight)}.sdc-legend__title{font-weight:var(--font-semibold);font-size:var(--text-lg)}.sdc-legend.size-xxs,.sdc-legend.size-xs{--sdc-legend-padding-x: 0;--sdc-legend-padding-y: 0;--sdc-legend-font-size: var(--text-sm)}.sdc-legend.size-sm{--sdc-legend-padding-x: var(--space-4);--sdc-legend-padding-y: var(--space-1)}.sdc-legend.size-md{--sdc-legend-padding-x: var(--space-7);--sdc-legend-padding-y: var(--space-2)}.sdc-legend.size-lg{--sdc-legend-gap-y: var(--space-6);--sdc-legend-padding-x: var(--space-8);--sdc-legend-padding-y: var(--space-4);--sdc-legend-font-size: var(--text-md);--sdc-legend-font-weight: var(--font-semibold)}\n"] }]
65
+ args: [{ selector: 'sdc-legend', standalone: true, imports: [LegendElementsComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<fieldset [class]=\"computedClass()\">\n @if (title()) {\n <h1 class=\"sdc-legend__title\">\n {{ title() }}\n </h1>\n }\n\n <sdc-legend-elements [elements]=\"elements()\" [size]=\"size()\" />\n</fieldset>\n", styles: [".sdc-legend{--sdc-legend-gap-y: var(--space-4);--sdc-legend-padding-x: var(--space-7);--sdc-legend-padding-y: var(--space-2);--sdc-legend-font-size: var(--text-xs);--sdc-legend-font-weight: var(--font-normal);display:flex;flex-direction:column;align-items:center;gap:var(--sdc-legend-gap-y);max-width:375px;padding:var(--sdc-legend-padding-y) var(--sdc-legend-padding-x);font-size:var(--sdc-legend-font-size);font-weight:var(--sdc-legend-font-weight)}.sdc-legend__title{font-weight:var(--font-weight-extrabold);font-size:var(--text-xl);margin-bottom:20px;color:var(--color-black)}.sdc-legend.size-xxs,.sdc-legend.size-xs{--sdc-legend-padding-x: 0;--sdc-legend-padding-y: 0;--sdc-legend-font-size: var(--text-sm)}.sdc-legend.size-sm{--sdc-legend-padding-x: var(--space-4);--sdc-legend-padding-y: var(--space-1)}.sdc-legend.size-md{--sdc-legend-padding-x: var(--space-7);--sdc-legend-padding-y: var(--space-2)}.sdc-legend.size-lg{--sdc-legend-gap-y: var(--space-6);--sdc-legend-padding-x: var(--space-8);--sdc-legend-padding-y: var(--space-4);--sdc-legend-font-size: var(--text-md);--sdc-legend-font-weight: var(--font-semibold)}\n"] }]
66
66
  }], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], elements: [{ type: i0.Input, args: [{ isSignal: true, alias: "elements", required: true }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }] } });
67
67
 
68
68
  /*
@@ -1 +1 @@
1
- {"version":3,"file":"3ddv-software-division-components-dvm-legend.mjs","sources":["../../dvm/legend/ui/legend-elements/legend-elements.component.ts","../../dvm/legend/ui/legend-elements/legend-elements.component.html","../../dvm/legend/legend.component.ts","../../dvm/legend/legend.component.html","../../dvm/legend/public-api.ts","../../dvm/legend/3ddv-software-division-components-dvm-legend.ts"],"sourcesContent":["import { SIZE_ORDER, Size } from '@3ddv/software-division-components/shared';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { LegendElement, LegendSize } from '../../types';\n\n@Component({\n selector: 'sdc-legend-elements',\n standalone: true, // ← important if you use `imports`\n imports: [CommonModule],\n templateUrl: './legend-elements.component.html',\n styleUrls: ['./legend-elements.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LegendElementsComponent {\n public readonly size = input<Size>('md');\n public readonly elements = input.required<LegendElement[]>();\n public readonly className = input<string>('');\n\n private readonly supportedSizes: LegendSize[] = ['xs', 'sm', 'md', 'lg'];\n\n private normalizeSize = (s: Size): LegendSize => {\n const wantedIdx = SIZE_ORDER.indexOf(s);\n if (wantedIdx === -1) return 'md';\n for (let i = wantedIdx; i >= 0; i--) {\n const cand = SIZE_ORDER[i];\n if (this.supportedSizes.includes(cand as LegendSize)) return cand as LegendSize;\n }\n return 'md';\n };\n\n private readonly _effectiveSize = computed<LegendSize>(() => this.normalizeSize(this.size()));\n\n protected readonly computedClass = computed(() => {\n const sz = this._effectiveSize();\n return ['sdc-legend-elements', `size-${sz}`, this.className()].filter(Boolean).join(' ');\n });\n\n protected readonly itemClasses = computed(() =>\n this._effectiveSize() === 'lg' ? 'justify-center' : 'justify-start'\n );\n}\n","<div [class]=\"computedClass()\">\n @for (element of elements(); track element.name) {\n <div class=\"sdc-legend-elements__item\">\n <span class=\"sdc-legend-elements__dot\" [style.backgroundColor]=\"element.color\"></span>\n <p class=\"sdc-legend-elements__label\">{{ element.name }}</p>\n </div>\n }\n</div>\n","import { SIZE_ORDER, Size } from '@3ddv/software-division-components/shared';\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { LegendElement, LegendSize } from './types';\nimport { LegendElementsComponent } from './ui/legend-elements/legend-elements.component';\n\n@Component({\n selector: 'sdc-legend',\n standalone: true,\n imports: [LegendElementsComponent],\n templateUrl: './legend.component.html',\n styleUrls: ['./legend.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LegendComponent {\n public readonly title = input('');\n public readonly size = input<Size>('md');\n public readonly elements = input.required<LegendElement[]>();\n public readonly className = input<string>('');\n\n private readonly supportedSizes: LegendSize[] = ['xxs', 'xs', 'sm', 'md', 'lg'];\n\n /** Normalize any Size → LegendSize by flooring to nearest supported size. */\n private normalizeSize = (s: Size): LegendSize => {\n const wantedIdx = SIZE_ORDER.indexOf(s);\n if (wantedIdx === -1) return 'md';\n for (let i = wantedIdx; i >= 0; i--) {\n const candidate = SIZE_ORDER[i];\n if (this.supportedSizes.includes(candidate as LegendSize)) {\n return candidate as LegendSize;\n }\n }\n return 'md';\n };\n\n private readonly _effectiveSize = computed<LegendSize>(() => this.normalizeSize(this.size()));\n\n protected readonly computedClass = computed(() => {\n const normalizedSize = this._effectiveSize();\n return ['sdc-legend', `size-${normalizedSize}`, this.className()].filter(Boolean).join(' ');\n });\n}\n","<fieldset [class]=\"computedClass()\">\n @if (title()) {\n <h1 class=\"sdc-legend__title\">\n {{ title() }}\n </h1>\n }\n <sdc-legend-elements [elements]=\"elements()\" [size]=\"size()\" />\n</fieldset>\n","/*\n * Public API Surface of software-division-components\n */\n\nexport * from './legend.component';\nexport * from './types';\nexport * from './ui/legend-elements';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"3ddv-software-division-components-dvm-legend.mjs","sources":["../../dvm/legend/ui/legend-elements/legend-elements.component.ts","../../dvm/legend/ui/legend-elements/legend-elements.component.html","../../dvm/legend/legend.component.ts","../../dvm/legend/legend.component.html","../../dvm/legend/public-api.ts","../../dvm/legend/3ddv-software-division-components-dvm-legend.ts"],"sourcesContent":["import { SIZE_ORDER, Size } from '@3ddv/software-division-components/shared';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { LegendElement, LegendSize } from '../../types';\n\n@Component({\n selector: 'sdc-legend-elements',\n standalone: true, // ← important if you use `imports`\n imports: [CommonModule],\n templateUrl: './legend-elements.component.html',\n styleUrls: ['./legend-elements.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LegendElementsComponent {\n public readonly size = input<Size>('md');\n public readonly elements = input.required<LegendElement[]>();\n public readonly className = input<string>('');\n\n private readonly supportedSizes: LegendSize[] = ['xs', 'sm', 'md', 'lg'];\n\n private normalizeSize = (s: Size): LegendSize => {\n const wantedIdx = SIZE_ORDER.indexOf(s);\n if (wantedIdx === -1) return 'md';\n for (let i = wantedIdx; i >= 0; i--) {\n const cand = SIZE_ORDER[i];\n if (this.supportedSizes.includes(cand as LegendSize)) return cand as LegendSize;\n }\n return 'md';\n };\n\n private readonly _effectiveSize = computed<LegendSize>(() => this.normalizeSize(this.size()));\n\n protected readonly computedClass = computed(() => {\n const sz = this._effectiveSize();\n return ['sdc-legend-elements', `size-${sz}`, this.className()].filter(Boolean).join(' ');\n });\n\n protected readonly itemClasses = computed(() =>\n this._effectiveSize() === 'lg' ? 'justify-center' : 'justify-start'\n );\n}\n","<div [class]=\"computedClass()\">\n @for (element of elements(); track element.name) {\n <div class=\"sdc-legend-elements__item\">\n <span class=\"sdc-legend-elements__dot\" [style.backgroundColor]=\"element.color\"></span>\n <p class=\"sdc-legend-elements__label\">{{ element.name }}</p>\n </div>\n }\n</div>\n","import { SIZE_ORDER, Size } from '@3ddv/software-division-components/shared';\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { LegendElement, LegendSize } from './types';\nimport { LegendElementsComponent } from './ui/legend-elements/legend-elements.component';\n\n@Component({\n selector: 'sdc-legend',\n standalone: true,\n imports: [LegendElementsComponent],\n templateUrl: './legend.component.html',\n styleUrls: ['./legend.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LegendComponent {\n public readonly title = input('');\n public readonly size = input<Size>('md');\n public readonly elements = input.required<LegendElement[]>();\n public readonly className = input<string>('');\n\n private readonly supportedSizes: LegendSize[] = ['xxs', 'xs', 'sm', 'md', 'lg'];\n\n /** Normalize any Size → LegendSize by flooring to nearest supported size. */\n private normalizeSize = (s: Size): LegendSize => {\n const wantedIdx = SIZE_ORDER.indexOf(s);\n if (wantedIdx === -1) return 'md';\n for (let i = wantedIdx; i >= 0; i--) {\n const candidate = SIZE_ORDER[i];\n if (this.supportedSizes.includes(candidate as LegendSize)) {\n return candidate as LegendSize;\n }\n }\n return 'md';\n };\n\n private readonly _effectiveSize = computed<LegendSize>(() => this.normalizeSize(this.size()));\n\n protected readonly computedClass = computed(() => {\n const normalizedSize = this._effectiveSize();\n return ['sdc-legend', `size-${normalizedSize}`, this.className()].filter(Boolean).join(' ');\n });\n}\n","<fieldset [class]=\"computedClass()\">\n @if (title()) {\n <h1 class=\"sdc-legend__title\">\n {{ title() }}\n </h1>\n }\n\n <sdc-legend-elements [elements]=\"elements()\" [size]=\"size()\" />\n</fieldset>\n","/*\n * Public API Surface of software-division-components\n */\n\nexport * from './legend.component';\nexport * from './types';\nexport * from './ui/legend-elements';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}