@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
@@ -7,7 +7,6 @@ import { ButtonDirective } from '@nanahoshi/mona-ui/button';
7
7
  import { PreventableEvent, ContainsPipe } from '@nanahoshi/mona-ui/common';
8
8
  import { ListService } from '@nanahoshi/mona-ui/internal/list';
9
9
  import { ListViewComponent, ListViewSelectableDirective, ListViewItemTemplateDirective, ListViewNavigableDirective, ListViewNoDataTemplateDirective, ListViewFooterTemplateDirective, ListViewHeaderTemplateDirective } from '@nanahoshi/mona-ui/list-view';
10
- import { ThemeService } from '@nanahoshi/mona-ui/theme';
11
10
  import { ImmutableList } from '@mirei/ts-collections';
12
11
  import { Subject, ReplaySubject, sample, delay, filter, tap, scan, startWith, switchMap } from 'rxjs';
13
12
  import { cva } from 'class-variance-authority';
@@ -133,9 +132,9 @@ class ListBoxTransferEvent extends PreventableEvent {
133
132
  }
134
133
  }
135
134
 
136
- const listBoxBaseVariants = cva(`
137
- flex gap-1
138
- [&_mona-list-view]:w-full
135
+ const listBoxBaseThemeVariants = cva(`
136
+ flex gap-1
137
+ [&_mona-list-view]:w-full
139
138
  `, {
140
139
  variants: {
141
140
  direction: {
@@ -171,9 +170,9 @@ const listBoxBaseVariants = cva(`
171
170
  }
172
171
  ]
173
172
  });
174
- const listBoxToolbarVariants = cva(`
175
- flex gap-1
176
- items-center justify-center
173
+ const listBoxToolbarThemeVariants = cva(`
174
+ flex gap-1
175
+ items-center justify-center
177
176
  `, {
178
177
  variants: {
179
178
  direction: {
@@ -183,37 +182,18 @@ const listBoxToolbarVariants = cva(`
183
182
  }
184
183
  });
185
184
 
186
- const listBoxBaseThemeVariants = (theme) => {
187
- switch (theme) {
188
- case "mona":
189
- return listBoxBaseVariants;
190
- default:
191
- return listBoxBaseVariants;
192
- }
193
- };
194
- const listBoxToolbarThemeVariants = (theme) => {
195
- switch (theme) {
196
- case "mona":
197
- return listBoxToolbarVariants;
198
- default:
199
- return listBoxToolbarVariants;
200
- }
201
- };
202
-
203
185
  class ListBoxComponent {
204
186
  #dataStateChange$;
205
187
  #destroyRef;
206
188
  #hostElementRef;
207
189
  #listService;
208
190
  #notifySelectionChange$;
209
- #themeService;
210
191
  constructor() {
211
192
  this.#dataStateChange$ = new Subject();
212
193
  this.#destroyRef = inject(DestroyRef);
213
194
  this.#hostElementRef = inject(ElementRef);
214
195
  this.#listService = inject(ListService);
215
196
  this.#notifySelectionChange$ = new ReplaySubject(1);
216
- this.#themeService = inject(ThemeService);
217
197
  /**
218
198
  * The list box (`this` or the connected list box) that currently holds the selection; falling back to `this`
219
199
  * when neither side has a selection. Used by actions that make sense to run on `this` even with no selection
@@ -232,14 +212,13 @@ class ListBoxComponent {
232
212
  }, /* @ts-ignore */
233
213
  ...(ngDevMode ? [{ debugName: "activeListBox" }] : /* istanbul ignore next */ []));
234
214
  this.baseClasses = computed(() => {
235
- const theme = this.#themeService.theme();
236
215
  const rounded = this.rounded();
237
216
  const size = this.size();
238
217
  const toolbarOptions = this.toolbarOptions();
239
218
  const position = toolbarOptions?.position ?? "right";
240
219
  const direction = position === "left" || position === "right" ? "horizontal" : "vertical";
241
220
  const reversed = position === "left" || position === "top";
242
- return listBoxBaseThemeVariants(theme)({ direction, reversed, rounded, size });
221
+ return listBoxBaseThemeVariants({ direction, reversed, rounded, size });
243
222
  }, /* @ts-ignore */
244
223
  ...(ngDevMode ? [{ debugName: "baseClasses" }] : /* istanbul ignore next */ []));
245
224
  this.footerTemplate = contentChild(ListBoxFooterTemplateDirective, { ...(ngDevMode ? { debugName: "footerTemplate" } : /* istanbul ignore next */ {}), read: TemplateRef });
@@ -266,11 +245,10 @@ class ListBoxComponent {
266
245
  }, /* @ts-ignore */
267
246
  ...(ngDevMode ? [{ debugName: "selectableOptions" }] : /* istanbul ignore next */ []));
268
247
  this.toolbarClasses = computed(() => {
269
- const theme = this.#themeService.theme();
270
248
  const toolbarOptions = this.toolbarOptions();
271
249
  const position = toolbarOptions?.position ?? "right";
272
250
  const direction = position === "left" || position === "right" ? "vertical" : "horizontal";
273
- return listBoxToolbarThemeVariants(theme)({ direction });
251
+ return listBoxToolbarThemeVariants({ direction });
274
252
  }, /* @ts-ignore */
275
253
  ...(ngDevMode ? [{ debugName: "toolbarClasses" }] : /* istanbul ignore next */ []));
276
254
  this.toolbarOptions = computed(() => {
@@ -588,7 +566,7 @@ class ListBoxComponent {
588
566
  return { actions, position };
589
567
  }
590
568
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: ListBoxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
591
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: ListBoxComponent, isStandalone: true, selector: "mona-list-box", inputs: { ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, connectedList: { classPropertyName: "connectedList", publicName: "connectedList", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, rounded: { classPropertyName: "rounded", publicName: "rounded", isSignal: true, isRequired: false, transformFunction: null }, selectBy: { classPropertyName: "selectBy", publicName: "selectBy", isSignal: true, isRequired: false, transformFunction: null }, selectedKeys: { classPropertyName: "selectedKeys", publicName: "selectedKeys", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, singleSelectionToggleable: { classPropertyName: "singleSelectionToggleable", publicName: "singleSelectionToggleable", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, textField: { classPropertyName: "textField", publicName: "textField", isSignal: true, isRequired: false, transformFunction: null }, toolbar: { classPropertyName: "toolbar", publicName: "toolbar", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { actionClick: "actionClick", selectedKeysChange: "selectedKeysChange", selectionChange: "selectionChange" }, host: { properties: { "class": "baseClasses()", "style.height": "listHeight()", "style.width": "listWidth()" } }, providers: [ListService], queries: [{ propertyName: "footerTemplate", first: true, predicate: ListBoxFooterTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "headerTemplate", first: true, predicate: ListBoxHeaderTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "itemTemplate", first: true, predicate: ListBoxItemTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "noDataTemplate", first: true, predicate: ListBoxNoDataTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }], ngImport: i0, template: "<mona-list-view\r\n [ariaLabel]=\"ariaLabel()\"\r\n [items]=\"listBoxItems()\"\r\n [height]=\"'100%'\"\r\n [rounded]=\"rounded()\"\r\n [size]=\"size()\"\r\n [textField]=\"textField()\"\r\n [width]=\"'100%'\"\r\n [monaListViewNavigable]=\"{ enabled: true, mode: 'select' }\"\r\n [monaListViewSelectable]=\"selectableOptions()\"\r\n [selectBy]=\"selectBy()\"\r\n [selectedKeys]=\"selectedKeys()\"\r\n (selectedKeysChange)=\"onSelectedKeysChange($event)\">\r\n @if (footerTemplate()) {\r\n <ng-template monaListViewFooterTemplate>\r\n <ng-container [ngTemplateOutlet]=\"footerTemplate()\"></ng-container>\r\n </ng-template>\r\n }\r\n @if (headerTemplate()) {\r\n <ng-template monaListViewHeaderTemplate>\r\n <ng-container [ngTemplateOutlet]=\"headerTemplate()\"></ng-container>\r\n </ng-template>\r\n }\r\n @if (itemTemplate()) {\r\n <ng-template monaListViewItemTemplate let-dataItem>\r\n <ng-container\r\n [ngTemplateOutlet]=\"itemTemplate()\"\r\n [ngTemplateOutletContext]=\"{ $implicit: dataItem }\"></ng-container>\r\n </ng-template>\r\n }\r\n @if (noDataTemplate()) {\r\n <ng-template monaListViewNoDataTemplate>\r\n <ng-container [ngTemplateOutlet]=\"noDataTemplate()\"></ng-container>\r\n </ng-template>\r\n }\r\n</mona-list-view>\r\n\r\n@let options = toolbarOptions() ?? null;\r\n@let connectedListBox = connectedList();\r\n@let hasSelectedItems = selectedItems().length > 0;\r\n@let connectedListHasSelectedItems = connectedListBox && connectedListBox.selectedItems().length > 0;\r\n@let connectedListItems = connectedListBox?.listBoxItems() ?? [];\r\n@if (options !== null && connectedListBox !== null) {\r\n <div [class]=\"toolbarClasses()\">\r\n @if (options.actions | monaContains: \"moveUp\") {\r\n <button\r\n monaButton\r\n (click)=\"onMoveClick('moveUp', $event)\"\r\n [iconOnly]=\"true\"\r\n [rounded]=\"rounded()\"\r\n [size]=\"size()\"\r\n title=\"Move Up\"\r\n aria-label=\"Move Up\"\r\n [disabled]=\"!hasSelectedItems && !connectedListHasSelectedItems\">\r\n <svg lucideChevronUp [size]=\"16\"></svg>\r\n </button>\r\n }\r\n @if (options.actions | monaContains: \"moveDown\") {\r\n <button\r\n monaButton\r\n (click)=\"onMoveClick('moveDown', $event)\"\r\n [iconOnly]=\"true\"\r\n [rounded]=\"rounded()\"\r\n [size]=\"size()\"\r\n title=\"Move Down\"\r\n aria-label=\"Move Down\"\r\n [disabled]=\"!hasSelectedItems && !connectedListHasSelectedItems\">\r\n <svg lucideChevronDown [size]=\"16\"></svg>\r\n </button>\r\n }\r\n @if (options.actions | monaContains: \"transferFrom\") {\r\n <button\r\n monaButton\r\n (click)=\"onTransferClick('transferFrom', $event)\"\r\n [iconOnly]=\"true\"\r\n [rounded]=\"rounded()\"\r\n [size]=\"size()\"\r\n title=\"Transfer From\"\r\n aria-label=\"Transfer From\"\r\n [disabled]=\"!connectedListHasSelectedItems\">\r\n <svg lucideChevronLeft [size]=\"16\"></svg>\r\n </button>\r\n }\r\n @if (options.actions | monaContains: \"transferTo\") {\r\n <button\r\n monaButton\r\n (click)=\"onTransferClick('transferTo', $event)\"\r\n [iconOnly]=\"true\"\r\n [rounded]=\"rounded()\"\r\n [size]=\"size()\"\r\n title=\"Transfer To\"\r\n aria-label=\"Transfer To\"\r\n [disabled]=\"!hasSelectedItems\">\r\n <svg lucideChevronRight [size]=\"16\"></svg>\r\n </button>\r\n }\r\n @if (options.actions | monaContains: \"transferAllFrom\") {\r\n <button\r\n monaButton\r\n (click)=\"onTransferClick('transferAllFrom', $event)\"\r\n [iconOnly]=\"true\"\r\n [rounded]=\"rounded()\"\r\n [size]=\"size()\"\r\n title=\"Transfer All From\"\r\n aria-label=\"Transfer All From\"\r\n [disabled]=\"!connectedListBox || connectedListItems.length === 0\">\r\n <svg lucideChevronsLeft [size]=\"16\"></svg>\r\n </button>\r\n }\r\n @if (options.actions | monaContains: \"transferAllTo\") {\r\n <button\r\n monaButton\r\n (click)=\"onTransferClick('transferAllTo', $event)\"\r\n [iconOnly]=\"true\"\r\n [rounded]=\"rounded()\"\r\n [size]=\"size()\"\r\n title=\"Transfer All To\"\r\n aria-label=\"Transfer All To\"\r\n [disabled]=\"listBoxItems().length === 0\">\r\n <svg lucideChevronsRight [size]=\"16\"></svg>\r\n </button>\r\n }\r\n @if (options.actions | monaContains: \"clear\") {\r\n <button\r\n monaButton\r\n (click)=\"onClearClick($event)\"\r\n [iconOnly]=\"true\"\r\n [rounded]=\"rounded()\"\r\n [size]=\"size()\"\r\n title=\"Clear Selection\"\r\n aria-label=\"Clear Selection\"\r\n [disabled]=\"!hasSelectedItems && !connectedListHasSelectedItems\">\r\n <svg lucideX [size]=\"16\"></svg>\r\n </button>\r\n }\r\n @if (options.actions | monaContains: \"remove\") {\r\n <button\r\n monaButton\r\n (click)=\"onRemoveClick($event)\"\r\n [iconOnly]=\"true\"\r\n [rounded]=\"rounded()\"\r\n [size]=\"size()\"\r\n title=\"Remove\"\r\n aria-label=\"Remove\"\r\n [disabled]=\"!hasSelectedItems && !connectedListHasSelectedItems\">\r\n <svg lucideTrash2 [size]=\"14\"></svg>\r\n </button>\r\n }\r\n </div>\r\n}\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: ListViewSelectableDirective, selector: "mona-list-view[monaListViewSelectable]", inputs: ["monaListViewSelectable", "selectBy", "selectedKeys"], outputs: ["selectedKeysChange"] }, { kind: "directive", type: ListViewItemTemplateDirective, selector: "ng-template[monaListViewItemTemplate]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { 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: ListViewNavigableDirective, selector: "mona-list-view[monaListViewNavigable]", inputs: ["monaListViewNavigable"] }, { kind: "directive", type: ListViewNoDataTemplateDirective, selector: "ng-template[monaListViewNoDataTemplate]" }, { kind: "directive", type: ListViewFooterTemplateDirective, selector: "ng-template[monaListViewFooterTemplate]" }, { kind: "directive", type: ListViewHeaderTemplateDirective, selector: "ng-template[monaListViewHeaderTemplate]" }, { kind: "component", type: LucideChevronUp, selector: "svg[lucideChevronUp]" }, { kind: "component", type: LucideChevronDown, selector: "svg[lucideChevronDown]" }, { kind: "component", type: LucideChevronLeft, selector: "svg[lucideChevronLeft]" }, { kind: "component", type: LucideChevronRight, selector: "svg[lucideChevronRight]" }, { kind: "component", type: LucideChevronsLeft, selector: "svg[lucideChevronsLeft]" }, { kind: "component", type: LucideChevronsRight, selector: "svg[lucideChevronsRight]" }, { kind: "component", type: LucideX, selector: "svg[lucideX]" }, { kind: "component", type: LucideTrash2, selector: "svg[lucideTrash2]" }, { kind: "pipe", type: ContainsPipe, name: "monaContains" }] }); }
569
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: ListBoxComponent, isStandalone: true, selector: "mona-list-box", inputs: { ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, connectedList: { classPropertyName: "connectedList", publicName: "connectedList", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, rounded: { classPropertyName: "rounded", publicName: "rounded", isSignal: true, isRequired: false, transformFunction: null }, selectBy: { classPropertyName: "selectBy", publicName: "selectBy", isSignal: true, isRequired: false, transformFunction: null }, selectedKeys: { classPropertyName: "selectedKeys", publicName: "selectedKeys", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, singleSelectionToggleable: { classPropertyName: "singleSelectionToggleable", publicName: "singleSelectionToggleable", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, textField: { classPropertyName: "textField", publicName: "textField", isSignal: true, isRequired: false, transformFunction: null }, toolbar: { classPropertyName: "toolbar", publicName: "toolbar", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { actionClick: "actionClick", selectedKeysChange: "selectedKeysChange", selectionChange: "selectionChange" }, host: { properties: { "class": "baseClasses()", "style.height": "listHeight()", "style.width": "listWidth()" } }, providers: [ListService], queries: [{ propertyName: "footerTemplate", first: true, predicate: ListBoxFooterTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "headerTemplate", first: true, predicate: ListBoxHeaderTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "itemTemplate", first: true, predicate: ListBoxItemTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "noDataTemplate", first: true, predicate: ListBoxNoDataTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }], ngImport: i0, template: "<mona-list-view\n [ariaLabel]=\"ariaLabel()\"\n [items]=\"listBoxItems()\"\n [height]=\"'100%'\"\n [rounded]=\"rounded()\"\n [size]=\"size()\"\n [textField]=\"textField()\"\n [width]=\"'100%'\"\n [monaListViewNavigable]=\"{ enabled: true, mode: 'select' }\"\n [monaListViewSelectable]=\"selectableOptions()\"\n [selectBy]=\"selectBy()\"\n [selectedKeys]=\"selectedKeys()\"\n (selectedKeysChange)=\"onSelectedKeysChange($event)\">\n @if (footerTemplate()) {\n <ng-template monaListViewFooterTemplate>\n <ng-container [ngTemplateOutlet]=\"footerTemplate()\"></ng-container>\n </ng-template>\n }\n @if (headerTemplate()) {\n <ng-template monaListViewHeaderTemplate>\n <ng-container [ngTemplateOutlet]=\"headerTemplate()\"></ng-container>\n </ng-template>\n }\n @if (itemTemplate()) {\n <ng-template monaListViewItemTemplate let-dataItem>\n <ng-container\n [ngTemplateOutlet]=\"itemTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: dataItem }\"></ng-container>\n </ng-template>\n }\n @if (noDataTemplate()) {\n <ng-template monaListViewNoDataTemplate>\n <ng-container [ngTemplateOutlet]=\"noDataTemplate()\"></ng-container>\n </ng-template>\n }\n</mona-list-view>\n\n@let options = toolbarOptions() ?? null;\n@let connectedListBox = connectedList();\n@let hasSelectedItems = selectedItems().length > 0;\n@let connectedListHasSelectedItems = connectedListBox && connectedListBox.selectedItems().length > 0;\n@let connectedListItems = connectedListBox?.listBoxItems() ?? [];\n@if (options !== null && connectedListBox !== null) {\n <div [class]=\"toolbarClasses()\">\n @if (options.actions | monaContains: \"moveUp\") {\n <button\n monaButton\n (click)=\"onMoveClick('moveUp', $event)\"\n [iconOnly]=\"true\"\n [rounded]=\"rounded()\"\n [size]=\"size()\"\n title=\"Move Up\"\n aria-label=\"Move Up\"\n [disabled]=\"!hasSelectedItems && !connectedListHasSelectedItems\">\n <svg lucideChevronUp [size]=\"16\"></svg>\n </button>\n }\n @if (options.actions | monaContains: \"moveDown\") {\n <button\n monaButton\n (click)=\"onMoveClick('moveDown', $event)\"\n [iconOnly]=\"true\"\n [rounded]=\"rounded()\"\n [size]=\"size()\"\n title=\"Move Down\"\n aria-label=\"Move Down\"\n [disabled]=\"!hasSelectedItems && !connectedListHasSelectedItems\">\n <svg lucideChevronDown [size]=\"16\"></svg>\n </button>\n }\n @if (options.actions | monaContains: \"transferFrom\") {\n <button\n monaButton\n (click)=\"onTransferClick('transferFrom', $event)\"\n [iconOnly]=\"true\"\n [rounded]=\"rounded()\"\n [size]=\"size()\"\n title=\"Transfer From\"\n aria-label=\"Transfer From\"\n [disabled]=\"!connectedListHasSelectedItems\">\n <svg lucideChevronLeft [size]=\"16\"></svg>\n </button>\n }\n @if (options.actions | monaContains: \"transferTo\") {\n <button\n monaButton\n (click)=\"onTransferClick('transferTo', $event)\"\n [iconOnly]=\"true\"\n [rounded]=\"rounded()\"\n [size]=\"size()\"\n title=\"Transfer To\"\n aria-label=\"Transfer To\"\n [disabled]=\"!hasSelectedItems\">\n <svg lucideChevronRight [size]=\"16\"></svg>\n </button>\n }\n @if (options.actions | monaContains: \"transferAllFrom\") {\n <button\n monaButton\n (click)=\"onTransferClick('transferAllFrom', $event)\"\n [iconOnly]=\"true\"\n [rounded]=\"rounded()\"\n [size]=\"size()\"\n title=\"Transfer All From\"\n aria-label=\"Transfer All From\"\n [disabled]=\"!connectedListBox || connectedListItems.length === 0\">\n <svg lucideChevronsLeft [size]=\"16\"></svg>\n </button>\n }\n @if (options.actions | monaContains: \"transferAllTo\") {\n <button\n monaButton\n (click)=\"onTransferClick('transferAllTo', $event)\"\n [iconOnly]=\"true\"\n [rounded]=\"rounded()\"\n [size]=\"size()\"\n title=\"Transfer All To\"\n aria-label=\"Transfer All To\"\n [disabled]=\"listBoxItems().length === 0\">\n <svg lucideChevronsRight [size]=\"16\"></svg>\n </button>\n }\n @if (options.actions | monaContains: \"clear\") {\n <button\n monaButton\n (click)=\"onClearClick($event)\"\n [iconOnly]=\"true\"\n [rounded]=\"rounded()\"\n [size]=\"size()\"\n title=\"Clear Selection\"\n aria-label=\"Clear Selection\"\n [disabled]=\"!hasSelectedItems && !connectedListHasSelectedItems\">\n <svg lucideX [size]=\"16\"></svg>\n </button>\n }\n @if (options.actions | monaContains: \"remove\") {\n <button\n monaButton\n (click)=\"onRemoveClick($event)\"\n [iconOnly]=\"true\"\n [rounded]=\"rounded()\"\n [size]=\"size()\"\n title=\"Remove\"\n aria-label=\"Remove\"\n [disabled]=\"!hasSelectedItems && !connectedListHasSelectedItems\">\n <svg lucideTrash2 [size]=\"14\"></svg>\n </button>\n }\n </div>\n}\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: ListViewSelectableDirective, selector: "mona-list-view[monaListViewSelectable]", inputs: ["monaListViewSelectable", "selectBy", "selectedKeys"], outputs: ["selectedKeysChange"] }, { kind: "directive", type: ListViewItemTemplateDirective, selector: "ng-template[monaListViewItemTemplate]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { 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: ListViewNavigableDirective, selector: "mona-list-view[monaListViewNavigable]", inputs: ["monaListViewNavigable"] }, { kind: "directive", type: ListViewNoDataTemplateDirective, selector: "ng-template[monaListViewNoDataTemplate]" }, { kind: "directive", type: ListViewFooterTemplateDirective, selector: "ng-template[monaListViewFooterTemplate]" }, { kind: "directive", type: ListViewHeaderTemplateDirective, selector: "ng-template[monaListViewHeaderTemplate]" }, { kind: "component", type: LucideChevronUp, selector: "svg[lucideChevronUp]" }, { kind: "component", type: LucideChevronDown, selector: "svg[lucideChevronDown]" }, { kind: "component", type: LucideChevronLeft, selector: "svg[lucideChevronLeft]" }, { kind: "component", type: LucideChevronRight, selector: "svg[lucideChevronRight]" }, { kind: "component", type: LucideChevronsLeft, selector: "svg[lucideChevronsLeft]" }, { kind: "component", type: LucideChevronsRight, selector: "svg[lucideChevronsRight]" }, { kind: "component", type: LucideX, selector: "svg[lucideX]" }, { kind: "component", type: LucideTrash2, selector: "svg[lucideTrash2]" }, { kind: "pipe", type: ContainsPipe, name: "monaContains" }] }); }
592
570
  }
593
571
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: ListBoxComponent, decorators: [{
594
572
  type: Component,
@@ -615,7 +593,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
615
593
  "[class]": "baseClasses()",
616
594
  "[style.height]": "listHeight()",
617
595
  "[style.width]": "listWidth()"
618
- }, template: "<mona-list-view\r\n [ariaLabel]=\"ariaLabel()\"\r\n [items]=\"listBoxItems()\"\r\n [height]=\"'100%'\"\r\n [rounded]=\"rounded()\"\r\n [size]=\"size()\"\r\n [textField]=\"textField()\"\r\n [width]=\"'100%'\"\r\n [monaListViewNavigable]=\"{ enabled: true, mode: 'select' }\"\r\n [monaListViewSelectable]=\"selectableOptions()\"\r\n [selectBy]=\"selectBy()\"\r\n [selectedKeys]=\"selectedKeys()\"\r\n (selectedKeysChange)=\"onSelectedKeysChange($event)\">\r\n @if (footerTemplate()) {\r\n <ng-template monaListViewFooterTemplate>\r\n <ng-container [ngTemplateOutlet]=\"footerTemplate()\"></ng-container>\r\n </ng-template>\r\n }\r\n @if (headerTemplate()) {\r\n <ng-template monaListViewHeaderTemplate>\r\n <ng-container [ngTemplateOutlet]=\"headerTemplate()\"></ng-container>\r\n </ng-template>\r\n }\r\n @if (itemTemplate()) {\r\n <ng-template monaListViewItemTemplate let-dataItem>\r\n <ng-container\r\n [ngTemplateOutlet]=\"itemTemplate()\"\r\n [ngTemplateOutletContext]=\"{ $implicit: dataItem }\"></ng-container>\r\n </ng-template>\r\n }\r\n @if (noDataTemplate()) {\r\n <ng-template monaListViewNoDataTemplate>\r\n <ng-container [ngTemplateOutlet]=\"noDataTemplate()\"></ng-container>\r\n </ng-template>\r\n }\r\n</mona-list-view>\r\n\r\n@let options = toolbarOptions() ?? null;\r\n@let connectedListBox = connectedList();\r\n@let hasSelectedItems = selectedItems().length > 0;\r\n@let connectedListHasSelectedItems = connectedListBox && connectedListBox.selectedItems().length > 0;\r\n@let connectedListItems = connectedListBox?.listBoxItems() ?? [];\r\n@if (options !== null && connectedListBox !== null) {\r\n <div [class]=\"toolbarClasses()\">\r\n @if (options.actions | monaContains: \"moveUp\") {\r\n <button\r\n monaButton\r\n (click)=\"onMoveClick('moveUp', $event)\"\r\n [iconOnly]=\"true\"\r\n [rounded]=\"rounded()\"\r\n [size]=\"size()\"\r\n title=\"Move Up\"\r\n aria-label=\"Move Up\"\r\n [disabled]=\"!hasSelectedItems && !connectedListHasSelectedItems\">\r\n <svg lucideChevronUp [size]=\"16\"></svg>\r\n </button>\r\n }\r\n @if (options.actions | monaContains: \"moveDown\") {\r\n <button\r\n monaButton\r\n (click)=\"onMoveClick('moveDown', $event)\"\r\n [iconOnly]=\"true\"\r\n [rounded]=\"rounded()\"\r\n [size]=\"size()\"\r\n title=\"Move Down\"\r\n aria-label=\"Move Down\"\r\n [disabled]=\"!hasSelectedItems && !connectedListHasSelectedItems\">\r\n <svg lucideChevronDown [size]=\"16\"></svg>\r\n </button>\r\n }\r\n @if (options.actions | monaContains: \"transferFrom\") {\r\n <button\r\n monaButton\r\n (click)=\"onTransferClick('transferFrom', $event)\"\r\n [iconOnly]=\"true\"\r\n [rounded]=\"rounded()\"\r\n [size]=\"size()\"\r\n title=\"Transfer From\"\r\n aria-label=\"Transfer From\"\r\n [disabled]=\"!connectedListHasSelectedItems\">\r\n <svg lucideChevronLeft [size]=\"16\"></svg>\r\n </button>\r\n }\r\n @if (options.actions | monaContains: \"transferTo\") {\r\n <button\r\n monaButton\r\n (click)=\"onTransferClick('transferTo', $event)\"\r\n [iconOnly]=\"true\"\r\n [rounded]=\"rounded()\"\r\n [size]=\"size()\"\r\n title=\"Transfer To\"\r\n aria-label=\"Transfer To\"\r\n [disabled]=\"!hasSelectedItems\">\r\n <svg lucideChevronRight [size]=\"16\"></svg>\r\n </button>\r\n }\r\n @if (options.actions | monaContains: \"transferAllFrom\") {\r\n <button\r\n monaButton\r\n (click)=\"onTransferClick('transferAllFrom', $event)\"\r\n [iconOnly]=\"true\"\r\n [rounded]=\"rounded()\"\r\n [size]=\"size()\"\r\n title=\"Transfer All From\"\r\n aria-label=\"Transfer All From\"\r\n [disabled]=\"!connectedListBox || connectedListItems.length === 0\">\r\n <svg lucideChevronsLeft [size]=\"16\"></svg>\r\n </button>\r\n }\r\n @if (options.actions | monaContains: \"transferAllTo\") {\r\n <button\r\n monaButton\r\n (click)=\"onTransferClick('transferAllTo', $event)\"\r\n [iconOnly]=\"true\"\r\n [rounded]=\"rounded()\"\r\n [size]=\"size()\"\r\n title=\"Transfer All To\"\r\n aria-label=\"Transfer All To\"\r\n [disabled]=\"listBoxItems().length === 0\">\r\n <svg lucideChevronsRight [size]=\"16\"></svg>\r\n </button>\r\n }\r\n @if (options.actions | monaContains: \"clear\") {\r\n <button\r\n monaButton\r\n (click)=\"onClearClick($event)\"\r\n [iconOnly]=\"true\"\r\n [rounded]=\"rounded()\"\r\n [size]=\"size()\"\r\n title=\"Clear Selection\"\r\n aria-label=\"Clear Selection\"\r\n [disabled]=\"!hasSelectedItems && !connectedListHasSelectedItems\">\r\n <svg lucideX [size]=\"16\"></svg>\r\n </button>\r\n }\r\n @if (options.actions | monaContains: \"remove\") {\r\n <button\r\n monaButton\r\n (click)=\"onRemoveClick($event)\"\r\n [iconOnly]=\"true\"\r\n [rounded]=\"rounded()\"\r\n [size]=\"size()\"\r\n title=\"Remove\"\r\n aria-label=\"Remove\"\r\n [disabled]=\"!hasSelectedItems && !connectedListHasSelectedItems\">\r\n <svg lucideTrash2 [size]=\"14\"></svg>\r\n </button>\r\n }\r\n </div>\r\n}\r\n" }]
596
+ }, template: "<mona-list-view\n [ariaLabel]=\"ariaLabel()\"\n [items]=\"listBoxItems()\"\n [height]=\"'100%'\"\n [rounded]=\"rounded()\"\n [size]=\"size()\"\n [textField]=\"textField()\"\n [width]=\"'100%'\"\n [monaListViewNavigable]=\"{ enabled: true, mode: 'select' }\"\n [monaListViewSelectable]=\"selectableOptions()\"\n [selectBy]=\"selectBy()\"\n [selectedKeys]=\"selectedKeys()\"\n (selectedKeysChange)=\"onSelectedKeysChange($event)\">\n @if (footerTemplate()) {\n <ng-template monaListViewFooterTemplate>\n <ng-container [ngTemplateOutlet]=\"footerTemplate()\"></ng-container>\n </ng-template>\n }\n @if (headerTemplate()) {\n <ng-template monaListViewHeaderTemplate>\n <ng-container [ngTemplateOutlet]=\"headerTemplate()\"></ng-container>\n </ng-template>\n }\n @if (itemTemplate()) {\n <ng-template monaListViewItemTemplate let-dataItem>\n <ng-container\n [ngTemplateOutlet]=\"itemTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: dataItem }\"></ng-container>\n </ng-template>\n }\n @if (noDataTemplate()) {\n <ng-template monaListViewNoDataTemplate>\n <ng-container [ngTemplateOutlet]=\"noDataTemplate()\"></ng-container>\n </ng-template>\n }\n</mona-list-view>\n\n@let options = toolbarOptions() ?? null;\n@let connectedListBox = connectedList();\n@let hasSelectedItems = selectedItems().length > 0;\n@let connectedListHasSelectedItems = connectedListBox && connectedListBox.selectedItems().length > 0;\n@let connectedListItems = connectedListBox?.listBoxItems() ?? [];\n@if (options !== null && connectedListBox !== null) {\n <div [class]=\"toolbarClasses()\">\n @if (options.actions | monaContains: \"moveUp\") {\n <button\n monaButton\n (click)=\"onMoveClick('moveUp', $event)\"\n [iconOnly]=\"true\"\n [rounded]=\"rounded()\"\n [size]=\"size()\"\n title=\"Move Up\"\n aria-label=\"Move Up\"\n [disabled]=\"!hasSelectedItems && !connectedListHasSelectedItems\">\n <svg lucideChevronUp [size]=\"16\"></svg>\n </button>\n }\n @if (options.actions | monaContains: \"moveDown\") {\n <button\n monaButton\n (click)=\"onMoveClick('moveDown', $event)\"\n [iconOnly]=\"true\"\n [rounded]=\"rounded()\"\n [size]=\"size()\"\n title=\"Move Down\"\n aria-label=\"Move Down\"\n [disabled]=\"!hasSelectedItems && !connectedListHasSelectedItems\">\n <svg lucideChevronDown [size]=\"16\"></svg>\n </button>\n }\n @if (options.actions | monaContains: \"transferFrom\") {\n <button\n monaButton\n (click)=\"onTransferClick('transferFrom', $event)\"\n [iconOnly]=\"true\"\n [rounded]=\"rounded()\"\n [size]=\"size()\"\n title=\"Transfer From\"\n aria-label=\"Transfer From\"\n [disabled]=\"!connectedListHasSelectedItems\">\n <svg lucideChevronLeft [size]=\"16\"></svg>\n </button>\n }\n @if (options.actions | monaContains: \"transferTo\") {\n <button\n monaButton\n (click)=\"onTransferClick('transferTo', $event)\"\n [iconOnly]=\"true\"\n [rounded]=\"rounded()\"\n [size]=\"size()\"\n title=\"Transfer To\"\n aria-label=\"Transfer To\"\n [disabled]=\"!hasSelectedItems\">\n <svg lucideChevronRight [size]=\"16\"></svg>\n </button>\n }\n @if (options.actions | monaContains: \"transferAllFrom\") {\n <button\n monaButton\n (click)=\"onTransferClick('transferAllFrom', $event)\"\n [iconOnly]=\"true\"\n [rounded]=\"rounded()\"\n [size]=\"size()\"\n title=\"Transfer All From\"\n aria-label=\"Transfer All From\"\n [disabled]=\"!connectedListBox || connectedListItems.length === 0\">\n <svg lucideChevronsLeft [size]=\"16\"></svg>\n </button>\n }\n @if (options.actions | monaContains: \"transferAllTo\") {\n <button\n monaButton\n (click)=\"onTransferClick('transferAllTo', $event)\"\n [iconOnly]=\"true\"\n [rounded]=\"rounded()\"\n [size]=\"size()\"\n title=\"Transfer All To\"\n aria-label=\"Transfer All To\"\n [disabled]=\"listBoxItems().length === 0\">\n <svg lucideChevronsRight [size]=\"16\"></svg>\n </button>\n }\n @if (options.actions | monaContains: \"clear\") {\n <button\n monaButton\n (click)=\"onClearClick($event)\"\n [iconOnly]=\"true\"\n [rounded]=\"rounded()\"\n [size]=\"size()\"\n title=\"Clear Selection\"\n aria-label=\"Clear Selection\"\n [disabled]=\"!hasSelectedItems && !connectedListHasSelectedItems\">\n <svg lucideX [size]=\"16\"></svg>\n </button>\n }\n @if (options.actions | monaContains: \"remove\") {\n <button\n monaButton\n (click)=\"onRemoveClick($event)\"\n [iconOnly]=\"true\"\n [rounded]=\"rounded()\"\n [size]=\"size()\"\n title=\"Remove\"\n aria-label=\"Remove\"\n [disabled]=\"!hasSelectedItems && !connectedListHasSelectedItems\">\n <svg lucideTrash2 [size]=\"14\"></svg>\n </button>\n }\n </div>\n}\n" }]
619
597
  }], ctorParameters: () => [], propDecorators: { footerTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => ListBoxFooterTemplateDirective), { ...{ read: TemplateRef }, isSignal: true }] }], headerTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => ListBoxHeaderTemplateDirective), { ...{ read: TemplateRef }, isSignal: true }] }], itemTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => ListBoxItemTemplateDirective), { ...{ read: TemplateRef }, isSignal: true }] }], noDataTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => ListBoxNoDataTemplateDirective), { ...{ read: TemplateRef }, isSignal: true }] }], actionClick: [{ type: i0.Output, args: ["actionClick"] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }], connectedList: [{ type: i0.Input, args: [{ isSignal: true, alias: "connectedList", required: false }] }], height: [{ type: i0.Input, args: [{ isSignal: true, alias: "height", required: false }] }], items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], rounded: [{ type: i0.Input, args: [{ isSignal: true, alias: "rounded", required: false }] }], selectBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectBy", required: false }] }], selectedKeys: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedKeys", required: false }] }], selectedKeysChange: [{ type: i0.Output, args: ["selectedKeysChange"] }], selectionChange: [{ type: i0.Output, args: ["selectionChange"] }], selectionMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectionMode", required: false }] }], singleSelectionToggleable: [{ type: i0.Input, args: [{ isSignal: true, alias: "singleSelectionToggleable", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], textField: [{ type: i0.Input, args: [{ isSignal: true, alias: "textField", required: false }] }], toolbar: [{ type: i0.Input, args: [{ isSignal: true, alias: "toolbar", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }] } });
620
598
 
621
599
  /*
@@ -4,7 +4,6 @@ import { Directive, inject, DestroyRef, ElementRef, computed, contentChild, Temp
4
4
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
5
5
  import { ListService, ListComponent, ListHeaderTemplateDirective, ListFooterTemplateDirective, ListGroupHeaderTemplateDirective, ListItemTemplateDirective, ListNoDataTemplateDirective } from '@nanahoshi/mona-ui/internal/list';
6
6
  import { PagerComponent } from '@nanahoshi/mona-ui/pager';
7
- import { ThemeService } from '@nanahoshi/mona-ui/theme';
8
7
  import { ImmutableSet } from '@mirei/ts-collections';
9
8
  import { fromEvent, filter } from 'rxjs';
10
9
  import { twMerge } from 'tailwind-merge';
@@ -65,11 +64,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
65
64
  }]
66
65
  }] });
67
66
 
68
- const listViewBaseVariants = cva(`
69
- flex flex-col h-full
70
- outline-none overflow-hidden
71
- bg-background text-foreground
72
- border border-border
67
+ const listViewBaseThemeVariants = cva(`
68
+ flex h-full flex-col overflow-hidden
69
+ bg-surface text-foreground
70
+ border border-border
71
+ outline-none
73
72
  `, {
74
73
  variants: {
75
74
  rounded: {
@@ -86,20 +85,10 @@ const listViewBaseVariants = cva(`
86
85
  }
87
86
  });
88
87
 
89
- const listViewBaseThemeVariants = (theme) => {
90
- switch (theme) {
91
- case "mona":
92
- return listViewBaseVariants;
93
- default:
94
- return listViewBaseVariants;
95
- }
96
- };
97
-
98
88
  class ListViewComponent {
99
89
  #destroyRef;
100
90
  #hostElementRef;
101
91
  #scrollBottomEnabled;
102
- #themeService;
103
92
  #scrollSubscription;
104
93
  constructor() {
105
94
  this.#destroyRef = inject(DestroyRef);
@@ -109,13 +98,11 @@ class ListViewComponent {
109
98
  return !pageableOptions.enabled;
110
99
  }, /* @ts-ignore */
111
100
  ...(ngDevMode ? [{ debugName: "#scrollBottomEnabled" }] : /* istanbul ignore next */ []));
112
- this.#themeService = inject(ThemeService);
113
101
  this.#scrollSubscription = null;
114
102
  this.baseClasses = computed(() => {
115
- const theme = this.#themeService.theme();
116
103
  const rounded = this.rounded();
117
104
  const size = this.size();
118
- const variantClasses = listViewBaseThemeVariants(theme)({ rounded, size });
105
+ const variantClasses = listViewBaseThemeVariants({ rounded, size });
119
106
  const userClass = this.userClass();
120
107
  return twMerge(variantClasses, userClass);
121
108
  }, /* @ts-ignore */
@@ -287,7 +274,7 @@ class ListViewComponent {
287
274
  },
288
275
  deps: [[new Optional(), new SkipSelf(), ListService]]
289
276
  }
290
- ], queries: [{ propertyName: "footerTemplate", first: true, predicate: ListViewFooterTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "groupHeaderTemplate", first: true, predicate: ListViewGroupHeaderTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "headerTemplate", first: true, predicate: ListViewHeaderTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "itemTemplate", first: true, predicate: ListViewItemTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "noDataTemplate", first: true, predicate: ListViewNoDataTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }], ngImport: i0, template: "<mona-list\r\n [ariaLabel]=\"ariaLabel()\"\r\n [data]=\"viewItems()\"\r\n [height]=\"listHeight()\"\r\n [width]=\"listWidth()\"\r\n [maxHeight]=\"listMaxHeight()\"\r\n [maxWidth]=\"listMaxWidth()\"\r\n [listItemClass]=\"listItemClass()\"\r\n [listItemStyle]=\"listItemStyle()\"\r\n [listClass]=\"listClass()\"\r\n [listStyle]=\"listStyle()\">\r\n @if (footerTemplate()) {\r\n <ng-template monaListFooterTemplate>\r\n <ng-container [ngTemplateOutlet]=\"footerTemplate() ?? null\"></ng-container>\r\n </ng-template>\r\n }\r\n @if (groupHeaderTemplate()) {\r\n <ng-template monaListGroupHeaderTemplate let-groupHeader>\r\n <ng-container\r\n [ngTemplateOutlet]=\"groupHeaderTemplate() ?? null\"\r\n [ngTemplateOutletContext]=\"{ $implicit: groupHeader }\"></ng-container>\r\n </ng-template>\r\n }\r\n @if (headerTemplate()) {\r\n <ng-template monaListHeaderTemplate>\r\n <ng-container [ngTemplateOutlet]=\"headerTemplate() ?? null\"></ng-container>\r\n </ng-template>\r\n }\r\n @if (itemTemplate()) {\r\n <ng-template monaListItemTemplate let-dataItem>\r\n <ng-container\r\n [ngTemplateOutlet]=\"itemTemplate() ?? null\"\r\n [ngTemplateOutletContext]=\"{ $implicit: dataItem }\"></ng-container>\r\n </ng-template>\r\n }\r\n @if (noDataTemplate()) {\r\n <ng-template monaListNoDataTemplate>\r\n <ng-container [ngTemplateOutlet]=\"noDataTemplate() ?? null\"></ng-container>\r\n </ng-template>\r\n }\r\n</mona-list>\r\n\r\n@let pageableOptions = listService.pageableOptions();\r\n@if (pageableOptions.enabled && !listService.virtualScrollOptions().enabled && viewItems().length > 0) {\r\n @let pageState = listService.pageState();\r\n <div class=\"mona-list-view-pager\">\r\n <mona-pager\r\n [firstLast]=\"pageableOptions.firstLast\"\r\n [pageSizeValues]=\"pageableOptions.pageSizeValues\"\r\n [visiblePages]=\"pageableOptions.visiblePages\"\r\n [total]=\"itemCount()\"\r\n [skip]=\"pageState.skip\"\r\n [responsive]=\"false\"\r\n [rounded]=\"rounded()\"\r\n [pageSize]=\"pageState.take\"\r\n [previousNext]=\"pageableOptions.previousNext\"\r\n [showInfo]=\"pageableOptions.showInfo\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"\r\n class=\"border-b-0 border-l-0 border-r-0 rounded-t-none\"></mona-pager>\r\n </div>\r\n}\r\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PagerComponent, selector: "mona-pager", inputs: ["firstLast", "navigable", "pageInput", "pageSize", "pageSizeValues", "previousNext", "responsive", "rounded", "showInfo", "size", "skip", "total", "type", "class", "visiblePages"], outputs: ["pageChange", "pageSizeChange"] }, { kind: "component", type: ListComponent, selector: "mona-list", inputs: ["ariaLabel", "data", "focusOnMount", "height", "listClass", "listId", "listItemClass", "listItemStyle", "listStyle", "maxHeight", "maxWidth", "size", "textField", "width"], outputs: ["itemSelect"] }, { kind: "directive", type: ListHeaderTemplateDirective, selector: "ng-template[monaListHeaderTemplate]" }, { kind: "directive", type: ListFooterTemplateDirective, selector: "ng-template[monaListFooterTemplate]" }, { kind: "directive", type: ListGroupHeaderTemplateDirective, selector: "ng-template[monaListGroupHeaderTemplate]" }, { kind: "directive", type: ListItemTemplateDirective, selector: "ng-template[monaListItemTemplate]" }, { kind: "directive", type: ListNoDataTemplateDirective, selector: "ng-template[monaListNoDataTemplate]" }] }); }
277
+ ], queries: [{ propertyName: "footerTemplate", first: true, predicate: ListViewFooterTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "groupHeaderTemplate", first: true, predicate: ListViewGroupHeaderTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "headerTemplate", first: true, predicate: ListViewHeaderTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "itemTemplate", first: true, predicate: ListViewItemTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "noDataTemplate", first: true, predicate: ListViewNoDataTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }], ngImport: i0, template: "<mona-list\n [ariaLabel]=\"ariaLabel()\"\n [data]=\"viewItems()\"\n [height]=\"listHeight()\"\n [width]=\"listWidth()\"\n [maxHeight]=\"listMaxHeight()\"\n [maxWidth]=\"listMaxWidth()\"\n [listItemClass]=\"listItemClass()\"\n [listItemStyle]=\"listItemStyle()\"\n [listClass]=\"listClass()\"\n [listStyle]=\"listStyle()\">\n @if (footerTemplate()) {\n <ng-template monaListFooterTemplate>\n <ng-container [ngTemplateOutlet]=\"footerTemplate() ?? null\"></ng-container>\n </ng-template>\n }\n @if (groupHeaderTemplate()) {\n <ng-template monaListGroupHeaderTemplate let-groupHeader>\n <ng-container\n [ngTemplateOutlet]=\"groupHeaderTemplate() ?? null\"\n [ngTemplateOutletContext]=\"{ $implicit: groupHeader }\"></ng-container>\n </ng-template>\n }\n @if (headerTemplate()) {\n <ng-template monaListHeaderTemplate>\n <ng-container [ngTemplateOutlet]=\"headerTemplate() ?? null\"></ng-container>\n </ng-template>\n }\n @if (itemTemplate()) {\n <ng-template monaListItemTemplate let-dataItem>\n <ng-container\n [ngTemplateOutlet]=\"itemTemplate() ?? null\"\n [ngTemplateOutletContext]=\"{ $implicit: dataItem }\"></ng-container>\n </ng-template>\n }\n @if (noDataTemplate()) {\n <ng-template monaListNoDataTemplate>\n <ng-container [ngTemplateOutlet]=\"noDataTemplate() ?? null\"></ng-container>\n </ng-template>\n }\n</mona-list>\n\n@let pageableOptions = listService.pageableOptions();\n@if (pageableOptions.enabled && !listService.virtualScrollOptions().enabled && viewItems().length > 0) {\n @let pageState = listService.pageState();\n <div class=\"mona-list-view-pager\">\n <mona-pager\n [firstLast]=\"pageableOptions.firstLast\"\n [pageSizeValues]=\"pageableOptions.pageSizeValues\"\n [visiblePages]=\"pageableOptions.visiblePages\"\n [total]=\"itemCount()\"\n [skip]=\"pageState.skip\"\n [responsive]=\"false\"\n [rounded]=\"rounded()\"\n [pageSize]=\"pageState.take\"\n [previousNext]=\"pageableOptions.previousNext\"\n [showInfo]=\"pageableOptions.showInfo\"\n (pageChange)=\"onPageChange($event)\"\n (pageSizeChange)=\"onPageSizeChange($event)\"\n class=\"border-b-0 border-l-0 border-r-0 rounded-t-none\"></mona-pager>\n </div>\n}\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PagerComponent, selector: "mona-pager", inputs: ["firstLast", "navigable", "pageInput", "pageSize", "pageSizeValues", "previousNext", "responsive", "rounded", "showInfo", "size", "skip", "total", "type", "class", "visiblePages"], outputs: ["pageChange", "pageSizeChange"] }, { kind: "component", type: ListComponent, selector: "mona-list", inputs: ["ariaLabel", "data", "focusOnMount", "height", "listClass", "listId", "listItemClass", "listItemStyle", "listStyle", "maxHeight", "maxWidth", "size", "textField", "width"], outputs: ["itemSelect"] }, { kind: "directive", type: ListHeaderTemplateDirective, selector: "ng-template[monaListHeaderTemplate]" }, { kind: "directive", type: ListFooterTemplateDirective, selector: "ng-template[monaListFooterTemplate]" }, { kind: "directive", type: ListGroupHeaderTemplateDirective, selector: "ng-template[monaListGroupHeaderTemplate]" }, { kind: "directive", type: ListItemTemplateDirective, selector: "ng-template[monaListItemTemplate]" }, { kind: "directive", type: ListNoDataTemplateDirective, selector: "ng-template[monaListNoDataTemplate]" }] }); }
291
278
  }
292
279
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: ListViewComponent, decorators: [{
293
280
  type: Component,
@@ -311,7 +298,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
311
298
  ], host: {
312
299
  "[class]": "baseClasses()",
313
300
  "[attr.tabindex]": "-1"
314
- }, template: "<mona-list\r\n [ariaLabel]=\"ariaLabel()\"\r\n [data]=\"viewItems()\"\r\n [height]=\"listHeight()\"\r\n [width]=\"listWidth()\"\r\n [maxHeight]=\"listMaxHeight()\"\r\n [maxWidth]=\"listMaxWidth()\"\r\n [listItemClass]=\"listItemClass()\"\r\n [listItemStyle]=\"listItemStyle()\"\r\n [listClass]=\"listClass()\"\r\n [listStyle]=\"listStyle()\">\r\n @if (footerTemplate()) {\r\n <ng-template monaListFooterTemplate>\r\n <ng-container [ngTemplateOutlet]=\"footerTemplate() ?? null\"></ng-container>\r\n </ng-template>\r\n }\r\n @if (groupHeaderTemplate()) {\r\n <ng-template monaListGroupHeaderTemplate let-groupHeader>\r\n <ng-container\r\n [ngTemplateOutlet]=\"groupHeaderTemplate() ?? null\"\r\n [ngTemplateOutletContext]=\"{ $implicit: groupHeader }\"></ng-container>\r\n </ng-template>\r\n }\r\n @if (headerTemplate()) {\r\n <ng-template monaListHeaderTemplate>\r\n <ng-container [ngTemplateOutlet]=\"headerTemplate() ?? null\"></ng-container>\r\n </ng-template>\r\n }\r\n @if (itemTemplate()) {\r\n <ng-template monaListItemTemplate let-dataItem>\r\n <ng-container\r\n [ngTemplateOutlet]=\"itemTemplate() ?? null\"\r\n [ngTemplateOutletContext]=\"{ $implicit: dataItem }\"></ng-container>\r\n </ng-template>\r\n }\r\n @if (noDataTemplate()) {\r\n <ng-template monaListNoDataTemplate>\r\n <ng-container [ngTemplateOutlet]=\"noDataTemplate() ?? null\"></ng-container>\r\n </ng-template>\r\n }\r\n</mona-list>\r\n\r\n@let pageableOptions = listService.pageableOptions();\r\n@if (pageableOptions.enabled && !listService.virtualScrollOptions().enabled && viewItems().length > 0) {\r\n @let pageState = listService.pageState();\r\n <div class=\"mona-list-view-pager\">\r\n <mona-pager\r\n [firstLast]=\"pageableOptions.firstLast\"\r\n [pageSizeValues]=\"pageableOptions.pageSizeValues\"\r\n [visiblePages]=\"pageableOptions.visiblePages\"\r\n [total]=\"itemCount()\"\r\n [skip]=\"pageState.skip\"\r\n [responsive]=\"false\"\r\n [rounded]=\"rounded()\"\r\n [pageSize]=\"pageState.take\"\r\n [previousNext]=\"pageableOptions.previousNext\"\r\n [showInfo]=\"pageableOptions.showInfo\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"\r\n class=\"border-b-0 border-l-0 border-r-0 rounded-t-none\"></mona-pager>\r\n </div>\r\n}\r\n" }]
301
+ }, template: "<mona-list\n [ariaLabel]=\"ariaLabel()\"\n [data]=\"viewItems()\"\n [height]=\"listHeight()\"\n [width]=\"listWidth()\"\n [maxHeight]=\"listMaxHeight()\"\n [maxWidth]=\"listMaxWidth()\"\n [listItemClass]=\"listItemClass()\"\n [listItemStyle]=\"listItemStyle()\"\n [listClass]=\"listClass()\"\n [listStyle]=\"listStyle()\">\n @if (footerTemplate()) {\n <ng-template monaListFooterTemplate>\n <ng-container [ngTemplateOutlet]=\"footerTemplate() ?? null\"></ng-container>\n </ng-template>\n }\n @if (groupHeaderTemplate()) {\n <ng-template monaListGroupHeaderTemplate let-groupHeader>\n <ng-container\n [ngTemplateOutlet]=\"groupHeaderTemplate() ?? null\"\n [ngTemplateOutletContext]=\"{ $implicit: groupHeader }\"></ng-container>\n </ng-template>\n }\n @if (headerTemplate()) {\n <ng-template monaListHeaderTemplate>\n <ng-container [ngTemplateOutlet]=\"headerTemplate() ?? null\"></ng-container>\n </ng-template>\n }\n @if (itemTemplate()) {\n <ng-template monaListItemTemplate let-dataItem>\n <ng-container\n [ngTemplateOutlet]=\"itemTemplate() ?? null\"\n [ngTemplateOutletContext]=\"{ $implicit: dataItem }\"></ng-container>\n </ng-template>\n }\n @if (noDataTemplate()) {\n <ng-template monaListNoDataTemplate>\n <ng-container [ngTemplateOutlet]=\"noDataTemplate() ?? null\"></ng-container>\n </ng-template>\n }\n</mona-list>\n\n@let pageableOptions = listService.pageableOptions();\n@if (pageableOptions.enabled && !listService.virtualScrollOptions().enabled && viewItems().length > 0) {\n @let pageState = listService.pageState();\n <div class=\"mona-list-view-pager\">\n <mona-pager\n [firstLast]=\"pageableOptions.firstLast\"\n [pageSizeValues]=\"pageableOptions.pageSizeValues\"\n [visiblePages]=\"pageableOptions.visiblePages\"\n [total]=\"itemCount()\"\n [skip]=\"pageState.skip\"\n [responsive]=\"false\"\n [rounded]=\"rounded()\"\n [pageSize]=\"pageState.take\"\n [previousNext]=\"pageableOptions.previousNext\"\n [showInfo]=\"pageableOptions.showInfo\"\n (pageChange)=\"onPageChange($event)\"\n (pageSizeChange)=\"onPageSizeChange($event)\"\n class=\"border-b-0 border-l-0 border-r-0 rounded-t-none\"></mona-pager>\n </div>\n}\n" }]
315
302
  }], ctorParameters: () => [], propDecorators: { footerTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => ListViewFooterTemplateDirective), { ...{ read: TemplateRef }, isSignal: true }] }], groupHeaderTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => ListViewGroupHeaderTemplateDirective), { ...{ read: TemplateRef }, isSignal: true }] }], headerTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => ListViewHeaderTemplateDirective), { ...{ read: TemplateRef }, isSignal: true }] }], itemTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => ListViewItemTemplateDirective), { ...{ read: TemplateRef }, isSignal: true }] }], noDataTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => ListViewNoDataTemplateDirective), { ...{ read: TemplateRef }, isSignal: true }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }], height: [{ type: i0.Input, args: [{ isSignal: true, alias: "height", required: false }] }], listClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "listClass", required: false }] }], listItemClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "listItemClass", required: false }] }], listItemStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "listItemStyle", required: false }] }], listStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "listStyle", required: false }] }], items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], maxHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxHeight", required: false }] }], maxWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxWidth", required: false }] }], rounded: [{ type: i0.Input, args: [{ isSignal: true, alias: "rounded", required: false }] }], scrollBottom: [{ type: i0.Output, args: ["scrollBottom"] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], textField: [{ type: i0.Input, args: [{ isSignal: true, alias: "textField", required: false }] }], userClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }] } });
316
303
 
317
304
  class ListViewGroupableDirective {