@solidxai/core-ui 0.1.9-beta.19 → 0.1.9-beta.20

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 (168) hide show
  1. package/dist/components/common/GeneralSettings.js +1 -1
  2. package/dist/components/common/GeneralSettings.js.map +1 -1
  3. package/dist/components/common/GeneralSettings.tsx +1 -1
  4. package/dist/components/common/SettingsComponent.module.css +78 -2
  5. package/dist/components/common/SolidExport.d.ts.map +1 -1
  6. package/dist/components/common/SolidExport.js +1 -1
  7. package/dist/components/common/SolidExport.js.map +1 -1
  8. package/dist/components/common/SolidExport.tsx +2 -0
  9. package/dist/components/core/common/FilterComponent.d.ts.map +1 -1
  10. package/dist/components/core/common/FilterComponent.js +1 -1
  11. package/dist/components/core/common/FilterComponent.js.map +1 -1
  12. package/dist/components/core/common/FilterComponent.tsx +1 -0
  13. package/dist/components/core/common/GroupingComponent.d.ts.map +1 -1
  14. package/dist/components/core/common/GroupingComponent.js +2 -2
  15. package/dist/components/core/common/GroupingComponent.js.map +1 -1
  16. package/dist/components/core/common/GroupingComponent.tsx +2 -0
  17. package/dist/components/core/dashboard/mappers/echartsOptionMapper.d.ts.map +1 -1
  18. package/dist/components/core/dashboard/mappers/echartsOptionMapper.js +5 -2
  19. package/dist/components/core/dashboard/mappers/echartsOptionMapper.js.map +1 -1
  20. package/dist/components/core/dashboard/mappers/echartsOptionMapper.ts +5 -2
  21. package/dist/components/core/dashboard/widgets/DefaultDashboardKpiWidget.d.ts.map +1 -1
  22. package/dist/components/core/dashboard/widgets/DefaultDashboardKpiWidget.js +6 -1
  23. package/dist/components/core/dashboard/widgets/DefaultDashboardKpiWidget.js.map +1 -1
  24. package/dist/components/core/dashboard/widgets/DefaultDashboardKpiWidget.tsx +13 -1
  25. package/dist/components/core/dashboard/widgets/QueueSlaHeatmapWidget.d.ts.map +1 -1
  26. package/dist/components/core/dashboard/widgets/QueueSlaHeatmapWidget.js +54 -10
  27. package/dist/components/core/dashboard/widgets/QueueSlaHeatmapWidget.js.map +1 -1
  28. package/dist/components/core/dashboard/widgets/QueueSlaHeatmapWidget.tsx +56 -10
  29. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js +1 -1
  30. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js.map +1 -1
  31. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.tsx +1 -1
  32. package/dist/components/core/filter/fields/SolidBooleanField.d.ts.map +1 -1
  33. package/dist/components/core/filter/fields/SolidBooleanField.js +1 -1
  34. package/dist/components/core/filter/fields/SolidBooleanField.js.map +1 -1
  35. package/dist/components/core/filter/fields/SolidBooleanField.tsx +3 -2
  36. package/dist/components/core/filter/fields/SolidDateField.d.ts.map +1 -1
  37. package/dist/components/core/filter/fields/SolidDateField.js +1 -1
  38. package/dist/components/core/filter/fields/SolidDateField.js.map +1 -1
  39. package/dist/components/core/filter/fields/SolidDateField.tsx +2 -1
  40. package/dist/components/core/filter/fields/SolidDatetimeField.d.ts.map +1 -1
  41. package/dist/components/core/filter/fields/SolidDatetimeField.js +1 -1
  42. package/dist/components/core/filter/fields/SolidDatetimeField.js.map +1 -1
  43. package/dist/components/core/filter/fields/SolidDatetimeField.tsx +3 -2
  44. package/dist/components/core/filter/fields/SolidExternalIdField.d.ts.map +1 -1
  45. package/dist/components/core/filter/fields/SolidExternalIdField.js +1 -1
  46. package/dist/components/core/filter/fields/SolidExternalIdField.js.map +1 -1
  47. package/dist/components/core/filter/fields/SolidExternalIdField.tsx +2 -1
  48. package/dist/components/core/filter/fields/SolidIdField.d.ts.map +1 -1
  49. package/dist/components/core/filter/fields/SolidIdField.js +1 -1
  50. package/dist/components/core/filter/fields/SolidIdField.js.map +1 -1
  51. package/dist/components/core/filter/fields/SolidIdField.tsx +1 -0
  52. package/dist/components/core/filter/fields/SolidIntField.d.ts.map +1 -1
  53. package/dist/components/core/filter/fields/SolidIntField.js +1 -1
  54. package/dist/components/core/filter/fields/SolidIntField.js.map +1 -1
  55. package/dist/components/core/filter/fields/SolidIntField.tsx +2 -1
  56. package/dist/components/core/filter/fields/SolidMediaMultipleField.d.ts.map +1 -1
  57. package/dist/components/core/filter/fields/SolidMediaMultipleField.js +1 -1
  58. package/dist/components/core/filter/fields/SolidMediaMultipleField.js.map +1 -1
  59. package/dist/components/core/filter/fields/SolidMediaMultipleField.tsx +2 -1
  60. package/dist/components/core/filter/fields/SolidMediaSingleField.d.ts.map +1 -1
  61. package/dist/components/core/filter/fields/SolidMediaSingleField.js +1 -1
  62. package/dist/components/core/filter/fields/SolidMediaSingleField.js.map +1 -1
  63. package/dist/components/core/filter/fields/SolidMediaSingleField.tsx +2 -1
  64. package/dist/components/core/filter/fields/SolidSelectionDynamicField.d.ts.map +1 -1
  65. package/dist/components/core/filter/fields/SolidSelectionDynamicField.js +1 -1
  66. package/dist/components/core/filter/fields/SolidSelectionDynamicField.js.map +1 -1
  67. package/dist/components/core/filter/fields/SolidSelectionDynamicField.tsx +3 -2
  68. package/dist/components/core/filter/fields/SolidSelectionStaticField.d.ts.map +1 -1
  69. package/dist/components/core/filter/fields/SolidSelectionStaticField.js +1 -1
  70. package/dist/components/core/filter/fields/SolidSelectionStaticField.js.map +1 -1
  71. package/dist/components/core/filter/fields/SolidSelectionStaticField.tsx +3 -2
  72. package/dist/components/core/filter/fields/SolidShortTextField.d.ts.map +1 -1
  73. package/dist/components/core/filter/fields/SolidShortTextField.js +1 -1
  74. package/dist/components/core/filter/fields/SolidShortTextField.js.map +1 -1
  75. package/dist/components/core/filter/fields/SolidShortTextField.tsx +2 -1
  76. package/dist/components/core/filter/fields/SolidTimeField.d.ts.map +1 -1
  77. package/dist/components/core/filter/fields/SolidTimeField.js +1 -1
  78. package/dist/components/core/filter/fields/SolidTimeField.js.map +1 -1
  79. package/dist/components/core/filter/fields/SolidTimeField.tsx +3 -2
  80. package/dist/components/core/filter/fields/SolidUuidField.d.ts.map +1 -1
  81. package/dist/components/core/filter/fields/SolidUuidField.js +1 -1
  82. package/dist/components/core/filter/fields/SolidUuidField.js.map +1 -1
  83. package/dist/components/core/filter/fields/SolidUuidField.tsx +2 -1
  84. package/dist/components/core/filter/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
  85. package/dist/components/core/filter/fields/relations/SolidRelationManyToManyField.js +1 -1
  86. package/dist/components/core/filter/fields/relations/SolidRelationManyToManyField.js.map +1 -1
  87. package/dist/components/core/filter/fields/relations/SolidRelationManyToManyField.tsx +3 -2
  88. package/dist/components/core/filter/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
  89. package/dist/components/core/filter/fields/relations/SolidRelationManyToOneField.js +1 -1
  90. package/dist/components/core/filter/fields/relations/SolidRelationManyToOneField.js.map +1 -1
  91. package/dist/components/core/filter/fields/relations/SolidRelationManyToOneField.tsx +3 -2
  92. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.d.ts.map +1 -1
  93. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.js +1 -1
  94. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.js.map +1 -1
  95. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.tsx +3 -2
  96. package/dist/components/core/form/SolidFormFooter.js +1 -1
  97. package/dist/components/core/form/SolidFormFooter.js.map +1 -1
  98. package/dist/components/core/form/SolidFormFooter.tsx +1 -1
  99. package/dist/components/core/form/SolidFormView.js +2 -2
  100. package/dist/components/core/form/SolidFormView.js.map +1 -1
  101. package/dist/components/core/form/SolidFormView.tsx +2 -2
  102. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +1 -1
  103. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
  104. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +1 -1
  105. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +1 -1
  106. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
  107. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +1 -1
  108. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js +1 -1
  109. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js.map +1 -1
  110. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.tsx +1 -1
  111. package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.js +1 -1
  112. package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.js.map +1 -1
  113. package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.tsx +1 -1
  114. package/dist/components/core/kanban/SolidKanbanView.js +1 -1
  115. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  116. package/dist/components/core/kanban/SolidKanbanView.tsx +1 -1
  117. package/dist/components/core/list/SolidDataTable.d.ts.map +1 -1
  118. package/dist/components/core/list/SolidDataTable.js +2 -1
  119. package/dist/components/core/list/SolidDataTable.js.map +1 -1
  120. package/dist/components/core/list/SolidDataTable.tsx +8 -9
  121. package/dist/components/core/list/SolidListView.js +13 -15
  122. package/dist/components/core/list/SolidListView.js.map +1 -1
  123. package/dist/components/core/list/SolidListView.tsx +12 -12
  124. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js +1 -1
  125. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js.map +1 -1
  126. package/dist/components/core/list/columns/SolidMediaMultipleColumn.tsx +1 -1
  127. package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
  128. package/dist/components/core/model/FieldMetaData.js +1 -1
  129. package/dist/components/core/model/FieldMetaData.js.map +1 -1
  130. package/dist/components/core/model/FieldMetaData.tsx +10 -4
  131. package/dist/components/core/tree/SolidTreeView.js +2 -2
  132. package/dist/components/core/tree/SolidTreeView.js.map +1 -1
  133. package/dist/components/core/tree/SolidTreeView.tsx +3 -3
  134. package/dist/components/core/users/CreateUser.js +1 -1
  135. package/dist/components/core/users/CreateUser.js.map +1 -1
  136. package/dist/components/core/users/CreateUser.tsx +1 -1
  137. package/dist/components/layout/AdminHeaderActions.d.ts +7 -0
  138. package/dist/components/layout/AdminHeaderActions.d.ts.map +1 -0
  139. package/dist/components/layout/AdminHeaderActions.js +77 -0
  140. package/dist/components/layout/AdminHeaderActions.js.map +1 -0
  141. package/dist/components/layout/AdminHeaderActions.tsx +155 -0
  142. package/dist/components/layout/AdminTopHeader.d.ts.map +1 -1
  143. package/dist/components/layout/AdminTopHeader.js +3 -16
  144. package/dist/components/layout/AdminTopHeader.js.map +1 -1
  145. package/dist/components/layout/AdminTopHeader.tsx +4 -64
  146. package/dist/components/layout/AppSidebar.d.ts.map +1 -1
  147. package/dist/components/layout/AppSidebar.js +2 -1
  148. package/dist/components/layout/AppSidebar.js.map +1 -1
  149. package/dist/components/layout/AppSidebar.tsx +2 -0
  150. package/dist/components/shad-cn-ui/SolidDatePicker.d.ts +1 -1
  151. package/dist/components/shad-cn-ui/SolidDatePicker.d.ts.map +1 -1
  152. package/dist/components/shad-cn-ui/SolidDatePicker.js +2 -2
  153. package/dist/components/shad-cn-ui/SolidDatePicker.js.map +1 -1
  154. package/dist/components/shad-cn-ui/SolidDatePicker.tsx +4 -0
  155. package/dist/components/shad-cn-ui/SolidSelect.d.ts +2 -1
  156. package/dist/components/shad-cn-ui/SolidSelect.d.ts.map +1 -1
  157. package/dist/components/shad-cn-ui/SolidSelect.js +51 -1
  158. package/dist/components/shad-cn-ui/SolidSelect.js.map +1 -1
  159. package/dist/components/shad-cn-ui/SolidSelect.tsx +95 -0
  160. package/dist/resources/globals.css +93 -12
  161. package/dist/resources/shadcn-base.css +339 -171
  162. package/dist/resources/solid-responsive.css +235 -50
  163. package/dist/routes/pages/admin/core/DashboardPage.d.ts.map +1 -1
  164. package/dist/routes/pages/admin/core/DashboardPage.js +101 -21
  165. package/dist/routes/pages/admin/core/DashboardPage.js.map +1 -1
  166. package/dist/routes/pages/admin/core/DashboardPage.module.css +33 -0
  167. package/dist/routes/pages/admin/core/DashboardPage.tsx +144 -17
  168. package/package.json +1 -1
@@ -11,6 +11,10 @@
11
11
  top: 0;
12
12
  z-index: 20;
13
13
  background: var(--background);
14
+ display: grid;
15
+ grid-template-columns: minmax(0, 1fr) minmax(17rem, 28rem) auto;
16
+ align-items: end;
17
+ gap: 0.9rem 1rem;
14
18
  }
15
19
 
16
20
  .headerIntro {
@@ -25,8 +29,8 @@
25
29
  align-items: center;
26
30
  gap: 0.75rem;
27
31
  flex: 1 1 22rem;
28
- justify-content: center;
29
- min-width: min(100%, 24rem);
32
+ justify-content: flex-start;
33
+ min-width: 0;
30
34
  }
31
35
 
32
36
  .subtitle {
@@ -134,6 +138,7 @@
134
138
  gap: 0.65rem;
135
139
  flex-wrap: wrap;
136
140
  justify-content: flex-end;
141
+ min-width: 0;
137
142
  }
138
143
 
139
144
  .searchIcon {
@@ -183,6 +188,8 @@
183
188
  border-right: 1px solid color-mix(in srgb, var(--border) 86%, transparent);
184
189
  overflow-y: auto;
185
190
  min-height: 0;
191
+ width: 100% !important;
192
+ max-width: 100%;
186
193
  }
187
194
 
188
195
  .tabPanel {
@@ -409,6 +416,11 @@
409
416
  }
410
417
 
411
418
  @media (max-width: 960px) {
419
+ .pageHeader {
420
+ grid-template-columns: 1fr;
421
+ align-items: stretch;
422
+ }
423
+
412
424
  .tabGroup {
413
425
  grid-template-columns: 1fr;
414
426
  }
@@ -418,12 +430,23 @@
418
430
  min-width: 100%;
419
431
  }
420
432
 
433
+ .toolbarActions {
434
+ justify-content: space-between;
435
+ }
436
+
421
437
  .tabList {
438
+ flex-direction: row;
439
+ align-items: stretch;
422
440
  border-right: none;
423
441
  border-bottom: 1px solid color-mix(in srgb, var(--border) 86%, transparent);
442
+ overflow-y: hidden;
424
443
  overflow-x: auto;
425
444
  }
426
445
 
446
+ .moduleTab {
447
+ min-width: 12rem;
448
+ }
449
+
427
450
  .settingRow {
428
451
  grid-template-columns: 1fr;
429
452
  }
@@ -436,3 +459,56 @@
436
459
  width: 100%;
437
460
  }
438
461
  }
462
+
463
+ @media (max-width: 640px) {
464
+ .page {
465
+ height: auto;
466
+ min-height: calc(100dvh - 46px);
467
+ }
468
+
469
+ .pageHeader {
470
+ gap: 0.75rem;
471
+ }
472
+
473
+ .subtitle {
474
+ max-width: none;
475
+ line-height: 1.45;
476
+ }
477
+
478
+ .searchIcon {
479
+ width: 100%;
480
+ }
481
+
482
+ .toolbarActions {
483
+ justify-content: flex-start;
484
+ }
485
+
486
+ .legend {
487
+ flex-wrap: wrap;
488
+ }
489
+
490
+ .tabList {
491
+ padding: 0.7rem;
492
+ }
493
+
494
+ .tabPanel {
495
+ padding: 0.75rem;
496
+ }
497
+
498
+ .moduleTab {
499
+ min-width: 10.5rem;
500
+ }
501
+
502
+ .groupHeader {
503
+ align-items: flex-start;
504
+ flex-direction: column;
505
+ }
506
+
507
+ .groupBody {
508
+ padding-inline: 0.75rem;
509
+ }
510
+
511
+ .readonlyValue {
512
+ min-height: 2.3rem;
513
+ }
514
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"SolidExport.d.ts","sourceRoot":"","sources":["../../../src/components/common/SolidExport.tsx"],"names":[],"mappings":"AAEA,OAAO,oBAAoB,CAAC;AAgF5B,eAAO,MAAM,WAAW,kCAAmC,GAAG,mDAia7D,CAAC"}
1
+ {"version":3,"file":"SolidExport.d.ts","sourceRoot":"","sources":["../../../src/components/common/SolidExport.tsx"],"names":[],"mappings":"AAEA,OAAO,oBAAoB,CAAC;AAgF5B,eAAO,MAAM,WAAW,kCAAmC,GAAG,mDAma7D,CAAC"}
@@ -290,7 +290,7 @@ export var SolidExport = function (_a) {
290
290
  var next = FORMAT_OPTIONS.find(function (option) { return option.code === event.value; });
291
291
  if (next)
292
292
  setSelectedFormat(next);
293
- }, placeholder: "Select format" })] }), _jsxs("label", { className: "solid-export-field solid-export-field--template", children: [_jsx("span", { className: "solid-export-field-label", children: "Template" }), _jsx(SolidSelect, { value: (_c = selectedTemplate === null || selectedTemplate === void 0 ? void 0 : selectedTemplate.code) !== null && _c !== void 0 ? _c : "", options: resolvedTemplateOptions.map(function (option) { return ({ label: option.name, value: option.code }); }), onChange: function (event) { return handleTemplateSelect(event.value); }, placeholder: resolvedTemplateOptions.length ? "Choose template" : "No saved templates" })] })] }), _jsxs("div", { className: "solid-export-toolbar-side", children: [_jsx("div", { className: "solid-export-toolbar-options", children: _jsx(SolidCheckbox, { checked: checkApplyFilter, onChange: function (event) { return setCheckedApplyFilter(event.target.checked); }, label: "Apply Filters" }) }), _jsxs("div", { className: "solid-export-toolbar-actions", children: [_jsx(SolidButton, { variant: "outline", size: "small", leftIcon: _jsx(Save, { size: 14 }), onClick: function () { return setIsSaveDialogVisible(true); }, children: "Save Template" }), _jsx(SolidButton, { variant: "outline", size: "small", leftIcon: _jsx(Trash2, { size: 14 }), onClick: handleDeleteTemplate, disabled: !selectedTemplate || isDeletingTemplate, className: "solid-export-delete-btn", children: "Delete" }), _jsx(SolidButton, { size: "small", leftIcon: _jsx(Download, { size: 14 }), onClick: handleDownload, disabled: selectedColumns.length === 0, children: "Export" })] })] })] }), _jsxs("div", { className: "solid-export-summary", children: [_jsx("div", { className: "solid-export-summary-card", children: _jsxs("div", { className: "solid-export-summary-title-row", children: [_jsx("div", { className: "solid-export-summary-format-icon", children: selectedFormatMeta.icon }), _jsxs("div", { className: "solid-export-summary-copy-block", children: [_jsxs("div", { className: "solid-export-summary-title", children: [selectedFormatMeta.label, " export"] }), _jsxs("div", { className: "solid-export-summary-meta", children: [_jsx("span", { className: "solid-export-summary-copy", children: selectionSummary }), _jsx("span", { className: "solid-export-summary-dot", "aria-hidden": "true" }), _jsx("span", { className: "solid-export-summary-copy", children: filterSummary })] })] })] }) }), _jsxs("div", { className: "solid-export-summary-chip", children: [_jsx(Check, { size: 13 }), selectedTemplateFieldsCount, " field", selectedTemplateFieldsCount === 1 ? "" : "s", " selected"] })] }), _jsxs("div", { className: "solid-export-builder", children: [_jsxs("div", { className: "solid-export-pane", children: [_jsxs("div", { className: "solid-export-pane-header", children: [_jsxs("div", { children: [_jsx("div", { className: "solid-export-pane-title", children: "Available Fields" }), _jsx("div", { className: "solid-export-pane-copy", children: "Add fields to include in the export." })] }), _jsx("div", { className: "solid-export-pane-count", children: availableColumns.length })] }), _jsx("div", { className: "solid-export-list", children: availableColumns.length ? (availableColumns.map(function (item) { return (_jsxs("div", { className: "solid-export-list-row", children: [_jsx("div", { className: "solid-export-list-row-copy", children: _jsxs("div", { className: "solid-export-list-row-title", children: [item.name, _jsxs("span", { className: "solid-export-list-row-key", children: ["(", item.key, ")"] })] }) }), _jsx(SolidButton, { variant: "ghost", size: "small", className: "solid-export-list-row-action", leftIcon: _jsx(Plus, { size: 14 }), "aria-label": "Add ".concat(item.name), tooltip: "Add ".concat(item.name), onClick: function () { return moveToSelected(item); } })] }, item.key)); })) : (_jsxs("div", { className: "solid-export-empty", children: [_jsx("div", { className: "solid-export-empty-title", children: "All fields are already selected" }), _jsx("div", { className: "solid-export-empty-copy", children: "Remove a field from the export set to make it available here again." })] })) })] }), _jsxs("div", { className: "solid-export-pane", children: [_jsxs("div", { className: "solid-export-pane-header", children: [_jsxs("div", { children: [_jsx("div", { className: "solid-export-pane-title", children: "Selected Fields" }), _jsx("div", { className: "solid-export-pane-copy", children: "These columns will be exported in the file." })] }), _jsx("div", { className: "solid-export-pane-count is-selected", children: selectedColumns.length })] }), _jsx("div", { className: "solid-export-list", children: selectedColumns.length ? (selectedColumns.map(function (item) { return (_jsxs("div", { className: "solid-export-list-row", children: [_jsx("div", { className: "solid-export-list-row-copy", children: _jsxs("div", { className: "solid-export-list-row-title", children: [item.name, _jsxs("span", { className: "solid-export-list-row-key", children: ["(", item.key, ")"] })] }) }), _jsx(SolidButton, { variant: "ghost", size: "small", className: "solid-export-list-row-action is-remove", leftIcon: _jsx(Trash2, { size: 14 }), "aria-label": "Remove ".concat(item.name), tooltip: "Remove ".concat(item.name), onClick: function () { return moveToAvailable(item); } })] }, item.key)); })) : (_jsxs("div", { className: "solid-export-empty", children: [_jsx("div", { className: "solid-export-empty-title", children: "No fields selected yet" }), _jsx("div", { className: "solid-export-empty-copy", children: "Pick at least one field before starting the export." })] })) })] })] })] }), _jsxs(SolidDialog, { open: isSaveDialogVisible, onOpenChange: setIsSaveDialogVisible, className: "solid-export-save-dialog", style: { width: "min(420px, calc(100vw - 24px))" }, children: [_jsxs(SolidDialogHeader, { className: "solid-filter-dialog-head", children: [_jsxs("div", { children: [_jsx(SolidDialogTitle, { className: "solid-filter-dialog-title m-0", children: "Save Export Template" }), _jsx(SolidDialogDescription, { className: "solid-filter-dialog-subtitle m-0", children: "Save the current format and selected fields so this export can be reused later." })] }), _jsx(SolidDialogClose, { className: "solid-filter-dialog-close" })] }), _jsx(SolidDialogSeparator, { className: "solid-filter-dialog-sep" }), _jsx(SolidDialogBody, { className: "solid-filter-dialog-body", children: _jsxs("label", { className: "solid-export-field solid-export-save-field", children: [_jsx("span", { className: "solid-export-field-label", children: "Template name" }), _jsx(SolidInput, { value: newTemplateName, onChange: function (event) { return setNewTemplateName(event.target.value); }, placeholder: "Enter template name", autoFocus: true })] }) }), _jsxs(SolidDialogFooter, { className: "solid-export-save-footer", children: [_jsx(SolidButton, { type: "button", size: "small", variant: "outline", onClick: function () {
293
+ }, placeholder: "Select format", native: false })] }), _jsxs("label", { className: "solid-export-field solid-export-field--template", children: [_jsx("span", { className: "solid-export-field-label", children: "Template" }), _jsx(SolidSelect, { value: (_c = selectedTemplate === null || selectedTemplate === void 0 ? void 0 : selectedTemplate.code) !== null && _c !== void 0 ? _c : "", options: resolvedTemplateOptions.map(function (option) { return ({ label: option.name, value: option.code }); }), onChange: function (event) { return handleTemplateSelect(event.value); }, placeholder: resolvedTemplateOptions.length ? "Choose template" : "No saved templates", native: false })] })] }), _jsxs("div", { className: "solid-export-toolbar-side", children: [_jsx("div", { className: "solid-export-toolbar-options", children: _jsx(SolidCheckbox, { checked: checkApplyFilter, onChange: function (event) { return setCheckedApplyFilter(event.target.checked); }, label: "Apply Filters" }) }), _jsxs("div", { className: "solid-export-toolbar-actions", children: [_jsx(SolidButton, { variant: "outline", size: "small", leftIcon: _jsx(Save, { size: 14 }), onClick: function () { return setIsSaveDialogVisible(true); }, children: "Save Template" }), _jsx(SolidButton, { variant: "outline", size: "small", leftIcon: _jsx(Trash2, { size: 14 }), onClick: handleDeleteTemplate, disabled: !selectedTemplate || isDeletingTemplate, className: "solid-export-delete-btn", children: "Delete" }), _jsx(SolidButton, { size: "small", leftIcon: _jsx(Download, { size: 14 }), onClick: handleDownload, disabled: selectedColumns.length === 0, children: "Export" })] })] })] }), _jsxs("div", { className: "solid-export-summary", children: [_jsx("div", { className: "solid-export-summary-card", children: _jsxs("div", { className: "solid-export-summary-title-row", children: [_jsx("div", { className: "solid-export-summary-format-icon", children: selectedFormatMeta.icon }), _jsxs("div", { className: "solid-export-summary-copy-block", children: [_jsxs("div", { className: "solid-export-summary-title", children: [selectedFormatMeta.label, " export"] }), _jsxs("div", { className: "solid-export-summary-meta", children: [_jsx("span", { className: "solid-export-summary-copy", children: selectionSummary }), _jsx("span", { className: "solid-export-summary-dot", "aria-hidden": "true" }), _jsx("span", { className: "solid-export-summary-copy", children: filterSummary })] })] })] }) }), _jsxs("div", { className: "solid-export-summary-chip", children: [_jsx(Check, { size: 13 }), selectedTemplateFieldsCount, " field", selectedTemplateFieldsCount === 1 ? "" : "s", " selected"] })] }), _jsxs("div", { className: "solid-export-builder", children: [_jsxs("div", { className: "solid-export-pane", children: [_jsxs("div", { className: "solid-export-pane-header", children: [_jsxs("div", { children: [_jsx("div", { className: "solid-export-pane-title", children: "Available Fields" }), _jsx("div", { className: "solid-export-pane-copy", children: "Add fields to include in the export." })] }), _jsx("div", { className: "solid-export-pane-count", children: availableColumns.length })] }), _jsx("div", { className: "solid-export-list", children: availableColumns.length ? (availableColumns.map(function (item) { return (_jsxs("div", { className: "solid-export-list-row", children: [_jsx("div", { className: "solid-export-list-row-copy", children: _jsxs("div", { className: "solid-export-list-row-title", children: [item.name, _jsxs("span", { className: "solid-export-list-row-key", children: ["(", item.key, ")"] })] }) }), _jsx(SolidButton, { variant: "ghost", size: "small", className: "solid-export-list-row-action", leftIcon: _jsx(Plus, { size: 14 }), "aria-label": "Add ".concat(item.name), tooltip: "Add ".concat(item.name), onClick: function () { return moveToSelected(item); } })] }, item.key)); })) : (_jsxs("div", { className: "solid-export-empty", children: [_jsx("div", { className: "solid-export-empty-title", children: "All fields are already selected" }), _jsx("div", { className: "solid-export-empty-copy", children: "Remove a field from the export set to make it available here again." })] })) })] }), _jsxs("div", { className: "solid-export-pane", children: [_jsxs("div", { className: "solid-export-pane-header", children: [_jsxs("div", { children: [_jsx("div", { className: "solid-export-pane-title", children: "Selected Fields" }), _jsx("div", { className: "solid-export-pane-copy", children: "These columns will be exported in the file." })] }), _jsx("div", { className: "solid-export-pane-count is-selected", children: selectedColumns.length })] }), _jsx("div", { className: "solid-export-list", children: selectedColumns.length ? (selectedColumns.map(function (item) { return (_jsxs("div", { className: "solid-export-list-row", children: [_jsx("div", { className: "solid-export-list-row-copy", children: _jsxs("div", { className: "solid-export-list-row-title", children: [item.name, _jsxs("span", { className: "solid-export-list-row-key", children: ["(", item.key, ")"] })] }) }), _jsx(SolidButton, { variant: "ghost", size: "small", className: "solid-export-list-row-action is-remove", leftIcon: _jsx(Trash2, { size: 14 }), "aria-label": "Remove ".concat(item.name), tooltip: "Remove ".concat(item.name), onClick: function () { return moveToAvailable(item); } })] }, item.key)); })) : (_jsxs("div", { className: "solid-export-empty", children: [_jsx("div", { className: "solid-export-empty-title", children: "No fields selected yet" }), _jsx("div", { className: "solid-export-empty-copy", children: "Pick at least one field before starting the export." })] })) })] })] })] }), _jsxs(SolidDialog, { open: isSaveDialogVisible, onOpenChange: setIsSaveDialogVisible, className: "solid-export-save-dialog", style: { width: "min(420px, calc(100vw - 24px))" }, children: [_jsxs(SolidDialogHeader, { className: "solid-filter-dialog-head", children: [_jsxs("div", { children: [_jsx(SolidDialogTitle, { className: "solid-filter-dialog-title m-0", children: "Save Export Template" }), _jsx(SolidDialogDescription, { className: "solid-filter-dialog-subtitle m-0", children: "Save the current format and selected fields so this export can be reused later." })] }), _jsx(SolidDialogClose, { className: "solid-filter-dialog-close" })] }), _jsx(SolidDialogSeparator, { className: "solid-filter-dialog-sep" }), _jsx(SolidDialogBody, { className: "solid-filter-dialog-body", children: _jsxs("label", { className: "solid-export-field solid-export-save-field", children: [_jsx("span", { className: "solid-export-field-label", children: "Template name" }), _jsx(SolidInput, { value: newTemplateName, onChange: function (event) { return setNewTemplateName(event.target.value); }, placeholder: "Enter template name", autoFocus: true })] }) }), _jsxs(SolidDialogFooter, { className: "solid-export-save-footer", children: [_jsx(SolidButton, { type: "button", size: "small", variant: "outline", onClick: function () {
294
294
  setNewTemplateName("");
295
295
  setIsSaveDialogVisible(false);
296
296
  }, children: "Cancel" }), _jsx(SolidButton, { type: "button", size: "small", loading: isSavingTemplate, disabled: !newTemplateName.trim() || isSavingTemplate, onClick: handleAddTemplate, children: "Save Template" })] })] }), _jsx(DownloadProgressToast, { visible: showProgress, progress: progress, message: message, submessage: messageDescription, status: status, onClose: function () { return setShowProgress(false); } })] }));
@@ -1 +1 @@
1
- {"version":3,"file":"SolidExport.js","sourceRoot":"","sources":["../../../src/components/common/SolidExport.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useEffect, useMemo, useState } from \"react\";\nimport { Check, Download, FileSpreadsheet, FileText, Plus, Save, Trash2 } from \"lucide-react\";\nimport \"./solid-export.css\";\nimport { useDispatch } from \"react-redux\";\nimport { showToast } from \"../../redux/features/toastSlice\";\nimport {\n useCreateExportTemplateMutation,\n useDeleteExportTemplateMutation,\n useGetExportTemplatesQuery,\n} from \"../../redux/api/exportTemplateApi\";\nimport { downloadFileWithProgress } from \"../../helpers/downloadFileWithProgress\";\nimport { DownloadProgressToast } from \"./DownloadProgressToast\";\nimport { ERROR_MESSAGES } from \"../../constants/error-messages\";\nimport {\n SolidButton,\n SolidCheckbox,\n SolidDialog,\n SolidDialogBody,\n SolidDialogClose,\n SolidDialogDescription,\n SolidDialogFooter,\n SolidDialogHeader,\n SolidDialogSeparator,\n SolidDialogTitle,\n SolidInput,\n SolidSelect,\n} from \"../shad-cn-ui\";\n\ninterface FieldMetadata {\n displayName: string;\n type: string;\n}\n\ninterface FilterColumn {\n name: string;\n key: string;\n}\n\ninterface TemplateOption {\n name: string;\n code: string;\n fields: string[] | string;\n templateFormat: string;\n}\n\ninterface FormatOption {\n name: string;\n code: string;\n}\n\nconst EXCLUDED_TYPES = new Set([\"mediaSingle\", \"mediaMultiple\"]);\nconst FORMAT_OPTIONS: FormatOption[] = [\n { name: \"CSV\", code: \"csv\" },\n { name: \"Excel\", code: \"excel\" },\n];\n\nfunction parseTemplateFields(value: string[] | string | undefined): string[] {\n if (Array.isArray(value)) return value;\n if (typeof value !== \"string\") return [];\n try {\n const parsed = JSON.parse(value);\n return Array.isArray(parsed) ? parsed : [];\n } catch (error) {\n console.error(ERROR_MESSAGES.PARSED_FIELD, error);\n return [];\n }\n}\n\nfunction exportFormatMeta(code?: string) {\n if (code === \"excel\") {\n return {\n label: \"Excel\",\n icon: <FileSpreadsheet size={14} />,\n };\n }\n\n return {\n label: \"CSV\",\n icon: <FileText size={14} />,\n };\n}\n\nexport const SolidExport = ({ listViewMetaData, filters }: any) => {\n const dispatch = useDispatch();\n\n if (!listViewMetaData?.data) return null;\n\n const solidView = listViewMetaData.data.solidView;\n const solidFieldsMetadata = listViewMetaData.data.solidFieldsMetadata as Record<string, FieldMetadata>;\n if (!solidView || !solidFieldsMetadata) return null;\n\n const layoutChildren = Array.isArray(solidView?.layout?.children) ? solidView.layout.children : [];\n const checkedFieldNames = useMemo(\n () =>\n new Set(\n layoutChildren\n .map((col: { attrs?: { name?: string } }) => col?.attrs?.name)\n .filter(Boolean)\n ),\n [layoutChildren]\n );\n\n const allColumns = useMemo<FilterColumn[]>(\n () =>\n Object.entries(solidFieldsMetadata)\n .filter(([, field]) => !EXCLUDED_TYPES.has(field.type))\n .map(([key, field]) => ({\n name: field.displayName,\n key,\n })),\n [solidFieldsMetadata]\n );\n\n const defaultSelectedColumns = useMemo(\n () => allColumns.filter((col) => checkedFieldNames.has(col.key)),\n [allColumns, checkedFieldNames]\n );\n\n const [selectedColumns, setSelectedColumns] = useState<FilterColumn[]>(defaultSelectedColumns);\n const [selectedTemplate, setSelectedTemplate] = useState<TemplateOption | null>(null);\n const [selectedFormat, setSelectedFormat] = useState<FormatOption>(FORMAT_OPTIONS[0]);\n const [isSaveDialogVisible, setIsSaveDialogVisible] = useState(false);\n const [newTemplateName, setNewTemplateName] = useState(\"\");\n const [progress, setProgress] = useState(0);\n const [showProgress, setShowProgress] = useState(false);\n const [message, setMessage] = useState(\"\");\n const [messageDescription, setMessageDescription] = useState(\"\");\n const [status, setStatus] = useState(\"In Progress\");\n const [checkApplyFilter, setCheckedApplyFilter] = useState(false);\n\n const [createExportTemplate, { isLoading: isSavingTemplate }] = useCreateExportTemplateMutation();\n const [deleteExportTemplate, { isLoading: isDeletingTemplate }] = useDeleteExportTemplateMutation();\n const { data: templatesData } = useGetExportTemplatesQuery({});\n\n const templateOptions = useMemo<TemplateOption[]>(() => {\n const records = templatesData?.records ?? [];\n return records.map((template: any) => ({\n name: template.templateName,\n code: String(template.id),\n fields: template.fields,\n templateFormat: template.templateFormat,\n }));\n }, [templatesData]);\n\n const resolvedTemplateOptions = useMemo(() => {\n if (!selectedTemplate) return templateOptions;\n if (templateOptions.some((template) => template.code === selectedTemplate.code)) return templateOptions;\n return [selectedTemplate, ...templateOptions];\n }, [selectedTemplate, templateOptions]);\n\n useEffect(() => {\n setSelectedColumns(defaultSelectedColumns);\n }, [defaultSelectedColumns]);\n\n const selectedKeys = new Set(selectedColumns.map((item) => item.key));\n const availableColumns = allColumns.filter((col) => !selectedKeys.has(col.key));\n\n const moveToSelected = (col: FilterColumn) => {\n setSelectedColumns((current) => (current.some((item) => item.key === col.key) ? current : [...current, col]));\n };\n\n const moveToAvailable = (col: FilterColumn) => {\n setSelectedColumns((current) => current.filter((item) => item.key !== col.key));\n };\n\n const handleTemplateSelect = (templateCode?: string) => {\n const nextTemplate = templateOptions.find((option) => option.code === templateCode) ?? null;\n setSelectedTemplate(nextTemplate);\n\n if (!nextTemplate) {\n setSelectedColumns(defaultSelectedColumns);\n setSelectedFormat(FORMAT_OPTIONS[0]);\n return;\n }\n\n const fields = parseTemplateFields(nextTemplate.fields);\n const resolvedColumns = fields\n .map((field) => allColumns.find((column) => column.key === field))\n .filter(Boolean) as FilterColumn[];\n\n setSelectedColumns(resolvedColumns);\n setSelectedFormat(\n FORMAT_OPTIONS.find((option) => option.code === nextTemplate.templateFormat) ?? FORMAT_OPTIONS[0]\n );\n };\n\n const handleAddTemplate = async () => {\n const trimmedName = newTemplateName.trim();\n if (!trimmedName) {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.TEMPLATE_FAILED, detail: ERROR_MESSAGES.TEMPLATE_FAILED }));\n return;\n }\n\n const exportData = {\n templateName: trimmedName,\n templateFormat: selectedFormat.code,\n notifyOnEmail: true,\n fields: JSON.stringify(selectedColumns.map((col) => col.key)),\n modelMetadataId: solidView?.model?.id,\n };\n\n try {\n const response = await createExportTemplate(exportData).unwrap();\n setSelectedTemplate({\n name: trimmedName,\n code: String(response.data.id),\n fields: selectedColumns.map((col) => col.key),\n templateFormat: selectedFormat.code,\n });\n setNewTemplateName(\"\");\n setIsSaveDialogVisible(false);\n dispatch(showToast({ severity: \"success\", summary: \"Template Added\", detail: \"Template Saved\" }));\n } catch (error) {\n console.error(ERROR_MESSAGES.TEMPLATE_FAILED, error);\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.TEMPLATE_FAILED, detail: ERROR_MESSAGES.TEMPLATE_FAILED }));\n }\n };\n\n const handleDeleteTemplate = async () => {\n if (!selectedTemplate?.code) return;\n try {\n await deleteExportTemplate(selectedTemplate.code).unwrap();\n setSelectedTemplate(null);\n dispatch(showToast({ severity: \"success\", summary: \"Template Deleted\", detail: \"Template Deleted\" }));\n } catch (error) {\n console.error(ERROR_MESSAGES.TEMPLATE_FAILED, error);\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.TEMPLATE_FAILED, detail: ERROR_MESSAGES.TEMPLATE_FAILED }));\n }\n };\n\n const downloadHandlers = {\n onProgress: (value: number) => {\n setProgress(value);\n },\n onStatusChange: (statusType: \"In Progress\" | \"success\" | \"error\", msg: string, submsg: string) => {\n setStatus(statusType);\n setMessage(msg);\n setMessageDescription(submsg);\n setShowProgress(true);\n },\n };\n\n const handleDownload = async () => {\n const exportData = {\n id: selectedTemplate?.code ?? null,\n templateName: selectedTemplate?.name ?? null,\n templateFormat: selectedFormat.code,\n notifyOnEmail: true,\n fields: JSON.stringify(selectedColumns.map((col) => col.key)),\n modelMetadataId: solidView?.model?.id,\n };\n\n try {\n await downloadFileWithProgress(\n `/export-template/startExport/sync`,\n downloadHandlers,\n filters,\n checkApplyFilter,\n exportData\n );\n } catch (error) {\n console.error(ERROR_MESSAGES.DOWNLOAD_FAILED, error);\n }\n };\n\n const selectedTemplateFieldsCount = selectedColumns.length;\n const selectedFormatMeta = exportFormatMeta(selectedFormat.code);\n const selectionSummary = selectedTemplate ? `Template: ${selectedTemplate.name}` : \"Current field selection\";\n const filterSummary = checkApplyFilter ? \"Filters applied\" : \"All records\";\n\n return (\n <>\n <div className=\"solid-export-shell\">\n <div className=\"solid-export-toolbar\">\n <div className=\"solid-export-toolbar-main\">\n <label className=\"solid-export-field\">\n <span className=\"solid-export-field-label\">Format</span>\n <SolidSelect\n value={selectedFormat.code}\n options={FORMAT_OPTIONS.map((option) => ({ label: option.name, value: option.code }))}\n onChange={(event) => {\n const next = FORMAT_OPTIONS.find((option) => option.code === event.value);\n if (next) setSelectedFormat(next);\n }}\n placeholder=\"Select format\"\n />\n </label>\n\n <label className=\"solid-export-field solid-export-field--template\">\n <span className=\"solid-export-field-label\">Template</span>\n <SolidSelect\n value={selectedTemplate?.code ?? \"\"}\n options={resolvedTemplateOptions.map((option) => ({ label: option.name, value: option.code }))}\n onChange={(event) => handleTemplateSelect(event.value)}\n placeholder={resolvedTemplateOptions.length ? \"Choose template\" : \"No saved templates\"}\n />\n </label>\n </div>\n\n <div className=\"solid-export-toolbar-side\">\n <div className=\"solid-export-toolbar-options\">\n <SolidCheckbox\n checked={checkApplyFilter}\n onChange={(event) => setCheckedApplyFilter(event.target.checked)}\n label=\"Apply Filters\"\n />\n </div>\n <div className=\"solid-export-toolbar-actions\">\n <SolidButton\n variant=\"outline\"\n size=\"small\"\n leftIcon={<Save size={14} />}\n onClick={() => setIsSaveDialogVisible(true)}\n >\n Save Template\n </SolidButton>\n <SolidButton\n variant=\"outline\"\n size=\"small\"\n leftIcon={<Trash2 size={14} />}\n onClick={handleDeleteTemplate}\n disabled={!selectedTemplate || isDeletingTemplate}\n className=\"solid-export-delete-btn\"\n >\n Delete\n </SolidButton>\n <SolidButton\n size=\"small\"\n leftIcon={<Download size={14} />}\n onClick={handleDownload}\n disabled={selectedColumns.length === 0}\n >\n Export\n </SolidButton>\n </div>\n </div>\n </div>\n\n <div className=\"solid-export-summary\">\n <div className=\"solid-export-summary-card\">\n <div className=\"solid-export-summary-title-row\">\n <div className=\"solid-export-summary-format-icon\">{selectedFormatMeta.icon}</div>\n <div className=\"solid-export-summary-copy-block\">\n <div className=\"solid-export-summary-title\">{selectedFormatMeta.label} export</div>\n <div className=\"solid-export-summary-meta\">\n <span className=\"solid-export-summary-copy\">{selectionSummary}</span>\n <span className=\"solid-export-summary-dot\" aria-hidden=\"true\" />\n <span className=\"solid-export-summary-copy\">{filterSummary}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div className=\"solid-export-summary-chip\">\n <Check size={13} />\n {selectedTemplateFieldsCount} field{selectedTemplateFieldsCount === 1 ? \"\" : \"s\"} selected\n </div>\n </div>\n\n <div className=\"solid-export-builder\">\n <div className=\"solid-export-pane\">\n <div className=\"solid-export-pane-header\">\n <div>\n <div className=\"solid-export-pane-title\">Available Fields</div>\n <div className=\"solid-export-pane-copy\">Add fields to include in the export.</div>\n </div>\n <div className=\"solid-export-pane-count\">{availableColumns.length}</div>\n </div>\n <div className=\"solid-export-list\">\n {availableColumns.length ? (\n availableColumns.map((item) => (\n <div key={item.key} className=\"solid-export-list-row\">\n <div className=\"solid-export-list-row-copy\">\n <div className=\"solid-export-list-row-title\">\n {item.name}\n <span className=\"solid-export-list-row-key\">({item.key})</span>\n </div>\n </div>\n <SolidButton\n variant=\"ghost\"\n size=\"small\"\n className=\"solid-export-list-row-action\"\n leftIcon={<Plus size={14} />}\n aria-label={`Add ${item.name}`}\n tooltip={`Add ${item.name}`}\n onClick={() => moveToSelected(item)}\n />\n </div>\n ))\n ) : (\n <div className=\"solid-export-empty\">\n <div className=\"solid-export-empty-title\">All fields are already selected</div>\n <div className=\"solid-export-empty-copy\">Remove a field from the export set to make it available here again.</div>\n </div>\n )}\n </div>\n </div>\n\n <div className=\"solid-export-pane\">\n <div className=\"solid-export-pane-header\">\n <div>\n <div className=\"solid-export-pane-title\">Selected Fields</div>\n <div className=\"solid-export-pane-copy\">These columns will be exported in the file.</div>\n </div>\n <div className=\"solid-export-pane-count is-selected\">{selectedColumns.length}</div>\n </div>\n <div className=\"solid-export-list\">\n {selectedColumns.length ? (\n selectedColumns.map((item) => (\n <div key={item.key} className=\"solid-export-list-row\">\n <div className=\"solid-export-list-row-copy\">\n <div className=\"solid-export-list-row-title\">\n {item.name}\n <span className=\"solid-export-list-row-key\">({item.key})</span>\n </div>\n </div>\n <SolidButton\n variant=\"ghost\"\n size=\"small\"\n className=\"solid-export-list-row-action is-remove\"\n leftIcon={<Trash2 size={14} />}\n aria-label={`Remove ${item.name}`}\n tooltip={`Remove ${item.name}`}\n onClick={() => moveToAvailable(item)}\n />\n </div>\n ))\n ) : (\n <div className=\"solid-export-empty\">\n <div className=\"solid-export-empty-title\">No fields selected yet</div>\n <div className=\"solid-export-empty-copy\">Pick at least one field before starting the export.</div>\n </div>\n )}\n </div>\n </div>\n </div>\n </div>\n\n <SolidDialog\n open={isSaveDialogVisible}\n onOpenChange={setIsSaveDialogVisible}\n className=\"solid-export-save-dialog\"\n style={{ width: \"min(420px, calc(100vw - 24px))\" }}\n >\n <SolidDialogHeader className=\"solid-filter-dialog-head\">\n <div>\n <SolidDialogTitle className=\"solid-filter-dialog-title m-0\">Save Export Template</SolidDialogTitle>\n <SolidDialogDescription className=\"solid-filter-dialog-subtitle m-0\">\n Save the current format and selected fields so this export can be reused later.\n </SolidDialogDescription>\n </div>\n <SolidDialogClose className=\"solid-filter-dialog-close\" />\n </SolidDialogHeader>\n <SolidDialogSeparator className=\"solid-filter-dialog-sep\" />\n <SolidDialogBody className=\"solid-filter-dialog-body\">\n <label className=\"solid-export-field solid-export-save-field\">\n <span className=\"solid-export-field-label\">Template name</span>\n <SolidInput\n value={newTemplateName}\n onChange={(event) => setNewTemplateName(event.target.value)}\n placeholder=\"Enter template name\"\n autoFocus\n />\n </label>\n </SolidDialogBody>\n <SolidDialogFooter className=\"solid-export-save-footer\">\n <SolidButton\n type=\"button\"\n size=\"small\"\n variant=\"outline\"\n onClick={() => {\n setNewTemplateName(\"\");\n setIsSaveDialogVisible(false);\n }}\n >\n Cancel\n </SolidButton>\n <SolidButton\n type=\"button\"\n size=\"small\"\n loading={isSavingTemplate}\n disabled={!newTemplateName.trim() || isSavingTemplate}\n onClick={handleAddTemplate}\n >\n Save Template\n </SolidButton>\n </SolidDialogFooter>\n </SolidDialog>\n\n <DownloadProgressToast\n visible={showProgress}\n progress={progress}\n message={message}\n submessage={messageDescription}\n status={status}\n onClose={() => setShowProgress(false)}\n />\n </>\n );\n};\n"]}
1
+ {"version":3,"file":"SolidExport.js","sourceRoot":"","sources":["../../../src/components/common/SolidExport.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useEffect, useMemo, useState } from \"react\";\nimport { Check, Download, FileSpreadsheet, FileText, Plus, Save, Trash2 } from \"lucide-react\";\nimport \"./solid-export.css\";\nimport { useDispatch } from \"react-redux\";\nimport { showToast } from \"../../redux/features/toastSlice\";\nimport {\n useCreateExportTemplateMutation,\n useDeleteExportTemplateMutation,\n useGetExportTemplatesQuery,\n} from \"../../redux/api/exportTemplateApi\";\nimport { downloadFileWithProgress } from \"../../helpers/downloadFileWithProgress\";\nimport { DownloadProgressToast } from \"./DownloadProgressToast\";\nimport { ERROR_MESSAGES } from \"../../constants/error-messages\";\nimport {\n SolidButton,\n SolidCheckbox,\n SolidDialog,\n SolidDialogBody,\n SolidDialogClose,\n SolidDialogDescription,\n SolidDialogFooter,\n SolidDialogHeader,\n SolidDialogSeparator,\n SolidDialogTitle,\n SolidInput,\n SolidSelect,\n} from \"../shad-cn-ui\";\n\ninterface FieldMetadata {\n displayName: string;\n type: string;\n}\n\ninterface FilterColumn {\n name: string;\n key: string;\n}\n\ninterface TemplateOption {\n name: string;\n code: string;\n fields: string[] | string;\n templateFormat: string;\n}\n\ninterface FormatOption {\n name: string;\n code: string;\n}\n\nconst EXCLUDED_TYPES = new Set([\"mediaSingle\", \"mediaMultiple\"]);\nconst FORMAT_OPTIONS: FormatOption[] = [\n { name: \"CSV\", code: \"csv\" },\n { name: \"Excel\", code: \"excel\" },\n];\n\nfunction parseTemplateFields(value: string[] | string | undefined): string[] {\n if (Array.isArray(value)) return value;\n if (typeof value !== \"string\") return [];\n try {\n const parsed = JSON.parse(value);\n return Array.isArray(parsed) ? parsed : [];\n } catch (error) {\n console.error(ERROR_MESSAGES.PARSED_FIELD, error);\n return [];\n }\n}\n\nfunction exportFormatMeta(code?: string) {\n if (code === \"excel\") {\n return {\n label: \"Excel\",\n icon: <FileSpreadsheet size={14} />,\n };\n }\n\n return {\n label: \"CSV\",\n icon: <FileText size={14} />,\n };\n}\n\nexport const SolidExport = ({ listViewMetaData, filters }: any) => {\n const dispatch = useDispatch();\n\n if (!listViewMetaData?.data) return null;\n\n const solidView = listViewMetaData.data.solidView;\n const solidFieldsMetadata = listViewMetaData.data.solidFieldsMetadata as Record<string, FieldMetadata>;\n if (!solidView || !solidFieldsMetadata) return null;\n\n const layoutChildren = Array.isArray(solidView?.layout?.children) ? solidView.layout.children : [];\n const checkedFieldNames = useMemo(\n () =>\n new Set(\n layoutChildren\n .map((col: { attrs?: { name?: string } }) => col?.attrs?.name)\n .filter(Boolean)\n ),\n [layoutChildren]\n );\n\n const allColumns = useMemo<FilterColumn[]>(\n () =>\n Object.entries(solidFieldsMetadata)\n .filter(([, field]) => !EXCLUDED_TYPES.has(field.type))\n .map(([key, field]) => ({\n name: field.displayName,\n key,\n })),\n [solidFieldsMetadata]\n );\n\n const defaultSelectedColumns = useMemo(\n () => allColumns.filter((col) => checkedFieldNames.has(col.key)),\n [allColumns, checkedFieldNames]\n );\n\n const [selectedColumns, setSelectedColumns] = useState<FilterColumn[]>(defaultSelectedColumns);\n const [selectedTemplate, setSelectedTemplate] = useState<TemplateOption | null>(null);\n const [selectedFormat, setSelectedFormat] = useState<FormatOption>(FORMAT_OPTIONS[0]);\n const [isSaveDialogVisible, setIsSaveDialogVisible] = useState(false);\n const [newTemplateName, setNewTemplateName] = useState(\"\");\n const [progress, setProgress] = useState(0);\n const [showProgress, setShowProgress] = useState(false);\n const [message, setMessage] = useState(\"\");\n const [messageDescription, setMessageDescription] = useState(\"\");\n const [status, setStatus] = useState(\"In Progress\");\n const [checkApplyFilter, setCheckedApplyFilter] = useState(false);\n\n const [createExportTemplate, { isLoading: isSavingTemplate }] = useCreateExportTemplateMutation();\n const [deleteExportTemplate, { isLoading: isDeletingTemplate }] = useDeleteExportTemplateMutation();\n const { data: templatesData } = useGetExportTemplatesQuery({});\n\n const templateOptions = useMemo<TemplateOption[]>(() => {\n const records = templatesData?.records ?? [];\n return records.map((template: any) => ({\n name: template.templateName,\n code: String(template.id),\n fields: template.fields,\n templateFormat: template.templateFormat,\n }));\n }, [templatesData]);\n\n const resolvedTemplateOptions = useMemo(() => {\n if (!selectedTemplate) return templateOptions;\n if (templateOptions.some((template) => template.code === selectedTemplate.code)) return templateOptions;\n return [selectedTemplate, ...templateOptions];\n }, [selectedTemplate, templateOptions]);\n\n useEffect(() => {\n setSelectedColumns(defaultSelectedColumns);\n }, [defaultSelectedColumns]);\n\n const selectedKeys = new Set(selectedColumns.map((item) => item.key));\n const availableColumns = allColumns.filter((col) => !selectedKeys.has(col.key));\n\n const moveToSelected = (col: FilterColumn) => {\n setSelectedColumns((current) => (current.some((item) => item.key === col.key) ? current : [...current, col]));\n };\n\n const moveToAvailable = (col: FilterColumn) => {\n setSelectedColumns((current) => current.filter((item) => item.key !== col.key));\n };\n\n const handleTemplateSelect = (templateCode?: string) => {\n const nextTemplate = templateOptions.find((option) => option.code === templateCode) ?? null;\n setSelectedTemplate(nextTemplate);\n\n if (!nextTemplate) {\n setSelectedColumns(defaultSelectedColumns);\n setSelectedFormat(FORMAT_OPTIONS[0]);\n return;\n }\n\n const fields = parseTemplateFields(nextTemplate.fields);\n const resolvedColumns = fields\n .map((field) => allColumns.find((column) => column.key === field))\n .filter(Boolean) as FilterColumn[];\n\n setSelectedColumns(resolvedColumns);\n setSelectedFormat(\n FORMAT_OPTIONS.find((option) => option.code === nextTemplate.templateFormat) ?? FORMAT_OPTIONS[0]\n );\n };\n\n const handleAddTemplate = async () => {\n const trimmedName = newTemplateName.trim();\n if (!trimmedName) {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.TEMPLATE_FAILED, detail: ERROR_MESSAGES.TEMPLATE_FAILED }));\n return;\n }\n\n const exportData = {\n templateName: trimmedName,\n templateFormat: selectedFormat.code,\n notifyOnEmail: true,\n fields: JSON.stringify(selectedColumns.map((col) => col.key)),\n modelMetadataId: solidView?.model?.id,\n };\n\n try {\n const response = await createExportTemplate(exportData).unwrap();\n setSelectedTemplate({\n name: trimmedName,\n code: String(response.data.id),\n fields: selectedColumns.map((col) => col.key),\n templateFormat: selectedFormat.code,\n });\n setNewTemplateName(\"\");\n setIsSaveDialogVisible(false);\n dispatch(showToast({ severity: \"success\", summary: \"Template Added\", detail: \"Template Saved\" }));\n } catch (error) {\n console.error(ERROR_MESSAGES.TEMPLATE_FAILED, error);\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.TEMPLATE_FAILED, detail: ERROR_MESSAGES.TEMPLATE_FAILED }));\n }\n };\n\n const handleDeleteTemplate = async () => {\n if (!selectedTemplate?.code) return;\n try {\n await deleteExportTemplate(selectedTemplate.code).unwrap();\n setSelectedTemplate(null);\n dispatch(showToast({ severity: \"success\", summary: \"Template Deleted\", detail: \"Template Deleted\" }));\n } catch (error) {\n console.error(ERROR_MESSAGES.TEMPLATE_FAILED, error);\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.TEMPLATE_FAILED, detail: ERROR_MESSAGES.TEMPLATE_FAILED }));\n }\n };\n\n const downloadHandlers = {\n onProgress: (value: number) => {\n setProgress(value);\n },\n onStatusChange: (statusType: \"In Progress\" | \"success\" | \"error\", msg: string, submsg: string) => {\n setStatus(statusType);\n setMessage(msg);\n setMessageDescription(submsg);\n setShowProgress(true);\n },\n };\n\n const handleDownload = async () => {\n const exportData = {\n id: selectedTemplate?.code ?? null,\n templateName: selectedTemplate?.name ?? null,\n templateFormat: selectedFormat.code,\n notifyOnEmail: true,\n fields: JSON.stringify(selectedColumns.map((col) => col.key)),\n modelMetadataId: solidView?.model?.id,\n };\n\n try {\n await downloadFileWithProgress(\n `/export-template/startExport/sync`,\n downloadHandlers,\n filters,\n checkApplyFilter,\n exportData\n );\n } catch (error) {\n console.error(ERROR_MESSAGES.DOWNLOAD_FAILED, error);\n }\n };\n\n const selectedTemplateFieldsCount = selectedColumns.length;\n const selectedFormatMeta = exportFormatMeta(selectedFormat.code);\n const selectionSummary = selectedTemplate ? `Template: ${selectedTemplate.name}` : \"Current field selection\";\n const filterSummary = checkApplyFilter ? \"Filters applied\" : \"All records\";\n\n return (\n <>\n <div className=\"solid-export-shell\">\n <div className=\"solid-export-toolbar\">\n <div className=\"solid-export-toolbar-main\">\n <label className=\"solid-export-field\">\n <span className=\"solid-export-field-label\">Format</span>\n <SolidSelect\n value={selectedFormat.code}\n options={FORMAT_OPTIONS.map((option) => ({ label: option.name, value: option.code }))}\n onChange={(event) => {\n const next = FORMAT_OPTIONS.find((option) => option.code === event.value);\n if (next) setSelectedFormat(next);\n }}\n placeholder=\"Select format\"\n native={false}\n />\n </label>\n\n <label className=\"solid-export-field solid-export-field--template\">\n <span className=\"solid-export-field-label\">Template</span>\n <SolidSelect\n value={selectedTemplate?.code ?? \"\"}\n options={resolvedTemplateOptions.map((option) => ({ label: option.name, value: option.code }))}\n onChange={(event) => handleTemplateSelect(event.value)}\n placeholder={resolvedTemplateOptions.length ? \"Choose template\" : \"No saved templates\"}\n native={false}\n />\n </label>\n </div>\n\n <div className=\"solid-export-toolbar-side\">\n <div className=\"solid-export-toolbar-options\">\n <SolidCheckbox\n checked={checkApplyFilter}\n onChange={(event) => setCheckedApplyFilter(event.target.checked)}\n label=\"Apply Filters\"\n />\n </div>\n <div className=\"solid-export-toolbar-actions\">\n <SolidButton\n variant=\"outline\"\n size=\"small\"\n leftIcon={<Save size={14} />}\n onClick={() => setIsSaveDialogVisible(true)}\n >\n Save Template\n </SolidButton>\n <SolidButton\n variant=\"outline\"\n size=\"small\"\n leftIcon={<Trash2 size={14} />}\n onClick={handleDeleteTemplate}\n disabled={!selectedTemplate || isDeletingTemplate}\n className=\"solid-export-delete-btn\"\n >\n Delete\n </SolidButton>\n <SolidButton\n size=\"small\"\n leftIcon={<Download size={14} />}\n onClick={handleDownload}\n disabled={selectedColumns.length === 0}\n >\n Export\n </SolidButton>\n </div>\n </div>\n </div>\n\n <div className=\"solid-export-summary\">\n <div className=\"solid-export-summary-card\">\n <div className=\"solid-export-summary-title-row\">\n <div className=\"solid-export-summary-format-icon\">{selectedFormatMeta.icon}</div>\n <div className=\"solid-export-summary-copy-block\">\n <div className=\"solid-export-summary-title\">{selectedFormatMeta.label} export</div>\n <div className=\"solid-export-summary-meta\">\n <span className=\"solid-export-summary-copy\">{selectionSummary}</span>\n <span className=\"solid-export-summary-dot\" aria-hidden=\"true\" />\n <span className=\"solid-export-summary-copy\">{filterSummary}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div className=\"solid-export-summary-chip\">\n <Check size={13} />\n {selectedTemplateFieldsCount} field{selectedTemplateFieldsCount === 1 ? \"\" : \"s\"} selected\n </div>\n </div>\n\n <div className=\"solid-export-builder\">\n <div className=\"solid-export-pane\">\n <div className=\"solid-export-pane-header\">\n <div>\n <div className=\"solid-export-pane-title\">Available Fields</div>\n <div className=\"solid-export-pane-copy\">Add fields to include in the export.</div>\n </div>\n <div className=\"solid-export-pane-count\">{availableColumns.length}</div>\n </div>\n <div className=\"solid-export-list\">\n {availableColumns.length ? (\n availableColumns.map((item) => (\n <div key={item.key} className=\"solid-export-list-row\">\n <div className=\"solid-export-list-row-copy\">\n <div className=\"solid-export-list-row-title\">\n {item.name}\n <span className=\"solid-export-list-row-key\">({item.key})</span>\n </div>\n </div>\n <SolidButton\n variant=\"ghost\"\n size=\"small\"\n className=\"solid-export-list-row-action\"\n leftIcon={<Plus size={14} />}\n aria-label={`Add ${item.name}`}\n tooltip={`Add ${item.name}`}\n onClick={() => moveToSelected(item)}\n />\n </div>\n ))\n ) : (\n <div className=\"solid-export-empty\">\n <div className=\"solid-export-empty-title\">All fields are already selected</div>\n <div className=\"solid-export-empty-copy\">Remove a field from the export set to make it available here again.</div>\n </div>\n )}\n </div>\n </div>\n\n <div className=\"solid-export-pane\">\n <div className=\"solid-export-pane-header\">\n <div>\n <div className=\"solid-export-pane-title\">Selected Fields</div>\n <div className=\"solid-export-pane-copy\">These columns will be exported in the file.</div>\n </div>\n <div className=\"solid-export-pane-count is-selected\">{selectedColumns.length}</div>\n </div>\n <div className=\"solid-export-list\">\n {selectedColumns.length ? (\n selectedColumns.map((item) => (\n <div key={item.key} className=\"solid-export-list-row\">\n <div className=\"solid-export-list-row-copy\">\n <div className=\"solid-export-list-row-title\">\n {item.name}\n <span className=\"solid-export-list-row-key\">({item.key})</span>\n </div>\n </div>\n <SolidButton\n variant=\"ghost\"\n size=\"small\"\n className=\"solid-export-list-row-action is-remove\"\n leftIcon={<Trash2 size={14} />}\n aria-label={`Remove ${item.name}`}\n tooltip={`Remove ${item.name}`}\n onClick={() => moveToAvailable(item)}\n />\n </div>\n ))\n ) : (\n <div className=\"solid-export-empty\">\n <div className=\"solid-export-empty-title\">No fields selected yet</div>\n <div className=\"solid-export-empty-copy\">Pick at least one field before starting the export.</div>\n </div>\n )}\n </div>\n </div>\n </div>\n </div>\n\n <SolidDialog\n open={isSaveDialogVisible}\n onOpenChange={setIsSaveDialogVisible}\n className=\"solid-export-save-dialog\"\n style={{ width: \"min(420px, calc(100vw - 24px))\" }}\n >\n <SolidDialogHeader className=\"solid-filter-dialog-head\">\n <div>\n <SolidDialogTitle className=\"solid-filter-dialog-title m-0\">Save Export Template</SolidDialogTitle>\n <SolidDialogDescription className=\"solid-filter-dialog-subtitle m-0\">\n Save the current format and selected fields so this export can be reused later.\n </SolidDialogDescription>\n </div>\n <SolidDialogClose className=\"solid-filter-dialog-close\" />\n </SolidDialogHeader>\n <SolidDialogSeparator className=\"solid-filter-dialog-sep\" />\n <SolidDialogBody className=\"solid-filter-dialog-body\">\n <label className=\"solid-export-field solid-export-save-field\">\n <span className=\"solid-export-field-label\">Template name</span>\n <SolidInput\n value={newTemplateName}\n onChange={(event) => setNewTemplateName(event.target.value)}\n placeholder=\"Enter template name\"\n autoFocus\n />\n </label>\n </SolidDialogBody>\n <SolidDialogFooter className=\"solid-export-save-footer\">\n <SolidButton\n type=\"button\"\n size=\"small\"\n variant=\"outline\"\n onClick={() => {\n setNewTemplateName(\"\");\n setIsSaveDialogVisible(false);\n }}\n >\n Cancel\n </SolidButton>\n <SolidButton\n type=\"button\"\n size=\"small\"\n loading={isSavingTemplate}\n disabled={!newTemplateName.trim() || isSavingTemplate}\n onClick={handleAddTemplate}\n >\n Save Template\n </SolidButton>\n </SolidDialogFooter>\n </SolidDialog>\n\n <DownloadProgressToast\n visible={showProgress}\n progress={progress}\n message={message}\n submessage={messageDescription}\n status={status}\n onClose={() => setShowProgress(false)}\n />\n </>\n );\n};\n"]}
@@ -283,6 +283,7 @@ export const SolidExport = ({ listViewMetaData, filters }: any) => {
283
283
  if (next) setSelectedFormat(next);
284
284
  }}
285
285
  placeholder="Select format"
286
+ native={false}
286
287
  />
287
288
  </label>
288
289
 
@@ -293,6 +294,7 @@ export const SolidExport = ({ listViewMetaData, filters }: any) => {
293
294
  options={resolvedTemplateOptions.map((option) => ({ label: option.name, value: option.code }))}
294
295
  onChange={(event) => handleTemplateSelect(event.value)}
295
296
  placeholder={resolvedTemplateOptions.length ? "Choose template" : "No saved templates"}
297
+ native={false}
296
298
  />
297
299
  </label>
298
300
  </div>
@@ -1 +1 @@
1
- {"version":3,"file":"FilterComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/core/common/FilterComponent.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAmB,KAAK,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEvF,oBAAY,cAAc;IACxB,IAAI,SAAS;IACb,UAAU,eAAe;CAC1B;AAED,oBAAY,cAAc;IACxB,GAAG,QAAQ;IACX,EAAE,OAAO;CACV;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,cAAc,CAAC;IACrB,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACxC,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;CACpC;AAsKD,QAAA,MAAM,eAAe;;;;;;;6CAuMpB,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"FilterComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/core/common/FilterComponent.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAmB,KAAK,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEvF,oBAAY,cAAc;IACxB,IAAI,SAAS;IACb,UAAU,eAAe;CAC1B;AAED,oBAAY,cAAc;IACxB,GAAG,QAAQ;IACX,EAAE,OAAO;CACV;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,cAAc,CAAC;IACrB,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACxC,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;CACpC;AAuKD,QAAA,MAAM,eAAe;;;;;;;6CAuMpB,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -112,7 +112,7 @@ var FilterGroupComponent = function (_a) {
112
112
  return (_jsxs("div", { className: 'primary-filter-fieldset solid-filter-group-shell', children: [_jsx("div", { className: "solid-filter-group-operator-wrap", children: _jsx(SolidSelect, { value: group.matchOperator, options: [
113
113
  { label: "OR", value: FilterOperator.OR },
114
114
  { label: "AND", value: FilterOperator.AND },
115
- ], placeholder: "Operator", className: "solid-filter-group-operator-select", onChange: function (event) { return onChange(group.id, 'matchOperator', event.value); } }) }), group.children && group.children.map(function (rule) { return (rule.type === FilterRuleType.RULE
115
+ ], native: false, placeholder: "Operator", className: "solid-filter-group-operator-select", onChange: function (event) { return onChange(group.id, 'matchOperator', event.value); } }) }), group.children && group.children.map(function (rule) { return (rule.type === FilterRuleType.RULE
116
116
  ? _jsx(FilterRuleComponent, { viewData: viewData, fields: fields, rule: rule, onChange: onChange, onAddRule: onAddRule, onAddGroup: onAddGroup, onDelete: onDelete, level: level + 1 }, rule.id)
117
117
  : _jsx(FilterGroupComponent, { viewData: viewData, fields: fields, group: rule, onChange: onChange, onAddRule: onAddRule, onAddGroup: onAddGroup, onDelete: onDelete, level: level + 1 }, rule.id)); }), level === 0 &&
118
118
  _jsxs(SolidButton, { variant: "ghost", size: 'sm', onClick: function () { return onAddRule(group.id); }, className: 'px-0 mt-2 solid-filter-add-condition-btn', children: [_jsx(Plus, { size: 14 }), "Add Condition"] })] }));
@@ -1 +1 @@
1
- {"version":3,"file":"FilterComponent.js","sourceRoot":"","sources":["../../../../src/components/core/common/FilterComponent.tsx"],"names":[],"mappings":"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","sourcesContent":["// @ts-nocheck\nimport React, { useState } from 'react';\nimport { SolidFilterFields } from '../filter/SolidFilterFields';\nimport { FolderPlus, Plus, Trash2 } from 'lucide-react';\nimport { SolidButton } from '../../shad-cn-ui/SolidButton';\nimport { SolidAutocomplete } from '../../shad-cn-ui/SolidAutocomplete';\nimport { SolidInput } from '../../shad-cn-ui/SolidInput';\nimport { SolidSelect } from '../../shad-cn-ui/SolidSelect';\nimport { FilterMatchMode, type FilterMatchModeValue } from '../filter/filterMatchMode';\n\nexport enum FilterRuleType {\n RULE = 'rule',\n RULE_GROUP = 'rule_group'\n}\n\nexport enum FilterOperator {\n AND = 'and',\n OR = 'or'\n}\n\nexport interface FilterRule {\n id: number;\n type: FilterRuleType;\n matchOperator?: FilterOperator;\n fieldName?: string | null;\n matchMode?: FilterMatchModeValue | null;\n value?: any;\n parentRule: number | null;\n children?: FilterRule[];\n}\n\nexport interface Field {\n name: string;\n type: 'string' | 'number' | 'date';\n}\n\n// const fields: Field[] = [\n// { name: 'name', type: 'string' },\n// { name: 'dob', type: 'date' },\n// { name: 'lastName', type: 'string' },\n// { name: 'amount', type: 'number' }\n// ];\n\nconst operatorOptions = {\n // string: [FilterMatchMode.CONTAINS, FilterMatchMode.EQUALS],\n // date: [FilterMatchMode.EQUALS, FilterMatchMode.GREATER_THAN, FilterMatchMode.LESS_THAN],\n // number: [FilterMatchMode.GREATER_THAN, FilterMatchMode.LESS_THAN],\n id: [FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.LESS_THAN, FilterMatchMode.LESS_THAN_OR_EQUAL_TO, FilterMatchMode.GREATER_THAN, FilterMatchMode.GREATER_THAN_OR_EQUAL_TO, FilterMatchMode.IN, FilterMatchMode.NOT_IN, FilterMatchMode.BETWEEN],\n int: [FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.LESS_THAN, FilterMatchMode.LESS_THAN_OR_EQUAL_TO, FilterMatchMode.GREATER_THAN, FilterMatchMode.GREATER_THAN_OR_EQUAL_TO, FilterMatchMode.IN, FilterMatchMode.NOT_IN, FilterMatchMode.BETWEEN],\n bigint: [FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.LESS_THAN, FilterMatchMode.LESS_THAN_OR_EQUAL_TO, FilterMatchMode.GREATER_THAN, FilterMatchMode.GREATER_THAN_OR_EQUAL_TO, FilterMatchMode.IN, FilterMatchMode.NOT_IN, FilterMatchMode.BETWEEN],\n float: [FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.LESS_THAN, FilterMatchMode.LESS_THAN_OR_EQUAL_TO, FilterMatchMode.GREATER_THAN, FilterMatchMode.GREATER_THAN_OR_EQUAL_TO, FilterMatchMode.IN, FilterMatchMode.NOT_IN, FilterMatchMode.BETWEEN],\n decimal: [FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.LESS_THAN, FilterMatchMode.LESS_THAN_OR_EQUAL_TO, FilterMatchMode.GREATER_THAN, FilterMatchMode.GREATER_THAN_OR_EQUAL_TO, FilterMatchMode.IN, FilterMatchMode.NOT_IN, FilterMatchMode.BETWEEN],\n shortText: [FilterMatchMode.STARTS_WITH, FilterMatchMode.CONTAINS, FilterMatchMode.NOT_CONTAINS, FilterMatchMode.ENDS_WITH, FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.IN, FilterMatchMode.NOT_IN],\n longText: [FilterMatchMode.STARTS_WITH, FilterMatchMode.CONTAINS, FilterMatchMode.NOT_CONTAINS, FilterMatchMode.ENDS_WITH, FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.IN, FilterMatchMode.NOT_IN],\n richText: [FilterMatchMode.STARTS_WITH, FilterMatchMode.CONTAINS, FilterMatchMode.NOT_CONTAINS, FilterMatchMode.ENDS_WITH, FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.IN, FilterMatchMode.NOT_IN],\n boolean: [FilterMatchMode.EQUALS],\n date: [FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.LESS_THAN, FilterMatchMode.LESS_THAN_OR_EQUAL_TO, FilterMatchMode.GREATER_THAN, FilterMatchMode.GREATER_THAN_OR_EQUAL_TO, FilterMatchMode.IN, FilterMatchMode.NOT_IN, FilterMatchMode.BETWEEN,],\n datetime: [FilterMatchMode.EQUALS],\n time: [FilterMatchMode.EQUALS],\n relation: [FilterMatchMode.IN, FilterMatchMode.NOT_IN],\n mediaSingle: [],\n mediaMultiple: [],\n selectionStatic: [FilterMatchMode.IN, FilterMatchMode.NOT_IN],\n selectionDynamic: [FilterMatchMode.IN, FilterMatchMode.NOT_IN],\n computed: [],\n externalId: [FilterMatchMode.IN, FilterMatchMode.NOT_IN],\n uuid: [FilterMatchMode.IN, FilterMatchMode.NOT_IN],\n\n};\n\nconst getRandomInt = (min, max) => {\n return Math.floor(Math.random() * (max - min + 1)) + min;\n}\n\n// Component to render a single filter rule\nconst FilterRuleComponent = ({ viewData, fields, rule, onChange, onAddRule, onAddGroup, onDelete, level }) => {\n // const applicableOperators = rule.fieldName ? operatorOptions[fields.find(f => f.name === rule.fieldName)?.value.type].map(e => { return { name: e } }) : [];\n // const applicableInputField = rule.fieldName ? fields.find(f => f.name === rule.fieldName)?.type : \"\";\n\n const [fieldName, setFieldName] = useState({ name: rule.fieldName });\n const [matchMode, setMatchMode] = useState({ name: rule.matchMode });\n\n const [filteredFields, setFilteredFields] = useState<any[]>([]);\n\n const searchFields = (event: any) => {\n const query = event.query.toLowerCase();\n const filtered = !query\n ? fields\n : fields.filter((item: any) =>\n item.name.toLowerCase().startsWith(query)\n );\n setFilteredFields(filtered);\n };\n return (\n <div className='solid-filter-rule-row'>\n <div className='solid-filter-rule-main'>\n <div className='solid-filter-rule-field'>\n <div className='solid-filter-control-wrap'>\n <SolidAutocomplete\n value={fieldName.name}\n suggestions={filteredFields}\n completeMethod={searchFields}\n field=\"name\"\n dropdown\n portal\n forceSelection // only values from list\n placeholder=\"Select Field\"\n className=\"w-full solid-filter-auto-complete-field solid-filter-compact-control\"\n onChange={(e) => {\n setFieldName({ name: e.value }); // e.value will be an object or null\n if (e.value && typeof e.value === \"object\" && e.value.value) {\n onChange(rule.id, 'fieldName', e.value.value); // send value to parent\n } else {\n onChange(rule.id, 'fieldName', '');\n onChange(rule.id, 'matchMode', null);\n onChange(rule.id, 'value', '');\n }\n }}\n />\n </div>\n </div>\n <div className='solid-filter-rule-value'>\n <div className='solid-filter-control-wrap'>\n {rule.fieldName ?\n <SolidFilterFields viewData={viewData} fieldMetadata={viewData.data.solidFieldsMetadata[rule.fieldName]} onChange={onChange} index={rule.id} rule={rule}></SolidFilterFields>\n : <div className='solid-filter-empty-pair'>\n <SolidInput\n disabled\n value=\"\"\n placeholder=\"Operator\"\n className='w-full solid-filter-compact-control'\n />\n <SolidInput\n disabled\n value=\"\"\n placeholder=\"Value\"\n className='w-full solid-filter-compact-control'\n />\n </div>\n }\n </div>\n </div>\n </div>\n <div className='solid-filter-rule-actions'>\n <SolidButton variant=\"ghost\" size='sm' onClick={() => onAddRule(rule.parentRule)} className='solid-filter-action-btn solid-filter-action-icon-btn'>\n <Plus size={14} />\n </SolidButton>\n <SolidButton variant=\"ghost\" size='sm' onClick={() => onAddGroup(rule.id)} className='solid-filter-action-btn solid-filter-action-icon-btn'>\n <FolderPlus size={14} />\n </SolidButton>\n <SolidButton variant=\"ghost\" size='sm' onClick={() => onDelete(rule.id)} className='solid-filter-action-btn solid-filter-action-icon-btn is-danger'>\n <Trash2 size={14} />\n </SolidButton>\n </div>\n\n {rule.children && rule.children.map(nestedRule => (\n <div className='nested-custom-filter' key={nestedRule.id}>\n {nestedRule.type === FilterRuleType.RULE\n ? <FilterRuleComponent key={nestedRule.id} viewData={viewData} fields={fields} rule={nestedRule} onChange={onChange} onAddRule={onAddRule} onAddGroup={onAddGroup} onDelete={onDelete} level={level + 1} />\n : <FilterGroupComponent key={nestedRule.id} viewData={viewData} fields={fields} group={nestedRule} onChange={onChange} onAddRule={onAddRule} onAddGroup={onAddGroup} onDelete={onDelete} level={level + 1} />\n }\n </div>\n ))}\n </div>\n );\n};\n\n// Component to render a group of filter rules\nconst FilterGroupComponent = ({ viewData, fields, group, onChange, onAddRule, onAddGroup, onDelete, level }) => {\n return (\n <div className='primary-filter-fieldset solid-filter-group-shell'>\n <div className=\"solid-filter-group-operator-wrap\">\n <SolidSelect\n value={group.matchOperator}\n options={[\n { label: \"OR\", value: FilterOperator.OR },\n { label: \"AND\", value: FilterOperator.AND },\n ]}\n placeholder=\"Operator\"\n className=\"solid-filter-group-operator-select\"\n onChange={(event) => onChange(group.id, 'matchOperator', event.value)}\n />\n </div>\n {group.children && group.children.map(rule => (\n rule.type === FilterRuleType.RULE\n ? <FilterRuleComponent key={rule.id} viewData={viewData} fields={fields} rule={rule} onChange={onChange} onAddRule={onAddRule} onAddGroup={onAddGroup} onDelete={onDelete} level={level + 1} />\n : <FilterGroupComponent key={rule.id} viewData={viewData} fields={fields} group={rule} onChange={onChange} onAddRule={onAddRule} onAddGroup={onAddGroup} onDelete={onDelete} level={level + 1} />\n ))}\n {/* Add Condition Button to add parent rule */}\n {level === 0 &&\n <SolidButton variant=\"ghost\" size='sm' onClick={() => onAddRule(group.id)} className='px-0 mt-2 solid-filter-add-condition-btn'>\n <Plus size={14} />\n Add Condition\n </SolidButton>\n }\n </div>\n );\n};\n\n// Main Filter component\nconst FilterComponent = ({ viewData, fields, filterRules, setFilterRules, transformFilterRules, closeDialog }) => {\n // const initialState: FilterRule[] = [\n // {\n // id: 1,\n // type: FilterRuleType.RULE_GROUP,\n // matchOperator: FilterOperator.OR,\n // parentRule: null,\n // children: [\n // {\n // id: Date.now() + getRandomInt(1, 500),\n // type: FilterRuleType.RULE,\n // fieldName: null,\n // matchMode: null,\n // value: null,\n // parentRule: 1,\n // children: []\n // }\n // ]\n // }\n // ];\n\n // const [filterRules, setFilterRules] = useState<FilterRule[]>(initialState);\n const [printedState, setPrintedState] = useState<string>('');\n\n const addChild = (rules, parentId, newChild) => {\n return rules.map(rule => {\n if (rule.id === parentId) {\n return {\n ...rule,\n children: [...(rule.children || []), newChild]\n };\n } else if (rule.children) {\n return {\n ...rule,\n children: addChild(rule.children, parentId, newChild)\n };\n }\n return rule;\n });\n };\n\n const handleChange = (id, key, value) => {\n const updateRuleRecursively = (rules) => {\n return rules.map(rule => {\n if (rule.id === id) {\n return { ...rule, [key]: value };\n } else if (rule.children) {\n return {\n ...rule,\n children: updateRuleRecursively(rule.children)\n };\n }\n return rule;\n });\n };\n setFilterRules(prev => updateRuleRecursively(prev));\n };\n\n const handleAddRule = (parentGroupId) => {\n const newRule: FilterRule = {\n id: Date.now(),\n type: FilterRuleType.RULE,\n fieldName: null,\n matchMode: null,\n value: null,\n parentRule: parentGroupId,\n children: []\n };\n setFilterRules(prev => addChild(prev, parentGroupId, newRule));\n };\n\n const handleAddGroup = (parentRuleId) => {\n const newGroupId = Date.now();\n const newGroup: FilterRule = {\n id: newGroupId,\n type: FilterRuleType.RULE_GROUP,\n matchOperator: FilterOperator.AND,\n parentRule: parentRuleId,\n children: [\n {\n id: Date.now() + getRandomInt(1, 500),\n type: FilterRuleType.RULE,\n fieldName: null,\n matchMode: null,\n value: null,\n parentRule: newGroupId,\n children: []\n },\n {\n id: Date.now() + getRandomInt(1, 500),\n type: FilterRuleType.RULE,\n fieldName: null,\n matchMode: null,\n value: null,\n parentRule: newGroupId,\n children: []\n }\n ]\n };\n setFilterRules(prev => addChild(prev, parentRuleId, newGroup));\n };\n\n // const handleDeleteRule = (id) => {\n // const deleteRecursively = (rules, id) => {\n // return rules.filter(rule => rule.id !== id).map(rule => {\n // if (rule.children) {\n // return {\n // ...rule,\n // children: deleteRecursively(rule.children, id)\n // };\n // }\n // return rule;\n // });\n // };\n // setFilterRules(prev => deleteRecursively(prev, id));\n // };\n\n\n const removeEmptyGroups = (rule) => {\n if (rule.type === \"rule_group\" && rule.children.length === 0) {\n return null;\n }\n\n rule.children = rule.children\n .map(removeEmptyGroups) // Recursively process children\n .filter(child => child !== null); // Remove null values\n\n return rule;\n };\n\n\n const handleDeleteRule = (id) => {\n if (filterRules[0].children.length === 1 && filterRules[0].children[0].id === id) {\n return\n }\n const deleteRecursively = (rules, id, isRoot = false) => {\n const mappedData = rules\n .map(rule => {\n if (rule.id === id) {\n return null; // Remove the target rule\n }\n\n if (rule.children) {\n const updatedChildren = deleteRecursively(rule.children, id);\n\n // If this rule had children and now has none, keep it but set children to []\n if (rule.children.length > 0 && updatedChildren.length === 0) {\n return { ...rule, children: [] };\n }\n\n return { ...rule, children: updatedChildren };\n }\n\n return rule;\n })\n .filter(rule => rule !== null); // Remove null values\n\n return mappedData\n };\n\n setFilterRules(prevRules => [removeEmptyGroups(deleteRecursively(prevRules, id, true)[0])]);\n };\n\n\n\n\n\n // const handlePrintState = () => {\n // // setPrintedState(JSON.stringify(filterRules, null, 2)); // Pretty format the state\n // transformFilterRules(filterRules)\n // };\n\n\n\n\n return (\n <div className='solid-filter-builder'>\n {filterRules.map(rule => (\n <FilterGroupComponent\n key={rule.id}\n viewData={viewData}\n fields={fields}\n group={rule}\n onChange={handleChange}\n onAddRule={handleAddRule}\n onAddGroup={handleAddGroup}\n onDelete={handleDeleteRule}\n level={0} // Top-level group\n />\n ))}\n <div className='solid-filter-builder-actions'>\n <SolidButton variant=\"primary\" size=\"sm\" onClick={() => transformFilterRules(filterRules)} type=\"submit\" className=\"solid-filter-submit-btn\">Apply</SolidButton>\n <SolidButton type='button' variant=\"outline\" size='sm' onClick={closeDialog} className=\"solid-filter-cancel-btn\">Cancel</SolidButton>\n {/* \n <br></br>\n <textarea value={printedState} readOnly rows={20} cols={100} style={{ marginTop: '20px' }} /> */}\n </div>\n </div>\n );\n};\n\nexport default FilterComponent;\n"]}
1
+ {"version":3,"file":"FilterComponent.js","sourceRoot":"","sources":["../../../../src/components/core/common/FilterComponent.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,cAAc;AACd,OAAc,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAA6B,MAAM,2BAA2B,CAAC;AAEvF,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,+BAAa,CAAA;IACb,2CAAyB,CAAA;AAC3B,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB;AAED,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,6BAAW,CAAA;IACX,2BAAS,CAAA;AACX,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB;AAkBD,4BAA4B;AAC5B,sCAAsC;AACtC,mCAAmC;AACnC,0CAA0C;AAC1C,uCAAuC;AACvC,KAAK;AAEL,IAAM,eAAe,GAAG;IACtB,8DAA8D;IAC9D,2FAA2F;IAC3F,qEAAqE;IACrE,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,UAAU,EAAE,eAAe,CAAC,SAAS,EAAE,eAAe,CAAC,qBAAqB,EAAE,eAAe,CAAC,YAAY,EAAE,eAAe,CAAC,wBAAwB,EAAE,eAAe,CAAC,EAAE,EAAE,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC;IACvQ,GAAG,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,UAAU,EAAE,eAAe,CAAC,SAAS,EAAE,eAAe,CAAC,qBAAqB,EAAE,eAAe,CAAC,YAAY,EAAE,eAAe,CAAC,wBAAwB,EAAE,eAAe,CAAC,EAAE,EAAE,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC;IACxQ,MAAM,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,UAAU,EAAE,eAAe,CAAC,SAAS,EAAE,eAAe,CAAC,qBAAqB,EAAE,eAAe,CAAC,YAAY,EAAE,eAAe,CAAC,wBAAwB,EAAE,eAAe,CAAC,EAAE,EAAE,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC;IAC3Q,KAAK,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,UAAU,EAAE,eAAe,CAAC,SAAS,EAAE,eAAe,CAAC,qBAAqB,EAAE,eAAe,CAAC,YAAY,EAAE,eAAe,CAAC,wBAAwB,EAAE,eAAe,CAAC,EAAE,EAAE,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC;IAC1Q,OAAO,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,UAAU,EAAE,eAAe,CAAC,SAAS,EAAE,eAAe,CAAC,qBAAqB,EAAE,eAAe,CAAC,YAAY,EAAE,eAAe,CAAC,wBAAwB,EAAE,eAAe,CAAC,EAAE,EAAE,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC;IAC5Q,SAAS,EAAE,CAAC,eAAe,CAAC,WAAW,EAAE,eAAe,CAAC,QAAQ,EAAE,eAAe,CAAC,YAAY,EAAE,eAAe,CAAC,SAAS,EAAE,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,UAAU,EAAE,eAAe,CAAC,EAAE,EAAE,eAAe,CAAC,MAAM,CAAC;IAC3N,QAAQ,EAAE,CAAC,eAAe,CAAC,WAAW,EAAE,eAAe,CAAC,QAAQ,EAAE,eAAe,CAAC,YAAY,EAAE,eAAe,CAAC,SAAS,EAAE,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,UAAU,EAAE,eAAe,CAAC,EAAE,EAAE,eAAe,CAAC,MAAM,CAAC;IAC1N,QAAQ,EAAE,CAAC,eAAe,CAAC,WAAW,EAAE,eAAe,CAAC,QAAQ,EAAE,eAAe,CAAC,YAAY,EAAE,eAAe,CAAC,SAAS,EAAE,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,UAAU,EAAE,eAAe,CAAC,EAAE,EAAE,eAAe,CAAC,MAAM,CAAC;IAC1N,OAAO,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC;IACjC,IAAI,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,UAAU,EAAE,eAAe,CAAC,SAAS,EAAE,eAAe,CAAC,qBAAqB,EAAE,eAAe,CAAC,YAAY,EAAE,eAAe,CAAC,wBAAwB,EAAE,eAAe,CAAC,EAAE,EAAE,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,OAAO,EAAE;IAC1Q,QAAQ,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC;IAC9B,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,eAAe,CAAC,MAAM,CAAC;IACtD,WAAW,EAAE,EAAE;IACf,aAAa,EAAE,EAAE;IACjB,eAAe,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,eAAe,CAAC,MAAM,CAAC;IAC7D,gBAAgB,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,eAAe,CAAC,MAAM,CAAC;IAC9D,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,eAAe,CAAC,MAAM,CAAC;IACxD,IAAI,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,eAAe,CAAC,MAAM,CAAC;CAEnD,CAAC;AAEF,IAAM,YAAY,GAAG,UAAC,GAAG,EAAE,GAAG;IAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAC3D,CAAC,CAAA;AAED,2CAA2C;AAC3C,IAAM,mBAAmB,GAAG,UAAC,EAA4E;IACvG,+JAA+J;IAC/J,wGAAwG;QAF3E,QAAQ,cAAA,EAAE,MAAM,YAAA,EAAE,IAAI,UAAA,EAAE,QAAQ,cAAA,EAAE,SAAS,eAAA,EAAE,UAAU,gBAAA,EAAE,QAAQ,cAAA,EAAE,KAAK,WAAA;IAI/F,IAAA,KAA4B,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,EAA7D,SAAS,QAAA,EAAE,YAAY,QAAsC,CAAC;IAC/D,IAAA,KAA4B,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,EAA7D,SAAS,QAAA,EAAE,YAAY,QAAsC,CAAC;IAE/D,IAAA,KAAsC,QAAQ,CAAQ,EAAE,CAAC,EAAxD,cAAc,QAAA,EAAE,iBAAiB,QAAuB,CAAC;IAEhE,IAAM,YAAY,GAAG,UAAC,KAAU;QAC9B,IAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QACxC,IAAM,QAAQ,GAAG,CAAC,KAAK;YACrB,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAC,IAAS;gBACxB,OAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;YAAzC,CAAyC,CAC1C,CAAC;QACJ,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC,CAAC;IACF,OAAO,CACL,eAAK,SAAS,EAAC,uBAAuB,aACpC,eAAK,SAAS,EAAC,wBAAwB,aACrC,cAAK,SAAS,EAAC,yBAAyB,YACtC,cAAK,SAAS,EAAC,2BAA2B,YACxC,KAAC,iBAAiB,IAChB,KAAK,EAAE,SAAS,CAAC,IAAI,EACrB,WAAW,EAAE,cAAc,EAC3B,cAAc,EAAE,YAAY,EAC5B,KAAK,EAAC,MAAM,EACZ,QAAQ,QACR,MAAM,QACN,cAAc,CAAC,wBAAwB;wCACvC,WAAW,EAAC,cAAc,EAC1B,SAAS,EAAC,sEAAsE,EAChF,QAAQ,EAAE,UAAC,CAAC;oCACV,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,oCAAoC;oCACrE,IAAI,CAAC,CAAC,KAAK,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE;wCAC3D,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,uBAAuB;qCACvE;yCAAM;wCACL,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;wCACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;wCACrC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;qCAChC;gCACH,CAAC,GACD,GACE,GACF,EACN,cAAK,SAAS,EAAC,yBAAyB,YACtC,cAAK,SAAS,EAAC,2BAA2B,YACvC,IAAI,CAAC,SAAS,CAAC,CAAC;gCACf,KAAC,iBAAiB,IAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,GAAsB;gCAC7K,CAAC,CAAC,eAAK,SAAS,EAAC,yBAAyB,aACxC,KAAC,UAAU,IACT,QAAQ,QACR,KAAK,EAAC,EAAE,EACR,WAAW,EAAC,UAAU,EACtB,SAAS,EAAC,qCAAqC,GAC/C,EACF,KAAC,UAAU,IACT,QAAQ,QACR,KAAK,EAAC,EAAE,EACR,WAAW,EAAC,OAAO,EACnB,SAAS,EAAC,qCAAqC,GAC/C,IACE,GAEJ,GACF,IACF,EACN,eAAK,SAAS,EAAC,2BAA2B,aACxC,KAAC,WAAW,IAAC,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,cAAM,OAAA,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,EAA1B,CAA0B,EAAE,SAAS,EAAC,sDAAsD,YAChJ,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,GAAI,GACN,EACd,KAAC,WAAW,IAAC,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,cAAM,OAAA,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAnB,CAAmB,EAAE,SAAS,EAAC,sDAAsD,YACzI,KAAC,UAAU,IAAC,IAAI,EAAE,EAAE,GAAI,GACZ,EACd,KAAC,WAAW,IAAC,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,cAAM,OAAA,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAjB,CAAiB,EAAE,SAAS,EAAC,gEAAgE,YACjJ,KAAC,MAAM,IAAC,IAAI,EAAE,EAAE,GAAI,GACR,IACV,EAEL,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAA,UAAU,IAAI,OAAA,CAChD,cAAK,SAAS,EAAC,sBAAsB,YAClC,UAAU,CAAC,IAAI,KAAK,cAAc,CAAC,IAAI;oBACtC,CAAC,CAAC,KAAC,mBAAmB,IAAqB,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,IAA3K,UAAU,CAAC,EAAE,CAAkK;oBAC3M,CAAC,CAAC,KAAC,oBAAoB,IAAqB,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,IAA5K,UAAU,CAAC,EAAE,CAAmK,IAHtK,UAAU,CAAC,EAAE,CAKlD,CACP,EAPiD,CAOjD,CAAC,IACE,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,8CAA8C;AAC9C,IAAM,oBAAoB,GAAG,UAAC,EAA6E;QAA3E,QAAQ,cAAA,EAAE,MAAM,YAAA,EAAE,KAAK,WAAA,EAAE,QAAQ,cAAA,EAAE,SAAS,eAAA,EAAE,UAAU,gBAAA,EAAE,QAAQ,cAAA,EAAE,KAAK,WAAA;IACvG,OAAO,CACL,eAAK,SAAS,EAAC,kDAAkD,aAC/D,cAAK,SAAS,EAAC,kCAAkC,YAC/C,KAAC,WAAW,IACV,KAAK,EAAE,KAAK,CAAC,aAAa,EAC1B,OAAO,EAAE;wBACP,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC,EAAE,EAAE;wBACzC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,CAAC,GAAG,EAAE;qBAC5C,EACD,MAAM,EAAE,KAAK,EACb,WAAW,EAAC,UAAU,EACtB,SAAS,EAAC,oCAAoC,EAC9C,QAAQ,EAAE,UAAC,KAAK,IAAK,OAAA,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,EAAhD,CAAgD,GACrE,GACE,EACL,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,CAC5C,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,IAAI;gBAC/B,CAAC,CAAC,KAAC,mBAAmB,IAAe,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,IAA/J,IAAI,CAAC,EAAE,CAA4J;gBAC/L,CAAC,CAAC,KAAC,oBAAoB,IAAe,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,IAAhK,IAAI,CAAC,EAAE,CAA6J,CACpM,EAJ6C,CAI7C,CAAC,EAED,KAAK,KAAK,CAAC;gBACV,MAAC,WAAW,IAAC,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,cAAM,OAAA,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,EAAnB,CAAmB,EAAE,SAAS,EAAC,0CAA0C,aAC7H,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,GAAI,qBAEN,IAEZ,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,wBAAwB;AACxB,IAAM,eAAe,GAAG,UAAC,EAAoF;IAC3G,uCAAuC;IACvC,MAAM;IACN,aAAa;IACb,uCAAuC;IACvC,wCAAwC;IACxC,wBAAwB;IACxB,kBAAkB;IAClB,UAAU;IACV,iDAAiD;IACjD,qCAAqC;IACrC,2BAA2B;IAC3B,2BAA2B;IAC3B,uBAAuB;IACvB,yBAAyB;IACzB,uBAAuB;IACvB,UAAU;IACV,QAAQ;IACR,MAAM;IACN,KAAK;QAnBoB,QAAQ,cAAA,EAAE,MAAM,YAAA,EAAE,WAAW,iBAAA,EAAE,cAAc,oBAAA,EAAE,oBAAoB,0BAAA,EAAE,WAAW,iBAAA;IAqBzG,8EAA8E;IACxE,IAAA,KAAkC,QAAQ,CAAS,EAAE,CAAC,EAArD,YAAY,QAAA,EAAE,eAAe,QAAwB,CAAC;IAE7D,IAAM,QAAQ,GAAG,UAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ;QACzC,OAAO,KAAK,CAAC,GAAG,CAAC,UAAA,IAAI;YACnB,IAAI,IAAI,CAAC,EAAE,KAAK,QAAQ,EAAE;gBACxB,6BACK,IAAI,KACP,QAAQ,kCAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,UAAE,QAAQ,aAC7C;aACH;iBAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACxB,6BACK,IAAI,KACP,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,IACrD;aACH;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,IAAM,YAAY,GAAG,UAAC,EAAE,EAAE,GAAG,EAAE,KAAK;QAClC,IAAM,qBAAqB,GAAG,UAAC,KAAK;YAClC,OAAO,KAAK,CAAC,GAAG,CAAC,UAAA,IAAI;;gBACnB,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE;oBAClB,6BAAY,IAAI,gBAAG,GAAG,IAAG,KAAK,OAAG;iBAClC;qBAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACxB,6BACK,IAAI,KACP,QAAQ,EAAE,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAC9C;iBACH;gBACD,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QACF,cAAc,CAAC,UAAA,IAAI,IAAI,OAAA,qBAAqB,CAAC,IAAI,CAAC,EAA3B,CAA2B,CAAC,CAAC;IACtD,CAAC,CAAC;IAEF,IAAM,aAAa,GAAG,UAAC,aAAa;QAClC,IAAM,OAAO,GAAe;YAC1B,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;YACd,IAAI,EAAE,cAAc,CAAC,IAAI;YACzB,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,IAAI;YACX,UAAU,EAAE,aAAa;YACzB,QAAQ,EAAE,EAAE;SACb,CAAC;QACF,cAAc,CAAC,UAAA,IAAI,IAAI,OAAA,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,EAAtC,CAAsC,CAAC,CAAC;IACjE,CAAC,CAAC;IAEF,IAAM,cAAc,GAAG,UAAC,YAAY;QAClC,IAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC9B,IAAM,QAAQ,GAAe;YAC3B,EAAE,EAAE,UAAU;YACd,IAAI,EAAE,cAAc,CAAC,UAAU;YAC/B,aAAa,EAAE,cAAc,CAAC,GAAG;YACjC,UAAU,EAAE,YAAY;YACxB,QAAQ,EAAE;gBACR;oBACE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC;oBACrC,IAAI,EAAE,cAAc,CAAC,IAAI;oBACzB,SAAS,EAAE,IAAI;oBACf,SAAS,EAAE,IAAI;oBACf,KAAK,EAAE,IAAI;oBACX,UAAU,EAAE,UAAU;oBACtB,QAAQ,EAAE,EAAE;iBACb;gBACD;oBACE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC;oBACrC,IAAI,EAAE,cAAc,CAAC,IAAI;oBACzB,SAAS,EAAE,IAAI;oBACf,SAAS,EAAE,IAAI;oBACf,KAAK,EAAE,IAAI;oBACX,UAAU,EAAE,UAAU;oBACtB,QAAQ,EAAE,EAAE;iBACb;aACF;SACF,CAAC;QACF,cAAc,CAAC,UAAA,IAAI,IAAI,OAAA,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAtC,CAAsC,CAAC,CAAC;IACjE,CAAC,CAAC;IAEF,qCAAqC;IACrC,+CAA+C;IAC/C,gEAAgE;IAChE,6BAA6B;IAC7B,mBAAmB;IACnB,qBAAqB;IACrB,2DAA2D;IAC3D,aAAa;IACb,UAAU;IACV,qBAAqB;IACrB,UAAU;IACV,OAAO;IACP,yDAAyD;IACzD,KAAK;IAGL,IAAM,iBAAiB,GAAG,UAAC,IAAI;QAC7B,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5D,OAAO,IAAI,CAAC;SACb;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;aAC1B,GAAG,CAAC,iBAAiB,CAAC,CAAC,+BAA+B;aACtD,MAAM,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,KAAK,IAAI,EAAd,CAAc,CAAC,CAAC,CAAC,qBAAqB;QAEzD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAGF,IAAM,gBAAgB,GAAG,UAAC,EAAE;QAC1B,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;YAChF,OAAM;SACP;QACD,IAAM,iBAAiB,GAAG,UAAC,KAAK,EAAE,EAAE,EAAE,MAAc;YAAd,uBAAA,EAAA,cAAc;YAClD,IAAM,UAAU,GAAG,KAAK;iBACrB,GAAG,CAAC,UAAA,IAAI;gBACP,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE;oBAClB,OAAO,IAAI,CAAC,CAAC,yBAAyB;iBACvC;gBAED,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACjB,IAAM,eAAe,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;oBAE7D,6EAA6E;oBAC7E,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;wBAC5D,6BAAY,IAAI,KAAE,QAAQ,EAAE,EAAE,IAAG;qBAClC;oBAED,6BAAY,IAAI,KAAE,QAAQ,EAAE,eAAe,IAAG;iBAC/C;gBAED,OAAO,IAAI,CAAC;YACd,CAAC,CAAC;iBACD,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,KAAK,IAAI,EAAb,CAAa,CAAC,CAAC,CAAC,qBAAqB;YAEvD,OAAO,UAAU,CAAA;QACnB,CAAC,CAAC;QAEF,cAAc,CAAC,UAAA,SAAS,IAAI,OAAA,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,SAAS,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAA9D,CAA8D,CAAC,CAAC;IAC9F,CAAC,CAAC;IAMF,mCAAmC;IACnC,yFAAyF;IACzF,sCAAsC;IACtC,KAAK;IAKL,OAAO,CACL,eAAK,SAAS,EAAC,sBAAsB,aAClC,WAAW,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,CACvB,KAAC,oBAAoB,IAEnB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE,cAAc,EAC1B,QAAQ,EAAE,gBAAgB,EAC1B,KAAK,EAAE,CAAC,IARH,IAAI,CAAC,EAAE,CASZ,CACH,EAZwB,CAYxB,CAAC,EACF,eAAK,SAAS,EAAC,8BAA8B,aAC3C,KAAC,WAAW,IAAC,OAAO,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,cAAM,OAAA,oBAAoB,CAAC,WAAW,CAAC,EAAjC,CAAiC,EAAE,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,yBAAyB,sBAAoB,EAChK,KAAC,WAAW,IAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAC,yBAAyB,uBAAqB,IAIjI,IACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC","sourcesContent":["// @ts-nocheck\nimport React, { useState } from 'react';\nimport { SolidFilterFields } from '../filter/SolidFilterFields';\nimport { FolderPlus, Plus, Trash2 } from 'lucide-react';\nimport { SolidButton } from '../../shad-cn-ui/SolidButton';\nimport { SolidAutocomplete } from '../../shad-cn-ui/SolidAutocomplete';\nimport { SolidInput } from '../../shad-cn-ui/SolidInput';\nimport { SolidSelect } from '../../shad-cn-ui/SolidSelect';\nimport { FilterMatchMode, type FilterMatchModeValue } from '../filter/filterMatchMode';\n\nexport enum FilterRuleType {\n RULE = 'rule',\n RULE_GROUP = 'rule_group'\n}\n\nexport enum FilterOperator {\n AND = 'and',\n OR = 'or'\n}\n\nexport interface FilterRule {\n id: number;\n type: FilterRuleType;\n matchOperator?: FilterOperator;\n fieldName?: string | null;\n matchMode?: FilterMatchModeValue | null;\n value?: any;\n parentRule: number | null;\n children?: FilterRule[];\n}\n\nexport interface Field {\n name: string;\n type: 'string' | 'number' | 'date';\n}\n\n// const fields: Field[] = [\n// { name: 'name', type: 'string' },\n// { name: 'dob', type: 'date' },\n// { name: 'lastName', type: 'string' },\n// { name: 'amount', type: 'number' }\n// ];\n\nconst operatorOptions = {\n // string: [FilterMatchMode.CONTAINS, FilterMatchMode.EQUALS],\n // date: [FilterMatchMode.EQUALS, FilterMatchMode.GREATER_THAN, FilterMatchMode.LESS_THAN],\n // number: [FilterMatchMode.GREATER_THAN, FilterMatchMode.LESS_THAN],\n id: [FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.LESS_THAN, FilterMatchMode.LESS_THAN_OR_EQUAL_TO, FilterMatchMode.GREATER_THAN, FilterMatchMode.GREATER_THAN_OR_EQUAL_TO, FilterMatchMode.IN, FilterMatchMode.NOT_IN, FilterMatchMode.BETWEEN],\n int: [FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.LESS_THAN, FilterMatchMode.LESS_THAN_OR_EQUAL_TO, FilterMatchMode.GREATER_THAN, FilterMatchMode.GREATER_THAN_OR_EQUAL_TO, FilterMatchMode.IN, FilterMatchMode.NOT_IN, FilterMatchMode.BETWEEN],\n bigint: [FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.LESS_THAN, FilterMatchMode.LESS_THAN_OR_EQUAL_TO, FilterMatchMode.GREATER_THAN, FilterMatchMode.GREATER_THAN_OR_EQUAL_TO, FilterMatchMode.IN, FilterMatchMode.NOT_IN, FilterMatchMode.BETWEEN],\n float: [FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.LESS_THAN, FilterMatchMode.LESS_THAN_OR_EQUAL_TO, FilterMatchMode.GREATER_THAN, FilterMatchMode.GREATER_THAN_OR_EQUAL_TO, FilterMatchMode.IN, FilterMatchMode.NOT_IN, FilterMatchMode.BETWEEN],\n decimal: [FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.LESS_THAN, FilterMatchMode.LESS_THAN_OR_EQUAL_TO, FilterMatchMode.GREATER_THAN, FilterMatchMode.GREATER_THAN_OR_EQUAL_TO, FilterMatchMode.IN, FilterMatchMode.NOT_IN, FilterMatchMode.BETWEEN],\n shortText: [FilterMatchMode.STARTS_WITH, FilterMatchMode.CONTAINS, FilterMatchMode.NOT_CONTAINS, FilterMatchMode.ENDS_WITH, FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.IN, FilterMatchMode.NOT_IN],\n longText: [FilterMatchMode.STARTS_WITH, FilterMatchMode.CONTAINS, FilterMatchMode.NOT_CONTAINS, FilterMatchMode.ENDS_WITH, FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.IN, FilterMatchMode.NOT_IN],\n richText: [FilterMatchMode.STARTS_WITH, FilterMatchMode.CONTAINS, FilterMatchMode.NOT_CONTAINS, FilterMatchMode.ENDS_WITH, FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.IN, FilterMatchMode.NOT_IN],\n boolean: [FilterMatchMode.EQUALS],\n date: [FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.LESS_THAN, FilterMatchMode.LESS_THAN_OR_EQUAL_TO, FilterMatchMode.GREATER_THAN, FilterMatchMode.GREATER_THAN_OR_EQUAL_TO, FilterMatchMode.IN, FilterMatchMode.NOT_IN, FilterMatchMode.BETWEEN,],\n datetime: [FilterMatchMode.EQUALS],\n time: [FilterMatchMode.EQUALS],\n relation: [FilterMatchMode.IN, FilterMatchMode.NOT_IN],\n mediaSingle: [],\n mediaMultiple: [],\n selectionStatic: [FilterMatchMode.IN, FilterMatchMode.NOT_IN],\n selectionDynamic: [FilterMatchMode.IN, FilterMatchMode.NOT_IN],\n computed: [],\n externalId: [FilterMatchMode.IN, FilterMatchMode.NOT_IN],\n uuid: [FilterMatchMode.IN, FilterMatchMode.NOT_IN],\n\n};\n\nconst getRandomInt = (min, max) => {\n return Math.floor(Math.random() * (max - min + 1)) + min;\n}\n\n// Component to render a single filter rule\nconst FilterRuleComponent = ({ viewData, fields, rule, onChange, onAddRule, onAddGroup, onDelete, level }) => {\n // const applicableOperators = rule.fieldName ? operatorOptions[fields.find(f => f.name === rule.fieldName)?.value.type].map(e => { return { name: e } }) : [];\n // const applicableInputField = rule.fieldName ? fields.find(f => f.name === rule.fieldName)?.type : \"\";\n\n const [fieldName, setFieldName] = useState({ name: rule.fieldName });\n const [matchMode, setMatchMode] = useState({ name: rule.matchMode });\n\n const [filteredFields, setFilteredFields] = useState<any[]>([]);\n\n const searchFields = (event: any) => {\n const query = event.query.toLowerCase();\n const filtered = !query\n ? fields\n : fields.filter((item: any) =>\n item.name.toLowerCase().startsWith(query)\n );\n setFilteredFields(filtered);\n };\n return (\n <div className='solid-filter-rule-row'>\n <div className='solid-filter-rule-main'>\n <div className='solid-filter-rule-field'>\n <div className='solid-filter-control-wrap'>\n <SolidAutocomplete\n value={fieldName.name}\n suggestions={filteredFields}\n completeMethod={searchFields}\n field=\"name\"\n dropdown\n portal\n forceSelection // only values from list\n placeholder=\"Select Field\"\n className=\"w-full solid-filter-auto-complete-field solid-filter-compact-control\"\n onChange={(e) => {\n setFieldName({ name: e.value }); // e.value will be an object or null\n if (e.value && typeof e.value === \"object\" && e.value.value) {\n onChange(rule.id, 'fieldName', e.value.value); // send value to parent\n } else {\n onChange(rule.id, 'fieldName', '');\n onChange(rule.id, 'matchMode', null);\n onChange(rule.id, 'value', '');\n }\n }}\n />\n </div>\n </div>\n <div className='solid-filter-rule-value'>\n <div className='solid-filter-control-wrap'>\n {rule.fieldName ?\n <SolidFilterFields viewData={viewData} fieldMetadata={viewData.data.solidFieldsMetadata[rule.fieldName]} onChange={onChange} index={rule.id} rule={rule}></SolidFilterFields>\n : <div className='solid-filter-empty-pair'>\n <SolidInput\n disabled\n value=\"\"\n placeholder=\"Operator\"\n className='w-full solid-filter-compact-control'\n />\n <SolidInput\n disabled\n value=\"\"\n placeholder=\"Value\"\n className='w-full solid-filter-compact-control'\n />\n </div>\n }\n </div>\n </div>\n </div>\n <div className='solid-filter-rule-actions'>\n <SolidButton variant=\"ghost\" size='sm' onClick={() => onAddRule(rule.parentRule)} className='solid-filter-action-btn solid-filter-action-icon-btn'>\n <Plus size={14} />\n </SolidButton>\n <SolidButton variant=\"ghost\" size='sm' onClick={() => onAddGroup(rule.id)} className='solid-filter-action-btn solid-filter-action-icon-btn'>\n <FolderPlus size={14} />\n </SolidButton>\n <SolidButton variant=\"ghost\" size='sm' onClick={() => onDelete(rule.id)} className='solid-filter-action-btn solid-filter-action-icon-btn is-danger'>\n <Trash2 size={14} />\n </SolidButton>\n </div>\n\n {rule.children && rule.children.map(nestedRule => (\n <div className='nested-custom-filter' key={nestedRule.id}>\n {nestedRule.type === FilterRuleType.RULE\n ? <FilterRuleComponent key={nestedRule.id} viewData={viewData} fields={fields} rule={nestedRule} onChange={onChange} onAddRule={onAddRule} onAddGroup={onAddGroup} onDelete={onDelete} level={level + 1} />\n : <FilterGroupComponent key={nestedRule.id} viewData={viewData} fields={fields} group={nestedRule} onChange={onChange} onAddRule={onAddRule} onAddGroup={onAddGroup} onDelete={onDelete} level={level + 1} />\n }\n </div>\n ))}\n </div>\n );\n};\n\n// Component to render a group of filter rules\nconst FilterGroupComponent = ({ viewData, fields, group, onChange, onAddRule, onAddGroup, onDelete, level }) => {\n return (\n <div className='primary-filter-fieldset solid-filter-group-shell'>\n <div className=\"solid-filter-group-operator-wrap\">\n <SolidSelect\n value={group.matchOperator}\n options={[\n { label: \"OR\", value: FilterOperator.OR },\n { label: \"AND\", value: FilterOperator.AND },\n ]}\n native={false}\n placeholder=\"Operator\"\n className=\"solid-filter-group-operator-select\"\n onChange={(event) => onChange(group.id, 'matchOperator', event.value)}\n />\n </div>\n {group.children && group.children.map(rule => (\n rule.type === FilterRuleType.RULE\n ? <FilterRuleComponent key={rule.id} viewData={viewData} fields={fields} rule={rule} onChange={onChange} onAddRule={onAddRule} onAddGroup={onAddGroup} onDelete={onDelete} level={level + 1} />\n : <FilterGroupComponent key={rule.id} viewData={viewData} fields={fields} group={rule} onChange={onChange} onAddRule={onAddRule} onAddGroup={onAddGroup} onDelete={onDelete} level={level + 1} />\n ))}\n {/* Add Condition Button to add parent rule */}\n {level === 0 &&\n <SolidButton variant=\"ghost\" size='sm' onClick={() => onAddRule(group.id)} className='px-0 mt-2 solid-filter-add-condition-btn'>\n <Plus size={14} />\n Add Condition\n </SolidButton>\n }\n </div>\n );\n};\n\n// Main Filter component\nconst FilterComponent = ({ viewData, fields, filterRules, setFilterRules, transformFilterRules, closeDialog }) => {\n // const initialState: FilterRule[] = [\n // {\n // id: 1,\n // type: FilterRuleType.RULE_GROUP,\n // matchOperator: FilterOperator.OR,\n // parentRule: null,\n // children: [\n // {\n // id: Date.now() + getRandomInt(1, 500),\n // type: FilterRuleType.RULE,\n // fieldName: null,\n // matchMode: null,\n // value: null,\n // parentRule: 1,\n // children: []\n // }\n // ]\n // }\n // ];\n\n // const [filterRules, setFilterRules] = useState<FilterRule[]>(initialState);\n const [printedState, setPrintedState] = useState<string>('');\n\n const addChild = (rules, parentId, newChild) => {\n return rules.map(rule => {\n if (rule.id === parentId) {\n return {\n ...rule,\n children: [...(rule.children || []), newChild]\n };\n } else if (rule.children) {\n return {\n ...rule,\n children: addChild(rule.children, parentId, newChild)\n };\n }\n return rule;\n });\n };\n\n const handleChange = (id, key, value) => {\n const updateRuleRecursively = (rules) => {\n return rules.map(rule => {\n if (rule.id === id) {\n return { ...rule, [key]: value };\n } else if (rule.children) {\n return {\n ...rule,\n children: updateRuleRecursively(rule.children)\n };\n }\n return rule;\n });\n };\n setFilterRules(prev => updateRuleRecursively(prev));\n };\n\n const handleAddRule = (parentGroupId) => {\n const newRule: FilterRule = {\n id: Date.now(),\n type: FilterRuleType.RULE,\n fieldName: null,\n matchMode: null,\n value: null,\n parentRule: parentGroupId,\n children: []\n };\n setFilterRules(prev => addChild(prev, parentGroupId, newRule));\n };\n\n const handleAddGroup = (parentRuleId) => {\n const newGroupId = Date.now();\n const newGroup: FilterRule = {\n id: newGroupId,\n type: FilterRuleType.RULE_GROUP,\n matchOperator: FilterOperator.AND,\n parentRule: parentRuleId,\n children: [\n {\n id: Date.now() + getRandomInt(1, 500),\n type: FilterRuleType.RULE,\n fieldName: null,\n matchMode: null,\n value: null,\n parentRule: newGroupId,\n children: []\n },\n {\n id: Date.now() + getRandomInt(1, 500),\n type: FilterRuleType.RULE,\n fieldName: null,\n matchMode: null,\n value: null,\n parentRule: newGroupId,\n children: []\n }\n ]\n };\n setFilterRules(prev => addChild(prev, parentRuleId, newGroup));\n };\n\n // const handleDeleteRule = (id) => {\n // const deleteRecursively = (rules, id) => {\n // return rules.filter(rule => rule.id !== id).map(rule => {\n // if (rule.children) {\n // return {\n // ...rule,\n // children: deleteRecursively(rule.children, id)\n // };\n // }\n // return rule;\n // });\n // };\n // setFilterRules(prev => deleteRecursively(prev, id));\n // };\n\n\n const removeEmptyGroups = (rule) => {\n if (rule.type === \"rule_group\" && rule.children.length === 0) {\n return null;\n }\n\n rule.children = rule.children\n .map(removeEmptyGroups) // Recursively process children\n .filter(child => child !== null); // Remove null values\n\n return rule;\n };\n\n\n const handleDeleteRule = (id) => {\n if (filterRules[0].children.length === 1 && filterRules[0].children[0].id === id) {\n return\n }\n const deleteRecursively = (rules, id, isRoot = false) => {\n const mappedData = rules\n .map(rule => {\n if (rule.id === id) {\n return null; // Remove the target rule\n }\n\n if (rule.children) {\n const updatedChildren = deleteRecursively(rule.children, id);\n\n // If this rule had children and now has none, keep it but set children to []\n if (rule.children.length > 0 && updatedChildren.length === 0) {\n return { ...rule, children: [] };\n }\n\n return { ...rule, children: updatedChildren };\n }\n\n return rule;\n })\n .filter(rule => rule !== null); // Remove null values\n\n return mappedData\n };\n\n setFilterRules(prevRules => [removeEmptyGroups(deleteRecursively(prevRules, id, true)[0])]);\n };\n\n\n\n\n\n // const handlePrintState = () => {\n // // setPrintedState(JSON.stringify(filterRules, null, 2)); // Pretty format the state\n // transformFilterRules(filterRules)\n // };\n\n\n\n\n return (\n <div className='solid-filter-builder'>\n {filterRules.map(rule => (\n <FilterGroupComponent\n key={rule.id}\n viewData={viewData}\n fields={fields}\n group={rule}\n onChange={handleChange}\n onAddRule={handleAddRule}\n onAddGroup={handleAddGroup}\n onDelete={handleDeleteRule}\n level={0} // Top-level group\n />\n ))}\n <div className='solid-filter-builder-actions'>\n <SolidButton variant=\"primary\" size=\"sm\" onClick={() => transformFilterRules(filterRules)} type=\"submit\" className=\"solid-filter-submit-btn\">Apply</SolidButton>\n <SolidButton type='button' variant=\"outline\" size='sm' onClick={closeDialog} className=\"solid-filter-cancel-btn\">Cancel</SolidButton>\n {/* \n <br></br>\n <textarea value={printedState} readOnly rows={20} cols={100} style={{ marginTop: '20px' }} /> */}\n </div>\n </div>\n );\n};\n\nexport default FilterComponent;\n"]}
@@ -176,6 +176,7 @@ const FilterGroupComponent = ({ viewData, fields, group, onChange, onAddRule, on
176
176
  { label: "OR", value: FilterOperator.OR },
177
177
  { label: "AND", value: FilterOperator.AND },
178
178
  ]}
179
+ native={false}
179
180
  placeholder="Operator"
180
181
  className="solid-filter-group-operator-select"
181
182
  onChange={(event) => onChange(group.id, 'matchOperator', event.value)}
@@ -1 +1 @@
1
- {"version":3,"file":"GroupingComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/core/common/GroupingComponent.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAmD5D,MAAM,MAAM,mBAAmB,GAC3B,OAAO,GACP,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,CAAC;AAEV,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,QAAQ,EAAE,mBAAmB,CAAC;IAE9B;;;;;;OAMG;IACH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,kBAAkB,GAC1B,MAAM,GACN,KAAK,GACL,SAAS,GACT,YAAY,CAAC;AAEjB,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IAEX;;;;;;;OAOG;IACH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB;;;OAGG;IACH,YAAY,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;CAC1C;AAED,QAAA,MAAM,iBAAiB;cASR,GAAG;YAAU,cAAc,EAAE;mBAAiB,YAAY,EAAE;sBAAoB,GAAG;sBAAoB,eAAe,EAAE;yBAAuB,GAAG;mBAAiB,GAAG;iBAAe,GAAG;6CA4PtM,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"GroupingComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/core/common/GroupingComponent.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAmD5D,MAAM,MAAM,mBAAmB,GAC3B,OAAO,GACP,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,CAAC;AAEV,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,QAAQ,EAAE,mBAAmB,CAAC;IAE9B;;;;;;OAMG;IACH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,kBAAkB,GAC1B,MAAM,GACN,KAAK,GACL,SAAS,GACT,YAAY,CAAC;AAEjB,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IAEX;;;;;;;OAOG;IACH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB;;;OAGG;IACH,YAAY,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;CAC1C;AAED,QAAA,MAAM,iBAAiB;cASR,GAAG;YAAU,cAAc,EAAE;mBAAiB,YAAY,EAAE;sBAAoB,GAAG;sBAAoB,eAAe,EAAE;yBAAuB,GAAG;mBAAiB,GAAG;iBAAe,GAAG;6CA8PtM,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -147,7 +147,7 @@ var GroupingComponent = function (_a) {
147
147
  if (!fieldMeta)
148
148
  return null;
149
149
  var isDate = ["date", "datetime"].includes(fieldMeta.type);
150
- return (_jsxs("div", { className: "solid-grouping-rule-row", children: [_jsx("div", { className: "solid-grouping-order-badge", children: index + 1 }), _jsxs("div", { className: "solid-grouping-rule-main", children: [_jsxs("div", { className: "solid-grouping-rule-title-row", children: [_jsx("div", { className: "solid-grouping-rule-title", children: fieldMeta.displayName }), _jsx("div", { className: "solid-grouping-rule-caption", children: index === 0 ? "Top-level grouping" : "Then group within level ".concat(index) })] }), isDate ? (_jsxs("div", { className: "solid-grouping-rule-controls", children: [_jsx("span", { className: "solid-grouping-inline-label", children: "Group by" }), _jsx(SolidSelect, { value: rule.dateGrouping || "YYYY-MM-DD", options: groupedDateFlatOptions, optionLabel: "label", optionValue: "value", placeholder: "Format", className: "solid-grouping-row-select", onChange: function (e) { return updateGroup(rule.id, "dateGrouping", e.value); } })] })) : (_jsx("div", { className: "solid-grouping-rule-summary", children: "Groups by exact value of this field." }))] }), _jsx("button", { type: "button", className: "solid-grouping-row-remove", onClick: function () { return removeGroup(rule.id); }, children: _jsx(SolidIcon, { name: "si-times" }) })] }, rule.id));
150
+ return (_jsxs("div", { className: "solid-grouping-rule-row", children: [_jsx("div", { className: "solid-grouping-order-badge", children: index + 1 }), _jsxs("div", { className: "solid-grouping-rule-main", children: [_jsxs("div", { className: "solid-grouping-rule-title-row", children: [_jsx("div", { className: "solid-grouping-rule-title", children: fieldMeta.displayName }), _jsx("div", { className: "solid-grouping-rule-caption", children: index === 0 ? "Top-level grouping" : "Then group within level ".concat(index) })] }), isDate ? (_jsxs("div", { className: "solid-grouping-rule-controls", children: [_jsx("span", { className: "solid-grouping-inline-label", children: "Group by" }), _jsx(SolidSelect, { value: rule.dateGrouping || "YYYY-MM-DD", options: groupedDateFlatOptions, optionLabel: "label", optionValue: "value", placeholder: "Format", className: "solid-grouping-row-select", onChange: function (e) { return updateGroup(rule.id, "dateGrouping", e.value); }, native: false })] })) : (_jsx("div", { className: "solid-grouping-rule-summary", children: "Groups by exact value of this field." }))] }), _jsx("button", { type: "button", className: "solid-grouping-row-remove", onClick: function () { return removeGroup(rule.id); }, children: _jsx(SolidIcon, { name: "si-times" }) })] }, rule.id));
151
151
  })] })] }), _jsxs("section", { className: "solid-grouping-section-card", children: [_jsx("div", { className: "solid-grouping-section-head", children: _jsxs("div", { children: [_jsx("p", { className: "m-0 solid-filter-section-title", children: "Aggregations" }), _jsx("p", { className: "m-0 solid-grouping-section-copy", children: "Add rollups to show counts or numeric summaries for each group." })] }) }), _jsx("div", { className: "solid-grouping-search-row", children: _jsx(SolidAutocomplete, { value: aggSearchValue, suggestions: filteredAggregationFields, completeMethod: searchAggregationFields, field: "displayName", placeholder: "Search field to aggregate", className: "w-full solid-filter-compact-control", dropdown: true, onChange: function (e) { return setAggSearchValue(e.value); }, onSelect: function (e) {
152
152
  if (typeof e.value === "object" && e.value.fieldName) {
153
153
  setAggregationRules(function (prev) { return __spreadArray(__spreadArray([], prev, true), [
@@ -159,7 +159,7 @@ var GroupingComponent = function (_a) {
159
159
  var fieldMeta = fields.find(function (f) { return f.fieldName === rule.fieldName; });
160
160
  if (!fieldMeta)
161
161
  return null;
162
- return (_jsxs("div", { className: "solid-aggregation-row", children: [_jsxs("div", { className: "solid-aggregation-row-main", children: [_jsx("div", { className: "solid-aggregation-row-title", children: fieldMeta.displayName }), _jsx("div", { className: "solid-aggregation-row-caption", children: rule.locked ? "Default aggregation" : "Applied to each group" })] }), _jsxs("div", { className: "solid-aggregation-row-controls", children: [_jsx("span", { className: "solid-grouping-inline-label", children: "Operation" }), _jsx(SolidSelect, { value: rule.operator, options: aggregateOperators, disabled: rule.locked, placeholder: "Op", className: "solid-grouping-row-select solid-aggregation-row-select", onChange: function (e) { return updateAggregation(rule.id, "operator", e.value); } })] }), !rule.locked ? (_jsx("button", { type: "button", className: "solid-grouping-row-remove solid-aggregation-row-remove", onClick: function () { return removeAggregation(rule.id); }, children: _jsx(SolidIcon, { name: "si-times" }) })) : (_jsx("span", { className: "solid-aggregation-row-remove-spacer", "aria-hidden": "true" }))] }, rule.id));
162
+ return (_jsxs("div", { className: "solid-aggregation-row", children: [_jsxs("div", { className: "solid-aggregation-row-main", children: [_jsx("div", { className: "solid-aggregation-row-title", children: fieldMeta.displayName }), _jsx("div", { className: "solid-aggregation-row-caption", children: rule.locked ? "Default aggregation" : "Applied to each group" })] }), _jsxs("div", { className: "solid-aggregation-row-controls", children: [_jsx("span", { className: "solid-grouping-inline-label", children: "Operation" }), _jsx(SolidSelect, { value: rule.operator, options: aggregateOperators, disabled: rule.locked, placeholder: "Op", className: "solid-grouping-row-select solid-aggregation-row-select", onChange: function (e) { return updateAggregation(rule.id, "operator", e.value); }, native: false })] }), !rule.locked ? (_jsx("button", { type: "button", className: "solid-grouping-row-remove solid-aggregation-row-remove", onClick: function () { return removeAggregation(rule.id); }, children: _jsx(SolidIcon, { name: "si-times" }) })) : (_jsx("span", { className: "solid-aggregation-row-remove-spacer", "aria-hidden": "true" }))] }, rule.id));
163
163
  })] })] }), _jsxs("div", { className: "solid-grouping-footer", children: [_jsxs(SolidButton, { size: "sm", variant: "outline", onClick: closeDialog, children: [_jsx(SolidIcon, { name: "si-times" }), "Cancel"] }), _jsxs(SolidButton, { size: "sm", variant: "primary", onClick: function () { return applyGrouping(groupingRules, aggregationRules); }, children: [_jsx(SolidIcon, { name: "si-check" }), "Apply"] })] })] }));
164
164
  };
165
165
  export default GroupingComponent;