@ng-atomic/components 19.4.2 → 19.5.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.
- package/fesm2022/ng-atomic-components-atoms-icon.mjs +2 -2
- package/fesm2022/ng-atomic-components-atoms-icon.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-atoms-value-cell.mjs +2 -2
- package/fesm2022/ng-atomic-components-atoms-value-cell.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-frames-app.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-app.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-frames-auto-layout.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-auto-layout.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-frames-breadcrumb-navbar.mjs +4 -4
- package/fesm2022/ng-atomic-components-frames-breadcrumb-navbar.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-frames-card.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-card.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-frames-columns.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-columns.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-frames-divider.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-divider.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-frames-drawer.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-drawer.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-frames-entrance.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-entrance.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-frames-fab.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-fab.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-frames-horizontal-divider.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-horizontal-divider.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-frames-line-up.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-line-up.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-frames-loading.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-loading.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-frames-router-outlet.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-router-outlet.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-frames-scroll.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-scroll.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-frames-side-nav.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-side-nav.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-frames-smart-menu.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-smart-menu.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-frames-vertical-hide.mjs +2 -2
- package/fesm2022/ng-atomic-components-frames-vertical-hide.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-molecules-date-input-field.mjs +2 -2
- package/fesm2022/ng-atomic-components-molecules-date-input-field.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-molecules-date-range-input-field.mjs +2 -2
- package/fesm2022/ng-atomic-components-molecules-date-range-input-field.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-molecules-grid-item.mjs +2 -2
- package/fesm2022/ng-atomic-components-molecules-grid-item.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-molecules-loading-box.mjs +2 -2
- package/fesm2022/ng-atomic-components-molecules-loading-box.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-molecules-navigation-list-item.mjs +2 -2
- package/fesm2022/ng-atomic-components-molecules-navigation-list-item.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-molecules-select-input-field.mjs +2 -2
- package/fesm2022/ng-atomic-components-molecules-select-input-field.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-molecules-thread-message.mjs +2 -2
- package/fesm2022/ng-atomic-components-molecules-thread-message.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-action-buttons-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-action-buttons-section.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-action-input-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-action-input-section.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-breadcrumb-navbar.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-breadcrumb-navbar.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-card-input-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-card-input-section.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-cvc-and-exp-input-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-cvc-and-exp-input-section.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-date-input-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-date-input-section.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-date-range-input-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-date-range-input-section.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-definition-list.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-definition-list.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-file-input-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-file-input-section.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-grid-cards-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-grid-cards-section.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-heading.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-heading.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-menu-footer.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-menu-footer.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-menu-header.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-menu-header.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-messages-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-messages-section.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-navigation-list.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-navigation-list.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-navigator.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-navigator.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-number-input-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-number-input-section.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-paginator.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-paginator.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-password-input-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-password-input-section.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-select-input-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-select-input-section.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-slider-input-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-slider-input-section.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-social-login-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-social-login-section.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-table.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-table.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-text-input-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-text-input-section.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-textarea-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-textarea-section.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-organisms-thread-messages-section.mjs +2 -2
- package/fesm2022/ng-atomic-components-organisms-thread-messages-section.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-pages-_index.mjs +2 -2
- package/fesm2022/ng-atomic-components-pages-_index.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-pages-columns.mjs +2 -2
- package/fesm2022/ng-atomic-components-pages-columns.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-pages-form.mjs +2 -2
- package/fesm2022/ng-atomic-components-pages-form.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-templates-_index.mjs +2 -2
- package/fesm2022/ng-atomic-components-templates-_index.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-templates-background.mjs +2 -2
- package/fesm2022/ng-atomic-components-templates-background.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-templates-code-editor.mjs +2 -2
- package/fesm2022/ng-atomic-components-templates-code-editor.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-templates-columns.mjs +2 -2
- package/fesm2022/ng-atomic-components-templates-columns.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-templates-entrance.mjs +2 -2
- package/fesm2022/ng-atomic-components-templates-entrance.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-templates-form.mjs +4 -4
- package/fesm2022/ng-atomic-components-templates-form.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-templates-icon-button-menu.mjs +2 -2
- package/fesm2022/ng-atomic-components-templates-icon-button-menu.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-templates-menu.mjs +2 -2
- package/fesm2022/ng-atomic-components-templates-menu.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-templates-selection.mjs +2 -2
- package/fesm2022/ng-atomic-components-templates-selection.mjs.map +1 -1
- package/fesm2022/ng-atomic-components-templates-settings.mjs +2 -2
- package/fesm2022/ng-atomic-components-templates-settings.mjs.map +1 -1
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-atomic-components-organisms-table.mjs","sources":["../tmp-esm2022/organisms/table/table.helpers.js","../tmp-esm2022/organisms/table/table.organism.js","../tmp-esm2022/organisms/table/index.js","../tmp-esm2022/organisms/table/ng-atomic-components-organisms-table.js"],"sourcesContent":["import { MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree';\nimport { get, isEqual } from 'lodash-es';\nimport { DataSource } from '@angular/cdk/collections';\nimport { combineLatest, distinctUntilChanged, filter, map, startWith, switchMap } from 'rxjs';\nimport { FixedSizeVirtualScrollStrategy } from '@angular/cdk/scrolling';\nimport { signal } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nconst ITEM_SIZE = 52;\nconst PRE = 10;\nconst Z = 2;\nexport class CustomDataSource extends DataSource {\n reconnect(datasource) {\n this.dataSource.set(datasource);\n }\n constructor(ss) {\n super();\n this.ss = ss;\n this.collectionViewer = signal(null);\n this.collectionViewer$ = toObservable(this.collectionViewer);\n this.itemSize = signal(ITEM_SIZE);\n this.itemSize$ = toObservable(this.itemSize);\n this.dataSource = signal(null);\n this.dataSource$ = toObservable(this.dataSource);\n this.viewport = signal(null);\n this.viewport$ = toObservable(this.viewport);\n this.placeholderHeight = signal(0);\n this.columnNames = signal([]);\n this.columnNames$ = toObservable(this.columnNames);\n this.data$ = combineLatest({\n viewer: this.collectionViewer$,\n dataSource: this.dataSource$,\n }).pipe(filter(({ viewer, dataSource }) => !!viewer && !!dataSource), switchMap(({ viewer, dataSource }) => dataSource.connect(viewer)), distinctUntilChanged((a, b) => isEqual(a, b)), map((items) => items.map((item, i) => ({ ...item, $index: i }))));\n this.totalContentSize$ = combineLatest({\n data: this.data$,\n itemSize: this.itemSize$,\n }).pipe(map(({ data, itemSize }) => {\n // データ長に基づく高さを計算\n return itemSize * data.length;\n }), distinctUntilChanged());\n this.scrollTop$ = this.viewport$.pipe(filter((viewport) => !!viewport), switchMap((viewport) => viewport.elementScrolled()), map(({ currentTarget }) => currentTarget?.scrollTop ?? 0), startWith(0));\n this.viewportHeight$ = combineLatest({\n viewport: this.viewport$,\n data: this.scrollTop$,\n }).pipe(filter(({ viewport }) => !!viewport), map(({ viewport }) => viewport.getViewportSize()), distinctUntilChanged());\n this.rows$ = combineLatest({\n viewportHeight: this.viewportHeight$,\n itemSize: this.itemSize$,\n }).pipe(map(({ viewportHeight, itemSize }) => Math.ceil(viewportHeight / itemSize)), distinctUntilChanged());\n this.pageSize$ = this.rows$.pipe(map((rows) => rows * Z + PRE), distinctUntilChanged());\n this.start$ = combineLatest({\n scrollTop: this.scrollTop$,\n rowHeight: this.itemSize$,\n rows: this.rows$,\n }).pipe(map(({ scrollTop, rowHeight, rows }) => {\n if (rowHeight * rows === 0)\n return 0;\n return Math.floor(scrollTop / (rowHeight * rows));\n }), distinctUntilChanged());\n this.prevExtraData$ = this.start$.pipe(map((start) => Math.min(PRE, start)));\n this.startIndex$ = combineLatest({\n start: this.start$,\n rows: this.rows$,\n prevExtraData: this.prevExtraData$,\n }).pipe(map(({ start, rows, prevExtraData }) => start * rows - prevExtraData), distinctUntilChanged());\n this.endIndex$ = combineLatest({\n startIndex: this.startIndex$,\n pageSize: this.pageSize$,\n }).pipe(map(({ startIndex, pageSize }) => startIndex + pageSize), distinctUntilChanged());\n this.visibleData$ = combineLatest({\n data: this.data$,\n columnNames: this.columnNames$,\n viewport: this.viewport$,\n itemSize: this.itemSize$,\n startIndex: this.startIndex$,\n endIndex: this.endIndex$,\n }).pipe(filter(({ data }) => !!data), map(({ data, columnNames, viewport, itemSize, startIndex, endIndex }) => {\n this.ss.clipboard.setData(data, columnNames);\n const offset = itemSize * startIndex;\n if (viewport)\n viewport.setRenderedContentOffset(offset);\n this.placeholderHeight.set(offset);\n return data.slice(startIndex, endIndex);\n }), distinctUntilChanged((a, b) => isEqual(a, b)));\n combineLatest({\n viewport: this.viewport$,\n totalContentSize: this.totalContentSize$,\n }).pipe(filter(({ viewport }) => !!viewport)).subscribe(({ viewport, totalContentSize }) => {\n viewport.setTotalContentSize(totalContentSize);\n });\n }\n connect(collectionViewer) {\n this.collectionViewer.set(collectionViewer);\n return this.visibleData$.pipe(distinctUntilChanged((a, b) => isEqual(a, b)));\n }\n disconnect() { }\n}\nexport class CustomVirtualScrollStrategy extends FixedSizeVirtualScrollStrategy {\n constructor() {\n // itemSize: 52px, minBufferPx: 520px (10 rows), maxBufferPx: 1040px (20 rows)\n // バッファを大きくして、スクロール時のちらつきを減らす\n super(ITEM_SIZE, ITEM_SIZE * 10, ITEM_SIZE * 20);\n }\n}\nexport function buildMatTreeFlattener(getChildren = (node) => get(node, 'children') ?? []) {\n return new MatTreeFlattener((node, level) => {\n node.level = level;\n node.isExpandable = !!getChildren(node).length;\n return node;\n // return ({\n // ...node,\n // level,\n // isExpandable: !!getChildren(node).length\n // })\n }, (node) => node.level, (node) => node.isExpandable, (node) => getChildren(node));\n}\nexport function buildTreeFlatDataSource(treeControl, data, getChildren = (node) => get(node, 'children') ?? []) {\n const treeFlattener = buildMatTreeFlattener(getChildren);\n return new MatTreeFlatDataSource(treeControl, treeFlattener, data);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BuZy1hdG9taWMvY29tcG9uZW50cy9zcmMvbGliL29yZ2FuaXNtcy90YWJsZS90YWJsZS5oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRWpGLE9BQU8sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3pDLE9BQU8sRUFBb0IsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGFBQWEsRUFBZ0Isb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxTQUFTLEVBQUUsU0FBUyxFQUFPLE1BQU0sTUFBTSxDQUFDO0FBQzdILE9BQU8sRUFBNEIsOEJBQThCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUkxRCxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUM7QUFDckIsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO0FBQ2YsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBRVosTUFBTSxPQUFPLGdCQUFvQixTQUFRLFVBQWE7SUFnSHBELFNBQVMsQ0FBQyxVQUF5QjtRQUNqQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsWUFBc0IsRUFBc0I7UUFDMUMsS0FBSyxFQUFFLENBQUM7UUFEWSxPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQW5IbkMscUJBQWdCLEdBQUcsTUFBTSxDQUFtQixJQUFJLENBQUMsQ0FBQztRQUNsRCxzQkFBaUIsR0FBRyxZQUFZ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QVcsQ0FBQyxDQUFDO0lBQ3pELE9BQU8sSUFBSSxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3JFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNYXRUcmVlRmxhdERhdGFTb3VyY2UsIE1hdFRyZWVGbGF0dGVuZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90cmVlJztcbmltcG9ydCB7IEZsYXRUcmVlQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90cmVlJztcbmltcG9ydCB7IGdldCwgaXNFcXVhbCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBDb2xsZWN0aW9uVmlld2VyLCBEYXRhU291cmNlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQsIEZpeGVkU2l6ZVZpcnR1YWxTY3JvbGxTdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuaW1wb3J0IHsgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0b09ic2VydmFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBTcHJlYWRTaGVldFNlcnZpY2UgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi9zZXJ2aWNlcy9zcHJlYWRzaGVldCc7XG5pbXBvcnQgeyBjb25zdW1lclBvbGxQcm9kdWNlcnNGb3JDaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9jb3JlL3ByaW1pdGl2ZXMvc2lnbmFscyc7XG5cbmNvbnN0IElURU1fU0laRSA9IDUyO1xuY29uc3QgUFJFID0gMTA7XG5jb25zdCBaID0gMjtcblxuZXhwb3J0IGNsYXNzIEN1c3RvbURhdGFTb3VyY2U8VD4gZXh0ZW5kcyBEYXRhU291cmNlPFQ+IHtcbiAgcmVhZG9ubHkgY29sbGVjdGlvblZpZXdlciA9IHNpZ25hbDxDb2xsZWN0aW9uVmlld2VyPihudWxsKTtcbiAgcmVhZG9ubHkgY29sbGVjdGlvblZpZXdlciQgPSB0b09ic2VydmFibGUodGhpcy5jb2xsZWN0aW9uVmlld2VyKTtcbiAgcmVhZG9ubHkgaXRlbVNpemUgPSBzaWduYWwoSVRFTV9TSVpFKTtcbiAgcmVhZG9ubHkgaXRlbVNpemUkID0gdG9PYnNlcnZhYmxlKHRoaXMuaXRlbVNpemUpO1xuICByZWFkb25seSBkYXRhU291cmNlID0gc2lnbmFsPERhdGFTb3VyY2U8VD4+KG51bGwpO1xuICByZWFkb25seSBkYXRhU291cmNlJCA9IHRvT2JzZXJ2YWJsZSh0aGlzLmRhdGFTb3VyY2UpO1xuICByZWFkb25seSB2aWV3cG9ydCA9IHNpZ25hbDxDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQ+KG51bGwpO1xuICByZWFkb25seSB2aWV3cG9ydCQgPSB0b09ic2VydmFibGUodGhpcy52aWV3cG9ydCk7XG4gIHJlYWRvbmx5IHBsYWNlaG9sZGVySGVpZ2h0ID0gc2lnbmFsKDApO1xuXG4gIHJlYWRvbmx5IGNvbHVtbk5hbWVzID0gc2lnbmFsPHN0cmluZ1tdPihbXSk7XG4gIHJlYWRvbmx5IGNvbHVtbk5hbWVzJCA9IHRvT2JzZXJ2YWJsZSh0aGlzLmNvbHVtbk5hbWVzKTtcblxuICByZWFkb25seSBkYXRhJCA9IGNvbWJpbmVMYXRlc3Qoe1xuICAgIHZpZXdlcjogdGhpcy5jb2xsZWN0aW9uVmlld2VyJCxcbiAgICBkYXRhU291cmNlOiB0aGlzLmRhdGFTb3VyY2UkLFxuICB9KS5waXBlKFxuICAgIGZpbHRlcigoeyB2aWV3ZXIsIGRhdGFTb3VyY2UgfSkgPT4gISF2aWV3ZXIgJiYgISFkYXRhU291cmNlKSxcbiAgICBzd2l0Y2hNYXAoKHsgdmlld2VyLCBkYXRhU291cmNlIH0pID0+IGRhdGFTb3VyY2UuY29ubmVjdCh2aWV3ZXIpKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgoYSwgYikgPT4gaXNFcXVhbChhLCBiKSksXG4gICAgbWFwKChpdGVtcykgPT4gaXRlbXMubWFwKChpdGVtLCBpKSA9PiAoey4uLml0ZW0sICRpbmRleDogaX0pKSksXG4gICk7XG4gIHJlYWRvbmx5IHRvdGFsQ29udGVudFNpemUkID0gY29tYmluZUxhdGVzdCh7XG4gICAgZGF0YTogdGhpcy5kYXRhJCxcbiAgICBpdGVtU2l6ZTogdGhpcy5pdGVtU2l6ZSQsXG4gIH0pLnBpcGUoXG4gICAgbWFwKCh7IGRhdGEsIGl0ZW1TaXplIH0pID0+IHtcbiAgICAgIC8vIOODh+ODvOOCv+mVt+OBq+WfuuOBpeOBj+mrmOOBleOCkuioiOeul1xuICAgICAgcmV0dXJuIGl0ZW1TaXplICogZGF0YS5sZW5ndGg7XG4gICAgfSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgKTtcbiAgXG4gIHJlYWRvbmx5IHNjcm9sbFRvcCQgPSB0aGlzLnZpZXdwb3J0JC5waXBlKFxuICAgIGZpbHRlcigodmlld3BvcnQpID0+ICEhdmlld3BvcnQpLFxuICAgIHN3aXRjaE1hcCgodmlld3BvcnQpID0+IHZpZXdwb3J0LmVsZW1lbnRTY3JvbGxlZCgpIGFzIG5ldmVyIGFzIE9ic2VydmFibGU8eyBjdXJyZW50VGFyZ2V0OiBIVE1MRWxlbWVudCB9PiksXG4gICAgbWFwKCh7IGN1cnJlbnRUYXJnZXQgfSkgPT4gY3VycmVudFRhcmdldD8uc2Nyb2xsVG9wID8/IDApLFxuICAgIHN0YXJ0V2l0aCgwKSxcbiAgKTtcbiAgcmVhZG9ubHkgdmlld3BvcnRIZWlnaHQkID0gY29tYmluZUxhdGVzdCh7XG4gICAgdmlld3BvcnQ6IHRoaXMudmlld3BvcnQkLFxuICAgIGRhdGE6IHRoaXMuc2Nyb2xsVG9wJCxcbiAgfSkucGlwZShcbiAgICBmaWx0ZXIoKHt2aWV3cG9ydH0pID0+ICEhdmlld3BvcnQpLFxuICAgIG1hcCgoe3ZpZXdwb3J0fSkgPT4gdmlld3BvcnQuZ2V0Vmlld3BvcnRTaXplKCkpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICk7XG4gIHJlYWRvbmx5IHJvd3MkID0gY29tYmluZUxhdGVzdCh7XG4gICAgdmlld3BvcnRIZWlnaHQ6IHRoaXMudmlld3BvcnRIZWlnaHQkLFxuICAgIGl0ZW1TaXplOiB0aGlzLml0ZW1TaXplJCxcbiAgfSkucGlwZShcbiAgICBtYXAoKHt2aWV3cG9ydEhlaWdodCwgaXRlbVNpemV9KSA9PiBNYXRoLmNlaWwodmlld3BvcnRIZWlnaHQgLyBpdGVtU2l6ZSkpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICk7XG4gIHJlYWRvbmx5IHBhZ2VTaXplJCA9IHRoaXMucm93cyQucGlwZShcbiAgICBtYXAoKHJvd3MpID0+IHJvd3MgKiBaICsgUFJFKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICApO1xuXG4gIHJlYWRvbmx5IHN0YXJ0JCA9IGNvbWJpbmVMYXRlc3Qoe1xuICAgIHNjcm9sbFRvcDogdGhpcy5zY3JvbGxUb3AkLFxuICAgIHJvd0hlaWdodDogdGhpcy5pdGVtU2l6ZSQsXG4gICAgcm93czogdGhpcy5yb3dzJCxcbiAgfSkucGlwZShcbiAgICBtYXAoKHsgc2Nyb2xsVG9wLCByb3dIZWlnaHQsIHJvd3MgfSkgPT4ge1xuICAgICAgaWYgKHJvd0hlaWdodCAqIHJvd3MgPT09IDApIHJldHVybiAwO1xuICAgICAgcmV0dXJuIE1hdGguZmxvb3Ioc2Nyb2xsVG9wIC8gKHJvd0hlaWdodCAqIHJvd3MpKTtcbiAgICB9KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICk7XG5cbiAgcmVhZG9ubHkgcHJldkV4dHJhRGF0YSQgPSB0aGlzLnN0YXJ0JC5waXBlKFxuICAgIG1hcCgoc3RhcnQpID0+IE1hdGgubWluKFBSRSwgc3RhcnQpKSxcbiAgKTtcblxuICByZWFkb25seSBzdGFydEluZGV4JCA9IGNvbWJpbmVMYXRlc3Qoe1xuICAgIHN0YXJ0OiB0aGlzLnN0YXJ0JCxcbiAgICByb3dzOiB0aGlzLnJvd3MkLFxuICAgIHByZXZFeHRyYURhdGE6IHRoaXMucHJldkV4dHJhRGF0YSQsXG4gIH0pLnBpcGUoXG4gICAgbWFwKCh7IHN0YXJ0LCByb3dzLCBwcmV2RXh0cmFEYXRhIH0pID0+IHN0YXJ0ICogcm93cyAtIHByZXZFeHRyYURhdGEpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gIClcblxuICByZWFkb25seSBlbmRJbmRleCQgPSBjb21iaW5lTGF0ZXN0KHtcbiAgICBzdGFydEluZGV4OiB0aGlzLnN0YXJ0SW5kZXgkLFxuICAgIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplJCxcbiAgfSkucGlwZShcbiAgICBtYXAoKHsgc3RhcnRJbmRleCwgcGFnZVNpemUgfSkgPT4gc3RhcnRJbmRleCArIHBhZ2VTaXplKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICApO1xuXG4gIHJlYWRvbmx5IHZpc2libGVEYXRhJCA9IGNvbWJpbmVMYXRlc3Qoe1xuICAgIGRhdGE6IHRoaXMuZGF0YSQsXG4gICAgY29sdW1uTmFtZXM6IHRoaXMuY29sdW1uTmFtZXMkLFxuICAgIHZpZXdwb3J0OiB0aGlzLnZpZXdwb3J0JCxcbiAgICBpdGVtU2l6ZTogdGhpcy5pdGVtU2l6ZSQsXG4gICAgc3RhcnRJbmRleDogdGhpcy5zdGFydEluZGV4JCxcbiAgICBlbmRJbmRleDogdGhpcy5lbmRJbmRleCQsXG4gIH0pLnBpcGUoXG4gICAgZmlsdGVyKCh7ZGF0YX0pID0+ICEhZGF0YSksXG4gICAgbWFwKCh7IGRhdGEsIGNvbHVtbk5hbWVzLCB2aWV3cG9ydCwgaXRlbVNpemUsIHN0YXJ0SW5kZXgsIGVuZEluZGV4fSkgPT4ge1xuICAgICAgdGhpcy5zcy5jbGlwYm9hcmQuc2V0RGF0YShkYXRhLCBjb2x1bW5OYW1lcyk7XG4gICAgICBjb25zdCBvZmZzZXQgPSBpdGVtU2l6ZSAqIHN0YXJ0SW5kZXg7XG4gICAgICBpZiAodmlld3BvcnQpIHZpZXdwb3J0LnNldFJlbmRlcmVkQ29udGVudE9mZnNldChvZmZzZXQpO1xuICAgICAgdGhpcy5wbGFjZWhvbGRlckhlaWdodC5zZXQob2Zmc2V0KTtcbiAgICAgIHJldHVybiBkYXRhLnNsaWNlKHN0YXJ0SW5kZXgsIGVuZEluZGV4KTtcbiAgICB9KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgoYSwgYikgPT4gaXNFcXVhbChhLCBiKSksXG4gICk7XG5cbiAgcmVjb25uZWN0KGRhdGFzb3VyY2U6IERhdGFTb3VyY2U8VD4pOiB2b2lkIHtcbiAgICB0aGlzLmRhdGFTb3VyY2Uuc2V0KGRhdGFzb3VyY2UpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHNzOiBTcHJlYWRTaGVldFNlcnZpY2UpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgY29tYmluZUxhdGVzdCh7XG4gICAgICB2aWV3cG9ydDogdGhpcy52aWV3cG9ydCQsXG4gICAgICB0b3RhbENvbnRlbnRTaXplOiB0aGlzLnRvdGFsQ29udGVudFNpemUkLFxuICAgIH0pLnBpcGUoXG4gICAgICBmaWx0ZXIoKHsgdmlld3BvcnQgfSkgPT4gISF2aWV3cG9ydCksXG4gICAgKS5zdWJzY3JpYmUoKHsgdmlld3BvcnQsIHRvdGFsQ29udGVudFNpemUgfSkgPT4ge1xuICAgICAgdmlld3BvcnQuc2V0VG90YWxDb250ZW50U2l6ZSh0b3RhbENvbnRlbnRTaXplKTtcbiAgICB9KTtcbiAgfVxuXG4gIGNvbm5lY3QoY29sbGVjdGlvblZpZXdlcjogQ29sbGVjdGlvblZpZXdlcik6IE9ic2VydmFibGU8VFtdIHwgUmVhZG9ubHlBcnJheTxUPj4ge1xuICAgIHRoaXMuY29sbGVjdGlvblZpZXdlci5zZXQoY29sbGVjdGlvblZpZXdlcik7XG4gICAgcmV0dXJuIHRoaXMudmlzaWJsZURhdGEkLnBpcGUoXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgoYSwgYikgPT4gaXNFcXVhbChhLCBiKSksXG4gICAgKTtcbiAgfVxuXG4gIGRpc2Nvbm5lY3QoKTogdm9pZCB7fVxufVxuXG5leHBvcnQgY2xhc3MgQ3VzdG9tVmlydHVhbFNjcm9sbFN0cmF0ZWd5IGV4dGVuZHMgRml4ZWRTaXplVmlydHVhbFNjcm9sbFN0cmF0ZWd5IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gaXRlbVNpemU6IDUycHgsIG1pbkJ1ZmZlclB4OiA1MjBweCAoMTAgcm93cyksIG1heEJ1ZmZlclB4OiAxMDQwcHggKDIwIHJvd3MpXG4gICAgLy8g44OQ44OD44OV44Kh44KS5aSn44GN44GP44GX44Gm44CB44K544Kv44Ot44O844Or5pmC44Gu44Gh44KJ44Gk44GN44KS5rib44KJ44GZXG4gICAgc3VwZXIoSVRFTV9TSVpFLCBJVEVNX1NJWkUgKiAxMCwgSVRFTV9TSVpFICogMjApO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZE1hdFRyZWVGbGF0dGVuZXI8VD1hbnk+KGdldENoaWxkcmVuOiAobm9kZTogVCkgPT4gVFtdID0gKG5vZGU6IFQpID0+IGdldChub2RlLCAnY2hpbGRyZW4nKSA/PyBbXSkge1xuICByZXR1cm4gbmV3IE1hdFRyZWVGbGF0dGVuZXIoXG4gICAgKG5vZGU6IGFueSwgbGV2ZWw6IG51bWJlcikgPT4ge1xuICAgICAgbm9kZS5sZXZlbCA9IGxldmVsO1xuICAgICAgbm9kZS5pc0V4cGFuZGFibGUgPSAhIWdldENoaWxkcmVuKG5vZGUpLmxlbmd0aDtcbiAgICAgIHJldHVybiBub2RlO1xuICAgICAgLy8gcmV0dXJuICh7XG4gICAgICAvLyAgIC4uLm5vZGUsXG4gICAgICAvLyAgIGxldmVsLFxuICAgICAgLy8gICBpc0V4cGFuZGFibGU6ICEhZ2V0Q2hpbGRyZW4obm9kZSkubGVuZ3RoXG4gICAgICAvLyB9KVxuICAgIH0sXG4gICAgKG5vZGUpID0+IG5vZGUubGV2ZWwsXG4gICAgKG5vZGUpID0+IG5vZGUuaXNFeHBhbmRhYmxlLFxuICAgIChub2RlKSA9PiBnZXRDaGlsZHJlbihub2RlKSxcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkVHJlZUZsYXREYXRhU291cmNlPFQgPSBhbnk+KFxuICB0cmVlQ29udHJvbDogRmxhdFRyZWVDb250cm9sPFQ+LFxuICBkYXRhOiBUW10sXG4gIGdldENoaWxkcmVuOiAobm9kZTogVCkgPT4gVFtdID0gKG5vZGU6IFQpID0+IGdldChub2RlLCAnY2hpbGRyZW4nKSA/PyBbXSxcbiApIHtcbiAgY29uc3QgdHJlZUZsYXR0ZW5lciA9IGJ1aWxkTWF0VHJlZUZsYXR0ZW5lcihnZXRDaGlsZHJlbik7XG4gIHJldHVybiBuZXcgTWF0VHJlZUZsYXREYXRhU291cmNlKHRyZWVDb250cm9sLCB0cmVlRmxhdHRlbmVyLCBkYXRhKTtcbn1cbiJdfQ==","var TableOrganismStore_1;\nimport { __decorate, __metadata } from \"tslib\";\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Directive, computed, effect, inject, input, viewChild } from '@angular/core';\nimport { MatTableDataSource, MatTableModule } from '@angular/material/table';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DomainPipe } from '@ng-atomic/common/pipes/domain';\nimport { ActionsColumnMolecule } from '@ng-atomic/components/molecules/actions-column';\nimport { CheckboxColumnMolecule } from '@ng-atomic/components/molecules/checkbox-column';\nimport { TextColumnMolecule } from '@ng-atomic/components/molecules/text-column';\nimport { _computed, Effect, InjectableComponent, NgAtomicComponent, TokenizedType } from '@ng-atomic/core';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { TreeColumnMolecule } from '@ng-atomic/components/molecules/tree-column';\nimport { computedRawValue } from '@ng-atomic/common/utils';\nimport { NgClass } from '@angular/common';\nimport { FlatTreeControl } from '@angular/cdk/tree';\nimport { CdkDropList, CdkDrag } from '@angular/cdk/drag-drop';\nimport { makeConfig } from '@ng-atomic/common/services/ui';\nimport { IndexTemplateFormBuilder } from '@ng-atomic/common/services/form/_index';\nimport { buildTreeFlatDataSource } from './table.helpers';\nimport { injectDataAccessor } from '@ng-atomic/common/pipes/data-accessor';\nimport { CdkVirtualScrollViewport, ScrollingModule, VIRTUAL_SCROLL_STRATEGY } from '@angular/cdk/scrolling';\nimport { isEqual } from 'lodash-es';\nimport { GridDataTableAutofill, provideSpreadSheetService, SpreadSheetService } from '@ng-atomic/common/services/spreadsheet';\nimport { StylePipe } from '@ng-atomic/common/pipes/style';\nimport { NgAtomicColumnMoleculeStore } from '@ng-atomic/common/directives/molecules/column';\nimport { map, startWith } from 'rxjs';\nimport { derivedAsync } from 'ngxtension/derived-async';\nimport { CustomDataSource, CustomVirtualScrollStrategy } from './table.helpers';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/table\";\nimport * as i2 from \"@angular/cdk/scrolling\";\nvar ActionId;\n(function (ActionId) {\n ActionId[\"CHECKBOX_CLICK\"] = \"[@ng-atomic/components/organisms/checkbox-column] Checkbox Click\";\n ActionId[\"HEADER_CHECKBOX_CLICK\"] = \"[@ng-atomic/components/organisms/checkbox-column] Header Checkbox Click\";\n ActionId[\"HEADER_CLICK\"] = \"[@ng-atomic/components/organisms/table] Header Click\";\n ActionId[\"ROW_DROP\"] = \"[@ng-atomic/components/organisms/table] Row Drop\";\n ActionId[\"COLUMN_WIDTH_CHANGE\"] = \"[@ng-atomic/components/organisms/table] Column Width Change\";\n ActionId[\"AUTOFILL_COMPLETE\"] = \"[@ng-atomic/components/organisms/table] Autofill Complete\";\n})(ActionId || (ActionId = {}));\nfunction __buildColumns(data, itemActions, sort) {\n let _stickyLeft = 0;\n const columns = (data?.columns?.ids ?? [])\n .map(id => ({ ...data?.columns?.map[id], name: id }))\n .filter(column => column.visible)\n .map((column) => {\n const stickyLeft = _stickyLeft;\n _stickyLeft += column.width;\n if (column.name.startsWith('__tree_')) {\n return {\n ...column,\n type: 'tree',\n sort: sort.key === column.name ? sort.order : 'none',\n stickyLeft,\n };\n }\n else if (column.name.startsWith('checkbox')) {\n return {\n ...column,\n type: 'checkbox',\n stickyLeft,\n };\n }\n else if (column.type === 'actions') {\n return {\n ...column,\n actions: column.actions ?? itemActions,\n type: 'actions',\n sort: sort.key === column.name ? sort.order : 'none',\n stickyLeft,\n };\n }\n else {\n return {\n ...column,\n sort: sort.key === column.name ? sort.order : 'none',\n stickyLeft,\n };\n }\n });\n return columns;\n}\nlet TableOrganismStore = class TableOrganismStore extends InjectableComponent {\n constructor() {\n super(...arguments);\n this.config = TableOrganismStore_1.Config.inject();\n this.draggable = input(_computed(() => this.config().draggable));\n this.dataAccessor = injectDataAccessor();\n this.getChildren = computed(() => {\n return (node) => this.dataAccessor(node, this.childrenKey() ?? 'children');\n });\n this.form = input(inject(IndexTemplateFormBuilder).build());\n this.columnFormFieldMap = input({});\n this.itemActions = input([]);\n this.selection = input(new SelectionModel(true, []));\n this.highlight = input(new SelectionModel(true, []));\n this.childrenKey = input(null);\n this.items = input([]);\n this.treeControl = input(new FlatTreeControl(n => n.level, n => n.isExpandable, { trackBy: (n) => n?.id ?? n }));\n this.dataSource = computed(() => {\n const items = this.items();\n const childrenKey = this.childrenKey();\n const getChildren = this.getChildren();\n const control = this.treeControl();\n if (childrenKey) {\n return buildTreeFlatDataSource(control, items, getChildren);\n }\n return new MatTableDataSource(items);\n });\n this.isHidden = input(_computed(() => this.config().isHidden));\n this.getRowClass = input(_computed(() => () => ''));\n this.formValue = computedRawValue(() => this.form());\n this.sort = computed(() => this.formValue()?.sort ?? { key: '', order: 'asc' }, {\n equal: (a, b) => JSON.stringify(a) === JSON.stringify(b),\n });\n this.columns = computed(() => __buildColumns(this.formValue(), this.itemActions(), this.sort()), { equal: isEqual });\n this.columnNames = computed(() => this.columns().map(column => column.name), { equal: isEqual });\n // MEMO(NozomuMiyamoto): treeControlのdataNodesの変更検知がTreeColumnMoleculeからはできないため、TableOrganismStoreで更新を検知している。\n this.isExpandedAll = derivedAsync(() => {\n this.dataSource();\n const control = this.treeControl();\n return control.expansionModel.changed.pipe(startWith(null), map(() => (control.dataNodes ?? []).every(node => control.isExpanded(node))));\n });\n }\n static { TableOrganismStore_1 = this; }\n static { this.ActionId = ActionId; }\n static { this.Config = makeConfig(() => {\n return () => ({\n draggable: true,\n isHidden: (item) => false,\n });\n }, ['components', 'organisms', 'table']); }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: TableOrganismStore, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.5\", type: TableOrganismStore, isStandalone: true, selector: \"organisms-table\", inputs: { draggable: { classPropertyName: \"draggable\", publicName: \"draggable\", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: \"form\", publicName: \"form\", isSignal: true, isRequired: false, transformFunction: null }, columnFormFieldMap: { classPropertyName: \"columnFormFieldMap\", publicName: \"columnFormFieldMap\", isSignal: true, isRequired: false, transformFunction: null }, itemActions: { classPropertyName: \"itemActions\", publicName: \"itemActions\", isSignal: true, isRequired: false, transformFunction: null }, selection: { classPropertyName: \"selection\", publicName: \"selection\", isSignal: true, isRequired: false, transformFunction: null }, highlight: { classPropertyName: \"highlight\", publicName: \"highlight\", isSignal: true, isRequired: false, transformFunction: null }, childrenKey: { classPropertyName: \"childrenKey\", publicName: \"childrenKey\", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: \"items\", publicName: \"items\", isSignal: true, isRequired: false, transformFunction: null }, treeControl: { classPropertyName: \"treeControl\", publicName: \"treeControl\", isSignal: true, isRequired: false, transformFunction: null }, isHidden: { classPropertyName: \"isHidden\", publicName: \"isHidden\", isSignal: true, isRequired: false, transformFunction: null }, getRowClass: { classPropertyName: \"getRowClass\", publicName: \"getRowClass\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [DomainPipe], usesInheritance: true, ngImport: i0 }); }\n};\nTableOrganismStore = TableOrganismStore_1 = __decorate([\n TokenizedType()\n], TableOrganismStore);\nexport { TableOrganismStore };\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: TableOrganismStore, decorators: [{\n type: Directive,\n args: [{\n standalone: true,\n selector: 'organisms-table',\n providers: [DomainPipe],\n }]\n }] });\nexport class TableOrganism extends NgAtomicComponent {\n static { this.ActionId = ActionId; }\n constructor() {\n super();\n this.store = inject(TableOrganismStore);\n this.ss = inject(SpreadSheetService);\n this.trackByFunc = (index, item) => item;\n this.placeholderWhen = (index, _) => index == 0;\n this.viewport = viewChild(CdkVirtualScrollViewport);\n this.dataSource = new CustomDataSource(this.ss);\n this.cd = inject(ChangeDetectorRef);\n effect(() => { this.dataSource.columnNames.set(this.store.columnNames()); });\n effect(() => {\n const dataSource = this.store.dataSource();\n this.dataSource.reconnect(dataSource);\n // 既存の購読を解除\n if (this.dataNodesSubscription) {\n this.dataNodesSubscription.unsubscribe();\n this.dataNodesSubscription = undefined;\n }\n // TreeFlatDataSourceの場合、dataNodesを更新(expandAll/collapseAll用)\n if (this.store.childrenKey() && dataSource) {\n const flattenedData = dataSource._flattenedData;\n if (flattenedData) {\n // BehaviorSubjectを購読して、値が変更されたときにdataNodesを更新\n this.dataNodesSubscription = flattenedData.subscribe((nodes) => {\n if (nodes && nodes.length > 0) {\n this.store.treeControl().dataNodes = nodes;\n }\n });\n }\n }\n });\n }\n ngOnDestroy() {\n if (this.dataNodesSubscription) {\n this.dataNodesSubscription.unsubscribe();\n }\n }\n ngAfterViewInit() {\n this.updateViewPort();\n }\n updateViewPort() {\n this.dataSource.viewport.set(this.viewport());\n this.viewport().checkViewportSize();\n }\n onCheckboxClick(item) {\n this.dispatch({ id: ActionId.CHECKBOX_CLICK, payload: item });\n }\n onHeaderCheckboxClick(item) {\n this.dispatch({ id: ActionId.HEADER_CHECKBOX_CLICK });\n }\n onChangeWidth(payload) {\n this.dispatch({\n id: TableOrganismStore.ActionId.COLUMN_WIDTH_CHANGE,\n payload: { columnName: payload.name, width: payload.width }\n });\n }\n onHeaderClick(column) {\n this.dispatch({ id: ActionId.HEADER_CLICK, payload: column });\n }\n onDrop(event) {\n const control = this.store.treeControl();\n const nodes = control.dataNodes.filter(node => node.level === 0);\n const nodes_ = getDisplayedNodes(nodes, control);\n const draggedNode = nodes_[event.previousIndex];\n const droppedNode = nodes_[event.currentIndex];\n const items = flatItems(this.store.items(), this.store.childrenKey());\n this.dispatch({\n id: ActionId.ROW_DROP,\n payload: {\n previousIndex: nodes_.findIndex(node => node === event.item.data),\n currentIndex: event.currentIndex,\n dragged: items.find(item => item.id === draggedNode.id),\n dropped: items.find(item => item.id === droppedNode.id),\n }\n });\n }\n // オートフィル完了イベントを受け取る(ディレクティブから)\n onAutofillComplete(payload) {\n this.dispatch({ id: ActionId.AUTOFILL_COMPLETE, payload });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: TableOrganism, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.5\", type: TableOrganism, isStandalone: true, selector: \"organisms-table\", host: { attributes: { \"tabindex\": \"0\" }, listeners: { \"keydown\": \"ss.handleKeyDown($event)\" }, classAttribute: \"organism\" }, providers: [\n provideSpreadSheetService(),\n { provide: VIRTUAL_SCROLL_STRATEGY, useClass: CustomVirtualScrollStrategy },\n ], viewQueries: [{ propertyName: \"viewport\", first: true, predicate: CdkVirtualScrollViewport, descendants: true, isSignal: true }], usesInheritance: true, hostDirectives: [{ directive: TableOrganismStore, inputs: [\"columnFormFieldMap\", \"columnFormFieldMap\", \"draggable\", \"draggable\", \"form\", \"form\", \"itemActions\", \"itemActions\", \"selection\", \"selection\", \"items\", \"items\", \"childrenKey\", \"childrenKey\", \"highlight\", \"highlight\", \"treeControl\", \"treeControl\", \"isHidden\", \"isHidden\", \"getRowClass\", \"getRowClass\"] }], ngImport: i0, template: `\n @let component = '@ng-atomic/components/organisms/table';\n <cdk-virtual-scroll-viewport>\n <table\n mat-table\n matSort\n matSortDisableClear\n matSortDirection=\"desc\"\n [dataSource]=\"dataSource\"\n cdkDropList\n (cdkDropListDropped)=\"onDrop($event)\"\n [cdkDropListDisabled]=\"!store.draggable()\"\n [multiTemplateDataRows]=\"true\"\n gridDataTableAutofill\n (autofillComplete)=\"onAutofillComplete($event)\"\n >\n <tbody>\n @for (column of store.columns(); track column.name; let index = $index) {\n @switch (column.type) {\n @case ('checkbox') {\n <molecules-checkbox-column\n [index]=\"index\"\n [column]=\"column\"\n [selection]=\"store.selection()\"\n [isHidden]=\"store.isHidden()\"\n (action)=\"dispatch($event)\"\n />\n }\n @case ('actions') {\n <molecules-actions-column\n [index]=\"index\"\n [column]=\"column\"\n [itemActions]=\"column.actions\"\n (action)=\"dispatch($event)\"\n />\n }\n @case('tree') {\n <molecules-tree-column\n [index]=\"index\"\n [column]=\"column\"\n [treeControl]=\"store.treeControl()\"\n [isExpandedAll]=\"store.isExpandedAll()\"\n [formFieldMap]=\"store.columnFormFieldMap()\"\n (headerClick)=\"onHeaderClick(column.name)\"\n (action)=\"dispatch($event)\"\n />\n }\n @default {\n <molecules-text-column\n [index]=\"index\"\n [formFieldMap]=\"store.columnFormFieldMap()\"\n [column]=\"column\"\n (headerClick)=\"onHeaderClick(column.name)\"\n (action)=\"dispatch($event)\"\n />\n }\n }\n }\n <tr\n *matHeaderRowDef=\"store.columnNames(); sticky: true\"\n mat-header-row\n [style]=\"null | style:{ component, selector: 'header-row' }\"\n ></tr>\n <tr\n [style.height.px]=\"dataSource.placeholderHeight()\"\n mat-row\n *matRowDef=\"let item; let index = index; columns: [];\n when: placeholderWhen\"\n ></tr>\n <tr\n *matRowDef=\"let item; let index = index; columns: store.columnNames();\"\n mat-row\n [ngClass]=\"store.getRowClass()(item)\"\n [style]=\"null | style:{ item, index, component, selector: 'row' }\"\n [cdkDrag]\n [cdkDragDisabled]=\"!store.draggable()\"\n ></tr>\n <div class=\"mat-row\" *matNoDataRow>No Data</div>\n </tbody>\n </table>\n </cdk-virtual-scroll-viewport>\n `, isInline: true, styles: [\":host{--width: 100%;--width-SCOPED-IN-smart-table-0oSW: var(--width);--column-vertical-padding: 4px;--column-vertical-padding-SCOPED-IN-smart-table-0oSW: var(--column-vertical-padding);--surface-color: #f0f0f0;--surface-color-SCOPED-IN-smart-table-0oSW: var(--surface-color);--on-surface-color: #000;--on-surface-color-SCOPED-IN-smart-table-0oSW: var(--on-surface-color);--background-color: #f0f0f0;--background-color-SCOPED-IN-smart-table-0oSW: var(--background-color);--on-background-color: #000;--on-background-color-SCOPED-IN-smart-table-0oSW: var(--on-background-color);--vertical-padding: 16px;--vertical-padding-SCOPED-IN-smart-table-0oSW: var(--vertical-padding)}.cdk-drag-preview{display:table;background-color:#fff}.cdk-drag-placeholder{opacity:0}:host{position:relative;display:block;width:100%;height:100%;overflow:hidden}:host table{min-width:100%;min-height:100%;background-color:var(--surface-color-SCOPED-IN-smart-table-0oSW);color:var(--on-surface-color-SCOPED-IN-smart-table-0oSW);--mat-table-row-item-label-text-color: var(--on-surface-color);--mat-table-header-headline-color: var(--on-surface-color)}:host table .nowrap{width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host table ::ng-deep th,:host table ::ng-deep td{padding:0 var(--column-vertical-padding-SCOPED-IN-smart-table-0oSW);box-sizing:border-box}:host table ::ng-deep th:first-child,:host table ::ng-deep td:first-child{padding-left:var(--vertical-padding-SCOPED-IN-smart-table-0oSW)}:host table ::ng-deep th:last-child,:host table ::ng-deep td:last-child{padding-right:var(--vertical-padding-SCOPED-IN-smart-table-0oSW)}:host table ::ng-deep tr.highlight{background-color:#f0f0f0;transition:background-color .5s}:host .no-data-message{display:flex;justify-content:flex-start;align-items:center;width:calc(100% - 32px);height:3em;padding:0 16px}:host table{border-collapse:collapse;-webkit-user-select:none;user-select:none}:host cdk-virtual-scroll-viewport{width:100%;height:100%;display:block;overflow:auto}:host cdk-virtual-scroll-viewport ::ng-deep .cdk-virtual-scroll-content-wrapper{transform:translateY(0)!important;min-height:100%;min-width:100%;width:auto}:host cdk-virtual-scroll-viewport ::ng-deep .cdk-virtual-scroll-spacer{width:1px;transform:translateZ(0)}:host.autofill-active{-webkit-user-select:none;user-select:none}:host.autofill-active td{pointer-events:none}:host.autofill-active td.autofill-source{pointer-events:auto}:host ::ng-deep td.autofill-preview{background-color:#2196f31a!important;border:1px dashed #2196F3!important}:host ::ng-deep td.autofill-preview:after{content:\\\"\\\";position:absolute;inset:0;background-color:#2196f30d;pointer-events:none;z-index:1}\\n\"], dependencies: [{ kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"ngmodule\", type: MatTableModule }, { kind: \"component\", type: i1.MatTable, selector: \"mat-table, table[mat-table]\", exportAs: [\"matTable\"] }, { kind: \"directive\", type: i1.MatHeaderRowDef, selector: \"[matHeaderRowDef]\", inputs: [\"matHeaderRowDef\", \"matHeaderRowDefSticky\"] }, { kind: \"directive\", type: i1.MatRowDef, selector: \"[matRowDef]\", inputs: [\"matRowDefColumns\", \"matRowDefWhen\"] }, { kind: \"component\", type: i1.MatHeaderRow, selector: \"mat-header-row, tr[mat-header-row]\", exportAs: [\"matHeaderRow\"] }, { kind: \"component\", type: i1.MatRow, selector: \"mat-row, tr[mat-row]\", exportAs: [\"matRow\"] }, { kind: \"directive\", type: i1.MatNoDataRow, selector: \"ng-template[matNoDataRow]\" }, { kind: \"ngmodule\", type: MatCheckboxModule }, { kind: \"ngmodule\", type: MatMenuModule }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: ActionsColumnMolecule, selector: \"molecules-actions-column\" }, { kind: \"component\", type: CheckboxColumnMolecule, selector: \"molecules-checkbox-column\" }, { kind: \"component\", type: TextColumnMolecule, selector: \"molecules-text-column\", inputs: [\"formFieldMap\"], outputs: [\"headerClick\"] }, { kind: \"component\", type: TreeColumnMolecule, selector: \"molecules-tree-column\", outputs: [\"headerClick\", \"handleMouseDown\"] }, { kind: \"directive\", type: CdkDropList, selector: \"[cdkDropList], cdk-drop-list\", inputs: [\"cdkDropListConnectedTo\", \"cdkDropListData\", \"cdkDropListOrientation\", \"id\", \"cdkDropListLockAxis\", \"cdkDropListDisabled\", \"cdkDropListSortingDisabled\", \"cdkDropListEnterPredicate\", \"cdkDropListSortPredicate\", \"cdkDropListAutoScrollDisabled\", \"cdkDropListAutoScrollStep\", \"cdkDropListElementContainer\"], outputs: [\"cdkDropListDropped\", \"cdkDropListEntered\", \"cdkDropListExited\", \"cdkDropListSorted\"], exportAs: [\"cdkDropList\"] }, { kind: \"directive\", type: CdkDrag, selector: \"[cdkDrag]\", inputs: [\"cdkDragData\", \"cdkDragLockAxis\", \"cdkDragRootElement\", \"cdkDragBoundary\", \"cdkDragStartDelay\", \"cdkDragFreeDragPosition\", \"cdkDragDisabled\", \"cdkDragConstrainPosition\", \"cdkDragPreviewClass\", \"cdkDragPreviewContainer\", \"cdkDragScale\"], outputs: [\"cdkDragStarted\", \"cdkDragReleased\", \"cdkDragEnded\", \"cdkDragEntered\", \"cdkDragExited\", \"cdkDragDropped\", \"cdkDragMoved\"], exportAs: [\"cdkDrag\"] }, { kind: \"ngmodule\", type: ScrollingModule }, { kind: \"component\", type: i2.CdkVirtualScrollViewport, selector: \"cdk-virtual-scroll-viewport\", inputs: [\"orientation\", \"appendOnly\"], outputs: [\"scrolledIndexChange\"] }, { kind: \"pipe\", type: StylePipe, name: \"style\" }, { kind: \"directive\", type: GridDataTableAutofill, selector: \"[gridDataTableAutofill]\", outputs: [\"autofillComplete\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\n__decorate([\n Effect(CheckboxColumnMolecule.ActionId.CHECKBOX_CLICK),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], TableOrganism.prototype, \"onCheckboxClick\", null);\n__decorate([\n Effect(CheckboxColumnMolecule.ActionId.HEADER_CHECKBOX_CLICK),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], TableOrganism.prototype, \"onHeaderCheckboxClick\", null);\n__decorate([\n Effect(NgAtomicColumnMoleculeStore._ActionId.CHANGE_WIDTH),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], TableOrganism.prototype, \"onChangeWidth\", null);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: TableOrganism, decorators: [{\n type: Component,\n args: [{ selector: 'organisms-table', imports: [\n NgClass,\n MatTableModule,\n MatCheckboxModule,\n MatMenuModule,\n MatButtonModule,\n MatIconModule,\n ActionsColumnMolecule,\n CheckboxColumnMolecule,\n TextColumnMolecule,\n TreeColumnMolecule,\n CdkDropList,\n CdkDrag,\n ScrollingModule,\n CdkVirtualScrollViewport,\n StylePipe,\n GridDataTableAutofill\n ], template: `\n @let component = '@ng-atomic/components/organisms/table';\n <cdk-virtual-scroll-viewport>\n <table\n mat-table\n matSort\n matSortDisableClear\n matSortDirection=\"desc\"\n [dataSource]=\"dataSource\"\n cdkDropList\n (cdkDropListDropped)=\"onDrop($event)\"\n [cdkDropListDisabled]=\"!store.draggable()\"\n [multiTemplateDataRows]=\"true\"\n gridDataTableAutofill\n (autofillComplete)=\"onAutofillComplete($event)\"\n >\n <tbody>\n @for (column of store.columns(); track column.name; let index = $index) {\n @switch (column.type) {\n @case ('checkbox') {\n <molecules-checkbox-column\n [index]=\"index\"\n [column]=\"column\"\n [selection]=\"store.selection()\"\n [isHidden]=\"store.isHidden()\"\n (action)=\"dispatch($event)\"\n />\n }\n @case ('actions') {\n <molecules-actions-column\n [index]=\"index\"\n [column]=\"column\"\n [itemActions]=\"column.actions\"\n (action)=\"dispatch($event)\"\n />\n }\n @case('tree') {\n <molecules-tree-column\n [index]=\"index\"\n [column]=\"column\"\n [treeControl]=\"store.treeControl()\"\n [isExpandedAll]=\"store.isExpandedAll()\"\n [formFieldMap]=\"store.columnFormFieldMap()\"\n (headerClick)=\"onHeaderClick(column.name)\"\n (action)=\"dispatch($event)\"\n />\n }\n @default {\n <molecules-text-column\n [index]=\"index\"\n [formFieldMap]=\"store.columnFormFieldMap()\"\n [column]=\"column\"\n (headerClick)=\"onHeaderClick(column.name)\"\n (action)=\"dispatch($event)\"\n />\n }\n }\n }\n <tr\n *matHeaderRowDef=\"store.columnNames(); sticky: true\"\n mat-header-row\n [style]=\"null | style:{ component, selector: 'header-row' }\"\n ></tr>\n <tr\n [style.height.px]=\"dataSource.placeholderHeight()\"\n mat-row\n *matRowDef=\"let item; let index = index; columns: [];\n when: placeholderWhen\"\n ></tr>\n <tr\n *matRowDef=\"let item; let index = index; columns: store.columnNames();\"\n mat-row\n [ngClass]=\"store.getRowClass()(item)\"\n [style]=\"null | style:{ item, index, component, selector: 'row' }\"\n [cdkDrag]\n [cdkDragDisabled]=\"!store.draggable()\"\n ></tr>\n <div class=\"mat-row\" *matNoDataRow>No Data</div>\n </tbody>\n </table>\n </cdk-virtual-scroll-viewport>\n `, changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [\n {\n directive: TableOrganismStore,\n inputs: [\n 'columnFormFieldMap',\n 'draggable',\n 'form',\n 'itemActions',\n 'selection',\n 'items',\n 'childrenKey',\n 'highlight',\n 'treeControl',\n 'isHidden',\n 'getRowClass',\n ],\n },\n ], host: {\n class: 'organism',\n 'tabindex': '0',\n '(keydown)': 'ss.handleKeyDown($event)',\n }, providers: [\n provideSpreadSheetService(),\n { provide: VIRTUAL_SCROLL_STRATEGY, useClass: CustomVirtualScrollStrategy },\n ], styles: [\":host{--width: 100%;--width-SCOPED-IN-smart-table-0oSW: var(--width);--column-vertical-padding: 4px;--column-vertical-padding-SCOPED-IN-smart-table-0oSW: var(--column-vertical-padding);--surface-color: #f0f0f0;--surface-color-SCOPED-IN-smart-table-0oSW: var(--surface-color);--on-surface-color: #000;--on-surface-color-SCOPED-IN-smart-table-0oSW: var(--on-surface-color);--background-color: #f0f0f0;--background-color-SCOPED-IN-smart-table-0oSW: var(--background-color);--on-background-color: #000;--on-background-color-SCOPED-IN-smart-table-0oSW: var(--on-background-color);--vertical-padding: 16px;--vertical-padding-SCOPED-IN-smart-table-0oSW: var(--vertical-padding)}.cdk-drag-preview{display:table;background-color:#fff}.cdk-drag-placeholder{opacity:0}:host{position:relative;display:block;width:100%;height:100%;overflow:hidden}:host table{min-width:100%;min-height:100%;background-color:var(--surface-color-SCOPED-IN-smart-table-0oSW);color:var(--on-surface-color-SCOPED-IN-smart-table-0oSW);--mat-table-row-item-label-text-color: var(--on-surface-color);--mat-table-header-headline-color: var(--on-surface-color)}:host table .nowrap{width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host table ::ng-deep th,:host table ::ng-deep td{padding:0 var(--column-vertical-padding-SCOPED-IN-smart-table-0oSW);box-sizing:border-box}:host table ::ng-deep th:first-child,:host table ::ng-deep td:first-child{padding-left:var(--vertical-padding-SCOPED-IN-smart-table-0oSW)}:host table ::ng-deep th:last-child,:host table ::ng-deep td:last-child{padding-right:var(--vertical-padding-SCOPED-IN-smart-table-0oSW)}:host table ::ng-deep tr.highlight{background-color:#f0f0f0;transition:background-color .5s}:host .no-data-message{display:flex;justify-content:flex-start;align-items:center;width:calc(100% - 32px);height:3em;padding:0 16px}:host table{border-collapse:collapse;-webkit-user-select:none;user-select:none}:host cdk-virtual-scroll-viewport{width:100%;height:100%;display:block;overflow:auto}:host cdk-virtual-scroll-viewport ::ng-deep .cdk-virtual-scroll-content-wrapper{transform:translateY(0)!important;min-height:100%;min-width:100%;width:auto}:host cdk-virtual-scroll-viewport ::ng-deep .cdk-virtual-scroll-spacer{width:1px;transform:translateZ(0)}:host.autofill-active{-webkit-user-select:none;user-select:none}:host.autofill-active td{pointer-events:none}:host.autofill-active td.autofill-source{pointer-events:auto}:host ::ng-deep td.autofill-preview{background-color:#2196f31a!important;border:1px dashed #2196F3!important}:host ::ng-deep td.autofill-preview:after{content:\\\"\\\";position:absolute;inset:0;background-color:#2196f30d;pointer-events:none;z-index:1}\\n\"] }]\n }], ctorParameters: () => [], propDecorators: { onCheckboxClick: [], onHeaderCheckboxClick: [], onChangeWidth: [] } });\nfunction getDisplayedNodes(nodes, control) {\n const result = [];\n for (const node of nodes) {\n result.push(node);\n if (control.isExpanded(node)) {\n result.push(...getDisplayedNodes(node.children, control));\n }\n }\n return result;\n}\nexport function flatItems(items, key = 'children') {\n const result = [];\n for (const item of items) {\n result.push(item);\n if (item[key]) {\n result.push(...flatItems(item[key], key));\n }\n }\n return result;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUub3JnYW5pc20uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbXBvbmVudHMvc3JjL2xpYi9vcmdhbmlzbXMvdGFibGUvdGFibGUub3JnYW5pc20udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3hKLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDdkYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDekYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDakYsT0FBTyxFQUFFLFNBQVMsRUFBVyxNQUFNLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2pG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SUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEIsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDN0IsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUM1RCxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFJLEtBQVUsRUFBRSxHQUFHLEdBQUcsVUFBVTtJQUN2RCxNQUFNLE1BQU0sR0FBUSxFQUFFLENBQUM7SUFDdkIsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUN6QixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xCLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDZCxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQy9DLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBEaXJlY3RpdmUsIGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCwgaW5wdXQsIHZpZXdDaGlsZCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2UsIE1hdFRhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgRG9tYWluUGlwZSB9IGZyb20gJ0BuZy1hdG9taWMvY29tbW9uL3BpcGVzL2RvbWFpbic7XG5pbXBvcnQgeyBBY3Rpb25zQ29sdW1uTW9sZWN1bGUgfSBmcm9tICdAbmctYXRvbWljL2NvbXBvbmVudHMvbW9sZWN1bGVzL2FjdGlvbnMtY29sdW1uJztcbmltcG9ydCB7IENoZWNrYm94Q29sdW1uTW9sZWN1bGUgfSBmcm9tICdAbmctYXRvbWljL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NoZWNrYm94LWNvbHVtbic7XG5pbXBvcnQgeyBUZXh0Q29sdW1uTW9sZWN1bGUgfSBmcm9tICdAbmctYXRvbWljL2NvbXBvbmVudHMvbW9sZWN1bGVzL3RleHQtY29sdW1uJztcbmltcG9ydCB7IF9jb21wdXRlZCwgQWN0aW9ucywgRWZmZWN0LCBJbmplY3RhYmxlQ29tcG9uZW50LCBOZ0F0b21pY0NvbXBvbmVudCwgVG9rZW5pemVkVHlwZSB9IGZyb20gJ0BuZy1hdG9taWMvY29yZSc7XG5pbXBvcnQgeyBTZWxlY3Rpb25Nb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgeyBUcmVlQ29sdW1uTW9sZWN1bGUgfSBmcm9tICdAbmctYXRvbWljL2NvbXBvbmVudHMvbW9sZWN1bGVzL3RyZWUtY29sdW1uJztcbmltcG9ydCB7IGNvbXB1dGVkUmF3VmFsdWUgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi91dGlscyc7XG5pbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZsYXRUcmVlQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90cmVlJztcbmltcG9ydCB7IENka0RyYWdEcm9wLCBDZGtEcm9wTGlzdCwgQ2RrRHJhZyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgbWFrZUNvbmZpZyB9IGZyb20gJ0BuZy1hdG9taWMvY29tbW9uL3NlcnZpY2VzL3VpJztcbmltcG9ydCB7IEluZGV4VGVtcGxhdGVGb3JtQnVpbGRlciB9IGZyb20gJ0BuZy1hdG9taWMvY29tbW9uL3NlcnZpY2VzL2Zvcm0vX2luZGV4JztcbmltcG9ydCB7IGJ1aWxkVHJlZUZsYXREYXRhU291cmNlIH0gZnJvbSAnLi90YWJsZS5oZWxwZXJzJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgaW5qZWN0RGF0YUFjY2Vzc29yIH0gZnJvbSAnQG5nLWF0b21pYy9jb21tb24vcGlwZXMvZGF0YS1hY2Nlc3Nvcic7XG5pbXBvcnQgeyBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQsIFNjcm9sbGluZ01vZHVsZSwgVklSVFVBTF9TQ1JPTExfU1RSQVRFR1kgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcbmltcG9ydCB7IGlzRXF1YWwgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgR3JpZERhdGFUYWJsZUF1dG9maWxsLCBwcm92aWRlU3ByZWFkU2hlZXRTZXJ2aWNlLCBTcHJlYWRTaGVldFNlcnZpY2UgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi9zZXJ2aWNlcy9zcHJlYWRzaGVldCc7XG5pbXBvcnQgeyBTdHlsZVBpcGUgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi9waXBlcy9zdHlsZSc7XG5pbXBvcnQgeyBDb2x1bW4gfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi9tb2RlbHMnO1xuaW1wb3J0IHsgTmdBdG9taWNDb2x1bW5Nb2xlY3VsZVN0b3JlIH0gZnJvbSAnQG5nLWF0b21pYy9jb21tb24vZGlyZWN0aXZlcy9tb2xlY3VsZXMvY29sdW1uJztcbmltcG9ydCB7IG1hcCwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZXJpdmVkQXN5bmMgfSBmcm9tICduZ3h0ZW5zaW9uL2Rlcml2ZWQtYXN5bmMnO1xuaW1wb3J0IHsgQ3VzdG9tRGF0YVNvdXJjZSwgQ3VzdG9tVmlydHVhbFNjcm9sbFN0cmF0ZWd5IH0gZnJvbSAnLi90YWJsZS5oZWxwZXJzJztcblxuZW51bSBBY3Rpb25JZCB7XG4gIENIRUNLQk9YX0NMSUNLID0gJ1tAbmctYXRvbWljL2NvbXBvbmVudHMvb3JnYW5pc21zL2NoZWNrYm94LWNvbHVtbl0gQ2hlY2tib3ggQ2xpY2snLFxuICBIRUFERVJfQ0hFQ0tCT1hfQ0xJQ0sgPSAnW0BuZy1hdG9taWMvY29tcG9uZW50cy9vcmdhbmlzbXMvY2hlY2tib3gtY29sdW1uXSBIZWFkZXIgQ2hlY2tib3ggQ2xpY2snLFxuICBIRUFERVJfQ0xJQ0sgPSAnW0BuZy1hdG9taWMvY29tcG9uZW50cy9vcmdhbmlzbXMvdGFibGVdIEhlYWRlciBDbGljaycsXG4gIFJPV19EUk9QID0gJ1tAbmctYXRvbWljL2NvbXBvbmVudHMvb3JnYW5pc21zL3RhYmxlXSBSb3cgRHJvcCcsXG4gIENPTFVNTl9XSURUSF9DSEFOR0UgPSAnW0BuZy1hdG9taWMvY29tcG9uZW50cy9vcmdhbmlzbXMvdGFibGVdIENvbHVtbiBXaWR0aCBDaGFuZ2UnLFxuICBBVVRPRklMTF9DT01QTEVURSA9ICdbQG5nLWF0b21pYy9jb21wb25lbnRzL29yZ2FuaXNtcy90YWJsZV0gQXV0b2ZpbGwgQ29tcGxldGUnLCAvLyDjg4fjgqPjg6zjgq/jg4bjgqPjg5bjgYvjgonnmbrooYzjgZXjgozjgotcbn1cblxuZnVuY3Rpb24gX19idWlsZENvbHVtbnMoZGF0YToge1xuICBjb2x1bW5zPzoge1xuICAgIG1hcD86IGFueSxcbiAgICBpZHM/OiBzdHJpbmdbXSxcbiAgfSxcbn0sIGl0ZW1BY3Rpb25zOiBBY3Rpb25zLCBzb3J0OiBhbnkpIHtcbiAgbGV0IF9zdGlja3lMZWZ0ID0gMDtcbiAgY29uc3QgY29sdW1ucyA9IChkYXRhPy5jb2x1bW5zPy5pZHMgPz8gW10pXG4gICAgLm1hcChpZCA9PiAoeyAuLi5kYXRhPy5jb2x1bW5zPy5tYXBbaWRdLCBuYW1lOiBpZCB9KSBhcyBDb2x1bW4pXG4gICAgLmZpbHRlcihjb2x1bW4gPT4gY29sdW1uLnZpc2libGUpXG4gICAgLm1hcCgoY29sdW1uKSA9PiB7XG4gICAgICBjb25zdCBzdGlja3lMZWZ0ID0gX3N0aWNreUxlZnQ7XG4gICAgICBfc3RpY2t5TGVmdCArPSBjb2x1bW4ud2lkdGg7XG4gICAgICBpZiAoY29sdW1uLm5hbWUuc3RhcnRzV2l0aCgnX190cmVlXycpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uY29sdW1uLFxuICAgICAgICAgIHR5cGU6ICd0cmVlJyxcbiAgICAgICAgICBzb3J0OiBzb3J0LmtleSA9PT0gY29sdW1uLm5hbWUgPyBzb3J0Lm9yZGVyIDogJ25vbmUnLFxuICAgICAgICAgIHN0aWNreUxlZnQsXG4gICAgICAgIH07XG4gICAgICB9IGVsc2UgaWYgKGNvbHVtbi5uYW1lLnN0YXJ0c1dpdGgoJ2NoZWNrYm94JykpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5jb2x1bW4sXG4gICAgICAgICAgdHlwZTogJ2NoZWNrYm94JyxcbiAgICAgICAgICBzdGlja3lMZWZ0LFxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIGlmIChjb2x1bW4udHlwZSA9PT0gJ2FjdGlvbnMnKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uY29sdW1uLFxuICAgICAgICAgIGFjdGlvbnM6IGNvbHVtbi5hY3Rpb25zID8/IGl0ZW1BY3Rpb25zLFxuICAgICAgICAgIHR5cGU6ICdhY3Rpb25zJyxcbiAgICAgICAgICBzb3J0OiBzb3J0LmtleSA9PT0gY29sdW1uLm5hbWUgPyBzb3J0Lm9yZGVyIDogJ25vbmUnLFxuICAgICAgICAgIHN0aWNreUxlZnQsXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uY29sdW1uLFxuICAgICAgICAgIHNvcnQ6IHNvcnQua2V5ID09PSBjb2x1bW4ubmFtZSA/IHNvcnQub3JkZXIgOiAnbm9uZScsXG4gICAgICAgICAgc3RpY2t5TGVmdCxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgIH0pO1xuICByZXR1cm4gY29sdW1ucztcbn1cblxuQFRva2VuaXplZFR5cGUoKVxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnb3JnYW5pc21zLXRhYmxlJyxcbiAgcHJvdmlkZXJzOiBbRG9tYWluUGlwZV0sXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlT3JnYW5pc21TdG9yZTxDLCBUPiBleHRlbmRzIEluamVjdGFibGVDb21wb25lbnQ8Qz4ge1xuICBzdGF0aWMgcmVhZG9ubHkgQWN0aW9uSWQgPSBBY3Rpb25JZDtcbiAgc3RhdGljIHJlYWRvbmx5IENvbmZpZyA9IG1ha2VDb25maWcoKCkgPT4ge1xuICAgIHJldHVybiAoKSA9PiAoe1xuICAgICAgZHJhZ2dhYmxlOiB0cnVlLFxuICAgICAgaXNIaWRkZW46IChpdGVtOiBhbnkpID0+IGZhbHNlLFxuICAgIH0pO1xuICB9LCBbJ2NvbXBvbmVudHMnLCAnb3JnYW5pc21zJywgJ3RhYmxlJ10pO1xuXG4gIHJlYWRvbmx5IGNvbmZpZyA9IFRhYmxlT3JnYW5pc21TdG9yZS5Db25maWcuaW5qZWN0KCk7XG4gIHJlYWRvbmx5IGRyYWdnYWJsZSA9IGlucHV0KF9jb21wdXRlZCgoKSA9PiB0aGlzLmNvbmZpZygpLmRyYWdnYWJsZSkpO1xuICByZWFkb25seSBkYXRhQWNjZXNzb3IgPSBpbmplY3REYXRhQWNjZXNzb3IoKTtcbiAgcmVhZG9ubHkgZ2V0Q2hpbGRyZW4gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIChub2RlOiBUKSA9PiB0aGlzLmRhdGFBY2Nlc3Nvcihub2RlLCB0aGlzLmNoaWxkcmVuS2V5KCkgPz8gJ2NoaWxkcmVuJyk7XG4gIH0pO1xuICByZWFkb25seSBmb3JtID0gaW5wdXQoaW5qZWN0KEluZGV4VGVtcGxhdGVGb3JtQnVpbGRlcikuYnVpbGQoKSk7XG4gIHJlYWRvbmx5IGNvbHVtbkZvcm1GaWVsZE1hcCA9IGlucHV0KHt9KTtcbiAgcmVhZG9ubHkgaXRlbUFjdGlvbnMgPSBpbnB1dDxBY3Rpb25zPihbXSk7XG4gIHJlYWRvbmx5IHNlbGVjdGlvbiA9IGlucHV0KG5ldyBTZWxlY3Rpb25Nb2RlbDxzdHJpbmc+KHRydWUsIFtdKSk7XG4gIHJlYWRvbmx5IGhpZ2hsaWdodCA9IGlucHV0KG5ldyBTZWxlY3Rpb25Nb2RlbDxzdHJpbmc+KHRydWUsIFtdKSk7XG4gIHJlYWRvbmx5IGNoaWxkcmVuS2V5ID0gaW5wdXQ8c3RyaW5nPihudWxsKTtcbiAgcmVhZG9ubHkgaXRlbXMgPSBpbnB1dDxUW10+KFtdKTtcbiAgcmVhZG9ubHkgdHJlZUNvbnRyb2wgPSBpbnB1dChuZXcgRmxhdFRyZWVDb250cm9sPGFueT4obiA9PiBuLmxldmVsLCBuID0+IG4uaXNFeHBhbmRhYmxlLCB7IHRyYWNrQnk6IChuOiBhbnkpID0+IG4/LmlkID8/IG4gfSkpO1xuICByZWFkb25seSBkYXRhU291cmNlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5pdGVtcygpO1xuICAgIGNvbnN0IGNoaWxkcmVuS2V5ID0gdGhpcy5jaGlsZHJlbktleSgpO1xuICAgIGNvbnN0IGdldENoaWxkcmVuID0gdGhpcy5nZXRDaGlsZHJlbigpO1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLnRyZWVDb250cm9sKCk7XG4gICAgaWYgKGNoaWxkcmVuS2V5KSB7XG4gICAgICByZXR1cm4gYnVpbGRUcmVlRmxhdERhdGFTb3VyY2UoY29udHJvbCwgaXRlbXMsIGdldENoaWxkcmVuKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBNYXRUYWJsZURhdGFTb3VyY2U8VD4oaXRlbXMpO1xuICB9KTtcbiAgcmVhZG9ubHkgaXNIaWRkZW4gPSBpbnB1dChfY29tcHV0ZWQoKCkgPT4gdGhpcy5jb25maWcoKS5pc0hpZGRlbikpO1xuICByZWFkb25seSBnZXRSb3dDbGFzcyA9IGlucHV0PChpdGVtOiBhbnkpID0+IHN0cmluZz4oX2NvbXB1dGVkKCgpID0+ICgpID0+ICcnKSk7XG4gIHJlYWRvbmx5IGZvcm1WYWx1ZSA9IGNvbXB1dGVkUmF3VmFsdWUoKCkgPT4gdGhpcy5mb3JtKCkpO1xuICByZWFkb25seSBzb3J0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5mb3JtVmFsdWUoKT8uc29ydCA/PyB7IGtleTogJycsIG9yZGVyOiAnYXNjJyB9LCB7XG4gICAgZXF1YWw6IChhLCBiKSA9PiBKU09OLnN0cmluZ2lmeShhKSA9PT0gSlNPTi5zdHJpbmdpZnkoYiksXG4gIH0pO1xuICByZWFkb25seSBjb2x1bW5zID0gY29tcHV0ZWQoKCkgPT4gX19idWlsZENvbHVtbnMoXG4gICAgdGhpcy5mb3JtVmFsdWUoKSxcbiAgICB0aGlzLml0ZW1BY3Rpb25zKCksXG4gICAgdGhpcy5zb3J0KCksXG4gICksIHsgZXF1YWw6IGlzRXF1YWwgfSk7XG4gIHJlYWRvbmx5IGNvbHVtbk5hbWVzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jb2x1bW5zKCkubWFwKGNvbHVtbiA9PiBjb2x1bW4ubmFtZSksIHsgZXF1YWw6IGlzRXF1YWwgfSk7XG5cbiAgLy8gTUVNTyhOb3pvbXVNaXlhbW90byk6IHRyZWVDb250cm9s44GuZGF0YU5vZGVz44Gu5aSJ5pu05qSc55+l44GMVHJlZUNvbHVtbk1vbGVjdWxl44GL44KJ44Gv44Gn44GN44Gq44GE44Gf44KB44CBVGFibGVPcmdhbmlzbVN0b3Jl44Gn5pu05paw44KS5qSc55+l44GX44Gm44GE44KL44CCXG4gIHJlYWRvbmx5IGlzRXhwYW5kZWRBbGwgPSBkZXJpdmVkQXN5bmMoKCkgPT4ge1xuICAgIHRoaXMuZGF0YVNvdXJjZSgpO1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLnRyZWVDb250cm9sKCk7XG4gICAgcmV0dXJuIGNvbnRyb2wuZXhwYW5zaW9uTW9kZWwuY2hhbmdlZC5waXBlKFxuICAgICAgc3RhcnRXaXRoKG51bGwpLFxuICAgICAgbWFwKCgpID0+IChjb250cm9sLmRhdGFOb2RlcyA/PyBbXSkuZXZlcnkobm9kZSA9PiBjb250cm9sLmlzRXhwYW5kZWQobm9kZSkpKSxcbiAgICApO1xuICB9KTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb3JnYW5pc21zLXRhYmxlJyxcbiAgaW1wb3J0czogW1xuICAgIE5nQ2xhc3MsXG4gICAgTWF0VGFibGVNb2R1bGUsXG4gICAgTWF0Q2hlY2tib3hNb2R1bGUsXG4gICAgTWF0TWVudU1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBBY3Rpb25zQ29sdW1uTW9sZWN1bGUsXG4gICAgQ2hlY2tib3hDb2x1bW5Nb2xlY3VsZSxcbiAgICBUZXh0Q29sdW1uTW9sZWN1bGUsXG4gICAgVHJlZUNvbHVtbk1vbGVjdWxlLFxuICAgIENka0Ryb3BMaXN0LFxuICAgIENka0RyYWcsXG4gICAgU2Nyb2xsaW5nTW9kdWxlLFxuICAgIENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydCxcbiAgICBTdHlsZVBpcGUsXG4gICAgR3JpZERhdGFUYWJsZUF1dG9maWxsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gIEBsZXQgY29tcG9uZW50ID0gJ0BuZy1hdG9taWMvY29tcG9uZW50cy9vcmdhbmlzbXMvdGFibGUnO1xuICA8Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0PlxuICAgIDx0YWJsZVxuICAgICAgbWF0LXRhYmxlXG4gICAgICBtYXRTb3J0XG4gICAgICBtYXRTb3J0RGlzYWJsZUNsZWFyXG4gICAgICBtYXRTb3J0RGlyZWN0aW9uPVwiZGVzY1wiXG4gICAgICBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlXCJcbiAgICAgIGNka0Ryb3BMaXN0XG4gICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cIm9uRHJvcCgkZXZlbnQpXCJcbiAgICAgIFtjZGtEcm9wTGlzdERpc2FibGVkXT1cIiFzdG9yZS5kcmFnZ2FibGUoKVwiXG4gICAgICBbbXVsdGlUZW1wbGF0ZURhdGFSb3dzXT1cInRydWVcIlxuICAgICAgZ3JpZERhdGFUYWJsZUF1dG9maWxsXG4gICAgICAoYXV0b2ZpbGxDb21wbGV0ZSk9XCJvbkF1dG9maWxsQ29tcGxldGUoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPHRib2R5PlxuICAgICAgICBAZm9yIChjb2x1bW4gb2Ygc3RvcmUuY29sdW1ucygpOyB0cmFjayBjb2x1bW4ubmFtZTsgbGV0IGluZGV4ID0gJGluZGV4KSB7XG4gICAgICAgICAgQHN3aXRjaCAoY29sdW1uLnR5cGUpIHtcbiAgICAgICAgICAgIEBjYXNlICgnY2hlY2tib3gnKSB7XG4gICAgICAgICAgICAgIDxtb2xlY3VsZXMtY2hlY2tib3gtY29sdW1uXG4gICAgICAgICAgICAgICAgW2luZGV4XT1cImluZGV4XCJcbiAgICAgICAgICAgICAgICBbY29sdW1uXT1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgW3NlbGVjdGlvbl09XCJzdG9yZS5zZWxlY3Rpb24oKVwiXG4gICAgICAgICAgICAgICAgW2lzSGlkZGVuXT1cInN0b3JlLmlzSGlkZGVuKClcIlxuICAgICAgICAgICAgICAgIChhY3Rpb24pPVwiZGlzcGF0Y2goJGV2ZW50KVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAY2FzZSAoJ2FjdGlvbnMnKSB7XG4gICAgICAgICAgICAgIDxtb2xlY3VsZXMtYWN0aW9ucy1jb2x1bW5cbiAgICAgICAgICAgICAgICBbaW5kZXhdPVwiaW5kZXhcIlxuICAgICAgICAgICAgICAgIFtjb2x1bW5dPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICBbaXRlbUFjdGlvbnNdPVwiY29sdW1uLmFjdGlvbnNcIlxuICAgICAgICAgICAgICAgIChhY3Rpb24pPVwiZGlzcGF0Y2goJGV2ZW50KVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAY2FzZSgndHJlZScpIHtcbiAgICAgICAgICAgICAgPG1vbGVjdWxlcy10cmVlLWNvbHVtblxuICAgICAgICAgICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgICAgICAgICAgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgIFt0cmVlQ29udHJvbF09XCJzdG9yZS50cmVlQ29udHJvbCgpXCJcbiAgICAgICAgICAgICAgICBbaXNFeHBhbmRlZEFsbF09XCJzdG9yZS5pc0V4cGFuZGVkQWxsKClcIlxuICAgICAgICAgICAgICAgIFtmb3JtRmllbGRNYXBdPVwic3RvcmUuY29sdW1uRm9ybUZpZWxkTWFwKClcIlxuICAgICAgICAgICAgICAgIChoZWFkZXJDbGljayk9XCJvbkhlYWRlckNsaWNrKGNvbHVtbi5uYW1lKVwiXG4gICAgICAgICAgICAgICAgKGFjdGlvbik9XCJkaXNwYXRjaCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBkZWZhdWx0IHtcbiAgICAgICAgICAgICAgPG1vbGVjdWxlcy10ZXh0LWNvbHVtblxuICAgICAgICAgICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgICAgICAgICAgW2Zvcm1GaWVsZE1hcF09XCJzdG9yZS5jb2x1bW5Gb3JtRmllbGRNYXAoKVwiXG4gICAgICAgICAgICAgICAgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgIChoZWFkZXJDbGljayk9XCJvbkhlYWRlckNsaWNrKGNvbHVtbi5uYW1lKVwiXG4gICAgICAgICAgICAgICAgKGFjdGlvbik9XCJkaXNwYXRjaCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgPHRyXG4gICAgICAgICAgKm1hdEhlYWRlclJvd0RlZj1cInN0b3JlLmNvbHVtbk5hbWVzKCk7IHN0aWNreTogdHJ1ZVwiXG4gICAgICAgICAgbWF0LWhlYWRlci1yb3dcbiAgICAgICAgICBbc3R5bGVdPVwibnVsbCB8IHN0eWxlOnsgY29tcG9uZW50LCBzZWxlY3RvcjogJ2hlYWRlci1yb3cnIH1cIlxuICAgICAgICA+PC90cj5cbiAgICAgICAgPHRyXG4gICAgICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJkYXRhU291cmNlLnBsYWNlaG9sZGVySGVpZ2h0KClcIlxuICAgICAgICAgIG1hdC1yb3dcbiAgICAgICAgICAqbWF0Um93RGVmPVwibGV0IGl0ZW07IGxldCBpbmRleCA9IGluZGV4OyBjb2x1bW5zOiBbXTtcbiAgICAgICAgICB3aGVuOiBwbGFjZWhvbGRlcldoZW5cIlxuICAgICAgICA+PC90cj5cbiAgICAgICAgPHRyXG4gICAgICAgICAgKm1hdFJvd0RlZj1cImxldCBpdGVtOyBsZXQgaW5kZXggPSBpbmRleDsgY29sdW1uczogc3RvcmUuY29sdW1uTmFtZXMoKTtcIlxuICAgICAgICAgIG1hdC1yb3dcbiAgICAgICAgICBbbmdDbGFzc109XCJzdG9yZS5nZXRSb3dDbGFzcygpKGl0ZW0pXCJcbiAgICAgICAgICBbc3R5bGVdPVwibnVsbCB8IHN0eWxlOnsgaXRlbSwgaW5kZXgsIGNvbXBvbmVudCwgc2VsZWN0b3I6ICdyb3cnIH1cIlxuICAgICAgICAgIFtjZGtEcmFnXVxuICAgICAgICAgIFtjZGtEcmFnRGlzYWJsZWRdPVwiIXN0b3JlLmRyYWdnYWJsZSgpXCJcbiAgICAgICAgPjwvdHI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYXQtcm93XCIgKm1hdE5vRGF0YVJvdz5ObyBEYXRhPC9kaXY+XG4gICAgICA8L3Rib2R5PlxuICAgIDwvdGFibGU+XG4gIDwvY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi90YWJsZS5vcmdhbmlzbS5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0RGlyZWN0aXZlczogW1xuICAgIHtcbiAgICAgIGRpcmVjdGl2ZTogVGFibGVPcmdhbmlzbVN0b3JlLFxuICAgICAgaW5wdXRzOiBbXG4gICAgICAgICdjb2x1bW5Gb3JtRmllbGRNYXAnLFxuICAgICAgICAnZHJhZ2dhYmxlJyxcbiAgICAgICAgJ2Zvcm0nLFxuICAgICAgICAnaXRlbUFjdGlvbnMnLFxuICAgICAgICAnc2VsZWN0aW9uJyxcbiAgICAgICAgJ2l0ZW1zJyxcbiAgICAgICAgJ2NoaWxkcmVuS2V5JyxcbiAgICAgICAgJ2hpZ2hsaWdodCcsXG4gICAgICAgICd0cmVlQ29udHJvbCcsXG4gICAgICAgICdpc0hpZGRlbicsXG4gICAgICAgICdnZXRSb3dDbGFzcycsXG4gICAgICBdLFxuICAgIH0sXG4gIF0sXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ29yZ2FuaXNtJyxcbiAgICAndGFiaW5kZXgnOiAnMCcsXG4gICAgJyhrZXlkb3duKSc6ICdzcy5oYW5kbGVLZXlEb3duKCRldmVudCknLFxuICB9LFxuICBwcm92aWRlcnM6IFtcbiAgICBwcm92aWRlU3ByZWFkU2hlZXRTZXJ2aWNlKCksXG4gICAgeyBwcm92aWRlOiBWSVJUVUFMX1NDUk9MTF9TVFJBVEVHWSwgdXNlQ2xhc3M6IEN1c3RvbVZpcnR1YWxTY3JvbGxTdHJhdGVneSB9LFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlT3JnYW5pc208SXRlbSBleHRlbmRzIG9iamVjdD4gZXh0ZW5kcyBOZ0F0b21pY0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHN0YXRpYyByZWFkb25seSBBY3Rpb25JZCA9IEFjdGlvbklkO1xuICBwcm90ZWN0ZWQgc3RvcmUgPSBpbmplY3QoVGFibGVPcmdhbmlzbVN0b3JlKTtcbiAgcHJvdGVjdGVkIHNzID0gaW5qZWN0KFNwcmVhZFNoZWV0U2VydmljZSk7XG4gIHJlYWRvbmx5IHRyYWNrQnlGdW5jID0gKGluZGV4OiBudW1iZXIsIGl0ZW06IEl0ZW0pID0+IGl0ZW07XG4gIHJlYWRvbmx5IHBsYWNlaG9sZGVyV2hlbiA9IChpbmRleDogbnVtYmVyLCBfOiBhbnkpID0+IGluZGV4ID09IDA7XG5cbiAgcmVhZG9ubHkgdmlld3BvcnQgPSB2aWV3Q2hpbGQoQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0KTtcbiAgcmVhZG9ubHkgZGF0YVNvdXJjZSA9IG5ldyBDdXN0b21EYXRhU291cmNlKHRoaXMuc3MpO1xuICBcbiAgcHJpdmF0ZSBkYXRhTm9kZXNTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBlZmZlY3QoKCkgPT4geyB0aGlzLmRhdGFTb3VyY2UuY29sdW1uTmFtZXMuc2V0KHRoaXMuc3RvcmUuY29sdW1uTmFtZXMoKSk7IH0pO1xuICAgIGVmZmVjdCgoKSA9PiB7IFxuICAgICAgY29uc3QgZGF0YVNvdXJjZSA9IHRoaXMuc3RvcmUuZGF0YVNvdXJjZSgpO1xuICAgICAgdGhpcy5kYXRhU291cmNlLnJlY29ubmVjdChkYXRhU291cmNlKTtcbiAgICAgIFxuICAgICAgLy8g5pei5a2Y44Gu6LO86Kqt44KS6Kej6ZmkXG4gICAgICBpZiAodGhpcy5kYXRhTm9kZXNTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgdGhpcy5kYXRhTm9kZXNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5kYXRhTm9kZXNTdWJzY3JpcHRpb24gPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8vIFRyZWVGbGF0RGF0YVNvdXJjZeOBruWgtOWQiOOAgWRhdGFOb2Rlc+OCkuabtOaWsO+8iGV4cGFuZEFsbC9jb2xsYXBzZUFsbOeUqO+8iVxuICAgICAgaWYgKHRoaXMuc3RvcmUuY2hpbGRyZW5LZXkoKSAmJiBkYXRhU291cmNlKSB7XG4gICAgICAgIGNvbnN0IGZsYXR0ZW5lZERhdGEgPSAoZGF0YVNvdXJjZSBhcyBhbnkpLl9mbGF0dGVuZWREYXRhO1xuICAgICAgICBpZiAoZmxhdHRlbmVkRGF0YSkge1xuICAgICAgICAgIC8vIEJlaGF2aW9yU3ViamVjdOOCkuizvOiqreOBl+OBpuOAgeWApOOBjOWkieabtOOBleOCjOOBn+OBqOOBjeOBq2RhdGFOb2Rlc+OCkuabtOaWsFxuICAgICAgICAgIHRoaXMuZGF0YU5vZGVzU3Vic2NyaXB0aW9uID0gZmxhdHRlbmVkRGF0YS5zdWJzY3JpYmUoKG5vZGVzOiBhbnlbXSkgPT4ge1xuICAgICAgICAgICAgaWYgKG5vZGVzICYmIG5vZGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgdGhpcy5zdG9yZS50cmVlQ29udHJvbCgpLmRhdGFOb2RlcyA9IG5vZGVzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLmRhdGFOb2Rlc1N1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5kYXRhTm9kZXNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy51cGRhdGVWaWV3UG9ydCgpO1xuICB9XG5cbiAgdXBkYXRlVmlld1BvcnQoKSB7XG4gICAgdGhpcy5kYXRhU291cmNlLnZpZXdwb3J0LnNldCh0aGlzLnZpZXdwb3J0KCkpO1xuICAgIHRoaXMudmlld3BvcnQoKS5jaGVja1ZpZXdwb3J0U2l6ZSgpO1xuICB9XG5cbiAgcmVhZG9ubHkgY2QgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gIEBFZmZlY3QoQ2hlY2tib3hDb2x1bW5Nb2xlY3VsZS5BY3Rpb25JZC5DSEVDS0JPWF9DTElDSylcbiAgcHJvdGVjdGVkIG9uQ2hlY2tib3hDbGljayhpdGVtOiBJdGVtKSB7XG4gICAgdGhpcy5kaXNwYXRjaCh7IGlkOiBBY3Rpb25JZC5DSEVDS0JPWF9DTElDSywgcGF5bG9hZDogaXRlbSB9KTtcbiAgfVxuXG4gIEBFZmZlY3QoQ2hlY2tib3hDb2x1bW5Nb2xlY3VsZS5BY3Rpb25JZC5IRUFERVJfQ0hFQ0tCT1hfQ0xJQ0spXG4gIHByb3RlY3RlZCBvbkhlYWRlckNoZWNrYm94Q2xpY2soaXRlbTogSXRlbSkge1xuICAgIHRoaXMuZGlzcGF0Y2goeyBpZDogQWN0aW9uSWQuSEVBREVSX0NIRUNLQk9YX0NMSUNLIH0pO1xuICB9XG5cbiAgQEVmZmVjdChOZ0F0b21pY0NvbHVtbk1vbGVjdWxlU3RvcmUuX0FjdGlvbklkLkNIQU5HRV9XSURUSClcbiAgcHJvdGVjdGVkIG9uQ2hhbmdlV2lkdGgocGF5bG9hZDoge25hbWU6IHN0cmluZywgd2lkdGg6IG51bWJlcn0pIHtcbiAgICB0aGlzLmRpc3BhdGNoKHtcbiAgICAgIGlkOiBUYWJsZU9yZ2FuaXNtU3RvcmUuQWN0aW9uSWQuQ09MVU1OX1dJRFRIX0NIQU5HRSxcbiAgICAgIHBheWxvYWQ6IHsgY29sdW1uTmFtZTogcGF5bG9hZC5uYW1lLCB3aWR0aDogcGF5bG9hZC53aWR0aCB9XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25IZWFkZXJDbGljayhjb2x1bW46IHN0cmluZykge1xuICAgIHRoaXMuZGlzcGF0Y2goeyBpZDogQWN0aW9uSWQuSEVBREVSX0NMSUNLLCBwYXlsb2FkOiBjb2x1bW4gfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25Ecm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxhbnksIGFueT4pIHtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5zdG9yZS50cmVlQ29udHJvbCgpXG4gICAgY29uc3Qgbm9kZXMgPSBjb250cm9sLmRhdGFOb2Rlcy5maWx0ZXIobm9kZSA9PiBub2RlLmxldmVsID09PSAwKTtcbiAgICBjb25zdCBub2Rlc18gPSBnZXREaXNwbGF5ZWROb2Rlcyhub2RlcywgY29udHJvbCk7XG4gICAgY29uc3QgZHJhZ2dlZE5vZGUgPSBub2Rlc19bZXZlbnQucHJldmlvdXNJbmRleF07XG4gICAgY29uc3QgZHJvcHBlZE5vZGUgPSBub2Rlc19bZXZlbnQuY3VycmVudEluZGV4XTtcbiAgICBjb25zdCBpdGVtcyA9IGZsYXRJdGVtcyh0aGlzLnN0b3JlLml0ZW1zKCksIHRoaXMuc3RvcmUuY2hpbGRyZW5LZXkoKSk7XG5cbiAgICB0aGlzLmRpc3BhdGNoKHtcbiAgICAgIGlkOiBBY3Rpb25JZC5ST1dfRFJPUCxcbiAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgcHJldmlvdXNJbmRleDogbm9kZXNfLmZpbmRJbmRleChub2RlID0+IG5vZGUgPT09IGV2ZW50Lml0ZW0uZGF0YSksXG4gICAgICAgIGN1cnJlbnRJbmRleDogZXZlbnQuY3VycmVudEluZGV4LFxuICAgICAgICBkcmFnZ2VkOiBpdGVtcy5maW5kKGl0ZW0gPT4gaXRlbS5pZCA9PT0gZHJhZ2dlZE5vZGUuaWQpLFxuICAgICAgICBkcm9wcGVkOiBpdGVtcy5maW5kKGl0ZW0gPT4gaXRlbS5pZCA9PT0gZHJvcHBlZE5vZGUuaWQpLFxuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIFxuICAvLyDjgqrjg7zjg4jjg5XjgqPjg6vlrozkuobjgqTjg5njg7Pjg4jjgpLlj5fjgZHlj5bjgovvvIjjg4fjgqPjg6zjgq/jg4bjgqPjg5bjgYvjgonvvIlcbiAgcHJvdGVjdGVkIG9uQXV0b2ZpbGxDb21wbGV0ZShwYXlsb2FkOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmRpc3BhdGNoKHsgaWQ6IEFjdGlvbklkLkFVVE9GSUxMX0NPTVBMRVRFLCBwYXlsb2FkIH0pO1xuICB9XG59XG5cbmludGVyZmFjZSBUcmVlTm9kZSB7XG4gIGlkOiBzdHJpbmc7XG4gIGlzRXhwYW5kYWJsZTogYm9vbGVhbjtcbiAgY2hpbGRyZW4/OiBUcmVlTm9kZVtdO1xufVxuXG5mdW5jdGlvbiBnZXREaXNwbGF5ZWROb2Rlcyhub2RlczogVHJlZU5vZGVbXSwgY29udHJvbDogRmxhdFRyZWVDb250cm9sPGFueT4pOiBUcmVlTm9kZVtdIHtcbiAgY29uc3QgcmVzdWx0OiBUcmVlTm9kZVtdID0gW107XG4gIGZvciAoY29uc3Qgbm9kZSBvZiBub2Rlcykge1xuICAgIHJlc3VsdC5wdXNoKG5vZGUpO1xuICAgIGlmIChjb250cm9sLmlzRXhwYW5kZWQobm9kZSkpIHtcbiAgICAgIHJlc3VsdC5wdXNoKC4uLmdldERpc3BsYXllZE5vZGVzKG5vZGUuY2hpbGRyZW4sIGNvbnRyb2wpKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZsYXRJdGVtczxUPihpdGVtczogVFtdLCBrZXkgPSAnY2hpbGRyZW4nKTogVFtdIHtcbiAgY29uc3QgcmVzdWx0OiBUW10gPSBbXTtcbiAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XG4gICAgcmVzdWx0LnB1c2goaXRlbSk7XG4gICAgaWYgKGl0ZW1ba2V5XSkge1xuICAgICAgcmVzdWx0LnB1c2goLi4uZmxhdEl0ZW1zPFQ+KGl0ZW1ba2V5XSwga2V5KSk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG4iXX0=","/** @deprecated use instead `'@ng-atomic/common/services/form/_index` */\nexport * from '@ng-atomic/common/services/form/_index';\nexport * from './table.helpers';\nexport * from './table.organism';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbXBvbmVudHMvc3JjL2xpYi9vcmdhbmlzbXMvdGFibGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0VBQXdFO0FBQ3hFLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBkZXByZWNhdGVkIHVzZSBpbnN0ZWFkIGAnQG5nLWF0b21pYy9jb21tb24vc2VydmljZXMvZm9ybS9faW5kZXhgICovXG5leHBvcnQgKiBmcm9tICdAbmctYXRvbWljL2NvbW1vbi9zZXJ2aWNlcy9mb3JtL19pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL3RhYmxlLmhlbHBlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi90YWJsZS5vcmdhbmlzbSc7XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctYXRvbWljLWNvbXBvbmVudHMtb3JnYW5pc21zLXRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb21wb25lbnRzL3NyYy9saWIvb3JnYW5pc21zL3RhYmxlL25nLWF0b21pYy1jb21wb25lbnRzLW9yZ2FuaXNtcy10YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-atomic-components-organisms-table.mjs","sources":["../tmp-esm2022/organisms/table/table.helpers.js","../tmp-esm2022/organisms/table/table.organism.js","../tmp-esm2022/organisms/table/index.js","../tmp-esm2022/organisms/table/ng-atomic-components-organisms-table.js"],"sourcesContent":["import { MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree';\nimport { get, isEqual } from 'lodash-es';\nimport { DataSource } from '@angular/cdk/collections';\nimport { combineLatest, distinctUntilChanged, filter, map, startWith, switchMap } from 'rxjs';\nimport { FixedSizeVirtualScrollStrategy } from '@angular/cdk/scrolling';\nimport { signal } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nconst ITEM_SIZE = 52;\nconst PRE = 10;\nconst Z = 2;\nexport class CustomDataSource extends DataSource {\n reconnect(datasource) {\n this.dataSource.set(datasource);\n }\n constructor(ss) {\n super();\n this.ss = ss;\n this.collectionViewer = signal(null);\n this.collectionViewer$ = toObservable(this.collectionViewer);\n this.itemSize = signal(ITEM_SIZE);\n this.itemSize$ = toObservable(this.itemSize);\n this.dataSource = signal(null);\n this.dataSource$ = toObservable(this.dataSource);\n this.viewport = signal(null);\n this.viewport$ = toObservable(this.viewport);\n this.placeholderHeight = signal(0);\n this.columnNames = signal([]);\n this.columnNames$ = toObservable(this.columnNames);\n this.data$ = combineLatest({\n viewer: this.collectionViewer$,\n dataSource: this.dataSource$,\n }).pipe(filter(({ viewer, dataSource }) => !!viewer && !!dataSource), switchMap(({ viewer, dataSource }) => dataSource.connect(viewer)), distinctUntilChanged((a, b) => isEqual(a, b)), map((items) => items.map((item, i) => ({ ...item, $index: i }))));\n this.totalContentSize$ = combineLatest({\n data: this.data$,\n itemSize: this.itemSize$,\n }).pipe(map(({ data, itemSize }) => {\n // データ長に基づく高さを計算\n return itemSize * data.length;\n }), distinctUntilChanged());\n this.scrollTop$ = this.viewport$.pipe(filter((viewport) => !!viewport), switchMap((viewport) => viewport.elementScrolled()), map(({ currentTarget }) => currentTarget?.scrollTop ?? 0), startWith(0));\n this.viewportHeight$ = combineLatest({\n viewport: this.viewport$,\n data: this.scrollTop$,\n }).pipe(filter(({ viewport }) => !!viewport), map(({ viewport }) => viewport.getViewportSize()), distinctUntilChanged());\n this.rows$ = combineLatest({\n viewportHeight: this.viewportHeight$,\n itemSize: this.itemSize$,\n }).pipe(map(({ viewportHeight, itemSize }) => Math.ceil(viewportHeight / itemSize)), distinctUntilChanged());\n this.pageSize$ = this.rows$.pipe(map((rows) => rows * Z + PRE), distinctUntilChanged());\n this.start$ = combineLatest({\n scrollTop: this.scrollTop$,\n rowHeight: this.itemSize$,\n rows: this.rows$,\n }).pipe(map(({ scrollTop, rowHeight, rows }) => {\n if (rowHeight * rows === 0)\n return 0;\n return Math.floor(scrollTop / (rowHeight * rows));\n }), distinctUntilChanged());\n this.prevExtraData$ = this.start$.pipe(map((start) => Math.min(PRE, start)));\n this.startIndex$ = combineLatest({\n start: this.start$,\n rows: this.rows$,\n prevExtraData: this.prevExtraData$,\n }).pipe(map(({ start, rows, prevExtraData }) => start * rows - prevExtraData), distinctUntilChanged());\n this.endIndex$ = combineLatest({\n startIndex: this.startIndex$,\n pageSize: this.pageSize$,\n }).pipe(map(({ startIndex, pageSize }) => startIndex + pageSize), distinctUntilChanged());\n this.visibleData$ = combineLatest({\n data: this.data$,\n columnNames: this.columnNames$,\n viewport: this.viewport$,\n itemSize: this.itemSize$,\n startIndex: this.startIndex$,\n endIndex: this.endIndex$,\n }).pipe(filter(({ data }) => !!data), map(({ data, columnNames, viewport, itemSize, startIndex, endIndex }) => {\n this.ss.clipboard.setData(data, columnNames);\n const offset = itemSize * startIndex;\n if (viewport)\n viewport.setRenderedContentOffset(offset);\n this.placeholderHeight.set(offset);\n return data.slice(startIndex, endIndex);\n }), distinctUntilChanged((a, b) => isEqual(a, b)));\n combineLatest({\n viewport: this.viewport$,\n totalContentSize: this.totalContentSize$,\n }).pipe(filter(({ viewport }) => !!viewport)).subscribe(({ viewport, totalContentSize }) => {\n viewport.setTotalContentSize(totalContentSize);\n });\n }\n connect(collectionViewer) {\n this.collectionViewer.set(collectionViewer);\n return this.visibleData$.pipe(distinctUntilChanged((a, b) => isEqual(a, b)));\n }\n disconnect() { }\n}\nexport class CustomVirtualScrollStrategy extends FixedSizeVirtualScrollStrategy {\n constructor() {\n // itemSize: 52px, minBufferPx: 520px (10 rows), maxBufferPx: 1040px (20 rows)\n // バッファを大きくして、スクロール時のちらつきを減らす\n super(ITEM_SIZE, ITEM_SIZE * 10, ITEM_SIZE * 20);\n }\n}\nexport function buildMatTreeFlattener(getChildren = (node) => get(node, 'children') ?? []) {\n return new MatTreeFlattener((node, level) => {\n node.level = level;\n node.isExpandable = !!getChildren(node).length;\n return node;\n // return ({\n // ...node,\n // level,\n // isExpandable: !!getChildren(node).length\n // })\n }, (node) => node.level, (node) => node.isExpandable, (node) => getChildren(node));\n}\nexport function buildTreeFlatDataSource(treeControl, data, getChildren = (node) => get(node, 'children') ?? []) {\n const treeFlattener = buildMatTreeFlattener(getChildren);\n return new MatTreeFlatDataSource(treeControl, treeFlattener, data);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BuZy1hdG9taWMvY29tcG9uZW50cy9zcmMvbGliL29yZ2FuaXNtcy90YWJsZS90YWJsZS5oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRWpGLE9BQU8sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3pDLE9BQU8sRUFBb0IsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGFBQWEsRUFBZ0Isb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxTQUFTLEVBQUUsU0FBUyxFQUFPLE1BQU0sTUFBTSxDQUFDO0FBQzdILE9BQU8sRUFBNEIsOEJBQThCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUkxRCxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUM7QUFDckIsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO0FBQ2YsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBRVosTUFBTSxPQUFPLGdCQUFvQixTQUFRLFVBQWE7SUFnSHBELFNBQVMsQ0FBQyxVQUF5QjtRQUNqQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsWUFBc0IsRUFBc0I7UUFDMUMsS0FBSyxFQUFFLENBQUM7UUFEWSxPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQW5IbkMscUJBQWdCLEdBQUcsTUFBTSxDQUFtQixJQUFJLENBQUMsQ0FBQztRQUNsRCxzQkFBaUIsR0FBRyxZQUFZ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QVcsQ0FBQyxDQUFDO0lBQ3pELE9BQU8sSUFBSSxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3JFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNYXRUcmVlRmxhdERhdGFTb3VyY2UsIE1hdFRyZWVGbGF0dGVuZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90cmVlJztcbmltcG9ydCB7IEZsYXRUcmVlQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90cmVlJztcbmltcG9ydCB7IGdldCwgaXNFcXVhbCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBDb2xsZWN0aW9uVmlld2VyLCBEYXRhU291cmNlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQsIEZpeGVkU2l6ZVZpcnR1YWxTY3JvbGxTdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuaW1wb3J0IHsgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0b09ic2VydmFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBTcHJlYWRTaGVldFNlcnZpY2UgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi9zZXJ2aWNlcy9zcHJlYWRzaGVldCc7XG5pbXBvcnQgeyBjb25zdW1lclBvbGxQcm9kdWNlcnNGb3JDaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9jb3JlL3ByaW1pdGl2ZXMvc2lnbmFscyc7XG5cbmNvbnN0IElURU1fU0laRSA9IDUyO1xuY29uc3QgUFJFID0gMTA7XG5jb25zdCBaID0gMjtcblxuZXhwb3J0IGNsYXNzIEN1c3RvbURhdGFTb3VyY2U8VD4gZXh0ZW5kcyBEYXRhU291cmNlPFQ+IHtcbiAgcmVhZG9ubHkgY29sbGVjdGlvblZpZXdlciA9IHNpZ25hbDxDb2xsZWN0aW9uVmlld2VyPihudWxsKTtcbiAgcmVhZG9ubHkgY29sbGVjdGlvblZpZXdlciQgPSB0b09ic2VydmFibGUodGhpcy5jb2xsZWN0aW9uVmlld2VyKTtcbiAgcmVhZG9ubHkgaXRlbVNpemUgPSBzaWduYWwoSVRFTV9TSVpFKTtcbiAgcmVhZG9ubHkgaXRlbVNpemUkID0gdG9PYnNlcnZhYmxlKHRoaXMuaXRlbVNpemUpO1xuICByZWFkb25seSBkYXRhU291cmNlID0gc2lnbmFsPERhdGFTb3VyY2U8VD4+KG51bGwpO1xuICByZWFkb25seSBkYXRhU291cmNlJCA9IHRvT2JzZXJ2YWJsZSh0aGlzLmRhdGFTb3VyY2UpO1xuICByZWFkb25seSB2aWV3cG9ydCA9IHNpZ25hbDxDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQ+KG51bGwpO1xuICByZWFkb25seSB2aWV3cG9ydCQgPSB0b09ic2VydmFibGUodGhpcy52aWV3cG9ydCk7XG4gIHJlYWRvbmx5IHBsYWNlaG9sZGVySGVpZ2h0ID0gc2lnbmFsKDApO1xuXG4gIHJlYWRvbmx5IGNvbHVtbk5hbWVzID0gc2lnbmFsPHN0cmluZ1tdPihbXSk7XG4gIHJlYWRvbmx5IGNvbHVtbk5hbWVzJCA9IHRvT2JzZXJ2YWJsZSh0aGlzLmNvbHVtbk5hbWVzKTtcblxuICByZWFkb25seSBkYXRhJCA9IGNvbWJpbmVMYXRlc3Qoe1xuICAgIHZpZXdlcjogdGhpcy5jb2xsZWN0aW9uVmlld2VyJCxcbiAgICBkYXRhU291cmNlOiB0aGlzLmRhdGFTb3VyY2UkLFxuICB9KS5waXBlKFxuICAgIGZpbHRlcigoeyB2aWV3ZXIsIGRhdGFTb3VyY2UgfSkgPT4gISF2aWV3ZXIgJiYgISFkYXRhU291cmNlKSxcbiAgICBzd2l0Y2hNYXAoKHsgdmlld2VyLCBkYXRhU291cmNlIH0pID0+IGRhdGFTb3VyY2UuY29ubmVjdCh2aWV3ZXIpKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgoYSwgYikgPT4gaXNFcXVhbChhLCBiKSksXG4gICAgbWFwKChpdGVtcykgPT4gaXRlbXMubWFwKChpdGVtLCBpKSA9PiAoey4uLml0ZW0sICRpbmRleDogaX0pKSksXG4gICk7XG4gIHJlYWRvbmx5IHRvdGFsQ29udGVudFNpemUkID0gY29tYmluZUxhdGVzdCh7XG4gICAgZGF0YTogdGhpcy5kYXRhJCxcbiAgICBpdGVtU2l6ZTogdGhpcy5pdGVtU2l6ZSQsXG4gIH0pLnBpcGUoXG4gICAgbWFwKCh7IGRhdGEsIGl0ZW1TaXplIH0pID0+IHtcbiAgICAgIC8vIOODh+ODvOOCv+mVt+OBq+WfuuOBpeOBj+mrmOOBleOCkuioiOeul1xuICAgICAgcmV0dXJuIGl0ZW1TaXplICogZGF0YS5sZW5ndGg7XG4gICAgfSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgKTtcbiAgXG4gIHJlYWRvbmx5IHNjcm9sbFRvcCQgPSB0aGlzLnZpZXdwb3J0JC5waXBlKFxuICAgIGZpbHRlcigodmlld3BvcnQpID0+ICEhdmlld3BvcnQpLFxuICAgIHN3aXRjaE1hcCgodmlld3BvcnQpID0+IHZpZXdwb3J0LmVsZW1lbnRTY3JvbGxlZCgpIGFzIG5ldmVyIGFzIE9ic2VydmFibGU8eyBjdXJyZW50VGFyZ2V0OiBIVE1MRWxlbWVudCB9PiksXG4gICAgbWFwKCh7IGN1cnJlbnRUYXJnZXQgfSkgPT4gY3VycmVudFRhcmdldD8uc2Nyb2xsVG9wID8/IDApLFxuICAgIHN0YXJ0V2l0aCgwKSxcbiAgKTtcbiAgcmVhZG9ubHkgdmlld3BvcnRIZWlnaHQkID0gY29tYmluZUxhdGVzdCh7XG4gICAgdmlld3BvcnQ6IHRoaXMudmlld3BvcnQkLFxuICAgIGRhdGE6IHRoaXMuc2Nyb2xsVG9wJCxcbiAgfSkucGlwZShcbiAgICBmaWx0ZXIoKHt2aWV3cG9ydH0pID0+ICEhdmlld3BvcnQpLFxuICAgIG1hcCgoe3ZpZXdwb3J0fSkgPT4gdmlld3BvcnQuZ2V0Vmlld3BvcnRTaXplKCkpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICk7XG4gIHJlYWRvbmx5IHJvd3MkID0gY29tYmluZUxhdGVzdCh7XG4gICAgdmlld3BvcnRIZWlnaHQ6IHRoaXMudmlld3BvcnRIZWlnaHQkLFxuICAgIGl0ZW1TaXplOiB0aGlzLml0ZW1TaXplJCxcbiAgfSkucGlwZShcbiAgICBtYXAoKHt2aWV3cG9ydEhlaWdodCwgaXRlbVNpemV9KSA9PiBNYXRoLmNlaWwodmlld3BvcnRIZWlnaHQgLyBpdGVtU2l6ZSkpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICk7XG4gIHJlYWRvbmx5IHBhZ2VTaXplJCA9IHRoaXMucm93cyQucGlwZShcbiAgICBtYXAoKHJvd3MpID0+IHJvd3MgKiBaICsgUFJFKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICApO1xuXG4gIHJlYWRvbmx5IHN0YXJ0JCA9IGNvbWJpbmVMYXRlc3Qoe1xuICAgIHNjcm9sbFRvcDogdGhpcy5zY3JvbGxUb3AkLFxuICAgIHJvd0hlaWdodDogdGhpcy5pdGVtU2l6ZSQsXG4gICAgcm93czogdGhpcy5yb3dzJCxcbiAgfSkucGlwZShcbiAgICBtYXAoKHsgc2Nyb2xsVG9wLCByb3dIZWlnaHQsIHJvd3MgfSkgPT4ge1xuICAgICAgaWYgKHJvd0hlaWdodCAqIHJvd3MgPT09IDApIHJldHVybiAwO1xuICAgICAgcmV0dXJuIE1hdGguZmxvb3Ioc2Nyb2xsVG9wIC8gKHJvd0hlaWdodCAqIHJvd3MpKTtcbiAgICB9KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICk7XG5cbiAgcmVhZG9ubHkgcHJldkV4dHJhRGF0YSQgPSB0aGlzLnN0YXJ0JC5waXBlKFxuICAgIG1hcCgoc3RhcnQpID0+IE1hdGgubWluKFBSRSwgc3RhcnQpKSxcbiAgKTtcblxuICByZWFkb25seSBzdGFydEluZGV4JCA9IGNvbWJpbmVMYXRlc3Qoe1xuICAgIHN0YXJ0OiB0aGlzLnN0YXJ0JCxcbiAgICByb3dzOiB0aGlzLnJvd3MkLFxuICAgIHByZXZFeHRyYURhdGE6IHRoaXMucHJldkV4dHJhRGF0YSQsXG4gIH0pLnBpcGUoXG4gICAgbWFwKCh7IHN0YXJ0LCByb3dzLCBwcmV2RXh0cmFEYXRhIH0pID0+IHN0YXJ0ICogcm93cyAtIHByZXZFeHRyYURhdGEpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gIClcblxuICByZWFkb25seSBlbmRJbmRleCQgPSBjb21iaW5lTGF0ZXN0KHtcbiAgICBzdGFydEluZGV4OiB0aGlzLnN0YXJ0SW5kZXgkLFxuICAgIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplJCxcbiAgfSkucGlwZShcbiAgICBtYXAoKHsgc3RhcnRJbmRleCwgcGFnZVNpemUgfSkgPT4gc3RhcnRJbmRleCArIHBhZ2VTaXplKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICApO1xuXG4gIHJlYWRvbmx5IHZpc2libGVEYXRhJCA9IGNvbWJpbmVMYXRlc3Qoe1xuICAgIGRhdGE6IHRoaXMuZGF0YSQsXG4gICAgY29sdW1uTmFtZXM6IHRoaXMuY29sdW1uTmFtZXMkLFxuICAgIHZpZXdwb3J0OiB0aGlzLnZpZXdwb3J0JCxcbiAgICBpdGVtU2l6ZTogdGhpcy5pdGVtU2l6ZSQsXG4gICAgc3RhcnRJbmRleDogdGhpcy5zdGFydEluZGV4JCxcbiAgICBlbmRJbmRleDogdGhpcy5lbmRJbmRleCQsXG4gIH0pLnBpcGUoXG4gICAgZmlsdGVyKCh7ZGF0YX0pID0+ICEhZGF0YSksXG4gICAgbWFwKCh7IGRhdGEsIGNvbHVtbk5hbWVzLCB2aWV3cG9ydCwgaXRlbVNpemUsIHN0YXJ0SW5kZXgsIGVuZEluZGV4fSkgPT4ge1xuICAgICAgdGhpcy5zcy5jbGlwYm9hcmQuc2V0RGF0YShkYXRhLCBjb2x1bW5OYW1lcyk7XG4gICAgICBjb25zdCBvZmZzZXQgPSBpdGVtU2l6ZSAqIHN0YXJ0SW5kZXg7XG4gICAgICBpZiAodmlld3BvcnQpIHZpZXdwb3J0LnNldFJlbmRlcmVkQ29udGVudE9mZnNldChvZmZzZXQpO1xuICAgICAgdGhpcy5wbGFjZWhvbGRlckhlaWdodC5zZXQob2Zmc2V0KTtcbiAgICAgIHJldHVybiBkYXRhLnNsaWNlKHN0YXJ0SW5kZXgsIGVuZEluZGV4KTtcbiAgICB9KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgoYSwgYikgPT4gaXNFcXVhbChhLCBiKSksXG4gICk7XG5cbiAgcmVjb25uZWN0KGRhdGFzb3VyY2U6IERhdGFTb3VyY2U8VD4pOiB2b2lkIHtcbiAgICB0aGlzLmRhdGFTb3VyY2Uuc2V0KGRhdGFzb3VyY2UpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHNzOiBTcHJlYWRTaGVldFNlcnZpY2UpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgY29tYmluZUxhdGVzdCh7XG4gICAgICB2aWV3cG9ydDogdGhpcy52aWV3cG9ydCQsXG4gICAgICB0b3RhbENvbnRlbnRTaXplOiB0aGlzLnRvdGFsQ29udGVudFNpemUkLFxuICAgIH0pLnBpcGUoXG4gICAgICBmaWx0ZXIoKHsgdmlld3BvcnQgfSkgPT4gISF2aWV3cG9ydCksXG4gICAgKS5zdWJzY3JpYmUoKHsgdmlld3BvcnQsIHRvdGFsQ29udGVudFNpemUgfSkgPT4ge1xuICAgICAgdmlld3BvcnQuc2V0VG90YWxDb250ZW50U2l6ZSh0b3RhbENvbnRlbnRTaXplKTtcbiAgICB9KTtcbiAgfVxuXG4gIGNvbm5lY3QoY29sbGVjdGlvblZpZXdlcjogQ29sbGVjdGlvblZpZXdlcik6IE9ic2VydmFibGU8VFtdIHwgUmVhZG9ubHlBcnJheTxUPj4ge1xuICAgIHRoaXMuY29sbGVjdGlvblZpZXdlci5zZXQoY29sbGVjdGlvblZpZXdlcik7XG4gICAgcmV0dXJuIHRoaXMudmlzaWJsZURhdGEkLnBpcGUoXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgoYSwgYikgPT4gaXNFcXVhbChhLCBiKSksXG4gICAgKTtcbiAgfVxuXG4gIGRpc2Nvbm5lY3QoKTogdm9pZCB7fVxufVxuXG5leHBvcnQgY2xhc3MgQ3VzdG9tVmlydHVhbFNjcm9sbFN0cmF0ZWd5IGV4dGVuZHMgRml4ZWRTaXplVmlydHVhbFNjcm9sbFN0cmF0ZWd5IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gaXRlbVNpemU6IDUycHgsIG1pbkJ1ZmZlclB4OiA1MjBweCAoMTAgcm93cyksIG1heEJ1ZmZlclB4OiAxMDQwcHggKDIwIHJvd3MpXG4gICAgLy8g44OQ44OD44OV44Kh44KS5aSn44GN44GP44GX44Gm44CB44K544Kv44Ot44O844Or5pmC44Gu44Gh44KJ44Gk44GN44KS5rib44KJ44GZXG4gICAgc3VwZXIoSVRFTV9TSVpFLCBJVEVNX1NJWkUgKiAxMCwgSVRFTV9TSVpFICogMjApO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZE1hdFRyZWVGbGF0dGVuZXI8VD1hbnk+KGdldENoaWxkcmVuOiAobm9kZTogVCkgPT4gVFtdID0gKG5vZGU6IFQpID0+IGdldChub2RlLCAnY2hpbGRyZW4nKSA/PyBbXSkge1xuICByZXR1cm4gbmV3IE1hdFRyZWVGbGF0dGVuZXIoXG4gICAgKG5vZGU6IGFueSwgbGV2ZWw6IG51bWJlcikgPT4ge1xuICAgICAgbm9kZS5sZXZlbCA9IGxldmVsO1xuICAgICAgbm9kZS5pc0V4cGFuZGFibGUgPSAhIWdldENoaWxkcmVuKG5vZGUpLmxlbmd0aDtcbiAgICAgIHJldHVybiBub2RlO1xuICAgICAgLy8gcmV0dXJuICh7XG4gICAgICAvLyAgIC4uLm5vZGUsXG4gICAgICAvLyAgIGxldmVsLFxuICAgICAgLy8gICBpc0V4cGFuZGFibGU6ICEhZ2V0Q2hpbGRyZW4obm9kZSkubGVuZ3RoXG4gICAgICAvLyB9KVxuICAgIH0sXG4gICAgKG5vZGUpID0+IG5vZGUubGV2ZWwsXG4gICAgKG5vZGUpID0+IG5vZGUuaXNFeHBhbmRhYmxlLFxuICAgIChub2RlKSA9PiBnZXRDaGlsZHJlbihub2RlKSxcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkVHJlZUZsYXREYXRhU291cmNlPFQgPSBhbnk+KFxuICB0cmVlQ29udHJvbDogRmxhdFRyZWVDb250cm9sPFQ+LFxuICBkYXRhOiBUW10sXG4gIGdldENoaWxkcmVuOiAobm9kZTogVCkgPT4gVFtdID0gKG5vZGU6IFQpID0+IGdldChub2RlLCAnY2hpbGRyZW4nKSA/PyBbXSxcbiApIHtcbiAgY29uc3QgdHJlZUZsYXR0ZW5lciA9IGJ1aWxkTWF0VHJlZUZsYXR0ZW5lcihnZXRDaGlsZHJlbik7XG4gIHJldHVybiBuZXcgTWF0VHJlZUZsYXREYXRhU291cmNlKHRyZWVDb250cm9sLCB0cmVlRmxhdHRlbmVyLCBkYXRhKTtcbn1cbiJdfQ==","var TableOrganismStore_1;\nimport { __decorate, __metadata } from \"tslib\";\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Directive, computed, effect, inject, input, viewChild } from '@angular/core';\nimport { MatTableDataSource, MatTableModule } from '@angular/material/table';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DomainPipe } from '@ng-atomic/common/pipes/domain';\nimport { ActionsColumnMolecule } from '@ng-atomic/components/molecules/actions-column';\nimport { CheckboxColumnMolecule } from '@ng-atomic/components/molecules/checkbox-column';\nimport { TextColumnMolecule } from '@ng-atomic/components/molecules/text-column';\nimport { _computed, Effect, InjectableComponent, NgAtomicComponent, TokenizedType } from '@ng-atomic/core';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { TreeColumnMolecule } from '@ng-atomic/components/molecules/tree-column';\nimport { computedRawValue } from '@ng-atomic/common/utils';\nimport { NgClass } from '@angular/common';\nimport { FlatTreeControl } from '@angular/cdk/tree';\nimport { CdkDropList, CdkDrag } from '@angular/cdk/drag-drop';\nimport { makeConfig } from '@ng-atomic/common/services/ui';\nimport { IndexTemplateFormBuilder } from '@ng-atomic/common/services/form/_index';\nimport { buildTreeFlatDataSource } from './table.helpers';\nimport { injectDataAccessor } from '@ng-atomic/common/pipes/data-accessor';\nimport { CdkVirtualScrollViewport, ScrollingModule, VIRTUAL_SCROLL_STRATEGY } from '@angular/cdk/scrolling';\nimport { isEqual } from 'lodash-es';\nimport { GridDataTableAutofill, provideSpreadSheetService, SpreadSheetService } from '@ng-atomic/common/services/spreadsheet';\nimport { StylePipe } from '@ng-atomic/common/pipes/style';\nimport { NgAtomicColumnMoleculeStore } from '@ng-atomic/common/directives/molecules/column';\nimport { map, startWith } from 'rxjs';\nimport { derivedAsync } from 'ngxtension/derived-async';\nimport { CustomDataSource, CustomVirtualScrollStrategy } from './table.helpers';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/table\";\nimport * as i2 from \"@angular/cdk/scrolling\";\nvar ActionId;\n(function (ActionId) {\n ActionId[\"CHECKBOX_CLICK\"] = \"[@ng-atomic/components/organisms/checkbox-column] Checkbox Click\";\n ActionId[\"HEADER_CHECKBOX_CLICK\"] = \"[@ng-atomic/components/organisms/checkbox-column] Header Checkbox Click\";\n ActionId[\"HEADER_CLICK\"] = \"[@ng-atomic/components/organisms/table] Header Click\";\n ActionId[\"ROW_DROP\"] = \"[@ng-atomic/components/organisms/table] Row Drop\";\n ActionId[\"COLUMN_WIDTH_CHANGE\"] = \"[@ng-atomic/components/organisms/table] Column Width Change\";\n ActionId[\"AUTOFILL_COMPLETE\"] = \"[@ng-atomic/components/organisms/table] Autofill Complete\";\n})(ActionId || (ActionId = {}));\nfunction __buildColumns(data, itemActions, sort) {\n let _stickyLeft = 0;\n const columns = (data?.columns?.ids ?? [])\n .map(id => ({ ...data?.columns?.map[id], name: id }))\n .filter(column => column.visible)\n .map((column) => {\n const stickyLeft = _stickyLeft;\n _stickyLeft += column.width;\n if (column.name.startsWith('__tree_')) {\n return {\n ...column,\n type: 'tree',\n sort: sort.key === column.name ? sort.order : 'none',\n stickyLeft,\n };\n }\n else if (column.name.startsWith('checkbox')) {\n return {\n ...column,\n type: 'checkbox',\n stickyLeft,\n };\n }\n else if (column.type === 'actions') {\n return {\n ...column,\n actions: column.actions ?? itemActions,\n type: 'actions',\n sort: sort.key === column.name ? sort.order : 'none',\n stickyLeft,\n };\n }\n else {\n return {\n ...column,\n sort: sort.key === column.name ? sort.order : 'none',\n stickyLeft,\n };\n }\n });\n return columns;\n}\nlet TableOrganismStore = class TableOrganismStore extends InjectableComponent {\n constructor() {\n super(...arguments);\n this.config = TableOrganismStore_1.Config.inject();\n this.draggable = input(_computed(() => this.config().draggable));\n this.dataAccessor = injectDataAccessor();\n this.getChildren = computed(() => {\n return (node) => this.dataAccessor(node, this.childrenKey() ?? 'children');\n });\n this.form = input(inject(IndexTemplateFormBuilder).build());\n this.columnFormFieldMap = input({});\n this.itemActions = input([]);\n this.selection = input(new SelectionModel(true, []));\n this.highlight = input(new SelectionModel(true, []));\n this.childrenKey = input(null);\n this.items = input([]);\n this.treeControl = input(new FlatTreeControl(n => n.level, n => n.isExpandable, { trackBy: (n) => n?.id ?? n }));\n this.dataSource = computed(() => {\n const items = this.items();\n const childrenKey = this.childrenKey();\n const getChildren = this.getChildren();\n const control = this.treeControl();\n if (childrenKey) {\n return buildTreeFlatDataSource(control, items, getChildren);\n }\n return new MatTableDataSource(items);\n });\n this.isHidden = input(_computed(() => this.config().isHidden));\n this.getRowClass = input(_computed(() => () => ''));\n this.formValue = computedRawValue(() => this.form());\n this.sort = computed(() => this.formValue()?.sort ?? { key: '', order: 'asc' }, {\n equal: (a, b) => JSON.stringify(a) === JSON.stringify(b),\n });\n this.columns = computed(() => __buildColumns(this.formValue(), this.itemActions(), this.sort()), { equal: isEqual });\n this.columnNames = computed(() => this.columns().map(column => column.name), { equal: isEqual });\n // MEMO(NozomuMiyamoto): treeControlのdataNodesの変更検知がTreeColumnMoleculeからはできないため、TableOrganismStoreで更新を検知している。\n this.isExpandedAll = derivedAsync(() => {\n this.dataSource();\n const control = this.treeControl();\n return control.expansionModel.changed.pipe(startWith(null), map(() => (control.dataNodes ?? []).every(node => control.isExpanded(node))));\n });\n }\n static { TableOrganismStore_1 = this; }\n static { this.ActionId = ActionId; }\n static { this.Config = makeConfig(() => {\n return () => ({\n draggable: true,\n isHidden: (item) => false,\n });\n }, ['components', 'organisms', 'table']); }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: TableOrganismStore, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.5\", type: TableOrganismStore, isStandalone: true, selector: \"organisms-table\", inputs: { draggable: { classPropertyName: \"draggable\", publicName: \"draggable\", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: \"form\", publicName: \"form\", isSignal: true, isRequired: false, transformFunction: null }, columnFormFieldMap: { classPropertyName: \"columnFormFieldMap\", publicName: \"columnFormFieldMap\", isSignal: true, isRequired: false, transformFunction: null }, itemActions: { classPropertyName: \"itemActions\", publicName: \"itemActions\", isSignal: true, isRequired: false, transformFunction: null }, selection: { classPropertyName: \"selection\", publicName: \"selection\", isSignal: true, isRequired: false, transformFunction: null }, highlight: { classPropertyName: \"highlight\", publicName: \"highlight\", isSignal: true, isRequired: false, transformFunction: null }, childrenKey: { classPropertyName: \"childrenKey\", publicName: \"childrenKey\", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: \"items\", publicName: \"items\", isSignal: true, isRequired: false, transformFunction: null }, treeControl: { classPropertyName: \"treeControl\", publicName: \"treeControl\", isSignal: true, isRequired: false, transformFunction: null }, isHidden: { classPropertyName: \"isHidden\", publicName: \"isHidden\", isSignal: true, isRequired: false, transformFunction: null }, getRowClass: { classPropertyName: \"getRowClass\", publicName: \"getRowClass\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [DomainPipe], usesInheritance: true, ngImport: i0 }); }\n};\nTableOrganismStore = TableOrganismStore_1 = __decorate([\n TokenizedType()\n], TableOrganismStore);\nexport { TableOrganismStore };\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: TableOrganismStore, decorators: [{\n type: Directive,\n args: [{\n standalone: true,\n selector: 'organisms-table',\n providers: [DomainPipe],\n }]\n }] });\nexport class TableOrganism extends NgAtomicComponent {\n static { this.ActionId = ActionId; }\n constructor() {\n super();\n this.store = inject(TableOrganismStore);\n this.ss = inject(SpreadSheetService);\n this.trackByFunc = (index, item) => item;\n this.placeholderWhen = (index, _) => index == 0;\n this.viewport = viewChild(CdkVirtualScrollViewport);\n this.dataSource = new CustomDataSource(this.ss);\n this.cd = inject(ChangeDetectorRef);\n effect(() => { this.dataSource.columnNames.set(this.store.columnNames()); });\n effect(() => {\n const dataSource = this.store.dataSource();\n this.dataSource.reconnect(dataSource);\n // 既存の購読を解除\n if (this.dataNodesSubscription) {\n this.dataNodesSubscription.unsubscribe();\n this.dataNodesSubscription = undefined;\n }\n // TreeFlatDataSourceの場合、dataNodesを更新(expandAll/collapseAll用)\n if (this.store.childrenKey() && dataSource) {\n const flattenedData = dataSource._flattenedData;\n if (flattenedData) {\n // BehaviorSubjectを購読して、値が変更されたときにdataNodesを更新\n this.dataNodesSubscription = flattenedData.subscribe((nodes) => {\n if (nodes && nodes.length > 0) {\n this.store.treeControl().dataNodes = nodes;\n }\n });\n }\n }\n });\n }\n ngOnDestroy() {\n if (this.dataNodesSubscription) {\n this.dataNodesSubscription.unsubscribe();\n }\n }\n ngAfterViewInit() {\n this.updateViewPort();\n }\n updateViewPort() {\n this.dataSource.viewport.set(this.viewport());\n this.viewport().checkViewportSize();\n }\n onCheckboxClick(item) {\n this.dispatch({ id: ActionId.CHECKBOX_CLICK, payload: item });\n }\n onHeaderCheckboxClick(item) {\n this.dispatch({ id: ActionId.HEADER_CHECKBOX_CLICK });\n }\n onChangeWidth(payload) {\n this.dispatch({\n id: TableOrganismStore.ActionId.COLUMN_WIDTH_CHANGE,\n payload: { columnName: payload.name, width: payload.width }\n });\n }\n onHeaderClick(column) {\n this.dispatch({ id: ActionId.HEADER_CLICK, payload: column });\n }\n onDrop(event) {\n const control = this.store.treeControl();\n const nodes = control.dataNodes.filter(node => node.level === 0);\n const nodes_ = getDisplayedNodes(nodes, control);\n const draggedNode = nodes_[event.previousIndex];\n const droppedNode = nodes_[event.currentIndex];\n const items = flatItems(this.store.items(), this.store.childrenKey());\n this.dispatch({\n id: ActionId.ROW_DROP,\n payload: {\n previousIndex: nodes_.findIndex(node => node === event.item.data),\n currentIndex: event.currentIndex,\n dragged: items.find(item => item.id === draggedNode.id),\n dropped: items.find(item => item.id === droppedNode.id),\n }\n });\n }\n // オートフィル完了イベントを受け取る(ディレクティブから)\n onAutofillComplete(payload) {\n this.dispatch({ id: ActionId.AUTOFILL_COMPLETE, payload });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: TableOrganism, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.5\", type: TableOrganism, isStandalone: true, selector: \"organisms-table\", host: { attributes: { \"tabindex\": \"0\" }, listeners: { \"keydown\": \"ss.handleKeyDown($event)\" }, classAttribute: \"organism\" }, providers: [\n provideSpreadSheetService(),\n { provide: VIRTUAL_SCROLL_STRATEGY, useClass: CustomVirtualScrollStrategy },\n ], viewQueries: [{ propertyName: \"viewport\", first: true, predicate: CdkVirtualScrollViewport, descendants: true, isSignal: true }], usesInheritance: true, hostDirectives: [{ directive: TableOrganismStore, inputs: [\"columnFormFieldMap\", \"columnFormFieldMap\", \"draggable\", \"draggable\", \"form\", \"form\", \"itemActions\", \"itemActions\", \"selection\", \"selection\", \"items\", \"items\", \"childrenKey\", \"childrenKey\", \"highlight\", \"highlight\", \"treeControl\", \"treeControl\", \"isHidden\", \"isHidden\", \"getRowClass\", \"getRowClass\"] }], ngImport: i0, template: `\n @let component = '@ng-atomic/components/organisms/table';\n <cdk-virtual-scroll-viewport>\n <table\n mat-table\n matSort\n matSortDisableClear\n matSortDirection=\"desc\"\n [dataSource]=\"dataSource\"\n cdkDropList\n (cdkDropListDropped)=\"onDrop($event)\"\n [cdkDropListDisabled]=\"!store.draggable()\"\n [multiTemplateDataRows]=\"true\"\n gridDataTableAutofill\n (autofillComplete)=\"onAutofillComplete($event)\"\n >\n <tbody>\n @for (column of store.columns(); track column.name; let index = $index) {\n @switch (column.type) {\n @case ('checkbox') {\n <molecules-checkbox-column\n [index]=\"index\"\n [column]=\"column\"\n [selection]=\"store.selection()\"\n [isHidden]=\"store.isHidden()\"\n (action)=\"dispatch($event)\"\n />\n }\n @case ('actions') {\n <molecules-actions-column\n [index]=\"index\"\n [column]=\"column\"\n [itemActions]=\"column.actions\"\n (action)=\"dispatch($event)\"\n />\n }\n @case('tree') {\n <molecules-tree-column\n [index]=\"index\"\n [column]=\"column\"\n [treeControl]=\"store.treeControl()\"\n [isExpandedAll]=\"store.isExpandedAll()\"\n [formFieldMap]=\"store.columnFormFieldMap()\"\n (headerClick)=\"onHeaderClick(column.name)\"\n (action)=\"dispatch($event)\"\n />\n }\n @default {\n <molecules-text-column\n [index]=\"index\"\n [formFieldMap]=\"store.columnFormFieldMap()\"\n [column]=\"column\"\n (headerClick)=\"onHeaderClick(column.name)\"\n (action)=\"dispatch($event)\"\n />\n }\n }\n }\n <tr\n *matHeaderRowDef=\"store.columnNames(); sticky: true\"\n mat-header-row\n [style]=\"null | style:{ component, selector: 'header-row' }\"\n ></tr>\n <tr\n [style.height.px]=\"dataSource.placeholderHeight()\"\n mat-row\n *matRowDef=\"let item; let index = index; columns: [];\n when: placeholderWhen\"\n ></tr>\n <tr\n *matRowDef=\"let item; let index = index; columns: store.columnNames();\"\n mat-row\n [ngClass]=\"store.getRowClass()(item)\"\n [style]=\"null | style:{ item, index, component, selector: 'row' }\"\n [cdkDrag]\n [cdkDragDisabled]=\"!store.draggable()\"\n ></tr>\n <div class=\"mat-row\" *matNoDataRow>No Data</div>\n </tbody>\n </table>\n </cdk-virtual-scroll-viewport>\n `, isInline: true, styles: [\":host{--width: 100%;--width-SCOPED-IN-smart-table-3ylE: var(--width);--column-vertical-padding: 4px;--column-vertical-padding-SCOPED-IN-smart-table-3ylE: var(--column-vertical-padding);--surface-color: #f0f0f0;--surface-color-SCOPED-IN-smart-table-3ylE: var(--surface-color);--on-surface-color: #000;--on-surface-color-SCOPED-IN-smart-table-3ylE: var(--on-surface-color);--background-color: #f0f0f0;--background-color-SCOPED-IN-smart-table-3ylE: var(--background-color);--on-background-color: #000;--on-background-color-SCOPED-IN-smart-table-3ylE: var(--on-background-color);--vertical-padding: 16px;--vertical-padding-SCOPED-IN-smart-table-3ylE: var(--vertical-padding)}.cdk-drag-preview{display:table;background-color:#fff}.cdk-drag-placeholder{opacity:0}:host{position:relative;display:block;width:100%;height:100%;overflow:hidden}:host table{min-width:100%;min-height:100%;background-color:var(--surface-color-SCOPED-IN-smart-table-3ylE);color:var(--on-surface-color-SCOPED-IN-smart-table-3ylE);--mat-table-row-item-label-text-color: var(--on-surface-color);--mat-table-header-headline-color: var(--on-surface-color)}:host table .nowrap{width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host table ::ng-deep th,:host table ::ng-deep td{padding:0 var(--column-vertical-padding-SCOPED-IN-smart-table-3ylE);box-sizing:border-box}:host table ::ng-deep th:first-child,:host table ::ng-deep td:first-child{padding-left:var(--vertical-padding-SCOPED-IN-smart-table-3ylE)}:host table ::ng-deep th:last-child,:host table ::ng-deep td:last-child{padding-right:var(--vertical-padding-SCOPED-IN-smart-table-3ylE)}:host table ::ng-deep tr.highlight{background-color:#f0f0f0;transition:background-color .5s}:host .no-data-message{display:flex;justify-content:flex-start;align-items:center;width:calc(100% - 32px);height:3em;padding:0 16px}:host table{border-collapse:collapse;-webkit-user-select:none;user-select:none}:host cdk-virtual-scroll-viewport{width:100%;height:100%;display:block;overflow:auto}:host cdk-virtual-scroll-viewport ::ng-deep .cdk-virtual-scroll-content-wrapper{transform:translateY(0)!important;min-height:100%;min-width:100%;width:auto}:host cdk-virtual-scroll-viewport ::ng-deep .cdk-virtual-scroll-spacer{width:1px;transform:translateZ(0)}:host.autofill-active{-webkit-user-select:none;user-select:none}:host.autofill-active td{pointer-events:none}:host.autofill-active td.autofill-source{pointer-events:auto}:host ::ng-deep td.autofill-preview{background-color:#2196f31a!important;border:1px dashed #2196F3!important}:host ::ng-deep td.autofill-preview:after{content:\\\"\\\";position:absolute;inset:0;background-color:#2196f30d;pointer-events:none;z-index:1}\\n\"], dependencies: [{ kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"ngmodule\", type: MatTableModule }, { kind: \"component\", type: i1.MatTable, selector: \"mat-table, table[mat-table]\", exportAs: [\"matTable\"] }, { kind: \"directive\", type: i1.MatHeaderRowDef, selector: \"[matHeaderRowDef]\", inputs: [\"matHeaderRowDef\", \"matHeaderRowDefSticky\"] }, { kind: \"directive\", type: i1.MatRowDef, selector: \"[matRowDef]\", inputs: [\"matRowDefColumns\", \"matRowDefWhen\"] }, { kind: \"component\", type: i1.MatHeaderRow, selector: \"mat-header-row, tr[mat-header-row]\", exportAs: [\"matHeaderRow\"] }, { kind: \"component\", type: i1.MatRow, selector: \"mat-row, tr[mat-row]\", exportAs: [\"matRow\"] }, { kind: \"directive\", type: i1.MatNoDataRow, selector: \"ng-template[matNoDataRow]\" }, { kind: \"ngmodule\", type: MatCheckboxModule }, { kind: \"ngmodule\", type: MatMenuModule }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: ActionsColumnMolecule, selector: \"molecules-actions-column\" }, { kind: \"component\", type: CheckboxColumnMolecule, selector: \"molecules-checkbox-column\" }, { kind: \"component\", type: TextColumnMolecule, selector: \"molecules-text-column\", inputs: [\"formFieldMap\"], outputs: [\"headerClick\"] }, { kind: \"component\", type: TreeColumnMolecule, selector: \"molecules-tree-column\", outputs: [\"headerClick\", \"handleMouseDown\"] }, { kind: \"directive\", type: CdkDropList, selector: \"[cdkDropList], cdk-drop-list\", inputs: [\"cdkDropListConnectedTo\", \"cdkDropListData\", \"cdkDropListOrientation\", \"id\", \"cdkDropListLockAxis\", \"cdkDropListDisabled\", \"cdkDropListSortingDisabled\", \"cdkDropListEnterPredicate\", \"cdkDropListSortPredicate\", \"cdkDropListAutoScrollDisabled\", \"cdkDropListAutoScrollStep\", \"cdkDropListElementContainer\"], outputs: [\"cdkDropListDropped\", \"cdkDropListEntered\", \"cdkDropListExited\", \"cdkDropListSorted\"], exportAs: [\"cdkDropList\"] }, { kind: \"directive\", type: CdkDrag, selector: \"[cdkDrag]\", inputs: [\"cdkDragData\", \"cdkDragLockAxis\", \"cdkDragRootElement\", \"cdkDragBoundary\", \"cdkDragStartDelay\", \"cdkDragFreeDragPosition\", \"cdkDragDisabled\", \"cdkDragConstrainPosition\", \"cdkDragPreviewClass\", \"cdkDragPreviewContainer\", \"cdkDragScale\"], outputs: [\"cdkDragStarted\", \"cdkDragReleased\", \"cdkDragEnded\", \"cdkDragEntered\", \"cdkDragExited\", \"cdkDragDropped\", \"cdkDragMoved\"], exportAs: [\"cdkDrag\"] }, { kind: \"ngmodule\", type: ScrollingModule }, { kind: \"component\", type: i2.CdkVirtualScrollViewport, selector: \"cdk-virtual-scroll-viewport\", inputs: [\"orientation\", \"appendOnly\"], outputs: [\"scrolledIndexChange\"] }, { kind: \"pipe\", type: StylePipe, name: \"style\" }, { kind: \"directive\", type: GridDataTableAutofill, selector: \"[gridDataTableAutofill]\", outputs: [\"autofillComplete\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\n__decorate([\n Effect(CheckboxColumnMolecule.ActionId.CHECKBOX_CLICK),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], TableOrganism.prototype, \"onCheckboxClick\", null);\n__decorate([\n Effect(CheckboxColumnMolecule.ActionId.HEADER_CHECKBOX_CLICK),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], TableOrganism.prototype, \"onHeaderCheckboxClick\", null);\n__decorate([\n Effect(NgAtomicColumnMoleculeStore._ActionId.CHANGE_WIDTH),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], TableOrganism.prototype, \"onChangeWidth\", null);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: TableOrganism, decorators: [{\n type: Component,\n args: [{ selector: 'organisms-table', imports: [\n NgClass,\n MatTableModule,\n MatCheckboxModule,\n MatMenuModule,\n MatButtonModule,\n MatIconModule,\n ActionsColumnMolecule,\n CheckboxColumnMolecule,\n TextColumnMolecule,\n TreeColumnMolecule,\n CdkDropList,\n CdkDrag,\n ScrollingModule,\n CdkVirtualScrollViewport,\n StylePipe,\n GridDataTableAutofill\n ], template: `\n @let component = '@ng-atomic/components/organisms/table';\n <cdk-virtual-scroll-viewport>\n <table\n mat-table\n matSort\n matSortDisableClear\n matSortDirection=\"desc\"\n [dataSource]=\"dataSource\"\n cdkDropList\n (cdkDropListDropped)=\"onDrop($event)\"\n [cdkDropListDisabled]=\"!store.draggable()\"\n [multiTemplateDataRows]=\"true\"\n gridDataTableAutofill\n (autofillComplete)=\"onAutofillComplete($event)\"\n >\n <tbody>\n @for (column of store.columns(); track column.name; let index = $index) {\n @switch (column.type) {\n @case ('checkbox') {\n <molecules-checkbox-column\n [index]=\"index\"\n [column]=\"column\"\n [selection]=\"store.selection()\"\n [isHidden]=\"store.isHidden()\"\n (action)=\"dispatch($event)\"\n />\n }\n @case ('actions') {\n <molecules-actions-column\n [index]=\"index\"\n [column]=\"column\"\n [itemActions]=\"column.actions\"\n (action)=\"dispatch($event)\"\n />\n }\n @case('tree') {\n <molecules-tree-column\n [index]=\"index\"\n [column]=\"column\"\n [treeControl]=\"store.treeControl()\"\n [isExpandedAll]=\"store.isExpandedAll()\"\n [formFieldMap]=\"store.columnFormFieldMap()\"\n (headerClick)=\"onHeaderClick(column.name)\"\n (action)=\"dispatch($event)\"\n />\n }\n @default {\n <molecules-text-column\n [index]=\"index\"\n [formFieldMap]=\"store.columnFormFieldMap()\"\n [column]=\"column\"\n (headerClick)=\"onHeaderClick(column.name)\"\n (action)=\"dispatch($event)\"\n />\n }\n }\n }\n <tr\n *matHeaderRowDef=\"store.columnNames(); sticky: true\"\n mat-header-row\n [style]=\"null | style:{ component, selector: 'header-row' }\"\n ></tr>\n <tr\n [style.height.px]=\"dataSource.placeholderHeight()\"\n mat-row\n *matRowDef=\"let item; let index = index; columns: [];\n when: placeholderWhen\"\n ></tr>\n <tr\n *matRowDef=\"let item; let index = index; columns: store.columnNames();\"\n mat-row\n [ngClass]=\"store.getRowClass()(item)\"\n [style]=\"null | style:{ item, index, component, selector: 'row' }\"\n [cdkDrag]\n [cdkDragDisabled]=\"!store.draggable()\"\n ></tr>\n <div class=\"mat-row\" *matNoDataRow>No Data</div>\n </tbody>\n </table>\n </cdk-virtual-scroll-viewport>\n `, changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [\n {\n directive: TableOrganismStore,\n inputs: [\n 'columnFormFieldMap',\n 'draggable',\n 'form',\n 'itemActions',\n 'selection',\n 'items',\n 'childrenKey',\n 'highlight',\n 'treeControl',\n 'isHidden',\n 'getRowClass',\n ],\n },\n ], host: {\n class: 'organism',\n 'tabindex': '0',\n '(keydown)': 'ss.handleKeyDown($event)',\n }, providers: [\n provideSpreadSheetService(),\n { provide: VIRTUAL_SCROLL_STRATEGY, useClass: CustomVirtualScrollStrategy },\n ], styles: [\":host{--width: 100%;--width-SCOPED-IN-smart-table-3ylE: var(--width);--column-vertical-padding: 4px;--column-vertical-padding-SCOPED-IN-smart-table-3ylE: var(--column-vertical-padding);--surface-color: #f0f0f0;--surface-color-SCOPED-IN-smart-table-3ylE: var(--surface-color);--on-surface-color: #000;--on-surface-color-SCOPED-IN-smart-table-3ylE: var(--on-surface-color);--background-color: #f0f0f0;--background-color-SCOPED-IN-smart-table-3ylE: var(--background-color);--on-background-color: #000;--on-background-color-SCOPED-IN-smart-table-3ylE: var(--on-background-color);--vertical-padding: 16px;--vertical-padding-SCOPED-IN-smart-table-3ylE: var(--vertical-padding)}.cdk-drag-preview{display:table;background-color:#fff}.cdk-drag-placeholder{opacity:0}:host{position:relative;display:block;width:100%;height:100%;overflow:hidden}:host table{min-width:100%;min-height:100%;background-color:var(--surface-color-SCOPED-IN-smart-table-3ylE);color:var(--on-surface-color-SCOPED-IN-smart-table-3ylE);--mat-table-row-item-label-text-color: var(--on-surface-color);--mat-table-header-headline-color: var(--on-surface-color)}:host table .nowrap{width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host table ::ng-deep th,:host table ::ng-deep td{padding:0 var(--column-vertical-padding-SCOPED-IN-smart-table-3ylE);box-sizing:border-box}:host table ::ng-deep th:first-child,:host table ::ng-deep td:first-child{padding-left:var(--vertical-padding-SCOPED-IN-smart-table-3ylE)}:host table ::ng-deep th:last-child,:host table ::ng-deep td:last-child{padding-right:var(--vertical-padding-SCOPED-IN-smart-table-3ylE)}:host table ::ng-deep tr.highlight{background-color:#f0f0f0;transition:background-color .5s}:host .no-data-message{display:flex;justify-content:flex-start;align-items:center;width:calc(100% - 32px);height:3em;padding:0 16px}:host table{border-collapse:collapse;-webkit-user-select:none;user-select:none}:host cdk-virtual-scroll-viewport{width:100%;height:100%;display:block;overflow:auto}:host cdk-virtual-scroll-viewport ::ng-deep .cdk-virtual-scroll-content-wrapper{transform:translateY(0)!important;min-height:100%;min-width:100%;width:auto}:host cdk-virtual-scroll-viewport ::ng-deep .cdk-virtual-scroll-spacer{width:1px;transform:translateZ(0)}:host.autofill-active{-webkit-user-select:none;user-select:none}:host.autofill-active td{pointer-events:none}:host.autofill-active td.autofill-source{pointer-events:auto}:host ::ng-deep td.autofill-preview{background-color:#2196f31a!important;border:1px dashed #2196F3!important}:host ::ng-deep td.autofill-preview:after{content:\\\"\\\";position:absolute;inset:0;background-color:#2196f30d;pointer-events:none;z-index:1}\\n\"] }]\n }], ctorParameters: () => [], propDecorators: { onCheckboxClick: [], onHeaderCheckboxClick: [], onChangeWidth: [] } });\nfunction getDisplayedNodes(nodes, control) {\n const result = [];\n for (const node of nodes) {\n result.push(node);\n if (control.isExpanded(node)) {\n result.push(...getDisplayedNodes(node.children, control));\n }\n }\n return result;\n}\nexport function flatItems(items, key = 'children') {\n const result = [];\n for (const item of items) {\n result.push(item);\n if (item[key]) {\n result.push(...flatItems(item[key], key));\n }\n }\n return result;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUub3JnYW5pc20uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbXBvbmVudHMvc3JjL2xpYi9vcmdhbmlzbXMvdGFibGUvdGFibGUub3JnYW5pc20udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3hKLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDdkYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDekYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDakYsT0FBTyxFQUFFLFNBQVMsRUFBVyxNQUFNLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2pG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SUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEIsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDN0IsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUM1RCxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFJLEtBQVUsRUFBRSxHQUFHLEdBQUcsVUFBVTtJQUN2RCxNQUFNLE1BQU0sR0FBUSxFQUFFLENBQUM7SUFDdkIsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUN6QixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xCLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDZCxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQy9DLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBEaXJlY3RpdmUsIGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCwgaW5wdXQsIHZpZXdDaGlsZCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2UsIE1hdFRhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgRG9tYWluUGlwZSB9IGZyb20gJ0BuZy1hdG9taWMvY29tbW9uL3BpcGVzL2RvbWFpbic7XG5pbXBvcnQgeyBBY3Rpb25zQ29sdW1uTW9sZWN1bGUgfSBmcm9tICdAbmctYXRvbWljL2NvbXBvbmVudHMvbW9sZWN1bGVzL2FjdGlvbnMtY29sdW1uJztcbmltcG9ydCB7IENoZWNrYm94Q29sdW1uTW9sZWN1bGUgfSBmcm9tICdAbmctYXRvbWljL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NoZWNrYm94LWNvbHVtbic7XG5pbXBvcnQgeyBUZXh0Q29sdW1uTW9sZWN1bGUgfSBmcm9tICdAbmctYXRvbWljL2NvbXBvbmVudHMvbW9sZWN1bGVzL3RleHQtY29sdW1uJztcbmltcG9ydCB7IF9jb21wdXRlZCwgQWN0aW9ucywgRWZmZWN0LCBJbmplY3RhYmxlQ29tcG9uZW50LCBOZ0F0b21pY0NvbXBvbmVudCwgVG9rZW5pemVkVHlwZSB9IGZyb20gJ0BuZy1hdG9taWMvY29yZSc7XG5pbXBvcnQgeyBTZWxlY3Rpb25Nb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgeyBUcmVlQ29sdW1uTW9sZWN1bGUgfSBmcm9tICdAbmctYXRvbWljL2NvbXBvbmVudHMvbW9sZWN1bGVzL3RyZWUtY29sdW1uJztcbmltcG9ydCB7IGNvbXB1dGVkUmF3VmFsdWUgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi91dGlscyc7XG5pbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZsYXRUcmVlQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90cmVlJztcbmltcG9ydCB7IENka0RyYWdEcm9wLCBDZGtEcm9wTGlzdCwgQ2RrRHJhZyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgbWFrZUNvbmZpZyB9IGZyb20gJ0BuZy1hdG9taWMvY29tbW9uL3NlcnZpY2VzL3VpJztcbmltcG9ydCB7IEluZGV4VGVtcGxhdGVGb3JtQnVpbGRlciB9IGZyb20gJ0BuZy1hdG9taWMvY29tbW9uL3NlcnZpY2VzL2Zvcm0vX2luZGV4JztcbmltcG9ydCB7IGJ1aWxkVHJlZUZsYXREYXRhU291cmNlIH0gZnJvbSAnLi90YWJsZS5oZWxwZXJzJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgaW5qZWN0RGF0YUFjY2Vzc29yIH0gZnJvbSAnQG5nLWF0b21pYy9jb21tb24vcGlwZXMvZGF0YS1hY2Nlc3Nvcic7XG5pbXBvcnQgeyBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQsIFNjcm9sbGluZ01vZHVsZSwgVklSVFVBTF9TQ1JPTExfU1RSQVRFR1kgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcbmltcG9ydCB7IGlzRXF1YWwgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgR3JpZERhdGFUYWJsZUF1dG9maWxsLCBwcm92aWRlU3ByZWFkU2hlZXRTZXJ2aWNlLCBTcHJlYWRTaGVldFNlcnZpY2UgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi9zZXJ2aWNlcy9zcHJlYWRzaGVldCc7XG5pbXBvcnQgeyBTdHlsZVBpcGUgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi9waXBlcy9zdHlsZSc7XG5pbXBvcnQgeyBDb2x1bW4gfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi9tb2RlbHMnO1xuaW1wb3J0IHsgTmdBdG9taWNDb2x1bW5Nb2xlY3VsZVN0b3JlIH0gZnJvbSAnQG5nLWF0b21pYy9jb21tb24vZGlyZWN0aXZlcy9tb2xlY3VsZXMvY29sdW1uJztcbmltcG9ydCB7IG1hcCwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZXJpdmVkQXN5bmMgfSBmcm9tICduZ3h0ZW5zaW9uL2Rlcml2ZWQtYXN5bmMnO1xuaW1wb3J0IHsgQ3VzdG9tRGF0YVNvdXJjZSwgQ3VzdG9tVmlydHVhbFNjcm9sbFN0cmF0ZWd5IH0gZnJvbSAnLi90YWJsZS5oZWxwZXJzJztcblxuZW51bSBBY3Rpb25JZCB7XG4gIENIRUNLQk9YX0NMSUNLID0gJ1tAbmctYXRvbWljL2NvbXBvbmVudHMvb3JnYW5pc21zL2NoZWNrYm94LWNvbHVtbl0gQ2hlY2tib3ggQ2xpY2snLFxuICBIRUFERVJfQ0hFQ0tCT1hfQ0xJQ0sgPSAnW0BuZy1hdG9taWMvY29tcG9uZW50cy9vcmdhbmlzbXMvY2hlY2tib3gtY29sdW1uXSBIZWFkZXIgQ2hlY2tib3ggQ2xpY2snLFxuICBIRUFERVJfQ0xJQ0sgPSAnW0BuZy1hdG9taWMvY29tcG9uZW50cy9vcmdhbmlzbXMvdGFibGVdIEhlYWRlciBDbGljaycsXG4gIFJPV19EUk9QID0gJ1tAbmctYXRvbWljL2NvbXBvbmVudHMvb3JnYW5pc21zL3RhYmxlXSBSb3cgRHJvcCcsXG4gIENPTFVNTl9XSURUSF9DSEFOR0UgPSAnW0BuZy1hdG9taWMvY29tcG9uZW50cy9vcmdhbmlzbXMvdGFibGVdIENvbHVtbiBXaWR0aCBDaGFuZ2UnLFxuICBBVVRPRklMTF9DT01QTEVURSA9ICdbQG5nLWF0b21pYy9jb21wb25lbnRzL29yZ2FuaXNtcy90YWJsZV0gQXV0b2ZpbGwgQ29tcGxldGUnLCAvLyDjg4fjgqPjg6zjgq/jg4bjgqPjg5bjgYvjgonnmbrooYzjgZXjgozjgotcbn1cblxuZnVuY3Rpb24gX19idWlsZENvbHVtbnMoZGF0YToge1xuICBjb2x1bW5zPzoge1xuICAgIG1hcD86IGFueSxcbiAgICBpZHM/OiBzdHJpbmdbXSxcbiAgfSxcbn0sIGl0ZW1BY3Rpb25zOiBBY3Rpb25zLCBzb3J0OiBhbnkpIHtcbiAgbGV0IF9zdGlja3lMZWZ0ID0gMDtcbiAgY29uc3QgY29sdW1ucyA9IChkYXRhPy5jb2x1bW5zPy5pZHMgPz8gW10pXG4gICAgLm1hcChpZCA9PiAoeyAuLi5kYXRhPy5jb2x1bW5zPy5tYXBbaWRdLCBuYW1lOiBpZCB9KSBhcyBDb2x1bW4pXG4gICAgLmZpbHRlcihjb2x1bW4gPT4gY29sdW1uLnZpc2libGUpXG4gICAgLm1hcCgoY29sdW1uKSA9PiB7XG4gICAgICBjb25zdCBzdGlja3lMZWZ0ID0gX3N0aWNreUxlZnQ7XG4gICAgICBfc3RpY2t5TGVmdCArPSBjb2x1bW4ud2lkdGg7XG4gICAgICBpZiAoY29sdW1uLm5hbWUuc3RhcnRzV2l0aCgnX190cmVlXycpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uY29sdW1uLFxuICAgICAgICAgIHR5cGU6ICd0cmVlJyxcbiAgICAgICAgICBzb3J0OiBzb3J0LmtleSA9PT0gY29sdW1uLm5hbWUgPyBzb3J0Lm9yZGVyIDogJ25vbmUnLFxuICAgICAgICAgIHN0aWNreUxlZnQsXG4gICAgICAgIH07XG4gICAgICB9IGVsc2UgaWYgKGNvbHVtbi5uYW1lLnN0YXJ0c1dpdGgoJ2NoZWNrYm94JykpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5jb2x1bW4sXG4gICAgICAgICAgdHlwZTogJ2NoZWNrYm94JyxcbiAgICAgICAgICBzdGlja3lMZWZ0LFxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIGlmIChjb2x1bW4udHlwZSA9PT0gJ2FjdGlvbnMnKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uY29sdW1uLFxuICAgICAgICAgIGFjdGlvbnM6IGNvbHVtbi5hY3Rpb25zID8/IGl0ZW1BY3Rpb25zLFxuICAgICAgICAgIHR5cGU6ICdhY3Rpb25zJyxcbiAgICAgICAgICBzb3J0OiBzb3J0LmtleSA9PT0gY29sdW1uLm5hbWUgPyBzb3J0Lm9yZGVyIDogJ25vbmUnLFxuICAgICAgICAgIHN0aWNreUxlZnQsXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uY29sdW1uLFxuICAgICAgICAgIHNvcnQ6IHNvcnQua2V5ID09PSBjb2x1bW4ubmFtZSA/IHNvcnQub3JkZXIgOiAnbm9uZScsXG4gICAgICAgICAgc3RpY2t5TGVmdCxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgIH0pO1xuICByZXR1cm4gY29sdW1ucztcbn1cblxuQFRva2VuaXplZFR5cGUoKVxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnb3JnYW5pc21zLXRhYmxlJyxcbiAgcHJvdmlkZXJzOiBbRG9tYWluUGlwZV0sXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlT3JnYW5pc21TdG9yZTxDLCBUPiBleHRlbmRzIEluamVjdGFibGVDb21wb25lbnQ8Qz4ge1xuICBzdGF0aWMgcmVhZG9ubHkgQWN0aW9uSWQgPSBBY3Rpb25JZDtcbiAgc3RhdGljIHJlYWRvbmx5IENvbmZpZyA9IG1ha2VDb25maWcoKCkgPT4ge1xuICAgIHJldHVybiAoKSA9PiAoe1xuICAgICAgZHJhZ2dhYmxlOiB0cnVlLFxuICAgICAgaXNIaWRkZW46IChpdGVtOiBhbnkpID0+IGZhbHNlLFxuICAgIH0pO1xuICB9LCBbJ2NvbXBvbmVudHMnLCAnb3JnYW5pc21zJywgJ3RhYmxlJ10pO1xuXG4gIHJlYWRvbmx5IGNvbmZpZyA9IFRhYmxlT3JnYW5pc21TdG9yZS5Db25maWcuaW5qZWN0KCk7XG4gIHJlYWRvbmx5IGRyYWdnYWJsZSA9IGlucHV0KF9jb21wdXRlZCgoKSA9PiB0aGlzLmNvbmZpZygpLmRyYWdnYWJsZSkpO1xuICByZWFkb25seSBkYXRhQWNjZXNzb3IgPSBpbmplY3REYXRhQWNjZXNzb3IoKTtcbiAgcmVhZG9ubHkgZ2V0Q2hpbGRyZW4gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIChub2RlOiBUKSA9PiB0aGlzLmRhdGFBY2Nlc3Nvcihub2RlLCB0aGlzLmNoaWxkcmVuS2V5KCkgPz8gJ2NoaWxkcmVuJyk7XG4gIH0pO1xuICByZWFkb25seSBmb3JtID0gaW5wdXQoaW5qZWN0KEluZGV4VGVtcGxhdGVGb3JtQnVpbGRlcikuYnVpbGQoKSk7XG4gIHJlYWRvbmx5IGNvbHVtbkZvcm1GaWVsZE1hcCA9IGlucHV0KHt9KTtcbiAgcmVhZG9ubHkgaXRlbUFjdGlvbnMgPSBpbnB1dDxBY3Rpb25zPihbXSk7XG4gIHJlYWRvbmx5IHNlbGVjdGlvbiA9IGlucHV0KG5ldyBTZWxlY3Rpb25Nb2RlbDxzdHJpbmc+KHRydWUsIFtdKSk7XG4gIHJlYWRvbmx5IGhpZ2hsaWdodCA9IGlucHV0KG5ldyBTZWxlY3Rpb25Nb2RlbDxzdHJpbmc+KHRydWUsIFtdKSk7XG4gIHJlYWRvbmx5IGNoaWxkcmVuS2V5ID0gaW5wdXQ8c3RyaW5nPihudWxsKTtcbiAgcmVhZG9ubHkgaXRlbXMgPSBpbnB1dDxUW10+KFtdKTtcbiAgcmVhZG9ubHkgdHJlZUNvbnRyb2wgPSBpbnB1dChuZXcgRmxhdFRyZWVDb250cm9sPGFueT4obiA9PiBuLmxldmVsLCBuID0+IG4uaXNFeHBhbmRhYmxlLCB7IHRyYWNrQnk6IChuOiBhbnkpID0+IG4/LmlkID8/IG4gfSkpO1xuICByZWFkb25seSBkYXRhU291cmNlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5pdGVtcygpO1xuICAgIGNvbnN0IGNoaWxkcmVuS2V5ID0gdGhpcy5jaGlsZHJlbktleSgpO1xuICAgIGNvbnN0IGdldENoaWxkcmVuID0gdGhpcy5nZXRDaGlsZHJlbigpO1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLnRyZWVDb250cm9sKCk7XG4gICAgaWYgKGNoaWxkcmVuS2V5KSB7XG4gICAgICByZXR1cm4gYnVpbGRUcmVlRmxhdERhdGFTb3VyY2UoY29udHJvbCwgaXRlbXMsIGdldENoaWxkcmVuKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBNYXRUYWJsZURhdGFTb3VyY2U8VD4oaXRlbXMpO1xuICB9KTtcbiAgcmVhZG9ubHkgaXNIaWRkZW4gPSBpbnB1dChfY29tcHV0ZWQoKCkgPT4gdGhpcy5jb25maWcoKS5pc0hpZGRlbikpO1xuICByZWFkb25seSBnZXRSb3dDbGFzcyA9IGlucHV0PChpdGVtOiBhbnkpID0+IHN0cmluZz4oX2NvbXB1dGVkKCgpID0+ICgpID0+ICcnKSk7XG4gIHJlYWRvbmx5IGZvcm1WYWx1ZSA9IGNvbXB1dGVkUmF3VmFsdWUoKCkgPT4gdGhpcy5mb3JtKCkpO1xuICByZWFkb25seSBzb3J0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5mb3JtVmFsdWUoKT8uc29ydCA/PyB7IGtleTogJycsIG9yZGVyOiAnYXNjJyB9LCB7XG4gICAgZXF1YWw6IChhLCBiKSA9PiBKU09OLnN0cmluZ2lmeShhKSA9PT0gSlNPTi5zdHJpbmdpZnkoYiksXG4gIH0pO1xuICByZWFkb25seSBjb2x1bW5zID0gY29tcHV0ZWQoKCkgPT4gX19idWlsZENvbHVtbnMoXG4gICAgdGhpcy5mb3JtVmFsdWUoKSxcbiAgICB0aGlzLml0ZW1BY3Rpb25zKCksXG4gICAgdGhpcy5zb3J0KCksXG4gICksIHsgZXF1YWw6IGlzRXF1YWwgfSk7XG4gIHJlYWRvbmx5IGNvbHVtbk5hbWVzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jb2x1bW5zKCkubWFwKGNvbHVtbiA9PiBjb2x1bW4ubmFtZSksIHsgZXF1YWw6IGlzRXF1YWwgfSk7XG5cbiAgLy8gTUVNTyhOb3pvbXVNaXlhbW90byk6IHRyZWVDb250cm9s44GuZGF0YU5vZGVz44Gu5aSJ5pu05qSc55+l44GMVHJlZUNvbHVtbk1vbGVjdWxl44GL44KJ44Gv44Gn44GN44Gq44GE44Gf44KB44CBVGFibGVPcmdhbmlzbVN0b3Jl44Gn5pu05paw44KS5qSc55+l44GX44Gm44GE44KL44CCXG4gIHJlYWRvbmx5IGlzRXhwYW5kZWRBbGwgPSBkZXJpdmVkQXN5bmMoKCkgPT4ge1xuICAgIHRoaXMuZGF0YVNvdXJjZSgpO1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLnRyZWVDb250cm9sKCk7XG4gICAgcmV0dXJuIGNvbnRyb2wuZXhwYW5zaW9uTW9kZWwuY2hhbmdlZC5waXBlKFxuICAgICAgc3RhcnRXaXRoKG51bGwpLFxuICAgICAgbWFwKCgpID0+IChjb250cm9sLmRhdGFOb2RlcyA/PyBbXSkuZXZlcnkobm9kZSA9PiBjb250cm9sLmlzRXhwYW5kZWQobm9kZSkpKSxcbiAgICApO1xuICB9KTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb3JnYW5pc21zLXRhYmxlJyxcbiAgaW1wb3J0czogW1xuICAgIE5nQ2xhc3MsXG4gICAgTWF0VGFibGVNb2R1bGUsXG4gICAgTWF0Q2hlY2tib3hNb2R1bGUsXG4gICAgTWF0TWVudU1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBBY3Rpb25zQ29sdW1uTW9sZWN1bGUsXG4gICAgQ2hlY2tib3hDb2x1bW5Nb2xlY3VsZSxcbiAgICBUZXh0Q29sdW1uTW9sZWN1bGUsXG4gICAgVHJlZUNvbHVtbk1vbGVjdWxlLFxuICAgIENka0Ryb3BMaXN0LFxuICAgIENka0RyYWcsXG4gICAgU2Nyb2xsaW5nTW9kdWxlLFxuICAgIENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydCxcbiAgICBTdHlsZVBpcGUsXG4gICAgR3JpZERhdGFUYWJsZUF1dG9maWxsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gIEBsZXQgY29tcG9uZW50ID0gJ0BuZy1hdG9taWMvY29tcG9uZW50cy9vcmdhbmlzbXMvdGFibGUnO1xuICA8Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0PlxuICAgIDx0YWJsZVxuICAgICAgbWF0LXRhYmxlXG4gICAgICBtYXRTb3J0XG4gICAgICBtYXRTb3J0RGlzYWJsZUNsZWFyXG4gICAgICBtYXRTb3J0RGlyZWN0aW9uPVwiZGVzY1wiXG4gICAgICBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlXCJcbiAgICAgIGNka0Ryb3BMaXN0XG4gICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cIm9uRHJvcCgkZXZlbnQpXCJcbiAgICAgIFtjZGtEcm9wTGlzdERpc2FibGVkXT1cIiFzdG9yZS5kcmFnZ2FibGUoKVwiXG4gICAgICBbbXVsdGlUZW1wbGF0ZURhdGFSb3dzXT1cInRydWVcIlxuICAgICAgZ3JpZERhdGFUYWJsZUF1dG9maWxsXG4gICAgICAoYXV0b2ZpbGxDb21wbGV0ZSk9XCJvbkF1dG9maWxsQ29tcGxldGUoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPHRib2R5PlxuICAgICAgICBAZm9yIChjb2x1bW4gb2Ygc3RvcmUuY29sdW1ucygpOyB0cmFjayBjb2x1bW4ubmFtZTsgbGV0IGluZGV4ID0gJGluZGV4KSB7XG4gICAgICAgICAgQHN3aXRjaCAoY29sdW1uLnR5cGUpIHtcbiAgICAgICAgICAgIEBjYXNlICgnY2hlY2tib3gnKSB7XG4gICAgICAgICAgICAgIDxtb2xlY3VsZXMtY2hlY2tib3gtY29sdW1uXG4gICAgICAgICAgICAgICAgW2luZGV4XT1cImluZGV4XCJcbiAgICAgICAgICAgICAgICBbY29sdW1uXT1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgW3NlbGVjdGlvbl09XCJzdG9yZS5zZWxlY3Rpb24oKVwiXG4gICAgICAgICAgICAgICAgW2lzSGlkZGVuXT1cInN0b3JlLmlzSGlkZGVuKClcIlxuICAgICAgICAgICAgICAgIChhY3Rpb24pPVwiZGlzcGF0Y2goJGV2ZW50KVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAY2FzZSAoJ2FjdGlvbnMnKSB7XG4gICAgICAgICAgICAgIDxtb2xlY3VsZXMtYWN0aW9ucy1jb2x1bW5cbiAgICAgICAgICAgICAgICBbaW5kZXhdPVwiaW5kZXhcIlxuICAgICAgICAgICAgICAgIFtjb2x1bW5dPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICBbaXRlbUFjdGlvbnNdPVwiY29sdW1uLmFjdGlvbnNcIlxuICAgICAgICAgICAgICAgIChhY3Rpb24pPVwiZGlzcGF0Y2goJGV2ZW50KVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAY2FzZSgndHJlZScpIHtcbiAgICAgICAgICAgICAgPG1vbGVjdWxlcy10cmVlLWNvbHVtblxuICAgICAgICAgICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgICAgICAgICAgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgIFt0cmVlQ29udHJvbF09XCJzdG9yZS50cmVlQ29udHJvbCgpXCJcbiAgICAgICAgICAgICAgICBbaXNFeHBhbmRlZEFsbF09XCJzdG9yZS5pc0V4cGFuZGVkQWxsKClcIlxuICAgICAgICAgICAgICAgIFtmb3JtRmllbGRNYXBdPVwic3RvcmUuY29sdW1uRm9ybUZpZWxkTWFwKClcIlxuICAgICAgICAgICAgICAgIChoZWFkZXJDbGljayk9XCJvbkhlYWRlckNsaWNrKGNvbHVtbi5uYW1lKVwiXG4gICAgICAgICAgICAgICAgKGFjdGlvbik9XCJkaXNwYXRjaCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBkZWZhdWx0IHtcbiAgICAgICAgICAgICAgPG1vbGVjdWxlcy10ZXh0LWNvbHVtblxuICAgICAgICAgICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgICAgICAgICAgW2Zvcm1GaWVsZE1hcF09XCJzdG9yZS5jb2x1bW5Gb3JtRmllbGRNYXAoKVwiXG4gICAgICAgICAgICAgICAgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgIChoZWFkZXJDbGljayk9XCJvbkhlYWRlckNsaWNrKGNvbHVtbi5uYW1lKVwiXG4gICAgICAgICAgICAgICAgKGFjdGlvbik9XCJkaXNwYXRjaCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgPHRyXG4gICAgICAgICAgKm1hdEhlYWRlclJvd0RlZj1cInN0b3JlLmNvbHVtbk5hbWVzKCk7IHN0aWNreTogdHJ1ZVwiXG4gICAgICAgICAgbWF0LWhlYWRlci1yb3dcbiAgICAgICAgICBbc3R5bGVdPVwibnVsbCB8IHN0eWxlOnsgY29tcG9uZW50LCBzZWxlY3RvcjogJ2hlYWRlci1yb3cnIH1cIlxuICAgICAgICA+PC90cj5cbiAgICAgICAgPHRyXG4gICAgICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJkYXRhU291cmNlLnBsYWNlaG9sZGVySGVpZ2h0KClcIlxuICAgICAgICAgIG1hdC1yb3dcbiAgICAgICAgICAqbWF0Um93RGVmPVwibGV0IGl0ZW07IGxldCBpbmRleCA9IGluZGV4OyBjb2x1bW5zOiBbXTtcbiAgICAgICAgICB3aGVuOiBwbGFjZWhvbGRlcldoZW5cIlxuICAgICAgICA+PC90cj5cbiAgICAgICAgPHRyXG4gICAgICAgICAgKm1hdFJvd0RlZj1cImxldCBpdGVtOyBsZXQgaW5kZXggPSBpbmRleDsgY29sdW1uczogc3RvcmUuY29sdW1uTmFtZXMoKTtcIlxuICAgICAgICAgIG1hdC1yb3dcbiAgICAgICAgICBbbmdDbGFzc109XCJzdG9yZS5nZXRSb3dDbGFzcygpKGl0ZW0pXCJcbiAgICAgICAgICBbc3R5bGVdPVwibnVsbCB8IHN0eWxlOnsgaXRlbSwgaW5kZXgsIGNvbXBvbmVudCwgc2VsZWN0b3I6ICdyb3cnIH1cIlxuICAgICAgICAgIFtjZGtEcmFnXVxuICAgICAgICAgIFtjZGtEcmFnRGlzYWJsZWRdPVwiIXN0b3JlLmRyYWdnYWJsZSgpXCJcbiAgICAgICAgPjwvdHI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYXQtcm93XCIgKm1hdE5vRGF0YVJvdz5ObyBEYXRhPC9kaXY+XG4gICAgICA8L3Rib2R5PlxuICAgIDwvdGFibGU+XG4gIDwvY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi90YWJsZS5vcmdhbmlzbS5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0RGlyZWN0aXZlczogW1xuICAgIHtcbiAgICAgIGRpcmVjdGl2ZTogVGFibGVPcmdhbmlzbVN0b3JlLFxuICAgICAgaW5wdXRzOiBbXG4gICAgICAgICdjb2x1bW5Gb3JtRmllbGRNYXAnLFxuICAgICAgICAnZHJhZ2dhYmxlJyxcbiAgICAgICAgJ2Zvcm0nLFxuICAgICAgICAnaXRlbUFjdGlvbnMnLFxuICAgICAgICAnc2VsZWN0aW9uJyxcbiAgICAgICAgJ2l0ZW1zJyxcbiAgICAgICAgJ2NoaWxkcmVuS2V5JyxcbiAgICAgICAgJ2hpZ2hsaWdodCcsXG4gICAgICAgICd0cmVlQ29udHJvbCcsXG4gICAgICAgICdpc0hpZGRlbicsXG4gICAgICAgICdnZXRSb3dDbGFzcycsXG4gICAgICBdLFxuICAgIH0sXG4gIF0sXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ29yZ2FuaXNtJyxcbiAgICAndGFiaW5kZXgnOiAnMCcsXG4gICAgJyhrZXlkb3duKSc6ICdzcy5oYW5kbGVLZXlEb3duKCRldmVudCknLFxuICB9LFxuICBwcm92aWRlcnM6IFtcbiAgICBwcm92aWRlU3ByZWFkU2hlZXRTZXJ2aWNlKCksXG4gICAgeyBwcm92aWRlOiBWSVJUVUFMX1NDUk9MTF9TVFJBVEVHWSwgdXNlQ2xhc3M6IEN1c3RvbVZpcnR1YWxTY3JvbGxTdHJhdGVneSB9LFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlT3JnYW5pc208SXRlbSBleHRlbmRzIG9iamVjdD4gZXh0ZW5kcyBOZ0F0b21pY0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHN0YXRpYyByZWFkb25seSBBY3Rpb25JZCA9IEFjdGlvbklkO1xuICBwcm90ZWN0ZWQgc3RvcmUgPSBpbmplY3QoVGFibGVPcmdhbmlzbVN0b3JlKTtcbiAgcHJvdGVjdGVkIHNzID0gaW5qZWN0KFNwcmVhZFNoZWV0U2VydmljZSk7XG4gIHJlYWRvbmx5IHRyYWNrQnlGdW5jID0gKGluZGV4OiBudW1iZXIsIGl0ZW06IEl0ZW0pID0+IGl0ZW07XG4gIHJlYWRvbmx5IHBsYWNlaG9sZGVyV2hlbiA9IChpbmRleDogbnVtYmVyLCBfOiBhbnkpID0+IGluZGV4ID09IDA7XG5cbiAgcmVhZG9ubHkgdmlld3BvcnQgPSB2aWV3Q2hpbGQoQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0KTtcbiAgcmVhZG9ubHkgZGF0YVNvdXJjZSA9IG5ldyBDdXN0b21EYXRhU291cmNlKHRoaXMuc3MpO1xuICBcbiAgcHJpdmF0ZSBkYXRhTm9kZXNTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBlZmZlY3QoKCkgPT4geyB0aGlzLmRhdGFTb3VyY2UuY29sdW1uTmFtZXMuc2V0KHRoaXMuc3RvcmUuY29sdW1uTmFtZXMoKSk7IH0pO1xuICAgIGVmZmVjdCgoKSA9PiB7IFxuICAgICAgY29uc3QgZGF0YVNvdXJjZSA9IHRoaXMuc3RvcmUuZGF0YVNvdXJjZSgpO1xuICAgICAgdGhpcy5kYXRhU291cmNlLnJlY29ubmVjdChkYXRhU291cmNlKTtcbiAgICAgIFxuICAgICAgLy8g5pei5a2Y44Gu6LO86Kqt44KS6Kej6ZmkXG4gICAgICBpZiAodGhpcy5kYXRhTm9kZXNTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgdGhpcy5kYXRhTm9kZXNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5kYXRhTm9kZXNTdWJzY3JpcHRpb24gPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8vIFRyZWVGbGF0RGF0YVNvdXJjZeOBruWgtOWQiOOAgWRhdGFOb2Rlc+OCkuabtOaWsO+8iGV4cGFuZEFsbC9jb2xsYXBzZUFsbOeUqO+8iVxuICAgICAgaWYgKHRoaXMuc3RvcmUuY2hpbGRyZW5LZXkoKSAmJiBkYXRhU291cmNlKSB7XG4gICAgICAgIGNvbnN0IGZsYXR0ZW5lZERhdGEgPSAoZGF0YVNvdXJjZSBhcyBhbnkpLl9mbGF0dGVuZWREYXRhO1xuICAgICAgICBpZiAoZmxhdHRlbmVkRGF0YSkge1xuICAgICAgICAgIC8vIEJlaGF2aW9yU3ViamVjdOOCkuizvOiqreOBl+OBpuOAgeWApOOBjOWkieabtOOBleOCjOOBn+OBqOOBjeOBq2RhdGFOb2Rlc+OCkuabtOaWsFxuICAgICAgICAgIHRoaXMuZGF0YU5vZGVzU3Vic2NyaXB0aW9uID0gZmxhdHRlbmVkRGF0YS5zdWJzY3JpYmUoKG5vZGVzOiBhbnlbXSkgPT4ge1xuICAgICAgICAgICAgaWYgKG5vZGVzICYmIG5vZGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgdGhpcy5zdG9yZS50cmVlQ29udHJvbCgpLmRhdGFOb2RlcyA9IG5vZGVzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLmRhdGFOb2Rlc1N1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5kYXRhTm9kZXNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy51cGRhdGVWaWV3UG9ydCgpO1xuICB9XG5cbiAgdXBkYXRlVmlld1BvcnQoKSB7XG4gICAgdGhpcy5kYXRhU291cmNlLnZpZXdwb3J0LnNldCh0aGlzLnZpZXdwb3J0KCkpO1xuICAgIHRoaXMudmlld3BvcnQoKS5jaGVja1ZpZXdwb3J0U2l6ZSgpO1xuICB9XG5cbiAgcmVhZG9ubHkgY2QgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gIEBFZmZlY3QoQ2hlY2tib3hDb2x1bW5Nb2xlY3VsZS5BY3Rpb25JZC5DSEVDS0JPWF9DTElDSylcbiAgcHJvdGVjdGVkIG9uQ2hlY2tib3hDbGljayhpdGVtOiBJdGVtKSB7XG4gICAgdGhpcy5kaXNwYXRjaCh7IGlkOiBBY3Rpb25JZC5DSEVDS0JPWF9DTElDSywgcGF5bG9hZDogaXRlbSB9KTtcbiAgfVxuXG4gIEBFZmZlY3QoQ2hlY2tib3hDb2x1bW5Nb2xlY3VsZS5BY3Rpb25JZC5IRUFERVJfQ0hFQ0tCT1hfQ0xJQ0spXG4gIHByb3RlY3RlZCBvbkhlYWRlckNoZWNrYm94Q2xpY2soaXRlbTogSXRlbSkge1xuICAgIHRoaXMuZGlzcGF0Y2goeyBpZDogQWN0aW9uSWQuSEVBREVSX0NIRUNLQk9YX0NMSUNLIH0pO1xuICB9XG5cbiAgQEVmZmVjdChOZ0F0b21pY0NvbHVtbk1vbGVjdWxlU3RvcmUuX0FjdGlvbklkLkNIQU5HRV9XSURUSClcbiAgcHJvdGVjdGVkIG9uQ2hhbmdlV2lkdGgocGF5bG9hZDoge25hbWU6IHN0cmluZywgd2lkdGg6IG51bWJlcn0pIHtcbiAgICB0aGlzLmRpc3BhdGNoKHtcbiAgICAgIGlkOiBUYWJsZU9yZ2FuaXNtU3RvcmUuQWN0aW9uSWQuQ09MVU1OX1dJRFRIX0NIQU5HRSxcbiAgICAgIHBheWxvYWQ6IHsgY29sdW1uTmFtZTogcGF5bG9hZC5uYW1lLCB3aWR0aDogcGF5bG9hZC53aWR0aCB9XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25IZWFkZXJDbGljayhjb2x1bW46IHN0cmluZykge1xuICAgIHRoaXMuZGlzcGF0Y2goeyBpZDogQWN0aW9uSWQuSEVBREVSX0NMSUNLLCBwYXlsb2FkOiBjb2x1bW4gfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25Ecm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxhbnksIGFueT4pIHtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5zdG9yZS50cmVlQ29udHJvbCgpXG4gICAgY29uc3Qgbm9kZXMgPSBjb250cm9sLmRhdGFOb2Rlcy5maWx0ZXIobm9kZSA9PiBub2RlLmxldmVsID09PSAwKTtcbiAgICBjb25zdCBub2Rlc18gPSBnZXREaXNwbGF5ZWROb2Rlcyhub2RlcywgY29udHJvbCk7XG4gICAgY29uc3QgZHJhZ2dlZE5vZGUgPSBub2Rlc19bZXZlbnQucHJldmlvdXNJbmRleF07XG4gICAgY29uc3QgZHJvcHBlZE5vZGUgPSBub2Rlc19bZXZlbnQuY3VycmVudEluZGV4XTtcbiAgICBjb25zdCBpdGVtcyA9IGZsYXRJdGVtcyh0aGlzLnN0b3JlLml0ZW1zKCksIHRoaXMuc3RvcmUuY2hpbGRyZW5LZXkoKSk7XG5cbiAgICB0aGlzLmRpc3BhdGNoKHtcbiAgICAgIGlkOiBBY3Rpb25JZC5ST1dfRFJPUCxcbiAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgcHJldmlvdXNJbmRleDogbm9kZXNfLmZpbmRJbmRleChub2RlID0+IG5vZGUgPT09IGV2ZW50Lml0ZW0uZGF0YSksXG4gICAgICAgIGN1cnJlbnRJbmRleDogZXZlbnQuY3VycmVudEluZGV4LFxuICAgICAgICBkcmFnZ2VkOiBpdGVtcy5maW5kKGl0ZW0gPT4gaXRlbS5pZCA9PT0gZHJhZ2dlZE5vZGUuaWQpLFxuICAgICAgICBkcm9wcGVkOiBpdGVtcy5maW5kKGl0ZW0gPT4gaXRlbS5pZCA9PT0gZHJvcHBlZE5vZGUuaWQpLFxuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIFxuICAvLyDjgqrjg7zjg4jjg5XjgqPjg6vlrozkuobjgqTjg5njg7Pjg4jjgpLlj5fjgZHlj5bjgovvvIjjg4fjgqPjg6zjgq/jg4bjgqPjg5bjgYvjgonvvIlcbiAgcHJvdGVjdGVkIG9uQXV0b2ZpbGxDb21wbGV0ZShwYXlsb2FkOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmRpc3BhdGNoKHsgaWQ6IEFjdGlvbklkLkFVVE9GSUxMX0NPTVBMRVRFLCBwYXlsb2FkIH0pO1xuICB9XG59XG5cbmludGVyZmFjZSBUcmVlTm9kZSB7XG4gIGlkOiBzdHJpbmc7XG4gIGlzRXhwYW5kYWJsZTogYm9vbGVhbjtcbiAgY2hpbGRyZW4/OiBUcmVlTm9kZVtdO1xufVxuXG5mdW5jdGlvbiBnZXREaXNwbGF5ZWROb2Rlcyhub2RlczogVHJlZU5vZGVbXSwgY29udHJvbDogRmxhdFRyZWVDb250cm9sPGFueT4pOiBUcmVlTm9kZVtdIHtcbiAgY29uc3QgcmVzdWx0OiBUcmVlTm9kZVtdID0gW107XG4gIGZvciAoY29uc3Qgbm9kZSBvZiBub2Rlcykge1xuICAgIHJlc3VsdC5wdXNoKG5vZGUpO1xuICAgIGlmIChjb250cm9sLmlzRXhwYW5kZWQobm9kZSkpIHtcbiAgICAgIHJlc3VsdC5wdXNoKC4uLmdldERpc3BsYXllZE5vZGVzKG5vZGUuY2hpbGRyZW4sIGNvbnRyb2wpKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZsYXRJdGVtczxUPihpdGVtczogVFtdLCBrZXkgPSAnY2hpbGRyZW4nKTogVFtdIHtcbiAgY29uc3QgcmVzdWx0OiBUW10gPSBbXTtcbiAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XG4gICAgcmVzdWx0LnB1c2goaXRlbSk7XG4gICAgaWYgKGl0ZW1ba2V5XSkge1xuICAgICAgcmVzdWx0LnB1c2goLi4uZmxhdEl0ZW1zPFQ+KGl0ZW1ba2V5XSwga2V5KSk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG4iXX0=","/** @deprecated use instead `'@ng-atomic/common/services/form/_index` */\nexport * from '@ng-atomic/common/services/form/_index';\nexport * from './table.helpers';\nexport * from './table.organism';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbXBvbmVudHMvc3JjL2xpYi9vcmdhbmlzbXMvdGFibGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0VBQXdFO0FBQ3hFLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBkZXByZWNhdGVkIHVzZSBpbnN0ZWFkIGAnQG5nLWF0b21pYy9jb21tb24vc2VydmljZXMvZm9ybS9faW5kZXhgICovXG5leHBvcnQgKiBmcm9tICdAbmctYXRvbWljL2NvbW1vbi9zZXJ2aWNlcy9mb3JtL19pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL3RhYmxlLmhlbHBlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi90YWJsZS5vcmdhbmlzbSc7XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctYXRvbWljLWNvbXBvbmVudHMtb3JnYW5pc21zLXRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb21wb25lbnRzL3NyYy9saWIvb3JnYW5pc21zL3RhYmxlL25nLWF0b21pYy1jb21wb25lbnRzLW9yZ2FuaXNtcy10YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
|
|
@@ -48,7 +48,7 @@ class TextInputSectionOrganism extends NgAtomicComponent {
|
|
|
48
48
|
(action)="dispatch($event)"
|
|
49
49
|
/>
|
|
50
50
|
}
|
|
51
|
-
`, isInline: true, styles: [":host{--horizontal-padding: 16px;--horizontal-padding-SCOPED-IN-text-input-section-
|
|
51
|
+
`, isInline: true, styles: [":host{--horizontal-padding: 16px;--horizontal-padding-SCOPED-IN-text-input-section-OqDs: var(--horizontal-padding)}:host{display:flex;flex-direction:row;width:100%;padding:0 var(--horizontal-padding-SCOPED-IN-text-input-section-OqDs) 0;box-sizing:border-box}:host:has(atoms-smart-button){padding:0 0 0 var(--horizontal-padding-SCOPED-IN-text-input-section-OqDs)}:host .molecule.input-field,:host mat-form-field{width:100%;flex:1fr}:host atoms-menu-button{flex:auto;margin-top:4px;margin-right:-16px}\n"], dependencies: [{ kind: "directive", type: TextInputFieldMoleculeStore, selector: "molecules-text-input-field", inputs: ["appearance", "type", "name", "label", "control", "placeholder", "hint", "pattern", "autoComplete"] }, { kind: "directive", type: SmartMenuButtonAtomStore, selector: "atoms-menu-button, atoms-smart-menu-button", inputs: ["actions", "type", "action"] }] }); }
|
|
52
52
|
}
|
|
53
53
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: TextInputSectionOrganism, decorators: [{
|
|
54
54
|
type: Component,
|
|
@@ -75,7 +75,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImpor
|
|
|
75
75
|
directive: TextInputSectionOrganismStore,
|
|
76
76
|
inputs: ['label', 'placeholder', 'type', 'hint', 'control', 'autoComplete', 'actions'],
|
|
77
77
|
}
|
|
78
|
-
], host: { 'class': 'organism input section' }, styles: [":host{--horizontal-padding: 16px;--horizontal-padding-SCOPED-IN-text-input-section-
|
|
78
|
+
], host: { 'class': 'organism input section' }, styles: [":host{--horizontal-padding: 16px;--horizontal-padding-SCOPED-IN-text-input-section-OqDs: var(--horizontal-padding)}:host{display:flex;flex-direction:row;width:100%;padding:0 var(--horizontal-padding-SCOPED-IN-text-input-section-OqDs) 0;box-sizing:border-box}:host:has(atoms-smart-button){padding:0 0 0 var(--horizontal-padding-SCOPED-IN-text-input-section-OqDs)}:host .molecule.input-field,:host mat-form-field{width:100%;flex:1fr}:host atoms-menu-button{flex:auto;margin-top:4px;margin-right:-16px}\n"] }]
|
|
79
79
|
}] });
|
|
80
80
|
|
|
81
81
|
/**
|