@solidxai/core-ui 0.1.4-beta.0 → 0.1.4-beta.2

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 (162) hide show
  1. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.d.ts.map +1 -1
  2. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.js +8 -0
  3. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.js.map +1 -1
  4. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.tsx +8 -0
  5. package/dist/components/core/common/SolidAccountSettings/SolidVersionInfo.d.ts +2 -0
  6. package/dist/components/core/common/SolidAccountSettings/SolidVersionInfo.d.ts.map +1 -0
  7. package/dist/components/core/common/SolidAccountSettings/SolidVersionInfo.js +34 -0
  8. package/dist/components/core/common/SolidAccountSettings/SolidVersionInfo.js.map +1 -0
  9. package/dist/components/core/common/SolidAccountSettings/SolidVersionInfo.tsx +83 -0
  10. package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
  11. package/dist/components/core/common/SolidGlobalSearchElement.js +6 -8
  12. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  13. package/dist/components/core/common/SolidGlobalSearchElement.tsx +21 -21
  14. package/dist/components/core/dashboard/SolidDashboard.d.ts +1 -1
  15. package/dist/components/core/dashboard/SolidDashboard.d.ts.map +1 -1
  16. package/dist/components/core/dashboard/SolidDashboard.js.map +1 -1
  17. package/dist/components/core/dashboard/SolidDashboard.tsx +1 -1
  18. package/dist/components/core/dashboard/SolidDashboardVariable.js +1 -1
  19. package/dist/components/core/dashboard/SolidDashboardVariable.js.map +1 -1
  20. package/dist/components/core/dashboard/SolidDashboardVariable.tsx +1 -1
  21. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.d.ts.map +1 -1
  22. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js +15 -30
  23. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js.map +1 -1
  24. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.tsx +46 -36
  25. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts +40 -0
  26. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
  27. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +315 -160
  28. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
  29. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +459 -249
  30. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.d.ts.map +1 -1
  31. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js +46 -95
  32. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js.map +1 -1
  33. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.tsx +57 -113
  34. package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.d.ts +15 -5
  35. package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.d.ts.map +1 -1
  36. package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.js +203 -67
  37. package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.js.map +1 -1
  38. package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.ts +147 -67
  39. package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
  40. package/dist/components/core/kanban/SolidKanbanView.js +8 -7
  41. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  42. package/dist/components/core/kanban/SolidKanbanView.tsx +3 -2
  43. package/dist/components/core/list/SolidListView.d.ts +8 -5
  44. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  45. package/dist/components/core/list/SolidListView.js +95 -84
  46. package/dist/components/core/list/SolidListView.js.map +1 -1
  47. package/dist/components/core/list/SolidListView.tsx +55 -62
  48. package/dist/components/core/list/SolidListViewConfigure.d.ts +7 -0
  49. package/dist/components/core/list/SolidListViewConfigure.d.ts.map +1 -1
  50. package/dist/components/core/list/SolidListViewConfigure.js +6 -5
  51. package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
  52. package/dist/components/core/list/SolidListViewConfigure.tsx +21 -12
  53. package/dist/components/core/list/columns/SolidBooleanColumn.d.ts.map +1 -1
  54. package/dist/components/core/list/columns/SolidBooleanColumn.js +1 -24
  55. package/dist/components/core/list/columns/SolidBooleanColumn.js.map +1 -1
  56. package/dist/components/core/list/columns/SolidBooleanColumn.tsx +1 -35
  57. package/dist/components/core/list/columns/SolidDateColumn.d.ts +0 -5
  58. package/dist/components/core/list/columns/SolidDateColumn.d.ts.map +1 -1
  59. package/dist/components/core/list/columns/SolidDateColumn.js +1 -31
  60. package/dist/components/core/list/columns/SolidDateColumn.js.map +1 -1
  61. package/dist/components/core/list/columns/SolidDateColumn.tsx +2 -49
  62. package/dist/components/core/list/columns/SolidDatetimeColumn.d.ts.map +1 -1
  63. package/dist/components/core/list/columns/SolidDatetimeColumn.js +1 -20
  64. package/dist/components/core/list/columns/SolidDatetimeColumn.js.map +1 -1
  65. package/dist/components/core/list/columns/SolidDatetimeColumn.tsx +2 -37
  66. package/dist/components/core/list/columns/SolidExternalIdColumn.d.ts.map +1 -1
  67. package/dist/components/core/list/columns/SolidExternalIdColumn.js +1 -21
  68. package/dist/components/core/list/columns/SolidExternalIdColumn.js.map +1 -1
  69. package/dist/components/core/list/columns/SolidExternalIdColumn.tsx +1 -38
  70. package/dist/components/core/list/columns/SolidIdColumn.d.ts.map +1 -1
  71. package/dist/components/core/list/columns/SolidIdColumn.js +1 -21
  72. package/dist/components/core/list/columns/SolidIdColumn.js.map +1 -1
  73. package/dist/components/core/list/columns/SolidIdColumn.tsx +1 -36
  74. package/dist/components/core/list/columns/SolidIntColumn.d.ts.map +1 -1
  75. package/dist/components/core/list/columns/SolidIntColumn.js +1 -30
  76. package/dist/components/core/list/columns/SolidIntColumn.js.map +1 -1
  77. package/dist/components/core/list/columns/SolidIntColumn.tsx +2 -46
  78. package/dist/components/core/list/columns/SolidMediaMultipleColumn.d.ts.map +1 -1
  79. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js +1 -5
  80. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js.map +1 -1
  81. package/dist/components/core/list/columns/SolidMediaMultipleColumn.tsx +0 -7
  82. package/dist/components/core/list/columns/SolidMediaSingleColumn.d.ts.map +1 -1
  83. package/dist/components/core/list/columns/SolidMediaSingleColumn.js +1 -1
  84. package/dist/components/core/list/columns/SolidMediaSingleColumn.js.map +1 -1
  85. package/dist/components/core/list/columns/SolidMediaSingleColumn.tsx +0 -1
  86. package/dist/components/core/list/columns/SolidSelectionDynamicColumn.d.ts.map +1 -1
  87. package/dist/components/core/list/columns/SolidSelectionDynamicColumn.js +1 -21
  88. package/dist/components/core/list/columns/SolidSelectionDynamicColumn.js.map +1 -1
  89. package/dist/components/core/list/columns/SolidSelectionDynamicColumn.tsx +1 -37
  90. package/dist/components/core/list/columns/SolidSelectionStaticColumn.d.ts.map +1 -1
  91. package/dist/components/core/list/columns/SolidSelectionStaticColumn.js +1 -21
  92. package/dist/components/core/list/columns/SolidSelectionStaticColumn.js.map +1 -1
  93. package/dist/components/core/list/columns/SolidSelectionStaticColumn.tsx +1 -38
  94. package/dist/components/core/list/columns/SolidShortTextColumn.d.ts.map +1 -1
  95. package/dist/components/core/list/columns/SolidShortTextColumn.js +2 -66
  96. package/dist/components/core/list/columns/SolidShortTextColumn.js.map +1 -1
  97. package/dist/components/core/list/columns/SolidShortTextColumn.tsx +3 -86
  98. package/dist/components/core/list/columns/SolidTimeColumn.d.ts.map +1 -1
  99. package/dist/components/core/list/columns/SolidTimeColumn.js +1 -20
  100. package/dist/components/core/list/columns/SolidTimeColumn.js.map +1 -1
  101. package/dist/components/core/list/columns/SolidTimeColumn.tsx +2 -37
  102. package/dist/components/core/list/columns/SolidUuidColumn.d.ts.map +1 -1
  103. package/dist/components/core/list/columns/SolidUuidColumn.js +1 -21
  104. package/dist/components/core/list/columns/SolidUuidColumn.js.map +1 -1
  105. package/dist/components/core/list/columns/SolidUuidColumn.tsx +1 -37
  106. package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.d.ts.map +1 -1
  107. package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.js +1 -17
  108. package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.js.map +1 -1
  109. package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.tsx +2 -35
  110. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.d.ts.map +1 -1
  111. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js +10 -20
  112. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js.map +1 -1
  113. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx +15 -36
  114. package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.d.ts.map +1 -1
  115. package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.js +1 -15
  116. package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.js.map +1 -1
  117. package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.tsx +1 -31
  118. package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
  119. package/dist/components/core/tree/SolidTreeView.js +23 -14
  120. package/dist/components/core/tree/SolidTreeView.js.map +1 -1
  121. package/dist/components/core/tree/SolidTreeView.tsx +50 -16
  122. package/dist/helpers/registry.js +3 -1
  123. package/dist/helpers/registry.js.map +1 -1
  124. package/dist/helpers/registry.ts +4 -1
  125. package/dist/index.d.ts +3 -2
  126. package/dist/index.d.ts.map +1 -1
  127. package/dist/index.js +3 -2
  128. package/dist/index.js.map +1 -1
  129. package/dist/index.ts +5 -2
  130. package/dist/redux/api/fetchBaseQuery.js +4 -5
  131. package/dist/redux/api/fetchBaseQuery.js.map +1 -1
  132. package/dist/redux/api/fetchBaseQuery.tsx +4 -4
  133. package/dist/redux/api/solidSettingsApi.d.ts +2 -1
  134. package/dist/redux/api/solidSettingsApi.d.ts.map +1 -1
  135. package/dist/redux/api/solidSettingsApi.js +4 -1
  136. package/dist/redux/api/solidSettingsApi.js.map +1 -1
  137. package/dist/redux/api/solidSettingsApi.tsx +6 -1
  138. package/dist/redux/store/defaultStoreConfig.d.ts +1 -0
  139. package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
  140. package/dist/resources/globals.css +14 -0
  141. package/dist/routes/pages/admin/core/DashboardPage.d.ts +2 -0
  142. package/dist/routes/pages/admin/core/DashboardPage.d.ts.map +1 -0
  143. package/dist/routes/pages/admin/core/DashboardPage.js +14 -0
  144. package/dist/routes/pages/admin/core/DashboardPage.js.map +1 -0
  145. package/dist/routes/pages/admin/core/DashboardPage.tsx +17 -0
  146. package/dist/routes/pages/admin/core/ListPage.js +1 -1
  147. package/dist/routes/pages/admin/core/ListPage.js.map +1 -1
  148. package/dist/routes/pages/admin/core/ListPage.tsx +1 -1
  149. package/dist/routes/pages/admin/core/ModuleHomePage.d.ts.map +1 -1
  150. package/dist/routes/pages/admin/core/ModuleHomePage.js +4 -15
  151. package/dist/routes/pages/admin/core/ModuleHomePage.js.map +1 -1
  152. package/dist/routes/pages/admin/core/ModuleHomePage.tsx +4 -3
  153. package/dist/routes/solidRoutes.d.ts.map +1 -1
  154. package/dist/routes/solidRoutes.js +2 -0
  155. package/dist/routes/solidRoutes.js.map +1 -1
  156. package/dist/routes/solidRoutes.tsx +2 -0
  157. package/dist/routes/types.d.ts +1 -1
  158. package/dist/routes/types.d.ts.map +1 -1
  159. package/dist/routes/types.js.map +1 -1
  160. package/dist/routes/types.ts +1 -0
  161. package/dist/types/solid-core.d.ts +1 -1
  162. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SolidUuidColumn.js","sourceRoot":"","sources":["../../../../../src/components/core/list/columns/SolidUuidColumn.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { FilterMatchMode } from 'primereact/api';\nimport { Column, ColumnFilterElementTemplateOptions } from \"primereact/column\";\nimport { FormEvent } from \"primereact/ts-helpers\";\nimport { SolidListViewColumnParams } from '../SolidListViewColumn';\nimport { InputTypes, SolidVarInputsFilterElement } from \"../SolidVarInputsFilterElement\";\nimport SolidTableRowCell from '../SolidTableRowCell';\nimport { SolidListFieldWidgetProps } from '../../../../types/solid-core';\nimport { getExtensionComponent } from '../../../../helpers/registry';\n\nconst SolidUuidColumn = ({ solidListViewMetaData, fieldMetadata, column }: SolidListViewColumnParams) => {\n const filterable = column.attrs.filterable;\n const showFilterOperator = false;\n const columnDataType = 'text';\n const filterMatchModeOptions = [\n { label: 'In', value: FilterMatchMode.IN },\n { label: 'Not In', value: FilterMatchMode.NOT_IN },\n ];\n const filterTemplate = (options: ColumnFilterElementTemplateOptions) => {\n\n return (\n <SolidVarInputsFilterElement\n values={options.value}\n onChange={(e: FormEvent<HTMLInputElement>) => options.filterCallback(e, options.index)}\n inputType={InputTypes.Text}\n solidListViewMetaData={solidListViewMetaData}\n fieldMetadata={fieldMetadata}\n column={column}\n >\n </SolidVarInputsFilterElement>\n )\n }\n\n const truncateAfter = solidListViewMetaData?.data?.solidView?.layout?.attrs?.truncateAfter\n const header = column.attrs.label ?? fieldMetadata.displayName;\n\n return (\n <Column\n key={fieldMetadata.name}\n field={fieldMetadata.name}\n // header={header}\n // className=\"text-sm\"\n sortable={column.attrs.sortable}\n // filter={filterable}\n dataType={columnDataType}\n showFilterOperator={showFilterOperator}\n filterMatchModeOptions={filterMatchModeOptions}\n filterElement={filterTemplate}\n filterPlaceholder={`Search by ${fieldMetadata.displayName}`}\n // style={{ minWidth: \"12rem\" }}\n // headerClassName=\"table-header-fs\"\n header={() => {\n return (<div style={{ maxWidth: truncateAfter ? `${truncateAfter}ch` : '30ch', whiteSpace: 'nowrap', textOverflow: 'ellipsis', overflow: 'hidden' }}>{header}</div>)\n }}\n body={(rowData) => {\n let viewWidget = column.attrs.viewWidget;\n if (!viewWidget) {\n viewWidget = 'DefaultTextListWidget';\n }\n let DynamicWidget = getExtensionComponent(viewWidget);\n const widgetProps: SolidListFieldWidgetProps = {\n rowData,\n solidListViewMetaData,\n fieldMetadata,\n column\n }\n return (\n <>\n {DynamicWidget && <DynamicWidget {...widgetProps} />}\n </>\n )\n }\n }\n ></Column>\n );\n\n};\n\nexport default SolidUuidColumn;"]}
1
+ {"version":3,"file":"SolidUuidColumn.js","sourceRoot":"","sources":["../../../../../src/components/core/list/columns/SolidUuidColumn.tsx"],"names":[],"mappings":";;;;;;;;;;;;AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,IAAM,eAAe,GAAG,UAAC,EAA2E;;QAAzE,qBAAqB,2BAAA,EAAE,aAAa,mBAAA,EAAE,MAAM,YAAA;IACnE,IAAM,aAAa,GAAG,MAAA,MAAA,MAAA,MAAA,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,IAAI,0CAAE,SAAS,0CAAE,MAAM,0CAAE,KAAK,0CAAE,aAAa,CAAA;IAC1F,IAAM,MAAM,GAAG,MAAA,MAAM,CAAC,KAAK,CAAC,KAAK,mCAAI,aAAa,CAAC,WAAW,CAAC;IAE/D,OAAO,CACH,KAAC,MAAM,IAEH,KAAK,EAAE,aAAa,CAAC,IAAI,EACzB,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAC/B,MAAM,EAAE;YACJ,OAAO,CAAC,cAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,UAAG,aAAa,OAAI,CAAC,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAG,MAAM,GAAO,CAAC,CAAA;QACxK,CAAC,EACD,IAAI,EAAE,UAAC,OAAO;YACV,IAAI,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;YACzC,IAAI,CAAC,UAAU,EAAE;gBACb,UAAU,GAAG,uBAAuB,CAAC;aACxC;YACD,IAAI,aAAa,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;YACtD,IAAM,WAAW,GAA8B;gBAC3C,OAAO,SAAA;gBACP,qBAAqB,uBAAA;gBACrB,aAAa,eAAA;gBACb,MAAM,QAAA;aACT,CAAA;YACD,OAAO,CACH,4BACK,aAAa,IAAI,KAAC,aAAa,eAAK,WAAW,EAAI,GACrD,CACN,CAAA;QACL,CAAC,IAvBI,aAAa,CAAC,IAAI,CAyBjB,CACb,CAAC;AAEN,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC","sourcesContent":["\nimport { Column } from \"primereact/column\";\nimport { SolidListViewColumnParams } from '../SolidListViewColumn';\nimport { SolidListFieldWidgetProps } from '../../../../types/solid-core';\nimport { getExtensionComponent } from '../../../../helpers/registry';\n\nconst SolidUuidColumn = ({ solidListViewMetaData, fieldMetadata, column }: SolidListViewColumnParams) => {\n const truncateAfter = solidListViewMetaData?.data?.solidView?.layout?.attrs?.truncateAfter\n const header = column.attrs.label ?? fieldMetadata.displayName;\n\n return (\n <Column\n key={fieldMetadata.name}\n field={fieldMetadata.name}\n sortable={column.attrs.sortable}\n header={() => {\n return (<div style={{ maxWidth: truncateAfter ? `${truncateAfter}ch` : '30ch', whiteSpace: 'nowrap', textOverflow: 'ellipsis', overflow: 'hidden' }}>{header}</div>)\n }}\n body={(rowData) => {\n let viewWidget = column.attrs.viewWidget;\n if (!viewWidget) {\n viewWidget = 'DefaultTextListWidget';\n }\n let DynamicWidget = getExtensionComponent(viewWidget);\n const widgetProps: SolidListFieldWidgetProps = {\n rowData,\n solidListViewMetaData,\n fieldMetadata,\n column\n }\n return (\n <>\n {DynamicWidget && <DynamicWidget {...widgetProps} />}\n </>\n )\n }\n }\n ></Column>\n );\n\n};\n\nexport default SolidUuidColumn;"]}
@@ -1,36 +1,10 @@
1
1
 
2
- import { FilterMatchMode } from 'primereact/api';
3
- import { Column, ColumnFilterElementTemplateOptions } from "primereact/column";
4
- import { FormEvent } from "primereact/ts-helpers";
2
+ import { Column } from "primereact/column";
5
3
  import { SolidListViewColumnParams } from '../SolidListViewColumn';
6
- import { InputTypes, SolidVarInputsFilterElement } from "../SolidVarInputsFilterElement";
7
- import SolidTableRowCell from '../SolidTableRowCell';
8
4
  import { SolidListFieldWidgetProps } from '../../../../types/solid-core';
9
5
  import { getExtensionComponent } from '../../../../helpers/registry';
10
6
 
11
7
  const SolidUuidColumn = ({ solidListViewMetaData, fieldMetadata, column }: SolidListViewColumnParams) => {
12
- const filterable = column.attrs.filterable;
13
- const showFilterOperator = false;
14
- const columnDataType = 'text';
15
- const filterMatchModeOptions = [
16
- { label: 'In', value: FilterMatchMode.IN },
17
- { label: 'Not In', value: FilterMatchMode.NOT_IN },
18
- ];
19
- const filterTemplate = (options: ColumnFilterElementTemplateOptions) => {
20
-
21
- return (
22
- <SolidVarInputsFilterElement
23
- values={options.value}
24
- onChange={(e: FormEvent<HTMLInputElement>) => options.filterCallback(e, options.index)}
25
- inputType={InputTypes.Text}
26
- solidListViewMetaData={solidListViewMetaData}
27
- fieldMetadata={fieldMetadata}
28
- column={column}
29
- >
30
- </SolidVarInputsFilterElement>
31
- )
32
- }
33
-
34
8
  const truncateAfter = solidListViewMetaData?.data?.solidView?.layout?.attrs?.truncateAfter
35
9
  const header = column.attrs.label ?? fieldMetadata.displayName;
36
10
 
@@ -38,17 +12,7 @@ const SolidUuidColumn = ({ solidListViewMetaData, fieldMetadata, column }: Solid
38
12
  <Column
39
13
  key={fieldMetadata.name}
40
14
  field={fieldMetadata.name}
41
- // header={header}
42
- // className="text-sm"
43
15
  sortable={column.attrs.sortable}
44
- // filter={filterable}
45
- dataType={columnDataType}
46
- showFilterOperator={showFilterOperator}
47
- filterMatchModeOptions={filterMatchModeOptions}
48
- filterElement={filterTemplate}
49
- filterPlaceholder={`Search by ${fieldMetadata.displayName}`}
50
- // style={{ minWidth: "12rem" }}
51
- // headerClassName="table-header-fs"
52
16
  header={() => {
53
17
  return (<div style={{ maxWidth: truncateAfter ? `${truncateAfter}ch` : '30ch', whiteSpace: 'nowrap', textOverflow: 'ellipsis', overflow: 'hidden' }}>{header}</div>)
54
18
  }}
@@ -1 +1 @@
1
- {"version":3,"file":"SolidRelationManyToManyColumn.d.ts","sourceRoot":"","sources":["../../../../../../src/components/core/list/columns/relations/SolidRelationManyToManyColumn.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,yBAAyB,EAAE,MAAM,yDAAyD,CAAC;AAKpG,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAG5E,QAAA,MAAM,6BAA6B,qDAAsD,yBAAyB,4CA8DjH,CAAC;AAEF,eAAe,6BAA6B,CAAC;AAG7C,eAAO,MAAM,mCAAmC,8DAA+D,yBAAyB,4CA0BvI,CAAC"}
1
+ {"version":3,"file":"SolidRelationManyToManyColumn.d.ts","sourceRoot":"","sources":["../../../../../../src/components/core/list/columns/relations/SolidRelationManyToManyColumn.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,yDAAyD,CAAC;AAEpG,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAG5E,QAAA,MAAM,6BAA6B,qDAAsD,yBAAyB,4CAkCjH,CAAC;AAEF,eAAe,6BAA6B,CAAC;AAG7C,eAAO,MAAM,mCAAmC,8DAA+D,yBAAyB,4CA0BvI,CAAC"}
@@ -10,29 +10,13 @@ var __assign = (this && this.__assign) || function () {
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
12
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
13
- import { FilterMatchMode } from 'primereact/api';
14
13
  import { Column } from "primereact/column";
15
- import { InputTypes, SolidVarInputsFilterElement } from '../../../../../components/core/list/SolidVarInputsFilterElement';
16
14
  import { getExtensionComponent } from '../../../../../helpers/registry';
17
15
  var SolidRelationManyToManyColumn = function (_a) {
18
16
  var _b;
19
17
  var solidListViewMetaData = _a.solidListViewMetaData, fieldMetadata = _a.fieldMetadata, column = _a.column;
20
- var filterable = column.attrs.filterable;
21
- var showFilterOperator = false;
22
- var filterMatchModeOptions = [
23
- { label: 'In', value: FilterMatchMode.IN },
24
- { label: 'Not In', value: FilterMatchMode.NOT_IN },
25
- ];
26
- var columnDataType = undefined;
27
- var filterTemplate = function (options) {
28
- return (_jsx(SolidVarInputsFilterElement, { values: options.value, onChange: function (e) { return options.filterCallback(e, options.index); }, inputType: InputTypes.RelationManyToOne, solidListViewMetaData: solidListViewMetaData, fieldMetadata: fieldMetadata, column: column }));
29
- };
30
18
  var header = (_b = column.attrs.label) !== null && _b !== void 0 ? _b : fieldMetadata.displayName;
31
- return (_jsx(Column, { field: fieldMetadata.name, header: header,
32
- // className="text-sm"
33
- sortable: column.attrs.sortable,
34
- // filter={filterable}
35
- dataType: columnDataType, showFilterOperator: showFilterOperator, filterMatchModeOptions: filterMatchModeOptions, filterElement: filterTemplate, body: function (rowData) {
19
+ return (_jsx(Column, { field: fieldMetadata.name, header: header, sortable: column.attrs.sortable, body: function (rowData) {
36
20
  var viewWidget = column.attrs.viewWidget;
37
21
  if (!viewWidget) {
38
22
  viewWidget = 'DefaultRelationManyToManyListWidget';
@@ -1 +1 @@
1
- {"version":3,"file":"SolidRelationManyToManyColumn.js","sourceRoot":"","sources":["../../../../../../src/components/core/list/columns/relations/SolidRelationManyToManyColumn.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { FilterMatchMode } from 'primereact/api';\nimport { Column, ColumnFilterElementTemplateOptions } from \"primereact/column\";\nimport { FormEvent } from \"primereact/ts-helpers\";\nimport { SolidListViewColumnParams } from '../../../../../components/core/list/SolidListViewColumn';\nimport { InputTypes, SolidVarInputsFilterElement } from '../../../../../components/core/list/SolidVarInputsFilterElement';\nimport { Button } from 'primereact/button';\nimport { getExtensionComponent } from '../../../../../helpers/registry';\nimport { Chip } from 'primereact/chip';\nimport { SolidListFieldWidgetProps } from '../../../../../types/solid-core';\n\n\nconst SolidRelationManyToManyColumn = ({ solidListViewMetaData, fieldMetadata, column }: SolidListViewColumnParams) => {\n const filterable = column.attrs.filterable;\n const showFilterOperator = false;\n const filterMatchModeOptions = [\n { label: 'In', value: FilterMatchMode.IN },\n { label: 'Not In', value: FilterMatchMode.NOT_IN },\n ];\n const columnDataType = undefined;\n const filterTemplate = (options: ColumnFilterElementTemplateOptions) => {\n\n return (\n <SolidVarInputsFilterElement\n values={options.value}\n onChange={(e: FormEvent<HTMLInputElement>) => options.filterCallback(e, options.index)}\n inputType={InputTypes.RelationManyToOne}\n solidListViewMetaData={solidListViewMetaData}\n fieldMetadata={fieldMetadata}\n column={column}\n >\n </SolidVarInputsFilterElement>\n )\n };\n\n const header = column.attrs.label ?? fieldMetadata.displayName;\n\n return (\n <Column\n key={fieldMetadata.name}\n field={fieldMetadata.name}\n header={header}\n // className=\"text-sm\"\n sortable={column.attrs.sortable}\n // filter={filterable}\n dataType={columnDataType}\n showFilterOperator={showFilterOperator}\n filterMatchModeOptions={filterMatchModeOptions}\n filterElement={filterTemplate}\n body={(rowData) => {\n let viewWidget = column.attrs.viewWidget;\n if (!viewWidget) {\n viewWidget = 'DefaultRelationManyToManyListWidget';\n }\n let DynamicWidget = getExtensionComponent(viewWidget);\n const widgetProps: SolidListFieldWidgetProps = {\n rowData,\n solidListViewMetaData,\n fieldMetadata,\n column\n }\n return (\n <>\n {DynamicWidget && <DynamicWidget {...widgetProps} />}\n </>\n )\n }\n }\n filterPlaceholder={`Search by ${fieldMetadata.displayName}`}\n style={{ minWidth: \"12rem\" }}\n headerClassName=\"table-header-fs\"\n ></Column>\n );\n\n};\n\nexport default SolidRelationManyToManyColumn;\n\n\nexport const DefaultRelationManyToManyListWidget = ({ rowData, solidListViewMetaData, fieldMetadata, column }: SolidListFieldWidgetProps) => {\n const manyToManyFieldData = rowData[column.attrs.name];\n\n // This is the userkey that will be present within the rowData.\n if (manyToManyFieldData) {\n // Since this is a many-to-one field, we fetch the user key field of the associated model.\n const userKeyField = column?.attrs?.coModelFieldToDisplay ? column?.attrs?.coModelFieldToDisplay : fieldMetadata?.relationModel?.userKeyField?.name;\n const manyToManyColVal = manyToManyFieldData.map((f: any) => f[userKeyField]);\n\n // TODO: change this to use an anchor tag so that on click we open that entity form view. \n return (\n <>\n {manyToManyColVal.length > 0 &&\n <p>\n\n <span style={{backgroundColor: '#f5f5f5', padding: '7px', borderRadius: '4px'}}>{manyToManyColVal[0]}</span>\n <span style={{ color: \"#0895CD\", fontWeight: 'bold' }}>{manyToManyColVal.length - 1 > 0 ? ` +${manyToManyColVal.length - 1}` : \"\"}</span>\n\n </p >\n }\n </>\n )\n }\n else {\n return <span></span>\n }\n};"]}
1
+ {"version":3,"file":"SolidRelationManyToManyColumn.js","sourceRoot":"","sources":["../../../../../../src/components/core/list/columns/relations/SolidRelationManyToManyColumn.tsx"],"names":[],"mappings":";;;;;;;;;;;;AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAIxE,IAAM,6BAA6B,GAAG,UAAC,EAA2E;;QAAzE,qBAAqB,2BAAA,EAAE,aAAa,mBAAA,EAAE,MAAM,YAAA;IACjF,IAAM,MAAM,GAAG,MAAA,MAAM,CAAC,KAAK,CAAC,KAAK,mCAAI,aAAa,CAAC,WAAW,CAAC;IAE/D,OAAO,CACH,KAAC,MAAM,IAEH,KAAK,EAAE,aAAa,CAAC,IAAI,EACzB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAC/B,IAAI,EAAE,UAAC,OAAO;YACV,IAAI,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;YACzC,IAAI,CAAC,UAAU,EAAE;gBACb,UAAU,GAAG,qCAAqC,CAAC;aACtD;YACD,IAAI,aAAa,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;YACtD,IAAM,WAAW,GAA8B;gBAC3C,OAAO,SAAA;gBACP,qBAAqB,uBAAA;gBACrB,aAAa,eAAA;gBACb,MAAM,QAAA;aACT,CAAA;YACD,OAAO,CACH,4BACK,aAAa,IAAI,KAAC,aAAa,eAAK,WAAW,EAAI,GACrD,CACN,CAAA;QACL,CAAC,EAED,iBAAiB,EAAE,oBAAa,aAAa,CAAC,WAAW,CAAE,EAC3D,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAC5B,eAAe,EAAC,iBAAiB,IAzB5B,aAAa,CAAC,IAAI,CA0BjB,CACb,CAAC;AAEN,CAAC,CAAC;AAEF,eAAe,6BAA6B,CAAC;AAG7C,MAAM,CAAC,IAAM,mCAAmC,GAAG,UAAC,EAAoF;;QAAlF,OAAO,aAAA,EAAE,qBAAqB,2BAAA,EAAE,aAAa,mBAAA,EAAE,MAAM,YAAA;IACvG,IAAM,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEvD,+DAA+D;IAC/D,IAAI,mBAAmB,EAAE;QACrB,0FAA0F;QAC1F,IAAM,cAAY,GAAG,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,qBAAqB,EAAC,CAAC,CAAC,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,qBAAqB,CAAC,CAAC,CAAC,MAAA,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,aAAa,0CAAE,YAAY,0CAAE,IAAI,CAAC;QACpJ,IAAM,gBAAgB,GAAG,mBAAmB,CAAC,GAAG,CAAC,UAAC,CAAM,IAAK,OAAA,CAAC,CAAC,cAAY,CAAC,EAAf,CAAe,CAAC,CAAC;QAE9E,0FAA0F;QAC1F,OAAO,CACH,4BACK,gBAAgB,CAAC,MAAM,GAAG,CAAC;gBACxB,wBAEI,eAAM,KAAK,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAG,gBAAgB,CAAC,CAAC,CAAC,GAAQ,EAC9G,eAAM,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,YAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAK,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,CAAC,CAAC,EAAE,GAAQ,IAExI,GAEV,CACN,CAAA;KACJ;SACI;QACD,OAAO,gBAAa,CAAA;KACvB;AACL,CAAC,CAAC","sourcesContent":["\nimport { Column } from \"primereact/column\";\nimport { SolidListViewColumnParams } from '../../../../../components/core/list/SolidListViewColumn';\nimport { getExtensionComponent } from '../../../../../helpers/registry';\nimport { SolidListFieldWidgetProps } from '../../../../../types/solid-core';\n\n\nconst SolidRelationManyToManyColumn = ({ solidListViewMetaData, fieldMetadata, column }: SolidListViewColumnParams) => {\n const header = column.attrs.label ?? fieldMetadata.displayName;\n\n return (\n <Column\n key={fieldMetadata.name}\n field={fieldMetadata.name}\n header={header}\n sortable={column.attrs.sortable}\n body={(rowData) => {\n let viewWidget = column.attrs.viewWidget;\n if (!viewWidget) {\n viewWidget = 'DefaultRelationManyToManyListWidget';\n }\n let DynamicWidget = getExtensionComponent(viewWidget);\n const widgetProps: SolidListFieldWidgetProps = {\n rowData,\n solidListViewMetaData,\n fieldMetadata,\n column\n }\n return (\n <>\n {DynamicWidget && <DynamicWidget {...widgetProps} />}\n </>\n )\n }\n }\n filterPlaceholder={`Search by ${fieldMetadata.displayName}`}\n style={{ minWidth: \"12rem\" }}\n headerClassName=\"table-header-fs\"\n ></Column>\n );\n\n};\n\nexport default SolidRelationManyToManyColumn;\n\n\nexport const DefaultRelationManyToManyListWidget = ({ rowData, solidListViewMetaData, fieldMetadata, column }: SolidListFieldWidgetProps) => {\n const manyToManyFieldData = rowData[column.attrs.name];\n\n // This is the userkey that will be present within the rowData.\n if (manyToManyFieldData) {\n // Since this is a many-to-one field, we fetch the user key field of the associated model.\n const userKeyField = column?.attrs?.coModelFieldToDisplay ? column?.attrs?.coModelFieldToDisplay : fieldMetadata?.relationModel?.userKeyField?.name;\n const manyToManyColVal = manyToManyFieldData.map((f: any) => f[userKeyField]);\n\n // TODO: change this to use an anchor tag so that on click we open that entity form view. \n return (\n <>\n {manyToManyColVal.length > 0 &&\n <p>\n\n <span style={{ backgroundColor: '#f5f5f5', padding: '7px', borderRadius: '4px' }}>{manyToManyColVal[0]}</span>\n <span style={{ color: \"#0895CD\", fontWeight: 'bold' }}>{manyToManyColVal.length - 1 > 0 ? ` +${manyToManyColVal.length - 1}` : \"\"}</span>\n\n </p >\n }\n </>\n )\n }\n else {\n return <span></span>\n }\n};"]}
@@ -1,38 +1,11 @@
1
1
 
2
- import { FilterMatchMode } from 'primereact/api';
3
- import { Column, ColumnFilterElementTemplateOptions } from "primereact/column";
4
- import { FormEvent } from "primereact/ts-helpers";
2
+ import { Column } from "primereact/column";
5
3
  import { SolidListViewColumnParams } from '../../../../../components/core/list/SolidListViewColumn';
6
- import { InputTypes, SolidVarInputsFilterElement } from '../../../../../components/core/list/SolidVarInputsFilterElement';
7
- import { Button } from 'primereact/button';
8
4
  import { getExtensionComponent } from '../../../../../helpers/registry';
9
- import { Chip } from 'primereact/chip';
10
5
  import { SolidListFieldWidgetProps } from '../../../../../types/solid-core';
11
6
 
12
7
 
13
8
  const SolidRelationManyToManyColumn = ({ solidListViewMetaData, fieldMetadata, column }: SolidListViewColumnParams) => {
14
- const filterable = column.attrs.filterable;
15
- const showFilterOperator = false;
16
- const filterMatchModeOptions = [
17
- { label: 'In', value: FilterMatchMode.IN },
18
- { label: 'Not In', value: FilterMatchMode.NOT_IN },
19
- ];
20
- const columnDataType = undefined;
21
- const filterTemplate = (options: ColumnFilterElementTemplateOptions) => {
22
-
23
- return (
24
- <SolidVarInputsFilterElement
25
- values={options.value}
26
- onChange={(e: FormEvent<HTMLInputElement>) => options.filterCallback(e, options.index)}
27
- inputType={InputTypes.RelationManyToOne}
28
- solidListViewMetaData={solidListViewMetaData}
29
- fieldMetadata={fieldMetadata}
30
- column={column}
31
- >
32
- </SolidVarInputsFilterElement>
33
- )
34
- };
35
-
36
9
  const header = column.attrs.label ?? fieldMetadata.displayName;
37
10
 
38
11
  return (
@@ -40,13 +13,7 @@ const SolidRelationManyToManyColumn = ({ solidListViewMetaData, fieldMetadata, c
40
13
  key={fieldMetadata.name}
41
14
  field={fieldMetadata.name}
42
15
  header={header}
43
- // className="text-sm"
44
16
  sortable={column.attrs.sortable}
45
- // filter={filterable}
46
- dataType={columnDataType}
47
- showFilterOperator={showFilterOperator}
48
- filterMatchModeOptions={filterMatchModeOptions}
49
- filterElement={filterTemplate}
50
17
  body={(rowData) => {
51
18
  let viewWidget = column.attrs.viewWidget;
52
19
  if (!viewWidget) {
@@ -92,7 +59,7 @@ export const DefaultRelationManyToManyListWidget = ({ rowData, solidListViewMeta
92
59
  {manyToManyColVal.length > 0 &&
93
60
  <p>
94
61
 
95
- <span style={{backgroundColor: '#f5f5f5', padding: '7px', borderRadius: '4px'}}>{manyToManyColVal[0]}</span>
62
+ <span style={{ backgroundColor: '#f5f5f5', padding: '7px', borderRadius: '4px' }}>{manyToManyColVal[0]}</span>
96
63
  <span style={{ color: "#0895CD", fontWeight: 'bold' }}>{manyToManyColVal.length - 1 > 0 ? ` +${manyToManyColVal.length - 1}` : ""}</span>
97
64
 
98
65
  </p >
@@ -1 +1 @@
1
- {"version":3,"file":"SolidRelationManyToOneColumn.d.ts","sourceRoot":"","sources":["../../../../../../src/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,yBAAyB,EAAE,MAAM,yDAAyD,CAAC;AAGpG,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAK5E,QAAA,MAAM,4BAA4B,qDAAsD,yBAAyB,4CAiEhH,CAAC;AAEF,eAAe,4BAA4B,CAAC;AAG5C,eAAO,MAAM,kCAAkC,8DAA+D,yBAAyB,4CAkCtI,CAAC"}
1
+ {"version":3,"file":"SolidRelationManyToOneColumn.d.ts","sourceRoot":"","sources":["../../../../../../src/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,yDAAyD,CAAC;AAEpG,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAK5E,QAAA,MAAM,4BAA4B,qDAAsD,yBAAyB,4CAoChH,CAAC;AAEF,eAAe,4BAA4B,CAAC;AAG5C,eAAO,MAAM,kCAAkC,8DAA+D,yBAAyB,4CA6CtI,CAAC"}
@@ -10,9 +10,7 @@ var __assign = (this && this.__assign) || function () {
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
12
  import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
13
- import { FilterMatchMode } from 'primereact/api';
14
13
  import { Column } from "primereact/column";
15
- import { InputTypes, SolidVarInputsFilterElement } from '../../../../../components/core/list/SolidVarInputsFilterElement';
16
14
  import { getExtensionComponent } from '../../../../../helpers/registry';
17
15
  import { Button } from 'primereact/button';
18
16
  import { useRouter } from "../../../../../hooks/useRouter";
@@ -20,22 +18,10 @@ import { kebabCase } from 'change-case';
20
18
  var SolidRelationManyToOneColumn = function (_a) {
21
19
  var _b;
22
20
  var solidListViewMetaData = _a.solidListViewMetaData, fieldMetadata = _a.fieldMetadata, column = _a.column;
23
- var filterable = column.attrs.filterable;
24
- var showFilterOperator = false;
25
- var filterMatchModeOptions = [
26
- { label: 'In', value: FilterMatchMode.IN },
27
- { label: 'Not In', value: FilterMatchMode.NOT_IN },
28
- ];
29
- var columnDataType = undefined;
30
- var filterTemplate = function (options) {
31
- return (_jsx(SolidVarInputsFilterElement, { values: options.value, onChange: function (e) { return options.filterCallback(e, options.index); }, inputType: InputTypes.RelationManyToOne, solidListViewMetaData: solidListViewMetaData, fieldMetadata: fieldMetadata, column: column }));
32
- };
33
21
  var header = (_b = column.attrs.label) !== null && _b !== void 0 ? _b : fieldMetadata.displayName;
34
22
  return (_jsx(Column, { field: fieldMetadata.name, header: header,
35
23
  // className="text-sm"
36
- sortable: column.attrs.sortable,
37
- // filter={filterable}
38
- dataType: columnDataType, showFilterOperator: showFilterOperator, filterMatchModeOptions: filterMatchModeOptions, filterElement: filterTemplate, body: function (rowData) {
24
+ sortable: column.attrs.sortable, body: function (rowData) {
39
25
  var viewWidget = column.attrs.viewWidget;
40
26
  if (!viewWidget) {
41
27
  viewWidget = 'DefaultRelationManyToOneListWidget';
@@ -61,18 +47,22 @@ export var DefaultRelationManyToOneListWidget = function (_a) {
61
47
  // Since this is a many-to-one field, we fetch the user key field of the associated model.
62
48
  var userKeyField = ((_b = column === null || column === void 0 ? void 0 : column.attrs) === null || _b === void 0 ? void 0 : _b.coModelFieldToDisplay) ? (_c = column === null || column === void 0 ? void 0 : column.attrs) === null || _c === void 0 ? void 0 : _c.coModelFieldToDisplay : (_e = (_d = fieldMetadata === null || fieldMetadata === void 0 ? void 0 : fieldMetadata.relationModel) === null || _d === void 0 ? void 0 : _d.userKeyField) === null || _e === void 0 ? void 0 : _e.name;
63
49
  var manyToOneColVal = manyToOneFieldData[userKeyField];
64
- return (_jsx(Button, { label: manyToOneColVal, link: true, onClick: function () {
65
- var _a;
66
- // Get current path from browser
50
+ return (_jsx(Button, { label: manyToOneColVal, link: true, icon: "pi pi-external-link", iconPos: "right", className: "w-auto", onClick: function () {
51
+ var _a, _b;
67
52
  var pathSegments = window.location.pathname.split('/').filter(Boolean);
68
- // The modelName is the second-last segment before "list"
69
53
  var listIndex = pathSegments.lastIndexOf('list');
70
54
  if (listIndex > 0) {
71
55
  pathSegments[listIndex - 1] = kebabCase((_a = fieldMetadata === null || fieldMetadata === void 0 ? void 0 : fieldMetadata.relationModel) === null || _a === void 0 ? void 0 : _a.singularName);
72
56
  pathSegments[listIndex] = "form/".concat(manyToOneFieldData === null || manyToOneFieldData === void 0 ? void 0 : manyToOneFieldData.id);
73
57
  }
58
+ else if (pathSegments[pathSegments.length - 2] === "form") {
59
+ pathSegments[pathSegments.length - 3] = kebabCase((_b = fieldMetadata === null || fieldMetadata === void 0 ? void 0 : fieldMetadata.relationModel) === null || _b === void 0 ? void 0 : _b.singularName);
60
+ pathSegments[pathSegments.length - 2] = "form";
61
+ pathSegments[pathSegments.length - 1] = manyToOneFieldData === null || manyToOneFieldData === void 0 ? void 0 : manyToOneFieldData.id;
62
+ }
74
63
  var newPath = "/".concat(pathSegments.join('/'), "?viewMode=view");
75
- router.push(newPath);
64
+ // open in new tab
65
+ window.open(newPath, "_blank");
76
66
  } }));
77
67
  }
78
68
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"SolidRelationManyToOneColumn.js","sourceRoot":"","sources":["../../../../../../src/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { FilterMatchMode } from 'primereact/api';\nimport { Column, ColumnFilterElementTemplateOptions } from \"primereact/column\";\nimport { FormEvent } from \"primereact/ts-helpers\";\nimport { SolidListViewColumnParams } from '../../../../../components/core/list/SolidListViewColumn';\nimport { InputTypes, SolidVarInputsFilterElement } from '../../../../../components/core/list/SolidVarInputsFilterElement';\nimport { getExtensionComponent } from '../../../../../helpers/registry';\nimport { SolidListFieldWidgetProps } from '../../../../../types/solid-core';\nimport { Button } from 'primereact/button';\nimport { useRouter } from \"../../../../../hooks/useRouter\";\nimport { kebabCase } from 'change-case';\n\nconst SolidRelationManyToOneColumn = ({ solidListViewMetaData, fieldMetadata, column }: SolidListViewColumnParams) => {\n const filterable = column.attrs.filterable;\n const showFilterOperator = false;\n const filterMatchModeOptions = [\n { label: 'In', value: FilterMatchMode.IN },\n { label: 'Not In', value: FilterMatchMode.NOT_IN },\n ];\n const columnDataType = undefined;\n\n\n\n const filterTemplate = (options: ColumnFilterElementTemplateOptions) => {\n\n return (\n <SolidVarInputsFilterElement\n values={options.value}\n onChange={(e: FormEvent<HTMLInputElement>) => options.filterCallback(e, options.index)}\n inputType={InputTypes.RelationManyToOne}\n solidListViewMetaData={solidListViewMetaData}\n fieldMetadata={fieldMetadata}\n column={column}\n >\n </SolidVarInputsFilterElement>\n )\n };\n\n const header = column.attrs.label ?? fieldMetadata.displayName;\n\n return (\n <Column\n key={fieldMetadata.name}\n field={fieldMetadata.name}\n header={header}\n // className=\"text-sm\"\n sortable={column.attrs.sortable}\n // filter={filterable}\n dataType={columnDataType}\n showFilterOperator={showFilterOperator}\n filterMatchModeOptions={filterMatchModeOptions}\n filterElement={filterTemplate}\n body={(rowData) => {\n let viewWidget = column.attrs.viewWidget;\n if (!viewWidget) {\n viewWidget = 'DefaultRelationManyToOneListWidget';\n }\n let DynamicWidget = getExtensionComponent(viewWidget);\n const widgetProps: SolidListFieldWidgetProps = {\n rowData,\n solidListViewMetaData,\n fieldMetadata,\n column\n }\n return (\n <>\n {DynamicWidget && <DynamicWidget {...widgetProps} />}\n </>\n )\n }\n }\n filterPlaceholder={`Search by ${fieldMetadata.displayName}`}\n style={{ minWidth: \"12rem\" }}\n headerClassName=\"table-header-fs\"\n ></Column>\n );\n\n};\n\nexport default SolidRelationManyToOneColumn;\n\n\nexport const DefaultRelationManyToOneListWidget = ({ rowData, solidListViewMetaData, fieldMetadata, column }: SolidListFieldWidgetProps) => {\n const router = useRouter();\n const manyToOneFieldData = rowData[column.attrs.name];\n\n // This is the userkey that will be present within the rowData.\n if (manyToOneFieldData) {\n // Since this is a many-to-one field, we fetch the user key field of the associated model.\n const userKeyField = column?.attrs?.coModelFieldToDisplay ? column?.attrs?.coModelFieldToDisplay : fieldMetadata?.relationModel?.userKeyField?.name;\n\n const manyToOneColVal = manyToOneFieldData[userKeyField];\n\n return (\n <Button\n label={manyToOneColVal}\n link\n onClick={() => {\n // Get current path from browser\n const pathSegments = window.location.pathname.split('/').filter(Boolean);\n\n // The modelName is the second-last segment before \"list\"\n const listIndex = pathSegments.lastIndexOf('list');\n if (listIndex > 0) {\n pathSegments[listIndex - 1] = kebabCase(fieldMetadata?.relationModel?.singularName);\n pathSegments[listIndex] = `form/${manyToOneFieldData?.id}`;\n }\n const newPath = `/${pathSegments.join('/')}?viewMode=view`;\n router.push(newPath);\n }}\n />\n );\n }\n else {\n return <span></span>\n }\n};\n"]}
1
+ {"version":3,"file":"SolidRelationManyToOneColumn.js","sourceRoot":"","sources":["../../../../../../src/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { Column } from \"primereact/column\";\nimport { SolidListViewColumnParams } from '../../../../../components/core/list/SolidListViewColumn';\nimport { getExtensionComponent } from '../../../../../helpers/registry';\nimport { SolidListFieldWidgetProps } from '../../../../../types/solid-core';\nimport { Button } from 'primereact/button';\nimport { useRouter } from \"../../../../../hooks/useRouter\";\nimport { kebabCase } from 'change-case';\n\nconst SolidRelationManyToOneColumn = ({ solidListViewMetaData, fieldMetadata, column }: SolidListViewColumnParams) => {\n\n const header = column.attrs.label ?? fieldMetadata.displayName;\n\n return (\n <Column\n key={fieldMetadata.name}\n field={fieldMetadata.name}\n header={header}\n // className=\"text-sm\"\n sortable={column.attrs.sortable}\n body={(rowData) => {\n let viewWidget = column.attrs.viewWidget;\n if (!viewWidget) {\n viewWidget = 'DefaultRelationManyToOneListWidget';\n }\n let DynamicWidget = getExtensionComponent(viewWidget);\n const widgetProps: SolidListFieldWidgetProps = {\n rowData,\n solidListViewMetaData,\n fieldMetadata,\n column\n }\n return (\n <>\n {DynamicWidget && <DynamicWidget {...widgetProps} />}\n </>\n )\n }\n }\n filterPlaceholder={`Search by ${fieldMetadata.displayName}`}\n style={{ minWidth: \"12rem\" }}\n headerClassName=\"table-header-fs\"\n ></Column>\n );\n\n};\n\nexport default SolidRelationManyToOneColumn;\n\n\nexport const DefaultRelationManyToOneListWidget = ({ rowData, solidListViewMetaData, fieldMetadata, column }: SolidListFieldWidgetProps) => {\n const router = useRouter();\n const manyToOneFieldData = rowData[column.attrs.name];\n\n // This is the userkey that will be present within the rowData.\n if (manyToOneFieldData) {\n // Since this is a many-to-one field, we fetch the user key field of the associated model.\n const userKeyField = column?.attrs?.coModelFieldToDisplay ? column?.attrs?.coModelFieldToDisplay : fieldMetadata?.relationModel?.userKeyField?.name;\n\n const manyToOneColVal = manyToOneFieldData[userKeyField];\n\n return (\n <Button\n label={manyToOneColVal}\n link\n icon=\"pi pi-external-link\"\n iconPos=\"right\"\n className=\"w-auto\"\n onClick={() => {\n const pathSegments = window.location.pathname.split('/').filter(Boolean);\n\n const listIndex = pathSegments.lastIndexOf('list');\n\n if (listIndex > 0) {\n pathSegments[listIndex - 1] = kebabCase(fieldMetadata?.relationModel?.singularName);\n pathSegments[listIndex] = `form/${manyToOneFieldData?.id}`;\n }\n else if (pathSegments[pathSegments.length - 2] === \"form\") {\n pathSegments[pathSegments.length - 3] = kebabCase(fieldMetadata?.relationModel?.singularName);\n pathSegments[pathSegments.length - 2] = \"form\";\n pathSegments[pathSegments.length - 1] = manyToOneFieldData?.id;\n }\n\n const newPath = `/${pathSegments.join('/')}?viewMode=view`;\n\n // open in new tab\n window.open(newPath, \"_blank\");\n\n }}\n />\n );\n }\n else {\n return <span></span>\n }\n};\n"]}
@@ -1,9 +1,6 @@
1
1
 
2
- import { FilterMatchMode } from 'primereact/api';
3
- import { Column, ColumnFilterElementTemplateOptions } from "primereact/column";
4
- import { FormEvent } from "primereact/ts-helpers";
2
+ import { Column } from "primereact/column";
5
3
  import { SolidListViewColumnParams } from '../../../../../components/core/list/SolidListViewColumn';
6
- import { InputTypes, SolidVarInputsFilterElement } from '../../../../../components/core/list/SolidVarInputsFilterElement';
7
4
  import { getExtensionComponent } from '../../../../../helpers/registry';
8
5
  import { SolidListFieldWidgetProps } from '../../../../../types/solid-core';
9
6
  import { Button } from 'primereact/button';
@@ -11,30 +8,6 @@ import { useRouter } from "../../../../../hooks/useRouter";
11
8
  import { kebabCase } from 'change-case';
12
9
 
13
10
  const SolidRelationManyToOneColumn = ({ solidListViewMetaData, fieldMetadata, column }: SolidListViewColumnParams) => {
14
- const filterable = column.attrs.filterable;
15
- const showFilterOperator = false;
16
- const filterMatchModeOptions = [
17
- { label: 'In', value: FilterMatchMode.IN },
18
- { label: 'Not In', value: FilterMatchMode.NOT_IN },
19
- ];
20
- const columnDataType = undefined;
21
-
22
-
23
-
24
- const filterTemplate = (options: ColumnFilterElementTemplateOptions) => {
25
-
26
- return (
27
- <SolidVarInputsFilterElement
28
- values={options.value}
29
- onChange={(e: FormEvent<HTMLInputElement>) => options.filterCallback(e, options.index)}
30
- inputType={InputTypes.RelationManyToOne}
31
- solidListViewMetaData={solidListViewMetaData}
32
- fieldMetadata={fieldMetadata}
33
- column={column}
34
- >
35
- </SolidVarInputsFilterElement>
36
- )
37
- };
38
11
 
39
12
  const header = column.attrs.label ?? fieldMetadata.displayName;
40
13
 
@@ -45,11 +18,6 @@ const SolidRelationManyToOneColumn = ({ solidListViewMetaData, fieldMetadata, co
45
18
  header={header}
46
19
  // className="text-sm"
47
20
  sortable={column.attrs.sortable}
48
- // filter={filterable}
49
- dataType={columnDataType}
50
- showFilterOperator={showFilterOperator}
51
- filterMatchModeOptions={filterMatchModeOptions}
52
- filterElement={filterTemplate}
53
21
  body={(rowData) => {
54
22
  let viewWidget = column.attrs.viewWidget;
55
23
  if (!viewWidget) {
@@ -95,18 +63,29 @@ export const DefaultRelationManyToOneListWidget = ({ rowData, solidListViewMetaD
95
63
  <Button
96
64
  label={manyToOneColVal}
97
65
  link
66
+ icon="pi pi-external-link"
67
+ iconPos="right"
68
+ className="w-auto"
98
69
  onClick={() => {
99
- // Get current path from browser
100
70
  const pathSegments = window.location.pathname.split('/').filter(Boolean);
101
71
 
102
- // The modelName is the second-last segment before "list"
103
72
  const listIndex = pathSegments.lastIndexOf('list');
73
+
104
74
  if (listIndex > 0) {
105
75
  pathSegments[listIndex - 1] = kebabCase(fieldMetadata?.relationModel?.singularName);
106
76
  pathSegments[listIndex] = `form/${manyToOneFieldData?.id}`;
107
77
  }
78
+ else if (pathSegments[pathSegments.length - 2] === "form") {
79
+ pathSegments[pathSegments.length - 3] = kebabCase(fieldMetadata?.relationModel?.singularName);
80
+ pathSegments[pathSegments.length - 2] = "form";
81
+ pathSegments[pathSegments.length - 1] = manyToOneFieldData?.id;
82
+ }
83
+
108
84
  const newPath = `/${pathSegments.join('/')}?viewMode=view`;
109
- router.push(newPath);
85
+
86
+ // open in new tab
87
+ window.open(newPath, "_blank");
88
+
110
89
  }}
111
90
  />
112
91
  );
@@ -1 +1 @@
1
- {"version":3,"file":"SolidRelationOneToManyColumn.d.ts","sourceRoot":"","sources":["../../../../../../src/components/core/list/columns/relations/SolidRelationOneToManyColumn.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,yBAAyB,EAAE,MAAM,yDAAyD,CAAC;AAGpG,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAG5E,QAAA,MAAM,4BAA4B,qDAAsD,yBAAyB,4CA8DhH,CAAC;AAEF,eAAe,4BAA4B,CAAC;AAK5C,eAAO,MAAM,kCAAkC,8DAA+D,yBAAyB,4CA8BtI,CAAC"}
1
+ {"version":3,"file":"SolidRelationOneToManyColumn.d.ts","sourceRoot":"","sources":["../../../../../../src/components/core/list/columns/relations/SolidRelationOneToManyColumn.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,yDAAyD,CAAC;AACpG,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAG5E,QAAA,MAAM,4BAA4B,qDAAsD,yBAAyB,4CAoChH,CAAC;AAEF,eAAe,4BAA4B,CAAC;AAK5C,eAAO,MAAM,kCAAkC,8DAA+D,yBAAyB,4CA8BtI,CAAC"}
@@ -10,29 +10,15 @@ var __assign = (this && this.__assign) || function () {
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
12
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
13
- import { FilterMatchMode } from 'primereact/api';
14
13
  import { Column } from "primereact/column";
15
- import { InputTypes, SolidVarInputsFilterElement } from '../../../../../components/core/list/SolidVarInputsFilterElement';
16
14
  import { getExtensionComponent } from '../../../../../helpers/registry';
17
15
  var SolidRelationOneToManyColumn = function (_a) {
18
16
  var _b;
19
17
  var solidListViewMetaData = _a.solidListViewMetaData, fieldMetadata = _a.fieldMetadata, column = _a.column;
20
- var filterable = column.attrs.filterable;
21
- var showFilterOperator = false;
22
- var filterMatchModeOptions = [
23
- { label: 'In', value: FilterMatchMode.IN },
24
- { label: 'Not In', value: FilterMatchMode.NOT_IN },
25
- ];
26
- var columnDataType = undefined;
27
- var filterTemplate = function (options) {
28
- return (_jsx(SolidVarInputsFilterElement, { values: options.value, onChange: function (e) { return options.filterCallback(e, options.index); }, inputType: InputTypes.RelationManyToOne, solidListViewMetaData: solidListViewMetaData, fieldMetadata: fieldMetadata, column: column }));
29
- };
30
18
  var header = (_b = column.attrs.label) !== null && _b !== void 0 ? _b : fieldMetadata.displayName;
31
19
  return (_jsx(Column, { field: fieldMetadata.name, header: header,
32
20
  // className="text-sm"
33
- sortable: column.attrs.sortable,
34
- // filter={filterable}
35
- dataType: columnDataType, showFilterOperator: showFilterOperator, filterMatchModeOptions: filterMatchModeOptions, filterElement: filterTemplate, body: function (rowData) {
21
+ sortable: column.attrs.sortable, body: function (rowData) {
36
22
  var viewWidget = column.attrs.viewWidget;
37
23
  if (!viewWidget) {
38
24
  viewWidget = 'DefaultRelationOneToManyListWidget';
@@ -1 +1 @@
1
- {"version":3,"file":"SolidRelationOneToManyColumn.js","sourceRoot":"","sources":["../../../../../../src/components/core/list/columns/relations/SolidRelationOneToManyColumn.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { FilterMatchMode } from 'primereact/api';\nimport { Column, ColumnFilterElementTemplateOptions } from \"primereact/column\";\nimport { FormEvent } from \"primereact/ts-helpers\";\nimport { SolidListViewColumnParams } from '../../../../../components/core/list/SolidListViewColumn';\nimport { InputTypes, SolidVarInputsFilterElement } from '../../../../../components/core/list/SolidVarInputsFilterElement';\nimport { Button } from 'primereact/button';\nimport { SolidListFieldWidgetProps } from '../../../../../types/solid-core';\nimport { getExtensionComponent } from '../../../../../helpers/registry';\n\nconst SolidRelationOneToManyColumn = ({ solidListViewMetaData, fieldMetadata, column }: SolidListViewColumnParams) => {\n const filterable = column.attrs.filterable;\n const showFilterOperator = false;\n const filterMatchModeOptions = [\n { label: 'In', value: FilterMatchMode.IN },\n { label: 'Not In', value: FilterMatchMode.NOT_IN },\n ];\n const columnDataType = undefined;\n const filterTemplate = (options: ColumnFilterElementTemplateOptions) => {\n\n return (\n <SolidVarInputsFilterElement\n values={options.value}\n onChange={(e: FormEvent<HTMLInputElement>) => options.filterCallback(e, options.index)}\n inputType={InputTypes.RelationManyToOne}\n solidListViewMetaData={solidListViewMetaData}\n fieldMetadata={fieldMetadata}\n column={column}\n >\n </SolidVarInputsFilterElement>\n )\n };\n\n const header = column.attrs.label ?? fieldMetadata.displayName;\n\n return (\n <Column\n key={fieldMetadata.name}\n field={fieldMetadata.name}\n header={header}\n // className=\"text-sm\"\n sortable={column.attrs.sortable}\n // filter={filterable}\n dataType={columnDataType}\n showFilterOperator={showFilterOperator}\n filterMatchModeOptions={filterMatchModeOptions}\n filterElement={filterTemplate}\n body={(rowData) => {\n let viewWidget = column.attrs.viewWidget;\n if (!viewWidget) {\n viewWidget = 'DefaultRelationOneToManyListWidget';\n }\n let DynamicWidget = getExtensionComponent(viewWidget);\n const widgetProps: SolidListFieldWidgetProps = {\n rowData,\n solidListViewMetaData,\n fieldMetadata,\n column\n }\n return (\n <>\n {DynamicWidget && <DynamicWidget {...widgetProps} />}\n </>\n )\n }\n }\n filterPlaceholder={`Search by ${fieldMetadata.displayName}`}\n style={{ minWidth: \"12rem\" }}\n headerClassName=\"table-header-fs\"\n ></Column>\n );\n\n};\n\nexport default SolidRelationOneToManyColumn;\n\n\n\n\nexport const DefaultRelationOneToManyListWidget = ({ rowData, solidListViewMetaData, fieldMetadata, column }: SolidListFieldWidgetProps) => {\n const manyToManyFieldData = rowData[column.attrs.name];\n\n // This is the userkey that will be present within the rowData.\n if (manyToManyFieldData) {\n // Since this is a many-to-one field, we fetch the user key field of the associated model.\n const userKeyField = column?.attrs?.coModelFieldToDisplay ? column?.attrs?.coModelFieldToDisplay : fieldMetadata?.relationModel?.userKeyField?.name;\n\n const manyToManyColVal = manyToManyFieldData.map((f: any) => f[userKeyField]);\n\n // TODO: change this to use an anchor tag so that on click we open that entity form view. \n return (\n\n <>\n {manyToManyColVal.length > 0 &&\n <p>\n\n {manyToManyColVal[0] && <span style={{ backgroundColor: '#f5f5f5', padding: '7px', borderRadius: '4px' }}>{manyToManyColVal[0]}</span>}\n <span style={{ color: \"#0895CD\", fontWeight: 'bold' }}>{manyToManyColVal.length - 1 > 0 ? ` +${manyToManyColVal.length - 1}` : \"\"}</span>\n\n\n </p >\n }\n </>\n\n )\n }\n else {\n return <span></span>\n }\n};"]}
1
+ {"version":3,"file":"SolidRelationOneToManyColumn.js","sourceRoot":"","sources":["../../../../../../src/components/core/list/columns/relations/SolidRelationOneToManyColumn.tsx"],"names":[],"mappings":";;;;;;;;;;;;AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE,IAAM,4BAA4B,GAAG,UAAC,EAA2E;;QAAzE,qBAAqB,2BAAA,EAAE,aAAa,mBAAA,EAAE,MAAM,YAAA;IAEhF,IAAM,MAAM,GAAG,MAAA,MAAM,CAAC,KAAK,CAAC,KAAK,mCAAI,aAAa,CAAC,WAAW,CAAC;IAE/D,OAAO,CACH,KAAC,MAAM,IAEH,KAAK,EAAE,aAAa,CAAC,IAAI,EACzB,MAAM,EAAE,MAAM;QACd,sBAAsB;QACtB,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAC/B,IAAI,EAAE,UAAC,OAAO;YACV,IAAI,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;YACzC,IAAI,CAAC,UAAU,EAAE;gBACb,UAAU,GAAG,oCAAoC,CAAC;aACrD;YACD,IAAI,aAAa,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;YACtD,IAAM,WAAW,GAA8B;gBAC3C,OAAO,SAAA;gBACP,qBAAqB,uBAAA;gBACrB,aAAa,eAAA;gBACb,MAAM,QAAA;aACT,CAAA;YACD,OAAO,CACH,4BACK,aAAa,IAAI,KAAC,aAAa,eAAK,WAAW,EAAI,GACrD,CACN,CAAA;QACL,CAAC,EAED,iBAAiB,EAAE,oBAAa,aAAa,CAAC,WAAW,CAAE,EAC3D,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAC5B,eAAe,EAAC,iBAAiB,IA1B5B,aAAa,CAAC,IAAI,CA2BjB,CACb,CAAC;AAEN,CAAC,CAAC;AAEF,eAAe,4BAA4B,CAAC;AAK5C,MAAM,CAAC,IAAM,kCAAkC,GAAG,UAAC,EAAoF;;QAAlF,OAAO,aAAA,EAAE,qBAAqB,2BAAA,EAAE,aAAa,mBAAA,EAAE,MAAM,YAAA;IACtG,IAAM,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEvD,+DAA+D;IAC/D,IAAI,mBAAmB,EAAE;QACrB,0FAA0F;QAC1F,IAAM,cAAY,GAAG,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,qBAAqB,EAAC,CAAC,CAAC,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,qBAAqB,CAAC,CAAC,CAAC,MAAA,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,aAAa,0CAAE,YAAY,0CAAE,IAAI,CAAC;QAEpJ,IAAM,gBAAgB,GAAG,mBAAmB,CAAC,GAAG,CAAC,UAAC,CAAM,IAAK,OAAA,CAAC,CAAC,cAAY,CAAC,EAAf,CAAe,CAAC,CAAC;QAE9E,0FAA0F;QAC1F,OAAO,CAEH,4BACK,gBAAgB,CAAC,MAAM,GAAG,CAAC;gBACxB,wBAEK,gBAAgB,CAAC,CAAC,CAAC,IAAI,eAAM,KAAK,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAG,gBAAgB,CAAC,CAAC,CAAC,GAAQ,EACtI,eAAM,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,YAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAK,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,CAAC,CAAC,EAAE,GAAQ,IAGxI,GAEV,CAEN,CAAA;KACJ;SACI;QACD,OAAO,gBAAa,CAAA;KACvB;AACL,CAAC,CAAC","sourcesContent":["\nimport { Column } from \"primereact/column\";\nimport { SolidListViewColumnParams } from '../../../../../components/core/list/SolidListViewColumn';\nimport { SolidListFieldWidgetProps } from '../../../../../types/solid-core';\nimport { getExtensionComponent } from '../../../../../helpers/registry';\n\nconst SolidRelationOneToManyColumn = ({ solidListViewMetaData, fieldMetadata, column }: SolidListViewColumnParams) => {\n\n const header = column.attrs.label ?? fieldMetadata.displayName;\n\n return (\n <Column\n key={fieldMetadata.name}\n field={fieldMetadata.name}\n header={header}\n // className=\"text-sm\"\n sortable={column.attrs.sortable}\n body={(rowData) => {\n let viewWidget = column.attrs.viewWidget;\n if (!viewWidget) {\n viewWidget = 'DefaultRelationOneToManyListWidget';\n }\n let DynamicWidget = getExtensionComponent(viewWidget);\n const widgetProps: SolidListFieldWidgetProps = {\n rowData,\n solidListViewMetaData,\n fieldMetadata,\n column\n }\n return (\n <>\n {DynamicWidget && <DynamicWidget {...widgetProps} />}\n </>\n )\n }\n }\n filterPlaceholder={`Search by ${fieldMetadata.displayName}`}\n style={{ minWidth: \"12rem\" }}\n headerClassName=\"table-header-fs\"\n ></Column>\n );\n\n};\n\nexport default SolidRelationOneToManyColumn;\n\n\n\n\nexport const DefaultRelationOneToManyListWidget = ({ rowData, solidListViewMetaData, fieldMetadata, column }: SolidListFieldWidgetProps) => {\n const manyToManyFieldData = rowData[column.attrs.name];\n\n // This is the userkey that will be present within the rowData.\n if (manyToManyFieldData) {\n // Since this is a many-to-one field, we fetch the user key field of the associated model.\n const userKeyField = column?.attrs?.coModelFieldToDisplay ? column?.attrs?.coModelFieldToDisplay : fieldMetadata?.relationModel?.userKeyField?.name;\n\n const manyToManyColVal = manyToManyFieldData.map((f: any) => f[userKeyField]);\n\n // TODO: change this to use an anchor tag so that on click we open that entity form view. \n return (\n\n <>\n {manyToManyColVal.length > 0 &&\n <p>\n\n {manyToManyColVal[0] && <span style={{ backgroundColor: '#f5f5f5', padding: '7px', borderRadius: '4px' }}>{manyToManyColVal[0]}</span>}\n <span style={{ color: \"#0895CD\", fontWeight: 'bold' }}>{manyToManyColVal.length - 1 > 0 ? ` +${manyToManyColVal.length - 1}` : \"\"}</span>\n\n\n </p >\n }\n </>\n\n )\n }\n else {\n return <span></span>\n }\n};"]}
@@ -1,35 +1,10 @@
1
1
 
2
- import { FilterMatchMode } from 'primereact/api';
3
- import { Column, ColumnFilterElementTemplateOptions } from "primereact/column";
4
- import { FormEvent } from "primereact/ts-helpers";
2
+ import { Column } from "primereact/column";
5
3
  import { SolidListViewColumnParams } from '../../../../../components/core/list/SolidListViewColumn';
6
- import { InputTypes, SolidVarInputsFilterElement } from '../../../../../components/core/list/SolidVarInputsFilterElement';
7
- import { Button } from 'primereact/button';
8
4
  import { SolidListFieldWidgetProps } from '../../../../../types/solid-core';
9
5
  import { getExtensionComponent } from '../../../../../helpers/registry';
10
6
 
11
7
  const SolidRelationOneToManyColumn = ({ solidListViewMetaData, fieldMetadata, column }: SolidListViewColumnParams) => {
12
- const filterable = column.attrs.filterable;
13
- const showFilterOperator = false;
14
- const filterMatchModeOptions = [
15
- { label: 'In', value: FilterMatchMode.IN },
16
- { label: 'Not In', value: FilterMatchMode.NOT_IN },
17
- ];
18
- const columnDataType = undefined;
19
- const filterTemplate = (options: ColumnFilterElementTemplateOptions) => {
20
-
21
- return (
22
- <SolidVarInputsFilterElement
23
- values={options.value}
24
- onChange={(e: FormEvent<HTMLInputElement>) => options.filterCallback(e, options.index)}
25
- inputType={InputTypes.RelationManyToOne}
26
- solidListViewMetaData={solidListViewMetaData}
27
- fieldMetadata={fieldMetadata}
28
- column={column}
29
- >
30
- </SolidVarInputsFilterElement>
31
- )
32
- };
33
8
 
34
9
  const header = column.attrs.label ?? fieldMetadata.displayName;
35
10
 
@@ -40,11 +15,6 @@ const SolidRelationOneToManyColumn = ({ solidListViewMetaData, fieldMetadata, co
40
15
  header={header}
41
16
  // className="text-sm"
42
17
  sortable={column.attrs.sortable}
43
- // filter={filterable}
44
- dataType={columnDataType}
45
- showFilterOperator={showFilterOperator}
46
- filterMatchModeOptions={filterMatchModeOptions}
47
- filterElement={filterTemplate}
48
18
  body={(rowData) => {
49
19
  let viewWidget = column.attrs.viewWidget;
50
20
  if (!viewWidget) {
@@ -1 +1 @@
1
- {"version":3,"file":"SolidTreeView.d.ts","sourceRoot":"","sources":["../../../../src/components/core/tree/SolidTreeView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AAqCf,KAAK,mBAAmB,GAAG;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,YAAY,CAAC,EAAE,GAAG,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,WAAW,EAAE,CAAC,MAAM,EAAE;QACpB,uBAAuB,CAAC,EAAE,GAAG,CAAC;QAC9B,gBAAgB,CAAC,EAAE,GAAG,CAAC;QACvB,sBAAsB,CAAC,EAAE,GAAG,CAAC;QAC7B,2BAA2B,CAAC,EAAE,GAAG,CAAC;KACnC,KAAK,IAAI,CAAC;IACX,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7D,OAAO,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IACpE,eAAe,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,QAAQ,EAAE,MAAM;QACd,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACtB,YAAY,EAAE,OAAO,CAAC;QACtB,OAAO,EAAE,GAAG,CAAC;QACb,gBAAgB,EAAE,GAAG,CAAC;QACtB,QAAQ,EAAE,GAAG,EAAE,CAAC;QAChB,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;CACH,CAAC;AAsCF,eAAO,MAAM,aAAa,iGA48CxB,CAAC"}
1
+ {"version":3,"file":"SolidTreeView.d.ts","sourceRoot":"","sources":["../../../../src/components/core/tree/SolidTreeView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AAsCf,KAAK,mBAAmB,GAAG;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,YAAY,CAAC,EAAE,GAAG,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,WAAW,EAAE,CAAC,MAAM,EAAE;QACpB,uBAAuB,CAAC,EAAE,GAAG,CAAC;QAC9B,gBAAgB,CAAC,EAAE,GAAG,CAAC;QACvB,sBAAsB,CAAC,EAAE,GAAG,CAAC;QAC7B,2BAA2B,CAAC,EAAE,GAAG,CAAC;KACnC,KAAK,IAAI,CAAC;IACX,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7D,OAAO,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IACpE,eAAe,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,QAAQ,EAAE,MAAM;QACd,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACtB,YAAY,EAAE,OAAO,CAAC;QACtB,OAAO,EAAE,GAAG,CAAC;QACb,gBAAgB,EAAE,GAAG,CAAC;QACtB,QAAQ,EAAE,GAAG,EAAE,CAAC;QAChB,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;CACH,CAAC;AAsCF,eAAO,MAAM,aAAa,iGA6+CxB,CAAC"}