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,271 +0,0 @@
1
- import React, { Component } from 'react'
2
- import { alpha, colors, Container, styled } from '@mui/material'
3
- import { GridPaginationModel, GridRowSelectionModel } from '@mui/x-data-grid'
4
- import { TableCustom } from './table-custom'
5
- import { Buttons, InputSearchLocal, SwitchUnselected } from './ui.units'
6
- import { CreateFilterBar, FilterBarParams, FilterState } from '../filter-bar'
7
- import { FilterStateCustom, SeclectMulFetchData, SeclectMulFetchTotal, SelectModel } from './types'
8
-
9
- const selectMulClasses = {
10
- root: 'FormSelectMul-root',
11
- submiting: 'FormSelectMul-submiting',
12
- section: 'FormSelectMul-section',
13
- sectionRight: 'FormSelectMul-sectionRight',
14
- sectionLeft: 'FormSelectMul-sectionLeft'
15
- }
16
-
17
- interface IProps<T> {
18
- fetchData?: SeclectMulFetchData<T>
19
- fetchTotal?: SeclectMulFetchTotal
20
- onSubmit?: (value: SelectModel[]) => Promise<void>
21
- }
22
-
23
- interface IState<T> {
24
- loading?: boolean
25
- submiting?: boolean
26
- filterState: FilterState<T>
27
- pagination: GridPaginationModel
28
- rows: SelectModel[]
29
- totalRows: number
30
- rowSelecteds: SelectModel[]
31
- searchKeyLocal?: string
32
- isUnselected?: boolean
33
- }
34
-
35
- interface SelectMulWithApiParams<T> {
36
- filterConfig: FilterBarParams<T>
37
- }
38
-
39
- function CreateSelectMulWithApi<T>(params: SelectMulWithApiParams<T>) {
40
- const FilterBarInstance = CreateFilterBar<T>(params.filterConfig)
41
-
42
- class SelectMulWithApi extends Component<IProps<T>, IState<T>> {
43
- abortController: AbortController | null = null
44
- maxSelected: number = 100
45
- defaultPagination: GridPaginationModel = { page: 0, pageSize: 100 }
46
- constructor(props: IProps<T>) {
47
- super(props)
48
- this.state = {
49
- rows: [],
50
- totalRows: 0,
51
- rowSelecteds: [],
52
- filterState: { filter: {} },
53
- pagination: this.defaultPagination
54
- }
55
- }
56
-
57
- get mergeConfig() {
58
- return {
59
- fetchData: this.props.fetchData ?? (() => Promise.resolve({ items: [], totalItems: 0 })),
60
- fetchTotal: this.props.fetchTotal ?? (() => Promise.resolve(0))
61
- }
62
- }
63
-
64
- componentDidMount() {
65
- this.fetchData({ fetchTotal: true })
66
- }
67
-
68
- componentWillUnmount() {
69
- this.abortController?.abort()
70
- }
71
-
72
- render() {
73
- const dataLeft = this.getDataLeft()
74
- return (
75
- <Wrap className={this.getRootClasses()} maxWidth={false}>
76
- <div className={selectMulClasses.section}>
77
- <div className={selectMulClasses.sectionLeft}>
78
- <TableCustom
79
- title='📂 Media Library'
80
- featureMode='server'
81
- loading={this.state.loading}
82
- maxSelected={this.maxSelected}
83
- rows={dataLeft.rows}
84
- totalRows={this.state.totalRows}
85
- pagination={this.state.pagination}
86
- onPaginationChange={this.handelPaginationChange}
87
- slots={{
88
- header: 'Videos',
89
- dataGridProps: { slotProps: { pagination: { size: 'small' } } },
90
- topBar: <FilterBarInstance value={this.state.filterState} onChange={this.handleFilterChange} />,
91
- renderAction: (x) => <Buttons.Add value={x} onClick={(e) => this.handleMoveSingle(e, x)} />,
92
- renderHeaderAction: (x) => (
93
- <>
94
- <SwitchUnselected checked={this.state.isUnselected} onChange={this.handleUnselectedChange} totalHidden={dataLeft.totalHidden} />
95
- <Buttons.AddToRight disabled={x.rowSelecteds.length < 1} onClick={() => this.handleAddToRight(x.rowSelecteds)} />
96
- </>
97
- )
98
- }}
99
- />
100
- </div>
101
- <div className={selectMulClasses.sectionRight}>
102
- <TableCustom
103
- title='📥 Selected Media'
104
- maxSelected={this.maxSelected}
105
- rows={this.getRowSelecteds()}
106
- defaultPagination={this.defaultPagination}
107
- slots={{
108
- header: 'Videos',
109
- title: {
110
- after: <Buttons.Submit loading={this.state.submiting} disabled={this.state.rowSelecteds.length < 1} onClick={this.handleSubmit} />
111
- },
112
- dataGridProps: { slotProps: { pagination: { size: 'small' } } },
113
- topBar: <InputSearchLocal onChange={(x) => this.setState({ searchKeyLocal: x })} />,
114
- renderAction: (x) => <Buttons.Remove onClick={(e) => this.handleRemoveSingle(e, x)} />,
115
- renderHeaderAction: (x) => (
116
- <Buttons.RemoveSelected disabled={x.rowSelecteds.length < 1} onClick={() => this.handleRemoveSelected(x.rowSelecteds)} />
117
- )
118
- }}
119
- />
120
- </div>
121
- </div>
122
- </Wrap>
123
- )
124
- }
125
-
126
- fetchData = async (options?: { fetchTotal?: boolean }) => {
127
- try {
128
- this.setState({ loading: true })
129
- this.abortController?.abort()
130
- this.abortController = new AbortController()
131
-
132
- const filterCustom: FilterStateCustom<T> = { ...this.state.filterState, pagination: this.state.pagination }
133
- const res = await this.mergeConfig.fetchData(filterCustom, this.abortController.signal)
134
- if (!Array.isArray(res.items)) return
135
- let totalRows = await this.getTotal(res.totalItems, options?.fetchTotal)
136
- this.setState({ rows: res.items, totalRows, loading: false })
137
- } catch {}
138
- }
139
-
140
- getRootClasses = () => {
141
- const classes = [selectMulClasses.root]
142
- if (this.state.submiting) classes.push(selectMulClasses.submiting)
143
- return classes.filter((x) => !!x).join(' ')
144
- }
145
-
146
- getDataLeft = () => {
147
- const setSelected = new Set(this.state.rowSelecteds.map((x) => x.value))
148
- let { rows, isUnselected } = this.state
149
- let totalHidden = 0
150
- let list = [...rows]
151
- if (isUnselected) {
152
- list = list.filter((x) => !setSelected.has(x.value))
153
- for (const row of rows) {
154
- if (setSelected.has(row.value)) totalHidden++
155
- }
156
- }
157
- return { rows: list.map<SelectModel>((x) => ({ ...x, disabled: setSelected.has(x.value) })), totalHidden }
158
- }
159
-
160
- getRowSelecteds = (): SelectModel[] => {
161
- const { searchKeyLocal, rowSelecteds } = this.state
162
- if (!searchKeyLocal) return rowSelecteds
163
- return rowSelecteds.filter((x) => x.value.includes(searchKeyLocal) || x.label?.includes(searchKeyLocal))
164
- }
165
-
166
- getTotal = async (totalItems: number, fetchTotal?: boolean): Promise<number> => {
167
- if (fetchTotal) return this.mergeConfig.fetchTotal(this.abortController?.signal)
168
- return this.state.totalRows ?? totalItems
169
- }
170
-
171
- handleSubmit = async () => {
172
- try {
173
- this.setState({ submiting: true })
174
- if (!this.props.onSubmit) return
175
- await this.props.onSubmit(this.state.rowSelecteds)
176
- } catch (error) {
177
- throw error
178
- } finally {
179
- this.setState({ submiting: false })
180
- }
181
- }
182
-
183
- handleFilterChange = (value?: FilterState<T>) => {
184
- if (!value) return
185
- this.setState({ filterState: value }, this.fetchData)
186
- }
187
-
188
- handelPaginationChange = (value: GridPaginationModel) => {
189
- this.setState({ pagination: value }, this.fetchData)
190
- }
191
-
192
- handleUnselectedChange = (e: React.ChangeEvent<HTMLInputElement>) => {
193
- this.setState({ isUnselected: e.target.checked })
194
- }
195
-
196
- handleMoveSingle = (event: React.MouseEvent<HTMLButtonElement, MouseEvent>, item: SelectModel) => {
197
- event.preventDefault()
198
- event.stopPropagation()
199
- if (!this.state.rowSelecteds.some((x) => x.value === item.value)) {
200
- this.setState({ rowSelecteds: [...this.state.rowSelecteds, item] })
201
- }
202
- }
203
-
204
- handleRemoveSingle = (event: React.MouseEvent<HTMLButtonElement, MouseEvent>, item: SelectModel) => {
205
- event.preventDefault()
206
- event.stopPropagation()
207
- this.setState({ rowSelecteds: this.state.rowSelecteds.filter((x) => x.value !== item.value) })
208
- }
209
-
210
- handleAddToRight = (value: GridRowSelectionModel) => {
211
- const rowSelecteds = [...this.state.rowSelecteds]
212
- const setSelected = new Set(rowSelecteds.map((x) => x.value))
213
-
214
- const setNew = new Set(value)
215
- const newList = this.state.rows.filter((x) => setNew.has(x.value))
216
-
217
- for (const item of newList) {
218
- if (!setSelected.has(item.value)) rowSelecteds.push(item)
219
- }
220
- this.setState({ rowSelecteds })
221
- }
222
-
223
- handleRemoveSelected = (value: GridRowSelectionModel) => {
224
- const setValue = new Set(value)
225
- this.setState({ rowSelecteds: this.state.rowSelecteds.filter((x) => !setValue.has(x.value)) })
226
- }
227
- }
228
- return SelectMulWithApi
229
- }
230
-
231
- export * from './types'
232
-
233
- export default CreateSelectMulWithApi
234
-
235
- const Wrap = styled(Container)({
236
- height: '100%',
237
- display: 'flex',
238
- flexDirection: 'column',
239
- background: colors.common.white,
240
- position: 'relative',
241
- '.h-100': {
242
- height: '100%'
243
- },
244
- [`.${selectMulClasses.section}`]: {
245
- display: 'flex',
246
- flex: 1,
247
- gap: '20px'
248
- },
249
- [`.${selectMulClasses.sectionLeft}, .${selectMulClasses.sectionRight}`]: {
250
- width: '50%',
251
- flex: 1
252
- },
253
- [`&::after`]: {
254
- content: '""',
255
- display: 'block',
256
- position: 'absolute',
257
- top: 0,
258
- left: 0,
259
- width: '100%',
260
- height: '100%',
261
- background: alpha(colors.common.white, 0.5),
262
- zIndex: 1,
263
- transition: 'linear 0.3s',
264
- opacity: 0,
265
- visibility: 'hidden'
266
- },
267
- [`&.${selectMulClasses.submiting}::after`]: {
268
- opacity: 1,
269
- visibility: 'visible'
270
- }
271
- })
@@ -1,194 +0,0 @@
1
- import React, { Component, ReactNode } from 'react'
2
- import { Box, styled, Typography } from '@mui/material'
3
- import { DataGrid, DataGridProps, GridColDef, GridFeatureMode, GridPaginationModel, GridRowSelectionModel } from '@mui/x-data-grid'
4
- import { SelectModel } from './types'
5
-
6
- const tableCustomClasses = {
7
- root: 'TableCustom-root',
8
- content: 'TableCustom-content',
9
- header: 'TableCustom-header',
10
- contentInner: 'TableCustom-contentInner'
11
- }
12
-
13
- interface IProps {
14
- title: string
15
- rows: SelectModel[]
16
- featureMode?: GridFeatureMode
17
- totalRows?: number
18
- maxSelected?: number
19
- pagination?: GridPaginationModel
20
- defaultPagination?: GridPaginationModel
21
- loading?: boolean
22
- onPaginationChange?: DataGridProps['onPaginationModelChange']
23
- isRowSelectable?: DataGridProps['isRowSelectable']
24
- slots?: {
25
- title?: { before?: ReactNode; after?: ReactNode }
26
- renderAction?: (value: SelectModel) => ReactNode
27
- renderHeaderAction?: (parmas: { rowSelecteds: GridRowSelectionModel }) => ReactNode
28
- header?: ReactNode
29
- topBar?: ReactNode
30
- dataGridProps?: Partial<DataGridProps>
31
- }
32
- }
33
-
34
- export class TableCustom extends Component<IProps> {
35
- rowSelecteds: GridRowSelectionModel
36
- constructor(props: IProps) {
37
- super(props)
38
- this.rowSelecteds = []
39
- }
40
-
41
- shouldComponentUpdate(nextProps: Readonly<IProps>, nextState: Readonly<{}>, nextContext: any): boolean {
42
- if (this.props.rows.length !== nextProps.rows.length) this.rowSelecteds = []
43
- return true
44
- }
45
-
46
- render() {
47
- return (
48
- <Wrap className={tableCustomClasses.root}>
49
- <Box className={tableCustomClasses.header}>
50
- {this.props.slots?.title?.before}
51
- <Typography variant='subtitle1' gutterBottom sx={{ fontWeight: 700, flex: 1 }}>
52
- {this.props.title}
53
- </Typography>
54
- {this.props.slots?.title?.after}
55
- </Box>
56
- <Box sx={{ display: 'flex', alignItems: 'center', gap: '8px', height: '48px', mb: '4px' }}>{this.props.slots?.topBar}</Box>
57
- <div className={tableCustomClasses.content}>
58
- <div className={tableCustomClasses.contentInner}>
59
- <DataGridCustom {...this.getDataGridProps()} {...this.props.slots?.dataGridProps} />
60
- </div>
61
- </div>
62
- </Wrap>
63
- )
64
- }
65
-
66
- getDataGridProps = (): DataGridProps => {
67
- const columns: GridColDef[] = this.getColumns()
68
- const data = this.getData()
69
- let obj: DataGridProps = {
70
- rows: data.rows,
71
- columns: columns,
72
- getRowId: (x) => x.value,
73
- initialState: { pagination: { paginationModel: this.props.defaultPagination } },
74
- rowSelectionModel: data.rowSelecteds,
75
- onRowSelectionModelChange: this.handleRowSelectionChange,
76
- isRowSelectable: (x) => !x.row.disabled,
77
- getRowClassName: (x) => (x.row.disabled ? 'Mui-disabled-row' : ''),
78
- checkboxSelection: true
79
- }
80
- if (this.props.featureMode === 'server') {
81
- obj = {
82
- ...obj,
83
- paginationMode: this.props.featureMode,
84
- loading: this.props.loading,
85
- rowCount: this.props.totalRows,
86
- paginationModel: this.props.pagination,
87
- onPaginationModelChange: this.props.onPaginationChange
88
- }
89
- }
90
- return obj
91
- }
92
-
93
- getData = () => {
94
- let list = [...this.props.rows]
95
- const rowSelecteds = this.rowSelecteds.filter((x) => list.some((i) => i.value === x.toString() && !i.disabled))
96
-
97
- if (this.props.maxSelected && rowSelecteds.length >= this.props.maxSelected) {
98
- const selectedSet = new Set(rowSelecteds)
99
- list = this.props.rows.map((x) => (selectedSet.has(x.value) ? x : { ...x, disabled: true }))
100
- }
101
-
102
- return { rows: list, rowSelecteds }
103
- }
104
-
105
- getColumns = (): GridColDef[] => {
106
- const { slots } = this.props
107
- const data = this.getData()
108
- return [
109
- {
110
- field: 'value',
111
- headerName: 'Medias',
112
- sortable: false,
113
- disableColumnMenu: true,
114
- filterable: false,
115
- flex: 1,
116
- renderHeader: () => (
117
- <Box sx={{ display: 'flex', alignItems: 'center', width: '100%', pr: '2px' }}>
118
- {this.renderHeader()}
119
- {slots?.renderHeaderAction && slots.renderHeaderAction({ rowSelecteds: data.rowSelecteds })}
120
- </Box>
121
- ),
122
- renderCell: (params: { row: SelectModel }) => (
123
- <Box sx={{ display: 'flex', alignItems: 'center', width: '100%' }}>
124
- <Typography variant='body2' noWrap sx={{ flex: 1 }}>
125
- {params.row.label ?? params.row.value}
126
- </Typography>
127
- {this.props.slots?.renderAction && this.props.slots.renderAction(params.row)}
128
- </Box>
129
- )
130
- }
131
- ]
132
- }
133
-
134
- renderHeader = () => {
135
- const { slots } = this.props
136
- if (!slots?.header || typeof slots?.header === 'string') {
137
- return (
138
- <Typography variant='body2' noWrap sx={{ flex: 1, fontWeight: 700 }}>
139
- {slots?.header ?? 'Media'}
140
- </Typography>
141
- )
142
- }
143
- return slots?.header
144
- }
145
-
146
- handleRowSelectionChange = (value: GridRowSelectionModel) => {
147
- if (this.props.maxSelected && value.length > this.props.maxSelected) {
148
- this.rowSelecteds = value.slice(0, this.props.maxSelected)
149
- } else {
150
- this.rowSelecteds = value
151
- }
152
- this.forceUpdate()
153
- }
154
- }
155
-
156
- const DataGridCustom = styled(DataGrid)({
157
- border: 'none',
158
- '.MuiDataGrid-columnHeaderTitleContainerContent': {
159
- width: '100%'
160
- },
161
- '.Mui-disabled-row': {
162
- pointerEvents: 'none',
163
- opacity: 0.4
164
- },
165
- '& .MuiDataGrid-cell': {
166
- borderBottom: 'none'
167
- }
168
- })
169
-
170
- const Wrap = styled(Box)({
171
- flex: 1,
172
- paddingTop: '10px',
173
- height: '100%',
174
- display: 'flex',
175
- flexDirection: 'column',
176
- minHeight: '300px',
177
- [`.${tableCustomClasses.header}`]: {
178
- display: 'flex',
179
- alignItems: 'center'
180
- },
181
- [`.${tableCustomClasses.content}`]: {
182
- flex: 1,
183
- position: 'relative'
184
- },
185
- [`.${tableCustomClasses.contentInner}`]: {
186
- position: 'absolute',
187
- top: 0,
188
- left: 0,
189
- width: '100%',
190
- height: '100%'
191
- }
192
- })
193
-
194
- const Custom = styled(Box)(({ theme }) => ({}))
@@ -1,26 +0,0 @@
1
- import { FilterState } from '../filter-bar'
2
-
3
- export interface SelectModel<F = any> {
4
- value: string
5
- label?: string
6
- disabled?: boolean
7
- other?: F
8
- }
9
-
10
- export interface PaginationModel {
11
- /** @default 0 */
12
- page: number
13
- /** @default 100 */
14
- pageSize: number
15
- }
16
-
17
- export interface FilterStateCustom<T> extends FilterState<T> {
18
- pagination: PaginationModel
19
- }
20
-
21
- export type SeclectMulFetchData<T> = (
22
- filterState: FilterStateCustom<T>,
23
- signal?: AbortSignal
24
- ) => Promise<{ items: SelectModel<T>[]; totalItems: number }>
25
-
26
- export type SeclectMulFetchTotal = (signal?: AbortSignal) => Promise<number>
@@ -1,163 +0,0 @@
1
- import React, { ChangeEvent, FC, useState } from 'react'
2
- import { IconButton, InputAdornment, InputBase, InputBaseProps } from '@mui/material'
3
- import { Box, Button, ButtonProps, FormControlLabel, styled, Switch, SwitchProps, Typography } from '@mui/material'
4
- import EastIcon from '@mui/icons-material/East'
5
- import ClearIcon from '@mui/icons-material/Clear'
6
- import CheckIcon from '@mui/icons-material/Check'
7
- import RemoveIcon from '@mui/icons-material/Remove'
8
- import SearchIcon from '@mui/icons-material/Search'
9
- import PlaylistRemoveIcon from '@mui/icons-material/PlaylistRemove'
10
- import { SelectModel } from './types'
11
- import { LoadingButton, LoadingButtonProps } from '../../components/loading-buttons'
12
- import HelpTooltip from '../../components/help-tooltip'
13
-
14
- export const ButtonAddToRight: FC<ButtonProps> = (props) => (
15
- <Button size='small' endIcon={<EastIcon fontSize='small' />} sx={{ whiteSpace: 'nowrap', flex: '0 0 auto', textTransform: 'none' }} {...props}>
16
- Add to Right
17
- </Button>
18
- )
19
-
20
- export const ButtonRemoveSelected: FC<ButtonProps> = (props) => (
21
- <Button
22
- size='small'
23
- endIcon={<PlaylistRemoveIcon fontSize='small' />}
24
- sx={{ whiteSpace: 'nowrap', flex: '0 0 auto', textTransform: 'none' }}
25
- {...props}
26
- >
27
- Remove Selected
28
- </Button>
29
- )
30
-
31
- export const ButtonAdd: FC<Omit<ButtonProps, 'value'> & { value: SelectModel }> = ({ value, ...props }) => {
32
- if (value.disabled) {
33
- return (
34
- <Box sx={{ padding: '5px' }}>
35
- <CheckIcon fontSize='small' />
36
- </Box>
37
- )
38
- }
39
- return (
40
- <IconButton size='small' {...props}>
41
- <EastIcon fontSize='small' />
42
- </IconButton>
43
- )
44
- }
45
-
46
- export const ButtonRemove: FC<ButtonProps> = (props) => (
47
- <IconButton size='small' {...props}>
48
- <RemoveIcon fontSize='small' />
49
- </IconButton>
50
- )
51
-
52
- export const ButtonSubmit: FC<LoadingButtonProps> = (props) => (
53
- <LoadingButton size='small' variant='contained' sx={{ minWidth: '120px' }} {...props}>
54
- Submit
55
- </LoadingButton>
56
- )
57
-
58
- export const Buttons = {
59
- AddToRight: ButtonAddToRight,
60
- RemoveSelected: ButtonRemoveSelected,
61
- Add: ButtonAdd,
62
- Remove: ButtonRemove,
63
- Submit: ButtonSubmit
64
- }
65
-
66
- // export const FooterBar: FC<ButtonProps> = (props) => (
67
- // <Box sx={{ display: 'flex', justifyContent: 'flex-end', padding: '5px 10px 5px' }}>
68
- // <Button size='small' variant='contained' disabled={props.disabled} onClick={props.onClick}>
69
- // Confirm Selection
70
- // </Button>
71
- // </Box>
72
- // )
73
-
74
- export const SwitchUnselected: FC<SwitchProps & { totalHidden?: number }> = ({ totalHidden: hiddenCount, ...props }) => (
75
- <FormControlLabel
76
- control={<Switch size='small' {...props} />}
77
- label={
78
- <Typography variant='body2'>
79
- only unselected <Typography variant='caption'> (hidden: {hiddenCount ?? 0})</Typography>
80
- </Typography>
81
- }
82
- />
83
- )
84
-
85
- interface InputSearchLocalProps extends Omit<InputBaseProps, 'onChange'> {
86
- onChange?: (value: string) => void
87
- }
88
-
89
- export const InputSearchLocal: FC<InputSearchLocalProps> = ({ onChange, ...props }) => {
90
- const [value, setValue] = useState('')
91
-
92
- const searchIncludes = ['Media name']
93
-
94
- const handleChange = (event: ChangeEvent<HTMLInputElement>) => {
95
- setValue(event.target.value)
96
- onChange && onChange(event.target.value)
97
- }
98
-
99
- const handleClear = () => {
100
- setValue('')
101
- onChange && onChange('')
102
- }
103
-
104
- return (
105
- <InputBaseCustom
106
- placeholder='Find in selected list'
107
- fullWidth
108
- value={value}
109
- onChange={handleChange}
110
- startAdornment={
111
- <InputAdornment position='start'>
112
- <SearchIcon />
113
- </InputAdornment>
114
- }
115
- endAdornment={
116
- <InputAdornment position='end'>
117
- {value && (
118
- <IconButton size='small' onClick={handleClear}>
119
- <ClearIcon fontSize='small' />
120
- </IconButton>
121
- )}
122
- <HelpTooltip small title='The search includes'>
123
- <WrapList>
124
- {searchIncludes.map((item, index) => (
125
- <Typography key={index} component='li' variant='body2'>
126
- {item}
127
- </Typography>
128
- ))}
129
- </WrapList>
130
- </HelpTooltip>
131
- </InputAdornment>
132
- }
133
- {...props}
134
- />
135
- )
136
- }
137
-
138
- const InputBaseCustom = styled(InputBase)({
139
- height: '44px',
140
- borderRadius: '6px',
141
- padding: '0 10px',
142
- transition: 'all linear 0.2s',
143
- backgroundColor: '#fafafa',
144
- '&:hover': { backgroundColor: '#ededed' }
145
- })
146
-
147
- const WrapList = styled('ul')({
148
- paddingLeft: '1.7rem',
149
- marginBottom: 0,
150
- li: {
151
- position: 'relative',
152
- textAlign: 'justify',
153
- '&::before': {
154
- content: '"►"',
155
- display: 'block',
156
- position: 'absolute',
157
- top: '50%',
158
- right: 'calc(100% + 6px)',
159
- transform: 'translateY(-50%)',
160
- fontSize: '0.9em'
161
- }
162
- }
163
- })