@mmlogic/components 0.3.4 → 0.3.6

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 (173) hide show
  1. package/dist/{collection/utils/cell-renderer.js → mosterdcomponents/cell-renderer-CbRwLOo8.js} +9 -3
  2. package/dist/mosterdcomponents/cell-renderer-CbRwLOo8.js.map +1 -0
  3. package/dist/{esm/index.js → mosterdcomponents/client-layout-D88nn5zf.js} +4 -1
  4. package/dist/mosterdcomponents/client-layout-D88nn5zf.js.map +1 -0
  5. package/dist/{collection/utils/format.js → mosterdcomponents/format-BAfsQfy1.js} +12 -7
  6. package/dist/mosterdcomponents/format-BAfsQfy1.js.map +1 -0
  7. package/dist/{collection/utils/i18n.js → mosterdcomponents/i18n-hoGGKbKU.js} +6 -1
  8. package/dist/mosterdcomponents/i18n-hoGGKbKU.js.map +1 -0
  9. package/dist/mosterdcomponents/index-B_tPFIvS.js +4585 -0
  10. package/dist/mosterdcomponents/index-B_tPFIvS.js.map +1 -0
  11. package/dist/mosterdcomponents/index-I5SuYv7a.js +4 -0
  12. package/dist/mosterdcomponents/index-I5SuYv7a.js.map +1 -0
  13. package/dist/mosterdcomponents/index.esm.js +5 -1
  14. package/dist/mosterdcomponents/index.esm.js.map +1 -0
  15. package/dist/mosterdcomponents/mosterdcomponents.css +180 -1
  16. package/dist/mosterdcomponents/mosterdcomponents.esm.js +50 -1
  17. package/dist/mosterdcomponents/mosterdcomponents.esm.js.map +1 -0
  18. package/dist/mosterdcomponents/mrd-boolean-field.entry.js +37 -0
  19. package/dist/mosterdcomponents/mrd-boolean-field.entry.js.map +1 -0
  20. package/dist/mosterdcomponents/mrd-currency-field.entry.js +67 -0
  21. package/dist/mosterdcomponents/mrd-currency-field.entry.js.map +1 -0
  22. package/dist/mosterdcomponents/mrd-date-field.entry.js +46 -0
  23. package/dist/mosterdcomponents/mrd-date-field.entry.js.map +1 -0
  24. package/dist/mosterdcomponents/mrd-datetime-field.entry.js +78 -0
  25. package/dist/mosterdcomponents/mrd-datetime-field.entry.js.map +1 -0
  26. package/dist/mosterdcomponents/mrd-email-field.entry.js +50 -0
  27. package/dist/mosterdcomponents/mrd-email-field.entry.js.map +1 -0
  28. package/dist/{collection/components/mrd-field/mrd-field.js → mosterdcomponents/mrd-field.entry.js} +28 -179
  29. package/dist/mosterdcomponents/mrd-field.entry.js.map +1 -0
  30. package/dist/mosterdcomponents/mrd-file-field.entry.js +108 -0
  31. package/dist/mosterdcomponents/mrd-file-field.entry.js.map +1 -0
  32. package/dist/{collection/components/mrd-form/mrd-form.js → mosterdcomponents/mrd-form.entry.js} +82 -280
  33. package/dist/mosterdcomponents/mrd-form.entry.js.map +1 -0
  34. package/dist/mosterdcomponents/mrd-hyperlink-field.entry.js +87 -0
  35. package/dist/mosterdcomponents/mrd-hyperlink-field.entry.js.map +1 -0
  36. package/dist/mosterdcomponents/mrd-image-field.entry.js +122 -0
  37. package/dist/mosterdcomponents/mrd-image-field.entry.js.map +1 -0
  38. package/dist/{collection/components/mrd-layout-section/mrd-layout-section.js → mosterdcomponents/mrd-layout-section.entry.js} +31 -418
  39. package/dist/mosterdcomponents/mrd-layout-section.entry.js.map +1 -0
  40. package/dist/mosterdcomponents/mrd-list-field.entry.js +107 -0
  41. package/dist/mosterdcomponents/mrd-list-field.entry.js.map +1 -0
  42. package/dist/mosterdcomponents/mrd-longtext-field.entry.js +47 -0
  43. package/dist/mosterdcomponents/mrd-longtext-field.entry.js.map +1 -0
  44. package/dist/mosterdcomponents/mrd-number-field.entry.js +87 -0
  45. package/dist/mosterdcomponents/mrd-number-field.entry.js.map +1 -0
  46. package/dist/mosterdcomponents/mrd-relation-field.entry.js +267 -0
  47. package/dist/mosterdcomponents/mrd-relation-field.entry.js.map +1 -0
  48. package/dist/mosterdcomponents/mrd-secret-field.entry.js +49 -0
  49. package/dist/mosterdcomponents/mrd-secret-field.entry.js.map +1 -0
  50. package/dist/{collection/components/mrd-table/mrd-table.js → mosterdcomponents/mrd-table.entry.js} +67 -398
  51. package/dist/mosterdcomponents/mrd-table.entry.js.map +1 -0
  52. package/dist/mosterdcomponents/mrd-text-field.entry.js +47 -0
  53. package/dist/mosterdcomponents/mrd-text-field.entry.js.map +1 -0
  54. package/dist/mosterdcomponents/mrd-textarea-field.entry.js +86 -0
  55. package/dist/mosterdcomponents/mrd-textarea-field.entry.js.map +1 -0
  56. package/dist/mosterdcomponents/mrd-time-field.entry.js +46 -0
  57. package/dist/mosterdcomponents/mrd-time-field.entry.js.map +1 -0
  58. package/dist/{esm/quill-CiuCgGz_.js → mosterdcomponents/quill-C9pgw_k-.js} +16282 -1397
  59. package/dist/mosterdcomponents/quill-C9pgw_k-.js.map +1 -0
  60. package/dist/{collection/utils/validation.js → mosterdcomponents/validation-ixb43cqU.js} +12 -5
  61. package/dist/mosterdcomponents/validation-ixb43cqU.js.map +1 -0
  62. package/dist/types/components/mrd-form/mrd-form.d.ts +13 -1
  63. package/dist/types/components/mrd-relation-field/mrd-relation-field.d.ts +3 -0
  64. package/dist/types/components/mrd-table/mrd-table.d.ts +4 -0
  65. package/dist/types/components.d.ts +19 -9
  66. package/package.json +1 -1
  67. package/dist/cjs/app-globals-V2Kpy_OQ.js +0 -5
  68. package/dist/cjs/index-BPj2cBXs.js +0 -1570
  69. package/dist/cjs/index.cjs.js +0 -66
  70. package/dist/cjs/loader.cjs.js +0 -13
  71. package/dist/cjs/mosterdcomponents.cjs.js +0 -25
  72. package/dist/cjs/mrd-boolean-field_20.cjs.entry.js +0 -3848
  73. package/dist/cjs/quill-DmFfnC1f.js +0 -16272
  74. package/dist/collection/collection-manifest.json +0 -32
  75. package/dist/collection/components/mrd-boolean-field/mrd-boolean-field.js +0 -199
  76. package/dist/collection/components/mrd-boolean-field/mrd-boolean-field.scss +0 -77
  77. package/dist/collection/components/mrd-currency-field/mrd-currency-field.js +0 -248
  78. package/dist/collection/components/mrd-currency-field/mrd-currency-field.scss +0 -100
  79. package/dist/collection/components/mrd-date-field/mrd-date-field.js +0 -206
  80. package/dist/collection/components/mrd-date-field/mrd-date-field.scss +0 -66
  81. package/dist/collection/components/mrd-datetime-field/mrd-datetime-field.js +0 -240
  82. package/dist/collection/components/mrd-datetime-field/mrd-datetime-field.scss +0 -66
  83. package/dist/collection/components/mrd-email-field/mrd-email-field.js +0 -230
  84. package/dist/collection/components/mrd-email-field/mrd-email-field.scss +0 -69
  85. package/dist/collection/components/mrd-field/mrd-field.scss +0 -118
  86. package/dist/collection/components/mrd-file-field/mrd-file-field.js +0 -341
  87. package/dist/collection/components/mrd-file-field/mrd-file-field.scss +0 -153
  88. package/dist/collection/components/mrd-form/mrd-form.scss +0 -148
  89. package/dist/collection/components/mrd-hyperlink-field/mrd-hyperlink-field.js +0 -291
  90. package/dist/collection/components/mrd-hyperlink-field/mrd-hyperlink-field.scss +0 -91
  91. package/dist/collection/components/mrd-image-field/mrd-image-field.js +0 -356
  92. package/dist/collection/components/mrd-image-field/mrd-image-field.scss +0 -190
  93. package/dist/collection/components/mrd-layout-section/mrd-layout-section.scss +0 -445
  94. package/dist/collection/components/mrd-list-field/mrd-list-field.js +0 -313
  95. package/dist/collection/components/mrd-list-field/mrd-list-field.scss +0 -109
  96. package/dist/collection/components/mrd-longtext-field/mrd-longtext-field.js +0 -227
  97. package/dist/collection/components/mrd-longtext-field/mrd-longtext-field.scss +0 -78
  98. package/dist/collection/components/mrd-number-field/mrd-number-field.js +0 -316
  99. package/dist/collection/components/mrd-number-field/mrd-number-field.scss +0 -77
  100. package/dist/collection/components/mrd-relation-field/mrd-relation-field.js +0 -678
  101. package/dist/collection/components/mrd-relation-field/mrd-relation-field.scss +0 -266
  102. package/dist/collection/components/mrd-secret-field/mrd-secret-field.js +0 -229
  103. package/dist/collection/components/mrd-secret-field/mrd-secret-field.scss +0 -73
  104. package/dist/collection/components/mrd-table/mrd-table.scss +0 -742
  105. package/dist/collection/components/mrd-text-field/mrd-text-field.js +0 -227
  106. package/dist/collection/components/mrd-text-field/mrd-text-field.scss +0 -69
  107. package/dist/collection/components/mrd-textarea-field/mrd-textarea-field.js +0 -267
  108. package/dist/collection/components/mrd-textarea-field/mrd-textarea-field.scss +0 -79
  109. package/dist/collection/components/mrd-time-field/mrd-time-field.js +0 -206
  110. package/dist/collection/components/mrd-time-field/mrd-time-field.scss +0 -66
  111. package/dist/collection/dev/api.js +0 -136
  112. package/dist/collection/dev/app.js +0 -868
  113. package/dist/collection/dev/auth.js +0 -156
  114. package/dist/collection/dev/example-data.js +0 -403
  115. package/dist/collection/dev/sprites.svg +0 -55
  116. package/dist/collection/index.js +0 -1
  117. package/dist/collection/types/client-layout.js +0 -64
  118. package/dist/collection/types/index.js +0 -1
  119. package/dist/components/client-layout.js +0 -1
  120. package/dist/components/format.js +0 -1
  121. package/dist/components/i18n.js +0 -1
  122. package/dist/components/index.js +0 -1
  123. package/dist/components/mrd-boolean-field.js +0 -1
  124. package/dist/components/mrd-boolean-field2.js +0 -1
  125. package/dist/components/mrd-currency-field.js +0 -1
  126. package/dist/components/mrd-currency-field2.js +0 -1
  127. package/dist/components/mrd-date-field.js +0 -1
  128. package/dist/components/mrd-date-field2.js +0 -1
  129. package/dist/components/mrd-datetime-field.js +0 -1
  130. package/dist/components/mrd-datetime-field2.js +0 -1
  131. package/dist/components/mrd-email-field.js +0 -1
  132. package/dist/components/mrd-email-field2.js +0 -1
  133. package/dist/components/mrd-field.js +0 -1
  134. package/dist/components/mrd-field2.js +0 -1
  135. package/dist/components/mrd-file-field.js +0 -1
  136. package/dist/components/mrd-file-field2.js +0 -1
  137. package/dist/components/mrd-form.js +0 -1
  138. package/dist/components/mrd-hyperlink-field.js +0 -1
  139. package/dist/components/mrd-hyperlink-field2.js +0 -1
  140. package/dist/components/mrd-image-field.js +0 -1
  141. package/dist/components/mrd-image-field2.js +0 -1
  142. package/dist/components/mrd-layout-section.js +0 -1
  143. package/dist/components/mrd-list-field.js +0 -1
  144. package/dist/components/mrd-list-field2.js +0 -1
  145. package/dist/components/mrd-longtext-field.js +0 -1
  146. package/dist/components/mrd-longtext-field2.js +0 -1
  147. package/dist/components/mrd-number-field.js +0 -1
  148. package/dist/components/mrd-number-field2.js +0 -1
  149. package/dist/components/mrd-relation-field.js +0 -1
  150. package/dist/components/mrd-relation-field2.js +0 -1
  151. package/dist/components/mrd-secret-field.js +0 -1
  152. package/dist/components/mrd-secret-field2.js +0 -1
  153. package/dist/components/mrd-table.js +0 -1
  154. package/dist/components/mrd-table2.js +0 -1
  155. package/dist/components/mrd-text-field.js +0 -1
  156. package/dist/components/mrd-text-field2.js +0 -1
  157. package/dist/components/mrd-textarea-field.js +0 -1
  158. package/dist/components/mrd-textarea-field2.js +0 -1
  159. package/dist/components/mrd-time-field.js +0 -1
  160. package/dist/components/mrd-time-field2.js +0 -1
  161. package/dist/components/quill.js +0 -1
  162. package/dist/components/validation.js +0 -1
  163. package/dist/esm/app-globals-DQuL1Twl.js +0 -3
  164. package/dist/esm/index-_tsCCkAi.js +0 -1561
  165. package/dist/esm/loader.js +0 -11
  166. package/dist/esm/mosterdcomponents.js +0 -21
  167. package/dist/esm/mrd-boolean-field_20.entry.js +0 -3827
  168. package/dist/index.cjs.js +0 -1
  169. package/dist/index.js +0 -1
  170. package/dist/mosterdcomponents/p-CiuCgGz_.js +0 -1
  171. package/dist/mosterdcomponents/p-DQuL1Twl.js +0 -1
  172. package/dist/mosterdcomponents/p-_tsCCkAi.js +0 -2
  173. package/dist/mosterdcomponents/p-c9839596.entry.js +0 -1
@@ -1,7 +1,11 @@
1
- import { h, Host } from "@stencil/core";
2
- import { CellRenderer } from "../../utils/cell-renderer";
3
- import { t } from "../../utils/i18n";
4
- import { formatNumber, formatPercentage, formatCurrency } from "../../utils/format";
1
+ import { r as registerInstance, a as createEvent, h, d as Host, e as getElement } from './index-B_tPFIvS.js';
2
+ import { C as CellRenderer } from './cell-renderer-CbRwLOo8.js';
3
+ import { t } from './i18n-hoGGKbKU.js';
4
+ import { a as formatNumber, b as formatPercentage, c as formatCurrency } from './format-BAfsQfy1.js';
5
+ import './client-layout-D88nn5zf.js';
6
+
7
+ const mrdTableScss = () => `.sc-mrd-table-h{display:block;width:100%}.mrd-table__scroll.sc-mrd-table{overflow-y:auto;overflow-x:auto;border:1px solid var(--mrd-border-color);border-radius:var(--mrd-border-radius);overflow-anchor:none}.mrd-table.sc-mrd-table{overflow-x:auto}.mrd-table__table.sc-mrd-table{width:auto;min-width:100%;border-collapse:collapse;font-size:var(--mrd-font-size-sm);color:var(--mrd-color-neutral-900)}.mrd-table__scroll.sc-mrd-table .mrd-table__table.sc-mrd-table{min-width:max-content}.mrd-table__header.sc-mrd-table{position:sticky;top:0;z-index:1;background:var(--mrd-color-white);text-align:left;padding:var(--mrd-space-2) var(--mrd-space-4);border-bottom:2px solid var(--mrd-border-color);color:var(--mrd-color-neutral-600);font-weight:var(--mrd-font-weight-medium);white-space:nowrap;font-size:var(--mrd-font-size-xs);text-transform:uppercase;letter-spacing:0.04em}.mrd-table__header--sortable.sc-mrd-table{cursor:pointer;user-select:none}.mrd-table__header--sortable.sc-mrd-table:hover{background:var(--mrd-color-neutral-50);color:var(--mrd-color-neutral-800)}.mrd-table__header--sorted-asc.sc-mrd-table,.mrd-table__header--sorted-desc.sc-mrd-table{color:var(--mrd-color-primary);border-bottom-color:var(--mrd-color-primary)}.mrd-table__header-label.sc-mrd-table{margin-right:var(--mrd-space-1)}.mrd-table__sort-icon.sc-mrd-table{font-size:0.85rem;opacity:0.4;vertical-align:middle}.mrd-table__header--sorted-asc.sc-mrd-table .mrd-table__sort-icon.sc-mrd-table,.mrd-table__header--sorted-desc.sc-mrd-table .mrd-table__sort-icon.sc-mrd-table{opacity:1;color:var(--mrd-color-primary)}.mrd-table__filter-icon.sc-mrd-table{display:inline-flex;align-items:center;vertical-align:middle;margin-left:var(--mrd-space-1);color:var(--mrd-color-primary)}.mrd-table__row.sc-mrd-table{border-bottom:1px solid var(--mrd-border-color)}.mrd-table__row.sc-mrd-table:hover{background:var(--mrd-color-neutral-200) !important}.mrd-table__row--clickable.sc-mrd-table{cursor:pointer}.mrd-table__spacer.sc-mrd-table{border:none}.mrd-table__spacer.sc-mrd-table td.sc-mrd-table{padding:0;border:none}.mrd-table__cell.sc-mrd-table{padding:var(--mrd-space-2) var(--mrd-space-4);vertical-align:top;white-space:nowrap}.mrd-table__cell--numeric.sc-mrd-table{text-align:right;font-variant-numeric:tabular-nums}.mrd-table__row--loading.sc-mrd-table{background:transparent}.mrd-table__cell--placeholder.sc-mrd-table{padding:var(--mrd-space-2) var(--mrd-space-4);border-bottom:1px solid var(--mrd-border-color)}.mrd-table__placeholder-bar.sc-mrd-table{display:block;height:0.75rem;width:55%;border-radius:var(--mrd-border-radius-sm);background:linear-gradient( 90deg, var(--mrd-color-neutral-200) 25%, var(--mrd-color-neutral-100) 50%, var(--mrd-color-neutral-200) 75% );background-size:200% 100%;animation:mrd-shimmer 1.4s ease infinite}@keyframes mrd-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}.mrd-table__toolbar.sc-mrd-table{display:flex;align-items:center;justify-content:space-between;padding-bottom:var(--mrd-space-2)}.mrd-table__toolbar-left.sc-mrd-table,.mrd-table__toolbar-right.sc-mrd-table{display:flex;gap:var(--mrd-space-2);align-items:center}.mrd-table__toolbar-center.sc-mrd-table{flex:1;display:flex;justify-content:center;align-items:center;gap:var(--mrd-space-1)}.mrd-table__view-switcher.sc-mrd-table{display:flex;align-items:center;gap:var(--mrd-space-1)}.mrd-table__view-arrow.sc-mrd-table{background:none;border:none;cursor:pointer;padding:0 var(--mrd-space-1);color:var(--mrd-color-neutral-500);font-size:var(--mrd-font-size-xs);line-height:1}.mrd-table__view-arrow.sc-mrd-table:hover{color:var(--mrd-color-neutral-800)}.mrd-table__view-title-wrap.sc-mrd-table{position:relative}.mrd-table__view-title.sc-mrd-table{font-size:var(--mrd-font-size-sm);font-weight:600;color:var(--mrd-color-neutral-800);font-family:var(--mrd-font-family);background:none;border:none;outline:none;cursor:pointer;padding:0 var(--mrd-space-1);max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mrd-table__view-title.sc-mrd-table:hover{color:var(--mrd-color-primary)}.mrd-table__view-popover.sc-mrd-table{position:absolute;top:calc(100% + var(--mrd-space-1));left:50%;transform:translateX(-50%);background:var(--mrd-color-white);border:1px solid var(--mrd-color-neutral-200);border-radius:var(--mrd-radius-md);box-shadow:var(--mrd-shadow-md);z-index:100;min-width:160px;padding:var(--mrd-space-1) 0}.mrd-table__view-popover-item.sc-mrd-table{display:block;width:100%;text-align:left;background:none;border:none;cursor:pointer;padding:var(--mrd-space-2) var(--mrd-space-3);font-size:var(--mrd-font-size-sm);font-family:var(--mrd-font-family);color:var(--mrd-color-neutral-700);white-space:nowrap}.mrd-table__view-popover-item.sc-mrd-table:hover{background:var(--mrd-color-neutral-50)}.mrd-table__view-popover-item--active.sc-mrd-table{font-weight:600;color:var(--mrd-color-primary)}.mrd-table__action.sc-mrd-table{position:relative;display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;background:transparent;border:1px solid transparent;border-radius:var(--mrd-border-radius);cursor:pointer;color:var(--mrd-color-neutral-400);transition:background-color 0.15s, border-color 0.15s, color 0.15s}.mrd-table__action.sc-mrd-table:hover{background-color:var(--mrd-color-neutral-100);border-color:var(--mrd-color-neutral-300);color:var(--mrd-color-neutral-700)}.mrd-table__action.sc-mrd-table:disabled{opacity:0.4;cursor:not-allowed}.mrd-table__action--primary.sc-mrd-table{color:var(--mrd-color-neutral-500)}.mrd-table__action--primary.sc-mrd-table:hover{background:var(--mrd-color-primary);border-color:var(--mrd-color-primary);color:var(--mrd-color-white)}.mrd-table__action--danger.sc-mrd-table{color:var(--mrd-color-error)}.mrd-table__action--danger.sc-mrd-table:hover{background-color:var(--mrd-color-error-light, #fef2f2);border-color:var(--mrd-color-error)}.mrd-table__action-icon.sc-mrd-table{width:1.25rem;height:1.25rem;pointer-events:none;fill:currentColor}.mrd-table__action-tooltip.sc-mrd-table{display:none;position:absolute;bottom:calc(100% + 6px);right:0;padding:var(--mrd-space-1) var(--mrd-space-2);font-size:var(--mrd-font-size-xs);white-space:nowrap;background:var(--mrd-color-tooltip, #fffce1);color:var(--mrd-color-neutral-900);border:1px solid var(--mrd-border-color);border-radius:var(--mrd-border-radius-sm, var(--mrd-border-radius));pointer-events:none;z-index:10}.mrd-table__action.sc-mrd-table:hover .mrd-table__action-tooltip.sc-mrd-table{display:block}.mrd-table__create-picker-wrap.sc-mrd-table{position:relative}.mrd-table__create-picker.sc-mrd-table{position:absolute;right:0;top:calc(100% + 4px);background:var(--mrd-color-white, #fff);border:1px solid var(--mrd-border-color);border-radius:var(--mrd-border-radius);box-shadow:var(--mrd-shadow-md, 0 4px 12px rgba(0, 0, 0, 0.12));z-index:10;min-width:10rem;padding:var(--mrd-space-1) 0}.mrd-table__create-picker-item.sc-mrd-table{display:block;width:100%;text-align:left;padding:var(--mrd-space-2) var(--mrd-space-3);background:none;border:none;cursor:pointer;font-size:var(--mrd-font-size-sm);font-family:var(--mrd-font-family);color:var(--mrd-color-neutral-800)}.mrd-table__create-picker-item.sc-mrd-table:hover{background:var(--mrd-color-neutral-50);color:var(--mrd-color-neutral-900)}.mrd-table__filter-toggle--active.sc-mrd-table{background:var(--mrd-color-primary);border-color:var(--mrd-color-primary);color:var(--mrd-color-white)}.mrd-table__filter-toggle--active.sc-mrd-table:hover{background:var(--mrd-color-primary-dark, var(--mrd-color-primary));border-color:var(--mrd-color-primary-dark, var(--mrd-color-primary));color:var(--mrd-color-white)}.mrd-table__filter-badge.sc-mrd-table{position:absolute;top:-6px;right:-6px;min-width:1.25rem;height:1.25rem;padding:0 3px;background:var(--mrd-color-error, #e53e3e);color:var(--mrd-color-white);border-radius:9999px;font-size:0.65rem;font-weight:var(--mrd-font-weight-medium);line-height:1.25rem;text-align:center;pointer-events:none}.mrd-table__header--filtered.sc-mrd-table{color:var(--mrd-color-primary);border-bottom-color:var(--mrd-color-primary)}.mrd-table__filter-popup.sc-mrd-table{position:fixed;width:280px;background:var(--mrd-color-white);border:1px solid var(--mrd-border-color);border-radius:var(--mrd-border-radius);box-shadow:var(--mrd-shadow-md, 0 4px 12px rgba(0,0,0,.12));z-index:var(--mrd-z-dropdown, 200);font-size:var(--mrd-font-size-sm)}.mrd-table__filter-popup-header.sc-mrd-table{display:flex;align-items:center;justify-content:space-between;padding:var(--mrd-space-2) var(--mrd-space-3);border-bottom:1px solid var(--mrd-border-color)}.mrd-table__filter-popup-title.sc-mrd-table{font-weight:var(--mrd-font-weight-medium);color:var(--mrd-color-neutral-800);font-size:var(--mrd-font-size-sm)}.mrd-table__filter-close.sc-mrd-table{background:transparent;border:none;cursor:pointer;color:var(--mrd-color-neutral-500);font-size:0.9rem;padding:2px 4px;border-radius:3px;line-height:1}.mrd-table__filter-close.sc-mrd-table:hover{background:var(--mrd-color-neutral-100);color:var(--mrd-color-neutral-800)}.mrd-table__filter-section.sc-mrd-table{padding:var(--mrd-space-2) var(--mrd-space-3)}.mrd-table__filter-section-label.sc-mrd-table{font-size:var(--mrd-font-size-xs);font-weight:var(--mrd-font-weight-medium);text-transform:uppercase;letter-spacing:0.04em;color:var(--mrd-color-neutral-500);margin-bottom:var(--mrd-space-2)}.mrd-table__filter-sort-buttons.sc-mrd-table{display:flex;gap:var(--mrd-space-2)}.mrd-table__filter-sort-btn.sc-mrd-table{flex:1;padding:var(--mrd-space-1) var(--mrd-space-2);background:transparent;border:1px solid var(--mrd-border-color);border-radius:var(--mrd-border-radius);cursor:pointer;font-size:var(--mrd-font-size-xs);color:var(--mrd-color-neutral-700)}.mrd-table__filter-sort-btn.sc-mrd-table:hover{background:var(--mrd-color-neutral-100)}.mrd-table__filter-sort-btn--active.sc-mrd-table{background:var(--mrd-color-primary);border-color:var(--mrd-color-primary);color:var(--mrd-color-white)}.mrd-table__filter-divider.sc-mrd-table{height:1px;background:var(--mrd-border-color);margin:0}.mrd-table__filter-editor.sc-mrd-table{display:flex;flex-direction:column;gap:var(--mrd-space-2)}.mrd-table__filter-select.sc-mrd-table,.mrd-table__filter-input.sc-mrd-table{width:100%;padding:var(--mrd-space-1) var(--mrd-space-2);border:1px solid var(--mrd-border-color);border-radius:var(--mrd-border-radius);font-size:var(--mrd-font-size-sm);color:var(--mrd-color-neutral-900);background:var(--mrd-color-white);box-sizing:border-box}.mrd-table__filter-select.sc-mrd-table:focus,.mrd-table__filter-input.sc-mrd-table:focus{outline:none;border-color:var(--mrd-color-primary);box-shadow:0 0 0 2px rgba(0,0,0,.06)}.mrd-table__filter-range.sc-mrd-table{display:flex;align-items:center;gap:var(--mrd-space-1)}.mrd-table__filter-range.sc-mrd-table .mrd-table__filter-input.sc-mrd-table{flex:1;min-width:0}.mrd-table__filter-range-sep.sc-mrd-table{color:var(--mrd-color-neutral-400);flex-shrink:0}.mrd-table__filter-range--stacked.sc-mrd-table{flex-direction:column;align-items:stretch;gap:var(--mrd-space-2)}.mrd-table__filter-range-label.sc-mrd-table{font-size:var(--mrd-font-size-xs);color:var(--mrd-color-neutral-500);margin-bottom:2px}.mrd-table__filter-radio-group.sc-mrd-table{display:flex;flex-direction:column;gap:var(--mrd-space-1)}.mrd-table__filter-radio-group--inline.sc-mrd-table{flex-direction:row;gap:var(--mrd-space-3)}.mrd-table__filter-radio-label.sc-mrd-table{display:flex;align-items:center;gap:var(--mrd-space-1);cursor:pointer;font-size:var(--mrd-font-size-sm);color:var(--mrd-color-neutral-800)}.mrd-table__filter-list.sc-mrd-table{display:flex;flex-direction:column;gap:var(--mrd-space-1);max-height:180px;overflow-y:auto}.mrd-table__filter-list-controls.sc-mrd-table{display:flex;gap:var(--mrd-space-2);margin-bottom:var(--mrd-space-1)}.mrd-table__filter-list-btn.sc-mrd-table{font-size:var(--mrd-font-size-xs);color:var(--mrd-color-primary);background:transparent;border:none;cursor:pointer;padding:0;text-decoration:underline}.mrd-table__filter-checkbox-label.sc-mrd-table{display:flex;align-items:center;gap:var(--mrd-space-1);cursor:pointer;font-size:var(--mrd-font-size-sm);color:var(--mrd-color-neutral-800)}.mrd-table__filter-no-support.sc-mrd-table{font-size:var(--mrd-font-size-sm);color:var(--mrd-color-neutral-500);margin:0;font-style:italic}.mrd-table__filter-popup-footer.sc-mrd-table{display:flex;justify-content:flex-end;gap:var(--mrd-space-2);padding:var(--mrd-space-2) var(--mrd-space-3);border-top:1px solid var(--mrd-border-color)}.mrd-table__filter-btn.sc-mrd-table{padding:var(--mrd-space-1) var(--mrd-space-3);border-radius:var(--mrd-border-radius);border:1px solid var(--mrd-border-color);font-size:var(--mrd-font-size-sm);cursor:pointer}.mrd-table__filter-btn--clear.sc-mrd-table{background:transparent;color:var(--mrd-color-neutral-600)}.mrd-table__filter-btn--clear.sc-mrd-table:hover{background:var(--mrd-color-neutral-100)}.mrd-table__filter-btn--apply.sc-mrd-table{background:var(--mrd-color-primary);border-color:var(--mrd-color-primary);color:var(--mrd-color-white)}.mrd-table__filter-btn--apply.sc-mrd-table:hover{background:var(--mrd-color-primary-dark, var(--mrd-color-primary));border-color:var(--mrd-color-primary-dark, var(--mrd-color-primary))}.mrd-table__totals-row.sc-mrd-table{border-top:2px solid var(--mrd-border-color)}.mrd-table__totals-cell.sc-mrd-table{position:sticky;bottom:0;z-index:2;padding:var(--mrd-space-2) var(--mrd-space-4);background:var(--mrd-color-white);font-weight:var(--mrd-font-weight-medium);font-variant-numeric:tabular-nums;white-space:nowrap;border-top:2px solid var(--mrd-border-color)}.mrd-table__totals-cell--numeric.sc-mrd-table{text-align:right}.mrd-table__footer.sc-mrd-table{padding:var(--mrd-space-1) var(--mrd-space-2);font-size:var(--mrd-font-size-xs);color:var(--mrd-color-neutral-500);text-align:right}.mrd-table__empty.sc-mrd-table{padding:var(--mrd-space-4) var(--mrd-space-3);color:var(--mrd-color-neutral-500);font-size:var(--mrd-font-size-sm);text-align:center;margin:0}.mrd-table__file-btn.sc-mrd-table{display:inline-flex;align-items:center;gap:var(--mrd-space-1);background:none;border:none;padding:0;cursor:pointer;color:var(--mrd-color-primary);font-size:var(--mrd-font-size-sm);font-family:inherit;max-width:100%;overflow:hidden}.mrd-table__file-btn.sc-mrd-table:hover{text-decoration:underline;color:var(--mrd-color-primary-dark)}.mrd-table__file-icon.sc-mrd-table{flex-shrink:0;width:1rem;height:1rem}.mrd-table__textblock-btn.sc-mrd-table{display:inline;background:none;border:none;padding:0 0 0 var(--mrd-space-1);cursor:pointer;color:var(--mrd-color-primary);font-size:var(--mrd-font-size-sm);font-family:inherit;line-height:inherit;vertical-align:middle}.mrd-table__textblock-btn.sc-mrd-table:hover{color:var(--mrd-color-primary-dark)}.mrd-table__modal-backdrop.sc-mrd-table{position:fixed;inset:0;background:rgba(0, 0, 0, 0.4);z-index:var(--mrd-z-modal, 300);display:flex;align-items:center;justify-content:center}.mrd-table__modal.sc-mrd-table{background:#fff;border-radius:var(--mrd-radius-md, 0.5rem);padding:var(--mrd-space-6);max-width:min(600px, 90vw);max-height:70vh;overflow-y:auto;position:relative;box-shadow:var(--mrd-shadow-lg)}.mrd-table__modal-close.sc-mrd-table{position:absolute;top:var(--mrd-space-3);right:var(--mrd-space-3);background:none;border:none;cursor:pointer;font-size:1.25rem;line-height:1;color:var(--mrd-color-text-muted, #6b7280);padding:0}.mrd-table__modal-close.sc-mrd-table:hover{color:var(--mrd-color-text, #111827)}.mrd-table__modal-text.sc-mrd-table{margin:0;padding-right:var(--mrd-space-6);white-space:pre-wrap;word-break:break-word;font-size:var(--mrd-font-size-sm);line-height:1.6}.mrd-table__json-preview.sc-mrd-table{font-family:var(--mrd-font-family-mono);font-size:var(--mrd-font-size-xs);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;display:inline-block;max-width:calc(100% - 1.5rem);vertical-align:middle}.mrd-table__modal-json.sc-mrd-table{margin:0;padding-right:var(--mrd-space-6);font-family:var(--mrd-font-family-mono);font-size:var(--mrd-font-size-xs);white-space:pre-wrap;word-break:break-word;line-height:1.6;background:none;border:none}`;
8
+
5
9
  const BUFFER = 10;
6
10
  /** Wacht deze tijd (ms) na het laatste scroll-event voordat pagina's worden
7
11
  * aangevraagd. Pagina's die de gebruiker snel voorbij scrollt worden zo geskipt. */
@@ -14,14 +18,21 @@ const DATE_TYPES = new Set(['DATE', 'DATETIME', 'TIME']);
14
18
  const NO_FILTER_TYPES = new Set(['FILE', 'IMAGE']);
15
19
  /** Column types that cannot be sorted or filtered (not stored in PostgreSQL). */
16
20
  const NON_INTERACTIVE_TYPES = new Set(['LONGTEXT', 'JSON', 'FILE', 'IMAGE']);
17
- export class MrdTable {
18
- constructor() {
21
+ const MrdTable = class {
22
+ constructor(hostRef) {
23
+ registerInstance(this, hostRef);
24
+ this.mrdLoadPage = createEvent(this, "mrdLoadPage", 7);
25
+ this.mrdRowClick = createEvent(this, "mrdRowClick", 7);
26
+ this.mrdAction = createEvent(this, "mrdAction", 7);
27
+ this.mrdDownload = createEvent(this, "mrdDownload", 7);
28
+ this.mrdLoadAggregations = createEvent(this, "mrdLoadAggregations", 7);
19
29
  // ── Non-state internals ────────────────────────────────────────────────────
20
30
  this.pendingPages = new Set();
21
31
  this.debounceTimer = null;
22
32
  this.outsideClickHandler = null;
23
33
  this.keydownHandler = null;
24
34
  this.createPickerClickHandler = null;
35
+ this.viewPopoverClickHandler = null;
25
36
  // ── Props ──────────────────────────────────────────────────────────────────
26
37
  /** The VIEW or RELATED_VIEW layout item. Contains view config, dataClass, fromClass, actions etc. */
27
38
  this.item = null;
@@ -60,6 +71,8 @@ export class MrdTable {
60
71
  this.popupPos = { top: 0, left: 0 };
61
72
  /** Whether the create-type picker dropdown is open. */
62
73
  this.createPickerOpen = false;
74
+ /** Whether the view-switcher popover (full list) is open. */
75
+ this.viewPopoverOpen = false;
63
76
  /** Current scroll offset of the scroll container — drives pagination footer. */
64
77
  this.scrollTop = 0;
65
78
  /** Full text shown in the TEXTBLOCK expand modal (null = closed). */
@@ -204,6 +217,10 @@ export class MrdTable {
204
217
  document.removeEventListener('keydown', this.keydownHandler);
205
218
  this.keydownHandler = null;
206
219
  }
220
+ if (this.viewPopoverClickHandler) {
221
+ document.removeEventListener('click', this.viewPopoverClickHandler);
222
+ this.viewPopoverClickHandler = null;
223
+ }
207
224
  }
208
225
  componentDidRender() {
209
226
  if (this.colWidths.length === 0 && this.loadedPages.size > 0 && this.totalElements > 0) {
@@ -797,18 +814,41 @@ export class MrdTable {
797
814
  this.activeFilters = new Map();
798
815
  this.init();
799
816
  }
817
+ toggleViewPopover(e) {
818
+ e.stopPropagation();
819
+ if (this.viewPopoverOpen) {
820
+ this.viewPopoverOpen = false;
821
+ if (this.viewPopoverClickHandler) {
822
+ document.removeEventListener('click', this.viewPopoverClickHandler);
823
+ this.viewPopoverClickHandler = null;
824
+ }
825
+ return;
826
+ }
827
+ this.viewPopoverOpen = true;
828
+ this.viewPopoverClickHandler = () => {
829
+ this.viewPopoverOpen = false;
830
+ document.removeEventListener('click', this.viewPopoverClickHandler);
831
+ this.viewPopoverClickHandler = null;
832
+ };
833
+ document.addEventListener('click', this.viewPopoverClickHandler);
834
+ }
800
835
  // ── Render: toolbar ────────────────────────────────────────────────────────
801
836
  renderToolbar() {
837
+ var _a;
802
838
  const filterCount = this.activeFilters.size;
803
839
  const actions = this.tableActions;
804
840
  const allViews = this.allViews;
805
841
  const hasActions = actions.length > 0;
806
842
  const hasViewSwitcher = allViews.length > 1;
807
- return (h("div", { class: "mrd-table__toolbar" }, h("div", { class: "mrd-table__toolbar-left" }, h("button", { class: `mrd-table__action mrd-table__action--secondary mrd-table__filter-toggle${this.filterMode ? ' mrd-table__filter-toggle--active' : ''}`, onClick: () => this.handleFilterToggle() }, h("svg", { class: "mrd-table__action-icon", viewBox: "0 0 24 24", "aria-hidden": "true" }, h("path", { fill: "currentColor", d: "M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z" })), filterCount > 0 && h("span", { class: "mrd-table__filter-badge" }, filterCount), h("span", { class: "mrd-table__action-tooltip" }, this.filterMode ? t('table_filter_hide', this.locale) : t('table_filter', this.locale), filterCount > 0 ? ` (${filterCount} ${t('table_filter_active', this.locale)})` : '')), filterCount > 0 && (h("button", { class: "mrd-table__action mrd-table__action--secondary", onClick: () => this.clearAllFilters() }, h("svg", { class: "mrd-table__action-icon", viewBox: "0 0 24 24", "aria-hidden": "true" }, h("path", { fill: "currentColor", d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" })), h("span", { class: "mrd-table__action-tooltip" }, t('table_filter_clear_all', this.locale))))), hasViewSwitcher && (h("div", { class: "mrd-table__toolbar-center" }, h("select", { class: "mrd-table__view-select", onChange: (e) => {
808
- const idx = parseInt(e.target.value, 10);
809
- if (!isNaN(idx) && idx !== this.activeViewIdx)
810
- this.handleViewSwitch(idx);
811
- } }, allViews.map((v, i) => (h("option", { value: String(i), selected: i === this.activeViewIdx }, v.label)))))), hasActions && (h("div", { class: "mrd-table__toolbar-right" }, actions.map(a => {
843
+ return (h("div", { class: "mrd-table__toolbar" }, h("div", { class: "mrd-table__toolbar-left" }, h("button", { class: `mrd-table__action mrd-table__action--secondary mrd-table__filter-toggle${this.filterMode ? ' mrd-table__filter-toggle--active' : ''}`, onClick: () => this.handleFilterToggle() }, h("svg", { class: "mrd-table__action-icon", viewBox: "0 0 24 24", "aria-hidden": "true" }, h("path", { fill: "currentColor", d: "M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z" })), filterCount > 0 && h("span", { class: "mrd-table__filter-badge" }, filterCount), h("span", { class: "mrd-table__action-tooltip" }, this.filterMode ? t('table_filter_hide', this.locale) : t('table_filter', this.locale), filterCount > 0 ? ` (${filterCount} ${t('table_filter_active', this.locale)})` : '')), filterCount > 0 && (h("button", { class: "mrd-table__action mrd-table__action--secondary", onClick: () => this.clearAllFilters() }, h("svg", { class: "mrd-table__action-icon", viewBox: "0 0 24 24", "aria-hidden": "true" }, h("path", { fill: "currentColor", d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" })), h("span", { class: "mrd-table__action-tooltip" }, t('table_filter_clear_all', this.locale))))), hasViewSwitcher && (h("div", { class: "mrd-table__toolbar-center" }, h("div", { class: "mrd-table__view-switcher" }, h("button", { class: "mrd-table__view-arrow", "aria-label": "Previous view", onClick: () => this.handleViewSwitch((this.activeViewIdx - 1 + allViews.length) % allViews.length) }, "\u25C0"), h("div", { class: "mrd-table__view-title-wrap" }, h("button", { class: "mrd-table__view-title", onClick: (e) => this.toggleViewPopover(e) }, (_a = allViews[this.activeViewIdx]) === null || _a === void 0 ? void 0 : _a.label), this.viewPopoverOpen && (h("div", { class: "mrd-table__view-popover", onClick: (e) => e.stopPropagation() }, allViews.map((v, i) => (h("button", { key: String(i), class: `mrd-table__view-popover-item${i === this.activeViewIdx ? ' mrd-table__view-popover-item--active' : ''}`, onClick: () => {
844
+ if (i !== this.activeViewIdx)
845
+ this.handleViewSwitch(i);
846
+ this.viewPopoverOpen = false;
847
+ if (this.viewPopoverClickHandler) {
848
+ document.removeEventListener('click', this.viewPopoverClickHandler);
849
+ this.viewPopoverClickHandler = null;
850
+ }
851
+ } }, v.label)))))), h("button", { class: "mrd-table__view-arrow", "aria-label": "Next view", onClick: () => this.handleViewSwitch((this.activeViewIdx + 1) % allViews.length) }, "\u25B6")))), hasActions && (h("div", { class: "mrd-table__toolbar-right" }, actions.map(a => {
812
852
  var _a, _b, _c;
813
853
  const createTypes = a.action === 'create' ? (_a = this.item) === null || _a === void 0 ? void 0 : _a.createTypes : null;
814
854
  if (createTypes === null || createTypes === void 0 ? void 0 : createTypes.length) {
@@ -1062,390 +1102,19 @@ export class MrdTable {
1062
1102
  return null;
1063
1103
  return (h("div", { class: "mrd-table__modal-backdrop", onClick: () => this.closeJsonModal(), role: "dialog", "aria-modal": "true" }, h("div", { class: "mrd-table__modal", onClick: (e) => e.stopPropagation() }, h("button", { class: "mrd-table__modal-close", onClick: () => this.closeJsonModal(), "aria-label": t('close', this.locale) }, "\u2715"), h("pre", { class: "mrd-table__modal-json", innerHTML: this.jsonModal }))));
1064
1104
  }
1065
- static get is() { return "mrd-table"; }
1066
- static get encapsulation() { return "scoped"; }
1067
- static get originalStyleUrls() {
1068
- return {
1069
- "$": ["mrd-table.scss"]
1070
- };
1071
- }
1072
- static get styleUrls() {
1073
- return {
1074
- "$": ["mrd-table.css"]
1075
- };
1076
- }
1077
- static get properties() {
1078
- return {
1079
- "item": {
1080
- "type": "unknown",
1081
- "mutable": false,
1082
- "complexType": {
1083
- "original": "ClientLayoutItem | null",
1084
- "resolved": "ClientLayoutItem | null",
1085
- "references": {
1086
- "ClientLayoutItem": {
1087
- "location": "import",
1088
- "path": "../../types/client-layout",
1089
- "id": "src/types/client-layout.ts::ClientLayoutItem",
1090
- "referenceLocation": "ClientLayoutItem"
1091
- }
1092
- }
1093
- },
1094
- "required": false,
1095
- "optional": false,
1096
- "docs": {
1097
- "tags": [],
1098
- "text": "The VIEW or RELATED_VIEW layout item. Contains view config, dataClass, fromClass, actions etc."
1099
- },
1100
- "getter": false,
1101
- "setter": false,
1102
- "defaultValue": "null"
1103
- },
1104
- "parentId": {
1105
- "type": "string",
1106
- "mutable": false,
1107
- "complexType": {
1108
- "original": "string",
1109
- "resolved": "string",
1110
- "references": {}
1111
- },
1112
- "required": false,
1113
- "optional": false,
1114
- "docs": {
1115
- "tags": [],
1116
- "text": "Parent record id \u2014 required for RELATED_VIEW to build /{fromClass}/{parentId}/{dataClass}."
1117
- },
1118
- "getter": false,
1119
- "setter": false,
1120
- "reflect": false,
1121
- "attribute": "parent-id",
1122
- "defaultValue": "''"
1123
- },
1124
- "rows": {
1125
- "type": "unknown",
1126
- "mutable": false,
1127
- "complexType": {
1128
- "original": "Record<string, any>[]",
1129
- "resolved": "Record<string, any>[]",
1130
- "references": {
1131
- "Record": {
1132
- "location": "global",
1133
- "id": "global::Record"
1134
- }
1135
- }
1136
- },
1137
- "required": false,
1138
- "optional": false,
1139
- "docs": {
1140
- "tags": [],
1141
- "text": "Direct rows (non-paginated mode, used when totalElements === 0)."
1142
- },
1143
- "getter": false,
1144
- "setter": false,
1145
- "defaultValue": "[]"
1146
- },
1147
- "locale": {
1148
- "type": "string",
1149
- "mutable": false,
1150
- "complexType": {
1151
- "original": "string",
1152
- "resolved": "string",
1153
- "references": {}
1154
- },
1155
- "required": false,
1156
- "optional": false,
1157
- "docs": {
1158
- "tags": [],
1159
- "text": ""
1160
- },
1161
- "getter": false,
1162
- "setter": false,
1163
- "reflect": false,
1164
- "attribute": "locale",
1165
- "defaultValue": "navigator.language"
1166
- },
1167
- "totalElements": {
1168
- "type": "number",
1169
- "mutable": false,
1170
- "complexType": {
1171
- "original": "number",
1172
- "resolved": "number",
1173
- "references": {}
1174
- },
1175
- "required": false,
1176
- "optional": false,
1177
- "docs": {
1178
- "tags": [],
1179
- "text": "Total number of records across all pages. 0 = non-paginated mode."
1180
- },
1181
- "getter": false,
1182
- "setter": false,
1183
- "reflect": false,
1184
- "attribute": "total-elements",
1185
- "defaultValue": "0"
1186
- },
1187
- "pageSize": {
1188
- "type": "number",
1189
- "mutable": false,
1190
- "complexType": {
1191
- "original": "number",
1192
- "resolved": "number",
1193
- "references": {}
1194
- },
1195
- "required": false,
1196
- "optional": false,
1197
- "docs": {
1198
- "tags": [],
1199
- "text": "Records per page (must match the API page size)."
1200
- },
1201
- "getter": false,
1202
- "setter": false,
1203
- "reflect": false,
1204
- "attribute": "page-size",
1205
- "defaultValue": "20"
1206
- },
1207
- "rowHeight": {
1208
- "type": "number",
1209
- "mutable": false,
1210
- "complexType": {
1211
- "original": "number",
1212
- "resolved": "number",
1213
- "references": {}
1214
- },
1215
- "required": false,
1216
- "optional": false,
1217
- "docs": {
1218
- "tags": [],
1219
- "text": "Row height in px \u2014 used for spacer and scroll-position maths."
1220
- },
1221
- "getter": false,
1222
- "setter": false,
1223
- "reflect": false,
1224
- "attribute": "row-height",
1225
- "defaultValue": "36"
1226
- },
1227
- "tableHeight": {
1228
- "type": "number",
1229
- "mutable": false,
1230
- "complexType": {
1231
- "original": "number",
1232
- "resolved": "number",
1233
- "references": {}
1234
- },
1235
- "required": false,
1236
- "optional": false,
1237
- "docs": {
1238
- "tags": [],
1239
- "text": "Height of the scroll container in px."
1240
- },
1241
- "getter": false,
1242
- "setter": false,
1243
- "reflect": false,
1244
- "attribute": "table-height",
1245
- "defaultValue": "500"
1246
- }
1247
- };
1248
- }
1249
- static get states() {
1250
- return {
1251
- "activeViewIdx": {},
1252
- "loadedPages": {},
1253
- "requestedPages": {},
1254
- "renderStart": {},
1255
- "renderEnd": {},
1256
- "colWidths": {},
1257
- "sortField": {},
1258
- "sortDir": {},
1259
- "filterMode": {},
1260
- "activeFilters": {},
1261
- "openFilterCol": {},
1262
- "pendingFilter": {},
1263
- "popupPos": {},
1264
- "createPickerOpen": {},
1265
- "scrollTop": {},
1266
- "textblockModal": {},
1267
- "jsonModal": {},
1268
- "aggregations": {},
1269
- "aggregationsTotal": {},
1270
- "minKnownTotal": {}
1271
- };
1272
- }
1273
- static get events() {
1274
- return [{
1275
- "method": "mrdLoadPage",
1276
- "name": "mrdLoadPage",
1277
- "bubbles": true,
1278
- "cancelable": true,
1279
- "composed": true,
1280
- "docs": {
1281
- "tags": [],
1282
- "text": "Fired when a page needs to be fetched. Host fetches and calls setPage().\n`sort` is the raw query-param value, e.g. \"name\" or \"name,desc\"."
1283
- },
1284
- "complexType": {
1285
- "original": "{ page: number; sort: string; path: string; qs: string }",
1286
- "resolved": "{ page: number; sort: string; path: string; qs: string; }",
1287
- "references": {}
1288
- }
1289
- }, {
1290
- "method": "mrdRowClick",
1291
- "name": "mrdRowClick",
1292
- "bubbles": true,
1293
- "cancelable": true,
1294
- "composed": true,
1295
- "docs": {
1296
- "tags": [],
1297
- "text": "Fired when a data row is clicked. Detail is the full row object including _links."
1298
- },
1299
- "complexType": {
1300
- "original": "Record<string, any>",
1301
- "resolved": "any | string",
1302
- "references": {
1303
- "Record": {
1304
- "location": "global",
1305
- "id": "global::Record"
1306
- }
1307
- }
1308
- }
1309
- }, {
1310
- "method": "mrdAction",
1311
- "name": "mrdAction",
1312
- "bubbles": true,
1313
- "cancelable": true,
1314
- "composed": true,
1315
- "docs": {
1316
- "tags": [],
1317
- "text": "Fired when a toolbar action button is clicked.\nFor 'export': includes `path` (relative excel path) and `qs` (current sort+filter params).\nFor 'create': includes `dataClass` (target type) and `parentPath` (e.g. /buyers/123 for RELATED_VIEW)."
1318
- },
1319
- "complexType": {
1320
- "original": "{ action: string; path?: string; qs?: string; dataClass?: string; parentPath?: string | null; basicType?: string }",
1321
- "resolved": "{ action: string; path?: string | undefined; qs?: string | undefined; dataClass?: string | undefined; parentPath?: string | null | undefined; basicType?: string | undefined; }",
1322
- "references": {}
1323
- }
1324
- }, {
1325
- "method": "mrdDownload",
1326
- "name": "mrdDownload",
1327
- "bubbles": true,
1328
- "cancelable": true,
1329
- "composed": true,
1330
- "docs": {
1331
- "tags": [],
1332
- "text": "Fired when a FILE or IMAGE cell is clicked. Host resolves the href to a signed download URL."
1333
- },
1334
- "complexType": {
1335
- "original": "{ href: string; fileName: string }",
1336
- "resolved": "{ href: string; fileName: string; }",
1337
- "references": {}
1338
- }
1339
- }, {
1340
- "method": "mrdLoadAggregations",
1341
- "name": "mrdLoadAggregations",
1342
- "bubbles": true,
1343
- "cancelable": true,
1344
- "composed": true,
1345
- "docs": {
1346
- "tags": [],
1347
- "text": "Fired when aggregation totals need to be (re-)fetched.\n`aggQs` is a ready-to-use query string: active filters (no page/sort) + sum/avg/count params.\nHost calls the /aggregations endpoint and passes the result to setAggregations()."
1348
- },
1349
- "complexType": {
1350
- "original": "{ path: string; qs: string; aggQs: string }",
1351
- "resolved": "{ path: string; qs: string; aggQs: string; }",
1352
- "references": {}
1353
- }
1354
- }];
1355
- }
1356
- static get methods() {
1357
- return {
1358
- "init": {
1359
- "complexType": {
1360
- "signature": "() => Promise<void>",
1361
- "parameters": [],
1362
- "references": {
1363
- "Promise": {
1364
- "location": "global",
1365
- "id": "global::Promise"
1366
- },
1367
- "HTMLElement": {
1368
- "location": "global",
1369
- "id": "global::HTMLElement"
1370
- }
1371
- },
1372
- "return": "Promise<void>"
1373
- },
1374
- "docs": {
1375
- "text": "Initialise (or reset) the virtual scroll.\nCall after setting all props and registering the mrdLoadPage listener,\nbut before calling setPage(0, rows).",
1376
- "tags": []
1377
- }
1378
- },
1379
- "setPage": {
1380
- "complexType": {
1381
- "signature": "(pageNumber: number, rows: Record<string, any>[], hasNext?: boolean) => Promise<void>",
1382
- "parameters": [{
1383
- "name": "pageNumber",
1384
- "type": "number",
1385
- "docs": ""
1386
- }, {
1387
- "name": "rows",
1388
- "type": "Record<string, any>[]",
1389
- "docs": ""
1390
- }, {
1391
- "name": "hasNext",
1392
- "type": "boolean | undefined",
1393
- "docs": ""
1394
- }],
1395
- "references": {
1396
- "Promise": {
1397
- "location": "global",
1398
- "id": "global::Promise"
1399
- },
1400
- "Record": {
1401
- "location": "global",
1402
- "id": "global::Record"
1403
- }
1404
- },
1405
- "return": "Promise<void>"
1406
- },
1407
- "docs": {
1408
- "text": "Inject the rows for a given page (0-based).\nCreates a new Map reference so Stencil detects the state change.\n\nWhen the page contains fewer rows than pageSize it is the last page.\nrenderEnd is clamped immediately so no loading-placeholder rows appear\nbeyond the actual data \u2014 without requiring the host to update totalElements.\n\nPass hasNext (from _links.next in the API response) for accurate last-page\ndetection even when rows.length === pageSize (exact multiple of page size).",
1409
- "tags": []
1410
- }
1411
- },
1412
- "setAggregations": {
1413
- "complexType": {
1414
- "signature": "(data: AggregationResult) => Promise<void>",
1415
- "parameters": [{
1416
- "name": "data",
1417
- "type": "AggregationResult",
1418
- "docs": ""
1419
- }],
1420
- "references": {
1421
- "Promise": {
1422
- "location": "global",
1423
- "id": "global::Promise"
1424
- },
1425
- "AggregationResult": {
1426
- "location": "import",
1427
- "path": "../../types/client-layout",
1428
- "id": "src/types/client-layout.ts::AggregationResult",
1429
- "referenceLocation": "AggregationResult"
1430
- }
1431
- },
1432
- "return": "Promise<void>"
1433
- },
1434
- "docs": {
1435
- "text": "Inject aggregation totals returned by the /aggregations endpoint.",
1436
- "tags": []
1437
- }
1438
- }
1439
- };
1440
- }
1441
- static get elementRef() { return "el"; }
1442
- static get watchers() {
1443
- return [{
1444
- "propName": "totalElements",
1445
- "methodName": "totalElementsChanged"
1446
- }, {
1447
- "propName": "item",
1448
- "methodName": "itemChanged"
1449
- }];
1450
- }
1451
- }
1105
+ get el() { return getElement(this); }
1106
+ static get watchers() { return {
1107
+ "totalElements": [{
1108
+ "totalElementsChanged": 0
1109
+ }],
1110
+ "item": [{
1111
+ "itemChanged": 0
1112
+ }]
1113
+ }; }
1114
+ };
1115
+ MrdTable.style = mrdTableScss();
1116
+
1117
+ export { MrdTable as mrd_table };
1118
+ //# sourceMappingURL=mrd-table.entry.esm.js.map
1119
+
1120
+ //# sourceMappingURL=mrd-table.entry.js.map