@nanahoshi/mona-ui 0.1.0 → 0.2.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 (176) hide show
  1. package/auto-complete/package.json +4 -0
  2. package/avatar/package.json +4 -0
  3. package/breadcrumb/package.json +4 -0
  4. package/button/package.json +4 -0
  5. package/button-group/package.json +4 -0
  6. package/calendar/package.json +4 -0
  7. package/check-box/package.json +4 -0
  8. package/chip/package.json +4 -0
  9. package/circular-progress-bar/package.json +4 -0
  10. package/color-gradient/package.json +4 -0
  11. package/color-palette/package.json +4 -0
  12. package/color-picker/package.json +4 -0
  13. package/combo-box/package.json +4 -0
  14. package/common/package.json +4 -0
  15. package/contextmenu/package.json +4 -0
  16. package/date-input/package.json +4 -0
  17. package/date-picker/package.json +4 -0
  18. package/datetime-picker/package.json +4 -0
  19. package/dialog/package.json +4 -0
  20. package/dropdown-button/package.json +4 -0
  21. package/dropdown-list/package.json +4 -0
  22. package/dropdowns/package.json +4 -0
  23. package/editor/package.json +4 -0
  24. package/expansion-panel/package.json +4 -0
  25. package/fesm2022/nanahoshi-mona-ui-auto-complete.mjs +40 -55
  26. package/fesm2022/nanahoshi-mona-ui-breadcrumb.mjs +24 -58
  27. package/fesm2022/nanahoshi-mona-ui-button-group.mjs +37 -48
  28. package/fesm2022/nanahoshi-mona-ui-button.mjs +130 -129
  29. package/fesm2022/nanahoshi-mona-ui-calendar.mjs +69 -165
  30. package/fesm2022/nanahoshi-mona-ui-check-box.mjs +81 -128
  31. package/fesm2022/nanahoshi-mona-ui-chip.mjs +102 -112
  32. package/fesm2022/nanahoshi-mona-ui-circular-progress-bar.mjs +11 -25
  33. package/fesm2022/nanahoshi-mona-ui-color-gradient.mjs +41 -92
  34. package/fesm2022/nanahoshi-mona-ui-color-palette.mjs +27 -49
  35. package/fesm2022/nanahoshi-mona-ui-color-picker.mjs +64 -65
  36. package/fesm2022/nanahoshi-mona-ui-combo-box.mjs +39 -61
  37. package/fesm2022/nanahoshi-mona-ui-date-input.mjs +12 -15
  38. package/fesm2022/nanahoshi-mona-ui-date-picker.mjs +44 -33
  39. package/fesm2022/nanahoshi-mona-ui-datetime-picker.mjs +58 -60
  40. package/fesm2022/nanahoshi-mona-ui-dialog.mjs +52 -165
  41. package/fesm2022/nanahoshi-mona-ui-dropdown-list.mjs +36 -59
  42. package/fesm2022/nanahoshi-mona-ui-dropdowns.mjs +56 -61
  43. package/fesm2022/nanahoshi-mona-ui-editor.mjs +302 -81
  44. package/fesm2022/nanahoshi-mona-ui-expansion-panel.mjs +33 -84
  45. package/fesm2022/nanahoshi-mona-ui-fieldset.mjs +12 -45
  46. package/fesm2022/nanahoshi-mona-ui-filter.mjs +18 -48
  47. package/fesm2022/{nanahoshi-mona-ui-grid-grid-footer-cell.component-B9SQH5N-.mjs → nanahoshi-mona-ui-grid-grid-footer-cell.component-B6FBLtrr.mjs} +14 -14
  48. package/fesm2022/{nanahoshi-mona-ui-grid-grid-footer-table-cell.directive-DlLwcCFT.mjs → nanahoshi-mona-ui-grid-grid-footer-table-cell.directive-OJe4UYuw.mjs} +4 -8
  49. package/fesm2022/nanahoshi-mona-ui-grid-grid-list.component-DCd8K6ng.mjs +121 -0
  50. package/fesm2022/{nanahoshi-mona-ui-grid-grid-toggle.component-DIUutx9s.mjs → nanahoshi-mona-ui-grid-grid-toggle.component-Dl8Hlkhj.mjs} +26 -55
  51. package/fesm2022/nanahoshi-mona-ui-grid-grid-virtual-list.component-C5FRZlvv.mjs +231 -0
  52. package/fesm2022/{nanahoshi-mona-ui-grid-nanahoshi-mona-ui-grid-C3eZIaJK.mjs → nanahoshi-mona-ui-grid-nanahoshi-mona-ui-grid-BRZUd8cE.mjs} +167 -451
  53. package/fesm2022/nanahoshi-mona-ui-grid.mjs +1 -1
  54. package/fesm2022/nanahoshi-mona-ui-internal-indicator-icon.mjs +10 -28
  55. package/fesm2022/nanahoshi-mona-ui-internal-list.mjs +57 -87
  56. package/fesm2022/nanahoshi-mona-ui-internal-tree.mjs +48 -139
  57. package/fesm2022/nanahoshi-mona-ui-internal.mjs +29 -1
  58. package/fesm2022/nanahoshi-mona-ui-list-box.mjs +10 -32
  59. package/fesm2022/nanahoshi-mona-ui-list-view.mjs +8 -21
  60. package/fesm2022/nanahoshi-mona-ui-menubar.mjs +50 -156
  61. package/fesm2022/nanahoshi-mona-ui-multi-select.mjs +40 -69
  62. package/fesm2022/nanahoshi-mona-ui-notification.mjs +32 -116
  63. package/fesm2022/nanahoshi-mona-ui-numeric-text-box.mjs +81 -107
  64. package/fesm2022/nanahoshi-mona-ui-pager.mjs +33 -85
  65. package/fesm2022/nanahoshi-mona-ui-placeholder.mjs +12 -34
  66. package/fesm2022/nanahoshi-mona-ui-popover.mjs +31 -52
  67. package/fesm2022/nanahoshi-mona-ui-popup-menu.mjs +38 -110
  68. package/fesm2022/nanahoshi-mona-ui-popup.mjs +4 -4
  69. package/fesm2022/nanahoshi-mona-ui-progress-bar.mjs +21 -62
  70. package/fesm2022/nanahoshi-mona-ui-radio-button.mjs +66 -111
  71. package/fesm2022/nanahoshi-mona-ui-scroll-view.mjs +60 -151
  72. package/fesm2022/nanahoshi-mona-ui-slider.mjs +117 -173
  73. package/fesm2022/nanahoshi-mona-ui-split-button.mjs +32 -45
  74. package/fesm2022/nanahoshi-mona-ui-splitter.mjs +29 -64
  75. package/fesm2022/nanahoshi-mona-ui-stepper.mjs +38 -101
  76. package/fesm2022/nanahoshi-mona-ui-switch.mjs +58 -79
  77. package/fesm2022/nanahoshi-mona-ui-tabs.mjs +42 -118
  78. package/fesm2022/nanahoshi-mona-ui-text-area.mjs +29 -37
  79. package/fesm2022/nanahoshi-mona-ui-text-box.mjs +60 -81
  80. package/fesm2022/nanahoshi-mona-ui-theme.mjs +1111 -269
  81. package/fesm2022/nanahoshi-mona-ui-time-picker.mjs +45 -39
  82. package/fesm2022/nanahoshi-mona-ui-time-selector.mjs +45 -109
  83. package/fesm2022/nanahoshi-mona-ui-tooltip.mjs +54 -82
  84. package/fesm2022/nanahoshi-mona-ui-tree-view.mjs +2 -2
  85. package/fesm2022/nanahoshi-mona-ui-window.mjs +35 -115
  86. package/fieldset/package.json +4 -0
  87. package/filter/package.json +4 -0
  88. package/grid/package.json +4 -0
  89. package/internal/filter-input/package.json +4 -0
  90. package/internal/indicator-icon/package.json +4 -0
  91. package/internal/list/package.json +4 -0
  92. package/internal/package.json +4 -0
  93. package/internal/tree/package.json +4 -0
  94. package/list/package.json +4 -0
  95. package/list-box/package.json +4 -0
  96. package/list-view/package.json +4 -0
  97. package/menubar/package.json +4 -0
  98. package/multi-select/package.json +4 -0
  99. package/notification/package.json +4 -0
  100. package/numeric-text-box/package.json +4 -0
  101. package/package.json +31 -5
  102. package/pager/package.json +4 -0
  103. package/placeholder/package.json +4 -0
  104. package/popover/package.json +4 -0
  105. package/popup/package.json +4 -0
  106. package/popup-menu/package.json +4 -0
  107. package/progress-bar/package.json +4 -0
  108. package/query/package.json +4 -0
  109. package/radio-button/package.json +4 -0
  110. package/scroll-view/package.json +4 -0
  111. package/slider/package.json +4 -0
  112. package/split-button/package.json +4 -0
  113. package/splitter/package.json +4 -0
  114. package/stepper/package.json +4 -0
  115. package/switch/package.json +4 -0
  116. package/tabs/package.json +4 -0
  117. package/text-area/package.json +4 -0
  118. package/text-box/package.json +4 -0
  119. package/theme/package.json +4 -0
  120. package/time-picker/package.json +4 -0
  121. package/time-selector/package.json +4 -0
  122. package/tooltip/package.json +4 -0
  123. package/tree-view/package.json +4 -0
  124. package/types/nanahoshi-mona-ui-auto-complete.d.ts +6 -7
  125. package/types/nanahoshi-mona-ui-breadcrumb.d.ts +4 -6
  126. package/types/nanahoshi-mona-ui-button-group.d.ts +2 -3
  127. package/types/nanahoshi-mona-ui-button.d.ts +6 -6
  128. package/types/nanahoshi-mona-ui-calendar.d.ts +21 -22
  129. package/types/nanahoshi-mona-ui-check-box.d.ts +6 -9
  130. package/types/nanahoshi-mona-ui-chip.d.ts +2 -3
  131. package/types/nanahoshi-mona-ui-circular-progress-bar.d.ts +2 -4
  132. package/types/nanahoshi-mona-ui-color-gradient.d.ts +10 -11
  133. package/types/nanahoshi-mona-ui-color-palette.d.ts +4 -5
  134. package/types/nanahoshi-mona-ui-color-picker.d.ts +6 -8
  135. package/types/nanahoshi-mona-ui-combo-box.d.ts +6 -7
  136. package/types/nanahoshi-mona-ui-date-input.d.ts +2 -3
  137. package/types/nanahoshi-mona-ui-date-picker.d.ts +2 -3
  138. package/types/nanahoshi-mona-ui-dialog.d.ts +7 -8
  139. package/types/nanahoshi-mona-ui-dropdown-list.d.ts +6 -7
  140. package/types/nanahoshi-mona-ui-dropdowns.d.ts +2 -3
  141. package/types/nanahoshi-mona-ui-editor.d.ts +17 -17
  142. package/types/nanahoshi-mona-ui-expansion-panel.d.ts +8 -10
  143. package/types/nanahoshi-mona-ui-fieldset.d.ts +6 -8
  144. package/types/nanahoshi-mona-ui-filter.d.ts +3 -4
  145. package/types/nanahoshi-mona-ui-grid.d.ts +16 -17
  146. package/types/nanahoshi-mona-ui-internal-indicator-icon.d.ts +0 -1
  147. package/types/nanahoshi-mona-ui-internal-tree.d.ts +16 -16
  148. package/types/nanahoshi-mona-ui-internal.d.ts +8 -1
  149. package/types/nanahoshi-mona-ui-list-box.d.ts +4 -5
  150. package/types/nanahoshi-mona-ui-list-view.d.ts +2 -3
  151. package/types/nanahoshi-mona-ui-menubar.d.ts +7 -8
  152. package/types/nanahoshi-mona-ui-multi-select.d.ts +8 -9
  153. package/types/nanahoshi-mona-ui-numeric-text-box.d.ts +2 -3
  154. package/types/nanahoshi-mona-ui-pager.d.ts +6 -7
  155. package/types/nanahoshi-mona-ui-placeholder.d.ts +4 -6
  156. package/types/nanahoshi-mona-ui-popover.d.ts +8 -9
  157. package/types/nanahoshi-mona-ui-popup-menu.d.ts +12 -13
  158. package/types/nanahoshi-mona-ui-progress-bar.d.ts +8 -9
  159. package/types/nanahoshi-mona-ui-radio-button.d.ts +8 -11
  160. package/types/nanahoshi-mona-ui-scroll-view.d.ts +18 -20
  161. package/types/nanahoshi-mona-ui-slider.d.ts +18 -18
  162. package/types/nanahoshi-mona-ui-split-button.d.ts +2 -3
  163. package/types/nanahoshi-mona-ui-splitter.d.ts +6 -8
  164. package/types/nanahoshi-mona-ui-stepper.d.ts +13 -14
  165. package/types/nanahoshi-mona-ui-switch.d.ts +6 -7
  166. package/types/nanahoshi-mona-ui-tabs.d.ts +15 -17
  167. package/types/nanahoshi-mona-ui-text-area.d.ts +2 -4
  168. package/types/nanahoshi-mona-ui-text-box.d.ts +4 -6
  169. package/types/nanahoshi-mona-ui-theme.d.ts +111 -12
  170. package/types/nanahoshi-mona-ui-time-picker.d.ts +2 -3
  171. package/types/nanahoshi-mona-ui-time-selector.d.ts +10 -11
  172. package/types/nanahoshi-mona-ui-tooltip.d.ts +4 -5
  173. package/types/nanahoshi-mona-ui-window.d.ts +16 -17
  174. package/window/package.json +4 -0
  175. package/fesm2022/nanahoshi-mona-ui-grid-grid-list.component-Dgea-O0X.mjs +0 -130
  176. package/fesm2022/nanahoshi-mona-ui-grid-grid-virtual-list.component-DRHycGIh.mjs +0 -240
@@ -5,9 +5,9 @@ import { isPlatformBrowser, DOCUMENT as DOCUMENT$1, NgTemplateOutlet } from '@an
5
5
  import { toObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';
6
6
  import { form } from '@angular/forms/signals';
7
7
  import { ImmutableList, ImmutableDictionary, ImmutableSet, KeyValuePair, Dictionary, select, sequenceEqual, orderBy, any } from '@mirei/ts-collections';
8
+ import { Query } from '@nanahoshi/mona-ui/query';
8
9
  import { Subject, BehaviorSubject, filter, startWith, pairwise, map, skip, fromEvent, take, debounceTime } from 'rxjs';
9
10
  import { v4 } from 'uuid';
10
- import { Query } from '@nanahoshi/mona-ui/query';
11
11
  import { ContextMenuItemComponent } from '@nanahoshi/mona-ui/contextmenu';
12
12
  import { CdkDropList, CdkDrag, CdkDragPreview, CdkDragPlaceholder } from '@angular/cdk/drag-drop';
13
13
  import { ButtonDirective } from '@nanahoshi/mona-ui/button';
@@ -17,7 +17,6 @@ import { PagerComponent } from '@nanahoshi/mona-ui/pager';
17
17
  import { PlaceholderComponent } from '@nanahoshi/mona-ui/placeholder';
18
18
  import { PopupService, PopupComponent } from '@nanahoshi/mona-ui/popup';
19
19
  import { PopupMenuComponent, PopupMenuCheckboxItemComponent, PopupMenuItemComponent, PopupMenuTextTemplateDirective } from '@nanahoshi/mona-ui/popup-menu';
20
- import { ThemeService } from '@nanahoshi/mona-ui/theme';
21
20
  import { twMerge } from 'tailwind-merge';
22
21
  import { Clipboard } from '@angular/cdk/clipboard';
23
22
  import { cva } from 'class-variance-authority';
@@ -2839,16 +2838,20 @@ class GridLockedCellDirective {
2839
2838
  this.#gridService = inject(GridService);
2840
2839
  this.bodyLocked = computed(() => this.state() != null && !this.lockedCellHeader(), /* @ts-ignore */
2841
2840
  ...(ngDevMode ? [{ debugName: "bodyLocked" }] : /* istanbul ignore next */ []));
2842
- this.clipPath = computed(() => {
2843
- const state = this.state();
2844
- const edgeOffset = state?.edge ? "1px" : "0px";
2845
- return state?.side === "right"
2846
- ? `inset(0px 0px ${edgeOffset} -8px)`
2847
- : state?.side === "left"
2848
- ? `inset(0px -8px ${edgeOffset} 0px)`
2849
- : null;
2841
+ this.borderLeft = computed(() => {
2842
+ if (!this.rightEdge()) {
2843
+ return null;
2844
+ }
2845
+ return `1px solid var(--color-border)`;
2850
2846
  }, /* @ts-ignore */
2851
- ...(ngDevMode ? [{ debugName: "clipPath" }] : /* istanbul ignore next */ []));
2847
+ ...(ngDevMode ? [{ debugName: "borderLeft" }] : /* istanbul ignore next */ []));
2848
+ this.borderRight = computed(() => {
2849
+ if (!this.leftEdge()) {
2850
+ return null;
2851
+ }
2852
+ return `1px solid var(--color-border)`;
2853
+ }, /* @ts-ignore */
2854
+ ...(ngDevMode ? [{ debugName: "borderRight" }] : /* istanbul ignore next */ []));
2852
2855
  this.footerCell = this.#hostElementRef.nativeElement.hasAttribute("monaGridFooterTableCell");
2853
2856
  this.headerLocked = computed(() => this.state() != null && this.lockedCellHeader(), /* @ts-ignore */
2854
2857
  ...(ngDevMode ? [{ debugName: "headerLocked" }] : /* istanbul ignore next */ []));
@@ -2907,7 +2910,7 @@ class GridLockedCellDirective {
2907
2910
  #hostElementRef;
2908
2911
  #gridService;
2909
2912
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: GridLockedCellDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2910
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.6", type: GridLockedCellDirective, isStandalone: true, selector: "td[monaGridLockedCell], th[monaGridLockedCell]", inputs: { column: { classPropertyName: "column", publicName: "column", isSignal: true, isRequired: false, transformFunction: null }, lockedCellHeader: { classPropertyName: "lockedCellHeader", publicName: "lockedCellHeader", isSignal: true, isRequired: false, transformFunction: null }, lockedStructuralOffset: { classPropertyName: "lockedStructuralOffset", publicName: "lockedStructuralOffset", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.position": "position()", "style.left.px": "leftOffset()", "style.right.px": "rightOffset()", "style.z-index": "zIndex()", "class.bg-header-background": "headerLocked() || footerCell", "class.bg-inherit": "bodyLocked()", "style.box-shadow": "rightEdge() ? '-2px 0 4px 0 rgba(0, 0, 0, 0.15)' : leftEdge() ? '2px 0 4px 0 rgba(0, 0, 0, 0.15)' : null", "style.clip-path": "clipPath()" } }, ngImport: i0 }); }
2913
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.6", type: GridLockedCellDirective, isStandalone: true, selector: "td[monaGridLockedCell], th[monaGridLockedCell]", inputs: { column: { classPropertyName: "column", publicName: "column", isSignal: true, isRequired: false, transformFunction: null }, lockedCellHeader: { classPropertyName: "lockedCellHeader", publicName: "lockedCellHeader", isSignal: true, isRequired: false, transformFunction: null }, lockedStructuralOffset: { classPropertyName: "lockedStructuralOffset", publicName: "lockedStructuralOffset", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.position": "position()", "style.left.px": "leftOffset()", "style.right.px": "rightOffset()", "style.z-index": "zIndex()", "class.bg-header-background": "headerLocked() || footerCell", "class.bg-inherit": "bodyLocked()", "style.border-left": "borderLeft()", "style.border-right": "borderRight()" } }, ngImport: i0 }); }
2911
2914
  }
2912
2915
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: GridLockedCellDirective, decorators: [{
2913
2916
  type: Directive,
@@ -2920,8 +2923,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
2920
2923
  "[style.z-index]": "zIndex()",
2921
2924
  "[class.bg-header-background]": "headerLocked() || footerCell",
2922
2925
  "[class.bg-inherit]": "bodyLocked()",
2923
- "[style.box-shadow]": "rightEdge() ? '-2px 0 4px 0 rgba(0, 0, 0, 0.15)' : leftEdge() ? '2px 0 4px 0 rgba(0, 0, 0, 0.15)' : null",
2924
- "[style.clip-path]": "clipPath()"
2926
+ "[style.border-left]": "borderLeft()",
2927
+ "[style.border-right]": "borderRight()"
2925
2928
  }
2926
2929
  }]
2927
2930
  }], propDecorators: { column: [{ type: i0.Input, args: [{ isSignal: true, alias: "column", required: false }] }], lockedCellHeader: [{ type: i0.Input, args: [{ isSignal: true, alias: "lockedCellHeader", required: false }] }], lockedStructuralOffset: [{ type: i0.Input, args: [{ isSignal: true, alias: "lockedStructuralOffset", required: false }] }] } });
@@ -3241,11 +3244,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
3241
3244
  }] });
3242
3245
 
3243
3246
  const gridRowHeightClass = "h-9";
3244
- const gridBaseVariants = cva(`
3245
- relative flex flex-col
3246
- h-full overflow-hidden
3247
- bg-background border border-border
3248
- text-foreground text-sm
3247
+ const gridBaseThemeVariants = cva(`
3248
+ relative flex flex-col
3249
+ h-full overflow-hidden
3250
+ text-foreground text-sm
3251
+ bg-surface border border-border
3249
3252
  `, {
3250
3253
  variants: {
3251
3254
  rounded: {
@@ -3256,15 +3259,15 @@ const gridBaseVariants = cva(`
3256
3259
  }
3257
3260
  }
3258
3261
  });
3259
- const gridCellBaseVariants = cva(`
3260
- absolute inset-0
3261
- flex w-full
3262
- border-b border-b-border
3262
+ const gridCellBaseThemeVariants = cva(`
3263
+ absolute inset-0
3264
+ flex w-full
3265
+ shadow-[inset_0_-1px_0_0_var(--color-border-subtle)]
3263
3266
  `);
3264
- const gridCellContainerVariants = cva(`
3265
- flex h-full w-full items-center
3266
- flex-1 outline-none
3267
- overflow-hidden
3267
+ const gridCellContainerThemeVariants = cva(`
3268
+ flex h-full w-full items-center
3269
+ flex-1 outline-none
3270
+ overflow-hidden
3268
3271
  `, {
3269
3272
  variants: {
3270
3273
  editing: {
@@ -3276,40 +3279,41 @@ const gridCellContainerVariants = cva(`
3276
3279
  editing: false
3277
3280
  }
3278
3281
  });
3279
- const gridCellDirtyIndicatorVariants = cva(`
3280
- absolute top-0 right-0 w-0 h-0
3281
- border-t-[8px] border-l-[8px]
3282
- border-t-destructive border-l-transparent
3283
- pointer-events-none
3282
+ const gridCellDirtyIndicatorThemeVariants = cva(`
3283
+ absolute top-0 right-0 w-0 h-0
3284
+ border-t-[8px] border-l-[8px]
3285
+ border-t-destructive border-l-transparent
3286
+ pointer-events-none
3284
3287
  `);
3285
- const gridCellEditorBaseVariants = cva(`
3286
- w-full h-full border border-solid border-primary/40 flex items-center
3288
+ const gridCellEditorBaseThemeVariants = cva(`
3289
+ flex h-full w-full items-center
3290
+ bg-input-background border border-focus-indicator/40
3287
3291
  `);
3288
- const gridCellEditorInputVariants = cva(`
3289
- w-full h-full border-transparent
3290
- data-[expanded='true']:border-primary
3291
- data-[expanded='true']:focus-within:border-primary/40
3292
+ const gridCellEditorInputThemeVariants = cva(`
3293
+ h-full w-full border-transparent
3294
+ data-[expanded='true']:border-focus-indicator
3295
+ data-[expanded='true']:focus-within:border-focus-indicator/40
3292
3296
  `);
3293
- const gridCellTextVariants = cva(`
3294
- truncate cursor-default select-none
3297
+ const gridCellTextThemeVariants = cva(`
3298
+ truncate cursor-default select-none
3295
3299
  `);
3296
- const gridColumnActionsVariants = cva(`
3297
- flex items-center justify-center
3298
- text-xs [&_i]:text-xs
3300
+ const gridColumnActionsThemeVariants = cva(`
3301
+ flex items-center justify-center
3302
+ text-xs [&_i]:text-xs
3299
3303
  `);
3300
- const gridColumnDragPreviewVariants = cva(`
3301
- flex items-center justify-center
3302
- bg-background! text-foreground!
3303
- border! border-border! rounded-md
3304
- shadow-sm! px-2! py-0.5!
3304
+ const gridColumnDragPreviewThemeVariants = cva(`
3305
+ flex items-center justify-center
3306
+ px-2! py-0.5!
3307
+ bg-surface-raised! text-foreground!
3308
+ border! border-border! rounded-md shadow-(--shadow-overlay)!
3305
3309
  `);
3306
- const gridColumnDropHintVariants = cva(`
3307
- absolute flex w-1 h-full bg-primary z-10! top-0 bottom-0
3310
+ const gridColumnDropHintThemeVariants = cva(`
3311
+ absolute flex w-1 h-full bg-primary z-10! top-0 bottom-0
3308
3312
  `);
3309
- const gridColumnResizerVariants = cva(`
3310
- absolute top-0 bottom-0 w-3 bg-transparent cursor-col-resize z-10 -right-1.5
3313
+ const gridColumnResizerThemeVariants = cva(`
3314
+ absolute top-0 bottom-0 w-3 bg-transparent cursor-col-resize z-10 -right-1.5
3311
3315
  `);
3312
- const gridDetailContentCellVariants = cva(`border-b border-b-border`, {
3316
+ const gridDetailContentCellThemeVariants = cva(`border-b border-b-border-subtle`, {
3313
3317
  variants: {
3314
3318
  nextIsGroup: {
3315
3319
  true: "",
@@ -3317,8 +3321,8 @@ const gridDetailContentCellVariants = cva(`border-b border-b-border`, {
3317
3321
  }
3318
3322
  }
3319
3323
  });
3320
- const gridDetailIndentCellVariants = cva(`
3321
- border-r border-r-border border-b border-b-border
3324
+ const gridDetailIndentCellThemeVariants = cva(`
3325
+ border-r border-r-border-subtle border-b border-b-border-subtle
3322
3326
  `, {
3323
3327
  variants: {
3324
3328
  nextIsGroup: {
@@ -3327,67 +3331,69 @@ const gridDetailIndentCellVariants = cva(`
3327
3331
  }
3328
3332
  }
3329
3333
  });
3330
- const gridDetailRowVariants = cva(`
3331
- border-b border-b-border
3334
+ const gridDetailRowThemeVariants = cva(`
3335
+ border-b border-b-border-subtle
3332
3336
  `);
3333
- const gridFilterRowCellVariants = cva(`flex items-center px-1 py-0.5 w-full`);
3334
- const gridFooterVariants = cva(`
3335
- flex flex-row grow-0 shrink-0 basis-auto
3336
- overflow-hidden
3337
- bg-header-background border-r border-r-border border-t border-t-border
3337
+ const gridFilterRowCellThemeVariants = cva(`flex items-center px-1 py-0.5 w-full`);
3338
+ const gridFooterThemeVariants = cva(`
3339
+ flex flex-row grow-0 shrink-0 basis-auto
3340
+ overflow-hidden
3341
+ bg-surface-muted border-r border-r-border-subtle border-t border-t-border-subtle
3338
3342
  `);
3339
- const gridFooterTableVariants = cva(`
3340
- border-separate border-spacing-0 table-fixed
3343
+ const gridFooterTableThemeVariants = cva(`
3344
+ border-separate border-spacing-0 table-fixed
3341
3345
  `);
3342
- const gridFooterTableRowVariants = cva(`relative inline-flex [&>td:last-child]:border-r-0`);
3343
- const gridFooterTableCellVariants = cva(`
3344
- relative overflow-hidden
3345
- text-left align-middle px-2 py-2
3346
- border-r border-r-border border-b border-b-border
3347
- bg-header-background font-medium
3346
+ const gridFooterTableRowThemeVariants = cva(`relative inline-flex [&>td:last-child]:border-r-0`);
3347
+ const gridFooterTableCellThemeVariants = cva(`
3348
+ relative overflow-hidden
3349
+ text-left align-middle px-2 py-2
3350
+ bg-surface-muted
3351
+ border-r border-r-border-subtle border-b border-b-border-subtle
3352
+ font-medium
3348
3353
  `);
3349
- const gridGroupPanelPlaceholderVariants = cva(`
3350
- truncate opacity-70
3354
+ const gridGroupPanelPlaceholderThemeVariants = cva(`
3355
+ truncate text-muted-foreground
3351
3356
  `);
3352
- const gridGroupPanelVariants = cva(`
3353
- flex items-center flex-wrap
3354
- p-1 h-auto gap-1
3355
- border-b border-b-border
3357
+ const gridGroupPanelThemeVariants = cva(`
3358
+ flex items-center flex-wrap
3359
+ p-1 h-auto gap-1
3360
+ bg-surface-muted border-b border-b-border-subtle
3356
3361
  `);
3357
- const gridGroupRowVariants = cva(`
3358
- w-full bg-header-background
3359
- border-r border-r-border
3360
- relative z-10
3362
+ const gridGroupRowThemeVariants = cva(`
3363
+ relative z-10
3364
+ w-full
3365
+ bg-surface-muted border-r border-r-border-subtle
3361
3366
  `);
3362
- const gridHeaderVariants = cva(`
3363
- flex flex-row grow-0 shrink-0 basis-auto
3364
- overflow-hidden
3365
- bg-header-background border-r border-r-border
3367
+ const gridHeaderThemeVariants = cva(`
3368
+ flex flex-row grow-0 shrink-0 basis-auto
3369
+ overflow-hidden
3370
+ bg-surface-muted border-r border-r-border-subtle
3366
3371
  `);
3367
- const gridHeaderTableVariants = cva(`
3368
- border-separate border-spacing-0 table-fixed
3372
+ const gridHeaderTableThemeVariants = cva(`
3373
+ border-separate border-spacing-0 table-fixed
3369
3374
  `);
3370
- const gridHeaderTableRowVariants = cva(`relative inline-flex not-first:border-t not-first:border-t-border [&>th:last-child]:border-r-0`);
3371
- const gridHeaderTableCellVariants = cva(`
3372
- relative select-none
3373
- text-left overflow-visible
3374
- outline-none border-r border-r-border
3375
- after:absolute after:inset-0 after:pointer-events-none
3376
- focus:after:ring-1 focus:after:ring-inset focus:after:ring-primary/40
3375
+ const gridHeaderTableRowThemeVariants = cva(`relative inline-flex not-first:border-t not-first:border-t-border-subtle [&>th:last-child]:border-r-0`);
3376
+ const gridHeaderTableCellThemeVariants = cva(`
3377
+ relative select-none
3378
+ text-left overflow-visible
3379
+ outline-none border-r border-r-border-subtle
3380
+ after:absolute after:inset-0 after:pointer-events-none
3381
+ focus:after:ring-1 focus:after:ring-inset focus:after:ring-focus-indicator/35
3377
3382
  `);
3378
- const gridHeaderTableColumnWrapVariants = cva(`
3379
- w-full h-full px-1
3380
- flex items-center justify-between
3381
- cursor-pointer overflow-hidden
3383
+ const gridHeaderTableColumnWrapThemeVariants = cva(`
3384
+ w-full h-full px-1
3385
+ flex items-center justify-between
3386
+ cursor-pointer overflow-hidden
3382
3387
  `);
3383
- const gridHeaderTableColumnTitleVariants = cva(`
3384
- flex-1 px-1 py-2 truncate
3385
- font-medium
3388
+ const gridHeaderTableColumnTitleThemeVariants = cva(`
3389
+ flex-1 px-1 py-2 truncate
3390
+ font-medium
3386
3391
  `);
3387
- const gridListBaseVariants = cva(`
3388
- w-full h-full
3389
- border-t border-t-border
3390
- outline-none
3392
+ const gridListBaseThemeVariants = cva(`
3393
+ w-full h-full
3394
+ outline-none
3395
+ border-t border-t-border-subtle
3396
+ [scrollbar-color:var(--color-scrollbar-thumb)_var(--color-scrollbar-track)] [scrollbar-width:thin]
3391
3397
  `, {
3392
3398
  variants: {
3393
3399
  virtual: {
@@ -3396,28 +3402,28 @@ const gridListBaseVariants = cva(`
3396
3402
  }
3397
3403
  }
3398
3404
  });
3399
- const gridListTableVariants = cva(`
3400
- border-separate border-spacing-0 w-full table-fixed
3405
+ const gridListTableThemeVariants = cva(`
3406
+ border-separate border-spacing-0 w-full table-fixed
3401
3407
  `);
3402
- const gridListTableRowVariants = cva(``, {
3408
+ const gridListTableRowThemeVariants = cva(``, {
3403
3409
  variants: {
3404
3410
  selected: {
3405
- true: `
3406
- ${gridRowHeightClass}
3407
- bg-primary text-primary-foreground
3411
+ true: `
3412
+ ${gridRowHeightClass}
3413
+ bg-(--color-selected) text-(--color-selected-foreground) hover:bg-(--color-selected-active)
3408
3414
  `,
3409
- false: `${gridRowHeightClass} odd:bg-background even:bg-background-dark `
3415
+ false: `${gridRowHeightClass} bg-surface hover:bg-hover`
3410
3416
  }
3411
3417
  }
3412
3418
  });
3413
- const gridListTableCellVariants = cva(`
3414
- relative
3415
- ${gridRowHeightClass}
3416
- outline-none z-1
3417
- align-top
3418
- after:content-[''] after:block
3419
- after:absolute after:inset-0 after:pointer-events-none
3420
- focus:after:ring-1 focus:after:ring-inset focus:after:ring-primary/40
3419
+ const gridListTableCellThemeVariants = cva(`
3420
+ relative
3421
+ ${gridRowHeightClass}
3422
+ outline-none z-1
3423
+ align-top
3424
+ after:content-[''] after:block
3425
+ after:absolute after:inset-0 after:pointer-events-none
3426
+ focus:after:ring-1 focus:after:ring-inset focus:after:ring-focus-indicator/35
3421
3427
  `, {
3422
3428
  variants: {
3423
3429
  groupHeader: {
@@ -3438,7 +3444,7 @@ const gridListTableCellVariants = cva(`
3438
3444
  },
3439
3445
  lastInRow: {
3440
3446
  true: "",
3441
- false: "border-r border-r-border"
3447
+ false: "border-r border-r-border-subtle"
3442
3448
  },
3443
3449
  masterDetailContent: {
3444
3450
  true: "",
@@ -3491,12 +3497,12 @@ const gridListTableCellVariants = cva(`
3491
3497
  {
3492
3498
  grouped: true,
3493
3499
  indentCell: true,
3494
- class: "bg-header-background border-b border-b-border"
3500
+ class: "bg-surface-muted shadow-[inset_0_-1px_0_0_var(--color-border-subtle)]"
3495
3501
  },
3496
3502
  {
3497
3503
  grouped: true,
3498
3504
  indentCell: false,
3499
- class: "border-b border-b-border"
3505
+ class: "shadow-[inset_0_-1px_0_0_var(--color-border-subtle)]"
3500
3506
  },
3501
3507
  {
3502
3508
  grouped: true,
@@ -3511,276 +3517,11 @@ const gridListTableCellVariants = cva(`
3511
3517
  }
3512
3518
  ]
3513
3519
  });
3514
- const gridNoDataVariants = cva(`
3515
- flex items-center justify-center h-full
3516
- border-t border-t-border
3520
+ const gridNoDataThemeVariants = cva(`
3521
+ flex items-center justify-center h-full
3522
+ text-muted-foreground border-t border-t-border-subtle
3517
3523
  `);
3518
3524
 
3519
- const gridBaseThemeVariants = (theme) => {
3520
- switch (theme) {
3521
- case "mona":
3522
- return gridBaseVariants;
3523
- default:
3524
- return gridBaseVariants;
3525
- }
3526
- };
3527
- const gridCellBaseThemeVariants = (theme) => {
3528
- switch (theme) {
3529
- case "mona":
3530
- return gridCellBaseVariants;
3531
- default:
3532
- return gridCellBaseVariants;
3533
- }
3534
- };
3535
- const gridCellContainerThemeVariants = (theme) => {
3536
- switch (theme) {
3537
- case "mona":
3538
- return gridCellContainerVariants;
3539
- default:
3540
- return gridCellContainerVariants;
3541
- }
3542
- };
3543
- const gridCellDirtyIndicatorThemeVariants = (theme) => {
3544
- switch (theme) {
3545
- case "mona":
3546
- return gridCellDirtyIndicatorVariants;
3547
- default:
3548
- return gridCellDirtyIndicatorVariants;
3549
- }
3550
- };
3551
- const gridCellEditorBaseThemeVariants = (theme) => {
3552
- switch (theme) {
3553
- case "mona":
3554
- return gridCellEditorBaseVariants;
3555
- default:
3556
- return gridCellEditorBaseVariants;
3557
- }
3558
- };
3559
- const gridCellEditorInputThemeVariants = (theme) => {
3560
- switch (theme) {
3561
- case "mona":
3562
- return gridCellEditorInputVariants;
3563
- default:
3564
- return gridCellEditorInputVariants;
3565
- }
3566
- };
3567
- const gridCellTextThemeVariants = (theme) => {
3568
- switch (theme) {
3569
- case "mona":
3570
- return gridCellTextVariants;
3571
- default:
3572
- return gridCellTextVariants;
3573
- }
3574
- };
3575
- const gridColumnActionsThemeVariants = (theme) => {
3576
- switch (theme) {
3577
- case "mona":
3578
- return gridColumnActionsVariants;
3579
- default:
3580
- return gridColumnActionsVariants;
3581
- }
3582
- };
3583
- const gridColumnDragPreviewThemeVariants = (theme) => {
3584
- switch (theme) {
3585
- case "mona":
3586
- return gridColumnDragPreviewVariants;
3587
- default:
3588
- return gridColumnDragPreviewVariants;
3589
- }
3590
- };
3591
- const gridColumnResizerThemeVariants = (theme) => {
3592
- switch (theme) {
3593
- case "mona":
3594
- return gridColumnResizerVariants;
3595
- default:
3596
- return gridColumnResizerVariants;
3597
- }
3598
- };
3599
- const gridColumnDropHintThemeVariants = (theme) => {
3600
- switch (theme) {
3601
- case "mona":
3602
- return gridColumnDropHintVariants;
3603
- default:
3604
- return gridColumnDropHintVariants;
3605
- }
3606
- };
3607
- const gridFilterRowCellThemeVariants = (theme) => {
3608
- switch (theme) {
3609
- case "mona":
3610
- return gridFilterRowCellVariants;
3611
- default:
3612
- return gridFilterRowCellVariants;
3613
- }
3614
- };
3615
- const gridFooterThemeVariants = (theme) => {
3616
- switch (theme) {
3617
- case "mona":
3618
- return gridFooterVariants;
3619
- default:
3620
- return gridFooterVariants;
3621
- }
3622
- };
3623
- const gridFooterTableThemeVariants = (theme) => {
3624
- switch (theme) {
3625
- case "mona":
3626
- return gridFooterTableVariants;
3627
- default:
3628
- return gridFooterTableVariants;
3629
- }
3630
- };
3631
- const gridFooterTableRowThemeVariants = (theme) => {
3632
- switch (theme) {
3633
- case "mona":
3634
- return gridFooterTableRowVariants;
3635
- default:
3636
- return gridFooterTableRowVariants;
3637
- }
3638
- };
3639
- const gridFooterTableCellThemeVariants = (theme) => {
3640
- switch (theme) {
3641
- case "mona":
3642
- return gridFooterTableCellVariants;
3643
- default:
3644
- return gridFooterTableCellVariants;
3645
- }
3646
- };
3647
- const gridGroupPanelPlaceholderThemeVariants = (theme) => {
3648
- switch (theme) {
3649
- case "mona":
3650
- return gridGroupPanelPlaceholderVariants;
3651
- default:
3652
- return gridGroupPanelPlaceholderVariants;
3653
- }
3654
- };
3655
- const gridGroupPanelThemeVariants = (theme) => {
3656
- switch (theme) {
3657
- case "mona":
3658
- return gridGroupPanelVariants;
3659
- default:
3660
- return gridGroupPanelVariants;
3661
- }
3662
- };
3663
- const gridGroupRowThemeVariants = (theme) => {
3664
- switch (theme) {
3665
- case "mona":
3666
- return gridGroupRowVariants;
3667
- default:
3668
- return gridGroupRowVariants;
3669
- }
3670
- };
3671
- const gridHeaderTableCellThemeVariants = (theme) => {
3672
- switch (theme) {
3673
- case "mona":
3674
- return gridHeaderTableCellVariants;
3675
- default:
3676
- return gridHeaderTableCellVariants;
3677
- }
3678
- };
3679
- const gridHeaderTableColumnTitleThemeVariants = (theme) => {
3680
- switch (theme) {
3681
- case "mona":
3682
- return gridHeaderTableColumnTitleVariants;
3683
- default:
3684
- return gridHeaderTableColumnTitleVariants;
3685
- }
3686
- };
3687
- const gridHeaderTableColumnWrapThemeVariants = (theme) => {
3688
- switch (theme) {
3689
- case "mona":
3690
- return gridHeaderTableColumnWrapVariants;
3691
- default:
3692
- return gridHeaderTableColumnWrapVariants;
3693
- }
3694
- };
3695
- const gridHeaderTableRowThemeVariants = (theme) => {
3696
- switch (theme) {
3697
- case "mona":
3698
- return gridHeaderTableRowVariants;
3699
- default:
3700
- return gridHeaderTableRowVariants;
3701
- }
3702
- };
3703
- const gridHeaderTableThemeVariants = (theme) => {
3704
- switch (theme) {
3705
- case "mona":
3706
- return gridHeaderTableVariants;
3707
- default:
3708
- return gridHeaderTableVariants;
3709
- }
3710
- };
3711
- const gridHeaderThemeVariants = (theme) => {
3712
- switch (theme) {
3713
- case "mona":
3714
- return gridHeaderVariants;
3715
- default:
3716
- return gridHeaderVariants;
3717
- }
3718
- };
3719
- const gridListTableCellThemeVariants = (theme) => {
3720
- switch (theme) {
3721
- case "mona":
3722
- return gridListTableCellVariants;
3723
- default:
3724
- return gridListTableCellVariants;
3725
- }
3726
- };
3727
- const gridListTableRowThemeVariants = (theme) => {
3728
- switch (theme) {
3729
- case "mona":
3730
- return gridListTableRowVariants;
3731
- default:
3732
- return gridListTableRowVariants;
3733
- }
3734
- };
3735
- const gridListTableThemeVariants = (theme) => {
3736
- switch (theme) {
3737
- case "mona":
3738
- return gridListTableVariants;
3739
- default:
3740
- return gridListTableVariants;
3741
- }
3742
- };
3743
- const gridListBaseThemeVariants = (theme) => {
3744
- switch (theme) {
3745
- case "mona":
3746
- return gridListBaseVariants;
3747
- default:
3748
- return gridListBaseVariants;
3749
- }
3750
- };
3751
- const gridNoDataThemeVariants = (theme) => {
3752
- switch (theme) {
3753
- case "mona":
3754
- return gridNoDataVariants;
3755
- default:
3756
- return gridNoDataVariants;
3757
- }
3758
- };
3759
- const gridDetailRowThemeVariants = (theme) => {
3760
- switch (theme) {
3761
- case "mona":
3762
- return gridDetailRowVariants;
3763
- default:
3764
- return gridDetailRowVariants;
3765
- }
3766
- };
3767
- const gridDetailIndentCellThemeVariants = (theme) => {
3768
- switch (theme) {
3769
- case "mona":
3770
- return gridDetailIndentCellVariants;
3771
- default:
3772
- return gridDetailIndentCellVariants;
3773
- }
3774
- };
3775
- const gridDetailContentCellThemeVariants = (theme) => {
3776
- switch (theme) {
3777
- case "mona":
3778
- return gridDetailContentCellVariants;
3779
- default:
3780
- return gridDetailContentCellVariants;
3781
- }
3782
- };
3783
-
3784
3525
  const FOCUSABLE_TARGET_SELECTOR$1 = "button, input, select, textarea, a[href], [tabindex]";
3785
3526
  class GridLogicalCellDirective {
3786
3527
  #cellData;
@@ -3790,7 +3531,6 @@ class GridLogicalCellDirective {
3790
3531
  #gridNavigationService;
3791
3532
  #gridService;
3792
3533
  #hostElementRef;
3793
- #themeService;
3794
3534
  constructor() {
3795
3535
  this.#cellData = computed(() => {
3796
3536
  const data = {
@@ -3816,15 +3556,13 @@ class GridLogicalCellDirective {
3816
3556
  this.#gridNavigationService = inject(GridNavigationService);
3817
3557
  this.#gridService = inject(GridService);
3818
3558
  this.#hostElementRef = inject((ElementRef));
3819
- this.#themeService = inject(ThemeService);
3820
3559
  this.ariaColIndex = computed(() => this.colIndex() + this.#gridService.groupColumns().length + 1, /* @ts-ignore */
3821
3560
  ...(ngDevMode ? [{ debugName: "ariaColIndex" }] : /* istanbul ignore next */ []));
3822
3561
  this.baseClass = computed(() => {
3823
3562
  if (this.#hostElementRef.nativeElement.tagName === "TH") {
3824
3563
  return "";
3825
3564
  }
3826
- const theme = this.#themeService.theme();
3827
- return gridListTableCellThemeVariants(theme)({
3565
+ return gridListTableCellThemeVariants({
3828
3566
  groupHeader: this.groupHeader(),
3829
3567
  lastInRow: this.lastInRow() || this.groupHeader()
3830
3568
  });
@@ -4325,7 +4063,7 @@ class GridColumnChooserComponent {
4325
4063
  this.filterText.set("");
4326
4064
  }
4327
4065
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: GridColumnChooserComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4328
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.6", type: GridColumnChooserComponent, isStandalone: true, selector: "mona-grid-column-chooser", outputs: { apply: "apply", cancel: "cancel" }, ngImport: i0, template: "<mona-list-view\r\n [items]=\"columnListSource()\"\r\n [textField]=\"'title'\"\r\n [height]=\"'auto'\"\r\n [maxHeight]=\"300\"\r\n [monaListViewSelectable]=\"{ enabled: true, mode: 'multiple', checkboxes: true }\"\r\n [selectBy]=\"'field'\"\r\n [selectedKeys]=\"selectedColumnFields()\"\r\n (selectedKeysChange)=\"onSelectedKeysChange($event)\"\r\n [rounded]=\"'none'\"\r\n [size]=\"'small'\"\r\n class=\"shadow-lg\">\r\n <ng-template monaListViewHeaderTemplate>\r\n <div class=\"flex p-1 bg-header-background border-b border-b-border\">\r\n <mona-filter-input\r\n [filter]=\"filterText()\"\r\n (filterChange)=\"filterText.set($event.filter)\"></mona-filter-input>\r\n </div>\r\n </ng-template>\r\n <ng-template monaListViewFooterTemplate>\r\n <div class=\"flex px-3 py-1 font-medium bg-header-background border-t border-t-border\">\r\n {{ selectedColumnFields().length }} selected columns\r\n </div>\r\n <div class=\"flex gap-2 px-2 py-2 bg-header-background border-t border-t-border\">\r\n <button class=\"flex-1\" monaButton [size]=\"'small'\" look=\"primary\" (click)=\"onApplyClick()\">Apply</button>\r\n <button class=\"flex-1\" monaButton [size]=\"'small'\" (click)=\"onCancelClick()\">Cancel</button>\r\n </div>\r\n </ng-template>\r\n</mona-list-view>\r\n", dependencies: [{ kind: "component", type: ListViewComponent, selector: "mona-list-view", inputs: ["aria-label", "height", "listClass", "listItemClass", "listItemStyle", "listStyle", "items", "maxHeight", "maxWidth", "rounded", "size", "textField", "class", "width"], outputs: ["scrollBottom"] }, { kind: "directive", type: ListViewHeaderTemplateDirective, selector: "ng-template[monaListViewHeaderTemplate]" }, { kind: "component", type: FilterInputComponent, selector: "mona-filter-input", inputs: ["debounce", "filter", "placeholder", "size"], outputs: ["filterChange", "inputBlur", "inputFocus"] }, { kind: "directive", type: ButtonDirective, selector: "button[monaButton]", inputs: ["aria-haspopup", "disabled", "iconOnly", "loading", "look", "rounded", "selected", "size", "tabindex", "toggleable", "class"], outputs: ["disabledChange", "loadingChange", "lookChange", "selectedChange"] }, { kind: "directive", type: ListViewSelectableDirective, selector: "mona-list-view[monaListViewSelectable]", inputs: ["monaListViewSelectable", "selectBy", "selectedKeys"], outputs: ["selectedKeysChange"] }, { kind: "directive", type: ListViewFooterTemplateDirective, selector: "ng-template[monaListViewFooterTemplate]" }] }); }
4066
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.6", type: GridColumnChooserComponent, isStandalone: true, selector: "mona-grid-column-chooser", outputs: { apply: "apply", cancel: "cancel" }, ngImport: i0, template: "<mona-list-view\n [items]=\"columnListSource()\"\n [textField]=\"'title'\"\n [height]=\"'auto'\"\n [maxHeight]=\"300\"\n [monaListViewSelectable]=\"{ enabled: true, mode: 'multiple', checkboxes: true }\"\n [selectBy]=\"'field'\"\n [selectedKeys]=\"selectedColumnFields()\"\n (selectedKeysChange)=\"onSelectedKeysChange($event)\"\n [rounded]=\"'none'\"\n [size]=\"'small'\"\n class=\"shadow-lg\">\n <ng-template monaListViewHeaderTemplate>\n <div class=\"flex p-1 bg-header-background border-b border-b-border\">\n <mona-filter-input\n [filter]=\"filterText()\"\n (filterChange)=\"filterText.set($event.filter)\"></mona-filter-input>\n </div>\n </ng-template>\n <ng-template monaListViewFooterTemplate>\n <div class=\"flex px-3 py-1 font-medium bg-header-background border-t border-t-border\">\n {{ selectedColumnFields().length }} selected columns\n </div>\n <div class=\"flex gap-2 px-2 py-2 bg-header-background border-t border-t-border\">\n <button class=\"flex-1\" monaButton [size]=\"'small'\" look=\"primary\" (click)=\"onApplyClick()\">Apply</button>\n <button class=\"flex-1\" monaButton [size]=\"'small'\" (click)=\"onCancelClick()\">Cancel</button>\n </div>\n </ng-template>\n</mona-list-view>\n", dependencies: [{ kind: "component", type: ListViewComponent, selector: "mona-list-view", inputs: ["aria-label", "height", "listClass", "listItemClass", "listItemStyle", "listStyle", "items", "maxHeight", "maxWidth", "rounded", "size", "textField", "class", "width"], outputs: ["scrollBottom"] }, { kind: "directive", type: ListViewHeaderTemplateDirective, selector: "ng-template[monaListViewHeaderTemplate]" }, { kind: "component", type: FilterInputComponent, selector: "mona-filter-input", inputs: ["debounce", "filter", "placeholder", "size"], outputs: ["filterChange", "inputBlur", "inputFocus"] }, { kind: "directive", type: ButtonDirective, selector: "button[monaButton]", inputs: ["aria-haspopup", "disabled", "iconOnly", "loading", "look", "rounded", "selected", "size", "tabindex", "toggleable", "class"], outputs: ["disabledChange", "loadingChange", "lookChange", "selectedChange"] }, { kind: "directive", type: ListViewSelectableDirective, selector: "mona-list-view[monaListViewSelectable]", inputs: ["monaListViewSelectable", "selectBy", "selectedKeys"], outputs: ["selectedKeysChange"] }, { kind: "directive", type: ListViewFooterTemplateDirective, selector: "ng-template[monaListViewFooterTemplate]" }] }); }
4329
4067
  }
4330
4068
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: GridColumnChooserComponent, decorators: [{
4331
4069
  type: Component,
@@ -4336,7 +4074,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
4336
4074
  ButtonDirective,
4337
4075
  ListViewSelectableDirective,
4338
4076
  ListViewFooterTemplateDirective
4339
- ], template: "<mona-list-view\r\n [items]=\"columnListSource()\"\r\n [textField]=\"'title'\"\r\n [height]=\"'auto'\"\r\n [maxHeight]=\"300\"\r\n [monaListViewSelectable]=\"{ enabled: true, mode: 'multiple', checkboxes: true }\"\r\n [selectBy]=\"'field'\"\r\n [selectedKeys]=\"selectedColumnFields()\"\r\n (selectedKeysChange)=\"onSelectedKeysChange($event)\"\r\n [rounded]=\"'none'\"\r\n [size]=\"'small'\"\r\n class=\"shadow-lg\">\r\n <ng-template monaListViewHeaderTemplate>\r\n <div class=\"flex p-1 bg-header-background border-b border-b-border\">\r\n <mona-filter-input\r\n [filter]=\"filterText()\"\r\n (filterChange)=\"filterText.set($event.filter)\"></mona-filter-input>\r\n </div>\r\n </ng-template>\r\n <ng-template monaListViewFooterTemplate>\r\n <div class=\"flex px-3 py-1 font-medium bg-header-background border-t border-t-border\">\r\n {{ selectedColumnFields().length }} selected columns\r\n </div>\r\n <div class=\"flex gap-2 px-2 py-2 bg-header-background border-t border-t-border\">\r\n <button class=\"flex-1\" monaButton [size]=\"'small'\" look=\"primary\" (click)=\"onApplyClick()\">Apply</button>\r\n <button class=\"flex-1\" monaButton [size]=\"'small'\" (click)=\"onCancelClick()\">Cancel</button>\r\n </div>\r\n </ng-template>\r\n</mona-list-view>\r\n" }]
4077
+ ], template: "<mona-list-view\n [items]=\"columnListSource()\"\n [textField]=\"'title'\"\n [height]=\"'auto'\"\n [maxHeight]=\"300\"\n [monaListViewSelectable]=\"{ enabled: true, mode: 'multiple', checkboxes: true }\"\n [selectBy]=\"'field'\"\n [selectedKeys]=\"selectedColumnFields()\"\n (selectedKeysChange)=\"onSelectedKeysChange($event)\"\n [rounded]=\"'none'\"\n [size]=\"'small'\"\n class=\"shadow-lg\">\n <ng-template monaListViewHeaderTemplate>\n <div class=\"flex p-1 bg-header-background border-b border-b-border\">\n <mona-filter-input\n [filter]=\"filterText()\"\n (filterChange)=\"filterText.set($event.filter)\"></mona-filter-input>\n </div>\n </ng-template>\n <ng-template monaListViewFooterTemplate>\n <div class=\"flex px-3 py-1 font-medium bg-header-background border-t border-t-border\">\n {{ selectedColumnFields().length }} selected columns\n </div>\n <div class=\"flex gap-2 px-2 py-2 bg-header-background border-t border-t-border\">\n <button class=\"flex-1\" monaButton [size]=\"'small'\" look=\"primary\" (click)=\"onApplyClick()\">Apply</button>\n <button class=\"flex-1\" monaButton [size]=\"'small'\" (click)=\"onCancelClick()\">Cancel</button>\n </div>\n </ng-template>\n</mona-list-view>\n" }]
4340
4078
  }], ctorParameters: () => [], propDecorators: { apply: [{ type: i0.Output, args: ["apply"] }], cancel: [{ type: i0.Output, args: ["cancel"] }] } });
4341
4079
 
4342
4080
  class GridFilterMenuComponent {
@@ -4423,11 +4161,11 @@ class GridFilterMenuComponent {
4423
4161
  }
4424
4162
  }
4425
4163
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: GridFilterMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4426
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.6", type: GridFilterMenuComponent, isStandalone: true, selector: "mona-grid-filter-menu", inputs: { column: { classPropertyName: "column", publicName: "column", isSignal: true, isRequired: true, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { apply: "apply" }, ngImport: i0, template: "<button\r\n monaButton\r\n look=\"ghost\"\r\n [rounded]=\"'none'\"\r\n [iconOnly]=\"true\"\r\n (click)=\"openPopup()\"\r\n class=\"overflow-hidden w-5 h-5\"\r\n size=\"small\"\r\n [tabindex]=\"-1\"\r\n [class.text-info]=\"column().filtered\">\r\n <svg lucideFunnel [size]=\"12\"></svg>\r\n</button>\r\n", dependencies: [{ kind: "directive", type: ButtonDirective, selector: "button[monaButton]", inputs: ["aria-haspopup", "disabled", "iconOnly", "loading", "look", "rounded", "selected", "size", "tabindex", "toggleable", "class"], outputs: ["disabledChange", "loadingChange", "lookChange", "selectedChange"] }, { kind: "component", type: LucideFunnel, selector: "svg[lucideFunnel], svg[lucideFilter]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4164
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.6", type: GridFilterMenuComponent, isStandalone: true, selector: "mona-grid-filter-menu", inputs: { column: { classPropertyName: "column", publicName: "column", isSignal: true, isRequired: true, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { apply: "apply" }, ngImport: i0, template: "<button\n monaButton\n look=\"ghost\"\n [rounded]=\"'none'\"\n [iconOnly]=\"true\"\n (click)=\"openPopup()\"\n class=\"overflow-hidden w-5 h-5\"\n size=\"small\"\n [tabindex]=\"-1\"\n [class.text-info]=\"column().filtered\">\n <svg lucideFunnel [size]=\"12\"></svg>\n</button>\n", dependencies: [{ kind: "directive", type: ButtonDirective, selector: "button[monaButton]", inputs: ["aria-haspopup", "disabled", "iconOnly", "loading", "look", "rounded", "selected", "size", "tabindex", "toggleable", "class"], outputs: ["disabledChange", "loadingChange", "lookChange", "selectedChange"] }, { kind: "component", type: LucideFunnel, selector: "svg[lucideFunnel], svg[lucideFilter]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4427
4165
  }
4428
4166
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: GridFilterMenuComponent, decorators: [{
4429
4167
  type: Component,
4430
- args: [{ selector: "mona-grid-filter-menu", changeDetection: ChangeDetectionStrategy.OnPush, imports: [ButtonDirective, LucideFunnel], template: "<button\r\n monaButton\r\n look=\"ghost\"\r\n [rounded]=\"'none'\"\r\n [iconOnly]=\"true\"\r\n (click)=\"openPopup()\"\r\n class=\"overflow-hidden w-5 h-5\"\r\n size=\"small\"\r\n [tabindex]=\"-1\"\r\n [class.text-info]=\"column().filtered\">\r\n <svg lucideFunnel [size]=\"12\"></svg>\r\n</button>\r\n" }]
4168
+ args: [{ selector: "mona-grid-filter-menu", changeDetection: ChangeDetectionStrategy.OnPush, imports: [ButtonDirective, LucideFunnel], template: "<button\n monaButton\n look=\"ghost\"\n [rounded]=\"'none'\"\n [iconOnly]=\"true\"\n (click)=\"openPopup()\"\n class=\"overflow-hidden w-5 h-5\"\n size=\"small\"\n [tabindex]=\"-1\"\n [class.text-info]=\"column().filtered\">\n <svg lucideFunnel [size]=\"12\"></svg>\n</button>\n" }]
4431
4169
  }], propDecorators: { apply: [{ type: i0.Output, args: ["apply"] }], column: [{ type: i0.Input, args: [{ isSignal: true, alias: "column", required: true }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }] } });
4432
4170
 
4433
4171
  class GridFilterRowCellComponent {
@@ -4436,17 +4174,14 @@ class GridFilterRowCellComponent {
4436
4174
  #gridService;
4437
4175
  #numberInput$;
4438
4176
  #stringInput$;
4439
- #themeService;
4440
4177
  constructor() {
4441
4178
  this.#destroyRef = inject(DestroyRef);
4442
4179
  this.#filterService = inject(FilterService);
4443
4180
  this.#gridService = inject(GridService);
4444
4181
  this.#numberInput$ = new Subject();
4445
4182
  this.#stringInput$ = new Subject();
4446
- this.#themeService = inject(ThemeService);
4447
4183
  this.baseClass = computed(() => {
4448
- const theme = this.#themeService.theme();
4449
- return gridFilterRowCellThemeVariants(theme)();
4184
+ return gridFilterRowCellThemeVariants();
4450
4185
  }, /* @ts-ignore */
4451
4186
  ...(ngDevMode ? [{ debugName: "baseClass" }] : /* istanbul ignore next */ []));
4452
4187
  this.isFilterActive = computed(() => {
@@ -4664,7 +4399,7 @@ class GridFilterRowCellComponent {
4664
4399
  });
4665
4400
  }
4666
4401
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: GridFilterRowCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4667
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: GridFilterRowCellComponent, isStandalone: true, selector: "mona-grid-filter-row-cell", inputs: { column: { classPropertyName: "column", publicName: "column", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { apply: "apply" }, host: { properties: { "class": "baseClass()" } }, ngImport: i0, template: "@let dataType = column().dataType;\r\n\r\n@switch (dataType) {\r\n @case (\"string\") {\r\n <div class=\"flex gap-0.5 w-full\">\r\n <mona-text-box\r\n size=\"small\"\r\n [ngModel]=\"stringValue()\"\r\n (ngModelChange)=\"onStringChange($event)\"\r\n placeholder=\"Filter...\" />\r\n <button monaButton look=\"ghost\" [iconOnly]=\"true\" [size]=\"'small'\" #filterButton>\r\n <svg lucideFunnel [size]=\"14\" [class.text-info]=\"isFilterActive()\"></svg>\r\n </button>\r\n <ng-container\r\n *ngTemplateOutlet=\"clearFilterButtonTemplate; context: { $implicit: isFilterActive() }\"></ng-container>\r\n </div>\r\n <mona-popup-menu [target]=\"filterButton\" [size]=\"'small'\">\r\n @for (item of stringFilterMenuItems; track item) {\r\n <mona-popup-menu-checkbox-item\r\n size=\"small\"\r\n [label]=\"item.text\"\r\n (menuClick)=\"onOperatorChange(item.value)\"\r\n [checked]=\"selectedOperator() === item.value\"></mona-popup-menu-checkbox-item>\r\n }\r\n </mona-popup-menu>\r\n }\r\n @case (\"number\") {\r\n <div class=\"flex gap-0.5 w-full\">\r\n <mona-numeric-text-box\r\n size=\"small\"\r\n [ngModel]=\"numberValue()\"\r\n (ngModelChange)=\"onNumberChange($event)\"\r\n [style.width.%]=\"100\" />\r\n\r\n <button monaButton look=\"ghost\" [iconOnly]=\"true\" [size]=\"'small'\" #filterButton>\r\n <svg lucideFunnel [size]=\"14\" [class.text-info]=\"isFilterActive()\"></svg>\r\n </button>\r\n <mona-popup-menu [target]=\"filterButton\" [size]=\"'small'\">\r\n @for (item of numericFilterMenuItems; track item) {\r\n <mona-popup-menu-checkbox-item\r\n size=\"small\"\r\n [label]=\"item.text\"\r\n (menuClick)=\"onOperatorChange(item.value)\"\r\n [checked]=\"selectedOperator() === item.value\"></mona-popup-menu-checkbox-item>\r\n }\r\n </mona-popup-menu>\r\n <ng-container\r\n *ngTemplateOutlet=\"clearFilterButtonTemplate; context: { $implicit: isFilterActive() }\"></ng-container>\r\n </div>\r\n }\r\n @case (\"date\") {\r\n <div class=\"flex gap-0.5 w-full\">\r\n @if (dataType === \"date\") {\r\n <mona-date-picker\r\n size=\"small\"\r\n [ngModel]=\"dateValue()\"\r\n (ngModelChange)=\"onDateChange($event)\"\r\n [style.width.%]=\"100\" />\r\n }\r\n <button monaButton look=\"ghost\" [iconOnly]=\"true\" [size]=\"'small'\" #filterButton>\r\n <svg lucideFunnel [size]=\"14\" [class.text-info]=\"isFilterActive()\"></svg>\r\n </button>\r\n <ng-container\r\n *ngTemplateOutlet=\"clearFilterButtonTemplate; context: { $implicit: isFilterActive() }\"></ng-container>\r\n </div>\r\n <mona-popup-menu [target]=\"filterButton\" [size]=\"'small'\">\r\n @for (item of dateFilterMenuItems; track item) {\r\n <mona-popup-menu-checkbox-item\r\n size=\"small\"\r\n [label]=\"item.text\"\r\n (menuClick)=\"onOperatorChange(item.value)\"\r\n [checked]=\"selectedOperator() === item.value\"></mona-popup-menu-checkbox-item>\r\n }\r\n </mona-popup-menu>\r\n }\r\n @case (\"boolean\") {\r\n <div class=\"flex gap-0.5 w-full\">\r\n <mona-dropdown-list\r\n size=\"small\"\r\n [data]=\"booleanFilterMenuItems\"\r\n textField=\"text\"\r\n valueField=\"value\"\r\n placeholder=\"(All)\"\r\n [ngModel]=\"booleanValue()\"\r\n (ngModelChange)=\"onBooleanChange($event)\"\r\n [style.width.%]=\"100\" />\r\n <ng-container\r\n *ngTemplateOutlet=\"clearFilterButtonTemplate; context: { $implicit: isFilterActive() }\"></ng-container>\r\n </div>\r\n }\r\n}\r\n\r\n<ng-template #clearFilterButtonTemplate let-hasValue>\r\n @if (selectedOperator() != null && hasValue) {\r\n <button monaButton look=\"ghost\" [iconOnly]=\"true\" [size]=\"'small'\" (click)=\"onClear()\">\r\n <svg lucideFunnelX [size]=\"14\" class=\"text-error\"></svg>\r\n </button>\r\n }\r\n</ng-template>\r\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: TextBoxComponent, selector: "mona-text-box", inputs: ["clearButton", "disabled", "inputAttributes", "inputClass", "inputStyle", "invalid", "placeholder", "readonly", "required", "rounded", "size", "touched", "type", "class", "value"], outputs: ["inputBlur", "inputFocus", "touch", "valueChange"] }, { kind: "component", type: NumericTextBoxComponent, selector: "mona-numeric-text-box", inputs: ["aria-label", "decimals", "disabled", "formatter", "maxValue", "minValue", "nullable", "readonly", "required", "invalid", "rounded", "size", "spinners", "step", "tabindex", "touched", "class", "value"], outputs: ["inputBlur", "inputFocus", "inputFocusOut", "touch", "valueChange"] }, { kind: "component", type: DatePickerComponent, selector: "mona-date-picker", inputs: ["disabled", "disabledDates", "firstDay", "format", "invalid", "max", "min", "placeholder", "popupClass", "popupHeight", "popupWidth", "readonly", "readonlyInput", "required", "rounded", "showClearButton", "size", "touched", "class", "value", "weekNumber"], outputs: ["close", "closed", "open", "opened", "touch", "valueChange"] }, { kind: "component", type: DropdownListComponent, selector: "mona-dropdown-list", inputs: ["aria-label", "aria-labelledby", "data", "disabled", "itemDisabled", "invalid", "loading", "placeholder", "popupClass", "popupHeight", "popupWidth", "readonly", "required", "rounded", "showClearButton", "size", "textField", "touched", "class", "valueField", "value"], outputs: ["close", "closed", "disabledChange", "open", "opened", "touch", "valueChange"] }, { kind: "directive", type: ButtonDirective, selector: "button[monaButton]", inputs: ["aria-haspopup", "disabled", "iconOnly", "loading", "look", "rounded", "selected", "size", "tabindex", "toggleable", "class"], outputs: ["disabledChange", "loadingChange", "lookChange", "selectedChange"] }, { kind: "component", type: PopupMenuComponent, selector: "mona-popup-menu", inputs: ["anchor", "anchorConnectionPoint", "items", "id", "minWidth", "offset", "popupConnectionPoint", "precise", "rounded", "size", "target", "trigger", "width"], outputs: ["close", "menuClick", "navigate", "open"] }, { kind: "component", type: PopupMenuCheckboxItemComponent, selector: "mona-popup-menu-checkbox-item", inputs: ["checked", "disabled", "label"], outputs: ["checkedChange", "menuClick"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: LucideFunnelX, selector: "svg[lucideFunnelX], svg[lucideFilterX]" }, { kind: "component", type: LucideFunnel, selector: "svg[lucideFunnel], svg[lucideFilter]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4402
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: GridFilterRowCellComponent, isStandalone: true, selector: "mona-grid-filter-row-cell", inputs: { column: { classPropertyName: "column", publicName: "column", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { apply: "apply" }, host: { properties: { "class": "baseClass()" } }, ngImport: i0, template: "@let dataType = column().dataType;\n\n@switch (dataType) {\n @case (\"string\") {\n <div class=\"flex gap-0.5 w-full\">\n <mona-text-box\n size=\"small\"\n [ngModel]=\"stringValue()\"\n (ngModelChange)=\"onStringChange($event)\"\n placeholder=\"Filter...\" />\n <button monaButton look=\"ghost\" [iconOnly]=\"true\" [size]=\"'small'\" #filterButton>\n <svg lucideFunnel [size]=\"14\" [class.text-info]=\"isFilterActive()\"></svg>\n </button>\n <ng-container\n *ngTemplateOutlet=\"clearFilterButtonTemplate; context: { $implicit: isFilterActive() }\"></ng-container>\n </div>\n <mona-popup-menu [target]=\"filterButton\" [size]=\"'small'\">\n @for (item of stringFilterMenuItems; track item) {\n <mona-popup-menu-checkbox-item\n size=\"small\"\n [label]=\"item.text\"\n (menuClick)=\"onOperatorChange(item.value)\"\n [checked]=\"selectedOperator() === item.value\"></mona-popup-menu-checkbox-item>\n }\n </mona-popup-menu>\n }\n @case (\"number\") {\n <div class=\"flex gap-0.5 w-full\">\n <mona-numeric-text-box\n size=\"small\"\n [ngModel]=\"numberValue()\"\n (ngModelChange)=\"onNumberChange($event)\"\n [style.width.%]=\"100\" />\n\n <button monaButton look=\"ghost\" [iconOnly]=\"true\" [size]=\"'small'\" #filterButton>\n <svg lucideFunnel [size]=\"14\" [class.text-info]=\"isFilterActive()\"></svg>\n </button>\n <mona-popup-menu [target]=\"filterButton\" [size]=\"'small'\">\n @for (item of numericFilterMenuItems; track item) {\n <mona-popup-menu-checkbox-item\n size=\"small\"\n [label]=\"item.text\"\n (menuClick)=\"onOperatorChange(item.value)\"\n [checked]=\"selectedOperator() === item.value\"></mona-popup-menu-checkbox-item>\n }\n </mona-popup-menu>\n <ng-container\n *ngTemplateOutlet=\"clearFilterButtonTemplate; context: { $implicit: isFilterActive() }\"></ng-container>\n </div>\n }\n @case (\"date\") {\n <div class=\"flex gap-0.5 w-full\">\n @if (dataType === \"date\") {\n <mona-date-picker\n size=\"small\"\n [ngModel]=\"dateValue()\"\n (ngModelChange)=\"onDateChange($event)\"\n [style.width.%]=\"100\" />\n }\n <button monaButton look=\"ghost\" [iconOnly]=\"true\" [size]=\"'small'\" #filterButton>\n <svg lucideFunnel [size]=\"14\" [class.text-info]=\"isFilterActive()\"></svg>\n </button>\n <ng-container\n *ngTemplateOutlet=\"clearFilterButtonTemplate; context: { $implicit: isFilterActive() }\"></ng-container>\n </div>\n <mona-popup-menu [target]=\"filterButton\" [size]=\"'small'\">\n @for (item of dateFilterMenuItems; track item) {\n <mona-popup-menu-checkbox-item\n size=\"small\"\n [label]=\"item.text\"\n (menuClick)=\"onOperatorChange(item.value)\"\n [checked]=\"selectedOperator() === item.value\"></mona-popup-menu-checkbox-item>\n }\n </mona-popup-menu>\n }\n @case (\"boolean\") {\n <div class=\"flex gap-0.5 w-full\">\n <mona-dropdown-list\n size=\"small\"\n [data]=\"booleanFilterMenuItems\"\n textField=\"text\"\n valueField=\"value\"\n placeholder=\"(All)\"\n [ngModel]=\"booleanValue()\"\n (ngModelChange)=\"onBooleanChange($event)\"\n [style.width.%]=\"100\" />\n <ng-container\n *ngTemplateOutlet=\"clearFilterButtonTemplate; context: { $implicit: isFilterActive() }\"></ng-container>\n </div>\n }\n}\n\n<ng-template #clearFilterButtonTemplate let-hasValue>\n @if (selectedOperator() != null && hasValue) {\n <button monaButton look=\"ghost\" [iconOnly]=\"true\" [size]=\"'small'\" (click)=\"onClear()\">\n <svg lucideFunnelX [size]=\"14\" class=\"text-error\"></svg>\n </button>\n }\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: TextBoxComponent, selector: "mona-text-box", inputs: ["clearButton", "disabled", "inputAttributes", "inputClass", "inputStyle", "invalid", "placeholder", "readonly", "required", "rounded", "size", "touched", "type", "class", "value"], outputs: ["inputBlur", "inputFocus", "touch", "valueChange"] }, { kind: "component", type: NumericTextBoxComponent, selector: "mona-numeric-text-box", inputs: ["aria-label", "decimals", "disabled", "formatter", "maxValue", "minValue", "nullable", "readonly", "required", "invalid", "rounded", "size", "spinners", "step", "tabindex", "touched", "class", "value"], outputs: ["inputBlur", "inputFocus", "inputFocusOut", "touch", "valueChange"] }, { kind: "component", type: DatePickerComponent, selector: "mona-date-picker", inputs: ["disabled", "disabledDates", "firstDay", "format", "invalid", "max", "min", "placeholder", "popupClass", "popupHeight", "popupWidth", "readonly", "readonlyInput", "required", "rounded", "showClearButton", "size", "touched", "class", "value", "weekNumber"], outputs: ["close", "closed", "open", "opened", "touch", "valueChange"] }, { kind: "component", type: DropdownListComponent, selector: "mona-dropdown-list", inputs: ["aria-label", "aria-labelledby", "data", "disabled", "itemDisabled", "invalid", "loading", "placeholder", "popupClass", "popupHeight", "popupWidth", "readonly", "required", "rounded", "showClearButton", "size", "textField", "touched", "class", "valueField", "value"], outputs: ["close", "closed", "disabledChange", "open", "opened", "touch", "valueChange"] }, { kind: "directive", type: ButtonDirective, selector: "button[monaButton]", inputs: ["aria-haspopup", "disabled", "iconOnly", "loading", "look", "rounded", "selected", "size", "tabindex", "toggleable", "class"], outputs: ["disabledChange", "loadingChange", "lookChange", "selectedChange"] }, { kind: "component", type: PopupMenuComponent, selector: "mona-popup-menu", inputs: ["anchor", "anchorConnectionPoint", "items", "id", "minWidth", "offset", "popupConnectionPoint", "precise", "rounded", "size", "target", "trigger", "width"], outputs: ["close", "menuClick", "navigate", "open"] }, { kind: "component", type: PopupMenuCheckboxItemComponent, selector: "mona-popup-menu-checkbox-item", inputs: ["checked", "disabled", "label"], outputs: ["checkedChange", "menuClick"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: LucideFunnelX, selector: "svg[lucideFunnelX], svg[lucideFilterX]" }, { kind: "component", type: LucideFunnel, selector: "svg[lucideFunnel], svg[lucideFilter]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4668
4403
  }
4669
4404
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: GridFilterRowCellComponent, decorators: [{
4670
4405
  type: Component,
@@ -4682,7 +4417,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
4682
4417
  LucideFunnel
4683
4418
  ], host: {
4684
4419
  "[class]": "baseClass()"
4685
- }, template: "@let dataType = column().dataType;\r\n\r\n@switch (dataType) {\r\n @case (\"string\") {\r\n <div class=\"flex gap-0.5 w-full\">\r\n <mona-text-box\r\n size=\"small\"\r\n [ngModel]=\"stringValue()\"\r\n (ngModelChange)=\"onStringChange($event)\"\r\n placeholder=\"Filter...\" />\r\n <button monaButton look=\"ghost\" [iconOnly]=\"true\" [size]=\"'small'\" #filterButton>\r\n <svg lucideFunnel [size]=\"14\" [class.text-info]=\"isFilterActive()\"></svg>\r\n </button>\r\n <ng-container\r\n *ngTemplateOutlet=\"clearFilterButtonTemplate; context: { $implicit: isFilterActive() }\"></ng-container>\r\n </div>\r\n <mona-popup-menu [target]=\"filterButton\" [size]=\"'small'\">\r\n @for (item of stringFilterMenuItems; track item) {\r\n <mona-popup-menu-checkbox-item\r\n size=\"small\"\r\n [label]=\"item.text\"\r\n (menuClick)=\"onOperatorChange(item.value)\"\r\n [checked]=\"selectedOperator() === item.value\"></mona-popup-menu-checkbox-item>\r\n }\r\n </mona-popup-menu>\r\n }\r\n @case (\"number\") {\r\n <div class=\"flex gap-0.5 w-full\">\r\n <mona-numeric-text-box\r\n size=\"small\"\r\n [ngModel]=\"numberValue()\"\r\n (ngModelChange)=\"onNumberChange($event)\"\r\n [style.width.%]=\"100\" />\r\n\r\n <button monaButton look=\"ghost\" [iconOnly]=\"true\" [size]=\"'small'\" #filterButton>\r\n <svg lucideFunnel [size]=\"14\" [class.text-info]=\"isFilterActive()\"></svg>\r\n </button>\r\n <mona-popup-menu [target]=\"filterButton\" [size]=\"'small'\">\r\n @for (item of numericFilterMenuItems; track item) {\r\n <mona-popup-menu-checkbox-item\r\n size=\"small\"\r\n [label]=\"item.text\"\r\n (menuClick)=\"onOperatorChange(item.value)\"\r\n [checked]=\"selectedOperator() === item.value\"></mona-popup-menu-checkbox-item>\r\n }\r\n </mona-popup-menu>\r\n <ng-container\r\n *ngTemplateOutlet=\"clearFilterButtonTemplate; context: { $implicit: isFilterActive() }\"></ng-container>\r\n </div>\r\n }\r\n @case (\"date\") {\r\n <div class=\"flex gap-0.5 w-full\">\r\n @if (dataType === \"date\") {\r\n <mona-date-picker\r\n size=\"small\"\r\n [ngModel]=\"dateValue()\"\r\n (ngModelChange)=\"onDateChange($event)\"\r\n [style.width.%]=\"100\" />\r\n }\r\n <button monaButton look=\"ghost\" [iconOnly]=\"true\" [size]=\"'small'\" #filterButton>\r\n <svg lucideFunnel [size]=\"14\" [class.text-info]=\"isFilterActive()\"></svg>\r\n </button>\r\n <ng-container\r\n *ngTemplateOutlet=\"clearFilterButtonTemplate; context: { $implicit: isFilterActive() }\"></ng-container>\r\n </div>\r\n <mona-popup-menu [target]=\"filterButton\" [size]=\"'small'\">\r\n @for (item of dateFilterMenuItems; track item) {\r\n <mona-popup-menu-checkbox-item\r\n size=\"small\"\r\n [label]=\"item.text\"\r\n (menuClick)=\"onOperatorChange(item.value)\"\r\n [checked]=\"selectedOperator() === item.value\"></mona-popup-menu-checkbox-item>\r\n }\r\n </mona-popup-menu>\r\n }\r\n @case (\"boolean\") {\r\n <div class=\"flex gap-0.5 w-full\">\r\n <mona-dropdown-list\r\n size=\"small\"\r\n [data]=\"booleanFilterMenuItems\"\r\n textField=\"text\"\r\n valueField=\"value\"\r\n placeholder=\"(All)\"\r\n [ngModel]=\"booleanValue()\"\r\n (ngModelChange)=\"onBooleanChange($event)\"\r\n [style.width.%]=\"100\" />\r\n <ng-container\r\n *ngTemplateOutlet=\"clearFilterButtonTemplate; context: { $implicit: isFilterActive() }\"></ng-container>\r\n </div>\r\n }\r\n}\r\n\r\n<ng-template #clearFilterButtonTemplate let-hasValue>\r\n @if (selectedOperator() != null && hasValue) {\r\n <button monaButton look=\"ghost\" [iconOnly]=\"true\" [size]=\"'small'\" (click)=\"onClear()\">\r\n <svg lucideFunnelX [size]=\"14\" class=\"text-error\"></svg>\r\n </button>\r\n }\r\n</ng-template>\r\n" }]
4420
+ }, template: "@let dataType = column().dataType;\n\n@switch (dataType) {\n @case (\"string\") {\n <div class=\"flex gap-0.5 w-full\">\n <mona-text-box\n size=\"small\"\n [ngModel]=\"stringValue()\"\n (ngModelChange)=\"onStringChange($event)\"\n placeholder=\"Filter...\" />\n <button monaButton look=\"ghost\" [iconOnly]=\"true\" [size]=\"'small'\" #filterButton>\n <svg lucideFunnel [size]=\"14\" [class.text-info]=\"isFilterActive()\"></svg>\n </button>\n <ng-container\n *ngTemplateOutlet=\"clearFilterButtonTemplate; context: { $implicit: isFilterActive() }\"></ng-container>\n </div>\n <mona-popup-menu [target]=\"filterButton\" [size]=\"'small'\">\n @for (item of stringFilterMenuItems; track item) {\n <mona-popup-menu-checkbox-item\n size=\"small\"\n [label]=\"item.text\"\n (menuClick)=\"onOperatorChange(item.value)\"\n [checked]=\"selectedOperator() === item.value\"></mona-popup-menu-checkbox-item>\n }\n </mona-popup-menu>\n }\n @case (\"number\") {\n <div class=\"flex gap-0.5 w-full\">\n <mona-numeric-text-box\n size=\"small\"\n [ngModel]=\"numberValue()\"\n (ngModelChange)=\"onNumberChange($event)\"\n [style.width.%]=\"100\" />\n\n <button monaButton look=\"ghost\" [iconOnly]=\"true\" [size]=\"'small'\" #filterButton>\n <svg lucideFunnel [size]=\"14\" [class.text-info]=\"isFilterActive()\"></svg>\n </button>\n <mona-popup-menu [target]=\"filterButton\" [size]=\"'small'\">\n @for (item of numericFilterMenuItems; track item) {\n <mona-popup-menu-checkbox-item\n size=\"small\"\n [label]=\"item.text\"\n (menuClick)=\"onOperatorChange(item.value)\"\n [checked]=\"selectedOperator() === item.value\"></mona-popup-menu-checkbox-item>\n }\n </mona-popup-menu>\n <ng-container\n *ngTemplateOutlet=\"clearFilterButtonTemplate; context: { $implicit: isFilterActive() }\"></ng-container>\n </div>\n }\n @case (\"date\") {\n <div class=\"flex gap-0.5 w-full\">\n @if (dataType === \"date\") {\n <mona-date-picker\n size=\"small\"\n [ngModel]=\"dateValue()\"\n (ngModelChange)=\"onDateChange($event)\"\n [style.width.%]=\"100\" />\n }\n <button monaButton look=\"ghost\" [iconOnly]=\"true\" [size]=\"'small'\" #filterButton>\n <svg lucideFunnel [size]=\"14\" [class.text-info]=\"isFilterActive()\"></svg>\n </button>\n <ng-container\n *ngTemplateOutlet=\"clearFilterButtonTemplate; context: { $implicit: isFilterActive() }\"></ng-container>\n </div>\n <mona-popup-menu [target]=\"filterButton\" [size]=\"'small'\">\n @for (item of dateFilterMenuItems; track item) {\n <mona-popup-menu-checkbox-item\n size=\"small\"\n [label]=\"item.text\"\n (menuClick)=\"onOperatorChange(item.value)\"\n [checked]=\"selectedOperator() === item.value\"></mona-popup-menu-checkbox-item>\n }\n </mona-popup-menu>\n }\n @case (\"boolean\") {\n <div class=\"flex gap-0.5 w-full\">\n <mona-dropdown-list\n size=\"small\"\n [data]=\"booleanFilterMenuItems\"\n textField=\"text\"\n valueField=\"value\"\n placeholder=\"(All)\"\n [ngModel]=\"booleanValue()\"\n (ngModelChange)=\"onBooleanChange($event)\"\n [style.width.%]=\"100\" />\n <ng-container\n *ngTemplateOutlet=\"clearFilterButtonTemplate; context: { $implicit: isFilterActive() }\"></ng-container>\n </div>\n }\n}\n\n<ng-template #clearFilterButtonTemplate let-hasValue>\n @if (selectedOperator() != null && hasValue) {\n <button monaButton look=\"ghost\" [iconOnly]=\"true\" [size]=\"'small'\" (click)=\"onClear()\">\n <svg lucideFunnelX [size]=\"14\" class=\"text-error\"></svg>\n </button>\n }\n</ng-template>\n" }]
4686
4421
  }], ctorParameters: () => [], propDecorators: { apply: [{ type: i0.Output, args: ["apply"] }], column: [{ type: i0.Input, args: [{ isSignal: true, alias: "column", required: true }] }] } });
4687
4422
 
4688
4423
  const FOCUSABLE_TARGET_SELECTOR = "button, input, select, textarea, a[href], [tabindex]";
@@ -4697,7 +4432,6 @@ class GridComponent {
4697
4432
  #platformId;
4698
4433
  #registeredFooterScrollElement;
4699
4434
  #toolbarActiveIndex;
4700
- #themeService;
4701
4435
  #resizeObserver;
4702
4436
  constructor() {
4703
4437
  this.#destroyRef = inject(DestroyRef);
@@ -4715,38 +4449,32 @@ class GridComponent {
4715
4449
  ...(ngDevMode ? [{ debugName: "#registeredFooterScrollElement" }] : /* istanbul ignore next */ []));
4716
4450
  this.#toolbarActiveIndex = signal(0, /* @ts-ignore */
4717
4451
  ...(ngDevMode ? [{ debugName: "#toolbarActiveIndex" }] : /* istanbul ignore next */ []));
4718
- this.#themeService = inject(ThemeService);
4719
4452
  this.#resizeObserver = null;
4720
4453
  this.footerScrollElement = viewChild("footerScrollElement", /* @ts-ignore */
4721
4454
  ...(ngDevMode ? [{ debugName: "footerScrollElement" }] : /* istanbul ignore next */ []));
4722
4455
  this.baseClass = computed(() => {
4723
- const theme = this.#themeService.theme();
4724
4456
  const rounded = this.rounded();
4725
- const variantClass = gridBaseThemeVariants(theme)({ rounded });
4457
+ const variantClass = gridBaseThemeVariants({ rounded });
4726
4458
  const userClass = this.userClass();
4727
4459
  return twMerge(variantClass, userClass);
4728
4460
  }, /* @ts-ignore */
4729
4461
  ...(ngDevMode ? [{ debugName: "baseClass" }] : /* istanbul ignore next */ []));
4730
4462
  this.columnActionsClass = computed(() => {
4731
- const theme = this.#themeService.theme();
4732
- return gridColumnActionsThemeVariants(theme)();
4463
+ return gridColumnActionsThemeVariants();
4733
4464
  }, /* @ts-ignore */
4734
4465
  ...(ngDevMode ? [{ debugName: "columnActionsClass" }] : /* istanbul ignore next */ []));
4735
4466
  this.columnDragPreviewClass = computed(() => {
4736
- const theme = this.#themeService.theme();
4737
- return gridColumnDragPreviewThemeVariants(theme)();
4467
+ return gridColumnDragPreviewThemeVariants();
4738
4468
  }, /* @ts-ignore */
4739
4469
  ...(ngDevMode ? [{ debugName: "columnDragPreviewClass" }] : /* istanbul ignore next */ []));
4740
4470
  this.columnDragging = signal(false, /* @ts-ignore */
4741
4471
  ...(ngDevMode ? [{ debugName: "columnDragging" }] : /* istanbul ignore next */ []));
4742
4472
  this.columnDropHintClass = computed(() => {
4743
- const theme = this.#themeService.theme();
4744
- return gridColumnDropHintThemeVariants(theme)();
4473
+ return gridColumnDropHintThemeVariants();
4745
4474
  }, /* @ts-ignore */
4746
4475
  ...(ngDevMode ? [{ debugName: "columnDropHintClass" }] : /* istanbul ignore next */ []));
4747
4476
  this.columnResizerClass = computed(() => {
4748
- const theme = this.#themeService.theme();
4749
- return gridColumnResizerThemeVariants(theme)();
4477
+ return gridColumnResizerThemeVariants();
4750
4478
  }, /* @ts-ignore */
4751
4479
  ...(ngDevMode ? [{ debugName: "columnResizerClass" }] : /* istanbul ignore next */ []));
4752
4480
  this.dragColumn = signal(null, /* @ts-ignore */
@@ -4764,18 +4492,15 @@ class GridComponent {
4764
4492
  }, /* @ts-ignore */
4765
4493
  ...(ngDevMode ? [{ debugName: "filterRowEnabled" }] : /* istanbul ignore next */ []));
4766
4494
  this.footerClass = computed(() => {
4767
- const theme = this.#themeService.theme();
4768
- return gridFooterThemeVariants(theme)();
4495
+ return gridFooterThemeVariants();
4769
4496
  }, /* @ts-ignore */
4770
4497
  ...(ngDevMode ? [{ debugName: "footerClass" }] : /* istanbul ignore next */ []));
4771
4498
  this.footerTableClass = computed(() => {
4772
- const theme = this.#themeService.theme();
4773
- return gridFooterTableThemeVariants(theme)();
4499
+ return gridFooterTableThemeVariants();
4774
4500
  }, /* @ts-ignore */
4775
4501
  ...(ngDevMode ? [{ debugName: "footerTableClass" }] : /* istanbul ignore next */ []));
4776
4502
  this.footerTableRowClass = computed(() => {
4777
- const theme = this.#themeService.theme();
4778
- return gridFooterTableRowThemeVariants(theme)();
4503
+ return gridFooterTableRowThemeVariants();
4779
4504
  }, /* @ts-ignore */
4780
4505
  ...(ngDevMode ? [{ debugName: "footerTableRowClass" }] : /* istanbul ignore next */ []));
4781
4506
  this.footerVisible = computed(() => !this.gridService.virtualScrollOptions().enabled && this.gridService.hasFooter(), /* @ts-ignore */
@@ -4791,13 +4516,11 @@ class GridComponent {
4791
4516
  this.groupColumnList = viewChild("groupColumnList", /* @ts-ignore */
4792
4517
  ...(ngDevMode ? [{ debugName: "groupColumnList" }] : /* istanbul ignore next */ []));
4793
4518
  this.groupPanelPlaceholderClass = computed(() => {
4794
- const theme = this.#themeService.theme();
4795
- return gridGroupPanelPlaceholderThemeVariants(theme)();
4519
+ return gridGroupPanelPlaceholderThemeVariants();
4796
4520
  }, /* @ts-ignore */
4797
4521
  ...(ngDevMode ? [{ debugName: "groupPanelPlaceholderClass" }] : /* istanbul ignore next */ []));
4798
4522
  this.groupPanelClass = computed(() => {
4799
- const theme = this.#themeService.theme();
4800
- return gridGroupPanelThemeVariants(theme)();
4523
+ return gridGroupPanelThemeVariants();
4801
4524
  }, /* @ts-ignore */
4802
4525
  ...(ngDevMode ? [{ debugName: "groupPanelClass" }] : /* istanbul ignore next */ []));
4803
4526
  this.groupPanelPlaceholderVisible = signal(true, /* @ts-ignore */
@@ -4807,40 +4530,33 @@ class GridComponent {
4807
4530
  this.groupingInProgress = signal(false, /* @ts-ignore */
4808
4531
  ...(ngDevMode ? [{ debugName: "groupingInProgress" }] : /* istanbul ignore next */ []));
4809
4532
  this.headerClass = computed(() => {
4810
- const theme = this.#themeService.theme();
4811
- return gridHeaderThemeVariants(theme)();
4533
+ return gridHeaderThemeVariants();
4812
4534
  }, /* @ts-ignore */
4813
4535
  ...(ngDevMode ? [{ debugName: "headerClass" }] : /* istanbul ignore next */ []));
4814
4536
  this.headerMarginRight = computed(() => this.gridService.scrollbarGutterWidth(), /* @ts-ignore */
4815
4537
  ...(ngDevMode ? [{ debugName: "headerMarginRight" }] : /* istanbul ignore next */ []));
4816
4538
  this.headerTableClass = computed(() => {
4817
- const theme = this.#themeService.theme();
4818
- return gridHeaderTableThemeVariants(theme)();
4539
+ return gridHeaderTableThemeVariants();
4819
4540
  }, /* @ts-ignore */
4820
4541
  ...(ngDevMode ? [{ debugName: "headerTableClass" }] : /* istanbul ignore next */ []));
4821
4542
  this.headerTableCellClass = computed(() => {
4822
- const theme = this.#themeService.theme();
4823
- return gridHeaderTableCellThemeVariants(theme)();
4543
+ return gridHeaderTableCellThemeVariants();
4824
4544
  }, /* @ts-ignore */
4825
4545
  ...(ngDevMode ? [{ debugName: "headerTableCellClass" }] : /* istanbul ignore next */ []));
4826
4546
  this.headerTableColumnTitleClass = computed(() => {
4827
- const theme = this.#themeService.theme();
4828
- return gridHeaderTableColumnTitleThemeVariants(theme)();
4547
+ return gridHeaderTableColumnTitleThemeVariants();
4829
4548
  }, /* @ts-ignore */
4830
4549
  ...(ngDevMode ? [{ debugName: "headerTableColumnTitleClass" }] : /* istanbul ignore next */ []));
4831
4550
  this.headerTableColumnWrapClass = computed(() => {
4832
- const theme = this.#themeService.theme();
4833
- return gridHeaderTableColumnWrapThemeVariants(theme)();
4551
+ return gridHeaderTableColumnWrapThemeVariants();
4834
4552
  }, /* @ts-ignore */
4835
4553
  ...(ngDevMode ? [{ debugName: "headerTableColumnWrapClass" }] : /* istanbul ignore next */ []));
4836
4554
  this.headerTableRowClass = computed(() => {
4837
- const theme = this.#themeService.theme();
4838
- return gridHeaderTableRowThemeVariants(theme)();
4555
+ return gridHeaderTableRowThemeVariants();
4839
4556
  }, /* @ts-ignore */
4840
4557
  ...(ngDevMode ? [{ debugName: "headerTableRowClass" }] : /* istanbul ignore next */ []));
4841
4558
  this.noDataClass = computed(() => {
4842
- const theme = this.#themeService.theme();
4843
- return gridNoDataThemeVariants(theme)();
4559
+ return gridNoDataThemeVariants();
4844
4560
  }, /* @ts-ignore */
4845
4561
  ...(ngDevMode ? [{ debugName: "noDataClass" }] : /* istanbul ignore next */ []));
4846
4562
  this.noDataTemplate = contentChild(GridNoDataTemplateDirective, { ...(ngDevMode ? { debugName: "noDataTemplate" } : /* istanbul ignore next */ {}), read: TemplateRef });
@@ -5318,17 +5034,17 @@ class GridComponent {
5318
5034
  }
5319
5035
  }
5320
5036
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: GridComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5321
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: GridComponent, isStandalone: true, selector: "mona-grid", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: true, isRequired: false, transformFunction: null }, pageSizeValues: { classPropertyName: "pageSizeValues", publicName: "pageSizeValues", isSignal: true, isRequired: false, transformFunction: null }, resizeMethod: { classPropertyName: "resizeMethod", publicName: "resizeMethod", isSignal: true, isRequired: false, transformFunction: null }, responsivePager: { classPropertyName: "responsivePager", publicName: "responsivePager", isSignal: true, isRequired: false, transformFunction: null }, rounded: { classPropertyName: "rounded", publicName: "rounded", isSignal: true, isRequired: false, transformFunction: null }, userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "grid" }, properties: { "class": "baseClass()", "attr.data-uid": "uid" } }, providers: [GridService, GridNavigationService, GridRowFlattenerService, FilterService], queries: [{ propertyName: "gridDetailTemplate", first: true, predicate: GridDetailTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "noDataTemplate", first: true, predicate: GridNoDataTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "toolbarTemplate", first: true, predicate: GridToolbarTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }], viewQueries: [{ propertyName: "footerScrollElement", first: true, predicate: ["footerScrollElement"], descendants: true, isSignal: true }, { propertyName: "gridHeaderElement", first: true, predicate: ["gridHeaderElement"], descendants: true, isSignal: true }, { propertyName: "gridHeaderTableElement", first: true, predicate: ["headerTable"], descendants: true, isSignal: true }, { propertyName: "groupColumnList", first: true, predicate: ["groupColumnList"], descendants: true, isSignal: true }, { propertyName: "toolbarElement", first: true, predicate: ["toolbarElement"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (toolbarTemplate()) {\r\n <div\r\n class=\"flex min-h-10 items-center gap-2 border-b border-border p-2\"\r\n #toolbarElement\r\n (keydown)=\"onToolbarKeydown($event)\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"toolbarTemplate() ?? null\"\r\n [ngTemplateOutletContext]=\"toolbarContext()\"></ng-container>\r\n <button monaButton size=\"small\" #columnsButton>Columns</button>\r\n <mona-popup\r\n [anchor]=\"columnsButton\"\r\n [animation]=\"{ leave: [] }\"\r\n [width]=\"'max-content'\"\r\n [anchorConnectionPoint]=\"'bottomleft'\"\r\n [popupConnectionPoint]=\"'topleft'\"\r\n #popup>\r\n <mona-grid-column-chooser\r\n (apply)=\"popup.closePopup()\"\r\n (cancel)=\"popup.closePopup()\"></mona-grid-column-chooser>\r\n </mona-popup>\r\n </div>\r\n}\r\n\r\n@if (groupable()) {\r\n <div\r\n [class]=\"groupPanelClass()\"\r\n cdkDropList\r\n #groupColumnList=\"cdkDropList\"\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListEntered)=\"onColumnDragEnterForGrouping()\"\r\n (cdkDropListExited)=\"onColumnDragExitForGrouping()\"\r\n (cdkDropListDropped)=\"onColumnDropForGrouping($event)\">\r\n @if (gridService.groupColumns().length !== 0) {\r\n @for (groupColumn of gridService.groupColumns(); track $index) {\r\n <mona-chip\r\n [removable]=\"true\"\r\n size=\"small\"\r\n [rounded]=\"rounded()\"\r\n (click)=\"onGroupingColumnSort(groupColumn)\"\r\n (remove)=\"onGroupingColumnRemove($event, groupColumn)\">\r\n @if (groupColumn.groupSortDirection === \"asc\") {\r\n <i class=\"ri-arrow-down-line\"></i>\r\n } @else if (groupColumn.groupSortDirection === \"desc\") {\r\n <i class=\"ri-arrow-up-line\"></i>\r\n }\r\n <span>{{ groupColumn.title }}</span>\r\n <span class=\"ml-2\" (click)=\"$event.stopPropagation()\" #groupReorder>\r\n <i class=\"ri-more-2-fill\"></i>\r\n </span>\r\n <mona-popup-menu size=\"small\" [target]=\"groupReorder\">\r\n <mona-popup-menu-item\r\n [disabled]=\"$first\"\r\n (menuClick)=\"onGroupColumnReorder(groupColumn, 'prev')\">\r\n <ng-template monaPopupMenuTextTemplate>\r\n <i class=\"ri-arrow-left-fill\"></i> Move as previous\r\n </ng-template>\r\n </mona-popup-menu-item>\r\n <mona-popup-menu-item\r\n [disabled]=\"$last\"\r\n (menuClick)=\"onGroupColumnReorder(groupColumn, 'next')\">\r\n <ng-template monaPopupMenuTextTemplate>\r\n <i class=\"ri-arrow-right-fill\"></i> Move as next\r\n </ng-template>\r\n </mona-popup-menu-item>\r\n </mona-popup-menu>\r\n </mona-chip>\r\n }\r\n } @else if (groupPanelPlaceholderVisible()) {\r\n <span [class]=\"groupPanelPlaceholderClass()\">Drag a column header here to group</span>\r\n }\r\n </div>\r\n}\r\n<div [class]=\"headerClass()\" [style.margin-right.px]=\"headerMarginRight()\" #gridHeaderElement>\r\n <div>\r\n <table #headerTable [class]=\"headerTableClass()\" [style.width.px]=\"gridService.tableWidth()\">\r\n <colgroup>\r\n @for (_ of gridService.groupColumns(); track $index) {\r\n <col [style.width.px]=\"gridService.groupColumnWidth\" />\r\n }\r\n @if (gridService.masterDetailTemplate()) {\r\n <col [style.width.px]=\"gridService.groupColumnWidth\" />\r\n }\r\n @for (col of gridService.visibleColumns(); track $index) {\r\n <col [style.width.px]=\"col.calculatedWidth\" />\r\n }\r\n </colgroup>\r\n <thead role=\"rowgroup\" [style.visibility]=\"!gridWidthSet() ? 'hidden' : undefined\">\r\n <tr\r\n cdkDropList\r\n [cdkDropListConnectedTo]=\"groupable() ? [groupColumnList()!] : []\"\r\n (cdkDropListDropped)=\"onColumnDrop()\"\r\n [class]=\"headerTableRowClass()\">\r\n @for (_ of gridService.groupColumns(); track $index) {\r\n <th\r\n monaGridLockedCell\r\n [lockedCellHeader]=\"true\"\r\n [lockedStructuralOffset]=\"$index * gridService.groupColumnWidth\"\r\n scope=\"col\"\r\n class=\"border-r border-border\"\r\n [attr.colspan]=\"1\"\r\n [style.width.px]=\"gridService.groupColumnWidth\"></th>\r\n }\r\n @if (gridService.masterDetailTemplate()) {\r\n <th\r\n monaGridLockedCell\r\n [lockedCellHeader]=\"true\"\r\n [lockedStructuralOffset]=\"gridService.groupColumns().length * gridService.groupColumnWidth\"\r\n scope=\"col\"\r\n class=\"border-r border-border\"\r\n [attr.colspan]=\"1\"\r\n [style.width.px]=\"gridService.detailColumnWidth\"></th>\r\n }\r\n @for (column of gridService.visibleColumns(); track $index) {\r\n @let colIndex = gridService.masterDetailTemplate() ? $index + 1 : $index;\r\n <th\r\n scope=\"col\"\r\n role=\"columnheader\"\r\n cdkDrag\r\n monaGridLockedCell\r\n [column]=\"column\"\r\n [lockedCellHeader]=\"true\"\r\n monaGridLogicalCell\r\n [cellKind]=\"'header'\"\r\n [columnId]=\"column.id\"\r\n [rowIndex]=\"-1\"\r\n [colIndex]=\"colIndex\"\r\n [section]=\"'header'\"\r\n [firstInRow]=\"colIndex === 0\"\r\n [lastInRow]=\"\r\n colIndex ===\r\n gridService.visibleColumns().length - (gridService.masterDetailTemplate() ? 0 : 1)\r\n \"\r\n (toggle)=\"onColumnSort(column)\"\r\n [cdkDragData]=\"column\"\r\n [cdkDragDisabled]=\"isColumnDragDisabled(column)\"\r\n [class]=\"headerTableCellClass()\"\r\n (mouseenter)=\"onColumnMouseEnter(column)\"\r\n (cdkDragEntered)=\"onColumnDragEnter($event)\"\r\n (cdkDragStarted)=\"onColumnDragStart($event)\"\r\n [style.min-width.px]=\"column.minWidth\"\r\n [style.width.px]=\"column.calculatedWidth\"\r\n [attr.colspan]=\"1\"\r\n [attr.aria-sort]=\"\r\n gridService.sortableOptions().enabled\r\n ? (column.columnSortDirection | columnAriaSort)\r\n : null\r\n \">\r\n <div [class]=\"headerTableColumnWrapClass()\">\r\n @if (column.headerTemplate) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"column.headerTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: column, column }\"></ng-container>\r\n } @else if (column.titleTemplate) {\r\n <ng-container [ngTemplateOutlet]=\"column.titleTemplate\"></ng-container>\r\n } @else {\r\n <span\r\n [class]=\"headerTableColumnTitleClass()\"\r\n (click)=\"onColumnSort(column)\"\r\n [title]=\"column.title\"\r\n >{{ column.title }}</span\r\n >\r\n }\r\n\r\n <div [class]=\"columnActionsClass()\" [attr.data-column-actions]=\"true\">\r\n @if (gridService.sortableOptions().showIndices && column.sortIndex !== null) {\r\n <span>{{ column.sortIndex }}</span>\r\n }\r\n @if (column.columnSortDirection === \"asc\") {\r\n <i class=\"ri-arrow-down-line\"></i>\r\n } @else if (column.columnSortDirection === \"desc\") {\r\n <i class=\"ri-arrow-up-line\"></i>\r\n }\r\n @if (filterMenuEnabled()) {\r\n @if (column.kind === \"data\") {\r\n <mona-grid-filter-menu\r\n [column]=\"column\"\r\n [type]=\"column.dataType\"\r\n (apply)=\"onColumnFilter(column, $event)\"></mona-grid-filter-menu>\r\n }\r\n }\r\n </div>\r\n </div>\r\n @if (\r\n dropColumn() === column &&\r\n dragColumn() &&\r\n gridService.reorderableOptions().enabled &&\r\n !groupingInProgress()\r\n ) {\r\n <span [class]=\"columnDropHintClass()\"> </span>\r\n }\r\n @if (gridService.resizableOptions().enabled && !columnDragging()) {\r\n <div\r\n monaGridColumnResizeHandler\r\n [column]=\"column\"\r\n [class]=\"columnResizerClass()\"\r\n (resizeStart)=\"onColumnResizeStart()\"\r\n (resizeEnd)=\"onColumnResizeEnd($event)\"></div>\r\n }\r\n <ng-template cdkDragPreview>\r\n <div [class]=\"columnDragPreviewClass()\">\r\n <span>{{ column.title }}</span>\r\n </div>\r\n </ng-template>\r\n <ng-template cdkDragPlaceholder>\r\n @if (groupingInProgress()) {\r\n <mona-chip\r\n style=\"z-index: 10; pointer-events: none\"\r\n [removable]=\"true\"\r\n [rounded]=\"rounded()\"\r\n >{{ column.title }}</mona-chip\r\n >\r\n }\r\n </ng-template>\r\n </th>\r\n @if (columnDragging() && dragColumn() === column) {\r\n <th\r\n monaGridLockedCell\r\n [column]=\"column\"\r\n [lockedCellHeader]=\"true\"\r\n [class]=\"headerTableCellClass()\"\r\n [style.min-width.px]=\"column.minWidth\"\r\n [attr.colspan]=\"1\"\r\n [style.width.px]=\"column.calculatedWidth\">\r\n <div [class]=\"headerTableColumnWrapClass()\">\r\n @if (column.headerTemplate) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"column.headerTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: column, column }\"></ng-container>\r\n } @else if (column.titleTemplate) {\r\n <ng-container [ngTemplateOutlet]=\"column.titleTemplate\"></ng-container>\r\n } @else {\r\n <span\r\n [class]=\"headerTableColumnTitleClass()\"\r\n (click)=\"onColumnSort(column)\"\r\n [title]=\"column.title\"\r\n >{{ column.title }}</span\r\n >\r\n }\r\n </div>\r\n </th>\r\n }\r\n }\r\n </tr>\r\n @if (filterRowEnabled()) {\r\n <tr role=\"row\" [class]=\"headerTableRowClass()\">\r\n @for (_ of gridService.groupColumns(); track $index) {\r\n <th\r\n monaGridLockedCell\r\n [lockedCellHeader]=\"true\"\r\n [lockedStructuralOffset]=\"$index * gridService.groupColumnWidth\"\r\n scope=\"col\"\r\n class=\"border-r border-border\"\r\n [style.width.px]=\"gridService.groupColumnWidth\"></th>\r\n }\r\n @if (gridService.masterDetailTemplate()) {\r\n <th\r\n monaGridLockedCell\r\n [lockedCellHeader]=\"true\"\r\n [lockedStructuralOffset]=\"\r\n gridService.groupColumns().length * gridService.groupColumnWidth\r\n \"\r\n scope=\"col\"\r\n class=\"border-r border-border\"\r\n [style.width.px]=\"gridService.detailColumnWidth\"></th>\r\n }\r\n @for (column of gridService.visibleColumns(); track $index) {\r\n <th\r\n monaGridLockedCell\r\n [column]=\"column\"\r\n [lockedCellHeader]=\"true\"\r\n scope=\"col\"\r\n class=\"border-r border-border overflow-hidden\"\r\n [style.width.px]=\"column.calculatedWidth\"\r\n [attr.aria-label]=\"'Filter by ' + column.title\">\r\n @if (column.kind === \"data\" && column.field) {\r\n <mona-grid-filter-row-cell\r\n [column]=\"column\"\r\n (apply)=\"onColumnFilter(column, $event)\" />\r\n }\r\n </th>\r\n }\r\n </tr>\r\n }\r\n </thead>\r\n </table>\r\n </div>\r\n</div>\r\n\r\n@defer (when gridWidthSet()) {\r\n @if (gridService.virtualScrollOptions().enabled) {\r\n @if (gridService.viewRows().length !== 0 || gridService.addRowVisible()) {\r\n <mona-grid-virtual-list\r\n [columns]=\"gridService.visibleColumns()\"\r\n [data]=\"gridService.viewRows()\"></mona-grid-virtual-list>\r\n } @else {\r\n <ng-container [ngTemplateOutlet]=\"emptyGridTemplate\"></ng-container>\r\n }\r\n } @else {\r\n @if (gridService.viewPageRows().length !== 0 || gridService.addRowVisible()) {\r\n <mona-grid-list\r\n [columns]=\"gridService.visibleColumns()\"\r\n [data]=\"gridService.viewPageRows()\"></mona-grid-list>\r\n @if (footerVisible()) {\r\n <div\r\n [class]=\"footerClass()\"\r\n [style.margin-right.px]=\"gridService.scrollbarGutterWidth()\"\r\n #footerScrollElement\r\n data-grid-footer-scroll>\r\n <div>\r\n <table [class]=\"footerTableClass()\" [style.width.px]=\"gridService.tableWidth()\">\r\n <colgroup>\r\n @for (_ of gridService.groupColumns(); track $index) {\r\n <col [style.width.px]=\"gridService.groupColumnWidth\" />\r\n }\r\n @if (gridService.masterDetailTemplate()) {\r\n <col [style.width.px]=\"gridService.groupColumnWidth\" />\r\n }\r\n @for (col of gridService.visibleColumns(); track $index) {\r\n <col [style.width.px]=\"col.calculatedWidth\" />\r\n }\r\n </colgroup>\r\n <tfoot role=\"rowgroup\">\r\n <tr [class]=\"footerTableRowClass()\">\r\n @for (_ of gridService.groupColumns(); track $index) {\r\n <td\r\n monaGridFooterTableCell\r\n monaGridLockedCell\r\n [lockedCellHeader]=\"true\"\r\n [lockedStructuralOffset]=\"$index * gridService.groupColumnWidth\"\r\n [footerCellWidth]=\"gridService.groupColumnWidth\"></td>\r\n }\r\n @if (gridService.masterDetailTemplate()) {\r\n <td\r\n monaGridFooterTableCell\r\n monaGridLockedCell\r\n [lockedCellHeader]=\"true\"\r\n [lockedStructuralOffset]=\"\r\n gridService.groupColumns().length * gridService.groupColumnWidth\r\n \"\r\n [footerCellWidth]=\"gridService.detailColumnWidth\"></td>\r\n }\r\n @for (column of gridService.visibleColumns(); track $index) {\r\n <td\r\n monaGridFooterTableCell\r\n monaGridLockedCell\r\n [column]=\"column\"\r\n [lockedCellHeader]=\"true\"\r\n [footerColumn]=\"column\">\r\n <mona-grid-footer-cell\r\n [column]=\"column\"\r\n [columnIndex]=\"$index\"></mona-grid-footer-cell>\r\n </td>\r\n }\r\n </tr>\r\n </tfoot>\r\n </table>\r\n </div>\r\n </div>\r\n }\r\n <mona-pager\r\n class=\"border-0 border-t border-t-border rounded-tl-none rounded-tr-none\"\r\n [skip]=\"gridService.paginationState().skip\"\r\n [pageSize]=\"gridService.paginationState().take\"\r\n [total]=\"gridService.viewRowCount()\"\r\n [size]=\"'small'\"\r\n [rounded]=\"rounded()\"\r\n [pageInput]=\"true\"\r\n [pageSizeValues]=\"pageSizeValues()\"\r\n [responsive]=\"responsivePager()\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"\r\n (pageChange)=\"onPageChange($event)\"></mona-pager>\r\n } @else {\r\n <ng-container [ngTemplateOutlet]=\"emptyGridTemplate\"></ng-container>\r\n }\r\n }\r\n} @placeholder {\r\n <mona-placeholder text=\"Loading...\"></mona-placeholder>\r\n}\r\n\r\n<ng-template #emptyGridTemplate>\r\n <div [class]=\"noDataClass()\">\r\n @if (noDataTemplate()) {\r\n <ng-container [ngTemplateOutlet]=\"noDataTemplate() ?? null\"></ng-container>\r\n } @else {\r\n <mona-placeholder text=\"No data\"></mona-placeholder>\r\n }\r\n </div>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer", "cdkDropListHasAnchor"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "component", type: ChipComponent, selector: "mona-chip", inputs: ["aria-label", "disabled", "label", "look", "removable", "removeLabel", "removeTabIndex", "rounded", "selected", "size", "tabindex", "toggleable", "class", "value"], outputs: ["contentClick", "remove", "selectedChange"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: GridFilterMenuComponent, selector: "mona-grid-filter-menu", inputs: ["column", "type"], outputs: ["apply"] }, { kind: "component", type: GridFilterRowCellComponent, selector: "mona-grid-filter-row-cell", inputs: ["column"], outputs: ["apply"] }, { kind: "directive", type: GridColumnResizeHandlerDirective, selector: "[monaGridColumnResizeHandler]", inputs: ["column"], outputs: ["resizeEnd", "resizeStart"] }, { kind: "directive", type: CdkDragPreview, selector: "ng-template[cdkDragPreview]", inputs: ["data", "matchSize"] }, { kind: "directive", type: CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { kind: "component", type: PlaceholderComponent, selector: "mona-placeholder", inputs: ["text", "class"] }, { kind: "component", type: PopupMenuComponent, selector: "mona-popup-menu", inputs: ["anchor", "anchorConnectionPoint", "items", "id", "minWidth", "offset", "popupConnectionPoint", "precise", "rounded", "size", "target", "trigger", "width"], outputs: ["close", "menuClick", "navigate", "open"] }, { kind: "component", type: PopupMenuItemComponent, selector: "mona-popup-menu-item", inputs: ["disabled", "label"], outputs: ["menuClick"] }, { kind: "directive", type: PopupMenuTextTemplateDirective, selector: "ng-template[monaPopupMenuTextTemplate]" }, { kind: "directive", type: GridLogicalCellDirective, selector: "td[monaGridLogicalCell], th[monaGridLogicalCell]", inputs: ["cellKind", "colIndex", "columnId", "firstInRow", "groupHeader", "groupKey", "lastInRow", "rowIndex", "rowUid", "section"], outputs: ["edit", "toggle"] }, { kind: "directive", type: GridLockedCellDirective, selector: "td[monaGridLockedCell], th[monaGridLockedCell]", inputs: ["column", "lockedCellHeader", "lockedStructuralOffset"] }, { kind: "directive", type: ButtonDirective, selector: "button[monaButton]", inputs: ["aria-haspopup", "disabled", "iconOnly", "loading", "look", "rounded", "selected", "size", "tabindex", "toggleable", "class"], outputs: ["disabledChange", "loadingChange", "lookChange", "selectedChange"] }, { kind: "component", type: PopupComponent, selector: "mona-popup", inputs: ["anchor", "anchorConnectionPoint", "animation", "backdropClass", "closeOnBackdropClick", "closeOnEscape", "closeOnMouseLeave", "closeOnOutsideClick", "data", "hasBackdrop", "height", "maxHeight", "maxWidth", "minHeight", "minWidth", "offset", "popupClass", "popupConnectionPoint", "popupWrapperClass", "positionStrategy", "positions", "preventClose", "providers", "trigger", "width", "withPush", "closeOnScroll", "restoreFocus", "withScrollTracking"], outputs: ["close", "open"] }, { kind: "component", type: GridColumnChooserComponent, selector: "mona-grid-column-chooser", outputs: ["apply", "cancel"] }, { kind: "pipe", type: ColumnAriaSortPipe, name: "columnAriaSort" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, deferBlockDependencies: [() => [NgTemplateOutlet, /* @ts-ignore */
5322
- import('./nanahoshi-mona-ui-grid-grid-footer-cell.component-B9SQH5N-.mjs').then(m => m.GridFooterCellComponent), /* @ts-ignore */
5323
- import('./nanahoshi-mona-ui-grid-grid-list.component-Dgea-O0X.mjs').then(m => m.GridListComponent), PagerComponent, /* @ts-ignore */
5324
- import('./nanahoshi-mona-ui-grid-grid-virtual-list.component-DRHycGIh.mjs').then(m => m.GridVirtualListComponent), /* @ts-ignore */
5325
- import('./nanahoshi-mona-ui-grid-grid-footer-table-cell.directive-DlLwcCFT.mjs').then(m => m.GridFooterTableCellDirective), GridLockedCellDirective]] }); }
5037
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: GridComponent, isStandalone: true, selector: "mona-grid", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: true, isRequired: false, transformFunction: null }, pageSizeValues: { classPropertyName: "pageSizeValues", publicName: "pageSizeValues", isSignal: true, isRequired: false, transformFunction: null }, resizeMethod: { classPropertyName: "resizeMethod", publicName: "resizeMethod", isSignal: true, isRequired: false, transformFunction: null }, responsivePager: { classPropertyName: "responsivePager", publicName: "responsivePager", isSignal: true, isRequired: false, transformFunction: null }, rounded: { classPropertyName: "rounded", publicName: "rounded", isSignal: true, isRequired: false, transformFunction: null }, userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "grid" }, properties: { "class": "baseClass()", "attr.data-uid": "uid" } }, providers: [GridService, GridNavigationService, GridRowFlattenerService, FilterService], queries: [{ propertyName: "gridDetailTemplate", first: true, predicate: GridDetailTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "noDataTemplate", first: true, predicate: GridNoDataTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "toolbarTemplate", first: true, predicate: GridToolbarTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }], viewQueries: [{ propertyName: "footerScrollElement", first: true, predicate: ["footerScrollElement"], descendants: true, isSignal: true }, { propertyName: "gridHeaderElement", first: true, predicate: ["gridHeaderElement"], descendants: true, isSignal: true }, { propertyName: "gridHeaderTableElement", first: true, predicate: ["headerTable"], descendants: true, isSignal: true }, { propertyName: "groupColumnList", first: true, predicate: ["groupColumnList"], descendants: true, isSignal: true }, { propertyName: "toolbarElement", first: true, predicate: ["toolbarElement"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (toolbarTemplate()) {\n <div\n class=\"flex min-h-10 items-center gap-2 border-b border-border p-2\"\n #toolbarElement\n (keydown)=\"onToolbarKeydown($event)\">\n <ng-container\n [ngTemplateOutlet]=\"toolbarTemplate() ?? null\"\n [ngTemplateOutletContext]=\"toolbarContext()\"></ng-container>\n <button monaButton size=\"small\" #columnsButton>Columns</button>\n <mona-popup\n [anchor]=\"columnsButton\"\n [animation]=\"{ leave: [] }\"\n [width]=\"'max-content'\"\n [anchorConnectionPoint]=\"'bottomleft'\"\n [popupConnectionPoint]=\"'topleft'\"\n #popup>\n <mona-grid-column-chooser\n (apply)=\"popup.closePopup()\"\n (cancel)=\"popup.closePopup()\"></mona-grid-column-chooser>\n </mona-popup>\n </div>\n}\n\n@if (groupable()) {\n <div\n [class]=\"groupPanelClass()\"\n cdkDropList\n #groupColumnList=\"cdkDropList\"\n cdkDropListOrientation=\"horizontal\"\n (cdkDropListEntered)=\"onColumnDragEnterForGrouping()\"\n (cdkDropListExited)=\"onColumnDragExitForGrouping()\"\n (cdkDropListDropped)=\"onColumnDropForGrouping($event)\">\n @if (gridService.groupColumns().length !== 0) {\n @for (groupColumn of gridService.groupColumns(); track $index) {\n <mona-chip\n [removable]=\"true\"\n size=\"small\"\n [rounded]=\"rounded()\"\n (click)=\"onGroupingColumnSort(groupColumn)\"\n (remove)=\"onGroupingColumnRemove($event, groupColumn)\">\n @if (groupColumn.groupSortDirection === \"asc\") {\n <i class=\"ri-arrow-down-line\"></i>\n } @else if (groupColumn.groupSortDirection === \"desc\") {\n <i class=\"ri-arrow-up-line\"></i>\n }\n <span>{{ groupColumn.title }}</span>\n <span class=\"ml-2\" (click)=\"$event.stopPropagation()\" #groupReorder>\n <i class=\"ri-more-2-fill\"></i>\n </span>\n <mona-popup-menu size=\"small\" [target]=\"groupReorder\">\n <mona-popup-menu-item\n [disabled]=\"$first\"\n (menuClick)=\"onGroupColumnReorder(groupColumn, 'prev')\">\n <ng-template monaPopupMenuTextTemplate>\n <i class=\"ri-arrow-left-fill\"></i> Move as previous\n </ng-template>\n </mona-popup-menu-item>\n <mona-popup-menu-item\n [disabled]=\"$last\"\n (menuClick)=\"onGroupColumnReorder(groupColumn, 'next')\">\n <ng-template monaPopupMenuTextTemplate>\n <i class=\"ri-arrow-right-fill\"></i> Move as next\n </ng-template>\n </mona-popup-menu-item>\n </mona-popup-menu>\n </mona-chip>\n }\n } @else if (groupPanelPlaceholderVisible()) {\n <span [class]=\"groupPanelPlaceholderClass()\">Drag a column header here to group</span>\n }\n </div>\n}\n<div [class]=\"headerClass()\" [style.margin-right.px]=\"headerMarginRight()\" #gridHeaderElement>\n <div>\n <table #headerTable [class]=\"headerTableClass()\" [style.width.px]=\"gridService.tableWidth()\">\n <colgroup>\n @for (_ of gridService.groupColumns(); track $index) {\n <col [style.width.px]=\"gridService.groupColumnWidth\" />\n }\n @if (gridService.masterDetailTemplate()) {\n <col [style.width.px]=\"gridService.groupColumnWidth\" />\n }\n @for (col of gridService.visibleColumns(); track $index) {\n <col [style.width.px]=\"col.calculatedWidth\" />\n }\n </colgroup>\n <thead role=\"rowgroup\" [style.visibility]=\"!gridWidthSet() ? 'hidden' : undefined\">\n <tr\n cdkDropList\n [cdkDropListConnectedTo]=\"groupable() ? [groupColumnList()!] : []\"\n (cdkDropListDropped)=\"onColumnDrop()\"\n [class]=\"headerTableRowClass()\">\n @for (_ of gridService.groupColumns(); track $index) {\n <th\n monaGridLockedCell\n [lockedCellHeader]=\"true\"\n [lockedStructuralOffset]=\"$index * gridService.groupColumnWidth\"\n scope=\"col\"\n class=\"border-r border-border\"\n [attr.colspan]=\"1\"\n [style.width.px]=\"gridService.groupColumnWidth\"></th>\n }\n @if (gridService.masterDetailTemplate()) {\n <th\n monaGridLockedCell\n [lockedCellHeader]=\"true\"\n [lockedStructuralOffset]=\"gridService.groupColumns().length * gridService.groupColumnWidth\"\n scope=\"col\"\n class=\"border-r border-border\"\n [attr.colspan]=\"1\"\n [style.width.px]=\"gridService.detailColumnWidth\"></th>\n }\n @for (column of gridService.visibleColumns(); track $index) {\n @let colIndex = gridService.masterDetailTemplate() ? $index + 1 : $index;\n <th\n scope=\"col\"\n role=\"columnheader\"\n cdkDrag\n monaGridLockedCell\n [column]=\"column\"\n [lockedCellHeader]=\"true\"\n monaGridLogicalCell\n [cellKind]=\"'header'\"\n [columnId]=\"column.id\"\n [rowIndex]=\"-1\"\n [colIndex]=\"colIndex\"\n [section]=\"'header'\"\n [firstInRow]=\"colIndex === 0\"\n [lastInRow]=\"\n colIndex ===\n gridService.visibleColumns().length - (gridService.masterDetailTemplate() ? 0 : 1)\n \"\n (toggle)=\"onColumnSort(column)\"\n [cdkDragData]=\"column\"\n [cdkDragDisabled]=\"isColumnDragDisabled(column)\"\n [class]=\"headerTableCellClass()\"\n (mouseenter)=\"onColumnMouseEnter(column)\"\n (cdkDragEntered)=\"onColumnDragEnter($event)\"\n (cdkDragStarted)=\"onColumnDragStart($event)\"\n [style.min-width.px]=\"column.minWidth\"\n [style.width.px]=\"column.calculatedWidth\"\n [attr.colspan]=\"1\"\n [attr.aria-sort]=\"\n gridService.sortableOptions().enabled\n ? (column.columnSortDirection | columnAriaSort)\n : null\n \">\n <div [class]=\"headerTableColumnWrapClass()\">\n @if (column.headerTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"column.headerTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: column, column }\"></ng-container>\n } @else if (column.titleTemplate) {\n <ng-container [ngTemplateOutlet]=\"column.titleTemplate\"></ng-container>\n } @else {\n <span\n [class]=\"headerTableColumnTitleClass()\"\n (click)=\"onColumnSort(column)\"\n [title]=\"column.title\"\n >{{ column.title }}</span\n >\n }\n\n <div [class]=\"columnActionsClass()\" [attr.data-column-actions]=\"true\">\n @if (gridService.sortableOptions().showIndices && column.sortIndex !== null) {\n <span>{{ column.sortIndex }}</span>\n }\n @if (column.columnSortDirection === \"asc\") {\n <i class=\"ri-arrow-down-line\"></i>\n } @else if (column.columnSortDirection === \"desc\") {\n <i class=\"ri-arrow-up-line\"></i>\n }\n @if (filterMenuEnabled()) {\n @if (column.kind === \"data\") {\n <mona-grid-filter-menu\n [column]=\"column\"\n [type]=\"column.dataType\"\n (apply)=\"onColumnFilter(column, $event)\"></mona-grid-filter-menu>\n }\n }\n </div>\n </div>\n @if (\n dropColumn() === column &&\n dragColumn() &&\n gridService.reorderableOptions().enabled &&\n !groupingInProgress()\n ) {\n <span [class]=\"columnDropHintClass()\"> </span>\n }\n @if (gridService.resizableOptions().enabled && !columnDragging()) {\n <div\n monaGridColumnResizeHandler\n [column]=\"column\"\n [class]=\"columnResizerClass()\"\n (resizeStart)=\"onColumnResizeStart()\"\n (resizeEnd)=\"onColumnResizeEnd($event)\"></div>\n }\n <ng-template cdkDragPreview>\n <div [class]=\"columnDragPreviewClass()\">\n <span>{{ column.title }}</span>\n </div>\n </ng-template>\n <ng-template cdkDragPlaceholder>\n @if (groupingInProgress()) {\n <mona-chip\n style=\"z-index: 10; pointer-events: none\"\n [removable]=\"true\"\n [rounded]=\"rounded()\"\n >{{ column.title }}</mona-chip\n >\n }\n </ng-template>\n </th>\n @if (columnDragging() && dragColumn() === column) {\n <th\n monaGridLockedCell\n [column]=\"column\"\n [lockedCellHeader]=\"true\"\n [class]=\"headerTableCellClass()\"\n [style.min-width.px]=\"column.minWidth\"\n [attr.colspan]=\"1\"\n [style.width.px]=\"column.calculatedWidth\">\n <div [class]=\"headerTableColumnWrapClass()\">\n @if (column.headerTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"column.headerTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: column, column }\"></ng-container>\n } @else if (column.titleTemplate) {\n <ng-container [ngTemplateOutlet]=\"column.titleTemplate\"></ng-container>\n } @else {\n <span\n [class]=\"headerTableColumnTitleClass()\"\n (click)=\"onColumnSort(column)\"\n [title]=\"column.title\"\n >{{ column.title }}</span\n >\n }\n </div>\n </th>\n }\n }\n </tr>\n @if (filterRowEnabled()) {\n <tr role=\"row\" [class]=\"headerTableRowClass()\">\n @for (_ of gridService.groupColumns(); track $index) {\n <th\n monaGridLockedCell\n [lockedCellHeader]=\"true\"\n [lockedStructuralOffset]=\"$index * gridService.groupColumnWidth\"\n scope=\"col\"\n class=\"border-r border-border\"\n [style.width.px]=\"gridService.groupColumnWidth\"></th>\n }\n @if (gridService.masterDetailTemplate()) {\n <th\n monaGridLockedCell\n [lockedCellHeader]=\"true\"\n [lockedStructuralOffset]=\"\n gridService.groupColumns().length * gridService.groupColumnWidth\n \"\n scope=\"col\"\n class=\"border-r border-border\"\n [style.width.px]=\"gridService.detailColumnWidth\"></th>\n }\n @for (column of gridService.visibleColumns(); track $index) {\n <th\n monaGridLockedCell\n [column]=\"column\"\n [lockedCellHeader]=\"true\"\n scope=\"col\"\n class=\"border-r border-border overflow-hidden\"\n [style.width.px]=\"column.calculatedWidth\"\n [attr.aria-label]=\"'Filter by ' + column.title\">\n @if (column.kind === \"data\" && column.field) {\n <mona-grid-filter-row-cell\n [column]=\"column\"\n (apply)=\"onColumnFilter(column, $event)\" />\n }\n </th>\n }\n </tr>\n }\n </thead>\n </table>\n </div>\n</div>\n\n@defer (when gridWidthSet()) {\n @if (gridService.virtualScrollOptions().enabled) {\n @if (gridService.viewRows().length !== 0 || gridService.addRowVisible()) {\n <mona-grid-virtual-list\n [columns]=\"gridService.visibleColumns()\"\n [data]=\"gridService.viewRows()\"></mona-grid-virtual-list>\n } @else {\n <ng-container [ngTemplateOutlet]=\"emptyGridTemplate\"></ng-container>\n }\n } @else {\n @if (gridService.viewPageRows().length !== 0 || gridService.addRowVisible()) {\n <mona-grid-list\n [columns]=\"gridService.visibleColumns()\"\n [data]=\"gridService.viewPageRows()\"></mona-grid-list>\n @if (footerVisible()) {\n <div\n [class]=\"footerClass()\"\n [style.margin-right.px]=\"gridService.scrollbarGutterWidth()\"\n #footerScrollElement\n data-grid-footer-scroll>\n <div>\n <table [class]=\"footerTableClass()\" [style.width.px]=\"gridService.tableWidth()\">\n <colgroup>\n @for (_ of gridService.groupColumns(); track $index) {\n <col [style.width.px]=\"gridService.groupColumnWidth\" />\n }\n @if (gridService.masterDetailTemplate()) {\n <col [style.width.px]=\"gridService.groupColumnWidth\" />\n }\n @for (col of gridService.visibleColumns(); track $index) {\n <col [style.width.px]=\"col.calculatedWidth\" />\n }\n </colgroup>\n <tfoot role=\"rowgroup\">\n <tr [class]=\"footerTableRowClass()\">\n @for (_ of gridService.groupColumns(); track $index) {\n <td\n monaGridFooterTableCell\n monaGridLockedCell\n [lockedCellHeader]=\"true\"\n [lockedStructuralOffset]=\"$index * gridService.groupColumnWidth\"\n [footerCellWidth]=\"gridService.groupColumnWidth\"></td>\n }\n @if (gridService.masterDetailTemplate()) {\n <td\n monaGridFooterTableCell\n monaGridLockedCell\n [lockedCellHeader]=\"true\"\n [lockedStructuralOffset]=\"\n gridService.groupColumns().length * gridService.groupColumnWidth\n \"\n [footerCellWidth]=\"gridService.detailColumnWidth\"></td>\n }\n @for (column of gridService.visibleColumns(); track $index) {\n <td\n monaGridFooterTableCell\n monaGridLockedCell\n [column]=\"column\"\n [lockedCellHeader]=\"true\"\n [footerColumn]=\"column\">\n <mona-grid-footer-cell\n [column]=\"column\"\n [columnIndex]=\"$index\"></mona-grid-footer-cell>\n </td>\n }\n </tr>\n </tfoot>\n </table>\n </div>\n </div>\n }\n <mona-pager\n class=\"border-0 border-t border-t-border rounded-tl-none rounded-tr-none\"\n [skip]=\"gridService.paginationState().skip\"\n [pageSize]=\"gridService.paginationState().take\"\n [total]=\"gridService.viewRowCount()\"\n [size]=\"'small'\"\n [rounded]=\"rounded()\"\n [pageInput]=\"true\"\n [pageSizeValues]=\"pageSizeValues()\"\n [responsive]=\"responsivePager()\"\n (pageSizeChange)=\"onPageSizeChange($event)\"\n (pageChange)=\"onPageChange($event)\"></mona-pager>\n } @else {\n <ng-container [ngTemplateOutlet]=\"emptyGridTemplate\"></ng-container>\n }\n }\n} @placeholder {\n <mona-placeholder text=\"Loading...\"></mona-placeholder>\n}\n\n<ng-template #emptyGridTemplate>\n <div [class]=\"noDataClass()\">\n @if (noDataTemplate()) {\n <ng-container [ngTemplateOutlet]=\"noDataTemplate() ?? null\"></ng-container>\n } @else {\n <mona-placeholder text=\"No data\"></mona-placeholder>\n }\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer", "cdkDropListHasAnchor"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "component", type: ChipComponent, selector: "mona-chip", inputs: ["aria-label", "disabled", "label", "look", "removable", "removeLabel", "removeTabIndex", "rounded", "selected", "size", "tabindex", "toggleable", "class", "value"], outputs: ["contentClick", "remove", "selectedChange"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: GridFilterMenuComponent, selector: "mona-grid-filter-menu", inputs: ["column", "type"], outputs: ["apply"] }, { kind: "component", type: GridFilterRowCellComponent, selector: "mona-grid-filter-row-cell", inputs: ["column"], outputs: ["apply"] }, { kind: "directive", type: GridColumnResizeHandlerDirective, selector: "[monaGridColumnResizeHandler]", inputs: ["column"], outputs: ["resizeEnd", "resizeStart"] }, { kind: "directive", type: CdkDragPreview, selector: "ng-template[cdkDragPreview]", inputs: ["data", "matchSize"] }, { kind: "directive", type: CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { kind: "component", type: PlaceholderComponent, selector: "mona-placeholder", inputs: ["text", "class"] }, { kind: "component", type: PopupMenuComponent, selector: "mona-popup-menu", inputs: ["anchor", "anchorConnectionPoint", "items", "id", "minWidth", "offset", "popupConnectionPoint", "precise", "rounded", "size", "target", "trigger", "width"], outputs: ["close", "menuClick", "navigate", "open"] }, { kind: "component", type: PopupMenuItemComponent, selector: "mona-popup-menu-item", inputs: ["disabled", "label"], outputs: ["menuClick"] }, { kind: "directive", type: PopupMenuTextTemplateDirective, selector: "ng-template[monaPopupMenuTextTemplate]" }, { kind: "directive", type: GridLogicalCellDirective, selector: "td[monaGridLogicalCell], th[monaGridLogicalCell]", inputs: ["cellKind", "colIndex", "columnId", "firstInRow", "groupHeader", "groupKey", "lastInRow", "rowIndex", "rowUid", "section"], outputs: ["edit", "toggle"] }, { kind: "directive", type: GridLockedCellDirective, selector: "td[monaGridLockedCell], th[monaGridLockedCell]", inputs: ["column", "lockedCellHeader", "lockedStructuralOffset"] }, { kind: "directive", type: ButtonDirective, selector: "button[monaButton]", inputs: ["aria-haspopup", "disabled", "iconOnly", "loading", "look", "rounded", "selected", "size", "tabindex", "toggleable", "class"], outputs: ["disabledChange", "loadingChange", "lookChange", "selectedChange"] }, { kind: "component", type: PopupComponent, selector: "mona-popup", inputs: ["anchor", "anchorConnectionPoint", "animation", "backdropClass", "closeOnBackdropClick", "closeOnEscape", "closeOnMouseLeave", "closeOnOutsideClick", "data", "hasBackdrop", "height", "maxHeight", "maxWidth", "minHeight", "minWidth", "offset", "popupClass", "popupConnectionPoint", "popupWrapperClass", "positionStrategy", "positions", "preventClose", "providers", "trigger", "width", "withPush", "closeOnScroll", "restoreFocus", "withScrollTracking"], outputs: ["close", "open"] }, { kind: "component", type: GridColumnChooserComponent, selector: "mona-grid-column-chooser", outputs: ["apply", "cancel"] }, { kind: "pipe", type: ColumnAriaSortPipe, name: "columnAriaSort" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, deferBlockDependencies: [() => [NgTemplateOutlet, /* @ts-ignore */
5038
+ import('./nanahoshi-mona-ui-grid-grid-footer-cell.component-B6FBLtrr.mjs').then(m => m.GridFooterCellComponent), /* @ts-ignore */
5039
+ import('./nanahoshi-mona-ui-grid-grid-list.component-DCd8K6ng.mjs').then(m => m.GridListComponent), PagerComponent, /* @ts-ignore */
5040
+ import('./nanahoshi-mona-ui-grid-grid-virtual-list.component-C5FRZlvv.mjs').then(m => m.GridVirtualListComponent), /* @ts-ignore */
5041
+ import('./nanahoshi-mona-ui-grid-grid-footer-table-cell.directive-OJe4UYuw.mjs').then(m => m.GridFooterTableCellDirective), GridLockedCellDirective]] }); }
5326
5042
  }
5327
5043
  i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "22.0.6", ngImport: i0, type: GridComponent, resolveDeferredDeps: () => [/* @ts-ignore */
5328
- import('./nanahoshi-mona-ui-grid-grid-footer-cell.component-B9SQH5N-.mjs').then(m => m.GridFooterCellComponent), /* @ts-ignore */
5329
- import('./nanahoshi-mona-ui-grid-grid-list.component-Dgea-O0X.mjs').then(m => m.GridListComponent), /* @ts-ignore */
5330
- import('./nanahoshi-mona-ui-grid-grid-virtual-list.component-DRHycGIh.mjs').then(m => m.GridVirtualListComponent), /* @ts-ignore */
5331
- import('./nanahoshi-mona-ui-grid-grid-footer-table-cell.directive-DlLwcCFT.mjs').then(m => m.GridFooterTableCellDirective)], resolveMetadata: (GridFooterCellComponent, GridListComponent, GridVirtualListComponent, GridFooterTableCellDirective) => ({ decorators: [{
5044
+ import('./nanahoshi-mona-ui-grid-grid-footer-cell.component-B6FBLtrr.mjs').then(m => m.GridFooterCellComponent), /* @ts-ignore */
5045
+ import('./nanahoshi-mona-ui-grid-grid-list.component-DCd8K6ng.mjs').then(m => m.GridListComponent), /* @ts-ignore */
5046
+ import('./nanahoshi-mona-ui-grid-grid-virtual-list.component-C5FRZlvv.mjs').then(m => m.GridVirtualListComponent), /* @ts-ignore */
5047
+ import('./nanahoshi-mona-ui-grid-grid-footer-table-cell.directive-OJe4UYuw.mjs').then(m => m.GridFooterTableCellDirective)], resolveMetadata: (GridFooterCellComponent, GridListComponent, GridVirtualListComponent, GridFooterTableCellDirective) => ({ decorators: [{
5332
5048
  type: Component,
5333
5049
  args: [{ selector: "mona-grid", changeDetection: ChangeDetectionStrategy.OnPush, providers: [GridService, GridNavigationService, GridRowFlattenerService, FilterService], imports: [
5334
5050
  CdkDropList,
@@ -5359,7 +5075,7 @@ i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "22.0.6", ng
5359
5075
  "[class]": "baseClass()",
5360
5076
  "[attr.data-uid]": "uid",
5361
5077
  role: "grid"
5362
- }, template: "@if (toolbarTemplate()) {\r\n <div\r\n class=\"flex min-h-10 items-center gap-2 border-b border-border p-2\"\r\n #toolbarElement\r\n (keydown)=\"onToolbarKeydown($event)\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"toolbarTemplate() ?? null\"\r\n [ngTemplateOutletContext]=\"toolbarContext()\"></ng-container>\r\n <button monaButton size=\"small\" #columnsButton>Columns</button>\r\n <mona-popup\r\n [anchor]=\"columnsButton\"\r\n [animation]=\"{ leave: [] }\"\r\n [width]=\"'max-content'\"\r\n [anchorConnectionPoint]=\"'bottomleft'\"\r\n [popupConnectionPoint]=\"'topleft'\"\r\n #popup>\r\n <mona-grid-column-chooser\r\n (apply)=\"popup.closePopup()\"\r\n (cancel)=\"popup.closePopup()\"></mona-grid-column-chooser>\r\n </mona-popup>\r\n </div>\r\n}\r\n\r\n@if (groupable()) {\r\n <div\r\n [class]=\"groupPanelClass()\"\r\n cdkDropList\r\n #groupColumnList=\"cdkDropList\"\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListEntered)=\"onColumnDragEnterForGrouping()\"\r\n (cdkDropListExited)=\"onColumnDragExitForGrouping()\"\r\n (cdkDropListDropped)=\"onColumnDropForGrouping($event)\">\r\n @if (gridService.groupColumns().length !== 0) {\r\n @for (groupColumn of gridService.groupColumns(); track $index) {\r\n <mona-chip\r\n [removable]=\"true\"\r\n size=\"small\"\r\n [rounded]=\"rounded()\"\r\n (click)=\"onGroupingColumnSort(groupColumn)\"\r\n (remove)=\"onGroupingColumnRemove($event, groupColumn)\">\r\n @if (groupColumn.groupSortDirection === \"asc\") {\r\n <i class=\"ri-arrow-down-line\"></i>\r\n } @else if (groupColumn.groupSortDirection === \"desc\") {\r\n <i class=\"ri-arrow-up-line\"></i>\r\n }\r\n <span>{{ groupColumn.title }}</span>\r\n <span class=\"ml-2\" (click)=\"$event.stopPropagation()\" #groupReorder>\r\n <i class=\"ri-more-2-fill\"></i>\r\n </span>\r\n <mona-popup-menu size=\"small\" [target]=\"groupReorder\">\r\n <mona-popup-menu-item\r\n [disabled]=\"$first\"\r\n (menuClick)=\"onGroupColumnReorder(groupColumn, 'prev')\">\r\n <ng-template monaPopupMenuTextTemplate>\r\n <i class=\"ri-arrow-left-fill\"></i> Move as previous\r\n </ng-template>\r\n </mona-popup-menu-item>\r\n <mona-popup-menu-item\r\n [disabled]=\"$last\"\r\n (menuClick)=\"onGroupColumnReorder(groupColumn, 'next')\">\r\n <ng-template monaPopupMenuTextTemplate>\r\n <i class=\"ri-arrow-right-fill\"></i> Move as next\r\n </ng-template>\r\n </mona-popup-menu-item>\r\n </mona-popup-menu>\r\n </mona-chip>\r\n }\r\n } @else if (groupPanelPlaceholderVisible()) {\r\n <span [class]=\"groupPanelPlaceholderClass()\">Drag a column header here to group</span>\r\n }\r\n </div>\r\n}\r\n<div [class]=\"headerClass()\" [style.margin-right.px]=\"headerMarginRight()\" #gridHeaderElement>\r\n <div>\r\n <table #headerTable [class]=\"headerTableClass()\" [style.width.px]=\"gridService.tableWidth()\">\r\n <colgroup>\r\n @for (_ of gridService.groupColumns(); track $index) {\r\n <col [style.width.px]=\"gridService.groupColumnWidth\" />\r\n }\r\n @if (gridService.masterDetailTemplate()) {\r\n <col [style.width.px]=\"gridService.groupColumnWidth\" />\r\n }\r\n @for (col of gridService.visibleColumns(); track $index) {\r\n <col [style.width.px]=\"col.calculatedWidth\" />\r\n }\r\n </colgroup>\r\n <thead role=\"rowgroup\" [style.visibility]=\"!gridWidthSet() ? 'hidden' : undefined\">\r\n <tr\r\n cdkDropList\r\n [cdkDropListConnectedTo]=\"groupable() ? [groupColumnList()!] : []\"\r\n (cdkDropListDropped)=\"onColumnDrop()\"\r\n [class]=\"headerTableRowClass()\">\r\n @for (_ of gridService.groupColumns(); track $index) {\r\n <th\r\n monaGridLockedCell\r\n [lockedCellHeader]=\"true\"\r\n [lockedStructuralOffset]=\"$index * gridService.groupColumnWidth\"\r\n scope=\"col\"\r\n class=\"border-r border-border\"\r\n [attr.colspan]=\"1\"\r\n [style.width.px]=\"gridService.groupColumnWidth\"></th>\r\n }\r\n @if (gridService.masterDetailTemplate()) {\r\n <th\r\n monaGridLockedCell\r\n [lockedCellHeader]=\"true\"\r\n [lockedStructuralOffset]=\"gridService.groupColumns().length * gridService.groupColumnWidth\"\r\n scope=\"col\"\r\n class=\"border-r border-border\"\r\n [attr.colspan]=\"1\"\r\n [style.width.px]=\"gridService.detailColumnWidth\"></th>\r\n }\r\n @for (column of gridService.visibleColumns(); track $index) {\r\n @let colIndex = gridService.masterDetailTemplate() ? $index + 1 : $index;\r\n <th\r\n scope=\"col\"\r\n role=\"columnheader\"\r\n cdkDrag\r\n monaGridLockedCell\r\n [column]=\"column\"\r\n [lockedCellHeader]=\"true\"\r\n monaGridLogicalCell\r\n [cellKind]=\"'header'\"\r\n [columnId]=\"column.id\"\r\n [rowIndex]=\"-1\"\r\n [colIndex]=\"colIndex\"\r\n [section]=\"'header'\"\r\n [firstInRow]=\"colIndex === 0\"\r\n [lastInRow]=\"\r\n colIndex ===\r\n gridService.visibleColumns().length - (gridService.masterDetailTemplate() ? 0 : 1)\r\n \"\r\n (toggle)=\"onColumnSort(column)\"\r\n [cdkDragData]=\"column\"\r\n [cdkDragDisabled]=\"isColumnDragDisabled(column)\"\r\n [class]=\"headerTableCellClass()\"\r\n (mouseenter)=\"onColumnMouseEnter(column)\"\r\n (cdkDragEntered)=\"onColumnDragEnter($event)\"\r\n (cdkDragStarted)=\"onColumnDragStart($event)\"\r\n [style.min-width.px]=\"column.minWidth\"\r\n [style.width.px]=\"column.calculatedWidth\"\r\n [attr.colspan]=\"1\"\r\n [attr.aria-sort]=\"\r\n gridService.sortableOptions().enabled\r\n ? (column.columnSortDirection | columnAriaSort)\r\n : null\r\n \">\r\n <div [class]=\"headerTableColumnWrapClass()\">\r\n @if (column.headerTemplate) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"column.headerTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: column, column }\"></ng-container>\r\n } @else if (column.titleTemplate) {\r\n <ng-container [ngTemplateOutlet]=\"column.titleTemplate\"></ng-container>\r\n } @else {\r\n <span\r\n [class]=\"headerTableColumnTitleClass()\"\r\n (click)=\"onColumnSort(column)\"\r\n [title]=\"column.title\"\r\n >{{ column.title }}</span\r\n >\r\n }\r\n\r\n <div [class]=\"columnActionsClass()\" [attr.data-column-actions]=\"true\">\r\n @if (gridService.sortableOptions().showIndices && column.sortIndex !== null) {\r\n <span>{{ column.sortIndex }}</span>\r\n }\r\n @if (column.columnSortDirection === \"asc\") {\r\n <i class=\"ri-arrow-down-line\"></i>\r\n } @else if (column.columnSortDirection === \"desc\") {\r\n <i class=\"ri-arrow-up-line\"></i>\r\n }\r\n @if (filterMenuEnabled()) {\r\n @if (column.kind === \"data\") {\r\n <mona-grid-filter-menu\r\n [column]=\"column\"\r\n [type]=\"column.dataType\"\r\n (apply)=\"onColumnFilter(column, $event)\"></mona-grid-filter-menu>\r\n }\r\n }\r\n </div>\r\n </div>\r\n @if (\r\n dropColumn() === column &&\r\n dragColumn() &&\r\n gridService.reorderableOptions().enabled &&\r\n !groupingInProgress()\r\n ) {\r\n <span [class]=\"columnDropHintClass()\"> </span>\r\n }\r\n @if (gridService.resizableOptions().enabled && !columnDragging()) {\r\n <div\r\n monaGridColumnResizeHandler\r\n [column]=\"column\"\r\n [class]=\"columnResizerClass()\"\r\n (resizeStart)=\"onColumnResizeStart()\"\r\n (resizeEnd)=\"onColumnResizeEnd($event)\"></div>\r\n }\r\n <ng-template cdkDragPreview>\r\n <div [class]=\"columnDragPreviewClass()\">\r\n <span>{{ column.title }}</span>\r\n </div>\r\n </ng-template>\r\n <ng-template cdkDragPlaceholder>\r\n @if (groupingInProgress()) {\r\n <mona-chip\r\n style=\"z-index: 10; pointer-events: none\"\r\n [removable]=\"true\"\r\n [rounded]=\"rounded()\"\r\n >{{ column.title }}</mona-chip\r\n >\r\n }\r\n </ng-template>\r\n </th>\r\n @if (columnDragging() && dragColumn() === column) {\r\n <th\r\n monaGridLockedCell\r\n [column]=\"column\"\r\n [lockedCellHeader]=\"true\"\r\n [class]=\"headerTableCellClass()\"\r\n [style.min-width.px]=\"column.minWidth\"\r\n [attr.colspan]=\"1\"\r\n [style.width.px]=\"column.calculatedWidth\">\r\n <div [class]=\"headerTableColumnWrapClass()\">\r\n @if (column.headerTemplate) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"column.headerTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: column, column }\"></ng-container>\r\n } @else if (column.titleTemplate) {\r\n <ng-container [ngTemplateOutlet]=\"column.titleTemplate\"></ng-container>\r\n } @else {\r\n <span\r\n [class]=\"headerTableColumnTitleClass()\"\r\n (click)=\"onColumnSort(column)\"\r\n [title]=\"column.title\"\r\n >{{ column.title }}</span\r\n >\r\n }\r\n </div>\r\n </th>\r\n }\r\n }\r\n </tr>\r\n @if (filterRowEnabled()) {\r\n <tr role=\"row\" [class]=\"headerTableRowClass()\">\r\n @for (_ of gridService.groupColumns(); track $index) {\r\n <th\r\n monaGridLockedCell\r\n [lockedCellHeader]=\"true\"\r\n [lockedStructuralOffset]=\"$index * gridService.groupColumnWidth\"\r\n scope=\"col\"\r\n class=\"border-r border-border\"\r\n [style.width.px]=\"gridService.groupColumnWidth\"></th>\r\n }\r\n @if (gridService.masterDetailTemplate()) {\r\n <th\r\n monaGridLockedCell\r\n [lockedCellHeader]=\"true\"\r\n [lockedStructuralOffset]=\"\r\n gridService.groupColumns().length * gridService.groupColumnWidth\r\n \"\r\n scope=\"col\"\r\n class=\"border-r border-border\"\r\n [style.width.px]=\"gridService.detailColumnWidth\"></th>\r\n }\r\n @for (column of gridService.visibleColumns(); track $index) {\r\n <th\r\n monaGridLockedCell\r\n [column]=\"column\"\r\n [lockedCellHeader]=\"true\"\r\n scope=\"col\"\r\n class=\"border-r border-border overflow-hidden\"\r\n [style.width.px]=\"column.calculatedWidth\"\r\n [attr.aria-label]=\"'Filter by ' + column.title\">\r\n @if (column.kind === \"data\" && column.field) {\r\n <mona-grid-filter-row-cell\r\n [column]=\"column\"\r\n (apply)=\"onColumnFilter(column, $event)\" />\r\n }\r\n </th>\r\n }\r\n </tr>\r\n }\r\n </thead>\r\n </table>\r\n </div>\r\n</div>\r\n\r\n@defer (when gridWidthSet()) {\r\n @if (gridService.virtualScrollOptions().enabled) {\r\n @if (gridService.viewRows().length !== 0 || gridService.addRowVisible()) {\r\n <mona-grid-virtual-list\r\n [columns]=\"gridService.visibleColumns()\"\r\n [data]=\"gridService.viewRows()\"></mona-grid-virtual-list>\r\n } @else {\r\n <ng-container [ngTemplateOutlet]=\"emptyGridTemplate\"></ng-container>\r\n }\r\n } @else {\r\n @if (gridService.viewPageRows().length !== 0 || gridService.addRowVisible()) {\r\n <mona-grid-list\r\n [columns]=\"gridService.visibleColumns()\"\r\n [data]=\"gridService.viewPageRows()\"></mona-grid-list>\r\n @if (footerVisible()) {\r\n <div\r\n [class]=\"footerClass()\"\r\n [style.margin-right.px]=\"gridService.scrollbarGutterWidth()\"\r\n #footerScrollElement\r\n data-grid-footer-scroll>\r\n <div>\r\n <table [class]=\"footerTableClass()\" [style.width.px]=\"gridService.tableWidth()\">\r\n <colgroup>\r\n @for (_ of gridService.groupColumns(); track $index) {\r\n <col [style.width.px]=\"gridService.groupColumnWidth\" />\r\n }\r\n @if (gridService.masterDetailTemplate()) {\r\n <col [style.width.px]=\"gridService.groupColumnWidth\" />\r\n }\r\n @for (col of gridService.visibleColumns(); track $index) {\r\n <col [style.width.px]=\"col.calculatedWidth\" />\r\n }\r\n </colgroup>\r\n <tfoot role=\"rowgroup\">\r\n <tr [class]=\"footerTableRowClass()\">\r\n @for (_ of gridService.groupColumns(); track $index) {\r\n <td\r\n monaGridFooterTableCell\r\n monaGridLockedCell\r\n [lockedCellHeader]=\"true\"\r\n [lockedStructuralOffset]=\"$index * gridService.groupColumnWidth\"\r\n [footerCellWidth]=\"gridService.groupColumnWidth\"></td>\r\n }\r\n @if (gridService.masterDetailTemplate()) {\r\n <td\r\n monaGridFooterTableCell\r\n monaGridLockedCell\r\n [lockedCellHeader]=\"true\"\r\n [lockedStructuralOffset]=\"\r\n gridService.groupColumns().length * gridService.groupColumnWidth\r\n \"\r\n [footerCellWidth]=\"gridService.detailColumnWidth\"></td>\r\n }\r\n @for (column of gridService.visibleColumns(); track $index) {\r\n <td\r\n monaGridFooterTableCell\r\n monaGridLockedCell\r\n [column]=\"column\"\r\n [lockedCellHeader]=\"true\"\r\n [footerColumn]=\"column\">\r\n <mona-grid-footer-cell\r\n [column]=\"column\"\r\n [columnIndex]=\"$index\"></mona-grid-footer-cell>\r\n </td>\r\n }\r\n </tr>\r\n </tfoot>\r\n </table>\r\n </div>\r\n </div>\r\n }\r\n <mona-pager\r\n class=\"border-0 border-t border-t-border rounded-tl-none rounded-tr-none\"\r\n [skip]=\"gridService.paginationState().skip\"\r\n [pageSize]=\"gridService.paginationState().take\"\r\n [total]=\"gridService.viewRowCount()\"\r\n [size]=\"'small'\"\r\n [rounded]=\"rounded()\"\r\n [pageInput]=\"true\"\r\n [pageSizeValues]=\"pageSizeValues()\"\r\n [responsive]=\"responsivePager()\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"\r\n (pageChange)=\"onPageChange($event)\"></mona-pager>\r\n } @else {\r\n <ng-container [ngTemplateOutlet]=\"emptyGridTemplate\"></ng-container>\r\n }\r\n }\r\n} @placeholder {\r\n <mona-placeholder text=\"Loading...\"></mona-placeholder>\r\n}\r\n\r\n<ng-template #emptyGridTemplate>\r\n <div [class]=\"noDataClass()\">\r\n @if (noDataTemplate()) {\r\n <ng-container [ngTemplateOutlet]=\"noDataTemplate() ?? null\"></ng-container>\r\n } @else {\r\n <mona-placeholder text=\"No data\"></mona-placeholder>\r\n }\r\n </div>\r\n</ng-template>\r\n" }]
5078
+ }, template: "@if (toolbarTemplate()) {\n <div\n class=\"flex min-h-10 items-center gap-2 border-b border-border p-2\"\n #toolbarElement\n (keydown)=\"onToolbarKeydown($event)\">\n <ng-container\n [ngTemplateOutlet]=\"toolbarTemplate() ?? null\"\n [ngTemplateOutletContext]=\"toolbarContext()\"></ng-container>\n <button monaButton size=\"small\" #columnsButton>Columns</button>\n <mona-popup\n [anchor]=\"columnsButton\"\n [animation]=\"{ leave: [] }\"\n [width]=\"'max-content'\"\n [anchorConnectionPoint]=\"'bottomleft'\"\n [popupConnectionPoint]=\"'topleft'\"\n #popup>\n <mona-grid-column-chooser\n (apply)=\"popup.closePopup()\"\n (cancel)=\"popup.closePopup()\"></mona-grid-column-chooser>\n </mona-popup>\n </div>\n}\n\n@if (groupable()) {\n <div\n [class]=\"groupPanelClass()\"\n cdkDropList\n #groupColumnList=\"cdkDropList\"\n cdkDropListOrientation=\"horizontal\"\n (cdkDropListEntered)=\"onColumnDragEnterForGrouping()\"\n (cdkDropListExited)=\"onColumnDragExitForGrouping()\"\n (cdkDropListDropped)=\"onColumnDropForGrouping($event)\">\n @if (gridService.groupColumns().length !== 0) {\n @for (groupColumn of gridService.groupColumns(); track $index) {\n <mona-chip\n [removable]=\"true\"\n size=\"small\"\n [rounded]=\"rounded()\"\n (click)=\"onGroupingColumnSort(groupColumn)\"\n (remove)=\"onGroupingColumnRemove($event, groupColumn)\">\n @if (groupColumn.groupSortDirection === \"asc\") {\n <i class=\"ri-arrow-down-line\"></i>\n } @else if (groupColumn.groupSortDirection === \"desc\") {\n <i class=\"ri-arrow-up-line\"></i>\n }\n <span>{{ groupColumn.title }}</span>\n <span class=\"ml-2\" (click)=\"$event.stopPropagation()\" #groupReorder>\n <i class=\"ri-more-2-fill\"></i>\n </span>\n <mona-popup-menu size=\"small\" [target]=\"groupReorder\">\n <mona-popup-menu-item\n [disabled]=\"$first\"\n (menuClick)=\"onGroupColumnReorder(groupColumn, 'prev')\">\n <ng-template monaPopupMenuTextTemplate>\n <i class=\"ri-arrow-left-fill\"></i> Move as previous\n </ng-template>\n </mona-popup-menu-item>\n <mona-popup-menu-item\n [disabled]=\"$last\"\n (menuClick)=\"onGroupColumnReorder(groupColumn, 'next')\">\n <ng-template monaPopupMenuTextTemplate>\n <i class=\"ri-arrow-right-fill\"></i> Move as next\n </ng-template>\n </mona-popup-menu-item>\n </mona-popup-menu>\n </mona-chip>\n }\n } @else if (groupPanelPlaceholderVisible()) {\n <span [class]=\"groupPanelPlaceholderClass()\">Drag a column header here to group</span>\n }\n </div>\n}\n<div [class]=\"headerClass()\" [style.margin-right.px]=\"headerMarginRight()\" #gridHeaderElement>\n <div>\n <table #headerTable [class]=\"headerTableClass()\" [style.width.px]=\"gridService.tableWidth()\">\n <colgroup>\n @for (_ of gridService.groupColumns(); track $index) {\n <col [style.width.px]=\"gridService.groupColumnWidth\" />\n }\n @if (gridService.masterDetailTemplate()) {\n <col [style.width.px]=\"gridService.groupColumnWidth\" />\n }\n @for (col of gridService.visibleColumns(); track $index) {\n <col [style.width.px]=\"col.calculatedWidth\" />\n }\n </colgroup>\n <thead role=\"rowgroup\" [style.visibility]=\"!gridWidthSet() ? 'hidden' : undefined\">\n <tr\n cdkDropList\n [cdkDropListConnectedTo]=\"groupable() ? [groupColumnList()!] : []\"\n (cdkDropListDropped)=\"onColumnDrop()\"\n [class]=\"headerTableRowClass()\">\n @for (_ of gridService.groupColumns(); track $index) {\n <th\n monaGridLockedCell\n [lockedCellHeader]=\"true\"\n [lockedStructuralOffset]=\"$index * gridService.groupColumnWidth\"\n scope=\"col\"\n class=\"border-r border-border\"\n [attr.colspan]=\"1\"\n [style.width.px]=\"gridService.groupColumnWidth\"></th>\n }\n @if (gridService.masterDetailTemplate()) {\n <th\n monaGridLockedCell\n [lockedCellHeader]=\"true\"\n [lockedStructuralOffset]=\"gridService.groupColumns().length * gridService.groupColumnWidth\"\n scope=\"col\"\n class=\"border-r border-border\"\n [attr.colspan]=\"1\"\n [style.width.px]=\"gridService.detailColumnWidth\"></th>\n }\n @for (column of gridService.visibleColumns(); track $index) {\n @let colIndex = gridService.masterDetailTemplate() ? $index + 1 : $index;\n <th\n scope=\"col\"\n role=\"columnheader\"\n cdkDrag\n monaGridLockedCell\n [column]=\"column\"\n [lockedCellHeader]=\"true\"\n monaGridLogicalCell\n [cellKind]=\"'header'\"\n [columnId]=\"column.id\"\n [rowIndex]=\"-1\"\n [colIndex]=\"colIndex\"\n [section]=\"'header'\"\n [firstInRow]=\"colIndex === 0\"\n [lastInRow]=\"\n colIndex ===\n gridService.visibleColumns().length - (gridService.masterDetailTemplate() ? 0 : 1)\n \"\n (toggle)=\"onColumnSort(column)\"\n [cdkDragData]=\"column\"\n [cdkDragDisabled]=\"isColumnDragDisabled(column)\"\n [class]=\"headerTableCellClass()\"\n (mouseenter)=\"onColumnMouseEnter(column)\"\n (cdkDragEntered)=\"onColumnDragEnter($event)\"\n (cdkDragStarted)=\"onColumnDragStart($event)\"\n [style.min-width.px]=\"column.minWidth\"\n [style.width.px]=\"column.calculatedWidth\"\n [attr.colspan]=\"1\"\n [attr.aria-sort]=\"\n gridService.sortableOptions().enabled\n ? (column.columnSortDirection | columnAriaSort)\n : null\n \">\n <div [class]=\"headerTableColumnWrapClass()\">\n @if (column.headerTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"column.headerTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: column, column }\"></ng-container>\n } @else if (column.titleTemplate) {\n <ng-container [ngTemplateOutlet]=\"column.titleTemplate\"></ng-container>\n } @else {\n <span\n [class]=\"headerTableColumnTitleClass()\"\n (click)=\"onColumnSort(column)\"\n [title]=\"column.title\"\n >{{ column.title }}</span\n >\n }\n\n <div [class]=\"columnActionsClass()\" [attr.data-column-actions]=\"true\">\n @if (gridService.sortableOptions().showIndices && column.sortIndex !== null) {\n <span>{{ column.sortIndex }}</span>\n }\n @if (column.columnSortDirection === \"asc\") {\n <i class=\"ri-arrow-down-line\"></i>\n } @else if (column.columnSortDirection === \"desc\") {\n <i class=\"ri-arrow-up-line\"></i>\n }\n @if (filterMenuEnabled()) {\n @if (column.kind === \"data\") {\n <mona-grid-filter-menu\n [column]=\"column\"\n [type]=\"column.dataType\"\n (apply)=\"onColumnFilter(column, $event)\"></mona-grid-filter-menu>\n }\n }\n </div>\n </div>\n @if (\n dropColumn() === column &&\n dragColumn() &&\n gridService.reorderableOptions().enabled &&\n !groupingInProgress()\n ) {\n <span [class]=\"columnDropHintClass()\"> </span>\n }\n @if (gridService.resizableOptions().enabled && !columnDragging()) {\n <div\n monaGridColumnResizeHandler\n [column]=\"column\"\n [class]=\"columnResizerClass()\"\n (resizeStart)=\"onColumnResizeStart()\"\n (resizeEnd)=\"onColumnResizeEnd($event)\"></div>\n }\n <ng-template cdkDragPreview>\n <div [class]=\"columnDragPreviewClass()\">\n <span>{{ column.title }}</span>\n </div>\n </ng-template>\n <ng-template cdkDragPlaceholder>\n @if (groupingInProgress()) {\n <mona-chip\n style=\"z-index: 10; pointer-events: none\"\n [removable]=\"true\"\n [rounded]=\"rounded()\"\n >{{ column.title }}</mona-chip\n >\n }\n </ng-template>\n </th>\n @if (columnDragging() && dragColumn() === column) {\n <th\n monaGridLockedCell\n [column]=\"column\"\n [lockedCellHeader]=\"true\"\n [class]=\"headerTableCellClass()\"\n [style.min-width.px]=\"column.minWidth\"\n [attr.colspan]=\"1\"\n [style.width.px]=\"column.calculatedWidth\">\n <div [class]=\"headerTableColumnWrapClass()\">\n @if (column.headerTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"column.headerTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: column, column }\"></ng-container>\n } @else if (column.titleTemplate) {\n <ng-container [ngTemplateOutlet]=\"column.titleTemplate\"></ng-container>\n } @else {\n <span\n [class]=\"headerTableColumnTitleClass()\"\n (click)=\"onColumnSort(column)\"\n [title]=\"column.title\"\n >{{ column.title }}</span\n >\n }\n </div>\n </th>\n }\n }\n </tr>\n @if (filterRowEnabled()) {\n <tr role=\"row\" [class]=\"headerTableRowClass()\">\n @for (_ of gridService.groupColumns(); track $index) {\n <th\n monaGridLockedCell\n [lockedCellHeader]=\"true\"\n [lockedStructuralOffset]=\"$index * gridService.groupColumnWidth\"\n scope=\"col\"\n class=\"border-r border-border\"\n [style.width.px]=\"gridService.groupColumnWidth\"></th>\n }\n @if (gridService.masterDetailTemplate()) {\n <th\n monaGridLockedCell\n [lockedCellHeader]=\"true\"\n [lockedStructuralOffset]=\"\n gridService.groupColumns().length * gridService.groupColumnWidth\n \"\n scope=\"col\"\n class=\"border-r border-border\"\n [style.width.px]=\"gridService.detailColumnWidth\"></th>\n }\n @for (column of gridService.visibleColumns(); track $index) {\n <th\n monaGridLockedCell\n [column]=\"column\"\n [lockedCellHeader]=\"true\"\n scope=\"col\"\n class=\"border-r border-border overflow-hidden\"\n [style.width.px]=\"column.calculatedWidth\"\n [attr.aria-label]=\"'Filter by ' + column.title\">\n @if (column.kind === \"data\" && column.field) {\n <mona-grid-filter-row-cell\n [column]=\"column\"\n (apply)=\"onColumnFilter(column, $event)\" />\n }\n </th>\n }\n </tr>\n }\n </thead>\n </table>\n </div>\n</div>\n\n@defer (when gridWidthSet()) {\n @if (gridService.virtualScrollOptions().enabled) {\n @if (gridService.viewRows().length !== 0 || gridService.addRowVisible()) {\n <mona-grid-virtual-list\n [columns]=\"gridService.visibleColumns()\"\n [data]=\"gridService.viewRows()\"></mona-grid-virtual-list>\n } @else {\n <ng-container [ngTemplateOutlet]=\"emptyGridTemplate\"></ng-container>\n }\n } @else {\n @if (gridService.viewPageRows().length !== 0 || gridService.addRowVisible()) {\n <mona-grid-list\n [columns]=\"gridService.visibleColumns()\"\n [data]=\"gridService.viewPageRows()\"></mona-grid-list>\n @if (footerVisible()) {\n <div\n [class]=\"footerClass()\"\n [style.margin-right.px]=\"gridService.scrollbarGutterWidth()\"\n #footerScrollElement\n data-grid-footer-scroll>\n <div>\n <table [class]=\"footerTableClass()\" [style.width.px]=\"gridService.tableWidth()\">\n <colgroup>\n @for (_ of gridService.groupColumns(); track $index) {\n <col [style.width.px]=\"gridService.groupColumnWidth\" />\n }\n @if (gridService.masterDetailTemplate()) {\n <col [style.width.px]=\"gridService.groupColumnWidth\" />\n }\n @for (col of gridService.visibleColumns(); track $index) {\n <col [style.width.px]=\"col.calculatedWidth\" />\n }\n </colgroup>\n <tfoot role=\"rowgroup\">\n <tr [class]=\"footerTableRowClass()\">\n @for (_ of gridService.groupColumns(); track $index) {\n <td\n monaGridFooterTableCell\n monaGridLockedCell\n [lockedCellHeader]=\"true\"\n [lockedStructuralOffset]=\"$index * gridService.groupColumnWidth\"\n [footerCellWidth]=\"gridService.groupColumnWidth\"></td>\n }\n @if (gridService.masterDetailTemplate()) {\n <td\n monaGridFooterTableCell\n monaGridLockedCell\n [lockedCellHeader]=\"true\"\n [lockedStructuralOffset]=\"\n gridService.groupColumns().length * gridService.groupColumnWidth\n \"\n [footerCellWidth]=\"gridService.detailColumnWidth\"></td>\n }\n @for (column of gridService.visibleColumns(); track $index) {\n <td\n monaGridFooterTableCell\n monaGridLockedCell\n [column]=\"column\"\n [lockedCellHeader]=\"true\"\n [footerColumn]=\"column\">\n <mona-grid-footer-cell\n [column]=\"column\"\n [columnIndex]=\"$index\"></mona-grid-footer-cell>\n </td>\n }\n </tr>\n </tfoot>\n </table>\n </div>\n </div>\n }\n <mona-pager\n class=\"border-0 border-t border-t-border rounded-tl-none rounded-tr-none\"\n [skip]=\"gridService.paginationState().skip\"\n [pageSize]=\"gridService.paginationState().take\"\n [total]=\"gridService.viewRowCount()\"\n [size]=\"'small'\"\n [rounded]=\"rounded()\"\n [pageInput]=\"true\"\n [pageSizeValues]=\"pageSizeValues()\"\n [responsive]=\"responsivePager()\"\n (pageSizeChange)=\"onPageSizeChange($event)\"\n (pageChange)=\"onPageChange($event)\"></mona-pager>\n } @else {\n <ng-container [ngTemplateOutlet]=\"emptyGridTemplate\"></ng-container>\n }\n }\n} @placeholder {\n <mona-placeholder text=\"Loading...\"></mona-placeholder>\n}\n\n<ng-template #emptyGridTemplate>\n <div [class]=\"noDataClass()\">\n @if (noDataTemplate()) {\n <ng-container [ngTemplateOutlet]=\"noDataTemplate() ?? null\"></ng-container>\n } @else {\n <mona-placeholder text=\"No data\"></mona-placeholder>\n }\n </div>\n</ng-template>\n" }]
5363
5079
  }], ctorParameters: () => [], propDecorators: { footerScrollElement: [{ type: i0.ViewChild, args: ["footerScrollElement", { isSignal: true }] }], gridDetailTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => GridDetailTemplateDirective), { ...{ read: TemplateRef }, isSignal: true }] }], gridHeaderElement: [{ type: i0.ViewChild, args: ["gridHeaderElement", { isSignal: true }] }], gridHeaderTableElement: [{ type: i0.ViewChild, args: ["headerTable", { isSignal: true }] }], groupColumnList: [{ type: i0.ViewChild, args: ["groupColumnList", { isSignal: true }] }], noDataTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => GridNoDataTemplateDirective), { ...{ read: TemplateRef }, isSignal: true }] }], toolbarElement: [{ type: i0.ViewChild, args: ["toolbarElement", { isSignal: true }] }], toolbarTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => GridToolbarTemplateDirective), { ...{ read: TemplateRef }, isSignal: true }] }], data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], pageSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageSize", required: false }] }], pageSizeValues: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageSizeValues", required: false }] }], resizeMethod: [{ type: i0.Input, args: [{ isSignal: true, alias: "resizeMethod", required: false }] }], responsivePager: [{ type: i0.Input, args: [{ isSignal: true, alias: "responsivePager", required: false }] }], rounded: [{ type: i0.Input, args: [{ isSignal: true, alias: "rounded", required: false }] }], userClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } }) });
5364
5080
 
5365
5081
  /*
@@ -5371,4 +5087,4 @@ i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "22.0.6", ng
5371
5087
  */
5372
5088
 
5373
5089
  export { GridSortableDirective as $, GridCellTemplateDirective as A, GridColumnComponent as B, CellEditEvent as C, GridColumnTitleTemplateDirective as D, GridCommandColumnComponent as E, GridComponent as F, GridNavigationService as G, GridContextMenuDirective as H, GridDetailTemplateDirective as I, GridEditCommandDirective as J, GridEditEvent as K, GridEditTemplateDirective as L, GridEditableDirective as M, GridExportDirective as N, GridFilterableDirective as O, GridFooterTemplateDirective as P, GridGroupFooterTemplateDirective as Q, GridGroupableDirective as R, GridHeaderTemplateDirective as S, GridNoDataTemplateDirective as T, GridRemoveCommandDirective as U, GridRemoveEvent as V, GridReorderableDirective as W, GridResizableDirective as X, GridSaveCommandDirective as Y, GridSaveEvent as Z, GridSelectableDirective as _, GridRowFlattenerService as a, GridStatePersistenceDirective as a0, GridToolbarTemplateDirective as a1, GridVirtualScrollDirective as a2, RowEditEvent as a3, gridFooterTableRowThemeVariants as b, GridService as c, gridGroupRowThemeVariants as d, gridListTableThemeVariants as e, GridLogicalCellDirective as f, gridListBaseThemeVariants as g, GridLockedCellDirective as h, gridFooterThemeVariants as i, gridFooterTableThemeVariants as j, gridListTableCellThemeVariants as k, gridDetailContentCellThemeVariants as l, gridDetailIndentCellThemeVariants as m, gridDetailRowThemeVariants as n, gridListTableRowThemeVariants as o, gridCellEditorBaseThemeVariants as p, gridCellEditorInputThemeVariants as q, gridCellBaseThemeVariants as r, gridCellContainerThemeVariants as s, gridCellDirtyIndicatorThemeVariants as t, gridCellTextThemeVariants as u, gridFooterTableCellThemeVariants as v, GridAddCommandDirective as w, GridAddEvent as x, GridCancelCommandDirective as y, GridCancelEvent as z };
5374
- //# sourceMappingURL=nanahoshi-mona-ui-grid-nanahoshi-mona-ui-grid-C3eZIaJK.mjs.map
5090
+ //# sourceMappingURL=nanahoshi-mona-ui-grid-nanahoshi-mona-ui-grid-BRZUd8cE.mjs.map