@cute-widgets/base 20.0.2 → 20.0.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"cute-widgets-base-table.mjs","sources":["../../../../projects/cute-widgets/base/table/src/table.ts","../../../../projects/cute-widgets/base/table/src/cell.ts","../../../../projects/cute-widgets/base/table/src/row.ts","../../../../projects/cute-widgets/base/table/src/table-data-source.ts","../../../../projects/cute-widgets/base/table/src/text-column.ts","../../../../projects/cute-widgets/base/table/src/table.module.ts","../../../../projects/cute-widgets/base/table/cute-widgets-base-table.ts"],"sourcesContent":["/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {\r\n booleanAttribute,\r\n ChangeDetectionStrategy,\r\n Component,\r\n Directive, HostBinding, InjectionToken, Input,\r\n OnInit,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport {\r\n CdkTable,\r\n CDK_TABLE,\r\n STICKY_POSITIONING_LISTENER,\r\n HeaderRowOutlet, DataRowOutlet, NoDataRowOutlet, FooterRowOutlet,\r\n} from '@angular/cdk/table';\r\nimport {\r\n _DisposeViewRepeaterStrategy,\r\n _RecycleViewRepeaterStrategy,\r\n _VIEW_REPEATER_STRATEGY,\r\n} from '@angular/cdk/collections';\r\nimport {ThemeColor} from \"@cute-widgets/base/core\";\r\n\r\n//++ CWT\r\n/**\r\n * Used to provide a table to some of the subcomponents without causing a circular dependency.\r\n */\r\nexport const CUTE_TABLE = new InjectionToken<CuteTable<any>>(\"CUTE_TABLE\");\r\n\r\n/** Type of table borders. `all` - on all sides of the table and cells, `none` - without borders */\r\nexport type TableBorders = \"all\" | \"none\";\r\n\r\n/**\r\n * Enables the recycle view repeater strategy, which reduces rendering latency. Not compatible with\r\n * tables that animate rows.\r\n *\r\n * @deprecated This directive is a no-op and will be removed.\r\n * @breaking-change 23.0.0\r\n */\r\n@Directive({\r\n selector: 'cute-table[recycleRows], table[cute-table][recycleRows]',\r\n providers: [{provide: _VIEW_REPEATER_STRATEGY, useClass: _RecycleViewRepeaterStrategy}],\r\n standalone: true,\r\n})\r\nexport class CuteRecycleRows {}\r\n\r\n@Component({\r\n selector: 'cute-table, table[cute-table]',\r\n exportAs: 'cuteTable',\r\n // Note that according to MDN, the `caption` element has to be projected as the **first**\r\n // element in the table. See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/caption\r\n // We can't reuse `CDK_TABLE_TEMPLATE` because it's incompatible with local compilation mode.\r\n template: `\r\n <ng-content select=\"caption\"/>\r\n <ng-content select=\"colgroup, col\"/>\r\n\r\n <!--\r\n Unprojected content throws a hydration error so we need this to capture it.\r\n It gets removed on the client so it doesn't affect the layout.\r\n -->\r\n @if (_isServer) {\r\n <ng-content/>\r\n }\r\n\r\n @if (_isNativeHtmlTable) {\r\n <thead role=\"rowgroup\">\r\n <ng-container headerRowOutlet/>\r\n </thead>\r\n <tbody class=\"cute-data-table__content\" [class.table-group-divider]=\"divideGroups\" role=\"rowgroup\">\r\n <ng-container rowOutlet/>\r\n <ng-container noDataRowOutlet/>\r\n </tbody>\r\n <tfoot role=\"rowgroup\" [class.table-group-divider]=\"divideGroups\">\r\n <ng-container footerRowOutlet/>\r\n </tfoot>\r\n } @else {\r\n <ng-container headerRowOutlet/>\r\n <ng-container rowOutlet/>\r\n <ng-container noDataRowOutlet/>\r\n <ng-container footerRowOutlet/>\r\n }\r\n `,\r\n styleUrls: ['./table.scss'],\r\n host: {\r\n 'class': 'cute-table table',\r\n '[class.cute-table-fixed-layout]': 'fixedLayout',\r\n '[class.table-hover]': 'hoveredRows',\r\n '[class.table-striped]': 'stripedRows',\r\n '[class.table-striped-columns]': 'stripedColumns',\r\n '[class.table-bordered]': 'displayBorders==\"all\"',\r\n '[class.table-borderless]': 'displayBorders==\"none\"',\r\n '[class.table-sm]': 'compact',\r\n '[class.cute-table-vertical-head]': 'verticalHeads',\r\n '[style.--bs-table-border-color]': 'borderColor ? \"var(--bs-\"+borderColor+\")\" : undefined',\r\n },\r\n providers: [\r\n { provide: CdkTable, useExisting: CuteTable },\r\n { provide: CDK_TABLE, useExisting: CuteTable },\r\n { provide: CUTE_TABLE, useExisting: CuteTable },\r\n // TODO(michaeljamesparsons) Abstract the view repeater strategy to a directive API so this code\r\n // is only included in the build if used.\r\n { provide: _VIEW_REPEATER_STRATEGY, useClass: _DisposeViewRepeaterStrategy },\r\n // Prevent nested tables from seeing this table's StickyPositioningListener.\r\n { provide: STICKY_POSITIONING_LISTENER, useValue: null },\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n // See note on CdkTable for explanation on why this uses the default change detection strategy.\r\n // tslint:disable-next-line:validate-decorators\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n imports: [HeaderRowOutlet, DataRowOutlet, NoDataRowOutlet, FooterRowOutlet]\r\n})\r\nexport class CuteTable<T> extends CdkTable<T> implements OnInit {\r\n /** Overrides the sticky CSS class set by the `CdkTable`. */\r\n protected override stickyCssClass = 'cute-table-sticky';\r\n\r\n /** Overrides the need to add position: sticky on every sticky cell element in `CdkTable`. */\r\n protected override needsPositionStickyOnElement = false;\r\n\r\n @HostBinding(\"class\")\r\n get classList(): string {\r\n let classes = \"\";\r\n if (this.color) {\r\n classes += \" table-\"+this.color;\r\n }\r\n if (this.borderColor) {\r\n classes += \" border-\"+this.borderColor;\r\n }\r\n return classes.trim();\r\n }\r\n\r\n /** Theme color for all table cells. */\r\n @Input() color: ThemeColor | undefined;\r\n\r\n /** Theme color for cell borders. */\r\n @Input() borderColor: ThemeColor | undefined;\r\n\r\n /** Adds zebra-striping to any table row within the `<tbody>`. */\r\n @Input({transform: booleanAttribute}) stripedRows: boolean = false;\r\n\r\n /** Adds zebra-striping to any table column */\r\n @Input({transform: booleanAttribute}) stripedColumns: boolean = false;\r\n\r\n /** Enables a hover state on table rows within a `<tbody>` */\r\n @Input({transform: booleanAttribute}) hoveredRows: boolean = false;\r\n\r\n /** Makes a `<table>` more compact */\r\n @Input({transform: booleanAttribute})\r\n get compact(): boolean { return this._compact; }\r\n set compact(value: boolean) {\r\n if (value !== this._compact) {\r\n this._compact = value;\r\n this.updateStickyStyles();\r\n }\r\n }\r\n private _compact: boolean = false;\r\n\r\n /** What table borders to display. */\r\n @Input() displayBorders: TableBorders | undefined;\r\n\r\n /**\r\n * Adds a thicker border, darker between table groups — `<thead>`, `<tbody>`, and `<tfoot>`.\r\n * @experimental\r\n */\r\n @Input({transform: booleanAttribute}) divideGroups: boolean = false;\r\n\r\n /**\r\n * Whether to display `th` cells vertically.\r\n * @experimental\r\n */\r\n @Input({transform: booleanAttribute})\r\n get verticalHeads():boolean { return this._verticalHeads; }\r\n set verticalHeads(value: boolean) {\r\n if (value !== this._verticalHeads) {\r\n this._verticalHeads = value;\r\n this.updateStickyStyles();\r\n }\r\n }\r\n private _verticalHeads: boolean = false;\r\n\r\n protected updateStickyStyles() {\r\n this.updateStickyHeaderRowStyles();\r\n this.updateStickyFooterRowStyles();\r\n this.updateStickyColumnStyles();\r\n }\r\n\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {booleanAttribute, Directive, Input} from '@angular/core';\r\nimport {\r\n CdkCell,\r\n CdkCellDef,\r\n CdkColumnDef,\r\n CdkFooterCell,\r\n CdkFooterCellDef,\r\n CdkHeaderCell,\r\n CdkHeaderCellDef,\r\n} from '@angular/cdk/table';\r\nimport {ThemeColor} from \"@cute-widgets/base/core\";\r\n\r\n/**\r\n * Cell definition for the `cute-table`.\r\n * Captures the template of a column's data row cell as well as cell-specific properties.\r\n */\r\n@Directive({\r\n selector: '[cuteCellDef]',\r\n providers: [{provide: CdkCellDef, useExisting: CuteCellDef}],\r\n})\r\nexport class CuteCellDef extends CdkCellDef {}\r\n\r\n/**\r\n * Header cell definition for the `cute-table`.\r\n * Captures the template of a column's header cell and as well as cell-specific properties.\r\n */\r\n@Directive({\r\n selector: '[cuteHeaderCellDef]',\r\n providers: [{provide: CdkHeaderCellDef, useExisting: CuteHeaderCellDef}],\r\n})\r\nexport class CuteHeaderCellDef extends CdkHeaderCellDef {}\r\n\r\n/**\r\n * Footer cell definition for the `cute-table`.\r\n * Captures the template of a column's footer cell and as well as cell-specific properties.\r\n */\r\n@Directive({\r\n selector: '[cuteFooterCellDef]',\r\n providers: [{provide: CdkFooterCellDef, useExisting: CuteFooterCellDef}],\r\n})\r\nexport class CuteFooterCellDef extends CdkFooterCellDef {}\r\n\r\n/**\r\n * Column definition for the `cute-table`.\r\n * Defines a set of cells available for a table column.\r\n */\r\n@Directive({\r\n selector: '[cuteColumnDef]',\r\n inputs: [{name: 'sticky', transform: booleanAttribute}],\r\n providers: [\r\n {provide: CdkColumnDef, useExisting: CuteColumnDef},\r\n {provide: 'CUTE_SORT_HEADER_COLUMN_DEF', useExisting: CuteColumnDef},\r\n ],\r\n standalone: true,\r\n})\r\nexport class CuteColumnDef extends CdkColumnDef {\r\n /** Unique name for this column. */\r\n @Input('cuteColumnDef')\r\n override get name(): string { return this._name; }\r\n override set name(name: string) {this._setNameInput(name);}\r\n\r\n /**\r\n * Add \"cute-column-\" prefix in addition to \"cdk-column-\" prefix.\r\n * In the future, this will only add \"cute-column-\" and columnCssClassName\r\n * will change from type string[] to string.\r\n */\r\n protected override _updateColumnCssClassName() {\r\n super._updateColumnCssClassName();\r\n this._columnCssClassName!.push(`cute-column-${this.cssClassFriendlyName}`);\r\n }\r\n}\r\n\r\n/** Header cell template container that adds the right classes and role. */\r\n@Directive({\r\n selector: 'cute-header-cell, th[cute-header-cell]',\r\n host: {\r\n 'class': 'cute-header-cell',\r\n '[class]': 'color ? \"table-\"+color : \"\"',\r\n 'role': 'columnheader',\r\n },\r\n standalone: true,\r\n})\r\nexport class CuteHeaderCell extends CdkHeaderCell {\r\n\r\n /* Header cell's theme color. */\r\n @Input() color: ThemeColor | undefined;\r\n\r\n}\r\n\r\n/** Footer cell template container that adds the right classes and role. */\r\n@Directive({\r\n selector: 'cute-footer-cell, td[cute-footer-cell]',\r\n host: {\r\n 'class': 'cute-footer-cell',\r\n '[class]': 'color ? \"table-\"+color : \"\"',\r\n },\r\n standalone: true,\r\n})\r\nexport class CuteFooterCell extends CdkFooterCell {\r\n\r\n /* Footer cell's theme color */\r\n @Input() color: ThemeColor | undefined;\r\n\r\n}\r\n\r\n/** Cell template container that adds the right classes and role. */\r\n@Directive({\r\n selector: 'cute-cell, td[cute-cell]',\r\n host: {\r\n 'class': 'cute-cell',\r\n '[class.table-active]': 'active',\r\n '[class]': 'color ? \"table-\"+color : \"\"',\r\n },\r\n standalone: true,\r\n})\r\nexport class CuteCell extends CdkCell {\r\n\r\n /* Body cell's theme color */\r\n @Input() color: ThemeColor | undefined;\r\n\r\n /* Body cell's activity state */\r\n @Input({transform: booleanAttribute})\r\n active: boolean = false;\r\n\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {\r\n CdkFooterRow,\r\n CdkFooterRowDef,\r\n CdkHeaderRow,\r\n CdkHeaderRowDef,\r\n CdkRow,\r\n CdkRowDef,\r\n CdkNoDataRow,\r\n CdkCellOutlet,\r\n} from '@angular/cdk/table';\r\nimport {\r\n booleanAttribute,\r\n ChangeDetectionStrategy,\r\n Component,\r\n Directive,\r\n Input,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport {ThemeColor} from \"@cute-widgets/base/core\";\r\n\r\n// We can't reuse `CDK_ROW_TEMPLATE` because it's incompatible with local compilation mode.\r\nconst ROW_TEMPLATE = `<ng-container cdkCellOutlet></ng-container>`;\r\n\r\n/**\r\n * Header row definition for the `cute-table`.\r\n * Captures the header row's template and other header properties such as the columns to display.\r\n */\r\n@Directive({\r\n selector: '[cuteHeaderRowDef]',\r\n providers: [{provide: CdkHeaderRowDef, useExisting: CuteHeaderRowDef}],\r\n inputs: [\r\n {name: 'columns', alias: 'cuteHeaderRowDef'},\r\n {name: 'sticky', alias: 'cuteHeaderRowDefSticky', transform: booleanAttribute},\r\n ],\r\n})\r\nexport class CuteHeaderRowDef extends CdkHeaderRowDef {}\r\n\r\n/**\r\n * Footer row definition for the `cute-table`.\r\n * Captures the footer row's template and other footer properties such as the columns to display.\r\n */\r\n@Directive({\r\n selector: '[cuteFooterRowDef]',\r\n providers: [{provide: CdkFooterRowDef, useExisting: CuteFooterRowDef}],\r\n inputs: [\r\n {name: 'columns', alias: 'cuteFooterRowDef'},\r\n {name: 'sticky', alias: 'cuteFooterRowDefSticky', transform: booleanAttribute},\r\n ],\r\n})\r\nexport class CuteFooterRowDef extends CdkFooterRowDef {}\r\n\r\n/**\r\n * Data row definition for the `cute-table`.\r\n * Captures the data row's template and other properties such as the columns to display and\r\n * a when predicate that describes when this row should be used.\r\n */\r\n@Directive({\r\n selector: '[cuteRowDef]',\r\n providers: [{provide: CdkRowDef, useExisting: CuteRowDef}],\r\n inputs: ['columns: cuteRowDefColumns', 'when: cuteRowDefWhen'],\r\n})\r\nexport class CuteRowDef<T> extends CdkRowDef<T> {}\r\n\r\n/** Header template container that contains the cell outlet. Adds the right class and role. */\r\n@Component({\r\n selector: 'cute-header-row, tr[cute-header-row]',\r\n template: ROW_TEMPLATE,\r\n host: {\r\n 'class': 'cute-header-row',\r\n '[class]': 'color ? \"table-\"+color : \"\"',\r\n 'role': 'row',\r\n },\r\n // See note on CdkTable for explanation on why this uses the default change detection strategy.\r\n // tslint:disable-next-line:validate-decorators\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n encapsulation: ViewEncapsulation.None,\r\n exportAs: 'cuteHeaderRow',\r\n providers: [{ provide: CdkHeaderRow, useExisting: CuteHeaderRow }],\r\n imports: [CdkCellOutlet]\r\n})\r\nexport class CuteHeaderRow extends CdkHeaderRow {\r\n\r\n /* Cells' default color in the `<thead>` table section. */\r\n @Input() color: ThemeColor | undefined;\r\n\r\n}\r\n\r\n/** Footer template container that contains the cell outlet. Adds the right class and role. */\r\n@Component({\r\n selector: 'cute-footer-row, tr[cute-footer-row]',\r\n template: ROW_TEMPLATE,\r\n host: {\r\n 'class': 'cute-footer-row',\r\n '[class]': 'color ? \"table-\"+color : \"\"',\r\n 'role': 'row',\r\n },\r\n // See note on CdkTable for explanation on why this uses the default change detection strategy.\r\n // tslint:disable-next-line:validate-decorators\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n encapsulation: ViewEncapsulation.None,\r\n exportAs: 'cuteFooterRow',\r\n providers: [{ provide: CdkFooterRow, useExisting: CuteFooterRow }],\r\n imports: [CdkCellOutlet]\r\n})\r\nexport class CuteFooterRow extends CdkFooterRow {\r\n\r\n /* Cells' default color in the `<tfoot>` table section. */\r\n @Input() color: ThemeColor | undefined;\r\n\r\n}\r\n\r\n/** Data row template container that contains the cell outlet. Adds the right class and role. */\r\n@Component({\r\n selector: 'cute-row, tr[cute-row]',\r\n template: ROW_TEMPLATE,\r\n host: {\r\n 'class': 'cute-row',\r\n '[class.table-active]': 'active',\r\n '[class]': 'color ? \"table-\"+color : \"\"',\r\n 'role': 'row',\r\n },\r\n // See note on CdkTable for explanation on why this uses the default change detection strategy.\r\n // tslint:disable-next-line:validate-decorators\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n encapsulation: ViewEncapsulation.None,\r\n exportAs: 'cuteRow',\r\n providers: [{ provide: CdkRow, useExisting: CuteRow }],\r\n imports: [CdkCellOutlet]\r\n})\r\nexport class CuteRow extends CdkRow {\r\n\r\n /* Cells' default color in the `<tbody>` table section */\r\n @Input() color: ThemeColor | undefined;\r\n\r\n /* Whether the row has an active state */\r\n @Input({transform: booleanAttribute})\r\n active: boolean = false;\r\n\r\n}\r\n\r\n/** Row that can be used to display a message when no data is shown in the table. */\r\n@Directive({\r\n selector: 'ng-template[cuteNoDataRow]',\r\n providers: [{provide: CdkNoDataRow, useExisting: CuteNoDataRow}],\r\n standalone: true,\r\n})\r\nexport class CuteNoDataRow extends CdkNoDataRow {\r\n override _cellSelector = 'td, cute-cell, [cute-cell], .cute-cell';\r\n\r\n constructor() {\r\n super();\r\n this._contentClassNames.push('cute-no-data-row', 'cute-row');\r\n this._cellClassNames.push('cute-cell', 'cute-no-data-cell');\r\n }\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {\r\n BehaviorSubject,\r\n combineLatest,\r\n merge,\r\n Observable,\r\n of as observableOf,\r\n Subject,\r\n Subscription,\r\n} from 'rxjs';\r\nimport {DataSource} from '@angular/cdk/collections';\r\nimport {_isNumberValue} from '@angular/cdk/coercion';\r\nimport {CuteSort, Sort} from '@cute-widgets/base/sort';\r\nimport {CutePaginator, PageEvent} from '@cute-widgets/base/paginator';\r\nimport {map} from 'rxjs/operators';\r\n\r\n/**\r\n * Corresponds to `Number.MAX_SAFE_INTEGER`. Moved out into a variable here due to\r\n * flaky browser support and the value not being defined in Closure's typings.\r\n */\r\nconst MAX_SAFE_INTEGER = 9007199254740991;\r\n\r\n/**\r\n * Data source that accepts a client-side data array and includes native support of filtering,\r\n * sorting (using CuteSort), and pagination (using CutePaginator).\r\n *\r\n * Allows for sort customization by overriding sortingDataAccessor, which defines how data\r\n * properties are accessed. It also allows for filter customization by overriding filterPredicate,\r\n * which defines how row data is converted to a string for filter matching.\r\n *\r\n * **Note:** This class is meant to be a simple data source to help you get started. As such,\r\n * it isn't equipped to handle some more advanced cases like robust i18n support or server-side\r\n * interactions. If your app needs to support more advanced use cases, consider implementing your\r\n * own `DataSource`.\r\n */\r\nexport class CuteTableDataSource<T, P extends CutePaginator = CutePaginator> extends DataSource<T> {\r\n /** Stream that emits when a new data array is set on the data source. */\r\n private readonly _data: BehaviorSubject<T[]>;\r\n\r\n /** Stream emitting render data to the table (depends on ordered data changes). */\r\n private readonly _renderData = new BehaviorSubject<T[]>([]);\r\n\r\n /** Stream that emits when a new filter string is set on the data source. */\r\n private readonly _filter = new BehaviorSubject<string>('');\r\n\r\n /** Used to react to internal changes of the paginator that are made by the data source itself. */\r\n private readonly _internalPageChanges = new Subject<void>();\r\n\r\n /**\r\n * Subscription to the changes that should trigger an update to the table's rendered rows, such\r\n * as filtering, sorting, pagination, or base data changes.\r\n */\r\n private _renderChangesSubscription: Subscription | null = null;\r\n\r\n /**\r\n * The filtered set of data that has been matched by the filter string, or all the data if there\r\n * is no filter. Useful for knowing the set of data the table represents.\r\n * For example, a 'selectAll()' function would likely want to select the set of filtered data\r\n * shown to the user rather than all the data.\r\n */\r\n filteredData: T[] = [];\r\n\r\n /** Array of data that should be rendered by the table, where each object represents one row. */\r\n get data() { return this._data.value; }\r\n set data(data: T[]) {\r\n data = Array.isArray(data) ? data : [];\r\n this._data.next(data);\r\n // Normally the `filteredData` is updated by the re-render\r\n // subscription, but that won't happen if it's inactive.\r\n if (!this._renderChangesSubscription) {\r\n this._filterData(data);\r\n }\r\n }\r\n\r\n /**\r\n * Filter term that should be used to filter out objects from the data array. To override how\r\n * data objects match to this filter string, provide a custom function for filterPredicate.\r\n */\r\n get filter(): string { return this._filter.value; }\r\n set filter(filter: string) {\r\n this._filter.next(filter);\r\n // Normally the `filteredData` is updated by the re-render\r\n // subscription, but that won't happen if it's inactive.\r\n if (!this._renderChangesSubscription) {\r\n this._filterData(this.data);\r\n }\r\n }\r\n\r\n /**\r\n * Instance of the CuteSort directive used by the table to control its sorting. Sort changes\r\n * emitted by the CuteSort will trigger an update to the table's rendered data.\r\n */\r\n get sort(): CuteSort | null { return this._sort; }\r\n set sort(sort: CuteSort | null) {\r\n this._sort = sort;\r\n this._updateChangeSubscription();\r\n }\r\n private _sort: CuteSort | null = null;\r\n\r\n /**\r\n * Instance of the paginator component used by the table to control what page of the data is\r\n * displayed. Page changes emitted by the paginator will trigger an update to the\r\n * table's rendered data.\r\n *\r\n * Note that the data source uses the paginator's properties to calculate which page of data\r\n * should be displayed. If the paginator receives its properties as template inputs,\r\n * e.g. `[pageLength]=100` or `[pageIndex]=1`, then be sure that the paginator's view has been\r\n * initialized before assigning it to this data source.\r\n */\r\n get paginator(): P | null { return this._paginator; }\r\n set paginator(paginator: P | null) {\r\n this._paginator = paginator;\r\n this._updateChangeSubscription();\r\n }\r\n private _paginator: P | null = null;\r\n\r\n /**\r\n * Data accessor function that is used for accessing data properties for sorting through\r\n * the default sortData function.\r\n * This default function assumes that the sort header IDs (which defaults to the column name)\r\n * matches the data's properties (e.g., column Xyz represents data['Xyz']).\r\n * May be set to a custom function for different behavior.\r\n * @param data Data object that is being accessed.\r\n * @param sortHeaderId The name of the column that represents the data.\r\n */\r\n sortingDataAccessor = (data: T, sortHeaderId: string): string | number => {\r\n const value = (data as unknown as Record<string, any>)[sortHeaderId];\r\n\r\n if (_isNumberValue(value)) {\r\n const numberValue = Number(value);\r\n\r\n // Numbers beyond `MAX_SAFE_INTEGER` can't be compared reliably so we\r\n // leave them as strings. For more info: https://goo.gl/y5vbSg\r\n return numberValue < MAX_SAFE_INTEGER ? numberValue : value;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n /**\r\n * Gets a sorted copy of the data array based on the state of the CuteSort. Called\r\n * after changes are made to the filtered data or when sort changes are emitted from CuteSort.\r\n * By default, the function retrieves the active sort and its direction and compares data\r\n * by retrieving data using the sortingDataAccessor. May be overridden for a custom implementation\r\n * of data ordering.\r\n * @param data The array of data that should be sorted.\r\n * @param sort The connected CuteSort that holds the current sort state.\r\n */\r\n sortData = (data: T[], sort: CuteSort): T[] => {\r\n const active = sort.active;\r\n const direction = sort.direction;\r\n if (!active || direction == '') {\r\n return data;\r\n }\r\n\r\n return data.sort((a, b) => {\r\n let valueA = this.sortingDataAccessor(a, active);\r\n let valueB = this.sortingDataAccessor(b, active);\r\n\r\n // If there are data in the column that can be converted to a number,\r\n // it must be ensured that the rest of the data\r\n // is of the same type so as not to order incorrectly.\r\n const valueAType = typeof valueA;\r\n const valueBType = typeof valueB;\r\n\r\n if (valueAType !== valueBType) {\r\n if (valueAType === 'number') {\r\n valueA += '';\r\n }\r\n if (valueBType === 'number') {\r\n valueB += '';\r\n }\r\n }\r\n\r\n // If both valueA and valueB exist (truthy), then compare the two. Otherwise, check if\r\n // one value exists while the other doesn't. In this case, existing value should come last.\r\n // This avoids inconsistent results when comparing values to undefined/null.\r\n // If neither value exists, return 0 (equal).\r\n let comparatorResult = 0;\r\n if (valueA != null && valueB != null) {\r\n // Check if one value is greater than the other; if equal, comparatorResult should remain 0.\r\n if (valueA > valueB) {\r\n comparatorResult = 1;\r\n } else if (valueA < valueB) {\r\n comparatorResult = -1;\r\n }\r\n } else if (valueA != null) {\r\n comparatorResult = 1;\r\n } else if (valueB != null) {\r\n comparatorResult = -1;\r\n }\r\n\r\n return comparatorResult * (direction == 'asc' ? 1 : -1);\r\n });\r\n }\r\n\r\n /**\r\n * Checks if a data object matches the data source's filter string. By default, each data object\r\n * is converted to a string of its properties and returns true if the filter has\r\n * at least one occurrence in that string. By default, the filter string has its whitespace\r\n * trimmed and the match is case-insensitive. May be overridden for a custom implementation of\r\n * filter matching.\r\n * @param data Data object used to check against the filter.\r\n * @param filter Filter string that has been set on the data source.\r\n * @returns Whether the filter matches against the data\r\n */\r\n filterPredicate = (data: T, filter: string): boolean => {\r\n // Transform the data into a lowercase string of all property values.\r\n const dataStr = Object.keys(data as unknown as Record<string, any>)\r\n .reduce((currentTerm: string, key: string) => {\r\n // Use an obscure Unicode character to delimit the words in the concatenated string.\r\n // This avoids matches where the values of two columns combined will match the user's query\r\n // (e.g. `Flute` and `Stop` will match `Test`). The character is intended to be something\r\n // that has a very low chance of being typed in by somebody in a text field. This one in\r\n // particular is \"White up-pointing triangle with dot\" from\r\n // https://en.wikipedia.org/wiki/List_of_Unicode_characters\r\n return currentTerm + (data as unknown as Record<string, any>)[key] + '◬';\r\n }, '')\r\n .toLowerCase();\r\n\r\n // Transform the filter by converting it to lowercase and removing whitespace.\r\n const transformedFilter = filter.trim().toLowerCase();\r\n\r\n return dataStr.indexOf(transformedFilter) != -1;\r\n };\r\n\r\n constructor(initialData: T[] = []) {\r\n super();\r\n this._data = new BehaviorSubject<T[]>(initialData);\r\n this._updateChangeSubscription();\r\n }\r\n\r\n /**\r\n * Subscribe to changes that should trigger an update to the table's rendered rows. When the\r\n * changes occur, process the current state of the filter, sort, and pagination along with\r\n * the provided base data and send it to the table for rendering.\r\n */\r\n protected _updateChangeSubscription() {\r\n // Sorting and/or pagination should be watched if sort and/or paginator are provided.\r\n // The events should emit whenever the component emits a change or initializes, or if no\r\n // component is provided, a stream with just a null event should be provided.\r\n // The `sortChange` and `pageChange` acts as a signal to the `combineLatests` below so that the\r\n // pipeline can progress to the next step. Note that the value from these streams are not used,\r\n // they purely act as a signal to progress in the pipeline.\r\n const sortChange: Observable<Sort | null | void> = this._sort\r\n ? (merge(this._sort.sortChange, this._sort.initialized$) as Observable<Sort | void>)\r\n : observableOf(null);\r\n const pageChange: Observable<PageEvent | null | void> = this._paginator\r\n ? (merge(\r\n this._paginator.page,\r\n this._internalPageChanges,\r\n this._paginator.initialized$,\r\n ) as Observable<PageEvent | void>)\r\n : observableOf(null);\r\n const dataStream = this._data;\r\n // Watch for base data or filter changes to provide a filtered set of data.\r\n const filteredData = combineLatest([dataStream, this._filter]).pipe(\r\n map(([data]) => this._filterData(data)),\r\n );\r\n // Watch for filtered data or sort changes to provide an ordered set of data.\r\n const orderedData = combineLatest([filteredData, sortChange]).pipe(\r\n map(([data]) => this._orderData(data)),\r\n );\r\n // Watch for ordered data or page changes to provide a paged set of data.\r\n const paginatedData = combineLatest([orderedData, pageChange]).pipe(\r\n map(([data]) => this._pageData(data)),\r\n );\r\n // Watched for paged data changes and send the result to the table to render.\r\n this._renderChangesSubscription?.unsubscribe();\r\n this._renderChangesSubscription = paginatedData.subscribe(data => this._renderData.next(data));\r\n }\r\n\r\n /**\r\n * Returns a filtered data array where each filter object contains the filter string within\r\n * the result of the filterPredicate function. If no filter is set, return the data array\r\n * as provided.\r\n */\r\n protected _filterData(data: T[]) {\r\n // If there is a filter string, filter out data that does not contain it.\r\n // Each data object is converted to a string using the function defined by filterPredicate.\r\n // May be overridden for customization.\r\n this.filteredData =\r\n this.filter == null || this.filter === ''\r\n ? data\r\n : data.filter(obj => this.filterPredicate(obj, this.filter));\r\n\r\n if (this.paginator) {\r\n this._updatePaginator(this.filteredData.length);\r\n }\r\n\r\n return this.filteredData;\r\n }\r\n\r\n /**\r\n * Returns a sorted copy of the data if CuteSort has a sort applied, otherwise just returns the\r\n * data array as provided. Uses the default data accessor for data lookup, unless a\r\n * sortDataAccessor function is defined.\r\n */\r\n protected _orderData(data: T[]): T[] {\r\n // If there is no active sort or direction, return the data without trying to sort.\r\n if (!this.sort) {\r\n return data;\r\n }\r\n\r\n return this.sortData(data.slice(), this.sort);\r\n }\r\n\r\n /**\r\n * Returns a paged slice of the provided data array according to the provided paginator's page\r\n * index and length. If there is no paginator provided, return the data array as provided.\r\n */\r\n protected _pageData(data: T[]): T[] {\r\n if (!this.paginator) {\r\n return data;\r\n }\r\n\r\n const startIndex = this.paginator.pageIndex * this.paginator.pageSize;\r\n return data.slice(startIndex, startIndex + this.paginator.pageSize);\r\n }\r\n\r\n /**\r\n * Updates the paginator to reflect the length of the filtered data, and makes sure that the page\r\n * index does not exceed the paginator's last page. Values are changed in a resolved promise to\r\n * guard against making property changes within a round of change detection.\r\n */\r\n protected _updatePaginator(filteredDataLength: number) {\r\n Promise.resolve().then(() => {\r\n const paginator = this.paginator;\r\n\r\n if (!paginator) {\r\n return;\r\n }\r\n\r\n paginator.length = filteredDataLength;\r\n\r\n // If the page index is set beyond the page, reduce it to the last page.\r\n if (paginator.pageIndex > 0) {\r\n const lastPageIndex = Math.ceil(paginator.length / paginator.pageSize) - 1 || 0;\r\n const newPageIndex = Math.min(paginator.pageIndex, lastPageIndex);\r\n\r\n if (newPageIndex !== paginator.pageIndex) {\r\n paginator.pageIndex = newPageIndex;\r\n\r\n // Since the paginator only emits after user-generated changes,\r\n // we need our own stream, so we know to should re-render the data.\r\n this._internalPageChanges.next();\r\n }\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Used by the CuteTable. Called when it connects to the data source.\r\n */\r\n connect() {\r\n if (!this._renderChangesSubscription) {\r\n this._updateChangeSubscription();\r\n }\r\n return this._renderData;\r\n }\r\n\r\n /**\r\n * Used by the CuteTable. Called when it disconnects from the data source.\r\n */\r\n disconnect() {\r\n this._renderChangesSubscription?.unsubscribe();\r\n this._renderChangesSubscription = null;\r\n }\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {CdkTextColumn} from '@angular/cdk/table';\r\nimport {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';\r\nimport {CuteColumnDef, CuteHeaderCellDef, CuteHeaderCell, CuteCellDef, CuteCell} from './cell';\r\n\r\n/**\r\n * Column that simply shows text content for the header and row cells. Assumes that the table\r\n * is using the native table implementation (`<table>`).\r\n *\r\n * By default, the name of this column will be the header text and data property accessor.\r\n * The header text can be overridden with the `headerText` input. Cell values can be overridden with\r\n * the `dataAccessor` input. Change the text justification to the start or end using the `justify`\r\n * input.\r\n */\r\n@Component({\r\n selector: 'cute-text-column',\r\n template: `\r\n <ng-container cuteColumnDef>\r\n <th cute-header-cell *cuteHeaderCellDef [style.text-align]=\"justify\">\r\n {{headerText}}\r\n </th>\r\n <td cute-cell *cuteCellDef=\"let data\" [style.text-align]=\"justify\">\r\n {{dataAccessor(data, name)}}\r\n </td>\r\n </ng-container>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n // Change detection is intentionally not set to OnPush. This component's template will be provided\r\n // to the table to be inserted into its view. This is problematic when change detection runs since\r\n // the bindings in this template will be evaluated _after_ the table's view is evaluated, which\r\n // means the template in the table's view will not have the updated value (and in fact will cause\r\n // an ExpressionChangedAfterItHasBeenCheckedError).\r\n // tslint:disable-next-line:validate-decorators\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n imports: [CuteColumnDef, CuteHeaderCellDef, CuteHeaderCell, CuteCellDef, CuteCell]\r\n})\r\nexport class CuteTextColumn<T> extends CdkTextColumn<T> {}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {NgModule, Type} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {\r\n CuteCell,\r\n CuteCellDef,\r\n CuteColumnDef,\r\n CuteFooterCell,\r\n CuteFooterCellDef,\r\n CuteHeaderCell,\r\n CuteHeaderCellDef\r\n} from \"./cell\";\r\nimport {\r\n CuteFooterRow,\r\n CuteFooterRowDef,\r\n CuteHeaderRow,\r\n CuteHeaderRowDef,\r\n CuteNoDataRow,\r\n CuteRow,\r\n CuteRowDef\r\n} from \"./row\";\r\nimport {CuteTextColumn} from \"./text-column\";\r\nimport {CuteRecycleRows, CuteTable} from \"./table\";\r\nimport {CdkTableModule} from \"@angular/cdk/table\";\r\n\r\nconst TYPES: (any | Type<any>)[] = [\r\n // Table\r\n CuteTable,\r\n CuteRecycleRows,\r\n\r\n // Template defs\r\n CuteHeaderCellDef,\r\n CuteHeaderRowDef,\r\n CuteColumnDef,\r\n CuteCellDef,\r\n CuteRowDef,\r\n CuteFooterCellDef,\r\n CuteFooterRowDef,\r\n\r\n // Cell directives\r\n CuteHeaderCell,\r\n CuteCell,\r\n CuteFooterCell,\r\n\r\n // Row directives\r\n CuteHeaderRow,\r\n CuteRow,\r\n CuteFooterRow,\r\n CuteNoDataRow,\r\n\r\n CuteTextColumn,\r\n];\r\n\r\n@NgModule({\r\n imports: [CommonModule, CdkTableModule, ...TYPES],\r\n exports: TYPES,\r\n declarations: [],\r\n})\r\nexport class CuteTableModule {\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["observableOf"],"mappings":"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"}
1
+ {"version":3,"file":"cute-widgets-base-table.mjs","sources":["../../../../projects/cute-widgets/base/table/src/table.ts","../../../../projects/cute-widgets/base/table/src/cell.ts","../../../../projects/cute-widgets/base/table/src/row.ts","../../../../projects/cute-widgets/base/table/src/table-data-source.ts","../../../../projects/cute-widgets/base/table/src/text-column.ts","../../../../projects/cute-widgets/base/table/src/table.module.ts","../../../../projects/cute-widgets/base/table/cute-widgets-base-table.ts"],"sourcesContent":["/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {\r\n booleanAttribute,\r\n ChangeDetectionStrategy,\r\n Component,\r\n Directive, HostBinding, InjectionToken, Input,\r\n OnInit,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport {\r\n CdkTable,\r\n CDK_TABLE,\r\n STICKY_POSITIONING_LISTENER,\r\n HeaderRowOutlet, DataRowOutlet, NoDataRowOutlet, FooterRowOutlet,\r\n} from '@angular/cdk/table';\r\nimport {\r\n _DisposeViewRepeaterStrategy,\r\n _RecycleViewRepeaterStrategy,\r\n _VIEW_REPEATER_STRATEGY,\r\n} from '@angular/cdk/collections';\r\nimport {ThemeColor} from \"@cute-widgets/base/core\";\r\n\r\n//++ CWT\r\n/**\r\n * Used to provide a table to some of the subcomponents without causing a circular dependency.\r\n */\r\nexport const CUTE_TABLE = new InjectionToken<CuteTable<any>>(\"CUTE_TABLE\");\r\n\r\n/** Type of table borders. `all` - on all sides of the table and cells, `none` - without borders */\r\nexport type TableBorders = \"all\" | \"none\";\r\n\r\n/**\r\n * Enables the recycle view repeater strategy, which reduces rendering latency. Not compatible with\r\n * tables that animate rows.\r\n *\r\n * @deprecated This directive is a no-op and will be removed.\r\n * @breaking-change 23.0.0\r\n */\r\n@Directive({\r\n selector: 'cute-table[recycleRows], table[cute-table][recycleRows]',\r\n providers: [{provide: _VIEW_REPEATER_STRATEGY, useClass: _RecycleViewRepeaterStrategy}],\r\n standalone: true,\r\n})\r\nexport class CuteRecycleRows {}\r\n\r\n/**\r\n * @inheritDoc\r\n */\r\n@Component({\r\n selector: 'cute-table, table[cute-table]',\r\n exportAs: 'cuteTable',\r\n // Note that according to MDN, the `caption` element has to be projected as the **first**\r\n // element in the table. See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/caption\r\n // We can't reuse `CDK_TABLE_TEMPLATE` because it's incompatible with local compilation mode.\r\n template: `\r\n <ng-content select=\"caption\"/>\r\n <ng-content select=\"colgroup, col\"/>\r\n\r\n <!--\r\n Unprojected content throws a hydration error so we need this to capture it.\r\n It gets removed on the client so it doesn't affect the layout.\r\n -->\r\n @if (_isServer) {\r\n <ng-content/>\r\n }\r\n\r\n @if (_isNativeHtmlTable) {\r\n <thead role=\"rowgroup\">\r\n <ng-container headerRowOutlet/>\r\n </thead>\r\n <tbody class=\"cute-data-table__content\" [class.table-group-divider]=\"divideGroups\" role=\"rowgroup\">\r\n <ng-container rowOutlet/>\r\n <ng-container noDataRowOutlet/>\r\n </tbody>\r\n <tfoot role=\"rowgroup\" [class.table-group-divider]=\"divideGroups\">\r\n <ng-container footerRowOutlet/>\r\n </tfoot>\r\n } @else {\r\n <ng-container headerRowOutlet/>\r\n <ng-container rowOutlet/>\r\n <ng-container noDataRowOutlet/>\r\n <ng-container footerRowOutlet/>\r\n }\r\n `,\r\n styleUrls: ['./table.scss'],\r\n host: {\r\n 'class': 'cute-table table',\r\n '[class.cute-table-fixed-layout]': 'fixedLayout',\r\n '[class.table-hover]': 'hoveredRows',\r\n '[class.table-striped]': 'stripedRows',\r\n '[class.table-striped-columns]': 'stripedColumns',\r\n '[class.table-bordered]': 'displayBorders==\"all\"',\r\n '[class.table-borderless]': 'displayBorders==\"none\"',\r\n '[class.table-sm]': 'compact',\r\n '[class.cute-table-vertical-head]': 'verticalHeads',\r\n '[style.--bs-table-border-color]': 'borderColor ? \"var(--bs-\"+borderColor+\")\" : undefined',\r\n },\r\n providers: [\r\n { provide: CdkTable, useExisting: CuteTable },\r\n { provide: CDK_TABLE, useExisting: CuteTable },\r\n { provide: CUTE_TABLE, useExisting: CuteTable },\r\n // TODO(michaeljamesparsons) Abstract the view repeater strategy to a directive API so this code\r\n // is only included in the build if used.\r\n { provide: _VIEW_REPEATER_STRATEGY, useClass: _DisposeViewRepeaterStrategy },\r\n // Prevent nested tables from seeing this table's StickyPositioningListener.\r\n { provide: STICKY_POSITIONING_LISTENER, useValue: null },\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n // See note on CdkTable for explanation on why this uses the default change detection strategy.\r\n // tslint:disable-next-line:validate-decorators\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n imports: [HeaderRowOutlet, DataRowOutlet, NoDataRowOutlet, FooterRowOutlet]\r\n})\r\nexport class CuteTable<T> extends CdkTable<T> implements OnInit {\r\n /** Overrides the sticky CSS class set by the `CdkTable`. */\r\n protected override stickyCssClass = 'cute-table-sticky';\r\n\r\n /** Overrides the need to add position: sticky on every sticky cell element in `CdkTable`. */\r\n protected override needsPositionStickyOnElement = false;\r\n\r\n @HostBinding(\"class\")\r\n get classList(): string {\r\n let classes = \"\";\r\n if (this.color) {\r\n classes += \" table-\"+this.color;\r\n }\r\n if (this.borderColor) {\r\n classes += \" border-\"+this.borderColor;\r\n }\r\n return classes.trim();\r\n }\r\n\r\n /** Theme color for all table cells. */\r\n @Input() color: ThemeColor | undefined;\r\n\r\n /** Theme color for cell borders. */\r\n @Input() borderColor: ThemeColor | undefined;\r\n\r\n /** Adds zebra-striping to any table row within the `<tbody>`. */\r\n @Input({transform: booleanAttribute}) stripedRows: boolean = false;\r\n\r\n /** Adds zebra-striping to any table column */\r\n @Input({transform: booleanAttribute}) stripedColumns: boolean = false;\r\n\r\n /** Enables a hover state on table rows within a `<tbody>` */\r\n @Input({transform: booleanAttribute}) hoveredRows: boolean = false;\r\n\r\n /** Makes a `<table>` more compact */\r\n @Input({transform: booleanAttribute})\r\n get compact(): boolean { return this._compact; }\r\n set compact(value: boolean) {\r\n if (value !== this._compact) {\r\n this._compact = value;\r\n this.updateStickyStyles();\r\n }\r\n }\r\n private _compact: boolean = false;\r\n\r\n /** What table borders to display. */\r\n @Input() displayBorders: TableBorders | undefined;\r\n\r\n /**\r\n * Adds a thicker border, darker between table groups — `<thead>`, `<tbody>`, and `<tfoot>`.\r\n * @experimental\r\n */\r\n @Input({transform: booleanAttribute}) divideGroups: boolean = false;\r\n\r\n /**\r\n * Whether to display `th` cells vertically.\r\n * @experimental\r\n */\r\n @Input({transform: booleanAttribute})\r\n get verticalHeads():boolean { return this._verticalHeads; }\r\n set verticalHeads(value: boolean) {\r\n if (value !== this._verticalHeads) {\r\n this._verticalHeads = value;\r\n this.updateStickyStyles();\r\n }\r\n }\r\n private _verticalHeads: boolean = false;\r\n\r\n protected updateStickyStyles() {\r\n this.updateStickyHeaderRowStyles();\r\n this.updateStickyFooterRowStyles();\r\n this.updateStickyColumnStyles();\r\n }\r\n\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {booleanAttribute, Directive, Input} from '@angular/core';\r\nimport {\r\n CdkCell,\r\n CdkCellDef,\r\n CdkColumnDef,\r\n CdkFooterCell,\r\n CdkFooterCellDef,\r\n CdkHeaderCell,\r\n CdkHeaderCellDef,\r\n} from '@angular/cdk/table';\r\nimport {ThemeColor} from \"@cute-widgets/base/core\";\r\n\r\n/**\r\n * Cell definition for the `cute-table`.\r\n * Captures the template of a column's data row cell as well as cell-specific properties.\r\n */\r\n@Directive({\r\n selector: '[cuteCellDef]',\r\n providers: [{provide: CdkCellDef, useExisting: CuteCellDef}],\r\n})\r\nexport class CuteCellDef extends CdkCellDef {}\r\n\r\n/**\r\n * Header cell definition for the `cute-table`.\r\n * Captures the template of a column's header cell and as well as cell-specific properties.\r\n */\r\n@Directive({\r\n selector: '[cuteHeaderCellDef]',\r\n providers: [{provide: CdkHeaderCellDef, useExisting: CuteHeaderCellDef}],\r\n})\r\nexport class CuteHeaderCellDef extends CdkHeaderCellDef {}\r\n\r\n/**\r\n * Footer cell definition for the `cute-table`.\r\n * Captures the template of a column's footer cell and as well as cell-specific properties.\r\n */\r\n@Directive({\r\n selector: '[cuteFooterCellDef]',\r\n providers: [{provide: CdkFooterCellDef, useExisting: CuteFooterCellDef}],\r\n})\r\nexport class CuteFooterCellDef extends CdkFooterCellDef {}\r\n\r\n/**\r\n * Column definition for the `cute-table`.\r\n * Defines a set of cells available for a table column.\r\n */\r\n@Directive({\r\n selector: '[cuteColumnDef]',\r\n inputs: [{name: 'sticky', transform: booleanAttribute}],\r\n providers: [\r\n {provide: CdkColumnDef, useExisting: CuteColumnDef},\r\n {provide: 'CUTE_SORT_HEADER_COLUMN_DEF', useExisting: CuteColumnDef},\r\n ],\r\n standalone: true,\r\n})\r\nexport class CuteColumnDef extends CdkColumnDef {\r\n /** Unique name for this column. */\r\n @Input('cuteColumnDef')\r\n override get name(): string { return this._name; }\r\n override set name(name: string) {this._setNameInput(name);}\r\n\r\n /**\r\n * Add \"cute-column-\" prefix in addition to \"cdk-column-\" prefix.\r\n * In the future, this will only add \"cute-column-\" and columnCssClassName\r\n * will change from type string[] to string.\r\n */\r\n protected override _updateColumnCssClassName() {\r\n super._updateColumnCssClassName();\r\n this._columnCssClassName!.push(`cute-column-${this.cssClassFriendlyName}`);\r\n }\r\n}\r\n\r\n/** Header cell template container that adds the right classes and role. */\r\n@Directive({\r\n selector: 'cute-header-cell, th[cute-header-cell]',\r\n host: {\r\n 'class': 'cute-header-cell',\r\n '[class]': 'color ? \"table-\"+color : \"\"',\r\n 'role': 'columnheader',\r\n },\r\n standalone: true,\r\n})\r\nexport class CuteHeaderCell extends CdkHeaderCell {\r\n\r\n /* Header cell's theme color. */\r\n @Input() color: ThemeColor | undefined;\r\n\r\n}\r\n\r\n/** Footer cell template container that adds the right classes and role. */\r\n@Directive({\r\n selector: 'cute-footer-cell, td[cute-footer-cell]',\r\n host: {\r\n 'class': 'cute-footer-cell',\r\n '[class]': 'color ? \"table-\"+color : \"\"',\r\n },\r\n standalone: true,\r\n})\r\nexport class CuteFooterCell extends CdkFooterCell {\r\n\r\n /* Footer cell's theme color */\r\n @Input() color: ThemeColor | undefined;\r\n\r\n}\r\n\r\n/** Cell template container that adds the right classes and role. */\r\n@Directive({\r\n selector: 'cute-cell, td[cute-cell]',\r\n host: {\r\n 'class': 'cute-cell',\r\n '[class.table-active]': 'active',\r\n '[class]': 'color ? \"table-\"+color : \"\"',\r\n },\r\n standalone: true,\r\n})\r\nexport class CuteCell extends CdkCell {\r\n\r\n /* Body cell's theme color */\r\n @Input() color: ThemeColor | undefined;\r\n\r\n /* Body cell's activity state */\r\n @Input({transform: booleanAttribute})\r\n active: boolean = false;\r\n\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {\r\n CdkFooterRow,\r\n CdkFooterRowDef,\r\n CdkHeaderRow,\r\n CdkHeaderRowDef,\r\n CdkRow,\r\n CdkRowDef,\r\n CdkNoDataRow,\r\n CdkCellOutlet,\r\n} from '@angular/cdk/table';\r\nimport {\r\n booleanAttribute,\r\n ChangeDetectionStrategy,\r\n Component,\r\n Directive,\r\n Input,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport {ThemeColor} from \"@cute-widgets/base/core\";\r\n\r\n// We can't reuse `CDK_ROW_TEMPLATE` because it's incompatible with local compilation mode.\r\nconst ROW_TEMPLATE = `<ng-container cdkCellOutlet></ng-container>`;\r\n\r\n/**\r\n * Header row definition for the `cute-table`.\r\n * Captures the header row's template and other header properties such as the columns to display.\r\n */\r\n@Directive({\r\n selector: '[cuteHeaderRowDef]',\r\n providers: [{provide: CdkHeaderRowDef, useExisting: CuteHeaderRowDef}],\r\n inputs: [\r\n {name: 'columns', alias: 'cuteHeaderRowDef'},\r\n {name: 'sticky', alias: 'cuteHeaderRowDefSticky', transform: booleanAttribute},\r\n ],\r\n})\r\nexport class CuteHeaderRowDef extends CdkHeaderRowDef {}\r\n\r\n/**\r\n * Footer row definition for the `cute-table`.\r\n * Captures the footer row's template and other footer properties such as the columns to display.\r\n */\r\n@Directive({\r\n selector: '[cuteFooterRowDef]',\r\n providers: [{provide: CdkFooterRowDef, useExisting: CuteFooterRowDef}],\r\n inputs: [\r\n {name: 'columns', alias: 'cuteFooterRowDef'},\r\n {name: 'sticky', alias: 'cuteFooterRowDefSticky', transform: booleanAttribute},\r\n ],\r\n})\r\nexport class CuteFooterRowDef extends CdkFooterRowDef {}\r\n\r\n/**\r\n * Data row definition for the `cute-table`.\r\n * Captures the data row's template and other properties such as the columns to display and\r\n * a when predicate that describes when this row should be used.\r\n */\r\n@Directive({\r\n selector: '[cuteRowDef]',\r\n providers: [{provide: CdkRowDef, useExisting: CuteRowDef}],\r\n inputs: ['columns: cuteRowDefColumns', 'when: cuteRowDefWhen'],\r\n})\r\nexport class CuteRowDef<T> extends CdkRowDef<T> {}\r\n\r\n/** Header template container that contains the cell outlet. Adds the right class and role. */\r\n@Component({\r\n selector: 'cute-header-row, tr[cute-header-row]',\r\n template: ROW_TEMPLATE,\r\n host: {\r\n 'class': 'cute-header-row',\r\n '[class]': 'color ? \"table-\"+color : \"\"',\r\n 'role': 'row',\r\n },\r\n // See note on CdkTable for explanation on why this uses the default change detection strategy.\r\n // tslint:disable-next-line:validate-decorators\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n encapsulation: ViewEncapsulation.None,\r\n exportAs: 'cuteHeaderRow',\r\n providers: [{ provide: CdkHeaderRow, useExisting: CuteHeaderRow }],\r\n imports: [CdkCellOutlet]\r\n})\r\nexport class CuteHeaderRow extends CdkHeaderRow {\r\n\r\n /* Cells' default color in the `<thead>` table section. */\r\n @Input() color: ThemeColor | undefined;\r\n\r\n}\r\n\r\n/** Footer template container that contains the cell outlet. Adds the right class and role. */\r\n@Component({\r\n selector: 'cute-footer-row, tr[cute-footer-row]',\r\n template: ROW_TEMPLATE,\r\n host: {\r\n 'class': 'cute-footer-row',\r\n '[class]': 'color ? \"table-\"+color : \"\"',\r\n 'role': 'row',\r\n },\r\n // See note on CdkTable for explanation on why this uses the default change detection strategy.\r\n // tslint:disable-next-line:validate-decorators\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n encapsulation: ViewEncapsulation.None,\r\n exportAs: 'cuteFooterRow',\r\n providers: [{ provide: CdkFooterRow, useExisting: CuteFooterRow }],\r\n imports: [CdkCellOutlet]\r\n})\r\nexport class CuteFooterRow extends CdkFooterRow {\r\n\r\n /* Cells' default color in the `<tfoot>` table section. */\r\n @Input() color: ThemeColor | undefined;\r\n\r\n}\r\n\r\n/** Data row template container that contains the cell outlet. Adds the right class and role. */\r\n@Component({\r\n selector: 'cute-row, tr[cute-row]',\r\n template: ROW_TEMPLATE,\r\n host: {\r\n 'class': 'cute-row',\r\n '[class.table-active]': 'active',\r\n '[class]': 'color ? \"table-\"+color : \"\"',\r\n 'role': 'row',\r\n },\r\n // See note on CdkTable for explanation on why this uses the default change detection strategy.\r\n // tslint:disable-next-line:validate-decorators\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n encapsulation: ViewEncapsulation.None,\r\n exportAs: 'cuteRow',\r\n providers: [{ provide: CdkRow, useExisting: CuteRow }],\r\n imports: [CdkCellOutlet]\r\n})\r\nexport class CuteRow extends CdkRow {\r\n\r\n /* Cells' default color in the `<tbody>` table section */\r\n @Input() color: ThemeColor | undefined;\r\n\r\n /* Whether the row has an active state */\r\n @Input({transform: booleanAttribute})\r\n active: boolean = false;\r\n\r\n}\r\n\r\n/** Row that can be used to display a message when no data is shown in the table. */\r\n@Directive({\r\n selector: 'ng-template[cuteNoDataRow]',\r\n providers: [{provide: CdkNoDataRow, useExisting: CuteNoDataRow}],\r\n standalone: true,\r\n})\r\nexport class CuteNoDataRow extends CdkNoDataRow {\r\n override _cellSelector = 'td, cute-cell, [cute-cell], .cute-cell';\r\n\r\n constructor() {\r\n super();\r\n this._contentClassNames.push('cute-no-data-row', 'cute-row');\r\n this._cellClassNames.push('cute-cell', 'cute-no-data-cell');\r\n }\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {\r\n BehaviorSubject,\r\n combineLatest,\r\n merge,\r\n Observable,\r\n of as observableOf,\r\n Subject,\r\n Subscription,\r\n} from 'rxjs';\r\nimport {DataSource} from '@angular/cdk/collections';\r\nimport {_isNumberValue} from '@angular/cdk/coercion';\r\nimport {CuteSort, Sort} from '@cute-widgets/base/sort';\r\nimport {CutePaginator, PageEvent} from '@cute-widgets/base/paginator';\r\nimport {map} from 'rxjs/operators';\r\n\r\n/**\r\n * Corresponds to `Number.MAX_SAFE_INTEGER`. Moved out into a variable here due to\r\n * flaky browser support and the value not being defined in Closure's typings.\r\n */\r\nconst MAX_SAFE_INTEGER = 9007199254740991;\r\n\r\n/**\r\n * Data source that accepts a client-side data array and includes native support of filtering,\r\n * sorting (using `CuteSort`), and pagination (using `CutePaginator`).\r\n *\r\n * Allows for sort customization by overriding `sortingDataAccessor`, which defines how data\r\n * properties are accessed. It also allows for filter customization by overriding `filterPredicate`,\r\n * which defines how row data is converted to a string for filter matching.\r\n *\r\n * **Note:** This class is meant to be a simple data source to help you get started. As such,\r\n * it isn't equipped to handle some more advanced cases like robust i18n support or server-side\r\n * interactions. If your app needs to support more advanced use cases, consider implementing your\r\n * own `DataSource`.\r\n */\r\nexport class CuteTableDataSource<T, P extends CutePaginator = CutePaginator> extends DataSource<T> {\r\n /** Stream that emits when a new data array is set on the data source. */\r\n private readonly _data: BehaviorSubject<T[]>;\r\n\r\n /** Stream emitting render data to the table (depends on ordered data changes). */\r\n private readonly _renderData = new BehaviorSubject<T[]>([]);\r\n\r\n /** Stream that emits when a new filter string is set on the data source. */\r\n private readonly _filter = new BehaviorSubject<string>('');\r\n\r\n /** Used to react to internal changes of the paginator that are made by the data source itself. */\r\n private readonly _internalPageChanges = new Subject<void>();\r\n\r\n /**\r\n * Subscription to the changes that should trigger an update to the table's rendered rows, such\r\n * as filtering, sorting, pagination, or base data changes.\r\n */\r\n private _renderChangesSubscription: Subscription | null = null;\r\n\r\n /**\r\n * The filtered set of data that has been matched by the filter string, or all the data if there\r\n * is no filter. Useful for knowing the set of data the table represents.\r\n * For example, a 'selectAll()' function would likely want to select the set of filtered data\r\n * shown to the user rather than all the data.\r\n */\r\n filteredData: T[] = [];\r\n\r\n /** Array of data that should be rendered by the table, where each object represents one row. */\r\n get data() { return this._data.value; }\r\n set data(data: T[]) {\r\n data = Array.isArray(data) ? data : [];\r\n this._data.next(data);\r\n // Normally the `filteredData` is updated by the re-render\r\n // subscription, but that won't happen if it's inactive.\r\n if (!this._renderChangesSubscription) {\r\n this._filterData(data);\r\n }\r\n }\r\n\r\n /**\r\n * Filter term that should be used to filter out objects from the data array. To override how\r\n * data objects match to this filter string, provide a custom function for filterPredicate.\r\n */\r\n get filter(): string { return this._filter.value; }\r\n set filter(filter: string) {\r\n this._filter.next(filter);\r\n // Normally the `filteredData` is updated by the re-render\r\n // subscription, but that won't happen if it's inactive.\r\n if (!this._renderChangesSubscription) {\r\n this._filterData(this.data);\r\n }\r\n }\r\n\r\n /**\r\n * Instance of the `CuteSort` directive used by the table to control its sorting. Sort changes\r\n * emitted by the `CuteSort` will trigger an update to the table's rendered data.\r\n */\r\n get sort(): CuteSort | null { return this._sort; }\r\n set sort(sort: CuteSort | null) {\r\n this._sort = sort;\r\n this._updateChangeSubscription();\r\n }\r\n private _sort: CuteSort | null = null;\r\n\r\n /**\r\n * Instance of the paginator component used by the table to control what page of the data is\r\n * displayed. Page changes emitted by the paginator will trigger an update to the\r\n * table's rendered data.\r\n *\r\n * Note that the data source uses the paginator's properties to calculate which page of data\r\n * should be displayed. If the paginator receives its properties as template inputs,\r\n * e.g. `[pageLength]=100` or `[pageIndex]=1`, then be sure that the paginator's view has been\r\n * initialized before assigning it to this data source.\r\n */\r\n get paginator(): P | null { return this._paginator; }\r\n set paginator(paginator: P | null) {\r\n this._paginator = paginator;\r\n this._updateChangeSubscription();\r\n }\r\n private _paginator: P | null = null;\r\n\r\n /**\r\n * Data accessor function that is used for accessing data properties for sorting through\r\n * the default sortData function.\r\n * This default function assumes that the sort header IDs (which defaults to the column name)\r\n * matches the data's properties (e.g., column Xyz represents data['Xyz']).\r\n * May be set to a custom function for different behavior.\r\n * @param data Data object that is being accessed.\r\n * @param sortHeaderId The name of the column that represents the data.\r\n */\r\n sortingDataAccessor = (data: T, sortHeaderId: string): string | number => {\r\n const value = (data as unknown as Record<string, any>)[sortHeaderId];\r\n\r\n if (_isNumberValue(value)) {\r\n const numberValue = Number(value);\r\n\r\n // Numbers beyond `MAX_SAFE_INTEGER` can't be compared reliably so we\r\n // leave them as strings. For more info: https://goo.gl/y5vbSg\r\n return numberValue < MAX_SAFE_INTEGER ? numberValue : value;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n /**\r\n * Gets a sorted copy of the data array based on the state of the `CuteSort`. Called\r\n * after changes are made to the filtered data or when sort changes are emitted from `CuteSort`.\r\n * By default, the function retrieves the active sort and its direction and compares data\r\n * by retrieving data using the {@link sortingDataAccessor}. May be overridden for a custom implementation\r\n * of data ordering.\r\n * @param data The array of data that should be sorted.\r\n * @param sort The connected `CuteSort` that holds the current sort state.\r\n */\r\n sortData = (data: T[], sort: CuteSort): T[] => {\r\n const active = sort.active;\r\n const direction = sort.direction;\r\n if (!active || direction == '') {\r\n return data;\r\n }\r\n\r\n return data.sort((a, b) => {\r\n let valueA = this.sortingDataAccessor(a, active);\r\n let valueB = this.sortingDataAccessor(b, active);\r\n\r\n // If there are data in the column that can be converted to a number,\r\n // it must be ensured that the rest of the data\r\n // is of the same type so as not to order incorrectly.\r\n const valueAType = typeof valueA;\r\n const valueBType = typeof valueB;\r\n\r\n if (valueAType !== valueBType) {\r\n if (valueAType === 'number') {\r\n valueA += '';\r\n }\r\n if (valueBType === 'number') {\r\n valueB += '';\r\n }\r\n }\r\n\r\n // If both valueA and valueB exist (truthy), then compare the two. Otherwise, check if\r\n // one value exists while the other doesn't. In this case, existing value should come last.\r\n // This avoids inconsistent results when comparing values to undefined/null.\r\n // If neither value exists, return 0 (equal).\r\n let comparatorResult = 0;\r\n if (valueA != null && valueB != null) {\r\n // Check if one value is greater than the other; if equal, comparatorResult should remain 0.\r\n if (valueA > valueB) {\r\n comparatorResult = 1;\r\n } else if (valueA < valueB) {\r\n comparatorResult = -1;\r\n }\r\n } else if (valueA != null) {\r\n comparatorResult = 1;\r\n } else if (valueB != null) {\r\n comparatorResult = -1;\r\n }\r\n\r\n return comparatorResult * (direction == 'asc' ? 1 : -1);\r\n });\r\n }\r\n\r\n /**\r\n * Checks if a data object matches the data source's filter string. By default, each data object\r\n * is converted to a string of its properties and returns true if the filter has\r\n * at least one occurrence in that string. By default, the filter string has its whitespace\r\n * trimmed and the match is case-insensitive. May be overridden for a custom implementation of\r\n * filter matching.\r\n * @param data Data object used to check against the filter.\r\n * @param filter Filter string that has been set on the data source.\r\n * @returns Whether the filter matches against the data\r\n */\r\n filterPredicate = (data: T, filter: string): boolean => {\r\n // Transform the data into a lowercase string of all property values.\r\n const dataStr = Object.keys(data as unknown as Record<string, any>)\r\n .reduce((currentTerm: string, key: string) => {\r\n // Use an obscure Unicode character to delimit the words in the concatenated string.\r\n // This avoids matches where the values of two columns combined will match the user's query\r\n // (e.g. `Flute` and `Stop` will match `Test`). The character is intended to be something\r\n // that has a very low chance of being typed in by somebody in a text field. This one in\r\n // particular is \"White up-pointing triangle with dot\" from\r\n // https://en.wikipedia.org/wiki/List_of_Unicode_characters\r\n return currentTerm + (data as unknown as Record<string, any>)[key] + '◬';\r\n }, '')\r\n .toLowerCase();\r\n\r\n // Transform the filter by converting it to lowercase and removing whitespace.\r\n const transformedFilter = filter.trim().toLowerCase();\r\n\r\n return dataStr.indexOf(transformedFilter) != -1;\r\n };\r\n\r\n constructor(initialData: T[] = []) {\r\n super();\r\n this._data = new BehaviorSubject<T[]>(initialData);\r\n this._updateChangeSubscription();\r\n }\r\n\r\n /**\r\n * Subscribe to changes that should trigger an update to the table's rendered rows. When the\r\n * changes occur, process the current state of the filter, sort, and pagination along with\r\n * the provided base data and send it to the table for rendering.\r\n */\r\n protected _updateChangeSubscription() {\r\n // Sorting and/or pagination should be watched if sort and/or paginator are provided.\r\n // The events should emit whenever the component emits a change or initializes, or if no\r\n // component is provided, a stream with just a null event should be provided.\r\n // The `sortChange` and `pageChange` acts as a signal to the `combineLatests` below so that the\r\n // pipeline can progress to the next step. Note that the value from these streams are not used,\r\n // they purely act as a signal to progress in the pipeline.\r\n const sortChange: Observable<Sort | null | void> = this._sort\r\n ? (merge(this._sort.sortChange, this._sort.initialized$) as Observable<Sort | void>)\r\n : observableOf(null);\r\n const pageChange: Observable<PageEvent | null | void> = this._paginator\r\n ? (merge(\r\n this._paginator.page,\r\n this._internalPageChanges,\r\n this._paginator.initialized$,\r\n ) as Observable<PageEvent | void>)\r\n : observableOf(null);\r\n const dataStream = this._data;\r\n // Watch for base data or filter changes to provide a filtered set of data.\r\n const filteredData = combineLatest([dataStream, this._filter]).pipe(\r\n map(([data]) => this._filterData(data)),\r\n );\r\n // Watch for filtered data or sort changes to provide an ordered set of data.\r\n const orderedData = combineLatest([filteredData, sortChange]).pipe(\r\n map(([data]) => this._orderData(data)),\r\n );\r\n // Watch for ordered data or page changes to provide a paged set of data.\r\n const paginatedData = combineLatest([orderedData, pageChange]).pipe(\r\n map(([data]) => this._pageData(data)),\r\n );\r\n // Watched for paged data changes and send the result to the table to render.\r\n this._renderChangesSubscription?.unsubscribe();\r\n this._renderChangesSubscription = paginatedData.subscribe(data => this._renderData.next(data));\r\n }\r\n\r\n /**\r\n * Returns a filtered data array where each filter object contains the filter string within\r\n * the result of the {@link filterPredicate} function. If no filter is set, return the data array\r\n * as provided.\r\n */\r\n protected _filterData(data: T[]) {\r\n // If there is a filter string, filter out data that does not contain it.\r\n // Each data object is converted to a string using the function defined by filterPredicate.\r\n // May be overridden for customization.\r\n this.filteredData =\r\n this.filter == null || this.filter === ''\r\n ? data\r\n : data.filter(obj => this.filterPredicate(obj, this.filter));\r\n\r\n if (this.paginator) {\r\n this._updatePaginator(this.filteredData.length);\r\n }\r\n\r\n return this.filteredData;\r\n }\r\n\r\n /**\r\n * Returns a sorted copy of the data if `CuteSort` has a sort applied, otherwise just returns the\r\n * data array as provided. Uses the default data accessor for data lookup, unless a\r\n * sortDataAccessor function is defined.\r\n */\r\n protected _orderData(data: T[]): T[] {\r\n // If there is no active sort or direction, return the data without trying to sort.\r\n if (!this.sort) {\r\n return data;\r\n }\r\n\r\n return this.sortData(data.slice(), this.sort);\r\n }\r\n\r\n /**\r\n * Returns a paged slice of the provided data array according to the provided paginator's page\r\n * index and length. If there is no paginator provided, return the data array as provided.\r\n */\r\n protected _pageData(data: T[]): T[] {\r\n if (!this.paginator) {\r\n return data;\r\n }\r\n\r\n const startIndex = this.paginator.pageIndex * this.paginator.pageSize;\r\n return data.slice(startIndex, startIndex + this.paginator.pageSize);\r\n }\r\n\r\n /**\r\n * Updates the paginator to reflect the length of the filtered data, and makes sure that the page\r\n * index does not exceed the paginator's last page. Values are changed in a resolved promise to\r\n * guard against making property changes within a round of change detection.\r\n */\r\n protected _updatePaginator(filteredDataLength: number) {\r\n Promise.resolve().then(() => {\r\n const paginator = this.paginator;\r\n\r\n if (!paginator) {\r\n return;\r\n }\r\n\r\n paginator.length = filteredDataLength;\r\n\r\n // If the page index is set beyond the page, reduce it to the last page.\r\n if (paginator.pageIndex > 0) {\r\n const lastPageIndex = Math.ceil(paginator.length / paginator.pageSize) - 1 || 0;\r\n const newPageIndex = Math.min(paginator.pageIndex, lastPageIndex);\r\n\r\n if (newPageIndex !== paginator.pageIndex) {\r\n paginator.pageIndex = newPageIndex;\r\n\r\n // Since the paginator only emits after user-generated changes,\r\n // we need our own stream, so we know to should re-render the data.\r\n this._internalPageChanges.next();\r\n }\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Used by the {@link CuteTable}. Called when it connects to the data source.\r\n */\r\n connect() {\r\n if (!this._renderChangesSubscription) {\r\n this._updateChangeSubscription();\r\n }\r\n return this._renderData;\r\n }\r\n\r\n /**\r\n * Used by the {@link CuteTable}. Called when it disconnects from the data source.\r\n */\r\n disconnect() {\r\n this._renderChangesSubscription?.unsubscribe();\r\n this._renderChangesSubscription = null;\r\n }\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {CdkTextColumn} from '@angular/cdk/table';\r\nimport {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';\r\nimport {CuteColumnDef, CuteHeaderCellDef, CuteHeaderCell, CuteCellDef, CuteCell} from './cell';\r\n\r\n/**\r\n * Column that simply shows text content for the header and row cells. Assumes that the table\r\n * is using the native table implementation (`<table>`).\r\n *\r\n * By default, the name of this column will be the header text and data property accessor.\r\n * The header text can be overridden with the `headerText` input. Cell values can be overridden with\r\n * the `dataAccessor` input. Change the text justification to the start or end using the `justify`\r\n * input.\r\n */\r\n@Component({\r\n selector: 'cute-text-column',\r\n template: `\r\n <ng-container cuteColumnDef>\r\n <th cute-header-cell *cuteHeaderCellDef [style.text-align]=\"justify\">\r\n {{headerText}}\r\n </th>\r\n <td cute-cell *cuteCellDef=\"let data\" [style.text-align]=\"justify\">\r\n {{dataAccessor(data, name)}}\r\n </td>\r\n </ng-container>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n // Change detection is intentionally not set to OnPush. This component's template will be provided\r\n // to the table to be inserted into its view. This is problematic when change detection runs since\r\n // the bindings in this template will be evaluated _after_ the table's view is evaluated, which\r\n // means the template in the table's view will not have the updated value (and in fact will cause\r\n // an ExpressionChangedAfterItHasBeenCheckedError).\r\n // tslint:disable-next-line:validate-decorators\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n imports: [CuteColumnDef, CuteHeaderCellDef, CuteHeaderCell, CuteCellDef, CuteCell]\r\n})\r\nexport class CuteTextColumn<T> extends CdkTextColumn<T> {}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {NgModule, Type} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {\r\n CuteCell,\r\n CuteCellDef,\r\n CuteColumnDef,\r\n CuteFooterCell,\r\n CuteFooterCellDef,\r\n CuteHeaderCell,\r\n CuteHeaderCellDef\r\n} from \"./cell\";\r\nimport {\r\n CuteFooterRow,\r\n CuteFooterRowDef,\r\n CuteHeaderRow,\r\n CuteHeaderRowDef,\r\n CuteNoDataRow,\r\n CuteRow,\r\n CuteRowDef\r\n} from \"./row\";\r\nimport {CuteTextColumn} from \"./text-column\";\r\nimport {CuteRecycleRows, CuteTable} from \"./table\";\r\nimport {CdkTableModule} from \"@angular/cdk/table\";\r\n\r\nconst TYPES: (any | Type<any>)[] = [\r\n // Table\r\n CuteTable,\r\n CuteRecycleRows,\r\n\r\n // Template defs\r\n CuteHeaderCellDef,\r\n CuteHeaderRowDef,\r\n CuteColumnDef,\r\n CuteCellDef,\r\n CuteRowDef,\r\n CuteFooterCellDef,\r\n CuteFooterRowDef,\r\n\r\n // Cell directives\r\n CuteHeaderCell,\r\n CuteCell,\r\n CuteFooterCell,\r\n\r\n // Row directives\r\n CuteHeaderRow,\r\n CuteRow,\r\n CuteFooterRow,\r\n CuteNoDataRow,\r\n\r\n CuteTextColumn,\r\n];\r\n\r\n@NgModule({\r\n imports: [CommonModule, CdkTableModule, ...TYPES],\r\n exports: TYPES,\r\n declarations: [],\r\n})\r\nexport class CuteTableModule {\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["observableOf"],"mappings":"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"}
@@ -423,8 +423,10 @@ class CuteTreeFlattener {
423
423
  this._flattenChildren(childrenNodes, level, resultNodes, parentMap);
424
424
  }
425
425
  else {
426
- childrenNodes.pipe(take(1)).subscribe(children => {
426
+ this._subscription?.unsubscribe();
427
+ this._subscription = childrenNodes.pipe(take(1)).subscribe(children => {
427
428
  this._flattenChildren(children, level, resultNodes, parentMap);
429
+ this._subscription?.unsubscribe();
428
430
  });
429
431
  }
430
432
  }
@@ -470,6 +472,13 @@ class CuteTreeFlattener {
470
472
  });
471
473
  return results;
472
474
  }
475
+ //++ CWT
476
+ /**
477
+ * Performs the final actions with the flattener before destroying it.
478
+ */
479
+ finalize() {
480
+ this._subscription?.unsubscribe();
481
+ }
473
482
  }
474
483
  /**
475
484
  * Data source for a flat tree.
@@ -506,7 +515,7 @@ class CuteTreeFlatDataSource extends DataSource {
506
515
  }));
507
516
  }
508
517
  disconnect() {
509
- // no op
518
+ this._treeFlattener.finalize();
510
519
  }
511
520
  }
512
521
 
@@ -1 +1 @@
1
- {"version":3,"file":"cute-widgets-base-tree.mjs","sources":["../../../../projects/cute-widgets/base/tree/src/node.ts","../../../../projects/cute-widgets/base/tree/src/padding.ts","../../../../projects/cute-widgets/base/tree/src/outlet.ts","../../../../projects/cute-widgets/base/tree/src/tree.ts","../../../../projects/cute-widgets/base/tree/src/toggle.ts","../../../../projects/cute-widgets/base/tree/src/data-source/flat-data-source.ts","../../../../projects/cute-widgets/base/tree/src/data-source/nested-data-source.ts","../../../../projects/cute-widgets/base/tree/src/tree.module.ts","../../../../projects/cute-widgets/base/tree/cute-widgets-base-tree.ts"],"sourcesContent":["/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {\r\n CDK_TREE_NODE_OUTLET_NODE,\r\n CdkNestedTreeNode,\r\n CdkTreeNode,\r\n CdkTreeNodeDef,\r\n} from '@angular/cdk/tree';\r\nimport {\r\n AfterContentInit,\r\n Directive,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n booleanAttribute,\r\n numberAttribute, inject, HostAttributeToken,\r\n} from '@angular/core';\r\nimport {NoopTreeKeyManager, TreeKeyManagerItem, TreeKeyManagerStrategy} from \"@angular/cdk/a11y\";\r\n\r\n/**\r\n * Determine if argument TreeKeyManager is the NoopTreeKeyManager. This function is safe to use with SSR.\r\n */\r\nfunction isNoopTreeKeyManager<T extends TreeKeyManagerItem>(\r\n keyManager: TreeKeyManagerStrategy<T>,\r\n): keyManager is NoopTreeKeyManager<T> {\r\n return !!(keyManager as NoopTreeKeyManager<T>)._isNoopTreeKeyManager;\r\n}\r\n\r\n/**\r\n * Wrapper for the CdkTree node with CuteWidget's design styles.\r\n */\r\n@Directive({\r\n selector: 'cute-tree-node',\r\n exportAs: 'cuteTreeNode',\r\n inputs: ['cdkTreeNodeTypeaheadLabel: cuteTreeNodeTypeaheadLabel'],\r\n outputs: ['activation', 'expandedChange'],\r\n providers: [{provide: CdkTreeNode, useExisting: CuteTreeNode}],\r\n host: {\r\n 'class': 'cute-tree-node',\r\n '[attr.aria-expanded]': '_getAriaExpanded()',\r\n '[attr.aria-level]': 'level + 1',\r\n '[attr.aria-posinset]': '_getPositionInSet()',\r\n '[attr.aria-setsize]': '_getSetSize()',\r\n '(click)': '_focusItem()',\r\n '[tabindex]': '_getTabindexAttribute()',\r\n },\r\n standalone: true,\r\n})\r\nexport class CuteTreeNode<T, K = T> extends CdkTreeNode<T, K> implements OnInit, OnDestroy {\r\n /**\r\n * The tabindex of the tree node.\r\n *\r\n * @deprecated By default CuteTreeNode manages focus using TreeKeyManager instead of tabIndex.\r\n * Recommend to avoid setting tabIndex directly to prevent TreeKeyManager from getting into\r\n * an unexpected state. Tabindex to be removed in a future version.\r\n * @breaking-change 21.0.0 Remove this attribute.\r\n */\r\n @Input({\r\n transform: (value: unknown) => (value == null ? 0 : numberAttribute(value)),\r\n alias: 'tabIndex',\r\n })\r\n get tabIndexInputBinding(): number { return this._tabIndexInputBinding; }\r\n set tabIndexInputBinding(value: number) {\r\n // If the specified tabIndex value is null or undefined, fall back to the default value.\r\n this._tabIndexInputBinding = value;\r\n }\r\n private _tabIndexInputBinding: number = 0;\r\n\r\n /**\r\n * The default tabindex of the tree node.\r\n *\r\n * @deprecated By default CuteTreeNode manages focus using TreeKeyManager instead of tabIndex.\r\n * Recommend to avoid setting tabIndex directly to prevent TreeKeyManager form getting into\r\n * an unexpected state. Tabindex to be removed in a future version.\r\n * @breaking-change 21.0.0 Remove this attribute.\r\n */\r\n defaultTabIndex = 0;\r\n\r\n protected _getTabindexAttribute() {\r\n if (isNoopTreeKeyManager(this._tree._keyManager)) {\r\n return this.tabIndexInputBinding;\r\n }\r\n return this._tabindex;\r\n }\r\n\r\n /**\r\n * Whether the component is disabled.\r\n *\r\n * @deprecated This is an alias for `isDisabled`.\r\n * @breaking-change 21.0.0 Remove this input\r\n */\r\n @Input({transform: booleanAttribute})\r\n get disabled(): boolean { return this.isDisabled; }\r\n set disabled(value: boolean) { this.isDisabled = value; }\r\n\r\n constructor(...args: unknown[]);\r\n constructor() {\r\n super();\r\n const tabIndex = inject(new HostAttributeToken('tabindex'), {optional: true});\r\n this.tabIndexInputBinding = Number(tabIndex) || this.defaultTabIndex;\r\n }\r\n\r\n // This is a workaround for https://github.com/angular/angular/issues/23091\r\n // In aot mode, the lifecycle hooks from parent class are not called.\r\n override ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n\r\n override ngOnDestroy() {\r\n super.ngOnDestroy();\r\n }\r\n}\r\n\r\n/**\r\n * Wrapper for the CdkTree node definition with CuteWidgets' design styles.\r\n * Captures the node's template and a `when` predicate that describes when this node should be used.\r\n */\r\n@Directive({\r\n selector: '[cuteTreeNodeDef]',\r\n inputs: ['when: cuteTreeNodeDefWhen'],\r\n providers: [{provide: CdkTreeNodeDef, useExisting: CuteTreeNodeDef}],\r\n standalone: true,\r\n})\r\nexport class CuteTreeNodeDef<T> extends CdkTreeNodeDef<T> {\r\n @Input('cuteTreeNode') data: T | undefined;\r\n}\r\n\r\n/**\r\n * Wrapper for the CdkTree nested node with CuteWidgets' design styles.\r\n */\r\n@Directive({\r\n selector: 'cute-nested-tree-node',\r\n exportAs: 'cuteNestedTreeNode',\r\n outputs: ['activation', 'expandedChange'],\r\n providers: [\r\n {provide: CdkNestedTreeNode, useExisting: CuteNestedTreeNode},\r\n {provide: CdkTreeNode, useExisting: CuteNestedTreeNode},\r\n {provide: CDK_TREE_NODE_OUTLET_NODE, useExisting: CuteNestedTreeNode},\r\n ],\r\n host: {\r\n 'class': 'cute-nested-tree-node',\r\n },\r\n standalone: true,\r\n})\r\nexport class CuteNestedTreeNode<T, K = T> extends CdkNestedTreeNode<T, K>\r\n implements AfterContentInit, OnDestroy, OnInit\r\n{\r\n @Input('cuteNestedTreeNode') node: T | undefined;\r\n\r\n /**\r\n * Whether the node is disabled.\r\n *\r\n * @deprecated This is an alias for `isDisabled`.\r\n * @breaking-change 21.0.0 Remove this input\r\n */\r\n @Input({transform: booleanAttribute})\r\n get disabled(): boolean {return this.isDisabled; }\r\n set disabled(value: boolean) {this.isDisabled = value;}\r\n\r\n /** Tabindex of the node. */\r\n @Input({\r\n transform: (value: unknown) => (value == null ? 0 : numberAttribute(value)),\r\n })\r\n get tabIndex(): number { return this.isDisabled ? -1 : this._tabIndex; }\r\n set tabIndex(value: number) {\r\n // If the specified tabIndex value is null or undefined, fall back to the default value.\r\n this._tabIndex = value;\r\n }\r\n private _tabIndex: number = 0;\r\n\r\n // This is a workaround for https://github.com/angular/angular/issues/19145\r\n // In aot mode, the lifecycle hooks from parent class are not called.\r\n // TODO(tinayuangao): Remove when the angular issue #19145 is fixed\r\n override ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n\r\n override ngAfterContentInit() {\r\n super.ngAfterContentInit();\r\n }\r\n\r\n override ngOnDestroy() {\r\n super.ngOnDestroy();\r\n }\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {CdkTreeNodePadding} from '@angular/cdk/tree';\r\nimport {Directive, Input, numberAttribute} from '@angular/core';\r\n\r\n/**\r\n * Wrapper for the CdkTree padding with **CuteWidgets** design styles.\r\n */\r\n@Directive({\r\n selector: '[cuteTreeNodePadding]',\r\n providers: [{provide: CdkTreeNodePadding, useExisting: CuteTreeNodePadding}],\r\n standalone: true,\r\n})\r\nexport class CuteTreeNodePadding<T, K = T> extends CdkTreeNodePadding<T, K> {\r\n /** The level of depth of the tree node. The padding will be `level * indent` pixels. */\r\n @Input({alias: 'cuteTreeNodePadding', transform: numberAttribute})\r\n override get level(): number { return this._level; }\r\n override set level(value: number) { this._setLevelInput(value); }\r\n\r\n /** The indent for each level. Default number 40px from material design menu submenu spec. */\r\n @Input('cuteTreeNodePaddingIndent')\r\n override get indent(): number | string { return this._indent; }\r\n override set indent(indent: number | string) { this._setIndentInput(indent); }\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {CDK_TREE_NODE_OUTLET_NODE, CdkTreeNodeOutlet} from '@angular/cdk/tree';\r\nimport {Directive, inject, ViewContainerRef} from '@angular/core';\r\n\r\n/**\r\n * Outlet for nested CdkNode. Put `[cuteTreeNodeOutlet]` on a tag to place children dataNodes\r\n * inside the outlet.\r\n */\r\n@Directive({\r\n selector: '[cuteTreeNodeOutlet]',\r\n providers: [\r\n {\r\n provide: CdkTreeNodeOutlet,\r\n useExisting: CuteTreeNodeOutlet,\r\n },\r\n ],\r\n standalone: true,\r\n})\r\nexport class CuteTreeNodeOutlet implements CdkTreeNodeOutlet {\r\n readonly viewContainer = inject(ViewContainerRef);\r\n readonly _node = inject(CDK_TREE_NODE_OUTLET_NODE, {optional: true});\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {CdkTree} from '@angular/cdk/tree';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component, EventEmitter, Input,\r\n Output,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport {CuteTreeNodeOutlet} from './outlet';\r\nimport {Subject, throttleTime} from \"rxjs\";\r\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\r\nimport {distinctUntilChanged} from \"rxjs/operators\";\r\nimport {ListRange} from \"@angular/cdk/collections\";\r\n\r\n/**\r\n * Wrapper for the CdkTable with **CuteWidgets** design styles.\r\n */\r\n@Component({\r\n selector: 'cute-tree',\r\n exportAs: 'cuteTree',\r\n template: `<ng-container cuteTreeNodeOutlet></ng-container>`,\r\n host: {\r\n 'class': 'cute-tree',\r\n 'role': 'tree',\r\n },\r\n styleUrls: ['./tree.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n // See note on CdkTree for explanation on why this uses the default change detection strategy.\r\n // tslint:disable-next-line:validate-decorators\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n providers: [{ provide: CdkTree, useExisting: CuteTree }],\r\n imports: [CuteTreeNodeOutlet]\r\n})\r\nexport class CuteTree<T, K = T> extends CdkTree<T, K> {\r\n\r\n private _renderChanges = new Subject<T[]>();\r\n\r\n /** Event emitted on each change in the rendered data. */\r\n @Output() renderNodesChange = new EventEmitter<T[]>();\r\n\r\n // Outlets within the tree's template where the dataNodes will be inserted.\r\n // We need an initializer here to avoid a TS error. The value will be set in `ngAfterViewInit`.\r\n @ViewChild(CuteTreeNodeOutlet, {static: true}) override _nodeOutlet: CuteTreeNodeOutlet =\r\n undefined!;\r\n\r\n constructor() {\r\n super();\r\n this._renderChanges\r\n .pipe(takeUntilDestroyed())\r\n .subscribe(nodes => this.renderNodesChange.emit(nodes));\r\n }\r\n\r\n override renderNodeChanges(data: T[]) {\r\n // We generate an event before calling the ancestor, otherwise\r\n // the content of `data` array will not be correct !!!???\r\n this._renderChanges.next(data);\r\n super.renderNodeChanges(data);\r\n }\r\n\r\n override ngOnDestroy() {\r\n super.ngOnDestroy();\r\n this._renderChanges.complete();\r\n }\r\n\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {CdkTreeNodeToggle} from '@angular/cdk/tree';\r\nimport {Directive} from '@angular/core';\r\n\r\n/**\r\n * Wrapper for the CdkTree's toggle with **CuteWidgets** design styles.\r\n */\r\n@Directive({\r\n selector: '[cuteTreeNodeToggle]',\r\n providers: [{provide: CdkTreeNodeToggle, useExisting: CuteTreeNodeToggle}],\r\n inputs: ['recursive: cuteTreeNodeToggleRecursive'],\r\n standalone: true,\r\n})\r\nexport class CuteTreeNodeToggle<T, K = T> extends CdkTreeNodeToggle<T, K> {}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {CollectionViewer, DataSource} from '@angular/cdk/collections';\r\nimport {FlatTreeControl, TreeControl} from '@angular/cdk/tree';\r\nimport {BehaviorSubject, merge, Observable} from 'rxjs';\r\nimport {map, take} from 'rxjs/operators';\r\n\r\n/**\r\n * Tree flattener to convert a normal type of node to node with children & level information.\r\n * Transform nested nodes of type `T` to flattened nodes of type `F`.\r\n *\r\n * For example, the input data of type `T` is nested, and contains its children data:\r\n * SomeNode: {\r\n * key: 'Fruits',\r\n * children: [\r\n * NodeOne: {\r\n * key: 'Apple',\r\n * },\r\n * NodeTwo: {\r\n * key: 'Pear',\r\n * }\r\n * ]\r\n * }\r\n * After flattener flatten the tree, the structure will become\r\n * SomeNode: {\r\n * key: 'Fruits',\r\n * expandable: true,\r\n * level: 1\r\n * },\r\n * NodeOne: {\r\n * key: 'Apple',\r\n * expandable: false,\r\n * level: 2\r\n * },\r\n * NodeTwo: {\r\n * key: 'Pear',\r\n * expandable: false,\r\n * level: 2\r\n * }\r\n * and the output flattened type is `F` with additional information.\r\n */\r\nexport class CuteTreeFlattener<T, F, K = F> {\r\n constructor(\r\n public transformFunction: (node: T, level: number) => F,\r\n public getLevel: (node: F) => number,\r\n public isExpandable: (node: F) => boolean,\r\n public getChildren: (node: T) => Observable<T[]> | T[] | undefined | null,\r\n ) {}\r\n\r\n private _flattenNode(node: T, level: number, resultNodes: F[], parentMap: boolean[]): F[] {\r\n const flatNode = this.transformFunction(node, level);\r\n resultNodes.push(flatNode);\r\n\r\n if (this.isExpandable(flatNode)) {\r\n const childrenNodes = this.getChildren(node);\r\n if (childrenNodes) {\r\n if (Array.isArray(childrenNodes)) {\r\n this._flattenChildren(childrenNodes, level, resultNodes, parentMap);\r\n } else {\r\n childrenNodes.pipe(take(1)).subscribe(children => {\r\n this._flattenChildren(children, level, resultNodes, parentMap);\r\n });\r\n }\r\n }\r\n }\r\n return resultNodes;\r\n }\r\n\r\n private _flattenChildren(children: T[], level: number, resultNodes: F[], parentMap: boolean[]): void {\r\n children.forEach((child, index) => {\r\n let childParentMap: boolean[] = parentMap.slice();\r\n childParentMap.push(index != children.length - 1);\r\n this._flattenNode(child, level + 1, resultNodes, childParentMap);\r\n });\r\n }\r\n\r\n /**\r\n * Flatten a list of node type T to a flattened version of node F.\r\n * Please note that type T may be nested, and the length of `structuredData` may be different\r\n * from that of a returned list `F[]`.\r\n */\r\n flattenNodes(structuredData: T[]): F[] {\r\n let resultNodes: F[] = [];\r\n structuredData.forEach(node => this._flattenNode(node, 0, resultNodes, []));\r\n return resultNodes;\r\n }\r\n\r\n /**\r\n * Expand flattened node with current expansion status.\r\n * The returned list may have different length.\r\n */\r\n expandFlattenedNodes(nodes: F[], treeControl: TreeControl<F, K>): F[] {\r\n let results: F[] = [];\r\n let currentExpand: boolean[] = [];\r\n currentExpand[0] = true;\r\n\r\n nodes.forEach(node => {\r\n let expand = true;\r\n for (let i = 0; i <= this.getLevel(node); i++) {\r\n expand = expand && currentExpand[i];\r\n }\r\n if (expand) {\r\n results.push(node);\r\n }\r\n if (this.isExpandable(node)) {\r\n currentExpand[this.getLevel(node) + 1] = treeControl.isExpanded(node);\r\n }\r\n });\r\n return results;\r\n }\r\n}\r\n\r\n/**\r\n * Data source for a flat tree.\r\n * The data source needs to handle expansion/collapsion of the tree node and change the data feed\r\n * to `CuteTree`.\r\n * The nested tree nodes of type `T` are flattened through `CuteTreeFlattener`, and converted\r\n * to type `F` for `CuteTree` to consume.\r\n */\r\nexport class CuteTreeFlatDataSource<T, F, K = F> extends DataSource<F> {\r\n private readonly _flattenedData = new BehaviorSubject<F[]>([]);\r\n private readonly _expandedData = new BehaviorSubject<F[]>([]);\r\n\r\n get data() {\r\n return this._data.value;\r\n }\r\n set data(value: T[]) {\r\n this._data.next(value);\r\n this._flattenedData.next(this._treeFlattener.flattenNodes(this.data));\r\n this._treeControl.dataNodes = this._flattenedData.value;\r\n }\r\n private readonly _data = new BehaviorSubject<T[]>([]);\r\n\r\n constructor(\r\n private _treeControl: FlatTreeControl<F, K>,\r\n private _treeFlattener: CuteTreeFlattener<T, F, K>,\r\n initialData?: T[],\r\n ) {\r\n super();\r\n\r\n if (initialData) {\r\n // Assign the data through the constructor to ensure that all of the logic is executed.\r\n this.data = initialData;\r\n }\r\n }\r\n\r\n connect(collectionViewer: CollectionViewer): Observable<F[]> {\r\n return merge(\r\n collectionViewer.viewChange,\r\n this._treeControl.expansionModel.changed,\r\n this._flattenedData,\r\n ).pipe(\r\n map(() => {\r\n this._expandedData.next(\r\n this._treeFlattener.expandFlattenedNodes(this._flattenedData.value, this._treeControl),\r\n );\r\n return this._expandedData.value;\r\n }),\r\n );\r\n }\r\n\r\n disconnect() {\r\n // no op\r\n }\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {CollectionViewer, DataSource} from '@angular/cdk/collections';\r\nimport {BehaviorSubject, merge, Observable} from 'rxjs';\r\nimport {map} from 'rxjs/operators';\r\n\r\n/**\r\n * Data source for a nested tree.\r\n *\r\n * The data source for a nested tree doesn't have to consider node flattener, or the way to expand\r\n * or collapse. The expansion/collapsion will be handled by TreeControl and each non-leaf node.\r\n */\r\nexport class CuteTreeNestedDataSource<T> extends DataSource<T> {\r\n /**\r\n * Data for the nested tree\r\n */\r\n get data(): T[] { return this._data.value; }\r\n set data(value: T[]) {\r\n this._data.next(value);\r\n }\r\n private readonly _data = new BehaviorSubject<T[]>([]);\r\n\r\n connect(collectionViewer: CollectionViewer): Observable<T[]> {\r\n return merge(...([collectionViewer.viewChange, this._data] as Observable<unknown>[])).pipe(\r\n map(() => this.data),\r\n );\r\n }\r\n\r\n disconnect() {\r\n // no op\r\n }\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {NgModule, Type} from '@angular/core';\r\nimport {CdkTreeModule} from \"@angular/cdk/tree\";\r\nimport {CuteNestedTreeNode, CuteTreeNode, CuteTreeNodeDef} from \"./node\";\r\nimport {CuteTreeNodeToggle} from \"./toggle\";\r\nimport {CuteTree} from \"./tree\";\r\nimport {CuteTreeNodeOutlet} from \"./outlet\";\r\nimport {CuteTreeNodePadding} from \"./padding\";\r\n\r\nconst TYPES: (any | Type<any>)[] = [\r\n CuteNestedTreeNode,\r\n CuteTreeNodeDef,\r\n CuteTreeNodePadding,\r\n CuteTreeNodeToggle,\r\n CuteTree,\r\n CuteTreeNode,\r\n CuteTreeNodeOutlet,\r\n];\r\n\r\n@NgModule({\r\n imports: [CdkTreeModule, ...TYPES],\r\n exports: TYPES,\r\n declarations: [],\r\n})\r\nexport class CuteTreeModule {\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cute-widgets-base-tree.mjs","sources":["../../../../projects/cute-widgets/base/tree/src/node.ts","../../../../projects/cute-widgets/base/tree/src/padding.ts","../../../../projects/cute-widgets/base/tree/src/outlet.ts","../../../../projects/cute-widgets/base/tree/src/tree.ts","../../../../projects/cute-widgets/base/tree/src/toggle.ts","../../../../projects/cute-widgets/base/tree/src/data-source/flat-data-source.ts","../../../../projects/cute-widgets/base/tree/src/data-source/nested-data-source.ts","../../../../projects/cute-widgets/base/tree/src/tree.module.ts","../../../../projects/cute-widgets/base/tree/cute-widgets-base-tree.ts"],"sourcesContent":["/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {\r\n CDK_TREE_NODE_OUTLET_NODE,\r\n CdkNestedTreeNode,\r\n CdkTreeNode,\r\n CdkTreeNodeDef,\r\n} from '@angular/cdk/tree';\r\nimport {\r\n AfterContentInit,\r\n Directive,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n booleanAttribute,\r\n numberAttribute, inject, HostAttributeToken,\r\n} from '@angular/core';\r\nimport {NoopTreeKeyManager, TreeKeyManagerItem, TreeKeyManagerStrategy} from \"@angular/cdk/a11y\";\r\n\r\n/**\r\n * Determine if argument TreeKeyManager is the NoopTreeKeyManager. This function is safe to use with SSR.\r\n */\r\nfunction isNoopTreeKeyManager<T extends TreeKeyManagerItem>(\r\n keyManager: TreeKeyManagerStrategy<T>,\r\n): keyManager is NoopTreeKeyManager<T> {\r\n return !!(keyManager as NoopTreeKeyManager<T>)._isNoopTreeKeyManager;\r\n}\r\n\r\n/**\r\n * Wrapper for the CdkTree node with CuteWidget's design styles.\r\n */\r\n@Directive({\r\n selector: 'cute-tree-node',\r\n exportAs: 'cuteTreeNode',\r\n inputs: ['cdkTreeNodeTypeaheadLabel: cuteTreeNodeTypeaheadLabel'],\r\n outputs: ['activation', 'expandedChange'],\r\n providers: [{provide: CdkTreeNode, useExisting: CuteTreeNode}],\r\n host: {\r\n 'class': 'cute-tree-node',\r\n '[attr.aria-expanded]': '_getAriaExpanded()',\r\n '[attr.aria-level]': 'level + 1',\r\n '[attr.aria-posinset]': '_getPositionInSet()',\r\n '[attr.aria-setsize]': '_getSetSize()',\r\n '(click)': '_focusItem()',\r\n '[tabindex]': '_getTabindexAttribute()',\r\n },\r\n standalone: true,\r\n})\r\nexport class CuteTreeNode<T, K = T> extends CdkTreeNode<T, K> implements OnInit, OnDestroy {\r\n /**\r\n * The tabindex of the tree node.\r\n *\r\n * @deprecated By default CuteTreeNode manages focus using TreeKeyManager instead of tabIndex.\r\n * Recommend to avoid setting tabIndex directly to prevent TreeKeyManager from getting into\r\n * an unexpected state. Tabindex to be removed in a future version.\r\n * @breaking-change 21.0.0 Remove this attribute.\r\n */\r\n @Input({\r\n transform: (value: unknown) => (value == null ? 0 : numberAttribute(value)),\r\n alias: 'tabIndex',\r\n })\r\n get tabIndexInputBinding(): number { return this._tabIndexInputBinding; }\r\n set tabIndexInputBinding(value: number) {\r\n // If the specified tabIndex value is null or undefined, fall back to the default value.\r\n this._tabIndexInputBinding = value;\r\n }\r\n private _tabIndexInputBinding: number = 0;\r\n\r\n /**\r\n * The default tabindex of the tree node.\r\n *\r\n * @deprecated By default CuteTreeNode manages focus using TreeKeyManager instead of tabIndex.\r\n * Recommend to avoid setting tabIndex directly to prevent TreeKeyManager form getting into\r\n * an unexpected state. Tabindex to be removed in a future version.\r\n * @breaking-change 21.0.0 Remove this attribute.\r\n */\r\n defaultTabIndex = 0;\r\n\r\n protected _getTabindexAttribute() {\r\n if (isNoopTreeKeyManager(this._tree._keyManager)) {\r\n return this.tabIndexInputBinding;\r\n }\r\n return this._tabindex;\r\n }\r\n\r\n /**\r\n * Whether the component is disabled.\r\n *\r\n * @deprecated This is an alias for `isDisabled`.\r\n * @breaking-change 21.0.0 Remove this input\r\n */\r\n @Input({transform: booleanAttribute})\r\n get disabled(): boolean { return this.isDisabled; }\r\n set disabled(value: boolean) { this.isDisabled = value; }\r\n\r\n constructor(...args: unknown[]);\r\n constructor() {\r\n super();\r\n const tabIndex = inject(new HostAttributeToken('tabindex'), {optional: true});\r\n this.tabIndexInputBinding = Number(tabIndex) || this.defaultTabIndex;\r\n }\r\n\r\n // This is a workaround for https://github.com/angular/angular/issues/23091\r\n // In aot mode, the lifecycle hooks from parent class are not called.\r\n override ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n\r\n override ngOnDestroy() {\r\n super.ngOnDestroy();\r\n }\r\n}\r\n\r\n/**\r\n * Wrapper for the CdkTree node definition with CuteWidgets' design styles.\r\n * Captures the node's template and a `when` predicate that describes when this node should be used.\r\n */\r\n@Directive({\r\n selector: '[cuteTreeNodeDef]',\r\n inputs: ['when: cuteTreeNodeDefWhen'],\r\n providers: [{provide: CdkTreeNodeDef, useExisting: CuteTreeNodeDef}],\r\n standalone: true,\r\n})\r\nexport class CuteTreeNodeDef<T> extends CdkTreeNodeDef<T> {\r\n @Input('cuteTreeNode') data: T | undefined;\r\n}\r\n\r\n/**\r\n * Wrapper for the CdkTree nested node with CuteWidgets' design styles.\r\n */\r\n@Directive({\r\n selector: 'cute-nested-tree-node',\r\n exportAs: 'cuteNestedTreeNode',\r\n outputs: ['activation', 'expandedChange'],\r\n providers: [\r\n {provide: CdkNestedTreeNode, useExisting: CuteNestedTreeNode},\r\n {provide: CdkTreeNode, useExisting: CuteNestedTreeNode},\r\n {provide: CDK_TREE_NODE_OUTLET_NODE, useExisting: CuteNestedTreeNode},\r\n ],\r\n host: {\r\n 'class': 'cute-nested-tree-node',\r\n },\r\n standalone: true,\r\n})\r\nexport class CuteNestedTreeNode<T, K = T> extends CdkNestedTreeNode<T, K>\r\n implements AfterContentInit, OnDestroy, OnInit\r\n{\r\n @Input('cuteNestedTreeNode') node: T | undefined;\r\n\r\n /**\r\n * Whether the node is disabled.\r\n *\r\n * @deprecated This is an alias for `isDisabled`.\r\n * @breaking-change 21.0.0 Remove this input\r\n */\r\n @Input({transform: booleanAttribute})\r\n get disabled(): boolean {return this.isDisabled; }\r\n set disabled(value: boolean) {this.isDisabled = value;}\r\n\r\n /** Tabindex of the node. */\r\n @Input({\r\n transform: (value: unknown) => (value == null ? 0 : numberAttribute(value)),\r\n })\r\n get tabIndex(): number { return this.isDisabled ? -1 : this._tabIndex; }\r\n set tabIndex(value: number) {\r\n // If the specified tabIndex value is null or undefined, fall back to the default value.\r\n this._tabIndex = value;\r\n }\r\n private _tabIndex: number = 0;\r\n\r\n // This is a workaround for https://github.com/angular/angular/issues/19145\r\n // In aot mode, the lifecycle hooks from parent class are not called.\r\n // TODO(tinayuangao): Remove when the angular issue #19145 is fixed\r\n override ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n\r\n override ngAfterContentInit() {\r\n super.ngAfterContentInit();\r\n }\r\n\r\n override ngOnDestroy() {\r\n super.ngOnDestroy();\r\n }\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {CdkTreeNodePadding} from '@angular/cdk/tree';\r\nimport {Directive, Input, numberAttribute} from '@angular/core';\r\n\r\n/**\r\n * Wrapper for the CdkTree padding with **CuteWidgets** design styles.\r\n */\r\n@Directive({\r\n selector: '[cuteTreeNodePadding]',\r\n providers: [{provide: CdkTreeNodePadding, useExisting: CuteTreeNodePadding}],\r\n standalone: true,\r\n})\r\nexport class CuteTreeNodePadding<T, K = T> extends CdkTreeNodePadding<T, K> {\r\n /** The level of depth of the tree node. The padding will be `level * indent` pixels. */\r\n @Input({alias: 'cuteTreeNodePadding', transform: numberAttribute})\r\n override get level(): number { return this._level; }\r\n override set level(value: number) { this._setLevelInput(value); }\r\n\r\n /** The indent for each level. Default number 40px from material design menu submenu spec. */\r\n @Input('cuteTreeNodePaddingIndent')\r\n override get indent(): number | string { return this._indent; }\r\n override set indent(indent: number | string) { this._setIndentInput(indent); }\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {CDK_TREE_NODE_OUTLET_NODE, CdkTreeNodeOutlet} from '@angular/cdk/tree';\r\nimport {Directive, inject, ViewContainerRef} from '@angular/core';\r\n\r\n/**\r\n * Outlet for nested CdkNode. Put `[cuteTreeNodeOutlet]` on a tag to place children dataNodes\r\n * inside the outlet.\r\n */\r\n@Directive({\r\n selector: '[cuteTreeNodeOutlet]',\r\n providers: [\r\n {\r\n provide: CdkTreeNodeOutlet,\r\n useExisting: CuteTreeNodeOutlet,\r\n },\r\n ],\r\n standalone: true,\r\n})\r\nexport class CuteTreeNodeOutlet implements CdkTreeNodeOutlet {\r\n readonly viewContainer = inject(ViewContainerRef);\r\n readonly _node = inject(CDK_TREE_NODE_OUTLET_NODE, {optional: true});\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {CdkTree} from '@angular/cdk/tree';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component, EventEmitter, Input,\r\n Output,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport {CuteTreeNodeOutlet} from './outlet';\r\nimport {Subject, throttleTime} from \"rxjs\";\r\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\r\nimport {distinctUntilChanged} from \"rxjs/operators\";\r\nimport {ListRange} from \"@angular/cdk/collections\";\r\n\r\n/**\r\n * Wrapper for the CdkTable with **CuteWidgets** design styles.\r\n */\r\n@Component({\r\n selector: 'cute-tree',\r\n exportAs: 'cuteTree',\r\n template: `<ng-container cuteTreeNodeOutlet></ng-container>`,\r\n host: {\r\n 'class': 'cute-tree',\r\n 'role': 'tree',\r\n },\r\n styleUrls: ['./tree.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n // See note on CdkTree for explanation on why this uses the default change detection strategy.\r\n // tslint:disable-next-line:validate-decorators\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n providers: [{ provide: CdkTree, useExisting: CuteTree }],\r\n imports: [CuteTreeNodeOutlet]\r\n})\r\nexport class CuteTree<T, K = T> extends CdkTree<T, K> {\r\n\r\n private _renderChanges = new Subject<T[]>();\r\n\r\n /** Event emitted on each change in the rendered data. */\r\n @Output() renderNodesChange = new EventEmitter<T[]>();\r\n\r\n // Outlets within the tree's template where the dataNodes will be inserted.\r\n // We need an initializer here to avoid a TS error. The value will be set in `ngAfterViewInit`.\r\n @ViewChild(CuteTreeNodeOutlet, {static: true}) override _nodeOutlet: CuteTreeNodeOutlet =\r\n undefined!;\r\n\r\n constructor() {\r\n super();\r\n this._renderChanges\r\n .pipe(takeUntilDestroyed())\r\n .subscribe(nodes => this.renderNodesChange.emit(nodes));\r\n }\r\n\r\n override renderNodeChanges(data: T[]) {\r\n // We generate an event before calling the ancestor, otherwise\r\n // the content of `data` array will not be correct !!!???\r\n this._renderChanges.next(data);\r\n super.renderNodeChanges(data);\r\n }\r\n\r\n override ngOnDestroy() {\r\n super.ngOnDestroy();\r\n this._renderChanges.complete();\r\n }\r\n\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {CdkTreeNodeToggle} from '@angular/cdk/tree';\r\nimport {Directive} from '@angular/core';\r\n\r\n/**\r\n * Wrapper for the CdkTree's toggle with **CuteWidgets** design styles.\r\n */\r\n@Directive({\r\n selector: '[cuteTreeNodeToggle]',\r\n providers: [{provide: CdkTreeNodeToggle, useExisting: CuteTreeNodeToggle}],\r\n inputs: ['recursive: cuteTreeNodeToggleRecursive'],\r\n standalone: true,\r\n})\r\nexport class CuteTreeNodeToggle<T, K = T> extends CdkTreeNodeToggle<T, K> {}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {CollectionViewer, DataSource} from '@angular/cdk/collections';\r\nimport {FlatTreeControl, TreeControl} from '@angular/cdk/tree';\r\nimport {BehaviorSubject, merge, Observable, Subscription} from 'rxjs';\r\nimport {map, take} from 'rxjs/operators';\r\n\r\n/**\r\n * Tree flattener to convert a normal type of node to node with children & level information.\r\n * Transform nested nodes of type `T` to flattened nodes of type `F`.\r\n *\r\n * For example, the input data of type `T` is nested, and contains its children data:\r\n * SomeNode: {\r\n * key: 'Fruits',\r\n * children: [\r\n * NodeOne: {\r\n * key: 'Apple',\r\n * },\r\n * NodeTwo: {\r\n * key: 'Pear',\r\n * }\r\n * ]\r\n * }\r\n * After flattener flatten the tree, the structure will become\r\n * SomeNode: {\r\n * key: 'Fruits',\r\n * expandable: true,\r\n * level: 1\r\n * },\r\n * NodeOne: {\r\n * key: 'Apple',\r\n * expandable: false,\r\n * level: 2\r\n * },\r\n * NodeTwo: {\r\n * key: 'Pear',\r\n * expandable: false,\r\n * level: 2\r\n * }\r\n * and the output flattened type is `F` with additional information.\r\n */\r\nexport class CuteTreeFlattener<T, F, K = F> {\r\n private _subscription: Subscription | undefined;\r\n\r\n constructor(\r\n public transformFunction: (node: T, level: number) => F,\r\n public getLevel: (node: F) => number,\r\n public isExpandable: (node: F) => boolean,\r\n public getChildren: (node: T) => Observable<T[]> | T[] | undefined | null,\r\n ) {}\r\n\r\n private _flattenNode(node: T, level: number, resultNodes: F[], parentMap: boolean[]): F[] {\r\n const flatNode = this.transformFunction(node, level);\r\n resultNodes.push(flatNode);\r\n\r\n if (this.isExpandable(flatNode)) {\r\n const childrenNodes = this.getChildren(node);\r\n if (childrenNodes) {\r\n if (Array.isArray(childrenNodes)) {\r\n this._flattenChildren(childrenNodes, level, resultNodes, parentMap);\r\n } else {\r\n this._subscription?.unsubscribe();\r\n this._subscription = childrenNodes.pipe(take(1)).subscribe(children => {\r\n this._flattenChildren(children, level, resultNodes, parentMap);\r\n this._subscription?.unsubscribe();\r\n });\r\n }\r\n }\r\n }\r\n return resultNodes;\r\n }\r\n\r\n private _flattenChildren(children: T[], level: number, resultNodes: F[], parentMap: boolean[]): void {\r\n children.forEach((child, index) => {\r\n let childParentMap: boolean[] = parentMap.slice();\r\n childParentMap.push(index != children.length - 1);\r\n this._flattenNode(child, level + 1, resultNodes, childParentMap);\r\n });\r\n }\r\n\r\n /**\r\n * Flatten a list of node type T to a flattened version of node F.\r\n * Please note that type T may be nested, and the length of `structuredData` may be different\r\n * from that of a returned list `F[]`.\r\n */\r\n flattenNodes(structuredData: T[]): F[] {\r\n let resultNodes: F[] = [];\r\n structuredData.forEach(node => this._flattenNode(node, 0, resultNodes, []));\r\n return resultNodes;\r\n }\r\n\r\n /**\r\n * Expand flattened node with current expansion status.\r\n * The returned list may have different length.\r\n */\r\n expandFlattenedNodes(nodes: F[], treeControl: TreeControl<F, K>): F[] {\r\n let results: F[] = [];\r\n let currentExpand: boolean[] = [];\r\n currentExpand[0] = true;\r\n\r\n nodes.forEach(node => {\r\n let expand = true;\r\n for (let i = 0; i <= this.getLevel(node); i++) {\r\n expand = expand && currentExpand[i];\r\n }\r\n if (expand) {\r\n results.push(node);\r\n }\r\n if (this.isExpandable(node)) {\r\n currentExpand[this.getLevel(node) + 1] = treeControl.isExpanded(node);\r\n }\r\n });\r\n return results;\r\n }\r\n\r\n //++ CWT\r\n /**\r\n * Performs the final actions with the flattener before destroying it.\r\n */\r\n finalize() {\r\n this._subscription?.unsubscribe();\r\n }\r\n\r\n}\r\n\r\n/**\r\n * Data source for a flat tree.\r\n * The data source needs to handle expansion/collapsion of the tree node and change the data feed\r\n * to `CuteTree`.\r\n * The nested tree nodes of type `T` are flattened through `CuteTreeFlattener`, and converted\r\n * to type `F` for `CuteTree` to consume.\r\n */\r\nexport class CuteTreeFlatDataSource<T, F, K = F> extends DataSource<F> {\r\n private readonly _flattenedData = new BehaviorSubject<F[]>([]);\r\n private readonly _expandedData = new BehaviorSubject<F[]>([]);\r\n\r\n get data() {\r\n return this._data.value;\r\n }\r\n set data(value: T[]) {\r\n this._data.next(value);\r\n this._flattenedData.next(this._treeFlattener.flattenNodes(this.data));\r\n this._treeControl.dataNodes = this._flattenedData.value;\r\n }\r\n private readonly _data = new BehaviorSubject<T[]>([]);\r\n\r\n constructor(\r\n private _treeControl: FlatTreeControl<F, K>,\r\n private _treeFlattener: CuteTreeFlattener<T, F, K>,\r\n initialData?: T[],\r\n ) {\r\n super();\r\n\r\n if (initialData) {\r\n // Assign the data through the constructor to ensure that all of the logic is executed.\r\n this.data = initialData;\r\n }\r\n }\r\n\r\n connect(collectionViewer: CollectionViewer): Observable<F[]> {\r\n return merge(\r\n collectionViewer.viewChange,\r\n this._treeControl.expansionModel.changed,\r\n this._flattenedData,\r\n ).pipe(\r\n map(() => {\r\n this._expandedData.next(\r\n this._treeFlattener.expandFlattenedNodes(this._flattenedData.value, this._treeControl),\r\n );\r\n return this._expandedData.value;\r\n }),\r\n );\r\n }\r\n\r\n disconnect() {\r\n this._treeFlattener.finalize();\r\n }\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {CollectionViewer, DataSource} from '@angular/cdk/collections';\r\nimport {BehaviorSubject, merge, Observable} from 'rxjs';\r\nimport {map} from 'rxjs/operators';\r\n\r\n/**\r\n * Data source for a nested tree.\r\n *\r\n * The data source for a nested tree doesn't have to consider node flattener, or the way to expand\r\n * or collapse. The expansion/collapsion will be handled by TreeControl and each non-leaf node.\r\n */\r\nexport class CuteTreeNestedDataSource<T> extends DataSource<T> {\r\n /**\r\n * Data for the nested tree\r\n */\r\n get data(): T[] { return this._data.value; }\r\n set data(value: T[]) {\r\n this._data.next(value);\r\n }\r\n private readonly _data = new BehaviorSubject<T[]>([]);\r\n\r\n connect(collectionViewer: CollectionViewer): Observable<T[]> {\r\n return merge(...([collectionViewer.viewChange, this._data] as Observable<unknown>[])).pipe(\r\n map(() => this.data),\r\n );\r\n }\r\n\r\n disconnect() {\r\n // no op\r\n }\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {NgModule, Type} from '@angular/core';\r\nimport {CdkTreeModule} from \"@angular/cdk/tree\";\r\nimport {CuteNestedTreeNode, CuteTreeNode, CuteTreeNodeDef} from \"./node\";\r\nimport {CuteTreeNodeToggle} from \"./toggle\";\r\nimport {CuteTree} from \"./tree\";\r\nimport {CuteTreeNodeOutlet} from \"./outlet\";\r\nimport {CuteTreeNodePadding} from \"./padding\";\r\n\r\nconst TYPES: (any | Type<any>)[] = [\r\n CuteNestedTreeNode,\r\n CuteTreeNodeDef,\r\n CuteTreeNodePadding,\r\n CuteTreeNodeToggle,\r\n CuteTree,\r\n CuteTreeNode,\r\n CuteTreeNodeOutlet,\r\n];\r\n\r\n@NgModule({\r\n imports: [CdkTreeModule, ...TYPES],\r\n exports: TYPES,\r\n declarations: [],\r\n})\r\nexport class CuteTreeModule {\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AAAA;;;;;;;;;;AAUG;AAkBH;;AAEG;AACH,SAAS,oBAAoB,CAC3B,UAAqC,EAAA;AAErC,IAAA,OAAO,CAAC,CAAE,UAAoC,CAAC,qBAAqB;AACtE;AAEA;;AAEG;AAkBG,MAAO,YAAuB,SAAQ,WAAiB,CAAA;AAC3D;;;;;;;AAOG;IACH,IAII,oBAAoB,KAAa,OAAO,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACxE,IAAI,oBAAoB,CAAC,KAAa,EAAA;;AAEpC,QAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK;IACpC;IAaU,qBAAqB,GAAA;QAC7B,IAAI,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;YAChD,OAAO,IAAI,CAAC,oBAAoB;QAClC;QACA,OAAO,IAAI,CAAC,SAAS;IACvB;AAEA;;;;;AAKG;IACH,IACI,QAAQ,KAAc,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC;IAClD,IAAI,QAAQ,CAAC,KAAc,EAAA,EAAI,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC;AAGxD,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;QA/BD,IAAA,CAAA,qBAAqB,GAAW,CAAC;AAEzC;;;;;;;AAOG;QACH,IAAA,CAAA,eAAe,GAAG,CAAC;AAsBjB,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,kBAAkB,CAAC,UAAU,CAAC,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;QAC7E,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,eAAe;IACtE;;;IAIS,QAAQ,GAAA;QACf,KAAK,CAAC,QAAQ,EAAE;IAClB;IAES,WAAW,GAAA;QAClB,KAAK,CAAC,WAAW,EAAE;IACrB;+GA9DW,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,yBAAA,EAAA,CAAA,4BAAA,EAAA,2BAAA,CAAA,EAAA,oBAAA,EAAA,CAAA,UAAA,EAAA,sBAAA,EAUV,CAAC,KAAc,MAAM,KAAK,IAAI,IAAI,GAAG,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAiC1D,gBAAgB,mYAvDxB,CAAC,EAAC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAC,CAAC,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAYnD,YAAY,EAAA,UAAA,EAAA,CAAA;kBAjBxB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,QAAQ,EAAE,cAAc;oBACxB,MAAM,EAAE,CAAC,uDAAuD,CAAC;AACjE,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,gBAAgB,CAAC;oBACzC,SAAS,EAAE,CAAC,EAAC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAA,YAAc,EAAC,CAAC;AAC9D,oBAAA,IAAI,EAAE;AACJ,wBAAA,OAAO,EAAE,gBAAgB;AACzB,wBAAA,sBAAsB,EAAE,oBAAoB;AAC5C,wBAAA,mBAAmB,EAAE,WAAW;AAChC,wBAAA,sBAAsB,EAAE,qBAAqB;AAC7C,wBAAA,qBAAqB,EAAE,eAAe;AACtC,wBAAA,SAAS,EAAE,cAAc;AACzB,wBAAA,YAAY,EAAE,yBAAyB;AACxC,qBAAA;AACD,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;sBAUE,KAAK;AAAC,gBAAA,IAAA,EAAA,CAAA;wBACL,SAAS,EAAE,CAAC,KAAc,MAAM,KAAK,IAAI,IAAI,GAAG,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;AAC3E,wBAAA,KAAK,EAAE,UAAU;AAClB,qBAAA;;sBA+BA,KAAK;uBAAC,EAAC,SAAS,EAAE,gBAAgB,EAAC;;AAsBtC;;;AAGG;AAOG,MAAO,eAAmB,SAAQ,cAAiB,CAAA;+GAA5C,eAAe,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,CAAA,qBAAA,EAAA,MAAA,CAAA,EAAA,IAAA,EAAA,CAAA,cAAA,EAAA,MAAA,CAAA,EAAA,EAAA,SAAA,EAHf,CAAC,EAAC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,eAAe,EAAC,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAGzD,eAAe,EAAA,UAAA,EAAA,CAAA;kBAN3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;oBAC7B,MAAM,EAAE,CAAC,2BAA2B,CAAC;oBACrC,SAAS,EAAE,CAAC,EAAC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAA,eAAiB,EAAC,CAAC;AACpE,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;sBAEE,KAAK;uBAAC,cAAc;;AAGvB;;AAEG;AAeG,MAAO,kBAA6B,SAAQ,iBAAuB,CAAA;AAdzE,IAAA,WAAA,GAAA;;QAsCU,IAAA,CAAA,SAAS,GAAW,CAAC;AAgB9B,IAAA;AAnCC;;;;;AAKG;IACH,IACI,QAAQ,KAAa,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC;IACjD,IAAI,QAAQ,CAAC,KAAc,EAAA,EAAG,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,CAAA;;AAGtD,IAAA,IAGI,QAAQ,GAAA,EAAa,OAAO,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IACvE,IAAI,QAAQ,CAAC,KAAa,EAAA;;AAExB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;IACxB;;;;IAMS,QAAQ,GAAA;QACf,KAAK,CAAC,QAAQ,EAAE;IAClB;IAES,kBAAkB,GAAA;QACzB,KAAK,CAAC,kBAAkB,EAAE;IAC5B;IAES,WAAW,GAAA;QAClB,KAAK,CAAC,WAAW,EAAE;IACrB;+GAvCW,kBAAkB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,CAAA,oBAAA,EAAA,MAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAWV,gBAAgB,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAMtB,CAAC,KAAc,MAAM,KAAK,IAAI,IAAI,GAAG,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,EAAA,SAAA,EA3BlE;AACT,YAAA,EAAC,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,kBAAkB,EAAC;AAC7D,YAAA,EAAC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,kBAAkB,EAAC;AACvD,YAAA,EAAC,OAAO,EAAE,yBAAyB,EAAE,WAAW,EAAE,kBAAkB,EAAC;AACtE,SAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAMU,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAd9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,gBAAgB,CAAC;AACzC,oBAAA,SAAS,EAAE;AACT,wBAAA,EAAC,OAAO,EAAE,iBAAiB,EAAE,WAAW,oBAAoB,EAAC;AAC7D,wBAAA,EAAC,OAAO,EAAE,WAAW,EAAE,WAAW,oBAAoB,EAAC;AACvD,wBAAA,EAAC,OAAO,EAAE,yBAAyB,EAAE,WAAW,oBAAoB,EAAC;AACtE,qBAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,OAAO,EAAE,uBAAuB;AACjC,qBAAA;AACD,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;sBAIE,KAAK;uBAAC,oBAAoB;;sBAQ1B,KAAK;uBAAC,EAAC,SAAS,EAAE,gBAAgB,EAAC;;sBAKnC,KAAK;AAAC,gBAAA,IAAA,EAAA,CAAA;wBACL,SAAS,EAAE,CAAC,KAAc,MAAM,KAAK,IAAI,IAAI,GAAG,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;AAC5E,qBAAA;;;AC3KH;;;;;;;;;;AAUG;AAIH;;AAEG;AAMG,MAAO,mBAA8B,SAAQ,kBAAwB,CAAA;;IAEzE,IACa,KAAK,KAAa,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACnD,IAAA,IAAa,KAAK,CAAC,KAAa,EAAA,EAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;;IAGhE,IACa,MAAM,KAAsB,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;AAC9D,IAAA,IAAa,MAAM,CAAC,MAAuB,EAAA,EAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;+GATlE,mBAAmB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,qBAAA,EAAA,OAAA,EAEmB,eAAe,CAAA,EAAA,MAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,CAAA,EAAA,EAAA,SAAA,EALrD,CAAC,EAAC,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,mBAAmB,EAAC,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAGjE,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;oBACjC,SAAS,EAAE,CAAC,EAAC,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAA,mBAAqB,EAAC,CAAC;AAC5E,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;sBAGE,KAAK;AAAC,gBAAA,IAAA,EAAA,CAAA,EAAC,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,eAAe,EAAC;;sBAKhE,KAAK;uBAAC,2BAA2B;;;AC7BpC;;;;;;;;;;AAUG;AAIH;;;AAGG;MAWU,kBAAkB,CAAA;AAV/B,IAAA,WAAA,GAAA;AAWW,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;QACxC,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,yBAAyB,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;AACrE,IAAA;+GAHY,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,SAAA,EARlB;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,kBAAkB;AAChC,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAGU,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAV9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAA,kBAAoB;AAChC,yBAAA;AACF,qBAAA;AACD,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;;AC3BD;;;;;;;;;;AAUG;AAeH;;AAEG;AAiBG,MAAO,QAAmB,SAAQ,OAAa,CAAA;AAYnD,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;AAXD,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,OAAO,EAAO;;AAGjC,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAO;;;QAIG,IAAA,CAAA,WAAW,GACjE,SAAU;AAIV,QAAA,IAAI,CAAC;aACF,IAAI,CAAC,kBAAkB,EAAE;AACzB,aAAA,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3D;AAES,IAAA,iBAAiB,CAAC,IAAS,EAAA;;;AAGlC,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;AAC9B,QAAA,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC;IAC/B;IAES,WAAW,GAAA;QAClB,KAAK,CAAC,WAAW,EAAE;AACnB,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;IAChC;+GA7BW,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAR,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,QAAQ,oLAHN,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAY/C,kBAAkB,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAtBjB,CAAA,gDAAA,CAAkD,kYAWlD,kBAAkB,EAAA,QAAA,EAAA,sBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,OAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAEnB,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAhBpB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EAAA,QAAA,EACX,UAAU,EAAA,QAAA,EACV,CAAA,gDAAA,CAAkD,EAAA,IAAA,EACtD;AACF,wBAAA,OAAO,EAAE,WAAW;AACpB,wBAAA,MAAM,EAAE,MAAM;qBACjB,EAAA,aAAA,EAEc,iBAAiB,CAAC,IAAI,EAAA,eAAA,EAGpB,uBAAuB,CAAC,OAAO,aACrC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAA,QAAU,EAAE,CAAC,EAAA,OAAA,EAC/C,CAAC,kBAAkB,CAAC,EAAA,MAAA,EAAA,CAAA,0TAAA,CAAA,EAAA;;sBAO9B;;sBAIA,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,kBAAkB,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC;;;ACrD/C;;;;;;;;;;AAUG;AAIH;;AAEG;AAOG,MAAO,kBAA6B,SAAQ,iBAAuB,CAAA;+GAA5D,kBAAkB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,CAAA,6BAAA,EAAA,WAAA,CAAA,EAAA,EAAA,SAAA,EAJlB,CAAC,EAAC,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,kBAAkB,EAAC,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAI/D,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;oBAChC,SAAS,EAAE,CAAC,EAAC,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAA,kBAAoB,EAAC,CAAC;oBAC1E,MAAM,EAAE,CAAC,wCAAwC,CAAC;AAClD,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;;ACtBD;;;;;;;;;;AAUG;AAMH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCG;MACU,iBAAiB,CAAA;AAG5B,IAAA,WAAA,CACS,iBAAgD,EAChD,QAA6B,EAC7B,YAAkC,EAClC,WAAkE,EAAA;QAHlE,IAAA,CAAA,iBAAiB,GAAjB,iBAAiB;QACjB,IAAA,CAAA,QAAQ,GAAR,QAAQ;QACR,IAAA,CAAA,YAAY,GAAZ,YAAY;QACZ,IAAA,CAAA,WAAW,GAAX,WAAW;IACjB;AAEK,IAAA,YAAY,CAAC,IAAO,EAAE,KAAa,EAAE,WAAgB,EAAE,SAAoB,EAAA;QACjF,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC;AACpD,QAAA,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;AAE1B,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE;YAC/B,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YAC5C,IAAI,aAAa,EAAE;AACjB,gBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;oBAChC,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC;gBACrE;qBAAO;AACL,oBAAA,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE;AACjC,oBAAA,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,IAAG;wBACpE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC;AAC9D,wBAAA,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE;AACnC,oBAAA,CAAC,CAAC;gBACJ;YACF;QACF;AACA,QAAA,OAAO,WAAW;IACpB;AAEQ,IAAA,gBAAgB,CAAC,QAAa,EAAE,KAAa,EAAE,WAAgB,EAAE,SAAoB,EAAA;QAC3F,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,KAAI;AAChC,YAAA,IAAI,cAAc,GAAc,SAAS,CAAC,KAAK,EAAE;YACjD,cAAc,CAAC,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;AACjD,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,WAAW,EAAE,cAAc,CAAC;AAClE,QAAA,CAAC,CAAC;IACJ;AAEA;;;;AAIG;AACH,IAAA,YAAY,CAAC,cAAmB,EAAA;QAC9B,IAAI,WAAW,GAAQ,EAAE;QACzB,cAAc,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;AAC3E,QAAA,OAAO,WAAW;IACpB;AAEA;;;AAGG;IACH,oBAAoB,CAAC,KAAU,EAAE,WAA8B,EAAA;QAC7D,IAAI,OAAO,GAAQ,EAAE;QACrB,IAAI,aAAa,GAAc,EAAE;AACjC,QAAA,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI;AAEvB,QAAA,KAAK,CAAC,OAAO,CAAC,IAAI,IAAG;YACnB,IAAI,MAAM,GAAG,IAAI;AACjB,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC7C,gBAAA,MAAM,GAAG,MAAM,IAAI,aAAa,CAAC,CAAC,CAAC;YACrC;YACA,IAAI,MAAM,EAAE;AACV,gBAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;YACpB;AACA,YAAA,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;AAC3B,gBAAA,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC;YACvE;AACF,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,OAAO;IAChB;;AAGA;;AAEG;IACH,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE;IACnC;AAED;AAED;;;;;;AAMG;AACG,MAAO,sBAAoC,SAAQ,UAAa,CAAA;AAIpE,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK;IACzB;IACA,IAAI,IAAI,CAAC,KAAU,EAAA;AACjB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;AACtB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrE,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK;IACzD;AAGA,IAAA,WAAA,CACU,YAAmC,EACnC,cAA0C,EAClD,WAAiB,EAAA;AAEjB,QAAA,KAAK,EAAE;QAJC,IAAA,CAAA,YAAY,GAAZ,YAAY;QACZ,IAAA,CAAA,cAAc,GAAd,cAAc;AAfP,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,eAAe,CAAM,EAAE,CAAC;AAC7C,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,eAAe,CAAM,EAAE,CAAC;AAU5C,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,eAAe,CAAM,EAAE,CAAC;QASnD,IAAI,WAAW,EAAE;;AAEf,YAAA,IAAI,CAAC,IAAI,GAAG,WAAW;QACzB;IACF;AAEA,IAAA,OAAO,CAAC,gBAAkC,EAAA;QACxC,OAAO,KAAK,CACV,gBAAgB,CAAC,UAAU,EAC3B,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,EACxC,IAAI,CAAC,cAAc,CACpB,CAAC,IAAI,CACJ,GAAG,CAAC,MAAK;YACP,IAAI,CAAC,aAAa,CAAC,IAAI,CACrB,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CACvF;AACD,YAAA,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK;QACjC,CAAC,CAAC,CACH;IACH;IAEA,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;IAChC;AACD;;AC1LD;;;;;;;;;;AAUG;AAKH;;;;;AAKG;AACG,MAAO,wBAA4B,SAAQ,UAAa,CAAA;AAA9D,IAAA,WAAA,GAAA;;AAQmB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,eAAe,CAAM,EAAE,CAAC;IAWvD;AAlBE;;AAEG;IACH,IAAI,IAAI,GAAA,EAAU,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,IAAI,CAAC,KAAU,EAAA;AACjB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;IACxB;AAGA,IAAA,OAAO,CAAC,gBAAkC,EAAA;QACxC,OAAO,KAAK,CAAC,GAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAA2B,CAAC,CAAC,IAAI,CACxF,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CACrB;IACH;IAEA,UAAU,GAAA;;IAEV;AACD;;ACxCD;;;;;;;AAOG;AASH,MAAM,KAAK,GAAwB;IACjC,kBAAkB;IAClB,eAAe;IACf,mBAAmB;IACnB,kBAAkB;IAClB,QAAQ;IACR,YAAY;IACZ,kBAAkB;CACnB;MAOY,cAAc,CAAA;+GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAAd,cAAc,EAAA,OAAA,EAAA,CAJf,aAAa,EAVvB,kBAAkB;YAClB,eAAe;YACf,mBAAmB;YACnB,kBAAkB;YAClB,QAAQ;YACR,YAAY;AACZ,YAAA,kBAAkB,aANlB,kBAAkB;YAClB,eAAe;YACf,mBAAmB;YACnB,kBAAkB;YAClB,QAAQ;YACR,YAAY;YACZ,kBAAkB,CAAA,EAAA,CAAA,CAAA;AAQP,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YAJf,aAAa,CAAA,EAAA,CAAA,CAAA;;4FAIZ,cAAc,EAAA,UAAA,EAAA,CAAA;kBAL1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,aAAa,EAAE,GAAG,KAAK,CAAC;AAClC,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,YAAY,EAAE,EAAE;AACjB,iBAAA;;;AC9BD;;AAEG;;;;"}
@@ -1,5 +1,5 @@
1
1
  var name = "@cute-widgets/base";
2
- var version = "20.0.2";
2
+ var version = "20.0.3";
3
3
  var license = "Apache-2.0";
4
4
  var repository = {
5
5
  type: "git",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cute-widgets/base",
3
- "version": "20.0.2",
3
+ "version": "20.0.3",
4
4
  "license": "Apache-2.0",
5
5
  "repository": {
6
6
  "type": "git",
@@ -62,14 +62,14 @@
62
62
  "types": "./bottom-sheet/index.d.ts",
63
63
  "default": "./fesm2022/cute-widgets-base-bottom-sheet.mjs"
64
64
  },
65
- "./button-toggle": {
66
- "types": "./button-toggle/index.d.ts",
67
- "default": "./fesm2022/cute-widgets-base-button-toggle.mjs"
68
- },
69
65
  "./button": {
70
66
  "types": "./button/index.d.ts",
71
67
  "default": "./fesm2022/cute-widgets-base-button.mjs"
72
68
  },
69
+ "./button-toggle": {
70
+ "types": "./button-toggle/index.d.ts",
71
+ "default": "./fesm2022/cute-widgets-base-button-toggle.mjs"
72
+ },
73
73
  "./card": {
74
74
  "types": "./card/index.d.ts",
75
75
  "default": "./fesm2022/cute-widgets-base-card.mjs"
@@ -226,14 +226,14 @@
226
226
  "types": "./core/layout/index.d.ts",
227
227
  "default": "./fesm2022/cute-widgets-base-core-layout.mjs"
228
228
  },
229
- "./core/line": {
230
- "types": "./core/line/index.d.ts",
231
- "default": "./fesm2022/cute-widgets-base-core-line.mjs"
232
- },
233
229
  "./core/nav": {
234
230
  "types": "./core/nav/index.d.ts",
235
231
  "default": "./fesm2022/cute-widgets-base-core-nav.mjs"
236
232
  },
233
+ "./core/line": {
234
+ "types": "./core/line/index.d.ts",
235
+ "default": "./fesm2022/cute-widgets-base-core-line.mjs"
236
+ },
237
237
  "./core/observers": {
238
238
  "types": "./core/observers/index.d.ts",
239
239
  "default": "./fesm2022/cute-widgets-base-core-observers.mjs"