dinocollab-core 1.0.0 → 1.0.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 (385) hide show
  1. package/dist/_virtual/_rollupPluginBabelHelpers.js +67 -10
  2. package/dist/_virtual/_rollupPluginBabelHelpers.js.map +1 -1
  3. package/dist/{src/api-context → api-context}/alert-global.js +49 -34
  4. package/dist/api-context/alert-global.js.map +1 -0
  5. package/dist/{src/api-context → api-context}/drawer-global.js +40 -33
  6. package/dist/api-context/drawer-global.js.map +1 -0
  7. package/dist/{src/api-context → api-context}/global-modal.js +40 -32
  8. package/dist/api-context/global-modal.js.map +1 -0
  9. package/dist/{src/api-context → api-context}/popover-global.js +44 -36
  10. package/dist/api-context/popover-global.js.map +1 -0
  11. package/dist/api-context/popover.js +94 -0
  12. package/dist/api-context/popover.js.map +1 -0
  13. package/dist/{src/api-context → api-context}/ui.units.js +12 -10
  14. package/dist/api-context/ui.units.js.map +1 -0
  15. package/dist/components/breadcrumbs.js +65 -0
  16. package/dist/components/breadcrumbs.js.map +1 -0
  17. package/dist/{src/components → components}/copy-to-clipboard.js +39 -32
  18. package/dist/components/copy-to-clipboard.js.map +1 -0
  19. package/dist/components/help-tooltip.js +104 -0
  20. package/dist/components/help-tooltip.js.map +1 -0
  21. package/dist/components/image-with-fallback.js +51 -0
  22. package/dist/components/image-with-fallback.js.map +1 -0
  23. package/dist/{src/components → components}/text-editor.js +24 -23
  24. package/dist/components/text-editor.js.map +1 -0
  25. package/dist/components/text-editor.preview.js +27 -0
  26. package/dist/components/text-editor.preview.js.map +1 -0
  27. package/dist/form/create.autocomplete.chips.js +228 -0
  28. package/dist/form/create.autocomplete.chips.js.map +1 -0
  29. package/dist/{src/form → form}/create.date-expired.js +71 -61
  30. package/dist/form/create.date-expired.js.map +1 -0
  31. package/dist/{src/form → form}/create.date-picker.js +40 -37
  32. package/dist/form/create.date-picker.js.map +1 -0
  33. package/dist/{src/form → form}/create.form-base.js +47 -41
  34. package/dist/form/create.form-base.js.map +1 -0
  35. package/dist/form/create.form-comfirm.js +131 -0
  36. package/dist/form/create.form-comfirm.js.map +1 -0
  37. package/dist/form/create.form-grid-layout.js +188 -0
  38. package/dist/form/create.form-grid-layout.js.map +1 -0
  39. package/dist/{src/form → form}/create.form-grid-layout.units.js +17 -14
  40. package/dist/form/create.form-grid-layout.units.js.map +1 -0
  41. package/dist/form/create.input.file.js +79 -0
  42. package/dist/form/create.input.file.js.map +1 -0
  43. package/dist/form/create.input.js +276 -0
  44. package/dist/form/create.input.js.map +1 -0
  45. package/dist/form/create.select-simple.js +114 -0
  46. package/dist/form/create.select-simple.js.map +1 -0
  47. package/dist/form/create.select-with-api.js +277 -0
  48. package/dist/form/create.select-with-api.js.map +1 -0
  49. package/dist/form/create.text-editor.js +181 -0
  50. package/dist/form/create.text-editor.js.map +1 -0
  51. package/dist/{src/form → form}/dino-form.js +17 -18
  52. package/dist/form/dino-form.js.map +1 -0
  53. package/dist/{src/form → form}/helper.js +14 -14
  54. package/dist/form/helper.js.map +1 -0
  55. package/dist/{src/form → form}/modal-wrapper.js +32 -25
  56. package/dist/form/modal-wrapper.js.map +1 -0
  57. package/dist/{src/form → form}/validator.js +47 -43
  58. package/dist/form/validator.js.map +1 -0
  59. package/dist/{src/hooks → hooks}/index.js +1 -1
  60. package/dist/hooks/index.js.map +1 -0
  61. package/dist/index.d.ts +928 -0
  62. package/dist/{src/index.js → index.js} +10 -3
  63. package/dist/{src/index.js.map → index.js.map} +1 -1
  64. package/dist/redux/create.hoc-lazy.js +71 -0
  65. package/dist/redux/create.hoc-lazy.js.map +1 -0
  66. package/dist/{src/redux → redux}/dino.js +2 -2
  67. package/dist/redux/dino.js.map +1 -0
  68. package/dist/redux/types.js.map +1 -0
  69. package/dist/redux/ui.error-page.js +89 -0
  70. package/dist/redux/ui.error-page.js.map +1 -0
  71. package/dist/redux/vector-404.webp.js.map +1 -0
  72. package/dist/{src/table → table}/context.js +5 -2
  73. package/dist/table/context.js.map +1 -0
  74. package/dist/table/create.action-row.js +144 -0
  75. package/dist/table/create.action-row.js.map +1 -0
  76. package/dist/table/create.table.js +246 -0
  77. package/dist/table/create.table.js.map +1 -0
  78. package/dist/{src/table → table}/custom.filter-operators.js +2 -2
  79. package/dist/table/custom.filter-operators.js.map +1 -0
  80. package/dist/table/dino.js +136 -0
  81. package/dist/table/dino.js.map +1 -0
  82. package/dist/{src/table → table}/helpers.js +31 -32
  83. package/dist/table/helpers.js.map +1 -0
  84. package/dist/table/model-filter.js.map +1 -0
  85. package/dist/table/toolbar-pannel.js +143 -0
  86. package/dist/table/toolbar-pannel.js.map +1 -0
  87. package/dist/table/ui.buttons.js +67 -0
  88. package/dist/table/ui.buttons.js.map +1 -0
  89. package/dist/table/ui.units.js +248 -0
  90. package/dist/table/ui.units.js.map +1 -0
  91. package/dist/types/api-context/alert-global.d.ts +29 -0
  92. package/dist/types/api-context/drawer-global.d.ts +32 -0
  93. package/dist/types/api-context/global-modal.d.ts +37 -0
  94. package/dist/types/api-context/index.d.ts +9 -0
  95. package/dist/types/api-context/popover-global.d.ts +37 -0
  96. package/dist/types/api-context/popover.d.ts +32 -0
  97. package/dist/types/api-context/ui.units.d.ts +2 -0
  98. package/dist/types/components/breadcrumbs.d.ts +13 -0
  99. package/dist/types/components/copy-to-clipboard.d.ts +26 -0
  100. package/dist/types/components/help-tooltip.d.ts +15 -0
  101. package/dist/types/components/image-with-fallback.d.ts +13 -0
  102. package/dist/types/components/index.d.ts +11 -0
  103. package/dist/types/components/input-debounce-timer.d.ts +9 -0
  104. package/dist/types/components/loading-buttons.d.ts +6 -0
  105. package/dist/types/components/text-editor.d.ts +26 -0
  106. package/dist/types/components/text-editor.preview.d.ts +5 -0
  107. package/dist/types/form/create.autocomplete.chips.d.ts +16 -0
  108. package/dist/types/form/create.date-expired.d.ts +19 -0
  109. package/dist/types/form/create.date-picker.d.ts +19 -0
  110. package/dist/types/form/create.form-base.d.ts +30 -0
  111. package/dist/types/form/create.form-comfirm.d.ts +20 -0
  112. package/dist/types/form/create.form-grid-layout.d.ts +44 -0
  113. package/dist/types/form/create.form-grid-layout.units.d.ts +8 -0
  114. package/dist/types/form/create.input.d.ts +29 -0
  115. package/dist/types/form/create.input.file.d.ts +16 -0
  116. package/dist/types/form/create.select-simple.d.ts +24 -0
  117. package/dist/types/form/create.select-with-api.d.ts +29 -0
  118. package/dist/types/form/create.text-editor.d.ts +42 -0
  119. package/dist/types/form/dino-form.d.ts +26 -0
  120. package/dist/types/form/helper.d.ts +14 -0
  121. package/dist/types/form/index.d.ts +7 -0
  122. package/dist/types/form/modal-wrapper.d.ts +14 -0
  123. package/dist/types/form/types.d.ts +15 -0
  124. package/dist/types/form/validator.d.ts +64 -0
  125. package/dist/types/hooks/index.d.ts +4 -0
  126. package/dist/types/index.d.ts +7 -0
  127. package/dist/types/lab/create.autocomplete.simple.d.ts +19 -0
  128. package/dist/types/lab/create.dino-store.d.ts +1 -0
  129. package/dist/types/lab/create.multi-select-dropdown.d.ts +23 -0
  130. package/dist/types/lab/create.select-mul-with-api/index.d.ts +26 -0
  131. package/dist/types/lab/create.select-mul-with-api/table-custom.d.ts +43 -0
  132. package/dist/types/lab/create.select-mul-with-api/types.d.ts +21 -0
  133. package/dist/types/lab/create.select-mul-with-api/ui.units.d.ts +29 -0
  134. package/dist/types/lab/filter-bar/base.d.ts +34 -0
  135. package/dist/types/lab/filter-bar/create.filter-bar.d.ts +92 -0
  136. package/dist/types/lab/filter-bar/create.filter-menu.d.ts +66 -0
  137. package/dist/types/lab/filter-bar/create.filter-panel.d.ts +117 -0
  138. package/dist/types/lab/filter-bar/create.filtered.d.ts +59 -0
  139. package/dist/types/lab/filter-bar/create.sort-menu.d.ts +7 -0
  140. package/dist/types/lab/filter-bar/demo.d.ts +3 -0
  141. package/dist/types/lab/filter-bar/index.d.ts +4 -0
  142. package/dist/types/lab/filter-bar/types.d.ts +81 -0
  143. package/dist/types/lab/filter-bar/ui.units.d.ts +13 -0
  144. package/dist/types/lab/grafana-dashboard/configs.d.ts +4 -0
  145. package/dist/types/lab/grafana-dashboard/date-time-range/absolute-time-rage.d.ts +14 -0
  146. package/dist/types/lab/grafana-dashboard/date-time-range/helpers.d.ts +36 -0
  147. package/dist/types/lab/grafana-dashboard/date-time-range/index.d.ts +24 -0
  148. package/dist/types/lab/grafana-dashboard/date-time-range/menu-wrap.d.ts +19 -0
  149. package/dist/types/lab/grafana-dashboard/date-time-range/quick-ranges.d.ts +20 -0
  150. package/dist/types/lab/grafana-dashboard/date-time-range/types.d.ts +8 -0
  151. package/dist/types/lab/grafana-dashboard/date-time-range/units.d.ts +2 -0
  152. package/dist/types/lab/grafana-dashboard/helper.d.ts +7 -0
  153. package/dist/types/lab/grafana-dashboard/hooks.d.ts +10 -0
  154. package/dist/types/lab/grafana-dashboard/icons.d.ts +5 -0
  155. package/dist/types/lab/grafana-dashboard/index.d.ts +12 -0
  156. package/dist/types/lab/grafana-dashboard/top-bar.d.ts +19 -0
  157. package/dist/types/lab/grafana-dashboard/top-bar.types.d.ts +4 -0
  158. package/dist/types/lab/grafana-dashboard/types.d.ts +8 -0
  159. package/dist/types/lab/media-player.core1.d.ts +14 -0
  160. package/dist/types/lab/media-player.muted.d.ts +10 -0
  161. package/dist/types/lab/media-player.units.d.ts +36 -0
  162. package/dist/types/lab/table-grid/create.table-grid.d.ts +4 -0
  163. package/dist/types/lab/table-grid/demo.d.ts +3 -0
  164. package/dist/types/lab/table-grid/dino.d.ts +6 -0
  165. package/dist/types/lab/table-grid/helpers.d.ts +11 -0
  166. package/dist/types/lab/table-grid/index.d.ts +2 -0
  167. package/dist/types/lab/table-grid/item-actions.d.ts +93 -0
  168. package/dist/types/lab/table-grid/toolbar-pannel.d.ts +27 -0
  169. package/dist/types/lab/table-grid/types.d.ts +56 -0
  170. package/dist/types/redux/create.hoc-lazy.d.ts +19 -0
  171. package/dist/types/redux/dino.d.ts +6 -0
  172. package/dist/types/redux/index.d.ts +4 -0
  173. package/dist/types/redux/types.d.ts +22 -0
  174. package/dist/types/redux/ui.error-page.d.ts +3 -0
  175. package/dist/types/redux/ui.units.d.ts +9 -0
  176. package/dist/types/table/context.d.ts +8 -0
  177. package/dist/types/table/create.action-row.d.ts +16 -0
  178. package/dist/types/table/create.table.d.ts +33 -0
  179. package/dist/types/table/custom.filter-operators.d.ts +2 -0
  180. package/dist/types/table/dino.d.ts +41 -0
  181. package/dist/types/table/helpers.d.ts +23 -0
  182. package/dist/types/table/index.d.ts +7 -0
  183. package/dist/types/table/model-filter.d.ts +38 -0
  184. package/dist/types/table/toolbar-pannel.d.ts +18 -0
  185. package/dist/types/table/types.d.ts +40 -0
  186. package/dist/types/table/ui.buttons.d.ts +16 -0
  187. package/dist/types/table/ui.units.d.ts +62 -0
  188. package/dist/types/utils/dayjs-config.d.ts +2 -0
  189. package/dist/types/utils/helpers.d.ts +35 -0
  190. package/dist/types/utils/index.d.ts +4 -0
  191. package/dist/types/utils/json-object.d.ts +9 -0
  192. package/dist/types/utils/mfe-events.d.ts +12 -0
  193. package/dist/types/utils/query-param.d.ts +25 -0
  194. package/dist/utils/dayjs-config.js.map +1 -0
  195. package/dist/{src/utils → utils}/helpers.js +11 -9
  196. package/dist/utils/helpers.js.map +1 -0
  197. package/dist/{src/utils → utils}/json-object.js +13 -13
  198. package/dist/utils/json-object.js.map +1 -0
  199. package/dist/{src/utils → utils}/query-param.js +17 -17
  200. package/dist/utils/query-param.js.map +1 -0
  201. package/package.json +18 -4
  202. package/dist/node_modules/.pnpm/@rollup_plugin-typescript@1_d0d2002d9033600b6738d939bd598bc6/node_modules/tslib/tslib.es6.js +0 -46
  203. package/dist/node_modules/.pnpm/@rollup_plugin-typescript@1_d0d2002d9033600b6738d939bd598bc6/node_modules/tslib/tslib.es6.js.map +0 -1
  204. package/dist/src/api-context/alert-global.js.map +0 -1
  205. package/dist/src/api-context/drawer-global.js.map +0 -1
  206. package/dist/src/api-context/global-modal.js.map +0 -1
  207. package/dist/src/api-context/popover-global.js.map +0 -1
  208. package/dist/src/api-context/popover.js +0 -86
  209. package/dist/src/api-context/popover.js.map +0 -1
  210. package/dist/src/api-context/ui.units.js.map +0 -1
  211. package/dist/src/components/copy-to-clipboard.js.map +0 -1
  212. package/dist/src/components/custom.breadcrumbs.js +0 -61
  213. package/dist/src/components/custom.breadcrumbs.js.map +0 -1
  214. package/dist/src/components/help-tooltip.js +0 -91
  215. package/dist/src/components/help-tooltip.js.map +0 -1
  216. package/dist/src/components/image-with-fallback.js +0 -48
  217. package/dist/src/components/image-with-fallback.js.map +0 -1
  218. package/dist/src/components/text-editor.js.map +0 -1
  219. package/dist/src/form/create.autocomplete.chips.js +0 -218
  220. package/dist/src/form/create.autocomplete.chips.js.map +0 -1
  221. package/dist/src/form/create.date-expired.js.map +0 -1
  222. package/dist/src/form/create.date-picker.js.map +0 -1
  223. package/dist/src/form/create.form-base.js.map +0 -1
  224. package/dist/src/form/create.form-comfirm.js +0 -119
  225. package/dist/src/form/create.form-comfirm.js.map +0 -1
  226. package/dist/src/form/create.form-grid-layout.js +0 -177
  227. package/dist/src/form/create.form-grid-layout.js.map +0 -1
  228. package/dist/src/form/create.form-grid-layout.units.js.map +0 -1
  229. package/dist/src/form/create.input-base.js +0 -260
  230. package/dist/src/form/create.input-base.js.map +0 -1
  231. package/dist/src/form/create.input.file.js +0 -74
  232. package/dist/src/form/create.input.file.js.map +0 -1
  233. package/dist/src/form/create.select-simple.js +0 -104
  234. package/dist/src/form/create.select-simple.js.map +0 -1
  235. package/dist/src/form/create.select-with-api.js +0 -271
  236. package/dist/src/form/create.select-with-api.js.map +0 -1
  237. package/dist/src/form/create.text-editor.js +0 -156
  238. package/dist/src/form/create.text-editor.js.map +0 -1
  239. package/dist/src/form/dino-form.js.map +0 -1
  240. package/dist/src/form/helper.js.map +0 -1
  241. package/dist/src/form/modal-wrapper.js.map +0 -1
  242. package/dist/src/form/validator.js.map +0 -1
  243. package/dist/src/hooks/index.js.map +0 -1
  244. package/dist/src/redux/create.hoc-lazy.js +0 -67
  245. package/dist/src/redux/create.hoc-lazy.js.map +0 -1
  246. package/dist/src/redux/dino.js.map +0 -1
  247. package/dist/src/redux/types.js.map +0 -1
  248. package/dist/src/redux/ui.error-page.js +0 -80
  249. package/dist/src/redux/ui.error-page.js.map +0 -1
  250. package/dist/src/redux/vector-404.webp.js.map +0 -1
  251. package/dist/src/table/context.js.map +0 -1
  252. package/dist/src/table/create.action-row.js +0 -135
  253. package/dist/src/table/create.action-row.js.map +0 -1
  254. package/dist/src/table/create.status-cell.js +0 -49
  255. package/dist/src/table/create.status-cell.js.map +0 -1
  256. package/dist/src/table/create.table.js +0 -233
  257. package/dist/src/table/create.table.js.map +0 -1
  258. package/dist/src/table/custom.filter-operators.js.map +0 -1
  259. package/dist/src/table/dino.js +0 -129
  260. package/dist/src/table/dino.js.map +0 -1
  261. package/dist/src/table/helpers.js.map +0 -1
  262. package/dist/src/table/model-filter.js.map +0 -1
  263. package/dist/src/table/toolbar-pannel.js +0 -134
  264. package/dist/src/table/toolbar-pannel.js.map +0 -1
  265. package/dist/src/table/ui.buttons.js +0 -60
  266. package/dist/src/table/ui.buttons.js.map +0 -1
  267. package/dist/src/table/ui.units.js +0 -201
  268. package/dist/src/table/ui.units.js.map +0 -1
  269. package/dist/src/utils/dayjs-config.js.map +0 -1
  270. package/dist/src/utils/helpers.js.map +0 -1
  271. package/dist/src/utils/json-object.js.map +0 -1
  272. package/dist/src/utils/query-param.js.map +0 -1
  273. package/rollup.config.js +0 -39
  274. package/src/@types/global.d.ts +0 -5
  275. package/src/api-context/alert-global.tsx +0 -174
  276. package/src/api-context/drawer-global.tsx +0 -116
  277. package/src/api-context/global-modal.tsx +0 -109
  278. package/src/api-context/index.ts +0 -13
  279. package/src/api-context/popover-global.tsx +0 -107
  280. package/src/api-context/popover.tsx +0 -89
  281. package/src/api-context/ui.units.tsx +0 -10
  282. package/src/components/copy-to-clipboard.tsx +0 -86
  283. package/src/components/custom.breadcrumbs.tsx +0 -67
  284. package/src/components/help-tooltip.tsx +0 -75
  285. package/src/components/image-with-fallback.tsx +0 -51
  286. package/src/components/index.tsx +0 -1
  287. package/src/components/input-debounce-timer.tsx +0 -138
  288. package/src/components/loading-buttons.tsx +0 -35
  289. package/src/components/text-editor.preview.tsx +0 -30
  290. package/src/components/text-editor.tsx +0 -125
  291. package/src/form/README.md +0 -55
  292. package/src/form/create.autocomplete.chips.tsx +0 -199
  293. package/src/form/create.date-expired.tsx +0 -195
  294. package/src/form/create.date-picker.tsx +0 -122
  295. package/src/form/create.form-base.tsx +0 -102
  296. package/src/form/create.form-comfirm.tsx +0 -83
  297. package/src/form/create.form-grid-layout.tsx +0 -170
  298. package/src/form/create.form-grid-layout.units.tsx +0 -37
  299. package/src/form/create.input-base.tsx +0 -222
  300. package/src/form/create.input.file.tsx +0 -76
  301. package/src/form/create.select-simple.tsx +0 -101
  302. package/src/form/create.select-with-api.tsx +0 -213
  303. package/src/form/create.text-editor.tsx +0 -161
  304. package/src/form/dino-form.tsx +0 -40
  305. package/src/form/helper.ts +0 -132
  306. package/src/form/index.ts +0 -12
  307. package/src/form/modal-wrapper.tsx +0 -75
  308. package/src/form/types.ts +0 -16
  309. package/src/form/validator.ts +0 -202
  310. package/src/hooks/index.ts +0 -44
  311. package/src/index.ts +0 -7
  312. package/src/lab/create.autocomplete.simple.tsx +0 -57
  313. package/src/lab/create.dino-store.ts +0 -59
  314. package/src/lab/create.multi-select-dropdown.tsx +0 -189
  315. package/src/lab/create.select-mul-with-api/index.tsx +0 -271
  316. package/src/lab/create.select-mul-with-api/table-custom.tsx +0 -194
  317. package/src/lab/create.select-mul-with-api/types.ts +0 -26
  318. package/src/lab/create.select-mul-with-api/ui.units.tsx +0 -163
  319. package/src/lab/filter-bar/base.tsx +0 -162
  320. package/src/lab/filter-bar/create.filter-bar.tsx +0 -190
  321. package/src/lab/filter-bar/create.filter-menu.tsx +0 -156
  322. package/src/lab/filter-bar/create.filter-panel.tsx +0 -95
  323. package/src/lab/filter-bar/create.filtered.tsx +0 -41
  324. package/src/lab/filter-bar/create.sort-menu.tsx +0 -43
  325. package/src/lab/filter-bar/demo.tsx +0 -50
  326. package/src/lab/filter-bar/index.ts +0 -6
  327. package/src/lab/filter-bar/types.ts +0 -105
  328. package/src/lab/filter-bar/ui.units.tsx +0 -70
  329. package/src/lab/grafana-dashboard/configs.ts +0 -43
  330. package/src/lab/grafana-dashboard/date-time-range/absolute-time-rage.tsx +0 -137
  331. package/src/lab/grafana-dashboard/date-time-range/helpers.ts +0 -126
  332. package/src/lab/grafana-dashboard/date-time-range/index.tsx +0 -62
  333. package/src/lab/grafana-dashboard/date-time-range/menu-wrap.tsx +0 -101
  334. package/src/lab/grafana-dashboard/date-time-range/quick-ranges.tsx +0 -161
  335. package/src/lab/grafana-dashboard/date-time-range/types.ts +0 -9
  336. package/src/lab/grafana-dashboard/date-time-range/units.tsx +0 -18
  337. package/src/lab/grafana-dashboard/helper.ts +0 -25
  338. package/src/lab/grafana-dashboard/hooks.tsx +0 -79
  339. package/src/lab/grafana-dashboard/icons.tsx +0 -67
  340. package/src/lab/grafana-dashboard/index.tsx +0 -120
  341. package/src/lab/grafana-dashboard/top-bar.tsx +0 -62
  342. package/src/lab/grafana-dashboard/top-bar.types.ts +0 -5
  343. package/src/lab/grafana-dashboard/types.ts +0 -8
  344. package/src/lab/media-player.core1.tsx +0 -273
  345. package/src/lab/media-player.muted.tsx +0 -62
  346. package/src/lab/media-player.units.ts +0 -80
  347. package/src/lab/table-grid/create.table-grid.tsx +0 -183
  348. package/src/lab/table-grid/demo.tsx +0 -53
  349. package/src/lab/table-grid/dino.tsx +0 -8
  350. package/src/lab/table-grid/helpers.tsx +0 -11
  351. package/src/lab/table-grid/index.ts +0 -3
  352. package/src/lab/table-grid/item-actions.tsx +0 -138
  353. package/src/lab/table-grid/toolbar-pannel.tsx +0 -98
  354. package/src/lab/table-grid/types.ts +0 -68
  355. package/src/redux/create.hoc-lazy.tsx +0 -80
  356. package/src/redux/dino.ts +0 -9
  357. package/src/redux/index.ts +0 -6
  358. package/src/redux/types.ts +0 -27
  359. package/src/redux/ui.error-page.tsx +0 -62
  360. package/src/redux/ui.units.tsx +0 -41
  361. package/src/redux/vector-404.webp +0 -0
  362. package/src/table/context.tsx +0 -16
  363. package/src/table/create.action-row.tsx +0 -91
  364. package/src/table/create.status-cell.tsx +0 -51
  365. package/src/table/create.table.tsx +0 -239
  366. package/src/table/custom.filter-operators.ts +0 -94
  367. package/src/table/dino.tsx +0 -120
  368. package/src/table/helpers.ts +0 -94
  369. package/src/table/index.ts +0 -13
  370. package/src/table/model-filter.ts +0 -43
  371. package/src/table/toolbar-pannel.tsx +0 -106
  372. package/src/table/types.ts +0 -50
  373. package/src/table/ui.buttons.tsx +0 -54
  374. package/src/table/ui.units.tsx +0 -189
  375. package/src/utils/dayjs-config.ts +0 -13
  376. package/src/utils/helpers.ts +0 -171
  377. package/src/utils/index.ts +0 -7
  378. package/src/utils/json-object.ts +0 -29
  379. package/src/utils/mfe-events.tsx +0 -34
  380. package/src/utils/query-param.ts +0 -129
  381. package/tsconfig.json +0 -20
  382. /package/dist/{src/redux → redux}/types.js +0 -0
  383. /package/dist/{src/redux → redux}/vector-404.webp.js +0 -0
  384. /package/dist/{src/table → table}/model-filter.js +0 -0
  385. /package/dist/{src/utils → utils}/dayjs-config.js +0 -0
@@ -1,162 +0,0 @@
1
- import React, { Component } from 'react'
2
- import { EFieldValidate, ESearchMatch, FilterField, FilterFields, FilterItemModel, FilterModel, FilterState } from './types'
3
-
4
- export const filterPanelClasses = {
5
- root: 'FilterPanel-root',
6
- list: 'FilterPanel-list',
7
- item: 'FilterPanel-item'
8
- }
9
-
10
- export default class FilterBarBase<P, S, T = any> extends Component<P, S> {
11
- //#region Filter
12
- mergeFilter = (f1?: FilterState<T>, f2?: FilterState<T>): FilterState<T> => {
13
- const mergedFilter: FilterModel<T> = f2?.filter ?? {}
14
-
15
- if (f1?.filter) {
16
- for (const key in f1?.filter) {
17
- const fieldKey = key as keyof T
18
- const existingItems = mergedFilter[fieldKey] ?? []
19
- const newItems = f1?.filter[fieldKey] ?? []
20
-
21
- const existingValues = new Set(existingItems.map((item) => item.value))
22
-
23
- const mergedItems = [...existingItems, ...newItems.filter((item) => !existingValues.has(item.value))]
24
-
25
- if (mergedItems.length > 0) {
26
- mergedFilter[fieldKey] = mergedItems
27
- }
28
- }
29
- }
30
-
31
- const result: FilterState<T> = {
32
- filter: Object.keys(mergedFilter).length ? mergedFilter : {},
33
- details: f2?.details ?? f1?.details
34
- }
35
-
36
- return result
37
- }
38
-
39
- patchFilterWithKey = (filterState: FilterState<T>, key: keyof FilterModel<T>, value: FilterItemModel) => {
40
- const clonedFilter: FilterModel<T> = { ...(filterState.filter || {}) }
41
- let filter = clonedFilter[key] ?? []
42
- const isChanged = !filter.map((x) => x.value).includes(value.value)
43
- if (isChanged) filter = [...filter, value]
44
- clonedFilter[key] = filter
45
- return { isChanged, filterState: { ...filterState, filter: clonedFilter } }
46
- }
47
-
48
- deleteFilterWithKey = (filterState: FilterState<T>, key: keyof FilterModel<T>) => {
49
- const clonedFilter: FilterModel<T> = { ...(filterState.filter || {}) }
50
- const isChanged = key in clonedFilter
51
- if (isChanged) delete clonedFilter[key]
52
- return { isChanged, filterState: { ...filterState, filter: clonedFilter } }
53
- }
54
-
55
- isFilterEmpty = (filterState: FilterState<T>) => {
56
- const values = Object.values(filterState.filter ?? {})
57
- return values.length < 1 || values.every((x) => x.length < 1)
58
- }
59
- //#endregion
60
-
61
- //#region Field
62
- isYoutubeLink = (val: string) => /^https?:\/\/(www\.)?(youtube\.com|youtu\.be)\//.test(val)
63
-
64
- isGenericLink = (val: string) => /^https?:\/\/[^ ]+$/.test(val)
65
-
66
- isGuid = (val: string) => /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(val)
67
-
68
- getFieldsMatches = (fields: FilterFields<T>, keyword: string, showAll?: boolean): FilterFields<T> => {
69
- const trimmed = keyword.trim().toLowerCase()
70
- if (!trimmed) return fields
71
-
72
- const matched: FilterFields<T> = {}
73
-
74
- for (const key in fields) {
75
- const field = key as keyof FilterFields<T>
76
- const config = fields[field]
77
- if (!config) continue
78
-
79
- const matches = Array.isArray(config.searchMatches) ? config.searchMatches : config.searchMatches ? [config.searchMatches] : []
80
-
81
- let visible = false
82
-
83
- for (const matchObj of matches) {
84
- switch (matchObj.rule) {
85
- case ESearchMatch.AlwaysVisible:
86
- visible = true
87
- break
88
- case ESearchMatch.MatchOnly:
89
- if (typeof matchObj.match === 'function') {
90
- if (matchObj.match(trimmed)) visible = true
91
- }
92
- break
93
- case ESearchMatch.LinkYoutube:
94
- if (this.isYoutubeLink(trimmed)) visible = true
95
- break
96
- case ESearchMatch.Link:
97
- if (this.isGenericLink(trimmed)) visible = true
98
- break
99
- case ESearchMatch.Guid:
100
- if (this.isGuid(trimmed)) visible = true
101
- break
102
- default:
103
- break
104
- }
105
-
106
- if (visible) break
107
- }
108
-
109
- if (visible) matched[field] = config
110
- }
111
- return Object.keys(matched).length === 0 ? (showAll ? fields : {}) : matched
112
- }
113
-
114
- validated = (value: string, fieldKey: keyof FilterModel<T>, filterField?: FilterField): { error: boolean; message?: string } => {
115
- const trimmed = value.trim().toLowerCase()
116
- if (!trimmed) return { error: true, message: `The ${fieldKey.toString()} is required ` }
117
- const validate = Array.isArray(filterField?.validate) ? (filterField?.validate ?? []) : filterField?.validate ? [filterField.validate] : []
118
- const obj: { error: boolean; message?: string } = { error: false }
119
- for (const validateObj of validate) {
120
- switch (validateObj.rule) {
121
- case EFieldValidate.LinkYoutube:
122
- if (!this.isYoutubeLink(trimmed)) {
123
- obj.error = true
124
- obj.message = `The ${filterField?.label ?? fieldKey.toString()} must be a valid YouTube link`
125
- }
126
- break
127
-
128
- case EFieldValidate.Link:
129
- if (!this.isGenericLink(trimmed)) {
130
- obj.error = true
131
- obj.message = `The ${filterField?.label ?? fieldKey.toString()} must be a valid URL link`
132
- }
133
- break
134
-
135
- case EFieldValidate.Custom:
136
- if (typeof validateObj.custom === 'function' && !validateObj.custom(trimmed)) {
137
- obj.error = true
138
- obj.message = `The ${filterField?.label ?? fieldKey.toString()} is invalid`
139
- }
140
- break
141
- default:
142
- break
143
- }
144
- if (obj.error) break
145
- }
146
- return obj
147
- }
148
- //#endregion
149
-
150
- //#region Sort
151
- getSortFields = (fields: FilterFields<T>) => {
152
- const keys = Object.keys(fields) as (keyof FilterFields<T>)[]
153
- return keys.reduce<FilterFields<T>>((a, b) => {
154
- const item = fields[b]
155
- if (item?.sortable !== false) {
156
- a[b] = item
157
- }
158
- return a
159
- }, {})
160
- }
161
- //#endregion
162
- }
@@ -1,190 +0,0 @@
1
- import React from 'react'
2
- import { Box, ClickAwayListener, IconButton, InputBase, styled } from '@mui/material'
3
- import SwapVertIcon from '@mui/icons-material/SwapVert'
4
- import FilterListIcon from '@mui/icons-material/FilterList'
5
- import { ButtonClear, FilterHelpNotes, FilterHelpNotesProps } from './ui.units'
6
- import { FilterFields, FilterItemModel, FilterModel, FilterReason, FilterState } from './types'
7
- import CreateFilterPanel, { FilterPanelState } from './create.filter-panel'
8
- import FilterBarBase from './base'
9
- import CreateFiltered from './create.filtered'
10
-
11
- export interface FilterBarParams<T> {
12
- fields: FilterFields<T>
13
- id?: string
14
- placeholder?: string
15
- helpNotes?: FilterHelpNotesProps
16
- }
17
-
18
- interface IProps<T> {
19
- id?: string
20
- placeholder?: string
21
- value?: FilterState<T>
22
- onChange?: (value: FilterState<T>) => void
23
- }
24
-
25
- interface IState {
26
- panelState: FilterPanelState
27
- keyword: string
28
- }
29
-
30
- function CreateFilterBar<T>(params: FilterBarParams<T>) {
31
- const FilterPanelInstance = CreateFilterPanel<T>({ fields: params.fields })
32
- const FilteredInstance = CreateFiltered<T>()
33
-
34
- class FilterBar extends FilterBarBase<IProps<T>, IState, T> {
35
- defaultState: IState = { keyword: '', panelState: { anchorEl: null } }
36
- constructor(props: IProps<T>) {
37
- super(props)
38
- this.state = this.defaultState
39
- }
40
-
41
- filterStateStore: FilterState<T> = { filter: {} }
42
- get filterState(): FilterState<T> {
43
- return this.props.value ?? this.filterStateStore
44
- }
45
-
46
- setFilterState = (filterState: FilterState<T>) => {
47
- if (!this.props.value) {
48
- this.filterStateStore = filterState
49
- }
50
- this.props.onChange && this.props.onChange(filterState)
51
- }
52
-
53
- get configs() {
54
- return {
55
- id: this.props.id ?? params.id ?? new Date().getTime().toString(),
56
- placeholder: this.props.placeholder ?? params.placeholder ?? 'Filter',
57
- helpNotes: params.helpNotes
58
- }
59
- }
60
-
61
- refFilterButton: HTMLButtonElement | null = null
62
- refSortButton: HTMLButtonElement | null = null
63
- render() {
64
- return (
65
- <ClickAwayListener onClickAway={this.closePanel}>
66
- <Wrapper>
67
- <IconButton ref={(ref) => (this.refFilterButton = ref)} onClick={() => this.showPanel('filterButton')}>
68
- <FilterListIcon />
69
- </IconButton>
70
- <Content>
71
- <FilteredInstance fields={params.fields} filterState={this.filterState} onRemove={this.handleRemove} />
72
- {this.renderTextField()}
73
- </Content>
74
- <ButtonClear visibled={!this.isFilterEmpty(this.filterState)} onClick={this.handleClear} />
75
- {/* <IconButton ref={(ref) => (this.refSortButton = ref)} onClick={() => this.showPanel('sortButton')}>
76
- <SwapVertIcon />
77
- </IconButton> */}
78
- <FilterHelpNotes {...this.configs.helpNotes} />
79
- <FilterPanelInstance {...this.state.panelState} keyword={this.state.keyword} onSubmit={this.handleAdd} onClose={this.closePanel} />
80
- </Wrapper>
81
- </ClickAwayListener>
82
- )
83
- }
84
-
85
- refInput: HTMLInputElement | null = null
86
- refBeforeInput: HTMLElement | null = null
87
- renderTextField = () => (
88
- <Box component='label' htmlFor={this.configs.id} sx={{ flex: 1, display: 'flex', alignItems: 'flex-end' }}>
89
- <Box ref={(ref: HTMLElement) => (this.refBeforeInput = ref)} sx={{ height: '100%' }} />
90
- <InputBase
91
- id={this.configs.id}
92
- placeholder={this.configs.placeholder}
93
- fullWidth
94
- autoComplete='off'
95
- inputRef={(ref: HTMLInputElement) => (this.refInput = ref)}
96
- onChange={(event) => this.setState({ keyword: event.target.value })}
97
- value={this.state.keyword}
98
- onFocus={() => this.showPanel('searchInput')}
99
- onKeyDown={this.handleKeyDown}
100
- />
101
- </Box>
102
- )
103
-
104
- handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement | HTMLTextAreaElement>) => {
105
- const keyCode: number = event.keyCode
106
- if (keyCode === 13) {
107
- if (!this.state.keyword) return
108
- const temp = this.patchFilterWithKey(this.filterState, 'Search', { value: this.state.keyword })
109
- temp.filterState.details = 'add'
110
- if (!!temp.isChanged) {
111
- this.refInput?.blur()
112
- this.setFilterState(temp.filterState)
113
- this.setState(this.defaultState)
114
- }
115
- } else if (keyCode === 27) {
116
- this.refInput?.blur()
117
- this.setState(this.defaultState)
118
- }
119
- }
120
-
121
- handleAdd = (key: keyof FilterModel<T>, value: FilterItemModel) => {
122
- const temp = this.patchFilterWithKey(this.filterState, key, value)
123
- temp.filterState.details = 'add'
124
- if (!!temp.isChanged) {
125
- this.refInput?.blur()
126
- this.setFilterState(temp.filterState)
127
- this.setState(this.defaultState)
128
- }
129
- }
130
-
131
- handleRemove = (key: keyof FilterModel<T>) => {
132
- const temp = this.deleteFilterWithKey(this.filterState, key)
133
- temp.filterState.details = 'remove'
134
- if (!!temp.isChanged) {
135
- this.refInput?.blur()
136
- this.setFilterState(temp.filterState)
137
- this.forceUpdate()
138
- }
139
- }
140
-
141
- handleClear = () => {
142
- this.setFilterState({ filter: {}, details: 'remove' })
143
- this.setState(this.defaultState)
144
- }
145
-
146
- showPanel = (reason: FilterReason) => {
147
- let anchorEl = null
148
- switch (reason) {
149
- case 'searchInput':
150
- anchorEl = this.refBeforeInput
151
- break
152
- case 'filterButton':
153
- anchorEl = this.refFilterButton
154
- break
155
- case 'sortButton':
156
- anchorEl = this.refSortButton
157
- break
158
- default:
159
- break
160
- }
161
- this.setState({ panelState: { anchorEl, reason } })
162
- }
163
-
164
- closePanel = () => this.setState({ panelState: { anchorEl: null } })
165
- }
166
-
167
- return FilterBar
168
- }
169
-
170
- export default CreateFilterBar
171
-
172
- const Wrapper = styled(Box)({
173
- display: 'flex',
174
- gap: '8px',
175
- width: '100%',
176
- borderRadius: '6px',
177
- transition: 'all linear 0.2s',
178
- padding: '2px',
179
- backgroundColor: '#fafafa',
180
- '&:hover': { backgroundColor: '#ededed' }
181
- })
182
-
183
- const Content = styled(Box)({
184
- flex: 1,
185
- minHeight: '40px',
186
- display: 'flex',
187
- flexWrap: 'wrap',
188
- alignItems: 'center',
189
- gap: '6px'
190
- })
@@ -1,156 +0,0 @@
1
- import React, { Fragment } from 'react'
2
- import { Box, Button, ButtonProps, Divider } from '@mui/material'
3
- import { FormControlLabel, MenuItem, MenuList, Radio, RadioGroup, styled, TextField, Typography } from '@mui/material'
4
- import FilterBarBase, { filterPanelClasses } from './base'
5
- import { FilterModel, FilterPanelParams, FilterPannelSubmitFunc } from './types'
6
- import { convertFormDataToJson } from '../../form'
7
-
8
- interface IProps<T> {
9
- onSubmit?: FilterPannelSubmitFunc<T>
10
- onCancel?: ButtonProps['onClick']
11
- }
12
-
13
- interface IState<T> {
14
- fieldSelected: keyof FilterModel<T> | null
15
- messageError?: string
16
- }
17
-
18
- function CreateFilterMenu<T>(params: FilterPanelParams<T>) {
19
- class FilterMenu extends FilterBarBase<IProps<T>, IState<T>, T> {
20
- constructor(props: IProps<T>) {
21
- super(props)
22
- this.state = { fieldSelected: null }
23
- }
24
-
25
- render() {
26
- const { fieldSelected } = this.state
27
- if (!!fieldSelected) return this.renderFrom(fieldSelected)
28
- const keys = Object.keys(params.fields).filter((x) => !!x) as (keyof FilterModel<T>)[]
29
- return (
30
- <MenuList className={filterPanelClasses.list} sx={{ minWidth: '200px' }}>
31
- {keys.map((x, i) => {
32
- const item = params.fields[x]
33
- if (!item) return <Fragment key={x.toString() + i} />
34
- return (
35
- <MenuItem
36
- key={x.toString() + i}
37
- className={filterPanelClasses.item}
38
- onClick={() => this.setState({ fieldSelected: x, messageError: undefined })}
39
- >
40
- {item?.label ?? x.toString()}
41
- </MenuItem>
42
- )
43
- })}
44
- </MenuList>
45
- )
46
- }
47
-
48
- renderFrom = (fieldSelected: keyof FilterModel<T>) => {
49
- const fieldConfig = params.fields[fieldSelected]
50
- const label = fieldConfig?.label ?? fieldSelected.toString()
51
- return (
52
- <form onSubmit={(e) => this.handleSubmit(fieldSelected, e)}>
53
- <WrapPanelFilterMode>
54
- <Box className='top-bar'>
55
- <Typography variant='subtitle2'>{label}</Typography>
56
- </Box>
57
- <Box className='content'>{this.renderWithMode(fieldSelected)}</Box>
58
- {fieldConfig?.type === 'select' && <Divider variant='middle' />}
59
- <Box className='actions'>
60
- <Button size='small' color='inherit' onClick={this.props.onCancel}>
61
- Cancel
62
- </Button>
63
- <Button size='small' color='primary' type='submit' sx={{ fontWeight: 700 }}>
64
- Apply
65
- </Button>
66
- </Box>
67
- </WrapPanelFilterMode>
68
- </form>
69
- )
70
- }
71
-
72
- renderWithMode = (fieldSelected: keyof FilterModel<T>) => {
73
- const fieldConfig = params.fields[fieldSelected]
74
- const { messageError } = this.state
75
- switch (fieldConfig?.type) {
76
- case 'select':
77
- return (
78
- <CustomRadioGroup
79
- name={fieldSelected.toString()}
80
- className={messageError ? 'error' : ''}
81
- onChange={() => this.setState({ messageError: undefined })}
82
- >
83
- {fieldConfig.options.map((x, i) => (
84
- <FormControlLabel key={x.value.toString() + i} value={x.value} control={<Radio />} label={x.label ?? x.value} />
85
- ))}
86
- </CustomRadioGroup>
87
- )
88
- case 'string':
89
- default:
90
- return <TextField autoFocus name={fieldSelected.toString()} size='small' error={!!messageError} helperText={messageError} />
91
- }
92
- }
93
-
94
- handleSubmit = (fieldSelected: keyof FilterModel<T>, event: React.FormEvent<HTMLFormElement>) => {
95
- event.preventDefault()
96
- event.stopPropagation()
97
- const formData = new FormData(event.currentTarget as HTMLFormElement)
98
- const obj = convertFormDataToJson<T>(formData)
99
- const value = obj[fieldSelected as keyof T]?.toString()
100
-
101
- const fieldConfig = params.fields[fieldSelected]
102
- const validate = this.validated(value ?? '', fieldSelected, fieldConfig)
103
- if (validate.error) {
104
- this.setState({ messageError: validate.message })
105
- return
106
- }
107
-
108
- let label: string | undefined = undefined
109
- if (fieldConfig?.type === 'select') {
110
- label = fieldConfig.options.find((x) => x.value === value)?.label
111
- }
112
-
113
- this.props.onSubmit && this.props.onSubmit(fieldSelected, label ? { value, label } : { value })
114
- }
115
- }
116
-
117
- return FilterMenu
118
- }
119
-
120
- export default CreateFilterMenu
121
-
122
- const WrapPanelFilterMode = styled(Box)({
123
- minWidth: '200px',
124
- borderRadius: '4px',
125
- overflow: 'hidden',
126
- '.top-bar': {
127
- background: '#000',
128
- padding: '8px',
129
- '.MuiTypography-root': {
130
- color: '#fff'
131
- }
132
- },
133
- '.content': {
134
- padding: '8px'
135
- },
136
- '.actions': {
137
- display: 'flex',
138
- alignItems: 'center',
139
- justifyContent: 'flex-end',
140
- padding: '8px'
141
- }
142
- })
143
-
144
- const CustomRadioGroup = styled(RadioGroup)({
145
- marginLeft: '-8px',
146
- marginRight: '-8px',
147
- '&.error .MuiRadio-root': {
148
- color: '#d32f2f'
149
- },
150
- '.MuiFormControlLabel-root': {
151
- margin: 0
152
- },
153
- '.MuiFormControlLabel-root:hover': {
154
- backgroundColor: 'rgba(25, 118, 210, 0.04)'
155
- }
156
- })
@@ -1,95 +0,0 @@
1
- import React, { PropsWithChildren } from 'react'
2
- import { Popper, Fade, Box, styled, MenuList, MenuItem, Typography } from '@mui/material'
3
- import { FilterModel, FilterReason, FilterPanelParams, FilterPannelSubmitFunc } from './types'
4
- import FilterBarBase, { filterPanelClasses } from './base'
5
- import CreateFilterMenu from './create.filter-menu'
6
- import { FilterHelpNotes } from './ui.units'
7
- import CreateFilterSort from './create.sort-menu'
8
-
9
- export interface FilterPanelState {
10
- anchorEl: HTMLElement | null
11
- reason?: FilterReason
12
- }
13
-
14
- interface IProps<T> extends FilterPanelState, PropsWithChildren {
15
- keyword?: string
16
- onSubmit?: FilterPannelSubmitFunc<T>
17
- onClose?: () => void
18
- }
19
-
20
- function CreateFilterPanel<T>(params: FilterPanelParams<T>) {
21
- const FilterMenuInstance = CreateFilterMenu<T>(params)
22
- const SortMenuInstance = CreateFilterSort<T>(params)
23
-
24
- class FilterPanel extends FilterBarBase<IProps<T>, {}, T> {
25
- render() {
26
- const isOpen = Boolean(this.props.anchorEl) && (!!this.props.keyword || this.props.reason !== 'searchInput')
27
- return (
28
- <Popper anchorEl={this.props.anchorEl} open={isOpen} placement='bottom-start' transition sx={{ zIndex: 1350 }}>
29
- {({ TransitionProps }) => (
30
- <Fade {...TransitionProps} timeout={0}>
31
- <Wrapper className={filterPanelClasses.root}>{this.renderContent()}</Wrapper>
32
- </Fade>
33
- )}
34
- </Popper>
35
- )
36
- }
37
-
38
- renderContent = () => {
39
- switch (this.props.reason) {
40
- case 'searchInput':
41
- return this.renderSearchInput()
42
- case 'filterButton':
43
- return (
44
- <FilterMenuInstance
45
- onCancel={this.props.onClose}
46
- onSubmit={(f, v) => {
47
- this.props.onSubmit && this.props.onSubmit(f, v)
48
- this.props.onClose && this.props.onClose()
49
- }}
50
- />
51
- )
52
- case 'sortButton':
53
- return <SortMenuInstance />
54
- default:
55
- break
56
- }
57
- }
58
-
59
- renderSearchInput = () => {
60
- if (this.props.reason !== 'searchInput') return <></>
61
- const fields = this.getFieldsMatches(params.fields, this.props.keyword ?? '')
62
- const keys = Object.keys(fields).filter((x) => !!x) as (keyof FilterModel<T>)[]
63
- return (
64
- <MenuList className={filterPanelClasses.list}>
65
- {keys.map((x, i) => {
66
- const item = params.fields[x]
67
- return (
68
- <MenuItem key={x.toString() + i} className={filterPanelClasses.item} onClick={() => this.handleClick(x)}>
69
- {item?.label ?? x.toString()} "{this.props.keyword}"
70
- </MenuItem>
71
- )
72
- })}
73
- {this.props.keyword && (
74
- <MenuItem className={filterPanelClasses.item} onClick={() => this.handleClick('Search')}>
75
- Search "{this.props.keyword}"{/* <FilterHelpNotes title='The quick search includes' items={[]} /> */}
76
- </MenuItem>
77
- )}
78
- </MenuList>
79
- )
80
- }
81
- handleClick = (key: keyof FilterModel<T>) => {
82
- if (!this.props.onSubmit) return
83
- this.props.onSubmit(key, { value: this.props.keyword })
84
- }
85
- }
86
- return FilterPanel
87
- }
88
-
89
- export default CreateFilterPanel
90
-
91
- const Wrapper = styled(Box)({
92
- borderRadius: '4px',
93
- boxShadow: 'rgba(0, 0, 0, 0.06) 0px 5px 22px, rgba(0, 0, 0, 0.04) 0px 0px 0px 0.5px',
94
- backgroundColor: '#fff'
95
- })
@@ -1,41 +0,0 @@
1
- import React, { Component } from 'react'
2
- import { Chip, Typography } from '@mui/material'
3
- import { FilterFields, FilterModel, FilterState } from './types'
4
-
5
- interface IProps<T> {
6
- fields: FilterFields<T>
7
- filterState: FilterState<T>
8
- onRemove?: (key: keyof FilterModel<T>) => void
9
- }
10
-
11
- function CreateFiltered<T>() {
12
- class Filtered extends Component<IProps<T>> {
13
- render() {
14
- const keys = Object.keys(this.props.filterState.filter ?? {}) as (keyof FilterModel<T>)[]
15
- return keys.map((key, i) => {
16
- const item = this.props.filterState.filter?.[key]
17
- const config = this.props.fields[key]
18
- return (
19
- <Chip
20
- key={`${key?.toString()}${i}`}
21
- onDelete={() => this.handleRemove(key)}
22
- size='small'
23
- label={
24
- <Typography component='span' variant='caption'>
25
- {config?.label ?? key?.toString() ?? 'Search'} {item?.map((x) => `"${x.label ?? x.value}"`).join(' ')}
26
- </Typography>
27
- }
28
- />
29
- )
30
- })
31
- }
32
-
33
- handleRemove = (key: keyof FilterModel<T>) => {
34
- if (!this.props.onRemove) return
35
- this.props.onRemove(key)
36
- }
37
- }
38
- return Filtered
39
- }
40
-
41
- export default CreateFiltered
@@ -1,43 +0,0 @@
1
- import { List, ListItem, ListItemButton, ListItemText } from '@mui/material'
2
- import FilterBarBase from './base'
3
- import { FilterFields, FilterPanelParams, FilterPannelSubmitFunc } from './types'
4
-
5
- interface IProps<T> {
6
- onSubmit?: FilterPannelSubmitFunc<T>
7
- }
8
-
9
- interface IState<T> {}
10
-
11
- function CreateFilterSort<T>(params: FilterPanelParams<T>): React.ComponentType<IProps<T>> {
12
- class FilterSort extends FilterBarBase<IProps<T>, IState<T>, T> {
13
- render() {
14
- // const sortFields = this.getSortFields(params.fields)
15
- // const keys = Object.keys(sortFields) as (keyof FilterFields<T>)[]
16
- return (
17
- <List disablePadding>
18
- <ListItem>
19
- <ListItemButton>
20
- <ListItemText>Item 1</ListItemText>
21
- </ListItemButton>
22
- </ListItem>
23
- <ListItem>
24
- <ListItemButton>Item 2</ListItemButton>
25
- </ListItem>
26
- <ListItem>
27
- <ListItemButton>Item 3</ListItemButton>
28
- </ListItem>
29
- <ListItem>
30
- <ListItemButton>Item 4</ListItemButton>
31
- </ListItem>
32
- <ListItem>
33
- <ListItemButton>Item 5</ListItemButton>
34
- </ListItem>
35
- </List>
36
- )
37
- }
38
- }
39
-
40
- return FilterSort
41
- }
42
-
43
- export default CreateFilterSort