@acorex/components 7.24.5 → 17.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/common/lib/classes/datasource.class.d.ts +2 -0
  2. package/data-table/index.d.ts +3 -2
  3. package/data-table/lib/base-data-table.class.d.ts +25 -0
  4. package/data-table/lib/columns/row-command-column.component.d.ts +2 -2
  5. package/data-table/lib/data-table/data-table.component.d.ts +52 -0
  6. package/data-table/lib/data-table.module.d.ts +21 -18
  7. package/data-table/lib/{data-table.component.d.ts → infinite-scroll-data-table/infinite-scroll-data-table.component.d.ts} +8 -22
  8. package/esm2022/button/lib/button.component.mjs +2 -2
  9. package/esm2022/common/lib/classes/datasource.class.mjs +8 -2
  10. package/esm2022/common/lib/components/selection-base.component.class.mjs +2 -2
  11. package/esm2022/data-pager/lib/data-pager.component.mjs +7 -11
  12. package/esm2022/data-table/index.mjs +4 -3
  13. package/esm2022/data-table/lib/base-data-table.class.mjs +36 -0
  14. package/esm2022/data-table/lib/columns/row-command-column.component.mjs +57 -69
  15. package/esm2022/data-table/lib/columns/row-index-column.component.mjs +7 -21
  16. package/esm2022/data-table/lib/columns/row-select-column.component.mjs +6 -18
  17. package/esm2022/data-table/lib/data-table/data-table.component.mjs +233 -0
  18. package/esm2022/data-table/lib/data-table.module.mjs +24 -7
  19. package/esm2022/data-table/lib/infinite-scroll-data-table/infinite-scroll-data-table.component.mjs +272 -0
  20. package/esm2022/otp/lib/otp.component.mjs +2 -2
  21. package/esm2022/phone-box/lib/phone-box.component.mjs +21 -38
  22. package/esm2022/select-box/lib/select-box.component.mjs +2 -2
  23. package/esm2022/text-area/lib/text-area.component.mjs +6 -22
  24. package/fesm2022/acorex-components-button.mjs +2 -2
  25. package/fesm2022/acorex-components-button.mjs.map +1 -1
  26. package/fesm2022/acorex-components-common.mjs +8 -2
  27. package/fesm2022/acorex-components-common.mjs.map +1 -1
  28. package/fesm2022/acorex-components-data-pager.mjs +5 -9
  29. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  30. package/fesm2022/acorex-components-data-table.mjs +684 -470
  31. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  32. package/fesm2022/acorex-components-otp.mjs +2 -2
  33. package/fesm2022/acorex-components-otp.mjs.map +1 -1
  34. package/fesm2022/acorex-components-phone-box.mjs +22 -38
  35. package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
  36. package/fesm2022/acorex-components-select-box.mjs +2 -2
  37. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  38. package/fesm2022/acorex-components-text-area.mjs +5 -21
  39. package/fesm2022/acorex-components-text-area.mjs.map +1 -1
  40. package/package.json +25 -31
  41. package/phone-box/lib/phone-box.component.d.ts +4 -13
  42. package/text-area/lib/text-area.component.d.ts +0 -1
  43. package/data-table-2/README.md +0 -3
  44. package/data-table-2/index.d.ts +0 -8
  45. package/data-table-2/lib/columns/data-table-column-resizable.directive.d.ts +0 -22
  46. package/data-table-2/lib/columns/data-table-column.d.ts +0 -22
  47. package/data-table-2/lib/columns/data-text-column.component.d.ts +0 -18
  48. package/data-table-2/lib/columns/row-command-column.component.d.ts +0 -40
  49. package/data-table-2/lib/columns/row-index-column.component.d.ts +0 -18
  50. package/data-table-2/lib/columns/row-select-column.component.d.ts +0 -14
  51. package/data-table-2/lib/data-table-2.component.d.ts +0 -61
  52. package/data-table-2/lib/data-table-2.module.d.ts +0 -24
  53. package/esm2022/data-table/lib/data-table.component.mjs +0 -290
  54. package/esm2022/data-table-2/acorex-components-data-table-2.mjs +0 -5
  55. package/esm2022/data-table-2/index.mjs +0 -9
  56. package/esm2022/data-table-2/lib/columns/data-table-column-resizable.directive.mjs +0 -59
  57. package/esm2022/data-table-2/lib/columns/data-table-column.mjs +0 -42
  58. package/esm2022/data-table-2/lib/columns/data-text-column.component.mjs +0 -81
  59. package/esm2022/data-table-2/lib/columns/row-command-column.component.mjs +0 -231
  60. package/esm2022/data-table-2/lib/columns/row-index-column.component.mjs +0 -71
  61. package/esm2022/data-table-2/lib/columns/row-select-column.component.mjs +0 -61
  62. package/esm2022/data-table-2/lib/data-table-2.component.mjs +0 -211
  63. package/esm2022/data-table-2/lib/data-table-2.module.mjs +0 -94
  64. package/fesm2022/acorex-components-data-table-2.mjs +0 -822
  65. package/fesm2022/acorex-components-data-table-2.mjs.map +0 -1
@@ -0,0 +1,272 @@
1
+ import { AXListDataSource, AXPagedComponent } from '@acorex/components/common';
2
+ import { ChangeDetectionStrategy, Component, ContentChildren, ElementRef, EventEmitter, Input, NgZone, Output, QueryList, TemplateRef, ViewChild, ViewEncapsulation, inject, signal, } from '@angular/core';
3
+ import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
4
+ import sum from 'lodash-es/sum';
5
+ import { Subject, buffer, debounceTime, filter } from 'rxjs';
6
+ import { AXBaseDataTable } from '../base-data-table.class';
7
+ import { AXDataTableColumnComponent } from '../columns/data-table-column';
8
+ import { AXDataTableTextColumnComponent } from '../columns/data-text-column.component';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@angular/common";
11
+ import * as i2 from "@angular/cdk/scrolling";
12
+ import * as i3 from "@acorex/components/decorators";
13
+ import * as i4 from "@acorex/components/skeleton";
14
+ import * as i5 from "@acorex/components/button";
15
+ export class AXInfiniteScrollDataTableComponent extends AXBaseDataTable {
16
+ constructor() {
17
+ super(...arguments);
18
+ this.ngZone = inject(NgZone);
19
+ this.onPageChanged = new EventEmitter();
20
+ this.clickSubject = new Subject();
21
+ this.onRowClick = new EventEmitter();
22
+ this.onRowDbClick = new EventEmitter();
23
+ this.showHeader = true;
24
+ this.fetchDataMode = 'auto';
25
+ this.loading = {
26
+ enabled: true,
27
+ animation: true,
28
+ };
29
+ this.isLoading = signal(true);
30
+ this.hasItems = false;
31
+ this.totalRows = 0;
32
+ this.currentPage = 0;
33
+ this.totalPages = 0;
34
+ this.startRowIndex = 0;
35
+ this.lastIndex = 0;
36
+ this.focusedRowChange = new EventEmitter();
37
+ this.itemHeight = 40;
38
+ this.width = '100%';
39
+ this.height = '100%';
40
+ this.onScrolledIndexChanged = new EventEmitter();
41
+ }
42
+ startFixedColumn() {
43
+ return this.columns?.toArray().filter((c) => c.fixed == 'start') ?? [];
44
+ }
45
+ endFixedColumn() {
46
+ return this.columns?.toArray().filter((c) => c.fixed == 'end') ?? [];
47
+ }
48
+ notFixedColumn() {
49
+ return this.columns?.toArray().filter((c) => !c.fixed) ?? [];
50
+ }
51
+ notFixedColumnCount() {
52
+ return this.columns?.toArray().filter((c) => !c.fixed).length ?? 0;
53
+ }
54
+ fixedColumnCount() {
55
+ return this.columns?.toArray().filter((c) => c.fixed).length ?? 0;
56
+ }
57
+ get focusedRow() {
58
+ return this._focusedRow;
59
+ }
60
+ set focusedRow(v) {
61
+ this._focusedRow = v;
62
+ this.focusedRowChange.emit(v);
63
+ }
64
+ trackByIdx(i) {
65
+ return i;
66
+ }
67
+ ngOnInit() {
68
+ super.ngOnInit();
69
+ this.listDataSource = new AXListDataSource({
70
+ source: this.dataSource,
71
+ });
72
+ this.listDataSource.source.onLoadingChanged.subscribe((data) => {
73
+ this.isLoading.set(data);
74
+ });
75
+ this.listDataSource.source.onChanged.subscribe((data) => {
76
+ this.totalRows = data.totalCount;
77
+ this.hasItems = data.totalCount > 0;
78
+ setTimeout(() => {
79
+ this.render();
80
+ }, 100);
81
+ });
82
+ //
83
+ this.clickSubject
84
+ .pipe(buffer(this.clickSubject.pipe(debounceTime(250))), filter((clickArray) => clickArray.length === 2))
85
+ .subscribe((clickArray) => {
86
+ this.handleRowDoubleClick(clickArray[0].event, clickArray[0].item);
87
+ });
88
+ }
89
+ _handleOnscrolledIndexChange(e) {
90
+ this.lastIndex = e;
91
+ this.onScrolledIndexChanged.emit({
92
+ component: this,
93
+ index: this.lastIndex,
94
+ isUserInteraction: true,
95
+ });
96
+ }
97
+ ngDoCheck() {
98
+ //this.copyFixedColumns();
99
+ this.updateHScroll();
100
+ //
101
+ this.updateWidth();
102
+ this.updateHeight();
103
+ //
104
+ this.updateTotalCount();
105
+ }
106
+ updateTotalCount() {
107
+ this.startRowIndex = this.lastIndex;
108
+ if (this.startRowIndex < 1)
109
+ this.startRowIndex = 1;
110
+ if (this.startRowIndex > this.totalRows)
111
+ this.startRowIndex = this.totalRows;
112
+ }
113
+ updateHeight() {
114
+ this.height = `calc(100% - ${(this.headerContainer?.nativeElement.clientHeight ?? 0) + (this.footerContainer?.nativeElement.clientHeight ?? 0)}px)`;
115
+ }
116
+ updateWidth() {
117
+ if (this.columns && this.columns.length) {
118
+ const sumPx = sum(this.columns.toArray().map((c) => (typeof c.width == 'number' ? c.width : Number(c.width.replace('px', '')))));
119
+ this.width = `${Math.max(sumPx, this.getHostElement().clientWidth - 5)}px`;
120
+ }
121
+ }
122
+ updateHScroll() {
123
+ this.ngZone.runOutsideAngular(() => {
124
+ if (this.headerContainer) {
125
+ const headerContainer = this.headerContainer.nativeElement;
126
+ const left = this.scrollableContainer.nativeElement.scrollLeft;
127
+ headerContainer.style.transform = `translateX(${-left}px)`;
128
+ }
129
+ });
130
+ }
131
+ // Function to copy fixed columns
132
+ copyFixedColumns() {
133
+ const originalRows = Array.from(this.viewport._contentWrapper.nativeElement.querySelectorAll('tr'));
134
+ const fixedColumnTable = this.getHostElement().querySelector('.ax-body-fixed-columns > table > tbody');
135
+ fixedColumnTable.querySelectorAll('tr').forEach((n) => n.remove());
136
+ for (const row of originalRows) {
137
+ const fixedCells = Array.from(row.querySelectorAll('[data-fixed="start"]'));
138
+ const fixedRow = document.createElement('tr');
139
+ for (const cell of fixedCells) {
140
+ const clonedCell = cell.cloneNode(true);
141
+ fixedRow.appendChild(clonedCell);
142
+ }
143
+ fixedColumnTable.appendChild(fixedRow);
144
+ }
145
+ const scrollTop = this.getHostElement().querySelector('.cdk-virtual-scrollable').scrollTop;
146
+ fixedColumnTable.style.transform = `translateY(${-scrollTop}px)`;
147
+ }
148
+ render() {
149
+ this.viewport.checkViewportSize();
150
+ this.viewport.scrollToIndex(this.lastIndex);
151
+ this.cdr.markForCheck();
152
+ }
153
+ refresh() {
154
+ this.lastIndex = 0;
155
+ this.listDataSource.refresh();
156
+ }
157
+ handleRowClick(event, item) {
158
+ this.handleRowSingleClick(event, item);
159
+ this.clickSubject.next({ event, item });
160
+ }
161
+ handleRowSingleClick(event, item) {
162
+ if (this.focusedRow == item) {
163
+ this.focusedRow = null;
164
+ }
165
+ else {
166
+ this.focusedRow = item;
167
+ }
168
+ //
169
+ this.onRowClick.emit({
170
+ component: this,
171
+ data: item,
172
+ isUserInteraction: true,
173
+ });
174
+ }
175
+ handleRowDoubleClick(e, item) {
176
+ this.focusedRow = item;
177
+ //
178
+ this.onRowDbClick.emit({
179
+ component: this,
180
+ data: item,
181
+ isUserInteraction: true,
182
+ });
183
+ }
184
+ handleColumnClick(e, column) {
185
+ if (column instanceof AXDataTableTextColumnComponent) {
186
+ const sort = this.dataSource.query.sort.find((c) => c.field == column.dataField);
187
+ if (!sort) {
188
+ this.dataSource.query.sort.push({
189
+ field: column.dataField,
190
+ dir: 'asc',
191
+ });
192
+ }
193
+ else {
194
+ if (sort.dir == 'asc') {
195
+ sort.dir = 'desc';
196
+ }
197
+ else {
198
+ this.dataSource.query.sort = this.dataSource.query.sort.filter((c) => c != sort);
199
+ }
200
+ }
201
+ this.refresh();
202
+ }
203
+ }
204
+ getSort(column) {
205
+ if (column instanceof AXDataTableTextColumnComponent) {
206
+ const sort = this.dataSource.query.sort.find((c) => c.field == column.dataField);
207
+ return sort ? (sort.dir == 'asc' ? 'ax-icon-arrow-long-down' : 'ax-icon-arrow-long-up') : undefined;
208
+ }
209
+ return undefined;
210
+ }
211
+ _handleOnScroll() {
212
+ this.updateHScroll();
213
+ }
214
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXInfiniteScrollDataTableComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
215
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.2", type: AXInfiniteScrollDataTableComponent, selector: "ax-infinite-scroll-data-table", inputs: { dataSource: "dataSource", rowTemplate: "rowTemplate", emptyTemplate: "emptyTemplate", showHeader: "showHeader", fetchDataMode: "fetchDataMode", loading: "loading", focusedRow: "focusedRow", itemHeight: "itemHeight" }, outputs: { onPageChanged: "onPageChanged", onRowClick: "onRowClick", onRowDbClick: "onRowDbClick", focusedRowChange: "focusedRowChange", onScrolledIndexChanged: "onScrolledIndexChanged" }, providers: [
216
+ { provide: AXPagedComponent, useExisting: AXInfiniteScrollDataTableComponent },
217
+ {
218
+ provide: AXBaseDataTable,
219
+ useExisting: AXInfiniteScrollDataTableComponent,
220
+ },
221
+ ], queries: [{ propertyName: "columns", predicate: AXDataTableColumnComponent }], viewQueries: [{ propertyName: "viewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true, static: true }, { propertyName: "headerContainer", first: true, predicate: ["headerContainer"], descendants: true }, { propertyName: "footerContainer", first: true, predicate: ["footerContainer"], descendants: true }, { propertyName: "scrollableContainer", first: true, predicate: ["scrolling"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-header\"> </ng-content>\n<!------------------- Header contents ------------------->\n@if (showHeader) {\n <div class=\"ax-header-content\">\n <div class=\"ax-header-columns\">\n <table tabindex=\"0\" [style.width]=\"width\" #headerContainer>\n <thead>\n <tr>\n @for (c of notFixedColumn(); track c.name) {\n <th\n [class.ax-interactive]=\"c.allowSorting\"\n (click)=\"c.allowSorting ? handleColumnClick($event, c) : null\"\n [style.width]=\"c.width\"\n >\n @if (c.headerTemplate) {\n <ng-container *ngTemplateOutlet=\"c.headerTemplate\"></ng-container>\n } @else {\n <div class=\"ax-caption\">\n {{ c.caption }}\n @if (getSort(c)) {\n <ax-icon icon=\"ax-icon {{ getSort(c) }}\"></ax-icon>\n }\n </div>\n }\n <!-- @if(c.allowResizing)\n {\n <div class=\"ax-resize-handle\" [ax-table-column-resizble]=\"c\"></div>\n } -->\n </th>\n }\n <th></th>\n </tr>\n </thead>\n </table>\n </div>\n </div>\n}\n\n<!------------------- Body contents ------------------->\n<div [style.height]=\"height\" class=\"ax-body-content\">\n <div class=\"ax-body-columns\">\n <div cdkVirtualScrollingElement #scrolling [style.height]=\"'100%'\" (scroll)=\"_handleOnScroll()\">\n <cdk-virtual-scroll-viewport\n [itemSize]=\"itemHeight\"\n [style.--item-height]=\"itemHeight + 'px'\"\n (scrolledIndexChange)=\"_handleOnscrolledIndexChange($event)\"\n >\n <table tabindex=\"0\" class=\"ax-table-body ax-relative\" [style.width]=\"width\">\n <colgroup>\n @for (c of notFixedColumn(); track c.name) {\n <col [style.width]=\"c.width\" />\n }\n <col />\n </colgroup>\n <tbody>\n <ng-container\n *cdkVirtualFor=\"let item of listDataSource; templateCacheSize: 100; let i = index; trackBy: trackByIdx; let rIndex = index\"\n >\n <!------------------- custom row template------------------->\n @if (rowTemplate != null) {\n <ng-container *ngTemplateOutlet=\"rowTemplate; context: { $implicit: { data: item, rowIndex: rIndex } }\"> </ng-container>\n } @else {\n <!------------------- normal row template------------------->\n <tr\n [class.ax-state-focused]=\"focusedRow && item === focusedRow\"\n [attr.data-index]=\"rIndex\"\n [class.ax-state-selected]=\"selectedRows.includes(item)\"\n (click)=\"handleRowClick($event, item)\"\n >\n <!------------------- start fixed column ------------------->\n\n <!------------------- Not fixed column ------------------->\n @for (c of notFixedColumn(); track c.name) {\n <!------------------- custom cell template ------------------->\n @if (c.cellTemplate) {\n <ng-container *ngTemplateOutlet=\"c.cellTemplate; context: { $implicit: { data: item, rowIndex: rIndex } }\">\n </ng-container>\n } @else {\n <!------------------- default cell template ------------------->\n <td [attr.data-label]=\"c.caption\" tabindex=\"0\" [class]=\"c.cssClass\">\n @if (item && !isLoading()) {\n <!------------------- render cell ------------------->\n <ng-container\n *ngTemplateOutlet=\"c.template; context: { $implicit: { data: item, rowIndex: rIndex } }\"\n ></ng-container>\n } @else {\n <!------------------- render loading ------------------->\n @if (c.loadingEnabled && loading) {\n <ax-skeleton [animated]=\"loading.animation\"></ax-skeleton>\n }\n }\n </td>\n }\n }\n <td></td>\n </tr>\n }\n </ng-container>\n </tbody>\n </table>\n </cdk-virtual-scroll-viewport>\n </div>\n </div>\n</div>\n<div class=\"ax-table-footer\" #footerContainer>\n <div class=\"ax-table-info\">\n <div>Showing {{ startRowIndex }} of {{ totalRows }} items</div>\n <ax-button look=\"blank\" class=\"ax-sm\" (onClick)=\"refresh()\">\n <ax-icon icon=\"ax-icon ax-icon-refresh\"></ax-icon>\n </ax-button>\n </div>\n <ng-content select=\"ax-footer\"> </ng-content>\n</div>\n", styles: [".ax-dark ax-infinite-scroll-data-table .ax-header-content th.ax-interactive:hover{background-color:rgba(var(--ax-color-neutral-500))!important}.ax-dark ax-infinite-scroll-data-table .ax-body-content tr:hover td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-800))!important;color:rgba(var(--ax-color-primary-fore))!important}.ax-dark ax-infinite-scroll-data-table .ax-body-content tr.ax-state-focused td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-900))!important;color:rgba(var(--ax-color-primary-fore))!important}.ax-dark ax-infinite-scroll-data-table .ax-body-content tr.ax-state-focused:hover td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-800))!important}.ax-dark ax-infinite-scroll-data-table .ax-body-content tr.ax-state-selected td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-900))!important;color:rgba(var(--ax-color-primary-fore))!important}.ax-dark ax-infinite-scroll-data-table .ax-body-content tr.ax-state-selected:hover td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-800))!important}ax-infinite-scroll-data-table{display:block;height:100%;overflow:hidden;border-radius:var(--ax-rounded-border-default);border-width:1px;border-color:rgba(var(--ax-color-border-default));font-size:.875rem;line-height:1.25rem}ax-infinite-scroll-data-table table{table-layout:fixed}ax-infinite-scroll-data-table .ax-header-content{position:relative;height:3rem;overflow:hidden}ax-infinite-scroll-data-table .ax-header-content .ax-header-fixed-columns{pointer-events:none;position:absolute;z-index:10}ax-infinite-scroll-data-table .ax-header-content .ax-header-fixed-columns th.ax-column-fixed{pointer-events:auto}ax-infinite-scroll-data-table .ax-header-content .ax-header-fixed-columns th:not(.ax-column-fixed){visibility:hidden;background-color:transparent}ax-infinite-scroll-data-table .ax-header-content .ax-header-columns{height:100%}ax-infinite-scroll-data-table .ax-header-content .ax-header-columns>table{height:100%;overflow:hidden;border-start-end-radius:var(--ax-rounded-border-default);border-start-start-radius:var(--ax-rounded-border-default)}ax-infinite-scroll-data-table .ax-header-content .ax-header-columns>table th{border-bottom-width:1px;border-inline-end-width:1px;border-style:solid;border-color:rgba(var(--ax-color-border-default));background-color:rgba(var(--ax-color-on-surface));padding:.75rem 1rem;text-align:start;font-weight:500;text-transform:uppercase;position:relative}ax-infinite-scroll-data-table .ax-header-content .ax-header-columns>table th.ax-interactive{cursor:pointer}ax-infinite-scroll-data-table .ax-header-content .ax-header-columns>table th.ax-interactive:hover{background-color:rgba(var(--ax-color-neutral-200))}ax-infinite-scroll-data-table .ax-header-content .ax-header-columns>table th .ax-resize-handle{position:absolute;right:0;top:0;bottom:0;width:4px;cursor:col-resize;background:transparent}ax-infinite-scroll-data-table .ax-header-content .ax-header-columns>table th .ax-resize-handle:hover{background-color:rgba(var(--ax-color-neutral-300))}ax-infinite-scroll-data-table .ax-header-content .ax-header-columns>table th .ax-caption{display:flex;align-items:center;gap:.5rem}ax-infinite-scroll-data-table .ax-header-content .ax-header-columns>table th:last-child{border-inline-end-width:0px}ax-infinite-scroll-data-table .ax-body-content{position:relative}ax-infinite-scroll-data-table .ax-body-content .ax-body-fixed-columns{pointer-events:none;position:absolute;z-index:10}ax-infinite-scroll-data-table .ax-body-content .ax-body-columns{height:100%}ax-infinite-scroll-data-table .ax-body-content .ax-body-columns table{border-collapse:collapse}ax-infinite-scroll-data-table .ax-body-content .ax-body-columns table tr:nth-child(2n) td{background-color:rgba(var(--ax-color-on-surface))}ax-infinite-scroll-data-table .ax-body-content .ax-body-columns table tr:nth-child(2n) ax-skeleton{width:25%}ax-infinite-scroll-data-table .ax-body-content .ax-body-columns table tr{height:2.5rem}ax-infinite-scroll-data-table .ax-body-content .ax-body-columns table tr:hover td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-200))}ax-infinite-scroll-data-table .ax-body-content .ax-body-columns table tr.ax-state-focused td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-200));color:rgba(var(--ax-color-primary-fore-tint))}ax-infinite-scroll-data-table .ax-body-content .ax-body-columns table tr.ax-state-focused:hover td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-300))}ax-infinite-scroll-data-table .ax-body-content .ax-body-columns table tr.ax-state-selected td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-300));color:rgba(var(--ax-color-primary-fore-tint))}ax-infinite-scroll-data-table .ax-body-content .ax-body-columns table tr.ax-state-selected:hover td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-400));color:rgba(var(--ax-color-primary-fore))}ax-infinite-scroll-data-table .ax-body-content .ax-body-columns table td{position:relative;min-width:2rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-bottom-width:1px;border-inline-end-width:1px;border-color:rgba(var(--ax-color-border-default));background-color:rgba(var(--ax-color-surface));padding:.5rem 1rem;vertical-align:middle}ax-infinite-scroll-data-table .ax-body-content .ax-body-columns table td.ax-index-column{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-color:rgba(var(--ax-color-on-surface));text-align:center}ax-infinite-scroll-data-table .ax-body-content .ax-body-columns table td.ax-command-column button.ax-state-disabled{position:relative!important;cursor:not-allowed!important;opacity:.5!important}ax-infinite-scroll-data-table .ax-body-content .ax-body-columns table td.ax-command-column>div{position:absolute;inset-inline-start:0px;top:50%;display:flex;width:100%;transform:translateY(-50%);align-items:center;justify-content:center}ax-infinite-scroll-data-table .ax-body-content .ax-body-columns table td.ax-command-column button{position:relative;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:var(--ax-rounded-border-default);border-style:none;border-color:rgba(var(--ax-color-border-default));background-color:transparent;padding:.25rem;line-height:1;color:rgba(var(--ax-color-ghost-fore))}ax-infinite-scroll-data-table .ax-body-content .ax-body-columns table td.ax-command-column button:hover:not(ax-infinite-scroll-data-table .ax-body-content .ax-body-columns table td.ax-command-column button:hover.ax-state-selected,ax-infinite-scroll-data-table .ax-body-content .ax-body-columns table td.ax-command-column button:hover.ax-state-disabled){opacity:.75}ax-infinite-scroll-data-table .ax-body-content .ax-body-columns table td.ax-command-column button:active{opacity:1}ax-infinite-scroll-data-table .ax-body-content .ax-body-columns table td.ax-command-column button .ax-ripple{background-color:rgba(var(--ax-color-ghost-fore),.05)}ax-infinite-scroll-data-table .ax-body-content .ax-body-columns table td:last-child{border-inline-end-width:0px}ax-infinite-scroll-data-table .ax-body-content .ax-body-columns table td ax-skeleton{height:.875rem;width:33.333333%;border-radius:.375rem}ax-infinite-scroll-data-table .ax-table-footer{border-collapse:collapse;overflow:hidden;border-top-width:1px;border-color:rgba(var(--ax-color-border-default));padding:.5rem .875rem}ax-infinite-scroll-data-table .ax-table-footer .ax-table-info{display:flex;flex:1 1 0%;align-items:center;justify-content:space-between}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i2.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i2.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: i2.CdkVirtualScrollableElement, selector: "[cdkVirtualScrollingElement]" }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }, { kind: "component", type: i5.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
222
+ }
223
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXInfiniteScrollDataTableComponent, decorators: [{
224
+ type: Component,
225
+ args: [{ selector: 'ax-infinite-scroll-data-table', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
226
+ { provide: AXPagedComponent, useExisting: AXInfiniteScrollDataTableComponent },
227
+ {
228
+ provide: AXBaseDataTable,
229
+ useExisting: AXInfiniteScrollDataTableComponent,
230
+ },
231
+ ], inputs: ['dataSource'], template: "<ng-content select=\"ax-header\"> </ng-content>\n<!------------------- Header contents ------------------->\n@if (showHeader) {\n <div class=\"ax-header-content\">\n <div class=\"ax-header-columns\">\n <table tabindex=\"0\" [style.width]=\"width\" #headerContainer>\n <thead>\n <tr>\n @for (c of notFixedColumn(); track c.name) {\n <th\n [class.ax-interactive]=\"c.allowSorting\"\n (click)=\"c.allowSorting ? handleColumnClick($event, c) : null\"\n [style.width]=\"c.width\"\n >\n @if (c.headerTemplate) {\n <ng-container *ngTemplateOutlet=\"c.headerTemplate\"></ng-container>\n } @else {\n <div class=\"ax-caption\">\n {{ c.caption }}\n @if (getSort(c)) {\n <ax-icon icon=\"ax-icon {{ getSort(c) }}\"></ax-icon>\n }\n </div>\n }\n <!-- @if(c.allowResizing)\n {\n <div class=\"ax-resize-handle\" [ax-table-column-resizble]=\"c\"></div>\n } -->\n </th>\n }\n <th></th>\n </tr>\n </thead>\n </table>\n </div>\n </div>\n}\n\n<!------------------- Body contents ------------------->\n<div [style.height]=\"height\" class=\"ax-body-content\">\n <div class=\"ax-body-columns\">\n <div cdkVirtualScrollingElement #scrolling [style.height]=\"'100%'\" (scroll)=\"_handleOnScroll()\">\n <cdk-virtual-scroll-viewport\n [itemSize]=\"itemHeight\"\n [style.--item-height]=\"itemHeight + 'px'\"\n (scrolledIndexChange)=\"_handleOnscrolledIndexChange($event)\"\n >\n <table tabindex=\"0\" class=\"ax-table-body ax-relative\" [style.width]=\"width\">\n <colgroup>\n @for (c of notFixedColumn(); track c.name) {\n <col [style.width]=\"c.width\" />\n }\n <col />\n </colgroup>\n <tbody>\n <ng-container\n *cdkVirtualFor=\"let item of listDataSource; templateCacheSize: 100; let i = index; trackBy: trackByIdx; let rIndex = index\"\n >\n <!------------------- custom row template------------------->\n @if (rowTemplate != null) {\n <ng-container *ngTemplateOutlet=\"rowTemplate; context: { $implicit: { data: item, rowIndex: rIndex } }\"> </ng-container>\n } @else {\n <!------------------- normal row template------------------->\n <tr\n [class.ax-state-focused]=\"focusedRow && item === focusedRow\"\n [attr.data-index]=\"rIndex\"\n [class.ax-state-selected]=\"selectedRows.includes(item)\"\n (click)=\"handleRowClick($event, item)\"\n >\n <!------------------- start fixed column ------------------->\n\n <!------------------- Not fixed column ------------------->\n @for (c of notFixedColumn(); track c.name) {\n <!------------------- custom cell template ------------------->\n @if (c.cellTemplate) {\n <ng-container *ngTemplateOutlet=\"c.cellTemplate; context: { $implicit: { data: item, rowIndex: rIndex } }\">\n </ng-container>\n } @else {\n <!------------------- default cell template ------------------->\n <td [attr.data-label]=\"c.caption\" tabindex=\"0\" [class]=\"c.cssClass\">\n @if (item && !isLoading()) {\n <!------------------- render cell ------------------->\n <ng-container\n *ngTemplateOutlet=\"c.template; context: { $implicit: { data: item, rowIndex: rIndex } }\"\n ></ng-container>\n } @else {\n <!------------------- render loading ------------------->\n @if (c.loadingEnabled && loading) {\n <ax-skeleton [animated]=\"loading.animation\"></ax-skeleton>\n }\n }\n </td>\n }\n }\n <td></td>\n </tr>\n }\n </ng-container>\n </tbody>\n </table>\n </cdk-virtual-scroll-viewport>\n </div>\n </div>\n</div>\n<div class=\"ax-table-footer\" #footerContainer>\n <div class=\"ax-table-info\">\n <div>Showing {{ startRowIndex }} of {{ totalRows }} items</div>\n <ax-button look=\"blank\" class=\"ax-sm\" (onClick)=\"refresh()\">\n <ax-icon icon=\"ax-icon ax-icon-refresh\"></ax-icon>\n </ax-button>\n </div>\n <ng-content select=\"ax-footer\"> </ng-content>\n</div>\n", styles: [".ax-dark ax-infinite-scroll-data-table .ax-header-content th.ax-interactive:hover{background-color:rgba(var(--ax-color-neutral-500))!important}.ax-dark ax-infinite-scroll-data-table .ax-body-content tr:hover td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-800))!important;color:rgba(var(--ax-color-primary-fore))!important}.ax-dark ax-infinite-scroll-data-table .ax-body-content tr.ax-state-focused td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-900))!important;color:rgba(var(--ax-color-primary-fore))!important}.ax-dark ax-infinite-scroll-data-table .ax-body-content tr.ax-state-focused:hover td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-800))!important}.ax-dark ax-infinite-scroll-data-table .ax-body-content tr.ax-state-selected td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-900))!important;color:rgba(var(--ax-color-primary-fore))!important}.ax-dark ax-infinite-scroll-data-table .ax-body-content tr.ax-state-selected:hover td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-800))!important}ax-infinite-scroll-data-table{display:block;height:100%;overflow:hidden;border-radius:var(--ax-rounded-border-default);border-width:1px;border-color:rgba(var(--ax-color-border-default));font-size:.875rem;line-height:1.25rem}ax-infinite-scroll-data-table table{table-layout:fixed}ax-infinite-scroll-data-table .ax-header-content{position:relative;height:3rem;overflow:hidden}ax-infinite-scroll-data-table .ax-header-content .ax-header-fixed-columns{pointer-events:none;position:absolute;z-index:10}ax-infinite-scroll-data-table .ax-header-content .ax-header-fixed-columns th.ax-column-fixed{pointer-events:auto}ax-infinite-scroll-data-table .ax-header-content .ax-header-fixed-columns th:not(.ax-column-fixed){visibility:hidden;background-color:transparent}ax-infinite-scroll-data-table .ax-header-content .ax-header-columns{height:100%}ax-infinite-scroll-data-table .ax-header-content .ax-header-columns>table{height:100%;overflow:hidden;border-start-end-radius:var(--ax-rounded-border-default);border-start-start-radius:var(--ax-rounded-border-default)}ax-infinite-scroll-data-table .ax-header-content .ax-header-columns>table th{border-bottom-width:1px;border-inline-end-width:1px;border-style:solid;border-color:rgba(var(--ax-color-border-default));background-color:rgba(var(--ax-color-on-surface));padding:.75rem 1rem;text-align:start;font-weight:500;text-transform:uppercase;position:relative}ax-infinite-scroll-data-table .ax-header-content .ax-header-columns>table th.ax-interactive{cursor:pointer}ax-infinite-scroll-data-table .ax-header-content .ax-header-columns>table th.ax-interactive:hover{background-color:rgba(var(--ax-color-neutral-200))}ax-infinite-scroll-data-table .ax-header-content .ax-header-columns>table th .ax-resize-handle{position:absolute;right:0;top:0;bottom:0;width:4px;cursor:col-resize;background:transparent}ax-infinite-scroll-data-table .ax-header-content .ax-header-columns>table th .ax-resize-handle:hover{background-color:rgba(var(--ax-color-neutral-300))}ax-infinite-scroll-data-table .ax-header-content .ax-header-columns>table th .ax-caption{display:flex;align-items:center;gap:.5rem}ax-infinite-scroll-data-table .ax-header-content .ax-header-columns>table th:last-child{border-inline-end-width:0px}ax-infinite-scroll-data-table .ax-body-content{position:relative}ax-infinite-scroll-data-table .ax-body-content .ax-body-fixed-columns{pointer-events:none;position:absolute;z-index:10}ax-infinite-scroll-data-table .ax-body-content .ax-body-columns{height:100%}ax-infinite-scroll-data-table .ax-body-content .ax-body-columns table{border-collapse:collapse}ax-infinite-scroll-data-table .ax-body-content .ax-body-columns table tr:nth-child(2n) td{background-color:rgba(var(--ax-color-on-surface))}ax-infinite-scroll-data-table .ax-body-content .ax-body-columns table tr:nth-child(2n) ax-skeleton{width:25%}ax-infinite-scroll-data-table .ax-body-content .ax-body-columns table tr{height:2.5rem}ax-infinite-scroll-data-table .ax-body-content .ax-body-columns table tr:hover td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-200))}ax-infinite-scroll-data-table .ax-body-content .ax-body-columns table tr.ax-state-focused td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-200));color:rgba(var(--ax-color-primary-fore-tint))}ax-infinite-scroll-data-table .ax-body-content .ax-body-columns table tr.ax-state-focused:hover td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-300))}ax-infinite-scroll-data-table .ax-body-content .ax-body-columns table tr.ax-state-selected td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-300));color:rgba(var(--ax-color-primary-fore-tint))}ax-infinite-scroll-data-table .ax-body-content .ax-body-columns table tr.ax-state-selected:hover td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-400));color:rgba(var(--ax-color-primary-fore))}ax-infinite-scroll-data-table .ax-body-content .ax-body-columns table td{position:relative;min-width:2rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-bottom-width:1px;border-inline-end-width:1px;border-color:rgba(var(--ax-color-border-default));background-color:rgba(var(--ax-color-surface));padding:.5rem 1rem;vertical-align:middle}ax-infinite-scroll-data-table .ax-body-content .ax-body-columns table td.ax-index-column{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-color:rgba(var(--ax-color-on-surface));text-align:center}ax-infinite-scroll-data-table .ax-body-content .ax-body-columns table td.ax-command-column button.ax-state-disabled{position:relative!important;cursor:not-allowed!important;opacity:.5!important}ax-infinite-scroll-data-table .ax-body-content .ax-body-columns table td.ax-command-column>div{position:absolute;inset-inline-start:0px;top:50%;display:flex;width:100%;transform:translateY(-50%);align-items:center;justify-content:center}ax-infinite-scroll-data-table .ax-body-content .ax-body-columns table td.ax-command-column button{position:relative;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:var(--ax-rounded-border-default);border-style:none;border-color:rgba(var(--ax-color-border-default));background-color:transparent;padding:.25rem;line-height:1;color:rgba(var(--ax-color-ghost-fore))}ax-infinite-scroll-data-table .ax-body-content .ax-body-columns table td.ax-command-column button:hover:not(ax-infinite-scroll-data-table .ax-body-content .ax-body-columns table td.ax-command-column button:hover.ax-state-selected,ax-infinite-scroll-data-table .ax-body-content .ax-body-columns table td.ax-command-column button:hover.ax-state-disabled){opacity:.75}ax-infinite-scroll-data-table .ax-body-content .ax-body-columns table td.ax-command-column button:active{opacity:1}ax-infinite-scroll-data-table .ax-body-content .ax-body-columns table td.ax-command-column button .ax-ripple{background-color:rgba(var(--ax-color-ghost-fore),.05)}ax-infinite-scroll-data-table .ax-body-content .ax-body-columns table td:last-child{border-inline-end-width:0px}ax-infinite-scroll-data-table .ax-body-content .ax-body-columns table td ax-skeleton{height:.875rem;width:33.333333%;border-radius:.375rem}ax-infinite-scroll-data-table .ax-table-footer{border-collapse:collapse;overflow:hidden;border-top-width:1px;border-color:rgba(var(--ax-color-border-default));padding:.5rem .875rem}ax-infinite-scroll-data-table .ax-table-footer .ax-table-info{display:flex;flex:1 1 0%;align-items:center;justify-content:space-between}\n"] }]
232
+ }], propDecorators: { columns: [{
233
+ type: ContentChildren,
234
+ args: [AXDataTableColumnComponent]
235
+ }], onPageChanged: [{
236
+ type: Output
237
+ }], onRowClick: [{
238
+ type: Output
239
+ }], onRowDbClick: [{
240
+ type: Output
241
+ }], rowTemplate: [{
242
+ type: Input
243
+ }], emptyTemplate: [{
244
+ type: Input
245
+ }], showHeader: [{
246
+ type: Input
247
+ }], fetchDataMode: [{
248
+ type: Input
249
+ }], loading: [{
250
+ type: Input
251
+ }], focusedRowChange: [{
252
+ type: Output
253
+ }], focusedRow: [{
254
+ type: Input
255
+ }], itemHeight: [{
256
+ type: Input
257
+ }], viewport: [{
258
+ type: ViewChild,
259
+ args: [CdkVirtualScrollViewport, { static: true }]
260
+ }], onScrolledIndexChanged: [{
261
+ type: Output
262
+ }], headerContainer: [{
263
+ type: ViewChild,
264
+ args: ['headerContainer']
265
+ }], footerContainer: [{
266
+ type: ViewChild,
267
+ args: ['footerContainer']
268
+ }], scrollableContainer: [{
269
+ type: ViewChild,
270
+ args: ['scrolling', { static: true }]
271
+ }] } });
272
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5maW5pdGUtc2Nyb2xsLWRhdGEtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGEtdGFibGUvc3JjL2xpYi9pbmZpbml0ZS1zY3JvbGwtZGF0YS10YWJsZS9pbmZpbml0ZS1zY3JvbGwtZGF0YS10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0YS10YWJsZS9zcmMvbGliL2luZmluaXRlLXNjcm9sbC1kYXRhLXRhYmxlL2luZmluaXRlLXNjcm9sbC1kYXRhLXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBdUIsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxlQUFlLEVBRWYsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUVOLE1BQU0sRUFDTixTQUFTLEVBQ1QsV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsRUFFakIsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRSxPQUFPLEdBQUcsTUFBTSxlQUFlLENBQUM7QUFDaEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUE2RSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RJLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzFFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7Ozs7O0FBaUJ2RixNQUFNLE9B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IEFYTGlzdERhdGFTb3VyY2UsIEFYUGFnZWRDb21wb25lbnQsIEFYVmFsdWVDaGFuZ2VkRXZlbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRG9DaGVjayxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgV3JpdGFibGVTaWduYWwsXG4gIGluamVjdCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XG5pbXBvcnQgc3VtIGZyb20gJ2xvZGFzaC1lcy9zdW0nO1xuaW1wb3J0IHsgU3ViamVjdCwgYnVmZmVyLCBkZWJvdW5jZVRpbWUsIGZpbHRlciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVhCYXNlRGF0YVRhYmxlLCBBWERhdGFUYWJsZVJvd0NsaWNrLCBBWERhdGFUYWJsZVJvd0RiQ2xpY2ssIEFYRGF0YVRhYmxlU2Nyb2xsSW5kZXhDaGFuZ2VkIH0gZnJvbSAnLi4vYmFzZS1kYXRhLXRhYmxlLmNsYXNzJztcbmltcG9ydCB7IEFYRGF0YVRhYmxlQ29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi4vY29sdW1ucy9kYXRhLXRhYmxlLWNvbHVtbic7XG5pbXBvcnQgeyBBWERhdGFUYWJsZVRleHRDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuLi9jb2x1bW5zL2RhdGEtdGV4dC1jb2x1bW4uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtaW5maW5pdGUtc2Nyb2xsLWRhdGEtdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW5maW5pdGUtc2Nyb2xsLWRhdGEtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbmZpbml0ZS1zY3JvbGwtZGF0YS10YWJsZS5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBBWFBhZ2VkQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhJbmZpbml0ZVNjcm9sbERhdGFUYWJsZUNvbXBvbmVudCB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYQmFzZURhdGFUYWJsZSxcbiAgICAgIHVzZUV4aXN0aW5nOiBBWEluZmluaXRlU2Nyb2xsRGF0YVRhYmxlQ29tcG9uZW50LFxuICAgIH0sXG4gIF0sXG4gIGlucHV0czogWydkYXRhU291cmNlJ10sXG59KVxuZXhwb3J0IGNsYXNzIEFYSW5maW5pdGVTY3JvbGxEYXRhVGFibGVDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VEYXRhVGFibGUgaW1wbGVtZW50cyBPbkluaXQsIERvQ2hlY2sge1xuICBwcml2YXRlIG5nWm9uZSA9IGluamVjdChOZ1pvbmUpO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oQVhEYXRhVGFibGVDb2x1bW5Db21wb25lbnQpXG4gIHByb3RlY3RlZCBjb2x1bW5zOiBRdWVyeUxpc3Q8QVhEYXRhVGFibGVDb2x1bW5Db21wb25lbnQ+O1xuXG4gIHByb3RlY3RlZCBzdGFydEZpeGVkQ29sdW1uKCk6IEFYRGF0YVRhYmxlQ29sdW1uQ29tcG9uZW50W10ge1xuICAgIHJldHVybiB0aGlzLmNvbHVtbnM/LnRvQXJyYXkoKS5maWx0ZXIoKGMpID0+IGMuZml4ZWQgPT0gJ3N0YXJ0JykgPz8gW107XG4gIH1cblxuICBwcm90ZWN0ZWQgZW5kRml4ZWRDb2x1bW4oKTogQVhEYXRhVGFibGVDb2x1bW5Db21wb25lbnRbXSB7XG4gICAgcmV0dXJuIHRoaXMuY29sdW1ucz8udG9BcnJheSgpLmZpbHRlcigoYykgPT4gYy5maXhlZCA9PSAnZW5kJykgPz8gW107XG4gIH1cblxuICBwcm90ZWN0ZWQgbm90Rml4ZWRDb2x1bW4oKTogQVhEYXRhVGFibGVDb2x1bW5Db21wb25lbnRbXSB7XG4gICAgcmV0dXJuIHRoaXMuY29sdW1ucz8udG9BcnJheSgpLmZpbHRlcigoYykgPT4gIWMuZml4ZWQpID8/IFtdO1xuICB9XG5cbiAgcHJvdGVjdGVkIG5vdEZpeGVkQ29sdW1uQ291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5jb2x1bW5zPy50b0FycmF5KCkuZmlsdGVyKChjKSA9PiAhYy5maXhlZCkubGVuZ3RoID8/IDA7XG4gIH1cblxuICBwcm90ZWN0ZWQgZml4ZWRDb2x1bW5Db3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmNvbHVtbnM/LnRvQXJyYXkoKS5maWx0ZXIoKGMpID0+IGMuZml4ZWQpLmxlbmd0aCA/PyAwO1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIG9uUGFnZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxBWFZhbHVlQ2hhbmdlZEV2ZW50PG51bWJlcj4+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWFZhbHVlQ2hhbmdlZEV2ZW50PG51bWJlcj4+KCk7XG5cbiAgcHJpdmF0ZSBjbGlja1N1YmplY3QgPSBuZXcgU3ViamVjdDx7IGV2ZW50OiBNb3VzZUV2ZW50OyBpdGVtOiBhbnkgfT4oKTtcblxuICBAT3V0cHV0KClcbiAgb25Sb3dDbGljazogRXZlbnRFbWl0dGVyPEFYRGF0YVRhYmxlUm93Q2xpY2s+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWERhdGFUYWJsZVJvd0NsaWNrPigpO1xuXG4gIEBPdXRwdXQoKVxuICBvblJvd0RiQ2xpY2s6IEV2ZW50RW1pdHRlcjxBWERhdGFUYWJsZVJvd0RiQ2xpY2s+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWERhdGFUYWJsZVJvd0RiQ2xpY2s+KCk7XG5cbiAgQElucHV0KClcbiAgcm93VGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBASW5wdXQoKVxuICBlbXB0eVRlbXBsYXRlPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQElucHV0KClcbiAgc2hvd0hlYWRlciA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgZmV0Y2hEYXRhTW9kZTogJ2F1dG8nIHwgJ21hbnVhbCcgPSAnYXV0byc7XG5cbiAgQElucHV0KClcbiAgbG9hZGluZzoge1xuICAgIGVuYWJsZWQ6IGJvb2xlYW47XG4gICAgYW5pbWF0aW9uOiBib29sZWFuO1xuICAgIGxvYWRpbmdUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHVua25vd24+O1xuICB9ID0ge1xuICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgYW5pbWF0aW9uOiB0cnVlLFxuICB9O1xuXG4gIHByb3RlY3RlZCBsaXN0RGF0YVNvdXJjZTogQVhMaXN0RGF0YVNvdXJjZTx1bmtub3duPjtcbiAgcHJvdGVjdGVkIGlzTG9hZGluZzogV3JpdGFibGVTaWduYWw8Ym9vbGVhbj4gPSBzaWduYWwodHJ1ZSk7XG4gIHByb3RlY3RlZCBoYXNJdGVtcyA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgdG90YWxSb3dzID0gMDtcbiAgcHJvdGVjdGVkIGN1cnJlbnRQYWdlID0gMDtcbiAgcHJvdGVjdGVkIHRvdGFsUGFnZXMgPSAwO1xuICBwcm90ZWN0ZWQgc3RhcnRSb3dJbmRleCA9IDA7XG4gIHByaXZhdGUgbGFzdEluZGV4ID0gMDtcblxuICBAT3V0cHV0KClcbiAgZm9jdXNlZFJvd0NoYW5nZTogRXZlbnRFbWl0dGVyPHVua25vd24+ID0gbmV3IEV2ZW50RW1pdHRlcjx1bmtub3duPigpO1xuXG4gIHByaXZhdGUgX2ZvY3VzZWRSb3c6IHVua25vd247XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgZm9jdXNlZFJvdygpOiB1bmtub3duIHtcbiAgICByZXR1cm4gdGhpcy5fZm9jdXNlZFJvdztcbiAgfVxuICBwdWJsaWMgc2V0IGZvY3VzZWRSb3codjogdW5rbm93bikge1xuICAgIHRoaXMuX2ZvY3VzZWRSb3cgPSB2O1xuICAgIHRoaXMuZm9jdXNlZFJvd0NoYW5nZS5lbWl0KHYpO1xuICB9XG5cbiAgQElucHV0KClcbiAgaXRlbUhlaWdodDogbnVtYmVyIHwgJ2F1dG8nID0gNDA7XG5cbiAgcHJvdGVjdGVkIHdpZHRoID0gJzEwMCUnO1xuICBwcm90ZWN0ZWQgaGVpZ2h0ID0gJzEwMCUnO1xuXG4gIEBWaWV3Q2hpbGQoQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwcml2YXRlIHZpZXdwb3J0OiBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQ7XG5cbiAgQE91dHB1dCgpXG4gIG9uU2Nyb2xsZWRJbmRleENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxBWERhdGFUYWJsZVNjcm9sbEluZGV4Q2hhbmdlZD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYRGF0YVRhYmxlU2Nyb2xsSW5kZXhDaGFuZ2VkPigpO1xuXG4gIHRyYWNrQnlJZHgoaSkge1xuICAgIHJldHVybiBpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICB0aGlzLmxpc3REYXRhU291cmNlID0gbmV3IEFYTGlzdERhdGFTb3VyY2U8dW5rbm93bj4oe1xuICAgICAgc291cmNlOiB0aGlzLmRhdGFTb3VyY2UsXG4gICAgfSk7XG4gICAgdGhpcy5saXN0RGF0YVNvdXJjZS5zb3VyY2Uub25Mb2FkaW5nQ2hhbmdlZC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nLnNldChkYXRhKTtcbiAgICB9KTtcbiAgICB0aGlzLmxpc3REYXRhU291cmNlLnNvdXJjZS5vbkNoYW5nZWQuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICB0aGlzLnRvdGFsUm93cyA9IGRhdGEudG90YWxDb3VudDtcbiAgICAgIHRoaXMuaGFzSXRlbXMgPSBkYXRhLnRvdGFsQ291bnQgPiAwO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMucmVuZGVyKCk7XG4gICAgICB9LCAxMDApO1xuICAgIH0pO1xuXG4gICAgLy9cbiAgICB0aGlzLmNsaWNrU3ViamVjdFxuICAgICAgLnBpcGUoXG4gICAgICAgIGJ1ZmZlcih0aGlzLmNsaWNrU3ViamVjdC5waXBlKGRlYm91bmNlVGltZSgyNTApKSksXG4gICAgICAgIGZpbHRlcigoY2xpY2tBcnJheSkgPT4gY2xpY2tBcnJheS5sZW5ndGggPT09IDIpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoY2xpY2tBcnJheSkgPT4ge1xuICAgICAgICB0aGlzLmhhbmRsZVJvd0RvdWJsZUNsaWNrKGNsaWNrQXJyYXlbMF0uZXZlbnQsIGNsaWNrQXJyYXlbMF0uaXRlbSk7XG4gICAgICB9KTtcbiAgfVxuICBAVmlld0NoaWxkKCdoZWFkZXJDb250YWluZXInKSBoZWFkZXJDb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKCdmb290ZXJDb250YWluZXInKSBmb290ZXJDb250YWluZXI6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ3Njcm9sbGluZycsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHNjcm9sbGFibGVDb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIHByb3RlY3RlZCBfaGFuZGxlT25zY3JvbGxlZEluZGV4Q2hhbmdlKGU6IG51bWJlcikge1xuICAgIHRoaXMubGFzdEluZGV4ID0gZTtcbiAgICB0aGlzLm9uU2Nyb2xsZWRJbmRleENoYW5nZWQuZW1pdCh7XG4gICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICBpbmRleDogdGhpcy5sYXN0SW5kZXgsXG4gICAgICBpc1VzZXJJbnRlcmFjdGlvbjogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIG5nRG9DaGVjaygpIHtcbiAgICAvL3RoaXMuY29weUZpeGVkQ29sdW1ucygpO1xuICAgIHRoaXMudXBkYXRlSFNjcm9sbCgpO1xuICAgIC8vXG4gICAgdGhpcy51cGRhdGVXaWR0aCgpO1xuICAgIHRoaXMudXBkYXRlSGVpZ2h0KCk7XG4gICAgLy9cbiAgICB0aGlzLnVwZGF0ZVRvdGFsQ291bnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVG90YWxDb3VudCgpIHtcbiAgICB0aGlzLnN0YXJ0Um93SW5kZXggPSB0aGlzLmxhc3RJbmRleDtcbiAgICBpZiAodGhpcy5zdGFydFJvd0luZGV4IDwgMSkgdGhpcy5zdGFydFJvd0luZGV4ID0gMTtcbiAgICBpZiAodGhpcy5zdGFydFJvd0luZGV4ID4gdGhpcy50b3RhbFJvd3MpIHRoaXMuc3RhcnRSb3dJbmRleCA9IHRoaXMudG90YWxSb3dzO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVIZWlnaHQoKSB7XG4gICAgdGhpcy5oZWlnaHQgPSBgY2FsYygxMDAlIC0gJHtcbiAgICAgICh0aGlzLmhlYWRlckNvbnRhaW5lcj8ubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQgPz8gMCkgKyAodGhpcy5mb290ZXJDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0ID8/IDApXG4gICAgfXB4KWA7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVdpZHRoKCkge1xuICAgIGlmICh0aGlzLmNvbHVtbnMgJiYgdGhpcy5jb2x1bW5zLmxlbmd0aCkge1xuICAgICAgY29uc3Qgc3VtUHggPSBzdW0odGhpcy5jb2x1bW5zLnRvQXJyYXkoKS5tYXAoKGMpID0+ICh0eXBlb2YgYy53aWR0aCA9PSAnbnVtYmVyJyA/IGMud2lkdGggOiBOdW1iZXIoYy53aWR0aC5yZXBsYWNlKCdweCcsICcnKSkpKSk7XG4gICAgICB0aGlzLndpZHRoID0gYCR7TWF0aC5tYXgoc3VtUHgsIHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5jbGllbnRXaWR0aCAtIDUpfXB4YDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUhTY3JvbGwoKSB7XG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaGVhZGVyQ29udGFpbmVyKSB7XG4gICAgICAgIGNvbnN0IGhlYWRlckNvbnRhaW5lciA9IHRoaXMuaGVhZGVyQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGxlZnQgPSB0aGlzLnNjcm9sbGFibGVDb250YWluZXIubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0O1xuICAgICAgICBoZWFkZXJDb250YWluZXIuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZVgoJHstbGVmdH1weClgO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLy8gRnVuY3Rpb24gdG8gY29weSBmaXhlZCBjb2x1bW5zXG4gIHByaXZhdGUgY29weUZpeGVkQ29sdW1ucygpIHtcbiAgICBjb25zdCBvcmlnaW5hbFJvd3MgPSBBcnJheS5mcm9tKHRoaXMudmlld3BvcnQuX2NvbnRlbnRXcmFwcGVyLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgndHInKSk7XG4gICAgY29uc3QgZml4ZWRDb2x1bW5UYWJsZSA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yPEhUTUxUYWJsZUVsZW1lbnQ+KCcuYXgtYm9keS1maXhlZC1jb2x1bW5zID4gdGFibGUgPiB0Ym9keScpO1xuICAgIGZpeGVkQ29sdW1uVGFibGUucXVlcnlTZWxlY3RvckFsbCgndHInKS5mb3JFYWNoKChuKSA9PiBuLnJlbW92ZSgpKTtcbiAgICBmb3IgKGNvbnN0IHJvdyBvZiBvcmlnaW5hbFJvd3MpIHtcbiAgICAgIGNvbnN0IGZpeGVkQ2VsbHMgPSBBcnJheS5mcm9tKHJvdy5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1maXhlZD1cInN0YXJ0XCJdJykpO1xuICAgICAgY29uc3QgZml4ZWRSb3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpO1xuICAgICAgZm9yIChjb25zdCBjZWxsIG9mIGZpeGVkQ2VsbHMpIHtcbiAgICAgICAgY29uc3QgY2xvbmVkQ2VsbCA9IGNlbGwuY2xvbmVOb2RlKHRydWUpO1xuICAgICAgICBmaXhlZFJvdy5hcHBlbmRDaGlsZChjbG9uZWRDZWxsKTtcbiAgICAgIH1cbiAgICAgIGZpeGVkQ29sdW1uVGFibGUuYXBwZW5kQ2hpbGQoZml4ZWRSb3cpO1xuICAgIH1cbiAgICBjb25zdCBzY3JvbGxUb3AgPSB0aGlzLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvcignLmNkay12aXJ0dWFsLXNjcm9sbGFibGUnKS5zY3JvbGxUb3A7XG4gICAgZml4ZWRDb2x1bW5UYWJsZS5zdHlsZS50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlWSgkey1zY3JvbGxUb3B9cHgpYDtcbiAgfVxuXG4gIHB1YmxpYyByZW5kZXIoKSB7XG4gICAgdGhpcy52aWV3cG9ydC5jaGVja1ZpZXdwb3J0U2l6ZSgpO1xuICAgIHRoaXMudmlld3BvcnQuc2Nyb2xsVG9JbmRleCh0aGlzLmxhc3RJbmRleCk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaCgpIHtcbiAgICB0aGlzLmxhc3RJbmRleCA9IDA7XG4gICAgdGhpcy5saXN0RGF0YVNvdXJjZS5yZWZyZXNoKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlUm93Q2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQsIGl0ZW06IHVua25vd24pIHtcbiAgICB0aGlzLmhhbmRsZVJvd1NpbmdsZUNsaWNrKGV2ZW50LCBpdGVtKTtcbiAgICB0aGlzLmNsaWNrU3ViamVjdC5uZXh0KHsgZXZlbnQsIGl0ZW0gfSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVJvd1NpbmdsZUNsaWNrKGV2ZW50OiBFdmVudCwgaXRlbTogYW55KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZm9jdXNlZFJvdyA9PSBpdGVtKSB7XG4gICAgICB0aGlzLmZvY3VzZWRSb3cgPSBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZvY3VzZWRSb3cgPSBpdGVtO1xuICAgIH1cbiAgICAvL1xuICAgIHRoaXMub25Sb3dDbGljay5lbWl0KHtcbiAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgIGRhdGE6IGl0ZW0sXG4gICAgICBpc1VzZXJJbnRlcmFjdGlvbjogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVSb3dEb3VibGVDbGljayhlOiBNb3VzZUV2ZW50LCBpdGVtOiB1bmtub3duKSB7XG4gICAgdGhpcy5mb2N1c2VkUm93ID0gaXRlbTtcbiAgICAvL1xuICAgIHRoaXMub25Sb3dEYkNsaWNrLmVtaXQoe1xuICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgZGF0YTogaXRlbSxcbiAgICAgIGlzVXNlckludGVyYWN0aW9uOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgaGFuZGxlQ29sdW1uQ2xpY2soZTogTW91c2VFdmVudCwgY29sdW1uOiBBWERhdGFUYWJsZUNvbHVtbkNvbXBvbmVudCkge1xuICAgIGlmIChjb2x1bW4gaW5zdGFuY2VvZiBBWERhdGFUYWJsZVRleHRDb2x1bW5Db21wb25lbnQpIHtcbiAgICAgIGNvbnN0IHNvcnQgPSB0aGlzLmRhdGFTb3VyY2UucXVlcnkuc29ydC5maW5kKChjKSA9PiBjLmZpZWxkID09IGNvbHVtbi5kYXRhRmllbGQpO1xuICAgICAgaWYgKCFzb3J0KSB7XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZS5xdWVyeS5zb3J0LnB1c2goe1xuICAgICAgICAgIGZpZWxkOiBjb2x1bW4uZGF0YUZpZWxkLFxuICAgICAgICAgIGRpcjogJ2FzYycsXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHNvcnQuZGlyID09ICdhc2MnKSB7XG4gICAgICAgICAgc29ydC5kaXIgPSAnZGVzYyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5kYXRhU291cmNlLnF1ZXJ5LnNvcnQgPSB0aGlzLmRhdGFTb3VyY2UucXVlcnkuc29ydC5maWx0ZXIoKGMpID0+IGMgIT0gc29ydCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMucmVmcmVzaCgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRTb3J0KGNvbHVtbjogQVhEYXRhVGFibGVDb2x1bW5Db21wb25lbnQpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGlmIChjb2x1bW4gaW5zdGFuY2VvZiBBWERhdGFUYWJsZVRleHRDb2x1bW5Db21wb25lbnQpIHtcbiAgICAgIGNvbnN0IHNvcnQgPSB0aGlzLmRhdGFTb3VyY2UucXVlcnkuc29ydC5maW5kKChjKSA9PiBjLmZpZWxkID09IGNvbHVtbi5kYXRhRmllbGQpO1xuICAgICAgcmV0dXJuIHNvcnQgPyAoc29ydC5kaXIgPT0gJ2FzYycgPyAnYXgtaWNvbi1hcnJvdy1sb25nLWRvd24nIDogJ2F4LWljb24tYXJyb3ctbG9uZy11cCcpIDogdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVPblNjcm9sbCgpIHtcbiAgICB0aGlzLnVwZGF0ZUhTY3JvbGwoKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtaGVhZGVyXCI+IDwvbmctY29udGVudD5cbjwhLS0tLS0tLS0tLS0tLS0tLS0tLSBIZWFkZXIgY29udGVudHMgLS0tLS0tLS0tLS0tLS0tLS0tLT5cbkBpZiAoc2hvd0hlYWRlcikge1xuICA8ZGl2IGNsYXNzPVwiYXgtaGVhZGVyLWNvbnRlbnRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtaGVhZGVyLWNvbHVtbnNcIj5cbiAgICAgIDx0YWJsZSB0YWJpbmRleD1cIjBcIiBbc3R5bGUud2lkdGhdPVwid2lkdGhcIiAjaGVhZGVyQ29udGFpbmVyPlxuICAgICAgICA8dGhlYWQ+XG4gICAgICAgICAgPHRyPlxuICAgICAgICAgICAgQGZvciAoYyBvZiBub3RGaXhlZENvbHVtbigpOyB0cmFjayBjLm5hbWUpIHtcbiAgICAgICAgICAgICAgPHRoXG4gICAgICAgICAgICAgICAgW2NsYXNzLmF4LWludGVyYWN0aXZlXT1cImMuYWxsb3dTb3J0aW5nXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiYy5hbGxvd1NvcnRpbmcgPyBoYW5kbGVDb2x1bW5DbGljaygkZXZlbnQsIGMpIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLndpZHRoXT1cImMud2lkdGhcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgQGlmIChjLmhlYWRlclRlbXBsYXRlKSB7XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYy5oZWFkZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWNhcHRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAge3sgYy5jYXB0aW9uIH19XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoZ2V0U29ydChjKSkge1xuICAgICAgICAgICAgICAgICAgICAgIDxheC1pY29uIGljb249XCJheC1pY29uIHt7IGdldFNvcnQoYykgfX1cIj48L2F4LWljb24+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8IS0tIEBpZihjLmFsbG93UmVzaXppbmcpXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LXJlc2l6ZS1oYW5kbGVcIiBbYXgtdGFibGUtY29sdW1uLXJlc2l6YmxlXT1cImNcIj48L2Rpdj5cbiAgICAgICAgICAgICAgfSAtLT5cbiAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDx0aD48L3RoPlxuICAgICAgICAgIDwvdHI+XG4gICAgICAgIDwvdGhlYWQ+XG4gICAgICA8L3RhYmxlPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbn1cblxuPCEtLS0tLS0tLS0tLS0tLS0tLS0tIEJvZHkgY29udGVudHMgLS0tLS0tLS0tLS0tLS0tLS0tLT5cbjxkaXYgW3N0eWxlLmhlaWdodF09XCJoZWlnaHRcIiBjbGFzcz1cImF4LWJvZHktY29udGVudFwiPlxuICA8ZGl2IGNsYXNzPVwiYXgtYm9keS1jb2x1bW5zXCI+XG4gICAgPGRpdiBjZGtWaXJ0dWFsU2Nyb2xsaW5nRWxlbWVudCAjc2Nyb2xsaW5nIFtzdHlsZS5oZWlnaHRdPVwiJzEwMCUnXCIgKHNjcm9sbCk9XCJfaGFuZGxlT25TY3JvbGwoKVwiPlxuICAgICAgPGNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydFxuICAgICAgICBbaXRlbVNpemVdPVwiaXRlbUhlaWdodFwiXG4gICAgICAgIFtzdHlsZS4tLWl0ZW0taGVpZ2h0XT1cIml0ZW1IZWlnaHQgKyAncHgnXCJcbiAgICAgICAgKHNjcm9sbGVkSW5kZXhDaGFuZ2UpPVwiX2hhbmRsZU9uc2Nyb2xsZWRJbmRleENoYW5nZSgkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgICAgPHRhYmxlIHRhYmluZGV4PVwiMFwiIGNsYXNzPVwiYXgtdGFibGUtYm9keSBheC1yZWxhdGl2ZVwiIFtzdHlsZS53aWR0aF09XCJ3aWR0aFwiPlxuICAgICAgICAgIDxjb2xncm91cD5cbiAgICAgICAgICAgIEBmb3IgKGMgb2Ygbm90Rml4ZWRDb2x1bW4oKTsgdHJhY2sgYy5uYW1lKSB7XG4gICAgICAgICAgICAgIDxjb2wgW3N0eWxlLndpZHRoXT1cImMud2lkdGhcIiAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGNvbCAvPlxuICAgICAgICAgIDwvY29sZ3JvdXA+XG4gICAgICAgICAgPHRib2R5PlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqY2RrVmlydHVhbEZvcj1cImxldCBpdGVtIG9mIGxpc3REYXRhU291cmNlOyB0ZW1wbGF0ZUNhY2hlU2l6ZTogMTAwOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5SWR4OyBsZXQgckluZGV4ID0gaW5kZXhcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8IS0tLS0tLS0tLS0tLS0tLS0tLS0gY3VzdG9tIHJvdyB0ZW1wbGF0ZS0tLS0tLS0tLS0tLS0tLS0tLS0+XG4gICAgICAgICAgICAgIEBpZiAocm93VGVtcGxhdGUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyb3dUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IHsgZGF0YTogaXRlbSwgcm93SW5kZXg6IHJJbmRleCB9IH1cIj4gPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIDwhLS0tLS0tLS0tLS0tLS0tLS0tLSBub3JtYWwgcm93IHRlbXBsYXRlLS0tLS0tLS0tLS0tLS0tLS0tLT5cbiAgICAgICAgICAgICAgICA8dHJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5heC1zdGF0ZS1mb2N1c2VkXT1cImZvY3VzZWRSb3cgJiYgaXRlbSA9PT0gZm9jdXNlZFJvd1wiXG4gICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWluZGV4XT1cInJJbmRleFwiXG4gICAgICAgICAgICAgICAgICBbY2xhc3MuYXgtc3RhdGUtc2VsZWN0ZWRdPVwic2VsZWN0ZWRSb3dzLmluY2x1ZGVzKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVSb3dDbGljaygkZXZlbnQsIGl0ZW0pXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8IS0tLS0tLS0tLS0tLS0tLS0tLS0gc3RhcnQgZml4ZWQgY29sdW1uIC0tLS0tLS0tLS0tLS0tLS0tLS0+XG5cbiAgICAgICAgICAgICAgICAgIDwhLS0tLS0tLS0tLS0tLS0tLS0tLSBOb3QgZml4ZWQgY29sdW1uIC0tLS0tLS0tLS0tLS0tLS0tLS0+XG4gICAgICAgICAgICAgICAgICBAZm9yIChjIG9mIG5vdEZpeGVkQ29sdW1uKCk7IHRyYWNrIGMubmFtZSkge1xuICAgICAgICAgICAgICAgICAgICA8IS0tLS0tLS0tLS0tLS0tLS0tLS0gY3VzdG9tIGNlbGwgdGVtcGxhdGUgLS0tLS0tLS0tLS0tLS0tLS0tLT5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChjLmNlbGxUZW1wbGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjLmNlbGxUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IHsgZGF0YTogaXRlbSwgcm93SW5kZXg6IHJJbmRleCB9IH1cIj5cbiAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgPCEtLS0tLS0tLS0tLS0tLS0tLS0tIGRlZmF1bHQgY2VsbCB0ZW1wbGF0ZSAtLS0tLS0tLS0tLS0tLS0tLS0tPlxuICAgICAgICAgICAgICAgICAgICAgIDx0ZCBbYXR0ci5kYXRhLWxhYmVsXT1cImMuY2FwdGlvblwiIHRhYmluZGV4PVwiMFwiIFtjbGFzc109XCJjLmNzc0NsYXNzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGl0ZW0gJiYgIWlzTG9hZGluZygpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0tLS0tLS0tLS0tLS0tLS0tLSByZW5kZXIgY2VsbCAtLS0tLS0tLS0tLS0tLS0tLS0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjLnRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogeyBkYXRhOiBpdGVtLCByb3dJbmRleDogckluZGV4IH0gfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tLS0tLS0tLS0tLS0tLS0tLS0gcmVuZGVyIGxvYWRpbmcgLS0tLS0tLS0tLS0tLS0tLS0tLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChjLmxvYWRpbmdFbmFibGVkICYmIGxvYWRpbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtc2tlbGV0b24gW2FuaW1hdGVkXT1cImxvYWRpbmcuYW5pbWF0aW9uXCI+PC9heC1za2VsZXRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIDx0ZD48L3RkPlxuICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgIDwvdGFibGU+XG4gICAgICA8L2Nkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJheC10YWJsZS1mb290ZXJcIiAjZm9vdGVyQ29udGFpbmVyPlxuICA8ZGl2IGNsYXNzPVwiYXgtdGFibGUtaW5mb1wiPlxuICAgIDxkaXY+U2hvd2luZyB7eyBzdGFydFJvd0luZGV4IH19IG9mIHt7IHRvdGFsUm93cyB9fSBpdGVtczwvZGl2PlxuICAgIDxheC1idXR0b24gbG9vaz1cImJsYW5rXCIgY2xhc3M9XCJheC1zbVwiIChvbkNsaWNrKT1cInJlZnJlc2goKVwiPlxuICAgICAgPGF4LWljb24gaWNvbj1cImF4LWljb24gYXgtaWNvbi1yZWZyZXNoXCI+PC9heC1pY29uPlxuICAgIDwvYXgtYnV0dG9uPlxuICA8L2Rpdj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtZm9vdGVyXCI+IDwvbmctY29udGVudD5cbjwvZGl2PlxuIl19
@@ -137,7 +137,7 @@ export class AXOtpComponent extends classes((MXValueComponent), MXLookComponent)
137
137
  useExisting: forwardRef(() => AXOtpComponent),
138
138
  multi: true,
139
139
  },
140
- ], usesInheritance: true, ngImport: i0, template: "<div dir=\"ltr\" class=\"ax-otp-input-container ax-editor-container ax-look-{{ look }}\"\n [ngStyle]=\"{ 'grid-template-columns': 'repeat(' + inputs.length + ', minmax(0, 1fr))' }\"\n (paste)=\"_handleOnPaste($event)\">\n\n @for(input of inputs; let i = $index; track i){\n <input class=\"ax-input\" type=\"number\" [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-success]=\"state === 'success'\" [class.ax-state-error]=\"state === 'error'\" maxlength=\"1\"\n [ngModel]=\"_numbers[i]\" [disabled]=\"disabled\" [readonly]=\"readonly\" (click)=\"_handleOnClick(i)\"\n (input)=\"_handleOnInput($event, i)\" (keydown)=\"_handleOnKeyDown($event, i)\" [attr.disabled]=\"disabled\" />\n }\n</div>\n<ng-template #name></ng-template>", styles: ["ax-otp{display:block}ax-otp .ax-otp-input-container{display:grid;gap:.5rem}ax-otp .ax-otp-input-container.ax-editor-container{height:auto;border-style:none;outline-color:transparent;overflow:initial;background-color:transparent!important}ax-otp .ax-otp-input-container.ax-editor-container:focus-within,ax-otp .ax-otp-input-container.ax-editor-container:focus{border:none!important;box-shadow:none!important}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-solid .ax-input,ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input{border-radius:var(--ax-rounded-border-default);border-width:1px;border-color:rgba(var(--ax-color-border-default));background-color:rgba(var(--ax-color-input-surface))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-solid .ax-input:focus-within,ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input:focus-within{box-shadow:0 0 0 1px rgba(var(--ax-color-primary-500));border-color:rgba(var(--ax-color-primary-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-solid .ax-input.ax-state-error,ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input.ax-state-error{border-color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-solid .ax-input.ax-state-error:focus-within,ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input.ax-state-error:focus-within{box-shadow:0 0 0 1px rgba(var(--ax-color-danger-500));border-color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-solid .ax-input.ax-state-error .ax-input::placeholder,ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input.ax-state-error .ax-input::placeholder{color:rgba(var(--ax-color-primary-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-flat .ax-input{border-radius:0;border-bottom-width:1px;border-color:rgba(var(--ax-color-border-default))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-flat .ax-input:focus-within{border-color:rgba(var(--ax-color-primary-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-flat .ax-input.ax-state-error{border-color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-flat .ax-input.ax-state-error .ax-input::placeholder{color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input{background-color:transparent!important}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-fill .ax-input{border-radius:var(--ax-rounded-border-default);background-color:rgba(var(--ax-color-on-surface))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-fill .ax-input:focus-within{box-shadow:0 0 0 2px rgba(var(--ax-color-primary-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-fill .ax-input.ax-state-error{background-color:rgba(var(--ax-color-danger-50));color:rgba(var(--ax-color-danger-fore-tint))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-fill .ax-input.ax-state-error:focus-within{box-shadow:0 0 0 2px rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-fill .ax-input.ax-state-error .ax-input::placeholder{color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container .ax-input{aspect-ratio:1/1;overflow:hidden;text-align:center;font-size:var(--font-size, 2rem)}ax-otp .ax-otp-input-container.ax-editor-container .ax-input:read-only{cursor:text;opacity:.75}ax-otp .ax-otp-input-container.ax-editor-container .ax-input:disabled{cursor:not-allowed;opacity:.5}ax-otp .ax-otp-input-container.ax-editor-container .ax-input[type=number]{-moz-appearance:textfield}ax-otp .ax-otp-input-container.ax-editor-container .ax-input[type=number]::-webkit-inner-spin-button,ax-otp .ax-otp-input-container.ax-editor-container .ax-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
140
+ ], usesInheritance: true, ngImport: i0, template: "<div dir=\"ltr\" class=\"ax-otp-input-container ax-editor-container ax-look-{{ look }}\"\n [ngStyle]=\"{ 'grid-template-columns': 'repeat(' + inputs.length + ', minmax(0, 1fr))' }\"\n (paste)=\"_handleOnPaste($event)\">\n\n @for(input of inputs; let i = $index; track i){\n <input class=\"ax-input\" type=\"number\" [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-success]=\"state === 'success'\" [class.ax-state-error]=\"state === 'error'\" maxlength=\"1\"\n [ngModel]=\"_numbers[i]\" [disabled]=\"disabled\" [readonly]=\"readonly\" (click)=\"_handleOnClick(i)\"\n (input)=\"_handleOnInput($event, i)\" (keydown)=\"_handleOnKeyDown($event, i)\" [attr.disabled]=\"disabled\" />\n }\n</div>\n<ng-template #name></ng-template>", styles: ["ax-otp{display:block}ax-otp .ax-otp-input-container{display:grid;gap:.5rem}ax-otp .ax-otp-input-container.ax-editor-container{height:auto;border-style:none;outline-color:transparent;overflow:initial;background-color:transparent!important}ax-otp .ax-otp-input-container.ax-editor-container:focus-within,ax-otp .ax-otp-input-container.ax-editor-container:focus{border:none!important;box-shadow:none!important}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-solid .ax-input,ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input{border-radius:var(--ax-rounded-border-default);border-width:1px;border-color:rgba(var(--ax-color-border-default));background-color:rgba(var(--ax-color-input-surface))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-solid .ax-input:focus-within,ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input:focus-within{box-shadow:0 0 0 1px rgba(var(--ax-color-primary-500));border-color:rgba(var(--ax-color-primary-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-solid .ax-input.ax-state-error,ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input.ax-state-error{border-color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-solid .ax-input.ax-state-error:focus-within,ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input.ax-state-error:focus-within{box-shadow:0 0 0 1px rgba(var(--ax-color-danger-500));border-color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-solid .ax-input.ax-state-error .ax-input::placeholder,ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input.ax-state-error .ax-input::placeholder{color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-flat .ax-input{border-radius:0;border-bottom-width:1px;border-color:rgba(var(--ax-color-border-default))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-flat .ax-input:focus-within{border-color:rgba(var(--ax-color-primary-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-flat .ax-input.ax-state-error{border-color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-flat .ax-input.ax-state-error .ax-input::placeholder{color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input{background-color:transparent!important}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-fill .ax-input{border-radius:var(--ax-rounded-border-default);background-color:rgba(var(--ax-color-on-surface))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-fill .ax-input:focus-within{box-shadow:0 0 0 2px rgba(var(--ax-color-primary-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-fill .ax-input.ax-state-error{background-color:rgba(var(--ax-color-danger-50));color:rgba(var(--ax-color-danger-fore-tint))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-fill .ax-input.ax-state-error:focus-within{box-shadow:0 0 0 2px rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-fill .ax-input.ax-state-error .ax-input::placeholder{color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container .ax-input{aspect-ratio:1/1;overflow:hidden;text-align:center;font-size:var(--font-size, 2rem)}ax-otp .ax-otp-input-container.ax-editor-container .ax-input:read-only{cursor:text;opacity:.75}ax-otp .ax-otp-input-container.ax-editor-container .ax-input:disabled{cursor:not-allowed;opacity:.5}ax-otp .ax-otp-input-container.ax-editor-container .ax-input[type=number]{-moz-appearance:textfield}ax-otp .ax-otp-input-container.ax-editor-container .ax-input[type=number]::-webkit-inner-spin-button,ax-otp .ax-otp-input-container.ax-editor-container .ax-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
141
141
  }
142
142
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXOtpComponent, decorators: [{
143
143
  type: Component,
@@ -147,7 +147,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImpor
147
147
  useExisting: forwardRef(() => AXOtpComponent),
148
148
  multi: true,
149
149
  },
150
- ], template: "<div dir=\"ltr\" class=\"ax-otp-input-container ax-editor-container ax-look-{{ look }}\"\n [ngStyle]=\"{ 'grid-template-columns': 'repeat(' + inputs.length + ', minmax(0, 1fr))' }\"\n (paste)=\"_handleOnPaste($event)\">\n\n @for(input of inputs; let i = $index; track i){\n <input class=\"ax-input\" type=\"number\" [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-success]=\"state === 'success'\" [class.ax-state-error]=\"state === 'error'\" maxlength=\"1\"\n [ngModel]=\"_numbers[i]\" [disabled]=\"disabled\" [readonly]=\"readonly\" (click)=\"_handleOnClick(i)\"\n (input)=\"_handleOnInput($event, i)\" (keydown)=\"_handleOnKeyDown($event, i)\" [attr.disabled]=\"disabled\" />\n }\n</div>\n<ng-template #name></ng-template>", styles: ["ax-otp{display:block}ax-otp .ax-otp-input-container{display:grid;gap:.5rem}ax-otp .ax-otp-input-container.ax-editor-container{height:auto;border-style:none;outline-color:transparent;overflow:initial;background-color:transparent!important}ax-otp .ax-otp-input-container.ax-editor-container:focus-within,ax-otp .ax-otp-input-container.ax-editor-container:focus{border:none!important;box-shadow:none!important}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-solid .ax-input,ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input{border-radius:var(--ax-rounded-border-default);border-width:1px;border-color:rgba(var(--ax-color-border-default));background-color:rgba(var(--ax-color-input-surface))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-solid .ax-input:focus-within,ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input:focus-within{box-shadow:0 0 0 1px rgba(var(--ax-color-primary-500));border-color:rgba(var(--ax-color-primary-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-solid .ax-input.ax-state-error,ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input.ax-state-error{border-color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-solid .ax-input.ax-state-error:focus-within,ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input.ax-state-error:focus-within{box-shadow:0 0 0 1px rgba(var(--ax-color-danger-500));border-color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-solid .ax-input.ax-state-error .ax-input::placeholder,ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input.ax-state-error .ax-input::placeholder{color:rgba(var(--ax-color-primary-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-flat .ax-input{border-radius:0;border-bottom-width:1px;border-color:rgba(var(--ax-color-border-default))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-flat .ax-input:focus-within{border-color:rgba(var(--ax-color-primary-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-flat .ax-input.ax-state-error{border-color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-flat .ax-input.ax-state-error .ax-input::placeholder{color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input{background-color:transparent!important}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-fill .ax-input{border-radius:var(--ax-rounded-border-default);background-color:rgba(var(--ax-color-on-surface))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-fill .ax-input:focus-within{box-shadow:0 0 0 2px rgba(var(--ax-color-primary-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-fill .ax-input.ax-state-error{background-color:rgba(var(--ax-color-danger-50));color:rgba(var(--ax-color-danger-fore-tint))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-fill .ax-input.ax-state-error:focus-within{box-shadow:0 0 0 2px rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-fill .ax-input.ax-state-error .ax-input::placeholder{color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container .ax-input{aspect-ratio:1/1;overflow:hidden;text-align:center;font-size:var(--font-size, 2rem)}ax-otp .ax-otp-input-container.ax-editor-container .ax-input:read-only{cursor:text;opacity:.75}ax-otp .ax-otp-input-container.ax-editor-container .ax-input:disabled{cursor:not-allowed;opacity:.5}ax-otp .ax-otp-input-container.ax-editor-container .ax-input[type=number]{-moz-appearance:textfield}ax-otp .ax-otp-input-container.ax-editor-container .ax-input[type=number]::-webkit-inner-spin-button,ax-otp .ax-otp-input-container.ax-editor-container .ax-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}\n"] }]
150
+ ], template: "<div dir=\"ltr\" class=\"ax-otp-input-container ax-editor-container ax-look-{{ look }}\"\n [ngStyle]=\"{ 'grid-template-columns': 'repeat(' + inputs.length + ', minmax(0, 1fr))' }\"\n (paste)=\"_handleOnPaste($event)\">\n\n @for(input of inputs; let i = $index; track i){\n <input class=\"ax-input\" type=\"number\" [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-success]=\"state === 'success'\" [class.ax-state-error]=\"state === 'error'\" maxlength=\"1\"\n [ngModel]=\"_numbers[i]\" [disabled]=\"disabled\" [readonly]=\"readonly\" (click)=\"_handleOnClick(i)\"\n (input)=\"_handleOnInput($event, i)\" (keydown)=\"_handleOnKeyDown($event, i)\" [attr.disabled]=\"disabled\" />\n }\n</div>\n<ng-template #name></ng-template>", styles: ["ax-otp{display:block}ax-otp .ax-otp-input-container{display:grid;gap:.5rem}ax-otp .ax-otp-input-container.ax-editor-container{height:auto;border-style:none;outline-color:transparent;overflow:initial;background-color:transparent!important}ax-otp .ax-otp-input-container.ax-editor-container:focus-within,ax-otp .ax-otp-input-container.ax-editor-container:focus{border:none!important;box-shadow:none!important}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-solid .ax-input,ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input{border-radius:var(--ax-rounded-border-default);border-width:1px;border-color:rgba(var(--ax-color-border-default));background-color:rgba(var(--ax-color-input-surface))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-solid .ax-input:focus-within,ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input:focus-within{box-shadow:0 0 0 1px rgba(var(--ax-color-primary-500));border-color:rgba(var(--ax-color-primary-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-solid .ax-input.ax-state-error,ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input.ax-state-error{border-color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-solid .ax-input.ax-state-error:focus-within,ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input.ax-state-error:focus-within{box-shadow:0 0 0 1px rgba(var(--ax-color-danger-500));border-color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-solid .ax-input.ax-state-error .ax-input::placeholder,ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input.ax-state-error .ax-input::placeholder{color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-flat .ax-input{border-radius:0;border-bottom-width:1px;border-color:rgba(var(--ax-color-border-default))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-flat .ax-input:focus-within{border-color:rgba(var(--ax-color-primary-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-flat .ax-input.ax-state-error{border-color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-flat .ax-input.ax-state-error .ax-input::placeholder{color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-outline .ax-input{background-color:transparent!important}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-fill .ax-input{border-radius:var(--ax-rounded-border-default);background-color:rgba(var(--ax-color-on-surface))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-fill .ax-input:focus-within{box-shadow:0 0 0 2px rgba(var(--ax-color-primary-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-fill .ax-input.ax-state-error{background-color:rgba(var(--ax-color-danger-50));color:rgba(var(--ax-color-danger-fore-tint))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-fill .ax-input.ax-state-error:focus-within{box-shadow:0 0 0 2px rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container.ax-look-fill .ax-input.ax-state-error .ax-input::placeholder{color:rgba(var(--ax-color-danger-500))}ax-otp .ax-otp-input-container.ax-editor-container .ax-input{aspect-ratio:1/1;overflow:hidden;text-align:center;font-size:var(--font-size, 2rem)}ax-otp .ax-otp-input-container.ax-editor-container .ax-input:read-only{cursor:text;opacity:.75}ax-otp .ax-otp-input-container.ax-editor-container .ax-input:disabled{cursor:not-allowed;opacity:.5}ax-otp .ax-otp-input-container.ax-editor-container .ax-input[type=number]{-moz-appearance:textfield}ax-otp .ax-otp-input-container.ax-editor-container .ax-input[type=number]::-webkit-inner-spin-button,ax-otp .ax-otp-input-container.ax-editor-container .ax-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}\n"] }]
151
151
  }], propDecorators: { lengthChange: [{
152
152
  type: Output
153
153
  }], length: [{