@ng-atomic/components 19.34.0 → 19.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. package/fesm2022/ng-atomic-components-atoms-chips-input.mjs +2 -2
  2. package/fesm2022/ng-atomic-components-atoms-chips-input.mjs.map +1 -1
  3. package/fesm2022/ng-atomic-components-atoms-icon.mjs +2 -2
  4. package/fesm2022/ng-atomic-components-atoms-value-cell.mjs +4 -4
  5. package/fesm2022/ng-atomic-components-atoms-value-cell.mjs.map +1 -1
  6. package/fesm2022/ng-atomic-components-extras-editor.mjs +3 -2
  7. package/fesm2022/ng-atomic-components-extras-editor.mjs.map +1 -1
  8. package/fesm2022/ng-atomic-components-frames-app.mjs +2 -2
  9. package/fesm2022/ng-atomic-components-frames-app.mjs.map +1 -1
  10. package/fesm2022/ng-atomic-components-frames-auto-layout.mjs +2 -2
  11. package/fesm2022/ng-atomic-components-frames-breadcrumb-navbar.mjs +2 -2
  12. package/fesm2022/ng-atomic-components-frames-card.mjs +2 -2
  13. package/fesm2022/ng-atomic-components-frames-columns.mjs +2 -2
  14. package/fesm2022/ng-atomic-components-frames-divider.mjs +3 -3
  15. package/fesm2022/ng-atomic-components-frames-divider.mjs.map +1 -1
  16. package/fesm2022/ng-atomic-components-frames-drawer.mjs +2 -2
  17. package/fesm2022/ng-atomic-components-frames-entrance.mjs +2 -2
  18. package/fesm2022/ng-atomic-components-frames-fab.mjs +2 -2
  19. package/fesm2022/ng-atomic-components-frames-fab.mjs.map +1 -1
  20. package/fesm2022/ng-atomic-components-frames-horizontal-divider.mjs +3 -3
  21. package/fesm2022/ng-atomic-components-frames-horizontal-divider.mjs.map +1 -1
  22. package/fesm2022/ng-atomic-components-frames-line-up.mjs +2 -2
  23. package/fesm2022/ng-atomic-components-frames-line-up.mjs.map +1 -1
  24. package/fesm2022/ng-atomic-components-frames-loading.mjs +2 -2
  25. package/fesm2022/ng-atomic-components-frames-router-outlet.mjs +3 -3
  26. package/fesm2022/ng-atomic-components-frames-router-outlet.mjs.map +1 -1
  27. package/fesm2022/ng-atomic-components-frames-scroll.mjs +2 -2
  28. package/fesm2022/ng-atomic-components-frames-side-nav.mjs +2 -2
  29. package/fesm2022/ng-atomic-components-frames-side-nav.mjs.map +1 -1
  30. package/fesm2022/ng-atomic-components-frames-smart-menu.mjs +2 -2
  31. package/fesm2022/ng-atomic-components-frames-vertical-hide.mjs +2 -2
  32. package/fesm2022/ng-atomic-components-molecules-actions-column.mjs.map +1 -1
  33. package/fesm2022/ng-atomic-components-molecules-checkbox-column.mjs.map +1 -1
  34. package/fesm2022/ng-atomic-components-molecules-date-input-field.mjs +2 -2
  35. package/fesm2022/ng-atomic-components-molecules-date-range-input-field.mjs +2 -2
  36. package/fesm2022/ng-atomic-components-molecules-date-range-input-field.mjs.map +1 -1
  37. package/fesm2022/ng-atomic-components-molecules-file-input-field.mjs.map +1 -1
  38. package/fesm2022/ng-atomic-components-molecules-grid-item.mjs +2 -2
  39. package/fesm2022/ng-atomic-components-molecules-loading-box.mjs +2 -2
  40. package/fesm2022/ng-atomic-components-molecules-navigation-list-item.mjs +2 -2
  41. package/fesm2022/ng-atomic-components-molecules-navigation-list-item.mjs.map +1 -1
  42. package/fesm2022/ng-atomic-components-molecules-nested-menu.mjs.map +1 -1
  43. package/fesm2022/ng-atomic-components-molecules-select-input-field.mjs +2 -2
  44. package/fesm2022/ng-atomic-components-molecules-textarea-field.mjs.map +1 -1
  45. package/fesm2022/ng-atomic-components-molecules-thread-message.mjs +2 -2
  46. package/fesm2022/ng-atomic-components-organisms-action-buttons-section.mjs +2 -2
  47. package/fesm2022/ng-atomic-components-organisms-action-input-section.mjs +2 -2
  48. package/fesm2022/ng-atomic-components-organisms-agreement-input-section.mjs.map +1 -1
  49. package/fesm2022/ng-atomic-components-organisms-breadcrumb-navbar.mjs +2 -2
  50. package/fesm2022/ng-atomic-components-organisms-card-input-section.mjs +2 -2
  51. package/fesm2022/ng-atomic-components-organisms-cvc-and-exp-input-section.mjs +2 -2
  52. package/fesm2022/ng-atomic-components-organisms-date-input-section.mjs +2 -2
  53. package/fesm2022/ng-atomic-components-organisms-date-range-input-section.mjs +2 -2
  54. package/fesm2022/ng-atomic-components-organisms-definition-list.mjs +2 -2
  55. package/fesm2022/ng-atomic-components-organisms-file-input-section.mjs +2 -2
  56. package/fesm2022/ng-atomic-components-organisms-graphql-editor.mjs +1 -1
  57. package/fesm2022/ng-atomic-components-organisms-graphql-editor.mjs.map +1 -1
  58. package/fesm2022/ng-atomic-components-organisms-grid-cards-section.mjs +2 -2
  59. package/fesm2022/ng-atomic-components-organisms-heading.mjs +2 -2
  60. package/fesm2022/ng-atomic-components-organisms-menu-footer.mjs +2 -2
  61. package/fesm2022/ng-atomic-components-organisms-menu-header.mjs +2 -2
  62. package/fesm2022/ng-atomic-components-organisms-mermaid-section.mjs.map +1 -1
  63. package/fesm2022/ng-atomic-components-organisms-messages-section.mjs +2 -2
  64. package/fesm2022/ng-atomic-components-organisms-navigation-list.mjs +2 -2
  65. package/fesm2022/ng-atomic-components-organisms-navigator.mjs +3 -2
  66. package/fesm2022/ng-atomic-components-organisms-navigator.mjs.map +1 -1
  67. package/fesm2022/ng-atomic-components-organisms-number-input-section.mjs +2 -2
  68. package/fesm2022/ng-atomic-components-organisms-paginator.mjs +2 -2
  69. package/fesm2022/ng-atomic-components-organisms-password-input-section.mjs +2 -2
  70. package/fesm2022/ng-atomic-components-organisms-select-input-section.mjs +2 -2
  71. package/fesm2022/ng-atomic-components-organisms-slider-input-section.mjs +2 -2
  72. package/fesm2022/ng-atomic-components-organisms-social-login-section.mjs +2 -2
  73. package/fesm2022/ng-atomic-components-organisms-table.mjs +6 -5
  74. package/fesm2022/ng-atomic-components-organisms-table.mjs.map +1 -1
  75. package/fesm2022/ng-atomic-components-organisms-terminal.mjs +1 -2
  76. package/fesm2022/ng-atomic-components-organisms-terminal.mjs.map +1 -1
  77. package/fesm2022/ng-atomic-components-organisms-text-input-section.mjs +2 -2
  78. package/fesm2022/ng-atomic-components-organisms-textarea-section.mjs +2 -2
  79. package/fesm2022/ng-atomic-components-organisms-thread-messages-section.mjs +2 -2
  80. package/fesm2022/ng-atomic-components-organisms-tree-list.mjs.map +1 -1
  81. package/fesm2022/ng-atomic-components-organisms-tree-section.mjs.map +1 -1
  82. package/fesm2022/ng-atomic-components-pages-_index.mjs +6 -4
  83. package/fesm2022/ng-atomic-components-pages-_index.mjs.map +1 -1
  84. package/fesm2022/ng-atomic-components-pages-columns.mjs +2 -2
  85. package/fesm2022/ng-atomic-components-pages-columns.mjs.map +1 -1
  86. package/fesm2022/ng-atomic-components-pages-form.mjs +2 -2
  87. package/fesm2022/ng-atomic-components-pages-form.mjs.map +1 -1
  88. package/fesm2022/ng-atomic-components-services-global-iframe.mjs +2 -1
  89. package/fesm2022/ng-atomic-components-services-global-iframe.mjs.map +1 -1
  90. package/fesm2022/ng-atomic-components-templates-_index.mjs +2 -2
  91. package/fesm2022/ng-atomic-components-templates-_index.mjs.map +1 -1
  92. package/fesm2022/ng-atomic-components-templates-background.mjs +2 -2
  93. package/fesm2022/ng-atomic-components-templates-code-editor.mjs +2 -2
  94. package/fesm2022/ng-atomic-components-templates-columns.mjs +2 -2
  95. package/fesm2022/ng-atomic-components-templates-columns.mjs.map +1 -1
  96. package/fesm2022/ng-atomic-components-templates-entrance.mjs +2 -2
  97. package/fesm2022/ng-atomic-components-templates-form.mjs +5 -5
  98. package/fesm2022/ng-atomic-components-templates-form.mjs.map +1 -1
  99. package/fesm2022/ng-atomic-components-templates-icon-button-menu.mjs +2 -2
  100. package/fesm2022/ng-atomic-components-templates-menu.mjs +2 -2
  101. package/fesm2022/ng-atomic-components-templates-selection.mjs +2 -2
  102. package/fesm2022/ng-atomic-components-templates-settings.mjs +2 -2
  103. package/package.json +3 -3
  104. package/types/ng-atomic-components-atoms-chips-input.d.ts +1 -1
  105. package/types/ng-atomic-components-atoms-icon.d.ts +1 -1
  106. package/types/ng-atomic-components-atoms-menu-button.d.ts +2 -2
  107. package/types/ng-atomic-components-atoms-value-cell.d.ts +5 -5
  108. package/types/ng-atomic-components-extras-editor.d.ts +1 -1
  109. package/types/ng-atomic-components-extras.d.ts +1 -1
  110. package/types/ng-atomic-components-frames-app.d.ts +20 -20
  111. package/types/ng-atomic-components-frames-breadcrumb-navbar.d.ts +1 -1
  112. package/types/ng-atomic-components-frames-columns.d.ts +4 -4
  113. package/types/ng-atomic-components-frames-entrance.d.ts +2 -2
  114. package/types/ng-atomic-components-frames-fab.d.ts +3 -3
  115. package/types/ng-atomic-components-frames-fab.d.ts.map +1 -1
  116. package/types/ng-atomic-components-frames-line-up.d.ts +3 -3
  117. package/types/ng-atomic-components-frames-router-outlet.d.ts +5 -5
  118. package/types/ng-atomic-components-frames-side-app.d.ts +1 -1
  119. package/types/ng-atomic-components-frames-side-nav.d.ts +9 -9
  120. package/types/ng-atomic-components-molecules-action-input-field.d.ts +1 -1
  121. package/types/ng-atomic-components-molecules-actions-column.d.ts +2 -2
  122. package/types/ng-atomic-components-molecules-checkbox-column.d.ts +2 -2
  123. package/types/ng-atomic-components-molecules-chips-input-field.d.ts +5 -5
  124. package/types/ng-atomic-components-molecules-date-input-field.d.ts +3 -3
  125. package/types/ng-atomic-components-molecules-date-range-input-field.d.ts +2 -2
  126. package/types/ng-atomic-components-molecules-file-input-field.d.ts +5 -5
  127. package/types/ng-atomic-components-molecules-grid-item.d.ts +1 -1
  128. package/types/ng-atomic-components-molecules-list-item.d.ts +3 -3
  129. package/types/ng-atomic-components-molecules-loading-box.d.ts +1 -1
  130. package/types/ng-atomic-components-molecules-nested-menu.d.ts +1 -1
  131. package/types/ng-atomic-components-molecules-nested-menu.d.ts.map +1 -1
  132. package/types/ng-atomic-components-molecules-select-input-field.d.ts +3 -3
  133. package/types/ng-atomic-components-molecules-text-column.d.ts +2 -2
  134. package/types/ng-atomic-components-molecules-text-input-field.d.ts +4 -4
  135. package/types/ng-atomic-components-molecules-textarea-field.d.ts +2 -2
  136. package/types/ng-atomic-components-molecules-textarea-field.d.ts.map +1 -1
  137. package/types/ng-atomic-components-molecules-thread-message.d.ts +3 -3
  138. package/types/ng-atomic-components-molecules-tree-column.d.ts +3 -3
  139. package/types/ng-atomic-components-organisms-action-input-section.d.ts +2 -2
  140. package/types/ng-atomic-components-organisms-agreement-input-section.d.ts +1 -1
  141. package/types/ng-atomic-components-organisms-breadcrumb-navbar.d.ts +1 -1
  142. package/types/ng-atomic-components-organisms-card-input-section.d.ts +1 -1
  143. package/types/ng-atomic-components-organisms-chips-input-section.d.ts +1 -1
  144. package/types/ng-atomic-components-organisms-date-input-section.d.ts +2 -2
  145. package/types/ng-atomic-components-organisms-date-range-input-section.d.ts +2 -2
  146. package/types/ng-atomic-components-organisms-file-input-section.d.ts +2 -2
  147. package/types/ng-atomic-components-organisms-filters-section.d.ts +3 -3
  148. package/types/ng-atomic-components-organisms-graphql-editor.d.ts +1 -1
  149. package/types/ng-atomic-components-organisms-grid-toolbar.d.ts +1 -1
  150. package/types/ng-atomic-components-organisms-image-preview-section.d.ts +1 -1
  151. package/types/ng-atomic-components-organisms-list.d.ts +3 -3
  152. package/types/ng-atomic-components-organisms-menu-header.d.ts +1 -1
  153. package/types/ng-atomic-components-organisms-mermaid-section.d.ts +2 -2
  154. package/types/ng-atomic-components-organisms-message-input-section.d.ts +1 -1
  155. package/types/ng-atomic-components-organisms-navigator.d.ts +2 -2
  156. package/types/ng-atomic-components-organisms-navigator.d.ts.map +1 -1
  157. package/types/ng-atomic-components-organisms-number-input-section.d.ts +2 -2
  158. package/types/ng-atomic-components-organisms-paginator.d.ts +4 -4
  159. package/types/ng-atomic-components-organisms-password-input-section.d.ts +2 -2
  160. package/types/ng-atomic-components-organisms-select-input-section.d.ts +4 -4
  161. package/types/ng-atomic-components-organisms-slider-input-section.d.ts +6 -6
  162. package/types/ng-atomic-components-organisms-stripe-input-section.d.ts +55 -55
  163. package/types/ng-atomic-components-organisms-table.d.ts +39 -19
  164. package/types/ng-atomic-components-organisms-table.d.ts.map +1 -1
  165. package/types/ng-atomic-components-organisms-text-input-section.d.ts +2 -2
  166. package/types/ng-atomic-components-organisms-textarea-section.d.ts +2 -2
  167. package/types/ng-atomic-components-organisms-time-range-input-section.d.ts +2 -2
  168. package/types/ng-atomic-components-organisms-toolbar.d.ts +1 -1
  169. package/types/ng-atomic-components-organisms-tree-section.d.ts +1 -1
  170. package/types/ng-atomic-components-organisms-video-section.d.ts +4 -4
  171. package/types/ng-atomic-components-pages-_index.d.ts +29 -29
  172. package/types/ng-atomic-components-pages-_index.d.ts.map +1 -1
  173. package/types/ng-atomic-components-pages-columns.d.ts +1 -1
  174. package/types/ng-atomic-components-pages-columns.d.ts.map +1 -1
  175. package/types/ng-atomic-components-pages-form.d.ts +13 -12
  176. package/types/ng-atomic-components-pages-form.d.ts.map +1 -1
  177. package/types/ng-atomic-components-pages-terms.d.ts +9 -9
  178. package/types/ng-atomic-components-services-global-iframe.d.ts +1 -1
  179. package/types/ng-atomic-components-services-global-iframe.d.ts.map +1 -1
  180. package/types/ng-atomic-components-templates-_index.d.ts +52 -50
  181. package/types/ng-atomic-components-templates-_index.d.ts.map +1 -1
  182. package/types/ng-atomic-components-templates-code-editor.d.ts +1 -1
  183. package/types/ng-atomic-components-templates-columns.d.ts +17 -17
  184. package/types/ng-atomic-components-templates-entrance.d.ts +2 -2
  185. package/types/ng-atomic-components-templates-form.d.ts +7 -7
  186. package/types/ng-atomic-components-templates-menu.d.ts +1 -1
  187. package/types/ng-atomic-components-templates-term.d.ts +1 -1
  188. package/types/ng-atomic-components-templates-thread.d.ts +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"ng-atomic-components-organisms-table.mjs","sources":["../../../../../packages/@ng-atomic/components/src/lib/organisms/table/table.helpers.ts","../../../../../packages/@ng-atomic/components/src/lib/organisms/table/table.organism.ts","../../../../../packages/@ng-atomic/components/src/lib/organisms/table/index.ts","../../../../../packages/@ng-atomic/components/src/lib/organisms/table/ng-atomic-components-organisms-table.ts"],"sourcesContent":["import { MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree';\nimport { FlatTreeControl } from '@angular/cdk/tree';\nimport { get, isEqual } from 'lodash-es';\nimport { CollectionViewer, DataSource } from '@angular/cdk/collections';\nimport { combineLatest, debounceTime, distinctUntilChanged, filter, map, Observable, startWith, switchMap, tap } from 'rxjs';\nimport { CdkVirtualScrollViewport, FixedSizeVirtualScrollStrategy } from '@angular/cdk/scrolling';\nimport { signal } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { SpreadSheetService } from '@ng-atomic/common/services/spreadsheet';\nimport { consumerPollProducersForChange } from '@angular/core/primitives/signals';\n\nconst ITEM_SIZE = 52;\nconst PRE = 10;\nconst Z = 2;\n\nexport class CustomDataSource<T> extends DataSource<T> {\n readonly collectionViewer = signal<CollectionViewer>(null);\n readonly collectionViewer$ = toObservable(this.collectionViewer);\n readonly itemSize = signal(ITEM_SIZE);\n readonly itemSize$ = toObservable(this.itemSize);\n readonly dataSource = signal<DataSource<T>>(null);\n readonly dataSource$ = toObservable(this.dataSource);\n readonly viewport = signal<CdkVirtualScrollViewport>(null);\n readonly viewport$ = toObservable(this.viewport);\n readonly placeholderHeight = signal(0);\n\n readonly columnNames = signal<string[]>([]);\n readonly columnNames$ = toObservable(this.columnNames);\n\n readonly data$ = combineLatest({\n viewer: this.collectionViewer$,\n dataSource: this.dataSource$,\n }).pipe(\n filter(({ viewer, dataSource }) => !!viewer && !!dataSource),\n switchMap(({ viewer, dataSource }) => dataSource.connect(viewer)),\n distinctUntilChanged((a, b) => isEqual(a, b)),\n map((items) => items.map((item, i) => ({...item, $index: i}))),\n );\n readonly totalContentSize$ = combineLatest({\n data: this.data$,\n itemSize: this.itemSize$,\n }).pipe(\n map(({ data, itemSize }) => {\n // データ長に基づく高さを計算\n return itemSize * data.length;\n }),\n distinctUntilChanged(),\n );\n \n readonly scrollTop$ = this.viewport$.pipe(\n filter((viewport) => !!viewport),\n switchMap((viewport) => viewport.elementScrolled() as never as Observable<{ currentTarget: HTMLElement }>),\n map(({ currentTarget }) => currentTarget?.scrollTop ?? 0),\n startWith(0),\n );\n readonly viewportHeight$ = combineLatest({\n viewport: this.viewport$,\n data: this.scrollTop$,\n }).pipe(\n filter(({viewport}) => !!viewport),\n map(({viewport}) => viewport.getViewportSize()),\n distinctUntilChanged(),\n );\n readonly rows$ = combineLatest({\n viewportHeight: this.viewportHeight$,\n itemSize: this.itemSize$,\n }).pipe(\n map(({viewportHeight, itemSize}) => Math.ceil(viewportHeight / itemSize)),\n distinctUntilChanged(),\n );\n readonly pageSize$ = this.rows$.pipe(\n map((rows) => rows * Z + PRE),\n distinctUntilChanged(),\n );\n\n readonly start$ = combineLatest({\n scrollTop: this.scrollTop$,\n rowHeight: this.itemSize$,\n rows: this.rows$,\n }).pipe(\n map(({ scrollTop, rowHeight, rows }) => {\n if (rowHeight * rows === 0) return 0;\n return Math.floor(scrollTop / (rowHeight * rows));\n }),\n distinctUntilChanged()\n );\n\n readonly prevExtraData$ = this.start$.pipe(\n map((start) => Math.min(PRE, start)),\n );\n\n readonly startIndex$ = combineLatest({\n start: this.start$,\n rows: this.rows$,\n prevExtraData: this.prevExtraData$,\n }).pipe(\n map(({ start, rows, prevExtraData }) => start * rows - prevExtraData),\n distinctUntilChanged(),\n )\n\n readonly endIndex$ = combineLatest({\n startIndex: this.startIndex$,\n pageSize: this.pageSize$,\n }).pipe(\n map(({ startIndex, pageSize }) => startIndex + pageSize),\n distinctUntilChanged(),\n );\n\n readonly 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(\n filter(({data}) => !!data),\n map(({ data, columnNames, viewport, itemSize, startIndex, endIndex}) => {\n this.ss.clipboard.setData(data, columnNames);\n const offset = itemSize * startIndex;\n if (viewport) viewport.setRenderedContentOffset(offset);\n this.placeholderHeight.set(offset);\n return data.slice(startIndex, endIndex);\n }),\n distinctUntilChanged((a, b) => isEqual(a, b)),\n );\n\n reconnect(datasource: DataSource<T>): void {\n this.dataSource.set(datasource);\n }\n\n constructor(protected ss: SpreadSheetService) {\n super();\n\n combineLatest({\n viewport: this.viewport$,\n totalContentSize: this.totalContentSize$,\n }).pipe(\n filter(({ viewport }) => !!viewport),\n ).subscribe(({ viewport, totalContentSize }) => {\n viewport.setTotalContentSize(totalContentSize);\n });\n }\n\n connect(collectionViewer: CollectionViewer): Observable<T[] | ReadonlyArray<T>> {\n this.collectionViewer.set(collectionViewer);\n return this.visibleData$.pipe(\n distinctUntilChanged((a, b) => isEqual(a, b)),\n );\n }\n\n disconnect(): void {}\n}\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}\n\nexport function buildMatTreeFlattener<T=any>(getChildren: (node: T) => T[] = (node: T) => get(node, 'children') ?? []) {\n return new MatTreeFlattener(\n (node: any, level: number) => {\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 },\n (node) => node.level,\n (node) => node.isExpandable,\n (node) => getChildren(node),\n );\n}\n\nexport function buildTreeFlatDataSource<T = any>(\n treeControl: FlatTreeControl<T>,\n data: T[],\n getChildren: (node: T) => T[] = (node: T) => get(node, 'children') ?? [],\n ) {\n const treeFlattener = buildMatTreeFlattener(getChildren);\n return new MatTreeFlatDataSource(treeControl, treeFlattener, data);\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Directive, computed, effect, inject, input, viewChild, OnDestroy } 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, Actions, 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 { CdkDragDrop, 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 { Subscription } from 'rxjs';\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 { Column } from '@ng-atomic/common/models';\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';\n\nenum ActionId {\n CHECKBOX_CLICK = '[@ng-atomic/components/organisms/checkbox-column] Checkbox Click',\n HEADER_CHECKBOX_CLICK = '[@ng-atomic/components/organisms/checkbox-column] Header Checkbox Click',\n HEADER_CLICK = '[@ng-atomic/components/organisms/table] Header Click',\n ROW_DROP = '[@ng-atomic/components/organisms/table] Row Drop',\n COLUMN_WIDTH_CHANGE = '[@ng-atomic/components/organisms/table] Column Width Change',\n AUTOFILL_COMPLETE = '[@ng-atomic/components/organisms/table] Autofill Complete', // ディレクティブから発行される\n}\n\nfunction __buildColumns(data: {\n columns?: {\n map?: any,\n ids?: string[],\n },\n}, itemActions: Actions, sort: any) {\n let _stickyLeft = 0;\n const columns = (data?.columns?.ids ?? [])\n .map(id => ({ ...data?.columns?.map[id], name: id }) as Column)\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 } else if (column.name.startsWith('checkbox')) {\n return {\n ...column,\n type: 'checkbox',\n stickyLeft,\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 } else {\n return {\n ...column,\n sort: sort.key === column.name ? sort.order : 'none',\n stickyLeft,\n };\n }\n\n });\n return columns;\n}\n\n@TokenizedType()\n@Directive({\n standalone: true,\n selector: 'organisms-table',\n providers: [DomainPipe],\n})\nexport class TableOrganismStore<C, T> extends InjectableComponent<C> {\n static readonly ActionId = ActionId;\n static readonly Config = makeConfig(() => {\n return () => ({\n draggable: true,\n isHidden: (item: any) => false,\n });\n }, ['components', 'organisms', 'table']);\n\n readonly config = TableOrganismStore.Config.inject();\n readonly draggable = input(_computed(() => this.config().draggable));\n readonly dataAccessor = injectDataAccessor();\n readonly getChildren = computed(() => {\n return (node: T) => this.dataAccessor(node, this.childrenKey() ?? 'children');\n });\n readonly form = input(inject(IndexTemplateFormBuilder).build());\n readonly columnFormFieldMap = input({});\n readonly itemActions = input<Actions>([]);\n readonly selection = input(new SelectionModel<string>(true, []));\n readonly highlight = input(new SelectionModel<string>(true, []));\n readonly childrenKey = input<string>(null);\n readonly items = input<T[]>([]);\n readonly treeControl = input(new FlatTreeControl<any>(n => n.level, n => n.isExpandable, { trackBy: (n: any) => n?.id ?? n }));\n readonly 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<T>(items);\n });\n readonly isHidden = input(_computed(() => this.config().isHidden));\n readonly getRowClass = input<(item: any) => string>(_computed(() => () => ''));\n readonly formValue = computedRawValue(() => this.form());\n readonly sort = computed(() => this.formValue()?.sort ?? { key: '', order: 'asc' }, {\n equal: (a, b) => JSON.stringify(a) === JSON.stringify(b),\n });\n readonly columns = computed(() => __buildColumns(\n this.formValue(),\n this.itemActions(),\n this.sort(),\n ), { equal: isEqual });\n readonly columnNames = computed(() => this.columns().map(column => column.name), { equal: isEqual });\n\n // MEMO(NozomuMiyamoto): treeControlのdataNodesの変更検知がTreeColumnMoleculeからはできないため、TableOrganismStoreで更新を検知している。\n readonly isExpandedAll = derivedAsync(() => {\n this.dataSource();\n const control = this.treeControl();\n return control.expansionModel.changed.pipe(\n startWith(null),\n map(() => (control.dataNodes ?? []).every(node => control.isExpanded(node))),\n );\n });\n}\n\n@Component({\n selector: 'organisms-table',\n 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 ],\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 *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 `,\n styleUrls: ['./table.organism.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n 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 ],\n host: {\n class: 'organism',\n 'tabindex': '0',\n '(keydown)': 'ss.handleKeyDown($event)',\n },\n providers: [\n provideSpreadSheetService(),\n { provide: VIRTUAL_SCROLL_STRATEGY, useClass: CustomVirtualScrollStrategy },\n ]\n})\nexport class TableOrganism<Item extends object> extends NgAtomicComponent implements OnDestroy {\n static readonly ActionId = ActionId;\n protected store = inject(TableOrganismStore);\n protected ss = inject(SpreadSheetService);\n readonly trackByFunc = (index: number, item: Item) => item;\n\n readonly viewport = viewChild(CdkVirtualScrollViewport);\n readonly dataSource = new CustomDataSource(this.ss);\n \n private dataNodesSubscription?: Subscription;\n\n constructor() {\n super();\n effect(() => { this.dataSource.columnNames.set(this.store.columnNames()); });\n effect(() => { \n const dataSource = this.store.dataSource();\n this.dataSource.reconnect(dataSource);\n \n // 既存の購読を解除\n if (this.dataNodesSubscription) {\n this.dataNodesSubscription.unsubscribe();\n this.dataNodesSubscription = undefined;\n }\n \n // TreeFlatDataSourceの場合、dataNodesを更新(expandAll/collapseAll用)\n if (this.store.childrenKey() && dataSource) {\n const flattenedData = (dataSource as any)._flattenedData;\n if (flattenedData) {\n // BehaviorSubjectを購読して、値が変更されたときにdataNodesを更新\n this.dataNodesSubscription = flattenedData.subscribe((nodes: any[]) => {\n if (nodes && nodes.length > 0) {\n this.store.treeControl().dataNodes = nodes;\n }\n });\n }\n }\n });\n }\n \n ngOnDestroy() {\n if (this.dataNodesSubscription) {\n this.dataNodesSubscription.unsubscribe();\n }\n }\n\n ngAfterViewInit() {\n this.updateViewPort();\n }\n\n updateViewPort() {\n this.dataSource.viewport.set(this.viewport());\n this.viewport().checkViewportSize();\n }\n\n readonly cd = inject(ChangeDetectorRef);\n\n @Effect(CheckboxColumnMolecule.ActionId.CHECKBOX_CLICK)\n protected onCheckboxClick(item: Item) {\n this.dispatch({ id: ActionId.CHECKBOX_CLICK, payload: item });\n }\n\n @Effect(CheckboxColumnMolecule.ActionId.HEADER_CHECKBOX_CLICK)\n protected onHeaderCheckboxClick(item: Item) {\n this.dispatch({ id: ActionId.HEADER_CHECKBOX_CLICK });\n }\n\n @Effect(NgAtomicColumnMoleculeStore._ActionId.CHANGE_WIDTH)\n protected onChangeWidth(payload: {name: string, width: number}) {\n this.dispatch({\n id: TableOrganismStore.ActionId.COLUMN_WIDTH_CHANGE,\n payload: { columnName: payload.name, width: payload.width }\n });\n }\n\n protected onHeaderClick(column: string) {\n this.dispatch({ id: ActionId.HEADER_CLICK, payload: column });\n }\n\n protected onDrop(event: CdkDragDrop<any, any>) {\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\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 // オートフィル完了イベントを受け取る(ディレクティブから)\n protected onAutofillComplete(payload: any): void {\n this.dispatch({ id: ActionId.AUTOFILL_COMPLETE, payload });\n }\n}\n\ninterface TreeNode {\n id: string;\n isExpandable: boolean;\n children?: TreeNode[];\n}\n\nfunction getDisplayedNodes(nodes: TreeNode[], control: FlatTreeControl<any>): TreeNode[] {\n const result: TreeNode[] = [];\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}\n\nexport function flatItems<T>(items: T[], key = 'children'): T[] {\n const result: T[] = [];\n for (const item of items) {\n result.push(item);\n if (item[key]) {\n result.push(...flatItems<T>(item[key], key));\n }\n }\n return result;\n}\n","/** @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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-atomic-components-organisms-table.mjs","sources":["../../../../../packages/@ng-atomic/components/src/lib/organisms/table/table.helpers.ts","../../../../../packages/@ng-atomic/components/src/lib/organisms/table/table.organism.ts","../../../../../packages/@ng-atomic/components/src/lib/organisms/table/index.ts","../../../../../packages/@ng-atomic/components/src/lib/organisms/table/ng-atomic-components-organisms-table.ts"],"sourcesContent":["import { MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree';\nimport { FlatTreeControl } from '@angular/cdk/tree';\nimport { get, isEqual } from 'lodash-es';\nimport { CollectionViewer, DataSource } from '@angular/cdk/collections';\nimport { combineLatest, debounceTime, distinctUntilChanged, filter, map, Observable, startWith, switchMap, tap } from 'rxjs';\nimport { CdkVirtualScrollViewport, FixedSizeVirtualScrollStrategy } from '@angular/cdk/scrolling';\nimport { signal } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { SpreadSheetService } from '@ng-atomic/common/services/spreadsheet';\nimport { consumerPollProducersForChange } from '@angular/core/primitives/signals';\n\nconst ITEM_SIZE = 52;\nconst PRE = 10;\nconst Z = 2;\n\nexport class CustomDataSource<T> extends DataSource<T> {\n readonly collectionViewer = signal<CollectionViewer>(null as unknown as CollectionViewer);\n readonly collectionViewer$ = toObservable(this.collectionViewer);\n readonly itemSize = signal(ITEM_SIZE);\n readonly itemSize$ = toObservable(this.itemSize);\n readonly dataSource = signal<DataSource<T>>(null as unknown as DataSource<T>);\n readonly dataSource$ = toObservable(this.dataSource);\n readonly viewport = signal<CdkVirtualScrollViewport>(null as unknown as CdkVirtualScrollViewport);\n readonly viewport$ = toObservable(this.viewport);\n readonly placeholderHeight = signal(0);\n\n readonly columnNames = signal<string[]>([]);\n readonly columnNames$ = toObservable(this.columnNames);\n\n readonly data$ = combineLatest({\n viewer: this.collectionViewer$,\n dataSource: this.dataSource$,\n }).pipe(\n filter(({ viewer, dataSource }) => !!viewer && !!dataSource),\n switchMap(({ viewer, dataSource }) => dataSource.connect(viewer)),\n distinctUntilChanged((a, b) => isEqual(a, b)),\n map((items) => items.map((item, i) => ({...item, $index: i}))),\n );\n readonly totalContentSize$ = combineLatest({\n data: this.data$,\n itemSize: this.itemSize$,\n }).pipe(\n map(({ data, itemSize }) => {\n // データ長に基づく高さを計算\n return itemSize * data.length;\n }),\n distinctUntilChanged(),\n );\n \n readonly scrollTop$ = this.viewport$.pipe(\n filter((viewport) => !!viewport),\n switchMap((viewport) => viewport.elementScrolled() as never as Observable<{ currentTarget: HTMLElement }>),\n map(({ currentTarget }) => currentTarget?.scrollTop ?? 0),\n startWith(0),\n );\n readonly viewportHeight$ = combineLatest({\n viewport: this.viewport$,\n data: this.scrollTop$,\n }).pipe(\n filter(({viewport}) => !!viewport),\n map(({viewport}) => viewport.getViewportSize()),\n distinctUntilChanged(),\n );\n readonly rows$ = combineLatest({\n viewportHeight: this.viewportHeight$,\n itemSize: this.itemSize$,\n }).pipe(\n map(({viewportHeight, itemSize}) => Math.ceil(viewportHeight / itemSize)),\n distinctUntilChanged(),\n );\n readonly pageSize$ = this.rows$.pipe(\n map((rows) => rows * Z + PRE),\n distinctUntilChanged(),\n );\n\n readonly start$ = combineLatest({\n scrollTop: this.scrollTop$,\n rowHeight: this.itemSize$,\n rows: this.rows$,\n }).pipe(\n map(({ scrollTop, rowHeight, rows }) => {\n if (rowHeight * rows === 0) return 0;\n return Math.floor(scrollTop / (rowHeight * rows));\n }),\n distinctUntilChanged()\n );\n\n readonly prevExtraData$ = this.start$.pipe(\n map((start) => Math.min(PRE, start)),\n );\n\n readonly startIndex$ = combineLatest({\n start: this.start$,\n rows: this.rows$,\n prevExtraData: this.prevExtraData$,\n }).pipe(\n map(({ start, rows, prevExtraData }) => start * rows - prevExtraData),\n distinctUntilChanged(),\n )\n\n readonly endIndex$ = combineLatest({\n startIndex: this.startIndex$,\n pageSize: this.pageSize$,\n }).pipe(\n map(({ startIndex, pageSize }) => startIndex + pageSize),\n distinctUntilChanged(),\n );\n\n readonly 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(\n filter(({data}) => !!data),\n map(({ data, columnNames, viewport, itemSize, startIndex, endIndex}) => {\n this.ss.clipboard.setData(data, columnNames);\n const offset = itemSize * startIndex;\n if (viewport) viewport.setRenderedContentOffset(offset);\n this.placeholderHeight.set(offset);\n return data.slice(startIndex, endIndex);\n }),\n distinctUntilChanged((a, b) => isEqual(a, b)),\n );\n\n reconnect(datasource: DataSource<T>): void {\n this.dataSource.set(datasource);\n }\n\n constructor(protected ss: SpreadSheetService) {\n super();\n\n combineLatest({\n viewport: this.viewport$,\n totalContentSize: this.totalContentSize$,\n }).pipe(\n filter(({ viewport }) => !!viewport),\n ).subscribe(({ viewport, totalContentSize }) => {\n viewport.setTotalContentSize(totalContentSize);\n });\n }\n\n connect(collectionViewer: CollectionViewer): Observable<T[] | ReadonlyArray<T>> {\n this.collectionViewer.set(collectionViewer);\n return this.visibleData$.pipe(\n distinctUntilChanged((a, b) => isEqual(a, b)),\n );\n }\n\n disconnect(): void {}\n}\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}\n\nexport function buildMatTreeFlattener<T=any>(getChildren: (node: T) => T[] = (node: T) => get(node, 'children') ?? []) {\n return new MatTreeFlattener(\n (node: any, level: number) => {\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 },\n (node) => node.level,\n (node) => node.isExpandable,\n (node) => getChildren(node),\n );\n}\n\nexport function buildTreeFlatDataSource<T = any>(\n treeControl: FlatTreeControl<T>,\n data: T[],\n getChildren: (node: T) => T[] = (node: T) => get(node, 'children') ?? [],\n ) {\n const treeFlattener = buildMatTreeFlattener(getChildren);\n return new MatTreeFlatDataSource(treeControl, treeFlattener, data);\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Directive, computed, effect, inject, input, viewChild, OnDestroy } 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, Actions, 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 { CdkDragDrop, 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 { Subscription } from 'rxjs';\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 { Column } from '@ng-atomic/common/models';\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';\n\nenum ActionId {\n CHECKBOX_CLICK = '[@ng-atomic/components/organisms/checkbox-column] Checkbox Click',\n HEADER_CHECKBOX_CLICK = '[@ng-atomic/components/organisms/checkbox-column] Header Checkbox Click',\n HEADER_CLICK = '[@ng-atomic/components/organisms/table] Header Click',\n ROW_DROP = '[@ng-atomic/components/organisms/table] Row Drop',\n COLUMN_WIDTH_CHANGE = '[@ng-atomic/components/organisms/table] Column Width Change',\n AUTOFILL_COMPLETE = '[@ng-atomic/components/organisms/table] Autofill Complete', // ディレクティブから発行される\n}\n\nfunction __buildColumns(data: {\n columns?: {\n map?: any,\n ids?: string[],\n },\n}, itemActions: Actions, sort: any) {\n let _stickyLeft = 0;\n const columns = (data?.columns?.ids ?? [])\n .map(id => ({ ...data?.columns?.map[id], name: id }) as Column)\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 } else if (column.name!.startsWith('checkbox')) {\n return {\n ...column,\n type: 'checkbox',\n stickyLeft,\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 } else {\n return {\n ...column,\n sort: sort.key === column.name ? sort.order : 'none',\n stickyLeft,\n };\n }\n\n });\n return columns;\n}\n\n@TokenizedType()\n@Directive({\n standalone: true,\n selector: 'organisms-table',\n providers: [DomainPipe],\n})\nexport class TableOrganismStore<C, T> extends InjectableComponent<C> {\n static readonly ActionId = ActionId;\n static readonly Config = makeConfig(() => {\n return () => ({\n draggable: true,\n isHidden: (item: any) => false,\n });\n }, ['components', 'organisms', 'table']);\n\n readonly config = TableOrganismStore.Config.inject();\n readonly draggable = input(_computed(() => this.config().draggable));\n readonly dataAccessor = injectDataAccessor();\n readonly getChildren = computed(() => {\n return (node: T) => this.dataAccessor(node, this.childrenKey() ?? 'children');\n });\n readonly form = input(inject(IndexTemplateFormBuilder).build());\n readonly columnFormFieldMap = input({});\n readonly itemActions = input<Actions>([]);\n readonly selection = input(new SelectionModel<string>(true, []));\n readonly highlight = input(new SelectionModel<string>(true, []));\n readonly childrenKey = input<string>(null as unknown as string);\n readonly items = input<T[]>([]);\n readonly treeControl = input(new FlatTreeControl<any>(n => n.level, n => n.isExpandable, { trackBy: (n: any) => n?.id ?? n }));\n readonly 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<T>(items);\n });\n readonly isHidden = input(_computed(() => this.config().isHidden));\n readonly getRowClass = input<(item: any) => string>(_computed(() => () => ''));\n readonly formValue = computedRawValue(() => this.form());\n readonly sort = computed(() => this.formValue()?.sort ?? { key: '', order: 'asc' }, {\n equal: (a, b) => JSON.stringify(a) === JSON.stringify(b),\n });\n readonly columns = computed(() => __buildColumns(\n this.formValue(),\n this.itemActions(),\n this.sort(),\n ), { equal: isEqual });\n readonly columnNames = computed(() => this.columns().map(column => column.name), { equal: isEqual });\n\n // MEMO(NozomuMiyamoto): treeControlのdataNodesの変更検知がTreeColumnMoleculeからはできないため、TableOrganismStoreで更新を検知している。\n readonly isExpandedAll = derivedAsync(() => {\n this.dataSource();\n const control = this.treeControl();\n return control.expansionModel.changed.pipe(\n startWith(null),\n map(() => (control.dataNodes ?? []).every(node => control.isExpanded(node))),\n );\n });\n}\n\n@Component({\n selector: 'organisms-table',\n 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 ],\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 *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 `,\n styleUrls: ['./table.organism.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n 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 ],\n host: {\n class: 'organism',\n 'tabindex': '0',\n '(keydown)': 'ss.handleKeyDown($event)',\n },\n providers: [\n provideSpreadSheetService(),\n { provide: VIRTUAL_SCROLL_STRATEGY, useClass: CustomVirtualScrollStrategy },\n ]\n})\nexport class TableOrganism<Item extends object> extends NgAtomicComponent implements OnDestroy {\n static readonly ActionId = ActionId;\n protected store = inject(TableOrganismStore);\n protected ss = inject(SpreadSheetService);\n readonly trackByFunc = (index: number, item: Item) => item;\n\n readonly viewport = viewChild(CdkVirtualScrollViewport);\n readonly dataSource = new CustomDataSource(this.ss);\n \n private dataNodesSubscription?: Subscription;\n\n constructor() {\n super();\n effect(() => { this.dataSource.columnNames.set(this.store.columnNames() as string[]); });\n effect(() => { \n const dataSource = this.store.dataSource();\n this.dataSource.reconnect(dataSource);\n \n // 既存の購読を解除\n if (this.dataNodesSubscription) {\n this.dataNodesSubscription.unsubscribe();\n this.dataNodesSubscription = undefined;\n }\n \n // TreeFlatDataSourceの場合、dataNodesを更新(expandAll/collapseAll用)\n if (this.store.childrenKey() && dataSource) {\n const flattenedData = (dataSource as any)._flattenedData;\n if (flattenedData) {\n // BehaviorSubjectを購読して、値が変更されたときにdataNodesを更新\n this.dataNodesSubscription = flattenedData.subscribe((nodes: any[]) => {\n if (nodes && nodes.length > 0) {\n this.store.treeControl().dataNodes = nodes;\n }\n });\n }\n }\n });\n }\n \n ngOnDestroy() {\n if (this.dataNodesSubscription) {\n this.dataNodesSubscription.unsubscribe();\n }\n }\n\n ngAfterViewInit() {\n this.updateViewPort();\n }\n\n updateViewPort() {\n this.dataSource.viewport.set(this.viewport()!);\n this.viewport()!.checkViewportSize();\n }\n\n readonly cd = inject(ChangeDetectorRef);\n\n @Effect(CheckboxColumnMolecule.ActionId.CHECKBOX_CLICK)\n protected onCheckboxClick(item: Item) {\n this.dispatch({ id: ActionId.CHECKBOX_CLICK, payload: item });\n }\n\n @Effect(CheckboxColumnMolecule.ActionId.HEADER_CHECKBOX_CLICK)\n protected onHeaderCheckboxClick(item: Item) {\n this.dispatch({ id: ActionId.HEADER_CHECKBOX_CLICK });\n }\n\n @Effect(NgAtomicColumnMoleculeStore._ActionId.CHANGE_WIDTH)\n protected onChangeWidth(payload: {name: string, width: number}) {\n this.dispatch({\n id: TableOrganismStore.ActionId.COLUMN_WIDTH_CHANGE,\n payload: { columnName: payload.name, width: payload.width }\n });\n }\n\n protected onHeaderClick(column: string) {\n this.dispatch({ id: ActionId.HEADER_CLICK, payload: column });\n }\n\n protected onDrop(event: CdkDragDrop<any, any>) {\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\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 // オートフィル完了イベントを受け取る(ディレクティブから)\n protected onAutofillComplete(payload: any): void {\n this.dispatch({ id: ActionId.AUTOFILL_COMPLETE, payload });\n }\n}\n\ninterface TreeNode {\n id: string;\n isExpandable: boolean;\n children?: TreeNode[];\n}\n\nfunction getDisplayedNodes(nodes: TreeNode[], control: FlatTreeControl<any>): TreeNode[] {\n const result: TreeNode[] = [];\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}\n\nexport function flatItems<T>(items: T[], key = 'children'): T[] {\n const result: T[] = [];\n for (const item of items) {\n result.push(item);\n const children = (item as Record<string, unknown>)[key];\n if (children) {\n result.push(...flatItems<T>(children as T[], key));\n }\n }\n return result;\n}\n","/** @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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,14 +1,13 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Input, ViewChild, ChangeDetectionStrategy, Component } from '@angular/core';
3
3
  import { CommonModule } from '@angular/common';
4
- import '@xterm/xterm';
5
4
 
6
5
  class TerminalOrganism {
7
6
  constructor() {
8
7
  this.xterm = null;
9
8
  }
10
9
  async ngAfterViewInit() {
11
- this.xterm.open(this.terminal.nativeElement);
10
+ this.xterm?.open(this.terminal.nativeElement);
12
11
  }
13
12
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: TerminalOrganism, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14
13
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.6", type: TerminalOrganism, isStandalone: true, selector: "organisms-terminal", inputs: { xterm: "xterm" }, viewQueries: [{ propertyName: "terminal", first: true, predicate: ["terminal"], descendants: true }], ngImport: i0, template: `
@@ -1 +1 @@
1
- {"version":3,"file":"ng-atomic-components-organisms-terminal.mjs","sources":["../../../../../packages/@ng-atomic/components/src/lib/organisms/terminal/terminal.organism.ts","../../../../../packages/@ng-atomic/components/src/lib/organisms/terminal/ng-atomic-components-organisms-terminal.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ElementRef, Input, ViewChild, AfterViewInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Terminal } from '@xterm/xterm';\n\n@Component({\n selector: 'organisms-terminal',\n standalone: true,\n imports: [CommonModule],\n template: `\n <div #terminal></div>\n `,\n styleUrls: ['./terminal.organism.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TerminalOrganism implements AfterViewInit {\n @ViewChild('terminal')\n terminal!: ElementRef<HTMLDivElement>;\n\n @Input()\n xterm: Terminal | null = null;\n\n async ngAfterViewInit() {\n this.xterm.open(this.terminal.nativeElement);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAca,gBAAgB,CAAA;AAV7B,IAAA,WAAA,GAAA;QAeE,IAAA,CAAA,KAAK,GAAoB,IAAI;AAK9B,IAAA;AAHC,IAAA,MAAM,eAAe,GAAA;QACnB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;IAC9C;8GATW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EANjB;;AAET,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAHS,YAAY,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAOX,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAV5B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,cAClB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EACb;;GAET,EAAA,eAAA,EAEgB,uBAAuB,CAAC,MAAM,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;;sBAG9C,SAAS;uBAAC,UAAU;;sBAGpB;;;AClBH;;AAEG;;;;"}
1
+ {"version":3,"file":"ng-atomic-components-organisms-terminal.mjs","sources":["../../../../../packages/@ng-atomic/components/src/lib/organisms/terminal/terminal.organism.ts","../../../../../packages/@ng-atomic/components/src/lib/organisms/terminal/ng-atomic-components-organisms-terminal.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ElementRef, Input, ViewChild, AfterViewInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Terminal } from '@xterm/xterm';\n\n@Component({\n selector: 'organisms-terminal',\n standalone: true,\n imports: [CommonModule],\n template: `\n <div #terminal></div>\n `,\n styleUrls: ['./terminal.organism.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TerminalOrganism implements AfterViewInit {\n @ViewChild('terminal')\n terminal!: ElementRef<HTMLDivElement>;\n\n @Input()\n xterm: Terminal | null = null;\n\n async ngAfterViewInit() {\n this.xterm?.open(this.terminal.nativeElement);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MAca,gBAAgB,CAAA;AAV7B,IAAA,WAAA,GAAA;QAeE,IAAA,CAAA,KAAK,GAAoB,IAAI;AAK9B,IAAA;AAHC,IAAA,MAAM,eAAe,GAAA;QACnB,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;IAC/C;8GATW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EANjB;;AAET,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAHS,YAAY,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAOX,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAV5B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,cAClB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EACb;;GAET,EAAA,eAAA,EAEgB,uBAAuB,CAAC,MAAM,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;;sBAG9C,SAAS;uBAAC,UAAU;;sBAGpB;;;AClBH;;AAEG;;;;"}
@@ -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-udhj: var(--horizontal-padding)}:host{display:flex;flex-direction:row;width:100%;padding:0 var(--horizontal-padding-SCOPED-IN-text-input-section-udhj) 0;box-sizing:border-box}:host:has(atoms-smart-button){padding:0 0 0 var(--horizontal-padding-SCOPED-IN-text-input-section-udhj)}: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"] }] }); }
51
+ `, isInline: true, styles: [":host{--horizontal-padding: 16px;--horizontal-padding-SCOPED-IN-text-input-section-SFU5: var(--horizontal-padding)}:host{display:flex;flex-direction:row;width:100%;padding:0 var(--horizontal-padding-SCOPED-IN-text-input-section-SFU5) 0;box-sizing:border-box}:host:has(atoms-smart-button){padding:0 0 0 var(--horizontal-padding-SCOPED-IN-text-input-section-SFU5)}: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: "21.1.6", ngImport: i0, type: TextInputSectionOrganism, decorators: [{
54
54
  type: Component,
@@ -75,7 +75,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", 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-udhj: var(--horizontal-padding)}:host{display:flex;flex-direction:row;width:100%;padding:0 var(--horizontal-padding-SCOPED-IN-text-input-section-udhj) 0;box-sizing:border-box}:host:has(atoms-smart-button){padding:0 0 0 var(--horizontal-padding-SCOPED-IN-text-input-section-udhj)}: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"] }]
78
+ ], host: { 'class': 'organism input section' }, styles: [":host{--horizontal-padding: 16px;--horizontal-padding-SCOPED-IN-text-input-section-SFU5: var(--horizontal-padding)}:host{display:flex;flex-direction:row;width:100%;padding:0 var(--horizontal-padding-SCOPED-IN-text-input-section-SFU5) 0;box-sizing:border-box}:host:has(atoms-smart-button){padding:0 0 0 var(--horizontal-padding-SCOPED-IN-text-input-section-SFU5)}: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
  /**
@@ -54,7 +54,7 @@ class TextareaSectionOrganism extends NgAtomicComponent {
54
54
  (action)="dispatch($event)"
55
55
  />
56
56
  }
57
- `, isInline: true, styles: [":host{--vertical-padding: 0px;--vertical-padding-SCOPED-IN-textarea-section-o2s5: var(--vertical-padding);--horizontal-padding: 16px;--horizontal-padding-SCOPED-IN-textarea-section-o2s5: var(--horizontal-padding)}:host{display:block;position:relative;width:100%;padding:var(--vertical-padding-SCOPED-IN-textarea-section-o2s5) var(--horizontal-padding-SCOPED-IN-textarea-section-o2s5);box-sizing:border-box}:host molecules-textarea-field{width:100%}:host atoms-menu-button{position:absolute;bottom:4px;right:4px;background-color:#fff}\n"], dependencies: [{ kind: "component", type: TextareaFieldMolecule, selector: "molecules-textarea-field" }, { kind: "component", type: SmartMenuButtonAtom, selector: "atoms-menu-button, atoms-menu-button" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
57
+ `, isInline: true, styles: [":host{--vertical-padding: 0px;--vertical-padding-SCOPED-IN-textarea-section-IHhK: var(--vertical-padding);--horizontal-padding: 16px;--horizontal-padding-SCOPED-IN-textarea-section-IHhK: var(--horizontal-padding)}:host{display:block;position:relative;width:100%;padding:var(--vertical-padding-SCOPED-IN-textarea-section-IHhK) var(--horizontal-padding-SCOPED-IN-textarea-section-IHhK);box-sizing:border-box}:host molecules-textarea-field{width:100%}:host atoms-menu-button{position:absolute;bottom:4px;right:4px;background-color:#fff}\n"], dependencies: [{ kind: "component", type: TextareaFieldMolecule, selector: "molecules-textarea-field" }, { kind: "component", type: SmartMenuButtonAtom, selector: "atoms-menu-button, atoms-menu-button" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
58
58
  }
59
59
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: TextareaSectionOrganism, decorators: [{
60
60
  type: Component,
@@ -85,7 +85,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
85
85
  }
86
86
  ], host: {
87
87
  'class': 'organism section',
88
- }, styles: [":host{--vertical-padding: 0px;--vertical-padding-SCOPED-IN-textarea-section-o2s5: var(--vertical-padding);--horizontal-padding: 16px;--horizontal-padding-SCOPED-IN-textarea-section-o2s5: var(--horizontal-padding)}:host{display:block;position:relative;width:100%;padding:var(--vertical-padding-SCOPED-IN-textarea-section-o2s5) var(--horizontal-padding-SCOPED-IN-textarea-section-o2s5);box-sizing:border-box}:host molecules-textarea-field{width:100%}:host atoms-menu-button{position:absolute;bottom:4px;right:4px;background-color:#fff}\n"] }]
88
+ }, styles: [":host{--vertical-padding: 0px;--vertical-padding-SCOPED-IN-textarea-section-IHhK: var(--vertical-padding);--horizontal-padding: 16px;--horizontal-padding-SCOPED-IN-textarea-section-IHhK: var(--horizontal-padding)}:host{display:block;position:relative;width:100%;padding:var(--vertical-padding-SCOPED-IN-textarea-section-IHhK) var(--horizontal-padding-SCOPED-IN-textarea-section-IHhK);box-sizing:border-box}:host molecules-textarea-field{width:100%}:host atoms-menu-button{position:absolute;bottom:4px;right:4px;background-color:#fff}\n"] }]
89
89
  }] });
90
90
 
91
91
  /**
@@ -48,7 +48,7 @@ class ThreadMessagesSectionOrganism extends NgAtomicComponent {
48
48
  <molecules-thread-message [message]="message" injectable/>
49
49
  <mat-divider />
50
50
  }
51
- `, isInline: true, styles: [":host{display:block;--primary-color: inherit;--primary-color-SCOPED-IN-thread-messages-section-a9u4: var(--primary-color);--on-primary-color: inherit;--on-primary-color-SCOPED-IN-thread-messages-section-a9u4: var(--on-primary-color);--surface-color: inherit;--surface-color-SCOPED-IN-thread-messages-section-a9u4: var(--surface-color);--on-surface-color: inherit;--on-surface-color-SCOPED-IN-thread-messages-section-a9u4: var(--on-surface-color);--background-color: inherit;--background-color-SCOPED-IN-thread-messages-section-a9u4: var(--background-color);--on-background-color: inherit;--on-background-color-SCOPED-IN-thread-messages-section-a9u4: var(--on-background-color)}:host{display:flex;flex-direction:column;justify-content:flex-start;color:var(--on-surface-color-SCOPED-IN-thread-messages-section-a9u4)}:host mat-divider{width:calc(100% - 16px);box-sizing:border-box;margin:0 8px}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: ThreadMessageMoleculeStore, selector: "molecules-thread-message", inputs: ["name", "message"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
51
+ `, isInline: true, styles: [":host{display:block;--primary-color: inherit;--primary-color-SCOPED-IN-thread-messages-section-Lb13: var(--primary-color);--on-primary-color: inherit;--on-primary-color-SCOPED-IN-thread-messages-section-Lb13: var(--on-primary-color);--surface-color: inherit;--surface-color-SCOPED-IN-thread-messages-section-Lb13: var(--surface-color);--on-surface-color: inherit;--on-surface-color-SCOPED-IN-thread-messages-section-Lb13: var(--on-surface-color);--background-color: inherit;--background-color-SCOPED-IN-thread-messages-section-Lb13: var(--background-color);--on-background-color: inherit;--on-background-color-SCOPED-IN-thread-messages-section-Lb13: var(--on-background-color)}:host{display:flex;flex-direction:column;justify-content:flex-start;color:var(--on-surface-color-SCOPED-IN-thread-messages-section-Lb13)}:host mat-divider{width:calc(100% - 16px);box-sizing:border-box;margin:0 8px}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: ThreadMessageMoleculeStore, selector: "molecules-thread-message", inputs: ["name", "message"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
52
52
  }
53
53
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ThreadMessagesSectionOrganism, decorators: [{
54
54
  type: Component,
@@ -80,7 +80,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
80
80
  'messageActions',
81
81
  ]
82
82
  }
83
- ], styles: [":host{display:block;--primary-color: inherit;--primary-color-SCOPED-IN-thread-messages-section-a9u4: var(--primary-color);--on-primary-color: inherit;--on-primary-color-SCOPED-IN-thread-messages-section-a9u4: var(--on-primary-color);--surface-color: inherit;--surface-color-SCOPED-IN-thread-messages-section-a9u4: var(--surface-color);--on-surface-color: inherit;--on-surface-color-SCOPED-IN-thread-messages-section-a9u4: var(--on-surface-color);--background-color: inherit;--background-color-SCOPED-IN-thread-messages-section-a9u4: var(--background-color);--on-background-color: inherit;--on-background-color-SCOPED-IN-thread-messages-section-a9u4: var(--on-background-color)}:host{display:flex;flex-direction:column;justify-content:flex-start;color:var(--on-surface-color-SCOPED-IN-thread-messages-section-a9u4)}:host mat-divider{width:calc(100% - 16px);box-sizing:border-box;margin:0 8px}\n"] }]
83
+ ], styles: [":host{display:block;--primary-color: inherit;--primary-color-SCOPED-IN-thread-messages-section-Lb13: var(--primary-color);--on-primary-color: inherit;--on-primary-color-SCOPED-IN-thread-messages-section-Lb13: var(--on-primary-color);--surface-color: inherit;--surface-color-SCOPED-IN-thread-messages-section-Lb13: var(--surface-color);--on-surface-color: inherit;--on-surface-color-SCOPED-IN-thread-messages-section-Lb13: var(--on-surface-color);--background-color: inherit;--background-color-SCOPED-IN-thread-messages-section-Lb13: var(--background-color);--on-background-color: inherit;--on-background-color-SCOPED-IN-thread-messages-section-Lb13: var(--on-background-color)}:host{display:flex;flex-direction:column;justify-content:flex-start;color:var(--on-surface-color-SCOPED-IN-thread-messages-section-Lb13)}:host mat-divider{width:calc(100% - 16px);box-sizing:border-box;margin:0 8px}\n"] }]
84
84
  }] });
85
85
 
86
86
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ng-atomic-components-organisms-tree-list.mjs","sources":["../../../../../packages/@ng-atomic/components/src/lib/organisms/tree-list/tree-list.organism.ts","../../../../../packages/@ng-atomic/components/src/lib/organisms/tree-list/ng-atomic-components-organisms-tree-list.ts"],"sourcesContent":["import { FlatTreeControl } from '@angular/cdk/tree';\n\nimport { ChangeDetectionStrategy, Component, computed, Directive, inject, input } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport { injectDataAccessor } from '@ng-atomic/common/pipes/data-accessor';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { BehaviorSubject } from 'rxjs';\nimport { computedAsync } from 'ngxtension/computed-async';\nimport { buildTreeFlatDataSource } from '@ng-atomic/components/organisms/table';\nimport { Actions, NgAtomicComponent } from '@ng-atomic/core';\nimport { MatRippleModule } from '@angular/material/core';\n\nexport enum ActionId {\n CLICK_ITEM = '[@ng-atomic/components/organisms/tree-list] Click Item',\n ITEM_BUTTON_CLICK = '[@ng-atomic/components/organisms/tree-list] Item Button Click',\n}\n\n@Directive({ standalone: true })\nexport class TreeListOrganismStore<T> {\n static readonly ActionId = ActionId;\n readonly items = input<T[]>([]);\n readonly itemActions = input<Actions>([]);\n readonly treeControl = input(new FlatTreeControl<any>(n => n.level, n => n.isExpandable));\n readonly dataAccessor = injectDataAccessor();\n readonly childrenKey = input<string>(null);\n readonly getChildren = computed(() => {\n return (node: T) => this.dataAccessor(node, this.childrenKey() ?? 'children');\n });\n readonly dataSource = computed(() => {\n if (this.childrenKey()) {\n return buildTreeFlatDataSource(this.treeControl(), this.items(), this.getChildren());\n }\n return new MatTableDataSource<T>(this.items());\n });\n readonly data = computedAsync(() => this.dataSource().connect(this), {\n initialValue: [],\n });\n readonly viewChange = new BehaviorSubject<{start: number; end: number}>({\n start: 0,\n end: Number.MAX_VALUE,\n });\n}\n\n\n@Component({\n selector: 'organisms-tree-list',\n imports: [\n MatListModule,\n MatButtonModule,\n MatIconModule,\n MatRippleModule\n],\n template: `\n <mat-list>\n @for (node of store.data(); track node) {\n <mat-list-item matRipple (click)=\"onItemClick(node)\">\n <span matListItemTitle> {{ node.name }} </span>\n <ng-container matListItemMeta>\n @if (hasChild()(node)) {\n <button mat-icon-button (click)=\"store.treeControl().toggle(node); $event.stopPropagation();\">\n <mat-icon>{{ store.treeControl().isExpanded(node) ? 'expand_less' : 'expand_more' }}</mat-icon>\n </button>\n }\n </ng-container>\n </mat-list-item>\n }\n </mat-list>\n `,\n styleUrl: './tree-list.organism.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n {\n directive: TreeListOrganismStore,\n inputs: [\n 'items',\n 'childrenKey',\n 'treeControl',\n ],\n }\n ]\n})\nexport class TreeListOrganism<T> extends NgAtomicComponent {\n protected readonly store = inject(TreeListOrganismStore);\n readonly hasChild = computed(() => {\n return (node: T) => {\n const children = this.store.getChildren()(node);\n return !!children && children.length > 0;\n };\n });\n\n protected onItemClick(node: T) {\n this.dispatch({\n id: ActionId.CLICK_ITEM,\n payload: node,\n });\n }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-atomic-components-organisms-tree-list.mjs","sources":["../../../../../packages/@ng-atomic/components/src/lib/organisms/tree-list/tree-list.organism.ts","../../../../../packages/@ng-atomic/components/src/lib/organisms/tree-list/ng-atomic-components-organisms-tree-list.ts"],"sourcesContent":["import { FlatTreeControl } from '@angular/cdk/tree';\n\nimport { ChangeDetectionStrategy, Component, computed, Directive, inject, input } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport { injectDataAccessor } from '@ng-atomic/common/pipes/data-accessor';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { BehaviorSubject } from 'rxjs';\nimport { computedAsync } from 'ngxtension/computed-async';\nimport { buildTreeFlatDataSource } from '@ng-atomic/components/organisms/table';\nimport { Actions, NgAtomicComponent } from '@ng-atomic/core';\nimport { MatRippleModule } from '@angular/material/core';\n\nexport enum ActionId {\n CLICK_ITEM = '[@ng-atomic/components/organisms/tree-list] Click Item',\n ITEM_BUTTON_CLICK = '[@ng-atomic/components/organisms/tree-list] Item Button Click',\n}\n\n@Directive({ standalone: true })\nexport class TreeListOrganismStore<T> {\n static readonly ActionId = ActionId;\n readonly items = input<T[]>([]);\n readonly itemActions = input<Actions>([]);\n readonly treeControl = input(new FlatTreeControl<any>(n => n.level, n => n.isExpandable));\n readonly dataAccessor = injectDataAccessor();\n readonly childrenKey = input<string>(null as unknown as string);\n readonly getChildren = computed(() => {\n return (node: T) => this.dataAccessor(node, this.childrenKey() ?? 'children');\n });\n readonly dataSource = computed(() => {\n if (this.childrenKey()) {\n return buildTreeFlatDataSource(this.treeControl(), this.items(), this.getChildren());\n }\n return new MatTableDataSource<T>(this.items());\n });\n readonly data = computedAsync(() => this.dataSource().connect(this), {\n initialValue: [],\n });\n readonly viewChange = new BehaviorSubject<{start: number; end: number}>({\n start: 0,\n end: Number.MAX_VALUE,\n });\n}\n\n\n@Component({\n selector: 'organisms-tree-list',\n imports: [\n MatListModule,\n MatButtonModule,\n MatIconModule,\n MatRippleModule\n],\n template: `\n <mat-list>\n @for (node of store.data(); track node) {\n <mat-list-item matRipple (click)=\"onItemClick(node)\">\n <span matListItemTitle> {{ node.name }} </span>\n <ng-container matListItemMeta>\n @if (hasChild()(node)) {\n <button mat-icon-button (click)=\"store.treeControl().toggle(node); $event.stopPropagation();\">\n <mat-icon>{{ store.treeControl().isExpanded(node) ? 'expand_less' : 'expand_more' }}</mat-icon>\n </button>\n }\n </ng-container>\n </mat-list-item>\n }\n </mat-list>\n `,\n styleUrl: './tree-list.organism.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n {\n directive: TreeListOrganismStore,\n inputs: [\n 'items',\n 'childrenKey',\n 'treeControl',\n ],\n }\n ]\n})\nexport class TreeListOrganism<T> extends NgAtomicComponent {\n protected readonly store = inject(TreeListOrganismStore);\n readonly hasChild = computed(() => {\n return (node: T) => {\n const children = this.store.getChildren()(node);\n return !!children && children.length > 0;\n };\n });\n\n protected onItemClick(node: T) {\n this.dispatch({\n id: ActionId.CLICK_ITEM,\n payload: node,\n });\n }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ng-atomic-components-organisms-tree-section.mjs","sources":["../../../../../packages/@ng-atomic/components/src/lib/organisms/tree-section/tree-section.organism.ts","../../../../../packages/@ng-atomic/components/src/lib/organisms/tree-section/ng-atomic-components-organisms-tree-section.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatTreeFlatDataSource, MatTreeFlattener, MatTreeModule } from '@angular/material/tree';\nimport { FlatTreeControl } from '@angular/cdk/tree';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport * as gql from 'gql-query-builder';\nimport { Action } from '@ng-atomic/core';\nimport { parse, print } from 'graphql';\n\nfunction format(query: string): string {\n return print(parse(query));\n}\n\nexport class Node {\n children: Node[];\n item: string;\n value?: boolean | string;\n}\n\nexport class FlatNode {\n item: string;\n level: number;\n expandable: boolean;\n}\n\nexport enum ActionId {\n CHANGE_QUERY = '[@ng-atomic/components/organisms/tree-section] Change Query',\n}\n\n@Component({\n selector: 'organisms-tree-section',\n standalone: true,\n imports: [\n CommonModule,\n MatTreeModule,\n MatButtonModule,\n MatIconModule,\n MatCheckboxModule,\n ],\n template: `\n <mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n <mat-tree-node *matTreeNodeDef=\"let node\" matTreeNodeToggle matTreeNodePadding>\n <mat-checkbox\n class=\"checklist-leaf-node\"\n [checked]=\"selection.isSelected(node)\"\n (change)=\"todoLeafItemSelectionToggle(node)\"\n >{{ node.item }} (a)</mat-checkbox>\n </mat-tree-node>\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\" matTreeNodePadding>\n <mat-checkbox\n [checked]=\"descendantsAllSelected(node)\"\n [indeterminate]=\"descendantsPartiallySelected(node)\"\n (change)=\"nodeSelectionToggle(node)\"\n >{{ node.item }} (b)</mat-checkbox>\n </mat-tree-node>\n </mat-tree>\n `,\n styleUrls: ['./tree-section.organism.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TreeSectionOrganism implements OnInit {\n flatNodeMap = new Map<FlatNode, Node>();\n nestedNodeMap = new Map<Node, FlatNode>();\n getLevel = (node: FlatNode) => node.level;\n isExpandable = (node: FlatNode) => node.expandable;\n treeControl = new FlatTreeControl<FlatNode>(this.getLevel, this.isExpandable);\n hasChild = (_: number, _nodeData: FlatNode) => _nodeData.expandable;\n getChildren = (node: Node): Node[] => node.children;\n transformer = (node: Node, level: number) => {\n const existingNode = this.nestedNodeMap.get(node);\n const flatNode =\n existingNode && existingNode.item === node.item ? existingNode : new FlatNode();\n flatNode.item = node.item;\n flatNode.level = level;\n flatNode.expandable = !!node.children?.length;\n\n this.flatNodeMap.set(flatNode, node);\n this.nestedNodeMap.set(node, flatNode);\n return flatNode;\n };\n treeFlattener = new MatTreeFlattener(\n this.transformer,\n this.getLevel,\n this.isExpandable,\n this.getChildren,\n );\n dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);\n\n selection = new SelectionModel<FlatNode>(true);\n\n buildNode(obj: {[key: string]: any}, level: number): Node[] {\n return Object.keys(obj).reduce<Node[]>((accumulator, key) => {\n const value = obj[key];\n const node = new Node();\n node.item = key;\n\n if (value != null) {\n if (typeof value === 'object') {\n node.children = this.buildNode(value, level + 1);\n } else {\n node.item = value;\n }\n }\n\n return accumulator.concat(node);\n }, []);\n }\n\n buildValueNode(nodes: Node[]): Node[] {\n return (nodes ?? []).map(node => {\n const flatNode = this.nestedNodeMap.get(node);\n node.value = this.selection.isSelected(flatNode);\n node.children = this.buildValueNode(node.children);\n return node;\n });\n }\n\n buildFields(nodes: Node[]): (string | object)[] {\n return nodes.reduce((acc, node) => {\n if(node.value) {\n if (node?.children?.length) {\n return [...acc, {[node.item]: this.buildFields(node.children)}];\n } else {\n return [...acc, node.item];\n }\n } else {\n return [...acc];\n }\n }, []);\n }\n\n onChange() {\n const nodes = this.buildValueNode(this.dataSource.data ?? []);\n\n const fields = this.buildFields(nodes);\n const options = fields.map(field => ({\n operation: Object.keys(field)[0],\n fields: Object.values(field)[0],\n variables: {\n take: {\n value: 10,\n required: false,\n },\n },\n }))\n\n const query = gql.query(options);\n\n console.debug('parsed:', parse(query.query));\n\n this.action.emit({\n id: ActionId.CHANGE_QUERY,\n payload: {query: format(query.query), variables: query.variables},\n });\n console.debug('query:', format(query.query));\n }\n\n @Input()\n data: any = {};\n\n @Output()\n action = new EventEmitter<Action>();\n\n ngOnInit() {\n // const TREE_DATA = {\n // Groceries: {\n // 'Almond Meal flour': null,\n // 'Organic eggs': null,\n // 'Protein Powder': null,\n // Fruits: {\n // Apple: null,\n // Berries: ['Blueberry', 'Raspberry'],\n // Orange: null,\n // },\n // },\n // Reminders: [\n // 'Cook dinner',\n // 'Read the Material Design spec',\n // 'Upgrade Application to Angular',\n // {\n // etst: ['test'],\n // }\n // ],\n // };\n this.dataSource.data = this.buildNode(this.data, 0);\n }\n\n todoLeafItemSelectionToggle(node) {\n console.debug('todoItemSelectionToggle', node);\n if (this.selection.isSelected(node)) {\n this.selection.deselect(node);\n this.treeControl.collapse(node);\n } else {\n this.selection.select(node);\n this.treeControl.expand(node);\n }\n this.onChange();\n\n }\n\n /** Whether all the descendants of the node are selected. */\n descendantsAllSelected(node: FlatNode): boolean {\n const descendants = this.treeControl.getDescendants(node);\n const descAllSelected =\n descendants.length > 0 &&\n descendants.every(child => {\n return this.selection.isSelected(child);\n });\n return descAllSelected;\n }\n\n /** Whether part of the descendants are selected */\n descendantsPartiallySelected(node: FlatNode): boolean {\n const descendants = this.treeControl.getDescendants(node);\n const result = descendants.some(child => this.selection.isSelected(child));\n return result && !this.descendantsAllSelected(node);\n }\n\n nodeSelectionToggle(node: FlatNode) {\n console.debug('todoItemSelectionToggle', this.selection.isSelected(node));\n if (this.selection.isSelected(node)) {\n this.selection.deselect(node);\n this.treeControl.collapse(node);\n } else {\n this.selection.select(node);\n this.treeControl.expand(node);\n }\n console.debug('todoItemSelectionToggle', node);\n this.onChange();\n }\n}\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-atomic-components-organisms-tree-section.mjs","sources":["../../../../../packages/@ng-atomic/components/src/lib/organisms/tree-section/tree-section.organism.ts","../../../../../packages/@ng-atomic/components/src/lib/organisms/tree-section/ng-atomic-components-organisms-tree-section.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatTreeFlatDataSource, MatTreeFlattener, MatTreeModule } from '@angular/material/tree';\nimport { FlatTreeControl } from '@angular/cdk/tree';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport * as gql from 'gql-query-builder';\nimport { Action } from '@ng-atomic/core';\nimport { parse, print } from 'graphql';\n\nfunction format(query: string): string {\n return print(parse(query));\n}\n\nexport class Node {\n children!: Node[];\n item!: string;\n value?: boolean | string;\n}\n\nexport class FlatNode {\n item!: string;\n level!: number;\n expandable!: boolean;\n}\n\nexport enum ActionId {\n CHANGE_QUERY = '[@ng-atomic/components/organisms/tree-section] Change Query',\n}\n\n@Component({\n selector: 'organisms-tree-section',\n standalone: true,\n imports: [\n CommonModule,\n MatTreeModule,\n MatButtonModule,\n MatIconModule,\n MatCheckboxModule,\n ],\n template: `\n <mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n <mat-tree-node *matTreeNodeDef=\"let node\" matTreeNodeToggle matTreeNodePadding>\n <mat-checkbox\n class=\"checklist-leaf-node\"\n [checked]=\"selection.isSelected(node)\"\n (change)=\"todoLeafItemSelectionToggle(node)\"\n >{{ node.item }} (a)</mat-checkbox>\n </mat-tree-node>\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\" matTreeNodePadding>\n <mat-checkbox\n [checked]=\"descendantsAllSelected(node)\"\n [indeterminate]=\"descendantsPartiallySelected(node)\"\n (change)=\"nodeSelectionToggle(node)\"\n >{{ node.item }} (b)</mat-checkbox>\n </mat-tree-node>\n </mat-tree>\n `,\n styleUrls: ['./tree-section.organism.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TreeSectionOrganism implements OnInit {\n flatNodeMap = new Map<FlatNode, Node>();\n nestedNodeMap = new Map<Node, FlatNode>();\n getLevel = (node: FlatNode) => node.level;\n isExpandable = (node: FlatNode) => node.expandable;\n treeControl = new FlatTreeControl<FlatNode>(this.getLevel, this.isExpandable);\n hasChild = (_: number, _nodeData: FlatNode) => _nodeData.expandable;\n getChildren = (node: Node): Node[] => node.children;\n transformer = (node: Node, level: number) => {\n const existingNode = this.nestedNodeMap.get(node);\n const flatNode =\n existingNode && existingNode.item === node.item ? existingNode : new FlatNode();\n flatNode.item = node.item;\n flatNode.level = level;\n flatNode.expandable = !!node.children?.length;\n\n this.flatNodeMap.set(flatNode, node);\n this.nestedNodeMap.set(node, flatNode);\n return flatNode;\n };\n treeFlattener = new MatTreeFlattener(\n this.transformer,\n this.getLevel,\n this.isExpandable,\n this.getChildren,\n );\n dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);\n\n selection = new SelectionModel<FlatNode>(true);\n\n buildNode(obj: {[key: string]: any}, level: number): Node[] {\n return Object.keys(obj).reduce<Node[]>((accumulator, key) => {\n const value = obj[key];\n const node = new Node();\n node.item = key;\n\n if (value != null) {\n if (typeof value === 'object') {\n node.children = this.buildNode(value, level + 1);\n } else {\n node.item = value;\n }\n }\n\n return accumulator.concat(node);\n }, []);\n }\n\n buildValueNode(nodes: Node[]): Node[] {\n return (nodes ?? []).map(node => {\n const flatNode = this.nestedNodeMap.get(node)!;\n node.value = this.selection.isSelected(flatNode);\n node.children = this.buildValueNode(node.children);\n return node;\n });\n }\n\n buildFields(nodes: Node[]): (string | object)[] {\n return nodes.reduce<(string | object)[]>((acc, node) => {\n if(node.value) {\n if (node?.children?.length) {\n return [...acc, {[node.item]: this.buildFields(node.children)}];\n } else {\n return [...acc, node.item];\n }\n } else {\n return [...acc];\n }\n }, []);\n }\n\n onChange() {\n const nodes = this.buildValueNode(this.dataSource.data ?? []);\n\n const fields = this.buildFields(nodes);\n const options = fields.map(field => ({\n operation: Object.keys(field)[0],\n fields: Object.values(field)[0],\n variables: {\n take: {\n value: 10,\n required: false,\n },\n },\n }))\n\n const query = gql.query(options);\n\n console.debug('parsed:', parse(query.query));\n\n this.action.emit({\n id: ActionId.CHANGE_QUERY,\n payload: {query: format(query.query), variables: query.variables},\n });\n console.debug('query:', format(query.query));\n }\n\n @Input()\n data: any = {};\n\n @Output()\n action = new EventEmitter<Action>();\n\n ngOnInit() {\n // const TREE_DATA = {\n // Groceries: {\n // 'Almond Meal flour': null,\n // 'Organic eggs': null,\n // 'Protein Powder': null,\n // Fruits: {\n // Apple: null,\n // Berries: ['Blueberry', 'Raspberry'],\n // Orange: null,\n // },\n // },\n // Reminders: [\n // 'Cook dinner',\n // 'Read the Material Design spec',\n // 'Upgrade Application to Angular',\n // {\n // etst: ['test'],\n // }\n // ],\n // };\n this.dataSource.data = this.buildNode(this.data, 0);\n }\n\n todoLeafItemSelectionToggle(node: FlatNode) {\n console.debug('todoItemSelectionToggle', node);\n if (this.selection.isSelected(node)) {\n this.selection.deselect(node);\n this.treeControl.collapse(node);\n } else {\n this.selection.select(node);\n this.treeControl.expand(node);\n }\n this.onChange();\n\n }\n\n /** Whether all the descendants of the node are selected. */\n descendantsAllSelected(node: FlatNode): boolean {\n const descendants = this.treeControl.getDescendants(node);\n const descAllSelected =\n descendants.length > 0 &&\n descendants.every(child => {\n return this.selection.isSelected(child);\n });\n return descAllSelected;\n }\n\n /** Whether part of the descendants are selected */\n descendantsPartiallySelected(node: FlatNode): boolean {\n const descendants = this.treeControl.getDescendants(node);\n const result = descendants.some(child => this.selection.isSelected(child));\n return result && !this.descendantsAllSelected(node);\n }\n\n nodeSelectionToggle(node: FlatNode) {\n console.debug('todoItemSelectionToggle', this.selection.isSelected(node));\n if (this.selection.isSelected(node)) {\n this.selection.deselect(node);\n this.treeControl.collapse(node);\n } else {\n this.selection.select(node);\n this.treeControl.expand(node);\n }\n console.debug('todoItemSelectionToggle', node);\n this.onChange();\n }\n}\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -67,7 +67,7 @@ function tryJsonParse(value) {
67
67
  function recoveryFormValue(form, key = 'default') {
68
68
  // FormControlの場合とFormGroupの場合で処理を分ける
69
69
  if (form instanceof FormGroup) {
70
- form.patchValue(tryJsonParse(localStorage.getItem(key)));
70
+ form.patchValue(tryJsonParse(localStorage.getItem(key) ?? ''));
71
71
  form.valueChanges.subscribe(value => {
72
72
  localStorage.setItem(key, JSON.stringify(value));
73
73
  });
@@ -411,7 +411,7 @@ let IndexPageStore = class IndexPageStore extends InjectableComponent {
411
411
  this.selected = computed(() => {
412
412
  const items = this.items() ?? [];
413
413
  const selectedIdSet = new Set(this.selectedIds());
414
- return (items ?? []).filter(entry => selectedIdSet.has(entry.id));
414
+ return (items ?? []).filter((entry) => selectedIdSet.has(entry.id));
415
415
  }, ...(ngDevMode ? [{ debugName: "selected" }] : []));
416
416
  this.isAllSelected = computed(() => {
417
417
  return this.displayedItems().every(entry => this.selectedIds().includes(entry.id));
@@ -484,6 +484,8 @@ class IndexPage extends NgAtomicComponent {
484
484
  onItemButtonClicked(item) {
485
485
  const actions = resolveActions(this.store.itemActions(), item);
486
486
  this.sheet.openActions(actions).then((action) => {
487
+ if (!action)
488
+ return;
487
489
  this.dispatch({
488
490
  id: action.id,
489
491
  payload: action.payload,
@@ -529,7 +531,7 @@ class IndexPage extends NgAtomicComponent {
529
531
  <ng-dashboard dashboard injectable/>
530
532
  </templates-index>
531
533
  </frames-router-outlet>
532
- `, isInline: true, styles: ["@charset \"UTF-8\";:host{width:100%;height:100%;display:block;--page-width-lv3-SCOPED-IN-index-u4PI: var(--page-width-lv3);--primary-color-SCOPED-IN-index-u4PI: var(--primary-color);--on-primary-color-SCOPED-IN-index-u4PI: var(--on-primary-color);--surface-color-SCOPED-IN-index-u4PI: var(--surface-color);--on-surface-color-SCOPED-IN-index-u4PI: var(--on-surface-color);--on-background-color-SCOPED-IN-index-u4PI: var(--on-background-color);--background-color-SCOPED-IN-index-u4PI: var(--background-color);--navigator-background-color-SCOPED-IN-index-u4PI: var(--navigator-background-color);--navigator-on-background-color-SCOPED-IN-index-u4PI: var(--navigator-on-background-color);--table-background-color-SCOPED-IN-index-u4PI: var(--table-background-color);--table-on-background-color-SCOPED-IN-index-u4PI: var(--table-on-background-color);--first-content-height: 0px;--first-content-height-SCOPED-IN-index-u4PI: var(--first-content-height)}:host .template{width:var(--page-width-lv3-SCOPED-IN-index-u4PI);padding-left:0;box-sizing:border-box;transition:padding-left .3s;--first-content-height: var(--first-content-height-SCOPED-IN-index-u4PI)}:host .template div[navDashboard]{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;padding:16px;box-sizing:border-box}:host .template div[navDashboard] ng-atomic-form-section-builder{--horizontal-padding: 0}:host *{--primary-color: var(--primary-color-SCOPED-IN-index-u4PI);--on-primary-color: var(--on-primary-color-SCOPED-IN-index-u4PI);--surface-color: var(--surface-color-SCOPED-IN-index-u4PI);--on-surface-color: var(--on-surface-color-SCOPED-IN-index-u4PI);--background-color: var(--background-color-SCOPED-IN-index-u4PI);--on-background-color: var(--on-background-color-SCOPED-IN-index-u4PI);--navigator-background-color: var(--navigator-background-color-SCOPED-IN-index-u4PI);--navigator-on-background-color: var(--navigator-on-background-color-SCOPED-IN-index-u4PI);--table-background-color: var(--table-background-color-SCOPED-IN-index-u4PI);--table-on-background-color: var(--table-on-background-color-SCOPED-IN-index-u4PI)}\n"], dependencies: [{ kind: "component", type: RouterOutletFrame, selector: "frames-router-outlet", outputs: ["events"] }, { kind: "component", type: IndexTemplate, selector: "templates-index" }, { kind: "component", type: NgAtomicFormSectionBuilder, selector: "ng-atomic-form-section-builder", inputs: ["form", "formFlatExcludes", "fieldMap", "fieldKeys"] }, { kind: "directive", type: IndexPageDashboardStore, selector: "ng-dashboard" }] }); }
534
+ `, isInline: true, styles: ["@charset \"UTF-8\";:host{width:100%;height:100%;display:block;--page-width-lv3-SCOPED-IN-index-gKx1: var(--page-width-lv3);--primary-color-SCOPED-IN-index-gKx1: var(--primary-color);--on-primary-color-SCOPED-IN-index-gKx1: var(--on-primary-color);--surface-color-SCOPED-IN-index-gKx1: var(--surface-color);--on-surface-color-SCOPED-IN-index-gKx1: var(--on-surface-color);--on-background-color-SCOPED-IN-index-gKx1: var(--on-background-color);--background-color-SCOPED-IN-index-gKx1: var(--background-color);--navigator-background-color-SCOPED-IN-index-gKx1: var(--navigator-background-color);--navigator-on-background-color-SCOPED-IN-index-gKx1: var(--navigator-on-background-color);--table-background-color-SCOPED-IN-index-gKx1: var(--table-background-color);--table-on-background-color-SCOPED-IN-index-gKx1: var(--table-on-background-color);--first-content-height: 0px;--first-content-height-SCOPED-IN-index-gKx1: var(--first-content-height)}:host .template{width:var(--page-width-lv3-SCOPED-IN-index-gKx1);padding-left:0;box-sizing:border-box;transition:padding-left .3s;--first-content-height: var(--first-content-height-SCOPED-IN-index-gKx1)}:host .template div[navDashboard]{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;padding:16px;box-sizing:border-box}:host .template div[navDashboard] ng-atomic-form-section-builder{--horizontal-padding: 0}:host *{--primary-color: var(--primary-color-SCOPED-IN-index-gKx1);--on-primary-color: var(--on-primary-color-SCOPED-IN-index-gKx1);--surface-color: var(--surface-color-SCOPED-IN-index-gKx1);--on-surface-color: var(--on-surface-color-SCOPED-IN-index-gKx1);--background-color: var(--background-color-SCOPED-IN-index-gKx1);--on-background-color: var(--on-background-color-SCOPED-IN-index-gKx1);--navigator-background-color: var(--navigator-background-color-SCOPED-IN-index-gKx1);--navigator-on-background-color: var(--navigator-on-background-color-SCOPED-IN-index-gKx1);--table-background-color: var(--table-background-color-SCOPED-IN-index-gKx1);--table-on-background-color: var(--table-on-background-color-SCOPED-IN-index-gKx1)}\n"], dependencies: [{ kind: "component", type: RouterOutletFrame, selector: "frames-router-outlet", outputs: ["events"] }, { kind: "component", type: IndexTemplate, selector: "templates-index" }, { kind: "component", type: NgAtomicFormSectionBuilder, selector: "ng-atomic-form-section-builder", inputs: ["form", "formFlatExcludes", "fieldMap", "fieldKeys"] }, { kind: "directive", type: IndexPageDashboardStore, selector: "ng-dashboard" }] }); }
533
535
  }
534
536
  __decorate([
535
537
  Effect(IndexTemplate.ActionId.BACK),
@@ -621,7 +623,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
621
623
  'displayedItems',
622
624
  ],
623
625
  },
624
- ], styles: ["@charset \"UTF-8\";:host{width:100%;height:100%;display:block;--page-width-lv3-SCOPED-IN-index-u4PI: var(--page-width-lv3);--primary-color-SCOPED-IN-index-u4PI: var(--primary-color);--on-primary-color-SCOPED-IN-index-u4PI: var(--on-primary-color);--surface-color-SCOPED-IN-index-u4PI: var(--surface-color);--on-surface-color-SCOPED-IN-index-u4PI: var(--on-surface-color);--on-background-color-SCOPED-IN-index-u4PI: var(--on-background-color);--background-color-SCOPED-IN-index-u4PI: var(--background-color);--navigator-background-color-SCOPED-IN-index-u4PI: var(--navigator-background-color);--navigator-on-background-color-SCOPED-IN-index-u4PI: var(--navigator-on-background-color);--table-background-color-SCOPED-IN-index-u4PI: var(--table-background-color);--table-on-background-color-SCOPED-IN-index-u4PI: var(--table-on-background-color);--first-content-height: 0px;--first-content-height-SCOPED-IN-index-u4PI: var(--first-content-height)}:host .template{width:var(--page-width-lv3-SCOPED-IN-index-u4PI);padding-left:0;box-sizing:border-box;transition:padding-left .3s;--first-content-height: var(--first-content-height-SCOPED-IN-index-u4PI)}:host .template div[navDashboard]{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;padding:16px;box-sizing:border-box}:host .template div[navDashboard] ng-atomic-form-section-builder{--horizontal-padding: 0}:host *{--primary-color: var(--primary-color-SCOPED-IN-index-u4PI);--on-primary-color: var(--on-primary-color-SCOPED-IN-index-u4PI);--surface-color: var(--surface-color-SCOPED-IN-index-u4PI);--on-surface-color: var(--on-surface-color-SCOPED-IN-index-u4PI);--background-color: var(--background-color-SCOPED-IN-index-u4PI);--on-background-color: var(--on-background-color-SCOPED-IN-index-u4PI);--navigator-background-color: var(--navigator-background-color-SCOPED-IN-index-u4PI);--navigator-on-background-color: var(--navigator-on-background-color-SCOPED-IN-index-u4PI);--table-background-color: var(--table-background-color-SCOPED-IN-index-u4PI);--table-on-background-color: var(--table-on-background-color-SCOPED-IN-index-u4PI)}\n"] }]
626
+ ], styles: ["@charset \"UTF-8\";:host{width:100%;height:100%;display:block;--page-width-lv3-SCOPED-IN-index-gKx1: var(--page-width-lv3);--primary-color-SCOPED-IN-index-gKx1: var(--primary-color);--on-primary-color-SCOPED-IN-index-gKx1: var(--on-primary-color);--surface-color-SCOPED-IN-index-gKx1: var(--surface-color);--on-surface-color-SCOPED-IN-index-gKx1: var(--on-surface-color);--on-background-color-SCOPED-IN-index-gKx1: var(--on-background-color);--background-color-SCOPED-IN-index-gKx1: var(--background-color);--navigator-background-color-SCOPED-IN-index-gKx1: var(--navigator-background-color);--navigator-on-background-color-SCOPED-IN-index-gKx1: var(--navigator-on-background-color);--table-background-color-SCOPED-IN-index-gKx1: var(--table-background-color);--table-on-background-color-SCOPED-IN-index-gKx1: var(--table-on-background-color);--first-content-height: 0px;--first-content-height-SCOPED-IN-index-gKx1: var(--first-content-height)}:host .template{width:var(--page-width-lv3-SCOPED-IN-index-gKx1);padding-left:0;box-sizing:border-box;transition:padding-left .3s;--first-content-height: var(--first-content-height-SCOPED-IN-index-gKx1)}:host .template div[navDashboard]{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;padding:16px;box-sizing:border-box}:host .template div[navDashboard] ng-atomic-form-section-builder{--horizontal-padding: 0}:host *{--primary-color: var(--primary-color-SCOPED-IN-index-gKx1);--on-primary-color: var(--on-primary-color-SCOPED-IN-index-gKx1);--surface-color: var(--surface-color-SCOPED-IN-index-gKx1);--on-surface-color: var(--on-surface-color-SCOPED-IN-index-gKx1);--background-color: var(--background-color-SCOPED-IN-index-gKx1);--on-background-color: var(--on-background-color-SCOPED-IN-index-gKx1);--navigator-background-color: var(--navigator-background-color-SCOPED-IN-index-gKx1);--navigator-on-background-color: var(--navigator-on-background-color-SCOPED-IN-index-gKx1);--table-background-color: var(--table-background-color-SCOPED-IN-index-gKx1);--table-on-background-color: var(--table-on-background-color-SCOPED-IN-index-gKx1)}\n"] }]
625
627
  }], propDecorators: { back: [], close: [], itemClick: [], onHeaderCheckboxClick: [], onItemButtonClicked: [], onTableHeaderClick: [], onCheckboxClick: [] } });
626
628
 
627
629
  /**