procode-vs-template 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/README.md +188 -0
  3. package/dist/actions.esm.js +53 -0
  4. package/dist/actions.esm.js.map +1 -0
  5. package/dist/actions.js +55 -0
  6. package/dist/actions.js.map +1 -0
  7. package/dist/assets/delete.png +0 -0
  8. package/dist/assets/info.svg +5 -0
  9. package/dist/assets/react.svg +1 -0
  10. package/dist/assets/styles/_tempalte-base.scss +5 -0
  11. package/dist/factories.esm.js +39149 -0
  12. package/dist/factories.esm.js.map +1 -0
  13. package/dist/factories.js +39169 -0
  14. package/dist/factories.js.map +1 -0
  15. package/dist/index.esm.js +39200 -0
  16. package/dist/index.esm.js.map +1 -0
  17. package/dist/index.js +39224 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/src/assets/styles/_tempalte-base.scss +5 -0
  20. package/dist/types/Action/TemplateActionFactory.d.ts +8 -0
  21. package/dist/types/Action/TemplateActionType.d.ts +8 -0
  22. package/dist/types/Action/TemplateActions/handleMenuNavigation.d.ts +1 -0
  23. package/dist/types/Factory/BaseType.d.ts +16 -0
  24. package/dist/types/Factory/TemplateWidgetFactory.d.ts +14 -0
  25. package/dist/types/Renderer/index.d.ts +2 -0
  26. package/dist/types/Widgets/Block/BlockView.d.ts +3 -0
  27. package/dist/types/Widgets/Block/index.d.ts +3 -0
  28. package/dist/types/Widgets/Block/types.d.ts +12 -0
  29. package/dist/types/Widgets/ConfirmationAlert/ConfirmationAlertView.d.ts +14 -0
  30. package/dist/types/Widgets/ConfirmationAlert/index.d.ts +11 -0
  31. package/dist/types/Widgets/GridToolBar/Components/AdvancedSearch/AdvancedSearch.d.ts +15 -0
  32. package/dist/types/Widgets/GridToolBar/Components/AdvancedSearch/AdvancedSearchView.d.ts +6 -0
  33. package/dist/types/Widgets/GridToolBar/Components/AdvancedSearch/Filter.d.ts +20 -0
  34. package/dist/types/Widgets/GridToolBar/Components/AdvancedSearch/FilterPopup.d.ts +13 -0
  35. package/dist/types/Widgets/GridToolBar/Components/AdvancedSearch/FilterPopupView.d.ts +25 -0
  36. package/dist/types/Widgets/GridToolBar/Components/AdvancedSearch/TypeBasedWidgetFactory.d.ts +8 -0
  37. package/dist/types/Widgets/GridToolBar/Components/AdvancedSearch/constant.d.ts +8 -0
  38. package/dist/types/Widgets/GridToolBar/Components/AdvancedSearch/helper/AdvancedSearchFunctions.d.ts +7 -0
  39. package/dist/types/Widgets/GridToolBar/Components/Export/Export.d.ts +14 -0
  40. package/dist/types/Widgets/GridToolBar/Components/Export/ExportPopup.d.ts +20 -0
  41. package/dist/types/Widgets/GridToolBar/Components/Export/ExportView.d.ts +6 -0
  42. package/dist/types/Widgets/GridToolBar/Components/Export/type.d.ts +4 -0
  43. package/dist/types/Widgets/GridToolBar/Components/GlobalSearch/GlobalSearch.d.ts +11 -0
  44. package/dist/types/Widgets/GridToolBar/Components/GlobalSearch/GlobalSearchView.d.ts +9 -0
  45. package/dist/types/Widgets/GridToolBar/Components/GroupBy/GroupByPopUp.d.ts +17 -0
  46. package/dist/types/Widgets/GridToolBar/Components/GroupBy/GroupByView.d.ts +6 -0
  47. package/dist/types/Widgets/GridToolBar/Components/GroupBy/index.d.ts +15 -0
  48. package/dist/types/Widgets/GridToolBar/Components/QuickFilter/FilterPopup.d.ts +10 -0
  49. package/dist/types/Widgets/GridToolBar/Components/QuickFilter/QuickFilterView.d.ts +6 -0
  50. package/dist/types/Widgets/GridToolBar/Components/QuickFilter/index.d.ts +12 -0
  51. package/dist/types/Widgets/GridToolBar/Components/Reset/ResetView.d.ts +6 -0
  52. package/dist/types/Widgets/GridToolBar/Components/Reset/index.d.ts +11 -0
  53. package/dist/types/Widgets/GridToolBar/Components/ScreenView/CreateScreenPopup.d.ts +6 -0
  54. package/dist/types/Widgets/GridToolBar/Components/ScreenView/UserView.d.ts +26 -0
  55. package/dist/types/Widgets/GridToolBar/Components/ScreenView/UserViewView.d.ts +13 -0
  56. package/dist/types/Widgets/GridToolBar/Components/ScreenView/ViewItem.d.ts +11 -0
  57. package/dist/types/Widgets/GridToolBar/Components/ScreenView/actions/index.d.ts +8 -0
  58. package/dist/types/Widgets/GridToolBar/Components/ScreenView/helpers/deserializedScreenView.d.ts +4 -0
  59. package/dist/types/Widgets/GridToolBar/Components/ScreenView/helpers/getSavedSystemDefault.d.ts +2 -0
  60. package/dist/types/Widgets/GridToolBar/Components/ScreenView/helpers/saveSystemDefaultInSession.d.ts +1 -0
  61. package/dist/types/Widgets/GridToolBar/Components/ScreenView/helpers/uiElementHandler/advancedSearchHandler.d.ts +1 -0
  62. package/dist/types/Widgets/GridToolBar/Components/ScreenView/helpers/uiElementHandler/globalSearchHandler.d.ts +1 -0
  63. package/dist/types/Widgets/GridToolBar/Components/ScreenView/helpers/uiElementHandler/groupByHandler.d.ts +1 -0
  64. package/dist/types/Widgets/GridToolBar/Components/ScreenView/helpers/uiElementHandler/localSearchHandler.d.ts +1 -0
  65. package/dist/types/Widgets/GridToolBar/Components/ScreenView/helpers/uiElementHandler/paginationHandler.d.ts +1 -0
  66. package/dist/types/Widgets/GridToolBar/Components/ScreenView/helpers/uiElementHandler/quickFilterHandler.d.ts +1 -0
  67. package/dist/types/Widgets/GridToolBar/Components/ScreenView/helpers/uiElementHandler/settingHandler.d.ts +1 -0
  68. package/dist/types/Widgets/GridToolBar/Components/ScreenView/helpers/uiElementHandler/sortHandler.d.ts +1 -0
  69. package/dist/types/Widgets/GridToolBar/Components/ScreenView/services/index.d.ts +6 -0
  70. package/dist/types/Widgets/GridToolBar/Components/Setting/ColumnChooser/ColumnChooser.d.ts +15 -0
  71. package/dist/types/Widgets/GridToolBar/Components/Setting/ColumnChooser/ColumnChooserView.d.ts +17 -0
  72. package/dist/types/Widgets/GridToolBar/Components/Setting/ColumnChooser/DragDropContext.d.ts +9 -0
  73. package/dist/types/Widgets/GridToolBar/Components/Setting/Setting.d.ts +19 -0
  74. package/dist/types/Widgets/GridToolBar/Components/Setting/SettingPopup.d.ts +9 -0
  75. package/dist/types/Widgets/GridToolBar/Components/Setting/SettingView.d.ts +6 -0
  76. package/dist/types/Widgets/GridToolBar/GridToolBar.d.ts +8 -0
  77. package/dist/types/Widgets/GridToolBar/GridToolBarView.d.ts +23 -0
  78. package/dist/types/Widgets/GridToolBar/data/advancedSearch/index.d.ts +46 -0
  79. package/dist/types/Widgets/GridToolBar/data/globalSearch/index.d.ts +4 -0
  80. package/dist/types/Widgets/GridToolBar/data/groupBy/index.d.ts +6 -0
  81. package/dist/types/Widgets/GridToolBar/data/index.d.ts +49 -0
  82. package/dist/types/Widgets/GridToolBar/data/quickFilter/index.d.ts +30 -0
  83. package/dist/types/Widgets/GridToolBar/data/setting/index.d.ts +21 -0
  84. package/dist/types/Widgets/GridToolBar/data/userView/index.d.ts +10 -0
  85. package/dist/types/Widgets/GridToolBar/enum/index.d.ts +27 -0
  86. package/dist/types/Widgets/GridToolBar/helper/getUniqueId.d.ts +1 -0
  87. package/dist/types/Widgets/GridToolBar/type.d.ts +58 -0
  88. package/dist/types/Widgets/InformationAlert/InformationAlert.d.ts +8 -0
  89. package/dist/types/Widgets/InformationAlert/InformationAlertView.d.ts +8 -0
  90. package/dist/types/Widgets/Menu/MenuMainHeader.d.ts +3 -0
  91. package/dist/types/Widgets/Menu/MenuSubHeader.d.ts +3 -0
  92. package/dist/types/Widgets/Menu/MenuSubItem.d.ts +3 -0
  93. package/dist/types/Widgets/Menu/MenuView.d.ts +6 -0
  94. package/dist/types/Widgets/Menu/index.d.ts +14 -0
  95. package/dist/types/actions.d.ts +2 -0
  96. package/dist/types/constant.d.ts +8 -0
  97. package/dist/types/factories.d.ts +2 -0
  98. package/dist/types/index.d.ts +4 -0
  99. package/dist/types/utils/getValueFromNestedObject.d.ts +1 -0
  100. package/package.json +98 -0
  101. package/src/Action/TemplateActionFactory.ts +27 -0
  102. package/src/Action/TemplateActionType.ts +8 -0
  103. package/src/Action/TemplateActions/handleMenuNavigation.ts +23 -0
  104. package/src/Factory/BaseType.ts +12 -0
  105. package/src/Factory/TemplateWidgetFactory.tsx +50 -0
  106. package/src/Renderer/index.tsx +14 -0
  107. package/src/Widgets/Block/BlockView.tsx +31 -0
  108. package/src/Widgets/Block/Styles/index.scss +41 -0
  109. package/src/Widgets/Block/index.tsx +8 -0
  110. package/src/Widgets/Block/types.ts +11 -0
  111. package/src/Widgets/ConfirmationAlert/ConfirmationAlertView.tsx +90 -0
  112. package/src/Widgets/ConfirmationAlert/index.tsx +16 -0
  113. package/src/Widgets/ConfirmationAlert/scss/index.scss +66 -0
  114. package/src/Widgets/GridToolBar/Components/AdvancedSearch/AdvancedSearch.tsx +83 -0
  115. package/src/Widgets/GridToolBar/Components/AdvancedSearch/AdvancedSearchView.tsx +25 -0
  116. package/src/Widgets/GridToolBar/Components/AdvancedSearch/Filter.tsx +162 -0
  117. package/src/Widgets/GridToolBar/Components/AdvancedSearch/FilterPopup.tsx +437 -0
  118. package/src/Widgets/GridToolBar/Components/AdvancedSearch/FilterPopupView.tsx +111 -0
  119. package/src/Widgets/GridToolBar/Components/AdvancedSearch/TypeBasedWidgetFactory.tsx +226 -0
  120. package/src/Widgets/GridToolBar/Components/AdvancedSearch/constant.ts +55 -0
  121. package/src/Widgets/GridToolBar/Components/AdvancedSearch/helper/AdvancedSearchFunctions.ts +36 -0
  122. package/src/Widgets/GridToolBar/Components/Export/Export.tsx +57 -0
  123. package/src/Widgets/GridToolBar/Components/Export/ExportPopup.tsx +388 -0
  124. package/src/Widgets/GridToolBar/Components/Export/ExportView.tsx +21 -0
  125. package/src/Widgets/GridToolBar/Components/Export/type.ts +4 -0
  126. package/src/Widgets/GridToolBar/Components/GlobalSearch/GlobalSearch.tsx +95 -0
  127. package/src/Widgets/GridToolBar/Components/GlobalSearch/GlobalSearchView.tsx +65 -0
  128. package/src/Widgets/GridToolBar/Components/GroupBy/GroupByPopUp.tsx +115 -0
  129. package/src/Widgets/GridToolBar/Components/GroupBy/GroupByView.tsx +21 -0
  130. package/src/Widgets/GridToolBar/Components/GroupBy/index.tsx +84 -0
  131. package/src/Widgets/GridToolBar/Components/QuickFilter/FilterPopup.tsx +41 -0
  132. package/src/Widgets/GridToolBar/Components/QuickFilter/QuickFilterView.tsx +23 -0
  133. package/src/Widgets/GridToolBar/Components/QuickFilter/index.tsx +199 -0
  134. package/src/Widgets/GridToolBar/Components/Reset/ResetView.tsx +22 -0
  135. package/src/Widgets/GridToolBar/Components/Reset/index.tsx +41 -0
  136. package/src/Widgets/GridToolBar/Components/ScreenView/CreateScreenPopup.tsx +88 -0
  137. package/src/Widgets/GridToolBar/Components/ScreenView/UserView.tsx +266 -0
  138. package/src/Widgets/GridToolBar/Components/ScreenView/UserViewView.tsx +67 -0
  139. package/src/Widgets/GridToolBar/Components/ScreenView/ViewItem.tsx +94 -0
  140. package/src/Widgets/GridToolBar/Components/ScreenView/actions/index.ts +20 -0
  141. package/src/Widgets/GridToolBar/Components/ScreenView/helpers/deserializedScreenView.ts +19 -0
  142. package/src/Widgets/GridToolBar/Components/ScreenView/helpers/getSavedSystemDefault.ts +18 -0
  143. package/src/Widgets/GridToolBar/Components/ScreenView/helpers/saveSystemDefaultInSession.ts +12 -0
  144. package/src/Widgets/GridToolBar/Components/ScreenView/helpers/uiElementHandler/advancedSearchHandler.ts +32 -0
  145. package/src/Widgets/GridToolBar/Components/ScreenView/helpers/uiElementHandler/globalSearchHandler.ts +13 -0
  146. package/src/Widgets/GridToolBar/Components/ScreenView/helpers/uiElementHandler/groupByHandler.ts +8 -0
  147. package/src/Widgets/GridToolBar/Components/ScreenView/helpers/uiElementHandler/localSearchHandler.ts +6 -0
  148. package/src/Widgets/GridToolBar/Components/ScreenView/helpers/uiElementHandler/paginationHandler.ts +6 -0
  149. package/src/Widgets/GridToolBar/Components/ScreenView/helpers/uiElementHandler/quickFilterHandler.ts +13 -0
  150. package/src/Widgets/GridToolBar/Components/ScreenView/helpers/uiElementHandler/settingHandler.ts +19 -0
  151. package/src/Widgets/GridToolBar/Components/ScreenView/helpers/uiElementHandler/sortHandler.ts +6 -0
  152. package/src/Widgets/GridToolBar/Components/ScreenView/services/index.ts +63 -0
  153. package/src/Widgets/GridToolBar/Components/Setting/ColumnChooser/ColumnChooser.tsx +274 -0
  154. package/src/Widgets/GridToolBar/Components/Setting/ColumnChooser/ColumnChooserView.tsx +154 -0
  155. package/src/Widgets/GridToolBar/Components/Setting/ColumnChooser/DragDropContext.tsx +76 -0
  156. package/src/Widgets/GridToolBar/Components/Setting/Setting.tsx +116 -0
  157. package/src/Widgets/GridToolBar/Components/Setting/SettingPopup.tsx +23 -0
  158. package/src/Widgets/GridToolBar/Components/Setting/SettingView.tsx +23 -0
  159. package/src/Widgets/GridToolBar/GridToolBar.tsx +111 -0
  160. package/src/Widgets/GridToolBar/GridToolBarView.tsx +138 -0
  161. package/src/Widgets/GridToolBar/data/advancedSearch/index.ts +45 -0
  162. package/src/Widgets/GridToolBar/data/globalSearch/index.ts +4 -0
  163. package/src/Widgets/GridToolBar/data/groupBy/index.ts +3 -0
  164. package/src/Widgets/GridToolBar/data/index.ts +74 -0
  165. package/src/Widgets/GridToolBar/data/quickFilter/index.ts +37 -0
  166. package/src/Widgets/GridToolBar/data/setting/index.ts +23 -0
  167. package/src/Widgets/GridToolBar/data/userView/index.ts +11 -0
  168. package/src/Widgets/GridToolBar/enum/index.ts +29 -0
  169. package/src/Widgets/GridToolBar/helper/getUniqueId.ts +2 -0
  170. package/src/Widgets/GridToolBar/scss/index.scss +834 -0
  171. package/src/Widgets/GridToolBar/type.ts +63 -0
  172. package/src/Widgets/InformationAlert/InformationAlert.tsx +12 -0
  173. package/src/Widgets/InformationAlert/InformationAlertView.tsx +46 -0
  174. package/src/Widgets/InformationAlert/scss/index.scss +73 -0
  175. package/src/Widgets/Menu/MenuMainHeader.tsx +28 -0
  176. package/src/Widgets/Menu/MenuSubHeader.tsx +20 -0
  177. package/src/Widgets/Menu/MenuSubItem.tsx +10 -0
  178. package/src/Widgets/Menu/MenuView.tsx +19 -0
  179. package/src/Widgets/Menu/index.json +245 -0
  180. package/src/Widgets/Menu/index.tsx +32 -0
  181. package/src/Widgets/Menu/scss/index.scss +93 -0
  182. package/src/actions.ts +5 -0
  183. package/src/assets/delete.png +0 -0
  184. package/src/assets/info.svg +5 -0
  185. package/src/assets/react.svg +1 -0
  186. package/src/assets/styles/_tempalte-base.scss +5 -0
  187. package/src/constant.ts +8 -0
  188. package/src/factories.ts +5 -0
  189. package/src/index.ts +12 -0
  190. package/src/utils/getValueFromNestedObject.ts +14 -0
  191. package/src/vite-env.d.ts +1 -0
@@ -0,0 +1,226 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { DropDownList, MultiSelect } from "@progress/kendo-react-dropdowns";
3
+
4
+ import { FilterTargetType, Operator } from "../../../GridToolBar/enum";
5
+ import {
6
+ NumericTextBox,
7
+ RadioGroup,
8
+ TextBox,
9
+ } from "@progress/kendo-react-inputs";
10
+ import { DatePicker, DateRangePicker } from "@progress/kendo-react-dateinputs";
11
+ import { cloneElement } from "react";
12
+ import {
13
+ FilterExpressionViewModel,
14
+ FilterValue,
15
+ } from "../../data/advancedSearch";
16
+
17
+ const ItemRenderMultiSelect = ({ li, itemProps, selectedValues }: any) => {
18
+ const itemChildren = (
19
+ <a className="drLink">
20
+ <input
21
+ className="drLink_check"
22
+ type="checkbox"
23
+ name={itemProps.dataItem.value}
24
+ checked={
25
+ selectedValues?.length > 0
26
+ ? selectedValues.some(
27
+ (x: { label: string; value: string }) =>
28
+ x.value === itemProps.dataItem.value
29
+ )
30
+ : false
31
+ }
32
+ />
33
+ {li.props.children}
34
+ </a>
35
+ );
36
+ return cloneElement(li, li.props, itemChildren);
37
+ };
38
+
39
+ const MultiSelectRenderer: React.FC<{
40
+ filter: FilterExpressionViewModel;
41
+ onFilterValueChange: (value: FilterValue | FilterValue[], id: string) => void;
42
+ }> = ({ filter, onFilterValueChange }) => (
43
+ <MultiSelect
44
+ data={(filter.allValues || []) as any[]}
45
+ value={
46
+ filter.selectedFilter?.value
47
+ ? (filter.selectedFilter?.value as any[])
48
+ : undefined
49
+ }
50
+ textField="label"
51
+ className="tmpl-dropdown tmpl-advanced-input"
52
+ onChange={(e: any) => onFilterValueChange(e.target.value, filter.id)}
53
+ popupSettings={{ className: `tmpl-prvent-outside-click-close` }}
54
+ itemRender={(li: any, itemProps: any) => (
55
+ <ItemRenderMultiSelect
56
+ li={li}
57
+ itemProps={itemProps}
58
+ selectedValues={filter.selectedFilter?.value}
59
+ />
60
+ )}
61
+ tags={
62
+ (filter.selectedFilter?.value as any[])?.length > 0
63
+ ? [
64
+ {
65
+ text: `${
66
+ (filter.selectedFilter?.value as any[])?.length
67
+ } selected`,
68
+ data: [...(filter.selectedFilter?.value as any[])],
69
+ },
70
+ ]
71
+ : []
72
+ }
73
+ />
74
+ );
75
+
76
+ const DropDownListRenderer: React.FC<{
77
+ filter: FilterExpressionViewModel;
78
+ onFilterValueChange: (value: FilterValue | FilterValue[], id: string) => void;
79
+ }> = ({ filter, onFilterValueChange }) => (
80
+ <DropDownList
81
+ data={filter.allValues as any[]}
82
+ value={filter.selectedFilter?.value || null}
83
+ textField="label"
84
+ title="value"
85
+ defaultItem={{ label: "Select Value...", value: null }}
86
+ popupSettings={{ className: `tmpl-prvent-outside-click-close` }}
87
+ className="tmpl-dropdown tmpl-advanced-input"
88
+ onChange={(e: any) => onFilterValueChange(e.target.value, filter.id)}
89
+ />
90
+ );
91
+
92
+ const TextBoxRenderer: React.FC<{
93
+ filter: FilterExpressionViewModel;
94
+ onFilterValueChange: (value: FilterValue | FilterValue[], id: string) => void;
95
+ }> = ({ filter, onFilterValueChange }) => (
96
+ <TextBox
97
+ value={filter.selectedFilter?.value?.toString() || undefined}
98
+ className="tmpl-advanced-input"
99
+ onBlur={(e: any) => onFilterValueChange(e.target.value || null, filter.id)}
100
+ />
101
+ );
102
+
103
+ const NumericTextBoxRenderer: React.FC<{
104
+ filter: FilterExpressionViewModel;
105
+ onFilterValueChange: (value: FilterValue | FilterValue[], id: string) => void;
106
+ }> = ({ filter, onFilterValueChange }) => (
107
+ <NumericTextBox
108
+ value={
109
+ filter.selectedFilter?.value ? Number(filter.selectedFilter?.value) : null
110
+ }
111
+ className="tmpl-advanced-input"
112
+ onBlur={(e: any) => onFilterValueChange(e.target.value, filter.id)}
113
+ />
114
+ );
115
+
116
+ const NumericRangePickerRenderer: React.FC<{
117
+ filter: FilterExpressionViewModel;
118
+ onFilterValueChange: (value: FilterValue | FilterValue[], id: string) => void;
119
+ }> = ({ filter, onFilterValueChange }) => (
120
+ <NumericTextBox
121
+ value={
122
+ filter.selectedFilter?.value ? Number(filter.selectedFilter?.value) : null
123
+ }
124
+ className="tmpl-advanced-input"
125
+ onBlur={(e: any) => onFilterValueChange(e.target.value, filter.id)}
126
+ />
127
+ );
128
+
129
+ const RadioGroupRenderer: React.FC<{
130
+ filter: FilterExpressionViewModel;
131
+ onFilterValueChange: (value: FilterValue | FilterValue[], id: string) => void;
132
+ }> = ({ filter, onFilterValueChange }) => (
133
+ <RadioGroup
134
+ onChange={(e) => onFilterValueChange(e.value, filter.id)}
135
+ layout="horizontal"
136
+ data={[
137
+ { label: "True", value: true },
138
+ { label: "False", value: false },
139
+ ]}
140
+ value={filter.selectedFilter?.value as any}
141
+ className="tmpl-advanced-input"
142
+ />
143
+ );
144
+
145
+ const DatePickerRenderer: React.FC<{
146
+ filter: FilterExpressionViewModel;
147
+ onFilterValueChange: (value: FilterValue | FilterValue[], id: string) => void;
148
+ }> = ({ filter, onFilterValueChange }) => (
149
+ <DatePicker
150
+ onChange={(e: any) => onFilterValueChange(e.target.value, filter.id)}
151
+ popupSettings={{ popupClass: `tmpl-prvent-outside-click-close` }}
152
+ value={
153
+ filter.selectedFilter?.value
154
+ ? (filter.selectedFilter?.value as Date)
155
+ : null
156
+ }
157
+ className="tmpl-advanced-input"
158
+ />
159
+ );
160
+
161
+ const DateRangePickerRenderer: React.FC<{
162
+ filter: FilterExpressionViewModel;
163
+ onFilterValueChange: (value: FilterValue | FilterValue[], id: string) => void;
164
+ }> = ({ filter, onFilterValueChange }) => (
165
+ <DateRangePicker
166
+ onChange={(e: any) => onFilterValueChange(e.target.value, filter.id)}
167
+ startDateInputSettings={{ label: undefined }}
168
+ endDateInputSettings={{ label: undefined }}
169
+ popupSettings={{ popupClass: `tmpl-prvent-outside-click-close` }}
170
+ value={
171
+ filter.selectedFilter?.value
172
+ ? (filter.selectedFilter?.value as any)
173
+ : null
174
+ }
175
+ className="tmpl-advanced-input tmpl-advanced-ranged-input"
176
+ />
177
+ );
178
+
179
+ const renderers = {
180
+ [FilterTargetType.LIST]: DropDownListRenderer,
181
+ [FilterTargetType.LIST + Operator.In]: MultiSelectRenderer,
182
+ [FilterTargetType.LIST + Operator.NotIn]: MultiSelectRenderer,
183
+ [FilterTargetType.TEXT]: TextBoxRenderer,
184
+ [FilterTargetType.NUMBER]: NumericTextBoxRenderer,
185
+ [FilterTargetType.NUMBER + Operator.Between]: NumericRangePickerRenderer,
186
+ [FilterTargetType.NUMBER + Operator.NotBetween]: NumericRangePickerRenderer,
187
+ [FilterTargetType.BOOLEAN]: RadioGroupRenderer,
188
+ [FilterTargetType.DATE]: DatePickerRenderer,
189
+ [FilterTargetType.DATE + Operator.Between]: DateRangePickerRenderer,
190
+ [FilterTargetType.DATE + Operator.NotBetween]: DateRangePickerRenderer,
191
+ };
192
+
193
+ type TypeBasedWidgetFactoryProps = {
194
+ filterRow: FilterExpressionViewModel;
195
+ onFilterValueChange: (value: FilterValue | FilterValue[], id: string) => void;
196
+ };
197
+
198
+ const TypeBasedWidgetFactory: React.FC<TypeBasedWidgetFactoryProps> = ({
199
+ filterRow,
200
+ onFilterValueChange,
201
+ }) => {
202
+ let Renderer = null;
203
+ if (
204
+ filterRow?.selectedFilter?.operator?.value === Operator.In ||
205
+ filterRow?.selectedFilter?.operator?.value === Operator.NotIn ||
206
+ filterRow?.selectedFilter?.operator?.value === Operator.Between ||
207
+ filterRow?.selectedFilter?.operator?.value === Operator.NotBetween
208
+ ) {
209
+ Renderer =
210
+ renderers[
211
+ filterRow?.selectedFilter?.propertyToFilter?.type +
212
+ filterRow?.selectedFilter?.operator?.value
213
+ ];
214
+ } else {
215
+ Renderer = renderers[filterRow?.selectedFilter?.propertyToFilter?.type];
216
+ }
217
+
218
+ if (!Renderer) {
219
+ Renderer = renderers[FilterTargetType.TEXT];
220
+ }
221
+ return (
222
+ <Renderer filter={filterRow} onFilterValueChange={onFilterValueChange} />
223
+ );
224
+ };
225
+
226
+ export default TypeBasedWidgetFactory;
@@ -0,0 +1,55 @@
1
+ import { FilterTargetType, Operator } from "../../enum";
2
+
3
+ export const typeBasedOperators = [
4
+ {
5
+ operators: [
6
+ { label: "Equal", value: Operator.Equal },
7
+ { label: "Not Equal", value: Operator.NotEqual },
8
+ { label: "Includes", value: Operator.Like },
9
+ { label: "Not Includes", value: Operator.NotLike },
10
+ ],
11
+ type: FilterTargetType.TEXT,
12
+ },
13
+ {
14
+ operators: [
15
+ { label: "Equal", value: Operator.Equal },
16
+ { label: "Not Equal", value: Operator.NotEqual },
17
+ { label: "Is Greater Than", value: Operator.GreaterThan },
18
+ { label: "Is Greater Than Equal", value: Operator.GreaterThanOrEqual },
19
+ { label: "Is Less Than", value: Operator.LessThan },
20
+ { label: "Is Less Than Equal", value: Operator.LessThanOrEqual },
21
+ { label: "Between", value: Operator.Between },
22
+ { label: "Not Between", value: Operator.NotBetween },
23
+ ],
24
+ type: FilterTargetType.NUMBER,
25
+ },
26
+ {
27
+ operators: [
28
+ { label: "Equal", value: Operator.Equal },
29
+ { label: "Not Equal", value: Operator.NotEqual },
30
+ { label: "Is Greater Than", value: Operator.GreaterThan },
31
+ { label: "Is Greater Than Equal", value: Operator.GreaterThanOrEqual },
32
+ { label: "Is Less Than", value: Operator.LessThan },
33
+ { label: "Is Less Than Equal", value: Operator.LessThanOrEqual },
34
+ { label: "Between", value: Operator.Between },
35
+ { label: "Not Between", value: Operator.NotBetween },
36
+ ],
37
+ type: FilterTargetType.DATE,
38
+ },
39
+ {
40
+ operators: [
41
+ { label: "Equal", value: Operator.Equal },
42
+ { label: "Not Equal", value: Operator.NotEqual },
43
+ ],
44
+ type: FilterTargetType.BOOLEAN,
45
+ },
46
+ {
47
+ operators: [
48
+ { label: "Equal", value: Operator.Equal },
49
+ { label: "Not Equal", value: Operator.NotEqual },
50
+ { label: "In The List", value: Operator.In },
51
+ { label: "Not In The List", value: Operator.NotIn },
52
+ ],
53
+ type: FilterTargetType.LIST,
54
+ },
55
+ ];
@@ -0,0 +1,36 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { FilterExpressionViewModel } from "../../../data/advancedSearch";
3
+ import { FilterTargetType, OperatorCreiteria } from "../../../enum";
4
+ import { getUniqueId } from "../../../helper/getUniqueId";
5
+ import { typeBasedOperators } from "../constant";
6
+
7
+ export const getTypeBasedOperators = (type: FilterTargetType) => {
8
+ const operatorList = typeBasedOperators.find(
9
+ (operator) => operator.type === type
10
+ );
11
+ return operatorList ? operatorList?.operators : [];
12
+ };
13
+
14
+ export const getAdvancedSearchIntitialFilterRow = () => {
15
+ const id = "ADVS__" + getUniqueId();
16
+ const defaultAdvanceSearch: FilterExpressionViewModel = {
17
+ id,
18
+ idLabel: "(1)",
19
+ allPropertieseToFilter: [],
20
+ alloperators: [],
21
+ allValues: [],
22
+ selectedFilter: {
23
+ id,
24
+ propertyToFilter: {
25
+ label: "Select Filter...",
26
+ apiPropertyName: "",
27
+ type: FilterTargetType.TEXT,
28
+ value: null,
29
+ },
30
+ operator: { label: "Select Operator...", value: null },
31
+ value: undefined,
32
+ selectedCriteria: OperatorCreiteria.AND,
33
+ },
34
+ };
35
+ return defaultAdvanceSearch;
36
+ };
@@ -0,0 +1,57 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { useState } from "react";
3
+ import ExportView from "./ExportView";
4
+ import ExportPopup, { ExportViewModel } from "./ExportPopup";
5
+ import { ExportType } from "./type";
6
+
7
+ export type ExportProps = {
8
+ visible: boolean;
9
+ disabled: boolean;
10
+ config: { uiElementGroupId: string };
11
+ onExport?: (
12
+ callBack: ((args: any) => void) | null,
13
+ exportType: ExportType,
14
+ exportDataScope: string
15
+ ) => void;
16
+ onExportDelete: (callBack: ((args: any) => void) | null, id: string) => void;
17
+ onExportList: (callBack: ((args: any) => void) | null) => void;
18
+ onExportDownload: (callBack: ((args: any) => void) | null, id: string) => void;
19
+ };
20
+
21
+ const Export = (props: ExportProps) => {
22
+ const [togglePopup, setTogglePopup] = useState(false);
23
+
24
+ const onClick = () => {
25
+ setTogglePopup(!togglePopup);
26
+ };
27
+
28
+ const onExport = (
29
+ callBack: () => void,
30
+ exportViewModels: ExportViewModel[]
31
+ ) => {
32
+ exportViewModels.forEach((vm) => {
33
+ if (vm.exportType) {
34
+ props.onExport?.(callBack, vm.exportType, vm.exportDataScope ?? "");
35
+ }
36
+ });
37
+ };
38
+
39
+
40
+ return props.visible ? (
41
+ <div className="tmpl-export-container">
42
+ <ExportView disabled={props.disabled} onClick={onClick} />
43
+ {togglePopup && !props.disabled && (
44
+ <ExportPopup
45
+ setTogglePopup={setTogglePopup}
46
+ onExport={onExport}
47
+ onExportList={props.onExportList}
48
+ onExportDownload={props.onExportDownload}
49
+ onExportDelete={props.onExportDelete}
50
+ />
51
+ )}
52
+ </div>
53
+ ) : (
54
+ <></>
55
+ );
56
+ };
57
+ export default Export;